import { CaretNode, h, t, VNode } from "@caret-js/core"; export class CommaListNode extends CaretNode { constructor(public expressions: CaretNode[]) { super(); } static from(expressions: CaretNode[]): CommaListNode { return new CommaListNode( expressions.flatMap((node) => node instanceof CommaListNode ? node.expressions : [node] ) ).mergeTagsFromNodes( expressions.filter((node) => node instanceof CommaListNode) ); } toDebugMathML(): VNode { return h( "mrow", {}, ...this.expressions.flatMap((expr, index) => [ expr.toDebugMathML(), index < this.expressions.length - 1 ? h("mo", {}, t(",")) : null, ]) ); } }