8
0
Просмотр исходного кода

Remove slot binding after changes in memoization done by DowncastDispatcher.

Maciej Gołaszewski 5 лет назад
Родитель
Сommit
9704c97dab

+ 0 - 35
packages/ckeditor5-engine/src/conversion/mapper.js

@@ -49,14 +49,6 @@ export default class Mapper {
 		 */
 		this._modelToViewMapping = new WeakMap();
 
-		/**
-		 * Model element to existing view slot element mapping.
-		 *
-		 * @private
-		 * @member {WeakMap}
-		 */
-		this._slotToViewMapping = new WeakMap();
-
 		/**
 		 * View element to model element mapping.
 		 *
@@ -260,7 +252,6 @@ export default class Mapper {
 		this._markerNameToElements = new Map();
 		this._elementToMarkerNames = new Map();
 		this._unboundMarkerNames = new Set();
-		this._slotToViewMapping = new WeakMap();
 	}
 
 	/**
@@ -345,32 +336,6 @@ export default class Mapper {
 		return data.viewPosition;
 	}
 
-	/**
-	 * Marks model and view elements as corresponding "slot". Similar to {@link #bindElements} but it memorizes existing view element
-	 * during re-conversion of complex elements with slots.
-	 *
-	 * @param {module:engine/model/element~Element} modelElement Model element.
-	 * @param {module:engine/view/element~Element} viewElement View element.
-	 */
-	bindSlotElements( modelElement, viewElement ) {
-		const existingView = this.toViewElement( modelElement );
-
-		// Slot memorization - we need to keep this on a slot reconversion because bindElements() would overwrite previous binding.
-		this._slotToViewMapping.set( modelElement, existingView );
-
-		this.bindElements( modelElement, viewElement );
-	}
-
-	/**
-	 * Gets the previously converted view element.
-	 *
-	 * @param {module:engine/model/element~Element} modelElement Model element.
-	 * @returns {module:engine/view/element~Element|undefined} Corresponding view element or `undefined` if not found.
-	 */
-	getExistingViewForSlot( modelElement ) {
-		return this._slotToViewMapping.get( modelElement );
-	}
-
 	/**
 	 * Gets all view elements bound to the given marker name.
 	 *

+ 2 - 2
packages/ckeditor5-engine/tests/conversion/downcasthelpers.js

@@ -567,7 +567,7 @@ describe( 'DowncastHelpers', () => {
 								const viewSlot = writer.createContainerElement( 'div', { class: 'slot' } );
 
 								writer.insert( writer.createPositionAt( inner, slot.index ), viewSlot );
-								mapper.bindSlotElements( slot, viewSlot );
+								mapper.bindElements( slot, viewSlot );
 							}
 
 							return outer;
@@ -898,7 +898,7 @@ describe( 'DowncastHelpers', () => {
 					function createViewSlot( slot, { writer, mapper } ) {
 						const viewSlot = writer.createContainerElement( 'div', { class: 'slot' } );
 
-						mapper.bindSlotElements( slot, viewSlot );
+						mapper.bindElements( slot, viewSlot );
 
 						return viewSlot;
 					}

+ 1 - 1
packages/ckeditor5-engine/tests/manual/slotconversion.js

@@ -121,7 +121,7 @@ function downcastBox( modelElement, conversionApi ) {
 		const viewField = writer.createContainerElement( 'div', { class: 'box-content-field' } );
 
 		writer.insert( writer.createPositionAt( contentWrap, field.index ), viewField );
-		conversionApi.mapper.bindSlotElements( field, viewField );
+		conversionApi.mapper.bindElements( field, viewField );
 		conversionApi.consumable.consume( field, 'insert' );
 
 		// Might be simplified to: