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,184 +7,123 @@
7
7
  /**
8
8
  * @fileoverview Object representing a zoom icons.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Object representing a zoom icons.
14
13
  * @class
15
14
  */
16
- goog.module('Blockly.ZoomControls');
17
-
18
- const Css = goog.require('Blockly.Css');
19
- const Touch = goog.require('Blockly.Touch');
20
- const browserEvents = goog.require('Blockly.browserEvents');
21
- const dom = goog.require('Blockly.utils.dom');
22
- const eventUtils = goog.require('Blockly.Events.utils');
23
- const {SPRITE} = goog.require('Blockly.sprite');
24
- const uiPosition = goog.require('Blockly.uiPosition');
25
- const {ComponentManager} = goog.require('Blockly.ComponentManager');
26
- /* eslint-disable-next-line no-unused-vars */
27
- const {IPositionable} = goog.require('Blockly.IPositionable');
28
- /* eslint-disable-next-line no-unused-vars */
29
- const {MetricsManager} = goog.requireType('Blockly.MetricsManager');
30
- const {Rect} = goog.require('Blockly.utils.Rect');
31
- const {Size} = goog.require('Blockly.utils.Size');
32
- const {Svg} = goog.require('Blockly.utils.Svg');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.ZoomControls');
17
+
33
18
  /* eslint-disable-next-line no-unused-vars */
34
- const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
35
- /** @suppress {extraRequire} */
36
- goog.require('Blockly.Events.Click');
19
+ // Unused import preserved for side-effects. Remove if unneeded.
20
+ // import './metrics_manager.js';
21
+ // Unused import preserved for side-effects. Remove if unneeded.
22
+ import './events/events_click.js';
23
+
24
+ import * as browserEvents from './browser_events.js';
25
+ import {ComponentManager} from './component_manager.js';
26
+ import * as Css from './css.js';
27
+ import * as eventUtils from './events/utils.js';
28
+ import type {IPositionable} from './interfaces/i_positionable.js';
29
+ import type {UiMetrics} from './metrics_manager.js';
30
+ import * as uiPosition from './positionable_helpers.js';
31
+ import {SPRITE} from './sprites.js';
32
+ import * as Touch from './touch.js';
33
+ import * as dom from './utils/dom.js';
34
+ import {Rect} from './utils/rect.js';
35
+ import {Size} from './utils/size.js';
36
+ import {Svg} from './utils/svg.js';
37
+ import type {WorkspaceSvg} from './workspace_svg.js';
37
38
 
38
39
 
39
40
  /**
40
41
  * Class for a zoom controls.
41
- * @implements {IPositionable}
42
42
  * @alias Blockly.ZoomControls
43
43
  */
44
- class ZoomControls {
44
+ export class ZoomControls implements IPositionable {
45
45
  /**
46
- * @param {!WorkspaceSvg} workspace The workspace to sit in.
46
+ * The unique id for this component that is used to register with the
47
+ * ComponentManager.
47
48
  */
48
- constructor(workspace) {
49
- /**
50
- * @type {!WorkspaceSvg}
51
- * @private
52
- */
53
- this.workspace_ = workspace;
54
-
55
- /**
56
- * The unique id for this component that is used to register with the
57
- * ComponentManager.
58
- * @type {string}
59
- */
60
- this.id = 'zoomControls';
61
-
62
- /**
63
- * A handle to use to unbind the mouse down event handler for zoom reset
64
- * button. Opaque data returned from browserEvents.conditionalBind.
65
- * @type {?browserEvents.Data}
66
- * @private
67
- */
68
- this.onZoomResetWrapper_ = null;
69
-
70
- /**
71
- * A handle to use to unbind the mouse down event handler for zoom in
72
- * button. Opaque data returned from browserEvents.conditionalBind.
73
- * @type {?browserEvents.Data}
74
- * @private
75
- */
76
- this.onZoomInWrapper_ = null;
77
-
78
- /**
79
- * A handle to use to unbind the mouse down event handler for zoom out
80
- * button. Opaque data returned from browserEvents.conditionalBind.
81
- * @type {?browserEvents.Data}
82
- * @private
83
- */
84
- this.onZoomOutWrapper_ = null;
85
-
86
- /**
87
- * The zoom in svg <g> element.
88
- * @type {SVGGElement}
89
- * @private
90
- */
91
- this.zoomInGroup_ = null;
92
-
93
- /**
94
- * The zoom out svg <g> element.
95
- * @type {SVGGElement}
96
- * @private
97
- */
98
- this.zoomOutGroup_ = null;
99
-
100
- /**
101
- * The zoom reset svg <g> element.
102
- * @type {SVGGElement}
103
- * @private
104
- */
105
- this.zoomResetGroup_ = null;
106
-
107
- /**
108
- * Width of the zoom controls.
109
- * @type {number}
110
- * @const
111
- * @private
112
- */
113
- this.WIDTH_ = 32;
114
-
115
- /**
116
- * Height of each zoom control.
117
- * @type {number}
118
- * @const
119
- * @private
120
- */
121
- this.HEIGHT_ = 32;
122
-
123
- /**
124
- * Small spacing used between the zoom in and out control, in pixels.
125
- * @type {number}
126
- * @const
127
- * @private
128
- */
129
- this.SMALL_SPACING_ = 2;
130
-
131
- /**
132
- * Large spacing used between the zoom in and reset control, in pixels.
133
- * @type {number}
134
- * @const
135
- * @private
136
- */
137
- this.LARGE_SPACING_ = 11;
138
-
139
- /**
140
- * Distance between zoom controls and bottom or top edge of workspace.
141
- * @type {number}
142
- * @const
143
- * @private
144
- */
145
- this.MARGIN_VERTICAL_ = 20;
146
-
147
- /**
148
- * Distance between zoom controls and right or left edge of workspace.
149
- * @type {number}
150
- * @private
151
- */
152
- this.MARGIN_HORIZONTAL_ = 20;
153
-
154
- /**
155
- * The SVG group containing the zoom controls.
156
- * @type {SVGElement}
157
- * @private
158
- */
159
- this.svgGroup_ = null;
160
-
161
- /**
162
- * Left coordinate of the zoom controls.
163
- * @type {number}
164
- * @private
165
- */
166
- this.left_ = 0;
167
-
168
- /**
169
- * Top coordinate of the zoom controls.
170
- * @type {number}
171
- * @private
172
- */
173
- this.top_ = 0;
174
-
175
- /**
176
- * Whether this has been initialized.
177
- * @type {boolean}
178
- * @private
179
- */
180
- this.initialized_ = false;
181
- }
49
+ id = 'zoomControls';
50
+
51
+ /**
52
+ * A handle to use to unbind the mouse down event handler for zoom reset
53
+ * button. Opaque data returned from browserEvents.conditionalBind.
54
+ */
55
+ private onZoomResetWrapper_: browserEvents.Data|null = null;
56
+
57
+ /**
58
+ * A handle to use to unbind the mouse down event handler for zoom in
59
+ * button. Opaque data returned from browserEvents.conditionalBind.
60
+ */
61
+ private onZoomInWrapper_: browserEvents.Data|null = null;
62
+
63
+ /**
64
+ * A handle to use to unbind the mouse down event handler for zoom out
65
+ * button. Opaque data returned from browserEvents.conditionalBind.
66
+ */
67
+ private onZoomOutWrapper_: browserEvents.Data|null = null;
68
+
69
+ /** The zoom in svg <g> element. */
70
+ // AnyDuringMigration because: Type 'null' is not assignable to type
71
+ // 'SVGGElement'.
72
+ private zoomInGroup_: SVGGElement = null as AnyDuringMigration;
73
+
74
+ /** The zoom out svg <g> element. */
75
+ // AnyDuringMigration because: Type 'null' is not assignable to type
76
+ // 'SVGGElement'.
77
+ private zoomOutGroup_: SVGGElement = null as AnyDuringMigration;
78
+
79
+ /** The zoom reset svg <g> element. */
80
+ // AnyDuringMigration because: Type 'null' is not assignable to type
81
+ // 'SVGGElement'.
82
+ private zoomResetGroup_: SVGGElement = null as AnyDuringMigration;
83
+
84
+ /** Width of the zoom controls. */
85
+ private readonly WIDTH_ = 32;
86
+
87
+ /** Height of each zoom control. */
88
+ private readonly HEIGHT_ = 32;
89
+
90
+ /** Small spacing used between the zoom in and out control, in pixels. */
91
+ private readonly SMALL_SPACING_ = 2;
92
+
93
+ /**
94
+ * Large spacing used between the zoom in and reset control, in pixels.
95
+ */
96
+ private readonly LARGE_SPACING_ = 11;
97
+
98
+ /** Distance between zoom controls and bottom or top edge of workspace. */
99
+ private readonly MARGIN_VERTICAL_ = 20;
100
+
101
+ /** Distance between zoom controls and right or left edge of workspace. */
102
+ private readonly MARGIN_HORIZONTAL_ = 20;
103
+
104
+ /** The SVG group containing the zoom controls. */
105
+ // AnyDuringMigration because: Type 'null' is not assignable to type
106
+ // 'SVGElement'.
107
+ private svgGroup_: SVGElement = null as AnyDuringMigration;
108
+
109
+ /** Left coordinate of the zoom controls. */
110
+ private left_ = 0;
111
+
112
+ /** Top coordinate of the zoom controls. */
113
+ private top_ = 0;
114
+
115
+ /** Whether this has been initialized. */
116
+ private initialized_ = false;
117
+
118
+ /** @param workspace The workspace to sit in. */
119
+ constructor(private readonly workspace: WorkspaceSvg) {}
120
+
182
121
  /**
183
122
  * Create the zoom controls.
184
- * @return {!SVGElement} The zoom controls SVG group.
123
+ * @return The zoom controls SVG group.
185
124
  */
186
- createDom() {
187
- this.svgGroup_ = dom.createSvgElement(Svg.G, {}, null);
125
+ createDom(): SVGElement {
126
+ this.svgGroup_ = dom.createSvgElement(Svg.G, {});
188
127
 
189
128
  // Each filter/pattern needs a unique ID for the case of multiple Blockly
190
129
  // instances on a page. Browser behaviour becomes undefined otherwise.
@@ -192,30 +131,30 @@ class ZoomControls {
192
131
  const rnd = String(Math.random()).substring(2);
193
132
  this.createZoomOutSvg_(rnd);
194
133
  this.createZoomInSvg_(rnd);
195
- if (this.workspace_.isMovable()) {
134
+ if (this.workspace.isMovable()) {
196
135
  // If we zoom to the center and the workspace isn't movable we could
197
136
  // loose blocks at the edges of the workspace.
198
137
  this.createZoomResetSvg_(rnd);
199
138
  }
200
139
  return this.svgGroup_;
201
140
  }
202
- /**
203
- * Initializes the zoom controls.
204
- */
141
+
142
+ /** Initializes the zoom controls. */
205
143
  init() {
206
- this.workspace_.getComponentManager().addComponent({
144
+ this.workspace.getComponentManager().addComponent({
207
145
  component: this,
208
146
  weight: 2,
209
147
  capabilities: [ComponentManager.Capability.POSITIONABLE],
210
148
  });
211
149
  this.initialized_ = true;
212
150
  }
151
+
213
152
  /**
214
153
  * Disposes of this zoom controls.
215
154
  * Unlink from all DOM elements to prevent memory leaks.
216
155
  */
217
156
  dispose() {
218
- this.workspace_.getComponentManager().removeComponent('zoomControls');
157
+ this.workspace.getComponentManager().removeComponent('zoomControls');
219
158
  if (this.svgGroup_) {
220
159
  dom.removeNode(this.svgGroup_);
221
160
  }
@@ -229,13 +168,14 @@ class ZoomControls {
229
168
  browserEvents.unbind(this.onZoomOutWrapper_);
230
169
  }
231
170
  }
171
+
232
172
  /**
233
173
  * Returns the bounding rectangle of the UI element in pixel units relative to
234
174
  * the Blockly injection div.
235
- * @return {?Rect} The UI elements's bounding box. Null if
236
- * bounding box should be ignored by other UI elements.
175
+ * @return The UI elements's bounding box. Null if bounding box should be
176
+ * ignored by other UI elements.
237
177
  */
238
- getBoundingRectangle() {
178
+ getBoundingRectangle(): Rect|null {
239
179
  let height = this.SMALL_SPACING_ + 2 * this.HEIGHT_;
240
180
  if (this.zoomResetGroup_) {
241
181
  height += this.LARGE_SPACING_ + this.HEIGHT_;
@@ -244,29 +184,29 @@ class ZoomControls {
244
184
  const right = this.left_ + this.WIDTH_;
245
185
  return new Rect(this.top_, bottom, this.left_, right);
246
186
  }
187
+
247
188
  /**
248
189
  * Positions the zoom controls.
249
190
  * It is positioned in the opposite corner to the corner the
250
191
  * categories/toolbox starts at.
251
- * @param {!MetricsManager.UiMetrics} metrics The workspace metrics.
252
- * @param {!Array<!Rect>} savedPositions List of rectangles that
253
- * are already on the workspace.
192
+ * @param metrics The workspace metrics.
193
+ * @param savedPositions List of rectangles that are already on the workspace.
254
194
  */
255
- position(metrics, savedPositions) {
195
+ position(metrics: UiMetrics, savedPositions: Rect[]) {
256
196
  // Not yet initialized.
257
197
  if (!this.initialized_) {
258
198
  return;
259
199
  }
260
200
 
261
201
  const cornerPosition =
262
- uiPosition.getCornerOppositeToolbox(this.workspace_, metrics);
202
+ uiPosition.getCornerOppositeToolbox(this.workspace, metrics);
263
203
  let height = this.SMALL_SPACING_ + 2 * this.HEIGHT_;
264
204
  if (this.zoomResetGroup_) {
265
205
  height += this.LARGE_SPACING_ + this.HEIGHT_;
266
206
  }
267
207
  const startRect = uiPosition.getStartPositionRect(
268
208
  cornerPosition, new Size(this.WIDTH_, height), this.MARGIN_HORIZONTAL_,
269
- this.MARGIN_VERTICAL_, metrics, this.workspace_);
209
+ this.MARGIN_VERTICAL_, metrics, this.workspace);
270
210
 
271
211
  const verticalPosition = cornerPosition.vertical;
272
212
  const bumpDirection = verticalPosition === uiPosition.verticalPosition.TOP ?
@@ -301,24 +241,24 @@ class ZoomControls {
301
241
  this.svgGroup_.setAttribute(
302
242
  'transform', 'translate(' + this.left_ + ',' + this.top_ + ')');
303
243
  }
244
+
304
245
  /**
305
246
  * Create the zoom in icon and its event handler.
306
- * @param {string} rnd The random string to use as a suffix in the clip path's
307
- * ID. These IDs must be unique in case there are multiple Blockly
308
- * instances on the same page.
309
- * @private
247
+ * @param rnd The random string to use as a suffix in the clip path's ID.
248
+ * These IDs must be unique in case there are multiple Blockly instances
249
+ * on the same page.
310
250
  */
311
- createZoomOutSvg_(rnd) {
251
+ private createZoomOutSvg_(rnd: string) {
312
252
  /* This markup will be generated and added to the .svgGroup_:
313
- <g class="blocklyZoom">
314
- <clipPath id="blocklyZoomoutClipPath837493">
315
- <rect width="32" height="32></rect>
316
- </clipPath>
317
- <image width="96" height="124" x="-64" y="-92"
318
- xlink:href="media/sprites.png"
319
- clip-path="url(#blocklyZoomoutClipPath837493)"></image>
320
- </g>
321
- */
253
+ <g class="blocklyZoom">
254
+ <clipPath id="blocklyZoomoutClipPath837493">
255
+ <rect width="32" height="32></rect>
256
+ </clipPath>
257
+ <image width="96" height="124" x="-64" y="-92"
258
+ xlink:href="media/sprites.png"
259
+ clip-path="url(#blocklyZoomoutClipPath837493)"></image>
260
+ </g>
261
+ */
322
262
  this.zoomOutGroup_ =
323
263
  dom.createSvgElement(Svg.G, {'class': 'blocklyZoom'}, this.svgGroup_);
324
264
  const clip = dom.createSvgElement(
@@ -341,30 +281,30 @@ class ZoomControls {
341
281
  this.zoomOutGroup_);
342
282
  zoomoutSvg.setAttributeNS(
343
283
  dom.XLINK_NS, 'xlink:href',
344
- this.workspace_.options.pathToMedia + SPRITE.url);
284
+ this.workspace.options.pathToMedia + SPRITE.url);
345
285
 
346
286
  // Attach listener.
347
287
  this.onZoomOutWrapper_ = browserEvents.conditionalBind(
348
288
  this.zoomOutGroup_, 'mousedown', null, this.zoom_.bind(this, -1));
349
289
  }
290
+
350
291
  /**
351
292
  * Create the zoom out icon and its event handler.
352
- * @param {string} rnd The random string to use as a suffix in the clip path's
353
- * ID. These IDs must be unique in case there are multiple Blockly
354
- * instances on the same page.
355
- * @private
293
+ * @param rnd The random string to use as a suffix in the clip path's ID.
294
+ * These IDs must be unique in case there are multiple Blockly instances
295
+ * on the same page.
356
296
  */
357
- createZoomInSvg_(rnd) {
297
+ private createZoomInSvg_(rnd: string) {
358
298
  /* This markup will be generated and added to the .svgGroup_:
359
- <g class="blocklyZoom">
360
- <clipPath id="blocklyZoominClipPath837493">
361
- <rect width="32" height="32"></rect>
362
- </clipPath>
363
- <image width="96" height="124" x="-32" y="-92"
364
- xlink:href="media/sprites.png"
365
- clip-path="url(#blocklyZoominClipPath837493)"></image>
366
- </g>
367
- */
299
+ <g class="blocklyZoom">
300
+ <clipPath id="blocklyZoominClipPath837493">
301
+ <rect width="32" height="32"></rect>
302
+ </clipPath>
303
+ <image width="96" height="124" x="-32" y="-92"
304
+ xlink:href="media/sprites.png"
305
+ clip-path="url(#blocklyZoominClipPath837493)"></image>
306
+ </g>
307
+ */
368
308
  this.zoomInGroup_ =
369
309
  dom.createSvgElement(Svg.G, {'class': 'blocklyZoom'}, this.svgGroup_);
370
310
  const clip = dom.createSvgElement(
@@ -386,46 +326,46 @@ class ZoomControls {
386
326
  this.zoomInGroup_);
387
327
  zoominSvg.setAttributeNS(
388
328
  dom.XLINK_NS, 'xlink:href',
389
- this.workspace_.options.pathToMedia + SPRITE.url);
329
+ this.workspace.options.pathToMedia + SPRITE.url);
390
330
 
391
331
  // Attach listener.
392
332
  this.onZoomInWrapper_ = browserEvents.conditionalBind(
393
333
  this.zoomInGroup_, 'mousedown', null, this.zoom_.bind(this, 1));
394
334
  }
335
+
395
336
  /**
396
337
  * Handles a mouse down event on the zoom in or zoom out buttons on the
397
338
  * workspace.
398
- * @param {number} amount Amount of zooming. Negative amount values zoom out,
399
- * and positive amount values zoom in.
400
- * @param {!Event} e A mouse down event.
401
- * @private
339
+ * @param amount Amount of zooming. Negative amount values zoom out, and
340
+ * positive amount values zoom in.
341
+ * @param e A mouse down event.
402
342
  */
403
- zoom_(amount, e) {
404
- this.workspace_.markFocused();
405
- this.workspace_.zoomCenter(amount);
343
+ private zoom_(amount: number, e: Event) {
344
+ this.workspace.markFocused();
345
+ this.workspace.zoomCenter(amount);
406
346
  this.fireZoomEvent_();
407
347
  Touch.clearTouchIdentifier(); // Don't block future drags.
408
348
  e.stopPropagation(); // Don't start a workspace scroll.
409
349
  e.preventDefault(); // Stop double-clicking from selecting text.
410
350
  }
351
+
411
352
  /**
412
353
  * Create the zoom reset icon and its event handler.
413
- * @param {string} rnd The random string to use as a suffix in the clip path's
414
- * ID. These IDs must be unique in case there are multiple Blockly
415
- * instances on the same page.
416
- * @private
354
+ * @param rnd The random string to use as a suffix in the clip path's ID.
355
+ * These IDs must be unique in case there are multiple Blockly instances
356
+ * on the same page.
417
357
  */
418
- createZoomResetSvg_(rnd) {
358
+ private createZoomResetSvg_(rnd: string) {
419
359
  /* This markup will be generated and added to the .svgGroup_:
420
- <g class="blocklyZoom">
421
- <clipPath id="blocklyZoomresetClipPath837493">
422
- <rect width="32" height="32"></rect>
423
- </clipPath>
424
- <image width="96" height="124" x="-32" y="-92"
425
- xlink:href="media/sprites.png"
426
- clip-path="url(#blocklyZoomresetClipPath837493)"></image>
427
- </g>
428
- */
360
+ <g class="blocklyZoom">
361
+ <clipPath id="blocklyZoomresetClipPath837493">
362
+ <rect width="32" height="32"></rect>
363
+ </clipPath>
364
+ <image width="96" height="124" x="-32" y="-92"
365
+ xlink:href="media/sprites.png"
366
+ clip-path="url(#blocklyZoomresetClipPath837493)"></image>
367
+ </g>
368
+ */
429
369
  this.zoomResetGroup_ =
430
370
  dom.createSvgElement(Svg.G, {'class': 'blocklyZoom'}, this.svgGroup_);
431
371
  const clip = dom.createSvgElement(
@@ -442,54 +382,50 @@ class ZoomControls {
442
382
  this.zoomResetGroup_);
443
383
  zoomresetSvg.setAttributeNS(
444
384
  dom.XLINK_NS, 'xlink:href',
445
- this.workspace_.options.pathToMedia + SPRITE.url);
385
+ this.workspace.options.pathToMedia + SPRITE.url);
446
386
 
447
387
  // Attach event listeners.
448
388
  this.onZoomResetWrapper_ = browserEvents.conditionalBind(
449
389
  this.zoomResetGroup_, 'mousedown', null, this.resetZoom_.bind(this));
450
390
  }
391
+
451
392
  /**
452
393
  * Handles a mouse down event on the reset zoom button on the workspace.
453
- * @param {!Event} e A mouse down event.
454
- * @private
394
+ * @param e A mouse down event.
455
395
  */
456
- resetZoom_(e) {
457
- this.workspace_.markFocused();
396
+ private resetZoom_(e: Event) {
397
+ this.workspace.markFocused();
458
398
 
459
399
  // zoom is passed amount and computes the new scale using the formula:
460
400
  // targetScale = currentScale * Math.pow(speed, amount)
461
- const targetScale = this.workspace_.options.zoomOptions.startScale;
462
- const currentScale = this.workspace_.scale;
463
- const speed = this.workspace_.options.zoomOptions.scaleSpeed;
401
+ const targetScale = this.workspace.options.zoomOptions.startScale;
402
+ const currentScale = this.workspace.scale;
403
+ const speed = this.workspace.options.zoomOptions.scaleSpeed;
464
404
  // To compute amount:
465
405
  // amount = log(speed, (targetScale / currentScale))
466
406
  // Math.log computes natural logarithm (ln), to change the base, use
467
407
  // formula: log(base, value) = ln(value) / ln(base)
468
408
  const amount = Math.log(targetScale / currentScale) / Math.log(speed);
469
- this.workspace_.beginCanvasTransition();
470
- this.workspace_.zoomCenter(amount);
471
- this.workspace_.scrollCenter();
409
+ this.workspace.beginCanvasTransition();
410
+ this.workspace.zoomCenter(amount);
411
+ this.workspace.scrollCenter();
472
412
 
473
- setTimeout(this.workspace_.endCanvasTransition.bind(this.workspace_), 500);
413
+ setTimeout(this.workspace.endCanvasTransition.bind(this.workspace), 500);
474
414
  this.fireZoomEvent_();
475
415
  Touch.clearTouchIdentifier(); // Don't block future drags.
476
416
  e.stopPropagation(); // Don't start a workspace scroll.
477
417
  e.preventDefault(); // Stop double-clicking from selecting text.
478
418
  }
479
- /**
480
- * Fires a zoom control UI event.
481
- * @private
482
- */
483
- fireZoomEvent_() {
484
- const uiEvent = new (eventUtils.get(eventUtils.CLICK))(
485
- null, this.workspace_.id, 'zoom_controls');
419
+
420
+ /** Fires a zoom control UI event. */
421
+ private fireZoomEvent_() {
422
+ const uiEvent = new (eventUtils.get(eventUtils.CLICK))!
423
+ (null, this.workspace.id, 'zoom_controls');
486
424
  eventUtils.fire(uiEvent);
487
425
  }
488
426
  }
489
427
 
490
- /**
491
- * CSS for zoom controls. See css.js for use.
492
- */
428
+ /** CSS for zoom controls. See css.js for use. */
493
429
  Css.register(`
494
430
  .blocklyZoom>image, .blocklyZoom>svg>image {
495
431
  opacity: .4;
@@ -503,5 +439,3 @@ Css.register(`
503
439
  opacity: .8;
504
440
  }
505
441
  `);
506
-
507
- exports.ZoomControls = ZoomControls;
package/core.d.ts CHANGED
@@ -9,6 +9,4 @@
9
9
  * @author samelh@google.com (Sam El-Husseini)
10
10
  */
11
11
 
12
- /// <reference path="blockly.d.ts" />
13
-
14
- export * from 'core/blockly';
12
+ export * from './core/blockly';
package/core.js CHANGED
@@ -23,13 +23,12 @@ Blockly.setLocale = function (locale) {
23
23
 
24
24
  // Override textToDomDocument and provide Node.js alternatives to DOMParser and
25
25
  // XMLSerializer.
26
- const globalThis = Blockly.utils.global;
27
26
  if (typeof globalThis.document !== 'object') {
28
27
  const jsdom = require('jsdom/lib/jsdom/living');
29
28
  globalThis.DOMParser = jsdom.DOMParser;
30
29
  globalThis.XMLSerializer = jsdom.XMLSerializer;
31
30
  const xmlDocument = Blockly.utils.xml.textToDomDocument(
32
- `<xml xmlns="${Blockly.utils.xml.NAME_SPACE}"></xml>`);
31
+ `<xml xmlns="${Blockly.utils.xml.NAME_SPACE}"></xml>`);
33
32
  Blockly.utils.xml.setDocument(xmlDocument);
34
33
  }
35
34
 
package/dart.d.ts CHANGED
@@ -9,8 +9,5 @@
9
9
  * @author samelh@google.com (Sam El-Husseini)
10
10
  */
11
11
 
12
- /// <reference path="core.d.ts" />
13
-
14
- import * as Blockly from './core';
15
12
  declare const dart: any;
16
13
  export = dart;