Skip to main content

@lexical/react/LexicalHorizontalRuleNode

Classes

HorizontalRuleNode

Defined in: packages/lexical-react/src/LexicalHorizontalRuleNode.tsx:85

Deprecated

A pure Lexical implementation is available in @lexical/extension as HorizontalRuleExtension

Extends

Constructors

Constructor

new HorizontalRuleNode(key?): HorizontalRuleNode

Defined in: packages/lexical/src/LexicalNode.ts:534

Parameters
key?

string

Returns

HorizontalRuleNode

Inherited from

HorizontalRuleNode.constructor

Methods

$config()

$config(): BaseStaticNodeConfig

Defined in: packages/lexical/src/LexicalNode.ts:451

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

Example
class MyNode extends TextNode {
$config() {
return this.config('my-node', {extends: TextNode});
}
}
Inherited from

HorizontalRuleNode.$config

afterCloneFrom()

afterCloneFrom(prevNode): void

Defined in: packages/lexical/src/LexicalNode.ts:520

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

HorizontalRuleNode.afterCloneFrom

config()

config<Type, Config>(type, config): StaticNodeConfigRecord<Type, Config>

Defined in: packages/lexical/src/LexicalNode.ts:460

This is a convenience method for $config that aids in type inference. See LexicalNode.$config for example usage.

Type Parameters
Type

Type extends string

Config

Config extends StaticNodeConfigValue<HorizontalRuleNode, Type>

Parameters
type

Type

config

Config

Returns

StaticNodeConfigRecord<Type, Config>

Inherited from

HorizontalRuleNode.config

createDOM()

createDOM(config): HTMLElement

Defined in: packages/lexical-extension/src/HorizontalRuleExtension.ts:78

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

EditorConfig

Returns

HTMLElement

Inherited from

HorizontalRuleNode.createDOM

createParentElementNode()

createParentElementNode(): ElementNode

Defined in: packages/lexical/src/LexicalNode.ts:1374

The creation logic for any required parent. Should be implemented if isParentRequired returns true.

Returns

ElementNode

Inherited from

HorizontalRuleNode.createParentElementNode

decorate()

decorate(): Element

Defined in: packages/lexical-react/src/LexicalHorizontalRuleNode.tsx:109

The returned value is added to the LexicalEditor._decorators

Returns

Element

Overrides

HorizontalRuleNode.decorate

exportDOM()

exportDOM(): DOMExportOutput

Defined in: packages/lexical-extension/src/HorizontalRuleExtension.ts:74

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.

Returns

DOMExportOutput

Inherited from

HorizontalRuleNode.exportDOM

exportJSON()

exportJSON(): SerializedLexicalNode

Defined in: packages/lexical/src/LexicalNode.ts:1096

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.

Returns

SerializedLexicalNode

Inherited from

HorizontalRuleNode.exportJSON

getCommonAncestor()

getCommonAncestor<T>(node): null | T

Defined in: packages/lexical/src/LexicalNode.ts:827

Type Parameters
T

T extends ElementNode = ElementNode

Parameters
node

LexicalNode

the other node to find the common ancestor of.

Returns

null | T

Deprecated

use $getCommonAncestor

Returns the closest common ancestor of this node and the provided one or null if one cannot be found.

Inherited from

HorizontalRuleNode.getCommonAncestor

getIndexWithinParent()

getIndexWithinParent(): number

Defined in: packages/lexical/src/LexicalNode.ts:653

Returns the zero-based index of this node within the parent.

Returns

number

Inherited from

HorizontalRuleNode.getIndexWithinParent

getKey()

getKey(): string

Defined in: packages/lexical/src/LexicalNode.ts:645

Returns this nodes key.

Returns

string

Inherited from

HorizontalRuleNode.getKey

getLatest()

getLatest(): this

Defined in: packages/lexical/src/LexicalNode.ts:978

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

HorizontalRuleNode.getLatest

getNextSibling()

getNextSibling<T>(): null | T

Defined in: packages/lexical/src/LexicalNode.ts:798

Returns the "next" siblings - that is, the node that comes after this one in the same parent

Type Parameters
T

T extends LexicalNode

Returns

null | T

Inherited from

HorizontalRuleNode.getNextSibling

getNextSiblings()

getNextSiblings<T>(): T[]

Defined in: packages/lexical/src/LexicalNode.ts:809

Returns all "next" siblings - that is, the nodes that come between this one and the last child of it's parent, inclusive.

Type Parameters
T

T extends LexicalNode

Returns

T[]

Inherited from

HorizontalRuleNode.getNextSiblings

getNodesBetween()

getNodesBetween(targetNode): LexicalNode[]

Defined in: packages/lexical/src/LexicalNode.ts:897

Returns a list of nodes that are between this node and the target node in the EditorState.

Parameters
targetNode

LexicalNode

the node that marks the other end of the range of nodes to be returned.

Returns

LexicalNode[]

Inherited from

HorizontalRuleNode.getNodesBetween

getParent()

getParent<T>(): null | T

Defined in: packages/lexical/src/LexicalNode.ts:673

Returns the parent of this node, or null if none is found.

Type Parameters
T

T extends ElementNode

Returns

null | T

Inherited from

HorizontalRuleNode.getParent

getParentKeys()

getParentKeys(): string[]

Defined in: packages/lexical/src/LexicalNode.ts:750

Returns a list of the keys of every ancestor of this node, all the way up to the RootNode.

Returns

string[]

Inherited from

HorizontalRuleNode.getParentKeys

getParentOrThrow()

getParentOrThrow<T>(): T

Defined in: packages/lexical/src/LexicalNode.ts:684

Returns the parent of this node, or throws if none is found.

Type Parameters
T

T extends ElementNode

Returns

T

Inherited from

HorizontalRuleNode.getParentOrThrow

getParents()

getParents(): ElementNode[]

Defined in: packages/lexical/src/LexicalNode.ts:735

Returns a list of the every ancestor of this node, all the way up to the RootNode.

Returns

ElementNode[]

Inherited from

HorizontalRuleNode.getParents

getPreviousSibling()

getPreviousSibling<T>(): null | T

Defined in: packages/lexical/src/LexicalNode.ts:765

Returns the "previous" siblings - that is, the node that comes before this one in the same parent.

Type Parameters
T

T extends LexicalNode

Returns

null | T

Inherited from

HorizontalRuleNode.getPreviousSibling

getPreviousSiblings()

getPreviousSiblings<T>(): T[]

Defined in: packages/lexical/src/LexicalNode.ts:776

Returns the "previous" siblings - that is, the nodes that come between this one and the first child of it's parent, inclusive.

Type Parameters
T

T extends LexicalNode

Returns

T[]

Inherited from

HorizontalRuleNode.getPreviousSiblings

getTextContent()

getTextContent(): string

Defined in: packages/lexical-extension/src/HorizontalRuleExtension.ts:84

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

HorizontalRuleNode.getTextContent

getTextContentSize()

getTextContentSize(): number

Defined in: packages/lexical/src/LexicalNode.ts:1036

Returns the length of the string produced by calling getTextContent on this node.

Returns

number

Inherited from

HorizontalRuleNode.getTextContentSize

getTopLevelElement()

getTopLevelElement(): null | ElementNode | HorizontalRuleNode

Defined in: packages/lexical/src/nodes/LexicalDecoratorNode.ts:17

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

null | ElementNode | HorizontalRuleNode

Inherited from

HorizontalRuleNode.getTopLevelElement

getTopLevelElementOrThrow()

getTopLevelElementOrThrow(): ElementNode | HorizontalRuleNode

Defined in: packages/lexical/src/nodes/LexicalDecoratorNode.ts:18

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

ElementNode | HorizontalRuleNode

Inherited from

HorizontalRuleNode.getTopLevelElementOrThrow

getType()

getType(): string

Defined in: packages/lexical/src/LexicalNode.ts:559

Returns the string type of this node.

Returns

string

Inherited from

HorizontalRuleNode.getType

getWritable()

getWritable(): this

Defined in: packages/lexical/src/LexicalNode.ts:995

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

HorizontalRuleNode.getWritable

insertAfter()

insertAfter(nodeToInsert, restoreSelection): LexicalNode

Defined in: packages/lexical/src/LexicalNode.ts:1259

Inserts a node after this LexicalNode (as the next sibling).

Parameters
nodeToInsert

LexicalNode

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

LexicalNode

Inherited from

HorizontalRuleNode.insertAfter

insertBefore()

insertBefore(nodeToInsert, restoreSelection): LexicalNode

Defined in: packages/lexical/src/LexicalNode.ts:1326

Inserts a node before this LexicalNode (as the previous sibling).

Parameters
nodeToInsert

LexicalNode

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

LexicalNode

Inherited from

HorizontalRuleNode.insertBefore

is()

is(object): boolean

Defined in: packages/lexical/src/LexicalNode.ts:844

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

the node to perform the equality comparison on.

undefined | null | LexicalNode

Returns

boolean

Inherited from

HorizontalRuleNode.is

isAttached()

isAttached(): boolean

Defined in: packages/lexical/src/LexicalNode.ts:576

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

HorizontalRuleNode.isAttached

isBefore()

isBefore(targetNode): boolean

Defined in: packages/lexical/src/LexicalNode.ts:862

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

LexicalNode

the node we're testing to see if it's after this one.

Returns

boolean

Inherited from

HorizontalRuleNode.isBefore

isDirty()

isDirty(): boolean

Defined in: packages/lexical/src/LexicalNode.ts:967

Returns true if this node has been marked dirty during this update cycle.

Returns

boolean

Inherited from

HorizontalRuleNode.isDirty

isInline()

isInline(): false

Defined in: packages/lexical-extension/src/HorizontalRuleExtension.ts:88

Returns

false

Inherited from

HorizontalRuleNode.isInline

isIsolated()

isIsolated(): boolean

Defined in: packages/lexical/src/nodes/LexicalDecoratorNode.ts:34

Returns

boolean

Inherited from

HorizontalRuleNode.isIsolated

isKeyboardSelectable()

isKeyboardSelectable(): boolean

Defined in: packages/lexical/src/nodes/LexicalDecoratorNode.ts:42

Returns

boolean

Inherited from

HorizontalRuleNode.isKeyboardSelectable

isParentOf()

isParentOf(targetNode): boolean

Defined in: packages/lexical/src/LexicalNode.ts:885

Returns true if this node is an ancestor of and distinct from the target node, false otherwise.

Parameters
targetNode

LexicalNode

the would-be child node.

Returns

boolean

Inherited from

HorizontalRuleNode.isParentOf

isParentRequired()

isParentRequired(): boolean

Defined in: packages/lexical/src/LexicalNode.ts:1366

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

HorizontalRuleNode.isParentRequired

isSelected()

isSelected(selection?): boolean

Defined in: packages/lexical/src/LexicalNode.ts:600

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?

The selection that we want to determine if the node is in.

null | BaseSelection

Returns

boolean

Inherited from

HorizontalRuleNode.isSelected

markDirty()

markDirty(): void

Defined in: packages/lexical/src/LexicalNode.ts:1435

Marks a node dirty, triggering transforms and forcing it to be reconciled during the update cycle.

Returns

void

Inherited from

HorizontalRuleNode.markDirty

remove()

remove(preserveEmptyParent?): void

Defined in: packages/lexical/src/LexicalNode.ts:1178

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

HorizontalRuleNode.remove

replace()

replace<N>(replaceWith, includeChildren?): N

Defined in: packages/lexical/src/LexicalNode.ts:1189

Replaces this LexicalNode with the provided node, optionally transferring the children of the replaced node to the replacing node.

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

HorizontalRuleNode.replace

selectEnd()

selectEnd(): RangeSelection

Defined in: packages/lexical/src/LexicalNode.ts:1382

Returns

RangeSelection

Inherited from

HorizontalRuleNode.selectEnd

selectNext()

selectNext(anchorOffset?, focusOffset?): RangeSelection

Defined in: packages/lexical/src/LexicalNode.ts:1414

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

RangeSelection

Inherited from

HorizontalRuleNode.selectNext

selectPrevious()

selectPrevious(anchorOffset?, focusOffset?): RangeSelection

Defined in: packages/lexical/src/LexicalNode.ts:1392

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

RangeSelection

Inherited from

HorizontalRuleNode.selectPrevious

selectStart()

selectStart(): RangeSelection

Defined in: packages/lexical/src/LexicalNode.ts:1378

Returns

RangeSelection

Inherited from

HorizontalRuleNode.selectStart

updateDOM()

updateDOM(): boolean

Defined in: packages/lexical-extension/src/HorizontalRuleExtension.ts:92

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.

Returns

boolean

Inherited from

HorizontalRuleNode.updateDOM

updateFromJSON()

updateFromJSON(serializedNode): this

Defined in: packages/lexical/src/LexicalNode.ts:1149

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

LexicalUpdateJSON<SerializedLexicalNode>

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);
}
}
Inherited from

HorizontalRuleNode.updateFromJSON

clone()

static clone(node): HorizontalRuleNode

Defined in: packages/lexical-react/src/LexicalHorizontalRuleNode.tsx:90

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
node

HorizontalRuleNode

Returns

HorizontalRuleNode

Overrides

HorizontalRuleNode.clone

getType()

static getType(): string

Defined in: packages/lexical-react/src/LexicalHorizontalRuleNode.tsx:86

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

Overrides

HorizontalRuleNode.getType

importDOM()

static importDOM(): null | DOMConversionMap

Defined in: packages/lexical-react/src/LexicalHorizontalRuleNode.tsx:100

Returns

null | DOMConversionMap

Overrides

HorizontalRuleNode.importDOM

importJSON()

static importJSON(serializedNode): HorizontalRuleNode

Defined in: packages/lexical-react/src/LexicalHorizontalRuleNode.tsx:94

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

SerializedLexicalNode

Returns

HorizontalRuleNode

Overrides

HorizontalRuleNode.importJSON

transform()

static transform(): null | (node) => void

Defined in: packages/lexical/src/LexicalNode.ts:1164

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

null | (node) => void

Inherited from

HorizontalRuleNode.transform

Functions

$createHorizontalRuleNode()

$createHorizontalRuleNode(): HorizontalRuleNode

Defined in: packages/lexical-react/src/LexicalHorizontalRuleNode.tsx:121

Returns

HorizontalRuleNode

Deprecated

A pure Lexical implementation is available in @lexical/extension as HorizontalRuleExtension

References

$isHorizontalRuleNode

Re-exports $isHorizontalRuleNode


INSERT_HORIZONTAL_RULE_COMMAND

Re-exports INSERT_HORIZONTAL_RULE_COMMAND


SerializedHorizontalRuleNode

Re-exports SerializedHorizontalRuleNode