Skip to main content

@lexical/mark

Classes

MarkNode

Defined in: packages/lexical-mark/src/MarkNode.ts:36

Extends

Constructors

Constructor

new MarkNode(ids, key?): MarkNode

Defined in: packages/lexical-mark/src/MarkNode.ts:67

Parameters
ids

readonly string[] = NO_IDS

key?

string

Returns

MarkNode

Overrides

ElementNode.constructor

Methods

addID()

addID(id): this

Defined in: packages/lexical-mark/src/MarkNode.ts:118

Parameters
id

string

Returns

this

canBeEmpty()

canBeEmpty(): false

Defined in: packages/lexical-mark/src/MarkNode.ts:151

Returns

false

Overrides

ElementNode.canBeEmpty

canInsertTextAfter()

canInsertTextAfter(): false

Defined in: packages/lexical-mark/src/MarkNode.ts:147

Returns

false

Overrides

ElementNode.canInsertTextAfter

canInsertTextBefore()

canInsertTextBefore(): false

Defined in: packages/lexical-mark/src/MarkNode.ts:143

Returns

false

Overrides

ElementNode.canInsertTextBefore

createDOM()

createDOM(config): HTMLElement

Defined in: packages/lexical-mark/src/MarkNode.ts:72

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

Overrides

ElementNode.createDOM

deleteID()

deleteID(id): this

Defined in: packages/lexical-mark/src/MarkNode.ts:123

Parameters
id

string

Returns

this

excludeFromCopy()

excludeFromCopy(destination): boolean

Defined in: packages/lexical-mark/src/MarkNode.ts:182

Parameters
destination

"clone" | "html"

Returns

boolean

Overrides

ElementNode.excludeFromCopy

exportJSON()

exportJSON(): SerializedMarkNode

Defined in: packages/lexical-mark/src/MarkNode.ts:60

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

SerializedMarkNode

Overrides

ElementNode.exportJSON

extractWithChild()

extractWithChild(child, selection, destination): boolean

Defined in: packages/lexical-mark/src/MarkNode.ts:159

Parameters
child

LexicalNode

selection

BaseSelection

destination

"clone" | "html"

Returns

boolean

Overrides

ElementNode.extractWithChild

getIDs()

getIDs(): string[]

Defined in: packages/lexical-mark/src/MarkNode.ts:108

Returns

string[]

hasID()

hasID(id): boolean

Defined in: packages/lexical-mark/src/MarkNode.ts:104

Parameters
id

string

Returns

boolean

insertNewAfter()

insertNewAfter(selection, restoreSelection): null | ElementNode

Defined in: packages/lexical-mark/src/MarkNode.ts:134

Parameters
selection

RangeSelection

restoreSelection

boolean = true

Returns

null | ElementNode

Overrides

ElementNode.insertNewAfter

isInline()

isInline(): true

Defined in: packages/lexical-mark/src/MarkNode.ts:155

Returns

true

Overrides

ElementNode.isInline

setIDs()

setIDs(ids): this

Defined in: packages/lexical-mark/src/MarkNode.ts:112

Parameters
ids

readonly string[]

Returns

this

updateDOM()

updateDOM(prevNode, element, config): boolean

Defined in: packages/lexical-mark/src/MarkNode.ts:81

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

element

HTMLElement

config

EditorConfig

Returns

boolean

Overrides

ElementNode.updateDOM

updateFromJSON()

updateFromJSON(serializedNode): this

Defined in: packages/lexical-mark/src/MarkNode.ts:56

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<SerializedMarkNode>

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);
}
}
Overrides

ElementNode.updateFromJSON

clone()

static clone(node): MarkNode

Defined in: packages/lexical-mark/src/MarkNode.ts:44

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

MarkNode

Returns

MarkNode

Overrides

ElementNode.clone

getType()

static getType(): string

Defined in: packages/lexical-mark/src/MarkNode.ts:40

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

ElementNode.getType

importDOM()

static importDOM(): null

Defined in: packages/lexical-mark/src/MarkNode.ts:48

Returns

null

Overrides

ElementNode.importDOM

importJSON()

static importJSON(serializedNode): MarkNode

Defined in: packages/lexical-mark/src/MarkNode.ts:52

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

SerializedMarkNode

Returns

MarkNode

Overrides

ElementNode.importJSON

Type Aliases

SerializedMarkNode

SerializedMarkNode = Spread<{ ids: string[]; }, SerializedElementNode>

Defined in: packages/lexical-mark/src/MarkNode.ts:26

Functions

$createMarkNode()

$createMarkNode(ids): MarkNode

Defined in: packages/lexical-mark/src/MarkNode.ts:187

Parameters

ids

readonly string[] = NO_IDS

Returns

MarkNode


$getMarkIDs()

$getMarkIDs(node, offset): null | string[]

Defined in: packages/lexical-mark/src/index.ts:137

Parameters

node

TextNode

offset

number

Returns

null | string[]


$isMarkNode()

$isMarkNode(node): node is MarkNode

Defined in: packages/lexical-mark/src/MarkNode.ts:191

Parameters

node

null | LexicalNode

Returns

node is MarkNode


$unwrapMarkNode()

$unwrapMarkNode(node): void

Defined in: packages/lexical-mark/src/index.ts:21

Parameters

node

MarkNode

Returns

void


$wrapSelectionInMarkNode()

$wrapSelectionInMarkNode(selection, isBackward, id, createNode?): void

Defined in: packages/lexical-mark/src/index.ts:36

Parameters

selection

RangeSelection

isBackward

boolean

id

string

createNode?

(ids) => MarkNode

Returns

void