| @@ -1,0 +1,5 @@ | ||
| 1 | +(()=>{"use strict";const e=class{constructor(e,t=!1){this.element=e;const s=e?.getAttribute("data-menu-device");this.menuDevice=s,this.mobileMenuPosition=e?.getAttribute("data-mobile-menu-position")||"below-header",this.menu=e?.querySelector(`.ablocks-menu-${s}`),this.markCurrentMenuItems(t),this.newMenu=this.menu?.cloneNode(!0),this.mainMenu=this.newMenu?.querySelector(".ablocks-main-menu"),this.initMenuTriggers(t),this.initMenuItems(t),this.initDesktopClickTrigger(t),this.editorDiv=document?.querySelector(".interface-navigable-region.interface-interface-skeleton__content"),this.menuLists=this.element.querySelectorAll(".ablocks-block--menu-item")}markCurrentMenuItems(e){if(!e||!this.element)return;const t=window.location,s=e=>e.replace(/\/+$/,"");this.element.querySelectorAll(".ablocks-block--menu-item").forEach(e=>{const i=Array.from(e.children).find(e=>e.classList?.contains("ablocks-menu-item__link")),n=i?.getAttribute("href")?.trim() | |
| 2 | +;n&&!n.startsWith("#")&&/^https?:$/.test(i.protocol)&&(i.origin!==t.origin||s(i.pathname)!==s(t.pathname)||i.search!==t.search||i.hash&&i.hash!==t.hash||e.classList.add("ablocks-block--menu-item-active"))})}initMenuTriggers(e){const t=this.element?.querySelector(`.ablocks-menu-${this.menuDevice}__trigger`);this.toggleButton=t,t?.addEventListener("click",()=>this.toggleMenu(e))}initMenuItems(e){if(!e||!this.mainMenu)return;const t=this.mainMenu?.querySelectorAll(".ablocks-menu-item");t.forEach(e=>{e?.addEventListener("click",t=>{t.stopPropagation(),this.toggleMenuItem(e,t)})})}toggleMenuItem(e,t){t.target.closest(".ablocks-menu-child-mega")||e.classList.toggle("ablocks-sub-menu--active")}toggleMenu=e=>{const t=this.newMenu;if(e||this.menu.classList.toggle(`ablocks-menu-${this.menuDevice}--active`),t.style.position="absolute","overlay-header"===this.mobileMenuPosition){const e=this.toggleButton.getBoundingClientRect();t.style.top=`${e.bottom+window.scrollY}px`, | |
| 3 | +t.style.right=window.innerWidth-e.right+"px"}else{const e=(this.element?.parentElement||this.toggleButton).getBoundingClientRect();t.style.top=`${e.bottom+window.scrollY}px`}t.classList.add("ablocks-menu--outside"),t?.classList.toggle(`ablocks-menu-${this.menuDevice}--active`),e&&document.body.appendChild(t)};toggleSubMenu(e){e.classList.toggle("ablocks-menu-child-sub--active")}toggleMegaMenu(e,t){t.target.closest(".ablocks-menu-child-mega--active")||e.classList.toggle("ablocks-menu-child-mega--active")}handleListClick(e){const t=e.target.closest(".ablocks-block--menu-item");t&&(this.menuLists.forEach(e=>e.classList.remove("ablocks-block--menu-item-active")),t.classList.add("ablocks-block--menu-item-active"))}init(){this.menuLists.forEach(e=>{e.addEventListener("click",e=>{this.handleListClick(e)})})}initDesktopClickTrigger(e){if(!e||"click"!==this.element?.getAttribute("data-submenu-trigger"))return;const t=this.element;this.clickItems=[], | |
| 4 | +t.querySelectorAll(".ablocks-menu-item").forEach(e=>{if(!Array.from(e.children).some(e=>e.classList&&(e.classList.contains("ablocks-menu-child-sub")||e.classList.contains("ablocks-menu-child-mega"))))return;const t=Array.from(e.querySelectorAll(".ablocks-menu-item__link, a")).find(t=>t.closest(".ablocks-menu-item")===e);if(!t)return;this.clickItems.push(e),t.setAttribute("aria-haspopup","true"),t.setAttribute("aria-expanded","false");const s=s=>{s.preventDefault(),s.stopPropagation();const i=!e.classList.contains("ablocks-submenu-open");this.closeSiblingSubmenus(e),e.classList.toggle("ablocks-submenu-open",i),t.setAttribute("aria-expanded",String(i))};t.addEventListener("click",s);const i=Array.from(e.children).find(e=>e.classList&&e.classList.contains("ablocks-menu-item__dropdown-icon"));i?.addEventListener("click",s)}),this.clickItems.length&&(document.addEventListener("click",e=>{t.contains(e.target)||this.closeAllSubmenus()}),t.addEventListener("keydown",e=>{ | |
| 5 | +"Escape"===e.key&&this.closeAllSubmenus()}))}closeSubmenu(e){e.classList.remove("ablocks-submenu-open");const t=Array.from(e.querySelectorAll(".ablocks-menu-item__link, a")).find(t=>t.closest(".ablocks-menu-item")===e);t?.setAttribute("aria-expanded","false")}closeSiblingSubmenus(e){const t=e.parentElement;t&&Array.from(t.children).forEach(t=>{t!==e&&t.classList?.contains("ablocks-submenu-open")&&this.closeSubmenu(t)})}closeAllSubmenus(){(this.clickItems||[]).forEach(e=>this.closeSubmenu(e))}};document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(".ablocks-block--menu").forEach(t=>{new e(t,!0).init()})})})(); | |