iobroker.javascript 7.0.5 → 7.0.8
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/README.md +7 -8
- package/admin/asset-manifest.json +5 -5
- package/admin/google-blockly/blockly_compressed.js +1469 -1704
- package/admin/google-blockly/blocks_compressed.js +164 -218
- package/admin/google-blockly/javascript_compressed.js +100 -328
- package/admin/google-blockly/msg/js/de.js +64 -70
- package/admin/google-blockly/msg/js/en.js +14 -20
- package/admin/google-blockly/msg/js/es.js +39 -45
- package/admin/google-blockly/msg/js/fr.js +59 -65
- package/admin/google-blockly/msg/js/it.js +19 -25
- package/admin/google-blockly/msg/js/nl.js +55 -61
- package/admin/google-blockly/msg/js/pl.js +46 -52
- package/admin/google-blockly/msg/js/pt.js +30 -36
- package/admin/google-blockly/msg/js/ru.js +41 -47
- package/admin/google-blockly/msg/js/uk.js +13 -17
- package/admin/google-blockly/msg/js/zh-cn.js +86 -92
- package/admin/google-blockly/own/blocks_action.js +4 -4
- package/admin/google-blockly/own/blocks_other.js +103 -0
- package/admin/google-blockly/own/blocks_procedures.js +63 -62
- package/admin/google-blockly/own/blocks_sendto.js +62 -60
- package/admin/google-blockly/own/blocks_switch.js +40 -29
- package/admin/google-blockly/own/blocks_system.js +113 -170
- package/admin/google-blockly/own/blocks_time.js +35 -35
- package/admin/google-blockly/own/blocks_timeout.js +42 -42
- package/admin/google-blockly/own/blocks_trigger.js +47 -62
- package/admin/google-blockly/own/blocks_words.js +8 -9
- package/admin/google-blockly/own/field_cron.js +189 -139
- package/admin/google-blockly/own/field_oid.js +250 -170
- package/admin/google-blockly/own/field_script.js +16 -16
- package/admin/static/js/759.7f25ba6c.chunk.js.map +1 -1
- package/admin/static/js/98.bf3dfa2b.chunk.js +2 -0
- package/admin/static/js/98.bf3dfa2b.chunk.js.map +1 -0
- package/admin/static/js/{main.eee05982.js → main.d9e7d255.js} +2 -2
- package/admin/static/js/{main.eee05982.js.map → main.d9e7d255.js.map} +1 -1
- package/admin/tab.html +1 -1
- package/admin/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/admin-config/vsFont/codicon.json +1 -1
- package/io-package.json +40 -40
- package/lib/typescriptTools.js +29 -30
- package/main.js +4 -4
- package/package.json +3 -3
- package/admin/google-blockly/own/blocks_logic.js +0 -64
- package/admin/google-blockly/own/blocks_number.js +0 -25
- package/admin/google-blockly/own/blocks_text.js +0 -23
- package/admin/static/js/98.3bc0a67c.chunk.js +0 -2
- package/admin/static/js/98.3bc0a67c.chunk.js.map +0 -1
|
@@ -85,7 +85,6 @@ Blockly.Blocks['on_ext'] = {
|
|
|
85
85
|
mutationToDom: function () {
|
|
86
86
|
const container = document.createElement('mutation');
|
|
87
87
|
container.setAttribute('items', this.itemCount_);
|
|
88
|
-
|
|
89
88
|
return container;
|
|
90
89
|
},
|
|
91
90
|
/**
|
|
@@ -106,7 +105,6 @@ Blockly.Blocks['on_ext'] = {
|
|
|
106
105
|
decompose: function (workspace) {
|
|
107
106
|
const containerBlock = workspace.newBlock('on_ext_oid_container');
|
|
108
107
|
containerBlock.initSvg();
|
|
109
|
-
|
|
110
108
|
let connection = containerBlock.getInput('STACK').connection;
|
|
111
109
|
for (let i = 0; i < this.itemCount_; i++) {
|
|
112
110
|
const itemBlock = workspace.newBlock('on_ext_oid');
|
|
@@ -114,7 +112,6 @@ Blockly.Blocks['on_ext'] = {
|
|
|
114
112
|
connection.connect(itemBlock.previousConnection);
|
|
115
113
|
connection = itemBlock.nextConnection;
|
|
116
114
|
}
|
|
117
|
-
|
|
118
115
|
return containerBlock;
|
|
119
116
|
},
|
|
120
117
|
/**
|
|
@@ -131,19 +128,18 @@ Blockly.Blocks['on_ext'] = {
|
|
|
131
128
|
itemBlock = itemBlock.nextConnection &&
|
|
132
129
|
itemBlock.nextConnection.targetBlock();
|
|
133
130
|
}
|
|
134
|
-
|
|
135
131
|
// Disconnect any children that don't belong.
|
|
136
132
|
for (let k = 0; k < this.itemCount_; k++) {
|
|
137
|
-
|
|
133
|
+
const connection = this.getInput('OID' + k).connection.targetConnection;
|
|
138
134
|
if (connection && connections.indexOf(connection) === -1) {
|
|
139
135
|
connection.disconnect();
|
|
140
136
|
}
|
|
141
137
|
}
|
|
142
|
-
|
|
143
138
|
this.itemCount_ = connections.length;
|
|
144
|
-
if (this.itemCount_ < 1)
|
|
139
|
+
if (this.itemCount_ < 1) {
|
|
140
|
+
this.itemCount_ = 1;
|
|
141
|
+
}
|
|
145
142
|
this.updateShape_();
|
|
146
|
-
|
|
147
143
|
// Reconnect any child blocks.
|
|
148
144
|
for (let i = 0; i < this.itemCount_; i++) {
|
|
149
145
|
Blockly.Mutator.reconnect(connections[i], this, 'OID' + i);
|
|
@@ -157,9 +153,8 @@ Blockly.Blocks['on_ext'] = {
|
|
|
157
153
|
saveConnections: function(containerBlock) {
|
|
158
154
|
let itemBlock = containerBlock.getInputTargetBlock('STACK');
|
|
159
155
|
let i = 0;
|
|
160
|
-
|
|
161
156
|
while (itemBlock) {
|
|
162
|
-
|
|
157
|
+
const input = this.getInput('OID' + i);
|
|
163
158
|
itemBlock.valueConnection_ = input && input.connection.targetConnection;
|
|
164
159
|
i++;
|
|
165
160
|
itemBlock = itemBlock.nextConnection &&
|
|
@@ -191,7 +186,8 @@ Blockly.Blocks['on_ext'] = {
|
|
|
191
186
|
// Add new inputs.
|
|
192
187
|
const wp = this.workspace;
|
|
193
188
|
|
|
194
|
-
|
|
189
|
+
let i;
|
|
190
|
+
for (i = 0; i < this.itemCount_; i++) {
|
|
195
191
|
let _input = this.getInput('OID' + i);
|
|
196
192
|
if (!_input) {
|
|
197
193
|
_input = this.appendValueInput('OID' + i);
|
|
@@ -220,7 +216,6 @@ Blockly.Blocks['on_ext'] = {
|
|
|
220
216
|
}, 100, _input);
|
|
221
217
|
}
|
|
222
218
|
}
|
|
223
|
-
|
|
224
219
|
// Remove deleted inputs.
|
|
225
220
|
while (this.getInput('OID' + i)) {
|
|
226
221
|
this.removeInput('OID' + i);
|
|
@@ -257,14 +252,13 @@ Blockly.Blocks['on_ext'] = {
|
|
|
257
252
|
};
|
|
258
253
|
Blockly.JavaScript['on_ext'] = function(block) {
|
|
259
254
|
const dropdown_condition = block.getFieldValue('CONDITION');
|
|
255
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
260
256
|
const ack_condition = block.getFieldValue('ACK_CONDITION');
|
|
261
|
-
const statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
262
|
-
|
|
263
257
|
let val;
|
|
264
258
|
if (dropdown_condition === 'true' || dropdown_condition === 'false') {
|
|
265
259
|
val = 'val: ' + dropdown_condition;
|
|
266
260
|
} else {
|
|
267
|
-
val =
|
|
261
|
+
val = 'change: "' + dropdown_condition + '"';
|
|
268
262
|
}
|
|
269
263
|
|
|
270
264
|
const oids = [];
|
|
@@ -280,12 +274,12 @@ Blockly.JavaScript['on_ext'] = function(block) {
|
|
|
280
274
|
}
|
|
281
275
|
}
|
|
282
276
|
}
|
|
283
|
-
|
|
284
277
|
const oid = '[].concat(' + oids.join(').concat(') + ')';
|
|
285
278
|
|
|
286
|
-
|
|
279
|
+
const code = 'on({ id: ' + oid + ', ' + val + (ack_condition ? ', ack: ' + ack_condition : '') + ' }, async (obj) => {\n' +
|
|
287
280
|
(oids.length === 1 ? Blockly.JavaScript.prefixLines('let value = obj.state.val;\nlet oldValue = obj.oldState.val;', Blockly.JavaScript.INDENT) + '\n' : '') +
|
|
288
|
-
|
|
281
|
+
statements_name + '});\n';
|
|
282
|
+
return code;
|
|
289
283
|
};
|
|
290
284
|
|
|
291
285
|
// --- ON -----------------------------------------------------------
|
|
@@ -344,8 +338,8 @@ Blockly.JavaScript['on'] = function(block) {
|
|
|
344
338
|
const value_objectid = block.getFieldValue('OID');
|
|
345
339
|
const dropdown_condition = block.getFieldValue('CONDITION');
|
|
346
340
|
const ack_condition = block.getFieldValue('ACK_CONDITION');
|
|
347
|
-
const
|
|
348
|
-
const
|
|
341
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
342
|
+
const objectname = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : '';
|
|
349
343
|
|
|
350
344
|
Blockly.Msg.VARIABLES_DEFAULT_NAME = 'value';
|
|
351
345
|
|
|
@@ -353,13 +347,13 @@ Blockly.JavaScript['on'] = function(block) {
|
|
|
353
347
|
if (dropdown_condition === 'true' || dropdown_condition === 'false') {
|
|
354
348
|
val = 'val: ' + dropdown_condition;
|
|
355
349
|
} else {
|
|
356
|
-
val =
|
|
350
|
+
val = 'change: "' + dropdown_condition + '"';
|
|
357
351
|
}
|
|
358
352
|
|
|
359
|
-
return
|
|
360
|
-
Blockly.JavaScript.prefixLines('let value = obj.state.val
|
|
353
|
+
return 'on({ id: "' + value_objectid + '"' + (objectname ? '/*' + objectname + '*/' : '') + ', ' + val + (ack_condition ? ', ack: ' + ack_condition : '') + ' }, async (obj) => {\n' +
|
|
354
|
+
Blockly.JavaScript.prefixLines('let value = obj.state.val;\n', Blockly.JavaScript.INDENT) + '\n' +
|
|
361
355
|
Blockly.JavaScript.prefixLines('let oldValue = obj.oldState.val;', Blockly.JavaScript.INDENT) + '\n' +
|
|
362
|
-
|
|
356
|
+
+ statements_name +
|
|
363
357
|
'});\n';
|
|
364
358
|
};
|
|
365
359
|
|
|
@@ -376,7 +370,6 @@ Blockly.Blocks['on_source'] = {
|
|
|
376
370
|
* @this Blockly.Block
|
|
377
371
|
*/
|
|
378
372
|
init: function() {
|
|
379
|
-
|
|
380
373
|
this.appendDummyInput()
|
|
381
374
|
.appendField('↪');
|
|
382
375
|
|
|
@@ -404,7 +397,7 @@ Blockly.Blocks['on_source'] = {
|
|
|
404
397
|
[Blockly.Translate('on_source_oldstate_ack'), 'oldState.ack'],
|
|
405
398
|
[Blockly.Translate('on_source_oldstate_lc'), 'oldState.lc'],
|
|
406
399
|
[Blockly.Translate('on_source_oldstate_c'), 'oldState.c'],
|
|
407
|
-
[Blockly.Translate('on_source_oldstate_user'),
|
|
400
|
+
[Blockly.Translate('on_source_oldstate_user'), 'oldState.user']
|
|
408
401
|
]), 'ATTR');
|
|
409
402
|
|
|
410
403
|
this.setInputsInline(true);
|
|
@@ -424,7 +417,7 @@ Blockly.Blocks['on_source'] = {
|
|
|
424
417
|
// Is the block nested in a trigger?
|
|
425
418
|
let block = this;
|
|
426
419
|
do {
|
|
427
|
-
if (this.FUNCTION_TYPES.
|
|
420
|
+
if (this.FUNCTION_TYPES.includes(block.type)) {
|
|
428
421
|
legal = true;
|
|
429
422
|
break;
|
|
430
423
|
}
|
|
@@ -447,13 +440,11 @@ Blockly.Blocks['on_source'] = {
|
|
|
447
440
|
Blockly.JavaScript['on_source'] = function(block) {
|
|
448
441
|
let attr = block.getFieldValue('ATTR');
|
|
449
442
|
const parts = attr.split('.');
|
|
450
|
-
|
|
451
443
|
if (parts.length > 1) {
|
|
452
444
|
attr = '(obj.' + parts[0] + ' ? obj.' + attr + ' : "")';
|
|
453
445
|
} else {
|
|
454
446
|
attr = 'obj.' + attr;
|
|
455
447
|
}
|
|
456
|
-
|
|
457
448
|
return [attr, Blockly.JavaScript.ORDER_ATOMIC];
|
|
458
449
|
};
|
|
459
450
|
|
|
@@ -461,6 +452,9 @@ Blockly.JavaScript['on_source'] = function(block) {
|
|
|
461
452
|
Blockly.Trigger.blocks['schedule'] =
|
|
462
453
|
'<block type="schedule">'
|
|
463
454
|
+ ' <value name="SCHEDULE">'
|
|
455
|
+
//+ ' <shadow type="text">'
|
|
456
|
+
//+ ' <field name="TEXT">test</field>'
|
|
457
|
+
//+ ' </shadow>'
|
|
464
458
|
+ ' </value>'
|
|
465
459
|
+ ' <value name="STATEMENT">'
|
|
466
460
|
+ ' </value>'
|
|
@@ -487,16 +481,15 @@ Blockly.Blocks['schedule'] = {
|
|
|
487
481
|
};
|
|
488
482
|
Blockly.JavaScript['schedule'] = function(block) {
|
|
489
483
|
let schedule = block.getFieldValue('SCHEDULE');
|
|
490
|
-
const
|
|
484
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
491
485
|
|
|
492
486
|
if (schedule[0] === '{') {
|
|
493
487
|
schedule = "'" + schedule + "'";
|
|
494
488
|
} else {
|
|
495
489
|
schedule = '"' + schedule + '"';
|
|
496
490
|
}
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
statement +
|
|
491
|
+
return 'schedule(' + schedule + ', async () => {\n' +
|
|
492
|
+
statements_name +
|
|
500
493
|
'});\n';
|
|
501
494
|
};
|
|
502
495
|
|
|
@@ -559,11 +552,11 @@ Blockly.Blocks['astro'] = {
|
|
|
559
552
|
};
|
|
560
553
|
Blockly.JavaScript['astro'] = function(block) {
|
|
561
554
|
const astrotype = block.getFieldValue('TYPE');
|
|
562
|
-
const offset
|
|
563
|
-
const
|
|
555
|
+
const offset = parseInt(block.getFieldValue('OFFSET'), 10);
|
|
556
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
564
557
|
|
|
565
|
-
return
|
|
566
|
-
|
|
558
|
+
return 'schedule({ astro: "' + astrotype + '", shift: ' + offset + ' }, async () => {\n' +
|
|
559
|
+
statements_name +
|
|
567
560
|
'});\n';
|
|
568
561
|
};
|
|
569
562
|
|
|
@@ -683,10 +676,10 @@ Blockly.Blocks['schedule_create'] = {
|
|
|
683
676
|
Blockly.JavaScript['schedule_create'] = function (block) {
|
|
684
677
|
const name = Blockly.JavaScript.variableDB_.safeName_(block.getFieldValue('NAME'));
|
|
685
678
|
const schedule = Blockly.JavaScript.valueToCode(block, 'SCHEDULE', Blockly.JavaScript.ORDER_ATOMIC);
|
|
686
|
-
const
|
|
679
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
687
680
|
|
|
688
681
|
return name + ' = schedule(' + schedule + ', async () => {\n' +
|
|
689
|
-
|
|
682
|
+
statements_name +
|
|
690
683
|
'});\n';
|
|
691
684
|
};
|
|
692
685
|
|
|
@@ -741,7 +734,7 @@ Blockly.Blocks['schedule_clear'] = {
|
|
|
741
734
|
|
|
742
735
|
Blockly.JavaScript['schedule_clear'] = function(block) {
|
|
743
736
|
const name = Blockly.JavaScript.variableDB_.safeName_(block.getFieldValue('NAME'));
|
|
744
|
-
return
|
|
737
|
+
return '(function () { if (' + name + ') { clearSchedule(' + name + '); ' + name + ' = null; }})();\n';
|
|
745
738
|
};
|
|
746
739
|
|
|
747
740
|
// --- CRON dialog --------------------------------------------------
|
|
@@ -769,7 +762,7 @@ Blockly.Blocks['field_cron'] = {
|
|
|
769
762
|
|
|
770
763
|
Blockly.JavaScript['field_cron'] = function(block) {
|
|
771
764
|
const cron = block.getFieldValue('CRON');
|
|
772
|
-
return [
|
|
765
|
+
return ['\'' + cron + '\'', Blockly.JavaScript.ORDER_ATOMIC]
|
|
773
766
|
};
|
|
774
767
|
|
|
775
768
|
// --- CRON builder --------------------------------------------------
|
|
@@ -795,7 +788,6 @@ Blockly.Trigger.blocks['cron_builder'] =
|
|
|
795
788
|
Blockly.Blocks['cron_builder'] = {
|
|
796
789
|
// Checkbox.
|
|
797
790
|
init: function() {
|
|
798
|
-
|
|
799
791
|
this.appendDummyInput()
|
|
800
792
|
.appendField(Blockly.Translate('cron_builder_CRON'));
|
|
801
793
|
|
|
@@ -805,10 +797,10 @@ Blockly.Blocks['cron_builder'] = {
|
|
|
805
797
|
this.sourceBlock_.setInputsInline(option === true || option === 'true' || option === 'TRUE');
|
|
806
798
|
}), 'LINE');
|
|
807
799
|
|
|
808
|
-
|
|
800
|
+
let _input = this.appendValueInput('DOW')
|
|
809
801
|
.appendField(Blockly.Translate('cron_builder_dow'));
|
|
810
802
|
|
|
811
|
-
|
|
803
|
+
const wp = this.workspace;
|
|
812
804
|
setTimeout(function (_input) {
|
|
813
805
|
if (!_input.connection.isConnected()) {
|
|
814
806
|
const _shadow = wp.newBlock('text');
|
|
@@ -841,7 +833,6 @@ Blockly.Blocks['cron_builder'] = {
|
|
|
841
833
|
}
|
|
842
834
|
}, 100, _input);
|
|
843
835
|
|
|
844
|
-
|
|
845
836
|
_input = this.appendValueInput('HOURS')
|
|
846
837
|
.appendField(Blockly.Translate('cron_builder_hour'));
|
|
847
838
|
setTimeout(function (_input) {
|
|
@@ -853,7 +844,6 @@ Blockly.Blocks['cron_builder'] = {
|
|
|
853
844
|
}
|
|
854
845
|
}, 100, _input);
|
|
855
846
|
|
|
856
|
-
|
|
857
847
|
_input = this.appendValueInput('MINUTES')
|
|
858
848
|
.appendField(Blockly.Translate('cron_builder_minutes'));
|
|
859
849
|
setTimeout(function (_input) {
|
|
@@ -888,7 +878,6 @@ Blockly.Blocks['cron_builder'] = {
|
|
|
888
878
|
const container = document.createElement('mutation');
|
|
889
879
|
container.setAttribute('seconds', this.seconds_);
|
|
890
880
|
container.setAttribute('as_line', this.as_line_);
|
|
891
|
-
|
|
892
881
|
return container;
|
|
893
882
|
},
|
|
894
883
|
/**
|
|
@@ -946,7 +935,6 @@ Blockly.JavaScript['cron_builder'] = function(block) {
|
|
|
946
935
|
days + '.toString().trim() + \' \' + ' +
|
|
947
936
|
months + '.toString().trim() + \' \' + ' +
|
|
948
937
|
dow + '.toString().trim()';
|
|
949
|
-
|
|
950
938
|
return [code, Blockly.JavaScript.ORDER_ATOMIC]
|
|
951
939
|
};
|
|
952
940
|
|
|
@@ -984,10 +972,10 @@ Blockly.Blocks['onMessage'] = {
|
|
|
984
972
|
|
|
985
973
|
Blockly.JavaScript['onMessage'] = function (block) {
|
|
986
974
|
const message = block.getFieldValue('MESSAGE');
|
|
987
|
-
const
|
|
975
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
988
976
|
|
|
989
|
-
return
|
|
990
|
-
|
|
977
|
+
return 'onMessage("' + message + '", async (data) => {\n' +
|
|
978
|
+
statements_name +
|
|
991
979
|
'});\n';
|
|
992
980
|
};
|
|
993
981
|
|
|
@@ -1035,18 +1023,16 @@ Blockly.Blocks['onFile'] = {
|
|
|
1035
1023
|
this.setHelpUrl(getHelp('onFile_help'));
|
|
1036
1024
|
}
|
|
1037
1025
|
};
|
|
1038
|
-
|
|
1039
1026
|
Blockly.JavaScript['onFile'] = function (block) {
|
|
1040
1027
|
const value_objectid = Blockly.JavaScript.valueToCode(block, 'OID', Blockly.JavaScript.ORDER_ATOMIC);
|
|
1041
1028
|
const file = Blockly.JavaScript.valueToCode(block, 'FILE', Blockly.JavaScript.ORDER_ATOMIC);
|
|
1042
1029
|
const withFile = block.getFieldValue('WITH_FILE');
|
|
1043
|
-
const
|
|
1044
|
-
const
|
|
1030
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
1031
|
+
const objectname = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : '';
|
|
1045
1032
|
|
|
1046
|
-
return
|
|
1047
|
-
'
|
|
1048
|
-
|
|
1049
|
-
'});\n';
|
|
1033
|
+
return 'onFile(' + value_objectid + (objectname ? '/*' + objectname + '*/' : '') + ', ' +
|
|
1034
|
+
file + ', ' + (withFile === 'TRUE' ? 'true' : 'false') +
|
|
1035
|
+
', async (id, fileName, size, data, mimeType) => {\n' + statements_name + '});\n';
|
|
1050
1036
|
};
|
|
1051
1037
|
|
|
1052
1038
|
// --- onFile -----------------------------------------------------------
|
|
@@ -1081,11 +1067,10 @@ Blockly.Blocks['offFile'] = {
|
|
|
1081
1067
|
this.setHelpUrl(getHelp('offFile_help'));
|
|
1082
1068
|
}
|
|
1083
1069
|
};
|
|
1084
|
-
|
|
1085
1070
|
Blockly.JavaScript['offFile'] = function (block) {
|
|
1086
1071
|
const value_objectid = Blockly.JavaScript.valueToCode(block, 'OID', Blockly.JavaScript.ORDER_ATOMIC);
|
|
1087
1072
|
const file = Blockly.JavaScript.valueToCode(block, 'FILE', Blockly.JavaScript.ORDER_ATOMIC);
|
|
1088
|
-
const
|
|
1073
|
+
const objectname = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : '';
|
|
1089
1074
|
|
|
1090
|
-
return
|
|
1091
|
-
};
|
|
1075
|
+
return 'offFile(' + value_objectid + (objectname ? '/*' + objectname + '*/' : '') + ', ' + file + ');\n';
|
|
1076
|
+
};
|
|
@@ -444,17 +444,16 @@ Blockly.Words['onMessage_message'] = {'en': 'message',
|
|
|
444
444
|
Blockly.Words['onMessage_tooltip'] = {'en': 'message', 'de': 'Meldung', 'ru': 'сообщение', 'pt': 'mensagem', 'nl': 'bericht', 'fr': 'message', 'it': 'messaggio', 'es': 'mensaje', 'pl': 'komunikat', 'zh-cn': '消息', 'uk': 'повідомлення'};
|
|
445
445
|
Blockly.Words['onMessage_help'] = {'en': 'onMessage', 'de': 'onMessage', 'ru': 'onMessage', 'pt': 'onMessage', 'nl': 'onMessage', 'fr': 'onMessage', 'it': 'onMessage', 'es': 'onMessage', 'pl': 'onMessage', 'zh-cn': 'onMessage', 'uk': 'onMessage'};
|
|
446
446
|
|
|
447
|
-
// ---
|
|
448
|
-
Blockly.Words['
|
|
449
|
-
Blockly.Words['logic_between_max'] = { "en": "Max", "de": "Max", "ru": "Макс", "pt": "Max", "nl": "Max", "fr": "Max", "it": "Max", "es": "Max", "pl": "Max", "uk": "Макс", "zh-cn": "Max" };
|
|
447
|
+
// --- OTHER --------------------------------------------------
|
|
448
|
+
Blockly.Words['Other'] = {'en': 'Other', 'de': 'Sonstige', 'ru': 'Другое', 'pt': 'Outros', 'nl': 'Andere', 'fr': 'Autres', 'it': 'Altri', 'es': 'Otros', 'pl': 'Inny', 'zh-cn': '其他', 'uk': 'Інше'};
|
|
450
449
|
|
|
451
|
-
// ---
|
|
452
|
-
Blockly.Words['
|
|
453
|
-
Blockly.Words['
|
|
450
|
+
// --- other between --------------------------------------------------
|
|
451
|
+
Blockly.Words['other_between_min'] = { "en": "Min", "de": "Min", "ru": "Мин", "pt": "Min", "nl": "Min", "fr": "Min", "it": "Min", "es": "Min", "pl": "Min", "uk": "Мінуси", "zh-cn": "明 明" };
|
|
452
|
+
Blockly.Words['other_between_max'] = { "en": "Max", "de": "Max", "ru": "Макс", "pt": "Max", "nl": "Max", "fr": "Max", "it": "Max", "es": "Max", "pl": "Max", "uk": "Макс", "zh-cn": "Max" };
|
|
454
453
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
}
|
|
454
|
+
// --- other_ifempty --------------------------------------------------
|
|
455
|
+
Blockly.Words['other_ifempty'] = { "en": "if empty", "de": "wenn leer", "ru": "если пусто", "pt": "se vazio", "nl": "_", "fr": "si vide", "it": "se vuoto", "es": "si está vacío", "pl": "jeśli chodzi o puste", "uk": "якщо порожній", "zh-cn": "空" };
|
|
456
|
+
Blockly.Words['other_ifempty_then'] = { "en": "then", "de": "dann", "ru": "затем", "pt": "então", "nl": "dan", "fr": "puis", "it": "allora", "es": "entonces", "pl": "potem", "uk": "потім", "zh-cn": "然后" };
|
|
458
457
|
|
|
459
458
|
Blockly.Translate = function (word, lang) {
|
|
460
459
|
lang = lang || systemLang;
|