X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/dec5a3d8b3a4cc70a9b2bc7bc1305ba0ae11a369..7c4c5ee807a9700c1b26e91f0d1720e3c6fd9ec3:/src/smartxml/core.js?ds=inline diff --git a/src/smartxml/core.js b/src/smartxml/core.js index 007468f..fdce751 100644 --- a/src/smartxml/core.js +++ b/src/smartxml/core.js @@ -187,15 +187,21 @@ var elementNodeTransformations = { return; } + this.contents() + .filter(function(child) { + return child.getProperty('describesParent'); + }.bind(this)) + .forEach(function(child) { + child.detach(); + }); + var myContents = this.contents(), myIdx = parent.indexOf(this); - if(myContents.length === 0) { return this.detach(); } - var childrenLength = this.contents().length, first = true, shiftRange = false; @@ -381,7 +387,9 @@ var documentTransformations = { } for(var i = idx1; i <= idx2; i++) { - wrapper.append(parentContents[i].detach()); + if(!parentContents[i].getProperty('describesParent')) { + wrapper.append(parentContents[i].detach()); + } } insertingTarget[insertingMethod](wrapper); @@ -426,7 +434,9 @@ var documentTransformations = { wrapperElement.append({text: prefixInside}); } for(var i = idx1 + 1; i < idx2; i++) { - wrapperElement.append(contentsInside[i]); + if(!contentsInside[i].getProperty('describesParent')) { + wrapperElement.append(contentsInside[i]); + } } if(suffixInside.length > 0) { wrapperElement.append({text: suffixInside});