const n={MENU_OPEN:"menu:open"};class s extends HTMLElement{constructor(){super(...arguments),this.links=[],this.sections=[],this.menuOpen=!1,this.isSmoothScrolling=!1,this.currentActiveSection=""}connectedCallback(){this.links=this.getSlotElements("link"),this.links.forEach(t=>{const e=t.getAttribute("href");if(e.startsWith("#")){const i=document.getElementById(e.slice(1));i&&this.sections.push(i)}}),this.mobileMenuTrigger=this.getSlotElement("mobile-menu-trigger"),this.mobileMenuTriggerLabels=this.getSlotElements("mobile-menu-trigger-label"),this.mobileMenu=this.getSlotElement("mobile-menu"),this.init()}init(){this.mobileMenuTrigger.addEventListener("click",()=>this.toggleMenu()),window.addEventListener("click",t=>{const e=t.target;this.mobileMenu.contains(e)&&this.menuOpen&&this.toggleMenu(),!this.contains(e)&&this.menuOpen&&this.toggleMenu()}),window.addEventListener("scroll",()=>this.onScroll(),{passive:!0}),this.onScroll()}onScroll(){if(this.isSmoothScrolling)return;const t=this.getActiveSection()||"default";t!==this.currentActiveSection&&(this.currentActiveSection=t,this.mobileMenuTriggerLabels.forEach(e=>{e.classList.toggle("active",e.getAttribute("data-link")===t),e.inert=e.getAttribute("data-link")!==t}),this.links.forEach(e=>{e.classList.toggle("active",e.getAttribute("href")===t)}))}getActiveSection(){let t="";for(const e of this.sections)e.getBoundingClientRect().top<=window.innerHeight/2&&(t=e.id);return t?`#${t}`:""}toggleMenu(){this.menuOpen=!this.menuOpen,this.mobileMenuTrigger.setAttribute("aria-expanded",String(this.menuOpen)),this.mobileMenu.classList.toggle(n.MENU_OPEN,this.menuOpen),this.mobileMenu.inert=!this.menuOpen}getSlotElement(t){return this.querySelector(`[data-slot="${t}"]`)}getSlotElements(t){return Array.from(this.querySelectorAll(`[data-slot="${t}"]`))}}customElements.get("photos-jumplinks-mobile")||customElements.define("photos-jumplinks-mobile",s);