blockly 12.5.1 → 13.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/blockly.min.js +645 -533
  2. package/blockly.mjs +13 -5
  3. package/blockly_compressed.js +610 -507
  4. package/blockly_compressed.js.map +1 -1
  5. package/blocks_compressed.js +16 -16
  6. package/blocks_compressed.js.map +1 -1
  7. package/core/block.d.ts +1 -1
  8. package/core/block_svg.d.ts +39 -16
  9. package/core/blockly.d.ts +21 -16
  10. package/core/bubbles/bubble.d.ts +17 -2
  11. package/core/bubbles/mini_workspace_bubble.d.ts +5 -0
  12. package/core/bubbles/textinput_bubble.d.ts +5 -0
  13. package/core/comments/comment_editor.d.ts +2 -2
  14. package/core/comments/rendered_workspace_comment.d.ts +6 -1
  15. package/core/common.d.ts +1 -1
  16. package/core/css.d.ts +2 -1
  17. package/core/dragging/block_drag_strategy.d.ts +84 -14
  18. package/core/dragging/bubble_drag_strategy.d.ts +5 -4
  19. package/core/dragging/comment_drag_strategy.d.ts +4 -4
  20. package/core/dragging/dragger.d.ts +13 -14
  21. package/core/events/events_block_create.d.ts +0 -3
  22. package/core/events/events_block_delete.d.ts +0 -3
  23. package/core/events/events_comment_create.d.ts +0 -3
  24. package/core/events/events_comment_delete.d.ts +0 -3
  25. package/core/field.d.ts +69 -0
  26. package/core/flyout_base.d.ts +1 -125
  27. package/core/flyout_button.d.ts +9 -0
  28. package/core/flyout_horizontal.d.ts +0 -11
  29. package/core/flyout_vertical.d.ts +0 -11
  30. package/core/gesture.d.ts +0 -12
  31. package/core/hints.d.ts +44 -0
  32. package/core/icons/icon.d.ts +6 -0
  33. package/core/inputs/input.d.ts +7 -1
  34. package/core/interfaces/i_bounded_element.d.ts +7 -0
  35. package/core/interfaces/i_bubble.d.ts +3 -2
  36. package/core/interfaces/i_collapsible_toolbox_item.d.ts +5 -1
  37. package/core/interfaces/i_draggable.d.ts +22 -17
  38. package/core/interfaces/i_dragger.d.ts +19 -10
  39. package/core/interfaces/i_flyout.d.ts +1 -31
  40. package/core/interfaces/i_focusable_node.d.ts +6 -0
  41. package/core/interfaces/i_focusable_tree.d.ts +8 -0
  42. package/core/interfaces/i_json_block_definition.d.ts +102 -0
  43. package/core/interfaces/i_navigation_policy.d.ts +12 -0
  44. package/core/interfaces/i_selectable.d.ts +2 -2
  45. package/core/interfaces/i_selectable_toolbox_item.d.ts +3 -3
  46. package/core/interfaces/i_toolbox.d.ts +4 -0
  47. package/core/interfaces/i_toolbox_item.d.ts +6 -0
  48. package/core/keyboard_nav/keyboard_mover.d.ts +138 -0
  49. package/core/keyboard_nav/move_indicator.d.ts +35 -0
  50. package/core/keyboard_nav/{block_comment_navigation_policy.d.ts → navigation_policies/block_comment_navigation_policy.d.ts} +10 -3
  51. package/core/keyboard_nav/{block_navigation_policy.d.ts → navigation_policies/block_navigation_policy.d.ts} +17 -25
  52. package/core/keyboard_nav/{comment_bar_button_navigation_policy.d.ts → navigation_policies/comment_bar_button_navigation_policy.d.ts} +10 -3
  53. package/core/keyboard_nav/{comment_editor_navigation_policy.d.ts → navigation_policies/comment_editor_navigation_policy.d.ts} +10 -3
  54. package/core/keyboard_nav/{connection_navigation_policy.d.ts → navigation_policies/connection_navigation_policy.d.ts} +11 -16
  55. package/core/keyboard_nav/{field_navigation_policy.d.ts → navigation_policies/field_navigation_policy.d.ts} +10 -3
  56. package/core/keyboard_nav/{flyout_button_navigation_policy.d.ts → navigation_policies/flyout_button_navigation_policy.d.ts} +10 -3
  57. package/core/keyboard_nav/{flyout_separator_navigation_policy.d.ts → navigation_policies/flyout_separator_navigation_policy.d.ts} +9 -3
  58. package/core/keyboard_nav/{icon_navigation_policy.d.ts → navigation_policies/icon_navigation_policy.d.ts} +10 -3
  59. package/core/keyboard_nav/navigation_policies/toolbox_item_navigation_policy.d.ts +64 -0
  60. package/core/keyboard_nav/{workspace_comment_navigation_policy.d.ts → navigation_policies/workspace_comment_navigation_policy.d.ts} +14 -9
  61. package/core/keyboard_nav/{workspace_navigation_policy.d.ts → navigation_policies/workspace_navigation_policy.d.ts} +10 -3
  62. package/core/keyboard_nav/navigators/flyout_navigator.d.ts +63 -0
  63. package/core/keyboard_nav/navigators/navigator.d.ts +225 -0
  64. package/core/keyboard_nav/navigators/toolbox_navigator.d.ts +70 -0
  65. package/core/registry.d.ts +0 -2
  66. package/core/renderers/common/constants.d.ts +4 -7
  67. package/core/renderers/common/i_path_object.d.ts +8 -0
  68. package/core/renderers/common/path_object.d.ts +5 -14
  69. package/core/renderers/common/renderer.d.ts +3 -3
  70. package/core/renderers/zelos/constants.d.ts +1 -14
  71. package/core/renderers/zelos/measurables/bottom_row.d.ts +1 -1
  72. package/core/renderers/zelos/measurables/top_row.d.ts +1 -1
  73. package/core/renderers/zelos/path_object.d.ts +0 -3
  74. package/core/renderers/zelos/renderer.d.ts +8 -0
  75. package/core/shortcut_items.d.ts +63 -1
  76. package/core/theme.d.ts +0 -2
  77. package/core/toast.d.ts +2 -11
  78. package/core/toolbox/category.d.ts +5 -0
  79. package/core/toolbox/separator.d.ts +4 -0
  80. package/core/toolbox/toolbox.d.ts +12 -22
  81. package/core/toolbox/toolbox_item.d.ts +4 -0
  82. package/core/utils/aria.d.ts +292 -23
  83. package/core/utils/shortcut_formatting.d.ts +24 -0
  84. package/core/utils/useragent.d.ts +1 -0
  85. package/core/workspace_audio.d.ts +23 -0
  86. package/core/workspace_svg.d.ts +8 -50
  87. package/dart_compressed.js +9 -9
  88. package/dart_compressed.js.map +1 -1
  89. package/index.mjs +13 -5
  90. package/javascript_compressed.js +11 -10
  91. package/javascript_compressed.js.map +1 -1
  92. package/lua_compressed.js +7 -7
  93. package/lua_compressed.js.map +1 -1
  94. package/msg/ab.js +8 -0
  95. package/msg/ab.mjs +8 -0
  96. package/msg/ace.js +8 -0
  97. package/msg/ace.mjs +8 -0
  98. package/msg/af.js +8 -0
  99. package/msg/af.mjs +8 -0
  100. package/msg/am.js +8 -0
  101. package/msg/am.mjs +8 -0
  102. package/msg/ar.js +8 -0
  103. package/msg/ar.mjs +8 -0
  104. package/msg/ast.js +8 -0
  105. package/msg/ast.mjs +8 -0
  106. package/msg/az.js +8 -0
  107. package/msg/az.mjs +8 -0
  108. package/msg/ba.js +8 -0
  109. package/msg/ba.mjs +8 -0
  110. package/msg/bcc.js +8 -0
  111. package/msg/bcc.mjs +8 -0
  112. package/msg/be-tarask.js +8 -0
  113. package/msg/be-tarask.mjs +8 -0
  114. package/msg/be.js +8 -0
  115. package/msg/be.mjs +8 -0
  116. package/msg/bg.js +8 -0
  117. package/msg/bg.mjs +8 -0
  118. package/msg/bn.js +8 -0
  119. package/msg/bn.mjs +8 -0
  120. package/msg/br.js +8 -0
  121. package/msg/br.mjs +8 -0
  122. package/msg/bs.js +8 -0
  123. package/msg/bs.mjs +8 -0
  124. package/msg/ca.js +8 -0
  125. package/msg/ca.mjs +8 -0
  126. package/msg/cdo.js +8 -0
  127. package/msg/cdo.mjs +8 -0
  128. package/msg/ce.js +8 -0
  129. package/msg/ce.mjs +8 -0
  130. package/msg/cs.js +8 -0
  131. package/msg/cs.mjs +8 -0
  132. package/msg/da.js +8 -0
  133. package/msg/da.mjs +8 -0
  134. package/msg/de.js +8 -0
  135. package/msg/de.mjs +8 -0
  136. package/msg/diq.js +8 -0
  137. package/msg/diq.mjs +8 -0
  138. package/msg/dtp.js +8 -0
  139. package/msg/dtp.mjs +8 -0
  140. package/msg/dty.js +8 -0
  141. package/msg/dty.mjs +8 -0
  142. package/msg/ee.js +8 -0
  143. package/msg/ee.mjs +8 -0
  144. package/msg/el.js +8 -0
  145. package/msg/el.mjs +8 -0
  146. package/msg/en-gb.js +8 -0
  147. package/msg/en-gb.mjs +8 -0
  148. package/msg/en.js +8 -0
  149. package/msg/en.mjs +8 -0
  150. package/msg/eo.js +8 -0
  151. package/msg/eo.mjs +8 -0
  152. package/msg/es.js +8 -0
  153. package/msg/es.mjs +8 -0
  154. package/msg/et.js +8 -0
  155. package/msg/et.mjs +8 -0
  156. package/msg/eu.js +8 -0
  157. package/msg/eu.mjs +8 -0
  158. package/msg/fa.js +8 -0
  159. package/msg/fa.mjs +8 -0
  160. package/msg/fi.js +8 -0
  161. package/msg/fi.mjs +8 -0
  162. package/msg/fo.js +8 -0
  163. package/msg/fo.mjs +8 -0
  164. package/msg/fr.js +8 -0
  165. package/msg/fr.mjs +8 -0
  166. package/msg/frr.js +8 -0
  167. package/msg/frr.mjs +8 -0
  168. package/msg/gl.js +8 -0
  169. package/msg/gl.mjs +8 -0
  170. package/msg/gn.js +8 -0
  171. package/msg/gn.mjs +8 -0
  172. package/msg/gor.js +8 -0
  173. package/msg/gor.mjs +8 -0
  174. package/msg/ha.js +8 -0
  175. package/msg/ha.mjs +8 -0
  176. package/msg/hak.js +8 -0
  177. package/msg/hak.mjs +8 -0
  178. package/msg/he.js +8 -0
  179. package/msg/he.mjs +8 -0
  180. package/msg/hi.js +8 -0
  181. package/msg/hi.mjs +8 -0
  182. package/msg/hr.js +8 -0
  183. package/msg/hr.mjs +8 -0
  184. package/msg/hrx.js +8 -0
  185. package/msg/hrx.mjs +8 -0
  186. package/msg/hsb.js +8 -0
  187. package/msg/hsb.mjs +8 -0
  188. package/msg/hu.js +8 -0
  189. package/msg/hu.mjs +8 -0
  190. package/msg/hy.js +8 -0
  191. package/msg/hy.mjs +8 -0
  192. package/msg/ia.js +8 -0
  193. package/msg/ia.mjs +8 -0
  194. package/msg/id.js +8 -0
  195. package/msg/id.mjs +8 -0
  196. package/msg/ig.js +8 -0
  197. package/msg/ig.mjs +8 -0
  198. package/msg/inh.js +8 -0
  199. package/msg/inh.mjs +8 -0
  200. package/msg/is.js +8 -0
  201. package/msg/is.mjs +8 -0
  202. package/msg/it.js +8 -0
  203. package/msg/it.mjs +8 -0
  204. package/msg/ja.js +8 -0
  205. package/msg/ja.mjs +8 -0
  206. package/msg/ka.js +8 -0
  207. package/msg/ka.mjs +8 -0
  208. package/msg/kab.js +8 -0
  209. package/msg/kab.mjs +8 -0
  210. package/msg/kbd-cyrl.js +8 -0
  211. package/msg/kbd-cyrl.mjs +8 -0
  212. package/msg/km.js +8 -0
  213. package/msg/km.mjs +8 -0
  214. package/msg/kn.js +8 -0
  215. package/msg/kn.mjs +8 -0
  216. package/msg/ko.js +8 -0
  217. package/msg/ko.mjs +8 -0
  218. package/msg/ksh.js +8 -0
  219. package/msg/ksh.mjs +8 -0
  220. package/msg/ku-latn.js +8 -0
  221. package/msg/ku-latn.mjs +8 -0
  222. package/msg/ky.js +8 -0
  223. package/msg/ky.mjs +8 -0
  224. package/msg/la.js +8 -0
  225. package/msg/la.mjs +8 -0
  226. package/msg/lb.js +8 -0
  227. package/msg/lb.mjs +8 -0
  228. package/msg/lki.js +8 -0
  229. package/msg/lki.mjs +8 -0
  230. package/msg/lo.js +8 -0
  231. package/msg/lo.mjs +8 -0
  232. package/msg/lrc.js +8 -0
  233. package/msg/lrc.mjs +8 -0
  234. package/msg/lt.js +8 -0
  235. package/msg/lt.mjs +8 -0
  236. package/msg/lv.js +8 -0
  237. package/msg/lv.mjs +8 -0
  238. package/msg/mg.js +8 -0
  239. package/msg/mg.mjs +8 -0
  240. package/msg/mk.js +8 -0
  241. package/msg/mk.mjs +8 -0
  242. package/msg/ml.js +8 -0
  243. package/msg/ml.mjs +8 -0
  244. package/msg/mnw.js +8 -0
  245. package/msg/mnw.mjs +8 -0
  246. package/msg/ms.js +8 -0
  247. package/msg/ms.mjs +8 -0
  248. package/msg/my.js +8 -0
  249. package/msg/my.mjs +8 -0
  250. package/msg/mzn.js +8 -0
  251. package/msg/mzn.mjs +8 -0
  252. package/msg/nb.js +8 -0
  253. package/msg/nb.mjs +8 -0
  254. package/msg/ne.js +8 -0
  255. package/msg/ne.mjs +8 -0
  256. package/msg/nl.js +8 -0
  257. package/msg/nl.mjs +8 -0
  258. package/msg/oc.js +8 -0
  259. package/msg/oc.mjs +8 -0
  260. package/msg/olo.js +8 -0
  261. package/msg/olo.mjs +8 -0
  262. package/msg/pa.js +8 -0
  263. package/msg/pa.mjs +8 -0
  264. package/msg/pl.js +8 -0
  265. package/msg/pl.mjs +8 -0
  266. package/msg/pms.js +8 -0
  267. package/msg/pms.mjs +8 -0
  268. package/msg/ps.js +8 -0
  269. package/msg/ps.mjs +8 -0
  270. package/msg/pt-br.js +8 -0
  271. package/msg/pt-br.mjs +8 -0
  272. package/msg/pt.js +8 -0
  273. package/msg/pt.mjs +8 -0
  274. package/msg/ro.js +8 -0
  275. package/msg/ro.mjs +8 -0
  276. package/msg/ru.js +8 -0
  277. package/msg/ru.mjs +8 -0
  278. package/msg/sc.js +8 -0
  279. package/msg/sc.mjs +8 -0
  280. package/msg/sco.js +8 -0
  281. package/msg/sco.mjs +8 -0
  282. package/msg/sd.js +8 -0
  283. package/msg/sd.mjs +8 -0
  284. package/msg/shn.js +8 -0
  285. package/msg/shn.mjs +8 -0
  286. package/msg/si.js +8 -0
  287. package/msg/si.mjs +8 -0
  288. package/msg/sk.js +8 -0
  289. package/msg/sk.mjs +8 -0
  290. package/msg/skr-arab.js +8 -0
  291. package/msg/skr-arab.mjs +8 -0
  292. package/msg/sl.js +8 -0
  293. package/msg/sl.mjs +8 -0
  294. package/msg/smn.js +8 -0
  295. package/msg/smn.mjs +8 -0
  296. package/msg/sq.js +8 -0
  297. package/msg/sq.mjs +8 -0
  298. package/msg/sr-latn.js +8 -0
  299. package/msg/sr-latn.mjs +8 -0
  300. package/msg/sr.js +8 -0
  301. package/msg/sr.mjs +8 -0
  302. package/msg/sv.js +8 -0
  303. package/msg/sv.mjs +8 -0
  304. package/msg/sw.js +8 -0
  305. package/msg/sw.mjs +8 -0
  306. package/msg/ta.js +8 -0
  307. package/msg/ta.mjs +8 -0
  308. package/msg/tcy.js +8 -0
  309. package/msg/tcy.mjs +8 -0
  310. package/msg/tdd.js +8 -0
  311. package/msg/tdd.mjs +8 -0
  312. package/msg/te.js +8 -0
  313. package/msg/te.mjs +8 -0
  314. package/msg/th.js +8 -0
  315. package/msg/th.mjs +8 -0
  316. package/msg/ti.js +8 -0
  317. package/msg/ti.mjs +8 -0
  318. package/msg/tl.js +8 -0
  319. package/msg/tl.mjs +8 -0
  320. package/msg/tlh.js +8 -0
  321. package/msg/tlh.mjs +8 -0
  322. package/msg/tr.js +8 -0
  323. package/msg/tr.mjs +8 -0
  324. package/msg/ug-arab.js +8 -0
  325. package/msg/ug-arab.mjs +8 -0
  326. package/msg/uk.js +8 -0
  327. package/msg/uk.mjs +8 -0
  328. package/msg/ur.js +8 -0
  329. package/msg/ur.mjs +8 -0
  330. package/msg/uz.js +8 -0
  331. package/msg/uz.mjs +8 -0
  332. package/msg/vi.js +8 -0
  333. package/msg/vi.mjs +8 -0
  334. package/msg/xmf.js +8 -0
  335. package/msg/xmf.mjs +8 -0
  336. package/msg/yo.js +8 -0
  337. package/msg/yo.mjs +8 -0
  338. package/msg/zgh.js +8 -0
  339. package/msg/zgh.mjs +8 -0
  340. package/msg/zh-hans.js +8 -0
  341. package/msg/zh-hans.mjs +8 -0
  342. package/msg/zh-hant.js +8 -0
  343. package/msg/zh-hant.mjs +8 -0
  344. package/package.json +11 -11
  345. package/php_compressed.js +2 -2
  346. package/php_compressed.js.map +1 -1
  347. package/python_compressed.js +2 -2
  348. package/python_compressed.js.map +1 -1
  349. package/core/flyout_navigator.d.ts +0 -11
  350. package/core/keyboard_nav/flyout_navigation_policy.d.ts +0 -65
  351. package/core/keyboard_nav/line_cursor.d.ts +0 -187
  352. package/core/keyboard_nav/marker.d.ts +0 -53
  353. package/core/marker_manager.d.ts +0 -72
  354. package/core/navigator.d.ts +0 -65
  355. package/media/sprites.png +0 -0
package/msg/yo.js CHANGED
@@ -92,16 +92,19 @@ Blockly.Msg["DUPLICATE_BLOCK"] = "Ṣe ẹẹda";
92
92
  Blockly.Msg["DUPLICATE_COMMENT"] = "Ṣe ẹẹda afikun ọrọ iwoye";
93
93
  Blockly.Msg["EDIT_BLOCK_CONTENTS"] = "Edit Block contents"; // untranslated
94
94
  Blockly.Msg["ENABLE_BLOCK"] = "Muu Bulọọku ṣiṣẹ";
95
+ Blockly.Msg["ENTER_KEY"] = "Enter"; // untranslated
95
96
  Blockly.Msg["EXPAND_ALL"] = "Fẹ awọn Bulọọku";
96
97
  Blockly.Msg["EXPAND_BLOCK"] = "Fẹ Bulọọku";
97
98
  Blockly.Msg["EXTERNAL_INPUTS"] = "Awon afikun okeere";
98
99
  Blockly.Msg["HELP"] = "Iranwọ";
99
100
  Blockly.Msg["HELP_PROMPT"] = "Press %1 for help on keyboard controls"; // untranslated
100
101
  Blockly.Msg["INLINE_INPUTS"] = "Afiku tẹle n tẹle";
102
+ Blockly.Msg["KEYBOARD_NAV_BLOCK_NAVIGATION_HINT"] = "Use the right arrow key to navigate inside of blocks"; // untranslated
101
103
  Blockly.Msg["KEYBOARD_NAV_CONSTRAINED_MOVE_HINT"] = "Use the arrow keys to move, then %1 to accept the position"; // untranslated
102
104
  Blockly.Msg["KEYBOARD_NAV_COPIED_HINT"] = "Copied. Press %1 to paste."; // untranslated
103
105
  Blockly.Msg["KEYBOARD_NAV_CUT_HINT"] = "Cut. Press %1 to paste."; // untranslated
104
106
  Blockly.Msg["KEYBOARD_NAV_UNCONSTRAINED_MOVE_HINT"] = "Hold %1 and use arrow keys to move freely, then %2 to accept the position"; // untranslated
107
+ Blockly.Msg["KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT"] = "Use the arrow keys to navigate"; // untranslated
105
108
  Blockly.Msg["LINUX"] = "Linux"; // untranslated
106
109
  Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/RaspberryPiFoundation/blockly/wiki/Lists#create-empty-list"; // untranslated
107
110
  Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "Ṣẹda akojọ aṣayan tio ṣofo";
@@ -432,6 +435,11 @@ Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER"] = "A variable named '%1'
432
435
  Blockly.Msg["WINDOWS"] = "Windows"; // untranslated
433
436
  Blockly.Msg["WORKSPACE_ARIA_LABEL"] = "Blockly Workspace"; // untranslated
434
437
  Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Sọ nkankan...";
438
+ Blockly.Msg["WORKSPACE_CONTENTS_BLOCKS_MANY"] = "%1 stacks of blocks%2 in workspace."; // untranslated
439
+ Blockly.Msg["WORKSPACE_CONTENTS_BLOCKS_ONE"] = "One stack of blocks%2 in workspace."; // untranslated
440
+ Blockly.Msg["WORKSPACE_CONTENTS_BLOCKS_ZERO"] = "No blocks%2 in workspace."; // untranslated
441
+ Blockly.Msg["WORKSPACE_CONTENTS_COMMENTS_MANY"] = " and %1 comments"; // untranslated
442
+ Blockly.Msg["WORKSPACE_CONTENTS_COMMENTS_ONE"] = " and one comment"; // untranslated
435
443
  Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
436
444
  Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
437
445
  Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"];
package/msg/yo.mjs CHANGED
@@ -432,6 +432,7 @@ export const {
432
432
  COMMAND_KEY,
433
433
  OPTION_KEY,
434
434
  ALT_KEY,
435
+ ENTER_KEY,
435
436
  CUT_SHORTCUT,
436
437
  COPY_SHORTCUT,
437
438
  PASTE_SHORTCUT,
@@ -443,4 +444,11 @@ export const {
443
444
  KEYBOARD_NAV_CONSTRAINED_MOVE_HINT,
444
445
  KEYBOARD_NAV_COPIED_HINT,
445
446
  KEYBOARD_NAV_CUT_HINT,
447
+ WORKSPACE_CONTENTS_BLOCKS_MANY,
448
+ WORKSPACE_CONTENTS_BLOCKS_ONE,
449
+ WORKSPACE_CONTENTS_BLOCKS_ZERO,
450
+ WORKSPACE_CONTENTS_COMMENTS_MANY,
451
+ WORKSPACE_CONTENTS_COMMENTS_ONE,
452
+ KEYBOARD_NAV_BLOCK_NAVIGATION_HINT,
453
+ KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT,
446
454
  } = yo;
package/msg/zgh.js CHANGED
@@ -92,16 +92,19 @@ Blockly.Msg["DUPLICATE_BLOCK"] = "Duplicate"; // untranslated
92
92
  Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated
93
93
  Blockly.Msg["EDIT_BLOCK_CONTENTS"] = "Edit Block contents"; // untranslated
94
94
  Blockly.Msg["ENABLE_BLOCK"] = "Enable Block"; // untranslated
95
+ Blockly.Msg["ENTER_KEY"] = "Enter"; // untranslated
95
96
  Blockly.Msg["EXPAND_ALL"] = "Expand Blocks"; // untranslated
96
97
  Blockly.Msg["EXPAND_BLOCK"] = "Expand Block"; // untranslated
97
98
  Blockly.Msg["EXTERNAL_INPUTS"] = "External Inputs"; // untranslated
98
99
  Blockly.Msg["HELP"] = "ⵜⵉⵡⵉⵙⵉ";
99
100
  Blockly.Msg["HELP_PROMPT"] = "Press %1 for help on keyboard controls"; // untranslated
100
101
  Blockly.Msg["INLINE_INPUTS"] = "Inline Inputs"; // untranslated
102
+ Blockly.Msg["KEYBOARD_NAV_BLOCK_NAVIGATION_HINT"] = "Use the right arrow key to navigate inside of blocks"; // untranslated
101
103
  Blockly.Msg["KEYBOARD_NAV_CONSTRAINED_MOVE_HINT"] = "Use the arrow keys to move, then %1 to accept the position"; // untranslated
102
104
  Blockly.Msg["KEYBOARD_NAV_COPIED_HINT"] = "Copied. Press %1 to paste."; // untranslated
103
105
  Blockly.Msg["KEYBOARD_NAV_CUT_HINT"] = "Cut. Press %1 to paste."; // untranslated
104
106
  Blockly.Msg["KEYBOARD_NAV_UNCONSTRAINED_MOVE_HINT"] = "Hold %1 and use arrow keys to move freely, then %2 to accept the position"; // untranslated
107
+ Blockly.Msg["KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT"] = "Use the arrow keys to navigate"; // untranslated
105
108
  Blockly.Msg["LINUX"] = "Linux"; // untranslated
106
109
  Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/RaspberryPiFoundation/blockly/wiki/Lists#create-empty-list"; // untranslated
107
110
  Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "create empty list"; // untranslated
@@ -432,6 +435,11 @@ Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER"] = "A variable named '%1'
432
435
  Blockly.Msg["WINDOWS"] = "Windows"; // untranslated
433
436
  Blockly.Msg["WORKSPACE_ARIA_LABEL"] = "Blockly Workspace"; // untranslated
434
437
  Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated
438
+ Blockly.Msg["WORKSPACE_CONTENTS_BLOCKS_MANY"] = "%1 stacks of blocks%2 in workspace."; // untranslated
439
+ Blockly.Msg["WORKSPACE_CONTENTS_BLOCKS_ONE"] = "One stack of blocks%2 in workspace."; // untranslated
440
+ Blockly.Msg["WORKSPACE_CONTENTS_BLOCKS_ZERO"] = "No blocks%2 in workspace."; // untranslated
441
+ Blockly.Msg["WORKSPACE_CONTENTS_COMMENTS_MANY"] = " and %1 comments"; // untranslated
442
+ Blockly.Msg["WORKSPACE_CONTENTS_COMMENTS_ONE"] = " and one comment"; // untranslated
435
443
  Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
436
444
  Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
437
445
  Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"];
package/msg/zgh.mjs CHANGED
@@ -432,6 +432,7 @@ export const {
432
432
  COMMAND_KEY,
433
433
  OPTION_KEY,
434
434
  ALT_KEY,
435
+ ENTER_KEY,
435
436
  CUT_SHORTCUT,
436
437
  COPY_SHORTCUT,
437
438
  PASTE_SHORTCUT,
@@ -443,4 +444,11 @@ export const {
443
444
  KEYBOARD_NAV_CONSTRAINED_MOVE_HINT,
444
445
  KEYBOARD_NAV_COPIED_HINT,
445
446
  KEYBOARD_NAV_CUT_HINT,
447
+ WORKSPACE_CONTENTS_BLOCKS_MANY,
448
+ WORKSPACE_CONTENTS_BLOCKS_ONE,
449
+ WORKSPACE_CONTENTS_BLOCKS_ZERO,
450
+ WORKSPACE_CONTENTS_COMMENTS_MANY,
451
+ WORKSPACE_CONTENTS_COMMENTS_ONE,
452
+ KEYBOARD_NAV_BLOCK_NAVIGATION_HINT,
453
+ KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT,
446
454
  } = zgh;
package/msg/zh-hans.js CHANGED
@@ -92,16 +92,19 @@ Blockly.Msg["DUPLICATE_BLOCK"] = "复制";
92
92
  Blockly.Msg["DUPLICATE_COMMENT"] = "复制注释";
93
93
  Blockly.Msg["EDIT_BLOCK_CONTENTS"] = "Edit Block contents"; // untranslated
94
94
  Blockly.Msg["ENABLE_BLOCK"] = "启用块";
95
+ Blockly.Msg["ENTER_KEY"] = "Enter"; // untranslated
95
96
  Blockly.Msg["EXPAND_ALL"] = "展开块";
96
97
  Blockly.Msg["EXPAND_BLOCK"] = "展开块";
97
98
  Blockly.Msg["EXTERNAL_INPUTS"] = "外部输入";
98
99
  Blockly.Msg["HELP"] = "帮助";
99
100
  Blockly.Msg["HELP_PROMPT"] = "Press %1 for help on keyboard controls"; // untranslated
100
101
  Blockly.Msg["INLINE_INPUTS"] = "单行输入";
102
+ Blockly.Msg["KEYBOARD_NAV_BLOCK_NAVIGATION_HINT"] = "Use the right arrow key to navigate inside of blocks"; // untranslated
101
103
  Blockly.Msg["KEYBOARD_NAV_CONSTRAINED_MOVE_HINT"] = "Use the arrow keys to move, then %1 to accept the position"; // untranslated
102
104
  Blockly.Msg["KEYBOARD_NAV_COPIED_HINT"] = "Copied. Press %1 to paste."; // untranslated
103
105
  Blockly.Msg["KEYBOARD_NAV_CUT_HINT"] = "Cut. Press %1 to paste."; // untranslated
104
106
  Blockly.Msg["KEYBOARD_NAV_UNCONSTRAINED_MOVE_HINT"] = "Hold %1 and use arrow keys to move freely, then %2 to accept the position"; // untranslated
107
+ Blockly.Msg["KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT"] = "Use the arrow keys to navigate"; // untranslated
105
108
  Blockly.Msg["LINUX"] = "Linux"; // untranslated
106
109
  Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/RaspberryPiFoundation/blockly/wiki/Lists#create-empty-list"; // untranslated
107
110
  Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "创建空列表";
@@ -432,6 +435,11 @@ Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER"] = "名为“%1”的变
432
435
  Blockly.Msg["WINDOWS"] = "Windows"; // untranslated
433
436
  Blockly.Msg["WORKSPACE_ARIA_LABEL"] = "Blockly工作区";
434
437
  Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "说点什么...";
438
+ Blockly.Msg["WORKSPACE_CONTENTS_BLOCKS_MANY"] = "%1 stacks of blocks%2 in workspace."; // untranslated
439
+ Blockly.Msg["WORKSPACE_CONTENTS_BLOCKS_ONE"] = "One stack of blocks%2 in workspace."; // untranslated
440
+ Blockly.Msg["WORKSPACE_CONTENTS_BLOCKS_ZERO"] = "No blocks%2 in workspace."; // untranslated
441
+ Blockly.Msg["WORKSPACE_CONTENTS_COMMENTS_MANY"] = " and %1 comments"; // untranslated
442
+ Blockly.Msg["WORKSPACE_CONTENTS_COMMENTS_ONE"] = " and one comment"; // untranslated
435
443
  Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
436
444
  Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
437
445
  Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"];
package/msg/zh-hans.mjs CHANGED
@@ -432,6 +432,7 @@ export const {
432
432
  COMMAND_KEY,
433
433
  OPTION_KEY,
434
434
  ALT_KEY,
435
+ ENTER_KEY,
435
436
  CUT_SHORTCUT,
436
437
  COPY_SHORTCUT,
437
438
  PASTE_SHORTCUT,
@@ -443,4 +444,11 @@ export const {
443
444
  KEYBOARD_NAV_CONSTRAINED_MOVE_HINT,
444
445
  KEYBOARD_NAV_COPIED_HINT,
445
446
  KEYBOARD_NAV_CUT_HINT,
447
+ WORKSPACE_CONTENTS_BLOCKS_MANY,
448
+ WORKSPACE_CONTENTS_BLOCKS_ONE,
449
+ WORKSPACE_CONTENTS_BLOCKS_ZERO,
450
+ WORKSPACE_CONTENTS_COMMENTS_MANY,
451
+ WORKSPACE_CONTENTS_COMMENTS_ONE,
452
+ KEYBOARD_NAV_BLOCK_NAVIGATION_HINT,
453
+ KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT,
446
454
  } = zh_hans;
package/msg/zh-hant.js CHANGED
@@ -92,16 +92,19 @@ Blockly.Msg["DUPLICATE_BLOCK"] = "再製";
92
92
  Blockly.Msg["DUPLICATE_COMMENT"] = "複製註解";
93
93
  Blockly.Msg["EDIT_BLOCK_CONTENTS"] = "Edit Block contents"; // untranslated
94
94
  Blockly.Msg["ENABLE_BLOCK"] = "啟用區塊";
95
+ Blockly.Msg["ENTER_KEY"] = "Enter"; // untranslated
95
96
  Blockly.Msg["EXPAND_ALL"] = "展開區塊";
96
97
  Blockly.Msg["EXPAND_BLOCK"] = "展開區塊";
97
98
  Blockly.Msg["EXTERNAL_INPUTS"] = "外部輸入";
98
99
  Blockly.Msg["HELP"] = "說明";
99
100
  Blockly.Msg["HELP_PROMPT"] = "Press %1 for help on keyboard controls"; // untranslated
100
101
  Blockly.Msg["INLINE_INPUTS"] = "單行輸入";
102
+ Blockly.Msg["KEYBOARD_NAV_BLOCK_NAVIGATION_HINT"] = "Use the right arrow key to navigate inside of blocks"; // untranslated
101
103
  Blockly.Msg["KEYBOARD_NAV_CONSTRAINED_MOVE_HINT"] = "Use the arrow keys to move, then %1 to accept the position"; // untranslated
102
104
  Blockly.Msg["KEYBOARD_NAV_COPIED_HINT"] = "Copied. Press %1 to paste."; // untranslated
103
105
  Blockly.Msg["KEYBOARD_NAV_CUT_HINT"] = "Cut. Press %1 to paste."; // untranslated
104
106
  Blockly.Msg["KEYBOARD_NAV_UNCONSTRAINED_MOVE_HINT"] = "Hold %1 and use arrow keys to move freely, then %2 to accept the position"; // untranslated
107
+ Blockly.Msg["KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT"] = "Use the arrow keys to navigate"; // untranslated
105
108
  Blockly.Msg["LINUX"] = "Linux"; // untranslated
106
109
  Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/RaspberryPiFoundation/blockly/wiki/Lists#create-empty-list"; // untranslated
107
110
  Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "建立空的清單";
@@ -432,6 +435,11 @@ Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER"] = "已存在名為「%1
432
435
  Blockly.Msg["WINDOWS"] = "Windows"; // untranslated
433
436
  Blockly.Msg["WORKSPACE_ARIA_LABEL"] = "Blockly工作區";
434
437
  Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "來說些事情...";
438
+ Blockly.Msg["WORKSPACE_CONTENTS_BLOCKS_MANY"] = "%1 stacks of blocks%2 in workspace."; // untranslated
439
+ Blockly.Msg["WORKSPACE_CONTENTS_BLOCKS_ONE"] = "One stack of blocks%2 in workspace."; // untranslated
440
+ Blockly.Msg["WORKSPACE_CONTENTS_BLOCKS_ZERO"] = "No blocks%2 in workspace."; // untranslated
441
+ Blockly.Msg["WORKSPACE_CONTENTS_COMMENTS_MANY"] = " and %1 comments"; // untranslated
442
+ Blockly.Msg["WORKSPACE_CONTENTS_COMMENTS_ONE"] = " and one comment"; // untranslated
435
443
  Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
436
444
  Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
437
445
  Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"];
package/msg/zh-hant.mjs CHANGED
@@ -432,6 +432,7 @@ export const {
432
432
  COMMAND_KEY,
433
433
  OPTION_KEY,
434
434
  ALT_KEY,
435
+ ENTER_KEY,
435
436
  CUT_SHORTCUT,
436
437
  COPY_SHORTCUT,
437
438
  PASTE_SHORTCUT,
@@ -443,4 +444,11 @@ export const {
443
444
  KEYBOARD_NAV_CONSTRAINED_MOVE_HINT,
444
445
  KEYBOARD_NAV_COPIED_HINT,
445
446
  KEYBOARD_NAV_CUT_HINT,
447
+ WORKSPACE_CONTENTS_BLOCKS_MANY,
448
+ WORKSPACE_CONTENTS_BLOCKS_ONE,
449
+ WORKSPACE_CONTENTS_BLOCKS_ZERO,
450
+ WORKSPACE_CONTENTS_COMMENTS_MANY,
451
+ WORKSPACE_CONTENTS_COMMENTS_ONE,
452
+ KEYBOARD_NAV_BLOCK_NAVIGATION_HINT,
453
+ KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT,
446
454
  } = zh_hant;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blockly",
3
- "version": "12.5.1",
3
+ "version": "13.0.0-beta.0",
4
4
  "description": "Blockly is a library for building visual programming editors.",
5
5
  "keywords": [
6
6
  "blockly"
@@ -16,6 +16,9 @@
16
16
  "author": {
17
17
  "name": "Neil Fraser"
18
18
  },
19
+ "browser": {
20
+ "jsdom": false
21
+ },
19
22
  "exports": {
20
23
  ".": {
21
24
  "types": "./index.d.ts",
@@ -69,7 +72,6 @@
69
72
  "devDependencies": {
70
73
  "@blockly/block-test": "^7.0.2",
71
74
  "@blockly/dev-tools": "^9.0.2",
72
- "@blockly/keyboard-navigation": "^3.0.1",
73
75
  "@blockly/theme-modern": "^7.0.1",
74
76
  "@hyperjump/browser": "^1.1.4",
75
77
  "@hyperjump/json-schema": "^1.5.0",
@@ -89,19 +91,17 @@
89
91
  "eslint-plugin-prettier": "^5.2.1",
90
92
  "glob": "^11.0.1",
91
93
  "globals": "^16.0.0",
92
- "google-closure-compiler": "^20260114.0.0",
94
+ "google-closure-compiler": "^20260330.0.0",
93
95
  "gulp": "^5.0.0",
94
96
  "gulp-concat": "^2.6.1",
95
97
  "gulp-gzip": "^1.4.2",
96
98
  "gulp-header": "^2.0.9",
97
- "gulp-insert": "^0.5.0",
98
99
  "gulp-rename": "^2.0.0",
99
100
  "gulp-replace": "^1.0.0",
100
- "gulp-series": "^1.0.2",
101
- "gulp-shell": "^0.8.0",
102
101
  "gulp-sourcemaps": "^3.0.0",
103
102
  "gulp-umd": "^2.0.0",
104
103
  "http-server": "^14.0.0",
104
+ "jsdom": "27.4.0",
105
105
  "json5": "^2.2.0",
106
106
  "markdown-tables-to-json": "^0.1.7",
107
107
  "mocha": "^11.3.0",
@@ -110,17 +110,17 @@
110
110
  "prettier-plugin-organize-imports": "^4.0.0",
111
111
  "puppeteer-core": "^24.17.0",
112
112
  "readline-sync": "^1.4.10",
113
- "rimraf": "^5.0.0",
113
+ "rimraf": "^6.1.2",
114
114
  "typescript": "^5.3.3",
115
115
  "typescript-eslint": "^8.16.0",
116
116
  "webdriverio": "^9.0.7",
117
117
  "yargs": "^17.2.1"
118
118
  },
119
- "dependencies": {
120
- "jsdom": "26.1.0"
121
- },
122
119
  "engines": {
123
- "node": ">=18"
120
+ "node": ">=22"
121
+ },
122
+ "peerDependencies": {
123
+ "jsdom": "^27.4.0"
124
124
  },
125
125
  "type": "commonjs"
126
126
  }
package/php_compressed.js CHANGED
@@ -200,9 +200,9 @@ function ${b.FUNCTION_NAME_PLACEHOLDER_}($a, $b) {
200
200
  return rand($a, $b);
201
201
  }
202
202
  `)+"("+c+", "+a+")",Order$$module$build$src$generators$php$php_generator.FUNCTION_CALL]},math_random_float$$module$build$src$generators$php$math=function(a,b){return["(float)rand()/(float)getrandmax()",Order$$module$build$src$generators$php$php_generator.FUNCTION_CALL]},math_atan2$$module$build$src$generators$php$math=function(a,b){const c=b.valueToCode(a,"X",Order$$module$build$src$generators$php$php_generator.NONE)||"0";return["atan2("+(b.valueToCode(a,"Y",Order$$module$build$src$generators$php$php_generator.NONE)||
203
- "0")+", "+c+") / pi() * 180",Order$$module$build$src$generators$php$php_generator.DIVISION]},procedures_defreturn$$module$build$src$generators$php$procedures=function(a,b){var c=[],d=a.workspace,e=$.allUsedVarModels$$module$build$src$core$variables(d)||[];for(var f of e)e=f.getName(),a.getVars().includes(e)||c.push(b.getVariableName(e));d=$.allDeveloperVariables$$module$build$src$core$variables(d);for(f=0;f<d.length;f++)c.push(b.nameDB_.getName(d[f],$.NameType$$module$build$src$core$names.DEVELOPER_VARIABLE));
203
+ "0")+", "+c+") / pi() * 180",Order$$module$build$src$generators$php$php_generator.DIVISION]},procedures_defreturn$$module$build$src$generators$php$procedures=function(a,b){var c=[],d=a.workspace,e=$.allUsedVarModels$$module$build$src$core$variables(d)||[];for(var f of e)e=f.getName(),a.getVarModels().includes(f)||c.push(b.getVariableName(e));d=$.allDeveloperVariables$$module$build$src$core$variables(d);for(f=0;f<d.length;f++)c.push(b.nameDB_.getName(d[f],$.NameType$$module$build$src$core$names.DEVELOPER_VARIABLE));
204
204
  d=c.length?b.INDENT+"global "+c.join(", ")+";\n":"";c=b.getProcedureName(a.getFieldValue("NAME"));f="";b.STATEMENT_PREFIX&&(f+=b.injectId(b.STATEMENT_PREFIX,a));b.STATEMENT_SUFFIX&&(f+=b.injectId(b.STATEMENT_SUFFIX,a));f&&(f=b.prefixLines(f,b.INDENT));e="";b.INFINITE_LOOP_TRAP&&(e=b.prefixLines(b.injectId(b.INFINITE_LOOP_TRAP,a),b.INDENT));let g="";a.getInput("STACK")&&(g=b.statementToCode(a,"STACK"));let h="";a.getInput("RETURN")&&(h=b.valueToCode(a,"RETURN",Order$$module$build$src$generators$php$php_generator.NONE)||
205
- "");let k="";g&&h&&(k=f);h&&(h=b.INDENT+"return "+h+";\n");const l=[],m=a.getVars();for(let n=0;n<m.length;n++)l[n]=b.getVariableName(m[n]);d="function "+c+"("+l.join(", ")+") {\n"+d+f+e+g+k+h+"}";d=b.scrub_(a,d);b.definitions_["%"+c]=d;return null},procedures_callreturn$$module$build$src$generators$php$procedures=function(a,b){const c=b.getProcedureName(a.getFieldValue("NAME")),d=[],e=a.getVars();for(let f=0;f<e.length;f++)d[f]=b.valueToCode(a,"ARG"+f,Order$$module$build$src$generators$php$php_generator.NONE)||
205
+ "");let k="";g&&h&&(k=f);h&&(h=b.INDENT+"return "+h+";\n");const l=[],m=a.getVarModels();for(let n=0;n<m.length;n++)l[n]=b.getVariableName(m[n].getId());d="function "+c+"("+l.join(", ")+") {\n"+d+f+e+g+k+h+"}";d=b.scrub_(a,d);b.definitions_["%"+c]=d;return null},procedures_callreturn$$module$build$src$generators$php$procedures=function(a,b){const c=b.getProcedureName(a.getFieldValue("NAME")),d=[],e=a.getVarModels();for(let f=0;f<e.length;f++)d[f]=b.valueToCode(a,"ARG"+f,Order$$module$build$src$generators$php$php_generator.NONE)||
206
206
  "null";return[c+"("+d.join(", ")+")",Order$$module$build$src$generators$php$php_generator.FUNCTION_CALL]},procedures_callnoreturn$$module$build$src$generators$php$procedures=function(a,b){return b.forBlock.procedures_callreturn(a,b)[0]+";\n"},procedures_ifreturn$$module$build$src$generators$php$procedures=function(a,b){let c="if ("+(b.valueToCode(a,"CONDITION",Order$$module$build$src$generators$php$php_generator.NONE)||"false")+") {\n";b.STATEMENT_SUFFIX&&(c+=b.prefixLines(b.injectId(b.STATEMENT_SUFFIX,
207
207
  a),b.INDENT));a.hasReturnValue_?(a=b.valueToCode(a,"VALUE",Order$$module$build$src$generators$php$php_generator.NONE)||"null",c+=b.INDENT+"return "+a+";\n"):c+=b.INDENT+"return;\n";return c+"}\n"},text$$module$build$src$generators$php$text=function(a,b){return[b.quote_(a.getFieldValue("TEXT")),Order$$module$build$src$generators$php$php_generator.ATOMIC]},text_join$$module$build$src$generators$php$text=function(a,b){if(a.itemCount_===0)return["''",Order$$module$build$src$generators$php$php_generator.ATOMIC];
208
208
  if(a.itemCount_===1)return[b.valueToCode(a,"ADD0",Order$$module$build$src$generators$php$php_generator.NONE)||"''",Order$$module$build$src$generators$php$php_generator.NONE];if(a.itemCount_===2){var c=b.valueToCode(a,"ADD0",Order$$module$build$src$generators$php$php_generator.STRING_CONCAT)||"''";a=b.valueToCode(a,"ADD1",Order$$module$build$src$generators$php$php_generator.STRING_CONCAT)||"''";return[c+" . "+a,Order$$module$build$src$generators$php$php_generator.STRING_CONCAT]}c=Array(a.itemCount_);