https://youpickwemix.com.au/cdn/shop/t/15/assets/dbtfy-description…?v=151407445279189288911779652416
1customElements.get("text-animation")||customElements.define("text-animation",class extends HTMLElement{constructor(){super(),document.addEventListener("DOMContentLoaded",()=>{this.prefersReducedMotion=window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,this.animationType=this.dataset.animation,this.init()})}init(){if(!this.prefersReducedMotion&&"typing"===this.animationType)this.initTyping()}initTyping(){const t=Number(this.dataset.typingSpeed)||50,e=Number(this.dataset.typingInitialDelay)||0,i=Number(this.dataset.typingPause)||2e3,n=Number(this.dataset.typingDeletingSpeed)||30,s="true"===this.dataset.typingShowCursor,a=this.dataset.typingCursor||"|",o=this.textContent.trim();let d="",r=0,m=!1;const c=document.createElement("span");c.className="typing-content";const u=document.createElement("span");u.className="typing-cursor",u.textContent=a,this.textContent="",this.appendChild(c),s&&this.appendChild(u);const h=()=>{const e="true"===this.dataset.typingHideCursor;m?d.length?(d=d.slice(0,-1),c.textContent=d,setTimeout(h,n)):(m=!1,r=0,setTimeout(h,i)):r<o.length?(0===r&&e&&s&&u.classList.add("cursor-hidden"),d+=o[r++],c.textContent=d,setTimeout(h,t)):(e&&s&&u.classList.remove("cursor-hidden"),setTimeout(()=>{m=!0,h()},i))};setTimeout(h,e)}});
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.