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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (857) hide show
  1. package/blockly.min.js +2004 -2269
  2. package/blockly_compressed.js +1499 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks/blocks.js +3 -2
  5. package/blocks/colour.js +3 -1
  6. package/blocks/lists.js +94 -22
  7. package/blocks/logic.js +14 -6
  8. package/blocks/loops.js +5 -3
  9. package/blocks/math.js +3 -1
  10. package/blocks/procedures.js +7 -6
  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 +10 -3
  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 -720
  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} +31 -44
  93. package/core/events/events_block_delete.d.ts +36 -0
  94. package/core/events/{events_block_delete.js → events_block_delete.ts} +35 -48
  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.js → input.ts} +96 -119
  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} +234 -227
  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 -4
  542. package/core.js +1 -2
  543. package/dart.d.ts +1 -4
  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 +3 -11
  602. package/javascript.d.ts +1 -4
  603. package/javascript_compressed.js +314 -104
  604. package/javascript_compressed.js.map +1 -1
  605. package/lua.d.ts +1 -4
  606. package/lua_compressed.js +399 -81
  607. package/lua_compressed.js.map +1 -1
  608. package/msg/ab.js +10 -6
  609. package/msg/ace.js +10 -6
  610. package/msg/af.js +10 -6
  611. package/msg/am.js +10 -6
  612. package/msg/ar.js +10 -6
  613. package/msg/ast.js +10 -6
  614. package/msg/az.js +12 -8
  615. package/msg/ba.js +10 -6
  616. package/msg/bcc.js +10 -6
  617. package/msg/be-tarask.js +10 -6
  618. package/msg/be.js +14 -10
  619. package/msg/bg.js +10 -6
  620. package/msg/bn.js +10 -6
  621. package/msg/br.js +10 -6
  622. package/msg/bs.js +10 -6
  623. package/msg/ca.js +10 -6
  624. package/msg/cdo.js +10 -6
  625. package/msg/cs.js +25 -21
  626. package/msg/da.js +10 -6
  627. package/msg/de.js +11 -7
  628. package/msg/diq.js +11 -7
  629. package/msg/dty.js +10 -6
  630. package/msg/ee.js +10 -6
  631. package/msg/el.js +10 -6
  632. package/msg/en-gb.js +10 -6
  633. package/msg/en.js +10 -6
  634. package/msg/eo.js +11 -7
  635. package/msg/es.js +11 -7
  636. package/msg/et.js +10 -6
  637. package/msg/eu.js +10 -6
  638. package/msg/fa.js +11 -7
  639. package/msg/fi.js +10 -6
  640. package/msg/fo.js +10 -6
  641. package/msg/fr.js +14 -10
  642. package/msg/frr.js +10 -6
  643. package/msg/gl.js +10 -6
  644. package/msg/gn.js +10 -6
  645. package/msg/gor.js +10 -6
  646. package/msg/ha.js +10 -6
  647. package/msg/hak.js +10 -6
  648. package/msg/he.js +11 -7
  649. package/msg/hi.js +10 -6
  650. package/msg/hr.js +12 -8
  651. package/msg/hrx.js +10 -6
  652. package/msg/hu.js +10 -6
  653. package/msg/hy.js +12 -8
  654. package/msg/ia.js +10 -6
  655. package/msg/id.js +22 -18
  656. package/msg/ig.js +10 -6
  657. package/msg/inh.js +24 -20
  658. package/msg/is.js +10 -6
  659. package/msg/it.js +10 -6
  660. package/msg/ja.js +17 -13
  661. package/msg/ka.js +10 -6
  662. package/msg/kab.js +10 -6
  663. package/msg/kbd-cyrl.js +10 -6
  664. package/msg/km.js +10 -6
  665. package/msg/kn.js +10 -6
  666. package/msg/ko.js +10 -6
  667. package/msg/ksh.js +10 -6
  668. package/msg/ku-latn.js +10 -6
  669. package/msg/ky.js +10 -6
  670. package/msg/la.js +10 -6
  671. package/msg/lb.js +10 -6
  672. package/msg/lki.js +10 -6
  673. package/msg/lo.js +10 -6
  674. package/msg/lrc.js +10 -6
  675. package/msg/lt.js +10 -6
  676. package/msg/lv.js +39 -35
  677. package/msg/mg.js +10 -6
  678. package/msg/mk.js +10 -6
  679. package/msg/ml.js +10 -6
  680. package/msg/mnw.js +10 -6
  681. package/msg/ms.js +10 -6
  682. package/msg/my.js +10 -6
  683. package/msg/mzn.js +10 -6
  684. package/msg/nb.js +10 -6
  685. package/msg/ne.js +10 -6
  686. package/msg/nl.js +10 -6
  687. package/msg/oc.js +10 -6
  688. package/msg/olo.js +10 -6
  689. package/msg/pa.js +13 -9
  690. package/msg/pl.js +10 -6
  691. package/msg/pms.js +10 -6
  692. package/msg/ps.js +10 -6
  693. package/msg/pt-br.js +10 -6
  694. package/msg/pt.js +10 -6
  695. package/msg/ro.js +10 -6
  696. package/msg/ru.js +10 -6
  697. package/msg/sc.js +10 -6
  698. package/msg/sco.js +10 -6
  699. package/msg/sd.js +10 -6
  700. package/msg/shn.js +10 -6
  701. package/msg/si.js +10 -6
  702. package/msg/sk.js +10 -6
  703. package/msg/skr-arab.js +10 -6
  704. package/msg/sl.js +10 -6
  705. package/msg/smn.js +440 -0
  706. package/msg/sq.js +10 -6
  707. package/msg/sr-latn.js +10 -6
  708. package/msg/sr.js +10 -6
  709. package/msg/sv.js +10 -6
  710. package/msg/sw.js +10 -6
  711. package/msg/ta.js +10 -6
  712. package/msg/tcy.js +10 -6
  713. package/msg/te.js +11 -7
  714. package/msg/th.js +10 -6
  715. package/msg/ti.js +10 -6
  716. package/msg/tl.js +10 -6
  717. package/msg/tlh.js +10 -6
  718. package/msg/tr.js +10 -6
  719. package/msg/ug-arab.js +10 -6
  720. package/msg/uk.js +10 -6
  721. package/msg/ur.js +10 -6
  722. package/msg/uz.js +10 -6
  723. package/msg/vi.js +10 -6
  724. package/msg/xmf.js +10 -6
  725. package/msg/yo.js +10 -6
  726. package/msg/yue.js +11 -7
  727. package/msg/zgh.js +10 -6
  728. package/msg/zh-hans.js +13 -9
  729. package/msg/zh-hant.js +13 -9
  730. package/package.json +5 -5
  731. package/php.d.ts +1 -4
  732. package/php_compressed.js +322 -93
  733. package/php_compressed.js.map +1 -1
  734. package/python.d.ts +1 -4
  735. package/python_compressed.js +237 -90
  736. package/python_compressed.js.map +1 -1
  737. package/blockly.d.ts +0 -25607
  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/interfaces/i_ast_node_location_svg.js +0 -45
  771. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  772. package/core/interfaces/i_autohideable.js +0 -40
  773. package/core/interfaces/i_block_dragger.js +0 -66
  774. package/core/interfaces/i_bounded_element.js +0 -45
  775. package/core/interfaces/i_bubble.js +0 -95
  776. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  777. package/core/interfaces/i_connection_checker.js +0 -104
  778. package/core/interfaces/i_contextmenu.js +0 -32
  779. package/core/interfaces/i_copyable.js +0 -49
  780. package/core/interfaces/i_delete_area.js +0 -50
  781. package/core/interfaces/i_drag_target.js +0 -88
  782. package/core/interfaces/i_flyout.js +0 -201
  783. package/core/interfaces/i_keyboard_accessible.js +0 -38
  784. package/core/interfaces/i_metrics_manager.js +0 -154
  785. package/core/interfaces/i_positionable.js +0 -51
  786. package/core/interfaces/i_selectable.js +0 -51
  787. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  788. package/core/interfaces/i_serializer.js +0 -77
  789. package/core/interfaces/i_styleable.js +0 -39
  790. package/core/interfaces/i_toolbox.js +0 -142
  791. package/core/interfaces/i_toolbox_item.js +0 -85
  792. package/core/marker_manager.js +0 -213
  793. package/core/menuitem.js +0 -292
  794. package/core/names.js +0 -289
  795. package/core/registry.js +0 -384
  796. package/core/renderers/common/block_rendering.js +0 -170
  797. package/core/renderers/common/constants.js +0 -1250
  798. package/core/renderers/common/i_path_object.js +0 -162
  799. package/core/renderers/common/marker_svg.js +0 -721
  800. package/core/renderers/common/path_object.js +0 -283
  801. package/core/renderers/common/renderer.js +0 -305
  802. package/core/renderers/geras/constants.js +0 -73
  803. package/core/renderers/geras/geras.js +0 -36
  804. package/core/renderers/geras/measurables/inline_input.js +0 -58
  805. package/core/renderers/geras/measurables/statement_input.js +0 -57
  806. package/core/renderers/geras/renderer.js +0 -149
  807. package/core/renderers/measurables/base.js +0 -64
  808. package/core/renderers/measurables/bottom_row.js +0 -138
  809. package/core/renderers/measurables/connection.js +0 -56
  810. package/core/renderers/measurables/external_value_input.js +0 -70
  811. package/core/renderers/measurables/field.js +0 -71
  812. package/core/renderers/measurables/in_row_spacer.js +0 -47
  813. package/core/renderers/measurables/input_connection.js +0 -75
  814. package/core/renderers/measurables/next_connection.js +0 -50
  815. package/core/renderers/measurables/output_connection.js +0 -61
  816. package/core/renderers/measurables/previous_connection.js +0 -50
  817. package/core/renderers/measurables/round_corner.js +0 -52
  818. package/core/renderers/measurables/row.js +0 -247
  819. package/core/renderers/measurables/spacer_row.js +0 -69
  820. package/core/renderers/measurables/square_corner.js +0 -50
  821. package/core/renderers/measurables/top_row.js +0 -143
  822. package/core/renderers/measurables/types.js +0 -353
  823. package/core/renderers/minimalist/drawer.js +0 -42
  824. package/core/renderers/minimalist/info.js +0 -54
  825. package/core/renderers/minimalist/minimalist.js +0 -26
  826. package/core/renderers/minimalist/renderer.js +0 -80
  827. package/core/renderers/thrasos/renderer.js +0 -53
  828. package/core/renderers/thrasos/thrasos.js +0 -22
  829. package/core/renderers/zelos/marker_svg.js +0 -179
  830. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  831. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  832. package/core/renderers/zelos/path_object.js +0 -247
  833. package/core/renderers/zelos/renderer.js +0 -147
  834. package/core/renderers/zelos/zelos.js +0 -38
  835. package/core/serialization/exceptions.js +0 -144
  836. package/core/shortcut_registry.js +0 -366
  837. package/core/theme/themes.js +0 -23
  838. package/core/theme.js +0 -228
  839. package/core/theme_manager.js +0 -211
  840. package/core/toolbox/category.js +0 -751
  841. package/core/toolbox/collapsible_category.js +0 -311
  842. package/core/toolbox/separator.js +0 -133
  843. package/core/toolbox/toolbox_item.js +0 -173
  844. package/core/touch.js +0 -285
  845. package/core/utils/coordinate.js +0 -138
  846. package/core/utils/global.js +0 -41
  847. package/core/utils/keycodes.js +0 -172
  848. package/core/utils/metrics.js +0 -154
  849. package/core/utils/svg.js +0 -186
  850. package/core/utils/toolbox.js +0 -459
  851. package/core/utils/useragent.js +0 -197
  852. package/core/utils.js +0 -383
  853. package/core/variable_model.js +0 -96
  854. package/core/widgetdiv.js +0 -290
  855. package/core/workspace.js +0 -836
  856. package/core/workspace_comment.js +0 -400
  857. package/core/workspace_dragger.js +0 -115
@@ -0,0 +1,134 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2020 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { WorkspaceSvg } from '../workspace_svg.js';
7
+ import type { BlockSvg } from '../block_svg.js';
8
+ import type { Coordinate } from '../utils/coordinate.js';
9
+ import type { FlyoutDefinition } from '../utils/toolbox.js';
10
+ import type { Svg } from '../utils/svg.js';
11
+ import type { IRegistrable } from './i_registrable.js';
12
+ /**
13
+ * Interface for a flyout.
14
+ * @alias Blockly.IFlyout
15
+ */
16
+ export interface IFlyout extends IRegistrable {
17
+ /** Whether the flyout is laid out horizontally or not. */
18
+ horizontalLayout: boolean;
19
+ /** Is RTL vs LTR. */
20
+ RTL: boolean;
21
+ /** The target workspace */
22
+ targetWorkspace: WorkspaceSvg | null;
23
+ /** Margin around the edges of the blocks in the flyout. */
24
+ readonly MARGIN: number;
25
+ /** Does the flyout automatically close when a block is created? */
26
+ autoClose: boolean;
27
+ /** Corner radius of the flyout background. */
28
+ readonly CORNER_RADIUS: number;
29
+ /**
30
+ * Creates the flyout's DOM. Only needs to be called once. The flyout can
31
+ * either exist as its own svg element or be a g element nested inside a
32
+ * separate svg element.
33
+ * @param tagName The type of tag to put the flyout in. This should be <svg>
34
+ * or <g>.
35
+ * @return The flyout's SVG group.
36
+ */
37
+ createDom(tagName: string | Svg<SVGSVGElement> | Svg<SVGGElement>): SVGElement;
38
+ /**
39
+ * Initializes the flyout.
40
+ * @param targetWorkspace The workspace in which to create new blocks.
41
+ */
42
+ init(targetWorkspace: WorkspaceSvg): void;
43
+ /**
44
+ * Dispose of this flyout.
45
+ * Unlink from all DOM elements to prevent memory leaks.
46
+ */
47
+ dispose(): void;
48
+ /**
49
+ * Get the width of the flyout.
50
+ * @return The width of the flyout.
51
+ */
52
+ getWidth(): number;
53
+ /**
54
+ * Get the height of the flyout.
55
+ * @return The height of the flyout.
56
+ */
57
+ getHeight(): number;
58
+ /**
59
+ * Get the workspace inside the flyout.
60
+ * @return The workspace inside the flyout.
61
+ */
62
+ getWorkspace(): WorkspaceSvg;
63
+ /**
64
+ * Is the flyout visible?
65
+ * @return True if visible.
66
+ */
67
+ isVisible(): boolean;
68
+ /**
69
+ * Set whether the flyout is visible. A value of true does not necessarily
70
+ * mean that the flyout is shown. It could be hidden because its container is
71
+ * hidden.
72
+ * @param visible True if visible.
73
+ */
74
+ setVisible(visible: boolean): void;
75
+ /**
76
+ * Set whether this flyout's container is visible.
77
+ * @param visible Whether the container is visible.
78
+ */
79
+ setContainerVisible(visible: boolean): void;
80
+ /** Hide and empty the flyout. */
81
+ hide(): void;
82
+ /**
83
+ * Show and populate the flyout.
84
+ * @param flyoutDef Contents to display in the flyout. This is either an array
85
+ * of Nodes, a NodeList, a toolbox definition, or a string with the name
86
+ * of the dynamic category.
87
+ */
88
+ show(flyoutDef: FlyoutDefinition | string): void;
89
+ /**
90
+ * Create a copy of this block on the workspace.
91
+ * @param originalBlock The block to copy from the flyout.
92
+ * @return The newly created block.
93
+ * @throws {Error} if something went wrong with deserialization.
94
+ */
95
+ createBlock(originalBlock: BlockSvg): BlockSvg;
96
+ /** Reflow blocks and their mats. */
97
+ reflow(): void;
98
+ /**
99
+ * @return True if this flyout may be scrolled with a scrollbar or by
100
+ * dragging.
101
+ */
102
+ isScrollable(): boolean;
103
+ /**
104
+ * Calculates the x coordinate for the flyout position.
105
+ * @return X coordinate.
106
+ */
107
+ getX(): number;
108
+ /**
109
+ * Calculates the y coordinate for the flyout position.
110
+ * @return Y coordinate.
111
+ */
112
+ getY(): number;
113
+ /** Position the flyout. */
114
+ position(): void;
115
+ /**
116
+ * Determine if a drag delta is toward the workspace, based on the position
117
+ * and orientation of the flyout. This is used in determineDragIntention_ to
118
+ * determine if a new block should be created or if the flyout should scroll.
119
+ * @param currentDragDeltaXY How far the pointer has moved from the position
120
+ * at mouse down, in pixel units.
121
+ * @return True if the drag is toward the workspace.
122
+ */
123
+ isDragTowardWorkspace(currentDragDeltaXY: Coordinate): boolean;
124
+ /**
125
+ * Does this flyout allow you to create a new instance of the given block?
126
+ * Used for deciding if a block can be "dragged out of" the flyout.
127
+ * @param block The block to copy from the flyout.
128
+ * @return True if you can create a new instance of the block, false
129
+ * otherwise.
130
+ */
131
+ isBlockCreatable(block: BlockSvg): boolean;
132
+ /** Scroll the flyout to the beginning of its contents. */
133
+ scrollToStart(): void;
134
+ }
@@ -0,0 +1,186 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2020 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview The interface for a flyout.
9
+ */
10
+
11
+ /**
12
+ * The interface for a flyout.
13
+ * @namespace Blockly.IFlyout
14
+ */
15
+ import * as goog from '../../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.IFlyout');
17
+
18
+ /* eslint-disable-next-line no-unused-vars */
19
+ // Unused import preserved for side-effects. Remove if unneeded.
20
+ // import '../utils/toolbox.js';
21
+ /* eslint-disable-next-line no-unused-vars */
22
+ // Unused import preserved for side-effects. Remove if unneeded.
23
+ // import '../block_svg.js';
24
+ /* eslint-disable-next-line no-unused-vars */
25
+ // Unused import preserved for side-effects. Remove if unneeded.
26
+ // import '../utils/coordinate.js';
27
+ /* eslint-disable-next-line no-unused-vars */
28
+ // Unused import preserved for side-effects. Remove if unneeded.
29
+ // import '../utils/svg.js';
30
+
31
+ import type {WorkspaceSvg} from '../workspace_svg.js';
32
+ import type {BlockSvg} from '../block_svg.js';
33
+ import type {Coordinate} from '../utils/coordinate.js';
34
+ import type {FlyoutDefinition} from '../utils/toolbox.js';
35
+ import type {Svg} from '../utils/svg.js';
36
+ import type {IRegistrable} from './i_registrable.js';
37
+
38
+
39
+ /**
40
+ * Interface for a flyout.
41
+ * @alias Blockly.IFlyout
42
+ */
43
+ export interface IFlyout extends IRegistrable {
44
+ /** Whether the flyout is laid out horizontally or not. */
45
+ horizontalLayout: boolean;
46
+
47
+ /** Is RTL vs LTR. */
48
+ RTL: boolean;
49
+
50
+ /** The target workspace */
51
+ targetWorkspace: WorkspaceSvg|null;
52
+
53
+ /** Margin around the edges of the blocks in the flyout. */
54
+ readonly MARGIN: number;
55
+
56
+ /** Does the flyout automatically close when a block is created? */
57
+ autoClose: boolean;
58
+
59
+ /** Corner radius of the flyout background. */
60
+ readonly CORNER_RADIUS: number;
61
+
62
+ /**
63
+ * Creates the flyout's DOM. Only needs to be called once. The flyout can
64
+ * either exist as its own svg element or be a g element nested inside a
65
+ * separate svg element.
66
+ * @param tagName The type of tag to put the flyout in. This should be <svg>
67
+ * or <g>.
68
+ * @return The flyout's SVG group.
69
+ */
70
+ createDom(tagName: string|Svg<SVGSVGElement>|Svg<SVGGElement>): SVGElement;
71
+
72
+ /**
73
+ * Initializes the flyout.
74
+ * @param targetWorkspace The workspace in which to create new blocks.
75
+ */
76
+ init(targetWorkspace: WorkspaceSvg): void;
77
+
78
+ /**
79
+ * Dispose of this flyout.
80
+ * Unlink from all DOM elements to prevent memory leaks.
81
+ */
82
+ dispose(): void;
83
+
84
+ /**
85
+ * Get the width of the flyout.
86
+ * @return The width of the flyout.
87
+ */
88
+ getWidth(): number;
89
+
90
+ /**
91
+ * Get the height of the flyout.
92
+ * @return The height of the flyout.
93
+ */
94
+ getHeight(): number;
95
+
96
+ /**
97
+ * Get the workspace inside the flyout.
98
+ * @return The workspace inside the flyout.
99
+ */
100
+ getWorkspace(): WorkspaceSvg;
101
+
102
+ /**
103
+ * Is the flyout visible?
104
+ * @return True if visible.
105
+ */
106
+ isVisible(): boolean;
107
+
108
+ /**
109
+ * Set whether the flyout is visible. A value of true does not necessarily
110
+ * mean that the flyout is shown. It could be hidden because its container is
111
+ * hidden.
112
+ * @param visible True if visible.
113
+ */
114
+ setVisible(visible: boolean): void;
115
+
116
+ /**
117
+ * Set whether this flyout's container is visible.
118
+ * @param visible Whether the container is visible.
119
+ */
120
+ setContainerVisible(visible: boolean): void;
121
+
122
+ /** Hide and empty the flyout. */
123
+ hide(): void;
124
+
125
+ /**
126
+ * Show and populate the flyout.
127
+ * @param flyoutDef Contents to display in the flyout. This is either an array
128
+ * of Nodes, a NodeList, a toolbox definition, or a string with the name
129
+ * of the dynamic category.
130
+ */
131
+ show(flyoutDef: FlyoutDefinition|string): void;
132
+
133
+ /**
134
+ * Create a copy of this block on the workspace.
135
+ * @param originalBlock The block to copy from the flyout.
136
+ * @return The newly created block.
137
+ * @throws {Error} if something went wrong with deserialization.
138
+ */
139
+ createBlock(originalBlock: BlockSvg): BlockSvg;
140
+
141
+ /** Reflow blocks and their mats. */
142
+ reflow(): void;
143
+
144
+ /**
145
+ * @return True if this flyout may be scrolled with a scrollbar or by
146
+ * dragging.
147
+ */
148
+ isScrollable(): boolean;
149
+
150
+ /**
151
+ * Calculates the x coordinate for the flyout position.
152
+ * @return X coordinate.
153
+ */
154
+ getX(): number;
155
+
156
+ /**
157
+ * Calculates the y coordinate for the flyout position.
158
+ * @return Y coordinate.
159
+ */
160
+ getY(): number;
161
+
162
+ /** Position the flyout. */
163
+ position(): void;
164
+
165
+ /**
166
+ * Determine if a drag delta is toward the workspace, based on the position
167
+ * and orientation of the flyout. This is used in determineDragIntention_ to
168
+ * determine if a new block should be created or if the flyout should scroll.
169
+ * @param currentDragDeltaXY How far the pointer has moved from the position
170
+ * at mouse down, in pixel units.
171
+ * @return True if the drag is toward the workspace.
172
+ */
173
+ isDragTowardWorkspace(currentDragDeltaXY: Coordinate): boolean;
174
+
175
+ /**
176
+ * Does this flyout allow you to create a new instance of the given block?
177
+ * Used for deciding if a block can be "dragged out of" the flyout.
178
+ * @param block The block to copy from the flyout.
179
+ * @return True if you can create a new instance of the block, false
180
+ * otherwise.
181
+ */
182
+ isBlockCreatable(block: BlockSvg): boolean;
183
+
184
+ /** Scroll the flyout to the beginning of its contents. */
185
+ scrollToStart(): void;
186
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2020 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { KeyboardShortcut } from '../shortcut_registry.js';
7
+ /**
8
+ * An interface for an object that handles keyboard shortcuts.
9
+ * @alias Blockly.IKeyboardAccessible
10
+ */
11
+ export interface IKeyboardAccessible {
12
+ /**
13
+ * Handles the given keyboard shortcut.
14
+ * @param shortcut The shortcut to be handled.
15
+ * @return True if the shortcut has been handled, false otherwise.
16
+ */
17
+ onShortcut(shortcut: KeyboardShortcut): boolean;
18
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2020 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview The interface for objects that handle keyboard shortcuts.
9
+ */
10
+
11
+ /**
12
+ * The interface for objects that handle keyboard shortcuts.
13
+ * @namespace Blockly.IKeyboardAccessible
14
+ */
15
+ import * as goog from '../../closure/goog/goog.js';
16
+ import {KeyboardShortcut} from '../shortcut_registry.js';
17
+ goog.declareModuleId('Blockly.IKeyboardAccessible');
18
+
19
+ /* eslint-disable-next-line no-unused-vars */
20
+ // Unused import preserved for side-effects. Remove if unneeded.
21
+ // import '../shortcut_registry.js';
22
+
23
+
24
+ /**
25
+ * An interface for an object that handles keyboard shortcuts.
26
+ * @alias Blockly.IKeyboardAccessible
27
+ */
28
+ export interface IKeyboardAccessible {
29
+ /**
30
+ * Handles the given keyboard shortcut.
31
+ * @param shortcut The shortcut to be handled.
32
+ * @return True if the shortcut has been handled, false otherwise.
33
+ */
34
+ onShortcut(shortcut: KeyboardShortcut): boolean;
35
+ }
@@ -0,0 +1,117 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { ContainerRegion, ToolboxMetrics, AbsoluteMetrics, UiMetrics } from '../metrics_manager.js';
7
+ import type { Size } from '../utils/size.js';
8
+ import type { Metrics } from '../utils/metrics.js';
9
+ /**
10
+ * Interface for a metrics manager.
11
+ * @alias Blockly.IMetricsManager
12
+ */
13
+ export interface IMetricsManager {
14
+ /**
15
+ * Returns whether the scroll area has fixed edges.
16
+ * @return Whether the scroll area has fixed edges.
17
+ * @internal
18
+ */
19
+ hasFixedEdges(): boolean;
20
+ /**
21
+ * Returns the metrics for the scroll area of the workspace.
22
+ * @param opt_getWorkspaceCoordinates True to get the scroll metrics in
23
+ * workspace coordinates, false to get them in pixel coordinates.
24
+ * @param opt_viewMetrics The view metrics if they have been previously
25
+ * computed. Passing in null may cause the view metrics to be computed
26
+ * again, if it is needed.
27
+ * @param opt_contentMetrics The content metrics if they have been previously
28
+ * computed. Passing in null may cause the content metrics to be computed
29
+ * again, if it is needed.
30
+ * @return The metrics for the scroll container
31
+ */
32
+ getScrollMetrics(opt_getWorkspaceCoordinates?: boolean, opt_viewMetrics?: ContainerRegion, opt_contentMetrics?: ContainerRegion): ContainerRegion;
33
+ /**
34
+ * Gets the width and the height of the flyout on the workspace in pixel
35
+ * coordinates. Returns 0 for the width and height if the workspace has a
36
+ * category toolbox instead of a simple toolbox.
37
+ * @param opt_own Whether to only return the workspace's own flyout.
38
+ * @return The width and height of the flyout.
39
+ */
40
+ getFlyoutMetrics(opt_own?: boolean): ToolboxMetrics;
41
+ /**
42
+ * Gets the width, height and position of the toolbox on the workspace in
43
+ * pixel coordinates. Returns 0 for the width and height if the workspace has
44
+ * a simple toolbox instead of a category toolbox. To get the width and height
45
+ * of a
46
+ * simple toolbox @see {@link getFlyoutMetrics}.
47
+ * @return The object with the width, height and position of the toolbox.
48
+ */
49
+ getToolboxMetrics(): ToolboxMetrics;
50
+ /**
51
+ * Gets the width and height of the workspace's parent SVG element in pixel
52
+ * coordinates. This area includes the toolbox and the visible workspace area.
53
+ * @return The width and height of the workspace's parent SVG element.
54
+ */
55
+ getSvgMetrics(): Size;
56
+ /**
57
+ * Gets the absolute left and absolute top in pixel coordinates.
58
+ * This is where the visible workspace starts in relation to the SVG
59
+ * container.
60
+ * @return The absolute metrics for the workspace.
61
+ */
62
+ getAbsoluteMetrics(): AbsoluteMetrics;
63
+ /**
64
+ * Gets the metrics for the visible workspace in either pixel or workspace
65
+ * coordinates. The visible workspace does not include the toolbox or flyout.
66
+ * @param opt_getWorkspaceCoordinates True to get the view metrics in
67
+ * workspace coordinates, false to get them in pixel coordinates.
68
+ * @return The width, height, top and left of the viewport in either workspace
69
+ * coordinates or pixel coordinates.
70
+ */
71
+ getViewMetrics(opt_getWorkspaceCoordinates?: boolean): ContainerRegion;
72
+ /**
73
+ * Gets content metrics in either pixel or workspace coordinates.
74
+ * The content area is a rectangle around all the top bounded elements on the
75
+ * workspace (workspace comments and blocks).
76
+ * @param opt_getWorkspaceCoordinates True to get the content metrics in
77
+ * workspace coordinates, false to get them in pixel coordinates.
78
+ * @return The metrics for the content container.
79
+ */
80
+ getContentMetrics(opt_getWorkspaceCoordinates?: boolean): ContainerRegion;
81
+ /**
82
+ * Returns an object with all the metrics required to size scrollbars for a
83
+ * top level workspace. The following properties are computed:
84
+ * Coordinate system: pixel coordinates, -left, -up, +right, +down
85
+ * .viewHeight: Height of the visible portion of the workspace.
86
+ * .viewWidth: Width of the visible portion of the workspace.
87
+ * .contentHeight: Height of the content.
88
+ * .contentWidth: Width of the content.
89
+ * .svgHeight: Height of the Blockly div (the view + the toolbox,
90
+ * simple or otherwise),
91
+ * .svgWidth: Width of the Blockly div (the view + the toolbox,
92
+ * simple or otherwise),
93
+ * .viewTop: Top-edge of the visible portion of the workspace, relative to
94
+ * the workspace origin.
95
+ * .viewLeft: Left-edge of the visible portion of the workspace, relative to
96
+ * the workspace origin.
97
+ * .contentTop: Top-edge of the content, relative to the workspace origin.
98
+ * .contentLeft: Left-edge of the content relative to the workspace origin.
99
+ * .absoluteTop: Top-edge of the visible portion of the workspace, relative
100
+ * to the blocklyDiv.
101
+ * .absoluteLeft: Left-edge of the visible portion of the workspace, relative
102
+ * to the blocklyDiv.
103
+ * .toolboxWidth: Width of the toolbox, if it exists. Otherwise zero.
104
+ * .toolboxHeight: Height of the toolbox, if it exists. Otherwise zero.
105
+ * .flyoutWidth: Width of the flyout if it is always open. Otherwise zero.
106
+ * .flyoutHeight: Height of the flyout if it is always open. Otherwise zero.
107
+ * .toolboxPosition: Top, bottom, left or right. Use TOOLBOX_AT constants to
108
+ * compare.
109
+ * @return Contains size and position metrics of a top level workspace.
110
+ */
111
+ getMetrics(): Metrics;
112
+ /**
113
+ * Returns common metrics used by UI elements.
114
+ * @return The UI metrics.
115
+ */
116
+ getUiMetrics(): UiMetrics;
117
+ }
@@ -0,0 +1,151 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview The interface for a metrics manager.
9
+ */
10
+
11
+ /**
12
+ * The interface for a metrics manager.
13
+ * @namespace Blockly.IMetricsManager
14
+ */
15
+ import * as goog from '../../closure/goog/goog.js';
16
+ import type {ContainerRegion, ToolboxMetrics, AbsoluteMetrics, UiMetrics} from '../metrics_manager.js';
17
+ import type {Size} from '../utils/size.js';
18
+ import type {Metrics} from '../utils/metrics.js';
19
+ goog.declareModuleId('Blockly.IMetricsManager');
20
+
21
+ /* eslint-disable-next-line no-unused-vars */
22
+ // Unused import preserved for side-effects. Remove if unneeded.
23
+ // import '../metrics_manager.js';
24
+ /* eslint-disable-next-line no-unused-vars */
25
+ // Unused import preserved for side-effects. Remove if unneeded.
26
+ // import '../utils/metrics.js';
27
+ /* eslint-disable-next-line no-unused-vars */
28
+ // Unused import preserved for side-effects. Remove if unneeded.
29
+ // import '../utils/size.js';
30
+
31
+
32
+ /**
33
+ * Interface for a metrics manager.
34
+ * @alias Blockly.IMetricsManager
35
+ */
36
+ export interface IMetricsManager {
37
+ /**
38
+ * Returns whether the scroll area has fixed edges.
39
+ * @return Whether the scroll area has fixed edges.
40
+ * @internal
41
+ */
42
+ hasFixedEdges(): boolean;
43
+
44
+ /**
45
+ * Returns the metrics for the scroll area of the workspace.
46
+ * @param opt_getWorkspaceCoordinates True to get the scroll metrics in
47
+ * workspace coordinates, false to get them in pixel coordinates.
48
+ * @param opt_viewMetrics The view metrics if they have been previously
49
+ * computed. Passing in null may cause the view metrics to be computed
50
+ * again, if it is needed.
51
+ * @param opt_contentMetrics The content metrics if they have been previously
52
+ * computed. Passing in null may cause the content metrics to be computed
53
+ * again, if it is needed.
54
+ * @return The metrics for the scroll container
55
+ */
56
+ getScrollMetrics(
57
+ opt_getWorkspaceCoordinates?: boolean, opt_viewMetrics?: ContainerRegion,
58
+ opt_contentMetrics?: ContainerRegion): ContainerRegion;
59
+
60
+ /**
61
+ * Gets the width and the height of the flyout on the workspace in pixel
62
+ * coordinates. Returns 0 for the width and height if the workspace has a
63
+ * category toolbox instead of a simple toolbox.
64
+ * @param opt_own Whether to only return the workspace's own flyout.
65
+ * @return The width and height of the flyout.
66
+ */
67
+ getFlyoutMetrics(opt_own?: boolean): ToolboxMetrics;
68
+
69
+ /**
70
+ * Gets the width, height and position of the toolbox on the workspace in
71
+ * pixel coordinates. Returns 0 for the width and height if the workspace has
72
+ * a simple toolbox instead of a category toolbox. To get the width and height
73
+ * of a
74
+ * simple toolbox @see {@link getFlyoutMetrics}.
75
+ * @return The object with the width, height and position of the toolbox.
76
+ */
77
+ getToolboxMetrics(): ToolboxMetrics;
78
+
79
+ /**
80
+ * Gets the width and height of the workspace's parent SVG element in pixel
81
+ * coordinates. This area includes the toolbox and the visible workspace area.
82
+ * @return The width and height of the workspace's parent SVG element.
83
+ */
84
+ getSvgMetrics(): Size;
85
+
86
+ /**
87
+ * Gets the absolute left and absolute top in pixel coordinates.
88
+ * This is where the visible workspace starts in relation to the SVG
89
+ * container.
90
+ * @return The absolute metrics for the workspace.
91
+ */
92
+ getAbsoluteMetrics(): AbsoluteMetrics;
93
+
94
+ /**
95
+ * Gets the metrics for the visible workspace in either pixel or workspace
96
+ * coordinates. The visible workspace does not include the toolbox or flyout.
97
+ * @param opt_getWorkspaceCoordinates True to get the view metrics in
98
+ * workspace coordinates, false to get them in pixel coordinates.
99
+ * @return The width, height, top and left of the viewport in either workspace
100
+ * coordinates or pixel coordinates.
101
+ */
102
+ getViewMetrics(opt_getWorkspaceCoordinates?: boolean): ContainerRegion;
103
+
104
+ /**
105
+ * Gets content metrics in either pixel or workspace coordinates.
106
+ * The content area is a rectangle around all the top bounded elements on the
107
+ * workspace (workspace comments and blocks).
108
+ * @param opt_getWorkspaceCoordinates True to get the content metrics in
109
+ * workspace coordinates, false to get them in pixel coordinates.
110
+ * @return The metrics for the content container.
111
+ */
112
+ getContentMetrics(opt_getWorkspaceCoordinates?: boolean): ContainerRegion;
113
+
114
+ /**
115
+ * Returns an object with all the metrics required to size scrollbars for a
116
+ * top level workspace. The following properties are computed:
117
+ * Coordinate system: pixel coordinates, -left, -up, +right, +down
118
+ * .viewHeight: Height of the visible portion of the workspace.
119
+ * .viewWidth: Width of the visible portion of the workspace.
120
+ * .contentHeight: Height of the content.
121
+ * .contentWidth: Width of the content.
122
+ * .svgHeight: Height of the Blockly div (the view + the toolbox,
123
+ * simple or otherwise),
124
+ * .svgWidth: Width of the Blockly div (the view + the toolbox,
125
+ * simple or otherwise),
126
+ * .viewTop: Top-edge of the visible portion of the workspace, relative to
127
+ * the workspace origin.
128
+ * .viewLeft: Left-edge of the visible portion of the workspace, relative to
129
+ * the workspace origin.
130
+ * .contentTop: Top-edge of the content, relative to the workspace origin.
131
+ * .contentLeft: Left-edge of the content relative to the workspace origin.
132
+ * .absoluteTop: Top-edge of the visible portion of the workspace, relative
133
+ * to the blocklyDiv.
134
+ * .absoluteLeft: Left-edge of the visible portion of the workspace, relative
135
+ * to the blocklyDiv.
136
+ * .toolboxWidth: Width of the toolbox, if it exists. Otherwise zero.
137
+ * .toolboxHeight: Height of the toolbox, if it exists. Otherwise zero.
138
+ * .flyoutWidth: Width of the flyout if it is always open. Otherwise zero.
139
+ * .flyoutHeight: Height of the flyout if it is always open. Otherwise zero.
140
+ * .toolboxPosition: Top, bottom, left or right. Use TOOLBOX_AT constants to
141
+ * compare.
142
+ * @return Contains size and position metrics of a top level workspace.
143
+ */
144
+ getMetrics(): Metrics;
145
+
146
+ /**
147
+ * Returns common metrics used by UI elements.
148
+ * @return The UI metrics.
149
+ */
150
+ getUiMetrics(): UiMetrics;
151
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * The interface for an object that is movable.
8
+ * @alias Blockly.IMovable
9
+ */
10
+ export interface IMovable {
11
+ /**
12
+ * Get whether this is movable or not.
13
+ * @return True if movable.
14
+ */
15
+ isMovable(): boolean;
16
+ }