typing-flow
Version:
Npm package for typing animation for web
2 lines (1 loc) • 862 B
JavaScript
;const r=require("./browser--HHLw8_C.cjs"),u=s=>/^\s+$/.test(s),c=new DOMParser,y=(s,e={})=>{const a=[],l=t=>{if(t.nodeType===Node.TEXT_NODE){const n=t.textContent.split("").map(i=>({type:"text",nodeBuilder:()=>({text:i,delay:e.instant?0:e.delay,instant:e.instant??!1,isTag:!1})}));a.push(...n)}else if(t.nodeType===Node.ELEMENT_NODE){const n=r.getBrowserNodeTagView(t);t.tagName.toLowerCase()!=="body"&&a.push({type:"text",nodeBuilder:()=>({text:n.open,delay:0,instant:!0,isTag:!0})});for(const i of t.childNodes)l(i);t.tagName.toLowerCase()!=="body"&&a.push({type:"text",nodeBuilder:()=>({text:n.close,delay:0,instant:!0,isTag:!0})})}};if(u(s))return s.split("").map(t=>({type:"text",nodeBuilder:()=>({text:t,delay:e.instant?0:e.delay,instant:e.instant??!1,isTag:!1})}));const d=c.parseFromString(s,"text/html").body;return l(d),a};exports.text=y;