1function getFocusableElements(container){return Array.from(container.querySelectorAll("summary, a[href], button:enabled, [tabindex]:not([tabindex^='-']), [draggable], area, input:not([type=hidden]):enabled, select:enabled, textarea:enabled, object, iframe"))}class SectionId{static#separator="__";static parseId(qualifiedSectionId){return qualifiedSectionId.split(SectionId.#separator)[0]}static parseSectionName(qualifiedSectionId){return qualifiedSectionId.split(SectionId.#separator)[1]}static getIdForSection(sectionId,sectionName){return`${sectionId}${SectionId.#separator}${sectionName}`}}class HTMLUpdateUtility{static viewTransition(oldNode,newContent,preProcessCallbacks=[],postProcessCallbacks=[]){preProcessCallbacks?.forEach(callback=>callback(newContent));const newNodeWrapper=document.createElement("div");HTMLUpdateUtility.setInnerHTML(newNodeWrapper,newContent.outerHTML);const newNode=newNodeWrapper.firstChild,uniqueKey=Date.now();oldNode.querySelectorAll("[id], [form]").forEach(element=>{element.id&&(element.id=`${element.id}-${uniqueKey}`),element.form&&element.setAttribute("form",`${element.form.getAttribute("id")}-${uniqueKey}`)}),oldNode.parentNode.insertBefore(newNode,oldNode),oldNode.style.display="none",postProcessCallbacks?.forEach(callback=>callback(newNode)),setTimeout(()=>oldNode.remove(),500)}static setInnerHTML(element,html){element.innerHTML=html,element.querySelectorAll("script").forEach(oldScriptTag=>{const newScriptTag=document.createElement("script");Array.from(oldScriptTag.attributes).forEach(attribute=>{newScriptTag.setAttribute(attribute.name,attribute.value)}),newScriptTag.appendChild(document.createTextNode(oldScriptTag.innerHTML)),oldScriptTag.parentNode.replaceChild(newScriptTag,oldScriptTag)})}}document.querySelectorAll('[id^="Details-"] summary').forEach(summary=>{summary.setAttribute("role","button"),summary.setAttribute("aria-expanded",summary.parentNode.hasAttribute("open")),summary.nextElementSibling.getAttribute("id")&&summary.setAttribute("aria-controls",summary.nextElementSibling.id),summary.addEventListener("click",event=>{event.currentTarget.setAttribute("aria-expanded",!event.currentTarget.closest("details").hasAttribute("open"))}),!summary.closest("header-drawer, menu-drawer")&&summary.parentElement.addEventListener("keyup",onKeyUpEscape)});const trapFocusHandlers={};function trapFocus(container,elementToFocus=container){var elements=getFocusableElements(container),first=elements[0],last=elements[elements.length-1];removeTrapFocus(),trapFocusHandlers.focusin=event=>{event.target!==container&&event.target!==last&&event.target!==first||document.addEventListener("keydown",trapFocusHandlers.keydown)},trapFocusHandlers.focusout=function(){document.removeEventListener("keydown",trapFocusHandlers.keydown)},trapFocusHandlers.keydown=function(event){event.code.toUpperCase()==="TAB"&&(event.target===last&&!event.shiftKey&&(event.preventDefault(),first.focus()),(event.target===container||event.target===first)&&event.shiftKey&&(event.preventDefault(),last.focus()))},document.addEventListener("focusout",trapFocusHandlers.focusout),document.addEventListener("focusin",trapFocusHandlers.focusin),elementToFocus.focus(),elementToFocus.tagName==="INPUT"&&["search","text","email","url"].includes(elementToFocus.type)&&elementToFocus.value&&elementToFocus.setSelectionRange(0,elementToFocus.value.length)}try{document.querySelector(":focus-visible")}catch{focusVisiblePolyfill()}function focusVisiblePolyfill(){const navKeys=["ARROWUP","ARROWDOWN","ARROWLEFT","ARROWRIGHT","TAB","ENTER","SPACE","ESCAPE","HOME","END","PAGEUP","PAGEDOWN"];let currentFocusedElement=null,mouseClick=null;window.addEventListener("keydown",event=>{navKeys.includes(event.code.toUpperCase())&&(mouseClick=!1)}),window.addEventListener("mousedown",event=>{mouseClick=!0}),window.addEventListener("focus",()=>{currentFocusedElement&¤tFocusedElement.classList.remove("focused"),!mouseClick&&(currentFocusedElement=document.activeElement,currentFocusedElement.classList.add("focused"))},!0)}function pauseAllMedia(){document.querySelectorAll(".js-youtube").forEach(video=>{video.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),document.querySelectorAll(".js-vimeo").forEach(video=>{video.contentWindow.postMessage('{"method":"pause"}',"*")}),document.querySelectorAll("video").forEach(video=>video.pause()),document.querySelectorAll("product-model").forEach(model=>{model.modelViewerUI&&model.modelViewerUI.pause()})}function removeTrapFocus(elementToFocus=null){document.removeEventListener("focusin",trapFocusHandlers.focusin),document.removeEventListener("focusout",trapFocusHandlers.focusout),document.removeEventListener("keydown",trapFocusHandlers.keydown),elementToFocus&&elementToFocus.focus()}function onKeyUpEscape(event){if(event.code.toUpperCase()!=="ESCAPE")return;const openDetailsElement=event.target.closest("details[open]");if(!openDetailsElement)return;const summaryElement=openDetailsElement.querySelector("summary");openDetailsElement.removeAttribute("open"),summaryElement.setAttribute("aria-expanded",!1),summaryElement.focus()}class QuantityInput extends HTMLElement{constructor(){super(),this.input=this.querySelector("input"),this.changeEvent=ne
1w Event("change",{bubbles:!0}),this.input.addEventListener("change",this.onInputChange.bind(this)),this.querySelectorAll("button").forEach(button=>button.addEventListener("click",this.onButtonClick.bind(this)))}quantityUpdateUnsubscriber=void 0;connectedCallback(){this.validateQtyRules(),this.quantityUpdateUnsubscriber=subscribe(PUB_SUB_EVENTS.quantityUpdate,this.validateQtyRules.bind(this))}disconnectedCallback(){this.quantityUpdateUnsubscriber&&this.quantityUpdateUnsubscriber()}onInputChange(event){this.validateQtyRules()}onButtonClick(event){event.preventDefault();const previousValue=this.input.value;event.target.name==="plus"?parseInt(this.input.dataset.min)>parseInt(this.input.step)&&this.input.value==0?this.input.value=this.input.dataset.min:this.input.stepUp():this.input.stepDown(),previousValue!==this.input.value&&this.input.dispatchEvent(this.changeEvent),this.input.dataset.min===previousValue&&event.target.name==="minus"&&(this.input.value=parseInt(this.input.min))}validateQtyRules(){const value=parseInt(this.input.value),quantityButtons=this.querySelectorAll(".quantity__button");if(this.input.min&&quantityButtons.length>0&&this.querySelector(".quantity__button[name='minus']").classList.toggle("disabled",parseInt(value)<=parseInt(this.input.min)),this.input.max&&quantityButtons.length>0){const max=parseInt(this.input.max);this.querySelector(".quantity__button[name='plus']").classList.toggle("disabled",value>=max)}}}customElements.define("quantity-input",QuantityInput);function debounce(fn,wait){let t;return(...args)=>{clearTimeout(t),t=setTimeout(()=>fn.apply(this,args),wait)}}function throttle(fn,delay){let lastCall=0;return function(...args){const now=new Date().getTime();if(!(now-lastCall<delay))return lastCall=now,fn(...args)}}function fetchConfig(type="json"){return{method:"POST",headers:{"Content-Type":"application/json",Accept:`application/${type}`}}}typeof window.Shopify>"u"&&(window.Shopify={}),Shopify.bind=function(fn,scope){return function(){return fn.apply(scope,arguments)}},Shopify.setSelectorByValue=function(selector,value){for(var i=0,count=selector.options.length;i<count;i++){var option=selector.options[i];if(value==option.value||value==option.innerHTML)return selector.selectedIndex=i,i}},Shopify.addListener=function(target,eventName,callback){target.addEventListener?target.addEventListener(eventName,callback,!1):target.attachEvent("on"+eventName,callback)},Shopify.postLink=function(path,options){options=options||{};var method=options.method||"post",params=options.parameters||{},form=document.createElement("form");form.setAttribute("method",method),form.setAttribute("action",path);for(var key in params){var hiddenField=document.createElement("input");hiddenField.setAttribute("type","hidden"),hiddenField.setAttribute("name",key),hiddenField.setAttribute("value",params[key]),form.appendChild(hiddenField)}document.body.appendChild(form),form.submit(),document.body.removeChild(form)},Shopify.CountryProvinceSelector=function(country_domid,province_domid,options){this.countryEl=document.getElementById(country_domid),this.provinceEl=document.getElementById(province_domid),this.provinceContainer=document.getElementById(options.hideElement||province_domid),Shopify.addListener(this.countryEl,"change",Shopify.bind(this.countryHandler,this)),this.initCountry(),this.initProvince()},Shopify.CountryProvinceSelector.prototype={initCountry:function(){var value=this.countryEl.getAttribute("data-default");Shopify.setSelectorByValue(this.countryEl,value),this.countryHandler()},initProvince:function(){var value=this.provinceEl.getAttribute("data-default");value&&this.provinceEl.options.length>0&&Shopify.setSelectorByValue(this.provinceEl,value)},countryHandler:function(e){var opt=this.countryEl.options[this.countryEl.selectedIndex],raw=opt.getAttribute("data-provinces"),provinces=JSON.parse(raw);if(this.clearOptions(this.provinceEl),provinces&&provinces.length==0)this.provinceContainer.style.display="none";else{for(var i=0;i<provinces.length;i++){var opt=document.createElement("option");opt.value=provinces[i][0],opt.innerHTML=provinces[i][1],this.provinceEl.appendChild(opt)}this.provinceContainer.style.display=""}},clearOptions:function(selector){for(;selector.firstChild;)selector.removeChild(selector.firstChild)},setOptions:function(selector,values){for(var i=0,count=values.length;i<values.length;i++){var opt=document.createElement("option");opt.value=values[i],opt.innerHTML=values[i],selector.appendChild(opt)}}};class MenuDrawer extends HTMLElement{constructor(){super(),this.mainDetailsToggle=this.querySelector("details"),this.addEventListener("keyup",this.onKeyUp.bind(this)),this.addEventListener("focusout",this.onFocusOut.bind(this)),this.bindEvents()}bindEvents(){this.querySelectorAll("summary").forEach(summary=>summary.addEventListener("click",this.onSummaryClick.bind(this))),this.querySelectorAll("button:not(.localization-selector):not(.country-selector__close-button):not(.country-filter__reset-button)").forEach(button=>button.addEventListener("click",this.onCloseButtonClick.bind(this)))}onKeyUp(event){if(event.code.toUpperCase()!=="ESCAPE")return;const openDetailsElement=event.target.closest("details[open]");openDetailsElement&&(openDetailsElement===this.mainDetailsToggle?this.closeMenuDrawer(event,this.mainDetailsToggle.querySelector("summary")):this.closeSubmenu(openDetailsElement))}onSummaryClick(event){const summaryElement=event.currentTarget,detailsElement=summaryElement.parentNode,parentMenuElement=detailsElement.closest(".has-submenu"),isOpen=detailsElement.hasAttribute("open"),reducedMotion=window.matchMedia("(prefers-reduced-motion: reduce)");function addTrapFocus(){trapFocus(summaryElement.nextElementSibling,detailsElement.querySelector("button")),summaryElement.nextElementSibling.removeEventListener("transitionend",addTrapFocus)}detailsElement===this.mainDetailsToggle?(isOpen&&event.preventDefault(),isOpen?this.closeMenuDrawer(event,summaryElement):this.openMenuDrawer(summaryElement),window.matchMedia("(max-width: 990px)")&&document.documentElement.style.setProperty("--viewport-height",`${window.innerHeight}px`)):setTimeout(()=>{detailsElement.classList.add("menu-opening"),summaryElement.setAttribute("aria-expanded",!0),parentMenuElement&&parentMenuElement.classList.add("submenu-open"),!reducedMotion||reducedMotion.matches?addTrapFocus():summaryElement.nextElementSibling.addEventListener("transitionend",addTrapFocus)},100)}openMenuDrawer(summaryElement){setTimeout(()=>{this.mainDetailsToggle.classList.add("menu-opening")}),summaryElement.setAttribute("aria-expanded",!0),trapFocus(this.mainDetailsToggle,summaryElement),document.body.classList.add(`overflow-hidden-${this.dataset.breakpoint}`)}closeMenuDrawer(event,elementToFocus=!1){event!==void 0&&(this.mainDetailsToggle.classList.remove("menu-opening"),this.mainDetailsToggle.querySelectorAll("details").forEach(detail
1s=>{details.removeAttribute("open"),details.classList.remove("menu-opening")}),this.mainDetailsToggle.querySelectorAll(".submenu-open").forEach(submenu=>{submenu.classList.remove("submenu-open")}),document.body.classList.remove(`overflow-hidden-${this.dataset.breakpoint}`),removeTrapFocus(elementToFocus),this.closeAnimation(this.mainDetailsToggle),event instanceof KeyboardEvent&&elementToFocus?.setAttribute("aria-expanded",!1))}onFocusOut(){setTimeout(()=>{this.mainDetailsToggle.hasAttribute("open")&&!this.mainDetailsToggle.contains(document.activeElement)&&this.closeMenuDrawer()})}onCloseButtonClick(event){const detailsElement=event.currentTarget.closest("details");this.closeSubmenu(detailsElement)}closeSubmenu(detailsElement){const parentMenuElement=detailsElement.closest(".submenu-open");parentMenuElement&&parentMenuElement.classList.remove("submenu-open"),detailsElement.classList.remove("menu-opening"),detailsElement.querySelector("summary").setAttribute("aria-expanded",!1),removeTrapFocus(detailsElement.querySelector("summary")),this.closeAnimation(detailsElement)}closeAnimation(detailsElement){let animationStart;const handleAnimation=time=>{animationStart===void 0&&(animationStart=time),time-animationStart<400?window.requestAnimationFrame(handleAnimation):(detailsElement.removeAttribute("open"),detailsElement.closest("details[open]")&&trapFocus(detail
1sElement.closest("details[open]"),detailsElement.querySelector("summary")))};window.requestAnimationFrame(handleAnimation)}}customElements.define("menu-drawer",MenuDrawer);class HeaderDrawer extends MenuDrawer{constructor(){super()}openMenuDrawer(summaryElement){this.header=this.header||document.querySelector(".section-header"),this.borderOffset=this.borderOffset||this.closest(".header-wrapper").classList.contains("header-wrapper--border-bottom")?1:0,document.documentElement.style.setProperty("--header-bottom-position",`${parseInt(this.header.getBoundingClientRect().bottom-this.borderOffset)}px`),this.header.classList.add("menu-open"),setTimeout(()=>{this.mainDetailsToggle.classList.add("menu-opening")}),summaryElement.setAttribute("aria-expanded",!0),window.addEventListener("resize",this.onResize),trapFocus(this.mainDetailsToggle,summaryElement),document.body.classList.add(`overflow-hidden-${this.dataset.breakpoint}`)}closeMenuDrawer(event,elementToFocus){elementToFocus&&(super.closeMenuDrawer(event,elementToFocus),this.header.classList.remove("menu-open"),window.removeEventListener("resize",this.onResize))}onResize=()=>{this.header&&document.documentElement.style.setProperty("--header-bottom-position",`${parseInt(this.header.getBoundingClientRect().bottom-this.borderOffset)}px`),document.documentElement.style.setProperty("--viewport-height",`${window.innerHeight}px`)}}customElements.define("header-drawer",HeaderDrawer);class ModalDialog extends HTMLElement{constructor(){super(),this.querySelector('[id^="ModalClose-"]').addEventListener("click",this.hide.bind(this,!1)),this.addEventListener("keyup",event=>{event.code.toUpperCase()==="ESCAPE"&&this.hide()}),this.classList.contains("media-modal")?this.addEventListener("pointerup",event=>{event.pointerType==="mouse"&&!event.target.closest("deferred-media, product-model")&&this.hide()}):this.addEventListener("click",event=>{event.target===this&&this.hide()})}connectedCallback(){this.moved||(this.moved=!0,this.dataset.section=this.closest(".shopify-section").id.replace("shopify-section-",""),document.body.appendChild(this))}show(opener){this.openedBy=opener;const popup=this.querySelector(".template-popup");document.body.classList.add("overflow-hidden"),this.setAttribute("open",""),popup&&popup.loadContent(),trapFocus(this,this.querySelector('[role="dialog"]')),window.pauseAllMedia()}hide(){document.body.classList.remove("overflow-hidden"),document.body.dispatchEvent(new CustomEvent("modalClosed")),this.removeAttribute("open"),removeTrapFocus(this.openedBy),window.pauseAllMedia()}}customElements.define("modal-dialog",ModalDialog);class BulkModal extends HTMLElement{constructor(){super()}connectedCallback(){const handleIntersection=(entries,observer)=>{if(entries[0].isIntersecting&&(observer.unobserve(this),this.innerHTML.trim()==="")){const productUrl=this.dataset.url.split("?")[0];fetch(`${productUrl}?section_id=bulk-quick-order-list`).then(response=>response.text()).then(responseText=>{const sourceQty=new DOMParser().parseFromString(responseText,"text/html").querySelector(".quick-order-list-container").parentNode;this.innerHTML=sourceQty.innerHTML}).catch(e=>{console.error(e)})}};new IntersectionObserver(handleIntersection.bind(this)).observe(document.querySelector(`#QuickBulk-${this.dataset.productId}-${this.dataset.sectionId}`))}}customElements.define("bulk-modal",BulkModal);class BulkModalLatest extends HTMLElement{constructor(){super()}connectedCallback(){const handleIntersection=(entries,observer)=>{if(entries[0].isIntersecting&&(observer.unobserve(this),this.innerHTML.trim()==="")){const productUrl=this.dataset.url.split("?")[0];fetch(`${productUrl}?section_id=bulk-quick-order-list-latest`).then(response=>response.text()).then(responseText=>{const sourceQty=new DOMParser().parseFromString(responseText,"text/html").querySelector(".quick-order-list-container").parentNode;this.innerHTML=sourceQty.innerHTML}).catch(e=>{console.error(e)})}};new IntersectionObserver(handleIntersection.bind(this)).observe(document.querySelector(`#QuickBulk-${this.dataset.productId}-${this.dataset.sectionId}`))}}customElements.define("bulk-modal-latest",BulkModalLatest);class ModalOpener extends HTMLElement{constructor(){super();const button=this.querySelector("button");button&&button.addEventListener("click",()=>{const modal=document.querySelector(this.getAttribute("data-modal"));modal&&modal.show(button)})}}customElements.define("modal-opener",ModalOpener);class DeferredMedia extends HTMLElement{constructor(){super();const poster=this.querySelector('[id^="Deferred-Poster-"]');poster&&poster.addEventListener("click",this.loadContent.bind(this))}loadContent(focus=!0){if(window.pauseAllMedia(),!this.getAttribute("loaded")){const content=document.createElement("div");content.appendChild(this.querySelector("template").content.firstElementChild.cloneNode(!0)),this.setAttribute("loaded",!0);const deferredElement=this.appendChild(content.querySelector("video, model-viewer, iframe"));focus&&deferredElement.focus(),deferredElement.nodeName=="VIDEO"&&deferredElement.getAttribute("autoplay")&&deferredElement.play()}}}customElements.define("deferred-media",DeferredMedia);class SliderComponent extends HTMLElement{constructor(){if(super(),this.slider=this.querySelector('[id^="Slider-"]'),this.sliderItems=this.querySelectorAll('[id^="Slide-"]'),this.enableSliderLooping=!1,this.currentPageElement=this.querySelector(".slider-counter--current"),this.pageTotalElement=this.querySelector(".slider-counter--total"),this.prevButton=this.querySelector('button[name="previous"]'),this.nextButton=this.querySelector('button[name="next"]'),!this.slider||!this.nextButton)return;this.initPages(),new ResizeObserver(entries=>this.initPages()).observe(this.slider),this.slider.addEventListener("scroll",this.update.bind(this)),this.prevButton.addEventListener("click",this.onButtonClick.bind(this)),this.nextButton.addEventListener("click",this.onButtonClick.bind(this))}initPages(){if(this.sliderItemsToShow=Array.from(this.sliderItems).filter(element=>element.clientWidth>0),this.sliderItemsToShow.length<2)return;this.sliderItemOffset=this.sliderItemsToShow[1].offsetLeft-this.sliderItemsToShow[0].offsetLeft,this.slidesPerPage=Math.max(1,Math.floor((this.slider.clientWidth-this.sliderItemsToShow[0].offsetLeft)/this.sliderItemOffset)),this.totalPages=this.sliderItemsToShow.length-this.slidesPerPage;
1const dotsWrapper=this.querySelector(".slideshow__control-wrapper");if(dotsWrapper&&dotsWrapper.innerHTML.trim()==="")for(let i=0;i<=this.totalPages;i++){const btn=document.createElement("button");btn.className="slider-counter__link slider-counter__link--dots link",btn.setAttribute("aria-label","Load slide "+(i+1));const span=document.createElement("span");span.className="dot",btn.appendChild(span),dotsWrapper.appendChild(btn)}this.sliderControlLinksArray=Array.from(this.querySelectorAll(".slider-counter__link")),this.sliderControlLinksArray.forEach((link,index)=>{const newLink=link.cloneNode(!0);link.replaceWith(newLink),newLink.addEventListener("click",event=>{event.preventDefault();const slideScrollPosition=this.slider.scrollLeft+(index+1-this.currentPage)*this.sliderItemOffset;this.setSlidePosition(slideScrollPosition)})}),this.sliderControlLinksArray=Array.from(this.querySelectorAll(".slider-counter__link")),this.update()}resetPages(){this.sliderItems=this.querySelectorAll('[id^="Slide-"]'),this.initPages()}update(){if(!this.slider||!this.nextButton)return;const previousPage=this.currentPage;this.currentPage=Math.round(this.slider.scrollLeft/this.sliderItemOffset)+1,this.currentPageElement&&this.pageTotalElement&&(this.currentPageElement.textContent=this.currentPage,this.pageTotalElement.textContent=this.totalPages+1),this.currentPage!=previousPage&&this.dispatchEvent(new CustomEvent("slideChanged",{detail:{currentPage:this.currentPage,currentElement:this.sliderItemsToShow[this.currentPage-1]}})),this.sliderControlLinksArray&&this.sliderControlLinksArray.length>0&&(this.sliderControlLinksArray.forEach(link=>{link.classList.remove("slider-counter__link--active"),link.removeAttribute("aria-current")}),this.sliderControlLinksArray[this.currentPage-1]&&(this.sliderControlLinksArray[this.currentPage-1].classList.add("slider-counter__link--active"),this.sliderControlLinksArray[this.currentPage-1].setAttribute("aria-current","true"))),!this.enableSliderLooping&&(this.isSlideVisible(this.sliderItemsToShow[0])&&this.slider.scrollLeft===0?this.prevButton.setAttribute("disabled","disabled"):this.prevButton.removeAttribute("disabled"),this.isSlideVisible(this.sliderItemsToShow[this.sliderItemsToShow.length-1])?this.nextButton.setAttribute("disabled","disabled"):this.nextButton.removeAttribute("disabled"))}isSlideVisible(element,offset=0){const lastVisibleSlide=this.slider.clientWidth+this.slider.scrollLeft-offset;return element.offsetLeft+element.clientWidth<=lastVisibleSlide&&element.offsetLeft>=this.slider.scrollLeft}onButtonClick(event){event.preventDefault();const step=event.currentTarget.dataset.step||1;this.slideScrollPosition=event.currentTarget.name==="next"?this.slider.scrollLeft+step*this.sliderItemOffset:this.slider.scrollLeft-step*this.sliderItemOffset,this.setSlidePosition(this.slideScrollPosition)}setSlidePosition(position){this.slider.scrollTo({left:position})}}customElements.define("slider-component",SliderComponent);class SlideshowComponent extends SliderComponent{constructor(){super(),this.sliderControlWrapper=this.querySelector(".slider-buttons"),this.enableSliderLooping=!0,this.sliderControlWrapper&&(this.sliderFirstItemNode=this.slider.querySelector(".slideshow__slide"),this.sliderItemsToShow.length>0&&(this.currentPage=1),this.announcementBarSlider=this.querySelector(".announcement-bar-slider"),this.announcerBarAnimationDelay=this.announcementBarSlider?250:0,this.sliderControlLinksArray=Array.from(this.sliderControlWrapper.querySelectorAll(".slider-counter__link")),this.sliderControlLinksArray.forEach(link=>link.addEventListener("click",this.linkToSlide.bind(this))),this.slider.addEventListener("scroll",this.setSlideVisibility.bind(this)),this.setSlideVisibility(),this.announcementBarSlider&&(this.announcementBarArrowButtonWasClicked=!1,this.reducedMotion=window.matchMedia("(prefers-reduced-motion: reduce)"),this.reducedMotion.addEventListener("change",()=>{this.slider.getAttribute("data-autoplay")==="true"&&this.setAutoPlay()}),[this.prevButton,this.nextButton].forEach(button=>{button.addEventListener("click",()=>{this.announcementBarArrowButtonWasClicked=!0},{once:!0})})),this.slider.getAttribute("data-autoplay")==="true"&&this.setAutoPlay())}setAutoPlay(){this.autoplaySpeed=this.slider.dataset.speed*1e3,this.addEventListener("mouseover",this.focusInHandling.bind(this)),this.addEventListener("mouseleave",this.focusOutHandling.bind(this)),this.addEventListener("focusin",this.focusInHandling.bind(this)),this.addEventListener("focusout",this.focusOutHandling.bind(this)),this.querySelector(".slideshow__autoplay")?(this.sliderAutoplayButton=this.querySelector(".slideshow__autoplay"),this.sliderAutoplayButton.addEventListener("click",this.autoPlayToggle.bind(this)),this.autoplayButtonIsSetToPlay=!0,this.play()):this.reducedMotion.matches||this.announcementBarArrowButtonWasClicked?this.pause():this.play()}onButtonClick(event){super.onButtonClick(event),this.wasClicked=!0;const isFirstSlide=this.currentPage===1,isLastSlide=this.currentPage===this.sliderItemsToShow.length;if(!isFirstSlide&&!isLastSlide){this.applyAnimationToAnnouncementBar(event.currentTarget.name);return}isFirstSlide&&event.currentTarget.name==="previous"?this.slideScrollPosition=this.slider.scrollLeft+this.sliderFirstItemNode.clientWidth*this.sliderItemsToShow.length:isLastSlide&&event.currentTarget.name==="next"&&(this.slideScrollPosition=0),this.setSlidePosition(this.slideScrollPosition),this.applyAnimationToAnnouncementBar(event.currentTarget.name)}
1setSlidePosition(position){this.setPositionTimeout&&clearTimeout(this.setPositionTimeout),this.setPositionTimeout=setTimeout(()=>{this.slider.scrollTo({left:position})},this.announcerBarAnimationDelay)}update(){super.update(),this.sliderControlButtons=this.querySelectorAll(".slider-counter__link"),this.prevButton.removeAttribute("disabled"),this.sliderControlButtons.length&&(this.sliderControlButtons.forEach(link=>{link.classList.remove("slider-counter__link--active"),link.removeAttribute("aria-current")}),this.sliderControlButtons[this.currentPage-1].classList.add("slider-counter__link--active"),this.sliderControlButtons[this.currentPage-1].setAttribute("aria-current",!0))}autoPlayToggle(){this.togglePlayButtonState(this.autoplayButtonIsSetToPlay),this.autoplayButtonIsSetToPlay?this.pause():this.play(),this.autoplayButtonIsSetToPlay=!this.autoplayButtonIsSetToPlay}focusOutHandling(event){if(this.sliderAutoplayButton){const focusedOnAutoplayButton=event.target===this.sliderAutoplayButton||this.sliderAutoplayButton.contains(event.target);if(!this.autoplayButtonIsSetToPlay||focusedOnAutoplayButton)return;this.play()}else!this.reducedMotion.matches&&!this.announcementBarArrowButtonWasClicked&&this.play()}focusInHandling(event){this.sliderAutoplayButton?(event.target===this.sliderAutoplayButton||this.sliderAutoplayButton.contains(event.target))&&this.autoplayButtonIsSetToPlay?this.play():this.autoplayButtonIsSetToPlay&&this.pause():this.announcementBarSlider.contains(event.target)&&this.pause()}play(){this.slider.setAttribute("aria-live","off"),clearInterval(this.autoplay),this.autoplay=setInterval(this.autoRotateSlides.bind(this),this.autoplaySpeed)}pause(){this.slider.setAttribute("aria-live","polite"),clearInterval(this.autoplay)}togglePlayButtonState(pauseAutoplay){pauseAutoplay?(this.sliderAutoplayButton.classList.add("slideshow__autoplay--paused"),this.sliderAutoplayButton.setAttribute("aria-label",window.accessibilityStrings.playSlideshow)):(this.sliderAutoplayButton.classList.remove("slideshow__autoplay--paused"),this.sliderAutoplayButton.setAttribute("aria-label",window.accessibilityStrings.pauseSlideshow))}autoRotateSlides(){const slideScrollPosition=this.currentPage===this.sliderItems.length?0:this.slider.scrollLeft+this.sliderItemOffset;this.setSlidePosition(slideScrollPosition),this.applyAnimationToAnnouncementBar()}setSlideVisibility(event){this.sliderItemsToShow.forEach((item,index)=>{const linkElements=item.querySelectorAll("a");index===this.currentPage-1?(linkElements.length&&linkElements.forEach(button=>{button.removeAttribute("tabindex")}),item.setAttribute("aria-hidden","false"),item.removeAttribute("tabindex")):(linkElements.length&&linkElements.forEach(button=>{button.setAttribute("tabindex","-1")}),item.setAttribute("aria-hidden","true"),item.setAttribute("tabindex","-1"))}),this.wasClicked=!1}applyAnimationToAnnouncementBar(button="next"){if(!this.announcementBarSlider)return;const itemsCount=this.sliderItems.length,increment=button==="next"?1:-1,currentIndex=this.currentPage-1;let nextIndex=(currentIndex+increment)%itemsCount;nextIndex=nextIndex===-1?itemsCount-1:nextIndex;const nextSlide=this.sliderItems[nextIndex],currentSlide=this.sliderItems[currentIndex],animationClassIn="announcement-bar-slider--fade-in",animationClassOut="announcement-bar-slider--fade-out",isFirstSlide=currentIndex===0,isLastSlide=currentIndex===itemsCount-1,direction=button==="next"&&!isLastSlide||button==="previous"&&isFirstSlide?"next":"previous";currentSlide.classList.add(`${animationClassOut}-${direction}`),nextSlide.classList.add(`${animationClassIn}-${direction}`),setTimeout(()=>{currentSlide.classList.remove(`${animationClassOut}-${direction}`),nextSlide.classList.remove(`${animationClassIn}-${direction}`)},this.announcerBarAnimationDelay*2)}linkToSlide(event){event.preventDefault();const slideScrollPosition=this.slider.scrollLeft+this.sliderFirstItemNode.clientWidth*(this.sliderControlLinksArray.indexOf(event.currentTarget)+1-this.currentPage);this.slider.scrollTo({left:slideScrollPosition})}}customElements.define("slideshow-component",SlideshowComponent);class VariantSelects extends HTMLElement{constructor(){super()}connectedCallback(){this.addEventListener("change",event=>{const target=this.getInputForEventTarget(event.target);this.updateSelectionMetadata(event),publish(PUB_SUB_EVENTS.optionValueSelectionChange,{data:{event,target,selectedOptionValues:this.selectedOptionValues}})})}updateSelectionMetadata({target}){const{value,tagName}=target;if(tagName==="SELECT"&&target.selectedOptions.length){Array.from(target.options).find(option=>option.getAttribute("selected")).removeAttribute("selected"),target.selectedOptions[0].setAttribute("selected","selected");const swatchValue=target.selectedOptions[0].dataset.optionSwatchValue,selectedDropdownSwatchValue=target.closest(".product-form__input").querySelector("[data-selected-value] > .swatch");if(!selectedDropdownSwatchValue)return;swatchValue?(selectedDropdownSwatchValue.style.setProperty("--swatch--background",swatchValue),selectedDropdownSwatchValue.classList.remove("swatch--unavailable")):(selectedDropdownSwatchValue.style.setProperty("--swatch--background","unset"),selectedDropdownSwatchValue.classList.add("swatch--unavailable")),selectedDropdownSwatchValue.style.setProperty("--swatch-focal-point",target.selectedOptions[0].dataset.optionSwatchFocalPoint||"unset")}else if(tagName==="INPUT"&&target.type==="radio"&&target.name==="selling-plan"){const selectedSwatchValue=target.closest(".product-form__input")||target.closest(".product-form__input-selling-plan").querySelector("[data-selected-value]");selectedSwatchValue&&(selectedSwatchValue.innerHTML=value)}}getInputForEventTarget(target){return target.tagName==="SELECT"?target.selectedOptions[0]:target}get selectedOptionValues(){return Array.from(this.querySelectorAll("select option[selected], fieldset input:checked")).map(({dataset})=>dataset.optionValueId)}}customElements.define("variant-selects",VariantSelects);class ProductRecommendations extends HTMLElement{observer=void 0;constructor(){super()}connectedCallback(){this.initializeRecommendations(this.dataset.productId)}initializeRecommendations(productId){this.observer?.unobserve(this),this.observer=new IntersectionObserver((entries,observer)=>{entries[0].isIntersecting&&(observer.unobserve(this),this.loadRecommendations(productId))},{rootMargin:"0px 0px 400px 0px"}),this.observer.observe(this)}loadRecommendations(productId){fetch(`${this.dataset.url}&product_id=${productId}§ion_id=${this.dataset.sectionId}`).then(response=>response.text()).then(text=>{const html=document.createElement("div");
1html.innerHTML=text;const recommendations=html.querySelector("product-recommendations");recommendations?.innerHTML.trim().length&&(this.innerHTML=recommendations.innerHTML),!this.querySelector("slideshow-component")&&this.classList.contains("complementary-products")&&this.remove(),html.querySelector(".grid__item")&&this.classList.add("product-recommendations--loaded")}).catch(e=>{console.error(e)})}}customElements.define("product-recommendations",ProductRecommendations);class AccountIcon extends HTMLElement{constructor(){super(),this.icon=this.querySelector(".icon")}connectedCallback(){document.addEventListener("storefront:signincompleted",this.handleStorefrontSignInCompleted.bind(this))}handleStorefrontSignInCompleted(event){event?.detail?.avatar&&this.icon?.replaceWith(event.detail.avatar.cloneNode())}}customElements.define("account-icon",AccountIcon);class BulkAdd extends HTMLElement{constructor(){super(),this.queue=[],this.requestStarted=!1,this.ids=[]}startQueue(id,quantity){this.queue.push({id,quantity});const interval=setInterval(()=>{this.queue.length>0?this.requestStarted||this.sendRequest(this.queue):clearInterval(interval)},250)}sendRequest(queue){this.requestStarted=!0;const items={};queue.forEach(queueItem=>{items[parseInt(queueItem.id)]=queueItem.quantity}),this.queue=this.queue.filter(queueElement=>!queue.includes(queueElement)),(this.closest("quick-order-list")||this.closest("quick-add-bulk")).updateMultipleQty(items)}resetQuantityInput(id){const input=this.querySelector(`#Quantity-${id}`);input.value=input.getAttribute("value"),this.isEnterPressed=!1}setValidity(event,index,message){event.target.setCustomValidity(message),event.target.reportValidity(),this.resetQuantityInput(index),event.target.select()}validateQuantity(event){const inputValue=parseInt(event.target.value),index=event.target.dataset.index;inputValue<event.target.dataset.min?this.setValidity(event,index,window.quickOrderListStrings.min_error.replace("[min]",event.target.dataset.min)):inputValue>parseInt(event.target.max)?this.setValidity(event,index,window.quickOrderListStrings.max_error.replace("[max]",event.target.max)):inputValue%parseInt(event.target.step)!=0?this.setValidity(event,index,window.quickOrderListStrings.step_error.replace("[step]",event.target.step)):(event.target.setCustomValidity(""),event.target.reportValidity(),this.startQueue(index,inputValue))}getSectionsUrl(){return window.pageNumber?`${window.location.pathname}?page=${window.pageNumber}`:`${window.location.pathname}`}getSectionInnerHTML(html,selector){return new DOMParser().parseFromString(html,"text/html").querySelector(selector).innerHTML}}customElements.get("bulk-add")||customElements.define("bulk-add",BulkAdd);const b2b=window.lgd.customer.b2b;if(b2b==!1){var links=document.links;for(let i=0,linksLength=links.length;i<linksLength;i++)links[i].hostname&&links[i].hostname!==window.location.hostname&&!links[i].href.includes("shopify.com/509476927")&&!links[i].href.includes("account.drlivingood.com")&&(links[i].target="_blank",links[i].rel="noreferrer noopener")}class ProductCardSellingPlan extends HTMLElement{constructor(){super()}connectedCallback(){const button=this.querySelector(".product-card-selling-plan-button")||this.querySelector(".button"),select=this.querySelector(".product-card-selling-plan-select")||this.querySelector(".select"),selectElement=select.querySelector("select"),cardElement=this.closest(".card")||this.closest(".product-card"),priceElement=cardElement.querySelector(".price"),entriesBannerMultiplier=cardElement.querySelector(".entries-multiplier");let entriesBannerStandardMultiplier=0,entriesBannerSubscriptionMultiplier=0,entriesBannerEarnableEntries=0;entriesBannerMultiplier&&(entriesBannerStandardMultiplier=cardElement.querySelector("[data-standard-multiplier]").dataset.standardMultiplier,entriesBannerSubscriptionMultiplier=cardElement.querySelector("[data-subscription-multiplier]").dataset.subscriptionMultiplier,entriesBannerEarnableEntries=cardElement.querySelector(".entries-count")),button.addEventListener("click",event=>{event.preventDefault(),event.stopPropagation(),select.classList.remove("hidden"),button.classList.add("hidden"),selectElement.selectedIndex=1,!this.dataset.originalPrice&&priceElement&&(this.dataset.originalPrice=priceElement.innerHTML);const firstOption=selectElement.options[1];firstOption&&firstOption.selected&&(priceElement&&(priceElement.innerHTML=firstOption.dataset.price),console.log("First One ",priceElement.innerHTML),document.dispatchEvent(new CustomEvent("productCardSellingPlanPriceChange",{bubbles:!0,composed:!0,detail:{price:firstOption.dataset.price,planId:firstOption.value,planType:"subscription",entriesBannerMultiplier,entriesBannerStandardMultiplier,entriesBannerSubscriptionMultiplier,entriesBannerEarnableEntries}})))}),selectElement.addEventListener("change",event=>{if(event.preventDefault(),event.stopPropagation(),selectElement.value==="")select.classList.add("hidden"),button.classList.remove("hidden"),priceElement&&(priceElement.innerHTML=this.dataset.originalPrice),document.dispatchEvent(new CustomEvent("productCardSellingPlanPriceChange",{bubbles:!0,composed:!0,detail:{price:this.dataset.originalPrice,planId:"",planType:"one-time",entriesBannerStandardMultiplier,entriesBannerSubscriptionMultiplier,entriesBannerMultiplier,entriesBannerEarnableEntries}}));else{const newPrice=selectElement.options[selectElement.selectedIndex].dataset.price;priceElement&&(priceElement.innerHTML=newPrice),document.dispatchEvent(new CustomEvent("productCardSellingPlanPriceChange",{bubbles:!0,composed:!0,detail:{price:newPrice,planId:"",planType:"subscription",entriesBannerMultiplier,entriesBannerStandardMultiplier,entriesBannerSubscriptionMultiplier,entriesBannerEarnableEntries}}))}})}}customElements.define("product-card-selling-plan",ProductCardSellingPlan),document.addEventListener("DOMContentLoaded",()=>{const entriesBanner=document.getElementById("product-entries-banner"),hasEntriesBanner=!!entriesBanner;let currentPlanType="subscription",lastSelectedElement=null;const subscriptionsMultiplier=hasEntriesBanner&&parseInt(entriesBanner.dataset.subscriptionMultiplier,10)||1,standardMultiplier=hasEntriesBanner&&parseInt(entriesBanner.dataset.multiplier,10)||1,pricePerServing=planType=>{document.querySelectorAll(".price-per-serving").forEach(element=>{element.classList.toggle("hidden",planType==="one-time")})},animateAndUpdateText=(element,newText,animationClass="animate-text-update",duration=500)=>{!element||element.innerText===String(newText)||(element.classList.remove(animationClass),element.offsetWidth,element.innerText=newText,element.classList.add(animationClass),setTimeout(()=>element.classList.remove(animationClass),duration))},getPlanType=planType=>(planType&&(currentPlanType=planType),currentPlanType),handleSelection=selected=>{if(!selected||selected===lastSelectedElement)return;lastSelectedElement=selected;const planType=selected.hasAttribute("data-loop-widget-onetime-purchase-option")?"one-time":"subscription";if(updatePricePerServing(planType),updateDiscountPercentage(planType),updateDiscountDescription(planType),document.dispatchEvent(new CustomEvent("selling-plan:change",{detail:{planType}})),!hasEntriesBanner)return;getPlanType(planType);const priceSelector=planType==="one-time"?'[id^="loop-widget-purchase-option-price-onetime"], .loop-widget-purchase-option-price':'[id^="loop-widget-purchase-option-price-id"], .loop-widget-purchase-option-price',priceElement=selected.querySelector(priceSelector);let priceText=priceElement?priceElement.innerText:null,price=0;if(priceText)price=Math.floor(parseFloat(priceText.replace(/[^0-9.
1-]+/g,"")));else{const priceAttr=entriesBanner.dataset.currentVariantPrice||entriesBanner.dataset.productPrice;priceAttr&&(price=Math.floor(parseFloat(priceAttr)))}price>0&&document.body.dispatchEvent(new CustomEvent("productPriceForEntriesBanner",{detail:{price,planType},bubbles:!0,composed:!0}))},updateEntriesDisplay=(price,planType)=>{const multiplierEl=document.getElementById("product-entries-product-page-multiplier"),entriesEl=document.getElementById("product-page-product-entries");if(!multiplierEl||!entriesEl)return;entriesBanner.dataset.currentVariantPrice=price;const multiplier=planType==="subscription"?subscriptionsMultiplier:standardMultiplier,earnableEntries=Math.floor(price)*multiplier;animateAndUpdateText(multiplierEl,`${multiplier}X`),animateAndUpdateText(entriesEl,Math.round(earnableEntries))},updateDiscountDescription=planType=>{const discountDescriptionSubscription=document.getElementById("discount-description-subscription"),discountDescriptionStandard=document.getElementById("discount-description-standard");planType==="subscription"?(discountDescriptionSubscription&&discountDescriptionSubscription.classList.remove("hidden"),discountDescriptionStandard&&discountDescriptionStandard.classList.add("hidden")):planType==="one-time"&&(discountDescriptionStandard&&discountDescriptionStandard.classList.remove("hidden"),discountDescriptionSubscription&&discountDescriptionSubscription.classList.add("hidden"))},updatePricePerServing=planType=>{const wrappers=document.querySelectorAll(".price-per-serving-wrapper");wrappers.length&&wrappers.forEach(wrap=>{const oneTime=wrap.querySelector(".price-per-serving.one-time"),sub=wrap.querySelector(".price-per-serving.subscription");oneTime&&oneTime.classList.toggle("hidden",planType==="subscription"),sub&&sub.classList.toggle("hidden",planType==="one-time"),wrap.style.visibility="visible"})},updateDiscountPercentage=planType=>{console.log("updateDiscountPercentage",planType);const shouldHide=planType==="subscription";document.querySelectorAll(".discount-badge").forEach(badge=>{badge.classList.toggle("hidden",shouldHide)}),document.querySelectorAll(".discount-badge-label").forEach(label=>{shouldHide?label.removeAttribute("style"):label.style.paddingTop="15px"})},updateEntriesForVariant=variant=>{let newPrice=0;if(variant&&typeof variant.price<"u")newPrice=Math.floor(parseFloat(variant.price)/100);else{const priceAttr=entriesBanner.dataset.productPrice;if(priceAttr)newPrice=Math.floor(parseFloat(priceAttr));else return}entriesBanner.dataset.currentVariantPrice=newPrice,updateEntriesDisplay(newPrice,getPlanType())},initialEntriesUpdate=()=>{let initialPrice=parseFloat(entriesBanner.dataset.productPrice||0);updateEntriesDisplay(initialPrice,getPlanType()),entriesBanner.classList.remove("hidden"),setTimeout(()=>entriesBanner.classList.add("reveal"),50)},onUrlChange=()=>{lastSelectedElement=null,setTimeout(()=>initObserver(),250);let variantData=null;const variantScript=document.querySelector("script[data-product-json], script#ProductJson-product-template, script.js-product-data");if(variantScript)try{const productData=JSON.parse(variantScript.textContent),variantId=new URLSearchParams(window.location.search).get("variant");productData?.variants&&variantId&&(variantData=productData.variants.find(v=>v.id==variantId)),variantData||(variantData=productData?.selected_or_first_available_variant||productData?.variants?.[0])}catch(e){console.error("Error parsing product JSON:",e)}variantData?(hasEntriesBanner&&updateEntriesForVariant(variantData),document.querySelector(".discount-description")&&updateDiscountDescription(getPlanType())):hasEntriesBanner&&entriesBanner.dataset.productPrice&&updateEntriesDisplay(parseFloat(entriesBanner.dataset.productPrice),getPlanType())},initObserver=()=>{window.subscriptionObserver?.disconnect&&window.subscriptionObserver.disconnect();const container=document.querySelector(".loop-widget-purchase-options-container");if(container){const observer=new MutationObserver(mutations=>{for(const mutation of mutations)mutation.attributeName==="class"&&mutation.target.classList.contains("loop-widget-purchase-option-selected")&&handleSelection(mutation.target)});observer.observe(container,{attributes:!0,subtree:!0,attributeFilter:["class"]}),window.subscriptionObserver=observer;const initialSelected=container.querySelector(".loop-widget-purchase-option-selected");initialSelected&&handleSelection(initialSelected)}else setTimeout(initObserver,500)};initObserver(),setTimeout(()=>{const planType=document.querySelector(".loop-widget-purchase-option.loop-widget-purchase-option-selected")?.hasAttribute("data-loop-widget-onetime-purchase-option")?"one-time":"subscription";updatePricePerServing(planType),updateDiscountPercentage(planType)},200),document.addEventListener("click",e=>{e.target.closest(".loop-widget-purchase-option")&&setTimeout(()=>{const planType=document.querySelector(".loop-widget-purchase-option.loop-widget-purchase-option-selected")?.hasAttribute("data-loop-widget-onetime-purchase-option")?"one-time":"subscription";updatePricePerServing(planType)},200)}),document.addEventListener("variant:change",()=>{const planType=document.querySelector(".loop-widget-purchase-option.loop-widget-purchase-option-selected")?.hasAttribute("data-loop-widget-onetime-purchase-option")?"one-time":"subscription";updatePricePerServing(planType),updateDiscountPercentage(planType)}),document.addEventListener("loop:updated",()=>{const planType=document.querySelector(".loop-widget-purchase-option.loop-widget-purchase-option-selected")?.hasAttribute("data-loop-widget-onetime-purchase-option")?"one-time":"subscription";updatePricePerServing(planType),updateDiscountPercentage(planType)});let lastVariant=new URLSearchParams(location.search).get("variant");if(setInterval(()=>{const currentVariant=new URLSearchParams(location.search).get("variant");if(currentVariant&¤tVariant!==lastVariant){lastVariant=currentVariant;const planType=document.querySelector(".loop-widget-purchase-option.loop-widget-purchase-option-selected")?.hasAttribute("data-loop-widget-onetime-purchase-option")?"one-time":"subscription";updatePricePerServing(planType),updateDiscountPercentage(planType)}},800),hasEntriesBanner&&document.querySelector(".discount-description")){hasEntriesBanner&&initialEntriesUpdate(),document.querySelector(".discount-description")&&updateDiscountDescription(getPlanType()),setInterval(()=>{document.querySelector(".loop-widget-purchase-options-container")?window.subscriptionObserver||initOb
1server():(window.subscriptionObserver?.disconnect&&window.subscriptionObserver.disconnect(),window.subscriptionObserver=null)},5e3),hasEntriesBanner&&document.addEventListener("productPriceForEntriesBanner",e=>{updateEntriesDisplay(e.detail.price,e.detail.planType)});let lastUrl=location.href;new MutationObserver(()=>{const url=location.href;url!==lastUrl&&(lastUrl=url,onUrlChange())}).observe(document,{subtree:!0,childList:!0})}});class ProductConfigurator extends HTMLElement{constructor(){super()}connectedCallback(){this.product=JSON.parse(this.dataset.product);const oneTimeContainer=this.querySelector(".product-configurator__purchase_option_one_time_content"),subscriptionContainer=this.querySelector(".product-configurator__purchase_option_subscription_content"),subscriptionTabButton=this.querySelector('.tab-button[data-tab="subscription"]');if(oneTimeContainer&&subscriptionContainer){const allOptions=oneTimeContainer.querySelectorAll(".configurator-option");let subscriptionOptionsCount=0;if(allOptions.forEach(option=>{option.dataset.isSubscription&&(subscriptionContainer.appendChild(option),subscriptionOptionsCount++)}),subscriptionOptionsCount===0&&subscriptionTabButton){subscriptionTabButton.style.display="none";const tabButtonsContainer2=this.querySelector(".tab-buttons");tabButtonsContainer2&&(tabButtonsContainer2.style.gridTemplateColumns="1fr")}const tabButtonsContainer=this.querySelector(".tab-buttons"),activeButton=this.querySelector(".tab-button.active");tabButtonsContainer&&activeButton&&tabButtonsContainer.prepend(activeButton);const tabsContainer=this.querySelector(".tabs-container");tabsContainer&&setTimeout(()=>{tabsContainer.classList.remove("tabs-container--hidden")},50)}const uniqueId=`config-${Math.random().toString(36).substring(2,9)}`,radioGroups={};this.querySelectorAll('input[type="radio"]').forEach(radio=>{radio.name&&(radioGroups[radio.name]||(radioGroups[radio.name]=`${radio.name}-${uniqueId}`),radio.name=radioGroups[radio.name])}),this.querySelector("#add-to-cart").addEventListener("click",async e=>{e.target.dataset.clearCart=="true"?await this.clearCart():this.handleAddToCart()}),this.addEventListener("change",event=>{event.target.matches('input[type="radio"]:checked')&&this.handleInputChange(event.target)}),this.addEventListener("click",event=>{const container=event.target.closest(".configurator-option__container");if(container){const radio=container.querySelector('input[type="radio"]');radio&&!radio.checked&&radio.click()}});const tabButtons=this.querySelectorAll(".tab-button"),tabContents=this.querySelectorAll(".tab-content");tabButtons.forEach(button=>{button.addEventListener("click",()=>{const tabId=button.dataset.tab;tabButtons.forEach(btn=>btn.classList.remove("active")),button.classList.add("active"),tabContents.forEach(content=>{if(content.id===tabId){content.classList.add("active");const firstInput=content.querySelector('input[type="radio"], input[type="checkbox"]');firstInput&&(firstInput.checked=!0,firstInput.dispatchEvent(new Event("change",{bubbles:!0})))}else content.classList.remove("active")})})});const activeTab=this.querySelector(".tab-content.active");if(activeTab){const firstInput=activeTab.querySelector('input[type="radio"], input[type="checkbox"]');firstInput&&(firstInput.checked=!0,firstInput.dispatchEvent(new Event("change",{bubbles:!0})))}}onVariantChange(event){const variant=event.detail.variant;variant&&this.querySelectorAll('.configurator-option[data-is-subscription="true"]').forEach(option=>{const frequency=option.querySelector(".configurator-option__frequency-text").textContent,sellingPlanAllocation=variant.selling_plan_allocations.find(allocation=>allocation.selling_plan.name===frequency),input=option.querySelector("input"),priceElement=option.querySelector(".configurator-option__price span:not(.configurator-option__price-original)"),originalPriceElement=option.querySelector(".configurator-option__price-original");if(sellingPlanAllocation){input.dataset.sellingPlanId=sellingPlanAllocation.selling_plan.id,input.dataset.variantId=variant.id;const quantity=parseInt(input.value),originalPrice=variant.price*quantity,discountedPrice=sellingPlanAllocation.price*quantity;originalPriceElement.textContent=this.formatMoney(originalPrice,window.Shopify.currency.active),priceElement.textContent=this.formatMoney(discountedPrice,window.Shopify.currency.active)}else input.dataset.sellingPlanId=""})}formatMoney(cents,currency){return window.Shopify.money_format.replace("{{amount}}",(cents/100).toFixed(2)).replace("{{amount_no_decimals}}",cents/100)}handleInputChange(selectedInput){const targetSelector=this.dataset.targetImageSelector;if(!targetSelector)return;const imageContainer=this.closest(".shopify-section").querySelector(`#${targetSelector}`);if(imageContainer){const imageToUpdate=imageContainer.querySelector("img");imageToUpdate&&(imageToUpdate.src=selectedInput.dataset.imageSrc,imageToUpdate.srcset=selectedInput.dataset.imageSrc)}}async clearCart(){await fetch("/cart/clear.js",{method:"POST"}),this.handleAddToCart()}handleAddToCart(){const activeTabContent=this.querySelector(".tab-content.active");if(!activeTabContent)return;const selectedInput=activeTabContent.querySelector("input:checked");console.log("selectedInput",selectedInput);const cartObject=document.querySelector("cart-notification")||document.querySelector("cart-drawer"),productId=selectedInput.dataset.variantId||selectedInput.dataset.productId,sellingPlanId=selectedInput.dataset.sellingPlanId,formData=new FormData;formData.append("items[0][id]",productId),formData.append("items[0][quantity]",selectedInput.value),formData.append("items[0][selling_plan]",sellingPlanId),sellingPlanId===""&&formData.delete("items[0][selling_plan]"),this.querySelector("#add-to-cart").textContent="Adding...",cartObject&&(formData.append("sections",cartObject.getSectionsToRender().map(section=>section.id)),formData.append("sections_url",window.location.pathname)),fetch("/cart/add.js",{method:"POST",body:formData}).then(response=>{if(!response.ok)throw new Error(`HTTP error! status: ${response.status}`);return response.json()}).then(data=>{console.log("Item added to cart:",data),this.querySelector("#add-to-cart").textContent="Added!";const postAtc=this.querySelector(".product-configurator__purchase_options").dataset.postAtc;if(postAtc==="checkout")selectedInput.dataset.discount?window.location.href=`/checkout?discount=${selectedInput.dataset.discount}`:window.location.href="/checkout";else if(postAtc==="cart"){if(!cartObject)return;cartObject.classList.remove("is-empty"),cartObject.renderContents(data)}this.querySelector("#add-to-cart").textContent="Add To Cart"}).catch(e=>{console.error("Error adding item to cart:",e),this.querySelector("#add-to-cart").textContent="Error"})}}customElements.define("product-configurator",ProductConfigurator),(function(){var togglePassword=document.getElementById("togglePassword"),passwordInput=document.getElementById("CustomerPassword");!togglePassword||!passwordInput||togglePassword.addEventListener("click",function(){var showingPassword=passwordInput.type==="text";passwordInput.type=showingPassword?"password":"text",togglePassword.textContent=showingPassword?"Show":"Hide"})})(),document.addEventListener("DOMContentLoaded",function(){const managePrefences=document.getElementById("footer-link-manage-preferences");managePrefences&&managePrefences.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation(),window[Symbol.for("blotout-consent")].showBanner()});const doNotSellOrShareMyInformation=document.getElementById("do-not-sell-or-share-my-information");doNotSellOrShareMyInformation&&doNotSellOrShareMyInformation.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation(),window[Symbol.for("blotout-consent")].showDnsForm()})}); 2//# sourceMappingURL=/cdn/shop/t/389/assets/global.js.map?v=41301239627111234711790779696
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.