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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (608) hide show
  1. package/blockly.min.js +401 -405
  2. package/blockly_compressed.js +398 -402
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks.d.ts +0 -5
  5. package/blocks_compressed.js +3 -3
  6. package/blocks_compressed.js.map +1 -1
  7. package/closure/goog/base.d.ts +1 -0
  8. package/closure/goog/base_minimal.d.ts +1 -0
  9. package/closure/goog/goog.d.ts +1 -0
  10. package/core/any_aliases.d.ts +1 -0
  11. package/core/block.d.ts +145 -53
  12. package/core/block_animations.d.ts +5 -0
  13. package/core/block_drag_surface.d.ts +18 -5
  14. package/core/block_dragger.d.ts +20 -5
  15. package/core/block_svg.d.ts +89 -21
  16. package/core/blockly.d.ts +29 -8
  17. package/core/blockly_options.d.ts +2 -0
  18. package/core/blocks.d.ts +2 -0
  19. package/core/browser_events.d.ts +16 -7
  20. package/core/bubble.d.ts +42 -12
  21. package/core/bubble_dragger.d.ts +9 -2
  22. package/core/bump_objects.d.ts +6 -2
  23. package/core/clipboard.d.ts +6 -2
  24. package/core/comment.d.ts +13 -3
  25. package/core/common.d.ts +35 -9
  26. package/core/component_manager.d.ts +16 -6
  27. package/core/config.d.ts +1 -0
  28. package/core/connection.d.ts +48 -18
  29. package/core/connection_checker.d.ts +16 -7
  30. package/core/connection_db.d.ts +17 -6
  31. package/core/connection_type.d.ts +2 -0
  32. package/core/constants.d.ts +3 -0
  33. package/core/contextmenu.d.ts +15 -5
  34. package/core/contextmenu_items.d.ts +15 -0
  35. package/core/contextmenu_registry.d.ts +12 -7
  36. package/core/css.d.ts +3 -0
  37. package/core/delete_area.d.ts +5 -1
  38. package/core/dialog.d.ts +14 -7
  39. package/core/drag_target.d.ts +10 -2
  40. package/core/dropdowndiv.d.ts +42 -10
  41. package/core/events/events.d.ts +1 -0
  42. package/core/events/events_abstract.d.ts +10 -3
  43. package/core/events/events_block_base.d.ts +5 -1
  44. package/core/events/events_block_change.d.ts +10 -3
  45. package/core/events/events_block_create.d.ts +6 -1
  46. package/core/events/events_block_delete.d.ts +6 -1
  47. package/core/events/events_block_drag.d.ts +5 -1
  48. package/core/events/events_block_move.d.ts +10 -3
  49. package/core/events/events_bubble_open.d.ts +6 -2
  50. package/core/events/events_click.d.ts +5 -1
  51. package/core/events/events_comment_base.d.ts +6 -1
  52. package/core/events/events_comment_change.d.ts +8 -2
  53. package/core/events/events_comment_create.d.ts +6 -1
  54. package/core/events/events_comment_delete.d.ts +6 -1
  55. package/core/events/events_comment_move.d.ts +9 -2
  56. package/core/events/events_marker_move.d.ts +5 -1
  57. package/core/events/events_selected.d.ts +5 -1
  58. package/core/events/events_theme_change.d.ts +5 -1
  59. package/core/events/events_toolbox_item_select.d.ts +5 -1
  60. package/core/events/events_trashcan_open.d.ts +5 -1
  61. package/core/events/events_ui.d.ts +5 -1
  62. package/core/events/events_ui_base.d.ts +2 -0
  63. package/core/events/events_var_base.d.ts +5 -1
  64. package/core/events/events_var_create.d.ts +6 -1
  65. package/core/events/events_var_delete.d.ts +6 -1
  66. package/core/events/events_var_rename.d.ts +6 -1
  67. package/core/events/events_viewport.d.ts +5 -1
  68. package/core/events/utils.d.ts +50 -7
  69. package/core/events/workspace_events.d.ts +5 -1
  70. package/core/extensions.d.ts +14 -4
  71. package/core/field.d.ts +93 -34
  72. package/core/field_angle.d.ts +14 -3
  73. package/core/field_checkbox.d.ts +20 -7
  74. package/core/field_colour.d.ts +22 -6
  75. package/core/field_dropdown.d.ts +28 -8
  76. package/core/field_image.d.ts +15 -4
  77. package/core/field_label.d.ts +8 -2
  78. package/core/field_label_serializable.d.ts +4 -1
  79. package/core/field_multilineinput.d.ts +21 -6
  80. package/core/field_number.d.ts +22 -6
  81. package/core/field_registry.d.ts +8 -2
  82. package/core/field_textinput.d.ts +28 -8
  83. package/core/field_variable.d.ts +36 -13
  84. package/core/flyout_base.d.ts +70 -24
  85. package/core/flyout_button.d.ts +12 -5
  86. package/core/flyout_horizontal.d.ts +14 -6
  87. package/core/flyout_metrics_manager.d.ts +6 -3
  88. package/core/flyout_vertical.d.ts +14 -6
  89. package/core/generator.d.ts +39 -20
  90. package/core/gesture.d.ts +48 -13
  91. package/core/grid.d.ts +19 -15
  92. package/core/icon.d.ts +12 -3
  93. package/core/inject.d.ts +3 -1
  94. package/core/input.d.ts +25 -10
  95. package/core/input_types.d.ts +2 -0
  96. package/core/insertion_marker_manager.d.ts +27 -9
  97. package/core/interfaces/i_ast_node_location.d.ts +2 -0
  98. package/core/interfaces/i_ast_node_location_svg.d.ts +4 -0
  99. package/core/interfaces/i_ast_node_location_with_block.d.ts +4 -1
  100. package/core/interfaces/i_autohideable.d.ts +3 -0
  101. package/core/interfaces/i_block_dragger.d.ts +7 -1
  102. package/core/interfaces/i_bounded_element.d.ts +5 -1
  103. package/core/interfaces/i_bubble.d.ts +11 -2
  104. package/core/interfaces/i_collapsible_toolbox_item.d.ts +6 -2
  105. package/core/interfaces/i_component.d.ts +2 -0
  106. package/core/interfaces/i_connection_checker.d.ts +14 -6
  107. package/core/interfaces/i_contextmenu.d.ts +2 -0
  108. package/core/interfaces/i_copyable.d.ts +3 -1
  109. package/core/interfaces/i_deletable.d.ts +4 -1
  110. package/core/interfaces/i_delete_area.d.ts +4 -1
  111. package/core/interfaces/i_drag_target.d.ts +10 -2
  112. package/core/interfaces/i_draggable.d.ts +2 -0
  113. package/core/interfaces/i_flyout.d.ts +27 -11
  114. package/core/interfaces/i_keyboard_accessible.d.ts +4 -1
  115. package/core/interfaces/i_metrics_manager.d.ts +24 -12
  116. package/core/interfaces/i_movable.d.ts +4 -1
  117. package/core/interfaces/i_positionable.d.ts +5 -1
  118. package/core/interfaces/i_registrable.d.ts +2 -0
  119. package/core/interfaces/i_registrable_field.d.ts +2 -0
  120. package/core/interfaces/i_selectable.d.ts +2 -0
  121. package/core/interfaces/i_selectable_toolbox_item.d.ts +10 -3
  122. package/core/interfaces/i_serializer.d.ts +6 -1
  123. package/core/interfaces/i_styleable.d.ts +4 -0
  124. package/core/interfaces/i_toolbox.d.ts +17 -6
  125. package/core/interfaces/i_toolbox_item.d.ts +17 -7
  126. package/core/internal_constants.d.ts +6 -0
  127. package/core/keyboard_nav/ast_node.d.ts +55 -28
  128. package/core/keyboard_nav/basic_cursor.d.ts +20 -9
  129. package/core/keyboard_nav/cursor.d.ts +11 -5
  130. package/core/keyboard_nav/marker.d.ts +9 -2
  131. package/core/keyboard_nav/tab_navigate_cursor.d.ts +4 -1
  132. package/core/main.d.ts +1 -0
  133. package/core/marker_manager.d.ts +13 -2
  134. package/core/menu.d.ts +23 -5
  135. package/core/menuitem.d.ts +22 -7
  136. package/core/metrics_manager.d.ts +30 -15
  137. package/core/msg.d.ts +1 -0
  138. package/core/mutator.d.ts +19 -7
  139. package/core/names.d.ts +20 -8
  140. package/core/options.d.ts +12 -6
  141. package/core/positionable_helpers.d.ts +11 -3
  142. package/core/procedures.d.ts +27 -10
  143. package/core/registry.d.ts +19 -8
  144. package/core/rendered_connection.d.ts +28 -7
  145. package/core/renderers/common/block_rendering.d.ts +9 -2
  146. package/core/renderers/common/constants.d.ts +49 -17
  147. package/core/renderers/common/debug.d.ts +5 -1
  148. package/core/renderers/common/debugger.d.ts +12 -1
  149. package/core/renderers/common/drawer.d.ts +12 -0
  150. package/core/renderers/common/i_path_object.d.ts +15 -0
  151. package/core/renderers/common/info.d.ts +25 -8
  152. package/core/renderers/common/marker_svg.d.ts +35 -6
  153. package/core/renderers/common/path_object.d.ts +20 -0
  154. package/core/renderers/common/renderer.d.ts +33 -12
  155. package/core/renderers/geras/constants.d.ts +2 -0
  156. package/core/renderers/geras/drawer.d.ts +2 -0
  157. package/core/renderers/geras/geras.d.ts +3 -2
  158. package/core/renderers/geras/highlight_constants.d.ts +9 -6
  159. package/core/renderers/geras/highlighter.d.ts +12 -1
  160. package/core/renderers/geras/info.d.ts +4 -1
  161. package/core/renderers/geras/measurables/inline_input.d.ts +2 -0
  162. package/core/renderers/geras/measurables/statement_input.d.ts +2 -0
  163. package/core/renderers/geras/path_object.d.ts +4 -0
  164. package/core/renderers/geras/renderer.d.ts +16 -6
  165. package/core/renderers/measurables/base.d.ts +2 -0
  166. package/core/renderers/measurables/bottom_row.d.ts +9 -3
  167. package/core/renderers/measurables/connection.d.ts +2 -0
  168. package/core/renderers/measurables/external_value_input.d.ts +2 -1
  169. package/core/renderers/measurables/field.d.ts +2 -1
  170. package/core/renderers/measurables/hat.d.ts +2 -1
  171. package/core/renderers/measurables/icon.d.ts +3 -1
  172. package/core/renderers/measurables/in_row_spacer.d.ts +2 -1
  173. package/core/renderers/measurables/inline_input.d.ts +2 -1
  174. package/core/renderers/measurables/input_connection.d.ts +2 -0
  175. package/core/renderers/measurables/input_row.d.ts +4 -1
  176. package/core/renderers/measurables/jagged_edge.d.ts +2 -1
  177. package/core/renderers/measurables/next_connection.d.ts +2 -1
  178. package/core/renderers/measurables/output_connection.d.ts +2 -1
  179. package/core/renderers/measurables/previous_connection.d.ts +2 -1
  180. package/core/renderers/measurables/round_corner.d.ts +2 -1
  181. package/core/renderers/measurables/row.d.ts +27 -5
  182. package/core/renderers/measurables/spacer_row.d.ts +2 -1
  183. package/core/renderers/measurables/square_corner.d.ts +2 -1
  184. package/core/renderers/measurables/statement_input.d.ts +2 -1
  185. package/core/renderers/measurables/top_row.d.ts +7 -3
  186. package/core/renderers/measurables/types.d.ts +54 -25
  187. package/core/renderers/minimalist/constants.d.ts +2 -0
  188. package/core/renderers/minimalist/drawer.d.ts +2 -0
  189. package/core/renderers/minimalist/info.d.ts +4 -1
  190. package/core/renderers/minimalist/minimalist.d.ts +2 -1
  191. package/core/renderers/minimalist/renderer.d.ts +8 -3
  192. package/core/renderers/thrasos/info.d.ts +4 -1
  193. package/core/renderers/thrasos/renderer.d.ts +4 -1
  194. package/core/renderers/thrasos/thrasos.d.ts +2 -1
  195. package/core/renderers/zelos/constants.d.ts +11 -3
  196. package/core/renderers/zelos/drawer.d.ts +3 -0
  197. package/core/renderers/zelos/info.d.ts +10 -5
  198. package/core/renderers/zelos/marker_svg.d.ts +5 -0
  199. package/core/renderers/zelos/measurables/bottom_row.d.ts +2 -0
  200. package/core/renderers/zelos/measurables/inputs.d.ts +2 -0
  201. package/core/renderers/zelos/measurables/row_elements.d.ts +2 -0
  202. package/core/renderers/zelos/measurables/top_row.d.ts +2 -0
  203. package/core/renderers/zelos/path_object.d.ts +8 -1
  204. package/core/renderers/zelos/renderer.d.ts +14 -6
  205. package/core/renderers/zelos/zelos.d.ts +3 -2
  206. package/core/scrollbar.d.ts +41 -9
  207. package/core/scrollbar_pair.d.ts +20 -6
  208. package/core/serialization/blocks.d.ts +10 -4
  209. package/core/serialization/exceptions.d.ts +5 -0
  210. package/core/serialization/priorities.d.ts +3 -0
  211. package/core/serialization/registry.d.ts +3 -0
  212. package/core/serialization/variables.d.ts +2 -0
  213. package/core/serialization/workspaces.d.ts +4 -1
  214. package/core/shortcut_items.d.ts +10 -0
  215. package/core/shortcut_registry.d.ts +25 -9
  216. package/core/sprites.d.ts +2 -4
  217. package/core/theme/classic.d.ts +2 -0
  218. package/core/theme/themes.d.ts +1 -0
  219. package/core/theme/zelos.d.ts +2 -0
  220. package/core/theme.d.ts +14 -3
  221. package/core/theme_manager.d.ts +10 -1
  222. package/core/toolbox/category.d.ts +42 -15
  223. package/core/toolbox/collapsible_category.d.ts +10 -3
  224. package/core/toolbox/separator.d.ts +4 -1
  225. package/core/toolbox/toolbox.d.ts +70 -22
  226. package/core/toolbox/toolbox_item.d.ts +17 -7
  227. package/core/tooltip.d.ts +22 -1
  228. package/core/touch.d.ts +18 -6
  229. package/core/touch_gesture.d.ts +16 -2
  230. package/core/trashcan.d.ts +27 -6
  231. package/core/utils/aria.d.ts +4 -0
  232. package/core/utils/array.d.ts +4 -2
  233. package/core/utils/colour.d.ts +24 -13
  234. package/core/utils/coordinate.d.ts +18 -8
  235. package/core/utils/deprecation.d.ts +6 -4
  236. package/core/utils/dom.d.ts +32 -12
  237. package/core/utils/idgenerator.d.ts +13 -3
  238. package/core/utils/keycodes.d.ts +1 -0
  239. package/core/utils/math.d.ts +7 -3
  240. package/core/utils/metrics.d.ts +1 -0
  241. package/core/utils/object.d.ts +7 -2
  242. package/core/utils/parsing.d.ts +9 -4
  243. package/core/utils/rect.d.ts +5 -3
  244. package/core/utils/sentinel.d.ts +2 -0
  245. package/core/utils/size.d.ts +4 -2
  246. package/core/utils/string.d.ts +13 -6
  247. package/core/utils/style.d.ts +14 -33
  248. package/core/utils/svg.d.ts +5 -2
  249. package/core/utils/svg_math.d.ts +15 -7
  250. package/core/utils/svg_paths.d.ts +20 -10
  251. package/core/utils/toolbox.d.ts +26 -5
  252. package/core/utils/useragent.d.ts +1 -12
  253. package/core/utils/xml.d.ts +13 -5
  254. package/core/utils.d.ts +43 -21
  255. package/core/variable_map.d.ts +26 -9
  256. package/core/variable_model.d.ts +5 -2
  257. package/core/variables.d.ts +33 -18
  258. package/core/variables_dynamic.d.ts +25 -5
  259. package/core/warning.d.ts +8 -3
  260. package/core/widgetdiv.d.ts +15 -6
  261. package/core/workspace.d.ts +80 -30
  262. package/core/workspace_audio.d.ts +6 -0
  263. package/core/workspace_comment.d.ts +33 -11
  264. package/core/workspace_comment_svg.d.ts +52 -9
  265. package/core/workspace_drag_surface_svg.d.ts +20 -14
  266. package/core/workspace_dragger.d.ts +6 -0
  267. package/core/workspace_svg.d.ts +174 -62
  268. package/core/xml.d.ts +26 -11
  269. package/core/zoom_controls.d.ts +16 -6
  270. package/core.d.ts +0 -5
  271. package/dart.d.ts +0 -5
  272. package/dart_compressed.js.map +1 -1
  273. package/index.d.ts +2 -6
  274. package/javascript.d.ts +0 -5
  275. package/javascript_compressed.js.map +1 -1
  276. package/lua.d.ts +0 -5
  277. package/lua_compressed.js.map +1 -1
  278. package/package.json +6 -3
  279. package/php.d.ts +0 -5
  280. package/php_compressed.js.map +1 -1
  281. package/python.d.ts +0 -5
  282. package/python_compressed.js.map +1 -1
  283. package/blocks/blocks.js +0 -48
  284. package/blocks/colour.js +0 -121
  285. package/blocks/lists.js +0 -996
  286. package/blocks/logic.js +0 -665
  287. package/blocks/loops.js +0 -375
  288. package/blocks/math.js +0 -594
  289. package/blocks/procedures.js +0 -1196
  290. package/blocks/text.js +0 -1000
  291. package/blocks/variables.js +0 -176
  292. package/blocks/variables_dynamic.js +0 -192
  293. package/core/any_aliases.ts +0 -1
  294. package/core/block.ts +0 -2102
  295. package/core/block_animations.ts +0 -202
  296. package/core/block_drag_surface.ts +0 -237
  297. package/core/block_dragger.ts +0 -447
  298. package/core/block_svg.ts +0 -1758
  299. package/core/blockly.js +0 -890
  300. package/core/blockly.ts +0 -749
  301. package/core/blockly_options.ts +0 -81
  302. package/core/blocks.ts +0 -29
  303. package/core/browser_events.ts +0 -289
  304. package/core/bubble.ts +0 -892
  305. package/core/bubble_dragger.ts +0 -229
  306. package/core/bump_objects.ts +0 -182
  307. package/core/clipboard.ts +0 -91
  308. package/core/comment.ts +0 -398
  309. package/core/common.ts +0 -288
  310. package/core/component_manager.ts +0 -211
  311. package/core/config.ts +0 -80
  312. package/core/connection.ts +0 -692
  313. package/core/connection_checker.ts +0 -301
  314. package/core/connection_db.ts +0 -289
  315. package/core/connection_type.ts +0 -32
  316. package/core/constants.ts +0 -29
  317. package/core/contextmenu.ts +0 -363
  318. package/core/contextmenu_items.ts +0 -576
  319. package/core/contextmenu_registry.ts +0 -179
  320. package/core/css.ts +0 -560
  321. package/core/delete_area.ts +0 -82
  322. package/core/dialog.ts +0 -127
  323. package/core/drag_target.ts +0 -94
  324. package/core/dropdowndiv.ts +0 -683
  325. package/core/events/events.ts +0 -123
  326. package/core/events/events_abstract.ts +0 -112
  327. package/core/events/events_block_base.ts +0 -65
  328. package/core/events/events_block_change.ts +0 -176
  329. package/core/events/events_block_create.ts +0 -114
  330. package/core/events/events_block_delete.ts +0 -126
  331. package/core/events/events_block_drag.ts +0 -82
  332. package/core/events/events_block_move.ts +0 -206
  333. package/core/events/events_bubble_open.ts +0 -82
  334. package/core/events/events_click.ts +0 -84
  335. package/core/events/events_comment_base.ts +0 -107
  336. package/core/events/events_comment_change.ts +0 -108
  337. package/core/events/events_comment_create.ts +0 -82
  338. package/core/events/events_comment_delete.ts +0 -77
  339. package/core/events/events_comment_move.ts +0 -154
  340. package/core/events/events_marker_move.ts +0 -99
  341. package/core/events/events_selected.ts +0 -78
  342. package/core/events/events_theme_change.ts +0 -67
  343. package/core/events/events_toolbox_item_select.ts +0 -79
  344. package/core/events/events_trashcan_open.ts +0 -68
  345. package/core/events/events_ui.ts +0 -89
  346. package/core/events/events_ui_base.ts +0 -54
  347. package/core/events/events_var_base.ts +0 -65
  348. package/core/events/events_var_create.ts +0 -88
  349. package/core/events/events_var_delete.ts +0 -88
  350. package/core/events/events_var_rename.ts +0 -89
  351. package/core/events/events_viewport.ts +0 -100
  352. package/core/events/utils.ts +0 -529
  353. package/core/events/workspace_events.ts +0 -86
  354. package/core/extensions.ts +0 -504
  355. package/core/field.ts +0 -1206
  356. package/core/field_angle.ts +0 -563
  357. package/core/field_checkbox.ts +0 -243
  358. package/core/field_colour.ts +0 -632
  359. package/core/field_dropdown.ts +0 -773
  360. package/core/field_image.ts +0 -282
  361. package/core/field_label.ts +0 -152
  362. package/core/field_label_serializable.ts +0 -76
  363. package/core/field_multilineinput.ts +0 -466
  364. package/core/field_number.ts +0 -327
  365. package/core/field_registry.ts +0 -87
  366. package/core/field_textinput.ts +0 -591
  367. package/core/field_variable.ts +0 -545
  368. package/core/flyout_base.ts +0 -1165
  369. package/core/flyout_button.ts +0 -292
  370. package/core/flyout_horizontal.ts +0 -381
  371. package/core/flyout_metrics_manager.ts +0 -94
  372. package/core/flyout_vertical.ts +0 -384
  373. package/core/generator.ts +0 -539
  374. package/core/gesture.ts +0 -946
  375. package/core/grid.ts +0 -192
  376. package/core/icon.ts +0 -189
  377. package/core/inject.ts +0 -390
  378. package/core/input.ts +0 -309
  379. package/core/input_types.ts +0 -32
  380. package/core/insertion_marker_manager.ts +0 -788
  381. package/core/interfaces/i_ast_node_location.ts +0 -23
  382. package/core/interfaces/i_ast_node_location_svg.ts +0 -37
  383. package/core/interfaces/i_ast_node_location_with_block.ts +0 -38
  384. package/core/interfaces/i_autohideable.ts +0 -34
  385. package/core/interfaces/i_block_dragger.ts +0 -67
  386. package/core/interfaces/i_bounded_element.ts +0 -42
  387. package/core/interfaces/i_bubble.ts +0 -88
  388. package/core/interfaces/i_collapsible_toolbox_item.ts +0 -47
  389. package/core/interfaces/i_component.ts +0 -32
  390. package/core/interfaces/i_connection_checker.ts +0 -102
  391. package/core/interfaces/i_contextmenu.ts +0 -26
  392. package/core/interfaces/i_copyable.ts +0 -40
  393. package/core/interfaces/i_deletable.ts +0 -29
  394. package/core/interfaces/i_delete_area.ts +0 -46
  395. package/core/interfaces/i_drag_target.ts +0 -84
  396. package/core/interfaces/i_draggable.ts +0 -25
  397. package/core/interfaces/i_flyout.ts +0 -186
  398. package/core/interfaces/i_keyboard_accessible.ts +0 -35
  399. package/core/interfaces/i_metrics_manager.ts +0 -151
  400. package/core/interfaces/i_movable.ts +0 -29
  401. package/core/interfaces/i_positionable.ts +0 -50
  402. package/core/interfaces/i_registrable.ts +0 -25
  403. package/core/interfaces/i_registrable_field.ts +0 -31
  404. package/core/interfaces/i_selectable.ts +0 -34
  405. package/core/interfaces/i_selectable_toolbox_item.ts +0 -64
  406. package/core/interfaces/i_serializer.ts +0 -65
  407. package/core/interfaces/i_styleable.ts +0 -35
  408. package/core/interfaces/i_toolbox.ts +0 -127
  409. package/core/interfaces/i_toolbox_item.ts +0 -84
  410. package/core/internal_constants.ts +0 -67
  411. package/core/keyboard_nav/ast_node.ts +0 -717
  412. package/core/keyboard_nav/basic_cursor.ts +0 -214
  413. package/core/keyboard_nav/cursor.ts +0 -134
  414. package/core/keyboard_nav/marker.ts +0 -115
  415. package/core/keyboard_nav/tab_navigate_cursor.ts +0 -48
  416. package/core/main.js +0 -303
  417. package/core/marker_manager.ts +0 -181
  418. package/core/menu.ts +0 -449
  419. package/core/menuitem.ts +0 -240
  420. package/core/metrics_manager.ts +0 -456
  421. package/core/msg.ts +0 -20
  422. package/core/mutator.ts +0 -560
  423. package/core/names.ts +0 -267
  424. package/core/options.ts +0 -365
  425. package/core/positionable_helpers.ts +0 -181
  426. package/core/procedures.ts +0 -443
  427. package/core/registry.ts +0 -339
  428. package/core/rendered_connection.ts +0 -568
  429. package/core/renderers/common/block_rendering.ts +0 -164
  430. package/core/renderers/common/constants.ts +0 -1124
  431. package/core/renderers/common/debug.ts +0 -61
  432. package/core/renderers/common/debugger.ts +0 -433
  433. package/core/renderers/common/drawer.ts +0 -450
  434. package/core/renderers/common/i_path_object.ts +0 -161
  435. package/core/renderers/common/info.ts +0 -718
  436. package/core/renderers/common/marker_svg.ts +0 -680
  437. package/core/renderers/common/path_object.ts +0 -272
  438. package/core/renderers/common/renderer.ts +0 -271
  439. package/core/renderers/geras/constants.ts +0 -61
  440. package/core/renderers/geras/drawer.ts +0 -176
  441. package/core/renderers/geras/geras.ts +0 -37
  442. package/core/renderers/geras/highlight_constants.ts +0 -337
  443. package/core/renderers/geras/highlighter.ts +0 -306
  444. package/core/renderers/geras/info.ts +0 -450
  445. package/core/renderers/geras/measurables/inline_input.ts +0 -51
  446. package/core/renderers/geras/measurables/statement_input.ts +0 -50
  447. package/core/renderers/geras/path_object.ts +0 -138
  448. package/core/renderers/geras/renderer.ts +0 -126
  449. package/core/renderers/measurables/base.ts +0 -53
  450. package/core/renderers/measurables/bottom_row.ts +0 -120
  451. package/core/renderers/measurables/connection.ts +0 -52
  452. package/core/renderers/measurables/external_value_input.ts +0 -65
  453. package/core/renderers/measurables/field.ts +0 -63
  454. package/core/renderers/measurables/hat.ts +0 -48
  455. package/core/renderers/measurables/icon.ts +0 -54
  456. package/core/renderers/measurables/in_row_spacer.ts +0 -44
  457. package/core/renderers/measurables/inline_input.ts +0 -76
  458. package/core/renderers/measurables/input_connection.ts +0 -66
  459. package/core/renderers/measurables/input_row.ts +0 -82
  460. package/core/renderers/measurables/jagged_edge.ts +0 -43
  461. package/core/renderers/measurables/next_connection.ts +0 -47
  462. package/core/renderers/measurables/output_connection.ts +0 -56
  463. package/core/renderers/measurables/previous_connection.ts +0 -47
  464. package/core/renderers/measurables/round_corner.ts +0 -49
  465. package/core/renderers/measurables/row.ts +0 -225
  466. package/core/renderers/measurables/spacer_row.ts +0 -55
  467. package/core/renderers/measurables/square_corner.ts +0 -47
  468. package/core/renderers/measurables/statement_input.ts +0 -55
  469. package/core/renderers/measurables/top_row.ts +0 -122
  470. package/core/renderers/measurables/types.ts +0 -332
  471. package/core/renderers/minimalist/constants.ts +0 -32
  472. package/core/renderers/minimalist/drawer.ts +0 -38
  473. package/core/renderers/minimalist/info.ts +0 -52
  474. package/core/renderers/minimalist/minimalist.ts +0 -22
  475. package/core/renderers/minimalist/renderer.ts +0 -71
  476. package/core/renderers/thrasos/info.ts +0 -338
  477. package/core/renderers/thrasos/renderer.ts +0 -48
  478. package/core/renderers/thrasos/thrasos.ts +0 -20
  479. package/core/renderers/zelos/constants.ts +0 -858
  480. package/core/renderers/zelos/drawer.ts +0 -228
  481. package/core/renderers/zelos/info.ts +0 -593
  482. package/core/renderers/zelos/marker_svg.ts +0 -151
  483. package/core/renderers/zelos/measurables/bottom_row.ts +0 -53
  484. package/core/renderers/zelos/measurables/inputs.ts +0 -56
  485. package/core/renderers/zelos/measurables/row_elements.ts +0 -45
  486. package/core/renderers/zelos/measurables/top_row.ts +0 -58
  487. package/core/renderers/zelos/path_object.ts +0 -215
  488. package/core/renderers/zelos/renderer.ts +0 -142
  489. package/core/renderers/zelos/zelos.ts +0 -39
  490. package/core/scrollbar.ts +0 -870
  491. package/core/scrollbar_pair.ts +0 -321
  492. package/core/serialization/blocks.ts +0 -706
  493. package/core/serialization/exceptions.ts +0 -98
  494. package/core/serialization/priorities.ts +0 -32
  495. package/core/serialization/registry.ts +0 -43
  496. package/core/serialization/variables.ts +0 -96
  497. package/core/serialization/workspaces.ts +0 -106
  498. package/core/shortcut_items.ts +0 -266
  499. package/core/shortcut_registry.ts +0 -355
  500. package/core/sprites.ts +0 -29
  501. package/core/theme/classic.ts +0 -54
  502. package/core/theme/themes.ts +0 -22
  503. package/core/theme/zelos.ts +0 -91
  504. package/core/theme.ts +0 -221
  505. package/core/theme_manager.ts +0 -186
  506. package/core/toolbox/category.ts +0 -679
  507. package/core/toolbox/collapsible_category.ts +0 -273
  508. package/core/toolbox/separator.ts +0 -105
  509. package/core/toolbox/toolbox.ts +0 -1044
  510. package/core/toolbox/toolbox_item.ts +0 -147
  511. package/core/tooltip.ts +0 -463
  512. package/core/touch.ts +0 -306
  513. package/core/touch_gesture.ts +0 -295
  514. package/core/trashcan.ts +0 -671
  515. package/core/utils/aria.ts +0 -160
  516. package/core/utils/array.ts +0 -32
  517. package/core/utils/colour.ts +0 -276
  518. package/core/utils/coordinate.ts +0 -124
  519. package/core/utils/deprecation.ts +0 -41
  520. package/core/utils/dom.ts +0 -408
  521. package/core/utils/idgenerator.ts +0 -80
  522. package/core/utils/keycodes.ts +0 -169
  523. package/core/utils/math.ts +0 -61
  524. package/core/utils/metrics.ts +0 -97
  525. package/core/utils/object.ts +0 -95
  526. package/core/utils/parsing.ts +0 -261
  527. package/core/utils/rect.ts +0 -62
  528. package/core/utils/sentinel.ts +0 -23
  529. package/core/utils/size.ts +0 -51
  530. package/core/utils/string.ts +0 -308
  531. package/core/utils/style.ts +0 -306
  532. package/core/utils/svg.ts +0 -88
  533. package/core/utils/svg_math.ts +0 -269
  534. package/core/utils/svg_paths.ts +0 -140
  535. package/core/utils/toolbox.ts +0 -433
  536. package/core/utils/useragent.ts +0 -135
  537. package/core/utils/xml.ts +0 -97
  538. package/core/utils.ts +0 -428
  539. package/core/variable_map.ts +0 -392
  540. package/core/variable_model.ts +0 -82
  541. package/core/variables.ts +0 -596
  542. package/core/variables_dynamic.ts +0 -133
  543. package/core/warning.ts +0 -161
  544. package/core/widgetdiv.ts +0 -257
  545. package/core/workspace.ts +0 -801
  546. package/core/workspace_audio.ts +0 -156
  547. package/core/workspace_comment.ts +0 -398
  548. package/core/workspace_comment_svg.ts +0 -1127
  549. package/core/workspace_drag_surface_svg.ts +0 -187
  550. package/core/workspace_dragger.ts +0 -104
  551. package/core/workspace_svg.ts +0 -2655
  552. package/core/xml.ts +0 -1023
  553. package/core/zoom_controls.ts +0 -441
  554. package/generators/dart/all.js +0 -27
  555. package/generators/dart/colour.js +0 -105
  556. package/generators/dart/lists.js +0 -431
  557. package/generators/dart/logic.js +0 -123
  558. package/generators/dart/loops.js +0 -161
  559. package/generators/dart/math.js +0 -446
  560. package/generators/dart/procedures.js +0 -105
  561. package/generators/dart/text.js +0 -338
  562. package/generators/dart/variables.js +0 -32
  563. package/generators/dart/variables_dynamic.js +0 -21
  564. package/generators/dart.js +0 -303
  565. package/generators/javascript/all.js +0 -27
  566. package/generators/javascript/colour.js +0 -85
  567. package/generators/javascript/lists.js +0 -405
  568. package/generators/javascript/logic.js +0 -127
  569. package/generators/javascript/loops.js +0 -180
  570. package/generators/javascript/math.js +0 -401
  571. package/generators/javascript/procedures.js +0 -110
  572. package/generators/javascript/text.js +0 -371
  573. package/generators/javascript/variables.js +0 -32
  574. package/generators/javascript/variables_dynamic.js +0 -21
  575. package/generators/javascript.js +0 -322
  576. package/generators/lua/all.js +0 -27
  577. package/generators/lua/colour.js +0 -71
  578. package/generators/lua/lists.js +0 -348
  579. package/generators/lua/logic.js +0 -112
  580. package/generators/lua/loops.js +0 -168
  581. package/generators/lua/math.js +0 -406
  582. package/generators/lua/procedures.js +0 -106
  583. package/generators/lua/text.js +0 -327
  584. package/generators/lua/variables.js +0 -31
  585. package/generators/lua/variables_dynamic.js +0 -21
  586. package/generators/lua.js +0 -206
  587. package/generators/php/all.js +0 -27
  588. package/generators/php/colour.js +0 -81
  589. package/generators/php/lists.js +0 -481
  590. package/generators/php/logic.js +0 -119
  591. package/generators/php/loops.js +0 -161
  592. package/generators/php/math.js +0 -349
  593. package/generators/php/procedures.js +0 -125
  594. package/generators/php/text.js +0 -255
  595. package/generators/php/variables.js +0 -32
  596. package/generators/php/variables_dynamic.js +0 -21
  597. package/generators/php.js +0 -303
  598. package/generators/python/all.js +0 -27
  599. package/generators/python/colour.js +0 -67
  600. package/generators/python/lists.js +0 -346
  601. package/generators/python/logic.js +0 -120
  602. package/generators/python/loops.js +0 -206
  603. package/generators/python/math.js +0 -373
  604. package/generators/python/procedures.js +0 -129
  605. package/generators/python/text.js +0 -291
  606. package/generators/python/variables.js +0 -32
  607. package/generators/python/variables_dynamic.js +0 -21
  608. package/generators/python.js +0 -333
@@ -1,100 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2020 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview Events fired as a result of a viewport change.
9
- */
10
-
11
- /**
12
- * Events fired as a result of a viewport change.
13
- * @class
14
- */
15
- import * as goog from '../../closure/goog/goog.js';
16
- goog.declareModuleId('Blockly.Events.ViewportChange');
17
-
18
- import * as registry from '../registry.js';
19
-
20
- import {UiBase} from './events_ui_base.js';
21
- import * as eventUtils from './utils.js';
22
-
23
-
24
- /**
25
- * Class for a viewport change event.
26
- * @alias Blockly.Events.ViewportChange
27
- */
28
- export class ViewportChange extends UiBase {
29
- viewTop?: number;
30
- viewLeft?: number;
31
- scale?: number;
32
- oldScale?: number;
33
- override type: string;
34
-
35
- /**
36
- * @param opt_top Top-edge of the visible portion of the workspace, relative
37
- * to the workspace origin. Undefined for a blank event.
38
- * @param opt_left Left-edge of the visible portion of the workspace relative
39
- * to the workspace origin. Undefined for a blank event.
40
- * @param opt_scale The scale of the workspace. Undefined for a blank event.
41
- * @param opt_workspaceId The workspace identifier for this event.
42
- * Undefined for a blank event.
43
- * @param opt_oldScale The old scale of the workspace. Undefined for a blank
44
- * event.
45
- */
46
- constructor(
47
- opt_top?: number, opt_left?: number, opt_scale?: number,
48
- opt_workspaceId?: string, opt_oldScale?: number) {
49
- super(opt_workspaceId);
50
-
51
- /**
52
- * Top-edge of the visible portion of the workspace, relative to the
53
- * workspace origin.
54
- */
55
- this.viewTop = opt_top;
56
-
57
- /**
58
- * Left-edge of the visible portion of the workspace, relative to the
59
- * workspace origin.
60
- */
61
- this.viewLeft = opt_left;
62
-
63
- /** The scale of the workspace. */
64
- this.scale = opt_scale;
65
-
66
- /** The old scale of the workspace. */
67
- this.oldScale = opt_oldScale;
68
-
69
- /** Type of this event. */
70
- this.type = eventUtils.VIEWPORT_CHANGE;
71
- }
72
-
73
- /**
74
- * Encode the event as JSON.
75
- * @return JSON representation.
76
- */
77
- override toJson(): AnyDuringMigration {
78
- const json = super.toJson();
79
- json['viewTop'] = this.viewTop;
80
- json['viewLeft'] = this.viewLeft;
81
- json['scale'] = this.scale;
82
- json['oldScale'] = this.oldScale;
83
- return json;
84
- }
85
-
86
- /**
87
- * Decode the JSON event.
88
- * @param json JSON representation.
89
- */
90
- override fromJson(json: AnyDuringMigration) {
91
- super.fromJson(json);
92
- this.viewTop = json['viewTop'];
93
- this.viewLeft = json['viewLeft'];
94
- this.scale = json['scale'];
95
- this.oldScale = json['oldScale'];
96
- }
97
- }
98
-
99
- registry.register(
100
- registry.Type.EVENT, eventUtils.VIEWPORT_CHANGE, ViewportChange);
@@ -1,529 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2021 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview Helper methods for events that are fired as a result of
9
- * actions in Blockly's editor.
10
- */
11
-
12
- /**
13
- * Helper methods for events that are fired as a result of
14
- * actions in Blockly's editor.
15
- * @namespace Blockly.Events.utils
16
- */
17
- import * as goog from '../../closure/goog/goog.js';
18
- goog.declareModuleId('Blockly.Events.utils');
19
-
20
- import type {Block} from '../block.js';
21
- import * as common from '../common.js';
22
- import * as registry from '../registry.js';
23
- import * as idGenerator from '../utils/idgenerator.js';
24
- import type {Workspace} from '../workspace.js';
25
- import type {WorkspaceSvg} from '../workspace_svg.js';
26
-
27
- import type {Abstract} from './events_abstract.js';
28
- import type {BlockChange} from './events_block_change.js';
29
- import type {BlockCreate} from './events_block_create.js';
30
- import type {BlockMove} from './events_block_move.js';
31
- import type {CommentCreate} from './events_comment_create.js';
32
- import type {CommentMove} from './events_comment_move.js';
33
- import type {ViewportChange} from './events_viewport.js';
34
-
35
-
36
- /** Group ID for new events. Grouped events are indivisible. */
37
- let group = '';
38
-
39
- /** Sets whether the next event should be added to the undo stack. */
40
- let recordUndo = true;
41
-
42
- /**
43
- * Sets whether events should be added to the undo stack.
44
- * @param newValue True if events should be added to the undo stack.
45
- * @alias Blockly.Events.utils.setRecordUndo
46
- */
47
- export function setRecordUndo(newValue: boolean) {
48
- recordUndo = newValue;
49
- }
50
-
51
- /**
52
- * Returns whether or not events will be added to the undo stack.
53
- * @returns True if events will be added to the undo stack.
54
- * @alias Blockly.Events.utils.getRecordUndo
55
- */
56
- export function getRecordUndo(): boolean {
57
- return recordUndo;
58
- }
59
-
60
- /** Allow change events to be created and fired. */
61
- let disabled = 0;
62
-
63
- /**
64
- * Name of event that creates a block. Will be deprecated for BLOCK_CREATE.
65
- * @alias Blockly.Events.utils.CREATE
66
- */
67
- export const CREATE = 'create';
68
-
69
- /**
70
- * Name of event that creates a block.
71
- * @alias Blockly.Events.utils.BLOCK_CREATE
72
- */
73
- export const BLOCK_CREATE = CREATE;
74
-
75
- /**
76
- * Name of event that deletes a block. Will be deprecated for BLOCK_DELETE.
77
- * @alias Blockly.Events.utils.DELETE
78
- */
79
- export const DELETE = 'delete';
80
-
81
- /**
82
- * Name of event that deletes a block.
83
- * @alias Blockly.Events.utils.BLOCK_DELETE
84
- */
85
- export const BLOCK_DELETE = DELETE;
86
-
87
- /**
88
- * Name of event that changes a block. Will be deprecated for BLOCK_CHANGE.
89
- * @alias Blockly.Events.utils.CHANGE
90
- */
91
- export const CHANGE = 'change';
92
-
93
- /**
94
- * Name of event that changes a block.
95
- * @alias Blockly.Events.utils.BLOCK_CHANGE
96
- */
97
- export const BLOCK_CHANGE = CHANGE;
98
-
99
- /**
100
- * Name of event that moves a block. Will be deprecated for BLOCK_MOVE.
101
- * @alias Blockly.Events.utils.MOVE
102
- */
103
- export const MOVE = 'move';
104
-
105
- /**
106
- * Name of event that moves a block.
107
- * @alias Blockly.Events.utils.BLOCK_MOVE
108
- */
109
- export const BLOCK_MOVE = MOVE;
110
-
111
- /**
112
- * Name of event that creates a variable.
113
- * @alias Blockly.Events.utils.VAR_CREATE
114
- */
115
- export const VAR_CREATE = 'var_create';
116
-
117
- /**
118
- * Name of event that deletes a variable.
119
- * @alias Blockly.Events.utils.VAR_DELETE
120
- */
121
- export const VAR_DELETE = 'var_delete';
122
-
123
- /**
124
- * Name of event that renames a variable.
125
- * @alias Blockly.Events.utils.VAR_RENAME
126
- */
127
- export const VAR_RENAME = 'var_rename';
128
-
129
- /**
130
- * Name of generic event that records a UI change.
131
- * @alias Blockly.Events.utils.UI
132
- */
133
- export const UI = 'ui';
134
-
135
- /**
136
- * Name of event that record a block drags a block.
137
- * @alias Blockly.Events.utils.BLOCK_DRAG
138
- */
139
- export const BLOCK_DRAG = 'drag';
140
-
141
- /**
142
- * Name of event that records a change in selected element.
143
- * @alias Blockly.Events.utils.SELECTED
144
- */
145
- export const SELECTED = 'selected';
146
-
147
- /**
148
- * Name of event that records a click.
149
- * @alias Blockly.Events.utils.CLICK
150
- */
151
- export const CLICK = 'click';
152
-
153
- /**
154
- * Name of event that records a marker move.
155
- * @alias Blockly.Events.utils.MARKER_MOVE
156
- */
157
- export const MARKER_MOVE = 'marker_move';
158
-
159
- /**
160
- * Name of event that records a bubble open.
161
- * @alias Blockly.Events.utils.BUBBLE_OPEN
162
- */
163
- export const BUBBLE_OPEN = 'bubble_open';
164
-
165
- /**
166
- * Name of event that records a trashcan open.
167
- * @alias Blockly.Events.utils.TRASHCAN_OPEN
168
- */
169
- export const TRASHCAN_OPEN = 'trashcan_open';
170
-
171
- /**
172
- * Name of event that records a toolbox item select.
173
- * @alias Blockly.Events.utils.TOOLBOX_ITEM_SELECT
174
- */
175
- export const TOOLBOX_ITEM_SELECT = 'toolbox_item_select';
176
-
177
- /**
178
- * Name of event that records a theme change.
179
- * @alias Blockly.Events.utils.THEME_CHANGE
180
- */
181
- export const THEME_CHANGE = 'theme_change';
182
-
183
- /**
184
- * Name of event that records a viewport change.
185
- * @alias Blockly.Events.utils.VIEWPORT_CHANGE
186
- */
187
- export const VIEWPORT_CHANGE = 'viewport_change';
188
-
189
- /**
190
- * Name of event that creates a comment.
191
- * @alias Blockly.Events.utils.COMMENT_CREATE
192
- */
193
- export const COMMENT_CREATE = 'comment_create';
194
-
195
- /**
196
- * Name of event that deletes a comment.
197
- * @alias Blockly.Events.utils.COMMENT_DELETE
198
- */
199
- export const COMMENT_DELETE = 'comment_delete';
200
-
201
- /**
202
- * Name of event that changes a comment.
203
- * @alias Blockly.Events.utils.COMMENT_CHANGE
204
- */
205
- export const COMMENT_CHANGE = 'comment_change';
206
-
207
- /**
208
- * Name of event that moves a comment.
209
- * @alias Blockly.Events.utils.COMMENT_MOVE
210
- */
211
- export const COMMENT_MOVE = 'comment_move';
212
-
213
- /**
214
- * Name of event that records a workspace load.
215
- * @alias Blockly.Events.utils.FINISHED_LOADING
216
- */
217
- export const FINISHED_LOADING = 'finished_loading';
218
-
219
- /**
220
- * Type of events that cause objects to be bumped back into the visible
221
- * portion of the workspace.
222
- *
223
- * Not to be confused with bumping so that disconnected connections do not
224
- * appear connected.
225
- * @alias Blockly.Events.utils.BumpEvent
226
- */
227
- export type BumpEvent = BlockCreate|BlockMove|CommentCreate|CommentMove;
228
-
229
- /**
230
- * List of events that cause objects to be bumped back into the visible
231
- * portion of the workspace.
232
- *
233
- * Not to be confused with bumping so that disconnected connections do not
234
- * appear connected.
235
- * @alias Blockly.Events.utils.BUMP_EVENTS
236
- */
237
- export const BUMP_EVENTS: string[] =
238
- [BLOCK_CREATE, BLOCK_MOVE, COMMENT_CREATE, COMMENT_MOVE];
239
-
240
- /** List of events queued for firing. */
241
- const FIRE_QUEUE: Abstract[] = [];
242
-
243
- /**
244
- * Create a custom event and fire it.
245
- * @param event Custom data for event.
246
- * @alias Blockly.Events.utils.fire
247
- */
248
- export function fire(event: Abstract) {
249
- TEST_ONLY.fireInternal(event);
250
- }
251
-
252
- /**
253
- * Private version of fireInternal for stubbing in tests.
254
- */
255
- function fireInternal(event: Abstract) {
256
- if (!isEnabled()) {
257
- return;
258
- }
259
- if (!FIRE_QUEUE.length) {
260
- // First event added; schedule a firing of the event queue.
261
- setTimeout(fireNow, 0);
262
- }
263
- FIRE_QUEUE.push(event);
264
- }
265
-
266
-
267
- /** Fire all queued events. */
268
- function fireNow() {
269
- const queue = filter(FIRE_QUEUE, true);
270
- FIRE_QUEUE.length = 0;
271
- for (let i = 0, event; event = queue[i]; i++) {
272
- if (!event.workspaceId) {
273
- continue;
274
- }
275
- const eventWorkspace = common.getWorkspaceById(event.workspaceId);
276
- if (eventWorkspace) {
277
- eventWorkspace.fireChangeListener(event);
278
- }
279
- }
280
- }
281
-
282
- /**
283
- * Filter the queued events and merge duplicates.
284
- * @param queueIn Array of events.
285
- * @param forward True if forward (redo), false if backward (undo).
286
- * @return Array of filtered events.
287
- * @alias Blockly.Events.utils.filter
288
- */
289
- export function filter(queueIn: Abstract[], forward: boolean): Abstract[] {
290
- let queue = queueIn.slice();
291
- // Shallow copy of queue.
292
- if (!forward) {
293
- // Undo is merged in reverse order.
294
- queue.reverse();
295
- }
296
- const mergedQueue = [];
297
- const hash = Object.create(null);
298
- // Merge duplicates.
299
- for (let i = 0, event; event = queue[i]; i++) {
300
- if (!event.isNull()) {
301
- // Treat all UI events as the same type in hash table.
302
- const eventType = event.isUiEvent ? UI : event.type;
303
- // TODO(#5927): Check whether `blockId` exists before accessing it.
304
- const blockId = (event as AnyDuringMigration).blockId;
305
- const key = [eventType, blockId, event.workspaceId].join(' ');
306
-
307
- const lastEntry = hash[key];
308
- const lastEvent = lastEntry ? lastEntry.event : null;
309
- if (!lastEntry) {
310
- // Each item in the hash table has the event and the index of that event
311
- // in the input array. This lets us make sure we only merge adjacent
312
- // move events.
313
- hash[key] = {event, index: i};
314
- mergedQueue.push(event);
315
- } else if (event.type === MOVE && lastEntry.index === i - 1) {
316
- const moveEvent = event as BlockMove;
317
- // Merge move events.
318
- lastEvent.newParentId = moveEvent.newParentId;
319
- lastEvent.newInputName = moveEvent.newInputName;
320
- lastEvent.newCoordinate = moveEvent.newCoordinate;
321
- lastEntry.index = i;
322
- } else if (
323
- event.type === CHANGE &&
324
- (event as BlockChange).element === lastEvent.element &&
325
- (event as BlockChange).name === lastEvent.name) {
326
- const changeEvent = event as BlockChange;
327
- // Merge change events.
328
- lastEvent.newValue = changeEvent.newValue;
329
- } else if (event.type === VIEWPORT_CHANGE) {
330
- const viewportEvent = event as ViewportChange;
331
- // Merge viewport change events.
332
- lastEvent.viewTop = viewportEvent.viewTop;
333
- lastEvent.viewLeft = viewportEvent.viewLeft;
334
- lastEvent.scale = viewportEvent.scale;
335
- lastEvent.oldScale = viewportEvent.oldScale;
336
- } else if (event.type === CLICK && lastEvent.type === BUBBLE_OPEN) {
337
- // Drop click events caused by opening/closing bubbles.
338
- } else {
339
- // Collision: newer events should merge into this event to maintain
340
- // order.
341
- hash[key] = {event, index: i};
342
- mergedQueue.push(event);
343
- }
344
- }
345
- }
346
- // Filter out any events that have become null due to merging.
347
- queue = mergedQueue.filter(function(e) {
348
- return !e.isNull();
349
- });
350
- if (!forward) {
351
- // Restore undo order.
352
- queue.reverse();
353
- }
354
- // Move mutation events to the top of the queue.
355
- // Intentionally skip first event.
356
- for (let i = 1, event; event = queue[i]; i++) {
357
- // AnyDuringMigration because: Property 'element' does not exist on type
358
- // 'Abstract'.
359
- if (event.type === CHANGE &&
360
- (event as AnyDuringMigration).element === 'mutation') {
361
- queue.unshift(queue.splice(i, 1)[0]);
362
- }
363
- }
364
- return queue;
365
- }
366
-
367
- /**
368
- * Modify pending undo events so that when they are fired they don't land
369
- * in the undo stack. Called by Workspace.clearUndo.
370
- * @alias Blockly.Events.utils.clearPendingUndo
371
- */
372
- export function clearPendingUndo() {
373
- for (let i = 0, event; event = FIRE_QUEUE[i]; i++) {
374
- event.recordUndo = false;
375
- }
376
- }
377
-
378
- /**
379
- * Stop sending events. Every call to this function MUST also call enable.
380
- * @alias Blockly.Events.utils.disable
381
- */
382
- export function disable() {
383
- disabled++;
384
- }
385
-
386
- /**
387
- * Start sending events. Unless events were already disabled when the
388
- * corresponding call to disable was made.
389
- * @alias Blockly.Events.utils.enable
390
- */
391
- export function enable() {
392
- disabled--;
393
- }
394
-
395
- /**
396
- * Returns whether events may be fired or not.
397
- * @return True if enabled.
398
- * @alias Blockly.Events.utils.isEnabled
399
- */
400
- export function isEnabled(): boolean {
401
- return disabled === 0;
402
- }
403
-
404
- /**
405
- * Current group.
406
- * @return ID string.
407
- * @alias Blockly.Events.utils.getGroup
408
- */
409
- export function getGroup(): string {
410
- return group;
411
- }
412
-
413
- /**
414
- * Start or stop a group.
415
- * @param state True to start new group, false to end group.
416
- * String to set group explicitly.
417
- * @alias Blockly.Events.utils.setGroup
418
- */
419
- export function setGroup(state: boolean|string) {
420
- TEST_ONLY.setGroupInternal(state);
421
- }
422
-
423
- /**
424
- * Private version of setGroup for stubbing in tests.
425
- */
426
- function setGroupInternal(state: boolean|string) {
427
- if (typeof state === 'boolean') {
428
- group = state ? idGenerator.genUid() : '';
429
- } else {
430
- group = state;
431
- }
432
- }
433
-
434
- /**
435
- * Compute a list of the IDs of the specified block and all its descendants.
436
- * @param block The root block.
437
- * @return List of block IDs.
438
- * @alias Blockly.Events.utils.getDescendantIds
439
- * @internal
440
- */
441
- export function getDescendantIds(block: Block): string[] {
442
- const ids = [];
443
- const descendants = block.getDescendants(false);
444
- for (let i = 0, descendant; descendant = descendants[i]; i++) {
445
- ids[i] = descendant.id;
446
- }
447
- return ids;
448
- }
449
-
450
- /**
451
- * Decode the JSON into an event.
452
- * @param json JSON representation.
453
- * @param workspace Target workspace for event.
454
- * @return The event represented by the JSON.
455
- * @throws {Error} if an event type is not found in the registry.
456
- * @alias Blockly.Events.utils.fromJson
457
- */
458
- export function fromJson(
459
- json: AnyDuringMigration, workspace: Workspace): Abstract {
460
- const eventClass = get(json['type']);
461
- if (!eventClass) {
462
- throw Error('Unknown event type.');
463
- }
464
- const event = new eventClass();
465
- event.fromJson(json);
466
- event.workspaceId = workspace.id;
467
- return event;
468
- }
469
-
470
- /**
471
- * Gets the class for a specific event type from the registry.
472
- * @param eventType The type of the event to get.
473
- * @return The event class with the given type or null if none exists.
474
- * @alias Blockly.Events.utils.get
475
- */
476
- export function get(eventType: string):
477
- (new (...p1: AnyDuringMigration[]) => Abstract)|null {
478
- return registry.getClass(registry.Type.EVENT, eventType);
479
- }
480
-
481
- /**
482
- * Enable/disable a block depending on whether it is properly connected.
483
- * Use this on applications where all blocks should be connected to a top block.
484
- * Recommend setting the 'disable' option to 'false' in the config so that
485
- * users don't try to re-enable disabled orphan blocks.
486
- * @param event Custom data for event.
487
- * @alias Blockly.Events.utils.disableOrphans
488
- */
489
- export function disableOrphans(event: Abstract) {
490
- if (event.type === MOVE || event.type === CREATE) {
491
- const blockEvent = event as BlockMove | BlockCreate;
492
- if (!blockEvent.workspaceId) {
493
- return;
494
- }
495
- const eventWorkspace =
496
- common.getWorkspaceById(blockEvent.workspaceId) as WorkspaceSvg;
497
- let block = eventWorkspace.getBlockById(blockEvent.blockId);
498
- if (block) {
499
- // Changing blocks as part of this event shouldn't be undoable.
500
- const initialUndoFlag = recordUndo;
501
- try {
502
- recordUndo = false;
503
- const parent = block.getParent();
504
- if (parent && parent.isEnabled()) {
505
- const children = block.getDescendants(false);
506
- for (let i = 0, child; child = children[i]; i++) {
507
- child.setEnabled(true);
508
- }
509
- } else if (
510
- (block.outputConnection || block.previousConnection) &&
511
- !eventWorkspace.isDragging()) {
512
- do {
513
- block.setEnabled(false);
514
- block = block.getNextBlock();
515
- } while (block);
516
- }
517
- } finally {
518
- recordUndo = initialUndoFlag;
519
- }
520
- }
521
- }
522
- }
523
-
524
- export const TEST_ONLY = {
525
- FIRE_QUEUE,
526
- fireNow,
527
- fireInternal,
528
- setGroupInternal,
529
- };
@@ -1,86 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2019 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview Class for a finished loading workspace event.
9
- */
10
-
11
- /**
12
- * Class for a finished loading workspace event.
13
- * @class
14
- */
15
- import * as goog from '../../closure/goog/goog.js';
16
- goog.declareModuleId('Blockly.Events.FinishedLoading');
17
-
18
- import * as registry from '../registry.js';
19
- import type {Workspace} from '../workspace.js';
20
-
21
- import {Abstract as AbstractEvent} from './events_abstract.js';
22
- import * as eventUtils from './utils.js';
23
-
24
-
25
- /**
26
- * Class for a finished loading event.
27
- * Used to notify the developer when the workspace has finished loading (i.e
28
- * domToWorkspace).
29
- * Finished loading events do not record undo or redo.
30
- * @alias Blockly.Events.FinishedLoading
31
- */
32
- export class FinishedLoading extends AbstractEvent {
33
- override isBlank: boolean;
34
- override workspaceId: string;
35
-
36
- // Workspace events do not undo or redo.
37
- override recordUndo = false;
38
- override type: string;
39
- override group: AnyDuringMigration;
40
-
41
- /**
42
- * @param opt_workspace The workspace that has finished loading. Undefined
43
- * for a blank event.
44
- */
45
- constructor(opt_workspace?: Workspace) {
46
- super();
47
- /** Whether or not the event is blank (to be populated by fromJson). */
48
- this.isBlank = typeof opt_workspace === 'undefined';
49
-
50
- /** The workspace identifier for this event. */
51
- this.workspaceId = opt_workspace ? opt_workspace.id : '';
52
-
53
- /** Type of this event. */
54
- this.type = eventUtils.FINISHED_LOADING;
55
- }
56
-
57
- /**
58
- * Encode the event as JSON.
59
- * @return JSON representation.
60
- */
61
- override toJson(): AnyDuringMigration {
62
- const json = {
63
- 'type': this.type,
64
- };
65
- if (this.group) {
66
- (json as AnyDuringMigration)['group'] = this.group;
67
- }
68
- if (this.workspaceId) {
69
- (json as AnyDuringMigration)['workspaceId'] = this.workspaceId;
70
- }
71
- return json;
72
- }
73
-
74
- /**
75
- * Decode the JSON event.
76
- * @param json JSON representation.
77
- */
78
- override fromJson(json: AnyDuringMigration) {
79
- this.isBlank = false;
80
- this.workspaceId = json['workspaceId'];
81
- this.group = json['group'];
82
- }
83
- }
84
-
85
- registry.register(
86
- registry.Type.EVENT, eventUtils.FINISHED_LOADING, FinishedLoading);