PageSourceSearch

https://www.keessmit.de/static/version1790152837/frontend/Keessmit/default/de_DE/js/menu.js

js keessmit.de collected 2026-09-26 06:31:11 UTC 4,252 bytes, 1 lines download raw bytes

1document.addEventListener("alpine:init",(()=>{Alpine.store("backdropActive",!1),Alpine.data("menu",(()=>({activeItem:0,menuOpen:!1,mobileMenuOpen:!1,activeMobileMenuTitle:[],prevItemId:[],activeSubItemId:{},subMenuOpen:!1,activeImageSrcDesktop:"",activeImageSrcMobile:"",interaction:null,openMenuButton:document.querySelector(".js-openmenubutton"),init(){this.$root.addEventListener("click",this.trackMenuInteraction.bind(this))},trackMenuInteraction(e){const t=e.target.closest("[data-menu-main]");if(!t||!this.$root.contains(t))return;const i=t.dataset.menuMain?.trim();i&&(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"menu_interacties",menu_main:i,menu_sub:t.dataset.menuSub?.trim()||void 0,menu_sub1:t.dataset.menuSub1?.trim()||void 0}))},openMobileMenu(){this.$nextTick((()=>{this.openMenuButton&&this.openMenuButton.setAttribute("aria-expanded","true"),this.mobileMenuOpen=!0,this.$store.backdropActive=!0,requestAnimationFrame((()=>{const e=this.$root.querySelector(".js-main-navigation__close");e&&e.focus()}))}))},closeMobileMenu(){this.openMenuButton&&(this.openMenuButton.setAttribute("aria-expanded","false"),requestAnimationFrame((()=>{this.openMenuButton.focus()}))),this.mobileMenuOpen=!1,this.resetMenuStates()},mobileMenuBack(){if(Object.keys(this.activeSubItemId).length>0){const e=Object.keys(this.activeSubItemId);delete this.activeSubItemId[e[e.length-1]]}else this.activeItem=0;if(this.activeMobileMenuTitle.pop(),this.prevItemId.pop(),0===this.prevItemId.length)return void requestAnimationFrame((()=>{document.querySelectorAll(".js-main-navigation__bar button, .js-main-navigation__bar a[href]")[0].focus()}));const e=this.$root.querySelector(`#${this.prevItemId[this.prevItemId.length-1]}`);this.setMenuImage(e),requestAnimationFrame((()=>{document.querySelector(".js-main-navigation__back-button").focus()}))},resizeMenu(){const e=this.$root.querySelector(".js-main-navigation__mobile-header"),t="none"!==window.getComputedStyle(e).display;t||!this.mobileMenuOpen?t&&this.menuOpen&&!this.mobileMenuOpen&&this.closeMenu():this.closeMobileMenu()},toggleMenu(e){this.menuOpen&&this.activeItem===e?this.closeMenu():this.openMenu(e)},openMenu(e){this.activeImageSrcDesktop="",this.activeImageSrcMobile="",this.$el.dataset.imageDesktop&&(this.activeImageSrcDesktop=this.$el.dataset.imageDesktop),this.$el.dataset.imageMobile&&(this.activeImageSrcMobile=this.$el.dataset.imageMobile),this.$nextTick((()=>{this.$store.backdropActive=!0,this.activeItem=e,this.menuOpen=!0,this.activeSubItemId={},this.subMenuOpen=!1,this.activeMobileMenuTitle.push(this.$el.querySelector(".js-main-navigation__nav-title").innerText),this.prevItemId.push(this.$el.id),window.scrollTo({top:0}),this.moveFocusToMenuItem(".js-main-navigation-mega-menu")}))},closeMenu(){this.mobileMenuOpen&&this.closeMobileMenu(),this.menuOpen&&this.resetMenuStates()},resetMenuStates(){this.activeItem=0,this.menuOpen=!1,this.activeSubItemId={},this.activeMobileMenuTitle=[],this.prevItemId=[],this.$store.backdropActive=!1},openSubMenu(e,t=1){this.setMenuImage(this.$el),this.$nextTick((()=>{this.activeSubItemId[t]=e,this.subMenuOpen=!0,this.activeMobileMenuTitle.push(this.$el.querySelector(".js-main-navigation__nav-title").innerText),this.prevItemId.push(this.$el.id),this.moveFocusToMenuItem(".js-main-navigation-sub-menu")}))},moveFocusToMenuItem(e="",t=this.$el.parentElement){if(!this.mobileMenuOpen)return;const i=t.querySelector(e);i&&requestAnimationFrame((()=>{i.querySelectorAll("button, a[href]")[0].focus()}))},setMenuImage(e){if(!e)return this.activeImageSrcDesktop="",void(this.activeImageSrcMobile="");const t=this.getFallbackImages("data-image-desktop",e,"imageDesktop"),i=this.getFallbackImages("data-image-mobile",e,"imageMobile");this.activeImageSrcDesktop=e.dataset.imageDesktop||t||"",this.activeImageSrcMobile=e.dataset.imageMobile||i||""},checkFocusOut(e){if("mousedown"===this.interaction||!this.menuOpen||this.mobileMenuOpen)return;const t=e.relatedTarget;t&&this.$root.contains(t)||this.closeMenu()},getFallbackImages(e="",t,i="imageDesktop"){let n=t.closest("li");for(;n;){const t=n.querySelector(`button[${e}]`),s=t?.dataset[i];if(s&&""!==s.trim())return s;n=n.parentElement?.closest("li")||null}return null}})))}
vendor: 3 bytes, line 1
1));

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.