blockly 8.0.5 → 9.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (736) hide show
  1. package/blockly.min.js +2002 -2269
  2. package/blockly_compressed.js +1499 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks/blocks.js +3 -2
  5. package/blocks/colour.js +3 -1
  6. package/blocks/lists.js +94 -22
  7. package/blocks/logic.js +14 -6
  8. package/blocks/loops.js +5 -3
  9. package/blocks/math.js +3 -1
  10. package/blocks/procedures.js +3 -1
  11. package/blocks/text.js +14 -6
  12. package/blocks/variables.js +3 -1
  13. package/blocks/variables_dynamic.js +3 -1
  14. package/blocks.d.ts +0 -2
  15. package/blocks_compressed.js +189 -171
  16. package/blocks_compressed.js.map +1 -1
  17. package/closure/goog/base.d.ts +1 -0
  18. package/closure/goog/base_minimal.d.ts +18 -0
  19. package/closure/goog/goog.d.ts +25 -0
  20. package/core/any_aliases.d.ts +1 -0
  21. package/core/any_aliases.ts +1 -0
  22. package/core/block.d.ts +779 -0
  23. package/core/{block.js → block.ts} +610 -719
  24. package/core/block_animations.d.ts +33 -0
  25. package/core/{block_animations.js → block_animations.ts} +75 -79
  26. package/core/block_drag_surface.d.ts +111 -0
  27. package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
  28. package/core/block_dragger.d.ts +143 -0
  29. package/core/{block_dragger.js → block_dragger.ts} +139 -176
  30. package/core/block_svg.d.ts +588 -0
  31. package/core/{block_svg.js → block_svg.ts} +494 -630
  32. package/core/blockly.d.ts +562 -0
  33. package/core/blockly.js +1 -1
  34. package/core/blockly.ts +749 -0
  35. package/core/blockly_options.d.ts +69 -0
  36. package/core/blockly_options.ts +81 -0
  37. package/core/blocks.d.ts +17 -0
  38. package/core/{blocks.js → blocks.ts} +4 -8
  39. package/core/browser_events.d.ts +85 -0
  40. package/core/{browser_events.js → browser_events.ts} +98 -93
  41. package/core/bubble.d.ts +279 -0
  42. package/core/{bubble.js → bubble.ts} +277 -370
  43. package/core/bubble_dragger.d.ts +73 -0
  44. package/core/bubble_dragger.ts +229 -0
  45. package/core/bump_objects.d.ts +34 -0
  46. package/core/{bump_objects.js → bump_objects.ts} +54 -52
  47. package/core/clipboard.d.ts +42 -0
  48. package/core/clipboard.ts +91 -0
  49. package/core/comment.d.ts +113 -0
  50. package/core/{comment.js → comment.ts} +135 -185
  51. package/core/common.d.ts +129 -0
  52. package/core/{common.js → common.ts} +105 -82
  53. package/core/component_manager.d.ts +91 -0
  54. package/core/component_manager.ts +211 -0
  55. package/core/config.d.ts +23 -0
  56. package/core/{config.js → config.ts} +12 -19
  57. package/core/connection.d.ts +232 -0
  58. package/core/{connection.js → connection.ts} +187 -237
  59. package/core/connection_checker.d.ts +78 -0
  60. package/core/{connection_checker.js → connection_checker.ts} +66 -77
  61. package/core/connection_db.d.ts +91 -0
  62. package/core/{connection_db.js → connection_db.ts} +62 -87
  63. package/core/connection_type.d.ts +15 -0
  64. package/core/{connection_type.js → connection_type.ts} +8 -12
  65. package/core/constants.d.ts +15 -0
  66. package/core/{constants.js → constants.ts} +4 -8
  67. package/core/contextmenu.d.ts +80 -0
  68. package/core/{contextmenu.js → contextmenu.ts} +118 -153
  69. package/core/contextmenu_items.d.ts +77 -0
  70. package/core/contextmenu_items.ts +576 -0
  71. package/core/contextmenu_registry.d.ts +105 -0
  72. package/core/contextmenu_registry.ts +179 -0
  73. package/core/css.d.ts +24 -0
  74. package/core/{css.js → css.ts} +16 -24
  75. package/core/delete_area.d.ts +47 -0
  76. package/core/delete_area.ts +82 -0
  77. package/core/dialog.d.ts +61 -0
  78. package/core/dialog.ts +127 -0
  79. package/core/drag_target.d.ts +63 -0
  80. package/core/drag_target.ts +94 -0
  81. package/core/dropdowndiv.d.ts +155 -0
  82. package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
  83. package/core/events/events.d.ts +102 -0
  84. package/core/events/events.ts +123 -0
  85. package/core/events/events_abstract.d.ts +51 -0
  86. package/core/events/events_abstract.ts +112 -0
  87. package/core/events/events_block_base.d.ts +31 -0
  88. package/core/events/events_block_base.ts +65 -0
  89. package/core/events/events_block_change.d.ts +55 -0
  90. package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
  91. package/core/events/events_block_create.d.ts +35 -0
  92. package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
  93. package/core/events/events_block_delete.d.ts +36 -0
  94. package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
  95. package/core/events/events_block_drag.d.ts +36 -0
  96. package/core/events/events_block_drag.ts +82 -0
  97. package/core/events/events_block_move.d.ts +51 -0
  98. package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
  99. package/core/events/events_bubble_open.d.ts +35 -0
  100. package/core/events/events_bubble_open.ts +82 -0
  101. package/core/events/events_click.d.ts +36 -0
  102. package/core/events/{events_click.js → events_click.ts} +27 -30
  103. package/core/events/events_comment_base.d.ts +39 -0
  104. package/core/events/events_comment_base.ts +107 -0
  105. package/core/events/events_comment_change.d.ts +43 -0
  106. package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
  107. package/core/events/events_comment_create.d.ts +35 -0
  108. package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
  109. package/core/events/events_comment_delete.d.ts +35 -0
  110. package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
  111. package/core/events/events_comment_move.d.ts +55 -0
  112. package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
  113. package/core/events/events_marker_move.d.ts +40 -0
  114. package/core/events/events_marker_move.ts +99 -0
  115. package/core/events/events_selected.d.ts +34 -0
  116. package/core/events/events_selected.ts +78 -0
  117. package/core/events/events_theme_change.d.ts +30 -0
  118. package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
  119. package/core/events/events_toolbox_item_select.d.ts +34 -0
  120. package/core/events/events_toolbox_item_select.ts +79 -0
  121. package/core/events/events_trashcan_open.d.ts +31 -0
  122. package/core/events/events_trashcan_open.ts +68 -0
  123. package/core/events/events_ui.d.ts +37 -0
  124. package/core/events/{events_ui.js → events_ui.ts} +27 -26
  125. package/core/events/events_ui_base.d.ts +26 -0
  126. package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
  127. package/core/events/events_var_base.d.ts +31 -0
  128. package/core/events/events_var_base.ts +65 -0
  129. package/core/events/events_var_create.d.ts +35 -0
  130. package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
  131. package/core/events/events_var_delete.d.ts +35 -0
  132. package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
  133. package/core/events/events_var_rename.d.ts +36 -0
  134. package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
  135. package/core/events/events_viewport.d.ts +39 -0
  136. package/core/events/events_viewport.ts +100 -0
  137. package/core/events/utils.d.ts +272 -0
  138. package/core/events/{utils.js → utils.ts} +148 -219
  139. package/core/events/workspace_events.d.ts +36 -0
  140. package/core/events/workspace_events.ts +86 -0
  141. package/core/extensions.d.ts +107 -0
  142. package/core/{extensions.js → extensions.ts} +153 -172
  143. package/core/field.d.ts +534 -0
  144. package/core/{field.js → field.ts} +413 -489
  145. package/core/field_angle.d.ts +176 -0
  146. package/core/field_angle.ts +563 -0
  147. package/core/field_checkbox.d.ts +124 -0
  148. package/core/field_checkbox.ts +243 -0
  149. package/core/field_colour.d.ts +200 -0
  150. package/core/field_colour.ts +632 -0
  151. package/core/field_dropdown.d.ts +222 -0
  152. package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
  153. package/core/field_image.d.ts +134 -0
  154. package/core/field_image.ts +282 -0
  155. package/core/field_label.d.ts +71 -0
  156. package/core/field_label.ts +152 -0
  157. package/core/field_label_serializable.d.ts +42 -0
  158. package/core/field_label_serializable.ts +76 -0
  159. package/core/field_multilineinput.d.ts +146 -0
  160. package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
  161. package/core/field_number.d.ts +156 -0
  162. package/core/{field_number.js → field_number.ts} +110 -123
  163. package/core/field_registry.d.ts +45 -0
  164. package/core/{field_registry.js → field_registry.ts} +37 -30
  165. package/core/field_textinput.d.ts +219 -0
  166. package/core/field_textinput.ts +591 -0
  167. package/core/field_variable.d.ts +217 -0
  168. package/core/{field_variable.js → field_variable.ts} +174 -187
  169. package/core/flyout_base.d.ts +459 -0
  170. package/core/{flyout_base.js → flyout_base.ts} +429 -518
  171. package/core/flyout_button.d.ts +81 -0
  172. package/core/flyout_button.ts +292 -0
  173. package/core/flyout_horizontal.d.ts +82 -0
  174. package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
  175. package/core/flyout_metrics_manager.d.ts +40 -0
  176. package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
  177. package/core/flyout_vertical.d.ts +83 -0
  178. package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
  179. package/core/generator.d.ts +205 -0
  180. package/core/{generator.js → generator.ts} +168 -193
  181. package/core/gesture.d.ts +357 -0
  182. package/core/{gesture.js → gesture.ts} +289 -369
  183. package/core/grid.d.ts +83 -0
  184. package/core/grid.ts +192 -0
  185. package/core/icon.d.ts +78 -0
  186. package/core/icon.ts +189 -0
  187. package/core/inject.d.ts +15 -0
  188. package/core/{inject.js → inject.ts} +101 -100
  189. package/core/input.d.ts +128 -0
  190. package/core/input.ts +309 -0
  191. package/core/input_types.d.ts +14 -0
  192. package/core/{input_types.js → input_types.ts} +8 -12
  193. package/core/insertion_marker_manager.d.ts +212 -0
  194. package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
  195. package/core/interfaces/i_ast_node_location.d.ts +11 -0
  196. package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
  197. package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
  198. package/core/interfaces/i_ast_node_location_svg.ts +37 -0
  199. package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
  200. package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
  201. package/core/interfaces/i_autohideable.d.ts +18 -0
  202. package/core/interfaces/i_autohideable.ts +34 -0
  203. package/core/interfaces/i_block_dragger.d.ts +43 -0
  204. package/core/interfaces/i_block_dragger.ts +67 -0
  205. package/core/interfaces/i_bounded_element.d.ts +24 -0
  206. package/core/interfaces/i_bounded_element.ts +42 -0
  207. package/core/interfaces/i_bubble.d.ts +59 -0
  208. package/core/interfaces/i_bubble.ts +88 -0
  209. package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
  210. package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
  211. package/core/interfaces/i_component.d.ts +17 -0
  212. package/core/interfaces/{i_component.js → i_component.ts} +9 -14
  213. package/core/interfaces/i_connection_checker.d.ts +69 -0
  214. package/core/interfaces/i_connection_checker.ts +102 -0
  215. package/core/interfaces/i_contextmenu.d.ts +13 -0
  216. package/core/interfaces/i_contextmenu.ts +26 -0
  217. package/core/interfaces/i_copyable.d.ts +24 -0
  218. package/core/interfaces/i_copyable.ts +40 -0
  219. package/core/interfaces/i_deletable.d.ts +16 -0
  220. package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
  221. package/core/interfaces/i_delete_area.d.ts +25 -0
  222. package/core/interfaces/i_delete_area.ts +46 -0
  223. package/core/interfaces/i_drag_target.d.ts +53 -0
  224. package/core/interfaces/i_drag_target.ts +84 -0
  225. package/core/interfaces/i_draggable.d.ts +12 -0
  226. package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
  227. package/core/interfaces/i_flyout.d.ts +134 -0
  228. package/core/interfaces/i_flyout.ts +186 -0
  229. package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
  230. package/core/interfaces/i_keyboard_accessible.ts +35 -0
  231. package/core/interfaces/i_metrics_manager.d.ts +117 -0
  232. package/core/interfaces/i_metrics_manager.ts +151 -0
  233. package/core/interfaces/i_movable.d.ts +16 -0
  234. package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
  235. package/core/interfaces/i_positionable.d.ts +27 -0
  236. package/core/interfaces/i_positionable.ts +50 -0
  237. package/core/interfaces/i_registrable.d.ts +11 -0
  238. package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
  239. package/core/interfaces/i_registrable_field.d.ts +17 -0
  240. package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
  241. package/core/interfaces/i_selectable.d.ts +18 -0
  242. package/core/interfaces/i_selectable.ts +34 -0
  243. package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
  244. package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
  245. package/core/interfaces/i_serializer.d.ts +42 -0
  246. package/core/interfaces/i_serializer.ts +65 -0
  247. package/core/interfaces/i_styleable.d.ts +21 -0
  248. package/core/interfaces/i_styleable.ts +35 -0
  249. package/core/interfaces/i_toolbox.d.ts +85 -0
  250. package/core/interfaces/i_toolbox.ts +127 -0
  251. package/core/interfaces/i_toolbox_item.d.ts +62 -0
  252. package/core/interfaces/i_toolbox_item.ts +84 -0
  253. package/core/internal_constants.d.ts +40 -0
  254. package/core/{internal_constants.js → internal_constants.ts} +13 -18
  255. package/core/keyboard_nav/ast_node.d.ts +239 -0
  256. package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
  257. package/core/keyboard_nav/basic_cursor.d.ts +88 -0
  258. package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
  259. package/core/keyboard_nav/cursor.d.ts +41 -0
  260. package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
  261. package/core/keyboard_nav/marker.d.ts +58 -0
  262. package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
  263. package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
  264. package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
  265. package/core/main.d.ts +11 -0
  266. package/core/main.js +303 -0
  267. package/core/marker_manager.d.ts +85 -0
  268. package/core/marker_manager.ts +181 -0
  269. package/core/menu.d.ts +149 -0
  270. package/core/{menu.js → menu.ts} +141 -174
  271. package/core/menuitem.d.ts +118 -0
  272. package/core/menuitem.ts +240 -0
  273. package/core/metrics_manager.d.ts +201 -0
  274. package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
  275. package/core/msg.d.ts +9 -0
  276. package/core/{msg.js → msg.ts} +4 -8
  277. package/core/mutator.d.ts +128 -0
  278. package/core/{mutator.js → mutator.ts} +196 -211
  279. package/core/names.d.ts +124 -0
  280. package/core/names.ts +267 -0
  281. package/core/options.d.ts +137 -0
  282. package/core/{options.js → options.ts} +147 -173
  283. package/core/positionable_helpers.d.ts +88 -0
  284. package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
  285. package/core/procedures.d.ts +108 -0
  286. package/core/{procedures.js → procedures.ts} +143 -152
  287. package/core/registry.d.ts +137 -0
  288. package/core/registry.ts +339 -0
  289. package/core/rendered_connection.d.ts +191 -0
  290. package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
  291. package/core/renderers/common/block_rendering.d.ts +114 -0
  292. package/core/renderers/common/block_rendering.ts +164 -0
  293. package/core/renderers/common/constants.d.ts +458 -0
  294. package/core/renderers/common/constants.ts +1124 -0
  295. package/core/renderers/common/debug.d.ts +28 -0
  296. package/core/renderers/common/{debug.js → debug.ts} +14 -20
  297. package/core/renderers/common/debugger.d.ts +120 -0
  298. package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
  299. package/core/renderers/common/drawer.d.ts +132 -0
  300. package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
  301. package/core/renderers/common/i_path_object.d.ts +117 -0
  302. package/core/renderers/common/i_path_object.ts +161 -0
  303. package/core/renderers/common/info.d.ts +194 -0
  304. package/core/renderers/common/{info.js → info.ts} +165 -222
  305. package/core/renderers/common/marker_svg.d.ts +220 -0
  306. package/core/renderers/common/marker_svg.ts +680 -0
  307. package/core/renderers/common/path_object.d.ts +146 -0
  308. package/core/renderers/common/path_object.ts +272 -0
  309. package/core/renderers/common/renderer.d.ts +157 -0
  310. package/core/renderers/common/renderer.ts +271 -0
  311. package/core/renderers/geras/constants.d.ts +23 -0
  312. package/core/renderers/geras/constants.ts +61 -0
  313. package/core/renderers/geras/drawer.d.ts +43 -0
  314. package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
  315. package/core/renderers/geras/geras.d.ts +11 -0
  316. package/core/renderers/geras/geras.ts +37 -0
  317. package/core/renderers/geras/highlight_constants.d.ts +108 -0
  318. package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
  319. package/core/renderers/geras/highlighter.d.ts +98 -0
  320. package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
  321. package/core/renderers/geras/info.d.ts +45 -0
  322. package/core/renderers/geras/{info.js → info.ts} +61 -99
  323. package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
  324. package/core/renderers/geras/measurables/inline_input.ts +51 -0
  325. package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
  326. package/core/renderers/geras/measurables/statement_input.ts +50 -0
  327. package/core/renderers/geras/path_object.d.ts +47 -0
  328. package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
  329. package/core/renderers/geras/renderer.d.ts +69 -0
  330. package/core/renderers/geras/renderer.ts +126 -0
  331. package/core/renderers/measurables/base.d.ts +27 -0
  332. package/core/renderers/measurables/base.ts +53 -0
  333. package/core/renderers/measurables/bottom_row.d.ts +61 -0
  334. package/core/renderers/measurables/bottom_row.ts +120 -0
  335. package/core/renderers/measurables/connection.d.ts +25 -0
  336. package/core/renderers/measurables/connection.ts +52 -0
  337. package/core/renderers/measurables/external_value_input.d.ts +27 -0
  338. package/core/renderers/measurables/external_value_input.ts +65 -0
  339. package/core/renderers/measurables/field.d.ts +30 -0
  340. package/core/renderers/measurables/field.ts +63 -0
  341. package/core/renderers/measurables/hat.d.ts +21 -0
  342. package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
  343. package/core/renderers/measurables/icon.d.ts +26 -0
  344. package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
  345. package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
  346. package/core/renderers/measurables/in_row_spacer.ts +44 -0
  347. package/core/renderers/measurables/inline_input.d.ts +24 -0
  348. package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
  349. package/core/renderers/measurables/input_connection.d.ts +29 -0
  350. package/core/renderers/measurables/input_connection.ts +66 -0
  351. package/core/renderers/measurables/input_row.d.ts +30 -0
  352. package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
  353. package/core/renderers/measurables/jagged_edge.d.ts +20 -0
  354. package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
  355. package/core/renderers/measurables/next_connection.d.ts +23 -0
  356. package/core/renderers/measurables/next_connection.ts +47 -0
  357. package/core/renderers/measurables/output_connection.d.ts +26 -0
  358. package/core/renderers/measurables/output_connection.ts +56 -0
  359. package/core/renderers/measurables/previous_connection.d.ts +23 -0
  360. package/core/renderers/measurables/previous_connection.ts +47 -0
  361. package/core/renderers/measurables/round_corner.d.ts +21 -0
  362. package/core/renderers/measurables/round_corner.ts +49 -0
  363. package/core/renderers/measurables/row.d.ts +141 -0
  364. package/core/renderers/measurables/row.ts +225 -0
  365. package/core/renderers/measurables/spacer_row.d.ts +29 -0
  366. package/core/renderers/measurables/spacer_row.ts +55 -0
  367. package/core/renderers/measurables/square_corner.d.ts +21 -0
  368. package/core/renderers/measurables/square_corner.ts +47 -0
  369. package/core/renderers/measurables/statement_input.d.ts +22 -0
  370. package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
  371. package/core/renderers/measurables/top_row.d.ts +56 -0
  372. package/core/renderers/measurables/top_row.ts +122 -0
  373. package/core/renderers/measurables/types.d.ts +235 -0
  374. package/core/renderers/measurables/types.ts +332 -0
  375. package/core/renderers/minimalist/constants.d.ts +14 -0
  376. package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
  377. package/core/renderers/minimalist/drawer.d.ts +21 -0
  378. package/core/renderers/minimalist/drawer.ts +38 -0
  379. package/core/renderers/minimalist/info.d.ts +30 -0
  380. package/core/renderers/minimalist/info.ts +52 -0
  381. package/core/renderers/minimalist/minimalist.d.ts +6 -0
  382. package/core/renderers/minimalist/minimalist.ts +22 -0
  383. package/core/renderers/minimalist/renderer.d.ts +41 -0
  384. package/core/renderers/minimalist/renderer.ts +71 -0
  385. package/core/renderers/thrasos/info.d.ts +40 -0
  386. package/core/renderers/thrasos/{info.js → info.ts} +66 -67
  387. package/core/renderers/thrasos/renderer.d.ts +25 -0
  388. package/core/renderers/thrasos/renderer.ts +48 -0
  389. package/core/renderers/thrasos/thrasos.d.ts +4 -0
  390. package/core/renderers/thrasos/thrasos.ts +20 -0
  391. package/core/renderers/zelos/constants.d.ts +186 -0
  392. package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
  393. package/core/renderers/zelos/drawer.d.ts +47 -0
  394. package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
  395. package/core/renderers/zelos/info.d.ts +88 -0
  396. package/core/renderers/zelos/{info.js → info.ts} +111 -142
  397. package/core/renderers/zelos/marker_svg.d.ts +46 -0
  398. package/core/renderers/zelos/marker_svg.ts +151 -0
  399. package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
  400. package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
  401. package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
  402. package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
  403. package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
  404. package/core/renderers/zelos/measurables/row_elements.ts +45 -0
  405. package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
  406. package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
  407. package/core/renderers/zelos/path_object.d.ts +77 -0
  408. package/core/renderers/zelos/path_object.ts +215 -0
  409. package/core/renderers/zelos/renderer.d.ts +74 -0
  410. package/core/renderers/zelos/renderer.ts +142 -0
  411. package/core/renderers/zelos/zelos.d.ts +12 -0
  412. package/core/renderers/zelos/zelos.ts +39 -0
  413. package/core/scrollbar.d.ts +277 -0
  414. package/core/{scrollbar.js → scrollbar.ts} +307 -328
  415. package/core/scrollbar_pair.d.ts +105 -0
  416. package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
  417. package/core/serialization/blocks.d.ts +98 -0
  418. package/core/serialization/{blocks.js → blocks.ts} +229 -228
  419. package/core/serialization/exceptions.d.ts +73 -0
  420. package/core/serialization/exceptions.ts +98 -0
  421. package/core/serialization/priorities.d.ts +15 -0
  422. package/core/serialization/{priorities.js → priorities.ts} +4 -10
  423. package/core/serialization/registry.d.ts +20 -0
  424. package/core/serialization/{registry.js → registry.ts} +11 -13
  425. package/core/serialization/variables.d.ts +14 -0
  426. package/core/serialization/{variables.js → variables.ts} +30 -32
  427. package/core/serialization/workspaces.d.ts +28 -0
  428. package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
  429. package/core/shortcut_items.d.ts +61 -0
  430. package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
  431. package/core/shortcut_registry.d.ts +151 -0
  432. package/core/shortcut_registry.ts +355 -0
  433. package/core/sprites.d.ts +19 -0
  434. package/core/{sprites.js → sprites.ts} +4 -6
  435. package/core/theme/classic.d.ts +12 -0
  436. package/core/theme/{classic.js → classic.ts} +5 -7
  437. package/core/theme/themes.d.ts +8 -0
  438. package/core/theme/themes.ts +22 -0
  439. package/core/theme/zelos.d.ts +11 -0
  440. package/core/theme/{zelos.js → zelos.ts} +4 -7
  441. package/core/theme.d.ts +142 -0
  442. package/core/theme.ts +221 -0
  443. package/core/theme_manager.d.ts +81 -0
  444. package/core/theme_manager.ts +186 -0
  445. package/core/toolbox/category.d.ts +239 -0
  446. package/core/toolbox/category.ts +679 -0
  447. package/core/toolbox/collapsible_category.d.ts +91 -0
  448. package/core/toolbox/collapsible_category.ts +273 -0
  449. package/core/toolbox/separator.d.ts +39 -0
  450. package/core/toolbox/separator.ts +105 -0
  451. package/core/toolbox/toolbox.d.ts +352 -0
  452. package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
  453. package/core/toolbox/toolbox_item.d.ts +85 -0
  454. package/core/toolbox/toolbox_item.ts +147 -0
  455. package/core/tooltip.d.ts +126 -0
  456. package/core/{tooltip.js → tooltip.ts} +136 -214
  457. package/core/touch.d.ts +121 -0
  458. package/core/touch.ts +306 -0
  459. package/core/touch_gesture.d.ts +115 -0
  460. package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
  461. package/core/trashcan.d.ts +195 -0
  462. package/core/{trashcan.js → trashcan.ts} +226 -312
  463. package/core/utils/aria.d.ts +67 -0
  464. package/core/utils/{aria.js → aria.ts} +47 -61
  465. package/core/utils/array.d.ts +14 -0
  466. package/core/utils/{array.js → array.ts} +10 -12
  467. package/core/utils/colour.d.ts +103 -0
  468. package/core/utils/{colour.js → colour.ts} +60 -72
  469. package/core/utils/coordinate.d.ts +72 -0
  470. package/core/utils/coordinate.ts +124 -0
  471. package/core/utils/deprecation.d.ts +17 -0
  472. package/core/utils/{deprecation.js → deprecation.ts} +11 -11
  473. package/core/utils/dom.d.ts +165 -0
  474. package/core/utils/{dom.js → dom.ts} +125 -147
  475. package/core/utils/idgenerator.d.ts +25 -0
  476. package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
  477. package/core/utils/keycodes.d.ts +137 -0
  478. package/core/utils/keycodes.ts +169 -0
  479. package/core/utils/math.d.ts +30 -0
  480. package/core/utils/{math.js → math.ts} +17 -19
  481. package/core/utils/metrics.d.ts +64 -0
  482. package/core/utils/metrics.ts +97 -0
  483. package/core/utils/object.d.ts +35 -0
  484. package/core/utils/{object.js → object.ts} +30 -26
  485. package/core/utils/parsing.d.ts +50 -0
  486. package/core/utils/{parsing.js → parsing.ts} +50 -50
  487. package/core/utils/rect.d.ts +38 -0
  488. package/core/utils/{rect.js → rect.ts} +18 -31
  489. package/core/utils/sentinel.d.ts +11 -0
  490. package/core/utils/{sentinel.js → sentinel.ts} +3 -5
  491. package/core/utils/size.d.ts +27 -0
  492. package/core/utils/{size.js → size.ts} +12 -26
  493. package/core/utils/string.d.ts +55 -0
  494. package/core/utils/{string.js → string.ts} +64 -61
  495. package/core/utils/style.d.ts +127 -0
  496. package/core/utils/{style.js → style.ts} +102 -92
  497. package/core/utils/svg.d.ts +68 -0
  498. package/core/utils/svg.ts +88 -0
  499. package/core/utils/svg_math.d.ts +70 -0
  500. package/core/utils/{svg_math.js → svg_math.ts} +72 -71
  501. package/core/utils/svg_paths.d.ts +101 -0
  502. package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
  503. package/core/utils/toolbox.d.ts +193 -0
  504. package/core/utils/toolbox.ts +433 -0
  505. package/core/utils/useragent.d.ts +33 -0
  506. package/core/utils/useragent.ts +135 -0
  507. package/core/utils/xml.d.ts +52 -0
  508. package/core/utils/{xml.js → xml.ts} +26 -36
  509. package/core/utils.d.ts +217 -0
  510. package/core/utils.ts +428 -0
  511. package/core/variable_map.d.ts +141 -0
  512. package/core/{variable_map.js → variable_map.ts} +131 -149
  513. package/core/variable_model.d.ts +40 -0
  514. package/core/variable_model.ts +82 -0
  515. package/core/variables.d.ts +181 -0
  516. package/core/{variables.js → variables.ts} +206 -188
  517. package/core/variables_dynamic.d.ts +38 -0
  518. package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
  519. package/core/warning.d.ts +50 -0
  520. package/core/{warning.js → warning.ts} +52 -66
  521. package/core/widgetdiv.d.ts +69 -0
  522. package/core/widgetdiv.ts +257 -0
  523. package/core/workspace.d.ts +386 -0
  524. package/core/workspace.ts +801 -0
  525. package/core/workspace_audio.d.ts +47 -0
  526. package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
  527. package/core/workspace_comment.d.ts +170 -0
  528. package/core/workspace_comment.ts +398 -0
  529. package/core/workspace_comment_svg.d.ts +329 -0
  530. package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
  531. package/core/workspace_drag_surface_svg.d.ts +68 -0
  532. package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
  533. package/core/workspace_dragger.d.ts +48 -0
  534. package/core/workspace_dragger.ts +104 -0
  535. package/core/workspace_svg.d.ts +920 -0
  536. package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
  537. package/core/xml.d.ts +117 -0
  538. package/core/{xml.js → xml.ts} +306 -326
  539. package/core/zoom_controls.d.ts +130 -0
  540. package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
  541. package/core.d.ts +1 -3
  542. package/core.js +1 -2
  543. package/dart.d.ts +0 -3
  544. package/dart_compressed.js +387 -99
  545. package/dart_compressed.js.map +1 -1
  546. package/generators/dart/all.js +2 -0
  547. package/generators/dart/colour.js +1 -1
  548. package/generators/dart/lists.js +1 -1
  549. package/generators/dart/logic.js +1 -1
  550. package/generators/dart/loops.js +1 -1
  551. package/generators/dart/math.js +1 -1
  552. package/generators/dart/procedures.js +1 -1
  553. package/generators/dart/text.js +1 -1
  554. package/generators/dart/variables.js +1 -1
  555. package/generators/dart/variables_dynamic.js +1 -1
  556. package/generators/dart.js +1 -2
  557. package/generators/javascript/all.js +2 -0
  558. package/generators/javascript/colour.js +1 -1
  559. package/generators/javascript/lists.js +1 -1
  560. package/generators/javascript/logic.js +1 -1
  561. package/generators/javascript/loops.js +1 -1
  562. package/generators/javascript/math.js +4 -4
  563. package/generators/javascript/procedures.js +1 -1
  564. package/generators/javascript/text.js +2 -2
  565. package/generators/javascript/variables.js +1 -1
  566. package/generators/javascript/variables_dynamic.js +1 -1
  567. package/generators/javascript.js +1 -3
  568. package/generators/lua/all.js +2 -0
  569. package/generators/lua/colour.js +1 -1
  570. package/generators/lua/lists.js +1 -1
  571. package/generators/lua/logic.js +1 -1
  572. package/generators/lua/loops.js +1 -1
  573. package/generators/lua/math.js +1 -1
  574. package/generators/lua/procedures.js +1 -1
  575. package/generators/lua/text.js +1 -1
  576. package/generators/lua/variables.js +1 -1
  577. package/generators/lua/variables_dynamic.js +1 -1
  578. package/generators/lua.js +1 -2
  579. package/generators/php/all.js +2 -0
  580. package/generators/php/colour.js +1 -1
  581. package/generators/php/lists.js +1 -2
  582. package/generators/php/logic.js +1 -1
  583. package/generators/php/loops.js +1 -1
  584. package/generators/php/math.js +1 -1
  585. package/generators/php/procedures.js +1 -1
  586. package/generators/php/text.js +1 -1
  587. package/generators/php/variables.js +1 -1
  588. package/generators/php/variables_dynamic.js +1 -1
  589. package/generators/php.js +1 -2
  590. package/generators/python/all.js +2 -0
  591. package/generators/python/colour.js +3 -3
  592. package/generators/python/lists.js +1 -1
  593. package/generators/python/logic.js +1 -1
  594. package/generators/python/loops.js +4 -7
  595. package/generators/python/math.js +1 -1
  596. package/generators/python/procedures.js +1 -1
  597. package/generators/python/text.js +1 -1
  598. package/generators/python/variables.js +1 -1
  599. package/generators/python/variables_dynamic.js +1 -1
  600. package/generators/python.js +1 -2
  601. package/index.d.ts +2 -8
  602. package/javascript.d.ts +0 -3
  603. package/javascript_compressed.js +314 -104
  604. package/javascript_compressed.js.map +1 -1
  605. package/lua.d.ts +0 -3
  606. package/lua_compressed.js +399 -81
  607. package/lua_compressed.js.map +1 -1
  608. package/package.json +5 -5
  609. package/php.d.ts +0 -3
  610. package/php_compressed.js +322 -93
  611. package/php_compressed.js.map +1 -1
  612. package/python.d.ts +0 -3
  613. package/python_compressed.js +237 -90
  614. package/python_compressed.js.map +1 -1
  615. package/blockly.d.ts +0 -26127
  616. package/core/blockly_options.js +0 -28
  617. package/core/bubble_dragger.js +0 -298
  618. package/core/clipboard.js +0 -80
  619. package/core/component_manager.js +0 -263
  620. package/core/contextmenu_items.js +0 -651
  621. package/core/contextmenu_registry.js +0 -178
  622. package/core/delete_area.js +0 -87
  623. package/core/dialog.js +0 -107
  624. package/core/drag_target.js +0 -98
  625. package/core/events/events.js +0 -147
  626. package/core/events/events_abstract.js +0 -133
  627. package/core/events/events_block_base.js +0 -70
  628. package/core/events/events_block_drag.js +0 -89
  629. package/core/events/events_bubble_open.js +0 -90
  630. package/core/events/events_comment_base.js +0 -121
  631. package/core/events/events_marker_move.js +0 -110
  632. package/core/events/events_selected.js +0 -83
  633. package/core/events/events_toolbox_item_select.js +0 -84
  634. package/core/events/events_trashcan_open.js +0 -73
  635. package/core/events/events_var_base.js +0 -70
  636. package/core/events/events_viewport.js +0 -107
  637. package/core/events/workspace_events.js +0 -93
  638. package/core/field_angle.js +0 -591
  639. package/core/field_checkbox.js +0 -255
  640. package/core/field_colour.js +0 -717
  641. package/core/field_image.js +0 -304
  642. package/core/field_label.js +0 -149
  643. package/core/field_label_serializable.js +0 -80
  644. package/core/field_textinput.js +0 -619
  645. package/core/flyout_button.js +0 -356
  646. package/core/grid.js +0 -226
  647. package/core/icon.js +0 -225
  648. package/core/input.js +0 -335
  649. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  650. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  651. package/core/interfaces/i_autohideable.js +0 -40
  652. package/core/interfaces/i_block_dragger.js +0 -66
  653. package/core/interfaces/i_bounded_element.js +0 -45
  654. package/core/interfaces/i_bubble.js +0 -95
  655. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  656. package/core/interfaces/i_connection_checker.js +0 -104
  657. package/core/interfaces/i_contextmenu.js +0 -32
  658. package/core/interfaces/i_copyable.js +0 -49
  659. package/core/interfaces/i_delete_area.js +0 -50
  660. package/core/interfaces/i_drag_target.js +0 -88
  661. package/core/interfaces/i_flyout.js +0 -201
  662. package/core/interfaces/i_keyboard_accessible.js +0 -38
  663. package/core/interfaces/i_metrics_manager.js +0 -154
  664. package/core/interfaces/i_positionable.js +0 -51
  665. package/core/interfaces/i_selectable.js +0 -51
  666. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  667. package/core/interfaces/i_serializer.js +0 -77
  668. package/core/interfaces/i_styleable.js +0 -39
  669. package/core/interfaces/i_toolbox.js +0 -142
  670. package/core/interfaces/i_toolbox_item.js +0 -85
  671. package/core/marker_manager.js +0 -213
  672. package/core/menuitem.js +0 -292
  673. package/core/names.js +0 -293
  674. package/core/registry.js +0 -384
  675. package/core/renderers/common/block_rendering.js +0 -170
  676. package/core/renderers/common/constants.js +0 -1250
  677. package/core/renderers/common/i_path_object.js +0 -162
  678. package/core/renderers/common/marker_svg.js +0 -721
  679. package/core/renderers/common/path_object.js +0 -283
  680. package/core/renderers/common/renderer.js +0 -305
  681. package/core/renderers/geras/constants.js +0 -73
  682. package/core/renderers/geras/geras.js +0 -36
  683. package/core/renderers/geras/measurables/inline_input.js +0 -58
  684. package/core/renderers/geras/measurables/statement_input.js +0 -57
  685. package/core/renderers/geras/renderer.js +0 -149
  686. package/core/renderers/measurables/base.js +0 -64
  687. package/core/renderers/measurables/bottom_row.js +0 -138
  688. package/core/renderers/measurables/connection.js +0 -56
  689. package/core/renderers/measurables/external_value_input.js +0 -70
  690. package/core/renderers/measurables/field.js +0 -71
  691. package/core/renderers/measurables/in_row_spacer.js +0 -47
  692. package/core/renderers/measurables/input_connection.js +0 -75
  693. package/core/renderers/measurables/next_connection.js +0 -50
  694. package/core/renderers/measurables/output_connection.js +0 -61
  695. package/core/renderers/measurables/previous_connection.js +0 -50
  696. package/core/renderers/measurables/round_corner.js +0 -52
  697. package/core/renderers/measurables/row.js +0 -247
  698. package/core/renderers/measurables/spacer_row.js +0 -69
  699. package/core/renderers/measurables/square_corner.js +0 -50
  700. package/core/renderers/measurables/top_row.js +0 -143
  701. package/core/renderers/measurables/types.js +0 -353
  702. package/core/renderers/minimalist/drawer.js +0 -42
  703. package/core/renderers/minimalist/info.js +0 -54
  704. package/core/renderers/minimalist/minimalist.js +0 -26
  705. package/core/renderers/minimalist/renderer.js +0 -80
  706. package/core/renderers/thrasos/renderer.js +0 -53
  707. package/core/renderers/thrasos/thrasos.js +0 -22
  708. package/core/renderers/zelos/marker_svg.js +0 -179
  709. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  710. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  711. package/core/renderers/zelos/path_object.js +0 -247
  712. package/core/renderers/zelos/renderer.js +0 -147
  713. package/core/renderers/zelos/zelos.js +0 -38
  714. package/core/serialization/exceptions.js +0 -144
  715. package/core/shortcut_registry.js +0 -366
  716. package/core/theme/themes.js +0 -23
  717. package/core/theme.js +0 -228
  718. package/core/theme_manager.js +0 -211
  719. package/core/toolbox/category.js +0 -751
  720. package/core/toolbox/collapsible_category.js +0 -311
  721. package/core/toolbox/separator.js +0 -133
  722. package/core/toolbox/toolbox_item.js +0 -173
  723. package/core/touch.js +0 -285
  724. package/core/utils/coordinate.js +0 -138
  725. package/core/utils/global.js +0 -41
  726. package/core/utils/keycodes.js +0 -172
  727. package/core/utils/metrics.js +0 -154
  728. package/core/utils/svg.js +0 -186
  729. package/core/utils/toolbox.js +0 -459
  730. package/core/utils/useragent.js +0 -197
  731. package/core/utils.js +0 -383
  732. package/core/variable_model.js +0 -96
  733. package/core/widgetdiv.js +0 -290
  734. package/core/workspace.js +0 -836
  735. package/core/workspace_comment.js +0 -400
  736. package/core/workspace_dragger.js +0 -115
@@ -8,34 +8,30 @@
8
8
  * @fileoverview Methods for adding highlights on block, for rendering in
9
9
  * compatibility mode.
10
10
  */
11
- 'use strict';
12
11
 
13
12
  /**
14
13
  * Methods for adding highlights on block, for rendering in
15
14
  * compatibility mode.
16
15
  * @class
17
16
  */
18
- goog.module('Blockly.geras.Highlighter');
17
+ import * as goog from '../../../closure/goog/goog.js';
18
+ goog.declareModuleId('Blockly.geras.Highlighter');
19
19
 
20
- const svgPaths = goog.require('Blockly.utils.svgPaths');
21
20
  /* eslint-disable-next-line no-unused-vars */
22
- const {BottomRow} = goog.require('Blockly.blockRendering.BottomRow');
23
- /* eslint-disable-next-line no-unused-vars */
24
- const {ConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProvider');
25
- /* eslint-disable-next-line no-unused-vars */
26
- const {HighlightConstantProvider} = goog.requireType('Blockly.geras.HighlightConstantProvider');
27
- /* eslint-disable-next-line no-unused-vars */
28
- const {InlineInput} = goog.require('Blockly.geras.InlineInput');
29
- /* eslint-disable-next-line no-unused-vars */
30
- const {RenderInfo} = goog.requireType('Blockly.geras.RenderInfo');
31
- /* eslint-disable-next-line no-unused-vars */
32
- const {Renderer} = goog.requireType('Blockly.geras.Renderer');
33
- /* eslint-disable-next-line no-unused-vars */
34
- const {Row} = goog.requireType('Blockly.blockRendering.Row');
35
- const {SpacerRow} = goog.require('Blockly.blockRendering.SpacerRow');
36
- /* eslint-disable-next-line no-unused-vars */
37
- const {TopRow} = goog.require('Blockly.blockRendering.TopRow');
38
- const {Types} = goog.require('Blockly.blockRendering.Types');
21
+ // Unused import preserved for side-effects. Remove if unneeded.
22
+ // import './renderer.js';
23
+
24
+ import * as svgPaths from '../../utils/svg_paths.js';
25
+ import type {ConstantProvider} from '../common/constants.js';
26
+ import type {BottomRow} from '../measurables/bottom_row.js';
27
+ import type {Row} from '../measurables/row.js';
28
+ import {SpacerRow} from '../measurables/spacer_row.js';
29
+ import type {TopRow} from '../measurables/top_row.js';
30
+ import {Types} from '../measurables/types.js';
31
+
32
+ import type {HighlightConstantProvider, InsideCorner, JaggedTeeth, Notch, OutsideCorner, PuzzleTab, StartHat} from './highlight_constants.js';
33
+ import type {RenderInfo} from './info.js';
34
+ import type {InlineInput} from './measurables/inline_input.js';
39
35
 
40
36
 
41
37
  /**
@@ -50,36 +46,38 @@ const {Types} = goog.require('Blockly.blockRendering.Types');
50
46
  * tab and notch shapes, but are not exactly the same.
51
47
  * @alias Blockly.geras.Highlighter
52
48
  */
53
- class Highlighter {
49
+ export class Highlighter {
50
+ info_: RenderInfo;
51
+ steps_ = '';
52
+ inlineSteps_ = '';
53
+ RTL_: boolean;
54
+ constants_: ConstantProvider;
55
+ highlightConstants_: HighlightConstantProvider;
56
+ private readonly highlightOffset_: number;
57
+ outsideCornerPaths_: OutsideCorner;
58
+ insideCornerPaths_: InsideCorner;
59
+ puzzleTabPaths_: PuzzleTab;
60
+ notchPaths_: Notch;
61
+ startPaths_: StartHat;
62
+ jaggedTeethPaths_: JaggedTeeth;
63
+
54
64
  /**
55
- * @param {!RenderInfo} info An object containing all
56
- * information needed to render this block.
57
- * @package
65
+ * @param info An object containing all information needed to render this
66
+ * block.
67
+ * @internal
58
68
  */
59
- constructor(info) {
69
+ constructor(info: RenderInfo) {
60
70
  this.info_ = info;
61
- this.steps_ = '';
62
- this.inlineSteps_ = '';
63
71
 
64
72
  this.RTL_ = this.info_.RTL;
65
73
 
66
- const renderer = /** @type {!Renderer} */ (info.getRenderer());
74
+ const renderer = (info.getRenderer());
67
75
 
68
- /**
69
- * The renderer's constant provider.
70
- * @type {!ConstantProvider}
71
- */
76
+ /** The renderer's constant provider. */
72
77
  this.constants_ = renderer.getConstants();
73
78
 
74
- /**
75
- * @type {!HighlightConstantProvider}
76
- */
77
79
  this.highlightConstants_ = renderer.getHighlightConstants();
78
- /**
79
- * The offset between the block's main path and highlight path.
80
- * @type {number}
81
- * @private
82
- */
80
+ /** The offset between the block's main path and highlight path. */
83
81
  this.highlightOffset_ = this.highlightConstants_.OFFSET;
84
82
 
85
83
  this.outsideCornerPaths_ = this.highlightConstants_.OUTSIDE_CORNER;
@@ -92,21 +90,21 @@ class Highlighter {
92
90
 
93
91
  /**
94
92
  * Get the steps for the highlight path.
95
- * @return {string} The steps for the highlight path.
96
- * @package
93
+ * @return The steps for the highlight path.
94
+ * @internal
97
95
  */
98
- getPath() {
96
+ getPath(): string {
99
97
  return this.steps_ + '\n' + this.inlineSteps_;
100
98
  }
101
99
 
102
100
  /**
103
101
  * Add a highlight to the top corner of a block.
104
- * @param {!TopRow} row The top row of the block.
105
- * @package
102
+ * @param row The top row of the block.
103
+ * @internal
106
104
  */
107
- drawTopCorner(row) {
105
+ drawTopCorner(row: TopRow) {
108
106
  this.steps_ += svgPaths.moveBy(row.xPos, this.info_.startY);
109
- for (let i = 0, elem; (elem = row.elements[i]); i++) {
107
+ for (let i = 0, elem; elem = row.elements[i]; i++) {
110
108
  if (Types.isLeftSquareCorner(elem)) {
111
109
  this.steps_ += this.highlightConstants_.START_POINT;
112
110
  } else if (Types.isLeftRoundedCorner(elem)) {
@@ -131,10 +129,10 @@ class Highlighter {
131
129
 
132
130
  /**
133
131
  * Add a highlight on a jagged edge for a collapsed block.
134
- * @param {!Row} row The row to highlight.
135
- * @package
132
+ * @param row The row to highlight.
133
+ * @internal
136
134
  */
137
- drawJaggedEdge_(row) {
135
+ drawJaggedEdge_(row: Row) {
138
136
  if (this.info_.RTL) {
139
137
  const remainder =
140
138
  row.height - this.jaggedTeethPaths_.height - this.highlightOffset_;
@@ -145,11 +143,11 @@ class Highlighter {
145
143
 
146
144
  /**
147
145
  * Add a highlight on a value input.
148
- * @param {!Row} row The row the input belongs to.
149
- * @package
146
+ * @param row The row the input belongs to.
147
+ * @internal
150
148
  */
151
- drawValueInput(row) {
152
- const input = /** @type {!InlineInput}} */ (row.getLastInput());
149
+ drawValueInput(row: Row) {
150
+ const input = row.getLastInput() as InlineInput;
153
151
  if (this.RTL_) {
154
152
  const belowTabHeight = row.height - input.connectionHeight;
155
153
 
@@ -166,13 +164,13 @@ class Highlighter {
166
164
 
167
165
  /**
168
166
  * Add a highlight on a statement input.
169
- * @param {!Row} row The row to highlight.
170
- * @package
167
+ * @param row The row to highlight.
168
+ * @internal
171
169
  */
172
- drawStatementInput(row) {
170
+ drawStatementInput(row: Row) {
173
171
  const input = row.getLastInput();
174
172
  if (this.RTL_) {
175
- const innerHeight = row.height - (2 * this.insideCornerPaths_.height);
173
+ const innerHeight = row.height - 2 * this.insideCornerPaths_.height;
176
174
  this.steps_ += svgPaths.moveTo(input.xPos, row.yPos) +
177
175
  this.insideCornerPaths_.pathTop(this.RTL_) +
178
176
  svgPaths.lineOnAxis('v', innerHeight) +
@@ -189,10 +187,10 @@ class Highlighter {
189
187
 
190
188
  /**
191
189
  * Add a highlight on the right side of a row.
192
- * @param {!Row} row The row to highlight.
193
- * @package
190
+ * @param row The row to highlight.
191
+ * @internal
194
192
  */
195
- drawRightSideRow(row) {
193
+ drawRightSideRow(row: Row) {
196
194
  const rightEdge = row.xPos + row.width - this.highlightOffset_;
197
195
  if (row instanceof SpacerRow && row.followsStatement) {
198
196
  this.steps_ += svgPaths.lineOnAxis('H', rightEdge);
@@ -208,10 +206,10 @@ class Highlighter {
208
206
 
209
207
  /**
210
208
  * Add a highlight to the bottom row.
211
- * @param {!BottomRow} row The row to highlight.
212
- * @package
209
+ * @param row The row to highlight.
210
+ * @internal
213
211
  */
214
- drawBottomRow(row) {
212
+ drawBottomRow(row: BottomRow) {
215
213
  // Highlight the vertical edge of the bottom row on the input side.
216
214
  // Highlighting is always from the top left, both in LTR and RTL.
217
215
  if (this.RTL_) {
@@ -232,7 +230,7 @@ class Highlighter {
232
230
 
233
231
  /**
234
232
  * Draw the highlight on the left side of the block.
235
- * @package
233
+ * @internal
236
234
  */
237
235
  drawLeft() {
238
236
  const outputConnection = this.info_.outputConnection;
@@ -265,10 +263,10 @@ class Highlighter {
265
263
 
266
264
  /**
267
265
  * Add a highlight to an inline input.
268
- * @param {!InlineInput} input The input to highlight.
269
- * @package
266
+ * @param input The input to highlight.
267
+ * @internal
270
268
  */
271
- drawInlineInput(input) {
269
+ drawInlineInput(input: InlineInput) {
272
270
  const offset = this.highlightOffset_;
273
271
 
274
272
  // Relative to the block's left.
@@ -284,28 +282,25 @@ class Highlighter {
284
282
 
285
283
  const startX = connectionRight - offset;
286
284
 
287
- this.inlineSteps_ += svgPaths.moveTo(startX, startY) +
288
- // Right edge above tab.
289
- svgPaths.lineOnAxis('v', aboveTabHeight) +
290
- // Back of tab.
291
- this.puzzleTabPaths_.pathDown(this.RTL_) +
292
- // Right edge below tab.
293
- svgPaths.lineOnAxis('v', belowTabHeight) +
294
- // Bottom.
285
+ this.inlineSteps_ +=
286
+ svgPaths.moveTo(startX, startY) + // Right edge above tab.
287
+ svgPaths.lineOnAxis('v', aboveTabHeight) + // Back of tab.
288
+ this.puzzleTabPaths_.pathDown(this.RTL_) + // Right edge below tab.
289
+ svgPaths.lineOnAxis('v', belowTabHeight) + // Bottom.
295
290
  svgPaths.lineOnAxis('h', bottomHighlightWidth);
296
291
  } else {
297
- this.inlineSteps_ +=
298
- // Go to top right corner.
299
- svgPaths.moveTo(input.xPos + input.width + offset, startY) +
300
- // Highlight right edge, bottom.
292
+ this.inlineSteps_ += // Go to top right corner.
293
+ svgPaths.moveTo(
294
+ input.xPos + input.width + offset,
295
+ startY) + // Highlight right edge, bottom.
301
296
  svgPaths.lineOnAxis('v', input.height) +
302
- svgPaths.lineOnAxis('h', -bottomHighlightWidth) +
303
- // Go to top of tab.
304
- svgPaths.moveTo(connectionRight, yPos + input.connectionOffsetY) +
305
- // Short highlight glint at bottom of tab.
297
+ svgPaths.lineOnAxis(
298
+ 'h', -bottomHighlightWidth) + // Go to top of tab.
299
+ svgPaths.moveTo(
300
+ connectionRight,
301
+ yPos + input.connectionOffsetY) + // Short highlight glint at
302
+ // bottom of tab.
306
303
  this.puzzleTabPaths_.pathDown(this.RTL_);
307
304
  }
308
305
  }
309
306
  }
310
-
311
- exports.Highlighter = Highlighter;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { BlockSvg } from '../../block_svg.js';
7
+ import type { Input } from '../../input.js';
8
+ import { RenderInfo as BaseRenderInfo } from '../common/info.js';
9
+ import type { Measurable } from '../measurables/base.js';
10
+ import type { Row } from '../measurables/row.js';
11
+ import type { ConstantProvider } from './constants.js';
12
+ import type { Renderer } from './renderer.js';
13
+ /**
14
+ * An object containing all sizing information needed to draw this block.
15
+ *
16
+ * This measure pass does not propagate changes to the block (although fields
17
+ * may choose to rerender when getSize() is called). However, calling it
18
+ * repeatedly may be expensive.
19
+ * @alias Blockly.geras.RenderInfo
20
+ */
21
+ export declare class RenderInfo extends BaseRenderInfo {
22
+ constants_: ConstantProvider;
23
+ protected readonly renderer_: Renderer;
24
+ /**
25
+ * @param renderer The renderer in use.
26
+ * @param block The block to measure.
27
+ * @internal
28
+ */
29
+ constructor(renderer: Renderer, block: BlockSvg);
30
+ /**
31
+ * Get the block renderer in use.
32
+ * @return The block renderer in use.
33
+ * @internal
34
+ */
35
+ getRenderer(): Renderer;
36
+ populateBottomRow_(): void;
37
+ addInput_(input: Input, activeRow: Row): void;
38
+ addElemSpacing_(): void;
39
+ getInRowSpacing_(prev: Measurable | null, next: Measurable | null): number;
40
+ getSpacerRowHeight_(prev: Row, next: Row): number;
41
+ getElemCenterline_(row: Row, elem: Measurable): number;
42
+ alignRowElements_(): void;
43
+ getDesiredRowWidth_(row: Row): number;
44
+ finalize_(): void;
45
+ }
@@ -8,36 +8,33 @@
8
8
  * @fileoverview Old (compatibility) renderer.
9
9
  * Geras: spirit of old age.
10
10
  */
11
- 'use strict';
12
11
 
13
12
  /**
14
13
  * Old (compatibility) renderer.
15
14
  * Geras: spirit of old age.
16
15
  * @class
17
16
  */
18
- goog.module('Blockly.geras.RenderInfo');
19
-
20
- /* eslint-disable-next-line no-unused-vars */
21
- const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
22
- /* eslint-disable-next-line no-unused-vars */
23
- const {BottomRow} = goog.requireType('Blockly.blockRendering.BottomRow');
24
- /* eslint-disable-next-line no-unused-vars */
25
- const {ConstantProvider} = goog.requireType('Blockly.geras.ConstantProvider');
26
- const {ExternalValueInput} = goog.require('Blockly.blockRendering.ExternalValueInput');
27
- /* eslint-disable-next-line no-unused-vars */
28
- const {Field} = goog.requireType('Blockly.blockRendering.Field');
29
- const {InRowSpacer} = goog.require('Blockly.blockRendering.InRowSpacer');
30
- const {InlineInput} = goog.require('Blockly.geras.InlineInput');
31
- /* eslint-disable-next-line no-unused-vars */
32
- const {InputRow} = goog.requireType('Blockly.blockRendering.InputRow');
33
- const {RenderInfo: BaseRenderInfo} = goog.require('Blockly.blockRendering.RenderInfo');
34
- /* eslint-disable-next-line no-unused-vars */
35
- const {Renderer} = goog.requireType('Blockly.geras.Renderer');
36
- const {StatementInput} = goog.require('Blockly.geras.StatementInput');
37
- /* eslint-disable-next-line no-unused-vars */
38
- const {TopRow} = goog.requireType('Blockly.blockRendering.TopRow');
39
- const {Types} = goog.require('Blockly.blockRendering.Types');
40
- const {inputTypes} = goog.require('Blockly.inputTypes');
17
+ import * as goog from '../../../closure/goog/goog.js';
18
+ goog.declareModuleId('Blockly.geras.RenderInfo');
19
+
20
+ import type {BlockSvg} from '../../block_svg.js';
21
+ import type {Input} from '../../input.js';
22
+ import {inputTypes} from '../../input_types.js';
23
+ import {RenderInfo as BaseRenderInfo} from '../common/info.js';
24
+ import type {Measurable} from '../measurables/base.js';
25
+ import type {BottomRow} from '../measurables/bottom_row.js';
26
+ import {ExternalValueInput} from '../measurables/external_value_input.js';
27
+ import type {Field} from '../measurables/field.js';
28
+ import {InRowSpacer} from '../measurables/in_row_spacer.js';
29
+ import type {InputRow} from '../measurables/input_row.js';
30
+ import type {Row} from '../measurables/row.js';
31
+ import type {TopRow} from '../measurables/top_row.js';
32
+ import {Types} from '../measurables/types.js';
33
+
34
+ import type {ConstantProvider} from './constants.js';
35
+ import {InlineInput} from './measurables/inline_input.js';
36
+ import {StatementInput} from './measurables/statement_input.js';
37
+ import type {Renderer} from './renderer.js';
41
38
 
42
39
 
43
40
  /**
@@ -46,41 +43,39 @@ const {inputTypes} = goog.require('Blockly.inputTypes');
46
43
  * This measure pass does not propagate changes to the block (although fields
47
44
  * may choose to rerender when getSize() is called). However, calling it
48
45
  * repeatedly may be expensive.
49
- * @extends {BaseRenderInfo}
50
46
  * @alias Blockly.geras.RenderInfo
51
47
  */
52
- class RenderInfo extends BaseRenderInfo {
48
+ export class RenderInfo extends BaseRenderInfo {
49
+ // TODO(b/109816955): remove '!', see go/strict-prop-init-fix.
50
+ override constants_!: ConstantProvider;
51
+
52
+ protected override readonly renderer_: Renderer;
53
+
53
54
  /**
54
- * @param {!Renderer} renderer The renderer in use.
55
- * @param {!BlockSvg} block The block to measure.
56
- * @package
55
+ * @param renderer The renderer in use.
56
+ * @param block The block to measure.
57
+ * @internal
57
58
  */
58
- constructor(renderer, block) {
59
+ constructor(renderer: Renderer, block: BlockSvg) {
59
60
  super(renderer, block);
60
-
61
- /** @type {!ConstantProvider} */
62
- this.constants_;
61
+ this.renderer_ = renderer;
63
62
  }
64
63
 
65
64
  /**
66
65
  * Get the block renderer in use.
67
- * @return {!Renderer} The block renderer in use.
68
- * @package
66
+ * @return The block renderer in use.
67
+ * @internal
69
68
  */
70
- getRenderer() {
71
- return /** @type {!Renderer} */ (this.renderer_);
69
+ override getRenderer(): Renderer {
70
+ return this.renderer_;
72
71
  }
73
72
 
74
- /**
75
- * @override
76
- */
77
- populateBottomRow_() {
73
+ override populateBottomRow_() {
78
74
  super.populateBottomRow_();
79
75
 
80
76
  const followsStatement = this.block_.inputList.length &&
81
77
  this.block_.inputList[this.block_.inputList.length - 1].type ===
82
78
  inputTypes.STATEMENT;
83
-
84
79
  // The minimum height of the bottom row is smaller in Geras than in other
85
80
  // renderers, because the dark path adds a pixel.
86
81
  // If one of the row's elements has a greater height this will be
@@ -91,10 +86,7 @@ class RenderInfo extends BaseRenderInfo {
91
86
  }
92
87
  }
93
88
 
94
- /**
95
- * @override
96
- */
97
- addInput_(input, activeRow) {
89
+ override addInput_(input: Input, activeRow: Row) {
98
90
  // Non-dummy inputs have visual representations onscreen.
99
91
  if (this.isInline && input.type === inputTypes.VALUE) {
100
92
  activeRow.elements.push(new InlineInput(this.constants_, input));
@@ -118,17 +110,14 @@ class RenderInfo extends BaseRenderInfo {
118
110
  }
119
111
  }
120
112
 
121
- /**
122
- * @override
123
- */
124
- addElemSpacing_() {
113
+ override addElemSpacing_() {
125
114
  let hasExternalInputs = false;
126
- for (let i = 0, row; (row = this.rows[i]); i++) {
115
+ for (let i = 0, row; row = this.rows[i]; i++) {
127
116
  if (row.hasExternalInput) {
128
117
  hasExternalInputs = true;
129
118
  }
130
119
  }
131
- for (let i = 0, row; (row = this.rows[i]); i++) {
120
+ for (let i = 0, row; row = this.rows[i]; i++) {
132
121
  const oldElems = row.elements;
133
122
  row.elements = [];
134
123
  // No spacing needed before the corner on the top row or the bottom row.
@@ -158,14 +147,10 @@ class RenderInfo extends BaseRenderInfo {
158
147
  }
159
148
  }
160
149
 
161
- /**
162
- * @override
163
- */
164
- getInRowSpacing_(prev, next) {
150
+ override getInRowSpacing_(prev: Measurable|null, next: Measurable|null) {
165
151
  if (!prev) {
166
152
  // Between an editable field and the beginning of the row.
167
- if (next && Types.isField(next) &&
168
- (/** @type {Field} */ (next)).isEditable) {
153
+ if (next && Types.isField(next) && (next as Field).isEditable) {
169
154
  return this.constants_.MEDIUM_PADDING;
170
155
  }
171
156
  // Inline input at the beginning of the row.
@@ -182,12 +167,12 @@ class RenderInfo extends BaseRenderInfo {
182
167
  // Spacing between a non-input and the end of the row or a statement input.
183
168
  if (!Types.isInput(prev) && (!next || Types.isStatementInput(next))) {
184
169
  // Between an editable field and the end of the row.
185
- if (Types.isField(prev) && (/** @type {Field} */ (prev)).isEditable) {
170
+ if (Types.isField(prev) && (prev as Field).isEditable) {
186
171
  return this.constants_.MEDIUM_PADDING;
187
172
  }
188
173
  // Padding at the end of an icon-only row to make the block shape clearer.
189
174
  if (Types.isIcon(prev)) {
190
- return (this.constants_.LARGE_PADDING * 2) + 1;
175
+ return this.constants_.LARGE_PADDING * 2 + 1;
191
176
  }
192
177
  if (Types.isHat(prev)) {
193
178
  return this.constants_.NO_PADDING;
@@ -223,7 +208,7 @@ class RenderInfo extends BaseRenderInfo {
223
208
  // Spacing between a non-input and an input.
224
209
  if (!Types.isInput(prev) && next && Types.isInput(next)) {
225
210
  // Between an editable field and an input.
226
- if (Types.isField(prev) && (/** @type {Field} */ (prev)).isEditable) {
211
+ if (Types.isField(prev) && (prev as Field).isEditable) {
227
212
  if (Types.isInlineInput(next)) {
228
213
  return this.constants_.SMALL_PADDING;
229
214
  } else if (Types.isExternalInput(next)) {
@@ -245,11 +230,10 @@ class RenderInfo extends BaseRenderInfo {
245
230
  if (Types.isIcon(prev) && next && !Types.isInput(next)) {
246
231
  return this.constants_.LARGE_PADDING;
247
232
  }
248
-
249
233
  // Spacing between an inline input and a field.
250
234
  if (Types.isInlineInput(prev) && next && Types.isField(next)) {
251
235
  // Editable field after inline input.
252
- if ((/** @type {Field} */ (next)).isEditable) {
236
+ if ((next as Field).isEditable) {
253
237
  return this.constants_.MEDIUM_PADDING;
254
238
  } else {
255
239
  // Noneditable field after inline input.
@@ -291,8 +275,7 @@ class RenderInfo extends BaseRenderInfo {
291
275
 
292
276
  // Spacing between two fields of the same editability.
293
277
  if (Types.isField(prev) && next && Types.isField(next) &&
294
- ((/** @type {Field} */ (prev)).isEditable ===
295
- (/** @type {Field} */ (next)).isEditable)) {
278
+ (prev as Field).isEditable === (next as Field).isEditable) {
296
279
  return this.constants_.LARGE_PADDING;
297
280
  }
298
281
 
@@ -304,10 +287,7 @@ class RenderInfo extends BaseRenderInfo {
304
287
  return this.constants_.MEDIUM_PADDING;
305
288
  }
306
289
 
307
- /**
308
- * @override
309
- */
310
- getSpacerRowHeight_(prev, next) {
290
+ override getSpacerRowHeight_(prev: Row, next: Row) {
311
291
  // If we have an empty block add a spacer to increase the height.
312
292
  if (Types.isTopRow(prev) && Types.isBottomRow(next)) {
313
293
  return this.constants_.EMPTY_BLOCK_SPACER_HEIGHT;
@@ -334,15 +314,12 @@ class RenderInfo extends BaseRenderInfo {
334
314
  return this.constants_.MEDIUM_PADDING;
335
315
  }
336
316
 
337
- /**
338
- * @override
339
- */
340
- getElemCenterline_(row, elem) {
317
+ override getElemCenterline_(row: Row, elem: Measurable) {
341
318
  if (Types.isSpacer(elem)) {
342
319
  return row.yPos + elem.height / 2;
343
320
  }
344
321
  if (Types.isBottomRow(row)) {
345
- const bottomRow = /** @type {!BottomRow} */ (row);
322
+ const bottomRow = row as BottomRow;
346
323
  const baseline =
347
324
  bottomRow.yPos + bottomRow.height - bottomRow.descenderHeight;
348
325
  if (Types.isNextConnection(elem)) {
@@ -351,7 +328,7 @@ class RenderInfo extends BaseRenderInfo {
351
328
  return baseline - elem.height / 2;
352
329
  }
353
330
  if (Types.isTopRow(row)) {
354
- const topRow = /** @type {!TopRow} */ (row);
331
+ const topRow = row as TopRow;
355
332
  if (Types.isHat(elem)) {
356
333
  return topRow.capline - elem.height / 2;
357
334
  }
@@ -360,7 +337,7 @@ class RenderInfo extends BaseRenderInfo {
360
337
 
361
338
  let result = row.yPos;
362
339
  if (Types.isField(elem) || Types.isIcon(elem)) {
363
- result += (elem.height / 2);
340
+ result += elem.height / 2;
364
341
  if ((row.hasInlineInput || row.hasStatement) &&
365
342
  elem.height + this.constants_.TALL_INPUT_FIELD_OFFSET_Y <=
366
343
  row.height) {
@@ -369,31 +346,26 @@ class RenderInfo extends BaseRenderInfo {
369
346
  } else if (Types.isInlineInput(elem)) {
370
347
  result += elem.height / 2;
371
348
  } else {
372
- result += (row.height / 2);
349
+ result += row.height / 2;
373
350
  }
374
351
  return result;
375
352
  }
376
353
 
377
- /**
378
- * @override
379
- */
380
- alignRowElements_() {
354
+ override alignRowElements_() {
381
355
  if (!this.isInline) {
382
356
  super.alignRowElements_();
383
357
  return;
384
358
  }
385
-
386
359
  // Walk backgrounds through rows on the block, keeping track of the right
387
360
  // input edge.
388
361
  let nextRightEdge = 0;
389
362
  const rowNextRightEdges = new WeakMap();
390
363
  let prevInput = null;
391
- for (let i = this.rows.length - 1, row; (row = this.rows[i]); i--) {
364
+ for (let i = this.rows.length - 1, row; row = this.rows[i]; i--) {
392
365
  rowNextRightEdges.set(row, nextRightEdge);
393
366
  if (Types.isInputRow(row)) {
394
367
  if (row.hasStatement) {
395
- this.alignStatementRow_(
396
- /** @type {!InputRow} */ (row));
368
+ this.alignStatementRow_(row as InputRow);
397
369
  }
398
370
  if (prevInput && prevInput.hasStatement &&
399
371
  row.width < prevInput.width) {
@@ -407,7 +379,7 @@ class RenderInfo extends BaseRenderInfo {
407
379
  // Walk down each row from the top, comparing the prev and next right input
408
380
  // edges and setting the desired width to the max of the two.
409
381
  let prevRightEdge = 0;
410
- for (let i = 0, row; (row = this.rows[i]); i++) {
382
+ for (let i = 0, row; row = this.rows[i]; i++) {
411
383
  if (row.hasStatement) {
412
384
  prevRightEdge = this.getDesiredRowWidth_(row);
413
385
  } else if (Types.isSpacer(row)) {
@@ -426,10 +398,7 @@ class RenderInfo extends BaseRenderInfo {
426
398
  }
427
399
  }
428
400
 
429
- /**
430
- * @override
431
- */
432
- getDesiredRowWidth_(row) {
401
+ override getDesiredRowWidth_(row: Row) {
433
402
  // Limit the width of a statement row when a block is inline.
434
403
  if (this.isInline && row.hasStatement) {
435
404
  return this.statementEdge + this.constants_.MAX_BOTTOM_WIDTH +
@@ -438,16 +407,13 @@ class RenderInfo extends BaseRenderInfo {
438
407
  return super.getDesiredRowWidth_(row);
439
408
  }
440
409
 
441
- /**
442
- * @override
443
- */
444
- finalize_() {
410
+ override finalize_() {
445
411
  // Performance note: this could be combined with the draw pass, if the time
446
412
  // that this takes is excessive. But it shouldn't be, because it only
447
413
  // accesses and sets properties that already exist on the objects.
448
414
  let widestRowWithConnectedBlocks = 0;
449
415
  let yCursor = 0;
450
- for (let i = 0, row; (row = this.rows[i]); i++) {
416
+ for (let i = 0, row; row = this.rows[i]; i++) {
451
417
  row.yPos = yCursor;
452
418
  row.xPos = this.startX;
453
419
  yCursor += row.height;
@@ -475,8 +441,6 @@ class RenderInfo extends BaseRenderInfo {
475
441
  }
476
442
 
477
443
  this.bottomRow.baseline = yCursor - this.bottomRow.descenderHeight;
478
-
479
- // The dark (lowlight) adds to the size of the block in both x and y.
480
444
  this.widthWithChildren = widestRowWithConnectedBlocks + this.startX +
481
445
  this.constants_.DARK_PATH_OFFSET;
482
446
  this.width += this.constants_.DARK_PATH_OFFSET;
@@ -484,5 +448,3 @@ class RenderInfo extends BaseRenderInfo {
484
448
  this.startY = this.topRow.capline;
485
449
  }
486
450
  }
487
-
488
- exports.RenderInfo = RenderInfo;