@tfehotels/tfe-gatsby-library 1.0.49 → 1.0.50
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.
package/lib/index.browser.cjs
CHANGED
|
@@ -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"),d=require("react-google-recaptcha-v3");const p=e=>e<769,h=e=>e>=769&&e<1024,g=e=>e>=1024,b=(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},f=(e,t)=>t?!!e.length&&!e.includes(t):!e.length;const _=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},v=(e,t)=>y.hasOwnProperty(e)?y[e](t):t,E={},w=(e,t)=>E.hasOwnProperty(e)?E[e](t):t,x=new Set(["input","select","textarea","checkbox","button","recaptcha2","google-places","country-prefix","country","hidden"]),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"]],k={FAB:"fab",FAS:"fas"},$=({icon:e,className:t,onClick:a,color:r})=>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,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`,M=e=>`\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${-150*e}%,-1px) scale(.6); opacity:0;}\n`,T=(()=>{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]=T()?["0%{opacity:0;} 100%{opacity:1;}","0%{opacity:1;} 100%{opacity:0;}"]:[N(a),M(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)},L=(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 P=t=>{try{return t?e.parseISO(t):void 0}catch(e){return}},A=e=>{try{return e?parseInt(e):void 0}catch(e){return}},I=e=>e?[e]:[],B={check_in:P,check_out:P,child_count:A,adult_count:A,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(""),g=n.useRef(null),f=n.useRef(null),_=n.useCallback((e=>{s?.(C[e][1]),n.startTransition((()=>{u(!1),d(e),h(C[e][2])}))}),[s,C]),y=n.useCallback((()=>{if(!f.current)return;const e=f.current.querySelector(`#${i.name??"country-prefix"}__${C[m][0]}`);e&&b(f.current,e)}),[m,C]);return n.useEffect((()=>{const e=e=>{g.current&&!g.current.contains(e.target)&&f.current&&!f.current.contains(e.target)&&n.startTransition((()=>u(!1)))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[g,f]),n.useEffect((()=>{y()}),[m]),n.useEffect((()=>{document.body.classList[c?"add":"remove"]("no-scroll"),g.current&&c&&g.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??C[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:g,name:r,value:p,onChange:e=>function(e){n.startTransition((()=>{h(e)}));let t=C.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,C.length-1):Math.max(m-1,0);d(e),h(C[e][2])})):"Escape"===t?n.startTransition((()=>u(!1))):"Enter"===t&&(e.preventDefault(),e.stopPropagation(),_(m))}}),n.createElement("ul",{ref:f,role:"listbox",tabIndex:-1,"aria-activedescendant":`${i.name??"country-prefix"}__${C[m][0]}`},C.map((([e,t,a],r)=>n.createElement("li",{className:r===m?"selected":"",role:"option",onClick:()=>_(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=C.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 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 V=({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})();return r?n.createElement(c.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: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))));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,onClick:t.onClick},t.children)};var W=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,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)};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(W,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,...a}=e;return n.createElement("button",U({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)},re=e=>{const{children:t,...a}=e;return n.createElement("button",U({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)},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})=>{const[p,h]=n.useState(0),{selectedIndex:g,scrollSnaps:b,onDotButtonClick:f}=((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),_=a?.internalEngine().options??{};if("y"===_?.axis&&!i)throw Error('Vertical carousel needs "slideHeight" prop');const y=n.useCallback((e=>{const t=Math.max(0,Math.min(1,e.scrollProgress()));h(100*t)}),[]),{prevBtnDisabled:v,nextBtnDisabled:E,onPrevButtonClick:w,onNextButtonClick:x}=((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)&&(y(a),a.on("reInit",y),a.on("scroll",y))}),[a,y]),n.useEffect((()=>{a&&a.reInit()}),[a]),n.createElement("div",{id:e,className:"embla"+("y"===_.axis?" vertical":"")},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))))),c&&n.createElement(n.Fragment,null,n.createElement(ne,{onClick:w,disabled:v}),n.createElement(re,{onClick:x,disabled:E})),u&&n.createElement("div",{className:"embla__dots"},b.map(((e,t)=>n.createElement(oe,{key:t,onClick:()=>f(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(${p}%,0px,0px)`}})),!!d&&n.createElement("div",{className:"embla__scroll"},n.createElement("div",{className:"embla__scroll__bar"})),n.createElement("style",null,`\n #${e} > .embla__viewport > .embla__container{\n margin-${"y"===_.axis?"top":"left"}: calc(${l??0}px * -1);\n ${i?`height: calc(${l||0}px + ${i}px);`:""}\n }\n #${e} > .embla__scroll__bar{\n width: ${s.length<=r?"100%":"50%"};\n transform: translate3d(${p}%,0px,0px);\n }\n #${e} > .embla__viewport > .embla__container > .embla__slide{\n flex: 0 0 ${(100/r).toFixed(2)}%;\n padding-${"y"===_.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"===_.axis?"top":"left"}: calc(${n}px * -1);`:""}\n ${null!==n&&a?.height?`height: calc(${n}px + ${a.height}px);`:""}\n } \n #${e} > .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"===_.axis?"top":"left"}: ${n}px;`:""}\n }\n }`})).join("\n"):""}\n `))};var ie=({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 ce({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 ue={link:W,title:te,text:X,input:z,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((()=>C.reduce(((e,t)=>(e[t[0]]=t[2],e)),{})),[]),[m,d]=n.useState(!1),[p,h]=n.useState(0),[g,f]=n.useState(""),_=n.useRef(null),y=n.useRef(null),v=n.useCallback((e=>{s?.(C[e][0]),n.startTransition((()=>{d(!1),h(e),f(C[e][2])}))}),[s,C]),E=n.useCallback((()=>{if(!y.current)return;const e=y.current.querySelector(`#${c.name??"country"}__${C[p][0]}`);e&&b(y.current,e)}),[p,C]);return n.useEffect((()=>{const e=e=>{_.current&&!_.current.contains(e.target)&&y.current&&!y.current.contains(e.target)&&n.startTransition((()=>d(!1)))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[_,y]),n.useEffect((()=>{E()}),[p]),n.useEffect((()=>{document.body.classList[m?"add":"remove"]("no-scroll"),_.current&&m&&_.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:_,name:r,value:g,onKeyDown:e=>{const{key:t,target:a}=e;"ArrowDown"===t||"ArrowUp"===t?n.startTransition((()=>{const e="ArrowDown"===t?Math.min(p+1,C.length-1):Math.max(p-1,0);h(e),f(C[e][2])})):"Escape"===t?n.startTransition((()=>d(!1))):"Enter"===t?(e.preventDefault(),e.stopPropagation(),v(p)):1!==t.length&&"Backspace"!==t||(e.preventDefault(),e.stopPropagation(),n.startTransition((()=>function(e){n.startTransition((()=>{f(e)}));let t=C.findIndex((e=>e[2].toLowerCase().startsWith(g.toLowerCase())));t>=0&&n.startTransition((()=>h(t)))}("Backspace"===t?g.slice(0,-1):`${g}${t}`))))},onChange:()=>null}),n.createElement("ul",{ref:y,role:"listbox",tabIndex:-1,"aria-activedescendant":`${c.name??"country"}__${C[p][0]}`},C.map((([e,t,a],r)=>n.createElement("li",{className:r===p?"selected":"",role:"option",onClick:()=>v(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:V,hidden:z},me=e=>{if(ue.hasOwnProperty(e.type)){const t=ue[e.type];return n.createElement(t,e)}return console.error(`Element "${e.type}" not supported by <Form />!`),n.createElement(n.Fragment,null)};var de=(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.unobserve(t),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: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&&p(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:p,onBlur:h,onClick:g,onChange:b,onError:f,afterSubmit:y,loading:E}){const{executeRecaptcha:S}=d.useGoogleReCaptcha(),C=(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)))))),k=n.useCallback((async()=>{if(S)return await S(a.settings.recaptcha_action);console.log("Execute recaptcha not yet available")}),[S,a.settings.recaptcha_action]);n.useEffect((()=>{a.settings.recaptcha_v3&&k()}),[a.settings.recaptcha_v3,k]);const $=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(me,U({className:t({[l.data.class]:Boolean(l.data.class),error:Boolean(o[e])}),onFocus:e=>{p&&p(e)},onBlur:e=>{h&&h(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({})}))}g&&g(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:v(l.type,t),data:t.target?.data?{...l.data,...t.target.data}:l.data}}}),o[e]&&s({})})),b&&b(t)}},l,{value:l.value?l.value:""})):n.createElement(me,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)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]=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),L(C(t,!1))}));if(l&&l(a),i&&(o=i(o)),!a.settings.form_ajax_request)return e.target.submit();const d=await _(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)),{});L(C(e)),s(e)}else d.error&&L(C({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):L(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)),{})})})),y&&y(d)})(e),noValidate:!0},E?n.createElement(ce,{color:"#00b5ee"}):a.items.map($))},exports.GooglePlaces=K,exports.Icon=$,exports.Image=V,exports.Input=z,exports.Link=W,exports.LinkList=Z,exports.Markdown=G,exports.Modal=ie,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&&p(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=ce,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=(e,a=null)=>(a&&(e.hidden=f(a,""),e.hidden_mobile=f(a,"m"),e.hidden_tablet=f(a,"t"),e.hidden_desktop=f(a,"d")),t(e)),exports.countryPrefixes=C,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=v,exports.getInputHumanValue=w,exports.getThumb=e=>e.image||e.mobile_image?"undefined"!=typeof window&&p(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 p(window.innerWidth)?"m":h(window.innerWidth)?"t":"d"},exports.hotelOptionsByCity=e=>{let t={Sydney:[],Melbourne:[],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}),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=g,exports.isIOS=()=>/iPad|iPhone|iPod/.test(navigator.userAgent),exports.isMobile=p,exports.isTablet=h,exports.joinAddress=e=>e.reduce(((e,t)=>(t&&e.push(t),e)),[]).join(", "),exports.joinPaths=R,exports.json_request=_,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=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]=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=b,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.toPhrase=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/[_-]/g," ").toLowerCase(),exports.toastMsg=L,exports.useIntersectionObserver=de,exports.useViewport=function(){const[e,t]=n.useState("d");return n.useEffect((()=>{const a=()=>{const a=window.innerWidth;if("m"===e){if(p(a))return}else if("t"===e){if(h(a))return}else if("d"===e&&g(a))return;n.startTransition((()=>t(p(a)?"m":h(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"),i=require("html-react-parser"),l=require("react-google-autocomplete"),c=require("gatsby-plugin-image"),u=require("gatsby"),m=require("react-select"),d=require("react-google-recaptcha-v3");const p=e=>e<769,h=e=>e>=769&&e<1024,g=e=>e>=1024,b=(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},f=(e,t)=>t?!!e.length&&!e.includes(t):!e.length;const _=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"]),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"]],k={FAB:"fab",FAS:"fas"},$=({icon:e,className:t,onClick:a,color:r})=>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,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`,M=e=>`\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${-150*e}%,-1px) scale(.6); opacity:0;}\n`,T=(()=>{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:i,variant:l})=>{const c=s?((e,t)=>{const a=e.includes("top")?1:-1,[n,o]=T()?["0%{opacity:0;} 100%{opacity:1;}","0%{opacity:1;} 100%{opacity:0;}"]:[N(a),M(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)},n.createElement($,{icon:{icon:"close",group:"GLO"}})),o)},L=(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 P=t=>{try{return t?e.parseISO(t):void 0}catch(e){return}},A=e=>{try{return e?parseInt(e):void 0}catch(e){return}},I=e=>e?[e]:[],B={check_in:P,check_out:P,child_count:A,adult_count:A,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 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 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:i,...l}){const[c,u]=n.useState(!1),[m,d]=n.useState(0),[p,h]=n.useState(""),g=n.useRef(null),f=n.useRef(null),_=n.useCallback((e=>{s?.(C[e][1]),n.startTransition((()=>{u(!1),d(e),h(C[e][2])}))}),[s,C]),y=n.useCallback((()=>{if(!f.current)return;const e=f.current.querySelector(`#${l.name??"country-prefix"}__${C[m][0]}`);e&&b(f.current,e)}),[m,C]);return n.useEffect((()=>{const e=e=>{g.current&&!g.current.contains(e.target)&&f.current&&!f.current.contains(e.target)&&n.startTransition((()=>u(!1)))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[g,f]),n.useEffect((()=>{y()}),[m]),n.useEffect((()=>{document.body.classList[c?"add":"remove"]("no-scroll"),g.current&&c&&g.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)))},"+",i??C[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:g,name:r,value:p,onChange:e=>function(e){n.startTransition((()=>{h(e)}));let t=C.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,C.length-1):Math.max(m-1,0);d(e),h(C[e][2])})):"Escape"===t?n.startTransition((()=>u(!1))):"Enter"===t&&(e.preventDefault(),e.stopPropagation(),_(m))}}),n.createElement("ul",{ref:f,role:"listbox",tabIndex:-1,"aria-activedescendant":`${l.name??"country-prefix"}__${C[m][0]}`},C.map((([e,t,a],r)=>n.createElement("li",{className:r===m?"selected":"",role:"option",onClick:()=>_(r),"aria-selected":r===m,"aria-label":`${a} +${t}`,id:`${l.name??"country-prefix"}__${e}`,key:`${l.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:i,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}=l.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=C.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:i,onFocus:c,onBlur:u,value:r,placeholder:d.placeholder??void 0},d)))};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 V=({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})();return r?n.createElement(c.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,className:u,...m})=>n.createElement("label",{className:`input label-${o}${"hidden"===a?" hidden":""}${u?` label-${u}`:""}`},!!e&&n.createElement("span",null,e),!!i&&n.createElement($,{icon:i,onClick:l}),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))));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,onClick:t.onClick},t.children)};var W=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,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)};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(W,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 i=(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:i,value:"string"==typeof e?J(i,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,...a}=e;return n.createElement("button",U({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)},re=e=>{const{children:t,...a}=e;return n.createElement("button",U({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)},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 ie=({id:e,emblaRef:t,emblaApi:a,slidesPerView:r,slidesPerViewport:o,slides:s,gap:i,height:l,showButtons:c,showDots:u,showProgress:m,showScroll:d})=>{const[p,h]=n.useState(0),{selectedIndex:g,scrollSnaps:b,onDotButtonClick:f}=((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,u),_=a?.internalEngine().options??{};if("y"===_?.axis&&!l)throw Error('Vertical carousel needs "slideHeight" prop');const y=n.useCallback((e=>{const t=Math.max(0,Math.min(1,e.scrollProgress()));h(100*t)}),[]),{prevBtnDisabled:E,nextBtnDisabled:v,onPrevButtonClick:w,onNextButtonClick:x}=((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,c);return n.useEffect((()=>{a&&(m||d)&&(y(a),a.on("reInit",y),a.on("scroll",y))}),[a,y]),n.useEffect((()=>{a&&a.reInit()}),[a]),n.createElement("div",{id:e,className:"embla"+("y"===_.axis?" vertical":"")},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))))),c&&n.createElement(n.Fragment,null,n.createElement(ne,{onClick:w,disabled:E}),n.createElement(re,{onClick:x,disabled:v})),u&&n.createElement("div",{className:"embla__dots"},b.map(((e,t)=>n.createElement(oe,{key:t,onClick:()=>f(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(${p}%,0px,0px)`}})),!!d&&n.createElement("div",{className:"embla__scroll"},n.createElement("div",{className:"embla__scroll__bar"})),n.createElement("style",null,`\n #${e} > .embla__viewport > .embla__container{\n margin-${"y"===_.axis?"top":"left"}: calc(${i??0}px * -1);\n ${l?`height: calc(${i||0}px + ${l}px);`:""}\n }\n #${e} > .embla__scroll__bar{\n width: ${s.length<=r?"100%":"50%"};\n transform: translate3d(${p}%,0px,0px);\n }\n #${e} > .embla__viewport > .embla__container > .embla__slide{\n flex: 0 0 ${(100/r).toFixed(2)}%;\n padding-${"y"===_.axis?"top":"left"}: ${i||0}px;\n }\n ${o?Object.entries(o).map((([t,a])=>{let n=a.gap?a.gap:i??null,r=a.slides;return`@media ${se[t]} {\n #${e} > .embla__viewport > .embla__container{\n ${null!==n?`margin-${"y"===_.axis?"top":"left"}: calc(${n}px * -1);`:""}\n ${null!==n&&a?.height?`height: calc(${n}px + ${a.height}px);`:""}\n } \n #${e} > .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"===_.axis?"top":"left"}: ${n}px;`:""}\n }\n }`})).join("\n"):""}\n `))};var le=({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 ce({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 ue={link:W,title:te,text:X,input:z,textarea:ee,checkbox:D,country:function({className:e,label:t,description:a,input_name:r,onClick:o,onChange:s,value:i,placeholder:l,...c}){const u=n.useMemo((()=>C.reduce(((e,t)=>(e[t[0]]=t[2],e)),{})),[]),[m,d]=n.useState(!1),[p,h]=n.useState(0),[g,f]=n.useState(""),_=n.useRef(null),y=n.useRef(null),E=n.useCallback((e=>{s?.(C[e][0]),n.startTransition((()=>{d(!1),h(e),f(C[e][2])}))}),[s,C]),v=n.useCallback((()=>{if(!y.current)return;const e=y.current.querySelector(`#${c.name??"country"}__${C[p][0]}`);e&&b(y.current,e)}),[p,C]);return n.useEffect((()=>{const e=e=>{_.current&&!_.current.contains(e.target)&&y.current&&!y.current.contains(e.target)&&n.startTransition((()=>d(!1)))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[_,y]),n.useEffect((()=>{v()}),[p]),n.useEffect((()=>{document.body.classList[m?"add":"remove"]("no-scroll"),_.current&&m&&_.current.focus()}),[m]),n.createElement("label",{className:`country ${e?` ${e}`:""}${!i&&l?" placeholder":""}`},!!t&&n.createElement("span",null,t),n.createElement("div",{className:"selected-country",onClick:()=>n.startTransition((()=>d(!0)))},i?u[i]:l??"",n.createElement($,{className:m?"opened":"",icon:{icon:"chevron-right",group:"FAS"}})),n.createElement("div",{className:"countries"+(m?" show":"")},n.createElement("input",{ref:_,name:r,value:g,onKeyDown:e=>{const{key:t,target:a}=e;"ArrowDown"===t||"ArrowUp"===t?n.startTransition((()=>{const e="ArrowDown"===t?Math.min(p+1,C.length-1):Math.max(p-1,0);h(e),f(C[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((()=>{f(e)}));let t=C.findIndex((e=>e[2].toLowerCase().startsWith(g.toLowerCase())));t>=0&&n.startTransition((()=>h(t)))}("Backspace"===t?g.slice(0,-1):`${g}${t}`))))},onChange:()=>null}),n.createElement("ul",{ref:y,role:"listbox",tabIndex:-1,"aria-activedescendant":`${c.name??"country"}__${C[p][0]}`},C.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:V,hidden:z},me=e=>{if(ue.hasOwnProperty(e.type)){const t=ue[e.type];return n.createElement(t,e)}return console.error(`Element "${e.type}" not supported by <Form />!`),n.createElement(n.Fragment,null)};var de=(e,t={})=>{const{threshold:a=.5,autoDisconnect:r=!0,onIntersect:o}=t,[s,i]=n.useState(!1),l=n.useRef(null);n.useEffect((()=>{l.current=new IntersectionObserver(((e,t)=>{e.forEach((e=>{e.isIntersecting&&(i(!0),o?.(),r&&t.disconnect())}))}),{threshold:a});const t=e.current;return t&&l.current.observe(t),()=>{t&&l.current&&l.current.disconnect(),l.current=null}}),[e,a,r,o]);return[s,()=>{l.current&&l.current.disconnect()}]};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:r&&!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&&p(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=ae,exports.Carousel=ie,exports.Checkbox=D,exports.CountryPrefix=j,exports.Form=function({className:e,form:a,setForm:r,errors:o,setErrors:s,beforeSubmit:i,formatParams:l,validate:c,validateResponse:u,onSuccess:m,onFocus:p,onBlur:h,onClick:g,onChange:b,onError:f,afterSubmit:y,loading:v}){const{executeRecaptcha:S}=d.useGoogleReCaptcha(),C=(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)))))),k=n.useCallback((async()=>{if(S)return await S(a.settings.recaptcha_action);console.log("Execute recaptcha not yet available")}),[S,a.settings.recaptcha_action]);n.useEffect((()=>{a.settings.recaptcha_v3&&k()}),[a.settings.recaptcha_v3,k]);const $=e=>{if("string"==typeof e){const i=a.fields[e];return n.createElement("div",{className:`${i.type} ${i.type}-${i.name}${i.data?.class?` ${i.type}-${i.data.class}`:""}`,key:`ff-${a.settings.pk}-${e}`},x.has(i.type)?n.createElement(me,U({className:t({[i.data.class]:Boolean(i.data.class),error:Boolean(o[e])}),onFocus:e=>{p&&p(e)},onBlur:e=>{h&&h(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:E(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(me,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(x.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]=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),L(C(t,!1))}));if(i&&i(a),l&&(o=l(o)),!a.settings.form_ajax_request)return e.target.submit();const d=await _(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)),{});L(C(e)),s(e)}else d.error&&L(C({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):L(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)),{})})})),y&&y(d)})(e),noValidate:!0},v?n.createElement(ce,{color:"#00b5ee"}):a.items.map($))},exports.GooglePlaces=K,exports.Icon=$,exports.Image=V,exports.Input=z,exports.Link=W,exports.LinkList=Z,exports.Markdown=G,exports.Modal=le,exports.SVG=Q,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&&p(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=ce,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=(e,a=null)=>(a&&(e.hidden=f(a,""),e.hidden_mobile=f(a,"m"),e.hidden_tablet=f(a,"t"),e.hidden_desktop=f(a,"d")),t(e)),exports.countryPrefixes=C,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&&p(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 p(window.innerWidth)?"m":h(window.innerWidth)?"t":"d"},exports.hotelOptionsByCity=e=>{let t={Sydney:[],Melbourne:[],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}),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=g,exports.isIOS=()=>/iPad|iPhone|iPod/.test(navigator.userAgent),exports.isMobile=p,exports.isTablet=h,exports.joinAddress=e=>e.reduce(((e,t)=>(t&&e.push(t),e)),[]).join(", "),exports.joinPaths=R,exports.json_request=_,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=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]=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=b,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.toPhrase=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/[_-]/g," ").toLowerCase(),exports.toastMsg=L,exports.useIntersectionObserver=de,exports.useViewport=function(){const[e,t]=n.useState("d");return n.useEffect((()=>{const a=()=>{const a=window.innerWidth;if("m"===e){if(p(a))return}else if("t"===e){if(h(a))return}else if("d"===e&&g(a))return;n.startTransition((()=>t(p(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
|