PageSourceSearch

https://turboswim.com/cdn/shop/t/25/assets/wim-pcard-size-atc.js?v=149679981950953263641784034349

js turboswim.com collected 2026-10-07 19:00:10 UTC 7,588 bytes, 2 lines download raw bytes

1(()=>{if(window.__wimPcardSizeAtcInit)return;window.__wimPcardSizeAtcInit=!0;const DRAG_THRESHOLD_PX=4,dragStateBySlider=new WeakMap,getVariantOptions=variant=>{if(Array.isArray(variant.options))return variant.options;const out=[];return variant.option1!=null&&variant.option1!==""&&out.push(variant.option1),variant.option2!=null&&variant.option2!==""&&out.push(variant.option2),variant.option3!=null&&variant.option3!==""&&out.push(variant.option3),out},norm=v=>String(v??"").trim(),parseVariants=wrapper=>{const el=wrapper.querySelector('script[type="application/json"][data-pcard-variants]');if(!el||!el.textContent)return[];try{return JSON.parse(el.textContent)}catch{return[]}},getSelectedColorValue=(card,wrapper)=>{const swatchList=card.querySelector('ul[is="color-swatch"]');if(swatchList){let li=swatchList.querySelector('li.swatch-item[aria-selected="true"]');if(li||(li=swatchList.querySelector('li[data-initial-selected="true"]')),li&&li.dataset.swatchValue!=null&&li.dataset.swatchValue!=="")return li.dataset.swatchValue}const fallback=wrapper.dataset.initialColorValue;return fallback!=null&&fallback!==""?fallback:null},findVariant=(variants,sizeIndex,sizeValue,hasColor,colorIndex,colorValue,preferAvailable=!0)=>{const sz=norm(sizeValue),col=hasColor?norm(colorValue):null,matchOne=onlyAvailable=>variants.find(v=>{const opts=getVariantOptions(v);return opts.length<=sizeIndex||norm(opts[sizeIndex])!==sz||hasColor&&colorIndex!=null&&(opts.length<=colorIndex||norm(opts[colorIndex])!==col)?!1:onlyAvailable?v.available!==!1:!0});return preferAvailable?matchOne(!0)||null:matchOne(!0)||matchOne(!1)},isSizeAvailable=(variants,sizeIndex,sizeValue,hasColor,colorIndex,colorValue)=>!!findVariant(variants,sizeIndex,sizeValue,hasColor,colorIndex,colorValue,!0),syncSizeAvailability=wrapper=>{const card=wrapper.closest(".product-card");if(!card)return;const sizeIndex=Number(wrapper.dataset.sizeOptionIndex);if(Number.isNaN(sizeIndex))return;const hasColor=wrapper.dataset.hasColorOption==="true",colorIndex=hasColor?Number(wrapper.dataset.colorOptionIndex):NaN,variants=parseVariants(wrapper);if(!variants.length)return;const colorValue=getSelectedColorValue(card,wrapper),soldOutLabel=FoxTheme.variantStrings&&FoxTheme.variantStrings.soldOut||"Agotado";wrapper.querySelectorAll(".wim-pcard-size-atc-btn").forEach(btn=>{const sizeValue=btn.dataset.sizeValue,available=isSizeAvailable(variants,sizeIndex,sizeValue,hasColor&&!Number.isNaN(colorIndex),hasColor&&!Number.isNaN(colorIndex)?colorIndex:null,colorValue);btn.classList.toggle("wim-size-selector__label--unavailable",!available),btn.disabled=!available,btn.setAttribute("aria-label",available?`${FoxTheme.variantStrings&&FoxTheme.variantStrings.addToCart||"A\xF1adir al carrito"}: ${sizeValue}`:`${sizeValue} \u2014 ${soldOutLabel}`),btn.closest(".size-selector__item")?.classList.toggle("size-selector__item--unavailable",!available)})},syncAllSizeAvailability=(root=document)=>{root.querySelectorAll(".product-card__size-selector-wrapper").forEach(syncSizeAvailability)},addVariantToCart=async(variantId,button)=>{if(!window.FoxTheme||!FoxTheme.routes||!FoxTheme.utils)return;const formData=new FormData;formData.append("id",String(variantId)),formData.append("quantity","1");const config=FoxTheme.utils.fetchConfig("javascript");config.headers["X-Requested-With"]="XMLHttpRequest",delete config.headers["Content-Type"],config.body=formData,button.classList.add("wim-pcard-size-atc--loading"),button.setAttribute("aria-disabled","true");try{const parsed=await(await fetch(`${FoxTheme.routes.cart_add_url}`,config)).json();if(parsed&&parsed.status){const msg=parsed.description&&String(parsed.description)||FoxTheme.cartStrings&&FoxTheme.cartStrings.error||"Cart error";window.alert(msg);return}document.dispatchEvent(new CustomEvent("cart:refresh",{bubbles:!0,detail:{open:!0}}))}catch(e){console.error(e),window.alert(FoxTheme.cartStrings&&FoxTheme.cartStrings.error||"Cart error")}finally{button.classList.remove("wim-pcard-size-atc--loading"),button.removeAttribute("aria-disabled")}},initDragSlider=slider=>{if(slider.classList.contains("js-drag-initialized"))return;slider.classList.add("js-drag-initialized");const state={isDown:!1,moved:!1,startPageX:0,startX:0,scrollLeft:0};dragStateBySlider.set(slider,state),slider.addEventListener("mousedown",e=>{state.isDown=!0,state.moved=!1,state.startPageX=e.pageX;const rect=slider.getBoundingClientRect();state.startX=e.pageX-rect.left,state.scrollLeft=slider.scrollLeft,slider.style.cursor="grabbing"}),slider.addEventListener("mouseleave",()=>{state.isDown=!1,slider.style.cursor="grab"}),slider.addEventListener("mouseup",()=>{state.isDown=!1,slider.style.cursor="grab"}),slider.addEventListener("mousemove",e=>{if(!state.isDown)return;Math.abs(e.pageX-state.startPageX)>DRAG_THRESHOLD_PX&&(state.moved=!0),e.preventDefault();const rect=slider.getBoundingClientRect(),walk=(e.pageX-rect.left-state.startX)*2;slider.scrollLeft=state.scrollLeft-walk}),slider.addEventListener("click",e=>{state.moved&&(e.preventDefault(),e.stopPropagation(),state.moved=!1)},!0)},initAllSliders=(root=document)=>{root.querySelectorAll(".product-card__size-selector:not(.js-drag-initialized)").forEach(initDragSlider)},onSizeActivate=async btn=>{if(btn.disabled||btn.classList.contains("wim-size-selector__label--unavailable"))return;const wrapper=btn.closest(".product-card__size-selector-wrapper"),card=btn.closest(".product-card");if(!wrapper||!card)return;const sizeIndex=Number(wrapper.dataset.sizeOptionIndex);if(Number.isNaN(sizeIndex))return;const hasColor=wrapper.dataset.hasColorOption==="true",colorIndex=hasColor?Number(wrapper.dataset.colorOptionIndex):NaN,variants=parseVariants(wrapper);if(!variants.length)return;const sizeValue=btn.dataset.sizeValue,colorValue=getSelectedColorValue(card,wrapper);if(hasColor&&(colorValue==null||colorValue==="")){window.alert(FoxTheme.variantStrings&&FoxTheme.variantStrings.unavailable||"Selecciona un color primero.");return}const variant=findVariant(variants,sizeIndex,sizeValue,hasColor&&!Number.isNaN(colorIndex),hasColor&&!Number.isNaN(colorIndex)?colorIndex:null,colorValue,!0);if(!variant||!variant.id||variant.available===!1){window.alert(FoxTheme.variantStrings&&FoxTheme.variantStrings.unavailable||"Combinaci\xF3n no disponible.");return}await addVariantToCart(variant.id,btn)};document.addEventListener("click",e=>{const btn=e.target.closest(".wim-pcard-size-atc-btn");if(!btn)return;const slider=btn.closest(".product-card__size-selector"),dragState=slider?dragStateBySlider.get(slider):null;if(dragState&&dragState.moved){e.preventDefault(),e.stopPropagation(),dragState.moved=!1;return}e.preventDefault(),onSizeActivate(btn)}),document.addEventListener("keydown",e=>{if(e.key!=="Enter"&&e.key!==" ")return;const btn=e.target.closest(".wim-pcard-size-atc-btn");btn&&(e.preventDefault(),onSizeActivate(btn))}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{initAllSliders(),syncAllSizeAvailability()}):(initAllSliders(),syncAllSizeAvailability()),new MutationObserver(()=>{initAllSliders(),syncAllSizeAvailability()}).observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("mouseover",event=>{const swatchItem=event.target.closest('ul[is="color-swatch"] li.swatch-item');
1if(!swatchItem)return;const wrapper=swatchItem.closest(".product-card")?.querySelector(".product-card__size-selector-wrapper");wrapper&&syncSizeAvailability(wrapper)},{passive:!0})})();
2//# sourceMappingURL=/cdn/shop/t/25/assets/wim-pcard-size-atc.js.map?v=149679981950953263641784034349

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.