@node-red/editor-client 4.1.2 → 4.1.4
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 +1 -1
- package/public/red/about +44 -1
- package/public/red/red.js +61 -10
- package/public/red/red.min.js +2 -2
- package/public/red/style.min.css +1 -1
package/package.json
CHANGED
package/public/red/about
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
|
-
#### 4.1.
|
|
1
|
+
#### 4.1.4: Maintenance Releas
|
|
2
|
+
|
|
3
|
+
- Update tar dependency @knolleary
|
|
4
|
+
- Revert overflow fix in editableList (#5467) @knolleary
|
|
5
|
+
- registry: fix importModule base dir for exports subpaths (#5465) @yuan-cloud
|
|
6
|
+
- fix: prevent race condition in localfilesystem context store during shutdown (#5462) @Dennis-SEG
|
|
7
|
+
- fix: prevent double resolve in node close callback (#5461) @Dennis-SEG
|
|
8
|
+
- fix: prevent incorrect array modification in delay node (#5457) @Dennis-SEG
|
|
9
|
+
- fix: prevent uncaught exceptions in core node event handlers (#5438) @Dennis-SEG
|
|
2
10
|
|
|
11
|
+
#### 4.1.3: Maintenance Release
|
|
12
|
+
|
|
13
|
+
Editor
|
|
14
|
+
|
|
15
|
+
- 5343/Editor/Bug: Node help tab resets focus when arrow keys are used to switch between nodes (#5406) @piotrbogun
|
|
16
|
+
- Ensure quick-add filter is applied properly when retriggering add (#5427) @knolleary
|
|
17
|
+
- TreeList: Fix widget treeList keyboard navigation scroll behavior (#5421) @piotrbogun
|
|
18
|
+
- Editor: Flow & subflow names are changed to all lowercase in search dialog #5348 (#5401) @n-lark
|
|
19
|
+
- Allow actions show-next-tab and previous to loop (#5355) @GogoVega
|
|
20
|
+
- 5404/Editor/Bug: Junction error in Quick Add dialog (#5407) @piotrbogun
|
|
21
|
+
- Add tooltip to delete button in node property UI (#5410) @kazuhitoyokoi
|
|
22
|
+
- Fix invalid node size in quick add dialog (#5403) @kazuhitoyokoi
|
|
23
|
+
- Expand folder to avoid error in library (#5399) @kazuhitoyokoi
|
|
24
|
+
- Stricter validator for flow file name in project feature (#5398) @kazuhitoyokoi
|
|
25
|
+
- Fix size and scrolling in Git config UI (#5396) @kazuhitoyokoi
|
|
26
|
+
- Reveal node in search results via mouseover (#5368) @gorenje
|
|
27
|
+
|
|
28
|
+
Runtime
|
|
29
|
+
|
|
30
|
+
- Add package-lock.json for reproducible dependency chains (#5426) @dimitrieh
|
|
31
|
+
- Readme markdown refactor for legibility in IDE's (#5423) @dimitrieh
|
|
32
|
+
- Update body-parser (#5418) @knolleary
|
|
33
|
+
|
|
34
|
+
Nodes
|
|
35
|
+
|
|
36
|
+
- fix(http-request): prevent uncaught exceptions in async hooks (#5392) @Dennis-SEG
|
|
37
|
+
- Fix flushing when in variable delay mode (#5382) @dceejay
|
|
38
|
+
- File node TypedInput width fix (#5425) @knolleary
|
|
39
|
+
- Use TextDecoder() to decode UTF-8 characters (#5416) @kazuhitoyokoi
|
|
40
|
+
- Support source information in complete node (#5414) @kazuhitoyokoi
|
|
41
|
+
- Fix status node to retrieve status from all nodes (#5412) @kazuhitoyokoi
|
|
42
|
+
- Decrement count of http requests after error (#5409) @kazuhitoyokoi
|
|
43
|
+
- Fix debug tab to copy displayed value (#5400) @kazuhitoyokoi
|
|
44
|
+
|
|
45
|
+
#### 4.1.2: Maintenance Release
|
|
3
46
|
|
|
4
47
|
Editor
|
|
5
48
|
|
package/public/red/red.js
CHANGED
|
@@ -10047,7 +10047,13 @@ RED.utils = (function() {
|
|
|
10047
10047
|
var copyPayload = $('<button class="red-ui-button red-ui-button-small"><i class="fa fa-clipboard"></i></button>').appendTo(copyTools).on("click", function(e) {
|
|
10048
10048
|
e.preventDefault();
|
|
10049
10049
|
e.stopPropagation();
|
|
10050
|
-
|
|
10050
|
+
var payloadToCopy;
|
|
10051
|
+
if (typeof msg === "number") {
|
|
10052
|
+
payloadToCopy = obj.find(".red-ui-debug-msg-type-number").first().text();
|
|
10053
|
+
} else {
|
|
10054
|
+
payloadToCopy = msg;
|
|
10055
|
+
}
|
|
10056
|
+
RED.clipboard.copyText(payloadToCopy, copyPayload, "clipboard.copyMessageValue");
|
|
10051
10057
|
})
|
|
10052
10058
|
RED.popover.tooltip(copyPayload,RED._("node-red:debug.sidebar.copyPayload"));
|
|
10053
10059
|
if (enablePinning && strippedKey !== undefined && strippedKey !== '') {
|
|
@@ -10375,7 +10381,7 @@ RED.utils = (function() {
|
|
|
10375
10381
|
var sr = $('<div class="red-ui-debug-msg-object-entry collapsed"></div>').appendTo(stringRow);
|
|
10376
10382
|
var stringEncoding = "";
|
|
10377
10383
|
try {
|
|
10378
|
-
stringEncoding =
|
|
10384
|
+
stringEncoding = new TextDecoder().decode(new Uint8Array(data));
|
|
10379
10385
|
} catch(err) {
|
|
10380
10386
|
console.log(err);
|
|
10381
10387
|
}
|
|
@@ -11668,8 +11674,10 @@ RED.utils = (function() {
|
|
|
11668
11674
|
var deleteButton = $('<a/>',{href:"#",class:"red-ui-editableList-item-remove red-ui-button red-ui-button-small"}).appendTo(li);
|
|
11669
11675
|
$('<i/>',{class:"fa fa-remove"}).appendTo(deleteButton);
|
|
11670
11676
|
li.addClass("red-ui-editableList-item-removable");
|
|
11677
|
+
var removeTip = RED.popover.tooltip(deleteButton, RED._("common.label.delete"));
|
|
11671
11678
|
deleteButton.on("click", function(evt) {
|
|
11672
11679
|
evt.preventDefault();
|
|
11680
|
+
removeTip.close();
|
|
11673
11681
|
var data = row.data('data');
|
|
11674
11682
|
li.addClass("red-ui-editableList-item-deleting")
|
|
11675
11683
|
li.fadeOut(300, function() {
|
|
@@ -11977,7 +11985,10 @@ RED.utils = (function() {
|
|
|
11977
11985
|
} else {
|
|
11978
11986
|
that._topList.find(".focus").removeClass("focus")
|
|
11979
11987
|
}
|
|
11980
|
-
target.treeList.label
|
|
11988
|
+
if (target.treeList.label) {
|
|
11989
|
+
target.treeList.label.addClass('focus')
|
|
11990
|
+
}
|
|
11991
|
+
that.reveal(target);
|
|
11981
11992
|
}
|
|
11982
11993
|
});
|
|
11983
11994
|
this._data = [];
|
|
@@ -12668,6 +12679,10 @@ RED.utils = (function() {
|
|
|
12668
12679
|
}
|
|
12669
12680
|
|
|
12670
12681
|
that._topList.find(".focus").removeClass("focus");
|
|
12682
|
+
|
|
12683
|
+
if (item.treeList.label) {
|
|
12684
|
+
item.treeList.label.addClass("focus");
|
|
12685
|
+
}
|
|
12671
12686
|
|
|
12672
12687
|
if (triggerEvent !== false) {
|
|
12673
12688
|
this._trigger("select",null,item)
|
|
@@ -14767,12 +14782,18 @@ RED.tabs = (function() {
|
|
|
14767
14782
|
}
|
|
14768
14783
|
function activatePreviousTab() {
|
|
14769
14784
|
var previous = findPreviousVisibleTab();
|
|
14785
|
+
if (previous.length === 0) {
|
|
14786
|
+
previous = ul.find("li.red-ui-tab:not(.hide-tab)").last();
|
|
14787
|
+
}
|
|
14770
14788
|
if (previous.length > 0) {
|
|
14771
14789
|
activateTab(previous.find("a"));
|
|
14772
14790
|
}
|
|
14773
14791
|
}
|
|
14774
14792
|
function activateNextTab() {
|
|
14775
14793
|
var next = findNextVisibleTab();
|
|
14794
|
+
if (next.length === 0) {
|
|
14795
|
+
next = ul.find("li.red-ui-tab:not(.hide-tab)").first();
|
|
14796
|
+
}
|
|
14776
14797
|
if (next.length > 0) {
|
|
14777
14798
|
activateTab(next.find("a"));
|
|
14778
14799
|
}
|
|
@@ -24023,6 +24044,13 @@ RED.view = (function() {
|
|
|
24023
24044
|
quickAddLink.virtualLink = true;
|
|
24024
24045
|
}
|
|
24025
24046
|
hideDragLines();
|
|
24047
|
+
} else if (quickAddLink) {
|
|
24048
|
+
// continuing an existing quick add - set the filter accordingly
|
|
24049
|
+
if (quickAddLink.portType === PORT_TYPE_OUTPUT) {
|
|
24050
|
+
filter = {input:true}
|
|
24051
|
+
} else {
|
|
24052
|
+
filter = {output:true}
|
|
24053
|
+
}
|
|
24026
24054
|
}
|
|
24027
24055
|
if (linkToSplice || spliceMultipleLinks) {
|
|
24028
24056
|
filter = {
|
|
@@ -29190,6 +29218,9 @@ RED.view = (function() {
|
|
|
29190
29218
|
suggestedNodes = [suggestedNodes]
|
|
29191
29219
|
}
|
|
29192
29220
|
suggestedNodes = suggestedNodes.filter(n => {
|
|
29221
|
+
if (n.type === 'junction') {
|
|
29222
|
+
return true
|
|
29223
|
+
}
|
|
29193
29224
|
const def = RED.nodes.getType(n.type)
|
|
29194
29225
|
if (def?.set && def.set.enabled === false) {
|
|
29195
29226
|
// Exclude disabled node set
|
|
@@ -47504,7 +47535,7 @@ RED.library = (function() {
|
|
|
47504
47535
|
icon: 'fa fa-cube',
|
|
47505
47536
|
label: options.type,
|
|
47506
47537
|
path: "",
|
|
47507
|
-
expanded:
|
|
47538
|
+
expanded: true,
|
|
47508
47539
|
children: function(done, item) {
|
|
47509
47540
|
loadLibraryFolder(lib.id, options.url, "", function(children) {
|
|
47510
47541
|
item.children = children;
|
|
@@ -48447,9 +48478,13 @@ RED.search = (function() {
|
|
|
48447
48478
|
function indexNode(n) {
|
|
48448
48479
|
var l = RED.utils.getNodeLabel(n);
|
|
48449
48480
|
if (l) {
|
|
48450
|
-
|
|
48451
|
-
|
|
48452
|
-
index[
|
|
48481
|
+
const originalLabel = "" + l;
|
|
48482
|
+
const indexLabel = originalLabel.toLowerCase();
|
|
48483
|
+
index[indexLabel] = index[indexLabel] || {};
|
|
48484
|
+
index[indexLabel][n.id] = {
|
|
48485
|
+
node: n,
|
|
48486
|
+
label: originalLabel
|
|
48487
|
+
};
|
|
48453
48488
|
}
|
|
48454
48489
|
l = l||n.label||n.name||n.id||"";
|
|
48455
48490
|
|
|
@@ -48838,6 +48873,12 @@ RED.search = (function() {
|
|
|
48838
48873
|
$('<div>',{class:"red-ui-search-result-node-type"}).text(node.type).appendTo(contentDiv);
|
|
48839
48874
|
$('<div>',{class:"red-ui-search-result-node-id"}).text(node.id).appendTo(contentDiv);
|
|
48840
48875
|
|
|
48876
|
+
div.on("mouseover", function(evt) {
|
|
48877
|
+
if ( node.z == RED.workspaces.active() ) {
|
|
48878
|
+
RED.view.reveal(node.id)
|
|
48879
|
+
}
|
|
48880
|
+
});
|
|
48881
|
+
|
|
48841
48882
|
div.on("click", function(evt) {
|
|
48842
48883
|
evt.preventDefault();
|
|
48843
48884
|
currentIndex = i;
|
|
@@ -49075,10 +49116,20 @@ RED.search = (function() {
|
|
|
49075
49116
|
show: show,
|
|
49076
49117
|
hide: hide,
|
|
49077
49118
|
search: search,
|
|
49078
|
-
getSearchOptions: getSearchOptions
|
|
49119
|
+
getSearchOptions: getSearchOptions,
|
|
49120
|
+
// Expose internals for testing
|
|
49121
|
+
_indexNode: indexNode,
|
|
49122
|
+
get _index() { return index; },
|
|
49123
|
+
set _index(val) { index = val; }
|
|
49079
49124
|
};
|
|
49080
49125
|
|
|
49081
49126
|
})();
|
|
49127
|
+
|
|
49128
|
+
|
|
49129
|
+
// Allow CommonJS import for testing
|
|
49130
|
+
if (typeof module !== "undefined" && module.exports) {
|
|
49131
|
+
module.exports = RED.search;
|
|
49132
|
+
}
|
|
49082
49133
|
;RED.contextMenu = (function () {
|
|
49083
49134
|
|
|
49084
49135
|
let menu;
|
|
@@ -53387,7 +53438,7 @@ RED.projects = (function() {
|
|
|
53387
53438
|
var validateForm = function() {
|
|
53388
53439
|
var valid = true;
|
|
53389
53440
|
var flowFile = projectFlowFileInput.val();
|
|
53390
|
-
if (flowFile === "" ||
|
|
53441
|
+
if (flowFile === "" || !/^[a-zA-Z0-9\-_]+\.json$/.test(flowFile)) {
|
|
53391
53442
|
valid = false;
|
|
53392
53443
|
if (!projectFlowFileInput.hasClass("input-error")) {
|
|
53393
53444
|
projectFlowFileInput.addClass("input-error");
|
|
@@ -53809,7 +53860,7 @@ RED.projects = (function() {
|
|
|
53809
53860
|
|
|
53810
53861
|
} else if (projectType === 'empty') {
|
|
53811
53862
|
var flowFile = projectFlowFileInput.val();
|
|
53812
|
-
if (flowFile === "" ||
|
|
53863
|
+
if (flowFile === "" || !/^[a-zA-Z0-9\-_]+\.json$/.test(flowFile)) {
|
|
53813
53864
|
valid = false;
|
|
53814
53865
|
if (!projectFlowFileInput.hasClass("input-error")) {
|
|
53815
53866
|
projectFlowFileInput.addClass("input-error");
|