Interface: DepthNodeCaret<T, D>
lexical.DepthNodeCaret
A DepthNodeCaret points from an origin ElementNode towards its first or last child.
Type parameters
| Name | Type |
|---|---|
T | extends ElementNode = ElementNode |
D | extends CaretDirection = CaretDirection |
Hierarchy
-
BaseNodeCaret<T,D,"depth">↳
DepthNodeCaret
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
Defined in
packages/lexical/src/LexicalCaret.ts:39
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.
Type declaration
▸ (): null | BreadthNodeCaret<LexicalNode, D>
Returns
null | BreadthNodeCaret<LexicalNode, D>
Inherited from
BaseNodeCaret.getAdjacentCaret
Defined in
packages/lexical/src/LexicalCaret.ts:61
getChildCaret
• getChildCaret: () => this
Return this, the DepthNode is already a child caret of its origin
Type declaration
▸ (): this
Returns
this
Defined in
packages/lexical/src/LexicalCaret.ts:179
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:
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;
Type declaration
▸ (): NodeCaret<FlipDirection<D>>
Returns
Inherited from
Defined in
packages/lexical/src/LexicalCaret.ts:55
getNodeAtCaret
• getNodeAtCaret: () => null | LexicalNode
Get the node connected to the origin in the caret's direction, or null if there is no node
Type declaration
▸ (): null | LexicalNode
Returns
null | LexicalNode
Inherited from
Defined in
packages/lexical/src/LexicalCaret.ts:59
getParentAtCaret
• getParentAtCaret: () => T
Get the ElementNode that is the logical parent (origin for DepthNodeCaret, origin.getParentOrThrow() for BreadthNodeCaret)
Type declaration
▸ (): T
Returns
T
Overrides
BaseNodeCaret.getParentAtCaret
Defined in
packages/lexical/src/LexicalCaret.ts:177
getParentCaret
• getParentCaret: (mode: RootMode) => null | BreadthNodeCaret<T, D>
Type declaration
▸ (mode): null | BreadthNodeCaret<T, D>
Parameters
| Name | Type |
|---|---|
mode | RootMode |
Returns
null | BreadthNodeCaret<T, D>
Defined in
packages/lexical/src/LexicalCaret.ts:176
insert
• insert: (node: LexicalNode) => 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.
Type declaration
▸ (node): this
Parameters
| Name | Type |
|---|---|
node | LexicalNode |
Returns
this
Inherited from
Defined in
packages/lexical/src/LexicalCaret.ts:69
is
• is: (other: null | NodeCaret<CaretDirection>) => boolean
Retun true if other is a caret with the same origin (by node key comparion), type, and direction
Type declaration
▸ (other): boolean
Parameters
| Name | Type |
|---|---|
other | null | NodeCaret<CaretDirection> |
Returns
boolean
Inherited from
Defined in
packages/lexical/src/LexicalCaret.ts:41
origin
• Readonly origin: T
The origin node of this caret, typically this is what you will use in traversals
Inherited from
Defined in
packages/lexical/src/LexicalCaret.ts:35
remove
• remove: () => this
Remove the getNodeAtCaret() node, if it exists
Type declaration
▸ (): this
Returns
this
Inherited from
Defined in
packages/lexical/src/LexicalCaret.ts:63
replaceOrInsert
• replaceOrInsert: (node: LexicalNode, includeChildren?: boolean) => this
If getNodeAtCaret() is null then replace it with node, otherwise insert node
Type declaration
▸ (node, includeChildren?): this
Parameters
| Name | Type |
|---|---|
node | LexicalNode |
includeChildren? | boolean |
Returns
this
Inherited from
Defined in
packages/lexical/src/LexicalCaret.ts:71
splice
• splice: (deleteCount: number, nodes: Iterable<LexicalNode>, nodesDirection?: CaretDirection) => this
Splice an iterable (typically an Array) of nodes into this location.
Type declaration
▸ (deleteCount, nodes, nodesDirection?): this
Parameters
| Name | Type | Description |
|---|---|---|
deleteCount | number | The number of existing nodes to replace or delete |
nodes | Iterable<LexicalNode> | An iterable of nodes that will be inserted in this location, using replace instead of insert for the first deleteCount nodes |
nodesDirection? | CaretDirection | The direction of the nodes iterable, defaults to 'next' |
Returns
this
Inherited from
Defined in
packages/lexical/src/LexicalCaret.ts:79
type
• Readonly type: "depth"
breadth for a BreadthNodeCaret (pointing at the next or previous sibling) or depth for a DepthNodeCaret (pointing at the first or last child)