Class

Text (engine/model)

@ckeditor/ckeditor5-engine/src/model/text

class

Model text node. Type of node that contains text data.

Important: see Node to read about restrictions using Text and Node API.

Note: keep in mind that Text instances might indirectly got removed from model tree when model is changed. This happens when model writer is used to change model and the text node is merged with another text node. Then, both text nodes are removed and a new text node is inserted into the model. Because of this behavior, keeping references to Text is not recommended. Instead, consider creating live position placed before the text node.

Filtering

Properties

  • readonly

    data : String

    Returns a text data contained in the node.

  • readonly inherited

    endOffset : Number | null

    Offset at which this node ends in it's parent. It is equal to the sum of this node's start offset and offset size. Equals to null if the node has no parent.

  • readonly inherited

    index : Number | null

    Index of this node in it's parent or null if the node has no parent.

    Accessing this property throws an error if this node's parent element does not contain it. This means that model tree got broken.

  • readonly inherited

    nextSibling : Node | null

    Node's next sibling or null if the node is a last child of it's parent or if the node has no parent.

  • readonly inherited

    offsetSize : Number

    Offset size of this node. Represents how much "offset space" is occupied by the node in it's parent. It is important for position. When node has offsetSize greater than 1, position can be placed between that node start and end. offsetSize greater than 1 is for nodes that represents more than one entity, i.e. text node.

  • readonly inherited

    parent : Element | DocumentFragment | null

    Parent of this node. It could be Element or DocumentFragment. Equals to null if the node has no parent.

  • readonly inherited

    previousSibling : Node | null

    Node's previous sibling or null if the node is a first child of it's parent or if the node has no parent.

  • readonly inherited

    root : Node | DocumentFragment

    The top-most ancestor of the node. If node has no parent it is the root itself. If the node is a part of DocumentFragment, it's root is equal to that DocumentFragment.

  • readonly inherited

    startOffset : Number | null

    Offset at which this node starts in it's parent. It is equal to the sum of offsetSize of all it's previous siblings. Equals to null if node has no parent.

    Accessing this property throws an error if this node's parent element does not contain it. This means that model tree got broken.

  • protected

    _data : String

    Text data contained in this text node.

  • private inherited

    _attrs : Map

    Attributes set on this node.

Methods

  • protected

    constructor( data, [ attrs ] )

    Creates a text node.

    Note: Constructor of this class shouldn't be used directly in the code. Use the createText method instead.

    Parameters

    data : String

    Node's text.

    [ attrs ] : Object

    Node's attributes. See toMap for a list of accepted values.

  • inherited

    getAncestors( options = { [options.includeSelf], [options.parentFirst] } ) → Array

    Returns ancestors array of this node.

    Parameters

    options : Object

    Options object.

    Properties
    [ options.includeSelf ] : Boolean

    When set to true this node will be also included in parent's array.

    Defaults to false

    [ options.parentFirst ] : Boolean

    When set to true, array will be sorted from node's parent to root element, otherwise root element will be the first item in the array.

    Defaults to false

    Returns

    Array

    Array with ancestors.

  • inherited

    getAttribute( key ) → *

    Gets an attribute value for given key or undefined if that attribute is not set on node.

    Parameters

    key : String

    Key of attribute to look for.

    Returns

    *

    Attribute value or undefined.

  • inherited

    getAttributeKeys() → Iterable.<String>

    Returns iterator that iterates over this node's attribute keys.

    Returns

    Iterable.<String>
  • inherited

    getAttributes() → Iterable.<*>

    Returns iterator that iterates over this node's attributes.

    Attributes are returned as arrays containing two items. First one is attribute key and second is attribute value. This format is accepted by native Map object and also can be passed in Node constructor.

    Returns

    Iterable.<*>
  • inherited

    getCommonAncestor( node, options = { [options.includeSelf] } ) → Element | DocumentFragment | null

    Returns a Element or DocumentFragment which is a common ancestor of both nodes.

    Parameters

    node : Node

    The second node.

    options : Object

    Options object.

    Properties
    [ options.includeSelf ] : Boolean

    When set to true both nodes will be considered "ancestors" too. Which means that if e.g. node A is inside B, then their common ancestor will be B.

    Defaults to false

    Returns

    Element | DocumentFragment | null
  • inherited

    getPath() → Array.<Number>

    Gets path to the node. The path is an array containing starting offsets of consecutive ancestors of this node, beginning from root, down to this node's starting offset. The path can be used to create Position instance.

    const abc = new Text( 'abc' );
    const foo = new Text( 'foo' );
    const h1 = new Element( 'h1', null, new Text( 'header' ) );
    const p = new Element( 'p', null, [ abc, foo ] );
    const div = new Element( 'div', null, [ h1, p ] );
    foo.getPath(); // Returns [ 1, 3 ]. `foo` is in `p` which is in `div`. `p` starts at offset 1, while `foo` at 3.
    h1.getPath(); // Returns [ 0 ].
    div.getPath(); // Returns [].
    

    Returns

    Array.<Number>

    The path.

  • inherited

    hasAttribute( key ) → Boolean

    Checks if the node has an attribute with given key.

    Parameters

    key : String

    Key of attribute to check.

    Returns

    Boolean

    true if attribute with given key is set on node, false otherwise.

  • is( type ) → Boolean

    Checks whether this object is of the given.

    text.is( '$text' ); // -> true
    text.is( 'node' ); // -> true
    text.is( 'model:$text' ); // -> true
    text.is( 'model:node' ); // -> true
    
    text.is( 'view:$text' ); // -> false
    text.is( 'documentSelection' ); // -> false
    

    Check the entire list of model objects which implement the is() method.

    Note: Until version 20.0.0 this method wasn't accepting '$text' type. The legacy 'text' type is still accepted for backward compatibility.

    Parameters

    type : String

    Type to check.

    Returns

    Boolean
  • inherited

    isAfter( node ) → Boolean

    Returns whether this node is after given node. false is returned if nodes are in different trees (for example, in different DocumentFragments).

    Parameters

    node : Node

    Node to compare with.

    Returns

    Boolean
  • inherited

    isAttached() → Boolean

    Returns true if the node is in a tree rooted in the document (is a descendant of one of its roots).

    Returns

    Boolean
  • inherited

    isBefore( node ) → Boolean

    Returns whether this node is before given node. false is returned if nodes are in different trees (for example, in different DocumentFragments).

    Parameters

    node : Node

    Node to compare with.

    Returns

    Boolean
  • inherited

    toJSON() → Object

    Converts Node to plain object and returns it.

    Returns

    Object

    Node converted to plain object.

  • protected inherited

    _clearAttributes()

    Removes all attributes from the node.

    Related:

  • protected inherited

    _clone() → Node

    Creates a copy of this node, that is a node with exactly same attributes, and returns it.

    Returns

    Node

    Node with same attributes as this node.

  • protected inherited

    _remove()

    Removes this node from it's parent.

    Related:

  • protected inherited

    _removeAttribute( key ) → Boolean

    Removes an attribute with given key from the node.

    Parameters

    key : String

    Key of attribute to remove.

    Returns

    Boolean

    true if the attribute was set on the element, false otherwise.

    Related:

  • protected inherited

    _setAttribute( key, value )

    Sets attribute on the node. If attribute with the same key already is set, it's value is overwritten.

    Parameters

    key : String

    Key of attribute to set.

    value : *

    Attribute value.

    Related:

  • protected inherited

    _setAttributesTo( [ attrs ] )

    Removes all attributes from the node and sets given attributes.

    Parameters

    [ attrs ] : Object

    Attributes to set. See toMap for a list of accepted values.

    Related:

Static methods

  • static

    fromJSON( json ) → Text

    Creates a Text instance from given plain object (i.e. parsed JSON string).

    Parameters

    json : Object

    Plain object to be converted to Text.

    Returns

    Text

    Text instance created using given plain object.