blockly 8.0.4 → 8.0.5-beta.0

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