diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js b/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js index 55111151c..f57d676ab 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/tab-info-outliner.js @@ -362,6 +362,9 @@ RED.sidebar.info.outliner = (function() { var existingObject = objects[n.id]; var parent = n.g||n.z; + if (!existingObject) { + return; + } var nodeLabelText = getNodeLabelText(n); if (nodeLabelText) { existingObject.element.find(".red-ui-info-outline-item-label").text(nodeLabelText); @@ -370,7 +373,9 @@ RED.sidebar.info.outliner = (function() { } if (parent !== existingObject.parent.id) { - existingObject.treeList.remove(); + if (existingObject.treeList) { + existingObject.treeList.remove(); + } if (!parent) { globalConfigNodes.treeList.addChild(existingObject); } else { @@ -386,11 +391,20 @@ RED.sidebar.info.outliner = (function() { function onObjectRemove(n) { var existingObject = objects[n.id]; existingObject.treeList.remove(); - delete objects[n.d] + delete objects[n.id] var parent = existingObject.parent; if (parent.children.length === 0) { parent.treeList.addChild(getEmptyItem(parent.id)); } + if (existingObject.children && (existingObject.children.length > 0)) { + existingObject.children.forEach(function (nc) { + if (!nc.empty) { + var childObject = objects[nc.id]; + nc.parent = parent; + objects[parent.id].treeList.addChild(childObject); + } + }); + } } function getGutter(n) { var span = $("",{class:"red-ui-info-outline-gutter"});