blockly 8.0.4-beta.0 → 8.0.5-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (858) hide show
  1. package/blockly.min.js +2421 -2688
  2. package/blockly_compressed.js +1499 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks/blocks.js +3 -2
  5. package/blocks/colour.js +3 -1
  6. package/blocks/lists.js +94 -22
  7. package/blocks/logic.js +14 -6
  8. package/blocks/loops.js +5 -3
  9. package/blocks/math.js +3 -1
  10. package/blocks/procedures.js +3 -1
  11. package/blocks/text.js +14 -6
  12. package/blocks/variables.js +3 -1
  13. package/blocks/variables_dynamic.js +3 -1
  14. package/blocks.d.ts +0 -2
  15. package/blocks_compressed.js +189 -171
  16. package/blocks_compressed.js.map +1 -1
  17. package/closure/goog/base.d.ts +1 -0
  18. package/closure/goog/base_minimal.d.ts +18 -0
  19. package/closure/goog/goog.d.ts +25 -0
  20. package/core/any_aliases.d.ts +1 -0
  21. package/core/any_aliases.ts +1 -0
  22. package/core/block.d.ts +779 -0
  23. package/core/{block.js → block.ts} +610 -719
  24. package/core/block_animations.d.ts +33 -0
  25. package/core/{block_animations.js → block_animations.ts} +75 -79
  26. package/core/block_drag_surface.d.ts +111 -0
  27. package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
  28. package/core/block_dragger.d.ts +143 -0
  29. package/core/{block_dragger.js → block_dragger.ts} +139 -176
  30. package/core/block_svg.d.ts +588 -0
  31. package/core/{block_svg.js → block_svg.ts} +494 -630
  32. package/core/blockly.d.ts +562 -0
  33. package/core/blockly.js +1 -1
  34. package/core/blockly.ts +749 -0
  35. package/core/blockly_options.d.ts +69 -0
  36. package/core/blockly_options.ts +81 -0
  37. package/core/blocks.d.ts +17 -0
  38. package/core/{blocks.js → blocks.ts} +4 -8
  39. package/core/browser_events.d.ts +85 -0
  40. package/core/{browser_events.js → browser_events.ts} +98 -93
  41. package/core/bubble.d.ts +279 -0
  42. package/core/{bubble.js → bubble.ts} +277 -370
  43. package/core/bubble_dragger.d.ts +73 -0
  44. package/core/bubble_dragger.ts +229 -0
  45. package/core/bump_objects.d.ts +34 -0
  46. package/core/{bump_objects.js → bump_objects.ts} +54 -52
  47. package/core/clipboard.d.ts +42 -0
  48. package/core/clipboard.ts +91 -0
  49. package/core/comment.d.ts +113 -0
  50. package/core/{comment.js → comment.ts} +135 -185
  51. package/core/common.d.ts +129 -0
  52. package/core/{common.js → common.ts} +105 -82
  53. package/core/component_manager.d.ts +91 -0
  54. package/core/component_manager.ts +211 -0
  55. package/core/config.d.ts +23 -0
  56. package/core/{config.js → config.ts} +12 -19
  57. package/core/connection.d.ts +232 -0
  58. package/core/{connection.js → connection.ts} +187 -237
  59. package/core/connection_checker.d.ts +78 -0
  60. package/core/{connection_checker.js → connection_checker.ts} +66 -77
  61. package/core/connection_db.d.ts +91 -0
  62. package/core/{connection_db.js → connection_db.ts} +62 -87
  63. package/core/connection_type.d.ts +15 -0
  64. package/core/{connection_type.js → connection_type.ts} +8 -12
  65. package/core/constants.d.ts +15 -0
  66. package/core/{constants.js → constants.ts} +4 -8
  67. package/core/contextmenu.d.ts +80 -0
  68. package/core/{contextmenu.js → contextmenu.ts} +118 -153
  69. package/core/contextmenu_items.d.ts +77 -0
  70. package/core/contextmenu_items.ts +576 -0
  71. package/core/contextmenu_registry.d.ts +105 -0
  72. package/core/contextmenu_registry.ts +179 -0
  73. package/core/css.d.ts +24 -0
  74. package/core/{css.js → css.ts} +16 -24
  75. package/core/delete_area.d.ts +47 -0
  76. package/core/delete_area.ts +82 -0
  77. package/core/dialog.d.ts +61 -0
  78. package/core/dialog.ts +127 -0
  79. package/core/drag_target.d.ts +63 -0
  80. package/core/drag_target.ts +94 -0
  81. package/core/dropdowndiv.d.ts +155 -0
  82. package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
  83. package/core/events/events.d.ts +102 -0
  84. package/core/events/events.ts +123 -0
  85. package/core/events/events_abstract.d.ts +51 -0
  86. package/core/events/events_abstract.ts +112 -0
  87. package/core/events/events_block_base.d.ts +31 -0
  88. package/core/events/events_block_base.ts +65 -0
  89. package/core/events/events_block_change.d.ts +55 -0
  90. package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
  91. package/core/events/events_block_create.d.ts +35 -0
  92. package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
  93. package/core/events/events_block_delete.d.ts +36 -0
  94. package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
  95. package/core/events/events_block_drag.d.ts +36 -0
  96. package/core/events/events_block_drag.ts +82 -0
  97. package/core/events/events_block_move.d.ts +51 -0
  98. package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
  99. package/core/events/events_bubble_open.d.ts +35 -0
  100. package/core/events/events_bubble_open.ts +82 -0
  101. package/core/events/events_click.d.ts +36 -0
  102. package/core/events/{events_click.js → events_click.ts} +27 -30
  103. package/core/events/events_comment_base.d.ts +39 -0
  104. package/core/events/events_comment_base.ts +107 -0
  105. package/core/events/events_comment_change.d.ts +43 -0
  106. package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
  107. package/core/events/events_comment_create.d.ts +35 -0
  108. package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
  109. package/core/events/events_comment_delete.d.ts +35 -0
  110. package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
  111. package/core/events/events_comment_move.d.ts +55 -0
  112. package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
  113. package/core/events/events_marker_move.d.ts +40 -0
  114. package/core/events/events_marker_move.ts +99 -0
  115. package/core/events/events_selected.d.ts +34 -0
  116. package/core/events/events_selected.ts +78 -0
  117. package/core/events/events_theme_change.d.ts +30 -0
  118. package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
  119. package/core/events/events_toolbox_item_select.d.ts +34 -0
  120. package/core/events/events_toolbox_item_select.ts +79 -0
  121. package/core/events/events_trashcan_open.d.ts +31 -0
  122. package/core/events/events_trashcan_open.ts +68 -0
  123. package/core/events/events_ui.d.ts +37 -0
  124. package/core/events/{events_ui.js → events_ui.ts} +27 -26
  125. package/core/events/events_ui_base.d.ts +26 -0
  126. package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
  127. package/core/events/events_var_base.d.ts +31 -0
  128. package/core/events/events_var_base.ts +65 -0
  129. package/core/events/events_var_create.d.ts +35 -0
  130. package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
  131. package/core/events/events_var_delete.d.ts +35 -0
  132. package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
  133. package/core/events/events_var_rename.d.ts +36 -0
  134. package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
  135. package/core/events/events_viewport.d.ts +39 -0
  136. package/core/events/events_viewport.ts +100 -0
  137. package/core/events/utils.d.ts +272 -0
  138. package/core/events/{utils.js → utils.ts} +148 -219
  139. package/core/events/workspace_events.d.ts +36 -0
  140. package/core/events/workspace_events.ts +86 -0
  141. package/core/extensions.d.ts +107 -0
  142. package/core/{extensions.js → extensions.ts} +153 -172
  143. package/core/field.d.ts +534 -0
  144. package/core/{field.js → field.ts} +413 -489
  145. package/core/field_angle.d.ts +176 -0
  146. package/core/field_angle.ts +563 -0
  147. package/core/field_checkbox.d.ts +124 -0
  148. package/core/field_checkbox.ts +243 -0
  149. package/core/field_colour.d.ts +200 -0
  150. package/core/field_colour.ts +632 -0
  151. package/core/field_dropdown.d.ts +222 -0
  152. package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
  153. package/core/field_image.d.ts +134 -0
  154. package/core/field_image.ts +282 -0
  155. package/core/field_label.d.ts +71 -0
  156. package/core/field_label.ts +152 -0
  157. package/core/field_label_serializable.d.ts +42 -0
  158. package/core/field_label_serializable.ts +76 -0
  159. package/core/field_multilineinput.d.ts +146 -0
  160. package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
  161. package/core/field_number.d.ts +156 -0
  162. package/core/{field_number.js → field_number.ts} +110 -123
  163. package/core/field_registry.d.ts +45 -0
  164. package/core/{field_registry.js → field_registry.ts} +37 -30
  165. package/core/field_textinput.d.ts +219 -0
  166. package/core/field_textinput.ts +591 -0
  167. package/core/field_variable.d.ts +217 -0
  168. package/core/{field_variable.js → field_variable.ts} +174 -187
  169. package/core/flyout_base.d.ts +459 -0
  170. package/core/{flyout_base.js → flyout_base.ts} +429 -518
  171. package/core/flyout_button.d.ts +81 -0
  172. package/core/flyout_button.ts +292 -0
  173. package/core/flyout_horizontal.d.ts +82 -0
  174. package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
  175. package/core/flyout_metrics_manager.d.ts +40 -0
  176. package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
  177. package/core/flyout_vertical.d.ts +83 -0
  178. package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
  179. package/core/generator.d.ts +205 -0
  180. package/core/{generator.js → generator.ts} +168 -193
  181. package/core/gesture.d.ts +357 -0
  182. package/core/{gesture.js → gesture.ts} +289 -369
  183. package/core/grid.d.ts +83 -0
  184. package/core/grid.ts +192 -0
  185. package/core/icon.d.ts +78 -0
  186. package/core/icon.ts +189 -0
  187. package/core/inject.d.ts +15 -0
  188. package/core/{inject.js → inject.ts} +101 -100
  189. package/core/input.d.ts +128 -0
  190. package/core/input.ts +309 -0
  191. package/core/input_types.d.ts +14 -0
  192. package/core/{input_types.js → input_types.ts} +8 -12
  193. package/core/insertion_marker_manager.d.ts +212 -0
  194. package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
  195. package/core/interfaces/i_ast_node_location.d.ts +11 -0
  196. package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
  197. package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
  198. package/core/interfaces/i_ast_node_location_svg.ts +37 -0
  199. package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
  200. package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
  201. package/core/interfaces/i_autohideable.d.ts +18 -0
  202. package/core/interfaces/i_autohideable.ts +34 -0
  203. package/core/interfaces/i_block_dragger.d.ts +43 -0
  204. package/core/interfaces/i_block_dragger.ts +67 -0
  205. package/core/interfaces/i_bounded_element.d.ts +24 -0
  206. package/core/interfaces/i_bounded_element.ts +42 -0
  207. package/core/interfaces/i_bubble.d.ts +59 -0
  208. package/core/interfaces/i_bubble.ts +88 -0
  209. package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
  210. package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
  211. package/core/interfaces/i_component.d.ts +17 -0
  212. package/core/interfaces/{i_component.js → i_component.ts} +9 -14
  213. package/core/interfaces/i_connection_checker.d.ts +69 -0
  214. package/core/interfaces/i_connection_checker.ts +102 -0
  215. package/core/interfaces/i_contextmenu.d.ts +13 -0
  216. package/core/interfaces/i_contextmenu.ts +26 -0
  217. package/core/interfaces/i_copyable.d.ts +24 -0
  218. package/core/interfaces/i_copyable.ts +40 -0
  219. package/core/interfaces/i_deletable.d.ts +16 -0
  220. package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
  221. package/core/interfaces/i_delete_area.d.ts +25 -0
  222. package/core/interfaces/i_delete_area.ts +46 -0
  223. package/core/interfaces/i_drag_target.d.ts +53 -0
  224. package/core/interfaces/i_drag_target.ts +84 -0
  225. package/core/interfaces/i_draggable.d.ts +12 -0
  226. package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
  227. package/core/interfaces/i_flyout.d.ts +134 -0
  228. package/core/interfaces/i_flyout.ts +186 -0
  229. package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
  230. package/core/interfaces/i_keyboard_accessible.ts +35 -0
  231. package/core/interfaces/i_metrics_manager.d.ts +117 -0
  232. package/core/interfaces/i_metrics_manager.ts +151 -0
  233. package/core/interfaces/i_movable.d.ts +16 -0
  234. package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
  235. package/core/interfaces/i_positionable.d.ts +27 -0
  236. package/core/interfaces/i_positionable.ts +50 -0
  237. package/core/interfaces/i_registrable.d.ts +11 -0
  238. package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
  239. package/core/interfaces/i_registrable_field.d.ts +17 -0
  240. package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
  241. package/core/interfaces/i_selectable.d.ts +18 -0
  242. package/core/interfaces/i_selectable.ts +34 -0
  243. package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
  244. package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
  245. package/core/interfaces/i_serializer.d.ts +42 -0
  246. package/core/interfaces/i_serializer.ts +65 -0
  247. package/core/interfaces/i_styleable.d.ts +21 -0
  248. package/core/interfaces/i_styleable.ts +35 -0
  249. package/core/interfaces/i_toolbox.d.ts +85 -0
  250. package/core/interfaces/i_toolbox.ts +127 -0
  251. package/core/interfaces/i_toolbox_item.d.ts +62 -0
  252. package/core/interfaces/i_toolbox_item.ts +84 -0
  253. package/core/internal_constants.d.ts +40 -0
  254. package/core/{internal_constants.js → internal_constants.ts} +13 -18
  255. package/core/keyboard_nav/ast_node.d.ts +239 -0
  256. package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
  257. package/core/keyboard_nav/basic_cursor.d.ts +88 -0
  258. package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
  259. package/core/keyboard_nav/cursor.d.ts +41 -0
  260. package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
  261. package/core/keyboard_nav/marker.d.ts +58 -0
  262. package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
  263. package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
  264. package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
  265. package/core/main.d.ts +11 -0
  266. package/core/main.js +303 -0
  267. package/core/marker_manager.d.ts +85 -0
  268. package/core/marker_manager.ts +181 -0
  269. package/core/menu.d.ts +149 -0
  270. package/core/{menu.js → menu.ts} +141 -174
  271. package/core/menuitem.d.ts +118 -0
  272. package/core/menuitem.ts +240 -0
  273. package/core/metrics_manager.d.ts +201 -0
  274. package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
  275. package/core/msg.d.ts +9 -0
  276. package/core/{msg.js → msg.ts} +4 -8
  277. package/core/mutator.d.ts +128 -0
  278. package/core/{mutator.js → mutator.ts} +196 -211
  279. package/core/names.d.ts +124 -0
  280. package/core/names.ts +267 -0
  281. package/core/options.d.ts +137 -0
  282. package/core/{options.js → options.ts} +147 -173
  283. package/core/positionable_helpers.d.ts +88 -0
  284. package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
  285. package/core/procedures.d.ts +108 -0
  286. package/core/{procedures.js → procedures.ts} +143 -152
  287. package/core/registry.d.ts +137 -0
  288. package/core/registry.ts +339 -0
  289. package/core/rendered_connection.d.ts +191 -0
  290. package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
  291. package/core/renderers/common/block_rendering.d.ts +114 -0
  292. package/core/renderers/common/block_rendering.ts +164 -0
  293. package/core/renderers/common/constants.d.ts +458 -0
  294. package/core/renderers/common/constants.ts +1124 -0
  295. package/core/renderers/common/debug.d.ts +28 -0
  296. package/core/renderers/common/{debug.js → debug.ts} +14 -20
  297. package/core/renderers/common/debugger.d.ts +120 -0
  298. package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
  299. package/core/renderers/common/drawer.d.ts +132 -0
  300. package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
  301. package/core/renderers/common/i_path_object.d.ts +117 -0
  302. package/core/renderers/common/i_path_object.ts +161 -0
  303. package/core/renderers/common/info.d.ts +194 -0
  304. package/core/renderers/common/{info.js → info.ts} +165 -222
  305. package/core/renderers/common/marker_svg.d.ts +220 -0
  306. package/core/renderers/common/marker_svg.ts +680 -0
  307. package/core/renderers/common/path_object.d.ts +146 -0
  308. package/core/renderers/common/path_object.ts +272 -0
  309. package/core/renderers/common/renderer.d.ts +157 -0
  310. package/core/renderers/common/renderer.ts +271 -0
  311. package/core/renderers/geras/constants.d.ts +23 -0
  312. package/core/renderers/geras/constants.ts +61 -0
  313. package/core/renderers/geras/drawer.d.ts +43 -0
  314. package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
  315. package/core/renderers/geras/geras.d.ts +11 -0
  316. package/core/renderers/geras/geras.ts +37 -0
  317. package/core/renderers/geras/highlight_constants.d.ts +108 -0
  318. package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
  319. package/core/renderers/geras/highlighter.d.ts +98 -0
  320. package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
  321. package/core/renderers/geras/info.d.ts +45 -0
  322. package/core/renderers/geras/{info.js → info.ts} +61 -99
  323. package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
  324. package/core/renderers/geras/measurables/inline_input.ts +51 -0
  325. package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
  326. package/core/renderers/geras/measurables/statement_input.ts +50 -0
  327. package/core/renderers/geras/path_object.d.ts +47 -0
  328. package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
  329. package/core/renderers/geras/renderer.d.ts +69 -0
  330. package/core/renderers/geras/renderer.ts +126 -0
  331. package/core/renderers/measurables/base.d.ts +27 -0
  332. package/core/renderers/measurables/base.ts +53 -0
  333. package/core/renderers/measurables/bottom_row.d.ts +61 -0
  334. package/core/renderers/measurables/bottom_row.ts +120 -0
  335. package/core/renderers/measurables/connection.d.ts +25 -0
  336. package/core/renderers/measurables/connection.ts +52 -0
  337. package/core/renderers/measurables/external_value_input.d.ts +27 -0
  338. package/core/renderers/measurables/external_value_input.ts +65 -0
  339. package/core/renderers/measurables/field.d.ts +30 -0
  340. package/core/renderers/measurables/field.ts +63 -0
  341. package/core/renderers/measurables/hat.d.ts +21 -0
  342. package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
  343. package/core/renderers/measurables/icon.d.ts +26 -0
  344. package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
  345. package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
  346. package/core/renderers/measurables/in_row_spacer.ts +44 -0
  347. package/core/renderers/measurables/inline_input.d.ts +24 -0
  348. package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
  349. package/core/renderers/measurables/input_connection.d.ts +29 -0
  350. package/core/renderers/measurables/input_connection.ts +66 -0
  351. package/core/renderers/measurables/input_row.d.ts +30 -0
  352. package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
  353. package/core/renderers/measurables/jagged_edge.d.ts +20 -0
  354. package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
  355. package/core/renderers/measurables/next_connection.d.ts +23 -0
  356. package/core/renderers/measurables/next_connection.ts +47 -0
  357. package/core/renderers/measurables/output_connection.d.ts +26 -0
  358. package/core/renderers/measurables/output_connection.ts +56 -0
  359. package/core/renderers/measurables/previous_connection.d.ts +23 -0
  360. package/core/renderers/measurables/previous_connection.ts +47 -0
  361. package/core/renderers/measurables/round_corner.d.ts +21 -0
  362. package/core/renderers/measurables/round_corner.ts +49 -0
  363. package/core/renderers/measurables/row.d.ts +141 -0
  364. package/core/renderers/measurables/row.ts +225 -0
  365. package/core/renderers/measurables/spacer_row.d.ts +29 -0
  366. package/core/renderers/measurables/spacer_row.ts +55 -0
  367. package/core/renderers/measurables/square_corner.d.ts +21 -0
  368. package/core/renderers/measurables/square_corner.ts +47 -0
  369. package/core/renderers/measurables/statement_input.d.ts +22 -0
  370. package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
  371. package/core/renderers/measurables/top_row.d.ts +56 -0
  372. package/core/renderers/measurables/top_row.ts +122 -0
  373. package/core/renderers/measurables/types.d.ts +235 -0
  374. package/core/renderers/measurables/types.ts +332 -0
  375. package/core/renderers/minimalist/constants.d.ts +14 -0
  376. package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
  377. package/core/renderers/minimalist/drawer.d.ts +21 -0
  378. package/core/renderers/minimalist/drawer.ts +38 -0
  379. package/core/renderers/minimalist/info.d.ts +30 -0
  380. package/core/renderers/minimalist/info.ts +52 -0
  381. package/core/renderers/minimalist/minimalist.d.ts +6 -0
  382. package/core/renderers/minimalist/minimalist.ts +22 -0
  383. package/core/renderers/minimalist/renderer.d.ts +41 -0
  384. package/core/renderers/minimalist/renderer.ts +71 -0
  385. package/core/renderers/thrasos/info.d.ts +40 -0
  386. package/core/renderers/thrasos/{info.js → info.ts} +66 -67
  387. package/core/renderers/thrasos/renderer.d.ts +25 -0
  388. package/core/renderers/thrasos/renderer.ts +48 -0
  389. package/core/renderers/thrasos/thrasos.d.ts +4 -0
  390. package/core/renderers/thrasos/thrasos.ts +20 -0
  391. package/core/renderers/zelos/constants.d.ts +186 -0
  392. package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
  393. package/core/renderers/zelos/drawer.d.ts +47 -0
  394. package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
  395. package/core/renderers/zelos/info.d.ts +88 -0
  396. package/core/renderers/zelos/{info.js → info.ts} +111 -142
  397. package/core/renderers/zelos/marker_svg.d.ts +46 -0
  398. package/core/renderers/zelos/marker_svg.ts +151 -0
  399. package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
  400. package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
  401. package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
  402. package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
  403. package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
  404. package/core/renderers/zelos/measurables/row_elements.ts +45 -0
  405. package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
  406. package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
  407. package/core/renderers/zelos/path_object.d.ts +77 -0
  408. package/core/renderers/zelos/path_object.ts +215 -0
  409. package/core/renderers/zelos/renderer.d.ts +74 -0
  410. package/core/renderers/zelos/renderer.ts +142 -0
  411. package/core/renderers/zelos/zelos.d.ts +12 -0
  412. package/core/renderers/zelos/zelos.ts +39 -0
  413. package/core/scrollbar.d.ts +277 -0
  414. package/core/{scrollbar.js → scrollbar.ts} +307 -328
  415. package/core/scrollbar_pair.d.ts +105 -0
  416. package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
  417. package/core/serialization/blocks.d.ts +98 -0
  418. package/core/serialization/{blocks.js → blocks.ts} +229 -228
  419. package/core/serialization/exceptions.d.ts +73 -0
  420. package/core/serialization/exceptions.ts +98 -0
  421. package/core/serialization/priorities.d.ts +15 -0
  422. package/core/serialization/{priorities.js → priorities.ts} +4 -10
  423. package/core/serialization/registry.d.ts +20 -0
  424. package/core/serialization/{registry.js → registry.ts} +11 -13
  425. package/core/serialization/variables.d.ts +14 -0
  426. package/core/serialization/{variables.js → variables.ts} +30 -32
  427. package/core/serialization/workspaces.d.ts +28 -0
  428. package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
  429. package/core/shortcut_items.d.ts +61 -0
  430. package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
  431. package/core/shortcut_registry.d.ts +151 -0
  432. package/core/shortcut_registry.ts +355 -0
  433. package/core/sprites.d.ts +19 -0
  434. package/core/{sprites.js → sprites.ts} +4 -6
  435. package/core/theme/classic.d.ts +12 -0
  436. package/core/theme/{classic.js → classic.ts} +5 -7
  437. package/core/theme/themes.d.ts +8 -0
  438. package/core/theme/themes.ts +22 -0
  439. package/core/theme/zelos.d.ts +11 -0
  440. package/core/theme/{zelos.js → zelos.ts} +4 -7
  441. package/core/theme.d.ts +142 -0
  442. package/core/theme.ts +221 -0
  443. package/core/theme_manager.d.ts +81 -0
  444. package/core/theme_manager.ts +186 -0
  445. package/core/toolbox/category.d.ts +239 -0
  446. package/core/toolbox/category.ts +679 -0
  447. package/core/toolbox/collapsible_category.d.ts +91 -0
  448. package/core/toolbox/collapsible_category.ts +273 -0
  449. package/core/toolbox/separator.d.ts +39 -0
  450. package/core/toolbox/separator.ts +105 -0
  451. package/core/toolbox/toolbox.d.ts +352 -0
  452. package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
  453. package/core/toolbox/toolbox_item.d.ts +85 -0
  454. package/core/toolbox/toolbox_item.ts +147 -0
  455. package/core/tooltip.d.ts +126 -0
  456. package/core/{tooltip.js → tooltip.ts} +136 -214
  457. package/core/touch.d.ts +121 -0
  458. package/core/touch.ts +306 -0
  459. package/core/touch_gesture.d.ts +115 -0
  460. package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
  461. package/core/trashcan.d.ts +195 -0
  462. package/core/{trashcan.js → trashcan.ts} +226 -312
  463. package/core/utils/aria.d.ts +67 -0
  464. package/core/utils/{aria.js → aria.ts} +47 -61
  465. package/core/utils/array.d.ts +14 -0
  466. package/core/utils/{array.js → array.ts} +10 -12
  467. package/core/utils/colour.d.ts +103 -0
  468. package/core/utils/{colour.js → colour.ts} +60 -72
  469. package/core/utils/coordinate.d.ts +72 -0
  470. package/core/utils/coordinate.ts +124 -0
  471. package/core/utils/deprecation.d.ts +17 -0
  472. package/core/utils/{deprecation.js → deprecation.ts} +11 -11
  473. package/core/utils/dom.d.ts +165 -0
  474. package/core/utils/{dom.js → dom.ts} +125 -147
  475. package/core/utils/idgenerator.d.ts +25 -0
  476. package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
  477. package/core/utils/keycodes.d.ts +137 -0
  478. package/core/utils/keycodes.ts +169 -0
  479. package/core/utils/math.d.ts +30 -0
  480. package/core/utils/{math.js → math.ts} +17 -19
  481. package/core/utils/metrics.d.ts +64 -0
  482. package/core/utils/metrics.ts +97 -0
  483. package/core/utils/object.d.ts +35 -0
  484. package/core/utils/{object.js → object.ts} +30 -26
  485. package/core/utils/parsing.d.ts +50 -0
  486. package/core/utils/{parsing.js → parsing.ts} +50 -50
  487. package/core/utils/rect.d.ts +38 -0
  488. package/core/utils/{rect.js → rect.ts} +18 -31
  489. package/core/utils/sentinel.d.ts +11 -0
  490. package/core/utils/{sentinel.js → sentinel.ts} +3 -5
  491. package/core/utils/size.d.ts +27 -0
  492. package/core/utils/{size.js → size.ts} +12 -26
  493. package/core/utils/string.d.ts +55 -0
  494. package/core/utils/{string.js → string.ts} +64 -61
  495. package/core/utils/style.d.ts +127 -0
  496. package/core/utils/{style.js → style.ts} +102 -92
  497. package/core/utils/svg.d.ts +68 -0
  498. package/core/utils/svg.ts +88 -0
  499. package/core/utils/svg_math.d.ts +70 -0
  500. package/core/utils/{svg_math.js → svg_math.ts} +72 -71
  501. package/core/utils/svg_paths.d.ts +101 -0
  502. package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
  503. package/core/utils/toolbox.d.ts +193 -0
  504. package/core/utils/toolbox.ts +433 -0
  505. package/core/utils/useragent.d.ts +33 -0
  506. package/core/utils/useragent.ts +135 -0
  507. package/core/utils/xml.d.ts +52 -0
  508. package/core/utils/{xml.js → xml.ts} +26 -36
  509. package/core/utils.d.ts +217 -0
  510. package/core/utils.ts +428 -0
  511. package/core/variable_map.d.ts +141 -0
  512. package/core/{variable_map.js → variable_map.ts} +131 -149
  513. package/core/variable_model.d.ts +40 -0
  514. package/core/variable_model.ts +82 -0
  515. package/core/variables.d.ts +181 -0
  516. package/core/{variables.js → variables.ts} +206 -188
  517. package/core/variables_dynamic.d.ts +38 -0
  518. package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
  519. package/core/warning.d.ts +50 -0
  520. package/core/{warning.js → warning.ts} +52 -66
  521. package/core/widgetdiv.d.ts +69 -0
  522. package/core/widgetdiv.ts +257 -0
  523. package/core/workspace.d.ts +386 -0
  524. package/core/workspace.ts +801 -0
  525. package/core/workspace_audio.d.ts +47 -0
  526. package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
  527. package/core/workspace_comment.d.ts +170 -0
  528. package/core/workspace_comment.ts +398 -0
  529. package/core/workspace_comment_svg.d.ts +329 -0
  530. package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
  531. package/core/workspace_drag_surface_svg.d.ts +68 -0
  532. package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
  533. package/core/workspace_dragger.d.ts +48 -0
  534. package/core/workspace_dragger.ts +104 -0
  535. package/core/workspace_svg.d.ts +920 -0
  536. package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
  537. package/core/xml.d.ts +117 -0
  538. package/core/{xml.js → xml.ts} +306 -326
  539. package/core/zoom_controls.d.ts +130 -0
  540. package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
  541. package/core.d.ts +1 -3
  542. package/core.js +1 -2
  543. package/dart.d.ts +0 -3
  544. package/dart_compressed.js +387 -99
  545. package/dart_compressed.js.map +1 -1
  546. package/generators/dart/all.js +2 -0
  547. package/generators/dart/colour.js +1 -1
  548. package/generators/dart/lists.js +1 -1
  549. package/generators/dart/logic.js +1 -1
  550. package/generators/dart/loops.js +1 -1
  551. package/generators/dart/math.js +1 -1
  552. package/generators/dart/procedures.js +1 -1
  553. package/generators/dart/text.js +1 -1
  554. package/generators/dart/variables.js +1 -1
  555. package/generators/dart/variables_dynamic.js +1 -1
  556. package/generators/dart.js +1 -2
  557. package/generators/javascript/all.js +2 -0
  558. package/generators/javascript/colour.js +1 -1
  559. package/generators/javascript/lists.js +1 -1
  560. package/generators/javascript/logic.js +1 -1
  561. package/generators/javascript/loops.js +1 -1
  562. package/generators/javascript/math.js +4 -4
  563. package/generators/javascript/procedures.js +1 -1
  564. package/generators/javascript/text.js +2 -2
  565. package/generators/javascript/variables.js +1 -1
  566. package/generators/javascript/variables_dynamic.js +1 -1
  567. package/generators/javascript.js +1 -3
  568. package/generators/lua/all.js +2 -0
  569. package/generators/lua/colour.js +1 -1
  570. package/generators/lua/lists.js +1 -1
  571. package/generators/lua/logic.js +1 -1
  572. package/generators/lua/loops.js +1 -1
  573. package/generators/lua/math.js +1 -1
  574. package/generators/lua/procedures.js +1 -1
  575. package/generators/lua/text.js +1 -1
  576. package/generators/lua/variables.js +1 -1
  577. package/generators/lua/variables_dynamic.js +1 -1
  578. package/generators/lua.js +1 -2
  579. package/generators/php/all.js +2 -0
  580. package/generators/php/colour.js +1 -1
  581. package/generators/php/lists.js +1 -2
  582. package/generators/php/logic.js +1 -1
  583. package/generators/php/loops.js +1 -1
  584. package/generators/php/math.js +1 -1
  585. package/generators/php/procedures.js +1 -1
  586. package/generators/php/text.js +1 -1
  587. package/generators/php/variables.js +1 -1
  588. package/generators/php/variables_dynamic.js +1 -1
  589. package/generators/php.js +1 -2
  590. package/generators/python/all.js +2 -0
  591. package/generators/python/colour.js +3 -3
  592. package/generators/python/lists.js +1 -1
  593. package/generators/python/logic.js +1 -1
  594. package/generators/python/loops.js +4 -7
  595. package/generators/python/math.js +1 -1
  596. package/generators/python/procedures.js +1 -1
  597. package/generators/python/text.js +1 -1
  598. package/generators/python/variables.js +1 -1
  599. package/generators/python/variables_dynamic.js +1 -1
  600. package/generators/python.js +1 -2
  601. package/index.d.ts +2 -8
  602. package/javascript.d.ts +0 -3
  603. package/javascript_compressed.js +314 -104
  604. package/javascript_compressed.js.map +1 -1
  605. package/lua.d.ts +0 -3
  606. package/lua_compressed.js +399 -81
  607. package/lua_compressed.js.map +1 -1
  608. package/msg/ab.js +421 -421
  609. package/msg/ace.js +421 -421
  610. package/msg/af.js +421 -421
  611. package/msg/am.js +421 -421
  612. package/msg/ar.js +421 -421
  613. package/msg/ast.js +421 -421
  614. package/msg/az.js +421 -421
  615. package/msg/ba.js +421 -421
  616. package/msg/bcc.js +421 -421
  617. package/msg/be-tarask.js +421 -421
  618. package/msg/be.js +421 -421
  619. package/msg/bg.js +421 -421
  620. package/msg/bn.js +421 -421
  621. package/msg/br.js +421 -421
  622. package/msg/bs.js +421 -421
  623. package/msg/ca.js +421 -421
  624. package/msg/cdo.js +421 -421
  625. package/msg/cs.js +421 -421
  626. package/msg/da.js +421 -421
  627. package/msg/de.js +421 -421
  628. package/msg/diq.js +421 -421
  629. package/msg/dty.js +421 -421
  630. package/msg/ee.js +421 -421
  631. package/msg/el.js +421 -421
  632. package/msg/en-gb.js +421 -421
  633. package/msg/en.js +421 -421
  634. package/msg/eo.js +421 -421
  635. package/msg/es.js +421 -421
  636. package/msg/et.js +421 -421
  637. package/msg/eu.js +421 -421
  638. package/msg/fa.js +421 -421
  639. package/msg/fi.js +421 -421
  640. package/msg/fo.js +421 -421
  641. package/msg/fr.js +421 -421
  642. package/msg/frr.js +421 -421
  643. package/msg/gl.js +421 -421
  644. package/msg/gn.js +421 -421
  645. package/msg/gor.js +421 -421
  646. package/msg/ha.js +421 -421
  647. package/msg/hak.js +421 -421
  648. package/msg/he.js +421 -421
  649. package/msg/hi.js +421 -421
  650. package/msg/hr.js +421 -421
  651. package/msg/hrx.js +421 -421
  652. package/msg/hu.js +421 -421
  653. package/msg/hy.js +421 -421
  654. package/msg/ia.js +421 -421
  655. package/msg/id.js +421 -421
  656. package/msg/ig.js +421 -421
  657. package/msg/inh.js +421 -421
  658. package/msg/is.js +421 -421
  659. package/msg/it.js +421 -421
  660. package/msg/ja.js +421 -421
  661. package/msg/ka.js +421 -421
  662. package/msg/kab.js +421 -421
  663. package/msg/kbd-cyrl.js +421 -421
  664. package/msg/km.js +421 -421
  665. package/msg/kn.js +421 -421
  666. package/msg/ko.js +421 -421
  667. package/msg/ksh.js +421 -421
  668. package/msg/ku-latn.js +421 -421
  669. package/msg/ky.js +421 -421
  670. package/msg/la.js +421 -421
  671. package/msg/lb.js +421 -421
  672. package/msg/lki.js +421 -421
  673. package/msg/lo.js +421 -421
  674. package/msg/lrc.js +421 -421
  675. package/msg/lt.js +421 -421
  676. package/msg/lv.js +421 -421
  677. package/msg/mg.js +421 -421
  678. package/msg/mk.js +421 -421
  679. package/msg/ml.js +421 -421
  680. package/msg/mnw.js +421 -421
  681. package/msg/ms.js +421 -421
  682. package/msg/my.js +421 -421
  683. package/msg/mzn.js +421 -421
  684. package/msg/nb.js +421 -421
  685. package/msg/ne.js +421 -421
  686. package/msg/nl.js +421 -421
  687. package/msg/oc.js +421 -421
  688. package/msg/olo.js +421 -421
  689. package/msg/pa.js +421 -421
  690. package/msg/pl.js +421 -421
  691. package/msg/pms.js +421 -421
  692. package/msg/ps.js +421 -421
  693. package/msg/pt-br.js +421 -421
  694. package/msg/pt.js +421 -421
  695. package/msg/ro.js +421 -421
  696. package/msg/ru.js +421 -421
  697. package/msg/sc.js +421 -421
  698. package/msg/sco.js +421 -421
  699. package/msg/sd.js +421 -421
  700. package/msg/shn.js +421 -421
  701. package/msg/si.js +421 -421
  702. package/msg/sk.js +421 -421
  703. package/msg/skr-arab.js +421 -421
  704. package/msg/sl.js +421 -421
  705. package/msg/smn.js +421 -421
  706. package/msg/sq.js +421 -421
  707. package/msg/sr-latn.js +421 -421
  708. package/msg/sr.js +421 -421
  709. package/msg/sv.js +421 -421
  710. package/msg/sw.js +421 -421
  711. package/msg/ta.js +421 -421
  712. package/msg/tcy.js +421 -421
  713. package/msg/te.js +421 -421
  714. package/msg/th.js +421 -421
  715. package/msg/ti.js +421 -421
  716. package/msg/tl.js +421 -421
  717. package/msg/tlh.js +421 -421
  718. package/msg/tr.js +421 -421
  719. package/msg/ug-arab.js +421 -421
  720. package/msg/uk.js +421 -421
  721. package/msg/ur.js +421 -421
  722. package/msg/uz.js +421 -421
  723. package/msg/vi.js +421 -421
  724. package/msg/xmf.js +421 -421
  725. package/msg/yo.js +421 -421
  726. package/msg/yue.js +421 -421
  727. package/msg/zgh.js +421 -421
  728. package/msg/zh-hans.js +421 -421
  729. package/msg/zh-hant.js +421 -421
  730. package/package.json +5 -5
  731. package/php.d.ts +0 -3
  732. package/php_compressed.js +322 -93
  733. package/php_compressed.js.map +1 -1
  734. package/python.d.ts +0 -3
  735. package/python_compressed.js +237 -90
  736. package/python_compressed.js.map +1 -1
  737. package/blockly.d.ts +0 -26127
  738. package/core/blockly_options.js +0 -28
  739. package/core/bubble_dragger.js +0 -298
  740. package/core/clipboard.js +0 -80
  741. package/core/component_manager.js +0 -263
  742. package/core/contextmenu_items.js +0 -651
  743. package/core/contextmenu_registry.js +0 -178
  744. package/core/delete_area.js +0 -87
  745. package/core/dialog.js +0 -107
  746. package/core/drag_target.js +0 -98
  747. package/core/events/events.js +0 -147
  748. package/core/events/events_abstract.js +0 -133
  749. package/core/events/events_block_base.js +0 -70
  750. package/core/events/events_block_drag.js +0 -89
  751. package/core/events/events_bubble_open.js +0 -90
  752. package/core/events/events_comment_base.js +0 -121
  753. package/core/events/events_marker_move.js +0 -110
  754. package/core/events/events_selected.js +0 -83
  755. package/core/events/events_toolbox_item_select.js +0 -84
  756. package/core/events/events_trashcan_open.js +0 -73
  757. package/core/events/events_var_base.js +0 -70
  758. package/core/events/events_viewport.js +0 -107
  759. package/core/events/workspace_events.js +0 -93
  760. package/core/field_angle.js +0 -591
  761. package/core/field_checkbox.js +0 -255
  762. package/core/field_colour.js +0 -717
  763. package/core/field_image.js +0 -304
  764. package/core/field_label.js +0 -149
  765. package/core/field_label_serializable.js +0 -80
  766. package/core/field_textinput.js +0 -619
  767. package/core/flyout_button.js +0 -356
  768. package/core/grid.js +0 -226
  769. package/core/icon.js +0 -225
  770. package/core/input.js +0 -335
  771. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  772. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  773. package/core/interfaces/i_autohideable.js +0 -40
  774. package/core/interfaces/i_block_dragger.js +0 -66
  775. package/core/interfaces/i_bounded_element.js +0 -45
  776. package/core/interfaces/i_bubble.js +0 -95
  777. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  778. package/core/interfaces/i_connection_checker.js +0 -104
  779. package/core/interfaces/i_contextmenu.js +0 -32
  780. package/core/interfaces/i_copyable.js +0 -49
  781. package/core/interfaces/i_delete_area.js +0 -50
  782. package/core/interfaces/i_drag_target.js +0 -88
  783. package/core/interfaces/i_flyout.js +0 -201
  784. package/core/interfaces/i_keyboard_accessible.js +0 -38
  785. package/core/interfaces/i_metrics_manager.js +0 -154
  786. package/core/interfaces/i_positionable.js +0 -51
  787. package/core/interfaces/i_selectable.js +0 -51
  788. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  789. package/core/interfaces/i_serializer.js +0 -77
  790. package/core/interfaces/i_styleable.js +0 -39
  791. package/core/interfaces/i_toolbox.js +0 -142
  792. package/core/interfaces/i_toolbox_item.js +0 -85
  793. package/core/marker_manager.js +0 -213
  794. package/core/menuitem.js +0 -292
  795. package/core/names.js +0 -293
  796. package/core/registry.js +0 -384
  797. package/core/renderers/common/block_rendering.js +0 -170
  798. package/core/renderers/common/constants.js +0 -1250
  799. package/core/renderers/common/i_path_object.js +0 -162
  800. package/core/renderers/common/marker_svg.js +0 -721
  801. package/core/renderers/common/path_object.js +0 -283
  802. package/core/renderers/common/renderer.js +0 -305
  803. package/core/renderers/geras/constants.js +0 -73
  804. package/core/renderers/geras/geras.js +0 -36
  805. package/core/renderers/geras/measurables/inline_input.js +0 -58
  806. package/core/renderers/geras/measurables/statement_input.js +0 -57
  807. package/core/renderers/geras/renderer.js +0 -149
  808. package/core/renderers/measurables/base.js +0 -64
  809. package/core/renderers/measurables/bottom_row.js +0 -138
  810. package/core/renderers/measurables/connection.js +0 -56
  811. package/core/renderers/measurables/external_value_input.js +0 -70
  812. package/core/renderers/measurables/field.js +0 -71
  813. package/core/renderers/measurables/in_row_spacer.js +0 -47
  814. package/core/renderers/measurables/input_connection.js +0 -75
  815. package/core/renderers/measurables/next_connection.js +0 -50
  816. package/core/renderers/measurables/output_connection.js +0 -61
  817. package/core/renderers/measurables/previous_connection.js +0 -50
  818. package/core/renderers/measurables/round_corner.js +0 -52
  819. package/core/renderers/measurables/row.js +0 -247
  820. package/core/renderers/measurables/spacer_row.js +0 -69
  821. package/core/renderers/measurables/square_corner.js +0 -50
  822. package/core/renderers/measurables/top_row.js +0 -143
  823. package/core/renderers/measurables/types.js +0 -353
  824. package/core/renderers/minimalist/drawer.js +0 -42
  825. package/core/renderers/minimalist/info.js +0 -54
  826. package/core/renderers/minimalist/minimalist.js +0 -26
  827. package/core/renderers/minimalist/renderer.js +0 -80
  828. package/core/renderers/thrasos/renderer.js +0 -53
  829. package/core/renderers/thrasos/thrasos.js +0 -22
  830. package/core/renderers/zelos/marker_svg.js +0 -179
  831. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  832. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  833. package/core/renderers/zelos/path_object.js +0 -247
  834. package/core/renderers/zelos/renderer.js +0 -147
  835. package/core/renderers/zelos/zelos.js +0 -38
  836. package/core/serialization/exceptions.js +0 -144
  837. package/core/shortcut_registry.js +0 -366
  838. package/core/theme/themes.js +0 -23
  839. package/core/theme.js +0 -228
  840. package/core/theme_manager.js +0 -211
  841. package/core/toolbox/category.js +0 -751
  842. package/core/toolbox/collapsible_category.js +0 -311
  843. package/core/toolbox/separator.js +0 -133
  844. package/core/toolbox/toolbox_item.js +0 -173
  845. package/core/touch.js +0 -285
  846. package/core/utils/coordinate.js +0 -138
  847. package/core/utils/global.js +0 -41
  848. package/core/utils/keycodes.js +0 -172
  849. package/core/utils/metrics.js +0 -154
  850. package/core/utils/svg.js +0 -186
  851. package/core/utils/toolbox.js +0 -459
  852. package/core/utils/useragent.js +0 -197
  853. package/core/utils.js +0 -383
  854. package/core/variable_model.js +0 -96
  855. package/core/widgetdiv.js +0 -290
  856. package/core/workspace.js +0 -836
  857. package/core/workspace_comment.js +0 -400
  858. package/core/workspace_dragger.js +0 -115
@@ -7,108 +7,89 @@
7
7
  /**
8
8
  * @fileoverview Components for creating connections between blocks.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Components for creating connections between blocks.
14
13
  * @class
15
14
  */
16
- goog.module('Blockly.Connection');
17
-
18
- const Xml = goog.require('Blockly.Xml');
19
- const blocks = goog.require('Blockly.serialization.blocks');
20
- const eventUtils = goog.require('Blockly.Events.utils');
21
- /* eslint-disable-next-line no-unused-vars */
22
- const {Block} = goog.requireType('Blockly.Block');
23
- /* eslint-disable-next-line no-unused-vars */
24
- const {BlockMove} = goog.requireType('Blockly.Events.BlockMove');
25
- const {ConnectionType} = goog.require('Blockly.ConnectionType');
26
- /* eslint-disable-next-line no-unused-vars */
27
- const {IASTNodeLocationWithBlock} = goog.require('Blockly.IASTNodeLocationWithBlock');
28
- /* eslint-disable-next-line no-unused-vars */
29
- const {IConnectionChecker} = goog.requireType('Blockly.IConnectionChecker');
30
- /* eslint-disable-next-line no-unused-vars */
31
- const {Input} = goog.requireType('Blockly.Input');
32
- /** @suppress {extraRequire} */
33
- goog.require('Blockly.Events.BlockMove');
34
- /** @suppress {extraRequire} */
35
- goog.require('Blockly.constants');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.Connection');
17
+
18
+ // Unused import preserved for side-effects. Remove if unneeded.
19
+ // import './constants.js';
20
+
21
+ import type {Block} from './block.js';
22
+ import {ConnectionType} from './connection_type.js';
23
+ import type {BlockMove} from './events/events_block_move.js';
24
+ import * as eventUtils from './events/utils.js';
25
+ import type {Input} from './input.js';
26
+ import type {IASTNodeLocationWithBlock} from './interfaces/i_ast_node_location_with_block.js';
27
+ import type {IConnectionChecker} from './interfaces/i_connection_checker.js';
28
+ import * as blocks from './serialization/blocks.js';
29
+ import * as Xml from './xml.js';
36
30
 
37
31
 
38
32
  /**
39
33
  * Class for a connection between blocks.
40
- * @implements {IASTNodeLocationWithBlock}
41
34
  * @alias Blockly.Connection
42
35
  */
43
- class Connection {
36
+ export class Connection implements IASTNodeLocationWithBlock {
37
+ /** Constants for checking whether two connections are compatible. */
38
+ static CAN_CONNECT = 0;
39
+ static REASON_SELF_CONNECTION = 1;
40
+ static REASON_WRONG_TYPE = 2;
41
+ static REASON_TARGET_NULL = 3;
42
+ static REASON_CHECKS_FAILED = 4;
43
+ static REASON_DIFFERENT_WORKSPACES = 5;
44
+ static REASON_SHADOW_PARENT = 6;
45
+ static REASON_DRAG_CHECKS_FAILED = 7;
46
+ static REASON_PREVIOUS_AND_OUTPUT = 8;
47
+
48
+ protected sourceBlock_: Block;
49
+
50
+ /** Connection this connection connects to. Null if not connected. */
51
+ targetConnection: Connection|null = null;
52
+
44
53
  /**
45
- * @param {!Block} source The block establishing this connection.
46
- * @param {number} type The type of the connection.
54
+ * Has this connection been disposed of?
55
+ * @internal
47
56
  */
48
- constructor(source, type) {
49
- /**
50
- * @type {!Block}
51
- * @protected
52
- */
53
- this.sourceBlock_ = source;
54
- /** @type {number} */
55
- this.type = type;
57
+ disposed = false;
56
58
 
57
- /**
58
- * Connection this connection connects to. Null if not connected.
59
- * @type {Connection}
60
- */
61
- this.targetConnection = null;
59
+ /** List of compatible value types. Null if all types are compatible. */
60
+ private check_: string[]|null = null;
62
61
 
63
- /**
64
- * Has this connection been disposed of?
65
- * @type {boolean}
66
- * @package
67
- */
68
- this.disposed = false;
69
-
70
- /**
71
- * List of compatible value types. Null if all types are compatible.
72
- * @type {Array}
73
- * @private
74
- */
75
- this.check_ = null;
76
-
77
- /**
78
- * DOM representation of a shadow block, or null if none.
79
- * @type {Element}
80
- * @private
81
- */
82
- this.shadowDom_ = null;
62
+ /** DOM representation of a shadow block, or null if none. */
63
+ private shadowDom_: Element|null = null;
83
64
 
84
- /**
85
- * Horizontal location of this connection.
86
- * @type {number}
87
- * @package
88
- */
89
- this.x = 0;
90
-
91
- /**
92
- * Vertical location of this connection.
93
- * @type {number}
94
- * @package
95
- */
96
- this.y = 0;
97
-
98
- /**
99
- * @type {?blocks.State}
100
- * @private
101
- */
102
- this.shadowState_ = null;
65
+ /**
66
+ * Horizontal location of this connection.
67
+ * @internal
68
+ */
69
+ x = 0;
70
+
71
+ /**
72
+ * Vertical location of this connection.
73
+ * @internal
74
+ */
75
+ y = 0;
76
+
77
+ private shadowState_: blocks.State|null = null;
78
+
79
+ /**
80
+ * @param source The block establishing this connection.
81
+ * @param type The type of the connection.
82
+ */
83
+ constructor(source: Block, public type: number) {
84
+ this.sourceBlock_ = source;
103
85
  }
104
86
 
105
87
  /**
106
88
  * Connect two connections together. This is the connection on the superior
107
89
  * block.
108
- * @param {!Connection} childConnection Connection on inferior block.
109
- * @protected
90
+ * @param childConnection Connection on inferior block.
110
91
  */
111
- connect_(childConnection) {
92
+ protected connect_(childConnection: Connection) {
112
93
  const INPUT = ConnectionType.INPUT_VALUE;
113
94
  const parentConnection = this;
114
95
  const parentBlock = parentConnection.getSourceBlock();
@@ -124,8 +105,8 @@ class Connection {
124
105
  if (parentConnection.isConnected()) {
125
106
  const shadowState = parentConnection.stashShadowState_();
126
107
  const target = parentConnection.targetBlock();
127
- if (target.isShadow()) {
128
- target.dispose(false);
108
+ if (target!.isShadow()) {
109
+ target!.dispose(false);
129
110
  } else {
130
111
  parentConnection.disconnect();
131
112
  orphan = target;
@@ -136,8 +117,8 @@ class Connection {
136
117
  // Connect the new connection to the parent.
137
118
  let event;
138
119
  if (eventUtils.isEnabled()) {
139
- event = /** @type {!BlockMove} */
140
- (new (eventUtils.get(eventUtils.BLOCK_MOVE))(childBlock));
120
+ event =
121
+ new (eventUtils.get(eventUtils.BLOCK_MOVE))!(childBlock) as BlockMove;
141
122
  }
142
123
  connectReciprocally(parentConnection, childConnection);
143
124
  childBlock.setParent(parentBlock);
@@ -152,7 +133,7 @@ class Connection {
152
133
  orphan.outputConnection :
153
134
  orphan.previousConnection;
154
135
  const connection = Connection.getConnectionForOrphanedConnection(
155
- childBlock, /** @type {!Connection} */ (orphanConnection));
136
+ childBlock, (orphanConnection));
156
137
  if (connection) {
157
138
  orphanConnection.connect(connection);
158
139
  } else {
@@ -163,7 +144,7 @@ class Connection {
163
144
 
164
145
  /**
165
146
  * Dispose of this connection and deal with connected blocks.
166
- * @package
147
+ * @internal
167
148
  */
168
149
  dispose() {
169
150
  // isConnected returns true for shadows and non-shadows.
@@ -183,57 +164,55 @@ class Connection {
183
164
 
184
165
  /**
185
166
  * Get the source block for this connection.
186
- * @return {!Block} The source block.
167
+ * @return The source block.
187
168
  */
188
- getSourceBlock() {
169
+ getSourceBlock(): Block {
189
170
  return this.sourceBlock_;
190
171
  }
191
172
 
192
173
  /**
193
174
  * Does the connection belong to a superior block (higher in the source
194
175
  * stack)?
195
- * @return {boolean} True if connection faces down or right.
176
+ * @return True if connection faces down or right.
196
177
  */
197
- isSuperior() {
178
+ isSuperior(): boolean {
198
179
  return this.type === ConnectionType.INPUT_VALUE ||
199
180
  this.type === ConnectionType.NEXT_STATEMENT;
200
181
  }
201
182
 
202
183
  /**
203
184
  * Is the connection connected?
204
- * @return {boolean} True if connection is connected to another connection.
185
+ * @return True if connection is connected to another connection.
205
186
  */
206
- isConnected() {
187
+ isConnected(): boolean {
207
188
  return !!this.targetConnection;
208
189
  }
209
190
 
210
191
  /**
211
192
  * Get the workspace's connection type checker object.
212
- * @return {!IConnectionChecker} The connection type checker for the
213
- * source block's workspace.
214
- * @package
193
+ * @return The connection type checker for the source block's workspace.
194
+ * @internal
215
195
  */
216
- getConnectionChecker() {
196
+ getConnectionChecker(): IConnectionChecker {
217
197
  return this.sourceBlock_.workspace.connectionChecker;
218
198
  }
219
199
 
220
200
  /**
221
201
  * Called when an attempted connection fails. NOP by default (i.e. for
222
202
  * headless workspaces).
223
- * @param {!Connection} _otherConnection Connection that this connection
224
- * failed to connect to.
225
- * @package
203
+ * @param _otherConnection Connection that this connection failed to connect
204
+ * to.
205
+ * @internal
226
206
  */
227
- onFailedConnect(_otherConnection) {
228
- // NOP
229
- }
207
+ onFailedConnect(_otherConnection: Connection) {}
208
+ // NOP
230
209
 
231
210
  /**
232
211
  * Connect this connection to another connection.
233
- * @param {!Connection} otherConnection Connection to connect to.
234
- * @return {boolean} Whether the the blocks are now connected or not.
212
+ * @param otherConnection Connection to connect to.
213
+ * @return Whether the the blocks are now connected or not.
235
214
  */
236
- connect(otherConnection) {
215
+ connect(otherConnection: Connection): boolean {
237
216
  if (this.targetConnection === otherConnection) {
238
217
  // Already connected together. NOP.
239
218
  return true;
@@ -261,9 +240,7 @@ class Connection {
261
240
  return this.isConnected();
262
241
  }
263
242
 
264
- /**
265
- * Disconnect this connection.
266
- */
243
+ /** Disconnect this connection. */
267
244
  disconnect() {
268
245
  const otherConnection = this.targetConnection;
269
246
  if (!otherConnection) {
@@ -303,18 +280,19 @@ class Connection {
303
280
 
304
281
  /**
305
282
  * Disconnect two blocks that are connected by this connection.
306
- * @param {!Block} parentBlock The superior block.
307
- * @param {!Block} childBlock The inferior block.
308
- * @protected
283
+ * @param parentBlock The superior block.
284
+ * @param childBlock The inferior block.
309
285
  */
310
- disconnectInternal_(parentBlock, childBlock) {
286
+ protected disconnectInternal_(parentBlock: Block, childBlock: Block) {
311
287
  let event;
312
288
  if (eventUtils.isEnabled()) {
313
- event = /** @type {!BlockMove} */
314
- (new (eventUtils.get(eventUtils.BLOCK_MOVE))(childBlock));
289
+ event =
290
+ new (eventUtils.get(eventUtils.BLOCK_MOVE))!(childBlock) as BlockMove;
315
291
  }
316
292
  const otherConnection = this.targetConnection;
317
- otherConnection.targetConnection = null;
293
+ if (otherConnection) {
294
+ otherConnection.targetConnection = null;
295
+ }
318
296
  this.targetConnection = null;
319
297
  childBlock.setParent(null);
320
298
  if (event) {
@@ -325,49 +303,45 @@ class Connection {
325
303
 
326
304
  /**
327
305
  * Respawn the shadow block if there was one connected to the this connection.
328
- * @protected
329
306
  */
330
- respawnShadow_() {
307
+ protected respawnShadow_() {
331
308
  // Have to keep respawnShadow_ for backwards compatibility.
332
309
  this.createShadowBlock_(true);
333
310
  }
334
311
 
335
312
  /**
336
313
  * Returns the block that this connection connects to.
337
- * @return {?Block} The connected block or null if none is connected.
314
+ * @return The connected block or null if none is connected.
338
315
  */
339
- targetBlock() {
316
+ targetBlock(): Block|null {
340
317
  if (this.isConnected()) {
341
- return this.targetConnection.getSourceBlock();
318
+ return this.targetConnection?.getSourceBlock() ?? null;
342
319
  }
343
320
  return null;
344
321
  }
345
322
 
346
323
  /**
347
324
  * Function to be called when this connection's compatible types have changed.
348
- * @protected
349
325
  */
350
- onCheckChanged_() {
326
+ protected onCheckChanged_() {
351
327
  // The new value type may not be compatible with the existing connection.
352
328
  if (this.isConnected() &&
353
329
  (!this.targetConnection ||
354
330
  !this.getConnectionChecker().canConnect(
355
331
  this, this.targetConnection, false))) {
356
332
  const child = this.isSuperior() ? this.targetBlock() : this.sourceBlock_;
357
- child.unplug();
333
+ child!.unplug();
358
334
  }
359
335
  }
360
336
 
361
337
  /**
362
338
  * Change a connection's compatibility.
363
- * @param {?(string|!Array<string>)} check Compatible value type or list of
364
- * value types. Null if all types are compatible.
365
- * @return {!Connection} The connection being modified
366
- * (to allow chaining).
339
+ * @param check Compatible value type or list of value types. Null if all
340
+ * types are compatible.
341
+ * @return The connection being modified (to allow chaining).
367
342
  */
368
- setCheck(check) {
343
+ setCheck(check: string|string[]|null): Connection {
369
344
  if (check) {
370
- // Ensure that check is in an array.
371
345
  if (!Array.isArray(check)) {
372
346
  check = [check];
373
347
  }
@@ -381,59 +355,55 @@ class Connection {
381
355
 
382
356
  /**
383
357
  * Get a connection's compatibility.
384
- * @return {?Array} List of compatible value types.
358
+ * @return List of compatible value types.
385
359
  * Null if all types are compatible.
386
- * @public
387
360
  */
388
- getCheck() {
361
+ getCheck(): string[]|null {
389
362
  return this.check_;
390
363
  }
391
364
 
392
365
  /**
393
366
  * Changes the connection's shadow block.
394
- * @param {?Element} shadowDom DOM representation of a block or null.
367
+ * @param shadowDom DOM representation of a block or null.
395
368
  */
396
- setShadowDom(shadowDom) {
397
- this.setShadowStateInternal_({shadowDom: shadowDom});
369
+ setShadowDom(shadowDom: Element|null) {
370
+ this.setShadowStateInternal_({shadowDom});
398
371
  }
399
372
 
400
373
  /**
401
374
  * Returns the xml representation of the connection's shadow block.
402
- * @param {boolean=} returnCurrent If true, and the shadow block is currently
403
- * attached to this connection, this serializes the state of that block
404
- * and returns it (so that field values are correct). Otherwise the saved
405
- * shadowDom is just returned.
406
- * @return {?Element} Shadow DOM representation of a block or null.
375
+ * @param returnCurrent If true, and the shadow block is currently attached to
376
+ * this connection, this serializes the state of that block and returns it
377
+ * (so that field values are correct). Otherwise the saved shadowDom is
378
+ * just returned.
379
+ * @return Shadow DOM representation of a block or null.
407
380
  */
408
- getShadowDom(returnCurrent) {
409
- return (returnCurrent && this.targetBlock().isShadow()) ?
410
- /** @type {!Element} */ (Xml.blockToDom(
411
- /** @type {!Block} */ (this.targetBlock()))) :
381
+ getShadowDom(returnCurrent?: boolean): Element|null {
382
+ return returnCurrent && this.targetBlock()!.isShadow() ?
383
+ Xml.blockToDom((this.targetBlock() as Block)) as Element :
412
384
  this.shadowDom_;
413
385
  }
414
386
 
415
387
  /**
416
388
  * Changes the connection's shadow block.
417
- * @param {?blocks.State} shadowState An state represetation of the block or
418
- * null.
389
+ * @param shadowState An state represetation of the block or null.
419
390
  */
420
- setShadowState(shadowState) {
421
- this.setShadowStateInternal_({shadowState: shadowState});
391
+ setShadowState(shadowState: blocks.State|null) {
392
+ this.setShadowStateInternal_({shadowState});
422
393
  }
423
394
 
424
395
  /**
425
396
  * Returns the serialized object representation of the connection's shadow
426
397
  * block.
427
- * @param {boolean=} returnCurrent If true, and the shadow block is currently
428
- * attached to this connection, this serializes the state of that block
429
- * and returns it (so that field values are correct). Otherwise the saved
430
- * state is just returned.
431
- * @return {?blocks.State} Serialized object representation of the block, or
432
- * null.
398
+ * @param returnCurrent If true, and the shadow block is currently attached to
399
+ * this connection, this serializes the state of that block and returns it
400
+ * (so that field values are correct). Otherwise the saved state is just
401
+ * returned.
402
+ * @return Serialized object representation of the block, or null.
433
403
  */
434
- getShadowState(returnCurrent) {
435
- if (returnCurrent && this.targetBlock() && this.targetBlock().isShadow()) {
436
- return blocks.save(/** @type {!Block} */ (this.targetBlock()));
404
+ getShadowState(returnCurrent?: boolean): blocks.State|null {
405
+ if (returnCurrent && this.targetBlock() && this.targetBlock()!.isShadow()) {
406
+ return blocks.save(this.targetBlock() as Block);
437
407
  }
438
408
  return this.shadowState_;
439
409
  }
@@ -446,21 +416,21 @@ class Connection {
446
416
  * and always return an empty list (the default).
447
417
  * {@link Blockly.RenderedConnection} overrides this behavior with a list
448
418
  * computed from the rendered positioning.
449
- * @param {number} _maxLimit The maximum radius to another connection.
450
- * @return {!Array<!Connection>} List of connections.
451
- * @package
419
+ * @param _maxLimit The maximum radius to another connection.
420
+ * @return List of connections.
421
+ * @internal
452
422
  */
453
- neighbours(_maxLimit) {
423
+ neighbours(_maxLimit: number): Connection[] {
454
424
  return [];
455
425
  }
456
426
 
457
427
  /**
458
428
  * Get the parent input of a connection.
459
- * @return {?Input} The input that the connection belongs to or null if
460
- * no parent exists.
461
- * @package
429
+ * @return The input that the connection belongs to or null if no parent
430
+ * exists.
431
+ * @internal
462
432
  */
463
- getParentInput() {
433
+ getParentInput(): Input|null {
464
434
  let parentInput = null;
465
435
  const inputs = this.sourceBlock_.inputList;
466
436
  for (let i = 0; i < inputs.length; i++) {
@@ -475,9 +445,9 @@ class Connection {
475
445
  /**
476
446
  * This method returns a string describing this Connection in developer terms
477
447
  * (English only). Intended to on be used in console logs and errors.
478
- * @return {string} The description.
448
+ * @return The description.
479
449
  */
480
- toString() {
450
+ toString(): string {
481
451
  const block = this.sourceBlock_;
482
452
  if (!block) {
483
453
  return 'Orphan Connection';
@@ -491,7 +461,7 @@ class Connection {
491
461
  msg = 'Next Connection of ';
492
462
  } else {
493
463
  let parentInput = null;
494
- for (let i = 0, input; (input = block.inputList[i]); i++) {
464
+ for (let i = 0, input; input = block.inputList[i]; i++) {
495
465
  if (input.connection === this) {
496
466
  parentInput = input;
497
467
  break;
@@ -510,11 +480,10 @@ class Connection {
510
480
  /**
511
481
  * Returns the state of the shadowDom_ and shadowState_ properties, then
512
482
  * temporarily sets those properties to null so no shadow respawns.
513
- * @return {{shadowDom: ?Element, shadowState: ?blocks.State}} The state of
514
- * both the shadowDom_ and shadowState_ properties.
515
- * @private
483
+ * @return The state of both the shadowDom_ and shadowState_ properties.
516
484
  */
517
- stashShadowState_() {
485
+ private stashShadowState_():
486
+ {shadowDom: Element|null, shadowState: blocks.State|null} {
518
487
  const shadowDom = this.getShadowDom(true);
519
488
  const shadowState = this.getShadowState(true);
520
489
  // Set to null so it doesn't respawn.
@@ -525,23 +494,25 @@ class Connection {
525
494
 
526
495
  /**
527
496
  * Reapplies the stashed state of the shadowDom_ and shadowState_ properties.
528
- * @param {{shadowDom: ?Element, shadowState: ?blocks.State}} param0 The state
529
- * to reapply to the shadowDom_ and shadowState_ properties.
530
- * @private
497
+ * @param param0 The state to reapply to the shadowDom_ and shadowState_
498
+ * properties.
531
499
  */
532
- applyShadowState_({shadowDom, shadowState}) {
500
+ private applyShadowState_({shadowDom, shadowState}: {
501
+ shadowDom: Element|null,
502
+ shadowState: blocks.State|null
503
+ }) {
533
504
  this.shadowDom_ = shadowDom;
534
505
  this.shadowState_ = shadowState;
535
506
  }
536
507
 
537
508
  /**
538
509
  * Sets the state of the shadow of this connection.
539
- * @param {{shadowDom: (?Element|undefined), shadowState:
540
- * (?blocks.State|undefined)}=} param0 The state to set the shadow of this
541
- * connection to.
542
- * @private
510
+ * @param param0 The state to set the shadow of this connection to.
543
511
  */
544
- setShadowStateInternal_({shadowDom = null, shadowState = null} = {}) {
512
+ private setShadowStateInternal_({shadowDom = null, shadowState = null}: {
513
+ shadowDom?: Element|null,
514
+ shadowState?: blocks.State|null
515
+ } = {}) {
545
516
  // One or both of these should always be null.
546
517
  // If neither is null, the shadowState will get priority.
547
518
  this.shadowDom_ = shadowDom;
@@ -550,13 +521,13 @@ class Connection {
550
521
  const target = this.targetBlock();
551
522
  if (!target) {
552
523
  this.respawnShadow_();
553
- if (this.targetBlock() && this.targetBlock().isShadow()) {
524
+ if (this.targetBlock() && this.targetBlock()!.isShadow()) {
554
525
  this.serializeShadow_(this.targetBlock());
555
526
  }
556
527
  } else if (target.isShadow()) {
557
528
  target.dispose(false);
558
529
  this.respawnShadow_();
559
- if (this.targetBlock() && this.targetBlock().isShadow()) {
530
+ if (this.targetBlock() && this.targetBlock()!.isShadow()) {
560
531
  this.serializeShadow_(this.targetBlock());
561
532
  }
562
533
  } else {
@@ -571,17 +542,16 @@ class Connection {
571
542
  /**
572
543
  * Creates a shadow block based on the current shadowState_ or shadowDom_.
573
544
  * shadowState_ gets priority.
574
- * @param {boolean} attemptToConnect Whether to try to connect the shadow
575
- * block to this connection or not.
576
- * @return {?Block} The shadow block that was created, or null if both the
577
- * shadowState_ and shadowDom_ are null.
578
- * @private
545
+ * @param attemptToConnect Whether to try to connect the shadow block to this
546
+ * connection or not.
547
+ * @return The shadow block that was created, or null if both the shadowState_
548
+ * and shadowDom_ are null.
579
549
  */
580
- createShadowBlock_(attemptToConnect) {
550
+ private createShadowBlock_(attemptToConnect: boolean): Block|null {
581
551
  const parentBlock = this.getSourceBlock();
582
552
  const shadowState = this.getShadowState();
583
553
  const shadowDom = this.getShadowDom();
584
- if (!parentBlock.workspace || (!shadowState && !shadowDom)) {
554
+ if (parentBlock.disposed || !shadowState && !shadowDom) {
585
555
  return null;
586
556
  }
587
557
 
@@ -625,14 +595,13 @@ class Connection {
625
595
  /**
626
596
  * Saves the given shadow block to both the shadowDom_ and shadowState_
627
597
  * properties, in their respective serialized forms.
628
- * @param {?Block} shadow The shadow to serialize, or null.
629
- * @private
598
+ * @param shadow The shadow to serialize, or null.
630
599
  */
631
- serializeShadow_(shadow) {
600
+ private serializeShadow_(shadow: Block|null) {
632
601
  if (!shadow) {
633
602
  return;
634
603
  }
635
- this.shadowDom_ = /** @type {!Element} */ (Xml.blockToDom(shadow));
604
+ this.shadowDom_ = Xml.blockToDom(shadow) as Element;
636
605
  this.shadowState_ = blocks.save(shadow);
637
606
  }
638
607
 
@@ -640,13 +609,12 @@ class Connection {
640
609
  * Returns the connection (starting at the startBlock) which will accept
641
610
  * the given connection. This includes compatible connection types and
642
611
  * connection checks.
643
- * @param {!Block} startBlock The block on which to start the search.
644
- * @param {!Connection} orphanConnection The connection that is looking
645
- * for a home.
646
- * @return {?Connection} The suitable connection point on the chain of
647
- * blocks, or null.
612
+ * @param startBlock The block on which to start the search.
613
+ * @param orphanConnection The connection that is looking for a home.
614
+ * @return The suitable connection point on the chain of blocks, or null.
648
615
  */
649
- static getConnectionForOrphanedConnection(startBlock, orphanConnection) {
616
+ static getConnectionForOrphanedConnection(
617
+ startBlock: Block, orphanConnection: Connection): Connection|null {
650
618
  if (orphanConnection.type === ConnectionType.OUTPUT_VALUE) {
651
619
  return getConnectionForOrphanedOutput(
652
620
  startBlock, orphanConnection.getSourceBlock());
@@ -661,48 +629,34 @@ class Connection {
661
629
  }
662
630
  }
663
631
 
664
- /**
665
- * Constants for checking whether two connections are compatible.
666
- */
667
- Connection.CAN_CONNECT = 0;
668
- Connection.REASON_SELF_CONNECTION = 1;
669
- Connection.REASON_WRONG_TYPE = 2;
670
- Connection.REASON_TARGET_NULL = 3;
671
- Connection.REASON_CHECKS_FAILED = 4;
672
- Connection.REASON_DIFFERENT_WORKSPACES = 5;
673
- Connection.REASON_SHADOW_PARENT = 6;
674
- Connection.REASON_DRAG_CHECKS_FAILED = 7;
675
- Connection.REASON_PREVIOUS_AND_OUTPUT = 8;
676
-
677
632
  /**
678
633
  * Update two connections to target each other.
679
- * @param {Connection} first The first connection to update.
680
- * @param {Connection} second The second connection to update.
634
+ * @param first The first connection to update.
635
+ * @param second The second connection to update.
681
636
  */
682
- const connectReciprocally = function(first, second) {
637
+ function connectReciprocally(first: Connection, second: Connection) {
683
638
  if (!first || !second) {
684
639
  throw Error('Cannot connect null connections.');
685
640
  }
686
641
  first.targetConnection = second;
687
642
  second.targetConnection = first;
688
- };
689
-
643
+ }
690
644
  /**
691
645
  * Returns the single connection on the block that will accept the orphaned
692
646
  * block, if one can be found. If the block has multiple compatible connections
693
647
  * (even if they are filled) this returns null. If the block has no compatible
694
648
  * connections, this returns null.
695
- * @param {!Block} block The superior block.
696
- * @param {!Block} orphanBlock The inferior block.
697
- * @return {?Connection} The suitable connection point on 'block',
698
- * or null.
649
+ * @param block The superior block.
650
+ * @param orphanBlock The inferior block.
651
+ * @return The suitable connection point on 'block', or null.
699
652
  */
700
- const getSingleConnection = function(block, orphanBlock) {
653
+ function getSingleConnection(block: Block, orphanBlock: Block): Connection|
654
+ null {
701
655
  let foundConnection = null;
702
656
  const output = orphanBlock.outputConnection;
703
657
  const typeChecker = output.getConnectionChecker();
704
658
 
705
- for (let i = 0, input; (input = block.inputList[i]); i++) {
659
+ for (let i = 0, input; input = block.inputList[i]; i++) {
706
660
  const connection = input.connection;
707
661
  if (connection && typeChecker.canConnect(output, connection, false)) {
708
662
  if (foundConnection) {
@@ -712,7 +666,7 @@ const getSingleConnection = function(block, orphanBlock) {
712
666
  }
713
667
  }
714
668
  return foundConnection;
715
- };
669
+ }
716
670
 
717
671
  /**
718
672
  * Walks down a row a blocks, at each stage checking if there are any
@@ -720,23 +674,19 @@ const getSingleConnection = function(block, orphanBlock) {
720
674
  * are zero or multiple eligible connections, returns null. Otherwise
721
675
  * returns the only input on the last block in the chain.
722
676
  * Terminates early for shadow blocks.
723
- * @param {!Block} startBlock The block on which to start the search.
724
- * @param {!Block} orphanBlock The block that is looking for a home.
725
- * @return {?Connection} The suitable connection point on the chain
726
- * of blocks, or null.
677
+ * @param startBlock The block on which to start the search.
678
+ * @param orphanBlock The block that is looking for a home.
679
+ * @return The suitable connection point on the chain of blocks, or null.
727
680
  */
728
- const getConnectionForOrphanedOutput = function(startBlock, orphanBlock) {
729
- let newBlock = startBlock;
681
+ function getConnectionForOrphanedOutput(
682
+ startBlock: Block, orphanBlock: Block): Connection|null {
683
+ let newBlock: Block|null = startBlock;
730
684
  let connection;
731
- while (
732
- (connection = getSingleConnection(
733
- /** @type {!Block} */ (newBlock), orphanBlock))) {
685
+ while (connection = getSingleConnection(newBlock, orphanBlock)) {
734
686
  newBlock = connection.targetBlock();
735
687
  if (!newBlock || newBlock.isShadow()) {
736
688
  return connection;
737
689
  }
738
690
  }
739
691
  return null;
740
- };
741
-
742
- exports.Connection = Connection;
692
+ }