PageSourceSearch

https://lauradrodesigns.com/cdn/shop/t/16/assets/header-menu.js?v=125629572956582469561755644401

js lauradrodesigns.com collected 2026-10-03 21:36:05 UTC 8,630 bytes, 2 lines download raw bytes

1class HeaderMenu extends HTMLElement{static observedAttributes=["data-sticky"];constructor(){super(),this.interactionMode=this.dataset.interactionMode,this.currentInteractionMode=this.dataset.interactionMode,this.elements={menuLinks:this.querySelectorAll("a"),triggers:this.querySelectorAll(".header__menu-item[aria-expanded]"),megamenus:this.querySelectorAll('.header__primary-menu [data-submenu="megamenu"]'),submenus:this.querySelectorAll(".header__primary-menu [data-submenu]"),secondaryMenu:this.querySelector(".header__right"),background:this.querySelector(".header__background")},this.returnColorScheme=[],this.elements.triggers.forEach(trigger=>{trigger.addEventListener("click",event=>{if(this.currentInteractionMode==="hover"&&Date.now()-500<this.timeOpened)return this.currentInteractionMode="click";this.toggleTrigger(event),this.currentInteractionMode="click"}),trigger.addEventListener("mouseover",event=>{if(this.interactionMode==="hover"){this.querySelectorAll('[aria-expanded="true"]').forEach(openMenu=>{const submenu2=document.getElementById(openMenu.getAttribute("aria-controls"));openMenu&&!submenu2.contains(event.target)&&submenu2!==event.target&&event.target!==openMenu&&this.closeSubmenu(submenu2,!0)});const submenu=document.getElementById(trigger.getAttribute("aria-controls"));this.openSubmenu(submenu),this.currentInteractionMode="hover",document.addEventListener("keydown",event2=>{event2.code.toUpperCase()==="ESCAPE"&&this.closeSubmenu(submenu)},{once:!0}),this.addEventListener("mouseleave",()=>this.currentInteractionMode==="hover"&&this.closeSubmenu(submenu,!0),{once:!0})}})}),this.interactionMode==="hover"&&this.elements.menuLinks.forEach(trigger=>{trigger.addEventListener("mouseenter",event=>{if(this.currentInteractionMode!=="hover")return;this.querySelectorAll('[aria-expanded="true"]').forEach(openMenu=>{const submenu=document.getElementById(openMenu.getAttribute("aria-controls"));openMenu&&!submenu.contains(event.target)&&submenu!==event.target&&event.target!==openMenu&&this.closeSubmenu(submenu,!0)})})}),this.elements.submenus.forEach(submenu=>{submenu.addEventListener("keydown",event=>this.onSubmenuKeyDown(event)),submenu.addEventListener("focusout",event=>this.onSubmenuFocusOut(event,submenu))}),this.isProductPage=document.querySelector(".page--product"),this.isTransparent=this.classList.contains("header--transparent")&&document.querySelector(".pdp--full[data-support-transparent-header]");const height=Math.floor(this.clientHeight)-1;document.documentElement.style.setProperty("--header-height",height+"px"),this.headerObserver=new ResizeObserver(entries=>{window.matchMedia("(max-width:71.99em)").matches&&this.elements.submenus.forEach(submenu=>{this.closeSubmenu(submenu,!0)}),this.isProductPage&&this.isTransparent&&(window.matchMedia("(min-width:48em)").matches?this.classList.add("header--transparent"):this.classList.remove("header--transparent"));const height2=Math.floor(this.clientHeight)-1;document.documentElement.style.setProperty("--header-height",height2+"px"),this.classList.contains("header--transparent")?document.documentElement.style.setProperty("--transparent-header-height",height2+"px"):document.documentElement.style.setProperty("--transparent-header-height","0px"),this.dataset.sticky==="always"&&window.matchMedia("(min-height: 30em)").matches?document.documentElement.style.setProperty("--sticky-header-height",height2+"px"):document.documentElement.style.setProperty("--sticky-header-height","0px")}),this.headerObserver.observe(this),this.megamenuObserver=new ResizeObserver(entries=>{for(let entry of entries){const height2=entry.borderBoxSize[0].blockSize;entry.target.getAttribute("data-submenu")==="nested-dropdown"?height2>this.submenuHeight&&this.setSubmenuHeight(height2):this.setSubmenuHeight(height2)}}),document.addEventListener("click",event=>{this.currentInteractionMode=="click",this.querySelectorAll('[aria-expanded="true"]').forEach(openMenu=>{const submenu=document.getElementById(openMenu.getAttribute("aria-controls"));openMenu&&!submenu.contains(event.target)&&submenu!=event.target&&event.target!=openMenu&&this.closeSubmenu(submenu,!0)})})}closeSubmenu(submenu,preventFocus){this.classList.remove("header--alt-logo"),this.removeAttribute("open");const trigger=this.querySelector(`[aria-controls="${submenu.getAttribute("id")}"]`);trigger.setAttribute("aria-expanded",!1),this.querySelector('[aria-expanded="true"]')||this.classList.remove("header--background"),this.elements.secondaryMenu.classList.remove("header__right--inactive"),this.megamenuObserver.unobserve(submenu),this.originalColorScheme&&(this.returnColorScheme.forEach(el=>{el.setAttribute("data-color-scheme",this.originalColorScheme)}),this.returnColorScheme=[]),submenu.querySelectorAll("[data-animate-fade]").forEach(element=>element.classList.add("faded-out")),preventFocus!==!0&&trigger.focus()}openSubmenu(submenu){setTimeout(()=>{this.timeOpened=Date.now();const submenuType=submenu.getAttribute("data-submenu");if(this.setAttribute("open",submenuType),this.querySelector(`[aria-controls="${submenu.getAttribute("id")}"]`).setAttribute("aria-expanded",!0),this.getAttribute("data-layout")==="vertical"){const height=Math.max(submenu.clientHeight,this.clientHeight,this.submenuHeight||0);submenuType!="megamenu"&&this.setSubmenuHeight(height),this.megamenuObserver.observe(submenu),this.classList.add("header--background")}if(submenuType==="megamenu"){submenu.hasAttribute("data-alt-logo")&&this.classList.add("header--alt-logo");const style=submenu.getAttribute("data-color-scheme-style");if(this.getAttribute("data-layout")==="horizontal"&&style==="fade"){this.originalColorScheme=submenu.getAttribute("data-color-scheme-original");const newScheme=submenu.getAttribute("data-color-scheme-transition");this.returnColorScheme=[this,submenu],this.returnColorScheme.forEach(el=>{el.setAttribute("data-color-scheme",newScheme)})}if(this.getAttribute("data-layout")==="vertical"){if(this.elements.secondaryMenu.classList.add("header__right--inactive"),this.originalColorScheme=submenu.getAttribute("data-color-scheme-original"),style==="fade"){const newScheme=submenu.getAttribute("data-color-scheme-transition");this.returnColorScheme=[this,this.elements.background],this.returnColorScheme.forEach(el=>{el.setAttribute("data-color-scheme",newScheme)})}this.classList.add("header--background")}submenu.querySelectorAll("[data-animate-fade]").forEach(element=>element.classList.remove("faded-out"))}},0)}setSubmenuHeight(height){this.submenuHeight=height,document.documentElement.style.setProperty("--submenu-height",he
1ight+"px")}onSubmenuKeyDown(event){if(event.code.toUpperCase()==="ESCAPE"){const submenu=event.target.closest("[data-submenu]");this.closeSubmenu(submenu)}}onSubmenuFocusOut(event,submenu){if(event.relatedTarget){const id=event.relatedTarget.getAttribute("aria-controls");if(id&&document.getElementById(id).contains(submenu))return}(!submenu.contains(event.target)||!submenu.contains(event.relatedTarget))&&this.closeSubmenu(submenu,!0)}toggleTrigger(event){const trigger=event.target,submenu=document.getElementById(trigger.getAttribute("aria-controls"));trigger.getAttribute("aria-expanded")==="true"?this.closeSubmenu(submenu):this.openSubmenu(submenu)}attributeChangedCallback(name,oldValue,newValue){name==="data-sticky"&&newValue!=="none"&&window.addEventListener("scroll",this.onScroll.bind(this),!1)}onScroll(){const scrollTop=window.scrollY||document.documentElement.scrollTop;if(this.predictiveSearch&&this.predictiveSearch.isOpen||this.getAttribute("open"))return;const transparentEl=document.querySelector("[data-support-transparent-header]");transparentEl&&scrollTop>transparentEl.clientHeight?this.classList.add("header--filled"):!transparentEl&&scrollTop>0?this.classList.add("header--filled"):this.classList.remove("header--filled"),this.dataset.sticky==="scroll"&&(scrollTop>this.currentScrollTop&&scrollTop>this.clientHeight?(this.classList.add("header--scrolled-past"),this.classList.remove("header--revealed")):scrollTop<this.currentScrollTop&&scrollTop>this.clientHeight?(this.classList.add("header--scrolled-past"),this.preventReveal?(window.clearTimeout(this.isScrolling),this.isScrolling=setTimeout(()=>{this.preventReveal=!1},75),this.classList.remove("header--revealed")):this.classList.add("header--revealed")):scrollTop<=this.clientHeight&&(this.classList.remove("header--scrolled-past"),this.classList.remove("header--revealed"))),this.currentScrollTop=scrollTop}}customElements.define("header-menu",HeaderMenu);
2//# sourceMappingURL=/cdn/shop/t/16/assets/header-menu.js.map?v=125629572956582469561755644401

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.