|
|
@@ -943,11 +943,11 @@ setTransformation( AttributeOperation, SplitOperation, ( a, b ) => {
|
|
|
const secondPart = a.clone();
|
|
|
|
|
|
secondPart.range = new Range(
|
|
|
- Position._createAt( b.moveTargetPosition ),
|
|
|
+ b.moveTargetPosition.clone(),
|
|
|
a.range.end._getCombined( b.splitPosition, b.moveTargetPosition )
|
|
|
);
|
|
|
|
|
|
- a.range.end = Position._createAt( b.splitPosition );
|
|
|
+ a.range.end = b.splitPosition.clone();
|
|
|
a.range.end.stickiness = 'toPrevious';
|
|
|
|
|
|
return [ a, secondPart ];
|
|
|
@@ -1348,7 +1348,7 @@ setTransformation( MergeOperation, SplitOperation, ( a, b, context ) => {
|
|
|
// So now we are fixing situation which was skipped in `MergeOperation` x `MergeOperation` case.
|
|
|
//
|
|
|
if ( a.sourcePosition.isEqual( b.splitPosition ) && ( context.abRelation == 'mergeSameElement' || a.sourcePosition.offset > 0 ) ) {
|
|
|
- a.sourcePosition = Position._createAt( b.moveTargetPosition );
|
|
|
+ a.sourcePosition = b.moveTargetPosition.clone();
|
|
|
a.targetPosition = a.targetPosition._getTransformedBySplitOperation( b );
|
|
|
|
|
|
return [ a ];
|
|
|
@@ -1574,7 +1574,7 @@ setTransformation( MoveOperation, MoveOperation, ( a, b, context ) => {
|
|
|
} );
|
|
|
|
|
|
setTransformation( MoveOperation, SplitOperation, ( a, b, context ) => {
|
|
|
- let newTargetPosition = Position._createAt( a.targetPosition );
|
|
|
+ let newTargetPosition = a.targetPosition.clone();
|
|
|
|
|
|
// Do not transform if target position is same as split insertion position and this split comes from undo.
|
|
|
// This should be done on relations but it is too much work for now as it would require relations working in collaboration.
|
|
|
@@ -1703,8 +1703,8 @@ setTransformation( MoveOperation, MergeOperation, ( a, b, context ) => {
|
|
|
if ( !context.aWasUndone ) {
|
|
|
const results = [];
|
|
|
|
|
|
- let gyMoveSource = Position._createAt( b.graveyardPosition );
|
|
|
- let splitNodesMoveSource = Position._createAt( b.targetPosition );
|
|
|
+ let gyMoveSource = b.graveyardPosition.clone();
|
|
|
+ let splitNodesMoveSource = b.targetPosition.clone();
|
|
|
|
|
|
if ( a.howMany > 1 ) {
|
|
|
results.push( new MoveOperation( a.sourcePosition, a.howMany - 1, a.targetPosition, 0 ) );
|
|
|
@@ -1737,7 +1737,7 @@ setTransformation( MoveOperation, MergeOperation, ( a, b, context ) => {
|
|
|
if ( !context.bWasUndone ) {
|
|
|
return [ new NoOperation( 0 ) ];
|
|
|
} else {
|
|
|
- a.sourcePosition = Position._createAt( b.graveyardPosition );
|
|
|
+ a.sourcePosition = b.graveyardPosition.clone();
|
|
|
a.targetPosition = a.targetPosition._getTransformedByMergeOperation( b );
|
|
|
|
|
|
return [ a ];
|
|
|
@@ -1772,7 +1772,7 @@ setTransformation( RenameOperation, MergeOperation, ( a, b ) => {
|
|
|
// Element to rename got merged, so it was moved to `b.graveyardPosition`.
|
|
|
//
|
|
|
if ( a.position.isEqual( b.deletionPosition ) ) {
|
|
|
- a.position = Position._createAt( b.graveyardPosition );
|
|
|
+ a.position = b.graveyardPosition.clone();
|
|
|
a.position.stickiness = 'toNext';
|
|
|
|
|
|
return [ a ];
|
|
|
@@ -1925,7 +1925,7 @@ setTransformation( SplitOperation, MergeOperation, ( a, b, context ) => {
|
|
|
|
|
|
a.splitPosition = a.splitPosition._getTransformedByMergeOperation( b );
|
|
|
a.insertionPosition = SplitOperation.getInsertionPosition( a.splitPosition );
|
|
|
- a.graveyardPosition = Position._createAt( additionalSplit.insertionPosition );
|
|
|
+ a.graveyardPosition = additionalSplit.insertionPosition.clone();
|
|
|
a.graveyardPosition.stickiness = 'toNext';
|
|
|
|
|
|
return [ additionalSplit, a ];
|
|
|
@@ -2002,7 +2002,7 @@ setTransformation( SplitOperation, MoveOperation, ( a, b, context ) => {
|
|
|
a.howMany += b.howMany;
|
|
|
}
|
|
|
|
|
|
- a.splitPosition = Position._createAt( b.sourcePosition );
|
|
|
+ a.splitPosition = b.sourcePosition.clone();
|
|
|
a.insertionPosition = SplitOperation.getInsertionPosition( a.splitPosition );
|
|
|
|
|
|
return [ a ];
|