1(()=>{const headers=new WeakSet,navs=new Set,mobileNavItems=new WeakSet,stickyStates=new WeakMap,hoverCloseTimers=new WeakMap,productRailRequests=new Map,productRailGenerationRequests=new Map,productRailMarkupCache=new Map,productRailMarkupStoragePrefix="wob:header-v2-product-rail:v3:",productRailHydrations=new WeakMap,productRailRetryTimers=new WeakMap,productRailRetryAttempts=new WeakMap,productRailRetryDelaysMs=[1e3,2500,5e3,1e4],productRailPageSize=10,newsletterCloseTimers=new WeakMap,newsletterFocusReturn=new WeakMap;let navResizeObserver,stickyResizeObserver,documentListenersReady=!1;const escapeHtml=value=>String(value??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),normalizeEndpoint=endpoint=>String(endpoint||"").trim().replace(/\/+$/,""),hashCacheKey=key=>{let hash=2166136261;const value=String(key||"");for(let index=0;index<value.length;index+=1)hash^=value.charCodeAt(index),hash=Math.imul(hash,16777619);return(hash>>>0).toString(36)},getSessionStorage=()=>{try{return window.sessionStorage||null}catch{return null}},getProductRailMarkupStorageKey=cacheKey=>`${productRailMarkupStoragePrefix}${hashCacheKey(cacheKey)}`,normalizeProductRailMarkupEntry=entry=>!entry||typeof entry.markup!="string"||!entry.markup.trim()||typeof entry.generation!="string"||!entry.generation?null:{markup:entry.markup,generation:entry.generation},readProductRailMarkup=cacheKey=>{if(productRailMarkupCache.has(cacheKey)){const entry=normalizeProductRailMarkupEntry(productRailMarkupCache.get(cacheKey));if(entry)return entry;productRailMarkupCache.delete(cacheKey)}const storage=getSessionStorage();if(!storage)return null;try{const storageKey=getProductRailMarkupStorageKey(cacheKey),entry=normalizeProductRailMarkupEntry(JSON.parse(storage.getItem(storageKey)||"null"));return entry?(productRailMarkupCache.set(cacheKey,entry),entry):(storage.removeItem(storageKey),null)}catch{return null}},writeProductRailMarkup=(cacheKey,markup,generation)=>{if(!cacheKey||typeof markup!="string"||!markup.trim()||!generation)return;const entry={markup,generation};productRailMarkupCache.set(cacheKey,entry);try{getSessionStorage()?.setItem(getProductRailMarkupStorageKey(cacheKey),JSON.stringify(entry))}catch{}},normalizeImageUrl=url=>url?String(url).startsWith("//")?`${window.location.protocol}${url}`:String(url):"",withImageWidth=(url,width)=>{const normalizedUrl=normalizeImageUrl(url);if(!normalizedUrl)return"";try{const parsedUrl=new URL(normalizedUrl,window.location.origin);return parsedUrl.searchParams.set("width",String(width)),parsedUrl.toString()}catch{const separator=normalizedUrl.includes("?")?"&":"?";return`${normalizedUrl}${separator}width=${width}`}},moneyAmount=money=>{const amount=Number(money?.amount??money??0);return Number.isFinite(amount)?amount:0},formatMoney=(amount,currencyCode="USD")=>{try{return new Intl.NumberFormat(document.documentElement.lang||"en-US",{style:"currency",currency:currencyCode}).format(amount)}catch{return`$${amount.toFixed(2)}`}},getProductUrl=product=>product?.url?product.url:product?.handle?`/products/${encodeURIComponent(product.handle)}`:"#",getImage=product=>product?.featuredImage||product?.image||null,getProductRailCacheKey=rail=>{const endpoint=normalizeEndpoint(rail?.dataset?.siteNavProductsEndpoint),enabled=rail?.dataset?.siteNavProductsEnabled==="true",collectionHandle=rail?.dataset?.siteNavProductsCollectionHandle||"",collectionId=rail?.dataset?.siteNavProductsCollectionId||"",collectionCount=rail?.dataset?.siteNavProductsCollectionCount||"";if(!enabled||!endpoint||!collectionHandle||!("fetch"in window))return"";const currencyCode=window.WobWorkerMarket?.activeCurrency||"default";return[endpoint,collectionId,collectionHandle,collectionCount,productRailPageSize,currencyCode,"recommended","header-nav"].join("|")},getDirectSummary=details=>[...details.children].find(child=>child.tagName==="SUMMARY")||null,setExpanded=(control,isExpanded)=>{control&&control.setAttribute("aria-expanded",String(isExpanded))},getNewsletterModal=header=>header?.querySelector?.("[data-header-v2-newsletter-modal]")||null,getNewsletterHeaderForTrigger=trigger=>{const controlledId=trigger?.getAttribute?.("aria-controls"),localHeader=(controlledId?document.getElementById(controlledId):null)?.closest("[data-header-v2]")||trigger?.closest?.("[data-header-v2]");return getNewsletterModal(localHeader)?localHeader:[...document.querySelectorAll("[data-header-v2]")].find(header=>getNewsletterModal(header))||null},setNewsletterTriggersExpanded=(header,isExpanded)=>{const modal=getNewsletterModal(header);modal?.id&&document.querySelectorAll("[data-header-v2-newsletter-open][aria-expanded]").forEach(trigger=>{const controlledId=trigger.getAttribute("aria-controls");(!controlledId||controlledId===modal.id)&&setExpanded(trigger,isExpanded)})},getNewsletterFocusableElements=modal=>modal?[...modal.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not
1([tabindex="-1"])')].filter(element=>element instanceof HTMLElement&&!element.hidden&&element.offsetParent!==null):[],trapNewsletterFocus=(event,modal)=>{if(event.key!=="Tab"||!modal||modal.hidden)return;const focusableElements=getNewsletterFocusableElements(modal);if(!focusableElements.length){event.preventDefault(),modal.focus({preventScroll:!0});return}const firstElement=focusableElements[0],lastElement=focusableElements[focusableElements.length-1];event.shiftKey&&document.activeElement===firstElement?(event.preventDefault(),lastElement.focus({preventScroll:!0})):!event.shiftKey&&document.activeElement===lastElement&&(event.preventDefault(),firstElement.focus({preventScroll:!0}))},setNewsletterModalOpen=(header,isOpen,shouldRestoreFocus=!1,trigger=null)=>{const modal=getNewsletterModal(header);if(!modal)return;const closeTimer=newsletterCloseTimers.get(modal);if(closeTimer&&(window.clearTimeout(closeTimer),newsletterCloseTimers.delete(modal)),isOpen){const activeElement=document.activeElement instanceof HTMLElement?document.activeElement:null,focusReturn=trigger instanceof HTMLElement?trigger:activeElement;newsletterFocusReturn.set(header,focusReturn),modal.hidden=!1,modal.setAttribute("aria-hidden","false"),document.documentElement.classList.add("header-v2-newsletter-is-open"),document.body.classList.add("header-v2-newsletter-is-open"),setNewsletterTriggersExpanded(header,!0),closeAllDropdowns(),setMobileSearchOpen(header,!1),setDrawerOpen(header,!1),window.requestAnimationFrame(()=>{modal.classList.add("site-header-v2__newsletter-modal--open"),(modal.querySelector("[data-header-v2-newsletter-feedback]")||modal.querySelector("[data-header-v2-newsletter-close]")||modal.querySelector("input")||modal).focus({preventScroll:!0})});return}if(!modal.hidden&&(modal.classList.remove("site-header-v2__newsletter-modal--open"),modal.setAttribute("aria-hidden","true"),document.documentElement.classList.remove("header-v2-newsletter-is-open"),document.body.classList.remove("header-v2-newsletter-is-open"),setNewsletterTriggersExpanded(header,!1),newsletterCloseTimers.set(modal,window.setTimeout(()=>{modal.hidden=!0,newsletterCloseTimers.delete(modal)},180)),shouldRestoreFocus)){const focusReturn=newsletterFocusReturn.get(header);focusReturn?.isConnected&&focusReturn.focus({preventScroll:!0})}},getTriggers=nav=>[...nav.querySelectorAll("[data-site-nav-trigger]")],getDropdown=trigger=>{const id=trigger.getAttribute("aria-controls");return id?document.getElementById(id):null},canUseHoverNav=(event=null)=>{const isDesktop=window.matchMedia("(min-width: 990px)").matches,hasHoverPointer=window.matchMedia("(hover: hover) and (pointer: fine)").matches,pointerCanHover=!event?.pointerType||event.pointerType==="mouse"||event.pointerType==="pen";return isDesktop&&hasHoverPointer&&pointerCanHover},canUseDropdownNav=()=>window.matchMedia("(min-width: 990px)").matches,clearHoverClose=nav=>{const timer=hoverCloseTimers.get(nav);timer&&(window.clearTimeout(timer),hoverCloseTimers.delete(nav))},updateNav=nav=>{const scroller=nav.querySelector(".site-nav__scroller"),track=nav.querySelector(".site-nav__scrollbar"),thumb=nav.querySelector(".site-nav__scrollbar-thumb");if(!scroller||!track||!thumb)return;const maxScroll=scroller.scrollWidth-scroller.clientWidth;if(maxScroll<=1){nav.classList.remove("site-nav--scrollable","site-nav--at-start","site-nav--at-end"),thumb.style.removeProperty("--nav-scrollbar-thumb-width"),thumb.style.removeProperty("--nav-scrollbar-thumb-offset");return}const trackWidth=track.clientWidth||scroller.clientWidth,thumbWidth=Math.max(scroller.clientWidth/scroller.scrollWidth*trackWidth,24),maxOffset=Math.max(trackWidth-thumbWidth,0),offset=scroller.scrollLeft/maxScroll*maxOffset;nav.classList.add("site-nav--scrollable"),nav.classList.toggle("site-nav--at-start",scroller.scrollLeft<=1),nav.classList.toggle("site-nav--at-end",maxScroll-scroller.scrollLeft<=1),thumb.style.setProperty("--nav-scrollbar-thumb-width",`${thumbWidth}px`),thumb.style.setProperty("--nav-scrollbar-thumb-offset",`${offset}px`)},queueUpdateNav=nav=>{window.requestAnimationFrame(()=>updateNav(nav))},renderWorkerProductCard=(product,index)=>{const image=getImage(product),currencyCode=product?.priceRange?.minVariantPrice?.currencyCode||product?.price?.currencyCode||"USD",price=moneyAmount(product?.priceRange?.minVariantPrice??product?.price),compareAtPrice=moneyAmount(product?.compareAtPriceRange?.maxVariantPrice),maxPrice=moneyAmount(product?.priceRange?.maxVariantPrice??price),productId=product.numericId||String(product.id||"").match(/(\d+)$/)?.[1]||"",priceVariant=(product?.variants||[]).find(variant=>moneyAmount(variant?.price)===price),variantId=String(priceVariant?.id||priceVariant?.numericId||product?.selectedVariantId||"").match(/(\d+)$/)?.[1]||"",onSale=compareAtPrice>price,showFrom=maxPrice>price;return` 2 <a 3 class="site-nav__product-card" 4 href="${escapeHtml(getProductUrl(product))}" 5 data-site-nav-product-card 6 data-site-nav-product-source="worker" 7 data-site-nav-product-position="${index+1}" 8 data-site-nav-product-id="${escapeHtml(product.id||"")}" 9 data-site-nav-product-numeric-id="${escapeHtml(product.numericId||"")}" 10 data-site-nav-product-handle="${escapeHtml(product.handle||"")}" 11 data-site-nav-product-title="${escapeHtml(product.title||"")}" 12 >
13 <span class="site-nav__product-image"> 14 ${image?.url?` 15 <img 16 data-product-image 17 src="${escapeHtml(withImageWidth(image.url,320))}" 18 srcset=" 19 ${escapeHtml(withImageWidth(image.url,180))} 180w, 20 ${escapeHtml(withImageWidth(image.url,320))} 320w, 21 ${escapeHtml(withImageWidth(image.url,360))} 360w 22 " 23 sizes="170px" 24 width="${image.width||320}" 25 height="${image.height||480}" 26 alt="${escapeHtml(image.altText||image.alt||product.title||"Product")}" 27 loading="lazy" 28 decoding="async" 29 > 30 `:""} 31 </span> 32 <span class="site-nav__product-title">${escapeHtml(product.title||"Product")}</span> 33 <span class="site-nav__product-price price${onSale?" price--on-sale":""}" data-product-price data-product-id="${escapeHtml(productId)}" data-variant-id="${escapeHtml(variantId)}" data-base-price-cents="${Math.round(price*100)}" data-compare-at-price-cents="${Math.round((onSale?compareAtPrice:0)*100)}" data-price-show-from="${showFrom?"true":"false"}">${price>0?`${onSale?`<span class="visually-hidden" data-price-compare-label>Regular price</span><s class="price__compare" data-price-compare>${formatMoney(compareAtPrice,currencyCode)}</s>`:""}<span class="visually-hidden" data-price-current-label>${onSale?"Sale price":"Regular price"}</span><span class="price__current" data-price-current>${showFrom?"From ":""}${formatMoney(price,currencyCode)}</span>`:""}</span> 34 </a> 35 `},renderWorkerProductCards=products=>products.slice(0,productRailPageSize).map(renderWorkerProductCard).join(""),renderProductRailSkeletonCards=(count=productRailPageSize)=>Array.from({length:count},(_,index)=>` 36 <div 37 class="site-nav__product-card site-nav__product-card--skeleton" 38 data-site-nav-product-skeleton="${index+1}" 39 aria-hidden="true" 40 > 41 <span class="site-nav__product-image product-card__skeleton-media"></span> 42 <span class="site-nav__product-skeleton-title"> 43 <span class="product-card__skeleton-line product-card__skeleton-line--title"></span> 44 <span class="product-card__skeleton-line site-nav__product-skeleton-line--short"></span> 45 </span> 46 <span class="product-card__skeleton-line product-card__skeleton-line--price"></span> 47 </div> 48 `).join(""),updateDropdownProductRailState=(rail,grid)=>{if(!rail||!grid)return;const maxScroll=grid.scrollWidth-grid.clientWidth,isScrollable=maxScroll>1;rail.classList.toggle("site-nav__dropdown-products--scrollable",isScrollable),rail.classList.toggle("site-nav__dropdown-products--at-start",!isScrollable||grid.scrollLeft<=1),rail.classList.toggle("site-nav__dropdown-products--at-end",!isScrollable||maxScroll-grid.scrollLeft<=1)},showDropdownProductSkeletons=(rail,grid,status)=>{if(rail.hidden=!1,rail.classList.add("site-nav__dropdown-products--loading"),rail.setAttribute("aria-busy","true"),status&&(status.hidden=!1),grid.dataset.siteNavProductsCacheKey==="loading"){updateDropdownProductRailState(rail,grid);return}grid.innerHTML=renderProductRailSkeletonCards(),grid.dataset.siteNavProductsCacheKey="loading",grid.scrollLeft=0,window.requestAnimationFrame(()=>updateDropdownProductRailState(rail,grid))},requestWorkerProducts=rail=>{const cacheKey=getProductRailCacheKey(rail),endpoint=normalizeEndpoint(rail.dataset.siteNavProductsEndpoint),collectionHandle=rail.dataset.siteNavProductsCollectionHandle||"",collectionId=rail.dataset.siteNavProductsCollectionId||"",collectionCount=Number.parseInt(rail.dataset.siteNavProductsCollectionCount||"",10);if(!cacheKey)return Promise.resolve([]);if(productRailRequests.has(cacheKey))return productRailRequests.get(cacheKey);const request=fetch(`${endpoint}/collections/products`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({collectionId,collectionHandle,pageSize:productRailPageSize,sortKey:"recommended",filters:[],source:"header-nav"})}).then(async response=>{const payload=await response.json().catch(()=>null);if(!response.ok||!payload?.ok||payload?.fallback?.recommended)throw new Error(payload?.fallback?.reason||"header-nav-worker-unavailable");const products=Array.isArray(payload.products)?payload.products:[];if(products.length===0&&Number.isFinite(collectionCount)&&collectionCount>0)throw new Error("header-nav-worker-empty");return{products:await(window.WobWorkerMarket?.localizeProducts?.(products)||Promise.resolve(products)),generation:String(payload.collectionGeneration||"")}});return productRailRequests.set(cacheKey,request),request.then(()=>productRailRequests.delete(cacheKey),()=>productRailRequests.delete(cacheKey)),request},requestCollectionGeneration=rail=>{const cacheKey=getProductRailCacheKey(rail),endpoint=normalizeEndpoint(rail.dataset.siteNavProductsEndpoint),collectionHandle=rail.dataset.siteNavProductsCollectionHandle||"",collectionId=rail.dataset.siteNavProductsCollectionId||"";if(!cacheKey||!endpoint)return Promise.resolve("");
48if(productRailGenerationRequests.has(cacheKey))return productRailGenerationRequests.get(cacheKey);const url=new URL(`${endpoint}/collections/generation`);collectionId&&url.searchParams.set("collectionId",collectionId),collectionHandle&&url.searchParams.set("collectionHandle",collectionHandle);const request=fetch(url.toString(),{cache:"no-store",headers:{Accept:"application/json"}}).then(async response=>{const payload=await response.json().catch(()=>null);if(!response.ok||!payload?.ok)throw new Error(payload?.error||"header-nav-generation-unavailable");return String(payload.generation||"")});return productRailGenerationRequests.set(cacheKey,request),request.then(()=>productRailGenerationRequests.delete(cacheKey),()=>productRailGenerationRequests.delete(cacheKey)),request},clearDropdownProductRetry=rail=>{const timer=productRailRetryTimers.get(rail);timer!==void 0&&(window.clearTimeout(timer),productRailRetryTimers.delete(rail)),productRailRetryAttempts.delete(rail)},scheduleDropdownProductRetry=(dropdown,rail)=>{if(!dropdown||!rail||productRailRetryTimers.has(rail))return;const attempt=productRailRetryAttempts.get(rail)||0,delay=productRailRetryDelaysMs[Math.min(attempt,productRailRetryDelaysMs.length-1)],timer=window.setTimeout(()=>{productRailRetryTimers.delete(rail),!dropdown.hidden&&rail.dataset.siteNavProductsLoaded!=="true"&&hydrateDropdownProducts(dropdown)},delay);productRailRetryAttempts.set(rail,attempt+1),productRailRetryTimers.set(rail,timer)},renderDropdownProducts=(dropdown,rail,grid,status,markup,cacheKey)=>{if(clearDropdownProductRetry(rail),rail.classList.remove("site-nav__dropdown-products--loading"),rail.removeAttribute("aria-busy"),rail.dataset.siteNavProductsLoaded="true",status&&(status.hidden=!0),!markup){rail.hidden=!0,grid.innerHTML="",grid.dataset.siteNavProductsCacheKey=cacheKey;return}grid.dataset.siteNavProductsCacheKey!==cacheKey&&(grid.innerHTML=markup,grid.dataset.siteNavProductsCacheKey=cacheKey),rail.hidden=!1,queueDropdownProductsUpdate(dropdown)},hydrateDropdownProducts=dropdown=>{const rail=dropdown?.querySelector("[data-site-nav-products]"),grid=dropdown?.querySelector("[data-site-nav-products-grid]"),status=dropdown?.querySelector("[data-site-nav-products-status]");if(!rail||!grid||rail.dataset.siteNavProductsSource!=="worker"||rail.dataset.siteNavProductsLoaded==="true"||productRailRetryTimers.has(rail))return;const cacheKey=getProductRailCacheKey(rail);if(!cacheKey){rail.hidden=!0,rail.classList.remove("site-nav__dropdown-products--loading"),rail.removeAttribute("aria-busy"),grid.innerHTML="";return}const cachedEntry=readProductRailMarkup(cacheKey);if(cachedEntry!==null){renderDropdownProducts(dropdown,rail,grid,status,cachedEntry.markup,cacheKey),requestCollectionGeneration(rail).then(generation=>!generation||generation===cachedEntry.generation?null:requestWorkerProducts(rail).then(({products,generation:productGeneration})=>{const currentGeneration=productGeneration||generation,markup=renderWorkerProductCards(products);return writeProductRailMarkup(cacheKey,markup,currentGeneration),renderDropdownProducts(dropdown,rail,grid,status,markup,cacheKey),null})).catch(()=>{});return}if(showDropdownProductSkeletons(rail,grid,status),productRailHydrations.has(rail))return;const hydration=requestWorkerProducts(rail).then(({products,generation})=>{const markup=renderWorkerProductCards(products);writeProductRailMarkup(cacheKey,markup,generation),renderDropdownProducts(dropdown,rail,grid,status,markup,cacheKey)}).catch(()=>{rail.hidden=!0,rail.classList.remove("site-nav__dropdown-products--loading"),rail.removeAttribute("aria-busy"),grid.innerHTML="",delete grid.dataset.siteNavProductsCacheKey,status&&(status.hidden=!0),scheduleDropdownProductRetry(dropdown,rail)}).finally(()=>{productRailHydrations.delete(rail)});productRailHydrations.set(rail,hydration)},updateDropdownProducts=dropdown=>{if(!dropdown||dropdown.hidden)return;const rail=dropdown.querySelector("[data-site-nav-products]"),grid=dropdown.querySelector("[data-site-nav-products-grid]"),cards=[...dropdown.querySelectorAll("[data-site-nav-product-card]")];if(rail?.dataset.siteNavProductsSource==="worker"&&rail.dataset.siteNavProductsLoaded!=="true"){hydrateDropdownProducts(dropdown);return}!rail||!grid||cards.length===0||(rail.hidden=!1,cards.forEach(card=>{card.hidden=!1}),updateDropdownProductRailState(rail,grid))},queueDropdownProductsUpdate=dropdown=>{window.requestAnimationFrame(()=>updateDropdownProducts(dropdown))},queueOpenDropdownProductsUpdate=nav=>{nav.querySelectorAll("[data-site-nav-dropdown]:not([hidden])").forEach(queueDropdownProductsUpdate)},setDropdownState=(trigger,isOpen)=>{const dropdown=getDropdown(trigger);setExpanded(trigger,isOpen),dropdown&&(dropdown.hidden=!isOpen,isOpen&&queueDropdownProductsUpdate(dropdown))},closeDropdowns=(nav,shouldRestoreFocus=!1)=>{const activeTrigger=getTriggers(nav).find(trigger=>trigger.getAttribute("aria-expanded")==="true");clearHoverClose(nav),getTriggers(nav).forEach(trigger=>setDropdownState(trigger,!1)),nav.classList.remove("site-nav--dropdown-open"),shouldRestoreFocus&&activeTrigger?.focus()},closeAllDropdowns=(exceptNav=null)=>
48{navs.forEach(nav=>{nav!==exceptNav&&closeDropdowns(nav)})},openDropdown=(nav,trigger)=>{closeAllDropdowns(nav),getTriggers(nav).forEach(item=>setDropdownState(item,item===trigger)),nav.classList.add("site-nav--dropdown-open"),queueOpenDropdownProductsUpdate(nav)},scheduleHoverClose=nav=>{clearHoverClose(nav),hoverCloseTimers.set(nav,window.setTimeout(()=>{hoverCloseTimers.delete(nav),!nav.matches(":hover")&&!nav.contains(document.activeElement)&&closeDropdowns(nav)},140))},getWheelDelta=(event,element)=>{const delta=Math.abs(event.deltaX)>Math.abs(event.deltaY)?event.deltaX:event.deltaY;return event.deltaMode===1?delta*16:event.deltaMode===2?delta*element.clientWidth:delta},handleNavWheel=(event,nav)=>{if(event.target.closest("[data-site-nav-dropdown]"))return;const scroller=nav.querySelector(".site-nav__scroller");if(!scroller)return;const maxScroll=scroller.scrollWidth-scroller.clientWidth;if(maxScroll<=1)return;const delta=getWheelDelta(event,scroller);if(!delta)return;event.preventDefault();const nextScroll=Math.max(0,Math.min(maxScroll,scroller.scrollLeft+delta));nextScroll!==scroller.scrollLeft&&(closeDropdowns(nav),scroller.scrollLeft=nextScroll,queueUpdateNav(nav))},handleProductWheel=(event,grid)=>{const maxScroll=grid.scrollWidth-grid.clientWidth;if(maxScroll<=1)return;const delta=getWheelDelta(event,grid);if(!delta)return;event.preventDefault();const nextScroll=Math.max(0,Math.min(maxScroll,grid.scrollLeft+delta));nextScroll!==grid.scrollLeft&&(grid.scrollLeft=nextScroll,queueDropdownProductsUpdate(grid.closest("[data-site-nav-dropdown]")))},syncDrawerItems=container=>{container.querySelectorAll("[data-header-v2-drawer-item]").forEach(item=>{setExpanded(getDirectSummary(item),item.open)})},closeDrawerItems=container=>{container.querySelectorAll("[data-header-v2-drawer-item][open]").forEach(item=>{item.open=!1}),syncDrawerItems(container)},setDrawerOpen=(header,isOpen,shouldRestoreFocus=!1)=>{const drawer=header.querySelector("[data-header-v2-drawer]"),toggle=header.querySelector("[data-header-v2-menu-toggle]");if(drawer){if(drawer.hidden=!isOpen,setExpanded(toggle,isOpen),toggle?.setAttribute("aria-label",isOpen?"Close menu":"Open menu"),document.documentElement.classList.toggle("header-v2-drawer-is-open",isOpen),document.body.classList.toggle("header-v2-drawer-is-open",isOpen),isOpen){closeAllDropdowns(),setMobileSearchOpen(header,!1),setNewsletterModalOpen(header,!1),drawer.querySelector("[data-header-v2-drawer-close]")?.focus();return}closeDrawerItems(drawer),shouldRestoreFocus&&toggle?.focus()}},setMobileSearchOpen=(header,isOpen,shouldFocus=!1)=>{const panel=header.querySelector("[data-header-v2-mobile-search]"),toggle=header.querySelector("[data-header-v2-search-toggle]");if(!(!panel||!toggle)){if(panel.hidden=!isOpen,setExpanded(toggle,isOpen),toggle?.setAttribute("aria-label",isOpen?"Close search":"Search"),document.documentElement.classList.toggle("header-v2-search-is-open",isOpen),document.body.classList.toggle("header-v2-search-is-open",isOpen),isOpen){if(closeAllDropdowns(),setDrawerOpen(header,!1),setNewsletterModalOpen(header,!1),panel.querySelectorAll("[data-header-search]").forEach(form=>{form.classList.add("header-search-is-open"),form.dataset.headerSearchRequestedOpen="true"}),panel.querySelectorAll("[data-header-search-dropdown]").forEach(dropdown=>{dropdown.hidden=!1}),panel.querySelectorAll("[data-header-search-input]").forEach(input=>{input.setAttribute("aria-expanded","true")}),panel.querySelectorAll("[data-header-search-close]").forEach(button=>{button.hidden=!1}),shouldFocus){const input=panel.querySelector("[data-header-search-input]");input?.closest("[data-header-search]")?.dispatchEvent(new CustomEvent("wob:header-search:open")),input?.focus({preventScroll:!0}),input&&document.activeElement!==input&&window.requestAnimationFrame(()=>input.focus({preventScroll:!0}))}return}document.activeElement instanceof HTMLElement&&panel.contains(document.activeElement)&&document.activeElement.blur(),panel.querySelectorAll("[data-header-search]").forEach(form=>{form.classList.remove("header-search-is-open"),delete form.dataset.headerSearchRequestedOpen}),panel.querySelectorAll("[data-header-search-dropdown]").forEach(dropdown=>{dropdown.hidden=!0}),panel.querySelectorAll("[data-header-search-input]").forEach(input=>
48{input.setAttribute("aria-expanded","false")}),panel.querySelectorAll("[data-header-search-close]").forEach(button=>{button.hidden=!0}),shouldFocus&&toggle?.focus()}},isHeaderInteractive=header=>{const activeElement=document.activeElement,drawer=header.querySelector("[data-header-v2-drawer]"),mobileSearch=header.querySelector("[data-header-v2-mobile-search]"),newsletterModal=getNewsletterModal(header);return!!(activeElement&&activeElement!==document.body&&header.contains(activeElement)||!drawer?.hidden||!mobileSearch?.hidden||!newsletterModal?.hidden)},isStickyEnabled=header=>!!header.querySelector("[data-header-v2-sticky-bar]")?.classList.contains("site-header-v2__sticky--enabled"),updateHeaderTotalHeight=header=>{const announcementHeight=[...document.querySelectorAll("[data-announcement-bar]")].reduce((total,bar)=>{const rect=bar.getBoundingClientRect();return rect.height>0?total+rect.height:total},0),height=Math.ceil(header.getBoundingClientRect().height+announcementHeight);height>0&&document.documentElement.style.setProperty("--site-header-total-height",`${height}px`)},resetStickyState=header=>{const bar=header.querySelector("[data-header-v2-sticky-bar]"),state=stickyStates.get(header);header.classList.remove("site-header-v2--sticky-fixed"),header.style.removeProperty("--header-v2-sticky-height"),bar?.classList.remove("site-header-v2__sticky--fixed","site-header-v2__sticky--collapsed","site-header-v2__sticky--stuck"),document.documentElement.style.setProperty("--site-header-offset","0px"),document.documentElement.style.setProperty("--site-header-visible-offset","0px"),updateHeaderTotalHeight(header),state&&(state.threshold=null,state.ticking=!1)},isDocumentScrollLocked=()=>[document.documentElement,document.body].some(element=>{const style=window.getComputedStyle(element);return(style.position==="absolute"||style.position==="fixed")&&(style.overflowY==="hidden"||style.overflowY==="clip")}),updateStickyHeader=header=>{const bar=header.querySelector("[data-header-v2-sticky-bar]"),state=stickyStates.get(header);if(!bar||!state||!isStickyEnabled(header)){resetStickyState(header);return}if(isDocumentScrollLocked()){state.ticking=!1;return}const currentScroll=Math.max(window.scrollY,0),barHeight=Math.round(bar.offsetHeight);bar.classList.contains("site-header-v2__sticky--fixed")||(state.threshold=Math.round(bar.getBoundingClientRect().top+currentScroll));const threshold=state.threshold??Math.round(bar.getBoundingClientRect().top+currentScroll),isFixed=currentScroll>=threshold,canCollapse=!isHeaderInteractive(header),delta=currentScroll-state.lastScroll;header.style.setProperty("--header-v2-sticky-height",`${barHeight}px`),document.documentElement.style.setProperty("--site-header-offset",`${isFixed?barHeight:0}px`),header.classList.toggle("site-header-v2--sticky-fixed",isFixed),bar.classList.toggle("site-header-v2__sticky--fixed",isFixed),bar.classList.toggle("site-header-v2__sticky--stuck",isFixed&¤tScroll>threshold+2),!isFixed||currentScroll<=threshold+2||!canCollapse?bar.classList.remove("site-header-v2__sticky--collapsed"):Math.abs(delta)>=6&&bar.classList.toggle("site-header-v2__sticky--collapsed",delta>0&¤tScroll>threshold+barHeight+24),bar.classList.contains("site-header-v2__sticky--collapsed")&&closeAllDropdowns(),document.documentElement.style.setProperty("--site-header-visible-offset",`${isFixed&&!bar.classList.contains("site-header-v2__sticky--collapsed")?barHeight:0}px`),updateHeaderTotalHeight(header),state.lastScroll=currentScroll,state.ticking=!1},requestStickyUpdate=header=>{const state=stickyStates.get(header);!state||state.ticking||(state.ticking=!0,window.requestAnimationFrame(()=>updateStickyHeader(header)))},bindStickyHeader=header=>{if(stickyStates.has(header))return;stickyStates.set(header,{lastScroll:Math.max(window.scrollY,0),threshold:null,ticking:!1}),window.addEventListener("scroll",()=>requestStickyUpdate(header),{passive:!0}),window.addEventListener("resize",()=>{isDocumentScrollLocked()||(resetStickyState(header),requestStickyUpdate(header))},{passive:!0});let documentScrollLocked=isDocumentScrollLocked();const scrollLockObserver=new MutationObserver(()=>{const locked=isDocumentScrollLocked();locked!==documentScrollLocked&&(documentScrollLocked=locked,locked||window.requestAnimationFrame(()=>{isDocumentScrollLocked()||(resetStickyState(header),requestStickyUpdate(header))}))});
48[document.documentElement,document.body].forEach(element=>{scrollLockObserver.observe(element,{attributes:!0,attributeFilter:["style","class"]})}),"ResizeObserver"in window&&(stickyResizeObserver||(stickyResizeObserver=new ResizeObserver(entries=>{entries.forEach(entry=>{const observedHeader=entry.target.closest?.("[data-header-v2]")||entry.target;observedHeader?.matches?.("[data-header-v2]")&&requestStickyUpdate(observedHeader)})})),stickyResizeObserver.observe(header)),requestStickyUpdate(header),updateHeaderTotalHeight(header)},bindDocumentListeners=()=>{documentListenersReady||(document.addEventListener("click",event=>{const target=event.target instanceof Element?event.target:null;if(!target)return;const newsletterTrigger=target.closest("[data-header-v2-newsletter-open]");if(newsletterTrigger){const header=getNewsletterHeaderForTrigger(newsletterTrigger);if(header){event.preventDefault(),setNewsletterModalOpen(header,!0,!1,newsletterTrigger);return}}target.closest(".site-nav")||closeAllDropdowns(),document.querySelectorAll("[data-header-v2]").forEach(header=>{header.contains(target)||setMobileSearchOpen(header,!1)})}),document.addEventListener("keydown",event=>{event.key==="Escape"&&(closeAllDropdowns(null,!0),document.querySelectorAll("[data-header-v2]").forEach(header=>{setMobileSearchOpen(header,!1),setDrawerOpen(header,!1,!0),setNewsletterModalOpen(header,!1,!0)}))}),documentListenersReady=!0)},initDrawerItem=item=>{mobileNavItems.has(item)||(mobileNavItems.add(item),setExpanded(getDirectSummary(item),item.open),item.addEventListener("toggle",event=>{event.target===item&&syncDrawerItems(item.closest("[data-header-v2-drawer]")||item)}))},initNav=nav=>{navs.has(nav)||(navs.add(nav),nav.querySelector(".site-nav__scroller")?.addEventListener("scroll",()=>queueUpdateNav(nav),{passive:!0}),nav.addEventListener("wheel",event=>handleNavWheel(event,nav),{passive:!1}),nav.addEventListener("pointerenter",event=>{canUseHoverNav(event)&&clearHoverClose(nav)}),nav.addEventListener("pointerleave",event=>{canUseHoverNav(event)&&scheduleHoverClose(nav)}),nav.addEventListener("keydown",event=>{event.key==="Escape"&&closeDropdowns(nav,!0)}),nav.addEventListener("focusout",event=>{(!event.relatedTarget||!nav.contains(event.relatedTarget))&&closeDropdowns(nav)}),getTriggers(nav).forEach(trigger=>{setDropdownState(trigger,!1),trigger.addEventListener("pointerenter",event=>{canUseHoverNav(event)&&(clearHoverClose(nav),openDropdown(nav,trigger))}),trigger.addEventListener("keydown",event=>{!canUseDropdownNav()||event.key!=="ArrowDown"||(event.preventDefault(),openDropdown(nav,trigger),getDropdown(trigger)?.querySelector('a[href], button:not([disabled]), [tabindex]:not([tabindex="-1"])')?.focus({preventScroll:!0}))})}),nav.querySelectorAll("[data-site-nav-dropdown]").forEach(dropdown=>{dropdown.addEventListener("pointerenter",event=>{canUseHoverNav(event)&&clearHoverClose(nav)}),dropdown.addEventListener("pointerleave",event=>{canUseHoverNav(event)&&scheduleHoverClose(nav)})}),nav.querySelectorAll("[data-site-nav-dropdown] a").forEach(link=>{link.addEventListener("click",()=>closeDropdowns(nav))}),nav.querySelectorAll("[data-site-nav-products-grid]").forEach(grid=>{grid.addEventListener("scroll",()=>queueDropdownProductsUpdate(grid.closest("[data-site-nav-dropdown]")),{passive:!0}),grid.addEventListener("wheel",event=>handleProductWheel(event,grid),{passive:!1})}),"ResizeObserver"in window?(navResizeObserver||(navResizeObserver=new ResizeObserver(()=>{navs.forEach(item=>{queueUpdateNav(item),queueOpenDropdownProductsUpdate(item)})})),navResizeObserver.observe(nav),nav.querySelectorAll(".site-nav__scroller, .site-nav__inner").forEach(item=>navResizeObserver.observe(item))):window.addEventListener("resize",()=>{queueUpdateNav(nav),queueOpenDropdownProductsUpdate(nav)},{passive:!0}),bindDocumentListeners(),queueUpdateNav(nav))},initHeader=header=>{if(headers.has(header))return;headers.add(header);const newsletterModal=getNewsletterModal(header);header.querySelector("[data-header-v2-menu-toggle]")?.addEventListener("click",()=>{const drawer=header.querySelector("[data-header-v2-drawer]");setDrawerOpen(header,!!drawer?.hidden)}),header.querySelector("[data-header-v2-search-toggle]")?.addEventListener("click",()=>{const panel=header.querySelector("[data-header-v2-mobile-search]");setMobileSearchOpen(header,!!panel?.hidden,!0)}),header.querySelectorAll("[data-header-v2-mobile-search] [data-header-search-close]").forEach(control
48=>{control.addEventListener("click",()=>setMobileSearchOpen(header,!1,!0))}),header.querySelectorAll("[data-header-v2-drawer-close]").forEach(control=>{control.addEventListener("click",()=>setDrawerOpen(header,!1,!0))}),newsletterModal?.querySelectorAll("[data-header-v2-newsletter-close]").forEach(control=>{control.addEventListener("click",()=>setNewsletterModalOpen(header,!1,!0))}),newsletterModal?.addEventListener("keydown",event=>trapNewsletterFocus(event,newsletterModal)),header.querySelectorAll(".site-header-v2__drawer-nav a").forEach(link=>{link.addEventListener("click",()=>setDrawerOpen(header,!1))}),header.querySelectorAll("[data-header-v2-drawer-item]").forEach(initDrawerItem),header.querySelectorAll(".site-nav").forEach(initNav),bindStickyHeader(header),newsletterModal?.querySelector("[data-header-v2-newsletter-feedback]")&&setNewsletterModalOpen(header,!0)},init=(root=document)=>{const rootElement=root.nodeType===1?root:null,headersToInit=new Set;rootElement?.matches("[data-header-v2]")&&headersToInit.add(rootElement),root.querySelectorAll?.("[data-header-v2]").forEach(header=>headersToInit.add(header)),headersToInit.forEach(initHeader)};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>init(),{once:!0}):init(),document.addEventListener("shopify:section:load",event=>init(event.target))})(); 49//# sourceMappingURL=/cdn/shop/t/649/assets/header-v2.js.map?v=147487494780926622851788879726
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.