@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.
@@ -1,14 +1,23 @@
1
1
  export default {
2
2
  steps: [
3
3
  {
4
- title: "Create your first flow",
4
+ title: {
5
+ 'en-US': 'Create your first flow',
6
+ 'ja': 'はじめてのフローを作成'
7
+ },
5
8
  width: 400,
6
- description: 'This tutorial will guide you through creating your first flow',
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: 'To add a new tab, click the <i class="fa fa-plus"></i> button',
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: 'The palette lists all of the nodes available to use. Drag a new Inject node into the workspace.',
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: 'Next, drag a new Debug node into the workspace.',
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: 'Add a wire from the output of the Inject node to the input of the Debug node',
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: 'Deploy your changes so the flow is active in the runtime',
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",
@@ -1,151 +1,98 @@
1
1
  export default {
2
- version: "2.1.0",
2
+ version: "2.2.0",
3
3
  steps: [
4
4
  {
5
5
  titleIcon: "fa fa-map-o",
6
- title: { "en-US": "Welcome to Node-RED 2.1!" },
7
- description: { "en-US": "Let's take a moment to discover the new features in this release." }
8
- },
9
- {
10
- title: { "en-US": "A new Tour Guide" },
11
- description: { "en-US": "<p>First, as you've already found, we now have this tour of new features. We'll only show the tour the first time you open the editor for each new version of Node-RED.</p>"+
12
- "<p>You can choose not to see this tour in the future by disabling it under the View tab of User Settings.</p>" }
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: { "en-US": "New Edit menu" },
16
- prepare() {
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
- complete() {
21
- $("#menu-item-edit-menu").parent().removeClass("open")
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: "#menu-item-edit-menu-submenu",
24
- interactive: false,
25
- direction: "left",
26
- description: { "en-US": "<p>The main menu has been updated with a new 'Edit' section. This includes all of the familar options, like cut/paste and undo/redo.</p>"+
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
- $("#menu-item-arrange-menu").parent().removeClass("open")
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: { "en-US": "Hiding tabs" },
46
- element: "#red-ui-workspace-tabs > li.active",
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
- complete() {
53
- $("#red-ui-workspace-tabs > li.active .red-ui-tab-close").css("display","");
54
- }
55
- },
56
- {
57
- title: { "en-US": "Tab menu" },
58
- element: "#red-ui-workspace-tabs-menu",
59
- description: { "en-US": '<p>The new tab menu also provides lots of new options for your tabs.</p>' },
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: { "en-US": "Flow and Group level environment variables" },
71
- element: "#red-ui-workspace-tabs > li.active",
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
- element: "#red-ui-tab-editor-tab-envProperties-link-button",
81
- description: { "en-US": "<p>Their edit dialogs have a new Environment Variables section.</p>" },
82
- },
83
- {
84
- element: ".node-input-env-container-row",
85
- direction: "left",
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: {"en-US":"Link Call node added"},
95
- prepare(done) {
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
- element: '[data-palette-type="link call"]',
102
- direction: "right",
103
- description: { "en-US": '<p>The <code>Link Call</code> node lets you call another flow that begins with a <code>Link In</code> node and get the result back when the message reaches a <code>Link Out</code> node.</p>' },
104
- },
105
- {
106
- title: {"en-US":"MQTT nodes support dynamic connections"},
107
- prepare(done) {
108
- $('[data-palette-type="mqtt out"]')[0].scrollIntoView({block:"center"})
109
- setTimeout(done,100);
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: {"en-US":"File nodes renamed"},
117
- prepare(done) {
118
- $('[data-palette-type="file"]')[0].scrollIntoView({block:"center"})
119
- setTimeout(done,100);
72
+ title: {
73
+ "en-US": "More wiring tricks",
120
74
  },
121
- complete() {
122
- if (this.paletteWasClosed) {
123
- RED.actions.invoke("core:toggle-palette",false)
124
- }
125
- },
126
- element: '[data-palette-type="file"]',
127
- direction: "right",
128
- description: { "en-US": '<p>The file nodes have been renamed to make it clearer which node does what.</p>' },
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: {"en-US":"Deep copy option on Change node"},
132
- prepare(done) {
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
- element: function() {
142
- return $(".node-input-rule-property-deepCopy").next()
143
- },
144
- description: { "en-US": '<p>The Set rule has a new option to create a deep copy of the value. This ensures a complete copy is made, rather than using a reference.</p>' },
145
- },
146
- {
147
- title: { "en-US": "And that's not all..." },
148
- description: { "en-US": "<p>There are many more smaller changes, including:</p><ul><li>Auto-complete suggestions in the <code>msg</code> TypedInput.</li><li>Support for <code>msg.resetTimeout</code> in the <code>Join</code> node.</li><li>Pushing messages to the front of the queue in the <code>Delay</code> node's rate limiting mode.</li><li>An optional second output on the <code>Delay</code> node for rate limited messages.</li></ul>" }
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);o=e("./text").Mode,e=function(){this.HighlightRules=i};r.inherits(e,o),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(e.prototype),t.Mode=e});
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});