1(function () { 2 let previousWidth = window.innerWidth; 3 const isHomePage = window.location.pathname === '/' || window.location.pathname === '' || window.location.pathname === '/index.html'; 4 5 function closeMobileMenu() { 6 const header = document.getElementById('header'); 7 const navItems = document.getElementById('navItems'); 8 const icon = document.getElementById('openCloseIcon'); 9 10 if (header) header.classList.remove('mobile-menu-open'); 11 if (navItems) { 12 navItems.classList.remove('menu-open'); 13 navItems.setAttribute('aria-hidden', 'true'); 14 } 15 if (icon) icon.src = '/front/images/ic_twotone-menu.svg'; 16 document.body.style.overflow = ''; 17 } 18 19 function openMobileMenu() { 20 const header = document.getElementById('header'); 21 const navItems = document.getElementById('navItems'); 22 const icon = document.getElementById('openCloseIcon'); 23 24 if (header) header.classList.add('mobile-menu-open'); 25 if (navItems) { 26 navItems.classList.add('menu-open'); 27 navItems.setAttribute('aria-hidden', 'false'); 28 } 29 if (icon) icon.src = '/front/icons/material-symbols_close.svg'; 30 document.body.style.overflow = 'hidden'; 31 } 32 33 function expandCollapseNavbar() { 34 const navItems = document.getElementById('navItems'); 35 if (!navItems) return; 36 37 if (navItems.classList.contains('menu-open')) { 38 closeMobileMenu(); 39 } else { 40 openMobileMenu(); 41 } 42 } 43 44 function handleResize() { 45 const currentWidth = window.innerWidth; 46 const header = document.getElementById('header'); 47 if (!header) return; 48 49 if (previousWidth !== currentWidth) { 50 previousWidth = currentWidth; 51 header.classList.add(isHomePage ? 'header-collapsed' : 'header-filter-collapsed'); 52 header.classList.remove('header-expanded'); 53 closeMobileMenu(); 54 } 55 } 56 57 window.closeMobileMenu = closeMobileMenu; 58 window.openMobileMenu = openMobileMenu; 59 window.expandCollapseNavbar = expandCollapseNavbar; 60 61 window.addEventListener('resize', handleResize); 62 63 document.addEventListener('click', function (event) { 64 const toggle = event.target.closest('[data-mobile-menu-toggle]'); 65 if (!toggle) return; 66 67 event.preventDefault(); 68 expandCollapseNavbar(); 69 }); 70})();
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.