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
@@ -1,283 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2019 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview An object that owns a block's rendering SVG elements.
9
- */
10
-
11
- 'use strict';
12
-
13
- /**
14
- * An object that owns a block's rendering SVG elements.
15
- * @class
16
- */
17
- goog.module('Blockly.blockRendering.PathObject');
18
-
19
- const dom = goog.require('Blockly.utils.dom');
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 {Connection} = goog.requireType('Blockly.Connection');
24
- /* eslint-disable-next-line no-unused-vars */
25
- const {ConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProvider');
26
- /* eslint-disable-next-line no-unused-vars */
27
- const {IPathObject} = goog.require('Blockly.blockRendering.IPathObject');
28
- const {Svg} = goog.require('Blockly.utils.Svg');
29
- /* eslint-disable-next-line no-unused-vars */
30
- const {Theme} = goog.requireType('Blockly.Theme');
31
-
32
-
33
- /**
34
- * An object that handles creating and setting each of the SVG elements
35
- * used by the renderer.
36
- * @implements {IPathObject}
37
- * @alias Blockly.blockRendering.PathObject
38
- */
39
- class PathObject {
40
- /**
41
- * @param {!SVGElement} root The root SVG element.
42
- * @param {!Theme.BlockStyle} style The style object to use for
43
- * colouring.
44
- * @param {!ConstantProvider} constants The renderer's
45
- * constants.
46
- * @package
47
- */
48
- constructor(root, style, constants) {
49
- /**
50
- * The renderer's constant provider.
51
- * @type {!ConstantProvider}
52
- * @package
53
- */
54
- this.constants = constants;
55
-
56
- this.svgRoot = root;
57
-
58
- /**
59
- * The primary path of the block.
60
- * @type {!SVGElement}
61
- * @package
62
- */
63
- this.svgPath =
64
- dom.createSvgElement(Svg.PATH, {'class': 'blocklyPath'}, this.svgRoot);
65
-
66
- /**
67
- * The style object to use when colouring block paths.
68
- * @type {!Theme.BlockStyle}
69
- * @package
70
- */
71
- this.style = style;
72
-
73
- /**
74
- * Holds the cursors svg element when the cursor is attached to the block.
75
- * This is null if there is no cursor on the block.
76
- * @type {SVGElement}
77
- * @package
78
- */
79
- this.cursorSvg = null;
80
-
81
- /**
82
- * Holds the markers svg element when the marker is attached to the block.
83
- * This is null if there is no marker on the block.
84
- * @type {SVGElement}
85
- * @package
86
- */
87
- this.markerSvg = null;
88
- }
89
-
90
- /**
91
- * Set the path generated by the renderer onto the respective SVG element.
92
- * @param {string} pathString The path.
93
- * @package
94
- */
95
- setPath(pathString) {
96
- this.svgPath.setAttribute('d', pathString);
97
- }
98
-
99
- /**
100
- * Flip the SVG paths in RTL.
101
- * @package
102
- */
103
- flipRTL() {
104
- // Mirror the block's path.
105
- this.svgPath.setAttribute('transform', 'scale(-1 1)');
106
- }
107
-
108
- /**
109
- * Add the cursor SVG to this block's SVG group.
110
- * @param {SVGElement} cursorSvg The SVG root of the cursor to be added to the
111
- * block SVG group.
112
- * @package
113
- */
114
- setCursorSvg(cursorSvg) {
115
- if (!cursorSvg) {
116
- this.cursorSvg = null;
117
- return;
118
- }
119
-
120
- this.svgRoot.appendChild(cursorSvg);
121
- this.cursorSvg = cursorSvg;
122
- }
123
-
124
- /**
125
- * Add the marker SVG to this block's SVG group.
126
- * @param {SVGElement} markerSvg The SVG root of the marker to be added to the
127
- * block SVG group.
128
- * @package
129
- */
130
- setMarkerSvg(markerSvg) {
131
- if (!markerSvg) {
132
- this.markerSvg = null;
133
- return;
134
- }
135
-
136
- if (this.cursorSvg) {
137
- this.svgRoot.insertBefore(markerSvg, this.cursorSvg);
138
- } else {
139
- this.svgRoot.appendChild(markerSvg);
140
- }
141
- this.markerSvg = markerSvg;
142
- }
143
-
144
- /**
145
- * Apply the stored colours to the block's path, taking into account whether
146
- * the paths belong to a shadow block.
147
- * @param {!BlockSvg} block The source block.
148
- * @package
149
- */
150
- applyColour(block) {
151
- this.svgPath.setAttribute('stroke', this.style.colourTertiary);
152
- this.svgPath.setAttribute('fill', this.style.colourPrimary);
153
-
154
- this.updateShadow_(block.isShadow());
155
- this.updateDisabled_(!block.isEnabled() || block.getInheritedDisabled());
156
- }
157
-
158
- /**
159
- * Set the style.
160
- * @param {!Theme.BlockStyle} blockStyle The block style to use.
161
- * @package
162
- */
163
- setStyle(blockStyle) {
164
- this.style = blockStyle;
165
- }
166
-
167
- /**
168
- * Add or remove the given CSS class on the path object's root SVG element.
169
- * @param {string} className The name of the class to add or remove
170
- * @param {boolean} add True if the class should be added. False if it should
171
- * be removed.
172
- * @protected
173
- */
174
- setClass_(className, add) {
175
- if (add) {
176
- dom.addClass(/** @type {!Element} */ (this.svgRoot), className);
177
- } else {
178
- dom.removeClass(/** @type {!Element} */ (this.svgRoot), className);
179
- }
180
- }
181
-
182
- /**
183
- * Set whether the block shows a highlight or not. Block highlighting is
184
- * often used to visually mark blocks currently being executed.
185
- * @param {boolean} enable True if highlighted.
186
- * @package
187
- */
188
- updateHighlighted(enable) {
189
- if (enable) {
190
- this.svgPath.setAttribute(
191
- 'filter', 'url(#' + this.constants.embossFilterId + ')');
192
- } else {
193
- this.svgPath.setAttribute('filter', 'none');
194
- }
195
- }
196
-
197
- /**
198
- * Updates the look of the block to reflect a shadow state.
199
- * @param {boolean} shadow True if the block is a shadow block.
200
- * @protected
201
- */
202
- updateShadow_(shadow) {
203
- if (shadow) {
204
- this.svgPath.setAttribute('stroke', 'none');
205
- this.svgPath.setAttribute('fill', this.style.colourSecondary);
206
- }
207
- }
208
-
209
- /**
210
- * Updates the look of the block to reflect a disabled state.
211
- * @param {boolean} disabled True if disabled.
212
- * @protected
213
- */
214
- updateDisabled_(disabled) {
215
- this.setClass_('blocklyDisabled', disabled);
216
- if (disabled) {
217
- this.svgPath.setAttribute(
218
- 'fill', 'url(#' + this.constants.disabledPatternId + ')');
219
- }
220
- }
221
-
222
- /**
223
- * Add or remove styling showing that a block is selected.
224
- * @param {boolean} enable True if selection is enabled, false otherwise.
225
- * @package
226
- */
227
- updateSelected(enable) {
228
- this.setClass_('blocklySelected', enable);
229
- }
230
-
231
- /**
232
- * Add or remove styling showing that a block is dragged over a delete area.
233
- * @param {boolean} enable True if the block is being dragged over a delete
234
- * area, false otherwise.
235
- * @package
236
- */
237
- updateDraggingDelete(enable) {
238
- this.setClass_('blocklyDraggingDelete', enable);
239
- }
240
-
241
- /**
242
- * Add or remove styling showing that a block is an insertion marker.
243
- * @param {boolean} enable True if the block is an insertion marker, false
244
- * otherwise.
245
- * @package
246
- */
247
- updateInsertionMarker(enable) {
248
- this.setClass_('blocklyInsertionMarker', enable);
249
- }
250
-
251
- /**
252
- * Add or remove styling showing that a block is movable.
253
- * @param {boolean} enable True if the block is movable, false otherwise.
254
- * @package
255
- */
256
- updateMovable(enable) {
257
- this.setClass_('blocklyDraggable', enable);
258
- }
259
-
260
- /**
261
- * Add or remove styling that shows that if the dragging block is dropped,
262
- * this block will be replaced. If a shadow block, it will disappear.
263
- * Otherwise it will bump.
264
- * @param {boolean} enable True if styling should be added.
265
- * @package
266
- */
267
- updateReplacementFade(enable) {
268
- this.setClass_('blocklyReplaceable', enable);
269
- }
270
-
271
- /**
272
- * Add or remove styling that shows that if the dragging block is dropped,
273
- * this block will be connected to the input.
274
- * @param {Connection} _conn The connection on the input to highlight.
275
- * @param {boolean} _enable True if styling should be added.
276
- * @package
277
- */
278
- updateShapeForInputHighlight(_conn, _enable) {
279
- // NOP
280
- }
281
- }
282
-
283
- exports.PathObject = PathObject;
@@ -1,305 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2019 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview Base renderer.
9
- */
10
- 'use strict';
11
-
12
- /**
13
- * Base renderer.
14
- * @class
15
- */
16
- goog.module('Blockly.blockRendering.Renderer');
17
-
18
- const debug = goog.require('Blockly.blockRendering.debug');
19
- const object = goog.require('Blockly.utils.object');
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 {Block} = goog.requireType('Blockly.Block');
24
- const {ConnectionType} = goog.require('Blockly.ConnectionType');
25
- const {Connection} = goog.require('Blockly.Connection');
26
- const {ConstantProvider} = goog.require('Blockly.blockRendering.ConstantProvider');
27
- /* eslint-disable-next-line no-unused-vars */
28
- const {Debug} = goog.requireType('Blockly.blockRendering.Debug');
29
- const {Drawer} = goog.require('Blockly.blockRendering.Drawer');
30
- /* eslint-disable-next-line no-unused-vars */
31
- const {IPathObject} = goog.requireType('Blockly.blockRendering.IPathObject');
32
- /* eslint-disable-next-line no-unused-vars */
33
- const {IRegistrable} = goog.require('Blockly.IRegistrable');
34
- const {InsertionMarkerManager} = goog.require('Blockly.InsertionMarkerManager');
35
- const {MarkerSvg} = goog.require('Blockly.blockRendering.MarkerSvg');
36
- /* eslint-disable-next-line no-unused-vars */
37
- const {Marker} = goog.requireType('Blockly.Marker');
38
- const {PathObject} = goog.require('Blockly.blockRendering.PathObject');
39
- const {RenderInfo} = goog.require('Blockly.blockRendering.RenderInfo');
40
- /* eslint-disable-next-line no-unused-vars */
41
- const {RenderedConnection} = goog.requireType('Blockly.RenderedConnection');
42
- /* eslint-disable-next-line no-unused-vars */
43
- const {Theme} = goog.requireType('Blockly.Theme');
44
- /* eslint-disable-next-line no-unused-vars */
45
- const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
46
-
47
-
48
- /**
49
- * The base class for a block renderer.
50
- * @implements {IRegistrable}
51
- * @alias Blockly.blockRendering.Renderer
52
- */
53
- class Renderer {
54
- /**
55
- * @param {string} name The renderer name.
56
- * @package
57
- */
58
- constructor(name) {
59
- /**
60
- * The renderer name.
61
- * @type {string}
62
- * @package
63
- */
64
- this.name = name;
65
-
66
- /**
67
- * The renderer's constant provider.
68
- * @type {ConstantProvider}
69
- * @private
70
- */
71
- this.constants_ = null;
72
-
73
- /**
74
- * Rendering constant overrides, passed in through options.
75
- * @type {?Object}
76
- * @package
77
- */
78
- this.overrides = null;
79
- }
80
-
81
- /**
82
- * Gets the class name that identifies this renderer.
83
- * @return {string} The CSS class name.
84
- * @package
85
- */
86
- getClassName() {
87
- return this.name + '-renderer';
88
- }
89
-
90
- /**
91
- * Initialize the renderer.
92
- * @param {!Theme} theme The workspace theme object.
93
- * @param {Object=} opt_rendererOverrides Rendering constant overrides.
94
- * @package
95
- */
96
- init(theme, opt_rendererOverrides) {
97
- this.constants_ = this.makeConstants_();
98
- if (opt_rendererOverrides) {
99
- this.overrides = opt_rendererOverrides;
100
- object.mixin(this.constants_, opt_rendererOverrides);
101
- }
102
- this.constants_.setTheme(theme);
103
- this.constants_.init();
104
- }
105
-
106
- /**
107
- * Create any DOM elements that this renderer needs.
108
- * @param {!SVGElement} svg The root of the workspace's SVG.
109
- * @param {!Theme} theme The workspace theme object.
110
- * @package
111
- */
112
- createDom(svg, theme) {
113
- this.constants_.createDom(
114
- svg, this.name + '-' + theme.name,
115
- '.' + this.getClassName() + '.' + theme.getClassName());
116
- }
117
-
118
- /**
119
- * Refresh the renderer after a theme change.
120
- * @param {!SVGElement} svg The root of the workspace's SVG.
121
- * @param {!Theme} theme The workspace theme object.
122
- * @package
123
- */
124
- refreshDom(svg, theme) {
125
- const previousConstants = this.getConstants();
126
- previousConstants.dispose();
127
- this.constants_ = this.makeConstants_();
128
- if (this.overrides) {
129
- object.mixin(this.constants_, this.overrides);
130
- }
131
- // Ensure the constant provider's random identifier does not change.
132
- this.constants_.randomIdentifier = previousConstants.randomIdentifier;
133
- this.constants_.setTheme(theme);
134
- this.constants_.init();
135
- this.createDom(svg, theme);
136
- }
137
-
138
- /**
139
- * Dispose of this renderer.
140
- * Delete all DOM elements that this renderer and its constants created.
141
- * @package
142
- */
143
- dispose() {
144
- if (this.constants_) {
145
- this.constants_.dispose();
146
- }
147
- }
148
-
149
- /**
150
- * Create a new instance of the renderer's constant provider.
151
- * @return {!ConstantProvider} The constant provider.
152
- * @protected
153
- */
154
- makeConstants_() {
155
- return new ConstantProvider();
156
- }
157
-
158
- /**
159
- * Create a new instance of the renderer's render info object.
160
- * @param {!BlockSvg} block The block to measure.
161
- * @return {!RenderInfo} The render info object.
162
- * @protected
163
- */
164
- makeRenderInfo_(block) {
165
- return new RenderInfo(this, block);
166
- }
167
-
168
- /**
169
- * Create a new instance of the renderer's drawer.
170
- * @param {!BlockSvg} block The block to render.
171
- * @param {!RenderInfo} info An object containing all
172
- * information needed to render this block.
173
- * @return {!Drawer} The drawer.
174
- * @protected
175
- */
176
- makeDrawer_(block, info) {
177
- return new Drawer(block, info);
178
- }
179
-
180
- /**
181
- * Create a new instance of the renderer's debugger.
182
- * @return {!Debug} The renderer debugger.
183
- * @suppress {strictModuleDepCheck} Debug renderer only included in
184
- * playground.
185
- * @protected
186
- */
187
- makeDebugger_() {
188
- const {Debug} = goog.module.get('Blockly.blockRendering.Debug');
189
- if (!Debug) {
190
- throw Error('Missing require for Blockly.blockRendering.Debug');
191
- }
192
- return new Debug(this.getConstants());
193
- }
194
-
195
- /**
196
- * Create a new instance of the renderer's marker drawer.
197
- * @param {!WorkspaceSvg} workspace The workspace the marker belongs to.
198
- * @param {!Marker} marker The marker.
199
- * @return {!MarkerSvg} The object in charge of drawing
200
- * the marker.
201
- * @package
202
- */
203
- makeMarkerDrawer(workspace, marker) {
204
- return new MarkerSvg(workspace, this.getConstants(), marker);
205
- }
206
-
207
- /**
208
- * Create a new instance of a renderer path object.
209
- * @param {!SVGElement} root The root SVG element.
210
- * @param {!Theme.BlockStyle} style The style object to use for
211
- * colouring.
212
- * @return {!IPathObject} The renderer path object.
213
- * @package
214
- */
215
- makePathObject(root, style) {
216
- return new PathObject(
217
- root, style, /** @type {!ConstantProvider} */ (this.constants_));
218
- }
219
-
220
- /**
221
- * Get the current renderer's constant provider. We assume that when this is
222
- * called, the renderer has already been initialized.
223
- * @return {!ConstantProvider} The constant provider.
224
- * @package
225
- */
226
- getConstants() {
227
- return /** @type {!ConstantProvider} */ (this.constants_);
228
- }
229
-
230
- /**
231
- * Determine whether or not to highlight a connection.
232
- * @param {Connection} _conn The connection to determine whether or not
233
- * to highlight.
234
- * @return {boolean} True if we should highlight the connection.
235
- * @package
236
- */
237
- shouldHighlightConnection(_conn) {
238
- return true;
239
- }
240
-
241
- /**
242
- * Checks if an orphaned block can connect to the "end" of the topBlock's
243
- * block-clump. If the clump is a row the end is the last input. If the clump
244
- * is a stack, the end is the last next connection. If the clump is neither,
245
- * then this returns false.
246
- * @param {!BlockSvg} topBlock The top block of the block clump we want to try
247
- * and connect to.
248
- * @param {!BlockSvg} orphanBlock The orphan block that wants to find
249
- * a home.
250
- * @param {number} localType The type of the connection being dragged.
251
- * @return {boolean} Whether there is a home for the orphan or not.
252
- * @package
253
- */
254
- orphanCanConnectAtEnd(topBlock, orphanBlock, localType) {
255
- const orphanConnection =
256
- (localType === ConnectionType.OUTPUT_VALUE ?
257
- orphanBlock.outputConnection :
258
- orphanBlock.previousConnection);
259
- return !!Connection.getConnectionForOrphanedConnection(
260
- /** @type {!Block} **/ (topBlock),
261
- /** @type {!Connection} **/ (orphanConnection));
262
- }
263
-
264
- /**
265
- * Chooses a connection preview method based on the available connection, the
266
- * current dragged connection, and the block being dragged.
267
- * @param {!RenderedConnection} closest The available connection.
268
- * @param {!RenderedConnection} local The connection currently being
269
- * dragged.
270
- * @param {!BlockSvg} topBlock The block currently being dragged.
271
- * @return {!InsertionMarkerManager.PREVIEW_TYPE} The preview type
272
- * to display.
273
- * @package
274
- */
275
- getConnectionPreviewMethod(closest, local, topBlock) {
276
- if (local.type === ConnectionType.OUTPUT_VALUE ||
277
- local.type === ConnectionType.PREVIOUS_STATEMENT) {
278
- if (!closest.isConnected() ||
279
- this.orphanCanConnectAtEnd(
280
- topBlock,
281
- /** @type {!BlockSvg} */ (closest.targetBlock()), local.type)) {
282
- return InsertionMarkerManager.PREVIEW_TYPE.INSERTION_MARKER;
283
- }
284
- return InsertionMarkerManager.PREVIEW_TYPE.REPLACEMENT_FADE;
285
- }
286
-
287
- return InsertionMarkerManager.PREVIEW_TYPE.INSERTION_MARKER;
288
- }
289
-
290
- /**
291
- * Render the block.
292
- * @param {!BlockSvg} block The block to render.
293
- * @package
294
- */
295
- render(block) {
296
- if (debug.isDebuggerEnabled() && !block.renderingDebugger) {
297
- block.renderingDebugger = this.makeDebugger_();
298
- }
299
- const info = this.makeRenderInfo_(block);
300
- info.measure();
301
- this.makeDrawer_(block, info).draw();
302
- }
303
- }
304
-
305
- exports.Renderer = Renderer;
@@ -1,73 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2019 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview An object that provides constants for rendering blocks in Geras
9
- * mode.
10
- */
11
- 'use strict';
12
-
13
- /**
14
- * An object that provides constants for rendering blocks in Geras
15
- * mode.
16
- * @class
17
- */
18
- goog.module('Blockly.geras.ConstantProvider');
19
-
20
- const {ConstantProvider: BaseConstantProvider} = goog.require('Blockly.blockRendering.ConstantProvider');
21
-
22
-
23
- /**
24
- * An object that provides constants for rendering blocks in Geras mode.
25
- * @extends {BaseConstantProvider}
26
- * @alias Blockly.geras.ConstantProvider
27
- */
28
- class ConstantProvider extends BaseConstantProvider {
29
- /**
30
- * @package
31
- */
32
- constructor() {
33
- super();
34
-
35
- /**
36
- * @override
37
- */
38
- this.FIELD_TEXT_BASELINE_CENTER = false;
39
-
40
- // The dark/shadow path in classic rendering is the same as the normal block
41
- // path, but translated down one and right one.
42
- this.DARK_PATH_OFFSET = 1;
43
-
44
- /**
45
- * The maximum width of a bottom row that follows a statement input and has
46
- * inputs inline.
47
- * @type {number}
48
- */
49
- this.MAX_BOTTOM_WIDTH = 30;
50
-
51
- /**
52
- * @override
53
- */
54
- this.STATEMENT_BOTTOM_SPACER = -this.NOTCH_HEIGHT / 2;
55
- }
56
-
57
- /**
58
- * @override
59
- */
60
- getCSS_(selector) {
61
- return super.getCSS_(selector).concat([
62
- /* eslint-disable indent */
63
- // Insertion marker.
64
- selector + ' .blocklyInsertionMarker>.blocklyPathLight,',
65
- selector + ' .blocklyInsertionMarker>.blocklyPathDark {',
66
- 'fill-opacity: ' + this.INSERTION_MARKER_OPACITY + ';', 'stroke: none;',
67
- '}',
68
- /* eslint-enable indent */
69
- ]);
70
- }
71
- }
72
-
73
- exports.ConstantProvider = ConstantProvider;
@@ -1,36 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2021 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview Re-exports of Blockly.geras.* modules.
9
- */
10
- 'use strict';
11
-
12
- /**
13
- * Re-exports of Blockly.geras.* modules.
14
- * @namespace Blockly.geras
15
- */
16
- goog.module('Blockly.geras');
17
-
18
- const {ConstantProvider} = goog.require('Blockly.geras.ConstantProvider');
19
- const {Drawer} = goog.require('Blockly.geras.Drawer');
20
- const {HighlightConstantProvider} = goog.require('Blockly.geras.HighlightConstantProvider');
21
- const {Highlighter} = goog.require('Blockly.geras.Highlighter');
22
- const {InlineInput} = goog.require('Blockly.geras.InlineInput');
23
- const {PathObject} = goog.require('Blockly.geras.PathObject');
24
- const {RenderInfo} = goog.require('Blockly.geras.RenderInfo');
25
- const {Renderer} = goog.require('Blockly.geras.Renderer');
26
- const {StatementInput} = goog.require('Blockly.geras.StatementInput');
27
-
28
- exports.ConstantProvider = ConstantProvider;
29
- exports.Drawer = Drawer;
30
- exports.HighlightConstantProvider = HighlightConstantProvider;
31
- exports.Highlighter = Highlighter;
32
- exports.InlineInput = InlineInput;
33
- exports.PathObject = PathObject;
34
- exports.RenderInfo = RenderInfo;
35
- exports.Renderer = Renderer;
36
- exports.StatementInput = StatementInput;