blockly 9.0.0-beta.0 → 9.0.0-beta.1

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 (608) hide show
  1. package/blockly.min.js +401 -405
  2. package/blockly_compressed.js +398 -402
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks.d.ts +0 -5
  5. package/blocks_compressed.js +3 -3
  6. package/blocks_compressed.js.map +1 -1
  7. package/closure/goog/base.d.ts +1 -0
  8. package/closure/goog/base_minimal.d.ts +1 -0
  9. package/closure/goog/goog.d.ts +1 -0
  10. package/core/any_aliases.d.ts +1 -0
  11. package/core/block.d.ts +145 -53
  12. package/core/block_animations.d.ts +5 -0
  13. package/core/block_drag_surface.d.ts +18 -5
  14. package/core/block_dragger.d.ts +20 -5
  15. package/core/block_svg.d.ts +89 -21
  16. package/core/blockly.d.ts +29 -8
  17. package/core/blockly_options.d.ts +2 -0
  18. package/core/blocks.d.ts +2 -0
  19. package/core/browser_events.d.ts +16 -7
  20. package/core/bubble.d.ts +42 -12
  21. package/core/bubble_dragger.d.ts +9 -2
  22. package/core/bump_objects.d.ts +6 -2
  23. package/core/clipboard.d.ts +6 -2
  24. package/core/comment.d.ts +13 -3
  25. package/core/common.d.ts +35 -9
  26. package/core/component_manager.d.ts +16 -6
  27. package/core/config.d.ts +1 -0
  28. package/core/connection.d.ts +48 -18
  29. package/core/connection_checker.d.ts +16 -7
  30. package/core/connection_db.d.ts +17 -6
  31. package/core/connection_type.d.ts +2 -0
  32. package/core/constants.d.ts +3 -0
  33. package/core/contextmenu.d.ts +15 -5
  34. package/core/contextmenu_items.d.ts +15 -0
  35. package/core/contextmenu_registry.d.ts +12 -7
  36. package/core/css.d.ts +3 -0
  37. package/core/delete_area.d.ts +5 -1
  38. package/core/dialog.d.ts +14 -7
  39. package/core/drag_target.d.ts +10 -2
  40. package/core/dropdowndiv.d.ts +42 -10
  41. package/core/events/events.d.ts +1 -0
  42. package/core/events/events_abstract.d.ts +10 -3
  43. package/core/events/events_block_base.d.ts +5 -1
  44. package/core/events/events_block_change.d.ts +10 -3
  45. package/core/events/events_block_create.d.ts +6 -1
  46. package/core/events/events_block_delete.d.ts +6 -1
  47. package/core/events/events_block_drag.d.ts +5 -1
  48. package/core/events/events_block_move.d.ts +10 -3
  49. package/core/events/events_bubble_open.d.ts +6 -2
  50. package/core/events/events_click.d.ts +5 -1
  51. package/core/events/events_comment_base.d.ts +6 -1
  52. package/core/events/events_comment_change.d.ts +8 -2
  53. package/core/events/events_comment_create.d.ts +6 -1
  54. package/core/events/events_comment_delete.d.ts +6 -1
  55. package/core/events/events_comment_move.d.ts +9 -2
  56. package/core/events/events_marker_move.d.ts +5 -1
  57. package/core/events/events_selected.d.ts +5 -1
  58. package/core/events/events_theme_change.d.ts +5 -1
  59. package/core/events/events_toolbox_item_select.d.ts +5 -1
  60. package/core/events/events_trashcan_open.d.ts +5 -1
  61. package/core/events/events_ui.d.ts +5 -1
  62. package/core/events/events_ui_base.d.ts +2 -0
  63. package/core/events/events_var_base.d.ts +5 -1
  64. package/core/events/events_var_create.d.ts +6 -1
  65. package/core/events/events_var_delete.d.ts +6 -1
  66. package/core/events/events_var_rename.d.ts +6 -1
  67. package/core/events/events_viewport.d.ts +5 -1
  68. package/core/events/utils.d.ts +50 -7
  69. package/core/events/workspace_events.d.ts +5 -1
  70. package/core/extensions.d.ts +14 -4
  71. package/core/field.d.ts +93 -34
  72. package/core/field_angle.d.ts +14 -3
  73. package/core/field_checkbox.d.ts +20 -7
  74. package/core/field_colour.d.ts +22 -6
  75. package/core/field_dropdown.d.ts +28 -8
  76. package/core/field_image.d.ts +15 -4
  77. package/core/field_label.d.ts +8 -2
  78. package/core/field_label_serializable.d.ts +4 -1
  79. package/core/field_multilineinput.d.ts +21 -6
  80. package/core/field_number.d.ts +22 -6
  81. package/core/field_registry.d.ts +8 -2
  82. package/core/field_textinput.d.ts +28 -8
  83. package/core/field_variable.d.ts +36 -13
  84. package/core/flyout_base.d.ts +70 -24
  85. package/core/flyout_button.d.ts +12 -5
  86. package/core/flyout_horizontal.d.ts +14 -6
  87. package/core/flyout_metrics_manager.d.ts +6 -3
  88. package/core/flyout_vertical.d.ts +14 -6
  89. package/core/generator.d.ts +39 -20
  90. package/core/gesture.d.ts +48 -13
  91. package/core/grid.d.ts +19 -15
  92. package/core/icon.d.ts +12 -3
  93. package/core/inject.d.ts +3 -1
  94. package/core/input.d.ts +25 -10
  95. package/core/input_types.d.ts +2 -0
  96. package/core/insertion_marker_manager.d.ts +27 -9
  97. package/core/interfaces/i_ast_node_location.d.ts +2 -0
  98. package/core/interfaces/i_ast_node_location_svg.d.ts +4 -0
  99. package/core/interfaces/i_ast_node_location_with_block.d.ts +4 -1
  100. package/core/interfaces/i_autohideable.d.ts +3 -0
  101. package/core/interfaces/i_block_dragger.d.ts +7 -1
  102. package/core/interfaces/i_bounded_element.d.ts +5 -1
  103. package/core/interfaces/i_bubble.d.ts +11 -2
  104. package/core/interfaces/i_collapsible_toolbox_item.d.ts +6 -2
  105. package/core/interfaces/i_component.d.ts +2 -0
  106. package/core/interfaces/i_connection_checker.d.ts +14 -6
  107. package/core/interfaces/i_contextmenu.d.ts +2 -0
  108. package/core/interfaces/i_copyable.d.ts +3 -1
  109. package/core/interfaces/i_deletable.d.ts +4 -1
  110. package/core/interfaces/i_delete_area.d.ts +4 -1
  111. package/core/interfaces/i_drag_target.d.ts +10 -2
  112. package/core/interfaces/i_draggable.d.ts +2 -0
  113. package/core/interfaces/i_flyout.d.ts +27 -11
  114. package/core/interfaces/i_keyboard_accessible.d.ts +4 -1
  115. package/core/interfaces/i_metrics_manager.d.ts +24 -12
  116. package/core/interfaces/i_movable.d.ts +4 -1
  117. package/core/interfaces/i_positionable.d.ts +5 -1
  118. package/core/interfaces/i_registrable.d.ts +2 -0
  119. package/core/interfaces/i_registrable_field.d.ts +2 -0
  120. package/core/interfaces/i_selectable.d.ts +2 -0
  121. package/core/interfaces/i_selectable_toolbox_item.d.ts +10 -3
  122. package/core/interfaces/i_serializer.d.ts +6 -1
  123. package/core/interfaces/i_styleable.d.ts +4 -0
  124. package/core/interfaces/i_toolbox.d.ts +17 -6
  125. package/core/interfaces/i_toolbox_item.d.ts +17 -7
  126. package/core/internal_constants.d.ts +6 -0
  127. package/core/keyboard_nav/ast_node.d.ts +55 -28
  128. package/core/keyboard_nav/basic_cursor.d.ts +20 -9
  129. package/core/keyboard_nav/cursor.d.ts +11 -5
  130. package/core/keyboard_nav/marker.d.ts +9 -2
  131. package/core/keyboard_nav/tab_navigate_cursor.d.ts +4 -1
  132. package/core/main.d.ts +1 -0
  133. package/core/marker_manager.d.ts +13 -2
  134. package/core/menu.d.ts +23 -5
  135. package/core/menuitem.d.ts +22 -7
  136. package/core/metrics_manager.d.ts +30 -15
  137. package/core/msg.d.ts +1 -0
  138. package/core/mutator.d.ts +19 -7
  139. package/core/names.d.ts +20 -8
  140. package/core/options.d.ts +12 -6
  141. package/core/positionable_helpers.d.ts +11 -3
  142. package/core/procedures.d.ts +27 -10
  143. package/core/registry.d.ts +19 -8
  144. package/core/rendered_connection.d.ts +28 -7
  145. package/core/renderers/common/block_rendering.d.ts +9 -2
  146. package/core/renderers/common/constants.d.ts +49 -17
  147. package/core/renderers/common/debug.d.ts +5 -1
  148. package/core/renderers/common/debugger.d.ts +12 -1
  149. package/core/renderers/common/drawer.d.ts +12 -0
  150. package/core/renderers/common/i_path_object.d.ts +15 -0
  151. package/core/renderers/common/info.d.ts +25 -8
  152. package/core/renderers/common/marker_svg.d.ts +35 -6
  153. package/core/renderers/common/path_object.d.ts +20 -0
  154. package/core/renderers/common/renderer.d.ts +33 -12
  155. package/core/renderers/geras/constants.d.ts +2 -0
  156. package/core/renderers/geras/drawer.d.ts +2 -0
  157. package/core/renderers/geras/geras.d.ts +3 -2
  158. package/core/renderers/geras/highlight_constants.d.ts +9 -6
  159. package/core/renderers/geras/highlighter.d.ts +12 -1
  160. package/core/renderers/geras/info.d.ts +4 -1
  161. package/core/renderers/geras/measurables/inline_input.d.ts +2 -0
  162. package/core/renderers/geras/measurables/statement_input.d.ts +2 -0
  163. package/core/renderers/geras/path_object.d.ts +4 -0
  164. package/core/renderers/geras/renderer.d.ts +16 -6
  165. package/core/renderers/measurables/base.d.ts +2 -0
  166. package/core/renderers/measurables/bottom_row.d.ts +9 -3
  167. package/core/renderers/measurables/connection.d.ts +2 -0
  168. package/core/renderers/measurables/external_value_input.d.ts +2 -1
  169. package/core/renderers/measurables/field.d.ts +2 -1
  170. package/core/renderers/measurables/hat.d.ts +2 -1
  171. package/core/renderers/measurables/icon.d.ts +3 -1
  172. package/core/renderers/measurables/in_row_spacer.d.ts +2 -1
  173. package/core/renderers/measurables/inline_input.d.ts +2 -1
  174. package/core/renderers/measurables/input_connection.d.ts +2 -0
  175. package/core/renderers/measurables/input_row.d.ts +4 -1
  176. package/core/renderers/measurables/jagged_edge.d.ts +2 -1
  177. package/core/renderers/measurables/next_connection.d.ts +2 -1
  178. package/core/renderers/measurables/output_connection.d.ts +2 -1
  179. package/core/renderers/measurables/previous_connection.d.ts +2 -1
  180. package/core/renderers/measurables/round_corner.d.ts +2 -1
  181. package/core/renderers/measurables/row.d.ts +27 -5
  182. package/core/renderers/measurables/spacer_row.d.ts +2 -1
  183. package/core/renderers/measurables/square_corner.d.ts +2 -1
  184. package/core/renderers/measurables/statement_input.d.ts +2 -1
  185. package/core/renderers/measurables/top_row.d.ts +7 -3
  186. package/core/renderers/measurables/types.d.ts +54 -25
  187. package/core/renderers/minimalist/constants.d.ts +2 -0
  188. package/core/renderers/minimalist/drawer.d.ts +2 -0
  189. package/core/renderers/minimalist/info.d.ts +4 -1
  190. package/core/renderers/minimalist/minimalist.d.ts +2 -1
  191. package/core/renderers/minimalist/renderer.d.ts +8 -3
  192. package/core/renderers/thrasos/info.d.ts +4 -1
  193. package/core/renderers/thrasos/renderer.d.ts +4 -1
  194. package/core/renderers/thrasos/thrasos.d.ts +2 -1
  195. package/core/renderers/zelos/constants.d.ts +11 -3
  196. package/core/renderers/zelos/drawer.d.ts +3 -0
  197. package/core/renderers/zelos/info.d.ts +10 -5
  198. package/core/renderers/zelos/marker_svg.d.ts +5 -0
  199. package/core/renderers/zelos/measurables/bottom_row.d.ts +2 -0
  200. package/core/renderers/zelos/measurables/inputs.d.ts +2 -0
  201. package/core/renderers/zelos/measurables/row_elements.d.ts +2 -0
  202. package/core/renderers/zelos/measurables/top_row.d.ts +2 -0
  203. package/core/renderers/zelos/path_object.d.ts +8 -1
  204. package/core/renderers/zelos/renderer.d.ts +14 -6
  205. package/core/renderers/zelos/zelos.d.ts +3 -2
  206. package/core/scrollbar.d.ts +41 -9
  207. package/core/scrollbar_pair.d.ts +20 -6
  208. package/core/serialization/blocks.d.ts +10 -4
  209. package/core/serialization/exceptions.d.ts +5 -0
  210. package/core/serialization/priorities.d.ts +3 -0
  211. package/core/serialization/registry.d.ts +3 -0
  212. package/core/serialization/variables.d.ts +2 -0
  213. package/core/serialization/workspaces.d.ts +4 -1
  214. package/core/shortcut_items.d.ts +10 -0
  215. package/core/shortcut_registry.d.ts +25 -9
  216. package/core/sprites.d.ts +2 -4
  217. package/core/theme/classic.d.ts +2 -0
  218. package/core/theme/themes.d.ts +1 -0
  219. package/core/theme/zelos.d.ts +2 -0
  220. package/core/theme.d.ts +14 -3
  221. package/core/theme_manager.d.ts +10 -1
  222. package/core/toolbox/category.d.ts +42 -15
  223. package/core/toolbox/collapsible_category.d.ts +10 -3
  224. package/core/toolbox/separator.d.ts +4 -1
  225. package/core/toolbox/toolbox.d.ts +70 -22
  226. package/core/toolbox/toolbox_item.d.ts +17 -7
  227. package/core/tooltip.d.ts +22 -1
  228. package/core/touch.d.ts +18 -6
  229. package/core/touch_gesture.d.ts +16 -2
  230. package/core/trashcan.d.ts +27 -6
  231. package/core/utils/aria.d.ts +4 -0
  232. package/core/utils/array.d.ts +4 -2
  233. package/core/utils/colour.d.ts +24 -13
  234. package/core/utils/coordinate.d.ts +18 -8
  235. package/core/utils/deprecation.d.ts +6 -4
  236. package/core/utils/dom.d.ts +32 -12
  237. package/core/utils/idgenerator.d.ts +13 -3
  238. package/core/utils/keycodes.d.ts +1 -0
  239. package/core/utils/math.d.ts +7 -3
  240. package/core/utils/metrics.d.ts +1 -0
  241. package/core/utils/object.d.ts +7 -2
  242. package/core/utils/parsing.d.ts +9 -4
  243. package/core/utils/rect.d.ts +5 -3
  244. package/core/utils/sentinel.d.ts +2 -0
  245. package/core/utils/size.d.ts +4 -2
  246. package/core/utils/string.d.ts +13 -6
  247. package/core/utils/style.d.ts +14 -33
  248. package/core/utils/svg.d.ts +5 -2
  249. package/core/utils/svg_math.d.ts +15 -7
  250. package/core/utils/svg_paths.d.ts +20 -10
  251. package/core/utils/toolbox.d.ts +26 -5
  252. package/core/utils/useragent.d.ts +1 -12
  253. package/core/utils/xml.d.ts +13 -5
  254. package/core/utils.d.ts +43 -21
  255. package/core/variable_map.d.ts +26 -9
  256. package/core/variable_model.d.ts +5 -2
  257. package/core/variables.d.ts +33 -18
  258. package/core/variables_dynamic.d.ts +25 -5
  259. package/core/warning.d.ts +8 -3
  260. package/core/widgetdiv.d.ts +15 -6
  261. package/core/workspace.d.ts +80 -30
  262. package/core/workspace_audio.d.ts +6 -0
  263. package/core/workspace_comment.d.ts +33 -11
  264. package/core/workspace_comment_svg.d.ts +52 -9
  265. package/core/workspace_drag_surface_svg.d.ts +20 -14
  266. package/core/workspace_dragger.d.ts +6 -0
  267. package/core/workspace_svg.d.ts +174 -62
  268. package/core/xml.d.ts +26 -11
  269. package/core/zoom_controls.d.ts +16 -6
  270. package/core.d.ts +0 -5
  271. package/dart.d.ts +0 -5
  272. package/dart_compressed.js.map +1 -1
  273. package/index.d.ts +2 -6
  274. package/javascript.d.ts +0 -5
  275. package/javascript_compressed.js.map +1 -1
  276. package/lua.d.ts +0 -5
  277. package/lua_compressed.js.map +1 -1
  278. package/package.json +6 -3
  279. package/php.d.ts +0 -5
  280. package/php_compressed.js.map +1 -1
  281. package/python.d.ts +0 -5
  282. package/python_compressed.js.map +1 -1
  283. package/blocks/blocks.js +0 -48
  284. package/blocks/colour.js +0 -121
  285. package/blocks/lists.js +0 -996
  286. package/blocks/logic.js +0 -665
  287. package/blocks/loops.js +0 -375
  288. package/blocks/math.js +0 -594
  289. package/blocks/procedures.js +0 -1196
  290. package/blocks/text.js +0 -1000
  291. package/blocks/variables.js +0 -176
  292. package/blocks/variables_dynamic.js +0 -192
  293. package/core/any_aliases.ts +0 -1
  294. package/core/block.ts +0 -2102
  295. package/core/block_animations.ts +0 -202
  296. package/core/block_drag_surface.ts +0 -237
  297. package/core/block_dragger.ts +0 -447
  298. package/core/block_svg.ts +0 -1758
  299. package/core/blockly.js +0 -890
  300. package/core/blockly.ts +0 -749
  301. package/core/blockly_options.ts +0 -81
  302. package/core/blocks.ts +0 -29
  303. package/core/browser_events.ts +0 -289
  304. package/core/bubble.ts +0 -892
  305. package/core/bubble_dragger.ts +0 -229
  306. package/core/bump_objects.ts +0 -182
  307. package/core/clipboard.ts +0 -91
  308. package/core/comment.ts +0 -398
  309. package/core/common.ts +0 -288
  310. package/core/component_manager.ts +0 -211
  311. package/core/config.ts +0 -80
  312. package/core/connection.ts +0 -692
  313. package/core/connection_checker.ts +0 -301
  314. package/core/connection_db.ts +0 -289
  315. package/core/connection_type.ts +0 -32
  316. package/core/constants.ts +0 -29
  317. package/core/contextmenu.ts +0 -363
  318. package/core/contextmenu_items.ts +0 -576
  319. package/core/contextmenu_registry.ts +0 -179
  320. package/core/css.ts +0 -560
  321. package/core/delete_area.ts +0 -82
  322. package/core/dialog.ts +0 -127
  323. package/core/drag_target.ts +0 -94
  324. package/core/dropdowndiv.ts +0 -683
  325. package/core/events/events.ts +0 -123
  326. package/core/events/events_abstract.ts +0 -112
  327. package/core/events/events_block_base.ts +0 -65
  328. package/core/events/events_block_change.ts +0 -176
  329. package/core/events/events_block_create.ts +0 -114
  330. package/core/events/events_block_delete.ts +0 -126
  331. package/core/events/events_block_drag.ts +0 -82
  332. package/core/events/events_block_move.ts +0 -206
  333. package/core/events/events_bubble_open.ts +0 -82
  334. package/core/events/events_click.ts +0 -84
  335. package/core/events/events_comment_base.ts +0 -107
  336. package/core/events/events_comment_change.ts +0 -108
  337. package/core/events/events_comment_create.ts +0 -82
  338. package/core/events/events_comment_delete.ts +0 -77
  339. package/core/events/events_comment_move.ts +0 -154
  340. package/core/events/events_marker_move.ts +0 -99
  341. package/core/events/events_selected.ts +0 -78
  342. package/core/events/events_theme_change.ts +0 -67
  343. package/core/events/events_toolbox_item_select.ts +0 -79
  344. package/core/events/events_trashcan_open.ts +0 -68
  345. package/core/events/events_ui.ts +0 -89
  346. package/core/events/events_ui_base.ts +0 -54
  347. package/core/events/events_var_base.ts +0 -65
  348. package/core/events/events_var_create.ts +0 -88
  349. package/core/events/events_var_delete.ts +0 -88
  350. package/core/events/events_var_rename.ts +0 -89
  351. package/core/events/events_viewport.ts +0 -100
  352. package/core/events/utils.ts +0 -529
  353. package/core/events/workspace_events.ts +0 -86
  354. package/core/extensions.ts +0 -504
  355. package/core/field.ts +0 -1206
  356. package/core/field_angle.ts +0 -563
  357. package/core/field_checkbox.ts +0 -243
  358. package/core/field_colour.ts +0 -632
  359. package/core/field_dropdown.ts +0 -773
  360. package/core/field_image.ts +0 -282
  361. package/core/field_label.ts +0 -152
  362. package/core/field_label_serializable.ts +0 -76
  363. package/core/field_multilineinput.ts +0 -466
  364. package/core/field_number.ts +0 -327
  365. package/core/field_registry.ts +0 -87
  366. package/core/field_textinput.ts +0 -591
  367. package/core/field_variable.ts +0 -545
  368. package/core/flyout_base.ts +0 -1165
  369. package/core/flyout_button.ts +0 -292
  370. package/core/flyout_horizontal.ts +0 -381
  371. package/core/flyout_metrics_manager.ts +0 -94
  372. package/core/flyout_vertical.ts +0 -384
  373. package/core/generator.ts +0 -539
  374. package/core/gesture.ts +0 -946
  375. package/core/grid.ts +0 -192
  376. package/core/icon.ts +0 -189
  377. package/core/inject.ts +0 -390
  378. package/core/input.ts +0 -309
  379. package/core/input_types.ts +0 -32
  380. package/core/insertion_marker_manager.ts +0 -788
  381. package/core/interfaces/i_ast_node_location.ts +0 -23
  382. package/core/interfaces/i_ast_node_location_svg.ts +0 -37
  383. package/core/interfaces/i_ast_node_location_with_block.ts +0 -38
  384. package/core/interfaces/i_autohideable.ts +0 -34
  385. package/core/interfaces/i_block_dragger.ts +0 -67
  386. package/core/interfaces/i_bounded_element.ts +0 -42
  387. package/core/interfaces/i_bubble.ts +0 -88
  388. package/core/interfaces/i_collapsible_toolbox_item.ts +0 -47
  389. package/core/interfaces/i_component.ts +0 -32
  390. package/core/interfaces/i_connection_checker.ts +0 -102
  391. package/core/interfaces/i_contextmenu.ts +0 -26
  392. package/core/interfaces/i_copyable.ts +0 -40
  393. package/core/interfaces/i_deletable.ts +0 -29
  394. package/core/interfaces/i_delete_area.ts +0 -46
  395. package/core/interfaces/i_drag_target.ts +0 -84
  396. package/core/interfaces/i_draggable.ts +0 -25
  397. package/core/interfaces/i_flyout.ts +0 -186
  398. package/core/interfaces/i_keyboard_accessible.ts +0 -35
  399. package/core/interfaces/i_metrics_manager.ts +0 -151
  400. package/core/interfaces/i_movable.ts +0 -29
  401. package/core/interfaces/i_positionable.ts +0 -50
  402. package/core/interfaces/i_registrable.ts +0 -25
  403. package/core/interfaces/i_registrable_field.ts +0 -31
  404. package/core/interfaces/i_selectable.ts +0 -34
  405. package/core/interfaces/i_selectable_toolbox_item.ts +0 -64
  406. package/core/interfaces/i_serializer.ts +0 -65
  407. package/core/interfaces/i_styleable.ts +0 -35
  408. package/core/interfaces/i_toolbox.ts +0 -127
  409. package/core/interfaces/i_toolbox_item.ts +0 -84
  410. package/core/internal_constants.ts +0 -67
  411. package/core/keyboard_nav/ast_node.ts +0 -717
  412. package/core/keyboard_nav/basic_cursor.ts +0 -214
  413. package/core/keyboard_nav/cursor.ts +0 -134
  414. package/core/keyboard_nav/marker.ts +0 -115
  415. package/core/keyboard_nav/tab_navigate_cursor.ts +0 -48
  416. package/core/main.js +0 -303
  417. package/core/marker_manager.ts +0 -181
  418. package/core/menu.ts +0 -449
  419. package/core/menuitem.ts +0 -240
  420. package/core/metrics_manager.ts +0 -456
  421. package/core/msg.ts +0 -20
  422. package/core/mutator.ts +0 -560
  423. package/core/names.ts +0 -267
  424. package/core/options.ts +0 -365
  425. package/core/positionable_helpers.ts +0 -181
  426. package/core/procedures.ts +0 -443
  427. package/core/registry.ts +0 -339
  428. package/core/rendered_connection.ts +0 -568
  429. package/core/renderers/common/block_rendering.ts +0 -164
  430. package/core/renderers/common/constants.ts +0 -1124
  431. package/core/renderers/common/debug.ts +0 -61
  432. package/core/renderers/common/debugger.ts +0 -433
  433. package/core/renderers/common/drawer.ts +0 -450
  434. package/core/renderers/common/i_path_object.ts +0 -161
  435. package/core/renderers/common/info.ts +0 -718
  436. package/core/renderers/common/marker_svg.ts +0 -680
  437. package/core/renderers/common/path_object.ts +0 -272
  438. package/core/renderers/common/renderer.ts +0 -271
  439. package/core/renderers/geras/constants.ts +0 -61
  440. package/core/renderers/geras/drawer.ts +0 -176
  441. package/core/renderers/geras/geras.ts +0 -37
  442. package/core/renderers/geras/highlight_constants.ts +0 -337
  443. package/core/renderers/geras/highlighter.ts +0 -306
  444. package/core/renderers/geras/info.ts +0 -450
  445. package/core/renderers/geras/measurables/inline_input.ts +0 -51
  446. package/core/renderers/geras/measurables/statement_input.ts +0 -50
  447. package/core/renderers/geras/path_object.ts +0 -138
  448. package/core/renderers/geras/renderer.ts +0 -126
  449. package/core/renderers/measurables/base.ts +0 -53
  450. package/core/renderers/measurables/bottom_row.ts +0 -120
  451. package/core/renderers/measurables/connection.ts +0 -52
  452. package/core/renderers/measurables/external_value_input.ts +0 -65
  453. package/core/renderers/measurables/field.ts +0 -63
  454. package/core/renderers/measurables/hat.ts +0 -48
  455. package/core/renderers/measurables/icon.ts +0 -54
  456. package/core/renderers/measurables/in_row_spacer.ts +0 -44
  457. package/core/renderers/measurables/inline_input.ts +0 -76
  458. package/core/renderers/measurables/input_connection.ts +0 -66
  459. package/core/renderers/measurables/input_row.ts +0 -82
  460. package/core/renderers/measurables/jagged_edge.ts +0 -43
  461. package/core/renderers/measurables/next_connection.ts +0 -47
  462. package/core/renderers/measurables/output_connection.ts +0 -56
  463. package/core/renderers/measurables/previous_connection.ts +0 -47
  464. package/core/renderers/measurables/round_corner.ts +0 -49
  465. package/core/renderers/measurables/row.ts +0 -225
  466. package/core/renderers/measurables/spacer_row.ts +0 -55
  467. package/core/renderers/measurables/square_corner.ts +0 -47
  468. package/core/renderers/measurables/statement_input.ts +0 -55
  469. package/core/renderers/measurables/top_row.ts +0 -122
  470. package/core/renderers/measurables/types.ts +0 -332
  471. package/core/renderers/minimalist/constants.ts +0 -32
  472. package/core/renderers/minimalist/drawer.ts +0 -38
  473. package/core/renderers/minimalist/info.ts +0 -52
  474. package/core/renderers/minimalist/minimalist.ts +0 -22
  475. package/core/renderers/minimalist/renderer.ts +0 -71
  476. package/core/renderers/thrasos/info.ts +0 -338
  477. package/core/renderers/thrasos/renderer.ts +0 -48
  478. package/core/renderers/thrasos/thrasos.ts +0 -20
  479. package/core/renderers/zelos/constants.ts +0 -858
  480. package/core/renderers/zelos/drawer.ts +0 -228
  481. package/core/renderers/zelos/info.ts +0 -593
  482. package/core/renderers/zelos/marker_svg.ts +0 -151
  483. package/core/renderers/zelos/measurables/bottom_row.ts +0 -53
  484. package/core/renderers/zelos/measurables/inputs.ts +0 -56
  485. package/core/renderers/zelos/measurables/row_elements.ts +0 -45
  486. package/core/renderers/zelos/measurables/top_row.ts +0 -58
  487. package/core/renderers/zelos/path_object.ts +0 -215
  488. package/core/renderers/zelos/renderer.ts +0 -142
  489. package/core/renderers/zelos/zelos.ts +0 -39
  490. package/core/scrollbar.ts +0 -870
  491. package/core/scrollbar_pair.ts +0 -321
  492. package/core/serialization/blocks.ts +0 -706
  493. package/core/serialization/exceptions.ts +0 -98
  494. package/core/serialization/priorities.ts +0 -32
  495. package/core/serialization/registry.ts +0 -43
  496. package/core/serialization/variables.ts +0 -96
  497. package/core/serialization/workspaces.ts +0 -106
  498. package/core/shortcut_items.ts +0 -266
  499. package/core/shortcut_registry.ts +0 -355
  500. package/core/sprites.ts +0 -29
  501. package/core/theme/classic.ts +0 -54
  502. package/core/theme/themes.ts +0 -22
  503. package/core/theme/zelos.ts +0 -91
  504. package/core/theme.ts +0 -221
  505. package/core/theme_manager.ts +0 -186
  506. package/core/toolbox/category.ts +0 -679
  507. package/core/toolbox/collapsible_category.ts +0 -273
  508. package/core/toolbox/separator.ts +0 -105
  509. package/core/toolbox/toolbox.ts +0 -1044
  510. package/core/toolbox/toolbox_item.ts +0 -147
  511. package/core/tooltip.ts +0 -463
  512. package/core/touch.ts +0 -306
  513. package/core/touch_gesture.ts +0 -295
  514. package/core/trashcan.ts +0 -671
  515. package/core/utils/aria.ts +0 -160
  516. package/core/utils/array.ts +0 -32
  517. package/core/utils/colour.ts +0 -276
  518. package/core/utils/coordinate.ts +0 -124
  519. package/core/utils/deprecation.ts +0 -41
  520. package/core/utils/dom.ts +0 -408
  521. package/core/utils/idgenerator.ts +0 -80
  522. package/core/utils/keycodes.ts +0 -169
  523. package/core/utils/math.ts +0 -61
  524. package/core/utils/metrics.ts +0 -97
  525. package/core/utils/object.ts +0 -95
  526. package/core/utils/parsing.ts +0 -261
  527. package/core/utils/rect.ts +0 -62
  528. package/core/utils/sentinel.ts +0 -23
  529. package/core/utils/size.ts +0 -51
  530. package/core/utils/string.ts +0 -308
  531. package/core/utils/style.ts +0 -306
  532. package/core/utils/svg.ts +0 -88
  533. package/core/utils/svg_math.ts +0 -269
  534. package/core/utils/svg_paths.ts +0 -140
  535. package/core/utils/toolbox.ts +0 -433
  536. package/core/utils/useragent.ts +0 -135
  537. package/core/utils/xml.ts +0 -97
  538. package/core/utils.ts +0 -428
  539. package/core/variable_map.ts +0 -392
  540. package/core/variable_model.ts +0 -82
  541. package/core/variables.ts +0 -596
  542. package/core/variables_dynamic.ts +0 -133
  543. package/core/warning.ts +0 -161
  544. package/core/widgetdiv.ts +0 -257
  545. package/core/workspace.ts +0 -801
  546. package/core/workspace_audio.ts +0 -156
  547. package/core/workspace_comment.ts +0 -398
  548. package/core/workspace_comment_svg.ts +0 -1127
  549. package/core/workspace_drag_surface_svg.ts +0 -187
  550. package/core/workspace_dragger.ts +0 -104
  551. package/core/workspace_svg.ts +0 -2655
  552. package/core/xml.ts +0 -1023
  553. package/core/zoom_controls.ts +0 -441
  554. package/generators/dart/all.js +0 -27
  555. package/generators/dart/colour.js +0 -105
  556. package/generators/dart/lists.js +0 -431
  557. package/generators/dart/logic.js +0 -123
  558. package/generators/dart/loops.js +0 -161
  559. package/generators/dart/math.js +0 -446
  560. package/generators/dart/procedures.js +0 -105
  561. package/generators/dart/text.js +0 -338
  562. package/generators/dart/variables.js +0 -32
  563. package/generators/dart/variables_dynamic.js +0 -21
  564. package/generators/dart.js +0 -303
  565. package/generators/javascript/all.js +0 -27
  566. package/generators/javascript/colour.js +0 -85
  567. package/generators/javascript/lists.js +0 -405
  568. package/generators/javascript/logic.js +0 -127
  569. package/generators/javascript/loops.js +0 -180
  570. package/generators/javascript/math.js +0 -401
  571. package/generators/javascript/procedures.js +0 -110
  572. package/generators/javascript/text.js +0 -371
  573. package/generators/javascript/variables.js +0 -32
  574. package/generators/javascript/variables_dynamic.js +0 -21
  575. package/generators/javascript.js +0 -322
  576. package/generators/lua/all.js +0 -27
  577. package/generators/lua/colour.js +0 -71
  578. package/generators/lua/lists.js +0 -348
  579. package/generators/lua/logic.js +0 -112
  580. package/generators/lua/loops.js +0 -168
  581. package/generators/lua/math.js +0 -406
  582. package/generators/lua/procedures.js +0 -106
  583. package/generators/lua/text.js +0 -327
  584. package/generators/lua/variables.js +0 -31
  585. package/generators/lua/variables_dynamic.js +0 -21
  586. package/generators/lua.js +0 -206
  587. package/generators/php/all.js +0 -27
  588. package/generators/php/colour.js +0 -81
  589. package/generators/php/lists.js +0 -481
  590. package/generators/php/logic.js +0 -119
  591. package/generators/php/loops.js +0 -161
  592. package/generators/php/math.js +0 -349
  593. package/generators/php/procedures.js +0 -125
  594. package/generators/php/text.js +0 -255
  595. package/generators/php/variables.js +0 -32
  596. package/generators/php/variables_dynamic.js +0 -21
  597. package/generators/php.js +0 -303
  598. package/generators/python/all.js +0 -27
  599. package/generators/python/colour.js +0 -67
  600. package/generators/python/lists.js +0 -346
  601. package/generators/python/logic.js +0 -120
  602. package/generators/python/loops.js +0 -206
  603. package/generators/python/math.js +0 -373
  604. package/generators/python/procedures.js +0 -129
  605. package/generators/python/text.js +0 -291
  606. package/generators/python/variables.js +0 -32
  607. package/generators/python/variables_dynamic.js +0 -21
  608. package/generators/python.js +0 -333
@@ -1,433 +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
-
11
- /**
12
- * Utility functions for the toolbox and flyout.
13
- * @namespace Blockly.utils.toolbox
14
- */
15
- import * as goog from '../../closure/goog/goog.js';
16
- goog.declareModuleId('Blockly.utils.toolbox');
17
-
18
- /* eslint-disable-next-line no-unused-vars */
19
- // Unused import preserved for side-effects. Remove if unneeded.
20
- // import '../toolbox/category.js';
21
- /* eslint-disable-next-line no-unused-vars */
22
- // Unused import preserved for side-effects. Remove if unneeded.
23
- // import '../toolbox/separator.js';
24
-
25
- import type {ConnectionState} from '../serialization/blocks.js';
26
- import type {CssConfig as CategoryCssConfig} from '../toolbox/category.js';
27
- import type {CssConfig as SeparatorCssConfig} from '../toolbox/separator.js';
28
- import * as Xml from '../xml.js';
29
- import * as userAgent from './useragent.js';
30
-
31
-
32
- /**
33
- * The information needed to create a block in the toolbox.
34
- * Note that disabled has a different type for backwards compatibility.
35
- * @alias Blockly.utils.toolbox.BlockInfo
36
- */
37
- export interface BlockInfo {
38
- kind: string;
39
- blockxml?: string|Node;
40
- type?: string;
41
- gap?: string|number;
42
- disabled?: string|boolean;
43
- enabled?: boolean;
44
- id?: string;
45
- x?: number;
46
- y?: number;
47
- collapsed?: boolean;
48
- inline?: boolean;
49
- data?: string;
50
- extraState?: AnyDuringMigration;
51
- icons?: {[key: string]: AnyDuringMigration};
52
- fields?: {[key: string]: AnyDuringMigration};
53
- inputs?: {[key: string]: ConnectionState};
54
- next?: ConnectionState;
55
- }
56
-
57
- /**
58
- * The information needed to create a separator in the toolbox.
59
- * @alias Blockly.utils.toolbox.SeparatorInfo
60
- */
61
- export interface SeparatorInfo {
62
- kind: string;
63
- id: string|undefined;
64
- gap: number|undefined;
65
- cssconfig: SeparatorCssConfig|undefined;
66
- }
67
-
68
- /**
69
- * The information needed to create a button in the toolbox.
70
- * @alias Blockly.utils.toolbox.ButtonInfo
71
- */
72
- export interface ButtonInfo {
73
- kind: string;
74
- text: string;
75
- callbackkey: string;
76
- }
77
-
78
- /**
79
- * The information needed to create a label in the toolbox.
80
- * @alias Blockly.utils.toolbox.LabelInfo
81
- */
82
- export interface LabelInfo {
83
- kind: string;
84
- text: string;
85
- id: string|undefined;
86
- }
87
-
88
- /**
89
- * The information needed to create either a button or a label in the flyout.
90
- * @alias Blockly.utils.toolbox.ButtonOrLabelInfo
91
- */
92
- export type ButtonOrLabelInfo = ButtonInfo|LabelInfo;
93
-
94
- /**
95
- * The information needed to create a category in the toolbox.
96
- * @alias Blockly.utils.toolbox.StaticCategoryInfo
97
- */
98
- export interface StaticCategoryInfo {
99
- kind: string;
100
- name: string;
101
- contents: ToolboxItemInfo[];
102
- id: string|undefined;
103
- categorystyle: string|undefined;
104
- colour: string|undefined;
105
- cssconfig: CategoryCssConfig|undefined;
106
- hidden: string|undefined;
107
- }
108
-
109
- /**
110
- * The information needed to create a custom category.
111
- * @alias Blockly.utils.toolbox.DynamicCategoryInfo
112
- */
113
- export interface DynamicCategoryInfo {
114
- kind: string;
115
- custom: string;
116
- id: string|undefined;
117
- categorystyle: string|undefined;
118
- colour: string|undefined;
119
- cssconfig: CategoryCssConfig|undefined;
120
- hidden: string|undefined;
121
- }
122
-
123
- /**
124
- * The information needed to create either a dynamic or static category.
125
- * @alias Blockly.utils.toolbox.CategoryInfo
126
- */
127
- export type CategoryInfo = StaticCategoryInfo|DynamicCategoryInfo;
128
-
129
- /**
130
- * Any information that can be used to create an item in the toolbox.
131
- * @alias Blockly.utils.toolbox.ToolboxItemInfo
132
- */
133
- export type ToolboxItemInfo = FlyoutItemInfo|StaticCategoryInfo;
134
-
135
- /**
136
- * All the different types that can be displayed in a flyout.
137
- * @alias Blockly.utils.toolbox.FlyoutItemInfo
138
- */
139
- export type FlyoutItemInfo =
140
- BlockInfo|SeparatorInfo|ButtonInfo|LabelInfo|DynamicCategoryInfo;
141
-
142
- /**
143
- * The JSON definition of a toolbox.
144
- * @alias Blockly.utils.toolbox.ToolboxInfo
145
- */
146
- export interface ToolboxInfo {
147
- kind?: string;
148
- contents: ToolboxItemInfo[];
149
- }
150
-
151
- /**
152
- * An array holding flyout items.
153
- * @alias Blockly.utils.toolbox.FlyoutItemInfoArray
154
- */
155
- export type FlyoutItemInfoArray = FlyoutItemInfo[];
156
-
157
- /**
158
- * All of the different types that can create a toolbox.
159
- * @alias Blockly.utils.toolbox.ToolboxDefinition
160
- */
161
- export type ToolboxDefinition = Node|ToolboxInfo|string;
162
-
163
- /**
164
- * All of the different types that can be used to show items in a flyout.
165
- * @alias Blockly.utils.toolbox.FlyoutDefinition
166
- */
167
- export type FlyoutDefinition = FlyoutItemInfoArray|NodeList|ToolboxInfo|Node[];
168
-
169
- /**
170
- * The name used to identify a toolbox that has category like items.
171
- * This only needs to be used if a toolbox wants to be treated like a category
172
- * toolbox but does not actually contain any toolbox items with the kind
173
- * 'category'.
174
- */
175
- const CATEGORY_TOOLBOX_KIND = 'categoryToolbox';
176
-
177
- /**
178
- * The name used to identify a toolbox that has no categories and is displayed
179
- * as a simple flyout displaying blocks, buttons, or labels.
180
- */
181
- const FLYOUT_TOOLBOX_KIND = 'flyoutToolbox';
182
-
183
- /**
184
- * Position of the toolbox and/or flyout relative to the workspace.
185
- * @alias Blockly.utils.toolbox.Position
186
- */
187
- export enum Position {
188
- TOP,
189
- BOTTOM,
190
- LEFT,
191
- RIGHT
192
- }
193
-
194
- /**
195
- * Converts the toolbox definition into toolbox JSON.
196
- * @param toolboxDef The definition of the toolbox in one of its many forms.
197
- * @return Object holding information for creating a toolbox.
198
- * @alias Blockly.utils.toolbox.convertToolboxDefToJson
199
- * @internal
200
- */
201
- export function convertToolboxDefToJson(toolboxDef: ToolboxDefinition|
202
- null): ToolboxInfo|null {
203
- if (!toolboxDef) {
204
- return null;
205
- }
206
-
207
- if (toolboxDef instanceof Element || typeof toolboxDef === 'string') {
208
- toolboxDef = parseToolboxTree(toolboxDef);
209
- // AnyDuringMigration because: Argument of type 'Node | null' is not
210
- // assignable to parameter of type 'Node'.
211
- toolboxDef = convertToToolboxJson(toolboxDef as AnyDuringMigration);
212
- }
213
-
214
- const toolboxJson = toolboxDef as ToolboxInfo;
215
- validateToolbox(toolboxJson);
216
- return toolboxJson;
217
- }
218
-
219
- /**
220
- * Validates the toolbox JSON fields have been set correctly.
221
- * @param toolboxJson Object holding information for creating a toolbox.
222
- * @throws {Error} if the toolbox is not the correct format.
223
- */
224
- function validateToolbox(toolboxJson: ToolboxInfo) {
225
- const toolboxKind = toolboxJson['kind'];
226
- const toolboxContents = toolboxJson['contents'];
227
-
228
- if (toolboxKind) {
229
- if (toolboxKind !== FLYOUT_TOOLBOX_KIND &&
230
- toolboxKind !== CATEGORY_TOOLBOX_KIND) {
231
- throw Error(
232
- 'Invalid toolbox kind ' + toolboxKind + '.' +
233
- ' Please supply either ' + FLYOUT_TOOLBOX_KIND + ' or ' +
234
- CATEGORY_TOOLBOX_KIND);
235
- }
236
- }
237
- if (!toolboxContents) {
238
- throw Error('Toolbox must have a contents attribute.');
239
- }
240
- }
241
-
242
- /**
243
- * Converts the flyout definition into a list of flyout items.
244
- * @param flyoutDef The definition of the flyout in one of its many forms.
245
- * @return A list of flyout items.
246
- * @alias Blockly.utils.toolbox.convertFlyoutDefToJsonArray
247
- * @internal
248
- */
249
- export function convertFlyoutDefToJsonArray(flyoutDef: FlyoutDefinition|
250
- null): FlyoutItemInfoArray {
251
- if (!flyoutDef) {
252
- return [];
253
- }
254
-
255
- if ((flyoutDef as AnyDuringMigration)['contents']) {
256
- return (flyoutDef as AnyDuringMigration)['contents'];
257
- }
258
- // If it is already in the correct format return the flyoutDef.
259
- // AnyDuringMigration because: Property 'nodeType' does not exist on type
260
- // 'Node | FlyoutItemInfo'.
261
- if (Array.isArray(flyoutDef) && flyoutDef.length > 0 &&
262
- !((flyoutDef[0]) as AnyDuringMigration).nodeType) {
263
- // AnyDuringMigration because: Type 'FlyoutItemInfoArray | Node[]' is not
264
- // assignable to type 'FlyoutItemInfoArray'.
265
- return flyoutDef as AnyDuringMigration;
266
- }
267
-
268
- // AnyDuringMigration because: Type 'ToolboxItemInfo[] | FlyoutItemInfoArray'
269
- // is not assignable to type 'FlyoutItemInfoArray'.
270
- return xmlToJsonArray(flyoutDef as Node[] | NodeList) as AnyDuringMigration;
271
- }
272
-
273
- /**
274
- * Whether or not the toolbox definition has categories.
275
- * @param toolboxJson Object holding information for creating a toolbox.
276
- * @return True if the toolbox has categories.
277
- * @alias Blockly.utils.toolbox.hasCategories
278
- * @internal
279
- */
280
- export function hasCategories(toolboxJson: ToolboxInfo|null): boolean {
281
- return TEST_ONLY.hasCategoriesInternal(toolboxJson);
282
- }
283
-
284
- /**
285
- * Private version of hasCategories for stubbing in tests.
286
- */
287
- function hasCategoriesInternal(toolboxJson: ToolboxInfo|null): boolean {
288
- if (!toolboxJson) {
289
- return false;
290
- }
291
-
292
- const toolboxKind = toolboxJson['kind'];
293
- if (toolboxKind) {
294
- return toolboxKind === CATEGORY_TOOLBOX_KIND;
295
- }
296
-
297
- const categories = toolboxJson['contents'].filter(function(item) {
298
- return item['kind'].toUpperCase() === 'CATEGORY';
299
- });
300
- return !!categories.length;
301
- }
302
-
303
- /**
304
- * Whether or not the category is collapsible.
305
- * @param categoryInfo Object holing information for creating a category.
306
- * @return True if the category has subcategories.
307
- * @alias Blockly.utils.toolbox.isCategoryCollapsible
308
- * @internal
309
- */
310
- export function isCategoryCollapsible(categoryInfo: CategoryInfo): boolean {
311
- if (!categoryInfo || !(categoryInfo as AnyDuringMigration)['contents']) {
312
- return false;
313
- }
314
-
315
- const categories =
316
- (categoryInfo as AnyDuringMigration)['contents'].filter(function(
317
- item: AnyDuringMigration) {
318
- return item['kind'].toUpperCase() === 'CATEGORY';
319
- });
320
- return !!categories.length;
321
- }
322
-
323
- /**
324
- * Parses the provided toolbox definition into a consistent format.
325
- * @param toolboxDef The definition of the toolbox in one of its many forms.
326
- * @return Object holding information for creating a toolbox.
327
- */
328
- function convertToToolboxJson(toolboxDef: Node): ToolboxInfo {
329
- const contents = xmlToJsonArray(toolboxDef as Node | Node[]);
330
- const toolboxJson = {'contents': contents};
331
- if (toolboxDef instanceof Node) {
332
- addAttributes(toolboxDef, toolboxJson);
333
- }
334
- return toolboxJson;
335
- }
336
-
337
- /**
338
- * Converts the xml for a toolbox to JSON.
339
- * @param toolboxDef The definition of the toolbox in one of its many forms.
340
- * @return A list of objects in the toolbox.
341
- */
342
- function xmlToJsonArray(toolboxDef: Node|Node[]|NodeList): FlyoutItemInfoArray|
343
- ToolboxItemInfo[] {
344
- const arr = [];
345
- // If it is a node it will have children.
346
- // AnyDuringMigration because: Property 'childNodes' does not exist on type
347
- // 'Node | NodeList | Node[]'.
348
- let childNodes = (toolboxDef as AnyDuringMigration).childNodes;
349
- if (!childNodes) {
350
- // Otherwise the toolboxDef is an array or collection.
351
- childNodes = toolboxDef;
352
- }
353
- for (let i = 0, child; child = childNodes[i]; i++) {
354
- if (!child.tagName) {
355
- continue;
356
- }
357
- const obj = {};
358
- const tagName = child.tagName.toUpperCase();
359
- (obj as AnyDuringMigration)['kind'] = tagName;
360
-
361
- // Store the XML for a block.
362
- if (tagName === 'BLOCK') {
363
- (obj as AnyDuringMigration)['blockxml'] = child;
364
- } else if (child.childNodes && child.childNodes.length > 0) {
365
- // Get the contents of a category
366
- (obj as AnyDuringMigration)['contents'] = xmlToJsonArray(child);
367
- }
368
-
369
- // Add XML attributes to object
370
- addAttributes(child, obj);
371
- arr.push(obj);
372
- }
373
- // AnyDuringMigration because: Type '{}[]' is not assignable to type
374
- // 'ToolboxItemInfo[] | FlyoutItemInfoArray'.
375
- return arr as AnyDuringMigration;
376
- }
377
-
378
- /**
379
- * Adds the attributes on the node to the given object.
380
- * @param node The node to copy the attributes from.
381
- * @param obj The object to copy the attributes to.
382
- */
383
- function addAttributes(node: Node, obj: AnyDuringMigration) {
384
- // AnyDuringMigration because: Property 'attributes' does not exist on type
385
- // 'Node'.
386
- for (let j = 0; j < (node as AnyDuringMigration).attributes.length; j++) {
387
- // AnyDuringMigration because: Property 'attributes' does not exist on type
388
- // 'Node'.
389
- const attr = (node as AnyDuringMigration).attributes[j];
390
- if (attr.nodeName.indexOf('css-') > -1) {
391
- obj['cssconfig'] = obj['cssconfig'] || {};
392
- obj['cssconfig'][attr.nodeName.replace('css-', '')] = attr.value;
393
- } else {
394
- obj[attr.nodeName] = attr.value;
395
- }
396
- }
397
- }
398
-
399
- /**
400
- * Parse the provided toolbox tree into a consistent DOM format.
401
- * @param toolboxDef DOM tree of blocks, or text representation of same.
402
- * @return DOM tree of blocks, or null.
403
- * @alias Blockly.utils.toolbox.parseToolboxTree
404
- */
405
- export function parseToolboxTree(toolboxDef: Element|null|string): Element|
406
- null {
407
- if (toolboxDef) {
408
- if (typeof toolboxDef !== 'string') {
409
- if (userAgent.IE && toolboxDef.outerHTML) {
410
- // In this case the tree will not have been properly built by the
411
- // browser. The HTML will be contained in the element, but it will
412
- // not have the proper DOM structure since the browser doesn't support
413
- // XSLTProcessor (XML -> HTML).
414
- toolboxDef = toolboxDef.outerHTML;
415
- } else if (!(toolboxDef instanceof Element)) {
416
- toolboxDef = null;
417
- }
418
- }
419
- if (typeof toolboxDef === 'string') {
420
- toolboxDef = Xml.textToDom(toolboxDef);
421
- if (toolboxDef.nodeName.toLowerCase() !== 'xml') {
422
- throw TypeError('Toolbox should be an <xml> document.');
423
- }
424
- }
425
- } else {
426
- toolboxDef = null;
427
- }
428
- return toolboxDef;
429
- }
430
-
431
- export const TEST_ONLY = {
432
- hasCategoriesInternal,
433
- }
@@ -1,135 +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
-
13
- /**
14
- * Useragent detection.
15
- * These methods are not specific to Blockly, and could be factored out into
16
- * a JavaScript framework such as Closure.
17
- * @namespace Blockly.utils.userAgent
18
- */
19
- import * as goog from '../../closure/goog/goog.js';
20
- goog.declareModuleId('Blockly.utils.userAgent');
21
-
22
-
23
- /** The raw useragent string. */
24
- let rawUserAgent: string;
25
-
26
- let isIe: boolean;
27
-
28
- let isEdge: boolean;
29
-
30
- let isJavaFx: boolean;
31
-
32
- let isChrome: boolean;
33
-
34
- let isWebKit: boolean;
35
-
36
- let isGecko: boolean;
37
-
38
- let isAndroid: boolean;
39
-
40
- let isIPad: boolean;
41
-
42
- let isIPod: boolean;
43
-
44
- let isIPhone: boolean;
45
-
46
- let isMac: boolean;
47
-
48
- let isTablet: boolean;
49
-
50
- let isMobile: boolean;
51
-
52
- (function(raw) {
53
- rawUserAgent = raw;
54
- const rawUpper = rawUserAgent.toUpperCase();
55
- /**
56
- * Case-insensitive test of whether name is in the useragent string.
57
- * @param name Name to test.
58
- * @return True if name is present.
59
- */
60
- function has(name: string): boolean {
61
- return rawUpper.indexOf(name.toUpperCase()) !== -1;
62
- }
63
-
64
- // Browsers. Logic from:
65
- // https://github.com/google/closure-library/blob/master/closure/goog/labs/useragent/browser.js
66
- isIe = has('Trident') || has('MSIE');
67
- isEdge = has('Edge');
68
- // Useragent for JavaFX:
69
- // Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.44
70
- // (KHTML, like Gecko) JavaFX/8.0 Safari/537.44
71
- isJavaFx = has('JavaFX');
72
- isChrome = (has('Chrome') || has('CriOS')) && !isEdge;
73
-
74
- // Engines. Logic from:
75
- // https://github.com/google/closure-library/blob/master/closure/goog/labs/useragent/engine.js
76
- isWebKit = has('WebKit') && !isEdge;
77
- isGecko = has('Gecko') && !isWebKit && !isIe && !isEdge;
78
-
79
- // Platforms. Logic from:
80
- // https://github.com/google/closure-library/blob/master/closure/goog/labs/useragent/platform.js
81
- // and
82
- // https://github.com/google/closure-library/blob/master/closure/goog/labs/useragent/extra.js
83
- isAndroid = has('Android');
84
- const maxTouchPoints =
85
- globalThis['navigator'] && globalThis['navigator']['maxTouchPoints'];
86
- isIPad = has('iPad') || has('Macintosh') && maxTouchPoints > 0;
87
- isIPod = has('iPod');
88
- isIPhone = has('iPhone') && !isIPad && !isIPod;
89
- isMac = has('Macintosh');
90
-
91
- // Devices. Logic from:
92
- // https://github.com/google/closure-library/blob/master/closure/goog/labs/useragent/device.js
93
- isTablet = isIPad || isAndroid && !has('Mobile') || has('Silk');
94
- isMobile = !isTablet && (isIPod || isIPhone || isAndroid || has('IEMobile'));
95
- })(globalThis['navigator'] && globalThis['navigator']['userAgent'] || '');
96
-
97
- /** @alias Blockly.utils.userAgent.raw */
98
- export const raw: string = rawUserAgent;
99
-
100
- /** @alias Blockly.utils.userAgent.IE */
101
- export const IE: boolean = isIe;
102
-
103
- /** @alias Blockly.utils.userAgent.EDGE */
104
- export const EDGE: boolean = isEdge;
105
-
106
- /** @alias Blockly.utils.userAgent.JavaFx */
107
- export const JavaFx: boolean = isJavaFx;
108
-
109
- /** @alias Blockly.utils.userAgent.CHROME */
110
- export const CHROME: boolean = isChrome;
111
-
112
- /** @alias Blockly.utils.userAgent.WEBKIT */
113
- export const WEBKIT: boolean = isWebKit;
114
- /** @alias Blockly.utils.userAgent.GECKO */
115
- export const GECKO: boolean = isGecko;
116
-
117
- /** @alias Blockly.utils.userAgent.ANDROID */
118
- export const ANDROID: boolean = isAndroid;
119
-
120
- /** @alias Blockly.utils.userAgent.IPAD */
121
- export const IPAD: boolean = isIPad;
122
- /** @alias Blockly.utils.userAgent.IPOD */
123
- export const IPOD: boolean = isIPod;
124
-
125
- /** @alias Blockly.utils.userAgent.IPHONE */
126
- export const IPHONE: boolean = isIPhone;
127
-
128
- /** @alias Blockly.utils.userAgent.MAC */
129
- export const MAC: boolean = isMac;
130
-
131
- /** @alias Blockly.utils.userAgent.TABLET */
132
- export const TABLET: boolean = isTablet;
133
-
134
- /** @alias Blockly.utils.userAgent.MOBILE */
135
- export const MOBILE: boolean = isMobile;
package/core/utils/xml.ts DELETED
@@ -1,97 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2018 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview XML element manipulation.
9
- * These methods are not specific to Blockly, and could be factored out into
10
- * a JavaScript framework such as Closure.
11
- */
12
-
13
- /**
14
- * XML element manipulation.
15
- * These methods are not specific to Blockly, and could be factored out into
16
- * a JavaScript framework such as Closure.
17
- * @namespace Blockly.utils.xml
18
- */
19
- import * as goog from '../../closure/goog/goog.js';
20
- goog.declareModuleId('Blockly.utils.xml');
21
-
22
-
23
- /**
24
- * Namespace for Blockly's XML.
25
- * @alias Blockly.utils.xml.NAME_SPACE
26
- */
27
- export const NAME_SPACE = 'https://developers.google.com/blockly/xml';
28
-
29
- /**
30
- * The Document object to use. By default this is just document, but
31
- * the Node.js build of Blockly (see scripts/package/node/core.js)
32
- * calls setDocument to supply a Document implementation from the
33
- * jsdom package instead.
34
- */
35
- let xmlDocument: Document = globalThis['document'];
36
-
37
- /**
38
- * Get the document object to use for XML serialization.
39
- * @return The document object.
40
- * @alias Blockly.utils.xml.getDocument
41
- */
42
- export function getDocument(): Document {
43
- return xmlDocument;
44
- }
45
-
46
- /**
47
- * Get the document object to use for XML serialization.
48
- * @param document The document object to use.
49
- * @alias Blockly.utils.xml.setDocument
50
- */
51
- export function setDocument(document: Document) {
52
- xmlDocument = document;
53
- }
54
-
55
- /**
56
- * Create DOM element for XML.
57
- * @param tagName Name of DOM element.
58
- * @return New DOM element.
59
- * @alias Blockly.utils.xml.createElement
60
- */
61
- export function createElement(tagName: string): Element {
62
- return xmlDocument.createElementNS(NAME_SPACE, tagName);
63
- }
64
-
65
- /**
66
- * Create text element for XML.
67
- * @param text Text content.
68
- * @return New DOM text node.
69
- * @alias Blockly.utils.xml.createTextNode
70
- */
71
- export function createTextNode(text: string): Text {
72
- return xmlDocument.createTextNode(text);
73
- }
74
-
75
- /**
76
- * Converts an XML string into a DOM tree.
77
- * @param text XML string.
78
- * @return The DOM document.
79
- * @throws if XML doesn't parse.
80
- * @alias Blockly.utils.xml.textToDomDocument
81
- */
82
- export function textToDomDocument(text: string): Document {
83
- const oParser = new DOMParser();
84
- return oParser.parseFromString(text, 'text/xml');
85
- }
86
-
87
- /**
88
- * Converts a DOM structure into plain text.
89
- * Currently the text format is fairly ugly: all one line with no whitespace.
90
- * @param dom A tree of XML nodes.
91
- * @return Text representation.
92
- * @alias Blockly.utils.xml.domToText
93
- */
94
- export function domToText(dom: Node): string {
95
- const oSerializer = new XMLSerializer();
96
- return oSerializer.serializeToString(dom);
97
- }