{ "version": 3, "sources": ["../../server/chat-jsx.tsx"], "sourcesContent": ["/**\n * PS custom HTML elements and Preact handling.\n * By Mia and Zarel\n */\nimport preact from 'preact';\nimport render from 'preact-render-to-string';\nimport { Utils } from '../lib';\n\n/** For easy concenation of Preact nodes with strings */\nexport function html(\n\tstrings: TemplateStringsArray, ...args: (preact.VNode | string | number | null | undefined)[]\n) {\n\tlet buf = strings[0];\n\tlet i = 0;\n\twhile (i < args.length) {\n\t\tbuf += typeof args[i] === 'string' || typeof args[i] === 'number' ?\n\t\t\tUtils.escapeHTML(args[i] as string | number) :\n\t\t\trender(args[i] as preact.VNode);\n\t\tbuf += strings[++i];\n\t}\n\treturn buf;\n}\n\n/** client-side custom elements */\nexport interface PSElements extends preact.JSX.IntrinsicElements {\n\tyoutube: { src: string };\n\ttwitch: { src: string, width?: number, height?: number };\n\tspotify: { src: string };\n\tusername: { name?: string, class?: string, children?: preact.VNode | string };\n\tpsicon: { pokemon: string } | { item: string } | { type: string } | { category: string };\n\tcenter: { class?: string };\n}\n\nexport { render };\n\nexport type VNode = preact.VNode;\n\nexport const h = preact.h;\nexport const Fragment = preact.Fragment;\nexport const Component = preact.Component;\n\nexport class FormatText extends preact.Component<{ isTrusted?: boolean, replaceLinebreaks?: boolean }> {\n\trender() {\n\t\tconst child = this.props.children;\n\t\tif (typeof child !== 'string') throw new Error(`Invalid props.children type: ${!child ? child : typeof child}`);\n\t\treturn ;\n\t}\n}\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAAA;AAAA;AAAA;AAIA,oBAAmB;AACnB,qCAAmB;AACnB,iBAAsB;AAGf,SAAS,KACf,YAAkC,MACjC;AACD,MAAI,MAAM,QAAQ,CAAC;AACnB,MAAI,IAAI;AACR,SAAO,IAAI,KAAK,QAAQ;AACvB,WAAO,OAAO,KAAK,CAAC,MAAM,YAAY,OAAO,KAAK,CAAC,MAAM,WACxD,iBAAM,WAAW,KAAK,CAAC,CAAoB,QAC3C,+BAAAA,SAAO,KAAK,CAAC,CAAiB;AAC/B,WAAO,QAAQ,EAAE,CAAC;AAAA,EACnB;AACA,SAAO;AACR;AAgBO,MAAM,IAAI,cAAAC,QAAO;AACjB,MAAM,WAAW,cAAAA,QAAO;AACxB,MAAM,YAAY,cAAAA,QAAO;AAEzB,MAAM,mBAAmB,cAAAA,QAAO,UAAgE;AAAA,EACtG,SAAS;AACR,UAAM,QAAQ,KAAK,MAAM;AACzB,QAAI,OAAO,UAAU;AAAU,YAAM,IAAI,MAAM,gCAAgC,CAAC,QAAQ,QAAQ,OAAO,OAAO;AAC9G,WAAO;AAAA,MAAC;AAAA;AAAA,QACP,yBAAyB,EAAE,QAAQ,KAAK,WAAW,OAAO,KAAK,MAAM,WAAW,KAAK,MAAM,iBAAiB,EAAE;AAAA;AAAA,IAC/G;AAAA,EACD;AACD;", "names": ["render", "preact"] }