Report an issue

MoveOperation (engine/model/operation)



Operation to move a range of model items to given target position.



  • baseVersion : Number


    version on which operation can be applied. If you try to apply operation with different base version than the document version the model-document-applyOperation-wrong-version error is thrown.

  • delta : Delta


    Delta which the operation is a part of. This property is set by the delta when the operations is added to it by the addOperation method.

  • howMany : Number

    Offset size of moved range.

  • isDocumentOperation : Boolean

    readonly inherited

    Defines whether operation is executed on attached or detached items.

  • isSticky : Boolean

    Defines whether MoveOperation is sticky. If MoveOperation is sticky, during operational transformation if there will be an operation that inserts some nodes at the position equal to the boundary of this MoveOperation, that operation will get their insertion path updated to the position where this MoveOperation moves the range.

  • sourcePosition : Position

    Position before the first model item to move.

  • targetPosition : Position

    Position at which moved nodes will be inserted.

  • type : String

    readonly inherited

    Operation type.

    Overrides: Operation#type

Static properties

  • className : String

    inherited static

    Name of the operation class used for serialization.


  • constructor( sourcePosition, howMany, targetPosition, baseVersion )

    Creates a move operation.


    sourcePosition : Position

    Position before the first model item to move.

    howMany : Number

    Offset size of moved range. Moved range will start from sourcePosition and end at sourcePosition with offset shifted by howMany.

    targetPosition : Position

    Position at which moved nodes will be inserted.

    baseVersion : Number | null

    Document version on which operation can be applied or null if the operation operates on detached (non-document) tree.

  • clone() → MoveOperation

    Creates and returns an operation that has the same parameters as this operation.



    Clone of this operation.

    Overrides: Operation#clone
  • getMovedRangeStart() → Position

    Returns the start position of the moved range after it got moved. This may be different than targetPosition in some cases, i.e. when a range is moved inside the same parent but targetPosition is after sourcePosition.

     vv              vv
    abcdefg ===> adefbcg
         ^          ^
         targetPos    movedRangeStart
         offset 6    offset 4


  • getReversed() → MoveOperation

  • toJSON() → Object


    Custom toJSON method to solve child-parent circular dependencies.



    Clone of this object with the delta property replaced with string.

  • _execute()

    protected inherited

    Executes the operation - modifications described by the operation properties will be applied to the model tree.

    Overrides: Operation#_execute
  • _validate()

    protected inherited

    Checks whether the operation's parameters are correct and the operation can be correctly executed. Throws an error if operation is not valid.

    Overrides: Operation#_validate

Static methods

  • fromJSON( json, document ) → MoveOperation


    Creates MoveOperation object from deserilized object, i.e. from parsed JSON string.


    json : Object

    Deserialized JSON object.

    document : Document

    Document on which this operation will be applied.