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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (858) hide show
  1. package/blockly.min.js +2421 -2688
  2. package/blockly_compressed.js +1499 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks/blocks.js +3 -2
  5. package/blocks/colour.js +3 -1
  6. package/blocks/lists.js +94 -22
  7. package/blocks/logic.js +14 -6
  8. package/blocks/loops.js +5 -3
  9. package/blocks/math.js +3 -1
  10. package/blocks/procedures.js +3 -1
  11. package/blocks/text.js +14 -6
  12. package/blocks/variables.js +3 -1
  13. package/blocks/variables_dynamic.js +3 -1
  14. package/blocks.d.ts +0 -2
  15. package/blocks_compressed.js +189 -171
  16. package/blocks_compressed.js.map +1 -1
  17. package/closure/goog/base.d.ts +1 -0
  18. package/closure/goog/base_minimal.d.ts +18 -0
  19. package/closure/goog/goog.d.ts +25 -0
  20. package/core/any_aliases.d.ts +1 -0
  21. package/core/any_aliases.ts +1 -0
  22. package/core/block.d.ts +779 -0
  23. package/core/{block.js → block.ts} +610 -719
  24. package/core/block_animations.d.ts +33 -0
  25. package/core/{block_animations.js → block_animations.ts} +75 -79
  26. package/core/block_drag_surface.d.ts +111 -0
  27. package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
  28. package/core/block_dragger.d.ts +143 -0
  29. package/core/{block_dragger.js → block_dragger.ts} +139 -176
  30. package/core/block_svg.d.ts +588 -0
  31. package/core/{block_svg.js → block_svg.ts} +494 -630
  32. package/core/blockly.d.ts +562 -0
  33. package/core/blockly.js +1 -1
  34. package/core/blockly.ts +749 -0
  35. package/core/blockly_options.d.ts +69 -0
  36. package/core/blockly_options.ts +81 -0
  37. package/core/blocks.d.ts +17 -0
  38. package/core/{blocks.js → blocks.ts} +4 -8
  39. package/core/browser_events.d.ts +85 -0
  40. package/core/{browser_events.js → browser_events.ts} +98 -93
  41. package/core/bubble.d.ts +279 -0
  42. package/core/{bubble.js → bubble.ts} +277 -370
  43. package/core/bubble_dragger.d.ts +73 -0
  44. package/core/bubble_dragger.ts +229 -0
  45. package/core/bump_objects.d.ts +34 -0
  46. package/core/{bump_objects.js → bump_objects.ts} +54 -52
  47. package/core/clipboard.d.ts +42 -0
  48. package/core/clipboard.ts +91 -0
  49. package/core/comment.d.ts +113 -0
  50. package/core/{comment.js → comment.ts} +135 -185
  51. package/core/common.d.ts +129 -0
  52. package/core/{common.js → common.ts} +105 -82
  53. package/core/component_manager.d.ts +91 -0
  54. package/core/component_manager.ts +211 -0
  55. package/core/config.d.ts +23 -0
  56. package/core/{config.js → config.ts} +12 -19
  57. package/core/connection.d.ts +232 -0
  58. package/core/{connection.js → connection.ts} +187 -237
  59. package/core/connection_checker.d.ts +78 -0
  60. package/core/{connection_checker.js → connection_checker.ts} +66 -77
  61. package/core/connection_db.d.ts +91 -0
  62. package/core/{connection_db.js → connection_db.ts} +62 -87
  63. package/core/connection_type.d.ts +15 -0
  64. package/core/{connection_type.js → connection_type.ts} +8 -12
  65. package/core/constants.d.ts +15 -0
  66. package/core/{constants.js → constants.ts} +4 -8
  67. package/core/contextmenu.d.ts +80 -0
  68. package/core/{contextmenu.js → contextmenu.ts} +118 -153
  69. package/core/contextmenu_items.d.ts +77 -0
  70. package/core/contextmenu_items.ts +576 -0
  71. package/core/contextmenu_registry.d.ts +105 -0
  72. package/core/contextmenu_registry.ts +179 -0
  73. package/core/css.d.ts +24 -0
  74. package/core/{css.js → css.ts} +16 -24
  75. package/core/delete_area.d.ts +47 -0
  76. package/core/delete_area.ts +82 -0
  77. package/core/dialog.d.ts +61 -0
  78. package/core/dialog.ts +127 -0
  79. package/core/drag_target.d.ts +63 -0
  80. package/core/drag_target.ts +94 -0
  81. package/core/dropdowndiv.d.ts +155 -0
  82. package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
  83. package/core/events/events.d.ts +102 -0
  84. package/core/events/events.ts +123 -0
  85. package/core/events/events_abstract.d.ts +51 -0
  86. package/core/events/events_abstract.ts +112 -0
  87. package/core/events/events_block_base.d.ts +31 -0
  88. package/core/events/events_block_base.ts +65 -0
  89. package/core/events/events_block_change.d.ts +55 -0
  90. package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
  91. package/core/events/events_block_create.d.ts +35 -0
  92. package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
  93. package/core/events/events_block_delete.d.ts +36 -0
  94. package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
  95. package/core/events/events_block_drag.d.ts +36 -0
  96. package/core/events/events_block_drag.ts +82 -0
  97. package/core/events/events_block_move.d.ts +51 -0
  98. package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
  99. package/core/events/events_bubble_open.d.ts +35 -0
  100. package/core/events/events_bubble_open.ts +82 -0
  101. package/core/events/events_click.d.ts +36 -0
  102. package/core/events/{events_click.js → events_click.ts} +27 -30
  103. package/core/events/events_comment_base.d.ts +39 -0
  104. package/core/events/events_comment_base.ts +107 -0
  105. package/core/events/events_comment_change.d.ts +43 -0
  106. package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
  107. package/core/events/events_comment_create.d.ts +35 -0
  108. package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
  109. package/core/events/events_comment_delete.d.ts +35 -0
  110. package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
  111. package/core/events/events_comment_move.d.ts +55 -0
  112. package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
  113. package/core/events/events_marker_move.d.ts +40 -0
  114. package/core/events/events_marker_move.ts +99 -0
  115. package/core/events/events_selected.d.ts +34 -0
  116. package/core/events/events_selected.ts +78 -0
  117. package/core/events/events_theme_change.d.ts +30 -0
  118. package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
  119. package/core/events/events_toolbox_item_select.d.ts +34 -0
  120. package/core/events/events_toolbox_item_select.ts +79 -0
  121. package/core/events/events_trashcan_open.d.ts +31 -0
  122. package/core/events/events_trashcan_open.ts +68 -0
  123. package/core/events/events_ui.d.ts +37 -0
  124. package/core/events/{events_ui.js → events_ui.ts} +27 -26
  125. package/core/events/events_ui_base.d.ts +26 -0
  126. package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
  127. package/core/events/events_var_base.d.ts +31 -0
  128. package/core/events/events_var_base.ts +65 -0
  129. package/core/events/events_var_create.d.ts +35 -0
  130. package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
  131. package/core/events/events_var_delete.d.ts +35 -0
  132. package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
  133. package/core/events/events_var_rename.d.ts +36 -0
  134. package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
  135. package/core/events/events_viewport.d.ts +39 -0
  136. package/core/events/events_viewport.ts +100 -0
  137. package/core/events/utils.d.ts +272 -0
  138. package/core/events/{utils.js → utils.ts} +148 -219
  139. package/core/events/workspace_events.d.ts +36 -0
  140. package/core/events/workspace_events.ts +86 -0
  141. package/core/extensions.d.ts +107 -0
  142. package/core/{extensions.js → extensions.ts} +153 -172
  143. package/core/field.d.ts +534 -0
  144. package/core/{field.js → field.ts} +413 -489
  145. package/core/field_angle.d.ts +176 -0
  146. package/core/field_angle.ts +563 -0
  147. package/core/field_checkbox.d.ts +124 -0
  148. package/core/field_checkbox.ts +243 -0
  149. package/core/field_colour.d.ts +200 -0
  150. package/core/field_colour.ts +632 -0
  151. package/core/field_dropdown.d.ts +222 -0
  152. package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
  153. package/core/field_image.d.ts +134 -0
  154. package/core/field_image.ts +282 -0
  155. package/core/field_label.d.ts +71 -0
  156. package/core/field_label.ts +152 -0
  157. package/core/field_label_serializable.d.ts +42 -0
  158. package/core/field_label_serializable.ts +76 -0
  159. package/core/field_multilineinput.d.ts +146 -0
  160. package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
  161. package/core/field_number.d.ts +156 -0
  162. package/core/{field_number.js → field_number.ts} +110 -123
  163. package/core/field_registry.d.ts +45 -0
  164. package/core/{field_registry.js → field_registry.ts} +37 -30
  165. package/core/field_textinput.d.ts +219 -0
  166. package/core/field_textinput.ts +591 -0
  167. package/core/field_variable.d.ts +217 -0
  168. package/core/{field_variable.js → field_variable.ts} +174 -187
  169. package/core/flyout_base.d.ts +459 -0
  170. package/core/{flyout_base.js → flyout_base.ts} +429 -518
  171. package/core/flyout_button.d.ts +81 -0
  172. package/core/flyout_button.ts +292 -0
  173. package/core/flyout_horizontal.d.ts +82 -0
  174. package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
  175. package/core/flyout_metrics_manager.d.ts +40 -0
  176. package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
  177. package/core/flyout_vertical.d.ts +83 -0
  178. package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
  179. package/core/generator.d.ts +205 -0
  180. package/core/{generator.js → generator.ts} +168 -193
  181. package/core/gesture.d.ts +357 -0
  182. package/core/{gesture.js → gesture.ts} +289 -369
  183. package/core/grid.d.ts +83 -0
  184. package/core/grid.ts +192 -0
  185. package/core/icon.d.ts +78 -0
  186. package/core/icon.ts +189 -0
  187. package/core/inject.d.ts +15 -0
  188. package/core/{inject.js → inject.ts} +101 -100
  189. package/core/input.d.ts +128 -0
  190. package/core/input.ts +309 -0
  191. package/core/input_types.d.ts +14 -0
  192. package/core/{input_types.js → input_types.ts} +8 -12
  193. package/core/insertion_marker_manager.d.ts +212 -0
  194. package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
  195. package/core/interfaces/i_ast_node_location.d.ts +11 -0
  196. package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
  197. package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
  198. package/core/interfaces/i_ast_node_location_svg.ts +37 -0
  199. package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
  200. package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
  201. package/core/interfaces/i_autohideable.d.ts +18 -0
  202. package/core/interfaces/i_autohideable.ts +34 -0
  203. package/core/interfaces/i_block_dragger.d.ts +43 -0
  204. package/core/interfaces/i_block_dragger.ts +67 -0
  205. package/core/interfaces/i_bounded_element.d.ts +24 -0
  206. package/core/interfaces/i_bounded_element.ts +42 -0
  207. package/core/interfaces/i_bubble.d.ts +59 -0
  208. package/core/interfaces/i_bubble.ts +88 -0
  209. package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
  210. package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
  211. package/core/interfaces/i_component.d.ts +17 -0
  212. package/core/interfaces/{i_component.js → i_component.ts} +9 -14
  213. package/core/interfaces/i_connection_checker.d.ts +69 -0
  214. package/core/interfaces/i_connection_checker.ts +102 -0
  215. package/core/interfaces/i_contextmenu.d.ts +13 -0
  216. package/core/interfaces/i_contextmenu.ts +26 -0
  217. package/core/interfaces/i_copyable.d.ts +24 -0
  218. package/core/interfaces/i_copyable.ts +40 -0
  219. package/core/interfaces/i_deletable.d.ts +16 -0
  220. package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
  221. package/core/interfaces/i_delete_area.d.ts +25 -0
  222. package/core/interfaces/i_delete_area.ts +46 -0
  223. package/core/interfaces/i_drag_target.d.ts +53 -0
  224. package/core/interfaces/i_drag_target.ts +84 -0
  225. package/core/interfaces/i_draggable.d.ts +12 -0
  226. package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
  227. package/core/interfaces/i_flyout.d.ts +134 -0
  228. package/core/interfaces/i_flyout.ts +186 -0
  229. package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
  230. package/core/interfaces/i_keyboard_accessible.ts +35 -0
  231. package/core/interfaces/i_metrics_manager.d.ts +117 -0
  232. package/core/interfaces/i_metrics_manager.ts +151 -0
  233. package/core/interfaces/i_movable.d.ts +16 -0
  234. package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
  235. package/core/interfaces/i_positionable.d.ts +27 -0
  236. package/core/interfaces/i_positionable.ts +50 -0
  237. package/core/interfaces/i_registrable.d.ts +11 -0
  238. package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
  239. package/core/interfaces/i_registrable_field.d.ts +17 -0
  240. package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
  241. package/core/interfaces/i_selectable.d.ts +18 -0
  242. package/core/interfaces/i_selectable.ts +34 -0
  243. package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
  244. package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
  245. package/core/interfaces/i_serializer.d.ts +42 -0
  246. package/core/interfaces/i_serializer.ts +65 -0
  247. package/core/interfaces/i_styleable.d.ts +21 -0
  248. package/core/interfaces/i_styleable.ts +35 -0
  249. package/core/interfaces/i_toolbox.d.ts +85 -0
  250. package/core/interfaces/i_toolbox.ts +127 -0
  251. package/core/interfaces/i_toolbox_item.d.ts +62 -0
  252. package/core/interfaces/i_toolbox_item.ts +84 -0
  253. package/core/internal_constants.d.ts +40 -0
  254. package/core/{internal_constants.js → internal_constants.ts} +13 -18
  255. package/core/keyboard_nav/ast_node.d.ts +239 -0
  256. package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
  257. package/core/keyboard_nav/basic_cursor.d.ts +88 -0
  258. package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
  259. package/core/keyboard_nav/cursor.d.ts +41 -0
  260. package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
  261. package/core/keyboard_nav/marker.d.ts +58 -0
  262. package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
  263. package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
  264. package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
  265. package/core/main.d.ts +11 -0
  266. package/core/main.js +303 -0
  267. package/core/marker_manager.d.ts +85 -0
  268. package/core/marker_manager.ts +181 -0
  269. package/core/menu.d.ts +149 -0
  270. package/core/{menu.js → menu.ts} +141 -174
  271. package/core/menuitem.d.ts +118 -0
  272. package/core/menuitem.ts +240 -0
  273. package/core/metrics_manager.d.ts +201 -0
  274. package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
  275. package/core/msg.d.ts +9 -0
  276. package/core/{msg.js → msg.ts} +4 -8
  277. package/core/mutator.d.ts +128 -0
  278. package/core/{mutator.js → mutator.ts} +196 -211
  279. package/core/names.d.ts +124 -0
  280. package/core/names.ts +267 -0
  281. package/core/options.d.ts +137 -0
  282. package/core/{options.js → options.ts} +147 -173
  283. package/core/positionable_helpers.d.ts +88 -0
  284. package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
  285. package/core/procedures.d.ts +108 -0
  286. package/core/{procedures.js → procedures.ts} +143 -152
  287. package/core/registry.d.ts +137 -0
  288. package/core/registry.ts +339 -0
  289. package/core/rendered_connection.d.ts +191 -0
  290. package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
  291. package/core/renderers/common/block_rendering.d.ts +114 -0
  292. package/core/renderers/common/block_rendering.ts +164 -0
  293. package/core/renderers/common/constants.d.ts +458 -0
  294. package/core/renderers/common/constants.ts +1124 -0
  295. package/core/renderers/common/debug.d.ts +28 -0
  296. package/core/renderers/common/{debug.js → debug.ts} +14 -20
  297. package/core/renderers/common/debugger.d.ts +120 -0
  298. package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
  299. package/core/renderers/common/drawer.d.ts +132 -0
  300. package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
  301. package/core/renderers/common/i_path_object.d.ts +117 -0
  302. package/core/renderers/common/i_path_object.ts +161 -0
  303. package/core/renderers/common/info.d.ts +194 -0
  304. package/core/renderers/common/{info.js → info.ts} +165 -222
  305. package/core/renderers/common/marker_svg.d.ts +220 -0
  306. package/core/renderers/common/marker_svg.ts +680 -0
  307. package/core/renderers/common/path_object.d.ts +146 -0
  308. package/core/renderers/common/path_object.ts +272 -0
  309. package/core/renderers/common/renderer.d.ts +157 -0
  310. package/core/renderers/common/renderer.ts +271 -0
  311. package/core/renderers/geras/constants.d.ts +23 -0
  312. package/core/renderers/geras/constants.ts +61 -0
  313. package/core/renderers/geras/drawer.d.ts +43 -0
  314. package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
  315. package/core/renderers/geras/geras.d.ts +11 -0
  316. package/core/renderers/geras/geras.ts +37 -0
  317. package/core/renderers/geras/highlight_constants.d.ts +108 -0
  318. package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
  319. package/core/renderers/geras/highlighter.d.ts +98 -0
  320. package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
  321. package/core/renderers/geras/info.d.ts +45 -0
  322. package/core/renderers/geras/{info.js → info.ts} +61 -99
  323. package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
  324. package/core/renderers/geras/measurables/inline_input.ts +51 -0
  325. package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
  326. package/core/renderers/geras/measurables/statement_input.ts +50 -0
  327. package/core/renderers/geras/path_object.d.ts +47 -0
  328. package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
  329. package/core/renderers/geras/renderer.d.ts +69 -0
  330. package/core/renderers/geras/renderer.ts +126 -0
  331. package/core/renderers/measurables/base.d.ts +27 -0
  332. package/core/renderers/measurables/base.ts +53 -0
  333. package/core/renderers/measurables/bottom_row.d.ts +61 -0
  334. package/core/renderers/measurables/bottom_row.ts +120 -0
  335. package/core/renderers/measurables/connection.d.ts +25 -0
  336. package/core/renderers/measurables/connection.ts +52 -0
  337. package/core/renderers/measurables/external_value_input.d.ts +27 -0
  338. package/core/renderers/measurables/external_value_input.ts +65 -0
  339. package/core/renderers/measurables/field.d.ts +30 -0
  340. package/core/renderers/measurables/field.ts +63 -0
  341. package/core/renderers/measurables/hat.d.ts +21 -0
  342. package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
  343. package/core/renderers/measurables/icon.d.ts +26 -0
  344. package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
  345. package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
  346. package/core/renderers/measurables/in_row_spacer.ts +44 -0
  347. package/core/renderers/measurables/inline_input.d.ts +24 -0
  348. package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
  349. package/core/renderers/measurables/input_connection.d.ts +29 -0
  350. package/core/renderers/measurables/input_connection.ts +66 -0
  351. package/core/renderers/measurables/input_row.d.ts +30 -0
  352. package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
  353. package/core/renderers/measurables/jagged_edge.d.ts +20 -0
  354. package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
  355. package/core/renderers/measurables/next_connection.d.ts +23 -0
  356. package/core/renderers/measurables/next_connection.ts +47 -0
  357. package/core/renderers/measurables/output_connection.d.ts +26 -0
  358. package/core/renderers/measurables/output_connection.ts +56 -0
  359. package/core/renderers/measurables/previous_connection.d.ts +23 -0
  360. package/core/renderers/measurables/previous_connection.ts +47 -0
  361. package/core/renderers/measurables/round_corner.d.ts +21 -0
  362. package/core/renderers/measurables/round_corner.ts +49 -0
  363. package/core/renderers/measurables/row.d.ts +141 -0
  364. package/core/renderers/measurables/row.ts +225 -0
  365. package/core/renderers/measurables/spacer_row.d.ts +29 -0
  366. package/core/renderers/measurables/spacer_row.ts +55 -0
  367. package/core/renderers/measurables/square_corner.d.ts +21 -0
  368. package/core/renderers/measurables/square_corner.ts +47 -0
  369. package/core/renderers/measurables/statement_input.d.ts +22 -0
  370. package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
  371. package/core/renderers/measurables/top_row.d.ts +56 -0
  372. package/core/renderers/measurables/top_row.ts +122 -0
  373. package/core/renderers/measurables/types.d.ts +235 -0
  374. package/core/renderers/measurables/types.ts +332 -0
  375. package/core/renderers/minimalist/constants.d.ts +14 -0
  376. package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
  377. package/core/renderers/minimalist/drawer.d.ts +21 -0
  378. package/core/renderers/minimalist/drawer.ts +38 -0
  379. package/core/renderers/minimalist/info.d.ts +30 -0
  380. package/core/renderers/minimalist/info.ts +52 -0
  381. package/core/renderers/minimalist/minimalist.d.ts +6 -0
  382. package/core/renderers/minimalist/minimalist.ts +22 -0
  383. package/core/renderers/minimalist/renderer.d.ts +41 -0
  384. package/core/renderers/minimalist/renderer.ts +71 -0
  385. package/core/renderers/thrasos/info.d.ts +40 -0
  386. package/core/renderers/thrasos/{info.js → info.ts} +66 -67
  387. package/core/renderers/thrasos/renderer.d.ts +25 -0
  388. package/core/renderers/thrasos/renderer.ts +48 -0
  389. package/core/renderers/thrasos/thrasos.d.ts +4 -0
  390. package/core/renderers/thrasos/thrasos.ts +20 -0
  391. package/core/renderers/zelos/constants.d.ts +186 -0
  392. package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
  393. package/core/renderers/zelos/drawer.d.ts +47 -0
  394. package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
  395. package/core/renderers/zelos/info.d.ts +88 -0
  396. package/core/renderers/zelos/{info.js → info.ts} +111 -142
  397. package/core/renderers/zelos/marker_svg.d.ts +46 -0
  398. package/core/renderers/zelos/marker_svg.ts +151 -0
  399. package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
  400. package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
  401. package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
  402. package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
  403. package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
  404. package/core/renderers/zelos/measurables/row_elements.ts +45 -0
  405. package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
  406. package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
  407. package/core/renderers/zelos/path_object.d.ts +77 -0
  408. package/core/renderers/zelos/path_object.ts +215 -0
  409. package/core/renderers/zelos/renderer.d.ts +74 -0
  410. package/core/renderers/zelos/renderer.ts +142 -0
  411. package/core/renderers/zelos/zelos.d.ts +12 -0
  412. package/core/renderers/zelos/zelos.ts +39 -0
  413. package/core/scrollbar.d.ts +277 -0
  414. package/core/{scrollbar.js → scrollbar.ts} +307 -328
  415. package/core/scrollbar_pair.d.ts +105 -0
  416. package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
  417. package/core/serialization/blocks.d.ts +98 -0
  418. package/core/serialization/{blocks.js → blocks.ts} +229 -228
  419. package/core/serialization/exceptions.d.ts +73 -0
  420. package/core/serialization/exceptions.ts +98 -0
  421. package/core/serialization/priorities.d.ts +15 -0
  422. package/core/serialization/{priorities.js → priorities.ts} +4 -10
  423. package/core/serialization/registry.d.ts +20 -0
  424. package/core/serialization/{registry.js → registry.ts} +11 -13
  425. package/core/serialization/variables.d.ts +14 -0
  426. package/core/serialization/{variables.js → variables.ts} +30 -32
  427. package/core/serialization/workspaces.d.ts +28 -0
  428. package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
  429. package/core/shortcut_items.d.ts +61 -0
  430. package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
  431. package/core/shortcut_registry.d.ts +151 -0
  432. package/core/shortcut_registry.ts +355 -0
  433. package/core/sprites.d.ts +19 -0
  434. package/core/{sprites.js → sprites.ts} +4 -6
  435. package/core/theme/classic.d.ts +12 -0
  436. package/core/theme/{classic.js → classic.ts} +5 -7
  437. package/core/theme/themes.d.ts +8 -0
  438. package/core/theme/themes.ts +22 -0
  439. package/core/theme/zelos.d.ts +11 -0
  440. package/core/theme/{zelos.js → zelos.ts} +4 -7
  441. package/core/theme.d.ts +142 -0
  442. package/core/theme.ts +221 -0
  443. package/core/theme_manager.d.ts +81 -0
  444. package/core/theme_manager.ts +186 -0
  445. package/core/toolbox/category.d.ts +239 -0
  446. package/core/toolbox/category.ts +679 -0
  447. package/core/toolbox/collapsible_category.d.ts +91 -0
  448. package/core/toolbox/collapsible_category.ts +273 -0
  449. package/core/toolbox/separator.d.ts +39 -0
  450. package/core/toolbox/separator.ts +105 -0
  451. package/core/toolbox/toolbox.d.ts +352 -0
  452. package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
  453. package/core/toolbox/toolbox_item.d.ts +85 -0
  454. package/core/toolbox/toolbox_item.ts +147 -0
  455. package/core/tooltip.d.ts +126 -0
  456. package/core/{tooltip.js → tooltip.ts} +136 -214
  457. package/core/touch.d.ts +121 -0
  458. package/core/touch.ts +306 -0
  459. package/core/touch_gesture.d.ts +115 -0
  460. package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
  461. package/core/trashcan.d.ts +195 -0
  462. package/core/{trashcan.js → trashcan.ts} +226 -312
  463. package/core/utils/aria.d.ts +67 -0
  464. package/core/utils/{aria.js → aria.ts} +47 -61
  465. package/core/utils/array.d.ts +14 -0
  466. package/core/utils/{array.js → array.ts} +10 -12
  467. package/core/utils/colour.d.ts +103 -0
  468. package/core/utils/{colour.js → colour.ts} +60 -72
  469. package/core/utils/coordinate.d.ts +72 -0
  470. package/core/utils/coordinate.ts +124 -0
  471. package/core/utils/deprecation.d.ts +17 -0
  472. package/core/utils/{deprecation.js → deprecation.ts} +11 -11
  473. package/core/utils/dom.d.ts +165 -0
  474. package/core/utils/{dom.js → dom.ts} +125 -147
  475. package/core/utils/idgenerator.d.ts +25 -0
  476. package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
  477. package/core/utils/keycodes.d.ts +137 -0
  478. package/core/utils/keycodes.ts +169 -0
  479. package/core/utils/math.d.ts +30 -0
  480. package/core/utils/{math.js → math.ts} +17 -19
  481. package/core/utils/metrics.d.ts +64 -0
  482. package/core/utils/metrics.ts +97 -0
  483. package/core/utils/object.d.ts +35 -0
  484. package/core/utils/{object.js → object.ts} +30 -26
  485. package/core/utils/parsing.d.ts +50 -0
  486. package/core/utils/{parsing.js → parsing.ts} +50 -50
  487. package/core/utils/rect.d.ts +38 -0
  488. package/core/utils/{rect.js → rect.ts} +18 -31
  489. package/core/utils/sentinel.d.ts +11 -0
  490. package/core/utils/{sentinel.js → sentinel.ts} +3 -5
  491. package/core/utils/size.d.ts +27 -0
  492. package/core/utils/{size.js → size.ts} +12 -26
  493. package/core/utils/string.d.ts +55 -0
  494. package/core/utils/{string.js → string.ts} +64 -61
  495. package/core/utils/style.d.ts +127 -0
  496. package/core/utils/{style.js → style.ts} +102 -92
  497. package/core/utils/svg.d.ts +68 -0
  498. package/core/utils/svg.ts +88 -0
  499. package/core/utils/svg_math.d.ts +70 -0
  500. package/core/utils/{svg_math.js → svg_math.ts} +72 -71
  501. package/core/utils/svg_paths.d.ts +101 -0
  502. package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
  503. package/core/utils/toolbox.d.ts +193 -0
  504. package/core/utils/toolbox.ts +433 -0
  505. package/core/utils/useragent.d.ts +33 -0
  506. package/core/utils/useragent.ts +135 -0
  507. package/core/utils/xml.d.ts +52 -0
  508. package/core/utils/{xml.js → xml.ts} +26 -36
  509. package/core/utils.d.ts +217 -0
  510. package/core/utils.ts +428 -0
  511. package/core/variable_map.d.ts +141 -0
  512. package/core/{variable_map.js → variable_map.ts} +131 -149
  513. package/core/variable_model.d.ts +40 -0
  514. package/core/variable_model.ts +82 -0
  515. package/core/variables.d.ts +181 -0
  516. package/core/{variables.js → variables.ts} +206 -188
  517. package/core/variables_dynamic.d.ts +38 -0
  518. package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
  519. package/core/warning.d.ts +50 -0
  520. package/core/{warning.js → warning.ts} +52 -66
  521. package/core/widgetdiv.d.ts +69 -0
  522. package/core/widgetdiv.ts +257 -0
  523. package/core/workspace.d.ts +386 -0
  524. package/core/workspace.ts +801 -0
  525. package/core/workspace_audio.d.ts +47 -0
  526. package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
  527. package/core/workspace_comment.d.ts +170 -0
  528. package/core/workspace_comment.ts +398 -0
  529. package/core/workspace_comment_svg.d.ts +329 -0
  530. package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
  531. package/core/workspace_drag_surface_svg.d.ts +68 -0
  532. package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
  533. package/core/workspace_dragger.d.ts +48 -0
  534. package/core/workspace_dragger.ts +104 -0
  535. package/core/workspace_svg.d.ts +920 -0
  536. package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
  537. package/core/xml.d.ts +117 -0
  538. package/core/{xml.js → xml.ts} +306 -326
  539. package/core/zoom_controls.d.ts +130 -0
  540. package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
  541. package/core.d.ts +1 -3
  542. package/core.js +1 -2
  543. package/dart.d.ts +0 -3
  544. package/dart_compressed.js +387 -99
  545. package/dart_compressed.js.map +1 -1
  546. package/generators/dart/all.js +2 -0
  547. package/generators/dart/colour.js +1 -1
  548. package/generators/dart/lists.js +1 -1
  549. package/generators/dart/logic.js +1 -1
  550. package/generators/dart/loops.js +1 -1
  551. package/generators/dart/math.js +1 -1
  552. package/generators/dart/procedures.js +1 -1
  553. package/generators/dart/text.js +1 -1
  554. package/generators/dart/variables.js +1 -1
  555. package/generators/dart/variables_dynamic.js +1 -1
  556. package/generators/dart.js +1 -2
  557. package/generators/javascript/all.js +2 -0
  558. package/generators/javascript/colour.js +1 -1
  559. package/generators/javascript/lists.js +1 -1
  560. package/generators/javascript/logic.js +1 -1
  561. package/generators/javascript/loops.js +1 -1
  562. package/generators/javascript/math.js +4 -4
  563. package/generators/javascript/procedures.js +1 -1
  564. package/generators/javascript/text.js +2 -2
  565. package/generators/javascript/variables.js +1 -1
  566. package/generators/javascript/variables_dynamic.js +1 -1
  567. package/generators/javascript.js +1 -3
  568. package/generators/lua/all.js +2 -0
  569. package/generators/lua/colour.js +1 -1
  570. package/generators/lua/lists.js +1 -1
  571. package/generators/lua/logic.js +1 -1
  572. package/generators/lua/loops.js +1 -1
  573. package/generators/lua/math.js +1 -1
  574. package/generators/lua/procedures.js +1 -1
  575. package/generators/lua/text.js +1 -1
  576. package/generators/lua/variables.js +1 -1
  577. package/generators/lua/variables_dynamic.js +1 -1
  578. package/generators/lua.js +1 -2
  579. package/generators/php/all.js +2 -0
  580. package/generators/php/colour.js +1 -1
  581. package/generators/php/lists.js +1 -2
  582. package/generators/php/logic.js +1 -1
  583. package/generators/php/loops.js +1 -1
  584. package/generators/php/math.js +1 -1
  585. package/generators/php/procedures.js +1 -1
  586. package/generators/php/text.js +1 -1
  587. package/generators/php/variables.js +1 -1
  588. package/generators/php/variables_dynamic.js +1 -1
  589. package/generators/php.js +1 -2
  590. package/generators/python/all.js +2 -0
  591. package/generators/python/colour.js +3 -3
  592. package/generators/python/lists.js +1 -1
  593. package/generators/python/logic.js +1 -1
  594. package/generators/python/loops.js +4 -7
  595. package/generators/python/math.js +1 -1
  596. package/generators/python/procedures.js +1 -1
  597. package/generators/python/text.js +1 -1
  598. package/generators/python/variables.js +1 -1
  599. package/generators/python/variables_dynamic.js +1 -1
  600. package/generators/python.js +1 -2
  601. package/index.d.ts +2 -8
  602. package/javascript.d.ts +0 -3
  603. package/javascript_compressed.js +314 -104
  604. package/javascript_compressed.js.map +1 -1
  605. package/lua.d.ts +0 -3
  606. package/lua_compressed.js +399 -81
  607. package/lua_compressed.js.map +1 -1
  608. package/msg/ab.js +421 -421
  609. package/msg/ace.js +421 -421
  610. package/msg/af.js +421 -421
  611. package/msg/am.js +421 -421
  612. package/msg/ar.js +421 -421
  613. package/msg/ast.js +421 -421
  614. package/msg/az.js +421 -421
  615. package/msg/ba.js +421 -421
  616. package/msg/bcc.js +421 -421
  617. package/msg/be-tarask.js +421 -421
  618. package/msg/be.js +421 -421
  619. package/msg/bg.js +421 -421
  620. package/msg/bn.js +421 -421
  621. package/msg/br.js +421 -421
  622. package/msg/bs.js +421 -421
  623. package/msg/ca.js +421 -421
  624. package/msg/cdo.js +421 -421
  625. package/msg/cs.js +421 -421
  626. package/msg/da.js +421 -421
  627. package/msg/de.js +421 -421
  628. package/msg/diq.js +421 -421
  629. package/msg/dty.js +421 -421
  630. package/msg/ee.js +421 -421
  631. package/msg/el.js +421 -421
  632. package/msg/en-gb.js +421 -421
  633. package/msg/en.js +421 -421
  634. package/msg/eo.js +421 -421
  635. package/msg/es.js +421 -421
  636. package/msg/et.js +421 -421
  637. package/msg/eu.js +421 -421
  638. package/msg/fa.js +421 -421
  639. package/msg/fi.js +421 -421
  640. package/msg/fo.js +421 -421
  641. package/msg/fr.js +421 -421
  642. package/msg/frr.js +421 -421
  643. package/msg/gl.js +421 -421
  644. package/msg/gn.js +421 -421
  645. package/msg/gor.js +421 -421
  646. package/msg/ha.js +421 -421
  647. package/msg/hak.js +421 -421
  648. package/msg/he.js +421 -421
  649. package/msg/hi.js +421 -421
  650. package/msg/hr.js +421 -421
  651. package/msg/hrx.js +421 -421
  652. package/msg/hu.js +421 -421
  653. package/msg/hy.js +421 -421
  654. package/msg/ia.js +421 -421
  655. package/msg/id.js +421 -421
  656. package/msg/ig.js +421 -421
  657. package/msg/inh.js +421 -421
  658. package/msg/is.js +421 -421
  659. package/msg/it.js +421 -421
  660. package/msg/ja.js +421 -421
  661. package/msg/ka.js +421 -421
  662. package/msg/kab.js +421 -421
  663. package/msg/kbd-cyrl.js +421 -421
  664. package/msg/km.js +421 -421
  665. package/msg/kn.js +421 -421
  666. package/msg/ko.js +421 -421
  667. package/msg/ksh.js +421 -421
  668. package/msg/ku-latn.js +421 -421
  669. package/msg/ky.js +421 -421
  670. package/msg/la.js +421 -421
  671. package/msg/lb.js +421 -421
  672. package/msg/lki.js +421 -421
  673. package/msg/lo.js +421 -421
  674. package/msg/lrc.js +421 -421
  675. package/msg/lt.js +421 -421
  676. package/msg/lv.js +421 -421
  677. package/msg/mg.js +421 -421
  678. package/msg/mk.js +421 -421
  679. package/msg/ml.js +421 -421
  680. package/msg/mnw.js +421 -421
  681. package/msg/ms.js +421 -421
  682. package/msg/my.js +421 -421
  683. package/msg/mzn.js +421 -421
  684. package/msg/nb.js +421 -421
  685. package/msg/ne.js +421 -421
  686. package/msg/nl.js +421 -421
  687. package/msg/oc.js +421 -421
  688. package/msg/olo.js +421 -421
  689. package/msg/pa.js +421 -421
  690. package/msg/pl.js +421 -421
  691. package/msg/pms.js +421 -421
  692. package/msg/ps.js +421 -421
  693. package/msg/pt-br.js +421 -421
  694. package/msg/pt.js +421 -421
  695. package/msg/ro.js +421 -421
  696. package/msg/ru.js +421 -421
  697. package/msg/sc.js +421 -421
  698. package/msg/sco.js +421 -421
  699. package/msg/sd.js +421 -421
  700. package/msg/shn.js +421 -421
  701. package/msg/si.js +421 -421
  702. package/msg/sk.js +421 -421
  703. package/msg/skr-arab.js +421 -421
  704. package/msg/sl.js +421 -421
  705. package/msg/smn.js +421 -421
  706. package/msg/sq.js +421 -421
  707. package/msg/sr-latn.js +421 -421
  708. package/msg/sr.js +421 -421
  709. package/msg/sv.js +421 -421
  710. package/msg/sw.js +421 -421
  711. package/msg/ta.js +421 -421
  712. package/msg/tcy.js +421 -421
  713. package/msg/te.js +421 -421
  714. package/msg/th.js +421 -421
  715. package/msg/ti.js +421 -421
  716. package/msg/tl.js +421 -421
  717. package/msg/tlh.js +421 -421
  718. package/msg/tr.js +421 -421
  719. package/msg/ug-arab.js +421 -421
  720. package/msg/uk.js +421 -421
  721. package/msg/ur.js +421 -421
  722. package/msg/uz.js +421 -421
  723. package/msg/vi.js +421 -421
  724. package/msg/xmf.js +421 -421
  725. package/msg/yo.js +421 -421
  726. package/msg/yue.js +421 -421
  727. package/msg/zgh.js +421 -421
  728. package/msg/zh-hans.js +421 -421
  729. package/msg/zh-hant.js +421 -421
  730. package/package.json +5 -5
  731. package/php.d.ts +0 -3
  732. package/php_compressed.js +322 -93
  733. package/php_compressed.js.map +1 -1
  734. package/python.d.ts +0 -3
  735. package/python_compressed.js +237 -90
  736. package/python_compressed.js.map +1 -1
  737. package/blockly.d.ts +0 -26127
  738. package/core/blockly_options.js +0 -28
  739. package/core/bubble_dragger.js +0 -298
  740. package/core/clipboard.js +0 -80
  741. package/core/component_manager.js +0 -263
  742. package/core/contextmenu_items.js +0 -651
  743. package/core/contextmenu_registry.js +0 -178
  744. package/core/delete_area.js +0 -87
  745. package/core/dialog.js +0 -107
  746. package/core/drag_target.js +0 -98
  747. package/core/events/events.js +0 -147
  748. package/core/events/events_abstract.js +0 -133
  749. package/core/events/events_block_base.js +0 -70
  750. package/core/events/events_block_drag.js +0 -89
  751. package/core/events/events_bubble_open.js +0 -90
  752. package/core/events/events_comment_base.js +0 -121
  753. package/core/events/events_marker_move.js +0 -110
  754. package/core/events/events_selected.js +0 -83
  755. package/core/events/events_toolbox_item_select.js +0 -84
  756. package/core/events/events_trashcan_open.js +0 -73
  757. package/core/events/events_var_base.js +0 -70
  758. package/core/events/events_viewport.js +0 -107
  759. package/core/events/workspace_events.js +0 -93
  760. package/core/field_angle.js +0 -591
  761. package/core/field_checkbox.js +0 -255
  762. package/core/field_colour.js +0 -717
  763. package/core/field_image.js +0 -304
  764. package/core/field_label.js +0 -149
  765. package/core/field_label_serializable.js +0 -80
  766. package/core/field_textinput.js +0 -619
  767. package/core/flyout_button.js +0 -356
  768. package/core/grid.js +0 -226
  769. package/core/icon.js +0 -225
  770. package/core/input.js +0 -335
  771. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  772. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  773. package/core/interfaces/i_autohideable.js +0 -40
  774. package/core/interfaces/i_block_dragger.js +0 -66
  775. package/core/interfaces/i_bounded_element.js +0 -45
  776. package/core/interfaces/i_bubble.js +0 -95
  777. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  778. package/core/interfaces/i_connection_checker.js +0 -104
  779. package/core/interfaces/i_contextmenu.js +0 -32
  780. package/core/interfaces/i_copyable.js +0 -49
  781. package/core/interfaces/i_delete_area.js +0 -50
  782. package/core/interfaces/i_drag_target.js +0 -88
  783. package/core/interfaces/i_flyout.js +0 -201
  784. package/core/interfaces/i_keyboard_accessible.js +0 -38
  785. package/core/interfaces/i_metrics_manager.js +0 -154
  786. package/core/interfaces/i_positionable.js +0 -51
  787. package/core/interfaces/i_selectable.js +0 -51
  788. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  789. package/core/interfaces/i_serializer.js +0 -77
  790. package/core/interfaces/i_styleable.js +0 -39
  791. package/core/interfaces/i_toolbox.js +0 -142
  792. package/core/interfaces/i_toolbox_item.js +0 -85
  793. package/core/marker_manager.js +0 -213
  794. package/core/menuitem.js +0 -292
  795. package/core/names.js +0 -293
  796. package/core/registry.js +0 -384
  797. package/core/renderers/common/block_rendering.js +0 -170
  798. package/core/renderers/common/constants.js +0 -1250
  799. package/core/renderers/common/i_path_object.js +0 -162
  800. package/core/renderers/common/marker_svg.js +0 -721
  801. package/core/renderers/common/path_object.js +0 -283
  802. package/core/renderers/common/renderer.js +0 -305
  803. package/core/renderers/geras/constants.js +0 -73
  804. package/core/renderers/geras/geras.js +0 -36
  805. package/core/renderers/geras/measurables/inline_input.js +0 -58
  806. package/core/renderers/geras/measurables/statement_input.js +0 -57
  807. package/core/renderers/geras/renderer.js +0 -149
  808. package/core/renderers/measurables/base.js +0 -64
  809. package/core/renderers/measurables/bottom_row.js +0 -138
  810. package/core/renderers/measurables/connection.js +0 -56
  811. package/core/renderers/measurables/external_value_input.js +0 -70
  812. package/core/renderers/measurables/field.js +0 -71
  813. package/core/renderers/measurables/in_row_spacer.js +0 -47
  814. package/core/renderers/measurables/input_connection.js +0 -75
  815. package/core/renderers/measurables/next_connection.js +0 -50
  816. package/core/renderers/measurables/output_connection.js +0 -61
  817. package/core/renderers/measurables/previous_connection.js +0 -50
  818. package/core/renderers/measurables/round_corner.js +0 -52
  819. package/core/renderers/measurables/row.js +0 -247
  820. package/core/renderers/measurables/spacer_row.js +0 -69
  821. package/core/renderers/measurables/square_corner.js +0 -50
  822. package/core/renderers/measurables/top_row.js +0 -143
  823. package/core/renderers/measurables/types.js +0 -353
  824. package/core/renderers/minimalist/drawer.js +0 -42
  825. package/core/renderers/minimalist/info.js +0 -54
  826. package/core/renderers/minimalist/minimalist.js +0 -26
  827. package/core/renderers/minimalist/renderer.js +0 -80
  828. package/core/renderers/thrasos/renderer.js +0 -53
  829. package/core/renderers/thrasos/thrasos.js +0 -22
  830. package/core/renderers/zelos/marker_svg.js +0 -179
  831. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  832. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  833. package/core/renderers/zelos/path_object.js +0 -247
  834. package/core/renderers/zelos/renderer.js +0 -147
  835. package/core/renderers/zelos/zelos.js +0 -38
  836. package/core/serialization/exceptions.js +0 -144
  837. package/core/shortcut_registry.js +0 -366
  838. package/core/theme/themes.js +0 -23
  839. package/core/theme.js +0 -228
  840. package/core/theme_manager.js +0 -211
  841. package/core/toolbox/category.js +0 -751
  842. package/core/toolbox/collapsible_category.js +0 -311
  843. package/core/toolbox/separator.js +0 -133
  844. package/core/toolbox/toolbox_item.js +0 -173
  845. package/core/touch.js +0 -285
  846. package/core/utils/coordinate.js +0 -138
  847. package/core/utils/global.js +0 -41
  848. package/core/utils/keycodes.js +0 -172
  849. package/core/utils/metrics.js +0 -154
  850. package/core/utils/svg.js +0 -186
  851. package/core/utils/toolbox.js +0 -459
  852. package/core/utils/useragent.js +0 -197
  853. package/core/utils.js +0 -383
  854. package/core/variable_model.js +0 -96
  855. package/core/widgetdiv.js +0 -290
  856. package/core/workspace.js +0 -836
  857. package/core/workspace_comment.js +0 -400
  858. package/core/workspace_dragger.js +0 -115
@@ -0,0 +1,69 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2016 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Theme, ITheme } from './theme.js';
7
+ import type { WorkspaceSvg } from './workspace_svg.js';
8
+ import type { ToolboxDefinition } from './utils/toolbox.js';
9
+ /**
10
+ * Blockly options.
11
+ * @alias Blockly.BlocklyOptions
12
+ */
13
+ export interface BlocklyOptions {
14
+ collapse?: boolean;
15
+ comments?: boolean;
16
+ css?: boolean;
17
+ disable?: boolean;
18
+ grid?: GridOptions;
19
+ horizontalLayout?: boolean;
20
+ maxBlocks?: number;
21
+ maxInstances?: {
22
+ [blockType: string]: number;
23
+ };
24
+ media?: string;
25
+ move?: MoveOptions;
26
+ oneBasedIndex?: boolean;
27
+ readOnly?: boolean;
28
+ renderer?: string;
29
+ rendererOverrides?: {
30
+ [rendererConstant: string]: any;
31
+ };
32
+ rtl?: boolean;
33
+ scrollbars?: ScrollbarOptions | boolean;
34
+ sounds?: boolean;
35
+ theme?: Theme | string | ITheme;
36
+ toolbox?: string | ToolboxDefinition | Element;
37
+ toolboxPosition?: string;
38
+ trashcan?: boolean;
39
+ maxTrashcanContents?: number;
40
+ plugins?: {
41
+ [key: string]: (new (...p1: any[]) => any) | string;
42
+ };
43
+ zoom?: ZoomOptions;
44
+ parentWorkspace?: WorkspaceSvg;
45
+ }
46
+ export interface GridOptions {
47
+ colour?: string;
48
+ length?: number;
49
+ snap?: boolean;
50
+ spacing?: number;
51
+ }
52
+ export interface MoveOptions {
53
+ drag?: boolean;
54
+ scrollbars?: boolean | ScrollbarOptions;
55
+ wheel?: boolean;
56
+ }
57
+ export interface ScrollbarOptions {
58
+ horizontal?: boolean;
59
+ vertical?: boolean;
60
+ }
61
+ export interface ZoomOptions {
62
+ controls?: boolean;
63
+ maxScale?: number;
64
+ minScale?: number;
65
+ pinch?: boolean;
66
+ scaleSpeed?: number;
67
+ startScale?: number;
68
+ wheel?: boolean;
69
+ }
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2016 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview Object that defines user-specified options for the workspace.
9
+ */
10
+
11
+ /**
12
+ * Object that defines user-specified options for the workspace.
13
+ * @namespace Blockly.BlocklyOptions
14
+ */
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.BlocklyOptions');
17
+
18
+ import type {Theme, ITheme} from './theme.js';
19
+ import type {WorkspaceSvg} from './workspace_svg.js';
20
+ import type {ToolboxDefinition} from './utils/toolbox.js';
21
+
22
+
23
+ /**
24
+ * Blockly options.
25
+ * @alias Blockly.BlocklyOptions
26
+ */
27
+ export interface BlocklyOptions {
28
+ collapse?: boolean;
29
+ comments?: boolean;
30
+ css?: boolean;
31
+ disable?: boolean;
32
+ grid?: GridOptions;
33
+ horizontalLayout?: boolean;
34
+ maxBlocks?: number;
35
+ maxInstances?: {[blockType: string]: number};
36
+ media?: string;
37
+ move?: MoveOptions;
38
+ oneBasedIndex?: boolean;
39
+ readOnly?: boolean;
40
+ renderer?: string;
41
+ rendererOverrides?: {[rendererConstant: string]: any};
42
+ rtl?: boolean;
43
+ scrollbars?: ScrollbarOptions|boolean;
44
+ sounds?: boolean;
45
+ theme?: Theme|string|ITheme;
46
+ toolbox?: string|ToolboxDefinition|Element;
47
+ toolboxPosition?: string;
48
+ trashcan?: boolean;
49
+ maxTrashcanContents?: number;
50
+ plugins?: {[key: string]: (new(...p1: any[]) => any)|string};
51
+ zoom?: ZoomOptions;
52
+ parentWorkspace?: WorkspaceSvg;
53
+ }
54
+
55
+ export interface GridOptions {
56
+ colour?: string;
57
+ length?: number;
58
+ snap?: boolean;
59
+ spacing?: number;
60
+ }
61
+
62
+ export interface MoveOptions {
63
+ drag?: boolean;
64
+ scrollbars?: boolean|ScrollbarOptions;
65
+ wheel?: boolean;
66
+ }
67
+
68
+ export interface ScrollbarOptions {
69
+ horizontal?: boolean;
70
+ vertical?: boolean;
71
+ }
72
+
73
+ export interface ZoomOptions {
74
+ controls?: boolean;
75
+ maxScale?: number;
76
+ minScale?: number;
77
+ pinch?: boolean;
78
+ scaleSpeed?: number;
79
+ startScale?: number;
80
+ wheel?: boolean;
81
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2013 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * A block definition. For now this very lose, but it can potentially
8
+ * be refined e.g. by replacing this typedef with a class definition.
9
+ */
10
+ export declare type BlockDefinition = any;
11
+ /**
12
+ * A mapping of block type names to block prototype objects.
13
+ * @alias Blockly.blocks.Blocks
14
+ */
15
+ export declare const Blocks: {
16
+ [key: string]: BlockDefinition;
17
+ };
@@ -7,27 +7,23 @@
7
7
  /**
8
8
  * @fileoverview A mapping of block type names to block prototype objects.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * A mapping of block type names to block prototype objects.
14
13
  * @namespace Blockly.blocks
15
14
  */
16
- goog.module('Blockly.blocks');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.blocks');
17
17
 
18
18
 
19
19
  /**
20
20
  * A block definition. For now this very lose, but it can potentially
21
21
  * be refined e.g. by replacing this typedef with a class definition.
22
- * @typedef {!Object}
23
22
  */
24
- let BlockDefinition;
25
- exports.BlockDefinition = BlockDefinition;
23
+ export type BlockDefinition = AnyDuringMigration;
26
24
 
27
25
  /**
28
26
  * A mapping of block type names to block prototype objects.
29
- * @type {!Object<string,!BlockDefinition>}
30
27
  * @alias Blockly.blocks.Blocks
31
28
  */
32
- const Blocks = Object.create(null);
33
- exports.Blocks = Blocks;
29
+ export const Blocks: {[key: string]: BlockDefinition} = Object.create(null);
@@ -0,0 +1,85 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Blockly opaque event data used to unbind events when using
8
+ * `bind` and `conditionalBind`.
9
+ * @alias Blockly.browserEvents.Data
10
+ */
11
+ export declare type Data = [EventTarget, string, (e: Event) => void][];
12
+ /**
13
+ * Bind an event handler that can be ignored if it is not part of the active
14
+ * touch stream.
15
+ * Use this for events that either start or continue a multi-part gesture (e.g.
16
+ * mousedown or mousemove, which may be part of a drag or click).
17
+ * @param node Node upon which to listen.
18
+ * @param name Event name to listen to (e.g. 'mousedown').
19
+ * @param thisObject The value of 'this' in the function.
20
+ * @param func Function to call when event is triggered.
21
+ * @param opt_noCaptureIdentifier True if triggering on this event should not
22
+ * block execution of other event handlers on this touch or other
23
+ * simultaneous touches. False by default.
24
+ * @param opt_noPreventDefault True if triggering on this event should prevent
25
+ * the default handler. False by default. If opt_noPreventDefault is
26
+ * provided, opt_noCaptureIdentifier must also be provided.
27
+ * @return Opaque data that can be passed to unbindEvent_.
28
+ * @alias Blockly.browserEvents.conditionalBind
29
+ */
30
+ export declare function conditionalBind(node: EventTarget, name: string, thisObject: Object | null, func: Function, opt_noCaptureIdentifier?: boolean, opt_noPreventDefault?: boolean): Data;
31
+ /**
32
+ * Bind an event handler that should be called regardless of whether it is part
33
+ * of the active touch stream.
34
+ * Use this for events that are not part of a multi-part gesture (e.g.
35
+ * mouseover for tooltips).
36
+ * @param node Node upon which to listen.
37
+ * @param name Event name to listen to (e.g. 'mousedown').
38
+ * @param thisObject The value of 'this' in the function.
39
+ * @param func Function to call when event is triggered.
40
+ * @return Opaque data that can be passed to unbindEvent_.
41
+ * @alias Blockly.browserEvents.bind
42
+ */
43
+ export declare function bind(node: EventTarget, name: string, thisObject: Object | null, func: Function): Data;
44
+ /**
45
+ * Unbind one or more events event from a function call.
46
+ * @param bindData Opaque data from bindEvent_.
47
+ * This list is emptied during the course of calling this function.
48
+ * @return The function call.
49
+ * @alias Blockly.browserEvents.unbind
50
+ */
51
+ export declare function unbind(bindData: Data): (e: Event) => void;
52
+ /**
53
+ * Returns true if this event is targeting a text input widget?
54
+ * @param e An event.
55
+ * @return True if text input.
56
+ * @alias Blockly.browserEvents.isTargetInput
57
+ */
58
+ export declare function isTargetInput(e: Event): boolean;
59
+ /**
60
+ * Returns true this event is a right-click.
61
+ * @param e Mouse event.
62
+ * @return True if right-click.
63
+ * @alias Blockly.browserEvents.isRightButton
64
+ */
65
+ export declare function isRightButton(e: MouseEvent): boolean;
66
+ /**
67
+ * Returns the converted coordinates of the given mouse event.
68
+ * The origin (0,0) is the top-left corner of the Blockly SVG.
69
+ * @param e Mouse event.
70
+ * @param svg SVG element.
71
+ * @param matrix Inverted screen CTM to use.
72
+ * @return Object with .x and .y properties.
73
+ * @alias Blockly.browserEvents.mouseToSvg
74
+ */
75
+ export declare function mouseToSvg(e: MouseEvent, svg: SVGSVGElement, matrix: SVGMatrix | null): SVGPoint;
76
+ /**
77
+ * Returns the scroll delta of a mouse event in pixel units.
78
+ * @param e Mouse event.
79
+ * @return Scroll delta object with .x and .y properties.
80
+ * @alias Blockly.browserEvents.getScrollDeltaPixels
81
+ */
82
+ export declare function getScrollDeltaPixels(e: WheelEvent): {
83
+ x: number;
84
+ y: number;
85
+ };
@@ -7,34 +7,29 @@
7
7
  /**
8
8
  * @fileoverview Browser event handling.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Browser event handling.
14
13
  * @namespace Blockly.browserEvents
15
14
  */
16
- goog.module('Blockly.browserEvents');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.browserEvents');
17
17
 
18
- const Touch = goog.require('Blockly.Touch');
19
- const userAgent = goog.require('Blockly.utils.userAgent');
20
- const {globalThis} = goog.require('Blockly.utils.global');
18
+ import * as Touch from './touch.js';
19
+ import * as userAgent from './utils/useragent.js';
21
20
 
22
21
 
23
22
  /**
24
23
  * Blockly opaque event data used to unbind events when using
25
24
  * `bind` and `conditionalBind`.
26
- * @typedef {!Array<!Array>}
27
25
  * @alias Blockly.browserEvents.Data
28
26
  */
29
- let Data;
30
- exports.Data = Data;
27
+ export type Data = [EventTarget, string, (e: Event) => void][];
31
28
 
32
29
  /**
33
30
  * The multiplier for scroll wheel deltas using the line delta mode.
34
31
  * See https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode
35
32
  * for more information on deltaMode.
36
- * @type {number}
37
- * @const
38
33
  */
39
34
  const LINE_MODE_MULTIPLIER = 40;
40
35
 
@@ -42,8 +37,6 @@ const LINE_MODE_MULTIPLIER = 40;
42
37
  * The multiplier for scroll wheel deltas using the page delta mode.
43
38
  * See https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode
44
39
  * for more information on deltaMode.
45
- * @type {number}
46
- * @const
47
40
  */
48
41
  const PAGE_MODE_MULTIPLIER = 125;
49
42
 
@@ -52,26 +45,24 @@ const PAGE_MODE_MULTIPLIER = 125;
52
45
  * touch stream.
53
46
  * Use this for events that either start or continue a multi-part gesture (e.g.
54
47
  * mousedown or mousemove, which may be part of a drag or click).
55
- * @param {!EventTarget} node Node upon which to listen.
56
- * @param {string} name Event name to listen to (e.g. 'mousedown').
57
- * @param {?Object} thisObject The value of 'this' in the function.
58
- * @param {!Function} func Function to call when event is triggered.
59
- * @param {boolean=} opt_noCaptureIdentifier True if triggering on this event
60
- * should not block execution of other event handlers on this touch or
61
- * other simultaneous touches. False by default.
62
- * @param {boolean=} opt_noPreventDefault True if triggering on this event
63
- * should prevent the default handler. False by default. If
64
- * opt_noPreventDefault is provided, opt_noCaptureIdentifier must also be
65
- * provided.
66
- * @return {!Data} Opaque data that can be passed to
67
- * unbindEvent_.
48
+ * @param node Node upon which to listen.
49
+ * @param name Event name to listen to (e.g. 'mousedown').
50
+ * @param thisObject The value of 'this' in the function.
51
+ * @param func Function to call when event is triggered.
52
+ * @param opt_noCaptureIdentifier True if triggering on this event should not
53
+ * block execution of other event handlers on this touch or other
54
+ * simultaneous touches. False by default.
55
+ * @param opt_noPreventDefault True if triggering on this event should prevent
56
+ * the default handler. False by default. If opt_noPreventDefault is
57
+ * provided, opt_noCaptureIdentifier must also be provided.
58
+ * @return Opaque data that can be passed to unbindEvent_.
68
59
  * @alias Blockly.browserEvents.conditionalBind
69
60
  */
70
- const conditionalBind = function(
71
- node, name, thisObject, func, opt_noCaptureIdentifier,
72
- opt_noPreventDefault) {
61
+ export function conditionalBind(
62
+ node: EventTarget, name: string, thisObject: Object|null, func: Function,
63
+ opt_noCaptureIdentifier?: boolean, opt_noPreventDefault?: boolean): Data {
73
64
  let handled = false;
74
- const wrapFunc = function(e) {
65
+ function wrapFunc(e: Event) {
75
66
  const captureIdentifier = !opt_noCaptureIdentifier;
76
67
  // Handle each touch point separately. If the event was a mouse event, this
77
68
  // will hand back an array with one element, which we're fine handling.
@@ -89,10 +80,10 @@ const conditionalBind = function(
89
80
  }
90
81
  handled = true;
91
82
  }
92
- };
83
+ }
93
84
 
94
- const bindData = [];
95
- if (globalThis['PointerEvent'] && (name in Touch.TOUCH_MAP)) {
85
+ const bindData: Data = [];
86
+ if (globalThis['PointerEvent'] && name in Touch.TOUCH_MAP) {
96
87
  for (let i = 0; i < Touch.TOUCH_MAP[name].length; i++) {
97
88
  const type = Touch.TOUCH_MAP[name][i];
98
89
  node.addEventListener(type, wrapFunc, false);
@@ -104,7 +95,7 @@ const conditionalBind = function(
104
95
 
105
96
  // Add equivalent touch event.
106
97
  if (name in Touch.TOUCH_MAP) {
107
- const touchWrapFunc = function(e) {
98
+ const touchWrapFunc = (e: Event) => {
108
99
  wrapFunc(e);
109
100
  // Calling preventDefault stops the browser from scrolling/zooming the
110
101
  // page.
@@ -121,34 +112,33 @@ const conditionalBind = function(
121
112
  }
122
113
  }
123
114
  return bindData;
124
- };
125
- exports.conditionalBind = conditionalBind;
126
-
115
+ }
127
116
 
128
117
  /**
129
118
  * Bind an event handler that should be called regardless of whether it is part
130
119
  * of the active touch stream.
131
120
  * Use this for events that are not part of a multi-part gesture (e.g.
132
121
  * mouseover for tooltips).
133
- * @param {!EventTarget} node Node upon which to listen.
134
- * @param {string} name Event name to listen to (e.g. 'mousedown').
135
- * @param {?Object} thisObject The value of 'this' in the function.
136
- * @param {!Function} func Function to call when event is triggered.
137
- * @return {!Data} Opaque data that can be passed to
138
- * unbindEvent_.
122
+ * @param node Node upon which to listen.
123
+ * @param name Event name to listen to (e.g. 'mousedown').
124
+ * @param thisObject The value of 'this' in the function.
125
+ * @param func Function to call when event is triggered.
126
+ * @return Opaque data that can be passed to unbindEvent_.
139
127
  * @alias Blockly.browserEvents.bind
140
128
  */
141
- const bind = function(node, name, thisObject, func) {
142
- const wrapFunc = function(e) {
129
+ export function bind(
130
+ node: EventTarget, name: string, thisObject: Object|null,
131
+ func: Function): Data {
132
+ function wrapFunc(e: Event) {
143
133
  if (thisObject) {
144
134
  func.call(thisObject, e);
145
135
  } else {
146
136
  func(e);
147
137
  }
148
- };
138
+ }
149
139
 
150
- const bindData = [];
151
- if (globalThis['PointerEvent'] && (name in Touch.TOUCH_MAP)) {
140
+ const bindData: Data = [];
141
+ if (globalThis['PointerEvent'] && name in Touch.TOUCH_MAP) {
152
142
  for (let i = 0; i < Touch.TOUCH_MAP[name].length; i++) {
153
143
  const type = Touch.TOUCH_MAP[name][i];
154
144
  node.addEventListener(type, wrapFunc, false);
@@ -160,13 +150,17 @@ const bind = function(node, name, thisObject, func) {
160
150
 
161
151
  // Add equivalent touch event.
162
152
  if (name in Touch.TOUCH_MAP) {
163
- const touchWrapFunc = function(e) {
153
+ const touchWrapFunc = (e: Event) => {
164
154
  // Punt on multitouch events.
165
- if (e.changedTouches && e.changedTouches.length === 1) {
155
+ if (e instanceof TouchEvent && e.changedTouches &&
156
+ e.changedTouches.length === 1) {
166
157
  // Map the touch event's properties to the event.
167
158
  const touchPoint = e.changedTouches[0];
168
- e.clientX = touchPoint.clientX;
169
- e.clientY = touchPoint.clientY;
159
+ // TODO (6311): We are trying to make a touch event look like a mouse
160
+ // event, which is not allowed, because it requires adding more
161
+ // properties to the event. How do we want to deal with this?
162
+ (e as AnyDuringMigration).clientX = touchPoint.clientX;
163
+ (e as AnyDuringMigration).clientY = touchPoint.clientY;
170
164
  }
171
165
  wrapFunc(e);
172
166
 
@@ -181,90 +175,102 @@ const bind = function(node, name, thisObject, func) {
181
175
  }
182
176
  }
183
177
  return bindData;
184
- };
185
- exports.bind = bind;
178
+ }
186
179
 
187
180
  /**
188
181
  * Unbind one or more events event from a function call.
189
- * @param {!Data} bindData Opaque data from bindEvent_.
182
+ * @param bindData Opaque data from bindEvent_.
190
183
  * This list is emptied during the course of calling this function.
191
- * @return {!Function} The function call.
184
+ * @return The function call.
192
185
  * @alias Blockly.browserEvents.unbind
193
186
  */
194
- const unbind = function(bindData) {
195
- let func;
187
+ export function unbind(bindData: Data): (e: Event) => void {
188
+ // Accessing an element of the last property of the array is unsafe if the
189
+ // bindData is an empty array. But that should never happen because developers
190
+ // should only pass Data from bind or conditionalBind.
191
+ let callback = bindData[bindData.length - 1][2];
196
192
  while (bindData.length) {
197
193
  const bindDatum = bindData.pop();
198
- const node = bindDatum[0];
199
- const name = bindDatum[1];
200
- func = bindDatum[2];
194
+ const node = bindDatum![0];
195
+ const name = bindDatum![1];
196
+ const func = bindDatum![2];
201
197
  node.removeEventListener(name, func, false);
202
198
  }
203
- return func;
204
- };
205
- exports.unbind = unbind;
199
+ return callback;
200
+ }
206
201
 
207
202
  /**
208
203
  * Returns true if this event is targeting a text input widget?
209
- * @param {!Event} e An event.
210
- * @return {boolean} True if text input.
204
+ * @param e An event.
205
+ * @return True if text input.
211
206
  * @alias Blockly.browserEvents.isTargetInput
212
207
  */
213
- const isTargetInput = function(e) {
214
- return e.target.type === 'textarea' || e.target.type === 'text' ||
215
- e.target.type === 'number' || e.target.type === 'email' ||
216
- e.target.type === 'password' || e.target.type === 'search' ||
217
- e.target.type === 'tel' || e.target.type === 'url' ||
218
- e.target.isContentEditable ||
219
- (e.target.dataset && e.target.dataset.isTextInput === 'true');
220
- };
221
- exports.isTargetInput = isTargetInput;
208
+ export function isTargetInput(e: Event): boolean {
209
+ if (e.target instanceof HTMLElement) {
210
+ if (e.target.isContentEditable ||
211
+ e.target.getAttribute('data-is-text-input') === 'true') {
212
+ return true;
213
+ }
214
+
215
+ if (e.target instanceof HTMLInputElement) {
216
+ const target = e.target;
217
+ return target.type === 'text' || target.type === 'number' ||
218
+ target.type === 'email' || target.type === 'password' ||
219
+ target.type === 'search' || target.type === 'tel' ||
220
+ target.type === 'url';
221
+ }
222
+
223
+ if (e.target instanceof HTMLTextAreaElement) {
224
+ return true;
225
+ }
226
+ }
227
+
228
+ return false;
229
+ }
222
230
 
223
231
  /**
224
232
  * Returns true this event is a right-click.
225
- * @param {!Event} e Mouse event.
226
- * @return {boolean} True if right-click.
233
+ * @param e Mouse event.
234
+ * @return True if right-click.
227
235
  * @alias Blockly.browserEvents.isRightButton
228
236
  */
229
- const isRightButton = function(e) {
237
+ export function isRightButton(e: MouseEvent): boolean {
230
238
  if (e.ctrlKey && userAgent.MAC) {
231
239
  // Control-clicking on Mac OS X is treated as a right-click.
232
240
  // WebKit on Mac OS X fails to change button to 2 (but Gecko does).
233
241
  return true;
234
242
  }
235
243
  return e.button === 2;
236
- };
237
- exports.isRightButton = isRightButton;
244
+ }
238
245
 
239
246
  /**
240
247
  * Returns the converted coordinates of the given mouse event.
241
248
  * The origin (0,0) is the top-left corner of the Blockly SVG.
242
- * @param {!Event} e Mouse event.
243
- * @param {!Element} svg SVG element.
244
- * @param {?SVGMatrix} matrix Inverted screen CTM to use.
245
- * @return {!SVGPoint} Object with .x and .y properties.
249
+ * @param e Mouse event.
250
+ * @param svg SVG element.
251
+ * @param matrix Inverted screen CTM to use.
252
+ * @return Object with .x and .y properties.
246
253
  * @alias Blockly.browserEvents.mouseToSvg
247
254
  */
248
- const mouseToSvg = function(e, svg, matrix) {
255
+ export function mouseToSvg(
256
+ e: MouseEvent, svg: SVGSVGElement, matrix: SVGMatrix|null): SVGPoint {
249
257
  const svgPoint = svg.createSVGPoint();
250
258
  svgPoint.x = e.clientX;
251
259
  svgPoint.y = e.clientY;
252
260
 
253
261
  if (!matrix) {
254
- matrix = svg.getScreenCTM().inverse();
262
+ matrix = svg.getScreenCTM()!.inverse();
255
263
  }
256
264
  return svgPoint.matrixTransform(matrix);
257
- };
258
- exports.mouseToSvg = mouseToSvg;
265
+ }
259
266
 
260
267
  /**
261
268
  * Returns the scroll delta of a mouse event in pixel units.
262
- * @param {!Event} e Mouse event.
263
- * @return {{x: number, y: number}} Scroll delta object with .x and .y
264
- * properties.
269
+ * @param e Mouse event.
270
+ * @return Scroll delta object with .x and .y properties.
265
271
  * @alias Blockly.browserEvents.getScrollDeltaPixels
266
272
  */
267
- const getScrollDeltaPixels = function(e) {
273
+ export function getScrollDeltaPixels(e: WheelEvent): {x: number, y: number} {
268
274
  switch (e.deltaMode) {
269
275
  case 0x00: // Pixel mode.
270
276
  default:
@@ -280,5 +286,4 @@ const getScrollDeltaPixels = function(e) {
280
286
  y: e.deltaY * PAGE_MODE_MULTIPLIER,
281
287
  };
282
288
  }
283
- };
284
- exports.getScrollDeltaPixels = getScrollDeltaPixels;
289
+ }