3 DOMConversionMap, DOMConversionOutput,
9 import type {EditorConfig} from "lexical/LexicalEditor";
11 import {el} from "../utils/dom";
13 export class DetailsNode extends ElementNode {
19 static clone(node: DetailsNode) {
20 return new DetailsNode(node.__key);
23 createDOM(_config: EditorConfig, _editor: LexicalEditor) {
27 updateDOM(prevNode: DetailsNode, dom: HTMLElement) {
31 static importDOM(): DOMConversionMap|null {
33 details(node: HTMLElement): DOMConversion|null {
35 conversion: (element: HTMLElement): DOMConversionOutput|null => {
37 node: new DetailsNode(),
46 exportJSON(): SerializedElementNode {
48 ...super.exportJSON(),
54 static importJSON(serializedNode: SerializedElementNode): DetailsNode {
55 return $createDetailsNode();
60 export function $createDetailsNode() {
61 return new DetailsNode();
64 export function $isDetailsNode(node: LexicalNode | null | undefined) {
65 return node instanceof DetailsNode;
68 export class SummaryNode extends ElementNode {
74 static clone(node: SummaryNode) {
75 return new SummaryNode(node.__key);
78 createDOM(_config: EditorConfig, _editor: LexicalEditor) {
82 updateDOM(prevNode: DetailsNode, dom: HTMLElement) {
86 static importDOM(): DOMConversionMap|null {
88 summary(node: HTMLElement): DOMConversion|null {
90 conversion: (element: HTMLElement): DOMConversionOutput|null => {
92 node: new SummaryNode(),
101 exportJSON(): SerializedElementNode {
103 ...super.exportJSON(),
109 static importJSON(serializedNode: SerializedElementNode): DetailsNode {
110 return $createSummaryNode();
115 export function $createSummaryNode() {
116 return new SummaryNode();
119 export function $isSummaryNode(node: LexicalNode | null | undefined) {
120 return node instanceof SummaryNode;