kollapsminoriteten/wp-content/themes/kadence/assets/js/navigation-lite.min.js

1 line
9.4 KiB
JavaScript
Raw Normal View History

2025-08-27 08:44:30 +02:00
!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 n=[];return function e(o){var a=o.parentNode;a instanceof HTMLElement&&(a.matches(t)&&n.push(a),e(a))}(e),n},toggleAttribute:function(e,t,n,o){void 0===n&&(n=!0),void 0===o&&(o=!1),e.getAttribute(t)!==n?e.setAttribute(t,n):e.setAttribute(t,o)},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])},initEachNavToggleSubmenu:function(e){var t=e.querySelectorAll(".menu ul");if(t.length)for(let i=0;i<t.length;i++){var n=t[i].parentNode;if(n.querySelector(".dropdown-nav-toggle")){var o=n.querySelector(".nav-drop-title-wrap").firstChild.textContent.trim(),a=document.createElement("BUTTON");a.setAttribute("aria-label",o?kadenceConfig.screenReader.expandOf+" "+o:kadenceConfig.screenReader.expand),a.setAttribute("aria-expanded","false"),a.classList.add("dropdown-nav-special-toggle"),n.insertBefore(a,n.childNodes[1]),a.addEventListener("click",(function(e){e.preventDefault(),window.kadence.toggleSubMenu(e.target.parentNode)})),n.addEventListener("mouseleave",(function(e){window.kadence.toggleSubMenu(e.target,!1)})),n.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++)n!==t[o]&&window.kadence.toggleSubMenu(t[o],!1)})),t[i].addEventListener("keydown",(function(e){if(9===e.keyCode){var n="ul.toggle-show > li > a, ul.toggle-show > li > .dropdown-nav-special-toggle";t[i].parentNode.classList.contains("kadence-menu-mega-enabled")&&(n='a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"], [contenteditable]'),e.shiftKey?window.kadence.isfirstFocusableElement(t[i],document.activeElement,n)&&window.kadence.toggleSubMenu(t[i].parentNode,!1):window.kadence.islastFocusableElement(t[i],document.activeElement,n)&&window.kadence.toggleSubMenu(t[i].parentNode,!1)}27===e.keyCode&&(window.kadence.toggleSubMenu(t[i].parentNode,!1),t[i].parentNode.querySelector(".dropdown-nav-special-toggle").focus())})),t[i].parentNode.classList.add("menu-item--has-toggle")}}},toggleSubMenu:function(e,t){var n=e.querySelector(".dropdown-nav-special-toggle"),o=e.querySelector("ul");let a=e.classList.contains("menu-item--toggled-on");var i=e.querySelector(".nav-drop-title-wrap").firstChild.textContent.trim();if(void 0!==t&&"boolean"==typeof t&&(a=!t),n.setAttribute("aria-expanded",(!a).toString()),a){setTimeout((function(){e.classList.remove("menu-item--toggled-on"),o.classList.remove("toggle-show"),n.setAttribute("aria-label",i?kadenceConfig.screenReader.expandOf+" "+i:kadenceConfig.screenReader.expand)}),5);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"),o.classList.add("toggle-show"),n.setAttribute("aria-label",i?kadenceConfig.screenReader.collapseOf+" "+i:kadenceConfig.screenReader.collapse)}},isfirstFocusableElement:function(e,t,n){var o=e.querySelectorAll(n);return 0<o.length&&t===o[0]},islastFocusableElement:function(e,t,n){var o=e.querySelectorAll(n);return 0<o.length&&t===o[o.length-1]},toggleDrawer:function(e,t){t=void 0===t||t;var n=e,o=document.querySelector(n.dataset.toggleTarget),a=document,i=window.innerWidth-document.documentElement.clientWidth,r=n.dataset.toggleDuration?n.dataset.toggleDuration:250;