1document.addEventListener('DOMContentLoaded',function(){const toggleBtn=document.querySelector('.asm-toggle');const sidebar=document.getElementById('asm-sidebar');const closeBtn=sidebar?.querySelector('.asm-close');const searchBtn=document.querySelector('.search-btn');if(toggleBtn&&sidebar){function openSidebar(){sidebar.setAttribute('aria-hidden','false');sidebar.removeAttribute('inert');toggleBtn.setAttribute('aria-expanded','true');sidebar.classList.add('open');const firstLink=sidebar.querySelector('a');if(firstLink)firstLink.focus()} 2function closeSidebar(){sidebar.setAttribute('aria-hidden','true');toggleBtn.setAttribute('aria-expanded','false');sidebar.setAttribute('inert','');sidebar.classList.remove('open')} 3function focusSearcbar(){const searchField=document.getElementById('custom-search-input');if(searchField){searchField.focus()}} 4toggleBtn.addEventListener('click',()=>{const expanded=toggleBtn.getAttribute('aria-expanded')==='true';expanded?closeSidebar():openSidebar()});searchBtn.addEventListener('click',()=>{const expanded=toggleBtn.getAttribute('aria-expanded')==='true';if(expanded){focusSearcbar()}else{openSidebar();focusSearcbar()}});closeBtn?.addEventListener('click',closeSidebar);document.addEventListener('keydown',(e)=>{if(e.key==='Escape'){closeSidebar()}})} 5const submenuToggles=document.querySelectorAll('.asm-menu .toggle-submenu');submenuToggles.forEach(function(toggle){toggle.addEventListener('click',function(e){e.preventDefault();const parentLi=this.closest('li');const submenu=parentLi?.querySelector('.sub-menu');if(!submenu)return;const isOpen=submenu.classList.contains('open');if(isOpen){submenu.style.height=submenu.scrollHeight+'px';requestAnimationFrame(()=>{submenu.style.height='0px'});submenu.classList.remove('open');parentLi?.classList.remove('submenu-open');this.setAttribute('aria-expanded','false')}else{submenu.style.height='0px';submenu.classList.add('open');parentLi?.classList.add('submenu-open');this.setAttribute('aria-expanded','true');requestAnimationFrame(()=>{submenu.style.height=submenu.scrollHeight+'px'})} 6submenu.addEventListener('transitionend',function handler(){if(submenu.classList.contains('open')){submenu.style.height='auto'}else{submenu.style.height=''} 7submenu.removeEventListener('transitionend',handler)})})})})
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.