blockly 8.0.5 → 9.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (736) hide show
  1. package/blockly.min.js +2002 -2269
  2. package/blockly_compressed.js +1499 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks/blocks.js +3 -2
  5. package/blocks/colour.js +3 -1
  6. package/blocks/lists.js +94 -22
  7. package/blocks/logic.js +14 -6
  8. package/blocks/loops.js +5 -3
  9. package/blocks/math.js +3 -1
  10. package/blocks/procedures.js +3 -1
  11. package/blocks/text.js +14 -6
  12. package/blocks/variables.js +3 -1
  13. package/blocks/variables_dynamic.js +3 -1
  14. package/blocks.d.ts +0 -2
  15. package/blocks_compressed.js +189 -171
  16. package/blocks_compressed.js.map +1 -1
  17. package/closure/goog/base.d.ts +1 -0
  18. package/closure/goog/base_minimal.d.ts +18 -0
  19. package/closure/goog/goog.d.ts +25 -0
  20. package/core/any_aliases.d.ts +1 -0
  21. package/core/any_aliases.ts +1 -0
  22. package/core/block.d.ts +779 -0
  23. package/core/{block.js → block.ts} +610 -719
  24. package/core/block_animations.d.ts +33 -0
  25. package/core/{block_animations.js → block_animations.ts} +75 -79
  26. package/core/block_drag_surface.d.ts +111 -0
  27. package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
  28. package/core/block_dragger.d.ts +143 -0
  29. package/core/{block_dragger.js → block_dragger.ts} +139 -176
  30. package/core/block_svg.d.ts +588 -0
  31. package/core/{block_svg.js → block_svg.ts} +494 -630
  32. package/core/blockly.d.ts +562 -0
  33. package/core/blockly.js +1 -1
  34. package/core/blockly.ts +749 -0
  35. package/core/blockly_options.d.ts +69 -0
  36. package/core/blockly_options.ts +81 -0
  37. package/core/blocks.d.ts +17 -0
  38. package/core/{blocks.js → blocks.ts} +4 -8
  39. package/core/browser_events.d.ts +85 -0
  40. package/core/{browser_events.js → browser_events.ts} +98 -93
  41. package/core/bubble.d.ts +279 -0
  42. package/core/{bubble.js → bubble.ts} +277 -370
  43. package/core/bubble_dragger.d.ts +73 -0
  44. package/core/bubble_dragger.ts +229 -0
  45. package/core/bump_objects.d.ts +34 -0
  46. package/core/{bump_objects.js → bump_objects.ts} +54 -52
  47. package/core/clipboard.d.ts +42 -0
  48. package/core/clipboard.ts +91 -0
  49. package/core/comment.d.ts +113 -0
  50. package/core/{comment.js → comment.ts} +135 -185
  51. package/core/common.d.ts +129 -0
  52. package/core/{common.js → common.ts} +105 -82
  53. package/core/component_manager.d.ts +91 -0
  54. package/core/component_manager.ts +211 -0
  55. package/core/config.d.ts +23 -0
  56. package/core/{config.js → config.ts} +12 -19
  57. package/core/connection.d.ts +232 -0
  58. package/core/{connection.js → connection.ts} +187 -237
  59. package/core/connection_checker.d.ts +78 -0
  60. package/core/{connection_checker.js → connection_checker.ts} +66 -77
  61. package/core/connection_db.d.ts +91 -0
  62. package/core/{connection_db.js → connection_db.ts} +62 -87
  63. package/core/connection_type.d.ts +15 -0
  64. package/core/{connection_type.js → connection_type.ts} +8 -12
  65. package/core/constants.d.ts +15 -0
  66. package/core/{constants.js → constants.ts} +4 -8
  67. package/core/contextmenu.d.ts +80 -0
  68. package/core/{contextmenu.js → contextmenu.ts} +118 -153
  69. package/core/contextmenu_items.d.ts +77 -0
  70. package/core/contextmenu_items.ts +576 -0
  71. package/core/contextmenu_registry.d.ts +105 -0
  72. package/core/contextmenu_registry.ts +179 -0
  73. package/core/css.d.ts +24 -0
  74. package/core/{css.js → css.ts} +16 -24
  75. package/core/delete_area.d.ts +47 -0
  76. package/core/delete_area.ts +82 -0
  77. package/core/dialog.d.ts +61 -0
  78. package/core/dialog.ts +127 -0
  79. package/core/drag_target.d.ts +63 -0
  80. package/core/drag_target.ts +94 -0
  81. package/core/dropdowndiv.d.ts +155 -0
  82. package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
  83. package/core/events/events.d.ts +102 -0
  84. package/core/events/events.ts +123 -0
  85. package/core/events/events_abstract.d.ts +51 -0
  86. package/core/events/events_abstract.ts +112 -0
  87. package/core/events/events_block_base.d.ts +31 -0
  88. package/core/events/events_block_base.ts +65 -0
  89. package/core/events/events_block_change.d.ts +55 -0
  90. package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
  91. package/core/events/events_block_create.d.ts +35 -0
  92. package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
  93. package/core/events/events_block_delete.d.ts +36 -0
  94. package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
  95. package/core/events/events_block_drag.d.ts +36 -0
  96. package/core/events/events_block_drag.ts +82 -0
  97. package/core/events/events_block_move.d.ts +51 -0
  98. package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
  99. package/core/events/events_bubble_open.d.ts +35 -0
  100. package/core/events/events_bubble_open.ts +82 -0
  101. package/core/events/events_click.d.ts +36 -0
  102. package/core/events/{events_click.js → events_click.ts} +27 -30
  103. package/core/events/events_comment_base.d.ts +39 -0
  104. package/core/events/events_comment_base.ts +107 -0
  105. package/core/events/events_comment_change.d.ts +43 -0
  106. package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
  107. package/core/events/events_comment_create.d.ts +35 -0
  108. package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
  109. package/core/events/events_comment_delete.d.ts +35 -0
  110. package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
  111. package/core/events/events_comment_move.d.ts +55 -0
  112. package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
  113. package/core/events/events_marker_move.d.ts +40 -0
  114. package/core/events/events_marker_move.ts +99 -0
  115. package/core/events/events_selected.d.ts +34 -0
  116. package/core/events/events_selected.ts +78 -0
  117. package/core/events/events_theme_change.d.ts +30 -0
  118. package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
  119. package/core/events/events_toolbox_item_select.d.ts +34 -0
  120. package/core/events/events_toolbox_item_select.ts +79 -0
  121. package/core/events/events_trashcan_open.d.ts +31 -0
  122. package/core/events/events_trashcan_open.ts +68 -0
  123. package/core/events/events_ui.d.ts +37 -0
  124. package/core/events/{events_ui.js → events_ui.ts} +27 -26
  125. package/core/events/events_ui_base.d.ts +26 -0
  126. package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
  127. package/core/events/events_var_base.d.ts +31 -0
  128. package/core/events/events_var_base.ts +65 -0
  129. package/core/events/events_var_create.d.ts +35 -0
  130. package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
  131. package/core/events/events_var_delete.d.ts +35 -0
  132. package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
  133. package/core/events/events_var_rename.d.ts +36 -0
  134. package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
  135. package/core/events/events_viewport.d.ts +39 -0
  136. package/core/events/events_viewport.ts +100 -0
  137. package/core/events/utils.d.ts +272 -0
  138. package/core/events/{utils.js → utils.ts} +148 -219
  139. package/core/events/workspace_events.d.ts +36 -0
  140. package/core/events/workspace_events.ts +86 -0
  141. package/core/extensions.d.ts +107 -0
  142. package/core/{extensions.js → extensions.ts} +153 -172
  143. package/core/field.d.ts +534 -0
  144. package/core/{field.js → field.ts} +413 -489
  145. package/core/field_angle.d.ts +176 -0
  146. package/core/field_angle.ts +563 -0
  147. package/core/field_checkbox.d.ts +124 -0
  148. package/core/field_checkbox.ts +243 -0
  149. package/core/field_colour.d.ts +200 -0
  150. package/core/field_colour.ts +632 -0
  151. package/core/field_dropdown.d.ts +222 -0
  152. package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
  153. package/core/field_image.d.ts +134 -0
  154. package/core/field_image.ts +282 -0
  155. package/core/field_label.d.ts +71 -0
  156. package/core/field_label.ts +152 -0
  157. package/core/field_label_serializable.d.ts +42 -0
  158. package/core/field_label_serializable.ts +76 -0
  159. package/core/field_multilineinput.d.ts +146 -0
  160. package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
  161. package/core/field_number.d.ts +156 -0
  162. package/core/{field_number.js → field_number.ts} +110 -123
  163. package/core/field_registry.d.ts +45 -0
  164. package/core/{field_registry.js → field_registry.ts} +37 -30
  165. package/core/field_textinput.d.ts +219 -0
  166. package/core/field_textinput.ts +591 -0
  167. package/core/field_variable.d.ts +217 -0
  168. package/core/{field_variable.js → field_variable.ts} +174 -187
  169. package/core/flyout_base.d.ts +459 -0
  170. package/core/{flyout_base.js → flyout_base.ts} +429 -518
  171. package/core/flyout_button.d.ts +81 -0
  172. package/core/flyout_button.ts +292 -0
  173. package/core/flyout_horizontal.d.ts +82 -0
  174. package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
  175. package/core/flyout_metrics_manager.d.ts +40 -0
  176. package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
  177. package/core/flyout_vertical.d.ts +83 -0
  178. package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
  179. package/core/generator.d.ts +205 -0
  180. package/core/{generator.js → generator.ts} +168 -193
  181. package/core/gesture.d.ts +357 -0
  182. package/core/{gesture.js → gesture.ts} +289 -369
  183. package/core/grid.d.ts +83 -0
  184. package/core/grid.ts +192 -0
  185. package/core/icon.d.ts +78 -0
  186. package/core/icon.ts +189 -0
  187. package/core/inject.d.ts +15 -0
  188. package/core/{inject.js → inject.ts} +101 -100
  189. package/core/input.d.ts +128 -0
  190. package/core/input.ts +309 -0
  191. package/core/input_types.d.ts +14 -0
  192. package/core/{input_types.js → input_types.ts} +8 -12
  193. package/core/insertion_marker_manager.d.ts +212 -0
  194. package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
  195. package/core/interfaces/i_ast_node_location.d.ts +11 -0
  196. package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
  197. package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
  198. package/core/interfaces/i_ast_node_location_svg.ts +37 -0
  199. package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
  200. package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
  201. package/core/interfaces/i_autohideable.d.ts +18 -0
  202. package/core/interfaces/i_autohideable.ts +34 -0
  203. package/core/interfaces/i_block_dragger.d.ts +43 -0
  204. package/core/interfaces/i_block_dragger.ts +67 -0
  205. package/core/interfaces/i_bounded_element.d.ts +24 -0
  206. package/core/interfaces/i_bounded_element.ts +42 -0
  207. package/core/interfaces/i_bubble.d.ts +59 -0
  208. package/core/interfaces/i_bubble.ts +88 -0
  209. package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
  210. package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
  211. package/core/interfaces/i_component.d.ts +17 -0
  212. package/core/interfaces/{i_component.js → i_component.ts} +9 -14
  213. package/core/interfaces/i_connection_checker.d.ts +69 -0
  214. package/core/interfaces/i_connection_checker.ts +102 -0
  215. package/core/interfaces/i_contextmenu.d.ts +13 -0
  216. package/core/interfaces/i_contextmenu.ts +26 -0
  217. package/core/interfaces/i_copyable.d.ts +24 -0
  218. package/core/interfaces/i_copyable.ts +40 -0
  219. package/core/interfaces/i_deletable.d.ts +16 -0
  220. package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
  221. package/core/interfaces/i_delete_area.d.ts +25 -0
  222. package/core/interfaces/i_delete_area.ts +46 -0
  223. package/core/interfaces/i_drag_target.d.ts +53 -0
  224. package/core/interfaces/i_drag_target.ts +84 -0
  225. package/core/interfaces/i_draggable.d.ts +12 -0
  226. package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
  227. package/core/interfaces/i_flyout.d.ts +134 -0
  228. package/core/interfaces/i_flyout.ts +186 -0
  229. package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
  230. package/core/interfaces/i_keyboard_accessible.ts +35 -0
  231. package/core/interfaces/i_metrics_manager.d.ts +117 -0
  232. package/core/interfaces/i_metrics_manager.ts +151 -0
  233. package/core/interfaces/i_movable.d.ts +16 -0
  234. package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
  235. package/core/interfaces/i_positionable.d.ts +27 -0
  236. package/core/interfaces/i_positionable.ts +50 -0
  237. package/core/interfaces/i_registrable.d.ts +11 -0
  238. package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
  239. package/core/interfaces/i_registrable_field.d.ts +17 -0
  240. package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
  241. package/core/interfaces/i_selectable.d.ts +18 -0
  242. package/core/interfaces/i_selectable.ts +34 -0
  243. package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
  244. package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
  245. package/core/interfaces/i_serializer.d.ts +42 -0
  246. package/core/interfaces/i_serializer.ts +65 -0
  247. package/core/interfaces/i_styleable.d.ts +21 -0
  248. package/core/interfaces/i_styleable.ts +35 -0
  249. package/core/interfaces/i_toolbox.d.ts +85 -0
  250. package/core/interfaces/i_toolbox.ts +127 -0
  251. package/core/interfaces/i_toolbox_item.d.ts +62 -0
  252. package/core/interfaces/i_toolbox_item.ts +84 -0
  253. package/core/internal_constants.d.ts +40 -0
  254. package/core/{internal_constants.js → internal_constants.ts} +13 -18
  255. package/core/keyboard_nav/ast_node.d.ts +239 -0
  256. package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
  257. package/core/keyboard_nav/basic_cursor.d.ts +88 -0
  258. package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
  259. package/core/keyboard_nav/cursor.d.ts +41 -0
  260. package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
  261. package/core/keyboard_nav/marker.d.ts +58 -0
  262. package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
  263. package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
  264. package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
  265. package/core/main.d.ts +11 -0
  266. package/core/main.js +303 -0
  267. package/core/marker_manager.d.ts +85 -0
  268. package/core/marker_manager.ts +181 -0
  269. package/core/menu.d.ts +149 -0
  270. package/core/{menu.js → menu.ts} +141 -174
  271. package/core/menuitem.d.ts +118 -0
  272. package/core/menuitem.ts +240 -0
  273. package/core/metrics_manager.d.ts +201 -0
  274. package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
  275. package/core/msg.d.ts +9 -0
  276. package/core/{msg.js → msg.ts} +4 -8
  277. package/core/mutator.d.ts +128 -0
  278. package/core/{mutator.js → mutator.ts} +196 -211
  279. package/core/names.d.ts +124 -0
  280. package/core/names.ts +267 -0
  281. package/core/options.d.ts +137 -0
  282. package/core/{options.js → options.ts} +147 -173
  283. package/core/positionable_helpers.d.ts +88 -0
  284. package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
  285. package/core/procedures.d.ts +108 -0
  286. package/core/{procedures.js → procedures.ts} +143 -152
  287. package/core/registry.d.ts +137 -0
  288. package/core/registry.ts +339 -0
  289. package/core/rendered_connection.d.ts +191 -0
  290. package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
  291. package/core/renderers/common/block_rendering.d.ts +114 -0
  292. package/core/renderers/common/block_rendering.ts +164 -0
  293. package/core/renderers/common/constants.d.ts +458 -0
  294. package/core/renderers/common/constants.ts +1124 -0
  295. package/core/renderers/common/debug.d.ts +28 -0
  296. package/core/renderers/common/{debug.js → debug.ts} +14 -20
  297. package/core/renderers/common/debugger.d.ts +120 -0
  298. package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
  299. package/core/renderers/common/drawer.d.ts +132 -0
  300. package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
  301. package/core/renderers/common/i_path_object.d.ts +117 -0
  302. package/core/renderers/common/i_path_object.ts +161 -0
  303. package/core/renderers/common/info.d.ts +194 -0
  304. package/core/renderers/common/{info.js → info.ts} +165 -222
  305. package/core/renderers/common/marker_svg.d.ts +220 -0
  306. package/core/renderers/common/marker_svg.ts +680 -0
  307. package/core/renderers/common/path_object.d.ts +146 -0
  308. package/core/renderers/common/path_object.ts +272 -0
  309. package/core/renderers/common/renderer.d.ts +157 -0
  310. package/core/renderers/common/renderer.ts +271 -0
  311. package/core/renderers/geras/constants.d.ts +23 -0
  312. package/core/renderers/geras/constants.ts +61 -0
  313. package/core/renderers/geras/drawer.d.ts +43 -0
  314. package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
  315. package/core/renderers/geras/geras.d.ts +11 -0
  316. package/core/renderers/geras/geras.ts +37 -0
  317. package/core/renderers/geras/highlight_constants.d.ts +108 -0
  318. package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
  319. package/core/renderers/geras/highlighter.d.ts +98 -0
  320. package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
  321. package/core/renderers/geras/info.d.ts +45 -0
  322. package/core/renderers/geras/{info.js → info.ts} +61 -99
  323. package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
  324. package/core/renderers/geras/measurables/inline_input.ts +51 -0
  325. package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
  326. package/core/renderers/geras/measurables/statement_input.ts +50 -0
  327. package/core/renderers/geras/path_object.d.ts +47 -0
  328. package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
  329. package/core/renderers/geras/renderer.d.ts +69 -0
  330. package/core/renderers/geras/renderer.ts +126 -0
  331. package/core/renderers/measurables/base.d.ts +27 -0
  332. package/core/renderers/measurables/base.ts +53 -0
  333. package/core/renderers/measurables/bottom_row.d.ts +61 -0
  334. package/core/renderers/measurables/bottom_row.ts +120 -0
  335. package/core/renderers/measurables/connection.d.ts +25 -0
  336. package/core/renderers/measurables/connection.ts +52 -0
  337. package/core/renderers/measurables/external_value_input.d.ts +27 -0
  338. package/core/renderers/measurables/external_value_input.ts +65 -0
  339. package/core/renderers/measurables/field.d.ts +30 -0
  340. package/core/renderers/measurables/field.ts +63 -0
  341. package/core/renderers/measurables/hat.d.ts +21 -0
  342. package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
  343. package/core/renderers/measurables/icon.d.ts +26 -0
  344. package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
  345. package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
  346. package/core/renderers/measurables/in_row_spacer.ts +44 -0
  347. package/core/renderers/measurables/inline_input.d.ts +24 -0
  348. package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
  349. package/core/renderers/measurables/input_connection.d.ts +29 -0
  350. package/core/renderers/measurables/input_connection.ts +66 -0
  351. package/core/renderers/measurables/input_row.d.ts +30 -0
  352. package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
  353. package/core/renderers/measurables/jagged_edge.d.ts +20 -0
  354. package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
  355. package/core/renderers/measurables/next_connection.d.ts +23 -0
  356. package/core/renderers/measurables/next_connection.ts +47 -0
  357. package/core/renderers/measurables/output_connection.d.ts +26 -0
  358. package/core/renderers/measurables/output_connection.ts +56 -0
  359. package/core/renderers/measurables/previous_connection.d.ts +23 -0
  360. package/core/renderers/measurables/previous_connection.ts +47 -0
  361. package/core/renderers/measurables/round_corner.d.ts +21 -0
  362. package/core/renderers/measurables/round_corner.ts +49 -0
  363. package/core/renderers/measurables/row.d.ts +141 -0
  364. package/core/renderers/measurables/row.ts +225 -0
  365. package/core/renderers/measurables/spacer_row.d.ts +29 -0
  366. package/core/renderers/measurables/spacer_row.ts +55 -0
  367. package/core/renderers/measurables/square_corner.d.ts +21 -0
  368. package/core/renderers/measurables/square_corner.ts +47 -0
  369. package/core/renderers/measurables/statement_input.d.ts +22 -0
  370. package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
  371. package/core/renderers/measurables/top_row.d.ts +56 -0
  372. package/core/renderers/measurables/top_row.ts +122 -0
  373. package/core/renderers/measurables/types.d.ts +235 -0
  374. package/core/renderers/measurables/types.ts +332 -0
  375. package/core/renderers/minimalist/constants.d.ts +14 -0
  376. package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
  377. package/core/renderers/minimalist/drawer.d.ts +21 -0
  378. package/core/renderers/minimalist/drawer.ts +38 -0
  379. package/core/renderers/minimalist/info.d.ts +30 -0
  380. package/core/renderers/minimalist/info.ts +52 -0
  381. package/core/renderers/minimalist/minimalist.d.ts +6 -0
  382. package/core/renderers/minimalist/minimalist.ts +22 -0
  383. package/core/renderers/minimalist/renderer.d.ts +41 -0
  384. package/core/renderers/minimalist/renderer.ts +71 -0
  385. package/core/renderers/thrasos/info.d.ts +40 -0
  386. package/core/renderers/thrasos/{info.js → info.ts} +66 -67
  387. package/core/renderers/thrasos/renderer.d.ts +25 -0
  388. package/core/renderers/thrasos/renderer.ts +48 -0
  389. package/core/renderers/thrasos/thrasos.d.ts +4 -0
  390. package/core/renderers/thrasos/thrasos.ts +20 -0
  391. package/core/renderers/zelos/constants.d.ts +186 -0
  392. package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
  393. package/core/renderers/zelos/drawer.d.ts +47 -0
  394. package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
  395. package/core/renderers/zelos/info.d.ts +88 -0
  396. package/core/renderers/zelos/{info.js → info.ts} +111 -142
  397. package/core/renderers/zelos/marker_svg.d.ts +46 -0
  398. package/core/renderers/zelos/marker_svg.ts +151 -0
  399. package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
  400. package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
  401. package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
  402. package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
  403. package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
  404. package/core/renderers/zelos/measurables/row_elements.ts +45 -0
  405. package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
  406. package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
  407. package/core/renderers/zelos/path_object.d.ts +77 -0
  408. package/core/renderers/zelos/path_object.ts +215 -0
  409. package/core/renderers/zelos/renderer.d.ts +74 -0
  410. package/core/renderers/zelos/renderer.ts +142 -0
  411. package/core/renderers/zelos/zelos.d.ts +12 -0
  412. package/core/renderers/zelos/zelos.ts +39 -0
  413. package/core/scrollbar.d.ts +277 -0
  414. package/core/{scrollbar.js → scrollbar.ts} +307 -328
  415. package/core/scrollbar_pair.d.ts +105 -0
  416. package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
  417. package/core/serialization/blocks.d.ts +98 -0
  418. package/core/serialization/{blocks.js → blocks.ts} +229 -228
  419. package/core/serialization/exceptions.d.ts +73 -0
  420. package/core/serialization/exceptions.ts +98 -0
  421. package/core/serialization/priorities.d.ts +15 -0
  422. package/core/serialization/{priorities.js → priorities.ts} +4 -10
  423. package/core/serialization/registry.d.ts +20 -0
  424. package/core/serialization/{registry.js → registry.ts} +11 -13
  425. package/core/serialization/variables.d.ts +14 -0
  426. package/core/serialization/{variables.js → variables.ts} +30 -32
  427. package/core/serialization/workspaces.d.ts +28 -0
  428. package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
  429. package/core/shortcut_items.d.ts +61 -0
  430. package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
  431. package/core/shortcut_registry.d.ts +151 -0
  432. package/core/shortcut_registry.ts +355 -0
  433. package/core/sprites.d.ts +19 -0
  434. package/core/{sprites.js → sprites.ts} +4 -6
  435. package/core/theme/classic.d.ts +12 -0
  436. package/core/theme/{classic.js → classic.ts} +5 -7
  437. package/core/theme/themes.d.ts +8 -0
  438. package/core/theme/themes.ts +22 -0
  439. package/core/theme/zelos.d.ts +11 -0
  440. package/core/theme/{zelos.js → zelos.ts} +4 -7
  441. package/core/theme.d.ts +142 -0
  442. package/core/theme.ts +221 -0
  443. package/core/theme_manager.d.ts +81 -0
  444. package/core/theme_manager.ts +186 -0
  445. package/core/toolbox/category.d.ts +239 -0
  446. package/core/toolbox/category.ts +679 -0
  447. package/core/toolbox/collapsible_category.d.ts +91 -0
  448. package/core/toolbox/collapsible_category.ts +273 -0
  449. package/core/toolbox/separator.d.ts +39 -0
  450. package/core/toolbox/separator.ts +105 -0
  451. package/core/toolbox/toolbox.d.ts +352 -0
  452. package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
  453. package/core/toolbox/toolbox_item.d.ts +85 -0
  454. package/core/toolbox/toolbox_item.ts +147 -0
  455. package/core/tooltip.d.ts +126 -0
  456. package/core/{tooltip.js → tooltip.ts} +136 -214
  457. package/core/touch.d.ts +121 -0
  458. package/core/touch.ts +306 -0
  459. package/core/touch_gesture.d.ts +115 -0
  460. package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
  461. package/core/trashcan.d.ts +195 -0
  462. package/core/{trashcan.js → trashcan.ts} +226 -312
  463. package/core/utils/aria.d.ts +67 -0
  464. package/core/utils/{aria.js → aria.ts} +47 -61
  465. package/core/utils/array.d.ts +14 -0
  466. package/core/utils/{array.js → array.ts} +10 -12
  467. package/core/utils/colour.d.ts +103 -0
  468. package/core/utils/{colour.js → colour.ts} +60 -72
  469. package/core/utils/coordinate.d.ts +72 -0
  470. package/core/utils/coordinate.ts +124 -0
  471. package/core/utils/deprecation.d.ts +17 -0
  472. package/core/utils/{deprecation.js → deprecation.ts} +11 -11
  473. package/core/utils/dom.d.ts +165 -0
  474. package/core/utils/{dom.js → dom.ts} +125 -147
  475. package/core/utils/idgenerator.d.ts +25 -0
  476. package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
  477. package/core/utils/keycodes.d.ts +137 -0
  478. package/core/utils/keycodes.ts +169 -0
  479. package/core/utils/math.d.ts +30 -0
  480. package/core/utils/{math.js → math.ts} +17 -19
  481. package/core/utils/metrics.d.ts +64 -0
  482. package/core/utils/metrics.ts +97 -0
  483. package/core/utils/object.d.ts +35 -0
  484. package/core/utils/{object.js → object.ts} +30 -26
  485. package/core/utils/parsing.d.ts +50 -0
  486. package/core/utils/{parsing.js → parsing.ts} +50 -50
  487. package/core/utils/rect.d.ts +38 -0
  488. package/core/utils/{rect.js → rect.ts} +18 -31
  489. package/core/utils/sentinel.d.ts +11 -0
  490. package/core/utils/{sentinel.js → sentinel.ts} +3 -5
  491. package/core/utils/size.d.ts +27 -0
  492. package/core/utils/{size.js → size.ts} +12 -26
  493. package/core/utils/string.d.ts +55 -0
  494. package/core/utils/{string.js → string.ts} +64 -61
  495. package/core/utils/style.d.ts +127 -0
  496. package/core/utils/{style.js → style.ts} +102 -92
  497. package/core/utils/svg.d.ts +68 -0
  498. package/core/utils/svg.ts +88 -0
  499. package/core/utils/svg_math.d.ts +70 -0
  500. package/core/utils/{svg_math.js → svg_math.ts} +72 -71
  501. package/core/utils/svg_paths.d.ts +101 -0
  502. package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
  503. package/core/utils/toolbox.d.ts +193 -0
  504. package/core/utils/toolbox.ts +433 -0
  505. package/core/utils/useragent.d.ts +33 -0
  506. package/core/utils/useragent.ts +135 -0
  507. package/core/utils/xml.d.ts +52 -0
  508. package/core/utils/{xml.js → xml.ts} +26 -36
  509. package/core/utils.d.ts +217 -0
  510. package/core/utils.ts +428 -0
  511. package/core/variable_map.d.ts +141 -0
  512. package/core/{variable_map.js → variable_map.ts} +131 -149
  513. package/core/variable_model.d.ts +40 -0
  514. package/core/variable_model.ts +82 -0
  515. package/core/variables.d.ts +181 -0
  516. package/core/{variables.js → variables.ts} +206 -188
  517. package/core/variables_dynamic.d.ts +38 -0
  518. package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
  519. package/core/warning.d.ts +50 -0
  520. package/core/{warning.js → warning.ts} +52 -66
  521. package/core/widgetdiv.d.ts +69 -0
  522. package/core/widgetdiv.ts +257 -0
  523. package/core/workspace.d.ts +386 -0
  524. package/core/workspace.ts +801 -0
  525. package/core/workspace_audio.d.ts +47 -0
  526. package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
  527. package/core/workspace_comment.d.ts +170 -0
  528. package/core/workspace_comment.ts +398 -0
  529. package/core/workspace_comment_svg.d.ts +329 -0
  530. package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
  531. package/core/workspace_drag_surface_svg.d.ts +68 -0
  532. package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
  533. package/core/workspace_dragger.d.ts +48 -0
  534. package/core/workspace_dragger.ts +104 -0
  535. package/core/workspace_svg.d.ts +920 -0
  536. package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
  537. package/core/xml.d.ts +117 -0
  538. package/core/{xml.js → xml.ts} +306 -326
  539. package/core/zoom_controls.d.ts +130 -0
  540. package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
  541. package/core.d.ts +1 -3
  542. package/core.js +1 -2
  543. package/dart.d.ts +0 -3
  544. package/dart_compressed.js +387 -99
  545. package/dart_compressed.js.map +1 -1
  546. package/generators/dart/all.js +2 -0
  547. package/generators/dart/colour.js +1 -1
  548. package/generators/dart/lists.js +1 -1
  549. package/generators/dart/logic.js +1 -1
  550. package/generators/dart/loops.js +1 -1
  551. package/generators/dart/math.js +1 -1
  552. package/generators/dart/procedures.js +1 -1
  553. package/generators/dart/text.js +1 -1
  554. package/generators/dart/variables.js +1 -1
  555. package/generators/dart/variables_dynamic.js +1 -1
  556. package/generators/dart.js +1 -2
  557. package/generators/javascript/all.js +2 -0
  558. package/generators/javascript/colour.js +1 -1
  559. package/generators/javascript/lists.js +1 -1
  560. package/generators/javascript/logic.js +1 -1
  561. package/generators/javascript/loops.js +1 -1
  562. package/generators/javascript/math.js +4 -4
  563. package/generators/javascript/procedures.js +1 -1
  564. package/generators/javascript/text.js +2 -2
  565. package/generators/javascript/variables.js +1 -1
  566. package/generators/javascript/variables_dynamic.js +1 -1
  567. package/generators/javascript.js +1 -3
  568. package/generators/lua/all.js +2 -0
  569. package/generators/lua/colour.js +1 -1
  570. package/generators/lua/lists.js +1 -1
  571. package/generators/lua/logic.js +1 -1
  572. package/generators/lua/loops.js +1 -1
  573. package/generators/lua/math.js +1 -1
  574. package/generators/lua/procedures.js +1 -1
  575. package/generators/lua/text.js +1 -1
  576. package/generators/lua/variables.js +1 -1
  577. package/generators/lua/variables_dynamic.js +1 -1
  578. package/generators/lua.js +1 -2
  579. package/generators/php/all.js +2 -0
  580. package/generators/php/colour.js +1 -1
  581. package/generators/php/lists.js +1 -2
  582. package/generators/php/logic.js +1 -1
  583. package/generators/php/loops.js +1 -1
  584. package/generators/php/math.js +1 -1
  585. package/generators/php/procedures.js +1 -1
  586. package/generators/php/text.js +1 -1
  587. package/generators/php/variables.js +1 -1
  588. package/generators/php/variables_dynamic.js +1 -1
  589. package/generators/php.js +1 -2
  590. package/generators/python/all.js +2 -0
  591. package/generators/python/colour.js +3 -3
  592. package/generators/python/lists.js +1 -1
  593. package/generators/python/logic.js +1 -1
  594. package/generators/python/loops.js +4 -7
  595. package/generators/python/math.js +1 -1
  596. package/generators/python/procedures.js +1 -1
  597. package/generators/python/text.js +1 -1
  598. package/generators/python/variables.js +1 -1
  599. package/generators/python/variables_dynamic.js +1 -1
  600. package/generators/python.js +1 -2
  601. package/index.d.ts +2 -8
  602. package/javascript.d.ts +0 -3
  603. package/javascript_compressed.js +314 -104
  604. package/javascript_compressed.js.map +1 -1
  605. package/lua.d.ts +0 -3
  606. package/lua_compressed.js +399 -81
  607. package/lua_compressed.js.map +1 -1
  608. package/package.json +5 -5
  609. package/php.d.ts +0 -3
  610. package/php_compressed.js +322 -93
  611. package/php_compressed.js.map +1 -1
  612. package/python.d.ts +0 -3
  613. package/python_compressed.js +237 -90
  614. package/python_compressed.js.map +1 -1
  615. package/blockly.d.ts +0 -26127
  616. package/core/blockly_options.js +0 -28
  617. package/core/bubble_dragger.js +0 -298
  618. package/core/clipboard.js +0 -80
  619. package/core/component_manager.js +0 -263
  620. package/core/contextmenu_items.js +0 -651
  621. package/core/contextmenu_registry.js +0 -178
  622. package/core/delete_area.js +0 -87
  623. package/core/dialog.js +0 -107
  624. package/core/drag_target.js +0 -98
  625. package/core/events/events.js +0 -147
  626. package/core/events/events_abstract.js +0 -133
  627. package/core/events/events_block_base.js +0 -70
  628. package/core/events/events_block_drag.js +0 -89
  629. package/core/events/events_bubble_open.js +0 -90
  630. package/core/events/events_comment_base.js +0 -121
  631. package/core/events/events_marker_move.js +0 -110
  632. package/core/events/events_selected.js +0 -83
  633. package/core/events/events_toolbox_item_select.js +0 -84
  634. package/core/events/events_trashcan_open.js +0 -73
  635. package/core/events/events_var_base.js +0 -70
  636. package/core/events/events_viewport.js +0 -107
  637. package/core/events/workspace_events.js +0 -93
  638. package/core/field_angle.js +0 -591
  639. package/core/field_checkbox.js +0 -255
  640. package/core/field_colour.js +0 -717
  641. package/core/field_image.js +0 -304
  642. package/core/field_label.js +0 -149
  643. package/core/field_label_serializable.js +0 -80
  644. package/core/field_textinput.js +0 -619
  645. package/core/flyout_button.js +0 -356
  646. package/core/grid.js +0 -226
  647. package/core/icon.js +0 -225
  648. package/core/input.js +0 -335
  649. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  650. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  651. package/core/interfaces/i_autohideable.js +0 -40
  652. package/core/interfaces/i_block_dragger.js +0 -66
  653. package/core/interfaces/i_bounded_element.js +0 -45
  654. package/core/interfaces/i_bubble.js +0 -95
  655. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  656. package/core/interfaces/i_connection_checker.js +0 -104
  657. package/core/interfaces/i_contextmenu.js +0 -32
  658. package/core/interfaces/i_copyable.js +0 -49
  659. package/core/interfaces/i_delete_area.js +0 -50
  660. package/core/interfaces/i_drag_target.js +0 -88
  661. package/core/interfaces/i_flyout.js +0 -201
  662. package/core/interfaces/i_keyboard_accessible.js +0 -38
  663. package/core/interfaces/i_metrics_manager.js +0 -154
  664. package/core/interfaces/i_positionable.js +0 -51
  665. package/core/interfaces/i_selectable.js +0 -51
  666. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  667. package/core/interfaces/i_serializer.js +0 -77
  668. package/core/interfaces/i_styleable.js +0 -39
  669. package/core/interfaces/i_toolbox.js +0 -142
  670. package/core/interfaces/i_toolbox_item.js +0 -85
  671. package/core/marker_manager.js +0 -213
  672. package/core/menuitem.js +0 -292
  673. package/core/names.js +0 -293
  674. package/core/registry.js +0 -384
  675. package/core/renderers/common/block_rendering.js +0 -170
  676. package/core/renderers/common/constants.js +0 -1250
  677. package/core/renderers/common/i_path_object.js +0 -162
  678. package/core/renderers/common/marker_svg.js +0 -721
  679. package/core/renderers/common/path_object.js +0 -283
  680. package/core/renderers/common/renderer.js +0 -305
  681. package/core/renderers/geras/constants.js +0 -73
  682. package/core/renderers/geras/geras.js +0 -36
  683. package/core/renderers/geras/measurables/inline_input.js +0 -58
  684. package/core/renderers/geras/measurables/statement_input.js +0 -57
  685. package/core/renderers/geras/renderer.js +0 -149
  686. package/core/renderers/measurables/base.js +0 -64
  687. package/core/renderers/measurables/bottom_row.js +0 -138
  688. package/core/renderers/measurables/connection.js +0 -56
  689. package/core/renderers/measurables/external_value_input.js +0 -70
  690. package/core/renderers/measurables/field.js +0 -71
  691. package/core/renderers/measurables/in_row_spacer.js +0 -47
  692. package/core/renderers/measurables/input_connection.js +0 -75
  693. package/core/renderers/measurables/next_connection.js +0 -50
  694. package/core/renderers/measurables/output_connection.js +0 -61
  695. package/core/renderers/measurables/previous_connection.js +0 -50
  696. package/core/renderers/measurables/round_corner.js +0 -52
  697. package/core/renderers/measurables/row.js +0 -247
  698. package/core/renderers/measurables/spacer_row.js +0 -69
  699. package/core/renderers/measurables/square_corner.js +0 -50
  700. package/core/renderers/measurables/top_row.js +0 -143
  701. package/core/renderers/measurables/types.js +0 -353
  702. package/core/renderers/minimalist/drawer.js +0 -42
  703. package/core/renderers/minimalist/info.js +0 -54
  704. package/core/renderers/minimalist/minimalist.js +0 -26
  705. package/core/renderers/minimalist/renderer.js +0 -80
  706. package/core/renderers/thrasos/renderer.js +0 -53
  707. package/core/renderers/thrasos/thrasos.js +0 -22
  708. package/core/renderers/zelos/marker_svg.js +0 -179
  709. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  710. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  711. package/core/renderers/zelos/path_object.js +0 -247
  712. package/core/renderers/zelos/renderer.js +0 -147
  713. package/core/renderers/zelos/zelos.js +0 -38
  714. package/core/serialization/exceptions.js +0 -144
  715. package/core/shortcut_registry.js +0 -366
  716. package/core/theme/themes.js +0 -23
  717. package/core/theme.js +0 -228
  718. package/core/theme_manager.js +0 -211
  719. package/core/toolbox/category.js +0 -751
  720. package/core/toolbox/collapsible_category.js +0 -311
  721. package/core/toolbox/separator.js +0 -133
  722. package/core/toolbox/toolbox_item.js +0 -173
  723. package/core/touch.js +0 -285
  724. package/core/utils/coordinate.js +0 -138
  725. package/core/utils/global.js +0 -41
  726. package/core/utils/keycodes.js +0 -172
  727. package/core/utils/metrics.js +0 -154
  728. package/core/utils/svg.js +0 -186
  729. package/core/utils/toolbox.js +0 -459
  730. package/core/utils/useragent.js +0 -197
  731. package/core/utils.js +0 -383
  732. package/core/variable_model.js +0 -96
  733. package/core/widgetdiv.js +0 -290
  734. package/core/workspace.js +0 -836
  735. package/core/workspace_comment.js +0 -400
  736. package/core/workspace_dragger.js +0 -115
@@ -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
+ }