{"version":3,"file":"js/10962-802fa6276718bbd320a3.js","mappings":"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","sources":["webpack://cms-web/./app/frontend/src/blocks/hotel_gallery/hotel_gallery.analytics.js","webpack://cms-web/./app/frontend/src/blocks/hotel_gallery/hotel_gallery.commons.js","webpack://cms-web/./app/frontend/src/blocks/hotel_gallery/hotel_gallery.js","webpack://cms-web/./app/frontend/src/shared/bottom_sheet/bottom_sheet.js","webpack://cms-web/./app/frontend/src/shared/fastbooking/fastbooking.analytics.js","webpack://cms-web/./app/frontend/src/shared/loader_spinner/loader_spinner.js","webpack://cms-web/./app/frontend/src/utils/copy_to_clipboard.js"],"sourcesContent":["import { getPageVariation } from '../../core/analytics/shared.analytics'\nimport { sendUtagEvent } from '../../core/analytics/utag_events'\nimport { isDestiniaForm } from '../../shared/fastbooking/fastbooking.analytics'\nimport { cleaned_title } from '../../utils/utilities'\n\nexport function initializeUtagEvents(gallery) {\n const fhiPageType = document.querySelector('html').dataset.fhiTest\n IB.VisitorSessionId.initNewVisitorSessionId()\n\n gallery.querySelectorAll('.js-gallery-videos .hotel-gallery__slider .is-video').forEach(photoVideoElement => {\n photoVideoElement.addEventListener('click', () => {\n const name = 'hotel_multimedia_photos'\n const cat = 'hotel information'\n const act = 'see multimedia info'\n const lbl = 'photos'\n const purpose = 'inspiration'\n const structure = 'popup'\n sendUtagEvent({\n data: {\n event_name: name,\n event_cat: cat,\n event_act: act,\n event_lbl: lbl,\n event_purpose: purpose,\n event_structure: structure,\n page_variation: fhiPageType,\n page_images_clicked: '1',\n },\n })\n })\n })\n gallery.querySelectorAll('.js-gallery-section .hotel-gallery__grid .is-tour').forEach(photoVideoElement => {\n photoVideoElement.addEventListener('click', () => {\n const name = 'hotel_multimedia_photos'\n const cat = 'hotel information'\n const act = 'see multimedia info'\n const lbl = 'photos'\n const purpose = 'inspiration'\n const structure = 'popup'\n sendUtagEvent({\n data: {\n event_name: name,\n event_cat: cat,\n event_act: act,\n event_lbl: lbl,\n event_purpose: purpose,\n event_structure: structure,\n page_variation: fhiPageType,\n page_images_clicked: '1',\n },\n })\n })\n })\n\n document.querySelector('.utag-floating-fastbooking')?.addEventListener(\n 'click',\n () => {\n event_name = isDestiniaForm() ? 'searcher_flight_hotel' : 'searcher_hotel'\n event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n event_act = 'scroll to fastbooking'\n event_purpose = 'booking'\n event_lbl = 'popup'\n event_structure = 'popup'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n page_variation,\n },\n })\n },\n { once: true }\n )\n\n gallery\n .querySelectorAll('.js-gallery-section .hotel-gallery__grid .hotel-gallery__image-wrap')\n .forEach(photoVideoElement => {\n photoVideoElement.addEventListener('click', () => {\n const name = 'hotel_multimedia_photos'\n const cat = 'hotel information'\n const act = 'see multimedia info'\n const lbl = 'photos'\n const purpose = 'inspiration'\n const structure = 'popup'\n sendUtagEvent({\n data: {\n event_name: name,\n event_cat: cat,\n event_act: act,\n event_lbl: lbl,\n event_purpose: purpose,\n event_structure: structure,\n page_variation: fhiPageType,\n page_images_clicked: '1',\n },\n })\n })\n })\n gallery.querySelectorAll('.utag-swiper-button-next, .utag-swiper-button-prev').forEach(arrowButtons => {\n arrowButtons.addEventListener('click', () => {\n const pageVariation = document.querySelector('html').dataset.fhiTest === undefined ? 'rational' : 'inmersive'\n sendUtagEvent({\n data: {\n event_name: 'hotel_multimedia_photos',\n event_cat: 'hotel information',\n event_act: 'see multimedia info',\n event_lbl: 'photos',\n event_purpose: 'inspiration',\n event_structure: 'popup',\n page_variation: pageVariation,\n },\n })\n })\n })\n\n // BOTTOM SHEET UTAG EVENT (MOBILE)\n const shareButton = gallery.querySelector('.js-utag-share')\n shareButton?.addEventListener('click', e => {\n const hotelName = utag_data.hotel_name !== undefined ? cleaned_title(utag_data.hotel_name) : ''\n\n sendUtagEvent({\n data: {\n event_name: 'share_hotel',\n event_cat: 'hotel_information',\n event_act: 'share hotel',\n event_lbl: hotelName,\n event_structure: 'sticky',\n event_purpose: 'inspiration',\n },\n })\n })\n}\n","import inViewport from '../../utils/inViewport'\nimport { currentDevice } from '../../core/utils/currentDevice'\nimport fastbooking from '../../shared/fastbooking/ibh_fastbooking'\nimport { hideHeaderStickyHotel } from '../../shared/header_sticky_hotel/header_sticky_hotel'\n\nexport function bindEvents($lightbox) {\n const $lightboxDom = $lightbox.get(0)\n\n // Add anchor to links inside lightbox\n $lightbox.find('.js-gallery-anchor').on('click', function (e) {\n e.preventDefault()\n const $parent = $lightbox.parent()\n const adjust_scroll = $('.js-gallery-header').height() + 16\n const destination = $(this).attr('href')\n const calculatedTop = $(destination).position().top - adjust_scroll\n $parent.scrollTo(calculatedTop, 200)\n })\n\n // Set anchor link as active based on visible section\n $lightboxDom.querySelectorAll('.js-gallery-section').forEach(section => {\n inViewport(\n section,\n element => {\n if (element.isIntersecting) {\n // Remove active class from old active menu item\n $lightboxDom.querySelector(`.js-menu-item-in-bar.is-active`)?.classList.remove('is-active')\n\n // Add active class to current menu item\n $lightboxDom\n .querySelector(`.js-gallery-anchor[href=\"#${section.id}\"]`)\n ?.closest('.menu_item')\n ?.classList.add('is-active')\n }\n },\n {\n threshold: 0.5,\n }\n )\n })\n\n // Add custom fancybox for fullscreen behaviour\n\n $lightbox.find('[data-fancybox]').fancybox({\n animationEffect: 'fade',\n arrows: true,\n baseClass: 'hotel-gallery-fullscreen',\n buttons: ['close'],\n infobar: false,\n touch: {\n vertical: true,\n momentum: true,\n },\n wheel: false,\n onInit() {\n const fancyboxFooter = document.querySelector('.js-gallery-image-footer')\n const navigationPrevFullscreen = document.querySelector('.js-hotel-gallery-navigation-prev')\n const navigationNextFullscreen = document.querySelector('.js-hotel-gallery-navigation-next')\n const fancybox = document.querySelector('.hotel-gallery-fullscreen .fancybox-inner')\n const ctasBookNow = fancyboxFooter.querySelectorAll('.js-btn-floating-fastbooking')\n const imageWrapper = document.querySelectorAll('.hotel-gallery__image-wrap')\n let isVertical\n\n fancybox.append(fancyboxFooter)\n fancybox.append(navigationPrevFullscreen, navigationNextFullscreen)\n ctasBookNow.forEach(ctaBookNow => {\n ctaBookNow.addEventListener('click', ()=> {\n $.fancybox.close()\n /**We need this click to close the first fancybox */\n document.querySelector('.js-btn-close-fancybox').click()\n fastbooking.openStickyFastbooking()\n\n if (!currentDevice.isMobile) {\n hideHeaderStickyHotel()\n fastbooking.openDates()\n }\n\n })\n })\n imageWrapper.forEach(image => {\n if (image.dataset.isVertical === 'is-vertical') {\n isVertical = true\n return isVertical\n }\n })\n },\n beforeShow(instance, current) {\n const footerCaption = document.querySelectorAll(\n '.hotel-gallery-fullscreen .fancybox-inner .hotel-gallery-image-footer .hotel-gallery-image-caption'\n )\n\n footerCaption.forEach(caption => (caption.innerHTML = current.opts.caption))\n },\n afterShow(instance, current) {\n const fancyboxContent = document.querySelectorAll('.hotel-gallery-fullscreen .fancybox-inner .fancybox-content')\n\n fancyboxContent.forEach(content => {\n content.classList.add('fullscreen-image')\n if (current.opts.$orig[0].classList.contains('is-vertical')) {\n content.classList.add('is-vertical')\n } else {\n content.classList.remove('is-vertical')\n }\n })\n },\n })\n\n // Show video iframe and hide video picture block\n const videoContainer = document.querySelector('.js-hotel-gallery-video-container')\n videoContainer?.querySelectorAll('.js-hotel-gallery-video').forEach(video => {\n const videoPicture = video.querySelector('.js-hotel-gallery-video-image')\n const videoIframe = video.querySelector('.js-hotel-gallery-video-iframe')\n videoPicture.addEventListener('click', () => {\n videoPicture.classList.add('hidden')\n videoIframe.classList.remove('hidden')\n })\n })\n}\n\nconst getOffsetTop = element => {\n if (!element) return 0\n return getOffsetTop(element.offsetParent) + element.offsetTop\n}\n\nexport function scrollTo($lightbox, destinationSelector) {\n const destinationElement = document.querySelector(destinationSelector)\n\n if (!destinationElement) return\n\n const offsetTop = getOffsetTop(destinationElement)\n const adjust_scroll = document.querySelector('.js-gallery-header').offsetHeight\n const calculatedTop = offsetTop - adjust_scroll\n $lightbox.parent().scrollTo(calculatedTop)\n}\n","import { addImgToObserver } from '../../core/iberapi/lazy_img/lazy_img'\nimport { loadComponentAssets } from '../../lazy_wrappers/lazy_assets_loader'\nimport BottomSheet from '../../shared/bottom_sheet/bottom_sheet'\nimport loaderSpinner from '../../shared/loader_spinner/loader_spinner'\nimport { copyToClipboardNew } from '../../utils/copy_to_clipboard'\n\nimport { initializeUtagEvents } from './hotel_gallery.analytics'\nimport { bindEvents, scrollTo } from './hotel_gallery.commons'\n\nexport function openGallery(afterShowCallback) {\n const galleryImages = document.querySelector('.js-hotel-gallery')\n\n if (!galleryImages) {\n return\n }\n\n const fancyBoxOpen = document.querySelector('.fancybox-is-open')\n if (fancyBoxOpen) return\n\n loaderSpinner.show()\n\n initializeUtagEvents(galleryImages)\n\n loadComponentAssets(galleryImages).then(() => {\n loaderSpinner.hide()\n galleryImages.classList.remove('hidden')\n\n $.fancybox.open(galleryImages, {\n autoFocus: false,\n fullScreen: {\n requestOnStart: true,\n },\n afterShow(instance, current) {\n ScrollLock.on()\n const $lightbox = current.$content\n // Add lazy loading behaviour inside lightbox\n addImgToObserver($lightbox)\n\n bindEvents($lightbox)\n\n afterShowCallback && afterShowCallback($lightbox)\n\n const buttonClose = galleryImages.querySelector('.fancybox-button.fancybox-close-small')\n\n if (buttonClose) {\n buttonClose.remove()\n }\n },\n afterClose() {\n ScrollLock.off()\n },\n })\n })\n}\n\nexport function init() {\n const fancyboxPhotos = document.querySelectorAll('.js-open-gallery-modal')\n\n fancyboxPhotos.forEach(photos => {\n photos.addEventListener('click', function (e) {\n e.preventDefault()\n\n let galleryTagId\n const imageId = this.dataset.id\n if ('galleryTagId' in photos.dataset) {\n galleryTagId = e.target.closest('.js-fancybox-photos').dataset.galleryTagId\n }\n\n openGallery($lightbox => {\n if (galleryTagId) {\n scrollTo($lightbox, `#gallery-tag-${galleryTagId}`)\n } else if (imageId) {\n scrollTo($lightbox, `#gallery-image-${imageId}`)\n }\n })\n })\n })\n const socialShareList = document.querySelector('.social-share-list')\n const btnShareSocial = document.querySelector('.js-show-sheet')\n function showSocialListMobileHotelGallery() {\n btnShareSocial?.addEventListener('click', function () {\n socialShareList.classList.add('visible')\n })\n }\n showSocialListMobileHotelGallery()\n // Instantiate the class and init\n const showSheetBtn = document.querySelector('.js-show-sheet:not([data-bottom-sheet-initialized])')\n if (showSheetBtn) {\n const bottomSheet = new BottomSheet({\n showButton: showSheetBtn,\n })\n }\n\n // Copy url to clipboard function for bottom sheet link\n function initCopytoClipBoard() {\n const copyUrlbutton = document.querySelector('.js-copy-to-clipboard')\n copyUrlbutton?.addEventListener('click', e => {\n const url = window.location\n copyToClipboardNew(url)\n })\n }\n initCopytoClipBoard()\n}\n","/**\n * Represents a bottom sheet UI component.\n */\n\nexport default class BottomSheet {\n /**\n * @param {Object} config - The configuration object for the bottom sheet.\n * @param {HTMLElement} config.showButton - The button that shows the bottom sheet.\n * @param {number} [config.sheetHeight] - 'auto' by default. The initial height of the bottom sheet (in vh).\n * @throws {Error} Will throw an error if the 'showButton' parameter is not provided.\n * @throws {Error} Will throw an error if the 'sheetSelector' dataset is not provided.\n */\n\n constructor(config = {}) {\n if (!config.showButton) {\n throw new Error(\"The 'showButton' parameter is required\")\n }\n\n config.sheetHeight = config.sheetHeight || 'auto'\n\n this.config = config\n\n // Select DOM elements\n this.showModalBtn = config.showButton\n const sheetSelector = this.showModalBtn.dataset.sheetSelector\n\n if (!sheetSelector) {\n throw new Error(\"The 'sheetSelector' dataset is required\")\n }\n this.bottomSheet = document.querySelector(sheetSelector)\n this.sheetOverlay = this.bottomSheet.querySelector('.js-sheet-overlay')\n this.sheetContent = this.bottomSheet.querySelector('.js-sheet-content')\n this.dragIcon = this.bottomSheet.querySelector('.js-drag-icon')\n\n // Global variables for tracking drag events\n this.isDragging = false\n this.startY = 0\n this.startHeight = 0\n\n // Default sheet height\n this.sheetHeight = this.setDefaultSheetHeight()\n this.initialSheetHeight = this.sheetHeight\n this.sheetHeightLowerLimit = this.sheetHeight / 2\n\n // Initialize\n this.init()\n\n this.showModalBtn.dataset.bottomSheetInitialized = 'true'\n }\n\n setDefaultSheetHeight() {\n if (this.config.sheetHeight === 'auto') {\n this.sheetContent.style.height = 'auto'\n const currentSheetHeight = Math.ceil((this.sheetContent.clientHeight * 100) / window.innerHeight)\n this.sheetHeight = Math.min(currentSheetHeight, 100) // Set sheet height to current height or 100vh, whichever is smaller\n } else {\n this.sheetHeight = this.config.sheetHeight || 50\n }\n this.initialSheetHeight = this.sheetHeight\n this.sheetHeightLowerLimit = this.sheetHeight / 2\n }\n\n // Show the bottom sheet, hide body vertical scrollbar, and call updateSheetHeight\n showBottomSheet() {\n this.bottomSheet.classList.add('is-visible')\n this.setDefaultSheetHeight()\n this.updateSheetHeight(this.sheetHeight)\n ScrollLock.on()\n }\n\n updateSheetHeight(height) {\n this.sheetContent.style.height = `${height}vh` //updates the height of the sheet content\n // Toggles the fullscreen class to bottomSheet if the height is equal to 100\n this.bottomSheet.classList.toggle('is-fullscreen', height === 100)\n }\n\n // Hide the bottom sheet and show body vertical scrollbar\n hideBottomSheet() {\n this.bottomSheet.classList.remove('is-visible')\n ScrollLock.off()\n }\n\n // Sets initial drag position, sheetContent height and add dragging class to the bottom sheet\n dragStart(e) {\n this.isDragging = true\n this.startY = e.pageY || e.touches?.[0].pageY\n this.startHeight = parseInt(this.sheetContent.style.height)\n this.bottomSheet.classList.add('is-dragging')\n }\n\n // Calculates the new height for the sheet content and call the updateSheetHeight function\n dragging(e) {\n if (!this.isDragging) return\n const delta = this.startY - (e.pageY || e.touches?.[0].pageY)\n const newHeight = this.startHeight + (delta / window.innerHeight) * 100\n this.updateSheetHeight(newHeight)\n }\n\n // Determines whether to hide, set to fullscreen, or set to default\n // height based on the current height of the sheet content\n dragStop() {\n if (!this.isDragging) return\n this.isDragging = false\n this.bottomSheet.classList.remove('is-dragging')\n const sheetHeight = parseInt(this.sheetContent.style.height)\n if (sheetHeight < this.startHeight) {\n if (this.startHeight === this.initialSheetHeight) {\n this.hideBottomSheet()\n } else {\n this.updateSheetHeight(this.initialSheetHeight)\n }\n } else {\n this.updateSheetHeight(100)\n }\n }\n\n addEventListeners() {\n this.dragIcon.addEventListener('mousedown', this.dragStart.bind(this))\n document.addEventListener('mousemove', this.dragging.bind(this))\n document.addEventListener('mouseup', this.dragStop.bind(this))\n\n this.dragIcon.addEventListener('touchstart', this.dragStart.bind(this))\n document.addEventListener('touchmove', this.dragging.bind(this))\n document.addEventListener('touchend', this.dragStop.bind(this))\n\n this.sheetOverlay.addEventListener('click', this.hideBottomSheet.bind(this))\n this.showModalBtn.addEventListener('click', this.showBottomSheet.bind(this))\n }\n\n init() {\n this.addEventListeners()\n }\n}\n","import { getPageVariation } from '../../core/analytics/shared.analytics'\nimport { sendUtagEvent } from '../../core/analytics/utag_events'\nimport on from '../../utils/events_delegation'\nimport { search_action_type } from '../../utils/utilities'\n\nimport { UtagEvents } from './constants'\nimport fastbooking from './ibh_fastbooking'\n\nexport function isDestiniaForm() {\n return fastbooking.getTab() !== 'hotel'\n}\n\nexport function isFhiPage() {\n return document.querySelector('html').dataset.fhiTest !== undefined\n}\nexport function isFhPage() {\n return document.querySelector('html').dataset.pageTyoe === 'hotel'\n}\n\n// DONE\nexport function initializeFastbookingTabUtagEvent() {\n /* utag-event for flight and hotel tab */\n document.addEventListener(UtagEvents.FlightHotelTab, function () {\n sendUtagEvent({\n data: {\n event_name: 'searcher_select',\n event_cat: 'searcher',\n event_act: 'flight and hotel',\n event_lbl: '',\n event_purpose: 'booking',\n event_structure: fastbooking.isSticky ? 'sticky' : 'body',\n },\n })\n })\n\n /* utag-event for hotel tab */\n document.addEventListener(UtagEvents.HotelTab, function () {\n sendUtagEvent({\n data: {\n event_name: 'searcher_select',\n event_cat: 'searcher',\n event_act: 'hotel',\n event_lbl: '',\n event_purpose: 'booking',\n event_structure: fastbooking.isSticky ? 'sticky' : 'body',\n },\n })\n })\n}\nexport function initializeUtagEvents() {\n let event_name, event_cat, event_act, event_lbl, event_purpose, event_structure, page_variation\n const resource_class = document.querySelector('body').dataset.utagResourceClass\n const fhiPageType = document.querySelector('html').dataset.fhiTest\n\n /* Destination (place to go) input events */\n document.addEventListener(UtagEvents.Destination, event => {\n const data = event.detail\n let type = data.type\n let title = data.value.title_en\n if (data.type === 'lastSearches') {\n type = 'see last search'\n }\n if (data.type === 'airport') {\n type = 'origin'\n title = data.value.title\n }\n\n if (data.type === 'fhdestination') {\n type = 'destination'\n title = data.value.utag_title\n }\n event_name = isDestiniaForm() ? 'searcher_flight_hotel' : 'searcher_hotel'\n event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n event_act = type\n event_lbl = title\n event_purpose = 'booking'\n event_structure = 'body'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n page_variation,\n },\n })\n })\n\n // TODO: PY06114 Fase 2\n /* Airports (destinia) input events */\n document.querySelector('.utag-departure-airport')?.addEventListener('click', () => {\n event_name = 'searcher_flight_hotel'\n event_cat = 'searcher fly'\n event_act = 'origin'\n event_lbl = ''\n event_purpose = 'booking'\n event_structure = 'body'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n page_variation,\n },\n })\n })\n\n /* People input events */\n document.addEventListener(UtagEvents.Occupancy, function () {\n const event_name = isDestiniaForm() ? 'searcher_flight_hotel' : 'searcher_hotel'\n const event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n const event_purpose = 'booking'\n const event_structure = fastbooking.isSticky ? 'sticky' : 'body'\n\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act: 'rooms',\n event_lbl: '',\n event_purpose,\n event_structure,\n },\n })\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act: 'guests',\n event_lbl: '',\n event_purpose,\n event_structure,\n },\n })\n })\n\n document.addEventListener(UtagEvents.AddMoreRooms, function () {\n if (isDestiniaForm()) return\n const event_name = isDestiniaForm() ? 'searcher_flight_hotel' : 'searcher_hotel'\n const event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n const event_purpose = 'booking'\n const event_structure = fastbooking.isSticky ? 'sticky' : 'body'\n\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act: 'more than 3 rooms',\n event_lbl: '',\n event_purpose,\n event_structure,\n },\n })\n })\n\n /* Confirm people and rooms button events */\n document.addEventListener(UtagEvents.ConfirmOccupancy, () => {\n event_name = isDestiniaForm() ? 'searcher_flight_hotel' : 'searcher_hotel'\n event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n event_act = 'guests'\n event_lbl = ``\n event_purpose = 'booking'\n event_structure = 'body'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n page_variation,\n },\n })\n })\n\n /* Calendar events */\n document.addEventListener(UtagEvents.Dates, function () {\n IB.VisitorSessionId.initNewVisitorSessionId()\n const event_name = isDestiniaForm() ? 'searcher_flight_hotel' : 'searcher_hotel'\n const event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n const event_act = 'dates'\n const event_purpose = 'booking'\n const event_structure = 'body'\n const page_variation = getPageVariation()\n const event_lbl = ''\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n page_variation,\n },\n })\n })\n\n document.addEventListener(UtagEvents.FlexibleDates, () => {\n event_name = isDestiniaForm() ? 'searcher_flight_hotel' : 'searcher_hotel'\n event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n event_act = 'flexible date'\n event_lbl = 'see calendar'\n event_structure = 'body'\n event_purpose = 'booking'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n page_variation,\n },\n })\n })\n /* Discounts events */\n document.addEventListener(UtagEvents.Promocode, event => {\n const data = event.detail\n event_name = isDestiniaForm() ? 'searcher_flight_hotel' : 'searcher_hotel'\n event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n event_act = 'promotion code'\n event_purpose = 'booking'\n event_lbl = data?.promocode\n event_structure = 'body'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act: 'discount',\n event_lbl,\n event_purpose,\n event_structure,\n page_variation,\n },\n })\n })\n\n document.addEventListener(UtagEvents.PromocodeFocused, e => {\n const data = e.detail\n event_name = isDestiniaForm() ? 'searcher_flight_hotel' : 'searcher_hotel'\n event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n event_act = 'promotion code'\n event_purpose = 'booking'\n event_lbl = ''\n event_structure = 'body'\n page_variation = getPageVariation()\n\n event_lbl = data.promocode\n\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act: 'promotion code',\n event_lbl: '',\n event_purpose: 'booking',\n event_structure: 'body',\n page_variation,\n },\n })\n })\n /* Scroll to fastbooking events */\n document\n .querySelectorAll(\n '.utag-mobile-cta-sticky-bar .utag-open-mobile-panel, .utag-mobile-cta-sticky-bar .utag-open-search-btn'\n )\n .forEach(element => {\n element.addEventListener(\n 'click',\n () => {\n event_name = isDestiniaForm() ? 'searcher_flight_hotel' : 'searcher_hotel'\n event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n event_act = 'scroll to fastbooking'\n event_purpose = 'booking'\n event_lbl = 'sticky'\n event_structure = 'sticky'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n },\n })\n },\n { once: true }\n )\n })\n\n document.querySelectorAll('.utag-button-scroll-to').forEach(element => {\n element.addEventListener(\n 'click',\n () => {\n event_name = isDestiniaForm() ? 'searcher_flight_hotel' : 'searcher_hotel'\n event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n event_act = 'scroll to fastbooking'\n event_purpose = 'boooking'\n event_lbl = 'body'\n event_structure = 'body'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n },\n })\n },\n { once: true }\n )\n })\n\n document.querySelector('.utag-fastbooking-gallery')?.addEventListener(\n 'click',\n () => {\n event_name = isDestiniaForm() ? 'searcher_flight_hotel' : 'searcher_hotel'\n event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n event_act = 'scroll to fastbooking'\n event_purpose = 'booking'\n event_lbl = 'popup'\n event_structure = 'popup'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n page_variation,\n },\n })\n },\n { once: true }\n )\n\n document.querySelector('.utag-floating-fastbooking')?.addEventListener(\n 'click',\n () => {\n event_name = isDestiniaForm() ? 'searcher_flight_hotel' : 'searcher_hotel'\n event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n event_act = 'scroll to fastbooking'\n event_purpose = 'booking'\n event_lbl = 'popup'\n event_structure = 'popup'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n page_variation,\n },\n })\n },\n { once: true }\n )\n\n /** Submit */\n\n document.addEventListener(UtagEvents.Submit, () => {\n event_name = isDestiniaForm() ? 'searcher_flight_hotel_submit' : 'searcher_hotel_submit'\n event_cat = isDestiniaForm() ? 'searcher fly' : 'searcher'\n event_act = 'submit'\n event_purpose = 'booking'\n event_structure = 'body'\n event_lbl = 'search'\n\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n ...(isFhiPage ? { page_variation: fhiPageType } : {}),\n },\n })\n })\n\n // TODO: PY0503 quitar JQuery\n\n /* not in the bible */\n\n /** Estas donte estan? MICE? */\n $(document).one('click', '.fastbooking-links a.see-more-hotels-fancy', function () {\n event_name = 'searcher_hotel'\n event_cat = 'searcher'\n event_act = 'see hotel list'\n event_lbl = ''\n event_purpose = 'booking'\n event_structure = 'body'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n page_variation,\n },\n })\n })\n\n document.querySelector('.utag-three-more-rooms')?.addEventListener('click', function () {\n event_name = 'searcher_hotel'\n event_cat = 'searcher'\n event_act = 'more than 3 rooms'\n event_lbl = ''\n event_purpose = 'booking'\n event_structure = 'body'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n page_variation,\n },\n })\n })\n\n /* Evento para el selector mĂșltiple del FB en MICE y meetings*/\n let mice_place_value = [] // esto no se para que es\n $(document).on('click', '.place-to-go-mice:visible', function () {\n mice_place_value = $('#vo_meetings_search_destination_id').val()\n })\n\n $(document).one('change', '#vo_meetings_search_destination_id', function () {\n const place_value = $.merge(\n $(mice_place_value).not($(this).val()).get(),\n $($(this).val()).not(mice_place_value).get()\n ).slice(-1)[0]\n event_name = 'searcher_hotel'\n event_cat = 'searcher'\n event_act = search_action_type(place_value)\n event_lbl = ''\n event_purpose = 'booking'\n event_structure = 'body'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n page_variation,\n },\n })\n })\n\n $(document).one('selector_change', '.place-to-go-mice .counter', function () {\n const place_value = $('.place-to-go-mice .chosen-choices .search-choice span').first().text()\n event_name = 'searcher_hotel'\n event_cat = 'searcher'\n event_act = search_action_type(place_value)\n event_lbl = ''\n event_purpose = 'booking'\n event_structure = 'body'\n page_variation = getPageVariation()\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_purpose,\n event_structure,\n page_variation,\n },\n })\n })\n\n // Evento para el warning de Vuelo + Hotel\n on({\n eventName: 'click',\n selector: `.js-accept-button`,\n handler() {\n event_name = 'searcher_select'\n event_cat = 'searcher'\n event_act = 'flight and hotel'\n event_lbl = 'confirmation'\n event_structure = 'popup'\n event_purpose = 'booking'\n\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_structure,\n event_purpose,\n },\n })\n },\n })\n\n on({\n eventName: 'click',\n selector: `.js-reject-button`,\n handler() {\n event_name = 'searcher_select'\n event_cat = 'searcher'\n event_act = 'flight and hotel'\n event_lbl = 'disagreement'\n event_structure = 'popup'\n event_purpose = 'booking'\n\n sendUtagEvent({\n data: {\n event_name,\n event_cat,\n event_act,\n event_lbl,\n event_structure,\n event_purpose,\n },\n })\n },\n })\n}\n\nexport function fastbookingTabsEvents(tab) {\n sendUtagEvent({\n data: {\n event_name: 'searcher_select',\n event_cat: 'searcher',\n event_act: tab,\n event_lbl: '',\n event_purpose: 'booking',\n event_structure: fastbooking.isSticky ? 'sticky' : 'body',\n },\n })\n}\n\nexport function flightAndHotelModalEvents(action) {\n sendUtagEvent({\n data: {\n event_name: 'searcher_select',\n event_cat: 'searcher',\n event_act: 'flight and hotel',\n event_lbl: action,\n event_purpose: 'booking',\n event_structure: 'popup',\n },\n })\n}\n","const $body = document.querySelector('body')\nconst $loaderBlock = document.querySelector('.js-loader')\nconst SPINNER_ALLOWED_COLORS = ['primary', 'grey']\n\n/**\n * Loader spinner management\n *\n * @param {object} [container] - container where spinner will be appended\n * @param {string} [title] - title of the loader\n * @param {string} [subtitle] - subtitle of the loader\n * @param {string} [extraClass] - class to add to loader container\n * @param {number} [spinnerSize] - size of the spinner in px\n * @param {string} [spinnerColor='grey'] - color of the spinner (must be in SPINNER_ALLOWED_COLORS), grey by default.\n *\n * @example\n * // Show loaderSpinner in a specific container\n * loaderSpinner.show({\n * container: document.querySelector('.js-booking-container')\n * title: 'Wait a second',\n * subtitle: 'We are looking for the best price',\n * spinnerSize: 200,\n * spinnerColor: 'grey'\n * })\n *\n * // Hide loaderSpinner shown in a specific container\n * loaderSpinner.hide({\n * container: document.querySelector('.js-booking-container')\n * })\n *\n * // Show loaderSpinner in body at fullscreen (no container)\n * loaderSpinner.show()\n *\n * // Hide any loaderSpinner in page\n * loaderSpinner.hide()\n */\n\nconst loaderSpinner = () => {\n const show = (\n { container = $body, title, subtitle, spinnerSize, spinnerColor, extraClass } = { container: $body }\n ) => {\n if (!$loaderBlock) return\n\n const $newLoader = $loaderBlock.cloneNode(true)\n const $spinner = $newLoader.querySelector('.js-spinner svg')\n\n $newLoader.classList.add('js-loader-cloned')\n extraClass && $newLoader.classList.add(...extraClass.split(' '))\n\n // Set loader style\n $newLoader.classList.add(container === $body ? 'b-loader--fullscreen' : 'b-loader--default')\n // Remove legacy classes\n $newLoader.classList.remove('is-hidden', 'hidden', 'fixed')\n\n // Update texts\n if (title) {\n const $title = $newLoader.querySelector('.js-loader-title')\n if ($title) {\n $title.classList.remove('is-hidden', 'hidden')\n $title.textContent = title\n }\n }\n if (subtitle) {\n const $subtitle = $newLoader.querySelector('.js-loader-subtitle')\n if ($subtitle) {\n $subtitle.classList.remove('is-hidden', 'hidden')\n $subtitle.textContent = subtitle\n }\n }\n\n // Update spinner\n spinnerSize && ($spinner.style.width = `${spinnerSize}px`) && ($spinner.style.height = `${spinnerSize}px`)\n spinnerColor &&\n SPINNER_ALLOWED_COLORS.includes(spinnerColor) &&\n $spinner.classList.add(`b-loader__spinner--${spinnerColor}`)\n\n // Append to container\n container.append($newLoader)\n }\n\n const hide = ({ container = document } = { container: document }) => {\n container.querySelectorAll('.js-loader-cloned').forEach(loaderItem => {\n loaderItem.remove()\n })\n }\n\n return {\n show,\n hide,\n }\n}\n\nexport default loaderSpinner()\n","export function copyToClipboardNew(textToCopy) {\n // navigator clipboard api needs a secure context (https)\n if (navigator.clipboard && window.isSecureContext) {\n // navigator clipboard api method\n return navigator.clipboard.writeText(textToCopy)\n }\n // text area method\n const textArea = document.createElement('textarea')\n textArea.value = textToCopy\n // make the textarea out of viewport\n textArea.style.position = 'fixed'\n textArea.style.left = '-999999px'\n textArea.style.top = '-999999px'\n document.body.appendChild(textArea)\n textArea.focus()\n textArea.select()\n return new Promise((res, rej) => {\n document.execCommand('copy') ? res() : rej()\n textArea.remove()\n })\n}\n\n/**\n * Handles the click event for copying text to clipboard.\n * @param {Event} event The click event object.\n */\nexport function handleCopyToClipboardClick(event) {\n const content = event.target\n const text = event.target.innerText\n const textCopiedTranslation = event.target.getAttribute('data-translations')\n\n // Call function to copy text to clipboard\n copyToClipboardNew(text).then(() => {\n // Replace content text with copied text translation temporarily\n content.innerText = textCopiedTranslation\n\n // Restore original content text after 3 seconds\n setTimeout(() => {\n content.innerText = text\n }, 3000)\n })\n}\n"],"names":["initializeUtagEvents","gallery","fhiPageType","document","querySelector","dataset","fhiTest","IB","VisitorSessionId","initNewVisitorSessionId","querySelectorAll","forEach","photoVideoElement","addEventListener","sendUtagEvent","data","event_name","event_cat","event_act","event_lbl","event_purpose","event_structure","page_variation","page_images_clicked","isDestiniaForm","getPageVariation","once","arrowButtons","pageVariation","undefined","shareButton","e","hotelName","utag_data","hotel_name","cleaned_title","bindEvents","$lightbox","$lightboxDom","get","find","on","preventDefault","$parent","parent","adjust_scroll","$","height","destination","this","attr","calculatedTop","position","top","scrollTo","section","inViewport","element","isIntersecting","classList","remove","id","closest","add","threshold","fancybox","animationEffect","arrows","baseClass","buttons","infobar","touch","vertical","momentum","wheel","onInit","fancyboxFooter","navigationPrevFullscreen","navigationNextFullscreen","ctasBookNow","imageWrapper","isVertical","append","ctaBookNow","close","click","fastbooking","openStickyFastbooking","currentDevice","isMobile","hideHeaderStickyHotel","openDates","image","beforeShow","instance","current","caption","innerHTML","opts","afterShow","content","$orig","contains","videoContainer","video","videoPicture","videoIframe","getOffsetTop","offsetParent","offsetTop","destinationSelector","destinationElement","offsetHeight","openGallery","afterShowCallback","galleryImages","loaderSpinner","show","loadComponentAssets","then","hide","open","autoFocus","fullScreen","requestOnStart","ScrollLock","$content","addImgToObserver","buttonClose","afterClose","off","init","photos","galleryTagId","imageId","target","socialShareList","btnShareSocial","showSheetBtn","BottomSheet","showButton","copyUrlbutton","url","window","location","copyToClipboardNew","initCopytoClipBoard","constructor","config","arguments","length","Error","sheetHeight","showModalBtn","sheetSelector","bottomSheet","sheetOverlay","sheetContent","dragIcon","isDragging","startY","startHeight","setDefaultSheetHeight","initialSheetHeight","sheetHeightLowerLimit","bottomSheetInitialized","style","currentSheetHeight","Math","ceil","clientHeight","innerHeight","min","showBottomSheet","updateSheetHeight","toggle","hideBottomSheet","dragStart","pageY","touches","parseInt","dragging","delta","newHeight","dragStop","addEventListeners","bind","getTab","isFhiPage","utagResourceClass","UtagEvents","Destination","event","detail","type","title","value","title_en","utag_title","Occupancy","isSticky","AddMoreRooms","ConfirmOccupancy","Dates","FlexibleDates","Promocode","promocode","PromocodeFocused","Submit","one","mice_place_value","val","place_value","merge","not","slice","search_action_type","first","text","eventName","selector","handler","fastbookingTabsEvents","tab","flightAndHotelModalEvents","action","$body","$loaderBlock","SPINNER_ALLOWED_COLORS","container","subtitle","spinnerSize","spinnerColor","extraClass","$newLoader","cloneNode","$spinner","split","$title","textContent","$subtitle","width","includes","loaderItem","textToCopy","navigator","clipboard","isSecureContext","writeText","textArea","createElement","left","body","appendChild","focus","select","Promise","res","rej","execCommand","handleCopyToClipboardClick","innerText","textCopiedTranslation","getAttribute","setTimeout"],"sourceRoot":""}