{"version":3,"file":"js/commons/layouts/microsites/star_agents/application-195bbadb9c80561764e4.js","mappings":"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","sources":["webpack://cms-web/./app/frontend/src/microsites/staragents/main/main.js","webpack://cms-web/./app/frontend/packs/commons/layouts/microsites/star_agents/application.js","webpack://cms-web/./app/frontend/src/blocks/hotel_header/hotel_header.analytics.js","webpack://cms-web/./app/frontend/src/blocks/hotel_header/hotel_header.js","webpack://cms-web/./app/frontend/src/shared/drop_down_header_menu/drop_down_header_menu.js","webpack://cms-web/./app/frontend/src/shared/simpleSlider/simpleSlider.js","webpack://cms-web/external promise \"import(\\\"https://apiimg.iberostar.com/fastbooking/dist/assets/remoteEntry.js"],"sourcesContent":["import { initBottomLinks } from '../../../shared/bottom_links/bottom_links'\nimport { initDashboardBookingRow } from '../../../shared/dashboard_booking_row/dashboard_booking_row'\nimport loaderSpinner from '../../../shared/loader_spinner/loader_spinner'\n//import _uniq from 'lodash/uniq';\n//import dayjs from 'dayjs';\n//import isBetween from 'dayjs/plugin/isBetween';\n//import minMax from 'dayjs/plugin/minMax';\n//import customParseFormat from 'dayjs/plugin/customParseFormat';\nimport watchJob from '../../../utils/watch_job.js'\n\nconst getStaragentBookings = () => {\n const $jobIdElement = document.querySelector('.js-staragents-bookings-job-id')\n\n if (!$jobIdElement) return\n\n const bookingsJobId = $jobIdElement?.value\n\n if (!bookingsJobId) return\n\n const $bookingsContainer = document.querySelector('.js-bookings-container')\n\n if (!$bookingsContainer) return\n\n const loaderText = $jobIdElement.dataset.waitText\n const loaderSubText = $jobIdElement.dataset.waitSubtext\n const $loaderContainer = $bookingsContainer.parentElement\n const REPLACEMENT_PROPS = {\n active: 'html_replacements_active',\n inactive: 'html_replacements_not_active',\n canceled: 'html_replacements_canceled',\n }\n const htmlProperties = [REPLACEMENT_PROPS.active, REPLACEMENT_PROPS.inactive, REPLACEMENT_PROPS.canceled]\n\n // show loaderSpinner\n loaderSpinner.show({\n container: $loaderContainer,\n extraClass: 'mt-7 mb-7',\n title: loaderText,\n subtitle: loaderSubText,\n spinnerColor: 'primary',\n })\n\n let prefix = document.querySelector('html').getAttribute('prefix')\n prefix = prefix !== '/' ? prefix : ''\n const jobRequestUrl = `${prefix}/star_agent_bookings_jobs/${bookingsJobId}/`\n\n const handleBookingsResponse = response => {\n if (!response || !response.length) return\n\n const responseParsed = JSON.parse(response)\n\n // Concat all html_replacements\n const bookingsHtml = htmlProperties.reduce((previousValue, currentProperty) => {\n const currentHtml = responseParsed[currentProperty]\n\n if (!currentHtml) return `${previousValue}`\n\n const currentHtmlParsed = JSON.parse(responseParsed[currentProperty])\n // currentHtmlParsed is an object with all bookings which structure is { booking_id: booking_html }\n // so by obtaining all values and joining them we get all html in a unique string\n const bookingsHtmlList = Object.values(currentHtmlParsed)\n const htmlReplacementSerialized = bookingsHtmlList.join('')\n\n return previousValue + htmlReplacementSerialized\n }, '')\n\n if (bookingsHtml.length) {\n // Show bookings container if hidden\n if ($bookingsContainer.classList.contains('is-hidden')) {\n $bookingsContainer.classList.remove('is-hidden')\n }\n }\n\n // Append html\n $bookingsContainer.innerHTML = bookingsHtml\n IB.currencyForm.forceUpdate($bookingsContainer)\n initBottomLinks()\n initDashboardBookingRow()\n }\n\n const showFilterSelector = () => {\n const $filterSelector = document.querySelector('.js-bookings-filter')\n\n if (!$filterSelector) return\n\n const bookingStatePresence = {\n active: !!$bookingsContainer.querySelector('[data-category=\"active\"]'),\n inactive: !!$bookingsContainer.querySelector('[data-category=\"not_active\"]'),\n canceled: !!$bookingsContainer.querySelector('[data-category=\"canceled\"]'),\n }\n\n if ($filterSelector.classList.contains('is-hidden')) {\n $filterSelector.classList.remove('is-hidden')\n }\n\n // Show proper filter options\n $filterSelector\n .querySelector('.js-bookings-filter-active')\n .classList.toggle('is-hidden', !bookingStatePresence['active'])\n $filterSelector\n .querySelector('.js-bookings-filter-inactive')\n .classList.toggle('is-hidden', !bookingStatePresence['inactive'])\n $filterSelector\n .querySelector('.js-bookings-filter-canceled')\n .classList.toggle('is-hidden', !bookingStatePresence['canceled'])\n }\n\n const showBookingsEmptyWrapper = () => {\n // Hide bookings container and show empty bookings container\n const $bookingsMainWrapper = document.querySelector('.js-bookings-main-wrapper')\n const $emptyBookingsMainWrapper = document.querySelector('.js-bookings-empty-wrapper')\n $bookingsMainWrapper && $bookingsMainWrapper.classList.add('is-hidden')\n $emptyBookingsMainWrapper && $emptyBookingsMainWrapper.classList.remove('is-hidden')\n }\n\n watchJob({\n url: jobRequestUrl,\n timeout: 1000,\n onPartialResponse: handleBookingsResponse,\n onComplete: response => {\n loaderSpinner.hide({\n container: $loaderContainer,\n })\n\n // Check if there is any booking\n if (!response || !response.length || !Object.values(JSON.parse(response)).length) {\n showBookingsEmptyWrapper()\n } else {\n const responseParsed = JSON.parse(response)\n const hasHtmlContent = htmlProperties.some(property => {\n if (!responseParsed[property].length) return false\n\n const htmlObject = JSON.parse(responseParsed[property])\n return !!Object.values(htmlObject).length\n })\n\n if (hasHtmlContent) {\n // Show bookings\n handleBookingsResponse(response)\n showFilterSelector()\n } else {\n showBookingsEmptyWrapper()\n }\n }\n },\n })\n}\n\ngetStaragentBookings()\n\n$(document).on('click', '.link-legacy-star-agents', function (event) {\n event.preventDefault()\n const $el = $(this)\n\n Modal.show('legacy-star-agents', {\n onShow: () => {\n ScrollLock.on()\n $(`.link-legacy-star-agents`).attr('href', $el.attr('data-link'))\n },\n onClose: () => {\n ScrollLock.off()\n },\n awaitCloseAnimation: true,\n })\n})\n\n$(document).on('click', '.link-cancel', function (event) {\n event.preventDefault()\n const cardReservation = event.target.closest('.js-block-cnt-child')\n\n Modal.show('booking-modal-cancel', {\n onShow: modal => {\n ScrollLock.on()\n $(`.booking-modal-cancel-link`).attr('href', $(this).attr('data-link'))\n\n $(modal).on('click', '.js-booking-modal-cancel', function () {\n cardReservation.classList.add('hidden')\n Modal.close()\n })\n },\n onClose: () => {\n ScrollLock.off()\n },\n awaitCloseAnimation: true,\n })\n})\n\n$(document).on('click', '.booking-modal-close', function (event) {\n event.preventDefault()\n Modal.close()\n})\n\nif ($('.wrapper-flash').length > 0) {\n $('html, body').animate({ scrollTop: $('.wrapper-flash').first().offset().top - 50 }, 500)\n}\n\nif (\n $('.js-current-agent-points').length > 0 &&\n IB.browsing_sessions.getData()['redis_values']['sta_points'] !== $('.js-current-agent-points').text()\n) {\n IB.browsing_sessions.storeHash({ sta_points: $('.js-current-agent-points').text() }, function (data) {\n if (data !== null) {\n localStorage.setItem('browsing_session', JSON.stringify(data))\n }\n })\n}\n","/* eslint-disable simple-import-sort/imports */\n// GENERAL IMPORTS\nimport '../../../../../src/core/global'\n// JS creado para el destination_breadcrumb\nimport '../../../../../src/elements/destination_breadcrumb/destination_breadcrumb'\n// BLOCK LAYER\nimport '../../../../../src/core/iberapi/block_layer/block_layer.scss'\nimport '../../../../../src/vendors/forms/formz'\nimport '../../../../../src/shared/forms/forms'\nimport '../../../../../src/shared/truncable/truncable'\n\nimport '../../../../../src/shared/logged_user/logged_user'\nimport '../../../../../src/shared/cookie_defaults/cookie_defaults'\n// VENDORS\nimport '../../../../../src/vendors/jquery/jquery.cookie.min'\nimport '../../../../../src/vendors/formikation/formikation'\nimport '../../../../../src/vendors/rangedatepicker/rangedatepicker'\nimport '../../../../../src/vendors/urlParser/urlParser'\nimport '../../../../../src/vendors/aria_manager/aria_manager'\nimport '@fancyapps/fancybox'\nimport '../../../../../src/vendors/fancybox/_fancybox.scss'\nimport '../../../../../src/vendors/fancybox/fancybox.custom'\n\n// ANALYTICS\nimport '../../../../../src/core/analytics/count_down_session_campaign'\nimport '../../../../../src/core/analytics/partner_set_cookies'\nimport '../../../../../src/core/analytics/utag_events'\nimport '../../../../../src/core/analytics/callback_utag_data'\nimport '../../../../../src/core/analytics/utag_eec_events'\nimport '../../../../../src/core/analytics/utag_session_counter'\nimport '../../../../../src/core/analytics/getHotelHeadquarters'\nimport '../../../../../src/core/analytics/dataLayerFunctions'\n// CORE IBERAPI\nimport '../../../../../src/core/iberapi/partner_shower/partner_shower'\nimport '../../../../../src/core/iberapi/visitor_type_detector/visitor_type_detector'\nimport '../../../../../src/core/iberapi/lazy_img/lazy_img'\n// BEHAVIORAL MODES ENABLED FROM CMS\nimport '../../../../../src/core/cancel_online_bookings/force_cc_lightbox'\nimport '../../../../../src/core/iberapi/market_simulator/market_simulator'\nimport '../../../../../src/core/iberapi/market_simulator/simulate_market'\nimport '../../../../../src/blocks/ib_gallery/gallery_init'\n// ELEMENTS\nimport '../../../../../src/elements/alert/alert'\nimport '../../../../../src/elements/badge/badge'\nimport '../../../../../src/elements/breadcrumbs/breadcrumbs.scss'\nimport '../../../../../src/elements/filter_tabs/filter_tabs_commons.scss'\nimport '../../../../../src/elements/headband/headband'\nimport '../../../../../src/elements/info_links/info_links.scss'\nimport '../../../../../src/elements/rating_circles/rating_circles.scss'\nimport '../../../../../src/elements/sashes/sashes.scss'\nimport '../../../../../src/elements/skeleton/skeleton.scss'\nimport '../../../../../src/elements/skeleton/skeleton'\nimport '../../../../../src/elements/spinner/spinner.scss'\nimport '../../../../../src/elements/toggle/toggle'\nimport '../../../../../src/elements/tooltip/tooltip'\nimport '../../../../../src/elements/user_links/user_links.scss'\nimport '../../../../../src/elements/pro_link/pro_link'\nimport '../../../../../src/elements/cookie_country/cookie_country'\nimport '../../../../../src/shared/megabanner_slider/megabanner_slider'\nimport '../../../../../src/shared/sta_form/sta_form.scss'\nimport '../../../../../src/shared/sta_form/sta_form_mobile.scss'\n\n// import '../../../../../src/blocks/destinations_index_packed/destinations_index'\n//import '../../../../../src/shared/fastbooking/fastbooking'\nimport '../../../../../src/shared/fastbooking_new_hotel/fastbooking_new_hotel.scss'\n\nimport '../../../../../../frontend/src/shared/drop_down_header_menu/drop_down_header_menu'\n// Browsing session\nimport '../../../../../src/core/iberapi/browsing_session/browsing_session'\n// LAYOUT\nimport '../../../../../src/layout/mobile_header/mobile_header'\n//COOKIES_POLICY_POPUP\nimport '../../../../../src/blocks/cookies_content/cookies_content.js'\nimport '../../../../../src/blocks/cookies_content/cookies_content.scss'\n// SHARED\nimport '../../../../../src/shared/locale_cookie/locale_cookie'\nimport '../../../../../src/core/iberapi/hotels_data/hotels_data' // 1\nimport '../../../../../src/shared/locale_form/locale_form' // 3\nimport '../../../../../src/shared/phone_list/phone_list' // 8\nimport '../../../../../src/shared/currency_form/currency_form' // 9\nimport '../../../../../src/shared/device_detector/device_detector'\nimport '../../../../../src/shared/currency_agency_selector/currency_agency_selector'\nimport '../../../../../src/shared/mobile_panel/mobile_panels'\nimport '../../../../../src/shared/callmeback/callmeback'\nimport '../../../../../src/shared/internal_nav/internal_nav'\nimport '../../../../../src/shared/not_logged_booking/not_logged_booking.scss'\nimport '../../../../../src/shared/partners/partners.scss'\n\nimport '../../../../../src/shared/hotel_next_opening/hotel_next_opening'\nimport '../../../../../src/shared/offer_notifications/offer_notifications'\nimport '../../../../../src/shared/input_date/input_date'\nimport '../../../../../src/shared/share_lightbox/share_lightbox'\nimport '../../../../../src/shared/sort_by/sort_by'\nimport '../../../../../src/shared/footer_sticky/footer_sticky'\nimport '../../../../../src/shared/next_bookings/next_bookings'\nimport '../../../../../src/shared/banners/banners'\nimport '../../../../../src/shared/pill/pill.scss'\nimport '../../../../../src/shared/user_menu/user_menu.scss'\nimport '../../../../../src/shared/password_field/password_field.scss'\nimport '../../../../../src/shared/comp_card/comp_card.scss'\nimport '../../../../../src/shared/fancybox_overwrited/fancybox_overwrited.scss'\nimport '../../../../../src/core/iberapi/ready/ready'\n\n// BLOCKS\nimport '../../../../../src/blocks/header_customized/header_customized'\nimport '../../../../../src/blocks/home_megabanner_slider/home_megabanner_slider'\n\n// TODO: only used in mobile, try to import only in mobile devices\nimport '../../../../../src/shared/social_share_builder/social_share_builder'\nimport '../../../../../src/blocks/hotel_header/hotel_header'\nimport '../../../../../src/blocks/landing_typekit_header/landing_typekit_header'\nimport '../../../../../src/blocks/auto_pop_up/auto_pop_up'\nimport '../../../../../src/blocks/best_online_rate/best_online_rate'\nimport '../../../../../src/shared/side_panel/side_panel'\nimport '../../../../../src/blocks/hotel_information_ratings/hotel_information_ratings'\n// PAGES\nimport '../../../../../src/pages/register/register'\nimport '../../../../../src/pages/session_page/session_page'\nimport '../../../../../src/pages/my_iberostar/facebook_widget'\n// ADMIN\nimport '../../../../../src/core/iberapi/admin_browsing/admin_browsing'\n// TEST LOAD BLOCKS\nimport '../../../../../src/core/iberapi/block_layer/test_block_layer'\n// After register in Auth0\nimport '../../../../../src/core/horizons_lightbox/horizons_postregister_lightbox'\n\n//APP IN\nimport '../../../../../../assets/javascripts/web_view'\n\n// AUTH0\nimport '../../../../../src/auth0/sso.js'\nimport 'hls.js'\n\nimport '../../../../../src/blocks/my_iberostar_page_packed/my_iberostar_page'\nimport '../../../../../src/blocks/my_iberostar_page_packed/my_iberostar_page.scss'\n\n// Dashboard booking row\nimport '../../../../../src/shared/dashboard_booking_row/date_selection_datepicker/date_selection_datepicker'\nimport '../../../../../src/shared/dashboard_booking_row/dashboard_booking_row'\nimport '../../../../../src/shared/dashboard_booking_row/dashboard_booking_row_commons'\nimport '../../../../../src/microsites/staragents/main/main'\nimport '../../../../../src/microsites/staragents/shared/sta_modal_form/sta_modal_form_commons'\nimport '../../../../../src/microsites/staragents/shared/sta_modal_form/sta_modal_form_mobile'\n\n// PY05355, Header REB - Ficha de hotel 2023, ?test_reb_header=true\nimport('../../../../../src/layout/header/reb/header')\n// PY05355, Vue Hotel Header Lite\nimport('../../../../../src/vue/hotel_header_lite/vue_hotel_header_lite')\n\nimport('../../../../../src/blocks/hotels_info_with_filtering_packed/hotels_info_with_filtering')\n\nimport('../../../../../src/shared/header_sticky_hotel/header_sticky_hotel')\n\nimport('../../../../../src/vue/popup_notification/vue_popup_notification')\n\n// VUE MAIN NAV\nimport('../../../../../src/vue/main_nav/vue_main_nav')\n\nimport('../../../../../src/shared/ibh_fastbooking/ibh_fastbooking_container')\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\n\nexport function initializeUtagEvents() {\n const isFhiPage = document.querySelector('html').dataset.fhiTest !== undefined\n const fhiPageType = document.querySelector('html').dataset.fhiTest\n\n document.querySelectorAll('.utag-hotel-header-thumbnail').forEach(element => {\n element.addEventListener('click', () => {\n const data = {\n event_name: 'hotel_multimedia',\n event_cat: 'hotel information',\n event_act: 'see photos and videos',\n event_lbl: 'photos',\n event_purpose: 'inspiration',\n event_structure: 'popup',\n }\n\n if (!isFhiPage) {\n sendUtagEvent({ data: { ...data } })\n } else {\n sendUtagEvent({ data: { ...data, page_variation: fhiPageType } })\n }\n })\n })\n\n document.querySelector('.utag-info-photos')?.addEventListener('click', () => {\n const data = {\n event_name: 'hotel_multimedia',\n event_cat: 'hotel information',\n event_act: 'see photos and videos',\n event_lbl: 'header',\n event_purpose: 'inspiration',\n event_structure: 'header',\n }\n\n if (!isFhiPage) {\n sendUtagEvent({ data: { ...data } })\n } else {\n sendUtagEvent({ data: { ...data, page_variation: fhiPageType } })\n }\n })\n}\n","// PY05355, Fastbooking REB - Ficha de hotel 2023\nimport { currentDevice } from '../../core/utils/currentDevice'\nimport * as SliderNav from '../../elements/scrollsnap_slider/scrollsnap_slider_nav'\nimport fastbooking from '../../shared/fastbooking/ibh_fastbooking.js'\nimport simpleSlider from '../../shared/simpleSlider/simpleSlider.js'\nimport getRealMarketContent, { dispatchRealMarketContentUpdatedEvent } from '../../utils/get_real_market_content'\nimport inViewport from '../../utils/inViewport'\nimport { scrollToElementWithHeader } from '../../utils/scroll_to_element'\nimport { initializeUtagEvents } from '../hotel_header/hotel_header.analytics'\n\nimport('../../../src/vue/fastbooking/vue_fastbooking')\n\n// Replace CTAs with real market html content\nfunction updateCtaWithRealMarketContent() {\n const blockSelector = '.js-hotel-header-container'\n const mainContainer = document.querySelector(blockSelector)\n const blockId = mainContainer?.dataset.blockId\n const constrainedViewId = mainContainer?.dataset.constrainedViewId\n\n if (blockId && constrainedViewId) {\n getRealMarketContent({ blockId, constrainedViewId })\n .then(response => {\n // Desktop replacement\n const stickyContainer = document.querySelector('.js-header-sticky-hotel')\n const desktopCta = stickyContainer.querySelector('.js-download-button')\n if (desktopCta) {\n desktopCta.outerHTML = response.html_replacement\n }\n\n // Mobile replacement: same as desktop but without main div container and with different classes\n const mobileCta = mainContainer.querySelectorAll('.js-fastbooking-btn-price:not(.hidden)')\n function parseHtmlButtonToMobile(html) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = html\n\n // add mobile classes\n const button = tempDiv.querySelector('.btn-floating-fastbooking')\n button?.classList.add('js-cta-btn', 'js-fastbooking-btn-price')\n\n // Remove room/night legend\n tempDiv.querySelector('.js-hint-cnt')?.remove()\n\n // Remove duplicated string\n tempDiv.querySelector('.js-stays-per')?.remove()\n\n // return html without main div container, in mobile only btn-floating-fastbooking is needed\n const mainWrapper = tempDiv.querySelector('.js-download-button')\n return mainWrapper.innerHTML\n }\n\n if (mobileCta.length) {\n mobileCta.forEach(element => {\n element.outerHTML = parseHtmlButtonToMobile(response.html_replacement)\n })\n }\n\n // Reinit prices after replacement\n const hotelHeadersSelector = `${blockSelector}, .js-header-sticky-hotel`\n IB.currencyForm.forceUpdate($(hotelHeadersSelector))\n\n dispatchRealMarketContentUpdatedEvent({ blockSelector: hotelHeadersSelector, blockName: 'hotel-header' })\n })\n .catch(error => {\n // console.warn(error);\n })\n }\n}\n\nconst HOTEL_HEADER = '.js-hotel-header'\n\nfunction initFastbookingBtn() {\n document.addEventListener('click', function (e) {\n const target = e.target.closest('.btn-floating-fastbooking')\n if (!target) return\n\n const isHeaderSticky = target.closest(HOTEL_HEADER)\n if (isHeaderSticky) {\n fastbooking.openStickyFastbooking()\n if (!currentDevice.isMobile) {\n fastbooking.openDates()\n }\n }\n })\n}\n\nfunction init() {\n if (document.querySelector('.js-hotel-header') === null) return\n\n const block_selector = '.hotel-header'\n const block = document.querySelector(`${block_selector}`)\n initializeUtagEvents()\n\n // Giving the browser time to style the css slider\n // so it hides the slides but the first one\n // and the observer doesn't detect them (buggy behaviors)\n const timeToHideOtherSlides = 1500\n\n // Common video elements\n const video = document.querySelector('.header-top .header-image')\n const video_item = video.querySelector('.video-content')\n\n // Common pictures\n const picture = document.querySelector('.header-image')\n\n // Common videos\n const videos_arr = video.dataset.videos.split(' | ')\n\n // scroll down button\n const $js_scrolldown = $(block).find('.js-scrolldown')\n $js_scrolldown &&\n $js_scrolldown.on('click', function () {\n scrollToElementWithHeader(document.querySelector('.js-masonry-gallery'))\n })\n\n if (currentDevice.isMobile) {\n // circle button in bottom left corner which opens gallery\n const header_actions = block.querySelector(`.hotel-abouts .header-actions`)\n\n // setNumberImagesShowMoreMobile\n if (document.querySelector('.gallery-container')) {\n const totalGalleryImages = parseInt(document.querySelector('a[data-items]')?.dataset.items)\n const numVisibleImages = parseInt(document.querySelector('.gallery-container')?.dataset.numVisibleImages)\n const showMoreNode = document.querySelector('.show-more')\n showMoreNode.innerHTML =\n totalGalleryImages - numVisibleImages > 0 ? `+ ${totalGalleryImages - numVisibleImages}` : ''\n }\n\n // Hide video section in mobile\n if (video_item) {\n video_item.style.display = 'none'\n }\n\n // request idle callback too fast to use here\n setTimeout(function () {\n SliderNav.init(\n document.querySelector('.hotel-header .ss-slider'),\n document.querySelector('.hotel-header .ss-slider-nav'),\n function (slide) {\n document.querySelectorAll('.hotel-header .ss-slider picture').forEach((picture, index) => {\n if (index > 0) {\n picture.style.display = 'block'\n }\n })\n slide && slide.classList.contains('last')\n ? header_actions.classList.add('is-hidden')\n : header_actions.classList.remove('is-hidden')\n }\n )\n }, timeToHideOtherSlides)\n\n // Replace default images with gif in some cases\n const videoSliderContainer = video.querySelector('.ss-slider--container')\n if (videoSliderContainer) {\n videoSliderContainer.querySelectorAll('.ss-slide.js-slide-element').forEach((item, index) => {\n const is_valid_videos_arr = videos_arr && videos_arr[index]\n if (is_valid_videos_arr && videos_arr[index] !== 'No video' && videos_arr[index] !== '') {\n let value = ''\n value =\n index ===\n video.querySelector('.ss-slider--container').querySelectorAll('.ss-slide.js-slide-element').length - 1\n ? videos_arr[0]\n : videos_arr[index]\n item.querySelector('img').setAttribute('src', value)\n if (item.querySelectorAll('source').length > 0) {\n item.querySelectorAll('source').forEach(subitem => {\n subitem.setAttribute('data-srcset', value)\n })\n }\n }\n })\n }\n } else {\n // only one image available, no need to keep executing script\n if (!block.querySelectorAll('.js-slide-item').length) {\n if (video_item) video_item.loop = true\n } else {\n // Simple slider init\n const $sliderWrapper = document.querySelector('.js-ss-slider')\n\n if (!$sliderWrapper) return\n\n const $sliderSlides = $sliderWrapper.querySelectorAll('.js-slide-item')\n\n if ($sliderSlides.length > 1) {\n const $sliderNav = document.querySelector('.js-ss-slider-nav')\n const $sliderNavItems = $sliderNav.querySelectorAll('[data-slide-index]')\n\n const slider = new simpleSlider({\n wrapper: $sliderWrapper,\n slides: $sliderSlides,\n autoPlayTimeout: 6000,\n })\n\n slider.addEventListener('slider:change', function (event) {\n const activeIndex = event.detail\n // Update nav\n $sliderNav.querySelector('[data-slide-index].active').classList.remove('active')\n $sliderNav.querySelector(`[data-slide-index=\"${activeIndex}\"]`).classList.add('active')\n })\n\n // Play slider when entering viewport and Pause when leaving\n const sliderIntersectionObserver = inViewport(\n $sliderWrapper,\n element => {\n if (element.isIntersecting) {\n slider.play()\n } else {\n slider.pause()\n }\n },\n {\n threshold: 0.3,\n }\n )\n\n for (let i = 0; i < $sliderNavItems.length; i++) {\n $sliderNavItems[i].addEventListener('click', event => {\n const newSlideActiveIndex = event.target.dataset?.slideIndex\n\n if (!newSlideActiveIndex) return\n\n slider.goTo(parseInt(newSlideActiveIndex))\n\n // Autoplay is stopped, so unobserve intersection to prevent a new autoplay\n sliderIntersectionObserver.unobserve($sliderWrapper)\n })\n }\n }\n }\n }\n\n updateCtaWithRealMarketContent()\n\n initFastbookingBtn()\n}\n\ninit()\n","function openDropDownHeaderMenu() {\n const dropDownItem = document.querySelector('.js-drop-down-selector')\n const dropDownList = document.querySelector('.js-drop-down-link')\n const dropDownIcon = document.querySelector('.js-drop-down-icon')\n\n if (dropDownItem) {\n dropDownItem.addEventListener('click', function () {\n dropDownList.classList.toggle('active')\n })\n } else {\n if (dropDownIcon) {\n dropDownIcon.style.display = 'none'\n }\n }\n}\nopenDropDownHeaderMenu()\n","import _debounce from 'lodash/debounce';\nimport { isVideoPlaying } from '../../utils/videoUtils.js';\n\nclass simpleSlider {\n constructor({ wrapper, slides, autoPlayTimeout = 6000, loop = true, navigation = {}, touchMoveEnabled = false, swipeThreshold = 100 }) {\n this.wrapper = wrapper;\n this.slides = slides;\n this.autoPlayTimeout = autoPlayTimeout;\n this.loop = loop; // if true returns to first slide after last slide\n this.navigation = navigation;\n this.touchMoveEnabled = touchMoveEnabled;\n // Set how far the user must swipe before it is considered a swipe. Example 50: Swipe at least 50px\n this.swipeThreshold = swipeThreshold;\n\n this.isStarted = false;\n this.isPlaying = false;\n this.activeIndex = 0;\n this.currentTimeout;\n this.allSlidesContentLoaded = this.wrapper.querySelectorAll('.js-lazy-load:not(.is-loaded)').length === 0;\n this.touchStartCoord = 0;\n\n this.addEventListener = this.wrapper.addEventListener.bind(this.wrapper);\n\n this._start();\n }\n\n // Private Methods\n _start() {\n if (this.isStarted || this.isPlaying) return;\n this.activeIndex = 0;\n this.isStarted = true;\n\n const firstSlide = this.slides[0];\n\n firstSlide.classList.add('active');\n\n // Preload next/prev slide content\n this._preloadNext();\n this._preloadPrev();\n\n // Handles video reproduction if needed\n this._handleVideoPlay({ currentIndex: this.activeIndex });\n\n // Event listeners\n\n // Prev button click\n Boolean(this.navigation?.prev) &&\n document.querySelector(this.navigation.prev)?.addEventListener('click', () => {\n this.prev();\n });\n\n // Next button click\n Boolean(this.navigation?.next) &&\n document.querySelector(this.navigation.next)?.addEventListener('click', () => {\n this.next();\n });\n\n // Touch move\n this.touchMoveEnabled && this.wrapper.addEventListener('touchstart', this._handleTouchStart.bind(this), { passive: false });\n this.touchMoveEnabled && this.wrapper.addEventListener('touchmove', _debounce(this._handleTouchMove.bind(this), 100), { passive: false });\n }\n\n _sliderLoop() {\n if (!this.isPlaying) return;\n const currentSlide = this.slides[this.activeIndex];\n const video = this._getVideo(currentSlide);\n this._setActiveSlide(this.activeIndex);\n\n // Preload next slide content\n !this.allSlidesContentLoaded && this._preloadNext();\n\n if (!!video) {\n this._continueOnVideoReady(video, () => {\n video.currentTime = 0;\n video.play();\n\n // Next iteration\n video.onended = () => {\n this._nextIteration();\n };\n });\n } else {\n // Next iteration\n this.currentTimeout = window.setTimeout(() => {\n this._nextIteration();\n }, this.autoPlayTimeout);\n }\n }\n\n _nextIteration() {\n if (!this.loop && this.slides.length === this.activeIndex + 1) return;\n this.next();\n this._sliderLoop();\n }\n\n _setActiveSlide(index) {\n if (this.activeIndex === index) return;\n\n const lastIndex = this.activeIndex;\n this.activeIndex = index;\n\n // Remove active classes\n for (var i = 0; i < this.slides.length; ++i) {\n this.slides[i].classList.remove('active');\n }\n\n // Set current active slider\n this.slides[index].classList.add('active');\n\n // Handles video reproduction if needed\n this._handleVideoPlay({ lastIndex, currentIndex: index });\n\n this.dispatch('slider:change', this.activeIndex);\n }\n\n _getVideo(slide) {\n return slide.tagName === 'VIDEO' ? slide : slide.querySelector('video');\n }\n\n _startAutoplay() {\n this.isPlaying = true;\n this._sliderLoop();\n this.dispatch('slider:start');\n }\n\n _preloadNext() {\n if ((!this.loop && this.slides.length === this.activeIndex + 1) || this.allSlidesContentLoaded) return;\n const nextIndex = this._getNextIndex();\n if (nextIndex === this.activeIndex) return;\n this._preload(nextIndex);\n }\n\n _preloadPrev() {\n if ((!this.loop && this.activeIndex === 0) || this.allSlidesContentLoaded) return;\n const prevIndex = this._getPrevIndex();\n if (prevIndex === this.activeIndex) return;\n this._preload(prevIndex);\n }\n\n _preload(index) {\n if (this.allSlidesContentLoaded) return;\n\n const itemToLoad = this.slides[index].querySelector('.js-lazy-load:not(.is-loaded):not(.is-loading)');\n\n // Return if already loaded\n if (!itemToLoad) return;\n\n itemToLoad.classList.add('is-loading');\n\n const isVideo = itemToLoad.tagName === 'VIDEO';\n const srcAttrName = isVideo ? 'src' : 'srcset';\n\n itemToLoad.querySelectorAll('source').forEach(source => {\n source.setAttribute(srcAttrName, source.dataset[srcAttrName]);\n itemToLoad.classList.remove('is-loading');\n itemToLoad.classList.add('is-loaded');\n });\n isVideo && !isVideoPlaying(itemToLoad) && itemToLoad.load();\n\n this.allSlidesContentLoaded = this.wrapper.querySelectorAll('.js-lazy-load:not(.is-loaded):not(.is-loading)').length === 0;\n }\n\n _continueOnVideoReady(video, callback) {\n if (video.readyState >= video.HAVE_FUTURE_DATA) {\n callback();\n } else {\n video.addEventListener('canplay', callback(), false);\n }\n }\n\n _getNextIndex() {\n if (this.slides.length === this.activeIndex + 1) {\n return this.loop ? 0 : this.activeIndex;\n } else {\n return this.activeIndex + 1;\n }\n }\n\n _getPrevIndex() {\n if (this.activeIndex === 0) {\n return this.loop ? this.slides.length - 1 : this.activeIndex;\n } else {\n return this.activeIndex - 1;\n }\n }\n\n _handleVideoPlay({ lastIndex, currentIndex }) {\n const lastSlide = lastIndex || lastIndex === 0 ? this.slides[lastIndex] : null;\n const currentSlide = currentIndex || currentIndex === 0 ? this.slides[currentIndex] : null;\n\n // If there's video in last slide pauses it\n if (lastSlide) {\n const lastSlideVideo = this._getVideo(lastSlide);\n if (!!lastSlideVideo) {\n this._continueOnVideoReady(lastSlideVideo, () => {\n lastSlideVideo.pause();\n });\n }\n }\n\n // If there's video in current slide plays it\n if (currentSlide) {\n const currentSlideVideo = this._getVideo(currentSlide);\n if (!!currentSlideVideo) {\n this._continueOnVideoReady(currentSlideVideo, () => {\n currentSlideVideo.currentTime = 0;\n !isVideoPlaying(currentSlideVideo) && currentSlideVideo.play();\n });\n }\n }\n }\n\n // Touch events\n _handleTouchStart(event) {\n this.touchStartCoord = event.touches[0].clientX;\n }\n\n _handleTouchMove(event) {\n let currentCoord = event.touches[0].clientX;\n const offset = Math.abs(this.touchStartCoord - currentCoord);\n\n if (offset < this.swipeThreshold) return;\n\n event.preventDefault();\n\n this.touchStartCoord < currentCoord ? this.prev() : this.next();\n\n currentCoord = 0;\n return false;\n }\n\n // Public Methods\n play() {\n if (this.isPlaying) return;\n\n if (!this.isStarted) {\n this.start();\n }\n\n this._startAutoplay();\n this.dispatch('slider:play');\n }\n\n pause() {\n if (!this.isPlaying) return;\n clearTimeout(this.currentTimeout);\n this.isPlaying = false;\n this.dispatch('slider:pause');\n }\n\n stop() {\n this.pause();\n this._setActiveSlide(0);\n this.dispatch('slider:stop');\n }\n\n goTo(index) {\n if (index >= this.slides.length) return;\n\n this.isPlaying && this.stop();\n this._preload(index);\n this._setActiveSlide(index);\n\n // Preload slides content\n this._preloadPrev();\n this._preloadNext();\n }\n\n next() {\n if (!this.loop && this.slides.length === this.activeIndex + 1) return;\n const nextIndex = this._getNextIndex();\n if (nextIndex === this.activeIndex) return;\n this._setActiveSlide(nextIndex);\n this._preloadNext();\n }\n\n prev() {\n if (!this.loop && this.activeIndex === 0) return;\n const prevIndex = this._getPrevIndex();\n if (prevIndex === this.activeIndex) return;\n this._setActiveSlide(prevIndex);\n this._preloadPrev();\n }\n\n dispatch(event, detail) {\n return this.wrapper.dispatchEvent(\n new window.CustomEvent(event, {\n detail: detail,\n })\n );\n }\n}\n\nexport default simpleSlider;\n","module.exports = import(\"https://apiimg.iberostar.com/fastbooking/dist/assets/remoteEntry.js?ts=202503251030\");"],"names":["getStaragentBookings","$jobIdElement","document","querySelector","bookingsJobId","value","$bookingsContainer","loaderText","dataset","waitText","loaderSubText","waitSubtext","$loaderContainer","parentElement","htmlProperties","loaderSpinner","show","container","extraClass","title","subtitle","spinnerColor","prefix","getAttribute","jobRequestUrl","handleBookingsResponse","response","length","responseParsed","JSON","parse","bookingsHtml","reduce","previousValue","currentProperty","currentHtmlParsed","Object","values","join","classList","contains","remove","innerHTML","IB","currencyForm","forceUpdate","initBottomLinks","initDashboardBookingRow","showBookingsEmptyWrapper","$bookingsMainWrapper","$emptyBookingsMainWrapper","add","watchJob","url","timeout","onPartialResponse","onComplete","hide","some","property","htmlObject","showFilterSelector","$filterSelector","bookingStatePresence","toggle","$","on","event","preventDefault","$el","this","Modal","onShow","ScrollLock","attr","onClose","off","awaitCloseAnimation","cardReservation","target","closest","modal","close","animate","scrollTop","first","offset","top","browsing_sessions","getData","text","storeHash","sta_points","data","localStorage","setItem","stringify","initializeUtagEvents","isFhiPage","undefined","fhiTest","fhiPageType","querySelectorAll","forEach","element","addEventListener","event_name","event_cat","event_act","event_lbl","event_purpose","event_structure","sendUtagEvent","page_variation","updateCtaWithRealMarketContent","blockSelector","mainContainer","blockId","constrainedViewId","getRealMarketContent","then","desktopCta","outerHTML","html_replacement","mobileCta","html","tempDiv","createElement","button","parseHtmlButtonToMobile","hotelHeadersSelector","dispatchRealMarketContentUpdatedEvent","blockName","catch","error","HOTEL_HEADER","block","video","video_item","videos_arr","videos","split","$js_scrolldown","find","scrollToElementWithHeader","currentDevice","isMobile","header_actions","totalGalleryImages","parseInt","items","numVisibleImages","style","display","setTimeout","SliderNav","slide","picture","index","videoSliderContainer","item","setAttribute","subitem","$sliderWrapper","$sliderSlides","$sliderNav","$sliderNavItems","slider","simpleSlider","wrapper","slides","autoPlayTimeout","activeIndex","detail","sliderIntersectionObserver","inViewport","isIntersecting","play","pause","threshold","i","newSlideActiveIndex","slideIndex","goTo","unobserve","loop","e","fastbooking","openStickyFastbooking","openDates","init","dropDownItem","dropDownList","dropDownIcon","openDropDownHeaderMenu","constructor","_ref","navigation","touchMoveEnabled","swipeThreshold","isStarted","isPlaying","currentTimeout","allSlidesContentLoaded","touchStartCoord","bind","_start","_preloadNext","_preloadPrev","_handleVideoPlay","currentIndex","Boolean","prev","next","_handleTouchStart","passive","_debounce","_handleTouchMove","_sliderLoop","currentSlide","_getVideo","_setActiveSlide","_continueOnVideoReady","currentTime","onended","_nextIteration","window","lastIndex","dispatch","tagName","_startAutoplay","nextIndex","_getNextIndex","_preload","prevIndex","_getPrevIndex","itemToLoad","isVideo","srcAttrName","source","isVideoPlaying","load","callback","readyState","HAVE_FUTURE_DATA","_ref2","lastSlide","lastSlideVideo","currentSlideVideo","touches","clientX","currentCoord","Math","abs","start","clearTimeout","stop","dispatchEvent","CustomEvent","module","exports","import"],"sourceRoot":""}