blockly 8.20220331.0-beta.0 → 9.0.0-beta.1

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 (735) hide show
  1. package/blockly.min.js +2000 -2269
  2. package/blockly_compressed.js +1495 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks.d.ts +10 -8
  5. package/blocks_compressed.js +189 -171
  6. package/blocks_compressed.js.map +1 -1
  7. package/closure/goog/base.d.ts +2 -0
  8. package/closure/goog/base_minimal.d.ts +19 -0
  9. package/closure/goog/goog.d.ts +26 -0
  10. package/core/any_aliases.d.ts +2 -0
  11. package/core/block.d.ts +871 -0
  12. package/core/block_animations.d.ts +38 -0
  13. package/core/block_drag_surface.d.ts +124 -0
  14. package/core/block_dragger.d.ts +158 -0
  15. package/core/block_svg.d.ts +656 -0
  16. package/core/blockly.d.ts +583 -0
  17. package/core/blockly_options.d.ts +71 -0
  18. package/core/blocks.d.ts +19 -0
  19. package/core/browser_events.d.ts +94 -0
  20. package/core/bubble.d.ts +309 -0
  21. package/core/bubble_dragger.d.ts +80 -0
  22. package/core/bump_objects.d.ts +38 -0
  23. package/core/clipboard.d.ts +46 -0
  24. package/core/comment.d.ts +123 -0
  25. package/core/common.d.ts +155 -0
  26. package/core/component_manager.d.ts +101 -0
  27. package/core/config.d.ts +24 -0
  28. package/core/connection.d.ts +262 -0
  29. package/core/connection_checker.d.ts +87 -0
  30. package/core/connection_db.d.ts +102 -0
  31. package/core/connection_type.d.ts +17 -0
  32. package/core/constants.d.ts +18 -0
  33. package/core/contextmenu.d.ts +90 -0
  34. package/core/contextmenu_items.d.ts +92 -0
  35. package/core/contextmenu_registry.d.ts +110 -0
  36. package/core/css.d.ts +27 -0
  37. package/core/delete_area.d.ts +51 -0
  38. package/core/dialog.d.ts +68 -0
  39. package/core/drag_target.d.ts +71 -0
  40. package/core/dropdowndiv.d.ts +187 -0
  41. package/core/events/events.d.ts +103 -0
  42. package/core/events/events_abstract.d.ts +58 -0
  43. package/core/events/events_block_base.d.ts +35 -0
  44. package/core/events/events_block_change.d.ts +62 -0
  45. package/core/events/events_block_create.d.ts +40 -0
  46. package/core/events/events_block_delete.d.ts +41 -0
  47. package/core/events/events_block_drag.d.ts +40 -0
  48. package/core/events/events_block_move.d.ts +58 -0
  49. package/core/events/events_bubble_open.d.ts +39 -0
  50. package/core/events/events_click.d.ts +40 -0
  51. package/core/events/events_comment_base.d.ts +44 -0
  52. package/core/events/events_comment_change.d.ts +49 -0
  53. package/core/events/events_comment_create.d.ts +40 -0
  54. package/core/events/events_comment_delete.d.ts +40 -0
  55. package/core/events/events_comment_move.d.ts +62 -0
  56. package/core/events/events_marker_move.d.ts +44 -0
  57. package/core/events/events_selected.d.ts +38 -0
  58. package/core/events/events_theme_change.d.ts +34 -0
  59. package/core/events/events_toolbox_item_select.d.ts +38 -0
  60. package/core/events/events_trashcan_open.d.ts +35 -0
  61. package/core/events/events_ui.d.ts +41 -0
  62. package/core/events/events_ui_base.d.ts +28 -0
  63. package/core/events/events_var_base.d.ts +35 -0
  64. package/core/events/events_var_create.d.ts +40 -0
  65. package/core/events/events_var_delete.d.ts +40 -0
  66. package/core/events/events_var_rename.d.ts +41 -0
  67. package/core/events/events_viewport.d.ts +43 -0
  68. package/core/events/utils.d.ts +315 -0
  69. package/core/events/workspace_events.d.ts +40 -0
  70. package/core/extensions.d.ts +117 -0
  71. package/core/field.d.ts +593 -0
  72. package/core/field_angle.d.ts +187 -0
  73. package/core/field_checkbox.d.ts +137 -0
  74. package/core/field_colour.d.ts +216 -0
  75. package/core/field_dropdown.d.ts +242 -0
  76. package/core/field_image.d.ts +145 -0
  77. package/core/field_label.d.ts +77 -0
  78. package/core/field_label_serializable.d.ts +45 -0
  79. package/core/field_multilineinput.d.ts +161 -0
  80. package/core/field_number.d.ts +172 -0
  81. package/core/field_registry.d.ts +51 -0
  82. package/core/field_textinput.d.ts +239 -0
  83. package/core/field_variable.d.ts +240 -0
  84. package/core/flyout_base.d.ts +505 -0
  85. package/core/flyout_button.d.ts +88 -0
  86. package/core/flyout_horizontal.d.ts +90 -0
  87. package/core/flyout_metrics_manager.d.ts +43 -0
  88. package/core/flyout_vertical.d.ts +91 -0
  89. package/core/generator.d.ts +224 -0
  90. package/core/gesture.d.ts +392 -0
  91. package/core/grid.d.ts +87 -0
  92. package/core/icon.d.ts +87 -0
  93. package/core/inject.d.ts +17 -0
  94. package/core/input.d.ts +143 -0
  95. package/core/input_types.d.ts +16 -0
  96. package/core/insertion_marker_manager.d.ts +230 -0
  97. package/core/interfaces/i_ast_node_location.d.ts +13 -0
  98. package/core/interfaces/i_ast_node_location_svg.d.ts +26 -0
  99. package/core/interfaces/i_ast_node_location_with_block.d.ts +21 -0
  100. package/core/interfaces/i_autohideable.d.ts +21 -0
  101. package/core/interfaces/i_block_dragger.d.ts +49 -0
  102. package/core/interfaces/i_bounded_element.d.ts +28 -0
  103. package/core/interfaces/i_bubble.d.ts +68 -0
  104. package/core/interfaces/i_collapsible_toolbox_item.d.ts +30 -0
  105. package/core/interfaces/i_component.d.ts +19 -0
  106. package/core/interfaces/i_connection_checker.d.ts +77 -0
  107. package/core/interfaces/i_contextmenu.d.ts +15 -0
  108. package/core/interfaces/i_copyable.d.ts +26 -0
  109. package/core/interfaces/i_deletable.d.ts +19 -0
  110. package/core/interfaces/i_delete_area.d.ts +28 -0
  111. package/core/interfaces/i_drag_target.d.ts +61 -0
  112. package/core/interfaces/i_draggable.d.ts +14 -0
  113. package/core/interfaces/i_flyout.d.ts +150 -0
  114. package/core/interfaces/i_keyboard_accessible.d.ts +21 -0
  115. package/core/interfaces/i_metrics_manager.d.ts +129 -0
  116. package/core/interfaces/i_movable.d.ts +19 -0
  117. package/core/interfaces/i_positionable.d.ts +31 -0
  118. package/core/interfaces/i_registrable.d.ts +13 -0
  119. package/core/interfaces/i_registrable_field.d.ts +19 -0
  120. package/core/interfaces/i_selectable.d.ts +20 -0
  121. package/core/interfaces/i_selectable_toolbox_item.d.ts +49 -0
  122. package/core/interfaces/i_serializer.d.ts +47 -0
  123. package/core/interfaces/i_styleable.d.ts +25 -0
  124. package/core/interfaces/i_toolbox.d.ts +96 -0
  125. package/core/interfaces/i_toolbox_item.d.ts +72 -0
  126. package/core/internal_constants.d.ts +46 -0
  127. package/core/keyboard_nav/ast_node.d.ts +266 -0
  128. package/core/keyboard_nav/basic_cursor.d.ts +99 -0
  129. package/core/keyboard_nav/cursor.d.ts +47 -0
  130. package/core/keyboard_nav/marker.d.ts +65 -0
  131. package/core/keyboard_nav/tab_navigate_cursor.d.ts +22 -0
  132. package/core/main.d.ts +12 -0
  133. package/core/marker_manager.d.ts +96 -0
  134. package/core/menu.d.ts +167 -0
  135. package/core/menuitem.d.ts +133 -0
  136. package/core/metrics_manager.d.ts +216 -0
  137. package/core/msg.d.ts +10 -0
  138. package/core/mutator.d.ts +140 -0
  139. package/core/names.d.ts +136 -0
  140. package/core/options.d.ts +143 -0
  141. package/core/positionable_helpers.d.ts +96 -0
  142. package/core/procedures.d.ts +125 -0
  143. package/core/registry.d.ts +148 -0
  144. package/core/rendered_connection.d.ts +212 -0
  145. package/core/renderers/common/block_rendering.d.ts +121 -0
  146. package/core/renderers/common/constants.d.ts +490 -0
  147. package/core/renderers/common/debug.d.ts +32 -0
  148. package/core/renderers/common/debugger.d.ts +131 -0
  149. package/core/renderers/common/drawer.d.ts +144 -0
  150. package/core/renderers/common/i_path_object.d.ts +132 -0
  151. package/core/renderers/common/info.d.ts +211 -0
  152. package/core/renderers/common/marker_svg.d.ts +249 -0
  153. package/core/renderers/common/path_object.d.ts +166 -0
  154. package/core/renderers/common/renderer.d.ts +178 -0
  155. package/core/renderers/geras/constants.d.ts +25 -0
  156. package/core/renderers/geras/drawer.d.ts +45 -0
  157. package/core/renderers/geras/geras.d.ts +12 -0
  158. package/core/renderers/geras/highlight_constants.d.ts +111 -0
  159. package/core/renderers/geras/highlighter.d.ts +109 -0
  160. package/core/renderers/geras/info.d.ts +48 -0
  161. package/core/renderers/geras/measurables/inline_input.d.ts +25 -0
  162. package/core/renderers/geras/measurables/statement_input.d.ts +25 -0
  163. package/core/renderers/geras/path_object.d.ts +51 -0
  164. package/core/renderers/geras/renderer.d.ts +79 -0
  165. package/core/renderers/measurables/base.d.ts +29 -0
  166. package/core/renderers/measurables/bottom_row.d.ts +67 -0
  167. package/core/renderers/measurables/connection.d.ts +27 -0
  168. package/core/renderers/measurables/external_value_input.d.ts +28 -0
  169. package/core/renderers/measurables/field.d.ts +31 -0
  170. package/core/renderers/measurables/hat.d.ts +22 -0
  171. package/core/renderers/measurables/icon.d.ts +28 -0
  172. package/core/renderers/measurables/in_row_spacer.d.ts +22 -0
  173. package/core/renderers/measurables/inline_input.d.ts +25 -0
  174. package/core/renderers/measurables/input_connection.d.ts +31 -0
  175. package/core/renderers/measurables/input_row.d.ts +33 -0
  176. package/core/renderers/measurables/jagged_edge.d.ts +21 -0
  177. package/core/renderers/measurables/next_connection.d.ts +24 -0
  178. package/core/renderers/measurables/output_connection.d.ts +27 -0
  179. package/core/renderers/measurables/previous_connection.d.ts +24 -0
  180. package/core/renderers/measurables/round_corner.d.ts +22 -0
  181. package/core/renderers/measurables/row.d.ts +163 -0
  182. package/core/renderers/measurables/spacer_row.d.ts +30 -0
  183. package/core/renderers/measurables/square_corner.d.ts +22 -0
  184. package/core/renderers/measurables/statement_input.d.ts +23 -0
  185. package/core/renderers/measurables/top_row.d.ts +60 -0
  186. package/core/renderers/measurables/types.d.ts +264 -0
  187. package/core/renderers/minimalist/constants.d.ts +16 -0
  188. package/core/renderers/minimalist/drawer.d.ts +23 -0
  189. package/core/renderers/minimalist/info.d.ts +33 -0
  190. package/core/renderers/minimalist/minimalist.d.ts +7 -0
  191. package/core/renderers/minimalist/renderer.d.ts +46 -0
  192. package/core/renderers/thrasos/info.d.ts +43 -0
  193. package/core/renderers/thrasos/renderer.d.ts +28 -0
  194. package/core/renderers/thrasos/thrasos.d.ts +5 -0
  195. package/core/renderers/zelos/constants.d.ts +194 -0
  196. package/core/renderers/zelos/drawer.d.ts +50 -0
  197. package/core/renderers/zelos/info.d.ts +93 -0
  198. package/core/renderers/zelos/marker_svg.d.ts +51 -0
  199. package/core/renderers/zelos/measurables/bottom_row.d.ts +29 -0
  200. package/core/renderers/zelos/measurables/inputs.d.ts +25 -0
  201. package/core/renderers/zelos/measurables/row_elements.d.ts +23 -0
  202. package/core/renderers/zelos/measurables/top_row.d.ts +31 -0
  203. package/core/renderers/zelos/path_object.d.ts +84 -0
  204. package/core/renderers/zelos/renderer.d.ts +82 -0
  205. package/core/renderers/zelos/zelos.d.ts +13 -0
  206. package/core/scrollbar.d.ts +309 -0
  207. package/core/scrollbar_pair.d.ts +119 -0
  208. package/core/serialization/blocks.d.ts +104 -0
  209. package/core/serialization/exceptions.d.ts +78 -0
  210. package/core/serialization/priorities.d.ts +18 -0
  211. package/core/serialization/registry.d.ts +23 -0
  212. package/core/serialization/variables.d.ts +16 -0
  213. package/core/serialization/workspaces.d.ts +31 -0
  214. package/core/shortcut_items.d.ts +71 -0
  215. package/core/shortcut_registry.d.ts +167 -0
  216. package/core/sprites.d.ts +17 -0
  217. package/core/theme/classic.d.ts +14 -0
  218. package/core/theme/themes.d.ts +9 -0
  219. package/core/theme/zelos.d.ts +13 -0
  220. package/core/theme.d.ts +153 -0
  221. package/core/theme_manager.d.ts +90 -0
  222. package/core/toolbox/category.d.ts +266 -0
  223. package/core/toolbox/collapsible_category.d.ts +98 -0
  224. package/core/toolbox/separator.d.ts +42 -0
  225. package/core/toolbox/toolbox.d.ts +400 -0
  226. package/core/toolbox/toolbox_item.d.ts +95 -0
  227. package/core/tooltip.d.ts +147 -0
  228. package/core/touch.d.ts +133 -0
  229. package/core/touch_gesture.d.ts +129 -0
  230. package/core/trashcan.d.ts +216 -0
  231. package/core/utils/aria.d.ts +71 -0
  232. package/core/utils/array.d.ts +16 -0
  233. package/core/utils/colour.d.ts +114 -0
  234. package/core/utils/coordinate.d.ts +82 -0
  235. package/core/utils/deprecation.d.ts +19 -0
  236. package/core/utils/dom.d.ts +185 -0
  237. package/core/utils/idgenerator.d.ts +35 -0
  238. package/core/utils/keycodes.d.ts +138 -0
  239. package/core/utils/math.d.ts +34 -0
  240. package/core/utils/metrics.d.ts +65 -0
  241. package/core/utils/object.d.ts +40 -0
  242. package/core/utils/parsing.d.ts +55 -0
  243. package/core/utils/rect.d.ts +40 -0
  244. package/core/utils/sentinel.d.ts +13 -0
  245. package/core/utils/size.d.ts +29 -0
  246. package/core/utils/string.d.ts +62 -0
  247. package/core/utils/style.d.ts +108 -0
  248. package/core/utils/svg.d.ts +71 -0
  249. package/core/utils/svg_math.d.ts +78 -0
  250. package/core/utils/svg_paths.d.ts +111 -0
  251. package/core/utils/toolbox.d.ts +214 -0
  252. package/core/utils/useragent.d.ts +22 -0
  253. package/core/utils/xml.d.ts +60 -0
  254. package/core/utils.d.ts +239 -0
  255. package/core/variable_map.d.ts +158 -0
  256. package/core/variable_model.d.ts +43 -0
  257. package/core/variables.d.ts +196 -0
  258. package/core/variables_dynamic.d.ts +58 -0
  259. package/core/warning.d.ts +55 -0
  260. package/core/widgetdiv.d.ts +78 -0
  261. package/core/workspace.d.ts +436 -0
  262. package/core/workspace_audio.d.ts +53 -0
  263. package/core/workspace_comment.d.ts +192 -0
  264. package/core/workspace_comment_svg.d.ts +372 -0
  265. package/core/workspace_drag_surface_svg.d.ts +74 -0
  266. package/core/workspace_dragger.d.ts +54 -0
  267. package/core/workspace_svg.d.ts +1032 -0
  268. package/core/xml.d.ts +132 -0
  269. package/core/zoom_controls.d.ts +140 -0
  270. package/core.d.ts +1 -9
  271. package/core.js +1 -2
  272. package/dart.d.ts +1 -9
  273. package/dart_compressed.js +387 -99
  274. package/dart_compressed.js.map +1 -1
  275. package/index.d.ts +4 -16
  276. package/javascript.d.ts +1 -9
  277. package/javascript_compressed.js +314 -104
  278. package/javascript_compressed.js.map +1 -1
  279. package/lua.d.ts +1 -9
  280. package/lua_compressed.js +399 -81
  281. package/lua_compressed.js.map +1 -1
  282. package/msg/ab.js +10 -6
  283. package/msg/ace.js +10 -6
  284. package/msg/af.js +10 -6
  285. package/msg/am.js +10 -6
  286. package/msg/ar.js +10 -6
  287. package/msg/ast.js +10 -6
  288. package/msg/az.js +12 -8
  289. package/msg/ba.js +10 -6
  290. package/msg/bcc.js +10 -6
  291. package/msg/be-tarask.js +10 -6
  292. package/msg/be.js +14 -10
  293. package/msg/bg.js +10 -6
  294. package/msg/bn.js +10 -6
  295. package/msg/br.js +10 -6
  296. package/msg/bs.js +10 -6
  297. package/msg/ca.js +10 -6
  298. package/msg/cdo.js +10 -6
  299. package/msg/cs.js +25 -21
  300. package/msg/da.js +10 -6
  301. package/msg/de.js +11 -7
  302. package/msg/diq.js +11 -7
  303. package/msg/dty.js +10 -6
  304. package/msg/ee.js +10 -6
  305. package/msg/el.js +10 -6
  306. package/msg/en-gb.js +10 -6
  307. package/msg/en.js +10 -6
  308. package/msg/eo.js +11 -7
  309. package/msg/es.js +11 -7
  310. package/msg/et.js +10 -6
  311. package/msg/eu.js +10 -6
  312. package/msg/fa.js +11 -7
  313. package/msg/fi.js +10 -6
  314. package/msg/fo.js +10 -6
  315. package/msg/fr.js +14 -10
  316. package/msg/frr.js +10 -6
  317. package/msg/gl.js +10 -6
  318. package/msg/gn.js +10 -6
  319. package/msg/gor.js +10 -6
  320. package/msg/ha.js +10 -6
  321. package/msg/hak.js +10 -6
  322. package/msg/he.js +11 -7
  323. package/msg/hi.js +10 -6
  324. package/msg/hr.js +12 -8
  325. package/msg/hrx.js +10 -6
  326. package/msg/hu.js +10 -6
  327. package/msg/hy.js +12 -8
  328. package/msg/ia.js +10 -6
  329. package/msg/id.js +22 -18
  330. package/msg/ig.js +10 -6
  331. package/msg/inh.js +24 -20
  332. package/msg/is.js +10 -6
  333. package/msg/it.js +10 -6
  334. package/msg/ja.js +17 -13
  335. package/msg/ka.js +10 -6
  336. package/msg/kab.js +10 -6
  337. package/msg/kbd-cyrl.js +10 -6
  338. package/msg/km.js +10 -6
  339. package/msg/kn.js +10 -6
  340. package/msg/ko.js +10 -6
  341. package/msg/ksh.js +10 -6
  342. package/msg/ku-latn.js +10 -6
  343. package/msg/ky.js +10 -6
  344. package/msg/la.js +10 -6
  345. package/msg/lb.js +10 -6
  346. package/msg/lki.js +10 -6
  347. package/msg/lo.js +10 -6
  348. package/msg/lrc.js +10 -6
  349. package/msg/lt.js +10 -6
  350. package/msg/lv.js +39 -35
  351. package/msg/mg.js +10 -6
  352. package/msg/mk.js +10 -6
  353. package/msg/ml.js +10 -6
  354. package/msg/mnw.js +10 -6
  355. package/msg/ms.js +10 -6
  356. package/msg/my.js +10 -6
  357. package/msg/mzn.js +10 -6
  358. package/msg/nb.js +10 -6
  359. package/msg/ne.js +10 -6
  360. package/msg/nl.js +10 -6
  361. package/msg/oc.js +10 -6
  362. package/msg/olo.js +10 -6
  363. package/msg/pa.js +13 -9
  364. package/msg/pl.js +10 -6
  365. package/msg/pms.js +10 -6
  366. package/msg/ps.js +10 -6
  367. package/msg/pt-br.js +10 -6
  368. package/msg/pt.js +10 -6
  369. package/msg/ro.js +10 -6
  370. package/msg/ru.js +10 -6
  371. package/msg/sc.js +10 -6
  372. package/msg/sco.js +10 -6
  373. package/msg/sd.js +10 -6
  374. package/msg/shn.js +10 -6
  375. package/msg/si.js +10 -6
  376. package/msg/sk.js +10 -6
  377. package/msg/skr-arab.js +10 -6
  378. package/msg/sl.js +10 -6
  379. package/msg/smn.js +440 -0
  380. package/msg/sq.js +10 -6
  381. package/msg/sr-latn.js +10 -6
  382. package/msg/sr.js +10 -6
  383. package/msg/sv.js +10 -6
  384. package/msg/sw.js +10 -6
  385. package/msg/ta.js +10 -6
  386. package/msg/tcy.js +10 -6
  387. package/msg/te.js +11 -7
  388. package/msg/th.js +10 -6
  389. package/msg/ti.js +10 -6
  390. package/msg/tl.js +10 -6
  391. package/msg/tlh.js +10 -6
  392. package/msg/tr.js +10 -6
  393. package/msg/ug-arab.js +10 -6
  394. package/msg/uk.js +10 -6
  395. package/msg/ur.js +10 -6
  396. package/msg/uz.js +10 -6
  397. package/msg/vi.js +10 -6
  398. package/msg/xmf.js +10 -6
  399. package/msg/yo.js +10 -6
  400. package/msg/yue.js +11 -7
  401. package/msg/zgh.js +10 -6
  402. package/msg/zh-hans.js +13 -9
  403. package/msg/zh-hant.js +13 -9
  404. package/package.json +8 -5
  405. package/php.d.ts +1 -9
  406. package/php_compressed.js +322 -93
  407. package/php_compressed.js.map +1 -1
  408. package/python.d.ts +1 -9
  409. package/python_compressed.js +237 -90
  410. package/python_compressed.js.map +1 -1
  411. package/blockly.d.ts +0 -25607
  412. package/blocks/blocks.js +0 -47
  413. package/blocks/colour.js +0 -119
  414. package/blocks/lists.js +0 -924
  415. package/blocks/logic.js +0 -657
  416. package/blocks/loops.js +0 -373
  417. package/blocks/math.js +0 -592
  418. package/blocks/procedures.js +0 -1194
  419. package/blocks/text.js +0 -992
  420. package/blocks/variables.js +0 -174
  421. package/blocks/variables_dynamic.js +0 -190
  422. package/core/block.js +0 -2212
  423. package/core/block_animations.js +0 -206
  424. package/core/block_drag_surface.js +0 -269
  425. package/core/block_dragger.js +0 -484
  426. package/core/block_svg.js +0 -1894
  427. package/core/blockly.js +0 -890
  428. package/core/blockly_options.js +0 -28
  429. package/core/blocks.js +0 -33
  430. package/core/browser_events.js +0 -284
  431. package/core/bubble.js +0 -985
  432. package/core/bubble_dragger.js +0 -298
  433. package/core/bump_objects.js +0 -180
  434. package/core/clipboard.js +0 -80
  435. package/core/comment.js +0 -448
  436. package/core/common.js +0 -265
  437. package/core/component_manager.js +0 -263
  438. package/core/config.js +0 -87
  439. package/core/connection.js +0 -742
  440. package/core/connection_checker.js +0 -312
  441. package/core/connection_db.js +0 -314
  442. package/core/connection_type.js +0 -36
  443. package/core/constants.js +0 -33
  444. package/core/contextmenu.js +0 -398
  445. package/core/contextmenu_items.js +0 -651
  446. package/core/contextmenu_registry.js +0 -178
  447. package/core/css.js +0 -568
  448. package/core/delete_area.js +0 -87
  449. package/core/dialog.js +0 -107
  450. package/core/drag_target.js +0 -98
  451. package/core/dropdowndiv.js +0 -754
  452. package/core/events/events.js +0 -147
  453. package/core/events/events_abstract.js +0 -133
  454. package/core/events/events_block_base.js +0 -70
  455. package/core/events/events_block_change.js +0 -179
  456. package/core/events/events_block_create.js +0 -127
  457. package/core/events/events_block_delete.js +0 -139
  458. package/core/events/events_block_drag.js +0 -89
  459. package/core/events/events_block_move.js +0 -202
  460. package/core/events/events_bubble_open.js +0 -90
  461. package/core/events/events_click.js +0 -87
  462. package/core/events/events_comment_base.js +0 -121
  463. package/core/events/events_comment_change.js +0 -105
  464. package/core/events/events_comment_create.js +0 -84
  465. package/core/events/events_comment_delete.js +0 -81
  466. package/core/events/events_comment_move.js +0 -157
  467. package/core/events/events_marker_move.js +0 -110
  468. package/core/events/events_selected.js +0 -83
  469. package/core/events/events_theme_change.js +0 -72
  470. package/core/events/events_toolbox_item_select.js +0 -84
  471. package/core/events/events_trashcan_open.js +0 -73
  472. package/core/events/events_ui.js +0 -88
  473. package/core/events/events_ui_base.js +0 -63
  474. package/core/events/events_var_base.js +0 -70
  475. package/core/events/events_var_create.js +0 -89
  476. package/core/events/events_var_delete.js +0 -89
  477. package/core/events/events_var_rename.js +0 -90
  478. package/core/events/events_viewport.js +0 -107
  479. package/core/events/utils.js +0 -600
  480. package/core/events/workspace_events.js +0 -93
  481. package/core/extensions.js +0 -523
  482. package/core/field.js +0 -1282
  483. package/core/field_angle.js +0 -591
  484. package/core/field_checkbox.js +0 -255
  485. package/core/field_colour.js +0 -717
  486. package/core/field_dropdown.js +0 -795
  487. package/core/field_image.js +0 -304
  488. package/core/field_label.js +0 -149
  489. package/core/field_label_serializable.js +0 -80
  490. package/core/field_multilineinput.js +0 -463
  491. package/core/field_number.js +0 -340
  492. package/core/field_registry.js +0 -80
  493. package/core/field_textinput.js +0 -619
  494. package/core/field_variable.js +0 -558
  495. package/core/flyout_base.js +0 -1254
  496. package/core/flyout_button.js +0 -356
  497. package/core/flyout_horizontal.js +0 -391
  498. package/core/flyout_metrics_manager.js +0 -106
  499. package/core/flyout_vertical.js +0 -395
  500. package/core/generator.js +0 -564
  501. package/core/gesture.js +0 -1026
  502. package/core/grid.js +0 -226
  503. package/core/icon.js +0 -225
  504. package/core/inject.js +0 -389
  505. package/core/input.js +0 -332
  506. package/core/input_types.js +0 -36
  507. package/core/insertion_marker_manager.js +0 -790
  508. package/core/interfaces/i_ast_node_location.js +0 -26
  509. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  510. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  511. package/core/interfaces/i_autohideable.js +0 -40
  512. package/core/interfaces/i_block_dragger.js +0 -66
  513. package/core/interfaces/i_bounded_element.js +0 -45
  514. package/core/interfaces/i_bubble.js +0 -95
  515. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  516. package/core/interfaces/i_component.js +0 -37
  517. package/core/interfaces/i_connection_checker.js +0 -104
  518. package/core/interfaces/i_contextmenu.js +0 -32
  519. package/core/interfaces/i_copyable.js +0 -49
  520. package/core/interfaces/i_deletable.js +0 -33
  521. package/core/interfaces/i_delete_area.js +0 -50
  522. package/core/interfaces/i_drag_target.js +0 -88
  523. package/core/interfaces/i_draggable.js +0 -31
  524. package/core/interfaces/i_flyout.js +0 -201
  525. package/core/interfaces/i_keyboard_accessible.js +0 -38
  526. package/core/interfaces/i_metrics_manager.js +0 -154
  527. package/core/interfaces/i_movable.js +0 -33
  528. package/core/interfaces/i_positionable.js +0 -51
  529. package/core/interfaces/i_registrable.js +0 -29
  530. package/core/interfaces/i_registrable_field.js +0 -39
  531. package/core/interfaces/i_selectable.js +0 -51
  532. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  533. package/core/interfaces/i_serializer.js +0 -77
  534. package/core/interfaces/i_styleable.js +0 -39
  535. package/core/interfaces/i_toolbox.js +0 -142
  536. package/core/interfaces/i_toolbox_item.js +0 -85
  537. package/core/internal_constants.js +0 -72
  538. package/core/keyboard_nav/ast_node.js +0 -741
  539. package/core/keyboard_nav/basic_cursor.js +0 -225
  540. package/core/keyboard_nav/cursor.js +0 -144
  541. package/core/keyboard_nav/marker.js +0 -134
  542. package/core/keyboard_nav/tab_navigate_cursor.js +0 -52
  543. package/core/marker_manager.js +0 -213
  544. package/core/menu.js +0 -482
  545. package/core/menuitem.js +0 -292
  546. package/core/metrics_manager.js +0 -495
  547. package/core/msg.js +0 -24
  548. package/core/mutator.js +0 -575
  549. package/core/names.js +0 -289
  550. package/core/options.js +0 -391
  551. package/core/positionable_helpers.js +0 -188
  552. package/core/procedures.js +0 -452
  553. package/core/registry.js +0 -384
  554. package/core/rendered_connection.js +0 -588
  555. package/core/renderers/common/block_rendering.js +0 -170
  556. package/core/renderers/common/constants.js +0 -1250
  557. package/core/renderers/common/debug.js +0 -67
  558. package/core/renderers/common/debugger.js +0 -457
  559. package/core/renderers/common/drawer.js +0 -475
  560. package/core/renderers/common/i_path_object.js +0 -162
  561. package/core/renderers/common/info.js +0 -775
  562. package/core/renderers/common/marker_svg.js +0 -721
  563. package/core/renderers/common/path_object.js +0 -283
  564. package/core/renderers/common/renderer.js +0 -305
  565. package/core/renderers/geras/constants.js +0 -73
  566. package/core/renderers/geras/drawer.js +0 -220
  567. package/core/renderers/geras/geras.js +0 -36
  568. package/core/renderers/geras/highlight_constants.js +0 -299
  569. package/core/renderers/geras/highlighter.js +0 -311
  570. package/core/renderers/geras/info.js +0 -488
  571. package/core/renderers/geras/measurables/inline_input.js +0 -58
  572. package/core/renderers/geras/measurables/statement_input.js +0 -57
  573. package/core/renderers/geras/path_object.js +0 -166
  574. package/core/renderers/geras/renderer.js +0 -149
  575. package/core/renderers/measurables/base.js +0 -64
  576. package/core/renderers/measurables/bottom_row.js +0 -138
  577. package/core/renderers/measurables/connection.js +0 -56
  578. package/core/renderers/measurables/external_value_input.js +0 -70
  579. package/core/renderers/measurables/field.js +0 -71
  580. package/core/renderers/measurables/hat.js +0 -50
  581. package/core/renderers/measurables/icon.js +0 -58
  582. package/core/renderers/measurables/in_row_spacer.js +0 -47
  583. package/core/renderers/measurables/inline_input.js +0 -80
  584. package/core/renderers/measurables/input_connection.js +0 -75
  585. package/core/renderers/measurables/input_row.js +0 -89
  586. package/core/renderers/measurables/jagged_edge.js +0 -46
  587. package/core/renderers/measurables/next_connection.js +0 -50
  588. package/core/renderers/measurables/output_connection.js +0 -61
  589. package/core/renderers/measurables/previous_connection.js +0 -50
  590. package/core/renderers/measurables/round_corner.js +0 -52
  591. package/core/renderers/measurables/row.js +0 -247
  592. package/core/renderers/measurables/spacer_row.js +0 -69
  593. package/core/renderers/measurables/square_corner.js +0 -50
  594. package/core/renderers/measurables/statement_input.js +0 -59
  595. package/core/renderers/measurables/top_row.js +0 -143
  596. package/core/renderers/measurables/types.js +0 -353
  597. package/core/renderers/minimalist/constants.js +0 -37
  598. package/core/renderers/minimalist/drawer.js +0 -42
  599. package/core/renderers/minimalist/info.js +0 -54
  600. package/core/renderers/minimalist/minimalist.js +0 -26
  601. package/core/renderers/minimalist/renderer.js +0 -80
  602. package/core/renderers/thrasos/info.js +0 -339
  603. package/core/renderers/thrasos/renderer.js +0 -53
  604. package/core/renderers/thrasos/thrasos.js +0 -22
  605. package/core/renderers/zelos/constants.js +0 -1005
  606. package/core/renderers/zelos/drawer.js +0 -250
  607. package/core/renderers/zelos/info.js +0 -624
  608. package/core/renderers/zelos/marker_svg.js +0 -179
  609. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  610. package/core/renderers/zelos/measurables/inputs.js +0 -57
  611. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  612. package/core/renderers/zelos/measurables/top_row.js +0 -71
  613. package/core/renderers/zelos/path_object.js +0 -247
  614. package/core/renderers/zelos/renderer.js +0 -147
  615. package/core/renderers/zelos/zelos.js +0 -38
  616. package/core/scrollbar.js +0 -891
  617. package/core/scrollbar_pair.js +0 -329
  618. package/core/serialization/blocks.js +0 -699
  619. package/core/serialization/exceptions.js +0 -144
  620. package/core/serialization/priorities.js +0 -38
  621. package/core/serialization/registry.js +0 -45
  622. package/core/serialization/variables.js +0 -98
  623. package/core/serialization/workspaces.js +0 -103
  624. package/core/shortcut_items.js +0 -302
  625. package/core/shortcut_registry.js +0 -366
  626. package/core/sprites.js +0 -31
  627. package/core/theme/classic.js +0 -56
  628. package/core/theme/themes.js +0 -23
  629. package/core/theme/zelos.js +0 -94
  630. package/core/theme.js +0 -228
  631. package/core/theme_manager.js +0 -211
  632. package/core/toolbox/category.js +0 -751
  633. package/core/toolbox/collapsible_category.js +0 -311
  634. package/core/toolbox/separator.js +0 -133
  635. package/core/toolbox/toolbox.js +0 -1160
  636. package/core/toolbox/toolbox_item.js +0 -173
  637. package/core/tooltip.js +0 -541
  638. package/core/touch.js +0 -285
  639. package/core/touch_gesture.js +0 -333
  640. package/core/trashcan.js +0 -757
  641. package/core/utils/aria.js +0 -174
  642. package/core/utils/array.js +0 -34
  643. package/core/utils/colour.js +0 -288
  644. package/core/utils/coordinate.js +0 -138
  645. package/core/utils/deprecation.js +0 -41
  646. package/core/utils/dom.js +0 -430
  647. package/core/utils/global.js +0 -41
  648. package/core/utils/idgenerator.js +0 -83
  649. package/core/utils/keycodes.js +0 -172
  650. package/core/utils/math.js +0 -63
  651. package/core/utils/metrics.js +0 -154
  652. package/core/utils/object.js +0 -91
  653. package/core/utils/parsing.js +0 -261
  654. package/core/utils/rect.js +0 -75
  655. package/core/utils/sentinel.js +0 -25
  656. package/core/utils/size.js +0 -65
  657. package/core/utils/string.js +0 -305
  658. package/core/utils/style.js +0 -296
  659. package/core/utils/svg.js +0 -186
  660. package/core/utils/svg_math.js +0 -268
  661. package/core/utils/svg_paths.js +0 -149
  662. package/core/utils/toolbox.js +0 -459
  663. package/core/utils/useragent.js +0 -197
  664. package/core/utils/xml.js +0 -107
  665. package/core/utils.js +0 -383
  666. package/core/variable_map.js +0 -410
  667. package/core/variable_model.js +0 -96
  668. package/core/variables.js +0 -578
  669. package/core/variables_dynamic.js +0 -129
  670. package/core/warning.js +0 -175
  671. package/core/widgetdiv.js +0 -290
  672. package/core/workspace.js +0 -836
  673. package/core/workspace_audio.js +0 -169
  674. package/core/workspace_comment.js +0 -400
  675. package/core/workspace_comment_svg.js +0 -1224
  676. package/core/workspace_drag_surface_svg.js +0 -194
  677. package/core/workspace_dragger.js +0 -115
  678. package/core/workspace_svg.js +0 -2735
  679. package/core/xml.js +0 -1043
  680. package/core/zoom_controls.js +0 -507
  681. package/generators/dart/all.js +0 -25
  682. package/generators/dart/colour.js +0 -105
  683. package/generators/dart/lists.js +0 -431
  684. package/generators/dart/logic.js +0 -123
  685. package/generators/dart/loops.js +0 -161
  686. package/generators/dart/math.js +0 -446
  687. package/generators/dart/procedures.js +0 -105
  688. package/generators/dart/text.js +0 -338
  689. package/generators/dart/variables.js +0 -32
  690. package/generators/dart/variables_dynamic.js +0 -21
  691. package/generators/dart.js +0 -304
  692. package/generators/javascript/all.js +0 -25
  693. package/generators/javascript/colour.js +0 -85
  694. package/generators/javascript/lists.js +0 -405
  695. package/generators/javascript/logic.js +0 -127
  696. package/generators/javascript/loops.js +0 -180
  697. package/generators/javascript/math.js +0 -401
  698. package/generators/javascript/procedures.js +0 -110
  699. package/generators/javascript/text.js +0 -371
  700. package/generators/javascript/variables.js +0 -32
  701. package/generators/javascript/variables_dynamic.js +0 -21
  702. package/generators/javascript.js +0 -324
  703. package/generators/lua/all.js +0 -25
  704. package/generators/lua/colour.js +0 -71
  705. package/generators/lua/lists.js +0 -348
  706. package/generators/lua/logic.js +0 -112
  707. package/generators/lua/loops.js +0 -168
  708. package/generators/lua/math.js +0 -406
  709. package/generators/lua/procedures.js +0 -106
  710. package/generators/lua/text.js +0 -327
  711. package/generators/lua/variables.js +0 -31
  712. package/generators/lua/variables_dynamic.js +0 -21
  713. package/generators/lua.js +0 -207
  714. package/generators/php/all.js +0 -25
  715. package/generators/php/colour.js +0 -81
  716. package/generators/php/lists.js +0 -482
  717. package/generators/php/logic.js +0 -119
  718. package/generators/php/loops.js +0 -161
  719. package/generators/php/math.js +0 -349
  720. package/generators/php/procedures.js +0 -125
  721. package/generators/php/text.js +0 -255
  722. package/generators/php/variables.js +0 -32
  723. package/generators/php/variables_dynamic.js +0 -21
  724. package/generators/php.js +0 -304
  725. package/generators/python/all.js +0 -25
  726. package/generators/python/colour.js +0 -67
  727. package/generators/python/lists.js +0 -346
  728. package/generators/python/logic.js +0 -120
  729. package/generators/python/loops.js +0 -209
  730. package/generators/python/math.js +0 -373
  731. package/generators/python/procedures.js +0 -129
  732. package/generators/python/text.js +0 -291
  733. package/generators/python/variables.js +0 -32
  734. package/generators/python/variables_dynamic.js +0 -21
  735. package/generators/python.js +0 -334
@@ -0,0 +1,1032 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2014 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import './events/events_block_create.js';
7
+ import './events/events_theme_change.js';
8
+ import './events/events_viewport.js';
9
+ import type { Block } from './block.js';
10
+ import type { BlockDragSurfaceSvg } from './block_drag_surface.js';
11
+ import type { BlockSvg } from './block_svg.js';
12
+ import * as browserEvents from './browser_events.js';
13
+ import { ComponentManager } from './component_manager.js';
14
+ import type { FlyoutButton } from './flyout_button.js';
15
+ import { Grid } from './grid.js';
16
+ import type { IASTNodeLocationSvg } from './interfaces/i_ast_node_location_svg.js';
17
+ import type { IBoundedElement } from './interfaces/i_bounded_element.js';
18
+ import type { ICopyable } from './interfaces/i_copyable.js';
19
+ import type { IDragTarget } from './interfaces/i_drag_target.js';
20
+ import type { IFlyout } from './interfaces/i_flyout.js';
21
+ import type { IMetricsManager } from './interfaces/i_metrics_manager.js';
22
+ import type { IToolbox } from './interfaces/i_toolbox.js';
23
+ import type { Cursor } from './keyboard_nav/cursor.js';
24
+ import type { Marker } from './keyboard_nav/marker.js';
25
+ import { MarkerManager } from './marker_manager.js';
26
+ import { Options } from './options.js';
27
+ import type { Renderer } from './renderers/common/renderer.js';
28
+ import type { ScrollbarPair } from './scrollbar_pair.js';
29
+ import type { Theme } from './theme.js';
30
+ import { ThemeManager } from './theme_manager.js';
31
+ import { TouchGesture } from './touch_gesture.js';
32
+ import type { Trashcan } from './trashcan.js';
33
+ import { Coordinate } from './utils/coordinate.js';
34
+ import type { Metrics } from './utils/metrics.js';
35
+ import { Rect } from './utils/rect.js';
36
+ import { Size } from './utils/size.js';
37
+ import { Svg } from './utils/svg.js';
38
+ import * as toolbox from './utils/toolbox.js';
39
+ import type { VariableModel } from './variable_model.js';
40
+ import { Workspace } from './workspace.js';
41
+ import { WorkspaceAudio } from './workspace_audio.js';
42
+ import { WorkspaceComment } from './workspace_comment.js';
43
+ import type { WorkspaceDragSurfaceSvg } from './workspace_drag_surface_svg.js';
44
+ import { ZoomControls } from './zoom_controls.js';
45
+ import { ContextMenuOption } from './contextmenu_registry.js';
46
+ /**
47
+ * Class for a workspace. This is an onscreen area with optional trashcan,
48
+ * scrollbars, bubbles, and dragging.
49
+ *
50
+ * @alias Blockly.WorkspaceSvg
51
+ */
52
+ export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg {
53
+ /**
54
+ * A wrapper function called when a resize event occurs.
55
+ * You can pass the result to `eventHandling.unbind`.
56
+ */
57
+ private resizeHandlerWrapper_;
58
+ /**
59
+ * The render status of an SVG workspace.
60
+ * Returns `false` for headless workspaces and true for instances of
61
+ * `WorkspaceSvg`.
62
+ */
63
+ rendered: boolean;
64
+ /**
65
+ * Whether the workspace is visible. False if the workspace has been hidden
66
+ * by calling `setVisible(false)`.
67
+ */
68
+ private isVisible_;
69
+ /**
70
+ * Whether this workspace has resizes enabled.
71
+ * Disable during batch operations for a performance improvement.
72
+ */
73
+ private resizesEnabled_;
74
+ /**
75
+ * Current horizontal scrolling offset in pixel units, relative to the
76
+ * workspace origin.
77
+ *
78
+ * It is useful to think about a view, and a canvas moving beneath that
79
+ * view. As the canvas moves right, this value becomes more positive, and
80
+ * the view is now "seeing" the left side of the canvas. As the canvas moves
81
+ * left, this value becomes more negative, and the view is now "seeing" the
82
+ * right side of the canvas.
83
+ *
84
+ * The confusing thing about this value is that it does not, and must not
85
+ * include the absoluteLeft offset. This is because it is used to calculate
86
+ * the viewLeft value.
87
+ *
88
+ * The viewLeft is relative to the workspace origin (although in pixel
89
+ * units). The workspace origin is the top-left corner of the workspace (at
90
+ * least when it is enabled). It is shifted from the top-left of the
91
+ * blocklyDiv so as not to be beneath the toolbox.
92
+ *
93
+ * When the workspace is enabled the viewLeft and workspace origin are at
94
+ * the same X location. As the canvas slides towards the right beneath the
95
+ * view this value (scrollX) becomes more positive, and the viewLeft becomes
96
+ * more negative relative to the workspace origin (imagine the workspace
97
+ * origin as a dot on the canvas sliding to the right as the canvas moves).
98
+ *
99
+ * So if the scrollX were to include the absoluteLeft this would in a way
100
+ * "unshift" the workspace origin. This means that the viewLeft would be
101
+ * representing the left edge of the blocklyDiv, rather than the left edge
102
+ * of the workspace.
103
+ */
104
+ scrollX: number;
105
+ /**
106
+ * Current vertical scrolling offset in pixel units, relative to the
107
+ * workspace origin.
108
+ *
109
+ * It is useful to think about a view, and a canvas moving beneath that
110
+ * view. As the canvas moves down, this value becomes more positive, and the
111
+ * view is now "seeing" the upper part of the canvas. As the canvas moves
112
+ * up, this value becomes more negative, and the view is "seeing" the lower
113
+ * part of the canvas.
114
+ *
115
+ * This confusing thing about this value is that it does not, and must not
116
+ * include the absoluteTop offset. This is because it is used to calculate
117
+ * the viewTop value.
118
+ *
119
+ * The viewTop is relative to the workspace origin (although in pixel
120
+ * units). The workspace origin is the top-left corner of the workspace (at
121
+ * least when it is enabled). It is shifted from the top-left of the
122
+ * blocklyDiv so as not to be beneath the toolbox.
123
+ *
124
+ * When the workspace is enabled the viewTop and workspace origin are at the
125
+ * same Y location. As the canvas slides towards the bottom this value
126
+ * (scrollY) becomes more positive, and the viewTop becomes more negative
127
+ * relative to the workspace origin (image in the workspace origin as a dot
128
+ * on the canvas sliding downwards as the canvas moves).
129
+ *
130
+ * So if the scrollY were to include the absoluteTop this would in a way
131
+ * "unshift" the workspace origin. This means that the viewTop would be
132
+ * representing the top edge of the blocklyDiv, rather than the top edge of
133
+ * the workspace.
134
+ */
135
+ scrollY: number;
136
+ /** Horizontal scroll value when scrolling started in pixel units. */
137
+ startScrollX: number;
138
+ /** Vertical scroll value when scrolling started in pixel units. */
139
+ startScrollY: number;
140
+ /** Distance from mouse to object being dragged. */
141
+ private dragDeltaXY_;
142
+ /** Current scale. */
143
+ scale: number;
144
+ /** Cached scale value. Used to detect changes in viewport. */
145
+ private oldScale_;
146
+ /** Cached viewport top value. Used to detect changes in viewport. */
147
+ private oldTop_;
148
+ /** Cached viewport left value. Used to detect changes in viewport. */
149
+ private oldLeft_;
150
+ /** The workspace's trashcan (if any). */
151
+ trashcan: Trashcan | null;
152
+ /** This workspace's scrollbars, if they exist. */
153
+ scrollbar: ScrollbarPair | null;
154
+ /**
155
+ * Fixed flyout providing blocks which may be dragged into this workspace.
156
+ */
157
+ private flyout_;
158
+ /**
159
+ * Category-based toolbox providing blocks which may be dragged into this
160
+ * workspace.
161
+ */
162
+ private toolbox_;
163
+ /**
164
+ * The current gesture in progress on this workspace, if any.
165
+ *
166
+ * @internal
167
+ */
168
+ currentGesture_: TouchGesture | null;
169
+ /** This workspace's surface for dragging blocks, if it exists. */
170
+ private readonly blockDragSurface_;
171
+ /** This workspace's drag surface, if it exists. */
172
+ private readonly workspaceDragSurface_;
173
+ /**
174
+ * Whether to move workspace to the drag surface when it is dragged.
175
+ * True if it should move, false if it should be translated directly.
176
+ */
177
+ private readonly useWorkspaceDragSurface_;
178
+ /**
179
+ * Whether the drag surface is actively in use. When true, calls to
180
+ * translate will translate the drag surface instead of the translating the
181
+ * workspace directly.
182
+ * This is set to true in setupDragSurface and to false in resetDragSurface.
183
+ */
184
+ private isDragSurfaceActive_;
185
+ /**
186
+ * The first parent div with 'injectionDiv' in the name, or null if not set.
187
+ * Access this with getInjectionDiv.
188
+ */
189
+ private injectionDiv_;
190
+ /**
191
+ * Last known position of the page scroll.
192
+ * This is used to determine whether we have recalculated screen coordinate
193
+ * stuff since the page scrolled.
194
+ */
195
+ private lastRecordedPageScroll_;
196
+ /**
197
+ * Developers may define this function to add custom menu options to the
198
+ * workspace's context menu or edit the workspace-created set of menu
199
+ * options.
200
+ *
201
+ * @param options List of menu options to add to.
202
+ * @param e The right-click event that triggered the context menu.
203
+ */
204
+ configureContextMenu: ((menuOptions: ContextMenuOption[], e: Event) => void) | null;
205
+ /**
206
+ * In a flyout, the target workspace where blocks should be placed after a
207
+ * drag. Otherwise null.
208
+ *
209
+ * @internal
210
+ */
211
+ targetWorkspace: WorkspaceSvg | null;
212
+ /** Inverted screen CTM, for use in mouseToSvg. */
213
+ private inverseScreenCTM_;
214
+ /** Inverted screen CTM is dirty, recalculate it. */
215
+ private inverseScreenCTMDirty_;
216
+ private metricsManager_;
217
+ /** @internal */
218
+ getMetrics: () => Metrics;
219
+ /** @internal */
220
+ setMetrics: (p1: {
221
+ x?: number;
222
+ y?: number;
223
+ }) => void;
224
+ private readonly componentManager_;
225
+ /**
226
+ * List of currently highlighted blocks. Block highlighting is often used
227
+ * to visually mark blocks currently being executed.
228
+ */
229
+ private readonly highlightedBlocks_;
230
+ private audioManager_;
231
+ private grid_;
232
+ private markerManager_;
233
+ /**
234
+ * Map from function names to callbacks, for deciding what to do when a
235
+ * custom toolbox category is opened.
236
+ */
237
+ private toolboxCategoryCallbacks;
238
+ /**
239
+ * Map from function names to callbacks, for deciding what to do when a
240
+ * button is clicked.
241
+ */
242
+ private flyoutButtonCallbacks;
243
+ protected themeManager_: ThemeManager;
244
+ private readonly renderer_;
245
+ /** Cached parent SVG. */
246
+ private cachedParentSvg_;
247
+ /** True if keyboard accessibility mode is on, false otherwise. */
248
+ keyboardAccessibilityMode: boolean;
249
+ /** The list of top-level bounded elements on the workspace. */
250
+ private topBoundedElements_;
251
+ /** The recorded drag targets. */
252
+ private dragTargetAreas_;
253
+ private readonly cachedParentSvgSize_;
254
+ svgGroup_: SVGElement;
255
+ svgBackground_: SVGElement;
256
+ svgBlockCanvas_: SVGElement;
257
+ svgBubbleCanvas_: SVGElement;
258
+ zoomControls_: ZoomControls | null;
259
+ /**
260
+ * @param options Dictionary of options.
261
+ * @param opt_blockDragSurface Drag surface for blocks.
262
+ * @param opt_wsDragSurface Drag surface for the workspace.
263
+ */
264
+ constructor(options: Options, opt_blockDragSurface?: BlockDragSurfaceSvg, opt_wsDragSurface?: WorkspaceDragSurfaceSvg);
265
+ /**
266
+ * Get the marker manager for this workspace.
267
+ *
268
+ * @returns The marker manager.
269
+ */
270
+ getMarkerManager(): MarkerManager;
271
+ /**
272
+ * Gets the metrics manager for this workspace.
273
+ *
274
+ * @returns The metrics manager.
275
+ */
276
+ getMetricsManager(): IMetricsManager;
277
+ /**
278
+ * Sets the metrics manager for the workspace.
279
+ *
280
+ * @param metricsManager The metrics manager.
281
+ * @internal
282
+ */
283
+ setMetricsManager(metricsManager: IMetricsManager): void;
284
+ /**
285
+ * Gets the component manager for this workspace.
286
+ *
287
+ * @returns The component manager.
288
+ */
289
+ getComponentManager(): ComponentManager;
290
+ /**
291
+ * Add the cursor SVG to this workspaces SVG group.
292
+ *
293
+ * @param cursorSvg The SVG root of the cursor to be added to the workspace
294
+ * SVG group.
295
+ * @internal
296
+ */
297
+ setCursorSvg(cursorSvg: SVGElement): void;
298
+ /**
299
+ * Add the marker SVG to this workspaces SVG group.
300
+ *
301
+ * @param markerSvg The SVG root of the marker to be added to the workspace
302
+ * SVG group.
303
+ * @internal
304
+ */
305
+ setMarkerSvg(markerSvg: SVGElement): void;
306
+ /**
307
+ * Get the marker with the given ID.
308
+ *
309
+ * @param id The ID of the marker.
310
+ * @returns The marker with the given ID or null if no marker with the given
311
+ * ID exists.
312
+ * @internal
313
+ */
314
+ getMarker(id: string): Marker | null;
315
+ /**
316
+ * The cursor for this workspace.
317
+ *
318
+ * @returns The cursor for the workspace.
319
+ */
320
+ getCursor(): Cursor | null;
321
+ /**
322
+ * Get the block renderer attached to this workspace.
323
+ *
324
+ * @returns The renderer attached to this workspace.
325
+ */
326
+ getRenderer(): Renderer;
327
+ /**
328
+ * Get the theme manager for this workspace.
329
+ *
330
+ * @returns The theme manager for this workspace.
331
+ * @internal
332
+ */
333
+ getThemeManager(): ThemeManager;
334
+ /**
335
+ * Get the workspace theme object.
336
+ *
337
+ * @returns The workspace theme object.
338
+ */
339
+ getTheme(): Theme;
340
+ /**
341
+ * Set the workspace theme object.
342
+ * If no theme is passed, default to the `Classic` theme.
343
+ *
344
+ * @param theme The workspace theme object.
345
+ */
346
+ setTheme(theme: Theme): void;
347
+ /**
348
+ * Refresh all blocks on the workspace after a theme update.
349
+ */
350
+ refreshTheme(): void;
351
+ /**
352
+ * Updates all the blocks with new style.
353
+ *
354
+ * @param blocks List of blocks to update the style on.
355
+ */
356
+ private updateBlockStyles_;
357
+ /**
358
+ * Getter for the inverted screen CTM.
359
+ *
360
+ * @returns The matrix to use in mouseToSvg
361
+ */
362
+ getInverseScreenCTM(): SVGMatrix | null;
363
+ /** Mark the inverse screen CTM as dirty. */
364
+ updateInverseScreenCTM(): void;
365
+ /**
366
+ * Getter for isVisible
367
+ *
368
+ * @returns Whether the workspace is visible.
369
+ * False if the workspace has been hidden by calling `setVisible(false)`.
370
+ */
371
+ isVisible(): boolean;
372
+ /**
373
+ * Return the absolute coordinates of the top-left corner of this element,
374
+ * scales that after canvas SVG element, if it's a descendant.
375
+ * The origin (0,0) is the top-left corner of the Blockly SVG.
376
+ *
377
+ * @param element SVG element to find the coordinates of.
378
+ * @returns Object with .x and .y properties.
379
+ * @internal
380
+ */
381
+ getSvgXY(element: SVGElement): Coordinate;
382
+ /**
383
+ * Gets the size of the workspace's parent SVG element.
384
+ *
385
+ * @returns The cached width and height of the workspace's parent SVG element.
386
+ * @internal
387
+ */
388
+ getCachedParentSvgSize(): Size;
389
+ /**
390
+ * Return the position of the workspace origin relative to the injection div
391
+ * origin in pixels.
392
+ * The workspace origin is where a block would render at position (0, 0).
393
+ * It is not the upper left corner of the workspace SVG.
394
+ *
395
+ * @returns Offset in pixels.
396
+ * @internal
397
+ */
398
+ getOriginOffsetInPixels(): Coordinate;
399
+ /**
400
+ * Return the injection div that is a parent of this workspace.
401
+ * Walks the DOM the first time it's called, then returns a cached value.
402
+ * Note: We assume this is only called after the workspace has been injected
403
+ * into the DOM.
404
+ *
405
+ * @returns The first parent div with 'injectionDiv' in the name.
406
+ * @internal
407
+ */
408
+ getInjectionDiv(): Element;
409
+ /**
410
+ * Get the SVG block canvas for the workspace.
411
+ *
412
+ * @returns The SVG group for the workspace.
413
+ * @internal
414
+ */
415
+ getBlockCanvas(): SVGElement | null;
416
+ /**
417
+ * Save resize handler data so we can delete it later in dispose.
418
+ *
419
+ * @param handler Data that can be passed to eventHandling.unbind.
420
+ */
421
+ setResizeHandlerWrapper(handler: browserEvents.Data): void;
422
+ /**
423
+ * Create the workspace DOM elements.
424
+ *
425
+ * @param opt_backgroundClass Either 'blocklyMainBackground' or
426
+ * 'blocklyMutatorBackground'.
427
+ * @returns The workspace's SVG group.
428
+ */
429
+ createDom(opt_backgroundClass?: string): Element;
430
+ /**
431
+ * Dispose of this workspace.
432
+ * Unlink from all DOM elements to prevent memory leaks.
433
+ *
434
+ * @suppress {checkTypes}
435
+ */
436
+ dispose(): void;
437
+ /**
438
+ * Add a trashcan.
439
+ *
440
+ * @internal
441
+ */
442
+ addTrashcan(): void;
443
+ /**
444
+ * @param _workspace
445
+ * @internal
446
+ */
447
+ static newTrashcan(_workspace: WorkspaceSvg): Trashcan;
448
+ /**
449
+ * Add zoom controls.
450
+ *
451
+ * @internal
452
+ */
453
+ addZoomControls(): void;
454
+ /**
455
+ * Add a flyout element in an element with the given tag name.
456
+ *
457
+ * @param tagName What type of tag the flyout belongs in.
458
+ * @returns The element containing the flyout DOM.
459
+ * @internal
460
+ */
461
+ addFlyout(tagName: string | Svg<SVGSVGElement> | Svg<SVGGElement>): Element;
462
+ /**
463
+ * Getter for the flyout associated with this workspace. This flyout may be
464
+ * owned by either the toolbox or the workspace, depending on toolbox
465
+ * configuration. It will be null if there is no flyout.
466
+ *
467
+ * @param opt_own Whether to only return the workspace's own flyout.
468
+ * @returns The flyout on this workspace.
469
+ * @internal
470
+ */
471
+ getFlyout(opt_own?: boolean): IFlyout | null;
472
+ /**
473
+ * Getter for the toolbox associated with this workspace, if one exists.
474
+ *
475
+ * @returns The toolbox on this workspace.
476
+ * @internal
477
+ */
478
+ getToolbox(): IToolbox | null;
479
+ /**
480
+ * Update items that use screen coordinate calculations
481
+ * because something has changed (e.g. scroll position, window size).
482
+ */
483
+ private updateScreenCalculations_;
484
+ /**
485
+ * If enabled, resize the parts of the workspace that change when the
486
+ * workspace contents (e.g. block positions) change. This will also scroll
487
+ * the workspace contents if needed.
488
+ *
489
+ * @internal
490
+ */
491
+ resizeContents(): void;
492
+ /**
493
+ * Resize and reposition all of the workspace chrome (toolbox,
494
+ * trash, scrollbars etc.)
495
+ * This should be called when something changes that
496
+ * requires recalculating dimensions and positions of the
497
+ * trash, zoom, toolbox, etc. (e.g. window resize).
498
+ */
499
+ resize(): void;
500
+ /**
501
+ * Resizes and repositions workspace chrome if the page has a new
502
+ * scroll position.
503
+ *
504
+ * @internal
505
+ */
506
+ updateScreenCalculationsIfScrolled(): void;
507
+ /**
508
+ * Get the SVG element that forms the drawing surface.
509
+ *
510
+ * @returns SVG group element.
511
+ */
512
+ getCanvas(): SVGGElement;
513
+ /**
514
+ * Caches the width and height of the workspace's parent SVG element for use
515
+ * with getSvgMetrics.
516
+ *
517
+ * @param width The width of the parent SVG element.
518
+ * @param height The height of the parent SVG element
519
+ * @internal
520
+ */
521
+ setCachedParentSvgSize(width: number | null, height: number | null): void;
522
+ /**
523
+ * Get the SVG element that forms the bubble surface.
524
+ *
525
+ * @returns SVG group element.
526
+ */
527
+ getBubbleCanvas(): SVGGElement;
528
+ /**
529
+ * Get the SVG element that contains this workspace.
530
+ * Note: We assume this is only called after the workspace has been injected
531
+ * into the DOM.
532
+ *
533
+ * @returns SVG element.
534
+ */
535
+ getParentSvg(): SVGSVGElement;
536
+ /**
537
+ * Fires a viewport event if events are enabled and there is a change in
538
+ * viewport values.
539
+ *
540
+ * @internal
541
+ */
542
+ maybeFireViewportChangeEvent(): void;
543
+ /**
544
+ * Translate this workspace to new coordinates.
545
+ *
546
+ * @param x Horizontal translation, in pixel units relative to the top left of
547
+ * the Blockly div.
548
+ * @param y Vertical translation, in pixel units relative to the top left of
549
+ * the Blockly div.
550
+ */
551
+ translate(x: number, y: number): void;
552
+ /**
553
+ * Called at the end of a workspace drag to take the contents
554
+ * out of the drag surface and put them back into the workspace SVG.
555
+ * Does nothing if the workspace drag surface is not enabled.
556
+ *
557
+ * @internal
558
+ */
559
+ resetDragSurface(): void;
560
+ /**
561
+ * Called at the beginning of a workspace drag to move contents of
562
+ * the workspace to the drag surface.
563
+ * Does nothing if the drag surface is not enabled.
564
+ *
565
+ * @internal
566
+ */
567
+ setupDragSurface(): void;
568
+ /**
569
+ * Gets the drag surface blocks are moved to when a drag is started.
570
+ *
571
+ * @returns This workspace's block drag surface, if one is in use.
572
+ * @internal
573
+ */
574
+ getBlockDragSurface(): BlockDragSurfaceSvg | null;
575
+ /**
576
+ * Returns the horizontal offset of the workspace.
577
+ * Intended for LTR/RTL compatibility in XML.
578
+ *
579
+ * @returns Width.
580
+ */
581
+ getWidth(): number;
582
+ /**
583
+ * Toggles the visibility of the workspace.
584
+ * Currently only intended for main workspace.
585
+ *
586
+ * @param isVisible True if workspace should be visible.
587
+ */
588
+ setVisible(isVisible: boolean): void;
589
+ /** Render all blocks in workspace. */
590
+ render(): void;
591
+ /**
592
+ * Highlight or unhighlight a block in the workspace. Block highlighting is
593
+ * often used to visually mark blocks currently being executed.
594
+ *
595
+ * @param id ID of block to highlight/unhighlight, or null for no block (used
596
+ * to unhighlight all blocks).
597
+ * @param opt_state If undefined, highlight specified block and automatically
598
+ * unhighlight all others. If true or false, manually
599
+ * highlight/unhighlight the specified block.
600
+ */
601
+ highlightBlock(id: string | null, opt_state?: boolean): void;
602
+ /**
603
+ * Pastes the provided block or workspace comment onto the workspace.
604
+ * Does not check whether there is remaining capacity for the object, that
605
+ * should be done before calling this method.
606
+ *
607
+ * @param state The representation of the thing to paste.
608
+ * @returns The pasted thing, or null if the paste was not successful.
609
+ */
610
+ paste(state: any | Element | DocumentFragment): ICopyable | null;
611
+ /**
612
+ * Paste the provided block onto the workspace.
613
+ *
614
+ * @param xmlBlock XML block element.
615
+ * @param jsonBlock JSON block representation.
616
+ * @returns The pasted block.
617
+ */
618
+ private pasteBlock_;
619
+ /**
620
+ * Paste the provided comment onto the workspace.
621
+ *
622
+ * @param xmlComment XML workspace comment element.
623
+ * @returns The pasted workspace comment.
624
+ * @suppress {checkTypes} Suppress checks while workspace comments are not
625
+ * bundled in.
626
+ */
627
+ private pasteWorkspaceComment_;
628
+ /**
629
+ * Refresh the toolbox unless there's a drag in progress.
630
+ *
631
+ * @internal
632
+ */
633
+ refreshToolboxSelection(): void;
634
+ /**
635
+ * Rename a variable by updating its name in the variable map. Update the
636
+ * flyout to show the renamed variable immediately.
637
+ *
638
+ * @param id ID of the variable to rename.
639
+ * @param newName New variable name.
640
+ */
641
+ renameVariableById(id: string, newName: string): void;
642
+ /**
643
+ * Delete a variable by the passed in ID. Update the flyout to show
644
+ * immediately that the variable is deleted.
645
+ *
646
+ * @param id ID of variable to delete.
647
+ */
648
+ deleteVariableById(id: string): void;
649
+ /**
650
+ * Create a new variable with the given name. Update the flyout to show the
651
+ * new variable immediately.
652
+ *
653
+ * @param name The new variable's name.
654
+ * @param opt_type The type of the variable like 'int' or 'string'.
655
+ * Does not need to be unique. Field_variable can filter variables based
656
+ * on their type. This will default to '' which is a specific type.
657
+ * @param opt_id The unique ID of the variable. This will default to a UUID.
658
+ * @returns The newly created variable.
659
+ */
660
+ createVariable(name: string, opt_type?: string | null, opt_id?: string | null): VariableModel;
661
+ /**
662
+ * Make a list of all the delete areas for this workspace.
663
+ *
664
+ * @deprecated Use workspace.recordDragTargets. (2021 June)
665
+ */
666
+ recordDeleteAreas(): void;
667
+ /** Make a list of all the delete areas for this workspace. */
668
+ recordDragTargets(): void;
669
+ /**
670
+ * Obtain a newly created block.
671
+ *
672
+ * @param prototypeName Name of the language object containing type-specific
673
+ * functions for this block.
674
+ * @param opt_id Optional ID. Use this ID if provided, otherwise create a new
675
+ * ID.
676
+ * @returns The created block.
677
+ */
678
+ newBlock(prototypeName: string, opt_id?: string): BlockSvg;
679
+ /**
680
+ * Returns the drag target the mouse event is over.
681
+ *
682
+ * @param e Mouse move event.
683
+ * @returns Null if not over a drag target, or the drag target the event is
684
+ * over.
685
+ */
686
+ getDragTarget(e: Event): IDragTarget | null;
687
+ /**
688
+ * Handle a mouse-down on SVG drawing surface.
689
+ *
690
+ * @param e Mouse down event.
691
+ */
692
+ private onMouseDown_;
693
+ /**
694
+ * Start tracking a drag of an object on this workspace.
695
+ *
696
+ * @param e Mouse down event.
697
+ * @param xy Starting location of object.
698
+ */
699
+ startDrag(e: MouseEvent, xy: Coordinate): void;
700
+ /**
701
+ * Track a drag of an object on this workspace.
702
+ *
703
+ * @param e Mouse move event.
704
+ * @returns New location of object.
705
+ */
706
+ moveDrag(e: MouseEvent): Coordinate;
707
+ /**
708
+ * Is the user currently dragging a block or scrolling the flyout/workspace?
709
+ *
710
+ * @returns True if currently dragging or scrolling.
711
+ */
712
+ isDragging(): boolean;
713
+ /**
714
+ * Is this workspace draggable?
715
+ *
716
+ * @returns True if this workspace may be dragged.
717
+ */
718
+ isDraggable(): boolean;
719
+ /**
720
+ * Is this workspace movable?
721
+ *
722
+ * This means the user can reposition the X Y coordinates of the workspace
723
+ * through input. This can be through scrollbars, scroll wheel, dragging, or
724
+ * through zooming with the scroll wheel or pinch (since the zoom is centered
725
+ * on the mouse position). This does not include zooming with the zoom
726
+ * controls since the X Y coordinates are decided programmatically.
727
+ *
728
+ * @returns True if the workspace is movable, false otherwise.
729
+ */
730
+ isMovable(): boolean;
731
+ /**
732
+ * Is this workspace movable horizontally?
733
+ *
734
+ * @returns True if the workspace is movable horizontally, false otherwise.
735
+ */
736
+ isMovableHorizontally(): boolean;
737
+ /**
738
+ * Is this workspace movable vertically?
739
+ *
740
+ * @returns True if the workspace is movable vertically, false otherwise.
741
+ */
742
+ isMovableVertically(): boolean;
743
+ /**
744
+ * Handle a mouse-wheel on SVG drawing surface.
745
+ *
746
+ * @param e Mouse wheel event.
747
+ */
748
+ private onMouseWheel_;
749
+ /**
750
+ * Calculate the bounding box for the blocks on the workspace.
751
+ * Coordinate system: workspace coordinates.
752
+ *
753
+ * @returns Contains the position and size of the bounding box containing the
754
+ * blocks on the workspace.
755
+ */
756
+ getBlocksBoundingBox(): Rect;
757
+ /** Clean up the workspace by ordering all the blocks in a column. */
758
+ cleanUp(): void;
759
+ /**
760
+ * Show the context menu for the workspace.
761
+ *
762
+ * @param e Mouse event.
763
+ * @internal
764
+ */
765
+ showContextMenu(e: Event): void;
766
+ /**
767
+ * Modify the block tree on the existing toolbox.
768
+ *
769
+ * @param toolboxDef DOM tree of toolbox contents, string of toolbox contents,
770
+ * or JSON representing toolbox definition.
771
+ */
772
+ updateToolbox(toolboxDef: toolbox.ToolboxDefinition | null): void;
773
+ /** Mark this workspace as the currently focused main workspace. */
774
+ markFocused(): void;
775
+ /** Set the workspace to have focus in the browser. */
776
+ private setBrowserFocus;
777
+ /**
778
+ * Zooms the workspace in or out relative to/centered on the given (x, y)
779
+ * coordinate.
780
+ *
781
+ * @param x X coordinate of center, in pixel units relative to the top-left
782
+ * corner of the parentSVG.
783
+ * @param y Y coordinate of center, in pixel units relative to the top-left
784
+ * corner of the parentSVG.
785
+ * @param amount Amount of zooming. The formula for the new scale is newScale
786
+ * = currentScale * (scaleSpeed^amount). scaleSpeed is set in the
787
+ * workspace options. Negative amount values zoom out, and positive amount
788
+ * values zoom in.
789
+ */
790
+ zoom(x: number, y: number, amount: number): void;
791
+ /**
792
+ * Zooming the blocks centered in the center of view with zooming in or out.
793
+ *
794
+ * @param type Type of zooming (-1 zooming out and 1 zooming in).
795
+ */
796
+ zoomCenter(type: number): void;
797
+ /** Zoom the blocks to fit in the workspace if possible. */
798
+ zoomToFit(): void;
799
+ /**
800
+ * Add a transition class to the block and bubble canvas, to animate any
801
+ * transform changes.
802
+ *
803
+ * @internal
804
+ */
805
+ beginCanvasTransition(): void;
806
+ /**
807
+ * Remove transition class from the block and bubble canvas.
808
+ *
809
+ * @internal
810
+ */
811
+ endCanvasTransition(): void;
812
+ /** Center the workspace. */
813
+ scrollCenter(): void;
814
+ /**
815
+ * Scroll the workspace to center on the given block. If the block has other
816
+ * blocks stacked below it, the workspace will be centered on the stack.
817
+ *
818
+ * @param id ID of block center on.
819
+ */
820
+ centerOnBlock(id: string | null): void;
821
+ /**
822
+ * Set the workspace's zoom factor.
823
+ *
824
+ * @param newScale Zoom factor. Units: (pixels / workspaceUnit).
825
+ */
826
+ setScale(newScale: number): void;
827
+ /**
828
+ * Get the workspace's zoom factor. If the workspace has a parent, we call
829
+ * into the parent to get the workspace scale.
830
+ *
831
+ * @returns The workspace zoom factor. Units: (pixels / workspaceUnit).
832
+ */
833
+ getScale(): number;
834
+ /**
835
+ * Scroll the workspace to a specified offset (in pixels), keeping in the
836
+ * workspace bounds. See comment on workspaceSvg.scrollX for more detail on
837
+ * the meaning of these values.
838
+ *
839
+ * @param x Target X to scroll to.
840
+ * @param y Target Y to scroll to.
841
+ * @internal
842
+ */
843
+ scroll(x: number, y: number): void;
844
+ /**
845
+ * Find the block on this workspace with the specified ID.
846
+ *
847
+ * @param id ID of block to find.
848
+ * @returns The sought after block, or null if not found.
849
+ */
850
+ getBlockById(id: string): BlockSvg | null;
851
+ /**
852
+ * Find all blocks in workspace. Blocks are optionally sorted
853
+ * by position; top to bottom (with slight LTR or RTL bias).
854
+ *
855
+ * @param ordered Sort the list if true.
856
+ * @returns Array of blocks.
857
+ */
858
+ getAllBlocks(ordered: boolean): BlockSvg[];
859
+ /**
860
+ * Finds the top-level blocks and returns them. Blocks are optionally sorted
861
+ * by position; top to bottom (with slight LTR or RTL bias).
862
+ *
863
+ * @param ordered Sort the list if true.
864
+ * @returns The top-level block objects.
865
+ */
866
+ getTopBlocks(ordered: boolean): BlockSvg[];
867
+ /**
868
+ * Adds a block to the list of top blocks.
869
+ *
870
+ * @param block Block to add.
871
+ */
872
+ addTopBlock(block: Block): void;
873
+ /**
874
+ * Removes a block from the list of top blocks.
875
+ *
876
+ * @param block Block to remove.
877
+ */
878
+ removeTopBlock(block: Block): void;
879
+ /**
880
+ * Adds a comment to the list of top comments.
881
+ *
882
+ * @param comment comment to add.
883
+ */
884
+ addTopComment(comment: WorkspaceComment): void;
885
+ /**
886
+ * Removes a comment from the list of top comments.
887
+ *
888
+ * @param comment comment to remove.
889
+ */
890
+ removeTopComment(comment: WorkspaceComment): void;
891
+ /**
892
+ * Adds a bounded element to the list of top bounded elements.
893
+ *
894
+ * @param element Bounded element to add.
895
+ */
896
+ addTopBoundedElement(element: IBoundedElement): void;
897
+ /**
898
+ * Removes a bounded element from the list of top bounded elements.
899
+ *
900
+ * @param element Bounded element to remove.
901
+ */
902
+ removeTopBoundedElement(element: IBoundedElement): void;
903
+ /**
904
+ * Finds the top-level bounded elements and returns them.
905
+ *
906
+ * @returns The top-level bounded elements.
907
+ */
908
+ getTopBoundedElements(): IBoundedElement[];
909
+ /**
910
+ * Update whether this workspace has resizes enabled.
911
+ * If enabled, workspace will resize when appropriate.
912
+ * If disabled, workspace will not resize until re-enabled.
913
+ * Use to avoid resizing during a batch operation, for performance.
914
+ *
915
+ * @param enabled Whether resizes should be enabled.
916
+ */
917
+ setResizesEnabled(enabled: boolean): void;
918
+ /**
919
+ * Dispose of all blocks in workspace, with an optimization to prevent
920
+ * resizes.
921
+ */
922
+ clear(): void;
923
+ /**
924
+ * Register a callback function associated with a given key, for clicks on
925
+ * buttons and labels in the flyout.
926
+ * For instance, a button specified by the XML
927
+ * <button text="create variable" callbackKey="CREATE_VARIABLE"></button>
928
+ * should be matched by a call to
929
+ * registerButtonCallback("CREATE_VARIABLE", yourCallbackFunction).
930
+ *
931
+ * @param key The name to use to look up this function.
932
+ * @param func The function to call when the given button is clicked.
933
+ */
934
+ registerButtonCallback(key: string, func: (p1: FlyoutButton) => void): void;
935
+ /**
936
+ * Get the callback function associated with a given key, for clicks on
937
+ * buttons and labels in the flyout.
938
+ *
939
+ * @param key The name to use to look up the function.
940
+ * @returns The function corresponding to the given key for this workspace;
941
+ * null if no callback is registered.
942
+ */
943
+ getButtonCallback(key: string): ((p1: FlyoutButton) => void) | null;
944
+ /**
945
+ * Remove a callback for a click on a button in the flyout.
946
+ *
947
+ * @param key The name associated with the callback function.
948
+ */
949
+ removeButtonCallback(key: string): void;
950
+ /**
951
+ * Register a callback function associated with a given key, for populating
952
+ * custom toolbox categories in this workspace. See the variable and
953
+ * procedure categories as an example.
954
+ *
955
+ * @param key The name to use to look up this function.
956
+ * @param func The function to call when the given toolbox category is opened.
957
+ */
958
+ registerToolboxCategoryCallback(key: string, func: (p1: WorkspaceSvg) => toolbox.FlyoutDefinition): void;
959
+ /**
960
+ * Get the callback function associated with a given key, for populating
961
+ * custom toolbox categories in this workspace.
962
+ *
963
+ * @param key The name to use to look up the function.
964
+ * @returns The function corresponding to the given key for this workspace, or
965
+ * null if no function is registered.
966
+ */
967
+ getToolboxCategoryCallback(key: string): ((p1: WorkspaceSvg) => toolbox.FlyoutDefinition) | null;
968
+ /**
969
+ * Remove a callback for a click on a custom category's name in the toolbox.
970
+ *
971
+ * @param key The name associated with the callback function.
972
+ */
973
+ removeToolboxCategoryCallback(key: string): void;
974
+ /**
975
+ * Look up the gesture that is tracking this touch stream on this workspace.
976
+ * May create a new gesture.
977
+ *
978
+ * @param e Mouse event or touch event.
979
+ * @returns The gesture that is tracking this touch stream, or null if no
980
+ * valid gesture exists.
981
+ * @internal
982
+ */
983
+ getGesture(e: Event): TouchGesture | null;
984
+ /**
985
+ * Clear the reference to the current gesture.
986
+ *
987
+ * @internal
988
+ */
989
+ clearGesture(): void;
990
+ /**
991
+ * Cancel the current gesture, if one exists.
992
+ *
993
+ * @internal
994
+ */
995
+ cancelCurrentGesture(): void;
996
+ /**
997
+ * Get the audio manager for this workspace.
998
+ *
999
+ * @returns The audio manager for this workspace.
1000
+ */
1001
+ getAudioManager(): WorkspaceAudio;
1002
+ /**
1003
+ * Get the grid object for this workspace, or null if there is none.
1004
+ *
1005
+ * @returns The grid object for this workspace.
1006
+ * @internal
1007
+ */
1008
+ getGrid(): Grid | null;
1009
+ /**
1010
+ * Close tooltips, context menus, dropdown selections, etc.
1011
+ *
1012
+ * @param opt_onlyClosePopups Whether only popups should be closed.
1013
+ */
1014
+ hideChaff(opt_onlyClosePopups?: boolean): void;
1015
+ /**
1016
+ * Sets the X/Y translations of a top level workspace.
1017
+ *
1018
+ * @param xyRatio Contains an x and/or y property which is a float between 0
1019
+ * and 1 specifying the degree of scrolling.
1020
+ */
1021
+ private static setTopLevelWorkspaceMetrics_;
1022
+ }
1023
+ /**
1024
+ * Size the workspace when the contents change. This also updates
1025
+ * scrollbars accordingly.
1026
+ *
1027
+ * @param workspace The workspace to resize.
1028
+ * @alias Blockly.WorkspaceSvg.resizeSvgContents
1029
+ * @internal
1030
+ */
1031
+ export declare function resizeSvgContents(workspace: WorkspaceSvg): void;
1032
+ //# sourceMappingURL=workspace_svg.d.ts.map