@node-red/editor-client 2.1.2 → 2.2.0-beta.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/locales/en-US/editor.json +8 -1
- package/locales/ja/editor.json +41 -6
- package/locales/zh-CN/editor.json +1 -1
- package/package.json +1 -1
- package/public/red/about +105 -2752
- package/public/red/keymap.json +2 -0
- package/public/red/red.js +979 -312
- package/public/red/red.min.js +3 -1
- package/public/red/style.min.css +1 -1
- package/public/red/tours/first-flow.js +28 -7
- package/public/red/tours/images/delete-repair.gif +0 -0
- package/public/red/tours/images/detach-repair.gif +0 -0
- package/public/red/tours/images/slice.gif +0 -0
- package/public/red/tours/welcome.js +67 -120
- package/public/vendor/ace/mode-jsonata.js +1 -1
- package/public/vendor/vendor.js +3 -3
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
steps: [
|
|
3
3
|
{
|
|
4
|
-
title:
|
|
4
|
+
title: {
|
|
5
|
+
'en-US': 'Create your first flow',
|
|
6
|
+
'ja': 'はじめてのフローを作成'
|
|
7
|
+
},
|
|
5
8
|
width: 400,
|
|
6
|
-
description:
|
|
9
|
+
description: {
|
|
10
|
+
'en-US': 'This tutorial will guide you through creating your first flow',
|
|
11
|
+
'ja': '本チュートリアルでは、はじめてのフローを作成する方法について説明します。'
|
|
12
|
+
},
|
|
7
13
|
nextButton: 'start'
|
|
8
14
|
},
|
|
9
15
|
{
|
|
10
16
|
element: "#red-ui-workspace .red-ui-tab-button.red-ui-tabs-add",
|
|
11
|
-
description:
|
|
17
|
+
description: {
|
|
18
|
+
'en-US': 'To add a new tab, click the <i class="fa fa-plus"></i> button',
|
|
19
|
+
'ja': '新しいタブを追加するため、 <i class="fa fa-plus"></i> ボタンをクリックします。'
|
|
20
|
+
},
|
|
12
21
|
wait: {
|
|
13
22
|
type: "dom-event",
|
|
14
23
|
event: "click",
|
|
@@ -18,7 +27,10 @@ export default {
|
|
|
18
27
|
{
|
|
19
28
|
element: '.red-ui-palette-node[data-palette-type="inject"]',
|
|
20
29
|
direction: 'right',
|
|
21
|
-
description:
|
|
30
|
+
description: {
|
|
31
|
+
'en-US': 'The palette lists all of the nodes available to use. Drag a new Inject node into the workspace.',
|
|
32
|
+
'ja': 'パレットには、利用できる全てのノードが一覧表示されます。injectノードをワークスペースにドラッグします。'
|
|
33
|
+
},
|
|
22
34
|
fallback: 'inset-bottom-right',
|
|
23
35
|
wait: {
|
|
24
36
|
type: "nr-event",
|
|
@@ -38,7 +50,10 @@ export default {
|
|
|
38
50
|
{
|
|
39
51
|
element: '.red-ui-palette-node[data-palette-type="debug"]',
|
|
40
52
|
direction: 'right',
|
|
41
|
-
description:
|
|
53
|
+
description: {
|
|
54
|
+
'en-US': 'Next, drag a new Debug node into the workspace.',
|
|
55
|
+
'ja': '次に、debugノードをワークスペースにドラッグします。'
|
|
56
|
+
},
|
|
42
57
|
fallback: 'inset-bottom-right',
|
|
43
58
|
wait: {
|
|
44
59
|
type: "nr-event",
|
|
@@ -57,7 +72,10 @@ export default {
|
|
|
57
72
|
},
|
|
58
73
|
{
|
|
59
74
|
element: function() { return $("#"+this.injectNode.id+" .red-ui-flow-port") },
|
|
60
|
-
description:
|
|
75
|
+
description: {
|
|
76
|
+
'en-US': 'Add a wire from the output of the Inject node to the input of the Debug node',
|
|
77
|
+
'ja': 'injectノードの出力から、debugノードの入力へワイヤーで接続します。'
|
|
78
|
+
},
|
|
61
79
|
fallback: 'inset-bottom-right',
|
|
62
80
|
wait: {
|
|
63
81
|
type: "nr-event",
|
|
@@ -69,7 +87,10 @@ export default {
|
|
|
69
87
|
},
|
|
70
88
|
{
|
|
71
89
|
element: "#red-ui-header-button-deploy",
|
|
72
|
-
description:
|
|
90
|
+
description: {
|
|
91
|
+
'en-US': 'Deploy your changes so the flow is active in the runtime',
|
|
92
|
+
'ja': 'フローをランタイムで実行させるため、変更をデプロイします。'
|
|
93
|
+
},
|
|
73
94
|
width: 200,
|
|
74
95
|
wait: {
|
|
75
96
|
type: "dom-event",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,151 +1,98 @@
|
|
|
1
1
|
export default {
|
|
2
|
-
version: "2.
|
|
2
|
+
version: "2.2.0",
|
|
3
3
|
steps: [
|
|
4
4
|
{
|
|
5
5
|
titleIcon: "fa fa-map-o",
|
|
6
|
-
title: {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
title: {
|
|
7
|
+
"en-US": "Welcome to Node-RED 2.2!",
|
|
8
|
+
"ja": "Node-RED 2.2へようこそ!"
|
|
9
|
+
},
|
|
10
|
+
description: {
|
|
11
|
+
"en-US": "Let's take a moment to discover the new features in this release.",
|
|
12
|
+
"ja": "本リリースの新機能を見つけてみましょう。"
|
|
13
|
+
}
|
|
13
14
|
},
|
|
14
15
|
{
|
|
15
|
-
title: {
|
|
16
|
-
|
|
17
|
-
$("#red-ui-header-button-sidemenu").trigger("click");
|
|
18
|
-
$("#menu-item-edit-menu").parent().addClass("open")
|
|
16
|
+
title: {
|
|
17
|
+
"en-US": "Search history",
|
|
19
18
|
},
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
description: {
|
|
20
|
+
"en-US": "<p>The Search dialog now keeps a history of your searches, making it easier to go back to a previous search.</p>"
|
|
22
21
|
},
|
|
23
|
-
element: "#
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"<p>The menu now displays keyboard shortcuts for the options.</p>" }
|
|
28
|
-
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
title: { "en-US": "Arranging nodes" },
|
|
32
|
-
prepare() {
|
|
33
|
-
$("#red-ui-header-button-sidemenu").trigger("click");
|
|
34
|
-
$("#menu-item-arrange-menu").parent().addClass("open")
|
|
22
|
+
element: "#red-ui-search .red-ui-searchBox-form",
|
|
23
|
+
prepare(done) {
|
|
24
|
+
RED.search.show();
|
|
25
|
+
setTimeout(done,400);
|
|
35
26
|
},
|
|
36
27
|
complete() {
|
|
37
|
-
|
|
28
|
+
RED.search.hide();
|
|
38
29
|
},
|
|
39
|
-
element: "#menu-item-arrange-menu-submenu",
|
|
40
|
-
interactive: false,
|
|
41
|
-
direction: "left",
|
|
42
|
-
description: { "en-US": "<p>The new 'Arrange' section of the menu provides new options to help arrange your nodes. You can align them to a common edge, spread them out evenly or change their order.</p>" },
|
|
43
30
|
},
|
|
44
31
|
{
|
|
45
|
-
title: {
|
|
46
|
-
|
|
47
|
-
description: { "en-US": '<p>Tabs can now be hidden by clicking their <i class="fa fa-times"></i> icon.</p><p>The Info Sidebar will still list all of your tabs, and tell you which ones are currently hidden.' },
|
|
48
|
-
interactive: false,
|
|
49
|
-
prepare() {
|
|
50
|
-
$("#red-ui-workspace-tabs > li.active .red-ui-tab-close").css("display","block");
|
|
32
|
+
title: {
|
|
33
|
+
"en-US": "New wiring actions",
|
|
51
34
|
},
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
interactive: false,
|
|
61
|
-
direction: "left",
|
|
62
|
-
prepare() {
|
|
63
|
-
$("#red-ui-workspace > .red-ui-tabs > .red-ui-tabs-menu a").trigger("click");
|
|
35
|
+
// image: "images/",
|
|
36
|
+
description: {
|
|
37
|
+
"en-US": `<p>A pair of new actions have been added to help with wiring nodes together:</p>
|
|
38
|
+
<ul>
|
|
39
|
+
<li><b><code>Wire Series Of Nodes</code></b> - adds a wire (if necessary) between each pair of nodes in the order they were selected.</li>
|
|
40
|
+
<li><b><code>Wire Node To Multiple</code></b> - wires the first node selected to all of the other selected nodes.</li>
|
|
41
|
+
</ul>
|
|
42
|
+
<p>Actions can be accessed from the Action List in the main menu.</p>`
|
|
64
43
|
},
|
|
65
|
-
complete() {
|
|
66
|
-
$(document).trigger("click");
|
|
67
|
-
}
|
|
68
44
|
},
|
|
69
45
|
{
|
|
70
|
-
title: {
|
|
71
|
-
|
|
72
|
-
interactive: false,
|
|
73
|
-
description: { "en-US": "<p>Flows and Groups can now have their own environment variables that can be referenced by nodes inside them.</p>" },
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
prepare(done) {
|
|
77
|
-
RED.editor.editFlow(RED.nodes.workspace(RED.workspaces.active()),"editor-tab-envProperties");
|
|
78
|
-
setTimeout(done,700);
|
|
46
|
+
title: {
|
|
47
|
+
"en-US": "Deleting nodes and reconnecting wires",
|
|
79
48
|
},
|
|
80
|
-
|
|
81
|
-
description: {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
description: { "en-US": '<p>The environment variables are listed in this table and new ones can be added by clicking the <i class="fa fa-plus"></i> button.</p>' },
|
|
87
|
-
complete(done) {
|
|
88
|
-
$("#node-dialog-cancel").trigger("click");
|
|
89
|
-
setTimeout(done,500);
|
|
49
|
+
image: "images/delete-repair.gif",
|
|
50
|
+
description: {
|
|
51
|
+
"en-US": `<p>It is now possible to delete a selection of nodes and automatically repair the wiring behind them.</p>
|
|
52
|
+
<p>This is really useful if you want to remove a node from the middle of the flow.</p>
|
|
53
|
+
<p>Hold the Ctrl (or Cmd) key when you press Delete and the nodes will be gone and the wires repaired.</p>
|
|
54
|
+
`
|
|
90
55
|
}
|
|
91
56
|
},
|
|
92
|
-
|
|
93
57
|
{
|
|
94
|
-
title: {
|
|
95
|
-
|
|
96
|
-
this.paletteWasClosed = $("#red-ui-main-container").hasClass("red-ui-palette-closed");
|
|
97
|
-
RED.actions.invoke("core:toggle-palette",true)
|
|
98
|
-
$('[data-palette-type="link call"]')[0].scrollIntoView({block:"center"})
|
|
99
|
-
setTimeout(done,100);
|
|
58
|
+
title: {
|
|
59
|
+
"en-US": "Detaching nodes from a flow",
|
|
100
60
|
},
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
},
|
|
111
|
-
element: '[data-palette-type="mqtt out"]',
|
|
112
|
-
direction: "right",
|
|
113
|
-
description: { "en-US": '<p>The <code>MQTT</code> nodes now support creating their connections and subscriptions dynamically.</p>' },
|
|
61
|
+
image: "images/detach-repair.gif",
|
|
62
|
+
description: {
|
|
63
|
+
"en-US": `<p>If you want to remove a node from a flow without deleting it,
|
|
64
|
+
you can use the <b><code>Detach Selected Nodes</code></b> action.</p>
|
|
65
|
+
<p>The nodes will be removed from their flow, the wiring repaired behind them, and then attached to the mouse
|
|
66
|
+
so you can drop them wherever you want in the workspace.</p>
|
|
67
|
+
<p>There isn't a default keyboard shortcut assigned for this new action, but
|
|
68
|
+
you can add your own via the Keyboard pane of the main Settings dialog.</p>`
|
|
69
|
+
}
|
|
114
70
|
},
|
|
115
71
|
{
|
|
116
|
-
title: {
|
|
117
|
-
|
|
118
|
-
$('[data-palette-type="file"]')[0].scrollIntoView({block:"center"})
|
|
119
|
-
setTimeout(done,100);
|
|
72
|
+
title: {
|
|
73
|
+
"en-US": "More wiring tricks",
|
|
120
74
|
},
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
75
|
+
image: "images/slice.gif",
|
|
76
|
+
description: {
|
|
77
|
+
"en-US": `<p>A couple more wiring tricks to share.</p>
|
|
78
|
+
<p>You can now select multiple wires by holding the Ctrl (or Cmd) key
|
|
79
|
+
when clicking on a wire. This makes it easier to delete multiple wires in one go.</p>
|
|
80
|
+
<p>If you hold the Ctrl (or Cmd) key, then click and drag with the right-hand mouse button,
|
|
81
|
+
you can slice through wires to remove them.</p>`
|
|
82
|
+
}
|
|
129
83
|
},
|
|
130
84
|
{
|
|
131
|
-
title: {
|
|
132
|
-
|
|
133
|
-
var def = RED.nodes.getType('change')
|
|
134
|
-
RED.editor.edit({id:"test",type:"change",rules:[{t:'set',p:'payload',pt:'msg', tot:'msg',to:"anotherProperty"}],_def:def, _:def._})
|
|
135
|
-
setTimeout(done,700);
|
|
136
|
-
},
|
|
137
|
-
complete(done) {
|
|
138
|
-
$("#node-dialog-cancel").trigger("click");
|
|
139
|
-
setTimeout(done,500);
|
|
85
|
+
title: {
|
|
86
|
+
"en-US": "Node Updates",
|
|
140
87
|
},
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
88
|
+
// image: "images/",
|
|
89
|
+
description: {
|
|
90
|
+
"en-US": `<ul>
|
|
91
|
+
<li>The JSON node will now handle parsing Buffer payloads</li>
|
|
92
|
+
<li>The TCP Client nodes support TLS connections</li>
|
|
93
|
+
<li>The WebSocket node allows you to specify a sub-protocol when connecting</li>
|
|
94
|
+
</ul>`
|
|
95
|
+
}
|
|
149
96
|
}
|
|
150
97
|
]
|
|
151
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
ace.define("ace/mode/jsonata",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/worker/worker_client","ace/mode/text"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,a=e("../worker/worker_client").WorkerClient;(g=Object.keys(jsonata.functions)).sort(function(e,t){return t.length-e.length});function i(){var e=this.createKeywordMapper({"keyword.operator":"and|or|in","constant.language":"null|Infinity|NaN|undefined","constant.language.boolean":"true|false","storage.type":"function"},"identifier");this.$rules={no_regex:[{token:"comment.doc",regex:"\\/\\*",next:"comments"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:"keyword",regex:/λ/},{token:"keyword",regex:g},{token:e,regex:"[a-zA-Z\\$_¡-][a-zA-Z\\d\\$_¡-]*"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"keyword.operator",regex:/\|\||<=|>=|\.\.|\*\*|!=|:=|[=<>`!$%&*+\-~\/^]/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/}],qqstring:[{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}],regex:[{token:"string.regexp",regex:"/[sxngimy]*",next:"start"},{defaultToken:"string.regexp"}],start:[{token:"comment.doc",regex:"\\/\\*",next:"comments"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"empty",regex:"",next:"no_regex"}],comments:[{token:"comment.doc",regex:"\\*\\/",next:"start"},{defaultToken:"comment.doc"}]}}var g="("+g.join("|").replace(/\$/g,"\\$")+")(\\b)";r.inherits(i,o);
|
|
1
|
+
ace.define("ace/mode/jsonata",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/worker/worker_client","ace/mode/text"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,a=e("../worker/worker_client").WorkerClient;(g=Object.keys(jsonata.functions)).sort(function(e,t){return t.length-e.length});function i(){var e=this.createKeywordMapper({"keyword.operator":"and|or|in","constant.language":"null|Infinity|NaN|undefined","constant.language.boolean":"true|false","storage.type":"function"},"identifier");this.$rules={no_regex:[{token:"comment.doc",regex:"\\/\\*",next:"comments"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:"keyword",regex:/λ/},{token:"keyword",regex:g},{token:e,regex:"[a-zA-Z\\$_¡-][a-zA-Z\\d\\$_¡-]*"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"keyword.operator",regex:/\|\||<=|>=|\.\.|\*\*|!=|:=|[=<>`!$%&*+\-~\/^]/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/}],qqstring:[{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}],regex:[{token:"string.regexp",regex:"/[sxngimy]*",next:"start"},{defaultToken:"string.regexp"}],start:[{token:"comment.doc",regex:"\\/\\*",next:"comments"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"empty",regex:"",next:"no_regex"}],comments:[{token:"comment.doc",regex:"\\*\\/",next:"start"},{defaultToken:"comment.doc"}]}}var g="("+g.join("|").replace(/\$/g,"\\$")+")(\\b)";r.inherits(i,o);function s(){this.HighlightRules=i}e=e("./text").Mode;r.inherits(s,e),function(){this.createWorker=function(t){var e=new a(["ace"],"ace/mode/jsonata_worker","JSONataWorker");return e.attachToDocument(t.getDocument()),e.on("annotate",function(e){t.setAnnotations(e.data)}),e.on("terminate",function(){t.clearAnnotations()}),e},this.$id="ace/mode/jsonata"}.call(s.prototype),t.Mode=s});
|