@lobehub/editor 3.3.2 → 3.4.0
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/es/editor-kernel/index.d.ts +1 -0
- package/es/editor-kernel/index.js +3 -1
- package/es/editor-kernel/kernel.js +1 -0
- package/es/editor-kernel/lexical/Lexical.dev.js +3052 -0
- package/es/editor-kernel/lexical/Lexical.dev.mjs +15365 -0
- package/es/editor-kernel/lexical/Lexical.js +7634 -0
- package/es/editor-kernel/lexical/Lexical.mjs +7258 -0
- package/es/editor-kernel/lexical/LexicalCommands.d.ts +175 -0
- package/es/editor-kernel/lexical/LexicalConstants.d.ts +54 -0
- package/es/editor-kernel/lexical/LexicalEditor.d.ts +672 -0
- package/es/editor-kernel/lexical/LexicalEditorState.d.ts +39 -0
- package/es/editor-kernel/lexical/LexicalEvents.d.ts +22 -0
- package/es/editor-kernel/lexical/LexicalGC.d.ts +23 -0
- package/es/editor-kernel/lexical/LexicalMutations.d.ts +12 -0
- package/es/editor-kernel/lexical/LexicalNode.d.ts +689 -0
- package/es/editor-kernel/lexical/LexicalNodeState.d.ts +569 -0
- package/es/editor-kernel/lexical/LexicalNormalization.d.ts +11 -0
- package/es/editor-kernel/lexical/LexicalReconciler.d.ts +28 -0
- package/es/editor-kernel/lexical/LexicalSelection.d.ts +368 -0
- package/es/editor-kernel/lexical/LexicalUpdateTags.d.ts +67 -0
- package/es/editor-kernel/lexical/LexicalUpdates.d.ts +72 -0
- package/es/editor-kernel/lexical/LexicalUtils.d.ts +492 -0
- package/es/editor-kernel/lexical/caret/LexicalCaret.d.ts +635 -0
- package/es/editor-kernel/lexical/caret/LexicalCaretUtils.d.ts +224 -0
- package/es/editor-kernel/lexical/extension-core/defineExtension.d.ts +126 -0
- package/es/editor-kernel/lexical/extension-core/index.d.ts +38 -0
- package/es/editor-kernel/lexical/extension-core/internal.d.ts +32 -0
- package/es/editor-kernel/lexical/extension-core/safeCast.d.ts +15 -0
- package/es/editor-kernel/lexical/extension-core/shallowMergeConfig.d.ts +20 -0
- package/es/editor-kernel/lexical/extension-core/types.d.ts +371 -0
- package/es/editor-kernel/lexical/index.d.ts +368 -0
- package/es/editor-kernel/lexical/nodes/ArtificialNode.d.ts +16 -0
- package/es/editor-kernel/lexical/nodes/LexicalDecoratorNode.d.ts +32 -0
- package/es/editor-kernel/lexical/nodes/LexicalElementNode.d.ts +235 -0
- package/es/editor-kernel/lexical/nodes/LexicalLineBreakNode.d.ts +30 -0
- package/es/editor-kernel/lexical/nodes/LexicalParagraphNode.d.ts +39 -0
- package/es/editor-kernel/lexical/nodes/LexicalRootNode.d.ts +35 -0
- package/es/editor-kernel/lexical/nodes/LexicalTabNode.d.ts +30 -0
- package/es/editor-kernel/lexical/nodes/LexicalTextNode.d.ts +311 -0
- package/es/plugins/common/data-source/json-data-source.js +29 -3
- package/es/plugins/common/react/ReactPlainText.js +9 -0
- package/es/plugins/common/utils/index.d.ts +2 -1
- package/es/plugins/common/utils/index.js +33 -0
- package/es/plugins/litexml/command/index.js +9 -1
- package/es/plugins/litexml/data-source/litexml-data-source.js +12 -2
- package/es/plugins/litexml/plugin/index.js +41 -3
- package/es/plugins/litexml/utils/index.d.ts +2 -1
- package/es/plugins/litexml/utils/index.js +7 -1
- package/es/plugins/markdown/data-source/markdown-data-source.js +6 -25
- package/es/plugins/markdown/data-source/markdown-writer-context.d.ts +5 -1
- package/es/plugins/markdown/data-source/markdown-writer-context.js +27 -2
- package/es/plugins/markdown/service/shortcut.d.ts +7 -0
- package/es/types/kernel.d.ts +4 -0
- package/package.json +8 -2
- package/scripts/patch-lexical.js +39 -0
|
@@ -0,0 +1,368 @@
|
|
|
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
|
+
export type {
|
|
9
|
+
BaseCaret,
|
|
10
|
+
CaretDirection,
|
|
11
|
+
CaretRange,
|
|
12
|
+
CaretType,
|
|
13
|
+
ChildCaret,
|
|
14
|
+
CommonAncestorResult,
|
|
15
|
+
CommonAncestorResultAncestor,
|
|
16
|
+
CommonAncestorResultBranch,
|
|
17
|
+
CommonAncestorResultDescendant,
|
|
18
|
+
CommonAncestorResultSame,
|
|
19
|
+
FlipDirection,
|
|
20
|
+
NodeCaret,
|
|
21
|
+
PointCaret,
|
|
22
|
+
RootMode,
|
|
23
|
+
SiblingCaret,
|
|
24
|
+
StepwiseIteratorConfig,
|
|
25
|
+
TextPointCaret,
|
|
26
|
+
TextPointCaretSlice,
|
|
27
|
+
TextPointCaretSliceTuple,
|
|
28
|
+
} from './caret/LexicalCaret';
|
|
29
|
+
export {
|
|
30
|
+
$comparePointCaretNext,
|
|
31
|
+
$extendCaretToRange,
|
|
32
|
+
$getAdjacentChildCaret,
|
|
33
|
+
$getCaretRange,
|
|
34
|
+
$getChildCaret,
|
|
35
|
+
$getChildCaretOrSelf,
|
|
36
|
+
$getCollapsedCaretRange,
|
|
37
|
+
$getCommonAncestor,
|
|
38
|
+
$getCommonAncestorResultBranchOrder,
|
|
39
|
+
$getSiblingCaret,
|
|
40
|
+
$getTextNodeOffset,
|
|
41
|
+
$getTextPointCaret,
|
|
42
|
+
$getTextPointCaretSlice,
|
|
43
|
+
$isChildCaret,
|
|
44
|
+
$isNodeCaret,
|
|
45
|
+
$isSiblingCaret,
|
|
46
|
+
$isTextPointCaret,
|
|
47
|
+
$isTextPointCaretSlice,
|
|
48
|
+
flipDirection,
|
|
49
|
+
makeStepwiseIterator,
|
|
50
|
+
} from './caret/LexicalCaret';
|
|
51
|
+
export {
|
|
52
|
+
$caretFromPoint,
|
|
53
|
+
$caretRangeFromSelection,
|
|
54
|
+
$getAdjacentSiblingOrParentSiblingCaret,
|
|
55
|
+
$getCaretInDirection,
|
|
56
|
+
$getCaretRangeInDirection,
|
|
57
|
+
$getChildCaretAtIndex,
|
|
58
|
+
$isExtendableTextPointCaret,
|
|
59
|
+
$normalizeCaret,
|
|
60
|
+
$removeTextFromCaretRange,
|
|
61
|
+
$rewindSiblingCaret,
|
|
62
|
+
$setPointFromCaret,
|
|
63
|
+
$setSelectionFromCaretRange,
|
|
64
|
+
$splitAtPointCaretNext,
|
|
65
|
+
$updateRangeSelectionFromCaretRange,
|
|
66
|
+
type SplitAtPointCaretNextOptions,
|
|
67
|
+
} from './caret/LexicalCaretUtils';
|
|
68
|
+
export {
|
|
69
|
+
BEFORE_INPUT_COMMAND,
|
|
70
|
+
BLUR_COMMAND,
|
|
71
|
+
CAN_REDO_COMMAND,
|
|
72
|
+
CAN_UNDO_COMMAND,
|
|
73
|
+
CLEAR_EDITOR_COMMAND,
|
|
74
|
+
CLEAR_HISTORY_COMMAND,
|
|
75
|
+
CLICK_COMMAND,
|
|
76
|
+
COMPOSITION_END_COMMAND,
|
|
77
|
+
COMPOSITION_START_COMMAND,
|
|
78
|
+
CONTROLLED_TEXT_INSERTION_COMMAND,
|
|
79
|
+
COPY_COMMAND,
|
|
80
|
+
createCommand,
|
|
81
|
+
CUT_COMMAND,
|
|
82
|
+
DELETE_CHARACTER_COMMAND,
|
|
83
|
+
DELETE_LINE_COMMAND,
|
|
84
|
+
DELETE_WORD_COMMAND,
|
|
85
|
+
DRAGEND_COMMAND,
|
|
86
|
+
DRAGOVER_COMMAND,
|
|
87
|
+
DRAGSTART_COMMAND,
|
|
88
|
+
DROP_COMMAND,
|
|
89
|
+
FOCUS_COMMAND,
|
|
90
|
+
FORMAT_ELEMENT_COMMAND,
|
|
91
|
+
FORMAT_TEXT_COMMAND,
|
|
92
|
+
INDENT_CONTENT_COMMAND,
|
|
93
|
+
INPUT_COMMAND,
|
|
94
|
+
INSERT_LINE_BREAK_COMMAND,
|
|
95
|
+
INSERT_PARAGRAPH_COMMAND,
|
|
96
|
+
INSERT_TAB_COMMAND,
|
|
97
|
+
KEY_ARROW_DOWN_COMMAND,
|
|
98
|
+
KEY_ARROW_LEFT_COMMAND,
|
|
99
|
+
KEY_ARROW_RIGHT_COMMAND,
|
|
100
|
+
KEY_ARROW_UP_COMMAND,
|
|
101
|
+
KEY_BACKSPACE_COMMAND,
|
|
102
|
+
KEY_DELETE_COMMAND,
|
|
103
|
+
KEY_DOWN_COMMAND,
|
|
104
|
+
KEY_ENTER_COMMAND,
|
|
105
|
+
KEY_ESCAPE_COMMAND,
|
|
106
|
+
KEY_MODIFIER_COMMAND,
|
|
107
|
+
KEY_SPACE_COMMAND,
|
|
108
|
+
KEY_TAB_COMMAND,
|
|
109
|
+
MOVE_TO_END,
|
|
110
|
+
MOVE_TO_START,
|
|
111
|
+
OUTDENT_CONTENT_COMMAND,
|
|
112
|
+
PASTE_COMMAND,
|
|
113
|
+
type PasteCommandType,
|
|
114
|
+
REDO_COMMAND,
|
|
115
|
+
REMOVE_TEXT_COMMAND,
|
|
116
|
+
SELECT_ALL_COMMAND,
|
|
117
|
+
SELECTION_CHANGE_COMMAND,
|
|
118
|
+
SELECTION_INSERT_CLIPBOARD_NODES_COMMAND,
|
|
119
|
+
UNDO_COMMAND,
|
|
120
|
+
} from './LexicalCommands';
|
|
121
|
+
export {
|
|
122
|
+
IS_ALL_FORMATTING,
|
|
123
|
+
IS_BOLD,
|
|
124
|
+
IS_CODE,
|
|
125
|
+
IS_HIGHLIGHT,
|
|
126
|
+
IS_ITALIC,
|
|
127
|
+
IS_STRIKETHROUGH,
|
|
128
|
+
IS_SUBSCRIPT,
|
|
129
|
+
IS_SUPERSCRIPT,
|
|
130
|
+
IS_UNDERLINE,
|
|
131
|
+
NODE_STATE_KEY,
|
|
132
|
+
TEXT_TYPE_TO_FORMAT,
|
|
133
|
+
} from './LexicalConstants';
|
|
134
|
+
export type {
|
|
135
|
+
CommandListener,
|
|
136
|
+
CommandListenerPriority,
|
|
137
|
+
CommandPayloadType,
|
|
138
|
+
CreateEditorArgs,
|
|
139
|
+
EditableListener,
|
|
140
|
+
EditorConfig,
|
|
141
|
+
EditorSetOptions,
|
|
142
|
+
EditorThemeClasses,
|
|
143
|
+
EditorThemeClassName,
|
|
144
|
+
EditorUpdateOptions,
|
|
145
|
+
HTMLConfig,
|
|
146
|
+
Klass,
|
|
147
|
+
KlassConstructor,
|
|
148
|
+
LexicalCommand,
|
|
149
|
+
LexicalEditor,
|
|
150
|
+
LexicalNodeConfig,
|
|
151
|
+
LexicalNodeReplacement,
|
|
152
|
+
MutationListener,
|
|
153
|
+
NodeMutation,
|
|
154
|
+
RootListener,
|
|
155
|
+
SerializedEditor,
|
|
156
|
+
Spread,
|
|
157
|
+
Transform,
|
|
158
|
+
UpdateListener,
|
|
159
|
+
UpdateListenerPayload,
|
|
160
|
+
} from './LexicalEditor';
|
|
161
|
+
export {
|
|
162
|
+
COMMAND_PRIORITY_CRITICAL,
|
|
163
|
+
COMMAND_PRIORITY_EDITOR,
|
|
164
|
+
COMMAND_PRIORITY_HIGH,
|
|
165
|
+
COMMAND_PRIORITY_LOW,
|
|
166
|
+
COMMAND_PRIORITY_NORMAL,
|
|
167
|
+
createEditor,
|
|
168
|
+
getTransformSetFromKlass,
|
|
169
|
+
} from './LexicalEditor';
|
|
170
|
+
export type {
|
|
171
|
+
EditorState,
|
|
172
|
+
EditorStateReadOptions,
|
|
173
|
+
SerializedEditorState,
|
|
174
|
+
} from './LexicalEditorState';
|
|
175
|
+
export { $isEditorState } from './LexicalEditorState';
|
|
176
|
+
export type { EventHandler } from './LexicalEvents';
|
|
177
|
+
export type {
|
|
178
|
+
BaseStaticNodeConfig,
|
|
179
|
+
DOMChildConversion,
|
|
180
|
+
DOMConversion,
|
|
181
|
+
DOMConversionFn,
|
|
182
|
+
DOMConversionMap,
|
|
183
|
+
DOMConversionOutput,
|
|
184
|
+
DOMConversionProp,
|
|
185
|
+
DOMConversionPropByTagName,
|
|
186
|
+
DOMConversionTagNameMap,
|
|
187
|
+
DOMExportOutput,
|
|
188
|
+
DOMExportOutputMap,
|
|
189
|
+
LexicalExportJSON,
|
|
190
|
+
LexicalNode,
|
|
191
|
+
LexicalUpdateJSON,
|
|
192
|
+
NodeKey,
|
|
193
|
+
NodeMap,
|
|
194
|
+
SerializedLexicalNode,
|
|
195
|
+
StaticNodeConfig,
|
|
196
|
+
StaticNodeConfigRecord,
|
|
197
|
+
StaticNodeConfigValue,
|
|
198
|
+
} from './LexicalNode';
|
|
199
|
+
export { buildImportMap } from './LexicalNode';
|
|
200
|
+
export {
|
|
201
|
+
$getState,
|
|
202
|
+
$getStateChange,
|
|
203
|
+
$getWritableNodeState,
|
|
204
|
+
$setState,
|
|
205
|
+
type AnyStateConfig,
|
|
206
|
+
createSharedNodeState,
|
|
207
|
+
createState,
|
|
208
|
+
type NodeStateJSON,
|
|
209
|
+
type StateConfig,
|
|
210
|
+
type StateConfigKey,
|
|
211
|
+
type StateConfigValue,
|
|
212
|
+
type StateValueConfig,
|
|
213
|
+
type StateValueOrUpdater,
|
|
214
|
+
type ValueOrUpdater,
|
|
215
|
+
} from './LexicalNodeState';
|
|
216
|
+
export { $normalizeSelection as $normalizeSelection__EXPERIMENTAL } from './LexicalNormalization';
|
|
217
|
+
export type {
|
|
218
|
+
BaseSelection,
|
|
219
|
+
ElementPointType as ElementPoint,
|
|
220
|
+
NodeSelection,
|
|
221
|
+
Point,
|
|
222
|
+
PointType,
|
|
223
|
+
RangeSelection,
|
|
224
|
+
TextPointType as TextPoint,
|
|
225
|
+
} from './LexicalSelection';
|
|
226
|
+
export {
|
|
227
|
+
$createNodeSelection,
|
|
228
|
+
$createPoint,
|
|
229
|
+
$createRangeSelection,
|
|
230
|
+
$createRangeSelectionFromDom,
|
|
231
|
+
$getCharacterOffsets,
|
|
232
|
+
$getPreviousSelection,
|
|
233
|
+
$getSelection,
|
|
234
|
+
$getTextContent,
|
|
235
|
+
$insertNodes,
|
|
236
|
+
$isBlockElementNode,
|
|
237
|
+
$isNodeSelection,
|
|
238
|
+
$isRangeSelection,
|
|
239
|
+
} from './LexicalSelection';
|
|
240
|
+
export { $parseSerializedNode, isCurrentlyReadOnlyMode } from './LexicalUpdates';
|
|
241
|
+
export {
|
|
242
|
+
$addUpdateTag,
|
|
243
|
+
$applyNodeReplacement,
|
|
244
|
+
$cloneWithProperties,
|
|
245
|
+
$cloneWithPropertiesEphemeral,
|
|
246
|
+
$copyNode,
|
|
247
|
+
$create,
|
|
248
|
+
$findMatchingParent,
|
|
249
|
+
$getAdjacentNode,
|
|
250
|
+
$getEditor,
|
|
251
|
+
$getNearestNodeFromDOMNode,
|
|
252
|
+
$getNearestRootOrShadowRoot,
|
|
253
|
+
$getNodeByKey,
|
|
254
|
+
$getNodeByKeyOrThrow,
|
|
255
|
+
$getNodeFromDOMNode,
|
|
256
|
+
$getRoot,
|
|
257
|
+
$hasAncestor,
|
|
258
|
+
$hasUpdateTag,
|
|
259
|
+
$isInlineElementOrDecoratorNode,
|
|
260
|
+
$isLeafNode,
|
|
261
|
+
$isRootOrShadowRoot,
|
|
262
|
+
$isTokenOrSegmented,
|
|
263
|
+
$isTokenOrTab,
|
|
264
|
+
$nodesOfType,
|
|
265
|
+
$onUpdate,
|
|
266
|
+
$selectAll,
|
|
267
|
+
$setCompositionKey,
|
|
268
|
+
$setSelection,
|
|
269
|
+
$splitNode,
|
|
270
|
+
getDOMOwnerDocument,
|
|
271
|
+
getDOMSelection,
|
|
272
|
+
getDOMSelectionFromTarget,
|
|
273
|
+
getDOMTextNode,
|
|
274
|
+
getEditorPropertyFromDOMNode,
|
|
275
|
+
getNearestEditorFromDOMNode,
|
|
276
|
+
getRegisteredNode,
|
|
277
|
+
getRegisteredNodeOrThrow,
|
|
278
|
+
getStaticNodeConfig,
|
|
279
|
+
getTextDirection,
|
|
280
|
+
INTERNAL_$isBlock,
|
|
281
|
+
isBlockDomNode,
|
|
282
|
+
isDocumentFragment,
|
|
283
|
+
isDOMDocumentNode,
|
|
284
|
+
isDOMNode,
|
|
285
|
+
isDOMTextNode,
|
|
286
|
+
isDOMUnmanaged,
|
|
287
|
+
isExactShortcutMatch,
|
|
288
|
+
isHTMLAnchorElement,
|
|
289
|
+
isHTMLElement,
|
|
290
|
+
isInlineDomNode,
|
|
291
|
+
isLexicalEditor,
|
|
292
|
+
isModifierMatch,
|
|
293
|
+
isSelectionCapturedInDecoratorInput,
|
|
294
|
+
isSelectionWithinEditor,
|
|
295
|
+
removeFromParent,
|
|
296
|
+
resetRandomKey,
|
|
297
|
+
setDOMUnmanaged,
|
|
298
|
+
setNodeIndentFromDOM,
|
|
299
|
+
} from './LexicalUtils';
|
|
300
|
+
export { ArtificialNode__DO_NOT_USE } from './nodes/ArtificialNode';
|
|
301
|
+
export { $isDecoratorNode, DecoratorNode } from './nodes/LexicalDecoratorNode';
|
|
302
|
+
export type {
|
|
303
|
+
ElementDOMSlot,
|
|
304
|
+
ElementFormatType,
|
|
305
|
+
SerializedElementNode,
|
|
306
|
+
} from './nodes/LexicalElementNode';
|
|
307
|
+
export { $isElementNode, ElementNode } from './nodes/LexicalElementNode';
|
|
308
|
+
export type { SerializedLineBreakNode } from './nodes/LexicalLineBreakNode';
|
|
309
|
+
export {
|
|
310
|
+
$createLineBreakNode,
|
|
311
|
+
$isLineBreakNode,
|
|
312
|
+
LineBreakNode,
|
|
313
|
+
} from './nodes/LexicalLineBreakNode';
|
|
314
|
+
export type { SerializedParagraphNode } from './nodes/LexicalParagraphNode';
|
|
315
|
+
export {
|
|
316
|
+
$createParagraphNode,
|
|
317
|
+
$isParagraphNode,
|
|
318
|
+
ParagraphNode,
|
|
319
|
+
} from './nodes/LexicalParagraphNode';
|
|
320
|
+
export type { SerializedRootNode } from './nodes/LexicalRootNode';
|
|
321
|
+
export { $isRootNode, RootNode } from './nodes/LexicalRootNode';
|
|
322
|
+
export type { SerializedTabNode } from './nodes/LexicalTabNode';
|
|
323
|
+
export { $createTabNode, $isTabNode, TabNode } from './nodes/LexicalTabNode';
|
|
324
|
+
export type { SerializedTextNode, TextFormatType, TextModeType } from './nodes/LexicalTextNode';
|
|
325
|
+
export { $createTextNode, $isTextNode, TextNode } from './nodes/LexicalTextNode';
|
|
326
|
+
export {
|
|
327
|
+
COLLABORATION_TAG,
|
|
328
|
+
HISTORIC_TAG,
|
|
329
|
+
HISTORY_MERGE_TAG,
|
|
330
|
+
HISTORY_PUSH_TAG,
|
|
331
|
+
PASTE_TAG,
|
|
332
|
+
SKIP_COLLAB_TAG,
|
|
333
|
+
SKIP_DOM_SELECTION_TAG,
|
|
334
|
+
SKIP_SCROLL_INTO_VIEW_TAG,
|
|
335
|
+
SKIP_SELECTION_FOCUS_TAG,
|
|
336
|
+
type UpdateTag,
|
|
337
|
+
} from './LexicalUpdateTags';
|
|
338
|
+
export {
|
|
339
|
+
type AnyLexicalExtension,
|
|
340
|
+
type AnyLexicalExtensionArgument,
|
|
341
|
+
type AnyNormalizedLexicalExtensionArgument,
|
|
342
|
+
configExtension,
|
|
343
|
+
type configTypeSymbol,
|
|
344
|
+
declarePeerDependency,
|
|
345
|
+
defineExtension,
|
|
346
|
+
type ExtensionBuildState,
|
|
347
|
+
type ExtensionConfigBase,
|
|
348
|
+
type ExtensionInitState,
|
|
349
|
+
type ExtensionRegisterState,
|
|
350
|
+
type InitialEditorConfig,
|
|
351
|
+
type InitialEditorStateType,
|
|
352
|
+
type initTypeSymbol,
|
|
353
|
+
type LexicalEditorWithDispose,
|
|
354
|
+
type LexicalExtension,
|
|
355
|
+
type LexicalExtensionArgument,
|
|
356
|
+
type LexicalExtensionConfig,
|
|
357
|
+
type LexicalExtensionDependency,
|
|
358
|
+
type LexicalExtensionInit,
|
|
359
|
+
type LexicalExtensionInternal,
|
|
360
|
+
type LexicalExtensionName,
|
|
361
|
+
type LexicalExtensionOutput,
|
|
362
|
+
type NormalizedLexicalExtensionArgument,
|
|
363
|
+
type NormalizedPeerDependency,
|
|
364
|
+
type OutputComponentExtension,
|
|
365
|
+
type outputTypeSymbol,
|
|
366
|
+
safeCast,
|
|
367
|
+
shallowMergeConfig,
|
|
368
|
+
} from './extension-core';
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
import type { EditorConfig } from 'lexical';
|
|
9
|
+
|
|
10
|
+
import { ElementNode } from './LexicalElementNode';
|
|
11
|
+
|
|
12
|
+
/** @internal */
|
|
13
|
+
export declare class ArtificialNode__DO_NOT_USE extends ElementNode {
|
|
14
|
+
static getType(): string;
|
|
15
|
+
createDOM(config: EditorConfig): HTMLElement;
|
|
16
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
import type { EditorConfig } from 'lexical';
|
|
9
|
+
|
|
10
|
+
import type { KlassConstructor, LexicalEditor } from '../LexicalEditor';
|
|
11
|
+
import { LexicalNode } from '../LexicalNode';
|
|
12
|
+
import type { ElementNode } from './LexicalElementNode';
|
|
13
|
+
|
|
14
|
+
export interface DecoratorNode<T> {
|
|
15
|
+
getTopLevelElement(): ElementNode | this | null;
|
|
16
|
+
getTopLevelElementOrThrow(): ElementNode | this;
|
|
17
|
+
}
|
|
18
|
+
/** @noInheritDoc */
|
|
19
|
+
export declare class DecoratorNode<T> extends LexicalNode {
|
|
20
|
+
/** @internal */
|
|
21
|
+
['constructor']: KlassConstructor<typeof DecoratorNode<T>>;
|
|
22
|
+
/**
|
|
23
|
+
* The returned value is added to the LexicalEditor._decorators
|
|
24
|
+
*/
|
|
25
|
+
decorate(editor: LexicalEditor, config: EditorConfig): null | T;
|
|
26
|
+
isIsolated(): boolean;
|
|
27
|
+
isInline(): boolean;
|
|
28
|
+
isKeyboardSelectable(): boolean;
|
|
29
|
+
}
|
|
30
|
+
export declare function $isDecoratorNode<T>(
|
|
31
|
+
node: LexicalNode | null | undefined,
|
|
32
|
+
): node is DecoratorNode<T>;
|
|
@@ -0,0 +1,235 @@
|
|
|
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
|
+
import type {
|
|
9
|
+
KlassConstructor,
|
|
10
|
+
LexicalEditor,
|
|
11
|
+
LexicalUpdateJSON,
|
|
12
|
+
Spread,
|
|
13
|
+
TextFormatType,
|
|
14
|
+
} from 'lexical';
|
|
15
|
+
|
|
16
|
+
import type {
|
|
17
|
+
DOMExportOutput,
|
|
18
|
+
LexicalPrivateDOM,
|
|
19
|
+
NodeKey,
|
|
20
|
+
SerializedLexicalNode,
|
|
21
|
+
} from '../LexicalNode';
|
|
22
|
+
import { LexicalNode } from '../LexicalNode';
|
|
23
|
+
import type { BaseSelection, RangeSelection } from '../LexicalSelection';
|
|
24
|
+
import { TextNode } from '../index';
|
|
25
|
+
|
|
26
|
+
export type SerializedElementNode<T extends SerializedLexicalNode = SerializedLexicalNode> = Spread<
|
|
27
|
+
{
|
|
28
|
+
children: Array<T>;
|
|
29
|
+
direction: 'ltr' | 'rtl' | null;
|
|
30
|
+
format: ElementFormatType;
|
|
31
|
+
indent: number;
|
|
32
|
+
textFormat?: number;
|
|
33
|
+
textStyle?: string;
|
|
34
|
+
},
|
|
35
|
+
SerializedLexicalNode
|
|
36
|
+
>;
|
|
37
|
+
export type ElementFormatType = 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
|
|
38
|
+
export interface ElementNode {
|
|
39
|
+
getTopLevelElement(): ElementNode | null;
|
|
40
|
+
getTopLevelElementOrThrow(): ElementNode;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* A utility class for managing the DOM children of an ElementNode
|
|
44
|
+
*/
|
|
45
|
+
export declare class ElementDOMSlot<T extends HTMLElement = HTMLElement> {
|
|
46
|
+
readonly element: T;
|
|
47
|
+
readonly before: Node | null;
|
|
48
|
+
readonly after: Node | null;
|
|
49
|
+
constructor(
|
|
50
|
+
/** The element returned by createDOM */
|
|
51
|
+
element: T,
|
|
52
|
+
/** All managed children will be inserted before this node, if defined */
|
|
53
|
+
before?: Node | undefined | null,
|
|
54
|
+
/** All managed children will be inserted after this node, if defined */
|
|
55
|
+
after?: Node | undefined | null,
|
|
56
|
+
);
|
|
57
|
+
/**
|
|
58
|
+
* Return a new ElementDOMSlot where all managed children will be inserted before this node
|
|
59
|
+
*/
|
|
60
|
+
withBefore(before: Node | undefined | null): ElementDOMSlot<T>;
|
|
61
|
+
/**
|
|
62
|
+
* Return a new ElementDOMSlot where all managed children will be inserted after this node
|
|
63
|
+
*/
|
|
64
|
+
withAfter(after: Node | undefined | null): ElementDOMSlot<T>;
|
|
65
|
+
/**
|
|
66
|
+
* Return a new ElementDOMSlot with an updated root element
|
|
67
|
+
*/
|
|
68
|
+
withElement<ElementType extends HTMLElement>(element: ElementType): ElementDOMSlot<ElementType>;
|
|
69
|
+
/**
|
|
70
|
+
* Insert the given child before this.before and any reconciler managed line break node,
|
|
71
|
+
* or append it if this.before is not defined
|
|
72
|
+
*/
|
|
73
|
+
insertChild(dom: Node): this;
|
|
74
|
+
/**
|
|
75
|
+
* Remove the managed child from this container, will throw if it was not already there
|
|
76
|
+
*/
|
|
77
|
+
removeChild(dom: Node): this;
|
|
78
|
+
/**
|
|
79
|
+
* Replace managed child prevDom with dom. Will throw if prevDom is not a child
|
|
80
|
+
*
|
|
81
|
+
* @param dom The new node to replace prevDom
|
|
82
|
+
* @param prevDom the node that will be replaced
|
|
83
|
+
*/
|
|
84
|
+
replaceChild(dom: Node, prevDom: Node): this;
|
|
85
|
+
/**
|
|
86
|
+
* Returns the first managed child of this node,
|
|
87
|
+
* which will either be this.after.nextSibling or this.element.firstChild,
|
|
88
|
+
* and will never be this.before if it is defined.
|
|
89
|
+
*/
|
|
90
|
+
getFirstChild(): ChildNode | null;
|
|
91
|
+
/**
|
|
92
|
+
* @internal
|
|
93
|
+
*/
|
|
94
|
+
getManagedLineBreak(): Exclude<LexicalPrivateDOM['__lexicalLineBreak'], undefined>;
|
|
95
|
+
/** @internal */
|
|
96
|
+
setManagedLineBreak(lineBreakType: null | 'empty' | 'line-break' | 'decorator'): void;
|
|
97
|
+
/** @internal */
|
|
98
|
+
removeManagedLineBreak(): void;
|
|
99
|
+
/** @internal */
|
|
100
|
+
insertManagedLineBreak(webkitHack: boolean): void;
|
|
101
|
+
/**
|
|
102
|
+
* @internal
|
|
103
|
+
*
|
|
104
|
+
* Returns the offset of the first child
|
|
105
|
+
*/
|
|
106
|
+
getFirstChildOffset(): number;
|
|
107
|
+
/**
|
|
108
|
+
* @internal
|
|
109
|
+
*/
|
|
110
|
+
resolveChildIndex(
|
|
111
|
+
element: ElementNode,
|
|
112
|
+
elementDOM: HTMLElement,
|
|
113
|
+
initialDOM: Node,
|
|
114
|
+
initialOffset: number,
|
|
115
|
+
): [node: ElementNode, idx: number];
|
|
116
|
+
}
|
|
117
|
+
export declare function indexPath(root: HTMLElement, child: Node): number[];
|
|
118
|
+
/** @noInheritDoc */
|
|
119
|
+
export declare class ElementNode extends LexicalNode {
|
|
120
|
+
/** @internal */
|
|
121
|
+
['constructor']: KlassConstructor<typeof ElementNode>;
|
|
122
|
+
/** @internal */
|
|
123
|
+
__first: null | NodeKey;
|
|
124
|
+
/** @internal */
|
|
125
|
+
__last: null | NodeKey;
|
|
126
|
+
/** @internal */
|
|
127
|
+
__size: number;
|
|
128
|
+
/** @internal */
|
|
129
|
+
__format: number;
|
|
130
|
+
/** @internal */
|
|
131
|
+
__style: string;
|
|
132
|
+
/** @internal */
|
|
133
|
+
__indent: number;
|
|
134
|
+
/** @internal */
|
|
135
|
+
__dir: 'ltr' | 'rtl' | null;
|
|
136
|
+
/** @internal */
|
|
137
|
+
__textFormat: number;
|
|
138
|
+
/** @internal */
|
|
139
|
+
__textStyle: string;
|
|
140
|
+
constructor(key?: NodeKey);
|
|
141
|
+
afterCloneFrom(prevNode: this): void;
|
|
142
|
+
getFormat(): number;
|
|
143
|
+
getFormatType(): ElementFormatType;
|
|
144
|
+
getStyle(): string;
|
|
145
|
+
getIndent(): number;
|
|
146
|
+
getChildren<T extends LexicalNode>(): Array<T>;
|
|
147
|
+
getChildrenKeys(): Array<NodeKey>;
|
|
148
|
+
getChildrenSize(): number;
|
|
149
|
+
isEmpty(): boolean;
|
|
150
|
+
isDirty(): boolean;
|
|
151
|
+
isLastChild(): boolean;
|
|
152
|
+
getAllTextNodes(): Array<TextNode>;
|
|
153
|
+
getFirstDescendant<T extends LexicalNode>(): null | T;
|
|
154
|
+
getLastDescendant<T extends LexicalNode>(): null | T;
|
|
155
|
+
getDescendantByIndex<T extends LexicalNode>(index: number): null | T;
|
|
156
|
+
getFirstChild<T extends LexicalNode>(): null | T;
|
|
157
|
+
getFirstChildOrThrow<T extends LexicalNode>(): T;
|
|
158
|
+
getLastChild<T extends LexicalNode>(): null | T;
|
|
159
|
+
getLastChildOrThrow<T extends LexicalNode>(): T;
|
|
160
|
+
getChildAtIndex<T extends LexicalNode>(index: number): null | T;
|
|
161
|
+
getTextContent(): string;
|
|
162
|
+
getTextContentSize(): number;
|
|
163
|
+
getDirection(): 'ltr' | 'rtl' | null;
|
|
164
|
+
getTextFormat(): number;
|
|
165
|
+
hasFormat(type: ElementFormatType): boolean;
|
|
166
|
+
hasTextFormat(type: TextFormatType): boolean;
|
|
167
|
+
/**
|
|
168
|
+
* Returns the format flags applied to the node as a 32-bit integer.
|
|
169
|
+
*
|
|
170
|
+
* @returns a number representing the TextFormatTypes applied to the node.
|
|
171
|
+
*/
|
|
172
|
+
getFormatFlags(type: TextFormatType, alignWithFormat: null | number): number;
|
|
173
|
+
getTextStyle(): string;
|
|
174
|
+
select(_anchorOffset?: number, _focusOffset?: number): RangeSelection;
|
|
175
|
+
selectStart(): RangeSelection;
|
|
176
|
+
selectEnd(): RangeSelection;
|
|
177
|
+
clear(): this;
|
|
178
|
+
append(...nodesToAppend: LexicalNode[]): this;
|
|
179
|
+
setDirection(direction: 'ltr' | 'rtl' | null): this;
|
|
180
|
+
setFormat(type: ElementFormatType): this;
|
|
181
|
+
setStyle(style: string): this;
|
|
182
|
+
setTextFormat(type: number): this;
|
|
183
|
+
setTextStyle(style: string): this;
|
|
184
|
+
setIndent(indentLevel: number): this;
|
|
185
|
+
splice(start: number, deleteCount: number, nodesToInsert: Array<LexicalNode>): this;
|
|
186
|
+
/**
|
|
187
|
+
* @internal
|
|
188
|
+
*
|
|
189
|
+
* An experimental API that an ElementNode can override to control where its
|
|
190
|
+
* children are inserted into the DOM, this is useful to add a wrapping node
|
|
191
|
+
* or accessory nodes before or after the children. The root of the node returned
|
|
192
|
+
* by createDOM must still be exactly one HTMLElement.
|
|
193
|
+
*/
|
|
194
|
+
getDOMSlot(element: HTMLElement): ElementDOMSlot<HTMLElement>;
|
|
195
|
+
exportDOM(editor: LexicalEditor): DOMExportOutput;
|
|
196
|
+
exportJSON(): SerializedElementNode;
|
|
197
|
+
updateFromJSON(serializedNode: LexicalUpdateJSON<SerializedElementNode>): this;
|
|
198
|
+
insertNewAfter(selection: RangeSelection, restoreSelection?: boolean): null | LexicalNode;
|
|
199
|
+
canIndent(): boolean;
|
|
200
|
+
collapseAtStart(selection: RangeSelection): boolean;
|
|
201
|
+
excludeFromCopy(destination?: 'clone' | 'html'): boolean;
|
|
202
|
+
/** @deprecated @internal */
|
|
203
|
+
canReplaceWith(replacement: LexicalNode): boolean;
|
|
204
|
+
/** @deprecated @internal */
|
|
205
|
+
canInsertAfter(node: LexicalNode): boolean;
|
|
206
|
+
canBeEmpty(): boolean;
|
|
207
|
+
canInsertTextBefore(): boolean;
|
|
208
|
+
canInsertTextAfter(): boolean;
|
|
209
|
+
isInline(): boolean;
|
|
210
|
+
isShadowRoot(): boolean;
|
|
211
|
+
/** @deprecated @internal */
|
|
212
|
+
canMergeWith(node: ElementNode): boolean;
|
|
213
|
+
extractWithChild(
|
|
214
|
+
child: LexicalNode,
|
|
215
|
+
selection: BaseSelection | null,
|
|
216
|
+
destination: 'clone' | 'html',
|
|
217
|
+
): boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Determines whether this node, when empty, can merge with a first block
|
|
220
|
+
* of nodes being inserted.
|
|
221
|
+
*
|
|
222
|
+
* This method is specifically called in {@link RangeSelection.insertNodes}
|
|
223
|
+
* to determine merging behavior during nodes insertion.
|
|
224
|
+
*
|
|
225
|
+
* @example
|
|
226
|
+
* // In a ListItemNode or QuoteNode implementation:
|
|
227
|
+
* canMergeWhenEmpty(): true {
|
|
228
|
+
* return true;
|
|
229
|
+
* }
|
|
230
|
+
*/
|
|
231
|
+
canMergeWhenEmpty(): boolean;
|
|
232
|
+
/** @internal */
|
|
233
|
+
reconcileObservedMutation(dom: HTMLElement, editor: LexicalEditor): void;
|
|
234
|
+
}
|
|
235
|
+
export declare function $isElementNode(node: LexicalNode | null | undefined): node is ElementNode;
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
import type { KlassConstructor } from '../LexicalEditor';
|
|
9
|
+
import type { DOMConversionMap, NodeKey, SerializedLexicalNode } from '../LexicalNode';
|
|
10
|
+
import { LexicalNode } from '../LexicalNode';
|
|
11
|
+
|
|
12
|
+
export type SerializedLineBreakNode = SerializedLexicalNode;
|
|
13
|
+
/** @noInheritDoc */
|
|
14
|
+
export declare class LineBreakNode extends LexicalNode {
|
|
15
|
+
/** @internal */
|
|
16
|
+
['constructor']: KlassConstructor<typeof LineBreakNode>;
|
|
17
|
+
static getType(): string;
|
|
18
|
+
static clone(node: LineBreakNode): LineBreakNode;
|
|
19
|
+
constructor(key?: NodeKey);
|
|
20
|
+
getTextContent(): '\n';
|
|
21
|
+
createDOM(): HTMLElement;
|
|
22
|
+
updateDOM(): false;
|
|
23
|
+
isInline(): true;
|
|
24
|
+
static importDOM(): DOMConversionMap | null;
|
|
25
|
+
static importJSON(serializedLineBreakNode: SerializedLineBreakNode): LineBreakNode;
|
|
26
|
+
}
|
|
27
|
+
export declare function $createLineBreakNode(): LineBreakNode;
|
|
28
|
+
export declare function $isLineBreakNode(
|
|
29
|
+
node: LexicalNode | null | undefined,
|
|
30
|
+
): node is LineBreakNode;
|