PageSourceSearch

https://www.themoth.org/dist/assets/NavDropdown-CCM9J5Fz.js

js themoth.org collected 2026-10-01 08:50:48 UTC 5,348 bytes, 1 lines download raw bytes

1var r=Object.defineProperty;var h=(n,i,t)=>i in n?r(n,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[i]=t;var s=(n,i,t)=>h(n,typeof i!="symbol"?i+"":i,t);import{M as d}from"./entry-CjI-lbtb.js";import{t as c}from"./index-Cnhs5IFh.js";let l=0,o=-1;class E extends d{constructor(t){super(t);s(this,"isOpen",!1);s(this,"openTimeout",null);s(this,"classContentVisible","opacity-100");s(this,"classContentHidden","opacity-0");s(this,"classContentCenter","translate-x-0");s(this,"classContentLeft","-translate-x-[2px]");s(this,"classContentRight","translate-x-[2px]");s(this,"classesDropdownHidden",[this.classContentHidden,"pointer-events-none"]);s(this,"classesDropdownVisible",[this.classContentVisible,"pointer-events-auto"]);s(this,"classesOverlayHidden",[this.classContentHidden,"pointer-events-none"]);s(this,"classesOverlayVisible",[this.classContentVisible,"pointer-events-auto"]);s(this,"classesBgHidden",[this.classContentHidden,"-translate-y-3xs"]);s(this,"classesBgVisible",[this.classContentVisible,"translate-y-0"]);s(this,"classesContentTranslate",["translate-x-0",this.classContentLeft,this.classContentRight]);s(this,"init",()=>{this.addEventListeners()});s(this,"addEventListeners",()=>{this.triggerEl.addEventListener("click",this.onTriggerClick),document.addEventListener("click",this.onDocumentClick),document.addEventListener("keydown",this.onKeydown),window.addEventListener("resize",this.onResize),this.on("NavDropdown","opened",this.onOtherDropdownOpened),this.on("Turbo","updated",this.close)});s(this,"getIndex",()=>Array.from(document.querySelectorAll("[data-module-nav-dropdown]")).indexOf(this.el));s(this,"setContentStartState",t=>{this.contentEls.forEach(e=>{e.style.transition="none",e.style.transitionDelay="",e.classList.remove(this.classContentVisible,...this.classesContentTranslate),e.classList.add(this.classContentHidden),t==="fromLeft"?e.classList.add(this.classContentLeft):t==="fromRight"&&e.classList.add(this.classContentRight),e.offsetHeight,e.style.transition=""})});s(this,"animateContentIn",()=>{this.contentEls.forEach((t,e)=>{t.style.transitionDelay=`${e*70}ms`,t.classList.remove(this.classContentHidden,...this.classesContentTranslate),t.classList.add(this.classContentVisible,this.classContentCenter)})});s(this,"animateContentOut",t=>{this.contentEls.forEach(e=>{e.style.transitionDelay="",e.classList.remove(this.classContentVisible,this.classContentCenter),e.classList.add(this.classContentHidden),t==="right"?e.classList.add(this.classContentRight):t==="left"&&e.classList.add(this.classContentLeft)})});s(this,"onResize",c(400,()=>{this.isOpen&&this.positionPanel()}));s(this,"positionPanel",()=>{const t=this.el.getBoundingClientRect(),e=this.panelEl.offsetWidth;this.panelEl.style.left=`${window.innerWidth/2-e/2-t.left}px`,this.bgEl.style.width=`${e}px`,this.bgEl.style.left=`${window.innerWidth/2-e/2}px`,this.bgEl.style.top=`calc(${t.bottom}px + var(--spacing-lg))`,this.bgEl.style.height=`${this.panelEl.offsetHeight}px`});s(this,"onTriggerClick",()=>{this.isOpen?this.close():this.open()});s(this,"onDocumentClick",t=>{this.isOpen&&!this.el.contains(t.target)&&this.close()});s(this,"onKeydown",t=>{t.key==="Escape"&&this.isOpen&&(this.close(),this.triggerEl.focus())});s(this,"onOtherDropdownOpened",t=>{if(t[0]!==this.key&&this.isOpen){const e=t[1],a=this.getIndex();this.close(e>a?"right":"left")}});s(this,"open",()=>{const t=this.getIndex(),e=l>0&&o!==-1?t>o?"fromLeft":"fromRight":null;this.isOpen=!0,l++,o=t,this.triggerEl.setAttribute("aria-expanded","true"),this.overlayEl.classList.remove(...this.classesOverlayHidden),this.overlayEl.classList.add(...this.classesOverlayVisible),this.positionPanel(),l===1&&(this.bgEl.classList.remove(...this.classesBgHidden),this.bgEl.classList.add(...this.classesBgVisible)),this.setContentStartState(e),this.openTimeout=setTimeout(()=>{this.panelEl.removeAttribute("inert"),this.panelEl.classList.remove(...this.classesDropdownHidden),this.panelEl.classList.add(...this.classesDropdownVisible),this.animateContentIn()},200),this.emit("opened",[this.key,t,this.triggerEl])});s(this,"close",(t=null)=>{this.isOpen&&(clearTimeout(this.openTimeout),this.isOpen=!1,l--,this.triggerEl.setAttribute("aria-expanded","fal
1se"),this.panelEl.setAttribute("inert",""),this.panelEl.classList.add(...this.classesDropdownHidden),this.panelEl.classList.remove(...this.classesDropdownVisible),this.animateContentOut(t),l===0&&(o=-1,this.overlayEl.classList.add(...this.classesOverlayHidden),this.overlayEl.classList.remove(...this.classesOverlayVisible),this.bgEl.classList.add(...this.classesBgHidden),this.bgEl.classList.remove(...this.classesBgVisible),this.emit("closed")))});s(this,"cleanup",()=>{clearTimeout(this.openTimeout),l=0,o=-1,this.triggerEl.removeEventListener("click",this.onTriggerClick),document.removeEventListener("click",this.onDocumentClick),document.removeEventListener("keydown",this.onKeydown),window.removeEventListener("resize",this.onResize)});this.triggerEl=this.get("trigger"),this.panelEl=this.get("panel"),this.overlayEl=document.querySelector("[data-nav-overlay]"),this.bgEl=document.querySelector("[data-nav-dropdown-bg]"),this.contentEls=[this.panelEl.querySelector('[data-nav-dropdown="content-links"]'),this.panelEl.querySelector('[data-nav-dropdown="content-teaser"]')].filter(Boolean)}}export{E 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.