Interface: ChildCaret<T, D>
lexical.ChildCaret
A ChildCaret points from an origin ElementNode towards its first or last child.
Type parameters
| Name | Type |
|---|---|
T | extends ElementNode = ElementNode |
D | extends CaretDirection = CaretDirection |
Hierarchy
-
BaseCaret<T,D,"child">↳
ChildCaret
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/caret/LexicalCaret.ts:55
getAdjacentCaret
• getAdjacentCaret: () => null | SiblingCaret<LexicalNode, D>
Get a new SiblingCaret from getNodeAtCaret() in the same direction.
Type declaration
▸ (): null | SiblingCaret<LexicalNode, D>
Returns
null | SiblingCaret<LexicalNode, D>
Inherited from
Defined in
packages/lexical/src/caret/LexicalCaret.ts:82
getChildCaret
• getChildCaret: () => this
Return this, the ChildCaret is already a child caret of its origin
Type declaration
▸ (): this
Returns
this
Defined in
packages/lexical/src/caret/LexicalCaret.ts:214
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;
$getChildCaret(parent, 'next').getFlipped().is($getSiblingCaret(firstChild, 'previous')) === true;
$getSiblingCaret(lastChild, 'next').getFlipped().is($getChildCaret(parent, 'previous')) === true;
$getSiblingCaret(firstChild, 'next).getFlipped().is($getSiblingCaret(lastChild, 'previous')) === true;
$getChildCaret(emptyParent, 'next').getFlipped().is($getChildCaret(emptyParent, 'previous')) === true;
Type declaration
▸ (): NodeCaret<FlipDirection<D>>
Returns
Inherited from
Defined in
packages/lexical/src/caret/LexicalCaret.ts:76
getLatest
• getLatest: () => ChildCaret<T, D>
Get a new caret with the latest origin pointer
Type declaration
▸ (): ChildCaret<T, D>
Returns
ChildCaret<T, D>
Defined in
packages/lexical/src/caret/LexicalCaret.ts:210
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/caret/LexicalCaret.ts:80
getParentAtCaret
• getParentAtCaret: () => T
Get the ElementNode that is the logical parent (origin for ChildCaret, origin.getParent() for SiblingCaret)
Type declaration
▸ (): T
Returns
T
Overrides
Defined in
packages/lexical/src/caret/LexicalCaret.ts:212
getParentCaret
• getParentCaret: (mode: RootMode) => null | SiblingCaret<T, D>
Type declaration
▸ (mode): null | SiblingCaret<T, D>
Parameters
| Name | Type |
|---|---|
mode | RootMode |
Returns
null | SiblingCaret<T, D>
Defined in
packages/lexical/src/caret/LexicalCaret.ts:211
insert
• insert: (node: LexicalNode) => this
Insert a node connected to origin in this direction.
For a SiblingCaret this is origin.insertAfter(node) for next, or origin.insertBefore(node) for previous.
For a ChildCaret 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/caret/LexicalCaret.ts:90
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.
Note that this will not check the offset of a TextPointCaret because it is otherwise indistinguishable from a SiblingCaret. Use $isSameTextPointCaret for that specific scenario.
Type declaration
▸ (other): boolean
Parameters
| Name | Type |
|---|---|
other | null | NodeCaret<CaretDirection> |
Returns
boolean
Inherited from
Defined in
packages/lexical/src/caret/LexicalCaret.ts:62
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/caret/LexicalCaret.ts:51
remove
• remove: () => this
Remove the getNodeAtCaret() node, if it exists
Type declaration
▸ (): this
Returns
this
Inherited from
Defined in
packages/lexical/src/caret/LexicalCaret.ts:84
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/caret/LexicalCaret.ts:92
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/caret/LexicalCaret.ts:100
type
• Readonly type: "child"
sibling for a SiblingCaret (pointing at the next or previous sibling) or child for a ChildCaret (pointing at the first or last child)