(function (){
'use strict';
if(window.__adnMenuFallbackLoaded) return;
window.__adnMenuFallbackLoaded=true;
var fallbackArmedOpenClose=false;
var fallbackActuallyTriggered=false;
var ARM_DELAY_MS=600;
function $(sel, root){
return (root||document).querySelector(sel);
}
function $$(sel, root){
return Array.prototype.slice.call((root||document).querySelectorAll(sel));
}
function getContainer(){
return $('.wp-block-navigation__responsive-container');
}
function getDialog(){
return $('.wp-block-navigation__responsive-dialog');
}
function openMenu(){
var c=getContainer();
if(!c) return;
c.classList.add('is-menu-open');
c.classList.add('has-modal-open');
document.documentElement.classList.add('has-modal-open');
var d=getDialog();
if(d){
if(!d.getAttribute('aria-modal')) d.setAttribute('aria-modal', 'true');
if(!d.getAttribute('role')) d.setAttribute('role', 'dialog');
}}
function closeMenu(){
var c=getContainer();
if(!c) return;
c.classList.remove('is-menu-open');
c.classList.remove('has-modal-open');
document.documentElement.classList.remove('has-modal-open');
var d=getDialog();
if(d){
d.setAttribute('aria-modal', 'false');
}}
function armOpenCloseFallback(){
if(fallbackArmedOpenClose) return;
fallbackArmedOpenClose=true;
var openBtn=$('.wp-block-navigation__responsive-container-open');
var container=getContainer();
if(openBtn){
openBtn.addEventListener('click', function (e){
fallbackActuallyTriggered=true;
openMenu();
}, false);
openBtn.addEventListener('touchend', function (e){
fallbackActuallyTriggered=true;
openMenu();
}, false);
}
$$('.wp-block-navigation__responsive-container-close').forEach(function (btn){
btn.addEventListener('click', function (e){
fallbackActuallyTriggered=true;
closeMenu();
}, false);
});
if(container){
container.addEventListener('click', function (e){
if(e.target===container){
fallbackActuallyTriggered=true;
closeMenu();
}}, false);
}
document.addEventListener('keydown', function (e){
if((e.key==='Escape'||e.keyCode===27)&&container&&container.classList.contains('is-menu-open')){
closeMenu();
}});
$$('.wp-block-navigation__responsive-container a').forEach(function (link){
link.addEventListener('click', function (){
setTimeout(closeMenu, 80);
});
});
}
function armSubmenuFallback(){
$$('.wp-block-navigation__responsive-container .wp-block-navigation-submenu__toggle').forEach(function (toggle){
toggle.addEventListener('click', function (e){
var beforeExpanded=toggle.getAttribute('aria-expanded')==='true';
setTimeout(function (){
var afterExpanded=toggle.getAttribute('aria-expanded')==='true';
var sub=toggle.nextElementSibling;
while (sub&&!sub.classList.contains('wp-block-navigation__submenu-container')){
sub=sub.nextElementSibling;
}
var subVisuallyOpen=sub ? sub.getBoundingClientRect().height > 0:false;
var expectedOpen = !beforeExpanded;
if(subVisuallyOpen!==expectedOpen&&afterExpanded===beforeExpanded){
toggle.setAttribute('aria-expanded', expectedOpen ? 'true':'false');
if(window.console&&console.info){
console.info('[ADN] Submenu fallback fired (Interactivity did not toggle after 700ms).');
}}
}, 700);
}, false);
});
}
function armSubmenuAntiFlicker(){
if(!(window.matchMedia&&window.matchMedia('(max-width: 781px)').matches)){
return;
}
var lastTime=0;
var lastToggle=null;
document.addEventListener('click', function (e){
var toggle=e.target&&e.target.closest
? e.target.closest('.wp-block-navigation__responsive-container .wp-block-navigation-submenu__toggle')
: null;
if(!toggle){
return;
}
var now=Date.now();
if(toggle===lastToggle&&(now - lastTime) < 400){
e.preventDefault();
e.stopImmediatePropagation();
return;
}
lastTime=now;
lastToggle=toggle;
}, true);
}
function init(){
var openBtn=$('.wp-block-navigation__responsive-container-open');
var container=getContainer();
if(!openBtn||!container) return;
armOpenCloseFallback();
armSubmenuFallback();
armSubmenuAntiFlicker();
setTimeout(function (){
if(fallbackActuallyTriggered&&window.console&&console.info){
console.info('[ADN] Menu fallback actively handled an event.');
}}, ARM_DELAY_MS);
}
if(document.readyState==='loading'){
document.addEventListener('DOMContentLoaded', init);
}else{
init();
}})();