1 line
18 KiB
JavaScript
1 line
18 KiB
JavaScript
|
!function(){"use strict";window.kadence={initOutlineToggle:function(){document.body.addEventListener("keydown",(function(){document.body.classList.remove("hide-focus-outline")})),document.body.addEventListener("mousedown",(function(){document.body.classList.add("hide-focus-outline")}))},getOffset:function(e){if(e instanceof HTMLElement){var t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}}return{top:null,left:null}},findParents:function(e,t){var o=[];return function e(n){var i=n.parentNode;i instanceof HTMLElement&&(i.matches(t)&&o.push(i),e(i))}(e),o},toggleAttribute:function(e,t,o,n){void 0===o&&(o=!0),void 0===n&&(n=!1),e.getAttribute(t)!==o?e.setAttribute(t,o):e.setAttribute(t,n)},initNavToggleSubmenus:function(){var e=document.querySelectorAll(".nav--toggle-sub");if(e.length)for(let t=0;t<e.length;t++)window.kadence.initEachNavToggleSubmenu(e[t]),window.kadence.initEachNavToggleSubmenuInside(e[t])},initEachNavToggleSubmenu:function(e){var t=e.querySelectorAll(".menu ul");if(t.length)for(let a=0;a<t.length;a++){var o=t[a].parentNode;if(o.querySelector(".dropdown-nav-toggle")){var n=o.querySelector(".nav-drop-title-wrap").firstChild.textContent.trim(),i=document.createElement("BUTTON");i.setAttribute("aria-label",n?kadenceConfig.screenReader.expandOf+" "+n:kadenceConfig.screenReader.expand),i.classList.add("dropdown-nav-special-toggle"),o.insertBefore(i,o.childNodes[1]),i.addEventListener("click",(function(e){e.preventDefault(),window.kadence.toggleSubMenu(e.target.closest("li"))})),o.addEventListener("mouseleave",(function(e){window.kadence.toggleSubMenu(e.target,!1)})),o.querySelector("a").addEventListener("focus",(function(e){var t=e.target.parentNode.parentNode.querySelectorAll("li.menu-item--toggled-on");for(let o=0;o<t.length;o++)window.kadence.toggleSubMenu(t[o],!1)})),t[a].addEventListener("keydown",(function(e){var o="ul.toggle-show > li > a, ul.toggle-show > li > .dropdown-nav-special-toggle";9===e.keyCode&&(e.shiftKey?window.kadence.isfirstFocusableElement(t[a],document.activeElement,o)&&window.kadence.toggleSubMenu(t[a].parentNode,!1):window.kadence.islastFocusableElement(t[a],document.activeElement,o)&&window.kadence.toggleSubMenu(t[a].parentNode,!1)),27===e.keyCode&&window.kadence.toggleSubMenu(t[a].parentNode,!1)})),t[a].parentNode.classList.add("menu-item--has-toggle")}}},initEachNavToggleSubmenuInside:function(e){var t=e.querySelectorAll(".menu-item-has-children");if(t.length)for(let o=0;o<t.length;o++)t[o].addEventListener("mouseenter",(function(e){if(t[o].querySelector("ul.sub-menu")){var n=t[o].querySelector("ul.sub-menu");window.kadence.getOffset(n).left+n.offsetWidth<=window.innerWidth||n.classList.add("sub-menu-edge")}}))},toggleSubMenu:function(e,t){var o=e.querySelector(".dropdown-nav-special-toggle"),n=e.querySelector("ul");let i=e.classList.contains("menu-item--toggled-on");var a=e.querySelector(".nav-drop-title-wrap").firstChild.textContent.trim();if(void 0!==t&&"boolean"==typeof t&&(i=!t),o.setAttribute("aria-expanded",(!i).toString()),i){e.classList.remove("menu-item--toggled-on"),n.classList.remove("toggle-show"),o.setAttribute("aria-label",a?kadenceConfig.screenReader.expandOf+" "+a:kadenceConfig.screenReader.expand);var r=e.querySelectorAll(".menu-item--toggled-on");for(let e=0;e<r.length;e++)window.kadence.toggleSubMenu(r[e],!1)}else{var d=e.parentNode.querySelectorAll("li.menu-item--toggled-on");for(let e=0;e<d.length;e++)window.kadence.toggleSubMenu(d[e],!1);e.classList.add("menu-item--toggled-on"),n.classList.add("toggle-show"),o.setAttribute("aria-label",a?kadenceConfig.screenReader.collapseOf+" "+a:kadenceConfig.screenReader.collapse)}},isfirstFocusableElement:function(e,t,o){var n=e.querySelectorAll(o);return 0<n.length&&t===n[0]},islastFocusableElement:function(e,t,o){var n=e.querySelectorAll(o);return 0<n.length&&t===n[n.length-1]},toggleDrawer:function(e,t){t=void 0===t||t;var o=e,n=document.querySelector(o.dataset.toggleTarget);if(n){var i=window.innerWidth-document.documentElement.clientWidth,a=o.dataset.toggleDuration?o.datas
|