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
@@ -7,23 +7,22 @@
7
7
  /**
8
8
  * @fileoverview Utility methods for SVG math.
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Utility methods realted to figuring out positions of SVG elements.
14
13
  * @namespace Blockly.utils.svgMath
15
14
  */
16
- goog.module('Blockly.utils.svgMath');
15
+ import * as goog from '../../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.utils.svgMath');
17
17
 
18
- const deprecation = goog.require('Blockly.utils.deprecation');
19
- const global = goog.require('Blockly.utils.global');
20
- const style = goog.require('Blockly.utils.style');
21
- const userAgent = goog.require('Blockly.utils.userAgent');
22
- const {Coordinate} = goog.require('Blockly.utils.Coordinate');
23
- const {Rect} = goog.require('Blockly.utils.Rect');
24
- const {Size} = goog.require('Blockly.utils.Size');
25
- /* eslint-disable-next-line no-unused-vars */
26
- const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
18
+ import type {WorkspaceSvg} from '../workspace_svg.js';
19
+
20
+ import {Coordinate} from './coordinate.js';
21
+ import * as deprecation from './deprecation.js';
22
+ import {Rect} from './rect.js';
23
+ import {Size} from './size.js';
24
+ import * as style from './style.js';
25
+ import * as userAgent from './useragent.js';
27
26
 
28
27
 
29
28
  /**
@@ -32,35 +31,35 @@ const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
32
31
  * 'translate(12, 0)'.
33
32
  * Note that IE (9,10) returns 'translate(16 8)' instead of 'translate(16, 8)'.
34
33
  * Note that IE has been reported to return scientific notation (0.123456e-42).
35
- * @type {!RegExp}
36
34
  */
37
- const XY_REGEX = /translate\(\s*([-+\d.e]+)([ ,]\s*([-+\d.e]+)\s*)?/;
35
+ const XY_REGEX: RegExp = /translate\(\s*([-+\d.e]+)([ ,]\s*([-+\d.e]+)\s*)?/;
38
36
 
39
37
  /**
40
38
  * Static regex to pull the x,y values out of a translate() or translate3d()
41
39
  * style property.
42
40
  * Accounts for same exceptions as XY_REGEX.
43
- * @type {!RegExp}
44
41
  */
45
- const XY_STYLE_REGEX =
42
+ const XY_STYLE_REGEX: RegExp =
46
43
  /transform:\s*translate(?:3d)?\(\s*([-+\d.e]+)\s*px([ ,]\s*([-+\d.e]+)\s*px)?/;
47
44
 
48
-
49
45
  /**
50
46
  * Return the coordinates of the top-left corner of this element relative to
51
47
  * its parent. Only for SVG elements and children (e.g. rect, g, path).
52
- * @param {!Element} element SVG element to find the coordinates of.
53
- * @return {!Coordinate} Object with .x and .y properties.
48
+ * @param element SVG element to find the coordinates of.
49
+ * @return Object with .x and .y properties.
54
50
  * @alias Blockly.utils.svgMath.getRelativeXY
55
51
  */
56
- const getRelativeXY = function(element) {
52
+ export function getRelativeXY(element: Element): Coordinate {
57
53
  const xy = new Coordinate(0, 0);
58
54
  // First, check for x and y attributes.
59
- const x = element.getAttribute('x');
55
+ // Checking for the existence of x/y properties is faster than getAttribute.
56
+ // However, x/y contains an SVGAnimatedLength object, so rely on getAttribute
57
+ // to get the number.
58
+ const x = (element as any).x && element.getAttribute('x');
59
+ const y = (element as any).y && element.getAttribute('y');
60
60
  if (x) {
61
61
  xy.x = parseInt(x, 10);
62
62
  }
63
- const y = element.getAttribute('y');
64
63
  if (y) {
65
64
  xy.y = parseInt(y, 10);
66
65
  }
@@ -86,19 +85,17 @@ const getRelativeXY = function(element) {
86
85
  }
87
86
  }
88
87
  return xy;
89
- };
90
- exports.getRelativeXY = getRelativeXY;
88
+ }
91
89
 
92
90
  /**
93
91
  * Return the coordinates of the top-left corner of this element relative to
94
92
  * the div Blockly was injected into.
95
- * @param {!Element} element SVG element to find the coordinates of. If this is
96
- * not a child of the div Blockly was injected into, the behaviour is
97
- * undefined.
98
- * @return {!Coordinate} Object with .x and .y properties.
93
+ * @param element SVG element to find the coordinates of. If this is not a child
94
+ * of the div Blockly was injected into, the behaviour is undefined.
95
+ * @return Object with .x and .y properties.
99
96
  * @alias Blockly.utils.svgMath.getInjectionDivXY
100
97
  */
101
- const getInjectionDivXY = function(element) {
98
+ export function getInjectionDivXY(element: Element): Coordinate {
102
99
  let x = 0;
103
100
  let y = 0;
104
101
  while (element) {
@@ -109,25 +106,28 @@ const getInjectionDivXY = function(element) {
109
106
  if ((' ' + classes + ' ').indexOf(' injectionDiv ') !== -1) {
110
107
  break;
111
108
  }
112
- element = /** @type {!Element} */ (element.parentNode);
109
+ element = element.parentNode as Element;
113
110
  }
114
111
  return new Coordinate(x, y);
115
- };
116
- exports.getInjectionDivXY = getInjectionDivXY;
112
+ }
117
113
 
118
114
  /**
119
115
  * Check if 3D transforms are supported by adding an element
120
116
  * and attempting to set the property.
121
- * @return {boolean} True if 3D transforms are supported.
117
+ * @return True if 3D transforms are supported.
122
118
  * @alias Blockly.utils.svgMath.is3dSupported
123
119
  */
124
- const is3dSupported = function() {
125
- if (is3dSupported.cached_ !== undefined) {
126
- return is3dSupported.cached_;
120
+ export function is3dSupported(): boolean {
121
+ // AnyDuringMigration because: Property 'cached_' does not exist on type '()
122
+ // => boolean'.
123
+ if ((is3dSupported as AnyDuringMigration).cached_ !== undefined) {
124
+ // AnyDuringMigration because: Property 'cached_' does not exist on type
125
+ // '() => boolean'.
126
+ return (is3dSupported as AnyDuringMigration).cached_;
127
127
  }
128
128
  // CC-BY-SA Lorenzo Polidori
129
129
  // stackoverflow.com/questions/5661671/detecting-transform-translate3d-support
130
- if (!global.globalThis['getComputedStyle']) {
130
+ if (!globalThis['getComputedStyle']) {
131
131
  return false;
132
132
  }
133
133
 
@@ -145,9 +145,9 @@ const is3dSupported = function() {
145
145
  document.body.insertBefore(el, null);
146
146
 
147
147
  for (const t in transforms) {
148
- if (el.style[t] !== undefined) {
149
- el.style[t] = 'translate3d(1px,1px,1px)';
150
- const computedStyle = global.globalThis['getComputedStyle'](el);
148
+ if ((el.style as AnyDuringMigration)[t] !== undefined) {
149
+ (el.style as AnyDuringMigration)[t] = 'translate3d(1px,1px,1px)';
150
+ const computedStyle = globalThis['getComputedStyle'](el);
151
151
  if (!computedStyle) {
152
152
  // getComputedStyle in Firefox returns null when Blockly is loaded
153
153
  // inside an iframe with display: none. Returning false and not
@@ -158,39 +158,42 @@ const is3dSupported = function() {
158
158
  document.body.removeChild(el);
159
159
  return false;
160
160
  }
161
- has3d = computedStyle.getPropertyValue(transforms[t]);
161
+ has3d =
162
+ computedStyle.getPropertyValue((transforms as AnyDuringMigration)[t]);
162
163
  }
163
164
  }
164
165
  document.body.removeChild(el);
165
- is3dSupported.cached_ = has3d !== 'none';
166
- return is3dSupported.cached_;
167
- };
168
- exports.is3dSupported = is3dSupported;
166
+ // AnyDuringMigration because: Property 'cached_' does not exist on type '()
167
+ // => boolean'.
168
+ (is3dSupported as AnyDuringMigration).cached_ = has3d !== 'none';
169
+ // AnyDuringMigration because: Property 'cached_' does not exist on type '()
170
+ // => boolean'.
171
+ return (is3dSupported as AnyDuringMigration).cached_;
172
+ }
169
173
 
170
174
  /**
171
175
  * Get the position of the current viewport in window coordinates. This takes
172
176
  * scroll into account.
173
- * @return {!Rect} An object containing window width, height, and
174
- * scroll position in window coordinates.
177
+ * @return An object containing window width, height, and scroll position in
178
+ * window coordinates.
175
179
  * @alias Blockly.utils.svgMath.getViewportBBox
176
- * @package
180
+ * @internal
177
181
  */
178
- const getViewportBBox = function() {
182
+ export function getViewportBBox(): Rect {
179
183
  // Pixels, in window coordinates.
180
184
  const scrollOffset = style.getViewportPageOffset();
181
185
  return new Rect(
182
186
  scrollOffset.y, document.documentElement.clientHeight + scrollOffset.y,
183
187
  scrollOffset.x, document.documentElement.clientWidth + scrollOffset.x);
184
- };
185
- exports.getViewportBBox = getViewportBBox;
188
+ }
186
189
 
187
190
  /**
188
191
  * Gets the document scroll distance as a coordinate object.
189
192
  * Copied from Closure's goog.dom.getDocumentScroll.
190
- * @return {!Coordinate} Object with values 'x' and 'y'.
193
+ * @return Object with values 'x' and 'y'.
191
194
  * @alias Blockly.utils.svgMath.getDocumentScroll
192
195
  */
193
- const getDocumentScroll = function() {
196
+ export function getDocumentScroll(): Coordinate {
194
197
  const el = document.documentElement;
195
198
  const win = window;
196
199
  if (userAgent.IE && win.pageYOffset !== el.scrollTop) {
@@ -201,18 +204,18 @@ const getDocumentScroll = function() {
201
204
  }
202
205
  return new Coordinate(
203
206
  win.pageXOffset || el.scrollLeft, win.pageYOffset || el.scrollTop);
204
- };
205
- exports.getDocumentScroll = getDocumentScroll;
207
+ }
206
208
 
207
209
  /**
208
210
  * Converts screen coordinates to workspace coordinates.
209
- * @param {!WorkspaceSvg} ws The workspace to find the coordinates on.
210
- * @param {!Coordinate} screenCoordinates The screen coordinates to
211
- * be converted to workspace coordinates
212
- * @return {!Coordinate} The workspace coordinates.
211
+ * @param ws The workspace to find the coordinates on.
212
+ * @param screenCoordinates The screen coordinates to be converted to workspace
213
+ * coordinates
214
+ * @return The workspace coordinates.
213
215
  * @alias Blockly.utils.svgMath.screenToWsCoordinates
214
216
  */
215
- const screenToWsCoordinates = function(ws, screenCoordinates) {
217
+ export function screenToWsCoordinates(
218
+ ws: WorkspaceSvg, screenCoordinates: Coordinate): Coordinate {
216
219
  const screenX = screenCoordinates.x;
217
220
  const screenY = screenCoordinates.y;
218
221
 
@@ -234,21 +237,19 @@ const screenToWsCoordinates = function(ws, screenCoordinates) {
234
237
  // main workspace.
235
238
  const finalOffsetPixels =
236
239
  Coordinate.difference(clientOffsetPixels, mainOffsetPixels);
237
-
238
240
  // The position in main workspace coordinates.
239
241
  const finalOffsetMainWs = finalOffsetPixels.scale(1 / ws.scale);
240
242
  return finalOffsetMainWs;
241
- };
242
- exports.screenToWsCoordinates = screenToWsCoordinates;
243
+ }
243
244
 
244
245
  /**
245
246
  * Returns the dimensions of the specified SVG image.
246
- * @param {!SVGElement} svg SVG image.
247
- * @return {!Size} Contains width and height properties.
247
+ * @param svg SVG image.
248
+ * @return Contains width and height properties.
248
249
  * @deprecated Use workspace.getCachedParentSvgSize. (2021 March 5)
249
250
  * @alias Blockly.utils.svgMath.svgSize
250
251
  */
251
- const svgSize = function(svg) {
252
+ export function svgSize(svg: SVGElement): Size {
252
253
  // When removing this function, remove svg.cachedWidth_ and svg.cachedHeight_
253
254
  // from setCachedParentSvgSize.
254
255
  // The deprecated name is `Blockly.svgSize` because this function used to be
@@ -256,13 +257,13 @@ const svgSize = function(svg) {
256
257
  deprecation.warn(
257
258
  'Blockly.svgSize', 'March 2021', 'March 2022',
258
259
  'workspace.getCachedParentSvgSize');
259
- svg = /** @type {?} */ (svg);
260
- return new Size(svg.cachedWidth_, svg.cachedHeight_);
261
- };
262
- exports.svgSize = svgSize;
263
-
260
+ svg = svg as AnyDuringMigration;
261
+ return new Size(
262
+ Number(svg.getAttribute('data-cached-width')),
263
+ Number(svg.getAttribute('data-cached-height')));
264
+ }
264
265
 
265
- exports.TEST_ONLY = {
266
+ export const TEST_ONLY = {
266
267
  XY_REGEX,
267
268
  XY_STYLE_REGEX,
268
269
  };
@@ -0,0 +1,101 @@
1
+ /**
2
+ * @fileoverview Methods for creating parts of SVG path strings. See
3
+ * developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
4
+ */
5
+ /**
6
+ * Create a string representing the given x, y pair. It does not matter whether
7
+ * the coordinate is relative or absolute. The result has leading
8
+ * and trailing spaces, and separates the x and y coordinates with a comma but
9
+ * no space.
10
+ * @param x The x coordinate.
11
+ * @param y The y coordinate.
12
+ * @return A string of the format ' x,y '
13
+ * @alias Blockly.utils.svgPaths.point
14
+ */
15
+ export declare function point(x: number, y: number): string;
16
+ /**
17
+ * Draw a cubic or quadratic curve. See
18
+ * developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#Cubic_B%C3%A9zier_Curve
19
+ * These coordinates are unitless and hence in the user coordinate system.
20
+ * @param command The command to use.
21
+ * Should be one of: c, C, s, S, q, Q.
22
+ * @param points An array containing all of the points to pass to the curve
23
+ * command, in order. The points are represented as strings of the format '
24
+ * x, y '.
25
+ * @return A string defining one or more Bezier curves. See the MDN
26
+ * documentation for exact format.
27
+ * @alias Blockly.utils.svgPaths.curve
28
+ */
29
+ export declare function curve(command: string, points: string[]): string;
30
+ /**
31
+ * Move the cursor to the given position without drawing a line.
32
+ * The coordinates are absolute.
33
+ * These coordinates are unitless and hence in the user coordinate system.
34
+ * See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands
35
+ * @param x The absolute x coordinate.
36
+ * @param y The absolute y coordinate.
37
+ * @return A string of the format ' M x,y '
38
+ * @alias Blockly.utils.svgPaths.moveTo
39
+ */
40
+ export declare function moveTo(x: number, y: number): string;
41
+ /**
42
+ * Move the cursor to the given position without drawing a line.
43
+ * Coordinates are relative.
44
+ * These coordinates are unitless and hence in the user coordinate system.
45
+ * See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands
46
+ * @param dx The relative x coordinate.
47
+ * @param dy The relative y coordinate.
48
+ * @return A string of the format ' m dx,dy '
49
+ * @alias Blockly.utils.svgPaths.moveBy
50
+ */
51
+ export declare function moveBy(dx: number, dy: number): string;
52
+ /**
53
+ * Draw a line from the current point to the end point, which is the current
54
+ * point shifted by dx along the x-axis and dy along the y-axis.
55
+ * These coordinates are unitless and hence in the user coordinate system.
56
+ * See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands
57
+ * @param dx The relative x coordinate.
58
+ * @param dy The relative y coordinate.
59
+ * @return A string of the format ' l dx,dy '
60
+ * @alias Blockly.utils.svgPaths.lineTo
61
+ */
62
+ export declare function lineTo(dx: number, dy: number): string;
63
+ /**
64
+ * Draw multiple lines connecting all of the given points in order. This is
65
+ * equivalent to a series of 'l' commands.
66
+ * These coordinates are unitless and hence in the user coordinate system.
67
+ * See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands
68
+ * @param points An array containing all of the points to draw lines to, in
69
+ * order. The points are represented as strings of the format ' dx,dy '.
70
+ * @return A string of the format ' l (dx,dy)+ '
71
+ * @alias Blockly.utils.svgPaths.line
72
+ */
73
+ export declare function line(points: string[]): string;
74
+ /**
75
+ * Draw a horizontal or vertical line.
76
+ * The first argument specifies the direction and whether the given position is
77
+ * relative or absolute.
78
+ * These coordinates are unitless and hence in the user coordinate system.
79
+ * See developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#LineTo_path_commands
80
+ * @param command The command to prepend to the coordinate. This should be one
81
+ * of: V, v, H, h.
82
+ * @param val The coordinate to pass to the command. It may be absolute or
83
+ * relative.
84
+ * @return A string of the format ' command val '
85
+ * @alias Blockly.utils.svgPaths.lineOnAxis
86
+ */
87
+ export declare function lineOnAxis(command: string, val: number): string;
88
+ /**
89
+ * Draw an elliptical arc curve.
90
+ * These coordinates are unitless and hence in the user coordinate system.
91
+ * See developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#Elliptical_Arc_Curve
92
+ * @param command The command string. Either 'a' or 'A'.
93
+ * @param flags The flag string. See the MDN documentation for a description
94
+ * and examples.
95
+ * @param radius The radius of the arc to draw.
96
+ * @param point The point to move the cursor to after drawing the arc, specified
97
+ * either in absolute or relative coordinates depending on the command.
98
+ * @return A string of the format 'command radius radius flags point'
99
+ * @alias Blockly.utils.svgPaths.arc
100
+ */
101
+ export declare function arc(command: string, flags: string, radius: number, point: string): string;
@@ -1,20 +1,20 @@
1
1
  /**
2
- * @license
3
- * Copyright 2019 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
2
+ * @fileoverview Methods for creating parts of SVG path strings. See
3
+ * developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
5
4
  */
6
5
 
7
6
  /**
8
- * @fileoverview Methods for creating parts of SVG path strings. See
9
- * developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
7
+ * @license
8
+ * Copyright 2019 Google LLC
9
+ * SPDX-License-Identifier: Apache-2.0
10
10
  */
11
- 'use strict';
12
11
 
13
12
  /**
14
13
  * Methods for creating parts of SVG path strings. See
15
14
  * @namespace Blockly.utils.svgPaths
16
15
  */
17
- goog.module('Blockly.utils.svgPaths');
16
+ import * as goog from '../../closure/goog/goog.js';
17
+ goog.declareModuleId('Blockly.utils.svgPaths');
18
18
 
19
19
 
20
20
  /**
@@ -22,94 +22,87 @@ goog.module('Blockly.utils.svgPaths');
22
22
  * the coordinate is relative or absolute. The result has leading
23
23
  * and trailing spaces, and separates the x and y coordinates with a comma but
24
24
  * no space.
25
- * @param {number} x The x coordinate.
26
- * @param {number} y The y coordinate.
27
- * @return {string} A string of the format ' x,y '
25
+ * @param x The x coordinate.
26
+ * @param y The y coordinate.
27
+ * @return A string of the format ' x,y '
28
28
  * @alias Blockly.utils.svgPaths.point
29
29
  */
30
- const point = function(x, y) {
30
+ export function point(x: number, y: number): string {
31
31
  return ' ' + x + ',' + y + ' ';
32
- };
33
- exports.point = point;
32
+ }
34
33
 
35
34
  /**
36
35
  * Draw a cubic or quadratic curve. See
37
36
  * developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#Cubic_B%C3%A9zier_Curve
38
37
  * These coordinates are unitless and hence in the user coordinate system.
39
- * @param {string} command The command to use.
38
+ * @param command The command to use.
40
39
  * Should be one of: c, C, s, S, q, Q.
41
- * @param {!Array<string>} points An array containing all of the points to pass
42
- * to the curve command, in order. The points are represented as strings of
43
- * the format ' x, y '.
44
- * @return {string} A string defining one or more Bezier curves. See the MDN
40
+ * @param points An array containing all of the points to pass to the curve
41
+ * command, in order. The points are represented as strings of the format '
42
+ * x, y '.
43
+ * @return A string defining one or more Bezier curves. See the MDN
45
44
  * documentation for exact format.
46
45
  * @alias Blockly.utils.svgPaths.curve
47
46
  */
48
- const curve = function(command, points) {
47
+ export function curve(command: string, points: string[]): string {
49
48
  return ' ' + command + points.join('');
50
- };
51
- exports.curve = curve;
49
+ }
52
50
 
53
51
  /**
54
52
  * Move the cursor to the given position without drawing a line.
55
53
  * The coordinates are absolute.
56
54
  * These coordinates are unitless and hence in the user coordinate system.
57
55
  * See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands
58
- * @param {number} x The absolute x coordinate.
59
- * @param {number} y The absolute y coordinate.
60
- * @return {string} A string of the format ' M x,y '
56
+ * @param x The absolute x coordinate.
57
+ * @param y The absolute y coordinate.
58
+ * @return A string of the format ' M x,y '
61
59
  * @alias Blockly.utils.svgPaths.moveTo
62
60
  */
63
- const moveTo = function(x, y) {
61
+ export function moveTo(x: number, y: number): string {
64
62
  return ' M ' + x + ',' + y + ' ';
65
- };
66
- exports.moveTo = moveTo;
63
+ }
67
64
 
68
65
  /**
69
66
  * Move the cursor to the given position without drawing a line.
70
67
  * Coordinates are relative.
71
68
  * These coordinates are unitless and hence in the user coordinate system.
72
69
  * See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands
73
- * @param {number} dx The relative x coordinate.
74
- * @param {number} dy The relative y coordinate.
75
- * @return {string} A string of the format ' m dx,dy '
70
+ * @param dx The relative x coordinate.
71
+ * @param dy The relative y coordinate.
72
+ * @return A string of the format ' m dx,dy '
76
73
  * @alias Blockly.utils.svgPaths.moveBy
77
74
  */
78
- const moveBy = function(dx, dy) {
75
+ export function moveBy(dx: number, dy: number): string {
79
76
  return ' m ' + dx + ',' + dy + ' ';
80
- };
81
- exports.moveBy = moveBy;
77
+ }
82
78
 
83
79
  /**
84
80
  * Draw a line from the current point to the end point, which is the current
85
81
  * point shifted by dx along the x-axis and dy along the y-axis.
86
82
  * These coordinates are unitless and hence in the user coordinate system.
87
83
  * See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands
88
- * @param {number} dx The relative x coordinate.
89
- * @param {number} dy The relative y coordinate.
90
- * @return {string} A string of the format ' l dx,dy '
84
+ * @param dx The relative x coordinate.
85
+ * @param dy The relative y coordinate.
86
+ * @return A string of the format ' l dx,dy '
91
87
  * @alias Blockly.utils.svgPaths.lineTo
92
88
  */
93
- const lineTo = function(dx, dy) {
89
+ export function lineTo(dx: number, dy: number): string {
94
90
  return ' l ' + dx + ',' + dy + ' ';
95
- };
96
- exports.lineTo = lineTo;
91
+ }
97
92
 
98
93
  /**
99
94
  * Draw multiple lines connecting all of the given points in order. This is
100
95
  * equivalent to a series of 'l' commands.
101
96
  * These coordinates are unitless and hence in the user coordinate system.
102
97
  * See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands
103
- * @param {!Array<string>} points An array containing all of the points to
104
- * draw lines to, in order. The points are represented as strings of the
105
- * format ' dx,dy '.
106
- * @return {string} A string of the format ' l (dx,dy)+ '
98
+ * @param points An array containing all of the points to draw lines to, in
99
+ * order. The points are represented as strings of the format ' dx,dy '.
100
+ * @return A string of the format ' l (dx,dy)+ '
107
101
  * @alias Blockly.utils.svgPaths.line
108
102
  */
109
- const line = function(points) {
103
+ export function line(points: string[]): string {
110
104
  return ' l' + points.join('');
111
- };
112
- exports.line = line;
105
+ }
113
106
 
114
107
  /**
115
108
  * Draw a horizontal or vertical line.
@@ -117,33 +110,31 @@ exports.line = line;
117
110
  * relative or absolute.
118
111
  * These coordinates are unitless and hence in the user coordinate system.
119
112
  * See developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#LineTo_path_commands
120
- * @param {string} command The command to prepend to the coordinate. This
121
- * should be one of: V, v, H, h.
122
- * @param {number} val The coordinate to pass to the command. It may be
123
- * absolute or relative.
124
- * @return {string} A string of the format ' command val '
113
+ * @param command The command to prepend to the coordinate. This should be one
114
+ * of: V, v, H, h.
115
+ * @param val The coordinate to pass to the command. It may be absolute or
116
+ * relative.
117
+ * @return A string of the format ' command val '
125
118
  * @alias Blockly.utils.svgPaths.lineOnAxis
126
119
  */
127
- const lineOnAxis = function(command, val) {
120
+ export function lineOnAxis(command: string, val: number): string {
128
121
  return ' ' + command + ' ' + val + ' ';
129
- };
130
- exports.lineOnAxis = lineOnAxis;
122
+ }
131
123
 
132
124
  /**
133
125
  * Draw an elliptical arc curve.
134
126
  * These coordinates are unitless and hence in the user coordinate system.
135
127
  * See developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#Elliptical_Arc_Curve
136
- * @param {string} command The command string. Either 'a' or 'A'.
137
- * @param {string} flags The flag string. See the MDN documentation for a
138
- * description and examples.
139
- * @param {number} radius The radius of the arc to draw.
140
- * @param {string} point The point to move the cursor to after drawing the arc,
141
- * specified either in absolute or relative coordinates depending on the
142
- * command.
143
- * @return {string} A string of the format 'command radius radius flags point'
128
+ * @param command The command string. Either 'a' or 'A'.
129
+ * @param flags The flag string. See the MDN documentation for a description
130
+ * and examples.
131
+ * @param radius The radius of the arc to draw.
132
+ * @param point The point to move the cursor to after drawing the arc, specified
133
+ * either in absolute or relative coordinates depending on the command.
134
+ * @return A string of the format 'command radius radius flags point'
144
135
  * @alias Blockly.utils.svgPaths.arc
145
136
  */
146
- const arc = function(command, flags, radius, point) {
137
+ export function arc(
138
+ command: string, flags: string, radius: number, point: string): string {
147
139
  return command + ' ' + radius + ' ' + radius + ' ' + flags + point;
148
- };
149
- exports.arc = arc;
140
+ }