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
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { BlockSvg } from '../../block_svg.js';
7
+ import { RenderInfo as BaseRenderInfo } from '../common/info.js';
8
+ import type { Measurable } from '../measurables/base.js';
9
+ import type { Row } from '../measurables/row.js';
10
+ import type { Renderer } from './renderer.js';
11
+ /**
12
+ * An object containing all sizing information needed to draw this block.
13
+ *
14
+ * This measure pass does not propagate changes to the block (although fields
15
+ * may choose to rerender when getSize() is called). However, calling it
16
+ * repeatedly may be expensive.
17
+ * @alias Blockly.thrasos.RenderInfo
18
+ */
19
+ export declare class RenderInfo extends BaseRenderInfo {
20
+ widthWithChildren: any;
21
+ height: any;
22
+ startY: any;
23
+ /**
24
+ * @param renderer The renderer in use.
25
+ * @param block The block to measure.
26
+ * @internal
27
+ */
28
+ constructor(renderer: Renderer, block: BlockSvg);
29
+ /**
30
+ * Get the block renderer in use.
31
+ * @return The block renderer in use.
32
+ * @internal
33
+ */
34
+ getRenderer(): Renderer;
35
+ addElemSpacing_(): void;
36
+ getInRowSpacing_(prev: Measurable | null, next: Measurable | null): number;
37
+ getSpacerRowHeight_(prev: Row, next: Row): number;
38
+ getElemCenterline_(row: Row, elem: Measurable): number;
39
+ finalize_(): void;
40
+ }
@@ -8,28 +8,26 @@
8
8
  * @fileoverview New (evolving) renderer.
9
9
  * Thrasos: spirit of boldness.
10
10
  */
11
- 'use strict';
12
11
 
13
12
  /**
14
13
  * New (evolving) renderer.
15
14
  * Thrasos: spirit of boldness.
16
15
  * @class
17
16
  */
18
- goog.module('Blockly.thrasos.RenderInfo');
17
+ import * as goog from '../../../closure/goog/goog.js';
18
+ goog.declareModuleId('Blockly.thrasos.RenderInfo');
19
19
 
20
- /* eslint-disable-next-line no-unused-vars */
21
- const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
22
- /* eslint-disable-next-line no-unused-vars */
23
- const {BottomRow} = goog.requireType('Blockly.blockRendering.BottomRow');
24
- /* eslint-disable-next-line no-unused-vars */
25
- const {Field} = goog.requireType('Blockly.blockRendering.Field');
26
- const {InRowSpacer} = goog.require('Blockly.blockRendering.InRowSpacer');
27
- const {RenderInfo: BaseRenderInfo} = goog.require('Blockly.blockRendering.RenderInfo');
28
- /* eslint-disable-next-line no-unused-vars */
29
- const {Renderer} = goog.requireType('Blockly.thrasos.Renderer');
30
- /* eslint-disable-next-line no-unused-vars */
31
- const {TopRow} = goog.requireType('Blockly.blockRendering.TopRow');
32
- const {Types} = goog.require('Blockly.blockRendering.Types');
20
+ import type {BlockSvg} from '../../block_svg.js';
21
+ import {RenderInfo as BaseRenderInfo} from '../common/info.js';
22
+ import type {Measurable} from '../measurables/base.js';
23
+ import type {BottomRow} from '../measurables/bottom_row.js';
24
+ import type {Field} from '../measurables/field.js';
25
+ import {InRowSpacer} from '../measurables/in_row_spacer.js';
26
+ import type {Row} from '../measurables/row.js';
27
+ import type {TopRow} from '../measurables/top_row.js';
28
+ import {Types} from '../measurables/types.js';
29
+
30
+ import type {Renderer} from './renderer.js';
33
31
 
34
32
 
35
33
  /**
@@ -38,32 +36,34 @@ const {Types} = goog.require('Blockly.blockRendering.Types');
38
36
  * This measure pass does not propagate changes to the block (although fields
39
37
  * may choose to rerender when getSize() is called). However, calling it
40
38
  * repeatedly may be expensive.
41
- * @extends {BaseRenderInfo}
42
39
  * @alias Blockly.thrasos.RenderInfo
43
40
  */
44
- class RenderInfo extends BaseRenderInfo {
41
+ export class RenderInfo extends BaseRenderInfo {
42
+ override widthWithChildren: AnyDuringMigration;
43
+ override height: AnyDuringMigration;
44
+ override startY: AnyDuringMigration;
45
+
45
46
  /**
46
- * @param {!Renderer} renderer The renderer in use.
47
- * @param {!BlockSvg} block The block to measure.
48
- * @package
47
+ * @param renderer The renderer in use.
48
+ * @param block The block to measure.
49
+ * @internal
49
50
  */
50
- constructor(renderer, block) {
51
+ constructor(renderer: Renderer, block: BlockSvg) {
51
52
  super(renderer, block);
52
53
  }
53
54
 
54
55
  /**
55
56
  * Get the block renderer in use.
56
- * @return {!Renderer} The block renderer in use.
57
- * @package
57
+ * @return The block renderer in use.
58
+ * @internal
58
59
  */
59
- getRenderer() {
60
- return /** @type {!Renderer} */ (this.renderer_);
60
+ override getRenderer(): Renderer {
61
+ // AnyDuringMigration because: Property 'renderer_' does not exist on type
62
+ // 'RenderInfo'.
63
+ return (this as AnyDuringMigration).renderer_ as Renderer;
61
64
  }
62
65
 
63
- /**
64
- * @override
65
- */
66
- addElemSpacing_() {
66
+ override addElemSpacing_() {
67
67
  let hasExternalInputs = false;
68
68
  for (let i = 0; i < this.rows.length; i++) {
69
69
  const row = this.rows[i];
@@ -82,6 +82,9 @@ class RenderInfo extends BaseRenderInfo {
82
82
  row.elements.push(new InRowSpacer(
83
83
  this.constants_, this.getInRowSpacing_(null, oldElems[0])));
84
84
  }
85
+ if (!oldElems.length) {
86
+ continue;
87
+ }
85
88
  for (let e = 0; e < oldElems.length - 1; e++) {
86
89
  row.elements.push(oldElems[e]);
87
90
  const spacing = this.getInRowSpacing_(oldElems[e], oldElems[e + 1]);
@@ -100,14 +103,10 @@ class RenderInfo extends BaseRenderInfo {
100
103
  }
101
104
  }
102
105
 
103
- /**
104
- * @override
105
- */
106
- getInRowSpacing_(prev, next) {
106
+ override getInRowSpacing_(prev: Measurable|null, next: Measurable|null) {
107
107
  if (!prev) {
108
108
  // Between an editable field and the beginning of the row.
109
- if (next && Types.isField(next) &&
110
- (/** @type {Field} */ (next)).isEditable) {
109
+ if (next && Types.isField(next) && (next as Field).isEditable) {
111
110
  return this.constants_.MEDIUM_PADDING;
112
111
  }
113
112
  // Inline input at the beginning of the row.
@@ -124,19 +123,23 @@ class RenderInfo extends BaseRenderInfo {
124
123
  // Spacing between a non-input and the end of the row.
125
124
  if (!Types.isInput(prev) && !next) {
126
125
  // Between an editable field and the end of the row.
127
- if (Types.isField(prev) && (/** @type {Field} */ (prev)).isEditable) {
126
+ if (Types.isField(prev) && (prev as Field).isEditable) {
128
127
  return this.constants_.MEDIUM_PADDING;
129
128
  }
130
129
  // Padding at the end of an icon-only row to make the block shape clearer.
131
130
  if (Types.isIcon(prev)) {
132
- return (this.constants_.LARGE_PADDING * 2) + 1;
131
+ return this.constants_.LARGE_PADDING * 2 + 1;
133
132
  }
134
- if (Types.isHat(prev)) {
133
+ // AnyDuringMigration because: Property 'isHat' does not exist on type
134
+ // 'typeof Types'.
135
+ if ((Types as AnyDuringMigration).isHat(prev)) {
135
136
  return this.constants_.NO_PADDING;
136
137
  }
137
138
  // Establish a minimum width for a block with a previous or next
138
139
  // connection.
139
- if (Types.isPreviousOrNextConnection(prev)) {
140
+ // AnyDuringMigration because: Property 'isPreviousOrNextConnection' does
141
+ // not exist on type 'typeof Types'.
142
+ if ((Types as AnyDuringMigration).isPreviousOrNextConnection(prev)) {
140
143
  return this.constants_.LARGE_PADDING;
141
144
  }
142
145
  // Between rounded corner and the end of the row.
@@ -150,10 +153,11 @@ class RenderInfo extends BaseRenderInfo {
150
153
  // Between noneditable fields and icons and the end of the row.
151
154
  return this.constants_.LARGE_PADDING;
152
155
  }
153
-
154
156
  // Between inputs and the end of the row.
155
157
  if (Types.isInput(prev) && !next) {
156
- if (Types.isExternalInput(prev)) {
158
+ // AnyDuringMigration because: Property 'isExternalInput' does not exist
159
+ // on type 'typeof Types'.
160
+ if ((Types as AnyDuringMigration).isExternalInput(prev)) {
157
161
  return this.constants_.NO_PADDING;
158
162
  } else if (Types.isInlineInput(prev)) {
159
163
  return this.constants_.LARGE_PADDING;
@@ -165,16 +169,20 @@ class RenderInfo extends BaseRenderInfo {
165
169
  // Spacing between a non-input and an input.
166
170
  if (!Types.isInput(prev) && next && Types.isInput(next)) {
167
171
  // Between an editable field and an input.
168
- if (Types.isField(prev) && (/** @type {Field} */ (prev)).isEditable) {
172
+ if (Types.isField(prev) && (prev as Field).isEditable) {
169
173
  if (Types.isInlineInput(next)) {
170
174
  return this.constants_.SMALL_PADDING;
171
- } else if (Types.isExternalInput(next)) {
175
+ // AnyDuringMigration because: Property 'isExternalInput' does not
176
+ // exist on type 'typeof Types'.
177
+ } else if ((Types as AnyDuringMigration).isExternalInput(next)) {
172
178
  return this.constants_.SMALL_PADDING;
173
179
  }
174
180
  } else {
175
181
  if (Types.isInlineInput(next)) {
176
182
  return this.constants_.MEDIUM_LARGE_PADDING;
177
- } else if (Types.isExternalInput(next)) {
183
+ // AnyDuringMigration because: Property 'isExternalInput' does not
184
+ // exist on type 'typeof Types'.
185
+ } else if ((Types as AnyDuringMigration).isExternalInput(next)) {
178
186
  return this.constants_.MEDIUM_LARGE_PADDING;
179
187
  } else if (Types.isStatementInput(next)) {
180
188
  return this.constants_.LARGE_PADDING;
@@ -191,7 +199,7 @@ class RenderInfo extends BaseRenderInfo {
191
199
  // Spacing between an inline input and a field.
192
200
  if (Types.isInlineInput(prev) && next && Types.isField(next)) {
193
201
  // Editable field after inline input.
194
- if ((/** @type {Field} */ (next)).isEditable) {
202
+ if ((next as Field).isEditable) {
195
203
  return this.constants_.MEDIUM_PADDING;
196
204
  } else {
197
205
  // Noneditable field after inline input.
@@ -201,7 +209,9 @@ class RenderInfo extends BaseRenderInfo {
201
209
 
202
210
  if (Types.isLeftSquareCorner(prev) && next) {
203
211
  // Spacing between a hat and a corner
204
- if (Types.isHat(next)) {
212
+ // AnyDuringMigration because: Property 'isHat' does not exist on type
213
+ // 'typeof Types'.
214
+ if ((Types as AnyDuringMigration).isHat(next)) {
205
215
  return this.constants_.NO_PADDING;
206
216
  }
207
217
  // Spacing between a square corner and a previous or next connection
@@ -209,7 +219,6 @@ class RenderInfo extends BaseRenderInfo {
209
219
  return next.notchOffset;
210
220
  }
211
221
  }
212
-
213
222
  // Spacing between a rounded corner and a previous or next connection.
214
223
  if (Types.isLeftRoundedCorner(prev) && next) {
215
224
  return next.notchOffset - this.constants_.CORNER_RADIUS;
@@ -217,8 +226,7 @@ class RenderInfo extends BaseRenderInfo {
217
226
 
218
227
  // Spacing between two fields of the same editability.
219
228
  if (Types.isField(prev) && next && Types.isField(next) &&
220
- ((/** @type {Field} */ (prev)).isEditable ===
221
- (/** @type {Field} */ (next)).isEditable)) {
229
+ (prev as Field).isEditable === (next as Field).isEditable) {
222
230
  return this.constants_.LARGE_PADDING;
223
231
  }
224
232
 
@@ -230,10 +238,7 @@ class RenderInfo extends BaseRenderInfo {
230
238
  return this.constants_.MEDIUM_PADDING;
231
239
  }
232
240
 
233
- /**
234
- * @override
235
- */
236
- getSpacerRowHeight_(prev, next) {
241
+ override getSpacerRowHeight_(prev: Row, next: Row) {
237
242
  // If we have an empty block add a spacer to increase the height.
238
243
  if (Types.isTopRow(prev) && Types.isBottomRow(next)) {
239
244
  return this.constants_.EMPTY_BLOCK_SPACER_HEIGHT;
@@ -257,15 +262,12 @@ class RenderInfo extends BaseRenderInfo {
257
262
  return this.constants_.MEDIUM_PADDING;
258
263
  }
259
264
 
260
- /**
261
- * @override
262
- */
263
- getElemCenterline_(row, elem) {
265
+ override getElemCenterline_(row: Row, elem: Measurable) {
264
266
  if (Types.isSpacer(elem)) {
265
267
  return row.yPos + elem.height / 2;
266
268
  }
267
269
  if (Types.isBottomRow(row)) {
268
- const bottomRow = /** @type {!BottomRow} */ (row);
270
+ const bottomRow = row as BottomRow;
269
271
  const baseline =
270
272
  bottomRow.yPos + bottomRow.height - bottomRow.descenderHeight;
271
273
  if (Types.isNextConnection(elem)) {
@@ -274,8 +276,10 @@ class RenderInfo extends BaseRenderInfo {
274
276
  return baseline - elem.height / 2;
275
277
  }
276
278
  if (Types.isTopRow(row)) {
277
- const topRow = /** @type {!TopRow} */ (row);
278
- if (Types.isHat(elem)) {
279
+ const topRow = row as TopRow;
280
+ // AnyDuringMigration because: Property 'isHat' does not exist on type
281
+ // 'typeof Types'.
282
+ if ((Types as AnyDuringMigration).isHat(elem)) {
279
283
  return topRow.capline - elem.height / 2;
280
284
  }
281
285
  return topRow.capline + elem.height / 2;
@@ -287,15 +291,12 @@ class RenderInfo extends BaseRenderInfo {
287
291
  this.constants_.TALL_INPUT_FIELD_OFFSET_Y + elem.height / 2;
288
292
  result += offset;
289
293
  } else {
290
- result += (row.height / 2);
294
+ result += row.height / 2;
291
295
  }
292
296
  return result;
293
297
  }
294
298
 
295
- /**
296
- * @override
297
- */
298
- finalize_() {
299
+ override finalize_() {
299
300
  // Performance note: this could be combined with the draw pass, if the time
300
301
  // that this takes is excessive. But it shouldn't be, because it only
301
302
  // accesses and sets properties that already exist on the objects.
@@ -335,5 +336,3 @@ class RenderInfo extends BaseRenderInfo {
335
336
  this.startY = this.topRow.capline;
336
337
  }
337
338
  }
338
-
339
- exports.RenderInfo = RenderInfo;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { BlockSvg } from '../../block_svg.js';
7
+ import { Renderer as BaseRenderer } from '../common/renderer.js';
8
+ import { RenderInfo } from './info.js';
9
+ /**
10
+ * The thrasos renderer.
11
+ * @alias Blockly.thrasos.Renderer
12
+ */
13
+ export declare class Renderer extends BaseRenderer {
14
+ /**
15
+ * @param name The renderer name.
16
+ * @internal
17
+ */
18
+ constructor(name: string);
19
+ /**
20
+ * Create a new instance of the renderer's render info object.
21
+ * @param block The block to measure.
22
+ * @return The render info object.
23
+ */
24
+ protected makeRenderInfo_(block: BlockSvg): RenderInfo;
25
+ }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview Thrasos renderer.
9
+ */
10
+
11
+ /**
12
+ * Thrasos renderer.
13
+ * @class
14
+ */
15
+ import * as goog from '../../../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.thrasos.Renderer');
17
+
18
+ import type {BlockSvg} from '../../block_svg.js';
19
+ import * as blockRendering from '../common/block_rendering.js';
20
+ import {Renderer as BaseRenderer} from '../common/renderer.js';
21
+
22
+ import {RenderInfo} from './info.js';
23
+
24
+
25
+ /**
26
+ * The thrasos renderer.
27
+ * @alias Blockly.thrasos.Renderer
28
+ */
29
+ export class Renderer extends BaseRenderer {
30
+ /**
31
+ * @param name The renderer name.
32
+ * @internal
33
+ */
34
+ constructor(name: string) {
35
+ super(name);
36
+ }
37
+
38
+ /**
39
+ * Create a new instance of the renderer's render info object.
40
+ * @param block The block to measure.
41
+ * @return The render info object.
42
+ */
43
+ protected override makeRenderInfo_(block: BlockSvg): RenderInfo {
44
+ return new RenderInfo(this, block);
45
+ }
46
+ }
47
+
48
+ blockRendering.register('thrasos', Renderer);
@@ -0,0 +1,4 @@
1
+ /** @fileoverview Re-exports of Blockly.thrasos.* modules. */
2
+ import { RenderInfo } from './info.js';
3
+ import { Renderer } from './renderer.js';
4
+ export { Renderer, RenderInfo };
@@ -0,0 +1,20 @@
1
+ /** @fileoverview Re-exports of Blockly.thrasos.* modules. */
2
+
3
+ /**
4
+ * @license
5
+ * Copyright 2021 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+
9
+ /**
10
+ * Re-exports of Blockly.thrasos.* modules.
11
+ * @namespace Blockly.thrasos
12
+ */
13
+ import * as goog from '../../../closure/goog/goog.js';
14
+ goog.declareModuleId('Blockly.thrasos');
15
+
16
+ import {RenderInfo} from './info.js';
17
+ import {Renderer} from './renderer.js';
18
+
19
+
20
+ export {Renderer, RenderInfo};
@@ -0,0 +1,186 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { RenderedConnection } from '../../rendered_connection.js';
7
+ import type { Theme } from '../../theme.js';
8
+ import { ConstantProvider as BaseConstantProvider } from '../common/constants.js';
9
+ import type { Shape } from '../common/constants.js';
10
+ /** An object containing sizing and path information about inside corners. */
11
+ export interface InsideCorners {
12
+ width: number;
13
+ height: number;
14
+ pathTop: string;
15
+ pathBottom: string;
16
+ rightWidth: number;
17
+ rightHeight: number;
18
+ pathTopRight: string;
19
+ pathBottomRight: string;
20
+ }
21
+ /**
22
+ * An object that provides constants for rendering blocks in Zelos mode.
23
+ * @alias Blockly.zelos.ConstantProvider
24
+ */
25
+ export declare class ConstantProvider extends BaseConstantProvider {
26
+ GRID_UNIT: number;
27
+ SMALL_PADDING: any;
28
+ MEDIUM_PADDING: any;
29
+ MEDIUM_LARGE_PADDING: any;
30
+ LARGE_PADDING: any;
31
+ CORNER_RADIUS: any;
32
+ NOTCH_WIDTH: any;
33
+ NOTCH_HEIGHT: any;
34
+ NOTCH_OFFSET_LEFT: any;
35
+ STATEMENT_INPUT_NOTCH_OFFSET: any;
36
+ MIN_BLOCK_WIDTH: any;
37
+ MIN_BLOCK_HEIGHT: any;
38
+ EMPTY_STATEMENT_INPUT_HEIGHT: any;
39
+ TAB_OFFSET_FROM_TOP: number;
40
+ TOP_ROW_MIN_HEIGHT: any;
41
+ TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT: any;
42
+ BOTTOM_ROW_MIN_HEIGHT: any;
43
+ BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT: any;
44
+ STATEMENT_BOTTOM_SPACER: any;
45
+ STATEMENT_INPUT_SPACER_MIN_WIDTH: number;
46
+ STATEMENT_INPUT_PADDING_LEFT: any;
47
+ EMPTY_INLINE_INPUT_PADDING: any;
48
+ EMPTY_INLINE_INPUT_HEIGHT: any;
49
+ DUMMY_INPUT_MIN_HEIGHT: any;
50
+ DUMMY_INPUT_SHADOW_MIN_HEIGHT: any;
51
+ CURSOR_WS_WIDTH: any;
52
+ CURSOR_COLOUR: string;
53
+ /**
54
+ * Radius of the cursor for input and output connections.
55
+ * @internal
56
+ */
57
+ CURSOR_RADIUS: number;
58
+ JAGGED_TEETH_HEIGHT: number;
59
+ JAGGED_TEETH_WIDTH: number;
60
+ START_HAT_HEIGHT: number;
61
+ START_HAT_WIDTH: number;
62
+ SHAPES: {
63
+ HEXAGONAL: number;
64
+ ROUND: number;
65
+ SQUARE: number;
66
+ PUZZLE: number;
67
+ NOTCH: number;
68
+ };
69
+ SHAPE_IN_SHAPE_PADDING: any;
70
+ FULL_BLOCK_FIELDS: boolean;
71
+ FIELD_TEXT_FONTSIZE: any;
72
+ FIELD_TEXT_FONTWEIGHT: string;
73
+ FIELD_TEXT_FONTFAMILY: string;
74
+ FIELD_BORDER_RECT_RADIUS: any;
75
+ FIELD_BORDER_RECT_X_PADDING: any;
76
+ FIELD_BORDER_RECT_Y_PADDING: any;
77
+ FIELD_BORDER_RECT_HEIGHT: any;
78
+ FIELD_DROPDOWN_BORDER_RECT_HEIGHT: any;
79
+ FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW: boolean;
80
+ FIELD_DROPDOWN_COLOURED_DIV: boolean;
81
+ FIELD_DROPDOWN_SVG_ARROW: boolean;
82
+ FIELD_DROPDOWN_SVG_ARROW_PADDING: any;
83
+ FIELD_TEXTINPUT_BOX_SHADOW: boolean;
84
+ FIELD_COLOUR_FULL_BLOCK: boolean;
85
+ FIELD_COLOUR_DEFAULT_WIDTH: any;
86
+ FIELD_COLOUR_DEFAULT_HEIGHT: any;
87
+ FIELD_CHECKBOX_X_OFFSET: any;
88
+ MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH: number;
89
+ /** The selected glow colour. */
90
+ SELECTED_GLOW_COLOUR: string;
91
+ /** The size of the selected glow. */
92
+ SELECTED_GLOW_SIZE: number;
93
+ /** The replacement glow colour. */
94
+ REPLACEMENT_GLOW_COLOUR: string;
95
+ /** The size of the selected glow. */
96
+ REPLACEMENT_GLOW_SIZE: number;
97
+ /**
98
+ * The ID of the selected glow filter, or the empty string if no filter is
99
+ * set.
100
+ * @internal
101
+ */
102
+ selectedGlowFilterId: string;
103
+ /**
104
+ * The <filter> element to use for a selected glow, or null if not set.
105
+ */
106
+ private selectedGlowFilter_;
107
+ /**
108
+ * The ID of the replacement glow filter, or the empty string if no filter
109
+ * is set.
110
+ * @internal
111
+ */
112
+ replacementGlowFilterId: string;
113
+ /**
114
+ * The <filter> element to use for a replacement glow, or null if not set.
115
+ */
116
+ private replacementGlowFilter_;
117
+ /**
118
+ * The object containing information about the hexagon used for a boolean
119
+ * reporter block. Null before init is called.
120
+ */
121
+ HEXAGONAL: Shape | null;
122
+ /**
123
+ * The object containing information about the hexagon used for a number or
124
+ * string reporter block. Null before init is called.
125
+ */
126
+ ROUNDED: Shape | null;
127
+ /**
128
+ * The object containing information about the hexagon used for a
129
+ * rectangular reporter block. Null before init is called.
130
+ */
131
+ SQUARED: Shape | null;
132
+ /** @internal */
133
+ constructor();
134
+ setFontConstants_(theme: Theme): void;
135
+ init(): void;
136
+ setDynamicProperties_(theme: Theme): void;
137
+ dispose(): void;
138
+ makeStartHat(): {
139
+ height: number;
140
+ width: number;
141
+ path: string;
142
+ };
143
+ /**
144
+ * Create sizing and path information about a hexagonal shape.
145
+ * @return An object containing sizing and path information about a hexagonal
146
+ * shape for connections.
147
+ * @internal
148
+ */
149
+ makeHexagonal(): Shape;
150
+ /**
151
+ * Create sizing and path information about a rounded shape.
152
+ * @return An object containing sizing and path information about a rounded
153
+ * shape for connections.
154
+ * @internal
155
+ */
156
+ makeRounded(): Shape;
157
+ /**
158
+ * Create sizing and path information about a squared shape.
159
+ * @return An object containing sizing and path information about a squared
160
+ * shape for connections.
161
+ * @internal
162
+ */
163
+ makeSquared(): Shape;
164
+ shapeFor(connection: RenderedConnection): Shape;
165
+ makeNotch(): {
166
+ type: number;
167
+ width: any;
168
+ height: any;
169
+ pathLeft: string;
170
+ pathRight: string;
171
+ };
172
+ makeInsideCorners(): {
173
+ width: any;
174
+ height: any;
175
+ pathTop: string;
176
+ pathBottom: string;
177
+ rightWidth: any;
178
+ rightHeight: any;
179
+ pathTopRight: string;
180
+ pathBottomRight: string;
181
+ };
182
+ generateSecondaryColour_(colour: string): string;
183
+ generateTertiaryColour_(colour: string): string;
184
+ createDom(svg: SVGElement, tagName: string, selector: string): void;
185
+ getCSS_(selector: string): string[];
186
+ }