{"version":3,"file":"js/69542-639d24a174eb3ab918a1.js","mappings":"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","sources":["webpack://cms-web/./app/frontend/src/auth0/sso.js","webpack://cms-web/./app/frontend/src/blocks/auto_pop_up/auto_pop_up.js","webpack://cms-web/./app/frontend/src/blocks/best_online_rate/best_online_rate.js","webpack://cms-web/./app/frontend/src/blocks/cookies_content/cookies_content.js","webpack://cms-web/./app/frontend/src/blocks/header_customized/head_video.js","webpack://cms-web/./app/frontend/src/blocks/header_customized/header_customized.analytics.js","webpack://cms-web/./app/frontend/src/shared/offer_modal/offer_modal.js","webpack://cms-web/./app/frontend/src/shared/offer_modal/offer_modal.analytics.js","webpack://cms-web/./app/frontend/src/blocks/header_customized/header_customized.js","webpack://cms-web/./app/frontend/src/blocks/home_megabanner_slider/cta_info_card/cta_info_card.js","webpack://cms-web/./app/frontend/src/blocks/home_megabanner_slider/home_megabanner_slider.analytics.js","webpack://cms-web/./app/frontend/src/blocks/home_megabanner_slider/home_megabanner_slider.js","webpack://cms-web/./app/frontend/src/blocks/hotel_information_ratings/hotel_information_ratings.analytics.js","webpack://cms-web/./app/frontend/src/blocks/hotel_information_ratings/hotel_information_ratings.js","webpack://cms-web/./app/frontend/src/blocks/hotels_info_with_filtering_packed/hotels_info_with_filtering.constants.js","webpack://cms-web/./app/frontend/src/blocks/landing_typekit_header/landing_typekit_header.js","webpack://cms-web/./app/frontend/src/blocks/register_form/register_form.js","webpack://cms-web/./app/frontend/src/core/cancel_online_bookings/force_cc_lightbox.js","webpack://cms-web/./app/frontend/src/core/horizons_lightbox/horizons_postregister_lightbox.js","webpack://cms-web/./app/frontend/src/core/horizons_lightbox/horizons_postregister_lightbox.analytics.js","webpack://cms-web/./app/frontend/src/utils/ib_session_fancybox.js","webpack://cms-web/./app/frontend/src/elements/alert/alert.js","webpack://cms-web/./app/frontend/src/elements/destination_breadcrumb/destination_breadcrumb.js","webpack://cms-web/./app/frontend/src/shared/promo_link/promo_link.js","webpack://cms-web/./app/frontend/src/elements/headband/headband.analytics.js","webpack://cms-web/./app/frontend/src/elements/headband/headband.js","webpack://cms-web/./app/frontend/src/elements/pro_link/pro_link.js","webpack://cms-web/./app/frontend/src/pages/my_iberostar/facebook_widget.js","webpack://cms-web/./app/frontend/src/pages/register/register.js","webpack://cms-web/./app/frontend/src/pages/session_page/session_page.js","webpack://cms-web/./app/frontend/src/shared/callmeback/callmeback.js","webpack://cms-web/./app/frontend/src/shared/currency_agency_selector/currency_agency_selector.js","webpack://cms-web/./app/frontend/src/shared/footer_sticky/footer_sticky.js","webpack://cms-web/./app/frontend/src/shared/hotel_next_opening/hotel_next_opening.js","webpack://cms-web/./app/frontend/src/shared/next_bookings/next_bookings.js","webpack://cms-web/./app/frontend/src/shared/offer_notifications/offer_notifications.js","webpack://cms-web/./app/frontend/src/shared/side_panel/side_panel.js","webpack://cms-web/./app/frontend/src/shared/social_share_builder/social_share_builder.js","webpack://cms-web/./app/frontend/src/shared/update_prices/update_prices.js","webpack://cms-web/./app/frontend/src/utils/countdown.js","webpack://cms-web/./app/frontend/src/utils/get_mobile_os.js","webpack://cms-web/./app/frontend/src/utils/videoUtils.js"],"sourcesContent":["import cookieCheck from '3rd-cookie-check'\nimport auth0 from 'auth0-js'\n\nimport horizons_postregister_lightbox from '../core/horizons_lightbox/horizons_postregister_lightbox.js'\nimport { readCookie, setCookie } from '../utils/cookie_manager'\nimport on from '../utils/events_delegation'\n\n// Variables to be sent to the Auth0 login view\nconst extraMetrics = [\n 'campaign_content',\n 'campaign_cp_origin',\n 'campaign_cp',\n 'campaign_medium',\n 'campaign_name',\n 'campaign_source',\n 'campaign_term',\n 'cookies_consent', //\n 'device_type',\n 'hotel_headquarter_final',\n 'hotel_headquarter_origin',\n 'page_language',\n 'page_platform',\n 'promo_is_miiberostar',\n 'promo_is_resident',\n 'user_id_horizons', //\n 'user_id',\n 'user_level',\n 'visitor_country_code',\n 'visitor_country',\n 'visitor_depth', //\n 'visitor_has_reservation',\n 'visitor_headquarter_market',\n 'visitor_id', //\n 'visitor_internal_market',\n 'visitor_is_buyer',\n 'visitor_is_logged', //\n 'visitor_is_repeater',\n 'visitor_personalized_tratement',\n 'visitor_recive_advertising',\n 'visitor_recurrence',\n 'visitor_session_count',\n 'visitor_session_id',\n 'visitor_type',\n]\n\nfunction extractProperties(obj, keys) {\n const newObject = {}\n keys.forEach(function (key) {\n if (obj.hasOwnProperty(key)) {\n newObject[key] = obj[key]\n }\n })\n return newObject\n}\n\nfunction getCurrentLocale() {\n let locale = readCookie('locale')\n if (!locale) {\n const languajeSelectorLinks = document.querySelector('ul.js-language-selector-links li.active a')\n locale = languajeSelectorLinks !== null ? languajeSelectorLinks.getAttribute('data-locale') : null\n }\n return locale\n}\n\nexport function auth0Login(register = false) {\n setCookie('prelogin_url', window.location.href)\n\n const webAuth = new auth0.WebAuth({\n domain: AUTH0_CONFIG.custom_domain,\n clientID: AUTH0_CONFIG.clientId,\n redirectUri: AUTH0_CONFIG.redirectUri,\n audience: AUTH0_CONFIG.audience,\n responseType: 'token id_token',\n scope: 'openid profile user_metadata',\n })\n\n let environment = document.querySelector('#environment')?.value\n if (document.querySelector('#environment')?.value === 'development') {\n environment = AUTH0_CONFIG.connection === 'STAGING' ? 'uat' : AUTH0_CONFIG.connection.toLowerCase()\n }\n\n const microsite = document.querySelector('#microsite')?.value\n const backUrl = window.location.href\n .replaceAll(/([\\?&])open=[^&$]+&?/g, '$1') // We replace the open=login parameters to avoid redirection loops\n .replaceAll(/[\\?&]$/g, '') // And then replace & at the end\n const locale = getCurrentLocale()\n\n webAuth.authorize({\n ui_locales: locale,\n application: 'CMS',\n back: backUrl,\n register: register ? '1' : '0',\n environment,\n microsite,\n update_metadata: `${document.location.origin}/update_app_metadata`,\n responseType: 'code',\n extraMetric: extractProperties(window.utag_data, extraMetrics),\n })\n}\n\nexport function auth0UpdateMetadata(locale, microsite, environment) {\n const csrfToken = document.querySelector('[name=csrf-token]').content\n fetch('/update_app_metadata', {\n method: 'POST',\n body: JSON.stringify({ locale, microsite, environment }),\n headers: { 'Content-type': 'application/json; charset=UTF-8', 'X-CSRF-Token': csrfToken },\n })\n .then(r => r.json())\n .catch(error => {\n console.error(`Update metadata error: ${error}`)\n })\n}\n\nfunction checkConfig() {\n return (\n AUTH0_CONFIG.domain.length > 1 &&\n AUTH0_CONFIG.clientId.length > 1 &&\n AUTH0_CONFIG.redirectUri.length > 1 &&\n AUTH0_CONFIG.audience.length > 1\n )\n}\n\nfunction thirdPartyCookieCheck() {\n const loggedMessagesCookie = readCookie('logged_messages')\n const currentUser = loggedMessagesCookie?.includes('true') ? true : false\n const confirmUser = readCookie('auth0_login') !== 'true'\n const microsite = document.querySelector('#microsite')?.value || 'iberostar'\n\n const clientAuth0 = new auth0.WebAuth({\n domain: AUTH0_CONFIG.domain,\n clientID: AUTH0_CONFIG.clientId,\n redirectUri: AUTH0_CONFIG.redirectUri,\n audience: AUTH0_CONFIG.audience,\n connection: AUTH0_CONFIG.connection,\n responseType: 'token id_token',\n scope: 'openid profile user_metadata',\n })\n\n cookieCheck({\n timeout: 3000,\n iframeSrc: 'https://viglesias.github.io/3rdCookieChecker/index.html',\n }).then(function (resultCookieCheck) {\n // Verificamos si viene de APP para no aplicar el checkSession\n const is_app = readCookie('in_app') === 'true'\n const is_simulated = readCookie('simulated_account') === 'true'\n if (currentUser && !is_app && !is_simulated && resultCookieCheck.supported) {\n clientAuth0.checkSession(\n {\n audience: AUTH0_CONFIG.audience,\n scope: 'read:current_user',\n },\n function (err) {\n if (err) {\n console.error(`Error checkSession auth0: ${err.description}`)\n // Forzamos el cierre de sesión (este caso pretende forzar el cierre por ejemplo si el usuario ha cerrado sesión en CRS de fomra que vayan acompasados)\n const logout_url = `${window.location.protocol}//${window.location.host}/auth/logout`\n //setCookie('logged_messages', false, '-1')\n IB.cookieManager.deleteCookies(['logged_messages'])\n window.location.href = logout_url\n }\n }\n )\n } else if ((!currentUser || !confirmUser) && microsite != 'star_agents' && checkConfig()) {\n // Si no hay sesión de rails\n clientAuth0.checkSession({}, function (err, authResult) {\n if (err) {\n console.error(`Error checkSession auth0 (init_session): ${err.description}`)\n //setCookie('logged_messages', false, '-1')\n IB.cookieManager.deleteCookies(['logged_messages'])\n } else if (authResult) {\n const csrfToken = document.querySelector('[name=csrf-token]').content\n // Si no tiene currentUser, no va a mostrar el formulario de postregisto document.cookie['user_metadata'] y obtiene valores de auth0 authResult\n fetch('/sso_or_postregister', {\n method: 'POST',\n body: JSON.stringify(authResult),\n headers: { 'Content-type': 'application/json; charset=UTF-8', 'X-CSRF-Token': csrfToken },\n })\n .then(r => r.json())\n .then(data => {\n if (data.postregister_form === true) {\n if (document.getElementById('session-tab-registration') === null) {\n horizons_postregister_lightbox()\n }\n } else if (data.redirect_url !== undefined && data.redirect_url !== null) {\n location.href = data.redirect_url\n } else if (data.reload === true) {\n location.reload()\n }\n })\n .catch(error => {\n console.error(`SSO error: ${error}`)\n })\n }\n })\n }\n })\n}\n\nfunction initSSO() {\n thirdPartyCookieCheck()\n // Login - Añadimos la función on incluso en elementos que aún no se han cargado en la carga inicial.\n on({\n eventName: 'click',\n selector: `.js-login-link`,\n handler(e) {\n e.preventDefault()\n auth0Login(false)\n },\n })\n\n document.querySelectorAll('.js-register-link').forEach(link => {\n link.addEventListener('click', function (e) {\n e.preventDefault()\n auth0Login(true)\n })\n })\n\n // Login tras expiración del token\n if (document.querySelector('#auth0_expired_token')?.value === 'true') {\n auth0Login(false)\n }\n\n document.querySelector('#change_password')?.addEventListener('click', function (e) {\n e.preventDefault()\n const webAuth = new auth0.WebAuth({\n domain: AUTH0_CONFIG.custom_domain,\n clientID: AUTH0_CONFIG.clientId,\n redirectUri: AUTH0_CONFIG.redirectUri,\n audience: AUTH0_CONFIG.audience,\n responseType: 'token id_token',\n scope: 'openid profile user_metadata',\n })\n\n const locale = getCurrentLocale()\n const microsite = document.querySelector('#microsite')?.value || 'iberostar'\n const environment = document.querySelector('#environment')?.value\n\n auth0UpdateMetadata(locale, microsite, environment)\n\n let email = document.querySelector('.current-email').innerText\n\n if (\n document.documentElement.dataset.inMicrosite === 'star_agents' &&\n document.querySelector('.edit-user-content #agent_current_code')\n ) {\n email = document.querySelector('.edit-user-content #agent_current_code').value\n }\n // STA - StarAgents\n if (!email) email = document.querySelector('.current-email').value\n\n webAuth.changePassword(\n {\n ui_locales: locale,\n application: 'CMS',\n connection: AUTH0_CONFIG.connection,\n environment,\n microsite,\n email,\n },\n function (err) {\n var text = err ? '#change-password-error' : '#change-password-success'\n\n Modal.showHtml({\n html: document.querySelector(text).outerHTML,\n modalClass: 'multi-modal-full-container',\n onShow: () => {\n ScrollLock.on()\n },\n onClose: () => {\n ScrollLock.off()\n },\n awaitCloseAnimation: true,\n })\n }\n )\n })\n\n // Parameter added to utag_data\n window.utag_data['cookies_consent'] = readCookie('cookies_consent') ? readCookie('cookies_consent') : ''\n\n // Here we check for the open parameter and redirect to auth0 login page\n const TYPE_LIGHTBOX = IB.urlParser.getParam('open')\n const isLogged = IB?.browsing_sessions?.isUserLogged()\n\n if (!isLogged) {\n // Capture microsite value to avoid if registration goes to SSO view\n const microsite = document.querySelector('#microsite')?.value\n\n if (microsite === 'star_agents') return\n\n if (TYPE_LIGHTBOX === 'login') {\n setCookie('prelogin_url', window.location.href)\n auth0Login(false)\n } else if (TYPE_LIGHTBOX === 'register') {\n if (microsite !== 'star_agents') {\n setCookie('prelogin_url', window.location.href)\n auth0Login(true)\n }\n }\n }\n}\n\ninitSSO()\n","import { setCookie } from '../../utils/cookie_manager';\n\nfunction autoPopUpOpen() {\n let $auto_pop_up = $('#auto-pop-up');\n let is_mobile = IB.currentDevice === 'mobile';\n let bg = is_mobile ? $auto_pop_up.data('mobile') : $auto_pop_up.data('desktop');\n\n if (!$auto_pop_up.length) return;\n\n if (bg !== '' && bg !== undefined) {\n $auto_pop_up.css({\n 'background-image': 'url(' + bg + ')'\n });\n }\n $.fancybox.open($auto_pop_up, {\n afterClose: function () {\n setCookie('seen_auto_pop_up', 'true', 30);\n }\n });\n}\n\n\n$(function () {\n if ($('#auto-pop-up').length) {\n if (typeof $.cookie('seen_auto_pop_up') === 'undefined') {\n autoPopUpOpen();\n }\n }\n});\n","$(document).on('change', '.claim-form [name=\"[have_booking]\"]', function () {\n let $el = $(this);\n let $booking_option = $('.booking-option');\n\n $booking_option.hide();\n $booking_option.find('input, select').each(function () {\n $(this).attr('data-parsley-required', 'false');\n });\n\n $('#' + $el.val()).show();\n $('#' + $el.val() + ' input, #' + $el.val() + ' select').each(function () {\n $(this).attr('data-parsley-required', 'true');\n });\n})\n .on('change', '#hotel_country_id', function () {\n let country_id = $(this).val();\n let $hotel = $('#hotel_id');\n $hotel.find('option').show().not('[data-country-id=\"' + country_id + '\"]')\n .hide();\n $hotel.val('').trigger('change').trigger('formikation.update');\n })\n .on('change', '#hotel_id', function () {\n let hotel_id = $(this).val();\n $('#hotel_room_id').find('option').show()\n .not('[data-hotel-id=\"' + hotel_id + '\"]')\n .hide();\n $('#board_id').find('option').hide()\n .filter(function () {\n return $.inArray(parseInt(hotel_id, 10), $(this).data('hotel-ids')) > -1;\n })\n .show();\n $('#hotel_room_id, #hoard_id').val('').trigger('change')\n .trigger('formikation.update');\n })\n .on('change', '#hotel_room_id', function () {\n let $opt_selected = $(this).find('option:selected');\n let max_occupancy = parseInt($opt_selected.attr('data-max-occupancy'), 10);\n let max_children = parseInt($opt_selected.attr('data-max-children'), 10);\n let $adults = $('#adults');\n let $children = $('#children');\n\n $adults.find('option').show().filter(function () {\n return parseInt($(this).val(), 10) > max_occupancy;\n })\n .hide();\n\n let adults_val = max_occupancy ? Math.min(2, max_occupancy) : 2;\n $adults.val(adults_val).trigger('change').trigger('formikation.update');\n\n if (max_children > 0) {\n if ($children.val() > max_children) {\n $children.val(max_children).trigger('change').trigger('formikation.update');\n }\n $children.prop('disabled', false).find('option').show()\n .filter(function () {\n return parseInt($(this).val(), 10) > max_children;\n })\n .hide();\n } else {\n $children.val('0').trigger('change').trigger('formikation.update');\n $children.prop('disabled', true);\n }\n });\n","$(document).on('click', '.cookies-content .close-fancybox', function () {\n $('.fancybox-close-small')[0].click();\n $('#cookies-config')[0].click();\n});\n\n$(document).on('click', '#agree_cookies_in_cookies_lightbox_floating, #agree_cookies_in_cookies_lightbox', function () {\n $('.fancybox-close-small')[0].click();\n $('#agree-cookies')[0].click();\n});\n\nfunction toggleFaq(event) {\n if(event.target && event.target.parentNode && event.target.parentNode.classList){\n if (event.target.parentNode.classList.contains('collapsible-blocks')) {\n let content = event.target.nextElementSibling;\n\n event.target.classList.toggle('active');\n\n if (content.style.display === 'block') {\n content.style.display = 'none';\n } else {\n content.style.display = 'block';\n }\n }\n }\n}\n\ndocument.addEventListener('click', toggleFaq);\n\n","import { loadHlsVideo } from '../../utils/load_hls_video'\n\ninit()\nfunction init() {\n loadHlsVideo('.video-looping')\n}\n\n$(function () {\n const $video = $('.js-header-video')\n\n if ($video.length === 0) return false\n\n const mp4_src = $video.data('mp4-src')\n const webm_src = $video.data('webm-src')\n\n $video.append(``)\n})\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\n\nconst BLOCK_SELECTOR = '.js-header-customized'\n\nfunction handleElementPageOfferViewConditions(buttonCta) {\n buttonCta.addEventListener('click', function () {\n sendUtagEvent({\n data: {\n event_name: 'offers',\n event_cat: 'offers',\n event_act: 'view offers conditions',\n event_lbl: '',\n event_purpose: 'information',\n event_structure: 'header',\n },\n })\n })\n}\n\nfunction handleElementPageOfferViewHotels(elementCta) {\n elementCta.addEventListener('click', function () {\n sendUtagEvent({\n data: {\n event_name: 'offers',\n event_cat: 'offers',\n event_act: 'view hotels',\n event_lbl: '',\n event_purpose: 'inspiration',\n event_structure: 'header',\n },\n })\n })\n}\n\nexport function initializeUtagEvents(blockSelector) {\n const block = document.querySelector(blockSelector)\n\n if (!block) return\n\n const elementPageOfferTitleViewConditions = document.querySelector(\n `${BLOCK_SELECTOR} #id-offer-page-title-view-conditions`\n )\n\n const elementPageOfferTitleViewHotels = document.querySelector(`${BLOCK_SELECTOR} #id-offer-page-title-view_hotels`)\n\n if (elementPageOfferTitleViewConditions) {\n handleElementPageOfferViewConditions(elementPageOfferTitleViewConditions)\n }\n\n if (elementPageOfferTitleViewHotels) {\n handleElementPageOfferViewHotels(elementPageOfferTitleViewHotels)\n }\n\n if (block.classList.contains('js-header-with-offer')) {\n const elementPageOfferCtaViewConditions = document.querySelector(`${BLOCK_SELECTOR} .js-offer-cta-show-conditions`)\n const elementPageOfferCtaViewHotels = document.querySelector(`${BLOCK_SELECTOR} .js-offer-cta-show-hotels`)\n\n if (elementPageOfferCtaViewConditions) {\n handleElementPageOfferViewConditions(elementPageOfferCtaViewConditions)\n }\n\n if (elementPageOfferCtaViewHotels) {\n handleElementPageOfferViewHotels(elementPageOfferCtaViewHotels)\n }\n }\n}\n","import { FILTER_OFFER_EVENT } from '../../blocks/hotels_info_with_filtering_packed/hotels_info_with_filtering.constants'\nimport Modal from '../../shared/modal/modal'\n\nimport { initializeUtagEvents } from './offer_modal.analytics'\n\nfunction initializeShowHotelsButton(button) {\n button.addEventListener('click', event => {\n Modal.close()\n // this timeout is for user experience\n setTimeout(() => {\n const offerId = event.target.dataset.offerId\n const customEvent = new CustomEvent(FILTER_OFFER_EVENT, { detail: { offerId } })\n document.dispatchEvent(customEvent)\n }, 500)\n })\n}\n\nexport function initModal(modalSelector) {\n const modalContent = document.querySelector(modalSelector)\n\n if (modalContent.classList.contains('initialized')) return\n\n const showHotelsButton = modalContent.querySelector('.js-offer-show-hotels')\n\n if (showHotelsButton) {\n initializeShowHotelsButton(showHotelsButton)\n }\n\n initializeUtagEvents(modalSelector)\n\n modalContent.classList.add('initialized')\n}\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\nimport on from '../../utils/events_delegation'\nimport { currentPageType } from '../../utils/page_type_detector'\nimport { getCleanedString } from '../../utils/utilities'\n\nexport function initializeUtagEvents(parentSelector) {\n on({\n eventName: 'click',\n selector: `${parentSelector} .utag-offer-modal-go-to-campaign`,\n handler() {\n const utagEec = JSON.parse(this.dataset.utagEec)\n\n sendUtagEvent({\n data: {\n enh_action: 'promo_click',\n event_name: 'select_promotion',\n event_cat: 'ecommerce',\n event_act: 'promo click',\n event_lbl: getCleanedString(utagEec.promotion_name),\n event_purpose: 'booking',\n event_structure: 'popup',\n promotion_id: [utagEec.promotion_id],\n promotion_name: [utagEec.promotion_name],\n promotion_creative: [utagEec.promotion_creative],\n promotion_position: [utagEec.promotion_position],\n },\n })\n\n if (currentPageType.isDestination()) {\n sendUtagEvent({\n data: {\n event_name: 'offers',\n event_cat: 'offers',\n event_act: 'view offers conditions',\n event_lbl: '',\n event_purpose: 'information',\n event_structure: 'popup',\n },\n })\n }\n },\n })\n\n if (currentPageType.isDestination()) {\n on({\n eventName: 'click',\n selector: `${parentSelector} .utag-offer-modal-show-hotels`,\n handler() {\n sendUtagEvent({\n data: {\n event_name: 'offers',\n event_cat: 'offers',\n event_act: 'view hotels',\n event_lbl: '',\n event_purpose: 'inspiration',\n event_structure: 'popup',\n },\n })\n },\n })\n }\n}\n","import './head_video'\n\nimport { currentDevice } from '../../core/utils/currentDevice'\nimport Modal from '../../shared/modal/modal'\nimport { initModal } from '../../shared/offer_modal/offer_modal'\nimport on from '../../utils/events_delegation'\nimport getRealMarketContent, { dispatchRealMarketContentUpdatedEvent } from '../../utils/get_real_market_content'\nimport { FILTER_OFFER_EVENT } from '../hotels_info_with_filtering_packed/hotels_info_with_filtering.constants'\n\nimport { initializeUtagEvents } from './header_customized.analytics'\n\nconst BLOCK_SELECTOR = '.js-header-customized'\nconst SHOW_CONDITIONS_BUTTON_SELECTOR = '.js-offer-cta-show-conditions'\n\nfunction deactivateAllFilterBlocks() {\n document.querySelectorAll('.js-filter').forEach(filterBlock => {\n filterBlock.classList.remove('active')\n filterBlock.querySelector('.js-filter-block').style.display = 'none'\n\n const filterBlockTitle = filterBlock.querySelector('.js-filter-title')\n filterBlockTitle.classList.remove('active')\n filterBlockTitle.setAttribute('aria-expanded', 'false')\n })\n}\n\nfunction initShowHotelButtonClickLogic() {\n function handlerShowHotelButtonClickLogic(event) {\n Modal.close()\n const offerId = event.target.dataset.offerId\n const customEvent = new CustomEvent(FILTER_OFFER_EVENT, { detail: { offerId } })\n document.dispatchEvent(customEvent)\n }\n\n on({ eventName: 'click', selector: '.js-offer-cta-show-hotels', handler: handlerShowHotelButtonClickLogic })\n}\n\nfunction initializeShowConditionsButton() {\n const showConditionsButton = document.querySelector(SHOW_CONDITIONS_BUTTON_SELECTOR)\n\n if (!showConditionsButton) return\n\n function handleShowConditionsButtonClick() {\n if (currentDevice.isMobile) {\n initModal(`#${showConditionsButton.dataset.sidePanelId}`)\n } else {\n const modalId = `js-offer-modal-${showConditionsButton.dataset.offerId}`\n Modal.show(modalId, {\n onShow: modal => {\n ScrollLock.on()\n initModal(`#${modalId}`)\n\n // move texts from original element to modal\n const setTexts = modal.querySelectorAll('[data-take-text-from]:not([data-text-filled])')\n\n setTexts.forEach(textElem => {\n const originId = textElem.dataset.takeTextFrom\n\n if (!originId) return\n\n const originElem = document.querySelector(`#${originId}`)\n\n if (!originElem) return\n\n const clonedElement = originElem.cloneNode(true)\n\n clonedElement.className = ''\n\n textElem.appendChild(clonedElement)\n textElem.dataset.textFilled = ''\n })\n },\n onClose: () => {\n ScrollLock.off()\n },\n awaitCloseAnimation: true,\n })\n }\n }\n\n on({ eventName: 'click', selector: SHOW_CONDITIONS_BUTTON_SELECTOR, handler: handleShowConditionsButtonClick })\n}\n\nfunction initHeaderCustomizedWithOffer() {\n deactivateAllFilterBlocks()\n initShowHotelButtonClickLogic()\n initializeShowConditionsButton()\n}\n\nfunction updateOfferWithRealMarketContent(callback) { \n const blockSelector = '.js-header-with-offer'\n const mainContainer = document.querySelector(blockSelector)\n const blockId = mainContainer?.dataset.blockId\n const constrainedViewId = mainContainer?.dataset.constrainedViewId\n const resourceId = mainContainer?.dataset.resourceId\n const resourceType = mainContainer?.dataset.resourceType\n const additionalParams = `resource_id=${encodeURIComponent(resourceId)}&resource_type=${encodeURIComponent(resourceType)}`; \n if (blockId && constrainedViewId) {\n getRealMarketContent({ blockId, constrainedViewId, additionalParams })\n .then(response => {\n const headerContent = document.querySelector('.js-header-with-offer-content')\n\n if (!headerContent) return\n\n headerContent.outerHTML = response.html_replacement\n\n dispatchRealMarketContentUpdatedEvent({ blockSelector, blockName: 'header-with-offer' })\n callback && callback()\n })\n .catch(error => {\n if (error !== 'alreadyApplied') return\n callback && callback()\n })\n } else {\n callback && callback()\n }\n}\n\nfunction initBlock() {\n // Init countdown (deadline requires jquery object)\n $('[data-deadline]')?.deadline()\n if (document.querySelector('.js-header-with-offer-cta')) {\n initHeaderCustomizedWithOffer()\n }\n\n Modal.init({\n openTrigger: 'data-modal-legal-conditions-trigger',\n awaitCloseAnimation: true,\n })\n\n initializeUtagEvents(BLOCK_SELECTOR)\n}\n\nfunction init() { \n const header = document.querySelector(BLOCK_SELECTOR)\n\n if (!header) return\n\n if (document.querySelector('.js-header-with-offer')) {\n updateOfferWithRealMarketContent(initBlock)\n } else {\n initBlock()\n }\n}\n\ninit()\n","import countdown from '../../../utils/countdown'\n\nfunction validateCountdown(countdownEnd) {\n if (!countdownEnd) return false\n\n const currentDateTime = new Date()\n const countdownEndTime = new Date(countdownEnd)\n\n if (countdownEndTime >= currentDateTime) return true\n}\n\nexport function showCountdown(blockSelector) {\n if (!blockSelector) return\n\n const block = document.querySelector(blockSelector)\n\n if (!block) return\n\n const countdowns = block.querySelectorAll('.js-countdown')\n\n if (!countdowns.length) return\n\n let countdownsInitialized = false\n\n countdowns.forEach(element => {\n const countdownIsValid = validateCountdown(element.dataset.countdown)\n if (!countdownsInitialized && countdownIsValid) {\n countdown(1000, 9999)\n countdownsInitialized = true\n } else if (!countdownIsValid) {\n element.remove()\n }\n })\n}\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\nimport on from '../../utils/events_delegation'\n\nexport function initializeUtagEvents() {\n const megabannerSlider = document.querySelector('.js-home-megabanner-slider')\n const megabannerItems = megabannerSlider.querySelectorAll('.js-home-megabanner-item:not(.swiper-slide-duplicate)')\n const emptyPromoName = 'empty promotion'\n const emptyPromoId = 'empty-promotion'\n\n const utagData = {\n enh_action: 'impression list',\n event_name: 'view promotion',\n event_cat: 'ecommerce',\n event_act: 'promotion impression list',\n event_lbl: '',\n non_interaction: '1',\n event_purpose: 'booking',\n event_structure: 'impression',\n promotion_id: [],\n promotion_name: [],\n promotion_creative: ['home|home|video with fastbooking'],\n promotion_position: [],\n }\n\n megabannerItems.forEach((item, index) => {\n // Corporative\n if (item.classList.contains('js-corporative-banner')) {\n utagData.promotion_id.push('wave-of-change')\n utagData.promotion_name.push('wave of change')\n utagData.promotion_creative.push('home|home|video with fastbooking')\n utagData.promotion_position.push((index + 1).toString())\n } else if (item.classList.contains('js-last-searches-slide')) {\n // Last Searches\n const dataHotelName = item.querySelector('[data-hotel-name]')\n const promotionName = dataHotelName.dataset.hotelName.toLowerCase()\n const promotionId = promotionName.replaceAll(' ', '-')\n utagData.promotion_id.push(promotionId)\n utagData.promotion_name.push(promotionName)\n utagData.promotion_creative.push('home|home|video with fastbooking')\n utagData.promotion_position.push((index + 1).toString())\n } else {\n // Items Slides\n const dataPromoName = item.querySelector('[data-promotion-name]')\n const dataPromoId = item.querySelector('[data-promotion-id]')\n const promoName = dataPromoName?.dataset.promotionName.toLowerCase()\n const promoIdValue = dataPromoId?.dataset.promotionId.toLowerCase()\n const promoId = promoIdValue?.replaceAll(' ', '-')\n utagData.promotion_name.push(promoName || emptyPromoName)\n utagData.promotion_id.push(promoId || emptyPromoId)\n utagData.promotion_creative.push('home|home|video with fastbooking')\n utagData.promotion_position.push((index + 1).toString())\n }\n })\n\n sendUtagEvent({ data: utagData })\n\n // Event for CTA Buttons\n on({\n eventName: 'click',\n selector: '.utag-home-megabanner-cta',\n handler() {\n const utag_data = {\n enh_action: 'promo_click',\n event_name: 'select_promotion',\n event_cat: 'ecommerce',\n event_act: 'promo click',\n event_purpose: 'booking',\n event_structure: 'header',\n event_lbl: '',\n promotion_id: [],\n promotion_name: [],\n promotion_creative: ['home|home|video with fastbooking'],\n promotion_position: [],\n }\n\n const promoClickName = this.dataset.promotionName.toLowerCase()\n const promoClickId = this.dataset.promotionId.toLowerCase().replaceAll(' ', '-')\n\n let slideIndex = this.closest('.js-slide-element')?.dataset.swiperSlideIndex\n slideIndex = slideIndex ? Number(slideIndex) : 0\n\n utag_data.promotion_name.push(promoClickName || emptyPromoName)\n utag_data.promotion_id.push(promoClickId || emptyPromoId)\n utag_data.promotion_creative.push('home|home|video with fastbooking')\n utag_data.promotion_position.push(slideIndex + 1).toString()\n\n sendUtagEvent({ data: utag_data })\n },\n })\n}\n","import '../../vendors/swiper/swiper.scss'\n\nimport Swiper from 'swiper'\nimport { Autoplay, Manipulation, Navigation, Pagination } from 'swiper/modules'\n\nimport { ADA_DISABLED_EVENT, ADA_ENABLED_EVENT } from '../../accessibility/constants'\nimport { currentDevice } from '../../core/utils/currentDevice'\nimport { updateLastSearches } from '../../shared/last_searches/last_searches'\nimport { LAST_SEARCHES_LOADED_EVENT } from '../../shared/last_searches_cards/last_searches_cards.constants'\nimport { loadHlsVideo } from '../../utils/load_hls_video'\nimport { addSourcesToVideosFromDataAttributes } from '../../utils/videoUtils'\n\nimport { showCountdown } from './cta_info_card/cta_info_card'\nimport { initializeUtagEvents } from './home_megabanner_slider.analytics'\n\nconst BLOCK_SELECTOR = '.js-home-megabanner-slider'\nconst CORPORATIVE_SLIDE_SELECTOR = '.js-corporative-banner'\nconst INFO_CARD_SELECTOR = '.js-home-megabanner-slider-info-card'\nconst SLIDER_CONTROLS_SELECTOR = '.js-home-megabanner-slider-controls'\n\n/**\n * Gets last visited hotel data from localstorage\n *\n * @returns last visited hotel data\n */\nfunction getLastVisitedHotel() {\n let local_last_searches = localStorage.getItem('last_searches')\n if (!local_last_searches) {\n return false\n }\n\n local_last_searches = JSON.parse(local_last_searches)\n if (!local_last_searches.length) {\n return false\n }\n\n // Get only hotel searches and take the last one\n const lastVisitedHotel = local_last_searches.filter(search => search.place_to_go.includes('h')).pop()\n\n return lastVisitedHotel\n}\n\n/**\n * Create a new slide with the last search hotel data\n *\n * @param {Node} megabannerSlider\n */\nfunction createLastVisitedHotelSlide(megabannerSlider, swiper) {\n const lastVisitedHotelSlide = megabannerSlider.querySelector('.js-last-searches-slide')\n if (!lastVisitedHotelSlide) {\n return\n }\n\n // Update last searches before adding the last visited hotel card to the swiper\n updateLastSearches(() => {\n const lastVisitedHotel = getLastVisitedHotel()\n if (!lastVisitedHotel) {\n lastVisitedHotelSlide.remove()\n const homeMegabanner = document.querySelector(BLOCK_SELECTOR)\n homeMegabanner.classList.add('margin-extra')\n } else {\n const hotelNameContainer = lastVisitedHotelSlide.querySelector('[data-hotel-name]')\n const hotelStarsContainer = lastVisitedHotelSlide.querySelector('[data-stars-name]')\n const hotelDescriptionContainer = lastVisitedHotelSlide.querySelector('[data-hotel-description]')\n const visitButton = lastVisitedHotelSlide.querySelector('[data-hotel-url]')\n const hotelImage = lastVisitedHotelSlide.querySelector('[data-last-search-hotel-img]')\n\n if (IB.currentDevice === 'desktop') {\n hotelImage.src = lastVisitedHotel.image_desktop\n } else if (IB.currentDevice === 'mobile') {\n hotelImage.src = lastVisitedHotel.image_mobile\n } else {\n hotelImage.src = lastVisitedHotel.image_tablet\n }\n // Add info last search hotel to card\n hotelNameContainer.innerHTML = lastVisitedHotel.title\n hotelNameContainer.setAttribute('data-hotel-name', lastVisitedHotel.title)\n hotelStarsContainer.classList.add(`r${lastVisitedHotel.category}*`)\n hotelDescriptionContainer.innerHTML = lastVisitedHotel.description\n\n // Add url to button\n const urlDomain = `${window.location.protocol}//${window.location.hostname}`\n const urlVisit = urlDomain + lastVisitedHotel.path\n visitButton.href = urlVisit\n\n // Reduce width if there is more than one card in mobile\n window.addEventListener(LAST_SEARCHES_LOADED_EVENT, () => {\n if (currentDevice.isMobile) {\n const cards = megabannerSlider.querySelectorAll('.js-last-search-card')\n if (cards.length > 1) {\n cards.forEach(card => {\n card.classList.add('reduce-width')\n })\n }\n }\n })\n\n lastVisitedHotelSlide.classList.remove('is-hidden')\n swiper.addSlide(swiper.realIndex + 1, lastVisitedHotelSlide)\n swiper.update()\n }\n })\n}\n\nfunction manageSlideVideoPlayingState(swiper, index, state = 'stop') {\n const slide = swiper.slides[index]\n const video = slide?.querySelector('video')\n\n if (!video) return\n\n if (state === 'play') {\n video.play()\n } else {\n video.pause()\n video.currentTime = 0\n }\n}\nfunction showInfoCards(parentElem) {\n const infoCards = parentElem.querySelectorAll(INFO_CARD_SELECTOR)\n\n if (!infoCards.length) return\n\n infoCards.forEach(infoCard => {\n infoCard.classList.remove('is-hidden')\n })\n}\n\nfunction init() {\n const megabannerSlider = document.querySelector(BLOCK_SELECTOR)\n\n if (!megabannerSlider) return\n\n const autoplaySpeed = (megabannerSlider.dataset.autoplaySpeed || 6) * 1000\n\n // Remove corporative slide\n const corporativeSlide = megabannerSlider.querySelector(CORPORATIVE_SLIDE_SELECTOR)\n if (corporativeSlide) {\n corporativeSlide.remove()\n }\n\n initializeUtagEvents()\n // Initialize swiper\n const swiperElement = megabannerSlider.querySelector('.js-swiper-container')\n\n Swiper.use([Manipulation, Navigation, Pagination, Autoplay])\n new Swiper(swiperElement, {\n slidesPerView: 1,\n spaceBetween: 0,\n loop: true,\n speed: 800,\n effect: 'fade',\n autoplay: {\n delay: autoplaySpeed,\n disableOnInteraction: false,\n },\n pagination: {\n el: '.js-swiper-pagination',\n clickable: true,\n type: 'bullets',\n },\n navigation: {\n prevEl: megabannerSlider.querySelector('.home-megabanner-slider__button.nav-btn-prev'),\n nextEl: megabannerSlider.querySelector('.home-megabanner-slider__button.nav-btn-next'),\n },\n on: {\n init(swiper) {\n showInfoCards(swiper.el)\n // Create last visited hotel slide\n createLastVisitedHotelSlide(megabannerSlider, swiper)\n },\n slideChange(swiper) {\n manageSlideVideoPlayingState(swiper, swiper.previousIndex, 'stop')\n manageSlideVideoPlayingState(swiper, swiper.activeIndex, 'play')\n },\n },\n })\n\n // Show controls\n const sliderControls = document.querySelector(SLIDER_CONTROLS_SELECTOR)\n sliderControls?.classList.remove('is-hidden')\n\n // Load videos\n const videos = megabannerSlider.querySelectorAll('.js-head-video')\n if (videos.length) {\n addSourcesToVideosFromDataAttributes(videos)\n }\n loadHlsVideo(BLOCK_SELECTOR, {\n autoplay: false,\n loop: true,\n playsWhenEnterViewport: false,\n })\n\n // Each slide could have a wrapping link, that is, the whole slide is clickable and should redirect to wrapping link url\n // but for html semantic reasons is not possible use tag as a wrapper (has buttons and another tags inside)\n // Because of this, an inline hidden link was rendered in the html and we trigger it through slide click.\n const megabannerItemsWithLink = megabannerSlider.querySelectorAll('.js-slide-element-with-link')\n\n if (megabannerItemsWithLink.length) {\n megabannerItemsWithLink.forEach(item => {\n item.addEventListener('click', event => {\n if (event.target.tagName === 'A' || event.target.tagName === 'BUTTON') return\n item.querySelector('.js-slide-link')?.click()\n })\n })\n }\n\n // Initialize countdowns\n showCountdown(BLOCK_SELECTOR)\n}\n\n// Public\nwindow.IB.megabanner = {\n startSlider: init,\n}\n\n// Initialize\n;(() => {\n const megabannerSlider = document.querySelector(BLOCK_SELECTOR)\n\n if (!megabannerSlider) return\n\n const corporativeSlide = megabannerSlider.querySelector(CORPORATIVE_SLIDE_SELECTOR)\n\n if (!corporativeSlide || IB.is_in_microsite) {\n init()\n }\n\n // A11y - changes main header background\n const mainHeaderWrapper = document.querySelector('.wrapper-main-header')\n const noTransitionDuration = 600\n const backgroundHorizonsDelay = 200\n\n function handleTransition(enable) {\n if (!mainHeaderWrapper) return\n\n mainHeaderWrapper.classList.add('no-transition')\n\n setTimeout(() => {\n if (enable) {\n mainHeaderWrapper.classList.add('background-horizons')\n document.body.classList.remove('transparent-header')\n } else {\n mainHeaderWrapper.classList.remove('background-horizons')\n document.body.classList.add('transparent-header')\n }\n }, backgroundHorizonsDelay)\n\n setTimeout(() => {\n mainHeaderWrapper.classList.remove('no-transition')\n }, noTransitionDuration)\n }\n\n document.addEventListener(ADA_ENABLED_EVENT, () => handleTransition(true))\n document.addEventListener(ADA_DISABLED_EVENT, () => handleTransition(false))\n\n // Show the white header if you start loading with ADA on\n document.addEventListener('DOMContentLoaded', () => {\n if (document.body.classList.contains('ada')) {\n handleTransition(true)\n }\n })\n})()\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\n\nexport function initializeUtagEvents(buttons) {\n /* Click on FH awards module */\n buttons?.forEach(btn => {\n btn.addEventListener('click', () => {\n sendUtagEvent({\n data: {\n event_name: 'hotel_awards',\n event_cat: 'hotel information',\n event_act: 'see hotel info',\n event_lbl: 'awards',\n event_purpose: 'inspiration',\n event_structure: 'body',\n },\n })\n })\n })\n}\n","import { currentDevice } from '../../core/utils/currentDevice'\n\nimport { initializeUtagEvents } from './hotel_information_ratings.analytics'\n\nfunction init() {\n const showMoreBtn = document.querySelectorAll('.js-awards-show-more')\n initializeUtagEvents(showMoreBtn)\n\n showMoreBtn.forEach(btn => {\n btn.addEventListener('click', event => {\n event.preventDefault()\n event.stopPropagation()\n const target = event.target\n const awardsList = target.closest('.awards-list')\n const hiddenItems = awardsList.querySelectorAll('.award-item.hidden')\n\n hiddenItems.forEach((item, index) => {\n if (index < 3) {\n item.classList.remove('hidden')\n }\n })\n if (hiddenItems.length < 3) {\n target.classList.add('hidden')\n }\n })\n })\n}\n\nif (currentDevice.isMobile || currentDevice.isLikeMobile) {\n init()\n}\n","export const FILTER_OFFER_EVENT = 'hotels_info_with_filtering:apply_offer'\n\nexport const FILTERS_IN_PARAMS = [\n 'filter_destinations',\n 'filter_categories',\n 'filter_amenities',\n 'filter_specialties',\n 'filter_offers',\n]\n","function init() {\n const $block = $('.landing-typekit-header')\n if (!$block.length) return\n\n const $image = $block.find('.image')\n const $hotel_list = $(\"div[data-block-layout='hotels_info_with_filtering'], div[data-block-layout='hotel_list']\")\n\n if ($hotel_list.length) $block.find('a[href=\"#hotels-info-with-filtering\"]').removeClass('not-visible')\n if (\n $image.length &&\n IB.currentDevice !== 'desktop' &&\n $image.data('mobile') !== '' &&\n $image.data('mobile') !== undefined\n ) {\n $image.css('background-image', `url(${$image.data('mobile')})`)\n }\n\n const $menu_items = $block.find('.internal-nav-cnt-nfh')\n if ($menu_items.length) {\n IB.currentDevice === 'mobile' ? initMenuItemsMobile($menu_items) : initMenuItems($block, $menu_items)\n\n initCheckInternalNav()\n\n if (IB.currentDevice === 'tablet') {\n let position = $(window).scrollTop()\n const $header_sticky = $('#header-sticky')\n const distance = $menu_items.offset().top + $menu_items.height()\n $(window).on('scroll', function () {\n const scroll = $(window).scrollTop()\n if (scroll > distance) {\n if (scroll > position) $header_sticky.css('transform', 'translate(0, 300px)')\n else $header_sticky.css('transform', 'translate(0, 378px)')\n } else $header_sticky.css('transform', 'translate(0, -90px)')\n\n position = scroll\n })\n }\n }\n}\n\nfunction initMenuItems($block, $menu) {\n const $clone_menu = $menu.first().clone(true, true)\n const $header_sticky = $('#header-sticky')\n $menu.find('.internal-nav').addClass('no-sticky')\n\n $header_sticky.find('.sticky-internal-nav .wrapper').html($clone_menu)\n\n const block_height = $block.outerHeight()\n const block_bottom = $block.offset().top + block_height\n\n $(window).on('scroll', function () {\n menuSticky(block_bottom, $header_sticky)\n })\n}\n\nfunction initMenuItemsMobile($menu) {\n const $mobile_sticky_container = $('.footer-fixed-buttons')\n if ($mobile_sticky_container.length) $mobile_sticky_container.prepend($menu)\n}\n\nfunction menuSticky(block_bottom, $header_sticky) {\n if (window.pageYOffset > block_bottom + 20) {\n $header_sticky.addClass('active')\n } else {\n $header_sticky.removeClass('active')\n $('#more-container-sticky').hide()\n\n $('.floating-action .active').map(function (index, elem) {\n return $(elem).removeClass('active')\n })\n }\n}\n\nlet blocksObserver\nlet initialized = false\n\nfunction initCheckInternalNav() {\n if (initialized) return\n initialized = true\n\n const arr_menu = []\n const $sticky_header = $('#header-sticky')\n const header_height = $sticky_header.height()\n\n $('.internal-nav-cnt-nfh')\n .first()\n .find('ul li.menu_item:not(.multi-button) a')\n .each(function () {\n arr_menu.push($(this).attr('href'))\n })\n\n // Si se deja de dar soporte a IE11, podríamos borrar esta comprobación y el método checkMenuLink entero y dejar solo el código del else.\n if (!('IntersectionObserver' in window)) {\n $(window).on('scroll', function () {\n checkMenuLink($(this))\n })\n } // end IE11\n else {\n /** -------- INTERSECTION OBSERVER ACTIVE INTERNAL LINK -------- */\n const options_blocks = {\n root: null,\n rootMargin: '0px 0px 0px 0px',\n threshold: 0.5,\n }\n\n const $blocks = $('[role=\"main\"] > *[name]')\n\n blocksObserver = new IntersectionObserver(activeBlock, options_blocks)\n $blocks.each(function (i, block) {\n blocksObserver.observe(block)\n })\n }\n\n function checkMenuLink($el) {\n const $items = $('.internal-nav-cnt-nfh ul li.menu_item:not(.multi-button)')\n const $this = $el\n const scroll_top = $sticky_header.hasClass('active') ? $this.scrollTop() + header_height : $this.scrollTop()\n\n $items.removeClass('active')\n\n if (!$sticky_header.hasClass('active') && IB.currentDevice !== 'mobile') {\n $items.find(`[href=\"${arr_menu[0]}\"]`).parent('.menu_item').addClass('active')\n return false\n }\n\n $.each(arr_menu, function (indexInArray, value) {\n const $box = $(value).length ? $(value) : $(`[name=${value.slice(1)}]`)\n\n if (!$box.length) return false\n\n const is_mobile = IB.currentDevice === 'mobile'\n let scroll_compensation = is_mobile\n ? $('.internal-nav-cnt-nfh:visible .menu-trigger-responsive').outerHeight() + 21\n : 30\n\n if (is_mobile && $box.offset().top < scroll_top) {\n // will scroll up, so header will be visible\n scroll_compensation += $('.mobile-header-cnt').height() + 10\n }\n\n const box_top = $box.offset().top - scroll_compensation\n const box_bottom = box_top + $box.height()\n\n if (alreadyInView(scroll_top, box_top, box_bottom)) {\n const $item = $items.find(`[href=\"${value}\"]`).parent('.menu_item')\n $item.addClass('active')\n }\n })\n }\n}\n\nfunction activeBlock(entries) {\n $.each(entries, function (i, entry) {\n if (entry.isIntersecting) {\n const $block = $(entry.target)\n const value = $block.attr('name')\n const $items = $('.internal-nav-cnt-nfh ul li.menu_item:not(.multi-button)')\n $items.removeClass('active')\n if (value !== undefined && value !== null) {\n const $item = $items.find(`[href=\"#${value}\"]`).parent('.menu_item')\n $item.addClass('active')\n }\n }\n })\n}\n\nfunction alreadyInView(elemTop, docViewTop, docViewBottom) {\n return elemTop >= docViewTop && elemTop <= docViewBottom\n}\n\nwindow.IB.landing_typekit_header = {\n init,\n}\n\nIB.landing_typekit_header.init()\n","let $register_form = $('.b-register-form');\nlet halfs = [0, 1, 5, 6];\nlet thirds = [2, 3, 4];\nlet only = [2];\n$register_form.find('.register .fz-row').each(function (i) {\n if (halfs.indexOf(i) != -1) $(this).addClass('half');\n if (thirds.indexOf(i) != -1) $(this).addClass('third');\n if (only.indexOf(i) != -1) $(this).addClass('only');\n});\n$register_form.find('.textual-content').remove();\n// para añadir cuando esten hechas las RRSS $('.row.actions').append('¿Prefieres registrarte con tus redes sociales?');\n$register_form.find('.block-form').addClass('show visible');\n\n$(document).on('click', '.b-register-form .switch-links', function () {\n let blocks = { hiddenBlock: '.rrss-form', visibleBlock: '.block-form' };\n if ($(this).attr('id') === 'linkto_rrss') {\n let aux = blocks.hiddenBlock;\n blocks.hiddenBlock = blocks.visibleBlock;\n blocks.visibleBlock = aux;\n }\n $(blocks.hiddenBlock).removeClass('show visible');\n $(blocks.visibleBlock).addClass('show');\n setTimeout(function () {\n $(blocks.visibleBlock).addClass('visible');\n }, 100);\n});\n\n\n$(document).on('click', 'a[data-link=\"profiling\"]', function (e) {\n $('[data-link=\"profiling-anchor\"]').each(function () {\n $(this).show('slow');\n });\n});\n\n$(document).on('click', '#link-form-here', function (e) {\n var noSpam = document.querySelector('.content-spam');\n noSpam.classList.toggle('spam');\n});\n","/**\n * Force Call Center Lightbox\n *\n * When cancel online bookings option is enabled in CMS,\n * we override the following links:\n * - Manage bookings in Vue header (already rendered with the FLAG_CLASS)\n * - Manage bookings in footer (a.manage-bookings)\n * - Points exchange in MIB (.bottom-links-container both .exchange-points and .cancel links)\n *\n * with a XHR petition that returns a lightbox, very much alike the contact lightbox.\n * Not overriding directly without the class to make it clear that the click\n * event is being overriden by this enabled mode in the CMS.\n *\n **/\nimport { getLazyData } from '../../utils/get_lazy_data';\nimport { readCookie } from '../../utils/cookie_manager';\nimport { getPrefix } from '../../core/utils/locale.js';\n\nconst ONLINE_BOOKINGS_DISABLED = document.getElementsByTagName('body')[0].classList.contains('js-force-callcenter-lightbox');\nif (ONLINE_BOOKINGS_DISABLED) {\n let htmlTag = document.documentElement;\n let device = htmlTag.dataset.deviceType;\n\n let classes = '.js-force-callcenter-lightbox-link, .manage-my-booking, .bottom-links-contaniner .cancel, .bottom-links-contaniner .modify, .bottom-links-contaniner .modify-booking, .bottom-links-contaniner .exchange-points';\n if (device !== 'mobile') {\n classes += ', a.manage-bookings';\n } else {\n classes += ', .menu_item:not(.title) a.manage-bookings, .bottom-links-mobile .cancel, .bottom-links-mobile .modify, .bottom-links-mobile .modify-booking, .bottom-links-mobile .exchange-points, .points-bottom .exchange-points-link';\n }\n\n $(document).on('click', `${classes}`, function (e) {\n e.preventDefault();\n let htmlTag = document.documentElement;\n let country = readCookie('x-country');\n let marketId = htmlTag.dataset.marketId;\n let site = IB.is_in_microsite ? htmlTag.dataset.inMicrosite : 'iberostar';\n let url = `${getPrefix()}/ajax_contents/lightbox_callcenter/?country=${country}&market_id=${marketId}&site=${site}&force=${force_cc}`;\n\n getLazyData(url, function (lightboxHtml) {\n $.fancybox.open(lightboxHtml);\n });\n });\n}\n","import { getPrefix } from '../../core/utils/locale.js'\nimport { deleteCookies, readCookie } from '../../utils/cookie_manager'\nimport { getLazyData } from '../../utils/get_lazy_data'\nimport { openSessionFancybox } from '../../utils/ib_session_fancybox'\n\nimport { initializeUtagEvents } from './horizons_postregister_lightbox.analytics.js'\n\nfunction cleanSymbols(value) {\n if (/[+%&]/.test(value)) {\n value = value.replace(/[+%&]/g, ' ')\n }\n return value\n}\n\nconst prelead_type = cleanSymbols(readCookie('prelead_type'))\n\nconst openPostregistrationForm = function postregistration_form() {\n try {\n if (prelead_type && prelead_type !== null) {\n initializeUtagEvents(prelead_type)\n }\n\n const metadata = readCookie('user_metadata')\n console.log(`metadata=${metadata}`)\n const metadataAsObject = JSON.parse(decodeURIComponent(metadata))\n let metadataAsUrl = ''\n for (var key in metadataAsObject) {\n metadataAsUrl += `&${key}=${metadataAsObject[key]}`\n }\n const URL_LIGHTBOX = `${getPrefix()}/ajax_contents/lightbox_for_block/?lightbox_type=registration&postregistration=true${metadataAsUrl}`\n getLazyData(URL_LIGHTBOX, function (fancyboxHtml) {\n openSessionFancybox(fancyboxHtml, '.register form', {}, true)\n\n // Delete cookie when user cancels post-registration window\n const cancelPostRegister = document.querySelector('.cancel-register')\n cancelPostRegister?.addEventListener('click', () => {\n deleteCookies(['prelead_type'])\n })\n })\n } catch (e) {\n console.log(`Error horizons_postregister_lightbox.js${e}`)\n }\n}\nconst auth0_postregister_form = readCookie('auth0_postregister_form')\nconsole.log(`auth0_postregister_form=${auth0_postregister_form}`)\nconst user_metadata = readCookie('user_metadata')\n\nif (auth0_postregister_form === 'true' && user_metadata !== null) {\n openPostregistrationForm()\n}\n\nexport default openPostregistrationForm\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\nimport { getCleanedString } from '../../utils/utilities'\n\nexport function initializeUtagEvents(eventLabel) {\n sendUtagEvent({\n data: {\n event_name: 'pre_lead',\n event_cat: 'lead',\n event_act: 'pre lead',\n event_lbl: getCleanedString(eventLabel),\n event_purpose: 'loyalty',\n event_structure: 'impression',\n },\n })\n}\n","import { checkloadComponentStyles } from '../../src/lazy_wrappers/lazy_block_lightbox'\n\nexport function openSessionFancybox(fancyboxHtml, formSelector, userData, onlyRegister) {\n $.fancybox.open(fancyboxHtml, {\n trapFocus: false,\n afterShow: () => {\n IB.deviceDetector.loadDeviceDataToForm()\n checkloadComponentStyles()\n },\n })\n if (formSelector == '.login form') {\n document.querySelector('[data-tab=\".js-tab-wrapper#session-tab-login\"]').classList.add('active')\n document.querySelector('[data-tab=\".js-tab-wrapper#session-tab-registration\"]').classList.remove('active')\n if (document.getElementById('session-tab-login')) {\n document.getElementById('session-tab-login').classList.add('active')\n }\n document.getElementById('session-tab-registration').classList.remove('active')\n IB.forms.initValidation($(formSelector))\n } else {\n if (document.querySelector('[data-tab=\".js-tab-wrapper#session-tab-login\"]')) {\n document.querySelector('[data-tab=\".js-tab-wrapper#session-tab-login\"]').classList.remove('active')\n }\n if (document.querySelector('[data-tab=\".js-tab-wrapper#session-tab-registration\"]')) {\n document.querySelector('[data-tab=\".js-tab-wrapper#session-tab-registration\"]').classList.add('active')\n }\n if (document.getElementById('session-tab-login')) {\n document.getElementById('session-tab-login').classList.remove('active')\n }\n if (document.getElementById('session-tab-registration')) {\n document.getElementById('session-tab-registration').classList.add('active')\n }\n IB.forms.initValidation($(formSelector))\n }\n\n if (onlyRegister) {\n if (document.getElementsByClassName('cabecera').length > 0) {\n document.getElementsByClassName('cabecera')[0].remove()\n }\n if (document.getElementById('session-tab-login')) {\n document.getElementById('session-tab-login').remove()\n }\n }\n\n IB.forms.register_form.init()\n IB.formUtagEvents.init()\n const $form = $('.js-login-form form')\n const $required_fields = $form.find('[data-parsley-required]:not([data-parsley-errors-container])')\n const parsley_config = {\n errorsContainer: pe => {\n const $err = pe.$element.closest('.fz-col').find('.fz-error-container')\n return $err\n },\n }\n\n FORMZ.required_fields.init($required_fields)\n $form.parsley(parsley_config)\n}\n","import './alert.scss';\n\nexport function init() {\n if ($('.flash.fixed').length) {\n $('body').append($('.flash.fixed').addClass('active'));\n setTimeout((function () {\n $('.flash.fixed').css('transform', 'translateY(-100%)');\n }), 5000);\n }\n}\n\n$(document).on('click', '.alert .close', function (event) {\n event.preventDefault();\n let $this = $(this);\n let $flash = $this.closest('.wrapper.flash');\n $this.closest('.alert').remove();\n if (!$flash.find('.alert').length) $flash.remove();\n});\n\ninit();\n","function initDestinationBreadcrumbs() {\n $('.destination-breadcrumb .destination-list .wrapper').each(function () {\n let $wrapper = $(this);\n $wrapper.width($wrapper.siblings('.d-link').width());\n });\n $(document).on('click', '.destination-breadcrumb .d-link', function (e) {\n e.preventDefault();\n let $target = $(this).closest('.d-link');\n\n calculateChildrenPosition($target);\n\n if (!$target.hasClass('active')) {\n let $prev_active = $('.destination-breadcrumb .d-link.active');\n\n $($prev_active.attr('data-target')).hide();\n $prev_active.removeClass('active');\n }\n\n $($target.attr('data-target')).slideToggle('fast');\n $target.toggleClass('active');\n });\n\n $('.destination-breadcrumb .destination-list').scroll(function () {\n let $active_dropdowns = $(this).find('.d-link.active');\n if ($active_dropdowns.length) {\n calculateChildrenPosition($active_dropdowns);\n }\n });\n}\n\nfunction calculateChildrenPosition($target) {\n let $submenuWrapper = $target.closest('.has-children').find('.wrapper');\n let menuItemPos = $target.position();\n\n $submenuWrapper.css({\n top: menuItemPos.top + $target.outerHeight(),\n left: menuItemPos.left\n });\n}\n\ninitDestinationBreadcrumbs();\n","import fastbooking from '../fastbooking/ibh_fastbooking'\n\n/**\n * The referenced tag should contain:\n * data-url-link with the url link\n * data-text-link with the text to show in the link\n * data-promocode with the promocode\n * data-url-cta with the url to redirect that contains the promocode\n * data-apply-code-lang with the translation to apply the promocode\n * Example: \n *\n * @param {*} promolink - DOM element with the datas\n * @returns void\n */\nexport default function initPromoLink(promolink) {\n const urlLink = promolink.dataset.urlLink\n const textLink = promolink.dataset.textLink\n const promocode = promolink.dataset.promocode\n const urlCta = promolink.dataset.urlCta\n const parameters = promolink.dataset.parameters\n const applyCodeLang = promolink.dataset.applyCodeLang\n\n if (urlLink === '' && promocode === '') {\n promolink.remove()\n return\n }\n\n let href = '#'\n if (parameters) {\n href = `${location.protocol}//${location.host}${location.pathname}?${parameters}`\n } else if ((urlLink && promocode) || urlLink !== '') {\n href = urlCta\n } else if (urlLink === '' && promocode && urlCta !== '') {\n href = window.location.origin + urlCta\n }\n\n let innerText = `${applyCodeLang} ${promocode}`\n if (textLink) {\n innerText = textLink\n }\n\n function clickHandler(e) {\n if (!parameters && promocode && !urlLink && !urlCta) {\n e.preventDefault()\n fastbooking.setPromocode(promocode)\n }\n }\n\n promolink.innerHTML = `${innerText} `\n promolink.addEventListener('click', clickHandler)\n}\n","import { sendUtagEvent } from '../../core/analytics/utag_events'\nimport { getCleanedString } from '../../utils/utilities'\n\nexport function sendHeadbandUtagEvent(headband) {\n const event_cat = getCleanedString(headband.dataset.eventCat)\n const event_act = getCleanedString((headband.dataset.eventAct || '').toLowerCase())\n let event_lbl = getCleanedString(headband.dataset.eventLbl)\n\n sendUtagEvent({\n data: {\n event_name: 'offers_apply',\n event_cat,\n event_act,\n event_lbl,\n event_purpose: 'booking',\n event_structure: 'sticky',\n },\n })\n\n if (event_act === 'promo code') {\n event_lbl = getCleanedString(headband.querySelector('.js-promolink').dataset.promocode)\n\n sendUtagEvent({\n data: {\n event_name: 'offers_apply',\n event_cat: 'offers',\n event_act: 'apply offers',\n event_lbl,\n event_purpose: 'booking',\n event_structure: 'sticky',\n },\n })\n }\n\n sendUtagEvent({\n data: {\n event_name: 'headband_module',\n event_cat,\n event_act,\n event_lbl,\n event_purpose: 'information',\n event_structure: 'sticky',\n },\n })\n}\n","import { getUserLevel } from '../../core/iberapi/browsing_session/browsing_session'\nimport initPromoLink from '../../shared/promo_link/promo_link'\nimport countdownClock from '../../utils/countdown'\n\nimport { sendHeadbandUtagEvent } from './headband.analytics'\n\nconst ACTIVE_STICKY_HEADBANDS_CLASS = '.js-headband.sticky.slide-down'\nconst visibleHeadbands = []\nconst AFFECTED_ELEMENTS_BY_STICKY_HEADBANDS = [\n 'js-reb-header',\n 'js-fastbooking-home',\n 'js-mobile-header',\n 'js-vue-mobile-menu',\n 'js-header-sticky-hotel',\n]\n\nfunction showHeadbandCountdown(headband) {\n const now = new Date()\n const countdownStart = new Date(headband.dataset.countdownStart)\n const countdownEnd = new Date(headband.dataset.countdownEnd)\n const countdown = headband.querySelector('.js-countdown')\n const expiredText = JSON.parse(countdown.dataset.translations).expired\n\n if (now >= countdownStart) {\n countdown.classList.remove('hidden')\n countdownClock(1000, 9999)\n\n if (expiredText === '' && now >= countdownEnd) {\n countdown.remove()\n }\n }\n}\n\nfunction cleanUnusedHeadbands() {\n document.querySelectorAll('.js-headband:not(.slide-down)').forEach(hiddenHeadband => {\n hiddenHeadband.remove()\n })\n}\n\nfunction isHeadbandInTime(headband) {\n const now = new Date()\n const start = new Date(headband.dataset.start)\n const end = new Date(headband.dataset.end)\n\n if (now >= start && now <= end) {\n return true\n }\n}\n\nfunction slideDownHeadband(headband, callback) {\n headband.classList.add('slide-down')\n\n headband.addEventListener('transitionend', callback, { once: true })\n}\n\nasync function loopHeadbands(headbands) {\n const userLevel = getUserLevel()\n\n for (const headband of headbands) {\n const allowedUserLevels = JSON.parse(headband.dataset.loggedInLevels)\n const isVisibleToUser = allowedUserLevels.includes(userLevel)\n const unlockMetrics = headband.dataset.metrics\n\n if (isVisibleToUser && isHeadbandInTime(headband)) {\n showHeadbandCountdown(headband)\n slideDownHeadband(headband)\n headband.classList.remove('headband__stash')\n setTimeout(function () {\n headband.classList.remove('headband__stash')\n }, 100)\n\n const promoLinkElement = headband.querySelector('.js-promolink')\n\n if (unlockMetrics === 'true') {\n promoLinkElement.addEventListener('click', function () {\n sendHeadbandUtagEvent(headband)\n })\n }\n\n initPromoLink(promoLinkElement)\n visibleHeadbands.push(headband)\n }\n }\n}\n\nfunction addStickyStateClassToAffectedElements() {\n AFFECTED_ELEMENTS_BY_STICKY_HEADBANDS.forEach(affectedElement => {\n const elements = document.querySelectorAll(`.${affectedElement}`)\n\n if (!elements) return\n\n elements.forEach(element => {\n element.classList.add('pushed-by-sticky-headbands')\n })\n })\n}\n\nfunction pushBodyWhenHeadbandAreSticky(occupiedHeight) {\n document.body.style.transition = 'all 1s ease-in-out'\n document.body.style.paddingTop = `${occupiedHeight}px`\n document.body.style.position = 'relative'\n}\n\nfunction setStickyHeadbandsPositions() {\n const stickyHeadbands = document.querySelectorAll(ACTIVE_STICKY_HEADBANDS_CLASS)\n\n stickyHeadbands.forEach((headband, index) => {\n const previousHeadband = stickyHeadbands[index - 1]\n if (previousHeadband) {\n headband.style.top = `${previousHeadband.clientHeight}px`\n }\n })\n}\n\nfunction addPushedByStickyHeadbandsClassToBody(occupiedHeight) {\n const style = document.createElement('style')\n style.innerHTML = `\n .sticky.pushed-by-sticky-headbands {\n top: ${occupiedHeight}px !important;\n }\n `\n document.body.appendChild(style)\n}\n\nfunction getTotalHeightOfStickyHeadbands() {\n const stickyHeadbands = document.querySelectorAll(ACTIVE_STICKY_HEADBANDS_CLASS)\n const stickyHeadbandsTotalHeight = Array.from(stickyHeadbands).reduce(\n (total, stickyHeadband) => total + stickyHeadband.clientHeight,\n 0\n )\n return stickyHeadbandsTotalHeight - 2 // quit 2px to avoid gaps\n}\n\nexport default function init() {\n const headbands = document.querySelectorAll('.js-headband')\n\n if (!headbands) return\n\n loopHeadbands(headbands)\n cleanUnusedHeadbands()\n\n const headband = Array.from(visibleHeadbands).find(headband => headband.classList.contains('sticky'))\n if (headband) {\n setStickyHeadbandsPositions()\n addStickyStateClassToAffectedElements()\n slideDownHeadband(headband, () => {\n const occupiedHeight = getTotalHeightOfStickyHeadbands()\n addPushedByStickyHeadbandsClassToBody(occupiedHeight)\n pushBodyWhenHeadbandAreSticky(occupiedHeight)\n })\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n requestIdleCallback(init)\n})\n","$(function () {\n if (IB.currentDevice === 'desktop') { // in desktop or small desktop\n let wait_time = 0;\n\n $(document).on('mouseenter', '.pro-link', function () {\n let $el = $(this);\n wait_time = 0;\n $el.find('.pro-letter').each(function (index, el) {\n setTimeout(function () {$(el).addClass('active');}, wait_time);\n wait_time += 4;\n });\n }).on('mouseleave', '.pro-link', function () {\n let $el = $(this);\n wait_time = 100;\n $($el.find('.pro-letter').get().reverse()).each(function (index, el) {\n setTimeout(function () {$(el).removeClass('active');}, wait_time);\n wait_time += 4;\n });\n });\n }\n});\n","import { getLazyData } from '../../utils/get_lazy_data';\n\nif($(\"#divFBwidget\").length){\n let lang = document.documentElement.getAttribute('data-js-lang') == 'es' ? '' : '/' + document.documentElement.getAttribute('data-js-lang');\n let url = lang+\"/social-login/widget/\";\n getLazyData(url, function (response) {\n if(response.length > 0){\n $(\"#divFBwidget\").append(response);\n $(\"#x_recommend\").attr(\"style\",\"\");\n $(\"#x_banner\").attr(\"style\",\"\");\n $(\".facebook-summary-widget-block\").removeClass(\"hidden\");\n }\n });\n}\n","/* eslint-disable no-jquery/no-data */\n/* eslint-disable no-jquery/no-jquery-constructor */\n/* eslint-disable no-jquery/no-other-methods */\n/* eslint-disable no-jquery/no-each-collection */\n/* eslint-disable no-jquery/no-attr */\n/*no*/\nimport '../../blocks/register_form/register_form'\n\nimport dayjs from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\n\nimport { currentDevice } from '../../core/utils/currentDevice'\nimport Modal from '../../shared/modal/modal'\n\ndayjs.extend(customParseFormat)\n;(function () {\n // Variable to store date field intersection status\n let isIntersecting = false\n\n if (typeof IB === 'undefined') {\n window.IB = {}\n } else if (typeof IB.forms === 'undefined') {\n IB.forms = {}\n } else if (typeof IB.forms.register_form !== 'undefined') {\n return\n }\n\n function init() {\n const $birth_date = $('.single-datepicker-birth-date')\n if ($birth_date.length > 0) {\n const language = document.documentElement.getAttribute('data-js-lang')\n const date_format = $('html').attr('data-date-format')\n const start_of_week = $('html').attr('data-start-of-week')\n\n $birth_date.each(function (index, el) {\n if ($(el).data('dateRangePicker')) {\n $(el).data('dateRangePicker').destroy()\n }\n $(el)\n .dateRangePicker({\n autoClose: true,\n format: date_format,\n startOfWeek: start_of_week,\n language,\n showDropdowns: true,\n startDate: new dayjs().subtract(100, 'years').format(date_format),\n endDate: new dayjs().subtract(18, 'years').format(date_format),\n minYear: new dayjs().year() - 100,\n maxYear: new dayjs().year() - 18,\n defaultTime: new dayjs().subtract(18, 'years').format(date_format),\n singleDate: true,\n singleMonth: true,\n selectBackward: true,\n showTopbar: false,\n })\n .on('datepicker-open', function () {\n // Lock Scroll on datepicker open only in mobile\n currentDevice.isMobile && ScrollLock.on()\n const offset_left = $(el).offset().left\n $('.date-picker-wrapper').css('left', offset_left)\n // When the calendar is opened, set this variable to true to prevent\n // the datepicker from closing on scroll until the intersection observer\n // detects a new intersection between both elements\n isIntersecting = true\n if ($(el).val() === '') {\n const date = new dayjs().subtract(18, 'years').format(date_format)\n $(el).data('dateRangePicker').setDateRange(date, date)\n }\n })\n .on('datepicker-opened', function (ev, picker) {\n $(this).prop('readonly', true)\n })\n .on('datepicker-first-date-selected', function (ev, picker) {\n $(this).prop('readonly', false)\n $(this).val(dayjs(picker.time).format(date_format)).trigger('change')\n $(el).closest('form').parsley().validate('datepicker')\n })\n .on('datepicker-close', function () {\n // Unlock Scroll on datepicker close only in mobile\n currentDevice.isMobile && ScrollLock.off()\n })\n\n $(el).on('focus', function () {\n $(el).data('dateRangePicker').open()\n })\n\n // PY04776-533 - 761157 - Calendario de registro se descoloca\n // Fix bug that if the postregister modal is closed and the data picker is open, the data picker closes as well.\n $('[data-fancybox-close]').on('click', function () {\n $(el).data('dateRangePicker').close()\n })\n })\n }\n\n // Depending on the device type, the observer should be fired differently.\n // Add .register class for the register form in star agents\n const PARENT_SCROLL_SELECTOR = `${\n currentDevice.isMobile ? '.js-login-registration-lightbox' : '.session-tab-registration'\n }, .second-layer.register`\n\n // Initialize the observer\n var observer = new IntersectionObserver(\n entries => {\n isIntersecting = entries[0].isIntersecting\n },\n {\n root: null,\n threshold: 1,\n rootMargin: '0px 0px -280px 0px',\n }\n )\n\n // Listen for scroll in the register form.\n // Depending on the device type, the scroll event will be fired differently.\n if ($birth_date[0] !== undefined) {\n // Set the element to observe\n observer.observe(document.querySelector('.single-datepicker-birth-date'))\n // Lister for scroll to calculate the position of the calendar or close it\n $birth_date[0].closest(PARENT_SCROLL_SELECTOR)?.addEventListener('scroll', e => {\n if (isIntersecting) {\n // While the field is visible, change the position of the calendar.\n $birth_date.data('dateRangePicker').calcPosition()\n } else {\n // If the field is not visible, close the calendar.\n $birth_date.data('dateRangePicker').close()\n }\n })\n }\n\n // Modal con vídeo para el formulario de registro de Iberostar PRO\n // --> PY04777-688: 747192 - Tutorial Alta en registro de alta\n const videoLink = document.querySelector('.js-video-module')\n const videoPlay = document.querySelector('.modal-play')\n\n videoLink?.addEventListener('click', function (e) {\n e.preventDefault()\n Modal.show('video-tutorial-register', {\n onShow: () => {\n videoPlay.play()\n },\n onClose: () => {\n videoPlay.pause()\n },\n awaitCloseAnimation: true,\n })\n })\n }\n\n window.IB.forms.register_form = {\n init,\n }\n\n // Inialize the register form only in the iberostar pro microsite\n const userRegisterForm = document.querySelector('.form-users')\n if (IB.current_microsite === 'iberostar_pro' && userRegisterForm) {\n init()\n }\n})()\n","$(document)\n .on('click', '.show-password', function (event) {\n event.preventDefault()\n const $this = $(this)\n const $input = $($this.data('element'))\n const text = $($this).attr('data-label-toogle-text')\n const label = $($this).attr('aria-label')\n\n $this.toggleClass('active')\n if ($this.hasClass('active')) {\n $input.attr('type', 'text')\n } else {\n $input.attr('type', 'password')\n }\n\n if (text && label) {\n $($this).attr('data-label-toogle-text', label)\n $($this).attr('aria-label', text)\n }\n })\n .on('click', '.show-password-external', function (event) {\n event.preventDefault()\n const $this = $(this)\n const $input = $($this.data('element'))\n $this.toggleClass('active')\n $input.toggleClass('active')\n if ($input.hasClass('active')) {\n $input.attr('type', 'text')\n } else {\n $input.attr('type', 'password')\n }\n })\n .on('keyup', '.password-row input', function (event) {\n const $this = $(event.target)\n\n if ($this.hasClass('without-errors')) return\n\n const $pass_row = $this.closest('.password-row')\n let $parsley_errors\n const $err_new_list = $this.hasClass('out-errors') ? $($this.data('out-errors-id')) : $pass_row.find('.validation-errors')\n let group_to_validate\n\n group_to_validate = typeof $pass_row.data('group-to-validate') === 'undefined' ? 'password' : $pass_row.data('group-to-validate')\n\n $err_new_list.removeClass('hidden')\n\n // retrieve parsley error messages to copy later\n $pass_row.closest('form').parsley().validate(group_to_validate)\n $parsley_errors = $pass_row.find('.parsley-errors-list')\n\n // iterate over our custom error list to match parsley errors\n // in order to apply validated message class\n setTimeout(function () {\n $.each($err_new_list.find('li'), function () {\n const $that = $(this)\n const elClass = $that.attr('class').split(' ')[0]\n if ($parsley_errors.find('li').length == 1 && $parsley_errors.find('li').attr('class') == 'parsley-required') {\n $that.removeClass('validated')\n } else if ($parsley_errors.find(`.${elClass}`).length === 0) {\n $that.addClass('validated')\n } else {\n $that.removeClass('validated')\n }\n })\n }, 200)\n })\n\n$().fancybox({\n selector: 'a.reset-password',\n type: 'ajax',\n beforeClose() {\n if ($('.date-picker-wrapper').is(':visible')) {\n $('.date-picker-wrapper').hide()\n }\n },\n afterShow() {\n const $close = $(this.$smallBtn[0])\n const $content = $('.reset-password-wrapper')\n if ($content.length) {\n // When open fancybox of reset password, we focus on content and put close button at first place\n $($content).attr('tabindex', '-1')\n $($content).trigger('focus')\n if ($close.length) {\n $close.insertBefore($content)\n }\n }\n },\n})\n","import on from '../../utils/events_delegation'\n\non({\n eventName: 'click',\n selector: `.js-show-call-me-back-modal`,\n handler(e) {\n e.preventDefault()\n try {\n window.lanzo_cmb()\n } catch (err) {}\n },\n})\n","let DEFAULT_CURRENCY = 'EUR';\nlet actual_currency = $.cookie('currency') !== undefined ? $.cookie('currency') : DEFAULT_CURRENCY;\n\n$(document).on('change', '.currency-agency-selector select', function () {\n let $el = $(this);\n let currency = $el.parents('.currency-agency-form').find('.fk-select-label').text();\n\n if (currency === 'DEF') currency = DEFAULT_CURRENCY;\n\n let $general_selector = $el.parents('.reserve-index-list, .quote-index-list');\n\n $general_selector.find('.data.active').removeClass('active');\n $general_selector.find('.data-' + currency).addClass('active');\n if ($general_selector.find('.data.default-currency.active').length) {\n $general_selector.find('.warning').addClass('hidden');\n } else {\n $general_selector.find('.warning').removeClass('hidden');\n }\n});\n\n$(document).on('change', '.currency-selector select', function () {\n if (!$('.reserve-index-list, .quote-index-list').length) return; // No se puede poner fuera porque las reservas tardan en cargar\n\n let $el = $(this);\n let currency = $el.parents('.currency-form').find('.fk-select-label').text();\n let $agency_select = $('.currency-agency-selector select');\n\n currency = currency !== '€/$' ? currency : DEFAULT_CURRENCY;\n\n if (actual_currency !== currency && !$agency_select.find('option[value=' + currency + ']').length) {\n $agency_select.find('option[value=' + actual_currency + ']').remove();\n $agency_select.append($('