blockly 8.20220331.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 (735) hide show
  1. package/blockly.min.js +2000 -2269
  2. package/blockly_compressed.js +1495 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks.d.ts +10 -8
  5. package/blocks_compressed.js +189 -171
  6. package/blocks_compressed.js.map +1 -1
  7. package/closure/goog/base.d.ts +2 -0
  8. package/closure/goog/base_minimal.d.ts +19 -0
  9. package/closure/goog/goog.d.ts +26 -0
  10. package/core/any_aliases.d.ts +2 -0
  11. package/core/block.d.ts +871 -0
  12. package/core/block_animations.d.ts +38 -0
  13. package/core/block_drag_surface.d.ts +124 -0
  14. package/core/block_dragger.d.ts +158 -0
  15. package/core/block_svg.d.ts +656 -0
  16. package/core/blockly.d.ts +583 -0
  17. package/core/blockly_options.d.ts +71 -0
  18. package/core/blocks.d.ts +19 -0
  19. package/core/browser_events.d.ts +94 -0
  20. package/core/bubble.d.ts +309 -0
  21. package/core/bubble_dragger.d.ts +80 -0
  22. package/core/bump_objects.d.ts +38 -0
  23. package/core/clipboard.d.ts +46 -0
  24. package/core/comment.d.ts +123 -0
  25. package/core/common.d.ts +155 -0
  26. package/core/component_manager.d.ts +101 -0
  27. package/core/config.d.ts +24 -0
  28. package/core/connection.d.ts +262 -0
  29. package/core/connection_checker.d.ts +87 -0
  30. package/core/connection_db.d.ts +102 -0
  31. package/core/connection_type.d.ts +17 -0
  32. package/core/constants.d.ts +18 -0
  33. package/core/contextmenu.d.ts +90 -0
  34. package/core/contextmenu_items.d.ts +92 -0
  35. package/core/contextmenu_registry.d.ts +110 -0
  36. package/core/css.d.ts +27 -0
  37. package/core/delete_area.d.ts +51 -0
  38. package/core/dialog.d.ts +68 -0
  39. package/core/drag_target.d.ts +71 -0
  40. package/core/dropdowndiv.d.ts +187 -0
  41. package/core/events/events.d.ts +103 -0
  42. package/core/events/events_abstract.d.ts +58 -0
  43. package/core/events/events_block_base.d.ts +35 -0
  44. package/core/events/events_block_change.d.ts +62 -0
  45. package/core/events/events_block_create.d.ts +40 -0
  46. package/core/events/events_block_delete.d.ts +41 -0
  47. package/core/events/events_block_drag.d.ts +40 -0
  48. package/core/events/events_block_move.d.ts +58 -0
  49. package/core/events/events_bubble_open.d.ts +39 -0
  50. package/core/events/events_click.d.ts +40 -0
  51. package/core/events/events_comment_base.d.ts +44 -0
  52. package/core/events/events_comment_change.d.ts +49 -0
  53. package/core/events/events_comment_create.d.ts +40 -0
  54. package/core/events/events_comment_delete.d.ts +40 -0
  55. package/core/events/events_comment_move.d.ts +62 -0
  56. package/core/events/events_marker_move.d.ts +44 -0
  57. package/core/events/events_selected.d.ts +38 -0
  58. package/core/events/events_theme_change.d.ts +34 -0
  59. package/core/events/events_toolbox_item_select.d.ts +38 -0
  60. package/core/events/events_trashcan_open.d.ts +35 -0
  61. package/core/events/events_ui.d.ts +41 -0
  62. package/core/events/events_ui_base.d.ts +28 -0
  63. package/core/events/events_var_base.d.ts +35 -0
  64. package/core/events/events_var_create.d.ts +40 -0
  65. package/core/events/events_var_delete.d.ts +40 -0
  66. package/core/events/events_var_rename.d.ts +41 -0
  67. package/core/events/events_viewport.d.ts +43 -0
  68. package/core/events/utils.d.ts +315 -0
  69. package/core/events/workspace_events.d.ts +40 -0
  70. package/core/extensions.d.ts +117 -0
  71. package/core/field.d.ts +593 -0
  72. package/core/field_angle.d.ts +187 -0
  73. package/core/field_checkbox.d.ts +137 -0
  74. package/core/field_colour.d.ts +216 -0
  75. package/core/field_dropdown.d.ts +242 -0
  76. package/core/field_image.d.ts +145 -0
  77. package/core/field_label.d.ts +77 -0
  78. package/core/field_label_serializable.d.ts +45 -0
  79. package/core/field_multilineinput.d.ts +161 -0
  80. package/core/field_number.d.ts +172 -0
  81. package/core/field_registry.d.ts +51 -0
  82. package/core/field_textinput.d.ts +239 -0
  83. package/core/field_variable.d.ts +240 -0
  84. package/core/flyout_base.d.ts +505 -0
  85. package/core/flyout_button.d.ts +88 -0
  86. package/core/flyout_horizontal.d.ts +90 -0
  87. package/core/flyout_metrics_manager.d.ts +43 -0
  88. package/core/flyout_vertical.d.ts +91 -0
  89. package/core/generator.d.ts +224 -0
  90. package/core/gesture.d.ts +392 -0
  91. package/core/grid.d.ts +87 -0
  92. package/core/icon.d.ts +87 -0
  93. package/core/inject.d.ts +17 -0
  94. package/core/input.d.ts +143 -0
  95. package/core/input_types.d.ts +16 -0
  96. package/core/insertion_marker_manager.d.ts +230 -0
  97. package/core/interfaces/i_ast_node_location.d.ts +13 -0
  98. package/core/interfaces/i_ast_node_location_svg.d.ts +26 -0
  99. package/core/interfaces/i_ast_node_location_with_block.d.ts +21 -0
  100. package/core/interfaces/i_autohideable.d.ts +21 -0
  101. package/core/interfaces/i_block_dragger.d.ts +49 -0
  102. package/core/interfaces/i_bounded_element.d.ts +28 -0
  103. package/core/interfaces/i_bubble.d.ts +68 -0
  104. package/core/interfaces/i_collapsible_toolbox_item.d.ts +30 -0
  105. package/core/interfaces/i_component.d.ts +19 -0
  106. package/core/interfaces/i_connection_checker.d.ts +77 -0
  107. package/core/interfaces/i_contextmenu.d.ts +15 -0
  108. package/core/interfaces/i_copyable.d.ts +26 -0
  109. package/core/interfaces/i_deletable.d.ts +19 -0
  110. package/core/interfaces/i_delete_area.d.ts +28 -0
  111. package/core/interfaces/i_drag_target.d.ts +61 -0
  112. package/core/interfaces/i_draggable.d.ts +14 -0
  113. package/core/interfaces/i_flyout.d.ts +150 -0
  114. package/core/interfaces/i_keyboard_accessible.d.ts +21 -0
  115. package/core/interfaces/i_metrics_manager.d.ts +129 -0
  116. package/core/interfaces/i_movable.d.ts +19 -0
  117. package/core/interfaces/i_positionable.d.ts +31 -0
  118. package/core/interfaces/i_registrable.d.ts +13 -0
  119. package/core/interfaces/i_registrable_field.d.ts +19 -0
  120. package/core/interfaces/i_selectable.d.ts +20 -0
  121. package/core/interfaces/i_selectable_toolbox_item.d.ts +49 -0
  122. package/core/interfaces/i_serializer.d.ts +47 -0
  123. package/core/interfaces/i_styleable.d.ts +25 -0
  124. package/core/interfaces/i_toolbox.d.ts +96 -0
  125. package/core/interfaces/i_toolbox_item.d.ts +72 -0
  126. package/core/internal_constants.d.ts +46 -0
  127. package/core/keyboard_nav/ast_node.d.ts +266 -0
  128. package/core/keyboard_nav/basic_cursor.d.ts +99 -0
  129. package/core/keyboard_nav/cursor.d.ts +47 -0
  130. package/core/keyboard_nav/marker.d.ts +65 -0
  131. package/core/keyboard_nav/tab_navigate_cursor.d.ts +22 -0
  132. package/core/main.d.ts +12 -0
  133. package/core/marker_manager.d.ts +96 -0
  134. package/core/menu.d.ts +167 -0
  135. package/core/menuitem.d.ts +133 -0
  136. package/core/metrics_manager.d.ts +216 -0
  137. package/core/msg.d.ts +10 -0
  138. package/core/mutator.d.ts +140 -0
  139. package/core/names.d.ts +136 -0
  140. package/core/options.d.ts +143 -0
  141. package/core/positionable_helpers.d.ts +96 -0
  142. package/core/procedures.d.ts +125 -0
  143. package/core/registry.d.ts +148 -0
  144. package/core/rendered_connection.d.ts +212 -0
  145. package/core/renderers/common/block_rendering.d.ts +121 -0
  146. package/core/renderers/common/constants.d.ts +490 -0
  147. package/core/renderers/common/debug.d.ts +32 -0
  148. package/core/renderers/common/debugger.d.ts +131 -0
  149. package/core/renderers/common/drawer.d.ts +144 -0
  150. package/core/renderers/common/i_path_object.d.ts +132 -0
  151. package/core/renderers/common/info.d.ts +211 -0
  152. package/core/renderers/common/marker_svg.d.ts +249 -0
  153. package/core/renderers/common/path_object.d.ts +166 -0
  154. package/core/renderers/common/renderer.d.ts +178 -0
  155. package/core/renderers/geras/constants.d.ts +25 -0
  156. package/core/renderers/geras/drawer.d.ts +45 -0
  157. package/core/renderers/geras/geras.d.ts +12 -0
  158. package/core/renderers/geras/highlight_constants.d.ts +111 -0
  159. package/core/renderers/geras/highlighter.d.ts +109 -0
  160. package/core/renderers/geras/info.d.ts +48 -0
  161. package/core/renderers/geras/measurables/inline_input.d.ts +25 -0
  162. package/core/renderers/geras/measurables/statement_input.d.ts +25 -0
  163. package/core/renderers/geras/path_object.d.ts +51 -0
  164. package/core/renderers/geras/renderer.d.ts +79 -0
  165. package/core/renderers/measurables/base.d.ts +29 -0
  166. package/core/renderers/measurables/bottom_row.d.ts +67 -0
  167. package/core/renderers/measurables/connection.d.ts +27 -0
  168. package/core/renderers/measurables/external_value_input.d.ts +28 -0
  169. package/core/renderers/measurables/field.d.ts +31 -0
  170. package/core/renderers/measurables/hat.d.ts +22 -0
  171. package/core/renderers/measurables/icon.d.ts +28 -0
  172. package/core/renderers/measurables/in_row_spacer.d.ts +22 -0
  173. package/core/renderers/measurables/inline_input.d.ts +25 -0
  174. package/core/renderers/measurables/input_connection.d.ts +31 -0
  175. package/core/renderers/measurables/input_row.d.ts +33 -0
  176. package/core/renderers/measurables/jagged_edge.d.ts +21 -0
  177. package/core/renderers/measurables/next_connection.d.ts +24 -0
  178. package/core/renderers/measurables/output_connection.d.ts +27 -0
  179. package/core/renderers/measurables/previous_connection.d.ts +24 -0
  180. package/core/renderers/measurables/round_corner.d.ts +22 -0
  181. package/core/renderers/measurables/row.d.ts +163 -0
  182. package/core/renderers/measurables/spacer_row.d.ts +30 -0
  183. package/core/renderers/measurables/square_corner.d.ts +22 -0
  184. package/core/renderers/measurables/statement_input.d.ts +23 -0
  185. package/core/renderers/measurables/top_row.d.ts +60 -0
  186. package/core/renderers/measurables/types.d.ts +264 -0
  187. package/core/renderers/minimalist/constants.d.ts +16 -0
  188. package/core/renderers/minimalist/drawer.d.ts +23 -0
  189. package/core/renderers/minimalist/info.d.ts +33 -0
  190. package/core/renderers/minimalist/minimalist.d.ts +7 -0
  191. package/core/renderers/minimalist/renderer.d.ts +46 -0
  192. package/core/renderers/thrasos/info.d.ts +43 -0
  193. package/core/renderers/thrasos/renderer.d.ts +28 -0
  194. package/core/renderers/thrasos/thrasos.d.ts +5 -0
  195. package/core/renderers/zelos/constants.d.ts +194 -0
  196. package/core/renderers/zelos/drawer.d.ts +50 -0
  197. package/core/renderers/zelos/info.d.ts +93 -0
  198. package/core/renderers/zelos/marker_svg.d.ts +51 -0
  199. package/core/renderers/zelos/measurables/bottom_row.d.ts +29 -0
  200. package/core/renderers/zelos/measurables/inputs.d.ts +25 -0
  201. package/core/renderers/zelos/measurables/row_elements.d.ts +23 -0
  202. package/core/renderers/zelos/measurables/top_row.d.ts +31 -0
  203. package/core/renderers/zelos/path_object.d.ts +84 -0
  204. package/core/renderers/zelos/renderer.d.ts +82 -0
  205. package/core/renderers/zelos/zelos.d.ts +13 -0
  206. package/core/scrollbar.d.ts +309 -0
  207. package/core/scrollbar_pair.d.ts +119 -0
  208. package/core/serialization/blocks.d.ts +104 -0
  209. package/core/serialization/exceptions.d.ts +78 -0
  210. package/core/serialization/priorities.d.ts +18 -0
  211. package/core/serialization/registry.d.ts +23 -0
  212. package/core/serialization/variables.d.ts +16 -0
  213. package/core/serialization/workspaces.d.ts +31 -0
  214. package/core/shortcut_items.d.ts +71 -0
  215. package/core/shortcut_registry.d.ts +167 -0
  216. package/core/sprites.d.ts +17 -0
  217. package/core/theme/classic.d.ts +14 -0
  218. package/core/theme/themes.d.ts +9 -0
  219. package/core/theme/zelos.d.ts +13 -0
  220. package/core/theme.d.ts +153 -0
  221. package/core/theme_manager.d.ts +90 -0
  222. package/core/toolbox/category.d.ts +266 -0
  223. package/core/toolbox/collapsible_category.d.ts +98 -0
  224. package/core/toolbox/separator.d.ts +42 -0
  225. package/core/toolbox/toolbox.d.ts +400 -0
  226. package/core/toolbox/toolbox_item.d.ts +95 -0
  227. package/core/tooltip.d.ts +147 -0
  228. package/core/touch.d.ts +133 -0
  229. package/core/touch_gesture.d.ts +129 -0
  230. package/core/trashcan.d.ts +216 -0
  231. package/core/utils/aria.d.ts +71 -0
  232. package/core/utils/array.d.ts +16 -0
  233. package/core/utils/colour.d.ts +114 -0
  234. package/core/utils/coordinate.d.ts +82 -0
  235. package/core/utils/deprecation.d.ts +19 -0
  236. package/core/utils/dom.d.ts +185 -0
  237. package/core/utils/idgenerator.d.ts +35 -0
  238. package/core/utils/keycodes.d.ts +138 -0
  239. package/core/utils/math.d.ts +34 -0
  240. package/core/utils/metrics.d.ts +65 -0
  241. package/core/utils/object.d.ts +40 -0
  242. package/core/utils/parsing.d.ts +55 -0
  243. package/core/utils/rect.d.ts +40 -0
  244. package/core/utils/sentinel.d.ts +13 -0
  245. package/core/utils/size.d.ts +29 -0
  246. package/core/utils/string.d.ts +62 -0
  247. package/core/utils/style.d.ts +108 -0
  248. package/core/utils/svg.d.ts +71 -0
  249. package/core/utils/svg_math.d.ts +78 -0
  250. package/core/utils/svg_paths.d.ts +111 -0
  251. package/core/utils/toolbox.d.ts +214 -0
  252. package/core/utils/useragent.d.ts +22 -0
  253. package/core/utils/xml.d.ts +60 -0
  254. package/core/utils.d.ts +239 -0
  255. package/core/variable_map.d.ts +158 -0
  256. package/core/variable_model.d.ts +43 -0
  257. package/core/variables.d.ts +196 -0
  258. package/core/variables_dynamic.d.ts +58 -0
  259. package/core/warning.d.ts +55 -0
  260. package/core/widgetdiv.d.ts +78 -0
  261. package/core/workspace.d.ts +436 -0
  262. package/core/workspace_audio.d.ts +53 -0
  263. package/core/workspace_comment.d.ts +192 -0
  264. package/core/workspace_comment_svg.d.ts +372 -0
  265. package/core/workspace_drag_surface_svg.d.ts +74 -0
  266. package/core/workspace_dragger.d.ts +54 -0
  267. package/core/workspace_svg.d.ts +1032 -0
  268. package/core/xml.d.ts +132 -0
  269. package/core/zoom_controls.d.ts +140 -0
  270. package/core.d.ts +1 -9
  271. package/core.js +1 -2
  272. package/dart.d.ts +1 -9
  273. package/dart_compressed.js +387 -99
  274. package/dart_compressed.js.map +1 -1
  275. package/index.d.ts +4 -16
  276. package/javascript.d.ts +1 -9
  277. package/javascript_compressed.js +314 -104
  278. package/javascript_compressed.js.map +1 -1
  279. package/lua.d.ts +1 -9
  280. package/lua_compressed.js +399 -81
  281. package/lua_compressed.js.map +1 -1
  282. package/msg/ab.js +10 -6
  283. package/msg/ace.js +10 -6
  284. package/msg/af.js +10 -6
  285. package/msg/am.js +10 -6
  286. package/msg/ar.js +10 -6
  287. package/msg/ast.js +10 -6
  288. package/msg/az.js +12 -8
  289. package/msg/ba.js +10 -6
  290. package/msg/bcc.js +10 -6
  291. package/msg/be-tarask.js +10 -6
  292. package/msg/be.js +14 -10
  293. package/msg/bg.js +10 -6
  294. package/msg/bn.js +10 -6
  295. package/msg/br.js +10 -6
  296. package/msg/bs.js +10 -6
  297. package/msg/ca.js +10 -6
  298. package/msg/cdo.js +10 -6
  299. package/msg/cs.js +25 -21
  300. package/msg/da.js +10 -6
  301. package/msg/de.js +11 -7
  302. package/msg/diq.js +11 -7
  303. package/msg/dty.js +10 -6
  304. package/msg/ee.js +10 -6
  305. package/msg/el.js +10 -6
  306. package/msg/en-gb.js +10 -6
  307. package/msg/en.js +10 -6
  308. package/msg/eo.js +11 -7
  309. package/msg/es.js +11 -7
  310. package/msg/et.js +10 -6
  311. package/msg/eu.js +10 -6
  312. package/msg/fa.js +11 -7
  313. package/msg/fi.js +10 -6
  314. package/msg/fo.js +10 -6
  315. package/msg/fr.js +14 -10
  316. package/msg/frr.js +10 -6
  317. package/msg/gl.js +10 -6
  318. package/msg/gn.js +10 -6
  319. package/msg/gor.js +10 -6
  320. package/msg/ha.js +10 -6
  321. package/msg/hak.js +10 -6
  322. package/msg/he.js +11 -7
  323. package/msg/hi.js +10 -6
  324. package/msg/hr.js +12 -8
  325. package/msg/hrx.js +10 -6
  326. package/msg/hu.js +10 -6
  327. package/msg/hy.js +12 -8
  328. package/msg/ia.js +10 -6
  329. package/msg/id.js +22 -18
  330. package/msg/ig.js +10 -6
  331. package/msg/inh.js +24 -20
  332. package/msg/is.js +10 -6
  333. package/msg/it.js +10 -6
  334. package/msg/ja.js +17 -13
  335. package/msg/ka.js +10 -6
  336. package/msg/kab.js +10 -6
  337. package/msg/kbd-cyrl.js +10 -6
  338. package/msg/km.js +10 -6
  339. package/msg/kn.js +10 -6
  340. package/msg/ko.js +10 -6
  341. package/msg/ksh.js +10 -6
  342. package/msg/ku-latn.js +10 -6
  343. package/msg/ky.js +10 -6
  344. package/msg/la.js +10 -6
  345. package/msg/lb.js +10 -6
  346. package/msg/lki.js +10 -6
  347. package/msg/lo.js +10 -6
  348. package/msg/lrc.js +10 -6
  349. package/msg/lt.js +10 -6
  350. package/msg/lv.js +39 -35
  351. package/msg/mg.js +10 -6
  352. package/msg/mk.js +10 -6
  353. package/msg/ml.js +10 -6
  354. package/msg/mnw.js +10 -6
  355. package/msg/ms.js +10 -6
  356. package/msg/my.js +10 -6
  357. package/msg/mzn.js +10 -6
  358. package/msg/nb.js +10 -6
  359. package/msg/ne.js +10 -6
  360. package/msg/nl.js +10 -6
  361. package/msg/oc.js +10 -6
  362. package/msg/olo.js +10 -6
  363. package/msg/pa.js +13 -9
  364. package/msg/pl.js +10 -6
  365. package/msg/pms.js +10 -6
  366. package/msg/ps.js +10 -6
  367. package/msg/pt-br.js +10 -6
  368. package/msg/pt.js +10 -6
  369. package/msg/ro.js +10 -6
  370. package/msg/ru.js +10 -6
  371. package/msg/sc.js +10 -6
  372. package/msg/sco.js +10 -6
  373. package/msg/sd.js +10 -6
  374. package/msg/shn.js +10 -6
  375. package/msg/si.js +10 -6
  376. package/msg/sk.js +10 -6
  377. package/msg/skr-arab.js +10 -6
  378. package/msg/sl.js +10 -6
  379. package/msg/smn.js +440 -0
  380. package/msg/sq.js +10 -6
  381. package/msg/sr-latn.js +10 -6
  382. package/msg/sr.js +10 -6
  383. package/msg/sv.js +10 -6
  384. package/msg/sw.js +10 -6
  385. package/msg/ta.js +10 -6
  386. package/msg/tcy.js +10 -6
  387. package/msg/te.js +11 -7
  388. package/msg/th.js +10 -6
  389. package/msg/ti.js +10 -6
  390. package/msg/tl.js +10 -6
  391. package/msg/tlh.js +10 -6
  392. package/msg/tr.js +10 -6
  393. package/msg/ug-arab.js +10 -6
  394. package/msg/uk.js +10 -6
  395. package/msg/ur.js +10 -6
  396. package/msg/uz.js +10 -6
  397. package/msg/vi.js +10 -6
  398. package/msg/xmf.js +10 -6
  399. package/msg/yo.js +10 -6
  400. package/msg/yue.js +11 -7
  401. package/msg/zgh.js +10 -6
  402. package/msg/zh-hans.js +13 -9
  403. package/msg/zh-hant.js +13 -9
  404. package/package.json +8 -5
  405. package/php.d.ts +1 -9
  406. package/php_compressed.js +322 -93
  407. package/php_compressed.js.map +1 -1
  408. package/python.d.ts +1 -9
  409. package/python_compressed.js +237 -90
  410. package/python_compressed.js.map +1 -1
  411. package/blockly.d.ts +0 -25607
  412. package/blocks/blocks.js +0 -47
  413. package/blocks/colour.js +0 -119
  414. package/blocks/lists.js +0 -924
  415. package/blocks/logic.js +0 -657
  416. package/blocks/loops.js +0 -373
  417. package/blocks/math.js +0 -592
  418. package/blocks/procedures.js +0 -1194
  419. package/blocks/text.js +0 -992
  420. package/blocks/variables.js +0 -174
  421. package/blocks/variables_dynamic.js +0 -190
  422. package/core/block.js +0 -2212
  423. package/core/block_animations.js +0 -206
  424. package/core/block_drag_surface.js +0 -269
  425. package/core/block_dragger.js +0 -484
  426. package/core/block_svg.js +0 -1894
  427. package/core/blockly.js +0 -890
  428. package/core/blockly_options.js +0 -28
  429. package/core/blocks.js +0 -33
  430. package/core/browser_events.js +0 -284
  431. package/core/bubble.js +0 -985
  432. package/core/bubble_dragger.js +0 -298
  433. package/core/bump_objects.js +0 -180
  434. package/core/clipboard.js +0 -80
  435. package/core/comment.js +0 -448
  436. package/core/common.js +0 -265
  437. package/core/component_manager.js +0 -263
  438. package/core/config.js +0 -87
  439. package/core/connection.js +0 -742
  440. package/core/connection_checker.js +0 -312
  441. package/core/connection_db.js +0 -314
  442. package/core/connection_type.js +0 -36
  443. package/core/constants.js +0 -33
  444. package/core/contextmenu.js +0 -398
  445. package/core/contextmenu_items.js +0 -651
  446. package/core/contextmenu_registry.js +0 -178
  447. package/core/css.js +0 -568
  448. package/core/delete_area.js +0 -87
  449. package/core/dialog.js +0 -107
  450. package/core/drag_target.js +0 -98
  451. package/core/dropdowndiv.js +0 -754
  452. package/core/events/events.js +0 -147
  453. package/core/events/events_abstract.js +0 -133
  454. package/core/events/events_block_base.js +0 -70
  455. package/core/events/events_block_change.js +0 -179
  456. package/core/events/events_block_create.js +0 -127
  457. package/core/events/events_block_delete.js +0 -139
  458. package/core/events/events_block_drag.js +0 -89
  459. package/core/events/events_block_move.js +0 -202
  460. package/core/events/events_bubble_open.js +0 -90
  461. package/core/events/events_click.js +0 -87
  462. package/core/events/events_comment_base.js +0 -121
  463. package/core/events/events_comment_change.js +0 -105
  464. package/core/events/events_comment_create.js +0 -84
  465. package/core/events/events_comment_delete.js +0 -81
  466. package/core/events/events_comment_move.js +0 -157
  467. package/core/events/events_marker_move.js +0 -110
  468. package/core/events/events_selected.js +0 -83
  469. package/core/events/events_theme_change.js +0 -72
  470. package/core/events/events_toolbox_item_select.js +0 -84
  471. package/core/events/events_trashcan_open.js +0 -73
  472. package/core/events/events_ui.js +0 -88
  473. package/core/events/events_ui_base.js +0 -63
  474. package/core/events/events_var_base.js +0 -70
  475. package/core/events/events_var_create.js +0 -89
  476. package/core/events/events_var_delete.js +0 -89
  477. package/core/events/events_var_rename.js +0 -90
  478. package/core/events/events_viewport.js +0 -107
  479. package/core/events/utils.js +0 -600
  480. package/core/events/workspace_events.js +0 -93
  481. package/core/extensions.js +0 -523
  482. package/core/field.js +0 -1282
  483. package/core/field_angle.js +0 -591
  484. package/core/field_checkbox.js +0 -255
  485. package/core/field_colour.js +0 -717
  486. package/core/field_dropdown.js +0 -795
  487. package/core/field_image.js +0 -304
  488. package/core/field_label.js +0 -149
  489. package/core/field_label_serializable.js +0 -80
  490. package/core/field_multilineinput.js +0 -463
  491. package/core/field_number.js +0 -340
  492. package/core/field_registry.js +0 -80
  493. package/core/field_textinput.js +0 -619
  494. package/core/field_variable.js +0 -558
  495. package/core/flyout_base.js +0 -1254
  496. package/core/flyout_button.js +0 -356
  497. package/core/flyout_horizontal.js +0 -391
  498. package/core/flyout_metrics_manager.js +0 -106
  499. package/core/flyout_vertical.js +0 -395
  500. package/core/generator.js +0 -564
  501. package/core/gesture.js +0 -1026
  502. package/core/grid.js +0 -226
  503. package/core/icon.js +0 -225
  504. package/core/inject.js +0 -389
  505. package/core/input.js +0 -332
  506. package/core/input_types.js +0 -36
  507. package/core/insertion_marker_manager.js +0 -790
  508. package/core/interfaces/i_ast_node_location.js +0 -26
  509. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  510. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  511. package/core/interfaces/i_autohideable.js +0 -40
  512. package/core/interfaces/i_block_dragger.js +0 -66
  513. package/core/interfaces/i_bounded_element.js +0 -45
  514. package/core/interfaces/i_bubble.js +0 -95
  515. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  516. package/core/interfaces/i_component.js +0 -37
  517. package/core/interfaces/i_connection_checker.js +0 -104
  518. package/core/interfaces/i_contextmenu.js +0 -32
  519. package/core/interfaces/i_copyable.js +0 -49
  520. package/core/interfaces/i_deletable.js +0 -33
  521. package/core/interfaces/i_delete_area.js +0 -50
  522. package/core/interfaces/i_drag_target.js +0 -88
  523. package/core/interfaces/i_draggable.js +0 -31
  524. package/core/interfaces/i_flyout.js +0 -201
  525. package/core/interfaces/i_keyboard_accessible.js +0 -38
  526. package/core/interfaces/i_metrics_manager.js +0 -154
  527. package/core/interfaces/i_movable.js +0 -33
  528. package/core/interfaces/i_positionable.js +0 -51
  529. package/core/interfaces/i_registrable.js +0 -29
  530. package/core/interfaces/i_registrable_field.js +0 -39
  531. package/core/interfaces/i_selectable.js +0 -51
  532. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  533. package/core/interfaces/i_serializer.js +0 -77
  534. package/core/interfaces/i_styleable.js +0 -39
  535. package/core/interfaces/i_toolbox.js +0 -142
  536. package/core/interfaces/i_toolbox_item.js +0 -85
  537. package/core/internal_constants.js +0 -72
  538. package/core/keyboard_nav/ast_node.js +0 -741
  539. package/core/keyboard_nav/basic_cursor.js +0 -225
  540. package/core/keyboard_nav/cursor.js +0 -144
  541. package/core/keyboard_nav/marker.js +0 -134
  542. package/core/keyboard_nav/tab_navigate_cursor.js +0 -52
  543. package/core/marker_manager.js +0 -213
  544. package/core/menu.js +0 -482
  545. package/core/menuitem.js +0 -292
  546. package/core/metrics_manager.js +0 -495
  547. package/core/msg.js +0 -24
  548. package/core/mutator.js +0 -575
  549. package/core/names.js +0 -289
  550. package/core/options.js +0 -391
  551. package/core/positionable_helpers.js +0 -188
  552. package/core/procedures.js +0 -452
  553. package/core/registry.js +0 -384
  554. package/core/rendered_connection.js +0 -588
  555. package/core/renderers/common/block_rendering.js +0 -170
  556. package/core/renderers/common/constants.js +0 -1250
  557. package/core/renderers/common/debug.js +0 -67
  558. package/core/renderers/common/debugger.js +0 -457
  559. package/core/renderers/common/drawer.js +0 -475
  560. package/core/renderers/common/i_path_object.js +0 -162
  561. package/core/renderers/common/info.js +0 -775
  562. package/core/renderers/common/marker_svg.js +0 -721
  563. package/core/renderers/common/path_object.js +0 -283
  564. package/core/renderers/common/renderer.js +0 -305
  565. package/core/renderers/geras/constants.js +0 -73
  566. package/core/renderers/geras/drawer.js +0 -220
  567. package/core/renderers/geras/geras.js +0 -36
  568. package/core/renderers/geras/highlight_constants.js +0 -299
  569. package/core/renderers/geras/highlighter.js +0 -311
  570. package/core/renderers/geras/info.js +0 -488
  571. package/core/renderers/geras/measurables/inline_input.js +0 -58
  572. package/core/renderers/geras/measurables/statement_input.js +0 -57
  573. package/core/renderers/geras/path_object.js +0 -166
  574. package/core/renderers/geras/renderer.js +0 -149
  575. package/core/renderers/measurables/base.js +0 -64
  576. package/core/renderers/measurables/bottom_row.js +0 -138
  577. package/core/renderers/measurables/connection.js +0 -56
  578. package/core/renderers/measurables/external_value_input.js +0 -70
  579. package/core/renderers/measurables/field.js +0 -71
  580. package/core/renderers/measurables/hat.js +0 -50
  581. package/core/renderers/measurables/icon.js +0 -58
  582. package/core/renderers/measurables/in_row_spacer.js +0 -47
  583. package/core/renderers/measurables/inline_input.js +0 -80
  584. package/core/renderers/measurables/input_connection.js +0 -75
  585. package/core/renderers/measurables/input_row.js +0 -89
  586. package/core/renderers/measurables/jagged_edge.js +0 -46
  587. package/core/renderers/measurables/next_connection.js +0 -50
  588. package/core/renderers/measurables/output_connection.js +0 -61
  589. package/core/renderers/measurables/previous_connection.js +0 -50
  590. package/core/renderers/measurables/round_corner.js +0 -52
  591. package/core/renderers/measurables/row.js +0 -247
  592. package/core/renderers/measurables/spacer_row.js +0 -69
  593. package/core/renderers/measurables/square_corner.js +0 -50
  594. package/core/renderers/measurables/statement_input.js +0 -59
  595. package/core/renderers/measurables/top_row.js +0 -143
  596. package/core/renderers/measurables/types.js +0 -353
  597. package/core/renderers/minimalist/constants.js +0 -37
  598. package/core/renderers/minimalist/drawer.js +0 -42
  599. package/core/renderers/minimalist/info.js +0 -54
  600. package/core/renderers/minimalist/minimalist.js +0 -26
  601. package/core/renderers/minimalist/renderer.js +0 -80
  602. package/core/renderers/thrasos/info.js +0 -339
  603. package/core/renderers/thrasos/renderer.js +0 -53
  604. package/core/renderers/thrasos/thrasos.js +0 -22
  605. package/core/renderers/zelos/constants.js +0 -1005
  606. package/core/renderers/zelos/drawer.js +0 -250
  607. package/core/renderers/zelos/info.js +0 -624
  608. package/core/renderers/zelos/marker_svg.js +0 -179
  609. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  610. package/core/renderers/zelos/measurables/inputs.js +0 -57
  611. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  612. package/core/renderers/zelos/measurables/top_row.js +0 -71
  613. package/core/renderers/zelos/path_object.js +0 -247
  614. package/core/renderers/zelos/renderer.js +0 -147
  615. package/core/renderers/zelos/zelos.js +0 -38
  616. package/core/scrollbar.js +0 -891
  617. package/core/scrollbar_pair.js +0 -329
  618. package/core/serialization/blocks.js +0 -699
  619. package/core/serialization/exceptions.js +0 -144
  620. package/core/serialization/priorities.js +0 -38
  621. package/core/serialization/registry.js +0 -45
  622. package/core/serialization/variables.js +0 -98
  623. package/core/serialization/workspaces.js +0 -103
  624. package/core/shortcut_items.js +0 -302
  625. package/core/shortcut_registry.js +0 -366
  626. package/core/sprites.js +0 -31
  627. package/core/theme/classic.js +0 -56
  628. package/core/theme/themes.js +0 -23
  629. package/core/theme/zelos.js +0 -94
  630. package/core/theme.js +0 -228
  631. package/core/theme_manager.js +0 -211
  632. package/core/toolbox/category.js +0 -751
  633. package/core/toolbox/collapsible_category.js +0 -311
  634. package/core/toolbox/separator.js +0 -133
  635. package/core/toolbox/toolbox.js +0 -1160
  636. package/core/toolbox/toolbox_item.js +0 -173
  637. package/core/tooltip.js +0 -541
  638. package/core/touch.js +0 -285
  639. package/core/touch_gesture.js +0 -333
  640. package/core/trashcan.js +0 -757
  641. package/core/utils/aria.js +0 -174
  642. package/core/utils/array.js +0 -34
  643. package/core/utils/colour.js +0 -288
  644. package/core/utils/coordinate.js +0 -138
  645. package/core/utils/deprecation.js +0 -41
  646. package/core/utils/dom.js +0 -430
  647. package/core/utils/global.js +0 -41
  648. package/core/utils/idgenerator.js +0 -83
  649. package/core/utils/keycodes.js +0 -172
  650. package/core/utils/math.js +0 -63
  651. package/core/utils/metrics.js +0 -154
  652. package/core/utils/object.js +0 -91
  653. package/core/utils/parsing.js +0 -261
  654. package/core/utils/rect.js +0 -75
  655. package/core/utils/sentinel.js +0 -25
  656. package/core/utils/size.js +0 -65
  657. package/core/utils/string.js +0 -305
  658. package/core/utils/style.js +0 -296
  659. package/core/utils/svg.js +0 -186
  660. package/core/utils/svg_math.js +0 -268
  661. package/core/utils/svg_paths.js +0 -149
  662. package/core/utils/toolbox.js +0 -459
  663. package/core/utils/useragent.js +0 -197
  664. package/core/utils/xml.js +0 -107
  665. package/core/utils.js +0 -383
  666. package/core/variable_map.js +0 -410
  667. package/core/variable_model.js +0 -96
  668. package/core/variables.js +0 -578
  669. package/core/variables_dynamic.js +0 -129
  670. package/core/warning.js +0 -175
  671. package/core/widgetdiv.js +0 -290
  672. package/core/workspace.js +0 -836
  673. package/core/workspace_audio.js +0 -169
  674. package/core/workspace_comment.js +0 -400
  675. package/core/workspace_comment_svg.js +0 -1224
  676. package/core/workspace_drag_surface_svg.js +0 -194
  677. package/core/workspace_dragger.js +0 -115
  678. package/core/workspace_svg.js +0 -2735
  679. package/core/xml.js +0 -1043
  680. package/core/zoom_controls.js +0 -507
  681. package/generators/dart/all.js +0 -25
  682. package/generators/dart/colour.js +0 -105
  683. package/generators/dart/lists.js +0 -431
  684. package/generators/dart/logic.js +0 -123
  685. package/generators/dart/loops.js +0 -161
  686. package/generators/dart/math.js +0 -446
  687. package/generators/dart/procedures.js +0 -105
  688. package/generators/dart/text.js +0 -338
  689. package/generators/dart/variables.js +0 -32
  690. package/generators/dart/variables_dynamic.js +0 -21
  691. package/generators/dart.js +0 -304
  692. package/generators/javascript/all.js +0 -25
  693. package/generators/javascript/colour.js +0 -85
  694. package/generators/javascript/lists.js +0 -405
  695. package/generators/javascript/logic.js +0 -127
  696. package/generators/javascript/loops.js +0 -180
  697. package/generators/javascript/math.js +0 -401
  698. package/generators/javascript/procedures.js +0 -110
  699. package/generators/javascript/text.js +0 -371
  700. package/generators/javascript/variables.js +0 -32
  701. package/generators/javascript/variables_dynamic.js +0 -21
  702. package/generators/javascript.js +0 -324
  703. package/generators/lua/all.js +0 -25
  704. package/generators/lua/colour.js +0 -71
  705. package/generators/lua/lists.js +0 -348
  706. package/generators/lua/logic.js +0 -112
  707. package/generators/lua/loops.js +0 -168
  708. package/generators/lua/math.js +0 -406
  709. package/generators/lua/procedures.js +0 -106
  710. package/generators/lua/text.js +0 -327
  711. package/generators/lua/variables.js +0 -31
  712. package/generators/lua/variables_dynamic.js +0 -21
  713. package/generators/lua.js +0 -207
  714. package/generators/php/all.js +0 -25
  715. package/generators/php/colour.js +0 -81
  716. package/generators/php/lists.js +0 -482
  717. package/generators/php/logic.js +0 -119
  718. package/generators/php/loops.js +0 -161
  719. package/generators/php/math.js +0 -349
  720. package/generators/php/procedures.js +0 -125
  721. package/generators/php/text.js +0 -255
  722. package/generators/php/variables.js +0 -32
  723. package/generators/php/variables_dynamic.js +0 -21
  724. package/generators/php.js +0 -304
  725. package/generators/python/all.js +0 -25
  726. package/generators/python/colour.js +0 -67
  727. package/generators/python/lists.js +0 -346
  728. package/generators/python/logic.js +0 -120
  729. package/generators/python/loops.js +0 -209
  730. package/generators/python/math.js +0 -373
  731. package/generators/python/procedures.js +0 -129
  732. package/generators/python/text.js +0 -291
  733. package/generators/python/variables.js +0 -32
  734. package/generators/python/variables_dynamic.js +0 -21
  735. package/generators/python.js +0 -334
package/core/comment.js DELETED
@@ -1,448 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2011 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview Object representing a code comment.
9
- */
10
- 'use strict';
11
-
12
- /**
13
- * Object representing a code comment.
14
- * @class
15
- */
16
- goog.module('Blockly.Comment');
17
-
18
- const Css = goog.require('Blockly.Css');
19
- const browserEvents = goog.require('Blockly.browserEvents');
20
- const dom = goog.require('Blockly.utils.dom');
21
- const eventUtils = goog.require('Blockly.Events.utils');
22
- const userAgent = goog.require('Blockly.utils.userAgent');
23
- /* eslint-disable-next-line no-unused-vars */
24
- const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
25
- /* eslint-disable-next-line no-unused-vars */
26
- const {Block} = goog.requireType('Blockly.Block');
27
- const {Bubble} = goog.require('Blockly.Bubble');
28
- /* eslint-disable-next-line no-unused-vars */
29
- const {Coordinate} = goog.requireType('Blockly.utils.Coordinate');
30
- const {Icon} = goog.require('Blockly.Icon');
31
- /* eslint-disable-next-line no-unused-vars */
32
- const {Size} = goog.requireType('Blockly.utils.Size');
33
- const {Svg} = goog.require('Blockly.utils.Svg');
34
- /* eslint-disable-next-line no-unused-vars */
35
- const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
36
- /** @suppress {extraRequire} */
37
- goog.require('Blockly.Events.BlockChange');
38
- /** @suppress {extraRequire} */
39
- goog.require('Blockly.Events.BubbleOpen');
40
- /** @suppress {extraRequire} */
41
- goog.require('Blockly.Warning');
42
-
43
-
44
- /**
45
- * Class for a comment.
46
- * @extends {Icon}
47
- * @alias Blockly.Comment
48
- */
49
- class Comment extends Icon {
50
- /**
51
- * @param {!BlockSvg} block The block associated with this comment.
52
- */
53
- constructor(block) {
54
- super(block);
55
-
56
- /**
57
- * The model for this comment.
58
- * @type {!Block.CommentModel}
59
- * @private
60
- */
61
- this.model_ = block.commentModel;
62
- // If someone creates the comment directly instead of calling
63
- // block.setCommentText we want to make sure the text is non-null;
64
- this.model_.text = this.model_.text || '';
65
-
66
- /**
67
- * The model's text value at the start of an edit.
68
- * Used to tell if an event should be fired at the end of an edit.
69
- * @type {?string}
70
- * @private
71
- */
72
- this.cachedText_ = '';
73
-
74
- /**
75
- * Mouse up event data.
76
- * @type {?browserEvents.Data}
77
- * @private
78
- */
79
- this.onMouseUpWrapper_ = null;
80
-
81
- /**
82
- * Wheel event data.
83
- * @type {?browserEvents.Data}
84
- * @private
85
- */
86
- this.onWheelWrapper_ = null;
87
-
88
- /**
89
- * Change event data.
90
- * @type {?browserEvents.Data}
91
- * @private
92
- */
93
- this.onChangeWrapper_ = null;
94
-
95
- /**
96
- * Input event data.
97
- * @type {?browserEvents.Data}
98
- * @private
99
- */
100
- this.onInputWrapper_ = null;
101
-
102
- /**
103
- * The SVG element that contains the text edit area, or null if not created.
104
- * @type {?SVGForeignObjectElement}
105
- * @private
106
- */
107
- this.foreignObject_ = null;
108
-
109
- /**
110
- * The editable text area, or null if not created.
111
- * @type {?Element}
112
- * @private
113
- */
114
- this.textarea_ = null;
115
-
116
- /**
117
- * The top-level node of the comment text, or null if not created.
118
- * @type {?SVGTextElement}
119
- * @private
120
- */
121
- this.paragraphElement_ = null;
122
-
123
- this.createIcon();
124
- }
125
-
126
- /**
127
- * Draw the comment icon.
128
- * @param {!Element} group The icon group.
129
- * @protected
130
- */
131
- drawIcon_(group) {
132
- // Circle.
133
- dom.createSvgElement(
134
- Svg.CIRCLE,
135
- {'class': 'blocklyIconShape', 'r': '8', 'cx': '8', 'cy': '8'}, group);
136
- // Can't use a real '?' text character since different browsers and
137
- // operating systems render it differently. Body of question mark.
138
- dom.createSvgElement(
139
- Svg.PATH, {
140
- 'class': 'blocklyIconSymbol',
141
- 'd': 'm6.8,10h2c0.003,-0.617 0.271,-0.962 0.633,-1.266 2.875,-2.405' +
142
- '0.607,-5.534 -3.765,-3.874v1.7c3.12,-1.657 3.698,0.118 2.336,1.25' +
143
- '-1.201,0.998 -1.201,1.528 -1.204,2.19z',
144
- },
145
- group);
146
- // Dot of question mark.
147
- dom.createSvgElement(
148
- Svg.RECT, {
149
- 'class': 'blocklyIconSymbol',
150
- 'x': '6.8',
151
- 'y': '10.78',
152
- 'height': '2',
153
- 'width': '2',
154
- },
155
- group);
156
- }
157
-
158
- /**
159
- * Create the editor for the comment's bubble.
160
- * @return {!SVGElement} The top-level node of the editor.
161
- * @private
162
- */
163
- createEditor_() {
164
- /* Create the editor. Here's the markup that will be generated in
165
- * editable mode:
166
- <foreignObject x="8" y="8" width="164" height="164">
167
- <body xmlns="http://www.w3.org/1999/xhtml" class="blocklyMinimalBody">
168
- <textarea xmlns="http://www.w3.org/1999/xhtml"
169
- class="blocklyCommentTextarea"
170
- style="height: 164px; width: 164px;"></textarea>
171
- </body>
172
- </foreignObject>
173
- * For non-editable mode see Warning.textToDom_.
174
- */
175
-
176
- this.foreignObject_ = dom.createSvgElement(
177
- Svg.FOREIGNOBJECT, {'x': Bubble.BORDER_WIDTH, 'y': Bubble.BORDER_WIDTH},
178
- null);
179
-
180
- const body = document.createElementNS(dom.HTML_NS, 'body');
181
- body.setAttribute('xmlns', dom.HTML_NS);
182
- body.className = 'blocklyMinimalBody';
183
-
184
- this.textarea_ = document.createElementNS(dom.HTML_NS, 'textarea');
185
- const textarea = this.textarea_;
186
- textarea.className = 'blocklyCommentTextarea';
187
- textarea.setAttribute('dir', this.block_.RTL ? 'RTL' : 'LTR');
188
- textarea.value = this.model_.text;
189
- this.resizeTextarea_();
190
-
191
- body.appendChild(textarea);
192
- this.foreignObject_.appendChild(body);
193
-
194
- // Ideally this would be hooked to the focus event for the comment.
195
- // However doing so in Firefox swallows the cursor for unknown reasons.
196
- // So this is hooked to mouseup instead. No big deal.
197
- this.onMouseUpWrapper_ = browserEvents.conditionalBind(
198
- textarea, 'mouseup', this, this.startEdit_, true, true);
199
- // Don't zoom with mousewheel.
200
- this.onWheelWrapper_ =
201
- browserEvents.conditionalBind(textarea, 'wheel', this, function(e) {
202
- e.stopPropagation();
203
- });
204
- this.onChangeWrapper_ = browserEvents.conditionalBind(
205
- textarea, 'change', this,
206
- /**
207
- * @this {Comment}
208
- * @param {Event} _e Unused event parameter.
209
- */
210
- function(_e) {
211
- if (this.cachedText_ !== this.model_.text) {
212
- eventUtils.fire(new (eventUtils.get(eventUtils.BLOCK_CHANGE))(
213
- this.block_, 'comment', null, this.cachedText_,
214
- this.model_.text));
215
- }
216
- });
217
- this.onInputWrapper_ = browserEvents.conditionalBind(
218
- textarea, 'input', this,
219
- /**
220
- * @this {Comment}
221
- * @param {Event} _e Unused event parameter.
222
- */
223
- function(_e) {
224
- this.model_.text = textarea.value;
225
- });
226
-
227
- setTimeout(textarea.focus.bind(textarea), 0);
228
-
229
- return this.foreignObject_;
230
- }
231
-
232
- /**
233
- * Add or remove editability of the comment.
234
- * @override
235
- */
236
- updateEditable() {
237
- super.updateEditable();
238
- if (this.isVisible()) {
239
- // Recreate the bubble with the correct UI.
240
- this.disposeBubble_();
241
- this.createBubble_();
242
- }
243
- }
244
-
245
- /**
246
- * Callback function triggered when the bubble has resized.
247
- * Resize the text area accordingly.
248
- * @private
249
- */
250
- onBubbleResize_() {
251
- if (!this.isVisible()) {
252
- return;
253
- }
254
- this.model_.size = this.bubble_.getBubbleSize();
255
- this.resizeTextarea_();
256
- }
257
-
258
- /**
259
- * Resizes the text area to match the size defined on the model (which is
260
- * the size of the bubble).
261
- * @private
262
- */
263
- resizeTextarea_() {
264
- const size = this.model_.size;
265
- const doubleBorderWidth = 2 * Bubble.BORDER_WIDTH;
266
- const widthMinusBorder = size.width - doubleBorderWidth;
267
- const heightMinusBorder = size.height - doubleBorderWidth;
268
- this.foreignObject_.setAttribute('width', widthMinusBorder);
269
- this.foreignObject_.setAttribute('height', heightMinusBorder);
270
- this.textarea_.style.width = (widthMinusBorder - 4) + 'px';
271
- this.textarea_.style.height = (heightMinusBorder - 4) + 'px';
272
- }
273
-
274
- /**
275
- * Show or hide the comment bubble.
276
- * @param {boolean} visible True if the bubble should be visible.
277
- */
278
- setVisible(visible) {
279
- if (visible === this.isVisible()) {
280
- return;
281
- }
282
- eventUtils.fire(new (eventUtils.get(eventUtils.BUBBLE_OPEN))(
283
- this.block_, visible, 'comment'));
284
- this.model_.pinned = visible;
285
- if (visible) {
286
- this.createBubble_();
287
- } else {
288
- this.disposeBubble_();
289
- }
290
- }
291
-
292
- /**
293
- * Show the bubble. Handles deciding if it should be editable or not.
294
- * @private
295
- */
296
- createBubble_() {
297
- if (!this.block_.isEditable() || userAgent.IE) {
298
- // MSIE does not support foreignobject; textareas are impossible.
299
- // https://docs.microsoft.com/en-us/openspecs/ie_standards/ms-svg/56e6e04c-7c8c-44dd-8100-bd745ee42034
300
- // Always treat comments in IE as uneditable.
301
- this.createNonEditableBubble_();
302
- } else {
303
- this.createEditableBubble_();
304
- }
305
- }
306
-
307
- /**
308
- * Show an editable bubble.
309
- * @private
310
- */
311
- createEditableBubble_() {
312
- this.bubble_ = new Bubble(
313
- /** @type {!WorkspaceSvg} */ (this.block_.workspace),
314
- this.createEditor_(), this.block_.pathObject.svgPath,
315
- /** @type {!Coordinate} */ (this.iconXY_), this.model_.size.width,
316
- this.model_.size.height);
317
- // Expose this comment's block's ID on its top-level SVG group.
318
- this.bubble_.setSvgId(this.block_.id);
319
- this.bubble_.registerResizeEvent(this.onBubbleResize_.bind(this));
320
- this.applyColour();
321
- }
322
-
323
- /**
324
- * Show a non-editable bubble.
325
- * @private
326
- * @suppress {checkTypes} Suppress `this` type mismatch.
327
- */
328
- createNonEditableBubble_() {
329
- // TODO (#2917): It would be great if the comment could support line breaks.
330
- this.paragraphElement_ = Bubble.textToDom(this.block_.getCommentText());
331
- this.bubble_ = Bubble.createNonEditableBubble(
332
- this.paragraphElement_, /** @type {!BlockSvg} */ (this.block_),
333
- /** @type {!Coordinate} */ (this.iconXY_));
334
- this.applyColour();
335
- }
336
-
337
- /**
338
- * Dispose of the bubble.
339
- * @private
340
- * @suppress {checkTypes} Suppress `this` type mismatch.
341
- */
342
- disposeBubble_() {
343
- if (this.onMouseUpWrapper_) {
344
- browserEvents.unbind(this.onMouseUpWrapper_);
345
- this.onMouseUpWrapper_ = null;
346
- }
347
- if (this.onWheelWrapper_) {
348
- browserEvents.unbind(this.onWheelWrapper_);
349
- this.onWheelWrapper_ = null;
350
- }
351
- if (this.onChangeWrapper_) {
352
- browserEvents.unbind(this.onChangeWrapper_);
353
- this.onChangeWrapper_ = null;
354
- }
355
- if (this.onInputWrapper_) {
356
- browserEvents.unbind(this.onInputWrapper_);
357
- this.onInputWrapper_ = null;
358
- }
359
- this.bubble_.dispose();
360
- this.bubble_ = null;
361
- this.textarea_ = null;
362
- this.foreignObject_ = null;
363
- this.paragraphElement_ = null;
364
- }
365
-
366
- /**
367
- * Callback fired when an edit starts.
368
- *
369
- * Bring the comment to the top of the stack when clicked on. Also cache the
370
- * current text so it can be used to fire a change event.
371
- * @param {!Event} _e Mouse up event.
372
- * @private
373
- */
374
- startEdit_(_e) {
375
- if (this.bubble_.promote()) {
376
- // Since the act of moving this node within the DOM causes a loss of
377
- // focus, we need to reapply the focus.
378
- this.textarea_.focus();
379
- }
380
-
381
- this.cachedText_ = this.model_.text;
382
- }
383
-
384
- /**
385
- * Get the dimensions of this comment's bubble.
386
- * @return {Size} Object with width and height properties.
387
- */
388
- getBubbleSize() {
389
- return this.model_.size;
390
- }
391
-
392
- /**
393
- * Size this comment's bubble.
394
- * @param {number} width Width of the bubble.
395
- * @param {number} height Height of the bubble.
396
- */
397
- setBubbleSize(width, height) {
398
- if (this.bubble_) {
399
- this.bubble_.setBubbleSize(width, height);
400
- } else {
401
- this.model_.size.width = width;
402
- this.model_.size.height = height;
403
- }
404
- }
405
-
406
- /**
407
- * Update the comment's view to match the model.
408
- * @package
409
- */
410
- updateText() {
411
- if (this.textarea_) {
412
- this.textarea_.value = this.model_.text;
413
- } else if (this.paragraphElement_) {
414
- // Non-Editable mode.
415
- // TODO (#2917): If 2917 gets added this will probably need to be updated.
416
- this.paragraphElement_.firstChild.textContent = this.model_.text;
417
- }
418
- }
419
-
420
- /**
421
- * Dispose of this comment.
422
- *
423
- * If you want to receive a comment "delete" event (newValue: null), then this
424
- * should not be called directly. Instead call block.setCommentText(null);
425
- */
426
- dispose() {
427
- this.block_.comment = null;
428
- Icon.prototype.dispose.call(this);
429
- }
430
- }
431
-
432
- /**
433
- * CSS for block comment. See css.js for use.
434
- */
435
- Css.register(`
436
- .blocklyCommentTextarea {
437
- background-color: #fef49c;
438
- border: 0;
439
- display: block;
440
- margin: 0;
441
- outline: 0;
442
- padding: 3px;
443
- resize: none;
444
- text-overflow: hidden;
445
- }
446
- `);
447
-
448
- exports.Comment = Comment;
package/core/common.js DELETED
@@ -1,265 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2021 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview Common functions used both internally and externally, but which
9
- * must not be at the top level to avoid circular dependencies.
10
- */
11
- 'use strict';
12
-
13
- /**
14
- * Common functions used both internally and externally, but which
15
- * must not be at the top level to avoid circular dependencies.
16
- * @namespace Blockly.common
17
- */
18
- goog.module('Blockly.common');
19
-
20
- /* eslint-disable-next-line no-unused-vars */
21
- const {BlockDefinition, Blocks} = goog.require('Blockly.blocks');
22
- /* eslint-disable-next-line no-unused-vars */
23
- const {Connection} = goog.requireType('Blockly.Connection');
24
- /* eslint-disable-next-line no-unused-vars */
25
- const {ICopyable} = goog.requireType('Blockly.ICopyable');
26
- /* eslint-disable-next-line no-unused-vars */
27
- const {Block} = goog.requireType('Blockly.Block');
28
- /* eslint-disable-next-line no-unused-vars */
29
- const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
30
- /* eslint-disable-next-line no-unused-vars */
31
- const {Workspace} = goog.requireType('Blockly.Workspace');
32
-
33
-
34
- /**
35
- * The main workspace most recently used.
36
- * Set by Blockly.WorkspaceSvg.prototype.markFocused
37
- * @type {!Workspace}
38
- */
39
- let mainWorkspace;
40
-
41
- /**
42
- * Returns the last used top level workspace (based on focus). Try not to use
43
- * this function, particularly if there are multiple Blockly instances on a
44
- * page.
45
- * @return {!Workspace} The main workspace.
46
- * @alias Blockly.common.getMainWorkspace
47
- */
48
- const getMainWorkspace = function() {
49
- return mainWorkspace;
50
- };
51
- exports.getMainWorkspace = getMainWorkspace;
52
-
53
- /**
54
- * Sets last used main workspace.
55
- * @param {!Workspace} workspace The most recently used top level workspace.
56
- * @alias Blockly.common.setMainWorkspace
57
- */
58
- const setMainWorkspace = function(workspace) {
59
- mainWorkspace = workspace;
60
- };
61
- exports.setMainWorkspace = setMainWorkspace;
62
-
63
- /**
64
- * Currently selected block.
65
- * @type {?ICopyable}
66
- */
67
- let selected = null;
68
-
69
- /**
70
- * Returns the currently selected block.
71
- * @return {?ICopyable} The currently selected block.
72
- * @alias Blockly.common.getSelected
73
- */
74
- const getSelected = function() {
75
- return selected;
76
- };
77
- exports.getSelected = getSelected;
78
-
79
- /**
80
- * Sets the currently selected block. This function does not visually mark the
81
- * block as selected or fire the required events. If you wish to
82
- * programmatically select a block, use `BlockSvg#select`.
83
- * @param {?ICopyable} newSelection The newly selected block.
84
- * @alias Blockly.common.setSelected
85
- * @package
86
- */
87
- const setSelected = function(newSelection) {
88
- selected = newSelection;
89
- };
90
- exports.setSelected = setSelected;
91
-
92
- /**
93
- * Container element in which to render the WidgetDiv, DropDownDiv and Tooltip.
94
- * @type {?Element}
95
- */
96
- let parentContainer;
97
-
98
- /**
99
- * Get the container element in which to render the WidgetDiv, DropDownDiv and\
100
- * Tooltip.
101
- * @return {?Element} The parent container.
102
- * @alias Blockly.common.getParentContainer
103
- */
104
- const getParentContainer = function() {
105
- return parentContainer;
106
- };
107
- exports.getParentContainer = getParentContainer;
108
-
109
- /**
110
- * Set the parent container. This is the container element that the WidgetDiv,
111
- * DropDownDiv, and Tooltip are rendered into the first time `Blockly.inject`
112
- * is called.
113
- * This method is a NOP if called after the first ``Blockly.inject``.
114
- * @param {!Element} newParent The container element.
115
- * @alias Blockly.common.setParentContainer
116
- */
117
- const setParentContainer = function(newParent) {
118
- parentContainer = newParent;
119
- };
120
- exports.setParentContainer = setParentContainer;
121
-
122
- /**
123
- * Size the SVG image to completely fill its container. Call this when the view
124
- * actually changes sizes (e.g. on a window resize/device orientation change).
125
- * See workspace.resizeContents to resize the workspace when the contents
126
- * change (e.g. when a block is added or removed).
127
- * Record the height/width of the SVG image.
128
- * @param {!WorkspaceSvg} workspace Any workspace in the SVG.
129
- * @alias Blockly.common.svgResize
130
- */
131
- const svgResize = function(workspace) {
132
- let mainWorkspace = workspace;
133
- while (mainWorkspace.options.parentWorkspace) {
134
- mainWorkspace = mainWorkspace.options.parentWorkspace;
135
- }
136
- const svg = mainWorkspace.getParentSvg();
137
- const cachedSize = mainWorkspace.getCachedParentSvgSize();
138
- const div = svg.parentNode;
139
- if (!div) {
140
- // Workspace deleted, or something.
141
- return;
142
- }
143
- const width = div.offsetWidth;
144
- const height = div.offsetHeight;
145
- if (cachedSize.width !== width) {
146
- svg.setAttribute('width', width + 'px');
147
- mainWorkspace.setCachedParentSvgSize(width, null);
148
- }
149
- if (cachedSize.height !== height) {
150
- svg.setAttribute('height', height + 'px');
151
- mainWorkspace.setCachedParentSvgSize(null, height);
152
- }
153
- mainWorkspace.resize();
154
- };
155
- exports.svgResize = svgResize;
156
-
157
- /**
158
- * All of the connections on blocks that are currently being dragged.
159
- * @type {!Array<!Connection>}
160
- */
161
- exports.draggingConnections = [];
162
-
163
- /**
164
- * Get a map of all the block's descendants mapping their type to the number of
165
- * children with that type.
166
- * @param {!Block} block The block to map.
167
- * @param {boolean=} opt_stripFollowing Optionally ignore all following
168
- * statements (blocks that are not inside a value or statement input
169
- * of the block).
170
- * @return {!Object} Map of types to type counts for descendants of the bock.
171
- * @alias Blockly.common.getBlockTypeCounts
172
- */
173
- const getBlockTypeCounts = function(block, opt_stripFollowing) {
174
- const typeCountsMap = Object.create(null);
175
- const descendants = block.getDescendants(true);
176
- if (opt_stripFollowing) {
177
- const nextBlock = block.getNextBlock();
178
- if (nextBlock) {
179
- const index = descendants.indexOf(nextBlock);
180
- descendants.splice(index, descendants.length - index);
181
- }
182
- }
183
- for (let i = 0, checkBlock; (checkBlock = descendants[i]); i++) {
184
- if (typeCountsMap[checkBlock.type]) {
185
- typeCountsMap[checkBlock.type]++;
186
- } else {
187
- typeCountsMap[checkBlock.type] = 1;
188
- }
189
- }
190
- return typeCountsMap;
191
- };
192
- exports.getBlockTypeCounts = getBlockTypeCounts;
193
-
194
- /**
195
- * Helper function for defining a block from JSON. The resulting function has
196
- * the correct value of jsonDef at the point in code where jsonInit is called.
197
- * @param {!Object} jsonDef The JSON definition of a block.
198
- * @return {function()} A function that calls jsonInit with the correct value
199
- * of jsonDef.
200
- */
201
- const jsonInitFactory = function(jsonDef) {
202
- return /** @this {Block} */ function() {
203
- this.jsonInit(jsonDef);
204
- };
205
- };
206
-
207
- /**
208
- * Define blocks from an array of JSON block definitions, as might be generated
209
- * by the Blockly Developer Tools.
210
- * @param {!Array<!Object>} jsonArray An array of JSON block definitions.
211
- * @alias Blockly.common.defineBlocksWithJsonArray
212
- */
213
- const defineBlocksWithJsonArray = function(jsonArray) {
214
- defineBlocks(createBlockDefinitionsFromJsonArray(jsonArray));
215
- };
216
- exports.defineBlocksWithJsonArray = defineBlocksWithJsonArray;
217
-
218
- /**
219
- * Define blocks from an array of JSON block definitions, as might be generated
220
- * by the Blockly Developer Tools.
221
- * @param {!Array<!Object>} jsonArray An array of JSON block definitions.
222
- * @return {!Object<string, !BlockDefinition>} A map of the block
223
- * definitions created.
224
- * @alias Blockly.common.defineBlocksWithJsonArray
225
- */
226
- const createBlockDefinitionsFromJsonArray = function(jsonArray) {
227
- const /** @type {!Object<string,!BlockDefinition>} */ blocks = {};
228
- for (let i = 0; i < jsonArray.length; i++) {
229
- const elem = jsonArray[i];
230
- if (!elem) {
231
- console.warn(`Block definition #${i} in JSON array is ${elem}. Skipping`);
232
- continue;
233
- }
234
- const type = elem.type;
235
- if (!type) {
236
- console.warn(
237
- `Block definition #${i} in JSON array is missing a type attribute. ` +
238
- 'Skipping.');
239
- continue;
240
- }
241
- blocks[type] = {init: jsonInitFactory(elem)};
242
- }
243
- return blocks;
244
- };
245
- exports.createBlockDefinitionsFromJsonArray =
246
- createBlockDefinitionsFromJsonArray;
247
-
248
- /**
249
- * Add the specified block definitions to the block definitions
250
- * dictionary (Blockly.Blocks).
251
- * @param {!Object<string,!BlockDefinition>} blocks A map of block
252
- * type names to block definitions.
253
- * @alias Blockly.common.defineBlocks
254
- */
255
- const defineBlocks = function(blocks) {
256
- // Iterate over own enumerable properties.
257
- for (const type of Object.keys(blocks)) {
258
- const definition = blocks[type];
259
- if (type in Blocks) {
260
- console.warn(`Block definiton "${type}" overwrites previous definition.`);
261
- }
262
- Blocks[type] = definition;
263
- }
264
- };
265
- exports.defineBlocks = defineBlocks;