1 line
No EOL
7.3 KiB
JavaScript
1 line
No EOL
7.3 KiB
JavaScript
(()=>{if("undefined"!=typeof astra){AstraProQuickView={stick_add_to_cart:astra.shop_quick_view_stick_cart,auto_popup_height_by_image:astra.shop_quick_view_auto_height,init:function(){this._init_popup(),this._bind()},_init_popup:function(){var e=parseFloat(window.innerWidth)-120,t=parseFloat(window.innerHeight)-120,i=document.getElementById("ast-quick-view-content"),e=(i&&(i.style.maxWidth=e+"px",i.style.maxHeight=t+"px"),document.querySelectorAll(".ast-qv-on-image-click .astra-shop-thumbnail-wrap .woocommerce-LoopProduct-link"));0<e.length&&e.forEach(e=>{e.setAttribute("href","javascript:void(0)")})},_bind:function(){var e=document.querySelectorAll(".ast-quick-view-button, .ast-quick-view-text, .ast-qv-on-image-click .astra-shop-thumbnail-wrap .woocommerce-LoopProduct-link, .ast-quick-view-trigger"),e=(0<e.length&&e.forEach(e=>{e.removeEventListener("click",AstraProQuickView._open_quick_view),e.addEventListener("click",AstraProQuickView._open_quick_view),e.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),AstraProQuickView._open_quick_view(e))}),e.setAttribute("tabindex","0")}),document.querySelector("#ast-quick-view-close")),t=document.querySelector(".ast-content-main-wrapper");e&&e.addEventListener("click",AstraProQuickView._close_quick_view),t&&t.addEventListener("click",AstraProQuickView._close_quick_view_on_overlay_click),document.addEventListener("keyup",AstraProQuickView._close_quick_view_on_esc_keypress)},_open_quick_view:function(e){e.preventDefault();let t=e.currentTarget,i=t.closest("li.product"),a=document.querySelector("#ast-quick-view-modal"),o=document.querySelector(".ast-quick-view-bg"),r=t.getAttribute("data-product_id"),c=(i&&i.classList.contains("ast-qv-on-image-click")&&(r=i.querySelector(".ast-quick-view-data").getAttribute("data-product_id")),a&&!a.classList.contains("loading")&&a.classList.add("loading"),o&&!o.classList.contains("ast-quick-view-bg-ready")&&o.classList.add("ast-quick-view-bg-ready"),document.dispatchEvent(new Event("ast_quick_view_loading")),new XMLHttpRequest);c.open("POST",astra.ajax_url,!0),c.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),c.send("action=ast_load_product_quick_view&product_id= "+r),c.responseType="text",c.onreadystatechange=function(){var e=DOMPurify.sanitize(c.responseText);c.readyState==XMLHttpRequest.DONE&&(200<=c.status||400<=c.status)&&(document.querySelector("#ast-quick-view-modal").querySelector("#ast-quick-view-content").innerHTML=e,e=new CustomEvent("AstraQuickViewForModal",{detail:{class_name:".uagb-modal-wrapper"}}),document.dispatchEvent(e),AstraProQuickView._after_markup_append_process(),setTimeout(()=>a?.querySelector("#ast-quick-view-content")?.focus(),500))},document.querySelector(".astra-cart-drawer-close")&&astra.woo_cart_empty_featured_product&&document.querySelector(".astra-cart-drawer-close").click()},_after_markup_append_process:function(){let e=document.querySelector("#ast-quick-view-modal"),t=e.querySelector("#ast-quick-view-content");t.querySelectorAll(".variations_form");e&&!e.classList.contains("open")&&(o=t.outerHeight,a=window.innerHeight,i=document.querySelector("html"),a<o?i.style.marginRight=AstraProQuickView._get_scrollbar_width():(i.style.marginRight="",i.querySelector(".ast-sticky-active")&&(i.querySelector(".ast-sticky-active").style.maxWidth="100%"),i.querySelector(".ast-header-sticky-active")&&(i.querySelector(".ast-header-sticky-active").style.maxWidth="100%"),i.querySelector(".ast-custom-footer")&&(i.querySelector(".ast-custom-footer").style.maxWidth="100%")),i.classList.add("ast-quick-view-is-open"));var i,a=jQuery(document).find("#ast-quick-view-modal");if(0<a.length){a.find(".variations_form").trigger("check_variations"),a.find(".variations_form").trigger("reset_image"),a.find(".variations_form").wc_variation_form(),a.find(".variations_form select").change();var o=a.find(".ast-qv-image-slider");if(1<o.find("li").length){o.flexslider();try{productVariation(o)}catch(e){}}else try{productVariation(a)}catch(e){}}setTimeout(function(){AstraProQuickView._auto_set_content_height_by_image(),e.classList.remove("loading"),e.classList.add("open"),document.querySelector(".ast-quick-view-bg").classList.add("open")},100),document.dispatchEvent(new Event("ast_quick_view_loader_stop"))},_auto_set_content_height_by_image:function(){imagesLoaded(document.querySelector("#ast-quick-view-modal"),function(){var t=document.getElementById("ast-quick-view-modal"),i=t.querySelector(".woocommerce-product-gallery__image img").getBoundingClientRect().height,a=t.querySelector(".product .summary.entry-summary"),o=t.querySelectorAll(".woocommerce-product-gallery__image img, .ast-qv-slides img");let r=parseFloat(window.innerHeight)-120;if(i=parseFloat(i),AstraProQuickView.auto_popup_height_by_image?o.length?i<r?a.style.maxHeight=parseFloat(i)+"px":a.style.maxHeight=r+"px":a.style.width="100%":a.style.maxHeight=parseFloat(r)+"px",AstraProQuickView.stick_add_to_cart){t.classList.add("stick-add-to-cart");o=t.querySelector(".cart").getBoundingClientRect().height;let e=parseFloat(r)-parseFloat(o);o<i?(t.querySelector(".cart").classList.add("stick"),r=document.querySelector("#ast-quick-view-content").getBoundingClientRect().height,o=t.querySelector(".cart").getBoundingClientRect().height,e=parseFloat(r)-parseFloat(o),a.style.maxHeight=parseFloat(e)+"px"):r>e?a.style.maxHeight=parseFloat(r)+"px":a.style.maxHeight=""}})},_close_quick_view_on_esc_keypress:function(e){27===e.keyCode&&AstraProQuickView._close_quick_view()},_close_quick_view:function(e){e&&e.preventDefault(),document.querySelector(".ast-quick-view-bg").classList.remove("ast-quick-view-bg-ready"),document.querySelector("#ast-quick-view-modal").classList.remove("open","loading"),document.querySelector(".ast-quick-view-bg").classList.remove("open"),document.querySelector("html").classList.remove("ast-quick-view-is-open"),document.querySelector("html").style.marginRight="",setTimeout(function(){document.querySelector("#ast-quick-view-modal").querySelector("#ast-quick-view-content").innerHTML=""},600)},_close_quick_view_on_overlay_click:function(e){this===e.target&&AstraProQuickView._close_quick_view()},_get_scrollbar_width:function(){var e=document.createElement("div"),t=(e.classList.add("ast-get-scrollbar-width"),e.style.width="50px",e.style.height="50px",e.style.overflow="hidden",e.style.position="absolute",e.style.top="-200px",e.style.left="-200px",document.createElement("div")),t=(t.style.height="100px",e.appendChild(t),document.querySelector("body").appendChild(e),document.querySelector(".ast-get-scrollbar-width").clientWidth),e=(e.style.overflowY="scroll",document.querySelector(".ast-get-scrollbar-width").clientWidth);return document.querySelector(".ast-get-scrollbar-width").remove(),t-e}};var t;t=function(){AstraProQuickView.init()},"interactive"===document.readyState||"complete"===document.readyState?t():document.addEventListener("DOMContentLoaded",t);let e=document.getElementById("astra-mobile-cart-drawer");document.addEventListener("astra_on_slide_In_cart_open",function(){astra.woo_cart_empty_featured_product&&e&&e.classList.contains("active")&&AstraProQuickView.init()}),document.addEventListener("astra_on_slide_in_cart_empty",function(){astra.woo_cart_empty_featured_product&&e&&e.classList.contains("active")&&AstraProQuickView.init()}),document.addEventListener("astraInfinitePaginationLoaded",function(){AstraProQuickView.init()})}})(); |