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,123 +7,120 @@
7
7
  /**
8
8
  * @fileoverview Text Area field.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Text Area field.
14
13
  * @class
15
14
  */
16
- goog.module('Blockly.FieldMultilineInput');
17
-
18
- const Css = goog.require('Blockly.Css');
19
- const WidgetDiv = goog.require('Blockly.WidgetDiv');
20
- const aria = goog.require('Blockly.utils.aria');
21
- const dom = goog.require('Blockly.utils.dom');
22
- const fieldRegistry = goog.require('Blockly.fieldRegistry');
23
- const parsing = goog.require('Blockly.utils.parsing');
24
- const userAgent = goog.require('Blockly.utils.userAgent');
25
- const {FieldTextInput} = goog.require('Blockly.FieldTextInput');
26
- const {Field} = goog.require('Blockly.Field');
27
- const {KeyCodes} = goog.require('Blockly.utils.KeyCodes');
28
- /* eslint-disable-next-line no-unused-vars */
29
- const {Sentinel} = goog.requireType('Blockly.utils.Sentinel');
30
- const {Svg} = goog.require('Blockly.utils.Svg');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.FieldMultilineInput');
17
+
18
+ import * as Css from './css.js';
19
+ import {Field} from './field.js';
20
+ import * as fieldRegistry from './field_registry.js';
21
+ import {FieldTextInputConfig, FieldTextInput} from './field_textinput.js';
22
+ import * as aria from './utils/aria.js';
23
+ import * as dom from './utils/dom.js';
24
+ import {KeyCodes} from './utils/keycodes.js';
25
+ import * as parsing from './utils/parsing.js';
26
+ import type {Sentinel} from './utils/sentinel.js';
27
+ import {Svg} from './utils/svg.js';
28
+ import * as userAgent from './utils/useragent.js';
29
+ import * as WidgetDiv from './widgetdiv.js';
31
30
 
32
31
 
33
32
  /**
34
33
  * Class for an editable text area field.
35
- * @extends {FieldTextInput}
36
34
  * @alias Blockly.FieldMultilineInput
37
35
  */
38
- class FieldMultilineInput extends FieldTextInput {
36
+ export class FieldMultilineInput extends FieldTextInput {
39
37
  /**
40
- * @param {(string|!Sentinel)=} opt_value The initial content of the
41
- * field. Should cast to a string. Defaults to an empty string if null or
42
- * undefined.
43
- * Also accepts Field.SKIP_SETUP if you wish to skip setup (only used by
44
- * subclasses that want to handle configuration and setting the field
45
- * value after their own constructors have run).
46
- * @param {Function=} opt_validator An optional function that is called
47
- * to validate any constraints on what the user entered. Takes the new
48
- * text as an argument and returns either the accepted text, a replacement
49
- * text, or null to abort the change.
50
- * @param {Object=} opt_config A map of options used to configure the field.
38
+ * The SVG group element that will contain a text element for each text row
39
+ * when initialized.
40
+ */
41
+ // AnyDuringMigration because: Type 'null' is not assignable to type
42
+ // 'SVGGElement'.
43
+ textGroup_: SVGGElement = null as AnyDuringMigration;
44
+
45
+ /**
46
+ * Defines the maximum number of lines of field.
47
+ * If exceeded, scrolling functionality is enabled.
48
+ */
49
+ protected maxLines_: number = Infinity;
50
+
51
+ /** Whether Y overflow is currently occurring. */
52
+ protected isOverflowedY_ = false;
53
+
54
+ /**
55
+ * @param opt_value The initial content of the field. Should cast to a string.
56
+ * Defaults to an empty string if null or undefined. Also accepts
57
+ * Field.SKIP_SETUP if you wish to skip setup (only used by subclasses
58
+ * that want to handle configuration and setting the field value after
59
+ * their own constructors have run).
60
+ * @param opt_validator An optional function that is called to validate any
61
+ * constraints on what the user entered. Takes the new text as an
62
+ * argument and returns either the accepted text, a replacement text, or
63
+ * null to abort the change.
64
+ * @param opt_config A map of options used to configure the field.
51
65
  * See the [field creation documentation]{@link
52
- * https://developers.google.com/blockly/guides/create-custom-blocks/fields/built-in-fields/multiline-text-input#creation}
53
- * for a list of properties this parameter supports.
66
+ * https://developers.google.com/blockly/guides/create-custom-blocks/fields/built-in-fields/multiline-text-input#creation}
67
+ * for a list of properties this parameter supports.
54
68
  */
55
- constructor(opt_value, opt_validator, opt_config) {
69
+ constructor(
70
+ opt_value?: string|Sentinel, opt_validator?: Function,
71
+ opt_config?: FieldMultilineInputConfig) {
56
72
  super(Field.SKIP_SETUP);
57
73
 
58
- /**
59
- * The SVG group element that will contain a text element for each text row
60
- * when initialized.
61
- * @type {SVGGElement}
62
- */
63
- this.textGroup_ = null;
64
-
65
- /**
66
- * Defines the maximum number of lines of field.
67
- * If exceeded, scrolling functionality is enabled.
68
- * @type {number}
69
- * @protected
70
- */
71
- this.maxLines_ = Infinity;
72
-
73
- /**
74
- * Whether Y overflow is currently occurring.
75
- * @type {boolean}
76
- * @protected
77
- */
78
- this.isOverflowedY_ = false;
79
-
80
- if (opt_value === Field.SKIP_SETUP) return;
81
- if (opt_config) this.configure_(opt_config);
74
+ if (opt_value === Field.SKIP_SETUP) {
75
+ return;
76
+ }
77
+ if (opt_config) {
78
+ this.configure_(opt_config);
79
+ }
82
80
  this.setValue(opt_value);
83
- if (opt_validator) this.setValidator(opt_validator);
81
+ if (opt_validator) {
82
+ this.setValidator(opt_validator);
83
+ }
84
84
  }
85
85
 
86
- /**
87
- * @override
88
- */
89
- configure_(config) {
86
+ protected override configure_(config: FieldMultilineInputConfig) {
90
87
  super.configure_(config);
91
- config.maxLines && this.setMaxLines(config.maxLines);
88
+ if (config.maxLines) this.setMaxLines(config.maxLines);
92
89
  }
93
90
 
94
91
  /**
95
92
  * Serializes this field's value to XML. Should only be called by Blockly.Xml.
96
- * @param {!Element} fieldElement The element to populate with info about the
97
- * field's state.
98
- * @return {!Element} The element containing info about the field's state.
99
- * @package
93
+ * @param fieldElement The element to populate with info about the field's
94
+ * state.
95
+ * @return The element containing info about the field's state.
96
+ * @internal
100
97
  */
101
- toXml(fieldElement) {
98
+ override toXml(fieldElement: Element): Element {
102
99
  // Replace '\n' characters with HTML-escaped equivalent '&#10'. This is
103
100
  // needed so the plain-text representation of the XML produced by
104
101
  // `Blockly.Xml.domToText` will appear on a single line (this is a
105
102
  // limitation of the plain-text format).
106
- fieldElement.textContent = this.getValue().replace(/\n/g, '
');
103
+ fieldElement.textContent =
104
+ (this.getValue() as string).replace(/\n/g, '
');
107
105
  return fieldElement;
108
106
  }
109
107
 
110
108
  /**
111
109
  * Sets the field's value based on the given XML element. Should only be
112
110
  * called by Blockly.Xml.
113
- * @param {!Element} fieldElement The element containing info about the
114
- * field's state.
115
- * @package
111
+ * @param fieldElement The element containing info about the field's state.
112
+ * @internal
116
113
  */
117
- fromXml(fieldElement) {
118
- this.setValue(fieldElement.textContent.replace(/
/g, '\n'));
114
+ override fromXml(fieldElement: Element) {
115
+ this.setValue(fieldElement.textContent!.replace(/
/g, '\n'));
119
116
  }
120
117
 
121
118
  /**
122
119
  * Saves this field's value.
123
- * @return {*} The state of this field.
124
- * @package
120
+ * @return The state of this field.
121
+ * @internal
125
122
  */
126
- saveState() {
123
+ override saveState(): AnyDuringMigration {
127
124
  const legacyState = this.saveLegacyState(FieldMultilineInput);
128
125
  if (legacyState !== null) {
129
126
  return legacyState;
@@ -133,12 +130,10 @@ class FieldMultilineInput extends FieldTextInput {
133
130
 
134
131
  /**
135
132
  * Sets the field's value based on the given state.
136
- * @param {*} state The state of the variable to assign to this variable
137
- * field.
138
- * @override
139
- * @package
133
+ * @param state The state of the variable to assign to this variable field.
134
+ * @internal
140
135
  */
141
- loadState(state) {
136
+ override loadState(state: AnyDuringMigration) {
142
137
  if (this.loadLegacyState(Field, state)) {
143
138
  return;
144
139
  }
@@ -147,9 +142,9 @@ class FieldMultilineInput extends FieldTextInput {
147
142
 
148
143
  /**
149
144
  * Create the block UI for this field.
150
- * @package
145
+ * @internal
151
146
  */
152
- initView() {
147
+ override initView() {
153
148
  this.createBorderRect_();
154
149
  this.textGroup_ = dom.createSvgElement(
155
150
  Svg.G, {
@@ -161,11 +156,9 @@ class FieldMultilineInput extends FieldTextInput {
161
156
  /**
162
157
  * Get the text from this field as displayed on screen. May differ from
163
158
  * getText due to ellipsis, and other formatting.
164
- * @return {string} Currently displayed text.
165
- * @protected
166
- * @override
159
+ * @return Currently displayed text.
167
160
  */
168
- getDisplayText_() {
161
+ protected override getDisplayText_(): string {
169
162
  let textLines = this.getText();
170
163
  if (!textLines) {
171
164
  // Prevent the field from disappearing if empty.
@@ -204,23 +197,19 @@ class FieldMultilineInput extends FieldTextInput {
204
197
  * field, and updates the text of the field if it is not currently being
205
198
  * edited (i.e. handled by the htmlInput_). Is being redefined here to update
206
199
  * overflow state of the field.
207
- * @param {*} newValue The value to be saved. The default validator guarantees
208
- * that this is a string.
209
- * @protected
200
+ * @param newValue The value to be saved. The default validator guarantees
201
+ * that this is a string.
210
202
  */
211
- doValueUpdate_(newValue) {
203
+ protected override doValueUpdate_(newValue: AnyDuringMigration) {
212
204
  super.doValueUpdate_(newValue);
213
205
  this.isOverflowedY_ = this.value_.split('\n').length > this.maxLines_;
214
206
  }
215
207
 
216
- /**
217
- * Updates the text of the textElement.
218
- * @protected
219
- */
220
- render_() {
208
+ /** Updates the text of the textElement. */
209
+ protected override render_() {
221
210
  // Remove all text group children.
222
211
  let currentChild;
223
- while ((currentChild = this.textGroup_.firstChild)) {
212
+ while (currentChild = this.textGroup_.firstChild) {
224
213
  this.textGroup_.removeChild(currentChild);
225
214
  }
226
215
 
@@ -228,14 +217,14 @@ class FieldMultilineInput extends FieldTextInput {
228
217
  const lines = this.getDisplayText_().split('\n');
229
218
  let y = 0;
230
219
  for (let i = 0; i < lines.length; i++) {
231
- const lineHeight = this.getConstants().FIELD_TEXT_HEIGHT +
232
- this.getConstants().FIELD_BORDER_RECT_Y_PADDING;
220
+ const lineHeight = this.getConstants()!.FIELD_TEXT_HEIGHT +
221
+ this.getConstants()!.FIELD_BORDER_RECT_Y_PADDING;
233
222
  const span = dom.createSvgElement(
234
223
  Svg.TEXT, {
235
224
  'class': 'blocklyText blocklyMultilineText',
236
- 'x': this.getConstants().FIELD_BORDER_RECT_X_PADDING,
237
- 'y': y + this.getConstants().FIELD_BORDER_RECT_Y_PADDING,
238
- 'dy': this.getConstants().FIELD_TEXT_BASELINE,
225
+ 'x': this.getConstants()!.FIELD_BORDER_RECT_X_PADDING,
226
+ 'y': y + this.getConstants()!.FIELD_BORDER_RECT_Y_PADDING,
227
+ 'dy': this.getConstants()!.FIELD_TEXT_BASELINE,
239
228
  },
240
229
  this.textGroup_);
241
230
  span.appendChild(document.createTextNode(lines[i]));
@@ -243,7 +232,7 @@ class FieldMultilineInput extends FieldTextInput {
243
232
  }
244
233
 
245
234
  if (this.isBeingEdited_) {
246
- const htmlInput = /** @type {!HTMLElement} */ (this.htmlInput_);
235
+ const htmlInput = this.htmlInput_ as HTMLElement;
247
236
  if (this.isOverflowedY_) {
248
237
  dom.addClass(htmlInput, 'blocklyHtmlTextAreaInputOverflowedY');
249
238
  } else {
@@ -262,7 +251,7 @@ class FieldMultilineInput extends FieldTextInput {
262
251
  } else {
263
252
  this.resizeEditor_();
264
253
  }
265
- const htmlInput = /** @type {!HTMLElement} */ (this.htmlInput_);
254
+ const htmlInput = this.htmlInput_ as HTMLElement;
266
255
  if (!this.isTextValid_) {
267
256
  dom.addClass(htmlInput, 'blocklyInvalidInput');
268
257
  aria.setState(htmlInput, aria.State.INVALID, true);
@@ -273,22 +262,19 @@ class FieldMultilineInput extends FieldTextInput {
273
262
  }
274
263
  }
275
264
 
276
- /**
277
- * Updates the size of the field based on the text.
278
- * @protected
279
- */
280
- updateSize_() {
265
+ /** Updates the size of the field based on the text. */
266
+ protected override updateSize_() {
281
267
  const nodes = this.textGroup_.childNodes;
282
268
  let totalWidth = 0;
283
269
  let totalHeight = 0;
284
270
  for (let i = 0; i < nodes.length; i++) {
285
- const tspan = /** @type {!Element} */ (nodes[i]);
271
+ const tspan = nodes[i] as SVGTextElement;
286
272
  const textWidth = dom.getTextWidth(tspan);
287
273
  if (textWidth > totalWidth) {
288
274
  totalWidth = textWidth;
289
275
  }
290
- totalHeight += this.getConstants().FIELD_TEXT_HEIGHT +
291
- (i > 0 ? this.getConstants().FIELD_BORDER_RECT_Y_PADDING : 0);
276
+ totalHeight += this.getConstants()!.FIELD_TEXT_HEIGHT +
277
+ (i > 0 ? this.getConstants()!.FIELD_BORDER_RECT_Y_PADDING : 0);
292
278
  }
293
279
  if (this.isBeingEdited_) {
294
280
  // The default width is based on the longest line in the display text,
@@ -299,9 +285,9 @@ class FieldMultilineInput extends FieldTextInput {
299
285
  const actualEditorLines = this.value_.split('\n');
300
286
  const dummyTextElement = dom.createSvgElement(
301
287
  Svg.TEXT, {'class': 'blocklyText blocklyMultilineText'});
302
- const fontSize = this.getConstants().FIELD_TEXT_FONTSIZE;
303
- const fontWeight = this.getConstants().FIELD_TEXT_FONTWEIGHT;
304
- const fontFamily = this.getConstants().FIELD_TEXT_FONTFAMILY;
288
+ const fontSize = this.getConstants()!.FIELD_TEXT_FONTSIZE;
289
+ const fontWeight = this.getConstants()!.FIELD_TEXT_FONTWEIGHT;
290
+ const fontFamily = this.getConstants()!.FIELD_TEXT_FONTFAMILY;
305
291
 
306
292
  for (let i = 0; i < actualEditorLines.length; i++) {
307
293
  if (actualEditorLines[i].length > this.maxDisplayLength) {
@@ -317,14 +303,19 @@ class FieldMultilineInput extends FieldTextInput {
317
303
  }
318
304
 
319
305
  const scrollbarWidth =
320
- this.htmlInput_.offsetWidth - this.htmlInput_.clientWidth;
306
+ this.htmlInput_!.offsetWidth - this.htmlInput_!.clientWidth;
321
307
  totalWidth += scrollbarWidth;
322
308
  }
323
309
  if (this.borderRect_) {
324
- totalHeight += this.getConstants().FIELD_BORDER_RECT_Y_PADDING * 2;
325
- totalWidth += this.getConstants().FIELD_BORDER_RECT_X_PADDING * 2;
326
- this.borderRect_.setAttribute('width', totalWidth);
327
- this.borderRect_.setAttribute('height', totalHeight);
310
+ totalHeight += this.getConstants()!.FIELD_BORDER_RECT_Y_PADDING * 2;
311
+ totalWidth += this.getConstants()!.FIELD_BORDER_RECT_X_PADDING * 2;
312
+ // AnyDuringMigration because: Argument of type 'number' is not
313
+ // assignable to parameter of type 'string'.
314
+ this.borderRect_.setAttribute('width', totalWidth as AnyDuringMigration);
315
+ // AnyDuringMigration because: Argument of type 'number' is not
316
+ // assignable to parameter of type 'string'.
317
+ this.borderRect_.setAttribute(
318
+ 'height', totalHeight as AnyDuringMigration);
328
319
  }
329
320
  this.size_.width = totalWidth;
330
321
  this.size_.height = totalHeight;
@@ -336,49 +327,49 @@ class FieldMultilineInput extends FieldTextInput {
336
327
  * Show the inline free-text editor on top of the text.
337
328
  * Overrides the default behaviour to force rerender in order to
338
329
  * correct block size, based on editor text.
339
- * @param {Event=} _opt_e Optional mouse event that triggered the field to
340
- * open, or undefined if triggered programmatically.
341
- * @param {boolean=} opt_quietInput True if editor should be created without
342
- * focus. Defaults to false.
343
- * @override
330
+ * @param _opt_e Optional mouse event that triggered the field to open, or
331
+ * undefined if triggered programmatically.
332
+ * @param opt_quietInput True if editor should be created without focus.
333
+ * Defaults to false.
344
334
  */
345
- showEditor_(_opt_e, opt_quietInput) {
335
+ override showEditor_(_opt_e?: Event, opt_quietInput?: boolean) {
346
336
  super.showEditor_(_opt_e, opt_quietInput);
347
337
  this.forceRerender();
348
338
  }
349
339
 
350
340
  /**
351
341
  * Create the text input editor widget.
352
- * @return {!HTMLTextAreaElement} The newly created text input editor.
353
- * @protected
342
+ * @return The newly created text input editor.
354
343
  */
355
- widgetCreate_() {
344
+ protected override widgetCreate_(): HTMLTextAreaElement {
356
345
  const div = WidgetDiv.getDiv();
357
- const scale = this.workspace_.getScale();
346
+ const scale = this.workspace_!.getScale();
358
347
 
359
- const htmlInput =
360
- /** @type {HTMLTextAreaElement} */ (document.createElement('textarea'));
348
+ const htmlInput = (document.createElement('textarea'));
361
349
  htmlInput.className = 'blocklyHtmlInput blocklyHtmlTextAreaInput';
362
- htmlInput.setAttribute('spellcheck', this.spellcheck_);
363
- const fontSize = (this.getConstants().FIELD_TEXT_FONTSIZE * scale) + 'pt';
364
- div.style.fontSize = fontSize;
350
+ // AnyDuringMigration because: Argument of type 'boolean' is not assignable
351
+ // to parameter of type 'string'.
352
+ htmlInput.setAttribute(
353
+ 'spellcheck', this.spellcheck_ as AnyDuringMigration);
354
+ const fontSize = this.getConstants()!.FIELD_TEXT_FONTSIZE * scale + 'pt';
355
+ div!.style.fontSize = fontSize;
365
356
  htmlInput.style.fontSize = fontSize;
366
- const borderRadius = (FieldTextInput.BORDERRADIUS * scale) + 'px';
357
+ const borderRadius = FieldTextInput.BORDERRADIUS * scale + 'px';
367
358
  htmlInput.style.borderRadius = borderRadius;
368
- const paddingX = this.getConstants().FIELD_BORDER_RECT_X_PADDING * scale;
359
+ const paddingX = this.getConstants()!.FIELD_BORDER_RECT_X_PADDING * scale;
369
360
  const paddingY =
370
- this.getConstants().FIELD_BORDER_RECT_Y_PADDING * scale / 2;
361
+ this.getConstants()!.FIELD_BORDER_RECT_Y_PADDING * scale / 2;
371
362
  htmlInput.style.padding = paddingY + 'px ' + paddingX + 'px ' + paddingY +
372
363
  'px ' + paddingX + 'px';
373
- const lineHeight = this.getConstants().FIELD_TEXT_HEIGHT +
374
- this.getConstants().FIELD_BORDER_RECT_Y_PADDING;
375
- htmlInput.style.lineHeight = (lineHeight * scale) + 'px';
364
+ const lineHeight = this.getConstants()!.FIELD_TEXT_HEIGHT +
365
+ this.getConstants()!.FIELD_BORDER_RECT_Y_PADDING;
366
+ htmlInput.style.lineHeight = lineHeight * scale + 'px';
376
367
 
377
- div.appendChild(htmlInput);
368
+ div!.appendChild(htmlInput);
378
369
 
379
370
  htmlInput.value = htmlInput.defaultValue = this.getEditorText_(this.value_);
380
- htmlInput.untypedDefaultValue_ = this.value_;
381
- htmlInput.oldValue_ = null;
371
+ htmlInput.setAttribute('data-untyped-default-value', this.value_);
372
+ htmlInput.setAttribute('data-old-value', '');
382
373
  if (userAgent.GECKO) {
383
374
  // In FF, ensure the browser reflows before resizing to avoid issue #2777.
384
375
  setTimeout(this.resizeEditor_.bind(this), 0);
@@ -393,10 +384,10 @@ class FieldMultilineInput extends FieldTextInput {
393
384
 
394
385
  /**
395
386
  * Sets the maxLines config for this field.
396
- * @param {number} maxLines Defines the maximum number of lines allowed,
397
- * before scrolling functionality is enabled.
387
+ * @param maxLines Defines the maximum number of lines allowed, before
388
+ * scrolling functionality is enabled.
398
389
  */
399
- setMaxLines(maxLines) {
390
+ setMaxLines(maxLines: number) {
400
391
  if (typeof maxLines === 'number' && maxLines > 0 &&
401
392
  maxLines !== this.maxLines_) {
402
393
  this.maxLines_ = maxLines;
@@ -406,20 +397,21 @@ class FieldMultilineInput extends FieldTextInput {
406
397
 
407
398
  /**
408
399
  * Returns the maxLines config of this field.
409
- * @return {number} The maxLines config value.
400
+ * @return The maxLines config value.
410
401
  */
411
- getMaxLines() {
402
+ getMaxLines(): number {
412
403
  return this.maxLines_;
413
404
  }
414
405
 
415
406
  /**
416
407
  * Handle key down to the editor. Override the text input definition of this
417
408
  * so as to not close the editor when enter is typed in.
418
- * @param {!Event} e Keyboard event.
419
- * @protected
409
+ * @param e Keyboard event.
420
410
  */
421
- onHtmlInputKeyDown_(e) {
422
- if (e.keyCode !== KeyCodes.ENTER) {
411
+ protected override onHtmlInputKeyDown_(e: Event) {
412
+ // AnyDuringMigration because: Property 'keyCode' does not exist on type
413
+ // 'Event'.
414
+ if ((e as AnyDuringMigration).keyCode !== KeyCodes.ENTER) {
423
415
  super.onHtmlInputKeyDown_(e);
424
416
  }
425
417
  }
@@ -427,23 +419,21 @@ class FieldMultilineInput extends FieldTextInput {
427
419
  /**
428
420
  * Construct a FieldMultilineInput from a JSON arg object,
429
421
  * dereferencing any string table references.
430
- * @param {!Object} options A JSON object with options (text, and spellcheck).
431
- * @return {!FieldMultilineInput} The new field instance.
432
- * @package
422
+ * @param options A JSON object with options (text, and spellcheck).
423
+ * @return The new field instance.
433
424
  * @nocollapse
434
- * @override
425
+ * @internal
435
426
  */
436
- static fromJson(options) {
437
- const text = parsing.replaceMessageReferences(options['text']);
427
+ static override fromJson(options: FieldMultilineInputFromJsonConfig):
428
+ FieldMultilineInput {
429
+ const text = parsing.replaceMessageReferences(options.text);
438
430
  // `this` might be a subclass of FieldMultilineInput if that class doesn't
439
431
  // override the static fromJson method.
440
432
  return new this(text, undefined, options);
441
433
  }
442
434
  }
443
435
 
444
- /**
445
- * CSS for multiline field. See css.js for use.
446
- */
436
+ /** CSS for multiline field. See css.js for use. */
447
437
  Css.register(`
448
438
  .blocklyHtmlTextAreaInput {
449
439
  font-family: monospace;
@@ -460,4 +450,17 @@ Css.register(`
460
450
 
461
451
  fieldRegistry.register('field_multilinetext', FieldMultilineInput);
462
452
 
463
- exports.FieldMultilineInput = FieldMultilineInput;
453
+ /**
454
+ * Config options for the multiline input field.
455
+ */
456
+ export interface FieldMultilineInputConfig extends FieldTextInputConfig {
457
+ maxLines?: number;
458
+ }
459
+
460
+ /**
461
+ * fromJson config options for the multiline input field.
462
+ */
463
+ export interface FieldMultilineInputFromJsonConfig extends
464
+ FieldMultilineInputConfig {
465
+ text?: string;
466
+ }