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
@@ -10,7 +10,6 @@
10
10
  * are applied using Block.applyExtension(), or the JSON "extensions"
11
11
  * array attribute.
12
12
  */
13
- 'use strict';
14
13
 
15
14
  /**
16
15
  * Extensions are functions that help initialize blocks, usually
@@ -19,35 +18,36 @@
19
18
  * array attribute.
20
19
  * @namespace Blockly.Extensions
21
20
  */
22
- goog.module('Blockly.Extensions');
21
+ import * as goog from '../closure/goog/goog.js';
22
+ goog.declareModuleId('Blockly.Extensions');
23
23
 
24
- const parsing = goog.require('Blockly.utils.parsing');
25
- /* eslint-disable-next-line no-unused-vars */
26
- const {Block} = goog.requireType('Blockly.Block');
27
- const {FieldDropdown} = goog.require('Blockly.FieldDropdown');
28
- goog.requireType('Blockly.Mutator');
24
+ // Unused import preserved for side-effects. Remove if unneeded.
25
+ // import './mutator.js';
29
26
 
27
+ import type {Block} from './block.js';
28
+ import type {BlockSvg} from './block_svg.js';
29
+ import {FieldDropdown} from './field_dropdown.js';
30
+ import {Mutator} from './mutator.js';
31
+ import * as parsing from './utils/parsing.js';
30
32
 
31
- /**
32
- * The set of all registered extensions, keyed by extension name/id.
33
- * @private
34
- */
33
+
34
+ /** The set of all registered extensions, keyed by extension name/id. */
35
35
  const allExtensions = Object.create(null);
36
- exports.TEST_ONLY = {allExtensions};
36
+ export const TEST_ONLY = {allExtensions};
37
37
 
38
38
  /**
39
39
  * Registers a new extension function. Extensions are functions that help
40
40
  * initialize blocks, usually adding dynamic behavior such as onchange
41
41
  * handlers and mutators. These are applied using Block.applyExtension(), or
42
42
  * the JSON "extensions" array attribute.
43
- * @param {string} name The name of this extension.
44
- * @param {Function} initFn The function to initialize an extended block.
43
+ * @param name The name of this extension.
44
+ * @param initFn The function to initialize an extended block.
45
45
  * @throws {Error} if the extension name is empty, the extension is already
46
46
  * registered, or extensionFn is not a function.
47
47
  * @alias Blockly.Extensions.register
48
48
  */
49
- const register = function(name, initFn) {
50
- if ((typeof name !== 'string') || (name.trim() === '')) {
49
+ export function register(name: string, initFn: Function) {
50
+ if (typeof name !== 'string' || name.trim() === '') {
51
51
  throw Error('Error: Invalid extension name "' + name + '"');
52
52
  }
53
53
  if (allExtensions[name]) {
@@ -57,113 +57,98 @@ const register = function(name, initFn) {
57
57
  throw Error('Error: Extension "' + name + '" must be a function');
58
58
  }
59
59
  allExtensions[name] = initFn;
60
- };
61
- exports.register = register;
60
+ }
62
61
 
63
62
  /**
64
63
  * Registers a new extension function that adds all key/value of mixinObj.
65
- * @param {string} name The name of this extension.
66
- * @param {!Object} mixinObj The values to mix in.
64
+ * @param name The name of this extension.
65
+ * @param mixinObj The values to mix in.
67
66
  * @throws {Error} if the extension name is empty or the extension is already
68
67
  * registered.
69
68
  * @alias Blockly.Extensions.registerMixin
70
69
  */
71
- const registerMixin = function(name, mixinObj) {
70
+ export function registerMixin(name: string, mixinObj: AnyDuringMigration) {
72
71
  if (!mixinObj || typeof mixinObj !== 'object') {
73
72
  throw Error('Error: Mixin "' + name + '" must be a object');
74
73
  }
75
- register(
76
- name,
77
- /** @this {Block} */
78
- function() {
79
- this.mixin(mixinObj);
80
- });
81
- };
82
- exports.registerMixin = registerMixin;
74
+ register(name, function(this: Block) {
75
+ this.mixin(mixinObj);
76
+ });
77
+ }
83
78
 
84
79
  /**
85
80
  * Registers a new extension function that adds a mutator to the block.
86
81
  * At register time this performs some basic sanity checks on the mutator.
87
82
  * The wrapper may also add a mutator dialog to the block, if both compose and
88
83
  * decompose are defined on the mixin.
89
- * @param {string} name The name of this mutator extension.
90
- * @param {!Object} mixinObj The values to mix in.
91
- * @param {(function())=} opt_helperFn An optional function to apply after
92
- * mixing in the object.
93
- * @param {!Array<string>=} opt_blockList A list of blocks to appear in the
94
- * flyout of the mutator dialog.
84
+ * @param name The name of this mutator extension.
85
+ * @param mixinObj The values to mix in.
86
+ * @param opt_helperFn An optional function to apply after mixing in the object.
87
+ * @param opt_blockList A list of blocks to appear in the flyout of the mutator
88
+ * dialog.
95
89
  * @throws {Error} if the mutation is invalid or can't be applied to the block.
96
90
  * @alias Blockly.Extensions.registerMutator
97
91
  */
98
- const registerMutator = function(name, mixinObj, opt_helperFn, opt_blockList) {
92
+ export function registerMutator(
93
+ name: string, mixinObj: AnyDuringMigration,
94
+ opt_helperFn?: () => AnyDuringMigration, opt_blockList?: string[]) {
99
95
  const errorPrefix = 'Error when registering mutator "' + name + '": ';
100
96
 
101
97
  checkHasMutatorProperties(errorPrefix, mixinObj);
102
98
  const hasMutatorDialog = checkMutatorDialog(mixinObj, errorPrefix);
103
99
 
104
- if (opt_helperFn && (typeof opt_helperFn !== 'function')) {
100
+ if (opt_helperFn && typeof opt_helperFn !== 'function') {
105
101
  throw Error(errorPrefix + 'Extension "' + name + '" is not a function');
106
102
  }
107
103
 
108
104
  // Sanity checks passed.
109
- register(
110
- name,
111
- /** @this {Block} */
112
- function() {
113
- if (hasMutatorDialog) {
114
- const {Mutator} = goog.module.get('Blockly.Mutator');
115
- if (!Mutator) {
116
- throw Error(errorPrefix + 'Missing require for Blockly.Mutator');
117
- }
118
- this.setMutator(new Mutator(opt_blockList || []));
119
- }
120
- // Mixin the object.
121
- this.mixin(mixinObj);
105
+ register(name, function(this: Block) {
106
+ if (hasMutatorDialog) {
107
+ this.setMutator(new Mutator(this as BlockSvg, opt_blockList || []));
108
+ }
109
+ // Mixin the object.
110
+ this.mixin(mixinObj);
122
111
 
123
- if (opt_helperFn) {
124
- opt_helperFn.apply(this);
125
- }
126
- });
127
- };
128
- exports.registerMutator = registerMutator;
112
+ if (opt_helperFn) {
113
+ opt_helperFn.apply(this);
114
+ }
115
+ });
116
+ }
129
117
 
130
118
  /**
131
119
  * Unregisters the extension registered with the given name.
132
- * @param {string} name The name of the extension to unregister.
120
+ * @param name The name of the extension to unregister.
133
121
  * @alias Blockly.Extensions.unregister
134
122
  */
135
- const unregister = function(name) {
123
+ export function unregister(name: string) {
136
124
  if (isRegistered(name)) {
137
125
  delete allExtensions[name];
138
126
  } else {
139
127
  console.warn(
140
128
  'No extension mapping for name "' + name + '" found to unregister');
141
129
  }
142
- };
143
- exports.unregister = unregister;
130
+ }
144
131
 
145
132
  /**
146
133
  * Returns whether an extension is registered with the given name.
147
- * @param {string} name The name of the extension to check for.
148
- * @return {boolean} True if the extension is registered. False if it is
149
- * not registered.
134
+ * @param name The name of the extension to check for.
135
+ * @return True if the extension is registered. False if it is not registered.
150
136
  * @alias Blockly.Extensions.isRegistered
151
137
  */
152
- const isRegistered = function(name) {
138
+ export function isRegistered(name: string): boolean {
153
139
  return !!allExtensions[name];
154
- };
155
- exports.isRegistered = isRegistered;
140
+ }
156
141
 
157
142
  /**
158
143
  * Applies an extension method to a block. This should only be called during
159
144
  * block construction.
160
- * @param {string} name The name of the extension.
161
- * @param {!Block} block The block to apply the named extension to.
162
- * @param {boolean} isMutator True if this extension defines a mutator.
145
+ * @param name The name of the extension.
146
+ * @param block The block to apply the named extension to.
147
+ * @param isMutator True if this extension defines a mutator.
163
148
  * @throws {Error} if the extension is not found.
164
149
  * @alias Blockly.Extensions.apply
165
150
  */
166
- const apply = function(name, block, isMutator) {
151
+ export function apply(name: string, block: Block, isMutator: boolean) {
167
152
  const extensionFn = allExtensions[name];
168
153
  if (typeof extensionFn !== 'function') {
169
154
  throw Error('Error: Extension "' + name + '" not found.');
@@ -184,25 +169,23 @@ const apply = function(name, block, isMutator) {
184
169
  checkHasMutatorProperties(errorPrefix, block);
185
170
  } else {
186
171
  if (!mutatorPropertiesMatch(
187
- /** @type {!Array<Object>} */ (mutatorProperties), block)) {
172
+ mutatorProperties as AnyDuringMigration[], block)) {
188
173
  throw Error(
189
174
  'Error when applying extension "' + name + '": ' +
190
175
  'mutation properties changed when applying a non-mutator extension.');
191
176
  }
192
177
  }
193
- };
194
- exports.apply = apply;
178
+ }
195
179
 
196
180
  /**
197
181
  * Check that the given block does not have any of the four mutator properties
198
182
  * defined on it. This function should be called before applying a mutator
199
183
  * extension to a block, to make sure we are not overwriting properties.
200
- * @param {string} mutationName The name of the mutation to reference in error
201
- * messages.
202
- * @param {!Block} block The block to check.
184
+ * @param mutationName The name of the mutation to reference in error messages.
185
+ * @param block The block to check.
203
186
  * @throws {Error} if any of the properties already exist on the block.
204
187
  */
205
- const checkNoMutatorProperties = function(mutationName, block) {
188
+ function checkNoMutatorProperties(mutationName: string, block: Block) {
206
189
  const properties = getMutatorProperties(block);
207
190
  if (properties.length) {
208
191
  throw Error(
@@ -210,66 +193,70 @@ const checkNoMutatorProperties = function(mutationName, block) {
210
193
  '" to a block that already has mutator functions.' +
211
194
  ' Block id: ' + block.id);
212
195
  }
213
- };
196
+ }
214
197
 
215
198
  /**
216
199
  * Checks if the given object has both the 'mutationToDom' and 'domToMutation'
217
200
  * functions.
218
- * @param {!Object} object The object to check.
219
- * @param {string} errorPrefix The string to prepend to any error message.
220
- * @return {boolean} True if the object has both functions. False if it has
221
- * neither function.
222
- * @throws {Error} if the object has only one of the functions, or either is
223
- * not actually a function.
201
+ * @param object The object to check.
202
+ * @param errorPrefix The string to prepend to any error message.
203
+ * @return True if the object has both functions. False if it has neither
204
+ * function.
205
+ * @throws {Error} if the object has only one of the functions, or either is not
206
+ * actually a function.
224
207
  */
225
- const checkXmlHooks = function(object, errorPrefix) {
208
+ function checkXmlHooks(
209
+ object: AnyDuringMigration, errorPrefix: string): boolean {
226
210
  return checkHasFunctionPair(
227
211
  object.mutationToDom, object.domToMutation,
228
212
  errorPrefix + ' mutationToDom/domToMutation');
229
- };
230
-
213
+ }
231
214
  /**
232
215
  * Checks if the given object has both the 'saveExtraState' and 'loadExtraState'
233
216
  * functions.
234
- * @param {!Object} object The object to check.
235
- * @param {string} errorPrefix The string to prepend to any error message.
236
- * @return {boolean} True if the object has both functions. False if it has
237
- * neither function.
238
- * @throws {Error} if the object has only one of the functions, or either is
239
- * not actually a function.
217
+ * @param object The object to check.
218
+ * @param errorPrefix The string to prepend to any error message.
219
+ * @return True if the object has both functions. False if it has neither
220
+ * function.
221
+ * @throws {Error} if the object has only one of the functions, or either is not
222
+ * actually a function.
240
223
  */
241
- const checkJsonHooks = function(object, errorPrefix) {
224
+ function checkJsonHooks(
225
+ object: AnyDuringMigration, errorPrefix: string): boolean {
242
226
  return checkHasFunctionPair(
243
227
  object.saveExtraState, object.loadExtraState,
244
228
  errorPrefix + ' saveExtraState/loadExtraState');
245
- };
229
+ }
246
230
 
247
231
  /**
248
232
  * Checks if the given object has both the 'compose' and 'decompose' functions.
249
- * @param {!Object} object The object to check.
250
- * @param {string} errorPrefix The string to prepend to any error message.
251
- * @return {boolean} True if the object has both functions. False if it has
252
- * neither function.
253
- * @throws {Error} if the object has only one of the functions, or either is
254
- * not actually a function.
233
+ * @param object The object to check.
234
+ * @param errorPrefix The string to prepend to any error message.
235
+ * @return True if the object has both functions. False if it has neither
236
+ * function.
237
+ * @throws {Error} if the object has only one of the functions, or either is not
238
+ * actually a function.
255
239
  */
256
- const checkMutatorDialog = function(object, errorPrefix) {
240
+ function checkMutatorDialog(
241
+ object: AnyDuringMigration, errorPrefix: string): boolean {
257
242
  return checkHasFunctionPair(
258
243
  object.compose, object.decompose, errorPrefix + ' compose/decompose');
259
- };
244
+ }
260
245
 
261
246
  /**
262
247
  * Checks that both or neither of the given functions exist and that they are
263
248
  * indeed functions.
264
- * @param {*} func1 The first function in the pair.
265
- * @param {*} func2 The second function in the pair.
266
- * @param {string} errorPrefix The string to prepend to any error message.
267
- * @return {boolean} True if the object has both functions. False if it has
268
- * neither function.
269
- * @throws {Error} If the object has only one of the functions, or either is
270
- * not actually a function.
249
+ * @param func1 The first function in the pair.
250
+ * @param func2 The second function in the pair.
251
+ * @param errorPrefix The string to prepend to any error message.
252
+ * @return True if the object has both functions. False if it has neither
253
+ * function.
254
+ * @throws {Error} If the object has only one of the functions, or either is not
255
+ * actually a function.
271
256
  */
272
- const checkHasFunctionPair = function(func1, func2, errorPrefix) {
257
+ function checkHasFunctionPair(
258
+ func1: AnyDuringMigration, func2: AnyDuringMigration,
259
+ errorPrefix: string): boolean {
273
260
  if (func1 && func2) {
274
261
  if (typeof func1 !== 'function' || typeof func2 !== 'function') {
275
262
  throw Error(errorPrefix + ' must be a function');
@@ -279,14 +266,15 @@ const checkHasFunctionPair = function(func1, func2, errorPrefix) {
279
266
  return false;
280
267
  }
281
268
  throw Error(errorPrefix + 'Must have both or neither functions');
282
- };
269
+ }
283
270
 
284
271
  /**
285
272
  * Checks that the given object required mutator properties.
286
- * @param {string} errorPrefix The string to prepend to any error message.
287
- * @param {!Object} object The object to inspect.
273
+ * @param errorPrefix The string to prepend to any error message.
274
+ * @param object The object to inspect.
288
275
  */
289
- const checkHasMutatorProperties = function(errorPrefix, object) {
276
+ function checkHasMutatorProperties(
277
+ errorPrefix: string, object: AnyDuringMigration) {
290
278
  const hasXmlHooks = checkXmlHooks(object, errorPrefix);
291
279
  const hasJsonHooks = checkJsonHooks(object, errorPrefix);
292
280
  if (!hasXmlHooks && !hasJsonHooks) {
@@ -297,15 +285,15 @@ const checkHasMutatorProperties = function(errorPrefix, object) {
297
285
  // A block with a mutator isn't required to have a mutation dialog, but
298
286
  // it should still have both or neither of compose and decompose.
299
287
  checkMutatorDialog(object, errorPrefix);
300
- };
288
+ }
301
289
 
302
290
  /**
303
291
  * Get a list of values of mutator properties on the given block.
304
- * @param {!Block} block The block to inspect.
305
- * @return {!Array<Object>} A list with all of the defined properties, which
306
- * should be functions, but may be anything other than undefined.
292
+ * @param block The block to inspect.
293
+ * @return A list with all of the defined properties, which should be functions,
294
+ * but may be anything other than undefined.
307
295
  */
308
- const getMutatorProperties = function(block) {
296
+ function getMutatorProperties(block: Block): AnyDuringMigration[] {
309
297
  const result = [];
310
298
  // List each function explicitly by reference to allow for renaming
311
299
  // during compilation.
@@ -328,17 +316,18 @@ const getMutatorProperties = function(block) {
328
316
  result.push(block.decompose);
329
317
  }
330
318
  return result;
331
- };
319
+ }
332
320
 
333
321
  /**
334
322
  * Check that the current mutator properties match a list of old mutator
335
323
  * properties. This should be called after applying a non-mutator extension,
336
324
  * to verify that the extension didn't change properties it shouldn't.
337
- * @param {!Array<Object>} oldProperties The old values to compare to.
338
- * @param {!Block} block The block to inspect for new values.
339
- * @return {boolean} True if the property lists match.
325
+ * @param oldProperties The old values to compare to.
326
+ * @param block The block to inspect for new values.
327
+ * @return True if the property lists match.
340
328
  */
341
- const mutatorPropertiesMatch = function(oldProperties, block) {
329
+ function mutatorPropertiesMatch(
330
+ oldProperties: AnyDuringMigration[], block: Block): boolean {
342
331
  const newProperties = getMutatorProperties(block);
343
332
  if (newProperties.length !== oldProperties.length) {
344
333
  return false;
@@ -349,15 +338,15 @@ const mutatorPropertiesMatch = function(oldProperties, block) {
349
338
  }
350
339
  }
351
340
  return true;
352
- };
341
+ }
353
342
 
354
343
  /**
355
344
  * Calls a function after the page has loaded, possibly immediately.
356
- * @param {function()} fn Function to run.
345
+ * @param fn Function to run.
357
346
  * @throws Error Will throw if no global document can be found (e.g., Node.js).
358
- * @package
347
+ * @internal
359
348
  */
360
- const runAfterPageLoad = function(fn) {
349
+ export function runAfterPageLoad(fn: () => AnyDuringMigration) {
361
350
  if (typeof document !== 'object') {
362
351
  throw Error('runAfterPageLoad() requires browser document.');
363
352
  }
@@ -372,8 +361,7 @@ const runAfterPageLoad = function(fn) {
372
361
  }
373
362
  }, 10);
374
363
  }
375
- };
376
- exports.runAfterPageLoad = runAfterPageLoad;
364
+ }
377
365
 
378
366
  /**
379
367
  * Builds an extension function that will map a dropdown value to a tooltip
@@ -388,16 +376,16 @@ exports.runAfterPageLoad = runAfterPageLoad;
388
376
  * loading the first block of any given type, the extension will validate every
389
377
  * dropdown option has a matching tooltip in the lookupTable. Errors are
390
378
  * reported as warnings in the console, and are never fatal.
391
- * @param {string} dropdownName The name of the field whose value is the key
392
- * to the lookup table.
393
- * @param {!Object<string, string>} lookupTable The table of field values to
394
- * tooltip text.
395
- * @return {!Function} The extension function.
379
+ * @param dropdownName The name of the field whose value is the key to the
380
+ * lookup table.
381
+ * @param lookupTable The table of field values to tooltip text.
382
+ * @return The extension function.
396
383
  * @alias Blockly.Extensions.buildTooltipForDropdown
397
384
  */
398
- const buildTooltipForDropdown = function(dropdownName, lookupTable) {
385
+ export function buildTooltipForDropdown(
386
+ dropdownName: string, lookupTable: {[key: string]: string}): Function {
399
387
  // List of block types already validated, to minimize duplicate warnings.
400
- const blockTypesChecked = [];
388
+ const blockTypesChecked: AnyDuringMigration[] = [];
401
389
 
402
390
  // Check the tooltip string messages for invalid references.
403
391
  // Wait for load, in case Blockly.Msg is not yet populated.
@@ -412,17 +400,14 @@ const buildTooltipForDropdown = function(dropdownName, lookupTable) {
412
400
  });
413
401
  }
414
402
 
415
- /**
416
- * The actual extension.
417
- * @this {Block}
418
- */
419
- const extensionFn = function() {
403
+ /** The actual extension. */
404
+ function extensionFn(this: Block) {
420
405
  if (this.type && blockTypesChecked.indexOf(this.type) === -1) {
421
406
  checkDropdownOptionsInTable(this, dropdownName, lookupTable);
422
407
  blockTypesChecked.push(this.type);
423
408
  }
424
409
 
425
- this.setTooltip(function() {
410
+ this.setTooltip(function(this: Block) {
426
411
  const value = String(this.getFieldValue(dropdownName));
427
412
  let tooltip = lookupTable[value];
428
413
  if (tooltip === null) {
@@ -431,7 +416,7 @@ const buildTooltipForDropdown = function(dropdownName, lookupTable) {
431
416
  let warning = 'No tooltip mapping for value ' + value + ' of field ' +
432
417
  dropdownName;
433
418
  if (this.type !== null) {
434
- warning += (' of block type ' + this.type);
419
+ warning += ' of block type ' + this.type;
435
420
  }
436
421
  console.warn(warning + '.');
437
422
  }
@@ -440,19 +425,19 @@ const buildTooltipForDropdown = function(dropdownName, lookupTable) {
440
425
  }
441
426
  return tooltip;
442
427
  }.bind(this));
443
- };
428
+ }
444
429
  return extensionFn;
445
- };
446
- exports.buildTooltipForDropdown = buildTooltipForDropdown;
430
+ }
447
431
 
448
432
  /**
449
433
  * Checks all options keys are present in the provided string lookup table.
450
434
  * Emits console warnings when they are not.
451
- * @param {!Block} block The block containing the dropdown
452
- * @param {string} dropdownName The name of the dropdown
453
- * @param {!Object<string, string>} lookupTable The string lookup table
435
+ * @param block The block containing the dropdown
436
+ * @param dropdownName The name of the dropdown
437
+ * @param lookupTable The string lookup table
454
438
  */
455
- const checkDropdownOptionsInTable = function(block, dropdownName, lookupTable) {
439
+ function checkDropdownOptionsInTable(
440
+ block: Block, dropdownName: string, lookupTable: {[key: string]: string}) {
456
441
  // Validate all dropdown options have values.
457
442
  const dropdown = block.getField(dropdownName);
458
443
  if (dropdown instanceof FieldDropdown && !dropdown.isOptionListDynamic()) {
@@ -466,19 +451,20 @@ const checkDropdownOptionsInTable = function(block, dropdownName, lookupTable) {
466
451
  }
467
452
  }
468
453
  }
469
- };
454
+ }
470
455
 
471
456
  /**
472
457
  * Builds an extension function that will install a dynamic tooltip. The
473
458
  * tooltip message should include the string '%1' and that string will be
474
459
  * replaced with the text of the named field.
475
- * @param {string} msgTemplate The template form to of the message text, with
476
- * %1 placeholder.
477
- * @param {string} fieldName The field with the replacement text.
478
- * @return {!Function} The extension function.
460
+ * @param msgTemplate The template form to of the message text, with %1
461
+ * placeholder.
462
+ * @param fieldName The field with the replacement text.
463
+ * @return The extension function.
479
464
  * @alias Blockly.Extensions.buildTooltipWithFieldText
480
465
  */
481
- const buildTooltipWithFieldText = function(msgTemplate, fieldName) {
466
+ export function buildTooltipWithFieldText(
467
+ msgTemplate: string, fieldName: string): Function {
482
468
  // Check the tooltip string messages for invalid references.
483
469
  // Wait for load, in case Blockly.Msg is not yet populated.
484
470
  // runAfterPageLoad() does not run in a Node.js environment due to lack
@@ -490,34 +476,29 @@ const buildTooltipWithFieldText = function(msgTemplate, fieldName) {
490
476
  });
491
477
  }
492
478
 
493
- /**
494
- * The actual extension.
495
- * @this {Block}
496
- */
497
- const extensionFn = function() {
498
- this.setTooltip(function() {
479
+ /** The actual extension. */
480
+ function extensionFn(this: Block) {
481
+ this.setTooltip(function(this: Block) {
499
482
  const field = this.getField(fieldName);
500
483
  return parsing.replaceMessageReferences(msgTemplate)
501
484
  .replace('%1', field ? field.getText() : '');
502
485
  }.bind(this));
503
- };
486
+ }
504
487
  return extensionFn;
505
- };
506
- exports.buildTooltipWithFieldText = buildTooltipWithFieldText;
488
+ }
507
489
 
508
490
  /**
509
491
  * Configures the tooltip to mimic the parent block when connected. Otherwise,
510
492
  * uses the tooltip text at the time this extension is initialized. This takes
511
493
  * advantage of the fact that all other values from JSON are initialized before
512
494
  * extensions.
513
- * @this {Block}
514
495
  */
515
- const extensionParentTooltip = function() {
496
+ function extensionParentTooltip(this: Block) {
516
497
  const tooltipWhenNotConnected = this.tooltip;
517
- this.setTooltip(function() {
498
+ this.setTooltip(function(this: Block) {
518
499
  const parent = this.getParent();
519
- return (parent && parent.getInputsInline() && parent.tooltip) ||
500
+ return parent && parent.getInputsInline() && parent.tooltip ||
520
501
  tooltipWhenNotConnected;
521
502
  }.bind(this));
522
- };
503
+ }
523
504
  register('parent_tooltip_when_inline', extensionParentTooltip);