1"use strict";function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0})}else{obj[key]=value}return obj} 2function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==typeof i?i:String(i)} 3function _toPrimitive(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)} 4const STYLE_SHEET="\n button[data-be-url] {\n background-color: black;\n border-radius: 40px;\n border: none;\n color: white;\n cursor: pointer;\n font-family: Poppins, sans-serif;\n font-weight: 500;\n padding: 12px 24px;\n }\n\n .be-immersive-experience-overlay,\n .be-immersive-experience-overlay * {\n box-sizing: border-box\n }\n\n .be-immersive-experience-overlay {\n background-color: rgba(47, 43, 43, 0.8);\n height: 100%;\n padding: 24px;\n position: fixed;\n right: 0;\n top: 0;\n width: 100vw;\n z-index: 1000;\n }\n\n @media screen and (max-width: 640px) {\n .be-immersive-experience-overlay {\n padding: 0;\n }\n }\n\n .be-immersive-experience-overlay:not(.open) {\n display: none;\n }\n\n .be-immersive-experience-overlay.open {\n display: flex;\n }\n\n body:has(.be-immersive-experience-overlay.open) {\n overflow: hidden;\n }\n\n .be-immersive-experience-wrapper {\n border-radius: 8px;\n display: flex;\n flex-direction: column;\n height: min(100%, 800px);\n margin-left: auto;\n margin-top: auto;\n max-width: 460px;\n overflow: hidden;\n width: 100%;\n }\n \n @media screen and (max-width: 640px) {\n .be-immersive-experience-wrapper {\n border-radius: 0;\n max-width: unset;\n }\n }\n\n .be-immersive-experience-header {\n color: black;\n display: flex;\n }\n \n @media screen and (max-width: 640px) {\n .be-immersive-experience-header {\n background-color: white;\n }\n }\n \n .be-immersive-experience-header button.close-button {\n background-color: white;\n border-radius: 0;\n border-top-left-radius: 8px;\n border: none;\n color: black;\n cursor: pointer;\n font-family: Poppins, sans-serif;\n font-weight: 500;\n margin-left: auto;\n padding: 8px 16px;\n }\n\n .be-immersive-experience-container {\n background-color: white;\n border-top-left-radius: 8px;\n height: 100%;\n position: relative;\n overflow: hidden;\n }
4\n \n .be-immersive-experience-footer {\n align-items: center;\n background-color: #f8f9fa;\n border-top: 1px solid #dfe1e5;\n display: flex;\n gap: 8px;\n justify-content: center;\n padding: 12px;\n }\n\n .be-immersive-experience-footer > span {\n color: #586174;\n font-family: Poppins, sans-serif;\n font-size: 12px;\n }\n\n .be-immersive-experience-wrapper img.be-immersive-experience-cloudbeds-logo {\n height: 20px;\n width: auto;\n }\n\n @media screen and (max-width: 640px) {\n .be-immersive-experience-container {\n border-top-left-radius: 0;\n }\n }\n\n .be-iframe {\n background-color: white;\n height: 100%;\n position: relative;\n width: 100%;\n }\n";const CLOSE_LABEL=document.currentScript.getAttribute("close-label")||"CLOSE";const IMM_EXP_OVERLAY_ID="immersive-experience-overlay";const RESET_ON_CLOSE=!0;const MESSAGES={CLOSE_IFRAME:"CLOSE_IFRAME",OPEN_IFRAME:"OPEN_IFRAME"};const styleSheet=document.createElement("style");styleSheet.innerText=STYLE_SHEET;document.head.appendChild(styleSheet);const utmParameters=["utm_id","utm_source","utm_medium","utm_campaign","utm_source_platform","utm_term","utm_content","gclid","dclid","clientId","sessionId","referrer"];const loc=new URL(window.location);const referrer=loc.searchParams.get("referrer")||document.referrer;const isBookNowPage=document.querySelectorAll("button[data-be-url]").length>0;const storeQueryParams=()=>{const params=new URLSearchParams(window.location.search);utmParameters.forEach(param=>{const value=params.get(param);if(value)sessionStorage.setItem("cb_".concat(param),value)})};const appendUTMParams=url=>{if(!url){console.log("Cannot find url to append UTM parameters");return} 5const urlObj=new URL(url);utmParameters.forEach(param=>{const value=sessionStorage.getItem("cb_".concat(param));if(value)urlObj.searchParams.set(param,value)});return urlObj.toString()};const setGAParams=()=>{window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)} 6gtag("js",new Date());gtag("config",MEASUREMENT_ID,{debug_mode:!0});gtag("get",MEASUREMENT_ID,"client_id",id=>{sessionStorage.setItem("cb_clientId",id)});gtag("get",MEASUREMENT_ID,"session_id",id=>{sessionStorage.setItem("cb_sessionId",id)});let originalReferrer=sessionStorage.getItem("cb_referrer");if(!originalReferrer&&referrer&&new URL(referrer).hostname!==loc.hostname){sessionStorage.setItem("cb_referrer",referrer);originalReferrer=referrer;gtag("set",{page_referrer:originalReferrer})} 7storeQueryParams()};class IframeController{constructor(){let{resetOnClose=!1}=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};_defineProperty(this,"iframe",null);_defineProperty(this,"init",!1);_defineProperty(this,"resetOnClose",!1);_defineProperty(this,"createIframe",()=>{this.iframe=document.createElement("iframe");this.iframe.classList.add("be-iframe");this.iframe.width="100%";this.iframe.height="100%";this.iframe.setAttribute("frameBorder","no");this.iframe.setAttribute("srolling","yes");window.addEventListener("open-iframe",this.handleOpen);window.addEventListener("close-iframe",this.handleClose)});_defineProperty(this,"handleOpen",_ref=>{let{detail}=_ref;const url=typeof MEASUREMENT_ID!=="undefined"?appendUTMParams(detail.url):detail.url;if(!this.init){this.iframe.src=url;this.init=!0}else{this.postMessage(MESSAGES.OPEN_IFRAME)}});_defineProperty(this,"handleClose",()=>{this.postMessage(MESSAGES.CLOSE_IFRAME);if(this.resetOnClose){this.iframe.src="";this.init=!1}});_defineProperty(this,"postMessage",message=>{this.iframe.contentWindow.postMessage(message,"*")});_defineProperty(this,"updateUrl",url=>{this.iframe.src=url});this.resetOnClose=resetOnClose;this.createIframe()}} 8const openIframe=url=>{let _url=new URL(url);_url.searchParams.append('mode','popup');window.dispatchEvent(new CustomEvent("open-iframe",{detail:{url:_url.toString()}}));immExpOverlay.classList.add("open")};const iframeOpener=url=>()=>openIframe(url);const closeIframe=()=>{immExpOverlay.classList.remove("open");window.dispatchEvent(new CustomEvent("close-iframe"))};const handleOverlayClick=e=>e.target.id===IMM_EXP_OVERLAY_ID&&closeIframe();const processMessage=e=>{console.log("New message from BE App",e.data)};const changeProperty=url=>controller.updateUrl(url);const controller=new IframeController({resetOnClose:RESET_ON_CLOSE});const immExpOverlay=document.createElement("div");immExpOverlay.id=IMM_EXP_OVERLAY_ID;immExpOverlay.classList.add("be-immersive-experience-overlay");immExpOverlay.addEventListener("click",handleOverlayClick);
8const immExpWrapper=document.createElement("div");immExpWrapper.classList.add("be-immersive-experience-wrapper");const immExpHeader=document.createElement("div");immExpHeader.classList.add("be-immersive-experience-header");const immExpContainer=document.createElement("div");immExpContainer.classList.add("be-immersive-experience-container");const immExpFooter=document.createElement("div");immExpFooter.classList.add("be-immersive-experience-footer");const footerLink=document.createElement("a");footerLink.setAttribute("href","https://www.cloudbeds.com");footerLink.setAttribute("target","_blank");const footerLogo=document.createElement("img");footerLogo.classList.add("be-immersive-experience-cloudbeds-logo");footerLogo.src="https://static1.cloudbeds.com/booking-engine/latest/cb-logo.svg";const footerLegend=document.createElement("span");footerLegend.textContent="Powered by";const closeButton=document.createElement("button");closeButton.textContent=CLOSE_LABEL;closeButton.addEventListener("click",closeIframe);closeButton.classList.add("close-button");immExpHeader.appendChild(closeButton);immExpWrapper.appendChild(immExpHeader);immExpWrapper.appendChild(immExpContainer);immExpFooter.appendChild(footerLegend);footerLink.appendChild(footerLogo);immExpFooter.appendChild(footerLink);immExpWrapper.appendChild(immExpFooter);immExpContainer.appendChild(controller.iframe);immExpOverlay.appendChild(immExpWrapper);window.addEventListener("DOMContentLoaded",()=>{document.body.appendChild(immExpOverlay);const bookNowButtons=document.querySelectorAll("button[data-be-url]");bookNowButtons.forEach(button=>button.addEventListener("click",iframeOpener(button.getAttribute("data-be-url"))))});window.addEventListener("open-immersive-experience",e=>{openIframe(e.detail.url)});if(typeof MEASUREMENT_ID!=="undefined"){const gtagScript=document.createElement("script");gtagScript.async=!0;gtagScript.src="https://www.googletagmanager.com/gtag/js?id=".concat(MEASUREMENT_ID);gtagScript.onload=setGAParams;document.head.appendChild(gtagScript)}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.