1(function(){ 2const smButton=document.getElementById('mmenu-btn'); 3const smMenu=document.getElementById('mobile-navigation'); 4if(!smMenu){ 5return; 6} 7const smOpen=smMenu.querySelector('.mopen'); 8const smClose=smMenu.querySelector('.mclose'); 9smClose.style.display='none'; 10smButton.addEventListener('click', function(){ 11smMenu.classList.toggle('menu-active'); 12if(smButton.getAttribute('aria-expanded')==='true'){ 13smButton.setAttribute('aria-expanded', 'false'); 14smClose.style.display='none'; 15smOpen.style.display='block'; 16}else{ 17smButton.setAttribute('aria-expanded','true'); 18smClose.style.display='block'; 19smOpen.style.display='none'; 20}}); 21document.addEventListener('click',function(e){ 22const isInsideMenu=smMenu.contains(e.target); 23if(! isInsideMenu){ 24smMenu.classList.remove('menu-active'); 25smButton.setAttribute('aria-expanded','false'); 26smClose.style.display='none'; 27smOpen.style.display='block'; 28}}) 29const linkHasSub=smMenu.querySelectorAll('.menu-item-has-children > .sub-menu, .page_item_has_children > .sub-menu'); 30for (const child of linkHasSub){ 31var icon=document.createElement('i'); 32icon.className='fas fa-chevron-down'; 33child.parentNode.insertBefore(icon, child); 34} 35const subMenuIcon=smMenu.querySelectorAll('.menu-item-has-children > i , .page_item_has_children > i'); 36for (const iconset of subMenuIcon){ 37iconset.setAttribute('tabindex','0'); 38} 39const linksWithChildren=smMenu.querySelectorAll('.menu-item-has-children > a, .page_item_has_children > a'); 40for(const link of subMenuIcon){ 41link.addEventListener('click', toggleClick, true); 42link.addEventListener('focus', toggleFocus, true); 43} 44function toggleFocus(e){ 45if(! this.parentNode.classList.contains('focus')){ 46this.parentNode.classList.add('focus'); 47this.parentNode.classList.remove('clicked'); 48}} 49function toggleblur(e){ 50const firstLiA=smMenu.querySelctorAll('#wsm-menu >li a'); 51const firstLiaBlur=firstLiA.contains(e.target); 52console.log(firstLiA); 53if(firstLiaBlur){ 54this.parentNode.classList.remove('focus'); 55}else{ 56this.parentNode.classList.add('focus'); 57}} 58function toggleClick(e){ 59if(this.parentNode.classList.contains('clicked')){ 60this.parentNode.classList.remove('clicked'); 61}else{ 62this.parentNode.classList.add('clicked'); 63this.parentNode.classList.remove('focus'); 64}} 65focusableInNav=smMenu.querySelectorAll('button, [href], [tabindex]:not([tabindex="-1"])'); 66let firstFocusElement=focusableInNav[0]; 67let lestFocusElement=focusableInNav[focusableInNav.length - 1]; 68firstFocusElement.addEventListener('keydown', moveFocusToBottom, true); 69lestFocusElement.addEventListener('keydown', moveFocusToTop, true); 70function moveFocusToBottom(e){ 71if(e.key==="Tab"&&e.shiftKey){ 72e.preventDefault(); 73lestFocusElement.focus() 74}} 75function moveFocusToTop(e){ 76if(e.key==="Tab"&&!e.shiftKey){ 77e.preventDefault(); 78firstFocusElement.focus(); 79}} 80}());
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.