1if(!customElements.get("product-ingredients")){class ComponentProductIngredients extends HTMLElement{constructor(){super(),this.sliderElement=this.querySelector(".keen-slider"),this.carouselMode=this.dataset.carouselMode,this.carouselLoop=this.dataset.carouselLoop,this.carouselAutoplay=this.dataset.carouselAutoplay,this.carouselCenteredDesktop=this.dataset.carouselCenteredDesktop,this.carouselSpacingDesktop=this.dataset.carouselSpacingDesktop,this.slidesPerViewDesktop=this.dataset.slidesPerViewDesktop,this.carouselCenteredTablet=this.dataset.carouselCenteredTablet,this.carouselSpacingTablet=this.dataset.carouselSpacingTablet,this.slidesPerViewTablet=this.dataset.slidesPerViewTablet,this.carouselCenteredMobile=this.dataset.carouselCenteredMobile,this.carouselSpacingMobile=this.dataset.carouselSpacingMobile,this.slidesPerViewMobile=this.dataset.slidesPerViewMobile,this.paginateCurrent=this.querySelector(".current"),this.paginateLength=this.querySelector(".length"),setTimeout(()=>{this.initSlider()},1),this.currentMediaSize="medium",this.mediumTarget=this.querySelector(".gallery-target"),this.largeTarget=this.querySelector(".gallery-target-large"),this.galleryToMove=this.querySelector(".gallery-ingredients"),window.addEventListener("mediaChange",()=>{this.handleMediaChange()}),this.handleMediaChange();var cards=this.querySelectorAll(".ingredient-card"),usingTouchControls=!1;cards.forEach(card=>{this.setupCardAccessibility(card),hoverintent(card,()=>{usingTouchControls||card.classList.add("active")},()=>{usingTouchControls||card.classList.remove("active")}),card.addEventListener("touchstart",()=>{usingTouchControls||(usingTouchControls=!0),card.classList.add("touched")}),card.addEventListener("click",()=>{card.classList.contains("active")?(card.classList.remove("active"),this.updateCardAccessibility(card,!1)):(card.classList.add("active"),this.updateCardAccessibility(card,!0))})})}handleMediaChange(){$s.media.isLarge&&this.currentMediaSize!="large"&&(this.currentMediaSize="large",this.largeTarget.appendChild(this.galleryToMove),this.sliderObj&&this.sliderObj.destroy(),this.initSlider()),$s.media.isMediumDown&&this.currentMediaSize!="medium"&&(this.currentMediaSize="medium",this.mediumTarget.appendChild(this.galleryToMove),this.sliderObj&&this.sliderObj.destroy(),this.initSlider())}initSlider(){this.sliderObj=new KeenSlider(this.sliderElement,{mode:this.carouselMode,loop:this.carouselLoop=="true",dots:this.querySelector(".keen-dots"),prevButton:this.querySelector(".keen-arrow.prev"),nextButton:this.querySelector(".keen-arrow.next"),slideCounter:this.querySelector(".paginate"),autoplay:this.carouselAutoplay,slideChanged:keen=>{var slides=keen.slides();this.paginateCurrent.textContent=slides.indexOf(keen.currentSlide())+1,this.paginateLength.textContent=slides.length},breakpoints:{"(min-width: 1051px)":{centered:this.carouselCenteredDesktop=="true",spacing:this.carouselSpacingDesktop,slidesPerView:this.slidesPerViewDesktop},"(min-width: 601px) and (max-width: 1050px)":{centered:this.carouselCenteredTablet=="true",spacing:this.carouselSpacingTablet,slidesPerView:this.slidesPerViewTablet},"(max-width: 600px)":{centered:this.carouselCenteredMobile=="true",spacing:this.carouselSpacingMobile,slidesPerView:this.slidesPerViewMobile}}}),this.normalizeSlideFocus(),setTimeout(()=>{this.normalizeSlideFocus()},0)}normalizeSlideFocus(){this.querySelectorAll(".keen-slider-slide").forEach(sli
1de=>{slide.setAttribute("tabindex","-1")})}setupCardAccessibility(card){var name=card.querySelector(".ingredient-name"),description=card.querySelector(".ingredient-description");!name||!description||(name.id||(name.id="ingredient-name-"+Math.random().toString(36).slice(2,9)),description.id||(description.id="ingredient-description-"+Math.random().toString(36).slice(2,9)),card.setAttribute("tabindex","0"),card.setAttribute("aria-labelledby",name.id),card.setAttribute("aria-describedby",description.id),card.setAttribute("aria-expanded",card.classList.contains("active")?"true":"false"),this.updateCardAccessibility(card,card.classList.contains("active")),card.addEventListener("focusin",()=>{card.classList.add("active"),this.updateCardAccessibility(card,!0)}),card.addEventListener("keydown",event=>{if(!(event.key!=="Tab"||event.shiftKey||document.activeElement!==card)){var firstFocusable=this.getCardDescriptionFocusable(card)[0];firstFocusable&&(event.preventDefault(),card.classList.add("active"),this.updateCardAccessibility(card,!0),firstFocusable.focus())}}),card.addEventListener("focusout",event=>{card.contains(event.relatedTarget)||card.classList.contains("touched")||(card.classList.remove("active"),this.updateCardAccessibility(card,!1))}),this.getCardDescriptionFocusable(card).forEach((element,index)=>{element.addEventListener("keydown",event=>{event.key!=="Tab"||!event.shiftKey||index!==0||(event.preventDefault(),card.focus())})}))}updateCardAccessibility(card,expanded){card.setAttribute("aria-expanded",expanded?"true":"false"),this.getCardDescriptionFocusable(card).forEach(element=>{expanded?element.dataset.ingredientCardTabindex?element.setAttribute("tabindex",element.dataset.ingredientCardTabindex):element.removeAttribute("tabindex"):(element.hasAttribute("tabindex")&&!element.dataset.ingredientCardTabindex&&(element.dataset.ingredientCardTabindex=element.getAttribute("tabindex")),element.setAttribute("tabindex","-1"))})}getCardDescriptionFocusable(card){return Array.prototype.slice.call(card.querySelectorAll(".ingredient-description a[href], .ingredient-description button, .ingredient-description input, .ingredient-description select, .ingredient-description textarea, .ingredient-description [tabindex]"))}}customElements.define("product-ingredients",ComponentProductIngredients)} 2//# sourceMappingURL=/cdn/shop/t/138/assets/component_product_ingredients.js.map?v=83845787111724923011781211657
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.