1function updateBundleUrl(handle){const currentUrl=new URL(window.location.href);if(currentUrl.pathname.split("/").pop()!==handle){const newUrl=`${currentUrl.origin}/products/${handle}`;history.pushState({path:newUrl},"",newUrl)}}function bundlesProduct(initialProduct,productType){return{loading:!0,products:{},currentProduct:null,currentVariant:null,selectedOptions:{},mainSwiper:null,initCarousel:function(){this.$nextTick(()=>{if(typeof Swiper<"u"){const mainSwiperSelector=".swiper-container-pdp-gallery",thumbnailsSwiperSelector=".thumbnails-swiper",mainContainer=document.querySelector(mainSwiperSelector),thumbsContainer=document.querySelector(thumbnailsSwiperSelector);mainContainer&&mainContainer.swiper&&mainContainer.swiper.destroy(!0,!0),thumbsContainer&&thumbsContainer.swiper&&thumbsContainer.swiper.destroy(!0,!0);const thumbsSwiper=new Swiper(thumbnailsSwiperSelector,{slidesPerView:"auto",freeMode:!0});this.mainSwiper=new Swiper(mainSwiperSelector,{slidesPerView:"auto",loop:!1,rewind:!0,pagination:{el:".swiper-pagination-pdp-gallery",type:"progressbar"},navigation:{nextEl:".swiper-pdp-gallery-next",prevEl:".swiper-pdp-gallery-prev"},thumbs:{swiper:thumbsSwiper}}),mainSwiper.snapGrid.pop(),console.log("msweer",mainSwiper),setTimeout(()=>{const pdpGallery=document.querySelector(".pdp-product-gallery"),pdpThumbnails=document.querySelector(".pdp-product-gallery-thumbnails"),galleryWidth=pdpGallery.offsetWidth,isSwipeable=thumbsSwiper.virtualSize>galleryWidth;console.log("isswipp",isSwipeable,thumbsSwiper.virtualSize,galleryWidth),isSwipeable?(pdpGallery.classList.remove("centered-thumbnails"),pdpThumbnails.classList.remove("max-content")):(pdpGallery.classList.add("centered-thumbnails"),pdpThumbnails.classList.add("max-content"))},100)}}),this.$dispatch("swipers-initialized")},setSlideByImageUrl(imageUrl){if(!this.mainSwiper){console.error("Swiper not initialized");return}const slideIndex=this.mainSwiper.slides.findIndex(slide=>{const img=slide.querySelector("img");return img&&img.src===imageUrl});slideIndex!==-1?this.mainSwiper.slideTo(slideIndex,0):console.warn("No slide found with the specified image URL")},get shopifyData(){return this.currentProduct},initialSetup:async function(){let hammockHandles=[initialProduct];productType&&(hammockHandles=await fetchHammockHandles(productType)),await Promise.all(hammockHandles.map(async handle=>{if(!this.products[handle])try{const productData=await fetchProductData(handle);if(this.products[handle]=productData,productData.bundleHandle){const bundleData=await fetchBundle(productData.bundleHandle);this.products[handle].bundleProduct=bundleData}else this.products[handle].bundleProduct=null}catch(error){console.error("Error fetching product data:",error)}})),initialProduct&&this.products[initialProduct]&&(this.currentProduct=this.products[initialProduct],updateBundleUrl(initialProduct),this.initializeSelectedOptions(),this.initCarousel()),this.loading=!1},updateProduct:function(handle){this.products[handle]?(this.currentProduct=this.products[handle],this.initializeSelectedOptions(),this.$dispatch("current-product-change",{product:this.currentProduct}),this.initCarousel(),updateBundleUrl(handle)):console.error("Product data not found for handle:",handle)},get optionValues(){if(!this.currentProduct||!this.currentProduct.variants)return{};const optionValues={};
1this.currentProduct.variants.forEach(variant=>{variant.options.forEach(option=>{optionValues[option.name]||(optionValues[option.name]=new Set),optionValues[option.name].add(option.value)})});for(const key in optionValues)optionValues[key]=Array.from(optionValues[key]);return optionValues},get hammockSwatches(){let availableProducts=Object.values(this.products);return availableProducts=availableProducts.filter(product=>product.availableForSale&&product.disableSwatch!=="true"),availableProducts.map(product=>({handle:product.handle,name:product.name,swatchImage:product.swatchImage,badgeText:product.swatchBadge?.text,badgeBg:product.swatchBadge?.bg_color,badgeTextColor:product.swatchBadge?.text_color}))},get currentName(){return this.currentProduct.name.endsWith("Hammock")?this.currentProduct.name.slice(0,-7).trim():this.currentProduct.name},get pageTitle(){return productType?productType.split("-").map(word=>word.charAt(0).toUpperCase()+word.slice(1)).join(" "):this.currentName},get badges(){return this.currentProduct?getProductBadges(this.currentProduct):[]},initializeSelectedOptions:function(){const optionCategory=this.currentProduct.options[0].name;this.selectedOptions[optionCategory]=this.currentProduct.variants[0].selectedOptions[0].value,this.currentVariant=this.currentProduct.variants[0]},handleOptionChange:function(optionName,optionValue){this.selectedOptions[optionName]=optionValue,this.updateCurrentVariant()},updateCurrentVariant:function(){const optionCategory=this.currentProduct.options[0].name,selectedValue=this.selectedOptions[optionCategory];this.currentVariant=this.currentProduct.variants.find(variant=>variant.options.some(option=>option.name===optionCategory&&option.value===selectedValue))},init:async function(){console.log("bundler"),await this.initialSetup(),this.loading=!1}}}document.addEventListener("alpine:init",()=>{Alpine.data("bundlesProduct",bundlesProduct)}); 2//# sourceMappingURL=/cdn/shop/t/296/assets/anatta-bundle-product.js.map?v=12732490174458209681740463785
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.