blockly 8.0.5 → 9.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (736) hide show
  1. package/blockly.min.js +2002 -2269
  2. package/blockly_compressed.js +1499 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks/blocks.js +3 -2
  5. package/blocks/colour.js +3 -1
  6. package/blocks/lists.js +94 -22
  7. package/blocks/logic.js +14 -6
  8. package/blocks/loops.js +5 -3
  9. package/blocks/math.js +3 -1
  10. package/blocks/procedures.js +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/package.json +5 -5
  609. package/php.d.ts +0 -3
  610. package/php_compressed.js +322 -93
  611. package/php_compressed.js.map +1 -1
  612. package/python.d.ts +0 -3
  613. package/python_compressed.js +237 -90
  614. package/python_compressed.js.map +1 -1
  615. package/blockly.d.ts +0 -26127
  616. package/core/blockly_options.js +0 -28
  617. package/core/bubble_dragger.js +0 -298
  618. package/core/clipboard.js +0 -80
  619. package/core/component_manager.js +0 -263
  620. package/core/contextmenu_items.js +0 -651
  621. package/core/contextmenu_registry.js +0 -178
  622. package/core/delete_area.js +0 -87
  623. package/core/dialog.js +0 -107
  624. package/core/drag_target.js +0 -98
  625. package/core/events/events.js +0 -147
  626. package/core/events/events_abstract.js +0 -133
  627. package/core/events/events_block_base.js +0 -70
  628. package/core/events/events_block_drag.js +0 -89
  629. package/core/events/events_bubble_open.js +0 -90
  630. package/core/events/events_comment_base.js +0 -121
  631. package/core/events/events_marker_move.js +0 -110
  632. package/core/events/events_selected.js +0 -83
  633. package/core/events/events_toolbox_item_select.js +0 -84
  634. package/core/events/events_trashcan_open.js +0 -73
  635. package/core/events/events_var_base.js +0 -70
  636. package/core/events/events_viewport.js +0 -107
  637. package/core/events/workspace_events.js +0 -93
  638. package/core/field_angle.js +0 -591
  639. package/core/field_checkbox.js +0 -255
  640. package/core/field_colour.js +0 -717
  641. package/core/field_image.js +0 -304
  642. package/core/field_label.js +0 -149
  643. package/core/field_label_serializable.js +0 -80
  644. package/core/field_textinput.js +0 -619
  645. package/core/flyout_button.js +0 -356
  646. package/core/grid.js +0 -226
  647. package/core/icon.js +0 -225
  648. package/core/input.js +0 -335
  649. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  650. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  651. package/core/interfaces/i_autohideable.js +0 -40
  652. package/core/interfaces/i_block_dragger.js +0 -66
  653. package/core/interfaces/i_bounded_element.js +0 -45
  654. package/core/interfaces/i_bubble.js +0 -95
  655. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  656. package/core/interfaces/i_connection_checker.js +0 -104
  657. package/core/interfaces/i_contextmenu.js +0 -32
  658. package/core/interfaces/i_copyable.js +0 -49
  659. package/core/interfaces/i_delete_area.js +0 -50
  660. package/core/interfaces/i_drag_target.js +0 -88
  661. package/core/interfaces/i_flyout.js +0 -201
  662. package/core/interfaces/i_keyboard_accessible.js +0 -38
  663. package/core/interfaces/i_metrics_manager.js +0 -154
  664. package/core/interfaces/i_positionable.js +0 -51
  665. package/core/interfaces/i_selectable.js +0 -51
  666. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  667. package/core/interfaces/i_serializer.js +0 -77
  668. package/core/interfaces/i_styleable.js +0 -39
  669. package/core/interfaces/i_toolbox.js +0 -142
  670. package/core/interfaces/i_toolbox_item.js +0 -85
  671. package/core/marker_manager.js +0 -213
  672. package/core/menuitem.js +0 -292
  673. package/core/names.js +0 -293
  674. package/core/registry.js +0 -384
  675. package/core/renderers/common/block_rendering.js +0 -170
  676. package/core/renderers/common/constants.js +0 -1250
  677. package/core/renderers/common/i_path_object.js +0 -162
  678. package/core/renderers/common/marker_svg.js +0 -721
  679. package/core/renderers/common/path_object.js +0 -283
  680. package/core/renderers/common/renderer.js +0 -305
  681. package/core/renderers/geras/constants.js +0 -73
  682. package/core/renderers/geras/geras.js +0 -36
  683. package/core/renderers/geras/measurables/inline_input.js +0 -58
  684. package/core/renderers/geras/measurables/statement_input.js +0 -57
  685. package/core/renderers/geras/renderer.js +0 -149
  686. package/core/renderers/measurables/base.js +0 -64
  687. package/core/renderers/measurables/bottom_row.js +0 -138
  688. package/core/renderers/measurables/connection.js +0 -56
  689. package/core/renderers/measurables/external_value_input.js +0 -70
  690. package/core/renderers/measurables/field.js +0 -71
  691. package/core/renderers/measurables/in_row_spacer.js +0 -47
  692. package/core/renderers/measurables/input_connection.js +0 -75
  693. package/core/renderers/measurables/next_connection.js +0 -50
  694. package/core/renderers/measurables/output_connection.js +0 -61
  695. package/core/renderers/measurables/previous_connection.js +0 -50
  696. package/core/renderers/measurables/round_corner.js +0 -52
  697. package/core/renderers/measurables/row.js +0 -247
  698. package/core/renderers/measurables/spacer_row.js +0 -69
  699. package/core/renderers/measurables/square_corner.js +0 -50
  700. package/core/renderers/measurables/top_row.js +0 -143
  701. package/core/renderers/measurables/types.js +0 -353
  702. package/core/renderers/minimalist/drawer.js +0 -42
  703. package/core/renderers/minimalist/info.js +0 -54
  704. package/core/renderers/minimalist/minimalist.js +0 -26
  705. package/core/renderers/minimalist/renderer.js +0 -80
  706. package/core/renderers/thrasos/renderer.js +0 -53
  707. package/core/renderers/thrasos/thrasos.js +0 -22
  708. package/core/renderers/zelos/marker_svg.js +0 -179
  709. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  710. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  711. package/core/renderers/zelos/path_object.js +0 -247
  712. package/core/renderers/zelos/renderer.js +0 -147
  713. package/core/renderers/zelos/zelos.js +0 -38
  714. package/core/serialization/exceptions.js +0 -144
  715. package/core/shortcut_registry.js +0 -366
  716. package/core/theme/themes.js +0 -23
  717. package/core/theme.js +0 -228
  718. package/core/theme_manager.js +0 -211
  719. package/core/toolbox/category.js +0 -751
  720. package/core/toolbox/collapsible_category.js +0 -311
  721. package/core/toolbox/separator.js +0 -133
  722. package/core/toolbox/toolbox_item.js +0 -173
  723. package/core/touch.js +0 -285
  724. package/core/utils/coordinate.js +0 -138
  725. package/core/utils/global.js +0 -41
  726. package/core/utils/keycodes.js +0 -172
  727. package/core/utils/metrics.js +0 -154
  728. package/core/utils/svg.js +0 -186
  729. package/core/utils/toolbox.js +0 -459
  730. package/core/utils/useragent.js +0 -197
  731. package/core/utils.js +0 -383
  732. package/core/variable_model.js +0 -96
  733. package/core/widgetdiv.js +0 -290
  734. package/core/workspace.js +0 -836
  735. package/core/workspace_comment.js +0 -400
  736. package/core/workspace_dragger.js +0 -115
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Block } from '../block.js';
7
+ import type { State } from './blocks.js';
8
+ /** @alias Blockly.serialization.exceptions.DeserializationError */
9
+ export declare class DeserializationError extends Error {
10
+ }
11
+ /**
12
+ * Represents an error where the serialized state is expected to provide a
13
+ * block type, but it is not provided.
14
+ * @alias Blockly.serialization.exceptions.MissingBlockType
15
+ */
16
+ export declare class MissingBlockType extends DeserializationError {
17
+ state: State;
18
+ /**
19
+ * @param state The state object which is missing the block type.
20
+ * @internal
21
+ */
22
+ constructor(state: State);
23
+ }
24
+ /**
25
+ * Represents an error where deserialization encountered a block that did
26
+ * not have a connection that was defined in the serialized state.
27
+ * @alias Blockly.serialization.exceptions.MissingConnection
28
+ */
29
+ export declare class MissingConnection extends DeserializationError {
30
+ block: Block;
31
+ state: State;
32
+ /**
33
+ * @param connection The name of the connection that is missing. E.g.
34
+ * 'IF0', or 'next'.
35
+ * @param block The block missing the connection.
36
+ * @param state The state object containing the bad connection.
37
+ * @internal
38
+ */
39
+ constructor(connection: string, block: Block, state: State);
40
+ }
41
+ /**
42
+ * Represents an error where deserialization tried to connect two connections
43
+ * that were not compatible.
44
+ * @alias Blockly.serialization.exceptions.BadConnectionCheck
45
+ */
46
+ export declare class BadConnectionCheck extends DeserializationError {
47
+ childBlock: Block;
48
+ childState: State;
49
+ /**
50
+ * @param reason The reason the connections were not compatible.
51
+ * @param childConnection The name of the incompatible child connection. E.g.
52
+ * 'output' or 'previous'.
53
+ * @param childBlock The child block that could not connect to its parent.
54
+ * @param childState The state object representing the child block.
55
+ * @internal
56
+ */
57
+ constructor(reason: string, childConnection: string, childBlock: Block, childState: State);
58
+ }
59
+ /**
60
+ * Represents an error where deserialization encountered a real block as it
61
+ * was deserializing children of a shadow.
62
+ * This is an error because it is an invariant of Blockly that shadow blocks
63
+ * do not have real children.
64
+ * @alias Blockly.serialization.exceptions.RealChildOfShadow
65
+ */
66
+ export declare class RealChildOfShadow extends DeserializationError {
67
+ state: State;
68
+ /**
69
+ * @param state The state object representing the real block.
70
+ * @internal
71
+ */
72
+ constructor(state: State);
73
+ }
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview Contains custom errors thrown by the serialization system.
9
+ */
10
+
11
+ /**
12
+ * Contains custom errors thrown by the serialization system.
13
+ * @namespace Blockly.serialization.exceptions
14
+ */
15
+ import * as goog from '../../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.serialization.exceptions');
17
+
18
+ import type {Block} from '../block.js';
19
+ import type {State} from './blocks.js';
20
+
21
+
22
+ /** @alias Blockly.serialization.exceptions.DeserializationError */
23
+ export class DeserializationError extends Error {}
24
+
25
+ /**
26
+ * Represents an error where the serialized state is expected to provide a
27
+ * block type, but it is not provided.
28
+ * @alias Blockly.serialization.exceptions.MissingBlockType
29
+ */
30
+ export class MissingBlockType extends DeserializationError {
31
+ /**
32
+ * @param state The state object which is missing the block type.
33
+ * @internal
34
+ */
35
+ constructor(public state: State) {
36
+ super(`Expected to find a 'type' property, defining the block type`);
37
+ }
38
+ }
39
+
40
+ /**
41
+ * Represents an error where deserialization encountered a block that did
42
+ * not have a connection that was defined in the serialized state.
43
+ * @alias Blockly.serialization.exceptions.MissingConnection
44
+ */
45
+ export class MissingConnection extends DeserializationError {
46
+ /**
47
+ * @param connection The name of the connection that is missing. E.g.
48
+ * 'IF0', or 'next'.
49
+ * @param block The block missing the connection.
50
+ * @param state The state object containing the bad connection.
51
+ * @internal
52
+ */
53
+ constructor(connection: string, public block: Block, public state: State) {
54
+ super(`The block ${block.toDevString()} is missing a(n) ${connection}
55
+ connection`);
56
+ }
57
+ }
58
+
59
+ /**
60
+ * Represents an error where deserialization tried to connect two connections
61
+ * that were not compatible.
62
+ * @alias Blockly.serialization.exceptions.BadConnectionCheck
63
+ */
64
+ export class BadConnectionCheck extends DeserializationError {
65
+ /**
66
+ * @param reason The reason the connections were not compatible.
67
+ * @param childConnection The name of the incompatible child connection. E.g.
68
+ * 'output' or 'previous'.
69
+ * @param childBlock The child block that could not connect to its parent.
70
+ * @param childState The state object representing the child block.
71
+ * @internal
72
+ */
73
+ constructor(
74
+ reason: string, childConnection: string, public childBlock: Block,
75
+ public childState: State) {
76
+ super(`The block ${childBlock.toDevString()} could not connect its
77
+ ${childConnection} to its parent, because: ${reason}`);
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Represents an error where deserialization encountered a real block as it
83
+ * was deserializing children of a shadow.
84
+ * This is an error because it is an invariant of Blockly that shadow blocks
85
+ * do not have real children.
86
+ * @alias Blockly.serialization.exceptions.RealChildOfShadow
87
+ */
88
+ export class RealChildOfShadow extends DeserializationError {
89
+ /**
90
+ * @param state The state object representing the real block.
91
+ * @internal
92
+ */
93
+ constructor(public state: State) {
94
+ super(`Encountered a real block which is defined as a child of a shadow
95
+ block. It is an invariant of Blockly that shadow blocks only have shadow
96
+ children`);
97
+ }
98
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * The priority for deserializing variables.
8
+ * @alias Blockly.serialization.priorities.VARIABLES
9
+ */
10
+ export declare const VARIABLES = 100;
11
+ /**
12
+ * The priority for deserializing blocks.
13
+ * @alias Blockly.serialization.priorities.BLOCKS
14
+ */
15
+ export declare const BLOCKS = 50;
@@ -10,29 +10,23 @@
10
10
  * serializers. Higher priorities are deserialized first.
11
11
  */
12
12
 
13
- 'use strict';
14
-
15
13
  /**
16
14
  * The top level namespace for priorities of plugin serializers.
17
15
  * Includes constants for the priorities of different plugin serializers. Higher
18
16
  * priorities are deserialized first.
19
17
  * @namespace Blockly.serialization.priorities
20
18
  */
21
- goog.module('Blockly.serialization.priorities');
19
+ import * as goog from '../../closure/goog/goog.js';
20
+ goog.declareModuleId('Blockly.serialization.priorities');
22
21
 
23
22
 
24
23
  /**
25
24
  * The priority for deserializing variables.
26
- * @type {number}
27
- * @const
28
25
  * @alias Blockly.serialization.priorities.VARIABLES
29
26
  */
30
- exports.VARIABLES = 100;
31
-
27
+ export const VARIABLES = 100;
32
28
  /**
33
29
  * The priority for deserializing blocks.
34
- * @type {number}
35
- * @const
36
30
  * @alias Blockly.serialization.priorities.BLOCKS
37
31
  */
38
- exports.BLOCKS = 50;
32
+ export const BLOCKS = 50;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { ISerializer } from '../interfaces/i_serializer.js';
7
+ /**
8
+ * Registers the given serializer so that it can be used for serialization and
9
+ * deserialization.
10
+ * @param name The name of the serializer to register.
11
+ * @param serializer The serializer to register.
12
+ * @alias Blockly.serialization.registry.register
13
+ */
14
+ export declare function register(name: string, serializer: ISerializer): void;
15
+ /**
16
+ * Unregisters the serializer associated with the given name.
17
+ * @param name The name of the serializer to unregister.
18
+ * @alias Blockly.serialization.registry.unregister
19
+ */
20
+ export declare function unregister(name: string): void;
@@ -8,38 +8,36 @@
8
8
  * @fileoverview Contains functions registering serializers (eg blocks,
9
9
  * variables, plugins, etc).
10
10
  */
11
- 'use strict';
12
11
 
13
12
  /**
14
13
  * Contains functions registering serializers (eg blocks, variables, plugins,
15
14
  * etc).
16
15
  * @namespace Blockly.serialization.registry
17
16
  */
18
- goog.module('Blockly.serialization.registry');
17
+ import * as goog from '../../closure/goog/goog.js';
18
+ goog.declareModuleId('Blockly.serialization.registry');
19
19
 
20
- const registry = goog.require('Blockly.registry');
21
20
  // eslint-disable-next-line no-unused-vars
22
- const {ISerializer} = goog.requireType('Blockly.serialization.ISerializer');
21
+ import type {ISerializer} from '../interfaces/i_serializer.js';
22
+ import * as registry from '../registry.js';
23
23
 
24
24
 
25
25
  /**
26
26
  * Registers the given serializer so that it can be used for serialization and
27
27
  * deserialization.
28
- * @param {string} name The name of the serializer to register.
29
- * @param {ISerializer} serializer The serializer to register.
28
+ * @param name The name of the serializer to register.
29
+ * @param serializer The serializer to register.
30
30
  * @alias Blockly.serialization.registry.register
31
31
  */
32
- const register = function(name, serializer) {
32
+ export function register(name: string, serializer: ISerializer) {
33
33
  registry.register(registry.Type.SERIALIZER, name, serializer);
34
- };
35
- exports.register = register;
34
+ }
36
35
 
37
36
  /**
38
37
  * Unregisters the serializer associated with the given name.
39
- * @param {string} name The name of the serializer to unregister.
38
+ * @param name The name of the serializer to unregister.
40
39
  * @alias Blockly.serialization.registry.unregister
41
40
  */
42
- const unregister = function(name) {
41
+ export function unregister(name: string) {
43
42
  registry.unregister(registry.Type.SERIALIZER, name);
44
- };
45
- exports.unregister = unregister;
43
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Represents the state of a given variable.
8
+ * @alias Blockly.serialization.variables.State
9
+ */
10
+ export interface State {
11
+ name: string;
12
+ id: string;
13
+ type: string | undefined;
14
+ }
@@ -8,57 +8,52 @@
8
8
  * @fileoverview Handles serializing variables to plain JavaScript objects, only
9
9
  * containing state.
10
10
  */
11
- 'use strict';
12
11
 
13
12
  /**
14
13
  * Handles serializing variables to plain JavaScript objects, only containing
15
14
  * state.
16
15
  * @namespace Blockly.serialization.variables
17
16
  */
18
- goog.module('Blockly.serialization.variables');
17
+ import * as goog from '../../closure/goog/goog.js';
18
+ goog.declareModuleId('Blockly.serialization.variables');
19
19
 
20
- const priorities = goog.require('Blockly.serialization.priorities');
21
- const serializationRegistry = goog.require('Blockly.serialization.registry');
22
- // eslint-disable-next-line no-unused-vars
23
- const {ISerializer} = goog.require('Blockly.serialization.ISerializer');
24
- // eslint-disable-next-line no-unused-vars
25
- const {Workspace} = goog.requireType('Blockly.Workspace');
20
+ import type {ISerializer} from '../interfaces/i_serializer.js';
21
+ import type {Workspace} from '../workspace.js';
22
+
23
+ import * as priorities from './priorities.js';
24
+ import * as serializationRegistry from './registry.js';
26
25
 
27
26
 
28
27
  /**
29
28
  * Represents the state of a given variable.
30
- * @typedef {{
31
- * name: string,
32
- * id: string,
33
- * type: (string|undefined)
34
- * }}
35
29
  * @alias Blockly.serialization.variables.State
36
30
  */
37
- let State;
38
- exports.State = State;
31
+ export interface State {
32
+ name: string;
33
+ id: string;
34
+ type: string|undefined;
35
+ }
39
36
 
40
37
  /**
41
38
  * Serializer for saving and loading variable state.
42
- * @implements {ISerializer}
43
39
  * @alias Blockly.serialization.variables.VariableSerializer
44
40
  */
45
- class VariableSerializer {
41
+ class VariableSerializer implements ISerializer {
42
+ priority: number;
43
+
46
44
  /* eslint-disable-next-line require-jsdoc */
47
45
  constructor() {
48
- /**
49
- * The priority for deserializing variables.
50
- * @type {number}
51
- */
46
+ /** The priority for deserializing variables. */
52
47
  this.priority = priorities.VARIABLES;
53
48
  }
54
49
 
55
50
  /**
56
51
  * Serializes the variables of the given workspace.
57
- * @param {!Workspace} workspace The workspace to save the variables of.
58
- * @return {?Array<!State>} The state of the workspace's variables, or null
59
- * if there are no variables.
52
+ * @param workspace The workspace to save the variables of.
53
+ * @return The state of the workspace's variables, or null if there are no
54
+ * variables.
60
55
  */
61
- save(workspace) {
56
+ save(workspace: Workspace): State[]|null {
62
57
  const variableStates = [];
63
58
  for (const variable of workspace.getAllVariables()) {
64
59
  const state = {
@@ -66,20 +61,23 @@ class VariableSerializer {
66
61
  'id': variable.getId(),
67
62
  };
68
63
  if (variable.type) {
69
- state['type'] = variable.type;
64
+ (state as AnyDuringMigration)['type'] = variable.type;
70
65
  }
71
66
  variableStates.push(state);
72
67
  }
73
- return variableStates.length ? variableStates : null;
68
+ // AnyDuringMigration because: Type '{ name: string; id: string; }[] |
69
+ // null' is not assignable to type 'State[] | null'.
70
+ return (variableStates.length ? variableStates : null) as
71
+ AnyDuringMigration;
74
72
  }
75
73
 
76
74
  /**
77
75
  * Deserializes the variable defined by the given state into the given
78
76
  * workspace.
79
- * @param {!Array<!State>} state The state of the variables to deserialize.
80
- * @param {!Workspace} workspace The workspace to deserialize into.
77
+ * @param state The state of the variables to deserialize.
78
+ * @param workspace The workspace to deserialize into.
81
79
  */
82
- load(state, workspace) {
80
+ load(state: State[], workspace: Workspace) {
83
81
  for (const varState of state) {
84
82
  workspace.createVariable(
85
83
  varState['name'], varState['type'], varState['id']);
@@ -88,9 +86,9 @@ class VariableSerializer {
88
86
 
89
87
  /**
90
88
  * Disposes of any variables that exist on the workspace.
91
- * @param {!Workspace} workspace The workspace to clear the variables of.
89
+ * @param workspace The workspace to clear the variables of.
92
90
  */
93
- clear(workspace) {
91
+ clear(workspace: Workspace) {
94
92
  workspace.getVariableMap().clear();
95
93
  }
96
94
  }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Workspace } from '../workspace.js';
7
+ /**
8
+ * Returns the state of the workspace as a plain JavaScript object.
9
+ * @param workspace The workspace to serialize.
10
+ * @return The serialized state of the workspace.
11
+ * @alias Blockly.serialization.workspaces.save
12
+ */
13
+ export declare function save(workspace: Workspace): {
14
+ [key: string]: any;
15
+ };
16
+ /**
17
+ * Loads the variable represented by the given state into the given workspace.
18
+ * @param state The state of the workspace to deserialize into the workspace.
19
+ * @param workspace The workspace to add the new state to.
20
+ * @param param1 recordUndo: If true, events triggered by this function will be
21
+ * undo-able by the user. False by default.
22
+ * @alias Blockly.serialization.workspaces.load
23
+ */
24
+ export declare function load(state: {
25
+ [key: string]: any;
26
+ }, workspace: Workspace, { recordUndo }?: {
27
+ recordUndo?: boolean;
28
+ }): void;
@@ -8,60 +8,63 @@
8
8
  * @fileoverview Contains top-level functions for serializing workspaces to
9
9
  * plain JavaScript objects.
10
10
  */
11
- 'use strict';
12
11
 
13
12
  /**
14
13
  * Contains top-level functions for serializing workspaces to plain JavaScript
15
14
  * objects.
16
15
  * @namespace Blockly.serialization.workspaces
17
16
  */
18
- goog.module('Blockly.serialization.workspaces');
17
+ import * as goog from '../../closure/goog/goog.js';
18
+ goog.declareModuleId('Blockly.serialization.workspaces');
19
19
 
20
- const dom = goog.require('Blockly.utils.dom');
21
- const eventUtils = goog.require('Blockly.Events.utils');
22
- const registry = goog.require('Blockly.registry');
20
+ import * as eventUtils from '../events/utils.js';
21
+ import type {ISerializer} from '../interfaces/i_serializer.js';
22
+ import * as registry from '../registry.js';
23
+ import * as dom from '../utils/dom.js';
23
24
  // eslint-disable-next-line no-unused-vars
24
- const {Workspace} = goog.require('Blockly.Workspace');
25
- const {WorkspaceSvg} = goog.require('Blockly.WorkspaceSvg');
25
+ import type {Workspace} from '../workspace.js';
26
+ import {WorkspaceSvg} from '../workspace_svg.js';
26
27
 
27
28
 
28
29
  /**
29
30
  * Returns the state of the workspace as a plain JavaScript object.
30
- * @param {!Workspace} workspace The workspace to serialize.
31
- * @return {!Object<string, *>} The serialized state of the workspace.
31
+ * @param workspace The workspace to serialize.
32
+ * @return The serialized state of the workspace.
32
33
  * @alias Blockly.serialization.workspaces.save
33
34
  */
34
- const save = function(workspace) {
35
+ export function save(workspace: Workspace):
36
+ {[key: string]: AnyDuringMigration} {
35
37
  const state = Object.create(null);
36
38
  const serializerMap = registry.getAllItems(registry.Type.SERIALIZER, true);
37
39
  for (const key in serializerMap) {
38
- const save = serializerMap[key].save(workspace);
40
+ const save = (serializerMap[key] as ISerializer)?.save(workspace);
39
41
  if (save) {
40
42
  state[key] = save;
41
43
  }
42
44
  }
43
45
  return state;
44
- };
45
- exports.save = save;
46
+ }
46
47
 
47
48
  /**
48
49
  * Loads the variable represented by the given state into the given workspace.
49
- * @param {!Object<string, *>} state The state of the workspace to deserialize
50
- * into the workspace.
51
- * @param {!Workspace} workspace The workspace to add the new state to.
52
- * @param {{recordUndo: (boolean|undefined)}=} param1
53
- * recordUndo: If true, events triggered by this function will be undo-able
54
- * by the user. False by default.
50
+ * @param state The state of the workspace to deserialize into the workspace.
51
+ * @param workspace The workspace to add the new state to.
52
+ * @param param1 recordUndo: If true, events triggered by this function will be
53
+ * undo-able by the user. False by default.
55
54
  * @alias Blockly.serialization.workspaces.load
56
55
  */
57
- const load = function(state, workspace, {recordUndo = false} = {}) {
56
+ export function load(
57
+ state: {[key: string]: AnyDuringMigration}, workspace: Workspace,
58
+ {recordUndo = false}: {recordUndo?: boolean} = {}) {
58
59
  const serializerMap = registry.getAllItems(registry.Type.SERIALIZER, true);
59
60
  if (!serializerMap) {
60
61
  return;
61
62
  }
62
63
 
63
64
  const deserializers = Object.entries(serializerMap)
64
- .sort((a, b) => b[1].priority - a[1].priority);
65
+ .sort(
66
+ (a, b) => (b[1] as ISerializer)!.priority -
67
+ (a[1] as ISerializer)!.priority);
65
68
 
66
69
  const prevRecordUndo = eventUtils.getRecordUndo();
67
70
  eventUtils.setRecordUndo(recordUndo);
@@ -78,15 +81,15 @@ const load = function(state, workspace, {recordUndo = false} = {}) {
78
81
  // We want to trigger clearing in reverse priority order so plugins don't end
79
82
  // up missing dependencies.
80
83
  for (const [, deserializer] of deserializers.reverse()) {
81
- deserializer.clear(workspace);
84
+ (deserializer as ISerializer)?.clear(workspace);
82
85
  }
83
86
 
84
87
  // reverse() is destructive, so we have to re-reverse to correct the order.
85
88
  for (let [name, deserializer] of deserializers.reverse()) {
86
- name = /** @type {string} */ (name);
89
+ name = name;
87
90
  const pluginState = state[name];
88
91
  if (pluginState) {
89
- deserializer.load(state[name], workspace);
92
+ (deserializer as ISerializer)?.load(state[name], workspace);
90
93
  }
91
94
  }
92
95
 
@@ -95,9 +98,9 @@ const load = function(state, workspace, {recordUndo = false} = {}) {
95
98
  }
96
99
  dom.stopTextWidthCache();
97
100
 
98
- eventUtils.fire(new (eventUtils.get(eventUtils.FINISHED_LOADING))(workspace));
101
+ eventUtils.fire(new (eventUtils.get(eventUtils.FINISHED_LOADING))!
102
+ (workspace));
99
103
 
100
104
  eventUtils.setGroup(existingGroup);
101
105
  eventUtils.setRecordUndo(prevRecordUndo);
102
- };
103
- exports.load = load;
106
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2020 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Object holding the names of the default shortcut items.
8
+ * @alias Blockly.ShortcutItems.names
9
+ */
10
+ export declare enum names {
11
+ ESCAPE = "escape",
12
+ DELETE = "delete",
13
+ COPY = "copy",
14
+ CUT = "cut",
15
+ PASTE = "paste",
16
+ UNDO = "undo",
17
+ REDO = "redo"
18
+ }
19
+ /**
20
+ * Keyboard shortcut to hide chaff on escape.
21
+ * @alias Blockly.ShortcutItems.registerEscape
22
+ */
23
+ export declare function registerEscape(): void;
24
+ /**
25
+ * Keyboard shortcut to delete a block on delete or backspace
26
+ * @alias Blockly.ShortcutItems.registerDelete
27
+ */
28
+ export declare function registerDelete(): void;
29
+ /**
30
+ * Keyboard shortcut to copy a block on ctrl+c, cmd+c, or alt+c.
31
+ * @alias Blockly.ShortcutItems.registerCopy
32
+ */
33
+ export declare function registerCopy(): void;
34
+ /**
35
+ * Keyboard shortcut to copy and delete a block on ctrl+x, cmd+x, or alt+x.
36
+ * @alias Blockly.ShortcutItems.registerCut
37
+ */
38
+ export declare function registerCut(): void;
39
+ /**
40
+ * Keyboard shortcut to paste a block on ctrl+v, cmd+v, or alt+v.
41
+ * @alias Blockly.ShortcutItems.registerPaste
42
+ */
43
+ export declare function registerPaste(): void;
44
+ /**
45
+ * Keyboard shortcut to undo the previous action on ctrl+z, cmd+z, or alt+z.
46
+ * @alias Blockly.ShortcutItems.registerUndo
47
+ */
48
+ export declare function registerUndo(): void;
49
+ /**
50
+ * Keyboard shortcut to redo the previous action on ctrl+shift+z, cmd+shift+z,
51
+ * or alt+shift+z.
52
+ * @alias Blockly.ShortcutItems.registerRedo
53
+ */
54
+ export declare function registerRedo(): void;
55
+ /**
56
+ * Registers all default keyboard shortcut item. This should be called once per
57
+ * instance of KeyboardShortcutRegistry.
58
+ * @alias Blockly.ShortcutItems.registerDefaultShortcuts
59
+ * @internal
60
+ */
61
+ export declare function registerDefaultShortcuts(): void;