PluginProbe
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder / 2.14.0
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder v2.14.0
2.14.0 2.13.0 2.13.1 2.12.0 2.11.1 2.11.0 2.10.0 2.9.0 2.7.4 2.7.5 2.7.6 2.7.7 2.8.0 2.8.1 2.9.1 trunk 1.0 1.0-beta1 1.0-beta2 1.0-beta3 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 All 81 releases
← All changes | assets/build/blocks/menu/view.js +5 -0 2.7.7 → 2.14.0 View file →
@@ -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()})})})();