blockly 8.0.4-beta.0 → 8.0.5-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 (858) hide show
  1. package/blockly.min.js +2421 -2688
  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/msg/ab.js +421 -421
  609. package/msg/ace.js +421 -421
  610. package/msg/af.js +421 -421
  611. package/msg/am.js +421 -421
  612. package/msg/ar.js +421 -421
  613. package/msg/ast.js +421 -421
  614. package/msg/az.js +421 -421
  615. package/msg/ba.js +421 -421
  616. package/msg/bcc.js +421 -421
  617. package/msg/be-tarask.js +421 -421
  618. package/msg/be.js +421 -421
  619. package/msg/bg.js +421 -421
  620. package/msg/bn.js +421 -421
  621. package/msg/br.js +421 -421
  622. package/msg/bs.js +421 -421
  623. package/msg/ca.js +421 -421
  624. package/msg/cdo.js +421 -421
  625. package/msg/cs.js +421 -421
  626. package/msg/da.js +421 -421
  627. package/msg/de.js +421 -421
  628. package/msg/diq.js +421 -421
  629. package/msg/dty.js +421 -421
  630. package/msg/ee.js +421 -421
  631. package/msg/el.js +421 -421
  632. package/msg/en-gb.js +421 -421
  633. package/msg/en.js +421 -421
  634. package/msg/eo.js +421 -421
  635. package/msg/es.js +421 -421
  636. package/msg/et.js +421 -421
  637. package/msg/eu.js +421 -421
  638. package/msg/fa.js +421 -421
  639. package/msg/fi.js +421 -421
  640. package/msg/fo.js +421 -421
  641. package/msg/fr.js +421 -421
  642. package/msg/frr.js +421 -421
  643. package/msg/gl.js +421 -421
  644. package/msg/gn.js +421 -421
  645. package/msg/gor.js +421 -421
  646. package/msg/ha.js +421 -421
  647. package/msg/hak.js +421 -421
  648. package/msg/he.js +421 -421
  649. package/msg/hi.js +421 -421
  650. package/msg/hr.js +421 -421
  651. package/msg/hrx.js +421 -421
  652. package/msg/hu.js +421 -421
  653. package/msg/hy.js +421 -421
  654. package/msg/ia.js +421 -421
  655. package/msg/id.js +421 -421
  656. package/msg/ig.js +421 -421
  657. package/msg/inh.js +421 -421
  658. package/msg/is.js +421 -421
  659. package/msg/it.js +421 -421
  660. package/msg/ja.js +421 -421
  661. package/msg/ka.js +421 -421
  662. package/msg/kab.js +421 -421
  663. package/msg/kbd-cyrl.js +421 -421
  664. package/msg/km.js +421 -421
  665. package/msg/kn.js +421 -421
  666. package/msg/ko.js +421 -421
  667. package/msg/ksh.js +421 -421
  668. package/msg/ku-latn.js +421 -421
  669. package/msg/ky.js +421 -421
  670. package/msg/la.js +421 -421
  671. package/msg/lb.js +421 -421
  672. package/msg/lki.js +421 -421
  673. package/msg/lo.js +421 -421
  674. package/msg/lrc.js +421 -421
  675. package/msg/lt.js +421 -421
  676. package/msg/lv.js +421 -421
  677. package/msg/mg.js +421 -421
  678. package/msg/mk.js +421 -421
  679. package/msg/ml.js +421 -421
  680. package/msg/mnw.js +421 -421
  681. package/msg/ms.js +421 -421
  682. package/msg/my.js +421 -421
  683. package/msg/mzn.js +421 -421
  684. package/msg/nb.js +421 -421
  685. package/msg/ne.js +421 -421
  686. package/msg/nl.js +421 -421
  687. package/msg/oc.js +421 -421
  688. package/msg/olo.js +421 -421
  689. package/msg/pa.js +421 -421
  690. package/msg/pl.js +421 -421
  691. package/msg/pms.js +421 -421
  692. package/msg/ps.js +421 -421
  693. package/msg/pt-br.js +421 -421
  694. package/msg/pt.js +421 -421
  695. package/msg/ro.js +421 -421
  696. package/msg/ru.js +421 -421
  697. package/msg/sc.js +421 -421
  698. package/msg/sco.js +421 -421
  699. package/msg/sd.js +421 -421
  700. package/msg/shn.js +421 -421
  701. package/msg/si.js +421 -421
  702. package/msg/sk.js +421 -421
  703. package/msg/skr-arab.js +421 -421
  704. package/msg/sl.js +421 -421
  705. package/msg/smn.js +421 -421
  706. package/msg/sq.js +421 -421
  707. package/msg/sr-latn.js +421 -421
  708. package/msg/sr.js +421 -421
  709. package/msg/sv.js +421 -421
  710. package/msg/sw.js +421 -421
  711. package/msg/ta.js +421 -421
  712. package/msg/tcy.js +421 -421
  713. package/msg/te.js +421 -421
  714. package/msg/th.js +421 -421
  715. package/msg/ti.js +421 -421
  716. package/msg/tl.js +421 -421
  717. package/msg/tlh.js +421 -421
  718. package/msg/tr.js +421 -421
  719. package/msg/ug-arab.js +421 -421
  720. package/msg/uk.js +421 -421
  721. package/msg/ur.js +421 -421
  722. package/msg/uz.js +421 -421
  723. package/msg/vi.js +421 -421
  724. package/msg/xmf.js +421 -421
  725. package/msg/yo.js +421 -421
  726. package/msg/yue.js +421 -421
  727. package/msg/zgh.js +421 -421
  728. package/msg/zh-hans.js +421 -421
  729. package/msg/zh-hant.js +421 -421
  730. package/package.json +5 -5
  731. package/php.d.ts +0 -3
  732. package/php_compressed.js +322 -93
  733. package/php_compressed.js.map +1 -1
  734. package/python.d.ts +0 -3
  735. package/python_compressed.js +237 -90
  736. package/python_compressed.js.map +1 -1
  737. package/blockly.d.ts +0 -26127
  738. package/core/blockly_options.js +0 -28
  739. package/core/bubble_dragger.js +0 -298
  740. package/core/clipboard.js +0 -80
  741. package/core/component_manager.js +0 -263
  742. package/core/contextmenu_items.js +0 -651
  743. package/core/contextmenu_registry.js +0 -178
  744. package/core/delete_area.js +0 -87
  745. package/core/dialog.js +0 -107
  746. package/core/drag_target.js +0 -98
  747. package/core/events/events.js +0 -147
  748. package/core/events/events_abstract.js +0 -133
  749. package/core/events/events_block_base.js +0 -70
  750. package/core/events/events_block_drag.js +0 -89
  751. package/core/events/events_bubble_open.js +0 -90
  752. package/core/events/events_comment_base.js +0 -121
  753. package/core/events/events_marker_move.js +0 -110
  754. package/core/events/events_selected.js +0 -83
  755. package/core/events/events_toolbox_item_select.js +0 -84
  756. package/core/events/events_trashcan_open.js +0 -73
  757. package/core/events/events_var_base.js +0 -70
  758. package/core/events/events_viewport.js +0 -107
  759. package/core/events/workspace_events.js +0 -93
  760. package/core/field_angle.js +0 -591
  761. package/core/field_checkbox.js +0 -255
  762. package/core/field_colour.js +0 -717
  763. package/core/field_image.js +0 -304
  764. package/core/field_label.js +0 -149
  765. package/core/field_label_serializable.js +0 -80
  766. package/core/field_textinput.js +0 -619
  767. package/core/flyout_button.js +0 -356
  768. package/core/grid.js +0 -226
  769. package/core/icon.js +0 -225
  770. package/core/input.js +0 -335
  771. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  772. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  773. package/core/interfaces/i_autohideable.js +0 -40
  774. package/core/interfaces/i_block_dragger.js +0 -66
  775. package/core/interfaces/i_bounded_element.js +0 -45
  776. package/core/interfaces/i_bubble.js +0 -95
  777. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  778. package/core/interfaces/i_connection_checker.js +0 -104
  779. package/core/interfaces/i_contextmenu.js +0 -32
  780. package/core/interfaces/i_copyable.js +0 -49
  781. package/core/interfaces/i_delete_area.js +0 -50
  782. package/core/interfaces/i_drag_target.js +0 -88
  783. package/core/interfaces/i_flyout.js +0 -201
  784. package/core/interfaces/i_keyboard_accessible.js +0 -38
  785. package/core/interfaces/i_metrics_manager.js +0 -154
  786. package/core/interfaces/i_positionable.js +0 -51
  787. package/core/interfaces/i_selectable.js +0 -51
  788. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  789. package/core/interfaces/i_serializer.js +0 -77
  790. package/core/interfaces/i_styleable.js +0 -39
  791. package/core/interfaces/i_toolbox.js +0 -142
  792. package/core/interfaces/i_toolbox_item.js +0 -85
  793. package/core/marker_manager.js +0 -213
  794. package/core/menuitem.js +0 -292
  795. package/core/names.js +0 -293
  796. package/core/registry.js +0 -384
  797. package/core/renderers/common/block_rendering.js +0 -170
  798. package/core/renderers/common/constants.js +0 -1250
  799. package/core/renderers/common/i_path_object.js +0 -162
  800. package/core/renderers/common/marker_svg.js +0 -721
  801. package/core/renderers/common/path_object.js +0 -283
  802. package/core/renderers/common/renderer.js +0 -305
  803. package/core/renderers/geras/constants.js +0 -73
  804. package/core/renderers/geras/geras.js +0 -36
  805. package/core/renderers/geras/measurables/inline_input.js +0 -58
  806. package/core/renderers/geras/measurables/statement_input.js +0 -57
  807. package/core/renderers/geras/renderer.js +0 -149
  808. package/core/renderers/measurables/base.js +0 -64
  809. package/core/renderers/measurables/bottom_row.js +0 -138
  810. package/core/renderers/measurables/connection.js +0 -56
  811. package/core/renderers/measurables/external_value_input.js +0 -70
  812. package/core/renderers/measurables/field.js +0 -71
  813. package/core/renderers/measurables/in_row_spacer.js +0 -47
  814. package/core/renderers/measurables/input_connection.js +0 -75
  815. package/core/renderers/measurables/next_connection.js +0 -50
  816. package/core/renderers/measurables/output_connection.js +0 -61
  817. package/core/renderers/measurables/previous_connection.js +0 -50
  818. package/core/renderers/measurables/round_corner.js +0 -52
  819. package/core/renderers/measurables/row.js +0 -247
  820. package/core/renderers/measurables/spacer_row.js +0 -69
  821. package/core/renderers/measurables/square_corner.js +0 -50
  822. package/core/renderers/measurables/top_row.js +0 -143
  823. package/core/renderers/measurables/types.js +0 -353
  824. package/core/renderers/minimalist/drawer.js +0 -42
  825. package/core/renderers/minimalist/info.js +0 -54
  826. package/core/renderers/minimalist/minimalist.js +0 -26
  827. package/core/renderers/minimalist/renderer.js +0 -80
  828. package/core/renderers/thrasos/renderer.js +0 -53
  829. package/core/renderers/thrasos/thrasos.js +0 -22
  830. package/core/renderers/zelos/marker_svg.js +0 -179
  831. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  832. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  833. package/core/renderers/zelos/path_object.js +0 -247
  834. package/core/renderers/zelos/renderer.js +0 -147
  835. package/core/renderers/zelos/zelos.js +0 -38
  836. package/core/serialization/exceptions.js +0 -144
  837. package/core/shortcut_registry.js +0 -366
  838. package/core/theme/themes.js +0 -23
  839. package/core/theme.js +0 -228
  840. package/core/theme_manager.js +0 -211
  841. package/core/toolbox/category.js +0 -751
  842. package/core/toolbox/collapsible_category.js +0 -311
  843. package/core/toolbox/separator.js +0 -133
  844. package/core/toolbox/toolbox_item.js +0 -173
  845. package/core/touch.js +0 -285
  846. package/core/utils/coordinate.js +0 -138
  847. package/core/utils/global.js +0 -41
  848. package/core/utils/keycodes.js +0 -172
  849. package/core/utils/metrics.js +0 -154
  850. package/core/utils/svg.js +0 -186
  851. package/core/utils/toolbox.js +0 -459
  852. package/core/utils/useragent.js +0 -197
  853. package/core/utils.js +0 -383
  854. package/core/variable_model.js +0 -96
  855. package/core/widgetdiv.js +0 -290
  856. package/core/workspace.js +0 -836
  857. package/core/workspace_comment.js +0 -400
  858. package/core/workspace_dragger.js +0 -115
@@ -7,24 +7,23 @@
7
7
  /**
8
8
  * @fileoverview Utility functions for handling variables.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Utility functions for handling variables.
14
13
  * @namespace Blockly.Variables
15
14
  */
16
- goog.module('Blockly.Variables');
17
-
18
- const Xml = goog.require('Blockly.Xml');
19
- const dialog = goog.require('Blockly.dialog');
20
- const utilsXml = goog.require('Blockly.utils.xml');
21
- const {Blocks} = goog.require('Blockly.blocks');
22
- const {Msg} = goog.require('Blockly.Msg');
23
- const {VariableModel} = goog.require('Blockly.VariableModel');
24
- /* eslint-disable-next-line no-unused-vars */
25
- const {Workspace} = goog.requireType('Blockly.Workspace');
26
- /* eslint-disable-next-line no-unused-vars */
27
- const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.Variables');
17
+
18
+ import {Blocks} from './blocks.js';
19
+ import * as dialog from './dialog.js';
20
+ import {Msg} from './msg.js';
21
+ import * as utilsXml from './utils/xml.js';
22
+ import {VariableModel} from './variable_model.js';
23
+ import type {Workspace} from './workspace.js';
24
+ import type {WorkspaceSvg} from './workspace_svg.js';
25
+ import * as Xml from './xml.js';
26
+
28
27
 
29
28
  /**
30
29
  * String for use in the "custom" attribute of a category in toolbox XML.
@@ -32,25 +31,23 @@ const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
32
31
  * variable blocks.
33
32
  * See also Blockly.Procedures.CATEGORY_NAME and
34
33
  * Blockly.VariablesDynamic.CATEGORY_NAME.
35
- * @const {string}
36
34
  * @alias Blockly.Variables.CATEGORY_NAME
37
35
  */
38
- const CATEGORY_NAME = 'VARIABLE';
39
- exports.CATEGORY_NAME = CATEGORY_NAME;
36
+ export const CATEGORY_NAME = 'VARIABLE';
40
37
 
41
38
  /**
42
39
  * Find all user-created variables that are in use in the workspace.
43
40
  * For use by generators.
44
41
  * To get a list of all variables on a workspace, including unused variables,
45
42
  * call Workspace.getAllVariables.
46
- * @param {!Workspace} ws The workspace to search for variables.
47
- * @return {!Array<!VariableModel>} Array of variable models.
43
+ * @param ws The workspace to search for variables.
44
+ * @return Array of variable models.
48
45
  * @alias Blockly.Variables.allUsedVarModels
49
46
  */
50
- const allUsedVarModels = function(ws) {
47
+ export function allUsedVarModels(ws: Workspace): VariableModel[] {
51
48
  const blocks = ws.getAllBlocks(false);
52
- const variableHash = Object.create(null);
53
- // Iterate through every block and add each variable to the hash.
49
+ const variables = new Set<VariableModel>();
50
+ // Iterate through every block and add each variable to the set.
54
51
  for (let i = 0; i < blocks.length; i++) {
55
52
  const blockVariables = blocks[i].getVarModels();
56
53
  if (blockVariables) {
@@ -58,24 +55,16 @@ const allUsedVarModels = function(ws) {
58
55
  const variable = blockVariables[j];
59
56
  const id = variable.getId();
60
57
  if (id) {
61
- variableHash[id] = variable;
58
+ variables.add(variable);
62
59
  }
63
60
  }
64
61
  }
65
62
  }
66
- // Flatten the hash into a list.
67
- const variableList = [];
68
- for (const id in variableHash) {
69
- variableList.push(variableHash[id]);
70
- }
71
- return variableList;
72
- };
73
- exports.allUsedVarModels = allUsedVarModels;
63
+ // Convert the set into a list.
64
+ return Array.from(variables.values());
65
+ }
74
66
 
75
- /**
76
- * @type {Object<string,boolean>}
77
- */
78
- const ALL_DEVELOPER_VARS_WARNINGS_BY_BLOCK_TYPE = {};
67
+ const ALL_DEVELOPER_VARS_WARNINGS_BY_BLOCK_TYPE: {[key: string]: boolean} = {};
79
68
 
80
69
  /**
81
70
  * Find all developer variables used by blocks in the workspace.
@@ -84,19 +73,20 @@ const ALL_DEVELOPER_VARS_WARNINGS_BY_BLOCK_TYPE = {};
84
73
  * To declare developer variables, define the getDeveloperVariables function on
85
74
  * your block and return a list of variable names.
86
75
  * For use by generators.
87
- * @param {!Workspace} workspace The workspace to search.
88
- * @return {!Array<string>} A list of non-duplicated variable names.
76
+ * @param workspace The workspace to search.
77
+ * @return A list of non-duplicated variable names.
89
78
  * @alias Blockly.Variables.allDeveloperVariables
90
79
  */
91
- const allDeveloperVariables = function(workspace) {
80
+ export function allDeveloperVariables(workspace: Workspace): string[] {
92
81
  const blocks = workspace.getAllBlocks(false);
93
- const variableHash = Object.create(null);
94
- for (let i = 0, block; (block = blocks[i]); i++) {
82
+ const variables = new Set<string>();
83
+ for (let i = 0, block; block = blocks[i]; i++) {
95
84
  let getDeveloperVariables = block.getDeveloperVariables;
96
- if (!getDeveloperVariables && block.getDeveloperVars) {
85
+ if (!getDeveloperVariables &&
86
+ (block as AnyDuringMigration).getDeveloperVars) {
97
87
  // August 2018: getDeveloperVars() was deprecated and renamed
98
88
  // getDeveloperVariables().
99
- getDeveloperVariables = block.getDeveloperVars;
89
+ getDeveloperVariables = (block as AnyDuringMigration).getDeveloperVars;
100
90
  if (!ALL_DEVELOPER_VARS_WARNINGS_BY_BLOCK_TYPE[block.type]) {
101
91
  console.warn(
102
92
  'Function getDeveloperVars() deprecated. Use ' +
@@ -107,48 +97,50 @@ const allDeveloperVariables = function(workspace) {
107
97
  if (getDeveloperVariables) {
108
98
  const devVars = getDeveloperVariables();
109
99
  for (let j = 0; j < devVars.length; j++) {
110
- variableHash[devVars[j]] = true;
100
+ variables.add(devVars[j]);
111
101
  }
112
102
  }
113
103
  }
114
-
115
- // Flatten the hash into a list.
116
- return Object.keys(variableHash);
117
- };
118
- exports.allDeveloperVariables = allDeveloperVariables;
104
+ // Convert the set into a list.
105
+ return Array.from(variables.values());
106
+ }
119
107
 
120
108
  /**
121
109
  * Construct the elements (blocks and button) required by the flyout for the
122
110
  * variable category.
123
- * @param {!WorkspaceSvg} workspace The workspace containing variables.
124
- * @return {!Array<!Element>} Array of XML elements.
111
+ * @param workspace The workspace containing variables.
112
+ * @return Array of XML elements.
125
113
  * @alias Blockly.Variables.flyoutCategory
126
114
  */
127
- const flyoutCategory = function(workspace) {
128
- let xmlList = [];
115
+ export function flyoutCategory(workspace: WorkspaceSvg): Element[] {
116
+ let xmlList = new Array<Element>();
129
117
  const button = document.createElement('button');
130
118
  button.setAttribute('text', '%{BKY_NEW_VARIABLE}');
131
119
  button.setAttribute('callbackKey', 'CREATE_VARIABLE');
132
120
 
133
121
  workspace.registerButtonCallback('CREATE_VARIABLE', function(button) {
134
- createVariableButtonHandler(button.getTargetWorkspace());
122
+ // AnyDuringMigration because: Argument of type 'WorkspaceSvg' is not
123
+ // assignable to parameter of type 'Workspace'.
124
+ createVariableButtonHandler(
125
+ button.getTargetWorkspace() as AnyDuringMigration);
135
126
  });
136
127
 
137
128
  xmlList.push(button);
138
129
 
139
- const blockList = flyoutCategoryBlocks(workspace);
130
+ // AnyDuringMigration because: Argument of type 'WorkspaceSvg' is not
131
+ // assignable to parameter of type 'Workspace'.
132
+ const blockList = flyoutCategoryBlocks(workspace as AnyDuringMigration);
140
133
  xmlList = xmlList.concat(blockList);
141
134
  return xmlList;
142
- };
143
- exports.flyoutCategory = flyoutCategory;
135
+ }
144
136
 
145
137
  /**
146
138
  * Construct the blocks required by the flyout for the variable category.
147
- * @param {!Workspace} workspace The workspace containing variables.
148
- * @return {!Array<!Element>} Array of XML block elements.
139
+ * @param workspace The workspace containing variables.
140
+ * @return Array of XML block elements.
149
141
  * @alias Blockly.Variables.flyoutCategoryBlocks
150
142
  */
151
- const flyoutCategoryBlocks = function(workspace) {
143
+ export function flyoutCategoryBlocks(workspace: Workspace): Element[] {
152
144
  const variableModelList = workspace.getVariablesOfType('');
153
145
 
154
146
  const xmlList = [];
@@ -158,15 +150,27 @@ const flyoutCategoryBlocks = function(workspace) {
158
150
  if (Blocks['variables_set']) {
159
151
  const block = utilsXml.createElement('block');
160
152
  block.setAttribute('type', 'variables_set');
161
- block.setAttribute('gap', Blocks['math_change'] ? 8 : 24);
162
- block.appendChild(generateVariableFieldDom(mostRecentVariable));
153
+ // AnyDuringMigration because: Argument of type 'number' is not
154
+ // assignable to parameter of type 'string'.
155
+ block.setAttribute(
156
+ 'gap', (Blocks['math_change'] ? 8 : 24) as AnyDuringMigration);
157
+ // AnyDuringMigration because: Argument of type 'Element | null' is not
158
+ // assignable to parameter of type 'Node'.
159
+ block.appendChild(
160
+ generateVariableFieldDom(mostRecentVariable) as AnyDuringMigration);
163
161
  xmlList.push(block);
164
162
  }
165
163
  if (Blocks['math_change']) {
166
164
  const block = utilsXml.createElement('block');
167
165
  block.setAttribute('type', 'math_change');
168
- block.setAttribute('gap', Blocks['variables_get'] ? 20 : 8);
169
- block.appendChild(generateVariableFieldDom(mostRecentVariable));
166
+ // AnyDuringMigration because: Argument of type 'number' is not
167
+ // assignable to parameter of type 'string'.
168
+ block.setAttribute(
169
+ 'gap', (Blocks['variables_get'] ? 20 : 8) as AnyDuringMigration);
170
+ // AnyDuringMigration because: Argument of type 'Element | null' is not
171
+ // assignable to parameter of type 'Node'.
172
+ block.appendChild(
173
+ generateVariableFieldDom(mostRecentVariable) as AnyDuringMigration);
170
174
  const value = Xml.textToDom(
171
175
  '<value name="DELTA">' +
172
176
  '<shadow type="math_number">' +
@@ -179,50 +183,58 @@ const flyoutCategoryBlocks = function(workspace) {
179
183
 
180
184
  if (Blocks['variables_get']) {
181
185
  variableModelList.sort(VariableModel.compareByName);
182
- for (let i = 0, variable; (variable = variableModelList[i]); i++) {
186
+ for (let i = 0, variable; variable = variableModelList[i]; i++) {
183
187
  const block = utilsXml.createElement('block');
184
188
  block.setAttribute('type', 'variables_get');
185
- block.setAttribute('gap', 8);
186
- block.appendChild(generateVariableFieldDom(variable));
189
+ // AnyDuringMigration because: Argument of type 'number' is not
190
+ // assignable to parameter of type 'string'.
191
+ block.setAttribute('gap', 8 as AnyDuringMigration);
192
+ // AnyDuringMigration because: Argument of type 'Element | null' is not
193
+ // assignable to parameter of type 'Node'.
194
+ block.appendChild(
195
+ generateVariableFieldDom(variable) as AnyDuringMigration);
187
196
  xmlList.push(block);
188
197
  }
189
198
  }
190
199
  }
191
200
  return xmlList;
192
- };
193
- exports.flyoutCategoryBlocks = flyoutCategoryBlocks;
201
+ }
194
202
 
195
- /**
196
- * @alias Blockly.Variables.VAR_LETTER_OPTIONS
197
- */
198
- const VAR_LETTER_OPTIONS = 'ijkmnopqrstuvwxyzabcdefgh'; // No 'l'.
199
- exports.VAR_LETTER_OPTIONS = VAR_LETTER_OPTIONS;
203
+ /** @alias Blockly.Variables.VAR_LETTER_OPTIONS */
204
+ export const VAR_LETTER_OPTIONS = 'ijkmnopqrstuvwxyzabcdefgh';
200
205
 
201
206
  /**
202
207
  * Return a new variable name that is not yet being used. This will try to
203
208
  * generate single letter variable names in the range 'i' to 'z' to start with.
204
209
  * If no unique name is located it will try 'i' to 'z', 'a' to 'h',
205
210
  * then 'i2' to 'z2' etc. Skip 'l'.
206
- * @param {!Workspace} workspace The workspace to be unique in.
207
- * @return {string} New variable name.
211
+ * @param workspace The workspace to be unique in.
212
+ * @return New variable name.
208
213
  * @alias Blockly.Variables.generateUniqueName
209
214
  */
210
- const generateUniqueName = function(workspace) {
215
+ export function generateUniqueName(workspace: Workspace): string {
216
+ return TEST_ONLY.generateUniqueNameInternal(workspace);
217
+ }
218
+
219
+ /**
220
+ * Private version of generateUniqueName for stubbing in tests.
221
+ */
222
+ function generateUniqueNameInternal(workspace: Workspace): string {
211
223
  return generateUniqueNameFromOptions(
212
224
  VAR_LETTER_OPTIONS.charAt(0), workspace.getAllVariableNames());
213
- };
214
- exports.generateUniqueName = generateUniqueName;
225
+ }
215
226
 
216
227
  /**
217
228
  * Returns a unique name that is not present in the usedNames array. This
218
229
  * will try to generate single letter names in the range a -> z (skip l). It
219
230
  * will start with the character passed to startChar.
220
- * @param {string} startChar The character to start the search at.
221
- * @param {!Array<string>} usedNames A list of all of the used names.
222
- * @return {string} A unique name that is not present in the usedNames array.
231
+ * @param startChar The character to start the search at.
232
+ * @param usedNames A list of all of the used names.
233
+ * @return A unique name that is not present in the usedNames array.
223
234
  * @alias Blockly.Variables.generateUniqueNameFromOptions
224
235
  */
225
- const generateUniqueNameFromOptions = function(startChar, usedNames) {
236
+ export function generateUniqueNameFromOptions(
237
+ startChar: string, usedNames: string[]): string {
226
238
  if (!usedNames.length) {
227
239
  return startChar;
228
240
  }
@@ -249,12 +261,13 @@ const generateUniqueNameFromOptions = function(startChar, usedNames) {
249
261
  if (letterIndex === letters.length) {
250
262
  // Reached the end of the character sequence so back to 'i'.
251
263
  letterIndex = 0;
252
- suffix = Number(suffix) + 1;
264
+ // AnyDuringMigration because: Type 'number' is not assignable to type
265
+ // 'string'.
266
+ suffix = (Number(suffix) + 1) as AnyDuringMigration;
253
267
  }
254
268
  potName = letters.charAt(letterIndex) + suffix;
255
269
  }
256
- };
257
- exports.generateUniqueNameFromOptions = generateUniqueNameFromOptions;
270
+ }
258
271
 
259
272
  /**
260
273
  * Handles "Create Variable" button in the default variables toolbox category.
@@ -265,20 +278,21 @@ exports.generateUniqueNameFromOptions = generateUniqueNameFromOptions;
265
278
  * types and after-creation processing. More complex customization (e.g.,
266
279
  * prompting for variable type) is beyond the scope of this function.
267
280
  *
268
- * @param {!Workspace} workspace The workspace on which to create the
269
- * variable.
270
- * @param {function(?string=)=} opt_callback A callback. It will be passed an
271
- * acceptable new variable name, or null if change is to be aborted (cancel
272
- * button), or undefined if an existing variable was chosen.
273
- * @param {string=} opt_type The type of the variable like 'int', 'string', or
274
- * ''. This will default to '', which is a specific type.
281
+ * @param workspace The workspace on which to create the variable.
282
+ * @param opt_callback A callback. It will be passed an acceptable new variable
283
+ * name, or null if change is to be aborted (cancel button), or undefined if
284
+ * an existing variable was chosen.
285
+ * @param opt_type The type of the variable like 'int', 'string', or ''. This
286
+ * will default to '', which is a specific type.
275
287
  * @alias Blockly.Variables.createVariableButtonHandler
276
288
  */
277
- const createVariableButtonHandler = function(
278
- workspace, opt_callback, opt_type) {
289
+ export function createVariableButtonHandler(
290
+ workspace: Workspace,
291
+ opt_callback?: (p1?: string|null) => AnyDuringMigration,
292
+ opt_type?: string) {
279
293
  const type = opt_type || '';
280
294
  // This function needs to be named so it can be called recursively.
281
- const promptAndCheckWithAlert = function(defaultName) {
295
+ function promptAndCheckWithAlert(defaultName: AnyDuringMigration) {
282
296
  promptName(Msg['NEW_VARIABLE_TITLE'], defaultName, function(text) {
283
297
  if (text) {
284
298
  const existing = nameUsedWithAnyType(text, workspace);
@@ -291,7 +305,7 @@ const createVariableButtonHandler = function(
291
305
  msg = msg.replace('%1', existing.name).replace('%2', existing.type);
292
306
  }
293
307
  dialog.alert(msg, function() {
294
- promptAndCheckWithAlert(text); // Recurse
308
+ promptAndCheckWithAlert(text);
295
309
  });
296
310
  } else {
297
311
  // No conflict
@@ -307,26 +321,26 @@ const createVariableButtonHandler = function(
307
321
  }
308
322
  }
309
323
  });
310
- };
324
+ }
311
325
  promptAndCheckWithAlert('');
312
- };
313
- exports.createVariableButtonHandler = createVariableButtonHandler;
326
+ }
314
327
 
315
328
  /**
316
329
  * Opens a prompt that allows the user to enter a new name for a variable.
317
330
  * Triggers a rename if the new name is valid. Or re-prompts if there is a
318
331
  * collision.
319
- * @param {!Workspace} workspace The workspace on which to rename the
320
- * variable.
321
- * @param {!VariableModel} variable Variable to rename.
322
- * @param {function(?string=)=} opt_callback A callback. It will
323
- * be passed an acceptable new variable name, or null if change is to be
324
- * aborted (cancel button), or undefined if an existing variable was chosen.
332
+ * @param workspace The workspace on which to rename the variable.
333
+ * @param variable Variable to rename.
334
+ * @param opt_callback A callback. It will be passed an acceptable new variable
335
+ * name, or null if change is to be aborted (cancel button), or undefined if
336
+ * an existing variable was chosen.
325
337
  * @alias Blockly.Variables.renameVariable
326
338
  */
327
- const renameVariable = function(workspace, variable, opt_callback) {
339
+ export function renameVariable(
340
+ workspace: Workspace, variable: VariableModel,
341
+ opt_callback?: (p1?: string|null) => AnyDuringMigration) {
328
342
  // This function needs to be named so it can be called recursively.
329
- const promptAndCheckWithAlert = function(defaultName) {
343
+ function promptAndCheckWithAlert(defaultName: AnyDuringMigration) {
330
344
  const promptText =
331
345
  Msg['RENAME_VARIABLE_TITLE'].replace('%1', variable.name);
332
346
  promptName(promptText, defaultName, function(newName) {
@@ -338,7 +352,7 @@ const renameVariable = function(workspace, variable, opt_callback) {
338
352
  .replace('%1', existing.name)
339
353
  .replace('%2', existing.type);
340
354
  dialog.alert(msg, function() {
341
- promptAndCheckWithAlert(newName); // Recurse
355
+ promptAndCheckWithAlert(newName);
342
356
  });
343
357
  } else {
344
358
  workspace.renameVariableById(variable.getId(), newName);
@@ -353,20 +367,21 @@ const renameVariable = function(workspace, variable, opt_callback) {
353
367
  }
354
368
  }
355
369
  });
356
- };
370
+ }
357
371
  promptAndCheckWithAlert('');
358
- };
359
- exports.renameVariable = renameVariable;
372
+ }
360
373
 
361
374
  /**
362
375
  * Prompt the user for a new variable name.
363
- * @param {string} promptText The string of the prompt.
364
- * @param {string} defaultText The default value to show in the prompt's field.
365
- * @param {function(?string)} callback A callback. It will return the new
366
- * variable name, or null if the user picked something illegal.
376
+ * @param promptText The string of the prompt.
377
+ * @param defaultText The default value to show in the prompt's field.
378
+ * @param callback A callback. It will return the new variable name, or null if
379
+ * the user picked something illegal.
367
380
  * @alias Blockly.Variables.promptName
368
381
  */
369
- const promptName = function(promptText, defaultText, callback) {
382
+ export function promptName(
383
+ promptText: string, defaultText: string,
384
+ callback: (p1: string|null) => AnyDuringMigration) {
370
385
  dialog.prompt(promptText, defaultText, function(newVar) {
371
386
  // Merge runs of whitespace. Strip leading and trailing whitespace.
372
387
  // Beyond this, all names are legal.
@@ -379,61 +394,57 @@ const promptName = function(promptText, defaultText, callback) {
379
394
  }
380
395
  callback(newVar);
381
396
  });
382
- };
383
- exports.promptName = promptName;
384
-
397
+ }
385
398
  /**
386
399
  * Check whether there exists a variable with the given name but a different
387
400
  * type.
388
- * @param {string} name The name to search for.
389
- * @param {string} type The type to exclude from the search.
390
- * @param {!Workspace} workspace The workspace to search for the
391
- * variable.
392
- * @return {?VariableModel} The variable with the given name and a
393
- * different type, or null if none was found.
401
+ * @param name The name to search for.
402
+ * @param type The type to exclude from the search.
403
+ * @param workspace The workspace to search for the variable.
404
+ * @return The variable with the given name and a different type, or null if
405
+ * none was found.
394
406
  */
395
- const nameUsedWithOtherType = function(name, type, workspace) {
407
+ function nameUsedWithOtherType(
408
+ name: string, type: string, workspace: Workspace): VariableModel|null {
396
409
  const allVariables = workspace.getVariableMap().getAllVariables();
397
410
 
398
411
  name = name.toLowerCase();
399
- for (let i = 0, variable; (variable = allVariables[i]); i++) {
412
+ for (let i = 0, variable; variable = allVariables[i]; i++) {
400
413
  if (variable.name.toLowerCase() === name && variable.type !== type) {
401
414
  return variable;
402
415
  }
403
416
  }
404
417
  return null;
405
- };
418
+ }
406
419
 
407
420
  /**
408
421
  * Check whether there exists a variable with the given name of any type.
409
- * @param {string} name The name to search for.
410
- * @param {!Workspace} workspace The workspace to search for the
411
- * variable.
412
- * @return {?VariableModel} The variable with the given name,
413
- * or null if none was found.
422
+ * @param name The name to search for.
423
+ * @param workspace The workspace to search for the variable.
424
+ * @return The variable with the given name, or null if none was found.
414
425
  * @alias Blockly.Variables.nameUsedWithAnyType
415
426
  */
416
- const nameUsedWithAnyType = function(name, workspace) {
427
+ export function nameUsedWithAnyType(
428
+ name: string, workspace: Workspace): VariableModel|null {
417
429
  const allVariables = workspace.getVariableMap().getAllVariables();
418
430
 
419
431
  name = name.toLowerCase();
420
- for (let i = 0, variable; (variable = allVariables[i]); i++) {
432
+ for (let i = 0, variable; variable = allVariables[i]; i++) {
421
433
  if (variable.name.toLowerCase() === name) {
422
434
  return variable;
423
435
  }
424
436
  }
425
437
  return null;
426
- };
427
- exports.nameUsedWithAnyType = nameUsedWithAnyType;
438
+ }
428
439
 
429
440
  /**
430
441
  * Generate DOM objects representing a variable field.
431
- * @param {!VariableModel} variableModel The variable model to
432
- * represent.
433
- * @return {?Element} The generated DOM.
442
+ * @param variableModel The variable model to represent.
443
+ * @return The generated DOM.
434
444
  * @alias Blockly.Variables.generateVariableFieldDom
435
445
  */
436
- const generateVariableFieldDom = function(variableModel) {
446
+ export function generateVariableFieldDom(variableModel: VariableModel): Element|
447
+ null {
437
448
  /* Generates the following XML:
438
449
  * <field name="VAR" id="goKTKmYJ8DhVHpruv" variabletype="int">foo</field>
439
450
  */
@@ -444,47 +455,48 @@ const generateVariableFieldDom = function(variableModel) {
444
455
  const name = utilsXml.createTextNode(variableModel.name);
445
456
  field.appendChild(name);
446
457
  return field;
447
- };
448
- exports.generateVariableFieldDom = generateVariableFieldDom;
458
+ }
449
459
 
450
460
  /**
451
461
  * Helper function to look up or create a variable on the given workspace.
452
462
  * If no variable exists, creates and returns it.
453
- * @param {!Workspace} workspace The workspace to search for the
454
- * variable. It may be a flyout workspace or main workspace.
455
- * @param {?string} id The ID to use to look up or create the variable, or null.
456
- * @param {string=} opt_name The string to use to look up or create the
457
- * variable.
458
- * @param {string=} opt_type The type to use to look up or create the variable.
459
- * @return {!VariableModel} The variable corresponding to the given ID
460
- * or name + type combination.
463
+ * @param workspace The workspace to search for the variable. It may be a
464
+ * flyout workspace or main workspace.
465
+ * @param id The ID to use to look up or create the variable, or null.
466
+ * @param opt_name The string to use to look up or create the variable.
467
+ * @param opt_type The type to use to look up or create the variable.
468
+ * @return The variable corresponding to the given ID or name + type
469
+ * combination.
461
470
  * @alias Blockly.Variables.getOrCreateVariablePackage
462
471
  */
463
- const getOrCreateVariablePackage = function(workspace, id, opt_name, opt_type) {
472
+ export function getOrCreateVariablePackage(
473
+ workspace: Workspace, id: string|null, opt_name?: string,
474
+ opt_type?: string): VariableModel {
464
475
  let variable = getVariable(workspace, id, opt_name, opt_type);
465
476
  if (!variable) {
466
477
  variable = createVariable(workspace, id, opt_name, opt_type);
467
478
  }
468
479
  return variable;
469
- };
470
- exports.getOrCreateVariablePackage = getOrCreateVariablePackage;
480
+ }
471
481
 
472
482
  /**
473
483
  * Look up a variable on the given workspace.
474
484
  * Always looks in the main workspace before looking in the flyout workspace.
475
485
  * Always prefers lookup by ID to lookup by name + type.
476
- * @param {!Workspace} workspace The workspace to search for the
477
- * variable. It may be a flyout workspace or main workspace.
478
- * @param {?string} id The ID to use to look up the variable, or null.
479
- * @param {string=} opt_name The string to use to look up the variable.
486
+ * @param workspace The workspace to search for the variable. It may be a
487
+ * flyout workspace or main workspace.
488
+ * @param id The ID to use to look up the variable, or null.
489
+ * @param opt_name The string to use to look up the variable.
480
490
  * Only used if lookup by ID fails.
481
- * @param {string=} opt_type The type to use to look up the variable.
491
+ * @param opt_type The type to use to look up the variable.
482
492
  * Only used if lookup by ID fails.
483
- * @return {?VariableModel} The variable corresponding to the given ID
484
- * or name + type combination, or null if not found.
493
+ * @return The variable corresponding to the given ID or name + type
494
+ * combination, or null if not found.
485
495
  * @alias Blockly.Variables.getVariable
486
496
  */
487
- const getVariable = function(workspace, id, opt_name, opt_type) {
497
+ export function getVariable(
498
+ workspace: Workspace, id: string|null, opt_name?: string,
499
+ opt_type?: string): VariableModel|null {
488
500
  const potentialVariableMap = workspace.getPotentialVariableMap();
489
501
  let variable = null;
490
502
  // Try to just get the variable, by ID if possible.
@@ -511,56 +523,59 @@ const getVariable = function(workspace, id, opt_name, opt_type) {
511
523
  }
512
524
  }
513
525
  return variable;
514
- };
515
- exports.getVariable = getVariable;
526
+ }
516
527
 
517
528
  /**
518
529
  * Helper function to create a variable on the given workspace.
519
- * @param {!Workspace} workspace The workspace in which to create the
520
- * variable. It may be a flyout workspace or main workspace.
521
- * @param {?string} id The ID to use to create the variable, or null.
522
- * @param {string=} opt_name The string to use to create the variable.
523
- * @param {string=} opt_type The type to use to create the variable.
524
- * @return {!VariableModel} The variable corresponding to the given ID
525
- * or name + type combination.
530
+ * @param workspace The workspace in which to create the variable. It may be a
531
+ * flyout workspace or main workspace.
532
+ * @param id The ID to use to create the variable, or null.
533
+ * @param opt_name The string to use to create the variable.
534
+ * @param opt_type The type to use to create the variable.
535
+ * @return The variable corresponding to the given ID or name + type
536
+ * combination.
526
537
  */
527
- const createVariable = function(workspace, id, opt_name, opt_type) {
538
+ function createVariable(
539
+ workspace: Workspace, id: string|null, opt_name?: string,
540
+ opt_type?: string): VariableModel {
528
541
  const potentialVariableMap = workspace.getPotentialVariableMap();
529
542
  // Variables without names get uniquely named for this workspace.
530
543
  if (!opt_name) {
531
544
  const ws =
532
- /** @type {!Workspace} */ (
533
- workspace.isFlyout ?
534
- /** @type {!WorkspaceSvg} */ (workspace).targetWorkspace :
535
- workspace);
545
+ (workspace.isFlyout ? (workspace as WorkspaceSvg).targetWorkspace :
546
+ workspace);
536
547
  // Must call version on exports to allow for mocking in tests. See #5321
537
- opt_name = exports.generateUniqueName(ws);
548
+ // AnyDuringMigration because: Argument of type 'Workspace | WorkspaceSvg'
549
+ // is not assignable to parameter of type 'Workspace'.
550
+ opt_name = generateUniqueName(ws as AnyDuringMigration);
538
551
  }
539
552
 
540
553
  // Create a potential variable if in the flyout.
541
554
  let variable = null;
542
555
  if (potentialVariableMap) {
543
556
  variable = potentialVariableMap.createVariable(opt_name, opt_type, id);
544
- } else { // In the main workspace, create a real variable.
557
+ } else {
558
+ // In the main workspace, create a real variable.
545
559
  variable = workspace.createVariable(opt_name, opt_type, id);
546
560
  }
547
561
  return variable;
548
- };
562
+ }
549
563
 
550
564
  /**
551
565
  * Helper function to get the list of variables that have been added to the
552
566
  * workspace after adding a new block, using the given list of variables that
553
567
  * were in the workspace before the new block was added.
554
- * @param {!Workspace} workspace The workspace to inspect.
555
- * @param {!Array<!VariableModel>} originalVariables The array of
556
- * variables that existed in the workspace before adding the new block.
557
- * @return {!Array<!VariableModel>} The new array of variables that
558
- * were freshly added to the workspace after creating the new block,
559
- * or [] if no new variables were added to the workspace.
568
+ * @param workspace The workspace to inspect.
569
+ * @param originalVariables The array of variables that existed in the workspace
570
+ * before adding the new block.
571
+ * @return The new array of variables that were freshly added to the workspace
572
+ * after creating the new block, or [] if no new variables were added to the
573
+ * workspace.
560
574
  * @alias Blockly.Variables.getAddedVariables
561
- * @package
575
+ * @internal
562
576
  */
563
- const getAddedVariables = function(workspace, originalVariables) {
577
+ export function getAddedVariables(
578
+ workspace: Workspace, originalVariables: VariableModel[]): VariableModel[] {
564
579
  const allCurrentVariables = workspace.getAllVariables();
565
580
  const addedVariables = [];
566
581
  if (originalVariables.length !== allCurrentVariables.length) {
@@ -574,5 +589,8 @@ const getAddedVariables = function(workspace, originalVariables) {
574
589
  }
575
590
  }
576
591
  return addedVariables;
577
- };
578
- exports.getAddedVariables = getAddedVariables;
592
+ }
593
+
594
+ export const TEST_ONLY = {
595
+ generateUniqueNameInternal,
596
+ }