/** * Custom JS for theme elements */ /** * Wocommerce active class for category list */ let elevateBizurl = window.location.href; const elevateBizcatLink = document.querySelectorAll( ".wc-block-product-categories-list li a" ); elevateBizcatLink.forEach((item) => { if (item.href === elevateBizurl) { item.classList.add("active"); } }); /* Add class in body when search clicked */ let elevateBizsearchBtn = document.querySelector(".search-controller svg.search"); if (elevateBizsearchBtn !== null) { elevateBizsearchBtn.addEventListener("click", function (e) { document.body.classList.remove("open-social"); document.body.classList.add("open-search"); document.body.addEventListener("click", function () { document.body.classList.remove("open-search"); }); let elevateBizsearchContainer = document.querySelector(".search-container"); elevateBizsearchContainer.addEventListener("click", function (e) { e.stopPropagation(); }); var elevateBizsearchInput = document.querySelector(".wp-block-search__input"); window.setTimeout(() => elevateBizsearchInput.focus(), 0); }); } var elevateBizsearchBtnClose = document.querySelector( ".search-controller svg.cross" ); if (elevateBizsearchBtnClose !== null) { elevateBizsearchBtnClose.addEventListener("click", function (e) { document.body.classList.remove("open-search"); }); } /* Add class in body when social clicked */ let elevateBizsocialBtn = document.querySelector(".social-controller svg.social"); if (elevateBizsocialBtn !== null) { elevateBizsocialBtn.addEventListener("click", function (e) { document.body.classList.remove("open-search"); document.body.classList.add("open-social"); document.body.addEventListener("click", function () { document.body.classList.remove("open-social"); }); let elevateBizsocialContainer = document.querySelector(".social-container"); elevateBizsocialContainer.addEventListener("click", function (e) { e.stopPropagation(); }); var elevateBizsocialInput = document.querySelector(".wp-block-social__input"); window.setTimeout(() => elevateBizsocialInput.focus(), 0); }); } var elevateBizsocialBtnClose = document.querySelector( ".social-controller svg.cross" ); if (elevateBizsocialBtnClose !== null) { elevateBizsocialBtnClose.addEventListener("click", function (e) { document.body.classList.remove("open-social"); }); } /* Add blinker on input field when active */ let elevateBizblinkerField = document.querySelector(".social-controller svg.search"); if (elevateBizblinkerField !== null) { elevateBizblinkerField.addEventListener("click", function () { var elevateBizsearchInput = document.querySelector(".wp-block-search__input"); window.setTimeout(() => elevateBizsearchInput.focus(), 0); }); } // Function to Add/remove class for mobile Woocommerce sidebar Widgets/filters const toggleFunc = (targetElem) => { let filterButtons = document.querySelectorAll(targetElem); filterButtons.forEach((filterButton) => { if (filterButton !== null) { filterButton.addEventListener("click", () => { if (filterButton.classList.contains("toggled-on")) { // if has 'toggled-on' class remove class filterButton.classList.remove("toggled-on"); } else { // otherwise add 'toggled-on' class filterButton.classList.add("toggled-on"); } }); } }); }; toggleFunc(".btn-mobile-filters"); // Plus minus function added on product input counter function elevateBizQtyChange() { let qtyWrap = document.querySelectorAll('.quantity'); qtyWrap.forEach((wrap) => { let qNav = document.createElement('div'); let qUp = document.createElement('div'); let qDown = document.createElement('div'); let input = wrap.querySelectorAll('.qty'); qUp.innerHTML = '+'; qDown.innerHTML = '-'; qNav.appendChild(qUp); qNav.appendChild(qDown); wrap.appendChild(qNav) qUp.setAttribute('class', 'quantity-button quantity-up'); qDown.setAttribute('class', 'quantity-button quantity-down'); max = 99999; let min = ''; input.forEach((inputItem) => { min = inputItem.getAttribute('min'); if (qtyWrap.length > 1) { // Set default value to 0 inputItem.value = 0; } qNav.setAttribute('class', 'quantity-nav'); let btnUp = wrap.querySelectorAll('.quantity-up'); btnUp.forEach((btnItem) => { btnItem.addEventListener('click', function () { let oldValue = parseFloat(inputItem.value); if (oldValue >= max) { var newVal = oldValue; } else { var newVal = oldValue + 1; } inputItem.value = newVal var element = document.createEvent('HTMLEvents'); var event = new Event('change', { bubbles: true }); inputItem.dispatchEvent(event); return event; }) }) let btnDown = wrap.querySelectorAll('.quantity-down'); btnDown.forEach((btnItem) => { btnItem.addEventListener('click', function () { let oldValue = parseFloat(inputItem.value); if (oldValue >= max) { var newVal = oldValue; } else if (oldValue <= 0) { var newVal = 0; } else { var newVal = oldValue - 1; } inputItem.value = newVal var element = document.createEvent('HTMLEvents'); var event = new Event('change', { bubbles: true }); inputItem.dispatchEvent(event); return event; }) }) }) }) } elevateBizQtyChange(); function elevateBizCartUpdate() { let btnTrigger = document.querySelector('button[name="update_cart"]'); if (btnTrigger !== null) { btnTrigger.addEventListener('click', function () { setTimeout(function () { elevateBizQtyChange(); }, 5000); setTimeout(function () { elevateBizCartUpdate(); }, 5000); }); } } elevateBizCartUpdate();