PageSourceSearch

https://buddyboss.com/wp-content/cache/perfmatters/buddyboss.com/m…3a31.mega-menu-header.min.js?ver=1788180078

js buddyboss.com collected 2026-10-02 02:20:01 UTC 3,376 bytes, 19 lines download raw bytes

1(function(){var header=document.querySelector('.bbn');if(!header||header.dataset.bbnInit==='1'){return}
2header.dataset.bbnInit='1';var bar=header.querySelector('.bbn-bar');var nav=header.querySelector('.bbn-nav');var items=[].slice.call(header.querySelectorAll('.bbn-item.bbn-has'));var mq=window.matchMedia('(max-width:980px)');var canHover=window.matchMedia('(hover: hover)').matches;var open=null;var scrim=document.createElement('div');scrim.className='bbn-scrim';header.parentNode.insertBefore(scrim,header.nextSibling);var burger=document.createElement('button');burger.type='button';burger.className='bbn-burger';burger.setAttribute('aria-label','Toggle menu');burger.setAttribute('aria-expanded','false');burger.innerHTML='<span></span>';if(bar){bar.appendChild(burger)}
3burger.addEventListener('click',function(){var on=header.classList.toggle('is-nav-open');burger.setAttribute('aria-expanded',on?'true':'false');if(!on){closeAll()}});function place(panel){panel.style.left='0px';var pad=16;var r=panel.getBoundingClientRect();var over=r.right-(window.innerWidth-pad);if(over>0){panel.style.left=(0-over)+'px'}
4var r2=panel.getBoundingClientRect();if(r2.left<pad){var cur=parseFloat(panel.style.left)||0;panel.style.left=(cur+(pad-r2.left))+'px'}}
5function closeAll(except){items.forEach(function(item){if(item===except){return}
6item.classList.remove('is-open');var t=item.querySelector('.bbn-top');if(t){t.setAttribute('aria-expanded','false')}});if(!except){open=null;scrim.classList.remove('is-open')}}
7function show(item){closeAll(item);item.classList.add('is-open');var t=item.querySelector('.bbn-top');if(t){t.setAttribute('aria-expanded','true')}
8var p=item.querySelector('.bbn-panel');if(p&&!mq.matches){place(p)}
9open=item;if(!mq.matches){scrim.classList.add('is-open')}}
10items.forEach(function(item,i){var trigger=item.querySelector('.bbn-top');var panel=item.querySelector('.bbn-panel');if(!trigger||!panel){return}
11if(!panel.id){panel.id='bbn-panel-'+i}
12trigger.setAttribute('role','button');trigger.setAttribute('tabindex','0');trigger.setAttribute('aria-haspopup','true');trigger.setAttribute('aria-expanded','false');trigger.setAttribute('aria-controls',panel.id);function toggle(e){e.preventDefault();if(item.classList.contains('is-open')){closeAll()}else{show(item)}}
13trigger.addEventListener('click',toggle);trigger.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){toggle(e)}});if(canHover){item.addEventListener('mouseenter',function(){if(!mq.matches){show(item)}});item.addEventListener('mouseleave',function(){if(!mq.matches){closeAll()}})}});function outside(e){if(!open){return}
14if(e.target.closest&&e.target.closest('.bbn')){return}
15closeAll()}
16document.addEventListener('click',outside,!0);document.addEventListener('focusin',outside);scrim.addEventListener('click',closeAll);document.addEventListener('keydown',function(e){if(e.key!=='Escape'){return}
17var was=open;closeAll();header.classList.remove('is-nav-open');burger.setAttribute('aria-expanded','false');if(was){var t=was.querySelector('.bbn-top');if(t){t.focus()}}});mq.addEventListener('change',function(){closeAll();header.classList.remove('is-nav-open');burger.setAttribute('aria-expanded','false')});window.addEventListener('resize',function(){if(!open){return}
18if(mq.matches){closeAll();return}
19var p=open.querySelector('.bbn-panel');if(p){place(p)}})})()

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.