UNPKG

@ussebastian/kitdigital

Version:

Kit Digital de la Universidad San Sebastián

3 lines (2 loc) 2.12 kB
/*! @ussebastian/kitdigital v0.21.0 | MIT (c) Asimov Consultores SpA - 2025 */ class s{constructor(s){this.mainMenu=s,this.navItems=this.mainMenu.querySelector(".uss-mainnav__menu"),this.buttonToggleNav=this.mainMenu.querySelector("[data-toggle-nav-mobile]"),this.navWrap=this.mainMenu.querySelector(".uss-mainnav__wrap"),this.iconOfButton=this.buttonToggleNav.querySelector("i"),this.itemsWithSubmenu=this.mainMenu.querySelectorAll("[data-subitem-ref]"),this.topbar=document.querySelector(".uss-topnav-wrapper").cloneNode(!0)}mount(){this.#s(),this.navItems.appendChild(this.topbar),this.buttonToggleNav&&this.buttonToggleNav.addEventListener("click",(s=>{s.preventDefault(),this.navItems.classList.contains("uss-mainnav__menu--open")?this.hideNavItems():this.showNavItems()})),this.itemsWithSubmenu.forEach((s=>{s.addEventListener("click",(e=>{e.preventDefault();const t=this.navItems.querySelector(`[data-subitem-target="${s.getAttribute("data-subitem-ref")}"]`);t.classList.contains("uss-mainnav__submenu--open")?(s.classList.remove("active"),t.classList.remove("uss-mainnav__submenu--open")):(this.closeAllSubmenus(),s.classList.add("active"),t.classList.add("uss-mainnav__submenu--open"))}))}))}closeAllSubmenus(){this.itemsWithSubmenu.forEach((s=>{s.classList.remove("active");this.navItems.querySelector(`[data-subitem-target="${s.getAttribute("data-subitem-ref")}"]`).classList.remove("uss-mainnav__submenu--open")}))}showNavItems(){this.closeAllSubmenus(),this.navItems.classList.add("uss-mainnav__menu--open"),this.navWrap.classList.add("uss-mainnav__wrap--open"),this.iconOfButton.classList.add("ri-close-line"),this.iconOfButton.classList.remove("ri-menu-line")}hideNavItems(){this.navItems.classList.remove("uss-mainnav__menu--open"),this.navWrap.classList.remove("uss-mainnav__wrap--open"),this.iconOfButton.classList.add("ri-menu-line"),this.iconOfButton.classList.remove("ri-close-line")}#s(){document.addEventListener("click",(s=>{this.mainMenu.contains(s.target)||this.hideNavItems()})),document.addEventListener("keydown",(s=>{"Escape"===s.key&&this.hideNavItems()}))}}export{s as NavbarMobile};