@ussebastian/kitdigital
Version:
Kit Digital de la Universidad San Sebastián
4 lines (3 loc) • 1.99 kB
JavaScript
/*! @ussebastian/kitdigital v0.3.7 | MIT (c) Asimov Consultores SpA - 2023 */
class e{constructor(e){this.mainMenu=e,this.navItems=this.mainMenu.querySelector(".uss-mainnav__menu"),this.buttonToggleNav=this.mainMenu.querySelector("[data-toggle-nav-mobile]"),this.iconOfButton=this.buttonToggleNav.querySelector("i"),this.itemsWithSubmenu=this.mainMenu.querySelectorAll("[data-subitem-ref]"),this.topbar=document.querySelector(".uss-topnav-wrapper").cloneNode(!0)}init(){this.#e(),this.navItems.appendChild(this.topbar),this.buttonToggleNav&&this.buttonToggleNav.addEventListener("click",(e=>{e.preventDefault(),this.navItems.classList.contains("uss-mainnav__menu--open")?this.hideNavItems():this.showNavItems()})),this.itemsWithSubmenu.forEach((e=>{e.addEventListener("click",(t=>{t.preventDefault();const s=this.navItems.querySelector(`[data-subitem-target="${e.getAttribute("data-subitem-ref")}"]`);s.classList.contains("uss-mainnav__submenu--open")?(e.classList.remove("active"),s.classList.remove("uss-mainnav__submenu--open")):(this.closeAllSubmenus(),e.classList.add("active"),s.classList.add("uss-mainnav__submenu--open"))}))}))}closeAllSubmenus(){this.itemsWithSubmenu.forEach((e=>{e.classList.remove("active");this.navItems.querySelector(`[data-subitem-target="${e.getAttribute("data-subitem-ref")}"]`).classList.remove("uss-mainnav__submenu--open")}))}showNavItems(){this.closeAllSubmenus(),this.navItems.classList.add("uss-mainnav__menu--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.iconOfButton.classList.add("ri-menu-line"),this.iconOfButton.classList.remove("ri-close-line")}#e(){document.addEventListener("click",(e=>{this.mainMenu.contains(e.target)||this.hideNavItems()})),document.addEventListener("keydown",(e=>{"Escape"===e.key&&this.hideNavItems()}))}}export{e as default};
//# sourceMappingURL=ComponentMainNavMobile.js.map