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
@@ -8,208 +8,234 @@
8
8
  * @fileoverview An object that provides constants for rendering blocks in Zelos
9
9
  * mode.
10
10
  */
11
- 'use strict';
12
11
 
13
12
  /**
14
13
  * An object that provides constants for rendering blocks in Zelos
15
14
  * mode.
16
15
  * @class
17
16
  */
18
- goog.module('Blockly.zelos.ConstantProvider');
19
-
20
- const dom = goog.require('Blockly.utils.dom');
21
- const svgPaths = goog.require('Blockly.utils.svgPaths');
22
- const utilsColour = goog.require('Blockly.utils.colour');
23
- const {ConnectionType} = goog.require('Blockly.ConnectionType');
24
- const {ConstantProvider: BaseConstantProvider} = goog.require('Blockly.blockRendering.ConstantProvider');
25
- const {Svg} = goog.require('Blockly.utils.Svg');
26
-
17
+ import * as goog from '../../../closure/goog/goog.js';
18
+ goog.declareModuleId('Blockly.zelos.ConstantProvider');
19
+
20
+ import {ConnectionType} from '../../connection_type.js';
21
+ import type {RenderedConnection} from '../../rendered_connection.js';
22
+ import type {Theme} from '../../theme.js';
23
+ import * as utilsColour from '../../utils/colour.js';
24
+ import * as dom from '../../utils/dom.js';
25
+ import {Svg} from '../../utils/svg.js';
26
+ import * as svgPaths from '../../utils/svg_paths.js';
27
+ import {ConstantProvider as BaseConstantProvider} from '../common/constants.js';
28
+ import type {Shape} from '../common/constants.js';
29
+
30
+
31
+ /** An object containing sizing and path information about inside corners. */
32
+ export interface InsideCorners {
33
+ width: number;
34
+ height: number;
35
+ pathTop: string;
36
+ pathBottom: string;
37
+ rightWidth: number;
38
+ rightHeight: number;
39
+ pathTopRight: string;
40
+ pathBottomRight: string;
41
+ }
27
42
 
28
43
  /**
29
44
  * An object that provides constants for rendering blocks in Zelos mode.
30
- * @extends {BaseConstantProvider}
31
45
  * @alias Blockly.zelos.ConstantProvider
32
46
  */
33
- class ConstantProvider extends BaseConstantProvider {
47
+ export class ConstantProvider extends BaseConstantProvider {
48
+ GRID_UNIT = 4;
49
+ override SMALL_PADDING: AnyDuringMigration;
50
+ override MEDIUM_PADDING: AnyDuringMigration;
51
+ override MEDIUM_LARGE_PADDING: AnyDuringMigration;
52
+ override LARGE_PADDING: AnyDuringMigration;
53
+ override CORNER_RADIUS: AnyDuringMigration;
54
+ override NOTCH_WIDTH: AnyDuringMigration;
55
+ override NOTCH_HEIGHT: AnyDuringMigration;
56
+ override NOTCH_OFFSET_LEFT: AnyDuringMigration;
57
+ override STATEMENT_INPUT_NOTCH_OFFSET: AnyDuringMigration;
58
+ override MIN_BLOCK_WIDTH: AnyDuringMigration;
59
+ override MIN_BLOCK_HEIGHT: AnyDuringMigration;
60
+ override EMPTY_STATEMENT_INPUT_HEIGHT: AnyDuringMigration;
61
+
62
+ override TAB_OFFSET_FROM_TOP = 0;
63
+ override TOP_ROW_MIN_HEIGHT: AnyDuringMigration;
64
+ override TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT: AnyDuringMigration;
65
+ override BOTTOM_ROW_MIN_HEIGHT: AnyDuringMigration;
66
+ override BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT: AnyDuringMigration;
67
+ override STATEMENT_BOTTOM_SPACER: AnyDuringMigration;
68
+ STATEMENT_INPUT_SPACER_MIN_WIDTH: number;
69
+ override STATEMENT_INPUT_PADDING_LEFT: AnyDuringMigration;
70
+ override EMPTY_INLINE_INPUT_PADDING: AnyDuringMigration;
71
+ override EMPTY_INLINE_INPUT_HEIGHT: AnyDuringMigration;
72
+ override DUMMY_INPUT_MIN_HEIGHT: AnyDuringMigration;
73
+ override DUMMY_INPUT_SHADOW_MIN_HEIGHT: AnyDuringMigration;
74
+ override CURSOR_WS_WIDTH: AnyDuringMigration;
75
+
76
+ override CURSOR_COLOUR = '#ffa200';
77
+
78
+ /**
79
+ * Radius of the cursor for input and output connections.
80
+ * @internal
81
+ */
82
+ CURSOR_RADIUS = 5;
83
+
84
+ override JAGGED_TEETH_HEIGHT = 0;
85
+
86
+ override JAGGED_TEETH_WIDTH = 0;
87
+ override START_HAT_HEIGHT = 22;
88
+
89
+ override START_HAT_WIDTH = 96;
90
+
91
+ override SHAPES = {HEXAGONAL: 1, ROUND: 2, SQUARE: 3, PUZZLE: 4, NOTCH: 5};
92
+ SHAPE_IN_SHAPE_PADDING: AnyDuringMigration;
93
+
94
+ override FULL_BLOCK_FIELDS = true;
95
+ override FIELD_TEXT_FONTSIZE: AnyDuringMigration;
96
+
97
+ override FIELD_TEXT_FONTWEIGHT = 'bold';
98
+
99
+ override FIELD_TEXT_FONTFAMILY =
100
+ '"Helvetica Neue", "Segoe UI", Helvetica, sans-serif';
101
+ override FIELD_BORDER_RECT_RADIUS: AnyDuringMigration;
102
+ override FIELD_BORDER_RECT_X_PADDING: AnyDuringMigration;
103
+ override FIELD_BORDER_RECT_Y_PADDING: AnyDuringMigration;
104
+ override FIELD_BORDER_RECT_HEIGHT: AnyDuringMigration;
105
+ override FIELD_DROPDOWN_BORDER_RECT_HEIGHT: AnyDuringMigration;
106
+
107
+ override FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW = true;
108
+
109
+ override FIELD_DROPDOWN_COLOURED_DIV = true;
110
+
111
+ override FIELD_DROPDOWN_SVG_ARROW = true;
112
+ override FIELD_DROPDOWN_SVG_ARROW_PADDING: AnyDuringMigration;
113
+ override FIELD_TEXTINPUT_BOX_SHADOW = true;
114
+
115
+ override FIELD_COLOUR_FULL_BLOCK = true;
116
+ override FIELD_COLOUR_DEFAULT_WIDTH: AnyDuringMigration;
117
+ override FIELD_COLOUR_DEFAULT_HEIGHT: AnyDuringMigration;
118
+ override FIELD_CHECKBOX_X_OFFSET: AnyDuringMigration;
119
+ MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH: number;
120
+
121
+ /** The selected glow colour. */
122
+ SELECTED_GLOW_COLOUR = '#fff200';
123
+
124
+ /** The size of the selected glow. */
125
+ SELECTED_GLOW_SIZE = 0.5;
126
+
127
+ /** The replacement glow colour. */
128
+ REPLACEMENT_GLOW_COLOUR = '#fff200';
129
+
130
+ /** The size of the selected glow. */
131
+ REPLACEMENT_GLOW_SIZE = 2;
132
+
34
133
  /**
35
- * @package
134
+ * The ID of the selected glow filter, or the empty string if no filter is
135
+ * set.
136
+ * @internal
36
137
  */
138
+ selectedGlowFilterId = '';
139
+
140
+ /**
141
+ * The <filter> element to use for a selected glow, or null if not set.
142
+ */
143
+ // AnyDuringMigration because: Type 'null' is not assignable to type
144
+ // 'SVGElement'.
145
+ private selectedGlowFilter_: SVGElement = null as AnyDuringMigration;
146
+
147
+ /**
148
+ * The ID of the replacement glow filter, or the empty string if no filter
149
+ * is set.
150
+ * @internal
151
+ */
152
+ replacementGlowFilterId = '';
153
+
154
+ /**
155
+ * The <filter> element to use for a replacement glow, or null if not set.
156
+ */
157
+ // AnyDuringMigration because: Type 'null' is not assignable to type
158
+ // 'SVGElement'.
159
+ private replacementGlowFilter_: SVGElement = null as AnyDuringMigration;
160
+
161
+ /**
162
+ * The object containing information about the hexagon used for a boolean
163
+ * reporter block. Null before init is called.
164
+ */
165
+ HEXAGONAL: Shape|null = null;
166
+
167
+ /**
168
+ * The object containing information about the hexagon used for a number or
169
+ * string reporter block. Null before init is called.
170
+ */
171
+ ROUNDED: Shape|null = null;
172
+
173
+ /**
174
+ * The object containing information about the hexagon used for a
175
+ * rectangular reporter block. Null before init is called.
176
+ */
177
+ SQUARED: Shape|null = null;
178
+
179
+ /** @internal */
37
180
  constructor() {
38
181
  super();
39
182
 
40
- this.GRID_UNIT = 4;
41
-
42
- /**
43
- * @override
44
- */
45
183
  this.SMALL_PADDING = this.GRID_UNIT;
46
184
 
47
- /**
48
- * @override
49
- */
50
185
  this.MEDIUM_PADDING = 2 * this.GRID_UNIT;
51
186
 
52
- /**
53
- * @override
54
- */
55
187
  this.MEDIUM_LARGE_PADDING = 3 * this.GRID_UNIT;
56
188
 
57
- /**
58
- * @override
59
- */
60
189
  this.LARGE_PADDING = 4 * this.GRID_UNIT;
61
190
 
62
- /**
63
- * @override
64
- */
65
191
  this.CORNER_RADIUS = 1 * this.GRID_UNIT;
66
192
 
67
- /**
68
- * @override
69
- */
70
193
  this.NOTCH_WIDTH = 9 * this.GRID_UNIT;
71
194
 
72
- /**
73
- * @override
74
- */
75
195
  this.NOTCH_HEIGHT = 2 * this.GRID_UNIT;
76
196
 
77
- /**
78
- * @override
79
- */
80
197
  this.NOTCH_OFFSET_LEFT = 3 * this.GRID_UNIT;
81
198
 
82
- /**
83
- * @override
84
- */
85
199
  this.STATEMENT_INPUT_NOTCH_OFFSET = this.NOTCH_OFFSET_LEFT;
86
200
 
87
- /**
88
- * @override
89
- */
90
201
  this.MIN_BLOCK_WIDTH = 2 * this.GRID_UNIT;
91
202
 
92
- /**
93
- * @override
94
- */
95
203
  this.MIN_BLOCK_HEIGHT = 12 * this.GRID_UNIT;
96
204
 
97
- /**
98
- * @override
99
- */
100
205
  this.EMPTY_STATEMENT_INPUT_HEIGHT = 6 * this.GRID_UNIT;
101
206
 
102
- /**
103
- * @override
104
- */
105
- this.TAB_OFFSET_FROM_TOP = 0;
106
-
107
- /**
108
- * @override
109
- */
110
207
  this.TOP_ROW_MIN_HEIGHT = this.CORNER_RADIUS;
111
208
 
112
- /**
113
- * @override
114
- */
115
209
  this.TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT = this.LARGE_PADDING;
116
210
 
117
- /**
118
- * @override
119
- */
120
211
  this.BOTTOM_ROW_MIN_HEIGHT = this.CORNER_RADIUS;
121
212
 
122
- /**
123
- * @override
124
- */
125
213
  this.BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT = 6 * this.GRID_UNIT;
126
214
 
127
- /**
128
- * @override
129
- */
130
215
  this.STATEMENT_BOTTOM_SPACER = -this.NOTCH_HEIGHT;
131
216
 
132
- /**
133
- * Minimum statement input spacer width.
134
- * @type {number}
135
- */
217
+ /** Minimum statement input spacer width. */
136
218
  this.STATEMENT_INPUT_SPACER_MIN_WIDTH = 40 * this.GRID_UNIT;
137
219
 
138
- /**
139
- * @override
140
- */
141
220
  this.STATEMENT_INPUT_PADDING_LEFT = 4 * this.GRID_UNIT;
142
221
 
143
- /**
144
- * @override
145
- */
146
222
  this.EMPTY_INLINE_INPUT_PADDING = 4 * this.GRID_UNIT;
147
223
 
148
- /**
149
- * @override
150
- */
151
224
  this.EMPTY_INLINE_INPUT_HEIGHT = 8 * this.GRID_UNIT;
152
225
 
153
- /**
154
- * @override
155
- */
156
226
  this.DUMMY_INPUT_MIN_HEIGHT = 8 * this.GRID_UNIT;
157
227
 
158
- /**
159
- * @override
160
- */
161
228
  this.DUMMY_INPUT_SHADOW_MIN_HEIGHT = 6 * this.GRID_UNIT;
162
229
 
163
- /**
164
- * @override
165
- */
166
230
  this.CURSOR_WS_WIDTH = 20 * this.GRID_UNIT;
167
231
 
168
- /**
169
- * @override
170
- */
171
- this.CURSOR_COLOUR = '#ffa200';
172
-
173
- /**
174
- * Radius of the cursor for input and output connections.
175
- * @type {number}
176
- * @package
177
- */
178
- this.CURSOR_RADIUS = 5;
179
-
180
- /**
181
- * @override
182
- */
183
- this.JAGGED_TEETH_HEIGHT = 0;
184
-
185
- /**
186
- * @override
187
- */
188
- this.JAGGED_TEETH_WIDTH = 0;
189
-
190
- /**
191
- * @override
192
- */
193
- this.START_HAT_HEIGHT = 22;
194
-
195
- /**
196
- * @override
197
- */
198
- this.START_HAT_WIDTH = 96;
199
-
200
- /**
201
- * @enum {number}
202
- * @override
203
- */
204
- this.SHAPES = {HEXAGONAL: 1, ROUND: 2, SQUARE: 3, PUZZLE: 4, NOTCH: 5};
205
-
206
232
  /**
207
233
  * Map of output/input shapes and the amount they should cause a block to be
208
234
  * padded. Outer key is the outer shape, inner key is the inner shape.
209
235
  * When a block with the outer shape contains an input block with the inner
210
236
  * shape on its left or right edge, the block elements are aligned such that
211
237
  * the padding specified is reached.
212
- * @package
238
+ * @internal
213
239
  */
214
240
  this.SHAPE_IN_SHAPE_PADDING = {
215
241
  1: {
@@ -235,183 +261,31 @@ class ConstantProvider extends BaseConstantProvider {
235
261
  },
236
262
  };
237
263
 
238
- /**
239
- * @override
240
- */
241
- this.FULL_BLOCK_FIELDS = true;
242
-
243
- /**
244
- * @override
245
- */
246
264
  this.FIELD_TEXT_FONTSIZE = 3 * this.GRID_UNIT;
247
265
 
248
- /**
249
- * @override
250
- */
251
- this.FIELD_TEXT_FONTWEIGHT = 'bold';
252
-
253
- /**
254
- * @override
255
- */
256
- this.FIELD_TEXT_FONTFAMILY =
257
- '"Helvetica Neue", "Segoe UI", Helvetica, sans-serif';
258
-
259
- /**
260
- * @override
261
- */
262
266
  this.FIELD_BORDER_RECT_RADIUS = this.CORNER_RADIUS;
263
267
 
264
- /**
265
- * @override
266
- */
267
268
  this.FIELD_BORDER_RECT_X_PADDING = 2 * this.GRID_UNIT;
268
269
 
269
- /**
270
- * @override
271
- */
272
270
  this.FIELD_BORDER_RECT_Y_PADDING = 1.625 * this.GRID_UNIT;
273
271
 
274
- /**
275
- * @override
276
- */
277
272
  this.FIELD_BORDER_RECT_HEIGHT = 8 * this.GRID_UNIT;
278
273
 
279
- /**
280
- * @override
281
- */
282
274
  this.FIELD_DROPDOWN_BORDER_RECT_HEIGHT = 8 * this.GRID_UNIT;
283
275
 
284
- /**
285
- * @override
286
- */
287
- this.FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW = true;
288
-
289
- /**
290
- * @override
291
- */
292
- this.FIELD_DROPDOWN_COLOURED_DIV = true;
293
-
294
- /**
295
- * @override
296
- */
297
- this.FIELD_DROPDOWN_SVG_ARROW = true;
298
-
299
- /**
300
- * @override
301
- */
302
276
  this.FIELD_DROPDOWN_SVG_ARROW_PADDING = this.FIELD_BORDER_RECT_X_PADDING;
303
277
 
304
- /**
305
- * @override
306
- */
307
- this.FIELD_TEXTINPUT_BOX_SHADOW = true;
308
-
309
- /**
310
- * @override
311
- */
312
- this.FIELD_COLOUR_FULL_BLOCK = true;
313
-
314
- /**
315
- * @override
316
- */
317
278
  this.FIELD_COLOUR_DEFAULT_WIDTH = 2 * this.GRID_UNIT;
318
279
 
319
- /**
320
- * @override
321
- */
322
280
  this.FIELD_COLOUR_DEFAULT_HEIGHT = 4 * this.GRID_UNIT;
323
281
 
324
- /**
325
- * @override
326
- */
327
282
  this.FIELD_CHECKBOX_X_OFFSET = 1 * this.GRID_UNIT;
328
283
 
329
- /**
330
- * The maximum width of a dynamic connection shape.
331
- * @type {number}
332
- */
284
+ /** The maximum width of a dynamic connection shape. */
333
285
  this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH = 12 * this.GRID_UNIT;
334
-
335
- /**
336
- * The selected glow colour.
337
- * @type {string}
338
- */
339
- this.SELECTED_GLOW_COLOUR = '#fff200';
340
-
341
- /**
342
- * The size of the selected glow.
343
- * @type {number}
344
- */
345
- this.SELECTED_GLOW_SIZE = 0.5;
346
-
347
- /**
348
- * The replacement glow colour.
349
- * @type {string}
350
- */
351
- this.REPLACEMENT_GLOW_COLOUR = '#fff200';
352
-
353
- /**
354
- * The size of the selected glow.
355
- * @type {number}
356
- */
357
- this.REPLACEMENT_GLOW_SIZE = 2;
358
-
359
- /**
360
- * The ID of the selected glow filter, or the empty string if no filter is
361
- * set.
362
- * @type {string}
363
- * @package
364
- */
365
- this.selectedGlowFilterId = '';
366
-
367
- /**
368
- * The <filter> element to use for a selected glow, or null if not set.
369
- * @type {SVGElement}
370
- * @private
371
- */
372
- this.selectedGlowFilter_ = null;
373
-
374
- /**
375
- * The ID of the replacement glow filter, or the empty string if no filter
376
- * is set.
377
- * @type {string}
378
- * @package
379
- */
380
- this.replacementGlowFilterId = '';
381
-
382
- /**
383
- * The <filter> element to use for a replacement glow, or null if not set.
384
- * @type {SVGElement}
385
- * @private
386
- */
387
- this.replacementGlowFilter_ = null;
388
-
389
- /**
390
- * The object containing information about the hexagon used for a boolean
391
- * reporter block. Null before init is called.
392
- * @type {Object}
393
- */
394
- this.HEXAGONAL = null;
395
-
396
- /**
397
- * The object containing information about the hexagon used for a number or
398
- * string reporter block. Null before init is called.
399
- * @type {Object}
400
- */
401
- this.ROUNDED = null;
402
-
403
- /**
404
- * The object containing information about the hexagon used for a
405
- * rectangular reporter block. Null before init is called.
406
- * @type {Object}
407
- */
408
- this.SQUARED = null;
409
286
  }
410
287
 
411
- /**
412
- * @override
413
- */
414
- setFontConstants_(theme) {
288
+ override setFontConstants_(theme: Theme) {
415
289
  super.setFontConstants_(theme);
416
290
 
417
291
  this.FIELD_BORDER_RECT_HEIGHT =
@@ -419,23 +293,17 @@ class ConstantProvider extends BaseConstantProvider {
419
293
  this.FIELD_DROPDOWN_BORDER_RECT_HEIGHT = this.FIELD_BORDER_RECT_HEIGHT;
420
294
  }
421
295
 
422
- /**
423
- * @override
424
- */
425
- init() {
296
+ override init() {
426
297
  super.init();
427
298
  this.HEXAGONAL = this.makeHexagonal();
428
299
  this.ROUNDED = this.makeRounded();
429
300
  this.SQUARED = this.makeSquared();
430
301
 
431
- this.STATEMENT_INPUT_NOTCH_OFFSET =
432
- this.NOTCH_OFFSET_LEFT + this.INSIDE_CORNERS.rightWidth;
302
+ this.STATEMENT_INPUT_NOTCH_OFFSET = this.NOTCH_OFFSET_LEFT +
303
+ (this.INSIDE_CORNERS as InsideCorners).rightWidth;
433
304
  }
434
305
 
435
- /**
436
- * @override
437
- */
438
- setDynamicProperties_(theme) {
306
+ override setDynamicProperties_(theme: Theme) {
439
307
  super.setDynamicProperties_(theme);
440
308
 
441
309
  this.SELECTED_GLOW_COLOUR = theme.getComponentStyle('selectedGlowColour') ||
@@ -456,10 +324,7 @@ class ConstantProvider extends BaseConstantProvider {
456
324
  this.REPLACEMENT_GLOW_SIZE;
457
325
  }
458
326
 
459
- /**
460
- * @override
461
- */
462
- dispose() {
327
+ override dispose() {
463
328
  super.dispose();
464
329
  if (this.selectedGlowFilter_) {
465
330
  dom.removeNode(this.selectedGlowFilter_);
@@ -469,10 +334,7 @@ class ConstantProvider extends BaseConstantProvider {
469
334
  }
470
335
  }
471
336
 
472
- /**
473
- * @override
474
- */
475
- makeStartHat() {
337
+ override makeStartHat() {
476
338
  const height = this.START_HAT_HEIGHT;
477
339
  const width = this.START_HAT_WIDTH;
478
340
 
@@ -481,16 +343,16 @@ class ConstantProvider extends BaseConstantProvider {
481
343
  svgPaths.point(71, -height),
482
344
  svgPaths.point(width, 0),
483
345
  ]);
484
- return {height: height, width: width, path: mainPath};
346
+ return {height, width, path: mainPath};
485
347
  }
486
348
 
487
349
  /**
488
350
  * Create sizing and path information about a hexagonal shape.
489
- * @return {!Object} An object containing sizing and path information about
490
- * a hexagonal shape for connections.
491
- * @package
351
+ * @return An object containing sizing and path information about a hexagonal
352
+ * shape for connections.
353
+ * @internal
492
354
  */
493
- makeHexagonal() {
355
+ makeHexagonal(): Shape {
494
356
  const maxWidth = this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH;
495
357
 
496
358
  /**
@@ -499,14 +361,13 @@ class ConstantProvider extends BaseConstantProvider {
499
361
  * height. The 'up' and 'down' versions of the paths are the same, but the Y
500
362
  * sign flips. The 'left' and 'right' versions of the path are also the
501
363
  * same, but the X sign flips.
502
- * @param {number} height The height of the block the connection is on.
503
- * @param {boolean} up True if the path should be drawn from bottom to top,
504
- * false otherwise.
505
- * @param {boolean} right True if the path is for the right side of the
506
- * block.
507
- * @return {string} A path fragment describing a rounded connection.
364
+ * @param height The height of the block the connection is on.
365
+ * @param up True if the path should be drawn from bottom to top, false
366
+ * otherwise.
367
+ * @param right True if the path is for the right side of the block.
368
+ * @return A path fragment describing a rounded connection.
508
369
  */
509
- function makeMainPath(height, up, right) {
370
+ function makeMainPath(height: number, up: boolean, right: boolean): string {
510
371
  const halfHeight = height / 2;
511
372
  const width = halfHeight > maxWidth ? maxWidth : halfHeight;
512
373
  const forward = up ? -1 : 1;
@@ -519,29 +380,29 @@ class ConstantProvider extends BaseConstantProvider {
519
380
  return {
520
381
  type: this.SHAPES.HEXAGONAL,
521
382
  isDynamic: true,
522
- width: function(height) {
383
+ width(height: number): number {
523
384
  const halfHeight = height / 2;
524
385
  return halfHeight > maxWidth ? maxWidth : halfHeight;
525
386
  },
526
- height: function(height) {
387
+ height(height: number): number {
527
388
  return height;
528
389
  },
529
- connectionOffsetY: function(connectionHeight) {
390
+ connectionOffsetY(connectionHeight: number): number {
530
391
  return connectionHeight / 2;
531
392
  },
532
- connectionOffsetX: function(connectionWidth) {
393
+ connectionOffsetX(connectionWidth: number): number {
533
394
  return -connectionWidth;
534
395
  },
535
- pathDown: function(height) {
396
+ pathDown(height: number): string {
536
397
  return makeMainPath(height, false, false);
537
398
  },
538
- pathUp: function(height) {
399
+ pathUp(height: number): string {
539
400
  return makeMainPath(height, true, false);
540
401
  },
541
- pathRightDown: function(height) {
402
+ pathRightDown(height: number): string {
542
403
  return makeMainPath(height, false, true);
543
404
  },
544
- pathRightUp: function(height) {
405
+ pathRightUp(height: number): string {
545
406
  return makeMainPath(height, false, true);
546
407
  },
547
408
  };
@@ -549,11 +410,11 @@ class ConstantProvider extends BaseConstantProvider {
549
410
 
550
411
  /**
551
412
  * Create sizing and path information about a rounded shape.
552
- * @return {!Object} An object containing sizing and path information about
553
- * a rounded shape for connections.
554
- * @package
413
+ * @return An object containing sizing and path information about a rounded
414
+ * shape for connections.
415
+ * @internal
555
416
  */
556
- makeRounded() {
417
+ makeRounded(): Shape {
557
418
  const maxWidth = this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH;
558
419
  const maxHeight = maxWidth * 2;
559
420
 
@@ -565,14 +426,14 @@ class ConstantProvider extends BaseConstantProvider {
565
426
  * drawn in between the two arcs. The 'up' and 'down' versions of the paths
566
427
  * are the same, but the Y sign flips. The 'up' and 'right' versions of the
567
428
  * path flip the sweep-flag which moves the arc at negative angles.
568
- * @param {number} blockHeight The height of the block the connection is on.
569
- * @param {boolean} up True if the path should be drawn from bottom to top,
570
- * false otherwise.
571
- * @param {boolean} right True if the path is for the right side of the
572
- * block.
573
- * @return {string} A path fragment describing a rounded connection.
574
- */
575
- function makeMainPath(blockHeight, up, right) {
429
+ * @param blockHeight The height of the block the connection is on.
430
+ * @param up True if the path should be drawn from bottom to top, false
431
+ * otherwise.
432
+ * @param right True if the path is for the right side of the block.
433
+ * @return A path fragment describing a rounded connection.
434
+ */
435
+ function makeMainPath(
436
+ blockHeight: number, up: boolean, right: boolean): string {
576
437
  const remainingHeight =
577
438
  blockHeight > maxHeight ? blockHeight - maxHeight : 0;
578
439
  const height = blockHeight > maxHeight ? maxHeight : blockHeight;
@@ -590,29 +451,29 @@ class ConstantProvider extends BaseConstantProvider {
590
451
  return {
591
452
  type: this.SHAPES.ROUND,
592
453
  isDynamic: true,
593
- width: function(height) {
454
+ width(height: number): number {
594
455
  const halfHeight = height / 2;
595
456
  return halfHeight > maxWidth ? maxWidth : halfHeight;
596
457
  },
597
- height: function(height) {
458
+ height(height: number): number {
598
459
  return height;
599
460
  },
600
- connectionOffsetY: function(connectionHeight) {
461
+ connectionOffsetY(connectionHeight: number): number {
601
462
  return connectionHeight / 2;
602
463
  },
603
- connectionOffsetX: function(connectionWidth) {
464
+ connectionOffsetX(connectionWidth: number): number {
604
465
  return -connectionWidth;
605
466
  },
606
- pathDown: function(height) {
467
+ pathDown(height: number): string {
607
468
  return makeMainPath(height, false, false);
608
469
  },
609
- pathUp: function(height) {
470
+ pathUp(height: number): string {
610
471
  return makeMainPath(height, true, false);
611
472
  },
612
- pathRightDown: function(height) {
473
+ pathRightDown(height: number): string {
613
474
  return makeMainPath(height, false, true);
614
475
  },
615
- pathRightUp: function(height) {
476
+ pathRightUp(height: number): string {
616
477
  return makeMainPath(height, false, true);
617
478
  },
618
479
  };
@@ -620,11 +481,11 @@ class ConstantProvider extends BaseConstantProvider {
620
481
 
621
482
  /**
622
483
  * Create sizing and path information about a squared shape.
623
- * @return {!Object} An object containing sizing and path information about
624
- * a squared shape for connections.
625
- * @package
484
+ * @return An object containing sizing and path information about a squared
485
+ * shape for connections.
486
+ * @internal
626
487
  */
627
- makeSquared() {
488
+ makeSquared(): Shape {
628
489
  const radius = this.CORNER_RADIUS;
629
490
 
630
491
  /**
@@ -634,14 +495,13 @@ class ConstantProvider extends BaseConstantProvider {
634
495
  * The 'left' and 'right' versions of the paths are the same, but the Y sign
635
496
  * flips. The 'up' and 'down' versions of the path determine where the
636
497
  * corner point is placed and in turn the direction of the corners.
637
- * @param {number} height The height of the block the connection is on.
638
- * @param {boolean} up True if the path should be drawn from bottom to top,
639
- * false otherwise.
640
- * @param {boolean} right True if the path is for the right side of the
641
- * block.
642
- * @return {string} A path fragment describing a squared connection.
498
+ * @param height The height of the block the connection is on.
499
+ * @param up True if the path should be drawn from bottom to top, false
500
+ * otherwise.
501
+ * @param right True if the path is for the right side of the block.
502
+ * @return A path fragment describing a squared connection.
643
503
  */
644
- function makeMainPath(height, up, right) {
504
+ function makeMainPath(height: number, up: boolean, right: boolean): string {
645
505
  const innerHeight = height - radius * 2;
646
506
  return svgPaths.arc(
647
507
  'a', '0 0,1', radius,
@@ -656,37 +516,34 @@ class ConstantProvider extends BaseConstantProvider {
656
516
  return {
657
517
  type: this.SHAPES.SQUARE,
658
518
  isDynamic: true,
659
- width: function(_height) {
519
+ width(_height: number): number {
660
520
  return radius;
661
521
  },
662
- height: function(height) {
522
+ height(height: number): number {
663
523
  return height;
664
524
  },
665
- connectionOffsetY: function(connectionHeight) {
525
+ connectionOffsetY(connectionHeight: number): number {
666
526
  return connectionHeight / 2;
667
527
  },
668
- connectionOffsetX: function(connectionWidth) {
528
+ connectionOffsetX(connectionWidth: number): number {
669
529
  return -connectionWidth;
670
530
  },
671
- pathDown: function(height) {
531
+ pathDown(height: number): string {
672
532
  return makeMainPath(height, false, false);
673
533
  },
674
- pathUp: function(height) {
534
+ pathUp(height: number): string {
675
535
  return makeMainPath(height, true, false);
676
536
  },
677
- pathRightDown: function(height) {
537
+ pathRightDown(height: number): string {
678
538
  return makeMainPath(height, false, true);
679
539
  },
680
- pathRightUp: function(height) {
540
+ pathRightUp(height: number): string {
681
541
  return makeMainPath(height, false, true);
682
542
  },
683
543
  };
684
544
  }
685
545
 
686
- /**
687
- * @override
688
- */
689
- shapeFor(connection) {
546
+ override shapeFor(connection: RenderedConnection): Shape {
690
547
  let checks = connection.getCheck();
691
548
  if (!checks && connection.targetConnection) {
692
549
  checks = connection.targetConnection.getCheck();
@@ -700,36 +557,33 @@ class ConstantProvider extends BaseConstantProvider {
700
557
  if (outputShape !== null) {
701
558
  switch (outputShape) {
702
559
  case this.SHAPES.HEXAGONAL:
703
- return /** @type {!Object} */ (this.HEXAGONAL);
560
+ return this.HEXAGONAL!;
704
561
  case this.SHAPES.ROUND:
705
- return /** @type {!Object} */ (this.ROUNDED);
562
+ return this.ROUNDED!;
706
563
  case this.SHAPES.SQUARE:
707
- return /** @type {!Object} */ (this.SQUARED);
564
+ return this.SQUARED!;
708
565
  }
709
566
  }
710
567
  // Includes doesn't work in IE.
711
568
  if (checks && checks.indexOf('Boolean') !== -1) {
712
- return /** @type {!Object} */ (this.HEXAGONAL);
569
+ return this.HEXAGONAL!;
713
570
  }
714
571
  if (checks && checks.indexOf('Number') !== -1) {
715
- return /** @type {!Object} */ (this.ROUNDED);
572
+ return this.ROUNDED!;
716
573
  }
717
574
  if (checks && checks.indexOf('String') !== -1) {
718
- return /** @type {!Object} */ (this.ROUNDED);
575
+ return this.ROUNDED!;
719
576
  }
720
- return /** @type {!Object} */ (this.ROUNDED);
577
+ return this.ROUNDED!;
721
578
  case ConnectionType.PREVIOUS_STATEMENT:
722
579
  case ConnectionType.NEXT_STATEMENT:
723
- return this.NOTCH;
580
+ return this.NOTCH!;
724
581
  default:
725
582
  throw Error('Unknown type');
726
583
  }
727
584
  }
728
585
 
729
- /**
730
- * @override
731
- */
732
- makeNotch() {
586
+ override makeNotch() {
733
587
  const width = this.NOTCH_WIDTH;
734
588
  const height = this.NOTCH_HEIGHT;
735
589
 
@@ -741,19 +595,18 @@ class ConstantProvider extends BaseConstantProvider {
741
595
 
742
596
  /**
743
597
  * Make the main path for the notch.
744
- * @param {number} dir Direction multiplier to apply to horizontal offsets
745
- * along the path. Either 1 or -1.
746
- * @return {string} A path fragment describing a notch.
747
- */
748
- function makeMainPath(dir) {
749
- return (
750
- svgPaths.curve(
751
- 'c',
752
- [
753
- svgPaths.point(dir * curveWidth / 2, 0),
754
- svgPaths.point(dir * curveWidth * 3 / 4, quarterHeight / 2),
755
- svgPaths.point(dir * curveWidth, quarterHeight),
756
- ]) +
598
+ * @param dir Direction multiplier to apply to horizontal offsets along the
599
+ * path. Either 1 or -1.
600
+ * @return A path fragment describing a notch.
601
+ */
602
+ function makeMainPath(dir: number): string {
603
+ return svgPaths.curve(
604
+ 'c',
605
+ [
606
+ svgPaths.point(dir * curveWidth / 2, 0),
607
+ svgPaths.point(dir * curveWidth * 3 / 4, quarterHeight / 2),
608
+ svgPaths.point(dir * curveWidth, quarterHeight),
609
+ ]) +
757
610
  svgPaths.line([svgPaths.point(dir * curveWidth, halfHeight)]) +
758
611
  svgPaths.curve(
759
612
  'c',
@@ -775,7 +628,7 @@ class ConstantProvider extends BaseConstantProvider {
775
628
  svgPaths.point(dir * curveWidth / 4, -(quarterHeight / 2)),
776
629
  svgPaths.point(dir * curveWidth / 2, -quarterHeight),
777
630
  svgPaths.point(dir * curveWidth, -quarterHeight),
778
- ]));
631
+ ]);
779
632
  }
780
633
 
781
634
  const pathLeft = makeMainPath(1);
@@ -783,17 +636,14 @@ class ConstantProvider extends BaseConstantProvider {
783
636
 
784
637
  return {
785
638
  type: this.SHAPES.NOTCH,
786
- width: width,
787
- height: height,
788
- pathLeft: pathLeft,
789
- pathRight: pathRight,
639
+ width,
640
+ height,
641
+ pathLeft,
642
+ pathRight,
790
643
  };
791
644
  }
792
645
 
793
- /**
794
- * @override
795
- */
796
- makeInsideCorners() {
646
+ override makeInsideCorners() {
797
647
  const radius = this.CORNER_RADIUS;
798
648
 
799
649
  const innerTopLeftCorner =
@@ -820,30 +670,21 @@ class ConstantProvider extends BaseConstantProvider {
820
670
  };
821
671
  }
822
672
 
823
- /**
824
- * @override
825
- */
826
- generateSecondaryColour_(colour) {
673
+ override generateSecondaryColour_(colour: string) {
827
674
  return utilsColour.blend('#000', colour, 0.15) || colour;
828
675
  }
829
676
 
830
- /**
831
- * @override
832
- */
833
- generateTertiaryColour_(colour) {
677
+ override generateTertiaryColour_(colour: string) {
834
678
  return utilsColour.blend('#000', colour, 0.25) || colour;
835
679
  }
836
680
 
837
- /**
838
- * @override
839
- */
840
- createDom(svg, tagName, selector) {
681
+ override createDom(svg: SVGElement, tagName: string, selector: string) {
841
682
  super.createDom(svg, tagName, selector);
842
683
  /*
843
- <defs>
844
- ... filters go here ...
845
- </defs>
846
- */
684
+ <defs>
685
+ ... filters go here ...
686
+ </defs>
687
+ */
847
688
  const defs = dom.createSvgElement(Svg.DEFS, {}, svg);
848
689
  // Using a dilate distorts the block shape.
849
690
  // Instead use a gaussian blur, and then set all alpha to 1 with a transfer.
@@ -935,71 +776,83 @@ class ConstantProvider extends BaseConstantProvider {
935
776
  this.replacementGlowFilter_ = replacementGlowFilter;
936
777
  }
937
778
 
938
- /**
939
- * @override
940
- */
941
- getCSS_(selector) {
779
+ override getCSS_(selector: string) {
942
780
  return [
943
781
  /* eslint-disable indent */
944
782
  // Text.
945
- selector + ' .blocklyText,', selector + ' .blocklyFlyoutLabelText {',
783
+ selector + ' .blocklyText,',
784
+ selector + ' .blocklyFlyoutLabelText {',
946
785
  'font: ' + this.FIELD_TEXT_FONTWEIGHT + ' ' + this.FIELD_TEXT_FONTSIZE +
947
786
  'pt ' + this.FIELD_TEXT_FONTFAMILY + ';',
948
787
  '}',
949
788
 
950
789
  // Fields.
951
- selector + ' .blocklyText {', 'fill: #fff;', '}',
790
+ selector + ' .blocklyText {',
791
+ 'fill: #fff;',
792
+ '}',
952
793
  selector + ' .blocklyNonEditableText>rect:not(.blocklyDropdownRect),',
953
794
  selector + ' .blocklyEditableText>rect:not(.blocklyDropdownRect) {',
954
- 'fill: ' + this.FIELD_BORDER_RECT_COLOUR + ';', '}',
795
+ 'fill: ' + this.FIELD_BORDER_RECT_COLOUR + ';',
796
+ '}',
955
797
  selector + ' .blocklyNonEditableText>text,',
956
798
  selector + ' .blocklyEditableText>text,',
957
799
  selector + ' .blocklyNonEditableText>g>text,',
958
- selector + ' .blocklyEditableText>g>text {', 'fill: #575E75;', '}',
959
-
960
- // Flyout labels.
961
- selector + ' .blocklyFlyoutLabelText {', 'fill: #575E75;', '}',
800
+ selector + ' .blocklyEditableText>g>text {',
801
+ 'fill: #575E75;',
802
+ '}', // Flyout labels.
803
+ selector + ' .blocklyFlyoutLabelText {',
804
+ 'fill: #575E75;',
805
+ '}',
962
806
 
963
807
  // Bubbles.
964
- selector + ' .blocklyText.blocklyBubbleText {', 'fill: #575E75;', '}',
808
+ selector + ' .blocklyText.blocklyBubbleText {',
809
+ 'fill: #575E75;',
810
+ '}',
965
811
 
966
812
  // Editable field hover.
967
813
  selector + ' .blocklyDraggable:not(.blocklyDisabled)',
968
814
  ' .blocklyEditableText:not(.editing):hover>rect,',
969
815
  selector + ' .blocklyDraggable:not(.blocklyDisabled)',
970
816
  ' .blocklyEditableText:not(.editing):hover>.blocklyPath {',
971
- 'stroke: #fff;', 'stroke-width: 2;', '}',
817
+ 'stroke: #fff;',
818
+ 'stroke-width: 2;',
819
+ '}',
972
820
 
973
821
  // Text field input.
974
822
  selector + ' .blocklyHtmlInput {',
975
823
  'font-family: ' + this.FIELD_TEXT_FONTFAMILY + ';',
976
- 'font-weight: ' + this.FIELD_TEXT_FONTWEIGHT + ';', 'color: #575E75;',
824
+ 'font-weight: ' + this.FIELD_TEXT_FONTWEIGHT + ';',
825
+ 'color: #575E75;',
977
826
  '}',
978
827
 
979
828
  // Dropdown field.
980
- selector + ' .blocklyDropdownText {', 'fill: #fff !important;', '}',
981
- // Widget and Dropdown Div
829
+ selector + ' .blocklyDropdownText {',
830
+ 'fill: #fff !important;',
831
+ '}', // Widget and Dropdown Div
982
832
  selector + '.blocklyWidgetDiv .goog-menuitem,',
983
833
  selector + '.blocklyDropDownDiv .goog-menuitem {',
984
- 'font-family: ' + this.FIELD_TEXT_FONTFAMILY + ';', '}',
985
- selector + '.blocklyDropDownDiv .goog-menuitem-content {', 'color: #fff;',
834
+ 'font-family: ' + this.FIELD_TEXT_FONTFAMILY + ';',
835
+ '}',
836
+ selector + '.blocklyDropDownDiv .goog-menuitem-content {',
837
+ 'color: #fff;',
986
838
  '}',
987
839
 
988
840
  // Connection highlight.
989
841
  selector + ' .blocklyHighlightedConnectionPath {',
990
- 'stroke: ' + this.SELECTED_GLOW_COLOUR + ';', '}',
842
+ 'stroke: ' + this.SELECTED_GLOW_COLOUR + ';',
843
+ '}',
991
844
 
992
845
  // Disabled outline paths.
993
846
  selector + ' .blocklyDisabled > .blocklyOutlinePath {',
994
- 'fill: url(#blocklyDisabledPattern' + this.randomIdentifier + ')', '}',
847
+ 'fill: url(#blocklyDisabledPattern' + this.randomIdentifier + ')',
848
+ '}',
995
849
 
996
850
  // Insertion marker.
997
851
  selector + ' .blocklyInsertionMarker>.blocklyPath {',
998
- 'fill-opacity: ' + this.INSERTION_MARKER_OPACITY + ';', 'stroke: none;',
852
+ 'fill-opacity: ' + this.INSERTION_MARKER_OPACITY + ';',
853
+ 'stroke: none;',
999
854
  '}',
1000
- /* eslint-enable indent */
1001
855
  ];
1002
856
  }
1003
857
  }
1004
-
1005
- exports.ConstantProvider = ConstantProvider;
858
+ /* eslint-enable indent */