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.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
- }