/** * StickyButtons * A JavaScript class for creating customizable side menus. * * @version 4.4 * @license MIT License * @author Dmytro Lobov * @url https://wow-estore.com/item/sticky-buttons-pro/ */ "use strict";class StickyButtons{static initialize(){document.querySelectorAll(".sticky-buttons").forEach((t=>{new StickyButtons(t)}))}constructor(t){this.element=t,this.links=t.querySelectorAll("a, button"),this.init()}init(){this.mobileClick(),this.subMenu(),this.menuType(),this.counter()}mobileClick(){this._isMobile()&&this.element.classList.contains("mobile-rule")&&(this.links.forEach((t=>{t.addEventListener("click",(e=>{t.classList.contains("is-active")||(e.preventDefault(),e.stopImmediatePropagation(),this.links.forEach((t=>{t.classList.remove("is-active")})),t.classList.add("is-active"),clearTimeout(undefined),setTimeout((()=>{t.classList.remove("is-active"),t.blur()}),3e3))}))})),document.addEventListener("click",(t=>{this.element.contains(t.target)||this.links.forEach((t=>{t.classList.remove("is-active")}))})))}subMenu(){const t=this.element.querySelectorAll(".sb-has-sub");if(t.length<1)return;let e=this.element.classList.contains("sub-open-click");this.closeSubmenus(t),this.openSubmenu(t,e),document.addEventListener("click",(e=>{this.element.contains(e.target)||this.closeSubmenus(t)}))}menuType(){if(this.element.classList.contains("is-absolute")||this.element.classList.contains("is-static")){this.element.classList.add("is-hidden");const t=this.element.getAttribute("data-selector"),e=this.element.getAttribute("data-inserted"),i=document.querySelector(t);if(i){const t=window.getComputedStyle(i).position;this.element.classList.contains("is-absolute")&&"static"===t&&(i.style.position="relative"),"prepend"===e?i.insertBefore(this.element,i.firstChild):i.appendChild(this.element),this.element.classList.remove("is-hidden")}}}counter(){this.links.forEach((t=>{const e=t.querySelector(".sb-count");if(!e)return;const i=t.closest("li");if(!i.hasAttribute("data-item"))return;let s=!1;const n=i.getAttribute("data-item");localStorage.getItem(n)?t.hasAttribute("data-action")&&"reaction"===t.getAttribute("data-action")&&(s=!0,t.setAttribute("data-checked","true"),this._rections(s)):t.addEventListener("click",(i=>{if(localStorage.getItem(n))return;let a=parseInt(e.innerText)+1;fetch(sb_obj.url,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({action:"sticky_buttons_counter",nonce:sb_obj.nonce,item_data:n,count:a})}).then((t=>t.json())).then((e=>{if(e.success){t.querySelectorAll(".sb-count").forEach((t=>{t.innerText=e.data.count})),localStorage.setItem(n,"true"),t.hasAttribute("data-action")&&"reaction"===t.getAttribute("data-action")&&(s=!0,t.setAttribute("data-checked","true"),this._rections(s))}})).catch((t=>console.error(t)))}))}))}_rections(t=!1){!0===t&&this.links.forEach((t=>{t.hasAttribute("data-action")&&"reaction"===t.getAttribute("data-action")&&t.setAttribute("disabled","disabled")}))}closeSubmenus(t){t.forEach((t=>{t.classList.remove("is-active")}))}openSubmenu(t,e){this.links.forEach((i=>{(!0===e||this._isMobile())&&i.addEventListener("click",(e=>{if(this.closeSubmenus(t),i.classList.contains("sb-open-sub")){i.closest(".sb-has-sub").classList.add("is-active")}}))}))}_isMobile(){return/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=768||"ontouchstart"in window||navigator.maxTouchPoints>0}}document.addEventListener("DOMContentLoaded",(function(){StickyButtons.initialize()}));