PageSourceSearch

https://youha.nl/cdn/shop/t/58/assets/product.js?v=670621749021325111789493194

js youha.nl collected 2026-10-09 04:15:33 UTC 28,218 bytes, 2 lines download raw bytes

1if(!customElements.get("variant-selects")){class VariantSelects extends HTMLElement{constructor(){super(),this.sticky=this.dataset.sticky,this.updateUrl=this.dataset.updateUrl==="true",this.isDisabledFeature=this.dataset.isDisabled,this.addEventListener("change",this.onVariantChange),this.other=Array.from(document.querySelectorAll("variant-selects")).filter(selector=>selector!=this),this.productWrapper=this.closest(".thb-product-detail"),this.productSlider=this.productWrapper.querySelector(".product-images"),this.thumbnails=this.productWrapper.querySelector(".product-thumbnail-container"),this.hideVariants=this.dataset.hideVariants==="true",this.addEventListener("mousedown",e=>{if(e.target.tagName==="LABEL"){const scrollY=window.scrollY;requestAnimationFrame(()=>window.scrollTo({top:scrollY,behavior:"instant"}))}})}connectedCallback(){this.updateOptions(),this.updateMasterId(),this.setDisabled(),this.setImageSet(),this.prefetchProductUrls()}onVariantChange(e){this.updateOptions(),this.updateMasterId(),this.toggleAddButton(!0,"",!1),this.removeErrorMessage(),this.updateVariantText(),this.updateMediaFromInput(e),this.renderVariantInfo(),this.updateOther(),dispatchCustomEvent("product:variant-change",{variant:this.currentVariant,productId:this.dataset.productId,sectionId:this.dataset.section,variantTitle:this.options.join(" / ")})}updateMediaFromInput(e){if(!e||!e.target)return;const input=e.target.closest("input, select, option")||e.target;let mediaId;if(input.tagName==="SELECT"){const selected=input.selectedOptions[0];mediaId=selected&&selected.dataset.featuredMediaId}else mediaId=input.dataset.featuredMediaId;if(!mediaId)return;let thumbnails=this.productWrapper.querySelector(".product-thumbnail-container");this.setActiveMedia(`#Slide-${this.dataset.section}-${mediaId}`,`#Thumb-${this.dataset.section}-${mediaId}`,this.productSlider,thumbnails)}updateOptions(){this.fieldsets=Array.from(this.querySelectorAll("fieldset")),this.options=[],this.fieldsets.forEach((fieldset,i)=>{fieldset.querySelector("select")?this.options.push(fieldset.querySelector("select").value):fieldset.querySelectorAll("input").length&&this.options.push(fieldset.querySelector("input:checked").value)})}updateVariantText(){Array.from(this.querySelectorAll("fieldset")).forEach((item,i)=>{let label=item.querySelector(".form__label__value");label&&(label.innerHTML=this.options[i])})}updateMasterId(){const span=this.querySelector(`#SelectedVariant-${this.dataset.section}`);span&&(this.currentVariant={id:parseInt(span.dataset.variantId,10)||null,available:span.dataset.available==="true",featured_media:span.dataset.featuredMediaId?{id:parseInt(span.dataset.featuredMediaId,10)}:null})}updateOther(){if(this.dataset.updateUrl!=="false"&&this.other.length){let fieldsets=this.other[0].querySelectorAll("fieldset"),fieldsets_array=Array.from(fieldsets);this.options.forEach((option,i)=>{fieldsets_array[i].querySelector("select")?fieldsets_array[i].querySelector("select").value=option:fieldsets_array[i].querySelectorAll("input").length&&(fieldsets_array[i].querySelector(`input[value='${option}']`).checked=!0)}),this.other[0].updateOptions(),this.other[0].updateMasterId(),this.other[0].updateVariantText(),this.other[0].setDisabled()}}updateMedia(){if(!this.currentVariant||!this.currentVariant.featured_media)return;let thumbnails=this.productWrapper.querySelector(".product-thumbnail-container");this.setActiveMedia(`#Slide-${this.dataset.section}-${this.currentVariant.featured_media.id}`,`#Thumb-${this.dataset.section}-${this.currentVariant.featured_media.id}`,this.productSlider,thumbnails)}setActiveMedia(mediaId,thumbId,productSlider,thumbnails){let flkty=Flickity.data(productSlider),activeMedia=productSlider.querySelector(mediaId);if(flkty&&this.hideVariants){if(productSlider.querySelector(".product-images__slide.is-initial-selected")&&productSlider.querySelector(".product-images__slide.is-initial-selected").classList.remove("is-initial-selected"),[].forEach.call(productSlider.querySelectorAll(".product-images__slide-item--variant"),function(el){el.classList.remove("is-active")}),this.thumbnails&&(this.thumbnails.querySelector(".product-thumbnail.is-initial-selected")&&this.thumbnails.querySelector(".product-thumbnail.is-initial-selected").classList.remove("is-initial-selected"),[].forEach.call(this.thumbnails.querySelectorAll(".product-images__slide-item--variant"),function(el){el.classList.remove("is-active")})),activeMedia.classList.add("is-active"),activeMedia.classList.add("is-initial-selected"),this.setImageSetMedia(),thumbnails){let activeThumb=thumbnails.querySelector(thumbId);activeThumb.classList.add("is-active"),activeThumb.classList.add("is-initial-selected")}productSlider.reInit(this.imageSetIndex),productSlider.selectCell(mediaId)}else flkty&&productSlider.selectCell(mediaId)}updateURL(){!this.currentVariant||this.dataset.updateUrl==="false"||window.history.replaceState({},"",`${this.dataset.url}?variant=${this.currentVariant.id}`)}updateShareUrl(){const shareButton=document.getElementById(`Share-${this.dataset.section}`);shareButton&&shareButton.updateUrl(`${window.shopUrl}${this.dataset.url}?variant=${this.currentVariant.id}`)}updateVariantInput(){document.querySelectorAll(`#product-form-${this.dataset.section}, #product-form-installment`).forEach(productForm=>{const input=productForm.querySelector('input[name="id"]');input.value=this.currentVariant.id,input.dispatchEvent(new Event("change",{bubbles:!0}))})}updatePickupAvailability(){const pickUpAvailability=document.querySelector(".pickup-availability-wrapper");pickUpAvailability&&pickUpAvailability.update(this.currentVariant)}removeErrorMessage(){const section=this.closest("section");if(!section)return;const productForm=section.querySelector("product-form");productForm&&productForm.handleErrorMessage()}getSectionsToRender(){return[`price-${this.dataset.section}`,`price-${this.dataset.section}--sticky`,`product-image-${this.dataset.section}--sticky`,`inventory-${this.dataset.section}`,`sku-${this.dataset.section}`,`quantity-${this.dataset.section}`]}getSelectedValueIds(){return this.fieldsets.map(fieldset=>fieldset.querySelector("select")?fieldset.querySelector("select").selectedOptions[0]?.dataset.valueId:fieldset.querySelector("input:checked")?.dataset.valueId).filter(
1Boolean)}prefetchProductUrls(){this._prefetchCache=this._prefetchCache||new Map,this.querySelectorAll("[data-product-url]").forEach(el=>{let url=el.dataset.productUrl;if(url===this.dataset.url)return;let label=el.tagName==="OPTION"?el.closest("select"):el.nextElementSibling;label&&label.addEventListener("mouseenter",()=>{if(this._prefetchCache.has(url))return;let fetchUrl=`${url}?section_id=${this.dataset.section}`;this._prefetchCache.set(url,fetch(fetchUrl).then(r=>r.text()))},{once:!0})})}getProductUrl(){for(let fieldset of this.fieldsets){let select=fieldset.querySelector("select"),selected=select?select.selectedOptions[0]:fieldset.querySelector("input:checked");if(selected&&selected.dataset.productUrl&&selected.dataset.productUrl!==this.dataset.url)return selected.dataset.productUrl}return null}switchProduct(productUrl){this.toggleAddButton(!0,"",!1);const sectionId=this.dataset.section;(this._prefetchCache&&this._prefetchCache.get(productUrl)||fetch(`${productUrl}?section_id=${sectionId}`).then(r=>r.text())).then(html=>{const newContent=new DOMParser().parseFromString(html,"text/html").getElementById(`shopify-section-${sectionId}`),currentSection=document.getElementById(`shopify-section-${sectionId}`);newContent&&currentSection&&(currentSection.innerHTML=newContent.innerHTML),history.replaceState({},"",productUrl)})}renderVariantInfo(){const productUrl=this.getProductUrl();if(productUrl){this.switchProduct(productUrl);return}const ids=this.getSelectedValueIds();if(!ids.length)return;const scrollY=window.scrollY;fetch(`${this.dataset.url}?option_values=${ids.join(",")}&section_id=${this.dataset.section}`).then(response=>response.text()).then(responseText=>{const html=new DOMParser().parseFromString(responseText,"text/html"),span=html.getElementById(`SelectedVariant-${this.dataset.section}`);if(span&&span.dataset.productUrl&&span.dataset.productUrl!==this.dataset.url){this.switchProduct(span.dataset.productUrl);return}span&&parseInt(span.dataset.variantId,10)?this.currentVariant={id:parseInt(span.dataset.variantId,10),available:span.dataset.available==="true",featured_media:span.dataset.featuredMediaId?{id:parseInt(span.dataset.featuredMediaId,10)}:null}:this.currentVariant=null;const sourceSelects=html.getElementById(`variant-selects-${this.dataset.section}`);if(sourceSelects&&sourceSelects.querySelectorAll("[data-value-id]").forEach(sourceEl=>{const vid=sourceEl.dataset.valueId,avail=sourceEl.dataset.available;[this,...this.other].forEach(el=>{const localEl=el.querySelector(`[data-value-id="${vid}"]`);localEl&&(localEl.dataset.available=avail)})}),this.getSectionsToRender().forEach(id=>{const destination=document.getElementById(id),source=html.getElementById(id);source&&destination&&(destination.innerHTML=source.innerHTML),id.includes("price")&&destination&&destination.classList.remove("visibility-hidden")}),!this.currentVariant){this.toggleAddButton(!0,"",!0),this.setUnavailable(),this.updatePickupAvailability(),window.scrollTo({top:scrollY,behavior:"instant"});return}this.setDisabled(),this.updateVariantInput(),this.updateUrl&&this.updateURL(),this.toggleAddButton(!this.currentVariant.available,window.theme.variantStrings.soldOut),this.updateMedia(),this.updatePickupAvailability(),window.scrollTo({top:scrollY,behavior:"instant"})})}toggleAddButton(disable=!0,text=!1,modifyClass=!0){const productForm=document.getElementById(`product-form-${this.dataset.section}`);if(!productForm)return;const productTemplate=productForm.closest(".product-form").getAttribute("template"),submitButtons=document.querySelectorAll(".single-add-to-cart-button");submitButtons&&submitButtons.forEach(submitButton=>{const submitButtonText=submitButton.querySelector(".single-add-to-cart-button--text");submitButtonText&&(disable?(submitButton.setAttribute("disabled","disabled"),text&&(submitButtonText.textContent=text)):(submitButton.removeAttribute("disabled"),submitButton.classList.remove("loading"),productTemplate?.includes("pre-order")?submitButtonText.textContent=window.theme.variantStrings.preOrder:submitButtonText.textContent=window.theme.variantStrings.addToCart))})}setUnavailable(){const submitButtons=document.querySelectorAll(".single-add-to-cart-button"),price=document.getElementById(`price-${this.dataset.section}`),price_fixed=document.getElementById(`price-${this.dataset.section}--sticky`);submitButtons.forEach(submitButton=>{const submitButtonText=submitButton.querySelector(".single-add-to-cart-button--text");submitButton&&(submitButtonText.textContent=window.theme.variantStrings.unavailable,submitButton.classList.add("sold-out"))}),price&&price.classList.add("visibility-hidden"),price_fixed&&price_fixed.classList.add("visibility-hidden")}setDisabled(){if(this.isDisabledFeature=="true")return this.fieldsets.forEac
1h(fieldset=>{fieldset.querySelector("select")?fieldset.querySelectorAll("option").forEach(opt=>{opt.disabled=opt.dataset.available==="false"}):fieldset.querySelectorAll("input").forEach(input=>{input.classList.toggle("is-disabled",input.dataset.available==="false")})}),!0}setImageSet(){if(!this.productSlider)return;let dataSetEl=this.productSlider.querySelector("[data-set-name]");dataSetEl&&(this.imageSetName=dataSetEl.dataset.setName,this.imageSetIndex=this.querySelector('.product-form__input[data-handle="'+this.imageSetName+'"]').dataset.index,this.dataset.imageSetIndex=this.imageSetIndex,this.setImageSetMedia())}setImageSetMedia(){if(!this.imageSetIndex)return;const optionPosition=parseInt(this.imageSetIndex.replace("option",""),10)-1,fieldset=this.fieldsets[optionPosition];if(!fieldset)return;const select=fieldset.querySelector("select"),checked=fieldset.querySelector("input:checked");let setValue;if(select&&select.selectedOptions[0]?setValue=select.selectedOptions[0].dataset.handle:checked&&(setValue=checked.dataset.handle),!setValue)return;let group=this.imageSetName+"_"+setValue,selected_set_images=this.productWrapper.querySelectorAll(`.product-images__slide[data-set-name="${this.imageSetName}"]`),selected_set_thumbs=this.productWrapper.querySelectorAll(`.product-thumbnail[data-set-name="${this.imageSetName}"]`);this.hideVariants&&(this.productWrapper.querySelectorAll(".product-images__slide").forEach(thumb=>{thumb.dataset.group&&thumb.dataset.group!==group&&thumb.classList.remove("is-active")}),selected_set_images.forEach(thumb=>{thumb.classList.toggle("is-active",thumb.dataset.group===group)}),this.productWrapper.querySelectorAll(".product-thumbnail").forEach(thumb=>{thumb.dataset.group&&thumb.dataset.group!==group&&thumb.classList.remove("is-active")}),selected_set_thumbs.forEach(thumb=>{thumb.classList.toggle("is-active",thumb.dataset.group===group)}))}}customElements.define("variant-selects",VariantSelects);class VariantRadios extends VariantSelects{constructor(){super()}updateOptions(){const fieldsets=Array.from(this.querySelectorAll("fieldset"));this.options=fieldsets.map(fieldset=>Array.from(fieldset.querySelectorAll("input")).find(radio=>radio.checked).value)}}customElements.define("variant-radios",VariantRadios)}if(!customElements.get("product-slider")){class ProductSlider extends HTMLElement{constructor(){super(),this.addEventListener("change",this.setupProductGallery)}connectedCallback(){this.product_container=this.closest(".thb-product-detail"),this.thumbnail_container=this.product_container.querySelector(".product-thumbnail-container"),this.video_containers=this.querySelectorAll(".product-single__media-external-video--play"),this.setOptions(),this.init()}setOptions(){this.hide_variants=this.dataset.hideVariants=="true",this.thumbnails=this.thumbnail_container.querySelectorAll(".product-thumbnail"),this.prev_button=this.querySelector(".flickity-prev"),this.next_button=this.querySelector(".flickity-next"),this.options={wrapAround:!0,pageDots:!0,contain:!0,adaptiveHeight:!0,initialIndex:".is-initial-selected",prevNextButtons:!1,fade:!1,cellSelector:".product-images__slide.is-active"}}init(){this.flkty=new Flickity(this,this.options),this.selectedIndex=this.flkty.selectedIndex,this.setupEvents(),this.setupProductGallery()}reInit(imageSetIndex){this.flkty.destroy(),this.setOptions(),this.flkty=new Flickity(this,this.options),this.setupEvents(),this.selectedIndex=this.flkty.selectedIndex}setupEvents(){const _this=this;if(this.prev_button){let prev=this.prev_button.cloneNode(!0);this.prev_button.parentNode.append(prev),this.prev_button.remove(),prev.addEventListener("click",event=>{this.flkty.previous()}),prev.addEventListener("keyup",event=>{this.flkty.previous(),event.preventDefault()})}if(this.next_button){let next=this.next_button.cloneNode(!0);this.next_button.parentNode.append(next),this.next_button.remove(),next.addEventListener("click",event=>{this.flkty.next()}),next.addEventListener("keyup",event=>{this.flkty.next(),event.preventDefault()})}this.video_containers.forEach(container=>{container.querySelector("button").addEventListener("click",function(){container.setAttribute("hidden","")})}),this.flkty.on("settle",function(index){_this.selectedIndex=index}),this.flkty.on("change",index=>{let previous_slide=this.flkty.cells[_this.selectedIndex].element,previous_media=previous_slide.querySelector(".product-single__media"),active_thumbs=Array.from(this.thumbnails).filter(element=>element.classList.contains("is-active")),active_thumb=active_thumbs[index]?active_thumbs[index]:active_thumbs[0];
1this.thumbnails.forEach((item,i)=>{item.classList.remove("is-initial-selected")}),active_thumb.classList.add("is-initial-selected"),requestAnimationFrame(()=>{if(active_thumb.offsetParent===null)return;const windowHalfHeight=active_thumb.offsetParent.clientHeight/2,windowHalfWidth=active_thumb.offsetParent.clientWidth/2;active_thumb.parentElement.scrollTo({left:active_thumb.offsetLeft-windowHalfWidth+active_thumb.clientWidth/2,top:active_thumb.offsetTop-windowHalfHeight+active_thumb.clientHeight/2,behavior:"smooth"})}),previous_media.classList.contains("product-single__media-external-video")?(previous_media.dataset.provider==="youtube"?previous_media.querySelector("iframe").contentWindow.postMessage(JSON.stringify({event:"command",func:"pauseVideo",args:""}),"*"):previous_media.dataset.provider==="vimeo"&&previous_media.querySelector("iframe").contentWindow.postMessage(JSON.stringify({method:"pause"}),"*"),previous_media.querySelector(".product-single__media-external-video--play").removeAttribute("hidden")):previous_media.classList.contains("product-single__media-native-video")&&previous_media.querySelector("video").pause()}),setTimeout(()=>{Array.from(this.thumbnails).filter(element=>element.clientWidth>0).forEach((thumbnail,index)=>{thumbnail.addEventListener("click",()=>{this.thumbnailClick(thumbnail,index)})})})}thumbnailClick(thumbnail,index){[].forEach.call(this.thumbnails,function(el){el.classList.remove("is-initial-selected")}),thumbnail.classList.add("is-initial-selected"),this.flkty.select(index)}setDraggable(draggable){this.flkty.options.draggable=draggable,this.flkty.updateDraggable()}selectCell(mediaId){this.flkty.selectCell(mediaId)}setupProductGallery(){this.querySelectorAll(".product-single__media-zoom").length&&(this.setEventListeners(),document.addEventListener("product:variant-change",e=>{e.detail&&e.detail.variantTitle&&e.detail.variantTitle!=="Default Title"&&(this.dataset.variantTitle=e.detail.variantTitle)}))}buildItems(){return this.activeImages=Array.from(this.querySelectorAll(".product-images__slide.is-active .product-single__media-image")),this.activeImages.map(item=>{let index=[].indexOf.call(item.parentNode.parentNode.children,item.parentNode),activelink=item.querySelector(".product-single__media-zoom");return activelink.dataset.index=index,{src:activelink.getAttribute("href"),msrc:activelink.dataset.msrc,w:activelink.dataset.w,h:activelink.dataset.h,thumbSrc:activelink.dataset.thumbSrc||activelink.dataset.msrc}})}setEventListeners(){this.links=this.querySelectorAll(".product-single__media-zoom"),this.pswpElement=document.querySelectorAll(".pswp")[0],this.pswpOptions={maxSpreadZoom:2,loop:!0,allowPanToNext:!0,closeOnScroll:!1,showHideOpacity:!1,arrowKeys:!0,history:!1,captionEl:!1,fullscreenEl:!1,zoomEl:!1,shareEl:!1,counterEl:!0,arrowEl:!0,preloaderEl:!0,getThumbBoundsFn:()=>{const thumbnail=this.querySelector(".product-images__slide.is-selected"),pageYScroll=window.pageYOffset||document.documentElement.scrollTop,rect=thumbnail.getBoundingClientRect();return{x:rect.left,y:rect.top+pageYScroll,w:rect.width}}},this.links.forEach((link=>{link.addEventListener("click",e=>this.zoomClick(e,link))}))}disconnectedCallback(){this.flkty&&this.flkty.destroy()}buildPswpThumbnails(items){const container=this.pswpElement.querySelector(".pswp__thumbs-inner");if(container){if(container.innerHTML="",this.dataset.lightboxThumbnails==="false"||items.length<=1){container.parentElement.style.display="none";return}container.parentElement.style.display="",items.forEach((item,index)=>{const thumb=document.createElement("div");thumb.className="pswp__thumb",thumb.dataset.index=index;const img=document.createElement("img");img.src=item.thumbSrc,img.alt="",img.loading="lazy",thumb.appendChild(img),container.appendChild(thumb)})}}updatePswpProductInfo(){const infoEl=this.pswpElement.querySelector(".pswp__product-info");if(!infoEl)return;if(this.dataset.lightboxProductInfo==="false"){infoEl.style.display="none";return}infoEl.style.display="";const titleEl=infoEl.querySelector(".pswp__product-title"),variantEl=infoEl.querySelector(".pswp__variant-title");titleEl&&(titleEl.textContent=this.dataset.productTitle||""),variantEl&&(variantEl.textContent=this.dataset.variantTitle||"")}syncPswpThumbnails(index){const container=this.pswpElement.querySelector(".pswp__thumbs-inner");if(!container)return;container.querySelectorAll(".pswp__thumb").forEach((t,i)=>{t.classList.toggle("is-active",i===index)});const activeThumb=container.querySelector(".pswp__thumb.is-active");activeThumb&&activeThumb.scrollIntoView({inline:"center",behavior:"smooth",block:"nearest"})}zoomClick(e,link){if(this.items=this.buildItems(),this.pswpOptions.index=parseInt(link.dataset.index,10),typeof PhotoSwipe<"u"){this.buildPswpThumbnails(this.items),this.updatePswpProductInfo();const bottomBar=this.pswpElement.querySelector(".pswp__bottom-bar");bottomBar&&["mousedown","touchstart","pointerdown"].forEach(evtName=>{bottomBar.addEventListener(evtName,evt=>evt.stopPropagation())});let pswp=new PhotoSwipe(this.pswpElement,PhotoSwipeUI_Default,this.items,this.pswpOptions);const _this=this;document.body.classList.add("open-lightbox"),pswp.listen("firstUpdate",function(){pswp.listen("destroy",function(){document.body.classList.remove("open-lightbox")}),pswp.listen("parseVerticalMargin",function(item){item.vGap={top:50,bottom:140}})});const scrollWrap=this.pswpElement.querySelector(".pswp__scroll-wrap"),resetScroll=function(){scrollWrap&&(scrollWrap.scrollLeft=0),_this.pswpElement.scrollLeft=0};
1pswp.listen("beforeChange",function(){const index=pswp.getCurrentIndex();_this.syncPswpThumbnails(index),resetScroll(),_this.flkty&&_this.flkty.select(index)});const thumbsInner=this.pswpElement.querySelector(".pswp__thumbs-inner");thumbsInner&&thumbsInner.addEventListener("click",function(evt){evt.stopPropagation();const thumb=evt.target.closest(".pswp__thumb");thumb&&(pswp.goTo(parseInt(thumb.dataset.index,10)),resetScroll())}),pswp.listen("close",function(){const container=_this.pswpElement.querySelector(".pswp__thumbs-inner");container&&(container.innerHTML="")}),pswp.init(),this.syncPswpThumbnails(this.pswpOptions.index)}e.preventDefault()}}customElements.define("product-slider",ProductSlider)}if(customElements.get("product-form")||customElements.define("product-form",class extends HTMLElement{constructor(){super()}connectedCallback(){this.sticky=this.dataset.sticky,this.form=document.getElementById(`product-form-${this.dataset.section}`),this.form.querySelector("[name=id]").disabled=!1,this.sticky||this.form.addEventListener("submit",this.onSubmitHandler.bind(this)),this.cartNotification=document.querySelector("cart-notification"),this.body=document.body,this.hideErrors=this.dataset.hideErrors==="true"}onSubmitHandler(evt){if(evt.preventDefault(),!this.form.reportValidity())return;const submitButtons=document.querySelectorAll(".single-add-to-cart-button");submitButtons.forEach(submitButton=>{submitButton.classList.contains("loading")||(submitButton.setAttribute("aria-disabled",!0),submitButton.classList.add("loading"))}),this.handleErrorMessage();const config={method:"POST",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"application/javascript"}};let formData=new FormData(this.form);formData.append("sections",this.getSectionsToRender().map(section=>section.section)),formData.append("sections_url",window.location.pathname),config.body=formData,fetch(`${theme.routes.cart_add_url}`,config).then(response=>response.json()).then(response=>{if(response.status){dispatchCustomEvent("product:variant-error",{source:"product-form",productVariantId:formData.get("id"),errors:response.description,message:response.message}),response.status===422&&document.documentElement.dispatchEvent(new CustomEvent("cart:refresh",{bubbles:!0})),this.handleErrorMessage(response.description);return}this.renderContents(response),dispatchCustomEvent("cart:item-added",{product:response.hasOwnProperty("items")?response.items[0]:response})}).catch(e=>{console.error(e)}).finally(()=>{submitButtons.forEach(submitButton=>{submitButton.classList.remove("loading"),submitButton.removeAttribute("aria-disabled")})})}getSectionsToRender(){return[{id:"Cart",section:"main-cart",selector:".thb-cart-form"},{id:"Cart-Drawer",section:"cart-drawer",selector:".cart-drawer"},{id:"cart-drawer-toggle",section:"cart-bubble",selector:".thb-item-count"}]}renderContents(parsedState){this.getSectionsToRender().forEach((section=>{if(!document.getElementById(section.id))return;const elementToReplace=document.getElementById(section.id).querySelector(section.selector)||document.getElementById(section.id);elementToReplace.innerHTML=this.getSectionInnerHTML(parsedState.sections[section.section],section.selector),typeof Cart<"u"&&new Cart().renderContents(parsedState)}));let product_drawer=document.getElementById("Product-Drawer"),search_drawer=document.getElementById("Search-Drawer");search_drawer&&OverlayManager.isOpen(search_drawer)&&OverlayManager.close(search_drawer),product_drawer&&product_drawer.contains(this)&&OverlayManager.close(product_drawer),document.getElementById("Cart-Drawer")&&document.getElementById("Cart-Drawer").open()}getSectionInnerHTML(html,selector=".shopify-section"){return new DOMParser().parseFromString(html,"text/html").querySelector(selector).innerHTML}handleErrorMessage(errorMessage=!1){this.hideErrors||(this.errorMessageWrapper=this.errorMessageWrapper||this.querySelector(".product-form__error-message-wrapper"),this.errorMessageWrapper&&(this.errorMessage=this.errorMessage||this.errorMessageWrapper.querySelector(".product-form__error-message"),this.errorMessageWrapper.toggleAttribute("hidden",!errorMessage),errorMessage&&(this.errorMessage.textContent=errorMessage)))}}),!customElements.get("product-add-to-cart-sticky")){class ProductAddToCartSticky extends HTMLElement{constructor(){super(),this.animations_enabled=document.body.classList.contains("animations-true")&&t
1ypeof gsap<"u"}connectedCallback(){this.setupObservers(),this.setupToggle()}disconnectedCallback(){this.observer&&this.observer.disconnect(),this.tl&&this.tl.kill()}setupToggle(){const button=this.querySelector(".product-add-to-cart-sticky--inner"),content=this.querySelector(".product-add-to-cart-sticky--content");this.animations_enabled?(this.tl=gsap.timeline({reversed:!0,paused:!0,onStart:()=>{button.classList.add("sticky-open")},onReverseComplete:()=>{button.classList.remove("sticky-open")}}),this.tl.set(content,{display:"block",height:"auto"},"start").from(content,{height:0,duration:.25},"start+=0.001"),button.addEventListener("click",()=>(this.tl.reversed()?this.tl.play():this.tl.reverse(),!1))):button.addEventListener("click",function(){return content.classList.toggle("active"),!1})}setupObservers(){let _this=this;this.observer=new IntersectionObserver(function(entries){entries.forEach(entry=>{if(entry.target===footer&&(entry.intersectionRatio>0?_this.classList.remove("sticky--visible"):entry.intersectionRatio==0&&_this.formPassed&&_this.classList.add("sticky--visible")),entry.target===form){let boundingRect=form.getBoundingClientRect();entry.intersectionRatio===0&&window.scrollY>boundingRect.top+boundingRect.height?(_this.formPassed=!0,_this.classList.add("sticky--visible")):entry.intersectionRatio===1&&(_this.formPassed=!1,_this.classList.remove("sticky--visible"))}})},{threshold:[0,1]});let form=document.getElementById(`product-form-${this.dataset.section}`),footer=document.getElementById("footer");_this.formPassed=!1,this.observer.observe(form),this.observer.observe(footer)}}customElements.define("product-add-to-cart-sticky",ProductAddToCartSticky)}if(!customElements.get("side-panel-links")){class ProductSidePanelLinks extends HTMLElement{constructor(){super(),this.links=this.querySelectorAll("button"),this.drawer=document.getElementById("Product-Information-Drawer"),this.buttons=this.drawer.querySelector(".side-panel-content--tabs"),this.panels=this.drawer.querySelector(".side-panel-content--inner").querySelectorAll(".side-panel-content--tab-panel"),this.body=document.body}connectedCallback(){this.setupObservers()}disconnectedCallback(){}setupObservers(){this.links.forEach((item,i)=>{item.addEventListener("click",e=>{this.buttons.toggleActiveClass(i),OverlayManager.open(this.drawer)})})}}customElements.define("side-panel-links",ProductSidePanelLinks)}typeof addIdToRecentlyViewed<"u"&&addIdToRecentlyViewed();
2//# sourceMappingURL=/cdn/shop/t/58/assets/product.js.map?v=670621749021325111789493194

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.