blockly 8.0.5 → 9.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (736) hide show
  1. package/blockly.min.js +2002 -2269
  2. package/blockly_compressed.js +1499 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks/blocks.js +3 -2
  5. package/blocks/colour.js +3 -1
  6. package/blocks/lists.js +94 -22
  7. package/blocks/logic.js +14 -6
  8. package/blocks/loops.js +5 -3
  9. package/blocks/math.js +3 -1
  10. package/blocks/procedures.js +3 -1
  11. package/blocks/text.js +14 -6
  12. package/blocks/variables.js +3 -1
  13. package/blocks/variables_dynamic.js +3 -1
  14. package/blocks.d.ts +0 -2
  15. package/blocks_compressed.js +189 -171
  16. package/blocks_compressed.js.map +1 -1
  17. package/closure/goog/base.d.ts +1 -0
  18. package/closure/goog/base_minimal.d.ts +18 -0
  19. package/closure/goog/goog.d.ts +25 -0
  20. package/core/any_aliases.d.ts +1 -0
  21. package/core/any_aliases.ts +1 -0
  22. package/core/block.d.ts +779 -0
  23. package/core/{block.js → block.ts} +610 -719
  24. package/core/block_animations.d.ts +33 -0
  25. package/core/{block_animations.js → block_animations.ts} +75 -79
  26. package/core/block_drag_surface.d.ts +111 -0
  27. package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
  28. package/core/block_dragger.d.ts +143 -0
  29. package/core/{block_dragger.js → block_dragger.ts} +139 -176
  30. package/core/block_svg.d.ts +588 -0
  31. package/core/{block_svg.js → block_svg.ts} +494 -630
  32. package/core/blockly.d.ts +562 -0
  33. package/core/blockly.js +1 -1
  34. package/core/blockly.ts +749 -0
  35. package/core/blockly_options.d.ts +69 -0
  36. package/core/blockly_options.ts +81 -0
  37. package/core/blocks.d.ts +17 -0
  38. package/core/{blocks.js → blocks.ts} +4 -8
  39. package/core/browser_events.d.ts +85 -0
  40. package/core/{browser_events.js → browser_events.ts} +98 -93
  41. package/core/bubble.d.ts +279 -0
  42. package/core/{bubble.js → bubble.ts} +277 -370
  43. package/core/bubble_dragger.d.ts +73 -0
  44. package/core/bubble_dragger.ts +229 -0
  45. package/core/bump_objects.d.ts +34 -0
  46. package/core/{bump_objects.js → bump_objects.ts} +54 -52
  47. package/core/clipboard.d.ts +42 -0
  48. package/core/clipboard.ts +91 -0
  49. package/core/comment.d.ts +113 -0
  50. package/core/{comment.js → comment.ts} +135 -185
  51. package/core/common.d.ts +129 -0
  52. package/core/{common.js → common.ts} +105 -82
  53. package/core/component_manager.d.ts +91 -0
  54. package/core/component_manager.ts +211 -0
  55. package/core/config.d.ts +23 -0
  56. package/core/{config.js → config.ts} +12 -19
  57. package/core/connection.d.ts +232 -0
  58. package/core/{connection.js → connection.ts} +187 -237
  59. package/core/connection_checker.d.ts +78 -0
  60. package/core/{connection_checker.js → connection_checker.ts} +66 -77
  61. package/core/connection_db.d.ts +91 -0
  62. package/core/{connection_db.js → connection_db.ts} +62 -87
  63. package/core/connection_type.d.ts +15 -0
  64. package/core/{connection_type.js → connection_type.ts} +8 -12
  65. package/core/constants.d.ts +15 -0
  66. package/core/{constants.js → constants.ts} +4 -8
  67. package/core/contextmenu.d.ts +80 -0
  68. package/core/{contextmenu.js → contextmenu.ts} +118 -153
  69. package/core/contextmenu_items.d.ts +77 -0
  70. package/core/contextmenu_items.ts +576 -0
  71. package/core/contextmenu_registry.d.ts +105 -0
  72. package/core/contextmenu_registry.ts +179 -0
  73. package/core/css.d.ts +24 -0
  74. package/core/{css.js → css.ts} +16 -24
  75. package/core/delete_area.d.ts +47 -0
  76. package/core/delete_area.ts +82 -0
  77. package/core/dialog.d.ts +61 -0
  78. package/core/dialog.ts +127 -0
  79. package/core/drag_target.d.ts +63 -0
  80. package/core/drag_target.ts +94 -0
  81. package/core/dropdowndiv.d.ts +155 -0
  82. package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
  83. package/core/events/events.d.ts +102 -0
  84. package/core/events/events.ts +123 -0
  85. package/core/events/events_abstract.d.ts +51 -0
  86. package/core/events/events_abstract.ts +112 -0
  87. package/core/events/events_block_base.d.ts +31 -0
  88. package/core/events/events_block_base.ts +65 -0
  89. package/core/events/events_block_change.d.ts +55 -0
  90. package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
  91. package/core/events/events_block_create.d.ts +35 -0
  92. package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
  93. package/core/events/events_block_delete.d.ts +36 -0
  94. package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
  95. package/core/events/events_block_drag.d.ts +36 -0
  96. package/core/events/events_block_drag.ts +82 -0
  97. package/core/events/events_block_move.d.ts +51 -0
  98. package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
  99. package/core/events/events_bubble_open.d.ts +35 -0
  100. package/core/events/events_bubble_open.ts +82 -0
  101. package/core/events/events_click.d.ts +36 -0
  102. package/core/events/{events_click.js → events_click.ts} +27 -30
  103. package/core/events/events_comment_base.d.ts +39 -0
  104. package/core/events/events_comment_base.ts +107 -0
  105. package/core/events/events_comment_change.d.ts +43 -0
  106. package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
  107. package/core/events/events_comment_create.d.ts +35 -0
  108. package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
  109. package/core/events/events_comment_delete.d.ts +35 -0
  110. package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
  111. package/core/events/events_comment_move.d.ts +55 -0
  112. package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
  113. package/core/events/events_marker_move.d.ts +40 -0
  114. package/core/events/events_marker_move.ts +99 -0
  115. package/core/events/events_selected.d.ts +34 -0
  116. package/core/events/events_selected.ts +78 -0
  117. package/core/events/events_theme_change.d.ts +30 -0
  118. package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
  119. package/core/events/events_toolbox_item_select.d.ts +34 -0
  120. package/core/events/events_toolbox_item_select.ts +79 -0
  121. package/core/events/events_trashcan_open.d.ts +31 -0
  122. package/core/events/events_trashcan_open.ts +68 -0
  123. package/core/events/events_ui.d.ts +37 -0
  124. package/core/events/{events_ui.js → events_ui.ts} +27 -26
  125. package/core/events/events_ui_base.d.ts +26 -0
  126. package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
  127. package/core/events/events_var_base.d.ts +31 -0
  128. package/core/events/events_var_base.ts +65 -0
  129. package/core/events/events_var_create.d.ts +35 -0
  130. package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
  131. package/core/events/events_var_delete.d.ts +35 -0
  132. package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
  133. package/core/events/events_var_rename.d.ts +36 -0
  134. package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
  135. package/core/events/events_viewport.d.ts +39 -0
  136. package/core/events/events_viewport.ts +100 -0
  137. package/core/events/utils.d.ts +272 -0
  138. package/core/events/{utils.js → utils.ts} +148 -219
  139. package/core/events/workspace_events.d.ts +36 -0
  140. package/core/events/workspace_events.ts +86 -0
  141. package/core/extensions.d.ts +107 -0
  142. package/core/{extensions.js → extensions.ts} +153 -172
  143. package/core/field.d.ts +534 -0
  144. package/core/{field.js → field.ts} +413 -489
  145. package/core/field_angle.d.ts +176 -0
  146. package/core/field_angle.ts +563 -0
  147. package/core/field_checkbox.d.ts +124 -0
  148. package/core/field_checkbox.ts +243 -0
  149. package/core/field_colour.d.ts +200 -0
  150. package/core/field_colour.ts +632 -0
  151. package/core/field_dropdown.d.ts +222 -0
  152. package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
  153. package/core/field_image.d.ts +134 -0
  154. package/core/field_image.ts +282 -0
  155. package/core/field_label.d.ts +71 -0
  156. package/core/field_label.ts +152 -0
  157. package/core/field_label_serializable.d.ts +42 -0
  158. package/core/field_label_serializable.ts +76 -0
  159. package/core/field_multilineinput.d.ts +146 -0
  160. package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
  161. package/core/field_number.d.ts +156 -0
  162. package/core/{field_number.js → field_number.ts} +110 -123
  163. package/core/field_registry.d.ts +45 -0
  164. package/core/{field_registry.js → field_registry.ts} +37 -30
  165. package/core/field_textinput.d.ts +219 -0
  166. package/core/field_textinput.ts +591 -0
  167. package/core/field_variable.d.ts +217 -0
  168. package/core/{field_variable.js → field_variable.ts} +174 -187
  169. package/core/flyout_base.d.ts +459 -0
  170. package/core/{flyout_base.js → flyout_base.ts} +429 -518
  171. package/core/flyout_button.d.ts +81 -0
  172. package/core/flyout_button.ts +292 -0
  173. package/core/flyout_horizontal.d.ts +82 -0
  174. package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
  175. package/core/flyout_metrics_manager.d.ts +40 -0
  176. package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
  177. package/core/flyout_vertical.d.ts +83 -0
  178. package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
  179. package/core/generator.d.ts +205 -0
  180. package/core/{generator.js → generator.ts} +168 -193
  181. package/core/gesture.d.ts +357 -0
  182. package/core/{gesture.js → gesture.ts} +289 -369
  183. package/core/grid.d.ts +83 -0
  184. package/core/grid.ts +192 -0
  185. package/core/icon.d.ts +78 -0
  186. package/core/icon.ts +189 -0
  187. package/core/inject.d.ts +15 -0
  188. package/core/{inject.js → inject.ts} +101 -100
  189. package/core/input.d.ts +128 -0
  190. package/core/input.ts +309 -0
  191. package/core/input_types.d.ts +14 -0
  192. package/core/{input_types.js → input_types.ts} +8 -12
  193. package/core/insertion_marker_manager.d.ts +212 -0
  194. package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
  195. package/core/interfaces/i_ast_node_location.d.ts +11 -0
  196. package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
  197. package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
  198. package/core/interfaces/i_ast_node_location_svg.ts +37 -0
  199. package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
  200. package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
  201. package/core/interfaces/i_autohideable.d.ts +18 -0
  202. package/core/interfaces/i_autohideable.ts +34 -0
  203. package/core/interfaces/i_block_dragger.d.ts +43 -0
  204. package/core/interfaces/i_block_dragger.ts +67 -0
  205. package/core/interfaces/i_bounded_element.d.ts +24 -0
  206. package/core/interfaces/i_bounded_element.ts +42 -0
  207. package/core/interfaces/i_bubble.d.ts +59 -0
  208. package/core/interfaces/i_bubble.ts +88 -0
  209. package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
  210. package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
  211. package/core/interfaces/i_component.d.ts +17 -0
  212. package/core/interfaces/{i_component.js → i_component.ts} +9 -14
  213. package/core/interfaces/i_connection_checker.d.ts +69 -0
  214. package/core/interfaces/i_connection_checker.ts +102 -0
  215. package/core/interfaces/i_contextmenu.d.ts +13 -0
  216. package/core/interfaces/i_contextmenu.ts +26 -0
  217. package/core/interfaces/i_copyable.d.ts +24 -0
  218. package/core/interfaces/i_copyable.ts +40 -0
  219. package/core/interfaces/i_deletable.d.ts +16 -0
  220. package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
  221. package/core/interfaces/i_delete_area.d.ts +25 -0
  222. package/core/interfaces/i_delete_area.ts +46 -0
  223. package/core/interfaces/i_drag_target.d.ts +53 -0
  224. package/core/interfaces/i_drag_target.ts +84 -0
  225. package/core/interfaces/i_draggable.d.ts +12 -0
  226. package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
  227. package/core/interfaces/i_flyout.d.ts +134 -0
  228. package/core/interfaces/i_flyout.ts +186 -0
  229. package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
  230. package/core/interfaces/i_keyboard_accessible.ts +35 -0
  231. package/core/interfaces/i_metrics_manager.d.ts +117 -0
  232. package/core/interfaces/i_metrics_manager.ts +151 -0
  233. package/core/interfaces/i_movable.d.ts +16 -0
  234. package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
  235. package/core/interfaces/i_positionable.d.ts +27 -0
  236. package/core/interfaces/i_positionable.ts +50 -0
  237. package/core/interfaces/i_registrable.d.ts +11 -0
  238. package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
  239. package/core/interfaces/i_registrable_field.d.ts +17 -0
  240. package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
  241. package/core/interfaces/i_selectable.d.ts +18 -0
  242. package/core/interfaces/i_selectable.ts +34 -0
  243. package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
  244. package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
  245. package/core/interfaces/i_serializer.d.ts +42 -0
  246. package/core/interfaces/i_serializer.ts +65 -0
  247. package/core/interfaces/i_styleable.d.ts +21 -0
  248. package/core/interfaces/i_styleable.ts +35 -0
  249. package/core/interfaces/i_toolbox.d.ts +85 -0
  250. package/core/interfaces/i_toolbox.ts +127 -0
  251. package/core/interfaces/i_toolbox_item.d.ts +62 -0
  252. package/core/interfaces/i_toolbox_item.ts +84 -0
  253. package/core/internal_constants.d.ts +40 -0
  254. package/core/{internal_constants.js → internal_constants.ts} +13 -18
  255. package/core/keyboard_nav/ast_node.d.ts +239 -0
  256. package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
  257. package/core/keyboard_nav/basic_cursor.d.ts +88 -0
  258. package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
  259. package/core/keyboard_nav/cursor.d.ts +41 -0
  260. package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
  261. package/core/keyboard_nav/marker.d.ts +58 -0
  262. package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
  263. package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
  264. package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
  265. package/core/main.d.ts +11 -0
  266. package/core/main.js +303 -0
  267. package/core/marker_manager.d.ts +85 -0
  268. package/core/marker_manager.ts +181 -0
  269. package/core/menu.d.ts +149 -0
  270. package/core/{menu.js → menu.ts} +141 -174
  271. package/core/menuitem.d.ts +118 -0
  272. package/core/menuitem.ts +240 -0
  273. package/core/metrics_manager.d.ts +201 -0
  274. package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
  275. package/core/msg.d.ts +9 -0
  276. package/core/{msg.js → msg.ts} +4 -8
  277. package/core/mutator.d.ts +128 -0
  278. package/core/{mutator.js → mutator.ts} +196 -211
  279. package/core/names.d.ts +124 -0
  280. package/core/names.ts +267 -0
  281. package/core/options.d.ts +137 -0
  282. package/core/{options.js → options.ts} +147 -173
  283. package/core/positionable_helpers.d.ts +88 -0
  284. package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
  285. package/core/procedures.d.ts +108 -0
  286. package/core/{procedures.js → procedures.ts} +143 -152
  287. package/core/registry.d.ts +137 -0
  288. package/core/registry.ts +339 -0
  289. package/core/rendered_connection.d.ts +191 -0
  290. package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
  291. package/core/renderers/common/block_rendering.d.ts +114 -0
  292. package/core/renderers/common/block_rendering.ts +164 -0
  293. package/core/renderers/common/constants.d.ts +458 -0
  294. package/core/renderers/common/constants.ts +1124 -0
  295. package/core/renderers/common/debug.d.ts +28 -0
  296. package/core/renderers/common/{debug.js → debug.ts} +14 -20
  297. package/core/renderers/common/debugger.d.ts +120 -0
  298. package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
  299. package/core/renderers/common/drawer.d.ts +132 -0
  300. package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
  301. package/core/renderers/common/i_path_object.d.ts +117 -0
  302. package/core/renderers/common/i_path_object.ts +161 -0
  303. package/core/renderers/common/info.d.ts +194 -0
  304. package/core/renderers/common/{info.js → info.ts} +165 -222
  305. package/core/renderers/common/marker_svg.d.ts +220 -0
  306. package/core/renderers/common/marker_svg.ts +680 -0
  307. package/core/renderers/common/path_object.d.ts +146 -0
  308. package/core/renderers/common/path_object.ts +272 -0
  309. package/core/renderers/common/renderer.d.ts +157 -0
  310. package/core/renderers/common/renderer.ts +271 -0
  311. package/core/renderers/geras/constants.d.ts +23 -0
  312. package/core/renderers/geras/constants.ts +61 -0
  313. package/core/renderers/geras/drawer.d.ts +43 -0
  314. package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
  315. package/core/renderers/geras/geras.d.ts +11 -0
  316. package/core/renderers/geras/geras.ts +37 -0
  317. package/core/renderers/geras/highlight_constants.d.ts +108 -0
  318. package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
  319. package/core/renderers/geras/highlighter.d.ts +98 -0
  320. package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
  321. package/core/renderers/geras/info.d.ts +45 -0
  322. package/core/renderers/geras/{info.js → info.ts} +61 -99
  323. package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
  324. package/core/renderers/geras/measurables/inline_input.ts +51 -0
  325. package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
  326. package/core/renderers/geras/measurables/statement_input.ts +50 -0
  327. package/core/renderers/geras/path_object.d.ts +47 -0
  328. package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
  329. package/core/renderers/geras/renderer.d.ts +69 -0
  330. package/core/renderers/geras/renderer.ts +126 -0
  331. package/core/renderers/measurables/base.d.ts +27 -0
  332. package/core/renderers/measurables/base.ts +53 -0
  333. package/core/renderers/measurables/bottom_row.d.ts +61 -0
  334. package/core/renderers/measurables/bottom_row.ts +120 -0
  335. package/core/renderers/measurables/connection.d.ts +25 -0
  336. package/core/renderers/measurables/connection.ts +52 -0
  337. package/core/renderers/measurables/external_value_input.d.ts +27 -0
  338. package/core/renderers/measurables/external_value_input.ts +65 -0
  339. package/core/renderers/measurables/field.d.ts +30 -0
  340. package/core/renderers/measurables/field.ts +63 -0
  341. package/core/renderers/measurables/hat.d.ts +21 -0
  342. package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
  343. package/core/renderers/measurables/icon.d.ts +26 -0
  344. package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
  345. package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
  346. package/core/renderers/measurables/in_row_spacer.ts +44 -0
  347. package/core/renderers/measurables/inline_input.d.ts +24 -0
  348. package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
  349. package/core/renderers/measurables/input_connection.d.ts +29 -0
  350. package/core/renderers/measurables/input_connection.ts +66 -0
  351. package/core/renderers/measurables/input_row.d.ts +30 -0
  352. package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
  353. package/core/renderers/measurables/jagged_edge.d.ts +20 -0
  354. package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
  355. package/core/renderers/measurables/next_connection.d.ts +23 -0
  356. package/core/renderers/measurables/next_connection.ts +47 -0
  357. package/core/renderers/measurables/output_connection.d.ts +26 -0
  358. package/core/renderers/measurables/output_connection.ts +56 -0
  359. package/core/renderers/measurables/previous_connection.d.ts +23 -0
  360. package/core/renderers/measurables/previous_connection.ts +47 -0
  361. package/core/renderers/measurables/round_corner.d.ts +21 -0
  362. package/core/renderers/measurables/round_corner.ts +49 -0
  363. package/core/renderers/measurables/row.d.ts +141 -0
  364. package/core/renderers/measurables/row.ts +225 -0
  365. package/core/renderers/measurables/spacer_row.d.ts +29 -0
  366. package/core/renderers/measurables/spacer_row.ts +55 -0
  367. package/core/renderers/measurables/square_corner.d.ts +21 -0
  368. package/core/renderers/measurables/square_corner.ts +47 -0
  369. package/core/renderers/measurables/statement_input.d.ts +22 -0
  370. package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
  371. package/core/renderers/measurables/top_row.d.ts +56 -0
  372. package/core/renderers/measurables/top_row.ts +122 -0
  373. package/core/renderers/measurables/types.d.ts +235 -0
  374. package/core/renderers/measurables/types.ts +332 -0
  375. package/core/renderers/minimalist/constants.d.ts +14 -0
  376. package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
  377. package/core/renderers/minimalist/drawer.d.ts +21 -0
  378. package/core/renderers/minimalist/drawer.ts +38 -0
  379. package/core/renderers/minimalist/info.d.ts +30 -0
  380. package/core/renderers/minimalist/info.ts +52 -0
  381. package/core/renderers/minimalist/minimalist.d.ts +6 -0
  382. package/core/renderers/minimalist/minimalist.ts +22 -0
  383. package/core/renderers/minimalist/renderer.d.ts +41 -0
  384. package/core/renderers/minimalist/renderer.ts +71 -0
  385. package/core/renderers/thrasos/info.d.ts +40 -0
  386. package/core/renderers/thrasos/{info.js → info.ts} +66 -67
  387. package/core/renderers/thrasos/renderer.d.ts +25 -0
  388. package/core/renderers/thrasos/renderer.ts +48 -0
  389. package/core/renderers/thrasos/thrasos.d.ts +4 -0
  390. package/core/renderers/thrasos/thrasos.ts +20 -0
  391. package/core/renderers/zelos/constants.d.ts +186 -0
  392. package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
  393. package/core/renderers/zelos/drawer.d.ts +47 -0
  394. package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
  395. package/core/renderers/zelos/info.d.ts +88 -0
  396. package/core/renderers/zelos/{info.js → info.ts} +111 -142
  397. package/core/renderers/zelos/marker_svg.d.ts +46 -0
  398. package/core/renderers/zelos/marker_svg.ts +151 -0
  399. package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
  400. package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
  401. package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
  402. package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
  403. package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
  404. package/core/renderers/zelos/measurables/row_elements.ts +45 -0
  405. package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
  406. package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
  407. package/core/renderers/zelos/path_object.d.ts +77 -0
  408. package/core/renderers/zelos/path_object.ts +215 -0
  409. package/core/renderers/zelos/renderer.d.ts +74 -0
  410. package/core/renderers/zelos/renderer.ts +142 -0
  411. package/core/renderers/zelos/zelos.d.ts +12 -0
  412. package/core/renderers/zelos/zelos.ts +39 -0
  413. package/core/scrollbar.d.ts +277 -0
  414. package/core/{scrollbar.js → scrollbar.ts} +307 -328
  415. package/core/scrollbar_pair.d.ts +105 -0
  416. package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
  417. package/core/serialization/blocks.d.ts +98 -0
  418. package/core/serialization/{blocks.js → blocks.ts} +229 -228
  419. package/core/serialization/exceptions.d.ts +73 -0
  420. package/core/serialization/exceptions.ts +98 -0
  421. package/core/serialization/priorities.d.ts +15 -0
  422. package/core/serialization/{priorities.js → priorities.ts} +4 -10
  423. package/core/serialization/registry.d.ts +20 -0
  424. package/core/serialization/{registry.js → registry.ts} +11 -13
  425. package/core/serialization/variables.d.ts +14 -0
  426. package/core/serialization/{variables.js → variables.ts} +30 -32
  427. package/core/serialization/workspaces.d.ts +28 -0
  428. package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
  429. package/core/shortcut_items.d.ts +61 -0
  430. package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
  431. package/core/shortcut_registry.d.ts +151 -0
  432. package/core/shortcut_registry.ts +355 -0
  433. package/core/sprites.d.ts +19 -0
  434. package/core/{sprites.js → sprites.ts} +4 -6
  435. package/core/theme/classic.d.ts +12 -0
  436. package/core/theme/{classic.js → classic.ts} +5 -7
  437. package/core/theme/themes.d.ts +8 -0
  438. package/core/theme/themes.ts +22 -0
  439. package/core/theme/zelos.d.ts +11 -0
  440. package/core/theme/{zelos.js → zelos.ts} +4 -7
  441. package/core/theme.d.ts +142 -0
  442. package/core/theme.ts +221 -0
  443. package/core/theme_manager.d.ts +81 -0
  444. package/core/theme_manager.ts +186 -0
  445. package/core/toolbox/category.d.ts +239 -0
  446. package/core/toolbox/category.ts +679 -0
  447. package/core/toolbox/collapsible_category.d.ts +91 -0
  448. package/core/toolbox/collapsible_category.ts +273 -0
  449. package/core/toolbox/separator.d.ts +39 -0
  450. package/core/toolbox/separator.ts +105 -0
  451. package/core/toolbox/toolbox.d.ts +352 -0
  452. package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
  453. package/core/toolbox/toolbox_item.d.ts +85 -0
  454. package/core/toolbox/toolbox_item.ts +147 -0
  455. package/core/tooltip.d.ts +126 -0
  456. package/core/{tooltip.js → tooltip.ts} +136 -214
  457. package/core/touch.d.ts +121 -0
  458. package/core/touch.ts +306 -0
  459. package/core/touch_gesture.d.ts +115 -0
  460. package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
  461. package/core/trashcan.d.ts +195 -0
  462. package/core/{trashcan.js → trashcan.ts} +226 -312
  463. package/core/utils/aria.d.ts +67 -0
  464. package/core/utils/{aria.js → aria.ts} +47 -61
  465. package/core/utils/array.d.ts +14 -0
  466. package/core/utils/{array.js → array.ts} +10 -12
  467. package/core/utils/colour.d.ts +103 -0
  468. package/core/utils/{colour.js → colour.ts} +60 -72
  469. package/core/utils/coordinate.d.ts +72 -0
  470. package/core/utils/coordinate.ts +124 -0
  471. package/core/utils/deprecation.d.ts +17 -0
  472. package/core/utils/{deprecation.js → deprecation.ts} +11 -11
  473. package/core/utils/dom.d.ts +165 -0
  474. package/core/utils/{dom.js → dom.ts} +125 -147
  475. package/core/utils/idgenerator.d.ts +25 -0
  476. package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
  477. package/core/utils/keycodes.d.ts +137 -0
  478. package/core/utils/keycodes.ts +169 -0
  479. package/core/utils/math.d.ts +30 -0
  480. package/core/utils/{math.js → math.ts} +17 -19
  481. package/core/utils/metrics.d.ts +64 -0
  482. package/core/utils/metrics.ts +97 -0
  483. package/core/utils/object.d.ts +35 -0
  484. package/core/utils/{object.js → object.ts} +30 -26
  485. package/core/utils/parsing.d.ts +50 -0
  486. package/core/utils/{parsing.js → parsing.ts} +50 -50
  487. package/core/utils/rect.d.ts +38 -0
  488. package/core/utils/{rect.js → rect.ts} +18 -31
  489. package/core/utils/sentinel.d.ts +11 -0
  490. package/core/utils/{sentinel.js → sentinel.ts} +3 -5
  491. package/core/utils/size.d.ts +27 -0
  492. package/core/utils/{size.js → size.ts} +12 -26
  493. package/core/utils/string.d.ts +55 -0
  494. package/core/utils/{string.js → string.ts} +64 -61
  495. package/core/utils/style.d.ts +127 -0
  496. package/core/utils/{style.js → style.ts} +102 -92
  497. package/core/utils/svg.d.ts +68 -0
  498. package/core/utils/svg.ts +88 -0
  499. package/core/utils/svg_math.d.ts +70 -0
  500. package/core/utils/{svg_math.js → svg_math.ts} +72 -71
  501. package/core/utils/svg_paths.d.ts +101 -0
  502. package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
  503. package/core/utils/toolbox.d.ts +193 -0
  504. package/core/utils/toolbox.ts +433 -0
  505. package/core/utils/useragent.d.ts +33 -0
  506. package/core/utils/useragent.ts +135 -0
  507. package/core/utils/xml.d.ts +52 -0
  508. package/core/utils/{xml.js → xml.ts} +26 -36
  509. package/core/utils.d.ts +217 -0
  510. package/core/utils.ts +428 -0
  511. package/core/variable_map.d.ts +141 -0
  512. package/core/{variable_map.js → variable_map.ts} +131 -149
  513. package/core/variable_model.d.ts +40 -0
  514. package/core/variable_model.ts +82 -0
  515. package/core/variables.d.ts +181 -0
  516. package/core/{variables.js → variables.ts} +206 -188
  517. package/core/variables_dynamic.d.ts +38 -0
  518. package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
  519. package/core/warning.d.ts +50 -0
  520. package/core/{warning.js → warning.ts} +52 -66
  521. package/core/widgetdiv.d.ts +69 -0
  522. package/core/widgetdiv.ts +257 -0
  523. package/core/workspace.d.ts +386 -0
  524. package/core/workspace.ts +801 -0
  525. package/core/workspace_audio.d.ts +47 -0
  526. package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
  527. package/core/workspace_comment.d.ts +170 -0
  528. package/core/workspace_comment.ts +398 -0
  529. package/core/workspace_comment_svg.d.ts +329 -0
  530. package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
  531. package/core/workspace_drag_surface_svg.d.ts +68 -0
  532. package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
  533. package/core/workspace_dragger.d.ts +48 -0
  534. package/core/workspace_dragger.ts +104 -0
  535. package/core/workspace_svg.d.ts +920 -0
  536. package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
  537. package/core/xml.d.ts +117 -0
  538. package/core/{xml.js → xml.ts} +306 -326
  539. package/core/zoom_controls.d.ts +130 -0
  540. package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
  541. package/core.d.ts +1 -3
  542. package/core.js +1 -2
  543. package/dart.d.ts +0 -3
  544. package/dart_compressed.js +387 -99
  545. package/dart_compressed.js.map +1 -1
  546. package/generators/dart/all.js +2 -0
  547. package/generators/dart/colour.js +1 -1
  548. package/generators/dart/lists.js +1 -1
  549. package/generators/dart/logic.js +1 -1
  550. package/generators/dart/loops.js +1 -1
  551. package/generators/dart/math.js +1 -1
  552. package/generators/dart/procedures.js +1 -1
  553. package/generators/dart/text.js +1 -1
  554. package/generators/dart/variables.js +1 -1
  555. package/generators/dart/variables_dynamic.js +1 -1
  556. package/generators/dart.js +1 -2
  557. package/generators/javascript/all.js +2 -0
  558. package/generators/javascript/colour.js +1 -1
  559. package/generators/javascript/lists.js +1 -1
  560. package/generators/javascript/logic.js +1 -1
  561. package/generators/javascript/loops.js +1 -1
  562. package/generators/javascript/math.js +4 -4
  563. package/generators/javascript/procedures.js +1 -1
  564. package/generators/javascript/text.js +2 -2
  565. package/generators/javascript/variables.js +1 -1
  566. package/generators/javascript/variables_dynamic.js +1 -1
  567. package/generators/javascript.js +1 -3
  568. package/generators/lua/all.js +2 -0
  569. package/generators/lua/colour.js +1 -1
  570. package/generators/lua/lists.js +1 -1
  571. package/generators/lua/logic.js +1 -1
  572. package/generators/lua/loops.js +1 -1
  573. package/generators/lua/math.js +1 -1
  574. package/generators/lua/procedures.js +1 -1
  575. package/generators/lua/text.js +1 -1
  576. package/generators/lua/variables.js +1 -1
  577. package/generators/lua/variables_dynamic.js +1 -1
  578. package/generators/lua.js +1 -2
  579. package/generators/php/all.js +2 -0
  580. package/generators/php/colour.js +1 -1
  581. package/generators/php/lists.js +1 -2
  582. package/generators/php/logic.js +1 -1
  583. package/generators/php/loops.js +1 -1
  584. package/generators/php/math.js +1 -1
  585. package/generators/php/procedures.js +1 -1
  586. package/generators/php/text.js +1 -1
  587. package/generators/php/variables.js +1 -1
  588. package/generators/php/variables_dynamic.js +1 -1
  589. package/generators/php.js +1 -2
  590. package/generators/python/all.js +2 -0
  591. package/generators/python/colour.js +3 -3
  592. package/generators/python/lists.js +1 -1
  593. package/generators/python/logic.js +1 -1
  594. package/generators/python/loops.js +4 -7
  595. package/generators/python/math.js +1 -1
  596. package/generators/python/procedures.js +1 -1
  597. package/generators/python/text.js +1 -1
  598. package/generators/python/variables.js +1 -1
  599. package/generators/python/variables_dynamic.js +1 -1
  600. package/generators/python.js +1 -2
  601. package/index.d.ts +2 -8
  602. package/javascript.d.ts +0 -3
  603. package/javascript_compressed.js +314 -104
  604. package/javascript_compressed.js.map +1 -1
  605. package/lua.d.ts +0 -3
  606. package/lua_compressed.js +399 -81
  607. package/lua_compressed.js.map +1 -1
  608. package/package.json +5 -5
  609. package/php.d.ts +0 -3
  610. package/php_compressed.js +322 -93
  611. package/php_compressed.js.map +1 -1
  612. package/python.d.ts +0 -3
  613. package/python_compressed.js +237 -90
  614. package/python_compressed.js.map +1 -1
  615. package/blockly.d.ts +0 -26127
  616. package/core/blockly_options.js +0 -28
  617. package/core/bubble_dragger.js +0 -298
  618. package/core/clipboard.js +0 -80
  619. package/core/component_manager.js +0 -263
  620. package/core/contextmenu_items.js +0 -651
  621. package/core/contextmenu_registry.js +0 -178
  622. package/core/delete_area.js +0 -87
  623. package/core/dialog.js +0 -107
  624. package/core/drag_target.js +0 -98
  625. package/core/events/events.js +0 -147
  626. package/core/events/events_abstract.js +0 -133
  627. package/core/events/events_block_base.js +0 -70
  628. package/core/events/events_block_drag.js +0 -89
  629. package/core/events/events_bubble_open.js +0 -90
  630. package/core/events/events_comment_base.js +0 -121
  631. package/core/events/events_marker_move.js +0 -110
  632. package/core/events/events_selected.js +0 -83
  633. package/core/events/events_toolbox_item_select.js +0 -84
  634. package/core/events/events_trashcan_open.js +0 -73
  635. package/core/events/events_var_base.js +0 -70
  636. package/core/events/events_viewport.js +0 -107
  637. package/core/events/workspace_events.js +0 -93
  638. package/core/field_angle.js +0 -591
  639. package/core/field_checkbox.js +0 -255
  640. package/core/field_colour.js +0 -717
  641. package/core/field_image.js +0 -304
  642. package/core/field_label.js +0 -149
  643. package/core/field_label_serializable.js +0 -80
  644. package/core/field_textinput.js +0 -619
  645. package/core/flyout_button.js +0 -356
  646. package/core/grid.js +0 -226
  647. package/core/icon.js +0 -225
  648. package/core/input.js +0 -335
  649. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  650. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  651. package/core/interfaces/i_autohideable.js +0 -40
  652. package/core/interfaces/i_block_dragger.js +0 -66
  653. package/core/interfaces/i_bounded_element.js +0 -45
  654. package/core/interfaces/i_bubble.js +0 -95
  655. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  656. package/core/interfaces/i_connection_checker.js +0 -104
  657. package/core/interfaces/i_contextmenu.js +0 -32
  658. package/core/interfaces/i_copyable.js +0 -49
  659. package/core/interfaces/i_delete_area.js +0 -50
  660. package/core/interfaces/i_drag_target.js +0 -88
  661. package/core/interfaces/i_flyout.js +0 -201
  662. package/core/interfaces/i_keyboard_accessible.js +0 -38
  663. package/core/interfaces/i_metrics_manager.js +0 -154
  664. package/core/interfaces/i_positionable.js +0 -51
  665. package/core/interfaces/i_selectable.js +0 -51
  666. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  667. package/core/interfaces/i_serializer.js +0 -77
  668. package/core/interfaces/i_styleable.js +0 -39
  669. package/core/interfaces/i_toolbox.js +0 -142
  670. package/core/interfaces/i_toolbox_item.js +0 -85
  671. package/core/marker_manager.js +0 -213
  672. package/core/menuitem.js +0 -292
  673. package/core/names.js +0 -293
  674. package/core/registry.js +0 -384
  675. package/core/renderers/common/block_rendering.js +0 -170
  676. package/core/renderers/common/constants.js +0 -1250
  677. package/core/renderers/common/i_path_object.js +0 -162
  678. package/core/renderers/common/marker_svg.js +0 -721
  679. package/core/renderers/common/path_object.js +0 -283
  680. package/core/renderers/common/renderer.js +0 -305
  681. package/core/renderers/geras/constants.js +0 -73
  682. package/core/renderers/geras/geras.js +0 -36
  683. package/core/renderers/geras/measurables/inline_input.js +0 -58
  684. package/core/renderers/geras/measurables/statement_input.js +0 -57
  685. package/core/renderers/geras/renderer.js +0 -149
  686. package/core/renderers/measurables/base.js +0 -64
  687. package/core/renderers/measurables/bottom_row.js +0 -138
  688. package/core/renderers/measurables/connection.js +0 -56
  689. package/core/renderers/measurables/external_value_input.js +0 -70
  690. package/core/renderers/measurables/field.js +0 -71
  691. package/core/renderers/measurables/in_row_spacer.js +0 -47
  692. package/core/renderers/measurables/input_connection.js +0 -75
  693. package/core/renderers/measurables/next_connection.js +0 -50
  694. package/core/renderers/measurables/output_connection.js +0 -61
  695. package/core/renderers/measurables/previous_connection.js +0 -50
  696. package/core/renderers/measurables/round_corner.js +0 -52
  697. package/core/renderers/measurables/row.js +0 -247
  698. package/core/renderers/measurables/spacer_row.js +0 -69
  699. package/core/renderers/measurables/square_corner.js +0 -50
  700. package/core/renderers/measurables/top_row.js +0 -143
  701. package/core/renderers/measurables/types.js +0 -353
  702. package/core/renderers/minimalist/drawer.js +0 -42
  703. package/core/renderers/minimalist/info.js +0 -54
  704. package/core/renderers/minimalist/minimalist.js +0 -26
  705. package/core/renderers/minimalist/renderer.js +0 -80
  706. package/core/renderers/thrasos/renderer.js +0 -53
  707. package/core/renderers/thrasos/thrasos.js +0 -22
  708. package/core/renderers/zelos/marker_svg.js +0 -179
  709. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  710. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  711. package/core/renderers/zelos/path_object.js +0 -247
  712. package/core/renderers/zelos/renderer.js +0 -147
  713. package/core/renderers/zelos/zelos.js +0 -38
  714. package/core/serialization/exceptions.js +0 -144
  715. package/core/shortcut_registry.js +0 -366
  716. package/core/theme/themes.js +0 -23
  717. package/core/theme.js +0 -228
  718. package/core/theme_manager.js +0 -211
  719. package/core/toolbox/category.js +0 -751
  720. package/core/toolbox/collapsible_category.js +0 -311
  721. package/core/toolbox/separator.js +0 -133
  722. package/core/toolbox/toolbox_item.js +0 -173
  723. package/core/touch.js +0 -285
  724. package/core/utils/coordinate.js +0 -138
  725. package/core/utils/global.js +0 -41
  726. package/core/utils/keycodes.js +0 -172
  727. package/core/utils/metrics.js +0 -154
  728. package/core/utils/svg.js +0 -186
  729. package/core/utils/toolbox.js +0 -459
  730. package/core/utils/useragent.js +0 -197
  731. package/core/utils.js +0 -383
  732. package/core/variable_model.js +0 -96
  733. package/core/widgetdiv.js +0 -290
  734. package/core/workspace.js +0 -836
  735. package/core/workspace_comment.js +0 -400
  736. package/core/workspace_dragger.js +0 -115
@@ -7,58 +7,45 @@
7
7
  /**
8
8
  * @fileoverview Calculates and reports workspace metrics.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Calculates and reports workspace metrics.
14
13
  * @class
15
14
  */
16
- goog.module('Blockly.MetricsManager');
17
-
18
- const registry = goog.require('Blockly.registry');
19
- const toolboxUtils = goog.require('Blockly.utils.toolbox');
20
- /* eslint-disable-next-line no-unused-vars */
21
- const {IFlyout} = goog.requireType('Blockly.IFlyout');
22
- /* eslint-disable-next-line no-unused-vars */
23
- const {IMetricsManager} = goog.require('Blockly.IMetricsManager');
24
- /* eslint-disable-next-line no-unused-vars */
25
- const {IToolbox} = goog.requireType('Blockly.IToolbox');
26
- /* eslint-disable-next-line no-unused-vars */
27
- const {Metrics} = goog.requireType('Blockly.utils.Metrics');
28
- const {Size} = goog.require('Blockly.utils.Size');
29
- /* eslint-disable-next-line no-unused-vars */
30
- const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.MetricsManager');
17
+
18
+ import type {IFlyout} from './interfaces/i_flyout.js';
19
+ import type {IMetricsManager} from './interfaces/i_metrics_manager.js';
20
+ import type {IToolbox} from './interfaces/i_toolbox.js';
21
+ import * as registry from './registry.js';
22
+ import type {Metrics} from './utils/metrics.js';
23
+ import {Size} from './utils/size.js';
24
+ import * as toolboxUtils from './utils/toolbox.js';
25
+ import type {WorkspaceSvg} from './workspace_svg.js';
31
26
 
32
27
 
33
28
  /**
34
29
  * The manager for all workspace metrics calculations.
35
- * @implements {IMetricsManager}
36
30
  * @alias Blockly.MetricsManager
37
31
  */
38
- class MetricsManager {
39
- /**
40
- * @param {!WorkspaceSvg} workspace The workspace to calculate metrics
41
- * for.
42
- */
43
- constructor(workspace) {
44
- /**
45
- * The workspace to calculate metrics for.
46
- * @type {!WorkspaceSvg}
47
- * @protected
48
- */
32
+ export class MetricsManager implements IMetricsManager {
33
+ /** The workspace to calculate metrics for. */
34
+ protected readonly workspace_: WorkspaceSvg;
35
+
36
+ /** @param workspace The workspace to calculate metrics for. */
37
+ constructor(workspace: WorkspaceSvg) {
49
38
  this.workspace_ = workspace;
50
39
  }
51
40
 
52
41
  /**
53
42
  * Gets the dimensions of the given workspace component, in pixel coordinates.
54
- * @param {?IToolbox|?IFlyout} elem The element to get the
55
- * dimensions of, or null. It should be a toolbox or flyout, and should
56
- * implement getWidth() and getHeight().
57
- * @return {!Size} An object containing width and height
58
- * attributes, which will both be zero if elem did not exist.
59
- * @protected
43
+ * @param elem The element to get the dimensions of, or null. It should be a
44
+ * toolbox or flyout, and should implement getWidth() and getHeight().
45
+ * @return An object containing width and height attributes, which will both
46
+ * be zero if elem did not exist.
60
47
  */
61
- getDimensionsPx_(elem) {
48
+ protected getDimensionsPx_(elem: IToolbox|null|IFlyout): Size {
62
49
  let width = 0;
63
50
  let height = 0;
64
51
  if (elem) {
@@ -72,13 +59,10 @@ class MetricsManager {
72
59
  * Gets the width and the height of the flyout on the workspace in pixel
73
60
  * coordinates. Returns 0 for the width and height if the workspace has a
74
61
  * category toolbox instead of a simple toolbox.
75
- * @param {boolean=} opt_own Whether to only return the workspace's own
76
- * flyout.
77
- * @return {!MetricsManager.ToolboxMetrics} The width and height of the
78
- * flyout.
79
- * @public
62
+ * @param opt_own Whether to only return the workspace's own flyout.
63
+ * @return The width and height of the flyout.
80
64
  */
81
- getFlyoutMetrics(opt_own) {
65
+ getFlyoutMetrics(opt_own?: boolean): ToolboxMetrics {
82
66
  const flyoutDimensions =
83
67
  this.getDimensionsPx_(this.workspace_.getFlyout(opt_own));
84
68
  return {
@@ -94,11 +78,9 @@ class MetricsManager {
94
78
  * a simple toolbox instead of a category toolbox. To get the width and height
95
79
  * of a
96
80
  * simple toolbox @see {@link getFlyoutMetrics}.
97
- * @return {!MetricsManager.ToolboxMetrics} The object with the width,
98
- * height and position of the toolbox.
99
- * @public
81
+ * @return The object with the width, height and position of the toolbox.
100
82
  */
101
- getToolboxMetrics() {
83
+ getToolboxMetrics(): ToolboxMetrics {
102
84
  const toolboxDimensions =
103
85
  this.getDimensionsPx_(this.workspace_.getToolbox());
104
86
 
@@ -112,11 +94,9 @@ class MetricsManager {
112
94
  /**
113
95
  * Gets the width and height of the workspace's parent SVG element in pixel
114
96
  * coordinates. This area includes the toolbox and the visible workspace area.
115
- * @return {!Size} The width and height of the workspace's parent
116
- * SVG element.
117
- * @public
97
+ * @return The width and height of the workspace's parent SVG element.
118
98
  */
119
- getSvgMetrics() {
99
+ getSvgMetrics(): Size {
120
100
  return this.workspace_.getCachedParentSvgSize();
121
101
  }
122
102
 
@@ -124,11 +104,9 @@ class MetricsManager {
124
104
  * Gets the absolute left and absolute top in pixel coordinates.
125
105
  * This is where the visible workspace starts in relation to the SVG
126
106
  * container.
127
- * @return {!MetricsManager.AbsoluteMetrics} The absolute metrics for
128
- * the workspace.
129
- * @public
107
+ * @return The absolute metrics for the workspace.
130
108
  */
131
- getAbsoluteMetrics() {
109
+ getAbsoluteMetrics(): AbsoluteMetrics {
132
110
  let absoluteLeft = 0;
133
111
  const toolboxMetrics = this.getToolboxMetrics();
134
112
  const flyoutMetrics = this.getFlyoutMetrics(true);
@@ -160,14 +138,12 @@ class MetricsManager {
160
138
  /**
161
139
  * Gets the metrics for the visible workspace in either pixel or workspace
162
140
  * coordinates. The visible workspace does not include the toolbox or flyout.
163
- * @param {boolean=} opt_getWorkspaceCoordinates True to get the view metrics
164
- * in workspace coordinates, false to get them in pixel coordinates.
165
- * @return {!MetricsManager.ContainerRegion} The width, height, top and
166
- * left of the viewport in either workspace coordinates or pixel
167
- * coordinates.
168
- * @public
141
+ * @param opt_getWorkspaceCoordinates True to get the view metrics in
142
+ * workspace coordinates, false to get them in pixel coordinates.
143
+ * @return The width, height, top and left of the viewport in either workspace
144
+ * coordinates or pixel coordinates.
169
145
  */
170
- getViewMetrics(opt_getWorkspaceCoordinates) {
146
+ getViewMetrics(opt_getWorkspaceCoordinates?: boolean): ContainerRegion {
171
147
  const scale = opt_getWorkspaceCoordinates ? this.workspace_.scale : 1;
172
148
  const svgMetrics = this.getSvgMetrics();
173
149
  const toolboxMetrics = this.getToolboxMetrics();
@@ -207,16 +183,12 @@ class MetricsManager {
207
183
  * Gets content metrics in either pixel or workspace coordinates.
208
184
  * The content area is a rectangle around all the top bounded elements on the
209
185
  * workspace (workspace comments and blocks).
210
- * @param {boolean=} opt_getWorkspaceCoordinates True to get the content
211
- * metrics in workspace coordinates, false to get them in pixel
212
- * coordinates.
213
- * @return {!MetricsManager.ContainerRegion} The
214
- * metrics for the content container.
215
- * @public
186
+ * @param opt_getWorkspaceCoordinates True to get the content metrics in
187
+ * workspace coordinates, false to get them in pixel coordinates.
188
+ * @return The metrics for the content container.
216
189
  */
217
- getContentMetrics(opt_getWorkspaceCoordinates) {
190
+ getContentMetrics(opt_getWorkspaceCoordinates?: boolean): ContainerRegion {
218
191
  const scale = opt_getWorkspaceCoordinates ? 1 : this.workspace_.scale;
219
-
220
192
  // Block bounding box is in workspace coordinates.
221
193
  const blockBox = this.workspace_.getBlocksBoundingBox();
222
194
 
@@ -230,10 +202,10 @@ class MetricsManager {
230
202
 
231
203
  /**
232
204
  * Returns whether the scroll area has fixed edges.
233
- * @return {boolean} Whether the scroll area has fixed edges.
234
- * @package
205
+ * @return Whether the scroll area has fixed edges.
206
+ * @internal
235
207
  */
236
- hasFixedEdges() {
208
+ hasFixedEdges(): boolean {
237
209
  // This exists for optimization of bump logic.
238
210
  return !this.workspace_.isMovableHorizontally() ||
239
211
  !this.workspace_.isMovableVertically();
@@ -241,14 +213,13 @@ class MetricsManager {
241
213
 
242
214
  /**
243
215
  * Computes the fixed edges of the scroll area.
244
- * @param {!MetricsManager.ContainerRegion=} opt_viewMetrics The view
245
- * metrics if they have been previously computed. Passing in null may
246
- * cause the view metrics to be computed again, if it is needed.
247
- * @return {!MetricsManager.FixedEdges} The fixed edges of the scroll
248
- * area.
249
- * @protected
216
+ * @param opt_viewMetrics The view metrics if they have been previously
217
+ * computed. Passing in null may cause the view metrics to be computed
218
+ * again, if it is needed.
219
+ * @return The fixed edges of the scroll area.
250
220
  */
251
- getComputedFixedEdges_(opt_viewMetrics) {
221
+ protected getComputedFixedEdges_(opt_viewMetrics?: ContainerRegion):
222
+ FixedEdges {
252
223
  if (!this.hasFixedEdges()) {
253
224
  // Return early if there are no edges.
254
225
  return {};
@@ -259,7 +230,7 @@ class MetricsManager {
259
230
 
260
231
  const viewMetrics = opt_viewMetrics || this.getViewMetrics(false);
261
232
 
262
- const edges = {};
233
+ const edges = {} as FixedEdges;
263
234
  if (!vScrollEnabled) {
264
235
  edges.top = viewMetrics.top;
265
236
  edges.bottom = viewMetrics.top + viewMetrics.height;
@@ -273,15 +244,13 @@ class MetricsManager {
273
244
 
274
245
  /**
275
246
  * Returns the content area with added padding.
276
- * @param {!MetricsManager.ContainerRegion} viewMetrics The view
277
- * metrics.
278
- * @param {!MetricsManager.ContainerRegion} contentMetrics The content
279
- * metrics.
280
- * @return {{top: number, bottom: number, left: number, right: number}} The
281
- * padded content area.
282
- * @protected
247
+ * @param viewMetrics The view metrics.
248
+ * @param contentMetrics The content metrics.
249
+ * @return The padded content area.
283
250
  */
284
- getPaddedContent_(viewMetrics, contentMetrics) {
251
+ protected getPaddedContent_(
252
+ viewMetrics: ContainerRegion, contentMetrics: ContainerRegion):
253
+ {top: number, bottom: number, left: number, right: number} {
285
254
  const contentBottom = contentMetrics.top + contentMetrics.height;
286
255
  const contentRight = contentMetrics.left + contentMetrics.width;
287
256
 
@@ -301,25 +270,24 @@ class MetricsManager {
301
270
  const right =
302
271
  Math.max(contentRight + halfWidth, contentMetrics.left + viewWidth);
303
272
 
304
- return {top: top, bottom: bottom, left: left, right: right};
273
+ return {top, bottom, left, right};
305
274
  }
306
275
 
307
276
  /**
308
277
  * Returns the metrics for the scroll area of the workspace.
309
- * @param {boolean=} opt_getWorkspaceCoordinates True to get the scroll
310
- * metrics in workspace coordinates, false to get them in pixel
311
- * coordinates.
312
- * @param {!MetricsManager.ContainerRegion=} opt_viewMetrics The view
313
- * metrics if they have been previously computed. Passing in null may
314
- * cause the view metrics to be computed again, if it is needed.
315
- * @param {!MetricsManager.ContainerRegion=} opt_contentMetrics The
316
- * content metrics if they have been previously computed. Passing in null
317
- * may cause the content metrics to be computed again, if it is needed.
318
- * @return {!MetricsManager.ContainerRegion} The metrics for the scroll
319
- * container.
278
+ * @param opt_getWorkspaceCoordinates True to get the scroll metrics in
279
+ * workspace coordinates, false to get them in pixel coordinates.
280
+ * @param opt_viewMetrics The view metrics if they have been previously
281
+ * computed. Passing in null may cause the view metrics to be computed
282
+ * again, if it is needed.
283
+ * @param opt_contentMetrics The content metrics if they have been previously
284
+ * computed. Passing in null may cause the content metrics to be computed
285
+ * again, if it is needed.
286
+ * @return The metrics for the scroll container.
320
287
  */
321
288
  getScrollMetrics(
322
- opt_getWorkspaceCoordinates, opt_viewMetrics, opt_contentMetrics) {
289
+ opt_getWorkspaceCoordinates?: boolean, opt_viewMetrics?: ContainerRegion,
290
+ opt_contentMetrics?: ContainerRegion): ContainerRegion {
323
291
  const scale = opt_getWorkspaceCoordinates ? this.workspace_.scale : 1;
324
292
  const viewMetrics = opt_viewMetrics || this.getViewMetrics(false);
325
293
  const contentMetrics = opt_contentMetrics || this.getContentMetrics();
@@ -348,9 +316,9 @@ class MetricsManager {
348
316
 
349
317
  /**
350
318
  * Returns common metrics used by UI elements.
351
- * @return {!MetricsManager.UiMetrics} The UI metrics.
319
+ * @return The UI metrics.
352
320
  */
353
- getUiMetrics() {
321
+ getUiMetrics(): UiMetrics {
354
322
  return {
355
323
  viewMetrics: this.getViewMetrics(),
356
324
  absoluteMetrics: this.getAbsoluteMetrics(),
@@ -390,11 +358,9 @@ class MetricsManager {
390
358
  * .flyoutHeight: Height of the flyout if it is always open. Otherwise zero.
391
359
  * .toolboxPosition: Top, bottom, left or right. Use TOOLBOX_AT constants to
392
360
  * compare.
393
- * @return {!Metrics} Contains size and position metrics of a top
394
- * level workspace.
395
- * @public
361
+ * @return Contains size and position metrics of a top level workspace.
396
362
  */
397
- getMetrics() {
363
+ getMetrics(): Metrics {
398
364
  const toolboxMetrics = this.getToolboxMetrics();
399
365
  const flyoutMetrics = this.getFlyoutMetrics(true);
400
366
  const svgMetrics = this.getSvgMetrics();
@@ -436,60 +402,55 @@ class MetricsManager {
436
402
  }
437
403
  }
438
404
 
439
- /**
440
- * Describes the width, height and location of the toolbox on the main
441
- * workspace.
442
- * @typedef {{
443
- * width: number,
444
- * height: number,
445
- * position: !toolboxUtils.Position
446
- * }}
447
- */
448
- MetricsManager.ToolboxMetrics;
405
+ export namespace MetricsManager {
406
+ /**
407
+ * Describes the width, height and location of the toolbox on the main
408
+ * workspace.
409
+ */
410
+ export interface ToolboxMetrics {
411
+ width: number;
412
+ height: number;
413
+ position: toolboxUtils.Position;
414
+ }
449
415
 
450
- /**
451
- * Describes where the viewport starts in relation to the workspace SVG.
452
- * @typedef {{
453
- * left: number,
454
- * top: number
455
- * }}
456
- */
457
- MetricsManager.AbsoluteMetrics;
416
+ /** Describes where the viewport starts in relation to the workspace SVG. */
417
+ export interface AbsoluteMetrics {
418
+ left: number;
419
+ top: number;
420
+ }
458
421
 
459
- /**
460
- * All the measurements needed to describe the size and location of a
461
- * container.
462
- * @typedef {{
463
- * height: number,
464
- * width: number,
465
- * top: number,
466
- * left: number
467
- * }}
468
- */
469
- MetricsManager.ContainerRegion;
422
+ /**
423
+ * All the measurements needed to describe the size and location of a
424
+ * container.
425
+ */
426
+ export interface ContainerRegion {
427
+ height: number;
428
+ width: number;
429
+ top: number;
430
+ left: number;
431
+ }
470
432
 
471
- /**
472
- * Describes fixed edges of the workspace.
473
- * @typedef {{
474
- * top: (number|undefined),
475
- * bottom: (number|undefined),
476
- * left: (number|undefined),
477
- * right: (number|undefined)
478
- * }}
479
- */
480
- MetricsManager.FixedEdges;
433
+ /** Describes fixed edges of the workspace. */
434
+ export interface FixedEdges {
435
+ top?: number;
436
+ bottom?: number;
437
+ left?: number;
438
+ right?: number;
439
+ }
481
440
 
482
- /**
483
- * Common metrics used for UI elements.
484
- * @typedef {{
485
- * viewMetrics: !MetricsManager.ContainerRegion,
486
- * absoluteMetrics: !MetricsManager.AbsoluteMetrics,
487
- * toolboxMetrics: !MetricsManager.ToolboxMetrics
488
- * }}
489
- */
490
- MetricsManager.UiMetrics;
441
+ /** Common metrics used for UI elements. */
442
+ export interface UiMetrics {
443
+ viewMetrics: ContainerRegion;
444
+ absoluteMetrics: AbsoluteMetrics;
445
+ toolboxMetrics: ToolboxMetrics;
446
+ }
447
+ }
448
+
449
+ export type ToolboxMetrics = MetricsManager.ToolboxMetrics;
450
+ export type AbsoluteMetrics = MetricsManager.AbsoluteMetrics;
451
+ export type ContainerRegion = MetricsManager.ContainerRegion;
452
+ export type FixedEdges = MetricsManager.FixedEdges;
453
+ export type UiMetrics = MetricsManager.UiMetrics;
491
454
 
492
455
  registry.register(
493
456
  registry.Type.METRICS_MANAGER, registry.DEFAULT, MetricsManager);
494
-
495
- exports.MetricsManager = MetricsManager;
package/core/msg.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2013 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /** A dictionary of localised messages. */
7
+ export declare const Msg: {
8
+ [key: string]: string;
9
+ };
@@ -7,18 +7,14 @@
7
7
  /**
8
8
  * @fileoverview Empty name space for the Message singleton.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Empty name space for the Message singleton.
14
13
  * @namespace Blockly.Msg
15
14
  */
16
- goog.module('Blockly.Msg');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.Msg');
17
17
 
18
18
 
19
- /**
20
- * A dictionary of localised messages.
21
- * @type {!Object<string>}
22
- */
23
- const Msg = Object.create(null);
24
- exports.Msg = Msg;
19
+ /** A dictionary of localised messages. */
20
+ export const Msg: {[key: string]: string} = Object.create(null);
@@ -0,0 +1,128 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2012 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import './events/events_bubble_open.js';
7
+ import type { Block } from './block.js';
8
+ import type { BlockSvg } from './block_svg.js';
9
+ import type { Connection } from './connection.js';
10
+ import type { Abstract } from './events/events_abstract.js';
11
+ import { Icon } from './icon.js';
12
+ import { Options } from './options.js';
13
+ import type { WorkspaceSvg } from './workspace_svg.js';
14
+ /**
15
+ * Class for a mutator dialog.
16
+ * @alias Blockly.Mutator
17
+ */
18
+ export declare class Mutator extends Icon {
19
+ quarkNames_: any;
20
+ /** Workspace in the mutator's bubble. */
21
+ private workspace_;
22
+ /** Width of workspace. */
23
+ private workspaceWidth_;
24
+ /** Height of workspace. */
25
+ private workspaceHeight_;
26
+ /**
27
+ * The SVG element that is the parent of the mutator workspace, or null if
28
+ * not created.
29
+ */
30
+ private svgDialog_;
31
+ /**
32
+ * The root block of the mutator workspace, created by decomposing the
33
+ * source block.
34
+ */
35
+ private rootBlock_;
36
+ /**
37
+ * Function registered on the main workspace to update the mutator contents
38
+ * when the main workspace changes.
39
+ */
40
+ private sourceListener_;
41
+ /**
42
+ * The PID associated with the updateWorkpace_ timeout, or 0 if no timeout
43
+ * is currently running.
44
+ */
45
+ private updateWorkspacePid_;
46
+ /** @param quarkNames List of names of sub-blocks for flyout. */
47
+ constructor(block: BlockSvg, quarkNames: string[]);
48
+ /**
49
+ * Set the block this mutator is associated with.
50
+ * @param block The block associated with this mutator.
51
+ * @internal
52
+ */
53
+ setBlock(block: BlockSvg): void;
54
+ /**
55
+ * Returns the workspace inside this mutator icon's bubble.
56
+ * @return The workspace inside this mutator icon's bubble or null if the
57
+ * mutator isn't open.
58
+ * @internal
59
+ */
60
+ getWorkspace(): WorkspaceSvg | null;
61
+ /**
62
+ * Draw the mutator icon.
63
+ * @param group The icon group.
64
+ */
65
+ protected drawIcon_(group: Element): void;
66
+ /**
67
+ * Clicking on the icon toggles if the mutator bubble is visible.
68
+ * Disable if block is uneditable.
69
+ * @param e Mouse click event.
70
+ */
71
+ protected iconClick_(e: MouseEvent): void;
72
+ /**
73
+ * Create the editor for the mutator's bubble.
74
+ * @return The top-level node of the editor.
75
+ */
76
+ private createEditor_;
77
+ /**
78
+ * @internal
79
+ */
80
+ newWorkspaceSvg(options: Options): WorkspaceSvg;
81
+ /** Add or remove the UI indicating if this icon may be clicked or not. */
82
+ updateEditable(): void;
83
+ /** Resize the bubble to match the size of the workspace. */
84
+ private resizeBubble_;
85
+ /** A method handler for when the bubble is moved. */
86
+ private onBubbleMove_;
87
+ /**
88
+ * Show or hide the mutator bubble.
89
+ * @param visible True if the bubble should be visible.
90
+ */
91
+ setVisible(visible: boolean): void;
92
+ /**
93
+ * Fired whenever a change is made to the mutator's workspace.
94
+ * @param e Custom data for event.
95
+ */
96
+ private workspaceChanged_;
97
+ /**
98
+ * Returns whether the given event in the mutator workspace should be ignored
99
+ * when deciding whether to update the workspace and compose the block or not.
100
+ * @param e The event.
101
+ * @return Whether to ignore the event or not.
102
+ */
103
+ shouldIgnoreMutatorEvent_(e: Abstract): boolean;
104
+ /**
105
+ * Updates the source block when the mutator's blocks are changed.
106
+ * Bump down any block that's too high.
107
+ */
108
+ private updateWorkspace_;
109
+ /** Dispose of this mutator. */
110
+ dispose(): void;
111
+ /** Update the styles on all blocks in the mutator. */
112
+ updateBlockStyle(): void;
113
+ /**
114
+ * Reconnect an block to a mutated input.
115
+ * @param connectionChild Connection on child block.
116
+ * @param block Parent block.
117
+ * @param inputName Name of input on parent block.
118
+ * @return True iff a reconnection was made, false otherwise.
119
+ */
120
+ static reconnect(connectionChild: Connection, block: Block, inputName: string): boolean;
121
+ /**
122
+ * Get the parent workspace of a workspace that is inside a mutator, taking
123
+ * into account whether it is a flyout.
124
+ * @param workspace The workspace that is inside a mutator.
125
+ * @return The mutator's parent workspace or null.
126
+ */
127
+ static findParentWs(workspace: WorkspaceSvg): WorkspaceSvg | null;
128
+ }