blockly 8.0.5 → 9.0.0-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 (736) hide show
  1. package/blockly.min.js +2002 -2269
  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/package.json +5 -5
  609. package/php.d.ts +0 -3
  610. package/php_compressed.js +322 -93
  611. package/php_compressed.js.map +1 -1
  612. package/python.d.ts +0 -3
  613. package/python_compressed.js +237 -90
  614. package/python_compressed.js.map +1 -1
  615. package/blockly.d.ts +0 -26127
  616. package/core/blockly_options.js +0 -28
  617. package/core/bubble_dragger.js +0 -298
  618. package/core/clipboard.js +0 -80
  619. package/core/component_manager.js +0 -263
  620. package/core/contextmenu_items.js +0 -651
  621. package/core/contextmenu_registry.js +0 -178
  622. package/core/delete_area.js +0 -87
  623. package/core/dialog.js +0 -107
  624. package/core/drag_target.js +0 -98
  625. package/core/events/events.js +0 -147
  626. package/core/events/events_abstract.js +0 -133
  627. package/core/events/events_block_base.js +0 -70
  628. package/core/events/events_block_drag.js +0 -89
  629. package/core/events/events_bubble_open.js +0 -90
  630. package/core/events/events_comment_base.js +0 -121
  631. package/core/events/events_marker_move.js +0 -110
  632. package/core/events/events_selected.js +0 -83
  633. package/core/events/events_toolbox_item_select.js +0 -84
  634. package/core/events/events_trashcan_open.js +0 -73
  635. package/core/events/events_var_base.js +0 -70
  636. package/core/events/events_viewport.js +0 -107
  637. package/core/events/workspace_events.js +0 -93
  638. package/core/field_angle.js +0 -591
  639. package/core/field_checkbox.js +0 -255
  640. package/core/field_colour.js +0 -717
  641. package/core/field_image.js +0 -304
  642. package/core/field_label.js +0 -149
  643. package/core/field_label_serializable.js +0 -80
  644. package/core/field_textinput.js +0 -619
  645. package/core/flyout_button.js +0 -356
  646. package/core/grid.js +0 -226
  647. package/core/icon.js +0 -225
  648. package/core/input.js +0 -335
  649. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  650. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  651. package/core/interfaces/i_autohideable.js +0 -40
  652. package/core/interfaces/i_block_dragger.js +0 -66
  653. package/core/interfaces/i_bounded_element.js +0 -45
  654. package/core/interfaces/i_bubble.js +0 -95
  655. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  656. package/core/interfaces/i_connection_checker.js +0 -104
  657. package/core/interfaces/i_contextmenu.js +0 -32
  658. package/core/interfaces/i_copyable.js +0 -49
  659. package/core/interfaces/i_delete_area.js +0 -50
  660. package/core/interfaces/i_drag_target.js +0 -88
  661. package/core/interfaces/i_flyout.js +0 -201
  662. package/core/interfaces/i_keyboard_accessible.js +0 -38
  663. package/core/interfaces/i_metrics_manager.js +0 -154
  664. package/core/interfaces/i_positionable.js +0 -51
  665. package/core/interfaces/i_selectable.js +0 -51
  666. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  667. package/core/interfaces/i_serializer.js +0 -77
  668. package/core/interfaces/i_styleable.js +0 -39
  669. package/core/interfaces/i_toolbox.js +0 -142
  670. package/core/interfaces/i_toolbox_item.js +0 -85
  671. package/core/marker_manager.js +0 -213
  672. package/core/menuitem.js +0 -292
  673. package/core/names.js +0 -293
  674. package/core/registry.js +0 -384
  675. package/core/renderers/common/block_rendering.js +0 -170
  676. package/core/renderers/common/constants.js +0 -1250
  677. package/core/renderers/common/i_path_object.js +0 -162
  678. package/core/renderers/common/marker_svg.js +0 -721
  679. package/core/renderers/common/path_object.js +0 -283
  680. package/core/renderers/common/renderer.js +0 -305
  681. package/core/renderers/geras/constants.js +0 -73
  682. package/core/renderers/geras/geras.js +0 -36
  683. package/core/renderers/geras/measurables/inline_input.js +0 -58
  684. package/core/renderers/geras/measurables/statement_input.js +0 -57
  685. package/core/renderers/geras/renderer.js +0 -149
  686. package/core/renderers/measurables/base.js +0 -64
  687. package/core/renderers/measurables/bottom_row.js +0 -138
  688. package/core/renderers/measurables/connection.js +0 -56
  689. package/core/renderers/measurables/external_value_input.js +0 -70
  690. package/core/renderers/measurables/field.js +0 -71
  691. package/core/renderers/measurables/in_row_spacer.js +0 -47
  692. package/core/renderers/measurables/input_connection.js +0 -75
  693. package/core/renderers/measurables/next_connection.js +0 -50
  694. package/core/renderers/measurables/output_connection.js +0 -61
  695. package/core/renderers/measurables/previous_connection.js +0 -50
  696. package/core/renderers/measurables/round_corner.js +0 -52
  697. package/core/renderers/measurables/row.js +0 -247
  698. package/core/renderers/measurables/spacer_row.js +0 -69
  699. package/core/renderers/measurables/square_corner.js +0 -50
  700. package/core/renderers/measurables/top_row.js +0 -143
  701. package/core/renderers/measurables/types.js +0 -353
  702. package/core/renderers/minimalist/drawer.js +0 -42
  703. package/core/renderers/minimalist/info.js +0 -54
  704. package/core/renderers/minimalist/minimalist.js +0 -26
  705. package/core/renderers/minimalist/renderer.js +0 -80
  706. package/core/renderers/thrasos/renderer.js +0 -53
  707. package/core/renderers/thrasos/thrasos.js +0 -22
  708. package/core/renderers/zelos/marker_svg.js +0 -179
  709. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  710. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  711. package/core/renderers/zelos/path_object.js +0 -247
  712. package/core/renderers/zelos/renderer.js +0 -147
  713. package/core/renderers/zelos/zelos.js +0 -38
  714. package/core/serialization/exceptions.js +0 -144
  715. package/core/shortcut_registry.js +0 -366
  716. package/core/theme/themes.js +0 -23
  717. package/core/theme.js +0 -228
  718. package/core/theme_manager.js +0 -211
  719. package/core/toolbox/category.js +0 -751
  720. package/core/toolbox/collapsible_category.js +0 -311
  721. package/core/toolbox/separator.js +0 -133
  722. package/core/toolbox/toolbox_item.js +0 -173
  723. package/core/touch.js +0 -285
  724. package/core/utils/coordinate.js +0 -138
  725. package/core/utils/global.js +0 -41
  726. package/core/utils/keycodes.js +0 -172
  727. package/core/utils/metrics.js +0 -154
  728. package/core/utils/svg.js +0 -186
  729. package/core/utils/toolbox.js +0 -459
  730. package/core/utils/useragent.js +0 -197
  731. package/core/utils.js +0 -383
  732. package/core/variable_model.js +0 -96
  733. package/core/widgetdiv.js +0 -290
  734. package/core/workspace.js +0 -836
  735. package/core/workspace_comment.js +0 -400
  736. package/core/workspace_dragger.js +0 -115
@@ -4,8 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- 'use strict';
8
-
9
7
  /**
10
8
  * Library to create tooltips for Blockly.
11
9
  * First, call createDom() after onload.
@@ -15,12 +13,12 @@
15
13
  * tooltip will be used. Third, call bindMouseEvents(e) passing the SVG element.
16
14
  * @namespace Blockly.Tooltip
17
15
  */
18
- goog.module('Blockly.Tooltip');
16
+ import * as goog from '../closure/goog/goog.js';
17
+ goog.declareModuleId('Blockly.Tooltip');
19
18
 
20
- const blocklyString = goog.require('Blockly.utils.string');
21
- const browserEvents = goog.require('Blockly.browserEvents');
22
- const common = goog.require('Blockly.common');
23
- const deprecation = goog.require('Blockly.utils.deprecation');
19
+ import * as browserEvents from './browser_events.js';
20
+ import * as common from './common.js';
21
+ import * as blocklyString from './utils/string.js';
24
22
 
25
23
 
26
24
  /**
@@ -28,109 +26,71 @@ const deprecation = goog.require('Blockly.utils.deprecation');
28
26
  * Either a string, an object containing a tooltip property, or a function which
29
27
  * returns either a string, or another arbitrarily nested function which
30
28
  * eventually unwinds to a string.
31
- * @typedef {string|{tooltip}|function(): (string|!Function)}
32
29
  * @alias Blockly.Tooltip.TipInfo
33
30
  */
34
- let TipInfo;
35
- exports.TipInfo = TipInfo;
31
+ export type TipInfo =
32
+ string|{tooltip: AnyDuringMigration}|(() => TipInfo|string|Function);
36
33
 
37
34
  /**
38
35
  * A function that renders custom tooltip UI.
39
36
  * 1st parameter: the div element to render content into.
40
37
  * 2nd parameter: the element being moused over (i.e., the element for which the
41
38
  * tooltip should be shown).
42
- * @typedef {function(!Element, !Element)}
43
39
  * @alias Blockly.Tooltip.CustomTooltip
44
40
  */
45
- let CustomTooltip;
46
- exports.CustomTooltip = CustomTooltip;
41
+ export type CustomTooltip = (p1: Element, p2: Element) => AnyDuringMigration;
47
42
 
48
43
  /**
49
44
  * An optional function that renders custom tooltips into the provided DIV. If
50
45
  * this is defined, the function will be called instead of rendering the default
51
46
  * tooltip UI.
52
- * @type {!CustomTooltip|undefined}
53
47
  */
54
- let customTooltip = undefined;
48
+ let customTooltip: CustomTooltip|undefined = undefined;
55
49
 
56
50
  /**
57
51
  * Sets a custom function that will be called if present instead of the default
58
52
  * tooltip UI.
59
- * @param {!CustomTooltip} customFn A custom tooltip used to render an alternate
60
- * tooltip UI.
53
+ * @param customFn A custom tooltip used to render an alternate tooltip UI.
61
54
  * @alias Blockly.Tooltip.setCustomTooltip
62
55
  */
63
- const setCustomTooltip = function(customFn) {
56
+ export function setCustomTooltip(customFn: CustomTooltip) {
64
57
  customTooltip = customFn;
65
- };
66
- exports.setCustomTooltip = setCustomTooltip;
58
+ }
67
59
 
68
60
  /**
69
61
  * Gets the custom tooltip function.
70
- * @returns {!CustomTooltip|undefined} The custom tooltip function, if defined.
62
+ * @returns The custom tooltip function, if defined.
71
63
  */
72
- const getCustomTooltip = function() {
64
+ export function getCustomTooltip(): CustomTooltip|undefined {
73
65
  return customTooltip;
74
- };
75
- exports.getCustomTooltip = getCustomTooltip;
66
+ }
76
67
 
77
- /**
78
- * Is a tooltip currently showing?
79
- * @type {boolean}
80
- */
68
+ /** Is a tooltip currently showing? */
81
69
  let visible = false;
82
70
 
83
71
  /**
84
72
  * Returns whether or not a tooltip is showing
85
- * @returns {boolean} True if a tooltip is showing
73
+ * @returns True if a tooltip is showing
86
74
  * @alias Blockly.Tooltip.isVisible
87
75
  */
88
- const isVisible = function() {
76
+ export function isVisible(): boolean {
89
77
  return visible;
90
- };
91
- exports.isVisible = isVisible;
92
-
93
- Object.defineProperties(exports, {
94
- /**
95
- * Is a tooltip currently showing?
96
- * @name Blockly.Tooltip.visible
97
- * @type {boolean}
98
- * @deprecated Use Blockly.Tooltip.isVisible() instead. (September
99
- * 2021)
100
- * @suppress {checkTypes}
101
- */
102
- visible: {
103
- get: function() {
104
- deprecation.warn(
105
- 'Blockly.Tooltip.visible', 'September 2021', 'September 2022',
106
- 'Blockly.Tooltip.isVisible()');
107
- return isVisible();
108
- },
109
- },
110
- });
78
+ }
111
79
 
112
- /**
113
- * Is someone else blocking the tooltip from being shown?
114
- * @type {boolean}
115
- */
80
+ /** Is someone else blocking the tooltip from being shown? */
116
81
  let blocked = false;
117
82
 
118
83
  /**
119
84
  * Maximum width (in characters) of a tooltip.
120
85
  * @alias Blockly.Tooltip.LIMIT
121
86
  */
122
- const LIMIT = 50;
123
- exports.LIMIT = LIMIT;
87
+ export const LIMIT = 50;
124
88
 
125
- /**
126
- * PID of suspended thread to clear tooltip on mouse out.
127
- */
128
- let mouseOutPid = 0;
89
+ /** PID of suspended thread to clear tooltip on mouse out. */
90
+ let mouseOutPid: AnyDuringMigration = 0;
129
91
 
130
- /**
131
- * PID of suspended thread to show the tooltip.
132
- */
133
- let showPid = 0;
92
+ /** PID of suspended thread to show the tooltip. */
93
+ let showPid: AnyDuringMigration = 0;
134
94
 
135
95
  /**
136
96
  * Last observed X location of the mouse pointer (freezes when tooltip appears).
@@ -142,96 +102,64 @@ let lastX = 0;
142
102
  */
143
103
  let lastY = 0;
144
104
 
145
- /**
146
- * Current element being pointed at.
147
- * @type {Element}
148
- */
149
- let element = null;
105
+ /** Current element being pointed at. */
106
+ let element: AnyDuringMigration = null;
150
107
 
151
108
  /**
152
109
  * Once a tooltip has opened for an element, that element is 'poisoned' and
153
110
  * cannot respawn a tooltip until the pointer moves over a different element.
154
- * @type {Element}
155
111
  */
156
- let poisonedElement = null;
112
+ let poisonedElement: AnyDuringMigration = null;
157
113
 
158
114
  /**
159
115
  * Horizontal offset between mouse cursor and tooltip.
160
116
  * @alias Blockly.Tooltip.OFFSET_X
161
117
  */
162
- const OFFSET_X = 0;
163
- exports.OFFSET_X = OFFSET_X;
118
+ export const OFFSET_X = 0;
164
119
 
165
120
  /**
166
121
  * Vertical offset between mouse cursor and tooltip.
167
122
  * @alias Blockly.Tooltip.OFFSET_Y
168
123
  */
169
- const OFFSET_Y = 10;
170
- exports.OFFSET_Y = OFFSET_Y;
124
+ export const OFFSET_Y = 10;
171
125
 
172
126
  /**
173
127
  * Radius mouse can move before killing tooltip.
174
128
  * @alias Blockly.Tooltip.RADIUS_OK
175
129
  */
176
- const RADIUS_OK = 10;
177
- exports.RADIUS_OK = RADIUS_OK;
130
+ export const RADIUS_OK = 10;
178
131
 
179
132
  /**
180
133
  * Delay before tooltip appears.
181
134
  * @alias Blockly.Tooltip.HOVER_MS
182
135
  */
183
- const HOVER_MS = 750;
184
- exports.HOVER_MS = HOVER_MS;
136
+ export const HOVER_MS = 750;
185
137
 
186
138
  /**
187
139
  * Horizontal padding between tooltip and screen edge.
188
140
  * @alias Blockly.Tooltip.MARGINS
189
141
  */
190
- const MARGINS = 5;
191
- exports.MARGINS = MARGINS;
142
+ export const MARGINS = 5;
192
143
 
193
- /**
194
- * The HTML container. Set once by createDom.
195
- * @type {?HTMLDivElement}
196
- */
197
- let DIV = null;
144
+ /** The HTML container. Set once by createDom. */
145
+ let containerDiv: HTMLDivElement|null = null;
198
146
 
199
147
  /**
200
148
  * Returns the HTML tooltip container.
201
- * @returns {?HTMLDivElement} The HTML tooltip container.
149
+ * @returns The HTML tooltip container.
202
150
  * @alias Blockly.Tooltip.getDiv
203
151
  */
204
- const getDiv = function() {
205
- return DIV;
206
- };
207
- exports.getDiv = getDiv;
208
-
209
- Object.defineProperties(exports, {
210
- /**
211
- * The HTML container. Set once by createDom.
212
- * @name Blockly.Tooltip.DIV
213
- * @type {HTMLDivElement}
214
- * @deprecated Use Blockly.Tooltip.getDiv() and .setDiv().
215
- * (September 2021)
216
- * @suppress {checkTypes}
217
- */
218
- DIV: {
219
- get: function() {
220
- deprecation.warn(
221
- 'Blockly.Tooltip.DIV', 'September 2021', 'September 2022',
222
- 'Blockly.Tooltip.getDiv()');
223
- return getDiv();
224
- },
225
- },
226
- });
152
+ export function getDiv(): HTMLDivElement|null {
153
+ return containerDiv;
154
+ }
227
155
 
228
156
  /**
229
157
  * Returns the tooltip text for the given element.
230
- * @param {?Object} object The object to get the tooltip text of.
231
- * @return {string} The tooltip text of the element.
158
+ * @param object The object to get the tooltip text of.
159
+ * @return The tooltip text of the element.
232
160
  * @alias Blockly.Tooltip.getTooltipOfObject
233
161
  */
234
- const getTooltipOfObject = function(object) {
162
+ export function getTooltipOfObject(object: AnyDuringMigration|null): string {
235
163
  const obj = getTargetObject(object);
236
164
  if (obj) {
237
165
  let tooltip = obj.tooltip;
@@ -244,89 +172,86 @@ const getTooltipOfObject = function(object) {
244
172
  return tooltip;
245
173
  }
246
174
  return '';
247
- };
248
- exports.getTooltipOfObject = getTooltipOfObject;
175
+ }
249
176
 
250
177
  /**
251
178
  * Returns the target object that the given object is targeting for its
252
179
  * tooltip. Could be the object itself.
253
- * @param {?Object} obj The object are trying to find the target tooltip
254
- * object of.
255
- * @return {?{tooltip}} The target tooltip object.
256
- */
257
- const getTargetObject = function(obj) {
258
- while (obj && obj.tooltip) {
259
- if ((typeof obj.tooltip === 'string') ||
260
- (typeof obj.tooltip === 'function')) {
261
- return obj;
180
+ * @param obj The object are trying to find the target tooltip object of.
181
+ * @return The target tooltip object.
182
+ */
183
+ function getTargetObject(obj: object|null): {tooltip: AnyDuringMigration}|null {
184
+ while (obj && (obj as any).tooltip) {
185
+ if (typeof (obj as any).tooltip === 'string' ||
186
+ typeof (obj as any).tooltip === 'function') {
187
+ return obj as {tooltip: string | (() => string)};
262
188
  }
263
- obj = obj.tooltip;
189
+ obj = (obj as any).tooltip;
264
190
  }
265
191
  return null;
266
- };
192
+ }
267
193
 
268
194
  /**
269
195
  * Create the tooltip div and inject it onto the page.
270
196
  * @alias Blockly.Tooltip.createDom
271
197
  */
272
- const createDom = function() {
273
- if (DIV) {
198
+ export function createDom() {
199
+ if (containerDiv) {
274
200
  return; // Already created.
275
201
  }
276
202
  // Create an HTML container for popup overlays (e.g. editor widgets).
277
- DIV = /** @type {!HTMLDivElement} */ (document.createElement('div'));
278
- DIV.className = 'blocklyTooltipDiv';
203
+ containerDiv = document.createElement('div');
204
+ containerDiv.className = 'blocklyTooltipDiv';
279
205
  const container = common.getParentContainer() || document.body;
280
- container.appendChild(DIV);
281
- };
282
- exports.createDom = createDom;
206
+ container.appendChild(containerDiv);
207
+ }
283
208
 
284
209
  /**
285
210
  * Binds the required mouse events onto an SVG element.
286
- * @param {!Element} element SVG element onto which tooltip is to be bound.
211
+ * @param element SVG element onto which tooltip is to be bound.
287
212
  * @alias Blockly.Tooltip.bindMouseEvents
288
213
  */
289
- const bindMouseEvents = function(element) {
290
- element.mouseOverWrapper_ =
214
+ export function bindMouseEvents(element: Element) {
215
+ // TODO (#6097): Don't stash wrapper info on the DOM.
216
+ (element as AnyDuringMigration).mouseOverWrapper_ =
291
217
  browserEvents.bind(element, 'mouseover', null, onMouseOver);
292
- element.mouseOutWrapper_ =
218
+ (element as AnyDuringMigration).mouseOutWrapper_ =
293
219
  browserEvents.bind(element, 'mouseout', null, onMouseOut);
294
220
 
295
221
  // Don't use bindEvent_ for mousemove since that would create a
296
222
  // corresponding touch handler, even though this only makes sense in the
297
223
  // context of a mouseover/mouseout.
298
224
  element.addEventListener('mousemove', onMouseMove, false);
299
- };
300
- exports.bindMouseEvents = bindMouseEvents;
225
+ }
301
226
 
302
227
  /**
303
228
  * Unbinds tooltip mouse events from the SVG element.
304
- * @param {!Element} element SVG element onto which tooltip is bound.
229
+ * @param element SVG element onto which tooltip is bound.
305
230
  * @alias Blockly.Tooltip.unbindMouseEvents
306
231
  */
307
- const unbindMouseEvents = function(element) {
232
+ export function unbindMouseEvents(element: Element) {
308
233
  if (!element) {
309
234
  return;
310
235
  }
311
- browserEvents.unbind(element.mouseOverWrapper_);
312
- browserEvents.unbind(element.mouseOutWrapper_);
236
+ // TODO (#6097): Don't stash wrapper info on the DOM.
237
+ browserEvents.unbind((element as AnyDuringMigration).mouseOverWrapper_);
238
+ browserEvents.unbind((element as AnyDuringMigration).mouseOutWrapper_);
313
239
  element.removeEventListener('mousemove', onMouseMove);
314
- };
315
- exports.unbindMouseEvents = unbindMouseEvents;
240
+ }
316
241
 
317
242
  /**
318
243
  * Hide the tooltip if the mouse is over a different object.
319
244
  * Initialize the tooltip to potentially appear for this object.
320
- * @param {!Event} e Mouse event.
245
+ * @param e Mouse event.
321
246
  */
322
- const onMouseOver = function(e) {
247
+ function onMouseOver(e: Event) {
323
248
  if (blocked) {
324
249
  // Someone doesn't want us to show tooltips.
325
250
  return;
326
251
  }
327
252
  // If the tooltip is an object, treat it as a pointer to the next object in
328
253
  // the chain to look at. Terminate when a string or function is found.
329
- const newElement = /** @type {Element} */ (getTargetObject(e.currentTarget));
254
+ const newElement = getTargetObject(e.currentTarget);
330
255
  if (element !== newElement) {
331
256
  hide();
332
257
  poisonedElement = null;
@@ -334,13 +259,13 @@ const onMouseOver = function(e) {
334
259
  }
335
260
  // Forget about any immediately preceding mouseOut event.
336
261
  clearTimeout(mouseOutPid);
337
- };
262
+ }
338
263
 
339
264
  /**
340
265
  * Hide the tooltip if the mouse leaves the object and enters the workspace.
341
- * @param {!Event} _e Mouse event.
266
+ * @param _e Mouse event.
342
267
  */
343
- const onMouseOut = function(_e) {
268
+ function onMouseOut(_e: Event) {
344
269
  if (blocked) {
345
270
  // Someone doesn't want us to show tooltips.
346
271
  return;
@@ -355,15 +280,15 @@ const onMouseOut = function(_e) {
355
280
  hide();
356
281
  }, 1);
357
282
  clearTimeout(showPid);
358
- };
283
+ }
359
284
 
360
285
  /**
361
286
  * When hovering over an element, schedule a tooltip to be shown. If a tooltip
362
287
  * is already visible, hide it if the mouse strays out of a certain radius.
363
- * @param {!Event} e Mouse event.
288
+ * @param e Mouse event.
364
289
  */
365
- const onMouseMove = function(e) {
366
- if (!element || !element.tooltip) {
290
+ function onMouseMove(e: Event) {
291
+ if (!element || !(element as AnyDuringMigration).tooltip) {
367
292
  // No tooltip here to show.
368
293
  return;
369
294
  } else if (blocked) {
@@ -374,8 +299,12 @@ const onMouseMove = function(e) {
374
299
  if (visible) {
375
300
  // Compute the distance between the mouse position when the tooltip was
376
301
  // shown and the current mouse position. Pythagorean theorem.
377
- const dx = lastX - e.pageX;
378
- const dy = lastY - e.pageY;
302
+ // AnyDuringMigration because: Property 'pageX' does not exist on type
303
+ // 'Event'.
304
+ const dx = lastX - (e as AnyDuringMigration).pageX;
305
+ // AnyDuringMigration because: Property 'pageY' does not exist on type
306
+ // 'Event'.
307
+ const dy = lastY - (e as AnyDuringMigration).pageY;
379
308
  if (Math.sqrt(dx * dx + dy * dy) > RADIUS_OK) {
380
309
  hide();
381
310
  }
@@ -383,159 +312,152 @@ const onMouseMove = function(e) {
383
312
  // The mouse moved, clear any previously scheduled tooltip.
384
313
  clearTimeout(showPid);
385
314
  // Maybe this time the mouse will stay put. Schedule showing of tooltip.
386
- lastX = e.pageX;
387
- lastY = e.pageY;
315
+ // AnyDuringMigration because: Property 'pageX' does not exist on type
316
+ // 'Event'.
317
+ lastX = (e as AnyDuringMigration).pageX;
318
+ // AnyDuringMigration because: Property 'pageY' does not exist on type
319
+ // 'Event'.
320
+ lastY = (e as AnyDuringMigration).pageY;
388
321
  showPid = setTimeout(show, HOVER_MS);
389
322
  }
390
- };
323
+ }
391
324
 
392
325
  /**
393
326
  * Dispose of the tooltip.
394
327
  * @alias Blockly.Tooltip.dispose
395
- * @package
328
+ * @internal
396
329
  */
397
- const dispose = function() {
330
+ export function dispose() {
398
331
  element = null;
399
332
  poisonedElement = null;
400
333
  hide();
401
- };
402
- exports.dispose = dispose;
334
+ }
403
335
 
404
336
  /**
405
337
  * Hide the tooltip.
406
338
  * @alias Blockly.Tooltip.hide
407
339
  */
408
- const hide = function() {
340
+ export function hide() {
409
341
  if (visible) {
410
342
  visible = false;
411
- if (DIV) {
412
- DIV.style.display = 'none';
343
+ if (containerDiv) {
344
+ containerDiv.style.display = 'none';
413
345
  }
414
346
  }
415
347
  if (showPid) {
416
348
  clearTimeout(showPid);
417
349
  }
418
- };
419
- exports.hide = hide;
350
+ }
420
351
 
421
352
  /**
422
353
  * Hide any in-progress tooltips and block showing new tooltips until the next
423
354
  * call to unblock().
424
355
  * @alias Blockly.Tooltip.block
425
- * @package
356
+ * @internal
426
357
  */
427
- const block = function() {
358
+ export function block() {
428
359
  hide();
429
360
  blocked = true;
430
- };
431
- exports.block = block;
361
+ }
432
362
 
433
363
  /**
434
364
  * Unblock tooltips: allow them to be scheduled and shown according to their own
435
365
  * logic.
436
366
  * @alias Blockly.Tooltip.unblock
437
- * @package
367
+ * @internal
438
368
  */
439
- const unblock = function() {
369
+ export function unblock() {
440
370
  blocked = false;
441
- };
442
- exports.unblock = unblock;
371
+ }
443
372
 
444
- /**
445
- * Renders the tooltip content into the tooltip div.
446
- */
447
- const renderContent = function() {
448
- if (!DIV || !element) {
373
+ /** Renders the tooltip content into the tooltip div. */
374
+ function renderContent() {
375
+ if (!containerDiv || !element) {
449
376
  // This shouldn't happen, but if it does, we can't render.
450
377
  return;
451
378
  }
452
379
  if (typeof customTooltip === 'function') {
453
- customTooltip(DIV, element);
380
+ customTooltip(containerDiv, element);
454
381
  } else {
455
382
  renderDefaultContent();
456
383
  }
457
- };
384
+ }
458
385
 
459
- /**
460
- * Renders the default tooltip UI.
461
- */
462
- const renderDefaultContent = function() {
386
+ /** Renders the default tooltip UI. */
387
+ function renderDefaultContent() {
463
388
  let tip = getTooltipOfObject(element);
464
389
  tip = blocklyString.wrap(tip, LIMIT);
465
390
  // Create new text, line by line.
466
391
  const lines = tip.split('\n');
467
392
  for (let i = 0; i < lines.length; i++) {
468
- const div = /** @type {!HTMLDivElement} */ (document.createElement('div'));
393
+ const div = (document.createElement('div'));
469
394
  div.appendChild(document.createTextNode(lines[i]));
470
- DIV.appendChild(div);
395
+ containerDiv!.appendChild(div);
471
396
  }
472
- };
397
+ }
473
398
 
474
399
  /**
475
400
  * Gets the coordinates for the tooltip div, taking into account the edges of
476
401
  * the screen to prevent showing the tooltip offscreen.
477
- * @param {boolean} rtl True if the tooltip should be in right-to-left layout.
478
- * @returns {{x: number, y: number}} Coordinates at which the tooltip div should
479
- * be placed.
402
+ * @param rtl True if the tooltip should be in right-to-left layout.
403
+ * @returns Coordinates at which the tooltip div should be placed.
480
404
  */
481
- const getPosition = function(rtl) {
405
+ function getPosition(rtl: boolean): {x: number, y: number} {
482
406
  // Position the tooltip just below the cursor.
483
407
  const windowWidth = document.documentElement.clientWidth;
484
408
  const windowHeight = document.documentElement.clientHeight;
485
409
 
486
410
  let anchorX = lastX;
487
411
  if (rtl) {
488
- anchorX -= OFFSET_X + DIV.offsetWidth;
412
+ anchorX -= OFFSET_X + containerDiv!.offsetWidth;
489
413
  } else {
490
414
  anchorX += OFFSET_X;
491
415
  }
492
416
 
493
417
  let anchorY = lastY + OFFSET_Y;
494
- if (anchorY + DIV.offsetHeight > windowHeight + window.scrollY) {
418
+ if (anchorY + containerDiv!.offsetHeight > windowHeight + window.scrollY) {
495
419
  // Falling off the bottom of the screen; shift the tooltip up.
496
- anchorY -= DIV.offsetHeight + 2 * OFFSET_Y;
420
+ anchorY -= containerDiv!.offsetHeight + 2 * OFFSET_Y;
497
421
  }
498
422
 
499
423
  if (rtl) {
500
424
  // Prevent falling off left edge in RTL mode.
501
425
  anchorX = Math.max(MARGINS - window.scrollX, anchorX);
502
426
  } else {
503
- if (anchorX + DIV.offsetWidth >
427
+ if (anchorX + containerDiv!.offsetWidth >
504
428
  windowWidth + window.scrollX - 2 * MARGINS) {
505
429
  // Falling off the right edge of the screen;
506
430
  // clamp the tooltip on the edge.
507
- anchorX = windowWidth - DIV.offsetWidth - 2 * MARGINS;
431
+ anchorX = windowWidth - containerDiv!.offsetWidth - 2 * MARGINS;
508
432
  }
509
433
  }
510
434
 
511
435
  return {x: anchorX, y: anchorY};
512
- };
436
+ }
513
437
 
514
- /**
515
- * Create the tooltip and show it.
516
- */
517
- const show = function() {
438
+ /** Create the tooltip and show it. */
439
+ function show() {
518
440
  if (blocked) {
519
441
  // Someone doesn't want us to show tooltips.
520
442
  return;
521
443
  }
522
444
  poisonedElement = element;
523
- if (!DIV) {
445
+ if (!containerDiv) {
524
446
  return;
525
447
  }
526
448
  // Erase all existing text.
527
- DIV.textContent = '';
449
+ containerDiv.textContent = '';
528
450
 
529
451
  // Add new content.
530
452
  renderContent();
531
453
 
532
454
  // Display the tooltip.
533
- const rtl = /** @type {{RTL: boolean}} */ (element).RTL;
534
- DIV.style.direction = rtl ? 'rtl' : 'ltr';
535
- DIV.style.display = 'block';
455
+ const rtl = (element as any).RTL;
456
+ containerDiv.style.direction = rtl ? 'rtl' : 'ltr';
457
+ containerDiv.style.display = 'block';
536
458
  visible = true;
537
459
 
538
460
  const {x, y} = getPosition(rtl);
539
- DIV.style.left = x + 'px';
540
- DIV.style.top = y + 'px';
541
- };
461
+ containerDiv.style.left = x + 'px';
462
+ containerDiv.style.top = y + 'px';
463
+ }