blockly 8.0.4 → 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 +420 -420
  609. package/msg/ace.js +420 -420
  610. package/msg/af.js +420 -420
  611. package/msg/am.js +420 -420
  612. package/msg/ar.js +420 -420
  613. package/msg/ast.js +420 -420
  614. package/msg/az.js +420 -420
  615. package/msg/ba.js +420 -420
  616. package/msg/bcc.js +420 -420
  617. package/msg/be-tarask.js +420 -420
  618. package/msg/be.js +420 -420
  619. package/msg/bg.js +420 -420
  620. package/msg/bn.js +420 -420
  621. package/msg/br.js +420 -420
  622. package/msg/bs.js +420 -420
  623. package/msg/ca.js +420 -420
  624. package/msg/cdo.js +420 -420
  625. package/msg/cs.js +420 -420
  626. package/msg/da.js +420 -420
  627. package/msg/de.js +420 -420
  628. package/msg/diq.js +420 -420
  629. package/msg/dty.js +420 -420
  630. package/msg/ee.js +420 -420
  631. package/msg/el.js +420 -420
  632. package/msg/en-gb.js +420 -420
  633. package/msg/en.js +420 -420
  634. package/msg/eo.js +420 -420
  635. package/msg/es.js +420 -420
  636. package/msg/et.js +420 -420
  637. package/msg/eu.js +420 -420
  638. package/msg/fa.js +420 -420
  639. package/msg/fi.js +420 -420
  640. package/msg/fo.js +420 -420
  641. package/msg/fr.js +420 -420
  642. package/msg/frr.js +420 -420
  643. package/msg/gl.js +420 -420
  644. package/msg/gn.js +420 -420
  645. package/msg/gor.js +420 -420
  646. package/msg/ha.js +420 -420
  647. package/msg/hak.js +420 -420
  648. package/msg/he.js +420 -420
  649. package/msg/hi.js +420 -420
  650. package/msg/hr.js +420 -420
  651. package/msg/hrx.js +420 -420
  652. package/msg/hu.js +420 -420
  653. package/msg/hy.js +420 -420
  654. package/msg/ia.js +420 -420
  655. package/msg/id.js +420 -420
  656. package/msg/ig.js +420 -420
  657. package/msg/inh.js +420 -420
  658. package/msg/is.js +420 -420
  659. package/msg/it.js +420 -420
  660. package/msg/ja.js +420 -420
  661. package/msg/ka.js +420 -420
  662. package/msg/kab.js +420 -420
  663. package/msg/kbd-cyrl.js +420 -420
  664. package/msg/km.js +420 -420
  665. package/msg/kn.js +420 -420
  666. package/msg/ko.js +420 -420
  667. package/msg/ksh.js +420 -420
  668. package/msg/ku-latn.js +420 -420
  669. package/msg/ky.js +420 -420
  670. package/msg/la.js +420 -420
  671. package/msg/lb.js +420 -420
  672. package/msg/lki.js +420 -420
  673. package/msg/lo.js +420 -420
  674. package/msg/lrc.js +420 -420
  675. package/msg/lt.js +420 -420
  676. package/msg/lv.js +420 -420
  677. package/msg/mg.js +420 -420
  678. package/msg/mk.js +420 -420
  679. package/msg/ml.js +420 -420
  680. package/msg/mnw.js +420 -420
  681. package/msg/ms.js +420 -420
  682. package/msg/my.js +420 -420
  683. package/msg/mzn.js +420 -420
  684. package/msg/nb.js +420 -420
  685. package/msg/ne.js +420 -420
  686. package/msg/nl.js +420 -420
  687. package/msg/oc.js +420 -420
  688. package/msg/olo.js +420 -420
  689. package/msg/pa.js +420 -420
  690. package/msg/pl.js +420 -420
  691. package/msg/pms.js +420 -420
  692. package/msg/ps.js +420 -420
  693. package/msg/pt-br.js +420 -420
  694. package/msg/pt.js +420 -420
  695. package/msg/ro.js +420 -420
  696. package/msg/ru.js +420 -420
  697. package/msg/sc.js +420 -420
  698. package/msg/sco.js +420 -420
  699. package/msg/sd.js +420 -420
  700. package/msg/shn.js +420 -420
  701. package/msg/si.js +420 -420
  702. package/msg/sk.js +420 -420
  703. package/msg/skr-arab.js +420 -420
  704. package/msg/sl.js +420 -420
  705. package/msg/smn.js +420 -420
  706. package/msg/sq.js +420 -420
  707. package/msg/sr-latn.js +420 -420
  708. package/msg/sr.js +420 -420
  709. package/msg/sv.js +420 -420
  710. package/msg/sw.js +420 -420
  711. package/msg/ta.js +420 -420
  712. package/msg/tcy.js +420 -420
  713. package/msg/te.js +420 -420
  714. package/msg/th.js +420 -420
  715. package/msg/ti.js +420 -420
  716. package/msg/tl.js +420 -420
  717. package/msg/tlh.js +420 -420
  718. package/msg/tr.js +420 -420
  719. package/msg/ug-arab.js +420 -420
  720. package/msg/uk.js +420 -420
  721. package/msg/ur.js +420 -420
  722. package/msg/uz.js +420 -420
  723. package/msg/vi.js +420 -420
  724. package/msg/xmf.js +420 -420
  725. package/msg/yo.js +420 -420
  726. package/msg/yue.js +420 -420
  727. package/msg/zgh.js +420 -420
  728. package/msg/zh-hans.js +420 -420
  729. package/msg/zh-hant.js +420 -420
  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,54 +7,57 @@
7
7
  /**
8
8
  * @fileoverview Layout code for a vertical variant of the flyout.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Layout code for a vertical variant of the flyout.
14
13
  * @class
15
14
  */
16
- goog.module('Blockly.VerticalFlyout');
17
-
18
- const WidgetDiv = goog.require('Blockly.WidgetDiv');
19
- const browserEvents = goog.require('Blockly.browserEvents');
20
- const dropDownDiv = goog.require('Blockly.dropDownDiv');
21
- const registry = goog.require('Blockly.registry');
22
- const toolbox = goog.require('Blockly.utils.toolbox');
23
- /* eslint-disable-next-line no-unused-vars */
24
- const {Coordinate} = goog.requireType('Blockly.utils.Coordinate');
25
- const {Flyout} = goog.require('Blockly.Flyout');
26
- /* eslint-disable-next-line no-unused-vars */
27
- const {Options} = goog.requireType('Blockly.Options');
28
- const {Rect} = goog.require('Blockly.utils.Rect');
29
- const {Scrollbar} = goog.require('Blockly.Scrollbar');
30
- /** @suppress {extraRequire} */
31
- goog.require('Blockly.Block');
32
- /** @suppress {extraRequire} */
33
- goog.require('Blockly.constants');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.VerticalFlyout');
17
+
18
+ // Unused import preserved for side-effects. Remove if unneeded.
19
+ // import './block.js';
20
+ // Unused import preserved for side-effects. Remove if unneeded.
21
+ // import './constants.js';
22
+
23
+ import * as browserEvents from './browser_events.js';
24
+ import * as dropDownDiv from './dropdowndiv.js';
25
+ import {Flyout, FlyoutItem} from './flyout_base.js';
26
+ import type {FlyoutButton} from './flyout_button.js';
27
+ import type {Options} from './options.js';
28
+ import * as registry from './registry.js';
29
+ import {Scrollbar} from './scrollbar.js';
30
+ import type {Coordinate} from './utils/coordinate.js';
31
+ import {Rect} from './utils/rect.js';
32
+ import * as toolbox from './utils/toolbox.js';
33
+ import * as WidgetDiv from './widgetdiv.js';
34
34
 
35
35
 
36
36
  /**
37
37
  * Class for a flyout.
38
- * @extends {Flyout}
39
38
  * @alias Blockly.VerticalFlyout
40
39
  */
41
- class VerticalFlyout extends Flyout {
42
- /**
43
- * @param {!Options} workspaceOptions Dictionary of options for the
44
- * workspace.
45
- */
46
- constructor(workspaceOptions) {
40
+ export class VerticalFlyout extends Flyout {
41
+ /** The name of the vertical flyout in the registry. */
42
+ static registryName = 'verticalFlyout';
43
+
44
+ // Record the height for workspace metrics.
45
+ override height_: AnyDuringMigration;
46
+
47
+ // Record the width for workspace metrics and .position.
48
+ override width_: AnyDuringMigration;
49
+
50
+ /** @param workspaceOptions Dictionary of options for the workspace. */
51
+ constructor(workspaceOptions: Options) {
47
52
  super(workspaceOptions);
48
53
  }
49
54
 
50
55
  /**
51
56
  * Sets the translation of the flyout to match the scrollbars.
52
- * @param {!{x:number,y:number}} xyRatio Contains a y property which is a
53
- * float between 0 and 1 specifying the degree of scrolling and a similar
54
- * x property.
55
- * @protected
57
+ * @param xyRatio Contains a y property which is a float between 0 and 1
58
+ * specifying the degree of scrolling and a similar x property.
56
59
  */
57
- setMetrics_(xyRatio) {
60
+ protected override setMetrics_(xyRatio: {x: number, y: number}) {
58
61
  if (!this.isVisible()) {
59
62
  return;
60
63
  }
@@ -75,28 +78,29 @@ class VerticalFlyout extends Flyout {
75
78
 
76
79
  /**
77
80
  * Calculates the x coordinate for the flyout position.
78
- * @return {number} X coordinate.
81
+ * @return X coordinate.
79
82
  */
80
- getX() {
83
+ override getX(): number {
81
84
  if (!this.isVisible()) {
82
85
  return 0;
83
86
  }
84
- const metricsManager = this.targetWorkspace.getMetricsManager();
87
+ const metricsManager = this.targetWorkspace!.getMetricsManager();
85
88
  const absoluteMetrics = metricsManager.getAbsoluteMetrics();
86
89
  const viewMetrics = metricsManager.getViewMetrics();
87
90
  const toolboxMetrics = metricsManager.getToolboxMetrics();
88
91
  let x = 0;
89
92
 
90
93
  // If this flyout is not the trashcan flyout (e.g. toolbox or mutator).
91
- if (this.targetWorkspace.toolboxPosition === this.toolboxPosition_) {
94
+ // Trashcan flyout is opposite the main flyout.
95
+ if (this.targetWorkspace!.toolboxPosition === this.toolboxPosition_) {
92
96
  // If there is a category toolbox.
93
- if (this.targetWorkspace.getToolbox()) {
97
+ // Simple (flyout-only) toolbox.
98
+ if (this.targetWorkspace!.getToolbox()) {
94
99
  if (this.toolboxPosition_ === toolbox.Position.LEFT) {
95
100
  x = toolboxMetrics.width;
96
101
  } else {
97
102
  x = viewMetrics.width - this.width_;
98
103
  }
99
- // Simple (flyout-only) toolbox.
100
104
  } else {
101
105
  if (this.toolboxPosition_ === toolbox.Position.LEFT) {
102
106
  x = 0;
@@ -105,7 +109,6 @@ class VerticalFlyout extends Flyout {
105
109
  x = viewMetrics.width;
106
110
  }
107
111
  }
108
- // Trashcan flyout is opposite the main flyout.
109
112
  } else {
110
113
  if (this.toolboxPosition_ === toolbox.Position.LEFT) {
111
114
  x = 0;
@@ -123,24 +126,20 @@ class VerticalFlyout extends Flyout {
123
126
 
124
127
  /**
125
128
  * Calculates the y coordinate for the flyout position.
126
- * @return {number} Y coordinate.
129
+ * @return Y coordinate.
127
130
  */
128
- getY() {
131
+ override getY(): number {
129
132
  // Y is always 0 since this is a vertical flyout.
130
133
  return 0;
131
134
  }
132
135
 
133
- /**
134
- * Move the flyout to the edge of the workspace.
135
- */
136
- position() {
137
- if (!this.isVisible() || !this.targetWorkspace.isVisible()) {
136
+ /** Move the flyout to the edge of the workspace. */
137
+ override position() {
138
+ if (!this.isVisible() || !this.targetWorkspace!.isVisible()) {
138
139
  return;
139
140
  }
140
- const metricsManager = this.targetWorkspace.getMetricsManager();
141
+ const metricsManager = this.targetWorkspace!.getMetricsManager();
141
142
  const targetWorkspaceViewMetrics = metricsManager.getViewMetrics();
142
-
143
- // Record the height for workspace metrics.
144
143
  this.height_ = targetWorkspaceViewMetrics.height;
145
144
 
146
145
  const edgeWidth = this.width_ - this.CORNER_RADIUS;
@@ -156,20 +155,18 @@ class VerticalFlyout extends Flyout {
156
155
 
157
156
  /**
158
157
  * Create and set the path for the visible boundaries of the flyout.
159
- * @param {number} width The width of the flyout, not including the
160
- * rounded corners.
161
- * @param {number} height The height of the flyout, not including
162
- * rounded corners.
163
- * @private
158
+ * @param width The width of the flyout, not including the rounded corners.
159
+ * @param height The height of the flyout, not including rounded corners.
164
160
  */
165
- setBackgroundPath_(width, height) {
161
+ private setBackgroundPath_(width: number, height: number) {
166
162
  const atRight = this.toolboxPosition_ === toolbox.Position.RIGHT;
167
163
  const totalWidth = width + this.CORNER_RADIUS;
168
164
 
169
165
  // Decide whether to start on the left or right.
170
- const path = ['M ' + (atRight ? totalWidth : 0) + ',0'];
166
+ const path: Array<string|number> =
167
+ ['M ' + (atRight ? totalWidth : 0) + ',0'];
171
168
  // Top.
172
- path.push('h', atRight ? -width : width);
169
+ path.push('h', (atRight ? -width : width));
173
170
  // Rounded corner.
174
171
  path.push(
175
172
  'a', this.CORNER_RADIUS, this.CORNER_RADIUS, 0, 0, atRight ? 0 : 1,
@@ -181,31 +178,28 @@ class VerticalFlyout extends Flyout {
181
178
  'a', this.CORNER_RADIUS, this.CORNER_RADIUS, 0, 0, atRight ? 0 : 1,
182
179
  atRight ? this.CORNER_RADIUS : -this.CORNER_RADIUS, this.CORNER_RADIUS);
183
180
  // Bottom.
184
- path.push('h', atRight ? width : -width);
181
+ path.push('h', (atRight ? width : -width));
185
182
  path.push('z');
186
- this.svgBackground_.setAttribute('d', path.join(' '));
183
+ this.svgBackground_!.setAttribute('d', path.join(' '));
187
184
  }
188
185
 
189
- /**
190
- * Scroll the flyout to the top.
191
- */
192
- scrollToStart() {
186
+ /** Scroll the flyout to the top. */
187
+ override scrollToStart() {
193
188
  this.workspace_.scrollbar.setY(0);
194
189
  }
195
190
 
196
191
  /**
197
192
  * Scroll the flyout.
198
- * @param {!Event} e Mouse wheel scroll event.
199
- * @protected
193
+ * @param e Mouse wheel scroll event.
200
194
  */
201
- wheel_(e) {
195
+ protected override wheel_(e: WheelEvent) {
202
196
  const scrollDelta = browserEvents.getScrollDeltaPixels(e);
203
197
 
204
198
  if (scrollDelta.y) {
205
199
  const metricsManager = this.workspace_.getMetricsManager();
206
200
  const scrollMetrics = metricsManager.getScrollMetrics();
207
201
  const viewMetrics = metricsManager.getViewMetrics();
208
- const pos = (viewMetrics.top - scrollMetrics.top) + scrollDelta.y;
202
+ const pos = viewMetrics.top - scrollMetrics.top + scrollDelta.y;
209
203
 
210
204
  this.workspace_.scrollbar.setY(pos);
211
205
  // When the flyout moves from a wheel event, hide WidgetDiv and
@@ -213,7 +207,6 @@ class VerticalFlyout extends Flyout {
213
207
  WidgetDiv.hide();
214
208
  dropDownDiv.hideWithoutAnimation();
215
209
  }
216
-
217
210
  // Don't scroll the page.
218
211
  e.preventDefault();
219
212
  // Don't propagate mousewheel event (zooming).
@@ -222,43 +215,47 @@ class VerticalFlyout extends Flyout {
222
215
 
223
216
  /**
224
217
  * Lay out the blocks in the flyout.
225
- * @param {!Array<!Object>} contents The blocks and buttons to lay out.
226
- * @param {!Array<number>} gaps The visible gaps between blocks.
227
- * @protected
218
+ * @param contents The blocks and buttons to lay out.
219
+ * @param gaps The visible gaps between blocks.
228
220
  */
229
- layout_(contents, gaps) {
230
- this.workspace_.scale = this.targetWorkspace.scale;
221
+ protected override layout_(contents: FlyoutItem[], gaps: number[]) {
222
+ this.workspace_.scale = this.targetWorkspace!.scale;
231
223
  const margin = this.MARGIN;
232
224
  const cursorX = this.RTL ? margin : margin + this.tabWidth_;
233
225
  let cursorY = margin;
234
226
 
235
- for (let i = 0, item; (item = contents[i]); i++) {
227
+ for (let i = 0, item; item = contents[i]; i++) {
236
228
  if (item.type === 'block') {
237
229
  const block = item.block;
238
- const allBlocks = block.getDescendants(false);
239
- for (let j = 0, child; (child = allBlocks[j]); j++) {
230
+ const allBlocks = block!.getDescendants(false);
231
+ for (let j = 0, child; child = allBlocks[j]; j++) {
240
232
  // Mark blocks as being inside a flyout. This is used to detect and
241
233
  // prevent the closure of the flyout if the user right-clicks on such
242
234
  // a block.
243
235
  child.isInFlyout = true;
244
236
  }
245
- block.render();
246
- const root = block.getSvgRoot();
247
- const blockHW = block.getHeightWidth();
237
+ block!.render();
238
+ const root = block!.getSvgRoot();
239
+ const blockHW = block!.getHeightWidth();
248
240
  const moveX =
249
- block.outputConnection ? cursorX - this.tabWidth_ : cursorX;
250
- block.moveBy(moveX, cursorY);
241
+ block!.outputConnection ? cursorX - this.tabWidth_ : cursorX;
242
+ block!.moveBy(moveX, cursorY);
251
243
 
244
+ // AnyDuringMigration because: Argument of type 'BlockSvg | undefined'
245
+ // is not assignable to parameter of type 'BlockSvg'.
252
246
  const rect = this.createRect_(
253
- block, this.RTL ? moveX - blockHW.width : moveX, cursorY, blockHW,
254
- i);
247
+ block as AnyDuringMigration,
248
+ this.RTL ? moveX - blockHW.width : moveX, cursorY, blockHW, i);
255
249
 
256
- this.addBlockListeners_(root, block, rect);
250
+ // AnyDuringMigration because: Argument of type 'BlockSvg | undefined'
251
+ // is not assignable to parameter of type 'BlockSvg'.
252
+ this.addBlockListeners_(root, block as AnyDuringMigration, rect);
257
253
 
258
254
  cursorY += blockHW.height + gaps[i];
259
255
  } else if (item.type === 'button') {
260
- this.initFlyoutButton_(item.button, cursorX, cursorY);
261
- cursorY += item.button.height + gaps[i];
256
+ const button = item.button as FlyoutButton;
257
+ this.initFlyoutButton_(button, cursorX, cursorY);
258
+ cursorY += button.height + gaps[i];
262
259
  }
263
260
  }
264
261
  }
@@ -267,12 +264,12 @@ class VerticalFlyout extends Flyout {
267
264
  * Determine if a drag delta is toward the workspace, based on the position
268
265
  * and orientation of the flyout. This is used in determineDragIntention_ to
269
266
  * determine if a new block should be created or if the flyout should scroll.
270
- * @param {!Coordinate} currentDragDeltaXY How far the pointer has
271
- * moved from the position at mouse down, in pixel units.
272
- * @return {boolean} True if the drag is toward the workspace.
273
- * @package
267
+ * @param currentDragDeltaXY How far the pointer has moved from the position
268
+ * at mouse down, in pixel units.
269
+ * @return True if the drag is toward the workspace.
270
+ * @internal
274
271
  */
275
- isDragTowardWorkspace(currentDragDeltaXY) {
272
+ override isDragTowardWorkspace(currentDragDeltaXY: Coordinate): boolean {
276
273
  const dx = currentDragDeltaXY.x;
277
274
  const dy = currentDragDeltaXY.y;
278
275
  // Direction goes from -180 to 180, with 0 toward the right and 90 on top.
@@ -280,7 +277,7 @@ class VerticalFlyout extends Flyout {
280
277
 
281
278
  const range = this.dragAngleRange_;
282
279
  // Check for left or right dragging.
283
- if ((dragDirection < range && dragDirection > -range) ||
280
+ if (dragDirection < range && dragDirection > -range ||
284
281
  (dragDirection < -180 + range || dragDirection > 180 - range)) {
285
282
  return true;
286
283
  }
@@ -290,10 +287,10 @@ class VerticalFlyout extends Flyout {
290
287
  /**
291
288
  * Returns the bounding rectangle of the drag target area in pixel units
292
289
  * relative to viewport.
293
- * @return {?Rect} The component's bounding box. Null if drag
294
- * target area should be ignored.
290
+ * @return The component's bounding box. Null if drag target area should be
291
+ * ignored.
295
292
  */
296
- getClientRect() {
293
+ override getClientRect(): Rect|null {
297
294
  if (!this.svgGroup_ || this.autoClose || !this.isVisible()) {
298
295
  // The bounding rectangle won't compute correctly if the flyout is closed
299
296
  // and auto-close flyouts aren't valid drag targets (or delete areas).
@@ -319,20 +316,19 @@ class VerticalFlyout extends Flyout {
319
316
  /**
320
317
  * Compute width of flyout. toolbox.Position mat under each block.
321
318
  * For RTL: Lay out the blocks and buttons to be right-aligned.
322
- * @protected
323
319
  */
324
- reflowInternal_() {
320
+ protected override reflowInternal_() {
325
321
  this.workspace_.scale = this.getFlyoutScale();
326
322
  let flyoutWidth = 0;
327
323
  const blocks = this.workspace_.getTopBlocks(false);
328
- for (let i = 0, block; (block = blocks[i]); i++) {
324
+ for (let i = 0, block; block = blocks[i]; i++) {
329
325
  let width = block.getHeightWidth().width;
330
326
  if (block.outputConnection) {
331
327
  width -= this.tabWidth_;
332
328
  }
333
329
  flyoutWidth = Math.max(flyoutWidth, width);
334
330
  }
335
- for (let i = 0, button; (button = this.buttons_[i]); i++) {
331
+ for (let i = 0, button; button = this.buttons_[i]; i++) {
336
332
  flyoutWidth = Math.max(flyoutWidth, button.width);
337
333
  }
338
334
  flyoutWidth += this.MARGIN * 1.5 + this.tabWidth_;
@@ -340,7 +336,7 @@ class VerticalFlyout extends Flyout {
340
336
  flyoutWidth += Scrollbar.scrollbarThickness;
341
337
 
342
338
  if (this.width_ !== flyoutWidth) {
343
- for (let i = 0, block; (block = blocks[i]); i++) {
339
+ for (let i = 0, block; block = blocks[i]; i++) {
344
340
  if (this.RTL) {
345
341
  // With the flyoutWidth known, right-align the blocks.
346
342
  const oldX = block.getRelativeToSurfaceXY().x;
@@ -351,12 +347,15 @@ class VerticalFlyout extends Flyout {
351
347
  block.moveBy(newX - oldX, 0);
352
348
  }
353
349
  if (this.rectMap_.has(block)) {
354
- this.moveRectToBlock_(this.rectMap_.get(block), block);
350
+ // AnyDuringMigration because: Argument of type 'SVGElement |
351
+ // undefined' is not assignable to parameter of type 'SVGElement'.
352
+ this.moveRectToBlock_(
353
+ this.rectMap_.get(block) as AnyDuringMigration, block);
355
354
  }
356
355
  }
357
356
  if (this.RTL) {
358
357
  // With the flyoutWidth known, right-align the buttons.
359
- for (let i = 0, button; (button = this.buttons_[i]); i++) {
358
+ for (let i = 0, button; button = this.buttons_[i]; i++) {
360
359
  const y = button.getPosition().y;
361
360
  const x = flyoutWidth / this.workspace_.scale - button.width -
362
361
  this.MARGIN - this.tabWidth_;
@@ -364,32 +363,22 @@ class VerticalFlyout extends Flyout {
364
363
  }
365
364
  }
366
365
 
367
- if (this.targetWorkspace.toolboxPosition === this.toolboxPosition_ &&
366
+ if (this.targetWorkspace!.toolboxPosition === this.toolboxPosition_ &&
368
367
  this.toolboxPosition_ === toolbox.Position.LEFT &&
369
- !this.targetWorkspace.getToolbox()) {
368
+ !this.targetWorkspace!.getToolbox()) {
370
369
  // This flyout is a simple toolbox. Reposition the workspace so that
371
370
  // (0,0) is in the correct position relative to the new absolute edge
372
371
  // (ie toolbox edge).
373
- this.targetWorkspace.translate(
374
- this.targetWorkspace.scrollX + flyoutWidth,
375
- this.targetWorkspace.scrollY);
372
+ this.targetWorkspace!.translate(
373
+ this.targetWorkspace!.scrollX + flyoutWidth,
374
+ this.targetWorkspace!.scrollY);
376
375
  }
377
-
378
- // Record the width for workspace metrics and .position.
379
376
  this.width_ = flyoutWidth;
380
377
  this.position();
381
- this.targetWorkspace.recordDragTargets();
378
+ this.targetWorkspace!.recordDragTargets();
382
379
  }
383
380
  }
384
381
  }
385
382
 
386
- /**
387
- * The name of the vertical flyout in the registry.
388
- * @type {string}
389
- */
390
- VerticalFlyout.registryName = 'verticalFlyout';
391
-
392
383
  registry.register(
393
384
  registry.Type.FLYOUTS_VERTICAL_TOOLBOX, registry.DEFAULT, VerticalFlyout);
394
-
395
- exports.VerticalFlyout = VerticalFlyout;
@@ -0,0 +1,205 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2012 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Block } from './block.js';
7
+ import { Names } from './names.js';
8
+ import type { Workspace } from './workspace.js';
9
+ /**
10
+ * Class for a code generator that translates the blocks into a language.
11
+ * @unrestricted
12
+ * @alias Blockly.Generator
13
+ */
14
+ export declare class Generator {
15
+ name_: any;
16
+ /**
17
+ * This is used as a placeholder in functions defined using
18
+ * Generator.provideFunction_. It must not be legal code that could
19
+ * legitimately appear in a function definition (or comment), and it must
20
+ * not confuse the regular expression parser.
21
+ */
22
+ protected FUNCTION_NAME_PLACEHOLDER_: string;
23
+ FUNCTION_NAME_PLACEHOLDER_REGEXP_: any;
24
+ /**
25
+ * Arbitrary code to inject into locations that risk causing infinite loops.
26
+ * Any instances of '%1' will be replaced by the block ID that failed.
27
+ * E.g. ' checkTimeout(%1);\n'
28
+ */
29
+ INFINITE_LOOP_TRAP: string | null;
30
+ /**
31
+ * Arbitrary code to inject before every statement.
32
+ * Any instances of '%1' will be replaced by the block ID of the statement.
33
+ * E.g. 'highlight(%1);\n'
34
+ */
35
+ STATEMENT_PREFIX: string | null;
36
+ /**
37
+ * Arbitrary code to inject after every statement.
38
+ * Any instances of '%1' will be replaced by the block ID of the statement.
39
+ * E.g. 'highlight(%1);\n'
40
+ */
41
+ STATEMENT_SUFFIX: string | null;
42
+ /**
43
+ * The method of indenting. Defaults to two spaces, but language generators
44
+ * may override this to increase indent or change to tabs.
45
+ */
46
+ INDENT: string;
47
+ /**
48
+ * Maximum length for a comment before wrapping. Does not account for
49
+ * indenting level.
50
+ */
51
+ COMMENT_WRAP: number;
52
+ /** List of outer-inner pairings that do NOT require parentheses. */
53
+ ORDER_OVERRIDES: number[][];
54
+ /**
55
+ * Whether the init method has been called.
56
+ * Generators that set this flag to false after creation and true in init
57
+ * will cause blockToCode to emit a warning if the generator has not been
58
+ * initialized. If this flag is untouched, it will have no effect.
59
+ */
60
+ isInitialized: boolean | null;
61
+ /** Comma-separated list of reserved words. */
62
+ protected RESERVED_WORDS_: string;
63
+ /** A dictionary of definitions to be printed before the code. */
64
+ protected definitions_?: any;
65
+ /**
66
+ * A dictionary mapping desired function names in definitions_ to actual
67
+ * function names (to avoid collisions with user functions).
68
+ */
69
+ protected functionNames_?: any;
70
+ /** A database of variable and procedure names. */
71
+ protected nameDB_?: Names;
72
+ /** @param name Language name of this generator. */
73
+ constructor(name: string);
74
+ /**
75
+ * Generate code for all blocks in the workspace to the specified language.
76
+ * @param workspace Workspace to generate code from.
77
+ * @return Generated code.
78
+ */
79
+ workspaceToCode(workspace?: Workspace): string;
80
+ /**
81
+ * Prepend a common prefix onto each line of code.
82
+ * Intended for indenting code or adding comment markers.
83
+ * @param text The lines of code.
84
+ * @param prefix The common prefix.
85
+ * @return The prefixed lines of code.
86
+ */
87
+ prefixLines(text: string, prefix: string): string;
88
+ /**
89
+ * Recursively spider a tree of blocks, returning all their comments.
90
+ * @param block The block from which to start spidering.
91
+ * @return Concatenated list of comments.
92
+ */
93
+ allNestedComments(block: Block): string;
94
+ /**
95
+ * Generate code for the specified block (and attached blocks).
96
+ * The generator must be initialized before calling this function.
97
+ * @param block The block to generate code for.
98
+ * @param opt_thisOnly True to generate code for only this statement.
99
+ * @return For statement blocks, the generated code.
100
+ * For value blocks, an array containing the generated code and an
101
+ * operator order value. Returns '' if block is null.
102
+ */
103
+ blockToCode(block: Block | null, opt_thisOnly?: boolean): string | any[];
104
+ /**
105
+ * Generate code representing the specified value input.
106
+ * @param block The block containing the input.
107
+ * @param name The name of the input.
108
+ * @param outerOrder The maximum binding strength (minimum order value) of any
109
+ * operators adjacent to "block".
110
+ * @return Generated code or '' if no blocks are connected or the specified
111
+ * input does not exist.
112
+ */
113
+ valueToCode(block: Block, name: string, outerOrder: number): string;
114
+ /**
115
+ * Generate a code string representing the blocks attached to the named
116
+ * statement input. Indent the code.
117
+ * This is mainly used in generators. When trying to generate code to evaluate
118
+ * look at using workspaceToCode or blockToCode.
119
+ * @param block The block containing the input.
120
+ * @param name The name of the input.
121
+ * @return Generated code or '' if no blocks are connected.
122
+ */
123
+ statementToCode(block: Block, name: string): string;
124
+ /**
125
+ * Add an infinite loop trap to the contents of a loop.
126
+ * Add statement suffix at the start of the loop block (right after the loop
127
+ * statement executes), and a statement prefix to the end of the loop block
128
+ * (right before the loop statement executes).
129
+ * @param branch Code for loop contents.
130
+ * @param block Enclosing block.
131
+ * @return Loop contents, with infinite loop trap added.
132
+ */
133
+ addLoopTrap(branch: string, block: Block): string;
134
+ /**
135
+ * Inject a block ID into a message to replace '%1'.
136
+ * Used for STATEMENT_PREFIX, STATEMENT_SUFFIX, and INFINITE_LOOP_TRAP.
137
+ * @param msg Code snippet with '%1'.
138
+ * @param block Block which has an ID.
139
+ * @return Code snippet with ID.
140
+ */
141
+ injectId(msg: string, block: Block): string;
142
+ /**
143
+ * Add one or more words to the list of reserved words for this language.
144
+ * @param words Comma-separated list of words to add to the list.
145
+ * No spaces. Duplicates are ok.
146
+ */
147
+ addReservedWords(words: string): void;
148
+ /**
149
+ * Define a developer-defined function (not a user-defined procedure) to be
150
+ * included in the generated code. Used for creating private helper
151
+ * functions. The first time this is called with a given desiredName, the code
152
+ * is saved and an actual name is generated. Subsequent calls with the same
153
+ * desiredName have no effect but have the same return value.
154
+ *
155
+ * It is up to the caller to make sure the same desiredName is not
156
+ * used for different helper functions (e.g. use "colourRandom" and
157
+ * "listRandom", not "random"). There is no danger of colliding with reserved
158
+ * words, or user-defined variable or procedure names.
159
+ *
160
+ * The code gets output when Generator.finish() is called.
161
+ *
162
+ * @param desiredName The desired name of the function (e.g. mathIsPrime).
163
+ * @param code A list of statements or one multi-line code string. Use ' '
164
+ * for indents (they will be replaced).
165
+ * @return The actual name of the new function. This may differ from
166
+ * desiredName if the former has already been taken by the user.
167
+ */
168
+ protected provideFunction_(desiredName: string, code: string[] | string): string;
169
+ /**
170
+ * Hook for code to run before code generation starts.
171
+ * Subclasses may override this, e.g. to initialise the database of variable
172
+ * names.
173
+ * @param _workspace Workspace to generate code from.
174
+ */
175
+ init(_workspace: Workspace): void;
176
+ /**
177
+ * Common tasks for generating code from blocks. This is called from
178
+ * blockToCode and is called on every block, not just top level blocks.
179
+ * Subclasses may override this, e.g. to generate code for statements
180
+ * following the block, or to handle comments for the specified block and any
181
+ * connected value blocks.
182
+ * @param _block The current block.
183
+ * @param code The code created for this block.
184
+ * @param _opt_thisOnly True to generate code for only this statement.
185
+ * @return Code with comments and subsequent blocks added.
186
+ */
187
+ protected scrub_(_block: Block, code: string, _opt_thisOnly?: boolean): string;
188
+ /**
189
+ * Hook for code to run at end of code generation.
190
+ * Subclasses may override this, e.g. to prepend the generated code with
191
+ * import statements or variable definitions.
192
+ * @param code Generated code.
193
+ * @return Completed code.
194
+ */
195
+ finish(code: string): string;
196
+ /**
197
+ * Naked values are top-level blocks with outputs that aren't plugged into
198
+ * anything.
199
+ * Subclasses may override this, e.g. if their language does not allow
200
+ * naked values.
201
+ * @param line Line of generated code.
202
+ * @return Legal line of code.
203
+ */
204
+ scrubNakedValue(line: string): string;
205
+ }