lexical 0.3.3 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Lexical.dev.js +378 -293
- package/Lexical.js.flow +15 -10
- package/Lexical.prod.js +174 -171
- package/LexicalCommands.d.ts +50 -0
- package/LexicalConstants.d.ts +43 -0
- package/LexicalEditor.d.ts +199 -0
- package/LexicalEditorState.d.ts +28 -0
- package/LexicalEvents.d.ts +14 -0
- package/LexicalGC.d.ts +12 -0
- package/LexicalMutations.d.ts +12 -0
- package/LexicalNode.d.ts +82 -0
- package/LexicalNormalization.d.ts +9 -0
- package/LexicalReconciler.d.ts +12 -0
- package/LexicalSelection.d.ts +147 -0
- package/LexicalUpdates.d.ts +25 -0
- package/LexicalUtils.d.ts +94 -0
- package/LexicalVersion.d.ts +8 -0
- package/index.d.ts +31 -0
- package/nodes/LexicalDecoratorNode.d.ts +18 -0
- package/nodes/LexicalElementNode.d.ts +71 -0
- package/nodes/LexicalGridCellNode.d.ts +18 -0
- package/nodes/LexicalGridNode.d.ts +12 -0
- package/nodes/LexicalGridRowNode.d.ts +12 -0
- package/nodes/LexicalLineBreakNode.d.ts +26 -0
- package/nodes/LexicalParagraphNode.d.ts +30 -0
- package/nodes/LexicalRootNode.d.ts +29 -0
- package/nodes/LexicalTextNode.d.ts +75 -0
- package/package.json +1 -5
- package/Lexical.d.ts +0 -853
package/Lexical.d.ts
DELETED
|
@@ -1,853 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import {Class} from 'utility-types';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* LexicalCommands
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
export type LexicalCommand<P> = Readonly<{}>;
|
|
16
|
-
|
|
17
|
-
export var SELECTION_CHANGE_COMMAND: LexicalCommand<void>;
|
|
18
|
-
export var CLICK_COMMAND: LexicalCommand<MouseEvent>;
|
|
19
|
-
export var DELETE_CHARACTER_COMMAND: LexicalCommand<boolean>;
|
|
20
|
-
export var INSERT_LINE_BREAK_COMMAND: LexicalCommand<boolean>;
|
|
21
|
-
export var INSERT_PARAGRAPH_COMMAND: LexicalCommand<void>;
|
|
22
|
-
export var CONTROLLED_TEXT_INSERTION_COMMAND: LexicalCommand<
|
|
23
|
-
InputEvent | string
|
|
24
|
-
>;
|
|
25
|
-
export var PASTE_COMMAND: LexicalCommand<ClipboardEvent>;
|
|
26
|
-
export var REMOVE_TEXT_COMMAND: LexicalCommand<void>;
|
|
27
|
-
export var DELETE_WORD_COMMAND: LexicalCommand<boolean>;
|
|
28
|
-
export var DELETE_LINE_COMMAND: LexicalCommand<boolean>;
|
|
29
|
-
export var FORMAT_TEXT_COMMAND: LexicalCommand<TextFormatType>;
|
|
30
|
-
export var UNDO_COMMAND: LexicalCommand<void>;
|
|
31
|
-
export var REDO_COMMAND: LexicalCommand<void>;
|
|
32
|
-
export var KEY_ARROW_RIGHT_COMMAND: LexicalCommand<KeyboardEvent>;
|
|
33
|
-
export var MOVE_TO_END: LexicalCommand<KeyboardEvent>;
|
|
34
|
-
export var KEY_ARROW_LEFT_COMMAND: LexicalCommand<KeyboardEvent>;
|
|
35
|
-
export var MOVE_TO_START: LexicalCommand<KeyboardEvent>;
|
|
36
|
-
export var KEY_ARROW_UP_COMMAND: LexicalCommand<KeyboardEvent>;
|
|
37
|
-
export var KEY_ARROW_DOWN_COMMAND: LexicalCommand<KeyboardEvent>;
|
|
38
|
-
export var KEY_ENTER_COMMAND: LexicalCommand<KeyboardEvent | null>;
|
|
39
|
-
export var KEY_SPACE_COMMAND: LexicalCommand<KeyboardEvent>;
|
|
40
|
-
export var KEY_BACKSPACE_COMMAND: LexicalCommand<KeyboardEvent>;
|
|
41
|
-
export var KEY_ESCAPE_COMMAND: LexicalCommand<KeyboardEvent>;
|
|
42
|
-
export var KEY_DELETE_COMMAND: LexicalCommand<KeyboardEvent>;
|
|
43
|
-
export var KEY_TAB_COMMAND: LexicalCommand<KeyboardEvent>;
|
|
44
|
-
export var KEY_MODIFIER_COMMAND: LexicalCommand<KeyboardEvent>;
|
|
45
|
-
export var INDENT_CONTENT_COMMAND: LexicalCommand<void>;
|
|
46
|
-
export var OUTDENT_CONTENT_COMMAND: LexicalCommand<void>;
|
|
47
|
-
export var DROP_COMMAND: LexicalCommand<DragEvent>;
|
|
48
|
-
export var FORMAT_ELEMENT_COMMAND: LexicalCommand<ElementFormatType>;
|
|
49
|
-
export var DRAGSTART_COMMAND: LexicalCommand<DragEvent>;
|
|
50
|
-
export var DRAGOVER_COMMAND: LexicalCommand<DragEvent>;
|
|
51
|
-
export var DRAGEND_COMMAND: LexicalCommand<DragEvent>;
|
|
52
|
-
export var COPY_COMMAND: LexicalCommand<ClipboardEvent>;
|
|
53
|
-
export var CUT_COMMAND: LexicalCommand<ClipboardEvent>;
|
|
54
|
-
export var CLEAR_EDITOR_COMMAND: LexicalCommand<void>;
|
|
55
|
-
export var CLEAR_HISTORY_COMMAND: LexicalCommand<void>;
|
|
56
|
-
export var CAN_REDO_COMMAND: LexicalCommand<boolean>;
|
|
57
|
-
export var CAN_UNDO_COMMAND: LexicalCommand<boolean>;
|
|
58
|
-
export var FOCUS_COMMAND: LexicalCommand<FocusEvent>;
|
|
59
|
-
export var BLUR_COMMAND: LexicalCommand<FocusEvent>;
|
|
60
|
-
export var INSERT_TABLE_COMMAND: LexicalCommand<{
|
|
61
|
-
rows: string;
|
|
62
|
-
columns: string;
|
|
63
|
-
includeHeaders?: boolean;
|
|
64
|
-
}>;
|
|
65
|
-
|
|
66
|
-
export declare function createCommand<T>(): LexicalCommand<T>;
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* LexicalEditor
|
|
70
|
-
*/
|
|
71
|
-
type ErrorHandler = (error: Error) => void;
|
|
72
|
-
type MutationListeners = Map<MutationListener, Class<LexicalNode>>;
|
|
73
|
-
export type NodeMutation = 'created' | 'updated' | 'destroyed';
|
|
74
|
-
type UpdateListener = (arg0: {
|
|
75
|
-
tags: Set<string>;
|
|
76
|
-
prevEditorState: EditorState;
|
|
77
|
-
editorState: EditorState;
|
|
78
|
-
dirtyLeaves: Set<NodeKey>;
|
|
79
|
-
dirtyElements: Map<NodeKey, IntentionallyMarkedAsDirtyElement>;
|
|
80
|
-
normalizedNodes: Set<NodeKey>;
|
|
81
|
-
}) => void;
|
|
82
|
-
type DecoratorListener = (decorator: Record<NodeKey, any>) => void;
|
|
83
|
-
type RootListener = (
|
|
84
|
-
element1: null | HTMLElement,
|
|
85
|
-
element2: null | HTMLElement,
|
|
86
|
-
) => void;
|
|
87
|
-
type TextContentListener = (text: string) => void;
|
|
88
|
-
type MutationListener = (nodes: Map<NodeKey, NodeMutation>) => void;
|
|
89
|
-
export type ReadOnlyListener = (readOnly: boolean) => void;
|
|
90
|
-
type Listeners = {
|
|
91
|
-
decorator: Set<DecoratorListener>;
|
|
92
|
-
mutation: MutationListeners;
|
|
93
|
-
textcontent: Set<TextContentListener>;
|
|
94
|
-
root: Set<RootListener>;
|
|
95
|
-
update: Set<UpdateListener>;
|
|
96
|
-
};
|
|
97
|
-
type CommandListener<P> = (payload: P, editor: LexicalEditor) => boolean;
|
|
98
|
-
type Commands = Map<LexicalCommand<any>, Array<Set<CommandListener<any>>>>;
|
|
99
|
-
type RegisteredNodes = Map<string, RegisteredNode>;
|
|
100
|
-
type RegisteredNode = {
|
|
101
|
-
klass: Class<LexicalNode>;
|
|
102
|
-
transforms: Set<Transform<LexicalNode>>;
|
|
103
|
-
};
|
|
104
|
-
type Transform<T> = (node: T) => void;
|
|
105
|
-
type DOMConversionCache = Map<
|
|
106
|
-
string,
|
|
107
|
-
Array<(node: Node) => DOMConversion | null>
|
|
108
|
-
>;
|
|
109
|
-
export declare class LexicalEditor {
|
|
110
|
-
_parentEditor: null | LexicalEditor;
|
|
111
|
-
_rootElement: null | HTMLElement;
|
|
112
|
-
_editorState: EditorState;
|
|
113
|
-
_htmlConversions: DOMConversionCache;
|
|
114
|
-
_pendingEditorState: null | EditorState;
|
|
115
|
-
_compositionKey: null | NodeKey;
|
|
116
|
-
_deferred: Array<() => void>;
|
|
117
|
-
_updates: Array<[() => void, void | EditorUpdateOptions]>;
|
|
118
|
-
_updating: boolean;
|
|
119
|
-
_keyToDOMMap: Map<NodeKey, HTMLElement>;
|
|
120
|
-
_listeners: Listeners;
|
|
121
|
-
_commands: Commands;
|
|
122
|
-
_nodes: RegisteredNodes;
|
|
123
|
-
_onError: ErrorHandler;
|
|
124
|
-
_decorators: Record<NodeKey, unknown>;
|
|
125
|
-
_pendingDecorators: null | Record<NodeKey, unknown>;
|
|
126
|
-
_config: EditorConfig;
|
|
127
|
-
_dirtyType: 0 | 1 | 2;
|
|
128
|
-
_cloneNotNeeded: Set<NodeKey>;
|
|
129
|
-
_dirtyLeaves: Set<NodeKey>;
|
|
130
|
-
_dirtyElements: Map<NodeKey, IntentionallyMarkedAsDirtyElement>;
|
|
131
|
-
_normalizedNodes: Set<NodeKey>;
|
|
132
|
-
_updateTags: Set<string>;
|
|
133
|
-
_observer: null | MutationObserver;
|
|
134
|
-
_key: string;
|
|
135
|
-
_readOnly: boolean;
|
|
136
|
-
_headless: boolean;
|
|
137
|
-
isComposing(): boolean;
|
|
138
|
-
registerUpdateListener(listener: UpdateListener): () => void;
|
|
139
|
-
registerRootListener(listener: RootListener): () => void;
|
|
140
|
-
registerDecoratorListener(listener: DecoratorListener): () => void;
|
|
141
|
-
registerTextContentListener(listener: TextContentListener): () => void;
|
|
142
|
-
registerCommand<P>(
|
|
143
|
-
command: LexicalCommand<P>,
|
|
144
|
-
listener: CommandListener<P>,
|
|
145
|
-
priority: CommandListenerPriority,
|
|
146
|
-
): () => void;
|
|
147
|
-
registerReadOnlyListener(listener: ReadOnlyListener): () => void;
|
|
148
|
-
registerMutationListener(
|
|
149
|
-
klass: Class<LexicalNode>,
|
|
150
|
-
listener: MutationListener,
|
|
151
|
-
): () => void;
|
|
152
|
-
registerNodeTransform<T extends LexicalNode>(
|
|
153
|
-
klass: Class<T>,
|
|
154
|
-
listener: Transform<T>,
|
|
155
|
-
): () => void;
|
|
156
|
-
dispatchCommand<P>(type: LexicalCommand<P>, payload: P): boolean;
|
|
157
|
-
hasNodes(nodes: Array<Class<LexicalNode>>): boolean;
|
|
158
|
-
getKey(): string;
|
|
159
|
-
getDecorators<X>(): Record<NodeKey, X>;
|
|
160
|
-
getRootElement(): null | HTMLElement;
|
|
161
|
-
setRootElement(rootElement: null | HTMLElement): void;
|
|
162
|
-
getElementByKey(key: NodeKey): null | HTMLElement;
|
|
163
|
-
getEditorState(): EditorState;
|
|
164
|
-
setEditorState(editorState: EditorState, options?: EditorSetOptions): void;
|
|
165
|
-
parseEditorState(
|
|
166
|
-
maybeStringifiedEditorState: string | SerializedEditorState,
|
|
167
|
-
updateFn?: () => void,
|
|
168
|
-
): EditorState;
|
|
169
|
-
update(updateFn: () => void, options?: EditorUpdateOptions): boolean;
|
|
170
|
-
focus(callbackFn?: () => void): void;
|
|
171
|
-
blur(): void;
|
|
172
|
-
isReadOnly(): boolean;
|
|
173
|
-
setReadOnly(readOnly: boolean): void;
|
|
174
|
-
toJSON(): SerializedEditor;
|
|
175
|
-
}
|
|
176
|
-
type EditorUpdateOptions = {
|
|
177
|
-
onUpdate?: () => void;
|
|
178
|
-
tag?: string;
|
|
179
|
-
skipTransforms?: true;
|
|
180
|
-
};
|
|
181
|
-
type EditorSetOptions = {
|
|
182
|
-
tag?: string;
|
|
183
|
-
};
|
|
184
|
-
type EditorThemeClassName = string;
|
|
185
|
-
type TextNodeThemeClasses = {
|
|
186
|
-
base?: EditorThemeClassName;
|
|
187
|
-
bold?: EditorThemeClassName;
|
|
188
|
-
underline?: EditorThemeClassName;
|
|
189
|
-
strikethrough?: EditorThemeClassName;
|
|
190
|
-
underlineStrikethrough?: EditorThemeClassName;
|
|
191
|
-
italic?: EditorThemeClassName;
|
|
192
|
-
code?: EditorThemeClassName;
|
|
193
|
-
subscript?: EditorThemeClassName;
|
|
194
|
-
superscript?: EditorThemeClassName;
|
|
195
|
-
};
|
|
196
|
-
|
|
197
|
-
export type EditorThemeClasses = {
|
|
198
|
-
ltr?: EditorThemeClassName;
|
|
199
|
-
rtl?: EditorThemeClassName;
|
|
200
|
-
text?: TextNodeThemeClasses;
|
|
201
|
-
paragraph?: EditorThemeClassName;
|
|
202
|
-
image?: EditorThemeClassName;
|
|
203
|
-
characterLimit?: EditorThemeClassName;
|
|
204
|
-
list?: {
|
|
205
|
-
ul?: EditorThemeClassName;
|
|
206
|
-
ulDepth?: Array<EditorThemeClassName>;
|
|
207
|
-
ol?: EditorThemeClassName;
|
|
208
|
-
olDepth?: Array<EditorThemeClassName>;
|
|
209
|
-
listitem?: EditorThemeClassName;
|
|
210
|
-
listitemChecked?: EditorThemeClassName;
|
|
211
|
-
listitemUnchecked?: EditorThemeClassName;
|
|
212
|
-
nested?: {
|
|
213
|
-
list?: EditorThemeClassName;
|
|
214
|
-
listitem?: EditorThemeClassName;
|
|
215
|
-
};
|
|
216
|
-
};
|
|
217
|
-
table?: EditorThemeClassName;
|
|
218
|
-
tableRow?: EditorThemeClassName;
|
|
219
|
-
tableCell?: EditorThemeClassName;
|
|
220
|
-
tableCellHeader?: EditorThemeClassName;
|
|
221
|
-
mark?: EditorThemeClassName;
|
|
222
|
-
markOverlap?: EditorThemeClassName;
|
|
223
|
-
link?: EditorThemeClassName;
|
|
224
|
-
quote?: EditorThemeClassName;
|
|
225
|
-
code?: EditorThemeClassName;
|
|
226
|
-
codeHighlight?: Record<string, EditorThemeClassName>;
|
|
227
|
-
hashtag?: EditorThemeClassName;
|
|
228
|
-
heading?: {
|
|
229
|
-
h1?: EditorThemeClassName;
|
|
230
|
-
h2?: EditorThemeClassName;
|
|
231
|
-
h3?: EditorThemeClassName;
|
|
232
|
-
h4?: EditorThemeClassName;
|
|
233
|
-
h5?: EditorThemeClassName;
|
|
234
|
-
h6?: EditorThemeClassName;
|
|
235
|
-
};
|
|
236
|
-
// Handle other generic values
|
|
237
|
-
[key: string]:
|
|
238
|
-
| EditorThemeClassName
|
|
239
|
-
| TextNodeThemeClasses
|
|
240
|
-
| {
|
|
241
|
-
[key: string]:
|
|
242
|
-
| Array<EditorThemeClassName>
|
|
243
|
-
| EditorThemeClassName
|
|
244
|
-
| TextNodeThemeClasses
|
|
245
|
-
| {
|
|
246
|
-
[key: string]: EditorThemeClassName;
|
|
247
|
-
};
|
|
248
|
-
};
|
|
249
|
-
};
|
|
250
|
-
|
|
251
|
-
export type EditorConfig = {
|
|
252
|
-
namespace: string;
|
|
253
|
-
theme: EditorThemeClasses;
|
|
254
|
-
disableEvents?: boolean;
|
|
255
|
-
};
|
|
256
|
-
|
|
257
|
-
export type CommandListenerPriority = 0 | 1 | 2 | 3 | 4;
|
|
258
|
-
export const COMMAND_PRIORITY_EDITOR = 0;
|
|
259
|
-
export const COMMAND_PRIORITY_LOW = 1;
|
|
260
|
-
export const COMMAND_PRIORITY_NORMAL = 2;
|
|
261
|
-
export const COMMAND_PRIORITY_HIGH = 3;
|
|
262
|
-
export const COMMAND_PRIORITY_CRITICAL = 4;
|
|
263
|
-
export type IntentionallyMarkedAsDirtyElement = boolean;
|
|
264
|
-
export function createEditor(editorConfig?: {
|
|
265
|
-
editorState?: EditorState;
|
|
266
|
-
namespace: string;
|
|
267
|
-
theme?: EditorThemeClasses;
|
|
268
|
-
parentEditor?: LexicalEditor;
|
|
269
|
-
nodes?: ReadonlyArray<Class<LexicalNode>>;
|
|
270
|
-
onError: (error: Error) => void;
|
|
271
|
-
disableEvents?: boolean;
|
|
272
|
-
readOnly?: boolean;
|
|
273
|
-
}): LexicalEditor;
|
|
274
|
-
|
|
275
|
-
/**
|
|
276
|
-
* LexicalEditorState
|
|
277
|
-
*/
|
|
278
|
-
|
|
279
|
-
export interface EditorState {
|
|
280
|
-
_nodeMap: NodeMap;
|
|
281
|
-
_selection: null | RangeSelection | NodeSelection | GridSelection;
|
|
282
|
-
_flushSync: boolean;
|
|
283
|
-
_readOnly: boolean;
|
|
284
|
-
constructor(
|
|
285
|
-
nodeMap: NodeMap,
|
|
286
|
-
selection?: RangeSelection | NodeSelection | GridSelection | null,
|
|
287
|
-
);
|
|
288
|
-
isEmpty(): boolean;
|
|
289
|
-
read<V>(callbackFn: () => V): V;
|
|
290
|
-
toJSON(): SerializedEditorState;
|
|
291
|
-
clone(
|
|
292
|
-
selection?: RangeSelection | NodeSelection | GridSelection | null,
|
|
293
|
-
): EditorState;
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
/**
|
|
297
|
-
* LexicalNode
|
|
298
|
-
*/
|
|
299
|
-
export type DOMConversion = {
|
|
300
|
-
conversion: DOMConversionFn;
|
|
301
|
-
priority: 0 | 1 | 2 | 3 | 4;
|
|
302
|
-
};
|
|
303
|
-
export type DOMConversionFn = (
|
|
304
|
-
element: Node,
|
|
305
|
-
parent?: Node,
|
|
306
|
-
) => DOMConversionOutput;
|
|
307
|
-
export type DOMChildConversion = (
|
|
308
|
-
lexicalNode: LexicalNode,
|
|
309
|
-
parentLexicalNode: LexicalNode | null | undefined,
|
|
310
|
-
) => LexicalNode | null;
|
|
311
|
-
export type DOMConversionMap = Record<
|
|
312
|
-
NodeName,
|
|
313
|
-
(node: Node) => DOMConversion | null
|
|
314
|
-
>;
|
|
315
|
-
type NodeName = string;
|
|
316
|
-
export type DOMConversionOutput = {
|
|
317
|
-
after?: (childLexicalNodes: Array<LexicalNode>) => Array<LexicalNode>;
|
|
318
|
-
forChild?: DOMChildConversion;
|
|
319
|
-
node: LexicalNode | null;
|
|
320
|
-
};
|
|
321
|
-
export type DOMExportOutput = {
|
|
322
|
-
after?: (generatedElement: HTMLElement | null) => HTMLElement | null;
|
|
323
|
-
element: HTMLElement | null;
|
|
324
|
-
};
|
|
325
|
-
export type NodeKey = string;
|
|
326
|
-
export declare class LexicalNode {
|
|
327
|
-
__type: string;
|
|
328
|
-
__key: NodeKey;
|
|
329
|
-
__parent: null | NodeKey;
|
|
330
|
-
static getType: () => string;
|
|
331
|
-
getType(): string;
|
|
332
|
-
clone(data: any): LexicalNode;
|
|
333
|
-
exportJSON(): SerializedLexicalNode;
|
|
334
|
-
importDOM(): DOMConversionMap | null;
|
|
335
|
-
constructor(key?: NodeKey);
|
|
336
|
-
getType(): string;
|
|
337
|
-
isAttached(): boolean;
|
|
338
|
-
isSelected(): boolean;
|
|
339
|
-
getKey(): NodeKey;
|
|
340
|
-
getIndexWithinParent(): number;
|
|
341
|
-
getParent<T extends ElementNode>(): T | null;
|
|
342
|
-
getParentOrThrow<T extends ElementNode>(): T;
|
|
343
|
-
getTopLevelElement(): ElementNode | this | null;
|
|
344
|
-
getTopLevelElementOrThrow(): ElementNode | this;
|
|
345
|
-
getParents<T extends ElementNode>(): Array<T>;
|
|
346
|
-
getParentKeys(): Array<NodeKey>;
|
|
347
|
-
getPreviousSibling<T extends LexicalNode>(): T | null;
|
|
348
|
-
getPreviousSiblings<T extends LexicalNode>(): Array<T>;
|
|
349
|
-
getNextSibling<T extends LexicalNode>(): T | null;
|
|
350
|
-
getNextSiblings<T extends LexicalNode>(): Array<T>;
|
|
351
|
-
getCommonAncestor<T extends ElementNode>(node: LexicalNode): T | null;
|
|
352
|
-
is(object: LexicalNode | null | undefined): boolean;
|
|
353
|
-
isBefore(targetNode: LexicalNode): boolean;
|
|
354
|
-
isParentOf(targetNode: LexicalNode): boolean;
|
|
355
|
-
getNodesBetween(targetNode: LexicalNode): Array<LexicalNode>;
|
|
356
|
-
isDirty(): boolean;
|
|
357
|
-
getLatest(): this;
|
|
358
|
-
getWritable(): this;
|
|
359
|
-
getTextContent(includeInert?: boolean, includeDirectionless?: false): string;
|
|
360
|
-
getTextContentSize(
|
|
361
|
-
includeInert?: boolean,
|
|
362
|
-
includeDirectionless?: false,
|
|
363
|
-
): number;
|
|
364
|
-
exportDOM(editor: LexicalEditor): DOMExportOutput;
|
|
365
|
-
createDOM(config: EditorConfig, editor: LexicalEditor): HTMLElement;
|
|
366
|
-
updateDOM(prevNode: unknown, dom: HTMLElement, config: EditorConfig): boolean;
|
|
367
|
-
remove(preserveEmptyParent?: boolean): void;
|
|
368
|
-
replace<N extends LexicalNode>(replaceWith: N): N;
|
|
369
|
-
insertAfter(nodeToInsert: LexicalNode): LexicalNode;
|
|
370
|
-
insertBefore(nodeToInsert: LexicalNode): LexicalNode;
|
|
371
|
-
selectPrevious(anchorOffset?: number, focusOffset?: number): RangeSelection;
|
|
372
|
-
selectNext(anchorOffset?: number, focusOffset?: number): RangeSelection;
|
|
373
|
-
markDirty(): void;
|
|
374
|
-
}
|
|
375
|
-
export type NodeMap = Map<NodeKey, LexicalNode>;
|
|
376
|
-
|
|
377
|
-
/**
|
|
378
|
-
* LexicalSelection
|
|
379
|
-
*/
|
|
380
|
-
interface BaseSelection {
|
|
381
|
-
clone(): BaseSelection;
|
|
382
|
-
dirty: boolean;
|
|
383
|
-
extract(): Array<LexicalNode>;
|
|
384
|
-
getNodes(): Array<LexicalNode>;
|
|
385
|
-
getTextContent(): string;
|
|
386
|
-
insertRawText(text: string): void;
|
|
387
|
-
is(selection: null | RangeSelection | NodeSelection | GridSelection): boolean;
|
|
388
|
-
}
|
|
389
|
-
export type GridSelectionShape = {
|
|
390
|
-
fromX: number;
|
|
391
|
-
fromY: number;
|
|
392
|
-
toX: number;
|
|
393
|
-
toY: number;
|
|
394
|
-
};
|
|
395
|
-
export declare class GridSelection {
|
|
396
|
-
gridKey: NodeKey;
|
|
397
|
-
anchor: PointType;
|
|
398
|
-
focus: PointType;
|
|
399
|
-
dirty: boolean;
|
|
400
|
-
constructor(gridKey: NodeKey, anchor: PointType, focus: PointType);
|
|
401
|
-
is(selection: null | RangeSelection | NodeSelection | GridSelection): boolean;
|
|
402
|
-
set(gridKey: NodeKey, anchorCellKey: NodeKey, focusCellKey: NodeKey): void;
|
|
403
|
-
clone(): GridSelection;
|
|
404
|
-
getCharacterOffsets(): [number, number];
|
|
405
|
-
extract(): Array<LexicalNode>;
|
|
406
|
-
isCollapsed(): boolean;
|
|
407
|
-
isBackward(): boolean;
|
|
408
|
-
insertRawText(): void;
|
|
409
|
-
insertText(): void;
|
|
410
|
-
getShape(): GridSelectionShape;
|
|
411
|
-
getNodes(): Array<LexicalNode>;
|
|
412
|
-
getTextContent(): string;
|
|
413
|
-
}
|
|
414
|
-
export function $isGridSelection(
|
|
415
|
-
x: unknown | null | undefined,
|
|
416
|
-
): x is GridSelection;
|
|
417
|
-
export declare class NodeSelection {
|
|
418
|
-
_nodes: Set<NodeKey>;
|
|
419
|
-
dirty: boolean;
|
|
420
|
-
constructor(objects: Set<NodeKey>);
|
|
421
|
-
is(selection: null | RangeSelection | NodeSelection | GridSelection): boolean;
|
|
422
|
-
add(key: NodeKey): void;
|
|
423
|
-
delete(key: NodeKey): void;
|
|
424
|
-
clear(): void;
|
|
425
|
-
has(key: NodeKey): boolean;
|
|
426
|
-
clone(): NodeSelection;
|
|
427
|
-
extract(): Array<LexicalNode>;
|
|
428
|
-
insertRawText(): void;
|
|
429
|
-
insertText(): void;
|
|
430
|
-
getNodes(): Array<LexicalNode>;
|
|
431
|
-
getTextContent(): string;
|
|
432
|
-
}
|
|
433
|
-
export function $isNodeSelection(
|
|
434
|
-
x: unknown | null | undefined,
|
|
435
|
-
): x is NodeSelection;
|
|
436
|
-
export declare class RangeSelection {
|
|
437
|
-
anchor: PointType;
|
|
438
|
-
focus: PointType;
|
|
439
|
-
dirty: boolean;
|
|
440
|
-
format: number;
|
|
441
|
-
constructor(anchor: PointType, focus: PointType, format: number);
|
|
442
|
-
is(selection: null | RangeSelection | GridSelection | NodeSelection): boolean;
|
|
443
|
-
isBackward(): boolean;
|
|
444
|
-
isCollapsed(): boolean;
|
|
445
|
-
getNodes(): Array<LexicalNode>;
|
|
446
|
-
setTextNodeRange(
|
|
447
|
-
anchorNode: TextNode,
|
|
448
|
-
anchorOffset: number,
|
|
449
|
-
focusNode: TextNode,
|
|
450
|
-
focusOffset: number,
|
|
451
|
-
): void;
|
|
452
|
-
getTextContent(): string;
|
|
453
|
-
applyDOMRange(range: StaticRange): void;
|
|
454
|
-
clone(): RangeSelection;
|
|
455
|
-
toggleFormat(format: TextFormatType): void;
|
|
456
|
-
hasFormat(type: TextFormatType): boolean;
|
|
457
|
-
insertText(text: string): void;
|
|
458
|
-
insertRawText(text: string): void;
|
|
459
|
-
removeText(): void;
|
|
460
|
-
formatText(formatType: TextFormatType): void;
|
|
461
|
-
insertNodes(nodes: Array<LexicalNode>, selectStart?: boolean): boolean;
|
|
462
|
-
insertParagraph(): void;
|
|
463
|
-
insertLineBreak(selectStart?: boolean): void;
|
|
464
|
-
getCharacterOffsets(): [number, number];
|
|
465
|
-
extract(): Array<LexicalNode>;
|
|
466
|
-
modify(
|
|
467
|
-
alter: 'move' | 'extend',
|
|
468
|
-
isBackward: boolean,
|
|
469
|
-
granularity: 'character' | 'word' | 'lineboundary',
|
|
470
|
-
): void;
|
|
471
|
-
deleteCharacter(isBackward: boolean): void;
|
|
472
|
-
deleteLine(isBackward: boolean): void;
|
|
473
|
-
deleteWord(isBackward: boolean): void;
|
|
474
|
-
}
|
|
475
|
-
export type TextPoint = TextPointType;
|
|
476
|
-
type TextPointType = {
|
|
477
|
-
key: NodeKey;
|
|
478
|
-
offset: number;
|
|
479
|
-
type: 'text';
|
|
480
|
-
is: (arg0: PointType) => boolean;
|
|
481
|
-
isBefore: (arg0: PointType) => boolean;
|
|
482
|
-
getNode: () => TextNode;
|
|
483
|
-
set: (key: NodeKey, offset: number, type: 'text' | 'element') => void;
|
|
484
|
-
getCharacterOffset: () => number;
|
|
485
|
-
isAtNodeEnd: () => boolean;
|
|
486
|
-
};
|
|
487
|
-
export type ElementPoint = ElementPointType;
|
|
488
|
-
type ElementPointType = {
|
|
489
|
-
key: NodeKey;
|
|
490
|
-
offset: number;
|
|
491
|
-
type: 'element';
|
|
492
|
-
is: (arg0: PointType) => boolean;
|
|
493
|
-
isBefore: (arg0: PointType) => boolean;
|
|
494
|
-
getNode: () => ElementNode;
|
|
495
|
-
set: (key: NodeKey, offset: number, type: 'text' | 'element') => void;
|
|
496
|
-
isAtNodeEnd: () => boolean;
|
|
497
|
-
};
|
|
498
|
-
export type Point = PointType;
|
|
499
|
-
type PointType = TextPointType | ElementPointType;
|
|
500
|
-
|
|
501
|
-
declare class _Point {
|
|
502
|
-
key: NodeKey;
|
|
503
|
-
offset: number;
|
|
504
|
-
type: 'text' | 'element';
|
|
505
|
-
constructor(key: NodeKey, offset: number, type: 'text' | 'element');
|
|
506
|
-
is(point: PointType): boolean;
|
|
507
|
-
isBefore(b: PointType): boolean;
|
|
508
|
-
getNode(): LexicalNode;
|
|
509
|
-
set(key: NodeKey, offset: number, type: 'text' | 'element'): void;
|
|
510
|
-
}
|
|
511
|
-
export function $createRangeSelection(): RangeSelection;
|
|
512
|
-
export function $createNodeSelection(): NodeSelection;
|
|
513
|
-
export function $createGridSelection(): GridSelection;
|
|
514
|
-
export function $isRangeSelection(
|
|
515
|
-
x: unknown | null | undefined,
|
|
516
|
-
): x is RangeSelection;
|
|
517
|
-
export function $getSelection():
|
|
518
|
-
| null
|
|
519
|
-
| RangeSelection
|
|
520
|
-
| NodeSelection
|
|
521
|
-
| GridSelection;
|
|
522
|
-
export function $getPreviousSelection():
|
|
523
|
-
| null
|
|
524
|
-
| RangeSelection
|
|
525
|
-
| NodeSelection
|
|
526
|
-
| GridSelection;
|
|
527
|
-
|
|
528
|
-
/**
|
|
529
|
-
* LexicalTextNode
|
|
530
|
-
*/
|
|
531
|
-
export type TextFormatType =
|
|
532
|
-
| 'bold'
|
|
533
|
-
| 'underline'
|
|
534
|
-
| 'strikethrough'
|
|
535
|
-
| 'italic'
|
|
536
|
-
| 'code'
|
|
537
|
-
| 'subscript'
|
|
538
|
-
| 'superscript';
|
|
539
|
-
type TextModeType = 'normal' | 'token' | 'segmented' | 'inert';
|
|
540
|
-
|
|
541
|
-
export declare class TextNode extends LexicalNode {
|
|
542
|
-
__text: string;
|
|
543
|
-
__format: number;
|
|
544
|
-
__style: string;
|
|
545
|
-
__mode: 0 | 1 | 2 | 3;
|
|
546
|
-
__detail: number;
|
|
547
|
-
static getType(): string;
|
|
548
|
-
static clone(node: any): TextNode;
|
|
549
|
-
constructor(text: string, key?: NodeKey);
|
|
550
|
-
getFormat(): number;
|
|
551
|
-
getStyle(): string;
|
|
552
|
-
isComposing(): boolean;
|
|
553
|
-
isToken(): boolean;
|
|
554
|
-
isSegmented(): boolean;
|
|
555
|
-
isInert(): boolean;
|
|
556
|
-
isDirectionless(): boolean;
|
|
557
|
-
isUnmergeable(): boolean;
|
|
558
|
-
hasFormat(type: TextFormatType): boolean;
|
|
559
|
-
isSimpleText(): boolean;
|
|
560
|
-
getTextContent(includeInert?: boolean, includeDirectionless?: false): string;
|
|
561
|
-
getFormatFlags(type: TextFormatType, alignWithFormat: null | number): number;
|
|
562
|
-
createDOM(config: EditorConfig): HTMLElement;
|
|
563
|
-
updateDOM(
|
|
564
|
-
prevNode: TextNode,
|
|
565
|
-
dom: HTMLElement,
|
|
566
|
-
config: EditorConfig,
|
|
567
|
-
): boolean;
|
|
568
|
-
selectionTransform(
|
|
569
|
-
prevSelection: null | RangeSelection | NodeSelection | GridSelection,
|
|
570
|
-
nextSelection: RangeSelection,
|
|
571
|
-
): void;
|
|
572
|
-
setFormat(format: number): TextNode;
|
|
573
|
-
setStyle(style: string): TextNode;
|
|
574
|
-
toggleFormat(type: TextFormatType): TextNode;
|
|
575
|
-
toggleDirectionless(): TextNode;
|
|
576
|
-
toggleUnmergeable(): TextNode;
|
|
577
|
-
setMode(type: TextModeType): this;
|
|
578
|
-
setDetail(detail: number): TextNode;
|
|
579
|
-
getDetail(): number;
|
|
580
|
-
getMode(): TextModeType;
|
|
581
|
-
setTextContent(text: string): TextNode;
|
|
582
|
-
select(_anchorOffset?: number, _focusOffset?: number): RangeSelection;
|
|
583
|
-
spliceText(
|
|
584
|
-
offset: number,
|
|
585
|
-
delCount: number,
|
|
586
|
-
newText: string,
|
|
587
|
-
moveSelection?: boolean,
|
|
588
|
-
): TextNode;
|
|
589
|
-
canInsertTextBefore(): boolean;
|
|
590
|
-
canInsertTextAfter(): boolean;
|
|
591
|
-
splitText(...splitOffsets: Array<number>): Array<TextNode>;
|
|
592
|
-
mergeWithSibling(target: TextNode): TextNode;
|
|
593
|
-
isTextEntity(): boolean;
|
|
594
|
-
static importJSON(serializedTextNode: SerializedTextNode): TextNode;
|
|
595
|
-
exportJSON(): SerializedTextNode;
|
|
596
|
-
}
|
|
597
|
-
export function $createTextNode(text?: string): TextNode;
|
|
598
|
-
export function $isTextNode(
|
|
599
|
-
node: TextNode | LexicalNode | null | undefined,
|
|
600
|
-
): node is TextNode;
|
|
601
|
-
|
|
602
|
-
/**
|
|
603
|
-
* LexicalLineBreakNode
|
|
604
|
-
*/
|
|
605
|
-
export declare class LineBreakNode extends LexicalNode {
|
|
606
|
-
static getType(): string;
|
|
607
|
-
static clone(node: LineBreakNode): LineBreakNode;
|
|
608
|
-
constructor(key?: NodeKey);
|
|
609
|
-
getTextContent(): '\n';
|
|
610
|
-
createDOM(): HTMLElement;
|
|
611
|
-
updateDOM(): false;
|
|
612
|
-
static importJSON(
|
|
613
|
-
serializedLineBreakNode: SerializedLexicalNode,
|
|
614
|
-
): LineBreakNode;
|
|
615
|
-
exportJSON(): SerializedLexicalNode;
|
|
616
|
-
}
|
|
617
|
-
export function $createLineBreakNode(): LineBreakNode;
|
|
618
|
-
export function $isLineBreakNode(
|
|
619
|
-
node: LexicalNode | null | undefined,
|
|
620
|
-
): node is LineBreakNode;
|
|
621
|
-
|
|
622
|
-
/**
|
|
623
|
-
* LexicalRootNode
|
|
624
|
-
*/
|
|
625
|
-
export declare class RootNode extends ElementNode {
|
|
626
|
-
__cachedText: null | string;
|
|
627
|
-
static getType(): string;
|
|
628
|
-
static clone(): RootNode;
|
|
629
|
-
constructor();
|
|
630
|
-
getTextContent(includeInert?: boolean, includeDirectionless?: false): string;
|
|
631
|
-
select(): RangeSelection;
|
|
632
|
-
remove(): void;
|
|
633
|
-
replace<N extends LexicalNode>(node: N): N;
|
|
634
|
-
insertBefore<T extends LexicalNode>(nodeToInsert: T): T;
|
|
635
|
-
insertAfter<T extends LexicalNode>(nodeToInsert: T): T;
|
|
636
|
-
updateDOM(prevNode: RootNode, dom: HTMLElement): false;
|
|
637
|
-
append(...nodesToAppend: Array<LexicalNode>): this;
|
|
638
|
-
canBeEmpty(): false;
|
|
639
|
-
static importJSON(serializedRootNode: SerializedRootNode): RootNode;
|
|
640
|
-
exportJSON(): SerializedElementNode;
|
|
641
|
-
}
|
|
642
|
-
export function $isRootNode(
|
|
643
|
-
node: LexicalNode | null | undefined,
|
|
644
|
-
): node is RootNode;
|
|
645
|
-
|
|
646
|
-
/**
|
|
647
|
-
* LexicalElementNode
|
|
648
|
-
*/
|
|
649
|
-
export type ElementFormatType = 'left' | 'center' | 'right' | 'justify' | '';
|
|
650
|
-
export declare class ElementNode extends LexicalNode {
|
|
651
|
-
__children: Array<NodeKey>;
|
|
652
|
-
__format: number;
|
|
653
|
-
__indent: number;
|
|
654
|
-
__dir: 'ltr' | 'rtl' | null;
|
|
655
|
-
constructor(key?: NodeKey);
|
|
656
|
-
getFormat(): number;
|
|
657
|
-
getFormatType(): ElementFormatType;
|
|
658
|
-
getIndent(): number;
|
|
659
|
-
getChildren<T extends LexicalNode>(): Array<T>;
|
|
660
|
-
getChildren<T extends Array<LexicalNode>>(): T;
|
|
661
|
-
getChildrenKeys(): Array<NodeKey>;
|
|
662
|
-
getChildrenSize(): number;
|
|
663
|
-
isEmpty(): boolean;
|
|
664
|
-
isDirty(): boolean;
|
|
665
|
-
getAllTextNodes(includeInert?: boolean): Array<TextNode>;
|
|
666
|
-
getFirstDescendant<T extends LexicalNode>(): null | T;
|
|
667
|
-
getLastDescendant<T extends LexicalNode>(): null | T;
|
|
668
|
-
getDescendantByIndex<T extends LexicalNode>(index: number): null | T;
|
|
669
|
-
getFirstChild<T extends LexicalNode>(): null | T;
|
|
670
|
-
getFirstChildOrThrow<T extends LexicalNode>(): T;
|
|
671
|
-
getLastChild<T extends LexicalNode>(): null | T;
|
|
672
|
-
getChildAtIndex<T extends LexicalNode>(index: number): null | T;
|
|
673
|
-
getTextContent(includeInert?: boolean, includeDirectionless?: false): string;
|
|
674
|
-
getDirection(): 'ltr' | 'rtl' | null;
|
|
675
|
-
hasFormat(type: ElementFormatType): boolean;
|
|
676
|
-
select(_anchorOffset?: number, _focusOffset?: number): RangeSelection;
|
|
677
|
-
selectStart(): RangeSelection;
|
|
678
|
-
selectEnd(): RangeSelection;
|
|
679
|
-
clear(): this;
|
|
680
|
-
append(...nodesToAppend: Array<LexicalNode>): this;
|
|
681
|
-
setDirection(direction: 'ltr' | 'rtl' | null): ElementNode;
|
|
682
|
-
setFormat(type: ElementFormatType): ElementNode;
|
|
683
|
-
setIndent(indentLevel: number): ElementNode;
|
|
684
|
-
insertNewAfter(selection: RangeSelection): null | LexicalNode;
|
|
685
|
-
canInsertTab(): boolean;
|
|
686
|
-
canIndent(): boolean;
|
|
687
|
-
collapseAtStart(selection: RangeSelection): boolean;
|
|
688
|
-
excludeFromCopy(destination: 'clone' | 'html'): boolean;
|
|
689
|
-
canExtractContents(): boolean;
|
|
690
|
-
canReplaceWith(replacement: LexicalNode): boolean;
|
|
691
|
-
canInsertAfter(node: LexicalNode): boolean;
|
|
692
|
-
extractWithChild(
|
|
693
|
-
child: LexicalNode,
|
|
694
|
-
selection: RangeSelection | NodeSelection | GridSelection,
|
|
695
|
-
destination: 'clone' | 'html',
|
|
696
|
-
): boolean;
|
|
697
|
-
canBeEmpty(): boolean;
|
|
698
|
-
canInsertTextBefore(): boolean;
|
|
699
|
-
canInsertTextAfter(): boolean;
|
|
700
|
-
isInline(): boolean;
|
|
701
|
-
canSelectionRemove(): boolean;
|
|
702
|
-
splice(
|
|
703
|
-
start: number,
|
|
704
|
-
deleteCount: number,
|
|
705
|
-
nodesToInsert: Array<LexicalNode>,
|
|
706
|
-
): this;
|
|
707
|
-
exportJSON(): SerializedElementNode;
|
|
708
|
-
}
|
|
709
|
-
export function $isElementNode(
|
|
710
|
-
node: LexicalNode | null | undefined,
|
|
711
|
-
): node is ElementNode;
|
|
712
|
-
|
|
713
|
-
/**
|
|
714
|
-
* LexicalDecoratorNode
|
|
715
|
-
*/
|
|
716
|
-
export declare class DecoratorNode<X = unknown> extends LexicalNode {
|
|
717
|
-
constructor(key?: NodeKey);
|
|
718
|
-
decorate(editor: LexicalEditor): X;
|
|
719
|
-
isIsolated(): boolean;
|
|
720
|
-
isTopLevel(): boolean;
|
|
721
|
-
}
|
|
722
|
-
export function $isDecoratorNode(
|
|
723
|
-
node: LexicalNode | null | undefined,
|
|
724
|
-
): node is DecoratorNode<unknown>;
|
|
725
|
-
|
|
726
|
-
/**
|
|
727
|
-
* LexicalParagraphNode
|
|
728
|
-
*/
|
|
729
|
-
export declare class ParagraphNode extends ElementNode {
|
|
730
|
-
getType(): string;
|
|
731
|
-
clone(node: ParagraphNode): ParagraphNode;
|
|
732
|
-
constructor(key?: NodeKey);
|
|
733
|
-
createDOM(config: EditorConfig): HTMLElement;
|
|
734
|
-
updateDOM(prevNode: ParagraphNode, dom: HTMLElement): boolean;
|
|
735
|
-
insertNewAfter(): ParagraphNode;
|
|
736
|
-
collapseAtStart(): boolean;
|
|
737
|
-
static importJSON(
|
|
738
|
-
serializedParagraphNode: SerializedElementNode,
|
|
739
|
-
): ParagraphNode;
|
|
740
|
-
exportJSON(): SerializedElementNode;
|
|
741
|
-
}
|
|
742
|
-
export function $createParagraphNode(): ParagraphNode;
|
|
743
|
-
export function $isParagraphNode(
|
|
744
|
-
node: LexicalNode | null | undefined,
|
|
745
|
-
): node is ParagraphNode;
|
|
746
|
-
export declare class GridNode extends ElementNode {}
|
|
747
|
-
export function $isGridNode(
|
|
748
|
-
node: LexicalNode | null | undefined,
|
|
749
|
-
): node is GridNode;
|
|
750
|
-
export declare class GridRowNode extends ElementNode {}
|
|
751
|
-
export function $isGridRowNode(
|
|
752
|
-
node: LexicalNode | null | undefined,
|
|
753
|
-
): node is GridRowNode;
|
|
754
|
-
export declare class GridCellNode extends ElementNode {
|
|
755
|
-
__colSpan: number;
|
|
756
|
-
constructor(colSpan: number, key?: NodeKey);
|
|
757
|
-
}
|
|
758
|
-
export function $isGridCellNode(
|
|
759
|
-
node: LexicalNode | null | undefined,
|
|
760
|
-
): node is GridCellNode;
|
|
761
|
-
|
|
762
|
-
/**
|
|
763
|
-
* LexicalUtils
|
|
764
|
-
*/
|
|
765
|
-
export function $hasUpdateTag(tag: string): boolean;
|
|
766
|
-
export function $addUpdateTag(tag: string): void;
|
|
767
|
-
export function $getNearestNodeFromDOMNode(
|
|
768
|
-
startingDOM: Node,
|
|
769
|
-
): LexicalNode | null;
|
|
770
|
-
export function $getNodeByKey<N extends LexicalNode>(key: NodeKey): N | null;
|
|
771
|
-
export function $getRoot(): RootNode;
|
|
772
|
-
export function $isLeafNode(
|
|
773
|
-
node: LexicalNode | null | undefined,
|
|
774
|
-
): node is TextNode | LineBreakNode | DecoratorNode<unknown>;
|
|
775
|
-
export function $setCompositionKey(compositionKey: null | NodeKey): void;
|
|
776
|
-
export function $setSelection(
|
|
777
|
-
selection: null | RangeSelection | NodeSelection | GridSelection,
|
|
778
|
-
): void;
|
|
779
|
-
export function $nodesOfType<T extends LexicalNode>(klass: Class<T>): Array<T>;
|
|
780
|
-
export function $getDecoratorNode(
|
|
781
|
-
focus: Point,
|
|
782
|
-
isBackward: boolean,
|
|
783
|
-
): null | LexicalNode;
|
|
784
|
-
export function generateRandomKey(): string;
|
|
785
|
-
export type EventHandler = (event: Event, editor: LexicalEditor) => void;
|
|
786
|
-
|
|
787
|
-
/**
|
|
788
|
-
* LexicalVersion
|
|
789
|
-
*/
|
|
790
|
-
export declare var VERSION: string;
|
|
791
|
-
|
|
792
|
-
/**
|
|
793
|
-
* Serialization/Deserialization
|
|
794
|
-
* */
|
|
795
|
-
export type Spread<T1, T2> = {[K in Exclude<keyof T1, keyof T2>]: T1[K]} & T2;
|
|
796
|
-
|
|
797
|
-
interface InternalSerializedNode {
|
|
798
|
-
children?: Array<InternalSerializedNode>;
|
|
799
|
-
type: string;
|
|
800
|
-
version: number;
|
|
801
|
-
}
|
|
802
|
-
|
|
803
|
-
export function $parseSerializedNode<
|
|
804
|
-
SerializedNode extends InternalSerializedNode,
|
|
805
|
-
>(serializedNode: SerializedNode): LexicalNode;
|
|
806
|
-
|
|
807
|
-
export type SerializedLexicalNode = {
|
|
808
|
-
type: string;
|
|
809
|
-
version: number;
|
|
810
|
-
};
|
|
811
|
-
|
|
812
|
-
export type SerializedEditor = {
|
|
813
|
-
editorState: SerializedEditorState;
|
|
814
|
-
};
|
|
815
|
-
|
|
816
|
-
export type SerializedTextNode = Spread<
|
|
817
|
-
{
|
|
818
|
-
detail: number;
|
|
819
|
-
format: number;
|
|
820
|
-
mode: TextModeType;
|
|
821
|
-
style: string;
|
|
822
|
-
text: string;
|
|
823
|
-
},
|
|
824
|
-
SerializedLexicalNode
|
|
825
|
-
>;
|
|
826
|
-
|
|
827
|
-
export type SerializedElementNode = Spread<
|
|
828
|
-
{
|
|
829
|
-
children: Array<SerializedLexicalNode>;
|
|
830
|
-
direction: 'ltr' | 'rtl' | null;
|
|
831
|
-
format: ElementFormatType;
|
|
832
|
-
indent: number;
|
|
833
|
-
},
|
|
834
|
-
SerializedLexicalNode
|
|
835
|
-
>;
|
|
836
|
-
|
|
837
|
-
export type SerializedRootNode = Spread<
|
|
838
|
-
{
|
|
839
|
-
type: 'root';
|
|
840
|
-
},
|
|
841
|
-
SerializedElementNode
|
|
842
|
-
>;
|
|
843
|
-
|
|
844
|
-
export type SerializedGridCellNode = Spread<
|
|
845
|
-
{
|
|
846
|
-
colSpan: number;
|
|
847
|
-
},
|
|
848
|
-
SerializedElementNode
|
|
849
|
-
>;
|
|
850
|
-
|
|
851
|
-
export interface SerializedEditorState {
|
|
852
|
-
root: SerializedRootNode;
|
|
853
|
-
}
|