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
@@ -9,7 +9,6 @@
9
9
  * These methods are not specific to Blockly, and could be factored out into
10
10
  * a JavaScript framework such as Closure.
11
11
  */
12
- 'use strict';
13
12
 
14
13
  /**
15
14
  * Utilities for element styles.
@@ -17,26 +16,37 @@
17
16
  * a JavaScript framework such as Closure.
18
17
  * @namespace Blockly.utils.style
19
18
  */
20
- goog.module('Blockly.utils.style');
19
+ import * as goog from '../../closure/goog/goog.js';
20
+ goog.declareModuleId('Blockly.utils.style');
21
21
 
22
- const {Coordinate} = goog.require('Blockly.utils.Coordinate');
23
- const {Size} = goog.require('Blockly.utils.Size');
22
+ import {Coordinate} from './coordinate.js';
23
+ import {Rect} from './rect.js';
24
+ import {Size} from './size.js';
24
25
 
25
26
 
26
27
  /**
27
28
  * Gets the height and width of an element.
28
29
  * Similar to Closure's goog.style.getSize
29
- * @param {!Element} element Element to get size of.
30
- * @return {!Size} Object with width/height properties.
30
+ * @param element Element to get size of.
31
+ * @return Object with width/height properties.
31
32
  * @alias Blockly.utils.style.getSize
32
33
  */
33
- const getSize = function(element) {
34
+ export function getSize(element: Element): Size {
35
+ return TEST_ONLY.getSizeInternal(element);
36
+ }
37
+
38
+ /**
39
+ * Private version of getSize for stubbing in tests.
40
+ */
41
+ function getSizeInternal(element: Element): Size {
34
42
  if (getStyle(element, 'display') !== 'none') {
35
43
  return getSizeWithDisplay(element);
36
44
  }
37
45
 
38
46
  // Evaluate size with a temporary element.
39
- const style = element.style;
47
+ // AnyDuringMigration because: Property 'style' does not exist on type
48
+ // 'Element'.
49
+ const style = (element as AnyDuringMigration).style;
40
50
  const originalDisplay = style.display;
41
51
  const originalVisibility = style.visibility;
42
52
  const originalPosition = style.position;
@@ -45,27 +55,26 @@ const getSize = function(element) {
45
55
  style.position = 'absolute';
46
56
  style.display = 'inline';
47
57
 
48
- const offsetWidth = /** @type {!HTMLElement} */ (element).offsetWidth;
49
- const offsetHeight = /** @type {!HTMLElement} */ (element).offsetHeight;
58
+ const offsetWidth = (element as HTMLElement).offsetWidth;
59
+ const offsetHeight = (element as HTMLElement).offsetHeight;
50
60
 
51
61
  style.display = originalDisplay;
52
62
  style.position = originalPosition;
53
63
  style.visibility = originalVisibility;
54
64
 
55
65
  return new Size(offsetWidth, offsetHeight);
56
- };
57
- exports.getSize = getSize;
66
+ }
58
67
 
59
68
  /**
60
69
  * Gets the height and width of an element when the display is not none.
61
- * @param {!Element} element Element to get size of.
62
- * @return {!Size} Object with width/height properties.
70
+ * @param element Element to get size of.
71
+ * @return Object with width/height properties.
63
72
  */
64
- const getSizeWithDisplay = function(element) {
65
- const offsetWidth = /** @type {!HTMLElement} */ (element).offsetWidth;
66
- const offsetHeight = /** @type {!HTMLElement} */ (element).offsetHeight;
73
+ function getSizeWithDisplay(element: Element): Size {
74
+ const offsetWidth = (element as HTMLElement).offsetWidth;
75
+ const offsetHeight = (element as HTMLElement).offsetHeight;
67
76
  return new Size(offsetWidth, offsetHeight);
68
- };
77
+ }
69
78
 
70
79
  /**
71
80
  * Cross-browser pseudo get computed style. It returns the computed style where
@@ -76,14 +85,18 @@ const getSizeWithDisplay = function(element) {
76
85
  *
77
86
  * Copied from Closure's goog.style.getStyle_
78
87
  *
79
- * @param {!Element} element Element to get style of.
80
- * @param {string} style Property to get (must be camelCase, not CSS-style).
81
- * @return {string} Style value.
88
+ * @param element Element to get style of.
89
+ * @param style Property to get (must be camelCase, not CSS-style).
90
+ * @return Style value.
82
91
  */
83
- const getStyle = function(element, style) {
92
+ function getStyle(element: Element, style: string): string {
93
+ // AnyDuringMigration because: Property 'style' does not exist on type
94
+ // 'Element'. AnyDuringMigration because: Property 'style' does not exist on
95
+ // type 'Element'.
84
96
  return getComputedStyle(element, style) || getCascadedStyle(element, style) ||
85
- (element.style && element.style[style]);
86
- };
97
+ (element as AnyDuringMigration).style &&
98
+ (element as AnyDuringMigration).style[style];
99
+ }
87
100
 
88
101
  /**
89
102
  * Retrieves a computed style value of a node. It returns empty string if the
@@ -93,24 +106,24 @@ const getStyle = function(element, style) {
93
106
  *
94
107
  * Copied from Closure's goog.style.getComputedStyle
95
108
  *
96
- * @param {!Element} element Element to get style of.
97
- * @param {string} property Property to get (camel-case).
98
- * @return {string} Style value.
109
+ * @param element Element to get style of.
110
+ * @param property Property to get (camel-case).
111
+ * @return Style value.
99
112
  * @alias Blockly.utils.style.getComputedStyle
100
113
  */
101
- const getComputedStyle = function(element, property) {
114
+ export function getComputedStyle(element: Element, property: string): string {
102
115
  if (document.defaultView && document.defaultView.getComputedStyle) {
103
116
  const styles = document.defaultView.getComputedStyle(element, null);
104
117
  if (styles) {
105
118
  // element.style[..] is undefined for browser specific styles
106
119
  // as 'filter'.
107
- return styles[property] || styles.getPropertyValue(property) || '';
120
+ return (styles as AnyDuringMigration)[property] ||
121
+ styles.getPropertyValue(property) || '';
108
122
  }
109
123
  }
110
124
 
111
125
  return '';
112
- };
113
- exports.getComputedStyle = getComputedStyle;
126
+ }
114
127
 
115
128
  /**
116
129
  * Gets the cascaded style value of a node, or null if the value cannot be
@@ -118,25 +131,28 @@ exports.getComputedStyle = getComputedStyle;
118
131
  *
119
132
  * Copied from Closure's goog.style.getCascadedStyle
120
133
  *
121
- * @param {!Element} element Element to get style of.
122
- * @param {string} style Property to get (camel-case).
123
- * @return {string} Style value.
134
+ * @param element Element to get style of.
135
+ * @param style Property to get (camel-case).
136
+ * @return Style value.
124
137
  * @alias Blockly.utils.style.getCascadedStyle
125
138
  */
126
- const getCascadedStyle = function(element, style) {
127
- return /** @type {string} */ (
128
- element.currentStyle ? element.currentStyle[style] : null);
129
- };
130
- exports.getCascadedStyle = getCascadedStyle;
139
+ export function getCascadedStyle(element: Element, style: string): string {
140
+ // AnyDuringMigration because: Property 'currentStyle' does not exist on type
141
+ // 'Element'. AnyDuringMigration because: Property 'currentStyle' does not
142
+ // exist on type 'Element'.
143
+ return (element as AnyDuringMigration).currentStyle ?
144
+ (element as AnyDuringMigration).currentStyle[style] :
145
+ '' as string;
146
+ }
131
147
 
132
148
  /**
133
149
  * Returns a Coordinate object relative to the top-left of the HTML document.
134
150
  * Similar to Closure's goog.style.getPageOffset
135
- * @param {!Element} el Element to get the page offset for.
136
- * @return {!Coordinate} The page offset.
151
+ * @param el Element to get the page offset for.
152
+ * @return The page offset.
137
153
  * @alias Blockly.utils.style.getPageOffset
138
154
  */
139
- const getPageOffset = function(el) {
155
+ export function getPageOffset(el: Element): Coordinate {
140
156
  const pos = new Coordinate(0, 0);
141
157
  const box = el.getBoundingClientRect();
142
158
  const documentElement = document.documentElement;
@@ -150,23 +166,21 @@ const getPageOffset = function(el) {
150
166
  pos.y = box.top + scrollCoord.y;
151
167
 
152
168
  return pos;
153
- };
154
- exports.getPageOffset = getPageOffset;
169
+ }
155
170
 
156
171
  /**
157
172
  * Calculates the viewport coordinates relative to the document.
158
173
  * Similar to Closure's goog.style.getViewportPageOffset
159
- * @return {!Coordinate} The page offset of the viewport.
174
+ * @return The page offset of the viewport.
160
175
  * @alias Blockly.utils.style.getViewportPageOffset
161
176
  */
162
- const getViewportPageOffset = function() {
177
+ export function getViewportPageOffset(): Coordinate {
163
178
  const body = document.body;
164
179
  const documentElement = document.documentElement;
165
180
  const scrollLeft = body.scrollLeft || documentElement.scrollLeft;
166
181
  const scrollTop = body.scrollTop || documentElement.scrollTop;
167
182
  return new Coordinate(scrollLeft, scrollTop);
168
- };
169
- exports.getViewportPageOffset = getViewportPageOffset;
183
+ }
170
184
 
171
185
  /**
172
186
  * Shows or hides an element from the page. Hiding the element is done by
@@ -176,50 +190,44 @@ exports.getViewportPageOffset = getViewportPageOffset;
176
190
  * the browser's default style rules).
177
191
  * Copied from Closure's goog.style.getViewportPageOffset
178
192
  *
179
- * @param {!Element} el Element to show or hide.
180
- * @param {*} isShown True to render the element in its default style,
181
- * false to disable rendering the element.
193
+ * @param el Element to show or hide.
194
+ * @param isShown True to render the element in its default style, false to
195
+ * disable rendering the element.
182
196
  * @alias Blockly.utils.style.setElementShown
183
197
  */
184
- const setElementShown = function(el, isShown) {
185
- el.style.display = isShown ? '' : 'none';
186
- };
187
- exports.setElementShown = setElementShown;
198
+ export function setElementShown(el: Element, isShown: AnyDuringMigration) {
199
+ // AnyDuringMigration because: Property 'style' does not exist on type
200
+ // 'Element'.
201
+ (el as AnyDuringMigration).style.display = isShown ? '' : 'none';
202
+ }
188
203
 
189
204
  /**
190
205
  * Returns true if the element is using right to left (RTL) direction.
191
206
  * Copied from Closure's goog.style.isRightToLeft
192
207
  *
193
- * @param {!Element} el The element to test.
194
- * @return {boolean} True for right to left, false for left to right.
208
+ * @param el The element to test.
209
+ * @return True for right to left, false for left to right.
195
210
  * @alias Blockly.utils.style.isRightToLeft
196
211
  */
197
- const isRightToLeft = function(el) {
212
+ export function isRightToLeft(el: Element): boolean {
198
213
  return 'rtl' === getStyle(el, 'direction');
199
- };
200
- exports.isRightToLeft = isRightToLeft;
214
+ }
201
215
 
202
216
  /**
203
217
  * Gets the computed border widths (on all sides) in pixels
204
218
  * Copied from Closure's goog.style.getBorderBox
205
- * @param {!Element} element The element to get the border widths for.
206
- * @return {!Object} The computed border widths.
219
+ * @param element The element to get the border widths for.
220
+ * @return The computed border widths.
207
221
  * @alias Blockly.utils.style.getBorderBox
208
222
  */
209
- const getBorderBox = function(element) {
210
- const left = getComputedStyle(element, 'borderLeftWidth');
211
- const right = getComputedStyle(element, 'borderRightWidth');
212
- const top = getComputedStyle(element, 'borderTopWidth');
213
- const bottom = getComputedStyle(element, 'borderBottomWidth');
223
+ export function getBorderBox(element: Element): Rect {
224
+ const left = parseFloat(getComputedStyle(element, 'borderLeftWidth'));
225
+ const right = parseFloat(getComputedStyle(element, 'borderRightWidth'));
226
+ const top = parseFloat(getComputedStyle(element, 'borderTopWidth'));
227
+ const bottom = parseFloat(getComputedStyle(element, 'borderBottomWidth'));
214
228
 
215
- return {
216
- top: parseFloat(top),
217
- right: parseFloat(right),
218
- bottom: parseFloat(bottom),
219
- left: parseFloat(left),
220
- };
221
- };
222
- exports.getBorderBox = getBorderBox;
229
+ return new Rect(top, bottom, left, right);
230
+ }
223
231
 
224
232
  /**
225
233
  * Changes the scroll position of `container` with the minimum amount so
@@ -228,19 +236,19 @@ exports.getBorderBox = getBorderBox;
228
236
  * aligned as close to the container's top left corner as possible.
229
237
  * Copied from Closure's goog.style.scrollIntoContainerView
230
238
  *
231
- * @param {!Element} element The element to make visible.
232
- * @param {!Element} container The container to scroll. If not set, then the
233
- * document scroll element will be used.
234
- * @param {boolean=} opt_center Whether to center the element in the container.
239
+ * @param element The element to make visible.
240
+ * @param container The container to scroll. If not set, then the document
241
+ * scroll element will be used.
242
+ * @param opt_center Whether to center the element in the container.
235
243
  * Defaults to false.
236
244
  * @alias Blockly.utils.style.scrollIntoContainerView
237
245
  */
238
- const scrollIntoContainerView = function(element, container, opt_center) {
246
+ export function scrollIntoContainerView(
247
+ element: Element, container: Element, opt_center?: boolean) {
239
248
  const offset = getContainerOffsetToScrollInto(element, container, opt_center);
240
249
  container.scrollLeft = offset.x;
241
250
  container.scrollTop = offset.y;
242
- };
243
- exports.scrollIntoContainerView = scrollIntoContainerView;
251
+ }
244
252
 
245
253
  /**
246
254
  * Calculate the scroll position of `container` with the minimum amount so
@@ -249,17 +257,16 @@ exports.scrollIntoContainerView = scrollIntoContainerView;
249
257
  * aligned as close to the container's top left corner as possible.
250
258
  * Copied from Closure's goog.style.getContainerOffsetToScrollInto
251
259
  *
252
- * @param {!Element} element The element to make visible.
253
- * @param {!Element} container The container to scroll. If not set, then the
254
- * document scroll element will be used.
255
- * @param {boolean=} opt_center Whether to center the element in the container.
260
+ * @param element The element to make visible.
261
+ * @param container The container to scroll. If not set, then the document
262
+ * scroll element will be used.
263
+ * @param opt_center Whether to center the element in the container.
256
264
  * Defaults to false.
257
- * @return {!Coordinate} The new scroll position of the container,
258
- * in form of goog.math.Coordinate(scrollLeft, scrollTop).
265
+ * @return The new scroll position of the container.
259
266
  * @alias Blockly.utils.style.getContainerOffsetToScrollInto
260
267
  */
261
- const getContainerOffsetToScrollInto = function(
262
- element, container, opt_center) {
268
+ export function getContainerOffsetToScrollInto(
269
+ element: Element, container: Element, opt_center?: boolean): Coordinate {
263
270
  // Absolute position of the element's border's top left corner.
264
271
  const elementPos = getPageOffset(element);
265
272
  // Absolute position of the container's border's top left corner.
@@ -292,5 +299,8 @@ const getContainerOffsetToScrollInto = function(
292
299
  scrollTop += Math.min(relY, Math.max(relY - spaceY, 0));
293
300
  }
294
301
  return new Coordinate(scrollLeft, scrollTop);
295
- };
296
- exports.getContainerOffsetToScrollInto = getContainerOffsetToScrollInto;
302
+ }
303
+
304
+ export const TEST_ONLY = {
305
+ getSizeInternal,
306
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2020 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * A name with the type of the SVG element stored in the generic.
8
+ * @alias Blockly.utils.Svg
9
+ */
10
+ export declare class Svg<T> {
11
+ private readonly tagName;
12
+ /** @internal */
13
+ static ANIMATE: Svg<SVGAnimateElement>;
14
+ /** @internal */
15
+ static CIRCLE: Svg<SVGCircleElement>;
16
+ /** @internal */
17
+ static CLIPPATH: Svg<SVGClipPathElement>;
18
+ /** @internal */
19
+ static DEFS: Svg<SVGDefsElement>;
20
+ /** @internal */
21
+ static FECOMPOSITE: Svg<SVGFECompositeElement>;
22
+ /** @internal */
23
+ static FECOMPONENTTRANSFER: Svg<SVGFEComponentTransferElement>;
24
+ /** @internal */
25
+ static FEFLOOD: Svg<SVGFEFloodElement>;
26
+ /** @internal */
27
+ static FEFUNCA: Svg<SVGFEFuncAElement>;
28
+ /** @internal */
29
+ static FEGAUSSIANBLUR: Svg<SVGFEGaussianBlurElement>;
30
+ /** @internal */
31
+ static FEPOINTLIGHT: Svg<SVGFEPointLightElement>;
32
+ /** @internal */
33
+ static FESPECULARLIGHTING: Svg<SVGFESpecularLightingElement>;
34
+ /** @internal */
35
+ static FILTER: Svg<SVGFilterElement>;
36
+ /** @internal */
37
+ static FOREIGNOBJECT: Svg<SVGForeignObjectElement>;
38
+ /** @internal */
39
+ static G: Svg<SVGGElement>;
40
+ /** @internal */
41
+ static IMAGE: Svg<SVGImageElement>;
42
+ /** @internal */
43
+ static LINE: Svg<SVGLineElement>;
44
+ /** @internal */
45
+ static PATH: Svg<SVGPathElement>;
46
+ /** @internal */
47
+ static PATTERN: Svg<SVGPatternElement>;
48
+ /** @internal */
49
+ static POLYGON: Svg<SVGPolygonElement>;
50
+ /** @internal */
51
+ static RECT: Svg<SVGRectElement>;
52
+ /** @internal */
53
+ static SVG: Svg<SVGSVGElement>;
54
+ /** @internal */
55
+ static TEXT: Svg<SVGTextElement>;
56
+ /** @internal */
57
+ static TSPAN: Svg<SVGTSpanElement>;
58
+ /**
59
+ * @param tagName The SVG element tag name.
60
+ * @internal
61
+ */
62
+ constructor(tagName: string);
63
+ /**
64
+ * Returns the SVG element tag name.
65
+ * @return The name.
66
+ */
67
+ toString(): string;
68
+ }
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2020 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview Defines the Svg class. Its constants enumerate
9
+ * all SVG tag names used by Blockly.
10
+ */
11
+
12
+ /**
13
+ * Defines the Svg class. Its constants enumerate
14
+ * all SVG tag names used by Blockly.
15
+ * @class
16
+ */
17
+ import * as goog from '../../closure/goog/goog.js';
18
+ goog.declareModuleId('Blockly.utils.Svg');
19
+
20
+
21
+ /**
22
+ * A name with the type of the SVG element stored in the generic.
23
+ * @alias Blockly.utils.Svg
24
+ */
25
+ export class Svg<T> {
26
+ /** @internal */
27
+ static ANIMATE = new Svg<SVGAnimateElement>('animate');
28
+ /** @internal */
29
+ static CIRCLE = new Svg<SVGCircleElement>('circle');
30
+ /** @internal */
31
+ static CLIPPATH = new Svg<SVGClipPathElement>('clipPath');
32
+ /** @internal */
33
+ static DEFS = new Svg<SVGDefsElement>('defs');
34
+ /** @internal */
35
+ static FECOMPOSITE = new Svg<SVGFECompositeElement>('feComposite');
36
+ /** @internal */
37
+ static FECOMPONENTTRANSFER =
38
+ new Svg<SVGFEComponentTransferElement>('feComponentTransfer');
39
+ /** @internal */
40
+ static FEFLOOD = new Svg<SVGFEFloodElement>('feFlood');
41
+ /** @internal */
42
+ static FEFUNCA = new Svg<SVGFEFuncAElement>('feFuncA');
43
+ /** @internal */
44
+ static FEGAUSSIANBLUR = new Svg<SVGFEGaussianBlurElement>('feGaussianBlur');
45
+ /** @internal */
46
+ static FEPOINTLIGHT = new Svg<SVGFEPointLightElement>('fePointLight');
47
+ /** @internal */
48
+ static FESPECULARLIGHTING =
49
+ new Svg<SVGFESpecularLightingElement>('feSpecularLighting');
50
+ /** @internal */
51
+ static FILTER = new Svg<SVGFilterElement>('filter');
52
+ /** @internal */
53
+ static FOREIGNOBJECT = new Svg<SVGForeignObjectElement>('foreignObject');
54
+ /** @internal */
55
+ static G = new Svg<SVGGElement>('g');
56
+ /** @internal */
57
+ static IMAGE = new Svg<SVGImageElement>('image');
58
+ /** @internal */
59
+ static LINE = new Svg<SVGLineElement>('line');
60
+ /** @internal */
61
+ static PATH = new Svg<SVGPathElement>('path');
62
+ /** @internal */
63
+ static PATTERN = new Svg<SVGPatternElement>('pattern');
64
+ /** @internal */
65
+ static POLYGON = new Svg<SVGPolygonElement>('polygon');
66
+ /** @internal */
67
+ static RECT = new Svg<SVGRectElement>('rect');
68
+ /** @internal */
69
+ static SVG = new Svg<SVGSVGElement>('svg');
70
+ /** @internal */
71
+ static TEXT = new Svg<SVGTextElement>('text');
72
+ /** @internal */
73
+ static TSPAN = new Svg<SVGTSpanElement>('tspan');
74
+
75
+ /**
76
+ * @param tagName The SVG element tag name.
77
+ * @internal
78
+ */
79
+ constructor(private readonly tagName: string) {}
80
+
81
+ /**
82
+ * Returns the SVG element tag name.
83
+ * @return The name.
84
+ */
85
+ toString(): string {
86
+ return this.tagName;
87
+ }
88
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { WorkspaceSvg } from '../workspace_svg.js';
7
+ import { Coordinate } from './coordinate.js';
8
+ import { Rect } from './rect.js';
9
+ import { Size } from './size.js';
10
+ /**
11
+ * Return the coordinates of the top-left corner of this element relative to
12
+ * its parent. Only for SVG elements and children (e.g. rect, g, path).
13
+ * @param element SVG element to find the coordinates of.
14
+ * @return Object with .x and .y properties.
15
+ * @alias Blockly.utils.svgMath.getRelativeXY
16
+ */
17
+ export declare function getRelativeXY(element: Element): Coordinate;
18
+ /**
19
+ * Return the coordinates of the top-left corner of this element relative to
20
+ * the div Blockly was injected into.
21
+ * @param element SVG element to find the coordinates of. If this is not a child
22
+ * of the div Blockly was injected into, the behaviour is undefined.
23
+ * @return Object with .x and .y properties.
24
+ * @alias Blockly.utils.svgMath.getInjectionDivXY
25
+ */
26
+ export declare function getInjectionDivXY(element: Element): Coordinate;
27
+ /**
28
+ * Check if 3D transforms are supported by adding an element
29
+ * and attempting to set the property.
30
+ * @return True if 3D transforms are supported.
31
+ * @alias Blockly.utils.svgMath.is3dSupported
32
+ */
33
+ export declare function is3dSupported(): boolean;
34
+ /**
35
+ * Get the position of the current viewport in window coordinates. This takes
36
+ * scroll into account.
37
+ * @return An object containing window width, height, and scroll position in
38
+ * window coordinates.
39
+ * @alias Blockly.utils.svgMath.getViewportBBox
40
+ * @internal
41
+ */
42
+ export declare function getViewportBBox(): Rect;
43
+ /**
44
+ * Gets the document scroll distance as a coordinate object.
45
+ * Copied from Closure's goog.dom.getDocumentScroll.
46
+ * @return Object with values 'x' and 'y'.
47
+ * @alias Blockly.utils.svgMath.getDocumentScroll
48
+ */
49
+ export declare function getDocumentScroll(): Coordinate;
50
+ /**
51
+ * Converts screen coordinates to workspace coordinates.
52
+ * @param ws The workspace to find the coordinates on.
53
+ * @param screenCoordinates The screen coordinates to be converted to workspace
54
+ * coordinates
55
+ * @return The workspace coordinates.
56
+ * @alias Blockly.utils.svgMath.screenToWsCoordinates
57
+ */
58
+ export declare function screenToWsCoordinates(ws: WorkspaceSvg, screenCoordinates: Coordinate): Coordinate;
59
+ /**
60
+ * Returns the dimensions of the specified SVG image.
61
+ * @param svg SVG image.
62
+ * @return Contains width and height properties.
63
+ * @deprecated Use workspace.getCachedParentSvgSize. (2021 March 5)
64
+ * @alias Blockly.utils.svgMath.svgSize
65
+ */
66
+ export declare function svgSize(svg: SVGElement): Size;
67
+ export declare const TEST_ONLY: {
68
+ XY_REGEX: RegExp;
69
+ XY_STYLE_REGEX: RegExp;
70
+ };