PageSourceSearch

https://www.barcelo.com/etc.clientlibs/barcelo/clientlibs/clientlib-components/resources/24046.1150a5ce.js

js barcelo.com collected 2026-10-02 02:44:21 UTC 10,828 bytes, 2 lines download raw bytes

1"use strict";(globalThis.webpackChunkaem_maven_archetype||=[]).push([[24046,89745],{89745(e,t,s){s.r(t),s.d(t,{headerCommonProps:()=>n,megaMenuCommonProps:()=>i});let n={$container:null,classNameActiveBody:"activeMegamenu",classNameActive:"mod--active"},i={classNameMenuBtn:"c-header__switch-btn"}},24046(e,t,s){s.r(t);var n=s(89745);s.d(t,["default",0,{props:{classNameMenu:"c-megamenu",classNameMenuActive:"mod--active",classNameSubMenus:"c-megamenu__menu",classNameSubmenu:"menu-content-name-js",classNameMenuBtn:"c-header__switch-btn",classNameUnderlay:"c-header-underlay",classNameGoBack:"menu-content-go-back-js",classNameCallBtn:".c-megamenu__menu-call-btn",channelParam:"channel=app",classNameMenuItem:"c-megamenu__menu-main-item",classNameTabItem:"tab-JS",classUtilsMenuContainer:".c-megamenu__menu.menu-js",classUtilsTabItem:"c-megamenu__menu-utils-item",classUtilsTabItemAnchor:"c-megamenu__menu-utils-item-anchor",classAsideMenuContainer:"c-aside-menu",classAsideMenuItem:"c-aside-menu-user-item",classAsideMenuItemAnchor:"c-aside-menu-user-item-anchor",classFastbookingContainer:"c-fastbooking.fastbooking-JS",classNameBurgerButton:"c-header__switch-btn",isFastbookingInit:!1,isLoginInit:!1},init:function(){let e=document.getElementsByClassName(this.props.classNameMenu);if(!e||!e[0])return;this.props.$container=e[0],this.props.$containerUnderlay=this.props.$container.getElementsByClassName(this.props.classNameUnderlay)?.[0];let t=this.props.$container.getElementsByClassName(this.props.classNameSubMenus);if(this.props.isNewHeader=null!=document.querySelector("body.mod--new-header-active"),t)for(let e=0;e<t.length;e++)this.initItems(t[e]);if(this.initButtonMenu(e[0]),bcl.u.mobile.isMobile()){let e=this.props.$container.getElementsByClassName("cmp-image");bcl.u.forEach(e,function(e){bcl.u.addClass(e,"image-lazy")})}this.checkParamChannelInUrl(this.props.$container,this.props.channelParam),document.addEventListener("ribbon-closed",e=>{this.checkMenuStatus(e)}),this.initNavigation()},initItems:function(e){let t=e.getElementsByClassName(bcl.s.tabs.props.tabSelector);if(t)for(let s=0;s<t.length;s++)this.initItem(t[s],e)},initItem:function(e,t){let s=e?.dataset?.containertab;if(!s)return;let n=t.querySelector("."+s);n&&(this.addNameInSubmenu(n,e),this.buttonGoBack(n,e))},addNameInSubmenu:function(e,t){let s=e.getElementsByClassName(this.props.classNameSubmenu);s&&s[0]&&(s[0].innerText=t?.getAttribute("aria-label")||t?.innerText||"")},initButtonMenu:function(){let e=n.headerCommonProps.$container||document,t=e.getElementsByClassName(this.props.classNameMenuBtn)?.[0];t&&t.addEventListener("click",this.clickMenu.bind(this))},clickMenu:function(e){e.preventDefault(),bcl.u.containsClass(document.body,n.headerCommonProps.classNameActiveBody)?this.closeMenu(e):this.openMenu(e)},checkMenuStatus:function(){let e=document.querySelector("body > header"),t=0;if(e&&bcl.u.containsClass(document.body,n.headerCommonProps.classNameActiveBody)){let s=bcl.u.getOffset(e);t=this.props.isNewHeader&&bcl.u.mobile.isMobile()?48:60+(s?.top||0),bcl.u.forEach(e.querySelectorAll(".c-ribbon"),function(e){t+=e.offsetHeight}),this.props.$container&&!this.props.$container.dataset?.noTop&&(this.props.$container.style.top=t+"px")}},openMenu:function(e){let t=document.querySelector("body > header"),s=0;if(t){let e=bcl.u.getOffset(t);s=this.props.isNewHeader&&bcl.u.mobile.isMobile()?48:60+(e?.top||0),bcl.u.forEach(t.querySelectorAll(".c-ribbon"),function(e){s+=e.offsetHeight}),this.props.$container&&!this.props.$container.dataset?.noTop&&(this.props.$container.style.top=s+"px");let n=document.querySelectorAll(".c-popover.container-contents-JS");bcl.u.forEach(n,function(e){e.dataset?.noTop||(e.style.top=s+"px"),e.style.height=window.innerHeight-s+"px"})}bcl.u.addClass(document.body,n.headerCommonProps.classNameActiveBody),this.props.$containerUnderlay&&bcl.u.addClass(this.props.$containerUnderlay,n.headerCommonProps.classNameActive),e?.target&&bcl.u.addClass(e.target,n.headerCommonProps.classNameActive),this.props.$container&&bcl.u.addClass(this.props.$container,n.headerCommonProps.classNameActive)},closeMenu:function(e){document.body.style.height="",bcl.s.tabs.closeActive?.(),bcl.u.removeClass(document.body,n.headerCommonProps.classNameActiveBody),this.props.$containerUnderlay&&bcl.u.removeClass(this.props.$containerUnderlay,n.headerCommonProps.classNameActive),e?.target&&bcl.u.removeClass(e.target,n.headerCommonProps.classNameActive),this.props.$container&&bcl.u.removeClass(this.props.$container,n.headerCommonProps.classNameActive),window.dispatchEvent(new CustomEvent("after-click-footer"))},buttonGoBack:function(e,t){let s=e.getElementsByClassName(this.props.classNameGoBack);s&&s[0]&&(s[0].addEventListener("click",function(){bcl.s.tabs.closeActive?.(),window.dispatchEvent(new CustomEvent("after-click-footer"))}),s[0].addEventListener("keydown",(function(e){if(["Enter"," "].includes(e.ke
1y))if(e.preventDefault(),s[0].click(),t?.classList?.contains(this.props.classUtilsTabItemAnchor)){let e=t.closest("."+this.props.classUtilsTabItem);e?.focus()}else{let e=t?.closest("."+this.props.classNameMenuItem);e?.focus()}}).bind(this)))},resize:function(){bcl.u.removeClass(document.body,n.headerCommonProps.classNameActiveBody)},checkParamChannelInUrl:function(e,t){window.location.href.includes(t)&&e&&(e.querySelector(this.props.classNameCallBtn)?.classList?.remove("md:block"),e.querySelector("."+this.props.classNameSubMenus)?.classList?.add("hidden"))},initNavigation:function(){bcl.u.mobile.isMobile()&&this.initBurgerListeners(),this.initMenuItemListeners(),this.initUtilsMenuListeners(),this.initAsideMenuListeners()},initBurgerListeners:function(){let e=document.querySelector("."+this.props.classNameBurgerButton),t=document.querySelector("."+this.props.classAsideMenuItemAnchor),s=document.querySelector("."+this.props.classNameMenu),n=s?.classList?.contains(this.props.classNameMenuActive);e?.addEventListener("keydown",function(s){["Enter"," "].includes(s.key)&&(s.preventDefault(),e.click()),"Tab"!==s.key||n||t?.focus()}),t?.addEventListener("keydown",function(t){"Tab"===t.key&&t.shiftKey&&!n&&(t.preventDefault(),e?.focus())})},initMenuItemListeners:function(){let e=document.querySelector("."+this.props.classNameMenu),t=e?.querySelectorAll("."+this.props.classNameMenuItem);t?.forEach((s,n)=>{this.prepareMenuItemListeners(e,t,s,n)})},prepareMenuItemListeners:function(e,t,s,n){let i=bcl.u.mobile.isMobile(),o=s?.querySelector("."+this.props.classNameTabItem),a=this.getFocusableElements(e,o,".c-megamenu__submenu");if(!a||0===a.length)return;let c=!i&&a[0]?.classList?.contains(this.props.classNameGoBack)?a[1]:a[0];s.addEventListener("keydown",function(e){["Enter"," "].includes(e.key)&&(e.preventDefault(),i?o?.click():bcl.u.triggerEvent(o,"mouseover")),setTimeout(()=>{c?.focus()},200)}),c&&c.addEventListener("keydown",e=>{"Tab"===e.key&&e.shiftKey&&!i&&(e.preventDefault(),s.focus(),bcl.s.tabs.closeActive?.())});let l=a[a.length-1];l?.addEventListener("focusout",function(){n+1<t.length&&t[n+1]?.focus(),bcl.s.tabs.closeActive?.()})},initUtilsMenuListeners:function(){let e=document.querySelector(this.props.classUtilsMenuContainer),t=e?.querySelectorAll("."+this.props.classUtilsTabItem);t?.forEach(t=>{t.addEventListener("keydown",(function(s){if(["Enter"," "].includes(s.key)){s.preventDefault();let n=t.querySelector("."+this.props.classUtilsTabItemAnchor);n?.click();let i=this.getFocusableElements(e,n,".c-megamenu__submenu");i?.[0]?.focus()}}).bind(this))})},openLoginMenu:function(e,t){let s=document.querySelector("#page-overlay");s?.classList?.contains("is-active")&&s.classList.remove("is-active");let n=bcl.u.mobile.isMobile()?"click":t?.getAttribute("data-event");t&&bcl.u.triggerEvent(t,n||"mouseover"),this.handleLoginListeners(e,t)},initAsideMenuListeners:function(){let e=document.querySelector("."+this.props.classAsideMenuContainer),t=e?.querySelectorAll("."+this.props.classAsideMenuItem);t?.forEach(t=>{t.addEventListener("click",(function(s){if(bcl.u.mobile.isMobile()){let e=document.querySelector(".c-fastbooking-lite");if(e){let t=e.querySelector(".fb-lite-back-JS");if(t){let s=document.querySelector("body"),n=document.querySelector("main");if(e.classList.add("mod--open"),s.classList.add("mod--activeFastbookingLite"),e.classList.contains("mod--lite-mode")){let t=e.querySelector(".fb-lite-destinations-JS"),s=Array.from(e.querySelectorAll(".fb-lite-select-JS")),n=e.querySelector(".fb-lite-submit-JS");t&&s&&s.length&&n&&(t.removeAttribute("tabindex"),s.forEach(e=>e.setAttribute("tabindex","0")),n.removeAttribute("tabindex"))}e.classList.contains("mod--full-mode")&&n.classList.add("mod--fastbookingLite-open"),t.focu
1s()}}}else["Enter"," ","Spacebar"].includes(s.key)&&(s.preventDefault(),s.stopPropagation()),this.openLoginMenu(e,t)}).bind(this)),t.addEventListener("keydown",(function(s){if(["Enter"," "].includes(s.key)){s.preventDefault();let n=t.querySelector(".open-fastbooking-JS");if(n)n?.click(),this.handleFastbookingListeners(n);else{let s=t.classList?.contains("user-logged")||t.classList?.contains("noUser-logged");if(bcl.u.mobile.isMobile()&&!s){let e=t.querySelector("."+this.props.classAsideMenuItemAnchor);e?.click()}s&&this.openLoginMenu(e,t)}}}).bind(this))})},getFocusableElements:function(e,t,s){let n=e?.querySelectorAll(s);if(!n)return;let i=t?.dataset?.containertab,o=Array.from(n).find(e=>e?.classList?.contains(i));if(o)return o.classList?.remove("hidden"),o.closest(".container-contents-JS")?.classList?.remove("hidden"),bcl.ariaUtils.getFocusableElements(o)},handleFastbookingListeners:function(e){let t=document.querySelector("."+this.props.classFastbookingContainer),s=bcl.ariaUtils.getFocusableElements(t);if(!s)return;let n=bcl.u.mobile.isMobile()&&s[0]?.classList?.contains("add-flight-JS")?s[1]:s[0],i=bcl.u.mobile.isMobile()&&s[s.length-1]?.classList?.contains("c-fastbooking__links-custom")?2:1,o=s[s.length-i];n?.focus(),this.props.isFastbookingInit||(this.props.isFastbookingInit=!0,this.prepareFocusableItemsListeners(n,o,e))},handleLoginListeners:function(e,t){let s=this.getFocusableElements(e,t,".c-popover__content");if(!s)return;let n=t?.classList?.contains("user-logged");n&&s[0]?.focus();let i=n?t:t?.querySelector("button");this.props.isLoginInit||(this.props.isLoginInit=!0,this.prepareFocusableItemsListeners(s[0],s[s.length-1],i))},prepareFocusableItemsListeners:function(e,t,s){e&&t&&s&&(e.addEventListener("keydown",function(n){"Tab"===n.key&&n.shiftKey&&(n.preventDefault(),t?.focus()),["Enter"," "].includes(n.key)&&(n.preventDefault(),s?.focus(),e?.click())}),t.addEventListener("keydown",function(t){"Tab"!==t.key||t.shiftKey||(t.preventDefault(),e?.focus())}))}}])}}]);
2//# sourceMappingURL=/etc.clientlibs/barcelo/clientlibs/clientlib-components/resources/24046.1150a5ce.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.