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,172 +7,156 @@
7
7
  /**
8
8
  * @fileoverview Variable input field.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Variable input field.
14
13
  * @class
15
14
  */
16
- goog.module('Blockly.FieldVariable');
17
-
18
- const Variables = goog.require('Blockly.Variables');
19
- const Xml = goog.require('Blockly.Xml');
20
- const fieldRegistry = goog.require('Blockly.fieldRegistry');
21
- const internalConstants = goog.require('Blockly.internalConstants');
22
- const parsing = goog.require('Blockly.utils.parsing');
23
- /* eslint-disable-next-line no-unused-vars */
24
- const {Block} = goog.requireType('Blockly.Block');
25
- const {Field} = goog.require('Blockly.Field');
26
- const {FieldDropdown} = goog.require('Blockly.FieldDropdown');
27
- /* eslint-disable-next-line no-unused-vars */
28
- const {MenuItem} = goog.requireType('Blockly.MenuItem');
29
- /* eslint-disable-next-line no-unused-vars */
30
- const {Menu} = goog.requireType('Blockly.Menu');
31
- const {Msg} = goog.require('Blockly.Msg');
32
- /* eslint-disable-next-line no-unused-vars */
33
- const {Sentinel} = goog.requireType('Blockly.utils.Sentinel');
34
- const {Size} = goog.require('Blockly.utils.Size');
35
- const {VariableModel} = goog.require('Blockly.VariableModel');
36
- /** @suppress {extraRequire} */
37
- goog.require('Blockly.Events.BlockChange');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.FieldVariable');
17
+
18
+ // Unused import preserved for side-effects. Remove if unneeded.
19
+ import './events/events_block_change.js';
20
+
21
+ import type {Block} from './block.js';
22
+ import {Field, FieldConfig} from './field.js';
23
+ import {FieldDropdown} from './field_dropdown.js';
24
+ import * as fieldRegistry from './field_registry.js';
25
+ import * as internalConstants from './internal_constants.js';
26
+ import type {Menu} from './menu.js';
27
+ import type {MenuItem} from './menuitem.js';
28
+ import {Msg} from './msg.js';
29
+ import * as parsing from './utils/parsing.js';
30
+ import type {Sentinel} from './utils/sentinel.js';
31
+ import {Size} from './utils/size.js';
32
+ import {VariableModel} from './variable_model.js';
33
+ import * as Variables from './variables.js';
34
+ import * as Xml from './xml.js';
38
35
 
39
36
 
40
37
  /**
41
38
  * Class for a variable's dropdown field.
42
- * @extends {FieldDropdown}
43
39
  * @alias Blockly.FieldVariable
44
40
  */
45
- class FieldVariable extends FieldDropdown {
41
+ export class FieldVariable extends FieldDropdown {
42
+ protected override menuGenerator_: AnyDuringMigration[][]|
43
+ ((this: FieldDropdown) => AnyDuringMigration[][]);
44
+ defaultVariableName: string;
45
+
46
+ /** The type of the default variable for this field. */
47
+ private defaultType_ = '';
48
+
49
+ /**
50
+ * All of the types of variables that will be available in this field's
51
+ * dropdown.
52
+ */
53
+ variableTypes: string[]|null = [];
54
+ protected override size_: Size;
55
+
56
+ /** The variable model associated with this field. */
57
+ private variable_: VariableModel|null = null;
58
+
46
59
  /**
47
- * @param {?string|!Sentinel} varName The default name for the variable.
60
+ * Serializable fields are saved by the serializer, non-serializable fields
61
+ * are not. Editable fields should also be serializable.
62
+ */
63
+ override SERIALIZABLE = true;
64
+
65
+ /**
66
+ * @param varName The default name for the variable.
48
67
  * If null, a unique variable name will be generated.
49
68
  * Also accepts Field.SKIP_SETUP if you wish to skip setup (only used by
50
- * subclasses that want to handle configuration and setting the field
51
- * value after their own constructors have run).
52
- * @param {Function=} opt_validator A function that is called to validate
53
- * changes to the field's value. Takes in a variable ID & returns a
54
- * validated variable ID, or null to abort the change.
55
- * @param {Array<string>=} opt_variableTypes A list of the types of variables
56
- * to include in the dropdown. Will only be used if opt_config is not
57
- * provided.
58
- * @param {string=} opt_defaultType The type of variable to create if this
59
- * field's value is not explicitly set. Defaults to ''. Will only be used
60
- * if opt_config is not provided.
61
- * @param {Object=} opt_config A map of options used to configure the field.
69
+ * subclasses that want to handle configuration and setting the field value
70
+ * after their own constructors have run).
71
+ * @param opt_validator A function that is called to validate changes to the
72
+ * field's value. Takes in a variable ID & returns a validated variable
73
+ * ID, or null to abort the change.
74
+ * @param opt_variableTypes A list of the types of variables to include in the
75
+ * dropdown. Will only be used if opt_config is not provided.
76
+ * @param opt_defaultType The type of variable to create if this field's value
77
+ * is not explicitly set. Defaults to ''. Will only be used if opt_config
78
+ * is not provided.
79
+ * @param opt_config A map of options used to configure the field.
62
80
  * See the [field creation documentation]{@link
63
- * https://developers.google.com/blockly/guides/create-custom-blocks/fields/built-in-fields/variable#creation}
64
- * for a list of properties this parameter supports.
81
+ * https://developers.google.com/blockly/guides/create-custom-blocks/fields/built-in-fields/variable#creation}
82
+ * for a list of properties this parameter supports.
65
83
  */
66
84
  constructor(
67
- varName, opt_validator, opt_variableTypes, opt_defaultType, opt_config) {
85
+ varName: string|null|Sentinel, opt_validator?: Function,
86
+ opt_variableTypes?: string[], opt_defaultType?: string,
87
+ opt_config?: FieldVariableConfig) {
68
88
  super(Field.SKIP_SETUP);
69
89
 
70
90
  /**
71
91
  * An array of options for a dropdown list,
72
92
  * or a function which generates these options.
73
- * @type {(!Array<!Array>|
74
- * !function(this:FieldDropdown): !Array<!Array>)}
75
- * @protected
76
93
  */
77
- this.menuGenerator_ = FieldVariable.dropdownCreate;
94
+ // AnyDuringMigration because: Type '(this: FieldVariable) => any[][]' is
95
+ // not assignable to type 'any[][] | ((this: FieldDropdown) => any[][])'.
96
+ this.menuGenerator_ = FieldVariable.dropdownCreate as AnyDuringMigration;
78
97
 
79
98
  /**
80
99
  * The initial variable name passed to this field's constructor, or an
81
100
  * empty string if a name wasn't provided. Used to create the initial
82
101
  * variable.
83
- * @type {string}
84
102
  */
85
103
  this.defaultVariableName = typeof varName === 'string' ? varName : '';
86
104
 
87
- /**
88
- * The type of the default variable for this field.
89
- * @type {string}
90
- * @private
91
- */
92
- this.defaultType_ = '';
93
-
94
- /**
95
- * All of the types of variables that will be available in this field's
96
- * dropdown.
97
- * @type {?Array<string>}
98
- */
99
- this.variableTypes = [];
100
-
101
- /**
102
- * The size of the area rendered by the field.
103
- * @type {Size}
104
- * @protected
105
- * @override
106
- */
105
+ /** The size of the area rendered by the field. */
107
106
  this.size_ = new Size(0, 0);
108
107
 
109
- /**
110
- * The variable model associated with this field.
111
- * @type {?VariableModel}
112
- * @private
113
- */
114
- this.variable_ = null;
115
-
116
- /**
117
- * Serializable fields are saved by the serializer, non-serializable fields
118
- * are not. Editable fields should also be serializable.
119
- * @type {boolean}
120
- */
121
- this.SERIALIZABLE = true;
122
-
123
- if (varName === Field.SKIP_SETUP) return;
108
+ if (varName === Field.SKIP_SETUP) {
109
+ return;
110
+ }
124
111
 
125
112
  if (opt_config) {
126
113
  this.configure_(opt_config);
127
114
  } else {
128
115
  this.setTypes_(opt_variableTypes, opt_defaultType);
129
116
  }
130
- if (opt_validator) this.setValidator(opt_validator);
117
+ if (opt_validator) {
118
+ this.setValidator(opt_validator);
119
+ }
131
120
  }
132
121
 
133
122
  /**
134
123
  * Configure the field based on the given map of options.
135
- * @param {!Object} config A map of options to configure the field based on.
136
- * @protected
124
+ * @param config A map of options to configure the field based on.
137
125
  */
138
- configure_(config) {
126
+ protected override configure_(config: FieldVariableConfig) {
139
127
  super.configure_(config);
140
- this.setTypes_(config['variableTypes'], config['defaultType']);
128
+ this.setTypes_(config.variableTypes, config.defaultType);
141
129
  }
142
130
 
143
131
  /**
144
132
  * Initialize the model for this field if it has not already been initialized.
145
133
  * If the value has not been set to a variable by the first render, we make up
146
134
  * a variable rather than let the value be invalid.
147
- * @package
135
+ * @internal
148
136
  */
149
- initModel() {
137
+ override initModel() {
150
138
  if (this.variable_) {
151
139
  return; // Initialization already happened.
152
140
  }
153
141
  const variable = Variables.getOrCreateVariablePackage(
154
142
  this.sourceBlock_.workspace, null, this.defaultVariableName,
155
143
  this.defaultType_);
156
-
157
144
  // Don't call setValue because we don't want to cause a rerender.
158
145
  this.doValueUpdate_(variable.getId());
159
146
  }
160
147
 
161
- /**
162
- * @override
163
- */
164
- shouldAddBorderRect_() {
148
+ override shouldAddBorderRect_() {
165
149
  return super.shouldAddBorderRect_() &&
166
- (!this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW ||
150
+ (!this.getConstants()!.FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW ||
167
151
  this.sourceBlock_.type !== 'variables_get');
168
152
  }
169
153
 
170
154
  /**
171
155
  * Initialize this field based on the given XML.
172
- * @param {!Element} fieldElement The element containing information about the
173
- * variable field's state.
156
+ * @param fieldElement The element containing information about the variable
157
+ * field's state.
174
158
  */
175
- fromXml(fieldElement) {
159
+ override fromXml(fieldElement: Element) {
176
160
  const id = fieldElement.getAttribute('id');
177
161
  const variableName = fieldElement.textContent;
178
162
  // 'variabletype' should be lowercase, but until July 2019 it was sometimes
@@ -180,8 +164,11 @@ class FieldVariable extends FieldDropdown {
180
164
  const variableType = fieldElement.getAttribute('variabletype') ||
181
165
  fieldElement.getAttribute('variableType') || '';
182
166
 
167
+ // AnyDuringMigration because: Argument of type 'string | null' is not
168
+ // assignable to parameter of type 'string | undefined'.
183
169
  const variable = Variables.getOrCreateVariablePackage(
184
- this.sourceBlock_.workspace, id, variableName, variableType);
170
+ this.sourceBlock_.workspace, id, variableName as AnyDuringMigration,
171
+ variableType);
185
172
 
186
173
  // This should never happen :)
187
174
  if (variableType !== null && variableType !== variable.type) {
@@ -197,54 +184,51 @@ class FieldVariable extends FieldDropdown {
197
184
 
198
185
  /**
199
186
  * Serialize this field to XML.
200
- * @param {!Element} fieldElement The element to populate with info about the
201
- * field's state.
202
- * @return {!Element} The element containing info about the field's state.
187
+ * @param fieldElement The element to populate with info about the field's
188
+ * state.
189
+ * @return The element containing info about the field's state.
203
190
  */
204
- toXml(fieldElement) {
191
+ override toXml(fieldElement: Element): Element {
205
192
  // Make sure the variable is initialized.
206
193
  this.initModel();
207
194
 
208
- fieldElement.id = this.variable_.getId();
209
- fieldElement.textContent = this.variable_.name;
210
- if (this.variable_.type) {
211
- fieldElement.setAttribute('variabletype', this.variable_.type);
195
+ fieldElement.id = this.variable_!.getId();
196
+ fieldElement.textContent = this.variable_!.name;
197
+ if (this.variable_!.type) {
198
+ fieldElement.setAttribute('variabletype', this.variable_!.type);
212
199
  }
213
200
  return fieldElement;
214
201
  }
215
202
 
216
203
  /**
217
204
  * Saves this field's value.
218
- * @param {boolean=} doFullSerialization If true, the variable field will
219
- * serialize the full state of the field being referenced (ie ID, name,
220
- * and type) rather than just a reference to it (ie ID).
221
- * @return {*} The state of the variable field.
222
- * @override
223
- * @package
205
+ * @param doFullSerialization If true, the variable field will serialize the
206
+ * full state of the field being referenced (ie ID, name, and type) rather
207
+ * than just a reference to it (ie ID).
208
+ * @return The state of the variable field.
209
+ * @internal
224
210
  */
225
- saveState(doFullSerialization) {
211
+ override saveState(doFullSerialization?: boolean): AnyDuringMigration {
226
212
  const legacyState = this.saveLegacyState(FieldVariable);
227
213
  if (legacyState !== null) {
228
214
  return legacyState;
229
215
  }
230
216
  // Make sure the variable is initialized.
231
217
  this.initModel();
232
- const state = {'id': this.variable_.getId()};
218
+ const state = {'id': this.variable_!.getId()};
233
219
  if (doFullSerialization) {
234
- state['name'] = this.variable_.name;
235
- state['type'] = this.variable_.type;
220
+ (state as AnyDuringMigration)['name'] = this.variable_!.name;
221
+ (state as AnyDuringMigration)['type'] = this.variable_!.type;
236
222
  }
237
223
  return state;
238
224
  }
239
225
 
240
226
  /**
241
227
  * Sets the field's value based on the given state.
242
- * @param {*} state The state of the variable to assign to this variable
243
- * field.
244
- * @override
245
- * @package
228
+ * @param state The state of the variable to assign to this variable field.
229
+ * @internal
246
230
  */
247
- loadState(state) {
231
+ override loadState(state: AnyDuringMigration) {
248
232
  if (this.loadLegacyState(FieldVariable, state)) {
249
233
  return;
250
234
  }
@@ -257,9 +241,9 @@ class FieldVariable extends FieldDropdown {
257
241
 
258
242
  /**
259
243
  * Attach this field to a block.
260
- * @param {!Block} block The block containing this field.
244
+ * @param block The block containing this field.
261
245
  */
262
- setSourceBlock(block) {
246
+ override setSourceBlock(block: Block) {
263
247
  if (block.isShadow()) {
264
248
  throw Error('Variable fields are not allowed to exist on shadow blocks.');
265
249
  }
@@ -268,18 +252,18 @@ class FieldVariable extends FieldDropdown {
268
252
 
269
253
  /**
270
254
  * Get the variable's ID.
271
- * @return {?string} Current variable's ID.
255
+ * @return Current variable's ID.
272
256
  */
273
- getValue() {
257
+ override getValue(): string|null {
274
258
  return this.variable_ ? this.variable_.getId() : null;
275
259
  }
276
260
 
277
261
  /**
278
262
  * Get the text from this field, which is the selected variable's name.
279
- * @return {string} The selected variable's name, or the empty string if no
280
- * variable is selected.
263
+ * @return The selected variable's name, or the empty string if no variable is
264
+ * selected.
281
265
  */
282
- getText() {
266
+ override getText(): string {
283
267
  return this.variable_ ? this.variable_.name : '';
284
268
  }
285
269
 
@@ -287,11 +271,10 @@ class FieldVariable extends FieldDropdown {
287
271
  * Get the variable model for the selected variable.
288
272
  * Not guaranteed to be in the variable map on the workspace (e.g. if accessed
289
273
  * after the variable has been deleted).
290
- * @return {?VariableModel} The selected variable, or null if none was
291
- * selected.
292
- * @package
274
+ * @return The selected variable, or null if none was selected.
275
+ * @internal
293
276
  */
294
- getVariable() {
277
+ getVariable(): VariableModel|null {
295
278
  return this.variable_;
296
279
  }
297
280
 
@@ -300,9 +283,9 @@ class FieldVariable extends FieldDropdown {
300
283
  * Returns null if the variable is not set, because validators should not
301
284
  * run on the initial setValue call, because the field won't be attached to
302
285
  * a block and workspace at that point.
303
- * @return {?Function} Validation function, or null.
286
+ * @return Validation function, or null.
304
287
  */
305
- getValidator() {
288
+ override getValidator(): Function|null {
306
289
  // Validators shouldn't operate on the initial setValue call.
307
290
  // Normally this is achieved by calling setValidator after setValue, but
308
291
  // this is not a possibility with variable fields.
@@ -314,15 +297,15 @@ class FieldVariable extends FieldDropdown {
314
297
 
315
298
  /**
316
299
  * Ensure that the ID belongs to a valid variable of an allowed type.
317
- * @param {*=} opt_newValue The ID of the new variable to set.
318
- * @return {?string} The validated ID, or null if invalid.
319
- * @protected
300
+ * @param opt_newValue The ID of the new variable to set.
301
+ * @return The validated ID, or null if invalid.
320
302
  */
321
- doClassValidation_(opt_newValue) {
303
+ protected override doClassValidation_(opt_newValue?: AnyDuringMigration):
304
+ string|null {
322
305
  if (opt_newValue === null) {
323
306
  return null;
324
307
  }
325
- const newId = /** @type {string} */ (opt_newValue);
308
+ const newId = opt_newValue as string;
326
309
  const variable = Variables.getVariable(this.sourceBlock_.workspace, newId);
327
310
  if (!variable) {
328
311
  console.warn(
@@ -345,22 +328,20 @@ class FieldVariable extends FieldDropdown {
345
328
  *
346
329
  * The variable ID should be valid at this point, but if a variable field
347
330
  * validator returns a bad ID, this could break.
348
- * @param {*} newId The value to be saved.
349
- * @protected
331
+ * @param newId The value to be saved.
350
332
  */
351
- doValueUpdate_(newId) {
352
- this.variable_ = Variables.getVariable(
353
- this.sourceBlock_.workspace, /** @type {string} */ (newId));
333
+ protected override doValueUpdate_(newId: AnyDuringMigration) {
334
+ this.variable_ =
335
+ Variables.getVariable(this.sourceBlock_.workspace, newId as string);
354
336
  super.doValueUpdate_(newId);
355
337
  }
356
338
 
357
339
  /**
358
340
  * Check whether the given variable type is allowed on this field.
359
- * @param {string} type The type to check.
360
- * @return {boolean} True if the type is in the list of allowed types.
361
- * @private
341
+ * @param type The type to check.
342
+ * @return True if the type is in the list of allowed types.
362
343
  */
363
- typeIsAllowed_(type) {
344
+ private typeIsAllowed_(type: string): boolean {
364
345
  const typeList = this.getVariableTypes_();
365
346
  if (!typeList) {
366
347
  return true; // If it's null, all types are valid.
@@ -375,16 +356,15 @@ class FieldVariable extends FieldDropdown {
375
356
 
376
357
  /**
377
358
  * Return a list of variable types to include in the dropdown.
378
- * @return {!Array<string>} Array of variable types.
359
+ * @return Array of variable types.
379
360
  * @throws {Error} if variableTypes is an empty array.
380
- * @private
381
361
  */
382
- getVariableTypes_() {
362
+ private getVariableTypes_(): string[] {
383
363
  // TODO (#1513): Try to avoid calling this every time the field is edited.
384
364
  let variableTypes = this.variableTypes;
385
365
  if (variableTypes === null) {
386
366
  // If variableTypes is null, return all variable types.
387
- if (this.sourceBlock_ && this.sourceBlock_.workspace) {
367
+ if (this.sourceBlock_ && !this.sourceBlock_.disposed) {
388
368
  return this.sourceBlock_.workspace.getVariableTypes();
389
369
  }
390
370
  }
@@ -401,14 +381,13 @@ class FieldVariable extends FieldDropdown {
401
381
  /**
402
382
  * Parse the optional arguments representing the allowed variable types and
403
383
  * the default variable type.
404
- * @param {Array<string>=} opt_variableTypes A list of the types of variables
405
- * to include in the dropdown. If null or undefined, variables of all
406
- * types will be displayed in the dropdown.
407
- * @param {string=} opt_defaultType The type of the variable to create if this
408
- * field's value is not explicitly set. Defaults to ''.
409
- * @private
384
+ * @param opt_variableTypes A list of the types of variables to include in the
385
+ * dropdown. If null or undefined, variables of all types will be
386
+ * displayed in the dropdown.
387
+ * @param opt_defaultType The type of the variable to create if this field's
388
+ * value is not explicitly set. Defaults to ''.
410
389
  */
411
- setTypes_(opt_variableTypes, opt_defaultType) {
390
+ private setTypes_(opt_variableTypes?: string[], opt_defaultType?: string) {
412
391
  // If you expected that the default type would be the same as the only entry
413
392
  // in the variable types array, tell the Blockly team by commenting on
414
393
  // #1499.
@@ -445,10 +424,9 @@ class FieldVariable extends FieldDropdown {
445
424
  * Refreshes the name of the variable by grabbing the name of the model.
446
425
  * Used when a variable gets renamed, but the ID stays the same. Should only
447
426
  * be called by the block.
448
- * @override
449
- * @package
427
+ * @internal
450
428
  */
451
- refreshVariableName() {
429
+ override refreshVariableName() {
452
430
  this.forceRerender();
453
431
  }
454
432
 
@@ -456,23 +434,21 @@ class FieldVariable extends FieldDropdown {
456
434
  * Handle the selection of an item in the variable dropdown menu.
457
435
  * Special case the 'Rename variable...' and 'Delete variable...' options.
458
436
  * In the rename case, prompt the user for a new name.
459
- * @param {!Menu} menu The Menu component clicked.
460
- * @param {!MenuItem} menuItem The MenuItem selected within menu.
461
- * @protected
437
+ * @param menu The Menu component clicked.
438
+ * @param menuItem The MenuItem selected within menu.
462
439
  */
463
- onItemSelected_(menu, menuItem) {
440
+ protected override onItemSelected_(menu: Menu, menuItem: MenuItem) {
464
441
  const id = menuItem.getValue();
465
442
  // Handle special cases.
466
- if (this.sourceBlock_ && this.sourceBlock_.workspace) {
443
+ if (this.sourceBlock_ && !this.sourceBlock_.disposed) {
467
444
  if (id === internalConstants.RENAME_VARIABLE_ID) {
468
445
  // Rename variable.
469
446
  Variables.renameVariable(
470
- this.sourceBlock_.workspace,
471
- /** @type {!VariableModel} */ (this.variable_));
447
+ this.sourceBlock_.workspace, this.variable_ as VariableModel);
472
448
  return;
473
449
  } else if (id === internalConstants.DELETE_VARIABLE_ID) {
474
450
  // Delete variable.
475
- this.sourceBlock_.workspace.deleteVariableById(this.variable_.getId());
451
+ this.sourceBlock_.workspace.deleteVariableById(this.variable_!.getId());
476
452
  return;
477
453
  }
478
454
  }
@@ -483,26 +459,25 @@ class FieldVariable extends FieldDropdown {
483
459
  /**
484
460
  * Overrides referencesVariables(), indicating this field refers to a
485
461
  * variable.
486
- * @return {boolean} True.
487
- * @package
488
- * @override
462
+ * @return True.
463
+ * @internal
489
464
  */
490
- referencesVariables() {
465
+ override referencesVariables(): boolean {
491
466
  return true;
492
467
  }
493
468
 
494
469
  /**
495
470
  * Construct a FieldVariable from a JSON arg object,
496
471
  * dereferencing any string table references.
497
- * @param {!Object} options A JSON object with options (variable,
498
- * variableTypes, and defaultType).
499
- * @return {!FieldVariable} The new field instance.
500
- * @package
472
+ * @param options A JSON object with options (variable, variableTypes, and
473
+ * defaultType).
474
+ * @return The new field instance.
501
475
  * @nocollapse
502
- * @override
476
+ * @internal
503
477
  */
504
- static fromJson(options) {
505
- const varName = parsing.replaceMessageReferences(options['variable']);
478
+ static override fromJson(options: FieldVariableFromJsonConfig):
479
+ FieldVariable {
480
+ const varName = parsing.replaceMessageReferences(options.variable);
506
481
  // `this` might be a subclass of FieldVariable if that class doesn't
507
482
  // override the static fromJson method.
508
483
  return new this(varName, undefined, undefined, undefined, options);
@@ -511,18 +486,17 @@ class FieldVariable extends FieldDropdown {
511
486
  /**
512
487
  * Return a sorted list of variable names for variable dropdown menus.
513
488
  * Include a special option at the end for creating a new variable name.
514
- * @return {!Array<!Array>} Array of variable names/id tuples.
515
- * @this {FieldVariable}
489
+ * @return Array of variable names/id tuples.
516
490
  */
517
- static dropdownCreate() {
491
+ static dropdownCreate(this: FieldVariable): AnyDuringMigration[][] {
518
492
  if (!this.variable_) {
519
493
  throw Error(
520
494
  'Tried to call dropdownCreate on a variable field with no' +
521
495
  ' variable selected.');
522
496
  }
523
497
  const name = this.getText();
524
- let variableModelList = [];
525
- if (this.sourceBlock_ && this.sourceBlock_.workspace) {
498
+ let variableModelList: AnyDuringMigration[] = [];
499
+ if (this.sourceBlock_ && !this.sourceBlock_.disposed) {
526
500
  const variableTypes = this.getVariableTypes_();
527
501
  // Get a copy of the list, so that adding rename and new variable options
528
502
  // doesn't modify the workspace's list.
@@ -555,4 +529,17 @@ class FieldVariable extends FieldDropdown {
555
529
 
556
530
  fieldRegistry.register('field_variable', FieldVariable);
557
531
 
558
- exports.FieldVariable = FieldVariable;
532
+ /**
533
+ * Config options for the variable field.
534
+ */
535
+ export interface FieldVariableConfig extends FieldConfig {
536
+ variableTypes?: string[];
537
+ defaultType?: string;
538
+ }
539
+
540
+ /**
541
+ * fromJson config options for the variable field.
542
+ */
543
+ export interface FieldVariableFromJsonConfig extends FieldVariableConfig {
544
+ variable?: string;
545
+ }