blockly 7.20211209.4 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/blockly.d.ts +18963 -18432
  2. package/blockly.min.js +5 -4
  3. package/blockly_compressed.js +4 -3
  4. package/blockly_compressed.js.map +1 -1
  5. package/blocks/blocks.js +47 -0
  6. package/blocks/colour.js +13 -3
  7. package/blocks/lists.js +22 -13
  8. package/blocks/logic.js +13 -3
  9. package/blocks/loops.js +24 -11
  10. package/blocks/math.js +12 -3
  11. package/blocks/procedures.js +45 -32
  12. package/blocks/text.js +22 -13
  13. package/blocks/variables.js +14 -3
  14. package/blocks/variables_dynamic.js +13 -3
  15. package/blocks_compressed.js +1 -1
  16. package/blocks_compressed.js.map +1 -1
  17. package/core/block.js +1869 -1814
  18. package/core/block_drag_surface.js +201 -200
  19. package/core/block_dragger.js +377 -373
  20. package/core/block_svg.js +1593 -1479
  21. package/core/blockly.js +8 -22
  22. package/core/blocks.js +9 -2
  23. package/core/browser_events.js +22 -5
  24. package/core/bubble.js +841 -797
  25. package/core/bubble_dragger.js +213 -206
  26. package/core/bump_objects.js +2 -2
  27. package/core/clipboard.js +9 -9
  28. package/core/comment.js +353 -332
  29. package/core/common.js +46 -17
  30. package/core/component_manager.js +181 -174
  31. package/core/config.js +87 -0
  32. package/core/connection.js +595 -584
  33. package/core/connection_checker.js +242 -244
  34. package/core/connection_db.js +235 -230
  35. package/core/contextmenu.js +9 -6
  36. package/core/contextmenu_items.js +1 -2
  37. package/core/contextmenu_registry.js +93 -89
  38. package/core/css.js +474 -474
  39. package/core/delete_area.js +45 -42
  40. package/core/drag_target.js +57 -56
  41. package/core/dropdowndiv.js +153 -163
  42. package/core/events/events.js +2 -2
  43. package/core/events/events_abstract.js +89 -77
  44. package/core/events/events_block_base.js +37 -36
  45. package/core/events/events_block_change.js +130 -124
  46. package/core/events/events_block_create.js +73 -71
  47. package/core/events/events_block_delete.js +84 -82
  48. package/core/events/events_block_drag.js +50 -49
  49. package/core/events/events_block_move.js +147 -140
  50. package/core/events/events_bubble_open.js +51 -50
  51. package/core/events/events_click.js +48 -44
  52. package/core/events/events_comment_base.js +72 -69
  53. package/core/events/events_comment_change.js +63 -61
  54. package/core/events/events_comment_create.js +44 -42
  55. package/core/events/events_comment_delete.js +42 -40
  56. package/core/events/events_comment_move.js +106 -104
  57. package/core/events/events_marker_move.js +65 -64
  58. package/core/events/events_selected.js +46 -45
  59. package/core/events/events_theme_change.js +36 -35
  60. package/core/events/events_toolbox_item_select.js +46 -45
  61. package/core/events/events_trashcan_open.js +37 -36
  62. package/core/events/events_ui.js +47 -46
  63. package/core/events/events_ui_base.js +30 -29
  64. package/core/events/events_var_base.js +37 -36
  65. package/core/events/events_var_create.js +50 -48
  66. package/core/events/events_var_delete.js +50 -48
  67. package/core/events/events_var_rename.js +51 -49
  68. package/core/events/events_viewport.js +66 -65
  69. package/core/events/utils.js +29 -14
  70. package/core/events/workspace_events.js +49 -55
  71. package/core/extensions.js +4 -3
  72. package/core/field.js +1061 -997
  73. package/core/field_angle.js +462 -442
  74. package/core/field_checkbox.js +194 -182
  75. package/core/field_colour.js +519 -505
  76. package/core/field_dropdown.js +617 -598
  77. package/core/field_image.js +229 -220
  78. package/core/field_label.js +102 -91
  79. package/core/field_label_serializable.js +42 -41
  80. package/core/field_multilineinput.js +372 -358
  81. package/core/field_number.js +272 -253
  82. package/core/field_textinput.js +499 -467
  83. package/core/field_variable.js +458 -420
  84. package/core/flyout_base.js +1005 -952
  85. package/core/flyout_button.js +277 -260
  86. package/core/flyout_horizontal.js +304 -302
  87. package/core/flyout_metrics_manager.js +64 -64
  88. package/core/flyout_vertical.js +306 -300
  89. package/core/generator.js +459 -446
  90. package/core/gesture.js +829 -813
  91. package/core/grid.js +166 -163
  92. package/core/icon.js +168 -159
  93. package/core/inject.js +7 -5
  94. package/core/input.js +257 -248
  95. package/core/insertion_marker_manager.js +655 -624
  96. package/core/internal_constants.js +0 -129
  97. package/core/keyboard_nav/ast_node.js +605 -596
  98. package/core/keyboard_nav/basic_cursor.js +166 -165
  99. package/core/keyboard_nav/cursor.js +99 -97
  100. package/core/keyboard_nav/marker.js +83 -79
  101. package/core/keyboard_nav/tab_navigate_cursor.js +18 -23
  102. package/core/marker_manager.js +153 -141
  103. package/core/menu.js +377 -372
  104. package/core/menuitem.js +223 -217
  105. package/core/metrics_manager.js +403 -390
  106. package/core/mutator.js +468 -437
  107. package/core/names.js +229 -188
  108. package/core/options.js +290 -284
  109. package/core/procedures.js +29 -17
  110. package/core/registry.js +19 -16
  111. package/core/rendered_connection.js +482 -463
  112. package/core/renderers/common/block_rendering.js +9 -3
  113. package/core/renderers/common/constants.js +1119 -1112
  114. package/core/renderers/common/debug.js +14 -0
  115. package/core/renderers/common/debugger.js +338 -316
  116. package/core/renderers/common/drawer.js +380 -370
  117. package/core/renderers/common/i_path_object.js +2 -2
  118. package/core/renderers/common/info.js +626 -618
  119. package/core/renderers/common/marker_svg.js +579 -541
  120. package/core/renderers/common/path_object.js +203 -200
  121. package/core/renderers/common/renderer.js +220 -218
  122. package/core/renderers/geras/constants.js +36 -36
  123. package/core/renderers/geras/drawer.js +155 -147
  124. package/core/renderers/geras/highlight_constants.js +244 -238
  125. package/core/renderers/geras/highlighter.js +231 -179
  126. package/core/renderers/geras/info.js +392 -369
  127. package/core/renderers/geras/measurables/inline_input.js +25 -19
  128. package/core/renderers/geras/measurables/statement_input.js +23 -17
  129. package/core/renderers/geras/path_object.js +106 -121
  130. package/core/renderers/geras/renderer.js +96 -98
  131. package/core/renderers/measurables/base.js +30 -18
  132. package/core/renderers/measurables/bottom_row.js +83 -80
  133. package/core/renderers/measurables/connection.js +22 -15
  134. package/core/renderers/measurables/external_value_input.js +35 -22
  135. package/core/renderers/measurables/field.js +35 -20
  136. package/core/renderers/measurables/hat.js +18 -13
  137. package/core/renderers/measurables/icon.js +24 -17
  138. package/core/renderers/measurables/in_row_spacer.js +15 -13
  139. package/core/renderers/measurables/inline_input.js +43 -33
  140. package/core/renderers/measurables/input_connection.js +41 -28
  141. package/core/renderers/measurables/input_row.js +50 -44
  142. package/core/renderers/measurables/jagged_edge.js +14 -12
  143. package/core/renderers/measurables/next_connection.js +16 -14
  144. package/core/renderers/measurables/output_connection.js +26 -20
  145. package/core/renderers/measurables/previous_connection.js +16 -15
  146. package/core/renderers/measurables/round_corner.js +20 -18
  147. package/core/renderers/measurables/row.js +184 -168
  148. package/core/renderers/measurables/spacer_row.js +38 -23
  149. package/core/renderers/measurables/square_corner.js +18 -16
  150. package/core/renderers/measurables/statement_input.js +23 -20
  151. package/core/renderers/measurables/top_row.js +88 -85
  152. package/core/renderers/minimalist/constants.js +8 -7
  153. package/core/renderers/minimalist/drawer.js +11 -10
  154. package/core/renderers/minimalist/info.js +18 -18
  155. package/core/renderers/minimalist/renderer.js +40 -39
  156. package/core/renderers/thrasos/info.js +258 -248
  157. package/core/renderers/thrasos/renderer.js +20 -20
  158. package/core/renderers/zelos/constants.js +898 -873
  159. package/core/renderers/zelos/drawer.js +186 -169
  160. package/core/renderers/zelos/info.js +502 -479
  161. package/core/renderers/zelos/marker_svg.js +129 -115
  162. package/core/renderers/zelos/measurables/bottom_row.js +31 -30
  163. package/core/renderers/zelos/measurables/inputs.js +22 -21
  164. package/core/renderers/zelos/measurables/row_elements.js +14 -13
  165. package/core/renderers/zelos/measurables/top_row.js +34 -33
  166. package/core/renderers/zelos/path_object.js +181 -180
  167. package/core/renderers/zelos/renderer.js +91 -92
  168. package/core/scrollbar.js +759 -713
  169. package/core/scrollbar_pair.js +250 -245
  170. package/core/serialization/blocks.js +26 -10
  171. package/core/serialization/workspaces.js +3 -2
  172. package/core/shortcut_registry.js +286 -277
  173. package/core/sprites.js +31 -0
  174. package/core/theme.js +135 -141
  175. package/core/theme_manager.js +147 -143
  176. package/core/toolbox/category.js +602 -576
  177. package/core/toolbox/collapsible_category.js +226 -227
  178. package/core/toolbox/separator.js +70 -61
  179. package/core/toolbox/toolbox.js +934 -927
  180. package/core/toolbox/toolbox_item.js +115 -99
  181. package/core/tooltip.js +108 -35
  182. package/core/touch.js +8 -3
  183. package/core/touch_gesture.js +254 -251
  184. package/core/trashcan.js +606 -595
  185. package/core/utils/coordinate.js +97 -95
  186. package/core/utils/dom.js +2 -2
  187. package/core/utils/global.js +2 -0
  188. package/core/utils/rect.js +41 -37
  189. package/core/utils/sentinel.js +25 -0
  190. package/core/utils/size.js +30 -27
  191. package/core/utils/svg.js +18 -16
  192. package/core/variable_map.js +325 -341
  193. package/core/variable_model.js +55 -54
  194. package/core/variables.js +9 -2
  195. package/core/variables_dynamic.js +3 -1
  196. package/core/warning.js +126 -120
  197. package/core/widgetdiv.js +4 -4
  198. package/core/workspace.js +685 -664
  199. package/core/workspace_audio.js +124 -118
  200. package/core/workspace_comment.js +308 -298
  201. package/core/workspace_comment_svg.js +1029 -951
  202. package/core/workspace_drag_surface_svg.js +147 -140
  203. package/core/workspace_dragger.js +70 -71
  204. package/core/workspace_svg.js +2322 -2297
  205. package/core/xml.js +30 -20
  206. package/core/zoom_controls.js +431 -439
  207. package/generators/dart/colour.js +56 -64
  208. package/generators/dart/lists.js +61 -50
  209. package/generators/dart/math.js +160 -148
  210. package/generators/dart/text.js +83 -61
  211. package/generators/javascript/colour.js +37 -34
  212. package/generators/javascript/lists.js +50 -43
  213. package/generators/javascript/math.js +123 -139
  214. package/generators/javascript/text.js +67 -81
  215. package/generators/lua/colour.js +25 -23
  216. package/generators/lua/lists.js +97 -69
  217. package/generators/lua/logic.js +1 -2
  218. package/generators/lua/math.js +182 -144
  219. package/generators/lua/text.js +116 -99
  220. package/generators/php/colour.js +38 -32
  221. package/generators/php/lists.js +109 -89
  222. package/generators/php/math.js +90 -81
  223. package/generators/php/text.js +63 -61
  224. package/generators/python/colour.js +18 -18
  225. package/generators/python/lists.js +38 -30
  226. package/generators/python/loops.js +12 -8
  227. package/generators/python/math.js +104 -106
  228. package/generators/python/text.js +34 -30
  229. package/msg/smn.js +436 -0
  230. package/package.json +7 -6
  231. package/blocks/all.js +0 -23
package/blocks/text.js CHANGED
@@ -10,7 +10,7 @@
10
10
  */
11
11
  'use strict';
12
12
 
13
- goog.module('Blockly.blocks.texts');
13
+ goog.module('Blockly.libraryBlocks.texts');
14
14
 
15
15
  const Extensions = goog.require('Blockly.Extensions');
16
16
  const {Msg} = goog.require('Blockly.Msg');
@@ -19,7 +19,8 @@ const xmlUtils = goog.require('Blockly.utils.xml');
19
19
  const {Align} = goog.require('Blockly.Input');
20
20
  /* eslint-disable-next-line no-unused-vars */
21
21
  const {Block} = goog.requireType('Blockly.Block');
22
- const {Blocks} = goog.require('Blockly.blocks');
22
+ /* eslint-disable-next-line no-unused-vars */
23
+ const {BlockDefinition} = goog.requireType('Blockly.blocks');
23
24
  const {ConnectionType} = goog.require('Blockly.ConnectionType');
24
25
  const {FieldDropdown} = goog.require('Blockly.FieldDropdown');
25
26
  const {FieldImage} = goog.require('Blockly.FieldImage');
@@ -27,14 +28,18 @@ const {FieldTextInput} = goog.require('Blockly.FieldTextInput');
27
28
  const {Mutator} = goog.require('Blockly.Mutator');
28
29
  /* eslint-disable-next-line no-unused-vars */
29
30
  const {Workspace} = goog.requireType('Blockly.Workspace');
30
- const {defineBlocksWithJsonArray} = goog.require('Blockly.common');
31
+ const {createBlockDefinitionsFromJsonArray, defineBlocks} = goog.require('Blockly.common');
31
32
  /** @suppress {extraRequire} */
32
33
  goog.require('Blockly.FieldMultilineInput');
33
34
  /** @suppress {extraRequire} */
34
35
  goog.require('Blockly.FieldVariable');
35
36
 
36
37
 
37
- defineBlocksWithJsonArray([
38
+ /**
39
+ * A dictionary of the block definitions provided by this module.
40
+ * @type {!Object<string, !BlockDefinition>}
41
+ */
42
+ const blocks = createBlockDefinitionsFromJsonArray([
38
43
  // Block for text value
39
44
  {
40
45
  'type': 'text',
@@ -238,8 +243,9 @@ defineBlocksWithJsonArray([
238
243
  'mutator': 'text_charAt_mutator',
239
244
  },
240
245
  ]);
246
+ exports.blocks = blocks;
241
247
 
242
- Blocks['text_getSubstring'] = {
248
+ blocks['text_getSubstring'] = {
243
249
  /**
244
250
  * Block for getting substring.
245
251
  * @this {Block}
@@ -363,7 +369,7 @@ Blocks['text_getSubstring'] = {
363
369
  },
364
370
  };
365
371
 
366
- Blocks['text_changeCase'] = {
372
+ blocks['text_changeCase'] = {
367
373
  /**
368
374
  * Block for changing capitalization.
369
375
  * @this {Block}
@@ -383,7 +389,7 @@ Blocks['text_changeCase'] = {
383
389
  },
384
390
  };
385
391
 
386
- Blocks['text_trim'] = {
392
+ blocks['text_trim'] = {
387
393
  /**
388
394
  * Block for trimming spaces.
389
395
  * @this {Block}
@@ -403,7 +409,7 @@ Blocks['text_trim'] = {
403
409
  },
404
410
  };
405
411
 
406
- Blocks['text_print'] = {
412
+ blocks['text_print'] = {
407
413
  /**
408
414
  * Block for print statement.
409
415
  * @this {Block}
@@ -463,7 +469,7 @@ const TEXT_PROMPT_COMMON = {
463
469
  },
464
470
  };
465
471
 
466
- Blocks['text_prompt_ext'] = {
472
+ blocks['text_prompt_ext'] = {
467
473
  ...TEXT_PROMPT_COMMON,
468
474
  /**
469
475
  * Block for prompt function (external message).
@@ -496,7 +502,7 @@ Blocks['text_prompt_ext'] = {
496
502
  // XML hooks are kept for backwards compatibility.
497
503
  };
498
504
 
499
- Blocks['text_prompt'] = {
505
+ blocks['text_prompt'] = {
500
506
  ...TEXT_PROMPT_COMMON,
501
507
  /**
502
508
  * Block for prompt function (internal message).
@@ -531,7 +537,7 @@ Blocks['text_prompt'] = {
531
537
  },
532
538
  };
533
539
 
534
- Blocks['text_count'] = {
540
+ blocks['text_count'] = {
535
541
  /**
536
542
  * Block for counting how many times one string appears within another string.
537
543
  * @this {Block}
@@ -560,7 +566,7 @@ Blocks['text_count'] = {
560
566
  },
561
567
  };
562
568
 
563
- Blocks['text_replace'] = {
569
+ blocks['text_replace'] = {
564
570
  /**
565
571
  * Block for replacing one string with another in the text.
566
572
  * @this {Block}
@@ -594,7 +600,7 @@ Blocks['text_replace'] = {
594
600
  },
595
601
  };
596
602
 
597
- Blocks['text_reverse'] = {
603
+ blocks['text_reverse'] = {
598
604
  /**
599
605
  * Block for reversing a string.
600
606
  * @this {Block}
@@ -981,3 +987,6 @@ Extensions.registerMutator(
981
987
 
982
988
  Extensions.registerMutator(
983
989
  'text_charAt_mutator', TEXT_CHARAT_MUTATOR_MIXIN, TEXT_CHARAT_EXTENSION);
990
+
991
+ // Register provided blocks.
992
+ defineBlocks(blocks);
@@ -10,7 +10,7 @@
10
10
  */
11
11
  'use strict';
12
12
 
13
- goog.module('Blockly.blocks.variables');
13
+ goog.module('Blockly.libraryBlocks.variables');
14
14
 
15
15
  const ContextMenu = goog.require('Blockly.ContextMenu');
16
16
  const Extensions = goog.require('Blockly.Extensions');
@@ -18,15 +18,21 @@ const Variables = goog.require('Blockly.Variables');
18
18
  const xmlUtils = goog.require('Blockly.utils.xml');
19
19
  /* eslint-disable-next-line no-unused-vars */
20
20
  const {Block} = goog.requireType('Blockly.Block');
21
+ /* eslint-disable-next-line no-unused-vars */
22
+ const {BlockDefinition} = goog.requireType('Blockly.blocks');
21
23
  const {Msg} = goog.require('Blockly.Msg');
22
- const {defineBlocksWithJsonArray} = goog.require('Blockly.common');
24
+ const {createBlockDefinitionsFromJsonArray, defineBlocks} = goog.require('Blockly.common');
23
25
  /** @suppress {extraRequire} */
24
26
  goog.require('Blockly.FieldLabel');
25
27
  /** @suppress {extraRequire} */
26
28
  goog.require('Blockly.FieldVariable');
27
29
 
28
30
 
29
- defineBlocksWithJsonArray([
31
+ /**
32
+ * A dictionary of the block definitions provided by this module.
33
+ * @type {!Object<string, !BlockDefinition>}
34
+ */
35
+ const blocks = createBlockDefinitionsFromJsonArray([
30
36
  // Block for variable getter.
31
37
  {
32
38
  'type': 'variables_get',
@@ -67,6 +73,8 @@ defineBlocksWithJsonArray([
67
73
  'extensions': ['contextMenu_variableSetterGetter'],
68
74
  },
69
75
  ]);
76
+ exports.blocks = blocks;
77
+
70
78
 
71
79
  /**
72
80
  * Mixin to add context menu items to create getter/setter blocks for this
@@ -161,3 +169,6 @@ const deleteOptionCallbackFactory = function(block) {
161
169
  Extensions.registerMixin(
162
170
  'contextMenu_variableSetterGetter',
163
171
  CUSTOM_CONTEXT_MENU_VARIABLE_GETTER_SETTER_MIXIN);
172
+
173
+ // Register provided blocks.
174
+ defineBlocks(blocks);
@@ -10,7 +10,7 @@
10
10
  */
11
11
  'use strict';
12
12
 
13
- goog.module('Blockly.blocks.variablesDynamic');
13
+ goog.module('Blockly.libraryBlocks.variablesDynamic');
14
14
 
15
15
  /* eslint-disable-next-line no-unused-vars */
16
16
  const AbstractEvent = goog.requireType('Blockly.Events.Abstract');
@@ -20,15 +20,21 @@ const Variables = goog.require('Blockly.Variables');
20
20
  const xml = goog.require('Blockly.utils.xml');
21
21
  /* eslint-disable-next-line no-unused-vars */
22
22
  const {Block} = goog.requireType('Blockly.Block');
23
+ /* eslint-disable-next-line no-unused-vars */
24
+ const {BlockDefinition} = goog.requireType('Blockly.blocks');
23
25
  const {Msg} = goog.require('Blockly.Msg');
24
- const {defineBlocksWithJsonArray} = goog.require('Blockly.common');
26
+ const {createBlockDefinitionsFromJsonArray, defineBlocks} = goog.require('Blockly.common');
25
27
  /** @suppress {extraRequire} */
26
28
  goog.require('Blockly.FieldLabel');
27
29
  /** @suppress {extraRequire} */
28
30
  goog.require('Blockly.FieldVariable');
29
31
 
30
32
 
31
- defineBlocksWithJsonArray([
33
+ /**
34
+ * A dictionary of the block definitions provided by this module.
35
+ * @type {!Object<string, !BlockDefinition>}
36
+ */
37
+ const blocks = createBlockDefinitionsFromJsonArray([
32
38
  // Block for variable getter.
33
39
  {
34
40
  'type': 'variables_get_dynamic',
@@ -67,6 +73,7 @@ defineBlocksWithJsonArray([
67
73
  'extensions': ['contextMenu_variableDynamicSetterGetter'],
68
74
  },
69
75
  ]);
76
+ exports.blocks = blocks;
70
77
 
71
78
  /**
72
79
  * Mixin to add context menu items to create getter/setter blocks for this
@@ -178,3 +185,6 @@ const deleteOptionCallbackFactory = function(block) {
178
185
  Extensions.registerMixin(
179
186
  'contextMenu_variableDynamicSetterGetter',
180
187
  CUSTOM_CONTEXT_MENU_VARIABLE_GETTER_SETTER_MIXIN);
188
+
189
+ // Register provided blocks.
190
+ defineBlocks(blocks);
@@ -86,7 +86,7 @@ this.setTooltip($.module$exports$Blockly$Msg.Msg.PROCEDURES_MUTATORARG_TOOLTIP);
86
86
  this.getSourceBlock().id){var g=d[f].getFieldValue("NAME");if(g&&g.toLowerCase()===e)return null}if(b.isInFlyout)return a;(b=c.getVariable(a,""))&&b.name!==a&&c.renameVariableById(b.getId(),a);b||(b=c.createVariable(a,""))&&this.createdVariables_&&this.createdVariables_.push(b);return a},deleteIntermediateVars_:function(a){var b=$.module$exports$Blockly$Mutator.Mutator.findParentWs(this.getSourceBlock().workspace);if(b)for(var c=0;c<this.createdVariables_.length;c++){var d=this.createdVariables_[c];
87
87
  d.name!==a&&b.deleteVariableById(d.getId())}}};
88
88
  var module$contents$Blockly$blocks$procedures_PROCEDURE_CALL_COMMON={getProcedureCall:function(){return this.getFieldValue("NAME")},renameProcedure:function(a,b){$.module$exports$Blockly$Names.Names.equals(a,this.getProcedureCall())&&(this.setFieldValue(b,"NAME"),this.setTooltip((this.outputConnection?$.module$exports$Blockly$Msg.Msg.PROCEDURES_CALLRETURN_TOOLTIP:$.module$exports$Blockly$Msg.Msg.PROCEDURES_CALLNORETURN_TOOLTIP).replace("%1",b)))},setProcedureParameters_:function(a,b){var c=(0,$.module$exports$Blockly$Procedures.getDefinition)(this.getProcedureCall(),
89
- this.workspace),d=c&&c.mutator&&c.mutator.isVisible();d||(this.quarkConnections_={},this.quarkIds_=null);if(b)if(a.join("\n")===this.arguments_.join("\n"))this.quarkIds_=b;else{if(b.length!==a.length)throw RangeError("paramNames and paramIds must be the same length.");this.setCollapsed(!1);this.quarkIds_||(this.quarkConnections_={},this.quarkIds_=[]);c=this.rendered;this.rendered=!1;for(var e=0;e<this.arguments_.length;e++){var f=this.getInput("ARG"+e);f&&(f=f.connection.targetConnection,this.quarkConnections_[this.quarkIds_[e]]=
89
+ this.workspace),d=c&&c.mutator&&c.mutator.isVisible();d?this.setCollapsed(!1):(this.quarkConnections_={},this.quarkIds_=null);if(a.join("\n")===this.arguments_.join("\n"))this.quarkIds_=b;else{if(b.length!==a.length)throw RangeError("paramNames and paramIds must be the same length.");this.quarkIds_||(this.quarkConnections_={},this.quarkIds_=[]);c=this.rendered;this.rendered=!1;for(var e=0;e<this.arguments_.length;e++){var f=this.getInput("ARG"+e);f&&(f=f.connection.targetConnection,this.quarkConnections_[this.quarkIds_[e]]=
90
90
  f,d&&f&&-1===b.indexOf(this.quarkIds_[e])&&(f.disconnect(),f.getSourceBlock().bumpNeighbours()))}this.arguments_=[].concat(a);this.argumentVarModels_=[];for(a=0;a<this.arguments_.length;a++)d=(0,$.module$exports$Blockly$Variables.getOrCreateVariablePackage)(this.workspace,null,this.arguments_[a],""),this.argumentVarModels_.push(d);this.updateShape_();if(this.quarkIds_=b)for(b=0;b<this.arguments_.length;b++)a=this.quarkIds_[b],a in this.quarkConnections_&&($.module$exports$Blockly$Mutator.Mutator.reconnect(this.quarkConnections_[a],
91
91
  this,"ARG"+b)||delete this.quarkConnections_[a]);(this.rendered=c)&&this.render()}},updateShape_:function(){for(var a=0;a<this.arguments_.length;a++){var b=this.getField("ARGNAME"+a);if(b){(0,$.module$exports$Blockly$Events.disable)();try{b.setValue(this.arguments_[a])}finally{(0,$.module$exports$Blockly$Events.enable)()}}else b=new $.module$exports$Blockly$FieldLabel.FieldLabel(this.arguments_[a]),this.appendValueInput("ARG"+a).setAlign($.module$exports$Blockly$Input.Align.RIGHT).appendField(b,"ARGNAME"+
92
92
  a).init()}for(a=this.arguments_.length;this.getInput("ARG"+a);a++)this.removeInput("ARG"+a);if(a=this.getInput("TOPROW"))this.arguments_.length?this.getField("WITH")||(a.appendField($.module$exports$Blockly$Msg.Msg.PROCEDURES_CALL_BEFORE_PARAMS,"WITH"),a.init()):this.getField("WITH")&&a.removeField("WITH")},mutationToDom:function(){var a=(0,$.module$exports$Blockly$utils$xml.createElement)("mutation");a.setAttribute("name",this.getProcedureCall());for(var b=0;b<this.arguments_.length;b++){var c=(0,$.module$exports$Blockly$utils$xml.createElement)("arg");