Răsfoiți Sursa

Added: better support for adding engine.treeModel.DocumentFragment to engine.treeModel.NodeList.

Szymon Cofalik 9 ani în urmă
părinte
comite
7b1e8f2152
1 a modificat fișierele cu 12 adăugiri și 1 ștergeri
  1. 12 1
      packages/ckeditor5-engine/src/treemodel/nodelist.js

+ 12 - 1
packages/ckeditor5-engine/src/treemodel/nodelist.js

@@ -136,7 +136,7 @@ export default class NodeList {
 				nodes = [ nodes ];
 			}
 
-			for ( let node of nodes ) {
+			for ( let node of getNodes( nodes ) ) {
 				let indexInNodes = this._nodes.length;
 				let mergedWithPrev = false;
 				let length = 1;
@@ -460,3 +460,14 @@ export default class NodeList {
  * @typedef {engine.treeModel.Node|engine.treeModel.Text|String|engine.treeModel.NodeList|engine.treeModel.DocumentFragment|Iterable}
  * engine.treeModel.NodeSet
  */
+
+// Helper function that "flattens" `engine.treeModel.DocumentFragment`.
+function* getNodes( nodes ) {
+	for ( let node of nodes ) {
+		if ( node instanceof DocumentFragment ) {
+			yield* node;
+		} else {
+			yield node;
+		}
+	}
+}