PageSourceSearch

https://www.thermoworks.com/cdn/shop/t/9/assets/header-menu.js?v=38405949226000197811774046980

js thermoworks.com collected 2026-10-02 03:00:36 UTC 4,410 bytes, 2 lines download raw bytes

1import{Component}from"@theme/component";import{debounce,onDocumentLoaded}from"@theme/utilities";import{MegaMenuHoverEvent}from"@theme/events";const ACTIVATE_DELAY=350,DEACTIVATE_DELAY=350;class HeaderMenu extends Component{requiredRefs=["overflowMenu"];#abortController=new AbortController;connectedCallback(){super.connectedCallback(),this.overflowMenu?.addEventListener("pointerleave",()=>this.#debouncedDeactivate(),{signal:this.#abortController.signal}),onDocumentLoaded(this.#preloadImages)}disconnectedCallback(){super.disconnectedCallback(),this.#abortController.abort()}#state={activeItem:null};#clickDeactivated=!1;#clickActivated=!1;get animationDelay(){const value=this.dataset.animationDelay;return value?parseInt(value,10):0}get overflowMenu(){return this.refs.overflowMenu?.shadowRoot?.querySelector('[part="overflow"]')}get overflowHovered(){return this.refs.overflowMenu?.matches(":hover")??!1}activate=event=>{this.#clickDeactivated||this.#clickActivated||(this.#debouncedDeactivate.cancel(),this.#debouncedActivateHandler.cancel(),this.#debouncedActivateHandler(event))};toggle=event=>{if(!(event.target instanceof Element))return;const item=findMenuItem(event.target);if(!item)return;const isOpen=item.getAttribute("aria-expanded")==="true";this.#debouncedActivateHandler.cancel(),this.#debouncedDeactivate.cancel(),isOpen?(this.#clickDeactivated=!0,this.#clickActivated=!1,this.#deactivate(item)):(this.#clickDeactivated=!1,this.#clickActivated=!0,this.#activateHandler(event))};#activateHandler=event=>{if(this.#debouncedDeactivate.cancel(),this.dispatchEvent(new MegaMenuHoverEvent),this.removeAttribute("data-animating"),!(event.target instanceof Element))return;let item=findMenuItem(event.target);if(!item||item==this.#state.activeItem)return;const isDefaultSlot=event.target.slot==="";this.dataset.overflowExpanded=(!isDefaultSlot).toString();const previouslyActiveItem=this.#state.activeItem;previouslyActiveItem&&(previouslyActiveItem.ariaExpanded="false"),this.#state.activeItem=item,this.ariaExpanded="true",item.ariaExpanded="true";let submenu=findSubmenu(item),overflowMenuHeight=this.overflowMenu?.offsetHeight??0;if(!submenu&&!isDefaultSlot&&(submenu=this.overflowMenu),submenu){const backdrop=document.getElementById("backdrop");backdrop&&backdrop.classList.remove("tw-backdrop-hidden")}const submenuHeight=submenu?Math.max(submenu.offsetHeight,overflowMenuHeight):0;this.style.setProperty("--submenu-height",`${submenuHeight}px`),this.style.setProperty("--submenu-opacity","1")};#debouncedActivateHandler=debounce(this.#activateHandler,ACTIVATE_DELAY);deactivate(event){if(this.#clickActivated&&event instanceof PointerEvent&&event.pointerType==="touch"){this.#debouncedActivateHandler.cancel();return}if(this.#clickActivated=!1,this.#clickDeactivated=!1,this.#debouncedActivateHandler.cancel(),!(event.target instanceof Element))return;findMenuItem(event.target)===this.#state.activeItem&&this.#debouncedDeactivate()}#deactivate=(item=this.#state.activeItem)=>{if(!item||item!=this.#state.activeItem||this.overflowHovered&&!this.#clickDeactivated&&!this.#clickActivated)return;this.style.setProperty("--submenu-height","0px"),this.style.setProperty("--submenu-opacity","0");const backdrop=document.getElementById("backdrop");backdrop&&backdrop.classList.add("tw-backdrop-hidden"),this.dataset.overflowExpanded="false",this.#state.activeItem=null,this.ariaExpanded="false",item.ariaExpanded="false",item.setAttribute("data-animating",""),setTimeout(()=>{item.removeAttribute("data-animating")},Math.max(0,this.animationDelay-300))};#debouncedDeactivate=debounce(this.#deactivate,DEACTIVATE_DELAY);#preloadImages=()=>{this.querySelectorAll('img[loading="lazy"]')?.forEach(image=>image.removeAttribute("loading"))}}customElements.get("header-menu")||customElements.define("header-menu",HeaderMenu);function findMenuItem(element){if(!(element instanceof Element))return null;if(element?.matches('[slot="more"'))return findMenuItem(element.parentElement?.querySelector('[slot="overflow"]'));const closest=element.closest('[ref="menuitem"]');return closest instanceof HTMLElement?closest:element?.querySelector('[ref="menuitem"]')}function findSubmenu(element){const submenu=element?.parentElement?.querySelector('[ref="submenu[]"]');return submenu instanceof HTMLElement?submenu:null}
2//# sourceMappingURL=/cdn/shop/t/9/assets/header-menu.js.map?v=38405949226000197811774046980

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.