blockly 8.0.4-beta.0 → 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 +421 -421
  609. package/msg/ace.js +421 -421
  610. package/msg/af.js +421 -421
  611. package/msg/am.js +421 -421
  612. package/msg/ar.js +421 -421
  613. package/msg/ast.js +421 -421
  614. package/msg/az.js +421 -421
  615. package/msg/ba.js +421 -421
  616. package/msg/bcc.js +421 -421
  617. package/msg/be-tarask.js +421 -421
  618. package/msg/be.js +421 -421
  619. package/msg/bg.js +421 -421
  620. package/msg/bn.js +421 -421
  621. package/msg/br.js +421 -421
  622. package/msg/bs.js +421 -421
  623. package/msg/ca.js +421 -421
  624. package/msg/cdo.js +421 -421
  625. package/msg/cs.js +421 -421
  626. package/msg/da.js +421 -421
  627. package/msg/de.js +421 -421
  628. package/msg/diq.js +421 -421
  629. package/msg/dty.js +421 -421
  630. package/msg/ee.js +421 -421
  631. package/msg/el.js +421 -421
  632. package/msg/en-gb.js +421 -421
  633. package/msg/en.js +421 -421
  634. package/msg/eo.js +421 -421
  635. package/msg/es.js +421 -421
  636. package/msg/et.js +421 -421
  637. package/msg/eu.js +421 -421
  638. package/msg/fa.js +421 -421
  639. package/msg/fi.js +421 -421
  640. package/msg/fo.js +421 -421
  641. package/msg/fr.js +421 -421
  642. package/msg/frr.js +421 -421
  643. package/msg/gl.js +421 -421
  644. package/msg/gn.js +421 -421
  645. package/msg/gor.js +421 -421
  646. package/msg/ha.js +421 -421
  647. package/msg/hak.js +421 -421
  648. package/msg/he.js +421 -421
  649. package/msg/hi.js +421 -421
  650. package/msg/hr.js +421 -421
  651. package/msg/hrx.js +421 -421
  652. package/msg/hu.js +421 -421
  653. package/msg/hy.js +421 -421
  654. package/msg/ia.js +421 -421
  655. package/msg/id.js +421 -421
  656. package/msg/ig.js +421 -421
  657. package/msg/inh.js +421 -421
  658. package/msg/is.js +421 -421
  659. package/msg/it.js +421 -421
  660. package/msg/ja.js +421 -421
  661. package/msg/ka.js +421 -421
  662. package/msg/kab.js +421 -421
  663. package/msg/kbd-cyrl.js +421 -421
  664. package/msg/km.js +421 -421
  665. package/msg/kn.js +421 -421
  666. package/msg/ko.js +421 -421
  667. package/msg/ksh.js +421 -421
  668. package/msg/ku-latn.js +421 -421
  669. package/msg/ky.js +421 -421
  670. package/msg/la.js +421 -421
  671. package/msg/lb.js +421 -421
  672. package/msg/lki.js +421 -421
  673. package/msg/lo.js +421 -421
  674. package/msg/lrc.js +421 -421
  675. package/msg/lt.js +421 -421
  676. package/msg/lv.js +421 -421
  677. package/msg/mg.js +421 -421
  678. package/msg/mk.js +421 -421
  679. package/msg/ml.js +421 -421
  680. package/msg/mnw.js +421 -421
  681. package/msg/ms.js +421 -421
  682. package/msg/my.js +421 -421
  683. package/msg/mzn.js +421 -421
  684. package/msg/nb.js +421 -421
  685. package/msg/ne.js +421 -421
  686. package/msg/nl.js +421 -421
  687. package/msg/oc.js +421 -421
  688. package/msg/olo.js +421 -421
  689. package/msg/pa.js +421 -421
  690. package/msg/pl.js +421 -421
  691. package/msg/pms.js +421 -421
  692. package/msg/ps.js +421 -421
  693. package/msg/pt-br.js +421 -421
  694. package/msg/pt.js +421 -421
  695. package/msg/ro.js +421 -421
  696. package/msg/ru.js +421 -421
  697. package/msg/sc.js +421 -421
  698. package/msg/sco.js +421 -421
  699. package/msg/sd.js +421 -421
  700. package/msg/shn.js +421 -421
  701. package/msg/si.js +421 -421
  702. package/msg/sk.js +421 -421
  703. package/msg/skr-arab.js +421 -421
  704. package/msg/sl.js +421 -421
  705. package/msg/smn.js +421 -421
  706. package/msg/sq.js +421 -421
  707. package/msg/sr-latn.js +421 -421
  708. package/msg/sr.js +421 -421
  709. package/msg/sv.js +421 -421
  710. package/msg/sw.js +421 -421
  711. package/msg/ta.js +421 -421
  712. package/msg/tcy.js +421 -421
  713. package/msg/te.js +421 -421
  714. package/msg/th.js +421 -421
  715. package/msg/ti.js +421 -421
  716. package/msg/tl.js +421 -421
  717. package/msg/tlh.js +421 -421
  718. package/msg/tr.js +421 -421
  719. package/msg/ug-arab.js +421 -421
  720. package/msg/uk.js +421 -421
  721. package/msg/ur.js +421 -421
  722. package/msg/uz.js +421 -421
  723. package/msg/vi.js +421 -421
  724. package/msg/xmf.js +421 -421
  725. package/msg/yo.js +421 -421
  726. package/msg/yue.js +421 -421
  727. package/msg/zgh.js +421 -421
  728. package/msg/zh-hans.js +421 -421
  729. package/msg/zh-hant.js +421 -421
  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,73 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2018 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { IBubble } from './interfaces/i_bubble.js';
7
+ import { Coordinate } from './utils/coordinate.js';
8
+ import type { WorkspaceSvg } from './workspace_svg.js';
9
+ /**
10
+ * Class for a bubble dragger. It moves things on the bubble canvas around the
11
+ * workspace when they are being dragged by a mouse or touch. These can be
12
+ * block comments, mutators, warnings, or workspace comments.
13
+ * @alias Blockly.BubbleDragger
14
+ */
15
+ export declare class BubbleDragger {
16
+ private bubble;
17
+ private workspace;
18
+ /** Which drag target the mouse pointer is over, if any. */
19
+ private dragTarget_;
20
+ /** Whether the bubble would be deleted if dropped immediately. */
21
+ private wouldDeleteBubble_;
22
+ private readonly startXY_;
23
+ private dragSurface_;
24
+ /**
25
+ * @param bubble The item on the bubble canvas to drag.
26
+ * @param workspace The workspace to drag on.
27
+ */
28
+ constructor(bubble: IBubble, workspace: WorkspaceSvg);
29
+ /**
30
+ * Start dragging a bubble. This includes moving it to the drag surface.
31
+ * @internal
32
+ */
33
+ startBubbleDrag(): void;
34
+ /**
35
+ * Execute a step of bubble dragging, based on the given event. Update the
36
+ * display accordingly.
37
+ * @param e The most recent move event.
38
+ * @param currentDragDeltaXY How far the pointer has moved from the position
39
+ * at the start of the drag, in pixel units.
40
+ * @internal
41
+ */
42
+ dragBubble(e: Event, currentDragDeltaXY: Coordinate): void;
43
+ /**
44
+ * Whether ending the drag would delete the bubble.
45
+ * @param dragTarget The drag target that the bubblee is currently over.
46
+ * @return Whether dropping the bubble immediately would delete the block.
47
+ */
48
+ private shouldDelete_;
49
+ /**
50
+ * Update the cursor (and possibly the trash can lid) to reflect whether the
51
+ * dragging bubble would be deleted if released immediately.
52
+ */
53
+ private updateCursorDuringBubbleDrag_;
54
+ /**
55
+ * Finish a bubble drag and put the bubble back on the workspace.
56
+ * @param e The mouseup/touchend event.
57
+ * @param currentDragDeltaXY How far the pointer has moved from the position
58
+ * at the start of the drag, in pixel units.
59
+ * @internal
60
+ */
61
+ endBubbleDrag(e: Event, currentDragDeltaXY: Coordinate): void;
62
+ /** Fire a move event at the end of a bubble drag. */
63
+ private fireMoveEvent_;
64
+ /**
65
+ * Convert a coordinate object from pixels to workspace units, including a
66
+ * correction for mutator workspaces.
67
+ * This function does not consider differing origins. It simply scales the
68
+ * input's x and y values.
69
+ * @param pixelCoord A coordinate with x and y values in CSS pixel units.
70
+ * @return The input coordinate divided by the workspace scale.
71
+ */
72
+ private pixelsToWorkspaceUnits_;
73
+ }
@@ -0,0 +1,229 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2018 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview Methods for dragging a bubble visually.
9
+ */
10
+
11
+ /**
12
+ * Methods for dragging a bubble visually.
13
+ * @class
14
+ */
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.BubbleDragger');
17
+
18
+ // Unused import preserved for side-effects. Remove if unneeded.
19
+ // import './bubble.js';
20
+ // Unused import preserved for side-effects. Remove if unneeded.
21
+ // import './constants.js';
22
+
23
+ import type {BlockDragSurfaceSvg} from './block_drag_surface.js';
24
+ import {ComponentManager} from './component_manager.js';
25
+ import type {CommentMove} from './events/events_comment_move.js';
26
+ import * as eventUtils from './events/utils.js';
27
+ import type {IBubble} from './interfaces/i_bubble.js';
28
+ import type {IDeleteArea} from './interfaces/i_delete_area.js';
29
+ import type {IDragTarget} from './interfaces/i_drag_target.js';
30
+ import {Coordinate} from './utils/coordinate.js';
31
+ import * as svgMath from './utils/svg_math.js';
32
+ import {WorkspaceCommentSvg} from './workspace_comment_svg.js';
33
+ import type {WorkspaceSvg} from './workspace_svg.js';
34
+
35
+
36
+ /**
37
+ * Class for a bubble dragger. It moves things on the bubble canvas around the
38
+ * workspace when they are being dragged by a mouse or touch. These can be
39
+ * block comments, mutators, warnings, or workspace comments.
40
+ * @alias Blockly.BubbleDragger
41
+ */
42
+ export class BubbleDragger {
43
+ /** Which drag target the mouse pointer is over, if any. */
44
+ private dragTarget_: IDragTarget|null = null;
45
+
46
+ /** Whether the bubble would be deleted if dropped immediately. */
47
+ private wouldDeleteBubble_ = false;
48
+ private readonly startXY_: Coordinate;
49
+ private dragSurface_: BlockDragSurfaceSvg|null;
50
+
51
+ /**
52
+ * @param bubble The item on the bubble canvas to drag.
53
+ * @param workspace The workspace to drag on.
54
+ */
55
+ constructor(private bubble: IBubble, private workspace: WorkspaceSvg) {
56
+ /**
57
+ * The location of the top left corner of the dragging bubble's body at the
58
+ * beginning of the drag, in workspace coordinates.
59
+ */
60
+ this.startXY_ = this.bubble.getRelativeToSurfaceXY();
61
+
62
+ /**
63
+ * The drag surface to move bubbles to during a drag, or null if none should
64
+ * be used. Block dragging and bubble dragging use the same surface.
65
+ */
66
+ this.dragSurface_ =
67
+ svgMath.is3dSupported() && !!workspace.getBlockDragSurface() ?
68
+ workspace.getBlockDragSurface() :
69
+ null;
70
+ }
71
+
72
+ /**
73
+ * Start dragging a bubble. This includes moving it to the drag surface.
74
+ * @internal
75
+ */
76
+ startBubbleDrag() {
77
+ if (!eventUtils.getGroup()) {
78
+ eventUtils.setGroup(true);
79
+ }
80
+
81
+ this.workspace.setResizesEnabled(false);
82
+ this.bubble.setAutoLayout(false);
83
+ if (this.dragSurface_) {
84
+ this.bubble.moveTo(0, 0);
85
+ this.dragSurface_.translateSurface(this.startXY_.x, this.startXY_.y);
86
+ // Execute the move on the top-level SVG component.
87
+ this.dragSurface_.setBlocksAndShow(this.bubble.getSvgRoot());
88
+ }
89
+
90
+ this.bubble.setDragging && this.bubble.setDragging(true);
91
+ }
92
+
93
+ /**
94
+ * Execute a step of bubble dragging, based on the given event. Update the
95
+ * display accordingly.
96
+ * @param e The most recent move event.
97
+ * @param currentDragDeltaXY How far the pointer has moved from the position
98
+ * at the start of the drag, in pixel units.
99
+ * @internal
100
+ */
101
+ dragBubble(e: Event, currentDragDeltaXY: Coordinate) {
102
+ const delta = this.pixelsToWorkspaceUnits_(currentDragDeltaXY);
103
+ const newLoc = Coordinate.sum(this.startXY_, delta);
104
+ this.bubble.moveDuringDrag(this.dragSurface_, newLoc);
105
+
106
+ const oldDragTarget = this.dragTarget_;
107
+ this.dragTarget_ = this.workspace.getDragTarget(e);
108
+
109
+ const oldWouldDeleteBubble = this.wouldDeleteBubble_;
110
+ this.wouldDeleteBubble_ = this.shouldDelete_(this.dragTarget_);
111
+ if (oldWouldDeleteBubble !== this.wouldDeleteBubble_) {
112
+ // Prevent unnecessary add/remove class calls.
113
+ this.updateCursorDuringBubbleDrag_();
114
+ }
115
+ // Call drag enter/exit/over after wouldDeleteBlock is called in
116
+ // shouldDelete_
117
+ if (this.dragTarget_ !== oldDragTarget) {
118
+ oldDragTarget && oldDragTarget.onDragExit(this.bubble);
119
+ this.dragTarget_ && this.dragTarget_.onDragEnter(this.bubble);
120
+ }
121
+ this.dragTarget_ && this.dragTarget_.onDragOver(this.bubble);
122
+ }
123
+
124
+ /**
125
+ * Whether ending the drag would delete the bubble.
126
+ * @param dragTarget The drag target that the bubblee is currently over.
127
+ * @return Whether dropping the bubble immediately would delete the block.
128
+ */
129
+ private shouldDelete_(dragTarget: IDragTarget|null): boolean {
130
+ if (dragTarget) {
131
+ const componentManager = this.workspace.getComponentManager();
132
+ const isDeleteArea = componentManager.hasCapability(
133
+ dragTarget.id, ComponentManager.Capability.DELETE_AREA);
134
+ if (isDeleteArea) {
135
+ return (dragTarget as IDeleteArea).wouldDelete(this.bubble, false);
136
+ }
137
+ }
138
+ return false;
139
+ }
140
+
141
+ /**
142
+ * Update the cursor (and possibly the trash can lid) to reflect whether the
143
+ * dragging bubble would be deleted if released immediately.
144
+ */
145
+ private updateCursorDuringBubbleDrag_() {
146
+ this.bubble.setDeleteStyle(this.wouldDeleteBubble_);
147
+ }
148
+
149
+ /**
150
+ * Finish a bubble drag and put the bubble back on the workspace.
151
+ * @param e The mouseup/touchend event.
152
+ * @param currentDragDeltaXY How far the pointer has moved from the position
153
+ * at the start of the drag, in pixel units.
154
+ * @internal
155
+ */
156
+ endBubbleDrag(e: Event, currentDragDeltaXY: Coordinate) {
157
+ // Make sure internal state is fresh.
158
+ this.dragBubble(e, currentDragDeltaXY);
159
+
160
+ const preventMove =
161
+ this.dragTarget_ && this.dragTarget_.shouldPreventMove(this.bubble);
162
+ let newLoc;
163
+ if (preventMove) {
164
+ newLoc = this.startXY_;
165
+ } else {
166
+ const delta = this.pixelsToWorkspaceUnits_(currentDragDeltaXY);
167
+ newLoc = Coordinate.sum(this.startXY_, delta);
168
+ }
169
+ // Move the bubble to its final location.
170
+ this.bubble.moveTo(newLoc.x, newLoc.y);
171
+
172
+ if (this.dragTarget_) {
173
+ this.dragTarget_.onDrop(this.bubble);
174
+ }
175
+
176
+ if (this.wouldDeleteBubble_) {
177
+ // Fire a move event, so we know where to go back to for an undo.
178
+ this.fireMoveEvent_();
179
+ this.bubble.dispose();
180
+ } else {
181
+ // Put everything back onto the bubble canvas.
182
+ if (this.dragSurface_) {
183
+ this.dragSurface_.clearAndHide(this.workspace.getBubbleCanvas());
184
+ }
185
+ if (this.bubble.setDragging) {
186
+ this.bubble.setDragging(false);
187
+ }
188
+ this.fireMoveEvent_();
189
+ }
190
+ this.workspace.setResizesEnabled(true);
191
+
192
+ eventUtils.setGroup(false);
193
+ }
194
+
195
+ /** Fire a move event at the end of a bubble drag. */
196
+ private fireMoveEvent_() {
197
+ if (this.bubble instanceof WorkspaceCommentSvg) {
198
+ const event = new (eventUtils.get(eventUtils.COMMENT_MOVE))!
199
+ (this.bubble) as CommentMove;
200
+ event.setOldCoordinate(this.startXY_);
201
+ event.recordNew();
202
+ eventUtils.fire(event);
203
+ }
204
+ // TODO (fenichel): move events for comments.
205
+ return;
206
+ }
207
+
208
+ /**
209
+ * Convert a coordinate object from pixels to workspace units, including a
210
+ * correction for mutator workspaces.
211
+ * This function does not consider differing origins. It simply scales the
212
+ * input's x and y values.
213
+ * @param pixelCoord A coordinate with x and y values in CSS pixel units.
214
+ * @return The input coordinate divided by the workspace scale.
215
+ */
216
+ private pixelsToWorkspaceUnits_(pixelCoord: Coordinate): Coordinate {
217
+ const result = new Coordinate(
218
+ pixelCoord.x / this.workspace.scale,
219
+ pixelCoord.y / this.workspace.scale);
220
+ if (this.workspace.isMutator) {
221
+ // If we're in a mutator, its scale is always 1, purely because of some
222
+ // oddities in our rendering optimizations. The actual scale is the same
223
+ // as the scale on the parent workspace. Fix that for dragging.
224
+ const mainScale = this.workspace.options.parentWorkspace!.scale;
225
+ result.scale(1 / mainScale);
226
+ }
227
+ return result;
228
+ }
229
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Abstract } from './events/events_abstract.js';
7
+ import type { IBoundedElement } from './interfaces/i_bounded_element.js';
8
+ import type { ContainerRegion } from './metrics_manager.js';
9
+ import type { WorkspaceSvg } from './workspace_svg.js';
10
+ /**
11
+ * Bumps the given object that has passed out of bounds.
12
+ * @param workspace The workspace containing the object.
13
+ * @param scrollMetrics Scroll metrics
14
+ * in workspace coordinates.
15
+ * @param object The object to bump.
16
+ * @return True if block was bumped.
17
+ * @alias Blockly.bumpObjects.bumpIntoBounds
18
+ */
19
+ declare function bumpObjectIntoBounds(workspace: WorkspaceSvg, scrollMetrics: ContainerRegion, object: IBoundedElement): boolean;
20
+ export declare const bumpIntoBounds: typeof bumpObjectIntoBounds;
21
+ /**
22
+ * Creates a handler for bumping objects when they cross fixed bounds.
23
+ * @param workspace The workspace to handle.
24
+ * @return The event handler.
25
+ * @alias Blockly.bumpObjects.bumpIntoBoundsHandler
26
+ */
27
+ export declare function bumpIntoBoundsHandler(workspace: WorkspaceSvg): (p1: Abstract) => void;
28
+ /**
29
+ * Bumps the top objects in the given workspace into bounds.
30
+ * @param workspace The workspace.
31
+ * @alias Blockly.bumpObjects.bumpTopObjectsIntoBounds
32
+ */
33
+ export declare function bumpTopObjectsIntoBounds(workspace: WorkspaceSvg): void;
34
+ export {};
@@ -7,42 +7,41 @@
7
7
  /**
8
8
  * @fileoverview Utilities for bumping objects back into worksapce bounds.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Utilities for bumping objects back into worksapce bounds.
14
13
  * @namespace Blockly.bumpObjects
15
14
  */
16
- goog.module('Blockly.bumpObjects');
17
-
18
- const eventUtils = goog.require('Blockly.Events.utils');
19
- const mathUtils = goog.require('Blockly.utils.math');
20
- /* eslint-disable-next-line no-unused-vars */
21
- const {Abstract} = goog.requireType('Blockly.Events.Abstract');
22
- /* eslint-disable-next-line no-unused-vars */
23
- const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
24
- /* eslint-disable-next-line no-unused-vars */
25
- const {IBoundedElement} = goog.requireType('Blockly.IBoundedElement');
26
- /* eslint-disable-next-line no-unused-vars */
27
- const {MetricsManager} = goog.requireType('Blockly.MetricsManager');
28
- /* eslint-disable-next-line no-unused-vars */
29
- const {ViewportChange} = goog.requireType('Blockly.Events.ViewportChange');
30
- /* eslint-disable-next-line no-unused-vars */
31
- const {WorkspaceCommentSvg} = goog.requireType('Blockly.WorkspaceCommentSvg');
32
- /* eslint-disable-next-line no-unused-vars */
33
- const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.bumpObjects');
17
+
18
+ import type {BlockSvg} from './block_svg.js';
19
+ import type {Abstract} from './events/events_abstract.js';
20
+ import type {BlockCreate} from './events/events_block_create.js';
21
+ import type {BlockMove} from './events/events_block_move.js';
22
+ import type {CommentCreate} from './events/events_comment_create.js';
23
+ import type {CommentMove} from './events/events_comment_move.js';
24
+ import type {ViewportChange} from './events/events_viewport.js';
25
+ import * as eventUtils from './events/utils.js';
26
+ import type {IBoundedElement} from './interfaces/i_bounded_element.js';
27
+ import type {ContainerRegion, MetricsManager} from './metrics_manager.js';
28
+ import * as mathUtils from './utils/math.js';
29
+ import type {WorkspaceCommentSvg} from './workspace_comment_svg.js';
30
+ import type {WorkspaceSvg} from './workspace_svg.js';
34
31
 
35
32
 
36
33
  /**
37
34
  * Bumps the given object that has passed out of bounds.
38
- * @param {!WorkspaceSvg} workspace The workspace containing the object.
39
- * @param {!MetricsManager.ContainerRegion} scrollMetrics Scroll metrics
35
+ * @param workspace The workspace containing the object.
36
+ * @param scrollMetrics Scroll metrics
40
37
  * in workspace coordinates.
41
- * @param {!IBoundedElement} object The object to bump.
42
- * @return {boolean} True if block was bumped.
38
+ * @param object The object to bump.
39
+ * @return True if block was bumped.
43
40
  * @alias Blockly.bumpObjects.bumpIntoBounds
44
41
  */
45
- const bumpObjectIntoBounds = function(workspace, scrollMetrics, object) {
42
+ function bumpObjectIntoBounds(
43
+ workspace: WorkspaceSvg, scrollMetrics: ContainerRegion,
44
+ object: IBoundedElement): boolean {
46
45
  // Compute new top/left position for object.
47
46
  const objectMetrics = object.getBoundingRectangle();
48
47
  const height = objectMetrics.bottom - objectMetrics.top;
@@ -82,27 +81,29 @@ const bumpObjectIntoBounds = function(workspace, scrollMetrics, object) {
82
81
  return true;
83
82
  }
84
83
  return false;
85
- };
86
- exports.bumpIntoBounds = bumpObjectIntoBounds;
84
+ }
85
+ export const bumpIntoBounds = bumpObjectIntoBounds;
87
86
 
88
87
  /**
89
88
  * Creates a handler for bumping objects when they cross fixed bounds.
90
- * @param {!WorkspaceSvg} workspace The workspace to handle.
91
- * @return {function(Abstract)} The event handler.
89
+ * @param workspace The workspace to handle.
90
+ * @return The event handler.
92
91
  * @alias Blockly.bumpObjects.bumpIntoBoundsHandler
93
92
  */
94
- const bumpIntoBoundsHandler = function(workspace) {
95
- return function(e) {
93
+ export function bumpIntoBoundsHandler(workspace: WorkspaceSvg):
94
+ (p1: Abstract) => void {
95
+ return (e) => {
96
96
  const metricsManager = workspace.getMetricsManager();
97
97
  if (!metricsManager.hasFixedEdges() || workspace.isDragging()) {
98
98
  return;
99
99
  }
100
100
 
101
- if (eventUtils.BUMP_EVENTS.indexOf(e.type) !== -1) {
101
+ if (eventUtils.BUMP_EVENTS.indexOf(e.type ?? '') !== -1) {
102
102
  const scrollMetricsInWsCoords = metricsManager.getScrollMetrics(true);
103
103
 
104
104
  // Triggered by move/create event
105
- const object = extractObjectFromEvent(workspace, e);
105
+ const object =
106
+ extractObjectFromEvent(workspace, e as eventUtils.BumpEvent);
106
107
  if (!object) {
107
108
  return;
108
109
  }
@@ -111,8 +112,7 @@ const bumpIntoBoundsHandler = function(workspace) {
111
112
  eventUtils.setGroup(e.group);
112
113
 
113
114
  const wasBumped = bumpObjectIntoBounds(
114
- workspace, scrollMetricsInWsCoords,
115
- /** @type {!IBoundedElement} */ (object));
115
+ workspace, scrollMetricsInWsCoords, (object as IBoundedElement));
116
116
 
117
117
  if (wasBumped && !e.group) {
118
118
  console.warn(
@@ -123,49 +123,52 @@ const bumpIntoBoundsHandler = function(workspace) {
123
123
  eventUtils.setGroup(oldGroup);
124
124
  }
125
125
  } else if (e.type === eventUtils.VIEWPORT_CHANGE) {
126
- const viewportEvent = /** @type {!ViewportChange} */ (e);
127
- if (viewportEvent.scale > viewportEvent.oldScale) {
126
+ const viewportEvent = (e as ViewportChange);
127
+ if (viewportEvent.scale && viewportEvent.oldScale &&
128
+ viewportEvent.scale > viewportEvent.oldScale) {
128
129
  bumpTopObjectsIntoBounds(workspace);
129
130
  }
130
131
  }
131
132
  };
132
- };
133
- exports.bumpIntoBoundsHandler = bumpIntoBoundsHandler;
133
+ }
134
134
 
135
135
  /**
136
136
  * Extracts the object from the given event.
137
- * @param {!WorkspaceSvg} workspace The workspace the event originated
137
+ * @param workspace The workspace the event originated
138
138
  * from.
139
- * @param {!eventUtils.BumpEvent} e An event containing an object.
140
- * @return {?BlockSvg|?WorkspaceCommentSvg} The extracted
139
+ * @param e An event containing an object.
140
+ * @return The extracted
141
141
  * object.
142
142
  */
143
- const extractObjectFromEvent = function(workspace, e) {
143
+ function extractObjectFromEvent(
144
+ workspace: WorkspaceSvg, e: eventUtils.BumpEvent): BlockSvg|null|
145
+ WorkspaceCommentSvg {
144
146
  let object = null;
145
147
  switch (e.type) {
146
148
  case eventUtils.BLOCK_CREATE:
147
149
  case eventUtils.BLOCK_MOVE:
148
- object = workspace.getBlockById(e.blockId);
150
+ object = workspace.getBlockById((e as BlockCreate | BlockMove).blockId);
149
151
  if (object) {
150
152
  object = object.getRootBlock();
151
153
  }
152
154
  break;
153
155
  case eventUtils.COMMENT_CREATE:
154
156
  case eventUtils.COMMENT_MOVE:
155
- object = (
156
- /** @type {?WorkspaceCommentSvg} */
157
- (workspace.getCommentById(e.commentId)));
157
+ object = workspace.getCommentById(
158
+ (e as CommentCreate | CommentMove).commentId) as
159
+ WorkspaceCommentSvg |
160
+ null;
158
161
  break;
159
162
  }
160
163
  return object;
161
- };
164
+ }
162
165
 
163
166
  /**
164
167
  * Bumps the top objects in the given workspace into bounds.
165
- * @param {!WorkspaceSvg} workspace The workspace.
168
+ * @param workspace The workspace.
166
169
  * @alias Blockly.bumpObjects.bumpTopObjectsIntoBounds
167
170
  */
168
- const bumpTopObjectsIntoBounds = function(workspace) {
171
+ export function bumpTopObjectsIntoBounds(workspace: WorkspaceSvg) {
169
172
  const metricsManager = workspace.getMetricsManager();
170
173
  if (!metricsManager.hasFixedEdges() || workspace.isDragging()) {
171
174
  return;
@@ -173,8 +176,7 @@ const bumpTopObjectsIntoBounds = function(workspace) {
173
176
 
174
177
  const scrollMetricsInWsCoords = metricsManager.getScrollMetrics(true);
175
178
  const topBlocks = workspace.getTopBoundedElements();
176
- for (let i = 0, block; (block = topBlocks[i]); i++) {
179
+ for (let i = 0, block; block = topBlocks[i]; i++) {
177
180
  bumpObjectIntoBounds(workspace, scrollMetricsInWsCoords, block);
178
181
  }
179
- };
180
- exports.bumpTopObjectsIntoBounds = bumpTopObjectsIntoBounds;
182
+ }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { ICopyable } from './interfaces/i_copyable.js';
7
+ /**
8
+ * Copy a block or workspace comment onto the local clipboard.
9
+ * @param toCopy Block or Workspace Comment to be copied.
10
+ * @alias Blockly.clipboard.copy
11
+ * @internal
12
+ */
13
+ export declare function copy(toCopy: ICopyable): void;
14
+ /**
15
+ * Private version of copy for stubbing in tests.
16
+ */
17
+ declare function copyInternal(toCopy: ICopyable): void;
18
+ /**
19
+ * Paste a block or workspace comment on to the main workspace.
20
+ * @return The pasted thing if the paste was successful, null otherwise.
21
+ * @alias Blockly.clipboard.paste
22
+ * @internal
23
+ */
24
+ export declare function paste(): ICopyable | null;
25
+ /**
26
+ * Duplicate this block and its children, or a workspace comment.
27
+ * @param toDuplicate Block or Workspace Comment to be duplicated.
28
+ * @return The block or workspace comment that was duplicated, or null if the
29
+ * duplication failed.
30
+ * @alias Blockly.clipboard.duplicate
31
+ * @internal
32
+ */
33
+ export declare function duplicate(toDuplicate: ICopyable): ICopyable | null;
34
+ /**
35
+ * Private version of duplicate for stubbing in tests.
36
+ */
37
+ declare function duplicateInternal(toDuplicate: ICopyable): ICopyable | null;
38
+ export declare const TEST_ONLY: {
39
+ duplicateInternal: typeof duplicateInternal;
40
+ copyInternal: typeof copyInternal;
41
+ };
42
+ export {};
@@ -0,0 +1,91 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview Blockly's internal clipboard for managing copy-paste.
9
+ */
10
+
11
+ /**
12
+ * Blockly's internal clipboard for managing copy-paste.
13
+ * @namespace Blockly.clipboard
14
+ */
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.clipboard');
17
+
18
+ import type {CopyData, ICopyable} from './interfaces/i_copyable.js';
19
+
20
+
21
+ /** Metadata about the object that is currently on the clipboard. */
22
+ let copyData: CopyData|null = null;
23
+
24
+ /**
25
+ * Copy a block or workspace comment onto the local clipboard.
26
+ * @param toCopy Block or Workspace Comment to be copied.
27
+ * @alias Blockly.clipboard.copy
28
+ * @internal
29
+ */
30
+ export function copy(toCopy: ICopyable) {
31
+ TEST_ONLY.copyInternal(toCopy);
32
+ }
33
+
34
+ /**
35
+ * Private version of copy for stubbing in tests.
36
+ */
37
+ function copyInternal(toCopy: ICopyable) {
38
+ copyData = toCopy.toCopyData();
39
+ }
40
+
41
+ /**
42
+ * Paste a block or workspace comment on to the main workspace.
43
+ * @return The pasted thing if the paste was successful, null otherwise.
44
+ * @alias Blockly.clipboard.paste
45
+ * @internal
46
+ */
47
+ export function paste(): ICopyable|null {
48
+ if (!copyData) {
49
+ return null;
50
+ }
51
+ // Pasting always pastes to the main workspace, even if the copy
52
+ // started in a flyout workspace.
53
+ let workspace = copyData.source;
54
+ if (workspace.isFlyout) {
55
+ workspace = workspace.targetWorkspace;
56
+ }
57
+ if (copyData.typeCounts &&
58
+ workspace.isCapacityAvailable(copyData.typeCounts)) {
59
+ return workspace.paste(copyData.saveInfo);
60
+ }
61
+ return null;
62
+ }
63
+
64
+ /**
65
+ * Duplicate this block and its children, or a workspace comment.
66
+ * @param toDuplicate Block or Workspace Comment to be duplicated.
67
+ * @return The block or workspace comment that was duplicated, or null if the
68
+ * duplication failed.
69
+ * @alias Blockly.clipboard.duplicate
70
+ * @internal
71
+ */
72
+ export function duplicate(toDuplicate: ICopyable): ICopyable|null {
73
+ return TEST_ONLY.duplicateInternal(toDuplicate);
74
+ }
75
+
76
+ /**
77
+ * Private version of duplicate for stubbing in tests.
78
+ */
79
+ function duplicateInternal(toDuplicate: ICopyable): ICopyable|null {
80
+ const oldCopyData = copyData;
81
+ copy(toDuplicate);
82
+ const pastedThing =
83
+ toDuplicate.toCopyData()?.source?.paste(copyData!.saveInfo) ?? null;
84
+ copyData = oldCopyData;
85
+ return pastedThing;
86
+ }
87
+
88
+ export const TEST_ONLY = {
89
+ duplicateInternal,
90
+ copyInternal,
91
+ }