@lexical/link
Classes
AutoLinkNode
Defined in: packages/lexical-link/src/index.ts:337
Extends
Constructors
Constructor
new AutoLinkNode(
url
,attributes
,key?
):AutoLinkNode
Defined in: packages/lexical-link/src/index.ts:342
Parameters
url
string
= ''
attributes
AutoLinkAttributes
= {}
key?
string
Returns
Overrides
Properties
__isUnlinked
__isUnlinked:
boolean
Defined in: packages/lexical-link/src/index.ts:340
Indicates whether the autolink was ever unlinked. *
Methods
canBeEmpty()
canBeEmpty():
false
Defined in: packages/lexical-link/src/index.ts:251
Returns
false
Inherited from
canInsertTextAfter()
canInsertTextAfter():
false
Defined in: packages/lexical-link/src/index.ts:247
Returns
false
Inherited from
canInsertTextBefore()
canInsertTextBefore():
false
Defined in: packages/lexical-link/src/index.ts:243
Returns
false
Inherited from
createDOM()
createDOM(
config
):LinkHTMLElementType
Defined in: packages/lexical-link/src/index.ts:381
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
Returns
LinkHTMLElementType
Overrides
exportJSON()
exportJSON():
SerializedAutoLinkNode
Defined in: packages/lexical-link/src/index.ts:417
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
Overrides
extractWithChild()
extractWithChild(
child
,selection
,destination
):boolean
Defined in: packages/lexical-link/src/index.ts:259
Parameters
child
selection
destination
"clone"
| "html"
Returns
boolean
Inherited from
getIsUnlinked()
getIsUnlinked():
boolean
Defined in: packages/lexical-link/src/index.ts:371
Returns
boolean
getRel()
getRel():
null
|string
Defined in: packages/lexical-link/src/index.ts:210
Returns
null
| string
Inherited from
getTarget()
getTarget():
null
|string
Defined in: packages/lexical-link/src/index.ts:200
Returns
null
| string
Inherited from
getTitle()
getTitle():
null
|string
Defined in: packages/lexical-link/src/index.ts:220
Returns
null
| string
Inherited from
getType()
getType():
string
Defined in: packages/lexical/src/LexicalNode.ts:562
Returns the string type of this node.
Returns
string
Inherited from
LinkNode.getType
getURL()
getURL():
string
Defined in: packages/lexical-link/src/index.ts:190
Returns
string
Inherited from
insertNewAfter()
insertNewAfter(
selection
,restoreSelection
):null
|ElementNode
Defined in: packages/lexical-link/src/index.ts:424
Parameters
selection
restoreSelection
boolean
= true
Returns
null
| ElementNode
Overrides
isEmailURI()
isEmailURI():
boolean
Defined in: packages/lexical-link/src/index.ts:278
Returns
boolean
Inherited from
isInline()
isInline():
true
Defined in: packages/lexical-link/src/index.ts:255
Returns
true
Inherited from
isWebSiteURI()
isWebSiteURI():
boolean
Defined in: packages/lexical-link/src/index.ts:282
Returns
boolean
Inherited from
sanitizeUrl()
sanitizeUrl(
url
):string
Defined in: packages/lexical-link/src/index.ts:166
Parameters
url
string
Returns
string
Inherited from
setIsUnlinked()
setIsUnlinked(
value
):this
Defined in: packages/lexical-link/src/index.ts:375
Parameters
value
boolean
Returns
this
setRel()
setRel(
rel
):this
Defined in: packages/lexical-link/src/index.ts:214
Parameters
rel
null
| string
Returns
this
Inherited from
setTarget()
setTarget(
target
):this
Defined in: packages/lexical-link/src/index.ts:204
Parameters
target
null
| string
Returns
this
Inherited from
setTitle()
setTitle(
title
):this
Defined in: packages/lexical-link/src/index.ts:224
Parameters
title
null
| string
Returns
this
Inherited from
setURL()
setURL(
url
):this
Defined in: packages/lexical-link/src/index.ts:194
Parameters
url
string
Returns
this
Inherited from
updateDOM()
updateDOM(
prevNode
,anchor
,config
):boolean
Defined in: packages/lexical-link/src/index.ts:389
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
anchor
LinkHTMLElementType
config
Returns
boolean
Overrides
updateFromJSON()
updateFromJSON(
serializedNode
):this
Defined in: packages/lexical-link/src/index.ts:404
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
<SerializedAutoLinkNode
>
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
updateLinkDOM()
updateLinkDOM(
prevNode
,anchor
,config
):void
Defined in: packages/lexical-link/src/index.ts:112
Parameters
prevNode
null
| AutoLinkNode
anchor
LinkHTMLElementType
config
Returns
void
Inherited from
clone()
static
clone(node
):AutoLinkNode
Defined in: packages/lexical-link/src/index.ts:358
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
Returns
Overrides
getType()
static
getType():string
Defined in: packages/lexical-link/src/index.ts:354
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
importDOM()
static
importDOM():null
Defined in: packages/lexical-link/src/index.ts:412
Returns
null
Overrides
importJSON()
static
importJSON(serializedNode
):AutoLinkNode
Defined in: packages/lexical-link/src/index.ts:400
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
Returns
Overrides
LinkNode
Defined in: packages/lexical-link/src/index.ts:70
Extends
Extended by
Constructors
Constructor
new LinkNode(
url
,attributes
,key?
):LinkNode
Defined in: packages/lexical-link/src/index.ts:92
Parameters
url
string
= ''
attributes
LinkAttributes
= {}
key?
string
Returns
Overrides
Methods
canBeEmpty()
canBeEmpty():
false
Defined in: packages/lexical-link/src/index.ts:251
Returns
false
Overrides
canInsertTextAfter()
canInsertTextAfter():
false
Defined in: packages/lexical-link/src/index.ts:247
Returns
false
Overrides
ElementNode
.canInsertTextAfter
canInsertTextBefore()
canInsertTextBefore():
false
Defined in: packages/lexical-link/src/index.ts:243
Returns
false
Overrides
ElementNode
.canInsertTextBefore
createDOM()
createDOM(
config
):LinkHTMLElementType
Defined in: packages/lexical-link/src/index.ts:105
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
Returns
LinkHTMLElementType
Overrides
exportJSON()
exportJSON():
SerializedLinkNode
|SerializedAutoLinkNode
Defined in: packages/lexical-link/src/index.ts:180
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
SerializedLinkNode
| SerializedAutoLinkNode
Overrides
extractWithChild()
extractWithChild(
child
,selection
,destination
):boolean
Defined in: packages/lexical-link/src/index.ts:259
Parameters
child
selection
destination
"clone"
| "html"
Returns
boolean
Overrides
getRel()
getRel():
null
|string
Defined in: packages/lexical-link/src/index.ts:210
Returns
null
| string
getTarget()
getTarget():
null
|string
Defined in: packages/lexical-link/src/index.ts:200
Returns
null
| string
getTitle()
getTitle():
null
|string
Defined in: packages/lexical-link/src/index.ts:220
Returns
null
| string
getURL()
getURL():
string
Defined in: packages/lexical-link/src/index.ts:190
Returns
string
insertNewAfter()
insertNewAfter(
_
,restoreSelection
):null
|ElementNode
Defined in: packages/lexical-link/src/index.ts:230
Parameters
_
restoreSelection
boolean
= true
Returns
null
| ElementNode
Overrides
isEmailURI()
isEmailURI():
boolean
Defined in: packages/lexical-link/src/index.ts:278
Returns
boolean
isInline()
isInline():
true
Defined in: packages/lexical-link/src/index.ts:255
Returns
true
Overrides
isWebSiteURI()
isWebSiteURI():
boolean
Defined in: packages/lexical-link/src/index.ts:282
Returns
boolean
sanitizeUrl()
sanitizeUrl(
url
):string
Defined in: packages/lexical-link/src/index.ts:166
Parameters
url
string
Returns
string
setRel()
setRel(
rel
):this
Defined in: packages/lexical-link/src/index.ts:214
Parameters
rel
null
| string
Returns
this
setTarget()
setTarget(
target
):this
Defined in: packages/lexical-link/src/index.ts:204
Parameters
target
null
| string
Returns
this
setTitle()
setTitle(
title
):this
Defined in: packages/lexical-link/src/index.ts:224
Parameters
title
null
| string
Returns
this
setURL()
setURL(
url
):this
Defined in: packages/lexical-link/src/index.ts:194
Parameters
url
string
Returns
this
updateDOM()
updateDOM(
prevNode
,anchor
,config
):boolean
Defined in: packages/lexical-link/src/index.ts:135
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
anchor
LinkHTMLElementType
config
Returns
boolean
Overrides
updateFromJSON()
updateFromJSON(
serializedNode
):this
Defined in: packages/lexical-link/src/index.ts:157
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
<SerializedLinkNode
>
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
updateLinkDOM()
updateLinkDOM(
prevNode
,anchor
,config
):void
Defined in: packages/lexical-link/src/index.ts:112
Parameters
prevNode
null
| LinkNode
anchor
LinkHTMLElementType
config
Returns
void
clone()
static
clone(node
):LinkNode
Defined in: packages/lexical-link/src/index.ts:84
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
Returns
Overrides
getType()
static
getType():string
Defined in: packages/lexical-link/src/index.ts:80
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
importDOM()
static
importDOM():null
|DOMConversionMap
Defined in: packages/lexical-link/src/index.ts:144
Returns
null
| DOMConversionMap
Overrides
ElementNode.importDOM
importJSON()
static
importJSON(serializedNode
):LinkNode
Defined in: packages/lexical-link/src/index.ts:153
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
Returns
Overrides
Type Aliases
AutoLinkAttributes
AutoLinkAttributes =
Partial
<Spread
<LinkAttributes
, {isUnlinked?
:boolean
; }>>
Defined in: packages/lexical-link/src/index.ts:48
LinkAttributes
LinkAttributes =
object
Defined in: packages/lexical-link/src/index.ts:42
Properties
rel?
optional
rel:null
|string
Defined in: packages/lexical-link/src/index.ts:43
target?
optional
target:null
|string
Defined in: packages/lexical-link/src/index.ts:44
title?
optional
title:null
|string
Defined in: packages/lexical-link/src/index.ts:45
SerializedAutoLinkNode
SerializedAutoLinkNode =
Spread
<{isUnlinked
:boolean
; },SerializedLinkNode
>
Defined in: packages/lexical-link/src/index.ts:328
SerializedLinkNode
SerializedLinkNode =
Spread
<{url
:string
; },Spread
<LinkAttributes
,SerializedElementNode
>>
Defined in: packages/lexical-link/src/index.ts:52
Variables
TOGGLE_LINK_COMMAND
const
TOGGLE_LINK_COMMAND:LexicalCommand
<string
|object
&LinkAttributes
|null
>
Defined in: packages/lexical-link/src/index.ts:471
toggleLink()
const
toggleLink: (url
,attributes
) =>void
=$toggleLink
Defined in: packages/lexical-link/src/index.ts:702
Generates or updates a LinkNode. It can also delete a LinkNode if the URL is null, but saves any children and brings them up to the parent node.
Parameters
url
The URL the link directs to.
null
| string
attributes
LinkAttributes
= {}
Optional HTML a tag attributes. { target, rel, title }
Returns
void
Deprecated
renamed to $toggleLink by @lexical/eslint-plugin rules-of-lexical
Functions
$createAutoLinkNode()
$createAutoLinkNode(
url
,attributes?
):AutoLinkNode
Defined in: packages/lexical-link/src/index.ts:453
Takes a URL and creates an AutoLinkNode. AutoLinkNodes are generally automatically generated during typing, which is especially useful when a button to generate a LinkNode is not practical.
Parameters
url
string
= ''
The URL the LinkNode should direct to.
attributes?
Partial
<Spread
<LinkAttributes
, { isUnlinked?
: boolean
; }>>
Optional HTML a tag attributes. { target, rel, title }
Returns
The LinkNode.
$createLinkNode()
$createLinkNode(
url
,attributes?
):LinkNode
Defined in: packages/lexical-link/src/index.ts:310
Takes a URL and creates a LinkNode.
Parameters
url
string
= ''
The URL the LinkNode should direct to.
attributes?
Optional HTML a tag attributes { target, rel, title }
Returns
The LinkNode.
$isAutoLinkNode()
$isAutoLinkNode(
node
):node is AutoLinkNode
Defined in: packages/lexical-link/src/index.ts:465
Determines if node is an AutoLinkNode.
Parameters
node
The node to be checked.
undefined
| null
| LexicalNode
Returns
node is AutoLinkNode
true if node is an AutoLinkNode, false otherwise.
$isLinkNode()
$isLinkNode(
node
):node is LinkNode
Defined in: packages/lexical-link/src/index.ts:322
Determines if node is a LinkNode.
Parameters
node
The node to be checked.
undefined
| null
| LexicalNode
Returns
node is LinkNode
true if node is a LinkNode, false otherwise.
$toggleLink()
$toggleLink(
url
,attributes
):void
Defined in: packages/lexical-link/src/index.ts:541
Generates or updates a LinkNode. It can also delete a LinkNode if the URL is null, but saves any children and brings them up to the parent node.
Parameters
url
The URL the link directs to.
null
| string
attributes
LinkAttributes
= {}
Optional HTML a tag attributes. { target, rel, title }
Returns
void
formatUrl()
formatUrl(
url
):string
Defined in: packages/lexical-link/src/index.ts:723
Formats a URL string by adding appropriate protocol if missing
Parameters
url
string
URL to format
Returns
string
Formatted URL with appropriate protocol