PageSourceSearch

https://seqent.com/wp-content/themes/sq-wp-theme/dist/Header.f9p.js

js seqent.com collected 2026-10-04 00:13:47 UTC 7,890 bytes, 1 lines download raw bytes

1import{d as o,g as l}from"./js_util.es.f9p.js";class p{constructor({burger:e,nav:t,Manager:s,getCanPlay:n,setCanPlay:r,checkIfAnythingIsOpen:a,updateOverlay:h,updateBodyScroll:i}){this.DOM={burger:e,nav:t},this.Manager=s,this.gsap=this.Manager.getLibrary("GSAP").gsap,this.getCanPlay=n,this.setCanPlay=r,this.checkIfAnythingIsOpen=a,this.updateOverlay=h,this.updateBodyScroll=i,this.init(),this.events()}init(){}events(){this.DOM.burger&&this.DOM.burger.addEventListener("click",()=>{this.getCanPlay()&&this.toggle()})}toggle(){const e=this.isOpen();e||this.checkIfAnythingIsOpen(this);const t=this.gsap.timeline({onStart:()=>{this.setCanPlay(!1)},onComplete:()=>{this.setCanPlay(!0)}});if(e)t.set(this.DOM.nav,{overflowY:"hidden"}).to(this.DOM.nav,{opacity:0,height:0,duration:.15,ease:"power1.in"}).set(this.DOM.nav,{display:"none"}).call(()=>{o(this.DOM.burger,"c--nav-a__artwork--is-active"),this.checkIfAnythingIsOpen(this),this.updateOverlay(),this.updateBodyScroll()});else{l(this.DOM.burger,"c--nav-a__artwork--is-active"),this.updateOverlay(),this.updateBodyScroll(),this.gsap.set(this.DOM.nav,{display:"flex",clearProps:"height"});const s=this.DOM.nav.scrollHeight;this.gsap.set(this.DOM.nav,{height:0}),t.to(this.DOM.nav,{height:s,opacity:1,duration:.5,ease:"power2.out"}).set(this.DOM.nav,{overflowY:"auto"}).set(this.DOM.nav,{clearProps:"height"})}}closeIfOpen(){this.isOpen()&&this.toggle()}isOpen(){return this.DOM.burger.classList.contains("c--nav-a__artwork--is-active")}}class O{constructor({dropdownEl:e,Manager:t,getCanPlay:s,setCanPlay:n,checkIfAnythingIsOpen:r,updateOverlay:a}){this.DOM={dropdown:e,btn:e.querySelector(".js--dropdown-btn"),content:e.querySelector(".js--dropdown-content")};const h=[...e.classList].find(i=>/^c--dropdown-[a-z]+$/.test(i))||"c--dropdown-a";this.activeClass=`${h}--is-active`,this.Manager=t,this.gsap=this.Manager.getLibrary("GSAP").gsap,this.getCanPlay=s,this.setCanPlay=n,this.checkIfAnythingIsOpen=r,this.updateOverlay=a,this.init(),this.events()}init(){}events(){this.DOM.btn&&this.DOM.btn.addEventListener("click",()=>{this.getCanPlay()&&this.toggle()})}toggle(){const e=this.isOpen();e||this.checkIfAnythingIsOpen(this);const t=this.gsap.timeline({onStart:()=>{this.setCanPlay(!1)},onComplete:()=>{this.setCanPlay(!0)}});if(e)t.to(this.DOM.content,{opacity:0,height:0,duration:.15,ease:"power1.in"}).set(this.DOM.content,{display:"none"}).call(()=>{o(this.DOM.dropdown,this.activeClass),this.updateOverlay()});else{l(this.DOM.dropdown,this.activeClass),this.updateOverlay(),this.gsap.set(this.DOM.content,{display:"block",clearProps:"height"}),this.alignToBannerWrap();const s=this.DOM.content.scrollHeight;this.gsap.set(this.DOM.content,{height:0}),t.to(this.DOM.content,{height:s,opacity:1,duration:.5,ease:"power2.out"}).set(this.DOM.content,{clearProps:"height"})}}alignToBannerWrap(){if(!this.DOM.content)return;const e=this.DOM.dropdown.closest(".c--banner-a__wrapper");if(!e)return;const t=e.querySelector(".c--banner-a__wrapper__item-left"),s=e.querySelector(".c--banner-a__wrapper__item-right");if(!t||!s)return;s.getBoundingClientRect().top>=t.getBoundingClientRect().bottom?(this.DOM.content.style.left="0",this.DOM.content.style.right="unset"):(this.DOM.content.style.left="",this.DOM.content.style.right="")}closeIfOpen(){this.isOpen()&&this.toggle()}isOpen(){return this.DOM.dropdown.classList.contains(this.activeClass)}}const d=(c,e)=>{let t;const s=function(){const n=this,r=arguments;clearTimeout(t),t=setTimeout(()=>{c.apply(n,r)},e)};return s.cancel=()=>{clearTimeout(t)},s};class u{constructor(e){this.DOM={header:e.header,banner:e.banner,nav:e.nav,dropdowns:[...e.dropdowns],burger:e.burger,overlay:e.overlay},this.Manager=e.Manager,this.burger=null,this.dropdownItems=[],this.gsap=this.Manager.getLibrary("GSAP").gsap,this.canPlay=!0,this.bannerCollapsed=!1,this.bannerLocked=!1,this.closeOnResize=this.closeOnResize.bind(this),this.checkIfAnythingIsOpen=this.checkIfAnythingIsOpen.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this),this.updateOverlay=this.updateOverlay.bind(this),this.updateBodyScroll=this.updateBodyScroll.bind(this),this.init(),this.events()}init(){this.initScrollListener(),this.initHeaderHeight(),this.initBannerScroll(),this.DOM.burger&&this.DOM.nav&&(this.burger=new p({burger:this.DOM.burger,nav:this.DOM.nav,Manager:this.Manager,getCanPlay:()=>this.canPlay,setCanPlay:e=>this.canPlay=e,checkIfAnythingIsOpen:this.checkIfAnythingIsOpen,updateOverlay:this.updateOverlay,updateBodyScroll:this.updateBodyScroll}
1)),this.DOM.dropdowns.length&&this.DOM.dropdowns.forEach(e=>{this.dropdownItems.push(new O({dropdownEl:e,Manager:this.Manager,getCanPlay:()=>this.canPlay,setCanPlay:t=>this.canPlay=t,checkIfAnythingIsOpen:this.checkIfAnythingIsOpen,updateOverlay:this.updateOverlay}))})}events(){window.addEventListener("resize",d(this.closeOnResize,10)),document.addEventListener("click",this.handleClickOutside)}closeOnResize(){this.dropdownItems.forEach(e=>{e.closeIfOpen(),e.DOM.content&&this.gsap.set(e.DOM.content,{clearProps:"all"})}),this.burger&&(this.burger.closeIfOpen(),this.DOM.nav&&this.gsap.set(this.DOM.nav,{clearProps:"all"}))}checkIfAnythingIsOpen(e){this.dropdownItems.forEach(t=>{t!==e&&t.isOpen()&&t.closeIfOpen()})}handleClickOutside(e){const t=this.burger&&this.burger.isOpen(),s=this.dropdownItems.some(i=>i.isOpen());if(!t&&!s)return;const n=this.DOM.nav&&this.DOM.nav.contains(e.target),r=this.DOM.burger&&this.DOM.burger.contains(e.target),a=this.dropdownItems.some(i=>i.DOM.content&&i.DOM.content.contains(e.target)),h=this.dropdownItems.some(i=>i.DOM.btn&&i.DOM.btn.contains(e.target));!n&&!r&&!a&&!h&&(this.dropdownItems.forEach(i=>{i.isOpen()&&i.closeIfOpen()}),this.burger&&this.burger.isOpen()&&this.burger.closeIfOpen(),this.updateOverlay(),this.updateBodyScroll())}updateOverlay(){const e=this.burger&&this.burger.isOpen(),t=this.dropdownItems.some(n=>n.isOpen()),s=e||t;this.DOM.overlay&&(s?l(this.DOM.overlay,"c--overlay-a--is-active"):o(this.DOM.overlay,"c--overlay-a--is-active")),this.DOM.header&&(s?l(this.DOM.header,"c--header-a--is-active"):o(this.DOM.header,"c--header-a--is-active"))}initScrollListener(){if(!this.DOM.header)return;const e=()=>{window.scrollY>0?l(this.DOM.header,"c--header-a--is-scroll"):o(this.DOM.header,"c--header-a--is-scroll")};e(),window.addEventListener("scroll",e,{passive:!0})}initHeaderHeight(){if(!this.DOM.header||typeof ResizeObserver=="undefined")return;const e=()=>{document.documentElement.style.setProperty("--header-h",`${this.DOM.header.offsetHeight}px`)};this.headerResizeObserver=new ResizeObserver(e),this.headerResizeObserver.observe(this.DOM.header),e()}initBannerScroll(){this.DOM.banner&&(this.onBannerScroll=d(()=>{this.bannerLocked||(window.scrollY<=0?this.expandBanner():this.collapseBanner())},100),this.onBannerScroll(),window.addEventListener("scroll",this.onBannerScroll,{passive:!0}))}collapseBanner(){!this.DOM.banner||this.bannerCollapsed||(this.bannerCollapsed=!0,this.bannerLocked=!0,this.gsap.to(this.DOM.banner,{height:0,duration:.5,ease:"power2.out",overflow:"hidden",onComplete:()=>{this.bannerLocked=!1}}))}expandBanner(){!this.DOM.banner||!this.bannerCollapsed||(this.bannerCollapsed=!1,this.bannerLocked=!0,this.gsap.to(this.DOM.banner,{height:"auto",duration:.4,ease:"power2.out",onComplete:()=>{this.gsap.set(this.DOM.banner,{clearProps:"height,overflow"}),this.bannerLocked=!1}}))}updateBodyScroll(){this.burger&&(this.burger.isOpen()?document.body.style.overflow="hidden":document.body.style.overflow="")}destroy(){this.headerResizeObserver&&(this.headerResizeObserver.disconnect(),this.headerResizeObserver=null),this.onBannerScroll&&(window.removeEventListener("scroll",this.onBannerScroll),this.onBannerScroll=null),this.DOM.banner&&this.gsap.killTweensOf(this.DOM.banner),document.documentElement.style.removeProperty("--header-h")}}export{u as default};

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.