blockly 8.0.4-beta.0 → 8.0.5-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (858) hide show
  1. package/blockly.min.js +2421 -2688
  2. package/blockly_compressed.js +1499 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks/blocks.js +3 -2
  5. package/blocks/colour.js +3 -1
  6. package/blocks/lists.js +94 -22
  7. package/blocks/logic.js +14 -6
  8. package/blocks/loops.js +5 -3
  9. package/blocks/math.js +3 -1
  10. package/blocks/procedures.js +3 -1
  11. package/blocks/text.js +14 -6
  12. package/blocks/variables.js +3 -1
  13. package/blocks/variables_dynamic.js +3 -1
  14. package/blocks.d.ts +0 -2
  15. package/blocks_compressed.js +189 -171
  16. package/blocks_compressed.js.map +1 -1
  17. package/closure/goog/base.d.ts +1 -0
  18. package/closure/goog/base_minimal.d.ts +18 -0
  19. package/closure/goog/goog.d.ts +25 -0
  20. package/core/any_aliases.d.ts +1 -0
  21. package/core/any_aliases.ts +1 -0
  22. package/core/block.d.ts +779 -0
  23. package/core/{block.js → block.ts} +610 -719
  24. package/core/block_animations.d.ts +33 -0
  25. package/core/{block_animations.js → block_animations.ts} +75 -79
  26. package/core/block_drag_surface.d.ts +111 -0
  27. package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
  28. package/core/block_dragger.d.ts +143 -0
  29. package/core/{block_dragger.js → block_dragger.ts} +139 -176
  30. package/core/block_svg.d.ts +588 -0
  31. package/core/{block_svg.js → block_svg.ts} +494 -630
  32. package/core/blockly.d.ts +562 -0
  33. package/core/blockly.js +1 -1
  34. package/core/blockly.ts +749 -0
  35. package/core/blockly_options.d.ts +69 -0
  36. package/core/blockly_options.ts +81 -0
  37. package/core/blocks.d.ts +17 -0
  38. package/core/{blocks.js → blocks.ts} +4 -8
  39. package/core/browser_events.d.ts +85 -0
  40. package/core/{browser_events.js → browser_events.ts} +98 -93
  41. package/core/bubble.d.ts +279 -0
  42. package/core/{bubble.js → bubble.ts} +277 -370
  43. package/core/bubble_dragger.d.ts +73 -0
  44. package/core/bubble_dragger.ts +229 -0
  45. package/core/bump_objects.d.ts +34 -0
  46. package/core/{bump_objects.js → bump_objects.ts} +54 -52
  47. package/core/clipboard.d.ts +42 -0
  48. package/core/clipboard.ts +91 -0
  49. package/core/comment.d.ts +113 -0
  50. package/core/{comment.js → comment.ts} +135 -185
  51. package/core/common.d.ts +129 -0
  52. package/core/{common.js → common.ts} +105 -82
  53. package/core/component_manager.d.ts +91 -0
  54. package/core/component_manager.ts +211 -0
  55. package/core/config.d.ts +23 -0
  56. package/core/{config.js → config.ts} +12 -19
  57. package/core/connection.d.ts +232 -0
  58. package/core/{connection.js → connection.ts} +187 -237
  59. package/core/connection_checker.d.ts +78 -0
  60. package/core/{connection_checker.js → connection_checker.ts} +66 -77
  61. package/core/connection_db.d.ts +91 -0
  62. package/core/{connection_db.js → connection_db.ts} +62 -87
  63. package/core/connection_type.d.ts +15 -0
  64. package/core/{connection_type.js → connection_type.ts} +8 -12
  65. package/core/constants.d.ts +15 -0
  66. package/core/{constants.js → constants.ts} +4 -8
  67. package/core/contextmenu.d.ts +80 -0
  68. package/core/{contextmenu.js → contextmenu.ts} +118 -153
  69. package/core/contextmenu_items.d.ts +77 -0
  70. package/core/contextmenu_items.ts +576 -0
  71. package/core/contextmenu_registry.d.ts +105 -0
  72. package/core/contextmenu_registry.ts +179 -0
  73. package/core/css.d.ts +24 -0
  74. package/core/{css.js → css.ts} +16 -24
  75. package/core/delete_area.d.ts +47 -0
  76. package/core/delete_area.ts +82 -0
  77. package/core/dialog.d.ts +61 -0
  78. package/core/dialog.ts +127 -0
  79. package/core/drag_target.d.ts +63 -0
  80. package/core/drag_target.ts +94 -0
  81. package/core/dropdowndiv.d.ts +155 -0
  82. package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
  83. package/core/events/events.d.ts +102 -0
  84. package/core/events/events.ts +123 -0
  85. package/core/events/events_abstract.d.ts +51 -0
  86. package/core/events/events_abstract.ts +112 -0
  87. package/core/events/events_block_base.d.ts +31 -0
  88. package/core/events/events_block_base.ts +65 -0
  89. package/core/events/events_block_change.d.ts +55 -0
  90. package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
  91. package/core/events/events_block_create.d.ts +35 -0
  92. package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
  93. package/core/events/events_block_delete.d.ts +36 -0
  94. package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
  95. package/core/events/events_block_drag.d.ts +36 -0
  96. package/core/events/events_block_drag.ts +82 -0
  97. package/core/events/events_block_move.d.ts +51 -0
  98. package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
  99. package/core/events/events_bubble_open.d.ts +35 -0
  100. package/core/events/events_bubble_open.ts +82 -0
  101. package/core/events/events_click.d.ts +36 -0
  102. package/core/events/{events_click.js → events_click.ts} +27 -30
  103. package/core/events/events_comment_base.d.ts +39 -0
  104. package/core/events/events_comment_base.ts +107 -0
  105. package/core/events/events_comment_change.d.ts +43 -0
  106. package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
  107. package/core/events/events_comment_create.d.ts +35 -0
  108. package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
  109. package/core/events/events_comment_delete.d.ts +35 -0
  110. package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
  111. package/core/events/events_comment_move.d.ts +55 -0
  112. package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
  113. package/core/events/events_marker_move.d.ts +40 -0
  114. package/core/events/events_marker_move.ts +99 -0
  115. package/core/events/events_selected.d.ts +34 -0
  116. package/core/events/events_selected.ts +78 -0
  117. package/core/events/events_theme_change.d.ts +30 -0
  118. package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
  119. package/core/events/events_toolbox_item_select.d.ts +34 -0
  120. package/core/events/events_toolbox_item_select.ts +79 -0
  121. package/core/events/events_trashcan_open.d.ts +31 -0
  122. package/core/events/events_trashcan_open.ts +68 -0
  123. package/core/events/events_ui.d.ts +37 -0
  124. package/core/events/{events_ui.js → events_ui.ts} +27 -26
  125. package/core/events/events_ui_base.d.ts +26 -0
  126. package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
  127. package/core/events/events_var_base.d.ts +31 -0
  128. package/core/events/events_var_base.ts +65 -0
  129. package/core/events/events_var_create.d.ts +35 -0
  130. package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
  131. package/core/events/events_var_delete.d.ts +35 -0
  132. package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
  133. package/core/events/events_var_rename.d.ts +36 -0
  134. package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
  135. package/core/events/events_viewport.d.ts +39 -0
  136. package/core/events/events_viewport.ts +100 -0
  137. package/core/events/utils.d.ts +272 -0
  138. package/core/events/{utils.js → utils.ts} +148 -219
  139. package/core/events/workspace_events.d.ts +36 -0
  140. package/core/events/workspace_events.ts +86 -0
  141. package/core/extensions.d.ts +107 -0
  142. package/core/{extensions.js → extensions.ts} +153 -172
  143. package/core/field.d.ts +534 -0
  144. package/core/{field.js → field.ts} +413 -489
  145. package/core/field_angle.d.ts +176 -0
  146. package/core/field_angle.ts +563 -0
  147. package/core/field_checkbox.d.ts +124 -0
  148. package/core/field_checkbox.ts +243 -0
  149. package/core/field_colour.d.ts +200 -0
  150. package/core/field_colour.ts +632 -0
  151. package/core/field_dropdown.d.ts +222 -0
  152. package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
  153. package/core/field_image.d.ts +134 -0
  154. package/core/field_image.ts +282 -0
  155. package/core/field_label.d.ts +71 -0
  156. package/core/field_label.ts +152 -0
  157. package/core/field_label_serializable.d.ts +42 -0
  158. package/core/field_label_serializable.ts +76 -0
  159. package/core/field_multilineinput.d.ts +146 -0
  160. package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
  161. package/core/field_number.d.ts +156 -0
  162. package/core/{field_number.js → field_number.ts} +110 -123
  163. package/core/field_registry.d.ts +45 -0
  164. package/core/{field_registry.js → field_registry.ts} +37 -30
  165. package/core/field_textinput.d.ts +219 -0
  166. package/core/field_textinput.ts +591 -0
  167. package/core/field_variable.d.ts +217 -0
  168. package/core/{field_variable.js → field_variable.ts} +174 -187
  169. package/core/flyout_base.d.ts +459 -0
  170. package/core/{flyout_base.js → flyout_base.ts} +429 -518
  171. package/core/flyout_button.d.ts +81 -0
  172. package/core/flyout_button.ts +292 -0
  173. package/core/flyout_horizontal.d.ts +82 -0
  174. package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
  175. package/core/flyout_metrics_manager.d.ts +40 -0
  176. package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
  177. package/core/flyout_vertical.d.ts +83 -0
  178. package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
  179. package/core/generator.d.ts +205 -0
  180. package/core/{generator.js → generator.ts} +168 -193
  181. package/core/gesture.d.ts +357 -0
  182. package/core/{gesture.js → gesture.ts} +289 -369
  183. package/core/grid.d.ts +83 -0
  184. package/core/grid.ts +192 -0
  185. package/core/icon.d.ts +78 -0
  186. package/core/icon.ts +189 -0
  187. package/core/inject.d.ts +15 -0
  188. package/core/{inject.js → inject.ts} +101 -100
  189. package/core/input.d.ts +128 -0
  190. package/core/input.ts +309 -0
  191. package/core/input_types.d.ts +14 -0
  192. package/core/{input_types.js → input_types.ts} +8 -12
  193. package/core/insertion_marker_manager.d.ts +212 -0
  194. package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
  195. package/core/interfaces/i_ast_node_location.d.ts +11 -0
  196. package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
  197. package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
  198. package/core/interfaces/i_ast_node_location_svg.ts +37 -0
  199. package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
  200. package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
  201. package/core/interfaces/i_autohideable.d.ts +18 -0
  202. package/core/interfaces/i_autohideable.ts +34 -0
  203. package/core/interfaces/i_block_dragger.d.ts +43 -0
  204. package/core/interfaces/i_block_dragger.ts +67 -0
  205. package/core/interfaces/i_bounded_element.d.ts +24 -0
  206. package/core/interfaces/i_bounded_element.ts +42 -0
  207. package/core/interfaces/i_bubble.d.ts +59 -0
  208. package/core/interfaces/i_bubble.ts +88 -0
  209. package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
  210. package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
  211. package/core/interfaces/i_component.d.ts +17 -0
  212. package/core/interfaces/{i_component.js → i_component.ts} +9 -14
  213. package/core/interfaces/i_connection_checker.d.ts +69 -0
  214. package/core/interfaces/i_connection_checker.ts +102 -0
  215. package/core/interfaces/i_contextmenu.d.ts +13 -0
  216. package/core/interfaces/i_contextmenu.ts +26 -0
  217. package/core/interfaces/i_copyable.d.ts +24 -0
  218. package/core/interfaces/i_copyable.ts +40 -0
  219. package/core/interfaces/i_deletable.d.ts +16 -0
  220. package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
  221. package/core/interfaces/i_delete_area.d.ts +25 -0
  222. package/core/interfaces/i_delete_area.ts +46 -0
  223. package/core/interfaces/i_drag_target.d.ts +53 -0
  224. package/core/interfaces/i_drag_target.ts +84 -0
  225. package/core/interfaces/i_draggable.d.ts +12 -0
  226. package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
  227. package/core/interfaces/i_flyout.d.ts +134 -0
  228. package/core/interfaces/i_flyout.ts +186 -0
  229. package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
  230. package/core/interfaces/i_keyboard_accessible.ts +35 -0
  231. package/core/interfaces/i_metrics_manager.d.ts +117 -0
  232. package/core/interfaces/i_metrics_manager.ts +151 -0
  233. package/core/interfaces/i_movable.d.ts +16 -0
  234. package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
  235. package/core/interfaces/i_positionable.d.ts +27 -0
  236. package/core/interfaces/i_positionable.ts +50 -0
  237. package/core/interfaces/i_registrable.d.ts +11 -0
  238. package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
  239. package/core/interfaces/i_registrable_field.d.ts +17 -0
  240. package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
  241. package/core/interfaces/i_selectable.d.ts +18 -0
  242. package/core/interfaces/i_selectable.ts +34 -0
  243. package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
  244. package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
  245. package/core/interfaces/i_serializer.d.ts +42 -0
  246. package/core/interfaces/i_serializer.ts +65 -0
  247. package/core/interfaces/i_styleable.d.ts +21 -0
  248. package/core/interfaces/i_styleable.ts +35 -0
  249. package/core/interfaces/i_toolbox.d.ts +85 -0
  250. package/core/interfaces/i_toolbox.ts +127 -0
  251. package/core/interfaces/i_toolbox_item.d.ts +62 -0
  252. package/core/interfaces/i_toolbox_item.ts +84 -0
  253. package/core/internal_constants.d.ts +40 -0
  254. package/core/{internal_constants.js → internal_constants.ts} +13 -18
  255. package/core/keyboard_nav/ast_node.d.ts +239 -0
  256. package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
  257. package/core/keyboard_nav/basic_cursor.d.ts +88 -0
  258. package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
  259. package/core/keyboard_nav/cursor.d.ts +41 -0
  260. package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
  261. package/core/keyboard_nav/marker.d.ts +58 -0
  262. package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
  263. package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
  264. package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
  265. package/core/main.d.ts +11 -0
  266. package/core/main.js +303 -0
  267. package/core/marker_manager.d.ts +85 -0
  268. package/core/marker_manager.ts +181 -0
  269. package/core/menu.d.ts +149 -0
  270. package/core/{menu.js → menu.ts} +141 -174
  271. package/core/menuitem.d.ts +118 -0
  272. package/core/menuitem.ts +240 -0
  273. package/core/metrics_manager.d.ts +201 -0
  274. package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
  275. package/core/msg.d.ts +9 -0
  276. package/core/{msg.js → msg.ts} +4 -8
  277. package/core/mutator.d.ts +128 -0
  278. package/core/{mutator.js → mutator.ts} +196 -211
  279. package/core/names.d.ts +124 -0
  280. package/core/names.ts +267 -0
  281. package/core/options.d.ts +137 -0
  282. package/core/{options.js → options.ts} +147 -173
  283. package/core/positionable_helpers.d.ts +88 -0
  284. package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
  285. package/core/procedures.d.ts +108 -0
  286. package/core/{procedures.js → procedures.ts} +143 -152
  287. package/core/registry.d.ts +137 -0
  288. package/core/registry.ts +339 -0
  289. package/core/rendered_connection.d.ts +191 -0
  290. package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
  291. package/core/renderers/common/block_rendering.d.ts +114 -0
  292. package/core/renderers/common/block_rendering.ts +164 -0
  293. package/core/renderers/common/constants.d.ts +458 -0
  294. package/core/renderers/common/constants.ts +1124 -0
  295. package/core/renderers/common/debug.d.ts +28 -0
  296. package/core/renderers/common/{debug.js → debug.ts} +14 -20
  297. package/core/renderers/common/debugger.d.ts +120 -0
  298. package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
  299. package/core/renderers/common/drawer.d.ts +132 -0
  300. package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
  301. package/core/renderers/common/i_path_object.d.ts +117 -0
  302. package/core/renderers/common/i_path_object.ts +161 -0
  303. package/core/renderers/common/info.d.ts +194 -0
  304. package/core/renderers/common/{info.js → info.ts} +165 -222
  305. package/core/renderers/common/marker_svg.d.ts +220 -0
  306. package/core/renderers/common/marker_svg.ts +680 -0
  307. package/core/renderers/common/path_object.d.ts +146 -0
  308. package/core/renderers/common/path_object.ts +272 -0
  309. package/core/renderers/common/renderer.d.ts +157 -0
  310. package/core/renderers/common/renderer.ts +271 -0
  311. package/core/renderers/geras/constants.d.ts +23 -0
  312. package/core/renderers/geras/constants.ts +61 -0
  313. package/core/renderers/geras/drawer.d.ts +43 -0
  314. package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
  315. package/core/renderers/geras/geras.d.ts +11 -0
  316. package/core/renderers/geras/geras.ts +37 -0
  317. package/core/renderers/geras/highlight_constants.d.ts +108 -0
  318. package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
  319. package/core/renderers/geras/highlighter.d.ts +98 -0
  320. package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
  321. package/core/renderers/geras/info.d.ts +45 -0
  322. package/core/renderers/geras/{info.js → info.ts} +61 -99
  323. package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
  324. package/core/renderers/geras/measurables/inline_input.ts +51 -0
  325. package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
  326. package/core/renderers/geras/measurables/statement_input.ts +50 -0
  327. package/core/renderers/geras/path_object.d.ts +47 -0
  328. package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
  329. package/core/renderers/geras/renderer.d.ts +69 -0
  330. package/core/renderers/geras/renderer.ts +126 -0
  331. package/core/renderers/measurables/base.d.ts +27 -0
  332. package/core/renderers/measurables/base.ts +53 -0
  333. package/core/renderers/measurables/bottom_row.d.ts +61 -0
  334. package/core/renderers/measurables/bottom_row.ts +120 -0
  335. package/core/renderers/measurables/connection.d.ts +25 -0
  336. package/core/renderers/measurables/connection.ts +52 -0
  337. package/core/renderers/measurables/external_value_input.d.ts +27 -0
  338. package/core/renderers/measurables/external_value_input.ts +65 -0
  339. package/core/renderers/measurables/field.d.ts +30 -0
  340. package/core/renderers/measurables/field.ts +63 -0
  341. package/core/renderers/measurables/hat.d.ts +21 -0
  342. package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
  343. package/core/renderers/measurables/icon.d.ts +26 -0
  344. package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
  345. package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
  346. package/core/renderers/measurables/in_row_spacer.ts +44 -0
  347. package/core/renderers/measurables/inline_input.d.ts +24 -0
  348. package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
  349. package/core/renderers/measurables/input_connection.d.ts +29 -0
  350. package/core/renderers/measurables/input_connection.ts +66 -0
  351. package/core/renderers/measurables/input_row.d.ts +30 -0
  352. package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
  353. package/core/renderers/measurables/jagged_edge.d.ts +20 -0
  354. package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
  355. package/core/renderers/measurables/next_connection.d.ts +23 -0
  356. package/core/renderers/measurables/next_connection.ts +47 -0
  357. package/core/renderers/measurables/output_connection.d.ts +26 -0
  358. package/core/renderers/measurables/output_connection.ts +56 -0
  359. package/core/renderers/measurables/previous_connection.d.ts +23 -0
  360. package/core/renderers/measurables/previous_connection.ts +47 -0
  361. package/core/renderers/measurables/round_corner.d.ts +21 -0
  362. package/core/renderers/measurables/round_corner.ts +49 -0
  363. package/core/renderers/measurables/row.d.ts +141 -0
  364. package/core/renderers/measurables/row.ts +225 -0
  365. package/core/renderers/measurables/spacer_row.d.ts +29 -0
  366. package/core/renderers/measurables/spacer_row.ts +55 -0
  367. package/core/renderers/measurables/square_corner.d.ts +21 -0
  368. package/core/renderers/measurables/square_corner.ts +47 -0
  369. package/core/renderers/measurables/statement_input.d.ts +22 -0
  370. package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
  371. package/core/renderers/measurables/top_row.d.ts +56 -0
  372. package/core/renderers/measurables/top_row.ts +122 -0
  373. package/core/renderers/measurables/types.d.ts +235 -0
  374. package/core/renderers/measurables/types.ts +332 -0
  375. package/core/renderers/minimalist/constants.d.ts +14 -0
  376. package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
  377. package/core/renderers/minimalist/drawer.d.ts +21 -0
  378. package/core/renderers/minimalist/drawer.ts +38 -0
  379. package/core/renderers/minimalist/info.d.ts +30 -0
  380. package/core/renderers/minimalist/info.ts +52 -0
  381. package/core/renderers/minimalist/minimalist.d.ts +6 -0
  382. package/core/renderers/minimalist/minimalist.ts +22 -0
  383. package/core/renderers/minimalist/renderer.d.ts +41 -0
  384. package/core/renderers/minimalist/renderer.ts +71 -0
  385. package/core/renderers/thrasos/info.d.ts +40 -0
  386. package/core/renderers/thrasos/{info.js → info.ts} +66 -67
  387. package/core/renderers/thrasos/renderer.d.ts +25 -0
  388. package/core/renderers/thrasos/renderer.ts +48 -0
  389. package/core/renderers/thrasos/thrasos.d.ts +4 -0
  390. package/core/renderers/thrasos/thrasos.ts +20 -0
  391. package/core/renderers/zelos/constants.d.ts +186 -0
  392. package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
  393. package/core/renderers/zelos/drawer.d.ts +47 -0
  394. package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
  395. package/core/renderers/zelos/info.d.ts +88 -0
  396. package/core/renderers/zelos/{info.js → info.ts} +111 -142
  397. package/core/renderers/zelos/marker_svg.d.ts +46 -0
  398. package/core/renderers/zelos/marker_svg.ts +151 -0
  399. package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
  400. package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
  401. package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
  402. package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
  403. package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
  404. package/core/renderers/zelos/measurables/row_elements.ts +45 -0
  405. package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
  406. package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
  407. package/core/renderers/zelos/path_object.d.ts +77 -0
  408. package/core/renderers/zelos/path_object.ts +215 -0
  409. package/core/renderers/zelos/renderer.d.ts +74 -0
  410. package/core/renderers/zelos/renderer.ts +142 -0
  411. package/core/renderers/zelos/zelos.d.ts +12 -0
  412. package/core/renderers/zelos/zelos.ts +39 -0
  413. package/core/scrollbar.d.ts +277 -0
  414. package/core/{scrollbar.js → scrollbar.ts} +307 -328
  415. package/core/scrollbar_pair.d.ts +105 -0
  416. package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
  417. package/core/serialization/blocks.d.ts +98 -0
  418. package/core/serialization/{blocks.js → blocks.ts} +229 -228
  419. package/core/serialization/exceptions.d.ts +73 -0
  420. package/core/serialization/exceptions.ts +98 -0
  421. package/core/serialization/priorities.d.ts +15 -0
  422. package/core/serialization/{priorities.js → priorities.ts} +4 -10
  423. package/core/serialization/registry.d.ts +20 -0
  424. package/core/serialization/{registry.js → registry.ts} +11 -13
  425. package/core/serialization/variables.d.ts +14 -0
  426. package/core/serialization/{variables.js → variables.ts} +30 -32
  427. package/core/serialization/workspaces.d.ts +28 -0
  428. package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
  429. package/core/shortcut_items.d.ts +61 -0
  430. package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
  431. package/core/shortcut_registry.d.ts +151 -0
  432. package/core/shortcut_registry.ts +355 -0
  433. package/core/sprites.d.ts +19 -0
  434. package/core/{sprites.js → sprites.ts} +4 -6
  435. package/core/theme/classic.d.ts +12 -0
  436. package/core/theme/{classic.js → classic.ts} +5 -7
  437. package/core/theme/themes.d.ts +8 -0
  438. package/core/theme/themes.ts +22 -0
  439. package/core/theme/zelos.d.ts +11 -0
  440. package/core/theme/{zelos.js → zelos.ts} +4 -7
  441. package/core/theme.d.ts +142 -0
  442. package/core/theme.ts +221 -0
  443. package/core/theme_manager.d.ts +81 -0
  444. package/core/theme_manager.ts +186 -0
  445. package/core/toolbox/category.d.ts +239 -0
  446. package/core/toolbox/category.ts +679 -0
  447. package/core/toolbox/collapsible_category.d.ts +91 -0
  448. package/core/toolbox/collapsible_category.ts +273 -0
  449. package/core/toolbox/separator.d.ts +39 -0
  450. package/core/toolbox/separator.ts +105 -0
  451. package/core/toolbox/toolbox.d.ts +352 -0
  452. package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
  453. package/core/toolbox/toolbox_item.d.ts +85 -0
  454. package/core/toolbox/toolbox_item.ts +147 -0
  455. package/core/tooltip.d.ts +126 -0
  456. package/core/{tooltip.js → tooltip.ts} +136 -214
  457. package/core/touch.d.ts +121 -0
  458. package/core/touch.ts +306 -0
  459. package/core/touch_gesture.d.ts +115 -0
  460. package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
  461. package/core/trashcan.d.ts +195 -0
  462. package/core/{trashcan.js → trashcan.ts} +226 -312
  463. package/core/utils/aria.d.ts +67 -0
  464. package/core/utils/{aria.js → aria.ts} +47 -61
  465. package/core/utils/array.d.ts +14 -0
  466. package/core/utils/{array.js → array.ts} +10 -12
  467. package/core/utils/colour.d.ts +103 -0
  468. package/core/utils/{colour.js → colour.ts} +60 -72
  469. package/core/utils/coordinate.d.ts +72 -0
  470. package/core/utils/coordinate.ts +124 -0
  471. package/core/utils/deprecation.d.ts +17 -0
  472. package/core/utils/{deprecation.js → deprecation.ts} +11 -11
  473. package/core/utils/dom.d.ts +165 -0
  474. package/core/utils/{dom.js → dom.ts} +125 -147
  475. package/core/utils/idgenerator.d.ts +25 -0
  476. package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
  477. package/core/utils/keycodes.d.ts +137 -0
  478. package/core/utils/keycodes.ts +169 -0
  479. package/core/utils/math.d.ts +30 -0
  480. package/core/utils/{math.js → math.ts} +17 -19
  481. package/core/utils/metrics.d.ts +64 -0
  482. package/core/utils/metrics.ts +97 -0
  483. package/core/utils/object.d.ts +35 -0
  484. package/core/utils/{object.js → object.ts} +30 -26
  485. package/core/utils/parsing.d.ts +50 -0
  486. package/core/utils/{parsing.js → parsing.ts} +50 -50
  487. package/core/utils/rect.d.ts +38 -0
  488. package/core/utils/{rect.js → rect.ts} +18 -31
  489. package/core/utils/sentinel.d.ts +11 -0
  490. package/core/utils/{sentinel.js → sentinel.ts} +3 -5
  491. package/core/utils/size.d.ts +27 -0
  492. package/core/utils/{size.js → size.ts} +12 -26
  493. package/core/utils/string.d.ts +55 -0
  494. package/core/utils/{string.js → string.ts} +64 -61
  495. package/core/utils/style.d.ts +127 -0
  496. package/core/utils/{style.js → style.ts} +102 -92
  497. package/core/utils/svg.d.ts +68 -0
  498. package/core/utils/svg.ts +88 -0
  499. package/core/utils/svg_math.d.ts +70 -0
  500. package/core/utils/{svg_math.js → svg_math.ts} +72 -71
  501. package/core/utils/svg_paths.d.ts +101 -0
  502. package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
  503. package/core/utils/toolbox.d.ts +193 -0
  504. package/core/utils/toolbox.ts +433 -0
  505. package/core/utils/useragent.d.ts +33 -0
  506. package/core/utils/useragent.ts +135 -0
  507. package/core/utils/xml.d.ts +52 -0
  508. package/core/utils/{xml.js → xml.ts} +26 -36
  509. package/core/utils.d.ts +217 -0
  510. package/core/utils.ts +428 -0
  511. package/core/variable_map.d.ts +141 -0
  512. package/core/{variable_map.js → variable_map.ts} +131 -149
  513. package/core/variable_model.d.ts +40 -0
  514. package/core/variable_model.ts +82 -0
  515. package/core/variables.d.ts +181 -0
  516. package/core/{variables.js → variables.ts} +206 -188
  517. package/core/variables_dynamic.d.ts +38 -0
  518. package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
  519. package/core/warning.d.ts +50 -0
  520. package/core/{warning.js → warning.ts} +52 -66
  521. package/core/widgetdiv.d.ts +69 -0
  522. package/core/widgetdiv.ts +257 -0
  523. package/core/workspace.d.ts +386 -0
  524. package/core/workspace.ts +801 -0
  525. package/core/workspace_audio.d.ts +47 -0
  526. package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
  527. package/core/workspace_comment.d.ts +170 -0
  528. package/core/workspace_comment.ts +398 -0
  529. package/core/workspace_comment_svg.d.ts +329 -0
  530. package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
  531. package/core/workspace_drag_surface_svg.d.ts +68 -0
  532. package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
  533. package/core/workspace_dragger.d.ts +48 -0
  534. package/core/workspace_dragger.ts +104 -0
  535. package/core/workspace_svg.d.ts +920 -0
  536. package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
  537. package/core/xml.d.ts +117 -0
  538. package/core/{xml.js → xml.ts} +306 -326
  539. package/core/zoom_controls.d.ts +130 -0
  540. package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
  541. package/core.d.ts +1 -3
  542. package/core.js +1 -2
  543. package/dart.d.ts +0 -3
  544. package/dart_compressed.js +387 -99
  545. package/dart_compressed.js.map +1 -1
  546. package/generators/dart/all.js +2 -0
  547. package/generators/dart/colour.js +1 -1
  548. package/generators/dart/lists.js +1 -1
  549. package/generators/dart/logic.js +1 -1
  550. package/generators/dart/loops.js +1 -1
  551. package/generators/dart/math.js +1 -1
  552. package/generators/dart/procedures.js +1 -1
  553. package/generators/dart/text.js +1 -1
  554. package/generators/dart/variables.js +1 -1
  555. package/generators/dart/variables_dynamic.js +1 -1
  556. package/generators/dart.js +1 -2
  557. package/generators/javascript/all.js +2 -0
  558. package/generators/javascript/colour.js +1 -1
  559. package/generators/javascript/lists.js +1 -1
  560. package/generators/javascript/logic.js +1 -1
  561. package/generators/javascript/loops.js +1 -1
  562. package/generators/javascript/math.js +4 -4
  563. package/generators/javascript/procedures.js +1 -1
  564. package/generators/javascript/text.js +2 -2
  565. package/generators/javascript/variables.js +1 -1
  566. package/generators/javascript/variables_dynamic.js +1 -1
  567. package/generators/javascript.js +1 -3
  568. package/generators/lua/all.js +2 -0
  569. package/generators/lua/colour.js +1 -1
  570. package/generators/lua/lists.js +1 -1
  571. package/generators/lua/logic.js +1 -1
  572. package/generators/lua/loops.js +1 -1
  573. package/generators/lua/math.js +1 -1
  574. package/generators/lua/procedures.js +1 -1
  575. package/generators/lua/text.js +1 -1
  576. package/generators/lua/variables.js +1 -1
  577. package/generators/lua/variables_dynamic.js +1 -1
  578. package/generators/lua.js +1 -2
  579. package/generators/php/all.js +2 -0
  580. package/generators/php/colour.js +1 -1
  581. package/generators/php/lists.js +1 -2
  582. package/generators/php/logic.js +1 -1
  583. package/generators/php/loops.js +1 -1
  584. package/generators/php/math.js +1 -1
  585. package/generators/php/procedures.js +1 -1
  586. package/generators/php/text.js +1 -1
  587. package/generators/php/variables.js +1 -1
  588. package/generators/php/variables_dynamic.js +1 -1
  589. package/generators/php.js +1 -2
  590. package/generators/python/all.js +2 -0
  591. package/generators/python/colour.js +3 -3
  592. package/generators/python/lists.js +1 -1
  593. package/generators/python/logic.js +1 -1
  594. package/generators/python/loops.js +4 -7
  595. package/generators/python/math.js +1 -1
  596. package/generators/python/procedures.js +1 -1
  597. package/generators/python/text.js +1 -1
  598. package/generators/python/variables.js +1 -1
  599. package/generators/python/variables_dynamic.js +1 -1
  600. package/generators/python.js +1 -2
  601. package/index.d.ts +2 -8
  602. package/javascript.d.ts +0 -3
  603. package/javascript_compressed.js +314 -104
  604. package/javascript_compressed.js.map +1 -1
  605. package/lua.d.ts +0 -3
  606. package/lua_compressed.js +399 -81
  607. package/lua_compressed.js.map +1 -1
  608. package/msg/ab.js +421 -421
  609. package/msg/ace.js +421 -421
  610. package/msg/af.js +421 -421
  611. package/msg/am.js +421 -421
  612. package/msg/ar.js +421 -421
  613. package/msg/ast.js +421 -421
  614. package/msg/az.js +421 -421
  615. package/msg/ba.js +421 -421
  616. package/msg/bcc.js +421 -421
  617. package/msg/be-tarask.js +421 -421
  618. package/msg/be.js +421 -421
  619. package/msg/bg.js +421 -421
  620. package/msg/bn.js +421 -421
  621. package/msg/br.js +421 -421
  622. package/msg/bs.js +421 -421
  623. package/msg/ca.js +421 -421
  624. package/msg/cdo.js +421 -421
  625. package/msg/cs.js +421 -421
  626. package/msg/da.js +421 -421
  627. package/msg/de.js +421 -421
  628. package/msg/diq.js +421 -421
  629. package/msg/dty.js +421 -421
  630. package/msg/ee.js +421 -421
  631. package/msg/el.js +421 -421
  632. package/msg/en-gb.js +421 -421
  633. package/msg/en.js +421 -421
  634. package/msg/eo.js +421 -421
  635. package/msg/es.js +421 -421
  636. package/msg/et.js +421 -421
  637. package/msg/eu.js +421 -421
  638. package/msg/fa.js +421 -421
  639. package/msg/fi.js +421 -421
  640. package/msg/fo.js +421 -421
  641. package/msg/fr.js +421 -421
  642. package/msg/frr.js +421 -421
  643. package/msg/gl.js +421 -421
  644. package/msg/gn.js +421 -421
  645. package/msg/gor.js +421 -421
  646. package/msg/ha.js +421 -421
  647. package/msg/hak.js +421 -421
  648. package/msg/he.js +421 -421
  649. package/msg/hi.js +421 -421
  650. package/msg/hr.js +421 -421
  651. package/msg/hrx.js +421 -421
  652. package/msg/hu.js +421 -421
  653. package/msg/hy.js +421 -421
  654. package/msg/ia.js +421 -421
  655. package/msg/id.js +421 -421
  656. package/msg/ig.js +421 -421
  657. package/msg/inh.js +421 -421
  658. package/msg/is.js +421 -421
  659. package/msg/it.js +421 -421
  660. package/msg/ja.js +421 -421
  661. package/msg/ka.js +421 -421
  662. package/msg/kab.js +421 -421
  663. package/msg/kbd-cyrl.js +421 -421
  664. package/msg/km.js +421 -421
  665. package/msg/kn.js +421 -421
  666. package/msg/ko.js +421 -421
  667. package/msg/ksh.js +421 -421
  668. package/msg/ku-latn.js +421 -421
  669. package/msg/ky.js +421 -421
  670. package/msg/la.js +421 -421
  671. package/msg/lb.js +421 -421
  672. package/msg/lki.js +421 -421
  673. package/msg/lo.js +421 -421
  674. package/msg/lrc.js +421 -421
  675. package/msg/lt.js +421 -421
  676. package/msg/lv.js +421 -421
  677. package/msg/mg.js +421 -421
  678. package/msg/mk.js +421 -421
  679. package/msg/ml.js +421 -421
  680. package/msg/mnw.js +421 -421
  681. package/msg/ms.js +421 -421
  682. package/msg/my.js +421 -421
  683. package/msg/mzn.js +421 -421
  684. package/msg/nb.js +421 -421
  685. package/msg/ne.js +421 -421
  686. package/msg/nl.js +421 -421
  687. package/msg/oc.js +421 -421
  688. package/msg/olo.js +421 -421
  689. package/msg/pa.js +421 -421
  690. package/msg/pl.js +421 -421
  691. package/msg/pms.js +421 -421
  692. package/msg/ps.js +421 -421
  693. package/msg/pt-br.js +421 -421
  694. package/msg/pt.js +421 -421
  695. package/msg/ro.js +421 -421
  696. package/msg/ru.js +421 -421
  697. package/msg/sc.js +421 -421
  698. package/msg/sco.js +421 -421
  699. package/msg/sd.js +421 -421
  700. package/msg/shn.js +421 -421
  701. package/msg/si.js +421 -421
  702. package/msg/sk.js +421 -421
  703. package/msg/skr-arab.js +421 -421
  704. package/msg/sl.js +421 -421
  705. package/msg/smn.js +421 -421
  706. package/msg/sq.js +421 -421
  707. package/msg/sr-latn.js +421 -421
  708. package/msg/sr.js +421 -421
  709. package/msg/sv.js +421 -421
  710. package/msg/sw.js +421 -421
  711. package/msg/ta.js +421 -421
  712. package/msg/tcy.js +421 -421
  713. package/msg/te.js +421 -421
  714. package/msg/th.js +421 -421
  715. package/msg/ti.js +421 -421
  716. package/msg/tl.js +421 -421
  717. package/msg/tlh.js +421 -421
  718. package/msg/tr.js +421 -421
  719. package/msg/ug-arab.js +421 -421
  720. package/msg/uk.js +421 -421
  721. package/msg/ur.js +421 -421
  722. package/msg/uz.js +421 -421
  723. package/msg/vi.js +421 -421
  724. package/msg/xmf.js +421 -421
  725. package/msg/yo.js +421 -421
  726. package/msg/yue.js +421 -421
  727. package/msg/zgh.js +421 -421
  728. package/msg/zh-hans.js +421 -421
  729. package/msg/zh-hant.js +421 -421
  730. package/package.json +5 -5
  731. package/php.d.ts +0 -3
  732. package/php_compressed.js +322 -93
  733. package/php_compressed.js.map +1 -1
  734. package/python.d.ts +0 -3
  735. package/python_compressed.js +237 -90
  736. package/python_compressed.js.map +1 -1
  737. package/blockly.d.ts +0 -26127
  738. package/core/blockly_options.js +0 -28
  739. package/core/bubble_dragger.js +0 -298
  740. package/core/clipboard.js +0 -80
  741. package/core/component_manager.js +0 -263
  742. package/core/contextmenu_items.js +0 -651
  743. package/core/contextmenu_registry.js +0 -178
  744. package/core/delete_area.js +0 -87
  745. package/core/dialog.js +0 -107
  746. package/core/drag_target.js +0 -98
  747. package/core/events/events.js +0 -147
  748. package/core/events/events_abstract.js +0 -133
  749. package/core/events/events_block_base.js +0 -70
  750. package/core/events/events_block_drag.js +0 -89
  751. package/core/events/events_bubble_open.js +0 -90
  752. package/core/events/events_comment_base.js +0 -121
  753. package/core/events/events_marker_move.js +0 -110
  754. package/core/events/events_selected.js +0 -83
  755. package/core/events/events_toolbox_item_select.js +0 -84
  756. package/core/events/events_trashcan_open.js +0 -73
  757. package/core/events/events_var_base.js +0 -70
  758. package/core/events/events_viewport.js +0 -107
  759. package/core/events/workspace_events.js +0 -93
  760. package/core/field_angle.js +0 -591
  761. package/core/field_checkbox.js +0 -255
  762. package/core/field_colour.js +0 -717
  763. package/core/field_image.js +0 -304
  764. package/core/field_label.js +0 -149
  765. package/core/field_label_serializable.js +0 -80
  766. package/core/field_textinput.js +0 -619
  767. package/core/flyout_button.js +0 -356
  768. package/core/grid.js +0 -226
  769. package/core/icon.js +0 -225
  770. package/core/input.js +0 -335
  771. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  772. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  773. package/core/interfaces/i_autohideable.js +0 -40
  774. package/core/interfaces/i_block_dragger.js +0 -66
  775. package/core/interfaces/i_bounded_element.js +0 -45
  776. package/core/interfaces/i_bubble.js +0 -95
  777. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  778. package/core/interfaces/i_connection_checker.js +0 -104
  779. package/core/interfaces/i_contextmenu.js +0 -32
  780. package/core/interfaces/i_copyable.js +0 -49
  781. package/core/interfaces/i_delete_area.js +0 -50
  782. package/core/interfaces/i_drag_target.js +0 -88
  783. package/core/interfaces/i_flyout.js +0 -201
  784. package/core/interfaces/i_keyboard_accessible.js +0 -38
  785. package/core/interfaces/i_metrics_manager.js +0 -154
  786. package/core/interfaces/i_positionable.js +0 -51
  787. package/core/interfaces/i_selectable.js +0 -51
  788. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  789. package/core/interfaces/i_serializer.js +0 -77
  790. package/core/interfaces/i_styleable.js +0 -39
  791. package/core/interfaces/i_toolbox.js +0 -142
  792. package/core/interfaces/i_toolbox_item.js +0 -85
  793. package/core/marker_manager.js +0 -213
  794. package/core/menuitem.js +0 -292
  795. package/core/names.js +0 -293
  796. package/core/registry.js +0 -384
  797. package/core/renderers/common/block_rendering.js +0 -170
  798. package/core/renderers/common/constants.js +0 -1250
  799. package/core/renderers/common/i_path_object.js +0 -162
  800. package/core/renderers/common/marker_svg.js +0 -721
  801. package/core/renderers/common/path_object.js +0 -283
  802. package/core/renderers/common/renderer.js +0 -305
  803. package/core/renderers/geras/constants.js +0 -73
  804. package/core/renderers/geras/geras.js +0 -36
  805. package/core/renderers/geras/measurables/inline_input.js +0 -58
  806. package/core/renderers/geras/measurables/statement_input.js +0 -57
  807. package/core/renderers/geras/renderer.js +0 -149
  808. package/core/renderers/measurables/base.js +0 -64
  809. package/core/renderers/measurables/bottom_row.js +0 -138
  810. package/core/renderers/measurables/connection.js +0 -56
  811. package/core/renderers/measurables/external_value_input.js +0 -70
  812. package/core/renderers/measurables/field.js +0 -71
  813. package/core/renderers/measurables/in_row_spacer.js +0 -47
  814. package/core/renderers/measurables/input_connection.js +0 -75
  815. package/core/renderers/measurables/next_connection.js +0 -50
  816. package/core/renderers/measurables/output_connection.js +0 -61
  817. package/core/renderers/measurables/previous_connection.js +0 -50
  818. package/core/renderers/measurables/round_corner.js +0 -52
  819. package/core/renderers/measurables/row.js +0 -247
  820. package/core/renderers/measurables/spacer_row.js +0 -69
  821. package/core/renderers/measurables/square_corner.js +0 -50
  822. package/core/renderers/measurables/top_row.js +0 -143
  823. package/core/renderers/measurables/types.js +0 -353
  824. package/core/renderers/minimalist/drawer.js +0 -42
  825. package/core/renderers/minimalist/info.js +0 -54
  826. package/core/renderers/minimalist/minimalist.js +0 -26
  827. package/core/renderers/minimalist/renderer.js +0 -80
  828. package/core/renderers/thrasos/renderer.js +0 -53
  829. package/core/renderers/thrasos/thrasos.js +0 -22
  830. package/core/renderers/zelos/marker_svg.js +0 -179
  831. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  832. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  833. package/core/renderers/zelos/path_object.js +0 -247
  834. package/core/renderers/zelos/renderer.js +0 -147
  835. package/core/renderers/zelos/zelos.js +0 -38
  836. package/core/serialization/exceptions.js +0 -144
  837. package/core/shortcut_registry.js +0 -366
  838. package/core/theme/themes.js +0 -23
  839. package/core/theme.js +0 -228
  840. package/core/theme_manager.js +0 -211
  841. package/core/toolbox/category.js +0 -751
  842. package/core/toolbox/collapsible_category.js +0 -311
  843. package/core/toolbox/separator.js +0 -133
  844. package/core/toolbox/toolbox_item.js +0 -173
  845. package/core/touch.js +0 -285
  846. package/core/utils/coordinate.js +0 -138
  847. package/core/utils/global.js +0 -41
  848. package/core/utils/keycodes.js +0 -172
  849. package/core/utils/metrics.js +0 -154
  850. package/core/utils/svg.js +0 -186
  851. package/core/utils/toolbox.js +0 -459
  852. package/core/utils/useragent.js +0 -197
  853. package/core/utils.js +0 -383
  854. package/core/variable_model.js +0 -96
  855. package/core/widgetdiv.js +0 -290
  856. package/core/workspace.js +0 -836
  857. package/core/workspace_comment.js +0 -400
  858. package/core/workspace_dragger.js +0 -115
@@ -7,48 +7,41 @@
7
7
  /**
8
8
  * @fileoverview Methods for graphically rendering a block as SVG.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Methods for graphically rendering a block as SVG.
14
13
  * @class
15
14
  */
16
- goog.module('Blockly.blockRendering.RenderInfo');
17
-
18
- const {Align} = goog.require('Blockly.Input');
19
- /* eslint-disable-next-line no-unused-vars */
20
- const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
21
- const {BottomRow} = goog.require('Blockly.blockRendering.BottomRow');
22
- /* eslint-disable-next-line no-unused-vars */
23
- const {ConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProvider');
24
- const {ExternalValueInput} = goog.require('Blockly.blockRendering.ExternalValueInput');
25
- const {Field} = goog.require('Blockly.blockRendering.Field');
26
- const {Hat} = goog.require('Blockly.blockRendering.Hat');
27
- const {Icon} = goog.require('Blockly.blockRendering.Icon');
28
- const {InRowSpacer} = goog.require('Blockly.blockRendering.InRowSpacer');
29
- const {InlineInput} = goog.require('Blockly.blockRendering.InlineInput');
30
- const {InputRow} = goog.require('Blockly.blockRendering.InputRow');
31
- /* eslint-disable-next-line no-unused-vars */
32
- const {Input} = goog.requireType('Blockly.Input');
33
- const {JaggedEdge} = goog.require('Blockly.blockRendering.JaggedEdge');
34
- /* eslint-disable-next-line no-unused-vars */
35
- const {Measurable} = goog.requireType('Blockly.blockRendering.Measurable');
36
- const {NextConnection} = goog.require('Blockly.blockRendering.NextConnection');
37
- const {OutputConnection} = goog.require('Blockly.blockRendering.OutputConnection');
38
- const {PreviousConnection} = goog.require('Blockly.blockRendering.PreviousConnection');
39
- /* eslint-disable-next-line no-unused-vars */
40
- const {RenderedConnection} = goog.requireType('Blockly.RenderedConnection');
41
- /* eslint-disable-next-line no-unused-vars */
42
- const {Renderer} = goog.requireType('Blockly.blockRendering.Renderer');
43
- const {RoundCorner} = goog.require('Blockly.blockRendering.RoundCorner');
44
- /* eslint-disable-next-line no-unused-vars */
45
- const {Row} = goog.requireType('Blockly.blockRendering.Row');
46
- const {SpacerRow} = goog.require('Blockly.blockRendering.SpacerRow');
47
- const {SquareCorner} = goog.require('Blockly.blockRendering.SquareCorner');
48
- const {StatementInput} = goog.require('Blockly.blockRendering.StatementInput');
49
- const {TopRow} = goog.require('Blockly.blockRendering.TopRow');
50
- const {Types} = goog.require('Blockly.blockRendering.Types');
51
- const {inputTypes} = goog.require('Blockly.inputTypes');
15
+ import * as goog from '../../../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.blockRendering.RenderInfo');
17
+
18
+ import type {BlockSvg} from '../../block_svg.js';
19
+ import {Align, Input} from '../../input.js';
20
+ import {inputTypes} from '../../input_types.js';
21
+ import type {RenderedConnection} from '../../rendered_connection.js';
22
+ import type {Measurable} from '../measurables/base.js';
23
+ import {BottomRow} from '../measurables/bottom_row.js';
24
+ import {ExternalValueInput} from '../measurables/external_value_input.js';
25
+ import {Field} from '../measurables/field.js';
26
+ import {Hat} from '../measurables/hat.js';
27
+ import {Icon} from '../measurables/icon.js';
28
+ import {InRowSpacer} from '../measurables/in_row_spacer.js';
29
+ import {InlineInput} from '../measurables/inline_input.js';
30
+ import {InputRow} from '../measurables/input_row.js';
31
+ import {JaggedEdge} from '../measurables/jagged_edge.js';
32
+ import {NextConnection} from '../measurables/next_connection.js';
33
+ import {OutputConnection} from '../measurables/output_connection.js';
34
+ import {PreviousConnection} from '../measurables/previous_connection.js';
35
+ import {RoundCorner} from '../measurables/round_corner.js';
36
+ import type {Row} from '../measurables/row.js';
37
+ import {SpacerRow} from '../measurables/spacer_row.js';
38
+ import {SquareCorner} from '../measurables/square_corner.js';
39
+ import {StatementInput} from '../measurables/statement_input.js';
40
+ import {TopRow} from '../measurables/top_row.js';
41
+ import {Types} from '../measurables/types.js';
42
+
43
+ import type {ConstantProvider} from './constants.js';
44
+ import type {Renderer} from './renderer.js';
52
45
 
53
46
 
54
47
  /**
@@ -59,133 +52,107 @@ const {inputTypes} = goog.require('Blockly.inputTypes');
59
52
  * repeatedly may be expensive.
60
53
  * @alias Blockly.blockRendering.RenderInfo
61
54
  */
62
- class RenderInfo {
55
+ export class RenderInfo {
56
+ block_: AnyDuringMigration;
57
+ protected constants_: ConstantProvider;
58
+ outputConnection: OutputConnection;
59
+ isInline: boolean;
60
+ isCollapsed: boolean;
61
+ isInsertionMarker: boolean;
62
+ RTL: boolean;
63
+
64
+ /** The block renderer in use. */
65
+ protected readonly renderer_: Renderer;
66
+
67
+ /** The height of the rendered block, including child blocks. */
68
+ height = 0;
69
+
70
+ /** The width of the rendered block, including child blocks. */
71
+ widthWithChildren = 0;
72
+
63
73
  /**
64
- * @param {!Renderer} renderer The renderer in use.
65
- * @param {!BlockSvg} block The block to measure.
66
- * @package
74
+ * The width of the rendered block, excluding child blocks. This is the
75
+ * right edge of the block when rendered LTR.
67
76
  */
68
- constructor(renderer, block) {
69
- this.block_ = block;
77
+ width = 0;
78
+ statementEdge = 0;
70
79
 
71
- /**
72
- * The block renderer in use.
73
- * @type {!Renderer}
74
- * @protected
75
- */
80
+ /** An array of Row objects containing sizing information. */
81
+ rows: Row[] = [];
82
+
83
+ /** An array of input rows on the block. */
84
+ inputRows: InputRow[] = [];
85
+
86
+ /** An array of measurable objects containing hidden icons. */
87
+ hiddenIcons: Icon[] = [];
88
+ topRow: TopRow;
89
+ bottomRow: BottomRow;
90
+
91
+ // The position of the start point for drawing, relative to the block's
92
+ // location.
93
+ startX = 0;
94
+ startY = 0;
95
+
96
+ /**
97
+ * @param renderer The renderer in use.
98
+ * @param block The block to measure.
99
+ * @internal
100
+ */
101
+ constructor(renderer: Renderer, block: BlockSvg) {
76
102
  this.renderer_ = renderer;
77
103
 
78
- /**
79
- * The renderer's constant provider.
80
- * @type {!ConstantProvider}
81
- * @protected
82
- */
104
+ this.block_ = block;
105
+
106
+ /** The renderer's constant provider. */
83
107
  this.constants_ = this.renderer_.getConstants();
84
108
 
85
109
  /**
86
110
  * A measurable representing the output connection if the block has one.
87
111
  * Otherwise null.
88
- * @type {OutputConnection}
89
112
  */
90
- this.outputConnection = !block.outputConnection ?
91
- null :
92
- new OutputConnection(
93
- this.constants_,
94
- /** @type {!RenderedConnection} */ (block.outputConnection));
113
+ // AnyDuringMigration because: Type 'OutputConnection | null' is not
114
+ // assignable to type 'OutputConnection'.
115
+ this.outputConnection =
116
+ (!block.outputConnection ?
117
+ null :
118
+ new OutputConnection(this.constants_, (block.outputConnection))) as
119
+ AnyDuringMigration;
95
120
 
96
121
  /**
97
122
  * Whether the block should be rendered as a single line, either because
98
123
  * it's inline or because it has been collapsed.
99
- * @type {boolean}
100
124
  */
101
125
  this.isInline = block.getInputsInline() && !block.isCollapsed();
102
126
 
103
- /**
104
- * Whether the block is collapsed.
105
- * @type {boolean}
106
- */
127
+ /** Whether the block is collapsed. */
107
128
  this.isCollapsed = block.isCollapsed();
108
129
 
109
130
  /**
110
131
  * Whether the block is an insertion marker. Insertion markers are the same
111
132
  * shape as normal blocks, but don't show fields.
112
- * @type {boolean}
113
133
  */
114
134
  this.isInsertionMarker = block.isInsertionMarker();
115
135
 
116
- /**
117
- * True if the block should be rendered right-to-left.
118
- * @type {boolean}
119
- */
136
+ /** True if the block should be rendered right-to-left. */
120
137
  this.RTL = block.RTL;
121
138
 
122
- /**
123
- * The height of the rendered block, including child blocks.
124
- * @type {number}
125
- */
126
- this.height = 0;
127
-
128
- /**
129
- * The width of the rendered block, including child blocks.
130
- * @type {number}
131
- */
132
- this.widthWithChildren = 0;
133
-
134
- /**
135
- * The width of the rendered block, excluding child blocks. This is the
136
- * right edge of the block when rendered LTR.
137
- * @type {number}
138
- */
139
- this.width = 0;
140
-
141
- /**
142
- *
143
- * @type {number}
144
- */
145
- this.statementEdge = 0;
146
-
147
- /**
148
- * An array of Row objects containing sizing information.
149
- * @type {!Array<!Row>}
150
- */
151
- this.rows = [];
152
-
153
- /**
154
- * An array of input rows on the block.
155
- * @type {!Array<!InputRow>}
156
- */
157
- this.inputRows = [];
158
-
159
- /**
160
- * An array of measurable objects containing hidden icons.
161
- * @type {!Array<!Icon>}
162
- */
163
- this.hiddenIcons = [];
164
-
165
139
  /**
166
140
  * An object with rendering information about the top row of the block.
167
- * @type {!TopRow}
168
141
  */
169
142
  this.topRow = new TopRow(this.constants_);
170
143
 
171
144
  /**
172
145
  * An object with rendering information about the bottom row of the block.
173
- * @type {!BottomRow}
174
146
  */
175
147
  this.bottomRow = new BottomRow(this.constants_);
176
-
177
- // The position of the start point for drawing, relative to the block's
178
- // location.
179
- this.startX = 0;
180
- this.startY = 0;
181
148
  }
182
149
 
183
150
  /**
184
151
  * Get the block renderer in use.
185
- * @return {!Renderer} The block renderer in use.
186
- * @package
152
+ * @return The block renderer in use.
153
+ * @internal
187
154
  */
188
- getRenderer() {
155
+ getRenderer(): Renderer {
189
156
  return this.renderer_;
190
157
  }
191
158
 
@@ -196,8 +163,7 @@ class RenderInfo {
196
163
  * This measure pass does not propagate changes to the block (although fields
197
164
  * may choose to rerender when getSize() is called). However, calling it
198
165
  * repeatedly may be expensive.
199
- *
200
- * @package
166
+ * @internal
201
167
  */
202
168
  measure() {
203
169
  this.createRows_();
@@ -211,9 +177,8 @@ class RenderInfo {
211
177
  /**
212
178
  * Create rows of Measurable objects representing all renderable parts of the
213
179
  * block.
214
- * @protected
215
180
  */
216
- createRows_() {
181
+ protected createRows_() {
217
182
  this.populateTopRow_();
218
183
  this.rows.push(this.topRow);
219
184
  let activeRow = new InputRow(this.constants_);
@@ -221,7 +186,7 @@ class RenderInfo {
221
186
 
222
187
  // Icons always go on the first row, before anything else.
223
188
  const icons = this.block_.getIcons();
224
- for (let i = 0, icon; (icon = icons[i]); i++) {
189
+ for (let i = 0, icon; icon = icons[i]; i++) {
225
190
  const iconInfo = new Icon(this.constants_, icon);
226
191
  if (this.isCollapsed && icon.collapseHidden) {
227
192
  this.hiddenIcons.push(iconInfo);
@@ -233,7 +198,7 @@ class RenderInfo {
233
198
  let lastInput = null;
234
199
  // Loop across all of the inputs on the block, creating objects for anything
235
200
  // that needs to be rendered and breaking the block up into visual rows.
236
- for (let i = 0, input; (input = this.block_.inputList[i]); i++) {
201
+ for (let i = 0, input; input = this.block_.inputList[i]; i++) {
237
202
  if (!input.isVisible()) {
238
203
  continue;
239
204
  }
@@ -245,7 +210,7 @@ class RenderInfo {
245
210
  }
246
211
 
247
212
  // All of the fields in an input go on the same row.
248
- for (let j = 0, field; (field = input.fieldRow[j]); j++) {
213
+ for (let j = 0, field; field = input.fieldRow[j]; j++) {
249
214
  activeRow.elements.push(new Field(this.constants_, field, input));
250
215
  }
251
216
  this.addInput_(input, activeRow);
@@ -266,7 +231,7 @@ class RenderInfo {
266
231
 
267
232
  /**
268
233
  * Create all non-spacer elements that belong on the top row.
269
- * @package
234
+ * @internal
270
235
  */
271
236
  populateTopRow_() {
272
237
  const hasPrevious = !!this.block_.previousConnection;
@@ -287,8 +252,7 @@ class RenderInfo {
287
252
  this.topRow.hasPreviousConnection = true;
288
253
  this.topRow.connection = new PreviousConnection(
289
254
  this.constants_,
290
- /** @type {!RenderedConnection} */
291
- (this.block_.previousConnection));
255
+ (this.block_.previousConnection as RenderedConnection));
292
256
  this.topRow.elements.push(this.topRow.connection);
293
257
  }
294
258
 
@@ -311,7 +275,7 @@ class RenderInfo {
311
275
 
312
276
  /**
313
277
  * Create all non-spacer elements that belong on the bottom row.
314
- * @package
278
+ * @internal
315
279
  */
316
280
  populateBottomRow_() {
317
281
  this.bottomRow.hasNextConnection = !!this.block_.nextConnection;
@@ -339,8 +303,7 @@ class RenderInfo {
339
303
 
340
304
  if (this.bottomRow.hasNextConnection) {
341
305
  this.bottomRow.connection = new NextConnection(
342
- this.constants_,
343
- /** @type {!RenderedConnection} */ (this.block_.nextConnection));
306
+ this.constants_, (this.block_.nextConnection as RenderedConnection));
344
307
  this.bottomRow.elements.push(this.bottomRow.connection);
345
308
  }
346
309
 
@@ -356,12 +319,10 @@ class RenderInfo {
356
319
  /**
357
320
  * Add an input element to the active row, if needed, and record the type of
358
321
  * the input on the row.
359
- * @param {!Input} input The input to record information about.
360
- * @param {!Row} activeRow The row that is currently being
361
- * populated.
362
- * @protected
322
+ * @param input The input to record information about.
323
+ * @param activeRow The row that is currently being populated.
363
324
  */
364
- addInput_(input, activeRow) {
325
+ protected addInput_(input: Input, activeRow: Row) {
365
326
  // Non-dummy inputs have visual representations onscreen.
366
327
  if (this.isInline && input.type === inputTypes.VALUE) {
367
328
  activeRow.elements.push(new InlineInput(this.constants_, input));
@@ -377,7 +338,7 @@ class RenderInfo {
377
338
  // still important.
378
339
  activeRow.minHeight = Math.max(
379
340
  activeRow.minHeight,
380
- input.getSourceBlock() && input.getSourceBlock().isShadow() ?
341
+ input.getSourceBlock() && input.getSourceBlock()!.isShadow() ?
381
342
  this.constants_.DUMMY_INPUT_SHADOW_MIN_HEIGHT :
382
343
  this.constants_.DUMMY_INPUT_MIN_HEIGHT);
383
344
  activeRow.hasDummyInput = true;
@@ -389,12 +350,11 @@ class RenderInfo {
389
350
 
390
351
  /**
391
352
  * Decide whether to start a new row between the two Blockly.Inputs.
392
- * @param {!Input} input The first input to consider
393
- * @param {Input} lastInput The input that follows.
394
- * @return {boolean} True if the next input should be rendered on a new row.
395
- * @protected
353
+ * @param input The first input to consider
354
+ * @param lastInput The input that follows.
355
+ * @return True if the next input should be rendered on a new row.
396
356
  */
397
- shouldStartNewRow_(input, lastInput) {
357
+ protected shouldStartNewRow_(input: Input, lastInput: Input): boolean {
398
358
  // If this is the first input, just add to the existing row.
399
359
  // That row is either empty or has some icons in it.
400
360
  if (!lastInput) {
@@ -412,12 +372,9 @@ class RenderInfo {
412
372
  return false;
413
373
  }
414
374
 
415
- /**
416
- * Add horizontal spacing between and around elements within each row.
417
- * @protected
418
- */
419
- addElemSpacing_() {
420
- for (let i = 0, row; (row = this.rows[i]); i++) {
375
+ /** Add horizontal spacing between and around elements within each row. */
376
+ protected addElemSpacing_() {
377
+ for (let i = 0, row; row = this.rows[i]; i++) {
421
378
  const oldElems = row.elements;
422
379
  row.elements = [];
423
380
  // No spacing needed before the corner on the top row or the bottom row.
@@ -448,13 +405,12 @@ class RenderInfo {
448
405
  * Calculate the width of a spacer element in a row based on the previous and
449
406
  * next elements in that row. For instance, extra padding is added between
450
407
  * two editable fields.
451
- * @param {Measurable} prev The element before the
452
- * spacer.
453
- * @param {Measurable} next The element after the spacer.
454
- * @return {number} The size of the spacing between the two elements.
455
- * @protected
408
+ * @param prev The element before the spacer.
409
+ * @param next The element after the spacer.
410
+ * @return The size of the spacing between the two elements.
456
411
  */
457
- getInRowSpacing_(prev, next) {
412
+ protected getInRowSpacing_(prev: Measurable|null, next: Measurable|null):
413
+ number {
458
414
  if (!prev) {
459
415
  // Statement input padding.
460
416
  if (next && Types.isStatementInput(next)) {
@@ -463,7 +419,9 @@ class RenderInfo {
463
419
  }
464
420
  // Between inputs and the end of the row.
465
421
  if (prev && Types.isInput(prev) && !next) {
466
- if (Types.isExternalInput(prev)) {
422
+ // AnyDuringMigration because: Property 'isExternalInput' does not exist
423
+ // on type 'typeof Types'.
424
+ if ((Types as AnyDuringMigration).isExternalInput(prev)) {
467
425
  return this.constants_.NO_PADDING;
468
426
  } else if (Types.isInlineInput(prev)) {
469
427
  return this.constants_.LARGE_PADDING;
@@ -492,13 +450,12 @@ class RenderInfo {
492
450
  /**
493
451
  * Figure out where the right edge of the block and right edge of statement
494
452
  * inputs should be placed.
495
- * @protected
496
453
  */
497
- computeBounds_() {
454
+ protected computeBounds_() {
498
455
  let widestStatementRowFields = 0;
499
456
  let blockWidth = 0;
500
457
  let widestRowWithConnectedBlocks = 0;
501
- for (let i = 0, row; (row = this.rows[i]); i++) {
458
+ for (let i = 0, row; row = this.rows[i]; i++) {
502
459
  row.measure();
503
460
  blockWidth = Math.max(blockWidth, row.width);
504
461
  if (row.hasStatement) {
@@ -514,7 +471,7 @@ class RenderInfo {
514
471
  this.statementEdge = widestStatementRowFields;
515
472
  this.width = blockWidth;
516
473
 
517
- for (let i = 0, row; (row = this.rows[i]); i++) {
474
+ for (let i = 0, row; row = this.rows[i]; i++) {
518
475
  if (row.hasStatement) {
519
476
  row.statementEdge = this.statementEdge;
520
477
  }
@@ -533,13 +490,11 @@ class RenderInfo {
533
490
  * Extra spacing may be necessary to make sure that the right sides of all
534
491
  * rows line up. This can only be calculated after a first pass to calculate
535
492
  * the sizes of all rows.
536
- * @protected
537
493
  */
538
- alignRowElements_() {
539
- for (let i = 0, row; (row = this.rows[i]); i++) {
494
+ protected alignRowElements_() {
495
+ for (let i = 0, row; row = this.rows[i]; i++) {
540
496
  if (row.hasStatement) {
541
- this.alignStatementRow_(
542
- /** @type {!InputRow} */ (row));
497
+ this.alignStatementRow_(row as InputRow);
543
498
  } else {
544
499
  const currentWidth = row.width;
545
500
  const desiredWidth = this.getDesiredRowWidth_(row);
@@ -547,7 +502,9 @@ class RenderInfo {
547
502
  if (missingSpace > 0) {
548
503
  this.addAlignmentPadding_(row, missingSpace);
549
504
  }
550
- if (Types.isTopOrBottomRow(row)) {
505
+ // AnyDuringMigration because: Property 'isTopOrBottomRow' does not
506
+ // exist on type 'typeof Types'.
507
+ if ((Types as AnyDuringMigration).isTopOrBottomRow(row)) {
551
508
  row.widthWithConnectedBlocks = row.width;
552
509
  }
553
510
  }
@@ -556,11 +513,10 @@ class RenderInfo {
556
513
 
557
514
  /**
558
515
  * Calculate the desired width of an input row.
559
- * @param {!Row} _row The input row.
560
- * @return {number} The desired width of the input row.
561
- * @protected
516
+ * @param _row The input row.
517
+ * @return The desired width of the input row.
562
518
  */
563
- getDesiredRowWidth_(_row) {
519
+ protected getDesiredRowWidth_(_row: Row): number {
564
520
  return this.width - this.startX;
565
521
  }
566
522
 
@@ -568,11 +524,10 @@ class RenderInfo {
568
524
  * Modify the given row to add the given amount of padding around its fields.
569
525
  * The exact location of the padding is based on the alignment property of the
570
526
  * last input in the field.
571
- * @param {!Row} row The row to add padding to.
572
- * @param {number} missingSpace How much padding to add.
573
- * @protected
527
+ * @param row The row to add padding to.
528
+ * @param missingSpace How much padding to add.
574
529
  */
575
- addAlignmentPadding_(row, missingSpace) {
530
+ protected addAlignmentPadding_(row: Row, missingSpace: number) {
576
531
  const firstSpacer = row.getFirstSpacer();
577
532
  const lastSpacer = row.getLastSpacer();
578
533
  if (row.hasExternalInput || row.hasStatement) {
@@ -600,10 +555,9 @@ class RenderInfo {
600
555
  /**
601
556
  * Align the elements of a statement row based on computed bounds.
602
557
  * Unlike other types of rows, statement rows add space in multiple places.
603
- * @param {!InputRow} row The statement row to resize.
604
- * @protected
558
+ * @param row The statement row to resize.
605
559
  */
606
- alignStatementRow_(row) {
560
+ protected alignStatementRow_(row: InputRow) {
607
561
  const statementInput = row.getLastInput();
608
562
  let currentWidth = row.width - statementInput.width;
609
563
  let desiredWidth = this.statementEdge;
@@ -616,18 +570,15 @@ class RenderInfo {
616
570
  // block. Note that this does not add padding.
617
571
  currentWidth = row.width;
618
572
  desiredWidth = this.getDesiredRowWidth_(row);
619
- statementInput.width += (desiredWidth - currentWidth);
573
+ statementInput.width += desiredWidth - currentWidth;
620
574
  statementInput.height = Math.max(statementInput.height, row.height);
621
- row.width += (desiredWidth - currentWidth);
575
+ row.width += desiredWidth - currentWidth;
622
576
  row.widthWithConnectedBlocks =
623
577
  Math.max(row.width, this.statementEdge + row.connectedBlockWidths);
624
578
  }
625
579
 
626
- /**
627
- * Add spacers between rows and set their sizes.
628
- * @protected
629
- */
630
- addRowSpacing_() {
580
+ /** Add spacers between rows and set their sizes. */
581
+ protected addRowSpacing_() {
631
582
  const oldRows = this.rows;
632
583
  this.rows = [];
633
584
 
@@ -641,12 +592,11 @@ class RenderInfo {
641
592
 
642
593
  /**
643
594
  * Create a spacer row to go between prev and next, and set its size.
644
- * @param {!Row} prev The previous row.
645
- * @param {!Row} next The next row.
646
- * @return {!SpacerRow} The newly created spacer row.
647
- * @protected
595
+ * @param prev The previous row.
596
+ * @param next The next row.
597
+ * @return The newly created spacer row.
648
598
  */
649
- makeSpacerRow_(prev, next) {
599
+ protected makeSpacerRow_(prev: Row, next: Row): SpacerRow {
650
600
  const height = this.getSpacerRowHeight_(prev, next);
651
601
  const width = this.getSpacerRowWidth_(prev, next);
652
602
  const spacer = new SpacerRow(this.constants_, height, width);
@@ -661,25 +611,21 @@ class RenderInfo {
661
611
 
662
612
  /**
663
613
  * Calculate the width of a spacer row.
664
- * @param {!Row} _prev The row before the spacer.
665
- * @param {!Row} _next The row after the spacer.
666
- * @return {number} The desired width of the spacer row between these two
667
- * rows.
668
- * @protected
614
+ * @param _prev The row before the spacer.
615
+ * @param _next The row after the spacer.
616
+ * @return The desired width of the spacer row between these two rows.
669
617
  */
670
- getSpacerRowWidth_(_prev, _next) {
618
+ protected getSpacerRowWidth_(_prev: Row, _next: Row): number {
671
619
  return this.width - this.startX;
672
620
  }
673
621
 
674
622
  /**
675
623
  * Calculate the height of a spacer row.
676
- * @param {!Row} _prev The row before the spacer.
677
- * @param {!Row} _next The row after the spacer.
678
- * @return {number} The desired height of the spacer row between these two
679
- * rows.
680
- * @protected
624
+ * @param _prev The row before the spacer.
625
+ * @param _next The row after the spacer.
626
+ * @return The desired height of the spacer row between these two rows.
681
627
  */
682
- getSpacerRowHeight_(_prev, _next) {
628
+ protected getSpacerRowHeight_(_prev: Row, _next: Row): number {
683
629
  return this.constants_.MEDIUM_PADDING;
684
630
  }
685
631
 
@@ -688,18 +634,17 @@ class RenderInfo {
688
634
  * This base implementation puts the centerline at the middle of the row
689
635
  * vertically, with no special cases. You will likely need extra logic to
690
636
  * handle (at minimum) top and bottom rows.
691
- * @param {!Row} row The row containing the element.
692
- * @param {!Measurable} elem The element to place.
693
- * @return {number} The desired centerline of the given element, as an offset
694
- * from the top left of the block.
695
- * @protected
637
+ * @param row The row containing the element.
638
+ * @param elem The element to place.
639
+ * @return The desired centerline of the given element, as an offset from the
640
+ * top left of the block.
696
641
  */
697
- getElemCenterline_(row, elem) {
642
+ protected getElemCenterline_(row: Row, elem: Measurable): number {
698
643
  if (Types.isSpacer(elem)) {
699
644
  return row.yPos + elem.height / 2;
700
645
  }
701
646
  if (Types.isBottomRow(row)) {
702
- const bottomRow = /** @type {!BottomRow} */ (row);
647
+ const bottomRow = row as BottomRow;
703
648
  const baseline =
704
649
  bottomRow.yPos + bottomRow.height - bottomRow.descenderHeight;
705
650
  if (Types.isNextConnection(elem)) {
@@ -708,8 +653,10 @@ class RenderInfo {
708
653
  return baseline - elem.height / 2;
709
654
  }
710
655
  if (Types.isTopRow(row)) {
711
- const topRow = /** @type {!TopRow} */ (row);
712
- if (Types.isHat(elem)) {
656
+ const topRow = row as TopRow;
657
+ // AnyDuringMigration because: Property 'isHat' does not exist on type
658
+ // 'typeof Types'.
659
+ if ((Types as AnyDuringMigration).isHat(elem)) {
713
660
  return topRow.capline - elem.height / 2;
714
661
  }
715
662
  return topRow.capline + elem.height / 2;
@@ -720,12 +667,11 @@ class RenderInfo {
720
667
  /**
721
668
  * Record final position information on elements on the given row, for use in
722
669
  * drawing. At minimum this records xPos and centerline on each element.
723
- * @param {!Row} row The row containing the elements.
724
- * @protected
670
+ * @param row The row containing the elements.
725
671
  */
726
- recordElemPositions_(row) {
672
+ protected recordElemPositions_(row: Row) {
727
673
  let xCursor = row.xPos;
728
- for (let j = 0, elem; (elem = row.elements[j]); j++) {
674
+ for (let j = 0, elem; elem = row.elements[j]; j++) {
729
675
  // Now that row heights are finalized, make spacers use the row height.
730
676
  if (Types.isSpacer(elem)) {
731
677
  elem.height = row.height;
@@ -739,15 +685,14 @@ class RenderInfo {
739
685
  /**
740
686
  * Make any final changes to the rendering information object. In particular,
741
687
  * store the y position of each row, and record the height of the full block.
742
- * @protected
743
688
  */
744
- finalize_() {
689
+ protected finalize_() {
745
690
  // Performance note: this could be combined with the draw pass, if the time
746
691
  // that this takes is excessive. But it shouldn't be, because it only
747
692
  // accesses and sets properties that already exist on the objects.
748
693
  let widestRowWithConnectedBlocks = 0;
749
694
  let yCursor = 0;
750
- for (let i = 0, row; (row = this.rows[i]); i++) {
695
+ for (let i = 0, row; row = this.rows[i]; i++) {
751
696
  row.yPos = yCursor;
752
697
  row.xPos = this.startX;
753
698
  yCursor += row.height;
@@ -771,5 +716,3 @@ class RenderInfo {
771
716
  this.bottomRow.baseline = yCursor - this.bottomRow.descenderHeight;
772
717
  }
773
718
  }
774
-
775
- exports.RenderInfo = RenderInfo;