diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/appearance.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/appearance.js index f265c09db..e51ab96b1 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/appearance.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/appearance.js @@ -501,9 +501,9 @@ } var v = $(this).val(); hasNonBlankLabel = hasNonBlankLabel || v!== ""; - + // mark changed output port labels as dirty - if (node.type === "subflow" && node.outputLabels[index] !== v) { + if (node.type === "subflow" && (!node.outputLabels || node.outputLabels[index] !== v)) { node.out[index].dirty = true; } diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js index c7a787a01..5b9285152 100755 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js @@ -3994,7 +3994,6 @@ RED.view = (function() { subflowOutputs.exit().remove(); var outGroup = subflowOutputs.enter().insert("svg:g").attr("class","red-ui-flow-node red-ui-flow-subflow-port-output") outGroup.each(function(d,i) { - var node = d3.select(this); var nodeContents = document.createDocumentFragment(); @@ -4020,6 +4019,7 @@ RED.view = (function() { var output_groupEl = document.createElementNS("http://www.w3.org/2000/svg","g"); output_groupEl.setAttribute("x",0); output_groupEl.setAttribute("y",0); + node[0][0].__outputLabelGroup__ = output_groupEl; var output_output = document.createElementNS("http://www.w3.org/2000/svg","text"); output_output.setAttribute("class","red-ui-flow-port-label"); @@ -4061,6 +4061,7 @@ RED.view = (function() { port.setAttribute("width",10); port.setAttribute("height",10); portEl.appendChild(port); + port.__data__ = d; d3.select(port) .on("mousedown", function(d,i){portMouseDown(d,PORT_TYPE_INPUT,0);} ) @@ -4131,9 +4132,9 @@ RED.view = (function() { var self = this; var thisNode = d3.select(this); - + dirtyNodes[d.id] = d; - + var label = getPortLabel(activeSubflow, PORT_TYPE_OUTPUT, d.i) || ""; var hideLabel = (label.length < 1) @@ -4145,7 +4146,7 @@ RED.view = (function() { } this.__label__ = label; this.__labelLineCount__ = labelParts.lines.length; - + if (hideLabel) { d.h = Math.max(port_height,(d.outputs || 0) * 15); } else { @@ -4153,7 +4154,7 @@ RED.view = (function() { } this.__hideLabel__ = hideLabel; } - + if (d.resize) { var ow = d.w; if (hideLabel) { @@ -4176,7 +4177,7 @@ RED.view = (function() { this.__mainRect__.setAttribute("width", d.w) this.__mainRect__.setAttribute("height", d.h) this.__mainRect__.classList.toggle("red-ui-flow-node-highlighted",!!d.highlighted ); - + if (labelParts) { // The label has changed var sa = labelParts.lines; @@ -4196,19 +4197,18 @@ RED.view = (function() { textLines[i].textContent = sa[i]; } } - + var textClass = "red-ui-flow-node-label"+(hideLabel?" hide":""); this.__textGroup__.setAttribute("class", textClass); var yp = d.h / 2 - (this.__labelLineCount__ / 2) * 24 + 13; - + // this.__textGroup__.classList.remove("red-ui-flow-node-label-right"); this.__textGroup__.setAttribute("transform", "translate(48,"+yp+")"); this.__outputBorder__.setAttribute("d","M 40 1 l 0 "+(hideLabel?0:(d.h - 2))); this.__port__.setAttribute("transform","translate(-5,"+((d.h/2)-5)+")"); - this.__outputNumber__.setAttribute("transform","translate(20,"+Math.max(28, (d.h/2)+2)+")"); - this.__outputOutput__.setAttribute("transform","translate(20,"+Math.max(12, (d.h/2)-14)+")"); - + this.__outputOutput__.setAttribute("transform","translate(20,"+((d.h/2)-8)+")"); + this.__outputNumber__.setAttribute("transform","translate(20,"+((d.h/2)+7)+")"); } d.dirty = false; }