Skip to main content

Interface: BreadthNodeCaret<T, D>

lexical.BreadthNodeCaret

A BreadthNodeCaret points from an origin LexicalNode towards its next or previous sibling.

Type parameters

NameType
Textends LexicalNode = LexicalNode
Dextends CaretDirection = CaretDirection

Hierarchy

  • BaseNodeCaret<T, D>

    BreadthNodeCaret

Properties

direction

Readonly direction: D

next if pointing at the next sibling or first child, previous if pointing at the previous sibling or last child

Inherited from

BaseNodeCaret.direction

Defined in

packages/lexical/src/LexicalCaret.ts:35


origin

Readonly origin: T

The origin node of this caret, typically this is what you will use in traversals

Inherited from

BaseNodeCaret.origin

Defined in

packages/lexical/src/LexicalCaret.ts:31


type

Readonly type: "breadth"

Overrides

BaseNodeCaret.type

Defined in

packages/lexical/src/LexicalCaret.ts:111

Methods

[iterator]

[iterator](): Iterator<BreadthNodeCaret<LexicalNode, D>, any, undefined>

Returns

Iterator<BreadthNodeCaret<LexicalNode, D>, any, undefined>

Inherited from

BaseNodeCaret.[iterator]

Defined in

node_modules/typescript/lib/lib.es2015.iterable.d.ts:49


getAdjacentCaret

getAdjacentCaret(): null | BreadthNodeCaret<LexicalNode, D>

Get a new BreadthNodeCaret from getNodeAtCaret() in the same direction. This is used for traversals, but only goes in the breadth (sibling) direction.

Returns

null | BreadthNodeCaret<LexicalNode, D>

Inherited from

BaseNodeCaret.getAdjacentCaret

Defined in

packages/lexical/src/LexicalCaret.ts:57


getChildCaret

getChildCaret(): null | DepthNodeCaret<T & ElementNode, D>

If the origin of this node is an ElementNode, return the DepthNodeCaret of this origin in the same direction. If the origin is not an ElementNode, this will return null.

Returns

null | DepthNodeCaret<T & ElementNode, D>

Defined in

packages/lexical/src/LexicalCaret.ts:116


getFlipped

getFlipped(): NodeCaret<FlipDirection<D>>

Get a new NodeCaret with the head and tail of its directional arrow flipped, such that flipping twice is the identity. For example, given a non-empty parent with a firstChild and lastChild, and a second emptyParent node with no children:

Returns

NodeCaret<FlipDirection<D>>

Example

caret.getFlipped().getFlipped().is(caret) === true;
$getDepthCaret(parent, 'next').getFlipped().is($getBreadthCaret(firstChild, 'previous')) === true;
$getBreadthCaret(lastChild, 'next').getFlipped().is($getDepthCaret(parent, 'previous')) === true;
$getBreadthCaret(firstChild, 'next).getFlipped().is($getBreadthCaret(lastChild, 'previous')) === true;
$getDepthCaret(emptyParent, 'next').getFlipped().is($getDepthCaret(emptyParent, 'previous')) === true;

Inherited from

BaseNodeCaret.getFlipped

Defined in

packages/lexical/src/LexicalCaret.ts:51


getNodeAtCaret

getNodeAtCaret(): null | LexicalNode

Get the node connected to the origin in the caret's direction, or null if there is no node

Returns

null | LexicalNode

Inherited from

BaseNodeCaret.getNodeAtCaret

Defined in

packages/lexical/src/LexicalCaret.ts:55


getParentAtCaret

getParentAtCaret(): ElementNode

Get the ElementNode that is the logical parent (origin for DepthNodeCaret, origin.getParentOrThrow() for BreadthNodeCaret)

Returns

ElementNode

Inherited from

BaseNodeCaret.getParentAtCaret

Defined in

packages/lexical/src/LexicalCaret.ts:53


getParentCaret

getParentCaret(mode): null | BreadthNodeCaret<ElementNode, D>

Get the caret in the same direction from the parent of this origin.

Parameters

NameTypeDescription
modeRootMode'root' to return null at the root, 'shadowRoot' to return null at the root or any shadow root

Returns

null | BreadthNodeCaret<ElementNode, D>

A BreadthNodeCaret with the parent of this origin, or null if the parent is a root according to mode.

Defined in

packages/lexical/src/LexicalCaret.ts:123


insert

insert(node): this

Insert a node connected to origin in this direction. For a BreadthNodeCaret this is origin.insertAfter(node) for next, or origin.insertBefore(node) for previous. For a DepthNodeCaret this is origin.splice(0, 0, [node]) for next or origin.append(node) for previous.

Parameters

NameType
nodeLexicalNode

Returns

this

Inherited from

BaseNodeCaret.insert

Defined in

packages/lexical/src/LexicalCaret.ts:65


is

is(other): boolean

Retun true if other is a caret with the same origin (by node key comparion), type, and direction

Parameters

NameType
othernull | NodeCaret<CaretDirection>

Returns

boolean

Inherited from

BaseNodeCaret.is

Defined in

packages/lexical/src/LexicalCaret.ts:37


remove

remove(): this

Remove the getNodeAtCaret() node, if it exists

Returns

this

Inherited from

BaseNodeCaret.remove

Defined in

packages/lexical/src/LexicalCaret.ts:59


replaceOrInsert

replaceOrInsert(node, includeChildren?): this

If getNodeAtCaret() is null then replace it with node, otherwise insert node

Parameters

NameType
nodeLexicalNode
includeChildren?boolean

Returns

this

Inherited from

BaseNodeCaret.replaceOrInsert

Defined in

packages/lexical/src/LexicalCaret.ts:67


splice

splice(deleteCount, nodes, nodesDirection?): this

Splice an iterable (typically an Array) of nodes into this location.

Parameters

NameTypeDescription
deleteCountnumberThe number of existing nodes to replace or delete
nodesIterable<LexicalNode>An iterable of nodes that will be inserted in this location, using replace instead of insert for the first deleteCount nodes
nodesDirection?CaretDirectionThe direction of the nodes iterable, defaults to 'next'

Returns

this

Inherited from

BaseNodeCaret.splice

Defined in

packages/lexical/src/LexicalCaret.ts:75