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
@@ -1,49 +1,43 @@
1
1
  /**
2
- * @license
3
- * Copyright 2019 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
2
+ * @fileoverview Makecode/scratch-style renderer.
3
+ * Zelos: spirit of eager rivalry, emulation, envy, jealousy, and zeal.
5
4
  */
6
5
 
7
6
  /**
8
- * @fileoverview Makecode/scratch-style renderer.
9
- * Zelos: spirit of eager rivalry, emulation, envy, jealousy, and zeal.
7
+ * @license
8
+ * Copyright 2019 Google LLC
9
+ * SPDX-License-Identifier: Apache-2.0
10
10
  */
11
- 'use strict';
12
11
 
13
12
  /**
14
13
  * Makecode/scratch-style renderer.
15
14
  * @class
16
15
  */
17
- goog.module('Blockly.zelos.RenderInfo');
18
-
19
- const {Align} = goog.require('Blockly.Input');
20
- /* eslint-disable-next-line no-unused-vars */
21
- const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
22
- const {BottomRow} = goog.require('Blockly.zelos.BottomRow');
23
- /* eslint-disable-next-line no-unused-vars */
24
- const {ConstantProvider} = goog.requireType('Blockly.zelos.ConstantProvider');
25
- const {Field} = goog.require('Blockly.blockRendering.Field');
26
- const {FieldImage} = goog.require('Blockly.FieldImage');
27
- const {FieldLabel} = goog.require('Blockly.FieldLabel');
28
- const {FieldTextInput} = goog.require('Blockly.FieldTextInput');
29
- /* eslint-disable-next-line no-unused-vars */
30
- const {Input} = goog.requireType('Blockly.Input');
31
- const {InputConnection} = goog.require('Blockly.blockRendering.InputConnection');
32
- const {InRowSpacer} = goog.require('Blockly.blockRendering.InRowSpacer');
33
- /* eslint-disable-next-line no-unused-vars */
34
- const {Measurable} = goog.requireType('Blockly.blockRendering.Measurable');
35
- const {RenderInfo: BaseRenderInfo} = goog.require('Blockly.blockRendering.RenderInfo');
36
- /* eslint-disable-next-line no-unused-vars */
37
- const {Renderer} = goog.requireType('Blockly.zelos.Renderer');
38
- const {RightConnectionShape} = goog.require('Blockly.zelos.RightConnectionShape');
39
- /* eslint-disable-next-line no-unused-vars */
40
- const {Row} = goog.require('Blockly.blockRendering.Row');
41
- /* eslint-disable-next-line no-unused-vars */
42
- const {SpacerRow} = goog.requireType('Blockly.blockRendering.SpacerRow');
43
- const {StatementInput} = goog.require('Blockly.zelos.StatementInput');
44
- const {TopRow} = goog.require('Blockly.zelos.TopRow');
45
- const {Types} = goog.require('Blockly.blockRendering.Types');
46
- const {inputTypes} = goog.require('Blockly.inputTypes');
16
+ import * as goog from '../../../closure/goog/goog.js';
17
+ goog.declareModuleId('Blockly.zelos.RenderInfo');
18
+
19
+ import type {BlockSvg} from '../../block_svg.js';
20
+ import {FieldImage} from '../../field_image.js';
21
+ import {FieldLabel} from '../../field_label.js';
22
+ import {FieldTextInput} from '../../field_textinput.js';
23
+ import {Align, Input} from '../../input.js';
24
+ import {inputTypes} from '../../input_types.js';
25
+ import {RenderInfo as BaseRenderInfo} from '../common/info.js';
26
+ import type {Measurable} from '../measurables/base.js';
27
+ import {Field} from '../measurables/field.js';
28
+ import {InRowSpacer} from '../measurables/in_row_spacer.js';
29
+ import {InputConnection} from '../measurables/input_connection.js';
30
+ import type {Row} from '../measurables/row.js';
31
+ import type {SpacerRow} from '../measurables/spacer_row.js';
32
+ import {Types} from '../measurables/types.js';
33
+
34
+ import type {ConstantProvider, InsideCorners} from './constants.js';
35
+ import {BottomRow} from './measurables/bottom_row.js';
36
+ import {StatementInput} from './measurables/inputs.js';
37
+ import {RightConnectionShape} from './measurables/row_elements.js';
38
+ import {TopRow} from './measurables/top_row.js';
39
+ import type {PathObject} from './path_object.js';
40
+ import type {Renderer} from './renderer.js';
47
41
 
48
42
 
49
43
  /**
@@ -52,56 +46,55 @@ const {inputTypes} = goog.require('Blockly.inputTypes');
52
46
  * This measure pass does not propagate changes to the block (although fields
53
47
  * may choose to rerender when getSize() is called). However, calling it
54
48
  * repeatedly may be expensive.
55
- * @extends {BaseRenderInfo}
56
49
  * @alias Blockly.zelos.RenderInfo
57
50
  */
58
- class RenderInfo extends BaseRenderInfo {
51
+ export class RenderInfo extends BaseRenderInfo {
52
+ override topRow: TopRow;
53
+ override bottomRow: BottomRow;
54
+ override constants_: ConstantProvider;
55
+ override renderer_: Renderer;
56
+
57
+ override isInline = true;
58
+ isMultiRow: boolean;
59
+ hasStatementInput: boolean;
60
+ rightSide: RightConnectionShape|null;
61
+ private readonly rightAlignedDummyInputs_: WeakMap<Row, Input>;
62
+
59
63
  /**
60
- * @param {!Renderer} renderer The renderer in use.
61
- * @param {!BlockSvg} block The block to measure.
62
- * @package
64
+ * @param renderer The renderer in use.
65
+ * @param block The block to measure.
66
+ * @internal
63
67
  */
64
- constructor(renderer, block) {
68
+ constructor(renderer: Renderer, block: BlockSvg) {
65
69
  super(renderer, block);
66
70
 
67
- /** @type {!ConstantProvider} */
68
- this.constants_;
71
+ this.renderer_ = renderer;
72
+
73
+ this.constants_ = this.renderer_.getConstants();
69
74
 
70
75
  /**
71
76
  * An object with rendering information about the top row of the block.
72
- * @type {!TopRow}
73
- * @override
74
77
  */
75
78
  this.topRow = new TopRow(this.constants_);
76
79
 
77
80
  /**
78
81
  * An object with rendering information about the bottom row of the block.
79
- * @type {!BottomRow}
80
- * @override
81
82
  */
82
83
  this.bottomRow = new BottomRow(this.constants_);
83
84
 
84
- /**
85
- * @override
86
- */
87
- this.isInline = true;
88
-
89
85
  /**
90
86
  * Whether the block should be rendered as a multi-line block, either
91
87
  * because it's not inline or because it has been collapsed.
92
- * @type {boolean}
93
88
  */
94
89
  this.isMultiRow = !block.getInputsInline() || block.isCollapsed();
95
90
 
96
91
  /**
97
92
  * Whether or not the block has a statement input in one of its rows.
98
- * @type {boolean}
99
93
  */
100
94
  this.hasStatementInput = block.statementInputCount > 0;
101
95
 
102
96
  /**
103
97
  * An object with rendering information about the right connection shape.
104
- * @type {RightConnectionShape}
105
98
  */
106
99
  this.rightSide = this.outputConnection ?
107
100
  new RightConnectionShape(this.constants_) :
@@ -110,25 +103,20 @@ class RenderInfo extends BaseRenderInfo {
110
103
  /**
111
104
  * A map of rows to right aligned dummy inputs within those rows. Used to
112
105
  * add padding between left and right aligned inputs.
113
- * @type {!WeakMap<!Row, !Input>}
114
- * @private
115
106
  */
116
107
  this.rightAlignedDummyInputs_ = new WeakMap();
117
108
  }
118
109
 
119
110
  /**
120
111
  * Get the block renderer in use.
121
- * @return {!Renderer} The block renderer in use.
122
- * @package
112
+ * @return The block renderer in use.
113
+ * @internal
123
114
  */
124
- getRenderer() {
125
- return /** @type {!Renderer} */ (this.renderer_);
115
+ override getRenderer(): Renderer {
116
+ return this.renderer_ as Renderer;
126
117
  }
127
118
 
128
- /**
129
- * @override
130
- */
131
- measure() {
119
+ override measure() {
132
120
  // Modifying parent measure method to add `adjustXPosition_`.
133
121
  this.createRows_();
134
122
  this.addElemSpacing_();
@@ -139,10 +127,7 @@ class RenderInfo extends BaseRenderInfo {
139
127
  this.finalize_();
140
128
  }
141
129
 
142
- /**
143
- * @override
144
- */
145
- shouldStartNewRow_(input, lastInput) {
130
+ override shouldStartNewRow_(input: Input, lastInput: Input): boolean {
146
131
  // If this is the first input, just add to the existing row.
147
132
  // That row is either empty or has some icons in it.
148
133
  if (!lastInput) {
@@ -160,21 +145,17 @@ class RenderInfo extends BaseRenderInfo {
160
145
  return false;
161
146
  }
162
147
 
163
- /**
164
- * @override
165
- */
166
- getDesiredRowWidth_(row) {
148
+ override getDesiredRowWidth_(row: Row): number {
167
149
  if (row.hasStatement) {
168
- const rightCornerWidth = this.constants_.INSIDE_CORNERS.rightWidth || 0;
150
+ const rightCornerWidth =
151
+ (this.constants_.INSIDE_CORNERS as InsideCorners).rightWidth || 0;
169
152
  return this.width - this.startX - rightCornerWidth;
170
153
  }
171
154
  return super.getDesiredRowWidth_(row);
172
155
  }
173
156
 
174
- /**
175
- * @override
176
- */
177
- getInRowSpacing_(prev, next) {
157
+ override getInRowSpacing_(prev: Measurable|null, next: Measurable|null):
158
+ number {
178
159
  if (!prev || !next) {
179
160
  // No need for padding at the beginning or end of the row if the
180
161
  // output shape is dynamic.
@@ -196,16 +177,16 @@ class RenderInfo extends BaseRenderInfo {
196
177
  }
197
178
  }
198
179
  // Spacing between a square corner and a hat.
199
- if (prev && Types.isLeftSquareCorner(prev) && next && Types.isHat(next)) {
180
+ // AnyDuringMigration because: Property 'isHat' does not exist on type
181
+ // 'typeof Types'.
182
+ if (prev && Types.isLeftSquareCorner(prev) && next &&
183
+ (Types as AnyDuringMigration).isHat(next)) {
200
184
  return this.constants_.NO_PADDING;
201
185
  }
202
186
  return this.constants_.MEDIUM_PADDING;
203
187
  }
204
188
 
205
- /**
206
- * @override
207
- */
208
- getSpacerRowHeight_(prev, next) {
189
+ override getSpacerRowHeight_(prev: Row, next: Row): number {
209
190
  // If we have an empty block add a spacer to increase the height.
210
191
  if (Types.isTopRow(prev) && Types.isBottomRow(next)) {
211
192
  return this.constants_.EMPTY_BLOCK_SPACER_HEIGHT;
@@ -213,7 +194,8 @@ class RenderInfo extends BaseRenderInfo {
213
194
  const followsStatement = Types.isInputRow(prev) && prev.hasStatement;
214
195
  const precedesStatement = Types.isInputRow(next) && next.hasStatement;
215
196
  if (precedesStatement || followsStatement) {
216
- const cornerHeight = this.constants_.INSIDE_CORNERS.rightHeight || 0;
197
+ const cornerHeight =
198
+ (this.constants_.INSIDE_CORNERS as InsideCorners).rightHeight || 0;
217
199
  const height = Math.max(this.constants_.NOTCH_HEIGHT, cornerHeight);
218
200
  return precedesStatement && followsStatement ?
219
201
  Math.max(height, this.constants_.DUMMY_INPUT_MIN_HEIGHT) :
@@ -221,7 +203,7 @@ class RenderInfo extends BaseRenderInfo {
221
203
  }
222
204
  // Top and bottom rows act as a spacer so we don't need any extra padding.
223
205
  if (Types.isTopRow(prev)) {
224
- const topRow = /** @type {!TopRow} */ (prev);
206
+ const topRow = prev as TopRow;
225
207
  if (!topRow.hasPreviousConnection &&
226
208
  (!this.outputConnection || this.hasStatementInput)) {
227
209
  return Math.abs(
@@ -230,7 +212,7 @@ class RenderInfo extends BaseRenderInfo {
230
212
  return this.constants_.NO_PADDING;
231
213
  }
232
214
  if (Types.isBottomRow(next)) {
233
- const bottomRow = /** @type {!BottomRow} */ (next);
215
+ const bottomRow = next as BottomRow;
234
216
  if (!this.outputConnection) {
235
217
  const topHeight = Math.max(
236
218
  this.topRow.minHeight,
@@ -248,22 +230,16 @@ class RenderInfo extends BaseRenderInfo {
248
230
  return this.constants_.MEDIUM_PADDING;
249
231
  }
250
232
 
251
- /**
252
- * @override
253
- */
254
- getSpacerRowWidth_(prev, next) {
233
+ override getSpacerRowWidth_(prev: Row, next: Row): number {
255
234
  const width = this.width - this.startX;
256
- if ((Types.isInputRow(prev) && prev.hasStatement) ||
257
- (Types.isInputRow(next) && next.hasStatement)) {
235
+ if (Types.isInputRow(prev) && prev.hasStatement ||
236
+ Types.isInputRow(next) && next.hasStatement) {
258
237
  return Math.max(width, this.constants_.STATEMENT_INPUT_SPACER_MIN_WIDTH);
259
238
  }
260
239
  return width;
261
240
  }
262
241
 
263
- /**
264
- * @override
265
- */
266
- getElemCenterline_(row, elem) {
242
+ override getElemCenterline_(row: Row, elem: Measurable): number {
267
243
  if (row.hasStatement && !Types.isSpacer(elem) &&
268
244
  !Types.isStatementInput(elem)) {
269
245
  return row.yPos + this.constants_.EMPTY_STATEMENT_INPUT_HEIGHT / 2;
@@ -278,10 +254,7 @@ class RenderInfo extends BaseRenderInfo {
278
254
  return super.getElemCenterline_(row, elem);
279
255
  }
280
256
 
281
- /**
282
- * @override
283
- */
284
- addInput_(input, activeRow) {
257
+ override addInput_(input: Input, activeRow: Row) {
285
258
  // If we have two dummy inputs on the same row, one aligned left and the
286
259
  // other right, keep track of the right aligned dummy input so we can add
287
260
  // padding later.
@@ -301,10 +274,7 @@ class RenderInfo extends BaseRenderInfo {
301
274
  super.addInput_(input, activeRow);
302
275
  }
303
276
 
304
- /**
305
- * @override
306
- */
307
- addAlignmentPadding_(row, missingSpace) {
277
+ override addAlignmentPadding_(row: Row, missingSpace: number) {
308
278
  if (this.rightAlignedDummyInputs_.get(row)) {
309
279
  let alignmentDivider;
310
280
  for (let i = 0; i < row.elements.length; i++) {
@@ -330,9 +300,8 @@ class RenderInfo extends BaseRenderInfo {
330
300
  * Adjust the x position of fields to bump all non-label fields in the first
331
301
  * row past the notch position. This must be called before ``computeBounds``
332
302
  * is called.
333
- * @protected
334
303
  */
335
- adjustXPosition_() {
304
+ protected adjustXPosition_() {
336
305
  const notchTotalWidth =
337
306
  this.constants_.NOTCH_OFFSET_LEFT + this.constants_.NOTCH_WIDTH;
338
307
  let minXPos = notchTotalWidth;
@@ -340,9 +309,9 @@ class RenderInfo extends BaseRenderInfo {
340
309
  // first input row (if the block has prev connection) and every input row
341
310
  // that has a prev and next notch.
342
311
  for (let i = 2; i < this.rows.length - 1; i += 2) {
343
- const prevSpacer = /** @type {!SpacerRow} */ (this.rows[i - 1]);
312
+ const prevSpacer = this.rows[i - 1] as SpacerRow;
344
313
  const row = this.rows[i];
345
- const nextSpacer = /** @type {!SpacerRow} */ (this.rows[i + 1]);
314
+ const nextSpacer = this.rows[i + 1] as SpacerRow;
346
315
 
347
316
  const hasPrevNotch = i === 2 ? !!this.topRow.hasPreviousConnection :
348
317
  !!prevSpacer.followsStatement;
@@ -383,13 +352,18 @@ class RenderInfo extends BaseRenderInfo {
383
352
  * output connection to match that of the block. For the right side, add a
384
353
  * right connection shape element and have it match the dimensions of the
385
354
  * output connection.
386
- * @protected
387
355
  */
388
- finalizeOutputConnection_() {
356
+ protected finalizeOutputConnection_() {
389
357
  // Dynamic output connections depend on the height of the block.
390
358
  if (!this.outputConnection || !this.outputConnection.isDynamicShape) {
391
359
  return;
392
360
  }
361
+ const outputConnectionShape = this.outputConnection.shape;
362
+ if (!('isDynamic' in outputConnectionShape &&
363
+ outputConnectionShape.isDynamic)) {
364
+ return;
365
+ }
366
+
393
367
  let yCursor = 0;
394
368
  // Determine the block height.
395
369
  for (let i = 0; i < this.rows.length; i++) {
@@ -403,26 +377,26 @@ class RenderInfo extends BaseRenderInfo {
403
377
  const blockHeight = this.bottomRow.hasNextConnection ?
404
378
  this.height - this.bottomRow.descenderHeight :
405
379
  this.height;
406
- const connectionHeight = this.outputConnection.shape.height(blockHeight);
407
- const connectionWidth = this.outputConnection.shape.width(blockHeight);
380
+ const connectionHeight = outputConnectionShape.height(blockHeight);
381
+ const connectionWidth = outputConnectionShape.width(blockHeight);
408
382
 
409
383
  this.outputConnection.height = connectionHeight;
410
384
  this.outputConnection.width = connectionWidth;
411
385
  this.outputConnection.startX = connectionWidth;
412
386
  this.outputConnection.connectionOffsetY =
413
- this.outputConnection.shape.connectionOffsetY(connectionHeight);
387
+ outputConnectionShape.connectionOffsetY(connectionHeight);
414
388
  this.outputConnection.connectionOffsetX =
415
- this.outputConnection.shape.connectionOffsetX(connectionWidth);
389
+ outputConnectionShape.connectionOffsetX(connectionWidth);
416
390
 
417
391
  // Add the right connection measurable.
418
392
  // Don't add it if we have a value-to-statement or a value-to-stack block.
419
393
  let rightConnectionWidth = 0;
420
394
  if (!this.hasStatementInput && !this.bottomRow.hasNextConnection) {
421
395
  rightConnectionWidth = connectionWidth;
422
- this.rightSide.height = connectionHeight;
423
- this.rightSide.width = rightConnectionWidth;
424
- this.rightSide.centerline = connectionHeight / 2;
425
- this.rightSide.xPos = this.width + rightConnectionWidth;
396
+ this.rightSide!.height = connectionHeight;
397
+ this.rightSide!.width = rightConnectionWidth;
398
+ this.rightSide!.centerline = connectionHeight / 2;
399
+ this.rightSide!.xPos = this.width + rightConnectionWidth;
426
400
  }
427
401
  this.startX = connectionWidth;
428
402
  this.width += connectionWidth + rightConnectionWidth;
@@ -434,9 +408,8 @@ class RenderInfo extends BaseRenderInfo {
434
408
  * reduce the implicit spacing created by the left and right output connection
435
409
  * shapes by adding setting negative spacing onto the leftmost and rightmost
436
410
  * spacers.
437
- * @protected
438
411
  */
439
- finalizeHorizontalAlignment_() {
412
+ protected finalizeHorizontalAlignment_() {
440
413
  if (!this.outputConnection || this.hasStatementInput ||
441
414
  this.bottomRow.hasNextConnection) {
442
415
  return;
@@ -468,10 +441,12 @@ class RenderInfo extends BaseRenderInfo {
468
441
  if (totalNegativeSpacing) {
469
442
  this.width -= totalNegativeSpacing;
470
443
  this.widthWithChildren -= totalNegativeSpacing;
471
- this.rightSide.xPos -= totalNegativeSpacing;
444
+ this.rightSide!.xPos -= totalNegativeSpacing;
472
445
  for (let i = 0; i < this.rows.length; i++) {
473
446
  const row = this.rows[i];
474
- if (Types.isTopOrBottomRow(row)) {
447
+ // AnyDuringMigration because: Property 'isTopOrBottomRow' does not
448
+ // exist on type 'typeof Types'.
449
+ if ((Types as AnyDuringMigration).isTopOrBottomRow(row)) {
475
450
  row.elements[1].width -= totalNegativeSpacing;
476
451
  }
477
452
  row.width -= totalNegativeSpacing;
@@ -483,19 +458,16 @@ class RenderInfo extends BaseRenderInfo {
483
458
  /**
484
459
  * Calculate the spacing to reduce the left and right edges by based on the
485
460
  * outer and inner connection shape.
486
- * @param {Measurable} elem The first or last element on
487
- * a block.
488
- * @return {number} The amount of spacing to reduce the first or last spacer.
489
- * @protected
461
+ * @param elem The first or last element on a block.
462
+ * @return The amount of spacing to reduce the first or last spacer.
490
463
  */
491
- getNegativeSpacing_(elem) {
464
+ protected getNegativeSpacing_(elem: Measurable): number {
492
465
  if (!elem) {
493
466
  return 0;
494
467
  }
495
468
  const connectionWidth = this.outputConnection.width;
496
469
  const outerShape = this.outputConnection.shape.type;
497
- const constants =
498
- /** @type {!ConstantProvider} */ (this.constants_);
470
+ const constants = (this.constants_);
499
471
  if (this.isMultiRow && this.inputRows.length > 1) {
500
472
  switch (outerShape) {
501
473
  case constants.SHAPES.ROUND: {
@@ -514,8 +486,11 @@ class RenderInfo extends BaseRenderInfo {
514
486
  if (Types.isInlineInput(elem) && elem instanceof InputConnection) {
515
487
  const connectedBlock = elem.connectedBlock;
516
488
  const innerShape = connectedBlock ?
517
- connectedBlock.pathObject.outputShapeType :
489
+ (connectedBlock.pathObject as PathObject).outputShapeType :
518
490
  elem.shape.type;
491
+ if (innerShape == null) {
492
+ return 0;
493
+ }
519
494
  // Special case for value to stack / value to statement blocks.
520
495
  if (connectedBlock && connectedBlock.outputConnection &&
521
496
  (connectedBlock.statementInputCount ||
@@ -533,7 +508,7 @@ class RenderInfo extends BaseRenderInfo {
533
508
  // Special case for text inputs.
534
509
  if (outerShape === constants.SHAPES.ROUND &&
535
510
  elem.field instanceof FieldTextInput) {
536
- return connectionWidth - (2.75 * constants.GRID_UNIT);
511
+ return connectionWidth - 2.75 * constants.GRID_UNIT;
537
512
  }
538
513
  return connectionWidth -
539
514
  this.constants_.SHAPE_IN_SHAPE_PADDING[outerShape][0];
@@ -547,18 +522,17 @@ class RenderInfo extends BaseRenderInfo {
547
522
  * Finalize vertical alignment of rows on a block. In particular, reduce the
548
523
  * implicit spacing when a non-shadow block is connected to any of an input
549
524
  * row's inline inputs.
550
- * @protected
551
525
  */
552
- finalizeVerticalAlignment_() {
526
+ protected finalizeVerticalAlignment_() {
553
527
  if (this.outputConnection) {
554
528
  return;
555
529
  }
556
530
  // Run through every input row on the block and only apply tight nesting
557
531
  // logic to input rows that have a prev and next notch.
558
532
  for (let i = 2; i < this.rows.length - 1; i += 2) {
559
- const prevSpacer = /** @type {!SpacerRow} */ (this.rows[i - 1]);
533
+ const prevSpacer = this.rows[i - 1] as SpacerRow;
560
534
  const row = this.rows[i];
561
- const nextSpacer = /** @type {!SpacerRow} */ (this.rows[i + 1]);
535
+ const nextSpacer = this.rows[i + 1] as SpacerRow;
562
536
 
563
537
  const firstRow = i === 2;
564
538
  const hasPrevNotch = firstRow ? !!this.topRow.hasPreviousConnection :
@@ -606,10 +580,7 @@ class RenderInfo extends BaseRenderInfo {
606
580
  }
607
581
  }
608
582
 
609
- /**
610
- * @override
611
- */
612
- finalize_() {
583
+ override finalize_() {
613
584
  this.finalizeOutputConnection_();
614
585
  this.finalizeHorizontalAlignment_();
615
586
  this.finalizeVerticalAlignment_();
@@ -620,5 +591,3 @@ class RenderInfo extends BaseRenderInfo {
620
591
  }
621
592
  }
622
593
  }
623
-
624
- exports.RenderInfo = RenderInfo;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { ASTNode } from '../../keyboard_nav/ast_node.js';
7
+ import type { Marker } from '../../keyboard_nav/marker.js';
8
+ import type { WorkspaceSvg } from '../../workspace_svg.js';
9
+ import type { ConstantProvider as BaseConstantProvider } from '../common/constants.js';
10
+ import { MarkerSvg as BaseMarkerSvg } from '../common/marker_svg.js';
11
+ import type { ConstantProvider as ZelosConstantProvider } from './constants.js';
12
+ /**
13
+ * Class to draw a marker.
14
+ * @alias Blockly.zelos.MarkerSvg
15
+ */
16
+ export declare class MarkerSvg extends BaseMarkerSvg {
17
+ constants_: ZelosConstantProvider;
18
+ private markerCircle_;
19
+ /**
20
+ * @param workspace The workspace the marker belongs to.
21
+ * @param constants The constants for the renderer.
22
+ * @param marker The marker to draw.
23
+ */
24
+ constructor(workspace: WorkspaceSvg, constants: BaseConstantProvider, marker: Marker);
25
+ /**
26
+ * Position and display the marker for an input or an output connection.
27
+ * @param curNode The node to draw the marker for.
28
+ */
29
+ private showWithInputOutput_;
30
+ showWithOutput_(curNode: ASTNode): void;
31
+ showWithInput_(curNode: ASTNode): void;
32
+ /**
33
+ * Draw a rectangle around the block.
34
+ * @param curNode The current node of the marker.
35
+ */
36
+ showWithBlock_(curNode: ASTNode): void;
37
+ /**
38
+ * Position the circle we use for input and output connections.
39
+ * @param x The x position of the circle.
40
+ * @param y The y position of the circle.
41
+ */
42
+ private positionCircle_;
43
+ hide(): void;
44
+ createDomInternal_(): SVGGElement;
45
+ applyColour_(curNode: ASTNode): void;
46
+ }