Преглед изворни кода

Addded: Mapper#unbindModelElement and Mapper#unbindViewElement.

Szymon Cofalik пре 9 година
родитељ
комит
152d498c44
1 измењених фајлова са 34 додато и 0 уклоњено
  1. 34 0
      packages/ckeditor5-engine/src/conversion/mapper.js

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

@@ -86,6 +86,40 @@ export default class Mapper {
 		this._viewToModelMapping.set( viewElement, modelElement );
 	}
 
+	/**
+	 * Unbinds given {@link engine.view.Element view element} from the map.
+	 *
+	 * @param {engine.view.Element} viewElement View element to unbind.
+	 */
+	unbindViewElement( viewElement ) {
+		const modelElement = this.toModelElement( viewElement );
+
+		this._unbindElements( modelElement, viewElement );
+	}
+
+	/**
+	 * Unbinds given {@link engine.model.Element model element} from the map.
+	 *
+	 * @param {engine.model.Element} modelElement Model element to unbind.
+	 */
+	unbindModelElement( modelElement ) {
+		const viewElement = this.toViewElement( modelElement );
+
+		this._unbindElements( modelElement, viewElement );
+	}
+
+	/**
+	 * Removes binding between given elements.
+	 *
+	 * @private
+	 * @param {engine.model.Element} modelElement Model element to unbind.
+	 * @param {engine.view.Element} viewElement View element to unbind.
+	 */
+	_unbindElements( modelElement, viewElement ) {
+		this._viewToModelMapping.delete( viewElement );
+		this._modelToViewMapping.delete( modelElement );
+	}
+
 	/**
 	 * Removes all model to view and view to model bindings.
 	 */