-
Notifications
You must be signed in to change notification settings - Fork 1.5k
/
LexicalDecoratorBlockNode.ts
64 lines (53 loc) · 1.25 KB
/
LexicalDecoratorBlockNode.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import type {
ElementFormatType,
LexicalNode,
NodeKey,
SerializedLexicalNode,
Spread,
} from 'lexical';
import {DecoratorNode} from 'lexical';
export type SerializedDecoratorBlockNode = Spread<
{
format: ElementFormatType;
},
SerializedLexicalNode
>;
export class DecoratorBlockNode extends DecoratorNode<JSX.Element> {
__format: ElementFormatType;
constructor(format?: ElementFormatType, key?: NodeKey) {
super(key);
this.__format = format || '';
}
exportJSON(): SerializedDecoratorBlockNode {
return {
format: this.__format || '',
type: 'decorator-block',
version: 1,
};
}
createDOM(): HTMLElement {
return document.createElement('div');
}
updateDOM(): false {
return false;
}
setFormat(format: ElementFormatType): void {
const self = this.getWritable();
self.__format = format;
}
isInline(): false {
return false;
}
}
export function $isDecoratorBlockNode(
node: LexicalNode | null | undefined,
): node is DecoratorBlockNode {
return node instanceof DecoratorBlockNode;
}