@node-red/editor-client 2.2.0 → 2.2.1
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/package.json
CHANGED
package/public/red/about
CHANGED
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
#### 2.2.1: Maintenance Release
|
|
2
|
+
|
|
3
|
+
Editor
|
|
4
|
+
|
|
5
|
+
- Handle mixed-cased filter terms in keyboard shortcut dialog (#3444) @knolleary
|
|
6
|
+
- Prevent duplicate links being added between nodes (#3442) @knolleary
|
|
7
|
+
- Fix to hide tooltip after removing subflow tab (#3391) @HiroyasuNishiyama
|
|
8
|
+
- Fix node validation to be applied to config node (#3397) @HiroyasuNishiyama
|
|
9
|
+
- Fix: Dont add wires to undo buffer twice (#3437) @Steve-Mcl
|
|
10
|
+
|
|
11
|
+
Runtime
|
|
12
|
+
|
|
13
|
+
- Improve module location parsing (of stack info) when adding hook (#3447) @Steve-Mcl
|
|
14
|
+
- Fix substitution of NR_NODE_PATH (#3445) @HiroyasuNishiyama
|
|
15
|
+
- Remove console.log when ignoring disabled module (#3439) @knolleary
|
|
16
|
+
- Improve "Unexpected Node Error" logging (#3446) @Steve-Mcl
|
|
17
|
+
|
|
18
|
+
Nodes
|
|
19
|
+
|
|
20
|
+
- Debug: Fix no-prototype-builtins bug in debug node and utils (#3394) @Alkarex
|
|
21
|
+
- Delay: Fix Japanese message of delay node (#3434)
|
|
22
|
+
- Allow nbRateUnits to be undefined when validating (#3443) @knolleary
|
|
23
|
+
- Coding help for recently added node-red Predefined Environment Variables (#3440) @Steve-Mcl
|
|
24
|
+
|
|
25
|
+
|
|
1
26
|
#### 2.2.0: Milestone Release
|
|
2
27
|
|
|
3
28
|
Editor
|
package/public/red/red.js
CHANGED
|
@@ -4190,6 +4190,14 @@ RED.nodes = (function() {
|
|
|
4190
4190
|
RED.events.emit('nodes:add',n);
|
|
4191
4191
|
}
|
|
4192
4192
|
function addLink(l) {
|
|
4193
|
+
if (nodeLinks[l.source.id]) {
|
|
4194
|
+
const isUnique = nodeLinks[l.source.id].out.every(function(link) {
|
|
4195
|
+
return link.sourcePort !== l.sourcePort || link.target.id !== l.target.id
|
|
4196
|
+
})
|
|
4197
|
+
if (!isUnique) {
|
|
4198
|
+
return
|
|
4199
|
+
}
|
|
4200
|
+
}
|
|
4193
4201
|
links.push(l);
|
|
4194
4202
|
if (l.source) {
|
|
4195
4203
|
// Possible the node hasn't been added yet
|
|
@@ -11654,6 +11662,15 @@ RED.popover = (function() {
|
|
|
11654
11662
|
}
|
|
11655
11663
|
}
|
|
11656
11664
|
|
|
11665
|
+
target.on("remove", function (ev) {
|
|
11666
|
+
if (timer) {
|
|
11667
|
+
clearTimeout(timer);
|
|
11668
|
+
}
|
|
11669
|
+
if (active) {
|
|
11670
|
+
active = false;
|
|
11671
|
+
setTimeout(closePopup,delay.hide);
|
|
11672
|
+
}
|
|
11673
|
+
});
|
|
11657
11674
|
if (trigger === 'hover') {
|
|
11658
11675
|
target.on('mouseenter',function(e) {
|
|
11659
11676
|
clearTimeout(timer);
|
|
@@ -15238,6 +15255,9 @@ RED.deploy = (function() {
|
|
|
15238
15255
|
var invalidNodes = [];
|
|
15239
15256
|
|
|
15240
15257
|
RED.nodes.eachConfig(function(node) {
|
|
15258
|
+
if (node.valid === undefined) {
|
|
15259
|
+
RED.editor.validateNode(node);
|
|
15260
|
+
}
|
|
15241
15261
|
if (!node.valid && !node.d) {
|
|
15242
15262
|
invalidNodes.push(getNodeInfo(node));
|
|
15243
15263
|
}
|
|
@@ -18292,7 +18312,7 @@ RED.keyboard = (function() {
|
|
|
18292
18312
|
pane.find("#red-ui-settings-tab-keyboard-filter").searchBox({
|
|
18293
18313
|
delay: 100,
|
|
18294
18314
|
change: function() {
|
|
18295
|
-
var filterValue = $(this).val().trim();
|
|
18315
|
+
var filterValue = $(this).val().trim().toLowerCase();
|
|
18296
18316
|
if (filterValue === "") {
|
|
18297
18317
|
shortcutList.editableList('filter', null);
|
|
18298
18318
|
} else {
|
|
@@ -21352,14 +21372,21 @@ RED.view = (function() {
|
|
|
21352
21372
|
var removedSubflowStatus;
|
|
21353
21373
|
var subflowInstances = [];
|
|
21354
21374
|
var historyEvents = [];
|
|
21355
|
-
|
|
21375
|
+
var addToRemovedLinks = function(links) {
|
|
21376
|
+
if(!links) { return; }
|
|
21377
|
+
var _links = Array.isArray(links) ? links : [links];
|
|
21378
|
+
_links.forEach(function(l) {
|
|
21379
|
+
removedLinks.push(l);
|
|
21380
|
+
selectedLinks.remove(l);
|
|
21381
|
+
})
|
|
21382
|
+
}
|
|
21356
21383
|
if (reconnectWires) {
|
|
21357
21384
|
var reconnectResult = RED.nodes.detachNodes(movingSet.nodes())
|
|
21358
21385
|
var addedLinks = reconnectResult.newLinks;
|
|
21359
21386
|
if (addedLinks.length > 0) {
|
|
21360
21387
|
historyEvents.push({ t:'add', links: addedLinks })
|
|
21361
21388
|
}
|
|
21362
|
-
|
|
21389
|
+
addToRemovedLinks(reconnectResult.removedLinks)
|
|
21363
21390
|
}
|
|
21364
21391
|
|
|
21365
21392
|
var startDirty = RED.nodes.dirty();
|
|
@@ -21391,7 +21418,7 @@ RED.view = (function() {
|
|
|
21391
21418
|
var removedEntities = RED.nodes.remove(node.id);
|
|
21392
21419
|
removedNodes.push(node);
|
|
21393
21420
|
removedNodes = removedNodes.concat(removedEntities.nodes);
|
|
21394
|
-
|
|
21421
|
+
addToRemovedLinks(removedNodes.removedLinks);
|
|
21395
21422
|
if (node.g) {
|
|
21396
21423
|
var group = RED.nodes.group(node.g);
|
|
21397
21424
|
if (selectedGroups.indexOf(group) === -1) {
|
|
@@ -21424,20 +21451,20 @@ RED.view = (function() {
|
|
|
21424
21451
|
if (removedSubflowOutputs.length > 0) {
|
|
21425
21452
|
result = RED.subflow.removeOutput(removedSubflowOutputs);
|
|
21426
21453
|
if (result) {
|
|
21427
|
-
|
|
21454
|
+
addToRemovedLinks(result.links);
|
|
21428
21455
|
}
|
|
21429
21456
|
}
|
|
21430
21457
|
// Assume 0/1 inputs
|
|
21431
21458
|
if (removedSubflowInputs.length == 1) {
|
|
21432
21459
|
result = RED.subflow.removeInput();
|
|
21433
21460
|
if (result) {
|
|
21434
|
-
|
|
21461
|
+
addToRemovedLinks(result.links);
|
|
21435
21462
|
}
|
|
21436
21463
|
}
|
|
21437
21464
|
if (removedSubflowStatus) {
|
|
21438
21465
|
result = RED.subflow.removeStatus();
|
|
21439
21466
|
if (result) {
|
|
21440
|
-
|
|
21467
|
+
addToRemovedLinks(result.links);
|
|
21441
21468
|
}
|
|
21442
21469
|
}
|
|
21443
21470
|
|
|
@@ -37058,7 +37085,7 @@ RED.editor.codeEditor.monaco = (function() {
|
|
|
37058
37085
|
createMonacoCompletionItem("set (flow context)", 'flow.set("${1:name}", ${1:value});','Set a value in flow context',range),
|
|
37059
37086
|
createMonacoCompletionItem("get (global context)", 'global.get("${1:name}");','Get a value from global context',range),
|
|
37060
37087
|
createMonacoCompletionItem("set (global context)", 'global.set("${1:name}", ${1:value});','Set a value in global context',range),
|
|
37061
|
-
createMonacoCompletionItem("get (env)", 'env.get("${1
|
|
37088
|
+
createMonacoCompletionItem("get (env)", 'env.get("${1|NR_NODE_ID,NR_NODE_NAME,NR_NODE_PATH,NR_GROUP_ID,NR_GROUP_NAME,NR_FLOW_ID,NR_FLOW_NAME|}");','Get env variable value',range),
|
|
37062
37089
|
createMonacoCompletionItem("cloneMessage (RED.util)", 'RED.util.cloneMessage(${1:msg});',
|
|
37063
37090
|
["```typescript",
|
|
37064
37091
|
"RED.util.cloneMessage<T extends registry.NodeMessage>(msg: T): T",
|