12 export class CaptionNode extends ElementNode {
13 static getType(): string {
17 static clone(node: CaptionNode): CaptionNode {
18 return new CaptionNode(node.__key);
21 createDOM(_config: EditorConfig, _editor: LexicalEditor): HTMLElement {
22 return document.createElement('caption');
25 updateDOM(_prevNode: unknown, _dom: HTMLElement, _config: EditorConfig): boolean {
29 isParentRequired(): true {
33 canBeEmpty(): boolean {
37 exportJSON(): SerializedElementNode {
39 ...super.exportJSON(),
45 insertDOMIntoParent(nodeDOM: HTMLElement, parentDOM: HTMLElement): boolean {
46 parentDOM.insertBefore(nodeDOM, parentDOM.firstChild);
50 static importJSON(serializedNode: SerializedElementNode): CaptionNode {
51 return $createCaptionNode();
54 static importDOM(): DOMConversionMap | null {
56 caption: (node: Node) => ({
57 conversion(domNode: Node) {
59 node: $createCaptionNode(),
68 export function $createCaptionNode(): CaptionNode {
69 return new CaptionNode();
72 export function $isCaptionNode(node: LexicalNode | null | undefined): node is CaptionNode {
73 return node instanceof CaptionNode;