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,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Input } from '../../../input.js';
7
+ import type { ConstantProvider as BaseConstantProvider } from '../../../renderers/common/constants.js';
8
+ import { InlineInput as BaseInlineInput } from '../../../renderers/measurables/inline_input.js';
9
+ import type { ConstantProvider as GerasConstantProvider } from '../constants.js';
10
+ /**
11
+ * An object containing information about the space an inline input takes up
12
+ * during rendering.
13
+ * @alias Blockly.geras.InlineInput
14
+ */
15
+ export declare class InlineInput extends BaseInlineInput {
16
+ constants_: GerasConstantProvider;
17
+ /**
18
+ * @param constants The rendering constants provider.
19
+ * @param input The inline input to measure and store information for.
20
+ * @internal
21
+ */
22
+ constructor(constants: BaseConstantProvider, input: Input);
23
+ }
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview Objects representing inline inputs with connections on a
9
+ * rendered block.
10
+ */
11
+
12
+ /**
13
+ * Objects representing inline inputs with connections on a
14
+ * rendered block.
15
+ * @class
16
+ */
17
+ import * as goog from '../../../../closure/goog/goog.js';
18
+ goog.declareModuleId('Blockly.geras.InlineInput');
19
+
20
+ /* eslint-disable-next-line no-unused-vars */
21
+ import type {Input} from '../../../input.js';
22
+ import type {ConstantProvider as BaseConstantProvider} from '../../../renderers/common/constants.js';
23
+ import {InlineInput as BaseInlineInput} from '../../../renderers/measurables/inline_input.js';
24
+ import type {ConstantProvider as GerasConstantProvider} from '../constants.js';
25
+
26
+
27
+ /**
28
+ * An object containing information about the space an inline input takes up
29
+ * during rendering.
30
+ * @alias Blockly.geras.InlineInput
31
+ */
32
+ export class InlineInput extends BaseInlineInput {
33
+ override constants_: GerasConstantProvider;
34
+
35
+ /**
36
+ * @param constants The rendering constants provider.
37
+ * @param input The inline input to measure and store information for.
38
+ * @internal
39
+ */
40
+ constructor(constants: BaseConstantProvider, input: Input) {
41
+ super(constants, input);
42
+ this.constants_ = constants as GerasConstantProvider;
43
+
44
+ if (this.connectedBlock) {
45
+ // We allow the dark path to show on the parent block so that the child
46
+ // block looks embossed. This takes up an extra pixel in both x and y.
47
+ this.width += this.constants_.DARK_PATH_OFFSET;
48
+ this.height += this.constants_.DARK_PATH_OFFSET;
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Input } from '../../../input.js';
7
+ import type { ConstantProvider as BaseConstantProvider } from '../../../renderers/common/constants.js';
8
+ import { StatementInput as BaseStatementInput } from '../../../renderers/measurables/statement_input.js';
9
+ import type { ConstantProvider as GerasConstantProvider } from '../constants.js';
10
+ /**
11
+ * An object containing information about the space a statement input takes up
12
+ * during rendering.
13
+ * @alias Blockly.geras.StatementInput
14
+ */
15
+ export declare class StatementInput extends BaseStatementInput {
16
+ constants_: GerasConstantProvider;
17
+ /**
18
+ * @param constants The rendering constants provider.
19
+ * @param input The statement input to measure and store information for.
20
+ * @internal
21
+ */
22
+ constructor(constants: BaseConstantProvider, input: Input);
23
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview Objects representing statement inputs with connections on a
9
+ * rendered block.
10
+ */
11
+
12
+ /**
13
+ * Objects representing statement inputs with connections on a
14
+ * rendered block.
15
+ * @class
16
+ */
17
+ import * as goog from '../../../../closure/goog/goog.js';
18
+ goog.declareModuleId('Blockly.geras.StatementInput');
19
+
20
+ /* eslint-disable-next-line no-unused-vars */
21
+ import type {Input} from '../../../input.js';
22
+ import type {ConstantProvider as BaseConstantProvider} from '../../../renderers/common/constants.js';
23
+ import {StatementInput as BaseStatementInput} from '../../../renderers/measurables/statement_input.js';
24
+ import type {ConstantProvider as GerasConstantProvider} from '../constants.js';
25
+
26
+
27
+ /**
28
+ * An object containing information about the space a statement input takes up
29
+ * during rendering.
30
+ * @alias Blockly.geras.StatementInput
31
+ */
32
+ export class StatementInput extends BaseStatementInput {
33
+ override constants_: GerasConstantProvider;
34
+
35
+ /**
36
+ * @param constants The rendering constants provider.
37
+ * @param input The statement input to measure and store information for.
38
+ * @internal
39
+ */
40
+ constructor(constants: BaseConstantProvider, input: Input) {
41
+ super(constants, input);
42
+ this.constants_ = constants as GerasConstantProvider;
43
+
44
+ if (this.connectedBlock) {
45
+ // We allow the dark path to show on the parent block so that the child
46
+ // block looks embossed. This takes up an extra pixel in both x and y.
47
+ this.height += this.constants_.DARK_PATH_OFFSET;
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,47 @@
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 type { BlockStyle } from '../../theme.js';
8
+ import { PathObject as BasePathObject } from '../common/path_object.js';
9
+ import type { ConstantProvider } from './constants.js';
10
+ /**
11
+ * An object that handles creating and setting each of the SVG elements
12
+ * used by the renderer.
13
+ * @alias Blockly.geras.PathObject
14
+ */
15
+ export declare class PathObject extends BasePathObject {
16
+ constants: ConstantProvider;
17
+ /** @internal */
18
+ svgPathDark: SVGElement;
19
+ /** @internal */
20
+ svgPathLight: SVGElement;
21
+ /**
22
+ * The colour of the dark path on the block in '#RRGGBB' format.
23
+ * @internal
24
+ */
25
+ colourDark: string;
26
+ style: any;
27
+ /**
28
+ * @param root The root SVG element.
29
+ * @param style The style object to use for colouring.
30
+ * @param constants The renderer's constants.
31
+ * @internal
32
+ */
33
+ constructor(root: SVGElement, style: BlockStyle, constants: ConstantProvider);
34
+ setPath(mainPath: string): void;
35
+ /**
36
+ * Set the highlight path generated by the renderer onto the SVG element.
37
+ * @param highlightPath The highlight path.
38
+ * @internal
39
+ */
40
+ setHighlightPath(highlightPath: string): void;
41
+ flipRTL(): void;
42
+ applyColour(block: BlockSvg): void;
43
+ setStyle(blockStyle: BlockStyle): void;
44
+ updateHighlighted(highlighted: boolean): void;
45
+ updateShadow_(shadow: boolean): void;
46
+ updateDisabled_(disabled: boolean): void;
47
+ }
@@ -8,22 +8,25 @@
8
8
  * @fileoverview An object that owns a block's rendering SVG elements.
9
9
  */
10
10
 
11
- 'use strict';
12
-
13
11
  /**
14
12
  * An object that owns a block's rendering SVG elements.
15
13
  * @class
16
14
  */
17
- goog.module('Blockly.geras.PathObject');
15
+ import * as goog from '../../../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.geras.PathObject');
18
17
 
19
- const colour = goog.require('Blockly.utils.colour');
20
- const dom = goog.require('Blockly.utils.dom');
21
- /* eslint-disable-next-line no-unused-vars */
22
- const {ConstantProvider} = goog.requireType('Blockly.geras.ConstantProvider');
23
- const {PathObject: BasePathObject} = goog.require('Blockly.blockRendering.PathObject');
24
- const {Svg} = goog.require('Blockly.utils.Svg');
25
18
  /* eslint-disable-next-line no-unused-vars */
26
- const {Theme} = goog.requireType('Blockly.Theme');
19
+ // Unused import preserved for side-effects. Remove if unneeded.
20
+ // import '../../theme.js';
21
+
22
+ import type {BlockSvg} from '../../block_svg.js';
23
+ import type {BlockStyle} from '../../theme.js';
24
+ import * as colour from '../../utils/colour.js';
25
+ import * as dom from '../../utils/dom.js';
26
+ import {Svg} from '../../utils/svg.js';
27
+ import {PathObject as BasePathObject} from '../common/path_object.js';
28
+
29
+ import type {ConstantProvider} from './constants.js';
27
30
 
28
31
 
29
32
  /**
@@ -31,82 +34,65 @@ const {Theme} = goog.requireType('Blockly.Theme');
31
34
  * used by the renderer.
32
35
  * @alias Blockly.geras.PathObject
33
36
  */
34
- class PathObject extends BasePathObject {
37
+ export class PathObject extends BasePathObject {
38
+ /** @internal */
39
+ svgPathDark: SVGElement;
40
+ /** @internal */
41
+ svgPathLight: SVGElement;
42
+
35
43
  /**
36
- * @param {!SVGElement} root The root SVG element.
37
- * @param {!Theme.BlockStyle} style The style object to use for
38
- * colouring.
39
- * @param {!ConstantProvider} constants The renderer's constants.
40
- * @package
44
+ * The colour of the dark path on the block in '#RRGGBB' format.
45
+ * @internal
41
46
  */
42
- constructor(root, style, constants) {
47
+ colourDark = '#000000';
48
+ override style: AnyDuringMigration;
49
+
50
+ /**
51
+ * @param root The root SVG element.
52
+ * @param style The style object to use for colouring.
53
+ * @param constants The renderer's constants.
54
+ * @internal
55
+ */
56
+ constructor(
57
+ root: SVGElement, style: BlockStyle,
58
+ public override constants: ConstantProvider) {
43
59
  super(root, style, constants);
44
- /**
45
- * The renderer's constant provider.
46
- * @type {!ConstantProvider}
47
- */
48
- this.constants = constants;
49
-
50
- /**
51
- * The dark path of the block.
52
- * @type {SVGElement}
53
- * @package
54
- */
60
+
61
+ /** The dark path of the block. */
55
62
  this.svgPathDark = dom.createSvgElement(
56
63
  Svg.PATH, {'class': 'blocklyPathDark', 'transform': 'translate(1,1)'});
57
-
58
64
  // SVG draw order is based on the order of elements (top most = back most)
59
65
  // So we need to insert the dark path before the base path to make sure it
60
66
  // gets drawn first.
61
67
  this.svgRoot.insertBefore(this.svgPathDark, this.svgPath);
62
68
 
63
- /**
64
- * The light path of the block.
65
- * @type {SVGElement}
66
- * @package
67
- */
69
+ /** The light path of the block. */
68
70
  this.svgPathLight = dom.createSvgElement(
69
71
  Svg.PATH, {'class': 'blocklyPathLight'}, this.svgRoot);
70
-
71
- /**
72
- * The colour of the dark path on the block in '#RRGGBB' format.
73
- * @type {string}
74
- * @package
75
- */
76
- this.colourDark = '#000000';
77
72
  }
78
73
 
79
- /**
80
- * @override
81
- */
82
- setPath(mainPath) {
74
+ override setPath(mainPath: string) {
83
75
  this.svgPath.setAttribute('d', mainPath);
84
76
  this.svgPathDark.setAttribute('d', mainPath);
85
77
  }
86
78
 
87
79
  /**
88
80
  * Set the highlight path generated by the renderer onto the SVG element.
89
- * @param {string} highlightPath The highlight path.
90
- * @package
81
+ * @param highlightPath The highlight path.
82
+ * @internal
91
83
  */
92
- setHighlightPath(highlightPath) {
84
+ setHighlightPath(highlightPath: string) {
93
85
  this.svgPathLight.setAttribute('d', highlightPath);
94
86
  }
95
87
 
96
- /**
97
- * @override
98
- */
99
- flipRTL() {
88
+ override flipRTL() {
100
89
  // Mirror the block's path.
101
90
  this.svgPath.setAttribute('transform', 'scale(-1 1)');
102
91
  this.svgPathLight.setAttribute('transform', 'scale(-1 1)');
103
92
  this.svgPathDark.setAttribute('transform', 'translate(1,1) scale(-1 1)');
104
93
  }
105
94
 
106
- /**
107
- * @override
108
- */
109
- applyColour(block) {
95
+ override applyColour(block: BlockSvg) {
110
96
  this.svgPathLight.style.display = '';
111
97
  this.svgPathDark.style.display = '';
112
98
  this.svgPathLight.setAttribute('stroke', this.style.colourTertiary);
@@ -117,19 +103,13 @@ class PathObject extends BasePathObject {
117
103
  this.svgPath.setAttribute('stroke', 'none');
118
104
  }
119
105
 
120
- /**
121
- * @override
122
- */
123
- setStyle(blockStyle) {
106
+ override setStyle(blockStyle: BlockStyle) {
124
107
  this.style = blockStyle;
125
108
  this.colourDark =
126
109
  colour.blend('#000', this.style.colourPrimary, 0.2) || this.colourDark;
127
110
  }
128
111
 
129
- /**
130
- * @override
131
- */
132
- updateHighlighted(highlighted) {
112
+ override updateHighlighted(highlighted: boolean) {
133
113
  if (highlighted) {
134
114
  this.svgPath.setAttribute(
135
115
  'filter', 'url(#' + this.constants.embossFilterId + ')');
@@ -140,10 +120,7 @@ class PathObject extends BasePathObject {
140
120
  }
141
121
  }
142
122
 
143
- /**
144
- * @override
145
- */
146
- updateShadow_(shadow) {
123
+ override updateShadow_(shadow: boolean) {
147
124
  if (shadow) {
148
125
  this.svgPathLight.style.display = 'none';
149
126
  this.svgPathDark.setAttribute('fill', this.style.colourSecondary);
@@ -152,15 +129,10 @@ class PathObject extends BasePathObject {
152
129
  }
153
130
  }
154
131
 
155
- /**
156
- * @override
157
- */
158
- updateDisabled_(disabled) {
132
+ override updateDisabled_(disabled: boolean) {
159
133
  super.updateDisabled_(disabled);
160
134
  if (disabled) {
161
135
  this.svgPath.setAttribute('stroke', 'none');
162
136
  }
163
137
  }
164
138
  }
165
-
166
- exports.PathObject = PathObject;
@@ -0,0 +1,69 @@
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 type { BlockStyle, Theme } from '../../theme.js';
8
+ import type { RenderInfo as BaseRenderInfo } from '../common/info.js';
9
+ import { Renderer as BaseRenderer } from '../common/renderer.js';
10
+ import { ConstantProvider } from './constants.js';
11
+ import { Drawer } from './drawer.js';
12
+ import { HighlightConstantProvider } from './highlight_constants.js';
13
+ import { RenderInfo } from './info.js';
14
+ import { PathObject } from './path_object.js';
15
+ /**
16
+ * The geras renderer.
17
+ * @alias Blockly.geras.Renderer
18
+ */
19
+ export declare class Renderer extends BaseRenderer {
20
+ /** The renderer's highlight constant provider. */
21
+ private highlightConstants_;
22
+ /**
23
+ * @param name The renderer name.
24
+ * @internal
25
+ */
26
+ constructor(name: string);
27
+ /**
28
+ * Initialize the renderer. Geras has a highlight provider in addition to
29
+ * the normal constant provider.
30
+ * @internal
31
+ */
32
+ init(theme: Theme, opt_rendererOverrides: any): void;
33
+ refreshDom(svg: SVGElement, theme: Theme): void;
34
+ makeConstants_(): ConstantProvider;
35
+ /**
36
+ * Create a new instance of the renderer's render info object.
37
+ * @param block The block to measure.
38
+ * @return The render info object.
39
+ */
40
+ protected makeRenderInfo_(block: BlockSvg): RenderInfo;
41
+ /**
42
+ * Create a new instance of the renderer's drawer.
43
+ * @param block The block to render.
44
+ * @param info An object containing all information needed to render this
45
+ * block.
46
+ * @return The drawer.
47
+ */
48
+ protected makeDrawer_(block: BlockSvg, info: BaseRenderInfo): Drawer;
49
+ /**
50
+ * Create a new instance of a renderer path object.
51
+ * @param root The root SVG element.
52
+ * @param style The style object to use for colouring.
53
+ * @return The renderer path object.
54
+ * @internal
55
+ */
56
+ makePathObject(root: SVGElement, style: BlockStyle): PathObject;
57
+ /**
58
+ * Create a new instance of the renderer's highlight constant provider.
59
+ * @return The highlight constant provider.
60
+ */
61
+ protected makeHighlightConstants_(): HighlightConstantProvider;
62
+ /**
63
+ * Get the renderer's highlight constant provider. We assume that when this
64
+ * is called, the renderer has already been initialized.
65
+ * @return The highlight constant provider.
66
+ * @internal
67
+ */
68
+ getHighlightConstants(): HighlightConstantProvider;
69
+ }
@@ -0,0 +1,126 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview Geras renderer.
9
+ */
10
+
11
+ /**
12
+ * Geras renderer.
13
+ * @class
14
+ */
15
+ import * as goog from '../../../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.geras.Renderer');
17
+
18
+ /* eslint-disable-next-line no-unused-vars */
19
+ // Unused import preserved for side-effects. Remove if unneeded.
20
+ // import '../common/constants.js';
21
+
22
+ import type {BlockSvg} from '../../block_svg.js';
23
+ import type {BlockStyle, Theme} from '../../theme.js';
24
+ import * as blockRendering from '../common/block_rendering.js';
25
+ import type {RenderInfo as BaseRenderInfo} from '../common/info.js';
26
+ import {Renderer as BaseRenderer} from '../common/renderer.js';
27
+
28
+ import {ConstantProvider} from './constants.js';
29
+ import {Drawer} from './drawer.js';
30
+ import {HighlightConstantProvider} from './highlight_constants.js';
31
+ import {RenderInfo} from './info.js';
32
+ import {PathObject} from './path_object.js';
33
+
34
+
35
+ /**
36
+ * The geras renderer.
37
+ * @alias Blockly.geras.Renderer
38
+ */
39
+ export class Renderer extends BaseRenderer {
40
+ /** The renderer's highlight constant provider. */
41
+ // AnyDuringMigration because: Type 'null' is not assignable to type
42
+ // 'HighlightConstantProvider'.
43
+ private highlightConstants_: HighlightConstantProvider =
44
+ null as AnyDuringMigration;
45
+
46
+ /**
47
+ * @param name The renderer name.
48
+ * @internal
49
+ */
50
+ constructor(name: string) {
51
+ super(name);
52
+ }
53
+
54
+ /**
55
+ * Initialize the renderer. Geras has a highlight provider in addition to
56
+ * the normal constant provider.
57
+ * @internal
58
+ */
59
+ override init(theme: Theme, opt_rendererOverrides: AnyDuringMigration) {
60
+ super.init(theme, opt_rendererOverrides);
61
+ this.highlightConstants_ = this.makeHighlightConstants_();
62
+ this.highlightConstants_.init();
63
+ }
64
+
65
+ override refreshDom(svg: SVGElement, theme: Theme) {
66
+ super.refreshDom(svg, theme);
67
+ this.getHighlightConstants().init();
68
+ }
69
+
70
+ override makeConstants_() {
71
+ return new ConstantProvider();
72
+ }
73
+
74
+ /**
75
+ * Create a new instance of the renderer's render info object.
76
+ * @param block The block to measure.
77
+ * @return The render info object.
78
+ */
79
+ protected override makeRenderInfo_(block: BlockSvg): RenderInfo {
80
+ return new RenderInfo(this, block);
81
+ }
82
+
83
+ /**
84
+ * Create a new instance of the renderer's drawer.
85
+ * @param block The block to render.
86
+ * @param info An object containing all information needed to render this
87
+ * block.
88
+ * @return The drawer.
89
+ */
90
+ protected override makeDrawer_(block: BlockSvg, info: BaseRenderInfo):
91
+ Drawer {
92
+ return new Drawer(block, (info as RenderInfo));
93
+ }
94
+
95
+ /**
96
+ * Create a new instance of a renderer path object.
97
+ * @param root The root SVG element.
98
+ * @param style The style object to use for colouring.
99
+ * @return The renderer path object.
100
+ * @internal
101
+ */
102
+ override makePathObject(root: SVGElement, style: BlockStyle): PathObject {
103
+ return new PathObject(
104
+ root, style, (this.getConstants() as ConstantProvider));
105
+ }
106
+
107
+ /**
108
+ * Create a new instance of the renderer's highlight constant provider.
109
+ * @return The highlight constant provider.
110
+ */
111
+ protected makeHighlightConstants_(): HighlightConstantProvider {
112
+ return new HighlightConstantProvider((this.getConstants()));
113
+ }
114
+
115
+ /**
116
+ * Get the renderer's highlight constant provider. We assume that when this
117
+ * is called, the renderer has already been initialized.
118
+ * @return The highlight constant provider.
119
+ * @internal
120
+ */
121
+ getHighlightConstants(): HighlightConstantProvider {
122
+ return this.highlightConstants_;
123
+ }
124
+ }
125
+
126
+ blockRendering.register('geras', Renderer);
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { ConstantProvider } from '../common/constants.js';
7
+ /**
8
+ * The base class to represent a part of a block that takes up space during
9
+ * rendering. The constructor for each non-spacer Measurable records the size
10
+ * of the block element (e.g. field, statement input).
11
+ * @alias Blockly.blockRendering.Measurable
12
+ */
13
+ export declare class Measurable {
14
+ width: number;
15
+ height: number;
16
+ type: number;
17
+ xPos: number;
18
+ centerline: number;
19
+ notchOffset: number;
20
+ /** The renderer's constant provider. */
21
+ protected readonly constants_: ConstantProvider;
22
+ /**
23
+ * @param constants The rendering constants provider.
24
+ * @internal
25
+ */
26
+ constructor(constants: ConstantProvider);
27
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview Methods for graphically rendering a block as SVG.
9
+ */
10
+
11
+ /**
12
+ * Methods for graphically rendering a block as SVG.
13
+ * @class
14
+ */
15
+ import * as goog from '../../../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.blockRendering.Measurable');
17
+
18
+ import type {ConstantProvider} from '../common/constants.js';
19
+
20
+ import {Types} from './types.js';
21
+
22
+
23
+ /**
24
+ * The base class to represent a part of a block that takes up space during
25
+ * rendering. The constructor for each non-spacer Measurable records the size
26
+ * of the block element (e.g. field, statement input).
27
+ * @alias Blockly.blockRendering.Measurable
28
+ */
29
+ export class Measurable {
30
+ width: number = 0;
31
+
32
+ height: number = 0;
33
+ type: number;
34
+ xPos = 0;
35
+
36
+ centerline = 0;
37
+ notchOffset: number;
38
+
39
+ /** The renderer's constant provider. */
40
+ protected readonly constants_: ConstantProvider
41
+
42
+ /**
43
+ * @param constants The rendering constants provider.
44
+ * @internal
45
+ */
46
+ constructor(constants: ConstantProvider) {
47
+ this.constants_ = constants;
48
+
49
+ this.type = Types.NONE;
50
+
51
+ this.notchOffset = this.constants_.NOTCH_OFFSET_LEFT;
52
+ }
53
+ }