Class

Text (engine/view)

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

class

Tree view text node.

The constructor of this class should not be used directly. To create a new text node instance use the DowncastWriter#createText() method when working on data downcasted from the model or the UpcastWriter#createText() method when working on non-semantic views.

Filtering

Properties

  • readonly

    data : String

    The text content.

  • readonly inherited

    document : Document

    The document instance to which this node belongs.

  • readonly inherited

    index : Number | null

    Index of the node in the parent element 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 view tree got broken.

  • readonly inherited

    nextSibling : Node | null

    Node's next sibling, or null if it is the last child.

  • readonly inherited

    parent : Element | DocumentFragment | null

    Parent element. Null by default. Set by _insertChild.

  • readonly inherited

    previousSibling : Node | null

    Node's previous sibling, or null if it is the first child.

  • readonly inherited

    root : Node | DocumentFragment

    Top-most ancestor of the node. If the node has no parent it is the root itself.

  • protected

    _data : String

    The _data property is controlled by a getter and a setter.

    The getter is required when using the addition assignment operator on protected property:

    const foo = downcastWriter.createText( 'foo' );
    const bar = downcastWriter.createText( 'bar' );
    
    foo._data += bar.data;   // executes: `foo._data = foo._data + bar.data`
    console.log( foo.data ); // prints: 'foobar'
    

    If the protected getter didn't exist, foo._data will return undefined and result of the merge will be invalid.

    The setter sets data and fires the change event.

  • protected

    _textData : String

    The text content.

    Setting the data fires the change event.

Methods

  • protected

    constructor( document, data )

    Creates a tree view text node.

    Parameters

    document : Document

    The document instance to which this text node belongs.

    data : String

    The text's data.

  • 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

    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 a path to the node. The path is an array containing indices of consecutive ancestors of this node, beginning from root, down to this node's index.

    const abc = downcastWriter.createText( 'abc' );
    const foo = downcastWriter.createText( 'foo' );
    const h1 = downcastWriter.createElement( 'h1', null, downcastWriter.createText( 'header' ) );
    const p = downcastWriter.createElement( 'p', null, [ abc, foo ] );
    const div = downcastWriter.createElement( '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.

  • is( type ) → Boolean

    Checks whether this object is of the given type.

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

    Check the entire list of view 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
  • isSimilar( otherNode ) → Boolean

    Checks if this text node is similar to other text node. Both nodes should have the same data to be considered as similar.

    Parameters

    otherNode : Text

    Node to check if it is same as this node.

    Returns

    Boolean
  • inherited

    toJSON() → Object

    Custom toJSON method to solve child-parent circular dependencies.

    Returns

    Object

    Clone of this object with the parent property removed.

  • protected

    _clone() → Text

    Clones this node.

    Returns

    Text

    Text node that is a clone of this node.

  • protected inherited

    _fireChange( type, node )

    Parameters

    type : ChangeType

    Type of the change.

    node : Node

    Changed node.

    Fires

  • protected inherited

    _remove()

    Removes node from parent.

Events

  • inherited

    change( eventInfo )

    Parameters

    eventInfo : EventInfo

    An object containing information about the fired event.

  • inherited

    change:attributes( eventInfo, changedNode )

    Fired when list of elements attributes changes.

    Change event is bubbled – it is fired on all ancestors.

    Parameters

    eventInfo : EventInfo

    An object containing information about the fired event.

    changedNode : Node
  • inherited

    change:children( eventInfo, changedNode )

    Fired when list of elements children changes.

    Change event is bubbled – it is fired on all ancestors.

    Parameters

    eventInfo : EventInfo

    An object containing information about the fired event.

    changedNode : Node
  • inherited

    change:text( eventInfo, changedNode )

    Fired when text nodes data changes.

    Change event is bubbled – it is fired on all ancestors.

    Parameters

    eventInfo : EventInfo

    An object containing information about the fired event.

    changedNode : Node