RichTextModel.ts 811 Bytes
export const enum RichTextNodeType {
    Bold = 1,
    Italic = 2,
    Underline = 3,
    Color = 4,
    Text = 5,
    LineBreak = 20,
}

export interface TextNode {
    type: RichTextNodeType.Text;
    text: string;
}

export interface BoldNode {
    type: RichTextNodeType.Bold;
    children: RichTextNode[];
}

export interface UnderlineNode {
    type: RichTextNodeType.Underline;
    children: RichTextNode[];
}

export interface ItalicNode {
    type: RichTextNodeType.Italic;
    children: RichTextNode[];
}

export interface LineBreakNode {
    type: RichTextNodeType.LineBreak;
}

export interface ColorNode {
    type: RichTextNodeType.Color;
    color: string;
    children: RichTextNode[];
}

export type RichTextNode = (TextNode | BoldNode | UnderlineNode | ItalicNode | LineBreakNode | ColorNode);