1(function(){"use strict";function isMobileContext(){return window.matchMedia("(pointer: coarse)").matches||window.matchMedia("(max-width: 749px)").matches}function buildLightbox(){var lb=document.createElement("div");return lb.className="mobile-lightbox",lb.setAttribute("role","dialog"),lb.setAttribute("aria-modal","true"),lb.setAttribute("aria-label","Product image viewer"),lb.innerHTML='<button type="button" class="mobile-lightbox__close" aria-label="Close image viewer">×</button><div class="mobile-lightbox__track"></div><div class="mobile-lightbox__counter" aria-hidden="true"></div>',document.body.appendChild(lb),lb}function bestImageUrl(img){if(!img)return null;var url=img.currentSrc||img.src;return url&&/cdn\/shop|cdn\.shopify/.test(url)&&(url=url.replace(/(\?|&)width=\d+/,"$1width=1946"),/[?&]width=/.test(url)||(url+=(url.indexOf("?")===-1?"?":"&")+"width=1946")),url}function init(gallery){if(!gallery||gallery.dataset.mobileLightboxBound==="true")return;gallery.dataset.mobileLightboxBound="true";var imgs=Array.prototype.slice.call(gallery.querySelectorAll(".product__media-item img"));if(!imgs.length)return;var lb,track,counter,currentIndex=0,slideCount=0;function ensureLightbox(){lb||(lb=buildLightbox(),track=lb.querySelector(".mobile-lightbox__track"),counter=lb.querySelector(".mobile-lightbox__counter"),lb.querySelector(".mobile-lightbox__close").addEventListener("click",close),lb.addEventListener("click",function(e){(e.target===lb||e.target===track)&&close()}),bindSwipe(),document.addEventListener("keydown",function(e){lb.classList.contains("is-open")&&(e.key==="Escape"?close():e.key==="ArrowRight"?goTo(currentIndex+1):e.key==="ArrowLeft"&&goTo(currentIndex-1))}))}
1function renderSlides(){track.innerHTML="",imgs.forEach(function(img){var slide=document.createElement("div");slide.className="mobile-lightbox__slide";var big=document.createElement("img");big.className="mobile-lightbox__img",big.src=bestImageUrl(img),big.alt=img.alt||"",big.setAttribute("draggable","false"),slide.appendChild(big),track.appendChild(slide)}),slideCount=imgs.length}function open(index){ensureLightbox(),renderSlides(),currentIndex=index||0,lb.classList.add("is-open"),document.body.classList.add("mobile-lightbox-open"),positionTrack(!1),updateCounter()}function close(){lb&&(lb.classList.remove("is-open"),document.body.classList.remove("mobile-lightbox-open"))}function updateCounter(){counter&&(counter.textContent=currentIndex+1+" / "+slideCount)}function positionTrack(animate){track.classList.toggle("is-dragging",!animate),track.style.transform="translateX("+-currentIndex*100+"%)",animate||(track.offsetWidth,track.classList.remove("is-dragging"))}function goTo(index){currentIndex=Math.max(0,Math.min(slideCount-1,index)),positionTrack(!0),updateCounter()}function bindSwipe(){var startX=0,startY=0,deltaX=0,deltaY=0,dragging=!1;track.addEventListener("touchstart",function(e){if(e.touches.length!==1){dragging=!1;return}startX=e.touches[0].clientX,startY=e.touches[0].clientY,deltaX=0,deltaY=0,dragging=!0,track.classList.add("is-dragging")},{passive:!0}),track.addEventListener("touchmove",function(e){if(!(!dragging||e.touches.length!==1)){deltaX=e.touches[0].clientX-startX,deltaY=e.touches[0].clientY-startY;var pct=deltaX/window.innerWidth*100;track.style.transform="translateX("+(-currentIndex*100+pct)+"%)"}},{passive:!0}),track.addEventListener("touchend",function(){if(dragging){dragging=!1;var absX=Math.abs(deltaX),absY=Math.abs(deltaY);if(absY>90&&absY>absX){close();return}absX>window.innerWidth*.18?goTo(currentIndex+(deltaX<0?1:-1)):positionTrack(!0)}})}imgs.forEach(function(img,i){var opener=img.closest(".product__media-item")||img;opener.addEventListener("click",function(e){isMobileContext()&&(e.preventDefault(),e.stopPropagation(),open(i))},!0)})}function boot(){document.querySelectorAll("media-gallery").forEach(init)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",boot):boot(),document.addEventListener("shopify:section:load",boot)})(); 2//# sourceMappingURL=/cdn/shop/t/106/assets/mobile-lightbox.js.map?v=35529616925089672131781955149
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.