blockly 9.3.3 → 10.0.0-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 (160) hide show
  1. package/README.md +9 -7
  2. package/blockly.min.js +1314 -1415
  3. package/blockly_compressed.js +1067 -1110
  4. package/blockly_compressed.js.map +1 -1
  5. package/blocks_compressed.js +120 -136
  6. package/blocks_compressed.js.map +1 -1
  7. package/core/block.d.ts +59 -32
  8. package/core/block_dragger.d.ts +2 -2
  9. package/core/block_svg.d.ts +38 -67
  10. package/core/blockly.d.ts +18 -112
  11. package/core/browser_events.d.ts +1 -2
  12. package/core/bubble_dragger.d.ts +1 -2
  13. package/core/{bubble.d.ts → bubble_old.d.ts} +3 -7
  14. package/core/bubbles/bubble.d.ts +174 -0
  15. package/core/bubbles/mini_workspace_bubble.d.ts +80 -0
  16. package/core/bubbles/text_bubble.d.ts +35 -0
  17. package/core/bubbles/textinput_bubble.d.ts +89 -0
  18. package/core/bump_objects.d.ts +6 -4
  19. package/core/connection.d.ts +19 -9
  20. package/core/connection_db.d.ts +4 -4
  21. package/core/contextmenu.d.ts +1 -2
  22. package/core/events/events.d.ts +1 -4
  23. package/core/events/events_abstract.d.ts +0 -6
  24. package/core/events/events_block_base.d.ts +0 -6
  25. package/core/events/events_block_change.d.ts +0 -6
  26. package/core/events/events_block_create.d.ts +0 -6
  27. package/core/events/events_block_delete.d.ts +0 -6
  28. package/core/events/events_block_drag.d.ts +0 -6
  29. package/core/events/events_block_move.d.ts +21 -7
  30. package/core/events/events_bubble_open.d.ts +0 -6
  31. package/core/events/events_click.d.ts +0 -6
  32. package/core/events/events_comment_base.d.ts +0 -6
  33. package/core/events/events_comment_change.d.ts +0 -6
  34. package/core/events/events_comment_create.d.ts +0 -6
  35. package/core/events/events_comment_move.d.ts +0 -6
  36. package/core/events/events_marker_move.d.ts +0 -6
  37. package/core/events/events_selected.d.ts +0 -6
  38. package/core/events/events_theme_change.d.ts +0 -6
  39. package/core/events/events_toolbox_item_select.d.ts +0 -6
  40. package/core/events/events_trashcan_open.d.ts +0 -6
  41. package/core/events/events_var_base.d.ts +0 -6
  42. package/core/events/events_var_create.d.ts +0 -6
  43. package/core/events/events_var_delete.d.ts +0 -6
  44. package/core/events/events_var_rename.d.ts +0 -6
  45. package/core/events/events_viewport.d.ts +0 -6
  46. package/core/events/utils.d.ts +1 -1
  47. package/core/events/workspace_events.d.ts +1 -16
  48. package/core/field.d.ts +31 -5
  49. package/core/field_checkbox.d.ts +1 -1
  50. package/core/field_colour.d.ts +0 -2
  51. package/core/field_dropdown.d.ts +11 -13
  52. package/core/field_image.d.ts +5 -5
  53. package/core/field_input.d.ts +9 -2
  54. package/core/field_label.d.ts +3 -1
  55. package/core/field_number.d.ts +4 -4
  56. package/core/field_variable.d.ts +5 -5
  57. package/core/flyout_base.d.ts +23 -25
  58. package/core/flyout_button.d.ts +9 -9
  59. package/core/flyout_horizontal.d.ts +1 -1
  60. package/core/flyout_vertical.d.ts +1 -1
  61. package/core/generator.d.ts +15 -2
  62. package/core/gesture.d.ts +58 -41
  63. package/core/icons/comment_icon.d.ts +108 -0
  64. package/core/icons/exceptions.d.ts +14 -0
  65. package/core/icons/icon.d.ts +38 -0
  66. package/core/icons/icon_types.d.ts +22 -0
  67. package/core/icons/mutator_icon.d.ts +90 -0
  68. package/core/icons/registry.d.ts +23 -0
  69. package/core/icons/warning_icon.d.ts +67 -0
  70. package/core/icons.d.ts +12 -0
  71. package/core/inputs/dummy_input.d.ts +20 -0
  72. package/core/{input.d.ts → inputs/input.d.ts} +20 -13
  73. package/core/{input_types.d.ts → inputs/input_types.d.ts} +2 -1
  74. package/core/inputs/statement_input.d.ts +22 -0
  75. package/core/inputs/value_input.d.ts +20 -0
  76. package/core/interfaces/i_block_dragger.d.ts +1 -1
  77. package/core/interfaces/i_bounded_element.d.ts +2 -1
  78. package/core/interfaces/i_bubble.d.ts +2 -14
  79. package/core/interfaces/i_has_bubble.d.ts +14 -0
  80. package/core/interfaces/i_icon.d.ts +75 -0
  81. package/core/interfaces/i_serializable.d.ts +24 -0
  82. package/core/keyboard_nav/ast_node.d.ts +15 -15
  83. package/core/keyboard_nav/basic_cursor.d.ts +2 -2
  84. package/core/keyboard_nav/marker.d.ts +2 -2
  85. package/core/main.d.ts +0 -10
  86. package/core/marker_manager.d.ts +0 -1
  87. package/core/names.d.ts +4 -4
  88. package/core/options.d.ts +3 -3
  89. package/core/procedures.d.ts +1 -4
  90. package/core/registry.d.ts +5 -0
  91. package/core/render_management.d.ts +9 -1
  92. package/core/rendered_connection.d.ts +7 -7
  93. package/core/renderers/common/block_rendering.d.ts +0 -10
  94. package/core/renderers/common/constants.d.ts +5 -7
  95. package/core/renderers/common/drawer.d.ts +7 -2
  96. package/core/renderers/common/info.d.ts +1 -4
  97. package/core/renderers/common/marker_svg.d.ts +4 -4
  98. package/core/renderers/common/renderer.d.ts +0 -9
  99. package/core/renderers/geras/highlighter.d.ts +1 -1
  100. package/core/renderers/geras/info.d.ts +1 -1
  101. package/core/renderers/geras/measurables/inline_input.d.ts +1 -1
  102. package/core/renderers/geras/measurables/statement_input.d.ts +1 -1
  103. package/core/renderers/geras/renderer.d.ts +1 -1
  104. package/core/renderers/measurables/external_value_input.d.ts +1 -1
  105. package/core/renderers/measurables/field.d.ts +1 -1
  106. package/core/renderers/measurables/icon.d.ts +5 -1
  107. package/core/renderers/measurables/inline_input.d.ts +1 -1
  108. package/core/renderers/measurables/input_connection.d.ts +1 -1
  109. package/core/renderers/measurables/statement_input.d.ts +1 -1
  110. package/core/renderers/zelos/constants.d.ts +2 -2
  111. package/core/renderers/zelos/info.d.ts +2 -2
  112. package/core/renderers/zelos/marker_svg.d.ts +3 -3
  113. package/core/renderers/zelos/measurables/inputs.d.ts +1 -1
  114. package/core/renderers/zelos/path_object.d.ts +3 -3
  115. package/core/scrollbar.d.ts +0 -2
  116. package/core/scrollbar_pair.d.ts +0 -2
  117. package/core/serialization/blocks.d.ts +3 -3
  118. package/core/serialization/exceptions.d.ts +11 -0
  119. package/core/shortcut_registry.d.ts +2 -2
  120. package/core/theme_manager.d.ts +0 -1
  121. package/core/touch.d.ts +0 -43
  122. package/core/trashcan.d.ts +19 -21
  123. package/core/utils/dom.d.ts +2 -2
  124. package/core/utils/object.d.ts +0 -25
  125. package/core/utils/rect.d.ts +2 -0
  126. package/core/utils/style.d.ts +0 -12
  127. package/core/utils/svg_math.d.ts +0 -8
  128. package/core/utils/xml.d.ts +15 -22
  129. package/core/utils.d.ts +0 -138
  130. package/core/widgetdiv.d.ts +5 -0
  131. package/core/workspace.d.ts +9 -3
  132. package/core/workspace_comment.d.ts +3 -3
  133. package/core/workspace_comment_svg.d.ts +31 -44
  134. package/core/workspace_dragger.d.ts +1 -4
  135. package/core/workspace_svg.d.ts +13 -50
  136. package/core/xml.d.ts +0 -12
  137. package/core-browser.js +0 -1
  138. package/core.js +0 -1
  139. package/dart_compressed.js +124 -159
  140. package/dart_compressed.js.map +1 -1
  141. package/javascript_compressed.js +127 -169
  142. package/javascript_compressed.js.map +1 -1
  143. package/lua_compressed.js +119 -142
  144. package/lua_compressed.js.map +1 -1
  145. package/msg/constants.d.ts +1 -3
  146. package/msg/msg.d.ts +1 -2
  147. package/msg/qqq.d.ts +1 -3
  148. package/msg/synonyms.d.ts +1 -3
  149. package/package.json +12 -13
  150. package/php_compressed.js +131 -161
  151. package/php_compressed.js.map +1 -1
  152. package/python_compressed.js +118 -149
  153. package/python_compressed.js.map +1 -1
  154. package/core/comment.d.ts +0 -115
  155. package/core/events/events_ui.d.ts +0 -40
  156. package/core/icon.d.ts +0 -89
  157. package/core/mutator.d.ts +0 -142
  158. package/core/renderers/common/debug.d.ts +0 -29
  159. package/core/renderers/common/debugger.d.ts +0 -117
  160. package/core/warning.d.ts +0 -53
package/php_compressed.js CHANGED
@@ -6,34 +6,25 @@
6
6
  define(["./blockly_compressed.js"], factory);
7
7
  } else if (typeof exports === 'object') { // Node.js
8
8
  module.exports = factory(require("./blockly_compressed.js"));
9
- } else { // Browser
10
- var factoryExports = factory(root.Blockly);
11
- root.Blockly.PHP = factoryExports.phpGenerator;
12
- root.Blockly.PHP.__namespace__ = factoryExports.__namespace__;
9
+ } else { // Script
10
+ root.php = factory(root.Blockly);
11
+ root.Blockly.PHP = root.php.phpGenerator;
13
12
  }
14
13
  }(this, function(__parent__) {
15
14
  var $=__parent__.__namespace__;
16
- var module$exports$Blockly$PHP={},module$contents$Blockly$PHP_stringUtils=$.module$build$src$core$utils$string,module$contents$Blockly$PHP_CodeGenerator=$.CodeGenerator$$module$build$src$core$generator,module$contents$Blockly$PHP_inputTypes=$.module$build$src$core$input_types.inputTypes,module$contents$Blockly$PHP_Names=$.module$build$src$core$names.Names;module$exports$Blockly$PHP.phpGenerator=new $.CodeGenerator$$module$build$src$core$generator("PHP");module$exports$Blockly$PHP.phpGenerator.addReservedWords("__halt_compiler,abstract,and,array,as,break,callable,case,catch,class,clone,const,continue,declare,default,die,do,echo,else,elseif,empty,enddeclare,endfor,endforeach,endif,endswitch,endwhile,eval,exit,extends,final,for,foreach,function,global,goto,if,implements,include,include_once,instanceof,insteadof,interface,isset,list,namespace,new,or,print,private,protected,public,require,require_once,return,static,switch,throw,trait,try,unset,use,var,while,xor,PHP_VERSION,PHP_MAJOR_VERSION,PHP_MINOR_VERSION,PHP_RELEASE_VERSION,PHP_VERSION_ID,PHP_EXTRA_VERSION,PHP_ZTS,PHP_DEBUG,PHP_MAXPATHLEN,PHP_OS,PHP_SAPI,PHP_EOL,PHP_INT_MAX,PHP_INT_SIZE,DEFAULT_INCLUDE_PATH,PEAR_INSTALL_DIR,PEAR_EXTENSION_DIR,PHP_EXTENSION_DIR,PHP_PREFIX,PHP_BINDIR,PHP_BINARY,PHP_MANDIR,PHP_LIBDIR,PHP_DATADIR,PHP_SYSCONFDIR,PHP_LOCALSTATEDIR,PHP_CONFIG_FILE_PATH,PHP_CONFIG_FILE_SCAN_DIR,PHP_SHLIB_SUFFIX,E_ERROR,E_WARNING,E_PARSE,E_NOTICE,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_ERROR,E_COMPILE_WARNING,E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE,E_DEPRECATED,E_USER_DEPRECATED,E_ALL,E_STRICT,__COMPILER_HALT_OFFSET__,TRUE,FALSE,NULL,__CLASS__,__DIR__,__FILE__,__FUNCTION__,__LINE__,__METHOD__,__NAMESPACE__,__TRAIT__");
17
- module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC=0;module$exports$Blockly$PHP.phpGenerator.ORDER_CLONE=1;module$exports$Blockly$PHP.phpGenerator.ORDER_NEW=1;module$exports$Blockly$PHP.phpGenerator.ORDER_MEMBER=2.1;module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL=2.2;module$exports$Blockly$PHP.phpGenerator.ORDER_POWER=3;module$exports$Blockly$PHP.phpGenerator.ORDER_INCREMENT=4;module$exports$Blockly$PHP.phpGenerator.ORDER_DECREMENT=4;
18
- module$exports$Blockly$PHP.phpGenerator.ORDER_BITWISE_NOT=4;module$exports$Blockly$PHP.phpGenerator.ORDER_CAST=4;module$exports$Blockly$PHP.phpGenerator.ORDER_SUPPRESS_ERROR=4;module$exports$Blockly$PHP.phpGenerator.ORDER_INSTANCEOF=5;module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_NOT=6;module$exports$Blockly$PHP.phpGenerator.ORDER_UNARY_PLUS=7.1;module$exports$Blockly$PHP.phpGenerator.ORDER_UNARY_NEGATION=7.2;module$exports$Blockly$PHP.phpGenerator.ORDER_MULTIPLICATION=8.1;
19
- module$exports$Blockly$PHP.phpGenerator.ORDER_DIVISION=8.2;module$exports$Blockly$PHP.phpGenerator.ORDER_MODULUS=8.3;module$exports$Blockly$PHP.phpGenerator.ORDER_ADDITION=9.1;module$exports$Blockly$PHP.phpGenerator.ORDER_SUBTRACTION=9.2;module$exports$Blockly$PHP.phpGenerator.ORDER_STRING_CONCAT=9.3;module$exports$Blockly$PHP.phpGenerator.ORDER_BITWISE_SHIFT=10;module$exports$Blockly$PHP.phpGenerator.ORDER_RELATIONAL=11;module$exports$Blockly$PHP.phpGenerator.ORDER_EQUALITY=12;
20
- module$exports$Blockly$PHP.phpGenerator.ORDER_REFERENCE=13;module$exports$Blockly$PHP.phpGenerator.ORDER_BITWISE_AND=13;module$exports$Blockly$PHP.phpGenerator.ORDER_BITWISE_XOR=14;module$exports$Blockly$PHP.phpGenerator.ORDER_BITWISE_OR=15;module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_AND=16;module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_OR=17;module$exports$Blockly$PHP.phpGenerator.ORDER_IF_NULL=18;module$exports$Blockly$PHP.phpGenerator.ORDER_CONDITIONAL=19;
21
- module$exports$Blockly$PHP.phpGenerator.ORDER_ASSIGNMENT=20;module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_AND_WEAK=21;module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_XOR=22;module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_OR_WEAK=23;module$exports$Blockly$PHP.phpGenerator.ORDER_NONE=99;
22
- module$exports$Blockly$PHP.phpGenerator.ORDER_OVERRIDES=[[module$exports$Blockly$PHP.phpGenerator.ORDER_MEMBER,module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL],[module$exports$Blockly$PHP.phpGenerator.ORDER_MEMBER,module$exports$Blockly$PHP.phpGenerator.ORDER_MEMBER],[module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_NOT,module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_NOT],[module$exports$Blockly$PHP.phpGenerator.ORDER_MULTIPLICATION,module$exports$Blockly$PHP.phpGenerator.ORDER_MULTIPLICATION],
23
- [module$exports$Blockly$PHP.phpGenerator.ORDER_ADDITION,module$exports$Blockly$PHP.phpGenerator.ORDER_ADDITION],[module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_AND,module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_AND],[module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_OR,module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_OR]];module$exports$Blockly$PHP.phpGenerator.isInitialized=!1;
24
- module$exports$Blockly$PHP.phpGenerator.init=function(a){Object.getPrototypeOf(this).init.call(this);this.nameDB_?this.nameDB_.reset():this.nameDB_=new $.module$build$src$core$names.Names(this.RESERVED_WORDS_,"$");this.nameDB_.setVariableMap(a.getVariableMap());this.nameDB_.populateVariables(a);this.nameDB_.populateProcedures(a);this.isInitialized=!0};
25
- module$exports$Blockly$PHP.phpGenerator.finish=function(a){const b=Object.values(this.definitions_);a=Object.getPrototypeOf(this).finish.call(this,a);this.isInitialized=!1;this.nameDB_.reset();return b.join("\n\n")+"\n\n\n"+a};module$exports$Blockly$PHP.phpGenerator.scrubNakedValue=function(a){return a+";\n"};module$exports$Blockly$PHP.phpGenerator.quote_=function(a){a=a.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n").replace(/'/g,"\\'");return"'"+a+"'"};
26
- module$exports$Blockly$PHP.phpGenerator.multiline_quote_=function(a){return a.split(/\n/g).map(this.quote_).join(' . "\\n" .\n')};
27
- module$exports$Blockly$PHP.phpGenerator.scrub_=function(a,b,c){let d="";if(!a.outputConnection||!a.outputConnection.targetConnection){var e=a.getCommentText();e&&(e=$.module$build$src$core$utils$string.wrap(e,this.COMMENT_WRAP-3),d+=this.prefixLines(e,"// ")+"\n");for(let f=0;f<a.inputList.length;f++)a.inputList[f].type===$.module$build$src$core$input_types.inputTypes.VALUE&&(e=a.inputList[f].connection.targetBlock())&&(e=this.allNestedComments(e))&&(d+=this.prefixLines(e,"// "))}a=a.nextConnection&&
28
- a.nextConnection.targetBlock();c=c?"":this.blockToCode(a);return d+b+c};
29
- module$exports$Blockly$PHP.phpGenerator.getAdjusted=function(a,b,c,d,e){c=c||0;e=e||this.ORDER_NONE;a.workspace.options.oneBasedIndex&&c--;let f=a.workspace.options.oneBasedIndex?"1":"0",g=e,h;0<c?h=g=this.ORDER_ADDITION:0>c?h=g=this.ORDER_SUBTRACTION:d&&(h=g=this.ORDER_UNARY_NEGATION);a=this.valueToCode(a,b,g)||f;$.module$build$src$core$utils$string.isNumber(a)?(a=Number(a)+c,d&&(a=-a)):(0<c?a=a+" + "+c:0>c&&(a=a+" - "+-c),d&&(a=c?"-("+a+")":"-"+a),h=Math.floor(h),e=Math.floor(e),h&&e>=h&&(a="("+
30
- a+")"));return a};var module$exports$Blockly$PHP$colour={};module$exports$Blockly$PHP.phpGenerator.colour_picker=function(a){return[module$exports$Blockly$PHP.phpGenerator.quote_(a.getFieldValue("COLOUR")),module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC]};module$exports$Blockly$PHP.phpGenerator.colour_random=function(a){return[module$exports$Blockly$PHP.phpGenerator.provideFunction_("colour_random",`
31
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}() {
15
+ var Order$$module$build$src$generators$php={ATOMIC:0,CLONE:1,NEW:1,MEMBER:2.1,FUNCTION_CALL:2.2,POWER:3,INCREMENT:4,DECREMENT:4,BITWISE_NOT:4,CAST:4,SUPPRESS_ERROR:4,INSTANCEOF:5,LOGICAL_NOT:6,UNARY_PLUS:7.1,UNARY_NEGATION:7.2,MULTIPLICATION:8.1,DIVISION:8.2,MODULUS:8.3,ADDITION:9.1,SUBTRACTION:9.2,STRING_CONCAT:9.3,BITWISE_SHIFT:10,RELATIONAL:11,EQUALITY:12,REFERENCE:13,BITWISE_AND:13,BITWISE_XOR:14,BITWISE_OR:15,LOGICAL_AND:16,LOGICAL_OR:17,IF_NULL:18,CONDITIONAL:19,ASSIGNMENT:20,LOGICAL_AND_WEAK:21,
16
+ LOGICAL_XOR:22,LOGICAL_OR_WEAK:23,NONE:99},PhpGenerator$$module$build$src$generators$php=class extends $.CodeGenerator$$module$build$src$core$generator{constructor(a){super(null!=a?a:"PHP");this.ORDER_OVERRIDES=[[Order$$module$build$src$generators$php.MEMBER,Order$$module$build$src$generators$php.FUNCTION_CALL],[Order$$module$build$src$generators$php.MEMBER,Order$$module$build$src$generators$php.MEMBER],[Order$$module$build$src$generators$php.LOGICAL_NOT,Order$$module$build$src$generators$php.LOGICAL_NOT],
17
+ [Order$$module$build$src$generators$php.MULTIPLICATION,Order$$module$build$src$generators$php.MULTIPLICATION],[Order$$module$build$src$generators$php.ADDITION,Order$$module$build$src$generators$php.ADDITION],[Order$$module$build$src$generators$php.LOGICAL_AND,Order$$module$build$src$generators$php.LOGICAL_AND],[Order$$module$build$src$generators$php.LOGICAL_OR,Order$$module$build$src$generators$php.LOGICAL_OR]];this.isInitialized=!1;for(const b in Order$$module$build$src$generators$php)this["ORDER_"+
18
+ b]=Order$$module$build$src$generators$php[b];this.addReservedWords("__halt_compiler,abstract,and,array,as,break,callable,case,catch,class,clone,const,continue,declare,default,die,do,echo,else,elseif,empty,enddeclare,endfor,endforeach,endif,endswitch,endwhile,eval,exit,extends,final,for,foreach,function,global,goto,if,implements,include,include_once,instanceof,insteadof,interface,isset,list,namespace,new,or,print,private,protected,public,require,require_once,return,static,switch,throw,trait,try,unset,use,var,while,xor,PHP_VERSION,PHP_MAJOR_VERSION,PHP_MINOR_VERSION,PHP_RELEASE_VERSION,PHP_VERSION_ID,PHP_EXTRA_VERSION,PHP_ZTS,PHP_DEBUG,PHP_MAXPATHLEN,PHP_OS,PHP_SAPI,PHP_EOL,PHP_INT_MAX,PHP_INT_SIZE,DEFAULT_INCLUDE_PATH,PEAR_INSTALL_DIR,PEAR_EXTENSION_DIR,PHP_EXTENSION_DIR,PHP_PREFIX,PHP_BINDIR,PHP_BINARY,PHP_MANDIR,PHP_LIBDIR,PHP_DATADIR,PHP_SYSCONFDIR,PHP_LOCALSTATEDIR,PHP_CONFIG_FILE_PATH,PHP_CONFIG_FILE_SCAN_DIR,PHP_SHLIB_SUFFIX,E_ERROR,E_WARNING,E_PARSE,E_NOTICE,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_ERROR,E_COMPILE_WARNING,E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE,E_DEPRECATED,E_USER_DEPRECATED,E_ALL,E_STRICT,__COMPILER_HALT_OFFSET__,TRUE,FALSE,NULL,__CLASS__,__DIR__,__FILE__,__FUNCTION__,__LINE__,__METHOD__,__NAMESPACE__,__TRAIT__")}init(a){super.init(a);
19
+ this.nameDB_?this.nameDB_.reset():this.nameDB_=new $.Names$$module$build$src$core$names(this.RESERVED_WORDS_,"$");this.nameDB_.setVariableMap(a.getVariableMap());this.nameDB_.populateVariables(a);this.nameDB_.populateProcedures(a);this.isInitialized=!0}finish(a){const b=Object.values(this.definitions_);a=super.finish(a);this.isInitialized=!1;this.nameDB_.reset();return b.join("\n\n")+"\n\n\n"+a}scrubNakedValue(a){return a+";\n"}quote_(a){a=a.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n").replace(/'/g,
20
+ "\\'");return"'"+a+"'"}multiline_quote_(a){return a.split(/\n/g).map(this.quote_).join(' . "\\n" .\n')}scrub_(a,b,c){let d="";if(!a.outputConnection||!a.outputConnection.targetConnection){var e=a.getCommentText();e&&(e=$.wrap$$module$build$src$core$utils$string(e,this.COMMENT_WRAP-3),d+=this.prefixLines(e,"// ")+"\n");for(let f=0;f<a.inputList.length;f++)a.inputList[f].type===$.inputTypes$$module$build$src$core$inputs$input_types.VALUE&&(e=a.inputList[f].connection.targetBlock())&&(e=this.allNestedComments(e))&&
21
+ (d+=this.prefixLines(e,"// "))}a=a.nextConnection&&a.nextConnection.targetBlock();c=c?"":this.blockToCode(a);return d+b+c}getAdjusted(a,b,c,d,e){c=c||0;e=e||this.ORDER_NONE;a.workspace.options.oneBasedIndex&&c--;let f=a.workspace.options.oneBasedIndex?"1":"0",g=e,h;0<c?h=g=this.ORDER_ADDITION:0>c?h=g=this.ORDER_SUBTRACTION:d&&(h=g=this.ORDER_UNARY_NEGATION);a=this.valueToCode(a,b,g)||f;$.isNumber$$module$build$src$core$utils$string(a)?(a=Number(a)+c,d&&(a=-a)):(0<c?a=a+" + "+c:0>c&&(a=a+" - "+-c),
22
+ d&&(a=c?"-("+a+")":"-"+a),h=Math.floor(h),e=Math.floor(e),h&&e>=h&&(a="("+a+")"));return a}},phpGenerator$$module$build$src$generators$php=new PhpGenerator$$module$build$src$generators$php,module$build$src$generators$php={};module$build$src$generators$php.Order=Order$$module$build$src$generators$php;module$build$src$generators$php.phpGenerator=phpGenerator$$module$build$src$generators$php;phpGenerator$$module$build$src$generators$php.forBlock.colour_picker=function(a,b){return[b.quote_(a.getFieldValue("COLOUR")),Order$$module$build$src$generators$php.ATOMIC]};phpGenerator$$module$build$src$generators$php.forBlock.colour_random=function(a,b){return[b.provideFunction_("colour_random",`
23
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}() {
32
24
  return '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);
33
25
  }
34
- `)+"()",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
35
- module$exports$Blockly$PHP.phpGenerator.colour_rgb=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"RED",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||0,c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"GREEN",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||0;a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"BLUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||0;return[module$exports$Blockly$PHP.phpGenerator.provideFunction_("colour_rgb",`
36
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($r, $g, $b) {
26
+ `)+"()",Order$$module$build$src$generators$php.FUNCTION_CALL]};phpGenerator$$module$build$src$generators$php.forBlock.colour_rgb=function(a,b){const c=b.valueToCode(a,"RED",Order$$module$build$src$generators$php.NONE)||0,d=b.valueToCode(a,"GREEN",Order$$module$build$src$generators$php.NONE)||0;a=b.valueToCode(a,"BLUE",Order$$module$build$src$generators$php.NONE)||0;return[b.provideFunction_("colour_rgb",`
27
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($r, $g, $b) {
37
28
  $r = round(max(min($r, 100), 0) * 2.55);
38
29
  $g = round(max(min($g, 100), 0) * 2.55);
39
30
  $b = round(max(min($b, 100), 0) * 2.55);
@@ -43,10 +34,8 @@ function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($
43
34
  $hex .= str_pad(dechex($b), 2, '0', STR_PAD_LEFT);
44
35
  return $hex;
45
36
  }
46
- `)+"("+b+", "+c+", "+a+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
47
- module$exports$Blockly$PHP.phpGenerator.colour_blend=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"COLOUR1",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"'#000000'",c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"COLOUR2",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"'#000000'";a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"RATIO",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||.5;return[module$exports$Blockly$PHP.phpGenerator.provideFunction_("colour_blend",
48
- `
49
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($c1, $c2, $ratio) {
37
+ `)+"("+c+", "+d+", "+a+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};phpGenerator$$module$build$src$generators$php.forBlock.colour_blend=function(a,b){const c=b.valueToCode(a,"COLOUR1",Order$$module$build$src$generators$php.NONE)||"'#000000'",d=b.valueToCode(a,"COLOUR2",Order$$module$build$src$generators$php.NONE)||"'#000000'";a=b.valueToCode(a,"RATIO",Order$$module$build$src$generators$php.NONE)||.5;return[b.provideFunction_("colour_blend",`
38
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($c1, $c2, $ratio) {
50
39
  $ratio = max(min($ratio, 1), 0);
51
40
  $r1 = hexdec(substr($c1, 1, 2));
52
41
  $g1 = hexdec(substr($c1, 3, 2));
@@ -63,82 +52,79 @@ function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($
63
52
  $hex .= str_pad(dechex($b), 2, '0', STR_PAD_LEFT);
64
53
  return $hex;
65
54
  }
66
- `)+"("+b+", "+c+", "+a+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};var module$exports$Blockly$PHP$lists={},module$contents$Blockly$PHP$lists_stringUtils=$.module$build$src$core$utils$string,module$contents$Blockly$PHP$lists_NameType=$.NameType$$module$build$src$core$names;module$exports$Blockly$PHP.phpGenerator.lists_create_empty=function(a){return["array()",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
67
- module$exports$Blockly$PHP.phpGenerator.lists_create_with=function(a){let b=Array(a.itemCount_);for(let c=0;c<a.itemCount_;c++)b[c]=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"ADD"+c,module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"null";b="array("+b.join(", ")+")";return[b,module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};module$exports$Blockly$PHP.phpGenerator.lists_repeat=function(a){const b=module$exports$Blockly$PHP.phpGenerator.provideFunction_("lists_repeat",`
68
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($value, $count) {
55
+ `)+"("+c+", "+d+", "+a+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};var module$build$src$generators$php$colour={};phpGenerator$$module$build$src$generators$php.forBlock.lists_create_empty=function(a,b){return["array()",Order$$module$build$src$generators$php.FUNCTION_CALL]};phpGenerator$$module$build$src$generators$php.forBlock.lists_create_with=function(a,b){let c=Array(a.itemCount_);for(let d=0;d<a.itemCount_;d++)c[d]=b.valueToCode(a,"ADD"+d,Order$$module$build$src$generators$php.NONE)||"null";c="array("+c.join(", ")+")";return[c,Order$$module$build$src$generators$php.FUNCTION_CALL]};
56
+ phpGenerator$$module$build$src$generators$php.forBlock.lists_repeat=function(a,b){const c=b.provideFunction_("lists_repeat",`
57
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($value, $count) {
69
58
  $array = array();
70
59
  for ($index = 0; $index < $count; $index++) {
71
60
  $array[] = $value;
72
61
  }
73
62
  return $array;
74
63
  }
75
- `),c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"ITEM",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"null";a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"NUM",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"0";return[b+"("+c+", "+a+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};module$exports$Blockly$PHP.phpGenerator.lists_length=function(a){const b=module$exports$Blockly$PHP.phpGenerator.provideFunction_("length",`
76
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($value) {
64
+ `),d=b.valueToCode(a,"ITEM",Order$$module$build$src$generators$php.NONE)||"null";a=b.valueToCode(a,"NUM",Order$$module$build$src$generators$php.NONE)||"0";return[c+"("+d+", "+a+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};phpGenerator$$module$build$src$generators$php.forBlock.lists_length=function(a,b){const c=b.provideFunction_("length",`
65
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($value) {
77
66
  if (is_string($value)) {
78
67
  return strlen($value);
79
68
  } else {
80
69
  return count($value);
81
70
  }
82
71
  }
83
- `);a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''";return[b+"("+a+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};module$exports$Blockly$PHP.phpGenerator.lists_isEmpty=function(a){return["empty("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL)||"array()")+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
84
- module$exports$Blockly$PHP.phpGenerator.lists_indexOf=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"FIND",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''",c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_MEMBER)||"[]";let d=" -1",e="";a.workspace.options.oneBasedIndex&&(d=" 0",e=" + 1");return[("FIRST"===a.getFieldValue("END")?module$exports$Blockly$PHP.phpGenerator.provideFunction_("indexOf",`
85
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($haystack, $needle) {
72
+ `);a=b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"''";return[c+"("+a+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};phpGenerator$$module$build$src$generators$php.forBlock.lists_isEmpty=function(a,b){return["empty("+(b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.FUNCTION_CALL)||"array()")+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};
73
+ phpGenerator$$module$build$src$generators$php.forBlock.lists_indexOf=function(a,b){const c=b.valueToCode(a,"FIND",Order$$module$build$src$generators$php.NONE)||"''",d=b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.MEMBER)||"[]";let e=" -1",f="";a.workspace.options.oneBasedIndex&&(e=" 0",f=" + 1");return[("FIRST"===a.getFieldValue("END")?b.provideFunction_("indexOf",`
74
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($haystack, $needle) {
86
75
  for ($index = 0; $index < count($haystack); $index++) {
87
- if ($haystack[$index] == $needle) return $index${e};
76
+ if ($haystack[$index] == $needle) return $index${f};
88
77
  }
89
- return ${d};
78
+ return ${e};
90
79
  }
91
- `):module$exports$Blockly$PHP.phpGenerator.provideFunction_("lastIndexOf",`
92
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($haystack, $needle) {
93
- $last = ${d};
80
+ `):b.provideFunction_("lastIndexOf",`
81
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($haystack, $needle) {
82
+ $last = ${e};
94
83
  for ($index = 0; $index < count($haystack); $index++) {
95
- if ($haystack[$index] == $needle) $last = $index${e};
84
+ if ($haystack[$index] == $needle) $last = $index${f};
96
85
  }
97
86
  return $last;
98
87
  }
99
- `))+"("+c+", "+b+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
100
- module$exports$Blockly$PHP.phpGenerator.lists_getIndex=function(a){var b=a.getFieldValue("MODE")||"GET";switch(a.getFieldValue("WHERE")||"FROM_START"){case "FIRST":if("GET"===b)return[(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_MEMBER)||"array()")+"[0]",module$exports$Blockly$PHP.phpGenerator.ORDER_MEMBER];if("GET_REMOVE"===b)return["array_shift("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||
101
- "array()")+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL];if("REMOVE"===b)return"array_shift("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()")+");\n";break;case "LAST":if("GET"===b)return["end("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()")+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL];if("GET_REMOVE"===
102
- b)return["array_pop("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()")+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL];if("REMOVE"===b)return"array_pop("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()")+");\n";break;case "FROM_START":var c=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,"AT");if("GET"===b)return[(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,
103
- "VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_MEMBER)||"array()")+"["+c+"]",module$exports$Blockly$PHP.phpGenerator.ORDER_MEMBER];if("GET_REMOVE"===b)return["array_splice("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()")+", "+c+", 1)[0]",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL];if("REMOVE"===b)return"array_splice("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||
104
- "array()")+", "+c+", 1);\n";break;case "FROM_END":if("GET"===b)return b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()",a=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,"AT",1,!0),["array_slice("+b+", "+a+", 1)[0]",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL];if("GET_REMOVE"===b||"REMOVE"===b){c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||
105
- "array()";a=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,"AT",1,!1,module$exports$Blockly$PHP.phpGenerator.ORDER_SUBTRACTION);a="array_splice("+c+", count("+c+") - "+a+", 1)[0]";if("GET_REMOVE"===b)return[a,module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL];if("REMOVE"===b)return a+";\n"}break;case "RANDOM":a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()";if("GET"===b)return[module$exports$Blockly$PHP.phpGenerator.provideFunction_("lists_get_random_item",
106
- `
107
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($list) {
88
+ `))+"("+d+", "+c+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};
89
+ phpGenerator$$module$build$src$generators$php.forBlock.lists_getIndex=function(a,b){var c=a.getFieldValue("MODE")||"GET";switch(a.getFieldValue("WHERE")||"FROM_START"){case "FIRST":if("GET"===c)return[(b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.MEMBER)||"array()")+"[0]",Order$$module$build$src$generators$php.MEMBER];if("GET_REMOVE"===c)return["array_shift("+(b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"array()")+")",Order$$module$build$src$generators$php.FUNCTION_CALL];
90
+ if("REMOVE"===c)return"array_shift("+(b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"array()")+");\n";break;case "LAST":if("GET"===c)return["end("+(b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"array()")+")",Order$$module$build$src$generators$php.FUNCTION_CALL];if("GET_REMOVE"===c)return["array_pop("+(b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"array()")+")",Order$$module$build$src$generators$php.FUNCTION_CALL];if("REMOVE"===
91
+ c)return"array_pop("+(b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"array()")+");\n";break;case "FROM_START":var d=b.getAdjusted(a,"AT");if("GET"===c)return[(b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.MEMBER)||"array()")+"["+d+"]",Order$$module$build$src$generators$php.MEMBER];if("GET_REMOVE"===c)return["array_splice("+(b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"array()")+", "+d+", 1)[0]",Order$$module$build$src$generators$php.FUNCTION_CALL];
92
+ if("REMOVE"===c)return"array_splice("+(b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"array()")+", "+d+", 1);\n";break;case "FROM_END":if("GET"===c)return c=b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"array()",b=b.getAdjusted(a,"AT",1,!0),["array_slice("+c+", "+b+", 1)[0]",Order$$module$build$src$generators$php.FUNCTION_CALL];if("GET_REMOVE"===c||"REMOVE"===c){d=b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"array()";b=b.getAdjusted(a,
93
+ "AT",1,!1,Order$$module$build$src$generators$php.SUBTRACTION);b="array_splice("+d+", count("+d+") - "+b+", 1)[0]";if("GET_REMOVE"===c)return[b,Order$$module$build$src$generators$php.FUNCTION_CALL];if("REMOVE"===c)return b+";\n"}break;case "RANDOM":a=b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"array()";if("GET"===c)return[b.provideFunction_("lists_get_random_item",`
94
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($list) {
108
95
  return $list[rand(0,count($list)-1)];
109
96
  }
110
- `)+"("+a+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL];if("GET_REMOVE"===b)return[module$exports$Blockly$PHP.phpGenerator.provideFunction_("lists_get_remove_random_item",`
111
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}(&$list) {
97
+ `)+"("+a+")",Order$$module$build$src$generators$php.FUNCTION_CALL];if("GET_REMOVE"===c)return[b.provideFunction_("lists_get_remove_random_item",`
98
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}(&$list) {
112
99
  $x = rand(0,count($list)-1);
113
100
  unset($list[$x]);
114
101
  return array_values($list);
115
102
  }
116
- `)+"("+a+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL];if("REMOVE"===b)return module$exports$Blockly$PHP.phpGenerator.provideFunction_("lists_remove_random_item",`
117
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}(&$list) {
103
+ `)+"("+a+")",Order$$module$build$src$generators$php.FUNCTION_CALL];if("REMOVE"===c)return b.provideFunction_("lists_remove_random_item",`
104
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}(&$list) {
118
105
  unset($list[rand(0,count($list)-1)]);
119
106
  }
120
107
  `)+"("+a+");\n"}throw Error("Unhandled combination (lists_getIndex).");};
121
- module$exports$Blockly$PHP.phpGenerator.lists_setIndex=function(a){const b=a.getFieldValue("MODE")||"GET";var c=a.getFieldValue("WHERE")||"FROM_START";const d=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"TO",module$exports$Blockly$PHP.phpGenerator.ORDER_ASSIGNMENT)||"null";switch(c){case "FIRST":if("SET"===b)return(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_MEMBER)||"array()")+"[0] = "+d+";\n";if("INSERT"===b)return"array_unshift("+
122
- (module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()")+", "+d+");\n";break;case "LAST":a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()";if("SET"===b)return module$exports$Blockly$PHP.phpGenerator.provideFunction_("lists_set_last_item",`
123
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}(&$list, $value) {
108
+ phpGenerator$$module$build$src$generators$php.forBlock.lists_setIndex=function(a,b){const c=a.getFieldValue("MODE")||"GET";var d=a.getFieldValue("WHERE")||"FROM_START";const e=b.valueToCode(a,"TO",Order$$module$build$src$generators$php.ASSIGNMENT)||"null";switch(d){case "FIRST":if("SET"===c)return(b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.MEMBER)||"array()")+"[0] = "+e+";\n";if("INSERT"===c)return"array_unshift("+(b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.NONE)||
109
+ "array()")+", "+e+");\n";break;case "LAST":a=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.NONE)||"array()";if("SET"===c)return b.provideFunction_("lists_set_last_item",`
110
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}(&$list, $value) {
124
111
  $list[count($list) - 1] = $value;
125
112
  }
126
- `)+"("+a+", "+d+");\n";if("INSERT"===b)return"array_push("+a+", "+d+");\n";break;case "FROM_START":c=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,"AT");if("SET"===b)return(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_MEMBER)||"array()")+"["+c+"] = "+d+";\n";if("INSERT"===b)return"array_splice("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()")+", "+c+", 0, "+
127
- d+");\n";break;case "FROM_END":c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()";a=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,"AT",1);if("SET"===b)return module$exports$Blockly$PHP.phpGenerator.provideFunction_("lists_set_from_end",`
128
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}(&$list, $at, $value) {
113
+ `)+"("+a+", "+e+");\n";if("INSERT"===c)return"array_push("+a+", "+e+");\n";break;case "FROM_START":d=b.getAdjusted(a,"AT");if("SET"===c)return(b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.MEMBER)||"array()")+"["+d+"] = "+e+";\n";if("INSERT"===c)return"array_splice("+(b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.NONE)||"array()")+", "+d+", 0, "+e+");\n";break;case "FROM_END":d=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.NONE)||"array()";a=b.getAdjusted(a,
114
+ "AT",1);if("SET"===c)return b.provideFunction_("lists_set_from_end",`
115
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}(&$list, $at, $value) {
129
116
  $list[count($list) - $at] = $value;
130
117
  }
131
- `)+"("+c+", "+a+", "+d+");\n";if("INSERT"===b)return module$exports$Blockly$PHP.phpGenerator.provideFunction_("lists_insert_from_end",`
132
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}(&$list, $at, $value) {
118
+ `)+"("+d+", "+a+", "+e+");\n";if("INSERT"===c)return b.provideFunction_("lists_insert_from_end",`
119
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}(&$list, $at, $value) {
133
120
  return array_splice($list, count($list) - $at, 0, $value);
134
121
  }
135
- `)+"("+c+", "+a+", "+d+");\n";break;case "RANDOM":a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_REFERENCE)||"array()";if(a.match(/^\$\w+$/))c="";else{c=module$exports$Blockly$PHP.phpGenerator.nameDB_.getDistinctName("tmp_list",$.NameType$$module$build$src$core$names.VARIABLE);var e=c+" = &"+a+";\n";a=c;c=e}e=module$exports$Blockly$PHP.phpGenerator.nameDB_.getDistinctName("tmp_x",$.NameType$$module$build$src$core$names.VARIABLE);c+=e+" = rand(0, count("+
136
- a+")-1);\n";if("SET"===b)return c+(a+"["+e+"] = "+d+";\n");if("INSERT"===b)return c+("array_splice("+a+", "+e+", 0, "+d+");\n")}throw Error("Unhandled combination (lists_setIndex).");};
137
- module$exports$Blockly$PHP.phpGenerator.lists_getSublist=function(a){var b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()",c=a.getFieldValue("WHERE1"),d=a.getFieldValue("WHERE2");if("FIRST"!==c||"LAST"!==d)if(b.match(/^\$\w+$/)||"FROM_END"!==c&&"FROM_START"===d){switch(c){case "FROM_START":c=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,"AT1");break;case "FROM_END":c=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,
138
- "AT1",1,!1,module$exports$Blockly$PHP.phpGenerator.ORDER_SUBTRACTION);c="count("+b+") - "+c;break;case "FIRST":c="0";break;default:throw Error("Unhandled option (lists_getSublist).");}switch(d){case "FROM_START":d=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,"AT2",0,!1,module$exports$Blockly$PHP.phpGenerator.ORDER_SUBTRACTION);d+=" - ";d=$.module$build$src$core$utils$string.isNumber(String(c))||String(c).match(/^\(.+\)$/)?d+c:d+("("+c+")");d+=" + 1";break;case "FROM_END":d=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,
139
- "AT2",0,!1,module$exports$Blockly$PHP.phpGenerator.ORDER_SUBTRACTION);d="count("+b+") - "+d+" - ";d=$.module$build$src$core$utils$string.isNumber(String(c))||String(c).match(/^\(.+\)$/)?d+c:d+("("+c+")");break;case "LAST":d="count("+b+") - ";d=$.module$build$src$core$utils$string.isNumber(String(c))||String(c).match(/^\(.+\)$/)?d+c:d+("("+c+")");break;default:throw Error("Unhandled option (lists_getSublist).");}b="array_slice("+b+", "+c+", "+d+")"}else{const e=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,
140
- "AT1");a=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,"AT2");b=module$exports$Blockly$PHP.phpGenerator.provideFunction_("lists_get_sublist",`
141
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($list, $where1, $at1, $where2, $at2) {
122
+ `)+"("+d+", "+a+", "+e+");\n";break;case "RANDOM":a=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.REFERENCE)||"array()";if(a.match(/^\$\w+$/))d="";else{d=b.nameDB_.getDistinctName("tmp_list",$.NameType$$module$build$src$core$names.VARIABLE);var f=d+" = &"+a+";\n";a=d;d=f}b=b.nameDB_.getDistinctName("tmp_x",$.NameType$$module$build$src$core$names.VARIABLE);d+=b+" = rand(0, count("+a+")-1);\n";if("SET"===c)return d+(a+"["+b+"] = "+e+";\n");if("INSERT"===c)return d+("array_splice("+a+
123
+ ", "+b+", 0, "+e+");\n")}throw Error("Unhandled combination (lists_setIndex).");};
124
+ phpGenerator$$module$build$src$generators$php.forBlock.lists_getSublist=function(a,b){var c=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.NONE)||"array()",d=a.getFieldValue("WHERE1");const e=a.getFieldValue("WHERE2");if("FIRST"!==d||"LAST"!==e)if(c.match(/^\$\w+$/)||"FROM_END"!==d&&"FROM_START"===e){switch(d){case "FROM_START":d=b.getAdjusted(a,"AT1");break;case "FROM_END":d=b.getAdjusted(a,"AT1",1,!1,Order$$module$build$src$generators$php.SUBTRACTION);d="count("+c+") - "+d;break;
125
+ case "FIRST":d="0";break;default:throw Error("Unhandled option (lists_getSublist).");}switch(e){case "FROM_START":b=b.getAdjusted(a,"AT2",0,!1,Order$$module$build$src$generators$php.SUBTRACTION);b+=" - ";b=$.isNumber$$module$build$src$core$utils$string(String(d))||String(d).match(/^\(.+\)$/)?b+d:b+("("+d+")");b+=" + 1";break;case "FROM_END":b=b.getAdjusted(a,"AT2",0,!1,Order$$module$build$src$generators$php.SUBTRACTION);b="count("+c+") - "+b+" - ";b=$.isNumber$$module$build$src$core$utils$string(String(d))||
126
+ String(d).match(/^\(.+\)$/)?b+d:b+("("+d+")");break;case "LAST":b="count("+c+") - ";b=$.isNumber$$module$build$src$core$utils$string(String(d))||String(d).match(/^\(.+\)$/)?b+d:b+("("+d+")");break;default:throw Error("Unhandled option (lists_getSublist).");}c="array_slice("+c+", "+d+", "+b+")"}else{const f=b.getAdjusted(a,"AT1");a=b.getAdjusted(a,"AT2");c=b.provideFunction_("lists_get_sublist",`
127
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($list, $where1, $at1, $where2, $at2) {
142
128
  if ($where1 == 'FROM_END') {
143
129
  $at1 = count($list) - 1 - $at1;
144
130
  } else if ($where1 == 'FIRST') {
@@ -158,8 +144,8 @@ function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($
158
144
  }
159
145
  return array_slice($list, $at1, $length);
160
146
  }
161
- `)+"("+b+", '"+c+"', "+e+", '"+d+"', "+a+")"}return[b,module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};module$exports$Blockly$PHP.phpGenerator.lists_sort=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()",c="1"===a.getFieldValue("DIRECTION")?1:-1;a=a.getFieldValue("TYPE");return[module$exports$Blockly$PHP.phpGenerator.provideFunction_("lists_sort",`
162
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($list, $type, $direction) {
147
+ `)+"("+c+", '"+d+"', "+f+", '"+e+"', "+a+")"}return[c,Order$$module$build$src$generators$php.FUNCTION_CALL]};phpGenerator$$module$build$src$generators$php.forBlock.lists_sort=function(a,b){const c=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.NONE)||"array()",d="1"===a.getFieldValue("DIRECTION")?1:-1;a=a.getFieldValue("TYPE");return[b.provideFunction_("lists_sort",`
148
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($list, $type, $direction) {
163
149
  $sortCmpFuncs = array(
164
150
  'NUMERIC' => 'strnatcasecmp',
165
151
  'TEXT' => 'strcmp',
@@ -173,37 +159,31 @@ function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($
173
159
  }
174
160
  return $list2;
175
161
  }
176
- `)+"("+b+', "'+a+'", '+c+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
177
- module$exports$Blockly$PHP.phpGenerator.lists_split=function(a){let b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"INPUT",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE);const c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"DELIM",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''";a=a.getFieldValue("MODE");if("SPLIT"===a)b||(b="''"),a="explode";else if("JOIN"===a)b||(b="array()"),a="implode";else throw Error("Unknown mode: "+a);return[a+"("+c+", "+b+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
178
- module$exports$Blockly$PHP.phpGenerator.lists_reverse=function(a){return["array_reverse("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"[]")+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};var module$exports$Blockly$PHP$logic={};
179
- module$exports$Blockly$PHP.phpGenerator.controls_if=function(a){let b=0,c="",d,e;module$exports$Blockly$PHP.phpGenerator.STATEMENT_PREFIX&&(c+=module$exports$Blockly$PHP.phpGenerator.injectId(module$exports$Blockly$PHP.phpGenerator.STATEMENT_PREFIX,a));do e=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"IF"+b,module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"false",d=module$exports$Blockly$PHP.phpGenerator.statementToCode(a,"DO"+b),module$exports$Blockly$PHP.phpGenerator.STATEMENT_SUFFIX&&(d=
180
- module$exports$Blockly$PHP.phpGenerator.prefixLines(module$exports$Blockly$PHP.phpGenerator.injectId(module$exports$Blockly$PHP.phpGenerator.STATEMENT_SUFFIX,a),module$exports$Blockly$PHP.phpGenerator.INDENT)+d),c+=(0<b?" else ":"")+"if ("+e+") {\n"+d+"}",b++;while(a.getInput("IF"+b));if(a.getInput("ELSE")||module$exports$Blockly$PHP.phpGenerator.STATEMENT_SUFFIX)d=module$exports$Blockly$PHP.phpGenerator.statementToCode(a,"ELSE"),module$exports$Blockly$PHP.phpGenerator.STATEMENT_SUFFIX&&(d=module$exports$Blockly$PHP.phpGenerator.prefixLines(module$exports$Blockly$PHP.phpGenerator.injectId(module$exports$Blockly$PHP.phpGenerator.STATEMENT_SUFFIX,
181
- a),module$exports$Blockly$PHP.phpGenerator.INDENT)+d),c+=" else {\n"+d+"}";return c+"\n"};module$exports$Blockly$PHP.phpGenerator.controls_ifelse=module$exports$Blockly$PHP.phpGenerator.controls_if;
182
- module$exports$Blockly$PHP.phpGenerator.logic_compare=function(a){const b={EQ:"==",NEQ:"!=",LT:"<",LTE:"<=",GT:">",GTE:">="}[a.getFieldValue("OP")],c="=="===b||"!="===b?module$exports$Blockly$PHP.phpGenerator.ORDER_EQUALITY:module$exports$Blockly$PHP.phpGenerator.ORDER_RELATIONAL,d=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"A",c)||"0";a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"B",c)||"0";return[d+" "+b+" "+a,c]};
183
- module$exports$Blockly$PHP.phpGenerator.logic_operation=function(a){const b="AND"===a.getFieldValue("OP")?"&&":"||",c="&&"===b?module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_AND:module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_OR;let d=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"A",c);a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"B",c);if(d||a){const e="&&"===b?"true":"false";d||(d=e);a||(a=e)}else a=d="false";return[d+" "+b+" "+a,c]};
184
- module$exports$Blockly$PHP.phpGenerator.logic_negate=function(a){const b=module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_NOT;return["!"+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"BOOL",b)||"true"),b]};module$exports$Blockly$PHP.phpGenerator.logic_boolean=function(a){return["TRUE"===a.getFieldValue("BOOL")?"true":"false",module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC]};module$exports$Blockly$PHP.phpGenerator.logic_null=function(a){return["null",module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC]};
185
- module$exports$Blockly$PHP.phpGenerator.logic_ternary=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"IF",module$exports$Blockly$PHP.phpGenerator.ORDER_CONDITIONAL)||"false",c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"THEN",module$exports$Blockly$PHP.phpGenerator.ORDER_CONDITIONAL)||"null";a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"ELSE",module$exports$Blockly$PHP.phpGenerator.ORDER_CONDITIONAL)||"null";return[b+" ? "+c+" : "+a,module$exports$Blockly$PHP.phpGenerator.ORDER_CONDITIONAL]};var module$exports$Blockly$PHP$loops={},module$contents$Blockly$PHP$loops_stringUtils=$.module$build$src$core$utils$string,module$contents$Blockly$PHP$loops_NameType=$.NameType$$module$build$src$core$names;
186
- module$exports$Blockly$PHP.phpGenerator.controls_repeat_ext=function(a){let b;b=a.getField("TIMES")?String(Number(a.getFieldValue("TIMES"))):module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"TIMES",module$exports$Blockly$PHP.phpGenerator.ORDER_ASSIGNMENT)||"0";let c=module$exports$Blockly$PHP.phpGenerator.statementToCode(a,"DO");c=module$exports$Blockly$PHP.phpGenerator.addLoopTrap(c,a);a="";const d=module$exports$Blockly$PHP.phpGenerator.nameDB_.getDistinctName("count",$.NameType$$module$build$src$core$names.VARIABLE);
187
- let e=b;b.match(/^\w+$/)||$.module$build$src$core$utils$string.isNumber(b)||(e=module$exports$Blockly$PHP.phpGenerator.nameDB_.getDistinctName("repeat_end",$.NameType$$module$build$src$core$names.VARIABLE),a+=e+" = "+b+";\n");return a+("for ("+d+" = 0; "+d+" < "+e+"; "+d+"++) {\n"+c+"}\n")};module$exports$Blockly$PHP.phpGenerator.controls_repeat=module$exports$Blockly$PHP.phpGenerator.controls_repeat_ext;
188
- module$exports$Blockly$PHP.phpGenerator.controls_whileUntil=function(a){const b="UNTIL"===a.getFieldValue("MODE");let c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"BOOL",b?module$exports$Blockly$PHP.phpGenerator.ORDER_LOGICAL_NOT:module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"false",d=module$exports$Blockly$PHP.phpGenerator.statementToCode(a,"DO");d=module$exports$Blockly$PHP.phpGenerator.addLoopTrap(d,a);b&&(c="!"+c);return"while ("+c+") {\n"+d+"}\n"};
189
- module$exports$Blockly$PHP.phpGenerator.controls_for=function(a){var b=module$exports$Blockly$PHP.phpGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE),c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"FROM",module$exports$Blockly$PHP.phpGenerator.ORDER_ASSIGNMENT)||"0",d=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"TO",module$exports$Blockly$PHP.phpGenerator.ORDER_ASSIGNMENT)||"0";const e=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,
190
- "BY",module$exports$Blockly$PHP.phpGenerator.ORDER_ASSIGNMENT)||"1";let f=module$exports$Blockly$PHP.phpGenerator.statementToCode(a,"DO");f=module$exports$Blockly$PHP.phpGenerator.addLoopTrap(f,a);if($.module$build$src$core$utils$string.isNumber(c)&&$.module$build$src$core$utils$string.isNumber(d)&&$.module$build$src$core$utils$string.isNumber(e)){var g=Number(c)<=Number(d);a="for ("+b+" = "+c+"; "+b+(g?" <= ":" >= ")+d+"; "+b;b=Math.abs(Number(e));a=1===b?a+(g?"++":"--"):a+((g?" += ":" -= ")+b);
191
- a+=") {\n"+f+"}\n"}else a="",g=c,c.match(/^\w+$/)||$.module$build$src$core$utils$string.isNumber(c)||(g=module$exports$Blockly$PHP.phpGenerator.nameDB_.getDistinctName(b+"_start",$.NameType$$module$build$src$core$names.VARIABLE),a+=g+" = "+c+";\n"),c=d,d.match(/^\w+$/)||$.module$build$src$core$utils$string.isNumber(d)||(c=module$exports$Blockly$PHP.phpGenerator.nameDB_.getDistinctName(b+"_end",$.NameType$$module$build$src$core$names.VARIABLE),a+=c+" = "+d+";\n"),d=module$exports$Blockly$PHP.phpGenerator.nameDB_.getDistinctName(b+
192
- "_inc",$.NameType$$module$build$src$core$names.VARIABLE),a+=d+" = ",a=$.module$build$src$core$utils$string.isNumber(e)?a+(Math.abs(e)+";\n"):a+("abs("+e+");\n"),a+="if ("+g+" > "+c+") {\n",a+=module$exports$Blockly$PHP.phpGenerator.INDENT+d+" = -"+d+";\n",a=a+"}\nfor ("+(b+" = "+g+"; "+d+" >= 0 ? "+b+" <= "+c+" : "+b+" >= "+c+"; "+b+" += "+d+") {\n"+f+"}\n");return a};
193
- module$exports$Blockly$PHP.phpGenerator.controls_forEach=function(a){const b=module$exports$Blockly$PHP.phpGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE),c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_ASSIGNMENT)||"[]";let d=module$exports$Blockly$PHP.phpGenerator.statementToCode(a,"DO");d=module$exports$Blockly$PHP.phpGenerator.addLoopTrap(d,a);return"foreach ("+c+" as "+b+") {\n"+d+
194
- "}\n"};
195
- module$exports$Blockly$PHP.phpGenerator.controls_flow_statements=function(a){let b="";module$exports$Blockly$PHP.phpGenerator.STATEMENT_PREFIX&&(b+=module$exports$Blockly$PHP.phpGenerator.injectId(module$exports$Blockly$PHP.phpGenerator.STATEMENT_PREFIX,a));module$exports$Blockly$PHP.phpGenerator.STATEMENT_SUFFIX&&(b+=module$exports$Blockly$PHP.phpGenerator.injectId(module$exports$Blockly$PHP.phpGenerator.STATEMENT_SUFFIX,a));if(module$exports$Blockly$PHP.phpGenerator.STATEMENT_PREFIX){const c=a.getSurroundLoop();
196
- c&&!c.suppressPrefixSuffix&&(b+=module$exports$Blockly$PHP.phpGenerator.injectId(module$exports$Blockly$PHP.phpGenerator.STATEMENT_PREFIX,c))}switch(a.getFieldValue("FLOW")){case "BREAK":return b+"break;\n";case "CONTINUE":return b+"continue;\n"}throw Error("Unknown flow statement.");};var module$exports$Blockly$PHP$math={},module$contents$Blockly$PHP$math_NameType=$.NameType$$module$build$src$core$names;module$exports$Blockly$PHP.phpGenerator.math_number=function(a){a=Number(a.getFieldValue("NUM"));const b=0<=a?module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC:module$exports$Blockly$PHP.phpGenerator.ORDER_UNARY_NEGATION;Infinity===a?a="INF":-Infinity===a&&(a="-INF");return[a,b]};
197
- module$exports$Blockly$PHP.phpGenerator.math_arithmetic=function(a){var b={ADD:[" + ",module$exports$Blockly$PHP.phpGenerator.ORDER_ADDITION],MINUS:[" - ",module$exports$Blockly$PHP.phpGenerator.ORDER_SUBTRACTION],MULTIPLY:[" * ",module$exports$Blockly$PHP.phpGenerator.ORDER_MULTIPLICATION],DIVIDE:[" / ",module$exports$Blockly$PHP.phpGenerator.ORDER_DIVISION],POWER:[" ** ",module$exports$Blockly$PHP.phpGenerator.ORDER_POWER]}[a.getFieldValue("OP")];const c=b[0];b=b[1];const d=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,
198
- "A",b)||"0";a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"B",b)||"0";return[d+c+a,b]};
199
- module$exports$Blockly$PHP.phpGenerator.math_single=function(a){const b=a.getFieldValue("OP");let c;if("NEG"===b)return a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"NUM",module$exports$Blockly$PHP.phpGenerator.ORDER_UNARY_NEGATION)||"0","-"===a[0]&&(a=" "+a),["-"+a,module$exports$Blockly$PHP.phpGenerator.ORDER_UNARY_NEGATION];a="SIN"===b||"COS"===b||"TAN"===b?module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"NUM",module$exports$Blockly$PHP.phpGenerator.ORDER_DIVISION)||"0":module$exports$Blockly$PHP.phpGenerator.valueToCode(a,
200
- "NUM",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"0";switch(b){case "ABS":c="abs("+a+")";break;case "ROOT":c="sqrt("+a+")";break;case "LN":c="log("+a+")";break;case "EXP":c="exp("+a+")";break;case "POW10":c="pow(10,"+a+")";break;case "ROUND":c="round("+a+")";break;case "ROUNDUP":c="ceil("+a+")";break;case "ROUNDDOWN":c="floor("+a+")";break;case "SIN":c="sin("+a+" / 180 * pi())";break;case "COS":c="cos("+a+" / 180 * pi())";break;case "TAN":c="tan("+a+" / 180 * pi())"}if(c)return[c,module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL];
201
- switch(b){case "LOG10":c="log("+a+") / log(10)";break;case "ASIN":c="asin("+a+") / pi() * 180";break;case "ACOS":c="acos("+a+") / pi() * 180";break;case "ATAN":c="atan("+a+") / pi() * 180";break;default:throw Error("Unknown math operator: "+b);}return[c,module$exports$Blockly$PHP.phpGenerator.ORDER_DIVISION]};
202
- module$exports$Blockly$PHP.phpGenerator.math_constant=function(a){return{PI:["M_PI",module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC],E:["M_E",module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC],GOLDEN_RATIO:["(1 + sqrt(5)) / 2",module$exports$Blockly$PHP.phpGenerator.ORDER_DIVISION],SQRT2:["M_SQRT2",module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC],SQRT1_2:["M_SQRT1_2",module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC],INFINITY:["INF",module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC]}[a.getFieldValue("CONSTANT")]};
203
- module$exports$Blockly$PHP.phpGenerator.math_number_property=function(a){var b={EVEN:[""," % 2 == 0",module$exports$Blockly$PHP.phpGenerator.ORDER_MODULUS,module$exports$Blockly$PHP.phpGenerator.ORDER_EQUALITY],ODD:[""," % 2 == 1",module$exports$Blockly$PHP.phpGenerator.ORDER_MODULUS,module$exports$Blockly$PHP.phpGenerator.ORDER_EQUALITY],WHOLE:["is_int(",")",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE,module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL],POSITIVE:[""," > 0",module$exports$Blockly$PHP.phpGenerator.ORDER_RELATIONAL,
204
- module$exports$Blockly$PHP.phpGenerator.ORDER_RELATIONAL],NEGATIVE:[""," < 0",module$exports$Blockly$PHP.phpGenerator.ORDER_RELATIONAL,module$exports$Blockly$PHP.phpGenerator.ORDER_RELATIONAL],DIVISIBLE_BY:[null,null,module$exports$Blockly$PHP.phpGenerator.ORDER_MODULUS,module$exports$Blockly$PHP.phpGenerator.ORDER_EQUALITY],PRIME:[null,null,module$exports$Blockly$PHP.phpGenerator.ORDER_NONE,module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};const c=a.getFieldValue("PROPERTY"),[d,e,f,g]=
205
- b[c];b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"NUMBER_TO_CHECK",f)||"0";if("PRIME"===c)a=module$exports$Blockly$PHP.phpGenerator.provideFunction_("math_isPrime",`
206
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($n) {
162
+ `)+"("+c+', "'+a+'", '+d+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};phpGenerator$$module$build$src$generators$php.forBlock.lists_split=function(a,b){let c=b.valueToCode(a,"INPUT",Order$$module$build$src$generators$php.NONE);b=b.valueToCode(a,"DELIM",Order$$module$build$src$generators$php.NONE)||"''";a=a.getFieldValue("MODE");if("SPLIT"===a)c||(c="''"),a="explode";else if("JOIN"===a)c||(c="array()"),a="implode";else throw Error("Unknown mode: "+a);return[a+"("+b+", "+c+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};
163
+ phpGenerator$$module$build$src$generators$php.forBlock.lists_reverse=function(a,b){return["array_reverse("+(b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.NONE)||"[]")+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};var module$build$src$generators$php$lists={};phpGenerator$$module$build$src$generators$php.forBlock.controls_if=function(a,b){let c=0,d="",e,f;b.STATEMENT_PREFIX&&(d+=b.injectId(b.STATEMENT_PREFIX,a));do f=b.valueToCode(a,"IF"+c,Order$$module$build$src$generators$php.NONE)||"false",e=b.statementToCode(a,"DO"+c),b.STATEMENT_SUFFIX&&(e=b.prefixLines(b.injectId(b.STATEMENT_SUFFIX,a),b.INDENT)+e),d+=(0<c?" else ":"")+"if ("+f+") {\n"+e+"}",c++;while(a.getInput("IF"+c));if(a.getInput("ELSE")||b.STATEMENT_SUFFIX)e=b.statementToCode(a,"ELSE"),b.STATEMENT_SUFFIX&&
164
+ (e=b.prefixLines(b.injectId(b.STATEMENT_SUFFIX,a),b.INDENT)+e),d+=" else {\n"+e+"}";return d+"\n"};phpGenerator$$module$build$src$generators$php.forBlock.controls_ifelse=phpGenerator$$module$build$src$generators$php.forBlock.controls_if;
165
+ phpGenerator$$module$build$src$generators$php.forBlock.logic_compare=function(a,b){const c={EQ:"==",NEQ:"!=",LT:"<",LTE:"<=",GT:">",GTE:">="}[a.getFieldValue("OP")],d="=="===c||"!="===c?Order$$module$build$src$generators$php.EQUALITY:Order$$module$build$src$generators$php.RELATIONAL,e=b.valueToCode(a,"A",d)||"0";a=b.valueToCode(a,"B",d)||"0";return[e+" "+c+" "+a,d]};
166
+ phpGenerator$$module$build$src$generators$php.forBlock.logic_operation=function(a,b){const c="AND"===a.getFieldValue("OP")?"&&":"||",d="&&"===c?Order$$module$build$src$generators$php.LOGICAL_AND:Order$$module$build$src$generators$php.LOGICAL_OR;let e=b.valueToCode(a,"A",d);a=b.valueToCode(a,"B",d);e||a?(b="&&"===c?"true":"false",e||(e=b),a||(a=b)):a=e="false";return[e+" "+c+" "+a,d]};
167
+ phpGenerator$$module$build$src$generators$php.forBlock.logic_negate=function(a,b){const c=Order$$module$build$src$generators$php.LOGICAL_NOT;return["!"+(b.valueToCode(a,"BOOL",c)||"true"),c]};phpGenerator$$module$build$src$generators$php.forBlock.logic_boolean=function(a,b){return["TRUE"===a.getFieldValue("BOOL")?"true":"false",Order$$module$build$src$generators$php.ATOMIC]};phpGenerator$$module$build$src$generators$php.forBlock.logic_null=function(a,b){return["null",Order$$module$build$src$generators$php.ATOMIC]};
168
+ phpGenerator$$module$build$src$generators$php.forBlock.logic_ternary=function(a,b){const c=b.valueToCode(a,"IF",Order$$module$build$src$generators$php.CONDITIONAL)||"false",d=b.valueToCode(a,"THEN",Order$$module$build$src$generators$php.CONDITIONAL)||"null";a=b.valueToCode(a,"ELSE",Order$$module$build$src$generators$php.CONDITIONAL)||"null";return[c+" ? "+d+" : "+a,Order$$module$build$src$generators$php.CONDITIONAL]};var module$build$src$generators$php$logic={};phpGenerator$$module$build$src$generators$php.forBlock.controls_repeat_ext=function(a,b){let c;c=a.getField("TIMES")?String(Number(a.getFieldValue("TIMES"))):b.valueToCode(a,"TIMES",Order$$module$build$src$generators$php.ASSIGNMENT)||"0";let d=b.statementToCode(a,"DO");d=b.addLoopTrap(d,a);a="";const e=b.nameDB_.getDistinctName("count",$.NameType$$module$build$src$core$names.VARIABLE);let f=c;c.match(/^\w+$/)||$.isNumber$$module$build$src$core$utils$string(c)||(f=b.nameDB_.getDistinctName("repeat_end",
169
+ $.NameType$$module$build$src$core$names.VARIABLE),a+=f+" = "+c+";\n");return a+("for ("+e+" = 0; "+e+" < "+f+"; "+e+"++) {\n"+d+"}\n")};phpGenerator$$module$build$src$generators$php.forBlock.controls_repeat=phpGenerator$$module$build$src$generators$php.forBlock.controls_repeat_ext;
170
+ phpGenerator$$module$build$src$generators$php.forBlock.controls_whileUntil=function(a,b){const c="UNTIL"===a.getFieldValue("MODE");let d=b.valueToCode(a,"BOOL",c?Order$$module$build$src$generators$php.LOGICAL_NOT:Order$$module$build$src$generators$php.NONE)||"false",e=b.statementToCode(a,"DO");e=b.addLoopTrap(e,a);c&&(d="!"+d);return"while ("+d+") {\n"+e+"}\n"};
171
+ phpGenerator$$module$build$src$generators$php.forBlock.controls_for=function(a,b){var c=b.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE),d=b.valueToCode(a,"FROM",Order$$module$build$src$generators$php.ASSIGNMENT)||"0",e=b.valueToCode(a,"TO",Order$$module$build$src$generators$php.ASSIGNMENT)||"0";const f=b.valueToCode(a,"BY",Order$$module$build$src$generators$php.ASSIGNMENT)||"1";let g=b.statementToCode(a,"DO");g=b.addLoopTrap(g,a);if($.isNumber$$module$build$src$core$utils$string(d)&&
172
+ $.isNumber$$module$build$src$core$utils$string(e)&&$.isNumber$$module$build$src$core$utils$string(f))b=Number(d)<=Number(e),a="for ("+c+" = "+d+"; "+c+(b?" <= ":" >= ")+e+"; "+c,c=Math.abs(Number(f)),a=1===c?a+(b?"++":"--"):a+((b?" += ":" -= ")+c),a+=") {\n"+g+"}\n";else{a="";let h=d;d.match(/^\w+$/)||$.isNumber$$module$build$src$core$utils$string(d)||(h=b.nameDB_.getDistinctName(c+"_start",$.NameType$$module$build$src$core$names.VARIABLE),a+=h+" = "+d+";\n");d=e;e.match(/^\w+$/)||$.isNumber$$module$build$src$core$utils$string(e)||
173
+ (d=b.nameDB_.getDistinctName(c+"_end",$.NameType$$module$build$src$core$names.VARIABLE),a+=d+" = "+e+";\n");e=b.nameDB_.getDistinctName(c+"_inc",$.NameType$$module$build$src$core$names.VARIABLE);a+=e+" = ";a=$.isNumber$$module$build$src$core$utils$string(f)?a+(Math.abs(f)+";\n"):a+("abs("+f+");\n");a+="if ("+h+" > "+d+") {\n";a+=b.INDENT+e+" = -"+e+";\n";a=a+"}\nfor ("+(c+" = "+h+"; "+e+" >= 0 ? "+c+" <= "+d+" : "+c+" >= "+d+"; "+c+" += "+e+") {\n"+g+"}\n")}return a};
174
+ phpGenerator$$module$build$src$generators$php.forBlock.controls_forEach=function(a,b){const c=b.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE),d=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.ASSIGNMENT)||"[]";let e=b.statementToCode(a,"DO");e=b.addLoopTrap(e,a);return"foreach ("+d+" as "+c+") {\n"+e+"}\n"};
175
+ phpGenerator$$module$build$src$generators$php.forBlock.controls_flow_statements=function(a,b){let c="";b.STATEMENT_PREFIX&&(c+=b.injectId(b.STATEMENT_PREFIX,a));b.STATEMENT_SUFFIX&&(c+=b.injectId(b.STATEMENT_SUFFIX,a));if(b.STATEMENT_PREFIX){const d=a.getSurroundLoop();d&&!d.suppressPrefixSuffix&&(c+=b.injectId(b.STATEMENT_PREFIX,d))}switch(a.getFieldValue("FLOW")){case "BREAK":return c+"break;\n";case "CONTINUE":return c+"continue;\n"}throw Error("Unknown flow statement.");};
176
+ var module$build$src$generators$php$loops={};phpGenerator$$module$build$src$generators$php.forBlock.math_number=function(a,b){a=Number(a.getFieldValue("NUM"));b=0<=a?Order$$module$build$src$generators$php.ATOMIC:Order$$module$build$src$generators$php.UNARY_NEGATION;Infinity===a?a="INF":-Infinity===a&&(a="-INF");return[a,b]};
177
+ phpGenerator$$module$build$src$generators$php.forBlock.math_arithmetic=function(a,b){var c={ADD:[" + ",Order$$module$build$src$generators$php.ADDITION],MINUS:[" - ",Order$$module$build$src$generators$php.SUBTRACTION],MULTIPLY:[" * ",Order$$module$build$src$generators$php.MULTIPLICATION],DIVIDE:[" / ",Order$$module$build$src$generators$php.DIVISION],POWER:[" ** ",Order$$module$build$src$generators$php.POWER]}[a.getFieldValue("OP")];const d=c[0];c=c[1];const e=b.valueToCode(a,"A",c)||"0";a=b.valueToCode(a,
178
+ "B",c)||"0";return[e+d+a,c]};
179
+ phpGenerator$$module$build$src$generators$php.forBlock.math_single=function(a,b){const c=a.getFieldValue("OP");let d;if("NEG"===c)return a=b.valueToCode(a,"NUM",Order$$module$build$src$generators$php.UNARY_NEGATION)||"0","-"===a[0]&&(a=" "+a),["-"+a,Order$$module$build$src$generators$php.UNARY_NEGATION];a="SIN"===c||"COS"===c||"TAN"===c?b.valueToCode(a,"NUM",Order$$module$build$src$generators$php.DIVISION)||"0":b.valueToCode(a,"NUM",Order$$module$build$src$generators$php.NONE)||"0";switch(c){case "ABS":d=
180
+ "abs("+a+")";break;case "ROOT":d="sqrt("+a+")";break;case "LN":d="log("+a+")";break;case "EXP":d="exp("+a+")";break;case "POW10":d="pow(10,"+a+")";break;case "ROUND":d="round("+a+")";break;case "ROUNDUP":d="ceil("+a+")";break;case "ROUNDDOWN":d="floor("+a+")";break;case "SIN":d="sin("+a+" / 180 * pi())";break;case "COS":d="cos("+a+" / 180 * pi())";break;case "TAN":d="tan("+a+" / 180 * pi())"}if(d)return[d,Order$$module$build$src$generators$php.FUNCTION_CALL];switch(c){case "LOG10":d="log("+a+") / log(10)";
181
+ break;case "ASIN":d="asin("+a+") / pi() * 180";break;case "ACOS":d="acos("+a+") / pi() * 180";break;case "ATAN":d="atan("+a+") / pi() * 180";break;default:throw Error("Unknown math operator: "+c);}return[d,Order$$module$build$src$generators$php.DIVISION]};
182
+ phpGenerator$$module$build$src$generators$php.forBlock.math_constant=function(a,b){return{PI:["M_PI",Order$$module$build$src$generators$php.ATOMIC],E:["M_E",Order$$module$build$src$generators$php.ATOMIC],GOLDEN_RATIO:["(1 + sqrt(5)) / 2",Order$$module$build$src$generators$php.DIVISION],SQRT2:["M_SQRT2",Order$$module$build$src$generators$php.ATOMIC],SQRT1_2:["M_SQRT1_2",Order$$module$build$src$generators$php.ATOMIC],INFINITY:["INF",Order$$module$build$src$generators$php.ATOMIC]}[a.getFieldValue("CONSTANT")]};
183
+ phpGenerator$$module$build$src$generators$php.forBlock.math_number_property=function(a,b){var c={EVEN:[""," % 2 == 0",Order$$module$build$src$generators$php.MODULUS,Order$$module$build$src$generators$php.EQUALITY],ODD:[""," % 2 == 1",Order$$module$build$src$generators$php.MODULUS,Order$$module$build$src$generators$php.EQUALITY],WHOLE:["is_int(",")",Order$$module$build$src$generators$php.NONE,Order$$module$build$src$generators$php.FUNCTION_CALL],POSITIVE:[""," > 0",Order$$module$build$src$generators$php.RELATIONAL,
184
+ Order$$module$build$src$generators$php.RELATIONAL],NEGATIVE:[""," < 0",Order$$module$build$src$generators$php.RELATIONAL,Order$$module$build$src$generators$php.RELATIONAL],DIVISIBLE_BY:[null,null,Order$$module$build$src$generators$php.MODULUS,Order$$module$build$src$generators$php.EQUALITY],PRIME:[null,null,Order$$module$build$src$generators$php.NONE,Order$$module$build$src$generators$php.FUNCTION_CALL]};const d=a.getFieldValue("PROPERTY"),[e,f,g,h]=c[d];c=b.valueToCode(a,"NUMBER_TO_CHECK",g)||"0";
185
+ if("PRIME"===d)a=b.provideFunction_("math_isPrime",`
186
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($n) {
207
187
  // https://en.wikipedia.org/wiki/Primality_test#Naive_methods
208
188
  if ($n == 2 || $n == 3) {
209
189
  return true;
@@ -221,88 +201,80 @@ function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($
221
201
  }
222
202
  return true;
223
203
  }
224
- `)+"("+b+")";else if("DIVISIBLE_BY"===c){a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"DIVISOR",module$exports$Blockly$PHP.phpGenerator.ORDER_MODULUS)||"0";if("0"===a)return["false",module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC];a=b+" % "+a+" == 0"}else a=d+b+e;return[a,g]};
225
- module$exports$Blockly$PHP.phpGenerator.math_change=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"DELTA",module$exports$Blockly$PHP.phpGenerator.ORDER_ADDITION)||"0";return module$exports$Blockly$PHP.phpGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE)+" += "+b+";\n"};module$exports$Blockly$PHP.phpGenerator.math_round=module$exports$Blockly$PHP.phpGenerator.math_single;module$exports$Blockly$PHP.phpGenerator.math_trig=module$exports$Blockly$PHP.phpGenerator.math_single;
226
- module$exports$Blockly$PHP.phpGenerator.math_on_list=function(a){var b=a.getFieldValue("OP");switch(b){case "SUM":a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL)||"array()";a="array_sum("+a+")";break;case "MIN":a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL)||"array()";a="min("+a+")";break;case "MAX":a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,
227
- "LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL)||"array()";a="max("+a+")";break;case "AVERAGE":b=module$exports$Blockly$PHP.phpGenerator.provideFunction_("math_mean",`
228
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($myList) {
204
+ `)+"("+c+")";else if("DIVISIBLE_BY"===d){a=b.valueToCode(a,"DIVISOR",Order$$module$build$src$generators$php.MODULUS)||"0";if("0"===a)return["false",Order$$module$build$src$generators$php.ATOMIC];a=c+" % "+a+" == 0"}else a=e+c+f;return[a,h]};
205
+ phpGenerator$$module$build$src$generators$php.forBlock.math_change=function(a,b){const c=b.valueToCode(a,"DELTA",Order$$module$build$src$generators$php.ADDITION)||"0";return b.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE)+" += "+c+";\n"};phpGenerator$$module$build$src$generators$php.forBlock.math_round=phpGenerator$$module$build$src$generators$php.forBlock.math_single;phpGenerator$$module$build$src$generators$php.forBlock.math_trig=phpGenerator$$module$build$src$generators$php.forBlock.math_single;
206
+ phpGenerator$$module$build$src$generators$php.forBlock.math_on_list=function(a,b){var c=a.getFieldValue("OP");switch(c){case "SUM":a=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.FUNCTION_CALL)||"array()";a="array_sum("+a+")";break;case "MIN":a=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.FUNCTION_CALL)||"array()";a="min("+a+")";break;case "MAX":a=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.FUNCTION_CALL)||"array()";a="max("+a+")";break;case "AVERAGE":c=
207
+ b.provideFunction_("math_mean",`
208
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($myList) {
229
209
  return array_sum($myList) / count($myList);
230
210
  }
231
- `);a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"array()";a=b+"("+a+")";break;case "MEDIAN":b=module$exports$Blockly$PHP.phpGenerator.provideFunction_("math_median",`
232
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($arr) {
211
+ `);a=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.NONE)||"array()";a=c+"("+a+")";break;case "MEDIAN":c=b.provideFunction_("math_median",`
212
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($arr) {
233
213
  sort($arr,SORT_NUMERIC);
234
214
  return (count($arr) % 2) ? $arr[floor(count($arr) / 2)] :
235
215
  ($arr[floor(count($arr) / 2)] + $arr[floor(count($arr) / 2) - 1]) / 2;
236
216
  }
237
- `);a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "MODE":b=module$exports$Blockly$PHP.phpGenerator.provideFunction_("math_modes",`
238
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($values) {
217
+ `);a=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.NONE)||"[]";a=c+"("+a+")";break;case "MODE":c=b.provideFunction_("math_modes",`
218
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($values) {
239
219
  if (empty($values)) return array();
240
220
  $counts = array_count_values($values);
241
221
  arsort($counts); // Sort counts in descending order
242
222
  $modes = array_keys($counts, current($counts), true);
243
223
  return $modes;
244
224
  }
245
- `);a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "STD_DEV":b=module$exports$Blockly$PHP.phpGenerator.provideFunction_("math_standard_deviation",`
246
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($numbers) {
225
+ `);a=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.NONE)||"[]";a=c+"("+a+")";break;case "STD_DEV":c=b.provideFunction_("math_standard_deviation",`
226
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($numbers) {
247
227
  $n = count($numbers);
248
228
  if (!$n) return null;
249
229
  $mean = array_sum($numbers) / count($numbers);
250
230
  foreach($numbers as $key => $num) $devs[$key] = pow($num - $mean, 2);
251
231
  return sqrt(array_sum($devs) / (count($devs) - 1));
252
232
  }
253
- `);a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"[]";a=b+"("+a+")";break;case "RANDOM":b=module$exports$Blockly$PHP.phpGenerator.provideFunction_("math_random_list",`
254
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($list) {
233
+ `);a=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.NONE)||"[]";a=c+"("+a+")";break;case "RANDOM":c=b.provideFunction_("math_random_list",`
234
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($list) {
255
235
  $x = rand(0, count($list)-1);
256
236
  return $list[$x];
257
237
  }
258
- `);a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LIST",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"[]";a=b+"("+a+")";break;default:throw Error("Unknown operator: "+b);}return[a,module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
259
- module$exports$Blockly$PHP.phpGenerator.math_modulo=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"DIVIDEND",module$exports$Blockly$PHP.phpGenerator.ORDER_MODULUS)||"0";a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"DIVISOR",module$exports$Blockly$PHP.phpGenerator.ORDER_MODULUS)||"0";return[b+" % "+a,module$exports$Blockly$PHP.phpGenerator.ORDER_MODULUS]};
260
- module$exports$Blockly$PHP.phpGenerator.math_constrain=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"0",c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"LOW",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"0";a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"HIGH",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"Infinity";return["min(max("+b+", "+c+"), "+a+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
261
- module$exports$Blockly$PHP.phpGenerator.math_random_int=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"FROM",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"0";a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"TO",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"0";return[module$exports$Blockly$PHP.phpGenerator.provideFunction_("math_random_int",`
262
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($a, $b) {
238
+ `);a=b.valueToCode(a,"LIST",Order$$module$build$src$generators$php.NONE)||"[]";a=c+"("+a+")";break;default:throw Error("Unknown operator: "+c);}return[a,Order$$module$build$src$generators$php.FUNCTION_CALL]};phpGenerator$$module$build$src$generators$php.forBlock.math_modulo=function(a,b){const c=b.valueToCode(a,"DIVIDEND",Order$$module$build$src$generators$php.MODULUS)||"0";a=b.valueToCode(a,"DIVISOR",Order$$module$build$src$generators$php.MODULUS)||"0";return[c+" % "+a,Order$$module$build$src$generators$php.MODULUS]};
239
+ phpGenerator$$module$build$src$generators$php.forBlock.math_constrain=function(a,b){const c=b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"0",d=b.valueToCode(a,"LOW",Order$$module$build$src$generators$php.NONE)||"0";a=b.valueToCode(a,"HIGH",Order$$module$build$src$generators$php.NONE)||"Infinity";return["min(max("+c+", "+d+"), "+a+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};
240
+ phpGenerator$$module$build$src$generators$php.forBlock.math_random_int=function(a,b){const c=b.valueToCode(a,"FROM",Order$$module$build$src$generators$php.NONE)||"0";a=b.valueToCode(a,"TO",Order$$module$build$src$generators$php.NONE)||"0";return[b.provideFunction_("math_random_int",`
241
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($a, $b) {
263
242
  if ($a > $b) {
264
243
  return rand($b, $a);
265
244
  }
266
245
  return rand($a, $b);
267
246
  }
268
- `)+"("+b+", "+a+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};module$exports$Blockly$PHP.phpGenerator.math_random_float=function(a){return["(float)rand()/(float)getrandmax()",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
269
- module$exports$Blockly$PHP.phpGenerator.math_atan2=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"X",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"0";return["atan2("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"Y",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"0")+", "+b+") / pi() * 180",module$exports$Blockly$PHP.phpGenerator.ORDER_DIVISION]};var module$exports$Blockly$PHP$procedures={},module$contents$Blockly$PHP$procedures_Variables=$.module$build$src$core$variables,module$contents$Blockly$PHP$procedures_NameType=$.NameType$$module$build$src$core$names;
270
- module$exports$Blockly$PHP.phpGenerator.procedures_defreturn=function(a){var b=[],c=a.workspace,d=$.module$build$src$core$variables.allUsedVarModels(c)||[];for(let m=0,n;n=d[m];m++){var e=n.name;-1===a.getVars().indexOf(e)&&b.push(module$exports$Blockly$PHP.phpGenerator.nameDB_.getName(e,$.NameType$$module$build$src$core$names.VARIABLE))}c=$.module$build$src$core$variables.allDeveloperVariables(c);for(d=0;d<c.length;d++)b.push(module$exports$Blockly$PHP.phpGenerator.nameDB_.getName(c[d],$.NameType$$module$build$src$core$names.DEVELOPER_VARIABLE));
271
- c=b.length?module$exports$Blockly$PHP.phpGenerator.INDENT+"global "+b.join(", ")+";\n":"";b=module$exports$Blockly$PHP.phpGenerator.nameDB_.getName(a.getFieldValue("NAME"),$.NameType$$module$build$src$core$names.PROCEDURE);d="";module$exports$Blockly$PHP.phpGenerator.STATEMENT_PREFIX&&(d+=module$exports$Blockly$PHP.phpGenerator.injectId(module$exports$Blockly$PHP.phpGenerator.STATEMENT_PREFIX,a));module$exports$Blockly$PHP.phpGenerator.STATEMENT_SUFFIX&&(d+=module$exports$Blockly$PHP.phpGenerator.injectId(module$exports$Blockly$PHP.phpGenerator.STATEMENT_SUFFIX,
272
- a));d&&(d=module$exports$Blockly$PHP.phpGenerator.prefixLines(d,module$exports$Blockly$PHP.phpGenerator.INDENT));e="";module$exports$Blockly$PHP.phpGenerator.INFINITE_LOOP_TRAP&&(e=module$exports$Blockly$PHP.phpGenerator.prefixLines(module$exports$Blockly$PHP.phpGenerator.injectId(module$exports$Blockly$PHP.phpGenerator.INFINITE_LOOP_TRAP,a),module$exports$Blockly$PHP.phpGenerator.INDENT));const f=module$exports$Blockly$PHP.phpGenerator.statementToCode(a,"STACK");let g=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,
273
- "RETURN",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"",h="";f&&g&&(h=d);g&&(g=module$exports$Blockly$PHP.phpGenerator.INDENT+"return "+g+";\n");const k=[],l=a.getVars();for(let m=0;m<l.length;m++)k[m]=module$exports$Blockly$PHP.phpGenerator.nameDB_.getName(l[m],$.NameType$$module$build$src$core$names.VARIABLE);c="function "+b+"("+k.join(", ")+") {\n"+c+d+e+f+h+g+"}";c=module$exports$Blockly$PHP.phpGenerator.scrub_(a,c);module$exports$Blockly$PHP.phpGenerator.definitions_["%"+b]=c;return null};
274
- module$exports$Blockly$PHP.phpGenerator.procedures_defnoreturn=module$exports$Blockly$PHP.phpGenerator.procedures_defreturn;
275
- module$exports$Blockly$PHP.phpGenerator.procedures_callreturn=function(a){const b=module$exports$Blockly$PHP.phpGenerator.nameDB_.getName(a.getFieldValue("NAME"),$.NameType$$module$build$src$core$names.PROCEDURE),c=[],d=a.getVars();for(let e=0;e<d.length;e++)c[e]=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"ARG"+e,module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"null";return[b+"("+c.join(", ")+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
276
- module$exports$Blockly$PHP.phpGenerator.procedures_callnoreturn=function(a){return module$exports$Blockly$PHP.phpGenerator.procedures_callreturn(a)[0]+";\n"};
277
- module$exports$Blockly$PHP.phpGenerator.procedures_ifreturn=function(a){let b="if ("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"CONDITION",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"false")+") {\n";module$exports$Blockly$PHP.phpGenerator.STATEMENT_SUFFIX&&(b+=module$exports$Blockly$PHP.phpGenerator.prefixLines(module$exports$Blockly$PHP.phpGenerator.injectId(module$exports$Blockly$PHP.phpGenerator.STATEMENT_SUFFIX,a),module$exports$Blockly$PHP.phpGenerator.INDENT));a.hasReturnValue_?
278
- (a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"null",b+=module$exports$Blockly$PHP.phpGenerator.INDENT+"return "+a+";\n"):b+=module$exports$Blockly$PHP.phpGenerator.INDENT+"return;\n";return b+"}\n"};var module$exports$Blockly$PHP$texts={},module$contents$Blockly$PHP$texts_NameType=$.NameType$$module$build$src$core$names;module$exports$Blockly$PHP.phpGenerator.text=function(a){return[module$exports$Blockly$PHP.phpGenerator.quote_(a.getFieldValue("TEXT")),module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC]};
279
- module$exports$Blockly$PHP.phpGenerator.text_multiline=function(a){a=module$exports$Blockly$PHP.phpGenerator.multiline_quote_(a.getFieldValue("TEXT"));const b=-1!==a.indexOf(".")?module$exports$Blockly$PHP.phpGenerator.ORDER_STRING_CONCAT:module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC;return[a,b]};
280
- module$exports$Blockly$PHP.phpGenerator.text_join=function(a){if(0===a.itemCount_)return["''",module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC];if(1===a.itemCount_)return[module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"ADD0",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE];if(2===a.itemCount_){var b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"ADD0",module$exports$Blockly$PHP.phpGenerator.ORDER_STRING_CONCAT)||"''";
281
- a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"ADD1",module$exports$Blockly$PHP.phpGenerator.ORDER_STRING_CONCAT)||"''";return[b+" . "+a,module$exports$Blockly$PHP.phpGenerator.ORDER_STRING_CONCAT]}b=Array(a.itemCount_);for(let c=0;c<a.itemCount_;c++)b[c]=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"ADD"+c,module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''";return["implode('', array("+b.join(",")+"))",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
282
- module$exports$Blockly$PHP.phpGenerator.text_append=function(a){const b=module$exports$Blockly$PHP.phpGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE);a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"TEXT",module$exports$Blockly$PHP.phpGenerator.ORDER_ASSIGNMENT)||"''";return b+" .= "+a+";\n"};module$exports$Blockly$PHP.phpGenerator.text_length=function(a){const b=module$exports$Blockly$PHP.phpGenerator.provideFunction_("length",`
283
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($value) {
247
+ `)+"("+c+", "+a+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};phpGenerator$$module$build$src$generators$php.forBlock.math_random_float=function(a,b){return["(float)rand()/(float)getrandmax()",Order$$module$build$src$generators$php.FUNCTION_CALL]};
248
+ phpGenerator$$module$build$src$generators$php.forBlock.math_atan2=function(a,b){const c=b.valueToCode(a,"X",Order$$module$build$src$generators$php.NONE)||"0";return["atan2("+(b.valueToCode(a,"Y",Order$$module$build$src$generators$php.NONE)||"0")+", "+c+") / pi() * 180",Order$$module$build$src$generators$php.DIVISION]};var module$build$src$generators$php$math={};phpGenerator$$module$build$src$generators$php.forBlock.procedures_defreturn=function(a,b){var c=[],d=a.workspace,e=$.allUsedVarModels$$module$build$src$core$variables(d)||[];for(let m=0,p;p=e[m];m++){var f=p.name;-1===a.getVars().indexOf(f)&&c.push(b.nameDB_.getName(f,$.NameType$$module$build$src$core$names.VARIABLE))}d=$.allDeveloperVariables$$module$build$src$core$variables(d);for(e=0;e<d.length;e++)c.push(b.nameDB_.getName(d[e],$.NameType$$module$build$src$core$names.DEVELOPER_VARIABLE));d=c.length?
249
+ b.INDENT+"global "+c.join(", ")+";\n":"";c=b.nameDB_.getName(a.getFieldValue("NAME"),$.NameType$$module$build$src$core$names.PROCEDURE);e="";b.STATEMENT_PREFIX&&(e+=b.injectId(b.STATEMENT_PREFIX,a));b.STATEMENT_SUFFIX&&(e+=b.injectId(b.STATEMENT_SUFFIX,a));e&&(e=b.prefixLines(e,b.INDENT));f="";b.INFINITE_LOOP_TRAP&&(f=b.prefixLines(b.injectId(b.INFINITE_LOOP_TRAP,a),b.INDENT));const g=b.statementToCode(a,"STACK");let h=b.valueToCode(a,"RETURN",Order$$module$build$src$generators$php.NONE)||"",k="";
250
+ g&&h&&(k=e);h&&(h=b.INDENT+"return "+h+";\n");const l=[],n=a.getVars();for(let m=0;m<n.length;m++)l[m]=b.nameDB_.getName(n[m],$.NameType$$module$build$src$core$names.VARIABLE);d="function "+c+"("+l.join(", ")+") {\n"+d+e+f+g+k+h+"}";d=b.scrub_(a,d);b.definitions_["%"+c]=d;return null};phpGenerator$$module$build$src$generators$php.forBlock.procedures_defnoreturn=phpGenerator$$module$build$src$generators$php.forBlock.procedures_defreturn;
251
+ phpGenerator$$module$build$src$generators$php.forBlock.procedures_callreturn=function(a,b){const c=b.nameDB_.getName(a.getFieldValue("NAME"),$.NameType$$module$build$src$core$names.PROCEDURE),d=[],e=a.getVars();for(let f=0;f<e.length;f++)d[f]=b.valueToCode(a,"ARG"+f,Order$$module$build$src$generators$php.NONE)||"null";return[c+"("+d.join(", ")+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};
252
+ phpGenerator$$module$build$src$generators$php.forBlock.procedures_callnoreturn=function(a,b){return b.forBlock.procedures_callreturn(a,b)[0]+";\n"};
253
+ phpGenerator$$module$build$src$generators$php.forBlock.procedures_ifreturn=function(a,b){let c="if ("+(b.valueToCode(a,"CONDITION",Order$$module$build$src$generators$php.NONE)||"false")+") {\n";b.STATEMENT_SUFFIX&&(c+=b.prefixLines(b.injectId(b.STATEMENT_SUFFIX,a),b.INDENT));a.hasReturnValue_?(a=b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"null",c+=b.INDENT+"return "+a+";\n"):c+=b.INDENT+"return;\n";return c+"}\n"};var module$build$src$generators$php$procedures={};phpGenerator$$module$build$src$generators$php.forBlock.text=function(a,b){return[b.quote_(a.getFieldValue("TEXT")),Order$$module$build$src$generators$php.ATOMIC]};phpGenerator$$module$build$src$generators$php.forBlock.text_multiline=function(a,b){a=b.multiline_quote_(a.getFieldValue("TEXT"));b=-1!==a.indexOf(".")?Order$$module$build$src$generators$php.STRING_CONCAT:Order$$module$build$src$generators$php.ATOMIC;return[a,b]};
254
+ phpGenerator$$module$build$src$generators$php.forBlock.text_join=function(a,b){if(0===a.itemCount_)return["''",Order$$module$build$src$generators$php.ATOMIC];if(1===a.itemCount_)return[b.valueToCode(a,"ADD0",Order$$module$build$src$generators$php.NONE)||"''",Order$$module$build$src$generators$php.NONE];if(2===a.itemCount_){var c=b.valueToCode(a,"ADD0",Order$$module$build$src$generators$php.STRING_CONCAT)||"''";a=b.valueToCode(a,"ADD1",Order$$module$build$src$generators$php.STRING_CONCAT)||"''";return[c+
255
+ " . "+a,Order$$module$build$src$generators$php.STRING_CONCAT]}c=Array(a.itemCount_);for(let d=0;d<a.itemCount_;d++)c[d]=b.valueToCode(a,"ADD"+d,Order$$module$build$src$generators$php.NONE)||"''";return["implode('', array("+c.join(",")+"))",Order$$module$build$src$generators$php.FUNCTION_CALL]};
256
+ phpGenerator$$module$build$src$generators$php.forBlock.text_append=function(a,b){const c=b.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE);a=b.valueToCode(a,"TEXT",Order$$module$build$src$generators$php.ASSIGNMENT)||"''";return c+" .= "+a+";\n"};phpGenerator$$module$build$src$generators$php.forBlock.text_length=function(a,b){const c=b.provideFunction_("length",`
257
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($value) {
284
258
  if (is_string($value)) {
285
259
  return strlen($value);
286
260
  }
287
261
  return count($value);
288
262
  }
289
- `);a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''";return[b+"("+a+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};module$exports$Blockly$PHP.phpGenerator.text_isEmpty=function(a){return["empty("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''")+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
290
- module$exports$Blockly$PHP.phpGenerator.text_indexOf=function(a){const b="FIRST"===a.getFieldValue("END")?"strpos":"strrpos",c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"FIND",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''",d=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''";let e=" -1",f="";a.workspace.options.oneBasedIndex&&(e=" 0",f=" + 1");return[module$exports$Blockly$PHP.phpGenerator.provideFunction_("FIRST"===
291
- a.getFieldValue("END")?"text_indexOf":"text_lastIndexOf",`
292
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($text, $search) {
293
- $pos = ${b}($text, $search);
294
- return $pos === false ? ${e} : $pos${f};
263
+ `);a=b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"''";return[c+"("+a+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};phpGenerator$$module$build$src$generators$php.forBlock.text_isEmpty=function(a,b){return["empty("+(b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"''")+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};
264
+ phpGenerator$$module$build$src$generators$php.forBlock.text_indexOf=function(a,b){const c="FIRST"===a.getFieldValue("END")?"strpos":"strrpos",d=b.valueToCode(a,"FIND",Order$$module$build$src$generators$php.NONE)||"''",e=b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"''";let f=" -1",g="";a.workspace.options.oneBasedIndex&&(f=" 0",g=" + 1");return[b.provideFunction_("FIRST"===a.getFieldValue("END")?"text_indexOf":"text_lastIndexOf",`
265
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($text, $search) {
266
+ $pos = ${c}($text, $search);
267
+ return $pos === false ? ${f} : $pos${g};
295
268
  }
296
- `)+"("+d+", "+c+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
297
- module$exports$Blockly$PHP.phpGenerator.text_charAt=function(a){const b=a.getFieldValue("WHERE")||"FROM_START",c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''";switch(b){case "FIRST":return["substr("+c+", 0, 1)",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL];case "LAST":return["substr("+c+", -1)",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL];case "FROM_START":return a=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,
298
- "AT"),["substr("+c+", "+a+", 1)",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL];case "FROM_END":return a=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,"AT",1,!0),["substr("+c+", "+a+", 1)",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL];case "RANDOM":return[module$exports$Blockly$PHP.phpGenerator.provideFunction_("text_random_letter",`
299
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($text) {
269
+ `)+"("+e+", "+d+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};
270
+ phpGenerator$$module$build$src$generators$php.forBlock.text_charAt=function(a,b){const c=a.getFieldValue("WHERE")||"FROM_START",d=b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.NONE)||"''";switch(c){case "FIRST":return["substr("+d+", 0, 1)",Order$$module$build$src$generators$php.FUNCTION_CALL];case "LAST":return["substr("+d+", -1)",Order$$module$build$src$generators$php.FUNCTION_CALL];case "FROM_START":return a=b.getAdjusted(a,"AT"),["substr("+d+", "+a+", 1)",Order$$module$build$src$generators$php.FUNCTION_CALL];
271
+ case "FROM_END":return a=b.getAdjusted(a,"AT",1,!0),["substr("+d+", "+a+", 1)",Order$$module$build$src$generators$php.FUNCTION_CALL];case "RANDOM":return[b.provideFunction_("text_random_letter",`
272
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($text) {
300
273
  return $text[rand(0, strlen($text) - 1)];
301
274
  }
302
- `)+"("+c+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]}throw Error("Unhandled option (text_charAt).");};
303
- module$exports$Blockly$PHP.phpGenerator.text_getSubstring=function(a){const b=a.getFieldValue("WHERE1"),c=a.getFieldValue("WHERE2"),d=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"STRING",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''";if("FIRST"===b&&"LAST"===c)return[d,module$exports$Blockly$PHP.phpGenerator.ORDER_NONE];const e=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,"AT1");a=module$exports$Blockly$PHP.phpGenerator.getAdjusted(a,"AT2");return[module$exports$Blockly$PHP.phpGenerator.provideFunction_("text_get_substring",
304
- `
305
- function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($text, $where1, $at1, $where2, $at2) {
275
+ `)+"("+d+")",Order$$module$build$src$generators$php.FUNCTION_CALL]}throw Error("Unhandled option (text_charAt).");};
276
+ phpGenerator$$module$build$src$generators$php.forBlock.text_getSubstring=function(a,b){const c=a.getFieldValue("WHERE1"),d=a.getFieldValue("WHERE2"),e=b.valueToCode(a,"STRING",Order$$module$build$src$generators$php.NONE)||"''";if("FIRST"===c&&"LAST"===d)return[e,Order$$module$build$src$generators$php.NONE];const f=b.getAdjusted(a,"AT1");a=b.getAdjusted(a,"AT2");return[b.provideFunction_("text_get_substring",`
277
+ function ${b.FUNCTION_NAME_PLACEHOLDER_}($text, $where1, $at1, $where2, $at2) {
306
278
  if ($where1 == 'FROM_END') {
307
279
  $at1 = strlen($text) - 1 - $at1;
308
280
  } else if ($where1 == 'FIRST') {
@@ -322,17 +294,15 @@ function ${module$exports$Blockly$PHP.phpGenerator.FUNCTION_NAME_PLACEHOLDER_}($
322
294
  }
323
295
  return substr($text, $at1, $length);
324
296
  }
325
- `)+"("+d+", '"+b+"', "+e+", '"+c+"', "+a+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
326
- module$exports$Blockly$PHP.phpGenerator.text_changeCase=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"TEXT",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''";let c;"UPPERCASE"===a.getFieldValue("CASE")?c="strtoupper("+b+")":"LOWERCASE"===a.getFieldValue("CASE")?c="strtolower("+b+")":"TITLECASE"===a.getFieldValue("CASE")&&(c="ucwords(strtolower("+b+"))");return[c,module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
327
- module$exports$Blockly$PHP.phpGenerator.text_trim=function(a){const b={LEFT:"ltrim",RIGHT:"rtrim",BOTH:"trim"}[a.getFieldValue("MODE")];a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"TEXT",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''";return[b+"("+a+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
328
- module$exports$Blockly$PHP.phpGenerator.text_print=function(a){return"print("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"TEXT",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''")+");\n"};
329
- module$exports$Blockly$PHP.phpGenerator.text_prompt_ext=function(a){let b="readline("+(a.getField("TEXT")?module$exports$Blockly$PHP.phpGenerator.quote_(a.getFieldValue("TEXT")):module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"TEXT",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''")+")";"NUMBER"===a.getFieldValue("TYPE")&&(b="floatval("+b+")");return[b,module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};module$exports$Blockly$PHP.phpGenerator.text_prompt=module$exports$Blockly$PHP.phpGenerator.text_prompt_ext;
330
- module$exports$Blockly$PHP.phpGenerator.text_count=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"TEXT",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''";a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"SUB",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''";return["strlen("+a+") === 0 ? strlen("+b+") + 1 : substr_count("+b+", "+a+")",module$exports$Blockly$PHP.phpGenerator.ORDER_CONDITIONAL]};
331
- module$exports$Blockly$PHP.phpGenerator.text_replace=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"TEXT",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''",c=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"FROM",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''";a=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"TO",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''";return["str_replace("+c+", "+a+", "+b+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};
332
- module$exports$Blockly$PHP.phpGenerator.text_reverse=function(a){return["strrev("+(module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"TEXT",module$exports$Blockly$PHP.phpGenerator.ORDER_NONE)||"''")+")",module$exports$Blockly$PHP.phpGenerator.ORDER_FUNCTION_CALL]};var module$exports$Blockly$PHP$variables={},module$contents$Blockly$PHP$variables_NameType=$.NameType$$module$build$src$core$names;module$exports$Blockly$PHP.phpGenerator.variables_get=function(a){return[module$exports$Blockly$PHP.phpGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE),module$exports$Blockly$PHP.phpGenerator.ORDER_ATOMIC]};
333
- module$exports$Blockly$PHP.phpGenerator.variables_set=function(a){const b=module$exports$Blockly$PHP.phpGenerator.valueToCode(a,"VALUE",module$exports$Blockly$PHP.phpGenerator.ORDER_ASSIGNMENT)||"0";return module$exports$Blockly$PHP.phpGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE)+" = "+b+";\n"};var module$exports$Blockly$PHP$variablesDynamic={};module$exports$Blockly$PHP.phpGenerator.variables_get_dynamic=module$exports$Blockly$PHP.phpGenerator.variables_get;module$exports$Blockly$PHP.phpGenerator.variables_set_dynamic=module$exports$Blockly$PHP.phpGenerator.variables_set;var module$exports$Blockly$PHP$all=module$exports$Blockly$PHP;
334
- module$exports$Blockly$PHP.__namespace__=$;
335
- return module$exports$Blockly$PHP;
297
+ `)+"("+e+", '"+c+"', "+f+", '"+d+"', "+a+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};phpGenerator$$module$build$src$generators$php.forBlock.text_changeCase=function(a,b){b=b.valueToCode(a,"TEXT",Order$$module$build$src$generators$php.NONE)||"''";let c;"UPPERCASE"===a.getFieldValue("CASE")?c="strtoupper("+b+")":"LOWERCASE"===a.getFieldValue("CASE")?c="strtolower("+b+")":"TITLECASE"===a.getFieldValue("CASE")&&(c="ucwords(strtolower("+b+"))");return[c,Order$$module$build$src$generators$php.FUNCTION_CALL]};
298
+ phpGenerator$$module$build$src$generators$php.forBlock.text_trim=function(a,b){const c={LEFT:"ltrim",RIGHT:"rtrim",BOTH:"trim"}[a.getFieldValue("MODE")];a=b.valueToCode(a,"TEXT",Order$$module$build$src$generators$php.NONE)||"''";return[c+"("+a+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};phpGenerator$$module$build$src$generators$php.forBlock.text_print=function(a,b){return"print("+(b.valueToCode(a,"TEXT",Order$$module$build$src$generators$php.NONE)||"''")+");\n"};
299
+ phpGenerator$$module$build$src$generators$php.forBlock.text_prompt_ext=function(a,b){b="readline("+(a.getField("TEXT")?b.quote_(a.getFieldValue("TEXT")):b.valueToCode(a,"TEXT",Order$$module$build$src$generators$php.NONE)||"''")+")";"NUMBER"===a.getFieldValue("TYPE")&&(b="floatval("+b+")");return[b,Order$$module$build$src$generators$php.FUNCTION_CALL]};phpGenerator$$module$build$src$generators$php.forBlock.text_prompt=phpGenerator$$module$build$src$generators$php.forBlock.text_prompt_ext;
300
+ phpGenerator$$module$build$src$generators$php.forBlock.text_count=function(a,b){const c=b.valueToCode(a,"TEXT",Order$$module$build$src$generators$php.NONE)||"''";a=b.valueToCode(a,"SUB",Order$$module$build$src$generators$php.NONE)||"''";return["strlen("+a+") === 0 ? strlen("+c+") + 1 : substr_count("+c+", "+a+")",Order$$module$build$src$generators$php.CONDITIONAL]};
301
+ phpGenerator$$module$build$src$generators$php.forBlock.text_replace=function(a,b){const c=b.valueToCode(a,"TEXT",Order$$module$build$src$generators$php.NONE)||"''",d=b.valueToCode(a,"FROM",Order$$module$build$src$generators$php.NONE)||"''";a=b.valueToCode(a,"TO",Order$$module$build$src$generators$php.NONE)||"''";return["str_replace("+d+", "+a+", "+c+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};
302
+ phpGenerator$$module$build$src$generators$php.forBlock.text_reverse=function(a,b){return["strrev("+(b.valueToCode(a,"TEXT",Order$$module$build$src$generators$php.NONE)||"''")+")",Order$$module$build$src$generators$php.FUNCTION_CALL]};var module$build$src$generators$php$text={};phpGenerator$$module$build$src$generators$php.forBlock.variables_get=function(a,b){return[b.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE),Order$$module$build$src$generators$php.ATOMIC]};
303
+ phpGenerator$$module$build$src$generators$php.forBlock.variables_set=function(a,b){const c=b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php.ASSIGNMENT)||"0";return b.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE)+" = "+c+";\n"};var module$build$src$generators$php$variables={};phpGenerator$$module$build$src$generators$php.forBlock.variables_get_dynamic=phpGenerator$$module$build$src$generators$php.forBlock.variables_get;phpGenerator$$module$build$src$generators$php.forBlock.variables_set_dynamic=phpGenerator$$module$build$src$generators$php.forBlock.variables_set;var module$build$src$generators$php$variables_dynamic={};var module$build$src$generators$php$all={};module$build$src$generators$php$all.Order=Order$$module$build$src$generators$php;module$build$src$generators$php$all.phpGenerator=phpGenerator$$module$build$src$generators$php;
304
+ module$build$src$generators$php$all.__namespace__=$;
305
+ return module$build$src$generators$php$all;
336
306
  }));
337
307
 
338
308