3 DOMConversionMap, DOMConversionOutput,
9 import type {EditorConfig} from "lexical/LexicalEditor";
10 import {el} from "../helpers";
12 export class DetailsNode extends ElementNode {
18 static clone(node: DetailsNode) {
19 return new DetailsNode(node.__key);
22 createDOM(_config: EditorConfig, _editor: LexicalEditor) {
26 updateDOM(prevNode: DetailsNode, dom: HTMLElement) {
30 static importDOM(): DOMConversionMap|null {
32 details(node: HTMLElement): DOMConversion|null {
34 conversion: (element: HTMLElement): DOMConversionOutput|null => {
36 node: new DetailsNode(),
45 exportJSON(): SerializedElementNode {
47 ...super.exportJSON(),
53 static importJSON(serializedNode: SerializedElementNode): DetailsNode {
54 return $createDetailsNode();
59 export function $createDetailsNode() {
60 return new DetailsNode();
63 export function $isDetailsNode(node: LexicalNode | null | undefined) {
64 return node instanceof DetailsNode;
67 export class SummaryNode extends ElementNode {
73 static clone(node: SummaryNode) {
74 return new SummaryNode(node.__key);
77 createDOM(_config: EditorConfig, _editor: LexicalEditor) {
81 updateDOM(prevNode: DetailsNode, dom: HTMLElement) {
85 static importDOM(): DOMConversionMap|null {
87 summary(node: HTMLElement): DOMConversion|null {
89 conversion: (element: HTMLElement): DOMConversionOutput|null => {
91 node: new SummaryNode(),
100 exportJSON(): SerializedElementNode {
102 ...super.exportJSON(),
108 static importJSON(serializedNode: SerializedElementNode): DetailsNode {
109 return $createSummaryNode();
114 export function $createSummaryNode() {
115 return new SummaryNode();
118 export function $isSummaryNode(node: LexicalNode | null | undefined) {
119 return node instanceof SummaryNode;