PageSourceSearch

https://bonitademas.co.il/cdn/shop/t/141/assets/add-to-cart-popup.js?v=56760359176246980171742288697

js bonitademas.co.il collected 2026-09-26 02:55:41 UTC 7,302 bytes, 2 lines download raw bytes

1function runAddToCartPopup(){document.querySelectorAll(".popup-size").forEach(plusIcon=>{const colorSwatchGrid=plusIcon.closest(".product-item").querySelector(".grid-product-colors"),productId=colorSwatchGrid?.getAttribute("data-product-id");colorSwatchGrid?.addEventListener("click",e=>{const clickedColor=e.target.closest(".color-product-boa");if(colorSwatchGrid.closest(".product-item").querySelector(".sizes-popup-active")&&clickedColor){const clickedColorData=JSON.parse(clickedColor.getAttribute("data-product-variants"));toggleSizesPopupByColor(plusIcon,clickedColorData,productId)}}),plusIcon.addEventListener("click",event=>{const productSizeData=JSON.parse(plusIcon?.closest(".plus-icon-wrapper").getAttribute("data-variants-product"));event.preventDefault(),handleAddToCartClick(event,plusIcon,productSizeData,productId)})})}isMobileSizesPopup()&&setupMobilePopupExitListeners();function toggleSizesPopupByColor(plusIcon,productData,productId){const popupBtnWrapper=plusIcon.closest(".plus-icon-wrapper");plusIcon.closest(".product-item").querySelector(".sizes-popup")?.remove();const popupContainer=createPopup(productData,productId);popupBtnWrapper.after(popupContainer),popupContainer.classList.add("sizes-popup-active")}function handleAddToCartClick(event,plusIcon,productSizeData,productId){const productColor=plusIcon.closest(".product-item").querySelector(".is-selected");if(closeDesktopPopupAndRestoreIcon(),!isMobileSizesPopup()){if(!productColor)return displaySizePopupOnDesktop(plusIcon,productSizeData,productId);const productColorData2=JSON.parse(productColor.getAttribute("data-product-variants"));return displaySizePopupOnDesktop(plusIcon,productColorData2,productId)}event.preventDefault();const mobilePopupWrapper=document.getElementById("mobile-popup-wrapper");function variantClickHandler(e){if(e.target.classList.contains("size-display-wrapper")){const variantData={items:[{id:e.target.getAttribute("variant-id-data"),quantity:1}],sections:"mini-cart"};addToCartEvent(variantData)}}if(mobilePopupWrapper.dataset.isListenerAdded||(mobilePopupWrapper.addEventListener("click",variantClickHandler),mobilePopupWrapper.dataset.isListenerAdded=!0),mobilePopupWrapper.style.display="block",!productColor)return createMobilePopUp(productSizeData);const productColorData=JSON.parse(productColor.getAttribute("data-product-variants"));return createMobilePopUp(productColorData)}function displaySizePopupOnDesktop(plusIcon,productData,productId){const popupBtnWrapper=plusIcon.closest(".plus-icon-wrapper"),exsitingPopupContainer=plusIcon.closest(".product-item").querySelector(".sizes-popup");plusIcon.classList.remove("bag-icon-active"),plusIcon.classList.add("bag-icon-hide"),exsitingPopupContainer?.remove();const popupContainer=createPopup(productData,productId);popupBtnWrapper.after(popupContainer),popupContainer.classList.add("sizes-popup-active"),document.addEventListener("click",closePopupListener)}function closePopupListener(e){const clickedElement=e.target,colorGridProductId=clickedElement.closest("product-item")?.querySelector(".grid-product-colors")?.getAttribute("data-product-id"),popupProductId=document.querySelector(".sizes-popup-active")?.getAttribute("data-product-id");!clickedElement.closest(".sizes-popup")&&colorGridProductId!==popupProductId&&!clickedElement.classList.contains("plus-icon")&&(closeDesktopPopupAndRestoreIcon(),document.removeEventListener("click",closePopupListener))}function createMobilePopUp(productData){const sizesWrapper=document.querySelector(".sizes-display");sizesWrapper.classList.toggle("one-size-display",productData.length<=1),productData.forEach(size=>{const sizeWrapper=document.createElement("p");sizeWrapper.classList.add("size-display-wrapper");const sizeInput=document.createElement("input");sizeInput.type="radio",sizeInput.value=size.id,sizeInput.required=!0,sizeInput.name="size-selector-popup",sizeInput.id=`size-selector-${size.id}`,sizeInput.classList.add("size-input-radio");const sizeLabel=document.createElement("label");sizeLabel.setAttribute("for",`size-selector-${size.id}`),sizeLabel.innerHTML=size.title,sizeLabel.classList.add("size-label"),sizeWrapper.setAttribute("variant-id-data",
1size.id),size.available||(sizeWrapper.classList.add("size-not-available"),sizeInput.disabled=!0),sizeWrapper.appendChild(sizeInput),sizeWrapper.appendChild(sizeLabel),sizesWrapper.appendChild(sizeWrapper)})}function createPopup(variantsData,productId){const popupWrapper=document.createElement("div");popupWrapper.classList.add("sizes-popup"),productId&&popupWrapper.setAttribute("data-product-id",productId);const closePopup=document.createElement("div");closePopup.classList.add("size-popup-exit-icon-wrapper");const closeSpan=document.createElement("span");closeSpan.classList.add("size-popup-exit-icon"),closeSpan.innerHTML=theme.collection.close_svg,closePopup.appendChild(closeSpan),popupWrapper.appendChild(closePopup);const popupTitle=document.createElement("p");popupTitle.innerHTML="\u05D1\u05D7\u05E8\u05D9 \u05DE\u05D9\u05D3\u05D4:",popupTitle.classList.add("size-popup-title"),popupWrapper.appendChild(popupTitle);const variantWrapper=document.createElement("div");return variantWrapper.classList.add("size-popup-variants"),variantsData.forEach(variant=>{const variantElement=document.createElement("p");variantElement.textContent=variant.title,variantElement.setAttribute("variant-id-data",variant.id),variantElement.classList.add("add-variant-to-cart"),variant.available||variantElement.classList.add("variant-unavailable"),variantWrapper.appendChild(variantElement)}),popupWrapper.appendChild(variantWrapper),variantsData.length<=2&&(variantWrapper.style.display="flex"),popupWrapper.addEventListener("click",e=>handleSelectionClick(e,popupWrapper),!0),closeSpan.addEventListener("click",()=>closeDesktopPopupAndRestoreIcon()),document.addEventListener("keydown",e=>{(e.key==="Escape"||e.key==="Esc")&&popupWrapper.classList.contains("sizes-popup-active")&&closeDesktopPopupAndRestoreIcon()}),popupWrapper}function handleSelectionClick(e){if(e.preventDefault(),e.target.classList.contains("add-variant-to-cart")&&!e.target.classList.contains("variant-unavailable")){const variantData={id:e.target.getAttribute("variant-id-data"),quantity:1,sections:"mini-cart"};addToCartEvent(variantData),closeDesktopPopupAndRestoreIcon()}}async function addToCartEvent(variantData){const response=await fetch("/cart/add.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(variantData)});if(response.ok){const cartContent=await response.json(),cartCount=document.querySelector("cart-count")?.innerText??0;cartContent.item_count=Number(cartCount)+1,document.documentElement.dispatchEvent(new CustomEvent("cart:refresh",{bubbles:!0,detail:{cart:cartContent,replacementDelay:750,openMiniCart:!0}}))}isMobileSizesPopup()&&mobileClosePopUp()}function isMobileSizesPopup(){return window.innerWidth<741}function closeDesktopPopupAndRestoreIcon(){const desktopPopup=document.querySelector(".sizes-popup-active");if(!desktopPopup)return;desktopPopup.classList.remove("sizes-popup-active"),desktopPopup.closest(".product-item")?.querySelector(".plus-icon")?.classList.remove("bag-icon-hide")}
2//# sourceMappingURL=/cdn/shop/t/141/assets/add-to-cart-popup.js.map?v=56760359176246980171742288697

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.