1/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 2(function(window,drupalSettings,Drupal,once){'use strict';class BookingLink{constructor(el){this.link=el;}static init(el){return new this(el);}applyBookingPlatformHrefReplacement(){const bookHotel=this.extractBookHotelSearchParam();if(!bookHotel)return;const locations=drupalSettings?.locations||[];const hotel=locations.find((location)=>String(location.drupalId)===bookHotel);if(!hotel)return;const platform=hotel.platform;if(!platform)return;var platformHref=window.BookingUrlService.buildBookingUrl(platform,hotel);var glValue=window.GoogleTagLinker.googleTagLinker('get');platformHref=platformHref+(platformHref.indexOf('?')===-1?'?':'&')+'_gl='+glValue;this.replaceHref(platformHref);}extractBookHotelSearchParam(){return new URL(this.link.href).searchParams.get('book-hotel');}replaceHref(href){this.link.href=href;}}Drupal.behaviors.bookingLink={attach:(context)=>{const elements=once('booking-link','a[href*="book-hotel="]',context);elements.forEach((el)=>{let bookingLink=BookingLink.init(el);bookingLink.applyBookingPlatformHrefReplacement();});}};}(window,drupalSettings,Drupal,once));; 3(function(window,drupalSettings,Drupal,$){'use strict';Drupal.behaviors.selfbookIntegrations={attach:function(context,settings){const elements=once('selfbookIntegrations','body',context);elements.forEach((el)=>{if(window.document!==context)return;if(''===settings.yotelBookingIntegration.selfbook_script)return;$('<script>',{id:'selfbook_jssdk',type:'text/javascript',defer:true,src:settings.yotelBookingIntegration.selfbook_script}).appendTo('body');});}};}(window,drupalSettings,Drupal,jQuery));; 4(function(Drupal,once){class YotelCookieGoogleConsent{constructor(el){this.body=el;this.cookieStore=window.cookieStore;
4let cookieValue=this.getCookieValue('yotel-consent');this.sendConsentStatus(cookieValue);this.initEvents();}consentStatusHandler(event){let consentCookie=event.changed.filter((changed)=>{return changed.name==='yotel-consent';});if(consentCookie.length)this.sendConsentStatus(consentCookie[0].value);}sendConsentStatus(cookieValue){if(cookieValue!==''){let consentValue=JSON.parse(decodeURIComponent(cookieValue));let allServices=drupalSettings.klaro.config.services;let marketingServices=allServices.filter((service)=>{return service.purposes.includes('advertising');});let optinMarketingServices=marketingServices.filter((service)=>{return consentValue[service.name];});let necessary='granted';let marketing=optinMarketingServices.length>0?'granted':'denied';let statistics=consentValue.ga?'granted':'denied';if(typeof gtag==='function')gtag('consent','update',{'analytics_storage':statistics,'ad_storage':marketing,'ad_user_data':marketing,'ad_personalization':marketing,'personalization_storage':marketing,'functionality_storage':necessary,'security_storage':necessary});}}getCookieValue(name){return document.cookie.match('(^|;)\\s*'+name+'\\s*=\\s*([^;]+)')?.pop()||'';}initEvents(){this.cookieStore.addEventListener('change',(event)=>this.consentStatusHandler(event));}static init(el){return new this(el);}}Drupal.behaviors.yotelCookieGoogleConsent={attach(context,settings){const elements=once('yotel_cookie_google_consent','body',context);elements.forEach((el)=>YotelCookieGoogleConsent.init(el));}};}(Drupal,once));; 5(function(Drupal,drupalSettings,once){class PageLoadEvents{constructor(){let dataLayer=window['dataLayer']||[];const pageLoadEvents=drupalSettings.yotel_page_load_events;for(var eventKey in pageLoadEvents){if(!pageLoadEvents.hasOwnProperty(eventKey))continue;const event=pageLoadEvents[eventKey];dataLayer.push(event);}}static init(){return new this();}}class MenuInteractionEvent{constructor(element,menuInfo,titleSelector){this.element=element;this.menuInfo=menuInfo;this.titleSelector=titleSelector;this.dataLayer=window['dataLayer']||[];this.element.addEventListener('click',this.pushEventToDataLayer.bind(this));}static init(element,menuInfo,titleSelector=''){return new this(element,menuInfo,titleSelector);}pushEventToDataLayer(){if(this.titleSelector==='')this.menuInfo.menu_item=this.element.textContent?this.element.textContent.trim():'Unknown';else{const titleElement=this.element.querySelector(this.titleSelector);this.menuInfo.menu_item=titleElement?(titleElement.textContent?titleElement.textContent.trim():'Unknown'):'Unknown';}this.menuInfo.menu_item_url=this.element.getAttribute('href');this.dataLayer.push(this.menuInfo);}}class CtaInteractionEvent{constructor(element,menuInfo){this.element=element;this.menuInfo=menuInfo;this.dataLayer=window['dataLayer']||[];this.element.addEventListener('click',this.pushEventToDataLayer.bind(this));}static init(element,menuInfo){return new this(element,menuInfo);}pushEventToDataLayer(){this.menuInfo.click_text=this.element.textContent?this.element.textContent.trim():'Unknown';this.menuInfo.link_url=this.element.getAttribute('href');this.menuInfo.link_type='button';this.dataLayer.push(this.menuInfo);}}Drupal.behaviors.page_load_events={attach:(context)=>{const elements=once('page_load_events','body',context);elements.forEach(()=>PageLoadEvents.init());}};Drupal.behaviors.menu_interaction_events={attach:(context)=>{const locations_menu=once('menu_interaction_locations_menu','.yotel-nav__yotels-nav',context);locations_menu.forEach((menu)=>{const locations_menu_category=menu.querySelectorAll('.yotel-nav__yotels-nav-item');locations_menu_category.forEach((category)=>{const category_link=category.querySelector('.yotel-accordion__trigger a');const category_name=category_link.textContent.trim();const category_links=category.querySelectorAll('.yotel-accordion__content a');category_links.forEach((element)=>MenuInteractionEvent.init(element,{'event':'menu_interactions','menu_location':'top_menu','menu_header':'Locations','menu_subheader':category_name}));});});const language_elements=once('menu_interaction_languages','.yotel-language-selector .links.dropdown-content a',context);
5language_elements.forEach((element)=>MenuInteractionEvent.init(element,{'event':'menu_interactions','menu_location':'top_menu','menu_header':'Languages','menu_subheader':'YOTEL'}));const top_nav_elements=once('menu_interaction_top_nav','.yotel-header__top_navigation a',context);top_nav_elements.forEach((element)=>MenuInteractionEvent.init(element,{'event':'menu_interactions','menu_location':'top_menu','menu_header':'Top navigation','menu_subheader':'YOTEL'},'.title'));const main_menu_elements=once('main_menu_elements','#block-yotel-main-navigation .menu .menu-item a',context);main_menu_elements.forEach((element)=>MenuInteractionEvent.init(element,{'event':'menu_interactions','menu_location':'top_menu','menu_header':'Main menu','menu_subheader':'YOTEL'}));const about_yotel_elements=once('about_yotel_elements','nav#block-yotel-about li a',context);about_yotel_elements.forEach((element)=>MenuInteractionEvent.init(element,{'event':'menu_interactions','menu_location':'footer_menu','menu_header':'Footer','menu_subheader':'About YOTEL'}));const footer_yotel_elements=once('footer_yotel_elements','nav#block-yotel-footer li a',context);footer_yotel_elements.forEach((element)=>MenuInteractionEvent.init(element,{'event':'menu_interactions','menu_location':'footer_menu','menu_header':'Footer','menu_subheader':'Footer links'}));const footer_language_switcher_elements=once('footer_language_switcher_elements','div#block-yotel-language-switcher-footer li a',context);footer_language_switcher_elements.forEach((element)=>MenuInteractionEvent.init(element,{'event':'menu_interactions','menu_location':'footer_menu','menu_header':'Footer','menu_subheader':'Language switcher'}));const footer_social_links_elements=once('footer_social_links_elements','div#block-yotel-social-media-links li a',context);footer_social_links_elements.forEach((element)=>MenuInteractionEvent.init(element,{'event':'menu_interactions','menu_location':'footer_menu','menu_header':'Footer','menu_subheader':'Social links'}));const header_menu_buttons=once('header_menu_buttons','.yotel-header a.yotel-header__button',context);header_menu_buttons.forEach((element)=>MenuInteractionEvent.init(element,{'event':'menu_interactions','menu_location':'top_menu','menu_header':'Header','menu_subheader':'Main menu'}));const carousel_interaction_elements=once('carousel_interaction_elements','.yotel-hp-slider',context);carousel_interaction_elements.forEach((carousel)=>{const cta_links_elements=carousel.querySelectorAll('.swiper-slide a');const carousel_name=carousel.querySelector('h3.hotel-hp--block-title').textContent?carousel.querySelector('h3.hotel-hp--block-title').textContent.trim():'Unknown';cta_links_elements.forEach((element,key)=>CtaInteractionEvent.init(element,{'event':'cta_interaction','carousel_name':carousel_name,'carousel_position':key}));});}};Drupal.behaviors.newsletter_subscribe_event={attach:(context)=>{const newsletter_success=once('newsletter_subscribe_event','.yotel-newsletter__success',context);newsletter_success.forEach((element)=>{let dataLayer=window['dataLayer']||[];dataLayer.push({'event':'newsletter_sign_up'});});}};Drupal.behaviors.room_detail_event={attach:(context)=>{const room_detail_event=once('room_detail_event','.yotel-hotel-rooms .yotel-modal-link, .yot-booking__cabin__read-more.yotel-modal-link, .yot-booking__cabin__read-more--mobile.yotel-modal-link',context);room_detail_event.forEach((element)=>{element.addEventListener('click',(e)=>{let dataLayer=window['dataLayer']||[];let linkData=element.dataset;if(linkData){dataLayer.push({'event':'select_item','room':{'hotel_id':linkData.locationId,'hotel_booking_id':linkData.locationBookingId,'hotel_name':linkData.locationName,'list_name':'Search Results','room_code':linkData.cabinId,'room_name':linkData.cabinName}});dataLayer.push({'event':'view_item','room':{'hotel_id':linkData.locationId,'hotel_booking_id':linkData.locationBookingId,'hotel_name':linkData.locationName,'list_name':'Search Results','room_code':linkData.cabinId,'room_name':linkData.cabinName}});}});});}};Drupal.behaviors.add_email_event={attach:(context)=>{const validateEmail=(email)=>{return email.match(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);};const add_email_event=once('add_email_event','#yotel-booking-details-anonymous #edit-payment-details-email',context);add_email_event.forEach((element)=>{element.addEventListener('change',(e)=>{const user_email=e.target.value;if(validateEmail(user_email)){let dataLayer=window['dataLayer']||[];dataLayer.push({"event":"email_added","user":{"user_email":user_email}});}});});}};Drupal.behaviors.add_shipping_info_event={attach:(context)=>{const add_shipping_info_form=once('add_shipping_info_form','[data-drupal-selector="yotel-booking-details-anonymous"]',context);add_shipping_info_form.forEach((form)=>{const shipping_info_form_elements=once('add_shipping_info_element','input, select',form);let eventFired=false;
5shipping_info_form_elements.forEach((element)=>{element.addEventListener('change',(e)=>{const bookingInfo=drupalSettings.yotel_booking_info;const eventInfo={'event':'add_shipping_info'};if(!eventFired){eventFired=true;let dataLayer=window['dataLayer']||[];let linkData=element.dataset;if(linkData)dataLayer.push({...eventInfo,...bookingInfo});}});});});}};Drupal.behaviors.add_payment_info_event={attach:(context)=>{const add_payment_info_form=once('add_payment_info_form','.yotel-form-payment .adyen-checkout__dropin',context);add_payment_info_form.forEach((form)=>{const payment_button=once('adyen_payment_button','.adyen-checkout__button.adyen-checkout__button--pay',form);payment_button.forEach((element)=>{element.addEventListener('click',(e)=>{const bookingInfo=drupalSettings.yotel_booking_info;const eventInfo={'event':'add_payment_info'};let dataLayer=window['dataLayer']||[];let linkData=element.dataset;if(linkData)dataLayer.push({...eventInfo,...bookingInfo});});});});}};})(Drupal,drupalSettings,once);;
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.