Browse Source

Return original operations map in transformSets.

Dominik Szczepaniak 6 years ago
parent
commit
46fb9af3da
1 changed files with 11 additions and 2 deletions
  1. 11 2
      packages/ckeditor5-engine/src/model/operation/transform.js

+ 11 - 2
packages/ckeditor5-engine/src/model/operation/transform.js

@@ -155,9 +155,18 @@ export function transformSets( operationsA, operationsB, options ) {
 	operationsA = operationsA.slice();
 	operationsB = operationsB.slice();
 
+	const originalOperations = new Map();
+	const receivedOperations = operationsA.concat( operationsB );
+
+	for ( const operation of receivedOperations ) {
+		const originalOperation = this._originalOperations.get( operation );
+
+		originalOperations.set( operation, originalOperation );
+	}
+
 	// If one of sets is empty there is simply nothing to transform, so return sets as they are.
 	if ( operationsA.length == 0 || operationsB.length == 0 ) {
-		return { operationsA, operationsB };
+		return { operationsA, operationsB, originalOperations };
 	}
 	//
 	// Following is a description of transformation process:
@@ -374,7 +383,7 @@ export function transformSets( operationsA, operationsB, options ) {
 	updateBaseVersions( operationsA, data.nextBaseVersionB );
 	updateBaseVersions( operationsB, data.nextBaseVersionA );
 
-	return { operationsA, operationsB };
+	return { operationsA, operationsB, originalOperations };
 }
 
 // Gathers additional data about operations processed during transformation. Can be used to obtain contextual information