PageSourceSearch

https://gir.co/cdn/shop/t/295/assets/sticky-header.min.js?v=35749784873914328101789584700

js gir.co collected 2026-09-25 14:33:08 UTC 3,233 bytes, 1 lines download raw bytes

1class StickyHeader extends HTMLElement{constructor(){super(),this.portfolioDropdowns=Array.from(this.querySelectorAll("portfolio-dropdown"))}connectedCallback(){let e=this;this.header=document.getElementById("shopify-section-header"),this.classList.contains("sticky-enabled")&&(this.header.classList.add("shopify-section-header-sticky"),this.onResize(),window.addEventListener("resize",(function(){e.onResize()}))),this.headerBounds={},this.preventReveal=!1,this.onScrollHandler=this.onScroll.bind(this),this.hideHeaderOnScrollUp=()=>this.preventReveal=!0,window.addEventListener("scroll",this.onScrollHandler,!1),this.addEventListener("mouseleave",this.closeMenuDisclosure,!1),this.createObserver(),this.addAccessibilityEventsToSearchComponent()}onResize(){let e=this.header.offsetHeight,t=document.getElementById("Message-bar-message-butter-bar"),s=null!=t?t.offsetHeight:0;t&&t.classList.contains("sticky-butter")&&(document.getElementById("MainContent").style.marginTop=s+e+"px")}disconnectedCallback(){window.removeEventListener("scroll",this.onScrollHandler)}createObserver(){new IntersectionObserver(((e,t)=>{this.headerBounds=e[0].intersectionRect,t.disconnect()})).observe(this.header)}onScroll(){(window.pageYOffset||document.documentElement.scrollTop)-document.querySelector(".header-wrapper").clientHeight>105?(requestAnimationFrame(this.hideCollapseElements.bind(this)),requestAnimationFrame(this.compactHeader.bind(this))):(requestAnimationFrame(this.revealCollapseElements.bind(this)),requestAnimationFrame(this.expandHeader.bind(this)))}compactHeader(){this.desktopHidden||(document.querySelector("sticky-header").classList.add("header-wrapper--border-bottom"),document.querySelector(".header-wrapper .header").classList.add("compact"),this.isCompact=!0)}expandHeader(){this.isCompact&&(document.querySelector("sticky-header").classList.remove("header-wrapper--border-bottom"),document.querySelector(".header-wrapper .header").classList.remove("compact"),this.isCompact=!1)}hideCollapseElements(){if(this.closeSearch(),this.closeMenuDisclosure(),!this.hidden){for(const e of this.portfolioDropdowns)e.hideButton(),window.innerWidth<1024&&e.hideDropdown();this.hidden=!0}}revealCollapseElements(){if(this.hidden){for(const e of this.portfolioDropdowns)e.showButton();this.hidden=!1}}reset(){}closeMenuDisclosure(){this.disclosures=this.disclosures||this.header.querySelectorAll("header-menu"),this.disclosures.forEach((e=>e.close()));const e=document.getElementById("StickyHeaderBackdrop");e&&e.classList.remove("active")}closeSearch(){this.removeAttribute("searchopen"),document.body.classList.remove("prevent-scroll");const e=this.querySelector("desktop-header-search .search__field-input.real-input");e?.blur()}closeSearchModal(){this.searchModal=this.searchModal||this.header.querySelector("details-modal"),this.searchModal.close(!1)}addAccessibilityEventsToSearchComponent(){const e=Array.from(this.querySelectorAll(".suggestions__item")),t=e[e.length-1],s=Array.from(this.querySelectorAll(".header__menu-item.main-link"));s[s.length-1],t&&t.addEventListener("focusout",(()=>{const e=this.querySelector(".header__icon-account");this.closeSearch(),e.focus()}))}}customElements.define("sticky-header",StickyHeader);

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.