Sign up (with export icon)

ViewTextProxy

Api-class iconclass

ViewTextProxy is a wrapper for substring of ViewText. Instance of this class is created by ViewTreeWalker when only a part of ViewText needs to be returned.

ViewTextProxy has an API similar to Text and allows to do most of the common tasks performed on view nodes.

Note: Some ViewTextProxy instances may represent whole text node, not just a part of it. See isPartial.

Note: ViewTextProxy is a readonly interface.

Note: ViewTextProxy instances are created on the fly basing on the current state of parent ViewText. Because of this it is highly unrecommended to store references to `TextProxy instances because they might get invalidated due to operations on Document. Also ViewTextProxy is not a ViewNode so it cannot be inserted as a child of ViewElement.

ViewTextProxy instances are created by view tree walker. You should not need to create an instance of this class by your own.

Properties

Methods

  • Chevron-right icon

    constructor( textNode, offsetInText, length )
    internal

    Creates a text proxy.

    Parameters

    textNode : ViewText

    Text node which part is represented by this text proxy.

    offsetInText : number

    Offset in text node from which the text proxy starts.

    length : number

    Text proxy length, that is how many text node's characters, starting from offsetInText it represents.

  • Chevron-right icon

    getAncestors( options = { [options.includeSelf], [options.parentFirst] } ) → Array<ViewText | ViewElement | ViewDocumentFragment>

    Returns ancestors array of this text proxy.

    Parameters

    options : object

    Options object.

    Properties
    [ options.includeSelf ] : boolean

    When set to true, textNode will be also included in parent's array.

    [ options.parentFirst ] : boolean

    When set to true, array will be sorted from text proxy parent to root element, otherwise root element will be the first item in the array.

    Defaults to {}

    Returns

    Array<ViewText | ViewElement | ViewDocumentFragment>

    Array with ancestors.

  • Checks whether this object is of type ViewElement or its subclass.

    element.is( 'element' ); // -> true
    element.is( 'node' ); // -> true
    element.is( 'view:element' ); // -> true
    element.is( 'view:node' ); // -> true
    
    element.is( 'model:element' ); // -> false
    element.is( 'documentSelection' ); // -> false
    
    Copy code

    Assuming that the object being checked is an element, you can also check its name:

    element.is( 'element', 'img' ); // -> true if this is an <img> element
    text.is( 'element', 'img' ); -> false
    
    Copy code

    Parameters

    type : 'element' | 'view:element'

    Returns

    this is ViewElement | ViewAttributeElement | ViewContainerElement | ViewEditableElement | ViewEmptyElement | ViewRawElement | ViewRootEditableElement | ViewUIElement
  • Chevron-right icon

    is( type ) → this is ViewAttributeElement
    inherited

    Checks whether this object is of type ViewAttributeElement.

    attributeElement.is( 'attributeElement' ); // -> true
    attributeElement.is( 'element' ); // -> true
    attributeElement.is( 'node' ); // -> true
    attributeElement.is( 'view:attributeElement' ); // -> true
    attributeElement.is( 'view:element' ); // -> true
    attributeElement.is( 'view:node' ); // -> true
    
    attributeElement.is( 'model:element' ); // -> false
    attributeElement.is( 'documentFragment' ); // -> false
    
    Copy code

    Assuming that the object being checked is an attribute element, you can also check its name:

    attributeElement.is( 'element', 'b' ); // -> true if this is a bold element
    attributeElement.is( 'attributeElement', 'b' ); // -> same as above
    text.is( 'element', 'b' ); -> false
    
    Copy code

    Parameters

    type : 'attributeElement' | 'view:attributeElement'

    Returns

    this is ViewAttributeElement
  • Chevron-right icon

    is( type ) → this is ViewEditableElement | ViewRootEditableElement
    inherited

    Checks whether this object is of type ViewEditableElement or its subclass.

    editableElement.is( 'editableElement' ); // -> true
    editableElement.is( 'element' ); // -> true
    editableElement.is( 'node' ); // -> true
    editableElement.is( 'view:editableElement' ); // -> true
    editableElement.is( 'view:element' ); // -> true
    editableElement.is( 'view:node' ); // -> true
    
    editableElement.is( 'model:element' ); // -> false
    editableElement.is( 'documentFragment' ); // -> false
    
    Copy code

    Assuming that the object being checked is an editbale element, you can also check its name:

    editableElement.is( 'element', 'div' ); // -> true if this is a div element
    editableElement.is( 'editableElement', 'div' ); // -> same as above
    text.is( 'element', 'div' ); -> false
    
    Copy code

    Parameters

    type : 'editableElement' | 'view:editableElement'

    Returns

    this is ViewEditableElement | ViewRootEditableElement
  • Chevron-right icon

    is( type ) → this is ViewRawElement
    inherited

    Checks whether this object is of type ViewRawElement.

    rawElement.is( 'rawElement' ); // -> true
    rawElement.is( 'element' ); // -> true
    rawElement.is( 'node' ); // -> true
    rawElement.is( 'view:rawElement' ); // -> true
    rawElement.is( 'view:element' ); // -> true
    rawElement.is( 'view:node' ); // -> true
    
    rawElement.is( 'model:element' ); // -> false
    rawElement.is( 'documentFragment' ); // -> false
    
    Copy code

    Assuming that the object being checked is a raw element, you can also check its name:

    rawElement.is( 'img' ); // -> true if this is an img element
    rawElement.is( 'rawElement', 'img' ); // -> same as above
    text.is( 'img' ); -> false
    
    Copy code

    Parameters

    type : 'rawElement' | 'view:rawElement'

    Returns

    this is ViewRawElement
  • Chevron-right icon

    is( type ) → this is ViewUIElement
    inherited

    Checks whether this object is of type ViewUIElement.

    uiElement.is( 'uiElement' ); // -> true
    uiElement.is( 'element' ); // -> true
    uiElement.is( 'node' ); // -> true
    uiElement.is( 'view:uiElement' ); // -> true
    uiElement.is( 'view:element' ); // -> true
    uiElement.is( 'view:node' ); // -> true
    
    uiElement.is( 'model:element' ); // -> false
    uiElement.is( 'documentFragment' ); // -> false
    
    Copy code

    Assuming that the object being checked is an ui element, you can also check its name:

    uiElement.is( 'element', 'span' ); // -> true if this is a span ui element
    uiElement.is( 'uiElement', 'span' ); // -> same as above
    text.is( 'element', 'span' ); -> false
    
    Copy code

    Parameters

    type : 'uiElement' | 'view:uiElement'

    Returns

    this is ViewUIElement
  • Chevron-right icon

    is( type ) → this is ViewDocumentFragment
    inherited

    hecks whether this object is of type ViewDocumentFragment.

    docFrag.is( 'documentFragment' ); // -> true
    docFrag.is( 'view:documentFragment' ); // -> true
    
    docFrag.is( 'model:documentFragment' ); // -> false
    docFrag.is( 'element' ); // -> false
    docFrag.is( 'node' ); // -> false
    
    Copy code

    Parameters

    type : 'documentFragment' | 'view:documentFragment'

    Returns

    this is ViewDocumentFragment
  • Chevron-right icon

    is( type ) → this is ViewPosition
    inherited

    Checks whether this object is of type ViewPosition.

    position.is( 'position' ); // -> true
    position.is( 'view:position' ); // -> true
    
    position.is( 'model:position' ); // -> false
    position.is( 'element' ); // -> false
    position.is( 'range' ); // -> false
    
    Copy code

    Parameters

    type : 'position' | 'view:position'

    Returns

    this is ViewPosition
  • Chevron-right icon

    is( type ) → this is ViewSelection | ViewDocumentSelection
    inherited

    Checks whether this object is of type ViewSelection or ViewDocumentSelection.

    selection.is( 'selection' ); // -> true
    selection.is( 'view:selection' ); // -> true
    
    selection.is( 'model:selection' ); // -> false
    selection.is( 'element' ); // -> false
    selection.is( 'range' ); // -> false
    
    Copy code

    Parameters

    type : 'selection' | 'view:selection'

    Returns

    this is ViewSelection | ViewDocumentSelection
  • Chevron-right icon

    is( type, name ) → boolean
    inherited

    Checks whether the object is of type ViewElement or its subclass and has the specified name.

    Type parameters

    N : extends string

    Parameters

    type : 'element' | 'view:element'
    name : N

    Returns

    boolean
  • Chevron-right icon

    is( type, name ) → boolean
    inherited

    Checks whether the object is of type ViewContainerElement or its subclass and has the specified name.

    Type parameters

    N : extends string

    Parameters

    type : 'containerElement' | 'view:containerElement'
    name : N

    Returns

    boolean
  • Chevron-right icon

    is( type, name ) → boolean
    inherited

    Checks whether the object is of type ViewEmptyElement has the specified name.

    Type parameters

    N : extends string

    Parameters

    type : 'emptyElement' | 'view:emptyElement'
    name : N

    Returns

    boolean
  • Chevron-right icon

    is( type, name ) → boolean
    inherited

    Checks whether the object is of type ViewRootEditableElement and has the specified name.

    Type parameters

    N : extends string

    Parameters

    type : 'rootElement' | 'view:rootElement'
    name : N

    Returns

    boolean
  • Chevron-right icon

    is( type, name ) → boolean
    inherited

    Checks whether the object is of type ViewUIElement and has the specified name.

    Type parameters

    N : extends string

    Parameters

    type : 'uiElement' | 'view:uiElement'
    name : N

    Returns

    boolean
  • Chevron-right icon

    is( type, name ) → boolean
    inherited

    Checks whether the object is of type ViewRawElement and has the specified name.

    Type parameters

    N : extends string

    Parameters

    type : 'rawElement' | 'view:rawElement'
    name : N

    Returns

    boolean
  • Chevron-right icon

    is( type, name ) → boolean
    inherited

    Checks whether the object is of type ViewEditableElement or its subclass and has the specified name.

    Type parameters

    N : extends string

    Parameters

    type : 'editableElement' | 'view:editableElement'
    name : N

    Returns

    boolean
  • Chevron-right icon

    is( type, name ) → boolean
    inherited

    Checks whether the object is of type ViewAttributeElement and has the specified name.

    Type parameters

    N : extends string

    Parameters

    type : 'attributeElement' | 'view:attributeElement'
    name : N

    Returns

    boolean
  • Chevron-right icon

    is( type ) → this is ViewDocumentSelection
    inherited

    Checks whether this object is of type ViewDocumentSelection.

    `docSelection.is( 'selection' ); // -> true
    docSelection.is( 'documentSelection' ); // -> true
    docSelection.is( 'view:selection' ); // -> true
    docSelection.is( 'view:documentSelection' ); // -> true
    
    docSelection.is( 'model:documentSelection' ); // -> false
    docSelection.is( 'element' ); // -> false
    docSelection.is( 'node' ); // -> false
    
    Copy code

    Parameters

    type : 'documentSelection' | 'view:documentSelection'

    Returns

    this is ViewDocumentSelection
  • Chevron-right icon

    is( type ) → this is ViewRange
    inherited

    Checks whether this object is of type ViewRange.

    range.is( 'range' ); // -> true
    range.is( 'view:range' ); // -> true
    
    range.is( 'model:range' ); // -> false
    range.is( 'element' ); // -> false
    range.is( 'selection' ); // -> false
    
    Copy code

    Parameters

    type : 'range' | 'view:range'

    Returns

    this is ViewRange
  • Chevron-right icon

    is( type ) → this is ViewTextProxy
    inherited

    Checks whether this object is of type ViewTextProxy.

    textProxy.is( '$textProxy' ); // -> true
    textProxy.is( 'view:$textProxy' ); // -> true
    
    textProxy.is( 'model:$textProxy' ); // -> false
    textProxy.is( 'element' ); // -> false
    textProxy.is( 'range' ); // -> false
    
    Copy code

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

    Parameters

    type : '$textProxy' | 'view:$textProxy'

    Returns

    this is ViewTextProxy
  • Chevron-right icon

    is( type ) → this is ViewText
    inherited

    Checks whether this object is of type ViewText.

    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
    
    Copy code

    Parameters

    type : '$text' | 'view:$text'

    Returns

    this is ViewText
  • Chevron-right icon

    is( type ) → this is ViewRootEditableElement
    inherited

    Checks whether this object is of type ViewRootEditableElement.

    rootEditableElement.is( 'rootElement' ); // -> true
    rootEditableElement.is( 'editableElement' ); // -> true
    rootEditableElement.is( 'element' ); // -> true
    rootEditableElement.is( 'node' ); // -> true
    rootEditableElement.is( 'view:editableElement' ); // -> true
    rootEditableElement.is( 'view:element' ); // -> true
    rootEditableElement.is( 'view:node' ); // -> true
    
    rootEditableElement.is( 'model:element' ); // -> false
    rootEditableElement.is( 'documentFragment' ); // -> false
    
    Copy code

    Assuming that the object being checked is a root editable element, you can also check its name:

    rootEditableElement.is( 'element', 'div' ); // -> true if this is a div root editable element
    rootEditableElement.is( 'rootElement', 'div' ); // -> same as above
    text.is( 'element', 'div' ); -> false
    
    Copy code

    Parameters

    type : 'rootElement' | 'view:rootElement'

    Returns

    this is ViewRootEditableElement
  • Chevron-right icon

    is( type ) → this is ViewEmptyElement
    inherited

    Checks whether this object is of type ViewEmptyElement.

    emptyElement.is( 'emptyElement' ); // -> true
    emptyElement.is( 'element' ); // -> true
    emptyElement.is( 'node' ); // -> true
    emptyElement.is( 'view:emptyElement' ); // -> true
    emptyElement.is( 'view:element' ); // -> true
    emptyElement.is( 'view:node' ); // -> true
    
    emptyElement.is( 'model:element' ); // -> false
    emptyElement.is( 'documentFragment' ); // -> false
    
    Copy code

    Assuming that the object being checked is an empty element, you can also check its name:

    emptyElement.is( 'element', 'img' ); // -> true if this is a img element
    emptyElement.is( 'emptyElement', 'img' ); // -> same as above
    text.is( 'element', 'img' ); -> false
    
    Copy code

    Parameters

    type : 'emptyElement' | 'view:emptyElement'

    Returns

    this is ViewEmptyElement
  • Chevron-right icon

    Checks whether this object is of type ViewContainerElement or its subclass.

    containerElement.is( 'containerElement' ); // -> true
    containerElement.is( 'element' ); // -> true
    containerElement.is( 'node' ); // -> true
    containerElement.is( 'view:containerElement' ); // -> true
    containerElement.is( 'view:element' ); // -> true
    containerElement.is( 'view:node' ); // -> true
    
    containerElement.is( 'model:element' ); // -> false
    containerElement.is( 'documentFragment' ); // -> false
    
    Copy code

    Assuming that the object being checked is a container element, you can also check its name:

    containerElement.is( 'element', 'div' ); // -> true if this is a div container element
    containerElement.is( 'contaienrElement', 'div' ); // -> same as above
    text.is( 'element', 'div' ); -> false
    
    Copy code

    Parameters

    type : 'containerElement' | 'view:containerElement'

    Returns

    this is ViewContainerElement | ViewEditableElement | ViewRootEditableElement
  • Checks whether this object is of type ViewNode or its subclass.

    This method is useful when processing view objects that are of unknown type. For example, a function may return a ViewDocumentFragment or a ViewNode that can be either a text node or an element. This method can be used to check what kind of object is returned.

    someObject.is( 'element' ); // -> true if this is an element
    someObject.is( 'node' ); // -> true if this is a node (a text node or an element)
    someObject.is( 'documentFragment' ); // -> true if this is a document fragment
    
    Copy code

    Since this method is also available on a range of model objects, you can prefix the type of the object with model: or view: to check, for example, if this is the model's or view's element:

    viewElement.is( 'view:element' ); // -> true
    viewElement.is( 'model:element' ); // -> false
    
    Copy code

    By using this method it is also possible to check a name of an element:

    imgElement.is( 'element', 'img' ); // -> true
    imgElement.is( 'view:element', 'img' ); // -> same as above, but more precise
    
    Copy code

    Parameters

    type : 'node' | 'view:node'

    Returns

    this is ViewText | ViewNode | ViewElement | ViewAttributeElement | ViewContainerElement | ViewEditableElement | ViewEmptyElement | ViewRawElement | ViewRootEditableElement | ViewUIElement