From 3b4bb2e6086d6d9759757bd13bc9e231421f7089 Mon Sep 17 00:00:00 2001 From: Szymon Cofalik Date: Wed, 21 Feb 2018 10:44:40 +0100 Subject: [PATCH] Docs: Added docs to new methods. --- src/model/differ.js | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/model/differ.js b/src/model/differ.js index a4abc0306..b521fd78d 100644 --- a/src/model/differ.js +++ b/src/model/differ.js @@ -799,6 +799,13 @@ export default class Differ { return diffs; } + /** + * Checks whether given element or any of its parents is an element that is buffered as an inserted element. + * + * @private + * @param {module:engine/model/element~Element} element Element to check. + * @returns {Boolean} + */ _isInInsertedElement( element ) { const parent = element.parent; @@ -820,21 +827,27 @@ export default class Differ { return this._isInInsertedElement( parent ); } + /** + * Removes deeply all buffered changes that are registered in elements from range specified by `parent`, `offset` + * and `howMany`. + * + * @private + * @param {module:engine/model/element~Element} parent + * @param {Number} offset + * @param {Number} howMany + */ _removeAllNestedChanges( parent, offset, howMany ) { const range = Range.createFromParentsAndOffsets( parent, offset, parent, offset + howMany ); for ( const item of range.getItems( { shallow: true } ) ) { if ( item.is( 'element' ) ) { - this._removeChangesInElement( item ); + this._elementSnapshots.delete( item ); + this._changesInElement.delete( item ); + this._removeAllNestedChanges( item, 0, item.maxOffset ); } } } - - _removeChangesInElement( element ) { - this._elementSnapshots.delete( element ); - this._changesInElement.delete( element ); - } } // Returns an array that is a copy of passed child list with the exception that text nodes are split to one or more