function 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"))}const trapFocusHandlers={},warningTime=3e3;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()}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?.pause())}function removeTrapFocus(elementToFocus=null){document.removeEventListener("focusin",trapFocusHandlers.focusin),document.removeEventListener("focusout",trapFocusHandlers.focusout),document.removeEventListener("keydown",trapFocusHandlers.keydown),elementToFocus&&elementToFocus.focus()}function debounce(fn,wait){let t;return(...args)=>{clearTimeout(t),t=setTimeout(()=>fn.apply(this,args),wait)}}const serializeForm=form=>{const obj={},formData=new FormData(form);for(const key of formData.keys())obj[key]=formData.get(key);return JSON.stringify(obj)};function fetchConfig(type="json"){return{method:"POST",headers:{"Content-Type":"application/json",Accept:`application/${type}`}}}function extractContent(string){var div=document.createElement("div");return div.innerHTML=string,div.textContent||div.innerText}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;i0&&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"u"?def:opt}function formatWithDelimiters(number,precision,thousands,decimal){if(precision=defaultOption(precision,2),thousands=defaultOption(thousands,","),decimal=defaultOption(decimal,"."),isNaN(number)||number==null)return 0;number=(number/100).toFixed(precision);var parts=number.split("."),dollars=parts[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+thousands),cents2=parts[1]?decimal+parts[1]:"";return dollars+cents2}switch(formatString.match(placeholderRegex)[1]){case"amount":value=formatWithDelimiters(cents,2);break;case"amount_no_decimals":value=formatWithDelimiters(cents,0);break;case"amount_with_comma_separator":value=formatWithDelimiters(cents,2,".",",");break;case"amount_no_decimals_with_comma_separator":value=formatWithDelimiters(cents,0,".",",");break}return formatString.replace(placeholderRegex,value)},Shopify.getCart=function(callback){$.getJSON("/cart.js",function(cart,textStatus2){typeof callback=="function"?callback(cart):Shopify.onCartUpdate(cart)})},Shopify.onCartUpdate=function(cart){alert("There are now "+cart.item_count+" items in the cart.")},Shopify.changeItem=function(variant_id,quantity,callback){var params={type:"POST",url:"/cart/change.js",data:"quantity="+quantity+"&id="+variant_id,dataType:"json",success:function(cart){typeof callback=="function"?callback(cart):Shopify.onCartUpdate(cart)},error:function(XMLHttpRequest2,textStatus2){Shopify.onError(XMLHttpRequest2,textStatus2)}};$.ajax(params)},Shopify.removeItem=function(variant_id,callback){var params={type:"POST",url:"/cart/change.js",data:"quantity=0&id="+variant_id,dataType:"json",success:function(cart){typeof callback=="function"?callback(cart):Shopify.onCartUpdate(cart)},error:function(XMLHttpRequest2,textStatus2){Shopify.onError(XMLHttpRequest2,textStatus2)}};$.ajax(params)},Shopify.addItem=function(variant_id,quantity,callback,input=null){var quantity=quantity||1,target=document.querySelector("[data-quickshop] .is-loading")||document.querySelector("[data-btn-addtocart].is-loading"),params={type:"POST",url:"/cart/add.js",data:"quantity="+quantity+"&id="+variant_id,dataType:"json",success:function(line_item){typeof callback=="function"?callback(line_item):Shopify.onItemAdded(line_item)},error:function(XMLHttpRequest2,textStatus2){var message2=window.cartStrings.addProductOutQuantity2;if(input.length>0){var maxValue=parseInt(input.attr("data-inventory-quantity"));message2=getInputMessage(maxValue),input.val(maxValue)}Shopify.onError(XMLHttpRequest2,textStatus2,message2),target?.classList.remove("is-loading")}};$.ajax(params)},Shopify.onItemAdded=function(line_item){alert(line_item.title+" was added to your shopping cart.")},Shopify.onError=function(XMLHttpRequest,textStatus,message){var data=eval("("+XMLHttpRequest.responseText+")");data.message?showWarning(data.message+": "+message,warningTime):showWarning("Error : "+message,warningTime)};class MenuDrawer extends HTMLElement{constructor(){super(),this.mainDetailsToggle=this.querySelector("details");const summaryElements=this.querySelectorAll("summary");this.addAccessibilityAttributes(summaryElements),navigator.platform==="iPhone"&&document.documentElement.style.setProperty("--viewport-height",`${window.innerHeight}px`),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").forEach(button=>button.addEventListener("click",this.onCloseButtonClick.bind(this)))}addAccessibilityAttributes(summaryElements){summaryElements.forEach(element=>{element.setAttribute("role","button"),element.setAttribute("aria-expanded",!1),element.setAttribute("aria-controls",element.nextElementSibling.id)})}onKeyUp(event){if(event.code.toUpperCase()!=="ESCAPE")return;const openDetailsElement=event.target.closest("details[open]");openDetailsElement&&(openDetailsElement===this.mainDetailsToggle?this.closeMenuDrawer(this.mainDetailsToggle.querySelector("summary")):this.closeSubmenu(openDetailsElement))}onSummaryClick(event){const summaryElement=event.currentTarget,detailsElement=summaryElement.parentNode,isOpen=detailsElement.hasAttribute("open");detailsElement===this.mainDetailsToggle?(isOpen&&event.preventDefault(),isOpen?this.closeMenuDrawer(summaryElement):this.openMenuDrawer(summaryElement)):(trapFocus(summaryElement.nextElementSibling,detailsElement.querySelector("button")),setTimeout(()=>{detailsElement.classList.add("menu-opening")}))}openMenuDrawer(summaryElement){setTimeout(()=>{this.mainDetailsToggle.classList.add("menu-opening")}),summaryElement.setAttribute("aria-expanded",!0),trapFocus(this.mainDetailsToggle,summaryElement),document.body.classList.add("overflow-hidden-mobile")}closeMenuDrawer(event,elementToFocus=!1){event!==void 0&&(this.mainDetailsToggle.classList.remove("menu-opening"),this.mainDetailsToggle.querySelectorAll("details").forEach(details=>{details.removeAttribute("open"),details.classList.remove("menu-opening")}),this.mainDetailsToggle.querySelector("summary").setAttribute("aria-expanded",!1),document.body.classList.remove("overflow-hidden-mobile"),removeTrapFocus(elementToFocus),this.closeAnimation(this.mainDetailsToggle))}onFocusOut(event){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){detailsElement.classList.remove("menu-opening"),removeTrapFocus(),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(detailsElement.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.getElementById("shopify-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`),setTimeout(()=>{this.mainDetailsToggle.classList.add("menu-opening")}),summaryElement.setAttribute("aria-expanded",!0),trapFocus(this.mainDetailsToggle,summaryElement),document.body.classList.add("overflow-hidden-mobile")}}customElements.define("header-drawer",HeaderDrawer);class UpdateQuantity extends HTMLElement{constructor(){super(),this.input=this.querySelector("input"),this.changeEvent=new Event("change",{bubbles:!0}),this.querySelectorAll(".btn-quantity").forEach(button=>button.addEventListener("click",this.onButtonClick.bind(this)))}onButtonClick(event){event.preventDefault();let el_input=event.target.parentElement.querySelector(".quantity");const value=Number(el_input.value),inStockNumber=el_input.dataset.inventoryQuantity;if(event.target.classList.contains("plus"))var newVal=value+1;else var newVal=value-1;if(newVal<0)var newVal=1;if(newVal>inStockNumber){const message2=getInputMessage(inStockNumber);showWarning(message2,warningTime);var newVal=inStockNumber}el_input.value=newVal,this.input.dispatchEvent(this.changeEvent)}}class UpdateQuantityQuickShop extends HTMLElement{constructor(){super(),this.input=this.querySelector("input"),this.changeEvent=new Event("change",{bubbles:!0}),this.querySelectorAll(".btn-quantity").forEach(button=>button.addEventListener("click",this.onButtonClick.bind(this)))}onButtonClick(event){event.preventDefault();let el_input=event.target.parentElement.querySelector(".quantity");const value=Number(el_input.value),inStockNumber=el_input.dataset.inventoryQuantity;if(event.target.classList.contains("plus"))var newVal=value+1;else var newVal=value-1;if(newVal<0)var newVal=1;if(newVal>inStockNumber){const message2=getInputMessage(inStockNumber);showWarning(message2,warningTime);var newVal=inStockNumber}el_input.value=newVal,this.input.dispatchEvent(this.changeEvent),this.closest("[data-quickshop]").querySelector('form input[type="hidden"]').setAttribute("value",newVal)}}window.addEventListener("load",()=>{customElements.define("cart-update-quantity",UpdateQuantity),customElements.define("quickshop-update-quantity",UpdateQuantityQuickShop)});function showWarning(content,time=null){window.warningTimeout&&clearTimeout(window.warningTimeout);const warningPopupContent=document.getElementById("halo-warning-popup").querySelector("[data-halo-warning-content]");warningPopupContent.textContent=content,document.body.classList.add("has-warning"),time&&(window.warningTimeout=setTimeout(()=>{document.body.classList.remove("has-warning")},time))}function getInputMessage(maxValue){var message2=window.cartStrings.addProductOutQuantity.replace("[maxQuantity]",maxValue);return message2} //# sourceMappingURL=/cdn/shop/t/9/assets/global.js.map?v=15914543592432638241659634434