2 lines
6.0 KiB
JavaScript
2 lines
6.0 KiB
JavaScript
/*! rara-business 1.2.8 2024-08-09 5:16:51 PM */
|
|
var rarabusiness=rarabusiness||{};function rarabusinessDomReady(e){if("function"==typeof e)return"interactive"===document.readyState||"complete"===document.readyState?e():void document.addEventListener("DOMContentLoaded",e,!1)}function rarabusinessToggleAttribute(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)}function rarabusinessFindParents(e,n){var o=[];return function e(t){t=t.parentNode;t instanceof HTMLElement&&(t.matches(n)&&o.push(t),e(t))}(e),o}rarabusiness.createEvent=function(e){var t;return"function"==typeof window.Event?t=new Event(e):(t=document.createEvent("Event")).initEvent(e,!0,!1),t},rarabusiness.coverModals={init:function(){document.querySelector(".cover-modal")&&(this.onToggle(),this.closeOnEscape(),this.hideAndShowModals(),this.keepFocusInModal())},onToggle:function(){document.querySelectorAll(".cover-modal").forEach(function(e){e.addEventListener("toggled",function(e){var e=e.target,t=document.body;e.classList.contains("active")?t.classList.add("showing-modal"):(t.classList.remove("showing-modal"),t.classList.add("hiding-modal"),setTimeout(function(){t.classList.remove("hiding-modal")},500))})})},closeOnEscape:function(){document.addEventListener("keydown",function(e){27===e.keyCode&&(e.preventDefault(),document.querySelectorAll(".cover-modal.active").forEach(function(e){this.untoggleModal(e)}.bind(this)))}.bind(this))},hideAndShowModals:function(){var r=document,i=window,e=r.querySelectorAll(".cover-modal"),l=r.documentElement.style,c=r.querySelector("#wpadminbar");function u(e){var t,n=i.pageYOffset;return c?(t=n+c.getBoundingClientRect().height,e?-t:t):0===n?0:-n}function d(){return{"overflow-y":i.innerHeight>r.documentElement.getBoundingClientRect().height?"hidden":"scroll",position:"fixed",width:"100%",top:u(!0)+"px",left:0}}e.forEach(function(s){s.addEventListener("toggle-target-before-inactive",function(e){var t=d(),n=i.pageYOffset,o=Math.abs(u())-n+"px",a=i.matchMedia("(max-width: 600px)");e.target===s&&(Object.keys(t).forEach(function(e){l.setProperty(e,t[e])}),i.rarabusiness.scrolled=parseInt(t.top,10),c&&(r.body.style.setProperty("padding-top",o),a.matches)&&(n>=u()?s.style.setProperty("top",0):s.style.setProperty("top",u()-n+"px")),s.classList.add("show-modal"))}),s.addEventListener("toggle-target-after-inactive",function(e){e.target===s&&setTimeout(function(){var e=rarabusiness.toggles.clickedEl;s.classList.remove("show-modal"),Object.keys(d()).forEach(function(e){l.removeProperty(e)}),c&&(r.body.style.removeProperty("padding-top"),s.style.removeProperty("top")),!1!==e&&(e.focus(),e=!1),i.scrollTo(0,Math.abs(i.rarabusiness.scrolled+u())),i.rarabusiness.scrolled=0},500)})})},untoggleModal:function(e){var t,n=!1;e.dataset.modalTargetString&&(t=e.dataset.modalTargetString,n=document.querySelector('*[data-toggle-target="'+t+'"]')),n?n.click():e.classList.remove("active")},keepFocusInModal:function(){var l=document;l.addEventListener("keydown",function(e){var t,n,o,a,s,r,i=rarabusiness.toggles.clickedEl;i&&l.body.classList.contains("showing-modal")&&(i=i.dataset.toggleTarget,s="input, a, button",a=l.querySelector(i),t=a.querySelectorAll(s),t=Array.prototype.slice.call(t),".menu-modal"===i&&(n=(n=window.matchMedia("(min-width: 768px)").matches)?".expanded-menu":".mobile-menu",(t=t.filter(function(e){return null!==e.closest(n)&&null!==e.offsetParent})).unshift(l.querySelector(".close-nav-toggle")),o=l.querySelector(".menu-bottom > nav"))&&o.querySelectorAll(s).forEach(function(e){t.push(e)}),".main-menu-modal"===i&&(n=(n=window.matchMedia("(min-width: 1025px)").matches)?".expanded-menu":".mobile-menu",(t=t.filter(function(e){return null!==e.closest(n)&&null!==e.offsetParent})).unshift(l.querySelector(".close-main-nav-toggle")),o=l.querySelector(".menu-bottom > nav"))&&o.querySelectorAll(s).forEach(function(e){t.push(e)}),a=t[t.length-1],i=t[0],o=l.activeElement,s=9===e.keyCode,!(r=e.shiftKey)&&s&&a===o&&(e.preventDefault(),i.focus()),r)&&s&&i===o&&(e.preventDefault(),a.focus())})}},rarabusiness.modalMenu={init:function(){this.expandLevel()},expandLevel:function(){document.querySelectorAll(".modal-menu").forEach(function(e){e=e.querySelector(".current-menu-item");e&&rarabusinessFindParents(e,"li").forEach(function(e){e=e.querySelector(".submenu-toggle");e&&rarabusiness.toggles.performToggle(e,!0)})})}},rarabusiness.toggles={clickedEl:!1,init:function(){this.toggle()},performToggle:function(e,n){var o,a,s=this,r=document,i=e,l=i.dataset.toggleTarget,c="active";r.querySelectorAll(".show-modal").length||(s.clickedEl=r.activeElement),(o="next"===l?i.nextSibling:r.querySelector(l)).classList.contains(c)?o.dispatchEvent(rarabusiness.createEvent("toggle-target-before-active")):o.dispatchEvent(rarabusiness.createEvent("toggle-target-before-inactive")),a=i.dataset.classToToggle||c,e=0,o.classList.contains("cover-modal")&&(e=10),setTimeout(function(){var e=o.classList.contains("sub-menu")?i.closest(".menu-item").querySelector(".sub-menu"):o,t=i.dataset.toggleDuration;"slidetoggle"!==i.dataset.toggleType||n||"0"===t?e.classList.toggle(a):rarabusinessMenuToggle(e,t),("next"===l||o.classList.contains("sub-menu")?i:r.querySelector('*[data-toggle-target="'+l+'"]')).classList.toggle(c),rarabusinessToggleAttribute(i,"aria-expanded","true","false"),s.clickedEl&&-1!==i.getAttribute("class").indexOf("close-")&&rarabusinessToggleAttribute(s.clickedEl,"aria-expanded","true","false"),i.dataset.toggleBodyClass&&r.body.classList.toggle(i.dataset.toggleBodyClass),i.dataset.setFocus&&(e=r.querySelector(i.dataset.setFocus))&&(o.classList.contains(c)?e.focus():e.blur()),o.dispatchEvent(rarabusiness.createEvent("toggled")),o.classList.contains(c)?o.dispatchEvent(rarabusiness.createEvent("toggle-target-after-active")):o.dispatchEvent(rarabusiness.createEvent("toggle-target-after-inactive"))},e)},toggle:function(){var n=this;document.querySelectorAll("*[data-toggle-target]").forEach(function(t){t.addEventListener("click",function(e){e.preventDefault(),n.performToggle(t)})})}},rarabusinessDomReady(function(){rarabusiness.toggles.init(),rarabusiness.coverModals.init()}); |