@node-red/editor-client 3.1.8 → 3.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/locales/en-US/editor.json +3 -0
- package/locales/fr/editor.json +3 -0
- package/locales/ja/editor.json +1 -0
- package/package.json +1 -1
- package/public/red/about +30 -0
- package/public/red/red.js +185 -129
- package/public/red/red.min.js +3 -3
- package/public/red/style.min.css +1 -1
- package/public/vendor/mermaid/mermaid.min.js +705 -318
|
@@ -719,6 +719,7 @@
|
|
|
719
719
|
"nodeHelp": "Node Help",
|
|
720
720
|
"showHelp": "Show help",
|
|
721
721
|
"showInOutline": "Show in outline",
|
|
722
|
+
"hideTopics": "Hide topics",
|
|
722
723
|
"showTopics": "Show topics",
|
|
723
724
|
"noHelp": "No help topic selected",
|
|
724
725
|
"changeLog": "Change Log"
|
|
@@ -914,6 +915,8 @@
|
|
|
914
915
|
}
|
|
915
916
|
},
|
|
916
917
|
"typedInput": {
|
|
918
|
+
"selected": "__count__ selected",
|
|
919
|
+
"selected_plural": "__count__ selected",
|
|
917
920
|
"type": {
|
|
918
921
|
"str": "string",
|
|
919
922
|
"num": "number",
|
package/locales/fr/editor.json
CHANGED
|
@@ -719,6 +719,7 @@
|
|
|
719
719
|
"nodeHelp": "Aide sur les noeuds",
|
|
720
720
|
"showHelp": "Afficher l'aide",
|
|
721
721
|
"showInOutline": "Afficher dans les grandes lignes",
|
|
722
|
+
"hideTopics": "Masquer les sujets",
|
|
722
723
|
"showTopics": "Afficher les sujets",
|
|
723
724
|
"noHelp": "Aucune rubrique d'aide sélectionnée",
|
|
724
725
|
"changeLog": "Journal des modifications"
|
|
@@ -914,6 +915,8 @@
|
|
|
914
915
|
}
|
|
915
916
|
},
|
|
916
917
|
"typedInput": {
|
|
918
|
+
"selected": "__count__ sélectionnée",
|
|
919
|
+
"selected_plural": "__count__ sélectionnées",
|
|
917
920
|
"type": {
|
|
918
921
|
"str": "chaîne de caractères",
|
|
919
922
|
"num": "nombre",
|
package/locales/ja/editor.json
CHANGED
package/package.json
CHANGED
package/public/red/about
CHANGED
|
@@ -1,3 +1,33 @@
|
|
|
1
|
+
#### 3.1.10: Maintenance Release
|
|
2
|
+
|
|
3
|
+
- Include rewired nodes when calculating Modified Flows stop list (#4754) @knolleary
|
|
4
|
+
- Fix clone of group env var properties (#4753) @knolleary
|
|
5
|
+
- Fix losing links when importing a copy of links into a subflow (#4750) @GogoVega
|
|
6
|
+
- Ensure all CSS variables are in the output file (#3743) @bonanitech
|
|
7
|
+
- Fix the Sidebar Config is not refreshed after a deploy (#4734) @GogoVega
|
|
8
|
+
- Fix checkboxes are not updated when calling `typedInput("value", "")` (#4729) @GogoVega
|
|
9
|
+
- Fix panning with middle mouse button on windows 10/11 (#4716) @corentin-sodebo-voile
|
|
10
|
+
- Add Japanese translation for sidebar tooltip (#4727) @kazuhitoyokoi
|
|
11
|
+
- Translate the number of items selected in the options list (#4730) @GogoVega
|
|
12
|
+
- Fix a checkbox should return a Boolean value and not the string `on` (#4715) @GogoVega
|
|
13
|
+
- Deleting a grouped node should update the group (#4714) @GogoVega
|
|
14
|
+
- Change the Config Node cursor to `pointer` (#4711) @GogoVega
|
|
15
|
+
- Add missing tooltips to Sidebar (#4713) @GogoVega
|
|
16
|
+
- Allow nodes to return additional history entries in onEditSave (#4710) @knolleary
|
|
17
|
+
- Pass full error object in Function node and copy over cause property (#4685) @knolleary
|
|
18
|
+
- Replacing vm.createScript in favour of vm.Script (#4534) @patlux
|
|
19
|
+
- Avoid login loops when autoLogin enabled but login fails (#4684) @knolleary
|
|
20
|
+
- Fix undo of subflow env property edits (#4667) @knolleary
|
|
21
|
+
- Fix three error typos in monaco.js (#4660) @JoshuaCWebDeveloper
|
|
22
|
+
- docs: Add closing paragraph tag (#4664) @ZJvandeWeg
|
|
23
|
+
|
|
24
|
+
#### 3.1.9: Maintenance Release
|
|
25
|
+
|
|
26
|
+
- Prevent subflow being added to itself (#4654) @knolleary
|
|
27
|
+
- Fix use of spawn on windows with cmd files (#4652) @knolleary
|
|
28
|
+
- Guard refresh of unknown subflow (#4640) @knolleary
|
|
29
|
+
- Fix subflow module sending messages to debug sidebar (#4642) @knolleary
|
|
30
|
+
|
|
1
31
|
#### 3.1.8: Maintenance Release
|
|
2
32
|
|
|
3
33
|
- Add validation and error handling on subflow instance properties (#4632) @knolleary
|
package/public/red/red.js
CHANGED
|
@@ -6096,6 +6096,13 @@ RED.nodes = (function() {
|
|
|
6096
6096
|
} else {
|
|
6097
6097
|
delete n.g
|
|
6098
6098
|
}
|
|
6099
|
+
// If importing into a subflow, ensure an outbound-link doesn't get added
|
|
6100
|
+
if (activeSubflow && /^link /.test(n.type) && n.links) {
|
|
6101
|
+
n.links = n.links.filter(function(id) {
|
|
6102
|
+
const otherNode = node_map[id] || RED.nodes.node(id);
|
|
6103
|
+
return (otherNode && otherNode.z === activeWorkspace);
|
|
6104
|
+
});
|
|
6105
|
+
}
|
|
6099
6106
|
for (var d3 in n._def.defaults) {
|
|
6100
6107
|
if (n._def.defaults.hasOwnProperty(d3)) {
|
|
6101
6108
|
if (n._def.defaults[d3].type) {
|
|
@@ -6119,14 +6126,6 @@ RED.nodes = (function() {
|
|
|
6119
6126
|
}
|
|
6120
6127
|
}
|
|
6121
6128
|
}
|
|
6122
|
-
// If importing into a subflow, ensure an outbound-link doesn't
|
|
6123
|
-
// get added
|
|
6124
|
-
if (activeSubflow && /^link /.test(n.type) && n.links) {
|
|
6125
|
-
n.links = n.links.filter(function(id) {
|
|
6126
|
-
const otherNode = node_map[id] || RED.nodes.node(id);
|
|
6127
|
-
return (otherNode && otherNode.z === activeWorkspace)
|
|
6128
|
-
});
|
|
6129
|
-
}
|
|
6130
6129
|
}
|
|
6131
6130
|
for (i=0;i<new_subflows.length;i++) {
|
|
6132
6131
|
n = new_subflows[i];
|
|
@@ -14851,12 +14850,12 @@ RED.stack = (function() {
|
|
|
14851
14850
|
}
|
|
14852
14851
|
if (menu.opts.multiple) {
|
|
14853
14852
|
var selected = {};
|
|
14854
|
-
|
|
14855
|
-
|
|
14856
|
-
|
|
14853
|
+
this.value().split(",").forEach(function(f) {
|
|
14854
|
+
selected[f] = true;
|
|
14855
|
+
});
|
|
14857
14856
|
menu.find('input[type="checkbox"]').each(function() {
|
|
14858
|
-
$(this).prop("checked",selected[$(this).data('value')])
|
|
14859
|
-
})
|
|
14857
|
+
$(this).prop("checked", selected[$(this).data('value')] || false);
|
|
14858
|
+
});
|
|
14860
14859
|
}
|
|
14861
14860
|
|
|
14862
14861
|
|
|
@@ -14947,7 +14946,7 @@ RED.stack = (function() {
|
|
|
14947
14946
|
this.input.trigger('change',[this.propertyType,this.value()]);
|
|
14948
14947
|
}
|
|
14949
14948
|
} else {
|
|
14950
|
-
this.optionSelectLabel.text(o.length
|
|
14949
|
+
this.optionSelectLabel.text(RED._("typedInput.selected", { count: o.length }));
|
|
14951
14950
|
}
|
|
14952
14951
|
}
|
|
14953
14952
|
},
|
|
@@ -16355,7 +16354,10 @@ RED.deploy = (function() {
|
|
|
16355
16354
|
}
|
|
16356
16355
|
});
|
|
16357
16356
|
RED.nodes.eachSubflow(function (subflow) {
|
|
16358
|
-
subflow.changed
|
|
16357
|
+
if (subflow.changed) {
|
|
16358
|
+
subflow.changed = false;
|
|
16359
|
+
RED.events.emit("subflows:change", subflow);
|
|
16360
|
+
}
|
|
16359
16361
|
});
|
|
16360
16362
|
RED.nodes.eachWorkspace(function (ws) {
|
|
16361
16363
|
if (ws.changed || ws.added) {
|
|
@@ -16371,6 +16373,7 @@ RED.deploy = (function() {
|
|
|
16371
16373
|
// Once deployed, cannot undo back to a clean state
|
|
16372
16374
|
RED.history.markAllDirty();
|
|
16373
16375
|
RED.view.redraw();
|
|
16376
|
+
RED.sidebar.config.refresh();
|
|
16374
16377
|
RED.events.emit("deploy");
|
|
16375
16378
|
}).fail(function (xhr, textStatus, err) {
|
|
16376
16379
|
RED.nodes.dirty(true);
|
|
@@ -21212,120 +21215,128 @@ RED.view = (function() {
|
|
|
21212
21215
|
}
|
|
21213
21216
|
d3.event = event;
|
|
21214
21217
|
var selected_tool = $(ui.draggable[0]).attr("data-palette-type");
|
|
21215
|
-
|
|
21216
|
-
|
|
21217
|
-
|
|
21218
|
-
|
|
21219
|
-
|
|
21220
|
-
|
|
21218
|
+
try {
|
|
21219
|
+
var result = createNode(selected_tool);
|
|
21220
|
+
if (!result) {
|
|
21221
|
+
return;
|
|
21222
|
+
}
|
|
21223
|
+
var historyEvent = result.historyEvent;
|
|
21224
|
+
var nn = RED.nodes.add(result.node);
|
|
21221
21225
|
|
|
21222
|
-
|
|
21223
|
-
|
|
21224
|
-
|
|
21225
|
-
|
|
21226
|
+
var showLabel = RED.utils.getMessageProperty(RED.settings.get('editor'),"view.view-node-show-label");
|
|
21227
|
+
if (showLabel !== undefined && (nn._def.hasOwnProperty("showLabel")?nn._def.showLabel:true) && !nn._def.defaults.hasOwnProperty("l")) {
|
|
21228
|
+
nn.l = showLabel;
|
|
21229
|
+
}
|
|
21226
21230
|
|
|
21227
|
-
|
|
21228
|
-
|
|
21229
|
-
|
|
21230
|
-
|
|
21231
|
+
var helperOffset = d3.touches(ui.helper.get(0))[0]||d3.mouse(ui.helper.get(0));
|
|
21232
|
+
var helperWidth = ui.helper.width();
|
|
21233
|
+
var helperHeight = ui.helper.height();
|
|
21234
|
+
var mousePos = d3.touches(this)[0]||d3.mouse(this);
|
|
21231
21235
|
|
|
21232
|
-
|
|
21233
|
-
|
|
21234
|
-
|
|
21235
|
-
|
|
21236
|
-
var label = RED.utils.getNodeLabel(nn, nn.type);
|
|
21237
|
-
var labelParts = getLabelParts(label, "red-ui-flow-node-label");
|
|
21238
|
-
if (hideLabel) {
|
|
21239
|
-
nn.w = node_height;
|
|
21240
|
-
nn.h = Math.max(node_height,(nn.outputs || 0) * 15);
|
|
21241
|
-
} else {
|
|
21242
|
-
nn.w = Math.max(node_width,20*(Math.ceil((labelParts.width+50+(nn._def.inputs>0?7:0))/20)) );
|
|
21243
|
-
nn.h = Math.max(6+24*labelParts.lines.length,(nn.outputs || 0) * 15, 30);
|
|
21244
|
-
}
|
|
21245
|
-
} catch(err) {
|
|
21246
|
-
}
|
|
21236
|
+
try {
|
|
21237
|
+
var isLink = (nn.type === "link in" || nn.type === "link out")
|
|
21238
|
+
var hideLabel = nn.hasOwnProperty('l')?!nn.l : isLink;
|
|
21247
21239
|
|
|
21248
|
-
|
|
21249
|
-
|
|
21250
|
-
|
|
21251
|
-
|
|
21240
|
+
var label = RED.utils.getNodeLabel(nn, nn.type);
|
|
21241
|
+
var labelParts = getLabelParts(label, "red-ui-flow-node-label");
|
|
21242
|
+
if (hideLabel) {
|
|
21243
|
+
nn.w = node_height;
|
|
21244
|
+
nn.h = Math.max(node_height,(nn.outputs || 0) * 15);
|
|
21245
|
+
} else {
|
|
21246
|
+
nn.w = Math.max(node_width,20*(Math.ceil((labelParts.width+50+(nn._def.inputs>0?7:0))/20)) );
|
|
21247
|
+
nn.h = Math.max(6+24*labelParts.lines.length,(nn.outputs || 0) * 15, 30);
|
|
21248
|
+
}
|
|
21249
|
+
} catch(err) {
|
|
21250
|
+
}
|
|
21252
21251
|
|
|
21253
|
-
|
|
21254
|
-
|
|
21252
|
+
mousePos[1] += this.scrollTop + ((helperHeight/2)-helperOffset[1]);
|
|
21253
|
+
mousePos[0] += this.scrollLeft + ((helperWidth/2)-helperOffset[0]);
|
|
21254
|
+
mousePos[1] /= scaleFactor;
|
|
21255
|
+
mousePos[0] /= scaleFactor;
|
|
21255
21256
|
|
|
21256
|
-
|
|
21257
|
-
|
|
21258
|
-
nn.x = minX;
|
|
21259
|
-
}
|
|
21260
|
-
var minY = nn.h/2 -5;
|
|
21261
|
-
if (nn.y < minY) {
|
|
21262
|
-
nn.y = minY;
|
|
21263
|
-
}
|
|
21264
|
-
var maxX = space_width -nn.w/2 +5;
|
|
21265
|
-
if (nn.x > maxX) {
|
|
21266
|
-
nn.x = maxX;
|
|
21267
|
-
}
|
|
21268
|
-
var maxY = space_height -nn.h +5;
|
|
21269
|
-
if (nn.y > maxY) {
|
|
21270
|
-
nn.y = maxY;
|
|
21271
|
-
}
|
|
21257
|
+
nn.x = mousePos[0];
|
|
21258
|
+
nn.y = mousePos[1];
|
|
21272
21259
|
|
|
21273
|
-
|
|
21274
|
-
|
|
21275
|
-
|
|
21276
|
-
|
|
21277
|
-
|
|
21260
|
+
var minX = nn.w/2 -5;
|
|
21261
|
+
if (nn.x < minX) {
|
|
21262
|
+
nn.x = minX;
|
|
21263
|
+
}
|
|
21264
|
+
var minY = nn.h/2 -5;
|
|
21265
|
+
if (nn.y < minY) {
|
|
21266
|
+
nn.y = minY;
|
|
21267
|
+
}
|
|
21268
|
+
var maxX = space_width -nn.w/2 +5;
|
|
21269
|
+
if (nn.x > maxX) {
|
|
21270
|
+
nn.x = maxX;
|
|
21271
|
+
}
|
|
21272
|
+
var maxY = space_height -nn.h +5;
|
|
21273
|
+
if (nn.y > maxY) {
|
|
21274
|
+
nn.y = maxY;
|
|
21275
|
+
}
|
|
21278
21276
|
|
|
21279
|
-
|
|
21280
|
-
|
|
21281
|
-
|
|
21282
|
-
|
|
21277
|
+
if (snapGrid) {
|
|
21278
|
+
var gridOffset = RED.view.tools.calculateGridSnapOffsets(nn);
|
|
21279
|
+
nn.x -= gridOffset.x;
|
|
21280
|
+
nn.y -= gridOffset.y;
|
|
21281
|
+
}
|
|
21283
21282
|
|
|
21284
|
-
|
|
21285
|
-
|
|
21286
|
-
|
|
21287
|
-
var oldY = group.y;
|
|
21288
|
-
RED.group.addToGroup(group, nn);
|
|
21289
|
-
var moveEvent = null;
|
|
21290
|
-
if ((group.x !== oldX) ||
|
|
21291
|
-
(group.y !== oldY)) {
|
|
21292
|
-
moveEvent = {
|
|
21293
|
-
t: "move",
|
|
21294
|
-
nodes: [{n: group,
|
|
21295
|
-
ox: oldX, oy: oldY,
|
|
21296
|
-
dx: group.x -oldX,
|
|
21297
|
-
dy: group.y -oldY}],
|
|
21298
|
-
dirty: true
|
|
21299
|
-
};
|
|
21283
|
+
var linkToSplice = $(ui.helper).data("splice");
|
|
21284
|
+
if (linkToSplice) {
|
|
21285
|
+
spliceLink(linkToSplice, nn, historyEvent)
|
|
21300
21286
|
}
|
|
21301
|
-
historyEvent = {
|
|
21302
|
-
t: 'multi',
|
|
21303
|
-
events: [historyEvent],
|
|
21304
21287
|
|
|
21305
|
-
|
|
21306
|
-
if (
|
|
21307
|
-
|
|
21288
|
+
var group = $(ui.helper).data("group");
|
|
21289
|
+
if (group) {
|
|
21290
|
+
var oldX = group.x;
|
|
21291
|
+
var oldY = group.y;
|
|
21292
|
+
RED.group.addToGroup(group, nn);
|
|
21293
|
+
var moveEvent = null;
|
|
21294
|
+
if ((group.x !== oldX) ||
|
|
21295
|
+
(group.y !== oldY)) {
|
|
21296
|
+
moveEvent = {
|
|
21297
|
+
t: "move",
|
|
21298
|
+
nodes: [{n: group,
|
|
21299
|
+
ox: oldX, oy: oldY,
|
|
21300
|
+
dx: group.x -oldX,
|
|
21301
|
+
dy: group.y -oldY}],
|
|
21302
|
+
dirty: true
|
|
21303
|
+
};
|
|
21304
|
+
}
|
|
21305
|
+
historyEvent = {
|
|
21306
|
+
t: 'multi',
|
|
21307
|
+
events: [historyEvent],
|
|
21308
|
+
|
|
21309
|
+
};
|
|
21310
|
+
if (moveEvent) {
|
|
21311
|
+
historyEvent.events.push(moveEvent)
|
|
21312
|
+
}
|
|
21313
|
+
historyEvent.events.push({
|
|
21314
|
+
t: "addToGroup",
|
|
21315
|
+
group: group,
|
|
21316
|
+
nodes: nn
|
|
21317
|
+
})
|
|
21308
21318
|
}
|
|
21309
|
-
historyEvent.events.push({
|
|
21310
|
-
t: "addToGroup",
|
|
21311
|
-
group: group,
|
|
21312
|
-
nodes: nn
|
|
21313
|
-
})
|
|
21314
|
-
}
|
|
21315
21319
|
|
|
21316
|
-
|
|
21317
|
-
|
|
21318
|
-
|
|
21319
|
-
|
|
21320
|
-
|
|
21321
|
-
|
|
21322
|
-
|
|
21323
|
-
|
|
21324
|
-
|
|
21325
|
-
|
|
21320
|
+
RED.history.push(historyEvent);
|
|
21321
|
+
RED.editor.validateNode(nn);
|
|
21322
|
+
RED.nodes.dirty(true);
|
|
21323
|
+
// auto select dropped node - so info shows (if visible)
|
|
21324
|
+
clearSelection();
|
|
21325
|
+
nn.selected = true;
|
|
21326
|
+
movingSet.add(nn);
|
|
21327
|
+
updateActiveNodes();
|
|
21328
|
+
updateSelection();
|
|
21329
|
+
redraw();
|
|
21326
21330
|
|
|
21327
|
-
|
|
21328
|
-
|
|
21331
|
+
if (nn._def.autoedit) {
|
|
21332
|
+
RED.editor.edit(nn);
|
|
21333
|
+
}
|
|
21334
|
+
} catch (error) {
|
|
21335
|
+
if (error.code != "NODE_RED") {
|
|
21336
|
+
RED.notify(RED._("notification.error",{message:error.toString()}),"error");
|
|
21337
|
+
} else {
|
|
21338
|
+
RED.notify(RED._("notification.error",{message:error.message}),"error");
|
|
21339
|
+
}
|
|
21329
21340
|
}
|
|
21330
21341
|
}
|
|
21331
21342
|
});
|
|
@@ -21748,6 +21759,7 @@ RED.view = (function() {
|
|
|
21748
21759
|
|
|
21749
21760
|
if (d3.event.button === 1) {
|
|
21750
21761
|
// Middle Click pan
|
|
21762
|
+
d3.event.preventDefault();
|
|
21751
21763
|
mouse_mode = RED.state.PANNING;
|
|
21752
21764
|
mouse_position = [d3.event.pageX,d3.event.pageY]
|
|
21753
21765
|
scroll_position = [chart.scrollLeft(),chart.scrollTop()];
|
|
@@ -26629,14 +26641,19 @@ RED.view = (function() {
|
|
|
26629
26641
|
function createNode(type, x, y, z) {
|
|
26630
26642
|
const wasDirty = RED.nodes.dirty()
|
|
26631
26643
|
var m = /^subflow:(.+)$/.exec(type);
|
|
26632
|
-
var activeSubflow = z ? RED.nodes.subflow(z) : null;
|
|
26644
|
+
var activeSubflow = (z || RED.workspaces.active()) ? RED.nodes.subflow(z || RED.workspaces.active()) : null;
|
|
26645
|
+
|
|
26633
26646
|
if (activeSubflow && m) {
|
|
26634
26647
|
var subflowId = m[1];
|
|
26648
|
+
let err
|
|
26635
26649
|
if (subflowId === activeSubflow.id) {
|
|
26636
|
-
|
|
26650
|
+
err = new Error(RED._("notification.errors.cannotAddSubflowToItself"))
|
|
26651
|
+
} else if (RED.nodes.subflowContains(m[1], activeSubflow.id)) {
|
|
26652
|
+
err = new Error(RED._("notification.errors.cannotAddCircularReference"))
|
|
26637
26653
|
}
|
|
26638
|
-
if (
|
|
26639
|
-
|
|
26654
|
+
if (err) {
|
|
26655
|
+
err.code = 'NODE_RED'
|
|
26656
|
+
throw err
|
|
26640
26657
|
}
|
|
26641
26658
|
}
|
|
26642
26659
|
|
|
@@ -31092,7 +31109,13 @@ RED.sidebar.help = (function() {
|
|
|
31092
31109
|
toolbar = $("<div>", {class:"red-ui-sidebar-header red-ui-info-toolbar"}).appendTo(content);
|
|
31093
31110
|
$('<span class="button-group"><a id="red-ui-sidebar-help-show-toc" class="red-ui-button red-ui-button-small selected" href="#"><i class="fa fa-list-ul"></i></a></span>').appendTo(toolbar)
|
|
31094
31111
|
var showTOCButton = toolbar.find('#red-ui-sidebar-help-show-toc')
|
|
31095
|
-
RED.popover.tooltip(showTOCButton,
|
|
31112
|
+
RED.popover.tooltip(showTOCButton, function () {
|
|
31113
|
+
if ($(showTOCButton).hasClass('selected')) {
|
|
31114
|
+
return RED._("sidebar.help.hideTopics");
|
|
31115
|
+
} else {
|
|
31116
|
+
return RED._("sidebar.help.showTopics");
|
|
31117
|
+
}
|
|
31118
|
+
});
|
|
31096
31119
|
showTOCButton.on("click",function(e) {
|
|
31097
31120
|
e.preventDefault();
|
|
31098
31121
|
if ($(this).hasClass('selected')) {
|
|
@@ -31214,8 +31237,10 @@ RED.sidebar.help = (function() {
|
|
|
31214
31237
|
|
|
31215
31238
|
function refreshSubflow(sf) {
|
|
31216
31239
|
var item = treeList.treeList('get',"node-type:subflow:"+sf.id);
|
|
31217
|
-
|
|
31218
|
-
|
|
31240
|
+
if (item) {
|
|
31241
|
+
item.subflowLabel = sf._def.label().toLowerCase();
|
|
31242
|
+
item.treeList.replaceElement(getNodeLabel({_def:sf._def,type:sf._def.label()}));
|
|
31243
|
+
}
|
|
31219
31244
|
}
|
|
31220
31245
|
|
|
31221
31246
|
function hideTOC() {
|
|
@@ -31934,9 +31959,11 @@ RED.sidebar.config = (function() {
|
|
|
31934
31959
|
refreshConfigNodeList();
|
|
31935
31960
|
}
|
|
31936
31961
|
});
|
|
31962
|
+
|
|
31937
31963
|
RED.popover.tooltip($('#red-ui-sidebar-config-filter-all'), RED._("sidebar.config.showAllConfigNodes"));
|
|
31938
31964
|
RED.popover.tooltip($('#red-ui-sidebar-config-filter-unused'), RED._("sidebar.config.showAllUnusedConfigNodes"));
|
|
31939
|
-
|
|
31965
|
+
RED.popover.tooltip($('#red-ui-sidebar-config-collapse-all'), RED._("palette.actions.collapse-all"));
|
|
31966
|
+
RED.popover.tooltip($('#red-ui-sidebar-config-expand-all'), RED._("palette.actions.expand-all"));
|
|
31940
31967
|
}
|
|
31941
31968
|
|
|
31942
31969
|
function flashConfigNode(el) {
|
|
@@ -33897,6 +33924,8 @@ RED.editor = (function() {
|
|
|
33897
33924
|
var value = input.val();
|
|
33898
33925
|
if (defaults[property].hasOwnProperty("format") && defaults[property].format !== "" && input[0].nodeName === "DIV") {
|
|
33899
33926
|
value = input.text();
|
|
33927
|
+
} else if (input.attr("type") === "checkbox") {
|
|
33928
|
+
value = input.prop("checked");
|
|
33900
33929
|
}
|
|
33901
33930
|
var valid = validateNodeProperty(node, defaults, property,value);
|
|
33902
33931
|
if (((typeof valid) === "string") || !valid) {
|
|
@@ -34390,9 +34419,16 @@ RED.editor = (function() {
|
|
|
34390
34419
|
}
|
|
34391
34420
|
|
|
34392
34421
|
try {
|
|
34393
|
-
|
|
34422
|
+
const rc = editing_node._def.oneditsave.call(editing_node);
|
|
34394
34423
|
if (rc === true) {
|
|
34395
34424
|
editState.changed = true;
|
|
34425
|
+
} else if (typeof rc === 'object' && rc !== null ) {
|
|
34426
|
+
if (rc.changed === true) {
|
|
34427
|
+
editState.changed = true
|
|
34428
|
+
}
|
|
34429
|
+
if (Array.isArray(rc.history) && rc.history.length > 0) {
|
|
34430
|
+
editState.history = rc.history
|
|
34431
|
+
}
|
|
34396
34432
|
}
|
|
34397
34433
|
} catch(err) {
|
|
34398
34434
|
console.warn("oneditsave",editing_node.id,editing_node.type,err.toString());
|
|
@@ -34563,6 +34599,17 @@ RED.editor = (function() {
|
|
|
34563
34599
|
dirty: startDirty
|
|
34564
34600
|
}
|
|
34565
34601
|
|
|
34602
|
+
if (editing_node.g) {
|
|
34603
|
+
const group = RED.nodes.group(editing_node.g);
|
|
34604
|
+
// Don't use RED.group.removeFromGroup as that emits
|
|
34605
|
+
// a change event on the node - but we're deleting it
|
|
34606
|
+
const index = group?.nodes.indexOf(editing_node) ?? -1;
|
|
34607
|
+
if (index > -1) {
|
|
34608
|
+
group.nodes.splice(index, 1);
|
|
34609
|
+
RED.group.markDirty(group);
|
|
34610
|
+
}
|
|
34611
|
+
}
|
|
34612
|
+
|
|
34566
34613
|
RED.nodes.dirty(true);
|
|
34567
34614
|
RED.view.redraw(true);
|
|
34568
34615
|
RED.history.push(historyEvent);
|
|
@@ -34664,7 +34711,7 @@ RED.editor = (function() {
|
|
|
34664
34711
|
}
|
|
34665
34712
|
});
|
|
34666
34713
|
}
|
|
34667
|
-
|
|
34714
|
+
let historyEvent = {
|
|
34668
34715
|
t:'edit',
|
|
34669
34716
|
node:editing_node,
|
|
34670
34717
|
changes:editState.changes,
|
|
@@ -34680,6 +34727,15 @@ RED.editor = (function() {
|
|
|
34680
34727
|
instances:subflowInstances
|
|
34681
34728
|
}
|
|
34682
34729
|
}
|
|
34730
|
+
|
|
34731
|
+
if (editState.history) {
|
|
34732
|
+
historyEvent = {
|
|
34733
|
+
t: 'multi',
|
|
34734
|
+
events: [ historyEvent, ...editState.history ],
|
|
34735
|
+
dirty: wasDirty
|
|
34736
|
+
}
|
|
34737
|
+
}
|
|
34738
|
+
|
|
34683
34739
|
RED.history.push(historyEvent);
|
|
34684
34740
|
}
|
|
34685
34741
|
editing_node.dirty = true;
|
|
@@ -35272,8 +35328,8 @@ RED.editor = (function() {
|
|
|
35272
35328
|
}
|
|
35273
35329
|
|
|
35274
35330
|
if (!isSameObj(old_env, new_env)) {
|
|
35275
|
-
editing_node.env = new_env;
|
|
35276
35331
|
editState.changes.env = editing_node.env;
|
|
35332
|
+
editing_node.env = new_env;
|
|
35277
35333
|
editState.changed = true;
|
|
35278
35334
|
}
|
|
35279
35335
|
|
|
@@ -40458,7 +40514,7 @@ RED.editor.codeEditor.monaco = (function() {
|
|
|
40458
40514
|
_monaco.languages.json.jsonDefaults.setDiagnosticsOptions(diagnosticOptions);
|
|
40459
40515
|
if(modeConfiguration) { _monaco.languages.json.jsonDefaults.setModeConfiguration(modeConfiguration); }
|
|
40460
40516
|
} catch (error) {
|
|
40461
|
-
console.warn("monaco - Error setting up json options",
|
|
40517
|
+
console.warn("monaco - Error setting up json options", error)
|
|
40462
40518
|
}
|
|
40463
40519
|
}
|
|
40464
40520
|
|
|
@@ -40470,7 +40526,7 @@ RED.editor.codeEditor.monaco = (function() {
|
|
|
40470
40526
|
if(htmlDefaults) { _monaco.languages.html.htmlDefaults.setOptions(htmlDefaults); }
|
|
40471
40527
|
if(handlebarDefaults) { _monaco.languages.html.handlebarDefaults.setOptions(handlebarDefaults); }
|
|
40472
40528
|
} catch (error) {
|
|
40473
|
-
console.warn("monaco - Error setting up html options",
|
|
40529
|
+
console.warn("monaco - Error setting up html options", error)
|
|
40474
40530
|
}
|
|
40475
40531
|
}
|
|
40476
40532
|
|
|
@@ -40490,7 +40546,7 @@ RED.editor.codeEditor.monaco = (function() {
|
|
|
40490
40546
|
if(lessDefaults_modeConfiguration) { _monaco.languages.css.cssDefaults.setDiagnosticsOptions(lessDefaults_modeConfiguration); }
|
|
40491
40547
|
if(scssDefaults_modeConfiguration) { _monaco.languages.css.cssDefaults.setDiagnosticsOptions(scssDefaults_modeConfiguration); }
|
|
40492
40548
|
} catch (error) {
|
|
40493
|
-
console.warn("monaco - Error setting up CSS/SCSS/LESS options",
|
|
40549
|
+
console.warn("monaco - Error setting up CSS/SCSS/LESS options", error)
|
|
40494
40550
|
}
|
|
40495
40551
|
}
|
|
40496
40552
|
|