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
@@ -0,0 +1,779 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2011 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import './events/events_block_change.js';
7
+ import './events/events_block_create.js';
8
+ import './events/events_block_delete.js';
9
+ import type { Comment } from './comment.js';
10
+ import { Connection } from './connection.js';
11
+ import type { Abstract } from './events/events_abstract.js';
12
+ import type { Field } from './field.js';
13
+ import { Input } from './input.js';
14
+ import type { IASTNodeLocation } from './interfaces/i_ast_node_location.js';
15
+ import type { IDeletable } from './interfaces/i_deletable.js';
16
+ import type { Mutator } from './mutator.js';
17
+ import * as Tooltip from './tooltip.js';
18
+ import { Coordinate } from './utils/coordinate.js';
19
+ import { Size } from './utils/size.js';
20
+ import type { VariableModel } from './variable_model.js';
21
+ import type { Workspace } from './workspace.js';
22
+ /**
23
+ * Class for one block.
24
+ * Not normally called directly, workspace.newBlock() is preferred.
25
+ * @unrestricted
26
+ * @alias Blockly.Block
27
+ */
28
+ export declare class Block implements IASTNodeLocation, IDeletable {
29
+ /**
30
+ * An optional callback method to use whenever the block's parent workspace
31
+ * changes. This is usually only called from the constructor, the block type
32
+ * initializer function, or an extension initializer function.
33
+ */
34
+ onchange?: ((p1: Abstract) => any) | null;
35
+ /** The language-neutral ID given to the collapsed input. */
36
+ static readonly COLLAPSED_INPUT_NAME: string;
37
+ /** The language-neutral ID given to the collapsed field. */
38
+ static readonly COLLAPSED_FIELD_NAME: string;
39
+ /**
40
+ * Optional text data that round-trips between blocks and XML.
41
+ * Has no effect. May be used by 3rd parties for meta information.
42
+ */
43
+ data: string | null;
44
+ /**
45
+ * Has this block been disposed of?
46
+ * @internal
47
+ */
48
+ disposed: boolean;
49
+ /**
50
+ * Colour of the block as HSV hue value (0-360)
51
+ * This may be null if the block colour was not set via a hue number.
52
+ */
53
+ private hue_;
54
+ /** Colour of the block in '#RRGGBB' format. */
55
+ protected colour_: string;
56
+ /** Name of the block style. */
57
+ protected styleName_: string;
58
+ /** An optional method called during initialization. */
59
+ init?: (() => any) | null;
60
+ /**
61
+ * An optional serialization method for defining how to serialize the
62
+ * mutation state to XML. This must be coupled with defining
63
+ * `domToMutation`.
64
+ */
65
+ mutationToDom?: ((...p1: any[]) => Element) | null;
66
+ /**
67
+ * An optional deserialization method for defining how to deserialize the
68
+ * mutation state from XML. This must be coupled with defining
69
+ * `mutationToDom`.
70
+ */
71
+ domToMutation?: ((p1: Element) => any) | null;
72
+ /**
73
+ * An optional serialization method for defining how to serialize the
74
+ * block's extra state (eg mutation state) to something JSON compatible.
75
+ * This must be coupled with defining `loadExtraState`.
76
+ */
77
+ saveExtraState?: (() => any) | null;
78
+ /**
79
+ * An optional serialization method for defining how to deserialize the
80
+ * block's extra state (eg mutation state) from something JSON compatible.
81
+ * This must be coupled with defining `saveExtraState`.
82
+ */
83
+ loadExtraState?: ((p1: any) => any) | null;
84
+ /**
85
+ * An optional property for suppressing adding STATEMENT_PREFIX and
86
+ * STATEMENT_SUFFIX to generated code.
87
+ */
88
+ suppressPrefixSuffix: boolean | null;
89
+ /**
90
+ * An optional property for declaring developer variables. Return a list of
91
+ * variable names for use by generators. Developer variables are never
92
+ * shown to the user, but are declared as global variables in the generated
93
+ * code.
94
+ */
95
+ getDeveloperVariables?: (() => string[]);
96
+ /**
97
+ * An optional function that reconfigures the block based on the contents of
98
+ * the mutator dialog.
99
+ */
100
+ compose?: ((p1: Block) => void);
101
+ /**
102
+ * An optional function that populates the mutator's dialog with
103
+ * this block's components.
104
+ */
105
+ decompose?: ((p1: Workspace) => Block);
106
+ id: string;
107
+ outputConnection: Connection;
108
+ nextConnection: Connection;
109
+ previousConnection: Connection;
110
+ inputList: Input[];
111
+ inputsInline?: boolean;
112
+ private disabled;
113
+ tooltip: Tooltip.TipInfo;
114
+ contextMenu: boolean;
115
+ protected parentBlock_: this | null;
116
+ protected childBlocks_: this[];
117
+ private deletable_;
118
+ private movable_;
119
+ private editable_;
120
+ private isShadow_;
121
+ protected collapsed_: boolean;
122
+ protected outputShape_: number | null;
123
+ /**
124
+ * A string representing the comment attached to this block.
125
+ * @deprecated August 2019. Use getCommentText instead.
126
+ */
127
+ comment: string | Comment | null;
128
+ /** @internal */
129
+ commentModel: CommentModel;
130
+ private readonly xy_;
131
+ isInFlyout: boolean;
132
+ isInMutator: boolean;
133
+ RTL: boolean;
134
+ /** True if this block is an insertion marker. */
135
+ protected isInsertionMarker_: boolean;
136
+ /** Name of the type of hat. */
137
+ hat?: string;
138
+ rendered: boolean | null;
139
+ /**
140
+ * String for block help, or function that returns a URL. Null for no help.
141
+ */
142
+ helpUrl: string | Function;
143
+ /** A bound callback function to use when the parent workspace changes. */
144
+ private onchangeWrapper_;
145
+ /**
146
+ * A count of statement inputs on the block.
147
+ * @internal
148
+ */
149
+ statementInputCount: number;
150
+ type: string;
151
+ inputsInlineDefault?: boolean;
152
+ workspace: Workspace;
153
+ /**
154
+ * @param workspace The block's workspace.
155
+ * @param prototypeName Name of the language object containing type-specific
156
+ * functions for this block.
157
+ * @param opt_id Optional ID. Use this ID if provided, otherwise create a new
158
+ * ID.
159
+ * @throws When the prototypeName is not valid or not allowed.
160
+ */
161
+ constructor(workspace: Workspace, prototypeName: string, opt_id?: string);
162
+ /** Calls the init() function and handles associated event firing, etc. */
163
+ protected doInit_(): void;
164
+ /**
165
+ * Dispose of this block.
166
+ * @param healStack If true, then try to heal any gap by connecting the next
167
+ * statement with the previous statement. Otherwise, dispose of all
168
+ * children of this block.
169
+ * @suppress {checkTypes}
170
+ */
171
+ dispose(healStack: boolean): void;
172
+ /**
173
+ * Call initModel on all fields on the block.
174
+ * May be called more than once.
175
+ * Either initModel or initSvg must be called after creating a block and
176
+ * before the first interaction with it. Interactions include UI actions
177
+ * (e.g. clicking and dragging) and firing events (e.g. create, delete, and
178
+ * change).
179
+ */
180
+ initModel(): void;
181
+ /**
182
+ * Unplug this block from its superior block. If this block is a statement,
183
+ * optionally reconnect the block underneath with the block on top.
184
+ * @param opt_healStack Disconnect child statement and reconnect stack.
185
+ * Defaults to false.
186
+ */
187
+ unplug(opt_healStack?: boolean): void;
188
+ /**
189
+ * Unplug this block's output from an input on another block. Optionally
190
+ * reconnect the block's parent to the only child block, if possible.
191
+ * @param opt_healStack Disconnect right-side block and connect to left-side
192
+ * block. Defaults to false.
193
+ */
194
+ private unplugFromRow_;
195
+ /**
196
+ * Returns the connection on the value input that is connected to another
197
+ * block. When an insertion marker is connected to a connection with a block
198
+ * already attached, the connected block is attached to the insertion marker.
199
+ * Since only one block can be displaced and attached to the insertion marker
200
+ * this should only ever return one connection.
201
+ *
202
+ * @return The connection on the value input, or null.
203
+ */
204
+ private getOnlyValueConnection_;
205
+ /**
206
+ * Unplug this statement block from its superior block. Optionally reconnect
207
+ * the block underneath with the block on top.
208
+ * @param opt_healStack Disconnect child statement and reconnect stack.
209
+ * Defaults to false.
210
+ */
211
+ private unplugFromStack_;
212
+ /**
213
+ * Returns all connections originating from this block.
214
+ * @param _all If true, return all connections even hidden ones.
215
+ * @return Array of connections.
216
+ * @internal
217
+ */
218
+ getConnections_(_all: boolean): Connection[];
219
+ /**
220
+ * Walks down a stack of blocks and finds the last next connection on the
221
+ * stack.
222
+ * @param ignoreShadows If true,the last connection on a non-shadow block will
223
+ * be returned. If false, this will follow shadows to find the last
224
+ * connection.
225
+ * @return The last next connection on the stack, or null.
226
+ * @internal
227
+ */
228
+ lastConnectionInStack(ignoreShadows: boolean): Connection | null;
229
+ /**
230
+ * Bump unconnected blocks out of alignment. Two blocks which aren't actually
231
+ * connected should not coincidentally line up on screen.
232
+ */
233
+ bumpNeighbours(): void;
234
+ /**
235
+ * Return the parent block or null if this block is at the top level. The
236
+ * parent block is either the block connected to the previous connection (for
237
+ * a statement block) or the block connected to the output connection (for a
238
+ * value block).
239
+ * @return The block (if any) that holds the current block.
240
+ */
241
+ getParent(): this | null;
242
+ /**
243
+ * Return the input that connects to the specified block.
244
+ * @param block A block connected to an input on this block.
245
+ * @return The input (if any) that connects to the specified block.
246
+ */
247
+ getInputWithBlock(block: Block): Input | null;
248
+ /**
249
+ * Return the parent block that surrounds the current block, or null if this
250
+ * block has no surrounding block. A parent block might just be the previous
251
+ * statement, whereas the surrounding block is an if statement, while loop,
252
+ * etc.
253
+ * @return The block (if any) that surrounds the current block.
254
+ */
255
+ getSurroundParent(): this | null;
256
+ /**
257
+ * Return the next statement block directly connected to this block.
258
+ * @return The next statement block or null.
259
+ */
260
+ getNextBlock(): Block | null;
261
+ /**
262
+ * Returns the block connected to the previous connection.
263
+ * @return The previous statement block or null.
264
+ */
265
+ getPreviousBlock(): Block | null;
266
+ /**
267
+ * Return the connection on the first statement input on this block, or null
268
+ * if there are none.
269
+ * @return The first statement connection or null.
270
+ * @internal
271
+ */
272
+ getFirstStatementConnection(): Connection | null;
273
+ /**
274
+ * Return the top-most block in this block's tree.
275
+ * This will return itself if this block is at the top level.
276
+ * @return The root block.
277
+ */
278
+ getRootBlock(): this;
279
+ /**
280
+ * Walk up from the given block up through the stack of blocks to find
281
+ * the top block of the sub stack. If we are nested in a statement input only
282
+ * find the top-most nested block. Do not go all the way to the root block.
283
+ * @return The top block in a stack.
284
+ * @internal
285
+ */
286
+ getTopStackBlock(): this;
287
+ /**
288
+ * Find all the blocks that are directly nested inside this one.
289
+ * Includes value and statement inputs, as well as any following statement.
290
+ * Excludes any connection on an output tab or any preceding statement.
291
+ * Blocks are optionally sorted by position; top to bottom.
292
+ * @param ordered Sort the list if true.
293
+ * @return Array of blocks.
294
+ */
295
+ getChildren(ordered: boolean): Block[];
296
+ /**
297
+ * Set parent of this block to be a new block or null.
298
+ * @param newParent New parent block.
299
+ * @internal
300
+ */
301
+ setParent(newParent: this | null): void;
302
+ /**
303
+ * Find all the blocks that are directly or indirectly nested inside this one.
304
+ * Includes this block in the list.
305
+ * Includes value and statement inputs, as well as any following statements.
306
+ * Excludes any connection on an output tab or any preceding statements.
307
+ * Blocks are optionally sorted by position; top to bottom.
308
+ * @param ordered Sort the list if true.
309
+ * @return Flattened array of blocks.
310
+ */
311
+ getDescendants(ordered: boolean): this[];
312
+ /**
313
+ * Get whether this block is deletable or not.
314
+ * @return True if deletable.
315
+ */
316
+ isDeletable(): boolean;
317
+ /**
318
+ * Set whether this block is deletable or not.
319
+ * @param deletable True if deletable.
320
+ */
321
+ setDeletable(deletable: boolean): void;
322
+ /**
323
+ * Get whether this block is movable or not.
324
+ * @return True if movable.
325
+ */
326
+ isMovable(): boolean;
327
+ /**
328
+ * Set whether this block is movable or not.
329
+ * @param movable True if movable.
330
+ */
331
+ setMovable(movable: boolean): void;
332
+ /**
333
+ * Get whether is block is duplicatable or not. If duplicating this block and
334
+ * descendants will put this block over the workspace's capacity this block is
335
+ * not duplicatable. If duplicating this block and descendants will put any
336
+ * type over their maxInstances this block is not duplicatable.
337
+ * @return True if duplicatable.
338
+ */
339
+ isDuplicatable(): boolean;
340
+ /**
341
+ * Get whether this block is a shadow block or not.
342
+ * @return True if a shadow.
343
+ */
344
+ isShadow(): boolean;
345
+ /**
346
+ * Set whether this block is a shadow block or not.
347
+ * @param shadow True if a shadow.
348
+ * @internal
349
+ */
350
+ setShadow(shadow: boolean): void;
351
+ /**
352
+ * Get whether this block is an insertion marker block or not.
353
+ * @return True if an insertion marker.
354
+ */
355
+ isInsertionMarker(): boolean;
356
+ /**
357
+ * Set whether this block is an insertion marker block or not.
358
+ * Once set this cannot be unset.
359
+ * @param insertionMarker True if an insertion marker.
360
+ * @internal
361
+ */
362
+ setInsertionMarker(insertionMarker: boolean): void;
363
+ /**
364
+ * Get whether this block is editable or not.
365
+ * @return True if editable.
366
+ */
367
+ isEditable(): boolean;
368
+ /**
369
+ * Set whether this block is editable or not.
370
+ * @param editable True if editable.
371
+ */
372
+ setEditable(editable: boolean): void;
373
+ /**
374
+ * Returns if this block has been disposed of / deleted.
375
+ * @return True if this block has been disposed of / deleted.
376
+ */
377
+ isDisposed(): boolean;
378
+ /**
379
+ * Find the connection on this block that corresponds to the given connection
380
+ * on the other block.
381
+ * Used to match connections between a block and its insertion marker.
382
+ * @param otherBlock The other block to match against.
383
+ * @param conn The other connection to match.
384
+ * @return The matching connection on this block, or null.
385
+ * @internal
386
+ */
387
+ getMatchingConnection(otherBlock: Block, conn: Connection): Connection | null;
388
+ /**
389
+ * Set the URL of this block's help page.
390
+ * @param url URL string for block help, or function that returns a URL. Null
391
+ * for no help.
392
+ */
393
+ setHelpUrl(url: string | Function): void;
394
+ /**
395
+ * Sets the tooltip for this block.
396
+ * @param newTip The text for the tooltip, a function that returns the text
397
+ * for the tooltip, or a parent object whose tooltip will be used. To not
398
+ * display a tooltip pass the empty string.
399
+ */
400
+ setTooltip(newTip: Tooltip.TipInfo): void;
401
+ /**
402
+ * Returns the tooltip text for this block.
403
+ * @return The tooltip text for this block.
404
+ */
405
+ getTooltip(): string;
406
+ /**
407
+ * Get the colour of a block.
408
+ * @return #RRGGBB string.
409
+ */
410
+ getColour(): string;
411
+ /**
412
+ * Get the name of the block style.
413
+ * @return Name of the block style.
414
+ */
415
+ getStyleName(): string;
416
+ /**
417
+ * Get the HSV hue value of a block. Null if hue not set.
418
+ * @return Hue value (0-360).
419
+ */
420
+ getHue(): number | null;
421
+ /**
422
+ * Change the colour of a block.
423
+ * @param colour HSV hue value (0 to 360), #RRGGBB string, or a message
424
+ * reference string pointing to one of those two values.
425
+ */
426
+ setColour(colour: number | string): void;
427
+ /**
428
+ * Set the style and colour values of a block.
429
+ * @param blockStyleName Name of the block style.
430
+ */
431
+ setStyle(blockStyleName: string): void;
432
+ /**
433
+ * Sets a callback function to use whenever the block's parent workspace
434
+ * changes, replacing any prior onchange handler. This is usually only called
435
+ * from the constructor, the block type initializer function, or an extension
436
+ * initializer function.
437
+ * @param onchangeFn The callback to call when the block's workspace changes.
438
+ * @throws {Error} if onchangeFn is not falsey and not a function.
439
+ */
440
+ setOnChange(onchangeFn: (p1: Abstract) => any): void;
441
+ /**
442
+ * Returns the named field from a block.
443
+ * @param name The name of the field.
444
+ * @return Named field, or null if field does not exist.
445
+ */
446
+ getField(name: string): Field | null;
447
+ /**
448
+ * Return all variables referenced by this block.
449
+ * @return List of variable ids.
450
+ */
451
+ getVars(): string[];
452
+ /**
453
+ * Return all variables referenced by this block.
454
+ * @return List of variable models.
455
+ * @internal
456
+ */
457
+ getVarModels(): VariableModel[];
458
+ /**
459
+ * Notification that a variable is renaming but keeping the same ID. If the
460
+ * variable is in use on this block, rerender to show the new name.
461
+ * @param variable The variable being renamed.
462
+ * @internal
463
+ */
464
+ updateVarName(variable: VariableModel): void;
465
+ /**
466
+ * Notification that a variable is renaming.
467
+ * If the ID matches one of this block's variables, rename it.
468
+ * @param oldId ID of variable to rename.
469
+ * @param newId ID of new variable. May be the same as oldId, but with an
470
+ * updated name.
471
+ */
472
+ renameVarById(oldId: string, newId: string): void;
473
+ /**
474
+ * Returns the language-neutral value of the given field.
475
+ * @param name The name of the field.
476
+ * @return Value of the field or null if field does not exist.
477
+ */
478
+ getFieldValue(name: string): any;
479
+ /**
480
+ * Sets the value of the given field for this block.
481
+ * @param newValue The value to set.
482
+ * @param name The name of the field to set the value of.
483
+ */
484
+ setFieldValue(newValue: any, name: string): void;
485
+ /**
486
+ * Set whether this block can chain onto the bottom of another block.
487
+ * @param newBoolean True if there can be a previous statement.
488
+ * @param opt_check Statement type or list of statement types. Null/undefined
489
+ * if any type could be connected.
490
+ */
491
+ setPreviousStatement(newBoolean: boolean, opt_check?: string | string[] | null): void;
492
+ /**
493
+ * Set whether another block can chain onto the bottom of this block.
494
+ * @param newBoolean True if there can be a next statement.
495
+ * @param opt_check Statement type or list of statement types. Null/undefined
496
+ * if any type could be connected.
497
+ */
498
+ setNextStatement(newBoolean: boolean, opt_check?: string | string[] | null): void;
499
+ /**
500
+ * Set whether this block returns a value.
501
+ * @param newBoolean True if there is an output.
502
+ * @param opt_check Returned type or list of returned types. Null or
503
+ * undefined if any type could be returned (e.g. variable get).
504
+ */
505
+ setOutput(newBoolean: boolean, opt_check?: string | string[] | null): void;
506
+ /**
507
+ * Set whether value inputs are arranged horizontally or vertically.
508
+ * @param newBoolean True if inputs are horizontal.
509
+ */
510
+ setInputsInline(newBoolean: boolean): void;
511
+ /**
512
+ * Get whether value inputs are arranged horizontally or vertically.
513
+ * @return True if inputs are horizontal.
514
+ */
515
+ getInputsInline(): boolean;
516
+ /**
517
+ * Set the block's output shape.
518
+ * @param outputShape Value representing an output shape.
519
+ */
520
+ setOutputShape(outputShape: number | null): void;
521
+ /**
522
+ * Get the block's output shape.
523
+ * @return Value representing output shape if one exists.
524
+ */
525
+ getOutputShape(): number | null;
526
+ /**
527
+ * Get whether this block is enabled or not.
528
+ * @return True if enabled.
529
+ */
530
+ isEnabled(): boolean;
531
+ /**
532
+ * Set whether the block is enabled or not.
533
+ * @param enabled True if enabled.
534
+ */
535
+ setEnabled(enabled: boolean): void;
536
+ /**
537
+ * Get whether the block is disabled or not due to parents.
538
+ * The block's own disabled property is not considered.
539
+ * @return True if disabled.
540
+ */
541
+ getInheritedDisabled(): boolean;
542
+ /**
543
+ * Get whether the block is collapsed or not.
544
+ * @return True if collapsed.
545
+ */
546
+ isCollapsed(): boolean;
547
+ /**
548
+ * Set whether the block is collapsed or not.
549
+ * @param collapsed True if collapsed.
550
+ */
551
+ setCollapsed(collapsed: boolean): void;
552
+ /**
553
+ * Create a human-readable text representation of this block and any children.
554
+ * @param opt_maxLength Truncate the string to this length.
555
+ * @param opt_emptyToken The placeholder string used to denote an empty field.
556
+ * If not specified, '?' is used.
557
+ * @return Text of block.
558
+ */
559
+ toString(opt_maxLength?: number, opt_emptyToken?: string): string;
560
+ /**
561
+ * Shortcut for appending a value input row.
562
+ * @param name Language-neutral identifier which may used to find this input
563
+ * again. Should be unique to this block.
564
+ * @return The input object created.
565
+ */
566
+ appendValueInput(name: string): Input;
567
+ /**
568
+ * Shortcut for appending a statement input row.
569
+ * @param name Language-neutral identifier which may used to find this input
570
+ * again. Should be unique to this block.
571
+ * @return The input object created.
572
+ */
573
+ appendStatementInput(name: string): Input;
574
+ /**
575
+ * Shortcut for appending a dummy input row.
576
+ * @param opt_name Language-neutral identifier which may used to find this
577
+ * input again. Should be unique to this block.
578
+ * @return The input object created.
579
+ */
580
+ appendDummyInput(opt_name?: string): Input;
581
+ /**
582
+ * Initialize this block using a cross-platform, internationalization-friendly
583
+ * JSON description.
584
+ * @param json Structured data describing the block.
585
+ */
586
+ jsonInit(json: any): void;
587
+ /**
588
+ * Initialize the colour of this block from the JSON description.
589
+ * @param json Structured data describing the block.
590
+ * @param warningPrefix Warning prefix string identifying block.
591
+ */
592
+ private jsonInitColour_;
593
+ /**
594
+ * Initialize the style of this block from the JSON description.
595
+ * @param json Structured data describing the block.
596
+ * @param warningPrefix Warning prefix string identifying block.
597
+ */
598
+ private jsonInitStyle_;
599
+ /**
600
+ * Add key/values from mixinObj to this block object. By default, this method
601
+ * will check that the keys in mixinObj will not overwrite existing values in
602
+ * the block, including prototype values. This provides some insurance against
603
+ * mixin / extension incompatibilities with future block features. This check
604
+ * can be disabled by passing true as the second argument.
605
+ * @param mixinObj The key/values pairs to add to this block object.
606
+ * @param opt_disableCheck Option flag to disable overwrite checks.
607
+ */
608
+ mixin(mixinObj: any, opt_disableCheck?: boolean): void;
609
+ /**
610
+ * Interpolate a message description onto the block.
611
+ * @param message Text contains interpolation tokens (%1, %2, ...) that match
612
+ * with fields or inputs defined in the args array.
613
+ * @param args Array of arguments to be interpolated.
614
+ * @param lastDummyAlign If a dummy input is added at the end, how should it
615
+ * be aligned?
616
+ * @param warningPrefix Warning prefix string identifying block.
617
+ */
618
+ private interpolate_;
619
+ /**
620
+ * Validates that the tokens are within the correct bounds, with no
621
+ * duplicates, and that all of the arguments are referred to. Throws errors if
622
+ * any of these things are not true.
623
+ * @param tokens An array of tokens to validate
624
+ * @param argsCount The number of args that need to be referred to.
625
+ */
626
+ private validateTokens_;
627
+ /**
628
+ * Inserts args in place of numerical tokens. String args are converted to
629
+ * JSON that defines a label field. If necessary an extra dummy input is added
630
+ * to the end of the elements.
631
+ * @param tokens The tokens to interpolate
632
+ * @param args The arguments to insert.
633
+ * @param lastDummyAlign The alignment the added dummy input should have, if
634
+ * we are required to add one.
635
+ * @return The JSON definitions of field and inputs to add to the block.
636
+ */
637
+ private interpolateArguments_;
638
+ /**
639
+ * Creates a field from the JSON definition of a field. If a field with the
640
+ * given type cannot be found, this attempts to create a different field using
641
+ * the 'alt' property of the JSON definition (if it exists).
642
+ * @param element The element to try to turn into a field.
643
+ * @return The field defined by the JSON, or null if one couldn't be created.
644
+ */
645
+ private fieldFromJson_;
646
+ /**
647
+ * Creates an input from the JSON definition of an input. Sets the input's
648
+ * check and alignment if they are provided.
649
+ * @param element The JSON to turn into an input.
650
+ * @param warningPrefix The prefix to add to warnings to help the developer
651
+ * debug.
652
+ * @return The input that has been created, or null if one could not be
653
+ * created for some reason (should never happen).
654
+ */
655
+ private inputFromJson_;
656
+ /**
657
+ * Returns true if the given string matches one of the input keywords.
658
+ * @param str The string to check.
659
+ * @return True if the given string matches one of the input keywords, false
660
+ * otherwise.
661
+ */
662
+ private isInputKeyword_;
663
+ /**
664
+ * Turns a string into the JSON definition of a label field. If the string
665
+ * becomes an empty string when trimmed, this returns null.
666
+ * @param str String to turn into the JSON definition of a label field.
667
+ * @return The JSON definition or null.
668
+ */
669
+ private stringToFieldJson_;
670
+ /**
671
+ * Add a value input, statement input or local variable to this block.
672
+ * @param type One of Blockly.inputTypes.
673
+ * @param name Language-neutral identifier which may used to find this input
674
+ * again. Should be unique to this block.
675
+ * @return The input object created.
676
+ */
677
+ protected appendInput_(type: number, name: string): Input;
678
+ /**
679
+ * Move a named input to a different location on this block.
680
+ * @param name The name of the input to move.
681
+ * @param refName Name of input that should be after the moved input, or null
682
+ * to be the input at the end.
683
+ */
684
+ moveInputBefore(name: string, refName: string | null): void;
685
+ /**
686
+ * Move a numbered input to a different location on this block.
687
+ * @param inputIndex Index of the input to move.
688
+ * @param refIndex Index of input that should be after the moved input.
689
+ */
690
+ moveNumberedInputBefore(inputIndex: number, refIndex: number): void;
691
+ /**
692
+ * Remove an input from this block.
693
+ * @param name The name of the input.
694
+ * @param opt_quiet True to prevent an error if input is not present.
695
+ * @return True if operation succeeds, false if input is not present and
696
+ * opt_quiet is true.
697
+ * @throws {Error} if the input is not present and opt_quiet is not true.
698
+ */
699
+ removeInput(name: string, opt_quiet?: boolean): boolean;
700
+ /**
701
+ * Fetches the named input object.
702
+ * @param name The name of the input.
703
+ * @return The input object, or null if input does not exist.
704
+ */
705
+ getInput(name: string): Input | null;
706
+ /**
707
+ * Fetches the block attached to the named input.
708
+ * @param name The name of the input.
709
+ * @return The attached value block, or null if the input is either
710
+ * disconnected or if the input does not exist.
711
+ */
712
+ getInputTargetBlock(name: string): Block | null;
713
+ /**
714
+ * Returns the comment on this block (or null if there is no comment).
715
+ * @return Block's comment.
716
+ */
717
+ getCommentText(): string | null;
718
+ /**
719
+ * Set this block's comment text.
720
+ * @param text The text, or null to delete.
721
+ */
722
+ setCommentText(text: string | null): void;
723
+ /**
724
+ * Set this block's warning text.
725
+ * @param _text The text, or null to delete.
726
+ * @param _opt_id An optional ID for the warning text to be able to maintain
727
+ * multiple warnings.
728
+ */
729
+ setWarningText(_text: string | null, _opt_id?: string): void;
730
+ /**
731
+ * Give this block a mutator dialog.
732
+ * @param _mutator A mutator dialog instance or null to remove.
733
+ */
734
+ setMutator(_mutator: Mutator): void;
735
+ /**
736
+ * Return the coordinates of the top-left corner of this block relative to the
737
+ * drawing surface's origin (0,0), in workspace units.
738
+ * @return Object with .x and .y properties.
739
+ */
740
+ getRelativeToSurfaceXY(): Coordinate;
741
+ /**
742
+ * Move a block by a relative offset.
743
+ * @param dx Horizontal offset, in workspace units.
744
+ * @param dy Vertical offset, in workspace units.
745
+ */
746
+ moveBy(dx: number, dy: number): void;
747
+ /**
748
+ * Create a connection of the specified type.
749
+ * @param type The type of the connection to create.
750
+ * @return A new connection of the specified type.
751
+ */
752
+ protected makeConnection_(type: number): Connection;
753
+ /**
754
+ * Recursively checks whether all statement and value inputs are filled with
755
+ * blocks. Also checks all following statement blocks in this stack.
756
+ * @param opt_shadowBlocksAreFilled An optional argument controlling whether
757
+ * shadow blocks are counted as filled. Defaults to true.
758
+ * @return True if all inputs are filled, false otherwise.
759
+ */
760
+ allInputsFilled(opt_shadowBlocksAreFilled?: boolean): boolean;
761
+ /**
762
+ * This method returns a string describing this Block in developer terms (type
763
+ * name and ID; English only).
764
+ *
765
+ * Intended to on be used in console logs and errors. If you need a string
766
+ * that uses the user's native language (including block text, field values,
767
+ * and child blocks), use [toString()]{@link Block#toString}.
768
+ * @return The description.
769
+ */
770
+ toDevString(): string;
771
+ }
772
+ export declare namespace Block {
773
+ interface CommentModel {
774
+ text: string | null;
775
+ pinned: boolean;
776
+ size: Size;
777
+ }
778
+ }
779
+ export declare type CommentModel = Block.CommentModel;