blockly 8.0.4 → 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 +420 -420
  609. package/msg/ace.js +420 -420
  610. package/msg/af.js +420 -420
  611. package/msg/am.js +420 -420
  612. package/msg/ar.js +420 -420
  613. package/msg/ast.js +420 -420
  614. package/msg/az.js +420 -420
  615. package/msg/ba.js +420 -420
  616. package/msg/bcc.js +420 -420
  617. package/msg/be-tarask.js +420 -420
  618. package/msg/be.js +420 -420
  619. package/msg/bg.js +420 -420
  620. package/msg/bn.js +420 -420
  621. package/msg/br.js +420 -420
  622. package/msg/bs.js +420 -420
  623. package/msg/ca.js +420 -420
  624. package/msg/cdo.js +420 -420
  625. package/msg/cs.js +420 -420
  626. package/msg/da.js +420 -420
  627. package/msg/de.js +420 -420
  628. package/msg/diq.js +420 -420
  629. package/msg/dty.js +420 -420
  630. package/msg/ee.js +420 -420
  631. package/msg/el.js +420 -420
  632. package/msg/en-gb.js +420 -420
  633. package/msg/en.js +420 -420
  634. package/msg/eo.js +420 -420
  635. package/msg/es.js +420 -420
  636. package/msg/et.js +420 -420
  637. package/msg/eu.js +420 -420
  638. package/msg/fa.js +420 -420
  639. package/msg/fi.js +420 -420
  640. package/msg/fo.js +420 -420
  641. package/msg/fr.js +420 -420
  642. package/msg/frr.js +420 -420
  643. package/msg/gl.js +420 -420
  644. package/msg/gn.js +420 -420
  645. package/msg/gor.js +420 -420
  646. package/msg/ha.js +420 -420
  647. package/msg/hak.js +420 -420
  648. package/msg/he.js +420 -420
  649. package/msg/hi.js +420 -420
  650. package/msg/hr.js +420 -420
  651. package/msg/hrx.js +420 -420
  652. package/msg/hu.js +420 -420
  653. package/msg/hy.js +420 -420
  654. package/msg/ia.js +420 -420
  655. package/msg/id.js +420 -420
  656. package/msg/ig.js +420 -420
  657. package/msg/inh.js +420 -420
  658. package/msg/is.js +420 -420
  659. package/msg/it.js +420 -420
  660. package/msg/ja.js +420 -420
  661. package/msg/ka.js +420 -420
  662. package/msg/kab.js +420 -420
  663. package/msg/kbd-cyrl.js +420 -420
  664. package/msg/km.js +420 -420
  665. package/msg/kn.js +420 -420
  666. package/msg/ko.js +420 -420
  667. package/msg/ksh.js +420 -420
  668. package/msg/ku-latn.js +420 -420
  669. package/msg/ky.js +420 -420
  670. package/msg/la.js +420 -420
  671. package/msg/lb.js +420 -420
  672. package/msg/lki.js +420 -420
  673. package/msg/lo.js +420 -420
  674. package/msg/lrc.js +420 -420
  675. package/msg/lt.js +420 -420
  676. package/msg/lv.js +420 -420
  677. package/msg/mg.js +420 -420
  678. package/msg/mk.js +420 -420
  679. package/msg/ml.js +420 -420
  680. package/msg/mnw.js +420 -420
  681. package/msg/ms.js +420 -420
  682. package/msg/my.js +420 -420
  683. package/msg/mzn.js +420 -420
  684. package/msg/nb.js +420 -420
  685. package/msg/ne.js +420 -420
  686. package/msg/nl.js +420 -420
  687. package/msg/oc.js +420 -420
  688. package/msg/olo.js +420 -420
  689. package/msg/pa.js +420 -420
  690. package/msg/pl.js +420 -420
  691. package/msg/pms.js +420 -420
  692. package/msg/ps.js +420 -420
  693. package/msg/pt-br.js +420 -420
  694. package/msg/pt.js +420 -420
  695. package/msg/ro.js +420 -420
  696. package/msg/ru.js +420 -420
  697. package/msg/sc.js +420 -420
  698. package/msg/sco.js +420 -420
  699. package/msg/sd.js +420 -420
  700. package/msg/shn.js +420 -420
  701. package/msg/si.js +420 -420
  702. package/msg/sk.js +420 -420
  703. package/msg/skr-arab.js +420 -420
  704. package/msg/sl.js +420 -420
  705. package/msg/smn.js +420 -420
  706. package/msg/sq.js +420 -420
  707. package/msg/sr-latn.js +420 -420
  708. package/msg/sr.js +420 -420
  709. package/msg/sv.js +420 -420
  710. package/msg/sw.js +420 -420
  711. package/msg/ta.js +420 -420
  712. package/msg/tcy.js +420 -420
  713. package/msg/te.js +420 -420
  714. package/msg/th.js +420 -420
  715. package/msg/ti.js +420 -420
  716. package/msg/tl.js +420 -420
  717. package/msg/tlh.js +420 -420
  718. package/msg/tr.js +420 -420
  719. package/msg/ug-arab.js +420 -420
  720. package/msg/uk.js +420 -420
  721. package/msg/ur.js +420 -420
  722. package/msg/uz.js +420 -420
  723. package/msg/vi.js +420 -420
  724. package/msg/xmf.js +420 -420
  725. package/msg/yo.js +420 -420
  726. package/msg/yue.js +420 -420
  727. package/msg/zgh.js +420 -420
  728. package/msg/zh-hans.js +420 -420
  729. package/msg/zh-hant.js +420 -420
  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
+ }