blockly 8.0.5 → 9.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (736) hide show
  1. package/blockly.min.js +2002 -2269
  2. package/blockly_compressed.js +1499 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks/blocks.js +3 -2
  5. package/blocks/colour.js +3 -1
  6. package/blocks/lists.js +94 -22
  7. package/blocks/logic.js +14 -6
  8. package/blocks/loops.js +5 -3
  9. package/blocks/math.js +3 -1
  10. package/blocks/procedures.js +3 -1
  11. package/blocks/text.js +14 -6
  12. package/blocks/variables.js +3 -1
  13. package/blocks/variables_dynamic.js +3 -1
  14. package/blocks.d.ts +0 -2
  15. package/blocks_compressed.js +189 -171
  16. package/blocks_compressed.js.map +1 -1
  17. package/closure/goog/base.d.ts +1 -0
  18. package/closure/goog/base_minimal.d.ts +18 -0
  19. package/closure/goog/goog.d.ts +25 -0
  20. package/core/any_aliases.d.ts +1 -0
  21. package/core/any_aliases.ts +1 -0
  22. package/core/block.d.ts +779 -0
  23. package/core/{block.js → block.ts} +610 -719
  24. package/core/block_animations.d.ts +33 -0
  25. package/core/{block_animations.js → block_animations.ts} +75 -79
  26. package/core/block_drag_surface.d.ts +111 -0
  27. package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
  28. package/core/block_dragger.d.ts +143 -0
  29. package/core/{block_dragger.js → block_dragger.ts} +139 -176
  30. package/core/block_svg.d.ts +588 -0
  31. package/core/{block_svg.js → block_svg.ts} +494 -630
  32. package/core/blockly.d.ts +562 -0
  33. package/core/blockly.js +1 -1
  34. package/core/blockly.ts +749 -0
  35. package/core/blockly_options.d.ts +69 -0
  36. package/core/blockly_options.ts +81 -0
  37. package/core/blocks.d.ts +17 -0
  38. package/core/{blocks.js → blocks.ts} +4 -8
  39. package/core/browser_events.d.ts +85 -0
  40. package/core/{browser_events.js → browser_events.ts} +98 -93
  41. package/core/bubble.d.ts +279 -0
  42. package/core/{bubble.js → bubble.ts} +277 -370
  43. package/core/bubble_dragger.d.ts +73 -0
  44. package/core/bubble_dragger.ts +229 -0
  45. package/core/bump_objects.d.ts +34 -0
  46. package/core/{bump_objects.js → bump_objects.ts} +54 -52
  47. package/core/clipboard.d.ts +42 -0
  48. package/core/clipboard.ts +91 -0
  49. package/core/comment.d.ts +113 -0
  50. package/core/{comment.js → comment.ts} +135 -185
  51. package/core/common.d.ts +129 -0
  52. package/core/{common.js → common.ts} +105 -82
  53. package/core/component_manager.d.ts +91 -0
  54. package/core/component_manager.ts +211 -0
  55. package/core/config.d.ts +23 -0
  56. package/core/{config.js → config.ts} +12 -19
  57. package/core/connection.d.ts +232 -0
  58. package/core/{connection.js → connection.ts} +187 -237
  59. package/core/connection_checker.d.ts +78 -0
  60. package/core/{connection_checker.js → connection_checker.ts} +66 -77
  61. package/core/connection_db.d.ts +91 -0
  62. package/core/{connection_db.js → connection_db.ts} +62 -87
  63. package/core/connection_type.d.ts +15 -0
  64. package/core/{connection_type.js → connection_type.ts} +8 -12
  65. package/core/constants.d.ts +15 -0
  66. package/core/{constants.js → constants.ts} +4 -8
  67. package/core/contextmenu.d.ts +80 -0
  68. package/core/{contextmenu.js → contextmenu.ts} +118 -153
  69. package/core/contextmenu_items.d.ts +77 -0
  70. package/core/contextmenu_items.ts +576 -0
  71. package/core/contextmenu_registry.d.ts +105 -0
  72. package/core/contextmenu_registry.ts +179 -0
  73. package/core/css.d.ts +24 -0
  74. package/core/{css.js → css.ts} +16 -24
  75. package/core/delete_area.d.ts +47 -0
  76. package/core/delete_area.ts +82 -0
  77. package/core/dialog.d.ts +61 -0
  78. package/core/dialog.ts +127 -0
  79. package/core/drag_target.d.ts +63 -0
  80. package/core/drag_target.ts +94 -0
  81. package/core/dropdowndiv.d.ts +155 -0
  82. package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
  83. package/core/events/events.d.ts +102 -0
  84. package/core/events/events.ts +123 -0
  85. package/core/events/events_abstract.d.ts +51 -0
  86. package/core/events/events_abstract.ts +112 -0
  87. package/core/events/events_block_base.d.ts +31 -0
  88. package/core/events/events_block_base.ts +65 -0
  89. package/core/events/events_block_change.d.ts +55 -0
  90. package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
  91. package/core/events/events_block_create.d.ts +35 -0
  92. package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
  93. package/core/events/events_block_delete.d.ts +36 -0
  94. package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
  95. package/core/events/events_block_drag.d.ts +36 -0
  96. package/core/events/events_block_drag.ts +82 -0
  97. package/core/events/events_block_move.d.ts +51 -0
  98. package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
  99. package/core/events/events_bubble_open.d.ts +35 -0
  100. package/core/events/events_bubble_open.ts +82 -0
  101. package/core/events/events_click.d.ts +36 -0
  102. package/core/events/{events_click.js → events_click.ts} +27 -30
  103. package/core/events/events_comment_base.d.ts +39 -0
  104. package/core/events/events_comment_base.ts +107 -0
  105. package/core/events/events_comment_change.d.ts +43 -0
  106. package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
  107. package/core/events/events_comment_create.d.ts +35 -0
  108. package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
  109. package/core/events/events_comment_delete.d.ts +35 -0
  110. package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
  111. package/core/events/events_comment_move.d.ts +55 -0
  112. package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
  113. package/core/events/events_marker_move.d.ts +40 -0
  114. package/core/events/events_marker_move.ts +99 -0
  115. package/core/events/events_selected.d.ts +34 -0
  116. package/core/events/events_selected.ts +78 -0
  117. package/core/events/events_theme_change.d.ts +30 -0
  118. package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
  119. package/core/events/events_toolbox_item_select.d.ts +34 -0
  120. package/core/events/events_toolbox_item_select.ts +79 -0
  121. package/core/events/events_trashcan_open.d.ts +31 -0
  122. package/core/events/events_trashcan_open.ts +68 -0
  123. package/core/events/events_ui.d.ts +37 -0
  124. package/core/events/{events_ui.js → events_ui.ts} +27 -26
  125. package/core/events/events_ui_base.d.ts +26 -0
  126. package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
  127. package/core/events/events_var_base.d.ts +31 -0
  128. package/core/events/events_var_base.ts +65 -0
  129. package/core/events/events_var_create.d.ts +35 -0
  130. package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
  131. package/core/events/events_var_delete.d.ts +35 -0
  132. package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
  133. package/core/events/events_var_rename.d.ts +36 -0
  134. package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
  135. package/core/events/events_viewport.d.ts +39 -0
  136. package/core/events/events_viewport.ts +100 -0
  137. package/core/events/utils.d.ts +272 -0
  138. package/core/events/{utils.js → utils.ts} +148 -219
  139. package/core/events/workspace_events.d.ts +36 -0
  140. package/core/events/workspace_events.ts +86 -0
  141. package/core/extensions.d.ts +107 -0
  142. package/core/{extensions.js → extensions.ts} +153 -172
  143. package/core/field.d.ts +534 -0
  144. package/core/{field.js → field.ts} +413 -489
  145. package/core/field_angle.d.ts +176 -0
  146. package/core/field_angle.ts +563 -0
  147. package/core/field_checkbox.d.ts +124 -0
  148. package/core/field_checkbox.ts +243 -0
  149. package/core/field_colour.d.ts +200 -0
  150. package/core/field_colour.ts +632 -0
  151. package/core/field_dropdown.d.ts +222 -0
  152. package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
  153. package/core/field_image.d.ts +134 -0
  154. package/core/field_image.ts +282 -0
  155. package/core/field_label.d.ts +71 -0
  156. package/core/field_label.ts +152 -0
  157. package/core/field_label_serializable.d.ts +42 -0
  158. package/core/field_label_serializable.ts +76 -0
  159. package/core/field_multilineinput.d.ts +146 -0
  160. package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
  161. package/core/field_number.d.ts +156 -0
  162. package/core/{field_number.js → field_number.ts} +110 -123
  163. package/core/field_registry.d.ts +45 -0
  164. package/core/{field_registry.js → field_registry.ts} +37 -30
  165. package/core/field_textinput.d.ts +219 -0
  166. package/core/field_textinput.ts +591 -0
  167. package/core/field_variable.d.ts +217 -0
  168. package/core/{field_variable.js → field_variable.ts} +174 -187
  169. package/core/flyout_base.d.ts +459 -0
  170. package/core/{flyout_base.js → flyout_base.ts} +429 -518
  171. package/core/flyout_button.d.ts +81 -0
  172. package/core/flyout_button.ts +292 -0
  173. package/core/flyout_horizontal.d.ts +82 -0
  174. package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
  175. package/core/flyout_metrics_manager.d.ts +40 -0
  176. package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
  177. package/core/flyout_vertical.d.ts +83 -0
  178. package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
  179. package/core/generator.d.ts +205 -0
  180. package/core/{generator.js → generator.ts} +168 -193
  181. package/core/gesture.d.ts +357 -0
  182. package/core/{gesture.js → gesture.ts} +289 -369
  183. package/core/grid.d.ts +83 -0
  184. package/core/grid.ts +192 -0
  185. package/core/icon.d.ts +78 -0
  186. package/core/icon.ts +189 -0
  187. package/core/inject.d.ts +15 -0
  188. package/core/{inject.js → inject.ts} +101 -100
  189. package/core/input.d.ts +128 -0
  190. package/core/input.ts +309 -0
  191. package/core/input_types.d.ts +14 -0
  192. package/core/{input_types.js → input_types.ts} +8 -12
  193. package/core/insertion_marker_manager.d.ts +212 -0
  194. package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
  195. package/core/interfaces/i_ast_node_location.d.ts +11 -0
  196. package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
  197. package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
  198. package/core/interfaces/i_ast_node_location_svg.ts +37 -0
  199. package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
  200. package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
  201. package/core/interfaces/i_autohideable.d.ts +18 -0
  202. package/core/interfaces/i_autohideable.ts +34 -0
  203. package/core/interfaces/i_block_dragger.d.ts +43 -0
  204. package/core/interfaces/i_block_dragger.ts +67 -0
  205. package/core/interfaces/i_bounded_element.d.ts +24 -0
  206. package/core/interfaces/i_bounded_element.ts +42 -0
  207. package/core/interfaces/i_bubble.d.ts +59 -0
  208. package/core/interfaces/i_bubble.ts +88 -0
  209. package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
  210. package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
  211. package/core/interfaces/i_component.d.ts +17 -0
  212. package/core/interfaces/{i_component.js → i_component.ts} +9 -14
  213. package/core/interfaces/i_connection_checker.d.ts +69 -0
  214. package/core/interfaces/i_connection_checker.ts +102 -0
  215. package/core/interfaces/i_contextmenu.d.ts +13 -0
  216. package/core/interfaces/i_contextmenu.ts +26 -0
  217. package/core/interfaces/i_copyable.d.ts +24 -0
  218. package/core/interfaces/i_copyable.ts +40 -0
  219. package/core/interfaces/i_deletable.d.ts +16 -0
  220. package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
  221. package/core/interfaces/i_delete_area.d.ts +25 -0
  222. package/core/interfaces/i_delete_area.ts +46 -0
  223. package/core/interfaces/i_drag_target.d.ts +53 -0
  224. package/core/interfaces/i_drag_target.ts +84 -0
  225. package/core/interfaces/i_draggable.d.ts +12 -0
  226. package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
  227. package/core/interfaces/i_flyout.d.ts +134 -0
  228. package/core/interfaces/i_flyout.ts +186 -0
  229. package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
  230. package/core/interfaces/i_keyboard_accessible.ts +35 -0
  231. package/core/interfaces/i_metrics_manager.d.ts +117 -0
  232. package/core/interfaces/i_metrics_manager.ts +151 -0
  233. package/core/interfaces/i_movable.d.ts +16 -0
  234. package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
  235. package/core/interfaces/i_positionable.d.ts +27 -0
  236. package/core/interfaces/i_positionable.ts +50 -0
  237. package/core/interfaces/i_registrable.d.ts +11 -0
  238. package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
  239. package/core/interfaces/i_registrable_field.d.ts +17 -0
  240. package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
  241. package/core/interfaces/i_selectable.d.ts +18 -0
  242. package/core/interfaces/i_selectable.ts +34 -0
  243. package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
  244. package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
  245. package/core/interfaces/i_serializer.d.ts +42 -0
  246. package/core/interfaces/i_serializer.ts +65 -0
  247. package/core/interfaces/i_styleable.d.ts +21 -0
  248. package/core/interfaces/i_styleable.ts +35 -0
  249. package/core/interfaces/i_toolbox.d.ts +85 -0
  250. package/core/interfaces/i_toolbox.ts +127 -0
  251. package/core/interfaces/i_toolbox_item.d.ts +62 -0
  252. package/core/interfaces/i_toolbox_item.ts +84 -0
  253. package/core/internal_constants.d.ts +40 -0
  254. package/core/{internal_constants.js → internal_constants.ts} +13 -18
  255. package/core/keyboard_nav/ast_node.d.ts +239 -0
  256. package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
  257. package/core/keyboard_nav/basic_cursor.d.ts +88 -0
  258. package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
  259. package/core/keyboard_nav/cursor.d.ts +41 -0
  260. package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
  261. package/core/keyboard_nav/marker.d.ts +58 -0
  262. package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
  263. package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
  264. package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
  265. package/core/main.d.ts +11 -0
  266. package/core/main.js +303 -0
  267. package/core/marker_manager.d.ts +85 -0
  268. package/core/marker_manager.ts +181 -0
  269. package/core/menu.d.ts +149 -0
  270. package/core/{menu.js → menu.ts} +141 -174
  271. package/core/menuitem.d.ts +118 -0
  272. package/core/menuitem.ts +240 -0
  273. package/core/metrics_manager.d.ts +201 -0
  274. package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
  275. package/core/msg.d.ts +9 -0
  276. package/core/{msg.js → msg.ts} +4 -8
  277. package/core/mutator.d.ts +128 -0
  278. package/core/{mutator.js → mutator.ts} +196 -211
  279. package/core/names.d.ts +124 -0
  280. package/core/names.ts +267 -0
  281. package/core/options.d.ts +137 -0
  282. package/core/{options.js → options.ts} +147 -173
  283. package/core/positionable_helpers.d.ts +88 -0
  284. package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
  285. package/core/procedures.d.ts +108 -0
  286. package/core/{procedures.js → procedures.ts} +143 -152
  287. package/core/registry.d.ts +137 -0
  288. package/core/registry.ts +339 -0
  289. package/core/rendered_connection.d.ts +191 -0
  290. package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
  291. package/core/renderers/common/block_rendering.d.ts +114 -0
  292. package/core/renderers/common/block_rendering.ts +164 -0
  293. package/core/renderers/common/constants.d.ts +458 -0
  294. package/core/renderers/common/constants.ts +1124 -0
  295. package/core/renderers/common/debug.d.ts +28 -0
  296. package/core/renderers/common/{debug.js → debug.ts} +14 -20
  297. package/core/renderers/common/debugger.d.ts +120 -0
  298. package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
  299. package/core/renderers/common/drawer.d.ts +132 -0
  300. package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
  301. package/core/renderers/common/i_path_object.d.ts +117 -0
  302. package/core/renderers/common/i_path_object.ts +161 -0
  303. package/core/renderers/common/info.d.ts +194 -0
  304. package/core/renderers/common/{info.js → info.ts} +165 -222
  305. package/core/renderers/common/marker_svg.d.ts +220 -0
  306. package/core/renderers/common/marker_svg.ts +680 -0
  307. package/core/renderers/common/path_object.d.ts +146 -0
  308. package/core/renderers/common/path_object.ts +272 -0
  309. package/core/renderers/common/renderer.d.ts +157 -0
  310. package/core/renderers/common/renderer.ts +271 -0
  311. package/core/renderers/geras/constants.d.ts +23 -0
  312. package/core/renderers/geras/constants.ts +61 -0
  313. package/core/renderers/geras/drawer.d.ts +43 -0
  314. package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
  315. package/core/renderers/geras/geras.d.ts +11 -0
  316. package/core/renderers/geras/geras.ts +37 -0
  317. package/core/renderers/geras/highlight_constants.d.ts +108 -0
  318. package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
  319. package/core/renderers/geras/highlighter.d.ts +98 -0
  320. package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
  321. package/core/renderers/geras/info.d.ts +45 -0
  322. package/core/renderers/geras/{info.js → info.ts} +61 -99
  323. package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
  324. package/core/renderers/geras/measurables/inline_input.ts +51 -0
  325. package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
  326. package/core/renderers/geras/measurables/statement_input.ts +50 -0
  327. package/core/renderers/geras/path_object.d.ts +47 -0
  328. package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
  329. package/core/renderers/geras/renderer.d.ts +69 -0
  330. package/core/renderers/geras/renderer.ts +126 -0
  331. package/core/renderers/measurables/base.d.ts +27 -0
  332. package/core/renderers/measurables/base.ts +53 -0
  333. package/core/renderers/measurables/bottom_row.d.ts +61 -0
  334. package/core/renderers/measurables/bottom_row.ts +120 -0
  335. package/core/renderers/measurables/connection.d.ts +25 -0
  336. package/core/renderers/measurables/connection.ts +52 -0
  337. package/core/renderers/measurables/external_value_input.d.ts +27 -0
  338. package/core/renderers/measurables/external_value_input.ts +65 -0
  339. package/core/renderers/measurables/field.d.ts +30 -0
  340. package/core/renderers/measurables/field.ts +63 -0
  341. package/core/renderers/measurables/hat.d.ts +21 -0
  342. package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
  343. package/core/renderers/measurables/icon.d.ts +26 -0
  344. package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
  345. package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
  346. package/core/renderers/measurables/in_row_spacer.ts +44 -0
  347. package/core/renderers/measurables/inline_input.d.ts +24 -0
  348. package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
  349. package/core/renderers/measurables/input_connection.d.ts +29 -0
  350. package/core/renderers/measurables/input_connection.ts +66 -0
  351. package/core/renderers/measurables/input_row.d.ts +30 -0
  352. package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
  353. package/core/renderers/measurables/jagged_edge.d.ts +20 -0
  354. package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
  355. package/core/renderers/measurables/next_connection.d.ts +23 -0
  356. package/core/renderers/measurables/next_connection.ts +47 -0
  357. package/core/renderers/measurables/output_connection.d.ts +26 -0
  358. package/core/renderers/measurables/output_connection.ts +56 -0
  359. package/core/renderers/measurables/previous_connection.d.ts +23 -0
  360. package/core/renderers/measurables/previous_connection.ts +47 -0
  361. package/core/renderers/measurables/round_corner.d.ts +21 -0
  362. package/core/renderers/measurables/round_corner.ts +49 -0
  363. package/core/renderers/measurables/row.d.ts +141 -0
  364. package/core/renderers/measurables/row.ts +225 -0
  365. package/core/renderers/measurables/spacer_row.d.ts +29 -0
  366. package/core/renderers/measurables/spacer_row.ts +55 -0
  367. package/core/renderers/measurables/square_corner.d.ts +21 -0
  368. package/core/renderers/measurables/square_corner.ts +47 -0
  369. package/core/renderers/measurables/statement_input.d.ts +22 -0
  370. package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
  371. package/core/renderers/measurables/top_row.d.ts +56 -0
  372. package/core/renderers/measurables/top_row.ts +122 -0
  373. package/core/renderers/measurables/types.d.ts +235 -0
  374. package/core/renderers/measurables/types.ts +332 -0
  375. package/core/renderers/minimalist/constants.d.ts +14 -0
  376. package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
  377. package/core/renderers/minimalist/drawer.d.ts +21 -0
  378. package/core/renderers/minimalist/drawer.ts +38 -0
  379. package/core/renderers/minimalist/info.d.ts +30 -0
  380. package/core/renderers/minimalist/info.ts +52 -0
  381. package/core/renderers/minimalist/minimalist.d.ts +6 -0
  382. package/core/renderers/minimalist/minimalist.ts +22 -0
  383. package/core/renderers/minimalist/renderer.d.ts +41 -0
  384. package/core/renderers/minimalist/renderer.ts +71 -0
  385. package/core/renderers/thrasos/info.d.ts +40 -0
  386. package/core/renderers/thrasos/{info.js → info.ts} +66 -67
  387. package/core/renderers/thrasos/renderer.d.ts +25 -0
  388. package/core/renderers/thrasos/renderer.ts +48 -0
  389. package/core/renderers/thrasos/thrasos.d.ts +4 -0
  390. package/core/renderers/thrasos/thrasos.ts +20 -0
  391. package/core/renderers/zelos/constants.d.ts +186 -0
  392. package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
  393. package/core/renderers/zelos/drawer.d.ts +47 -0
  394. package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
  395. package/core/renderers/zelos/info.d.ts +88 -0
  396. package/core/renderers/zelos/{info.js → info.ts} +111 -142
  397. package/core/renderers/zelos/marker_svg.d.ts +46 -0
  398. package/core/renderers/zelos/marker_svg.ts +151 -0
  399. package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
  400. package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
  401. package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
  402. package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
  403. package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
  404. package/core/renderers/zelos/measurables/row_elements.ts +45 -0
  405. package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
  406. package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
  407. package/core/renderers/zelos/path_object.d.ts +77 -0
  408. package/core/renderers/zelos/path_object.ts +215 -0
  409. package/core/renderers/zelos/renderer.d.ts +74 -0
  410. package/core/renderers/zelos/renderer.ts +142 -0
  411. package/core/renderers/zelos/zelos.d.ts +12 -0
  412. package/core/renderers/zelos/zelos.ts +39 -0
  413. package/core/scrollbar.d.ts +277 -0
  414. package/core/{scrollbar.js → scrollbar.ts} +307 -328
  415. package/core/scrollbar_pair.d.ts +105 -0
  416. package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
  417. package/core/serialization/blocks.d.ts +98 -0
  418. package/core/serialization/{blocks.js → blocks.ts} +229 -228
  419. package/core/serialization/exceptions.d.ts +73 -0
  420. package/core/serialization/exceptions.ts +98 -0
  421. package/core/serialization/priorities.d.ts +15 -0
  422. package/core/serialization/{priorities.js → priorities.ts} +4 -10
  423. package/core/serialization/registry.d.ts +20 -0
  424. package/core/serialization/{registry.js → registry.ts} +11 -13
  425. package/core/serialization/variables.d.ts +14 -0
  426. package/core/serialization/{variables.js → variables.ts} +30 -32
  427. package/core/serialization/workspaces.d.ts +28 -0
  428. package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
  429. package/core/shortcut_items.d.ts +61 -0
  430. package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
  431. package/core/shortcut_registry.d.ts +151 -0
  432. package/core/shortcut_registry.ts +355 -0
  433. package/core/sprites.d.ts +19 -0
  434. package/core/{sprites.js → sprites.ts} +4 -6
  435. package/core/theme/classic.d.ts +12 -0
  436. package/core/theme/{classic.js → classic.ts} +5 -7
  437. package/core/theme/themes.d.ts +8 -0
  438. package/core/theme/themes.ts +22 -0
  439. package/core/theme/zelos.d.ts +11 -0
  440. package/core/theme/{zelos.js → zelos.ts} +4 -7
  441. package/core/theme.d.ts +142 -0
  442. package/core/theme.ts +221 -0
  443. package/core/theme_manager.d.ts +81 -0
  444. package/core/theme_manager.ts +186 -0
  445. package/core/toolbox/category.d.ts +239 -0
  446. package/core/toolbox/category.ts +679 -0
  447. package/core/toolbox/collapsible_category.d.ts +91 -0
  448. package/core/toolbox/collapsible_category.ts +273 -0
  449. package/core/toolbox/separator.d.ts +39 -0
  450. package/core/toolbox/separator.ts +105 -0
  451. package/core/toolbox/toolbox.d.ts +352 -0
  452. package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
  453. package/core/toolbox/toolbox_item.d.ts +85 -0
  454. package/core/toolbox/toolbox_item.ts +147 -0
  455. package/core/tooltip.d.ts +126 -0
  456. package/core/{tooltip.js → tooltip.ts} +136 -214
  457. package/core/touch.d.ts +121 -0
  458. package/core/touch.ts +306 -0
  459. package/core/touch_gesture.d.ts +115 -0
  460. package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
  461. package/core/trashcan.d.ts +195 -0
  462. package/core/{trashcan.js → trashcan.ts} +226 -312
  463. package/core/utils/aria.d.ts +67 -0
  464. package/core/utils/{aria.js → aria.ts} +47 -61
  465. package/core/utils/array.d.ts +14 -0
  466. package/core/utils/{array.js → array.ts} +10 -12
  467. package/core/utils/colour.d.ts +103 -0
  468. package/core/utils/{colour.js → colour.ts} +60 -72
  469. package/core/utils/coordinate.d.ts +72 -0
  470. package/core/utils/coordinate.ts +124 -0
  471. package/core/utils/deprecation.d.ts +17 -0
  472. package/core/utils/{deprecation.js → deprecation.ts} +11 -11
  473. package/core/utils/dom.d.ts +165 -0
  474. package/core/utils/{dom.js → dom.ts} +125 -147
  475. package/core/utils/idgenerator.d.ts +25 -0
  476. package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
  477. package/core/utils/keycodes.d.ts +137 -0
  478. package/core/utils/keycodes.ts +169 -0
  479. package/core/utils/math.d.ts +30 -0
  480. package/core/utils/{math.js → math.ts} +17 -19
  481. package/core/utils/metrics.d.ts +64 -0
  482. package/core/utils/metrics.ts +97 -0
  483. package/core/utils/object.d.ts +35 -0
  484. package/core/utils/{object.js → object.ts} +30 -26
  485. package/core/utils/parsing.d.ts +50 -0
  486. package/core/utils/{parsing.js → parsing.ts} +50 -50
  487. package/core/utils/rect.d.ts +38 -0
  488. package/core/utils/{rect.js → rect.ts} +18 -31
  489. package/core/utils/sentinel.d.ts +11 -0
  490. package/core/utils/{sentinel.js → sentinel.ts} +3 -5
  491. package/core/utils/size.d.ts +27 -0
  492. package/core/utils/{size.js → size.ts} +12 -26
  493. package/core/utils/string.d.ts +55 -0
  494. package/core/utils/{string.js → string.ts} +64 -61
  495. package/core/utils/style.d.ts +127 -0
  496. package/core/utils/{style.js → style.ts} +102 -92
  497. package/core/utils/svg.d.ts +68 -0
  498. package/core/utils/svg.ts +88 -0
  499. package/core/utils/svg_math.d.ts +70 -0
  500. package/core/utils/{svg_math.js → svg_math.ts} +72 -71
  501. package/core/utils/svg_paths.d.ts +101 -0
  502. package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
  503. package/core/utils/toolbox.d.ts +193 -0
  504. package/core/utils/toolbox.ts +433 -0
  505. package/core/utils/useragent.d.ts +33 -0
  506. package/core/utils/useragent.ts +135 -0
  507. package/core/utils/xml.d.ts +52 -0
  508. package/core/utils/{xml.js → xml.ts} +26 -36
  509. package/core/utils.d.ts +217 -0
  510. package/core/utils.ts +428 -0
  511. package/core/variable_map.d.ts +141 -0
  512. package/core/{variable_map.js → variable_map.ts} +131 -149
  513. package/core/variable_model.d.ts +40 -0
  514. package/core/variable_model.ts +82 -0
  515. package/core/variables.d.ts +181 -0
  516. package/core/{variables.js → variables.ts} +206 -188
  517. package/core/variables_dynamic.d.ts +38 -0
  518. package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
  519. package/core/warning.d.ts +50 -0
  520. package/core/{warning.js → warning.ts} +52 -66
  521. package/core/widgetdiv.d.ts +69 -0
  522. package/core/widgetdiv.ts +257 -0
  523. package/core/workspace.d.ts +386 -0
  524. package/core/workspace.ts +801 -0
  525. package/core/workspace_audio.d.ts +47 -0
  526. package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
  527. package/core/workspace_comment.d.ts +170 -0
  528. package/core/workspace_comment.ts +398 -0
  529. package/core/workspace_comment_svg.d.ts +329 -0
  530. package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
  531. package/core/workspace_drag_surface_svg.d.ts +68 -0
  532. package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
  533. package/core/workspace_dragger.d.ts +48 -0
  534. package/core/workspace_dragger.ts +104 -0
  535. package/core/workspace_svg.d.ts +920 -0
  536. package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
  537. package/core/xml.d.ts +117 -0
  538. package/core/{xml.js → xml.ts} +306 -326
  539. package/core/zoom_controls.d.ts +130 -0
  540. package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
  541. package/core.d.ts +1 -3
  542. package/core.js +1 -2
  543. package/dart.d.ts +0 -3
  544. package/dart_compressed.js +387 -99
  545. package/dart_compressed.js.map +1 -1
  546. package/generators/dart/all.js +2 -0
  547. package/generators/dart/colour.js +1 -1
  548. package/generators/dart/lists.js +1 -1
  549. package/generators/dart/logic.js +1 -1
  550. package/generators/dart/loops.js +1 -1
  551. package/generators/dart/math.js +1 -1
  552. package/generators/dart/procedures.js +1 -1
  553. package/generators/dart/text.js +1 -1
  554. package/generators/dart/variables.js +1 -1
  555. package/generators/dart/variables_dynamic.js +1 -1
  556. package/generators/dart.js +1 -2
  557. package/generators/javascript/all.js +2 -0
  558. package/generators/javascript/colour.js +1 -1
  559. package/generators/javascript/lists.js +1 -1
  560. package/generators/javascript/logic.js +1 -1
  561. package/generators/javascript/loops.js +1 -1
  562. package/generators/javascript/math.js +4 -4
  563. package/generators/javascript/procedures.js +1 -1
  564. package/generators/javascript/text.js +2 -2
  565. package/generators/javascript/variables.js +1 -1
  566. package/generators/javascript/variables_dynamic.js +1 -1
  567. package/generators/javascript.js +1 -3
  568. package/generators/lua/all.js +2 -0
  569. package/generators/lua/colour.js +1 -1
  570. package/generators/lua/lists.js +1 -1
  571. package/generators/lua/logic.js +1 -1
  572. package/generators/lua/loops.js +1 -1
  573. package/generators/lua/math.js +1 -1
  574. package/generators/lua/procedures.js +1 -1
  575. package/generators/lua/text.js +1 -1
  576. package/generators/lua/variables.js +1 -1
  577. package/generators/lua/variables_dynamic.js +1 -1
  578. package/generators/lua.js +1 -2
  579. package/generators/php/all.js +2 -0
  580. package/generators/php/colour.js +1 -1
  581. package/generators/php/lists.js +1 -2
  582. package/generators/php/logic.js +1 -1
  583. package/generators/php/loops.js +1 -1
  584. package/generators/php/math.js +1 -1
  585. package/generators/php/procedures.js +1 -1
  586. package/generators/php/text.js +1 -1
  587. package/generators/php/variables.js +1 -1
  588. package/generators/php/variables_dynamic.js +1 -1
  589. package/generators/php.js +1 -2
  590. package/generators/python/all.js +2 -0
  591. package/generators/python/colour.js +3 -3
  592. package/generators/python/lists.js +1 -1
  593. package/generators/python/logic.js +1 -1
  594. package/generators/python/loops.js +4 -7
  595. package/generators/python/math.js +1 -1
  596. package/generators/python/procedures.js +1 -1
  597. package/generators/python/text.js +1 -1
  598. package/generators/python/variables.js +1 -1
  599. package/generators/python/variables_dynamic.js +1 -1
  600. package/generators/python.js +1 -2
  601. package/index.d.ts +2 -8
  602. package/javascript.d.ts +0 -3
  603. package/javascript_compressed.js +314 -104
  604. package/javascript_compressed.js.map +1 -1
  605. package/lua.d.ts +0 -3
  606. package/lua_compressed.js +399 -81
  607. package/lua_compressed.js.map +1 -1
  608. package/package.json +5 -5
  609. package/php.d.ts +0 -3
  610. package/php_compressed.js +322 -93
  611. package/php_compressed.js.map +1 -1
  612. package/python.d.ts +0 -3
  613. package/python_compressed.js +237 -90
  614. package/python_compressed.js.map +1 -1
  615. package/blockly.d.ts +0 -26127
  616. package/core/blockly_options.js +0 -28
  617. package/core/bubble_dragger.js +0 -298
  618. package/core/clipboard.js +0 -80
  619. package/core/component_manager.js +0 -263
  620. package/core/contextmenu_items.js +0 -651
  621. package/core/contextmenu_registry.js +0 -178
  622. package/core/delete_area.js +0 -87
  623. package/core/dialog.js +0 -107
  624. package/core/drag_target.js +0 -98
  625. package/core/events/events.js +0 -147
  626. package/core/events/events_abstract.js +0 -133
  627. package/core/events/events_block_base.js +0 -70
  628. package/core/events/events_block_drag.js +0 -89
  629. package/core/events/events_bubble_open.js +0 -90
  630. package/core/events/events_comment_base.js +0 -121
  631. package/core/events/events_marker_move.js +0 -110
  632. package/core/events/events_selected.js +0 -83
  633. package/core/events/events_toolbox_item_select.js +0 -84
  634. package/core/events/events_trashcan_open.js +0 -73
  635. package/core/events/events_var_base.js +0 -70
  636. package/core/events/events_viewport.js +0 -107
  637. package/core/events/workspace_events.js +0 -93
  638. package/core/field_angle.js +0 -591
  639. package/core/field_checkbox.js +0 -255
  640. package/core/field_colour.js +0 -717
  641. package/core/field_image.js +0 -304
  642. package/core/field_label.js +0 -149
  643. package/core/field_label_serializable.js +0 -80
  644. package/core/field_textinput.js +0 -619
  645. package/core/flyout_button.js +0 -356
  646. package/core/grid.js +0 -226
  647. package/core/icon.js +0 -225
  648. package/core/input.js +0 -335
  649. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  650. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  651. package/core/interfaces/i_autohideable.js +0 -40
  652. package/core/interfaces/i_block_dragger.js +0 -66
  653. package/core/interfaces/i_bounded_element.js +0 -45
  654. package/core/interfaces/i_bubble.js +0 -95
  655. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  656. package/core/interfaces/i_connection_checker.js +0 -104
  657. package/core/interfaces/i_contextmenu.js +0 -32
  658. package/core/interfaces/i_copyable.js +0 -49
  659. package/core/interfaces/i_delete_area.js +0 -50
  660. package/core/interfaces/i_drag_target.js +0 -88
  661. package/core/interfaces/i_flyout.js +0 -201
  662. package/core/interfaces/i_keyboard_accessible.js +0 -38
  663. package/core/interfaces/i_metrics_manager.js +0 -154
  664. package/core/interfaces/i_positionable.js +0 -51
  665. package/core/interfaces/i_selectable.js +0 -51
  666. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  667. package/core/interfaces/i_serializer.js +0 -77
  668. package/core/interfaces/i_styleable.js +0 -39
  669. package/core/interfaces/i_toolbox.js +0 -142
  670. package/core/interfaces/i_toolbox_item.js +0 -85
  671. package/core/marker_manager.js +0 -213
  672. package/core/menuitem.js +0 -292
  673. package/core/names.js +0 -293
  674. package/core/registry.js +0 -384
  675. package/core/renderers/common/block_rendering.js +0 -170
  676. package/core/renderers/common/constants.js +0 -1250
  677. package/core/renderers/common/i_path_object.js +0 -162
  678. package/core/renderers/common/marker_svg.js +0 -721
  679. package/core/renderers/common/path_object.js +0 -283
  680. package/core/renderers/common/renderer.js +0 -305
  681. package/core/renderers/geras/constants.js +0 -73
  682. package/core/renderers/geras/geras.js +0 -36
  683. package/core/renderers/geras/measurables/inline_input.js +0 -58
  684. package/core/renderers/geras/measurables/statement_input.js +0 -57
  685. package/core/renderers/geras/renderer.js +0 -149
  686. package/core/renderers/measurables/base.js +0 -64
  687. package/core/renderers/measurables/bottom_row.js +0 -138
  688. package/core/renderers/measurables/connection.js +0 -56
  689. package/core/renderers/measurables/external_value_input.js +0 -70
  690. package/core/renderers/measurables/field.js +0 -71
  691. package/core/renderers/measurables/in_row_spacer.js +0 -47
  692. package/core/renderers/measurables/input_connection.js +0 -75
  693. package/core/renderers/measurables/next_connection.js +0 -50
  694. package/core/renderers/measurables/output_connection.js +0 -61
  695. package/core/renderers/measurables/previous_connection.js +0 -50
  696. package/core/renderers/measurables/round_corner.js +0 -52
  697. package/core/renderers/measurables/row.js +0 -247
  698. package/core/renderers/measurables/spacer_row.js +0 -69
  699. package/core/renderers/measurables/square_corner.js +0 -50
  700. package/core/renderers/measurables/top_row.js +0 -143
  701. package/core/renderers/measurables/types.js +0 -353
  702. package/core/renderers/minimalist/drawer.js +0 -42
  703. package/core/renderers/minimalist/info.js +0 -54
  704. package/core/renderers/minimalist/minimalist.js +0 -26
  705. package/core/renderers/minimalist/renderer.js +0 -80
  706. package/core/renderers/thrasos/renderer.js +0 -53
  707. package/core/renderers/thrasos/thrasos.js +0 -22
  708. package/core/renderers/zelos/marker_svg.js +0 -179
  709. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  710. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  711. package/core/renderers/zelos/path_object.js +0 -247
  712. package/core/renderers/zelos/renderer.js +0 -147
  713. package/core/renderers/zelos/zelos.js +0 -38
  714. package/core/serialization/exceptions.js +0 -144
  715. package/core/shortcut_registry.js +0 -366
  716. package/core/theme/themes.js +0 -23
  717. package/core/theme.js +0 -228
  718. package/core/theme_manager.js +0 -211
  719. package/core/toolbox/category.js +0 -751
  720. package/core/toolbox/collapsible_category.js +0 -311
  721. package/core/toolbox/separator.js +0 -133
  722. package/core/toolbox/toolbox_item.js +0 -173
  723. package/core/touch.js +0 -285
  724. package/core/utils/coordinate.js +0 -138
  725. package/core/utils/global.js +0 -41
  726. package/core/utils/keycodes.js +0 -172
  727. package/core/utils/metrics.js +0 -154
  728. package/core/utils/svg.js +0 -186
  729. package/core/utils/toolbox.js +0 -459
  730. package/core/utils/useragent.js +0 -197
  731. package/core/utils.js +0 -383
  732. package/core/variable_model.js +0 -96
  733. package/core/widgetdiv.js +0 -290
  734. package/core/workspace.js +0 -836
  735. package/core/workspace_comment.js +0 -400
  736. package/core/workspace_dragger.js +0 -115
@@ -7,91 +7,70 @@
7
7
  /**
8
8
  * @fileoverview Methods for dragging a block visually.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Methods for dragging a block visually.
14
13
  * @class
15
14
  */
16
- goog.module('Blockly.BlockDragger');
17
-
18
- const blockAnimation = goog.require('Blockly.blockAnimations');
19
- const bumpObjects = goog.require('Blockly.bumpObjects');
20
- const common = goog.require('Blockly.common');
21
- const dom = goog.require('Blockly.utils.dom');
22
- const eventUtils = goog.require('Blockly.Events.utils');
23
- const registry = goog.require('Blockly.registry');
24
- /* eslint-disable-next-line no-unused-vars */
25
- const {BlockMove} = goog.requireType('Blockly.Events.BlockMove');
26
- /* eslint-disable-next-line no-unused-vars */
27
- const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
28
- const {Coordinate} = goog.require('Blockly.utils.Coordinate');
29
- /* eslint-disable-next-line no-unused-vars */
30
- const {IBlockDragger} = goog.require('Blockly.IBlockDragger');
31
- /* eslint-disable-next-line no-unused-vars */
32
- const {IDragTarget} = goog.requireType('Blockly.IDragTarget');
33
- const {InsertionMarkerManager} = goog.require('Blockly.InsertionMarkerManager');
34
- /* eslint-disable-next-line no-unused-vars */
35
- const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
36
- /** @suppress {extraRequire} */
37
- goog.require('Blockly.Events.BlockDrag');
38
- /** @suppress {extraRequire} */
39
- goog.require('Blockly.Events.BlockMove');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.BlockDragger');
17
+
18
+ // Unused import preserved for side-effects. Remove if unneeded.
19
+ import './events/events_block_drag.js';
20
+
21
+ import * as blockAnimation from './block_animations.js';
22
+ import type {BlockSvg} from './block_svg.js';
23
+ import * as bumpObjects from './bump_objects.js';
24
+ import * as common from './common.js';
25
+ import type {BlockMove} from './events/events_block_move.js';
26
+ import * as eventUtils from './events/utils.js';
27
+ import type {Icon} from './icon.js';
28
+ import {InsertionMarkerManager} from './insertion_marker_manager.js';
29
+ import type {IBlockDragger} from './interfaces/i_block_dragger.js';
30
+ import type {IDragTarget} from './interfaces/i_drag_target.js';
31
+ import * as registry from './registry.js';
32
+ import {Coordinate} from './utils/coordinate.js';
33
+ import * as dom from './utils/dom.js';
34
+ import type {WorkspaceSvg} from './workspace_svg.js';
40
35
 
41
36
 
42
37
  /**
43
38
  * Class for a block dragger. It moves blocks around the workspace when they
44
39
  * are being dragged by a mouse or touch.
45
- * @implements {IBlockDragger}
46
40
  * @alias Blockly.BlockDragger
47
41
  */
48
- const BlockDragger = class {
42
+ export class BlockDragger implements IBlockDragger {
43
+ /** The top block in the stack that is being dragged. */
44
+ protected draggingBlock_: BlockSvg;
45
+ protected draggedConnectionManager_: InsertionMarkerManager;
46
+
47
+ /** The workspace on which the block is being dragged. */
48
+ protected workspace_: WorkspaceSvg;
49
+
50
+ /** Which drag area the mouse pointer is over, if any. */
51
+ private dragTarget_: IDragTarget|null = null;
52
+
53
+ /** Whether the block would be deleted if dropped immediately. */
54
+ protected wouldDeleteBlock_ = false;
55
+ protected startXY_: Coordinate;
56
+ protected dragIconData_: IconPositionData[];
57
+
49
58
  /**
50
- * @param {!BlockSvg} block The block to drag.
51
- * @param {!WorkspaceSvg} workspace The workspace to drag on.
59
+ * @param block The block to drag.
60
+ * @param workspace The workspace to drag on.
52
61
  */
53
- constructor(block, workspace) {
54
- /**
55
- * The top block in the stack that is being dragged.
56
- * @type {!BlockSvg}
57
- * @protected
58
- */
62
+ constructor(block: BlockSvg, workspace: WorkspaceSvg) {
59
63
  this.draggingBlock_ = block;
60
64
 
61
- /**
62
- * The workspace on which the block is being dragged.
63
- * @type {!WorkspaceSvg}
64
- * @protected
65
- */
66
- this.workspace_ = workspace;
67
-
68
- /**
69
- * Object that keeps track of connections on dragged blocks.
70
- * @type {!InsertionMarkerManager}
71
- * @protected
72
- */
65
+ /** Object that keeps track of connections on dragged blocks. */
73
66
  this.draggedConnectionManager_ =
74
67
  new InsertionMarkerManager(this.draggingBlock_);
75
68
 
76
- /**
77
- * Which drag area the mouse pointer is over, if any.
78
- * @type {?IDragTarget}
79
- * @private
80
- */
81
- this.dragTarget_ = null;
82
-
83
- /**
84
- * Whether the block would be deleted if dropped immediately.
85
- * @type {boolean}
86
- * @protected
87
- */
88
- this.wouldDeleteBlock_ = false;
69
+ this.workspace_ = workspace;
89
70
 
90
71
  /**
91
72
  * The location of the top left corner of the dragging block at the
92
73
  * beginning of the drag in workspace coordinates.
93
- * @type {!Coordinate}
94
- * @protected
95
74
  */
96
75
  this.startXY_ = this.draggingBlock_.getRelativeToSurfaceXY();
97
76
 
@@ -99,15 +78,13 @@ const BlockDragger = class {
99
78
  * A list of all of the icons (comment, warning, and mutator) that are
100
79
  * on this block and its descendants. Moving an icon moves the bubble that
101
80
  * extends from it if that bubble is open.
102
- * @type {Array<!Object>}
103
- * @protected
104
81
  */
105
82
  this.dragIconData_ = initIconData(block);
106
83
  }
107
84
 
108
85
  /**
109
86
  * Sever all links from this object.
110
- * @package
87
+ * @internal
111
88
  */
112
89
  dispose() {
113
90
  this.dragIconData_.length = 0;
@@ -119,13 +96,11 @@ const BlockDragger = class {
119
96
 
120
97
  /**
121
98
  * Start dragging a block. This includes moving it to the drag surface.
122
- * @param {!Coordinate} currentDragDeltaXY How far the pointer has
123
- * moved from the position at mouse down, in pixel units.
124
- * @param {boolean} healStack Whether or not to heal the stack after
125
- * disconnecting.
126
- * @public
99
+ * @param currentDragDeltaXY How far the pointer has moved from the position
100
+ * at mouse down, in pixel units.
101
+ * @param healStack Whether or not to heal the stack after disconnecting.
127
102
  */
128
- startDrag(currentDragDeltaXY, healStack) {
103
+ startDrag(currentDragDeltaXY: Coordinate, healStack: boolean) {
129
104
  if (!eventUtils.getGroup()) {
130
105
  eventUtils.setGroup(true);
131
106
  }
@@ -157,27 +132,24 @@ const BlockDragger = class {
157
132
 
158
133
  /**
159
134
  * Whether or not we should disconnect the block when a drag is started.
160
- * @param {boolean} healStack Whether or not to heal the stack after
161
- * disconnecting.
162
- * @return {boolean} True to disconnect the block, false otherwise.
163
- * @protected
135
+ * @param healStack Whether or not to heal the stack after disconnecting.
136
+ * @return True to disconnect the block, false otherwise.
164
137
  */
165
- shouldDisconnect_(healStack) {
138
+ protected shouldDisconnect_(healStack: boolean): boolean {
166
139
  return !!(
167
140
  this.draggingBlock_.getParent() ||
168
- (healStack && this.draggingBlock_.nextConnection &&
169
- this.draggingBlock_.nextConnection.targetBlock()));
141
+ healStack && this.draggingBlock_.nextConnection &&
142
+ this.draggingBlock_.nextConnection.targetBlock());
170
143
  }
171
144
 
172
145
  /**
173
146
  * Disconnects the block and moves it to a new location.
174
- * @param {boolean} healStack Whether or not to heal the stack after
175
- * disconnecting.
176
- * @param {!Coordinate} currentDragDeltaXY How far the pointer has
177
- * moved from the position at mouse down, in pixel units.
178
- * @protected
147
+ * @param healStack Whether or not to heal the stack after disconnecting.
148
+ * @param currentDragDeltaXY How far the pointer has moved from the position
149
+ * at mouse down, in pixel units.
179
150
  */
180
- disconnectBlock_(healStack, currentDragDeltaXY) {
151
+ protected disconnectBlock_(
152
+ healStack: boolean, currentDragDeltaXY: Coordinate) {
181
153
  this.draggingBlock_.unplug(healStack);
182
154
  const delta = this.pixelsToWorkspaceUnits_(currentDragDeltaXY);
183
155
  const newLoc = Coordinate.sum(this.startXY_, delta);
@@ -187,25 +159,21 @@ const BlockDragger = class {
187
159
  this.draggedConnectionManager_.updateAvailableConnections();
188
160
  }
189
161
 
190
- /**
191
- * Fire a UI event at the start of a block drag.
192
- * @protected
193
- */
194
- fireDragStartEvent_() {
195
- const event = new (eventUtils.get(eventUtils.BLOCK_DRAG))(
196
- this.draggingBlock_, true, this.draggingBlock_.getDescendants(false));
162
+ /** Fire a UI event at the start of a block drag. */
163
+ protected fireDragStartEvent_() {
164
+ const event = new (eventUtils.get(eventUtils.BLOCK_DRAG))!
165
+ (this.draggingBlock_, true, this.draggingBlock_.getDescendants(false));
197
166
  eventUtils.fire(event);
198
167
  }
199
168
 
200
169
  /**
201
170
  * Execute a step of block dragging, based on the given event. Update the
202
171
  * display accordingly.
203
- * @param {!Event} e The most recent move event.
204
- * @param {!Coordinate} currentDragDeltaXY How far the pointer has
205
- * moved from the position at the start of the drag, in pixel units.
206
- * @public
172
+ * @param e The most recent move event.
173
+ * @param currentDragDeltaXY How far the pointer has moved from the position
174
+ * at the start of the drag, in pixel units.
207
175
  */
208
- drag(e, currentDragDeltaXY) {
176
+ drag(e: Event, currentDragDeltaXY: Coordinate) {
209
177
  const delta = this.pixelsToWorkspaceUnits_(currentDragDeltaXY);
210
178
  const newLoc = Coordinate.sum(this.startXY_, delta);
211
179
  this.draggingBlock_.moveDuringDrag(newLoc);
@@ -233,12 +201,11 @@ const BlockDragger = class {
233
201
 
234
202
  /**
235
203
  * Finish a block drag and put the block back on the workspace.
236
- * @param {!Event} e The mouseup/touchend event.
237
- * @param {!Coordinate} currentDragDeltaXY How far the pointer has
238
- * moved from the position at the start of the drag, in pixel units.
239
- * @public
204
+ * @param e The mouseup/touchend event.
205
+ * @param currentDragDeltaXY How far the pointer has moved from the position
206
+ * at the start of the drag, in pixel units.
240
207
  */
241
- endDrag(e, currentDragDeltaXY) {
208
+ endDrag(e: Event, currentDragDeltaXY: Coordinate) {
242
209
  // Make sure internal state is fresh.
243
210
  this.drag(e, currentDragDeltaXY);
244
211
  this.dragIconData_ = [];
@@ -250,10 +217,8 @@ const BlockDragger = class {
250
217
 
251
218
  const preventMove = !!this.dragTarget_ &&
252
219
  this.dragTarget_.shouldPreventMove(this.draggingBlock_);
253
- /** @type {Coordinate} */
254
- let newLoc;
255
- /** @type {Coordinate} */
256
- let delta;
220
+ let newLoc: Coordinate;
221
+ let delta: Coordinate|null = null;
257
222
  if (preventMove) {
258
223
  newLoc = this.startXY_;
259
224
  } else {
@@ -289,29 +254,28 @@ const BlockDragger = class {
289
254
 
290
255
  /**
291
256
  * Calculates the drag delta and new location values after a block is dragged.
292
- * @param {!Coordinate} currentDragDeltaXY How far the pointer has
293
- * moved from the start of the drag, in pixel units.
294
- * @return {{delta: !Coordinate, newLocation:
295
- * !Coordinate}} New location after drag. delta is in
296
- * workspace units. newLocation is the new coordinate where the block
297
- * should end up.
298
- * @protected
257
+ * @param currentDragDeltaXY How far the pointer has moved from the start of
258
+ * the drag, in pixel units.
259
+ * @return New location after drag. delta is in workspace units. newLocation
260
+ * is the new coordinate where the block should end up.
299
261
  */
300
- getNewLocationAfterDrag_(currentDragDeltaXY) {
301
- const newValues = {};
302
- newValues.delta = this.pixelsToWorkspaceUnits_(currentDragDeltaXY);
303
- newValues.newLocation = Coordinate.sum(this.startXY_, newValues.delta);
304
- return newValues;
262
+ protected getNewLocationAfterDrag_(currentDragDeltaXY: Coordinate):
263
+ {delta: Coordinate, newLocation: Coordinate} {
264
+ const delta = this.pixelsToWorkspaceUnits_(currentDragDeltaXY);
265
+ const newLocation = Coordinate.sum(this.startXY_, delta);
266
+ return {
267
+ delta,
268
+ newLocation,
269
+ };
305
270
  }
306
271
 
307
272
  /**
308
273
  * May delete the dragging block, if allowed. If `this.wouldDeleteBlock_` is
309
274
  * not true, the block will not be deleted. This should be called at the end
310
275
  * of a block drag.
311
- * @return {boolean} True if the block was deleted.
312
- * @protected
276
+ * @return True if the block was deleted.
313
277
  */
314
- maybeDeleteBlock_() {
278
+ protected maybeDeleteBlock_(): boolean {
315
279
  if (this.wouldDeleteBlock_) {
316
280
  // Fire a move event, so we know where to go back to for an undo.
317
281
  this.fireMoveEvent_();
@@ -324,11 +288,10 @@ const BlockDragger = class {
324
288
 
325
289
  /**
326
290
  * Updates the necessary information to place a block at a certain location.
327
- * @param {!Coordinate} delta The change in location from where
328
- * the block started the drag to where it ended the drag.
329
- * @protected
291
+ * @param delta The change in location from where the block started the drag
292
+ * to where it ended the drag.
330
293
  */
331
- updateBlockAfterMove_(delta) {
294
+ protected updateBlockAfterMove_(delta: Coordinate) {
332
295
  this.draggingBlock_.moveConnections(delta.x, delta.y);
333
296
  this.fireMoveEvent_();
334
297
  if (this.draggedConnectionManager_.wouldConnectBlock()) {
@@ -340,13 +303,10 @@ const BlockDragger = class {
340
303
  this.draggingBlock_.scheduleSnapAndBump();
341
304
  }
342
305
 
343
- /**
344
- * Fire a UI event at the end of a block drag.
345
- * @protected
346
- */
347
- fireDragEndEvent_() {
348
- const event = new (eventUtils.get(eventUtils.BLOCK_DRAG))(
349
- this.draggingBlock_, false, this.draggingBlock_.getDescendants(false));
306
+ /** Fire a UI event at the end of a block drag. */
307
+ protected fireDragEndEvent_() {
308
+ const event = new (eventUtils.get(eventUtils.BLOCK_DRAG))!
309
+ (this.draggingBlock_, false, this.draggingBlock_.getDescendants(false));
350
310
  eventUtils.fire(event);
351
311
  }
352
312
 
@@ -354,32 +314,38 @@ const BlockDragger = class {
354
314
  * Adds or removes the style of the cursor for the toolbox.
355
315
  * This is what changes the cursor to display an x when a deletable block is
356
316
  * held over the toolbox.
357
- * @param {boolean} isEnd True if we are at the end of a drag, false
358
- * otherwise.
359
- * @protected
317
+ * @param isEnd True if we are at the end of a drag, false otherwise.
360
318
  */
361
- updateToolboxStyle_(isEnd) {
319
+ protected updateToolboxStyle_(isEnd: boolean) {
362
320
  const toolbox = this.workspace_.getToolbox();
363
321
 
364
322
  if (toolbox) {
365
323
  const style = this.draggingBlock_.isDeletable() ? 'blocklyToolboxDelete' :
366
324
  'blocklyToolboxGrab';
367
325
 
368
- if (isEnd && typeof toolbox.removeStyle === 'function') {
369
- toolbox.removeStyle(style);
370
- } else if (!isEnd && typeof toolbox.addStyle === 'function') {
371
- toolbox.addStyle(style);
326
+ // AnyDuringMigration because: Property 'removeStyle' does not exist on
327
+ // type 'IToolbox'.
328
+ if (isEnd &&
329
+ typeof (toolbox as AnyDuringMigration).removeStyle === 'function') {
330
+ // AnyDuringMigration because: Property 'removeStyle' does not exist on
331
+ // type 'IToolbox'.
332
+ (toolbox as AnyDuringMigration).removeStyle(style);
333
+ // AnyDuringMigration because: Property 'addStyle' does not exist on
334
+ // type 'IToolbox'.
335
+ } else if (
336
+ !isEnd &&
337
+ typeof (toolbox as AnyDuringMigration).addStyle === 'function') {
338
+ // AnyDuringMigration because: Property 'addStyle' does not exist on
339
+ // type 'IToolbox'.
340
+ (toolbox as AnyDuringMigration).addStyle(style);
372
341
  }
373
342
  }
374
343
  }
375
344
 
376
- /**
377
- * Fire a move event at the end of a block drag.
378
- * @protected
379
- */
380
- fireMoveEvent_() {
381
- const event = /** @type {!BlockMove} */
382
- (new (eventUtils.get(eventUtils.BLOCK_MOVE))(this.draggingBlock_));
345
+ /** Fire a move event at the end of a block drag. */
346
+ protected fireMoveEvent_() {
347
+ const event = new (eventUtils.get(eventUtils.BLOCK_MOVE))!
348
+ (this.draggingBlock_) as BlockMove;
383
349
  event.oldCoordinate = this.startXY_;
384
350
  event.recordNew();
385
351
  eventUtils.fire(event);
@@ -388,9 +354,8 @@ const BlockDragger = class {
388
354
  /**
389
355
  * Update the cursor (and possibly the trash can lid) to reflect whether the
390
356
  * dragging block would be deleted if released immediately.
391
- * @protected
392
357
  */
393
- updateCursorDuringBlockDrag_() {
358
+ protected updateCursorDuringBlockDrag_() {
394
359
  this.draggingBlock_.setDeleteStyle(this.wouldDeleteBlock_);
395
360
  }
396
361
 
@@ -399,13 +364,10 @@ const BlockDragger = class {
399
364
  * correction for mutator workspaces.
400
365
  * This function does not consider differing origins. It simply scales the
401
366
  * input's x and y values.
402
- * @param {!Coordinate} pixelCoord A coordinate with x and y
403
- * values in CSS pixel units.
404
- * @return {!Coordinate} The input coordinate divided by the
405
- * workspace scale.
406
- * @protected
367
+ * @param pixelCoord A coordinate with x and y values in CSS pixel units.
368
+ * @return The input coordinate divided by the workspace scale.
407
369
  */
408
- pixelsToWorkspaceUnits_(pixelCoord) {
370
+ protected pixelsToWorkspaceUnits_(pixelCoord: Coordinate): Coordinate {
409
371
  const result = new Coordinate(
410
372
  pixelCoord.x / this.workspace_.scale,
411
373
  pixelCoord.y / this.workspace_.scale);
@@ -413,7 +375,7 @@ const BlockDragger = class {
413
375
  // If we're in a mutator, its scale is always 1, purely because of some
414
376
  // oddities in our rendering optimizations. The actual scale is the same
415
377
  // as the scale on the parent workspace. Fix that for dragging.
416
- const mainScale = this.workspace_.options.parentWorkspace.scale;
378
+ const mainScale = this.workspace_.options.parentWorkspace!.scale;
417
379
  result.scale(1 / mainScale);
418
380
  }
419
381
  return result;
@@ -421,11 +383,10 @@ const BlockDragger = class {
421
383
 
422
384
  /**
423
385
  * Move all of the icons connected to this drag.
424
- * @param {!Coordinate} dxy How far to move the icons from their
425
- * original positions, in workspace units.
426
- * @protected
386
+ * @param dxy How far to move the icons from their original positions, in
387
+ * workspace units.
427
388
  */
428
- dragIcons_(dxy) {
389
+ protected dragIcons_(dxy: Coordinate) {
429
390
  // Moving icons moves their associated bubbles.
430
391
  for (let i = 0; i < this.dragIconData_.length; i++) {
431
392
  const data = this.dragIconData_[i];
@@ -436,11 +397,9 @@ const BlockDragger = class {
436
397
  /**
437
398
  * Get a list of the insertion markers that currently exist. Drags have 0, 1,
438
399
  * or 2 insertion markers.
439
- * @return {!Array<!BlockSvg>} A possibly empty list of insertion
440
- * marker blocks.
441
- * @public
400
+ * @return A possibly empty list of insertion marker blocks.
442
401
  */
443
- getInsertionMarkers() {
402
+ getInsertionMarkers(): BlockSvg[] {
444
403
  // No insertion markers with the old style of dragged connection managers.
445
404
  if (this.draggedConnectionManager_ &&
446
405
  this.draggedConnectionManager_.getInsertionMarkers) {
@@ -448,37 +407,41 @@ const BlockDragger = class {
448
407
  }
449
408
  return [];
450
409
  }
451
- };
410
+ }
411
+
412
+ /** Data about the position of a given icon. */
413
+ export interface IconPositionData {
414
+ location: Coordinate;
415
+ icon: Icon;
416
+ }
452
417
 
453
418
  /**
454
419
  * Make a list of all of the icons (comment, warning, and mutator) that are
455
420
  * on this block and its descendants. Moving an icon moves the bubble that
456
421
  * extends from it if that bubble is open.
457
- * @param {!BlockSvg} block The root block that is being dragged.
458
- * @return {!Array<!Object>} The list of all icons and their locations.
422
+ * @param block The root block that is being dragged.
423
+ * @return The list of all icons and their locations.
459
424
  */
460
- const initIconData = function(block) {
425
+ function initIconData(block: BlockSvg): IconPositionData[] {
461
426
  // Build a list of icons that need to be moved and where they started.
462
427
  const dragIconData = [];
463
- const descendants =
464
- /** @type {!Array<!BlockSvg>} */ (block.getDescendants(false));
428
+ const descendants = (block.getDescendants(false));
465
429
 
466
- for (let i = 0, descendant; (descendant = descendants[i]); i++) {
430
+ for (let i = 0, descendant; descendant = descendants[i]; i++) {
467
431
  const icons = descendant.getIcons();
468
432
  for (let j = 0; j < icons.length; j++) {
469
433
  const data = {
470
434
  // Coordinate with x and y properties (workspace
471
435
  // coordinates).
472
- location: icons[j].getIconLocation(),
473
- // Blockly.Icon
436
+ location: icons[j].getIconLocation(), // Blockly.Icon
474
437
  icon: icons[j],
475
438
  };
476
439
  dragIconData.push(data);
477
440
  }
478
441
  }
479
- return dragIconData;
480
- };
442
+ // AnyDuringMigration because: Type '{ location: Coordinate | null; icon:
443
+ // Icon; }[]' is not assignable to type 'IconPositionData[]'.
444
+ return dragIconData as AnyDuringMigration;
445
+ }
481
446
 
482
447
  registry.register(registry.Type.BLOCK_DRAGGER, registry.DEFAULT, BlockDragger);
483
-
484
- exports.BlockDragger = BlockDragger;