PageSourceSearch

https://www.beekshop.com/cdn/shop/t/388/assets/header.js?v=100246023740239079841775078819

js beekshop.com collected 2026-10-04 15:08:48 UTC 7,050 bytes, 2 lines download raw bytes

1import{debounce,trapFocus}from"@theme/utilities";class HeaderComponent extends HTMLElement{connectedCallback(){const toggle=this.querySelector("[data-mobile-menu-toggle]"),menu=this.querySelector("[data-mobile-menu]"),utility=this.querySelector("[data-mobile-menu-utility]"),navItems=this.querySelectorAll("[data-mobile-menu-nav-item]");if(!toggle||!menu)return;const menuIcon=toggle.querySelector("[data-menu-icon]"),closeIcon=toggle.querySelector("[data-close-icon]");let menuFocusTrap=null;const openMenu=()=>{menu.hidden=!1,requestAnimationFrame(()=>{menu.style.transform="scale(1, 1)",menu.style.opacity="1";const onOpen=e=>{if(e.propertyName!=="transform")return;menu.removeEventListener("transitionend",onOpen),navItems.forEach(item=>{item.style.opacity="1"}),utility&&(utility.style.opacity="1");const firstLink=menu.querySelector("a[href], button");firstLink&&firstLink.focus()};menu.addEventListener("transitionend",onOpen)}),toggle.setAttribute("aria-expanded","true"),menuIcon&&menuIcon.classList.add("hidden"),closeIcon&&closeIcon.classList.remove("hidden"),document.body.style.overflow="hidden",menuFocusTrap=trapFocus(menu)},closeMenu=()=>{utility&&(utility.style.opacity="0");const count=navItems.length;navItems.forEach((item,i)=>{item.style.transitionDelay=`${(count-1-i)*60}ms`,item.style.opacity="0"});const firstItem=navItems[0],onItemsDone=()=>{menu.style.transform="scale(1, 0)",menu.style.opacity="0";const onClose=e=>{e.propertyName==="transform"&&(menu.removeEventListener("transitionend",onClose),menu.hidden=!0)};menu.addEventListener("transitionend",onClose)};firstItem?firstItem.addEventListener("transitionend",()=>{navItems.forEach((item,i)=>{item.style.transitionDelay=`${i*60}ms`}),onItemsDone()},{once:!0}):onItemsDone(),toggle.setAttribute("aria-expanded","false"),menuIcon&&menuIcon.classList.remove("hidden"),closeIcon&&closeIcon.classList.add("hidden"),document.body.style.overflow="",this.querySelectorAll("[data-mobile-submenu]").forEach(sub=>{sub.classList.add("translate-x-full")}),menuFocusTrap&&(menuFocusTrap.release(),menuFocusTrap=null),toggle.focus()};toggle.addEventListener("click",()=>{toggle.getAttribute("aria-expanded")==="true"?closeMenu():openMenu()}),this.querySelectorAll("[data-mobile-submenu-toggle]").forEach(btn=>{btn.addEventListener("click",()=>{const submenu=btn.nextElementSibling;if(submenu?.hasAttribute("data-mobile-submenu")){const isOpen=!submenu.classList.toggle("translate-x-full");btn.setAttribute("aria-expanded",String(isOpen))}})}),this.querySelectorAll("[data-close-mobile-submenu]").forEach(btn=>{btn.addEventListener("click",()=>{const submenu=btn.closest("[data-mobile-submenu]");if(submenu){submenu.classList.add("translate-x-full");const toggle2=submenu.previousElementSibling;toggle2?.hasAttribute("data-mobile-submenu-toggle")&&(toggle2.setAttribute("aria-expanded","false"),toggle2.focus())}})}),this.querySelectorAll("[data-mobile-submenu]").forEach(submenu=>{let startX=0,startY=0;submenu.addEventListener("touchstart",e=>{startX=e.touches[0].clientX,startY=e.touches[0].clientY},{passive:!0}),submenu.addEventListener("touchend",e=>{const dx=e.changedTouches[0].clientX-startX,dy=e.changedTouches[0].clientY-startY;if(dx>60&&Math.abs(dy)<Math.abs(dx)){submenu.classList.add("translate-x-full");const toggle2=submenu.previousElementSibling;toggle2?.hasAttribute("data-mobile-submenu-toggle")&&toggle2.setAttribute("aria-expanded","false")}},{passive:!0})})}}customElements.get("header-component")||customElements.define("header-component",HeaderComponent);class SearchDrawer extends HTMLElement{#focusTrap=null;#triggerElement=null;connectedCallback(){this.querySelector("[data-overlay]")?.addEventListener("click",()=>this.close()),this.querySelector("[data-close-drawer]")?.addEventListener("click",()=>this.close()),document.addEventListener("theme:escape",()=>this.close())}open(){this.#triggerElement=document.activeElement,this.setAttribute("open",""),this.setAttribute("aria-expanded","true"),this.#focusTrap=trapFocus(this)}close(){this.removeAttribute("open"),this.setAttribute("aria-expanded","fal
1se"),this.#focusTrap&&(this.#focusTrap.release(),this.#focusTrap=null),this.#triggerElement&&(this.#triggerElement.focus(),this.#triggerElement=null)}}customElements.define("search-drawer",SearchDrawer);class SearchButton extends HTMLElement{constructor(){super()}connectedCallback(){this.button=this.querySelector("button"),this.button?.addEventListener("click",this.onButtonClick.bind(this)),this.drawer=document.querySelector("search-drawer"),this.searchInput=document.querySelector("[data-search-input]")}onButtonClick(){this.drawer.open(),this.searchInput.focus()}}customElements.define("search-button",SearchButton);class PredictiveSearch extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.input=this.querySelector('input[name="q"]'),this.predictiveSearchResults=this.querySelector("[data-search-suggestions]"),this.input.addEventListener("input",debounce(event=>{this.onChange(event)},300).bind(this)),this.form.addEventListener("reset",event=>{this.predictiveSearchResults.innerHTML=""})}onChange(){const searchTerm=this.input.value.trim();if(!searchTerm.length){this.predictiveSearchResults.innerHTML="";return}this.getSearchResults(searchTerm)}getSearchResults(searchTerm){fetch(`${Theme.routes.root_url}search/suggest?q=${searchTerm}&resources[type]=product,query&resources[options][fields]=title,product_type,variants.title,vendor,tag&resources[limit_scope]=each&resources[limit]=5&section_id=predictive-search`).then(response=>{if(!response.ok){var error=new Error(response.status);throw error}return response.text()}).then(text=>{const resultsMarkup=new DOMParser().parseFromString(text,"text/html").querySelector("#shopify-section-predictive-search").innerHTML;this.predictiveSearchResults.innerHTML=resultsMarkup}).catch(error=>{throw error})}}customElements.define("predictive-search",PredictiveSearch);class CartDrawer extends HTMLElement{#focusTrap=null;#triggerElement=null;connectedCallback(){this.querySelector("[data-overlay]")?.addEventListener("click",()=>this.close()),this.querySelector("[data-close-drawer]")?.addEventListener("click",()=>this.close()),document.addEventListener("theme:escape",()=>this.close()),document.querySelectorAll("[data-open-cart]").forEach(btn=>{btn.addEventListener("click",()=>this.open())}),new URLSearchParams(window.location.search).has("cart")&&this.open()}open(){this.#triggerElement=document.activeElement,this.setAttribute("open",""),this.setAttribute("aria-expanded","true"),this.#focusTrap=trapFocus(this);const closeBtn=this.querySelector("[data-close-drawer]");closeBtn&&closeBtn.focus()}close(){this.removeAttribute("open"),this.setAttribute("aria-expanded","false"),this.#focusTrap&&(this.#focusTrap.release(),this.#focusTrap=null),this.#triggerElement&&(this.#triggerElement.focus(),this.#triggerElement=null)}}customElements.define("cart-drawer",CartDrawer);
2//# sourceMappingURL=/cdn/shop/t/388/assets/header.js.map?v=100246023740239079841775078819

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.