blockly 8.0.5 → 9.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (736) hide show
  1. package/blockly.min.js +2002 -2269
  2. package/blockly_compressed.js +1499 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks/blocks.js +3 -2
  5. package/blocks/colour.js +3 -1
  6. package/blocks/lists.js +94 -22
  7. package/blocks/logic.js +14 -6
  8. package/blocks/loops.js +5 -3
  9. package/blocks/math.js +3 -1
  10. package/blocks/procedures.js +3 -1
  11. package/blocks/text.js +14 -6
  12. package/blocks/variables.js +3 -1
  13. package/blocks/variables_dynamic.js +3 -1
  14. package/blocks.d.ts +0 -2
  15. package/blocks_compressed.js +189 -171
  16. package/blocks_compressed.js.map +1 -1
  17. package/closure/goog/base.d.ts +1 -0
  18. package/closure/goog/base_minimal.d.ts +18 -0
  19. package/closure/goog/goog.d.ts +25 -0
  20. package/core/any_aliases.d.ts +1 -0
  21. package/core/any_aliases.ts +1 -0
  22. package/core/block.d.ts +779 -0
  23. package/core/{block.js → block.ts} +610 -719
  24. package/core/block_animations.d.ts +33 -0
  25. package/core/{block_animations.js → block_animations.ts} +75 -79
  26. package/core/block_drag_surface.d.ts +111 -0
  27. package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
  28. package/core/block_dragger.d.ts +143 -0
  29. package/core/{block_dragger.js → block_dragger.ts} +139 -176
  30. package/core/block_svg.d.ts +588 -0
  31. package/core/{block_svg.js → block_svg.ts} +494 -630
  32. package/core/blockly.d.ts +562 -0
  33. package/core/blockly.js +1 -1
  34. package/core/blockly.ts +749 -0
  35. package/core/blockly_options.d.ts +69 -0
  36. package/core/blockly_options.ts +81 -0
  37. package/core/blocks.d.ts +17 -0
  38. package/core/{blocks.js → blocks.ts} +4 -8
  39. package/core/browser_events.d.ts +85 -0
  40. package/core/{browser_events.js → browser_events.ts} +98 -93
  41. package/core/bubble.d.ts +279 -0
  42. package/core/{bubble.js → bubble.ts} +277 -370
  43. package/core/bubble_dragger.d.ts +73 -0
  44. package/core/bubble_dragger.ts +229 -0
  45. package/core/bump_objects.d.ts +34 -0
  46. package/core/{bump_objects.js → bump_objects.ts} +54 -52
  47. package/core/clipboard.d.ts +42 -0
  48. package/core/clipboard.ts +91 -0
  49. package/core/comment.d.ts +113 -0
  50. package/core/{comment.js → comment.ts} +135 -185
  51. package/core/common.d.ts +129 -0
  52. package/core/{common.js → common.ts} +105 -82
  53. package/core/component_manager.d.ts +91 -0
  54. package/core/component_manager.ts +211 -0
  55. package/core/config.d.ts +23 -0
  56. package/core/{config.js → config.ts} +12 -19
  57. package/core/connection.d.ts +232 -0
  58. package/core/{connection.js → connection.ts} +187 -237
  59. package/core/connection_checker.d.ts +78 -0
  60. package/core/{connection_checker.js → connection_checker.ts} +66 -77
  61. package/core/connection_db.d.ts +91 -0
  62. package/core/{connection_db.js → connection_db.ts} +62 -87
  63. package/core/connection_type.d.ts +15 -0
  64. package/core/{connection_type.js → connection_type.ts} +8 -12
  65. package/core/constants.d.ts +15 -0
  66. package/core/{constants.js → constants.ts} +4 -8
  67. package/core/contextmenu.d.ts +80 -0
  68. package/core/{contextmenu.js → contextmenu.ts} +118 -153
  69. package/core/contextmenu_items.d.ts +77 -0
  70. package/core/contextmenu_items.ts +576 -0
  71. package/core/contextmenu_registry.d.ts +105 -0
  72. package/core/contextmenu_registry.ts +179 -0
  73. package/core/css.d.ts +24 -0
  74. package/core/{css.js → css.ts} +16 -24
  75. package/core/delete_area.d.ts +47 -0
  76. package/core/delete_area.ts +82 -0
  77. package/core/dialog.d.ts +61 -0
  78. package/core/dialog.ts +127 -0
  79. package/core/drag_target.d.ts +63 -0
  80. package/core/drag_target.ts +94 -0
  81. package/core/dropdowndiv.d.ts +155 -0
  82. package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
  83. package/core/events/events.d.ts +102 -0
  84. package/core/events/events.ts +123 -0
  85. package/core/events/events_abstract.d.ts +51 -0
  86. package/core/events/events_abstract.ts +112 -0
  87. package/core/events/events_block_base.d.ts +31 -0
  88. package/core/events/events_block_base.ts +65 -0
  89. package/core/events/events_block_change.d.ts +55 -0
  90. package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
  91. package/core/events/events_block_create.d.ts +35 -0
  92. package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
  93. package/core/events/events_block_delete.d.ts +36 -0
  94. package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
  95. package/core/events/events_block_drag.d.ts +36 -0
  96. package/core/events/events_block_drag.ts +82 -0
  97. package/core/events/events_block_move.d.ts +51 -0
  98. package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
  99. package/core/events/events_bubble_open.d.ts +35 -0
  100. package/core/events/events_bubble_open.ts +82 -0
  101. package/core/events/events_click.d.ts +36 -0
  102. package/core/events/{events_click.js → events_click.ts} +27 -30
  103. package/core/events/events_comment_base.d.ts +39 -0
  104. package/core/events/events_comment_base.ts +107 -0
  105. package/core/events/events_comment_change.d.ts +43 -0
  106. package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
  107. package/core/events/events_comment_create.d.ts +35 -0
  108. package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
  109. package/core/events/events_comment_delete.d.ts +35 -0
  110. package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
  111. package/core/events/events_comment_move.d.ts +55 -0
  112. package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
  113. package/core/events/events_marker_move.d.ts +40 -0
  114. package/core/events/events_marker_move.ts +99 -0
  115. package/core/events/events_selected.d.ts +34 -0
  116. package/core/events/events_selected.ts +78 -0
  117. package/core/events/events_theme_change.d.ts +30 -0
  118. package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
  119. package/core/events/events_toolbox_item_select.d.ts +34 -0
  120. package/core/events/events_toolbox_item_select.ts +79 -0
  121. package/core/events/events_trashcan_open.d.ts +31 -0
  122. package/core/events/events_trashcan_open.ts +68 -0
  123. package/core/events/events_ui.d.ts +37 -0
  124. package/core/events/{events_ui.js → events_ui.ts} +27 -26
  125. package/core/events/events_ui_base.d.ts +26 -0
  126. package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
  127. package/core/events/events_var_base.d.ts +31 -0
  128. package/core/events/events_var_base.ts +65 -0
  129. package/core/events/events_var_create.d.ts +35 -0
  130. package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
  131. package/core/events/events_var_delete.d.ts +35 -0
  132. package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
  133. package/core/events/events_var_rename.d.ts +36 -0
  134. package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
  135. package/core/events/events_viewport.d.ts +39 -0
  136. package/core/events/events_viewport.ts +100 -0
  137. package/core/events/utils.d.ts +272 -0
  138. package/core/events/{utils.js → utils.ts} +148 -219
  139. package/core/events/workspace_events.d.ts +36 -0
  140. package/core/events/workspace_events.ts +86 -0
  141. package/core/extensions.d.ts +107 -0
  142. package/core/{extensions.js → extensions.ts} +153 -172
  143. package/core/field.d.ts +534 -0
  144. package/core/{field.js → field.ts} +413 -489
  145. package/core/field_angle.d.ts +176 -0
  146. package/core/field_angle.ts +563 -0
  147. package/core/field_checkbox.d.ts +124 -0
  148. package/core/field_checkbox.ts +243 -0
  149. package/core/field_colour.d.ts +200 -0
  150. package/core/field_colour.ts +632 -0
  151. package/core/field_dropdown.d.ts +222 -0
  152. package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
  153. package/core/field_image.d.ts +134 -0
  154. package/core/field_image.ts +282 -0
  155. package/core/field_label.d.ts +71 -0
  156. package/core/field_label.ts +152 -0
  157. package/core/field_label_serializable.d.ts +42 -0
  158. package/core/field_label_serializable.ts +76 -0
  159. package/core/field_multilineinput.d.ts +146 -0
  160. package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
  161. package/core/field_number.d.ts +156 -0
  162. package/core/{field_number.js → field_number.ts} +110 -123
  163. package/core/field_registry.d.ts +45 -0
  164. package/core/{field_registry.js → field_registry.ts} +37 -30
  165. package/core/field_textinput.d.ts +219 -0
  166. package/core/field_textinput.ts +591 -0
  167. package/core/field_variable.d.ts +217 -0
  168. package/core/{field_variable.js → field_variable.ts} +174 -187
  169. package/core/flyout_base.d.ts +459 -0
  170. package/core/{flyout_base.js → flyout_base.ts} +429 -518
  171. package/core/flyout_button.d.ts +81 -0
  172. package/core/flyout_button.ts +292 -0
  173. package/core/flyout_horizontal.d.ts +82 -0
  174. package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
  175. package/core/flyout_metrics_manager.d.ts +40 -0
  176. package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
  177. package/core/flyout_vertical.d.ts +83 -0
  178. package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
  179. package/core/generator.d.ts +205 -0
  180. package/core/{generator.js → generator.ts} +168 -193
  181. package/core/gesture.d.ts +357 -0
  182. package/core/{gesture.js → gesture.ts} +289 -369
  183. package/core/grid.d.ts +83 -0
  184. package/core/grid.ts +192 -0
  185. package/core/icon.d.ts +78 -0
  186. package/core/icon.ts +189 -0
  187. package/core/inject.d.ts +15 -0
  188. package/core/{inject.js → inject.ts} +101 -100
  189. package/core/input.d.ts +128 -0
  190. package/core/input.ts +309 -0
  191. package/core/input_types.d.ts +14 -0
  192. package/core/{input_types.js → input_types.ts} +8 -12
  193. package/core/insertion_marker_manager.d.ts +212 -0
  194. package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
  195. package/core/interfaces/i_ast_node_location.d.ts +11 -0
  196. package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
  197. package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
  198. package/core/interfaces/i_ast_node_location_svg.ts +37 -0
  199. package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
  200. package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
  201. package/core/interfaces/i_autohideable.d.ts +18 -0
  202. package/core/interfaces/i_autohideable.ts +34 -0
  203. package/core/interfaces/i_block_dragger.d.ts +43 -0
  204. package/core/interfaces/i_block_dragger.ts +67 -0
  205. package/core/interfaces/i_bounded_element.d.ts +24 -0
  206. package/core/interfaces/i_bounded_element.ts +42 -0
  207. package/core/interfaces/i_bubble.d.ts +59 -0
  208. package/core/interfaces/i_bubble.ts +88 -0
  209. package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
  210. package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
  211. package/core/interfaces/i_component.d.ts +17 -0
  212. package/core/interfaces/{i_component.js → i_component.ts} +9 -14
  213. package/core/interfaces/i_connection_checker.d.ts +69 -0
  214. package/core/interfaces/i_connection_checker.ts +102 -0
  215. package/core/interfaces/i_contextmenu.d.ts +13 -0
  216. package/core/interfaces/i_contextmenu.ts +26 -0
  217. package/core/interfaces/i_copyable.d.ts +24 -0
  218. package/core/interfaces/i_copyable.ts +40 -0
  219. package/core/interfaces/i_deletable.d.ts +16 -0
  220. package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
  221. package/core/interfaces/i_delete_area.d.ts +25 -0
  222. package/core/interfaces/i_delete_area.ts +46 -0
  223. package/core/interfaces/i_drag_target.d.ts +53 -0
  224. package/core/interfaces/i_drag_target.ts +84 -0
  225. package/core/interfaces/i_draggable.d.ts +12 -0
  226. package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
  227. package/core/interfaces/i_flyout.d.ts +134 -0
  228. package/core/interfaces/i_flyout.ts +186 -0
  229. package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
  230. package/core/interfaces/i_keyboard_accessible.ts +35 -0
  231. package/core/interfaces/i_metrics_manager.d.ts +117 -0
  232. package/core/interfaces/i_metrics_manager.ts +151 -0
  233. package/core/interfaces/i_movable.d.ts +16 -0
  234. package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
  235. package/core/interfaces/i_positionable.d.ts +27 -0
  236. package/core/interfaces/i_positionable.ts +50 -0
  237. package/core/interfaces/i_registrable.d.ts +11 -0
  238. package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
  239. package/core/interfaces/i_registrable_field.d.ts +17 -0
  240. package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
  241. package/core/interfaces/i_selectable.d.ts +18 -0
  242. package/core/interfaces/i_selectable.ts +34 -0
  243. package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
  244. package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
  245. package/core/interfaces/i_serializer.d.ts +42 -0
  246. package/core/interfaces/i_serializer.ts +65 -0
  247. package/core/interfaces/i_styleable.d.ts +21 -0
  248. package/core/interfaces/i_styleable.ts +35 -0
  249. package/core/interfaces/i_toolbox.d.ts +85 -0
  250. package/core/interfaces/i_toolbox.ts +127 -0
  251. package/core/interfaces/i_toolbox_item.d.ts +62 -0
  252. package/core/interfaces/i_toolbox_item.ts +84 -0
  253. package/core/internal_constants.d.ts +40 -0
  254. package/core/{internal_constants.js → internal_constants.ts} +13 -18
  255. package/core/keyboard_nav/ast_node.d.ts +239 -0
  256. package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
  257. package/core/keyboard_nav/basic_cursor.d.ts +88 -0
  258. package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
  259. package/core/keyboard_nav/cursor.d.ts +41 -0
  260. package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
  261. package/core/keyboard_nav/marker.d.ts +58 -0
  262. package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
  263. package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
  264. package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
  265. package/core/main.d.ts +11 -0
  266. package/core/main.js +303 -0
  267. package/core/marker_manager.d.ts +85 -0
  268. package/core/marker_manager.ts +181 -0
  269. package/core/menu.d.ts +149 -0
  270. package/core/{menu.js → menu.ts} +141 -174
  271. package/core/menuitem.d.ts +118 -0
  272. package/core/menuitem.ts +240 -0
  273. package/core/metrics_manager.d.ts +201 -0
  274. package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
  275. package/core/msg.d.ts +9 -0
  276. package/core/{msg.js → msg.ts} +4 -8
  277. package/core/mutator.d.ts +128 -0
  278. package/core/{mutator.js → mutator.ts} +196 -211
  279. package/core/names.d.ts +124 -0
  280. package/core/names.ts +267 -0
  281. package/core/options.d.ts +137 -0
  282. package/core/{options.js → options.ts} +147 -173
  283. package/core/positionable_helpers.d.ts +88 -0
  284. package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
  285. package/core/procedures.d.ts +108 -0
  286. package/core/{procedures.js → procedures.ts} +143 -152
  287. package/core/registry.d.ts +137 -0
  288. package/core/registry.ts +339 -0
  289. package/core/rendered_connection.d.ts +191 -0
  290. package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
  291. package/core/renderers/common/block_rendering.d.ts +114 -0
  292. package/core/renderers/common/block_rendering.ts +164 -0
  293. package/core/renderers/common/constants.d.ts +458 -0
  294. package/core/renderers/common/constants.ts +1124 -0
  295. package/core/renderers/common/debug.d.ts +28 -0
  296. package/core/renderers/common/{debug.js → debug.ts} +14 -20
  297. package/core/renderers/common/debugger.d.ts +120 -0
  298. package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
  299. package/core/renderers/common/drawer.d.ts +132 -0
  300. package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
  301. package/core/renderers/common/i_path_object.d.ts +117 -0
  302. package/core/renderers/common/i_path_object.ts +161 -0
  303. package/core/renderers/common/info.d.ts +194 -0
  304. package/core/renderers/common/{info.js → info.ts} +165 -222
  305. package/core/renderers/common/marker_svg.d.ts +220 -0
  306. package/core/renderers/common/marker_svg.ts +680 -0
  307. package/core/renderers/common/path_object.d.ts +146 -0
  308. package/core/renderers/common/path_object.ts +272 -0
  309. package/core/renderers/common/renderer.d.ts +157 -0
  310. package/core/renderers/common/renderer.ts +271 -0
  311. package/core/renderers/geras/constants.d.ts +23 -0
  312. package/core/renderers/geras/constants.ts +61 -0
  313. package/core/renderers/geras/drawer.d.ts +43 -0
  314. package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
  315. package/core/renderers/geras/geras.d.ts +11 -0
  316. package/core/renderers/geras/geras.ts +37 -0
  317. package/core/renderers/geras/highlight_constants.d.ts +108 -0
  318. package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
  319. package/core/renderers/geras/highlighter.d.ts +98 -0
  320. package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
  321. package/core/renderers/geras/info.d.ts +45 -0
  322. package/core/renderers/geras/{info.js → info.ts} +61 -99
  323. package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
  324. package/core/renderers/geras/measurables/inline_input.ts +51 -0
  325. package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
  326. package/core/renderers/geras/measurables/statement_input.ts +50 -0
  327. package/core/renderers/geras/path_object.d.ts +47 -0
  328. package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
  329. package/core/renderers/geras/renderer.d.ts +69 -0
  330. package/core/renderers/geras/renderer.ts +126 -0
  331. package/core/renderers/measurables/base.d.ts +27 -0
  332. package/core/renderers/measurables/base.ts +53 -0
  333. package/core/renderers/measurables/bottom_row.d.ts +61 -0
  334. package/core/renderers/measurables/bottom_row.ts +120 -0
  335. package/core/renderers/measurables/connection.d.ts +25 -0
  336. package/core/renderers/measurables/connection.ts +52 -0
  337. package/core/renderers/measurables/external_value_input.d.ts +27 -0
  338. package/core/renderers/measurables/external_value_input.ts +65 -0
  339. package/core/renderers/measurables/field.d.ts +30 -0
  340. package/core/renderers/measurables/field.ts +63 -0
  341. package/core/renderers/measurables/hat.d.ts +21 -0
  342. package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
  343. package/core/renderers/measurables/icon.d.ts +26 -0
  344. package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
  345. package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
  346. package/core/renderers/measurables/in_row_spacer.ts +44 -0
  347. package/core/renderers/measurables/inline_input.d.ts +24 -0
  348. package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
  349. package/core/renderers/measurables/input_connection.d.ts +29 -0
  350. package/core/renderers/measurables/input_connection.ts +66 -0
  351. package/core/renderers/measurables/input_row.d.ts +30 -0
  352. package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
  353. package/core/renderers/measurables/jagged_edge.d.ts +20 -0
  354. package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
  355. package/core/renderers/measurables/next_connection.d.ts +23 -0
  356. package/core/renderers/measurables/next_connection.ts +47 -0
  357. package/core/renderers/measurables/output_connection.d.ts +26 -0
  358. package/core/renderers/measurables/output_connection.ts +56 -0
  359. package/core/renderers/measurables/previous_connection.d.ts +23 -0
  360. package/core/renderers/measurables/previous_connection.ts +47 -0
  361. package/core/renderers/measurables/round_corner.d.ts +21 -0
  362. package/core/renderers/measurables/round_corner.ts +49 -0
  363. package/core/renderers/measurables/row.d.ts +141 -0
  364. package/core/renderers/measurables/row.ts +225 -0
  365. package/core/renderers/measurables/spacer_row.d.ts +29 -0
  366. package/core/renderers/measurables/spacer_row.ts +55 -0
  367. package/core/renderers/measurables/square_corner.d.ts +21 -0
  368. package/core/renderers/measurables/square_corner.ts +47 -0
  369. package/core/renderers/measurables/statement_input.d.ts +22 -0
  370. package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
  371. package/core/renderers/measurables/top_row.d.ts +56 -0
  372. package/core/renderers/measurables/top_row.ts +122 -0
  373. package/core/renderers/measurables/types.d.ts +235 -0
  374. package/core/renderers/measurables/types.ts +332 -0
  375. package/core/renderers/minimalist/constants.d.ts +14 -0
  376. package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
  377. package/core/renderers/minimalist/drawer.d.ts +21 -0
  378. package/core/renderers/minimalist/drawer.ts +38 -0
  379. package/core/renderers/minimalist/info.d.ts +30 -0
  380. package/core/renderers/minimalist/info.ts +52 -0
  381. package/core/renderers/minimalist/minimalist.d.ts +6 -0
  382. package/core/renderers/minimalist/minimalist.ts +22 -0
  383. package/core/renderers/minimalist/renderer.d.ts +41 -0
  384. package/core/renderers/minimalist/renderer.ts +71 -0
  385. package/core/renderers/thrasos/info.d.ts +40 -0
  386. package/core/renderers/thrasos/{info.js → info.ts} +66 -67
  387. package/core/renderers/thrasos/renderer.d.ts +25 -0
  388. package/core/renderers/thrasos/renderer.ts +48 -0
  389. package/core/renderers/thrasos/thrasos.d.ts +4 -0
  390. package/core/renderers/thrasos/thrasos.ts +20 -0
  391. package/core/renderers/zelos/constants.d.ts +186 -0
  392. package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
  393. package/core/renderers/zelos/drawer.d.ts +47 -0
  394. package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
  395. package/core/renderers/zelos/info.d.ts +88 -0
  396. package/core/renderers/zelos/{info.js → info.ts} +111 -142
  397. package/core/renderers/zelos/marker_svg.d.ts +46 -0
  398. package/core/renderers/zelos/marker_svg.ts +151 -0
  399. package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
  400. package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
  401. package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
  402. package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
  403. package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
  404. package/core/renderers/zelos/measurables/row_elements.ts +45 -0
  405. package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
  406. package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
  407. package/core/renderers/zelos/path_object.d.ts +77 -0
  408. package/core/renderers/zelos/path_object.ts +215 -0
  409. package/core/renderers/zelos/renderer.d.ts +74 -0
  410. package/core/renderers/zelos/renderer.ts +142 -0
  411. package/core/renderers/zelos/zelos.d.ts +12 -0
  412. package/core/renderers/zelos/zelos.ts +39 -0
  413. package/core/scrollbar.d.ts +277 -0
  414. package/core/{scrollbar.js → scrollbar.ts} +307 -328
  415. package/core/scrollbar_pair.d.ts +105 -0
  416. package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
  417. package/core/serialization/blocks.d.ts +98 -0
  418. package/core/serialization/{blocks.js → blocks.ts} +229 -228
  419. package/core/serialization/exceptions.d.ts +73 -0
  420. package/core/serialization/exceptions.ts +98 -0
  421. package/core/serialization/priorities.d.ts +15 -0
  422. package/core/serialization/{priorities.js → priorities.ts} +4 -10
  423. package/core/serialization/registry.d.ts +20 -0
  424. package/core/serialization/{registry.js → registry.ts} +11 -13
  425. package/core/serialization/variables.d.ts +14 -0
  426. package/core/serialization/{variables.js → variables.ts} +30 -32
  427. package/core/serialization/workspaces.d.ts +28 -0
  428. package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
  429. package/core/shortcut_items.d.ts +61 -0
  430. package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
  431. package/core/shortcut_registry.d.ts +151 -0
  432. package/core/shortcut_registry.ts +355 -0
  433. package/core/sprites.d.ts +19 -0
  434. package/core/{sprites.js → sprites.ts} +4 -6
  435. package/core/theme/classic.d.ts +12 -0
  436. package/core/theme/{classic.js → classic.ts} +5 -7
  437. package/core/theme/themes.d.ts +8 -0
  438. package/core/theme/themes.ts +22 -0
  439. package/core/theme/zelos.d.ts +11 -0
  440. package/core/theme/{zelos.js → zelos.ts} +4 -7
  441. package/core/theme.d.ts +142 -0
  442. package/core/theme.ts +221 -0
  443. package/core/theme_manager.d.ts +81 -0
  444. package/core/theme_manager.ts +186 -0
  445. package/core/toolbox/category.d.ts +239 -0
  446. package/core/toolbox/category.ts +679 -0
  447. package/core/toolbox/collapsible_category.d.ts +91 -0
  448. package/core/toolbox/collapsible_category.ts +273 -0
  449. package/core/toolbox/separator.d.ts +39 -0
  450. package/core/toolbox/separator.ts +105 -0
  451. package/core/toolbox/toolbox.d.ts +352 -0
  452. package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
  453. package/core/toolbox/toolbox_item.d.ts +85 -0
  454. package/core/toolbox/toolbox_item.ts +147 -0
  455. package/core/tooltip.d.ts +126 -0
  456. package/core/{tooltip.js → tooltip.ts} +136 -214
  457. package/core/touch.d.ts +121 -0
  458. package/core/touch.ts +306 -0
  459. package/core/touch_gesture.d.ts +115 -0
  460. package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
  461. package/core/trashcan.d.ts +195 -0
  462. package/core/{trashcan.js → trashcan.ts} +226 -312
  463. package/core/utils/aria.d.ts +67 -0
  464. package/core/utils/{aria.js → aria.ts} +47 -61
  465. package/core/utils/array.d.ts +14 -0
  466. package/core/utils/{array.js → array.ts} +10 -12
  467. package/core/utils/colour.d.ts +103 -0
  468. package/core/utils/{colour.js → colour.ts} +60 -72
  469. package/core/utils/coordinate.d.ts +72 -0
  470. package/core/utils/coordinate.ts +124 -0
  471. package/core/utils/deprecation.d.ts +17 -0
  472. package/core/utils/{deprecation.js → deprecation.ts} +11 -11
  473. package/core/utils/dom.d.ts +165 -0
  474. package/core/utils/{dom.js → dom.ts} +125 -147
  475. package/core/utils/idgenerator.d.ts +25 -0
  476. package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
  477. package/core/utils/keycodes.d.ts +137 -0
  478. package/core/utils/keycodes.ts +169 -0
  479. package/core/utils/math.d.ts +30 -0
  480. package/core/utils/{math.js → math.ts} +17 -19
  481. package/core/utils/metrics.d.ts +64 -0
  482. package/core/utils/metrics.ts +97 -0
  483. package/core/utils/object.d.ts +35 -0
  484. package/core/utils/{object.js → object.ts} +30 -26
  485. package/core/utils/parsing.d.ts +50 -0
  486. package/core/utils/{parsing.js → parsing.ts} +50 -50
  487. package/core/utils/rect.d.ts +38 -0
  488. package/core/utils/{rect.js → rect.ts} +18 -31
  489. package/core/utils/sentinel.d.ts +11 -0
  490. package/core/utils/{sentinel.js → sentinel.ts} +3 -5
  491. package/core/utils/size.d.ts +27 -0
  492. package/core/utils/{size.js → size.ts} +12 -26
  493. package/core/utils/string.d.ts +55 -0
  494. package/core/utils/{string.js → string.ts} +64 -61
  495. package/core/utils/style.d.ts +127 -0
  496. package/core/utils/{style.js → style.ts} +102 -92
  497. package/core/utils/svg.d.ts +68 -0
  498. package/core/utils/svg.ts +88 -0
  499. package/core/utils/svg_math.d.ts +70 -0
  500. package/core/utils/{svg_math.js → svg_math.ts} +72 -71
  501. package/core/utils/svg_paths.d.ts +101 -0
  502. package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
  503. package/core/utils/toolbox.d.ts +193 -0
  504. package/core/utils/toolbox.ts +433 -0
  505. package/core/utils/useragent.d.ts +33 -0
  506. package/core/utils/useragent.ts +135 -0
  507. package/core/utils/xml.d.ts +52 -0
  508. package/core/utils/{xml.js → xml.ts} +26 -36
  509. package/core/utils.d.ts +217 -0
  510. package/core/utils.ts +428 -0
  511. package/core/variable_map.d.ts +141 -0
  512. package/core/{variable_map.js → variable_map.ts} +131 -149
  513. package/core/variable_model.d.ts +40 -0
  514. package/core/variable_model.ts +82 -0
  515. package/core/variables.d.ts +181 -0
  516. package/core/{variables.js → variables.ts} +206 -188
  517. package/core/variables_dynamic.d.ts +38 -0
  518. package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
  519. package/core/warning.d.ts +50 -0
  520. package/core/{warning.js → warning.ts} +52 -66
  521. package/core/widgetdiv.d.ts +69 -0
  522. package/core/widgetdiv.ts +257 -0
  523. package/core/workspace.d.ts +386 -0
  524. package/core/workspace.ts +801 -0
  525. package/core/workspace_audio.d.ts +47 -0
  526. package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
  527. package/core/workspace_comment.d.ts +170 -0
  528. package/core/workspace_comment.ts +398 -0
  529. package/core/workspace_comment_svg.d.ts +329 -0
  530. package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
  531. package/core/workspace_drag_surface_svg.d.ts +68 -0
  532. package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
  533. package/core/workspace_dragger.d.ts +48 -0
  534. package/core/workspace_dragger.ts +104 -0
  535. package/core/workspace_svg.d.ts +920 -0
  536. package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
  537. package/core/xml.d.ts +117 -0
  538. package/core/{xml.js → xml.ts} +306 -326
  539. package/core/zoom_controls.d.ts +130 -0
  540. package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
  541. package/core.d.ts +1 -3
  542. package/core.js +1 -2
  543. package/dart.d.ts +0 -3
  544. package/dart_compressed.js +387 -99
  545. package/dart_compressed.js.map +1 -1
  546. package/generators/dart/all.js +2 -0
  547. package/generators/dart/colour.js +1 -1
  548. package/generators/dart/lists.js +1 -1
  549. package/generators/dart/logic.js +1 -1
  550. package/generators/dart/loops.js +1 -1
  551. package/generators/dart/math.js +1 -1
  552. package/generators/dart/procedures.js +1 -1
  553. package/generators/dart/text.js +1 -1
  554. package/generators/dart/variables.js +1 -1
  555. package/generators/dart/variables_dynamic.js +1 -1
  556. package/generators/dart.js +1 -2
  557. package/generators/javascript/all.js +2 -0
  558. package/generators/javascript/colour.js +1 -1
  559. package/generators/javascript/lists.js +1 -1
  560. package/generators/javascript/logic.js +1 -1
  561. package/generators/javascript/loops.js +1 -1
  562. package/generators/javascript/math.js +4 -4
  563. package/generators/javascript/procedures.js +1 -1
  564. package/generators/javascript/text.js +2 -2
  565. package/generators/javascript/variables.js +1 -1
  566. package/generators/javascript/variables_dynamic.js +1 -1
  567. package/generators/javascript.js +1 -3
  568. package/generators/lua/all.js +2 -0
  569. package/generators/lua/colour.js +1 -1
  570. package/generators/lua/lists.js +1 -1
  571. package/generators/lua/logic.js +1 -1
  572. package/generators/lua/loops.js +1 -1
  573. package/generators/lua/math.js +1 -1
  574. package/generators/lua/procedures.js +1 -1
  575. package/generators/lua/text.js +1 -1
  576. package/generators/lua/variables.js +1 -1
  577. package/generators/lua/variables_dynamic.js +1 -1
  578. package/generators/lua.js +1 -2
  579. package/generators/php/all.js +2 -0
  580. package/generators/php/colour.js +1 -1
  581. package/generators/php/lists.js +1 -2
  582. package/generators/php/logic.js +1 -1
  583. package/generators/php/loops.js +1 -1
  584. package/generators/php/math.js +1 -1
  585. package/generators/php/procedures.js +1 -1
  586. package/generators/php/text.js +1 -1
  587. package/generators/php/variables.js +1 -1
  588. package/generators/php/variables_dynamic.js +1 -1
  589. package/generators/php.js +1 -2
  590. package/generators/python/all.js +2 -0
  591. package/generators/python/colour.js +3 -3
  592. package/generators/python/lists.js +1 -1
  593. package/generators/python/logic.js +1 -1
  594. package/generators/python/loops.js +4 -7
  595. package/generators/python/math.js +1 -1
  596. package/generators/python/procedures.js +1 -1
  597. package/generators/python/text.js +1 -1
  598. package/generators/python/variables.js +1 -1
  599. package/generators/python/variables_dynamic.js +1 -1
  600. package/generators/python.js +1 -2
  601. package/index.d.ts +2 -8
  602. package/javascript.d.ts +0 -3
  603. package/javascript_compressed.js +314 -104
  604. package/javascript_compressed.js.map +1 -1
  605. package/lua.d.ts +0 -3
  606. package/lua_compressed.js +399 -81
  607. package/lua_compressed.js.map +1 -1
  608. package/package.json +5 -5
  609. package/php.d.ts +0 -3
  610. package/php_compressed.js +322 -93
  611. package/php_compressed.js.map +1 -1
  612. package/python.d.ts +0 -3
  613. package/python_compressed.js +237 -90
  614. package/python_compressed.js.map +1 -1
  615. package/blockly.d.ts +0 -26127
  616. package/core/blockly_options.js +0 -28
  617. package/core/bubble_dragger.js +0 -298
  618. package/core/clipboard.js +0 -80
  619. package/core/component_manager.js +0 -263
  620. package/core/contextmenu_items.js +0 -651
  621. package/core/contextmenu_registry.js +0 -178
  622. package/core/delete_area.js +0 -87
  623. package/core/dialog.js +0 -107
  624. package/core/drag_target.js +0 -98
  625. package/core/events/events.js +0 -147
  626. package/core/events/events_abstract.js +0 -133
  627. package/core/events/events_block_base.js +0 -70
  628. package/core/events/events_block_drag.js +0 -89
  629. package/core/events/events_bubble_open.js +0 -90
  630. package/core/events/events_comment_base.js +0 -121
  631. package/core/events/events_marker_move.js +0 -110
  632. package/core/events/events_selected.js +0 -83
  633. package/core/events/events_toolbox_item_select.js +0 -84
  634. package/core/events/events_trashcan_open.js +0 -73
  635. package/core/events/events_var_base.js +0 -70
  636. package/core/events/events_viewport.js +0 -107
  637. package/core/events/workspace_events.js +0 -93
  638. package/core/field_angle.js +0 -591
  639. package/core/field_checkbox.js +0 -255
  640. package/core/field_colour.js +0 -717
  641. package/core/field_image.js +0 -304
  642. package/core/field_label.js +0 -149
  643. package/core/field_label_serializable.js +0 -80
  644. package/core/field_textinput.js +0 -619
  645. package/core/flyout_button.js +0 -356
  646. package/core/grid.js +0 -226
  647. package/core/icon.js +0 -225
  648. package/core/input.js +0 -335
  649. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  650. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  651. package/core/interfaces/i_autohideable.js +0 -40
  652. package/core/interfaces/i_block_dragger.js +0 -66
  653. package/core/interfaces/i_bounded_element.js +0 -45
  654. package/core/interfaces/i_bubble.js +0 -95
  655. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  656. package/core/interfaces/i_connection_checker.js +0 -104
  657. package/core/interfaces/i_contextmenu.js +0 -32
  658. package/core/interfaces/i_copyable.js +0 -49
  659. package/core/interfaces/i_delete_area.js +0 -50
  660. package/core/interfaces/i_drag_target.js +0 -88
  661. package/core/interfaces/i_flyout.js +0 -201
  662. package/core/interfaces/i_keyboard_accessible.js +0 -38
  663. package/core/interfaces/i_metrics_manager.js +0 -154
  664. package/core/interfaces/i_positionable.js +0 -51
  665. package/core/interfaces/i_selectable.js +0 -51
  666. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  667. package/core/interfaces/i_serializer.js +0 -77
  668. package/core/interfaces/i_styleable.js +0 -39
  669. package/core/interfaces/i_toolbox.js +0 -142
  670. package/core/interfaces/i_toolbox_item.js +0 -85
  671. package/core/marker_manager.js +0 -213
  672. package/core/menuitem.js +0 -292
  673. package/core/names.js +0 -293
  674. package/core/registry.js +0 -384
  675. package/core/renderers/common/block_rendering.js +0 -170
  676. package/core/renderers/common/constants.js +0 -1250
  677. package/core/renderers/common/i_path_object.js +0 -162
  678. package/core/renderers/common/marker_svg.js +0 -721
  679. package/core/renderers/common/path_object.js +0 -283
  680. package/core/renderers/common/renderer.js +0 -305
  681. package/core/renderers/geras/constants.js +0 -73
  682. package/core/renderers/geras/geras.js +0 -36
  683. package/core/renderers/geras/measurables/inline_input.js +0 -58
  684. package/core/renderers/geras/measurables/statement_input.js +0 -57
  685. package/core/renderers/geras/renderer.js +0 -149
  686. package/core/renderers/measurables/base.js +0 -64
  687. package/core/renderers/measurables/bottom_row.js +0 -138
  688. package/core/renderers/measurables/connection.js +0 -56
  689. package/core/renderers/measurables/external_value_input.js +0 -70
  690. package/core/renderers/measurables/field.js +0 -71
  691. package/core/renderers/measurables/in_row_spacer.js +0 -47
  692. package/core/renderers/measurables/input_connection.js +0 -75
  693. package/core/renderers/measurables/next_connection.js +0 -50
  694. package/core/renderers/measurables/output_connection.js +0 -61
  695. package/core/renderers/measurables/previous_connection.js +0 -50
  696. package/core/renderers/measurables/round_corner.js +0 -52
  697. package/core/renderers/measurables/row.js +0 -247
  698. package/core/renderers/measurables/spacer_row.js +0 -69
  699. package/core/renderers/measurables/square_corner.js +0 -50
  700. package/core/renderers/measurables/top_row.js +0 -143
  701. package/core/renderers/measurables/types.js +0 -353
  702. package/core/renderers/minimalist/drawer.js +0 -42
  703. package/core/renderers/minimalist/info.js +0 -54
  704. package/core/renderers/minimalist/minimalist.js +0 -26
  705. package/core/renderers/minimalist/renderer.js +0 -80
  706. package/core/renderers/thrasos/renderer.js +0 -53
  707. package/core/renderers/thrasos/thrasos.js +0 -22
  708. package/core/renderers/zelos/marker_svg.js +0 -179
  709. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  710. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  711. package/core/renderers/zelos/path_object.js +0 -247
  712. package/core/renderers/zelos/renderer.js +0 -147
  713. package/core/renderers/zelos/zelos.js +0 -38
  714. package/core/serialization/exceptions.js +0 -144
  715. package/core/shortcut_registry.js +0 -366
  716. package/core/theme/themes.js +0 -23
  717. package/core/theme.js +0 -228
  718. package/core/theme_manager.js +0 -211
  719. package/core/toolbox/category.js +0 -751
  720. package/core/toolbox/collapsible_category.js +0 -311
  721. package/core/toolbox/separator.js +0 -133
  722. package/core/toolbox/toolbox_item.js +0 -173
  723. package/core/touch.js +0 -285
  724. package/core/utils/coordinate.js +0 -138
  725. package/core/utils/global.js +0 -41
  726. package/core/utils/keycodes.js +0 -172
  727. package/core/utils/metrics.js +0 -154
  728. package/core/utils/svg.js +0 -186
  729. package/core/utils/toolbox.js +0 -459
  730. package/core/utils/useragent.js +0 -197
  731. package/core/utils.js +0 -383
  732. package/core/variable_model.js +0 -96
  733. package/core/widgetdiv.js +0 -290
  734. package/core/workspace.js +0 -836
  735. package/core/workspace_comment.js +0 -400
  736. package/core/workspace_dragger.js +0 -115
@@ -8,44 +8,39 @@
8
8
  * @fileoverview The class representing an in-progress gesture, usually a drag
9
9
  * or a tap.
10
10
  */
11
- 'use strict';
12
11
 
13
12
  /**
14
13
  * The class representing an in-progress gesture, usually a drag
15
14
  * or a tap.
16
15
  * @class
17
16
  */
18
- goog.module('Blockly.Gesture');
19
-
20
- const Tooltip = goog.require('Blockly.Tooltip');
21
- const Touch = goog.require('Blockly.Touch');
22
- const blockAnimations = goog.require('Blockly.blockAnimations');
23
- const browserEvents = goog.require('Blockly.browserEvents');
24
- const common = goog.require('Blockly.common');
25
- const eventUtils = goog.require('Blockly.Events.utils');
26
- const internalConstants = goog.require('Blockly.internalConstants');
27
- const registry = goog.require('Blockly.registry');
28
- /* eslint-disable-next-line no-unused-vars */
29
- const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
30
- const {BubbleDragger} = goog.require('Blockly.BubbleDragger');
31
- const {config} = goog.require('Blockly.config');
32
- const {Coordinate} = goog.require('Blockly.utils.Coordinate');
33
- /* eslint-disable-next-line no-unused-vars */
34
- const {Field} = goog.requireType('Blockly.Field');
35
- /* eslint-disable-next-line no-unused-vars */
36
- const {IBlockDragger} = goog.requireType('Blockly.IBlockDragger');
37
- /* eslint-disable-next-line no-unused-vars */
38
- const {IBubble} = goog.requireType('Blockly.IBubble');
39
- /* eslint-disable-next-line no-unused-vars */
40
- const {IFlyout} = goog.requireType('Blockly.IFlyout');
41
- const {WorkspaceDragger} = goog.require('Blockly.WorkspaceDragger');
42
- /* eslint-disable-next-line no-unused-vars */
43
- const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
44
- const {Workspace} = goog.require('Blockly.Workspace');
45
- /** @suppress {extraRequire} */
46
- goog.require('Blockly.BlockDragger');
47
- /** @suppress {extraRequire} */
48
- goog.require('Blockly.Events.Click');
17
+ import * as goog from '../closure/goog/goog.js';
18
+ goog.declareModuleId('Blockly.Gesture');
19
+
20
+ // Unused import preserved for side-effects. Remove if unneeded.
21
+ // import './block_dragger.js';
22
+ // Unused import preserved for side-effects. Remove if unneeded.
23
+ import './events/events_click.js';
24
+
25
+ import * as blockAnimations from './block_animations.js';
26
+ import type {BlockSvg} from './block_svg.js';
27
+ import * as browserEvents from './browser_events.js';
28
+ import {BubbleDragger} from './bubble_dragger.js';
29
+ import * as common from './common.js';
30
+ import {config} from './config.js';
31
+ import * as eventUtils from './events/utils.js';
32
+ import type {Field} from './field.js';
33
+ import type {IBlockDragger} from './interfaces/i_block_dragger.js';
34
+ import type {IBubble} from './interfaces/i_bubble.js';
35
+ import type {IFlyout} from './interfaces/i_flyout.js';
36
+ import * as internalConstants from './internal_constants.js';
37
+ import * as registry from './registry.js';
38
+ import * as Tooltip from './tooltip.js';
39
+ import * as Touch from './touch.js';
40
+ import {Coordinate} from './utils/coordinate.js';
41
+ import {WorkspaceCommentSvg} from './workspace_comment_svg.js';
42
+ import {WorkspaceDragger} from './workspace_dragger.js';
43
+ import type {WorkspaceSvg} from './workspace_svg.js';
49
44
 
50
45
 
51
46
  /**
@@ -53,209 +48,155 @@ goog.require('Blockly.Events.Click');
53
48
  * events. "End" refers to touchend, mouseup, and pointerend events.
54
49
  */
55
50
  // TODO: Consider touchcancel/pointercancel.
56
-
57
51
  /**
58
52
  * Class for one gesture.
59
53
  * @alias Blockly.Gesture
60
54
  */
61
- class Gesture {
55
+ export class Gesture {
62
56
  /**
63
- * @param {!Event} e The event that kicked off this gesture.
64
- * @param {!WorkspaceSvg} creatorWorkspace The workspace that created
65
- * this gesture and has a reference to it.
57
+ * The position of the mouse when the gesture started. Units are CSS
58
+ * pixels, with (0, 0) at the top left of the browser window (mouseEvent
59
+ * clientX/Y).
66
60
  */
67
- constructor(e, creatorWorkspace) {
68
- /**
69
- * The position of the mouse when the gesture started. Units are CSS
70
- * pixels, with (0, 0) at the top left of the browser window (mouseEvent
71
- * clientX/Y).
72
- * @type {Coordinate}
73
- * @private
74
- */
75
- this.mouseDownXY_ = null;
61
+ // AnyDuringMigration because: Type 'null' is not assignable to type
62
+ // 'Coordinate'.
63
+ private mouseDownXY_: Coordinate = null as AnyDuringMigration;
64
+ private currentDragDeltaXY_: Coordinate;
76
65
 
77
- /**
78
- * How far the mouse has moved during this drag, in pixel units.
79
- * (0, 0) is at this.mouseDownXY_.
80
- * @type {!Coordinate}
81
- * @private
82
- */
83
- this.currentDragDeltaXY_ = new Coordinate(0, 0);
66
+ /**
67
+ * The bubble that the gesture started on, or null if it did not start on a
68
+ * bubble.
69
+ */
70
+ // AnyDuringMigration because: Type 'null' is not assignable to type
71
+ // 'IBubble'.
72
+ private startBubble_: IBubble = null as AnyDuringMigration;
84
73
 
85
- /**
86
- * The bubble that the gesture started on, or null if it did not start on a
87
- * bubble.
88
- * @type {IBubble}
89
- * @private
90
- */
91
- this.startBubble_ = null;
74
+ /**
75
+ * The field that the gesture started on, or null if it did not start on a
76
+ * field.
77
+ */
78
+ // AnyDuringMigration because: Type 'null' is not assignable to type 'Field'.
79
+ private startField_: Field = null as AnyDuringMigration;
92
80
 
93
- /**
94
- * The field that the gesture started on, or null if it did not start on a
95
- * field.
96
- * @type {Field}
97
- * @private
98
- */
99
- this.startField_ = null;
81
+ /**
82
+ * The block that the gesture started on, or null if it did not start on a
83
+ * block.
84
+ */
85
+ // AnyDuringMigration because: Type 'null' is not assignable to type
86
+ // 'BlockSvg'.
87
+ private startBlock_: BlockSvg = null as AnyDuringMigration;
100
88
 
101
- /**
102
- * The block that the gesture started on, or null if it did not start on a
103
- * block.
104
- * @type {BlockSvg}
105
- * @private
106
- */
107
- this.startBlock_ = null;
89
+ /**
90
+ * The block that this gesture targets. If the gesture started on a
91
+ * shadow block, this is the first non-shadow parent of the block. If the
92
+ * gesture started in the flyout, this is the root block of the block group
93
+ * that was clicked or dragged.
94
+ */
95
+ // AnyDuringMigration because: Type 'null' is not assignable to type
96
+ // 'BlockSvg'.
97
+ private targetBlock_: BlockSvg = null as AnyDuringMigration;
108
98
 
109
- /**
110
- * The block that this gesture targets. If the gesture started on a
111
- * shadow block, this is the first non-shadow parent of the block. If the
112
- * gesture started in the flyout, this is the root block of the block group
113
- * that was clicked or dragged.
114
- * @type {BlockSvg}
115
- * @private
116
- */
117
- this.targetBlock_ = null;
99
+ /**
100
+ * The workspace that the gesture started on. There may be multiple
101
+ * workspaces on a page; this is more accurate than using
102
+ * Blockly.common.getMainWorkspace().
103
+ */
104
+ // AnyDuringMigration because: Type 'null' is not assignable to type
105
+ // 'WorkspaceSvg'.
106
+ protected startWorkspace_: WorkspaceSvg = null as AnyDuringMigration;
118
107
 
119
- /**
120
- * The workspace that the gesture started on. There may be multiple
121
- * workspaces on a page; this is more accurate than using
122
- * Blockly.common.getMainWorkspace().
123
- * @type {WorkspaceSvg}
124
- * @protected
125
- */
126
- this.startWorkspace_ = null;
108
+ /**
109
+ * Whether the pointer has at any point moved out of the drag radius.
110
+ * A gesture that exceeds the drag radius is a drag even if it ends exactly
111
+ * at its start point.
112
+ */
113
+ private hasExceededDragRadius_ = false;
127
114
 
128
- /**
129
- * The workspace that created this gesture. This workspace keeps a
130
- * reference to the gesture, which will need to be cleared at deletion. This
131
- * may be different from the start workspace. For instance, a flyout is a
132
- * workspace, but its parent workspace manages gestures for it.
133
- * @type {!WorkspaceSvg}
134
- * @private
135
- */
136
- this.creatorWorkspace_ = creatorWorkspace;
115
+ /** Whether the workspace is currently being dragged. */
116
+ private isDraggingWorkspace_ = false;
137
117
 
138
- /**
139
- * Whether the pointer has at any point moved out of the drag radius.
140
- * A gesture that exceeds the drag radius is a drag even if it ends exactly
141
- * at its start point.
142
- * @type {boolean}
143
- * @private
144
- */
145
- this.hasExceededDragRadius_ = false;
118
+ /** Whether the block is currently being dragged. */
119
+ private isDraggingBlock_ = false;
146
120
 
147
- /**
148
- * Whether the workspace is currently being dragged.
149
- * @type {boolean}
150
- * @private
151
- */
152
- this.isDraggingWorkspace_ = false;
121
+ /** Whether the bubble is currently being dragged. */
122
+ private isDraggingBubble_ = false;
153
123
 
154
- /**
155
- * Whether the block is currently being dragged.
156
- * @type {boolean}
157
- * @private
158
- */
159
- this.isDraggingBlock_ = false;
124
+ /**
125
+ * A handle to use to unbind a mouse move listener at the end of a drag.
126
+ * Opaque data returned from Blockly.bindEventWithChecks_.
127
+ */
128
+ protected onMoveWrapper_: browserEvents.Data|null = null;
160
129
 
161
- /**
162
- * Whether the bubble is currently being dragged.
163
- * @type {boolean}
164
- * @private
165
- */
166
- this.isDraggingBubble_ = false;
130
+ /**
131
+ * A handle to use to unbind a mouse up listener at the end of a drag.
132
+ * Opaque data returned from Blockly.bindEventWithChecks_.
133
+ */
134
+ protected onUpWrapper_: browserEvents.Data|null = null;
167
135
 
168
- /**
169
- * The event that most recently updated this gesture.
170
- * @type {!Event}
171
- * @private
172
- */
173
- this.mostRecentEvent_ = e;
136
+ /** The object tracking a bubble drag, or null if none is in progress. */
137
+ // AnyDuringMigration because: Type 'null' is not assignable to type
138
+ // 'BubbleDragger'.
139
+ private bubbleDragger_: BubbleDragger = null as AnyDuringMigration;
174
140
 
175
- /**
176
- * A handle to use to unbind a mouse move listener at the end of a drag.
177
- * Opaque data returned from Blockly.bindEventWithChecks_.
178
- * @type {?browserEvents.Data}
179
- * @protected
180
- */
181
- this.onMoveWrapper_ = null;
141
+ /** The object tracking a block drag, or null if none is in progress. */
142
+ private blockDragger_: IBlockDragger|null = null;
182
143
 
183
- /**
184
- * A handle to use to unbind a mouse up listener at the end of a drag.
185
- * Opaque data returned from Blockly.bindEventWithChecks_.
186
- * @type {?browserEvents.Data}
187
- * @protected
188
- */
189
- this.onUpWrapper_ = null;
144
+ /**
145
+ * The object tracking a workspace or flyout workspace drag, or null if none
146
+ * is in progress.
147
+ */
148
+ // AnyDuringMigration because: Type 'null' is not assignable to type
149
+ // 'WorkspaceDragger'.
150
+ private workspaceDragger_: WorkspaceDragger = null as AnyDuringMigration;
190
151
 
191
- /**
192
- * The object tracking a bubble drag, or null if none is in progress.
193
- * @type {BubbleDragger}
194
- * @private
195
- */
196
- this.bubbleDragger_ = null;
152
+ /** The flyout a gesture started in, if any. */
153
+ // AnyDuringMigration because: Type 'null' is not assignable to type
154
+ // 'IFlyout'.
155
+ private flyout_: IFlyout = null as AnyDuringMigration;
197
156
 
198
- /**
199
- * The object tracking a block drag, or null if none is in progress.
200
- * @type {?IBlockDragger}
201
- * @private
202
- */
203
- this.blockDragger_ = null;
157
+ /** Boolean for sanity-checking that some code is only called once. */
158
+ private calledUpdateIsDragging_ = false;
204
159
 
205
- /**
206
- * The object tracking a workspace or flyout workspace drag, or null if none
207
- * is in progress.
208
- * @type {WorkspaceDragger}
209
- * @private
210
- */
211
- this.workspaceDragger_ = null;
160
+ /** Boolean for sanity-checking that some code is only called once. */
161
+ private hasStarted_ = false;
212
162
 
213
- /**
214
- * The flyout a gesture started in, if any.
215
- * @type {IFlyout}
216
- * @private
217
- */
218
- this.flyout_ = null;
163
+ /** Boolean used internally to break a cycle in disposal. */
164
+ protected isEnding_ = false;
165
+ private healStack_: boolean;
219
166
 
220
- /**
221
- * Boolean for sanity-checking that some code is only called once.
222
- * @type {boolean}
223
- * @private
224
- */
225
- this.calledUpdateIsDragging_ = false;
167
+ /** The event that most recently updated this gesture. */
168
+ private mostRecentEvent_: Event;
226
169
 
227
- /**
228
- * Boolean for sanity-checking that some code is only called once.
229
- * @type {boolean}
230
- * @private
231
- */
232
- this.hasStarted_ = false;
170
+ /**
171
+ * @param e The event that kicked off this gesture.
172
+ * @param creatorWorkspace The workspace that created this gesture and has a
173
+ * reference to it.
174
+ */
175
+ constructor(e: Event, private readonly creatorWorkspace: WorkspaceSvg) {
176
+ this.mostRecentEvent_ = e;
233
177
 
234
178
  /**
235
- * Boolean used internally to break a cycle in disposal.
236
- * @type {boolean}
237
- * @protected
179
+ * How far the mouse has moved during this drag, in pixel units.
180
+ * (0, 0) is at this.mouseDownXY_.
238
181
  */
239
- this.isEnding_ = false;
182
+ this.currentDragDeltaXY_ = new Coordinate(0, 0);
240
183
 
241
184
  /**
242
185
  * Boolean used to indicate whether or not to heal the stack after
243
186
  * disconnecting a block.
244
- * @type {boolean}
245
- * @private
246
187
  */
247
188
  this.healStack_ = !internalConstants.DRAG_STACK;
248
189
  }
249
190
 
250
191
  /**
251
192
  * Sever all links from this object.
252
- * @package
193
+ * @internal
253
194
  */
254
195
  dispose() {
255
196
  Touch.clearTouchIdentifier();
256
197
  Tooltip.unblock();
257
198
  // Clear the owner's reference to this gesture.
258
- this.creatorWorkspace_.clearGesture();
199
+ this.creatorWorkspace.clearGesture();
259
200
 
260
201
  if (this.onMoveWrapper_) {
261
202
  browserEvents.unbind(this.onMoveWrapper_);
@@ -270,18 +211,18 @@ class Gesture {
270
211
  if (this.workspaceDragger_) {
271
212
  this.workspaceDragger_.dispose();
272
213
  }
273
- if (this.bubbleDragger_) {
274
- this.bubbleDragger_.dispose();
275
- }
276
214
  }
277
215
 
278
216
  /**
279
217
  * Update internal state based on an event.
280
- * @param {!Event} e The most recent mouse or touch event.
281
- * @private
282
- */
283
- updateFromEvent_(e) {
284
- const currentXY = new Coordinate(e.clientX, e.clientY);
218
+ * @param e The most recent mouse or touch event.
219
+ */
220
+ private updateFromEvent_(e: Event) {
221
+ // AnyDuringMigration because: Property 'clientY' does not exist on type
222
+ // 'Event'. AnyDuringMigration because: Property 'clientX' does not exist
223
+ // on type 'Event'.
224
+ const currentXY = new Coordinate(
225
+ (e as AnyDuringMigration).clientX, (e as AnyDuringMigration).clientY);
285
226
  const changed = this.updateDragDelta_(currentXY);
286
227
  // Exceeded the drag radius for the first time.
287
228
  if (changed) {
@@ -293,16 +234,13 @@ class Gesture {
293
234
 
294
235
  /**
295
236
  * DO MATH to set currentDragDeltaXY_ based on the most recent mouse position.
296
- * @param {!Coordinate} currentXY The most recent mouse/pointer
297
- * position, in pixel units, with (0, 0) at the window's top left corner.
298
- * @return {boolean} True if the drag just exceeded the drag radius for the
299
- * first time.
300
- * @private
237
+ * @param currentXY The most recent mouse/pointer position, in pixel units,
238
+ * with (0, 0) at the window's top left corner.
239
+ * @return True if the drag just exceeded the drag radius for the first time.
301
240
  */
302
- updateDragDelta_(currentXY) {
303
- this.currentDragDeltaXY_ = Coordinate.difference(
304
- currentXY,
305
- /** @type {!Coordinate} */ (this.mouseDownXY_));
241
+ private updateDragDelta_(currentXY: Coordinate): boolean {
242
+ this.currentDragDeltaXY_ =
243
+ Coordinate.difference(currentXY, (this.mouseDownXY_));
306
244
 
307
245
  if (!this.hasExceededDragRadius_) {
308
246
  const currentDragDelta = Coordinate.magnitude(this.currentDragDeltaXY_);
@@ -325,19 +263,20 @@ class Gesture {
325
263
  * gesture. If a block should be dragged from the flyout this function creates
326
264
  * the new block on the main workspace and updates targetBlock_ and
327
265
  * startWorkspace_.
328
- * @return {boolean} True if a block is being dragged from the flyout.
329
- * @private
266
+ * @return True if a block is being dragged from the flyout.
330
267
  */
331
- updateIsDraggingFromFlyout_() {
268
+ private updateIsDraggingFromFlyout_(): boolean {
332
269
  if (!this.targetBlock_) {
333
270
  return false;
334
271
  }
335
- if (!this.flyout_.isBlockCreatable_(this.targetBlock_)) {
272
+ if (!this.flyout_.isBlockCreatable(this.targetBlock_)) {
336
273
  return false;
337
274
  }
338
275
  if (!this.flyout_.isScrollable() ||
339
276
  this.flyout_.isDragTowardWorkspace(this.currentDragDeltaXY_)) {
340
- this.startWorkspace_ = this.flyout_.targetWorkspace;
277
+ // AnyDuringMigration because: Type 'WorkspaceSvg | null' is not
278
+ // assignable to type 'WorkspaceSvg'.
279
+ this.startWorkspace_ = this.flyout_.targetWorkspace as AnyDuringMigration;
341
280
  this.startWorkspace_.updateScreenCalculationsIfScrolled();
342
281
  // Start the event group now, so that the same event group is used for
343
282
  // block creation and block dragging.
@@ -345,7 +284,9 @@ class Gesture {
345
284
  eventUtils.setGroup(true);
346
285
  }
347
286
  // The start block is no longer relevant, because this is a drag.
348
- this.startBlock_ = null;
287
+ // AnyDuringMigration because: Type 'null' is not assignable to type
288
+ // 'BlockSvg'.
289
+ this.startBlock_ = null as AnyDuringMigration;
349
290
  this.targetBlock_ = this.flyout_.createBlock(this.targetBlock_);
350
291
  this.targetBlock_.select();
351
292
  return true;
@@ -359,10 +300,9 @@ class Gesture {
359
300
  * the drag radius is exceeded. It should be called no more than once per
360
301
  * gesture. If a bubble should be dragged this function creates the necessary
361
302
  * BubbleDragger and starts the drag.
362
- * @return {boolean} True if a bubble is being dragged.
363
- * @private
303
+ * @return True if a bubble is being dragged.
364
304
  */
365
- updateIsDraggingBubble_() {
305
+ private updateIsDraggingBubble_(): boolean {
366
306
  if (!this.startBubble_) {
367
307
  return false;
368
308
  }
@@ -379,10 +319,9 @@ class Gesture {
379
319
  * gesture. If a block should be dragged, either from the flyout or in the
380
320
  * workspace, this function creates the necessary BlockDragger and starts the
381
321
  * drag.
382
- * @return {boolean} True if a block is being dragged.
383
- * @private
322
+ * @return True if a block is being dragged.
384
323
  */
385
- updateIsDraggingBlock_() {
324
+ private updateIsDraggingBlock_(): boolean {
386
325
  if (!this.targetBlock_) {
387
326
  return false;
388
327
  }
@@ -406,9 +345,8 @@ class Gesture {
406
345
  * the drag radius is exceeded. It should be called no more than once per
407
346
  * gesture. If a workspace is being dragged this function creates the
408
347
  * necessary WorkspaceDragger and starts the drag.
409
- * @private
410
348
  */
411
- updateIsDraggingWorkspace_() {
349
+ private updateIsDraggingWorkspace_() {
412
350
  const wsMovable = this.flyout_ ?
413
351
  this.flyout_.isScrollable() :
414
352
  this.startWorkspace_ && this.startWorkspace_.isDraggable();
@@ -417,8 +355,7 @@ class Gesture {
417
355
  return;
418
356
  }
419
357
 
420
- this.workspaceDragger_ = new WorkspaceDragger(
421
- /** @type {!WorkspaceSvg} */ (this.startWorkspace_));
358
+ this.workspaceDragger_ = new WorkspaceDragger((this.startWorkspace_));
422
359
 
423
360
  this.isDraggingWorkspace_ = true;
424
361
  this.workspaceDragger_.startDrag();
@@ -429,9 +366,8 @@ class Gesture {
429
366
  * This function should be called on a mouse/touch move event the first time
430
367
  * the drag radius is exceeded. It should be called no more than once per
431
368
  * gesture.
432
- * @private
433
369
  */
434
- updateIsDragging_() {
370
+ private updateIsDragging_() {
435
371
  // Sanity check.
436
372
  if (this.calledUpdateIsDragging_) {
437
373
  throw Error('updateIsDragging_ should only be called once per gesture.');
@@ -451,30 +387,22 @@ class Gesture {
451
387
  this.updateIsDraggingWorkspace_();
452
388
  }
453
389
 
454
- /**
455
- * Create a block dragger and start dragging the selected block.
456
- * @private
457
- */
458
- startDraggingBlock_() {
390
+ /** Create a block dragger and start dragging the selected block. */
391
+ private startDraggingBlock_() {
459
392
  const BlockDraggerClass = registry.getClassFromOptions(
460
- registry.Type.BLOCK_DRAGGER, this.creatorWorkspace_.options, true);
393
+ registry.Type.BLOCK_DRAGGER, this.creatorWorkspace.options, true);
461
394
 
462
- this.blockDragger_ = new BlockDraggerClass(
463
- /** @type {!BlockSvg} */ (this.targetBlock_),
464
- /** @type {!WorkspaceSvg} */ (this.startWorkspace_));
465
- this.blockDragger_.startDrag(this.currentDragDeltaXY_, this.healStack_);
466
- this.blockDragger_.drag(this.mostRecentEvent_, this.currentDragDeltaXY_);
395
+ this.blockDragger_ =
396
+ new BlockDraggerClass!((this.targetBlock_), (this.startWorkspace_));
397
+ this.blockDragger_!.startDrag(this.currentDragDeltaXY_, this.healStack_);
398
+ this.blockDragger_!.drag(this.mostRecentEvent_, this.currentDragDeltaXY_);
467
399
  }
468
400
 
469
401
  // TODO (fenichel): Possibly combine this and startDraggingBlock_.
470
- /**
471
- * Create a bubble dragger and start dragging the selected bubble.
472
- * @private
473
- */
474
- startDraggingBubble_() {
475
- this.bubbleDragger_ = new BubbleDragger(
476
- /** @type {!IBubble} */ (this.startBubble_),
477
- /** @type {!WorkspaceSvg} */ (this.startWorkspace_));
402
+ /** Create a bubble dragger and start dragging the selected bubble. */
403
+ private startDraggingBubble_() {
404
+ this.bubbleDragger_ =
405
+ new BubbleDragger((this.startBubble_), (this.startWorkspace_));
478
406
  this.bubbleDragger_.startBubbleDrag();
479
407
  this.bubbleDragger_.dragBubble(
480
408
  this.mostRecentEvent_, this.currentDragDeltaXY_);
@@ -483,10 +411,10 @@ class Gesture {
483
411
  /**
484
412
  * Start a gesture: update the workspace to indicate that a gesture is in
485
413
  * progress and bind mousemove and mouseup handlers.
486
- * @param {!Event} e A mouse down or touch start event.
487
- * @package
414
+ * @param e A mouse down or touch start event.
415
+ * @internal
488
416
  */
489
- doStart(e) {
417
+ doStart(e: MouseEvent) {
490
418
  if (browserEvents.isTargetInput(e)) {
491
419
  this.cancel();
492
420
  return;
@@ -500,7 +428,6 @@ class Gesture {
500
428
  // dragged, the block was moved, the parent workspace zoomed, etc.
501
429
  this.startWorkspace_.resize();
502
430
  }
503
-
504
431
  // Hide chaff also hides the flyout, so don't do it if the click is in a
505
432
  // flyout.
506
433
  this.startWorkspace_.hideChaff(!!this.flyout_);
@@ -519,24 +446,35 @@ class Gesture {
519
446
  return;
520
447
  }
521
448
 
449
+ // TODO(#6097): Make types accurate, possibly by refactoring touch handling.
450
+ const typelessEvent = e as AnyDuringMigration;
522
451
  if ((e.type.toLowerCase() === 'touchstart' ||
523
452
  e.type.toLowerCase() === 'pointerdown') &&
524
- e.pointerType !== 'mouse') {
525
- Touch.longStart(e, this);
526
- }
527
-
528
- this.mouseDownXY_ = new Coordinate(e.clientX, e.clientY);
529
- this.healStack_ = e.altKey || e.ctrlKey || e.metaKey;
453
+ typelessEvent.pointerType !== 'mouse') {
454
+ Touch.longStart(typelessEvent, this);
455
+ }
456
+
457
+ // AnyDuringMigration because: Property 'clientY' does not exist on type
458
+ // 'Event'. AnyDuringMigration because: Property 'clientX' does not exist
459
+ // on type 'Event'.
460
+ this.mouseDownXY_ = new Coordinate(
461
+ (e as AnyDuringMigration).clientX, (e as AnyDuringMigration).clientY);
462
+ // AnyDuringMigration because: Property 'metaKey' does not exist on type
463
+ // 'Event'. AnyDuringMigration because: Property 'ctrlKey' does not exist
464
+ // on type 'Event'. AnyDuringMigration because: Property 'altKey' does not
465
+ // exist on type 'Event'.
466
+ this.healStack_ = (e as AnyDuringMigration).altKey ||
467
+ (e as AnyDuringMigration).ctrlKey || (e as AnyDuringMigration).metaKey;
530
468
 
531
469
  this.bindMouseEvents(e);
532
470
  }
533
471
 
534
472
  /**
535
473
  * Bind gesture events.
536
- * @param {!Event} e A mouse down or touch start event.
537
- * @package
474
+ * @param e A mouse down or touch start event.
475
+ * @internal
538
476
  */
539
- bindMouseEvents(e) {
477
+ bindMouseEvents(e: Event) {
540
478
  this.onMoveWrapper_ = browserEvents.conditionalBind(
541
479
  document, 'mousemove', null, this.handleMove.bind(this));
542
480
  this.onUpWrapper_ = browserEvents.conditionalBind(
@@ -548,15 +486,15 @@ class Gesture {
548
486
 
549
487
  /**
550
488
  * Handle a mouse move or touch move event.
551
- * @param {!Event} e A mouse move or touch move event.
552
- * @package
489
+ * @param e A mouse move or touch move event.
490
+ * @internal
553
491
  */
554
- handleMove(e) {
492
+ handleMove(e: Event) {
555
493
  this.updateFromEvent_(e);
556
494
  if (this.isDraggingWorkspace_) {
557
495
  this.workspaceDragger_.drag(this.currentDragDeltaXY_);
558
496
  } else if (this.isDraggingBlock_) {
559
- this.blockDragger_.drag(this.mostRecentEvent_, this.currentDragDeltaXY_);
497
+ this.blockDragger_!.drag(this.mostRecentEvent_, this.currentDragDeltaXY_);
560
498
  } else if (this.isDraggingBubble_) {
561
499
  this.bubbleDragger_.dragBubble(
562
500
  this.mostRecentEvent_, this.currentDragDeltaXY_);
@@ -567,10 +505,10 @@ class Gesture {
567
505
 
568
506
  /**
569
507
  * Handle a mouse up or touch end event.
570
- * @param {!Event} e A mouse up or touch end event.
571
- * @package
508
+ * @param e A mouse up or touch end event.
509
+ * @internal
572
510
  */
573
- handleUp(e) {
511
+ handleUp(e: Event) {
574
512
  this.updateFromEvent_(e);
575
513
  Touch.longStop();
576
514
 
@@ -587,7 +525,7 @@ class Gesture {
587
525
  if (this.isDraggingBubble_) {
588
526
  this.bubbleDragger_.endBubbleDrag(e, this.currentDragDeltaXY_);
589
527
  } else if (this.isDraggingBlock_) {
590
- this.blockDragger_.endDrag(e, this.currentDragDeltaXY_);
528
+ this.blockDragger_!.endDrag(e, this.currentDragDeltaXY_);
591
529
  } else if (this.isDraggingWorkspace_) {
592
530
  this.workspaceDragger_.endDrag(this.currentDragDeltaXY_);
593
531
  } else if (this.isBubbleClick_()) {
@@ -610,7 +548,7 @@ class Gesture {
610
548
  /**
611
549
  * Cancel an in-progress gesture. If a workspace or block drag is in
612
550
  * progress, end the drag at the most recent location.
613
- * @package
551
+ * @internal
614
552
  */
615
553
  cancel() {
616
554
  // Disposing of a block cancels in-progress drags, but dragging to a delete
@@ -624,7 +562,7 @@ class Gesture {
624
562
  this.bubbleDragger_.endBubbleDrag(
625
563
  this.mostRecentEvent_, this.currentDragDeltaXY_);
626
564
  } else if (this.isDraggingBlock_) {
627
- this.blockDragger_.endDrag(
565
+ this.blockDragger_!.endDrag(
628
566
  this.mostRecentEvent_, this.currentDragDeltaXY_);
629
567
  } else if (this.isDraggingWorkspace_) {
630
568
  this.workspaceDragger_.endDrag(this.currentDragDeltaXY_);
@@ -634,10 +572,10 @@ class Gesture {
634
572
 
635
573
  /**
636
574
  * Handle a real or faked right-click event by showing a context menu.
637
- * @param {!Event} e A mouse move or touch move event.
638
- * @package
575
+ * @param e A mouse move or touch move event.
576
+ * @internal
639
577
  */
640
- handleRightClick(e) {
578
+ handleRightClick(e: Event) {
641
579
  if (this.targetBlock_) {
642
580
  this.bringBlockToFront_();
643
581
  this.targetBlock_.workspace.hideChaff(!!this.flyout_);
@@ -658,11 +596,11 @@ class Gesture {
658
596
 
659
597
  /**
660
598
  * Handle a mousedown/touchstart event on a workspace.
661
- * @param {!Event} e A mouse down or touch start event.
662
- * @param {!WorkspaceSvg} ws The workspace the event hit.
663
- * @package
599
+ * @param e A mouse down or touch start event.
600
+ * @param ws The workspace the event hit.
601
+ * @internal
664
602
  */
665
- handleWsStart(e, ws) {
603
+ handleWsStart(e: MouseEvent, ws: WorkspaceSvg) {
666
604
  if (this.hasStarted_) {
667
605
  throw Error(
668
606
  'Tried to call gesture.handleWsStart, ' +
@@ -675,21 +613,20 @@ class Gesture {
675
613
 
676
614
  /**
677
615
  * Fires a workspace click event.
678
- * @param {!WorkspaceSvg} ws The workspace that a user clicks on.
679
- * @private
616
+ * @param ws The workspace that a user clicks on.
680
617
  */
681
- fireWorkspaceClick_(ws) {
682
- eventUtils.fire(
683
- new (eventUtils.get(eventUtils.CLICK))(null, ws.id, 'workspace'));
618
+ private fireWorkspaceClick_(ws: WorkspaceSvg) {
619
+ eventUtils.fire(new (eventUtils.get(eventUtils.CLICK))!
620
+ (null, ws.id, 'workspace'));
684
621
  }
685
622
 
686
623
  /**
687
624
  * Handle a mousedown/touchstart event on a flyout.
688
- * @param {!Event} e A mouse down or touch start event.
689
- * @param {!IFlyout} flyout The flyout the event hit.
690
- * @package
625
+ * @param e A mouse down or touch start event.
626
+ * @param flyout The flyout the event hit.
627
+ * @internal
691
628
  */
692
- handleFlyoutStart(e, flyout) {
629
+ handleFlyoutStart(e: MouseEvent, flyout: IFlyout) {
693
630
  if (this.hasStarted_) {
694
631
  throw Error(
695
632
  'Tried to call gesture.handleFlyoutStart, ' +
@@ -701,11 +638,11 @@ class Gesture {
701
638
 
702
639
  /**
703
640
  * Handle a mousedown/touchstart event on a block.
704
- * @param {!Event} e A mouse down or touch start event.
705
- * @param {!BlockSvg} block The block the event hit.
706
- * @package
641
+ * @param e A mouse down or touch start event.
642
+ * @param block The block the event hit.
643
+ * @internal
707
644
  */
708
- handleBlockStart(e, block) {
645
+ handleBlockStart(e: Event, block: BlockSvg) {
709
646
  if (this.hasStarted_) {
710
647
  throw Error(
711
648
  'Tried to call gesture.handleBlockStart, ' +
@@ -717,11 +654,11 @@ class Gesture {
717
654
 
718
655
  /**
719
656
  * Handle a mousedown/touchstart event on a bubble.
720
- * @param {!Event} e A mouse down or touch start event.
721
- * @param {!IBubble} bubble The bubble the event hit.
722
- * @package
657
+ * @param e A mouse down or touch start event.
658
+ * @param bubble The bubble the event hit.
659
+ * @internal
723
660
  */
724
- handleBubbleStart(e, bubble) {
661
+ handleBubbleStart(e: Event, bubble: IBubble) {
725
662
  if (this.hasStarted_) {
726
663
  throw Error(
727
664
  'Tried to call gesture.handleBubbleStart, ' +
@@ -735,30 +672,23 @@ class Gesture {
735
672
  * type of target. Any developer wanting to add behaviour on clicks should
736
673
  * modify only this code. */
737
674
 
738
- /**
739
- * Execute a bubble click.
740
- * @private
741
- */
742
- doBubbleClick_() {
675
+ /** Execute a bubble click. */
676
+ private doBubbleClick_() {
743
677
  // TODO (#1673): Consistent handling of single clicks.
744
- this.startBubble_.setFocus && this.startBubble_.setFocus();
745
- this.startBubble_.select && this.startBubble_.select();
678
+ if (this.startBubble_ instanceof WorkspaceCommentSvg) {
679
+ this.startBubble_.setFocus();
680
+ this.startBubble_.select();
681
+ }
746
682
  }
747
683
 
748
- /**
749
- * Execute a field click.
750
- * @private
751
- */
752
- doFieldClick_() {
684
+ /** Execute a field click. */
685
+ private doFieldClick_() {
753
686
  this.startField_.showEditor(this.mostRecentEvent_);
754
687
  this.bringBlockToFront_();
755
688
  }
756
689
 
757
- /**
758
- * Execute a block click.
759
- * @private
760
- */
761
- doBlockClick_() {
690
+ /** Execute a block click. */
691
+ private doBlockClick_() {
762
692
  // Block click in an autoclosing flyout.
763
693
  if (this.flyout_ && this.flyout_.autoClose) {
764
694
  if (this.targetBlock_.isEnabled()) {
@@ -770,8 +700,8 @@ class Gesture {
770
700
  }
771
701
  } else {
772
702
  // Clicks events are on the start block, even if it was a shadow.
773
- const event = new (eventUtils.get(eventUtils.CLICK))(
774
- this.startBlock_, this.startWorkspace_.id, 'block');
703
+ const event = new (eventUtils.get(eventUtils.CLICK))!
704
+ (this.startBlock_, this.startWorkspace_.id, 'block');
775
705
  eventUtils.fire(event);
776
706
  }
777
707
  this.bringBlockToFront_();
@@ -781,13 +711,12 @@ class Gesture {
781
711
  /**
782
712
  * Execute a workspace click. When in accessibility mode shift clicking will
783
713
  * move the cursor.
784
- * @param {!Event} _e A mouse up or touch end event.
785
- * @private
714
+ * @param _e A mouse up or touch end event.
786
715
  */
787
- doWorkspaceClick_(_e) {
788
- const ws = this.creatorWorkspace_;
716
+ private doWorkspaceClick_(_e: Event) {
717
+ const ws = this.creatorWorkspace;
789
718
  if (common.getSelected()) {
790
- common.getSelected().unselect();
719
+ common.getSelected()!.unselect();
791
720
  }
792
721
  this.fireWorkspaceClick_(this.startWorkspace_ || ws);
793
722
  }
@@ -800,9 +729,8 @@ class Gesture {
800
729
  /**
801
730
  * Move the dragged/clicked block to the front of the workspace so that it is
802
731
  * not occluded by other blocks.
803
- * @private
804
732
  */
805
- bringBlockToFront_() {
733
+ private bringBlockToFront_() {
806
734
  // Blocks in the flyout don't overlap, so skip the work.
807
735
  if (this.targetBlock_ && !this.flyout_) {
808
736
  this.targetBlock_.bringToFront();
@@ -813,10 +741,10 @@ class Gesture {
813
741
 
814
742
  /**
815
743
  * Record the field that a gesture started on.
816
- * @param {Field} field The field the gesture started on.
817
- * @package
744
+ * @param field The field the gesture started on.
745
+ * @internal
818
746
  */
819
- setStartField(field) {
747
+ setStartField(field: Field) {
820
748
  if (this.hasStarted_) {
821
749
  throw Error(
822
750
  'Tried to call gesture.setStartField, ' +
@@ -829,10 +757,10 @@ class Gesture {
829
757
 
830
758
  /**
831
759
  * Record the bubble that a gesture started on
832
- * @param {IBubble} bubble The bubble the gesture started on.
833
- * @package
760
+ * @param bubble The bubble the gesture started on.
761
+ * @internal
834
762
  */
835
- setStartBubble(bubble) {
763
+ setStartBubble(bubble: IBubble) {
836
764
  if (!this.startBubble_) {
837
765
  this.startBubble_ = bubble;
838
766
  }
@@ -841,10 +769,10 @@ class Gesture {
841
769
  /**
842
770
  * Record the block that a gesture started on, and set the target block
843
771
  * appropriately.
844
- * @param {BlockSvg} block The block the gesture started on.
845
- * @package
772
+ * @param block The block the gesture started on.
773
+ * @internal
846
774
  */
847
- setStartBlock(block) {
775
+ setStartBlock(block: BlockSvg) {
848
776
  // If the gesture already went through a bubble, don't set the start block.
849
777
  if (!this.startBlock_ && !this.startBubble_) {
850
778
  this.startBlock_ = block;
@@ -860,12 +788,13 @@ class Gesture {
860
788
  * Record the block that a gesture targets, meaning the block that will be
861
789
  * dragged if this turns into a drag. If this block is a shadow, that will be
862
790
  * its first non-shadow parent.
863
- * @param {BlockSvg} block The block the gesture targets.
864
- * @private
791
+ * @param block The block the gesture targets.
865
792
  */
866
- setTargetBlock_(block) {
793
+ private setTargetBlock_(block: BlockSvg) {
867
794
  if (block.isShadow()) {
868
- this.setTargetBlock_(block.getParent());
795
+ // AnyDuringMigration because: Argument of type 'BlockSvg | null' is not
796
+ // assignable to parameter of type 'BlockSvg'.
797
+ this.setTargetBlock_(block.getParent() as AnyDuringMigration);
869
798
  } else {
870
799
  this.targetBlock_ = block;
871
800
  }
@@ -873,10 +802,9 @@ class Gesture {
873
802
 
874
803
  /**
875
804
  * Record the workspace that a gesture started on.
876
- * @param {WorkspaceSvg} ws The workspace the gesture started on.
877
- * @private
805
+ * @param ws The workspace the gesture started on.
878
806
  */
879
- setStartWorkspace_(ws) {
807
+ private setStartWorkspace_(ws: WorkspaceSvg) {
880
808
  if (!this.startWorkspace_) {
881
809
  this.startWorkspace_ = ws;
882
810
  }
@@ -884,10 +812,9 @@ class Gesture {
884
812
 
885
813
  /**
886
814
  * Record the flyout that a gesture started on.
887
- * @param {IFlyout} flyout The flyout the gesture started on.
888
- * @private
815
+ * @param flyout The flyout the gesture started on.
889
816
  */
890
- setStartFlyout_(flyout) {
817
+ private setStartFlyout_(flyout: IFlyout) {
891
818
  if (!this.flyout_) {
892
819
  this.flyout_ = flyout;
893
820
  }
@@ -901,10 +828,9 @@ class Gesture {
901
828
  /**
902
829
  * Whether this gesture is a click on a bubble. This should only be called
903
830
  * when ending a gesture (mouse up, touch end).
904
- * @return {boolean} Whether this gesture was a click on a bubble.
905
- * @private
831
+ * @return Whether this gesture was a click on a bubble.
906
832
  */
907
- isBubbleClick_() {
833
+ private isBubbleClick_(): boolean {
908
834
  // A bubble click starts on a bubble and never escapes the drag radius.
909
835
  const hasStartBubble = !!this.startBubble_;
910
836
  return hasStartBubble && !this.hasExceededDragRadius_;
@@ -913,10 +839,9 @@ class Gesture {
913
839
  /**
914
840
  * Whether this gesture is a click on a block. This should only be called
915
841
  * when ending a gesture (mouse up, touch end).
916
- * @return {boolean} Whether this gesture was a click on a block.
917
- * @private
842
+ * @return Whether this gesture was a click on a block.
918
843
  */
919
- isBlockClick_() {
844
+ private isBlockClick_(): boolean {
920
845
  // A block click starts on a block, never escapes the drag radius, and is
921
846
  // not a field click.
922
847
  const hasStartBlock = !!this.startBlock_;
@@ -927,10 +852,9 @@ class Gesture {
927
852
  /**
928
853
  * Whether this gesture is a click on a field. This should only be called
929
854
  * when ending a gesture (mouse up, touch end).
930
- * @return {boolean} Whether this gesture was a click on a field.
931
- * @private
855
+ * @return Whether this gesture was a click on a field.
932
856
  */
933
- isFieldClick_() {
857
+ private isFieldClick_(): boolean {
934
858
  const fieldClickable =
935
859
  this.startField_ ? this.startField_.isClickable() : false;
936
860
  return fieldClickable && !this.hasExceededDragRadius_ &&
@@ -940,10 +864,9 @@ class Gesture {
940
864
  /**
941
865
  * Whether this gesture is a click on a workspace. This should only be called
942
866
  * when ending a gesture (mouse up, touch end).
943
- * @return {boolean} Whether this gesture was a click on a workspace.
944
- * @private
867
+ * @return Whether this gesture was a click on a workspace.
945
868
  */
946
- isWorkspaceClick_() {
869
+ private isWorkspaceClick_(): boolean {
947
870
  const onlyTouchedWorkspace =
948
871
  !this.startBlock_ && !this.startBubble_ && !this.startField_;
949
872
  return onlyTouchedWorkspace && !this.hasExceededDragRadius_;
@@ -955,10 +878,10 @@ class Gesture {
955
878
  * Whether this gesture is a drag of either a workspace or block.
956
879
  * This function is called externally to block actions that cannot be taken
957
880
  * mid-drag (e.g. using the keyboard to delete the selected blocks).
958
- * @return {boolean} True if this gesture is a drag of a workspace or block.
959
- * @package
881
+ * @return True if this gesture is a drag of a workspace or block.
882
+ * @internal
960
883
  */
961
- isDragging() {
884
+ isDragging(): boolean {
962
885
  return this.isDraggingWorkspace_ || this.isDraggingBlock_ ||
963
886
  this.isDraggingBubble_;
964
887
  }
@@ -967,21 +890,20 @@ class Gesture {
967
890
  * Whether this gesture has already been started. In theory every mouse down
968
891
  * has a corresponding mouse up, but in reality it is possible to lose a
969
892
  * mouse up, leaving an in-process gesture hanging.
970
- * @return {boolean} Whether this gesture was a click on a workspace.
971
- * @package
893
+ * @return Whether this gesture was a click on a workspace.
894
+ * @internal
972
895
  */
973
- hasStarted() {
896
+ hasStarted(): boolean {
974
897
  return this.hasStarted_;
975
898
  }
976
899
 
977
900
  /**
978
901
  * Get a list of the insertion markers that currently exist. Block drags have
979
902
  * 0, 1, or 2 insertion markers.
980
- * @return {!Array<!BlockSvg>} A possibly empty list of insertion
981
- * marker blocks.
982
- * @package
903
+ * @return A possibly empty list of insertion marker blocks.
904
+ * @internal
983
905
  */
984
- getInsertionMarkers() {
906
+ getInsertionMarkers(): BlockSvg[] {
985
907
  if (this.blockDragger_) {
986
908
  return this.blockDragger_.getInsertionMarkers();
987
909
  }
@@ -991,10 +913,10 @@ class Gesture {
991
913
  /**
992
914
  * Gets the current dragger if an item is being dragged. Null if nothing is
993
915
  * being dragged.
994
- * @return {!WorkspaceDragger|!BubbleDragger|!IBlockDragger|null}
995
- * The dragger that is currently in use or null if no drag is in progress.
916
+ * @return The dragger that is currently in use or null if no drag is in
917
+ * progress.
996
918
  */
997
- getCurrentDragger() {
919
+ getCurrentDragger(): WorkspaceDragger|BubbleDragger|IBlockDragger|null {
998
920
  if (this.isDraggingBlock_) {
999
921
  return this.blockDragger_;
1000
922
  } else if (this.isDraggingWorkspace_) {
@@ -1007,20 +929,18 @@ class Gesture {
1007
929
 
1008
930
  /**
1009
931
  * Is a drag or other gesture currently in progress on any workspace?
1010
- * @return {boolean} True if gesture is occurring.
932
+ * @return True if gesture is occurring.
1011
933
  */
1012
- static inProgress() {
1013
- const workspaces = Workspace.getAll();
1014
- for (let i = 0, workspace; (workspace = workspaces[i]); i++) {
934
+ static inProgress(): boolean {
935
+ const workspaces = common.getAllWorkspaces();
936
+ for (let i = 0, workspace; workspace = workspaces[i]; i++) {
1015
937
  // Not actually necessarily a WorkspaceSvg, but it doesn't matter b/c
1016
938
  // we're just checking if the property exists. Theoretically we would
1017
939
  // want to use instanceof, but that causes a circular dependency.
1018
- if (/** @type {!WorkspaceSvg} */ (workspace).currentGesture_) {
940
+ if ((workspace as WorkspaceSvg).currentGesture_) {
1019
941
  return true;
1020
942
  }
1021
943
  }
1022
944
  return false;
1023
945
  }
1024
946
  }
1025
-
1026
- exports.Gesture = Gesture;