@lexical/rich-text
Classes
HeadingNode
Defined in: packages/lexical-rich-text/src/index.ts:351
Extends
Constructors
Constructor
new HeadingNode(
tag?,key?):HeadingNode
Defined in: packages/lexical-rich-text/src/index.ts:404
Parameters
tag?
HeadingTagType = 'h1'
key?
string
Returns
Inherited from
Properties
importDOM?
staticoptionalimportDOM?: () =>DOMConversionMap<any> |null
Defined in: packages/lexical/src/LexicalNode.ts:1161
Returns
DOMConversionMap<any> | null
Inherited from
Methods
$config()
$config():
BaseStaticNodeConfig&StaticNodeConfigAccessor<{$transform: { };extends: typeofLexicalNode;generated:GeneratedJSONFactory;json:NodeSerializationSchema<ElementNode, {direction?:"ltr"|"rtl"|null;format?:""|"left"|"start"|"center"|"right"|"end"|"justify";indent?:string|number;textFormat?:string|number;textStyle?:string; }>; }> &object&StaticNodeTypeAccessor<"heading"> &StaticNodeConfigAccessor<{extends: typeofElementNode;generated:GeneratedJSONFactory;importDOM: {h1: () =>object;h2: () =>object;h3: () =>object;h4: () =>object;h5: () =>object;h6: () =>object;p: (node) => {conversion: () =>object;priority:3; } |null;span: (node) => {conversion: () =>object;priority:3; } |null; };json:NodeSerializationSchema<HeadingNode, {tag?:"h1"|"h2"|"h3"|"h4"|"h5"|"h6"; }>; }>
Defined in: packages/lexical-rich-text/src/index.ts:363
Override this to implement the new static node configuration protocol, this method is called directly on the prototype and must not depend on anything initialized in the constructor. Generally it should be a trivial implementation.
Returns
BaseStaticNodeConfig & StaticNodeConfigAccessor<{ $transform: { }; extends: typeof LexicalNode; generated: GeneratedJSONFactory; json: NodeSerializationSchema<ElementNode, { direction?: "ltr" | "rtl" | null; format?: "" | "left" | "start" | "center" | "right" | "end" | "justify"; indent?: string | number; textFormat?: string | number; textStyle?: string; }>; }> & object & StaticNodeTypeAccessor<"heading"> & StaticNodeConfigAccessor<{ extends: typeof ElementNode; generated: GeneratedJSONFactory; importDOM: { h1: () => object; h2: () => object; h3: () => object; h4: () => object; h5: () => object; h6: () => object; p: (node) => { conversion: () => object; priority: 3; } | null; span: (node) => { conversion: () => object; priority: 3; } | null; }; json: NodeSerializationSchema<HeadingNode, { tag?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6"; }>; }>
Example
class MyNode extends TextNode {
$config() {
return this.config('my-node', {extends: TextNode});
}
}
Inherited from
afterCloneFrom()
afterCloneFrom(
prevNode):void
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:329
Perform any state updates on the clone of prevNode that are not already
handled by the constructor call in the static clone method. If you have
state to update in your clone that is not handled directly by the
constructor, it is advisable to override this method but it is required
to include a call to super.afterCloneFrom(prevNode) in your
implementation. This is only intended to be called by
$cloneWithProperties function or via a super call.
Parameters
prevNode
this
Returns
void
Example
class ClassesTextNode extends TextNode {
// Not shown: static getType, static importJSON, exportJSON, createDOM, updateDOM
__classes = new Set<string>();
static clone(node: ClassesTextNode): ClassesTextNode {
// The inherited TextNode constructor is used here, so
// classes is not set by this method.
return new ClassesTextNode(node.__text, node.__key);
}
afterCloneFrom(node: this): void {
// This calls TextNode.afterCloneFrom and LexicalNode.afterCloneFrom
// for necessary state updates
super.afterCloneFrom(node);
this.__addClasses(node.__classes);
}
// This method is a private implementation detail, it is not
// suitable for the public API because it does not call getWritable
__addClasses(classNames: Iterable<string>): this {
for (const className of classNames) {
this.__classes.add(className);
}
return this;
}
addClass(...classNames: string[]): this {
return this.getWritable().__addClasses(classNames);
}
removeClass(...classNames: string[]): this {
const node = this.getWritable();
for (const className of classNames) {
this.__classes.delete(className);
}
return this;
}
getClasses(): Set<string> {
return this.getLatest().__classes;
}
}
Inherited from
append()
append(...
nodesToAppend):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:774
Parameters
nodesToAppend
...LexicalNode[]
Returns
this
Inherited from
canBeEmpty()
canBeEmpty():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1072
Returns
boolean
Inherited from
canIndent()
canIndent():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1044
Returns
boolean
Inherited from
canInsertTextAfter()
canInsertTextAfter():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1078
Returns
boolean
Inherited from
ElementNode.canInsertTextAfter
canInsertTextBefore()
canInsertTextBefore():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1075
Returns
boolean
Inherited from
ElementNode.canInsertTextBefore
canMergeWhenEmpty()
canMergeWhenEmpty():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1121
Determines whether this node, when empty, can merge with a first block of nodes being inserted.
This method is specifically called in RangeSelection.insertNodes to determine merging behavior during nodes insertion.
Returns
boolean
Example
// In a ListItemNode or QuoteNode implementation:
canMergeWhenEmpty(): true {
return true;
}
Inherited from
clear()
clear():
this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:768
Returns
this
Inherited from
collapseAtStart()
collapseAtStart():
true
Defined in: packages/lexical-rich-text/src/index.ts:492
Returns
true
Inherited from
config()
Call Signature
config<
Config>(type,config):AbstractStaticNodeConfigRecord<Config>
Defined in: packages/lexical/src/LexicalNode.ts:1065
This is a convenience method for $config that aids in type inference. See LexicalNode.$config for example usage.
An abstract base class that has no concrete node type may pass a
well-known symbol (by convention Symbol.for(<NodeClassName>)) instead of
a string type to declare configuration shared with its subclasses.
Type Parameters
Config
Config extends StaticNodeConfigValue<HeadingNode, string>
Parameters
type
symbol
config
Config
Returns
AbstractStaticNodeConfigRecord<Config>
Inherited from
Call Signature
config<
Type,Config>(type,config):StaticNodeConfigRecord<Type,Config>
Defined in: packages/lexical/src/LexicalNode.ts:1069
This is a convenience method for $config that aids in type inference. See LexicalNode.$config for example usage.
An abstract base class that has no concrete node type may pass a
well-known symbol (by convention Symbol.for(<NodeClassName>)) instead of
a string type to declare configuration shared with its subclasses.
Type Parameters
Type
Type extends string
Config
Config extends StaticNodeConfigValue<HeadingNode, Type>
Parameters
type
Type
config
Config
Returns
StaticNodeConfigRecord<Type, Config>
Inherited from
createDOM()
createDOM(
config):HTMLElement
Defined in: packages/lexical-rich-text/src/index.ts:421
Called during the reconciliation process to determine which nodes to insert into the DOM for this Lexical Node.
This method must return exactly one HTMLElement. Nested elements are not supported.
Do not attempt to update the Lexical EditorState during this phase of the update lifecycle.
Parameters
config
Returns
HTMLElement
Inherited from
createParentElementNode()
createParentElementNode():
ElementNode
Defined in: packages/lexical/src/LexicalNode.ts:2312
The creation logic for any required parent. Should be implemented if isParentRequired returns true.
Returns
Inherited from
ElementNode.createParentElementNode
excludeFromCopy()
excludeFromCopy(
destination?):boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1061
Parameters
destination?
"clone" | "html"
Returns
boolean
Inherited from
exportDOM()
exportDOM(
editor):DOMExportOutput
Defined in: packages/lexical-rich-text/src/index.ts:437
Controls how the this node is serialized to HTML. This is important for copy and paste between Lexical and non-Lexical editors, or Lexical editors with different namespaces, in which case the primary transfer format is HTML. It's also important if you're serializing to HTML for any other reason via $generateHtmlFromNodes. You could also use this method to build your own HTML renderer.
Parameters
editor
Returns
Inherited from
exportJSON()
Call Signature
exportJSON(
compact?):SerializedHeadingNode
Defined in: packages/lexical-rich-text/src/index.ts:352
Controls how the this node is serialized to JSON. This is important for copy and paste between Lexical editors sharing the same namespace. It's also important if you're serializing to JSON for persistent storage somewhere. See Serialization & Deserialization.
The base implementation writes every property the node's schema declares
(its own and those it inherits), reading each through its getter —
get<Prop> by default, or the name recorded with withAccessors. A getter
that returns undefined omits its property. Override this only for output
a schema can not describe, and call super.exportJSON(compact) when you do.
This may serialize the instance as-is, without resolving the latest version. A property declared with withField is read straight off the node, which is the optimization the serialization walk is built on — every node the walk reaches comes from the EditorState's node map and is already current, so it resolves nothing per node.
So on a reference that a getWritable() (any set<Prop>) has since
superseded, this writes pre-mutation values. Which properties do is not
something to rely on: a property whose accessor a subclass overrode still
goes through that accessor and resolves the latest, so one node can write
a current text beside a stale style. Call
node.getLatest().exportJSON() whenever you hold such a reference rather
than reasoning about which properties resolve.
This is a breaking change. Every property previously went through an
accessor, and every accessor resolves getLatest(), so a stale reference
exported current values.
Parameters
compact?
false
Write the compact form: omit a property the parser derives
rather than reads, one whose value is the schema default parsing would
restore, and the deprecated version. The two forms describe the same
document. A node that overrides this and ignores the flag simply keeps
writing the full form, which still parses.
Returns
Inherited from
Call Signature
exportJSON(
compact):SerializedPartial<SerializedHeadingNode>
Defined in: packages/lexical-rich-text/src/index.ts:353
The compact form omits properties, so what it returns is the partial
serialized type — every node-specific property optional — rather than the
full one. Passing a boolean whose value is not statically known selects
this overload too, which is right: neither form can be promised then.
Parameters
compact
boolean
Returns
SerializedPartial<SerializedHeadingNode>
See
Inherited from
extractWithChild()
extractWithChild():
boolean
Defined in: packages/lexical-rich-text/src/index.ts:502
Returns
boolean
Inherited from
getAllTextNodes()
getAllTextNodes():
TextNode[]
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:420
Returns
TextNode[]
Inherited from
getChildAtIndex()
Call Signature
getChildAtIndex(
index):LexicalNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:605
Returns the child of this node at the given index, or null if the index is out of range.
Parameters
index
number
Returns
LexicalNode | null
Inherited from
Call Signature
getChildAtIndex<
T>(index):T|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:612
Type Parameters
T
T extends LexicalNode
Parameters
index
number
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getChildAtIndex(index) as T | null, and will
be removed in a future release. Call this method without a type
argument and narrow the result with a type guard instead.
Inherited from
getChildren()
Call Signature
getChildren():
LexicalNode[]
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:374
Returns the children of this node, in document order.
Returns
Inherited from
Call Signature
getChildren<
T>():T[]
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:381
Type Parameters
T
T extends LexicalNode
Returns
T[]
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getChildren() as T[], and will be
removed in a future release. Call this method without a type argument
and narrow the results with a type guard instead.
Inherited from
getChildrenKeys()
getChildrenKeys():
string[]
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:391
Returns
string[]
Inherited from
getChildrenSize()
getChildrenSize():
number
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:400
Returns
number
Inherited from
getCommonAncestor()
getCommonAncestor<
T>(node):T|null
Defined in: packages/lexical/src/LexicalNode.ts:1506
Type Parameters
T
T extends ElementNode = ElementNode
Parameters
node
the other node to find the common ancestor of.
Returns
T | null
Deprecated
Returns the closest common ancestor of this node and the provided one or null if one cannot be found.
Inherited from
getDescendantByIndex()
Call Signature
getDescendantByIndex(
index):LexicalNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:505
Returns the deepest descendant corresponding to the child at the given index, or null if this node has no children.
Parameters
index
number
Returns
LexicalNode | null
Inherited from
ElementNode.getDescendantByIndex
Call Signature
getDescendantByIndex<
T>(index):T|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:512
Type Parameters
T
T extends LexicalNode
Parameters
index
number
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getDescendantByIndex(index) as T | null, and
will be removed in a future release. Call this method without a type
argument and narrow the result with a type guard instead.
Inherited from
ElementNode.getDescendantByIndex
getDirection()
getDirection():
"ltr"|"rtl"|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:678
Returns
"ltr" | "rtl" | null
Inherited from
getDOMSlot()
getDOMSlot(
element):ElementDOMSlot<HTMLElement>
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:964
Experimental
An ElementNode subclass can override this to control where its children are inserted into the DOM, e.g. to add a wrapping node or accessory nodes before or after the children. The root of the node returned by createDOM must still be exactly one HTMLElement.
Parameters
element
HTMLElement
Returns
ElementDOMSlot<HTMLElement>
Inherited from
getFirstChild()
Call Signature
getFirstChild():
LexicalNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:536
Returns the first child of this node, or null if it has no children.
Returns
LexicalNode | null
Inherited from
Call Signature
getFirstChild<
T>():T|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:543
Type Parameters
T
T extends LexicalNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getFirstChild() as T | null, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
getFirstChildOrThrow()
Call Signature
getFirstChildOrThrow():
LexicalNode
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:552
Returns the first child of this node, or throws if it has no children.
Returns
Inherited from
ElementNode.getFirstChildOrThrow
Call Signature
getFirstChildOrThrow<
T>():T
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:559
Type Parameters
T
T extends LexicalNode
Returns
T
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getFirstChildOrThrow() as T, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
ElementNode.getFirstChildOrThrow
getFirstDescendant()
Call Signature
getFirstDescendant():
LexicalNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:459
Returns the deepest first descendant of this node, or null if it has no children.
Descendant navigation is children-only by design: it feeds selectStart / selectEnd and selection, which must not see slots (slots are isolated).
Returns
LexicalNode | null
Inherited from
ElementNode.getFirstDescendant
Call Signature
getFirstDescendant<
T>():T|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:466
Type Parameters
T
T extends LexicalNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getFirstDescendant() as T | null, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
ElementNode.getFirstDescendant
getFormat()
getFormat():
number
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:355
Returns
number
Inherited from
getFormatFlags()
getFormatFlags(
type,alignWithFormat):number
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:702
Returns the format flags applied to the node as a 32-bit integer.
Parameters
type
alignWithFormat
number | null
Returns
number
a number representing the TextFormatTypes applied to the node.
Inherited from
getFormatType()
getFormatType():
ElementFormatType
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:359
Returns
Inherited from
getIndent()
getIndent():
number
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:367
Returns
number
Inherited from
getIndexWithinParent()
getIndexWithinParent():
number
Defined in: packages/lexical/src/LexicalNode.ts:1283
Returns the zero-based index of this node within the parent.
Returns
number
Inherited from
ElementNode.getIndexWithinParent
getKey()
getKey():
string
Defined in: packages/lexical/src/LexicalNode.ts:1275
Returns this nodes key.
Returns
string
Inherited from
getLastChild()
Call Signature
getLastChild():
LexicalNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:570
Returns the last child of this node, or null if it has no children.
Returns
LexicalNode | null
Inherited from
Call Signature
getLastChild<
T>():T|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:577
Type Parameters
T
T extends LexicalNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getLastChild() as T | null, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
getLastChildOrThrow()
Call Signature
getLastChildOrThrow():
LexicalNode
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:586
Returns the last child of this node, or throws if it has no children.
Returns
Inherited from
ElementNode.getLastChildOrThrow
Call Signature
getLastChildOrThrow<
T>():T
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:593
Type Parameters
T
T extends LexicalNode
Returns
T
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getLastChildOrThrow() as T, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
ElementNode.getLastChildOrThrow
getLastDescendant()
Call Signature
getLastDescendant():
LexicalNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:482
Returns the deepest last descendant of this node, or null if it has no children.
Returns
LexicalNode | null
Inherited from
Call Signature
getLastDescendant<
T>():T|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:489
Type Parameters
T
T extends LexicalNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getLastDescendant() as T | null, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
getLatest()
getLatest():
this
Defined in: packages/lexical/src/LexicalNode.ts:1656
Returns the latest version of the node from the active EditorState. This is used to avoid getting values from stale node references.
Returns
this
Inherited from
getNextSibling()
Call Signature
getNextSibling():
LexicalNode|null
Defined in: packages/lexical/src/LexicalNode.ts:1462
Returns the node after this one in the same parent, or null if there is no such node.
Returns
LexicalNode | null
Inherited from
Call Signature
getNextSibling<
T>():T|null
Defined in: packages/lexical/src/LexicalNode.ts:1469
Type Parameters
T
T extends LexicalNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to node.getNextSibling() as T | null, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
getNextSiblings()
Call Signature
getNextSiblings():
LexicalNode[]
Defined in: packages/lexical/src/LexicalNode.ts:1480
Returns all nodes after this one in the same parent, in document order.
Returns
Inherited from
Call Signature
getNextSiblings<
T>():T[]
Defined in: packages/lexical/src/LexicalNode.ts:1487
Type Parameters
T
T extends LexicalNode
Returns
T[]
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to node.getNextSiblings() as T[], and will be
removed in a future release. Call this method without a type argument
and narrow the results with a type guard instead.
Inherited from
getNodesBetween()
getNodesBetween(
targetNode):LexicalNode[]
Defined in: packages/lexical/src/LexicalNode.ts:1575
Returns a list of nodes that are between this node and the target node in the EditorState.
Parameters
targetNode
the node that marks the other end of the range of nodes to be returned.
Returns
Inherited from
getParent()
Call Signature
getParent():
ElementNode|null
Defined in: packages/lexical/src/LexicalNode.ts:1303
Returns the parent of this node, or null if none is found.
Returns
ElementNode | null
Inherited from
Call Signature
getParent<
T>():T|null
Defined in: packages/lexical/src/LexicalNode.ts:1310
Type Parameters
T
T extends ElementNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to node.getParent() as T | null, and will be removed
in a future release. Call this method without a type argument and
narrow the result with a type guard instead.
Inherited from
getParentKeys()
getParentKeys():
string[]
Defined in: packages/lexical/src/LexicalNode.ts:1401
Returns a list of the keys of every ancestor of this node, all the way up to the RootNode.
Returns
string[]
Inherited from
getParentOrThrow()
Call Signature
getParentOrThrow():
ElementNode
Defined in: packages/lexical/src/LexicalNode.ts:1323
Returns the parent of this node, or throws if none is found.
Returns
Inherited from
Call Signature
getParentOrThrow<
T>():T
Defined in: packages/lexical/src/LexicalNode.ts:1330
Type Parameters
T
T extends ElementNode
Returns
T
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to node.getParentOrThrow() as T, and will be removed
in a future release. Call this method without a type argument and
narrow the result with a type guard instead.
Inherited from
getParents()
getParents():
ElementNode[]
Defined in: packages/lexical/src/LexicalNode.ts:1386
Returns a list of the every ancestor of this node, all the way up to the RootNode.
Returns
Inherited from
getPreviousSibling()
Call Signature
getPreviousSibling():
LexicalNode|null
Defined in: packages/lexical/src/LexicalNode.ts:1415
Returns the node before this one in the same parent, or null if there is no such node.
Returns
LexicalNode | null
Inherited from
ElementNode.getPreviousSibling
Call Signature
getPreviousSibling<
T>():T|null
Defined in: packages/lexical/src/LexicalNode.ts:1422
Type Parameters
T
T extends LexicalNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to node.getPreviousSibling() as T | null, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
ElementNode.getPreviousSibling
getPreviousSiblings()
Call Signature
getPreviousSiblings():
LexicalNode[]
Defined in: packages/lexical/src/LexicalNode.ts:1433
Returns all nodes before this one in the same parent, in document order.
Returns
Inherited from
ElementNode.getPreviousSiblings
Call Signature
getPreviousSiblings<
T>():T[]
Defined in: packages/lexical/src/LexicalNode.ts:1440
Type Parameters
T
T extends LexicalNode
Returns
T[]
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to node.getPreviousSiblings() as T[], and will be
removed in a future release. Call this method without a type argument
and narrow the results with a type guard instead.
Inherited from
ElementNode.getPreviousSiblings
getStyle()
getStyle():
string
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:363
Returns
string
Inherited from
getTag()
getTag():
HeadingTagType
Defined in: packages/lexical-rich-text/src/index.ts:409
Returns
getTextContent()
getTextContent():
string
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:640
Returns the text content of the node. Override this for custom nodes that should have a representation in plain text format (for copy + paste, for example)
Returns
string
Inherited from
getTextContentSize()
getTextContentSize():
number
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:659
Returns the length of the string produced by calling getTextContent on this node.
Returns
number
Inherited from
ElementNode.getTextContentSize
getTextFormat()
getTextFormat():
number
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:682
Returns
number
Inherited from
getTextStyle()
getTextStyle():
string
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:708
Returns
string
Inherited from
getTopLevelElement()
getTopLevelElement():
ElementNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:241
Returns the highest (in the EditorState tree) non-root ancestor of this node, or null if none is found. See $isRootOrShadowRoot for more information on which Elements comprise "roots".
Returns
ElementNode | null
Inherited from
ElementNode.getTopLevelElement
getTopLevelElementOrThrow()
getTopLevelElementOrThrow():
ElementNode
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:242
Returns the highest (in the EditorState tree) non-root ancestor of this node, or throws if none is found. See $isRootOrShadowRoot for more information on which Elements comprise "roots".
Returns
Inherited from
ElementNode.getTopLevelElementOrThrow
getType()
getType():
string
Defined in: packages/lexical/src/LexicalNode.ts:1186
Returns the string type of this node.
Returns
string
Inherited from
getWritable()
getWritable():
this
Defined in: packages/lexical/src/LexicalNode.ts:1677
Returns a mutable version of the node using $cloneWithProperties if necessary. Will throw an error if called outside of a Lexical Editor LexicalEditor.update callback.
Returns
this
Inherited from
hasFormat()
hasFormat(
type):boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:686
Parameters
type
Returns
boolean
Inherited from
hasTextFormat()
hasTextFormat(
type):boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:693
Parameters
type
Returns
boolean
Inherited from
insertAfter()
insertAfter(
nodeToInsert,restoreSelection?):LexicalNode
Defined in: packages/lexical/src/LexicalNode.ts:2116
Inserts a node after this LexicalNode (as the next sibling).
Parameters
nodeToInsert
The node to insert after this one.
restoreSelection?
boolean = true
Whether or not to attempt to resolve the selection to the appropriate place after the operation is complete.
Returns
Inherited from
insertBefore()
insertBefore(
nodeToInsert,restoreSelection?):LexicalNode
Defined in: packages/lexical/src/LexicalNode.ts:2223
Inserts a node before this LexicalNode (as the previous sibling).
Parameters
nodeToInsert
The node to insert before this one.
restoreSelection?
boolean = true
Whether or not to attempt to resolve the selection to the appropriate place after the operation is complete.
Returns
Inherited from
insertNewAfter()
insertNewAfter(
selection?,restoreSelection?):ParagraphNode|HeadingNode
Defined in: packages/lexical-rich-text/src/index.ts:462
Parameters
selection?
restoreSelection?
boolean = true
Returns
Inherited from
is()
is(
object):boolean
Defined in: packages/lexical/src/LexicalNode.ts:1523
Returns true if the provided node is the exact same one as this node, from Lexical's perspective. Always use this instead of referential equality.
Parameters
object
LexicalNode | null | undefined
the node to perform the equality comparison on.
Returns
boolean
Inherited from
isAttached()
isAttached():
boolean
Defined in: packages/lexical/src/LexicalNode.ts:1203
Returns true if there is a path between this node and the RootNode, false otherwise. This is a way of determining if the node is "attached" EditorState. Unattached nodes won't be reconciled and will ultimately be cleaned up by the Lexical GC.
Returns
boolean
Inherited from
isBefore()
isBefore(
targetNode):boolean
Defined in: packages/lexical/src/LexicalNode.ts:1541
Returns true if this node logically precedes the target node in the editor state, false otherwise (including if there is no common ancestor).
Note that this notion of isBefore is based on post-order; a descendant node is always before its ancestors. See also $getCommonAncestor and $comparePointCaretNext for more flexible ways to determine the relative positions of nodes.
Parameters
targetNode
the node we're testing to see if it's after this one.
Returns
boolean
Inherited from
isDirty()
isDirty():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:410
Returns true if this node has been marked dirty during this update cycle.
Returns
boolean
Inherited from
isEmpty()
isEmpty():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:404
Returns
boolean
Inherited from
isInline()
isInline():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1086
If the method is overridden and returns true, ensure that canBeEmpty()
returns false for the inline node to work correctly
Returns
boolean
Inherited from
isLastChild()
isLastChild():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:415
Returns
boolean
Inherited from
isParentOf()
isParentOf(
targetNode):boolean
Defined in: packages/lexical/src/LexicalNode.ts:1564
Returns true if this node is an ancestor of and distinct from the target node, false otherwise.
Parameters
targetNode
the would-be child node.
Returns
boolean
Inherited from
isParentRequired()
isParentRequired():
boolean
Defined in: packages/lexical/src/LexicalNode.ts:2304
Whether or not this node has a required parent. Used during copy + paste operations to normalize nodes that would otherwise be orphaned. For example, ListItemNodes without a ListNode parent or TextNodes with a ParagraphNode parent.
Returns
boolean
Inherited from
isSelected()
isSelected(
selection?):boolean
Defined in: packages/lexical/src/LexicalNode.ts:1230
Returns true if this node is contained within the provided Selection., false otherwise. Relies on the algorithms implemented in BaseSelection.getNodes to determine what's included.
Parameters
selection?
BaseSelection | null
The selection that we want to determine if the node is in.
Returns
boolean
Inherited from
isShadowRoot()
isShadowRoot():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1093
Returns
boolean
Inherited from
markDirty()
markDirty():
void
Defined in: packages/lexical/src/LexicalNode.ts:2387
Marks a node dirty, triggering transforms and forcing it to be reconciled during the update cycle.
Returns
void
Inherited from
remove()
remove(
preserveEmptyParent?):void
Defined in: packages/lexical/src/LexicalNode.ts:1948
Removes this LexicalNode from the EditorState. If the node isn't re-inserted somewhere, the Lexical garbage collector will eventually clean it up.
Parameters
preserveEmptyParent?
boolean
If falsy, the node's parent will be removed if it's empty after the removal operation. This is the default behavior, subject to other node heuristics such as ElementNode#canBeEmpty
Returns
void
Inherited from
replace()
replace<
N>(replaceWith,includeChildren?):N
Defined in: packages/lexical/src/LexicalNode.ts:1965
Replaces this LexicalNode with the provided node, optionally transferring the children of the replaced node to the replacing node.
Named slots are bound to their host node and are never transferred: this
node keeps its slot map, so if it is reattached elsewhere (as
$wrapNodeInElement does) its slots come with it, and if it stays
detached the slot subtrees are garbage-collected along with it. To move a
slot value onto another host, use $setSlot explicitly.
Type Parameters
N
N extends LexicalNode
Parameters
replaceWith
N
The node to replace this one with.
includeChildren?
boolean
Whether or not to transfer the children of this node to the replacing node.
Returns
N
Inherited from
resetOnCopyNodeFrom()
resetOnCopyNodeFrom(
originalNode):void
Defined in: packages/lexical/src/LexicalNode.ts:1154
Reset state in this copy of originalNode, if necessary
Parameters
originalNode
this
Returns
void
Inherited from
ElementNode.resetOnCopyNodeFrom
select()
select(
_anchorOffset?,_focusOffset?):RangeSelection
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:715
Parameters
_anchorOffset?
number
_focusOffset?
number
Returns
Inherited from
selectEnd()
selectEnd():
RangeSelection
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:764
Returns
Inherited from
selectNext()
selectNext(
anchorOffset?,focusOffset?):RangeSelection
Defined in: packages/lexical/src/LexicalNode.ts:2359
Moves selection to the next sibling of this node, at the specified offsets.
Parameters
anchorOffset?
number
The anchor offset for selection.
focusOffset?
number
The focus offset for selection
Returns
Inherited from
selectPrevious()
selectPrevious(
anchorOffset?,focusOffset?):RangeSelection
Defined in: packages/lexical/src/LexicalNode.ts:2330
Moves selection to the previous sibling of this node, at the specified offsets.
Parameters
anchorOffset?
number
The anchor offset for selection.
focusOffset?
number
The focus offset for selection
Returns
Inherited from
selectStart()
selectStart():
RangeSelection
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:760
Returns
Inherited from
setDirection()
setDirection(
direction):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:777
Parameters
direction
"ltr" | "rtl" | null
Returns
this
Inherited from
setFormat()
setFormat(
type):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:782
Parameters
type
Returns
this
Inherited from
setIndent()
setIndent(
indentLevel):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:802
Parameters
indentLevel
number
Returns
this
Inherited from
setStyle()
setStyle(
style):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:787
Parameters
style
string
Returns
this
Inherited from
setTag()
setTag(
tag):this
Defined in: packages/lexical-rich-text/src/index.ts:413
Parameters
tag
Returns
this
setTextFormat()
setTextFormat(
type):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:792
Parameters
type
number
Returns
this
Inherited from
setTextStyle()
setTextStyle(
style):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:797
Parameters
style
string
Returns
this
Inherited from
splice()
splice(
start,deleteCount,nodesToInsert):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:807
Parameters
start
number
deleteCount
number
nodesToInsert
Returns
this
Inherited from
updateDOM()
updateDOM(
prevNode,dom,config):boolean
Defined in: packages/lexical-rich-text/src/index.ts:433
Called when a node changes and should update the DOM in whatever way is necessary to make it align with any changes that might have happened during the update.
Returning "true" here will cause lexical to unmount and recreate the DOM node (by calling createDOM). You would need to do this if the element tag changes, for instance.
Parameters
prevNode
this
dom
HTMLElement
config
Returns
boolean
Inherited from
updateFromJSON()
updateFromJSON(
serializedNode):this
Defined in: packages/lexical-rich-text/src/index.ts:354
Update this LexicalNode instance from serialized JSON. It's recommended to implement as much logic as possible in this method instead of the static importJSON method, so that the functionality can be inherited in subclasses.
The LexicalUpdateJSON utility type should be used to ignore any type, version, or children properties in the JSON so that the extended JSON from subclasses are acceptable parameters for the super call.
If overridden, this method must call super.
Parameters
serializedNode
LexicalParseJSON<SerializedHeadingNode>
Returns
this
Example
class MyTextNode extends TextNode {
// ...
static importJSON(serializedNode: SerializedMyTextNode): MyTextNode {
return $createMyTextNode()
.updateFromJSON(serializedNode);
}
updateFromJSON(
serializedNode: LexicalUpdateJSON<SerializedMyTextNode>,
): this {
return super.updateFromJSON(serializedNode)
.setMyProperty(serializedNode.myProperty);
}
}
The whole schema is applied, so a property the JSON omits is set to its schema default rather than left as it is — that is what lets the compact form omit a default-valued property and have parsing restore it. (A flat NodeState is the exception: it is applied only when present.) Pass the node's complete serialized form unless you mean to reset what you leave out.
Inherited from
clone()
staticclone(_data):LexicalNode
Defined in: packages/lexical/src/LexicalNode.ts:1029
Clones this node, creating a new node with a different key and adding it to the EditorState (but not attaching it anywhere!). All nodes must implement this method.
Parameters
_data
unknown
Returns
Inherited from
getType()
staticgetType():string
Defined in: packages/lexical/src/LexicalNode.ts:1013
Returns the string type of this node. Every node must implement this and it MUST BE UNIQUE amongst nodes registered on the editor.
Returns
string
Inherited from
importJSON()
staticimportJSON(_serializedNode):LexicalNode
Defined in: packages/lexical/src/LexicalNode.ts:1870
Controls how the this node is deserialized from JSON. This is usually boilerplate, but provides an abstraction between the node implementation and serialized interface that can be important if you ever make breaking changes to a node schema (by adding or removing properties). See Serialization & Deserialization.
Parameters
_serializedNode
Omit<SerializedLexicalNode & Partial<SerializedLexicalNode>, "$slots" | "children" | "version"> & object & Record<string, unknown>
Returns
Inherited from
transform()
statictransform(): ((node) =>void) |null
Defined in: packages/lexical/src/LexicalNode.ts:1934
Experimental
Registers the returned function as a transform on the node during Editor initialization. Most such use cases should be addressed via the LexicalEditor.registerNodeTransform API.
Experimental - use at your own risk.
Returns
((node) => void) | null
Inherited from
QuoteNode
Defined in: packages/lexical-rich-text/src/index.ts:197
Extends
Constructors
Constructor
new QuoteNode(
key?):QuoteNode
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:303
Parameters
key?
string
Returns
Inherited from
Properties
importDOM?
staticoptionalimportDOM?: () =>DOMConversionMap<any> |null
Defined in: packages/lexical/src/LexicalNode.ts:1161
Returns
DOMConversionMap<any> | null
Inherited from
Methods
$config()
$config():
BaseStaticNodeConfig&StaticNodeConfigAccessor<{$transform: { };extends: typeofLexicalNode;generated:GeneratedJSONFactory;json:NodeSerializationSchema<ElementNode, {direction?:"ltr"|"rtl"|null;format?:""|"left"|"start"|"center"|"right"|"end"|"justify";indent?:string|number;textFormat?:string|number;textStyle?:string; }>; }> &object&StaticNodeTypeAccessor<"quote"> &StaticNodeConfigAccessor<{extends: typeofElementNode;generated:GeneratedJSONFactory;importDOM: {blockquote: () =>object; };stateConfigs: readonly [{flat:true;stateConfig:StateConfig<"shadowRoot",boolean>; }]; }>
Defined in: packages/lexical-rich-text/src/index.ts:205
Override this to implement the new static node configuration protocol, this method is called directly on the prototype and must not depend on anything initialized in the constructor. Generally it should be a trivial implementation.
Returns
BaseStaticNodeConfig & StaticNodeConfigAccessor<{ $transform: { }; extends: typeof LexicalNode; generated: GeneratedJSONFactory; json: NodeSerializationSchema<ElementNode, { direction?: "ltr" | "rtl" | null; format?: "" | "left" | "start" | "center" | "right" | "end" | "justify"; indent?: string | number; textFormat?: string | number; textStyle?: string; }>; }> & object & StaticNodeTypeAccessor<"quote"> & StaticNodeConfigAccessor<{ extends: typeof ElementNode; generated: GeneratedJSONFactory; importDOM: { blockquote: () => object; }; stateConfigs: readonly [{ flat: true; stateConfig: StateConfig<"shadowRoot", boolean>; }]; }>
Example
class MyNode extends TextNode {
$config() {
return this.config('my-node', {extends: TextNode});
}
}
Inherited from
afterCloneFrom()
afterCloneFrom(
prevNode):void
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:329
Perform any state updates on the clone of prevNode that are not already
handled by the constructor call in the static clone method. If you have
state to update in your clone that is not handled directly by the
constructor, it is advisable to override this method but it is required
to include a call to super.afterCloneFrom(prevNode) in your
implementation. This is only intended to be called by
$cloneWithProperties function or via a super call.
Parameters
prevNode
this
Returns
void
Example
class ClassesTextNode extends TextNode {
// Not shown: static getType, static importJSON, exportJSON, createDOM, updateDOM
__classes = new Set<string>();
static clone(node: ClassesTextNode): ClassesTextNode {
// The inherited TextNode constructor is used here, so
// classes is not set by this method.
return new ClassesTextNode(node.__text, node.__key);
}
afterCloneFrom(node: this): void {
// This calls TextNode.afterCloneFrom and LexicalNode.afterCloneFrom
// for necessary state updates
super.afterCloneFrom(node);
this.__addClasses(node.__classes);
}
// This method is a private implementation detail, it is not
// suitable for the public API because it does not call getWritable
__addClasses(classNames: Iterable<string>): this {
for (const className of classNames) {
this.__classes.add(className);
}
return this;
}
addClass(...classNames: string[]): this {
return this.getWritable().__addClasses(classNames);
}
removeClass(...classNames: string[]): this {
const node = this.getWritable();
for (const className of classNames) {
this.__classes.delete(className);
}
return this;
}
getClasses(): Set<string> {
return this.getLatest().__classes;
}
}
Inherited from
append()
append(...
nodesToAppend):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:774
Parameters
nodesToAppend
...LexicalNode[]
Returns
this
Inherited from
canBeEmpty()
canBeEmpty():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1072
Returns
boolean
Inherited from
canIndent()
canIndent():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1044
Returns
boolean
Inherited from
canInsertTextAfter()
canInsertTextAfter():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1078
Returns
boolean
Inherited from
ElementNode.canInsertTextAfter
canInsertTextBefore()
canInsertTextBefore():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1075
Returns
boolean
Inherited from
ElementNode.canInsertTextBefore
canMergeWhenEmpty()
canMergeWhenEmpty():
true
Defined in: packages/lexical-rich-text/src/index.ts:316
Determines whether this node, when empty, can merge with a first block of nodes being inserted.
This method is specifically called in RangeSelection.insertNodes to determine merging behavior during nodes insertion.
Returns
true
Example
// In a ListItemNode or QuoteNode implementation:
canMergeWhenEmpty(): true {
return true;
}
Inherited from
clear()
clear():
this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:768
Returns
this
Inherited from
collapseAtStart()
collapseAtStart():
true
Defined in: packages/lexical-rich-text/src/index.ts:298
Returns
true
Inherited from
config()
Call Signature
config<
Config>(type,config):AbstractStaticNodeConfigRecord<Config>
Defined in: packages/lexical/src/LexicalNode.ts:1065
This is a convenience method for $config that aids in type inference. See LexicalNode.$config for example usage.
An abstract base class that has no concrete node type may pass a
well-known symbol (by convention Symbol.for(<NodeClassName>)) instead of
a string type to declare configuration shared with its subclasses.
Type Parameters
Config
Config extends StaticNodeConfigValue<QuoteNode, string>
Parameters
type
symbol
config
Config
Returns
AbstractStaticNodeConfigRecord<Config>
Inherited from
Call Signature
config<
Type,Config>(type,config):StaticNodeConfigRecord<Type,Config>
Defined in: packages/lexical/src/LexicalNode.ts:1069
This is a convenience method for $config that aids in type inference. See LexicalNode.$config for example usage.
An abstract base class that has no concrete node type may pass a
well-known symbol (by convention Symbol.for(<NodeClassName>)) instead of
a string type to declare configuration shared with its subclasses.
Type Parameters
Type
Type extends string
Config
Config extends StaticNodeConfigValue<QuoteNode, Type>
Parameters
type
Type
config
Config
Returns
StaticNodeConfigRecord<Type, Config>
Inherited from
createDOM()
createDOM(
config):HTMLElement
Defined in: packages/lexical-rich-text/src/index.ts:242
Called during the reconciliation process to determine which nodes to insert into the DOM for this Lexical Node.
This method must return exactly one HTMLElement. Nested elements are not supported.
Do not attempt to update the Lexical EditorState during this phase of the update lifecycle.
Parameters
config
Returns
HTMLElement
Inherited from
createParentElementNode()
createParentElementNode():
ElementNode
Defined in: packages/lexical/src/LexicalNode.ts:2312
The creation logic for any required parent. Should be implemented if isParentRequired returns true.
Returns
Inherited from
ElementNode.createParentElementNode
excludeFromCopy()
excludeFromCopy(
destination?):boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1061
Parameters
destination?
"clone" | "html"
Returns
boolean
Inherited from
exportDOM()
exportDOM(
editor):DOMExportOutput
Defined in: packages/lexical-rich-text/src/index.ts:251
Controls how the this node is serialized to HTML. This is important for copy and paste between Lexical and non-Lexical editors, or Lexical editors with different namespaces, in which case the primary transfer format is HTML. It's also important if you're serializing to HTML for any other reason via $generateHtmlFromNodes. You could also use this method to build your own HTML renderer.
Parameters
editor
Returns
Inherited from
exportJSON()
Call Signature
exportJSON(
compact?):SerializedQuoteNode
Defined in: packages/lexical-rich-text/src/index.ts:198
Controls how the this node is serialized to JSON. This is important for copy and paste between Lexical editors sharing the same namespace. It's also important if you're serializing to JSON for persistent storage somewhere. See Serialization & Deserialization.
The base implementation writes every property the node's schema declares
(its own and those it inherits), reading each through its getter —
get<Prop> by default, or the name recorded with withAccessors. A getter
that returns undefined omits its property. Override this only for output
a schema can not describe, and call super.exportJSON(compact) when you do.
This may serialize the instance as-is, without resolving the latest version. A property declared with withField is read straight off the node, which is the optimization the serialization walk is built on — every node the walk reaches comes from the EditorState's node map and is already current, so it resolves nothing per node.
So on a reference that a getWritable() (any set<Prop>) has since
superseded, this writes pre-mutation values. Which properties do is not
something to rely on: a property whose accessor a subclass overrode still
goes through that accessor and resolves the latest, so one node can write
a current text beside a stale style. Call
node.getLatest().exportJSON() whenever you hold such a reference rather
than reasoning about which properties resolve.
This is a breaking change. Every property previously went through an
accessor, and every accessor resolves getLatest(), so a stale reference
exported current values.
Parameters
compact?
false
Write the compact form: omit a property the parser derives
rather than reads, one whose value is the schema default parsing would
restore, and the deprecated version. The two forms describe the same
document. A node that overrides this and ignores the flag simply keeps
writing the full form, which still parses.
Returns
Inherited from
Call Signature
exportJSON(
compact):SerializedPartial<SerializedQuoteNode>
Defined in: packages/lexical-rich-text/src/index.ts:199
The compact form omits properties, so what it returns is the partial
serialized type — every node-specific property optional — rather than the
full one. Passing a boolean whose value is not statically known selects
this overload too, which is right: neither form can be promised then.
Parameters
compact
boolean
Returns
SerializedPartial<SerializedQuoteNode>
See
Inherited from
extractWithChild()
extractWithChild(
child,selection,destination):boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1100
Parameters
child
selection
BaseSelection | null
destination
"clone" | "html"
Returns
boolean
Inherited from
getAllTextNodes()
getAllTextNodes():
TextNode[]
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:420
Returns
TextNode[]
Inherited from
getChildAtIndex()
Call Signature
getChildAtIndex(
index):LexicalNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:605
Returns the child of this node at the given index, or null if the index is out of range.
Parameters
index
number
Returns
LexicalNode | null
Inherited from
Call Signature
getChildAtIndex<
T>(index):T|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:612
Type Parameters
T
T extends LexicalNode
Parameters
index
number
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getChildAtIndex(index) as T | null, and will
be removed in a future release. Call this method without a type
argument and narrow the result with a type guard instead.
Inherited from
getChildren()
Call Signature
getChildren():
LexicalNode[]
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:374
Returns the children of this node, in document order.
Returns
Inherited from
Call Signature
getChildren<
T>():T[]
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:381
Type Parameters
T
T extends LexicalNode
Returns
T[]
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getChildren() as T[], and will be
removed in a future release. Call this method without a type argument
and narrow the results with a type guard instead.
Inherited from
getChildrenKeys()
getChildrenKeys():
string[]
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:391
Returns
string[]
Inherited from
getChildrenSize()
getChildrenSize():
number
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:400
Returns
number
Inherited from
getCommonAncestor()
getCommonAncestor<
T>(node):T|null
Defined in: packages/lexical/src/LexicalNode.ts:1506
Type Parameters
T
T extends ElementNode = ElementNode
Parameters
node
the other node to find the common ancestor of.
Returns
T | null
Deprecated
Returns the closest common ancestor of this node and the provided one or null if one cannot be found.
Inherited from
getDescendantByIndex()
Call Signature
getDescendantByIndex(
index):LexicalNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:505
Returns the deepest descendant corresponding to the child at the given index, or null if this node has no children.
Parameters
index
number
Returns
LexicalNode | null
Inherited from
ElementNode.getDescendantByIndex
Call Signature
getDescendantByIndex<
T>(index):T|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:512
Type Parameters
T
T extends LexicalNode
Parameters
index
number
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getDescendantByIndex(index) as T | null, and
will be removed in a future release. Call this method without a type
argument and narrow the result with a type guard instead.
Inherited from
ElementNode.getDescendantByIndex
getDirection()
getDirection():
"ltr"|"rtl"|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:678
Returns
"ltr" | "rtl" | null
Inherited from
getDOMSlot()
getDOMSlot(
element):ElementDOMSlot<HTMLElement>
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:964
Experimental
An ElementNode subclass can override this to control where its children are inserted into the DOM, e.g. to add a wrapping node or accessory nodes before or after the children. The root of the node returned by createDOM must still be exactly one HTMLElement.
Parameters
element
HTMLElement
Returns
ElementDOMSlot<HTMLElement>
Inherited from
getFirstChild()
Call Signature
getFirstChild():
LexicalNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:536
Returns the first child of this node, or null if it has no children.
Returns
LexicalNode | null
Inherited from
Call Signature
getFirstChild<
T>():T|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:543
Type Parameters
T
T extends LexicalNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getFirstChild() as T | null, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
getFirstChildOrThrow()
Call Signature
getFirstChildOrThrow():
LexicalNode
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:552
Returns the first child of this node, or throws if it has no children.
Returns
Inherited from
ElementNode.getFirstChildOrThrow
Call Signature
getFirstChildOrThrow<
T>():T
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:559
Type Parameters
T
T extends LexicalNode
Returns
T
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getFirstChildOrThrow() as T, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
ElementNode.getFirstChildOrThrow
getFirstDescendant()
Call Signature
getFirstDescendant():
LexicalNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:459
Returns the deepest first descendant of this node, or null if it has no children.
Descendant navigation is children-only by design: it feeds selectStart / selectEnd and selection, which must not see slots (slots are isolated).
Returns
LexicalNode | null
Inherited from
ElementNode.getFirstDescendant
Call Signature
getFirstDescendant<
T>():T|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:466
Type Parameters
T
T extends LexicalNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getFirstDescendant() as T | null, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
ElementNode.getFirstDescendant
getFormat()
getFormat():
number
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:355
Returns
number
Inherited from
getFormatFlags()
getFormatFlags(
type,alignWithFormat):number
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:702
Returns the format flags applied to the node as a 32-bit integer.
Parameters
type
alignWithFormat
number | null
Returns
number
a number representing the TextFormatTypes applied to the node.
Inherited from
getFormatType()
getFormatType():
ElementFormatType
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:359
Returns
Inherited from
getIndent()
getIndent():
number
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:367
Returns
number
Inherited from
getIndexWithinParent()
getIndexWithinParent():
number
Defined in: packages/lexical/src/LexicalNode.ts:1283
Returns the zero-based index of this node within the parent.
Returns
number
Inherited from
ElementNode.getIndexWithinParent
getKey()
getKey():
string
Defined in: packages/lexical/src/LexicalNode.ts:1275
Returns this nodes key.
Returns
string
Inherited from
getLastChild()
Call Signature
getLastChild():
LexicalNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:570
Returns the last child of this node, or null if it has no children.
Returns
LexicalNode | null
Inherited from
Call Signature
getLastChild<
T>():T|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:577
Type Parameters
T
T extends LexicalNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getLastChild() as T | null, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
getLastChildOrThrow()
Call Signature
getLastChildOrThrow():
LexicalNode
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:586
Returns the last child of this node, or throws if it has no children.
Returns
Inherited from
ElementNode.getLastChildOrThrow
Call Signature
getLastChildOrThrow<
T>():T
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:593
Type Parameters
T
T extends LexicalNode
Returns
T
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getLastChildOrThrow() as T, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
ElementNode.getLastChildOrThrow
getLastDescendant()
Call Signature
getLastDescendant():
LexicalNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:482
Returns the deepest last descendant of this node, or null if it has no children.
Returns
LexicalNode | null
Inherited from
Call Signature
getLastDescendant<
T>():T|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:489
Type Parameters
T
T extends LexicalNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to element.getLastDescendant() as T | null, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
getLatest()
getLatest():
this
Defined in: packages/lexical/src/LexicalNode.ts:1656
Returns the latest version of the node from the active EditorState. This is used to avoid getting values from stale node references.
Returns
this
Inherited from
getNextSibling()
Call Signature
getNextSibling():
LexicalNode|null
Defined in: packages/lexical/src/LexicalNode.ts:1462
Returns the node after this one in the same parent, or null if there is no such node.
Returns
LexicalNode | null
Inherited from
Call Signature
getNextSibling<
T>():T|null
Defined in: packages/lexical/src/LexicalNode.ts:1469
Type Parameters
T
T extends LexicalNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to node.getNextSibling() as T | null, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
getNextSiblings()
Call Signature
getNextSiblings():
LexicalNode[]
Defined in: packages/lexical/src/LexicalNode.ts:1480
Returns all nodes after this one in the same parent, in document order.
Returns
Inherited from
Call Signature
getNextSiblings<
T>():T[]
Defined in: packages/lexical/src/LexicalNode.ts:1487
Type Parameters
T
T extends LexicalNode
Returns
T[]
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to node.getNextSiblings() as T[], and will be
removed in a future release. Call this method without a type argument
and narrow the results with a type guard instead.
Inherited from
getNodesBetween()
getNodesBetween(
targetNode):LexicalNode[]
Defined in: packages/lexical/src/LexicalNode.ts:1575
Returns a list of nodes that are between this node and the target node in the EditorState.
Parameters
targetNode
the node that marks the other end of the range of nodes to be returned.
Returns
Inherited from
getParent()
Call Signature
getParent():
ElementNode|null
Defined in: packages/lexical/src/LexicalNode.ts:1303
Returns the parent of this node, or null if none is found.
Returns
ElementNode | null
Inherited from
Call Signature
getParent<
T>():T|null
Defined in: packages/lexical/src/LexicalNode.ts:1310
Type Parameters
T
T extends ElementNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to node.getParent() as T | null, and will be removed
in a future release. Call this method without a type argument and
narrow the result with a type guard instead.
Inherited from
getParentKeys()
getParentKeys():
string[]
Defined in: packages/lexical/src/LexicalNode.ts:1401
Returns a list of the keys of every ancestor of this node, all the way up to the RootNode.
Returns
string[]
Inherited from
getParentOrThrow()
Call Signature
getParentOrThrow():
ElementNode
Defined in: packages/lexical/src/LexicalNode.ts:1323
Returns the parent of this node, or throws if none is found.
Returns
Inherited from
Call Signature
getParentOrThrow<
T>():T
Defined in: packages/lexical/src/LexicalNode.ts:1330
Type Parameters
T
T extends ElementNode
Returns
T
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to node.getParentOrThrow() as T, and will be removed
in a future release. Call this method without a type argument and
narrow the result with a type guard instead.
Inherited from
getParents()
getParents():
ElementNode[]
Defined in: packages/lexical/src/LexicalNode.ts:1386
Returns a list of the every ancestor of this node, all the way up to the RootNode.
Returns
Inherited from
getPreviousSibling()
Call Signature
getPreviousSibling():
LexicalNode|null
Defined in: packages/lexical/src/LexicalNode.ts:1415
Returns the node before this one in the same parent, or null if there is no such node.
Returns
LexicalNode | null
Inherited from
ElementNode.getPreviousSibling
Call Signature
getPreviousSibling<
T>():T|null
Defined in: packages/lexical/src/LexicalNode.ts:1422
Type Parameters
T
T extends LexicalNode
Returns
T | null
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to node.getPreviousSibling() as T | null, and will be
removed in a future release. Call this method without a type argument
and narrow the result with a type guard instead.
Inherited from
ElementNode.getPreviousSibling
getPreviousSiblings()
Call Signature
getPreviousSiblings():
LexicalNode[]
Defined in: packages/lexical/src/LexicalNode.ts:1433
Returns all nodes before this one in the same parent, in document order.
Returns
Inherited from
ElementNode.getPreviousSiblings
Call Signature
getPreviousSiblings<
T>():T[]
Defined in: packages/lexical/src/LexicalNode.ts:1440
Type Parameters
T
T extends LexicalNode
Returns
T[]
Deprecated
The type parameter is an unchecked and unsafe cast,
equivalent to node.getPreviousSiblings() as T[], and will be
removed in a future release. Call this method without a type argument
and narrow the results with a type guard instead.
Inherited from
ElementNode.getPreviousSiblings
getStyle()
getStyle():
string
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:363
Returns
string
Inherited from
getTextContent()
getTextContent():
string
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:640
Returns the text content of the node. Override this for custom nodes that should have a representation in plain text format (for copy + paste, for example)
Returns
string
Inherited from
getTextContentSize()
getTextContentSize():
number
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:659
Returns the length of the string produced by calling getTextContent on this node.
Returns
number
Inherited from
ElementNode.getTextContentSize
getTextFormat()
getTextFormat():
number
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:682
Returns
number
Inherited from
getTextStyle()
getTextStyle():
string
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:708
Returns
string
Inherited from
getTopLevelElement()
getTopLevelElement():
ElementNode|null
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:241
Returns the highest (in the EditorState tree) non-root ancestor of this node, or null if none is found. See $isRootOrShadowRoot for more information on which Elements comprise "roots".
Returns
ElementNode | null
Inherited from
ElementNode.getTopLevelElement
getTopLevelElementOrThrow()
getTopLevelElementOrThrow():
ElementNode
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:242
Returns the highest (in the EditorState tree) non-root ancestor of this node, or throws if none is found. See $isRootOrShadowRoot for more information on which Elements comprise "roots".
Returns
Inherited from
ElementNode.getTopLevelElementOrThrow
getType()
getType():
string
Defined in: packages/lexical/src/LexicalNode.ts:1186
Returns the string type of this node.
Returns
string
Inherited from
getWritable()
getWritable():
this
Defined in: packages/lexical/src/LexicalNode.ts:1677
Returns a mutable version of the node using $cloneWithProperties if necessary. Will throw an error if called outside of a Lexical Editor LexicalEditor.update callback.
Returns
this
Inherited from
hasFormat()
hasFormat(
type):boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:686
Parameters
type
Returns
boolean
Inherited from
hasTextFormat()
hasTextFormat(
type):boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:693
Parameters
type
Returns
boolean
Inherited from
insertAfter()
insertAfter(
nodeToInsert,restoreSelection?):LexicalNode
Defined in: packages/lexical/src/LexicalNode.ts:2116
Inserts a node after this LexicalNode (as the next sibling).
Parameters
nodeToInsert
The node to insert after this one.
restoreSelection?
boolean = true
Whether or not to attempt to resolve the selection to the appropriate place after the operation is complete.
Returns
Inherited from
insertBefore()
insertBefore(
nodeToInsert,restoreSelection?):LexicalNode
Defined in: packages/lexical/src/LexicalNode.ts:2223
Inserts a node before this LexicalNode (as the previous sibling).
Parameters
nodeToInsert
The node to insert before this one.
restoreSelection?
boolean = true
Whether or not to attempt to resolve the selection to the appropriate place after the operation is complete.
Returns
Inherited from
insertNewAfter()
insertNewAfter(
rangeSelection,restoreSelection?):ParagraphNode
Defined in: packages/lexical-rich-text/src/index.ts:283
Parameters
rangeSelection
restoreSelection?
boolean
Returns
Inherited from
is()
is(
object):boolean
Defined in: packages/lexical/src/LexicalNode.ts:1523
Returns true if the provided node is the exact same one as this node, from Lexical's perspective. Always use this instead of referential equality.
Parameters
object
LexicalNode | null | undefined
the node to perform the equality comparison on.
Returns
boolean
Inherited from
isAttached()
isAttached():
boolean
Defined in: packages/lexical/src/LexicalNode.ts:1203
Returns true if there is a path between this node and the RootNode, false otherwise. This is a way of determining if the node is "attached" EditorState. Unattached nodes won't be reconciled and will ultimately be cleaned up by the Lexical GC.
Returns
boolean
Inherited from
isBefore()
isBefore(
targetNode):boolean
Defined in: packages/lexical/src/LexicalNode.ts:1541
Returns true if this node logically precedes the target node in the editor state, false otherwise (including if there is no common ancestor).
Note that this notion of isBefore is based on post-order; a descendant node is always before its ancestors. See also $getCommonAncestor and $comparePointCaretNext for more flexible ways to determine the relative positions of nodes.
Parameters
targetNode
the node we're testing to see if it's after this one.
Returns
boolean
Inherited from
isDirty()
isDirty():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:410
Returns true if this node has been marked dirty during this update cycle.
Returns
boolean
Inherited from
isEmpty()
isEmpty():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:404
Returns
boolean
Inherited from
isInline()
isInline():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:1086
If the method is overridden and returns true, ensure that canBeEmpty()
returns false for the inline node to work correctly
Returns
boolean
Inherited from
isLastChild()
isLastChild():
boolean
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:415
Returns
boolean
Inherited from
isParentOf()
isParentOf(
targetNode):boolean
Defined in: packages/lexical/src/LexicalNode.ts:1564
Returns true if this node is an ancestor of and distinct from the target node, false otherwise.
Parameters
targetNode
the would-be child node.
Returns
boolean
Inherited from
isParentRequired()
isParentRequired():
boolean
Defined in: packages/lexical/src/LexicalNode.ts:2304
Whether or not this node has a required parent. Used during copy + paste operations to normalize nodes that would otherwise be orphaned. For example, ListItemNodes without a ListNode parent or TextNodes with a ParagraphNode parent.
Returns
boolean
Inherited from
isSelected()
isSelected(
selection?):boolean
Defined in: packages/lexical/src/LexicalNode.ts:1230
Returns true if this node is contained within the provided Selection., false otherwise. Relies on the algorithms implemented in BaseSelection.getNodes to determine what's included.
Parameters
selection?
BaseSelection | null
The selection that we want to determine if the node is in.
Returns
boolean
Inherited from
isShadowRoot()
isShadowRoot():
boolean
Defined in: packages/lexical-rich-text/src/index.ts:225
true when this quote has opted in to shadow root behavior with
setIsShadowRoot or $createQuoteNode({shadowRoot: true}),
in which case it contains block-level children rather than inline
content. false (the legacy inline-content behavior) by default.
Returns
boolean
Inherited from
markDirty()
markDirty():
void
Defined in: packages/lexical/src/LexicalNode.ts:2387
Marks a node dirty, triggering transforms and forcing it to be reconciled during the update cycle.
Returns
void
Inherited from
remove()
remove(
preserveEmptyParent?):void
Defined in: packages/lexical/src/LexicalNode.ts:1948
Removes this LexicalNode from the EditorState. If the node isn't re-inserted somewhere, the Lexical garbage collector will eventually clean it up.
Parameters
preserveEmptyParent?
boolean
If falsy, the node's parent will be removed if it's empty after the removal operation. This is the default behavior, subject to other node heuristics such as ElementNode#canBeEmpty
Returns
void
Inherited from
replace()
replace<
N>(replaceWith,includeChildren?):N
Defined in: packages/lexical/src/LexicalNode.ts:1965
Replaces this LexicalNode with the provided node, optionally transferring the children of the replaced node to the replacing node.
Named slots are bound to their host node and are never transferred: this
node keeps its slot map, so if it is reattached elsewhere (as
$wrapNodeInElement does) its slots come with it, and if it stays
detached the slot subtrees are garbage-collected along with it. To move a
slot value onto another host, use $setSlot explicitly.
Type Parameters
N
N extends LexicalNode
Parameters
replaceWith
N
The node to replace this one with.
includeChildren?
boolean
Whether or not to transfer the children of this node to the replacing node.
Returns
N
Inherited from
resetOnCopyNodeFrom()
resetOnCopyNodeFrom(
originalNode):void
Defined in: packages/lexical/src/LexicalNode.ts:1154
Reset state in this copy of originalNode, if necessary
Parameters
originalNode
this
Returns
void
Inherited from
ElementNode.resetOnCopyNodeFrom
select()
select(
_anchorOffset?,_focusOffset?):RangeSelection
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:715
Parameters
_anchorOffset?
number
_focusOffset?
number
Returns
Inherited from
selectEnd()
selectEnd():
RangeSelection
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:764
Returns
Inherited from
selectNext()
selectNext(
anchorOffset?,focusOffset?):RangeSelection
Defined in: packages/lexical/src/LexicalNode.ts:2359
Moves selection to the next sibling of this node, at the specified offsets.
Parameters
anchorOffset?
number
The anchor offset for selection.
focusOffset?
number
The focus offset for selection
Returns
Inherited from
selectPrevious()
selectPrevious(
anchorOffset?,focusOffset?):RangeSelection
Defined in: packages/lexical/src/LexicalNode.ts:2330
Moves selection to the previous sibling of this node, at the specified offsets.
Parameters
anchorOffset?
number
The anchor offset for selection.
focusOffset?
number
The focus offset for selection
Returns
Inherited from
selectStart()
selectStart():
RangeSelection
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:760
Returns
Inherited from
setDirection()
setDirection(
direction):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:777
Parameters
direction
"ltr" | "rtl" | null
Returns
this
Inherited from
setFormat()
setFormat(
type):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:782
Parameters
type
Returns
this
Inherited from
setIndent()
setIndent(
indentLevel):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:802
Parameters
indentLevel
number
Returns
this
Inherited from
setIsShadowRoot()
setIsShadowRoot(
isShadowRoot):this
Defined in: packages/lexical-rich-text/src/index.ts:236
Opt this quote in to (or out of) shadow root behavior. See quoteShadowRootState. Note that this does not restructure any existing children; a shadow root quote is expected to contain block-level children (non-element children will be normalized into paragraphs by the built-in shadow root transform).
Parameters
isShadowRoot
boolean
Returns
this
setStyle()
setStyle(
style):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:787
Parameters
style
string
Returns
this
Inherited from
setTextFormat()
setTextFormat(
type):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:792
Parameters
type
number
Returns
this
Inherited from
setTextStyle()
setTextStyle(
style):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:797
Parameters
style
string
Returns
this
Inherited from
splice()
splice(
start,deleteCount,nodesToInsert):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:807
Parameters
start
number
deleteCount
number
nodesToInsert
Returns
this
Inherited from
updateDOM()
updateDOM(
prevNode,dom,config):boolean
Defined in: packages/lexical-rich-text/src/index.ts:247
Called when a node changes and should update the DOM in whatever way is necessary to make it align with any changes that might have happened during the update.
Returning "true" here will cause lexical to unmount and recreate the DOM node (by calling createDOM). You would need to do this if the element tag changes, for instance.
Parameters
prevNode
this
dom
HTMLElement
config
Returns
boolean
Inherited from
updateFromJSON()
updateFromJSON(
serializedNode):this
Defined in: packages/lexical/src/nodes/LexicalElementNode.ts:235
Update this LexicalNode instance from serialized JSON. It's recommended to implement as much logic as possible in this method instead of the static importJSON method, so that the functionality can be inherited in subclasses.
The LexicalUpdateJSON utility type should be used to ignore any type, version, or children properties in the JSON so that the extended JSON from subclasses are acceptable parameters for the super call.
If overridden, this method must call super.
Parameters
serializedNode
LexicalParseJSON<SerializedElementNode>
Returns
this
Example
class MyTextNode extends TextNode {
// ...
static importJSON(serializedNode: SerializedMyTextNode): MyTextNode {
return $createMyTextNode()
.updateFromJSON(serializedNode);
}
updateFromJSON(
serializedNode: LexicalUpdateJSON<SerializedMyTextNode>,
): this {
return super.updateFromJSON(serializedNode)
.setMyProperty(serializedNode.myProperty);
}
}
The whole schema is applied, so a property the JSON omits is set to its schema default rather than left as it is — that is what lets the compact form omit a default-valued property and have parsing restore it. (A flat NodeState is the exception: it is applied only when present.) Pass the node's complete serialized form unless you mean to reset what you leave out.
Inherited from
clone()
staticclone(_data):LexicalNode
Defined in: packages/lexical/src/LexicalNode.ts:1029
Clones this node, creating a new node with a different key and adding it to the EditorState (but not attaching it anywhere!). All nodes must implement this method.
Parameters
_data
unknown
Returns
Inherited from
getType()
staticgetType():string
Defined in: packages/lexical/src/LexicalNode.ts:1013
Returns the string type of this node. Every node must implement this and it MUST BE UNIQUE amongst nodes registered on the editor.
Returns
string
Inherited from
importJSON()
staticimportJSON(serializedNode):QuoteNode
Defined in: packages/lexical-rich-text/src/index.ts:275
Controls how the this node is deserialized from JSON. This is usually boilerplate, but provides an abstraction between the node implementation and serialized interface that can be important if you ever make breaking changes to a node schema (by adding or removing properties). See Serialization & Deserialization.
Parameters
serializedNode
SerializedPartial<SerializedQuoteNode>
Returns
Inherited from
transform()
statictransform(): ((node) =>void) |null
Defined in: packages/lexical/src/LexicalNode.ts:1934
Experimental
Registers the returned function as a transform on the node during Editor initialization. Most such use cases should be addressed via the LexicalEditor.registerNodeTransform API.
Experimental - use at your own risk.
Returns
((node) => void) | null
Inherited from
Interfaces
HeadingAnnounceExtensionConfig
Defined in: packages/lexical-rich-text/src/HeadingAnnounceExtension.ts:15
Properties
created
created:
string
Defined in: packages/lexical-rich-text/src/HeadingAnnounceExtension.ts:20
Announced when a block becomes a heading. %s is replaced with the
level (1-6).
destroyed
destroyed:
string
Defined in: packages/lexical-rich-text/src/HeadingAnnounceExtension.ts:25
Announced when a heading stops being a heading. %s is replaced with the
level it was.
disabled
disabled:
boolean
Defined in: packages/lexical-rich-text/src/HeadingAnnounceExtension.ts:30
When true, headings are not announced. Toggle at runtime via the output
signal. Default false.
RichTextConfig
Defined in: packages/lexical-rich-text/src/LexicalRichTextExtension.ts:62
Configuration for RichTextExtension.
Properties
escapeFormatTriggers
escapeFormatTriggers:
EscapeFormatTriggerConfig
Defined in: packages/lexical-rich-text/src/LexicalRichTextExtension.ts:63
Per-format trigger configuration that controls which text formats are automatically cleared from the selection on specific user interactions.
Defaults to:
{
capitalize: {enter: true, space: true, tab: true},
lowercase: {enter: true, space: true, tab: true},
uppercase: {enter: true, space: true, tab: true},
}
To opt in to escaping code formatting at text node boundaries:
configExtension(RichTextExtension, {
escapeFormatTriggers: {
code: {onlyAtBoundary: true, enter: true, click: true, arrow: true},
},
})
shouldHandlePasteAsFiles
shouldHandlePasteAsFiles:
ShouldHandlePasteAsFiles
Defined in: packages/lexical-rich-text/src/LexicalRichTextExtension.ts:64
Type Aliases
EscapeFormatTrigger
EscapeFormatTrigger =
"enter"|"click"|"arrow"|"space"|"tab"
Defined in: packages/lexical-rich-text/src/index.ts:694
Trigger types that cause format escape at text node boundaries.
enter: Escape on Enter key pressclick: Escape on mouse clickarrow: Escape on arrow key navigation (left/right)space: Escape on Space key presstab: Escape on Tab key press
EscapeFormatTriggerConfig
EscapeFormatTriggerConfig = { [K in TextFormatType]?: TriggerConfig | null }
Defined in: packages/lexical-rich-text/src/index.ts:717
Per-format trigger configuration. Each TextFormatType maps to its
own set of triggers, or null to explicitly disable escape for that format
(useful when overriding defaults via configExtension).
HeadingTagType
HeadingTagType =
"h1"|"h2"|"h3"|"h4"|"h5"|"h6"
Defined in: packages/lexical-rich-text/src/index.ts:338
SerializedHeadingNode
SerializedHeadingNode =
Spread<{tag:"h1"|"h2"|"h3"|"h4"|"h5"|"h6"; },SerializedElementNode>
Defined in: packages/lexical-rich-text/src/index.ts:155
SerializedQuoteNode
SerializedQuoteNode =
Spread<{shadowRoot?:boolean; },SerializedElementNode>
Defined in: packages/lexical-rich-text/src/index.ts:166
ShouldHandlePasteAsFiles
ShouldHandlePasteAsFiles = (
files,hasTextContent) =>boolean
Defined in: packages/lexical-rich-text/src/index.ts:1262
Decides whether a paste event carrying files should be handled by dispatching DRAG_DROP_PASTE with those files, rather than falling through to the regular HTML paste handling.
Parameters
files
File[]
The files present on the clipboard, if any
hasTextContent
boolean
Whether the clipboard also carries text/html or text/plain content
Returns
boolean
TriggerConfig
TriggerConfig =
{ [K in EscapeFormatTrigger]?: boolean }&object
Defined in: packages/lexical-rich-text/src/index.ts:706
Trigger flags for a single format type. Set a trigger key to true to
escape that format when the corresponding user interaction occurs.
When onlyAtBoundary is true, the format is only escaped when the cursor
is at the start or end of a formatted text node with no adjacent sibling in
that direction. When onlyAtBoundary is false or omitted the format is
always escaped regardless of cursor position (matching the legacy
$resetCapitalization behavior).
Type Declaration
onlyAtBoundary?
optionalonlyAtBoundary?:boolean
Variables
DRAG_DROP_PASTE
constDRAG_DROP_PASTE:LexicalCommand<File[]>
Defined in: packages/lexical-rich-text/src/index.ts:162
HeadingAnnounceExtension
constHeadingAnnounceExtension:LexicalExtension<HeadingAnnounceExtensionConfig,"@lexical/rich-text/HeadingAnnounce",NamedSignalsOutput<HeadingAnnounceExtensionConfig>,unknown>
Defined in: packages/lexical-rich-text/src/HeadingAnnounceExtension.ts:55
Announces headings through the AriaLiveRegionExtension sink: a block becoming a heading, and a heading ceasing to be one.
The markdown shortcut consumes both keystrokes (# then space) and swaps the
block type, which is silent to a screen reader — so without this the user has
no way to know the transformation happened, or to confirm the level without
navigating out of the block and back in.
Only those two transitions announce. Typing inside a heading, moving the caret through it, and deleting text while the heading survives are all silent; announcing on every keystroke would make a heading impossible to type into.
A destroyed node is gone from the current editor state, so its level is read
from the previous state registerMutationListener provides.
quoteShadowRootState
constquoteShadowRootState:StateConfig<"shadowRoot",boolean>
Defined in: packages/lexical-rich-text/src/index.ts:187
Opt-in state for QuoteNode.isShadowRoot. When true, the quote
behaves like a multi-block region (similar to a table cell): it holds
block-level children (paragraphs, headings, ...) instead of inline
content, which allows more faithful HTML and Markdown import/export of
<blockquote> content. Defaults to false, in which case there is no
change to the legacy behavior (and nothing extra is serialized).
RichTextExtension
constRichTextExtension:LexicalExtension<RichTextConfig,"@lexical/rich-text",NamedSignalsOutput<RichTextConfig>,unknown>
Defined in: packages/lexical-rich-text/src/LexicalRichTextExtension.ts:111
RichTextImportExtension
constRichTextImportExtension:LexicalExtension<ExtensionConfigBase,"@lexical/rich-text/Import",unknown,unknown>
Defined in: packages/lexical-rich-text/src/LexicalRichTextExtension.ts:152
Experimental
Bundles RichTextImportRules together with the runtime RichTextExtension.
Deprecated
RichTextExtension now registers
RichTextImportRules (and CoreImportExtension) itself —
depend on it directly instead.
RichTextImportRules
constRichTextImportRules:DOMImportRule<ElementSelectorBuilder<HTMLSpanElement,Record<string,never>>>[]
Defined in: packages/lexical-rich-text/src/RichTextImportExtension.ts:152
Experimental
Import rules for HeadingNode and QuoteNode, including
the Google Docs title heuristic that the legacy HeadingNode.importDOM
declared. This whole array is contributed by RichTextExtension,
which depends on CoreImportExtension, so it is prepended in front of
CoreImportRules: the Google-Docs <p> / <span> rules here are
reached before the generic <p> and <span> rules from core, and defer
to them via $next() when the Google-Docs heuristic doesn't match.
Registered by RichTextExtension itself (together with
CoreImportExtension), so any editor that uses the rich-text
extension can import these tags through the DOMImportExtension
pipeline without further configuration.
ShadowRootQuoteRule
constShadowRootQuoteRule:DOMImportRule<ElementSelectorBuilder<HTMLQuoteElement,Record<string,never>>>
Defined in: packages/lexical-rich-text/src/RichTextImportExtension.ts:96
Experimental
Opt-in replacement for the default <blockquote> rule that imports the
quote as a shadow root QuoteNode (see quoteShadowRootState).
Block-level children such as <p> are preserved as blocks and runs of
inline content are wrapped in paragraphs (BlockSchema), so structured
blockquote HTML round-trips faithfully instead of being flattened to
inline content.
Not part of RichTextImportRules; without it <blockquote>
import behavior is unchanged. To opt in, contribute it from somewhere
that outranks RichTextImportRules in the compiled rule list —
either directly to the editor builder:
buildEditorFromExtensions(
MyExtension,
configExtension(DOMImportExtension, {rules: [ShadowRootQuoteRule]}),
)
or from an extension that depends on RichTextExtension:
defineExtension({
dependencies: [
RichTextExtension,
configExtension(DOMImportExtension, {rules: [ShadowRootQuoteRule]}),
],
name: '@app/quotes',
})
Either way the contribution is merged after rich-text's and therefore
prepended in front of it, so this rule is reached first and shadows the
default @lexical/rich-text/blockquote rule.
Functions
$createHeadingNode()
$createHeadingNode(
headingTag?):HeadingNode
Defined in: packages/lexical-rich-text/src/index.ts:541
Parameters
headingTag?
HeadingTagType = 'h1'
Returns
$createQuoteNode()
$createQuoteNode(
options?):QuoteNode
Defined in: packages/lexical-rich-text/src/index.ts:321
Parameters
options?
shadowRoot?
boolean
When true the quote opts in to shadow root behavior
(see quoteShadowRootState). Defaults to false.
Returns
$isHeadingNode()
$isHeadingNode(
node):node is HeadingNode
Defined in: packages/lexical-rich-text/src/index.ts:547
Parameters
node
LexicalNode | null | undefined
Returns
node is HeadingNode
$isQuoteNode()
$isQuoteNode(
node):node is QuoteNode
Defined in: packages/lexical-rich-text/src/index.ts:332
Parameters
node
LexicalNode | null | undefined
Returns
node is QuoteNode
defaultShouldHandlePasteAsFiles()
defaultShouldHandlePasteAsFiles(
files,hasTextContent):boolean
Defined in: packages/lexical-rich-text/src/index.ts:1273
The historical behavior: files are only handled when the clipboard carries no text content at all. Note that browsers put a text/html fallback on the clipboard alongside the file when an image is copied via the context menu, so this default routes such images through the HTML importer.
Parameters
files
File[]
hasTextContent
boolean
Returns
boolean
registerRichText()
registerRichText(
editor,escapeFormatTriggers?,shouldHandlePasteAsFiles?): () =>void
Defined in: packages/lexical-rich-text/src/index.ts:1280
Parameters
editor
escapeFormatTriggers?
ReadonlySignal<EscapeFormatTriggerConfig> = ...
shouldHandlePasteAsFiles?
ReadonlySignal<ShouldHandlePasteAsFiles> = ...
Returns
() => void
References
eventFiles
Re-exports eventFiles