PageSourceSearch

https://davidstea.com/cdn/shop/t/451/assets/dt-marquee.js?v=132623305133768558471790675743

js davidstea.com collected 2026-10-02 06:30:46 UTC 2,432 bytes, 2 lines download raw bytes

1import{Component}from"@theme/component";export class DtMarquee extends Component{requiredRefs=["track","run"];#observer;#reducedMotion;#laying=!1;#lastRunWidth=0;#lastHostWidth=0;connectedCallback(){super.connectedCallback(),this.#reducedMotion=matchMedia("(prefers-reduced-motion: reduce)"),this.#reducedMotion.addEventListener("change",this.#onMotionPreferenceChange),this.#layout(),this.#observer=new ResizeObserver(()=>this.#layout()),this.#observer.observe(this),this.#observer.observe(this.refs.run),document.fonts?.ready.then(()=>this.#layout())}disconnectedCallback(){super.disconnectedCallback(),this.#observer?.disconnect(),this.#reducedMotion?.removeEventListener("change",this.#onMotionPreferenceChange)}#onMotionPreferenceChange=()=>{this.#lastRunWidth=0,this.#lastHostWidth=0,this.#layout()};#reset(){const{track,run}=this.refs;track.append(run);for(const stale of track.querySelectorAll("[data-clone], [data-marquee-group]"))stale.remove()}#layout(){if(!this.#laying){this.#laying=!0;try{if(this.#reducedMotion?.matches){this.#reset(),this.removeAttribute("data-ready"),this.style.removeProperty("--dt-marquee-duration"),this.#lastRunWidth=0,this.#lastHostWidth=0;return}const{track,run}=this.refs,runWidth=run.getBoundingClientRect().width,hostWidth=this.getBoundingClientRect().width;if(!runWidth||!hostWidth||Math.abs(runWidth-this.#lastRunWidth)<.5&&Math.abs(hostWidth-this.#lastHostWidth)<.5)return;this.#reset();const copies=Math.ceil(hostWidth/runWidth)+1,group=document.createElement("div");group.setAttribute("data-marquee-group",""),group.style.display="flex",group.style.flex="none",group.append(run);for(let i=1;i<copies;i++){const copy=run.cloneNode(!0);copy.setAttribute("aria-hidden","true"),copy.setAttribute("data-clone",""),copy.removeAttribute("ref"),group.append(copy)}const second=group.cloneNode(!0);second.setAttribute("aria-hidden","true"),second.setAttribute("data-clone",""),second.querySelector("[ref]")?.removeAttribute("ref"),track.append(group,second);const speed=Number(this.dataset.speed)||60;this.style.setProperty("--dt-marquee-duration",`${runWidth*copies/speed}s`),this.setAttribute("data-ready",""),this.#lastRunWidth=runWidth,this.#lastHostWidth=hostWidth}finally{this.#laying=!1}}}}customElements.get("dt-marquee-component")||customElements.define("dt-marquee-component",DtMarquee);
2//# sourceMappingURL=/cdn/shop/t/451/assets/dt-marquee.js.map?v=132623305133768558471790675743

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.