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
@@ -8,283 +8,213 @@
8
8
  * @fileoverview Helper methods for events that are fired as a result of
9
9
  * actions in Blockly's editor.
10
10
  */
11
- 'use strict';
12
11
 
13
12
  /**
14
13
  * Helper methods for events that are fired as a result of
15
14
  * actions in Blockly's editor.
16
15
  * @namespace Blockly.Events.utils
17
16
  */
18
- goog.module('Blockly.Events.utils');
19
-
20
- const idGenerator = goog.require('Blockly.utils.idGenerator');
21
- const registry = goog.require('Blockly.registry');
22
- /* eslint-disable-next-line no-unused-vars */
23
- const {Abstract} = goog.requireType('Blockly.Events.Abstract');
24
- /* eslint-disable-next-line no-unused-vars */
25
- const {BlockChange} = goog.requireType('Blockly.Events.BlockChange');
26
- /* eslint-disable-next-line no-unused-vars */
27
- const {BlockCreate} = goog.requireType('Blockly.Events.BlockCreate');
28
- /* eslint-disable-next-line no-unused-vars */
29
- const {BlockMove} = goog.requireType('Blockly.Events.BlockMove');
30
- /* eslint-disable-next-line no-unused-vars */
31
- const {Block} = goog.requireType('Blockly.Block');
32
- /* eslint-disable-next-line no-unused-vars */
33
- const {CommentCreate} = goog.requireType('Blockly.Events.CommentCreate');
34
- /* eslint-disable-next-line no-unused-vars */
35
- const {CommentMove} = goog.requireType('Blockly.Events.CommentMove');
36
- /* eslint-disable-next-line no-unused-vars */
37
- const {ViewportChange} = goog.requireType('Blockly.Events.ViewportChange');
38
- /* eslint-disable-next-line no-unused-vars */
39
- const {Workspace} = goog.requireType('Blockly.Workspace');
40
- /* eslint-disable-next-line no-unused-vars */
41
- const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
42
-
43
-
44
- /**
45
- * Group ID for new events. Grouped events are indivisible.
46
- * @type {string}
47
- */
17
+ import * as goog from '../../closure/goog/goog.js';
18
+ goog.declareModuleId('Blockly.Events.utils');
19
+
20
+ import type {Block} from '../block.js';
21
+ import * as common from '../common.js';
22
+ import * as registry from '../registry.js';
23
+ import * as idGenerator from '../utils/idgenerator.js';
24
+ import type {Workspace} from '../workspace.js';
25
+ import type {WorkspaceSvg} from '../workspace_svg.js';
26
+
27
+ import type {Abstract} from './events_abstract.js';
28
+ import type {BlockChange} from './events_block_change.js';
29
+ import type {BlockCreate} from './events_block_create.js';
30
+ import type {BlockMove} from './events_block_move.js';
31
+ import type {CommentCreate} from './events_comment_create.js';
32
+ import type {CommentMove} from './events_comment_move.js';
33
+ import type {ViewportChange} from './events_viewport.js';
34
+
35
+
36
+ /** Group ID for new events. Grouped events are indivisible. */
48
37
  let group = '';
49
38
 
50
- /**
51
- * Sets whether the next event should be added to the undo stack.
52
- * @type {boolean}
53
- */
39
+ /** Sets whether the next event should be added to the undo stack. */
54
40
  let recordUndo = true;
55
41
 
56
42
  /**
57
43
  * Sets whether events should be added to the undo stack.
58
- * @param {boolean} newValue True if events should be added to the undo stack.
44
+ * @param newValue True if events should be added to the undo stack.
59
45
  * @alias Blockly.Events.utils.setRecordUndo
60
46
  */
61
- const setRecordUndo = function(newValue) {
47
+ export function setRecordUndo(newValue: boolean) {
62
48
  recordUndo = newValue;
63
- };
64
- exports.setRecordUndo = setRecordUndo;
49
+ }
65
50
 
66
51
  /**
67
52
  * Returns whether or not events will be added to the undo stack.
68
- * @returns {boolean} True if events will be added to the undo stack.
53
+ * @returns True if events will be added to the undo stack.
69
54
  * @alias Blockly.Events.utils.getRecordUndo
70
55
  */
71
- const getRecordUndo = function() {
56
+ export function getRecordUndo(): boolean {
72
57
  return recordUndo;
73
- };
74
- exports.getRecordUndo = getRecordUndo;
58
+ }
75
59
 
76
- /**
77
- * Allow change events to be created and fired.
78
- * @type {number}
79
- */
60
+ /** Allow change events to be created and fired. */
80
61
  let disabled = 0;
81
62
 
82
63
  /**
83
64
  * Name of event that creates a block. Will be deprecated for BLOCK_CREATE.
84
- * @const
85
65
  * @alias Blockly.Events.utils.CREATE
86
66
  */
87
- const CREATE = 'create';
88
- exports.CREATE = CREATE;
67
+ export const CREATE = 'create';
89
68
 
90
69
  /**
91
70
  * Name of event that creates a block.
92
- * @const
93
71
  * @alias Blockly.Events.utils.BLOCK_CREATE
94
72
  */
95
- const BLOCK_CREATE = CREATE;
96
- exports.BLOCK_CREATE = BLOCK_CREATE;
73
+ export const BLOCK_CREATE = CREATE;
97
74
 
98
75
  /**
99
76
  * Name of event that deletes a block. Will be deprecated for BLOCK_DELETE.
100
- * @const
101
77
  * @alias Blockly.Events.utils.DELETE
102
78
  */
103
- const DELETE = 'delete';
104
- exports.DELETE = DELETE;
79
+ export const DELETE = 'delete';
105
80
 
106
81
  /**
107
82
  * Name of event that deletes a block.
108
- * @const
109
83
  * @alias Blockly.Events.utils.BLOCK_DELETE
110
84
  */
111
- const BLOCK_DELETE = DELETE;
112
- exports.BLOCK_DELETE = BLOCK_DELETE;
85
+ export const BLOCK_DELETE = DELETE;
113
86
 
114
87
  /**
115
88
  * Name of event that changes a block. Will be deprecated for BLOCK_CHANGE.
116
- * @const
117
89
  * @alias Blockly.Events.utils.CHANGE
118
90
  */
119
- const CHANGE = 'change';
120
- exports.CHANGE = CHANGE;
91
+ export const CHANGE = 'change';
121
92
 
122
93
  /**
123
94
  * Name of event that changes a block.
124
- * @const
125
95
  * @alias Blockly.Events.utils.BLOCK_CHANGE
126
96
  */
127
- const BLOCK_CHANGE = CHANGE;
128
- exports.BLOCK_CHANGE = BLOCK_CHANGE;
97
+ export const BLOCK_CHANGE = CHANGE;
129
98
 
130
99
  /**
131
100
  * Name of event that moves a block. Will be deprecated for BLOCK_MOVE.
132
- * @const
133
101
  * @alias Blockly.Events.utils.MOVE
134
102
  */
135
- const MOVE = 'move';
136
- exports.MOVE = MOVE;
103
+ export const MOVE = 'move';
137
104
 
138
105
  /**
139
106
  * Name of event that moves a block.
140
- * @const
141
107
  * @alias Blockly.Events.utils.BLOCK_MOVE
142
108
  */
143
- const BLOCK_MOVE = MOVE;
144
- exports.BLOCK_MOVE = BLOCK_MOVE;
109
+ export const BLOCK_MOVE = MOVE;
145
110
 
146
111
  /**
147
112
  * Name of event that creates a variable.
148
- * @const
149
113
  * @alias Blockly.Events.utils.VAR_CREATE
150
114
  */
151
- const VAR_CREATE = 'var_create';
152
- exports.VAR_CREATE = VAR_CREATE;
115
+ export const VAR_CREATE = 'var_create';
153
116
 
154
117
  /**
155
118
  * Name of event that deletes a variable.
156
- * @const
157
119
  * @alias Blockly.Events.utils.VAR_DELETE
158
120
  */
159
- const VAR_DELETE = 'var_delete';
160
- exports.VAR_DELETE = VAR_DELETE;
121
+ export const VAR_DELETE = 'var_delete';
161
122
 
162
123
  /**
163
124
  * Name of event that renames a variable.
164
- * @const
165
125
  * @alias Blockly.Events.utils.VAR_RENAME
166
126
  */
167
- const VAR_RENAME = 'var_rename';
168
- exports.VAR_RENAME = VAR_RENAME;
127
+ export const VAR_RENAME = 'var_rename';
169
128
 
170
129
  /**
171
130
  * Name of generic event that records a UI change.
172
- * @const
173
131
  * @alias Blockly.Events.utils.UI
174
132
  */
175
- const UI = 'ui';
176
- exports.UI = UI;
133
+ export const UI = 'ui';
177
134
 
178
135
  /**
179
136
  * Name of event that record a block drags a block.
180
- * @const
181
137
  * @alias Blockly.Events.utils.BLOCK_DRAG
182
138
  */
183
- const BLOCK_DRAG = 'drag';
184
- exports.BLOCK_DRAG = BLOCK_DRAG;
139
+ export const BLOCK_DRAG = 'drag';
185
140
 
186
141
  /**
187
142
  * Name of event that records a change in selected element.
188
- * @const
189
143
  * @alias Blockly.Events.utils.SELECTED
190
144
  */
191
- const SELECTED = 'selected';
192
- exports.SELECTED = SELECTED;
145
+ export const SELECTED = 'selected';
193
146
 
194
147
  /**
195
148
  * Name of event that records a click.
196
- * @const
197
149
  * @alias Blockly.Events.utils.CLICK
198
150
  */
199
- const CLICK = 'click';
200
- exports.CLICK = CLICK;
151
+ export const CLICK = 'click';
201
152
 
202
153
  /**
203
154
  * Name of event that records a marker move.
204
- * @const
205
155
  * @alias Blockly.Events.utils.MARKER_MOVE
206
156
  */
207
- const MARKER_MOVE = 'marker_move';
208
- exports.MARKER_MOVE = MARKER_MOVE;
157
+ export const MARKER_MOVE = 'marker_move';
209
158
 
210
159
  /**
211
160
  * Name of event that records a bubble open.
212
- * @const
213
161
  * @alias Blockly.Events.utils.BUBBLE_OPEN
214
162
  */
215
- const BUBBLE_OPEN = 'bubble_open';
216
- exports.BUBBLE_OPEN = BUBBLE_OPEN;
163
+ export const BUBBLE_OPEN = 'bubble_open';
217
164
 
218
165
  /**
219
166
  * Name of event that records a trashcan open.
220
- * @const
221
167
  * @alias Blockly.Events.utils.TRASHCAN_OPEN
222
168
  */
223
- const TRASHCAN_OPEN = 'trashcan_open';
224
- exports.TRASHCAN_OPEN = TRASHCAN_OPEN;
169
+ export const TRASHCAN_OPEN = 'trashcan_open';
225
170
 
226
171
  /**
227
172
  * Name of event that records a toolbox item select.
228
- * @const
229
173
  * @alias Blockly.Events.utils.TOOLBOX_ITEM_SELECT
230
174
  */
231
- const TOOLBOX_ITEM_SELECT = 'toolbox_item_select';
232
- exports.TOOLBOX_ITEM_SELECT = TOOLBOX_ITEM_SELECT;
175
+ export const TOOLBOX_ITEM_SELECT = 'toolbox_item_select';
233
176
 
234
177
  /**
235
178
  * Name of event that records a theme change.
236
- * @const
237
179
  * @alias Blockly.Events.utils.THEME_CHANGE
238
180
  */
239
- const THEME_CHANGE = 'theme_change';
240
- exports.THEME_CHANGE = THEME_CHANGE;
181
+ export const THEME_CHANGE = 'theme_change';
241
182
 
242
183
  /**
243
184
  * Name of event that records a viewport change.
244
- * @const
245
185
  * @alias Blockly.Events.utils.VIEWPORT_CHANGE
246
186
  */
247
- const VIEWPORT_CHANGE = 'viewport_change';
248
- exports.VIEWPORT_CHANGE = VIEWPORT_CHANGE;
187
+ export const VIEWPORT_CHANGE = 'viewport_change';
249
188
 
250
189
  /**
251
190
  * Name of event that creates a comment.
252
- * @const
253
191
  * @alias Blockly.Events.utils.COMMENT_CREATE
254
192
  */
255
- const COMMENT_CREATE = 'comment_create';
256
- exports.COMMENT_CREATE = COMMENT_CREATE;
193
+ export const COMMENT_CREATE = 'comment_create';
257
194
 
258
195
  /**
259
196
  * Name of event that deletes a comment.
260
- * @const
261
197
  * @alias Blockly.Events.utils.COMMENT_DELETE
262
198
  */
263
- const COMMENT_DELETE = 'comment_delete';
264
- exports.COMMENT_DELETE = COMMENT_DELETE;
199
+ export const COMMENT_DELETE = 'comment_delete';
265
200
 
266
201
  /**
267
202
  * Name of event that changes a comment.
268
- * @const
269
203
  * @alias Blockly.Events.utils.COMMENT_CHANGE
270
204
  */
271
- const COMMENT_CHANGE = 'comment_change';
272
- exports.COMMENT_CHANGE = COMMENT_CHANGE;
205
+ export const COMMENT_CHANGE = 'comment_change';
273
206
 
274
207
  /**
275
208
  * Name of event that moves a comment.
276
- * @const
277
209
  * @alias Blockly.Events.utils.COMMENT_MOVE
278
210
  */
279
- const COMMENT_MOVE = 'comment_move';
280
- exports.COMMENT_MOVE = COMMENT_MOVE;
211
+ export const COMMENT_MOVE = 'comment_move';
281
212
 
282
213
  /**
283
214
  * Name of event that records a workspace load.
284
215
  * @alias Blockly.Events.utils.FINISHED_LOADING
285
216
  */
286
- const FINISHED_LOADING = 'finished_loading';
287
- exports.FINISHED_LOADING = FINISHED_LOADING;
217
+ export const FINISHED_LOADING = 'finished_loading';
288
218
 
289
219
  /**
290
220
  * Type of events that cause objects to be bumped back into the visible
@@ -292,12 +222,9 @@ exports.FINISHED_LOADING = FINISHED_LOADING;
292
222
  *
293
223
  * Not to be confused with bumping so that disconnected connections do not
294
224
  * appear connected.
295
- * @typedef {!BlockCreate|!BlockMove|
296
- * !CommentCreate|!CommentMove}
297
225
  * @alias Blockly.Events.utils.BumpEvent
298
226
  */
299
- let BumpEvent;
300
- exports.BumpEvent = BumpEvent;
227
+ export type BumpEvent = BlockCreate|BlockMove|CommentCreate|CommentMove;
301
228
 
302
229
  /**
303
230
  * List of events that cause objects to be bumped back into the visible
@@ -305,24 +232,27 @@ exports.BumpEvent = BumpEvent;
305
232
  *
306
233
  * Not to be confused with bumping so that disconnected connections do not
307
234
  * appear connected.
308
- * @const
309
235
  * @alias Blockly.Events.utils.BUMP_EVENTS
310
236
  */
311
- const BUMP_EVENTS = [BLOCK_CREATE, BLOCK_MOVE, COMMENT_CREATE, COMMENT_MOVE];
312
- exports.BUMP_EVENTS = BUMP_EVENTS;
237
+ export const BUMP_EVENTS: string[] =
238
+ [BLOCK_CREATE, BLOCK_MOVE, COMMENT_CREATE, COMMENT_MOVE];
313
239
 
314
- /**
315
- * List of events queued for firing.
316
- * @type {!Array<!Abstract>}
317
- */
318
- const FIRE_QUEUE = [];
240
+ /** List of events queued for firing. */
241
+ const FIRE_QUEUE: Abstract[] = [];
319
242
 
320
243
  /**
321
244
  * Create a custom event and fire it.
322
- * @param {!Abstract} event Custom data for event.
245
+ * @param event Custom data for event.
323
246
  * @alias Blockly.Events.utils.fire
324
247
  */
325
- const fire = function(event) {
248
+ export function fire(event: Abstract) {
249
+ TEST_ONLY.fireInternal(event);
250
+ }
251
+
252
+ /**
253
+ * Private version of fireInternal for stubbing in tests.
254
+ */
255
+ function fireInternal(event: Abstract) {
326
256
  if (!isEnabled()) {
327
257
  return;
328
258
  }
@@ -331,36 +261,34 @@ const fire = function(event) {
331
261
  setTimeout(fireNow, 0);
332
262
  }
333
263
  FIRE_QUEUE.push(event);
334
- };
335
- exports.fire = fire;
264
+ }
336
265
 
337
- /**
338
- * Fire all queued events.
339
- */
340
- const fireNow = function() {
266
+
267
+ /** Fire all queued events. */
268
+ function fireNow() {
341
269
  const queue = filter(FIRE_QUEUE, true);
342
270
  FIRE_QUEUE.length = 0;
343
- for (let i = 0, event; (event = queue[i]); i++) {
271
+ for (let i = 0, event; event = queue[i]; i++) {
344
272
  if (!event.workspaceId) {
345
273
  continue;
346
274
  }
347
- const {Workspace} = goog.module.get('Blockly.Workspace');
348
- const eventWorkspace = Workspace.getById(event.workspaceId);
275
+ const eventWorkspace = common.getWorkspaceById(event.workspaceId);
349
276
  if (eventWorkspace) {
350
277
  eventWorkspace.fireChangeListener(event);
351
278
  }
352
279
  }
353
- };
280
+ }
354
281
 
355
282
  /**
356
283
  * Filter the queued events and merge duplicates.
357
- * @param {!Array<!Abstract>} queueIn Array of events.
358
- * @param {boolean} forward True if forward (redo), false if backward (undo).
359
- * @return {!Array<!Abstract>} Array of filtered events.
284
+ * @param queueIn Array of events.
285
+ * @param forward True if forward (redo), false if backward (undo).
286
+ * @return Array of filtered events.
360
287
  * @alias Blockly.Events.utils.filter
361
288
  */
362
- const filter = function(queueIn, forward) {
363
- let queue = queueIn.slice(); // Shallow copy of queue.
289
+ export function filter(queueIn: Abstract[], forward: boolean): Abstract[] {
290
+ let queue = queueIn.slice();
291
+ // Shallow copy of queue.
364
292
  if (!forward) {
365
293
  // Undo is merged in reverse order.
366
294
  queue.reverse();
@@ -368,12 +296,12 @@ const filter = function(queueIn, forward) {
368
296
  const mergedQueue = [];
369
297
  const hash = Object.create(null);
370
298
  // Merge duplicates.
371
- for (let i = 0, event; (event = queue[i]); i++) {
299
+ for (let i = 0, event; event = queue[i]; i++) {
372
300
  if (!event.isNull()) {
373
301
  // Treat all UI events as the same type in hash table.
374
302
  const eventType = event.isUiEvent ? UI : event.type;
375
- // TODO(#5927): Ceck whether `blockId` exists before accessing it.
376
- const blockId = /** @type {*} */ (event).blockId;
303
+ // TODO(#5927): Check whether `blockId` exists before accessing it.
304
+ const blockId = (event as AnyDuringMigration).blockId;
377
305
  const key = [eventType, blockId, event.workspaceId].join(' ');
378
306
 
379
307
  const lastEntry = hash[key];
@@ -382,23 +310,24 @@ const filter = function(queueIn, forward) {
382
310
  // Each item in the hash table has the event and the index of that event
383
311
  // in the input array. This lets us make sure we only merge adjacent
384
312
  // move events.
385
- hash[key] = {event: event, index: i};
313
+ hash[key] = {event, index: i};
386
314
  mergedQueue.push(event);
387
315
  } else if (event.type === MOVE && lastEntry.index === i - 1) {
388
- const moveEvent = /** @type {!BlockMove} */ (event);
316
+ const moveEvent = event as BlockMove;
389
317
  // Merge move events.
390
318
  lastEvent.newParentId = moveEvent.newParentId;
391
319
  lastEvent.newInputName = moveEvent.newInputName;
392
320
  lastEvent.newCoordinate = moveEvent.newCoordinate;
393
321
  lastEntry.index = i;
394
322
  } else if (
395
- event.type === CHANGE && event.element === lastEvent.element &&
396
- event.name === lastEvent.name) {
397
- const changeEvent = /** @type {!BlockChange} */ (event);
323
+ event.type === CHANGE &&
324
+ (event as BlockChange).element === lastEvent.element &&
325
+ (event as BlockChange).name === lastEvent.name) {
326
+ const changeEvent = event as BlockChange;
398
327
  // Merge change events.
399
328
  lastEvent.newValue = changeEvent.newValue;
400
329
  } else if (event.type === VIEWPORT_CHANGE) {
401
- const viewportEvent = /** @type {!ViewportChange} */ (event);
330
+ const viewportEvent = event as ViewportChange;
402
331
  // Merge viewport change events.
403
332
  lastEvent.viewTop = viewportEvent.viewTop;
404
333
  lastEvent.viewLeft = viewportEvent.viewLeft;
@@ -409,7 +338,7 @@ const filter = function(queueIn, forward) {
409
338
  } else {
410
339
  // Collision: newer events should merge into this event to maintain
411
340
  // order.
412
- hash[key] = {event: event, index: i};
341
+ hash[key] = {event, index: i};
413
342
  mergedQueue.push(event);
414
343
  }
415
344
  }
@@ -424,108 +353,111 @@ const filter = function(queueIn, forward) {
424
353
  }
425
354
  // Move mutation events to the top of the queue.
426
355
  // Intentionally skip first event.
427
- for (let i = 1, event; (event = queue[i]); i++) {
428
- if (event.type === CHANGE && event.element === 'mutation') {
356
+ for (let i = 1, event; event = queue[i]; i++) {
357
+ // AnyDuringMigration because: Property 'element' does not exist on type
358
+ // 'Abstract'.
359
+ if (event.type === CHANGE &&
360
+ (event as AnyDuringMigration).element === 'mutation') {
429
361
  queue.unshift(queue.splice(i, 1)[0]);
430
362
  }
431
363
  }
432
364
  return queue;
433
- };
434
- exports.filter = filter;
365
+ }
435
366
 
436
367
  /**
437
368
  * Modify pending undo events so that when they are fired they don't land
438
369
  * in the undo stack. Called by Workspace.clearUndo.
439
370
  * @alias Blockly.Events.utils.clearPendingUndo
440
371
  */
441
- const clearPendingUndo = function() {
442
- for (let i = 0, event; (event = FIRE_QUEUE[i]); i++) {
372
+ export function clearPendingUndo() {
373
+ for (let i = 0, event; event = FIRE_QUEUE[i]; i++) {
443
374
  event.recordUndo = false;
444
375
  }
445
- };
446
- exports.clearPendingUndo = clearPendingUndo;
376
+ }
447
377
 
448
378
  /**
449
379
  * Stop sending events. Every call to this function MUST also call enable.
450
380
  * @alias Blockly.Events.utils.disable
451
381
  */
452
- const disable = function() {
382
+ export function disable() {
453
383
  disabled++;
454
- };
455
- exports.disable = disable;
384
+ }
456
385
 
457
386
  /**
458
387
  * Start sending events. Unless events were already disabled when the
459
388
  * corresponding call to disable was made.
460
389
  * @alias Blockly.Events.utils.enable
461
390
  */
462
- const enable = function() {
391
+ export function enable() {
463
392
  disabled--;
464
- };
465
- exports.enable = enable;
393
+ }
466
394
 
467
395
  /**
468
396
  * Returns whether events may be fired or not.
469
- * @return {boolean} True if enabled.
397
+ * @return True if enabled.
470
398
  * @alias Blockly.Events.utils.isEnabled
471
399
  */
472
- const isEnabled = function() {
400
+ export function isEnabled(): boolean {
473
401
  return disabled === 0;
474
- };
475
- exports.isEnabled = isEnabled;
402
+ }
476
403
 
477
404
  /**
478
405
  * Current group.
479
- * @return {string} ID string.
406
+ * @return ID string.
480
407
  * @alias Blockly.Events.utils.getGroup
481
408
  */
482
- const getGroup = function() {
409
+ export function getGroup(): string {
483
410
  return group;
484
- };
485
- exports.getGroup = getGroup;
411
+ }
486
412
 
487
413
  /**
488
414
  * Start or stop a group.
489
- * @param {boolean|string} state True to start new group, false to end group.
415
+ * @param state True to start new group, false to end group.
490
416
  * String to set group explicitly.
491
417
  * @alias Blockly.Events.utils.setGroup
492
418
  */
493
- const setGroup = function(state) {
419
+ export function setGroup(state: boolean|string) {
420
+ TEST_ONLY.setGroupInternal(state);
421
+ }
422
+
423
+ /**
424
+ * Private version of setGroup for stubbing in tests.
425
+ */
426
+ function setGroupInternal(state: boolean|string) {
494
427
  if (typeof state === 'boolean') {
495
428
  group = state ? idGenerator.genUid() : '';
496
429
  } else {
497
430
  group = state;
498
431
  }
499
- };
500
- exports.setGroup = setGroup;
432
+ }
501
433
 
502
434
  /**
503
435
  * Compute a list of the IDs of the specified block and all its descendants.
504
- * @param {!Block} block The root block.
505
- * @return {!Array<string>} List of block IDs.
436
+ * @param block The root block.
437
+ * @return List of block IDs.
506
438
  * @alias Blockly.Events.utils.getDescendantIds
507
- * @package
439
+ * @internal
508
440
  */
509
- const getDescendantIds = function(block) {
441
+ export function getDescendantIds(block: Block): string[] {
510
442
  const ids = [];
511
443
  const descendants = block.getDescendants(false);
512
- for (let i = 0, descendant; (descendant = descendants[i]); i++) {
444
+ for (let i = 0, descendant; descendant = descendants[i]; i++) {
513
445
  ids[i] = descendant.id;
514
446
  }
515
447
  return ids;
516
- };
517
- exports.getDescendantIds = getDescendantIds;
448
+ }
518
449
 
519
450
  /**
520
451
  * Decode the JSON into an event.
521
- * @param {!Object} json JSON representation.
522
- * @param {!Workspace} workspace Target workspace for event.
523
- * @return {!Abstract} The event represented by the JSON.
452
+ * @param json JSON representation.
453
+ * @param workspace Target workspace for event.
454
+ * @return The event represented by the JSON.
524
455
  * @throws {Error} if an event type is not found in the registry.
525
456
  * @alias Blockly.Events.utils.fromJson
526
457
  */
527
- const fromJson = function(json, workspace) {
528
- const eventClass = get(json.type);
458
+ export function fromJson(
459
+ json: AnyDuringMigration, workspace: Workspace): Abstract {
460
+ const eventClass = get(json['type']);
529
461
  if (!eventClass) {
530
462
  throw Error('Unknown event type.');
531
463
  }
@@ -533,39 +465,35 @@ const fromJson = function(json, workspace) {
533
465
  event.fromJson(json);
534
466
  event.workspaceId = workspace.id;
535
467
  return event;
536
- };
537
- exports.fromJson = fromJson;
468
+ }
538
469
 
539
470
  /**
540
471
  * Gets the class for a specific event type from the registry.
541
- * @param {string} eventType The type of the event to get.
542
- * @return {?function(new:Abstract, ...?)} The event class with
543
- * the given type or null if none exists.
472
+ * @param eventType The type of the event to get.
473
+ * @return The event class with the given type or null if none exists.
544
474
  * @alias Blockly.Events.utils.get
545
475
  */
546
- const get = function(eventType) {
476
+ export function get(eventType: string):
477
+ (new (...p1: AnyDuringMigration[]) => Abstract)|null {
547
478
  return registry.getClass(registry.Type.EVENT, eventType);
548
- };
549
- exports.get = get;
479
+ }
550
480
 
551
481
  /**
552
482
  * Enable/disable a block depending on whether it is properly connected.
553
483
  * Use this on applications where all blocks should be connected to a top block.
554
484
  * Recommend setting the 'disable' option to 'false' in the config so that
555
485
  * users don't try to re-enable disabled orphan blocks.
556
- * @param {!Abstract} event Custom data for event.
486
+ * @param event Custom data for event.
557
487
  * @alias Blockly.Events.utils.disableOrphans
558
488
  */
559
- const disableOrphans = function(event) {
489
+ export function disableOrphans(event: Abstract) {
560
490
  if (event.type === MOVE || event.type === CREATE) {
561
- const blockEvent = /** @type {!BlockMove|!BlockCreate} */ (event);
491
+ const blockEvent = event as BlockMove | BlockCreate;
562
492
  if (!blockEvent.workspaceId) {
563
493
  return;
564
494
  }
565
- const {Workspace} = goog.module.get('Blockly.Workspace');
566
495
  const eventWorkspace =
567
- /** @type {!WorkspaceSvg} */ (
568
- Workspace.getById(blockEvent.workspaceId));
496
+ common.getWorkspaceById(blockEvent.workspaceId) as WorkspaceSvg;
569
497
  let block = eventWorkspace.getBlockById(blockEvent.blockId);
570
498
  if (block) {
571
499
  // Changing blocks as part of this event shouldn't be undoable.
@@ -575,7 +503,7 @@ const disableOrphans = function(event) {
575
503
  const parent = block.getParent();
576
504
  if (parent && parent.isEnabled()) {
577
505
  const children = block.getDescendants(false);
578
- for (let i = 0, child; (child = children[i]); i++) {
506
+ for (let i = 0, child; child = children[i]; i++) {
579
507
  child.setEnabled(true);
580
508
  }
581
509
  } else if (
@@ -591,10 +519,11 @@ const disableOrphans = function(event) {
591
519
  }
592
520
  }
593
521
  }
594
- };
595
- exports.disableOrphans = disableOrphans;
522
+ }
596
523
 
597
- exports.TEST_ONLY = {
524
+ export const TEST_ONLY = {
598
525
  FIRE_QUEUE,
599
526
  fireNow,
527
+ fireInternal,
528
+ setGroupInternal,
600
529
  };