blockly 8.0.5 → 9.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 (736) hide show
  1. package/blockly.min.js +2002 -2269
  2. package/blockly_compressed.js +1499 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks/blocks.js +3 -2
  5. package/blocks/colour.js +3 -1
  6. package/blocks/lists.js +94 -22
  7. package/blocks/logic.js +14 -6
  8. package/blocks/loops.js +5 -3
  9. package/blocks/math.js +3 -1
  10. package/blocks/procedures.js +3 -1
  11. package/blocks/text.js +14 -6
  12. package/blocks/variables.js +3 -1
  13. package/blocks/variables_dynamic.js +3 -1
  14. package/blocks.d.ts +0 -2
  15. package/blocks_compressed.js +189 -171
  16. package/blocks_compressed.js.map +1 -1
  17. package/closure/goog/base.d.ts +1 -0
  18. package/closure/goog/base_minimal.d.ts +18 -0
  19. package/closure/goog/goog.d.ts +25 -0
  20. package/core/any_aliases.d.ts +1 -0
  21. package/core/any_aliases.ts +1 -0
  22. package/core/block.d.ts +779 -0
  23. package/core/{block.js → block.ts} +610 -719
  24. package/core/block_animations.d.ts +33 -0
  25. package/core/{block_animations.js → block_animations.ts} +75 -79
  26. package/core/block_drag_surface.d.ts +111 -0
  27. package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
  28. package/core/block_dragger.d.ts +143 -0
  29. package/core/{block_dragger.js → block_dragger.ts} +139 -176
  30. package/core/block_svg.d.ts +588 -0
  31. package/core/{block_svg.js → block_svg.ts} +494 -630
  32. package/core/blockly.d.ts +562 -0
  33. package/core/blockly.js +1 -1
  34. package/core/blockly.ts +749 -0
  35. package/core/blockly_options.d.ts +69 -0
  36. package/core/blockly_options.ts +81 -0
  37. package/core/blocks.d.ts +17 -0
  38. package/core/{blocks.js → blocks.ts} +4 -8
  39. package/core/browser_events.d.ts +85 -0
  40. package/core/{browser_events.js → browser_events.ts} +98 -93
  41. package/core/bubble.d.ts +279 -0
  42. package/core/{bubble.js → bubble.ts} +277 -370
  43. package/core/bubble_dragger.d.ts +73 -0
  44. package/core/bubble_dragger.ts +229 -0
  45. package/core/bump_objects.d.ts +34 -0
  46. package/core/{bump_objects.js → bump_objects.ts} +54 -52
  47. package/core/clipboard.d.ts +42 -0
  48. package/core/clipboard.ts +91 -0
  49. package/core/comment.d.ts +113 -0
  50. package/core/{comment.js → comment.ts} +135 -185
  51. package/core/common.d.ts +129 -0
  52. package/core/{common.js → common.ts} +105 -82
  53. package/core/component_manager.d.ts +91 -0
  54. package/core/component_manager.ts +211 -0
  55. package/core/config.d.ts +23 -0
  56. package/core/{config.js → config.ts} +12 -19
  57. package/core/connection.d.ts +232 -0
  58. package/core/{connection.js → connection.ts} +187 -237
  59. package/core/connection_checker.d.ts +78 -0
  60. package/core/{connection_checker.js → connection_checker.ts} +66 -77
  61. package/core/connection_db.d.ts +91 -0
  62. package/core/{connection_db.js → connection_db.ts} +62 -87
  63. package/core/connection_type.d.ts +15 -0
  64. package/core/{connection_type.js → connection_type.ts} +8 -12
  65. package/core/constants.d.ts +15 -0
  66. package/core/{constants.js → constants.ts} +4 -8
  67. package/core/contextmenu.d.ts +80 -0
  68. package/core/{contextmenu.js → contextmenu.ts} +118 -153
  69. package/core/contextmenu_items.d.ts +77 -0
  70. package/core/contextmenu_items.ts +576 -0
  71. package/core/contextmenu_registry.d.ts +105 -0
  72. package/core/contextmenu_registry.ts +179 -0
  73. package/core/css.d.ts +24 -0
  74. package/core/{css.js → css.ts} +16 -24
  75. package/core/delete_area.d.ts +47 -0
  76. package/core/delete_area.ts +82 -0
  77. package/core/dialog.d.ts +61 -0
  78. package/core/dialog.ts +127 -0
  79. package/core/drag_target.d.ts +63 -0
  80. package/core/drag_target.ts +94 -0
  81. package/core/dropdowndiv.d.ts +155 -0
  82. package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
  83. package/core/events/events.d.ts +102 -0
  84. package/core/events/events.ts +123 -0
  85. package/core/events/events_abstract.d.ts +51 -0
  86. package/core/events/events_abstract.ts +112 -0
  87. package/core/events/events_block_base.d.ts +31 -0
  88. package/core/events/events_block_base.ts +65 -0
  89. package/core/events/events_block_change.d.ts +55 -0
  90. package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
  91. package/core/events/events_block_create.d.ts +35 -0
  92. package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
  93. package/core/events/events_block_delete.d.ts +36 -0
  94. package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
  95. package/core/events/events_block_drag.d.ts +36 -0
  96. package/core/events/events_block_drag.ts +82 -0
  97. package/core/events/events_block_move.d.ts +51 -0
  98. package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
  99. package/core/events/events_bubble_open.d.ts +35 -0
  100. package/core/events/events_bubble_open.ts +82 -0
  101. package/core/events/events_click.d.ts +36 -0
  102. package/core/events/{events_click.js → events_click.ts} +27 -30
  103. package/core/events/events_comment_base.d.ts +39 -0
  104. package/core/events/events_comment_base.ts +107 -0
  105. package/core/events/events_comment_change.d.ts +43 -0
  106. package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
  107. package/core/events/events_comment_create.d.ts +35 -0
  108. package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
  109. package/core/events/events_comment_delete.d.ts +35 -0
  110. package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
  111. package/core/events/events_comment_move.d.ts +55 -0
  112. package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
  113. package/core/events/events_marker_move.d.ts +40 -0
  114. package/core/events/events_marker_move.ts +99 -0
  115. package/core/events/events_selected.d.ts +34 -0
  116. package/core/events/events_selected.ts +78 -0
  117. package/core/events/events_theme_change.d.ts +30 -0
  118. package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
  119. package/core/events/events_toolbox_item_select.d.ts +34 -0
  120. package/core/events/events_toolbox_item_select.ts +79 -0
  121. package/core/events/events_trashcan_open.d.ts +31 -0
  122. package/core/events/events_trashcan_open.ts +68 -0
  123. package/core/events/events_ui.d.ts +37 -0
  124. package/core/events/{events_ui.js → events_ui.ts} +27 -26
  125. package/core/events/events_ui_base.d.ts +26 -0
  126. package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
  127. package/core/events/events_var_base.d.ts +31 -0
  128. package/core/events/events_var_base.ts +65 -0
  129. package/core/events/events_var_create.d.ts +35 -0
  130. package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
  131. package/core/events/events_var_delete.d.ts +35 -0
  132. package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
  133. package/core/events/events_var_rename.d.ts +36 -0
  134. package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
  135. package/core/events/events_viewport.d.ts +39 -0
  136. package/core/events/events_viewport.ts +100 -0
  137. package/core/events/utils.d.ts +272 -0
  138. package/core/events/{utils.js → utils.ts} +148 -219
  139. package/core/events/workspace_events.d.ts +36 -0
  140. package/core/events/workspace_events.ts +86 -0
  141. package/core/extensions.d.ts +107 -0
  142. package/core/{extensions.js → extensions.ts} +153 -172
  143. package/core/field.d.ts +534 -0
  144. package/core/{field.js → field.ts} +413 -489
  145. package/core/field_angle.d.ts +176 -0
  146. package/core/field_angle.ts +563 -0
  147. package/core/field_checkbox.d.ts +124 -0
  148. package/core/field_checkbox.ts +243 -0
  149. package/core/field_colour.d.ts +200 -0
  150. package/core/field_colour.ts +632 -0
  151. package/core/field_dropdown.d.ts +222 -0
  152. package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
  153. package/core/field_image.d.ts +134 -0
  154. package/core/field_image.ts +282 -0
  155. package/core/field_label.d.ts +71 -0
  156. package/core/field_label.ts +152 -0
  157. package/core/field_label_serializable.d.ts +42 -0
  158. package/core/field_label_serializable.ts +76 -0
  159. package/core/field_multilineinput.d.ts +146 -0
  160. package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
  161. package/core/field_number.d.ts +156 -0
  162. package/core/{field_number.js → field_number.ts} +110 -123
  163. package/core/field_registry.d.ts +45 -0
  164. package/core/{field_registry.js → field_registry.ts} +37 -30
  165. package/core/field_textinput.d.ts +219 -0
  166. package/core/field_textinput.ts +591 -0
  167. package/core/field_variable.d.ts +217 -0
  168. package/core/{field_variable.js → field_variable.ts} +174 -187
  169. package/core/flyout_base.d.ts +459 -0
  170. package/core/{flyout_base.js → flyout_base.ts} +429 -518
  171. package/core/flyout_button.d.ts +81 -0
  172. package/core/flyout_button.ts +292 -0
  173. package/core/flyout_horizontal.d.ts +82 -0
  174. package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
  175. package/core/flyout_metrics_manager.d.ts +40 -0
  176. package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
  177. package/core/flyout_vertical.d.ts +83 -0
  178. package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
  179. package/core/generator.d.ts +205 -0
  180. package/core/{generator.js → generator.ts} +168 -193
  181. package/core/gesture.d.ts +357 -0
  182. package/core/{gesture.js → gesture.ts} +289 -369
  183. package/core/grid.d.ts +83 -0
  184. package/core/grid.ts +192 -0
  185. package/core/icon.d.ts +78 -0
  186. package/core/icon.ts +189 -0
  187. package/core/inject.d.ts +15 -0
  188. package/core/{inject.js → inject.ts} +101 -100
  189. package/core/input.d.ts +128 -0
  190. package/core/input.ts +309 -0
  191. package/core/input_types.d.ts +14 -0
  192. package/core/{input_types.js → input_types.ts} +8 -12
  193. package/core/insertion_marker_manager.d.ts +212 -0
  194. package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
  195. package/core/interfaces/i_ast_node_location.d.ts +11 -0
  196. package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
  197. package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
  198. package/core/interfaces/i_ast_node_location_svg.ts +37 -0
  199. package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
  200. package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
  201. package/core/interfaces/i_autohideable.d.ts +18 -0
  202. package/core/interfaces/i_autohideable.ts +34 -0
  203. package/core/interfaces/i_block_dragger.d.ts +43 -0
  204. package/core/interfaces/i_block_dragger.ts +67 -0
  205. package/core/interfaces/i_bounded_element.d.ts +24 -0
  206. package/core/interfaces/i_bounded_element.ts +42 -0
  207. package/core/interfaces/i_bubble.d.ts +59 -0
  208. package/core/interfaces/i_bubble.ts +88 -0
  209. package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
  210. package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
  211. package/core/interfaces/i_component.d.ts +17 -0
  212. package/core/interfaces/{i_component.js → i_component.ts} +9 -14
  213. package/core/interfaces/i_connection_checker.d.ts +69 -0
  214. package/core/interfaces/i_connection_checker.ts +102 -0
  215. package/core/interfaces/i_contextmenu.d.ts +13 -0
  216. package/core/interfaces/i_contextmenu.ts +26 -0
  217. package/core/interfaces/i_copyable.d.ts +24 -0
  218. package/core/interfaces/i_copyable.ts +40 -0
  219. package/core/interfaces/i_deletable.d.ts +16 -0
  220. package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
  221. package/core/interfaces/i_delete_area.d.ts +25 -0
  222. package/core/interfaces/i_delete_area.ts +46 -0
  223. package/core/interfaces/i_drag_target.d.ts +53 -0
  224. package/core/interfaces/i_drag_target.ts +84 -0
  225. package/core/interfaces/i_draggable.d.ts +12 -0
  226. package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
  227. package/core/interfaces/i_flyout.d.ts +134 -0
  228. package/core/interfaces/i_flyout.ts +186 -0
  229. package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
  230. package/core/interfaces/i_keyboard_accessible.ts +35 -0
  231. package/core/interfaces/i_metrics_manager.d.ts +117 -0
  232. package/core/interfaces/i_metrics_manager.ts +151 -0
  233. package/core/interfaces/i_movable.d.ts +16 -0
  234. package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
  235. package/core/interfaces/i_positionable.d.ts +27 -0
  236. package/core/interfaces/i_positionable.ts +50 -0
  237. package/core/interfaces/i_registrable.d.ts +11 -0
  238. package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
  239. package/core/interfaces/i_registrable_field.d.ts +17 -0
  240. package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
  241. package/core/interfaces/i_selectable.d.ts +18 -0
  242. package/core/interfaces/i_selectable.ts +34 -0
  243. package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
  244. package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
  245. package/core/interfaces/i_serializer.d.ts +42 -0
  246. package/core/interfaces/i_serializer.ts +65 -0
  247. package/core/interfaces/i_styleable.d.ts +21 -0
  248. package/core/interfaces/i_styleable.ts +35 -0
  249. package/core/interfaces/i_toolbox.d.ts +85 -0
  250. package/core/interfaces/i_toolbox.ts +127 -0
  251. package/core/interfaces/i_toolbox_item.d.ts +62 -0
  252. package/core/interfaces/i_toolbox_item.ts +84 -0
  253. package/core/internal_constants.d.ts +40 -0
  254. package/core/{internal_constants.js → internal_constants.ts} +13 -18
  255. package/core/keyboard_nav/ast_node.d.ts +239 -0
  256. package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
  257. package/core/keyboard_nav/basic_cursor.d.ts +88 -0
  258. package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
  259. package/core/keyboard_nav/cursor.d.ts +41 -0
  260. package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
  261. package/core/keyboard_nav/marker.d.ts +58 -0
  262. package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
  263. package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
  264. package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
  265. package/core/main.d.ts +11 -0
  266. package/core/main.js +303 -0
  267. package/core/marker_manager.d.ts +85 -0
  268. package/core/marker_manager.ts +181 -0
  269. package/core/menu.d.ts +149 -0
  270. package/core/{menu.js → menu.ts} +141 -174
  271. package/core/menuitem.d.ts +118 -0
  272. package/core/menuitem.ts +240 -0
  273. package/core/metrics_manager.d.ts +201 -0
  274. package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
  275. package/core/msg.d.ts +9 -0
  276. package/core/{msg.js → msg.ts} +4 -8
  277. package/core/mutator.d.ts +128 -0
  278. package/core/{mutator.js → mutator.ts} +196 -211
  279. package/core/names.d.ts +124 -0
  280. package/core/names.ts +267 -0
  281. package/core/options.d.ts +137 -0
  282. package/core/{options.js → options.ts} +147 -173
  283. package/core/positionable_helpers.d.ts +88 -0
  284. package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
  285. package/core/procedures.d.ts +108 -0
  286. package/core/{procedures.js → procedures.ts} +143 -152
  287. package/core/registry.d.ts +137 -0
  288. package/core/registry.ts +339 -0
  289. package/core/rendered_connection.d.ts +191 -0
  290. package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
  291. package/core/renderers/common/block_rendering.d.ts +114 -0
  292. package/core/renderers/common/block_rendering.ts +164 -0
  293. package/core/renderers/common/constants.d.ts +458 -0
  294. package/core/renderers/common/constants.ts +1124 -0
  295. package/core/renderers/common/debug.d.ts +28 -0
  296. package/core/renderers/common/{debug.js → debug.ts} +14 -20
  297. package/core/renderers/common/debugger.d.ts +120 -0
  298. package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
  299. package/core/renderers/common/drawer.d.ts +132 -0
  300. package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
  301. package/core/renderers/common/i_path_object.d.ts +117 -0
  302. package/core/renderers/common/i_path_object.ts +161 -0
  303. package/core/renderers/common/info.d.ts +194 -0
  304. package/core/renderers/common/{info.js → info.ts} +165 -222
  305. package/core/renderers/common/marker_svg.d.ts +220 -0
  306. package/core/renderers/common/marker_svg.ts +680 -0
  307. package/core/renderers/common/path_object.d.ts +146 -0
  308. package/core/renderers/common/path_object.ts +272 -0
  309. package/core/renderers/common/renderer.d.ts +157 -0
  310. package/core/renderers/common/renderer.ts +271 -0
  311. package/core/renderers/geras/constants.d.ts +23 -0
  312. package/core/renderers/geras/constants.ts +61 -0
  313. package/core/renderers/geras/drawer.d.ts +43 -0
  314. package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
  315. package/core/renderers/geras/geras.d.ts +11 -0
  316. package/core/renderers/geras/geras.ts +37 -0
  317. package/core/renderers/geras/highlight_constants.d.ts +108 -0
  318. package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
  319. package/core/renderers/geras/highlighter.d.ts +98 -0
  320. package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
  321. package/core/renderers/geras/info.d.ts +45 -0
  322. package/core/renderers/geras/{info.js → info.ts} +61 -99
  323. package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
  324. package/core/renderers/geras/measurables/inline_input.ts +51 -0
  325. package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
  326. package/core/renderers/geras/measurables/statement_input.ts +50 -0
  327. package/core/renderers/geras/path_object.d.ts +47 -0
  328. package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
  329. package/core/renderers/geras/renderer.d.ts +69 -0
  330. package/core/renderers/geras/renderer.ts +126 -0
  331. package/core/renderers/measurables/base.d.ts +27 -0
  332. package/core/renderers/measurables/base.ts +53 -0
  333. package/core/renderers/measurables/bottom_row.d.ts +61 -0
  334. package/core/renderers/measurables/bottom_row.ts +120 -0
  335. package/core/renderers/measurables/connection.d.ts +25 -0
  336. package/core/renderers/measurables/connection.ts +52 -0
  337. package/core/renderers/measurables/external_value_input.d.ts +27 -0
  338. package/core/renderers/measurables/external_value_input.ts +65 -0
  339. package/core/renderers/measurables/field.d.ts +30 -0
  340. package/core/renderers/measurables/field.ts +63 -0
  341. package/core/renderers/measurables/hat.d.ts +21 -0
  342. package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
  343. package/core/renderers/measurables/icon.d.ts +26 -0
  344. package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
  345. package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
  346. package/core/renderers/measurables/in_row_spacer.ts +44 -0
  347. package/core/renderers/measurables/inline_input.d.ts +24 -0
  348. package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
  349. package/core/renderers/measurables/input_connection.d.ts +29 -0
  350. package/core/renderers/measurables/input_connection.ts +66 -0
  351. package/core/renderers/measurables/input_row.d.ts +30 -0
  352. package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
  353. package/core/renderers/measurables/jagged_edge.d.ts +20 -0
  354. package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
  355. package/core/renderers/measurables/next_connection.d.ts +23 -0
  356. package/core/renderers/measurables/next_connection.ts +47 -0
  357. package/core/renderers/measurables/output_connection.d.ts +26 -0
  358. package/core/renderers/measurables/output_connection.ts +56 -0
  359. package/core/renderers/measurables/previous_connection.d.ts +23 -0
  360. package/core/renderers/measurables/previous_connection.ts +47 -0
  361. package/core/renderers/measurables/round_corner.d.ts +21 -0
  362. package/core/renderers/measurables/round_corner.ts +49 -0
  363. package/core/renderers/measurables/row.d.ts +141 -0
  364. package/core/renderers/measurables/row.ts +225 -0
  365. package/core/renderers/measurables/spacer_row.d.ts +29 -0
  366. package/core/renderers/measurables/spacer_row.ts +55 -0
  367. package/core/renderers/measurables/square_corner.d.ts +21 -0
  368. package/core/renderers/measurables/square_corner.ts +47 -0
  369. package/core/renderers/measurables/statement_input.d.ts +22 -0
  370. package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
  371. package/core/renderers/measurables/top_row.d.ts +56 -0
  372. package/core/renderers/measurables/top_row.ts +122 -0
  373. package/core/renderers/measurables/types.d.ts +235 -0
  374. package/core/renderers/measurables/types.ts +332 -0
  375. package/core/renderers/minimalist/constants.d.ts +14 -0
  376. package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
  377. package/core/renderers/minimalist/drawer.d.ts +21 -0
  378. package/core/renderers/minimalist/drawer.ts +38 -0
  379. package/core/renderers/minimalist/info.d.ts +30 -0
  380. package/core/renderers/minimalist/info.ts +52 -0
  381. package/core/renderers/minimalist/minimalist.d.ts +6 -0
  382. package/core/renderers/minimalist/minimalist.ts +22 -0
  383. package/core/renderers/minimalist/renderer.d.ts +41 -0
  384. package/core/renderers/minimalist/renderer.ts +71 -0
  385. package/core/renderers/thrasos/info.d.ts +40 -0
  386. package/core/renderers/thrasos/{info.js → info.ts} +66 -67
  387. package/core/renderers/thrasos/renderer.d.ts +25 -0
  388. package/core/renderers/thrasos/renderer.ts +48 -0
  389. package/core/renderers/thrasos/thrasos.d.ts +4 -0
  390. package/core/renderers/thrasos/thrasos.ts +20 -0
  391. package/core/renderers/zelos/constants.d.ts +186 -0
  392. package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
  393. package/core/renderers/zelos/drawer.d.ts +47 -0
  394. package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
  395. package/core/renderers/zelos/info.d.ts +88 -0
  396. package/core/renderers/zelos/{info.js → info.ts} +111 -142
  397. package/core/renderers/zelos/marker_svg.d.ts +46 -0
  398. package/core/renderers/zelos/marker_svg.ts +151 -0
  399. package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
  400. package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
  401. package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
  402. package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
  403. package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
  404. package/core/renderers/zelos/measurables/row_elements.ts +45 -0
  405. package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
  406. package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
  407. package/core/renderers/zelos/path_object.d.ts +77 -0
  408. package/core/renderers/zelos/path_object.ts +215 -0
  409. package/core/renderers/zelos/renderer.d.ts +74 -0
  410. package/core/renderers/zelos/renderer.ts +142 -0
  411. package/core/renderers/zelos/zelos.d.ts +12 -0
  412. package/core/renderers/zelos/zelos.ts +39 -0
  413. package/core/scrollbar.d.ts +277 -0
  414. package/core/{scrollbar.js → scrollbar.ts} +307 -328
  415. package/core/scrollbar_pair.d.ts +105 -0
  416. package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
  417. package/core/serialization/blocks.d.ts +98 -0
  418. package/core/serialization/{blocks.js → blocks.ts} +229 -228
  419. package/core/serialization/exceptions.d.ts +73 -0
  420. package/core/serialization/exceptions.ts +98 -0
  421. package/core/serialization/priorities.d.ts +15 -0
  422. package/core/serialization/{priorities.js → priorities.ts} +4 -10
  423. package/core/serialization/registry.d.ts +20 -0
  424. package/core/serialization/{registry.js → registry.ts} +11 -13
  425. package/core/serialization/variables.d.ts +14 -0
  426. package/core/serialization/{variables.js → variables.ts} +30 -32
  427. package/core/serialization/workspaces.d.ts +28 -0
  428. package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
  429. package/core/shortcut_items.d.ts +61 -0
  430. package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
  431. package/core/shortcut_registry.d.ts +151 -0
  432. package/core/shortcut_registry.ts +355 -0
  433. package/core/sprites.d.ts +19 -0
  434. package/core/{sprites.js → sprites.ts} +4 -6
  435. package/core/theme/classic.d.ts +12 -0
  436. package/core/theme/{classic.js → classic.ts} +5 -7
  437. package/core/theme/themes.d.ts +8 -0
  438. package/core/theme/themes.ts +22 -0
  439. package/core/theme/zelos.d.ts +11 -0
  440. package/core/theme/{zelos.js → zelos.ts} +4 -7
  441. package/core/theme.d.ts +142 -0
  442. package/core/theme.ts +221 -0
  443. package/core/theme_manager.d.ts +81 -0
  444. package/core/theme_manager.ts +186 -0
  445. package/core/toolbox/category.d.ts +239 -0
  446. package/core/toolbox/category.ts +679 -0
  447. package/core/toolbox/collapsible_category.d.ts +91 -0
  448. package/core/toolbox/collapsible_category.ts +273 -0
  449. package/core/toolbox/separator.d.ts +39 -0
  450. package/core/toolbox/separator.ts +105 -0
  451. package/core/toolbox/toolbox.d.ts +352 -0
  452. package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
  453. package/core/toolbox/toolbox_item.d.ts +85 -0
  454. package/core/toolbox/toolbox_item.ts +147 -0
  455. package/core/tooltip.d.ts +126 -0
  456. package/core/{tooltip.js → tooltip.ts} +136 -214
  457. package/core/touch.d.ts +121 -0
  458. package/core/touch.ts +306 -0
  459. package/core/touch_gesture.d.ts +115 -0
  460. package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
  461. package/core/trashcan.d.ts +195 -0
  462. package/core/{trashcan.js → trashcan.ts} +226 -312
  463. package/core/utils/aria.d.ts +67 -0
  464. package/core/utils/{aria.js → aria.ts} +47 -61
  465. package/core/utils/array.d.ts +14 -0
  466. package/core/utils/{array.js → array.ts} +10 -12
  467. package/core/utils/colour.d.ts +103 -0
  468. package/core/utils/{colour.js → colour.ts} +60 -72
  469. package/core/utils/coordinate.d.ts +72 -0
  470. package/core/utils/coordinate.ts +124 -0
  471. package/core/utils/deprecation.d.ts +17 -0
  472. package/core/utils/{deprecation.js → deprecation.ts} +11 -11
  473. package/core/utils/dom.d.ts +165 -0
  474. package/core/utils/{dom.js → dom.ts} +125 -147
  475. package/core/utils/idgenerator.d.ts +25 -0
  476. package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
  477. package/core/utils/keycodes.d.ts +137 -0
  478. package/core/utils/keycodes.ts +169 -0
  479. package/core/utils/math.d.ts +30 -0
  480. package/core/utils/{math.js → math.ts} +17 -19
  481. package/core/utils/metrics.d.ts +64 -0
  482. package/core/utils/metrics.ts +97 -0
  483. package/core/utils/object.d.ts +35 -0
  484. package/core/utils/{object.js → object.ts} +30 -26
  485. package/core/utils/parsing.d.ts +50 -0
  486. package/core/utils/{parsing.js → parsing.ts} +50 -50
  487. package/core/utils/rect.d.ts +38 -0
  488. package/core/utils/{rect.js → rect.ts} +18 -31
  489. package/core/utils/sentinel.d.ts +11 -0
  490. package/core/utils/{sentinel.js → sentinel.ts} +3 -5
  491. package/core/utils/size.d.ts +27 -0
  492. package/core/utils/{size.js → size.ts} +12 -26
  493. package/core/utils/string.d.ts +55 -0
  494. package/core/utils/{string.js → string.ts} +64 -61
  495. package/core/utils/style.d.ts +127 -0
  496. package/core/utils/{style.js → style.ts} +102 -92
  497. package/core/utils/svg.d.ts +68 -0
  498. package/core/utils/svg.ts +88 -0
  499. package/core/utils/svg_math.d.ts +70 -0
  500. package/core/utils/{svg_math.js → svg_math.ts} +72 -71
  501. package/core/utils/svg_paths.d.ts +101 -0
  502. package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
  503. package/core/utils/toolbox.d.ts +193 -0
  504. package/core/utils/toolbox.ts +433 -0
  505. package/core/utils/useragent.d.ts +33 -0
  506. package/core/utils/useragent.ts +135 -0
  507. package/core/utils/xml.d.ts +52 -0
  508. package/core/utils/{xml.js → xml.ts} +26 -36
  509. package/core/utils.d.ts +217 -0
  510. package/core/utils.ts +428 -0
  511. package/core/variable_map.d.ts +141 -0
  512. package/core/{variable_map.js → variable_map.ts} +131 -149
  513. package/core/variable_model.d.ts +40 -0
  514. package/core/variable_model.ts +82 -0
  515. package/core/variables.d.ts +181 -0
  516. package/core/{variables.js → variables.ts} +206 -188
  517. package/core/variables_dynamic.d.ts +38 -0
  518. package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
  519. package/core/warning.d.ts +50 -0
  520. package/core/{warning.js → warning.ts} +52 -66
  521. package/core/widgetdiv.d.ts +69 -0
  522. package/core/widgetdiv.ts +257 -0
  523. package/core/workspace.d.ts +386 -0
  524. package/core/workspace.ts +801 -0
  525. package/core/workspace_audio.d.ts +47 -0
  526. package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
  527. package/core/workspace_comment.d.ts +170 -0
  528. package/core/workspace_comment.ts +398 -0
  529. package/core/workspace_comment_svg.d.ts +329 -0
  530. package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
  531. package/core/workspace_drag_surface_svg.d.ts +68 -0
  532. package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
  533. package/core/workspace_dragger.d.ts +48 -0
  534. package/core/workspace_dragger.ts +104 -0
  535. package/core/workspace_svg.d.ts +920 -0
  536. package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
  537. package/core/xml.d.ts +117 -0
  538. package/core/{xml.js → xml.ts} +306 -326
  539. package/core/zoom_controls.d.ts +130 -0
  540. package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
  541. package/core.d.ts +1 -3
  542. package/core.js +1 -2
  543. package/dart.d.ts +0 -3
  544. package/dart_compressed.js +387 -99
  545. package/dart_compressed.js.map +1 -1
  546. package/generators/dart/all.js +2 -0
  547. package/generators/dart/colour.js +1 -1
  548. package/generators/dart/lists.js +1 -1
  549. package/generators/dart/logic.js +1 -1
  550. package/generators/dart/loops.js +1 -1
  551. package/generators/dart/math.js +1 -1
  552. package/generators/dart/procedures.js +1 -1
  553. package/generators/dart/text.js +1 -1
  554. package/generators/dart/variables.js +1 -1
  555. package/generators/dart/variables_dynamic.js +1 -1
  556. package/generators/dart.js +1 -2
  557. package/generators/javascript/all.js +2 -0
  558. package/generators/javascript/colour.js +1 -1
  559. package/generators/javascript/lists.js +1 -1
  560. package/generators/javascript/logic.js +1 -1
  561. package/generators/javascript/loops.js +1 -1
  562. package/generators/javascript/math.js +4 -4
  563. package/generators/javascript/procedures.js +1 -1
  564. package/generators/javascript/text.js +2 -2
  565. package/generators/javascript/variables.js +1 -1
  566. package/generators/javascript/variables_dynamic.js +1 -1
  567. package/generators/javascript.js +1 -3
  568. package/generators/lua/all.js +2 -0
  569. package/generators/lua/colour.js +1 -1
  570. package/generators/lua/lists.js +1 -1
  571. package/generators/lua/logic.js +1 -1
  572. package/generators/lua/loops.js +1 -1
  573. package/generators/lua/math.js +1 -1
  574. package/generators/lua/procedures.js +1 -1
  575. package/generators/lua/text.js +1 -1
  576. package/generators/lua/variables.js +1 -1
  577. package/generators/lua/variables_dynamic.js +1 -1
  578. package/generators/lua.js +1 -2
  579. package/generators/php/all.js +2 -0
  580. package/generators/php/colour.js +1 -1
  581. package/generators/php/lists.js +1 -2
  582. package/generators/php/logic.js +1 -1
  583. package/generators/php/loops.js +1 -1
  584. package/generators/php/math.js +1 -1
  585. package/generators/php/procedures.js +1 -1
  586. package/generators/php/text.js +1 -1
  587. package/generators/php/variables.js +1 -1
  588. package/generators/php/variables_dynamic.js +1 -1
  589. package/generators/php.js +1 -2
  590. package/generators/python/all.js +2 -0
  591. package/generators/python/colour.js +3 -3
  592. package/generators/python/lists.js +1 -1
  593. package/generators/python/logic.js +1 -1
  594. package/generators/python/loops.js +4 -7
  595. package/generators/python/math.js +1 -1
  596. package/generators/python/procedures.js +1 -1
  597. package/generators/python/text.js +1 -1
  598. package/generators/python/variables.js +1 -1
  599. package/generators/python/variables_dynamic.js +1 -1
  600. package/generators/python.js +1 -2
  601. package/index.d.ts +2 -8
  602. package/javascript.d.ts +0 -3
  603. package/javascript_compressed.js +314 -104
  604. package/javascript_compressed.js.map +1 -1
  605. package/lua.d.ts +0 -3
  606. package/lua_compressed.js +399 -81
  607. package/lua_compressed.js.map +1 -1
  608. package/package.json +5 -5
  609. package/php.d.ts +0 -3
  610. package/php_compressed.js +322 -93
  611. package/php_compressed.js.map +1 -1
  612. package/python.d.ts +0 -3
  613. package/python_compressed.js +237 -90
  614. package/python_compressed.js.map +1 -1
  615. package/blockly.d.ts +0 -26127
  616. package/core/blockly_options.js +0 -28
  617. package/core/bubble_dragger.js +0 -298
  618. package/core/clipboard.js +0 -80
  619. package/core/component_manager.js +0 -263
  620. package/core/contextmenu_items.js +0 -651
  621. package/core/contextmenu_registry.js +0 -178
  622. package/core/delete_area.js +0 -87
  623. package/core/dialog.js +0 -107
  624. package/core/drag_target.js +0 -98
  625. package/core/events/events.js +0 -147
  626. package/core/events/events_abstract.js +0 -133
  627. package/core/events/events_block_base.js +0 -70
  628. package/core/events/events_block_drag.js +0 -89
  629. package/core/events/events_bubble_open.js +0 -90
  630. package/core/events/events_comment_base.js +0 -121
  631. package/core/events/events_marker_move.js +0 -110
  632. package/core/events/events_selected.js +0 -83
  633. package/core/events/events_toolbox_item_select.js +0 -84
  634. package/core/events/events_trashcan_open.js +0 -73
  635. package/core/events/events_var_base.js +0 -70
  636. package/core/events/events_viewport.js +0 -107
  637. package/core/events/workspace_events.js +0 -93
  638. package/core/field_angle.js +0 -591
  639. package/core/field_checkbox.js +0 -255
  640. package/core/field_colour.js +0 -717
  641. package/core/field_image.js +0 -304
  642. package/core/field_label.js +0 -149
  643. package/core/field_label_serializable.js +0 -80
  644. package/core/field_textinput.js +0 -619
  645. package/core/flyout_button.js +0 -356
  646. package/core/grid.js +0 -226
  647. package/core/icon.js +0 -225
  648. package/core/input.js +0 -335
  649. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  650. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  651. package/core/interfaces/i_autohideable.js +0 -40
  652. package/core/interfaces/i_block_dragger.js +0 -66
  653. package/core/interfaces/i_bounded_element.js +0 -45
  654. package/core/interfaces/i_bubble.js +0 -95
  655. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  656. package/core/interfaces/i_connection_checker.js +0 -104
  657. package/core/interfaces/i_contextmenu.js +0 -32
  658. package/core/interfaces/i_copyable.js +0 -49
  659. package/core/interfaces/i_delete_area.js +0 -50
  660. package/core/interfaces/i_drag_target.js +0 -88
  661. package/core/interfaces/i_flyout.js +0 -201
  662. package/core/interfaces/i_keyboard_accessible.js +0 -38
  663. package/core/interfaces/i_metrics_manager.js +0 -154
  664. package/core/interfaces/i_positionable.js +0 -51
  665. package/core/interfaces/i_selectable.js +0 -51
  666. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  667. package/core/interfaces/i_serializer.js +0 -77
  668. package/core/interfaces/i_styleable.js +0 -39
  669. package/core/interfaces/i_toolbox.js +0 -142
  670. package/core/interfaces/i_toolbox_item.js +0 -85
  671. package/core/marker_manager.js +0 -213
  672. package/core/menuitem.js +0 -292
  673. package/core/names.js +0 -293
  674. package/core/registry.js +0 -384
  675. package/core/renderers/common/block_rendering.js +0 -170
  676. package/core/renderers/common/constants.js +0 -1250
  677. package/core/renderers/common/i_path_object.js +0 -162
  678. package/core/renderers/common/marker_svg.js +0 -721
  679. package/core/renderers/common/path_object.js +0 -283
  680. package/core/renderers/common/renderer.js +0 -305
  681. package/core/renderers/geras/constants.js +0 -73
  682. package/core/renderers/geras/geras.js +0 -36
  683. package/core/renderers/geras/measurables/inline_input.js +0 -58
  684. package/core/renderers/geras/measurables/statement_input.js +0 -57
  685. package/core/renderers/geras/renderer.js +0 -149
  686. package/core/renderers/measurables/base.js +0 -64
  687. package/core/renderers/measurables/bottom_row.js +0 -138
  688. package/core/renderers/measurables/connection.js +0 -56
  689. package/core/renderers/measurables/external_value_input.js +0 -70
  690. package/core/renderers/measurables/field.js +0 -71
  691. package/core/renderers/measurables/in_row_spacer.js +0 -47
  692. package/core/renderers/measurables/input_connection.js +0 -75
  693. package/core/renderers/measurables/next_connection.js +0 -50
  694. package/core/renderers/measurables/output_connection.js +0 -61
  695. package/core/renderers/measurables/previous_connection.js +0 -50
  696. package/core/renderers/measurables/round_corner.js +0 -52
  697. package/core/renderers/measurables/row.js +0 -247
  698. package/core/renderers/measurables/spacer_row.js +0 -69
  699. package/core/renderers/measurables/square_corner.js +0 -50
  700. package/core/renderers/measurables/top_row.js +0 -143
  701. package/core/renderers/measurables/types.js +0 -353
  702. package/core/renderers/minimalist/drawer.js +0 -42
  703. package/core/renderers/minimalist/info.js +0 -54
  704. package/core/renderers/minimalist/minimalist.js +0 -26
  705. package/core/renderers/minimalist/renderer.js +0 -80
  706. package/core/renderers/thrasos/renderer.js +0 -53
  707. package/core/renderers/thrasos/thrasos.js +0 -22
  708. package/core/renderers/zelos/marker_svg.js +0 -179
  709. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  710. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  711. package/core/renderers/zelos/path_object.js +0 -247
  712. package/core/renderers/zelos/renderer.js +0 -147
  713. package/core/renderers/zelos/zelos.js +0 -38
  714. package/core/serialization/exceptions.js +0 -144
  715. package/core/shortcut_registry.js +0 -366
  716. package/core/theme/themes.js +0 -23
  717. package/core/theme.js +0 -228
  718. package/core/theme_manager.js +0 -211
  719. package/core/toolbox/category.js +0 -751
  720. package/core/toolbox/collapsible_category.js +0 -311
  721. package/core/toolbox/separator.js +0 -133
  722. package/core/toolbox/toolbox_item.js +0 -173
  723. package/core/touch.js +0 -285
  724. package/core/utils/coordinate.js +0 -138
  725. package/core/utils/global.js +0 -41
  726. package/core/utils/keycodes.js +0 -172
  727. package/core/utils/metrics.js +0 -154
  728. package/core/utils/svg.js +0 -186
  729. package/core/utils/toolbox.js +0 -459
  730. package/core/utils/useragent.js +0 -197
  731. package/core/utils.js +0 -383
  732. package/core/variable_model.js +0 -96
  733. package/core/widgetdiv.js +0 -290
  734. package/core/workspace.js +0 -836
  735. package/core/workspace_comment.js +0 -400
  736. package/core/workspace_dragger.js +0 -115
@@ -7,36 +7,32 @@
7
7
  /**
8
8
  * @fileoverview Utility functions for handling procedures.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Utility functions for handling procedures.
14
13
  * @namespace Blockly.Procedures
15
14
  */
16
- goog.module('Blockly.Procedures');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.Procedures');
17
17
 
18
- const Variables = goog.require('Blockly.Variables');
19
- const Xml = goog.require('Blockly.Xml');
20
- const eventUtils = goog.require('Blockly.Events.utils');
21
- const utilsXml = goog.require('Blockly.utils.xml');
22
- /* eslint-disable-next-line no-unused-vars */
23
- const {Abstract} = goog.requireType('Blockly.Events.Abstract');
24
- const {Blocks} = goog.require('Blockly.blocks');
25
- /* eslint-disable-next-line no-unused-vars */
26
- const {Block} = goog.requireType('Blockly.Block');
27
- /* eslint-disable-next-line no-unused-vars */
28
- const {BubbleOpen} = goog.requireType('Blockly.Events.BubbleOpen');
29
- /* eslint-disable-next-line no-unused-vars */
30
- const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
31
- /* eslint-disable-next-line no-unused-vars */
32
- const {Field} = goog.requireType('Blockly.Field');
33
- const {Msg} = goog.require('Blockly.Msg');
34
- const {Names} = goog.require('Blockly.Names');
35
- /* eslint-disable-next-line no-unused-vars */
36
- const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
37
- const {Workspace} = goog.require('Blockly.Workspace');
38
- /** @suppress {extraRequire} */
39
- goog.require('Blockly.Events.BlockChange');
18
+ // Unused import preserved for side-effects. Remove if unneeded.
19
+ import './events/events_block_change.js';
20
+
21
+ import type {Block} from './block.js';
22
+ import type {BlockSvg} from './block_svg.js';
23
+ import {Blocks} from './blocks.js';
24
+ import * as common from './common.js';
25
+ import type {Abstract} from './events/events_abstract.js';
26
+ import type {BubbleOpen} from './events/events_bubble_open.js';
27
+ import * as eventUtils from './events/utils.js';
28
+ import type {Field} from './field.js';
29
+ import {Msg} from './msg.js';
30
+ import {Names} from './names.js';
31
+ import * as utilsXml from './utils/xml.js';
32
+ import * as Variables from './variables.js';
33
+ import type {Workspace} from './workspace.js';
34
+ import type {WorkspaceSvg} from './workspace_svg.js';
35
+ import * as Xml from './xml.js';
40
36
 
41
37
 
42
38
  /**
@@ -45,78 +41,71 @@ goog.require('Blockly.Events.BlockChange');
45
41
  * procedure blocks.
46
42
  * See also Blockly.Variables.CATEGORY_NAME and
47
43
  * Blockly.VariablesDynamic.CATEGORY_NAME.
48
- * @const {string}
49
44
  * @alias Blockly.Procedures.CATEGORY_NAME
50
45
  */
51
- const CATEGORY_NAME = 'PROCEDURE';
52
- exports.CATEGORY_NAME = CATEGORY_NAME;
46
+ export const CATEGORY_NAME = 'PROCEDURE';
53
47
 
54
48
  /**
55
49
  * The default argument for a procedures_mutatorarg block.
56
- * @type {string}
57
50
  * @alias Blockly.Procedures.DEFAULT_ARG
58
51
  */
59
- const DEFAULT_ARG = 'x';
60
- exports.DEFAULT_ARG = DEFAULT_ARG;
52
+ export const DEFAULT_ARG = 'x';
61
53
 
62
54
  /**
63
55
  * Procedure block type.
64
- * @typedef {{
65
- * getProcedureCall: function():string,
66
- * renameProcedure: function(string,string),
67
- * getProcedureDef: function():!Array
68
- * }}
69
56
  * @alias Blockly.Procedures.ProcedureBlock
70
57
  */
71
- let ProcedureBlock;
72
- exports.ProcedureBlock = ProcedureBlock;
58
+ export interface ProcedureBlock {
59
+ getProcedureCall: () => string;
60
+ renameProcedure: (p1: string, p2: string) => AnyDuringMigration;
61
+ getProcedureDef: () => AnyDuringMigration[];
62
+ }
73
63
 
74
64
  /**
75
65
  * Find all user-created procedure definitions in a workspace.
76
- * @param {!Workspace} root Root workspace.
77
- * @return {!Array<!Array<!Array>>} Pair of arrays, the
78
- * first contains procedures without return variables, the second with.
79
- * Each procedure is defined by a three-element list of name, parameter
80
- * list, and return value boolean.
66
+ * @param root Root workspace.
67
+ * @return Pair of arrays, the first contains procedures without return
68
+ * variables, the second with. Each procedure is defined by a three-element
69
+ * list of name, parameter list, and return value boolean.
81
70
  * @alias Blockly.Procedures.allProcedures
82
71
  */
83
- const allProcedures = function(root) {
72
+ export function allProcedures(root: Workspace): AnyDuringMigration[][][] {
84
73
  const proceduresNoReturn =
85
74
  root.getBlocksByType('procedures_defnoreturn', false)
86
75
  .map(function(block) {
87
- return /** @type {!ProcedureBlock} */ (block).getProcedureDef();
76
+ return (block as unknown as ProcedureBlock).getProcedureDef();
88
77
  });
89
78
  const proceduresReturn =
90
79
  root.getBlocksByType('procedures_defreturn', false).map(function(block) {
91
- return /** @type {!ProcedureBlock} */ (block).getProcedureDef();
80
+ return (block as unknown as ProcedureBlock).getProcedureDef();
92
81
  });
93
82
  proceduresNoReturn.sort(procTupleComparator);
94
83
  proceduresReturn.sort(procTupleComparator);
95
84
  return [proceduresNoReturn, proceduresReturn];
96
- };
97
- exports.allProcedures = allProcedures;
85
+ }
98
86
 
99
87
  /**
100
88
  * Comparison function for case-insensitive sorting of the first element of
101
89
  * a tuple.
102
- * @param {!Array} ta First tuple.
103
- * @param {!Array} tb Second tuple.
104
- * @return {number} -1, 0, or 1 to signify greater than, equality, or less than.
90
+ * @param ta First tuple.
91
+ * @param tb Second tuple.
92
+ * @return -1, 0, or 1 to signify greater than, equality, or less than.
105
93
  */
106
- const procTupleComparator = function(ta, tb) {
94
+ function procTupleComparator(
95
+ ta: AnyDuringMigration[], tb: AnyDuringMigration[]): number {
107
96
  return ta[0].localeCompare(tb[0], undefined, {sensitivity: 'base'});
108
- };
97
+ }
109
98
 
110
99
  /**
111
100
  * Ensure two identically-named procedures don't exist.
112
101
  * Take the proposed procedure name, and return a legal name i.e. one that
113
102
  * is not empty and doesn't collide with other procedures.
114
- * @param {string} name Proposed procedure name.
115
- * @param {!Block} block Block to disambiguate.
116
- * @return {string} Non-colliding name.
103
+ * @param name Proposed procedure name.
104
+ * @param block Block to disambiguate.
105
+ * @return Non-colliding name.
117
106
  * @alias Blockly.Procedures.findLegalName
118
107
  */
119
- const findLegalName = function(name, block) {
108
+ export function findLegalName(name: string, block: Block): string {
120
109
  if (block.isInFlyout) {
121
110
  // Flyouts can have multiple procedures called 'do something'.
122
111
  return name;
@@ -132,32 +121,32 @@ const findLegalName = function(name, block) {
132
121
  }
133
122
  }
134
123
  return name;
135
- };
136
- exports.findLegalName = findLegalName;
137
-
124
+ }
138
125
  /**
139
126
  * Does this procedure have a legal name? Illegal names include names of
140
127
  * procedures already defined.
141
- * @param {string} name The questionable name.
142
- * @param {!Workspace} workspace The workspace to scan for collisions.
143
- * @param {Block=} opt_exclude Optional block to exclude from
144
- * comparisons (one doesn't want to collide with oneself).
145
- * @return {boolean} True if the name is legal.
128
+ * @param name The questionable name.
129
+ * @param workspace The workspace to scan for collisions.
130
+ * @param opt_exclude Optional block to exclude from comparisons (one doesn't
131
+ * want to collide with oneself).
132
+ * @return True if the name is legal.
146
133
  */
147
- const isLegalName = function(name, workspace, opt_exclude) {
134
+ function isLegalName(
135
+ name: string, workspace: Workspace, opt_exclude?: Block): boolean {
148
136
  return !isNameUsed(name, workspace, opt_exclude);
149
- };
137
+ }
150
138
 
151
139
  /**
152
140
  * Return if the given name is already a procedure name.
153
- * @param {string} name The questionable name.
154
- * @param {!Workspace} workspace The workspace to scan for collisions.
155
- * @param {Block=} opt_exclude Optional block to exclude from
156
- * comparisons (one doesn't want to collide with oneself).
157
- * @return {boolean} True if the name is used, otherwise return false.
141
+ * @param name The questionable name.
142
+ * @param workspace The workspace to scan for collisions.
143
+ * @param opt_exclude Optional block to exclude from comparisons (one doesn't
144
+ * want to collide with oneself).
145
+ * @return True if the name is used, otherwise return false.
158
146
  * @alias Blockly.Procedures.isNameUsed
159
147
  */
160
- const isNameUsed = function(name, workspace, opt_exclude) {
148
+ export function isNameUsed(
149
+ name: string, workspace: Workspace, opt_exclude?: Block): boolean {
161
150
  const blocks = workspace.getAllBlocks(false);
162
151
  // Iterate through every block and check the name.
163
152
  for (let i = 0; i < blocks.length; i++) {
@@ -165,7 +154,7 @@ const isNameUsed = function(name, workspace, opt_exclude) {
165
154
  continue;
166
155
  }
167
156
  // Assume it is a procedure block so we can check.
168
- const procedureBlock = /** @type {!ProcedureBlock} */ (blocks[i]);
157
+ const procedureBlock = blocks[i] as unknown as ProcedureBlock;
169
158
  if (procedureBlock.getProcedureDef) {
170
159
  const procName = procedureBlock.getProcedureDef();
171
160
  if (Names.equals(procName[0], name)) {
@@ -174,47 +163,41 @@ const isNameUsed = function(name, workspace, opt_exclude) {
174
163
  }
175
164
  }
176
165
  return false;
177
- };
178
- exports.isNameUsed = isNameUsed;
166
+ }
179
167
 
180
168
  /**
181
169
  * Rename a procedure. Called by the editable field.
182
- * @param {string} name The proposed new name.
183
- * @return {string} The accepted name.
184
- * @this {Field}
170
+ * @param name The proposed new name.
171
+ * @return The accepted name.
185
172
  * @alias Blockly.Procedures.rename
186
173
  */
187
- const rename = function(name) {
174
+ export function rename(this: Field, name: string): string {
188
175
  // Strip leading and trailing whitespace. Beyond this, all names are legal.
189
176
  name = name.trim();
190
177
 
191
- const legalName = findLegalName(
192
- name,
193
- /** @type {!Block} */ (this.getSourceBlock()));
178
+ const legalName = findLegalName(name, (this.getSourceBlock()));
194
179
  const oldName = this.getValue();
195
180
  if (oldName !== name && oldName !== legalName) {
196
181
  // Rename any callers.
197
182
  const blocks = this.getSourceBlock().workspace.getAllBlocks(false);
198
183
  for (let i = 0; i < blocks.length; i++) {
199
184
  // Assume it is a procedure so we can check.
200
- const procedureBlock = /** @type {!ProcedureBlock} */ (blocks[i]);
185
+ const procedureBlock = blocks[i] as unknown as ProcedureBlock;
201
186
  if (procedureBlock.renameProcedure) {
202
- procedureBlock.renameProcedure(
203
- /** @type {string} */ (oldName), legalName);
187
+ procedureBlock.renameProcedure(oldName as string, legalName);
204
188
  }
205
189
  }
206
190
  }
207
191
  return legalName;
208
- };
209
- exports.rename = rename;
192
+ }
210
193
 
211
194
  /**
212
195
  * Construct the blocks required by the flyout for the procedure category.
213
- * @param {!WorkspaceSvg} workspace The workspace containing procedures.
214
- * @return {!Array<!Element>} Array of XML block elements.
196
+ * @param workspace The workspace containing procedures.
197
+ * @return Array of XML block elements.
215
198
  * @alias Blockly.Procedures.flyoutCategory
216
199
  */
217
- const flyoutCategory = function(workspace) {
200
+ export function flyoutCategory(workspace: WorkspaceSvg): Element[] {
218
201
  const xmlList = [];
219
202
  if (Blocks['procedures_defnoreturn']) {
220
203
  // <block type="procedures_defnoreturn" gap="16">
@@ -222,7 +205,9 @@ const flyoutCategory = function(workspace) {
222
205
  // </block>
223
206
  const block = utilsXml.createElement('block');
224
207
  block.setAttribute('type', 'procedures_defnoreturn');
225
- block.setAttribute('gap', 16);
208
+ // AnyDuringMigration because: Argument of type 'number' is not assignable
209
+ // to parameter of type 'string'.
210
+ block.setAttribute('gap', 16 as AnyDuringMigration);
226
211
  const nameField = utilsXml.createElement('field');
227
212
  nameField.setAttribute('name', 'NAME');
228
213
  nameField.appendChild(
@@ -236,7 +221,9 @@ const flyoutCategory = function(workspace) {
236
221
  // </block>
237
222
  const block = utilsXml.createElement('block');
238
223
  block.setAttribute('type', 'procedures_defreturn');
239
- block.setAttribute('gap', 16);
224
+ // AnyDuringMigration because: Argument of type 'number' is not assignable
225
+ // to parameter of type 'string'.
226
+ block.setAttribute('gap', 16 as AnyDuringMigration);
240
227
  const nameField = utilsXml.createElement('field');
241
228
  nameField.setAttribute('name', 'NAME');
242
229
  nameField.appendChild(
@@ -248,22 +235,26 @@ const flyoutCategory = function(workspace) {
248
235
  // <block type="procedures_ifreturn" gap="16"></block>
249
236
  const block = utilsXml.createElement('block');
250
237
  block.setAttribute('type', 'procedures_ifreturn');
251
- block.setAttribute('gap', 16);
238
+ // AnyDuringMigration because: Argument of type 'number' is not assignable
239
+ // to parameter of type 'string'.
240
+ block.setAttribute('gap', 16 as AnyDuringMigration);
252
241
  xmlList.push(block);
253
242
  }
254
243
  if (xmlList.length) {
255
244
  // Add slightly larger gap between system blocks and user calls.
256
- xmlList[xmlList.length - 1].setAttribute('gap', 24);
245
+ // AnyDuringMigration because: Argument of type 'number' is not assignable
246
+ // to parameter of type 'string'.
247
+ xmlList[xmlList.length - 1].setAttribute('gap', 24 as AnyDuringMigration);
257
248
  }
258
249
 
259
250
  /**
260
251
  * Add items to xmlList for each listed procedure.
261
- * @param {!Array<!Array>} procedureList A list of procedures, each of which
262
- * is defined by a three-element list of name, parameter list, and return
263
- * value boolean.
264
- * @param {string} templateName The type of the block to generate.
252
+ * @param procedureList A list of procedures, each of which is defined by a
253
+ * three-element list of name, parameter list, and return value boolean.
254
+ * @param templateName The type of the block to generate.
265
255
  */
266
- function populateProcedures(procedureList, templateName) {
256
+ function populateProcedures(
257
+ procedureList: AnyDuringMigration[][], templateName: string) {
267
258
  for (let i = 0; i < procedureList.length; i++) {
268
259
  const name = procedureList[i][0];
269
260
  const args = procedureList[i][1];
@@ -274,7 +265,9 @@ const flyoutCategory = function(workspace) {
274
265
  // </block>
275
266
  const block = utilsXml.createElement('block');
276
267
  block.setAttribute('type', templateName);
277
- block.setAttribute('gap', 16);
268
+ // AnyDuringMigration because: Argument of type 'number' is not
269
+ // assignable to parameter of type 'string'.
270
+ block.setAttribute('gap', 16 as AnyDuringMigration);
278
271
  const mutation = utilsXml.createElement('mutation');
279
272
  mutation.setAttribute('name', name);
280
273
  block.appendChild(mutation);
@@ -287,23 +280,24 @@ const flyoutCategory = function(workspace) {
287
280
  }
288
281
  }
289
282
 
290
- const tuple = allProcedures(workspace);
283
+ // AnyDuringMigration because: Argument of type 'WorkspaceSvg' is not
284
+ // assignable to parameter of type 'Workspace'.
285
+ const tuple = allProcedures(workspace as AnyDuringMigration);
291
286
  populateProcedures(tuple[0], 'procedures_callnoreturn');
292
287
  populateProcedures(tuple[1], 'procedures_callreturn');
293
288
  return xmlList;
294
- };
295
- exports.flyoutCategory = flyoutCategory;
289
+ }
296
290
 
297
291
  /**
298
292
  * Updates the procedure mutator's flyout so that the arg block is not a
299
293
  * duplicate of another arg.
300
- * @param {!WorkspaceSvg} workspace The procedure mutator's workspace. This
301
- * workspace's flyout is what is being updated.
294
+ * @param workspace The procedure mutator's workspace. This workspace's flyout
295
+ * is what is being updated.
302
296
  */
303
- const updateMutatorFlyout = function(workspace) {
297
+ function updateMutatorFlyout(workspace: WorkspaceSvg) {
304
298
  const usedNames = [];
305
299
  const blocks = workspace.getBlocksByType('procedures_mutatorarg', false);
306
- for (let i = 0, block; (block = blocks[i]); i++) {
300
+ for (let i = 0, block; block = blocks[i]; i++) {
307
301
  usedNames.push(block.getFieldValue('NAME'));
308
302
  }
309
303
 
@@ -321,67 +315,65 @@ const updateMutatorFlyout = function(workspace) {
321
315
  xmlElement.appendChild(argBlock);
322
316
 
323
317
  workspace.updateToolbox(xmlElement);
324
- };
318
+ }
325
319
 
326
320
  /**
327
321
  * Listens for when a procedure mutator is opened. Then it triggers a flyout
328
322
  * update and adds a mutator change listener to the mutator workspace.
329
- * @param {!Abstract} e The event that triggered this listener.
323
+ * @param e The event that triggered this listener.
330
324
  * @alias Blockly.Procedures.mutatorOpenListener
331
- * @package
325
+ * @internal
332
326
  */
333
- const mutatorOpenListener = function(e) {
327
+ export function mutatorOpenListener(e: Abstract) {
334
328
  if (e.type !== eventUtils.BUBBLE_OPEN) {
335
329
  return;
336
330
  }
337
- const bubbleEvent = /** @type {!BubbleOpen} */ (e);
338
- if (!(bubbleEvent.bubbleType === 'mutator' && bubbleEvent.isOpen)) {
331
+ const bubbleEvent = e as BubbleOpen;
332
+ if (!(bubbleEvent.bubbleType === 'mutator' && bubbleEvent.isOpen) ||
333
+ !bubbleEvent.blockId) {
339
334
  return;
340
335
  }
341
- const workspaceId = /** @type {string} */ (bubbleEvent.workspaceId);
342
- const block = /** @type {!BlockSvg} */
343
- (Workspace.getById(workspaceId).getBlockById(bubbleEvent.blockId));
336
+ const workspaceId = (bubbleEvent.workspaceId);
337
+ const block = common.getWorkspaceById(workspaceId)!.getBlockById(
338
+ bubbleEvent.blockId) as BlockSvg;
344
339
  const type = block.type;
345
340
  if (type !== 'procedures_defnoreturn' && type !== 'procedures_defreturn') {
346
341
  return;
347
342
  }
348
- const workspace = /** @type {!WorkspaceSvg} */ (block.mutator.getWorkspace());
343
+ const workspace = block.mutator!.getWorkspace() as WorkspaceSvg;
349
344
  updateMutatorFlyout(workspace);
350
345
  workspace.addChangeListener(mutatorChangeListener);
351
- };
352
- exports.mutatorOpenListener = mutatorOpenListener;
353
-
346
+ }
354
347
  /**
355
348
  * Listens for changes in a procedure mutator and triggers flyout updates when
356
349
  * necessary.
357
- * @param {!Abstract} e The event that triggered this listener.
350
+ * @param e The event that triggered this listener.
358
351
  */
359
- const mutatorChangeListener = function(e) {
352
+ function mutatorChangeListener(e: Abstract) {
360
353
  if (e.type !== eventUtils.BLOCK_CREATE &&
361
354
  e.type !== eventUtils.BLOCK_DELETE &&
362
355
  e.type !== eventUtils.BLOCK_CHANGE) {
363
356
  return;
364
357
  }
365
- const workspaceId = /** @type {string} */ (e.workspaceId);
366
- const workspace = /** @type {!WorkspaceSvg} */
367
- (Workspace.getById(workspaceId));
358
+ const workspaceId = e.workspaceId as string;
359
+ const workspace = common.getWorkspaceById(workspaceId) as WorkspaceSvg;
368
360
  updateMutatorFlyout(workspace);
369
- };
361
+ }
370
362
 
371
363
  /**
372
364
  * Find all the callers of a named procedure.
373
- * @param {string} name Name of procedure.
374
- * @param {!Workspace} workspace The workspace to find callers in.
375
- * @return {!Array<!Block>} Array of caller blocks.
365
+ * @param name Name of procedure.
366
+ * @param workspace The workspace to find callers in.
367
+ * @return Array of caller blocks.
376
368
  * @alias Blockly.Procedures.getCallers
377
369
  */
378
- const getCallers = function(name, workspace) {
370
+ export function getCallers(name: string, workspace: Workspace): Block[] {
379
371
  const callers = [];
380
372
  const blocks = workspace.getAllBlocks(false);
381
373
  // Iterate through every block and check the name.
382
374
  for (let i = 0; i < blocks.length; i++) {
383
375
  // Assume it is a procedure block so we can check.
384
- const procedureBlock = /** @type {!ProcedureBlock} */ (blocks[i]);
376
+ const procedureBlock = blocks[i] as unknown as ProcedureBlock;
385
377
  if (procedureBlock.getProcedureCall) {
386
378
  const procName = procedureBlock.getProcedureCall();
387
379
  // Procedure name may be null if the block is only half-built.
@@ -391,55 +383,55 @@ const getCallers = function(name, workspace) {
391
383
  }
392
384
  }
393
385
  return callers;
394
- };
395
- exports.getCallers = getCallers;
386
+ }
396
387
 
397
388
  /**
398
389
  * When a procedure definition changes its parameters, find and edit all its
399
390
  * callers.
400
- * @param {!Block} defBlock Procedure definition block.
391
+ * @param defBlock Procedure definition block.
401
392
  * @alias Blockly.Procedures.mutateCallers
402
393
  */
403
- const mutateCallers = function(defBlock) {
394
+ export function mutateCallers(defBlock: Block) {
404
395
  const oldRecordUndo = eventUtils.getRecordUndo();
405
- const procedureBlock = /** @type {!ProcedureBlock} */ (defBlock);
396
+ const procedureBlock = defBlock as unknown as ProcedureBlock;
406
397
  const name = procedureBlock.getProcedureDef()[0];
407
- const xmlElement = defBlock.mutationToDom(true);
398
+ const xmlElement = defBlock.mutationToDom!(true);
408
399
  const callers = getCallers(name, defBlock.workspace);
409
- for (let i = 0, caller; (caller = callers[i]); i++) {
410
- const oldMutationDom = caller.mutationToDom();
400
+ for (let i = 0, caller; caller = callers[i]; i++) {
401
+ const oldMutationDom = caller.mutationToDom!();
411
402
  const oldMutation = oldMutationDom && Xml.domToText(oldMutationDom);
412
- caller.domToMutation(xmlElement);
413
- const newMutationDom = caller.mutationToDom();
403
+ if (caller.domToMutation) {
404
+ caller.domToMutation(xmlElement);
405
+ }
406
+ const newMutationDom = caller.mutationToDom!();
414
407
  const newMutation = newMutationDom && Xml.domToText(newMutationDom);
415
408
  if (oldMutation !== newMutation) {
416
409
  // Fire a mutation on every caller block. But don't record this as an
417
410
  // undo action since it is deterministically tied to the procedure's
418
411
  // definition mutation.
419
412
  eventUtils.setRecordUndo(false);
420
- eventUtils.fire(new (eventUtils.get(eventUtils.BLOCK_CHANGE))(
421
- caller, 'mutation', null, oldMutation, newMutation));
413
+ eventUtils.fire(new (eventUtils.get(eventUtils.BLOCK_CHANGE))!
414
+ (caller, 'mutation', null, oldMutation, newMutation));
422
415
  eventUtils.setRecordUndo(oldRecordUndo);
423
416
  }
424
417
  }
425
- };
426
- exports.mutateCallers = mutateCallers;
418
+ }
427
419
 
428
420
  /**
429
421
  * Find the definition block for the named procedure.
430
- * @param {string} name Name of procedure.
431
- * @param {!Workspace} workspace The workspace to search.
432
- * @return {?Block} The procedure definition block, or null not found.
422
+ * @param name Name of procedure.
423
+ * @param workspace The workspace to search.
424
+ * @return The procedure definition block, or null not found.
433
425
  * @alias Blockly.Procedures.getDefinition
434
426
  */
435
- const getDefinition = function(name, workspace) {
427
+ export function getDefinition(name: string, workspace: Workspace): Block|null {
436
428
  // Do not assume procedure is a top block. Some languages allow nested
437
429
  // procedures. Also do not assume it is one of the built-in blocks. Only
438
430
  // rely on getProcedureDef.
439
431
  const blocks = workspace.getAllBlocks(false);
440
432
  for (let i = 0; i < blocks.length; i++) {
441
433
  // Assume it is a procedure block so we can check.
442
- const procedureBlock = /** @type {!ProcedureBlock} */ (blocks[i]);
434
+ const procedureBlock = blocks[i] as unknown as ProcedureBlock;
443
435
  if (procedureBlock.getProcedureDef) {
444
436
  const tuple = procedureBlock.getProcedureDef();
445
437
  if (tuple && Names.equals(tuple[0], name)) {
@@ -448,5 +440,4 @@ const getDefinition = function(name, workspace) {
448
440
  }
449
441
  }
450
442
  return null;
451
- };
452
- exports.getDefinition = getDefinition;
443
+ }