@tfehotels/tfe-gatsby-library 1.0.7 → 1.0.8

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/format"),t=require("classnames"),a=require("react-hot-toast"),n=require("react"),r=require("goober"),o=require("date-fns/addDays"),s=require("date-fns/parseISO"),i=require("slugify"),l=require("marked"),c=require("html-react-parser"),u=require("react-google-autocomplete"),m=require("@fortawesome/react-fontawesome"),d=require("gatsby-plugin-image"),p=require("gatsby"),g=require("react-select"),h=require("react-google-recaptcha-v3");const b=e=>e<769,f=e=>e>=769&&e<1024,_=e=>e>=1024,y=(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},w=(e,t)=>t?!!e.length&&!e.includes(t):!e.length;const v=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}}},k={select:e=>e.value,input:e=>e.target.value,textarea:e=>e.target.value,"google-places":e=>e.target.value},x=(e,t)=>k.hasOwnProperty(e)?k[e](t):t,E={},S=(e,t)=>E.hasOwnProperty(e)?E[e](t):t,C=new Set(["input","select","textarea","checkbox","button","recaptcha2","google-places","country-prefix"]),$=e=>e.optimized?`${e.url}${e.name}-20w.webp`:e.url,N=[["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"]],O=e=>`\n0% {transform: translate3d(0,${-200*e}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`,P=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}})(),T=({id:e,visible:t,message:o,height:s,position:i,variant:l})=>{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;}"]:[O(a),P(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)`}})(i||"top-center",t):{opacity:0};return n.createElement("div",{className:`toast ${t?"animate-enter":"animate-leave"} ${l}`,style:{...c}},n.createElement("button",{className:"close",onClick:()=>a.toast.dismiss(e)},"X"),o)},B=(e,t="error",r=1e4)=>{a.custom((a=>n.createElement(T,{id:a.id,visible:a.visible,message:e,variant:t,height:a.height,position:a.position})),{duration:r})};function I(e=9){const t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";let a="";for(let n=0;n<e;n++)a+=t.charAt(Math.floor(62*Math.random()));return a}const j=e=>{try{return e?s(e):void 0}catch(e){return}},L=e=>{try{return e?parseInt(e):void 0}catch(e){return}},A=e=>e?[e]:[],z={check_in:j,check_out:j,child_count:L,adult_count:L,rate_codes:A,promo_codes:A};const R=(e,t)=>`${e.replace(new RegExp("/$"),"")}/${t.replace(new RegExp("^/"),"")}`;function q({children:e,className:t,tagAttrs:a,onClick:r}){const o=new l.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>`},l.marked.setOptions({renderer:o});const s=()=>c(e?l.marked(e):"");return n.createElement(n.Fragment,null,t||r?n.createElement("div",{className:t,onClick:r},s()):n.createElement(n.Fragment,null,s()))}function D({className:e,label:t,description:a,...r}){return n.createElement("label",{className:"checkbox "+(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",{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",strokeWidth:3,stroke:"#FF008C"}),n.createElement("path",{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(q,null,a)))}function G({className:e,label:t,description:a,input_name:r,onClick:o,onChange:s,value:i,...l}){const[c,u]=n.useState(!1),[m,d]=n.useState(0),[p,g]=n.useState(""),h=n.useRef(null),b=n.useCallback((e=>{s?.(N[e][1]),n.startTransition((()=>{u(!1),d(e)}))}),[s,N]),f=n.useCallback((()=>{if(!h.current)return;const e=h.current.querySelector(`#${l.name??"country-prefix"}__${N[m][0]}`);e&&y(h.current,e)}),[m,N]);return n.useEffect((()=>{if(!p)return;let e=N.findIndex((e=>e[2].toLowerCase().startsWith(p.toLowerCase())));e>=0?n.startTransition((()=>d(e))):n.startTransition((()=>g("")))}),[p]),n.useEffect((()=>{f()}),[m]),n.useEffect((()=>{h.current&&(c?h.current.focus():n.startTransition((()=>g(""))))}),[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))),h?.current?.focus()}},"+",i??N[0][1],">"),n.createElement("ul",{className:c?"show":"",ref:h,role:"listbox",tabIndex:-1,onKeyDown:e=>{e.stopPropagation(),e.preventDefault();const{key:t}=e;"ArrowDown"===t||"ArrowUp"===t?n.startTransition((()=>{d("ArrowDown"===t?Math.min(m+1,N.length-1):Math.max(m-1,0)),g("")})):"Escape"===t?n.startTransition((()=>u(!1))):"Enter"===t?b(m):"Backspace"===t?n.startTransition((()=>g(p.slice(0,-1)))):/^[ \p{L}]+$/u.test(t)&&n.startTransition((()=>g(p+t)))},"aria-activedescendant":`${l.name??"country-prefix"}__${N[m][0]}`},N.map((([e,t,a],r)=>n.createElement("li",{className:r===m?"selected":"",role:"option",onClick:()=>b(r),"aria-selected":r===m,"aria-label":`${a} +${t}`,id:`${l.name??"country-prefix"}__${e}`,key:`${l.name??"country-prefix"}__${e}`},a," +",t)))),n.createElement("input",{type:"hidden",name:r}),!!a&&n.createElement("div",null,n.createElement(q,null,a)))}function F(){return F=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},F.apply(this,arguments)}const U=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:i,onFocus:l,onBlur:c,data:m,...d})=>{const[p,g]=n.useState();if(!process.env.GOOGLEMAPS_KEY)throw new Error("The environment variable GOOGLEMAPS_KEY is not defined!");const{ref:h}=u.usePlacesWidget({apiKey:process.env.GOOGLEMAPS_KEY,onPlaceSelected:e=>g({target:{value:e.formatted_address,data:{countryCode:U(e)}}}),...m});return n.useEffect((()=>{s&&p&&s(p)}),[p]),n.useEffect((()=>{if(!o||r||p)return;const e=N.find((e=>e[0]===o.toLowerCase()));e&&g({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",F({ref:h,name:a,autoComplete:"off",onChange:s,onClick:i,onFocus:l,onBlur:c,value:r,placeholder:d.placeholder??void 0},d)))};const V={FAB:"fab",FAS:"fas"};var H=({icon:e,className:t,onClick:a,color:r})=>V.hasOwnProperty(e.group)?n.createElement(m.FontAwesomeIcon,{className:t,color:r,onClick:a,icon:[V[e.group],e.icon]}):n.createElement("img",{className:t,alt:e.icon,onClick:a,src:`/icons/${e.icon}.svg`});const J=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 d.getImage({childImageSharp:{gatsbyImageData:{backgroundColor:"transparent",height:e.height/e.width,width:1,layout:"fullWidth",placeholder:n,images:{fallback:t,sources:a}}}})};var W=({imageData:e,...a})=>{let r=e??(()=>{const e=J(a.image),t=J(a.mobile_image);return e&&t?d.withArtDirection(e,[{media:"(max-width: 768px)",image:t}]):e})();return r?n.createElement(d.GatsbyImage,{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}):n.createElement("span",null,"Missing image!")};var Z=({label:e,type:t,input_type:a,description:r,name:o,input_name:s,icon:i,iconOnClick:l,read_only:c,...u})=>n.createElement("label",{className:`input label-${o}${"hidden"===a?" hidden":""}`},!!e&&n.createElement("span",null,e),!!i&&n.createElement(H,{icon:i,onClick:l}),n.createElement("input",F({type:a,name:s,readOnly:c},u)),!!r&&n.createElement("div",{className:"desc"},n.createElement("div",null,n.createElement(q,null,r))));const Y=({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),style:{transform:`scale(${a})`,transition:"color 0.2s ease, transform 0.2s ease"},title:t.title,href:t.to,target:t.target,onClick:t.onClick},t.children)};var Q=e=>{const t=e.page_slug?p.Link:Y;let a=e.page_slug?e.page_slug:e.external_link;return e.anchor&&(a=`${a}#${e.anchor}`),n.createElement(t,{className:e.className,to:a,title:e.title,target:e.target,onClick:e.onClick,animate:e.animate},!!e.icon&&n.createElement(H,{icon:e.icon}),e.children?e.children:e.text)};var X=({pk:e,...t})=>n.createElement("ul",{className:t.className},t.links.map(((a,r)=>n.createElement("li",{key:`LinkList${e}-${r}`},n.createElement(Q,a,t.children)))));const ee=(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 te=({value:e,styles:t,options:a,label:r,...o})=>{const s=(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-"+(o.className?o.className:o.name)},!!r&&n.createElement("span",null,r),n.createElement(g,F({options:s,value:"string"==typeof e?ee(s,e):e,styles:t},o)))};var ae=e=>n.createElement("img",{className:e.className,src:e.file.url});var ne=e=>n.createElement("div",{className:e.className},n.createElement(q,{tagAttrs:e.tagAttrs},e.text));var re=({label:e,...t})=>n.createElement("label",{className:`textarea label-${t.name}`},!!e&&n.createElement("span",null,e),n.createElement("textarea",t));var oe=e=>{const t=n.useMemo((()=>e.title&&"#"===e.title[0]?e.title:`### ${e.title}`),[e.title]);return n.createElement(q,{className:e.className,onClick:e.onClick},t)};var se=({...e})=>n.createElement("button",{className:e.className,type:e.input_type??"button",onClick:e.onClick},e.value);const ie=e=>{const{children:t,...a}=e;return n.createElement("button",F({className:"embla__button embla__button--prev",type:"button"},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)},le=e=>{const{children:t,...a}=e;return n.createElement("button",F({className:"embla__button embla__button--next",type:"button"},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)},ce=e=>{const{children:t,...a}=e;return n.createElement("button",F({type:"button"},a),t)},ue={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 me=({id:e,emblaRef:t,emblaApi:a,slidesPerView:r,slidesPerViewport:o,slides:s,gap:i,showButtons:l,showDots:c,showProgress:u,showScroll:m})=>{const[d,p]=n.useState(0),{selectedIndex:g,scrollSnaps:h,onDotButtonClick:b}=((e,t)=>{const[a,r]=n.useState(0),[o,s]=n.useState([]),i=n.useCallback((t=>{e&&e.scrollTo(t)}),[e]),l=n.useCallback((e=>{s(e.scrollSnapList())}),[]),c=n.useCallback((e=>{r(e.selectedScrollSnap())}),[]);return n.useEffect((()=>{e&&t&&(l(e),c(e),e.on("reInit",l),e.on("reInit",c),e.on("select",c))}),[e,l,c]),{selectedIndex:a,scrollSnaps:o,onDotButtonClick:i}})(a,c),f=n.useCallback((e=>{const t=Math.max(0,Math.min(1,e.scrollProgress()));p(100*t)}),[]),{prevBtnDisabled:_,nextBtnDisabled:y,onPrevButtonClick:w,onNextButtonClick:v}=((e,t)=>{const[a,r]=n.useState(!0),[o,s]=n.useState(!0),i=n.useCallback((()=>{e&&e.scrollPrev()}),[e]),l=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:i,onNextButtonClick:l}})(a,l);return n.useEffect((()=>{a&&(u||m)&&(f(a),a.on("reInit",f),a.on("scroll",f))}),[a,f]),n.createElement("div",{id:e,className:"embla"},n.createElement("div",{className:"embla__viewport",ref:t},n.createElement("div",{className:"embla__container"},s.map(((e,t)=>n.createElement("div",{className:"embla__slide",key:`embla-${t}`},e))))),l&&n.createElement(n.Fragment,null,n.createElement(ie,{onClick:w,disabled:_}),n.createElement(le,{onClick:v,disabled:y})),c&&n.createElement("div",{className:"embla__dots"},h.map(((e,t)=>n.createElement(ce,{key:t,onClick:()=>b(t),className:"embla__dot".concat(t===g?" embla__dot--selected":"")})))),!!u&&n.createElement("div",{className:"embla__progress"},n.createElement("div",{className:"embla__progress__bar",style:{transform:`translate3d(${d}%,0px,0px)`}})),!!m&&n.createElement("div",{className:"embla__scroll"},n.createElement("div",{className:"embla__scroll__bar",style:{width:1===s.length?"100%":"50%",transform:`translate3d(${d}%,0px,0px)`}})),n.createElement("style",null,`\n #${e} .embla__container{\n margin-left: calc(${i||0}px * -1);\n }\n #${e} .embla__slide{\n flex: 0 0 ${(100/r).toFixed(2)}%;\n padding-left: ${i||0}px;\n }\n ${o?Object.entries(o).map((([t,a])=>{let n=null,r=a.slides;return a.gap&&(n=a.gap),`@media ${ue[t]} {\n ${null!==n?`#${e} .embla__container{margin-left: calc(${n}px * -1);}`:""} \n #${e} .embla__slide {\n flex: 0 0 ${(100/r).toFixed(2)}%;\n ${null!==n?`padding-left: ${n}px;`:""}\n }\n }`})).join("\n"):""}\n `))};var de=({modalId:e,show:t,className:a,setShowModal:r,children:o})=>(n.useEffect((()=>{document.body.style.overflow=t?"hidden":"unset"}),[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(H,{icon:{icon:"times",group:"FAS"}})))));function pe({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 ge={link:Q,title:oe,text:ne,input:Z,textarea:re,checkbox:D,"country-prefix":G,select:te,button:se,"google-places":K,image:W},he=e=>{const t=ge[e.type];return n.createElement(t,e)};exports.BookingUrl=(t,a,n,r,o=null,s=null)=>{let i=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(n.check_in,a.date_format.replace(/m/g,"M")),check_out:e(n.check_out,a.date_format.replace(/m/g,"M")),adult_count:n.adult_count,child_count:n.child_count,total_rooms:1,rate_code:!n.promo_codes.length&&o?o:"",promo_code:n.promo_codes.length?n.promo_codes[0]:""});s&&(i+="&room="+s);let l="undefined"!=typeof window&&b(window.innerWidth)?(r?a.mobile_url:a.mobile_url_no_availability)+"&"+i:(r?a.url:a.url_no_availability)+"&"+i;window.open(l,"_blank")},exports.Button=se,exports.Carousel=me,exports.Checkbox=D,exports.CountryPrefix=G,exports.Form=function({className:e,form:a,setForm:r,errors:o,setErrors:s,beforeSubmit:i,formatParams:l,validate:c,validateResponse:u,onSuccess:m,onFocus:d,onBlur:p,onClick:g,onChange:b,onError:f,afterSubmit:_,loading:y}){const{executeRecaptcha:w}=h.useGoogleReCaptcha(),k=(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)))))),E=n.useCallback((async()=>{if(w)return await w(a.settings.recaptcha_action);console.log("Execute recaptcha not yet available")}),[w]);n.useEffect((()=>{a.settings.recaptcha_v3&&E()}),[a.settings.recaptcha_v3,E]);const $=e=>{if("string"==typeof e){const i=a.fields[e];return n.createElement("div",{className:`${i.type} ${i.type}-${i.name}`,key:`ff-${a.settings.pk}-${e}`},C.has(i.type)?n.createElement(he,F({className:t({[i.data.class]:Boolean(i.data.class),error:Boolean(o[e])}),onFocus:e=>{d&&d(e)},onBlur:e=>{p&&p(e)},onClick:t=>{if(["checkbox","radio"].includes(i.input_type)){let t={...a};"checkbox"===i.input_type?t.fields={...a.fields,[e]:{...i,value:!i.value}}:t.fields=Object.entries(a.fields).reduce(((e,[t,a])=>(e[t]=a,a.input_name===i.input_name&&(e[t].checked=i.value===e[t].value),e)),{}),n.startTransition((()=>{r(t),o[e]&&s({})}))}g&&g(t)},checked:"radio"===i.input_type?!!i.checked:void 0,onChange:t=>{["checkbox","radio"].includes(i.input_type)||n.startTransition((()=>{r({...a,fields:{...a.fields,[e]:{...i,value:x(i.type,t),data:t.target?.data?{...i.data,...t.target.data}:i.data}}}),o[e]&&s({})})),b&&b(t)}},i,{value:i.value?i.value:""})):n.createElement(he,i))}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(C.has(a.type)){if(a.required&&!a.value)return t[a.input_name]=`${a.label?a.label:a.placeholder} is required`,e;if("radio"===a.input_type&&!a.checked)return e;e[a.input_name]=S(a.type,a.value)}return e}),{});if(a.settings.recaptcha_v3&&(o.recaptcha_token=await E(),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),B(k(t,!1))}));if(i&&i(a),l&&(o=l(o)),!a.settings.form_ajax_request)return e.target.submit();const d=await v(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(f)f(d);else if(d.errors){let e=Object.entries(d.errors).reduce(((e,[t,a])=>(e[t]=a.join(", "),e)),{});B(k(e)),s(e)}else d.error&&B(k({failed:d.error?n.createElement(q,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):B(a.settings.form_success_msg?n.createElement(q,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]=C.has(a.type)?{...a,value:""}:a,e)),{})})})),_&&_(d)})(e),noValidate:!0},y?n.createElement(pe,{color:"#00b5ee"}):a.items.map($))},exports.GooglePlaces=K,exports.Icon=H,exports.Image=W,exports.Input=Z,exports.Link=Q,exports.LinkList=X,exports.Markdown=q,exports.Modal=de,exports.SVG=ae,exports.SearchAvailability=async(t,a,n,r,o,s,i)=>{if(!i)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(t,"yyyy-MM-dd"),check_out:e(a,"yyyy-MM-dd"),hotel_codes:i,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&&b(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=te,exports.Spinner=pe,exports.Text=ne,exports.Textarea=re,exports.Title=oe,exports.Toast=T,exports.animateJSX=(e,t="presence")=>`jsx__${t} jsx__${t}__${["from","leave"].includes(e.stage)?"loading":"loaded"}`,exports.api_link=(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 e=localStorage.getItem("search-params");return e&&(e=JSON.parse(e),e.rate_codes=[],e.promo_codes=[],e.check_in=e.check_in?new Date(e.check_in):new Date,e.check_out=e.check_out?new Date(e.check_out):o(new Date,1),e.check_in<new Date)?null:e},exports.classNames=(e,a=null)=>(a&&(e.hidden=w(a,""),e.hidden_mobile=w(a,"m"),e.hidden_tablet=w(a,"t"),e.hidden_desktop=w(a,"d")),t(e)),exports.countryPrefixes=N,exports.deleteUserSession=()=>{sessionStorage.removeItem("user")},exports.deviceId=e=>e>1023?"d":e>768?"t":"m",exports.getInputEventValue=x,exports.getInputHumanValue=S,exports.getThumb=e=>e.image||e.mobile_image?"undefined"!=typeof window&&b(window.innerWidth)?e.mobile_image?$(e.mobile_image):$(e.image):e.image?$(e.image):$(e.mobile_image):"",exports.getViewPort=()=>{if("undefined"==typeof window)throw new Error("getViewPort() requires browser window!");return b(window.innerWidth)?"m":f(window.innerWidth)?"t":"d"},exports.hotelOptionsByCity=e=>{let t={Sydney:[],Melbourne:[],Perth:[],Hobart:[],Canberra:[],Adelaide:[],"Gold Coast":[],Darwin:[],Singapore:[]};const a=Object.entries(e).reduce(((e,[a,n])=>(t[n.city]&&(t[n.city].push({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.hotel_page_link=(e,t)=>`/book-accommodation/${i(e,{lower:!0})}/${i(t,{lower:!0}).slice(5)}`,exports.human_number=function(e,t=2){return e.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:t})},exports.isDesktop=_,exports.isIOS=()=>/iPad|iPhone|iPod/.test(navigator.userAgent),exports.isMobile=b,exports.isTablet=f,exports.joinAddress=e=>e.reduce(((e,t)=>(t&&e.push(t),e)),[]).join(", "),exports.join_paths=R,exports.json_request=v,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.opentableLink=e=>`https://www.opentable.com.au/restref/client?rid=${e}&restref=${e}&lang=en-AU&r3uid=${I(9)}&ot_source=Restaurant+website&color=1`,exports.optimizedThumb=$,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]=z.hasOwnProperty(n)?z[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.randomString=I,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=y,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)=>`?check_in=${e(t,"yyyy-MM-dd")}&check_out=${e(a,"yyyy-MM-dd")}&adult_count=${n}&child_count=${r}&promo_code=${s?.length?s[0]:""}&rate_code=${o?.length?o[0]:""}`,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.toastMsg=B,exports.tripadvisorRatingURL=e=>`https://www.tripadvisor.com/img/cdsi/img2/ratings/traveler/${parseFloat(e).toFixed(1)}-41022-5.svg`,exports.useViewport=function(){const[e,t]=n.useState("d");return n.useEffect((()=>{const a=()=>{const a=window.innerWidth;if("m"===e){if(b(a))return}else if("t"===e){if(f(a))return}else if("d"===e&&_(a))return;n.startTransition((()=>t(b(a)?"m":f(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("slugify"),s=require("marked"),i=require("html-react-parser"),l=require("react-google-autocomplete"),c=require("@fortawesome/react-fontawesome"),m=require("gatsby-plugin-image"),u=require("gatsby"),d=require("react-select"),p=require("react-google-recaptcha-v3");const g=e=>e<769,h=e=>e>=769&&e<1024,b=e=>e>=1024,f=(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;const y=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}}},w={select:e=>e.value,input:e=>e.target.value,textarea:e=>e.target.value,"google-places":e=>e.target.value},v=(e,t)=>w.hasOwnProperty(e)?w[e](t):t,k={},x=(e,t)=>k.hasOwnProperty(e)?k[e](t):t,E=new Set(["input","select","textarea","checkbox","button","recaptcha2","google-places","country-prefix"]),S=e=>e.optimized?`${e.url}${e.name}-20w.webp`:e.url,C=[["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"]],$=e=>`\n0% {transform: translate3d(0,${-200*e}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`,N=e=>`\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${-150*e}%,-1px) scale(.6); opacity:0;}\n`,O=(()=>{let e;return()=>{if(void 0===e&&"undefined"!=typeof window){const t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),P=({id:e,visible:t,message:o,height:s,position:i,variant:l})=>{const c=s?((e,t)=>{const a=e.includes("top")?1:-1,[n,o]=O()?["0%{opacity:0;} 100%{opacity:1;}","0%{opacity:1;} 100%{opacity:0;}"]:[$(a),N(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)`}})(i||"top-center",t):{opacity:0};return n.createElement("div",{className:`toast ${t?"animate-enter":"animate-leave"} ${l}`,style:{...c}},n.createElement("button",{className:"close",onClick:()=>a.toast.dismiss(e)},"X"),o)},M=(e,t="error",r=1e4)=>{a.custom((a=>n.createElement(P,{id:a.id,visible:a.visible,message:e,variant:t,height:a.height,position:a.position})),{duration:r})};function T(e=9){const t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";let a="";for(let n=0;n<e;n++)a+=t.charAt(Math.floor(62*Math.random()));return a}const B=t=>{try{return t?e.parseISO(t):void 0}catch(e){return}},I=e=>{try{return e?parseInt(e):void 0}catch(e){return}},L=e=>e?[e]:[],j={check_in:B,check_out:B,child_count:I,adult_count:I,rate_codes:L,promo_codes:L};const A=(e,t)=>`${e.replace(new RegExp("/$"),"")}/${t.replace(new RegExp("^/"),"")}`;function z({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 l=()=>i(e?s.marked(e):"");return n.createElement(n.Fragment,null,t||r?n.createElement("div",{className:t,onClick:r},l()):n.createElement(n.Fragment,null,l()))}function R({className:e,label:t,description:a,...r}){return n.createElement("label",{className:"checkbox "+(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",{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",strokeWidth:3,stroke:"#FF008C"}),n.createElement("path",{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(z,null,a)))}function q({className:e,label:t,description:a,input_name:r,onClick:o,onChange:s,value:i,...l}){const[c,m]=n.useState(!1),[u,d]=n.useState(0),[p,g]=n.useState(""),h=n.useRef(null),b=n.useCallback((e=>{s?.(C[e][1]),n.startTransition((()=>{m(!1),d(e)}))}),[s,C]),_=n.useCallback((()=>{if(!h.current)return;const e=h.current.querySelector(`#${l.name??"country-prefix"}__${C[u][0]}`);e&&f(h.current,e)}),[u,C]);return n.useEffect((()=>{if(!p)return;let e=C.findIndex((e=>e[2].toLowerCase().startsWith(p.toLowerCase())));e>=0?n.startTransition((()=>d(e))):n.startTransition((()=>g("")))}),[p]),n.useEffect((()=>{_()}),[u]),n.useEffect((()=>{h.current&&(c?h.current.focus():n.startTransition((()=>g(""))))}),[c]),n.createElement("label",{className:"country-prefix "+(e?` ${e}`:"")},!!t&&n.createElement("span",null,t),n.createElement("div",{className:"selected-prefix",onClick:()=>{n.startTransition((()=>m(!0))),h?.current?.focus()}},"+",i??C[0][1],">"),n.createElement("ul",{className:c?"show":"",ref:h,role:"listbox",tabIndex:-1,onKeyDown:e=>{e.stopPropagation(),e.preventDefault();const{key:t}=e;"ArrowDown"===t||"ArrowUp"===t?n.startTransition((()=>{d("ArrowDown"===t?Math.min(u+1,C.length-1):Math.max(u-1,0)),g("")})):"Escape"===t?n.startTransition((()=>m(!1))):"Enter"===t?b(u):"Backspace"===t?n.startTransition((()=>g(p.slice(0,-1)))):/^[ \p{L}]+$/u.test(t)&&n.startTransition((()=>g(p+t)))},"aria-activedescendant":`${l.name??"country-prefix"}__${C[u][0]}`},C.map((([e,t,a],r)=>n.createElement("li",{className:r===u?"selected":"",role:"option",onClick:()=>b(r),"aria-selected":r===u,"aria-label":`${a} +${t}`,id:`${l.name??"country-prefix"}__${e}`,key:`${l.name??"country-prefix"}__${e}`},a," +",t)))),n.createElement("input",{type:"hidden",name:r}),!!a&&n.createElement("div",null,n.createElement(z,null,a)))}function D(){return D=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},D.apply(this,arguments)}const G=e=>{if(e.address_components)for(const t of e.address_components)if("country"==t.types[0])return t.short_name;return null};var F=({label:e,name:t,input_name:a,value:r,defaultCountryCode:o,onChange:s,onClick:i,onFocus:c,onBlur:m,data:u,...d})=>{const[p,g]=n.useState();if(!process.env.GOOGLEMAPS_KEY)throw new Error("The environment variable GOOGLEMAPS_KEY is not defined!");const{ref:h}=l.usePlacesWidget({apiKey:process.env.GOOGLEMAPS_KEY,onPlaceSelected:e=>g({target:{value:e.formatted_address,data:{countryCode:G(e)}}}),...u});return n.useEffect((()=>{s&&p&&s(p)}),[p]),n.useEffect((()=>{if(!o||r||p)return;const e=C.find((e=>e[0]===o.toLowerCase()));e&&g({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",D({ref:h,name:a,autoComplete:"off",onChange:s,onClick:i,onFocus:c,onBlur:m,value:r,placeholder:d.placeholder??void 0},d)))};const U={FAB:"fab",FAS:"fas"};var K=({icon:e,className:t,onClick:a,color:r})=>U.hasOwnProperty(e.group)?n.createElement(c.FontAwesomeIcon,{className:t,color:r,onClick:a,icon:[U[e.group],e.icon]}):n.createElement("img",{className:t,alt:e.icon,onClick:a,src:`/icons/${e.icon}.svg`});const V=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 m.getImage({childImageSharp:{gatsbyImageData:{backgroundColor:"transparent",height:e.height/e.width,width:1,layout:"fullWidth",placeholder:n,images:{fallback:t,sources:a}}}})};var H=({imageData:e,...a})=>{let r=e??(()=>{const e=V(a.image),t=V(a.mobile_image);return e&&t?m.withArtDirection(e,[{media:"(max-width: 768px)",image:t}]):e})();return r?n.createElement(m.GatsbyImage,{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}):n.createElement("span",null,"Missing image!")};var J=({label:e,type:t,input_type:a,description:r,name:o,input_name:s,icon:i,iconOnClick:l,read_only:c,...m})=>n.createElement("label",{className:`input label-${o}${"hidden"===a?" hidden":""}`},!!e&&n.createElement("span",null,e),!!i&&n.createElement(K,{icon:i,onClick:l}),n.createElement("input",D({type:a,name:s,readOnly:c},m)),!!r&&n.createElement("div",{className:"desc"},n.createElement("div",null,n.createElement(z,null,r))));const W=({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),style:{transform:`scale(${a})`,transition:"color 0.2s ease, transform 0.2s ease"},title:t.title,href:t.to,target:t.target,onClick:t.onClick},t.children)};var Z=e=>{const t=e.page_slug?u.Link:W;let a=e.page_slug?e.page_slug:e.external_link;return e.anchor&&(a=`${a}#${e.anchor}`),n.createElement(t,{className:e.className,to:a,title:e.title,target:e.target,onClick:e.onClick,animate:e.animate},!!e.icon&&n.createElement(K,{icon:e.icon}),e.children?e.children:e.text)};var Y=({pk:e,...t})=>n.createElement("ul",{className:t.className},t.links.map(((a,r)=>n.createElement("li",{key:`LinkList${e}-${r}`},n.createElement(Z,a,t.children)))));const Q=(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 X=({value:e,styles:t,options:a,label:r,...o})=>{const s=(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-"+(o.className?o.className:o.name)},!!r&&n.createElement("span",null,r),n.createElement(d,D({options:s,value:"string"==typeof e?Q(s,e):e,styles:t},o)))};var ee=e=>n.createElement("img",{className:e.className,src:e.file.url});var te=({text:e,...t})=>n.createElement("div",{className:t.className},n.createElement(z,{tagAttrs:t.tagAttrs},e));var ae=({label:e,...t})=>n.createElement("label",{className:`textarea label-${t.name}`},!!e&&n.createElement("span",null,e),n.createElement("textarea",t));var ne=e=>{const t=n.useMemo((()=>e.title&&"#"===e.title[0]?e.title:`### ${e.title}`),[e.title]);return n.createElement(z,{className:e.className,onClick:e.onClick},t)};var re=({...e})=>n.createElement("button",{className:e.className,type:e.input_type??"button",onClick:e.onClick},e.value);const oe=e=>{const{children:t,...a}=e;return n.createElement("button",D({className:"embla__button embla__button--prev",type:"button"},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)},se=e=>{const{children:t,...a}=e;return n.createElement("button",D({className:"embla__button embla__button--next",type:"button"},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)},ie=e=>{const{children:t,...a}=e;return n.createElement("button",D({type:"button"},a),t)},le={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 ce=({id:e,emblaRef:t,emblaApi:a,slidesPerView:r,slidesPerViewport:o,slides:s,gap:i,showButtons:l,showDots:c,showProgress:m,showScroll:u})=>{const[d,p]=n.useState(0),{selectedIndex:g,scrollSnaps:h,onDotButtonClick:b}=((e,t)=>{const[a,r]=n.useState(0),[o,s]=n.useState([]),i=n.useCallback((t=>{e&&e.scrollTo(t)}),[e]),l=n.useCallback((e=>{s(e.scrollSnapList())}),[]),c=n.useCallback((e=>{r(e.selectedScrollSnap())}),[]);return n.useEffect((()=>{e&&t&&(l(e),c(e),e.on("reInit",l),e.on("reInit",c),e.on("select",c))}),[e,l,c]),{selectedIndex:a,scrollSnaps:o,onDotButtonClick:i}})(a,c),f=n.useCallback((e=>{const t=Math.max(0,Math.min(1,e.scrollProgress()));p(100*t)}),[]),{prevBtnDisabled:_,nextBtnDisabled:y,onPrevButtonClick:w,onNextButtonClick:v}=((e,t)=>{const[a,r]=n.useState(!0),[o,s]=n.useState(!0),i=n.useCallback((()=>{e&&e.scrollPrev()}),[e]),l=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:i,onNextButtonClick:l}})(a,l);return n.useEffect((()=>{a&&(m||u)&&(f(a),a.on("reInit",f),a.on("scroll",f))}),[a,f]),n.createElement("div",{id:e,className:"embla"},n.createElement("div",{className:"embla__viewport",ref:t},n.createElement("div",{className:"embla__container"},s.map(((e,t)=>n.createElement("div",{className:"embla__slide",key:`embla-${t}`},e))))),l&&n.createElement(n.Fragment,null,n.createElement(oe,{onClick:w,disabled:_}),n.createElement(se,{onClick:v,disabled:y})),c&&n.createElement("div",{className:"embla__dots"},h.map(((e,t)=>n.createElement(ie,{key:t,onClick:()=>b(t),className:"embla__dot".concat(t===g?" embla__dot--selected":"")})))),!!m&&n.createElement("div",{className:"embla__progress"},n.createElement("div",{className:"embla__progress__bar",style:{transform:`translate3d(${d}%,0px,0px)`}})),!!u&&n.createElement("div",{className:"embla__scroll"},n.createElement("div",{className:"embla__scroll__bar",style:{width:1===s.length?"100%":"50%",transform:`translate3d(${d}%,0px,0px)`}})),n.createElement("style",null,`\n #${e} .embla__container{\n margin-left: calc(${i||0}px * -1);\n }\n #${e} .embla__slide{\n flex: 0 0 ${(100/r).toFixed(2)}%;\n padding-left: ${i||0}px;\n }\n ${o?Object.entries(o).map((([t,a])=>{let n=null,r=a.slides;return a.gap&&(n=a.gap),`@media ${le[t]} {\n ${null!==n?`#${e} .embla__container{margin-left: calc(${n}px * -1);}`:""} \n #${e} .embla__slide {\n flex: 0 0 ${(100/r).toFixed(2)}%;\n ${null!==n?`padding-left: ${n}px;`:""}\n }\n }`})).join("\n"):""}\n `))};var me=({modalId:e,show:t,className:a,setShowModal:r,children:o})=>(n.useEffect((()=>{document.body.style.overflow=t?"hidden":"unset"}),[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(K,{icon:{icon:"times",group:"FAS"}})))));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 de={link:Z,title:ne,text:te,input:J,textarea:ae,checkbox:R,"country-prefix":q,select:X,button:re,"google-places":F,image:H},pe=e=>{const t=de[e.type];return n.createElement(t,e)};exports.BookingUrl=(t,a,n,r,o=null,s=null)=>{let i=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:1,rate_code:!n.promo_codes.length&&o?o:"",promo_code:n.promo_codes.length?n.promo_codes[0]:""});s&&(i+="&room="+s);let l="undefined"!=typeof window&&g(window.innerWidth)?(r?a.mobile_url:a.mobile_url_no_availability)+"&"+i:(r?a.url:a.url_no_availability)+"&"+i;window.open(l,"_blank")},exports.Button=re,exports.Carousel=ce,exports.Checkbox=R,exports.CountryPrefix=q,exports.Form=function({className:e,form:a,setForm:r,errors:o,setErrors:s,beforeSubmit:i,formatParams:l,validate:c,validateResponse:m,onSuccess:u,onFocus:d,onBlur:g,onClick:h,onChange:b,onError:f,afterSubmit:_,loading:w}){const{executeRecaptcha:k}=p.useGoogleReCaptcha(),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)))))),C=n.useCallback((async()=>{if(k)return await k(a.settings.recaptcha_action);console.log("Execute recaptcha not yet available")}),[k]);n.useEffect((()=>{a.settings.recaptcha_v3&&C()}),[a.settings.recaptcha_v3,C]);const $=e=>{if("string"==typeof e){const i=a.fields[e];return n.createElement("div",{className:`${i.type} ${i.type}-${i.name}`,key:`ff-${a.settings.pk}-${e}`},E.has(i.type)?n.createElement(pe,D({className:t({[i.data.class]:Boolean(i.data.class),error:Boolean(o[e])}),onFocus:e=>{d&&d(e)},onBlur:e=>{g&&g(e)},onClick:t=>{if(["checkbox","radio"].includes(i.input_type)){let t={...a};"checkbox"===i.input_type?t.fields={...a.fields,[e]:{...i,value:!i.value}}:t.fields=Object.entries(a.fields).reduce(((e,[t,a])=>(e[t]=a,a.input_name===i.input_name&&(e[t].checked=i.value===e[t].value),e)),{}),n.startTransition((()=>{r(t),o[e]&&s({})}))}h&&h(t)},checked:"radio"===i.input_type?!!i.checked:void 0,onChange:t=>{["checkbox","radio"].includes(i.input_type)||n.startTransition((()=>{r({...a,fields:{...a.fields,[e]:{...i,value:v(i.type,t),data:t.target?.data?{...i.data,...t.target.data}:i.data}}}),o[e]&&s({})})),b&&b(t)}},i,{value:i.value?i.value:""})):n.createElement(pe,i))}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(E.has(a.type)){if(a.required&&!a.value)return t[a.input_name]=`${a.label?a.label:a.placeholder} is required`,e;if("radio"===a.input_type&&!a.checked)return e;e[a.input_name]=x(a.type,a.value)}return e}),{});if(a.settings.recaptcha_v3&&(o.recaptcha_token=await C(),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),M(S(t,!1))}));if(i&&i(a),l&&(o=l(o)),!a.settings.form_ajax_request)return e.target.submit();const d=await y(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||m&&!m(d))if(f)f(d);else if(d.errors){let e=Object.entries(d.errors).reduce(((e,[t,a])=>(e[t]=a.join(", "),e)),{});M(S(e)),s(e)}else d.error&&M(S({failed:d.error?n.createElement(z,null,d.error):"Oops. Something went wrong. Please try again later, or contact us at members@tfehotels.com"},!1));else u?u(d,a.settings.form_success_msg):M(a.settings.form_success_msg?n.createElement(z,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]=E.has(a.type)?{...a,value:""}:a,e)),{})})})),_&&_(d)})(e),noValidate:!0},w?n.createElement(ue,{color:"#00b5ee"}):a.items.map($))},exports.GooglePlaces=F,exports.Icon=K,exports.Image=H,exports.Input=J,exports.Link=Z,exports.LinkList=Y,exports.Markdown=z,exports.Modal=me,exports.SVG=ee,exports.SearchAvailability=async(t,a,n,r,o,s,i)=>{if(!i)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:i,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&&g(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=X,exports.Spinner=ue,exports.Text=te,exports.Textarea=ae,exports.Title=ne,exports.Toast=P,exports.animateJSX=(e,t="presence")=>`jsx__${t} jsx__${t}__${["from","leave"].includes(e.stage)?"loading":"loaded"}`,exports.api_link=(e="",t=null)=>`${A(`${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=(e,a=null)=>(a&&(e.hidden=_(a,""),e.hidden_mobile=_(a,"m"),e.hidden_tablet=_(a,"t"),e.hidden_desktop=_(a,"d")),t(e)),exports.countryPrefixes=C,exports.deleteUserSession=()=>{sessionStorage.removeItem("user")},exports.deviceId=e=>e>1023?"d":e>768?"t":"m",exports.getInputEventValue=v,exports.getInputHumanValue=x,exports.getThumb=e=>e.image||e.mobile_image?"undefined"!=typeof window&&g(window.innerWidth)?e.mobile_image?S(e.mobile_image):S(e.image):e.image?S(e.image):S(e.mobile_image):"",exports.getViewPort=()=>{if("undefined"==typeof window)throw new Error("getViewPort() requires browser window!");return g(window.innerWidth)?"m":h(window.innerWidth)?"t":"d"},exports.hotelOptionsByCity=e=>{let t={Sydney:[],Melbourne:[],Perth:[],Hobart:[],Canberra:[],Adelaide:[],"Gold Coast":[],Darwin:[],Singapore:[]};const a=Object.entries(e).reduce(((e,[a,n])=>(t[n.city]&&(t[n.city].push({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.hotelPageLink=(e,t)=>`/book-accommodation/${o(e,{lower:!0})}/${o(t,{lower:!0}).slice(5)}`,exports.human_number=function(e,t=2){return e.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:t})},exports.isDesktop=b,exports.isIOS=()=>/iPad|iPhone|iPod/.test(navigator.userAgent),exports.isMobile=g,exports.isTablet=h,exports.joinAddress=e=>e.reduce(((e,t)=>(t&&e.push(t),e)),[]).join(", "),exports.join_paths=A,exports.json_request=y,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.opentableLink=e=>`https://www.opentable.com.au/restref/client?rid=${e}&restref=${e}&lang=en-AU&r3uid=${T(9)}&ot_source=Restaurant+website&color=1`,exports.optimizedThumb=S,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]=j.hasOwnProperty(n)?j[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.randomString=T,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=f,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)=>`?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]:""}`,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.toastMsg=M,exports.tripadvisorRatingURL=e=>`https://www.tripadvisor.com/img/cdsi/img2/ratings/traveler/${parseFloat(e).toFixed(1)}-41022-5.svg`,exports.useViewport=function(){const[e,t]=n.useState("d");return n.useEffect((()=>{const a=()=>{const a=window.innerWidth;if("m"===e){if(g(a))return}else if("t"===e){if(h(a))return}else if("d"===e&&b(a))return;n.startTransition((()=>t(g(a)?"m":h(a)?"t":"d")))};return a(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a)}}),[e]),e};
2
2
  //# sourceMappingURL=index.browser.cjs.map