@tfehotels/tfe-gatsby-library 1.0.74 → 1.0.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("date-fns"),t=require("classnames"),a=require("react-hot-toast"),n=require("react"),r=require("goober"),o=require("@fortawesome/react-fontawesome"),s=require("marked"),l=require("html-react-parser"),i=require("react-google-autocomplete"),c=require("gatsby-plugin-image"),u=require("gatsby"),m=require("react-select");const d=e=>e<769,p=e=>e>=769&&e<1024,h=e=>e>=1024,g=(e,t)=>{const a=e.style.display;"block"!==a&&(e.style.display="block");const n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),o=r.top-n.top,s=n.bottom-r.bottom;o>=0&&s>=0||(Math.abs(o)<Math.abs(s)?e.scrollTop+=o:e.scrollTop-=s),e.style.display=a},_=(e,t)=>t?!!e.length&&!e.includes(t):!e.length,b=(e,a=null)=>(a&&(e.hidden=_(a,""),e.hidden_mobile=_(a,"m"),e.hidden_tablet=_(a,"t"),e.hidden_desktop=_(a,"d")),t(e));const f=async(e,t,a="post",n={})=>{e.includes(process.env.API_HOST)&&(n["project-id"]=process.env.PROJECT);let r={headers:{"Content-Type":"application/json",...n},method:a.toUpperCase()};"post"===a?r.body=JSON.stringify(t):e=`${e}?${new URLSearchParams(Object.entries(t).map((([e,t])=>[e,null===t?"":`${t}`])))}`;try{let t=await fetch(e,r);return{...await t.json(),status:t.status}}catch(e){return console.error(e),{success:!1,error:"Request failed",status:400}}},y={select:e=>e.value,input:e=>e.target.value,textarea:e=>e.target.value,"google-places":e=>e.target.value},E=(e,t)=>y.hasOwnProperty(e)?y[e](t):t,v={},w=(e,t)=>v.hasOwnProperty(e)?v[e](t):t,x=new Set(["input","select","textarea","checkbox","button","recaptcha2","google-places","country-prefix","country","hidden"]),C=e=>e.optimized?`${e.url}${e.name}-20w.webp`:e.url,S=[["AF","93","Afghanistan"],["AL","355","Albania"],["DZ","213","Algeria"],["AD","376","Andorra"],["AO","244","Angola"],["AG","1268","Antigua and Barbuda"],["AR","54","Argentina"],["AM","374","Armenia"],["AW","297","Aruba"],["AU","61","Australia"],["AT","43","Austria"],["AZ","994","Azerbaijan"],["BS","1242","Bahamas"],["BH","973","Bahrain"],["BD","880","Bangladesh"],["BB","1246","Barbados"],["BY","375","Belarus"],["BE","32","Belgium"],["BZ","501","Belize"],["BJ","229","Benin"],["BT","975","Bhutan"],["BO","591","Bolivia"],["BA","387","Bosnia and Herzegovina"],["BW","267","Botswana"],["BR","55","Brazil"],["IO","246","British Indian Ocean Territory"],["BN","673","Brunei"],["BG","359","Bulgaria"],["BF","226","Burkina Faso"],["BI","257","Burundi"],["KH","855","Cambodia"],["CM","237","Cameroon"],["CA","1","Canada"],["CV","238","Cape Verde"],["BQ","599","Caribbean Netherlands"],["CF","236","Central African Republic"],["TD","235","Chad"],["CL","56","Chile"],["CN","86","China"],["CO","57","Colombia"],["KM","269","Comoros"],["CD","243","Congo"],["CG","242","Congo"],["CR","506","Costa Rica"],["CI","225","Côte d'Ivoire"],["HR","385","Croatia"],["CU","53","Cuba"],["CW","599","Curaçao"],["CY","357","Cyprus"],["CZ","420","Czech Republic"],["DK","45","Denmark"],["DJ","253","Djibouti"],["DM","1767","Dominica"],["DO","1","Dominican Republic"],["EC","593","Ecuador"],["EG","20","Egypt"],["SV","503","El Salvador"],["GQ","240","Equatorial Guinea"],["ER","291","Eritrea"],["EE","372","Estonia"],["ET","251","Ethiopia"],["FJ","679","Fiji"],["FI","358","Finland"],["FR","33","France"],["GF","594","French Guiana"],["PF","689","French Polynesia"],["GA","241","Gabon"],["GM","220","Gambia"],["GE","995","Georgia"],["DE","49","Germany"],["GH","233","Ghana"],["GR","30","Greece"],["GD","1473","Grenada"],["GP","590","Guadeloupe"],["GU","1671","Guam"],["GT","502","Guatemala"],["GN","224","Guinea"],["GW","245","Guinea-Bissau"],["GY","592","Guyana"],["HT","509","Haiti"],["HN","504","Honduras"],["HK","852","Hong Kong"],["HU","36","Hungary"],["IS","354","Iceland"],["IN","91","India"],["ID","62","Indonesia"],["IR","98","Iran"],["IQ","964","Iraq"],["IE","353","Ireland"],["IL","972","Israel"],["IT","39","Italy"],["JM","1876","Jamaica"],["JP","81","Japan"],["JO","962","Jordan"],["KZ","7","Kazakhstan"],["KE","254","Kenya"],["KI","686","Kiribati"],["XK","383","Kosovo"],["KW","965","Kuwait"],["KG","996","Kyrgyzstan"],["LA","856","Laos"],["LV","371","Latvia"],["LB","961","Lebanon"],["LS","266","Lesotho"],["LR","231","Liberia"],["LY","218","Libya"],["LI","423","Liechtenstein"],["LT","370","Lithuania"],["LU","352","Luxembourg"],["MO","853","Macau"],["MK","389","Macedonia"],["MG","261","Madagascar"],["MW","265","Malawi"],["MY","60","Malaysia"],["MV","960","Maldives"],["ML","223","Mali"],["MT","356","Malta"],["MH","692","Marshall Islands"],["MQ","596","Martinique"],["MR","222","Mauritania"],["MU","230","Mauritius"],["MX","52","Mexico"],["FM","691","Micronesia"],["MD","373","Moldova"],["MC","377","Monaco"],["MN","976","Mongolia"],["ME","382","Montenegro"],["MA","212","Morocco"],["MZ","258","Mozambique"],["MM","95","Myanmar"],["NA","264","Namibia"],["NR","674","Nauru"],["NP","977","Nepal"],["NL","31","Netherlands"],["NC","687","New Caledonia"],["NZ","64","New Zealand"],["NI","505","Nicaragua"],["NE","227","Niger"],["NG","234","Nigeria"],["KP","850","North Korea"],["NO","47","Norway"],["OM","968","Oman"],["PK","92","Pakistan"],["PW","680","Palau"],["PS","970","Palestine"],["PA","507","Panama"],["PG","675","Papua New Guinea"],["PY","595","Paraguay"],["PE","51","Peru"],["PH","63","Philippines"],["PL","48","Poland"],["PT","351","Portugal"],["PR","1","Puerto Rico"],["QA","974","Qatar"],["RE","262","Réunion"],["RO","40","Romania"],["RU","7","Russia"],["RW","250","Rwanda"],["KN","1869","Saint Kitts and Nevis"],["LC","1758","Saint Lucia"],["VC","1784","Saint Vincent and the Grenadines"],["WS","685","Samoa"],["SM","378","San Marino"],["ST","239","São Tomé and Príncipe"],["SA","966","Saudi Arabia"],["SN","221","Senegal"],["RS","381","Serbia"],["SC","248","Seychelles"],["SL","232","Sierra Leone"],["SG","65","Singapore"],["SK","421","Slovakia"],["SI","386","Slovenia"],["SB","677","Solomon Islands"],["SO","252","Somalia"],["ZA","27","South Africa"],["KR","82","South Korea"],["SS","211","South Sudan"],["ES","34","Spain"],["LK","94","Sri Lanka"],["SD","249","Sudan"],["SR","597","Suriname"],["SZ","268","Swaziland"],["SE","46","Sweden"],["CH","41","Switzerland"],["SY","963","Syria"],["TW","886","Taiwan"],["TJ","992","Tajikistan"],["TZ","255","Tanzania"],["TH","66","Thailand"],["TL","670","Timor-Leste"],["TG","228","Togo"],["TO","676","Tonga"],["TT","1868","Trinidad and Tobago"],["TN","216","Tunisia"],["TR","90","Turkey"],["TM","993","Turkmenistan"],["TV","688","Tuvalu"],["UG","256","Uganda"],["UA","380","Ukraine"],["AE","971","United Arab Emirates"],["GB","44","United Kingdom"],["US","1","United States"],["UY","598","Uruguay"],["UZ","998","Uzbekistan"],["VU","678","Vanuatu"],["VA","39","Vatican City"],["VE","58","Venezuela"],["VN","84","Vietnam"],["YE","967","Yemen"],["ZM","260","Zambia"],["ZW","263","Zimbabwe"]],k={FAB:"fab",FAS:"fas"},$=({icon:e,className:t,onClick:a,color:r,width:s,height:l})=>k.hasOwnProperty(e.group)?n.createElement(o.FontAwesomeIcon,{className:t,color:r,onClick:a,icon:[k[e.group],e.icon]}):n.createElement("img",{className:t,width:s,height:l,alt:e.icon,onClick:a,src:`/icons/${e.group}/${e.icon}.svg`}),N=e=>`\n0% {transform: translate3d(0,${-200*e}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`,T=e=>`\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${-150*e}%,-1px) scale(.6); opacity:0;}\n`,M=(()=>{let e;return()=>{if(void 0===e&&"undefined"!=typeof window){const t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),O=({id:e,visible:t,message:o,height:s,position:l,variant:i})=>{const c=s?((e,t)=>{const a=e.includes("top")?1:-1,[n,o]=M()?["0%{opacity:0;} 100%{opacity:1;}","0%{opacity:1;} 100%{opacity:0;}"]:[N(a),T(a)];return{animation:t?`${r.keyframes(n)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${r.keyframes(o)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}})(l||"top-center",t):{opacity:0};return n.createElement("div",{className:`toast ${t?"animate-enter":"animate-leave"} ${i}`,style:{...c}},n.createElement("button",{className:"close",onClick:()=>a.toast.dismiss(e)},n.createElement($,{icon:{icon:"close",group:"GLO"}})),o)},A=(e,t="error",r=1e4)=>{a.custom((a=>n.createElement(O,{id:a.id,visible:a.visible,message:e,variant:t,height:a.height,position:a.position})),{duration:r})};const L=t=>{try{return t?e.parseISO(t):void 0}catch(e){return}},P=e=>{try{return e?parseInt(e):void 0}catch(e){return}},I=e=>e?[e]:[],B={check_in:L,check_out:L,child_count:P,adult_count:P,rate_codes:I,promo_codes:I};const R=(e,t)=>`${e.replace(new RegExp("/$"),"")}/${t.replace(new RegExp("^/"),"")}`;function G({children:e,className:t,tagAttrs:a,onClick:r}){const o=new s.marked.Renderer;o.link=(e,t,n)=>{let r={href:e,title:t??"",target:"_blank"};return a?.a&&(r={...r,...a?.a}),`<a ${Object.entries(r).map((([e,t])=>`${e}="${t}"`)).join(" ")}>${n}</a>`},s.marked.setOptions({renderer:o});const i=()=>l(e?s.marked(e):"");return n.createElement(n.Fragment,null,t||r?n.createElement("div",{className:t,onClick:r},i()):n.createElement(n.Fragment,null,i()))}function D({className:e,label:t,description:a,...r}){return n.createElement("label",{className:`checkbox${r.value?" checked":""}${e?` ${e}`:""}`,onClick:r.onClick,onChange:r.onChange},!!t&&n.createElement("span",null,t),n.createElement("svg",{id:r.id,width:r.width?r.width:30,height:r.height?r.height:30,viewBox:"0 0 440 440"},n.createElement("path",{className:"box",d:"M 72 136 C 72 100.654 100.654 72 136 72 L 304 72 C 339.346 72 368 100.654 368 136 L 368 304 C 368 339.346 339.346 368 304 368 L 136 368 C 100.654 368 72 339.346 72 304 Z",fill:r.color?r.color:"#58595b"}),n.createElement("path",{className:"tick",d:"M 160 180 L 210 250 L 340 130",transform:"translate(40 65) rotate(-10 70.904 438.687)",fill:"transparent",strokeWidth:30,stroke:"white",strokeLinecap:"square",strokeLinejoin:"miter"})),!!a&&n.createElement("div",null,n.createElement(G,null,a)))}function j({className:e,label:t,description:a,input_name:r,onClick:o,onChange:s,value:l,...i}){const[c,u]=n.useState(!1),[m,d]=n.useState(0),[p,h]=n.useState(""),_=n.useRef(null),b=n.useRef(null),f=n.useCallback((e=>{s?.(S[e][1]),n.startTransition((()=>{u(!1),d(e),h(S[e][2])}))}),[s,S]),y=n.useCallback((()=>{if(!b.current)return;const e=b.current.querySelector(`#${i.name??"country-prefix"}__${S[m][0]}`);e&&g(b.current,e)}),[m,S]);return n.useEffect((()=>{const e=e=>{_.current&&!_.current.contains(e.target)&&b.current&&!b.current.contains(e.target)&&n.startTransition((()=>u(!1)))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[_,b]),n.useEffect((()=>{y()}),[m]),n.useEffect((()=>{document.body.classList[c?"add":"remove"]("no-scroll"),_.current&&c&&_.current.focus()}),[c]),n.createElement("label",{className:"country-prefix "+(e?` ${e}`:"")},!!t&&n.createElement("span",null,t),n.createElement("div",{className:"selected-prefix",onClick:()=>n.startTransition((()=>u(!0)))},"+",l??S[0][1],n.createElement($,{className:c?"opened":"",icon:{icon:"chevron-right",group:"FAS"}})),n.createElement("div",{className:"countries-prefixes"+(c?" show":"")},n.createElement("input",{ref:_,name:r,value:p,onChange:e=>function(e){n.startTransition((()=>{h(e)}));let t=S.findIndex((e=>e[2].toLowerCase().startsWith(p.toLowerCase())));t>=0&&n.startTransition((()=>d(t)))}(e.target.value),onKeyDown:e=>{const{key:t}=e;"ArrowDown"===t||"ArrowUp"===t?n.startTransition((()=>{const e="ArrowDown"===t?Math.min(m+1,S.length-1):Math.max(m-1,0);d(e),h(S[e][2])})):"Escape"===t?n.startTransition((()=>u(!1))):"Enter"===t&&(e.preventDefault(),e.stopPropagation(),f(m))}}),n.createElement("ul",{ref:b,role:"listbox",tabIndex:-1,"aria-activedescendant":`${i.name??"country-prefix"}__${S[m][0]}`},S.map((([e,t,a],r)=>n.createElement("li",{className:r===m?"selected":"",role:"option",onClick:()=>f(r),"aria-selected":r===m,"aria-label":`${a} +${t}`,id:`${i.name??"country-prefix"}__${e}`,key:`${i.name??"country-prefix"}__${e}`},a," +",t))))),!!a&&n.createElement("div",null,n.createElement(G,null,a)))}function U(){return U=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},U.apply(this,arguments)}const F=e=>{if(e.address_components)for(const t of e.address_components)if("country"==t.types[0])return t.short_name;return null};var K=({label:e,name:t,input_name:a,value:r,defaultCountryCode:o,onChange:s,onClick:l,onFocus:c,onBlur:u,data:m,...d})=>{const[p,h]=n.useState();if(!process.env.GOOGLEMAPS_KEY)throw new Error("The environment variable GOOGLEMAPS_KEY is not defined!");const{ref:g}=i.usePlacesWidget({apiKey:process.env.GOOGLEMAPS_KEY,onPlaceSelected:e=>h({target:{value:e.formatted_address,data:{countryCode:F(e)}}}),...m});return n.useEffect((()=>{s&&p&&s(p)}),[p]),n.useEffect((()=>{if(!o||r||p)return;const e=S.find((e=>e[0]===o.toLowerCase()));e&&h({target:{value:e[2],data:{countryCode:o}}})}),[o]),n.createElement("label",{className:`google-places label-${t}`},!!e&&n.createElement("span",null,e),n.createElement("input",U({ref:g,name:a,autoComplete:"off",onChange:s,onClick:l,onFocus:c,onBlur:u,value:r,placeholder:d.placeholder??void 0},d)))};const H=({animate:e=!0,...t})=>{const[a,r]=n.useState(1),o=t=>{e&&r(t)};return n.createElement("a",{className:t.className,onMouseDown:()=>o(.95),onMouseUp:()=>o(1),onTouchStart:()=>o(.95),onTouchEnd:()=>o(1),title:t.title,href:t.to,target:t.target?t.target:"_blank",onClick:t.onClick},t.children)};var V=e=>{const t=e.page_slug?u.Link:H;let a=e.page_slug?`${e.page_slug}${e.query_params?`?${e.query_params}`:""}`:e.external_link??"";return e.anchor&&(a=`${a}#${e.anchor}`),n.createElement(t,{className:`${e.className??""}${e.display_on?` ${b({},e.display_on)}`:""}`,to:a,title:e.title,target:e.target,onClick:e.onClick,animate:e.animate},!!e.icon&&n.createElement($,{icon:e.icon}),e.children?e.children:e.text)};const q=e=>{if(!e)return;let t={src:e.url,sizes:"100vw",srcSet:""},a=[],n={fallback:e.url};const r=[e.width,360,769,1024,1216,1408].sort(((e,t)=>e-t));if(e.optimized){t.src=e.url+e.name+"-"+e.width+"w.jpg",n.fallback=e.url+e.name+"-20w.jpg",a.push({sizes:"100vw",srcSet:"",type:"image/avif"}),a.push({sizes:"100vw",srcSet:"",type:"image/webp"});for(let n in r){if(r[n]>e.width)break;let o=("0"===n?"":",")+e.url+e.name+"-"+r[n];t.srcSet+=o+"w.jpg "+r[n]+"w",a[0].srcSet+=o+"w.avif "+r[n]+"w",a[1].srcSet+=o+"w.webp "+r[n]+"w"}}return c.getImage({childImageSharp:{gatsbyImageData:{backgroundColor:"transparent",height:e.height/e.width,width:1,layout:"fullWidth",placeholder:n,images:{fallback:t,sources:a}}}})};var z=({imageData:e,...a})=>{let r=e??(()=>{const e=q(a.image),t=q(a.mobile_image);return e&&t?c.withArtDirection(e,[{media:"(max-width: 768px)",image:t}]):e})();if(!r)return n.createElement("span",null,"Missing image!");const o={className:t({"mobile-img":!!a.image&&!!a.mobile_image,[a.className]:!!a.className}),image:r,onLoad:a.onLoad,alt:a.image?.alt?a.image.alt:"",style:a.style};return a.page_slug||a.external_link?n.createElement(V,{page_slug:a.page_slug,external_link:a.external_link,title:a.link_text},n.createElement(c.GatsbyImage,o)):n.createElement(c.GatsbyImage,o)};var W=({label:e,type:t,input_type:a,description:r,name:o,input_name:s,icon:l,iconOnClick:i,read_only:c,className:u,...m})=>n.createElement("label",{className:`input label-${o}${"hidden"===a?" hidden":""}${u?` label-${u}`:""}`},!!e&&n.createElement("span",null,e),!!l&&n.createElement($,{icon:l,onClick:i}),n.createElement("input",U({type:a,name:s,readOnly:c,className:u},m)),!!r&&n.createElement("div",{className:"desc"},n.createElement("div",null,n.createElement(G,null,r))));var Z=({pk:e,...t})=>n.createElement("ul",{className:t.className},t.links.map(((a,r)=>n.createElement("li",{key:`LinkList${e}-${r}`},n.createElement(V,a,t.children)))));const J=(e,t)=>{for(let a of e){if(a.hasOwnProperty("options")){for(let e of a.options)if(t===e.value)return e;return a}if(t===a.value)return a}return null};var Y=({value:e,styles:t,options:a,label:r,scrollDisabledOnClose:o,...s})=>{const l=(e=>Array.isArray(e)?e:"string"==typeof e[Object.keys(e)[0]]?Object.entries(e).reduce(((e,[t,a])=>(e.push({label:a,value:t}),e)),[]):Object.entries(e).reduce(((e,[t,a])=>(e.push({label:t,options:Object.entries(a).reduce(((e,[t,a])=>[...e,{label:a,value:t}]),[])}),e)),[]))(a);return n.createElement("label",{className:"label-"+(s.className?s.className:s.name)},!!r&&n.createElement("span",null,r),n.createElement(m,U({options:l,value:"string"==typeof e?J(l,e):e,styles:t,onMenuOpen:()=>document.body.classList.add("no-scroll"),onMenuClose:()=>!o&&document.body.classList.remove("no-scroll"),classNamePrefix:"select"},s)))};var Q=e=>n.createElement("img",{className:e.className,src:e.file.url});var X=({text:e,icon:t,...a})=>n.createElement("div",{className:a.className},!!t&&n.createElement($,{icon:t})," ",n.createElement(G,{tagAttrs:a.tagAttrs},e));var ee=({label:e,...t})=>n.createElement("label",{className:`textarea label-${t.name}`},!!e&&n.createElement("span",null,e),n.createElement("textarea",t));var te=e=>{const t=n.useMemo((()=>e.title&&"#"===e.title[0]?e.title:`### ${e.title}`),[e.title]);return n.createElement(G,{className:e.className,onClick:e.onClick},t)};var ae=({...e})=>n.createElement("button",{className:e.className,type:e.input_type??"button",onClick:e.onClick},e.value);const ne=e=>{const{children:t,icon:a,...r}=e;return n.createElement("button",U({className:"embla__button embla__button--prev",type:"button"},r),a||n.createElement("svg",{className:"embla__button__svg",viewBox:"0 0 532 532"},n.createElement("path",{fill:"currentColor",d:"M355.66 11.354c13.793-13.805 36.208-13.805 50.001 0 13.785 13.804 13.785 36.238 0 50.034L201.22 266l204.442 204.61c13.785 13.805 13.785 36.239 0 50.044-13.793 13.796-36.208 13.796-50.002 0a5994246.277 5994246.277 0 0 0-229.332-229.454 35.065 35.065 0 0 1-10.326-25.126c0-9.2 3.393-18.26 10.326-25.2C172.192 194.973 332.731 34.31 355.66 11.354Z"})),t)},re=e=>{const{children:t,icon:a,...r}=e;return n.createElement("button",U({className:"embla__button embla__button--next",type:"button"},r),a||n.createElement("svg",{className:"embla__button__svg",viewBox:"0 0 532 532"},n.createElement("path",{fill:"currentColor",d:"M176.34 520.646c-13.793 13.805-36.208 13.805-50.001 0-13.785-13.804-13.785-36.238 0-50.034L330.78 266 126.34 61.391c-13.785-13.805-13.785-36.239 0-50.044 13.793-13.796 36.208-13.796 50.002 0 22.928 22.947 206.395 206.507 229.332 229.454a35.065 35.065 0 0 1 10.326 25.126c0 9.2-3.393 18.26-10.326 25.2-45.865 45.901-206.404 206.564-229.332 229.52Z"})),t)},oe=e=>{const{children:t,...a}=e;return n.createElement("button",U({type:"button"},a),t)},se={mobile:"(max-width: 768px)",tablet:"(min-width: 769px) and (max-width: 1023px)",desktop:"(min-width: 1024px) and (max-width: 1215px)",wide:"(min-width: 1216px) and (max-width: 1407)",fullhd:"(min-width: 1408px)"};var le=({id:e,emblaRef:t,emblaApi:a,slidesPerView:r,slidesPerViewport:o,slides:s,gap:l,height:i,showButtons:c,showDots:u,showProgress:m,showScroll:d,prevIcon:p,nextIcon:h})=>{const[g,_]=n.useState(0),{selectedIndex:b,scrollSnaps:f,onDotButtonClick:y}=((e,t)=>{const[a,r]=n.useState(0),[o,s]=n.useState([]),l=n.useCallback((t=>{e&&e.scrollTo(t)}),[e]),i=n.useCallback((e=>{s(e.scrollSnapList())}),[]),c=n.useCallback((e=>{r(e.selectedScrollSnap())}),[]);return n.useEffect((()=>{e&&t&&(i(e),c(e),e.on("reInit",i),e.on("reInit",c),e.on("select",c))}),[e,i,c]),{selectedIndex:a,scrollSnaps:o,onDotButtonClick:l}})(a,u),E=a?.internalEngine().options??{},v=n.useCallback((e=>{const t=Math.max(0,Math.min(1,e.scrollProgress()));_(100*t)}),[]),{prevBtnDisabled:w,nextBtnDisabled:x,onPrevButtonClick:C,onNextButtonClick:S}=((e,t)=>{const[a,r]=n.useState(!0),[o,s]=n.useState(!0),l=n.useCallback((()=>{e&&e.scrollPrev()}),[e]),i=n.useCallback((()=>{e&&e.scrollNext()}),[e]),c=n.useCallback((e=>{r(!e.canScrollPrev()),s(!e.canScrollNext())}),[]);return n.useEffect((()=>{e&&t&&(c(e),e.on("reInit",c),e.on("select",c))}),[e,c]),{prevBtnDisabled:a,nextBtnDisabled:o,onPrevButtonClick:l,onNextButtonClick:i}})(a,c);return n.useEffect((()=>{a&&(m||d)&&(v(a),a.on("reInit",v),a.on("scroll",v))}),[a,v]),n.useEffect((()=>{if(a&&a.reInit(),"y"===E?.axis&&!i)throw Error('Vertical carousel needs "slideHeight" prop')}),[a]),n.createElement("div",{id:e,className:"embla"+("y"===E.axis?" vertical":"")},n.createElement("div",{className:"embla__viewport",ref:t},n.createElement("div",{className:"embla__container"},s.map(((t,a)=>n.createElement("div",{className:"embla__slide",key:`${e}-slide-${a}`},t))))),!!c&&n.createElement(n.Fragment,null,n.createElement(ne,{onClick:C,disabled:w,icon:p}),n.createElement(re,{onClick:S,disabled:x,icon:h})),!!u&&n.createElement("div",{className:"embla__dots"},f.map(((e,t)=>n.createElement(oe,{key:t,onClick:()=>y(t),className:"embla__dot".concat(t===b?" embla__dot--selected":"")})))),!!m&&n.createElement("div",{className:"embla__progress"},n.createElement("div",{className:"embla__progress__bar",style:{transform:`translate3d(${g}%,0px,0px)`}})),!!d&&n.createElement("div",{className:"embla__scroll"},n.createElement("div",{className:"embla__scroll__bar"})),!!Object.keys(E).length&&n.createElement("style",null,`\n #${e} > .embla__viewport > .embla__container{\n margin-${"y"===E.axis?"top":"left"}: calc(${l??0}px * -1);\n ${i?`height: calc(${l||0}px + ${i}px);`:""}\n }\n #${e} > .embla__scroll > .embla__scroll__bar{\n width: ${s.length<=r?"100%":"50%"};\n transform: translate3d(${g}%,0px,0px);\n }\n #${e} > .embla__viewport > .embla__container > .embla__slide{\n flex: 0 0 ${(100/r).toFixed(2)}%;\n padding-${"y"===E.axis?"top":"left"}: ${l||0}px;\n }\n ${o?Object.entries(o).map((([t,a])=>{let n=a.gap?a.gap:l??null,r=a.slides;return`@media ${se[t]} {\n #${e} > .embla__viewport > .embla__container{\n ${null!==n?`margin-${"y"===E.axis?"top":"left"}: calc(${n}px * -1);`:""}\n ${null!==n&&a?.height?`height: calc(${n}px + ${a.height}px);`:""}\n } \n #${e} > .embla__scroll > .embla__scroll__bar{\n width: ${s.length<=r?"100%":"50%"};\n }\n #${e} > .embla__viewport > .embla__container > .embla__slide {\n flex: 0 0 ${(100/r).toFixed(2)}%;\n ${null!==n?`padding-${"y"===E.axis?"top":"left"}: ${n}px;`:""}\n }\n }`})).join("\n"):""}\n `))};var ie=({children:e,to:t,activeClassName:a,partiallyActive:r,internal:o=!0,...s})=>o?n.createElement(u.Link,U({to:t,activeClassName:a,partiallyActive:r},s),e):n.createElement("a",U({href:t},s),e);var ce=({modalId:e,show:t,className:a,setShowModal:r,children:o,closeIcon:s={icon:"times",group:"FAS"}})=>(n.useEffect((()=>{document.body.classList[t?"add":"remove"]("no-scroll")}),[t]),n.createElement("div",{className:"modal-layout"+(t?" opened":""),onClick:t=>{t.target===t.currentTarget&&r(e,!1)}},n.createElement("div",{className:"modal"+(a?` ${a}`:"")},n.createElement("div",{className:"modal-body"},o),n.createElement("button",{className:"close",onClick:()=>r(e,!1)},n.createElement($,{icon:s})))));function ue({color:e,size:t,className:a}){return n.createElement("div",{className:"spinner-box"+(a?` ${a}`:"")},n.createElement("div",{className:"spinner",style:{border:`5px solid ${e||"white"}`,width:t||45,height:t||45}}))}const me={link:V,title:te,text:X,input:W,textarea:ee,checkbox:D,country:function({className:e,label:t,description:a,input_name:r,onClick:o,onChange:s,value:l,placeholder:i,...c}){const u=n.useMemo((()=>S.reduce(((e,t)=>(e[t[0]]=t[2],e)),{})),[]),[m,d]=n.useState(!1),[p,h]=n.useState(0),[_,b]=n.useState(""),f=n.useRef(null),y=n.useRef(null),E=n.useCallback((e=>{s?.(S[e][0]),n.startTransition((()=>{d(!1),h(e),b(S[e][2])}))}),[s,S]),v=n.useCallback((()=>{if(!y.current)return;const e=y.current.querySelector(`#${c.name??"country"}__${S[p][0]}`);e&&g(y.current,e)}),[p,S]);return n.useEffect((()=>{const e=e=>{f.current&&!f.current.contains(e.target)&&y.current&&!y.current.contains(e.target)&&n.startTransition((()=>d(!1)))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[f,y]),n.useEffect((()=>{v()}),[p]),n.useEffect((()=>{document.body.classList[m?"add":"remove"]("no-scroll"),f.current&&m&&f.current.focus()}),[m]),n.createElement("label",{className:`country ${e?` ${e}`:""}${!l&&i?" placeholder":""}`},!!t&&n.createElement("span",null,t),n.createElement("div",{className:"selected-country",onClick:()=>n.startTransition((()=>d(!0)))},l?u[l]:i??"",n.createElement($,{className:m?"opened":"",icon:{icon:"chevron-right",group:"FAS"}})),n.createElement("div",{className:"countries"+(m?" show":"")},n.createElement("input",{ref:f,name:r,value:_,onKeyDown:e=>{const{key:t,target:a}=e;"ArrowDown"===t||"ArrowUp"===t?n.startTransition((()=>{const e="ArrowDown"===t?Math.min(p+1,S.length-1):Math.max(p-1,0);h(e),b(S[e][2])})):"Escape"===t?n.startTransition((()=>d(!1))):"Enter"===t?(e.preventDefault(),e.stopPropagation(),E(p)):1!==t.length&&"Backspace"!==t||(e.preventDefault(),e.stopPropagation(),n.startTransition((()=>function(e){n.startTransition((()=>{b(e)}));let t=S.findIndex((e=>e[2].toLowerCase().startsWith(_.toLowerCase())));t>=0&&n.startTransition((()=>h(t)))}("Backspace"===t?_.slice(0,-1):`${_}${t}`))))},onChange:()=>null}),n.createElement("ul",{ref:y,role:"listbox",tabIndex:-1,"aria-activedescendant":`${c.name??"country"}__${S[p][0]}`},S.map((([e,t,a],r)=>n.createElement("li",{className:r===p?"selected":"",role:"option",onClick:()=>E(r),"aria-selected":r===p,"aria-label":a,id:`${c.name??"country"}__${e}`,key:`${c.name??"country"}__${e}`},a))))),!!a&&n.createElement("div",null,n.createElement(G,null,a)))},"country-prefix":j,select:Y,button:ae,"google-places":K,image:z,hidden:W},de=e=>{if(me.hasOwnProperty(e.type)){const t=me[e.type];return n.createElement(t,e)}return console.error(`Element "${e.type}" not supported by <Form />!`),n.createElement(n.Fragment,null)};var pe=(e,t={})=>{const{threshold:a=.5,autoDisconnect:r=!0,onIntersect:o}=t,[s,l]=n.useState(!1),i=n.useRef(null);n.useEffect((()=>{i.current=new IntersectionObserver(((e,t)=>{e.forEach((e=>{e.isIntersecting&&(l(!0),o?.(),r&&t.disconnect())}))}),{threshold:a});const t=e.current;return t&&i.current.observe(t),()=>{t&&i.current&&i.current.disconnect(),i.current=null}}),[e,a,r,o]);return[s,()=>{i.current&&i.current.disconnect()}]};exports.BookingUrl=(t,a,n,r,o=null,s=null)=>{let l=function(e,t){let a=e.split(/\$\{(?!\d)[\wæøåÆØÅ]*\}/),n=(e.match(/[^{}]+(?=})/g)||[]).map((e=>t[e]||(void 0===t[e]?"":t[e])));return String.raw({raw:a},...n)}(a.variables,{hotel_code:t,check_in:e.format(n.check_in,a.date_format.replace(/m/g,"M")),check_out:e.format(n.check_out,a.date_format.replace(/m/g,"M")),adult_count:n.adult_count,child_count:n.child_count,total_rooms:n.rooms??1,rate_code:r&&!n.promo_codes.length&&o?o:"",promo_code:n.promo_codes.length?n.promo_codes[0]:""});s&&(l+="&room="+s);let i="undefined"!=typeof window&&d(window.innerWidth)?(r?a.mobile_url:a.mobile_url_no_availability)+"&"+l:(r?a.url:a.url_no_availability)+"&"+l;window.open(i,"_blank")},exports.Button=ae,exports.Carousel=le,exports.Checkbox=D,exports.CountryPrefix=j,exports.Form=function({className:e,form:a,setForm:r,errors:o,setErrors:s,beforeSubmit:l,formatParams:i,validate:c,validateResponse:u,onSuccess:m,onFocus:d,onBlur:p,onClick:h,onChange:g,onError:_,afterSubmit:b,loading:y}){const[v,C]=n.useState(!1),S=(e,t=!0)=>n.createElement("div",null,n.createElement("ul",{className:"error"},Object.entries(e).map((([e,a],r)=>n.createElement("li",{key:`error-form${r}`},n.createElement("span",null,t?n.createElement("strong",null,e,":"):""," ",a))))));n.useEffect((()=>{const e=()=>{window.grecaptcha?.execute?C(!0):setTimeout(e,500)};e()}),[]);const k=n.useCallback((async()=>process.env.RECAPTCHA_V3_SITE_KEY?window.grecaptcha?.execute?await window.grecaptcha.execute(process.env.RECAPTCHA_V3_SITE_KEY,{action:a.settings.recaptcha_action??"submit"}):(console.warn("reCAPTCHA not yet loaded."),null):(console.error("RECAPTCHA_V3_SITE_KEY is not defined!"),null)),[v]),$=e=>{if("string"==typeof e){const l=a.fields[e];return n.createElement("div",{className:`${l.type} ${l.type}-${l.name}${l.data?.class?` ${l.type}-${l.data.class}`:""}`,key:`ff-${a.settings.pk}-${e}`},x.has(l.type)?n.createElement(de,U({className:t({[l.data.class]:Boolean(l.data.class),error:Boolean(o[e])}),onFocus:e=>{d&&d(e)},onBlur:e=>{p&&p(e)},onClick:t=>{if(["checkbox","radio"].includes(l.input_type)){let t={...a};"checkbox"===l.input_type?t.fields={...a.fields,[e]:{...l,value:!l.value}}:t.fields=Object.entries(a.fields).reduce(((e,[t,a])=>(e[t]=a,a.input_name===l.input_name&&(e[t].checked=l.value===e[t].value),e)),{}),n.startTransition((()=>{r(t),o[e]&&s({})}))}h&&h(t)},checked:"radio"===l.input_type?!!l.checked:void 0,onChange:t=>{["checkbox","radio"].includes(l.input_type)||n.startTransition((()=>{r({...a,fields:{...a.fields,[e]:{...l,value:E(l.type,t),data:t.target?.data?{...l.data,...t.target.data}:l.data}}}),o[e]&&s({})})),g&&g(t)}},l,{value:l.value?l.value:""})):n.createElement(de,l))}return n.createElement("div",{className:`form-section ${e.name}`,key:`ff-${a.settings.pk}-${e.name}`},e.children.map($))};return n.createElement("form",{className:e,action:a.settings.form_submit,method:a.settings.form_method,onSubmit:e=>(async e=>{e.preventDefault();let t={},o=Object.values(a.fields).reduce(((e,a)=>{if(x.has(a.type)){if(a.required&&!a.value){const n=a.label?a.label:a.placeholder;return t[a.input_name]=`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} is required`,e}if("radio"===a.input_type&&!a.checked)return e;e[a.input_name]=w(a.type,a.value)}return e}),{});if(a.settings.recaptcha_v3&&(o.recaptcha_token=await k(),o.recaptcha_token||(t.recaptcha="reCAPTCHA failed!")),a.fields.recaptcha&&!o.recaptcha&&(t.recaptcha="Recaptcha is mandatory"),c&&(t={...t,...c(a.fields,o)}),Object.keys(t).length)return void n.startTransition((()=>{s(t),A(S(t,!1))}));if(l&&l(a),i&&(o=i(o)),!a.settings.form_ajax_request)return e.target.submit();const d=await f(a.settings.form_submit,o,a.settings.form_method,a.settings.form_recipient?{"recipient-id":`${a.settings.form_recipient}`}:{});n.startTransition((()=>{if(200!==d.status||u&&!u(d))if(_)_(d);else if(d.errors){let e=Object.entries(d.errors).reduce(((e,[t,a])=>(e[t]=a.join(", "),e)),{});A(S(e)),s(e)}else d.error&&A(S({failed:d.error?n.createElement(G,null,d.error):"Oops. Something went wrong. Please try again later, or contact us at members@tfehotels.com"},!1));else m?m(d,a.settings.form_success_msg):A(a.settings.form_success_msg?n.createElement(G,null,a.settings.form_success_msg):"Success! Your form has been successfully sent. Thank you for reaching out, we will get back to you as soon as possible.","success"),a.settings.form_redirection&&setTimeout((()=>{window.location.href=a.settings.form_redirection}),3e3),r({...a,fields:Object.entries(a.fields).reduce(((e,[t,a])=>(e[t]=!["button","hidden"].includes(a.type)&&x.has(a.type)?{...a,value:""}:a,e)),{})})})),b&&b(d)})(e),noValidate:!0},y?n.createElement(ue,{color:"#00b5ee"}):a.items.map($))},exports.GatsbyLink=ie,exports.GooglePlaces=K,exports.Icon=$,exports.Image=z,exports.Input=W,exports.Link=V,exports.LinkList=Z,exports.Markdown=G,exports.Modal=ce,exports.SVG=Q,exports.SearchAvailability=async(t,a,n,r,o,s,l)=>{if(!l)throw new Error('"hotel_codes" must be defined within the page attributes!');return fetch(`${process.env.SABRE_PROTOCOL}://${process.env.SABRE_HOST}/availability`,{headers:{"Content-Type":"application/json"},method:"POST",body:JSON.stringify({check_in:e.format(t,"yyyy-MM-dd"),check_out:e.format(a,"yyyy-MM-dd"),hotel_codes:l,adult_count:n,child_count:r,area_codes:[],promo_codes:o,rate_codes:s,price_range:{min:0,max:0},is_mobile:"undefined"!=typeof window&&d(window.innerWidth),language:"en"})}).then((e=>e.json())).then((e=>(e=>e.success?(e.data.forEach((e=>{e.room_rates={},e.rates.forEach((t=>t.forEach((t=>{e.room_rates.hasOwnProperty(t.room_type_code)||(e.room_rates[t.room_type_code]=[]),e.room_rates[t.room_type_code].push(t)}))))})),e.data):{})(e)),(e=>{console.log(e)}))},exports.Select=Y,exports.Spinner=ue,exports.Text=X,exports.Textarea=ee,exports.Title=te,exports.Toast=O,exports.animateJSX=(e,t="presence")=>`jsx__${t} jsx__${t}__${["from","leave"].includes(e.stage)?"loading":"loaded"}`,exports.apiLink=(e="",t=null)=>`${R(`${process.env.API_PROTOCOL}://${process.env.API_HOST}`,e)}${t?`?${new URLSearchParams(t).toString()}`:""}`,exports.cacheSearchParams=e=>localStorage.setItem("search-params",JSON.stringify(e)),exports.cachedSearchParams=()=>{if("undefined"==typeof window)return null;let t=localStorage.getItem("search-params");return t&&(t=JSON.parse(t),t.rate_codes=[],t.promo_codes=[],t.check_in=t.check_in?new Date(t.check_in):new Date,t.check_out=t.check_out?new Date(t.check_out):e.addDays(new Date,1),t.check_in<new Date)?null:t},exports.classNames=b,exports.countryPrefixes=S,exports.dealLink=e=>{if(!process.env.DEALS_ROOT_SLUG)throw new Error("The env variable DEALS_ROOT_SLUG is not defined!");return R(process.env.DEALS_ROOT_SLUG,e)},exports.decodeQuotePlus=e=>decodeURIComponent(e.replace(/\+/g,"%20")),exports.deleteUserSession=()=>{sessionStorage.removeItem("user")},exports.deviceId=e=>e>1023?"d":e>768?"t":"m",exports.getInputEventValue=E,exports.getInputHumanValue=w,exports.getThumb=e=>e.image||e.mobile_image?"undefined"!=typeof window&&d(window.innerWidth)?e.mobile_image?C(e.mobile_image):C(e.image):e.image?C(e.image):C(e.mobile_image):"",exports.getViewPort=()=>{if("undefined"==typeof window)throw new Error("getViewPort() requires browser window!");return d(window.innerWidth)?"m":p(window.innerWidth)?"t":"d"},exports.hotelOptionsByCity=e=>{let t={Sydney:[],Melbourne:[],Brisbane:[],Perth:[],Hobart:[],Canberra:[],Adelaide:[],"Gold Coast":[],Darwin:[],Auckland:[],Wellington:[],Singapore:[]};const a=Object.entries(e).reduce(((e,[a,n])=>(t[n.city]?t[n.city].push({label:n.name,value:a}):t[n.city]=[{label:n.name,value:a}],e[a]=n.sort,e)),{});return Object.entries(t).map((([e,t])=>({label:e,options:t.sort(((e,t)=>a[e.value]-a[t.value]))})))},exports.human_number=function(e,t=2){return e.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:t})},exports.isDesktop=h,exports.isIOS=()=>/iPad|iPhone|iPod/.test(navigator.userAgent),exports.isMobile=d,exports.isTablet=p,exports.joinAddress=e=>e.reduce(((e,t)=>(t&&e.push(t),e)),[]).join(", "),exports.joinPaths=R,exports.json_request=f,exports.loadUserSession=()=>{const e=sessionStorage.getItem("user");return e?JSON.parse(e):null},exports.minimumSlides=(e,t)=>t.length>=e?t:[].concat(...new Array(Math.ceil(e/t.length)).fill(t)),exports.optimizedThumb=C,exports.parseQueryParams=function(e,t={}){return e?(t={rate_code:"rate_codes",promo_code:"promo_codes",...t},e.slice(1).split("&").reduce(((e,a)=>{let[n,r]=a.split("=");return n=decodeURIComponent(n),r=decodeURIComponent(r||""),t[n]&&(n=t[n]),e[n]=B.hasOwnProperty(n)?B[n](r):r,e}),{})):{}},exports.preloadImages=async e=>{e.forEach((e=>{if(e){(new Image).src=e}}))},exports.pricePerNight=(e,t)=>(parseFloat(e)/t).toFixed(2),exports.roomFeatures=["balcony","sofa_bed","kitchen","kitchenette","laundry_machine"],exports.saveUserSession=e=>{sessionStorage.setItem("user",JSON.stringify({loyaltyprofileId:e.loyaltyprofileId,profile_id:e.profile_id,title:e.title,first_name:e.first_name,last_name:e.last_name,email:e.email,zip:e.zip,country_code:e.country_code,MobilePhoneCountryCode:e.MobilePhoneCountryCode,mobile:e.mobile,date_of_birth:e.date_of_birth,language:e.language}))},exports.scrollToChild=g,exports.scrollToElement=async e=>{document.getElementById(e)?.scrollIntoView({behavior:"smooth"})},exports.siteUrl=(e="")=>`${process.env.PROTOCOL}://${process.env.HOST}${e}`,exports.sp_to_qs=(t,a,n,r,o,s,l=void 0,i=1)=>`?check_in=${e.format(t,"yyyy-MM-dd")}&check_out=${e.format(a,"yyyy-MM-dd")}&adult_count=${n}&child_count=${r}&promo_code=${s?.length?s[0]:""}&rate_code=${o?.length?o[0]:""}${l?`&hotel_codes=${l}`:""}&rooms=${i}`,exports.ssoURL=e=>`${process.env.SABRE_SSO_PROTOCOL}://${process.env.SABRE_SSO_HOST}${e}`,exports.tagExists=(e,...t)=>{for(const a of Object.keys(e))if(t.includes(a))return!0;return!1},exports.toImageElement=(e,t={})=>Object.entries(e).reduce(((e,[a,n])=>(e[t[a]||a]=n,e)),{type:"image",title:"",loading:"eager",image:void 0,mobile_image:void 0,mobile_file:void 0}),exports.toPhrase=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/[_-]/g," ").toLowerCase(),exports.toastMsg=A,exports.useIntersectionObserver=pe,exports.useViewport=function(){const[e,t]=n.useState("d");return n.useEffect((()=>{const a=()=>{const a=window.innerWidth;if("m"===e){if(d(a))return}else if("t"===e){if(p(a))return}else if("d"===e&&h(a))return;n.startTransition((()=>t(d(a)?"m":p(a)?"t":"d")))};return a(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a)}}),[e]),e};
1
+ "use strict";var e=require("date-fns"),t=require("classnames"),a=require("react-hot-toast"),n=require("react"),r=require("goober"),o=require("@fortawesome/react-fontawesome"),s=require("marked"),l=require("html-react-parser"),i=require("react-google-autocomplete"),c=require("gatsby-plugin-image"),u=require("gatsby"),m=require("react-select");const d=e=>e<769,p=e=>e>=769&&e<1024,h=e=>e>=1024,g=(e,t)=>{const a=e.style.display;"block"!==a&&(e.style.display="block");const n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),o=r.top-n.top,s=n.bottom-r.bottom;o>=0&&s>=0||(Math.abs(o)<Math.abs(s)?e.scrollTop+=o:e.scrollTop-=s),e.style.display=a},_=(e,t)=>t?!!e.length&&!e.includes(t):!e.length,b=(e,a=null)=>(a&&(e.hidden=_(a,""),e.hidden_mobile=_(a,"m"),e.hidden_tablet=_(a,"t"),e.hidden_desktop=_(a,"d")),t(e));const f=async(e,t,a="post",n={})=>{e.includes(process.env.API_HOST)&&(n["project-id"]=process.env.PROJECT);let r={headers:{"Content-Type":"application/json",...n},method:a.toUpperCase()};"post"===a?r.body=JSON.stringify(t):e=`${e}?${new URLSearchParams(Object.entries(t).map((([e,t])=>[e,null===t?"":`${t}`])))}`;try{let t=await fetch(e,r);return{...await t.json(),status:t.status}}catch(e){return console.error(e),{success:!1,error:"Request failed",status:400}}},y={select:e=>e.value,input:e=>e.target.value,textarea:e=>e.target.value,"google-places":e=>e.target.value},E=(e,t)=>y.hasOwnProperty(e)?y[e](t):t,v={},w=(e,t)=>v.hasOwnProperty(e)?v[e](t):t,x=new Set(["input","select","textarea","checkbox","button","recaptcha2","google-places","country-prefix","country","hidden"]),C=e=>e.optimized?`${e.url}${e.name}-20w.webp`:e.url,S=[["AF","93","Afghanistan"],["AL","355","Albania"],["DZ","213","Algeria"],["AD","376","Andorra"],["AO","244","Angola"],["AG","1268","Antigua and Barbuda"],["AR","54","Argentina"],["AM","374","Armenia"],["AW","297","Aruba"],["AU","61","Australia"],["AT","43","Austria"],["AZ","994","Azerbaijan"],["BS","1242","Bahamas"],["BH","973","Bahrain"],["BD","880","Bangladesh"],["BB","1246","Barbados"],["BY","375","Belarus"],["BE","32","Belgium"],["BZ","501","Belize"],["BJ","229","Benin"],["BT","975","Bhutan"],["BO","591","Bolivia"],["BA","387","Bosnia and Herzegovina"],["BW","267","Botswana"],["BR","55","Brazil"],["IO","246","British Indian Ocean Territory"],["BN","673","Brunei"],["BG","359","Bulgaria"],["BF","226","Burkina Faso"],["BI","257","Burundi"],["KH","855","Cambodia"],["CM","237","Cameroon"],["CA","1","Canada"],["CV","238","Cape Verde"],["BQ","599","Caribbean Netherlands"],["CF","236","Central African Republic"],["TD","235","Chad"],["CL","56","Chile"],["CN","86","China"],["CO","57","Colombia"],["KM","269","Comoros"],["CD","243","Congo"],["CG","242","Congo"],["CR","506","Costa Rica"],["CI","225","Côte d'Ivoire"],["HR","385","Croatia"],["CU","53","Cuba"],["CW","599","Curaçao"],["CY","357","Cyprus"],["CZ","420","Czech Republic"],["DK","45","Denmark"],["DJ","253","Djibouti"],["DM","1767","Dominica"],["DO","1","Dominican Republic"],["EC","593","Ecuador"],["EG","20","Egypt"],["SV","503","El Salvador"],["GQ","240","Equatorial Guinea"],["ER","291","Eritrea"],["EE","372","Estonia"],["ET","251","Ethiopia"],["FJ","679","Fiji"],["FI","358","Finland"],["FR","33","France"],["GF","594","French Guiana"],["PF","689","French Polynesia"],["GA","241","Gabon"],["GM","220","Gambia"],["GE","995","Georgia"],["DE","49","Germany"],["GH","233","Ghana"],["GR","30","Greece"],["GD","1473","Grenada"],["GP","590","Guadeloupe"],["GU","1671","Guam"],["GT","502","Guatemala"],["GN","224","Guinea"],["GW","245","Guinea-Bissau"],["GY","592","Guyana"],["HT","509","Haiti"],["HN","504","Honduras"],["HK","852","Hong Kong"],["HU","36","Hungary"],["IS","354","Iceland"],["IN","91","India"],["ID","62","Indonesia"],["IR","98","Iran"],["IQ","964","Iraq"],["IE","353","Ireland"],["IL","972","Israel"],["IT","39","Italy"],["JM","1876","Jamaica"],["JP","81","Japan"],["JO","962","Jordan"],["KZ","7","Kazakhstan"],["KE","254","Kenya"],["KI","686","Kiribati"],["XK","383","Kosovo"],["KW","965","Kuwait"],["KG","996","Kyrgyzstan"],["LA","856","Laos"],["LV","371","Latvia"],["LB","961","Lebanon"],["LS","266","Lesotho"],["LR","231","Liberia"],["LY","218","Libya"],["LI","423","Liechtenstein"],["LT","370","Lithuania"],["LU","352","Luxembourg"],["MO","853","Macau"],["MK","389","Macedonia"],["MG","261","Madagascar"],["MW","265","Malawi"],["MY","60","Malaysia"],["MV","960","Maldives"],["ML","223","Mali"],["MT","356","Malta"],["MH","692","Marshall Islands"],["MQ","596","Martinique"],["MR","222","Mauritania"],["MU","230","Mauritius"],["MX","52","Mexico"],["FM","691","Micronesia"],["MD","373","Moldova"],["MC","377","Monaco"],["MN","976","Mongolia"],["ME","382","Montenegro"],["MA","212","Morocco"],["MZ","258","Mozambique"],["MM","95","Myanmar"],["NA","264","Namibia"],["NR","674","Nauru"],["NP","977","Nepal"],["NL","31","Netherlands"],["NC","687","New Caledonia"],["NZ","64","New Zealand"],["NI","505","Nicaragua"],["NE","227","Niger"],["NG","234","Nigeria"],["KP","850","North Korea"],["NO","47","Norway"],["OM","968","Oman"],["PK","92","Pakistan"],["PW","680","Palau"],["PS","970","Palestine"],["PA","507","Panama"],["PG","675","Papua New Guinea"],["PY","595","Paraguay"],["PE","51","Peru"],["PH","63","Philippines"],["PL","48","Poland"],["PT","351","Portugal"],["PR","1","Puerto Rico"],["QA","974","Qatar"],["RE","262","Réunion"],["RO","40","Romania"],["RU","7","Russia"],["RW","250","Rwanda"],["KN","1869","Saint Kitts and Nevis"],["LC","1758","Saint Lucia"],["VC","1784","Saint Vincent and the Grenadines"],["WS","685","Samoa"],["SM","378","San Marino"],["ST","239","São Tomé and Príncipe"],["SA","966","Saudi Arabia"],["SN","221","Senegal"],["RS","381","Serbia"],["SC","248","Seychelles"],["SL","232","Sierra Leone"],["SG","65","Singapore"],["SK","421","Slovakia"],["SI","386","Slovenia"],["SB","677","Solomon Islands"],["SO","252","Somalia"],["ZA","27","South Africa"],["KR","82","South Korea"],["SS","211","South Sudan"],["ES","34","Spain"],["LK","94","Sri Lanka"],["SD","249","Sudan"],["SR","597","Suriname"],["SZ","268","Swaziland"],["SE","46","Sweden"],["CH","41","Switzerland"],["SY","963","Syria"],["TW","886","Taiwan"],["TJ","992","Tajikistan"],["TZ","255","Tanzania"],["TH","66","Thailand"],["TL","670","Timor-Leste"],["TG","228","Togo"],["TO","676","Tonga"],["TT","1868","Trinidad and Tobago"],["TN","216","Tunisia"],["TR","90","Turkey"],["TM","993","Turkmenistan"],["TV","688","Tuvalu"],["UG","256","Uganda"],["UA","380","Ukraine"],["AE","971","United Arab Emirates"],["GB","44","United Kingdom"],["US","1","United States"],["UY","598","Uruguay"],["UZ","998","Uzbekistan"],["VU","678","Vanuatu"],["VA","39","Vatican City"],["VE","58","Venezuela"],["VN","84","Vietnam"],["YE","967","Yemen"],["ZM","260","Zambia"],["ZW","263","Zimbabwe"]],k={FAB:"fab",FAS:"fas"},$=({icon:e,className:t,onClick:a,color:r,width:s,height:l})=>k.hasOwnProperty(e.group)?n.createElement(o.FontAwesomeIcon,{className:t,color:r,onClick:a,icon:[k[e.group],e.icon]}):n.createElement("img",{className:t,width:s,height:l,alt:e.icon,onClick:a,src:`/icons/${e.group}/${e.icon}.svg`}),N=e=>`\n0% {transform: translate3d(0,${-200*e}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`,T=e=>`\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${-150*e}%,-1px) scale(.6); opacity:0;}\n`,M=(()=>{let e;return()=>{if(void 0===e&&"undefined"!=typeof window){const t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),O=({id:e,visible:t,message:o,height:s,position:l,variant:i})=>{const c=s?((e,t)=>{const a=e.includes("top")?1:-1,[n,o]=M()?["0%{opacity:0;} 100%{opacity:1;}","0%{opacity:1;} 100%{opacity:0;}"]:[N(a),T(a)];return{animation:t?`${r.keyframes(n)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${r.keyframes(o)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}})(l||"top-center",t):{opacity:0};return n.createElement("div",{className:`toast ${t?"animate-enter":"animate-leave"} ${i}`,style:{...c}},n.createElement("button",{className:"close",onClick:()=>a.toast.dismiss(e)},n.createElement($,{icon:{icon:"close",group:"GLO"}})),o)},A=(e,t="error",r=1e4)=>{a.custom((a=>n.createElement(O,{id:a.id,visible:a.visible,message:e,variant:t,height:a.height,position:a.position})),{duration:r})};const L=t=>{try{return t?e.parseISO(t):void 0}catch(e){return}},P=e=>{try{return e?parseInt(e):void 0}catch(e){return}},I=e=>e?[e]:[],B={check_in:L,check_out:L,child_count:P,adult_count:P,rate_codes:I,promo_codes:I};const R=(e,t)=>`${e.replace(new RegExp("/$"),"")}/${t.replace(new RegExp("^/"),"")}`;function G({children:e,className:t,tagAttrs:a,onClick:r}){const o=new s.marked.Renderer;o.link=(e,t,n)=>{let r={href:e,title:t??"",target:"_blank"};return a?.a&&(r={...r,...a?.a}),`<a ${Object.entries(r).map((([e,t])=>`${e}="${t}"`)).join(" ")}>${n}</a>`},s.marked.setOptions({renderer:o});const i=()=>l(e?s.marked(e):"");return n.createElement(n.Fragment,null,t||r?n.createElement("div",{className:t,onClick:r},i()):n.createElement(n.Fragment,null,i()))}function D({className:e,label:t,description:a,...r}){return n.createElement("label",{className:`checkbox${r.value?" checked":""}${e?` ${e}`:""}`,onClick:r.onClick,onChange:r.onChange},!!t&&n.createElement("span",null,t),n.createElement("svg",{id:r.id,width:r.width?r.width:30,height:r.height?r.height:30,viewBox:"0 0 440 440"},n.createElement("path",{className:"box",d:"M 72 136 C 72 100.654 100.654 72 136 72 L 304 72 C 339.346 72 368 100.654 368 136 L 368 304 C 368 339.346 339.346 368 304 368 L 136 368 C 100.654 368 72 339.346 72 304 Z",fill:r.color?r.color:"#58595b"}),n.createElement("path",{className:"tick",d:"M 160 180 L 210 250 L 340 130",transform:"translate(40 65) rotate(-10 70.904 438.687)",fill:"transparent",strokeWidth:30,stroke:"white",strokeLinecap:"square",strokeLinejoin:"miter"})),!!a&&n.createElement("div",null,n.createElement(G,null,a)))}function j({className:e,label:t,description:a,input_name:r,onClick:o,onChange:s,value:l,...i}){const[c,u]=n.useState(!1),[m,d]=n.useState(0),[p,h]=n.useState(""),_=n.useRef(null),b=n.useRef(null),f=n.useCallback((e=>{s?.(S[e][1]),n.startTransition((()=>{u(!1),d(e),h(S[e][2])}))}),[s,S]),y=n.useCallback((()=>{if(!b.current)return;const e=b.current.querySelector(`#${i.name??"country-prefix"}__${S[m][0]}`);e&&g(b.current,e)}),[m,S]);return n.useEffect((()=>{const e=e=>{_.current&&!_.current.contains(e.target)&&b.current&&!b.current.contains(e.target)&&n.startTransition((()=>u(!1)))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[_,b]),n.useEffect((()=>{y()}),[m]),n.useEffect((()=>{document.body.classList[c?"add":"remove"]("no-scroll"),_.current&&c&&_.current.focus()}),[c]),n.createElement("label",{className:"country-prefix "+(e?` ${e}`:"")},!!t&&n.createElement("span",null,t),n.createElement("div",{className:"selected-prefix",onClick:()=>n.startTransition((()=>u(!0)))},"+",l??S[0][1],n.createElement($,{className:c?"opened":"",icon:{icon:"chevron-right",group:"FAS"}})),n.createElement("div",{className:"countries-prefixes"+(c?" show":"")},n.createElement("input",{ref:_,name:r,value:p,onChange:e=>function(e){n.startTransition((()=>{h(e)}));let t=S.findIndex((e=>e[2].toLowerCase().startsWith(p.toLowerCase())));t>=0&&n.startTransition((()=>d(t)))}(e.target.value),onKeyDown:e=>{const{key:t}=e;"ArrowDown"===t||"ArrowUp"===t?n.startTransition((()=>{const e="ArrowDown"===t?Math.min(m+1,S.length-1):Math.max(m-1,0);d(e),h(S[e][2])})):"Escape"===t?n.startTransition((()=>u(!1))):"Enter"===t&&(e.preventDefault(),e.stopPropagation(),f(m))}}),n.createElement("ul",{ref:b,role:"listbox",tabIndex:-1,"aria-activedescendant":`${i.name??"country-prefix"}__${S[m][0]}`},S.map((([e,t,a],r)=>n.createElement("li",{className:r===m?"selected":"",role:"option",onClick:()=>f(r),"aria-selected":r===m,"aria-label":`${a} +${t}`,id:`${i.name??"country-prefix"}__${e}`,key:`${i.name??"country-prefix"}__${e}`},a," +",t))))),!!a&&n.createElement("div",null,n.createElement(G,null,a)))}function U(){return U=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},U.apply(this,arguments)}const F=e=>{if(e.address_components)for(const t of e.address_components)if("country"==t.types[0])return t.short_name;return null};var K=({label:e,name:t,input_name:a,value:r,defaultCountryCode:o,onChange:s,onClick:l,onFocus:c,onBlur:u,data:m,...d})=>{const[p,h]=n.useState();if(!process.env.GOOGLEMAPS_KEY)throw new Error("The environment variable GOOGLEMAPS_KEY is not defined!");const{ref:g}=i.usePlacesWidget({apiKey:process.env.GOOGLEMAPS_KEY,onPlaceSelected:e=>h({target:{value:e.formatted_address,data:{countryCode:F(e)}}}),...m});return n.useEffect((()=>{s&&p&&s(p)}),[p]),n.useEffect((()=>{if(!o||r||p)return;const e=S.find((e=>e[0]===o.toLowerCase()));e&&h({target:{value:e[2],data:{countryCode:o}}})}),[o]),n.createElement("label",{className:`google-places label-${t}`},!!e&&n.createElement("span",null,e),n.createElement("input",U({ref:g,name:a,autoComplete:"off",onChange:s,onClick:l,onFocus:c,onBlur:u,value:r,placeholder:d.placeholder??void 0},d)))};const H=({animate:e=!0,...t})=>{const[a,r]=n.useState(1),o=t=>{e&&r(t)};return n.createElement("a",{className:t.className,onMouseDown:()=>o(.95),onMouseUp:()=>o(1),onTouchStart:()=>o(.95),onTouchEnd:()=>o(1),title:t.title,href:t.to,target:t.target?t.target:t.to?"_blank":void 0,onClick:t.onClick},t.children)};var V=e=>{const t=e.page_slug?u.Link:H;let a=e.page_slug?`${e.page_slug}${e.query_params?`?${e.query_params}`:""}`:e.external_link??"";return e.anchor&&(a=`${a}#${e.anchor}`),n.createElement(t,{className:`${e.className??""}${e.display_on?` ${b({},e.display_on)}`:""}`,to:a,title:e.title,target:e.target,onClick:e.onClick,animate:e.animate},!!e.icon&&n.createElement($,{icon:e.icon}),e.children?e.children:e.text)};const q=e=>{if(!e)return;let t={src:e.url,sizes:"100vw",srcSet:""},a=[],n={fallback:e.url};const r=[e.width,360,769,1024,1216,1408].sort(((e,t)=>e-t));if(e.optimized){t.src=e.url+e.name+"-"+e.width+"w.jpg",n.fallback=e.url+e.name+"-20w.jpg",a.push({sizes:"100vw",srcSet:"",type:"image/avif"}),a.push({sizes:"100vw",srcSet:"",type:"image/webp"});for(let n in r){if(r[n]>e.width)break;let o=("0"===n?"":",")+e.url+e.name+"-"+r[n];t.srcSet+=o+"w.jpg "+r[n]+"w",a[0].srcSet+=o+"w.avif "+r[n]+"w",a[1].srcSet+=o+"w.webp "+r[n]+"w"}}return c.getImage({childImageSharp:{gatsbyImageData:{backgroundColor:"transparent",height:e.height/e.width,width:1,layout:"fullWidth",placeholder:n,images:{fallback:t,sources:a}}}})};var z=({imageData:e,...a})=>{let r=e??(()=>{const e=q(a.image),t=q(a.mobile_image);return e&&t?c.withArtDirection(e,[{media:"(max-width: 768px)",image:t}]):e})();if(!r)return n.createElement("span",null,"Missing image!");const o={className:t({"mobile-img":!!a.image&&!!a.mobile_image,[a.className]:!!a.className}),image:r,onLoad:a.onLoad,alt:a.image?.alt?a.image.alt:"",style:a.style};return a.page_slug||a.external_link?n.createElement(V,{page_slug:a.page_slug,external_link:a.external_link,title:a.link_text},n.createElement(c.GatsbyImage,o)):n.createElement(c.GatsbyImage,o)};var W=({label:e,type:t,input_type:a,description:r,name:o,input_name:s,icon:l,iconOnClick:i,read_only:c,className:u,...m})=>n.createElement("label",{className:`input label-${o}${"hidden"===a?" hidden":""}${u?` label-${u}`:""}`},!!e&&n.createElement("span",null,e),!!l&&n.createElement($,{icon:l,onClick:i}),n.createElement("input",U({type:a,name:s,readOnly:c,className:u},m)),!!r&&n.createElement("div",{className:"desc"},n.createElement("div",null,n.createElement(G,null,r))));var Z=({pk:e,...t})=>n.createElement("ul",{className:t.className},t.links.map(((a,r)=>n.createElement("li",{key:`LinkList${e}-${r}`},n.createElement(V,a,t.children)))));const J=(e,t)=>{for(let a of e){if(a.hasOwnProperty("options")){for(let e of a.options)if(t===e.value)return e;return a}if(t===a.value)return a}return null};var Y=({value:e,styles:t,options:a,label:r,scrollDisabledOnClose:o,...s})=>{const l=(e=>Array.isArray(e)?e:"string"==typeof e[Object.keys(e)[0]]?Object.entries(e).reduce(((e,[t,a])=>(e.push({label:a,value:t}),e)),[]):Object.entries(e).reduce(((e,[t,a])=>(e.push({label:t,options:Object.entries(a).reduce(((e,[t,a])=>[...e,{label:a,value:t}]),[])}),e)),[]))(a);return n.createElement("label",{className:"label-"+(s.className?s.className:s.name)},!!r&&n.createElement("span",null,r),n.createElement(m,U({options:l,value:"string"==typeof e?J(l,e):e,styles:t,onMenuOpen:()=>document.body.classList.add("no-scroll"),onMenuClose:()=>!o&&document.body.classList.remove("no-scroll"),classNamePrefix:"select"},s)))};var Q=e=>n.createElement("img",{className:e.className,src:e.file.url});var X=({text:e,icon:t,...a})=>n.createElement("div",{className:a.className},!!t&&n.createElement($,{icon:t})," ",n.createElement(G,{tagAttrs:a.tagAttrs},e));var ee=({label:e,...t})=>n.createElement("label",{className:`textarea label-${t.name}`},!!e&&n.createElement("span",null,e),n.createElement("textarea",t));var te=e=>{const t=n.useMemo((()=>e.title&&"#"===e.title[0]?e.title:`### ${e.title}`),[e.title]);return n.createElement(G,{className:e.className,onClick:e.onClick},t)};var ae=({...e})=>n.createElement("button",{className:e.className,type:e.input_type??"button",onClick:e.onClick},e.value);const ne=e=>{const{children:t,icon:a,...r}=e;return n.createElement("button",U({className:"embla__button embla__button--prev",type:"button"},r),a||n.createElement("svg",{className:"embla__button__svg",viewBox:"0 0 532 532"},n.createElement("path",{fill:"currentColor",d:"M355.66 11.354c13.793-13.805 36.208-13.805 50.001 0 13.785 13.804 13.785 36.238 0 50.034L201.22 266l204.442 204.61c13.785 13.805 13.785 36.239 0 50.044-13.793 13.796-36.208 13.796-50.002 0a5994246.277 5994246.277 0 0 0-229.332-229.454 35.065 35.065 0 0 1-10.326-25.126c0-9.2 3.393-18.26 10.326-25.2C172.192 194.973 332.731 34.31 355.66 11.354Z"})),t)},re=e=>{const{children:t,icon:a,...r}=e;return n.createElement("button",U({className:"embla__button embla__button--next",type:"button"},r),a||n.createElement("svg",{className:"embla__button__svg",viewBox:"0 0 532 532"},n.createElement("path",{fill:"currentColor",d:"M176.34 520.646c-13.793 13.805-36.208 13.805-50.001 0-13.785-13.804-13.785-36.238 0-50.034L330.78 266 126.34 61.391c-13.785-13.805-13.785-36.239 0-50.044 13.793-13.796 36.208-13.796 50.002 0 22.928 22.947 206.395 206.507 229.332 229.454a35.065 35.065 0 0 1 10.326 25.126c0 9.2-3.393 18.26-10.326 25.2-45.865 45.901-206.404 206.564-229.332 229.52Z"})),t)},oe=e=>{const{children:t,...a}=e;return n.createElement("button",U({type:"button"},a),t)},se={mobile:"(max-width: 768px)",tablet:"(min-width: 769px) and (max-width: 1023px)",desktop:"(min-width: 1024px) and (max-width: 1215px)",wide:"(min-width: 1216px) and (max-width: 1407)",fullhd:"(min-width: 1408px)"};var le=({id:e,emblaRef:t,emblaApi:a,slidesPerView:r,slidesPerViewport:o,slides:s,gap:l,height:i,showButtons:c,showDots:u,showProgress:m,showScroll:d,prevIcon:p,nextIcon:h})=>{const[g,_]=n.useState(0),{selectedIndex:b,scrollSnaps:f,onDotButtonClick:y}=((e,t)=>{const[a,r]=n.useState(0),[o,s]=n.useState([]),l=n.useCallback((t=>{e&&e.scrollTo(t)}),[e]),i=n.useCallback((e=>{s(e.scrollSnapList())}),[]),c=n.useCallback((e=>{r(e.selectedScrollSnap())}),[]);return n.useEffect((()=>{e&&t&&(i(e),c(e),e.on("reInit",i),e.on("reInit",c),e.on("select",c))}),[e,i,c]),{selectedIndex:a,scrollSnaps:o,onDotButtonClick:l}})(a,u),[E,v]=n.useState({}),w=n.useCallback((e=>{const t=Math.max(0,Math.min(1,e.scrollProgress()));_(100*t)}),[]),{prevBtnDisabled:x,nextBtnDisabled:C,onPrevButtonClick:S,onNextButtonClick:k}=((e,t)=>{const[a,r]=n.useState(!0),[o,s]=n.useState(!0),l=n.useCallback((()=>{e&&e.scrollPrev()}),[e]),i=n.useCallback((()=>{e&&e.scrollNext()}),[e]),c=n.useCallback((e=>{r(!e.canScrollPrev()),s(!e.canScrollNext())}),[]);return n.useEffect((()=>{e&&t&&(c(e),e.on("reInit",c),e.on("select",c))}),[e,c]),{prevBtnDisabled:a,nextBtnDisabled:o,onPrevButtonClick:l,onNextButtonClick:i}})(a,c);return n.useEffect((()=>{a&&(m||d)&&(w(a),a.on("reInit",w),a.on("scroll",w))}),[a,w]),n.useEffect((()=>{a&&n.startTransition((()=>{v(a.internalEngine().options??{}),a.reInit()}))}),[a]),n.useEffect((()=>{if("y"===E?.axis&&!i)throw Error('Vertical carousel needs "slideHeight" prop')}),[E]),n.createElement("div",{id:e,className:"embla"+("y"===E.axis?" vertical":"")},n.createElement("div",{className:"embla__viewport",ref:t},n.createElement("div",{className:"embla__container"},s.map(((t,a)=>n.createElement("div",{className:"embla__slide",key:`${e}-slide-${a}`},t))))),!!c&&n.createElement(n.Fragment,null,n.createElement(ne,{onClick:S,disabled:x,icon:p}),n.createElement(re,{onClick:k,disabled:C,icon:h})),!!u&&n.createElement("div",{className:"embla__dots"},f.map(((e,t)=>n.createElement(oe,{key:t,onClick:()=>y(t),className:"embla__dot".concat(t===b?" embla__dot--selected":"")})))),!!m&&n.createElement("div",{className:"embla__progress"},n.createElement("div",{className:"embla__progress__bar",style:{transform:`translate3d(${g}%,0px,0px)`}})),!!d&&n.createElement("div",{className:"embla__scroll"},n.createElement("div",{className:"embla__scroll__bar"})),n.createElement("style",null,!!Object.keys(E).length&&`\n #${e} > .embla__viewport > .embla__container{\n margin-${"y"===E.axis?"top":"left"}: calc(${l??0}px * -1);\n ${i?`height: calc(${l||0}px + ${i}px);`:""}\n }\n #${e} > .embla__scroll > .embla__scroll__bar{\n width: ${s.length<=r?"100%":"50%"};\n transform: translate3d(${g}%,0px,0px);\n }\n #${e} > .embla__viewport > .embla__container > .embla__slide{\n flex: 0 0 ${(100/r).toFixed(2)}%;\n padding-${"y"===E.axis?"top":"left"}: ${l||0}px;\n }\n ${o?Object.entries(o).map((([t,a])=>{let n=a.gap?a.gap:l??null,r=a.slides;return`@media ${se[t]} {\n #${e} > .embla__viewport > .embla__container{\n ${null!==n?`margin-${"y"===E.axis?"top":"left"}: calc(${n}px * -1);`:""}\n ${null!==n&&a?.height?`height: calc(${n}px + ${a.height}px);`:""}\n } \n #${e} > .embla__scroll > .embla__scroll__bar{\n width: ${s.length<=r?"100%":"50%"};\n }\n #${e} > .embla__viewport > .embla__container > .embla__slide {\n flex: 0 0 ${(100/r).toFixed(2)}%;\n ${null!==n?`padding-${"y"===E.axis?"top":"left"}: ${n}px;`:""}\n }\n }`})).join("\n"):""}\n `))};var ie=({children:e,to:t,activeClassName:a,partiallyActive:r,internal:o=!0,...s})=>o?n.createElement(u.Link,U({to:t,activeClassName:a,partiallyActive:r},s),e):n.createElement("a",U({href:t},s),e);var ce=({modalId:e,show:t,className:a,setShowModal:r,children:o,closeIcon:s={icon:"times",group:"FAS"}})=>(n.useEffect((()=>{document.body.classList[t?"add":"remove"]("no-scroll")}),[t]),n.createElement("div",{className:"modal-layout"+(t?" opened":""),onClick:t=>{t.target===t.currentTarget&&r(e,!1)}},n.createElement("div",{className:"modal"+(a?` ${a}`:"")},n.createElement("div",{className:"modal-body"},o),n.createElement("button",{className:"close",onClick:()=>r(e,!1)},n.createElement($,{icon:s})))));function ue({color:e,size:t,className:a}){return n.createElement("div",{className:"spinner-box"+(a?` ${a}`:"")},n.createElement("div",{className:"spinner",style:{border:`5px solid ${e||"white"}`,width:t||45,height:t||45}}))}const me={link:V,title:te,text:X,input:W,textarea:ee,checkbox:D,country:function({className:e,label:t,description:a,input_name:r,onClick:o,onChange:s,value:l,placeholder:i,...c}){const u=n.useMemo((()=>S.reduce(((e,t)=>(e[t[0]]=t[2],e)),{})),[]),[m,d]=n.useState(!1),[p,h]=n.useState(0),[_,b]=n.useState(""),f=n.useRef(null),y=n.useRef(null),E=n.useCallback((e=>{s?.(S[e][0]),n.startTransition((()=>{d(!1),h(e),b(S[e][2])}))}),[s,S]),v=n.useCallback((()=>{if(!y.current)return;const e=y.current.querySelector(`#${c.name??"country"}__${S[p][0]}`);e&&g(y.current,e)}),[p,S]);return n.useEffect((()=>{const e=e=>{f.current&&!f.current.contains(e.target)&&y.current&&!y.current.contains(e.target)&&n.startTransition((()=>d(!1)))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[f,y]),n.useEffect((()=>{v()}),[p]),n.useEffect((()=>{document.body.classList[m?"add":"remove"]("no-scroll"),f.current&&m&&f.current.focus()}),[m]),n.createElement("label",{className:`country ${e?` ${e}`:""}${!l&&i?" placeholder":""}`},!!t&&n.createElement("span",null,t),n.createElement("div",{className:"selected-country",onClick:()=>n.startTransition((()=>d(!0)))},l?u[l]:i??"",n.createElement($,{className:m?"opened":"",icon:{icon:"chevron-right",group:"FAS"}})),n.createElement("div",{className:"countries"+(m?" show":"")},n.createElement("input",{ref:f,name:r,value:_,onKeyDown:e=>{const{key:t,target:a}=e;"ArrowDown"===t||"ArrowUp"===t?n.startTransition((()=>{const e="ArrowDown"===t?Math.min(p+1,S.length-1):Math.max(p-1,0);h(e),b(S[e][2])})):"Escape"===t?n.startTransition((()=>d(!1))):"Enter"===t?(e.preventDefault(),e.stopPropagation(),E(p)):1!==t.length&&"Backspace"!==t||(e.preventDefault(),e.stopPropagation(),n.startTransition((()=>function(e){n.startTransition((()=>{b(e)}));let t=S.findIndex((e=>e[2].toLowerCase().startsWith(_.toLowerCase())));t>=0&&n.startTransition((()=>h(t)))}("Backspace"===t?_.slice(0,-1):`${_}${t}`))))},onChange:()=>null}),n.createElement("ul",{ref:y,role:"listbox",tabIndex:-1,"aria-activedescendant":`${c.name??"country"}__${S[p][0]}`},S.map((([e,t,a],r)=>n.createElement("li",{className:r===p?"selected":"",role:"option",onClick:()=>E(r),"aria-selected":r===p,"aria-label":a,id:`${c.name??"country"}__${e}`,key:`${c.name??"country"}__${e}`},a))))),!!a&&n.createElement("div",null,n.createElement(G,null,a)))},"country-prefix":j,select:Y,button:ae,"google-places":K,image:z,hidden:W},de=e=>{if(me.hasOwnProperty(e.type)){const t=me[e.type];return n.createElement(t,e)}return console.error(`Element "${e.type}" not supported by <Form />!`),n.createElement(n.Fragment,null)};var pe=(e,t={})=>{const{threshold:a=.5,autoDisconnect:r=!0,onIntersect:o}=t,[s,l]=n.useState(!1),i=n.useRef(null);n.useEffect((()=>{i.current=new IntersectionObserver(((e,t)=>{e.forEach((e=>{e.isIntersecting&&(l(!0),o?.(),r&&t.disconnect())}))}),{threshold:a});const t=e.current;return t&&i.current.observe(t),()=>{t&&i.current&&i.current.disconnect(),i.current=null}}),[e,a,r,o]);return[s,()=>{i.current&&i.current.disconnect()}]};exports.BookingUrl=(t,a,n,r,o=null,s=null)=>{let l=function(e,t){let a=e.split(/\$\{(?!\d)[\wæøåÆØÅ]*\}/),n=(e.match(/[^{}]+(?=})/g)||[]).map((e=>t[e]||(void 0===t[e]?"":t[e])));return String.raw({raw:a},...n)}(a.variables,{hotel_code:t,check_in:e.format(n.check_in,a.date_format.replace(/m/g,"M")),check_out:e.format(n.check_out,a.date_format.replace(/m/g,"M")),adult_count:n.adult_count,child_count:n.child_count,total_rooms:n.rooms??1,rate_code:r&&!n.promo_codes.length&&o?o:"",promo_code:n.promo_codes.length?n.promo_codes[0]:""});s&&(l+="&room="+s);let i="undefined"!=typeof window&&d(window.innerWidth)?(r?a.mobile_url:a.mobile_url_no_availability)+"&"+l:(r?a.url:a.url_no_availability)+"&"+l;window.open(i,"_blank")},exports.Button=ae,exports.Carousel=le,exports.Checkbox=D,exports.CountryPrefix=j,exports.Form=function({className:e,form:a,setForm:r,errors:o,setErrors:s,beforeSubmit:l,formatParams:i,validate:c,validateResponse:u,onSuccess:m,onFocus:d,onBlur:p,onClick:h,onChange:g,onError:_,afterSubmit:b,loading:y}){const[v,C]=n.useState(!1),S=(e,t=!0)=>n.createElement("div",null,n.createElement("ul",{className:"error"},Object.entries(e).map((([e,a],r)=>n.createElement("li",{key:`error-form${r}`},n.createElement("span",null,t?n.createElement("strong",null,e,":"):""," ",a))))));n.useEffect((()=>{const e=()=>{window.grecaptcha?.execute?C(!0):setTimeout(e,500)};e()}),[]);const k=n.useCallback((async()=>process.env.RECAPTCHA_V3_SITE_KEY?window.grecaptcha?.execute?await window.grecaptcha.execute(process.env.RECAPTCHA_V3_SITE_KEY,{action:a.settings.recaptcha_action??"submit"}):(console.warn("reCAPTCHA not yet loaded."),null):(console.error("RECAPTCHA_V3_SITE_KEY is not defined!"),null)),[v]),$=e=>{if("string"==typeof e){const l=a.fields[e];return n.createElement("div",{className:`${l.type} ${l.type}-${l.name}${l.data?.class?` ${l.type}-${l.data.class}`:""}`,key:`ff-${a.settings.pk}-${e}`},x.has(l.type)?n.createElement(de,U({className:t({[l.data.class]:Boolean(l.data.class),error:Boolean(o[e])}),onFocus:e=>{d&&d(e)},onBlur:e=>{p&&p(e)},onClick:t=>{if(["checkbox","radio"].includes(l.input_type)){let t={...a};"checkbox"===l.input_type?t.fields={...a.fields,[e]:{...l,value:!l.value}}:t.fields=Object.entries(a.fields).reduce(((e,[t,a])=>(e[t]=a,a.input_name===l.input_name&&(e[t].checked=l.value===e[t].value),e)),{}),n.startTransition((()=>{r(t),o[e]&&s({})}))}h&&h(t)},checked:"radio"===l.input_type?!!l.checked:void 0,onChange:t=>{["checkbox","radio"].includes(l.input_type)||n.startTransition((()=>{r({...a,fields:{...a.fields,[e]:{...l,value:E(l.type,t),data:t.target?.data?{...l.data,...t.target.data}:l.data}}}),o[e]&&s({})})),g&&g(t)}},l,{value:l.value?l.value:""})):n.createElement(de,l))}return n.createElement("div",{className:`form-section ${e.name}`,key:`ff-${a.settings.pk}-${e.name}`},e.children.map($))};return n.createElement("form",{className:e,action:a.settings.form_submit,method:a.settings.form_method,onSubmit:e=>(async e=>{e.preventDefault();let t={},o=Object.values(a.fields).reduce(((e,a)=>{if(x.has(a.type)){if(a.required&&!a.value){const n=a.label?a.label:a.placeholder;return t[a.input_name]=`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} is required`,e}if("radio"===a.input_type&&!a.checked)return e;e[a.input_name]=w(a.type,a.value)}return e}),{});if(a.settings.recaptcha_v3&&(o.recaptcha_token=await k(),o.recaptcha_token||(t.recaptcha="reCAPTCHA failed!")),a.fields.recaptcha&&!o.recaptcha&&(t.recaptcha="Recaptcha is mandatory"),c&&(t={...t,...c(a.fields,o)}),Object.keys(t).length)return void n.startTransition((()=>{s(t),A(S(t,!1))}));if(l&&l(a),i&&(o=i(o)),!a.settings.form_ajax_request)return e.target.submit();const d=await f(a.settings.form_submit,o,a.settings.form_method,a.settings.form_recipient?{"recipient-id":`${a.settings.form_recipient}`}:{});n.startTransition((()=>{if(200!==d.status||u&&!u(d))if(_)_(d);else if(d.errors){let e=Object.entries(d.errors).reduce(((e,[t,a])=>(e[t]=a.join(", "),e)),{});A(S(e)),s(e)}else d.error&&A(S({failed:d.error?n.createElement(G,null,d.error):"Oops. Something went wrong. Please try again later, or contact us at members@tfehotels.com"},!1));else m?m(d,a.settings.form_success_msg):A(a.settings.form_success_msg?n.createElement(G,null,a.settings.form_success_msg):"Success! Your form has been successfully sent. Thank you for reaching out, we will get back to you as soon as possible.","success"),a.settings.form_redirection&&setTimeout((()=>{window.location.href=a.settings.form_redirection}),3e3),r({...a,fields:Object.entries(a.fields).reduce(((e,[t,a])=>(e[t]=!["button","hidden"].includes(a.type)&&x.has(a.type)?{...a,value:""}:a,e)),{})})})),b&&b(d)})(e),noValidate:!0},y?n.createElement(ue,{color:"#00b5ee"}):a.items.map($))},exports.GatsbyLink=ie,exports.GooglePlaces=K,exports.Icon=$,exports.Image=z,exports.Input=W,exports.Link=V,exports.LinkList=Z,exports.Markdown=G,exports.Modal=ce,exports.SVG=Q,exports.SearchAvailability=async(t,a,n,r,o,s,l)=>{if(!l)throw new Error('"hotel_codes" must be defined within the page attributes!');return fetch(`${process.env.SABRE_PROTOCOL}://${process.env.SABRE_HOST}/availability`,{headers:{"Content-Type":"application/json"},method:"POST",body:JSON.stringify({check_in:e.format(t,"yyyy-MM-dd"),check_out:e.format(a,"yyyy-MM-dd"),hotel_codes:l,adult_count:n,child_count:r,area_codes:[],promo_codes:o,rate_codes:s,price_range:{min:0,max:0},is_mobile:"undefined"!=typeof window&&d(window.innerWidth),language:"en"})}).then((e=>e.json())).then((e=>(e=>e.success?(e.data.forEach((e=>{e.room_rates={},e.rates.forEach((t=>t.forEach((t=>{e.room_rates.hasOwnProperty(t.room_type_code)||(e.room_rates[t.room_type_code]=[]),e.room_rates[t.room_type_code].push(t)}))))})),e.data):{})(e)),(e=>{console.log(e)}))},exports.Select=Y,exports.Spinner=ue,exports.Text=X,exports.Textarea=ee,exports.Title=te,exports.Toast=O,exports.animateJSX=(e,t="presence")=>`jsx__${t} jsx__${t}__${["from","leave"].includes(e.stage)?"loading":"loaded"}`,exports.apiLink=(e="",t=null)=>`${R(`${process.env.API_PROTOCOL}://${process.env.API_HOST}`,e)}${t?`?${new URLSearchParams(t).toString()}`:""}`,exports.cacheSearchParams=e=>localStorage.setItem("search-params",JSON.stringify(e)),exports.cachedSearchParams=()=>{if("undefined"==typeof window)return null;let t=localStorage.getItem("search-params");return t&&(t=JSON.parse(t),t.rate_codes=[],t.promo_codes=[],t.check_in=t.check_in?new Date(t.check_in):new Date,t.check_out=t.check_out?new Date(t.check_out):e.addDays(new Date,1),t.check_in<new Date)?null:t},exports.classNames=b,exports.countryPrefixes=S,exports.dealLink=e=>{if(!process.env.DEALS_ROOT_SLUG)throw new Error("The env variable DEALS_ROOT_SLUG is not defined!");return R(process.env.DEALS_ROOT_SLUG,e)},exports.decodeQuotePlus=e=>decodeURIComponent(e.replace(/\+/g,"%20")),exports.deleteUserSession=()=>{sessionStorage.removeItem("user")},exports.deviceId=e=>e>1023?"d":e>768?"t":"m",exports.getInputEventValue=E,exports.getInputHumanValue=w,exports.getThumb=e=>e.image||e.mobile_image?"undefined"!=typeof window&&d(window.innerWidth)?e.mobile_image?C(e.mobile_image):C(e.image):e.image?C(e.image):C(e.mobile_image):"",exports.getViewPort=()=>{if("undefined"==typeof window)throw new Error("getViewPort() requires browser window!");return d(window.innerWidth)?"m":p(window.innerWidth)?"t":"d"},exports.hotelOptionsByCity=e=>{let t={Sydney:[],Melbourne:[],Brisbane:[],Perth:[],Hobart:[],Canberra:[],Adelaide:[],"Gold Coast":[],Darwin:[],Auckland:[],Wellington:[],Singapore:[]};const a=Object.entries(e).reduce(((e,[a,n])=>(t[n.city]?t[n.city].push({label:n.name,value:a}):t[n.city]=[{label:n.name,value:a}],e[a]=n.sort,e)),{});return Object.entries(t).map((([e,t])=>({label:e,options:t.sort(((e,t)=>a[e.value]-a[t.value]))})))},exports.human_number=function(e,t=2){return e.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:t})},exports.isDesktop=h,exports.isIOS=()=>/iPad|iPhone|iPod/.test(navigator.userAgent),exports.isMobile=d,exports.isTablet=p,exports.joinAddress=e=>e.reduce(((e,t)=>(t&&e.push(t),e)),[]).join(", "),exports.joinPaths=R,exports.json_request=f,exports.loadUserSession=()=>{const e=sessionStorage.getItem("user");return e?JSON.parse(e):null},exports.minimumSlides=(e,t)=>t.length>=e?t:[].concat(...new Array(Math.ceil(e/t.length)).fill(t)),exports.optimizedThumb=C,exports.parseQueryParams=function(e,t={}){return e?(t={rate_code:"rate_codes",promo_code:"promo_codes",...t},e.slice(1).split("&").reduce(((e,a)=>{let[n,r]=a.split("=");return n=decodeURIComponent(n),r=decodeURIComponent(r||""),t[n]&&(n=t[n]),e[n]=B.hasOwnProperty(n)?B[n](r):r,e}),{})):{}},exports.preloadImages=async e=>{e.forEach((e=>{if(e){(new Image).src=e}}))},exports.pricePerNight=(e,t)=>(parseFloat(e)/t).toFixed(2),exports.roomFeatures=["balcony","sofa_bed","kitchen","kitchenette","laundry_machine"],exports.saveUserSession=e=>{sessionStorage.setItem("user",JSON.stringify({loyaltyprofileId:e.loyaltyprofileId,profile_id:e.profile_id,title:e.title,first_name:e.first_name,last_name:e.last_name,email:e.email,zip:e.zip,country_code:e.country_code,MobilePhoneCountryCode:e.MobilePhoneCountryCode,mobile:e.mobile,date_of_birth:e.date_of_birth,language:e.language}))},exports.scrollToChild=g,exports.scrollToElement=async e=>{document.getElementById(e)?.scrollIntoView({behavior:"smooth"})},exports.siteUrl=(e="")=>`${process.env.PROTOCOL}://${process.env.HOST}${e}`,exports.sp_to_qs=(t,a,n,r,o,s,l=void 0,i=1)=>`?check_in=${e.format(t,"yyyy-MM-dd")}&check_out=${e.format(a,"yyyy-MM-dd")}&adult_count=${n}&child_count=${r}&promo_code=${s?.length?s[0]:""}&rate_code=${o?.length?o[0]:""}${l?`&hotel_codes=${l}`:""}&rooms=${i}`,exports.ssoURL=e=>`${process.env.SABRE_SSO_PROTOCOL}://${process.env.SABRE_SSO_HOST}${e}`,exports.tagExists=(e,...t)=>{for(const a of Object.keys(e))if(t.includes(a))return!0;return!1},exports.toImageElement=(e,t={})=>Object.entries(e).reduce(((e,[a,n])=>(e[t[a]||a]=n,e)),{type:"image",title:"",loading:"eager",image:void 0,mobile_image:void 0,mobile_file:void 0}),exports.toPhrase=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/[_-]/g," ").toLowerCase(),exports.toastMsg=A,exports.useIntersectionObserver=pe,exports.useViewport=function(){const[e,t]=n.useState("d");return n.useEffect((()=>{const a=()=>{const a=window.innerWidth;if("m"===e){if(d(a))return}else if("t"===e){if(p(a))return}else if("d"===e&&h(a))return;n.startTransition((()=>t(d(a)?"m":p(a)?"t":"d")))};return a(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a)}}),[e]),e};
2
2
  //# sourceMappingURL=index.browser.cjs.map