47 lines
792 B
TypeScript
47 lines
792 B
TypeScript
|
|
/**
|
|
*/
|
|
class type_output_html implements type_output<string>
|
|
{
|
|
public readonly kind : string = "html";
|
|
public readonly data : {};
|
|
public constructor(data : {}) {this.data = data;}
|
|
|
|
/**
|
|
*/
|
|
public render_element(
|
|
element : type_element
|
|
) : string
|
|
{
|
|
return lib_plankton.call.distinguish<string>(
|
|
element,
|
|
{
|
|
"text": ({"content": content}) => (
|
|
"<span class=\"sd-text\">"
|
|
+
|
|
content
|
|
+
|
|
"</span>"
|
|
),
|
|
"group": ({"members": members}) => (
|
|
"<div class=\"sd-group\">\n"
|
|
+
|
|
members.map(x => this.render_element(x)).join("")
|
|
+
|
|
"</div>\n"
|
|
),
|
|
},
|
|
{
|
|
"fallback": (element) => (
|
|
"<pre class=\"sd-unhandled\">"
|
|
+
|
|
JSON.stringify(element, undefined, " ")
|
|
+
|
|
"</pre>"
|
|
),
|
|
}
|
|
);
|
|
}
|
|
|
|
}
|