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,459 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2020 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview Utility functions for the toolbox and flyout.
9
- */
10
- 'use strict';
11
-
12
- /**
13
- * Utility functions for the toolbox and flyout.
14
- * @namespace Blockly.utils.toolbox
15
- */
16
- goog.module('Blockly.utils.toolbox');
17
-
18
- const Xml = goog.require('Blockly.Xml');
19
- const userAgent = goog.require('Blockly.utils.userAgent');
20
- /* eslint-disable-next-line no-unused-vars */
21
- const {ConnectionState} = goog.requireType('Blockly.serialization.blocks');
22
- /* eslint-disable-next-line no-unused-vars */
23
- const {ToolboxCategory} = goog.requireType('Blockly.ToolboxCategory');
24
- /* eslint-disable-next-line no-unused-vars */
25
- const {ToolboxSeparator} = goog.requireType('Blockly.ToolboxSeparator');
26
-
27
- /**
28
- * The information needed to create a block in the toolbox.
29
- * Note that disabled has a different type for backwards compatibility.
30
- * @typedef {{
31
- * kind:string,
32
- * blockxml:(string|!Node|undefined),
33
- * type:(string|undefined),
34
- * gap:(string|number|undefined),
35
- * disabled: (string|boolean|undefined),
36
- * enabled: (boolean|undefined),
37
- * id: (string|undefined),
38
- * x: (number|undefined),
39
- * y: (number|undefined),
40
- * collapsed: (boolean|undefined),
41
- * inline: (boolean|undefined),
42
- * data: (string|undefined),
43
- * extra-state: (*|undefined),
44
- * icons: (!Object<string, *>|undefined),
45
- * fields: (!Object<string, *>|undefined),
46
- * inputs: (!Object<string, !ConnectionState>|undefined),
47
- * next: (!ConnectionState|undefined)
48
- * }}
49
- * @alias Blockly.utils.toolbox.BlockInfo
50
- */
51
- let BlockInfo;
52
- exports.BlockInfo = BlockInfo;
53
-
54
- /**
55
- * The information needed to create a separator in the toolbox.
56
- * @typedef {{
57
- * kind:string,
58
- * id:(string|undefined),
59
- * gap:(number|undefined),
60
- * cssconfig:(!ToolboxSeparator.CssConfig|undefined)
61
- * }}
62
- * @alias Blockly.utils.toolbox.SeparatorInfo
63
- */
64
- let SeparatorInfo;
65
- exports.SeparatorInfo = SeparatorInfo;
66
-
67
- /**
68
- * The information needed to create a button in the toolbox.
69
- * @typedef {{
70
- * kind:string,
71
- * text:string,
72
- * callbackkey:string
73
- * }}
74
- * @alias Blockly.utils.toolbox.ButtonInfo
75
- */
76
- let ButtonInfo;
77
- exports.ButtonInfo = ButtonInfo;
78
-
79
- /**
80
- * The information needed to create a label in the toolbox.
81
- * @typedef {{
82
- * kind:string,
83
- * text:string,
84
- * id:(string|undefined)
85
- * }}
86
- * @alias Blockly.utils.toolbox.LabelInfo
87
- */
88
- let LabelInfo;
89
- exports.LabelInfo = LabelInfo;
90
-
91
- /**
92
- * The information needed to create either a button or a label in the flyout.
93
- * @typedef {ButtonInfo|
94
- * LabelInfo}
95
- * @alias Blockly.utils.toolbox.ButtonOrLabelInfo
96
- */
97
- let ButtonOrLabelInfo;
98
- exports.ButtonOrLabelInfo = ButtonOrLabelInfo;
99
-
100
- /**
101
- * The information needed to create a category in the toolbox.
102
- * @typedef {{
103
- * kind:string,
104
- * name:string,
105
- * contents:!Array<!ToolboxItemInfo>,
106
- * id:(string|undefined),
107
- * categorystyle:(string|undefined),
108
- * colour:(string|undefined),
109
- * cssconfig:(!ToolboxCategory.CssConfig|undefined),
110
- * hidden:(string|undefined)
111
- * }}
112
- * @alias Blockly.utils.toolbox.StaticCategoryInfo
113
- */
114
- let StaticCategoryInfo;
115
- exports.StaticCategoryInfo = StaticCategoryInfo;
116
-
117
- /**
118
- * The information needed to create a custom category.
119
- * @typedef {{
120
- * kind:string,
121
- * custom:string,
122
- * id:(string|undefined),
123
- * categorystyle:(string|undefined),
124
- * colour:(string|undefined),
125
- * cssconfig:(!ToolboxCategory.CssConfig|undefined),
126
- * hidden:(string|undefined)
127
- * }}
128
- * @alias Blockly.utils.toolbox.DynamicCategoryInfo
129
- */
130
- let DynamicCategoryInfo;
131
- exports.DynamicCategoryInfo = DynamicCategoryInfo;
132
-
133
- /**
134
- * The information needed to create either a dynamic or static category.
135
- * @typedef {StaticCategoryInfo|
136
- * DynamicCategoryInfo}
137
- * @alias Blockly.utils.toolbox.CategoryInfo
138
- */
139
- let CategoryInfo;
140
- exports.CategoryInfo = CategoryInfo;
141
-
142
- /**
143
- * Any information that can be used to create an item in the toolbox.
144
- * @typedef {FlyoutItemInfo|
145
- * StaticCategoryInfo}
146
- * @alias Blockly.utils.toolbox.ToolboxItemInfo
147
- */
148
- let ToolboxItemInfo;
149
- exports.ToolboxItemInfo = ToolboxItemInfo;
150
-
151
- /**
152
- * All the different types that can be displayed in a flyout.
153
- * @typedef {BlockInfo|
154
- * SeparatorInfo|
155
- * ButtonInfo|
156
- * LabelInfo|
157
- * DynamicCategoryInfo}
158
- * @alias Blockly.utils.toolbox.FlyoutItemInfo
159
- */
160
- let FlyoutItemInfo;
161
- exports.FlyoutItemInfo = FlyoutItemInfo;
162
-
163
- /**
164
- * The JSON definition of a toolbox.
165
- * @typedef {{
166
- * kind:(string|undefined),
167
- * contents:!Array<!ToolboxItemInfo>
168
- * }}
169
- * @alias Blockly.utils.toolbox.ToolboxInfo
170
- */
171
- let ToolboxInfo;
172
- exports.ToolboxInfo = ToolboxInfo;
173
-
174
- /**
175
- * An array holding flyout items.
176
- * @typedef {
177
- * Array<!FlyoutItemInfo>
178
- * }
179
- * @alias Blockly.utils.toolbox.FlyoutItemInfoArray
180
- */
181
- let FlyoutItemInfoArray;
182
- exports.FlyoutItemInfoArray = FlyoutItemInfoArray;
183
-
184
- /**
185
- * All of the different types that can create a toolbox.
186
- * @typedef {Node|
187
- * ToolboxInfo|
188
- * string}
189
- * @alias Blockly.utils.toolbox.ToolboxDefinition
190
- */
191
- let ToolboxDefinition;
192
- exports.ToolboxDefinition = ToolboxDefinition;
193
-
194
- /**
195
- * All of the different types that can be used to show items in a flyout.
196
- * @typedef {FlyoutItemInfoArray|
197
- * NodeList|
198
- * ToolboxInfo|
199
- * Array<!Node>}
200
- * @alias Blockly.utils.toolbox.FlyoutDefinition
201
- */
202
- let FlyoutDefinition;
203
- exports.FlyoutDefinition = FlyoutDefinition;
204
-
205
- /**
206
- * The name used to identify a toolbox that has category like items.
207
- * This only needs to be used if a toolbox wants to be treated like a category
208
- * toolbox but does not actually contain any toolbox items with the kind
209
- * 'category'.
210
- * @const {string}
211
- */
212
- const CATEGORY_TOOLBOX_KIND = 'categoryToolbox';
213
-
214
- /**
215
- * The name used to identify a toolbox that has no categories and is displayed
216
- * as a simple flyout displaying blocks, buttons, or labels.
217
- * @const {string}
218
- */
219
- const FLYOUT_TOOLBOX_KIND = 'flyoutToolbox';
220
-
221
- /**
222
- * Position of the toolbox and/or flyout relative to the workspace.
223
- * @enum {number}
224
- * @alias Blockly.utils.toolbox.Position
225
- */
226
- const Position = {
227
- TOP: 0,
228
- BOTTOM: 1,
229
- LEFT: 2,
230
- RIGHT: 3,
231
- };
232
- exports.Position = Position;
233
-
234
- /**
235
- * Converts the toolbox definition into toolbox JSON.
236
- * @param {?ToolboxDefinition} toolboxDef The definition
237
- * of the toolbox in one of its many forms.
238
- * @return {?ToolboxInfo} Object holding information
239
- * for creating a toolbox.
240
- * @alias Blockly.utils.toolbox.convertToolboxDefToJson
241
- * @package
242
- */
243
- const convertToolboxDefToJson = function(toolboxDef) {
244
- if (!toolboxDef) {
245
- return null;
246
- }
247
-
248
- if (toolboxDef instanceof Element || typeof toolboxDef === 'string') {
249
- toolboxDef = parseToolboxTree(toolboxDef);
250
- toolboxDef = convertToToolboxJson(toolboxDef);
251
- }
252
-
253
- const toolboxJson = /** @type {ToolboxInfo} */ (toolboxDef);
254
- validateToolbox(toolboxJson);
255
- return toolboxJson;
256
- };
257
- exports.convertToolboxDefToJson = convertToolboxDefToJson;
258
-
259
- /**
260
- * Validates the toolbox JSON fields have been set correctly.
261
- * @param {!ToolboxInfo} toolboxJson Object holding
262
- * information for creating a toolbox.
263
- * @throws {Error} if the toolbox is not the correct format.
264
- */
265
- const validateToolbox = function(toolboxJson) {
266
- const toolboxKind = toolboxJson['kind'];
267
- const toolboxContents = toolboxJson['contents'];
268
-
269
- if (toolboxKind) {
270
- if (toolboxKind !== FLYOUT_TOOLBOX_KIND &&
271
- toolboxKind !== CATEGORY_TOOLBOX_KIND) {
272
- throw Error(
273
- 'Invalid toolbox kind ' + toolboxKind + '.' +
274
- ' Please supply either ' + FLYOUT_TOOLBOX_KIND + ' or ' +
275
- CATEGORY_TOOLBOX_KIND);
276
- }
277
- }
278
- if (!toolboxContents) {
279
- throw Error('Toolbox must have a contents attribute.');
280
- }
281
- };
282
-
283
- /**
284
- * Converts the flyout definition into a list of flyout items.
285
- * @param {?FlyoutDefinition} flyoutDef The definition of
286
- * the flyout in one of its many forms.
287
- * @return {!FlyoutItemInfoArray} A list of flyout items.
288
- * @alias Blockly.utils.toolbox.convertFlyoutDefToJsonArray
289
- * @package
290
- */
291
- const convertFlyoutDefToJsonArray = function(flyoutDef) {
292
- if (!flyoutDef) {
293
- return [];
294
- }
295
-
296
- if (flyoutDef['contents']) {
297
- return flyoutDef['contents'];
298
- }
299
-
300
- // If it is already in the correct format return the flyoutDef.
301
- if (Array.isArray(flyoutDef) && flyoutDef.length > 0 &&
302
- !flyoutDef[0].nodeType) {
303
- return flyoutDef;
304
- }
305
-
306
- return xmlToJsonArray(/** @type {!Array<Node>|!NodeList} */ (flyoutDef));
307
- };
308
- exports.convertFlyoutDefToJsonArray = convertFlyoutDefToJsonArray;
309
-
310
- /**
311
- * Whether or not the toolbox definition has categories.
312
- * @param {?ToolboxInfo} toolboxJson Object holding
313
- * information for creating a toolbox.
314
- * @return {boolean} True if the toolbox has categories.
315
- * @alias Blockly.utils.toolbox.hasCategories
316
- * @package
317
- */
318
- const hasCategories = function(toolboxJson) {
319
- if (!toolboxJson) {
320
- return false;
321
- }
322
-
323
- const toolboxKind = toolboxJson['kind'];
324
- if (toolboxKind) {
325
- return toolboxKind === CATEGORY_TOOLBOX_KIND;
326
- }
327
-
328
- const categories = toolboxJson['contents'].filter(function(item) {
329
- return item['kind'].toUpperCase() === 'CATEGORY';
330
- });
331
- return !!categories.length;
332
- };
333
- exports.hasCategories = hasCategories;
334
-
335
- /**
336
- * Whether or not the category is collapsible.
337
- * @param {!CategoryInfo} categoryInfo Object holing
338
- * information for creating a category.
339
- * @return {boolean} True if the category has subcategories.
340
- * @alias Blockly.utils.toolbox.isCategoryCollapsible
341
- * @package
342
- */
343
- const isCategoryCollapsible = function(categoryInfo) {
344
- if (!categoryInfo || !categoryInfo['contents']) {
345
- return false;
346
- }
347
-
348
- const categories = categoryInfo['contents'].filter(function(item) {
349
- return item['kind'].toUpperCase() === 'CATEGORY';
350
- });
351
- return !!categories.length;
352
- };
353
- exports.isCategoryCollapsible = isCategoryCollapsible;
354
-
355
- /**
356
- * Parses the provided toolbox definition into a consistent format.
357
- * @param {Node} toolboxDef The definition of the toolbox in one of its many
358
- * forms.
359
- * @return {!ToolboxInfo} Object holding information
360
- * for creating a toolbox.
361
- */
362
- const convertToToolboxJson = function(toolboxDef) {
363
- const contents = xmlToJsonArray(
364
- /** @type {!Node|!Array<Node>} */ (toolboxDef));
365
- const toolboxJson = {'contents': contents};
366
- if (toolboxDef instanceof Node) {
367
- addAttributes(toolboxDef, toolboxJson);
368
- }
369
- return toolboxJson;
370
- };
371
-
372
- /**
373
- * Converts the xml for a toolbox to JSON.
374
- * @param {!Node|!Array<Node>|!NodeList} toolboxDef The
375
- * definition of the toolbox in one of its many forms.
376
- * @return {!FlyoutItemInfoArray|
377
- * !Array<ToolboxItemInfo>} A list of objects in
378
- * the toolbox.
379
- */
380
- const xmlToJsonArray = function(toolboxDef) {
381
- const arr = [];
382
- // If it is a node it will have children.
383
- let childNodes = toolboxDef.childNodes;
384
- if (!childNodes) {
385
- // Otherwise the toolboxDef is an array or collection.
386
- childNodes = toolboxDef;
387
- }
388
- for (let i = 0, child; (child = childNodes[i]); i++) {
389
- if (!child.tagName) {
390
- continue;
391
- }
392
- const obj = {};
393
- const tagName = child.tagName.toUpperCase();
394
- obj['kind'] = tagName;
395
-
396
- // Store the XML for a block.
397
- if (tagName === 'BLOCK') {
398
- obj['blockxml'] = child;
399
- } else if (child.childNodes && child.childNodes.length > 0) {
400
- // Get the contents of a category
401
- obj['contents'] = xmlToJsonArray(child);
402
- }
403
-
404
- // Add XML attributes to object
405
- addAttributes(child, obj);
406
- arr.push(obj);
407
- }
408
- return arr;
409
- };
410
-
411
- /**
412
- * Adds the attributes on the node to the given object.
413
- * @param {!Node} node The node to copy the attributes from.
414
- * @param {!Object} obj The object to copy the attributes to.
415
- */
416
- const addAttributes = function(node, obj) {
417
- for (let j = 0; j < node.attributes.length; j++) {
418
- const attr = node.attributes[j];
419
- if (attr.nodeName.indexOf('css-') > -1) {
420
- obj['cssconfig'] = obj['cssconfig'] || {};
421
- obj['cssconfig'][attr.nodeName.replace('css-', '')] = attr.value;
422
- } else {
423
- obj[attr.nodeName] = attr.value;
424
- }
425
- }
426
- };
427
-
428
- /**
429
- * Parse the provided toolbox tree into a consistent DOM format.
430
- * @param {?Node|?string} toolboxDef DOM tree of blocks, or text representation
431
- * of same.
432
- * @return {?Node} DOM tree of blocks, or null.
433
- * @alias Blockly.utils.toolbox.parseToolboxTree
434
- */
435
- const parseToolboxTree = function(toolboxDef) {
436
- if (toolboxDef) {
437
- if (typeof toolboxDef !== 'string') {
438
- if (userAgent.IE && toolboxDef.outerHTML) {
439
- // In this case the tree will not have been properly built by the
440
- // browser. The HTML will be contained in the element, but it will
441
- // not have the proper DOM structure since the browser doesn't support
442
- // XSLTProcessor (XML -> HTML).
443
- toolboxDef = toolboxDef.outerHTML;
444
- } else if (!(toolboxDef instanceof Element)) {
445
- toolboxDef = null;
446
- }
447
- }
448
- if (typeof toolboxDef === 'string') {
449
- toolboxDef = Xml.textToDom(toolboxDef);
450
- if (toolboxDef.nodeName.toLowerCase() !== 'xml') {
451
- throw TypeError('Toolbox should be an <xml> document.');
452
- }
453
- }
454
- } else {
455
- toolboxDef = null;
456
- }
457
- return toolboxDef;
458
- };
459
- exports.parseToolboxTree = parseToolboxTree;
@@ -1,197 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2019 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview Useragent detection.
9
- * These methods are not specific to Blockly, and could be factored out into
10
- * a JavaScript framework such as Closure.
11
- */
12
- 'use strict';
13
-
14
- /**
15
- * Useragent detection.
16
- * These methods are not specific to Blockly, and could be factored out into
17
- * a JavaScript framework such as Closure.
18
- * @namespace Blockly.utils.userAgent
19
- */
20
- goog.module('Blockly.utils.userAgent');
21
-
22
- const {globalThis} = goog.require('Blockly.utils.global');
23
-
24
-
25
- /**
26
- * The raw useragent string.
27
- * @type {string}
28
- */
29
- let rawUserAgent;
30
-
31
- /** @type {boolean} */
32
- let isIe;
33
-
34
- /** @type {boolean} */
35
- let isEdge;
36
-
37
- /** @type {boolean} */
38
- let isJavaFx;
39
-
40
- /** @type {boolean} */
41
- let isChrome;
42
-
43
- /** @type {boolean} */
44
- let isWebKit;
45
-
46
- /** @type {boolean} */
47
- let isGecko;
48
-
49
- /** @type {boolean} */
50
- let isAndroid;
51
-
52
- /** @type {boolean} */
53
- let isIPad;
54
-
55
- /** @type {boolean} */
56
- let isIPod;
57
-
58
- /** @type {boolean} */
59
- let isIPhone;
60
-
61
- /** @type {boolean} */
62
- let isMac;
63
-
64
- /** @type {boolean} */
65
- let isTablet;
66
-
67
- /** @type {boolean} */
68
- let isMobile;
69
-
70
- (function(raw) {
71
- rawUserAgent = raw;
72
- const rawUpper = rawUserAgent.toUpperCase();
73
- /**
74
- * Case-insensitive test of whether name is in the useragent string.
75
- * @param {string} name Name to test.
76
- * @return {boolean} True if name is present.
77
- */
78
- function has(name) {
79
- return rawUpper.indexOf(name.toUpperCase()) !== -1;
80
- }
81
-
82
- // Browsers. Logic from:
83
- // https://github.com/google/closure-library/blob/master/closure/goog/labs/useragent/browser.js
84
- isIe = has('Trident') || has('MSIE');
85
- isEdge = has('Edge');
86
- // Useragent for JavaFX:
87
- // Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.44
88
- // (KHTML, like Gecko) JavaFX/8.0 Safari/537.44
89
- isJavaFx = has('JavaFX');
90
- isChrome = (has('Chrome') || has('CriOS')) && !isEdge;
91
-
92
- // Engines. Logic from:
93
- // https://github.com/google/closure-library/blob/master/closure/goog/labs/useragent/engine.js
94
- isWebKit = has('WebKit') && !isEdge;
95
- isGecko = has('Gecko') && !isWebKit && !isIe && !isEdge;
96
-
97
- // Platforms. Logic from:
98
- // https://github.com/google/closure-library/blob/master/closure/goog/labs/useragent/platform.js
99
- // and
100
- // https://github.com/google/closure-library/blob/master/closure/goog/labs/useragent/extra.js
101
- isAndroid = has('Android');
102
- const maxTouchPoints =
103
- globalThis['navigator'] && globalThis['navigator']['maxTouchPoints'];
104
- isIPad = has('iPad') || has('Macintosh') && maxTouchPoints > 0;
105
- isIPod = has('iPod');
106
- isIPhone = has('iPhone') && !isIPad && !isIPod;
107
- isMac = has('Macintosh');
108
-
109
- // Devices. Logic from:
110
- // https://github.com/google/closure-library/blob/master/closure/goog/labs/useragent/device.js
111
- isTablet = isIPad || (isAndroid && !has('Mobile')) || has('Silk');
112
- isMobile = !isTablet && (isIPod || isIPhone || isAndroid || has('IEMobile'));
113
- })((globalThis['navigator'] && globalThis['navigator']['userAgent']) || '');
114
-
115
- /**
116
- * @const {string}
117
- * @alias Blockly.utils.userAgent.raw
118
- */
119
- exports.raw = rawUserAgent;
120
-
121
- /**
122
- * @const {boolean}
123
- * @alias Blockly.utils.userAgent.IE
124
- */
125
- exports.IE = isIe;
126
-
127
- /**
128
- * @const {boolean}
129
- * @alias Blockly.utils.userAgent.EDGE
130
- */
131
- exports.EDGE = isEdge;
132
-
133
- /**
134
- * @const {boolean}
135
- * @alias Blockly.utils.userAgent.JavaFx
136
- */
137
- exports.JavaFx = isJavaFx;
138
-
139
- /**
140
- * @const {boolean}
141
- * @alias Blockly.utils.userAgent.CHROME
142
- */
143
- exports.CHROME = isChrome;
144
-
145
- /**
146
- * @const {boolean}
147
- * @alias Blockly.utils.userAgent.WEBKIT
148
- */
149
- exports.WEBKIT = isWebKit;
150
-
151
- /**
152
- * @const {boolean}
153
- * @alias Blockly.utils.userAgent.GECKO
154
- */
155
- exports.GECKO = isGecko;
156
-
157
- /**
158
- * @const {boolean}
159
- * @alias Blockly.utils.userAgent.ANDROID
160
- */
161
- exports.ANDROID = isAndroid;
162
-
163
- /**
164
- * @const {boolean}
165
- * @alias Blockly.utils.userAgent.IPAD
166
- */
167
- exports.IPAD = isIPad;
168
-
169
- /**
170
- * @const {boolean}
171
- * @alias Blockly.utils.userAgent.IPOD
172
- */
173
- exports.IPOD = isIPod;
174
-
175
- /**
176
- * @const {boolean}
177
- * @alias Blockly.utils.userAgent.IPHONE
178
- */
179
- exports.IPHONE = isIPhone;
180
-
181
- /**
182
- * @const {boolean}
183
- * @alias Blockly.utils.userAgent.MAC
184
- */
185
- exports.MAC = isMac;
186
-
187
- /**
188
- * @const {boolean}
189
- * @alias Blockly.utils.userAgent.TABLET
190
- */
191
- exports.TABLET = isTablet;
192
-
193
- /**
194
- * @const {boolean}
195
- * @alias Blockly.utils.userAgent.MOBILE
196
- */
197
- exports.MOBILE = isMobile;