1function singleProductHero(productHandle){return{error:!1,loading:!0,product:null,currentVariant:null,selectedOptions:{},mainSwiper:null,initCarousel(){this.$nextTick(()=>{if(typeof Swiper<"u"){const mainSwiperSelector=".swiper-container-pdp-gallery",thumbnailsSwiperSelector=".thumbnails-swiper",containerWidth=this.$el.querySelector(".hero-product__gallery-wrapper").offsetWidth,thumbsSwiper=new Swiper(thumbnailsSwiperSelector,{slidesPerView:"auto"});this.mainSwiper=new Swiper(mainSwiperSelector,{slidesPerView:"auto",rewind:!0,pagination:{el:".swiper-pagination-pdp-gallery",type:"progressbar"},navigation:{nextEl:".swiper-pdp-gallery-next",prevEl:".swiper-pdp-gallery-prev"},thumbs:{swiper:thumbsSwiper}});const pdpGallery=document.querySelector(".pdp-product-gallery"),pdpThumbnails=document.querySelector(".pdp-product-gallery-thumbnails"),galleryWidth=pdpGallery.offsetWidth;thumbsSwiper.virtualSize>galleryWidth?(pdpGallery.classList.remove("centered-thumbnails"),pdpThumbnails.classList.remove("max-content")):(pdpGallery.classList.add("centered-thumbnails"),pdpThumbnails.classList.add("max-content"))}}),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 pageTitle(){return this.product.name},separateStandaloneVariant(){if(!this.product||!this.product.variants)return;const index=this.product.variants.findIndex(variant=>variant.standaloneVariant===!0);index!==-1?this.product.standaloneVariant=this.product.variants.splice(index,1)[0]:this.product.standaloneVariant=null},get shopifyData(){return this.product},get currentProduct(){return this.product},async initialSetup(){try{const productData=await fetchProductData(productHandle);if(productData.bundleHandle){const bundleData=await fetchBundle(productData.bundleHandle);productData.bundleProduct=bundleData}this.product=productData,this.separateStandaloneVariant(),this.initializeSelectedOptions(),this.initCarousel()}catch(error){console.error("Error fetching product data:",error),this.error=!0}this.loading=!1},updateProduct(handle){handle===this.product.handle?(this.initializeSelectedOptions(),this.$dispatch("current-product-change",{product:this.product}),this.initCarousel()):console.error("Product data not found for handle:",handle)},get optionValues(){if(!this.product||!this.product.variants)return{};const optionValues={};
1this.product.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 currentName(){return this.product&&this.product.name.endsWith("Hammock")?this.product.name.slice(0,-7).trim():this.product.name},get hammockSwatches(){return null},get variantSwatches(){let availableVariants=Object.values(this.product.variants);return availableVariants=availableVariants.filter(product=>product.availableForSale&&product.disableSwatch!=="true"),availableVariants.map(variant=>({id:variant.id,swatchImage:variant.variantProperties.swatch_image_reference,badgeText:variant.variantProperties.swatch_badge_text,badgeBg:variant.variantProperties.badge_color,badgeTextColor:variant.variantProperties.badge_text_color,varImage:variant.image}))},get badges(){return this.product?getProductBadges(this.product):[]},initializeSelectedOptions(){if(!this.product||!this.product.variants||this.product.variants.length===0)return;const optionCategory=this.product.options[0].name;this.selectedOptions[optionCategory]=this.product.variants[0].selectedOptions[0].value,this.currentVariant=this.product.variants[0]},handleOptionChange(optionName,optionValue){this.selectedOptions[optionName]=optionValue,this.updateCurrentVariant()},updateCurrentVariant:function(){const optionCategory=this.product.options[0].name,selectedValue=this.selectedOptions[optionCategory];this.currentVariant=this.product.variants.find(variant=>variant.options.some(option=>option.name===optionCategory&&option.value===selectedValue))},init:async function(){await this.initialSetup(),this.loading=!1}}}document.addEventListener("alpine:init",()=>{Alpine.data("singleProductHero",singleProductHero)}); 2//# sourceMappingURL=/cdn/shop/t/296/assets/anatta-single-product-hero.js.map?v=1803884048195464621749803501
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.