{ "version": 3, "sources": ["../../../server/chat-jsx.tsx"], "sourcesContent": ["/**\r\n * PS custom HTML elements and Preact handling.\r\n * By Mia and Zarel\r\n */\r\nimport preact from 'preact';\r\nimport render from 'preact-render-to-string';\r\nimport {Utils} from '../lib';\r\n\r\n/** For easy concenation of Preact nodes with strings */\r\nexport function html(\r\n\tstrings: TemplateStringsArray, ...args: (preact.VNode | string | number | null | undefined)[]\r\n) {\r\n\tlet buf = strings[0];\r\n\tlet i = 0;\r\n\twhile (i < args.length) {\r\n\t\tbuf += typeof args[i] === 'string' || typeof args[i] === 'number' ?\r\n\t\t\tUtils.escapeHTML(args[i] as string | number) :\r\n\t\t\trender(args[i] as preact.VNode);\r\n\t\tbuf += strings[++i];\r\n\t}\r\n\treturn buf;\r\n}\r\n\r\n/** client-side custom elements */\r\nexport interface PSElements extends preact.JSX.IntrinsicElements {\r\n\tyoutube: {src: string};\r\n\ttwitch: {src: string, width?: number, height?: number};\r\n\tspotify: {src: string};\r\n\tusername: {name?: string, class?: string, children?: preact.VNode | string};\r\n\tpsicon: {pokemon: string} | {item: string} | {type: string} | {category: string};\r\n\tcenter: {class?: string};\r\n}\r\n\r\nexport {render};\r\n\r\nexport type VNode = preact.VNode;\r\n\r\nexport const h = preact.h;\r\nexport const Fragment = preact.Fragment;\r\nexport const Component = preact.Component;\r\n\r\nexport class FormatText extends preact.Component<{isTrusted?: boolean, replaceLinebreaks?: boolean}> {\r\n\trender() {\r\n\t\tconst child = this.props.children;\r\n\t\tif (typeof child !== 'string') throw new Error(`Invalid props.children type: ${!child ? child : typeof child}`);\r\n\t\treturn ;\r\n\t}\r\n}\r\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAAA;AAAA;AAAA;AAIA,oBAAmB;AACnB,qCAAmB;AACnB,iBAAoB;AAGb,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,UAA8D;AAAA,EACpG,SAAS;AACR,UAAM,QAAQ,KAAK,MAAM;AACzB,QAAI,OAAO,UAAU;AAAU,YAAM,IAAI,MAAM,gCAAgC,CAAC,QAAQ,QAAQ,OAAO,OAAO;AAC9G,WAAO,uBAAC,UAAK,yBACZ,EAAC,QAAQ,KAAK,WAAW,OAAO,KAAK,MAAM,WAAW,KAAK,MAAM,iBAAiB,EAAC,GAClF;AAAA,EACH;AACD;", "names": ["render", "preact"] }