-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathblocks_compressed.js
More file actions
415 lines (409 loc) · 180 KB
/
blocks_compressed.js
File metadata and controls
415 lines (409 loc) · 180 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
// Do not edit this file; automatically generated by build.py.
'use strict';
/*
Visual Blocks Editor
Copyright 2012 Fred Lin.
https://github.com/gasolin/BlocklyDuino
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
Blockly.Blocks.base={};Blockly.Blocks.base_delay={helpUrl:"http://arduino.cc/en/Reference/delay",init:function(){this.setColour(150);this.appendValueInput("DELAY_TIME","Number").appendField("Systeem wachttijd").setCheck("Number");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("Systeem geeft het op na aantal milliseconden")}};
Blockly.Blocks.pauze={helpUrl:"http://arduino.cc/en/Reference/delay",init:function(){this.setColour(155);this.appendValueInput("PAUZE","Number").appendField("Pauze").setCheck("Number");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("Pauze voor aantal milliseconden")}};
Blockly.Blocks.process_exit={helpUrl:"http://arduino.cc/en/Reference/delay",init:function(){this.setColour(120);this.appendValueInput("PROCESS_EXIT","Number").appendField("Einde applicatie").setCheck("Number");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("Einde van het applicatie")}};
Blockly.Blocks.datum_now={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(230);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["Datum en tijd Huidige datum","date_now_serial"],["Datum en tijd Nu, in tekstformaat","date_now_text"]]),"datum_now");this.setOutput(!0,"String");this.setTooltip("Huidige datum in milliseoconden")}};
Blockly.Blocks.random1={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(235);this.appendDummyInput().appendField("genereer onzin tekst").appendField(new Blockly.FieldDropdown([["Random 4 letter","4"],["Random 8 lettercijver","8"]]),"random1_waarde_len");this.setOutput(!0,"String");this.setTooltip("Willekeurig tekst")}};
Blockly.Blocks.ja_nee_null={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(239);this.appendDummyInput().appendField("Kies Ja/Nee").appendField(new Blockly.FieldDropdown([["NULL waarde","null"],["Boolean Waar","true"],["Boolean Onwaar","false"]]),"ja_nee_null_waarde");this.setOutput(!0,"Number");this.setTooltip("Ja, nee of..")}};
Blockly.Blocks.windows_compoort={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(230);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["USB poort (default)","null"],["Windows COM1","COM1"],["Windows COM2","COM2"],["Windows COM3","COM3"],["Windows COM4","COM4"],["Windows COM5","COM5"],["Windows COM6","COM6"],["Windows COM7","COM7"],["Windows COM8","COM8"],["Windows COM9","COM9"],["MacOS /dev/cu.wchusbserial1410 ","/dev/cu.wchusbserial1410"],["MacOS /dev/cu.wchusbserial1411 ",
"/dev/cu.wchusbserial1411"],["MacOS /dev/cu.wchusbserial1420 ","/dev/cu.wchusbserial1420"],["MacOS /dev/cu.wchusbserial1421 ","/dev/cu.wchusbserial1421"],["MacOS /dev/cu.wchusbserial1422 ","/dev/cu.wchusbserial1422"],["MacOS /dev/cu.HC-06-DevB bluetooth","/dev/cu.HC-06-DevB"],["Linux /dev/ttyUSB0","/dev/ttyUSB0"],["Linux /dev/ttyUSB1","/dev/ttyUSB1"],["Linux /dev/ttyUSB2","/dev/ttyUSB2"],["Linux /dev/tty.HC-06-DevB bluetooth","/dev/tty.HC-06-DevB"]]),"COM_POORT");this.setOutput(!0,"String");
this.setTooltip("COM poort in Windows")}};Blockly.Blocks.base_map={helpUrl:"http://arduino.cc/en/Reference/map",init:function(){this.setColour(230);this.appendValueInput("NUM","Number").appendField("Map ").setCheck("Number");this.appendValueInput("DMAX","Number").appendField("value to [0-").setCheck("Number");this.appendDummyInput().appendField("]");this.setInputsInline(!0);this.setOutput(!0);this.setTooltip("Re-maps a number from [0-1024] to another.")}};
Blockly.Blocks.inout_buildin_led={helpUrl:"http://arduino.cc/en/Reference/DigitalWrite",init:function(){this.setColour(190);this.appendDummyInput().appendField("Build-in LED Stat").appendField(new Blockly.FieldDropdown([["HIGH","HIGH"],["LOW","LOW"]]),"STAT");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("light or off the build-in LED")}};
Blockly.Blocks.inout_digital_write={helpUrl:"http://arduino.cc/en/Reference/DigitalWrite",init:function(){this.setColour(230);this.appendDummyInput().appendField("DigitalWrite PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN").appendField("Stat").appendField(new Blockly.FieldDropdown([["HIGH","HIGH"],["LOW","LOW"]]),"STAT");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("Write digital value to a specific Port")}};
Blockly.Blocks.inout_digital_read={helpUrl:"http://arduino.cc/en/Reference/DigitalRead",init:function(){this.setColour(230);this.appendDummyInput().appendField("DigitalRead PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.setOutput(!0,"Boolean");this.setTooltip("")}};
Blockly.Blocks.inout_analog_write={helpUrl:"http://arduino.cc/en/Reference/AnalogWrite",init:function(){this.setColour(230);this.appendDummyInput().appendField("AnalogWrite PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.appendValueInput("NUM","Number").appendField("value").setCheck("Number");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("Write analog value between 0 and 255 to a specific Port")}};
Blockly.Blocks.inout_analog_read={helpUrl:"http://arduino.cc/en/Reference/AnalogRead",init:function(){this.setColour(230);this.appendDummyInput().appendField("AnalogRead PIN#").appendField(new Blockly.FieldDropdown(profile["default"].analog),"PIN");this.setOutput(!0,"Number");this.setTooltip("Return value between 0 and 1024")}};
Blockly.Blocks.inout_tone={helpUrl:"http://www.arduino.cc/en/Reference/Tone",init:function(){this.setColour(230);this.appendDummyInput().appendField("Tone PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.appendValueInput("NUM","Number").appendField("frequency").setCheck("Number");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("Generate audio tones on a pin")}};
Blockly.Blocks.inout_notone={helpUrl:"http://www.arduino.cc/en/Reference/NoTone",init:function(){this.setColour(230);this.appendDummyInput().appendField("No tone PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("Stop generating a tone on a pin")}};
Blockly.Blocks.inout_highlow={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(230);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["HIGH","HIGH"],["LOW","LOW"]]),"BOOL");this.setOutput(!0,"Boolean");this.setTooltip("")}};
Blockly.Blocks.servo_move={helpUrl:"http://www.arduino.cc/playground/ComponentLib/servo",init:function(){this.setColour(190);this.appendDummyInput().appendField("Servo").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/depot/images/product/a991.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.appendValueInput("DEGREE","Number").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField("Degree (0~180)");this.setPreviousStatement(!0,
null);this.setNextStatement(!0,null);this.setTooltip("move between 0~180 degree")}};
Blockly.Blocks.servo_read_degrees={helpUrl:"http://www.arduino.cc/playground/ComponentLib/servo",init:function(){this.setColour(190);this.appendDummyInput().appendField("Servo").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/depot/images/product/a991.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField("Read Degrees");this.setOutput(!0,"Number");this.setTooltip("return that degree with the last servo move.")}};
Blockly.Blocks.serial_print={helpUrl:"http://www.arduino.cc/en/Serial/Print",init:function(){this.setColour(230);this.appendValueInput("CONTENT","String").appendField("Console debug print");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("Prints data to the console/serial port as human-readable ASCII text.")}};
Blockly.Blocks.beeldskerm={};
Blockly.Blocks.declare_matrix_led={helpUrl:"http://arduino.cc/en/Reference/delay",init:function(){this.setColour(205);this.appendDummyInput().appendField("8x8 Matrix ").appendField(new Blockly.FieldImage("https://i.ebayimg.com/images/g/x8wAAOSwLqFV7qNF/s-l300.jpg",32,32)).appendField(" sensornaam: ").appendField(new Blockly.FieldDropdown([["LEDScherm1","LEDScherm_1"],["LEDScherm2","LEDScherm_2"],["LEDScherm3","LEDScherm_3"],["LEDScherm4","LEDScherm_4"]]),"DECLARE_LEDMATRIX_NAAM1").appendField("Soort meter: ").appendField(new Blockly.FieldDropdown([["Standaard LED Matrix met MAX7219","MAX7219"],
["Adafruit HT16K33 7-segment ","HT16K33"],["Adafruit HIH6130 met I2C ","HIH6130"]]),"DECLARE_LEDMATRIX_SENSOR");this.appendValueInput("DECLARE_LEDMATRIX_FREQ","Number").appendField("update freq (ms) [0-500]").setCheck("Number");this.appendValueInput("DECLARE_LEDMATRIX_IO_POORT_DAT","Number").appendField("IO: dat").setCheck("Number");this.appendValueInput("DECLARE_LEDMATRIX_IO_POORT_CLK","Number").appendField("IO: clk").setCheck("Number");this.appendValueInput("DECLARE_LEDMATRIX_IO_POORT_CS",
"Number").appendField("IO: cs").setCheck("Number");this.appendDummyInput().appendField(" ");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("I2C gebruik geen IO dit is default op I2C-poort")}};
Blockly.Blocks.cmd_matrix_led={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(205);this.appendDummyInput().appendField("8x8 Matrix ");this.appendDummyInput().appendField(new Blockly.FieldImage("https://i.ebayimg.com/images/g/x8wAAOSwLqFV7qNF/s-l300.jpg",32,32)).appendField(" welke LED: ").appendField(new Blockly.FieldDropdown([["LEDScherm1","LEDScherm_1"],["LEDScherm2","LEDScherm_2"],["LEDScherm3","LEDScherm_3"],["LEDScherm4","LEDScherm_4"]]),"CMD_LEDMATRIX_NAAM1");
this.appendValueInput("CMD_LEDMATRIX_STATE","String").appendField("Wat moet ik doen? ").setCheck("String");this.appendValueInput("CMD_LEDMAXTRIX_TEXT","String").appendField("Tekstje of aantal").setCheck("String");this.appendValueInput("CMD_LEDMAXTRIX_POSX","Number").appendField("Op kolom [0-16]").setCheck("Number");this.appendValueInput("CMD_LEDMAXTRIX_POSY","Number").appendField("in regeltje [0-16]").setCheck("Number");this.setTooltip("LED matrix");this.setInputsInline(!0);this.setPreviousStatement(!0);
this.setNextStatement(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.cmd_matrix_doen_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(207);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["Matrix schrijven tekst","CHARS"],["Matrix sprite tekenen ","draw"],["Matrix aan ","on"],["Matrix uit ","off"],["Matrix leegmaken ","clear"],["Matrix helderheid instelling","brightness"],["Matrix demo ","demo"]]),"DECLARE_LEDMATRIX_DOEN_LIJST");this.setOutput(!0,"String");this.setTooltip("Welke IO poort")}};
Blockly.Blocks.easylabs_image_create={init:function(){this.jsonInit({colour:128,args0:[{type:"input_dummy"},{colour:"#000000",type:"field_dropdown",name:"00",message0:"BPM",options:[["Tempo150","PIEZO_TEMPO150"],["Tempo200","PIEZO_TEMPO200"]]},{colour:"#000000",type:"field_input",message0:"Muziek note: %1",name:"01",text:"A - B - C "},{colour:"#000000",type:"field_colour",name:"02"},{colour:"#000000",type:"field_colour",name:"03"},{colour:"#000000",type:"field_colour",name:"04"},{type:"input_dummy"},
{colour:"#000000",type:"field_colour",name:"10"},{colour:"#000000",type:"field_colour",name:"11"},{colour:"#000000",type:"field_colour",name:"12"},{colour:"#000000",type:"field_colour",name:"13"},{colour:"#000000",type:"field_colour",name:"14"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"20"},{colour:"#000000",type:"field_colour",name:"21"},{colour:"#000000",type:"field_colour",name:"22"},{colour:"#000000",type:"field_colour",name:"23"},{colour:"#000000",type:"field_colour",name:"24"},
{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"30"},{colour:"#000000",type:"field_colour",name:"31"},{colour:"#000000",type:"field_colour",name:"32"},{colour:"#000000",type:"field_colour",name:"33"},{colour:"#000000",type:"field_colour",name:"34"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"40"},{colour:"#000000",type:"field_colour",name:"41"},{colour:"#000000",type:"field_colour",name:"42"},{colour:"#000000",type:"field_colour",name:"43"},{colour:"#000000",
type:"field_colour",name:"44"}],output:"LEDMATRIX_PLAATJE",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image",tooltip:"Teken een afbeelding.",message0:"Afbeelding maken %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18 %19 %20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %30"})}};
Blockly.Blocks.sprite_build={init:function(){this.setColour(206);this.appendDummyInput().appendField("8x8 matrix: bouw sprite ");this.appendDummyInput().appendField("7").appendField(new Blockly.FieldCheckbox("FALSE"),"LED07").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED17").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED27").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED37").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),
"LED47");this.appendDummyInput().appendField("6").appendField(new Blockly.FieldCheckbox("FALSE"),"LED06").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED16").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED26").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED36").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED46");this.appendDummyInput().appendField("5").appendField(new Blockly.FieldCheckbox("FALSE"),"LED05").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),
"LED15").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED25").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED35").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED45");this.appendDummyInput().appendField("4").appendField(new Blockly.FieldCheckbox("FALSE"),"LED04").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED14").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED24").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),
"LED34").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED44");this.appendDummyInput().appendField("3").appendField(new Blockly.FieldCheckbox("FALSE"),"LED03").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED13").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED23").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED33").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED43");this.appendDummyInput().appendField("2").appendField(new Blockly.FieldCheckbox("FALSE"),
"LED02").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED12").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED22").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED32").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED42");this.appendDummyInput().appendField("1").appendField(new Blockly.FieldCheckbox("FALSE"),"LED01").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED11").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),
"LED21").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED31").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED41");this.appendDummyInput().appendField("0").appendField(new Blockly.FieldCheckbox("FALSE"),"LED00").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED10").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED20").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),"LED30").appendField(" ").appendField(new Blockly.FieldCheckbox("FALSE"),
"LED40");goog.labs.userAgent.browser.isFirefox();this.appendDummyInput().appendField(" 0 1 2 3 4 5 6 7");this.setOutput(!0,"Sprite");this.setTooltip("Bouw een sprite")}};
Blockly.Blocks.declare_I2C_LCD={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(151);this.appendDummyInput().appendField("i2c LCD");this.appendDummyInput().appendField(new Blockly.FieldImage("https://sc02.alicdn.com/kf/HTB1HtNDKpXXXXa5XFXXq6xXFXXXn/Module-For-Arduino-1602-Blue-Backlight-LCD-Display-16x2-HD44780-Character-LCD-IIC-I2C-W-Serial.jpg_50x50.jpg",32,32)).appendField("Soort").appendField(new Blockly.FieldDropdown([["standaard","PCF8574"],["I2C, PCF8574A","PCF8574A"],
["I2C, JHD1313M1 (Grove)","JHD1313M1"]]),"DECLARE_I2C_LCD1_CONTROLLER1");this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["LCD1","LCD_1"],["LCD2","LCD_2"],["LCD3","LCD_3"],["LCD4","LCD_4"]]),"DECLARE_I2C_LCD1_NAAM1");this.appendValueInput("DECLARE_I2C_LCD1_FREQ","Number").appendField("Scherm bijwerken [0-3000]ms").setCheck("Number");this.appendDummyInput().appendField(" I2C adres ").appendField(new Blockly.FieldDropdown([["I2C poort 0x27",'"0x27"']]),
"DECLARE_I2C_LCD1_POORTNUMMER");this.setInputsInline(!0);this.setTooltip("LCD helderheid");this.setPreviousStatement(!0);this.setNextStatement(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.cmd_I2C_LCD={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(151);this.appendDummyInput().appendField("i2c LCD");this.appendDummyInput().appendField(new Blockly.FieldImage("https://sc02.alicdn.com/kf/HTB1HtNDKpXXXXa5XFXXq6xXFXXXn/Module-For-Arduino-1602-Blue-Backlight-LCD-Display-16x2-HD44780-Character-LCD-IIC-I2C-W-Serial.jpg_50x50.jpg",32,32)).appendField(" welke scherm: ").appendField(new Blockly.FieldDropdown([["LCD1","LCD_1"],["LCD2","LCD_2"],["LCD3",
"LCD_3"],["LCD4","LCD_4"]]),"CMD_I2C_LCD1_NAAM1");this.appendValueInput("CMD_I2C_LCD1_STATE","String").appendField("Wat moet ik doen? ").setCheck("String");this.appendValueInput("CMD_I2C_LCD1_TEXT","String").appendField("Tekst om te schrijven").setCheck("String");this.appendValueInput("CMD_I2C_LCD1_POSX","Number").appendField("Op kolom [0-16]").setCheck("Number");this.appendValueInput("CMD_I2C_LCD1_POSY","Number").appendField("in regeltje [0-1]").setCheck("Number");this.setInputsInline(!0);this.setTooltip("LCD helderheid");
this.setPreviousStatement(!0);this.setNextStatement(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.cmd_lcd_text_op_2_regels={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(151);this.setOutput(!0,"String");this.appendDummyInput().appendField("LCD teks");this.appendValueInput("CMD_I2C_TEXT_L1","String").appendField("Tekst Lijn 1:").setCheck("String");this.appendValueInput("CMD_I2C_TEXT_L2","String").appendField("Tekst Lijn 2:").setCheck("String");this.setInputsInline(!0);this.setTooltip("LCD helderheid");this.setPreviousStatement(!0);this.setNextStatement(!0);
this.elseCount_=this.elseifCount_=0}};Blockly.Blocks.colour={};Blockly.Blocks.colour.HUE=20;Blockly.Blocks.colour_picker={init:function(){this.setHelpUrl(Blockly.Msg.COLOUR_PICKER_HELPURL);this.setColour(Blockly.Blocks.colour.HUE);this.appendDummyInput().appendField(new Blockly.FieldColour("#ff0000"),"COLOUR");this.setOutput(!0,"Colour");this.setTooltip(Blockly.Msg.COLOUR_PICKER_TOOLTIP)}};
Blockly.Blocks.colour_random={init:function(){this.setHelpUrl(Blockly.Msg.COLOUR_RANDOM_HELPURL);this.setColour(Blockly.Blocks.colour.HUE);this.appendDummyInput().appendField(Blockly.Msg.COLOUR_RANDOM_TITLE);this.setOutput(!0,"Colour");this.setTooltip(Blockly.Msg.COLOUR_RANDOM_TOOLTIP)}};
Blockly.Blocks.colour_rgb={init:function(){this.setHelpUrl(Blockly.Msg.COLOUR_RGB_HELPURL);this.setColour(Blockly.Blocks.colour.HUE);this.appendValueInput("RED").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_TITLE).appendField(Blockly.Msg.COLOUR_RGB_RED);this.appendValueInput("GREEN").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_GREEN);this.appendValueInput("BLUE").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_BLUE);
this.setOutput(!0,"Colour");this.setTooltip(Blockly.Msg.COLOUR_RGB_TOOLTIP)}};
Blockly.Blocks.colour_blend={init:function(){this.setHelpUrl(Blockly.Msg.COLOUR_BLEND_HELPURL);this.setColour(Blockly.Blocks.colour.HUE);this.appendValueInput("COLOUR1").setCheck("Colour").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_BLEND_TITLE).appendField(Blockly.Msg.COLOUR_BLEND_COLOUR1);this.appendValueInput("COLOUR2").setCheck("Colour").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_BLEND_COLOUR2);this.appendValueInput("RATIO").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_BLEND_RATIO);
this.setOutput(!0,"Colour");this.setTooltip(Blockly.Msg.COLOUR_BLEND_TOOLTIP)}};Blockly.Blocks.EasyLab4Kids={};var mathChangeJson={message0:"Stop het applicatie",previousStatement:null,nextStatement:null,colour:242};Blockly.Blocks.process_exit={init:function(){this.jsonInit(mathChangeJson);var a=this;this.setTooltip(function(){return'Stop het applicatie "%1".'.replace("%1",a.getFieldValue("VAR"))})}};
Blockly.Blocks.ledje={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(105);this.appendDummyInput().appendField("LED");this.appendDummyInput().appendField("Soort LEDje").appendField(new Blockly.FieldImage("https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSP5GdKwXzV007Sh-P5j6u6t7e1mkZeaEYVHDrSZURMNNEdU1il",32,32)).appendField(new Blockly.FieldDropdown([["LEDje","LED"],["Adafruit PCA9685 I2C","PCA9685"]]),"LEDJE1_SENSOR");this.appendDummyInput().appendField(" Ledje Naam.: ").appendField(new Blockly.FieldDropdown([["Led1",
"LEDJE_1"],["Led2","LEDJE_2"],["Led3","LEDJE_3"],["Led4","LEDJE_5"],["Led5","LEDJE_6"],["Led6","LEDJE_7"],["Led7","LEDJE_7"],["Led8","LEDJE_8"]]),"LEDJE_NAAM1");this.appendDummyInput().appendField("Instelling").appendField(new Blockly.FieldDropdown([["Aan","on"],["Uit","off"],["Toggle","toggle"]]),"LEDJE1_STAAT");this.appendValueInput("LEDJE1_WAARDE","Number").appendField("Helderheid [0-255]").setCheck("Number");this.setInputsInline(!0);this.setTooltip("LED helderheid");this.appendValueInput("LEDJE1_IO_POORT",
"String").appendField("Ledje: ").setCheck("String");this.setTooltip("default: EasyLab4Kids rood");this.setPreviousStatement(!0);this.setNextStatement(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.declare_ledje={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(105);this.appendDummyInput().appendField("LED");this.appendDummyInput().appendField("Soort LEDje").appendField(new Blockly.FieldImage("https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSP5GdKwXzV007Sh-P5j6u6t7e1mkZeaEYVHDrSZURMNNEdU1il",32,32)).appendField(new Blockly.FieldDropdown([["LEDje","LED"],["Adafruit PCA9685 I2C","PCA9685"]]),"DECLARE_LEDJE1_SENSOR");this.appendDummyInput().appendField(" Ledje Naam.: ").appendField(new Blockly.FieldDropdown([["Led1",
"LEDJE_1"],["Led2","LEDJE_2"],["Led3","LEDJE_3"],["Led4","LEDJE_5"],["Led5","LEDJE_6"],["Led6","LEDJE_7"],["Led7","LEDJE_7"],["Led8","LEDJE_8"]]),"DECLARE_LEDJE_NAAM1");this.appendValueInput("DECLARE_LEDJE1_IO_POORT","String").appendField("Ledje: ").setCheck("String");this.setTooltip("default: EasyLab4Kids rood");this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0)}};
Blockly.Blocks.cmd_ledje={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(105);this.appendDummyInput().appendField("LEDje doen").appendField(new Blockly.FieldImage("https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSP5GdKwXzV007Sh-P5j6u6t7e1mkZeaEYVHDrSZURMNNEdU1il",32,32));this.appendDummyInput().appendField(" Ledje Naam.: ").appendField(new Blockly.FieldDropdown([["Led1","LEDJE_1"],["Led2","LEDJE_2"],["Led3","LEDJE_3"],["Led4","LEDJE_5"],["Led5","LEDJE_6"],["Led6",
"LEDJE_7"],["Led7","LEDJE_7"],["Led8","LEDJE_8"]]),"CMD_LEDJE_NAAM1");this.appendDummyInput().appendField("Instelling").appendField(new Blockly.FieldDropdown([["Aan","on"],["Uit","off"],["Toggle","toggle"]]),"CMD_LEDJE1_STAAT");this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0)}};
Blockly.Blocks.toggleswitch_close_open={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(75);this.appendDummyInput().appendField(new Blockly.FieldImage("https://onlinekabelshop-nl.scdn2.secure.raxcdn.com/media/catalog/product/cache/1/thumbnail/94x94/9df78eab33525d08d6e5fb8d27136e95/t/s/ts-11.jpg",32,32)).appendField("SPDT Aan/uit").appendField(new Blockly.FieldDropdown([["Open","open"],["Uitgeschakeld","close"]]),"SWITCH_OPEN_CLOSED");this.appendDummyInput().appendField(" SkakelaarID: ").appendField(new Blockly.FieldDropdown([["Aan uit 1",
"Aan_uit_1"],["Aan uit 2","Aan_uit_2"],["Aan uit 3","Aan_uit_3"],["Aan uit 4","Aan_uit_4"]]),"AAN_UIT_NAAM1");this.appendValueInput("KROKODIL_POORTNUMMER","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default EasyLab4Kids D8");this.appendDummyInput().appendField(" ");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.piezo_muziek={init:function(){this.setHelpUrl(Blockly.Msg.TEXT_TEXT_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.appendDummyInput().appendField(" Lyn Nr.: ").appendField(new Blockly.FieldDropdown([["Lyn1","PIEZO1_LYN_1"],["Lyn2","PIEZO1_LYN_2"],["Lyn3","PIEZO1_LYN_3"],["Lyn4","PIEZO1_LYN_4"]]),"PIEZO_NAAM1").appendField(new Blockly.FieldDropdown([["Tempo100","100"],["Tempo150","150"],["Tempo200","200"],["Tempo250","250"]]),"PIEZO_TEMPO1").appendField(new Blockly.FieldDropdown([["Beat1",
"1"],["Beat2","1 / 2"],["Beat3","1 / 3"],["Beat4","1 / 4"]]),"PIEZO_BEAT1").appendField("Liedje:").appendField(this.newQuote_(!0)).appendField(new Blockly.FieldTextInput(""),"PIEZO_MUZIEK1").appendField(this.newQuote_(!1));this.setOutput(!0,"String");this.setTooltip(Blockly.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(a){return new Blockly.FieldImage(a==this.RTL?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==":
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC",12,12,'"')}};
Blockly.Blocks.piezo1={helpUrl:"http://arduino.cc/en/Reference/delay",init:function(){this.setColour(120);this.appendDummyInput().appendField("Piezo luidspreker").appendField(new Blockly.FieldImage("http://shallowsky.com/arduino/class/buzzer.jpg",32,32)).appendField(" PiezoNaam: ").appendField(new Blockly.FieldDropdown([["Buzzer1","objPiezo_1"],["Buzzer2","objPiezo_2"],["Buzzer3","objPiezo_3"],["Buzzer4","objPiezo_4"]]),"PIEZO_NAAM1").appendField("Controller: ").appendField(new Blockly.FieldDropdown([["Standaard",
"null"],["I2C Backpack",'"I2C_BACKPACK"']]),"F_PIEZO_SENSOR");this.appendDummyInput().appendField(" Tempo: ").appendField(new Blockly.FieldDropdown([["Tempo100","100"],["Tempo150","150"],["Tempo200","200"],["Tempo250","250"]]),"PIEZO_TEMPO1");this.appendDummyInput().appendField(" Beat: ").appendField(new Blockly.FieldDropdown([["Beat 1 op 4","1 / 4"],["Beat 2 op 4","2 / 4"],["Beat 3 op 4","3 / 4"],["Beat 4 op 4","4 / 4"]]),"PIEZO_BEAT1");this.appendValueInput("PIEZO_MUZIEK1","String").appendField("Liedje");
this.appendValueInput("PIEZO_IO_POORT","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default EasyLab4Kids D0");this.appendDummyInput().appendField(" ");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("bijvoorbeeld liedje=A B C D C - - A")}};
Blockly.Blocks.proximity_sensor_data={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(145);this.appendDummyInput().appendField("EasyLab-afstand sensor");this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["Sonar1","HC_SR401_1"],["Sonar2","HC_SR401_2"],["Sonar3","HC_SR401_3"],["Sonar4","HC_SR401_4"]]),"SENSOR_NAAM1");this.appendStatementInput("F_PROXIMITY_DO0").appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN).appendField(new Blockly.FieldImage("http://www.robotop.lv/285-home/ultrazvukovoj-datchik-rasstoyaniya.jpg",
32,32)).appendField(new Blockly.FieldDropdown([["HC-SR04 Sonar","HCSR04"],["MB1000 analoog","MB1000"],["MB1010 analoog","MB1010"],["MB1003 analoog","MB1003"],["GP2Y0A21YK IR afstand sensor","GP2Y0A21YK"],["GP2D120XJ00F IR afstand sensor","GP2D120XJ00F"],["GP2Y0A02YK0F IR afstand sensor","GP2Y0A02YK0F"],["HCSR04 (and friends) I2C Backpack sonar","HCSR04I2CBACKPACK"],["LIDAR-Lite afstand sensor","LIDARLITE"],["SRF10 sonar afstand sensor","SRF10"],["Lego EVS_EV3","EVS_EV3_US"]]),"F_PROXIMITY_SENSOR");
this.appendValueInput("PROX_SENSOR_IO_POORT","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default D8");this.appendDummyInput().appendField(new Blockly.FieldDropdown([["Beweging gedetecteerd","data"],["Beweging heeft gestopt","change"]]),"PROXIMITY_SENSOR_STAAT");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.declare_proximity_sensor_data={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(145);this.appendDummyInput("F_PROXIMITY_DO0").appendField(new Blockly.FieldImage("http://www.robotop.lv/285-home/ultrazvukovoj-datchik-rasstoyaniya.jpg",32,32)).appendField("Soort afstandsensor").appendField(new Blockly.FieldDropdown([["HC-SR04 Sonar","HCSR04"],["MB1000 analoog","MB1000"],["MB1010 analoog","MB1010"],["MB1003 analoog","MB1003"],["GP2Y0A21YK IR afstand sensor",
"GP2Y0A21YK"],["GP2D120XJ00F IR afstand sensor","GP2D120XJ00F"],["GP2Y0A02YK0F IR afstand sensor","GP2Y0A02YK0F"],["HCSR04 (and friends) I2C Backpack sonar","HCSR04I2CBACKPACK"],["LIDAR-Lite afstand sensor","LIDARLITE"],["SRF10 sonar afstand sensor","SRF10"],["Lego EVS_EV3","EVS_EV3_US"]]),"DECLARE_F_PROXIMITY_SENSOR");this.appendDummyInput().appendField(" Welke sensor: ").appendField(new Blockly.FieldDropdown([["Sonar1","HC_SR401_1"],["Sonar2","HC_SR401_2"],["Sonar3","HC_SR401_3"],["Sonar4","HC_SR401_4"]]),
"DECLARE_PROX_SENSOR_NAAM1");this.appendValueInput("DECLARE_PROX_SENSOR_IO_POORT","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default D8");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.event_proximity_sensor_data={init:function(){this.setColour(145);this.appendDummyInput().appendField(" Wanneer ").appendField(new Blockly.FieldDropdown([["Beweging gedetecteerd","data"],["Beweging heeft gestopt","change"]]),"EVENT_PROXIMITY_SENSOR_STAAT");this.appendStatementInput("EVENT_F_PROXIMITY_DO").appendField(new Blockly.FieldImage("http://www.robotop.lv/285-home/ultrazvukovoj-datchik-rasstoyaniya.jpg",32,32)).appendField(" Sensor naam: ").appendField(new Blockly.FieldDropdown([["Sonar1",
"HC_SR401_1"],["Sonar2","HC_SR401_2"],["Sonar3","HC_SR401_3"],["Sonar4","HC_SR401_4"]]),"EVENT_PROXIMITY_SENSOR_NAAM");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.button_Down_hold_up={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(75);this.appendDummyInput().appendField(new Blockly.FieldImage("https://www.boxelectronica.com/334-thickbox_default/push-button-12x12x8mm.jpg",32,32)).appendField("Knop Aan/uit/toggle").appendField(new Blockly.FieldDropdown([["Open","open"],["Uitgeschakeld","close"]]),"SWITCH_OPEN_CLOSED");this.appendDummyInput().appendField(" knop naam: ").appendField(new Blockly.FieldDropdown([["Knop1",
"Knop_1"],["Knop2","Knop_2"],["Knop3","Knop_3"],["Knop4","Knop_4"],["Knop5","Knop_5"],["Knop6","Knop_6"]]),"BUTTON_DOWN_HOLD_UP_NAAM1");this.appendValueInput("BUTTON_DOWN_HOLD_UP_POORTNUMMER","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default EasyLab4Kids D10");this.appendDummyInput().appendField(" ");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.declare_button_Down_hold_up={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(75);this.appendDummyInput().appendField(new Blockly.FieldImage("https://www.boxelectronica.com/334-thickbox_default/push-button-12x12x8mm.jpg",32,32)).appendField(" Gebruik knop: ").appendField(new Blockly.FieldDropdown([["Knop1","Knop_1"],["Knop2","Knop_2"],["Knop3","Knop_3"],["Knop4","Knop_4"],["Knop5","Knop_5"],["Knop6","Knop_6"]]),"DECLARE_BUTTON_DOWN_HOLD_UP_NAAM1");this.appendDummyInput().appendField(" Soort knop: ").appendField(new Blockly.FieldDropdown([["Knopje",
"null"],["LEGO EVS: EV3",'"EVS_EV3"'],["LEGO_EVS: NXT",'"EVS_NXT"']]),"DECLARE_BUTTON_DOWN_HOLD_UP_CONTROLLER1");this.appendValueInput("DECLARE_BUTTON_DOWN_HOLD_UP_POORTNUMMER","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default EasyLab4Kids D10");this.appendDummyInput().appendField(" ");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.event_button_Down_hold_up={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(75);this.appendDummyInput().appendField(new Blockly.FieldImage("https://www.boxelectronica.com/334-thickbox_default/push-button-12x12x8mm.jpg",32,32)).appendField(" wanneer knop: ").appendField(new Blockly.FieldDropdown([["Knop1","Knop_1"],["Knop2","Knop_2"],["Knop3","Knop_3"],["Knop4","Knop_4"],["Knop5","Knop_5"],["Knop6","Knop_6"]]),"EVENT_BUTTON_DOWN_HOLD_UP_NAAM1");this.appendStatementInput("EVENT_BUTTON_ON_OFF_DO").appendField("knop").appendField(new Blockly.FieldDropdown([["Knop ingedrukt",
"press"],["Knop ingehouden","hold"],["Knop losgelaat","release"]]),"EVENT_BUTTON_DOWN_HOLD_UP_STATE");this.appendDummyInput().appendField(" ");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.declare_spdt_skakelaar={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(78);this.appendDummyInput().appendField(new Blockly.FieldImage("https://onlinekabelshop-nl.scdn2.secure.raxcdn.com/media/catalog/product/cache/1/thumbnail/94x94/9df78eab33525d08d6e5fb8d27136e95/t/s/ts-11.jpg",32,32)).appendField(" SkakelaarID: ").appendField(new Blockly.FieldDropdown([["Aan-uit-1","Aan_uit_1"],["Aan-uit-2","Aan_uit_2"],["Aan-uit-3","Aan_uit_3"],["Aan-uit-4","Aan_uit_4"]]),
"DECLARE_SPDT_NAAM1");this.appendValueInput("DECLARE_SPDT_IO_POORT","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default EasyLab4Kids D8");this.appendDummyInput().appendField(" ");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.event_spdt_skakelaar={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(78);this.appendDummyInput().appendField(new Blockly.FieldImage("https://onlinekabelshop-nl.scdn2.secure.raxcdn.com/media/catalog/product/cache/1/thumbnail/94x94/9df78eab33525d08d6e5fb8d27136e95/t/s/ts-11.jpg",32,32)).appendField(" schakelaar: ").appendField(new Blockly.FieldDropdown([["Aan uit 1","Aan_uit_1"],["Aan uit 2","Aan_uit_2"],["Aan uit 3","Aan_uit_3"],["Aan uit 4","Aan_uit_4"]]),
"EVENT_SPDT_NAAM1");this.appendStatementInput("EVENT_SPDT_DO").appendField(" Wanneer: ").appendField(new Blockly.FieldDropdown([["Aan","open"],["Uit","close"]]),"EVENT_SPDT_STATE1");this.appendDummyInput().appendField(" ");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.procedures_easylab4kids_boards={init:function(){var a=Math.floor(5*Math.random()+1);this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL);this.setColour(50);(new Blockly.FieldTextInput("board"+a,Blockly.Procedures.rename)).setSpellcheck(!1);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["EasyLab0","board0"],["EasyLab1","board1"],["EasyLab2","board2"],["EasyLab3","board3"],["EasyLab4","board4"],["EasyLab5","board5"],["EasyLab6","board6"]]),"BOARD_NAME").appendField("Microcontroller:").appendField("",
"BOARD_PARAMS").appendField(new Blockly.FieldDropdown([["Arduino-EasyLab4Kids","BOARD_TYPE_EASYLAB4KIDS"],["Raspberry Pi","BOARD_TYPE_RASPI"],["BBC Microbit","BOARD_TYPE_MICROBIT"],["Linux met GPIO-poorten","BOARD_TYPE_LINUX"],["Beaglebone black","BOARD_TYPE_BEAGLEBONE"],["Intel Edison","BOARD_TYPE_INTEL_EDISON"],["C.H.I.P","BOARD_TYPE_CHIP"],["BlendMicro","BOARD_TYPE_BLENDMICRO"],["LightBlue Bean","BOARD_TYPE_LIGHTBLUEBEAN"],["Electric Imp","BOARD_TYPE_ELECTRICIMP"],["Tessel","BOARD_TYPE_TESSEL"],
["Linino One","BOARD_TYPE_LININO"],["ESP 8266 WiFi","BOARD_TYPE_ESP8266"],["Adafruit Playground","BOARD_TYPE_PLAYGROUND"],["pcDuino","BOARD_TYPE_PCDUINO"],["Alle overige","BOARD_TYPE_OTHER"]]),"BOARD_TYPE").appendField(new Blockly.FieldDropdown([["Board READY","ready"],["Board Connect","connect"],["Board Exit","exit"],["Board Info","info"],["Board Fail","fail"],["Board warn","warn"],["Board log bericht","message"]]),"BOARD_EVENTS");this.appendValueInput("BOARD_PORT","String").appendField("USB poort:").setCheck("String");
this.setInputsInline(!0);this.setTooltip("Optionele USB aansluiting");this.setTooltip(Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP);this.arguments_=[];this.setStatements_(!0);this.statementConnection_=null},setStatements_:function(a){this.hasStatements_!==a&&(a?(this.appendStatementInput("BOARD_STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("BOARD_RETURN")&&this.moveInputBefore("STACK","BOARD_RETURN")):this.removeInput("BOARD_STACK",!0),this.hasStatements_=a)},updateParams_:function(){for(var a=
!1,b={},c=0;c<this.arguments_.length;c++){if(b["arg_"+this.arguments_[c].toLowerCase()]){a=!0;break}b["arg_"+this.arguments_[c].toLowerCase()]=!0}a?this.setWarningText(Blockly.Msg.PROCEDURES_DEF_DUPLICATE_WARNING):this.setWarningText(null);a="";this.arguments_.length&&(a=Blockly.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", "));this.setFieldValue(a,"BOARD_PARAMS")},mutationToDom:function(){for(var a=document.createElement("mutation"),b=0;b<this.arguments_.length;b++){var c=document.createElement("arg");
c.setAttribute("name",this.arguments_[b]);a.appendChild(c)}this.hasStatements_||a.setAttribute("statements","false");return a},domToMutation:function(a){this.arguments_=[];for(var b=0,c;c=a.childNodes[b];b++)"arg"==c.nodeName.toLowerCase()&&this.arguments_.push(c.getAttribute("name"));this.updateParams_();this.setStatements_("false"!==a.getAttribute("statements"))},decompose:function(a){var b=Blockly.Block.obtain(a,"procedures_mutatorcontainer");b.initSvg();this.getInput("BOARD_RETURN")?b.setFieldValue(this.hasStatements_?
"TRUE":"FALSE","BOARD_STATEMENTS"):b.getInput("STATEMENT_INPUT").setVisible(!1);for(var c=b.getInput("BOARD_STACK").connection,d=0;d<this.arguments_.length;d++)Blockly.Block.obtain(a,"procedures_mutatorarg"),"".initSvg(),c.connect("".previousConnection),c="".nextConnection;return b},compose:function(a){this.arguments_=[];this.paramIds_=[];for(var b=a.getInputTargetBlock("BOARD_STACK");b;)this.arguments_.push(b.getFieldValue("BOARD_NAME")),this.paramIds_.push(b.id),b=b.nextConnection&&b.nextConnection.targetBlock();
this.updateParams_();Blockly.Procedures.mutateCallers(this.getFieldValue("BOARD_NAME"),this.workspace,this.arguments_,this.paramIds_);a=a.getFieldValue("BOARD_STATEMENTS");if(null!==a&&(a="TRUE"==a,this.hasStatements_!=a))if(a)this.setStatements_(!0),a=this.getInput("BOARD_STACK").connection,a.targetConnection||!this.statementConnection_||this.statementConnection_.targetConnection||this.statementConnection_.sourceBlock_.workspace!=this.workspace?this.statementConnection_=null:a.connect(this.statementConnection_);
else{a=this.getInput("BOARD_STACK").connection;if(this.statementConnection_=a.targetConnection)a=a.targetBlock(),a.setParent(null),a.bumpNeighbours_();this.setStatements_(!1)}},dispose:function(){var a=this.getFieldValue("BOARD_NAME");Blockly.Procedures.disposeCallers(a,this.workspace);this.constructor.prototype.dispose.apply(this,arguments)},getProcedureDef:function(){return[this.getFieldValue("BOARD_NAME"),this.arguments_,!1]},getVars:function(){return this.arguments_},renameVar:function(a,b){for(var c=
!1,d=0;d<this.arguments_.length;d++)Blockly.Names.equals(a,this.arguments_[d])&&(this.arguments_[d]=b,c=!0);if(c&&(this.updateParams_(),this.mutator.isVisible())){c=this.mutator.workspace_.getAllBlocks();d=0;for(var e;e=c[d];d++)"procedures_mutatorarg"==e.type&&Blockly.Names.equals(a,e.getFieldValue("BOARD_NAME"))&&e.setFieldValue(b,"BOARD_NAME")}},customContextMenu:function(a){var b={enabled:!0},c=this.getFieldValue("BOARD_NAME");b.text=Blockly.Msg.PROCEDURES_CREATE_DO.replace("%1",c);var d=goog.dom.createDom("mutation");
d.setAttribute("name",c);for(var e=0;e<this.arguments_.length;e++)c=goog.dom.createDom("arg"),c.setAttribute("name",this.arguments_[e]),d.appendChild(c);d=goog.dom.createDom("block",null,d);d.setAttribute("type",this.callType_);b.callback=Blockly.ContextMenu.callbackFactory(this,d);a.push(b);if(!this.isCollapsed())for(e=0;e<this.arguments_.length;e++)b={enabled:!0},c=this.arguments_[e],b.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",c),d=goog.dom.createDom("field",null,c),d.setAttribute("name",
"VAR"),d=goog.dom.createDom("block",null,d),d.setAttribute("type","variables_get"),b.callback=Blockly.ContextMenu.callbackFactory(this,d),a.push(b)},callType_:"procedures_callnoreturn"};
Blockly.Blocks.motion_data_change_motionstart={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(135);this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["PIR1","PIRmotion_1"],["PIR2","PIRmotion_2"],["PIR3","PIRmotion_3"],["PIR4","PIRmotion_4"]]),"PIR_SENSOR_NAAM1");this.appendValueInput("PIR_IO_POORT","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default A7");this.appendDummyInput().appendField(" wanneer ").appendField(new Blockly.FieldDropdown([["Beweging gedetecteerd",
"motionstart"],["Beweging heeft gestopt","motionend"],["Gekalibreerd gereed voor detectie","calibrated"],["Wijziging in detectiegebied","change"],["Data in detectiegebied","data"]]),"PIR_SENSOR_STAAT");this.appendStatementInput("MOTION_DO0").appendField(new Blockly.FieldImage("http://litbimg.rightinthebox.com/images/m/201407/ancbjy1405584274823.jpg",32,32)).appendField("PIR sensor").appendField(new Blockly.FieldDropdown([["HC-SR501 PIR Infrarooi","HC-SR501"],["GP2Y0D805Z0F Infrarooi","GP2Y0D805Z0F"]]),
"PIR_SENSOR_TYPE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.declare_motion_data_change_motionstart={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(135);this.appendDummyInput("DECLARE_MOTION_DO0").appendField(new Blockly.FieldImage("http://litbimg.rightinthebox.com/images/m/201407/ancbjy1405584274823.jpg",32,32)).appendField("PIR sensor").appendField(new Blockly.FieldDropdown([["HC-SR501 PIR Infrarooi","HC-SR501"],["GP2Y0D805Z0F Infrarooi","GP2Y0D805Z0F"]]),"PIR_SENSOR_TYPE");this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["PIR1",
"PIRmotion_1"],["PIR2","PIRmotion_2"],["PIR3","PIRmotion_3"],["PIR4","PIRmotion_4"]]),"PIR_SENSOR_NAAM1");this.appendValueInput("PIR_IO_POORT","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default A7");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.event_motion_data_change_motionstart={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(135);this.appendDummyInput().appendField(" wanneer ").appendField(new Blockly.FieldDropdown([["Beweging gedetecteerd","motionstart"],["Beweging heeft gestopt","motionend"],["Gekalibreerd gereed voor detectie","calibrated"],["Wijziging in detectiegebied","change"],["Data in detectiegebied","data"]]),"EVENT_PIR_SENSOR_STAAT");this.appendStatementInput("EVENT_MOTION_DO").appendField(new Blockly.FieldImage("http://litbimg.rightinthebox.com/images/m/201407/ancbjy1405584274823.jpg",
32,32)).appendField(" Welke PIR: ").appendField(new Blockly.FieldDropdown([["PIR1","PIRmotion_1"],["PIR2","PIRmotion_2"],["PIR3","PIRmotion_3"],["PIR4","PIRmotion_4"]]),"EVENT_PIR_SENSOR_NAAM1");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.ledje_knipper_fade={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(135);this.appendDummyInput().appendField("LED fadein");this.appendDummyInput().appendField(new Blockly.FieldImage("https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSP5GdKwXzV007Sh-P5j6u6t7e1mkZeaEYVHDrSZURMNNEdU1il",32,32)).appendField("Soort LEDje").appendField(new Blockly.FieldDropdown([["LEDje","LED"],["Adafruit PCA9685 I2C","PCA9685"]]),"LEDJE_KNIPPER_SENSOR");this.appendDummyInput().appendField("Instelling").appendField(new Blockly.FieldDropdown([["Fade in",
"fadeIn"],["Fade out","fadeOut"],["Pulse","pulse"],["Stop","stop"]]),"LEDJE_KNIPPER_STAAT");this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["Ledje knipper 1","LEDJE_KNIPPER_1"],["Ledje knipper 2","PIRmotion_2"],["Ledje knipper 3","PIRmotion_3"],["Ledje knipper 4","PIRmotion_4"]]),"LEDJE_KNIPPER_NAAM1");this.appendValueInput("LEDJE_KNIPPER_MS","Number").appendField("Doorlooptijd").setCheck("Number");this.setInputsInline(!0);this.setTooltip("LEDJe laten knipperen of fadeout");
this.appendValueInput("LEDJE_KNIPPER_IO_POORT","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default D13");this.appendDummyInput().appendField(" ");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);var a=this;this.setTooltip(function(){if(a.elseifCount_||a.elseCount_){if(!a.elseifCount_&&a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_2;if(a.elseifCount_&&!a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_3;if(a.elseifCount_&&
a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_4}else return Blockly.Msg.CONTROLS_IF_TOOLTIP_1;return""});this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.ledje_raspi={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.appendDummyInput().appendField("LED raspi");this.appendDummyInput().appendField(new Blockly.FieldImage("https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSP5GdKwXzV007Sh-P5j6u6t7e1mkZeaEYVHDrSZURMNNEdU1il",32,32)).appendField("Soort LEDje").appendField(new Blockly.FieldDropdown([["LEDje","LED"],["Adafruit PCA9685 I2C","PCA9685"]]),"LEDJE1_SENSOR_RASPI");this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["Knipper LED1",
"LEDJE_1"],["Knipper LED2","LEDJE_2"],["Knipper LED3","LEDJE_3"],["Knipper LED4","LEDJE_4"]]),"LEDJE1_NAAM1");this.appendValueInput("LEDJE1_IO_POORT_RASPI","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default A3");this.appendDummyInput().appendField("Instelling").appendField(new Blockly.FieldDropdown([["Aan","on"],["Uit","off"],["Toggle","toggle"]]),"LEDJE1_STAAT_RASPI");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setInputsInline(!0);
var a=this;this.setTooltip(function(){if(a.elseifCount_||a.elseCount_){if(!a.elseifCount_&&a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_2;if(a.elseifCount_&&!a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_3;if(a.elseifCount_&&a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_4}else return Blockly.Msg.CONTROLS_IF_TOOLTIP_1;return""});this.elseCount_=this.elseifCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var a=document.createElement("mutation");
this.elseifCount_&&a.setAttribute("elseif",this.elseifCount_);this.elseCount_&&a.setAttribute("else",1);return a},domToMutation:function(a){this.elseifCount_=parseInt(a.getAttribute("elseif"),10)||0;this.elseCount_=parseInt(a.getAttribute("else"),10)||0;for(a=1;a<=this.elseifCount_;a++)this.appendValueInput("EASYLED1_IF"+a).setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("EASYLED1_DO"+a).appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("EASYLED1_ELSE").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE)},
decompose:function(a){var b=Blockly.Block.obtain(a,"controls_if_if");b.initSvg();for(var c=b.getInput("EASYLED1_STACK").connection,d=1;d<=this.elseifCount_;d++){var e=Blockly.Block.obtain(a,"controls_if_elseif");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}this.elseCount_&&(a=Blockly.Block.obtain(a,"controls_if_else"),a.initSvg(),c.connect(a.previousConnection));return b},compose:function(a){this.elseCount_&&this.removeInput("EASYLED1_ELSE");this.elseCount_=0;for(var b=this.elseifCount_;0<
b;b--)this.removeInput("EASYLED1_IF"+b),this.removeInput("EASYLED1_DO"+b);this.elseifCount_=0;for(a=a.getInputTargetBlock("EASYLED1_STACK");a;){switch(a.type){case "controls_if_elseif":this.elseifCount_++;b=this.appendValueInput("EASYLED1_IF"+this.elseifCount_).setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF);var c=this.appendStatementInput("EASYLED1_DO"+this.elseifCount_);c.appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);a.valueConnection_&&b.connection.connect(a.valueConnection_);
a.statementConnection_&&c.connection.connect(a.statementConnection_);break;case "controls_if_else":this.elseCount_++;b=this.appendStatementInput("EASYLED1_ELSE");b.appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE);a.statementConnection_&&b.connection.connect(a.statementConnection_);break;default:throw"Unknown block type.";}a=a.nextConnection&&a.nextConnection.targetBlock()}},saveConnections:function(a){a=a.getInputTargetBlock("STACK");for(var b=1;a;){switch(a.type){case "controls_if_elseif":var c=this.getInput("EASYLED1_IF"+
b),d=this.getInput("EASYLED1_DO"+b);a.valueConnection_=c&&c.connection.targetConnection;a.statementConnection_=d&&d.connection.targetConnection;b++;break;case "controls_if_else":d=this.getInput("EASYLED1_ELSE");a.statementConnection_=d&&d.connection.targetConnection;break;default:throw"Unknown block type.";}a=a.nextConnection&&a.nextConnection.targetBlock()}}};
Blockly.Blocks.servo1={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(130);this.appendDummyInput("SERVO1_DO0").appendField("Servo").appendField(new Blockly.FieldImage("https://img.banggood.com/thumb/view/oaupload/banggood/images/C1/C3/26e1a05f-e751-4549-b657-ada33629223b.jpg",32,32)).appendField("Soort Servo").appendField(new Blockly.FieldDropdown([["SG90 Servo","DEFAULT"],["HSR-1425CR Deadbang","HSR-1425CR"],['"Adafruit PCA9685 I2C address: 0x40"',"PCA9685"]]),"SERVO1_SENSOR");
this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["Servo1","ServoSG90_1"],["Servo2","ServoSG90_2"],["Servo3","ServoSG90_3"],["Servo4","ServoSG90_4"]]),"ServoSG90_NAAM1");this.appendValueInput("SERVO1_OPDRACHT_ACTIE","String").appendField("Servo moeten..").setCheck("String");this.appendValueInput("SERVO1_OPDRACHT_ACTIE_WAARDE","Number").appendField("hoeveel stappen [0-255]").setCheck("Number");this.appendValueInput("SERVO1_IO_POORT","String").appendField("IO Poort aansluiting").setCheck("String");
this.setTooltip("default EasyLab4Kids D10");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.declare_IR_Reflect_Array={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(107);this.appendDummyInput().appendField(" Welke lijnvolger: ").appendField(new Blockly.FieldDropdown([["Reflect1","IRReflect_1"],["Reflect2","IRReflect_2"],["Reflect3","IRReflect_3"],["Reflect4","IRReflect_4"]]),"DECLARE_IR_REFLECT1_NAAM1").appendField(" Soort volger: ").appendField(new Blockly.FieldDropdown([["Standaard","null"],["LEGO_EVS_EV3",'"EVS_EV3"'],["LEGO_EVS_NXT",'"EVS_NXT"']]),
"DECLARE_IR_REFLECT1_CONTROLLER1");this.appendValueInput("DECLARE_IR_REFLECT1_POORTNUMMER","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default A3");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.event_IR_Reflect_Array={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(103);this.appendDummyInput().appendField(" Wanneer lijnvolger: ").appendField(new Blockly.FieldDropdown([["Reflect1","IRReflect_1"],["Reflect2","IRReflect_2"],["Reflect3","IRReflect_3"],["Reflect4","IRReflect_4"]]),"EVENT_IR_REFLECT1_NAAM1");this.appendStatementInput("EVENT_IR_REFLECT1_DO").appendField("Infrarooi lijnvolgen").appendField(new Blockly.FieldImage("http://auseparts.com.au/image/cache//catalog/Arduino/Sensors/KY%20series/TrackDeal-KY-033-Tracing-Black-White-Line-Hunting-Sensor-Module-For-for-arduino.jpg_350x350-700x700.jpg",
32,32)).appendField(new Blockly.FieldDropdown([["Data","data"],["Lijn","line"]]),"EVENT_IR_REFLECT1_STATE");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};Blockly.Blocks.AlertMelding={helpUrl:"http://www.arduino.cc/en/Serial/Print",init:function(){this.setColour(230);this.appendValueInput("ALERT_MELDING","String").appendField("Alert melding");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("Toont een popup tekstje")}};
Blockly.Blocks.declare_potentiometer={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(78);this.appendDummyInput().appendField(" Gebruik potmeter: ").appendField(new Blockly.FieldDropdown([["Potentiometer1","Potentiometer_1"],["Potentiometer2","Potentiometer_2"],["Potentiometer3","Potentiometer_3"],["Potentiometer4","Potentiometer_4"],["Potentiometer5","Potentiometer_5"],["Potentiometer6","Potentiometer_6"],["Potentiometer7","Potentiometer_7"]]),"DECLARE_POTMETER1_NAAM1");
this.appendDummyInput().appendField(" soort potmeter: ").appendField(new Blockly.FieldDropdown([["Potentiometer","DEFAULT"],["Digitaal","DIGITAL"],["Slide potentiometer","DEFAULT2"],["Force sensitive resistor","DEFAULT3"],["Microfoon","DEFAULT4"],["Photoresistor","DEFAULT5"],["Servo slider control","DEFAULT6"],["Microfoon","DEFAULT7"]]),"DECLARE_POTMETER1_CONTROLLER1");this.appendValueInput("DECLARE_POTMETER1_SCALEMIN","Number").appendField("Scale Min [0]").setCheck("Number");this.appendValueInput("DECLARE_POTMETER1_SCALEMAX",
"Number").appendField("Scale Max [180]").setCheck("Number");this.appendValueInput("DECLARE_POTMETER1_FREQ","Number").appendField("Freq [0-1000]").setCheck("Number");this.setTooltip("Frequency");this.appendValueInput("DECLARE_POTMETER1_POORTNUMMER","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default A3");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0)}};
Blockly.Blocks.event_potentiometer={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(78);this.appendDummyInput().appendField(" Wanneer potmeter: ").appendField(new Blockly.FieldDropdown([["Potentiometer1","Potentiometer_1"],["Potentiometer2","Potentiometer_2"],["Potentiometer3","Potentiometer_3"],["Potentiometer4","Potentiometer_4"],["Potentiometer5","Potentiometer_5"],["Potentiometer6","Potentiometer_6"],["Potentiometer7","Potentiometer_7"]]),"EVENT_POTMETER1_NAAM1");
this.appendStatementInput("EVENT_POTMETER1_DO").appendField("Potentiometer").appendField(new Blockly.FieldImage("http://www.internetdict.com/wp-content/uploads/related_images/2016/01/15/how-does-a-potentiometer-work_1.jpg",32,32)).appendField(new Blockly.FieldDropdown([["Data","data"],["Buiten sensor bereik","change"],["Slide [slip sensor]","slide"]]),"EVENT_POTMETER1_STATE");this.setTooltip("default A3");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0)}};
Blockly.Blocks.I2C_LCD={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(115);this.appendDummyInput().appendField("i2c LCD");this.appendDummyInput().appendField(new Blockly.FieldImage("https://sc02.alicdn.com/kf/HTB1HtNDKpXXXXa5XFXXq6xXFXXXn/Module-For-Arduino-1602-Blue-Backlight-LCD-Display-16x2-HD44780-Character-LCD-IIC-I2C-W-Serial.jpg_50x50.jpg",32,32)).appendField("Soort").appendField(new Blockly.FieldDropdown([["standaard","PCF8574"],["I2C, PCF8574A","PCF8574A"],
["I2C, JHD1313M1 (Grove)","JHD1313M1"]]),"I2C_LCD1_CONTROLLER1");this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["LCD1","LCD_1"],["LCD2","LCD_2"],["LCD3","LCD_3"],["LCD4","LCD_4"]]),"I2C_LCD1_NAAM1");this.appendValueInput("I2C_LCD1_STATE","String").appendField("Laat scherm").setCheck("String");this.appendValueInput("I2C_LCD1_POSX","Number").appendField("Kolom [0-16]").setCheck("Number");this.appendValueInput("I2C_LCD1_POSY","Number").appendField("Rij [0-1]").setCheck("Number");
this.appendValueInput("I2C_LCD1_TEXT","String").appendField("Tekst").setCheck("String");this.appendDummyInput().appendField(" I2C adres ").appendField(new Blockly.FieldDropdown([["I2C poort 0x27",'"0x27"']]),"I2C_LCD1_POORTNUMMER");this.setInputsInline(!0);this.setTooltip("LCD helderheid");this.setPreviousStatement(!0);this.setNextStatement(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.cmd_I2C_LCD_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(151);this.appendDummyInput().appendField("LCD ").appendField(new Blockly.FieldDropdown([["Tekst schrijven op X/Y","printPos"],["Tekst schrijven huidige positie","print"],["Staties cursor","default"],["Loper laten knipperen","blink"],["Loper verplaatsen","cursor"],["Loper naar Home","home"],["Use Char (:heart:)","usechar"],["Scherm leegmaken","clear"],["Scherm aan","on"],["Scherm uit",
"off"],["Automatisch scrollen","autoscroll"],["Automatisch scrollen uit","noAutoscroll"],["Kleurenscherm bgColor","bgColor"],["Hallo Wereld [testje]","hallowereld"]]),"CMD_I2C_LCD1_STATE_LIJST");this.setOutput(!0,"String");this.setTooltip("LCD wat moet hy doen")}};
Blockly.Blocks.kompas={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(85);this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["Kompas1","Kompas_1"],["Kompas2","Kompas_2"],["Kompas3","Kompas_3"],["Kompas4","Kompas_4"],["Kompas5","Kompas_5"],["Kompas6","Kompas_6"],["Kompas7","Kompas_7"]]),"KOMPAS1_NAAM1");this.appendDummyInput().appendField(new Blockly.FieldDropdown([["Standaard 3-assig HMC6352","HMC6352"],["Sparkfun 3-assig HMC5883L",
"HMC5883L"],["Sparkfun 3-assig MAG3110","MAG3110"],["Adafruit 9-DOF BNO055","BNO055"],["BBC Microbit kompas","MICROBIT"]]),"KOMPAS1_CONTROLLER1");this.appendValueInput("KOMPAS1_POORTNUMMER","String").appendField("IO Poort aansluiting").setCheck("String");this.appendStatementInput("KOMPAS1_DO0").appendField("Kompas").appendField(new Blockly.FieldImage("https://static.mijnwebwinkel.nl/winkel/theriverhouse/image/cache/full/4f6e4a82dd446d860acce0ab04120c4fcfdb22e2.jpg",32,32)).appendField(new Blockly.FieldDropdown([["Data",
"data"],["Verandering","change"]]),"KOMPAS1_STATE");this.setTooltip("default A7");this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.GPS={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(85);this.appendStatementInput("GPS1_DO0").appendField("GPS").appendField(new Blockly.FieldImage("https://cdn-shop.adafruit.com/145x109/746-11.jpg",32,32)).appendField(new Blockly.FieldDropdown([["navigatie","navigation"],["Verandering","change"]]),"GPS1_STATE").appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["GPS1","GPS_1"],["GPS2","GPS_2"],["GPS3","GPS_3"],["GPS4","GPS_4"],
["GPS4","GPS_5"],["GPS5","GPS_6"],["GPS6","GPS_7"]]),"GPS1_NAAM1");this.appendDummyInput().appendField(new Blockly.FieldDropdown([["Standaard GPS","GPS"],["ADAFRUIT_ULTIMATE_GPS","ADAFRUIT_ULTIMATE_GPS"]]),"GPS1_CONTROLLER1");this.appendValueInput("GPS1_TX","String").appendField("TX aansluiting").setCheck("String");this.appendValueInput("GPS1_RX","String").appendField("RX IO-poort").setCheck("String");this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.elseCount_=
this.elseifCount_=0}};
Blockly.Blocks.device_state={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(200);this.appendDummyInput().appendField("Device state").appendField(new Blockly.FieldDropdown([["Wijziging ontvangen","change"],["Ontvangt data ontvangen","data"],["Slide [slip sensor]","slide"],["Volgt een lijn","line"],["GPS navigatie","navigation"],["SPDT aan","open"],["SPDT uit","close"],["Button ingedrukt","up"],["Button ingehouden","close"],["Button losgelaat","hold"],["Servo gereed",
"ready"],["PIR beweging start","motionstart"],["PIR beweging stopt","motionend"],["PIR gecalibreerd","calibrated"],["9DOF orientatie","orientation"]]),"DEVICE1_STATE");this.setOutput(!0,"String");this.setTooltip("in welke staat een sensor is")}};
Blockly.Blocks.Orientatiemodule={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(85);this.appendStatementInput("BNO055_DO0").appendField("9-DOF Ori\u00ebntatimodule").appendField(new Blockly.FieldImage("data:image/jpeg;base64,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",32,
32)).appendField(new Blockly.FieldDropdown([["orientatie","orientation"],["Verandering","change"]]),"BNO055_STATE").appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["Ori\u00ebntatieSensor1","BNO055_1"],["Ori\u00ebntatieSensor2","BNO055_2"],["Ori\u00ebntatieSensor3","BNO055_3"],["Ori\u00ebntatieSensor4","BNO055_4"],["Ori\u00ebntatieSensor4","BNO055_5"],["Ori\u00ebntatieSensor5","BNO055_6"],["Ori\u00ebntatieSensor6","BNO055_7"]]),"BNO055_NAAM1");this.appendDummyInput().appendField(new Blockly.FieldDropdown([["Adafruit BNO055 I2C orientatiemodule",
"BNO055"]]),"BNO055_CONTROLLER1");this.appendValueInput("BNO055_IO","String").appendField("IO-poort").setCheck("String");this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.CapacitiveTouch={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(75);this.appendDummyInput("POTMETER1_DO0").appendField(new Blockly.FieldImage("https://cdn.instructables.com/F2X/LMHK/HH11RZS1/F2XLMHKHH11RZS1.SMALL.jpg",32,32)).appendField("vinger gevoelig sensor").appendField(new Blockly.FieldDropdown([["Data","data"],["Buiten sensor bereik","change"],["Slide [slip sensor]","slide"]]),"TOUCH1_STATE");this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["VingerGevoelig1",
"VingerGevoelig_1"],["VingerGevoelig2","VingerGevoelig_2"],["VingerGevoelig3","VingerGevoelig_3"],["VingerGevoelig4","VingerGevoelig_4"],["VingerGevoelig5","VingerGevoelig_5"],["VingerGevoelig6","VingerGevoelig_6"],["VingerGevoelig7","VingerGevoelig_7"]]),"TOUCH1_NAAM1");this.appendDummyInput().appendField(" Controller: ").appendField(new Blockly.FieldDropdown([["Stukje tin folie ","DEFAULT"],["Tinkerkit touch","TINKERKIT"],["Touchpad - MPR121","MPR121"],["Touchpad - MPR121_SHIELD","MPR121_SHIELD"],
["Touchpad - MPR121_KEYPAD","MPR121_KEYPAD"],["Touchpad - MPR121, Sensitivity","MPR121"],["Touchpad - MPR121QR2_SHIELD","MPR121QR2_SHIELD"],["Touchpad - Grove QTOUCH","QTOUCH"]]),"TOUCH1_CONTROLLER1");this.setInputsInline(!0);this.appendValueInput("TOUCH1_PWM_POORTNUMMER","String").appendField("PWM IO Poort").setCheck("String");this.setTooltip("default EasyLab4Kids Servo op D10");this.appendValueInput("TOUCH1_IO_POORTNUMMER","String").appendField("Tin folie IO-poort").setCheck("String");this.setTooltip("default Arduino D8");
this.setPreviousStatement(!0);this.setNextStatement(!0)}};
Blockly.Blocks.declare_CapacitiveTouch={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(85);this.appendDummyInput().appendField(new Blockly.FieldImage("https://cdn.instructables.com/F2X/LMHK/HH11RZS1/F2XLMHKHH11RZS1.SMALL.jpg",32,32)).appendField("vinger gevoelig sensor");this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["VingerGevoelig1","VingerGevoelig_1"],["VingerGevoelig2","VingerGevoelig_2"],["VingerGevoelig3","VingerGevoelig_3"],
["VingerGevoelig4","VingerGevoelig_4"],["VingerGevoelig5","VingerGevoelig_5"],["VingerGevoelig6","VingerGevoelig_6"],["VingerGevoelig7","VingerGevoelig_7"]]),"DECLARE_TOUCH1_NAAM1");this.appendDummyInput().appendField(" Controller: ").appendField(new Blockly.FieldDropdown([["Stukje tin folie ","DEFAULT"],["Tinkerkit touch","TINKERKIT"],["Touchpad - MPR121","MPR121"],["Touchpad - MPR121_SHIELD","MPR121_SHIELD"],["Touchpad - MPR121_KEYPAD","MPR121_KEYPAD"],["Touchpad - MPR121, Sensitivity","MPR121"],
["Touchpad - MPR121QR2_SHIELD","MPR121QR2_SHIELD"],["Touchpad - Grove QTOUCH","QTOUCH"]]),"DECLARE_TOUCH1_CONTROLLER1");this.appendValueInput("DECLARE_TOUCH1_IO_POORTNUMMER","String").appendField("Tin folie IO-poort").setCheck("String");this.setTooltip("default Arduino D8");this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0)}};
Blockly.Blocks.event_CapacitiveTouch={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(85);this.appendStatementInput("EVENT_TOUCH1_DO").appendField(new Blockly.FieldImage("https://cdn.instructables.com/F2X/LMHK/HH11RZS1/F2XLMHKHH11RZS1.SMALL.jpg",32,32)).appendField("vinger gevoelig sensor").appendField(new Blockly.FieldDropdown([["Data","data"],["Buiten sensor bereik","change"],["Slide [slip sensor]","slide"]]),"EVENT_TOUCH1_STATE");this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["VingerGevoelig1",
"VingerGevoelig_1"],["VingerGevoelig2","VingerGevoelig_2"],["VingerGevoelig3","VingerGevoelig_3"],["VingerGevoelig4","VingerGevoelig_4"],["VingerGevoelig5","VingerGevoelig_5"],["VingerGevoelig6","VingerGevoelig_6"],["VingerGevoelig7","VingerGevoelig_7"]]),"EVENT_TOUCH1_NAAM1");this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0)}};
Blockly.Blocks.motorshield={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(75);this.appendDummyInput("MOTORSHIELD1_DO0").appendField(new Blockly.FieldImage("http://www.nyplatform.com/image/cache/data/Robot/Motor%20Servo/Gear%20Motor%20x2%20+%20PLASTIC%20TIRES%20x2/LT-8-700x700.jpg",32,32)).appendField("Robotmotor L293D");this.appendDummyInput().appendField(" Wie ben ik: ").appendField(new Blockly.FieldDropdown([["Motor links voor","L923motorshield_l_voor"],["Motor rechts voor",
"L923motorshield_r_voor"],["Motor links achter","L923motorshield_l_achter"],["Motor rechts achter","L923motorshield_r_achter"]]),"MOTORSHIELD1_NAAM1");this.appendDummyInput().appendField(" Soort motorshield: ").appendField(new Blockly.FieldDropdown([["EasyLab4Kids Arduino ","DEFAULT"],["Arduino Dual H-Bridge","H_BRIDGE"],["Arduino Motor Shield R3","ARDUINO_MOTOR_SHIELD_R3_1"],["Arduino DF Robot - MPR121","DF Robot"],["Arduino Rugged Circuits Rugged Motor Driver","RUGGED_CIRCUITS"],["Arduino Sparkfun Ardumoto",
"SPARKFUN_ARDUMOTO"],["Arduino Uno Adafruit Motor/Stepper/Servo Shield V1","ADAFRUIT_V1"],["Arduino Uno Adafruit Motor/Stepper/Servo Shield V2","ADAFRUIT_V2"],["Arduino Pololu DRV8835 Shield","POLOLU_DRV8835_SHIELD"],["Motor PCA9685 via I2C","PCA9685"]]),"MOTORSHIELD1_CONTROLLER1");this.setInputsInline(!0);this.appendValueInput("MOTORSHIELD1_DOEN","String").appendField(" Wat moet ik doen? ").setCheck("String");this.setTooltip("default Arduino D8");this.setPreviousStatement(!0);this.setNextStatement(!0);
this.setInputsInline(!0)}};
Blockly.Blocks.declare_digitalReadWrite={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(150);this.appendDummyInput("DECLARE_DIGITALREAD_DO").appendField("Rechtreeks IO Poorten gebruiken -- ");this.appendValueInput("DECLARE_DIGITALREAD1_IO_PINMODE","String").appendField("Welke PinMode?").setCheck("String");this.appendValueInput("DECLARE_DIGITALREAD1_IO_POORT","String").appendField("Op welke IO Poort?").setCheck("String");this.setTooltip("default D8");this.setPreviousStatement(!0);
this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.event_digitalReadWrite={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(145);this.appendDummyInput("EVENT_DIGITALREAD_DO").appendField(" Wanneer: ").appendField(new Blockly.FieldDropdown([["data ontvangen worden","data"]]),"EVENT_DIGITALREAD1_STAAT");this.appendDummyInput("DECLARE_DIGITALREAD_DO").appendField(" IO data uitlezen: ").appendField(new Blockly.FieldDropdown([["DigitalReadWrite1","DigitalReadWrite_1"],["DigitalReadWrite2","DigitalReadWrite_2"],
["DigitalReadWrite3","DigitalReadWrite_3"],["DigitalReadWrite4","DigitalReadWrite_4"],["DigitalReadWrite5","DigitalReadWrite_5"],["DigitalReadWrite6","DigitalReadWrite_6"],["DigitalReadWrite7","DigitalReadWrite_7"],["DigitalReadWrite8","DigitalReadWrite_8"]]),"EVENT_DIGITALREAD1_NAAM1");this.appendValueInput("EVENT_DIGITALREAD1_DOEN","String").appendField("IO poort aksie ").setCheck("String");this.appendValueInput("EVENT_DIGITALREAD1_IO_POORT","String").appendField("Op welke IO Poort?").setCheck("String");
this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.declare_relay={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(105);this.appendDummyInput().appendField("Relay").appendField(new Blockly.FieldImage("http://www.robotop.lv/1245-home/relay-1-ch.jpg",32,32)).appendField("Type").appendField(new Blockly.FieldDropdown([["standaard open","default"],["standaard dicht","NC"]]),"DECLARE_RELAY_CONTROLLER1");this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["Relay1",
"RELAY_1"],["Relay2","RELAY_2"],["Relay3","RELAY_3"],["Relay4","RELAY_4"]]),"DECLARE_RELAY_NAAM1");this.appendValueInput("DECLARE_RELAY_IO_POORT","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default D8");this.setTooltip("Relay gebruiken");this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.cmd_relay={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(103);this.appendDummyInput("CMD_RELAY_DO").appendField(" ");this.appendDummyInput().appendField(new Blockly.FieldImage("http://www.robotop.lv/1245-home/relay-1-ch.jpg",32,32)).appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["Relay1","RELAY_1"],["Relay2","RELAY_2"],["Relay3","RELAY_3"],["Relay4","RELAY_4"]]),"CMD_RELAY_NAAM1");this.appendValueInput("CMD_RELAY_DOEN","String").appendField("en je wil dat ik ").setCheck("String");
this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};Blockly.Blocks.cmd_relay_staat_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(108);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["Relay open ","RELAY_open"],["Relay dicht ","RELAY_close"],["Relay omschakelen","RELAY_toggle"]]),"CMD_RELAY_STAAT_LIJST");this.setOutput(!0,"String");this.setTooltip("Relay wat moet hy doen")}};
Blockly.Blocks.declare_piezo1={helpUrl:"http://arduino.cc/en/Reference/delay",init:function(){this.setColour(120);this.appendDummyInput().appendField("Piezo luidspreker").appendField(new Blockly.FieldImage("http://shallowsky.com/arduino/class/buzzer.jpg",32,32)).appendField(" PiezoNaam: ").appendField(new Blockly.FieldDropdown([["Buzzer1","objPiezo_1"],["Buzzer2","objPiezo_2"],["Buzzer3","objPiezo_3"],["Buzzer4","objPiezo_4"]]),"DECLARE_PIEZO_NAAM1").appendField("Controller: ").appendField(new Blockly.FieldDropdown([["Standaard",
"null"],["I2C Backpack",'"I2C_BACKPACK"']]),"DECLARE_F_PIEZO_SENSOR");this.appendValueInput("DECLARE_PIEZO_IO_POORT","String").appendField("IO Poort aansluiting");this.appendDummyInput().appendField(" ");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("default EasyLab4Kids D8")}};
Blockly.Blocks.cmd_piezo1={helpUrl:"http://arduino.cc/en/Reference/delay",init:function(){this.setColour(128);this.appendDummyInput().appendField("Piezo afspelen").appendField(new Blockly.FieldImage("http://shallowsky.com/arduino/class/buzzer.jpg",32,32)).appendField(" PiezoNaam: ").appendField(new Blockly.FieldDropdown([["Buzzer1","objPiezo_1"],["Buzzer2","objPiezo_2"],["Buzzer3","objPiezo_3"],["Buzzer4","objPiezo_4"]]),"CMD_PIEZO_NAAM1");this.appendValueInput("CMD_PIEZO_MUZIEK1","String").appendField("Liedje");
this.appendValueInput("CMD_PIEZO_TEMPO1","String").appendField("Tempo").setCheck("String");this.appendValueInput("CMD_PIEZO_BEAT1","String").appendField("Beat").setCheck("String");this.appendDummyInput().appendField(" ");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("bijvoorbeeld liedje=A B C D C - - A")}};
Blockly.Blocks.cmd_piezo1_tempo_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(128);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["Tempo100","100"],["Tempo150","150"],["Tempo200","200"],["Tempo250","250"]]),"CMD_PIEZO_TEMPO1_LIJST");this.setOutput(!0,"String");this.setTooltip("Piezo tempo wat moet hy doen")}};
Blockly.Blocks.cmd_piezo1_beat_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(128);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["Beat 4 op 4","4 / 4"],["Beat 1 op 4","1 / 4"],["Beat 2 op 4","2 / 4"],["Beat 3 op 4","3 / 4"]]),"CMD_PIEZO_BEAT1_LIJST");this.setOutput(!0,"String");this.setTooltip("Piezo beats wat moet hy doen")}};
Blockly.Blocks.cmd_piezo1_voorbeeldlied_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(128);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["Voorbeeldlied Mary had a little lamb (lang)",'"E - D - C - D - - E E E D D D - E - G "'],["Voorbeeldlied Mary had a little lamb (kort)",'"E - D - C - D "'],["Voorbeeldlied Vader jacob (kort)",'"F - G - A - F "'],["Voorbeeldlied geluid A - B - C",'"A - B - C - "'],["Voorbeeldlied geluid C - D - F",'"C - D - F - "'],
["Voorbeeldlied zomaar wat (kort)",'"A - B - C - D - C - - A "'],["Voorbeeldlied biep hoge toon",'"A - "'],["Voorbeeldlied biep lage toon",'"F - "'],["Voorbeeldlied rookmelder",'"A A# A# A A# A# "'],["Voorbeeldlied takkeherrie!!",'"AGCDFE - FEDC - AG "']]),"CMD_PIEZO_VOORBEELDLIED1_LIJST");this.setOutput(!0,"String");this.setTooltip("herriemaken wat moet hy doen")}};
Blockly.Blocks.declare_hygrometer={helpUrl:"http://arduino.cc/en/Reference/delay",init:function(){this.setColour(113);this.appendDummyInput().appendField("Hygrometer").appendField(new Blockly.FieldImage("https://cdn.instructables.com/FMR/80K3/IOOM3FBW/FMR80K3IOOM3FBW.MEDIUM.jpg",32,32)).appendField(" sensornaam: ").appendField(new Blockly.FieldDropdown([["Hygrometer1","Hygrometer_1"],["Hygrometer2","Hygrometer_2"],["Hygrometer3","Hygrometer_3"],["Hygrometer4","Hygrometer_4"]]),"DECLARE_HYGRO_NAAM1").appendField("Soort meter: ").appendField(new Blockly.FieldDropdown([["Standaard TH02",
"TH02"],["BME280","HTU21D"],["HIH6130 Sparkfun","HIH6130"],["SI7020 Tessel Climate","HTU21D"],["SI7021 Sparkfun","SI7021"],["SHT31D Adafruit","HTU21D"],["DHT11 nano backpack","DHT11_I2C_NANO_BACKPACK"],["DHT21 ","DHT21_I2C_NANO_BACKPACK"],["DHT22 ","DHT22_I2C_NANO_BACKPACK"]]),"DECLARE_HYGRO_SENSOR");this.appendValueInput("DECLARE_HYGRO_FREQ","Number").appendField("data freq (ms) [0-10000]").setCheck("Number");this.appendValueInput("DECLARE_HYGRO_IO_POORT","String").appendField("IO Poort aansluiting");
this.appendDummyInput().appendField(" ");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("default EasyLab4Kids D8")}};
Blockly.Blocks.event_hygrometer={init:function(){this.setColour(113);this.appendStatementInput("EVENT_HYGRO_DO").appendField(new Blockly.FieldImage("https://cdn.instructables.com/FMR/80K3/IOOM3FBW/FMR80K3IOOM3FBW.MEDIUM.jpg",32,32)).appendField("Welke sensor: ").appendField(new Blockly.FieldDropdown([["Hygrometer1","Hygrometer_1"],["Hygrometer2","Hygrometer_2"],["Hygrometer3","Hygrometer_3"],["Hygrometer4","Hygrometer_4"]]),"EVENT_HYGRO_NAAM1").setAlign(Blockly.ALIGN_RIGHT);this.appendDummyInput().appendField(" Wanneer ").appendField(new Blockly.FieldDropdown([["Data freq uitgelezen",
"data"],["Luchtvochtigheid wijziging vastgesteld","change"]]),"EVENT_HYGRO_SENSOR_STAAT").setAlign(Blockly.ALIGN_RIGHT);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.test_event_header={init:function(){this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL);this.setColour(92);var a=new Blockly.FieldTextInput("test_event_header",Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));this.setTooltip(Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP);this.arguments_=[];this.setStatements_(!0);
this.statementConnection_=null},setStatements_:function(a){this.hasStatements_!==a&&(a?(this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=a)}};
Blockly.Blocks.declare_barometer={helpUrl:"http://arduino.cc/en/Reference/delay",init:function(){this.setColour(113);this.appendDummyInput().appendField("Barometer").appendField(new Blockly.FieldImage("https://cdn.sparkfun.com/images/products/1/1/8/2/4/11824-02.jpg",32,32)).appendField(" sensornaam: ").appendField(new Blockly.FieldDropdown([["Barometer1","Barometer_1"],["Barometer2","Barometer_2"],["Barometer3","Barometer_3"],["Barometer4","Barometer_4"]]),"DECLARE_BARO_NAAM1").appendField("Soort meter: ").appendField(new Blockly.FieldDropdown([["Standaard BMP180",
"BMP180"],["MPL115A2 Sparkfun","MPL115A2"],["MPL3115A2 Sparkfun","MPL3115A2"]]),"DECLARE_BARO_SENSOR");this.appendValueInput("DECLARE_BARO_FREQ","Number").appendField("data freq (ms) [0-10000]").setCheck("Number");this.appendValueInput("DECLARE_BARO_IO_POORT","String").appendField("IO Poort aansluiting");this.appendDummyInput().appendField(" ");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("default EasyLab4Kids I2C")}};
Blockly.Blocks.event_barometer={init:function(){this.setColour(113);this.appendStatementInput("EVENT_BARO_DO").appendField(new Blockly.FieldImage("https://cdn.sparkfun.com/images/products/1/1/8/2/4/11824-02.jpg",32,32)).appendField("Welke sensor: ").appendField(new Blockly.FieldDropdown([["Barometer1","Barometer_1"],["Barometer2","Barometer_2"],["Barometer3","Barometer_3"],["Barometer4","Barometer_4"]]),"EVENT_BARO_NAAM1").setAlign(Blockly.ALIGN_RIGHT);this.appendDummyInput().appendField(" Wanneer ").appendField(new Blockly.FieldDropdown([["Data freq uitgelezen",
"data"],["Luchtdruk wijziging vastgesteld","change"]]),"EVENT_BARO_SENSOR_STAAT").setAlign(Blockly.ALIGN_RIGHT);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.declare_photoresistor={helpUrl:"http://arduino.cc/en/Reference/delay",init:function(){this.setColour(119);this.appendDummyInput().appendField("Photoresistor").appendField(new Blockly.FieldImage("http://www.resistorguide.com/pictures/photoresistor.png",32,32)).appendField(" sensornaam: ").appendField(new Blockly.FieldDropdown([["Photoresistor1","Photoresistor_1"],["Photoresistor2","Photoresistor_2"],["Photoresistor3","Photoresistor_3"],["Photoresistor4","Photoresistor_4"]]),"DECLARE_PHOTORESISTOR_NAAM1");
this.appendValueInput("DECLARE_PHOTORESISTOR_FREQ","Number").appendField("data freq (ms) [0-10000]").setCheck("Number");this.appendValueInput("DECLARE_PHOTORESISTOR_IO_POORT","String").appendField("IO Poort aansluiting");this.appendDummyInput().appendField(" ");this.setInputsInline(!0);this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("default EasyLab4Kids A3")}};
Blockly.Blocks.event_photoresistor={init:function(){this.setColour(119);this.appendStatementInput("EVENT_PHOTORESISTOR_DO").appendField(new Blockly.FieldImage("http://www.resistorguide.com/pictures/photoresistor.png",32,32)).appendField("Welke fotoweerstand: ").appendField(new Blockly.FieldDropdown([["Photoresistor1","Photoresistor_1"],["Photoresistor2","Photoresistor_2"],["Photoresistor3","Photoresistor_3"],["Photoresistor4","Photoresistor_4"]]),"EVENT_PHOTORESISTOR_NAAM1").setAlign(Blockly.ALIGN_RIGHT);
this.appendDummyInput().appendField(" Wanneer ").appendField(new Blockly.FieldDropdown([["Data freq uitgelezen","data"],["Lichtmeting wijziging vastgesteld","change"]]),"EVENT_PHOTORESISTOR_STAAT").setAlign(Blockly.ALIGN_RIGHT);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};Blockly.Blocks.grove={};
Blockly.Blocks.grove_led={helpUrl:"http://www.seeedstudio.com/wiki/index.php?title=GROVE_-_Starter_Bundle_V1.0b#LED",init:function(){this.setColour(190);this.appendDummyInput().appendField("LED").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/e/e0/LED1.jpg/400px-LED1.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN").appendField("stat").appendField(new Blockly.FieldDropdown([["HIGH","HIGH"],["LOW","LOW"]]),"STAT");
this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("green LED")}};
Blockly.Blocks.grove_button={helpUrl:"http://www.seeedstudio.com/wiki/index.php?title=GROVE_-_Starter_Bundle_V1.0b#Button",init:function(){this.setColour(190);this.appendDummyInput().appendField("Button").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/9/93/Button1.jpg/400px-Button1.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.setOutput(!0,"Boolean");this.setTooltip("Basic digital input")}};
Blockly.Blocks.grove_rotary_angle={helpUrl:"http://www.seeedstudio.com/wiki/index.php?title=GROVE_-_Starter_Bundle_V1.0b#Potentiometer",init:function(){this.setColour(10);this.appendDummyInput().appendField("Rotary Angle").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/5/59/Potentiometer1.jpg/400px-Potentiometer1.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].analog),"PIN");this.setOutput(!0,"Number");this.setTooltip("Analog output between 0 and Vcc")}};
Blockly.Blocks.grove_tilt_switch={helpUrl:"http://www.seeedstudio.com/wiki/index.php?title=GROVE_-_Starter_Bundle_V1.0b#Tilt_switch",init:function(){this.setColour(190);this.appendDummyInput().appendField("Tilt Switch").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/9/95/Tilt1.jpg/400px-Tilt1.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.setOutput(!0,"Boolean");this.setTooltip("When the switch is level it is open, and when tilted, the switch closes.")}};
Blockly.Blocks.grove_piezo_buzzer={helpUrl:"http://www.seeedstudio.com/wiki/GROVE_-_Starter_Kit_V1.1b#Grove_.E2.80.93_Buzzer",init:function(){this.setColour(190);this.appendDummyInput().appendField("Piezo Buzzer").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/e/ed/Buzzer1.jpg/400px-Buzzer1.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN").appendField("stat").appendField(new Blockly.FieldDropdown([["HIGH","HIGH"],
["LOW","LOW"]]),"STAT");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("Emit a tone when the output is high")}};
Blockly.Blocks.grove_relay={helpUrl:"http://www.seeedstudio.com/wiki/Grove_-_Relay",init:function(){this.setColour(190);this.appendDummyInput().appendField("Relay").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/0/04/Twig-Relay1.jpg/400px-Twig-Relay1.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN").appendField("stat").appendField(new Blockly.FieldDropdown([["HIGH","HIGH"],["LOW","LOW"]]),"STAT");this.setPreviousStatement(!0,
null);this.setNextStatement(!0,null);this.setTooltip("capable of switching a much higher voltages and currents. The maximum voltage and current that can be controlled by this module upto 250V at 10 amps.")}};
Blockly.Blocks.grove_temporature_sensor={helpUrl:"http://www.seeedstudio.com/wiki/Project_Seven_-_Temperature",init:function(){this.setColour(10);this.appendDummyInput().appendField("Temporature Sensor").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/b/b0/Temperature1.jpg/400px-Temperature1.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].analog),"PIN");this.setOutput(!0,"Number");this.setTooltip("return number of ambient temperature in \u2103")}};
Blockly.Blocks.grove_serial_lcd_print={helpUrl:"http://www.seeedstudio.com/wiki/index.php?title=GROVE_-_Starter_Bundle_V1.0b#Serial_LCD",init:function(){this.setColour(190);this.appendDummyInput().appendField("Serial LCD").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/6/6a/LCD1.jpg/400px-LCD1.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.appendValueInput("TEXT","String").setCheck("String").setAlign(Blockly.ALIGN_RIGHT).appendField("print line1");
this.appendValueInput("TEXT2","String").setCheck("String").setAlign(Blockly.ALIGN_RIGHT).appendField("print line2");this.appendValueInput("DELAY_TIME","Number").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField("Delay");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("print text on an 16 character by 2 line LCD.")}};
Blockly.Blocks.grove_serial_lcd_power={helpUrl:"http://www.seeedstudio.com/wiki/index.php?title=GROVE_-_Starter_Bundle_V1.0b#LED",init:function(){this.setColour(190);this.appendDummyInput().appendField("Serial LCD").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/6/6a/LCD1.jpg/400px-LCD1.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField("Power").appendField(new Blockly.FieldDropdown([["ON",
"ON"],["OFF","OFF"]]),"STAT");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("Turn LCD power on/off")}};
Blockly.Blocks.grove_serial_lcd_effect={helpUrl:"http://www.seeedstudio.com/wiki/index.php?title=GROVE_-_Starter_Bundle_V1.0b#LED",init:function(){this.setColour(190);this.appendDummyInput().appendField("Serial LCD").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/6/6a/LCD1.jpg/400px-LCD1.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField("Effect").appendField(new Blockly.FieldDropdown([["Scroll Left",
"LEFT"],["Scroll Right","RIGHT"],["Scroll Auto","AUTO"]]),"STAT");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("Turn LCD power on/off")}};
Blockly.Blocks.grove_sound_sensor={helpUrl:"http://www.seeedstudio.com/wiki/Grove_-_Sound_Sensor",init:function(){this.setColour(10);this.appendDummyInput().appendField("Sound Sensor").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/e/e3/Twig-Sound-sensor.jpg/400px-Twig-Sound-sensor.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].analog),"PIN");this.setOutput(!0,"Number");this.setTooltip("Detect the sound strength of the environment")}};
Blockly.Blocks.grove_pir_motion_sensor={helpUrl:"http://www.seeedstudio.com/wiki/Grove_-_PIR_Motion_Sensor",init:function(){this.setColour(190);this.appendDummyInput().appendField("PIR Motion Sensor").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/f/fd/Twig-PIR_Motion_Sensor.jpg/400px-Twig-PIR_Motion_Sensor.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.setOutput(!0,"Number");this.setTooltip("When anyone moves in it's detecting range, the sensor outputs HIGH.")}};
Blockly.Blocks.grove_line_finder={helpUrl:"http://www.seeedstudio.com/wiki/Grove_-_Line_Finder",init:function(){this.setColour(190);this.appendDummyInput().appendField("Line Finder").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/8/82/Grovelinefinder1.jpg/400px-Grovelinefinder1.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.setOutput(!0,"Boolean");this.setTooltip("Output digital signal so the robot can reliably follow a black line on a white background")}};
Blockly.Blocks.grove_ultrasonic_ranger={helpUrl:"http://www.seeedstudio.com/wiki/Grove_-_Ultrasonic_Ranger",init:function(){this.setColour(190);this.appendDummyInput().appendField("Ultrasonic Ranger").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/b/b0/Twig_-_Ultrasonic_Ranger2.jpg/200px-Twig_-_Ultrasonic_Ranger2.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN").appendField("unit").appendField(new Blockly.FieldDropdown([["cm",
"cm"],["inch","inch"]]),"UNIT");this.setOutput(!0,"Number");this.setTooltip("Non-contact distance measurement module")}};
Blockly.Blocks.grove_motor_shield={helpUrl:"http://www.seeedstudio.com/wiki/Motor_Shield",init:function(){this.setColour(190);this.appendDummyInput().appendField("Motor").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/4/4d/Smotoshield2.jpg/400px-Smotoshield2.jpg",64,64)).appendField(new Blockly.FieldDropdown([["Stop","stop"],["Forward","forward"],["Right","right"],["Left","left"],["Backward","backward"]]),"DIRECTION");this.setPreviousStatement(!0,null);this.setNextStatement(!0,
null);this.setTooltip("Drive two brushed DC motors")}};
Blockly.Blocks.grove_thumb_joystick={helpUrl:"http://www.seeedstudio.com/wiki/Grove_-_Thumb_Joystick",init:function(){this.setColour(10);this.appendDummyInput().appendField("Thumb Joystick").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/images/thumb/e/e0/Twig_-_Thumb_Joystick_v0.9b.jpg/200px-Twig_-_Thumb_Joystick_v0.9b.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].analog),"PIN").appendField("axis").appendField(new Blockly.FieldDropdown([["x","x"],
["y","y"]]),"AXIS");this.setOutput(!0,"Number");this.setTooltip("output two analog values(200~800) representing two directions")}};
Blockly.Blocks.grove_rgb_led={helpUrl:"http://www.seeedstudio.com/wiki/index.php?title=Twig_-_Chainable_RGB_LED",init:function(){this.setColour(190);this.appendDummyInput().appendField("Chainable RGB LED").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/depot/images/product/chanbalelednb1.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.appendDummyInput("COLOR0").setAlign(Blockly.ALIGN_RIGHT).appendField("Color 1").appendField(new Blockly.FieldColour("#00ff00"),
"RGB0");this.setMutator(new Blockly.Mutator(["grove_rgb_led_item"]));this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("256 color LED, currently Chainable feature is not support");this.itemCount_=1},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("items",this.itemCount_);for(var b=0;b<this.itemCount_;b++){var c=this.getFieldValue("RGB0");a.setAttribute("RGB"+b,c)}return a},domToMutation:function(a){for(var b=0;b<this.itemCount_;b++)this.removeInput("COLOR"+
b);this.itemCount_=window.parseInt(a.getAttribute("items"),10);for(b=0;b<this.itemCount_;b++){var c=window.parseInt(a.getAttribute("RGB"+b),"#00ff00");this.appendDummyInput("COLOR"+b).setAlign(Blockly.ALIGN_RIGHT).appendField("Color "+(b+1)).appendField(new Blockly.FieldColour(c),"RGB"+b)}0==this.itemCount_&&this.appendDummyInput("COLOR0").setAlign(Blockly.ALIGN_RIGHT).appendField("Color 1").appendField(new Blockly.FieldColour("#00ff00"),"RGB0")},decompose:function(a){var b=Blockly.Block.obtain(a,
"grove_rgb_led_container");b.initSvg();for(var c=b.getInput("STACK").connection,d=0;d<this.itemCount_;d++){var e=Blockly.Block.obtain(a,"grove_rgb_led_item");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}return b},compose:function(a){if(0==this.itemCount_)this.removeInput("COLOR0");else for(var b=this.itemCount_-1;0<=b;b--)this.removeInput("COLOR"+b);this.itemCount_=0;for(a=a.getInputTargetBlock("STACK");a;){b=this.getFieldValue("RGB"+this.itemCount_);null==b&&(b="00ff00");var c=
this.appendDummyInput("COLOR"+this.itemCount_);c.setAlign(Blockly.ALIGN_RIGHT).appendField("Color "+(this.itemCount_+1)).appendField(new Blockly.FieldColour(b),"RGB"+this.itemCount_);a.valueConnection_&&c.connection.connect(a.valueConnection_);this.itemCount_++;a=a.nextConnection&&a.nextConnection.targetBlock()}0==this.itemCount_&&this.appendDummyInput("COLOR0").setAlign(Blockly.ALIGN_RIGHT).appendField("Color 1").appendField(new Blockly.FieldColour("#00ff00"),"RGB0")}};
Blockly.Blocks.grove_rgb_led_container={init:function(){this.setColour(190);this.appendDummyInput().appendField("Container");this.appendStatementInput("STACK");this.setTooltip("Add, remove items to reconfigure this chain");this.contextMenu=!1}};Blockly.Blocks.grove_rgb_led_item={init:function(){this.setColour(190);this.appendDummyInput().appendField("Item");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip("Add an item to the chain");this.contextMenu=!1}};
Blockly.Blocks.grove_bluetooth_slave={category:"Network",helpUrl:"http://www.seeedstudio.com/wiki/Grove_-_Serial_Bluetooth",init:function(){this.setColour(190);this.appendDummyInput().appendField("Bluetooth Slave").appendField(new Blockly.FieldImage("http://www.seeedstudio.com/wiki/File:Twigbt00.jpg",64,64)).appendField("PIN#").appendField(new Blockly.FieldDropdown(profile["default"].digital),"PIN");this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField("Name").appendField(new Blockly.FieldTextInput("blocklyduino"),
"NAME");this.appendDummyInput().setAlign(Blockly.ALIGN_RIGHT).appendField("Pincode").appendField(new Blockly.FieldTextInput("0000"),"PINCODE");this.appendStatementInput("RCV").setAlign(Blockly.ALIGN_RIGHT).appendField("Receive");this.appendStatementInput("SNT").setAlign(Blockly.ALIGN_RIGHT).appendField("Send");this.setPreviousStatement(!0,null);this.setNextStatement(!0,null);this.setTooltip("Bluetooth V2.0+EDR slave. Support single slave per board")}};Blockly.Blocks.inputoutput={};Blockly.Blocks.ArduinoReadCommands={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(128);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["IO poort INPUT DigitalRead","IO_digitalRead"],["IO poort INPUT AnalogRead","IO_analogRead"],["IO poort INPUT i2c Read","IO_i2cRead"]]),"ARDUINO_READ_COMMANDS_INPUT");this.setOutput(!0,"String");this.setTooltip("direk apparatuur poorte uitlees")}};
Blockly.Blocks.ArduinoReadCommands_OUTPUT={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(128);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["IO poort DigitalWrite","IO_digitalWrite"],["IO poort AnalogWrite","IO_analogWrite"],["IO poort i2c Write","IO_i2cWrite"],["IO poort servoWrite","IO_servoWrite"],["IO poort wachten (millisecond) ","IO_wait"]]),"ARDUINO_READ_COMMANDS_OUTPUT");this.setOutput(!0,"String");this.setTooltip("direk apparatuur poorte uitlees")}};
Blockly.Blocks.ArduinoPinMode={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(125);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["PinMode INPUT","BOARD_INPUT"],["PinMode OUTPUT","BOARD_OUTPUT"],["PinMode ANALOG","BOARD_ANALOG"],["PinMode PWM ","BOARD_PWM"],["PinMode SERVO","BOARD_SERVO"]]),"BOARD_PINMODE");this.setOutput(!0,"String");this.setTooltip("Arduino pinmode")}};
Blockly.Blocks.cmd_digitalReadWrite={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(154);this.appendDummyInput("CMD_DIGITALREAD_DO").appendField(" ");this.appendValueInput("CMD_DIGITALREAD1_DOEN","String").appendField("IO Digital of AnalogWrite ").setCheck("String");this.appendValueInput("CMD_DIGITALREAD1_VALUE","Number").appendField("waarde (numeriek):").setCheck("Number");this.appendValueInput("CMD_DIGITALREAD1_IO_POORT","String").appendField("Op welke IO Poort?").setCheck("String");
this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.event_board={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(158);this.appendValueInput("EVENT_EASYLABIO_DOEN","String").appendField("EasyLab IO Event ").setCheck("String");this.appendValueInput("EVENT_EASYLABIO_VALUE","Number").appendField("waarde (milliseconden):").setCheck("Number");this.appendStatementInput("EVENT_EASYLABIO_DO").appendField(" ").appendField(new Blockly.FieldDropdown([["EasyLab0","board0"],["EasyLab1","board1"],["EasyLab2","board2"],
["EasyLab3","board3"],["EasyLab4","board4"],["EasyLab5","board5"],["EasyLab6","board6"]]),"EVENT_EASYLABIO_NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0},setStatements_:function(a){this.hasStatements_!==a&&(a?(this.appendStatementInput("EVENT_EASYLABIO_DO").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("EVENT_EASYLABIO_RETURN")&&this.moveInputBefore("EVENT_EASYLABIO_STACK","EVENT_EASYLABIO_RETURN")):this.removeInput("EVENT_EASYLABIO_STACK",
!0),this.hasStatements_=a)}};Blockly.Blocks.event_board_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(128);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["EasyLab code herhalen ","board_loop"],["EasyLab code stoppen en wachten","board_wait"]]),"EVENT_BOARD_LIJST");this.setOutput(!0,"String");this.setTooltip("direk apparatuur poorte uitlees")}};
Blockly.Blocks.IO_poorten={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(195);this.appendDummyInput().appendField("generieke IO-poort lijst").appendField(new Blockly.FieldDropdown([["EasyLab4Kids Arduino LED 13","13"],["A0 EasyLab4Kids LED Blou",'"A0"'],["A1 EasyLab4Kids LED Groen",'"A1"'],["A2 EasyLab4Kids LED Rooi",'"A2"'],["A3 Analoog | BBC Microbit",'"A3"'],["A4 Analoog | BBC Microbit",'"A4"'],["A5 Analoog | BBC Microbit",'"A5"'],["A6 Analoog",'"A6"'],["A7 Analoog EasyLab4Kids",
'"A7"'],[" 0 EasyLab | Arduino","0"],[" 1 EasyLab | Arduino","1"],[" 2 EasyLab | Arduino|EasyLabs knopje","2"],[" 3 EasyLab | Arduino","3"],[" 4 EasyLab Lijn sensor Links | Arduino","4"],[" 5 EasyLab | Arduino","5"],[" 6 EasyLab | Arduino","6"],[" 7 EasyLab Lijn sensor Rechts | Arduino","7"],[" 8 EasyLab | Arduino","8"],[" 9 EasyLab | Arduino","9"],["10 EasyLab4Kids Servo | Arduino PWM","10"],["11 EasyLab | Arduino","11"],["12 EasyLab | Arduino","12"],["BBC Microbit Button A",'"A"'],["BBC Microbit Button B",
'"B"'],["Lego EVS_EV3 afstandsensor",'"EVS_EV3_US"'],["LEGO_EVS_EV3 aan-uit-knop",'"BAS1"']]),"IO_POORTEN_ARDUINO");this.setOutput(!0,"String");this.setTooltip("Welke IO poort")}};
Blockly.Blocks.IO_poorten_GPIO_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(200);this.appendDummyInput().appendField("Raspberry Pi | Linux GPIO").appendField(new Blockly.FieldDropdown([["Linux met GPIO-poorten | I2C SDA1","GPIO2"],["Linux met GPIO-poorten | I2C SCL1","GPIO3"],["Linux met GPIO-poorten |GPIO4","GPIO4"],["Linux met GPIO-poorten |GPIO5","GPIO5"],["Linux met GPIO-poorten |GPIO6","GPIO6"],["Linux met GPIO-poorten |GPIO7","GPIO7"],["Linux met GPIO-poorten |GPIO8",
"GPIO8"],["Linux met GPIO-poorten |GPIO9","GPIO9"],["Linux met GPIO-poorten |GPIO10","GPIO10"],["Linux met GPIO-poorten |GPIO11","GPIO11"],["Linux met GPIO-poorten |GPIO12","GPIO12"],["Linux met GPIO-poorten |GPIO13","GPIO13"],["Linux met GPIO-poorten |GPIO14","GPIO14"],["Linux met GPIO-poorten |GPIO15","GPIO15"],["Linux met GPIO-poorten |GPIO16","GPIO16"],["Linux met GPIO-poorten |GPIO17","GPIO17"],["Linux met GPIO-poorten |GPIO18","GPIO18"],["Linux met GPIO-poorten |GPIO19","GPIO19"],["Linux met GPIO-poorten |GPIO20",
"GPIO4"],["Linux met GPIO-poorten |GPIO21","GPIO4"],["Raspberry Pi | Interne LED","LED0"]]),"IO_POORTEN_GPIO");this.setOutput(!0,"String");this.setTooltip("Linux IO poorten voor bijvoorbeeld Raspberry Pi en C.H.I.P.")}};
Blockly.Blocks.IO_poorten_easylab_nano_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(195);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["EasyLab **selecteer een IO-poort",""],["EasyLab Arduino LED 13 | Grove","13"],["EasyLab LED Blou",'"A0"'],["EasyLab LED Groen",'"A1"'],["EasyLab LED Rooi",'"A2"'],["EasyLab knijper A3 ",'"A3"'],["EasyLab knijper A6 ",'"A6"'],["EasyLab knijper A7 ",'"A7"'],["EasyLab headerpin D0 (TX)","0"],
["EasyLab headerpin D1 (RX)","1"],["EasyLab knijper D8 ","8"],["EasyLab knopje","2"],["EasyLab Lijn sensor Links",'"A1"'],["EasyLab Lijn sensor Rechts","4"],["EasyLab Servo | Arduino PWM","10"],["EasyLab Servo | TX Wifi","11"],["EasyLab Servo | RX Wifi","12"]]),"IO_POORTEN_EASYLAB_NANO1");this.setOutput(!0,"String");this.setTooltip("Welke IO poort")}};
Blockly.Blocks.IO_poorten_easylab_nano_v2_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(195);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["EasyLab V2 **selecteer een IO-poort",""],["EasyLab V2 Arduino LED 13 | Grove","13"],["EasyLab V2 LED Blou","4"],["EasyLab V2 LED Groen","7"],["EasyLab V2 LED Rooi",'"A0"'],["EasyLab V2 knijper A2 ",'"A2"'],["EasyLab V2 knijper A3 ",'"A3"'],["EasyLab V2 knijper A4 i2c SDA",'"A4"'],["EasyLab V2 knijper A5 i2c SCL",
'"A5"'],["EasyLab V2 knijper A6 ",'"A6"'],["EasyLab V2 knijper A7 ",'"A7"'],["EasyLab V2 headerpin D0 (TX) ","0"],["EasyLab V2 headerpin D1 (RX) ","1"],["EasyLab V2 knopje","2"],["EasyLab V2 Lijn sensor Links A0",'"A0"'],["EasyLab V2 Lijn sensor Rechts D7","7"],["EasyLab Servo | Arduino PWM","10"],["EasyLab TX Wifi D11","11"],["EasyLab RX Wifi D12","12"]]),"IO_POORTEN_EASYLAB_NANO_V2");this.setOutput(!0,"String");this.setTooltip("Welke IO poort")}};
Blockly.Blocks.IO_poorten_bbc_microbit_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(195);this.appendDummyInput().appendField("BBC Microbit").appendField(new Blockly.FieldDropdown([["0 Analoog P0 PWM",'"A0"'],["1 Analoog P1 PWM",'"A1"'],["2 Analoog P2 PWM",'"A2"'],["3 Analoog P3 PWM",'"A3"'],["4 Analoog P4 ",'"A4"'],["5 Analoog P10 PWM",'"A5"'],["Button A P05",'"A"'],["Button B P11",'"B"'],["P05 ","5"],["P06 ","6"],["P07 ",
"7"],["P08 ","8"],["P09 ","9"],["P11 ","11"],["P19 I2C-SDA ","19"],["P20 I2C-SCL ","20"],["P13 SPI-SCK ","13"],["P14 SPI-MISO","14"],["P15 SPI-MOSI","15"],["P16 ","16"]]),"IO_POORTEN_BBC_MICROBIT1");this.setOutput(!0,"String");this.setTooltip("Welke IO poort")}};
Blockly.Blocks.IO_poorten_NodeMCU_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(195);this.appendDummyInput().appendField("Node MCU").appendField(new Blockly.FieldDropdown([["D0","0"],["D1","1"],["D2","2"],["D3","3"],["D4","4"],["D5","5"],["D6","6"],["D7","7"],["D8","8"],["RX D0","0"],["TX D1","1"],["A0 Analoog",'"A0"']]),"IO_POORTEN_NODEMCU1");this.setOutput(!0,"String");this.setTooltip("Welke IO poort")}};Blockly.Blocks.lists={};Blockly.Blocks.lists.HUE=260;Blockly.Blocks.lists_create_empty={init:function(){this.setHelpUrl(Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL);this.setColour(Blockly.Blocks.lists.HUE);this.setOutput(!0,"Array");this.appendDummyInput().appendField(Blockly.Msg.LISTS_CREATE_EMPTY_TITLE);this.setTooltip(Blockly.Msg.LISTS_CREATE_EMPTY_TOOLTIP)}};
Blockly.Blocks.lists_create_with={init:function(){this.setHelpUrl(Blockly.Msg.LISTS_CREATE_WITH_HELPURL);this.setColour(Blockly.Blocks.lists.HUE);this.itemCount_=3;this.updateShape_();this.setOutput(!0,"Array");this.setMutator(new Blockly.Mutator(["lists_create_with_item"]));this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("items",this.itemCount_);return a},domToMutation:function(a){this.itemCount_=parseInt(a.getAttribute("items"),
10);this.updateShape_()},decompose:function(a){var b=Blockly.Block.obtain(a,"lists_create_with_container");b.initSvg();for(var c=b.getInput("STACK").connection,d=0;d<this.itemCount_;d++){var e=Blockly.Block.obtain(a,"lists_create_with_item");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}return b},compose:function(a){a=a.getInputTargetBlock("STACK");for(var b=[],c=0;a;)b[c]=a.valueConnection_,a=a.nextConnection&&a.nextConnection.targetBlock(),c++;this.itemCount_=c;this.updateShape_();
for(c=0;c<this.itemCount_;c++)b[c]&&this.getInput("ADD"+c).connection.connect(b[c])},saveConnections:function(a){a=a.getInputTargetBlock("STACK");for(var b=0;a;){var c=this.getInput("ADD"+b);a.valueConnection_=c&&c.connection.targetConnection;b++;a=a.nextConnection&&a.nextConnection.targetBlock()}},updateShape_:function(){if(this.getInput("EMPTY"))this.removeInput("EMPTY");else for(var a=0;this.getInput("ADD"+a);)this.removeInput("ADD"+a),a++;if(0==this.itemCount_)this.appendDummyInput("EMPTY").appendField(Blockly.Msg.LISTS_CREATE_EMPTY_TITLE);
else for(a=0;a<this.itemCount_;a++){var b=this.appendValueInput("ADD"+a);0==a&&b.appendField(Blockly.Msg.LISTS_CREATE_WITH_INPUT_WITH)}}};Blockly.Blocks.lists_create_with_container={init:function(){this.setColour(Blockly.Blocks.lists.HUE);this.appendDummyInput().appendField(Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TITLE_ADD);this.appendStatementInput("STACK");this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.lists_create_with_item={init:function(){this.setColour(Blockly.Blocks.lists.HUE);this.appendDummyInput().appendField(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TITLE);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.lists_repeat={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_REPEAT_TITLE,args0:[{type:"input_value",name:"ITEM"},{type:"input_value",name:"NUM",check:"Number"}],output:"Array",colour:Blockly.Blocks.lists.HUE,tooltip:Blockly.Msg.LISTS_REPEAT_TOOLTIP,helpUrl:Blockly.Msg.LISTS_REPEAT_HELPURL})}};
Blockly.Blocks.lists_length={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_LENGTH_TITLE,args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Number",colour:Blockly.Blocks.lists.HUE,tooltip:Blockly.Msg.LISTS_LENGTH_TOOLTIP,helpUrl:Blockly.Msg.LISTS_LENGTH_HELPURL})}};
Blockly.Blocks.lists_isEmpty={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_ISEMPTY_TITLE,args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Boolean",colour:Blockly.Blocks.lists.HUE,tooltip:Blockly.Msg.LISTS_ISEMPTY_TOOLTIP,helpUrl:Blockly.Msg.LISTS_ISEMPTY_HELPURL})}};
Blockly.Blocks.lists_indexOf={init:function(){var a=[[Blockly.Msg.LISTS_INDEX_OF_FIRST,"FIRST"],[Blockly.Msg.LISTS_INDEX_OF_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.LISTS_INDEX_OF_HELPURL);this.setColour(Blockly.Blocks.lists.HUE);this.setOutput(!0,"Number");this.appendValueInput("VALUE").setCheck("Array").appendField(Blockly.Msg.LISTS_INDEX_OF_INPUT_IN_LIST);this.appendValueInput("FIND").appendField(new Blockly.FieldDropdown(a),"END");this.setInputsInline(!0);this.setTooltip(Blockly.Msg.LISTS_INDEX_OF_TOOLTIP)}};
Blockly.Blocks.lists_getIndex={init:function(){var a=[[Blockly.Msg.LISTS_GET_INDEX_GET,"GET"],[Blockly.Msg.LISTS_GET_INDEX_GET_REMOVE,"GET_REMOVE"],[Blockly.Msg.LISTS_GET_INDEX_REMOVE,"REMOVE"]];this.WHERE_OPTIONS=[[Blockly.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_INDEX_FIRST,"FIRST"],[Blockly.Msg.LISTS_GET_INDEX_LAST,"LAST"],[Blockly.Msg.LISTS_GET_INDEX_RANDOM,"RANDOM"]];this.setHelpUrl(Blockly.Msg.LISTS_GET_INDEX_HELPURL);
this.setColour(Blockly.Blocks.lists.HUE);a=new Blockly.FieldDropdown(a,function(a){this.sourceBlock_.updateStatement_("REMOVE"==a)});this.appendValueInput("VALUE").setCheck("Array").appendField(Blockly.Msg.LISTS_GET_INDEX_INPUT_IN_LIST);this.appendDummyInput().appendField(a,"MODE").appendField("","SPACE");this.appendDummyInput("AT");Blockly.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.LISTS_GET_INDEX_TAIL);this.setInputsInline(!0);this.setOutput(!0);this.updateAt_(!0);
var b=this;this.setTooltip(function(){var a=b.getFieldValue("MODE")+"_"+b.getFieldValue("WHERE");return Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_"+a]})},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("statement",!this.outputConnection);var b=this.getInput("AT").type==Blockly.INPUT_VALUE;a.setAttribute("at",b);return a},domToMutation:function(a){var b="true"==a.getAttribute("statement");this.updateStatement_(b);a="false"!=a.getAttribute("at");this.updateAt_(a)},updateStatement_:function(a){a!=
!this.outputConnection&&(this.unplug(!0,!0),a?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(a){this.removeInput("AT");this.removeInput("ORDINAL",!0);a?(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):this.appendDummyInput("AT");var b=new Blockly.FieldDropdown(this.WHERE_OPTIONS,
function(b){var c="FROM_START"==b||"FROM_END"==b;if(c!=a){var e=this.sourceBlock_;e.updateAt_(c);e.setFieldValue(b,"WHERE");return null}});this.getInput("AT").appendField(b,"WHERE");Blockly.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}};
Blockly.Blocks.lists_setIndex={init:function(){var a=[[Blockly.Msg.LISTS_SET_INDEX_SET,"SET"],[Blockly.Msg.LISTS_SET_INDEX_INSERT,"INSERT"]];this.WHERE_OPTIONS=[[Blockly.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_INDEX_FIRST,"FIRST"],[Blockly.Msg.LISTS_GET_INDEX_LAST,"LAST"],[Blockly.Msg.LISTS_GET_INDEX_RANDOM,"RANDOM"]];this.setHelpUrl(Blockly.Msg.LISTS_SET_INDEX_HELPURL);this.setColour(Blockly.Blocks.lists.HUE);this.appendValueInput("LIST").setCheck("Array").appendField(Blockly.Msg.LISTS_SET_INDEX_INPUT_IN_LIST);
this.appendDummyInput().appendField(new Blockly.FieldDropdown(a),"MODE").appendField("","SPACE");this.appendDummyInput("AT");this.appendValueInput("TO").appendField(Blockly.Msg.LISTS_SET_INDEX_INPUT_TO);this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LISTS_SET_INDEX_TOOLTIP);this.updateAt_(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("MODE")+"_"+b.getFieldValue("WHERE");return Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_"+a]})},
mutationToDom:function(){var a=document.createElement("mutation"),b=this.getInput("AT").type==Blockly.INPUT_VALUE;a.setAttribute("at",b);return a},domToMutation:function(a){a="false"!=a.getAttribute("at");this.updateAt_(a)},updateAt_:function(a){this.removeInput("AT");this.removeInput("ORDINAL",!0);a?(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):this.appendDummyInput("AT");var b=new Blockly.FieldDropdown(this.WHERE_OPTIONS,
function(b){var c="FROM_START"==b||"FROM_END"==b;if(c!=a){var e=this.sourceBlock_;e.updateAt_(c);e.setFieldValue(b,"WHERE");return null}});this.moveInputBefore("AT","TO");this.getInput("ORDINAL")&&this.moveInputBefore("ORDINAL","TO");this.getInput("AT").appendField(b,"WHERE")}};
Blockly.Blocks.lists_getSublist={init:function(){this.WHERE_OPTIONS_1=[[Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]];this.WHERE_OPTIONS_2=[[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.LISTS_GET_SUBLIST_HELPURL);this.setColour(Blockly.Blocks.lists.HUE);
this.appendValueInput("LIST").setCheck("Array").appendField(Blockly.Msg.LISTS_GET_SUBLIST_INPUT_IN_LIST);this.appendDummyInput("AT1");this.appendDummyInput("AT2");Blockly.Msg.LISTS_GET_SUBLIST_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.LISTS_GET_SUBLIST_TAIL);this.setInputsInline(!0);this.setOutput(!0,"Array");this.updateAt_(1,!0);this.updateAt_(2,!0);this.setTooltip(Blockly.Msg.LISTS_GET_SUBLIST_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation"),b=this.getInput("AT1").type==
Blockly.INPUT_VALUE;a.setAttribute("at1",b);b=this.getInput("AT2").type==Blockly.INPUT_VALUE;a.setAttribute("at2",b);return a},domToMutation:function(a){var b="true"==a.getAttribute("at1");a="true"==a.getAttribute("at2");this.updateAt_(1,b);this.updateAt_(2,a)},updateAt_:function(a,b){this.removeInput("AT"+a);this.removeInput("ORDINAL"+a,!0);b?(this.appendValueInput("AT"+a).setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL"+a).appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):
this.appendDummyInput("AT"+a);var c=new Blockly.FieldDropdown(this["WHERE_OPTIONS_"+a],function(c){var d="FROM_START"==c||"FROM_END"==c;if(d!=b){var f=this.sourceBlock_;f.updateAt_(a,d);f.setFieldValue(c,"WHERE"+a);return null}});this.getInput("AT"+a).appendField(c,"WHERE"+a);1==a&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"));Blockly.Msg.LISTS_GET_SUBLIST_TAIL&&this.moveInputBefore("TAIL",null)}};
Blockly.Blocks.lists_split={init:function(){var a=this,b=new Blockly.FieldDropdown([[Blockly.Msg.LISTS_SPLIT_LIST_FROM_TEXT,"SPLIT"],[Blockly.Msg.LISTS_SPLIT_TEXT_FROM_LIST,"JOIN"]],function(b){"SPLIT"==b?(a.outputConnection.setCheck("Array"),a.getInput("INPUT").setCheck("String")):(a.outputConnection.setCheck("String"),a.getInput("INPUT").setCheck("Array"))});this.setHelpUrl(Blockly.Msg.LISTS_SPLIT_HELPURL);this.setColour(Blockly.Blocks.lists.HUE);this.appendValueInput("INPUT").setCheck("String").appendField(b,
"MODE");this.appendValueInput("DELIM").setCheck("String").appendField(Blockly.Msg.LISTS_SPLIT_WITH_DELIMITER);this.setInputsInline(!0);this.setOutput(!0,"Array");this.setTooltip(function(){var b=a.getFieldValue("MODE");if("SPLIT"==b)return Blockly.Msg.LISTS_SPLIT_TOOLTIP_SPLIT;if("JOIN"==b)return Blockly.Msg.LISTS_SPLIT_TOOLTIP_JOIN;throw"Unknown mode: "+b;})}};Blockly.Blocks.logic={};Blockly.Blocks.logic.HUE=210;
Blockly.Blocks.controls_if={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.appendValueInput("IF0").setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_IF);this.appendStatementInput("DO0").appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setMutator(new Blockly.Mutator(["controls_if_elseif","controls_if_else"]));var a=this;this.setTooltip(function(){if(a.elseifCount_||a.elseCount_){if(!a.elseifCount_&&
a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_2;if(a.elseifCount_&&!a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_3;if(a.elseifCount_&&a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_4}else return Blockly.Msg.CONTROLS_IF_TOOLTIP_1;return""});this.elseCount_=this.elseifCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var a=document.createElement("mutation");this.elseifCount_&&a.setAttribute("elseif",this.elseifCount_);this.elseCount_&&a.setAttribute("else",
1);return a},domToMutation:function(a){this.elseifCount_=parseInt(a.getAttribute("elseif"),10)||0;this.elseCount_=parseInt(a.getAttribute("else"),10)||0;for(a=1;a<=this.elseifCount_;a++)this.appendValueInput("IF"+a).setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+a).appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE)},decompose:function(a){var b=Blockly.Block.obtain(a,
"controls_if_if");b.initSvg();for(var c=b.getInput("STACK").connection,d=1;d<=this.elseifCount_;d++){var e=Blockly.Block.obtain(a,"controls_if_elseif");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}this.elseCount_&&(a=Blockly.Block.obtain(a,"controls_if_else"),a.initSvg(),c.connect(a.previousConnection));return b},compose:function(a){this.elseCount_&&this.removeInput("ELSE");this.elseCount_=0;for(var b=this.elseifCount_;0<b;b--)this.removeInput("IF"+b),this.removeInput("DO"+b);this.elseifCount_=
0;for(a=a.getInputTargetBlock("STACK");a;){switch(a.type){case "controls_if_elseif":this.elseifCount_++;b=this.appendValueInput("IF"+this.elseifCount_).setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF);var c=this.appendStatementInput("DO"+this.elseifCount_);c.appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);a.valueConnection_&&b.connection.connect(a.valueConnection_);a.statementConnection_&&c.connection.connect(a.statementConnection_);break;case "controls_if_else":this.elseCount_++;
b=this.appendStatementInput("ELSE");b.appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE);a.statementConnection_&&b.connection.connect(a.statementConnection_);break;default:throw"Unknown block type.";}a=a.nextConnection&&a.nextConnection.targetBlock()}},saveConnections:function(a){a=a.getInputTargetBlock("STACK");for(var b=1;a;){switch(a.type){case "controls_if_elseif":var c=this.getInput("IF"+b),d=this.getInput("DO"+b);a.valueConnection_=c&&c.connection.targetConnection;a.statementConnection_=d&&d.connection.targetConnection;
b++;break;case "controls_if_else":d=this.getInput("ELSE");a.statementConnection_=d&&d.connection.targetConnection;break;default:throw"Unknown block type.";}a=a.nextConnection&&a.nextConnection.targetBlock()}}};Blockly.Blocks.controls_if_if={init:function(){this.setColour(Blockly.Blocks.logic.HUE);this.appendDummyInput().appendField(Blockly.Msg.CONTROLS_IF_IF_TITLE_IF);this.appendStatementInput("STACK");this.setTooltip(Blockly.Msg.CONTROLS_IF_IF_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.controls_if_elseif={init:function(){this.setColour(Blockly.Blocks.logic.HUE);this.appendDummyInput().appendField(Blockly.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSEIF_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.controls_if_else={init:function(){this.setColour(Blockly.Blocks.logic.HUE);this.appendDummyInput().appendField(Blockly.Msg.CONTROLS_IF_ELSE_TITLE_ELSE);this.setPreviousStatement(!0);this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSE_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.logic_compare={init:function(){var a=this.RTL?[["=","EQ"],["\u2260","NEQ"],[">","LT"],["\u2265","LTE"],["<","GT"],["\u2264","GTE"]]:[["=","EQ"],["\u2260","NEQ"],["<","LT"],["\u2264","LTE"],[">","GT"],["\u2265","GTE"]];this.setHelpUrl(Blockly.Msg.LOGIC_COMPARE_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.setOutput(!0,"Boolean");this.appendValueInput("A");this.appendValueInput("B").appendField(new Blockly.FieldDropdown(a),"OP");this.setInputsInline(!0);var b=this;this.setTooltip(function(){var a=
b.getFieldValue("OP");return{EQ:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[a]});this.prevBlocks_=[null,null]},onchange:function(){var a=this.getInputTargetBlock("A"),b=this.getInputTargetBlock("B");if(a&&b&&!a.outputConnection.checkType_(b.outputConnection))for(var c=0;c<this.prevBlocks_.length;c++){var d=
this.prevBlocks_[c];if(d===a||d===b)d.setParent(null),d.bumpNeighbours_()}this.prevBlocks_[0]=a;this.prevBlocks_[1]=b}};
Blockly.Blocks.logic_operation={init:function(){var a=[[Blockly.Msg.LOGIC_OPERATION_AND,"AND"],[Blockly.Msg.LOGIC_OPERATION_OR,"OR"]];this.setHelpUrl(Blockly.Msg.LOGIC_OPERATION_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.setOutput(!0,"Boolean");this.appendValueInput("A").setCheck("Boolean");this.appendValueInput("B").setCheck("Boolean").appendField(new Blockly.FieldDropdown(a),"OP");this.setInputsInline(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("OP");return{AND:Blockly.Msg.LOGIC_OPERATION_TOOLTIP_AND,
OR:Blockly.Msg.LOGIC_OPERATION_TOOLTIP_OR}[a]})}};Blockly.Blocks.logic_negate={init:function(){this.jsonInit({message0:Blockly.Msg.LOGIC_NEGATE_TITLE,args0:[{type:"input_value",name:"BOOL",check:"Boolean"}],output:"Boolean",colour:Blockly.Blocks.logic.HUE,tooltip:Blockly.Msg.LOGIC_NEGATE_TOOLTIP,helpUrl:Blockly.Msg.LOGIC_NEGATE_HELPURL})}};
Blockly.Blocks.logic_boolean={init:function(){var a=[[Blockly.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Blockly.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setHelpUrl(Blockly.Msg.LOGIC_BOOLEAN_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.setOutput(!0,"Boolean");this.appendDummyInput().appendField(new Blockly.FieldDropdown(a),"BOOL");this.setTooltip(Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP)}};
Blockly.Blocks.logic_null={init:function(){this.setHelpUrl(Blockly.Msg.LOGIC_NULL_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.setOutput(!0);this.appendDummyInput().appendField(Blockly.Msg.LOGIC_NULL);this.setTooltip(Blockly.Msg.LOGIC_NULL_TOOLTIP)}};
Blockly.Blocks.logic_ternary={init:function(){this.setHelpUrl(Blockly.Msg.LOGIC_TERNARY_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.appendValueInput("IF").setCheck("Boolean").appendField(Blockly.Msg.LOGIC_TERNARY_CONDITION);this.appendValueInput("THEN").appendField(Blockly.Msg.LOGIC_TERNARY_IF_TRUE);this.appendValueInput("ELSE").appendField(Blockly.Msg.LOGIC_TERNARY_IF_FALSE);this.setOutput(!0);this.setTooltip(Blockly.Msg.LOGIC_TERNARY_TOOLTIP);this.prevParentConnection_=null},onchange:function(){var a=
this.getInputTargetBlock("THEN"),b=this.getInputTargetBlock("ELSE"),c=this.outputConnection.targetConnection;if((a||b)&&c)for(var d=0;2>d;d++){var e=1==d?a:b;e&&!e.outputConnection.checkType_(c)&&(c===this.prevParentConnection_?(this.setParent(null),c.sourceBlock_.bumpNeighbours_()):(e.setParent(null),e.bumpNeighbours_()))}this.prevParentConnection_=c}};Blockly.Blocks.loops={};Blockly.Blocks.loops.HUE=120;Blockly.Blocks.controls_repeat={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"field_input",name:"TIMES",text:"10"}],previousStatement:null,nextStatement:null,colour:Blockly.Blocks.loops.HUE,tooltip:Blockly.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Blockly.Msg.CONTROLS_REPEAT_HELPURL});this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);this.getField("TIMES").setChangeHandler(Blockly.FieldTextInput.nonnegativeIntegerValidator)}};
Blockly.Blocks.controls_repeat_ext={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES",check:"Number"}],previousStatement:null,nextStatement:null,colour:Blockly.Blocks.loops.HUE,tooltip:Blockly.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Blockly.Msg.CONTROLS_REPEAT_HELPURL});this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO)}};
Blockly.Blocks.controls_whileUntil={init:function(){var a=[[Blockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Blockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];this.setHelpUrl(Blockly.Msg.CONTROLS_WHILEUNTIL_HELPURL);this.setColour(Blockly.Blocks.loops.HUE);this.appendValueInput("BOOL").setCheck("Boolean").appendField(new Blockly.FieldDropdown(a),"MODE");this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_WHILEUNTIL_INPUT_DO);this.setPreviousStatement(!0);this.setNextStatement(!0);
var b=this;this.setTooltip(function(){var a=b.getFieldValue("MODE");return{WHILE:Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[a]})}};
Blockly.Blocks.controls_for={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_FOR_TITLE,args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value",name:"FROM",check:"Number",align:"RIGHT"},{type:"input_value",name:"TO",check:"Number",align:"RIGHT"},{type:"input_value",name:"BY",check:"Number",align:"RIGHT"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Blocks.loops.HUE,helpUrl:Blockly.Msg.CONTROLS_FOR_HELPURL});this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_FOR_INPUT_DO);
var a=this;this.setTooltip(function(){return Blockly.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",a.getFieldValue("VAR"))})},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(a,b){Blockly.Names.equals(a,this.getFieldValue("VAR"))&&this.setFieldValue(b,"VAR")},customContextMenu:function(a){if(!this.isCollapsed()){var b={enabled:!0},c=this.getFieldValue("VAR");b.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",c);c=goog.dom.createDom("field",null,c);c.setAttribute("name","VAR");
c=goog.dom.createDom("block",null,c);c.setAttribute("type","variables_get");b.callback=Blockly.ContextMenu.callbackFactory(this,c);a.push(b)}}};
Blockly.Blocks.controls_forEach={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_FOREACH_TITLE,args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value",name:"LIST",check:"Array"}],previousStatement:null,nextStatement:null,colour:Blockly.Blocks.loops.HUE,helpUrl:Blockly.Msg.CONTROLS_FOREACH_HELPURL});this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_FOREACH_INPUT_DO);var a=this;this.setTooltip(function(){return Blockly.Msg.CONTROLS_FOREACH_TOOLTIP.replace("%1",
a.getFieldValue("VAR"))})},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(a,b){Blockly.Names.equals(a,this.getFieldValue("VAR"))&&this.setFieldValue(b,"VAR")},customContextMenu:Blockly.Blocks.controls_for.customContextMenu};
Blockly.Blocks.controls_flow_statements={init:function(){var a=[[Blockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Blockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];this.setHelpUrl(Blockly.Msg.CONTROLS_FLOW_STATEMENTS_HELPURL);this.setColour(Blockly.Blocks.loops.HUE);this.appendDummyInput().appendField(new Blockly.FieldDropdown(a),"FLOW");this.setPreviousStatement(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("FLOW");return{BREAK:Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,
CONTINUE:Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[a]})},onchange:function(){var a=!1,b=this;do{if("controls_repeat"==b.type||"controls_repeat_ext"==b.type||"controls_forEach"==b.type||"controls_for"==b.type||"controls_whileUntil"==b.type){a=!0;break}b=b.getSurroundParent()}while(b);a?this.setWarningText(null):this.setWarningText(Blockly.Msg.CONTROLS_FLOW_STATEMENTS_WARNING)}};Blockly.Blocks.math={};Blockly.Blocks.math.HUE=230;Blockly.Blocks.math_number={init:function(){this.setHelpUrl(Blockly.Msg.MATH_NUMBER_HELPURL);this.setColour(Blockly.Blocks.math.HUE);this.appendDummyInput().appendField(new Blockly.FieldTextInput("0",Blockly.FieldTextInput.numberValidator),"NUM");this.setOutput(!0,"Number");this.setTooltip(Blockly.Msg.MATH_NUMBER_TOOLTIP)}};
Blockly.Blocks.math_arithmetic={init:function(){var a=[[Blockly.Msg.MATH_ADDITION_SYMBOL,"ADD"],[Blockly.Msg.MATH_SUBTRACTION_SYMBOL,"MINUS"],[Blockly.Msg.MATH_MULTIPLICATION_SYMBOL,"MULTIPLY"],[Blockly.Msg.MATH_DIVISION_SYMBOL,"DIVIDE"],[Blockly.Msg.MATH_POWER_SYMBOL,"POWER"]];this.setHelpUrl(Blockly.Msg.MATH_ARITHMETIC_HELPURL);this.setColour(Blockly.Blocks.math.HUE);this.setOutput(!0,"Number");this.appendValueInput("A").setCheck("Number");this.appendValueInput("B").setCheck("Number").appendField(new Blockly.FieldDropdown(a),
"OP");this.setInputsInline(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("OP");return{ADD:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[a]})}};
Blockly.Blocks.math_single={init:function(){var a=[[Blockly.Msg.MATH_SINGLE_OP_ROOT,"ROOT"],[Blockly.Msg.MATH_SINGLE_OP_ABSOLUTE,"ABS"],["-","NEG"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]];this.setHelpUrl(Blockly.Msg.MATH_SINGLE_HELPURL);this.setColour(Blockly.Blocks.math.HUE);this.setOutput(!0,"Number");this.appendValueInput("NUM").setCheck("Number").appendField(new Blockly.FieldDropdown(a),"OP");var b=this;this.setTooltip(function(){var a=b.getFieldValue("OP");return{ROOT:Blockly.Msg.MATH_SINGLE_TOOLTIP_ROOT,
ABS:Blockly.Msg.MATH_SINGLE_TOOLTIP_ABS,NEG:Blockly.Msg.MATH_SINGLE_TOOLTIP_NEG,LN:Blockly.Msg.MATH_SINGLE_TOOLTIP_LN,LOG10:Blockly.Msg.MATH_SINGLE_TOOLTIP_LOG10,EXP:Blockly.Msg.MATH_SINGLE_TOOLTIP_EXP,POW10:Blockly.Msg.MATH_SINGLE_TOOLTIP_POW10}[a]})}};
Blockly.Blocks.math_trig={init:function(){var a=[[Blockly.Msg.MATH_TRIG_SIN,"SIN"],[Blockly.Msg.MATH_TRIG_COS,"COS"],[Blockly.Msg.MATH_TRIG_TAN,"TAN"],[Blockly.Msg.MATH_TRIG_ASIN,"ASIN"],[Blockly.Msg.MATH_TRIG_ACOS,"ACOS"],[Blockly.Msg.MATH_TRIG_ATAN,"ATAN"]];this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL);this.setColour(Blockly.Blocks.math.HUE);this.setOutput(!0,"Number");this.appendValueInput("NUM").setCheck("Number").appendField(new Blockly.FieldDropdown(a),"OP");var b=this;this.setTooltip(function(){var a=
b.getFieldValue("OP");return{SIN:Blockly.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Blockly.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Blockly.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Blockly.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Blockly.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Blockly.Msg.MATH_TRIG_TOOLTIP_ATAN}[a]})}};
Blockly.Blocks.math_constant={init:function(){this.setHelpUrl(Blockly.Msg.MATH_CONSTANT_HELPURL);this.setColour(Blockly.Blocks.math.HUE);this.setOutput(!0,"Number");this.appendDummyInput().appendField(new Blockly.FieldDropdown([["\u03c0","PI"],["e","E"],["\u03c6","GOLDEN_RATIO"],["sqrt(2)","SQRT2"],["sqrt(\u00bd)","SQRT1_2"],["\u221e","INFINITY"]]),"CONSTANT");this.setTooltip(Blockly.Msg.MATH_CONSTANT_TOOLTIP)}};
Blockly.Blocks.math_number_property={init:function(){var a=[[Blockly.Msg.MATH_IS_EVEN,"EVEN"],[Blockly.Msg.MATH_IS_ODD,"ODD"],[Blockly.Msg.MATH_IS_PRIME,"PRIME"],[Blockly.Msg.MATH_IS_WHOLE,"WHOLE"],[Blockly.Msg.MATH_IS_POSITIVE,"POSITIVE"],[Blockly.Msg.MATH_IS_NEGATIVE,"NEGATIVE"],[Blockly.Msg.MATH_IS_DIVISIBLE_BY,"DIVISIBLE_BY"]];this.setColour(Blockly.Blocks.math.HUE);this.appendValueInput("NUMBER_TO_CHECK").setCheck("Number");a=new Blockly.FieldDropdown(a,function(a){this.sourceBlock_.updateShape_("DIVISIBLE_BY"==
a)});this.appendDummyInput().appendField(a,"PROPERTY");this.setInputsInline(!0);this.setOutput(!0,"Boolean");this.setTooltip(Blockly.Msg.MATH_IS_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation"),b="DIVISIBLE_BY"==this.getFieldValue("PROPERTY");a.setAttribute("divisor_input",b);return a},domToMutation:function(a){a="true"==a.getAttribute("divisor_input");this.updateShape_(a)},updateShape_:function(a){var b=this.getInput("DIVISOR");a?b||this.appendValueInput("DIVISOR").setCheck("Number"):
b&&this.removeInput("DIVISOR")}};
Blockly.Blocks.math_change={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_CHANGE_TITLE,args0:[{type:"field_variable",name:"VAR",variable:Blockly.Msg.MATH_CHANGE_TITLE_ITEM},{type:"input_value",name:"DELTA",check:"Number"}],previousStatement:null,nextStatement:null,colour:Blockly.Blocks.math.HUE,helpUrl:Blockly.Msg.MATH_CHANGE_HELPURL});var a=this;this.setTooltip(function(){return Blockly.Msg.MATH_CHANGE_TOOLTIP.replace("%1",a.getFieldValue("VAR"))})},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(a,
b){Blockly.Names.equals(a,this.getFieldValue("VAR"))&&this.setFieldValue(b,"VAR")}};
Blockly.Blocks.math_round={init:function(){var a=[[Blockly.Msg.MATH_ROUND_OPERATOR_ROUND,"ROUND"],[Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDUP,"ROUNDUP"],[Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDDOWN,"ROUNDDOWN"]];this.setHelpUrl(Blockly.Msg.MATH_ROUND_HELPURL);this.setColour(Blockly.Blocks.math.HUE);this.setOutput(!0,"Number");this.appendValueInput("NUM").setCheck("Number").appendField(new Blockly.FieldDropdown(a),"OP");this.setTooltip(Blockly.Msg.MATH_ROUND_TOOLTIP)}};
Blockly.Blocks.math_on_list={init:function(){var a=[[Blockly.Msg.MATH_ONLIST_OPERATOR_SUM,"SUM"],[Blockly.Msg.MATH_ONLIST_OPERATOR_MIN,"MIN"],[Blockly.Msg.MATH_ONLIST_OPERATOR_MAX,"MAX"],[Blockly.Msg.MATH_ONLIST_OPERATOR_AVERAGE,"AVERAGE"],[Blockly.Msg.MATH_ONLIST_OPERATOR_MEDIAN,"MEDIAN"],[Blockly.Msg.MATH_ONLIST_OPERATOR_MODE,"MODE"],[Blockly.Msg.MATH_ONLIST_OPERATOR_STD_DEV,"STD_DEV"],[Blockly.Msg.MATH_ONLIST_OPERATOR_RANDOM,"RANDOM"]],b=this;this.setHelpUrl(Blockly.Msg.MATH_ONLIST_HELPURL);this.setColour(Blockly.Blocks.math.HUE);
this.setOutput(!0,"Number");a=new Blockly.FieldDropdown(a,function(a){"MODE"==a?b.outputConnection.setCheck("Array"):b.outputConnection.setCheck("Number")});this.appendValueInput("LIST").setCheck("Array").appendField(a,"OP");this.setTooltip(function(){var a=b.getFieldValue("OP");return{SUM:Blockly.Msg.MATH_ONLIST_TOOLTIP_SUM,MIN:Blockly.Msg.MATH_ONLIST_TOOLTIP_MIN,MAX:Blockly.Msg.MATH_ONLIST_TOOLTIP_MAX,AVERAGE:Blockly.Msg.MATH_ONLIST_TOOLTIP_AVERAGE,MEDIAN:Blockly.Msg.MATH_ONLIST_TOOLTIP_MEDIAN,
MODE:Blockly.Msg.MATH_ONLIST_TOOLTIP_MODE,STD_DEV:Blockly.Msg.MATH_ONLIST_TOOLTIP_STD_DEV,RANDOM:Blockly.Msg.MATH_ONLIST_TOOLTIP_RANDOM}[a]})}};Blockly.Blocks.math_modulo={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_MODULO_TITLE,args0:[{type:"input_value",name:"DIVIDEND",check:"Number"},{type:"input_value",name:"DIVISOR",check:"Number"}],inputsInline:!0,output:"Number",colour:Blockly.Blocks.math.HUE,tooltip:Blockly.Msg.MATH_MODULO_TOOLTIP,helpUrl:Blockly.Msg.MATH_MODULO_HELPURL})}};
Blockly.Blocks.math_constrain={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_CONSTRAIN_TITLE,args0:[{type:"input_value",name:"VALUE",check:"Number"},{type:"input_value",name:"LOW",check:"Number"},{type:"input_value",name:"HIGH",check:"Number"}],inputsInline:!0,output:"Number",colour:Blockly.Blocks.math.HUE,tooltip:Blockly.Msg.MATH_CONSTRAIN_TOOLTIP,helpUrl:Blockly.Msg.MATH_CONSTRAIN_HELPURL})}};
Blockly.Blocks.math_random_int={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_RANDOM_INT_TITLE,args0:[{type:"input_value",name:"FROM",check:"Number"},{type:"input_value",name:"TO",check:"Number"}],inputsInline:!0,output:"Number",colour:Blockly.Blocks.math.HUE,tooltip:Blockly.Msg.MATH_RANDOM_INT_TOOLTIP,helpUrl:Blockly.Msg.MATH_RANDOM_INT_HELPURL})}};
Blockly.Blocks.math_random_float={init:function(){this.setHelpUrl(Blockly.Msg.MATH_RANDOM_FLOAT_HELPURL);this.setColour(Blockly.Blocks.math.HUE);this.setOutput(!0,"Number");this.appendDummyInput().appendField(Blockly.Msg.MATH_RANDOM_FLOAT_TITLE_RANDOM);this.setTooltip(Blockly.Msg.MATH_RANDOM_FLOAT_TOOLTIP)}};Blockly.Blocks.procedures={};Blockly.Blocks.procedures.HUE=290;
Blockly.Blocks.procedures_defnoreturn={init:function(){this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL);this.setColour(92);var a=Blockly.Procedures.findLegalName(Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE,this);a=new Blockly.FieldTextInput(a,Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));this.setTooltip(Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP);
this.arguments_=[];this.setStatements_(!0);this.statementConnection_=null},setStatements_:function(a){this.hasStatements_!==a&&(a?(this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=a)},updateParams_:function(){for(var a=!1,b={},c=0;c<this.arguments_.length;c++){if(b["arg_"+this.arguments_[c].toLowerCase()]){a=!0;break}b["arg_"+this.arguments_[c].toLowerCase()]=
!0}a?this.setWarningText(Blockly.Msg.PROCEDURES_DEF_DUPLICATE_WARNING):this.setWarningText(null);a="";this.arguments_.length&&(a=Blockly.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", "));this.setFieldValue(a,"PARAMS")},mutationToDom:function(){for(var a=document.createElement("mutation"),b=0;b<this.arguments_.length;b++){var c=document.createElement("arg");c.setAttribute("name",this.arguments_[b]);a.appendChild(c)}this.hasStatements_||a.setAttribute("statements","false");return a},domToMutation:function(a){this.arguments_=
[];for(var b=0,c;c=a.childNodes[b];b++)"arg"==c.nodeName.toLowerCase()&&this.arguments_.push(c.getAttribute("name"));this.updateParams_();this.setStatements_("false"!==a.getAttribute("statements"))},decompose:function(a){var b=Blockly.Block.obtain(a,"procedures_mutatorcontainer");b.initSvg();this.getInput("RETURN")?b.setFieldValue(this.hasStatements_?"TRUE":"FALSE","STATEMENTS"):b.getInput("STATEMENT_INPUT").setVisible(!1);for(var c=b.getInput("STACK").connection,d=0;d<this.arguments_.length;d++){var e=
Blockly.Block.obtain(a,"procedures_mutatorarg");e.initSvg();e.setFieldValue(this.arguments_[d],"NAME");e.oldLocation=d;c.connect(e.previousConnection);c=e.nextConnection}Blockly.Procedures.mutateCallers(this.getFieldValue("NAME"),this.workspace,this.arguments_,null);return b},compose:function(a){this.arguments_=[];this.paramIds_=[];for(var b=a.getInputTargetBlock("STACK");b;)this.arguments_.push(b.getFieldValue("NAME")),this.paramIds_.push(b.id),b=b.nextConnection&&b.nextConnection.targetBlock();
this.updateParams_();Blockly.Procedures.mutateCallers(this.getFieldValue("NAME"),this.workspace,this.arguments_,this.paramIds_);a=a.getFieldValue("STATEMENTS");if(null!==a&&(a="TRUE"==a,this.hasStatements_!=a))if(a)this.setStatements_(!0),a=this.getInput("STACK").connection,a.targetConnection||!this.statementConnection_||this.statementConnection_.targetConnection||this.statementConnection_.sourceBlock_.workspace!=this.workspace?this.statementConnection_=null:a.connect(this.statementConnection_);else{a=
this.getInput("STACK").connection;if(this.statementConnection_=a.targetConnection)a=a.targetBlock(),a.setParent(null),a.bumpNeighbours_();this.setStatements_(!1)}},dispose:function(){var a=this.getFieldValue("NAME");Blockly.Procedures.disposeCallers(a,this.workspace);this.constructor.prototype.dispose.apply(this,arguments)},getProcedureDef:function(){return[this.getFieldValue("NAME"),this.arguments_,!1]},getVars:function(){return this.arguments_},renameVar:function(a,b){for(var c=!1,d=0;d<this.arguments_.length;d++)Blockly.Names.equals(a,
this.arguments_[d])&&(this.arguments_[d]=b,c=!0);if(c&&(this.updateParams_(),this.mutator.isVisible())){c=this.mutator.workspace_.getAllBlocks();d=0;for(var e;e=c[d];d++)"procedures_mutatorarg"==e.type&&Blockly.Names.equals(a,e.getFieldValue("NAME"))&&e.setFieldValue(b,"NAME")}},customContextMenu:function(a){var b={enabled:!0},c=this.getFieldValue("NAME");b.text=Blockly.Msg.PROCEDURES_CREATE_DO.replace("%1",c);var d=goog.dom.createDom("mutation");d.setAttribute("name",c);for(var e=0;e<this.arguments_.length;e++)c=
goog.dom.createDom("arg"),c.setAttribute("name",this.arguments_[e]),d.appendChild(c);d=goog.dom.createDom("block",null,d);d.setAttribute("type",this.callType_);b.callback=Blockly.ContextMenu.callbackFactory(this,d);a.push(b);if(!this.isCollapsed())for(e=0;e<this.arguments_.length;e++)b={enabled:!0},c=this.arguments_[e],b.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",c),d=goog.dom.createDom("field",null,c),d.setAttribute("name","VAR"),d=goog.dom.createDom("block",null,d),d.setAttribute("type",
"variables_get"),b.callback=Blockly.ContextMenu.callbackFactory(this,d),a.push(b)},callType_:"procedures_callnoreturn"};
Blockly.Blocks.procedures_defreturn={init:function(){this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFRETURN_HELPURL);this.setColour(Blockly.Blocks.procedures.HUE);var a=Blockly.Procedures.findLegalName(Blockly.Msg.PROCEDURES_DEFRETURN_PROCEDURE,this);a=new Blockly.FieldTextInput(a,Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFRETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.appendValueInput("RETURN").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN).setCheck(["Number",
"Boolean"]);this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_TOOLTIP);this.arguments_=[];this.setStatements_(!0);this.statementConnection_=null},setStatements_:Blockly.Blocks.procedures_defnoreturn.setStatements_,updateParams_:Blockly.Blocks.procedures_defnoreturn.updateParams_,mutationToDom:Blockly.Blocks.procedures_defnoreturn.mutationToDom,domToMutation:Blockly.Blocks.procedures_defnoreturn.domToMutation,decompose:Blockly.Blocks.procedures_defnoreturn.decompose,
compose:Blockly.Blocks.procedures_defnoreturn.compose,dispose:Blockly.Blocks.procedures_defnoreturn.dispose,getProcedureDef:function(){return[this.getFieldValue("NAME"),this.arguments_,!0]},getVars:Blockly.Blocks.procedures_defnoreturn.getVars,renameVar:Blockly.Blocks.procedures_defnoreturn.renameVar,customContextMenu:Blockly.Blocks.procedures_defnoreturn.customContextMenu,callType_:"procedures_callreturn"};
Blockly.Blocks.procedures_mutatorcontainer={init:function(){this.setColour(85);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TITLE);this.appendStatementInput("STACK");this.appendDummyInput("STATEMENT_INPUT").appendField(Blockly.Msg.PROCEDURES_ALLOW_STATEMENTS).appendField(new Blockly.FieldCheckbox("TRUE"),"STATEMENTS");this.setTooltip(Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.procedures_mutatorarg={init:function(){this.setColour(Blockly.Blocks.procedures.HUE);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_MUTATORARG_TITLE).appendField(new Blockly.FieldTextInput("x",this.validator_),"NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.PROCEDURES_MUTATORARG_TOOLTIP);this.contextMenu=!1},validator_:function(a){return(a=a.replace(/[\s\xa0]+/g," ").replace(/^ | $/g,""))||null}};
Blockly.Blocks.procedures_callnoreturn={init:function(){this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL);this.setColour(Blockly.Blocks.procedures.HUE);this.appendDummyInput("TOPROW").appendField(Blockly.Msg.PROCEDURES_CALLNORETURN_CALL).appendField("","NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.arguments_=[];this.quarkConnections_={};this.quarkArguments_=null},getProcedureCall:function(){return this.getFieldValue("NAME")},renameProcedure:function(a,b){Blockly.Names.equals(a,
this.getProcedureCall())&&(this.setFieldValue(b,"NAME"),this.setTooltip((this.outputConnection?Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP:Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP).replace("%1",b)))},setProcedureParameters:function(a,b){if(b)if(goog.array.equals(this.arguments_,a))this.quarkArguments_=b;else{this.setCollapsed(!1);if(b.length!=a.length)throw"Error: paramNames and paramIds must be the same length.";this.quarkArguments_||(this.quarkConnections_={},a.join("\n")==this.arguments_.join("\n")?
this.quarkArguments_=b:this.quarkArguments_=[]);var c=this.rendered;this.rendered=!1;for(var d=this.arguments_.length-1;0<=d;d--){var e=this.getInput("ARG"+d);if(e){var f=e.connection.targetConnection;this.quarkConnections_[this.quarkArguments_[d]]=f;this.removeInput("ARG"+d)}}this.arguments_=[].concat(a);this.renderArgs_();if(this.quarkArguments_=b)for(d=0;d<this.arguments_.length;d++){e=this.getInput("ARG"+d);var g=this.quarkArguments_[d];g in this.quarkConnections_&&(f=this.quarkConnections_[g],
!f||f.targetConnection||f.sourceBlock_.workspace!=this.workspace?delete this.quarkConnections_[g]:e.connection.connect(f))}(this.rendered=c)&&this.render()}else this.quarkConnections_={},this.quarkArguments_=null},renderArgs_:function(){for(var a=0;a<this.arguments_.length;a++){var b=this.appendValueInput("ARG"+a).setAlign(Blockly.ALIGN_RIGHT).appendField(this.arguments_[a]);b.init()}if(b=this.getInput("TOPROW"))this.arguments_.length?this.getField("WITH")||(b.appendField(Blockly.Msg.PROCEDURES_CALL_BEFORE_PARAMS,
"WITH"),b.init()):this.getField("WITH")&&b.removeField("WITH")},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("name",this.getProcedureCall());for(var b=0;b<this.arguments_.length;b++){var c=document.createElement("arg");c.setAttribute("name",this.arguments_[b]);a.appendChild(c)}return a},domToMutation:function(a){var b=a.getAttribute("name");this.setFieldValue(b,"NAME");this.setTooltip((this.outputConnection?Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP:Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP).replace("%1",
b));if((b=Blockly.Procedures.getDefinition(b,this.workspace))&&b.mutator&&b.mutator.isVisible())this.setProcedureParameters(b.arguments_,b.paramIds_);else{b=[];for(var c=0,d;d=a.childNodes[c];c++)"arg"==d.nodeName.toLowerCase()&&b.push(d.getAttribute("name"));this.setProcedureParameters(b,b)}},renameVar:function(a,b){for(var c=0;c<this.arguments_.length;c++)Blockly.Names.equals(a,this.arguments_[c])&&(this.arguments_[c]=b,this.getInput("ARG"+c).fieldRow[0].setText(b))},customContextMenu:function(a){var b=
{enabled:!0};b.text=Blockly.Msg.PROCEDURES_HIGHLIGHT_DEF;var c=this.getProcedureCall(),d=this.workspace;b.callback=function(){var a=Blockly.Procedures.getDefinition(c,d);a&&a.select()};a.push(b)}};
Blockly.Blocks.procedures_callreturn={init:function(){this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLRETURN_HELPURL);this.setColour(Blockly.Blocks.procedures.HUE);this.appendDummyInput("TOPROW").appendField(Blockly.Msg.PROCEDURES_CALLRETURN_CALL).appendField("","NAME");this.setOutput(!0);this.arguments_=[];this.quarkConnections_={};this.quarkArguments_=null},getProcedureCall:Blockly.Blocks.procedures_callnoreturn.getProcedureCall,renameProcedure:Blockly.Blocks.procedures_callnoreturn.renameProcedure,
setProcedureParameters:Blockly.Blocks.procedures_callnoreturn.setProcedureParameters,renderArgs_:Blockly.Blocks.procedures_callnoreturn.renderArgs_,mutationToDom:Blockly.Blocks.procedures_callnoreturn.mutationToDom,domToMutation:Blockly.Blocks.procedures_callnoreturn.domToMutation,renameVar:Blockly.Blocks.procedures_callnoreturn.renameVar,customContextMenu:Blockly.Blocks.procedures_callnoreturn.customContextMenu};
Blockly.Blocks.procedures_ifreturn={init:function(){this.setHelpUrl("http://c2.com/cgi/wiki?GuardClause");this.setColour(Blockly.Blocks.procedures.HUE);this.appendValueInput("CONDITION").setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_IF);this.appendValueInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN);this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.PROCEDURES_IFRETURN_TOOLTIP);this.hasReturnValue_=!0},mutationToDom:function(){var a=
document.createElement("mutation");a.setAttribute("value",Number(this.hasReturnValue_));return a},domToMutation:function(a){this.hasReturnValue_=1==a.getAttribute("value");this.hasReturnValue_||(this.removeInput("VALUE"),this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN))},onchange:function(){var a=!1,b=this;do{if("procedures_defnoreturn"==b.type||"procedures_defreturn"==b.type){a=!0;break}b=b.getSurroundParent()}while(b);a?("procedures_defnoreturn"==b.type&&this.hasReturnValue_?
(this.removeInput("VALUE"),this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),this.hasReturnValue_=!1):"procedures_defreturn"!=b.type||this.hasReturnValue_||(this.removeInput("VALUE"),this.appendValueInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),this.hasReturnValue_=!0),this.setWarningText(null)):this.setWarningText(Blockly.Msg.PROCEDURES_IFRETURN_WARNING)}};Blockly.Blocks.motors={};
Blockly.Blocks.event_motor={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(44);this.appendValueInput("EVENT_MOTOR_NAAM1","String").appendField(" Welke motortje? ").setCheck("String");this.appendValueInput("EVENT_MOTOR_DOEN1","String").appendField(" Doen Wanneer..").setCheck("String");this.appendStatementInput("EVENT_MOTOR_DO").appendField(new Blockly.FieldImage("http://www.nyplatform.com/image/cache/data/Robot/Motor%20Servo/Gear%20Motor%20x2%20+%20PLASTIC%20TIRES%20x2/LT-8-700x700.jpg",32,
32));this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.event_motor_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(42);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["motor Stop","motor_stop"],["motor Starten","motor_start"],["motor Voorwaarts","motor_forward"],["motor Achteruit","motor_reverse"],["motor Remmen gebruiken","motor_brake"],["motor Remmen loslaten","motor_release"]]),"MOTOR_EVENTS_LIJST1");this.setOutput(!0,"String");this.setTooltip("robot motor events")}};
Blockly.Blocks.declare_motorshield={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(40);this.appendDummyInput("DECLARE_MOTORSHIELD1_DO0").appendField(new Blockly.FieldImage("http://www.nyplatform.com/image/cache/data/Robot/Motor%20Servo/Gear%20Motor%20x2%20+%20PLASTIC%20TIRES%20x2/LT-8-700x700.jpg",32,32)).appendField("Robotmotor L293D");this.appendValueInput("DECLARE_MOTORSHIELD1_NAAM1","String").appendField(" Welke motortje? ").setCheck("String");this.appendDummyInput().appendField(" Soort motorshield: ").appendField(new Blockly.FieldDropdown([["EasyLab4Kids Arduino ",
"DEFAULT"],["Arduino DF Robot - MPR121","DF_Robot"],["Arduino Dual H-Bridge","H_BRIDGE"],["Arduino Freetronics H-bridge","FREETRONICS_HBRIDGE"],["Arduino Micro magician V2 Shield","MICRO_MAGICIAN_V2"],["Arduino Motor PCA9685 via I2C","PCA9685"],["Arduino Motor Shield R3.1","ARDUINO_MOTOR_SHIELD_R3_1"],["Arduino Motor Shield R3.2","ARDUINO_MOTOR_SHIELD_R3_2"],["Arduino Motor Shield R3.3","ARDUINO_MOTOR_SHIELD_R3_3"],["Arduino NKC Electronics kit","NKC_ELECTRONICS_KIT"],["Arduino Pololu DRV8835 Shield",
"POLOLU_DRV8835_SHIELD"],["Arduino Pololu DRV5019 Shield","POLOLU_VNH5019_SHIELD"],["Arduino Rugged Circuits Rugged Motor Driver","RUGGED_CIRCUITS"],["Arduino SeeedStudio H-bridge","SEEED_STUDIO"],["Arduino Sparkfun Ardumoto","SPARKFUN_ARDUMOTO"],["Arduino Sparkfun Dual H-bridge Edison","SPARKFUN_DUAL_HBRIDGE_EDISON_BLOCK"],["Arduino Sparkfun Ludus","SPARKFUN_LUDUS"],["Arduino Uno Adafruit Motor/Stepper/Servo Shield V1","ADAFRUIT_V1"],["Arduino Uno Adafruit Motor/Stepper/Servo Shield V2","ADAFRUIT_V2"]]),
"DECLARE_MOTORSHIELD1_CONTROLLER1");this.setInputsInline(!0);this.setTooltip("default Arduino D8");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0)}};
Blockly.Blocks.cmd_motorshield={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(35);this.appendDummyInput("CMD_MOTORSHIELD1_DO0").appendField(new Blockly.FieldImage("http://www.nyplatform.com/image/cache/data/Robot/Motor%20Servo/Gear%20Motor%20x2%20+%20PLASTIC%20TIRES%20x2/LT-8-700x700.jpg",32,32)).appendField("Robotmotor L293D doen");this.appendValueInput("CMD_MOTORSHIELD1_NAAM1","String").appendField(" Welke motortje? ").setCheck("String");this.appendValueInput("CMD_MOTORSHIELD1_DOEN",
"String").appendField(" Wat moet ik doen? ").setCheck("String");this.appendValueInput("CMD_MOTORSHIELD1_WAARDE","Number").appendField(" Snelheid? [0-255] ").setCheck("Number");this.setTooltip("default Arduino D8");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0)}};
Blockly.Blocks.cmd_motor_lijst={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(49);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["EasyLab4Kids Motor links","L923motorshield_l_voor"],["EasyLab4Kids Motor rechts","L923motorshield_r_voor"]]),"CMD_MOTORSHIELD1_LIJST");this.setOutput(!0,"String");this.setTooltip("robot motor events")}};
Blockly.Blocks.motorshield_opdracht={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(42);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["Motortje moet stoppen","STOP"],["Motortje naar voren 255","VORENTOE_VOLGAS"],["Motortje naar voren 100","_VORENTOE_HALF"],["Motortje naar achteren 255","AGTERTOE_VOLGAS"],["Motortje naar achteren 100","AGTERTOE_HALF"],["Motortje starten","START"],["Motortje remmen halfgas","REM_HALF"]]),"MOTORSHIELD1_OPDRACHT");
this.setOutput(!0,"String");this.setTooltip("motorshield opdrag")}};
Blockly.Blocks.declare_servo1={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(130);this.appendDummyInput("DECLARE_SERVO1_DO0").appendField("Servo").appendField(new Blockly.FieldImage("https://img.banggood.com/thumb/view/oaupload/banggood/images/C1/C3/26e1a05f-e751-4549-b657-ada33629223b.jpg",32,32)).appendField("Soort Servo").appendField(new Blockly.FieldDropdown([["SG90 Servo","DEFAULT"],["HSR-1425CR Deadbang","HSR-1425CR"],['"Adafruit PCA9685 I2C address: 0x40"',
"PCA9685"]]),"DECLARE_SERVO1_SENSOR");this.appendDummyInput().appendField(" Identificatie: ").appendField(new Blockly.FieldDropdown([["Servo1","ServoSG90_1"],["Servo2","ServoSG90_2"],["Servo3","ServoSG90_3"],["Servo4","ServoSG90_4"]]),"DECLARE_ServoSG90_NAAM1");this.appendValueInput("SERVO1_IO_POORT","String").appendField("IO Poort aansluiting").setCheck("String");this.setTooltip("default EasyLab4Kids D10");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=
this.elseifCount_=0}};
Blockly.Blocks.cmd_servo1={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(130);this.appendDummyInput("CMD_SERVO1_DO0").appendField("Servo").appendField(new Blockly.FieldImage("https://img.banggood.com/thumb/view/oaupload/banggood/images/C1/C3/26e1a05f-e751-4549-b657-ada33629223b.jpg",32,32)).appendField(" welke servo: ").appendField(new Blockly.FieldDropdown([["Servo1","ServoSG90_1"],["Servo2","ServoSG90_2"],["Servo3","ServoSG90_3"],["Servo4","ServoSG90_4"]]),"CMD_ServoSG90_NAAM1");
this.appendValueInput("CMD_SERVO1_OPDRACHT_ACTIE","String").appendField("Servo moeten..").setCheck("String");this.appendValueInput("CMD_OPDRACHT_ACTIE_WAARDE","Number").appendField("hoeveel stappen [0-255]").setCheck("Number");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};
Blockly.Blocks.servo1_actie_opdracht={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(230);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["Servo moet stoppen ","servo_stop"],["Servo kijkrichting [0-180]","servo_to"],["Servo naar startrichting ","servo_home"],["Servo testje (sweep) ","servo_sweep"]]),"SERVO1_OPDRACHT");this.setOutput(!0,"String");this.setTooltip("Servo opdrag")}};
Blockly.Blocks.get_servo1_values={helpUrl:"http://arduino.cc/en/Reference/Constants",init:function(){this.setColour(230);this.appendDummyInput().appendField(new Blockly.FieldDropdown([["Servo waarde: Pin aangesloten","servo_pin"],["Servo waarde: type","servo_type"],["Servo waarde: startAt","servo_startAt"],["Servo waarde: offset","servo_offset"],["Servo waarde: invert","servo_invert"],["Servo waarde: center","servo_center"],["Servo waarde: controller","servo_controller"]]),"GET_SERVO1_OPDRACHT_VALUE").appendField(" welke servo: ").appendField(new Blockly.FieldDropdown([["Servo1",
"ServoSG90_1"],["Servo2","ServoSG90_2"],["Servo3","ServoSG90_3"],["Servo4","ServoSG90_4"]]),"CMD_ServoSG90_NAAM1");this.setOutput(!0,"String");this.setTooltip("opdrachten voor servo")}};Blockly.Blocks.socketio={};
Blockly.Blocks.declare_socketio={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(71);this.appendDummyInput().appendField(new Blockly.FieldImage("https://joscor.com/wp-content/uploads/2014/10/SOCKETIOICON.gif",32,32)).appendField(" Gebruik socket.IO: ").appendField(new Blockly.FieldDropdown([["SocketIO1","SocketIO1_1"],["SocketIO12","SocketIO1_2"]]),"DECLARE_SOCKETIO_NAAM1");this.appendDummyInput().appendField(" ");this.setPreviousStatement(!0);this.setNextStatement(!0);
this.setInputsInline(!0);this.elseCount_=this.elseifCount_=0}};Blockly.Blocks.texts={};Blockly.Blocks.texts.HUE=160;
Blockly.Blocks.text={init:function(){this.setHelpUrl(Blockly.Msg.TEXT_TEXT_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Blockly.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1));this.setOutput(!0,"String");this.setTooltip(Blockly.Msg.TEXT_TEXT_TOOLTIP)},newQuote_:function(a){return new Blockly.FieldImage(a==this.RTL?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC",
12,12,'"')}};
Blockly.Blocks.text_join={init:function(){this.setHelpUrl(Blockly.Msg.TEXT_JOIN_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.itemCount_=2;this.updateShape_();this.setOutput(!0,"String");this.setMutator(new Blockly.Mutator(["text_create_join_item"]));this.setTooltip(Blockly.Msg.TEXT_JOIN_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("items",this.itemCount_);return a},domToMutation:function(a){this.itemCount_=parseInt(a.getAttribute("items"),10);
this.updateShape_()},decompose:function(a){var b=Blockly.Block.obtain(a,"text_create_join_container");b.initSvg();for(var c=b.getInput("STACK").connection,d=0;d<this.itemCount_;d++){var e=Blockly.Block.obtain(a,"text_create_join_item");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}return b},compose:function(a){a=a.getInputTargetBlock("STACK");for(var b=[],c=0;a;)b[c]=a.valueConnection_,a=a.nextConnection&&a.nextConnection.targetBlock(),c++;this.itemCount_=c;this.updateShape_();for(c=
0;c<this.itemCount_;c++)b[c]&&this.getInput("ADD"+c).connection.connect(b[c])},saveConnections:function(a){a=a.getInputTargetBlock("STACK");for(var b=0;a;){var c=this.getInput("ADD"+b);a.valueConnection_=c&&c.connection.targetConnection;b++;a=a.nextConnection&&a.nextConnection.targetBlock()}},updateShape_:function(){if(this.getInput("EMPTY"))this.removeInput("EMPTY");else for(var a=0;this.getInput("ADD"+a);)this.removeInput("ADD"+a),a++;if(0==this.itemCount_)this.appendDummyInput("EMPTY").appendField(this.newQuote_(!0)).appendField(this.newQuote_(!1));
else for(a=0;a<this.itemCount_;a++){var b=this.appendValueInput("ADD"+a);0==a&&b.appendField(Blockly.Msg.TEXT_JOIN_TITLE_CREATEWITH)}},newQuote_:Blockly.Blocks.text.newQuote_};Blockly.Blocks.text_create_join_container={init:function(){this.setColour(Blockly.Blocks.texts.HUE);this.appendDummyInput().appendField(Blockly.Msg.TEXT_CREATE_JOIN_TITLE_JOIN);this.appendStatementInput("STACK");this.setTooltip(Blockly.Msg.TEXT_CREATE_JOIN_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.text_create_join_item={init:function(){this.setColour(Blockly.Blocks.texts.HUE);this.appendDummyInput().appendField(Blockly.Msg.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.TEXT_CREATE_JOIN_ITEM_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.text_append={init:function(){this.setHelpUrl(Blockly.Msg.TEXT_APPEND_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.appendValueInput("TEXT").appendField(Blockly.Msg.TEXT_APPEND_TO).appendField(new Blockly.FieldVariable(Blockly.Msg.TEXT_APPEND_VARIABLE),"VAR").appendField(Blockly.Msg.TEXT_APPEND_APPENDTEXT);this.setPreviousStatement(!0);this.setNextStatement(!0);var a=this;this.setTooltip(function(){return Blockly.Msg.TEXT_APPEND_TOOLTIP.replace("%1",a.getFieldValue("VAR"))})},
getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(a,b){Blockly.Names.equals(a,this.getFieldValue("VAR"))&&this.setFieldValue(b,"VAR")}};Blockly.Blocks.text_length={init:function(){this.jsonInit({message0:Blockly.Msg.TEXT_LENGTH_TITLE,args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Number",colour:Blockly.Blocks.texts.HUE,tooltip:Blockly.Msg.TEXT_LENGTH_TOOLTIP,helpUrl:Blockly.Msg.TEXT_LENGTH_HELPURL})}};
Blockly.Blocks.text_isEmpty={init:function(){this.jsonInit({message0:Blockly.Msg.TEXT_ISEMPTY_TITLE,args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Boolean",colour:Blockly.Blocks.texts.HUE,tooltip:Blockly.Msg.TEXT_ISEMPTY_TOOLTIP,helpUrl:Blockly.Msg.TEXT_ISEMPTY_HELPURL})}};
Blockly.Blocks.text_indexOf={init:function(){var a=[[Blockly.Msg.TEXT_INDEXOF_OPERATOR_FIRST,"FIRST"],[Blockly.Msg.TEXT_INDEXOF_OPERATOR_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.TEXT_INDEXOF_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.setOutput(!0,"Number");this.appendValueInput("VALUE").setCheck("String").appendField(Blockly.Msg.TEXT_INDEXOF_INPUT_INTEXT);this.appendValueInput("FIND").setCheck("String").appendField(new Blockly.FieldDropdown(a),"END");Blockly.Msg.TEXT_INDEXOF_TAIL&&this.appendDummyInput().appendField(Blockly.Msg.TEXT_INDEXOF_TAIL);
this.setInputsInline(!0);this.setTooltip(Blockly.Msg.TEXT_INDEXOF_TOOLTIP)}};
Blockly.Blocks.text_charAt={init:function(){this.WHERE_OPTIONS=[[Blockly.Msg.TEXT_CHARAT_FROM_START,"FROM_START"],[Blockly.Msg.TEXT_CHARAT_FROM_END,"FROM_END"],[Blockly.Msg.TEXT_CHARAT_FIRST,"FIRST"],[Blockly.Msg.TEXT_CHARAT_LAST,"LAST"],[Blockly.Msg.TEXT_CHARAT_RANDOM,"RANDOM"]];this.setHelpUrl(Blockly.Msg.TEXT_CHARAT_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.setOutput(!0,"String");this.appendValueInput("VALUE").setCheck("String").appendField(Blockly.Msg.TEXT_CHARAT_INPUT_INTEXT);this.appendDummyInput("AT");
this.setInputsInline(!0);this.updateAt_(!0);this.setTooltip(Blockly.Msg.TEXT_CHARAT_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation"),b=this.getInput("AT").type==Blockly.INPUT_VALUE;a.setAttribute("at",b);return a},domToMutation:function(a){a="false"!=a.getAttribute("at");this.updateAt_(a)},updateAt_:function(a){this.removeInput("AT");this.removeInput("ORDINAL",!0);a?(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):
this.appendDummyInput("AT");Blockly.Msg.TEXT_CHARAT_TAIL&&(this.removeInput("TAIL",!0),this.appendDummyInput("TAIL").appendField(Blockly.Msg.TEXT_CHARAT_TAIL));var b=new Blockly.FieldDropdown(this.WHERE_OPTIONS,function(b){var c="FROM_START"==b||"FROM_END"==b;if(c!=a){var e=this.sourceBlock_;e.updateAt_(c);e.setFieldValue(b,"WHERE");return null}});this.getInput("AT").appendField(b,"WHERE")}};
Blockly.Blocks.text_getSubstring={init:function(){this.WHERE_OPTIONS_1=[[Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_START,"FROM_START"],[Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_END,"FROM_END"],[Blockly.Msg.TEXT_GET_SUBSTRING_START_FIRST,"FIRST"]];this.WHERE_OPTIONS_2=[[Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_START,"FROM_START"],[Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_END,"FROM_END"],[Blockly.Msg.TEXT_GET_SUBSTRING_END_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.TEXT_GET_SUBSTRING_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);
this.appendValueInput("STRING").setCheck("String").appendField(Blockly.Msg.TEXT_GET_SUBSTRING_INPUT_IN_TEXT);this.appendDummyInput("AT1");this.appendDummyInput("AT2");Blockly.Msg.TEXT_GET_SUBSTRING_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.TEXT_GET_SUBSTRING_TAIL);this.setInputsInline(!0);this.setOutput(!0,"String");this.updateAt_(1,!0);this.updateAt_(2,!0);this.setTooltip(Blockly.Msg.TEXT_GET_SUBSTRING_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation"),
b=this.getInput("AT1").type==Blockly.INPUT_VALUE;a.setAttribute("at1",b);b=this.getInput("AT2").type==Blockly.INPUT_VALUE;a.setAttribute("at2",b);return a},domToMutation:function(a){var b="true"==a.getAttribute("at1");a="true"==a.getAttribute("at2");this.updateAt_(1,b);this.updateAt_(2,a)},updateAt_:function(a,b){this.removeInput("AT"+a);this.removeInput("ORDINAL"+a,!0);b?(this.appendValueInput("AT"+a).setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL"+a).appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):
this.appendDummyInput("AT"+a);2==a&&Blockly.Msg.TEXT_GET_SUBSTRING_TAIL&&(this.removeInput("TAIL",!0),this.appendDummyInput("TAIL").appendField(Blockly.Msg.TEXT_GET_SUBSTRING_TAIL));var c=new Blockly.FieldDropdown(this["WHERE_OPTIONS_"+a],function(c){var d="FROM_START"==c||"FROM_END"==c;if(d!=b){var f=this.sourceBlock_;f.updateAt_(a,d);f.setFieldValue(c,"WHERE"+a);return null}});this.getInput("AT"+a).appendField(c,"WHERE"+a);1==a&&this.moveInputBefore("AT1","AT2")}};
Blockly.Blocks.text_changeCase={init:function(){var a=[[Blockly.Msg.TEXT_CHANGECASE_OPERATOR_UPPERCASE,"UPPERCASE"],[Blockly.Msg.TEXT_CHANGECASE_OPERATOR_LOWERCASE,"LOWERCASE"],[Blockly.Msg.TEXT_CHANGECASE_OPERATOR_TITLECASE,"TITLECASE"]];this.setHelpUrl(Blockly.Msg.TEXT_CHANGECASE_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.appendValueInput("TEXT").setCheck("String").appendField(new Blockly.FieldDropdown(a),"CASE");this.setOutput(!0,"String");this.setTooltip(Blockly.Msg.TEXT_CHANGECASE_TOOLTIP)}};
Blockly.Blocks.text_trim={init:function(){var a=[[Blockly.Msg.TEXT_TRIM_OPERATOR_BOTH,"BOTH"],[Blockly.Msg.TEXT_TRIM_OPERATOR_LEFT,"LEFT"],[Blockly.Msg.TEXT_TRIM_OPERATOR_RIGHT,"RIGHT"]];this.setHelpUrl(Blockly.Msg.TEXT_TRIM_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.appendValueInput("TEXT").setCheck("String").appendField(new Blockly.FieldDropdown(a),"MODE");this.setOutput(!0,"String");this.setTooltip(Blockly.Msg.TEXT_TRIM_TOOLTIP)}};
Blockly.Blocks.text_print={init:function(){this.jsonInit({message0:Blockly.Msg.TEXT_PRINT_TITLE,args0:[{type:"input_value",name:"TEXT"}],previousStatement:null,nextStatement:null,colour:Blockly.Blocks.texts.HUE,tooltip:Blockly.Msg.TEXT_PRINT_TOOLTIP,helpUrl:Blockly.Msg.TEXT_PRINT_HELPURL})}};
Blockly.Blocks.text_prompt={init:function(){var a=[[Blockly.Msg.TEXT_PROMPT_TYPE_TEXT,"TEXT"],[Blockly.Msg.TEXT_PROMPT_TYPE_NUMBER,"NUMBER"]],b=this;this.setHelpUrl(Blockly.Msg.TEXT_PROMPT_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);a=new Blockly.FieldDropdown(a,function(a){"NUMBER"==a?b.changeOutput("Number"):b.changeOutput("String")});this.appendDummyInput().appendField(a,"TYPE").appendField(this.newQuote_(!0)).appendField(new Blockly.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1));
this.setOutput(!0,"String");b=this;this.setTooltip(function(){return"TEXT"==b.getFieldValue("TYPE")?Blockly.Msg.TEXT_PROMPT_TOOLTIP_TEXT:Blockly.Msg.TEXT_PROMPT_TOOLTIP_NUMBER})},newQuote_:Blockly.Blocks.text.newQuote_};
Blockly.Blocks.text_prompt_ext={init:function(){var a=[[Blockly.Msg.TEXT_PROMPT_TYPE_TEXT,"TEXT"],[Blockly.Msg.TEXT_PROMPT_TYPE_NUMBER,"NUMBER"]],b=this;this.setHelpUrl(Blockly.Msg.TEXT_PROMPT_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);a=new Blockly.FieldDropdown(a,function(a){"NUMBER"==a?b.changeOutput("Number"):b.changeOutput("String")});this.appendValueInput("TEXT").appendField(a,"TYPE");this.setOutput(!0,"String");b=this;this.setTooltip(function(){return"TEXT"==b.getFieldValue("TYPE")?
Blockly.Msg.TEXT_PROMPT_TOOLTIP_TEXT:Blockly.Msg.TEXT_PROMPT_TOOLTIP_NUMBER})}};Blockly.Blocks.variables={};Blockly.Blocks.variables.HUE=330;
Blockly.Blocks.variables_get={init:function(){this.setHelpUrl(Blockly.Msg.VARIABLES_GET_HELPURL);this.setColour(Blockly.Blocks.variables.HUE);this.appendDummyInput().appendField(new Blockly.FieldVariable(Blockly.Msg.VARIABLES_DEFAULT_NAME),"VAR");this.setOutput(!0);this.setTooltip(Blockly.Msg.VARIABLES_GET_TOOLTIP);this.contextMenuMsg_=Blockly.Msg.VARIABLES_GET_CREATE_SET},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(a,b){Blockly.Names.equals(a,this.getFieldValue("VAR"))&&
this.setFieldValue(b,"VAR")},contextMenuType_:"variables_set",customContextMenu:function(a){var b={enabled:!0},c=this.getFieldValue("VAR");b.text=this.contextMenuMsg_.replace("%1",c);c=goog.dom.createDom("field",null,c);c.setAttribute("name","VAR");c=goog.dom.createDom("block",null,c);c.setAttribute("type",this.contextMenuType_);b.callback=Blockly.ContextMenu.callbackFactory(this,c);a.push(b)}};
Blockly.Blocks.variables_set={init:function(){this.jsonInit({message0:Blockly.Msg.VARIABLES_SET,args0:[{type:"field_variable",name:"VAR",variable:Blockly.Msg.VARIABLES_DEFAULT_NAME},{type:"input_value",name:"VALUE"}],previousStatement:null,nextStatement:null,colour:Blockly.Blocks.variables.HUE,tooltip:Blockly.Msg.VARIABLES_SET_TOOLTIP,helpUrl:Blockly.Msg.VARIABLES_SET_HELPURL});this.contextMenuMsg_=Blockly.Msg.VARIABLES_SET_CREATE_GET},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(a,
b){Blockly.Names.equals(a,this.getFieldValue("VAR"))&&this.setFieldValue(b,"VAR")},contextMenuType_:"variables_get",customContextMenu:Blockly.Blocks.variables_get.customContextMenu};