Trilium Frontend API
    Preparing search index...

    Class ViewDocumentFragment

    Document fragment.

    To create a new document fragment instance use the module:engine/view/upcastwriter~ViewUpcastWriter#createDocumentFragment ViewUpcastWriter#createDocumentFragment() method.

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    Properties

    document: ViewDocument

    The document to which this document fragment belongs.

    Accessors

    • get childCount(): number

      Number of child nodes in this document fragment.

      Returns number

    • get getFillerOffset(): undefined

      Artificial element getFillerOffset. Returns undefined. Added for compatibility reasons.

      Returns undefined

    • get isEmpty(): boolean

      Is true if there are no nodes inside this document fragment, false otherwise.

      Returns boolean

    • get name(): undefined

      Artificial element name. Returns undefined. Added for compatibility reasons.

      Returns undefined

    • get parent(): null

      Artificial parent of DocumentFragment. Returns null. Added for compatibility reasons.

      Returns null

    • get root(): this

      Artificial root of DocumentFragment. Returns itself. Added for compatibility reasons.

      Returns this

    Methods

    • Internal

      module:engine/view/documentfragment~ViewDocumentFragment#_insertChild Insert a child node or a list of child nodes at the end and sets the parent of these nodes to this fragment.

      Parameters

      • items: string | ViewItem | Iterable<(string | ViewItem), any, any>

        Items to be inserted.

      Returns number

      Number of appended nodes.

    • Internal

      Inserts a child node or a list of child nodes on the given index and sets the parent of these nodes to this fragment.

      Parameters

      • index: number

        Position where nodes should be inserted.

      • items: string | ViewItem | Iterable<(string | ViewItem), any, any>

        Items to be inserted.

      Returns number

      Number of inserted nodes.

    • Internal

      Removes number of child nodes starting at the given index and set the parent of these nodes to null.

      Parameters

      • index: number

        Number of the first node to remove.

      • OptionalhowMany: number

        Number of nodes to remove.

      Returns ViewNode[]

      The array of removed nodes.

    • Internal

      Removes the custom property stored under the given key.

      Parameters

      • key: string | symbol

      Returns boolean

      Returns true if property was removed.

      module:engine/view/downcastwriter~ViewDowncastWriter#removeCustomProperty

    • Internal

      Sets a custom property. They can be used to add special data to elements.

      Parameters

      • key: string | symbol
      • value: unknown

      Returns void

      module:engine/view/downcastwriter~ViewDowncastWriter#setCustomProperty

    • Iterable interface.

      Iterates over nodes added to this document fragment.

      Returns Iterator<ViewNode>

    • Delegates selected events to another module:utils/emittermixin~Emitter. For instance:

      emitterA.delegate( 'eventX' ).to( emitterB );
      emitterA.delegate( 'eventX', 'eventY' ).to( emitterC );

      then eventX is delegated (fired by) emitterB and emitterC along with data:

      emitterA.fire( 'eventX', data );
      

      and eventY is delegated (fired by) emitterC along with data:

      emitterA.fire( 'eventY', data );
      

      Parameters

      • ...events: string[]

        Event names that will be delegated to another emitter.

      Returns EmitterMixinDelegateChain

    • Fires an event, executing all callbacks registered for it.

      The first parameter passed to callbacks is an module:utils/eventinfo~EventInfo object, followed by the optional args provided in the fire() method call.

      Type Parameters

      • TEvent extends BaseEvent

        The type describing the event. See module:utils/emittermixin~BaseEvent.

      Parameters

      • eventOrInfo: GetNameOrEventInfo<TEvent>

        The name of the event or EventInfo object if event is delegated.

      • ...args: TEvent["args"]

        Additional arguments to be passed to the callbacks.

      Returns GetEventInfo<TEvent>["return"]

      By default the method returns undefined. However, the return value can be changed by listeners through modification of the module:utils/eventinfo~EventInfo#return evt.return's property (the event info is the first param of every callback).

    • Gets child at the given index.

      Parameters

      • index: number

        Index of child.

      Returns ViewNode

      Child node.

    • Gets index of the given child node. Returns -1 if child node is not found.

      Parameters

      Returns number

      Index of the child node.

    • Returns an iterator which iterates over this document fragment's custom properties. Iterator provides [ key, value ] pairs for each stored property.

      Returns Iterable<[string | symbol, unknown]>

    • Returns the custom property value for the given key.

      Parameters

      • key: string | symbol

      Returns unknown

    • Checks whether this object is of type module:engine/view/node~ViewNode or its subclass.

      This method is useful when processing view objects that are of unknown type. For example, a function may return a module:engine/view/documentfragment~ViewDocumentFragment or a module:engine/view/node~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

      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

      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

      Parameters

      • type: "node" | "view:node"

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

      NODE

    • Checks whether this object is of type module:engine/view/element~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

      Assuming that the object being checked is an element, you can also check its module:engine/view/element~ViewElement#name name:

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

      Parameters

      • type: "element" | "view:element"

      Returns this is
          | ViewElement
          | ViewRootEditableElement
          | ViewAttributeElement
          | ViewContainerElement
          | ViewEditableElement
          | ViewEmptyElement
          | ViewRawElement
          | ViewUIElement

      ELEMENT

    • Checks whether this object is of type module:engine/view/attributeelement~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

      Assuming that the object being checked is an attribute element, you can also check its module:engine/view/attributeelement~ViewAttributeElement#name name:

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

      Parameters

      • type: "attributeElement" | "view:attributeElement"

      Returns this is ViewAttributeElement

      ATTRIBUTE_ELEMENT

    • Checks whether this object is of type module:engine/view/containerelement~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

      Assuming that the object being checked is a container element, you can also check its module:engine/view/containerelement~ViewContainerElement#name 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

      Parameters

      • type: "containerElement" | "view:containerElement"

      Returns this is ViewRootEditableElement | ViewContainerElement | ViewEditableElement

      CONTAINER_ELEMENT

    • Checks whether this object is of type module:engine/view/editableelement~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

      Assuming that the object being checked is an editbale element, you can also check its module:engine/view/editableelement~ViewEditableElement#name name:

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

      Parameters

      • type: "editableElement" | "view:editableElement"

      Returns this is ViewRootEditableElement | ViewEditableElement

      EDITABLE_ELEMENT

    • Checks whether this object is of type module:engine/view/emptyelement~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

      Assuming that the object being checked is an empty element, you can also check its module:engine/view/emptyelement~ViewEmptyElement#name name:

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

      Parameters

      • type: "emptyElement" | "view:emptyElement"

      Returns this is ViewEmptyElement

      EMPTY_ELEMENT

    • Checks whether this object is of type module:engine/view/rawelement~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

      Assuming that the object being checked is a raw element, you can also check its module:engine/view/rawelement~ViewRawElement#name name:

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

      Parameters

      • type: "rawElement" | "view:rawElement"

      Returns this is ViewRawElement

      RAW_ELEMENT

    • Checks whether this object is of type module:engine/view/rooteditableelement~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

      Assuming that the object being checked is a root editable element, you can also check its module:engine/view/rooteditableelement~ViewRootEditableElement#name 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

      Parameters

      • type: "rootElement" | "view:rootElement"

      Returns this is ViewRootEditableElement

      ROOT_ELEMENT

    • Checks whether this object is of type module:engine/view/uielement~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

      Assuming that the object being checked is an ui element, you can also check its module:engine/view/uielement~ViewUIElement#name 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

      Parameters

      • type: "uiElement" | "view:uiElement"

      Returns this is ViewUIElement

      UI_ELEMENT

    • Checks whether this object is of type module:engine/view/text~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

      Parameters

      • type: "$text" | "view:$text"

      Returns this is ViewText

      TEXT

    • hecks whether this object is of type module:engine/view/documentfragment~ViewDocumentFragment.

      docFrag.is( 'documentFragment' ); // -> true
      docFrag.is( 'view:documentFragment' ); // -> true

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

      Parameters

      • type: "documentFragment" | "view:documentFragment"

      Returns this is ViewDocumentFragment

      DOCUMENT_FRAGMENT

    • Checks whether this object is of type module:engine/view/textproxy~ViewTextProxy.

      textProxy.is( '$textProxy' ); // -> true
      textProxy.is( 'view:$textProxy' ); // -> true

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

      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

      TEXT_PROXY

    • Checks whether this object is of type module:engine/view/position~ViewPosition.

      position.is( 'position' ); // -> true
      position.is( 'view:position' ); // -> true

      position.is( 'model:position' ); // -> false
      position.is( 'element' ); // -> false
      position.is( 'range' ); // -> false

      Parameters

      • type: "position" | "view:position"

      Returns this is ViewPosition

      POSITION

    • Checks whether this object is of type module:engine/view/range~ViewRange.

      range.is( 'range' ); // -> true
      range.is( 'view:range' ); // -> true

      range.is( 'model:range' ); // -> false
      range.is( 'element' ); // -> false
      range.is( 'selection' ); // -> false

      Parameters

      • type: "range" | "view:range"

      Returns this is ViewRange

      RANGE

    • Checks whether this object is of type module:engine/view/selection~ViewSelection or module:engine/view/documentselection~ViewDocumentSelection.

      selection.is( 'selection' ); // -> true
      selection.is( 'view:selection' ); // -> true

      selection.is( 'model:selection' ); // -> false
      selection.is( 'element' ); // -> false
      selection.is( 'range' ); // -> false

      Parameters

      • type: "selection" | "view:selection"

      Returns this is ViewDocumentSelection | ViewSelection

      SELECTION

    • Checks whether this object is of type module:engine/view/documentselection~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

      Parameters

      • type: "documentSelection" | "view:documentSelection"

      Returns this is ViewDocumentSelection

      DOCUMENT_SELECTION

    • Checks whether the object is of type module:engine/view/element~ViewElement or its subclass and has the specified name.

      Type Parameters

      • N extends string

      Parameters

      • type: "element" | "view:element"
      • name: N

      Returns this is (
          | ViewElement
          | ViewRootEditableElement
          | ViewAttributeElement
          | ViewContainerElement
          | ViewEditableElement
          | ViewEmptyElement
          | ViewRawElement
          | ViewUIElement
      ) & { name: N }

      ELEMENT_NAME

    • Checks whether the object is of type module:engine/view/attributeelement~ViewAttributeElement and has the specified name.

      Type Parameters

      • N extends string

      Parameters

      • type: "attributeElement" | "view:attributeElement"
      • name: N

      Returns this is ViewAttributeElement & { name: N }

      ATTRIBUTE_ELEMENT_NAME

    • Checks whether the object is of type module:engine/view/containerelement~ViewContainerElement or its subclass and has the specified name.

      Type Parameters

      • N extends string

      Parameters

      • type: "containerElement" | "view:containerElement"
      • name: N

      Returns this is (ViewRootEditableElement | ViewContainerElement | ViewEditableElement) & {
          name: N;
      }

      CONTAINER_ELEMENT_NAME

    • Checks whether the object is of type module:engine/view/editableelement~ViewEditableElement or its subclass and has the specified name.

      Type Parameters

      • N extends string

      Parameters

      • type: "editableElement" | "view:editableElement"
      • name: N

      Returns this is (ViewRootEditableElement | ViewEditableElement) & { name: N }

      EDITABLE_ELEMENT_NAME

    • Checks whether the object is of type module:engine/view/emptyelement~ViewEmptyElement has the specified name.

      Type Parameters

      • N extends string

      Parameters

      • type: "emptyElement" | "view:emptyElement"
      • name: N

      Returns this is ViewEmptyElement & { name: N }

      EMPTY_ELEMENT_NAME

    • Checks whether the object is of type module:engine/view/rawelement~ViewRawElement and has the specified name.

      Type Parameters

      • N extends string

      Parameters

      • type: "rawElement" | "view:rawElement"
      • name: N

      Returns this is ViewRawElement & { name: N }

      RAW_ELEMENT_NAME

    • Checks whether the object is of type module:engine/view/rooteditableelement~ViewRootEditableElement and has the specified name.

      Type Parameters

      • N extends string

      Parameters

      • type: "rootElement" | "view:rootElement"
      • name: N

      Returns this is ViewRootEditableElement & { name: N }

      ROOT_ELEMENT_NAME

    • Checks whether the object is of type module:engine/view/uielement~ViewUIElement and has the specified name.

      Type Parameters

      • N extends string

      Parameters

      • type: "uiElement" | "view:uiElement"
      • name: N

      Returns this is ViewUIElement & { name: N }

      UI_ELEMENT_NAME

    • Registers a callback function to be executed when an event is fired in a specific (emitter) object.

      Events can be grouped in namespaces using :. When namespaced event is fired, it additionally fires all callbacks for that namespace.

      // myEmitter.on( ... ) is a shorthand for myEmitter.listenTo( myEmitter, ... ).
      myEmitter.on( 'myGroup', genericCallback );
      myEmitter.on( 'myGroup:myEvent', specificCallback );

      // genericCallback is fired.
      myEmitter.fire( 'myGroup' );
      // both genericCallback and specificCallback are fired.
      myEmitter.fire( 'myGroup:myEvent' );
      // genericCallback is fired even though there are no callbacks for "foo".
      myEmitter.fire( 'myGroup:foo' );

      An event callback can module:utils/eventinfo~EventInfo#stop stop the event and set the module:utils/eventinfo~EventInfo#return return value of the #fire method.

      Type Parameters

      • TEvent extends BaseEvent

        The type describing the event. See module:utils/emittermixin~BaseEvent.

      Parameters

      Returns void

      BASE_EMITTER

    • Stops executing the callback on the given event. Shorthand for #stopListening this.stopListening( this, event, callback ).

      Parameters

      • event: string

        The name of the event.

      • callback: Function

        The function to stop being called.

      Returns void

    • Registers a callback function to be executed when an event is fired.

      Shorthand for #listenTo this.listenTo( this, event, callback, options ) (it makes the emitter listen on itself).

      Type Parameters

      • TEvent extends BaseEvent

        The type descibing the event. See module:utils/emittermixin~BaseEvent.

      Parameters

      Returns void

    • Registers a callback function to be executed on the next time the event is fired only. This is similar to calling #on followed by #off in the callback.

      Type Parameters

      • TEvent extends BaseEvent

        The type descibing the event. See module:utils/emittermixin~BaseEvent.

      Parameters

      Returns void

    • Stops delegating events. It can be used at different levels:

      • To stop delegating all events.
      • To stop delegating a specific event to all emitters.
      • To stop delegating a specific event to a specific emitter.

      Parameters

      • Optionalevent: string

        The name of the event to stop delegating. If omitted, stops it all delegations.

      • Optionalemitter: Emitter

        (requires event) The object to stop delegating a particular event to. If omitted, stops delegation of event to all emitters.

      Returns void

    • Stops listening for events. It can be used at different levels:

      • To stop listening to a specific callback.
      • To stop listening to a specific event.
      • To stop listening to all events fired by a specific object.
      • To stop listening to all events fired by all objects.

      Parameters

      • Optionalemitter: Emitter

        The object to stop listening to. If omitted, stops it for all objects.

      • Optionalevent: string

        (Requires the emitter) The name of the event to stop listening to. If omitted, stops it for all events from emitter.

      • Optionalcallback: Function

        (Requires the event) The function to be removed from the call list for the given event.

      Returns void

      BASE_STOP

    • Converts ViewDocumentFragment instance to plain object and returns it. Takes care of converting all of this document fragment's children.

      Returns unknown

      ViewDocumentFragment instance converted to plain object.