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
@@ -1,173 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2020 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview An item in the toolbox.
9
- */
10
- 'use strict';
11
-
12
- /**
13
- * An item in the toolbox.
14
- * @class
15
- */
16
- goog.module('Blockly.ToolboxItem');
17
-
18
- const idGenerator = goog.require('Blockly.utils.idGenerator');
19
- /* eslint-disable-next-line no-unused-vars */
20
- const toolbox = goog.requireType('Blockly.utils.toolbox');
21
- /* eslint-disable-next-line no-unused-vars */
22
- const {ICollapsibleToolboxItem} = goog.requireType('Blockly.ICollapsibleToolboxItem');
23
- /* eslint-disable-next-line no-unused-vars */
24
- const {IToolboxItem} = goog.require('Blockly.IToolboxItem');
25
- /* eslint-disable-next-line no-unused-vars */
26
- const {IToolbox} = goog.requireType('Blockly.IToolbox');
27
- /* eslint-disable-next-line no-unused-vars */
28
- const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
29
-
30
-
31
- /**
32
- * Class for an item in the toolbox.
33
- * @implements {IToolboxItem}
34
- * @alias Blockly.ToolboxItem
35
- */
36
- class ToolboxItem {
37
- /**
38
- * @param {!toolbox.ToolboxItemInfo} toolboxItemDef The JSON defining
39
- * the toolbox item.
40
- * @param {!IToolbox} toolbox The toolbox that holds the toolbox item.
41
- * @param {ICollapsibleToolboxItem=} opt_parent The parent toolbox item
42
- * or null if the category does not have a parent.
43
- */
44
- constructor(toolboxItemDef, toolbox, opt_parent) {
45
- /**
46
- * The id for the category.
47
- * @type {string}
48
- * @protected
49
- */
50
- this.id_ = toolboxItemDef['toolboxitemid'] || idGenerator.getNextUniqueId();
51
-
52
- /**
53
- * The parent of the category.
54
- * @type {?ICollapsibleToolboxItem}
55
- * @protected
56
- */
57
- this.parent_ = opt_parent || null;
58
-
59
- /**
60
- * The level that the category is nested at.
61
- * @type {number}
62
- * @protected
63
- */
64
- this.level_ = this.parent_ ? this.parent_.getLevel() + 1 : 0;
65
-
66
- /**
67
- * The JSON definition of the toolbox item.
68
- * @type {?toolbox.ToolboxItemInfo}
69
- * @protected
70
- */
71
- this.toolboxItemDef_ = toolboxItemDef;
72
-
73
- /**
74
- * The toolbox this category belongs to.
75
- * @type {!IToolbox}
76
- * @protected
77
- */
78
- this.parentToolbox_ = toolbox;
79
-
80
- /**
81
- * The workspace of the parent toolbox.
82
- * @type {!WorkspaceSvg}
83
- * @protected
84
- */
85
- this.workspace_ = this.parentToolbox_.getWorkspace();
86
- }
87
-
88
- /**
89
- * Initializes the toolbox item.
90
- * This includes creating the DOM and updating the state of any items based
91
- * on the info object.
92
- * @public
93
- */
94
- init() {
95
- // No-op by default.
96
- }
97
-
98
- /**
99
- * Gets the div for the toolbox item.
100
- * @return {?Element} The div for the toolbox item.
101
- * @public
102
- */
103
- getDiv() {
104
- return null;
105
- }
106
-
107
- /**
108
- * Gets the HTML element that is clickable.
109
- * The parent toolbox element receives clicks. The parent toolbox will add an
110
- * ID to this element so it can pass the onClick event to the correct
111
- * toolboxItem.
112
- * @return {?Element} The HTML element that receives clicks, or null if this
113
- * item should not receive clicks.
114
- * @public
115
- */
116
- getClickTarget() {
117
- return null;
118
- }
119
-
120
- /**
121
- * Gets a unique identifier for this toolbox item.
122
- * @return {string} The ID for the toolbox item.
123
- * @public
124
- */
125
- getId() {
126
- return this.id_;
127
- }
128
-
129
- /**
130
- * Gets the parent if the toolbox item is nested.
131
- * @return {?IToolboxItem} The parent toolbox item, or null if
132
- * this toolbox item is not nested.
133
- * @public
134
- */
135
- getParent() {
136
- return null;
137
- }
138
-
139
- /**
140
- * Gets the nested level of the category.
141
- * @return {number} The nested level of the category.
142
- * @package
143
- */
144
- getLevel() {
145
- return this.level_;
146
- }
147
-
148
- /**
149
- * Whether the toolbox item is selectable.
150
- * @return {boolean} True if the toolbox item can be selected.
151
- * @public
152
- */
153
- isSelectable() {
154
- return false;
155
- }
156
-
157
- /**
158
- * Whether the toolbox item is collapsible.
159
- * @return {boolean} True if the toolbox item is collapsible.
160
- * @public
161
- */
162
- isCollapsible() {
163
- return false;
164
- }
165
-
166
- /**
167
- * Dispose of this toolbox item. No-op by default.
168
- * @public
169
- */
170
- dispose() {}
171
- }
172
-
173
- exports.ToolboxItem = ToolboxItem;
package/core/tooltip.js DELETED
@@ -1,541 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2011 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- 'use strict';
8
-
9
- /**
10
- * Library to create tooltips for Blockly.
11
- * First, call createDom() after onload.
12
- * Second, set the 'tooltip' property on any SVG element that needs a tooltip.
13
- * If the tooltip is a string, or a function that returns a string, that message
14
- * will be displayed. If the tooltip is an SVG element, then that object's
15
- * tooltip will be used. Third, call bindMouseEvents(e) passing the SVG element.
16
- * @namespace Blockly.Tooltip
17
- */
18
- goog.module('Blockly.Tooltip');
19
-
20
- const blocklyString = goog.require('Blockly.utils.string');
21
- const browserEvents = goog.require('Blockly.browserEvents');
22
- const common = goog.require('Blockly.common');
23
- const deprecation = goog.require('Blockly.utils.deprecation');
24
-
25
-
26
- /**
27
- * A type which can define a tooltip.
28
- * Either a string, an object containing a tooltip property, or a function which
29
- * returns either a string, or another arbitrarily nested function which
30
- * eventually unwinds to a string.
31
- * @typedef {string|{tooltip}|function(): (string|!Function)}
32
- * @alias Blockly.Tooltip.TipInfo
33
- */
34
- let TipInfo;
35
- exports.TipInfo = TipInfo;
36
-
37
- /**
38
- * A function that renders custom tooltip UI.
39
- * 1st parameter: the div element to render content into.
40
- * 2nd parameter: the element being moused over (i.e., the element for which the
41
- * tooltip should be shown).
42
- * @typedef {function(!Element, !Element)}
43
- * @alias Blockly.Tooltip.CustomTooltip
44
- */
45
- let CustomTooltip;
46
- exports.CustomTooltip = CustomTooltip;
47
-
48
- /**
49
- * An optional function that renders custom tooltips into the provided DIV. If
50
- * this is defined, the function will be called instead of rendering the default
51
- * tooltip UI.
52
- * @type {!CustomTooltip|undefined}
53
- */
54
- let customTooltip = undefined;
55
-
56
- /**
57
- * Sets a custom function that will be called if present instead of the default
58
- * tooltip UI.
59
- * @param {!CustomTooltip} customFn A custom tooltip used to render an alternate
60
- * tooltip UI.
61
- * @alias Blockly.Tooltip.setCustomTooltip
62
- */
63
- const setCustomTooltip = function(customFn) {
64
- customTooltip = customFn;
65
- };
66
- exports.setCustomTooltip = setCustomTooltip;
67
-
68
- /**
69
- * Gets the custom tooltip function.
70
- * @returns {!CustomTooltip|undefined} The custom tooltip function, if defined.
71
- */
72
- const getCustomTooltip = function() {
73
- return customTooltip;
74
- };
75
- exports.getCustomTooltip = getCustomTooltip;
76
-
77
- /**
78
- * Is a tooltip currently showing?
79
- * @type {boolean}
80
- */
81
- let visible = false;
82
-
83
- /**
84
- * Returns whether or not a tooltip is showing
85
- * @returns {boolean} True if a tooltip is showing
86
- * @alias Blockly.Tooltip.isVisible
87
- */
88
- const isVisible = function() {
89
- return visible;
90
- };
91
- exports.isVisible = isVisible;
92
-
93
- Object.defineProperties(exports, {
94
- /**
95
- * Is a tooltip currently showing?
96
- * @name Blockly.Tooltip.visible
97
- * @type {boolean}
98
- * @deprecated Use Blockly.Tooltip.isVisible() instead. (September
99
- * 2021)
100
- * @suppress {checkTypes}
101
- */
102
- visible: {
103
- get: function() {
104
- deprecation.warn(
105
- 'Blockly.Tooltip.visible', 'September 2021', 'September 2022',
106
- 'Blockly.Tooltip.isVisible()');
107
- return isVisible();
108
- },
109
- },
110
- });
111
-
112
- /**
113
- * Is someone else blocking the tooltip from being shown?
114
- * @type {boolean}
115
- */
116
- let blocked = false;
117
-
118
- /**
119
- * Maximum width (in characters) of a tooltip.
120
- * @alias Blockly.Tooltip.LIMIT
121
- */
122
- const LIMIT = 50;
123
- exports.LIMIT = LIMIT;
124
-
125
- /**
126
- * PID of suspended thread to clear tooltip on mouse out.
127
- */
128
- let mouseOutPid = 0;
129
-
130
- /**
131
- * PID of suspended thread to show the tooltip.
132
- */
133
- let showPid = 0;
134
-
135
- /**
136
- * Last observed X location of the mouse pointer (freezes when tooltip appears).
137
- */
138
- let lastX = 0;
139
-
140
- /**
141
- * Last observed Y location of the mouse pointer (freezes when tooltip appears).
142
- */
143
- let lastY = 0;
144
-
145
- /**
146
- * Current element being pointed at.
147
- * @type {Element}
148
- */
149
- let element = null;
150
-
151
- /**
152
- * Once a tooltip has opened for an element, that element is 'poisoned' and
153
- * cannot respawn a tooltip until the pointer moves over a different element.
154
- * @type {Element}
155
- */
156
- let poisonedElement = null;
157
-
158
- /**
159
- * Horizontal offset between mouse cursor and tooltip.
160
- * @alias Blockly.Tooltip.OFFSET_X
161
- */
162
- const OFFSET_X = 0;
163
- exports.OFFSET_X = OFFSET_X;
164
-
165
- /**
166
- * Vertical offset between mouse cursor and tooltip.
167
- * @alias Blockly.Tooltip.OFFSET_Y
168
- */
169
- const OFFSET_Y = 10;
170
- exports.OFFSET_Y = OFFSET_Y;
171
-
172
- /**
173
- * Radius mouse can move before killing tooltip.
174
- * @alias Blockly.Tooltip.RADIUS_OK
175
- */
176
- const RADIUS_OK = 10;
177
- exports.RADIUS_OK = RADIUS_OK;
178
-
179
- /**
180
- * Delay before tooltip appears.
181
- * @alias Blockly.Tooltip.HOVER_MS
182
- */
183
- const HOVER_MS = 750;
184
- exports.HOVER_MS = HOVER_MS;
185
-
186
- /**
187
- * Horizontal padding between tooltip and screen edge.
188
- * @alias Blockly.Tooltip.MARGINS
189
- */
190
- const MARGINS = 5;
191
- exports.MARGINS = MARGINS;
192
-
193
- /**
194
- * The HTML container. Set once by createDom.
195
- * @type {?HTMLDivElement}
196
- */
197
- let DIV = null;
198
-
199
- /**
200
- * Returns the HTML tooltip container.
201
- * @returns {?HTMLDivElement} The HTML tooltip container.
202
- * @alias Blockly.Tooltip.getDiv
203
- */
204
- const getDiv = function() {
205
- return DIV;
206
- };
207
- exports.getDiv = getDiv;
208
-
209
- Object.defineProperties(exports, {
210
- /**
211
- * The HTML container. Set once by createDom.
212
- * @name Blockly.Tooltip.DIV
213
- * @type {HTMLDivElement}
214
- * @deprecated Use Blockly.Tooltip.getDiv() and .setDiv().
215
- * (September 2021)
216
- * @suppress {checkTypes}
217
- */
218
- DIV: {
219
- get: function() {
220
- deprecation.warn(
221
- 'Blockly.Tooltip.DIV', 'September 2021', 'September 2022',
222
- 'Blockly.Tooltip.getDiv()');
223
- return getDiv();
224
- },
225
- },
226
- });
227
-
228
- /**
229
- * Returns the tooltip text for the given element.
230
- * @param {?Object} object The object to get the tooltip text of.
231
- * @return {string} The tooltip text of the element.
232
- * @alias Blockly.Tooltip.getTooltipOfObject
233
- */
234
- const getTooltipOfObject = function(object) {
235
- const obj = getTargetObject(object);
236
- if (obj) {
237
- let tooltip = obj.tooltip;
238
- while (typeof tooltip === 'function') {
239
- tooltip = tooltip();
240
- }
241
- if (typeof tooltip !== 'string') {
242
- throw Error('Tooltip function must return a string.');
243
- }
244
- return tooltip;
245
- }
246
- return '';
247
- };
248
- exports.getTooltipOfObject = getTooltipOfObject;
249
-
250
- /**
251
- * Returns the target object that the given object is targeting for its
252
- * tooltip. Could be the object itself.
253
- * @param {?Object} obj The object are trying to find the target tooltip
254
- * object of.
255
- * @return {?{tooltip}} The target tooltip object.
256
- */
257
- const getTargetObject = function(obj) {
258
- while (obj && obj.tooltip) {
259
- if ((typeof obj.tooltip === 'string') ||
260
- (typeof obj.tooltip === 'function')) {
261
- return obj;
262
- }
263
- obj = obj.tooltip;
264
- }
265
- return null;
266
- };
267
-
268
- /**
269
- * Create the tooltip div and inject it onto the page.
270
- * @alias Blockly.Tooltip.createDom
271
- */
272
- const createDom = function() {
273
- if (DIV) {
274
- return; // Already created.
275
- }
276
- // Create an HTML container for popup overlays (e.g. editor widgets).
277
- DIV = /** @type {!HTMLDivElement} */ (document.createElement('div'));
278
- DIV.className = 'blocklyTooltipDiv';
279
- const container = common.getParentContainer() || document.body;
280
- container.appendChild(DIV);
281
- };
282
- exports.createDom = createDom;
283
-
284
- /**
285
- * Binds the required mouse events onto an SVG element.
286
- * @param {!Element} element SVG element onto which tooltip is to be bound.
287
- * @alias Blockly.Tooltip.bindMouseEvents
288
- */
289
- const bindMouseEvents = function(element) {
290
- element.mouseOverWrapper_ =
291
- browserEvents.bind(element, 'mouseover', null, onMouseOver);
292
- element.mouseOutWrapper_ =
293
- browserEvents.bind(element, 'mouseout', null, onMouseOut);
294
-
295
- // Don't use bindEvent_ for mousemove since that would create a
296
- // corresponding touch handler, even though this only makes sense in the
297
- // context of a mouseover/mouseout.
298
- element.addEventListener('mousemove', onMouseMove, false);
299
- };
300
- exports.bindMouseEvents = bindMouseEvents;
301
-
302
- /**
303
- * Unbinds tooltip mouse events from the SVG element.
304
- * @param {!Element} element SVG element onto which tooltip is bound.
305
- * @alias Blockly.Tooltip.unbindMouseEvents
306
- */
307
- const unbindMouseEvents = function(element) {
308
- if (!element) {
309
- return;
310
- }
311
- browserEvents.unbind(element.mouseOverWrapper_);
312
- browserEvents.unbind(element.mouseOutWrapper_);
313
- element.removeEventListener('mousemove', onMouseMove);
314
- };
315
- exports.unbindMouseEvents = unbindMouseEvents;
316
-
317
- /**
318
- * Hide the tooltip if the mouse is over a different object.
319
- * Initialize the tooltip to potentially appear for this object.
320
- * @param {!Event} e Mouse event.
321
- */
322
- const onMouseOver = function(e) {
323
- if (blocked) {
324
- // Someone doesn't want us to show tooltips.
325
- return;
326
- }
327
- // If the tooltip is an object, treat it as a pointer to the next object in
328
- // the chain to look at. Terminate when a string or function is found.
329
- const newElement = /** @type {Element} */ (getTargetObject(e.currentTarget));
330
- if (element !== newElement) {
331
- hide();
332
- poisonedElement = null;
333
- element = newElement;
334
- }
335
- // Forget about any immediately preceding mouseOut event.
336
- clearTimeout(mouseOutPid);
337
- };
338
-
339
- /**
340
- * Hide the tooltip if the mouse leaves the object and enters the workspace.
341
- * @param {!Event} _e Mouse event.
342
- */
343
- const onMouseOut = function(_e) {
344
- if (blocked) {
345
- // Someone doesn't want us to show tooltips.
346
- return;
347
- }
348
- // Moving from one element to another (overlapping or with no gap) generates
349
- // a mouseOut followed instantly by a mouseOver. Fork off the mouseOut
350
- // event and kill it if a mouseOver is received immediately.
351
- // This way the task only fully executes if mousing into the void.
352
- mouseOutPid = setTimeout(function() {
353
- element = null;
354
- poisonedElement = null;
355
- hide();
356
- }, 1);
357
- clearTimeout(showPid);
358
- };
359
-
360
- /**
361
- * When hovering over an element, schedule a tooltip to be shown. If a tooltip
362
- * is already visible, hide it if the mouse strays out of a certain radius.
363
- * @param {!Event} e Mouse event.
364
- */
365
- const onMouseMove = function(e) {
366
- if (!element || !element.tooltip) {
367
- // No tooltip here to show.
368
- return;
369
- } else if (blocked) {
370
- // Someone doesn't want us to show tooltips. We are probably handling a
371
- // user gesture, such as a click or drag.
372
- return;
373
- }
374
- if (visible) {
375
- // Compute the distance between the mouse position when the tooltip was
376
- // shown and the current mouse position. Pythagorean theorem.
377
- const dx = lastX - e.pageX;
378
- const dy = lastY - e.pageY;
379
- if (Math.sqrt(dx * dx + dy * dy) > RADIUS_OK) {
380
- hide();
381
- }
382
- } else if (poisonedElement !== element) {
383
- // The mouse moved, clear any previously scheduled tooltip.
384
- clearTimeout(showPid);
385
- // Maybe this time the mouse will stay put. Schedule showing of tooltip.
386
- lastX = e.pageX;
387
- lastY = e.pageY;
388
- showPid = setTimeout(show, HOVER_MS);
389
- }
390
- };
391
-
392
- /**
393
- * Dispose of the tooltip.
394
- * @alias Blockly.Tooltip.dispose
395
- * @package
396
- */
397
- const dispose = function() {
398
- element = null;
399
- poisonedElement = null;
400
- hide();
401
- };
402
- exports.dispose = dispose;
403
-
404
- /**
405
- * Hide the tooltip.
406
- * @alias Blockly.Tooltip.hide
407
- */
408
- const hide = function() {
409
- if (visible) {
410
- visible = false;
411
- if (DIV) {
412
- DIV.style.display = 'none';
413
- }
414
- }
415
- if (showPid) {
416
- clearTimeout(showPid);
417
- }
418
- };
419
- exports.hide = hide;
420
-
421
- /**
422
- * Hide any in-progress tooltips and block showing new tooltips until the next
423
- * call to unblock().
424
- * @alias Blockly.Tooltip.block
425
- * @package
426
- */
427
- const block = function() {
428
- hide();
429
- blocked = true;
430
- };
431
- exports.block = block;
432
-
433
- /**
434
- * Unblock tooltips: allow them to be scheduled and shown according to their own
435
- * logic.
436
- * @alias Blockly.Tooltip.unblock
437
- * @package
438
- */
439
- const unblock = function() {
440
- blocked = false;
441
- };
442
- exports.unblock = unblock;
443
-
444
- /**
445
- * Renders the tooltip content into the tooltip div.
446
- */
447
- const renderContent = function() {
448
- if (!DIV || !element) {
449
- // This shouldn't happen, but if it does, we can't render.
450
- return;
451
- }
452
- if (typeof customTooltip === 'function') {
453
- customTooltip(DIV, element);
454
- } else {
455
- renderDefaultContent();
456
- }
457
- };
458
-
459
- /**
460
- * Renders the default tooltip UI.
461
- */
462
- const renderDefaultContent = function() {
463
- let tip = getTooltipOfObject(element);
464
- tip = blocklyString.wrap(tip, LIMIT);
465
- // Create new text, line by line.
466
- const lines = tip.split('\n');
467
- for (let i = 0; i < lines.length; i++) {
468
- const div = /** @type {!HTMLDivElement} */ (document.createElement('div'));
469
- div.appendChild(document.createTextNode(lines[i]));
470
- DIV.appendChild(div);
471
- }
472
- };
473
-
474
- /**
475
- * Gets the coordinates for the tooltip div, taking into account the edges of
476
- * the screen to prevent showing the tooltip offscreen.
477
- * @param {boolean} rtl True if the tooltip should be in right-to-left layout.
478
- * @returns {{x: number, y: number}} Coordinates at which the tooltip div should
479
- * be placed.
480
- */
481
- const getPosition = function(rtl) {
482
- // Position the tooltip just below the cursor.
483
- const windowWidth = document.documentElement.clientWidth;
484
- const windowHeight = document.documentElement.clientHeight;
485
-
486
- let anchorX = lastX;
487
- if (rtl) {
488
- anchorX -= OFFSET_X + DIV.offsetWidth;
489
- } else {
490
- anchorX += OFFSET_X;
491
- }
492
-
493
- let anchorY = lastY + OFFSET_Y;
494
- if (anchorY + DIV.offsetHeight > windowHeight + window.scrollY) {
495
- // Falling off the bottom of the screen; shift the tooltip up.
496
- anchorY -= DIV.offsetHeight + 2 * OFFSET_Y;
497
- }
498
-
499
- if (rtl) {
500
- // Prevent falling off left edge in RTL mode.
501
- anchorX = Math.max(MARGINS - window.scrollX, anchorX);
502
- } else {
503
- if (anchorX + DIV.offsetWidth >
504
- windowWidth + window.scrollX - 2 * MARGINS) {
505
- // Falling off the right edge of the screen;
506
- // clamp the tooltip on the edge.
507
- anchorX = windowWidth - DIV.offsetWidth - 2 * MARGINS;
508
- }
509
- }
510
-
511
- return {x: anchorX, y: anchorY};
512
- };
513
-
514
- /**
515
- * Create the tooltip and show it.
516
- */
517
- const show = function() {
518
- if (blocked) {
519
- // Someone doesn't want us to show tooltips.
520
- return;
521
- }
522
- poisonedElement = element;
523
- if (!DIV) {
524
- return;
525
- }
526
- // Erase all existing text.
527
- DIV.textContent = '';
528
-
529
- // Add new content.
530
- renderContent();
531
-
532
- // Display the tooltip.
533
- const rtl = /** @type {{RTL: boolean}} */ (element).RTL;
534
- DIV.style.direction = rtl ? 'rtl' : 'ltr';
535
- DIV.style.display = 'block';
536
- visible = true;
537
-
538
- const {x, y} = getPosition(rtl);
539
- DIV.style.left = x + 'px';
540
- DIV.style.top = y + 'px';
541
- };