blockly 8.0.0 → 8.0.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/blockly.min.js +11 -11
  2. package/blockly_compressed.js +1 -1
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks/lists.js +11 -5
  5. package/blocks/logic.js +11 -5
  6. package/blocks/loops.js +2 -2
  7. package/blocks/text.js +11 -5
  8. package/blocks_compressed.js +10 -10
  9. package/blocks_compressed.js.map +1 -1
  10. package/core/serialization/blocks.js +1 -1
  11. package/core/utils/toolbox.js +1 -1
  12. package/msg/ab.js +1 -2
  13. package/msg/ace.js +1 -2
  14. package/msg/af.js +1 -2
  15. package/msg/am.js +1 -2
  16. package/msg/ar.js +1 -2
  17. package/msg/ast.js +1 -2
  18. package/msg/az.js +1 -2
  19. package/msg/ba.js +1 -2
  20. package/msg/bcc.js +1 -2
  21. package/msg/be-tarask.js +1 -2
  22. package/msg/be.js +1 -2
  23. package/msg/bg.js +1 -2
  24. package/msg/bn.js +1 -2
  25. package/msg/br.js +1 -2
  26. package/msg/bs.js +1 -2
  27. package/msg/ca.js +1 -2
  28. package/msg/cdo.js +1 -2
  29. package/msg/cs.js +1 -2
  30. package/msg/da.js +1 -2
  31. package/msg/de.js +1 -2
  32. package/msg/diq.js +1 -2
  33. package/msg/dty.js +1 -2
  34. package/msg/ee.js +1 -2
  35. package/msg/el.js +1 -2
  36. package/msg/en-gb.js +1 -2
  37. package/msg/en.js +1 -2
  38. package/msg/eo.js +1 -2
  39. package/msg/es.js +1 -2
  40. package/msg/et.js +1 -2
  41. package/msg/eu.js +1 -2
  42. package/msg/fa.js +1 -2
  43. package/msg/fi.js +1 -2
  44. package/msg/fo.js +1 -2
  45. package/msg/fr.js +1 -2
  46. package/msg/frr.js +1 -2
  47. package/msg/gl.js +1 -2
  48. package/msg/gn.js +1 -2
  49. package/msg/gor.js +1 -2
  50. package/msg/ha.js +1 -2
  51. package/msg/hak.js +1 -2
  52. package/msg/he.js +1 -2
  53. package/msg/hi.js +1 -2
  54. package/msg/hr.js +1 -2
  55. package/msg/hrx.js +1 -2
  56. package/msg/hu.js +1 -2
  57. package/msg/hy.js +1 -2
  58. package/msg/ia.js +1 -2
  59. package/msg/id.js +1 -2
  60. package/msg/ig.js +1 -2
  61. package/msg/inh.js +1 -2
  62. package/msg/is.js +1 -2
  63. package/msg/it.js +1 -2
  64. package/msg/ja.js +1 -2
  65. package/msg/ka.js +1 -2
  66. package/msg/kab.js +1 -2
  67. package/msg/kbd-cyrl.js +1 -2
  68. package/msg/km.js +1 -2
  69. package/msg/kn.js +1 -2
  70. package/msg/ko.js +1 -2
  71. package/msg/ksh.js +1 -2
  72. package/msg/ku-latn.js +1 -2
  73. package/msg/ky.js +1 -2
  74. package/msg/la.js +1 -2
  75. package/msg/lb.js +1 -2
  76. package/msg/lki.js +1 -2
  77. package/msg/lo.js +1 -2
  78. package/msg/lrc.js +1 -2
  79. package/msg/lt.js +1 -2
  80. package/msg/lv.js +1 -2
  81. package/msg/mg.js +1 -2
  82. package/msg/mk.js +1 -2
  83. package/msg/ml.js +1 -2
  84. package/msg/mnw.js +1 -2
  85. package/msg/ms.js +1 -2
  86. package/msg/my.js +1 -2
  87. package/msg/mzn.js +1 -2
  88. package/msg/nb.js +1 -2
  89. package/msg/ne.js +1 -2
  90. package/msg/nl.js +1 -2
  91. package/msg/oc.js +1 -2
  92. package/msg/olo.js +1 -2
  93. package/msg/pa.js +1 -2
  94. package/msg/pl.js +1 -2
  95. package/msg/pms.js +1 -2
  96. package/msg/ps.js +1 -2
  97. package/msg/pt-br.js +1 -2
  98. package/msg/pt.js +1 -2
  99. package/msg/ro.js +1 -2
  100. package/msg/ru.js +1 -2
  101. package/msg/sc.js +1 -2
  102. package/msg/sco.js +1 -2
  103. package/msg/sd.js +1 -2
  104. package/msg/shn.js +1 -2
  105. package/msg/si.js +1 -2
  106. package/msg/sk.js +1 -2
  107. package/msg/skr-arab.js +1 -2
  108. package/msg/sl.js +1 -2
  109. package/msg/smn.js +1 -2
  110. package/msg/sq.js +1 -2
  111. package/msg/sr-latn.js +1 -2
  112. package/msg/sr.js +1 -2
  113. package/msg/sv.js +1 -2
  114. package/msg/sw.js +1 -2
  115. package/msg/ta.js +1 -2
  116. package/msg/tcy.js +1 -2
  117. package/msg/te.js +1 -2
  118. package/msg/th.js +1 -2
  119. package/msg/ti.js +1 -2
  120. package/msg/tl.js +1 -2
  121. package/msg/tlh.js +1 -2
  122. package/msg/tr.js +1 -2
  123. package/msg/ug-arab.js +1 -2
  124. package/msg/uk.js +1 -2
  125. package/msg/ur.js +1 -2
  126. package/msg/uz.js +1 -2
  127. package/msg/vi.js +1 -2
  128. package/msg/xmf.js +1 -2
  129. package/msg/yo.js +1 -2
  130. package/msg/yue.js +1 -2
  131. package/msg/zgh.js +1 -2
  132. package/msg/zh-hans.js +1 -2
  133. package/msg/zh-hant.js +1 -2
  134. package/package.json +1 -1
package/blocks/lists.js CHANGED
@@ -198,10 +198,13 @@ blocks['lists_create_with'] = {
198
198
  let itemBlock = containerBlock.getInputTargetBlock('STACK');
199
199
  // Count number of inputs.
200
200
  const connections = [];
201
- while (itemBlock && !itemBlock.isInsertionMarker()) {
201
+ while (itemBlock) {
202
+ if (itemBlock.isInsertionMarker()) {
203
+ itemBlock = itemBlock.getNextBlock();
204
+ continue;
205
+ }
202
206
  connections.push(itemBlock.valueConnection_);
203
- itemBlock =
204
- itemBlock.nextConnection && itemBlock.nextConnection.targetBlock();
207
+ itemBlock = itemBlock.getNextBlock();
205
208
  }
206
209
  // Disconnect any children that don't belong.
207
210
  for (let i = 0; i < this.itemCount_; i++) {
@@ -226,10 +229,13 @@ blocks['lists_create_with'] = {
226
229
  let itemBlock = containerBlock.getInputTargetBlock('STACK');
227
230
  let i = 0;
228
231
  while (itemBlock) {
232
+ if (itemBlock.isInsertionMarker()) {
233
+ itemBlock = itemBlock.getNextBlock();
234
+ continue;
235
+ }
229
236
  const input = this.getInput('ADD' + i);
230
237
  itemBlock.valueConnection_ = input && input.connection.targetConnection;
231
- itemBlock =
232
- itemBlock.nextConnection && itemBlock.nextConnection.targetBlock();
238
+ itemBlock = itemBlock.getNextBlock();
233
239
  i++;
234
240
  }
235
241
  },
package/blocks/logic.js CHANGED
@@ -394,7 +394,11 @@ const CONTROLS_IF_MUTATOR_MIXIN = {
394
394
  const valueConnections = [null];
395
395
  const statementConnections = [null];
396
396
  let elseStatementConnection = null;
397
- while (clauseBlock && !clauseBlock.isInsertionMarker()) {
397
+ while (clauseBlock) {
398
+ if (clauseBlock.isInsertionMarker()) {
399
+ clauseBlock = clauseBlock.getNextBlock();
400
+ continue;
401
+ }
398
402
  switch (clauseBlock.type) {
399
403
  case 'controls_if_elseif':
400
404
  this.elseifCount_++;
@@ -408,8 +412,7 @@ const CONTROLS_IF_MUTATOR_MIXIN = {
408
412
  default:
409
413
  throw TypeError('Unknown block type: ' + clauseBlock.type);
410
414
  }
411
- clauseBlock = clauseBlock.nextConnection &&
412
- clauseBlock.nextConnection.targetBlock();
415
+ clauseBlock = clauseBlock.getNextBlock();
413
416
  }
414
417
  this.updateShape_();
415
418
  // Reconnect any child blocks.
@@ -425,6 +428,10 @@ const CONTROLS_IF_MUTATOR_MIXIN = {
425
428
  let clauseBlock = containerBlock.nextConnection.targetBlock();
426
429
  let i = 1;
427
430
  while (clauseBlock) {
431
+ if (clauseBlock.isInsertionMarker()) {
432
+ clauseBlock = clauseBlock.getNextBlock();
433
+ continue;
434
+ }
428
435
  switch (clauseBlock.type) {
429
436
  case 'controls_if_elseif': {
430
437
  const inputIf = this.getInput('IF' + i);
@@ -445,8 +452,7 @@ const CONTROLS_IF_MUTATOR_MIXIN = {
445
452
  default:
446
453
  throw TypeError('Unknown block type: ' + clauseBlock.type);
447
454
  }
448
- clauseBlock = clauseBlock.nextConnection &&
449
- clauseBlock.nextConnection.targetBlock();
455
+ clauseBlock = clauseBlock.getNextBlock();
450
456
  }
451
457
  },
452
458
  /**
package/blocks/loops.js CHANGED
@@ -293,8 +293,8 @@ Extensions.register(
293
293
  * To add a new loop type add this to your code:
294
294
  *
295
295
  * // If using the Blockly npm package and es6 import syntax:
296
- * import {loopTypes} from 'blockly/blocks';
297
- * loopTypes.add('custom_loop');
296
+ * import {loops} from 'blockly/blocks';
297
+ * loops.loopTypes.add('custom_loop');
298
298
  *
299
299
  * // Else if using Closure Compiler and goog.modules:
300
300
  * const {loopTypes} = goog.require('Blockly.libraryBlocks.loops');
package/blocks/text.js CHANGED
@@ -781,10 +781,13 @@ const TEXT_JOIN_MUTATOR_MIXIN = {
781
781
  let itemBlock = containerBlock.getInputTargetBlock('STACK');
782
782
  // Count number of inputs.
783
783
  const connections = [];
784
- while (itemBlock && !itemBlock.isInsertionMarker()) {
784
+ while (itemBlock) {
785
+ if (itemBlock.isInsertionMarker()) {
786
+ itemBlock = itemBlock.getNextBlock();
787
+ continue;
788
+ }
785
789
  connections.push(itemBlock.valueConnection_);
786
- itemBlock =
787
- itemBlock.nextConnection && itemBlock.nextConnection.targetBlock();
790
+ itemBlock = itemBlock.getNextBlock();
788
791
  }
789
792
  // Disconnect any children that don't belong.
790
793
  for (let i = 0; i < this.itemCount_; i++) {
@@ -809,10 +812,13 @@ const TEXT_JOIN_MUTATOR_MIXIN = {
809
812
  let itemBlock = containerBlock.getInputTargetBlock('STACK');
810
813
  let i = 0;
811
814
  while (itemBlock) {
815
+ if (itemBlock.isInsertionMarker()) {
816
+ itemBlock = itemBlock.getNextBlock();
817
+ continue;
818
+ }
812
819
  const input = this.getInput('ADD' + i);
813
820
  itemBlock.valueConnection_ = input && input.connection.targetConnection;
814
- itemBlock =
815
- itemBlock.nextConnection && itemBlock.nextConnection.targetBlock();
821
+ itemBlock = itemBlock.getNextBlock();
816
822
  i++;
817
823
  }
818
824
  },
@@ -53,8 +53,8 @@ module$exports$Blockly$libraryBlocks$texts.blocks.text_reverse={init:function(){
53
53
  var module$contents$Blockly$libraryBlocks$texts_QUOTE_IMAGE_MIXIN={QUOTE_IMAGE_LEFT_DATAURI:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC",QUOTE_IMAGE_RIGHT_DATAURI:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==",
54
54
  QUOTE_IMAGE_WIDTH:12,QUOTE_IMAGE_HEIGHT:12,quoteField_:function(a){for(var b=0,c;c=this.inputList[b];b++)for(var d=0,e;e=c.fieldRow[d];d++)if(a===e.name){c.insertFieldAt(d,this.newQuote_(!0));c.insertFieldAt(d+2,this.newQuote_(!1));return}console.warn('field named "'+a+'" not found in '+this.toDevString())},newQuote_:function(a){a=this.RTL?!a:a;return new $.module$exports$Blockly$FieldImage.FieldImage(a?this.QUOTE_IMAGE_LEFT_DATAURI:this.QUOTE_IMAGE_RIGHT_DATAURI,this.QUOTE_IMAGE_WIDTH,this.QUOTE_IMAGE_HEIGHT,
55
55
  a?"\u201c":"\u201d")}},module$contents$Blockly$libraryBlocks$texts_TEXT_QUOTES_EXTENSION=function(){this.mixin(module$contents$Blockly$libraryBlocks$texts_QUOTE_IMAGE_MIXIN);this.quoteField_("TEXT")},module$contents$Blockly$libraryBlocks$texts_TEXT_JOIN_MUTATOR_MIXIN={mutationToDom:function(){var a=(0,$.module$exports$Blockly$utils$xml.createElement)("mutation");a.setAttribute("items",this.itemCount_);return a},domToMutation:function(a){this.itemCount_=parseInt(a.getAttribute("items"),10);this.updateShape_()},
56
- saveExtraState:function(){return{itemCount:this.itemCount_}},loadExtraState:function(a){this.itemCount_=a.itemCount;this.updateShape_()},decompose:function(a){var b=a.newBlock("text_create_join_container");b.initSvg();for(var c=b.getInput("STACK").connection,d=0;d<this.itemCount_;d++){var e=a.newBlock("text_create_join_item");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}return b},compose:function(a){var b=a.getInputTargetBlock("STACK");for(a=[];b&&!b.isInsertionMarker();)a.push(b.valueConnection_),
57
- b=b.nextConnection&&b.nextConnection.targetBlock();for(b=0;b<this.itemCount_;b++){var c=this.getInput("ADD"+b).connection.targetConnection;c&&-1===a.indexOf(c)&&c.disconnect()}this.itemCount_=a.length;this.updateShape_();for(b=0;b<this.itemCount_;b++)$.module$exports$Blockly$Mutator.Mutator.reconnect(a[b],this,"ADD"+b)},saveConnections:function(a){a=a.getInputTargetBlock("STACK");for(var b=0;a;){var c=this.getInput("ADD"+b);a.valueConnection_=c&&c.connection.targetConnection;a=a.nextConnection&&a.nextConnection.targetBlock();
56
+ saveExtraState:function(){return{itemCount:this.itemCount_}},loadExtraState:function(a){this.itemCount_=a.itemCount;this.updateShape_()},decompose:function(a){var b=a.newBlock("text_create_join_container");b.initSvg();for(var c=b.getInput("STACK").connection,d=0;d<this.itemCount_;d++){var e=a.newBlock("text_create_join_item");e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}return b},compose:function(a){var b=a.getInputTargetBlock("STACK");for(a=[];b;)b.isInsertionMarker()||a.push(b.valueConnection_),
57
+ b=b.getNextBlock();for(b=0;b<this.itemCount_;b++){var c=this.getInput("ADD"+b).connection.targetConnection;c&&-1===a.indexOf(c)&&c.disconnect()}this.itemCount_=a.length;this.updateShape_();for(b=0;b<this.itemCount_;b++)$.module$exports$Blockly$Mutator.Mutator.reconnect(a[b],this,"ADD"+b)},saveConnections:function(a){a=a.getInputTargetBlock("STACK");for(var b=0;a;)if(a.isInsertionMarker())a=a.getNextBlock();else{var c=this.getInput("ADD"+b);a.valueConnection_=c&&c.connection.targetConnection;a=a.getNextBlock();
58
58
  b++}},updateShape_:function(){this.itemCount_&&this.getInput("EMPTY")?this.removeInput("EMPTY"):this.itemCount_||this.getInput("EMPTY")||this.appendDummyInput("EMPTY").appendField(this.newQuote_(!0)).appendField(this.newQuote_(!1));for(var a=0;a<this.itemCount_;a++)if(!this.getInput("ADD"+a)){var b=this.appendValueInput("ADD"+a).setAlign($.module$exports$Blockly$Input.Align.RIGHT);0===a&&b.appendField($.module$exports$Blockly$Msg.Msg.TEXT_JOIN_TITLE_CREATEWITH)}for(a=this.itemCount_;this.getInput("ADD"+
59
59
  a);a++)this.removeInput("ADD"+a)}},module$contents$Blockly$libraryBlocks$texts_TEXT_JOIN_EXTENSION=function(){this.mixin(module$contents$Blockly$libraryBlocks$texts_QUOTE_IMAGE_MIXIN);this.itemCount_=2;this.updateShape_();this.setMutator(new $.module$exports$Blockly$Mutator.Mutator(["text_create_join_item"]))};(0,$.module$exports$Blockly$Extensions.register)("text_append_tooltip",(0,$.module$exports$Blockly$Extensions.buildTooltipWithFieldText)("%{BKY_TEXT_APPEND_TOOLTIP}","VAR"));
60
60
  var module$contents$Blockly$libraryBlocks$texts_TEXT_INDEXOF_TOOLTIP_EXTENSION=function(){var a=this;this.setTooltip(function(){return $.module$exports$Blockly$Msg.Msg.TEXT_INDEXOF_TOOLTIP.replace("%1",a.workspace.options.oneBasedIndex?"0":"-1")})},module$contents$Blockly$libraryBlocks$texts_TEXT_CHARAT_MUTATOR_MIXIN={mutationToDom:function(){var a=(0,$.module$exports$Blockly$utils$xml.createElement)("mutation");a.setAttribute("at",!!this.isAt_);return a},domToMutation:function(a){a="false"!==a.getAttribute("at");
@@ -148,11 +148,11 @@ var module$contents$Blockly$libraryBlocks$logic_TOOLTIPS_BY_OP={EQ:"%{BKY_LOGIC_
148
148
  (0,$.module$exports$Blockly$Extensions.register)("logic_op_tooltip",(0,$.module$exports$Blockly$Extensions.buildTooltipForDropdown)("OP",module$contents$Blockly$libraryBlocks$logic_TOOLTIPS_BY_OP));
149
149
  var module$contents$Blockly$libraryBlocks$logic_CONTROLS_IF_MUTATOR_MIXIN={elseifCount_:0,elseCount_:0,mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var a=(0,$.module$exports$Blockly$utils$xml.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)||
150
150
  0;this.rebuildShape_()},saveExtraState:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var a=Object.create(null);this.elseifCount_&&(a.elseIfCount=this.elseifCount_);this.elseCount_&&(a.hasElse=!0);return a},loadExtraState:function(a){this.elseifCount_=a.elseIfCount||0;this.elseCount_=a.hasElse?1:0;this.updateShape_()},decompose:function(a){var b=a.newBlock("controls_if_if");b.initSvg();for(var c=b.nextConnection,d=1;d<=this.elseifCount_;d++){var e=a.newBlock("controls_if_elseif");
151
- e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}this.elseCount_&&(a=a.newBlock("controls_if_else"),a.initSvg(),c.connect(a.previousConnection));return b},compose:function(a){a=a.nextConnection.targetBlock();this.elseCount_=this.elseifCount_=0;for(var b=[null],c=[null],d=null;a&&!a.isInsertionMarker();){switch(a.type){case "controls_if_elseif":this.elseifCount_++;b.push(a.valueConnection_);c.push(a.statementConnection_);break;case "controls_if_else":this.elseCount_++;d=a.statementConnection_;
152
- break;default:throw TypeError("Unknown block type: "+a.type);}a=a.nextConnection&&a.nextConnection.targetBlock()}this.updateShape_();this.reconnectChildBlocks_(b,c,d)},saveConnections:function(a){a=a.nextConnection.targetBlock();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":c=this.getInput("ELSE");
153
- a.statementConnection_=c&&c.connection.targetConnection;break;default:throw TypeError("Unknown block type: "+a.type);}a=a.nextConnection&&a.nextConnection.targetBlock()}},rebuildShape_:function(){var a=[null],b=[null],c=null;this.getInput("ELSE")&&(c=this.getInput("ELSE").connection.targetConnection);for(var d=1;this.getInput("IF"+d);d++){var e=this.getInput("IF"+d),f=this.getInput("DO"+d);a.push(e.connection.targetConnection);b.push(f.connection.targetConnection)}this.updateShape_();this.reconnectChildBlocks_(a,
154
- b,c)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var a=1;this.getInput("IF"+a);a++)this.removeInput("IF"+a),this.removeInput("DO"+a);for(a=1;a<=this.elseifCount_;a++)this.appendValueInput("IF"+a).setCheck("Boolean").appendField($.module$exports$Blockly$Msg.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+a).appendField($.module$exports$Blockly$Msg.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField($.module$exports$Blockly$Msg.Msg.CONTROLS_IF_MSG_ELSE)},
155
- reconnectChildBlocks_:function(a,b,c){for(var d=1;d<=this.elseifCount_;d++)$.module$exports$Blockly$Mutator.Mutator.reconnect(a[d],this,"IF"+d),$.module$exports$Blockly$Mutator.Mutator.reconnect(b[d],this,"DO"+d);$.module$exports$Blockly$Mutator.Mutator.reconnect(c,this,"ELSE")}};(0,$.module$exports$Blockly$Extensions.registerMutator)("controls_if_mutator",module$contents$Blockly$libraryBlocks$logic_CONTROLS_IF_MUTATOR_MIXIN,null,["controls_if_elseif","controls_if_else"]);
151
+ e.initSvg();c.connect(e.previousConnection);c=e.nextConnection}this.elseCount_&&(a=a.newBlock("controls_if_else"),a.initSvg(),c.connect(a.previousConnection));return b},compose:function(a){a=a.nextConnection.targetBlock();this.elseCount_=this.elseifCount_=0;for(var b=[null],c=[null],d=null;a;){if(!a.isInsertionMarker())switch(a.type){case "controls_if_elseif":this.elseifCount_++;b.push(a.valueConnection_);c.push(a.statementConnection_);break;case "controls_if_else":this.elseCount_++;d=a.statementConnection_;
152
+ break;default:throw TypeError("Unknown block type: "+a.type);}a=a.getNextBlock()}this.updateShape_();this.reconnectChildBlocks_(b,c,d)},saveConnections:function(a){a=a.nextConnection.targetBlock();for(var b=1;a;){if(!a.isInsertionMarker())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":c=this.getInput("ELSE");a.statementConnection_=
153
+ c&&c.connection.targetConnection;break;default:throw TypeError("Unknown block type: "+a.type);}a=a.getNextBlock()}},rebuildShape_:function(){var a=[null],b=[null],c=null;this.getInput("ELSE")&&(c=this.getInput("ELSE").connection.targetConnection);for(var d=1;this.getInput("IF"+d);d++){var e=this.getInput("IF"+d),f=this.getInput("DO"+d);a.push(e.connection.targetConnection);b.push(f.connection.targetConnection)}this.updateShape_();this.reconnectChildBlocks_(a,b,c)},updateShape_:function(){this.getInput("ELSE")&&
154
+ this.removeInput("ELSE");for(var a=1;this.getInput("IF"+a);a++)this.removeInput("IF"+a),this.removeInput("DO"+a);for(a=1;a<=this.elseifCount_;a++)this.appendValueInput("IF"+a).setCheck("Boolean").appendField($.module$exports$Blockly$Msg.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+a).appendField($.module$exports$Blockly$Msg.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField($.module$exports$Blockly$Msg.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(a,
155
+ b,c){for(var d=1;d<=this.elseifCount_;d++)$.module$exports$Blockly$Mutator.Mutator.reconnect(a[d],this,"IF"+d),$.module$exports$Blockly$Mutator.Mutator.reconnect(b[d],this,"DO"+d);$.module$exports$Blockly$Mutator.Mutator.reconnect(c,this,"ELSE")}};(0,$.module$exports$Blockly$Extensions.registerMutator)("controls_if_mutator",module$contents$Blockly$libraryBlocks$logic_CONTROLS_IF_MUTATOR_MIXIN,null,["controls_if_elseif","controls_if_else"]);
156
156
  var module$contents$Blockly$libraryBlocks$logic_CONTROLS_IF_TOOLTIP_EXTENSION=function(){this.setTooltip(function(){if(this.elseifCount_||this.elseCount_){if(!this.elseifCount_&&this.elseCount_)return $.module$exports$Blockly$Msg.Msg.CONTROLS_IF_TOOLTIP_2;if(this.elseifCount_&&!this.elseCount_)return $.module$exports$Blockly$Msg.Msg.CONTROLS_IF_TOOLTIP_3;if(this.elseifCount_&&this.elseCount_)return $.module$exports$Blockly$Msg.Msg.CONTROLS_IF_TOOLTIP_4}else return $.module$exports$Blockly$Msg.Msg.CONTROLS_IF_TOOLTIP_1;
157
157
  return""}.bind(this))};(0,$.module$exports$Blockly$Extensions.register)("controls_if_tooltip",module$contents$Blockly$libraryBlocks$logic_CONTROLS_IF_TOOLTIP_EXTENSION);
158
158
  var module$contents$Blockly$libraryBlocks$logic_LOGIC_COMPARE_ONCHANGE_MIXIN={onchange:function(a){this.prevBlocks_||(this.prevBlocks_=[null,null]);var b=this.getInputTargetBlock("A"),c=this.getInputTargetBlock("B");b&&c&&!this.workspace.connectionChecker.doTypeChecks(b.outputConnection,c.outputConnection)&&((0,$.module$exports$Blockly$Events.setGroup)(a.group),a=this.prevBlocks_[0],a!==b&&(b.unplug(),!a||a.isDisposed()||a.isShadow()||this.getInput("A").connection.connect(a.outputConnection)),b=this.prevBlocks_[1],
@@ -165,9 +165,9 @@ helpUrl:"%{BKY_LISTS_REPEAT_HELPURL}"},{type:"lists_reverse",message0:"%{BKY_LIS
165
165
  {type:"lists_length",message0:"%{BKY_LISTS_LENGTH_TITLE}",args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Number",style:"list_blocks",tooltip:"%{BKY_LISTS_LENGTH_TOOLTIP}",helpUrl:"%{BKY_LISTS_LENGTH_HELPURL}"}]);
166
166
  module$exports$Blockly$libraryBlocks$lists.blocks.lists_create_with={init:function(){this.setHelpUrl($.module$exports$Blockly$Msg.Msg.LISTS_CREATE_WITH_HELPURL);this.setStyle("list_blocks");this.itemCount_=3;this.updateShape_();this.setOutput(!0,"Array");this.setMutator(new $.module$exports$Blockly$Mutator.Mutator(["lists_create_with_item"]));this.setTooltip($.module$exports$Blockly$Msg.Msg.LISTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var a=(0,$.module$exports$Blockly$utils$xml.createElement)("mutation");
167
167
  a.setAttribute("items",this.itemCount_);return a},domToMutation:function(a){this.itemCount_=parseInt(a.getAttribute("items"),10);this.updateShape_()},saveExtraState:function(){return{itemCount:this.itemCount_}},loadExtraState:function(a){this.itemCount_=a.itemCount;this.updateShape_()},decompose:function(a){var b=a.newBlock("lists_create_with_container");b.initSvg();for(var c=b.getInput("STACK").connection,d=0;d<this.itemCount_;d++){var e=a.newBlock("lists_create_with_item");e.initSvg();c.connect(e.previousConnection);
168
- c=e.nextConnection}return b},compose:function(a){var b=a.getInputTargetBlock("STACK");for(a=[];b&&!b.isInsertionMarker();)a.push(b.valueConnection_),b=b.nextConnection&&b.nextConnection.targetBlock();for(b=0;b<this.itemCount_;b++){var c=this.getInput("ADD"+b).connection.targetConnection;c&&-1===a.indexOf(c)&&c.disconnect()}this.itemCount_=a.length;this.updateShape_();for(b=0;b<this.itemCount_;b++)$.module$exports$Blockly$Mutator.Mutator.reconnect(a[b],this,"ADD"+b)},saveConnections:function(a){a=
169
- a.getInputTargetBlock("STACK");for(var b=0;a;){var c=this.getInput("ADD"+b);a.valueConnection_=c&&c.connection.targetConnection;a=a.nextConnection&&a.nextConnection.targetBlock();b++}},updateShape_:function(){this.itemCount_&&this.getInput("EMPTY")?this.removeInput("EMPTY"):this.itemCount_||this.getInput("EMPTY")||this.appendDummyInput("EMPTY").appendField($.module$exports$Blockly$Msg.Msg.LISTS_CREATE_EMPTY_TITLE);for(var a=0;a<this.itemCount_;a++)if(!this.getInput("ADD"+a)){var b=this.appendValueInput("ADD"+
170
- a).setAlign($.module$exports$Blockly$Input.Align.RIGHT);0===a&&b.appendField($.module$exports$Blockly$Msg.Msg.LISTS_CREATE_WITH_INPUT_WITH)}for(a=this.itemCount_;this.getInput("ADD"+a);a++)this.removeInput("ADD"+a)}};
168
+ c=e.nextConnection}return b},compose:function(a){var b=a.getInputTargetBlock("STACK");for(a=[];b;)b.isInsertionMarker()||a.push(b.valueConnection_),b=b.getNextBlock();for(b=0;b<this.itemCount_;b++){var c=this.getInput("ADD"+b).connection.targetConnection;c&&-1===a.indexOf(c)&&c.disconnect()}this.itemCount_=a.length;this.updateShape_();for(b=0;b<this.itemCount_;b++)$.module$exports$Blockly$Mutator.Mutator.reconnect(a[b],this,"ADD"+b)},saveConnections:function(a){a=a.getInputTargetBlock("STACK");for(var b=
169
+ 0;a;)if(a.isInsertionMarker())a=a.getNextBlock();else{var c=this.getInput("ADD"+b);a.valueConnection_=c&&c.connection.targetConnection;a=a.getNextBlock();b++}},updateShape_:function(){this.itemCount_&&this.getInput("EMPTY")?this.removeInput("EMPTY"):this.itemCount_||this.getInput("EMPTY")||this.appendDummyInput("EMPTY").appendField($.module$exports$Blockly$Msg.Msg.LISTS_CREATE_EMPTY_TITLE);for(var a=0;a<this.itemCount_;a++)if(!this.getInput("ADD"+a)){var b=this.appendValueInput("ADD"+a).setAlign($.module$exports$Blockly$Input.Align.RIGHT);
170
+ 0===a&&b.appendField($.module$exports$Blockly$Msg.Msg.LISTS_CREATE_WITH_INPUT_WITH)}for(a=this.itemCount_;this.getInput("ADD"+a);a++)this.removeInput("ADD"+a)}};
171
171
  module$exports$Blockly$libraryBlocks$lists.blocks.lists_create_with_container={init:function(){this.setStyle("list_blocks");this.appendDummyInput().appendField($.module$exports$Blockly$Msg.Msg.LISTS_CREATE_WITH_CONTAINER_TITLE_ADD);this.appendStatementInput("STACK");this.setTooltip($.module$exports$Blockly$Msg.Msg.LISTS_CREATE_WITH_CONTAINER_TOOLTIP);this.contextMenu=!1}};
172
172
  module$exports$Blockly$libraryBlocks$lists.blocks.lists_create_with_item={init:function(){this.setStyle("list_blocks");this.appendDummyInput().appendField($.module$exports$Blockly$Msg.Msg.LISTS_CREATE_WITH_ITEM_TITLE);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip($.module$exports$Blockly$Msg.Msg.LISTS_CREATE_WITH_ITEM_TOOLTIP);this.contextMenu=!1}};
173
173
  module$exports$Blockly$libraryBlocks$lists.blocks.lists_indexOf={init:function(){var a=[[$.module$exports$Blockly$Msg.Msg.LISTS_INDEX_OF_FIRST,"FIRST"],[$.module$exports$Blockly$Msg.Msg.LISTS_INDEX_OF_LAST,"LAST"]];this.setHelpUrl($.module$exports$Blockly$Msg.Msg.LISTS_INDEX_OF_HELPURL);this.setStyle("list_blocks");this.setOutput(!0,"Number");this.appendValueInput("VALUE").setCheck("Array").appendField($.module$exports$Blockly$Msg.Msg.LISTS_INDEX_OF_INPUT_IN_LIST);this.appendValueInput("FIND").appendField(new $.module$exports$Blockly$FieldDropdown.FieldDropdown(a),