blockly 13.1.1 → 13.2.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 (277) hide show
  1. package/blockly.min.js +870 -854
  2. package/blockly_compressed.js +760 -749
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks_compressed.js +77 -77
  5. package/blocks_compressed.js.map +1 -1
  6. package/core/block.d.ts +1 -1
  7. package/core/block_svg.d.ts +0 -10
  8. package/core/blockly.d.ts +1 -0
  9. package/core/connection_db.d.ts +40 -0
  10. package/core/dragging/block_drag_strategy.d.ts +8 -3
  11. package/core/field.d.ts +12 -0
  12. package/core/field_dropdown.d.ts +5 -1
  13. package/core/field_input.d.ts +7 -0
  14. package/core/insertion_marker.d.ts +54 -0
  15. package/core/insertion_marker_previewer.d.ts +17 -1
  16. package/core/interfaces/i_json_block_definition.d.ts +10 -0
  17. package/core/rendered_connection.d.ts +20 -0
  18. package/dart_compressed.js +23 -23
  19. package/javascript_compressed.js +28 -28
  20. package/lua_compressed.js +41 -41
  21. package/msg/ab.js +5 -0
  22. package/msg/ab.mjs +5 -0
  23. package/msg/ace.js +5 -0
  24. package/msg/ace.mjs +5 -0
  25. package/msg/af.js +5 -0
  26. package/msg/af.mjs +5 -0
  27. package/msg/am.js +5 -0
  28. package/msg/am.mjs +5 -0
  29. package/msg/ar.js +5 -0
  30. package/msg/ar.mjs +5 -0
  31. package/msg/ast.js +5 -0
  32. package/msg/ast.mjs +5 -0
  33. package/msg/az.js +5 -0
  34. package/msg/az.mjs +5 -0
  35. package/msg/ba.js +5 -0
  36. package/msg/ba.mjs +5 -0
  37. package/msg/bcc.js +5 -0
  38. package/msg/bcc.mjs +5 -0
  39. package/msg/be-tarask.js +5 -0
  40. package/msg/be-tarask.mjs +5 -0
  41. package/msg/be.js +5 -0
  42. package/msg/be.mjs +5 -0
  43. package/msg/bg.js +5 -0
  44. package/msg/bg.mjs +5 -0
  45. package/msg/bn.js +5 -0
  46. package/msg/bn.mjs +5 -0
  47. package/msg/br.js +5 -0
  48. package/msg/br.mjs +5 -0
  49. package/msg/bs.js +5 -0
  50. package/msg/bs.mjs +5 -0
  51. package/msg/ca.js +5 -0
  52. package/msg/ca.mjs +5 -0
  53. package/msg/ce.js +5 -0
  54. package/msg/ce.mjs +5 -0
  55. package/msg/cs.js +5 -0
  56. package/msg/cs.mjs +5 -0
  57. package/msg/csb.js +5 -0
  58. package/msg/csb.mjs +5 -0
  59. package/msg/da.js +5 -0
  60. package/msg/da.mjs +5 -0
  61. package/msg/de.js +5 -0
  62. package/msg/de.mjs +5 -0
  63. package/msg/diq.js +5 -0
  64. package/msg/diq.mjs +5 -0
  65. package/msg/dtp.js +5 -0
  66. package/msg/dtp.mjs +5 -0
  67. package/msg/dty.js +5 -0
  68. package/msg/dty.mjs +5 -0
  69. package/msg/ee.js +5 -0
  70. package/msg/ee.mjs +5 -0
  71. package/msg/el.js +5 -0
  72. package/msg/el.mjs +5 -0
  73. package/msg/en-gb.js +5 -0
  74. package/msg/en-gb.mjs +5 -0
  75. package/msg/en.js +5 -0
  76. package/msg/en.mjs +5 -0
  77. package/msg/eo.js +5 -0
  78. package/msg/eo.mjs +5 -0
  79. package/msg/es.js +5 -0
  80. package/msg/es.mjs +5 -0
  81. package/msg/et.js +5 -0
  82. package/msg/et.mjs +5 -0
  83. package/msg/eu.js +5 -0
  84. package/msg/eu.mjs +5 -0
  85. package/msg/fa.js +5 -0
  86. package/msg/fa.mjs +5 -0
  87. package/msg/fi.js +10 -5
  88. package/msg/fi.mjs +5 -0
  89. package/msg/fo.js +5 -0
  90. package/msg/fo.mjs +5 -0
  91. package/msg/fr.js +90 -85
  92. package/msg/fr.mjs +5 -0
  93. package/msg/frr.js +5 -0
  94. package/msg/frr.mjs +5 -0
  95. package/msg/ga.js +5 -0
  96. package/msg/ga.mjs +5 -0
  97. package/msg/gl.js +29 -24
  98. package/msg/gl.mjs +5 -0
  99. package/msg/gn.js +5 -0
  100. package/msg/gn.mjs +5 -0
  101. package/msg/gor.js +5 -0
  102. package/msg/gor.mjs +5 -0
  103. package/msg/ha.js +5 -0
  104. package/msg/ha.mjs +5 -0
  105. package/msg/he.js +36 -31
  106. package/msg/he.mjs +5 -0
  107. package/msg/hi.js +5 -0
  108. package/msg/hi.mjs +5 -0
  109. package/msg/hr.js +5 -0
  110. package/msg/hr.mjs +5 -0
  111. package/msg/hrx.js +5 -0
  112. package/msg/hrx.mjs +5 -0
  113. package/msg/hsb.js +5 -0
  114. package/msg/hsb.mjs +5 -0
  115. package/msg/hu.js +5 -0
  116. package/msg/hu.mjs +5 -0
  117. package/msg/hy.js +5 -0
  118. package/msg/hy.mjs +5 -0
  119. package/msg/ia.js +5 -0
  120. package/msg/ia.mjs +5 -0
  121. package/msg/id.js +5 -0
  122. package/msg/id.mjs +5 -0
  123. package/msg/ig.js +5 -0
  124. package/msg/ig.mjs +5 -0
  125. package/msg/inh.js +5 -0
  126. package/msg/inh.mjs +5 -0
  127. package/msg/is.js +5 -0
  128. package/msg/is.mjs +5 -0
  129. package/msg/it.js +10 -5
  130. package/msg/it.mjs +5 -0
  131. package/msg/ja.js +5 -0
  132. package/msg/ja.mjs +5 -0
  133. package/msg/ka.js +5 -0
  134. package/msg/ka.mjs +5 -0
  135. package/msg/kab.js +5 -0
  136. package/msg/kab.mjs +5 -0
  137. package/msg/kbd-cyrl.js +5 -0
  138. package/msg/kbd-cyrl.mjs +5 -0
  139. package/msg/km.js +5 -0
  140. package/msg/km.mjs +5 -0
  141. package/msg/kn.js +5 -0
  142. package/msg/kn.mjs +5 -0
  143. package/msg/ko.js +29 -24
  144. package/msg/ko.mjs +5 -0
  145. package/msg/krc.js +5 -0
  146. package/msg/krc.mjs +5 -0
  147. package/msg/ksh.js +5 -0
  148. package/msg/ksh.mjs +5 -0
  149. package/msg/ku-latn.js +5 -0
  150. package/msg/ku-latn.mjs +5 -0
  151. package/msg/ky.js +5 -0
  152. package/msg/ky.mjs +5 -0
  153. package/msg/la.js +5 -0
  154. package/msg/la.mjs +5 -0
  155. package/msg/lb.js +20 -15
  156. package/msg/lb.mjs +5 -0
  157. package/msg/lki.js +5 -0
  158. package/msg/lki.mjs +5 -0
  159. package/msg/lo.js +5 -0
  160. package/msg/lo.mjs +5 -0
  161. package/msg/lrc.js +5 -0
  162. package/msg/lrc.mjs +5 -0
  163. package/msg/lt.js +5 -0
  164. package/msg/lt.mjs +5 -0
  165. package/msg/lv.js +5 -0
  166. package/msg/lv.mjs +5 -0
  167. package/msg/mg.js +5 -0
  168. package/msg/mg.mjs +5 -0
  169. package/msg/mk.js +5 -0
  170. package/msg/mk.mjs +5 -0
  171. package/msg/ml.js +5 -0
  172. package/msg/ml.mjs +5 -0
  173. package/msg/mnw.js +5 -0
  174. package/msg/mnw.mjs +5 -0
  175. package/msg/ms.js +5 -0
  176. package/msg/ms.mjs +5 -0
  177. package/msg/mt.js +5 -0
  178. package/msg/mt.mjs +5 -0
  179. package/msg/my.js +5 -0
  180. package/msg/my.mjs +5 -0
  181. package/msg/mzn.js +5 -0
  182. package/msg/mzn.mjs +5 -0
  183. package/msg/nb.js +5 -0
  184. package/msg/nb.mjs +5 -0
  185. package/msg/ne.js +5 -0
  186. package/msg/ne.mjs +5 -0
  187. package/msg/nl.js +82 -77
  188. package/msg/nl.mjs +5 -0
  189. package/msg/oc.js +5 -0
  190. package/msg/oc.mjs +5 -0
  191. package/msg/olo.js +5 -0
  192. package/msg/olo.mjs +5 -0
  193. package/msg/pa.js +5 -0
  194. package/msg/pa.mjs +5 -0
  195. package/msg/pl.js +5 -0
  196. package/msg/pl.mjs +5 -0
  197. package/msg/pms.js +92 -87
  198. package/msg/pms.mjs +5 -0
  199. package/msg/ps.js +5 -0
  200. package/msg/ps.mjs +5 -0
  201. package/msg/pt-br.js +5 -0
  202. package/msg/pt-br.mjs +5 -0
  203. package/msg/pt.js +5 -0
  204. package/msg/pt.mjs +5 -0
  205. package/msg/ro.js +5 -0
  206. package/msg/ro.mjs +5 -0
  207. package/msg/ru.js +5 -0
  208. package/msg/ru.mjs +5 -0
  209. package/msg/sc.js +5 -0
  210. package/msg/sc.mjs +5 -0
  211. package/msg/sco.js +5 -0
  212. package/msg/sco.mjs +5 -0
  213. package/msg/sd.js +5 -0
  214. package/msg/sd.mjs +5 -0
  215. package/msg/shn.js +5 -0
  216. package/msg/shn.mjs +5 -0
  217. package/msg/si.js +5 -0
  218. package/msg/si.mjs +5 -0
  219. package/msg/sk.js +27 -22
  220. package/msg/sk.mjs +5 -0
  221. package/msg/skr-arab.js +5 -0
  222. package/msg/skr-arab.mjs +5 -0
  223. package/msg/sl.js +5 -0
  224. package/msg/sl.mjs +5 -0
  225. package/msg/smn.js +5 -0
  226. package/msg/smn.mjs +5 -0
  227. package/msg/sq.js +5 -0
  228. package/msg/sq.mjs +5 -0
  229. package/msg/sr-latn.js +5 -0
  230. package/msg/sr-latn.mjs +5 -0
  231. package/msg/sr.js +5 -0
  232. package/msg/sr.mjs +5 -0
  233. package/msg/sv.js +5 -0
  234. package/msg/sv.mjs +5 -0
  235. package/msg/sw.js +5 -0
  236. package/msg/sw.mjs +5 -0
  237. package/msg/ta.js +5 -0
  238. package/msg/ta.mjs +5 -0
  239. package/msg/tcy.js +5 -0
  240. package/msg/tcy.mjs +5 -0
  241. package/msg/tdd.js +5 -0
  242. package/msg/tdd.mjs +5 -0
  243. package/msg/te.js +5 -0
  244. package/msg/te.mjs +5 -0
  245. package/msg/th.js +5 -0
  246. package/msg/th.mjs +5 -0
  247. package/msg/ti.js +5 -0
  248. package/msg/ti.mjs +5 -0
  249. package/msg/tl.js +5 -0
  250. package/msg/tl.mjs +5 -0
  251. package/msg/tlh.js +5 -0
  252. package/msg/tlh.mjs +5 -0
  253. package/msg/tr.js +59 -54
  254. package/msg/tr.mjs +5 -0
  255. package/msg/ug-arab.js +5 -0
  256. package/msg/ug-arab.mjs +5 -0
  257. package/msg/uk.js +5 -0
  258. package/msg/uk.mjs +5 -0
  259. package/msg/ur.js +5 -0
  260. package/msg/ur.mjs +5 -0
  261. package/msg/uz.js +5 -0
  262. package/msg/uz.mjs +5 -0
  263. package/msg/vi.js +5 -0
  264. package/msg/vi.mjs +5 -0
  265. package/msg/xmf.js +5 -0
  266. package/msg/xmf.mjs +5 -0
  267. package/msg/yo.js +5 -0
  268. package/msg/yo.mjs +5 -0
  269. package/msg/zgh.js +5 -0
  270. package/msg/zgh.mjs +5 -0
  271. package/msg/zh-hans.js +5 -0
  272. package/msg/zh-hans.mjs +5 -0
  273. package/msg/zh-hant.js +5 -0
  274. package/msg/zh-hant.mjs +5 -0
  275. package/package.json +12 -21
  276. package/php_compressed.js +51 -51
  277. package/python_compressed.js +41 -41
@@ -11,13 +11,13 @@
11
11
  }
12
12
  }(this, function() {
13
13
  var $={};
14
- var ca,aa,ea,fa,da,k,ka,la,ma,oa,pa,qa,ra,ta,wa,xa,ya,l,za,Aa,Ea,Ja,r,n,La,Ma,Na,Oa,Pa,Qa,Ta,Ua,Wa,Va,Ya,$a,ab,bb,db,fb,gb,hb,ib,lb,mb,nb,ob,rb,sb,tb,ub,vb,xb,Bb,A,Eb,Fb,Gb,Hb,Ib,Jb,Lb,Nb,w,Rb,Sb,Pb,Tb,Vb,Wb,u,Xb,Zb,$b,ac,bc,dc,fc,ec,kc,lc,mc,nc,oc,pc,xc,vc,Cc,Dc,Fc,Gc,Ac,Bc,zc,Kc,Lc,Nc,Oc,Pc,Rc,Sc,Uc,Tc,Vc,bd,cd,dd,Wc,Yc,kd,id,jd,nd,od,pd,rd,td,vd,ld,xd,yd,zd,Ad,Fd,Gd,Ed,Jd,Kd,Dd,Ld,Pd,Md,Qd,Sd,Td,Ud,Xd,Hd,Yd,be,ae,de,ce,ee,fe,me,qe,ne,re,te,ue,Be,Ce,xe,we,ye,Fe,Ee,De,Ge,ze,Ie,Je,Le,Ke,Ae,Me,Ne,
15
- Se,Ve,We,Xe,af,bf,$e,Ze,df,lf,mf,kf,of,Ue,nf,jf,rf,sf,tf,uf,wf,vf,Af,zf,Cf,Gf,Hf,Df,Ef,Ff,Sf,Kf,Tf,Uf,Rf,Yf,Xf,Zf,$f,ag,dg,eg,fg,gg,hg,kg,mg,tg,jg,ug,vg,wg,xg,yg,Gg,Bg,Dg,Lg,Fg,Ag,Kg,Pg,Rg,Sg,Tg,Ug,Xg,Vg,Zg,$d,$g,Mg,ah,gh,hh,fh,ih,lh,th,vh,qh,ph,uh,wh,I,Ah,Bh,Ch,Dh,Eh,J,Fh,Gh,Hh,Jh,Ih,Kh,Oh,Nh,Lh,Sh,Qh,Rh,Th,Wh,Vh,ai,ci,bi,di,ei,fi,gi,ii,ji,li,mi,ni,oi,pi,si,ti,ui,wi,xi,yi,zi,Ai,Bi,Di,Ei,Fi,Gi,Hi,Ii,Ki,Mi,Ni,Oi,Pi,Qi,Ri,Si,Ti,Xi,Yi,Zi,$i,aj,bj,cj,dj,ej,gj,fj,hj,mj,nj,pj,oj,qj,tj,uj,vj,wj,xj,yj,zj,
16
- Aj,Cj,Dj,Hj,Ej,Gj,Kj,Lj,Mj,Nj,Oj,Pj,Qj,Rj,Sj,Tj,Uj,Wj,Zj,ak,bk,ck,dk,ek,fk,gk,hk,M;ca=function(a,b){aa();ba=setTimeout(function(){b&&b.handleRightClick(a)},750)};aa=function(){ba&&(clearTimeout(ba),ba=0)};ea=function(a){return!a.type.startsWith("pointer")||a instanceof PointerEvent&&da(a)};fa=function(a){return`${a.pointerId}`};da=function(a){var b=fa(a);return ha?ha===b:a.type==="pointerdown"?(ha=b,!0):!1};
17
- k=function(a,b,c,d,e,f){function g(m){if(e||ea(m))c?d.call(c,m):d(m)}var h=[];if(b in ja)for(let m=0;m<ja[b].length;m++){let z=ja[b][m];a.addEventListener(z,g,Object.assign({},{capture:!1},f));h.push([a,z,g])}else a.addEventListener(b,g,Object.assign({},{capture:!1},f)),h.push([a,b,g]);return h};
18
- ka=function(a,b,c,d,e){function f(h){c?d.call(c,h):d(h)}var g=[];if(b in ja)for(let h=0;h<ja[b].length;h++){let m=ja[b][h];a.addEventListener(m,f,Object.assign({},{capture:!1},e));g.push([a,m,f])}else a.addEventListener(b,f,Object.assign({},{capture:!1},e)),g.push([a,b,f]);return g};la=function(a){for(var b=a[a.length-1][2];a.length;){let [c,d,e]=a.pop();c.removeEventListener(d,e,!1)}return b};
19
- ma=function(a){if(a.target instanceof HTMLElement){if(a.target.isContentEditable||a.target.getAttribute("data-is-text-input")==="true")return!0;if(a.target instanceof HTMLInputElement)return a=a.target,a.type==="text"||a.type==="number"||a.type==="email"||a.type==="password"||a.type==="search"||a.type==="tel"||a.type==="url";if(a.target instanceof HTMLTextAreaElement)return!0}return!1};oa=function(a){return a.ctrlKey&&na?!0:a.button===2};
20
- pa=function(a,b,c){var d=b.createSVGPoint();d.x=a.clientX;d.y=a.clientY;c||(c=b.getScreenCTM().inverse());return d.matrixTransform(c)};qa=function(a){switch(a.deltaMode){default:return{x:a.deltaX,y:a.deltaY};case 1:return{x:a.deltaX*40,y:a.deltaY*40};case 2:return{x:a.deltaX*125,y:a.deltaY*125}}};ra=function(a,b){b=a.indexOf(b);if(b===-1)return!1;a.splice(b,1);return!0};ta=function(a){sa.push(a)};
14
+ var ca,aa,ea,fa,da,k,ja,ka,la,na,oa,pa,qa,ta,wa,xa,ya,l,za,Aa,Ea,Ja,r,n,La,Ma,Na,Oa,Pa,Qa,Ta,Ua,Wa,Va,Ya,$a,ab,bb,db,fb,gb,hb,ib,lb,mb,nb,ob,rb,sb,tb,ub,vb,xb,Bb,A,Eb,Fb,Gb,Hb,Ib,Jb,Lb,Nb,w,Rb,Sb,Pb,Tb,Vb,Wb,u,Xb,Zb,$b,ac,bc,dc,fc,ec,kc,lc,mc,nc,oc,pc,xc,vc,Cc,Dc,Fc,Gc,Ac,Bc,zc,Kc,Lc,Nc,Oc,Pc,Rc,Sc,Uc,Tc,Vc,bd,cd,dd,Wc,Yc,kd,id,jd,nd,od,pd,rd,td,vd,ld,xd,yd,zd,Ad,Fd,Gd,Ed,Jd,Kd,Dd,Ld,Pd,Md,Qd,Sd,Td,Ud,Xd,Hd,Zd,ce,be,ee,de,fe,ge,ne,re,oe,se,ue,ve,Ce,De,ye,xe,ze,Ge,Fe,Ee,He,Ae,Je,Ke,Me,Le,Be,Ne,Oe,
15
+ Te,We,Xe,Ye,bf,cf,af,$e,ef,mf,nf,lf,pf,Ve,of,kf,sf,tf,uf,vf,xf,wf,Bf,Af,Df,Hf,If,Ef,Ff,Gf,Tf,Lf,Uf,Vf,Sf,Zf,Yf,$f,ag,bg,eg,fg,gg,hg,ig,lg,ng,ug,kg,vg,wg,xg,yg,zg,Hg,Cg,Eg,Mg,Gg,Bg,Lg,Qg,Sg,Tg,Ug,Vg,Yg,Wg,$g,ae,ah,Ng,bh,hh,ih,gh,jh,mh,uh,wh,rh,qh,vh,xh,H,Bh,Ch,Dh,Eh,Fh,I,Gh,Hh,Ih,Kh,Jh,Lh,Ph,Oh,Mh,Th,Rh,Sh,Uh,Xh,Wh,bi,di,ci,ei,fi,gi,hi,ji,ki,mi,ni,oi,pi,qi,ti,ui,vi,xi,yi,zi,Ai,Bi,Ci,Ei,Fi,Gi,Hi,Ii,Ji,Li,Ni,Oi,Pi,Qi,Ri,Si,Ti,Ui,Yi,Zi,$i,aj,bj,cj,dj,ej,fj,hj,gj,ij,nj,oj,qj,pj,rj,uj,vj,wj,xj,yj,zj,Aj,
16
+ Bj,Dj,Ej,Ij,Fj,Hj,Lj,Mj,Nj,Oj,Pj,Qj,Rj,Sj,Tj,Uj,Vj,Xj,Zj,bk,ck,dk,ek,fk,gk,hk,ik,M;ca=function(a,b){aa();ba=setTimeout(function(){b&&b.handleRightClick(a)},750)};aa=function(){ba&&(clearTimeout(ba),ba=0)};ea=function(a){return!a.type.startsWith("pointer")||a instanceof PointerEvent&&da(a)};fa=function(a){return`${a.pointerId}`};da=function(a){var b=fa(a);return ha?ha===b:a.type==="pointerdown"?(ha=b,!0):!1};
17
+ k=function(a,b,c,d,e,f){function g(m){if(e||ea(m))c?d.call(c,m):d(m)}var h=[];if(b in ia)for(let m=0;m<ia[b].length;m++){let z=ia[b][m];a.addEventListener(z,g,Object.assign({},{capture:!1},f));h.push([a,z,g])}else a.addEventListener(b,g,Object.assign({},{capture:!1},f)),h.push([a,b,g]);return h};
18
+ ja=function(a,b,c,d,e){function f(h){c?d.call(c,h):d(h)}var g=[];if(b in ia)for(let h=0;h<ia[b].length;h++){let m=ia[b][h];a.addEventListener(m,f,Object.assign({},{capture:!1},e));g.push([a,m,f])}else a.addEventListener(b,f,Object.assign({},{capture:!1},e)),g.push([a,b,f]);return g};ka=function(a){for(var b=a[a.length-1][2];a.length;){let [c,d,e]=a.pop();c.removeEventListener(d,e,!1)}return b};
19
+ la=function(a){if(a.target instanceof HTMLElement){if(a.target.isContentEditable||a.target.getAttribute("data-is-text-input")==="true")return!0;if(a.target instanceof HTMLInputElement)return a=a.target,a.type==="text"||a.type==="number"||a.type==="email"||a.type==="password"||a.type==="search"||a.type==="tel"||a.type==="url";if(a.target instanceof HTMLTextAreaElement)return!0}return!1};na=function(a){return a.ctrlKey&&ma?!0:a.button===2};
20
+ oa=function(a,b,c){var d=b.createSVGPoint();d.x=a.clientX;d.y=a.clientY;c||(c=b.getScreenCTM().inverse());return d.matrixTransform(c)};pa=function(a){switch(a.deltaMode){default:return{x:a.deltaX,y:a.deltaY};case 1:return{x:a.deltaX*40,y:a.deltaY*40};case 2:return{x:a.deltaX*125,y:a.deltaY*125}}};qa=function(a,b){b=a.indexOf(b);if(b===-1)return!1;a.splice(b,1);return!0};ta=function(a){sa.push(a)};
21
21
  wa=function(a,b,c){b&&typeof window!=="undefined"&&(a=a.getRootNode(),ua.has(a)||(ua.add(a),c=c.replace(/[\\/]$/,""),c=[va,...sa].join("\n").replace(/<<<PATH>>>/g,c),b=document.createElement("style"),b.id="blockly-common-style",b.textContent=c,(typeof globalThis.ShadowRoot!=="undefined"&&a instanceof ShadowRoot?a:document.head).prepend(b)))};xa=function(a){a.removeAttribute("role")};ya=function(a,b){b?a.setAttribute("role",b):xa(a)};
22
22
  l=function(a,b,c){Array.isArray(c)&&(c=c.join(" "));a.setAttribute("aria-"+b,`${c}`)};za=function(a,b){a.removeAttribute("aria-"+b)};Aa=function(a,b){return(a=a.getAttribute("aria-"+b))?a:null};Ea=function(a){if(!Ba||!document.contains(Ba)){var b=document.createElement("div");b.textContent="";b.id="blocklyAriaAnnounce";n(b,"hiddenForAria");l(b,p.LIVE,Ca.POLITE);ya(b,Da);l(b,p.ATOMIC,!0);a.appendChild(b);Ba=b}};
23
23
  Ja=function(a,b){if(!Ba)throw Error("ARIA live region not initialized.");var c=Ba,{assertiveness:d=Ca.POLITE,role:e=Da}=b||{};Fa.push(a);Ga=d===Ca.ASSERTIVE||Ga===Ca.ASSERTIVE?Ca.ASSERTIVE:d===Ca.POLITE||Ga===Ca.POLITE?Ca.POLITE:Ca.OFF;clearTimeout(Ha);Ha=setTimeout(()=>{c.replaceChildren();l(c,p.LIVE,Ga);ya(c,e);var f=document.createElement("span");f.textContent=Fa.join("\n")+(Ia?"\u00a0":"");Ia=!Ia;c.appendChild(f);Fa.length=0;Ga=Ca.OFF},10)};
@@ -31,16 +31,17 @@ bb=function(a,b){for(let c in b)b[c]!==null&&Array.isArray(b[c])?a[c]=bb(a[c]||[
31
31
  mb=function(a){kb=a;a.rendered&&$.t().setPopoverFocusRoot(a.getInjectionDiv())};nb=function(){var a=$.t().getFocusedNode();return a&&ab(a)?a:null};ob=function(a){var b=nb(),c,d,e,f,g=new (u(v.SELECTED))((c=b==null?void 0:b.id)!=null?c:null,(d=a==null?void 0:a.id)!=null?d:null,(f=(e=a==null?void 0:a.workspace.id)!=null?e:b==null?void 0:b.workspace.id)!=null?f:"");w(g)};rb=function(a=kb){return qb?qb:a&&a.rendered?a.getInjectionDiv():null};sb=function(a){qb=a};
32
32
  tb=function(a){for(;a.options.parentWorkspace;)a=a.options.parentWorkspace;var b=a.getParentSvg(),c=a.getCachedParentSvgSize(),d=b.parentElement;if(d instanceof HTMLElement){var e=d.offsetWidth;d=d.offsetHeight;c.width!==e&&(b.setAttribute("width",e+"px"),a.setCachedParentSvgSize(e,null));c.height!==d&&(b.setAttribute("height",d+"px"),a.setCachedParentSvgSize(null,d));a.resize()}};
33
33
  ub=function(a,b){var c=Object.create(null),d=a.getDescendants(!0);b&&(a=a.getNextBlock())&&(a=d.indexOf(a),d.splice(a,d.length-a));for(let e=0,f;f=d[e];e++)c[f.type]?c[f.type]++:c[f.type]=1;return c};vb=function(a){return function(){this.jsonInit(a)}};xb=function(a){wb.defineBlocksWithJsonArrayInternal(a)};$.yb=function(a){var b={};for(let c=0;c<a.length;c++){let d=a[c];if(!d){console.warn(`Block definition #${c} in JSON array is ${d}. Skipping`);continue}let e=d.type;e?b[e]={init:vb(d)}:console.warn(`Block definition #${c} in JSON array is missing a type attribute. Skipping.`)}return b};
34
- $.Ab=function(a){for(let b of Object.keys(a)){let c=a[b];b in zb&&console.warn(`Block definition "${b}" overwrites previous definition.`);zb[b]=c}};Bb=function(a){var b=kb,c=$.t().getFocusedTree();for(let d of gb())if(c===d){b=d;break}if(!ma(a)&&b&&(!b.rendered||b.isFlyout||b.isVisible()))x.registry.onKeyDown(b,a)};
34
+ $.Ab=function(a){for(let b of Object.keys(a)){let c=a[b];b in zb&&console.warn(`Block definition "${b}" overwrites previous definition.`);zb[b]=c}};Bb=function(a){var b=kb,c=$.t().getFocusedTree();for(let d of gb())if(c===d){b=d;break}if(!la(a)&&b&&(!b.rendered||b.isFlyout||b.isVisible()))x.registry.onKeyDown(b,a)};
35
35
  A=function(a,b,c,d){if(!(a instanceof y)&&typeof a!=="string"||`${a}`.trim()==="")throw Error('Invalid type "'+a+'". The type must be a non-empty string or a Blockly.registry.Type.');a=`${a}`.toLowerCase();if(typeof b!=="string"||b.trim()==="")throw Error('Invalid name "'+b+'". The name must be a non-empty string.');var e=b.toLowerCase();if(!c)throw Error("Can not register a null value");var f=Cb[a],g=Db[a];f||(f=Cb[a]=Object.create(null),g=Db[a]=Object.create(null));switch(a){case String(y.FIELD):if(typeof c.fromJson!==
36
36
  "function")throw Error('Type "'+a+'" must have a fromJson function');}if(!d&&f[e]&&f[e]!==c)throw Error('Name "'+e+'" with type "'+a+'" already registered.');f[e]=c;g[e]=b};Eb=function(a,b){a=`${a}`.toLowerCase();b=b.toLowerCase();var c=Cb[a];c&&c[b]?(delete Cb[a][b],delete Db[a][b]):console.warn("Unable to unregister ["+b+"]["+a+"] from the registry.")};
37
37
  Fb=function(a,b,c){a=`${a}`.toLowerCase();b=b.toLowerCase();var d=Cb[a];if(!d||!d[b]){b="Unable to find ["+b+"]["+a+"] in the registry.";if(c)throw Error(b+" You must require or register a "+a+" plugin.");console.warn(b);return null}return d[b]};Gb=function(a,b){a=`${a}`.toLowerCase();b=b.toLowerCase();return(a=Cb[a])?!!a[b]:!1};Hb=function(a,b,c){return Fb(a,b,c)};
38
38
  Ib=function(a,b,c){a=`${a}`.toLowerCase();var d=Cb[a];if(!d){d=`Unable to find [${a}] in the registry.`;if(c)throw Error(`${d} You must require or register a ${a} plugin.`);console.warn(d);return null}if(!b)return d;a=Db[a];c=Object.create(null);for(let e of Object.keys(d))c[a[e]]=d[e];return c};Jb=function(a,b,c){b=b.plugins[String(a)]||"default";return typeof b==="function"?b:Fb(a,b,c)};Lb=function(){return"blockly-"+(Kb++).toString(36)};Nb=function(){return Mb.genUid()};w=function(a){Ob.fireInternal(a)};
39
39
  Rb=function(){var a=Pb(Qb);Qb.length=0;for(let b of a){if(!b.workspaceId)continue;let c;(c=fb(b.workspaceId))==null||c.fireChangeListener(b)}};Sb=function(a){if(a.type===v.BLOCK_CHANGE&&a.element==="mutation"){let b;for(b=Qb.length;b>0;b--){let c=Qb[b-1];if(c.group!==a.group||c.workspaceId!==a.workspaceId||c.type!==v.BLOCK_MOVE||c.newParentId!==a.blockId)break}Qb.splice(b,0,a)}else Qb.push(a)};
40
- Pb=function(a){var b=[];for(let c of a)if(a=b[b.length-1],!c.isNull())if(a&&a.workspaceId===c.workspaceId&&a.group===c.group)if(c.type===v.BLOCK_MOVE&&a.type===v.BLOCK_MOVE&&c.blockId===a.blockId){if(a.newParentId=c.newParentId,a.newInputName=c.newInputName,a.newCoordinate=c.newCoordinate,a.reason||c.reason){let d,e;a.reason=Array.from(new Set(((d=a.reason)!=null?d:[]).concat((e=c.reason)!=null?e:[])))}}else c.type===v.BLOCK_CHANGE&&a.type===v.BLOCK_CHANGE&&c.blockId===a.blockId&&c.element===a.element&&
41
- c.name===a.name?a.newValue=c.newValue:c.type===v.VIEWPORT_CHANGE&&a.type===v.VIEWPORT_CHANGE?(a.viewTop=c.viewTop,a.viewLeft=c.viewLeft,a.scale=c.scale,a.oldScale=c.oldScale):c.type===v.CLICK&&a.type===v.BUBBLE_OPEN||b.push(c);else b.push(c);return a=b.filter(c=>!c.isNull())};Tb=function(){for(let a=0,b;b=Qb[a];a++)b.recordUndo=!1};Vb=function(){return $.Ub===0};$.B=function(a){Ob.setGroupInternal(a)};Wb=function(a){var b=[];a=a.getDescendants(!1);for(let c=0,d;d=a[c];c++)b[c]=d.id;return b};
42
- u=function(a){var b=Fb(y.EVENT,a,void 0);if(!b)throw Error(`Event type ${a} not found in registry.`);return b};Xb=function(a){Object.keys(a).forEach(function(b){$.C[b]=a[b]})};Zb=function(a){return Yb.getSizeInternal(a)};$b=function(a,b){a=window.getComputedStyle(a);return a[b]||a.getPropertyValue(b)};ac=function(a){var b=new D(0,0);a=a.getBoundingClientRect();var c=document.documentElement;c=new D(window.pageXOffset||c.scrollLeft,window.pageYOffset||c.scrollTop);b.x=a.left+c.x;b.y=a.top+c.y;return b};
43
- bc=function(){var a=document.body,b=document.documentElement;return new D(a.scrollLeft||b.scrollLeft,a.scrollTop||b.scrollTop)};dc=function(a){var b=parseFloat($b(a,"borderLeftWidth")),c=parseFloat($b(a,"borderRightWidth")),d=parseFloat($b(a,"borderTopWidth"));a=parseFloat($b(a,"borderBottomWidth"));return new cc(d,a,b,c)};fc=function(a,b,c){a=ec(a,b,c);b.scrollLeft=a.x;b.scrollTop=a.y};
40
+ Pb=function(a){var b=[];for(let c of a)if(a=b[b.length-1],!c.isNull())if(!a||a.workspaceId!==c.workspaceId||a.group!==c.group)b.push(c);else if(c.type===v.BLOCK_MOVE&&a.type===v.BLOCK_MOVE&&c.blockId===a.blockId){if(a.newParentId=c.newParentId,a.newInputName=c.newInputName,a.newCoordinate=c.newCoordinate,a.reason||c.reason){let d,e;a.reason=Array.from(new Set(((d=a.reason)!=null?d:[]).concat((e=c.reason)!=null?e:[])))}}else if(c.type===v.BLOCK_CHANGE&&a.type===v.BLOCK_CHANGE&&c.blockId===a.blockId&&
41
+ c.element===a.element&&c.name===a.name)a.newValue=c.newValue;else if(c.type===v.VIEWPORT_CHANGE&&a.type===v.VIEWPORT_CHANGE)a.viewTop=c.viewTop,a.viewLeft=c.viewLeft,a.scale=c.scale,a.oldScale=c.oldScale;else if(c.type!==v.CLICK||a.type!==v.BUBBLE_OPEN)c.type===v.SELECTED&&a.type===v.SELECTED&&a.newElementId===void 0?(a.newElementId=c.newElementId,a.oldElementId===a.newElementId&&b.pop()):b.push(c);return a=b.filter(c=>!c.isNull())};Tb=function(){for(let a=0,b;b=Qb[a];a++)b.recordUndo=!1};
42
+ Vb=function(){return $.Ub===0};$.B=function(a){Ob.setGroupInternal(a)};Wb=function(a){var b=[];a=a.getDescendants(!1);for(let c=0,d;d=a[c];c++)b[c]=d.id;return b};u=function(a){var b=Fb(y.EVENT,a,void 0);if(!b)throw Error(`Event type ${a} not found in registry.`);return b};Xb=function(a){Object.keys(a).forEach(function(b){$.C[b]=a[b]})};Zb=function(a){return Yb.getSizeInternal(a)};$b=function(a,b){a=window.getComputedStyle(a);return a[b]||a.getPropertyValue(b)};
43
+ ac=function(a){var b=new D(0,0);a=a.getBoundingClientRect();var c=document.documentElement;c=new D(window.pageXOffset||c.scrollLeft,window.pageYOffset||c.scrollTop);b.x=a.left+c.x;b.y=a.top+c.y;return b};bc=function(){var a=document.body,b=document.documentElement;return new D(a.scrollLeft||b.scrollLeft,a.scrollTop||b.scrollTop)};
44
+ dc=function(a){var b=parseFloat($b(a,"borderLeftWidth")),c=parseFloat($b(a,"borderRightWidth")),d=parseFloat($b(a,"borderTopWidth"));a=parseFloat($b(a,"borderBottomWidth"));return new cc(d,a,b,c)};fc=function(a,b,c){a=ec(a,b,c);b.scrollLeft=a.x;b.scrollTop=a.y};
44
45
  ec=function(a,b,c){var d=ac(a),e=ac(b),f=dc(b),g=d.x-e.x-f.left;d=d.y-e.y-f.top;e=new hc(a.offsetWidth,a.offsetHeight);a=b.clientWidth-e.width;e=b.clientHeight-e.height;f=b.scrollLeft;b=b.scrollTop;c?(f+=g-a/2,b+=d-e/2):(f+=Math.min(g,Math.max(g-a,0)),b+=Math.min(d,Math.max(d-e,0)));return new D(f,b)};
45
46
  kc=function(a){var b=new D(0,0),c=a.x&&a.getAttribute("x"),d=a.y&&a.getAttribute("y");c&&(b.x=parseInt(c));d&&(b.y=parseInt(d));if(c=(c=a.getAttribute("transform"))&&c.match(ic))b.x+=Number(c[1]),c[3]&&(b.y+=Number(c[3]));(a=a.getAttribute("style"))&&a.includes("translate")&&(a=a.match(jc))&&(b.x+=Number(a[1]),a[3]&&(b.y+=Number(a[3])));return b};
46
47
  lc=function(a){for(var b=0,c=0;a;){let d=kc(a);b+=d.x;c+=d.y;if((" "+(a.getAttribute("class")||"")+" ").includes(" injectionDiv "))break;a=a.parentNode}return new D(b,c)};mc=function(){var a=bc();return new cc(a.y,document.documentElement.clientHeight+a.y,a.x,document.documentElement.clientWidth+a.x)};nc=function(){var a=document.documentElement,b=window;return new D(b.pageXOffset||a.scrollLeft,b.pageYOffset||a.scrollTop)};
@@ -55,222 +56,222 @@ Pc=function(a,{addCoordinates:b=!1,saveIds:c=!0}={}){var d=a.workspace,e=Object.
55
56
  Rc=function(a,b,{recordUndo:c=!1}={}){var d=$.Qc;$.Qc=c;c=b.newComment(a.id);a.text!==void 0&&c.setText(a.text);if(a.x!==void 0||a.y!==void 0){let f=c.getRelativeToSurfaceXY(),g,h=(g=a.x)!=null?g:f.x;h=b.RTL?b.getWidth()-h:h;var e;b=(e=a.y)!=null?e:f.y;c.moveTo(new D(h,b))}if(a.width!==void 0||a.height){e=c.getSize();let f,g;c.setSize(new hc((f=a.width)!=null?f:e.width,(g=a.height)!=null?g:e.height))}a.collapsed!==void 0&&c.setCollapsed(a.collapsed);a.editable!==void 0&&c.setEditable(a.editable);
56
57
  a.movable!==void 0&&c.setMovable(a.movable);a.deletable!==void 0&&c.setDeletable(a.deletable);$.Qc=d;return c};Sc=function(a,b){A(y.PASTER,a,b)};Uc=function(a){for(var b=a.workspace,c=a.getRelativeToSurfaceXY(),d=new D(0,0),e=b.getTopComments(!1).filter(f=>f.id!==a.id).map(f=>f.getRelativeToSurfaceXY());Tc(D.sum(c,d),e);)d.translate(b.RTL?-30:30,30);a.moveTo(D.sum(c,d))};Tc=function(a,b){return b.some(c=>Math.abs(c.x-a.x)<=1&&Math.abs(c.y-a.y)<=1)};
57
58
  Vc=function(a){return a&&typeof a.saveState==="function"&&typeof a.loadState==="function"};bd=function(a){Wc(a);if(Xc)return Yc(),Promise.resolve();Zc||(Zc=new Promise(b=>{$c=b;ad=window.requestAnimationFrame(()=>{Yc();b()})}));return Zc};cd=function(){return Zc?Zc:Promise.resolve()};dd=function(a){a||window.cancelAnimationFrame(ad);Yc(a);!a&&$c&&$c()};Wc=function(a){ed.add(a);fd.set(a,$.gd);var b=a.getParent();b?Wc(b):hd.add(a)};
58
- Yc=function(a){var b=a?new Set([a]):new Set([...hd].map(f=>f.workspace)),c=[...hd].filter(id).filter(f=>b.has(f.workspace));for(var d of c)jd(d);for(let f of b)f.resizeContents();for(var e of c)d=e.getRelativeToSurfaceXY(),e.updateComponentLocations(d);for(let f of c)e=$.gd,(d=fd.get(f))&&$.B(d),f.bumpNeighbours(),$.B(e);for(let f of c)kd(f);a||(Zc=null)};kd=function(a){hd.delete(a);ed.delete(a);fd.delete(a);for(let b of a.getChildren(!1))kd(b)};id=function(a){return!a.isDisposed()&&!a.getParent()};
59
- jd=function(a){if(ed.has(a)&&a.initialized){for(let b of a.getChildren(!1))jd(b);a.renderEfficiently()}};nd=function(a,b){ld(md.ALERT,a,b,void 0)};od=function(a,b){ld(md.CONFIRM,a,b,void 0)};pd=function(a,b,c){ld(md.PROMPT,a,c,b)};rd=function(a,b){qd(a,b)};td=function(a,b){sd(a,b)};vd=function(a,b,c){ud(a,b,c)};
59
+ Yc=function(a){var b=a?new Set([a]):new Set([...hd].map(g=>g.workspace)),c=[...hd].filter(id).filter(g=>b.has(g.workspace));for(var d of c)jd(d);for(let g of b)g.resizeContents(),g.connectionDBList.forEach(h=>h==null?void 0:h.beginBulkUpdates());for(var e of c)d=e.getRelativeToSurfaceXY(),e.updateComponentLocations(d);for(var f of b)f.connectionDBList.forEach(g=>g==null?void 0:g.endBulkUpdates());for(let g of c)e=$.gd,(f=fd.get(g))&&$.B(f),g.bumpNeighbours(),$.B(e);for(let g of c)kd(g);a||(Zc=null)};
60
+ kd=function(a){hd.delete(a);ed.delete(a);fd.delete(a);for(let b of a.getChildren(!1))kd(b)};id=function(a){return!a.isDisposed()&&!a.getParent()};jd=function(a){if(ed.has(a)&&a.initialized){for(let b of a.getChildren(!1))jd(b);a.renderEfficiently()}};nd=function(a,b){ld(md.ALERT,a,b,void 0)};od=function(a,b){ld(md.CONFIRM,a,b,void 0)};pd=function(a,b,c){ld(md.PROMPT,a,c,b)};rd=function(a,b){qd(a,b)};td=function(a,b){sd(a,b)};vd=function(a,b,c){ud(a,b,c)};
60
61
  ld=function(...[a,b,c,d]){var e=document.createElement("dialog"),f=document.createElement("form"),g=document.createElement("label"),h=document.createElement("input"),m=document.createElement("div"),z=document.createElement("button");e.className="blocklyDialog";f.className="blocklyDialogForm";g.className="blocklyDialogPrompt";m.className="blocklyDialogButtonRow";z.className="blocklyDialogConfirmButton";f.setAttribute("method","dialog");g.textContent=b;g.setAttribute("for","blockly-form-input");z.textContent=
61
62
  $.C.DIALOG_OK;z.value="ok";e.appendChild(f);f.appendChild(g);a===md.PROMPT&&(h.id="blockly-form-input",h.className="blocklyDialogInput",h.type="text",h.name="input",h.autofocus=!0,d&&(h.value=d),f.appendChild(h));m.appendChild(z);if(a===md.CONFIRM||a===md.PROMPT)b=document.createElement("button"),b.className="blocklyDialogCancelButton",b.textContent=$.C.DIALOG_CANCEL,b.value="cancel",m.appendChild(b);f.appendChild(m);var E;wd===0&&(E=$.t().ephemeralFocusTaken()?void 0:$.t().takeEphemeralFocus(e));
62
- wd++;e.addEventListener("close",()=>{wd--;if(!wd){let H;(H=E)==null||H()}e.remove();switch(a){case md.CONFIRM:c(e.returnValue==="ok");break;case md.PROMPT:c(e.returnValue==="ok"?h.value:null);break;case md.ALERT:c==null||c()}});document.body.appendChild(e);e.showModal()};xd=function(a){return typeof a.bubbleIsVisible==="function"&&typeof a.setBubbleVisible==="function"&&typeof a.getBubble==="function"};yd=function(a,b){return b.map(c=>a.getBlockById(c)).filter(c=>c&&c.isShadow()).length===b.length};
63
+ wd++;e.addEventListener("close",()=>{wd--;if(!wd){let J;(J=E)==null||J()}e.remove();switch(a){case md.CONFIRM:c(e.returnValue==="ok");break;case md.PROMPT:c(e.returnValue==="ok"?h.value:null);break;case md.ALERT:c==null||c()}});document.body.appendChild(e);e.showModal()};xd=function(a){return typeof a.bubbleIsVisible==="function"&&typeof a.setBubbleVisible==="function"&&typeof a.getBubble==="function"};yd=function(a,b){return b.map(c=>a.getBlockById(c)).filter(c=>c&&c.isShadow()).length===b.length};
63
64
  zd=function(a){return a&&typeof a.getProcedureDef==="function"};Ad=function(a){return a.getVariableModel!==void 0};$.Bd=function(a){a=a.getAllBlocks(!1);var b=new Set;for(let c=0;c<a.length;c++){let d=a[c].getVarModels();if(d)for(let e=0;e<d.length;e++){let f=d[e];f.getId()&&b.add(f)}}return Array.from(b.values())};$.Cd=function(a){a=a.getAllBlocks(!1);var b=new Set;for(let d=0,e;e=a[d];d++){var c=e.getDeveloperVariables;if(c){c=c();for(let f=0;f<c.length;f++)b.add(c[f])}}return Array.from(b.values())};
64
65
  Fd=function(a){zb.variables_set||zb.variables_get||console.warn("There are no variable blocks, but there is a variable category.");a.registerButtonCallback("CREATE_VARIABLE",function(b){Dd(b.getTargetWorkspace())});return[{kind:"button",text:"%{BKY_NEW_VARIABLE}",callbackkey:"CREATE_VARIABLE"},...Ed(a,a.getVariableMap().getVariablesOfType(""),!0)]};Gd=function(a){return{VAR:{name:a.getName(),type:a.getType()}}};
65
66
  Ed=function(a,b,c,d="variables_get",e="variables_set"){c&&(c=zb.math_change);a=[];var f=b.slice(-1)[0];f&&(zb[e]&&a.push({kind:"block",type:e,gap:c?8:24,fields:Gd(f)}),c&&a.push({kind:"block",type:"math_change",gap:zb[d]?20:8,fields:Gd(f),inputs:{DELTA:{shadow:{type:"math_number",fields:{NUM:1}}}}}));zb[d]&&a.push(...b.sort(Hd).map(g=>({kind:"block",type:d,gap:8,fields:Gd(g)})));return a};Jd=function(a){return Id.generateUniqueNameInternal(a)};
66
67
  Kd=function(a,b){if(!b.length)return a;for(var c="",d="ijkmnopqrstuvwxyzabcdefgh".indexOf(a);;){let e=!1;for(let f=0;f<b.length;f++)if(b[f].toLowerCase()===a){e=!0;break}if(!e)break;d++;d===25&&(d=0,c=`${Number(c)+1}`);a="ijkmnopqrstuvwxyzabcdefgh".charAt(d)+c}return a};
67
- Dd=function(a,b,c){function d(f){Ld($.C.NEW_VARIABLE_TITLE,f,function(g){if(g){var h=Md(g,a);if(h){if(h.getType()===e)var m=$.C.VARIABLE_ALREADY_EXISTS.replace("%1",h.getName());else m=$.C.VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE,m=m.replace("%1",h.getName()).replace("%2",h.getType());rd(m,function(){d(g)})}else{let E=a.getVariableMap().createVariable(g,e);b&&b(g);let H=(m=a.getFlyout())==null?void 0:m.getWorkspace();if(H&&Nd.getIsActive()){var z=Y=>{Y.type===$.Od&&(Y=Y.blockId)&&(Y=H.getBlockById(Y))&&
68
- Y.type==="variables_set"&&Y.getFieldValue("VAR")===E.getId()&&($.t().focusNode(Y),H.removeChangeListener(z))};H.addChangeListener(z)}}}else b&&b(null)})}var e=c||"";d("")};
68
+ Dd=function(a,b,c){function d(f){Ld($.C.NEW_VARIABLE_TITLE,f,function(g){if(g){var h=Md(g,a);if(h){if(h.getType()===e)var m=$.C.VARIABLE_ALREADY_EXISTS.replace("%1",h.getName());else m=$.C.VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE,m=m.replace("%1",h.getName()).replace("%2",h.getType());rd(m,function(){d(g)})}else{let E=a.getVariableMap().createVariable(g,e);b&&b(g);let J=(m=a.getFlyout())==null?void 0:m.getWorkspace();if(J&&Nd.getIsActive()){var z=T=>{T.type===$.Od&&(T=T.blockId)&&(T=J.getBlockById(T))&&
69
+ T.type==="variables_set"&&T.getFieldValue("VAR")===E.getId()&&($.t().focusNode(T),J.removeChangeListener(z))};J.addChangeListener(z)}}}else b&&b(null)})}var e=c||"";d("")};
69
70
  $.Rd=function(a,b,c){function d(e){var f=$.C.RENAME_VARIABLE_TITLE.replace("%1",b.getName());Ld(f,e,function(g){if(g){var h=Pd(g,b.getType(),a),m=Qd(b.getName(),g,a);if(h||m){var z="";h?z=$.C.VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE.replace("%1",h.getName()).replace("%2",h.getType()):m&&(z=$.C.VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER.replace("%1",g).replace("%2",m));rd(z,function(){d(g)})}else a.getVariableMap().renameVariable(b,g),c&&c(g)}else c&&c(null)})}d("")};
70
71
  Ld=function(a,b,c){vd(a,b,function(d){d&&(d=d.replace(/[\s\xa0]+/g," ").trim(),d===$.C.RENAME_VARIABLE||d===$.C.NEW_VARIABLE)&&(d=null);c(d)})};Pd=function(a,b,c){c=c.getVariableMap().getAllVariables();a=a.toLowerCase();for(let d=0,e;e=c[d];d++)if(e.getName().toLowerCase()===a&&e.getType()!==b)return e;return null};Md=function(a,b){b=b.getVariableMap().getAllVariables();a=a.toLowerCase();for(let c=0,d;d=b[c];c++)if(d.getName().toLowerCase()===a)return d;return null};
71
72
  Qd=function(a,b,c){return c.getProcedureMap().getProcedures().length?Sd(a,b,c):Td(a,b,c)};Sd=function(a,b,c){a=a.toLowerCase();b=b.toLowerCase();c=c.getProcedureMap().getProcedures();for(let e of c){var d=e.getParameters().filter(Ad).map(f=>f.getVariableModel().getName());if(!d)continue;c=d.some(f=>f.toLowerCase()===a);d=d.some(f=>f.toLowerCase()===b);if(c&&d)return e.getName()}return null};
72
73
  Td=function(a,b,c){a=a.toLowerCase();b=b.toLowerCase();c=c.getAllBlocks(!1);for(let e of c){if(!zd(e))continue;c=e.getProcedureDef();var d=c[1];let f=d.some(g=>g.toLowerCase()===a);d=d.some(g=>g.toLowerCase()===b);if(f&&d)return c[0]}return null};Ud=function(a){var b=$.rc("field");b.setAttribute("name","VAR");b.setAttribute("id",a.getId());b.setAttribute("variabletype",a.getType());a=$.sc(a.getName());b.appendChild(a);return b};
73
74
  $.Wd=function(a,b,c,d){var e=$.Vd(a,b,c,d);if(!e){e=a.getVariableMap();let f=a.getPotentialVariableMap();c||(c=Jd(a.isFlyout?a.targetWorkspace:a));e=f?f.createVariable(c,d,b!=null?b:void 0):e.createVariable(c,d,b)}return e};
74
75
  $.Vd=function(a,b,c,d){var e=a.getPotentialVariableMap(),f=null;if(b&&(f=a.getVariableMap().getVariableById(b),!f&&e&&(f=e.getVariableById(b)),f))return f;if(c){if(d===void 0)throw Error("Tried to look up a variable by name without a type");f=a.getVariableMap().getVariable(c,d);!f&&e&&(f=e.getVariable(c,d))}return f};Xd=function(a,b){a=a.getVariableMap().getAllVariables();var c=[];if(b.length!==a.length)for(let d=0;d<a.length;d++){let e=a[d];b.includes(e)||c.push(e)}return c};
75
- Hd=function(a,b){return a.getName().localeCompare(b.getName(),void 0,{sensitivity:"base"})};Yd=function(a,b){var c=[];a=a.getAllBlocks(!1);for(let d=0;d<a.length;d++){let e=a[d].getVarModels();if(e)for(let f=0;f<e.length;f++)e[f].getId()===b&&c.push(a[d])}return c};
76
- $.Zd=function(a,b,c){var d=b.getName(),e=Yd(a,b.getId());for(let f=e.length-1;f>=0;f--){let g=e[f];if(g.type==="procedures_defnoreturn"||g.type==="procedures_defreturn"){c=String(g.getFieldValue("NAME"));d=$.C.CANNOT_DELETE_VARIABLE_PROCEDURE.replace("%1",d).replace("%2",c);qd(d,void 0);return}g===c&&e.splice(f,1)}c&&e.length||e.length>1?(d=$.C.DELETE_VARIABLE_CONFIRMATION.replace("%1",String(e.length+(c&&!c.workspace.isFlyout?1:0))).replace("%2",d),td(d,f=>{f&&b&&a.getVariableMap().deleteVariable(b)})):
76
+ Hd=function(a,b){return Yd.compare(a.getName(),b.getName())};Zd=function(a,b){var c=[];a=a.getAllBlocks(!1);for(let d=0;d<a.length;d++){let e=a[d].getVarModels();if(e)for(let f=0;f<e.length;f++)e[f].getId()===b&&c.push(a[d])}return c};
77
+ $.$d=function(a,b,c){var d=b.getName(),e=Zd(a,b.getId());for(let f=e.length-1;f>=0;f--){let g=e[f];if(g.type==="procedures_defnoreturn"||g.type==="procedures_defreturn"){c=String(g.getFieldValue("NAME"));d=$.C.CANNOT_DELETE_VARIABLE_PROCEDURE.replace("%1",d).replace("%2",c);qd(d,void 0);return}g===c&&e.splice(f,1)}c&&e.length||e.length>1?(d=$.C.DELETE_VARIABLE_CONFIRMATION.replace("%1",String(e.length+(c&&!c.workspace.isFlyout?1:0))).replace("%2",d),td(d,f=>{f&&b&&a.getVariableMap().deleteVariable(b)})):
77
78
  a.getVariableMap().deleteVariable(b)};
78
- be=function(a,{addCoordinates:b=!1,addInputBlocks:c=!0,addNextBlocks:d=!0,doFullSerialization:e=!0,saveIds:f=!0}={}){if(a.isInsertionMarker())return null;var g={type:a.type,id:f?a.id:void 0};if(b){b=a.workspace;var h=a.getRelativeToSurfaceXY();g.x=Math.round(b.RTL?b.getWidth()-h.x:h.x);g.y=Math.round(h.y)}a.isCollapsed()&&(g.collapsed=!0);a.isEnabled()||(g.disabledReasons=Array.from(a.getDisabledReasons()));a.isOwnDeletable()||(g.deletable=!1);a.isOwnMovable()||(g.movable=!1);a.isOwnEditable()||(g.editable=
79
- !1);a.inputsInline!==void 0&&a.inputsInline!==a.inputsInlineDefault&&(g.inline=a.inputsInline);a.data&&(g.data=a.data);a.saveExtraState?(b=a.saveExtraState(e),b!==null&&(g.extraState=b)):a.mutationToDom&&(b=a.mutationToDom(),b!==null&&(g.extraState=$d(b).replace(' xmlns="https://developers.google.com/blockly/xml"',"")));b=Object.create(null);for(var m of a.getIcons())Vc(m)&&(h=m.saveState(e))&&(b[m.getType().toString()]=h);Object.keys(b).length&&(g.icons=b);m=Object.create(null);for(var z of a.getFields())z.isSerializable()&&
80
- (m[z.name]=z.saveState(e));Object.keys(m).length&&(g.fields=m);if(c){c=Object.create(null);for(z=0;z<a.inputList.length;z++){m=a.inputList[z];if(!m.connection)continue;(b=ae(m.connection,e,f))&&(c[m.name]=b)}Object.keys(c).length&&(g.inputs=c)}d&&a.nextConnection&&(a=ae(a.nextConnection,e,f))&&(g.next=a);return g};
81
- ae=function(a,b,c){var d=a.getShadowState(!0);a=a.targetBlock();if(!d&&!a)return null;var e=Object.create(null);d&&(e.shadow=d);a&&!a.isShadow()&&(e.block=be(a,{doFullSerialization:b,saveIds:c}));return e};de=function(a,b,{recordUndo:c=!1}={}){a=ce(a,b,{recordUndo:c});b.rendered&&dd();return a};
82
- ce=function(a,b,{parentConnection:c,isShadow:d=!1,recordUndo:e=!1}={}){var f=$.Qc;$.Qc=e;(e=$.gd)||$.B(!0);$.Ub++;var g=b.getVariableMap().getAllVariables();try{var h=ee(a,b,{parentConnection:c,isShadow:d})}finally{$.Ub--}fe(b,g);Vb()&&w(new (u(v.BLOCK_CREATE))(h));$.B(e);$.Qc=f;if(b.rendered){let m=h;setTimeout(()=>{m.disposed||m.setConnectionTracking(!0)},1)}return h};
83
- ee=function(a,b,{parentConnection:c,isShadow:d=!1}={}){if(!a.type)throw new ge(a);var e=b.newBlock(a.type,a.id);e.setShadow(d);d=a.x===void 0?0:a.x;var f=a.y===void 0?0:a.y,g=e.workspace;d=g.RTL?g.getWidth()-d:d;e.moveBy(d,f);a.collapsed&&e.setCollapsed(!0);a.deletable===!1&&e.setDeletable(!1);a.movable===!1&&e.setMovable(!1);a.editable===!1&&e.setEditable(!1);a.enabled===!1&&e.setDisabledReason(!0,"MANUALLY_DISABLED");if(Array.isArray(a.disabledReasons))for(var h of a.disabledReasons)e.setDisabledReason(!0,
84
- h);a.inline!==void 0&&e.setInputsInline(a.inline);a.data!==void 0&&(e.data=a.data);a.extraState&&(e.loadExtraState?e.loadExtraState(a.extraState):e.domToMutation&&e.domToMutation($.uc(a.extraState)));if(c){if(c.getSourceBlock().isShadow()&&!e.isShadow())throw new he(a);if(c.type===$.ie.VALUE){if(h=e.outputConnection,!h)throw new je("output",e,a);}else if(h=e.previousConnection,!h)throw new je("previous",e,a);if(!c.connect(h))throw b=e.workspace.connectionChecker,new ke(b.getErrorMessage(b.canConnectWithReason(h,
85
- c,!1),h,c),c.type===$.ie.VALUE?"output connection":"previous connection",e,a);}if(a.icons){c=Object.keys(a.icons);for(var m of c){c=a.icons[m];h=e.getIcon(m);if(!h){h=Fb(y.ICON,m,!1);if(!h)throw new le(m,e,a);h=new h(e);e.addIcon(h)}Vc(h)&&h.loadState(c)}}if(a.fields)for(m=Object.keys(a.fields),c=0;c<m.length;c++)h=m[c],d=a.fields[h],(f=e.getField(h))?f.loadState(d):console.warn(`Ignoring non-existant field ${h} in block ${e.type}`);if(a.inputs)for(m=Object.keys(a.inputs),c=0;c<m.length;c++){h=m[c];
86
- d=e.getInput(h);if(!d||!d.connection)throw new je(h,e,a);me(d.connection,a.inputs[h])}if(a.next){if(!e.nextConnection)throw new je("next",e,a);me(e.nextConnection,a.next)}if(b.rendered){e.setConnectionTracking(!1);e.initSvg();e.queueRender();for(let z of e.getIcons())z.onLocationChange(e.getRelativeToSurfaceXY())}else e.initModel();return e};fe=function(a,b){if(Vb())for(a=Xd(a,b),b=0;b<a.length;b++){let c=a[b];w(new (u(v.VAR_CREATE))(c))}};
87
- me=function(a,b){b.shadow&&a.setShadowState(b.shadow);b.block&&ee(b.block,a.getSourceBlock().workspace,{parentConnection:a})};qe=function(a){a=ne(a,oe);return a.length?a[0].join(pe?" ":" + "):""};
88
- ne=function(a,b){a=x.registry.getKeyCodesByShortcutName(a);if(a.length===0)return[];a=a.map(d=>d.split("+"));a.forEach(d=>d.sort((e,f)=>{e=re(e);f=re(f);return e-f}));a.sort((d,e)=>{d=d.includes("Meta")?1:0;return(e.includes("Meta")?1:0)-d});var c=a.filter(d=>d.includes("Meta")===pe);c=c.length===0?a:c;c.sort((d,e)=>d.length-e.length);return(c.some(d=>d.some(e=>"Meta"===e||"Alt"===e||"Control"===e))?[c[0]]:c).map(d=>d.map(e=>{if(Number.isFinite(+e))if(e=+e,e>=65&&e<=90)e=String.fromCharCode(e);else{var f=
79
+ ce=function(a,{addCoordinates:b=!1,addInputBlocks:c=!0,addNextBlocks:d=!0,doFullSerialization:e=!0,saveIds:f=!0}={}){if(a.isInsertionMarker())return null;var g={type:a.type,id:f?a.id:void 0};if(b){b=a.workspace;var h=a.getRelativeToSurfaceXY();g.x=Math.round(b.RTL?b.getWidth()-h.x:h.x);g.y=Math.round(h.y)}a.isCollapsed()&&(g.collapsed=!0);a.isEnabled()||(g.disabledReasons=Array.from(a.getDisabledReasons()));a.isOwnDeletable()||(g.deletable=!1);a.isOwnMovable()||(g.movable=!1);a.isOwnEditable()||(g.editable=
80
+ !1);a.inputsInline!==void 0&&a.inputsInline!==a.inputsInlineDefault&&(g.inline=a.inputsInline);a.data&&(g.data=a.data);a.saveExtraState?(b=a.saveExtraState(e),b!==null&&(g.extraState=b)):a.mutationToDom&&(b=a.mutationToDom(),b!==null&&(g.extraState=ae(b).replace(' xmlns="https://developers.google.com/blockly/xml"',"")));b=Object.create(null);for(var m of a.getIcons())Vc(m)&&(h=m.saveState(e))&&(b[m.getType().toString()]=h);Object.keys(b).length&&(g.icons=b);m=Object.create(null);for(var z of a.getFields())z.isSerializable()&&
81
+ (m[z.name]=z.saveState(e));Object.keys(m).length&&(g.fields=m);if(c){c=Object.create(null);for(z=0;z<a.inputList.length;z++){m=a.inputList[z];if(!m.connection)continue;(b=be(m.connection,e,f))&&(c[m.name]=b)}Object.keys(c).length&&(g.inputs=c)}d&&a.nextConnection&&(a=be(a.nextConnection,e,f))&&(g.next=a);return g};
82
+ be=function(a,b,c){var d=a.getShadowState(!0);a=a.targetBlock();if(!d&&!a)return null;var e=Object.create(null);d&&(e.shadow=d);a&&!a.isShadow()&&(e.block=ce(a,{doFullSerialization:b,saveIds:c}));return e};ee=function(a,b,{recordUndo:c=!1}={}){a=de(a,b,{recordUndo:c});b.rendered&&dd();return a};
83
+ de=function(a,b,{parentConnection:c,isShadow:d=!1,recordUndo:e=!1}={}){var f=$.Qc;$.Qc=e;(e=$.gd)||$.B(!0);$.Ub++;var g=b.getVariableMap().getAllVariables();try{var h=fe(a,b,{parentConnection:c,isShadow:d})}finally{$.Ub--}ge(b,g);Vb()&&w(new (u(v.BLOCK_CREATE))(h));$.B(e);$.Qc=f;if(b.rendered){let m=h;setTimeout(()=>{m.disposed||m.setConnectionTracking(!0)},1)}return h};
84
+ fe=function(a,b,{parentConnection:c,isShadow:d=!1}={}){if(!a.type)throw new he(a);var e=b.newBlock(a.type,a.id);e.setShadow(d);d=a.x===void 0?0:a.x;var f=a.y===void 0?0:a.y,g=e.workspace;d=g.RTL?g.getWidth()-d:d;e.moveBy(d,f);a.collapsed&&e.setCollapsed(!0);a.deletable===!1&&e.setDeletable(!1);a.movable===!1&&e.setMovable(!1);a.editable===!1&&e.setEditable(!1);a.enabled===!1&&e.setDisabledReason(!0,"MANUALLY_DISABLED");if(Array.isArray(a.disabledReasons))for(var h of a.disabledReasons)e.setDisabledReason(!0,
85
+ h);a.inline!==void 0&&e.setInputsInline(a.inline);a.data!==void 0&&(e.data=a.data);a.extraState&&(e.loadExtraState?e.loadExtraState(a.extraState):e.domToMutation&&e.domToMutation($.uc(a.extraState)));if(c){if(c.getSourceBlock().isShadow()&&!e.isShadow())throw new ie(a);if(c.type===$.je.VALUE){if(h=e.outputConnection,!h)throw new ke("output",e,a);}else if(h=e.previousConnection,!h)throw new ke("previous",e,a);if(!c.connect(h))throw b=e.workspace.connectionChecker,new le(b.getErrorMessage(b.canConnectWithReason(h,
86
+ c,!1),h,c),c.type===$.je.VALUE?"output connection":"previous connection",e,a);}if(a.icons){c=Object.keys(a.icons);for(var m of c){c=a.icons[m];h=e.getIcon(m);if(!h){h=Fb(y.ICON,m,!1);if(!h)throw new me(m,e,a);h=new h(e);e.addIcon(h)}Vc(h)&&h.loadState(c)}}if(a.fields)for(m=Object.keys(a.fields),c=0;c<m.length;c++)h=m[c],d=a.fields[h],(f=e.getField(h))?f.loadState(d):console.warn(`Ignoring non-existant field ${h} in block ${e.type}`);if(a.inputs)for(m=Object.keys(a.inputs),c=0;c<m.length;c++){h=m[c];
87
+ d=e.getInput(h);if(!d||!d.connection)throw new ke(h,e,a);ne(d.connection,a.inputs[h])}if(a.next){if(!e.nextConnection)throw new ke("next",e,a);ne(e.nextConnection,a.next)}if(b.rendered){e.setConnectionTracking(!1);e.initSvg();e.queueRender();for(let z of e.getIcons())z.onLocationChange(e.getRelativeToSurfaceXY())}else e.initModel();return e};ge=function(a,b){if(Vb())for(a=Xd(a,b),b=0;b<a.length;b++){let c=a[b];w(new (u(v.VAR_CREATE))(c))}};
88
+ ne=function(a,b){b.shadow&&a.setShadowState(b.shadow);b.block&&fe(b.block,a.getSourceBlock().workspace,{parentConnection:a})};re=function(a){a=oe(a,pe);return a.length?a[0].join(qe?" ":" + "):""};
89
+ oe=function(a,b){a=x.registry.getKeyCodesByShortcutName(a);if(a.length===0)return[];a=a.map(d=>d.split("+"));a.forEach(d=>d.sort((e,f)=>{e=se(e);f=se(f);return e-f}));a.sort((d,e)=>{d=d.includes("Meta")?1:0;return(e.includes("Meta")?1:0)-d});var c=a.filter(d=>d.includes("Meta")===qe);c=c.length===0?a:c;c.sort((d,e)=>d.length-e.length);return(c.some(d=>d.some(e=>"Meta"===e||"Alt"===e||"Control"===e))?[c[0]]:c).map(d=>d.map(e=>{if(Number.isFinite(+e))if(e=+e,e>=65&&e<=90)e=String.fromCharCode(e);else{var f=
89
90
  {8:$.C.BACKSPACE_KEY,9:$.C.TAB_KEY,13:$.C.ENTER_KEY,16:$.C.SHIFT_KEY,17:$.C.CONTROL_KEY,18:$.C.ALT_KEY,19:$.C.PAUSE_KEY,20:$.C.CAPS_LOCK_KEY,27:$.C.ESCAPE,32:$.C.SPACE_KEY,33:$.C.PAGE_UP_KEY,34:$.C.PAGE_DOWN_KEY,35:$.C.END_KEY,36:$.C.HOME_KEY,37:"\u2190",38:"\u2191",39:"\u2192",40:"\u2193",45:$.C.INSERT_KEY,46:$.C.DELETE_KEY,48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",93:$.C.CONTEXT_MENU_KEY,96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",
90
91
  105:"9",106:"\u00d7",107:"+",109:"\u2212",110:".",111:"\u00f7",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",186:";",187:"=",189:"-",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",224:"\u2318"}[e];f?e=f:(console.warn("Unknown key code: "+e),e=String.fromCharCode(e))}return e}).map(e=>{var f,g=(f=b[e])!=null?f:e;return g.charAt(0).toUpperCase()+g.substring(1)}))};
91
- re=function(a){a=se.indexOf(a);return a===-1?Number.MAX_VALUE:a};te=function(a){return a&&typeof a.init==="function"&&typeof a.getDiv==="function"&&typeof a.getId==="function"&&typeof a.getParent==="function"&&typeof a.getLevel==="function"&&typeof a.isSelectable==="function"&&typeof a.isCollapsible==="function"&&typeof a.dispose==="function"&&typeof a.getClickTarget==="function"&&typeof a.setVisible_==="function"&&typeof a.getParentToolbox==="function"};
92
- ue=function(a){return typeof a.getName==="function"&&typeof a.getContents==="function"&&typeof a.setSelected==="function"&&typeof a.onClick==="function"&&te(a)&&a.isSelectable()};
93
- Be=function(a,b=ve.STANDARD,c){return[b>=ve.STANDARD&&we(a),xe(a),...ye(a,b,c),b===ve.LOQUACIOUS&&ze(a),b>=ve.STANDARD&&(a.isEnabled()?void 0:$.C.BLOCK_LABEL_DISABLED),b>=ve.STANDARD&&(a.isCollapsed()?$.C.BLOCK_LABEL_COLLAPSED:void 0),b>=ve.LOQUACIOUS&&(a.isShadow()?$.C.BLOCK_LABEL_REPLACEABLE:void 0),b>=ve.STANDARD&&Ae(a),b>=ve.LOQUACIOUS&&a.getAriaRoleDescription()].filter(d=>!!d).join(", ")};
94
- Ce=function(a,b,c=ve.STANDARD){var d=c>=ve.LOQUACIOUS,e=[],f=a.fieldRow.filter(h=>h.isVisible()).flatMap((h,m,z)=>{if(h.isLabelField()){if(m<z.length-1&&z[m+1].isLabelField())return e.push(h.computeAriaLabel(d)),[];if(e.length>=1)return e.push(h.computeAriaLabel(d)),h=e.join(" "),e=[],h}return h.computeAriaLabel(d)});if(!f.length&&b){let h=a.getSourceBlock().inputList,m=h.indexOf(a);if(m>0)return Ce(h[m-1],b,c)}var g;a.type===$.ie.VALUE&&((g=a.connection)==null?void 0:g.targetConnection)===null&&
95
- c>=ve.STANDARD&&f.push($.C.INPUT_LABEL_EMPTY);return f.filter(h=>!!h)};
96
- xe=function(a){var b,c,d,e=(b=(d=a.outputConnection)!=null?d:a.previousConnection)==null?void 0:(c=b.targetConnection)==null?void 0:c.getParentInput();if(e&&(a=e.getSourceBlock(),!a.isInsertionMarker())){if(b=e.getAriaLabelText())a=b;else{if(!a.statementInputCount)return;b=a.inputList.find(f=>f.type===$.ie.STATEMENT);if(e===b)return;a=De(a,e,!1);if(!a.length)return;a=a.join(", ")}return e.type===$.ie.STATEMENT?(e=Array.isArray(a)?a.join(" "):a,$.C.BLOCK_LABEL_BEGIN_PREFIX.replace("%1",e)):a}};
97
- we=function(a){if(!a.isInFlyout&&!a.isDragging())return a.getRootBlock()===a?$.C.BLOCK_LABEL_BEGIN_STACK:void 0};
98
- ye=function(a,b=ve.STANDARD,c){if(c)return[c];c=a=a.inputList.filter(e=>e.isVisible());if(b<=ve.STANDARD){let e=a.filter(f=>f.type===$.ie.STATEMENT);e.length>1&&(c=a.slice(0,a.indexOf(e[0])+1))}var d=[];return c.flatMap((e,f,g)=>{var h=e.getLabel(b),m;if(m=f<g.length-1&&Ee(e)&&Fe(g[f+1])){m=g[f+1];let z;f=((z=e.connection)==null?void 0:z.type)===G.NEXT_STATEMENT||e.type===$.ie.END_ROW;let E;m=!(!e.getSourceBlock().getInputsInline()||((E=m.connection)==null?void 0:E.type)===G.NEXT_STATEMENT||f)}return m?
99
- (d.push(h),[]):Fe(e)&&d.length>0?(d.push(h),e=d.join(" "),d=[],e):h})};Fe=function(a){a=a.fieldRow.filter(b=>b.isVisible());return a.length>0&&a[0].isLabelField()};Ee=function(a){if(a.type===$.ie.VALUE||a.type===$.ie.STATEMENT)return!1;a=a.fieldRow.filter(b=>b.isVisible());return a.length>0&&a[a.length-1].isLabelField()};
100
- De=function(a,b,c){var d=a.inputList.indexOf(b);if(d===-1)throw Error(`Input with name "${b.name}" not found on block with id "${a.id}".`);var e=b.type===$.ie.STATEMENT,f=e?Ge(a.inputList,d):d,g=a.inputList.slice(f,d+1).filter(z=>z.isVisible()),h=g.map(z=>z.getLabel(ve.TERSE,z!==b||c)),m=e&&h.slice(0,-1).some(z=>!!z);return h.map((z,E)=>{if(z)return z;z=g[E];if(!(z.type===$.ie.DUMMY||z.type===$.ie.END_ROW||e&&E===h.length-1&&m))return $.C.INPUT_LABEL_INDEX.replace("%1",(z.getIndex()+1).toString())}).filter(z=>
101
- z!==void 0)};Ge=function(a,b){for(--b;b>=0;b--)if(a[b].type===$.ie.STATEMENT)return b+1;return 0};ze=function(a){var b=a.workspace.getToolbox();if(b){var c=void 0;for(let d of b.getToolboxItems()){if(!ue(d))continue;b=d.getContents();if(Array.isArray(b)&&b.some(e=>e.kind.toLowerCase()==="block"&&"type"in e&&e.type===a.type)){c=d;break}"getColour"in d&&typeof d.getColour==="function"&&d.getColour()===a.getColour()&&(c=d)}if(c)return $.C.BLOCK_LABEL_TOOLBOX_CATEGORY.replace("%1",c.getName())}};
102
- Ie=function(a){switch(a){case He.BEFORE:return $.C.ANNOUNCE_MOVE_BEFORE;case He.AFTER:return $.C.ANNOUNCE_MOVE_AFTER;case He.INSIDE:return $.C.ANNOUNCE_MOVE_INSIDE;case He.AROUND:return $.C.ANNOUNCE_MOVE_AROUND;default:return $.C.ANNOUNCE_MOVE_TO}};Je=function(a,b){var c=a.getParentInput();if(!c)return b;var d=c.getAriaLabelText();if(!d){a=De(a.getSourceBlock(),c,!0);if(!a.length)return b;d=a.join(", ")}return b?$.C.ANNOUNCE_MOVE_OF.replace("%1",d).replace("%2",b):d};
103
- Le=function(a,b,c,d=!1){var e=Ke(a,b),f=Ie(e),g=![He.BEFORE,He.AFTER].includes(e);e=g&&c(!0);c=g&&c(!1);d=d?a.getSourceBlock().getStackBlocksCountLabel():"";g=b.getSourceBlock().getAriaLabel(ve.TERSE);e&&(d=Je(a,d));c&&(g=Je(b,g));return f.replace("%1",d).replace("%2",g)};
104
- Ke=function(a,b){switch(a.type){case G.INPUT_VALUE:case G.OUTPUT_VALUE:return He.TO;case G.NEXT_STATEMENT:return a===a.getSourceBlock().nextConnection?He.BEFORE:He.AROUND;case G.PREVIOUS_STATEMENT:return b===b.getSourceBlock().nextConnection?He.AFTER:He.INSIDE}return He.UNKNOWN};
105
- Ae=function(a){var b=a.inputList.filter(c=>c.type===$.ie.STATEMENT).length;if(b>1)return $.C.BLOCK_LABEL_HAS_BRANCHES.replace("%1",b.toString());switch(a.inputList.reduce((c,d)=>{var e;return d.fieldRow.reduce((f,g)=>g.EDITABLE&&!g.isFullBlockField()?++f:f,c)+(((e=d.connection)==null?void 0:e.type)===G.INPUT_VALUE?1:0)},0)){case 0:break;case 1:return $.C.BLOCK_LABEL_HAS_INPUT;default:return $.C.BLOCK_LABEL_HAS_INPUTS}};Me=function(a){return a*Math.PI/180};
106
- Ne=function(a,b,c){if(c<a){let d=c;c=a;a=d}return Math.max(a,Math.min(b,c))};
107
- Se=function(){document.querySelector(".blocklyDropDownDiv")||(Oe=document.createElement("div"),Oe.className="blocklyDropDownDiv",Oe.tabIndex=-1,Oe.id=Lb(),(rb()||document.body).appendChild(Oe),Pe=document.createElement("div"),Pe.className="blocklyDropDownContent",Oe.appendChild(Pe),Qe=k(Pe,"keydown",null,Bb),Re=document.createElement("div"),Re.className="blocklyDropDownArrow",Oe.appendChild(Re),Oe.style.opacity="0",Oe.style.transition="transform 0.25s, opacity 0.25s")};
108
- Ve=function(){Te&&(Te(!1),Te=null);Ue()};We=function(){Qe&&(la(Qe),Qe=null);Oe.remove();Se()};Xe=function(a,b){Oe.style.backgroundColor=a;Oe.style.borderColor=b};af=function(a,b,c,d=!0){Ye=!0;return Ze($e(a),a,d,b,c)};bf=function(a){var b=a.getSvgRoot(),c=a.workspace.scale,d=a.height*c;a=a.width*c;b=ac(b);return new cc(b.y,b.y+d,b.x,b.x+a)};$e=function(a){a=a.getScaledBBox();return new cc(a.top,a.bottom,a.left,a.right)};
109
- Ze=function(a,b,c,d,e){var f=a.left+(a.right-a.left)/2,g=a.bottom;a=a.top;e&&(a+=e);e=b.getSourceBlock();for(var h=e.workspace;h.options.parentWorkspace;)h=h.options.parentWorkspace;cf=h.getParentSvg().parentNode;return df(b,e.RTL,f,g,f,a,c,d)};
110
- df=function(a,b,c,d,e,f,g,h){$.t().registerPopoverFocusLossHandler(Ve);var m;(m=rb())==null||m.appendChild(Oe);ef=a;ff=h||null;Oe.style.direction=b?"rtl":"ltr";a=kb;gf=a.getRenderer().getClassName();hf=a.getTheme().getClassName();n(Oe,gf);n(Oe,hf);b=Aa(a.getFocusableElement(),p.OWNS);l(a.getFocusableElement(),p.OWNS,b?[b,Oe.id]:Oe.id);a.getFocusableElement().classList.add("blocklyShowingDropDownDiv");c=jf(c,d,e,f);g&&(Te=$.t().takeEphemeralFocus(Oe));return c};
111
- lf=function(a,b,c,d){a=kf(a,c.left,c.right,d.width);return{initialX:a.divX,initialY:b,finalX:a.divX,finalY:b+16,arrowX:a.arrowX,arrowY:-9,arrowAtTop:!0,arrowVisible:!0}};mf=function(a,b,c,d){a=kf(a,c.left,c.right,d.width);return{initialX:a.divX,initialY:b-d.height,finalX:a.divX,finalY:b-d.height-16,arrowX:a.arrowX,arrowY:d.height-2-8,arrowAtTop:!1,arrowVisible:!0}};kf=function(a,b,c,d){b=Ne(b,a-d/2,c-d);a=a-8-b;a=Ne(12,a,d-12-16);return{arrowX:a,divX:b}};
112
- of=function(a,b){return ef===a?(b?nf():Ue(),!0):!1};Ue=function(){ef&&($.t().unregisterPopoverFocusLossHandler(Ve),Oe.style.transform="translate(0, 0)",Oe.style.opacity="0",pf=setTimeout(function(){nf()},250),ff&&(ff(),ff=null))};
113
- nf=function(){if(ef){pf&&clearTimeout(pf);ff&&(ff(),ff=null);ef=null;var a=kb,b,c=(b=Aa(a.getFocusableElement(),p.OWNS))!=null?b:"";l(a.getFocusableElement(),p.OWNS,c.replace(Oe.id,""));a.getFocusableElement().classList.remove("blocklyShowingDropDownDiv");a.markFocused();Te&&(Te(),Te=null);We()}};
114
- jf=function(a,b,c,d){a=qf.getPositionMetrics(a,b,c,d);a.arrowVisible?(b=a.arrowX,c=a.arrowY,d=a.arrowAtTop?45:225,Re.style.display="",Re.style.transform=`translate(${b}px, ${c}px) rotate(${d}deg)`,Re.setAttribute("class","blocklyDropDownArrow")):Re.style.display="none";b=Math.floor(a.initialX);c=Math.floor(a.initialY);d=Math.floor(a.finalX);var e=Math.floor(a.finalY),f=Oe.parentElement;f&&(f=f.getBoundingClientRect(),b-=f.left+window.scrollX,d-=f.left+window.scrollX,c-=f.top+window.scrollY,e-=f.top+
115
- window.scrollY);Oe.style.left=b+"px";Oe.style.top=c+"px";Oe.style.visibility="visible";Oe.style.opacity="1";Oe.style.transform="translate("+(d-b)+"px,"+(e-c)+"px)";return!!a.arrowAtTop};rf=function(){if(ef){var a=ef.getSourceBlock();a=Ye?$e(ef):bf(a);let b=a.left+(a.right-a.left)/2;jf(b,a.bottom,b,a.top)}else Ue()};sf=function(a){return a.length?a.reduce(function(b,c){return b.length<c.length?b:c}).length:0};
116
- tf=function(a,b){if(!a.length)return 0;if(a.length===1)return a[0].length;var c=0;b=b||sf(a);var d;for(d=0;d<b;d++){var e=a[0][d];for(var f=1;f<a.length;f++)if(e!==a[f][d])return c;e===" "&&(c=d+1)}for(e=1;e<a.length;e++)if((f=a[e][d])&&f!==" ")return c;return b};
117
- uf=function(a,b){if(!a.length)return 0;if(a.length===1)return a[0].length;var c=0;b=b||sf(a);var d;for(d=0;d<b;d++){var e=a[0].substr(-d-1,1);for(var f=1;f<a.length;f++)if(e!==a[f].substr(-d-1,1))return c;e===" "&&(c=d+1)}for(e=1;e<a.length;e++)if((f=a[e].charAt(a[e].length-d-1))&&f!==" ")return c;return b};
118
- $.xf=function(a,b){a=a.split("\n");for(let z=0;z<a.length;z++){var c=z;a:{var d=void 0;let E;var e=a[z];var f=b;if(e.length<=f){f=e;break a}let H=e.trim().split(/\s+/);for(d=0;d<H.length;d++)H[d].length>f&&(f=H[d].length);var g=-Infinity;let Y=1;do{E=g;d=e;var h=[];g=H.length/Y;e=1;for(var m=0;m<H.length-1;m++)e<(m+1.5)/g?(e++,h[m]=!0):h[m]=!1;h=vf(H,h,f);g=wf(H,h,f);e=H;m=[];for(let ia=0;ia<e.length;ia++)m.push(e[ia]),h[ia]!==void 0&&m.push(h[ia]?"\n":" ");e=m.join("");Y++}while(g>E);f=d}a[c]=f}return a.join("\n")};
119
- wf=function(a,b,c){var d=[0],e=[];for(var f=0;f<a.length;f++)d[d.length-1]+=a[f].length,b[f]===!0?(d.push(0),e.push(a[f].charAt(a[f].length-1))):b[f]===!1&&d[d.length-1]++;a=Math.max(...d);b=0;for(f=0;f<d.length;f++)b-=Math.pow(Math.abs(c-d[f]),1.5)*2,b-=Math.pow(a-d[f],1.5),".?!".includes(e[f])?b+=c/3:",;)]}".includes(e[f])&&(b+=c/4);d.length>1&&d[d.length-1]<=d[d.length-2]&&(b+=.5);return b};
120
- vf=function(a,b,c){var d=wf(a,b,c);for(let f=0;f<b.length-1;f++){if(b[f]===b[f+1])continue;let g=[].concat(b);g[f]=!g[f];g[f+1]=!g[f+1];let h=wf(a,g,c);if(h>d){d=h;var e=g}}return e?vf(a,e,c):b};$.yf=function(a){return/^\s*-?\d+(\.\d+)?\s*$/.test(a)};Af=function(a){if(a=zf(a)){for(a=a.tooltip;typeof a==="function";)a=a();if(typeof a!=="string")throw Error("Tooltip function must return a string.");return a}return""};
121
- zf=function(a){for(;a&&a.tooltip;){if(typeof a.tooltip==="string"||typeof a.tooltip==="function")return a;a=a.tooltip}return null};Cf=function(){document.querySelector(".blocklyTooltipDiv")||(Bf=document.createElement("div"),Bf.className="blocklyTooltipDiv",(rb()||document.body).appendChild(Bf))};Gf=function(a){a.mouseOverWrapper_=ka(a,"pointerover",null,Df);a.mouseOutWrapper_=ka(a,"pointerout",null,Ef);a.addEventListener("pointermove",Ff,!1)};
122
- Hf=function(a){a&&(la(a.mouseOverWrapper_),la(a.mouseOutWrapper_),a.removeEventListener("pointermove",Ff))};Df=function(a){If||(a=zf(a.currentTarget),Jf!==a&&(Kf(),Lf=null,Jf=a),clearTimeout(Mf))};Ef=function(){If||(Mf=setTimeout(function(){Lf=Jf=null;Kf()},1),clearTimeout(Nf),Nf=0)};
123
- Ff=function(a){if(Jf&&Jf.tooltip&&!If)if(Of){let b=Pf-a.pageX;a=Qf-a.pageY;Math.sqrt(b*b+a*a)>10&&Kf()}else Lf!==Jf&&(clearTimeout(Nf),Pf=a.pageX,Qf=a.pageY,Nf=setTimeout(()=>{if(this instanceof Element)for(let c of gb()){if(!c.rendered)continue;let d;if((d=c.getInjectionDiv())==null?0:d.contains(this)){var b=c;break}}Rf(b)},750))};Sf=function(){Lf=Jf=null;Kf()};Kf=function(){Of&&(Of=!1,Bf&&(Bf.style.display="none"));Nf&&(clearTimeout(Nf),Nf=0)};
124
- Tf=function(a,b){Jf!==a&&(Kf(),Lf=null,Jf=a);Jf&&Jf.tooltip&&!If&&(a=a.getFocusableElement().getBoundingClientRect(),Pf=Jf.RTL?a.x+a.width:a.x,Qf=a.y+a.height,Rf(b))};Uf=function(){Kf();If=!0};
125
- Rf=function(a){if(!If&&(Lf=Jf,Bf)){var b;(b=rb(a))==null||b.appendChild(Bf);Bf.textContent="";if(Bf&&Jf)if(typeof Vf==="function")Vf(Bf,Jf);else for(a=Af(Jf),a=$.xf(a,50),a=a.split("\n"),b=0;b<a.length;b++){var c=document.createElement("div");c.appendChild(document.createTextNode(a[b]));Bf.appendChild(c)}a=Jf.RTL;Bf.style.direction=a?"rtl":"ltr";Bf.style.display="block";Of=!0;b=document.documentElement.clientWidth;c=document.documentElement.clientHeight;var d=Pf;d=a?d-(0+Bf.offsetWidth):d+0;var e=
126
- Qf+10,f,g=(f=Bf)==null?void 0:f.parentElement;g&&(f=g.getBoundingClientRect(),d-=f.left+window.scrollX,e-=f.top+window.scrollY);e+Bf.offsetHeight>c+window.scrollY&&(e-=Bf.offsetHeight+20);a?d=Math.max(5-window.scrollX,d):d+Bf.offsetWidth>b+window.scrollX-10&&(d=b-Bf.offsetWidth-10);var {x:h,y:m}={x:d,y:e};Bf.style.left=h+"px";Bf.style.top=m+"px"}};
127
- Yf=function(a){a=`${a}`.toLowerCase().trim();var b=Wf[a];if(b)return b;b=a.substring(0,2)==="0x"?"#"+a.substring(2):a;b=b[0]==="#"?b:"#"+b;if(/^#[0-9a-f]{6}$/.test(b))return b;if(/^#[0-9a-f]{3}$/.test(b))return["#",b[1],b[1],b[2],b[2],b[3],b[3]].join("");var c=a.match(/^(?:rgb)?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/);return c&&(a=Number(c[1]),b=Number(c[2]),c=Number(c[3]),a>=0&&a<256&&b>=0&&b<256&&c>=0&&c<256)?Xf(a,b,c):null};
128
- Xf=function(a,b,c){b=a<<16|b<<8|c;return a<16?"#"+(16777216|b).toString(16).substr(1):"#"+b.toString(16)};Zf=function(a){a=Yf(a);if(!a)return[0,0,0];a=parseInt(a.substr(1),16);return[a>>16,a>>8&255,a&255]};
129
- $f=function(a,b,c){var d=0,e=0,f=0;if(b===0)f=e=d=c;else{let g=Math.floor(a/60),h=a/60-g;a=c*(1-b);let m=c*(1-b*h);b=c*(1-b*(1-h));switch(g){case 1:d=m;e=c;f=a;break;case 2:d=a;e=c;f=b;break;case 3:d=a;e=m;f=c;break;case 4:d=b;e=a;f=c;break;case 5:d=c;e=a;f=m;break;case 6:case 0:d=c,e=b,f=a}}return Xf(Math.floor(d),Math.floor(e),Math.floor(f))};
130
- ag=function(a,b,c){a=Yf(a);if(!a)return null;b=Yf(b);if(!b)return null;a=Zf(a);b=Zf(b);return Xf(Math.round(b[0]+c*(a[0]-b[0])),Math.round(b[1]+c*(a[1]-b[1])),Math.round(b[2]+c*(a[2]-b[2])))};dg=function(a){return $f(a,bg,cg*255)};
131
- eg=function(a,b,c){var d=[],e=a.split("");e.push("");var f=0;a=[];var g=null;for(let z=0;z<e.length;z++){var h=e[z];if(f===0)if(h==="%")(f=a.join(""))&&d.push(f),a.length=0,f=1;else if(c&&h==="\n"){let E=a.join("");E&&d.push(E);a.length=0;d.push(h)}else a.push(h);else if(f===1)h==="%"?(a.push(h),f=0):b&&"0"<=h&&h<="9"?(f=2,g=h,(h=a.join(""))&&d.push(h),a.length=0):h==="{"?f=3:(a.push("%",h),f=0);else if(f===2)if("0"<=h&&h<="9")g+=h;else{var m=void 0;d.push(parseInt((m=g)!=null?m:"",10));z--;f=0}else f===
132
- 3&&(h===""?(a.splice(0,0,"%{"),z--,f=0):h!=="}"?a.push(h):(f=a.join(""),/[A-Z]\w*/i.test(f)?(h=f.toUpperCase(),(h=h.startsWith("BKY_")?h.substring(4):null)&&h in $.C?(f=$.C[h],typeof f==="string"?Array.prototype.push.apply(d,eg(f,b,c)):b?d.push(`${f}`):d.push(f)):d.push("%{"+f+"}")):d.push("%{"+f+"}"),f=a.length=0))}(b=a.join(""))&&d.push(b);m=[];a.length=0;for(e=0;e<d.length;e++)typeof d[e]!=="string"||c&&d[e]==="\n"?((b=a.join(""))&&m.push(b),a.length=0,m.push(d[e])):a.push(d[e]);(b=a.join(""))&&
133
- m.push(b);a.length=0;return m};fg=function(a){return eg(a,!0,!0)};gg=function(a){if(typeof a!=="string")return a;a=eg(a,!1,!1);return a.length?String(a[0]):""};hg=function(a){var b=typeof a==="string"?gg(a):a,c=Number(b);if(!isNaN(c)&&0<=c&&c<=360)return{hue:c,hex:$f(c,bg,cg*255)};if(c=Yf(b))return{hue:null,hex:c};c='Invalid colour: "'+b+'"';a!==b&&(c+=' (from "'+a+'")');throw Error(c);};kg=function(){ig&&(ig(!1),ig=null);jg()};
134
- mg=function(){var a=rb()||document.body,b=document.querySelector("div.blocklyWidgetDiv");b?lg=b:(lg=document.createElement("div"),lg.id=Lb(),lg.className="blocklyWidgetDiv",lg.tabIndex=-1);k(lg,"keydown",null,Bb);a.appendChild(lg)};
135
- tg=function(a,b,c,d,e=!0){jg();ng=a;og=c;if(c=lg){pg=d!=null?d:kb;var f=Aa(pg.getFocusableElement(),p.OWNS);l(pg.getFocusableElement(),p.OWNS,f?[f,c.id]:c.id);pg.getFocusableElement().classList.add("blocklyShowingWidgetDiv");var g;(g=rb())==null||g.appendChild(c);c.style.direction=b?"rtl":"ltr";c.style.display="block";!d&&a instanceof qg&&a.getSourceBlock();rg=pg.getRenderer().getClassName();sg=pg.getTheme().getClassName();rg&&n(c,rg);sg&&n(c,sg);e&&(ig=$.t().takeEphemeralFocus(c));$.t().registerPopoverFocusLossHandler(kg)}};
136
- jg=function(){if(ng){ng=null;var a=lg;if(a){$.t().unregisterPopoverFocusLossHandler(kg);a.style.display="none";a.style.left="";a.style.top="";og&&(og(),og=null);a.textContent="";rg&&(Ma(a,rg),rg="");sg&&(Ma(a,sg),sg="");var b;(b=pg)==null||b.markFocused();ig&&(ig(),ig=null);if(pg&&lg){var c;a=(c=Aa(pg.getFocusableElement(),p.OWNS))!=null?c:"";l(pg.getFocusableElement(),p.OWNS,a.replace(lg.id,""));pg.getFocusableElement().classList.remove("blocklyShowingWidgetDiv")}}}};ug=function(a){ng===a&&jg()};
137
- vg=function(a){for(var b=pg===null,c=a;!b&&c;){if(c===a){b=!0;break}c=a.options.parentWorkspace}b&&jg()};wg=function(a,b,c){if(lg){var d=lg.parentElement;d&&(d=d.getBoundingClientRect(),a-=d.left+window.scrollX,b-=d.top+window.scrollY);lg.style.left=a+"px";lg.style.top=b+"px";lg.style.height=c+"px"}};
138
- xg=function(a,b,c,d){var e=b.bottom+c.height>=a.bottom?b.top-c.height:b.bottom;a=d?Math.min(Math.max(b.right-c.width,a.left),a.right-c.width):Math.max(Math.min(b.left,a.right-c.width),a.left);e<0?wg(a,0,c.height+e):wg(a,e,c.height)};yg=function(){var a;(a=ng)!=null&&a.repositionForWindowResize&&ng.repositionForWindowResize()||jg()};
139
- Gg=function(a,b,c,d,e){tg(zg,c,Ag,d);if(b.length){e||(a instanceof PointerEvent?e=new D(a.clientX,a.clientY):(console.warn("Context menu opened with keyboard but no location given"),e=new D(0,0)));var f=Bg(b,c,a,e);Cg=f;Dg(f,c,e);setTimeout(function(){f.focus()},1);Eg=null}else Fg()};
140
- Bg=function(a,b,c,d){var e=new Hg;e.setRole(Ka.MENU);for(let f=0;f<a.length;f++){let g=a[f];if(g.separator){e.addChild(new Ig);continue}let h=new Jg(Kg(g));h.setRightToLeft(b);h.setRole(Ka.MENUITEM);e.addChild(h);h.setEnabled(g.enabled);if(g.enabled)h.onAction(function(m,z){Fg();requestAnimationFrame(()=>{setTimeout(()=>{g.callback(g.scope,c,z,d)},0)})},{})}return e};
141
- Dg=function(a,b,c){var d=mc();c=new cc(c.y+d.top,c.y+d.top,c.x+d.left,c.x+d.left);var e=lg;if(!e)throw Error("Attempting to create a context menu when widget div is null");e=a.render(e);n(e,"blocklyContextMenu");k(e,"contextmenu",null,Lg);a.focus();e=a.getSize();b&&(c.left+=e.width,c.right+=e.width,d.left+=e.width,d.right+=e.width);xg(d,c,e,b);a.focus()};Lg=function(a){a.preventDefault();a.stopPropagation()};Fg=function(){ug(zg);Eg=null;var a;(a=Cg)==null||a.dispose();Cg=null};
142
- Ag=function(){Cg&&(Cg.dispose(),Cg=null)};$.Og=function(a,b){return()=>{$.Ub++;try{var c=b instanceof Element?Mg(b,a.workspace):ce(b,a.workspace);let d=a.getRelativeToSurfaceXY();d.x=a.RTL?d.x-$.Ng.snapRadius:d.x+$.Ng.snapRadius;d.y+=$.Ng.snapRadius*2;c.moveBy(d.x,d.y)}finally{$.Ub--}Vb()&&!c.isShadow()&&w(new (u(v.BLOCK_CREATE))(c));$.t().focusNode(c);return c}};
143
- Kg=function(a){var b=a.text;if(b&&!(b instanceof HTMLElement)){let c=document.createElement("div");c.className="blocklyShortcutContainer";let d=document.createElement("span");d.textContent=b;b=document.createElement("span");b.className="blocklyShortcut";a="id"in a&&a.associatedKeyboardShortcut?qe(a.associatedKeyboardShortcut):"";b.textContent=` ${a}`;c.appendChild(d);c.appendChild(b);return c}return a.text};
144
- Pg=function(a,b){b=pa(b,a.getParentSvg(),a.getInverseScreenCTM());b.x/=a.scale;b.y/=a.scale;return b};Rg=function(a,b,c){b=Pg(a,b);Qg.set(a,D.difference(c,b))};Sg=function(a,b){b=Pg(a,b);a=Qg.get(a);if(!a)throw Error("Drag not initialized");return D.sum(a,b)};
145
- Tg=function(a,b=!1){var c=$.rc("comment");b||c.setAttribute("id",a.id);b=a.workspace;var d=a.getRelativeToSurfaceXY().clone();d.x=b.RTL?b.getWidth()-d.x:d.x;c.setAttribute("x",`${d.x}`);c.setAttribute("y",`${d.y}`);c.setAttribute("w",`${a.getSize().width}`);c.setAttribute("h",`${a.getSize().height}`);a.getText()&&(c.textContent=a.getText());a.isCollapsed()&&c.setAttribute("collapsed","true");a.isOwnEditable()||c.setAttribute("editable","false");a.isOwnMovable()||c.setAttribute("movable","false");
146
- a.isOwnDeletable()||c.setAttribute("deletable","false");return c};Ug=function(a){var b=$.rc("variables");for(let c=0;c<a.length;c++){let d=a[c],e=$.rc("variable");e.appendChild($.sc(d.getName()));d.getType()&&e.setAttribute("type",d.getType());e.id=d.getId();b.appendChild(e)}return b};
147
- Xg=function(a,b){if(a.isInsertionMarker()&&(a=a.getChildren(!1)[0],!a))return new DocumentFragment;var c=0;a.workspace.RTL&&(c=a.workspace.getWidth());b=Vg(a,b);if(b.nodeType===Wg.ELEMENT_NODE){let d=a.getRelativeToSurfaceXY();b.setAttribute("x",String(Math.round(a.workspace.RTL?c-d.x:d.x)));b.setAttribute("y",String(Math.round(d.y)))}return b};
148
- Vg=function(a,b){if(a.isInsertionMarker())return(b=a.getChildren(!1)[0])?Vg(b):new DocumentFragment;var c=$.rc(a.isShadow()?"shadow":"block");c.setAttribute("type",a.type);b||(c.id=a.id);if(a.mutationToDom){var d=a.mutationToDom();d&&(d.hasChildNodes()||d.hasAttributes())&&c.appendChild(d)}for(var e of a.getFields())e.isSerializable()?(d=$.rc("field"),d.setAttribute("name",e.name||""),d=e.toXml(d)):d=null,d&&c.appendChild(d);if(e=a.getCommentText()){var f=a.getIcon(Yg.COMMENT);d=f.getBubbleSize();
149
- var g=f.bubbleIsVisible();f=f.getBubbleLocation();var h=$.rc("comment");h.appendChild($.sc(e));h.setAttribute("pinned",`${g}`);h.setAttribute("h",`${d.height}`);h.setAttribute("w",`${d.width}`);f&&(h.setAttribute("x",`${a.workspace.RTL?a.workspace.getWidth()-(f.x+d.width):f.x}`),h.setAttribute("y",`${f.y}`));c.appendChild(h)}a.data&&(e=$.rc("data"),e.appendChild($.sc(a.data)),c.appendChild(e));for(e=0;e<a.inputList.length;e++){d=a.inputList[e];var m=void 0;g=!0;d.type!==$.ie.DUMMY&&d.type!==$.ie.END_ROW&&
150
- (f=d.connection.targetBlock(),d.type===$.ie.VALUE?m=$.rc("value"):d.type===$.ie.STATEMENT&&(m=$.rc("statement")),h=d.connection.getShadowDom(),!h||f&&f.isShadow()||m.appendChild(Zg(h,b)),f&&(f=Vg(f,b),f.nodeType===Wg.ELEMENT_NODE&&(m.appendChild(f),g=!1)),m.setAttribute("name",d.name),g||c.appendChild(m))}a.inputsInline!==void 0&&a.inputsInline!==a.inputsInlineDefault&&c.setAttribute("inline",String(a.inputsInline));a.isCollapsed()&&c.setAttribute("collapsed","true");a.isEnabled()||c.setAttribute("disabled-reasons",
151
- Array.from(a.getDisabledReasons()).map(encodeURIComponent).join(","));a.isOwnDeletable()||c.setAttribute("deletable","false");a.isOwnMovable()||c.setAttribute("movable","false");a.isOwnEditable()||c.setAttribute("editable","false");m=a.getNextBlock();if(m&&(e=Vg(m,b),e.nodeType===Wg.ELEMENT_NODE)){var z=$.rc("next");z.appendChild(e);c.appendChild(z)}a=a.nextConnection&&a.nextConnection.getShadowDom();!a||m&&m.isShadow()||z.appendChild(Zg(a,b));return c};
152
- Zg=function(a,b){for(var c=a=a.cloneNode(!0),d;c;)if(b&&c.nodeName==="shadow"&&c.removeAttribute("id"),c.firstChild)c=c.firstChild;else{for(;c&&!c.nextSibling;){d=c;c=c.parentNode;let e;d.nodeType===Wg.TEXT_NODE&&d.data.trim()===""&&((e=c)==null?void 0:e.firstChild)!==d&&Oa(d)}c&&(d=c,c=c.nextSibling,d.nodeType===Wg.TEXT_NODE&&d.data.trim()===""&&Oa(d))}return a};$d=function(a){return xc(a).replace(/<(\w+)([^<]*)\/>/g,"<$1$2></$1>")};
153
- $.bh=function(a,b){var c=0;b.RTL&&(c=b.getWidth());var d=[];Ta();var e=$.gd;e||$.B(!0);b.setResizesEnabled&&b.setResizesEnabled(!1);var f=!0;try{for(let g=0,h;h=a.childNodes[g];g++){let m=h.nodeName.toLowerCase(),z=h;if(m==="block"||m==="shadow"&&!$.Qc){let E=Mg(z,b);d.push(E.id);let H,Y=parseInt((H=z.getAttribute("x"))!=null?H:"10",10),ia,jb=parseInt((ia=z.getAttribute("y"))!=null?ia:"10",10);isNaN(Y)||isNaN(jb)||E.moveBy(b.RTL?c-Y:Y,jb,["create"]);f=!1}else{if(m==="shadow")throw TypeError("Shadow block cannot be a top-level block.");
154
- if(m==="comment")$g(z,b);else if(m==="variables"){if(f)ah(z,b);else throw Error("'variables' tag must exist once before block and shadow tag elements in the workspace XML, but it was found in another location.");f=!1}}}}finally{$.B(e),b.setResizesEnabled&&b.setResizesEnabled(!0),b.rendered&&dd(),Ua()}w(new (u(v.FINISHED_LOADING))(b));return d};
155
- $g=function(a,b){var c,d=(c=a.getAttribute("id"))!=null?c:void 0;c=b.rendered?new ch(b,d):new dh(b,d);var e;c.setText((e=a.textContent)!=null?e:"");var f;e=parseInt((f=a.getAttribute("x"))!=null?f:"",10);var g;f=parseInt((g=a.getAttribute("y"))!=null?g:"",10);isNaN(e)||isNaN(f)||(e=b.RTL?b.getWidth()-e:e,c.moveTo(new D(e,f)));var h;b=parseInt((h=a.getAttribute("w"))!=null?h:"",10);var m;h=parseInt((m=a.getAttribute("h"))!=null?m:"",10);isNaN(b)||isNaN(h)||c.setSize(new hc(b,h));a.getAttribute("collapsed")===
156
- "true"&&c.setCollapsed(!0);a.getAttribute("editable")==="false"&&c.setEditable(!1);a.getAttribute("movable")==="false"&&c.setMovable(!1);a.getAttribute("deletable")==="false"&&c.setDeletable(!1);return c};$.eh=function(a,b){a=Mg(a,b);b.rendered&&dd();return a};
157
- Mg=function(a,b){$.Ub++;var c=b.getVariableMap().getAllVariables();try{var d=fh(a,b);if(b.rendered){let e=d,f=d.getDescendants(!1);e.setConnectionTracking(!1);for(let g=f.length-1;g>=0;g--)f[g].initSvg();for(let g=f.length-1;g>=0;g--)f[g].queueRender();setTimeout(function(){e.disposed||e.setConnectionTracking(!0)},1);b.resizeContents()}else{let e=d.getDescendants(!1);for(let f=e.length-1;f>=0;f--)e[f].initModel()}}finally{$.Ub--}if(Vb()){a=Xd(b,c);for(b=0;b<a.length;b++)c=a[b],w(new (u(v.VAR_CREATE))(c));
158
- w(new (u(v.BLOCK_CREATE))(d))}return d};ah=function(a,b){for(let d=0;d<a.children.length;d++){var c=a.children[d];let e=c.getAttribute("type"),f=c.getAttribute("id");c=c.textContent;if(!c)break;b.getVariableMap().createVariable(c,e!=null?e:void 0,f)}};
159
- gh=function(a,b){for(let c=0;c<a.length;c++){let d=a[c],e=d.textContent,f=d.getAttribute("pinned")==="true",g,h=parseInt((g=d.getAttribute("w"))!=null?g:"50",10),m,z=parseInt((m=d.getAttribute("h"))!=null?m:"50",10),E,H=parseInt((E=d.getAttribute("x"))!=null?E:"",10),Y,ia=parseInt((Y=d.getAttribute("y"))!=null?Y:"",10);b.setCommentText(e);let jb=b.getIcon(Yg.COMMENT);isNaN(h)||isNaN(z)||jb.setBubbleSize(new hc(h,z));jb.setBubbleVisible(f);setTimeout(()=>{isNaN(H)||isNaN(ia)||(H=b.workspace.RTL?b.workspace.getWidth()-
160
- (H+h):H,jb.setBubbleLocation(new D(H,ia)));jb.setBubbleVisible(f)},1)}};hh=function(a){var b=null,c=null;for(let d=0;d<a.childNodes.length;d++){let e=a.childNodes[d];e.nodeType===Wg.ELEMENT_NODE&&(e.nodeName.toLowerCase()==="block"?b=e:e.nodeName.toLowerCase()==="shadow"&&(c=e))}return{childBlockElement:b,childShadowElement:c}};
161
- fh=function(a,b,c,d){var e,f=a.getAttribute("type");if(!f)throw TypeError("Block type unspecified: "+a.outerHTML);var g=(e=a.getAttribute("id"))!=null?e:void 0;e=b.newBlock(f,g);var h=[],m=[],z=[],E=[],H=[];g=[];for(var Y=0;Y<a.children.length;Y++){var ia=a.children[Y];if(ia.nodeType!==Wg.TEXT_NODE)switch(ia.nodeName.toLowerCase()){case "mutation":h.push(ia);break;case "comment":m.push(ia);break;case "data":z.push(ia);break;case "title":case "field":E.push(ia);break;case "value":case "statement":H.push(ia);
162
- break;case "next":g.push(ia);break;default:console.warn("Ignoring unknown tag: "+ia.nodeName)}}Y=!1;for(ia=0;ia<h.length;ia++){let Vi=h[ia];e.domToMutation&&(e.domToMutation(Vi),e.initSvg&&(Y=!0))}h=Y;gh(m,e);m=z;for(z=0;z<m.length;z++)e.data=m[z].textContent;if(c)if(d)if(e.previousConnection)c.connect(e.previousConnection);else throw TypeError("Next block does not have previous statement.");else if(e.outputConnection)c.connect(e.outputConnection);else if(e.previousConnection)c.connect(e.previousConnection);
163
- else throw TypeError("Child block does not have output or previous statement.");c=E;for(E=0;E<c.length;E++)m=c[E],(z=m.getAttribute("name"))?(d=e,(Y=d.getField(z))?Y.fromXml(m):console.warn("Ignoring non-existent field "+z+" in block "+d.type)):console.warn(`Ignoring unnamed field in block ${e.type}`);for(c=0;c<H.length;c++){E=H[c];d=(m=E.getAttribute("name"))?e.getInput(m):null;if(!d){console.warn("Ignoring non-existent input "+m+" in block "+f);break}E=hh(E);if(E.childBlockElement){if(!d.connection)throw TypeError("Input connection does not exist.");
164
- fh(E.childBlockElement,b,d.connection,!1)}if(E.childShadowElement){var jb=void 0;(jb=d.connection)==null||jb.setShadowDom(E.childShadowElement)}}f=g;for(jb=0;jb<f.length;jb++){g=hh(f[jb]);if(g.childBlockElement){if(!e.nextConnection)throw TypeError("Next statement does not exist.");if(e.nextConnection.isConnected())throw TypeError("Next statement is already connected.");fh(g.childBlockElement,b,e.nextConnection,!0)}g.childShadowElement&&e.nextConnection&&e.nextConnection.setShadowDom(g.childShadowElement)}h&&
165
- e.initSvg();(b=a.getAttribute("inline"))&&e.setInputsInline(b==="true");(b=a.getAttribute("disabled"))&&e.setDisabledReason(b==="true"||b==="disabled","MANUALLY_DISABLED");b=a.getAttribute("disabled-reasons");if(b!==null)for(var pb of b.split(","))e.setDisabledReason(!0,decodeURIComponent(pb));(pb=a.getAttribute("deletable"))&&e.setDeletable(pb==="true");(pb=a.getAttribute("movable"))&&e.setMovable(pb==="true");(pb=a.getAttribute("editable"))&&e.setEditable(pb==="true");(pb=a.getAttribute("collapsed"))&&
166
- e.setCollapsed(pb==="true");if(a.nodeName.toLowerCase()==="shadow"){a=e.getChildren(!1);for(pb=0;pb<a.length;pb++)if(!a[pb].isShadow())throw TypeError("Shadow block not allowed non-shadow child.");e.setShadow(!0)}return e};ih=function(a,b){A(y.FIELD,a,b,!0)};$.kh=function(a){return jh.fromJsonInternal(a)};lh=function(a){return a&&typeof a==="object"&&"src"in a&&typeof a.src==="string"&&"alt"in a&&typeof a.alt==="string"&&"width"in a&&typeof a.width==="number"&&"height"in a&&typeof a.height==="number"};
167
- $.nh=function(a,b){if(typeof a!=="string"||a.trim()==="")throw Error('Error: Invalid extension name "'+a+'"');if(mh[a])throw Error('Error: Extension "'+a+'" is already registered.');if(typeof b!=="function")throw Error('Error: Extension "'+a+'" must be a function');mh[a]=b};$.oh=function(a,b){if(!b||typeof b!=="object")throw Error('Error: Mixin "'+a+'" must be a object');$.nh(a,function(){this.mixin(b)})};
168
- $.sh=function(a,b,c,d){var e='Error when registering mutator "'+a+'": ';ph(e,b);var f=qh(b.compose,b.decompose,e+" compose/decompose");if(c&&typeof c!=="function")throw Error(e+'Extension "'+a+'" is not a function');$.nh(a,function(){f&&this.setMutator(new $.rh(d||[],this));this.mixin(b);c&&c.apply(this)})};th=function(a){return!!mh[a]};
169
- vh=function(a,b,c){var d=mh[a];if(typeof d!=="function")throw Error('Error: Extension "'+a+'" not found.');if(c){if(uh(b).length)throw Error('Error: tried to apply mutation "'+a+'" to a block that already has mutator functions. Block id: '+b.id);}else var e=uh(b);d.apply(b);if(c)ph('Error after applying mutator "'+a+'": ',b);else{a:if(c=e,b=uh(b),b.length!==c.length)b=!1;else{for(d=0;d<b.length;d++)if(c[d]!==b[d]){b=!1;break a}b=!0}if(!b)throw Error('Error when applying extension "'+a+'": mutation properties changed when applying a non-mutator extension.');
170
- }};qh=function(a,b,c){if(a&&b){if(typeof a!=="function"||typeof b!=="function")throw Error(c+" must be a function");return!0}if(!a&&!b)return!1;throw Error(c+"Must have both or neither functions");};ph=function(a,b){var c=qh(b.mutationToDom,b.domToMutation,a+" mutationToDom/domToMutation"),d=qh(b.saveExtraState,b.loadExtraState,a+" saveExtraState/loadExtraState");if(!c&&!d)throw Error(a+"Mutations must contain either XML hooks, or JSON hooks, or both");qh(b.compose,b.decompose,a+" compose/decompose")};
171
- uh=function(a){var b=[];a.domToMutation!==void 0&&b.push(a.domToMutation);a.mutationToDom!==void 0&&b.push(a.mutationToDom);a.saveExtraState!==void 0&&b.push(a.saveExtraState);a.loadExtraState!==void 0&&b.push(a.loadExtraState);a.compose!==void 0&&b.push(a.compose);a.decompose!==void 0&&b.push(a.decompose);return b};$.xh=function(a,b){var c=[];return function(){c.includes(this.type)||(wh(this,a,b),c.push(this.type));this.setTooltip(function(){var d=String(this.getFieldValue(a));return gg(b[d])}.bind(this))}};
172
- wh=function(a,b,c){var d=a.getField(b);if(d instanceof yh&&!d.isOptionListDynamic()){d=d.getOptions();for(let e of d){if(e===yh.SEPARATOR)continue;[,d]=e;c[d]===void 0&&console.warn(`No tooltip mapping for value ${d} of field ${b} of block type ${a.type}.`)}}};$.zh=function(a,b){return function(){this.setTooltip(function(){var c=this.getField(b);return gg(a).replace("%1",c?c.getText():"")}.bind(this))}};I=function(a,b){return" "+a+","+b+" "};Ah=function(a,b){return" "+a+b.join("")};
173
- Bh=function(a,b){return" M "+a+","+b+" "};Ch=function(a,b){return" m "+a+","+b+" "};Dh=function(a,b){return" l "+a+","+b+" "};Eh=function(a){return" l"+a.join("")};J=function(a,b){return" "+a+" "+b+" "};Fh=function(a,b,c,d){return a+" "+c+" "+c+" "+b+d};Gh=function(a,b){var c=null;b=b.outputConnection;var d=b==null?void 0:b.getConnectionChecker();for(let e=0,f;f=a.inputList[e];e++){let g=f.connection;if(g&&(d==null?0:d.canConnect(b,g,!1))){if(c)return null;c=g}}return c};
174
- Hh=function(a){return $a(a)&&typeof a.getType==="function"&&typeof a.initView==="function"&&typeof a.dispose==="function"&&typeof a.getWeight==="function"&&typeof a.getSize==="function"&&typeof a.applyColour==="function"&&typeof a.hideForInsertionMarker==="function"&&typeof a.updateEditable==="function"&&typeof a.updateCollapsed==="function"&&typeof a.isShownWhenCollapsed==="function"&&typeof a.setOffsetInBlock==="function"&&typeof a.onLocationChange==="function"&&typeof a.onClick==="function"};
175
- Jh=function(a){if(!(a.getDescendants(!1).length>100)){var b=a.workspace,c=a.getSvgRoot();b.getAudioManager().play("delete");var d=a.getRelativeToSurfaceXY(),e=c.cloneNode(!0);e.setAttribute("transform","translate("+d.x+","+d.y+")");var f;(f=b.getLayerManager())==null||f.appendToAnimationLayer({getSvgRoot:()=>e});Ih(e,{x:d.x,y:d.y,width:a.width,height:a.height},b.RTL,new Date)}};
176
- Ih=function(a,b,c,d){var e=((new Date).getTime()-d.getTime())/150;e>1?Oa(a):(a.setAttribute("transform","translate("+(b.x+(c?-1:1)*b.width/2*e)+","+(b.y+b.height/2*e)+") scale("+(1-e)+")"),setTimeout(Ih,10,a,b,c,d))};
177
- Kh=function(a){var b=a.workspace,c=b.scale;b.getAudioManager().play("click");if(!(c<1)){var d=b.getSvgXY(a.getSvgRoot());a.outputConnection?(d.x+=(a.RTL?3:-3)*c,d.y+=13*c):a.previousConnection&&(d.x+=(a.RTL?-23:23)*c,d.y+=3*c);var e=r(q.CIRCLE,{cx:d.x,cy:d.y,r:0,fill:"none",stroke:"#888","stroke-width":10},b.getParentSvg());a=r(q.ANIMATE,{id:"animationCircle",begin:"indefinite",attributeName:"r",dur:"150ms",from:0,to:25*c},e);b=r(q.ANIMATE,{id:"animationOpacity",begin:"indefinite",attributeName:"opacity",
178
- dur:"150ms",from:1,to:0},e);a.beginElement();b.beginElement();setTimeout(()=>void Oa(e),150)}};Oh=function(a){Lh();a.workspace.getAudioManager().play("disconnect");if(!(a.workspace.scale<1)){var b=a.getHeightWidth().height;b=Math.atan(10/b)/Math.PI*180;a.RTL||(b*=-1);Mh=a;Nh(a,b,new Date,0)}};
179
- Nh=function(a,b,c,d){var e=[.66,1,.66,0,-.66,-1,-.66,0],f="";c.getTime()+200>(new Date).getTime()&&(f=`skewX(${Math.round(e[d%e.length]*b)})`,Ph=setTimeout(Nh,15,a,b,c,d+1));a.getSvgRoot().setAttribute("transform",`${a.getTranslation()} ${f}`)};Lh=function(){Mh&&(Ph&&(clearTimeout(Ph),Ph=null),Mh.getSvgRoot().setAttribute("transform",Mh.getTranslation()),Mh=null)};
180
- Sh=function(a,b){a.workspace.RTL&&(b.x=a.workspace.getWidth()-b.x);for(var c=a.workspace,d=$.Ng.snapRadius,e=D.difference(b,a.getRelativeToSurfaceXY()),f=new D(0,0),g=c.getAllBlocks(!1).filter(h=>h.id!=a.id).map(h=>h.getRelativeToSurfaceXY());Qh(D.sum(b,f),g)||Rh(a,D.sum(e,f),d);)c.RTL?f.translate(-d,d*2):f.translate(d,d*2);a.moveTo(D.sum(b,f))};Qh=function(a,b){return b.some(c=>Math.abs(c.x-a.x)<=1&&Math.abs(c.y-a.y)<=1)};Rh=function(a,b,c){return a.getConnections_(!1).some(d=>!!d.closest(c,b).connection)};
181
- Th=function(a,b,c){var d=c.getBoundingRectangle(),e=d.right-d.left,f=Ne(b.top,d.top,b.top+b.height-(d.bottom-d.top))-d.top,g=b.left;b=b.left+b.width-e;a.RTL?g=Math.min(b,g):b=Math.max(g,b);return(a=Ne(g,d.left,b)-d.left)||f?(c.moveBy(a,f,["inbounds"]),!0):!1};
182
- Wh=function(a){return b=>{var c=a.getMetricsManager();if(c.hasFixedEdges()&&!a.isDragging()){var d;if(Uh.includes((d=b.type)!=null?d:"")){c=c.getScrollMetrics(!0);d=null;switch(b.type){case v.BLOCK_CREATE:case v.BLOCK_MOVE:(d=a.getBlockById(b.blockId))&&(d=d.getRootBlock());break;case v.COMMENT_CREATE:case v.COMMENT_MOVE:case v.COMMENT_RESIZE:d=a.getCommentById(b.commentId)}if(d){var e=$.gd||!1;$.B(b.group);Th(a,c,d)&&!b.group&&console.warn("Moved object in bounds but there was no event group. This may break undo.");
183
- $.B(e)}}else b.type===v.VIEWPORT_CHANGE&&b.scale&&b.oldScale&&b.scale>b.oldScale&&Vh(a)}}};Vh=function(a){var b=a.getMetricsManager();if(b.hasFixedEdges()&&!a.isDragging()){b=b.getScrollMetrics(!0);var c=a.getTopBoundedElements();for(let d=0,e;e=c[d];d++)Th(a,b,e)}};ai=function(a,b){var c=a.toCopyData();Xh=c;Yh=ab(a)&&a.workspace instanceof Zh?a.workspace:null;$h=b;return c};ci=function(a,b,c){return a&&b?bi(a,b,c):Xh&&Yh?bi(Xh,Yh,$h):null};
184
- bi=function(a,b,c){var d;b=b.isMutator?b:(d=b.options.parentWorkspace)!=null?d:b;var e,f;return(f=(e=Fb(y.PASTER,a.paster,!1))==null?void 0:e.paste(a,b,c))!=null?f:null};di=function(a){return a&&typeof a.toCopyData==="function"};ei=function(a){return a&&typeof a.isDeletable==="function"&&typeof a.dispose==="function"&&typeof a.setDeleteStyle==="function"};
185
- fi=function(a){return a&&typeof a.getRelativeToSurfaceXY==="function"&&typeof a.isMovable==="function"&&typeof a.startDrag==="function"&&typeof a.drag==="function"&&typeof a.endDrag==="function"&&typeof a.revertDrag==="function"};gi=function(){x.registry.register({name:K.ESCAPE,preconditionFn(a){return!a.isReadOnly()},callback(a){a.hideChaff();return!0},keyCodes:[L.ESC],displayText:()=>$.C.SHORTCUTS_ESCAPE})};
186
- ii=function(){x.registry.register({name:K.DELETE,preconditionFn(a,b){b=b.focusedNode;(b=!a.isReadOnly()&&b!=null&&ei(b)&&b.isDeletable()&&!a.isDragging()&&!$.t().ephemeralFocusTaken())||a.getAudioManager().playErrorBeep();return b},callback(a,b,c,d){b.preventDefault();b=d.focusedNode;b instanceof hi?b.checkAndDelete():ei(b)&&b.isDeletable()&&($.B(!0),b.dispose(),$.B(!1),a.getAudioManager().play("delete"));return!0},keyCodes:[L.DELETE,L.BACKSPACE],displayText:()=>$.C.SHORTCUTS_DELETE})};
187
- ji=function(a){return di(a)&&ei(a)&&fi(a)?a.isCopyable?a.isCopyable():a instanceof hi||a instanceof ch?a.isOwnDeletable()&&a.isOwnMovable():a.isDeletable()&&a.isMovable():!1};
188
- li=function(){var a=x.registry.createSerializedKey(L.C,[L.CTRL_CMD]);x.registry.register({name:K.COPY,preconditionFn(b,c){c=c.focusedNode;var d=b.isFlyout?b.targetWorkspace:b;(c=!!c&&!!d&&!d.isDragging()&&!$.t().ephemeralFocusTaken()&&ji(c))||b.getAudioManager().playErrorBeep();return c},callback(b,c,d,e){c.preventDefault();d=e.focusedNode;if(!d||!di(d)||!ji(d))return!1;e=b.isFlyout?b.targetWorkspace:b;if(!e)return!1;d.workspace.isFlyout||e.hideChaff();e=fi(d)&&d.workspace==e?d.getRelativeToSurfaceXY():
189
- void 0;(d=!!ai(d,e))&&c instanceof KeyboardEvent&&ki.show(b,{message:$.C.KEYBOARD_NAV_COPIED_HINT.replace("%1",qe(K.PASTE)),duration:7,id:"copiedHint"});return d},keyCodes:[a],displayText:()=>$.C.COPY_SHORTCUT})};
190
- mi=function(){var a=x.registry.createSerializedKey(L.X,[L.CTRL_CMD]);x.registry.register({name:K.CUT,preconditionFn(b,c){c=c.focusedNode;(c=!!c&&!b.isReadOnly()&&!b.isDragging()&&!$.t().ephemeralFocusTaken()&&ji(c)&&ei(c)&&c.isDeletable())||b.getAudioManager().playErrorBeep();return c},callback(b,c,d,e){d=e.focusedNode;if(!(d&&ji(d)&&ei(d)&&d.isDeletable()&&di(d)))return!1;e=fi(d)?d.getRelativeToSurfaceXY():void 0;e=ai(d,e);d instanceof hi?(d.checkAndDelete(),c.preventDefault()):ei(d)&&($.B(!0),d.dispose(),
191
- $.B(!1),b.getAudioManager().play("delete"),c.preventDefault());e&&c instanceof KeyboardEvent&&ki.show(b,{message:$.C.KEYBOARD_NAV_CUT_HINT.replace("%1",qe(K.PASTE)),duration:7,id:"cutHint"});return!!e},keyCodes:[a],displayText:()=>$.C.CUT_SHORTCUT})};
192
- ni=function(){var a=x.registry.createSerializedKey(L.V,[L.CTRL_CMD]);x.registry.register({name:K.PASTE,preconditionFn(){var b=Yh;if(!b||!b.rendered)return!1;var c=b.isFlyout?b.targetWorkspace:b;(c=!!Xh&&!!c&&!c.isReadOnly()&&!c.isDragging()&&!$.t().ephemeralFocusTaken())||b.getAudioManager().playErrorBeep();return c},callback(b,c){var d=Xh,e=$.t().getFocusedNode();if(!d)return!1;var f=Yh;if(!f)return!1;ki.hide(b,"cutHint");ki.hide(b,"copiedHint");b=f.isFlyout?f.targetWorkspace:f;if(!b||b.isReadOnly())return!1;
193
- if(c instanceof PointerEvent){var g=oc(b,new D(c.clientX,c.clientY));return!!ci(d,b,g)}if(c=(g=b.getNavigator().getSourceBlockFromNode(e))==null?void 0:g.getRelativeToSurfaceXY())return!!ci(d,b,c);g=$h;if(!g)return!!ci(d,b);var {left:h,top:m,width:z,height:E}=b.getMetricsManager().getViewMetrics(!0);if((new cc(m,m+E,h,h+z)).contains(g.x,g.y))return!!ci(d,b);g=new D(h+z/2,m+E/2);return!!ci(d,b,g)},keyCodes:[a],displayText:()=>$.C.PASTE_SHORTCUT})};
194
- oi=function(){var a=x.registry.createSerializedKey(L.Z,[L.CTRL_CMD]);x.registry.register({name:K.UNDO,preconditionFn(b){return!b.isReadOnly()&&!b.isDragging()&&!$.t().ephemeralFocusTaken()},callback(b,c){b.hideChaff();b.undo();c.preventDefault();return!0},keyCodes:[a],displayText:()=>$.C.UNDO})};
195
- pi=function(){var a=x.registry.createSerializedKey(L.Z,[L.CTRL_CMD,L.SHIFT]),b=x.registry.createSerializedKey(L.Y,[L.CTRL]);x.registry.register({name:K.REDO,preconditionFn(c){return!c.isDragging()&&!c.isReadOnly()&&!$.t().ephemeralFocusTaken()},callback(c,d){c.hideChaff();c.redo();d.preventDefault();return!0},keyCodes:[a,b],displayText:()=>$.C.REDO})};
196
- si=function(){var a=d=>{var e=$.t().getFocusedNode();if(fi(e))return e;var f;return(f=d.getNavigator().getSourceBlockFromNode($.t().getFocusedNode()))!=null?f:void 0},b=x.registry.createSerializedKey(L.M,[L.SHIFT]),c={name:K.START_MOVE,preconditionFn:d=>{d=a(d);return!!d&&qi.mover.canMove(d)},callback:(d,e)=>{Nd.setIsActive(!0);(d=a(d))&&$.t().focusNode(d);return!!d&&qi.mover.startMove(d,e)},keyCodes:[L.M],displayText:()=>$.C.SHORTCUTS_START_MOVE};b=[c,Object.assign({},c,{name:K.START_MOVE_STACK,
197
- keyCodes:[b],displayText:()=>$.C.SHORTCUTS_START_MOVE_STACK}),{name:K.FINISH_MOVE,preconditionFn:()=>qi.mover.isMoving(),callback:(d,e)=>qi.mover.finishMove(e),keyCodes:[L.ENTER,L.SPACE],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_FINISH_MOVE},{name:K.ABORT_MOVE,preconditionFn:()=>qi.mover.isMoving(),callback:(d,e)=>qi.mover.abortMove(e),keyCodes:[L.ESC],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_ABORT_MOVE},{name:K.MOVE_LEFT,preconditionFn:()=>qi.mover.isMoving(),callback:(d,e)=>{e.preventDefault();
198
- return qi.mover.move(ri.LEFT,e)},keyCodes:[L.LEFT,x.registry.createSerializedKey(L.LEFT,[L.CTRL_CMD])],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_MOVE_LEFT},{name:K.MOVE_RIGHT,preconditionFn:()=>qi.mover.isMoving(),callback:(d,e)=>{e.preventDefault();return qi.mover.move(ri.RIGHT,e)},keyCodes:[L.RIGHT,x.registry.createSerializedKey(L.RIGHT,[L.CTRL_CMD])],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_MOVE_RIGHT},{name:K.MOVE_UP,preconditionFn:()=>qi.mover.isMoving(),callback:(d,e)=>{e.preventDefault();
199
- return qi.mover.move(ri.UP,e)},keyCodes:[L.UP,x.registry.createSerializedKey(L.UP,[L.CTRL_CMD])],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_MOVE_UP},{name:K.MOVE_DOWN,preconditionFn:()=>qi.mover.isMoving(),callback:(d,e)=>{e.preventDefault();return qi.mover.move(ri.DOWN,e)},keyCodes:[L.DOWN,x.registry.createSerializedKey(L.DOWN,[L.CTRL_CMD])],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_MOVE_DOWN}];for(let d of b)x.registry.register(d)};
200
- ti=function(){var a=x.registry.createSerializedKey(L.ENTER,[L.CTRL_CMD]),b=x.registry.createSerializedKey(L.F10,[L.SHIFT]);x.registry.register({name:K.MENU,preconditionFn:c=>!c.isDragging(),callback:(c,d)=>{Nd.setIsActive(!0);if((c=$.t().getFocusedNode())&&typeof c.showContextMenu==="function"){c.showContextMenu(d);let e;(e=Cg)==null||e.highlightNext();return!0}return!1},keyCodes:[a,b,L.CONTEXT_MENU],displayText:()=>$.C.SHORTCUTS_SHOW_CONTEXT_MENU})};
201
- ui=function(){var a={right:{name:K.NAVIGATE_RIGHT,preconditionFn:b=>!b.isDragging()&&!ef&&!ng,callback:(b,c)=>{c.preventDefault();Nd.setIsActive(!0);var d,e;c=b.RTL?(d=$.t().getFocusedTree())==null?void 0:d.getNavigator().getOutNode():(e=$.t().getFocusedTree())==null?void 0:e.getNavigator().getInNode();if(!c)return b.getAudioManager().playErrorBeep(),!1;$.t().focusNode(c);return!0},keyCodes:[L.RIGHT],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_NAVIGATE_RIGHT},left:{name:K.NAVIGATE_LEFT,preconditionFn:b=>
202
- !b.isDragging()&&!ef&&!ng,callback:(b,c)=>{c.preventDefault();Nd.setIsActive(!0);var d,e;c=b.RTL?(d=$.t().getFocusedTree())==null?void 0:d.getNavigator().getInNode():(e=$.t().getFocusedTree())==null?void 0:e.getNavigator().getOutNode();if(!c)return b.getAudioManager().playErrorBeep(),!1;$.t().focusNode(c);return!0},keyCodes:[L.LEFT],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_NAVIGATE_LEFT},down:{name:K.NAVIGATE_DOWN,preconditionFn:b=>!b.isDragging()&&!ef&&!ng,callback:(b,c)=>{c.preventDefault();
203
- Nd.setIsActive(!0);var d;c=(d=$.t().getFocusedTree())==null?void 0:d.getNavigator().getNextNode();if(!c)return b.getAudioManager().playErrorBeep(),!1;b.getAudioManager().maybePlayScopeChangeAudioCue(c);$.t().focusNode(c);return!0},keyCodes:[L.DOWN],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_NAVIGATE_DOWN},up:{name:K.NAVIGATE_UP,preconditionFn:b=>!b.isDragging()&&!ef&&!ng,callback:(b,c)=>{c.preventDefault();Nd.setIsActive(!0);var d;c=(d=$.t().getFocusedTree())==null?void 0:d.getNavigator().getPreviousNode();
92
+ se=function(a){a=te.indexOf(a);return a===-1?Number.MAX_VALUE:a};ue=function(a){return a&&typeof a.init==="function"&&typeof a.getDiv==="function"&&typeof a.getId==="function"&&typeof a.getParent==="function"&&typeof a.getLevel==="function"&&typeof a.isSelectable==="function"&&typeof a.isCollapsible==="function"&&typeof a.dispose==="function"&&typeof a.getClickTarget==="function"&&typeof a.setVisible_==="function"&&typeof a.getParentToolbox==="function"};
93
+ ve=function(a){return typeof a.getName==="function"&&typeof a.getContents==="function"&&typeof a.setSelected==="function"&&typeof a.onClick==="function"&&ue(a)&&a.isSelectable()};
94
+ Ce=function(a,b=we.STANDARD,c){return[b>=we.STANDARD&&xe(a),ye(a),...ze(a,b,c),b===we.LOQUACIOUS&&Ae(a),b>=we.STANDARD&&(a.isEnabled()?void 0:$.C.BLOCK_LABEL_DISABLED),b>=we.STANDARD&&(a.isCollapsed()?$.C.BLOCK_LABEL_COLLAPSED:void 0),b>=we.LOQUACIOUS&&(a.isShadow()?$.C.BLOCK_LABEL_REPLACEABLE:void 0),b>=we.STANDARD&&Be(a),b>=we.LOQUACIOUS&&a.getAriaRoleDescription()].filter(d=>!!d).join(", ")};
95
+ De=function(a,b,c=we.STANDARD){var d=c>=we.LOQUACIOUS,e=[],f=a.fieldRow.filter(h=>h.isVisible()).flatMap((h,m,z)=>{if(h.isLabelField()){if(m<z.length-1&&z[m+1].isLabelField())return e.push(h.computeAriaLabel(d)),[];if(e.length>=1)return e.push(h.computeAriaLabel(d)),h=e.join(" "),e=[],h}return h.computeAriaLabel(d)});if(!f.length&&b){let h=a.getSourceBlock().inputList,m=h.indexOf(a);if(m>0)return De(h[m-1],b,c)}var g;a.type===$.je.VALUE&&((g=a.connection)==null?void 0:g.targetConnection)===null&&
96
+ c>=we.STANDARD&&f.push($.C.INPUT_LABEL_EMPTY);return f.filter(h=>!!h)};
97
+ ye=function(a){var b,c,d,e=(b=(d=a.outputConnection)!=null?d:a.previousConnection)==null?void 0:(c=b.targetConnection)==null?void 0:c.getParentInput();if(e&&(a=e.getSourceBlock(),!a.isInsertionMarker())){if(b=e.getAriaLabelText())a=b;else{if(!a.statementInputCount)return;b=a.inputList.find(f=>f.type===$.je.STATEMENT);if(e===b)return;a=Ee(a,e,!1);if(!a.length)return;a=a.join(", ")}return e.type===$.je.STATEMENT?(e=Array.isArray(a)?a.join(" "):a,$.C.BLOCK_LABEL_BEGIN_PREFIX.replace("%1",e)):a}};
98
+ xe=function(a){if(!a.isInFlyout&&!a.isDragging())return a.getRootBlock()===a?$.C.BLOCK_LABEL_BEGIN_STACK:void 0};
99
+ ze=function(a,b=we.STANDARD,c){if(c)return[c];c=a=a.inputList.filter(e=>e.isVisible());if(b<=we.STANDARD){let e=a.filter(f=>f.type===$.je.STATEMENT);e.length>1&&(c=a.slice(0,a.indexOf(e[0])+1))}var d=[];return c.flatMap((e,f,g)=>{var h=e.getLabel(b),m;if(m=f<g.length-1&&Fe(e)&&Ge(g[f+1])){m=g[f+1];let z;f=((z=e.connection)==null?void 0:z.type)===G.NEXT_STATEMENT||e.type===$.je.END_ROW;let E;m=!(!e.getSourceBlock().getInputsInline()||((E=m.connection)==null?void 0:E.type)===G.NEXT_STATEMENT||f)}return m?
100
+ (d.push(h),[]):Ge(e)&&d.length>0?(d.push(h),e=d.join(" "),d=[],e):h})};Ge=function(a){a=a.fieldRow.filter(b=>b.isVisible());return a.length>0&&a[0].isLabelField()};Fe=function(a){if(a.type===$.je.VALUE||a.type===$.je.STATEMENT)return!1;a=a.fieldRow.filter(b=>b.isVisible());return a.length>0&&a[a.length-1].isLabelField()};
101
+ Ee=function(a,b,c){var d=a.inputList.indexOf(b);if(d===-1)throw Error(`Input with name "${b.name}" not found on block with id "${a.id}".`);var e=b.type===$.je.STATEMENT,f=e?He(a.inputList,d):d,g=a.inputList.slice(f,d+1).filter(z=>z.isVisible()),h=g.map(z=>z.getLabel(we.TERSE,z!==b||c)),m=e&&h.slice(0,-1).some(z=>!!z);return h.map((z,E)=>{if(z)return z;z=g[E];if(!(z.type===$.je.DUMMY||z.type===$.je.END_ROW||e&&E===h.length-1&&m))return $.C.INPUT_LABEL_INDEX.replace("%1",(z.getIndex()+1).toString())}).filter(z=>
102
+ z!==void 0)};He=function(a,b){for(--b;b>=0;b--)if(a[b].type===$.je.STATEMENT)return b+1;return 0};Ae=function(a){var b=a.workspace.getToolbox();if(b){var c=void 0;for(let d of b.getToolboxItems()){if(!ve(d))continue;b=d.getContents();if(Array.isArray(b)&&b.some(e=>e.kind.toLowerCase()==="block"&&"type"in e&&e.type===a.type)){c=d;break}"getColour"in d&&typeof d.getColour==="function"&&d.getColour()===a.getColour()&&(c=d)}if(c)return $.C.BLOCK_LABEL_TOOLBOX_CATEGORY.replace("%1",c.getName())}};
103
+ Je=function(a){switch(a){case Ie.BEFORE:return $.C.ANNOUNCE_MOVE_BEFORE;case Ie.AFTER:return $.C.ANNOUNCE_MOVE_AFTER;case Ie.INSIDE:return $.C.ANNOUNCE_MOVE_INSIDE;case Ie.AROUND:return $.C.ANNOUNCE_MOVE_AROUND;default:return $.C.ANNOUNCE_MOVE_TO}};Ke=function(a,b){var c=a.getParentInput();if(!c)return b;var d=c.getAriaLabelText();if(!d){a=Ee(a.getSourceBlock(),c,!0);if(!a.length)return b;d=a.join(", ")}return b?$.C.ANNOUNCE_MOVE_OF.replace("%1",d).replace("%2",b):d};
104
+ Me=function(a,b,c,d=!1){var e=Le(a,b),f=Je(e),g=![Ie.BEFORE,Ie.AFTER].includes(e);e=g&&c(!0);c=g&&c(!1);d=d?a.getSourceBlock().getStackBlocksCountLabel():"";g=b.getSourceBlock().getAriaLabel(we.TERSE);e&&(d=Ke(a,d));c&&(g=Ke(b,g));return f.replace("%1",d).replace("%2",g)};
105
+ Le=function(a,b){switch(a.type){case G.INPUT_VALUE:case G.OUTPUT_VALUE:return Ie.TO;case G.NEXT_STATEMENT:return a===a.getSourceBlock().nextConnection?Ie.BEFORE:Ie.AROUND;case G.PREVIOUS_STATEMENT:return b===b.getSourceBlock().nextConnection?Ie.AFTER:Ie.INSIDE}return Ie.UNKNOWN};
106
+ Be=function(a){var b=a.inputList.filter(c=>c.type===$.je.STATEMENT).length;if(b>1)return $.C.BLOCK_LABEL_HAS_BRANCHES.replace("%1",b.toString());switch(a.inputList.reduce((c,d)=>{var e;return d.fieldRow.reduce((f,g)=>g.EDITABLE&&!g.isFullBlockField()?++f:f,c)+(((e=d.connection)==null?void 0:e.type)===G.INPUT_VALUE?1:0)},0)){case 0:break;case 1:return $.C.BLOCK_LABEL_HAS_INPUT;default:return $.C.BLOCK_LABEL_HAS_INPUTS}};Ne=function(a){return a*Math.PI/180};
107
+ Oe=function(a,b,c){if(c<a){let d=c;c=a;a=d}return Math.max(a,Math.min(b,c))};
108
+ Te=function(){document.querySelector(".blocklyDropDownDiv")||(Pe=document.createElement("div"),Pe.className="blocklyDropDownDiv",Pe.tabIndex=-1,Pe.id=Lb(),(rb()||document.body).appendChild(Pe),Qe=document.createElement("div"),Qe.className="blocklyDropDownContent",Pe.appendChild(Qe),Re=k(Qe,"keydown",null,Bb),Se=document.createElement("div"),Se.className="blocklyDropDownArrow",Pe.appendChild(Se),Pe.style.opacity="0",Pe.style.transition="transform 0.25s, opacity 0.25s")};
109
+ We=function(){Ue&&(Ue(!1),Ue=null);Ve()};Xe=function(){Re&&(ka(Re),Re=null);Pe.remove();Te()};Ye=function(a,b){Pe.style.backgroundColor=a;Pe.style.borderColor=b};bf=function(a,b,c,d=!0){Ze=!0;return $e(af(a),a,d,b,c)};cf=function(a){var b=a.getSvgRoot(),c=a.workspace.scale,d=a.height*c;a=a.width*c;b=ac(b);return new cc(b.y,b.y+d,b.x,b.x+a)};af=function(a){a=a.getScaledBBox();return new cc(a.top,a.bottom,a.left,a.right)};
110
+ $e=function(a,b,c,d,e){var f=a.left+(a.right-a.left)/2,g=a.bottom;a=a.top;e&&(a+=e);e=b.getSourceBlock();for(var h=e.workspace;h.options.parentWorkspace;)h=h.options.parentWorkspace;df=h.getParentSvg().parentNode;return ef(b,e.RTL,f,g,f,a,c,d)};
111
+ ef=function(a,b,c,d,e,f,g,h){$.t().registerPopoverFocusLossHandler(We);var m;(m=rb())==null||m.appendChild(Pe);ff=a;gf=h||null;Pe.style.direction=b?"rtl":"ltr";a=kb;hf=a.getRenderer().getClassName();jf=a.getTheme().getClassName();n(Pe,hf);n(Pe,jf);b=Aa(a.getFocusableElement(),p.OWNS);l(a.getFocusableElement(),p.OWNS,b?[b,Pe.id]:Pe.id);a.getFocusableElement().classList.add("blocklyShowingDropDownDiv");c=kf(c,d,e,f);g&&(Ue=$.t().takeEphemeralFocus(Pe));return c};
112
+ mf=function(a,b,c,d){a=lf(a,c.left,c.right,d.width);return{initialX:a.divX,initialY:b,finalX:a.divX,finalY:b+16,arrowX:a.arrowX,arrowY:-9,arrowAtTop:!0,arrowVisible:!0}};nf=function(a,b,c,d){a=lf(a,c.left,c.right,d.width);return{initialX:a.divX,initialY:b-d.height,finalX:a.divX,finalY:b-d.height-16,arrowX:a.arrowX,arrowY:d.height-2-8,arrowAtTop:!1,arrowVisible:!0}};lf=function(a,b,c,d){b=Oe(b,a-d/2,c-d);a=a-8-b;a=Oe(12,a,d-12-16);return{arrowX:a,divX:b}};
113
+ pf=function(a,b){return ff===a?(b?of():Ve(),!0):!1};Ve=function(){ff&&($.t().unregisterPopoverFocusLossHandler(We),Pe.style.transform="translate(0, 0)",Pe.style.opacity="0",qf=setTimeout(function(){of()},250),gf&&(gf(),gf=null))};
114
+ of=function(){if(ff){qf&&clearTimeout(qf);gf&&(gf(),gf=null);ff=null;var a=kb,b,c=(b=Aa(a.getFocusableElement(),p.OWNS))!=null?b:"";l(a.getFocusableElement(),p.OWNS,c.replace(Pe.id,""));a.getFocusableElement().classList.remove("blocklyShowingDropDownDiv");a.markFocused();Ue&&(Ue(),Ue=null);Xe()}};
115
+ kf=function(a,b,c,d){a=rf.getPositionMetrics(a,b,c,d);a.arrowVisible?(b=a.arrowX,c=a.arrowY,d=a.arrowAtTop?45:225,Se.style.display="",Se.style.transform=`translate(${b}px, ${c}px) rotate(${d}deg)`,Se.setAttribute("class","blocklyDropDownArrow")):Se.style.display="none";b=Math.floor(a.initialX);c=Math.floor(a.initialY);d=Math.floor(a.finalX);var e=Math.floor(a.finalY),f=Pe.parentElement;f&&(f=f.getBoundingClientRect(),b-=f.left+window.scrollX,d-=f.left+window.scrollX,c-=f.top+window.scrollY,e-=f.top+
116
+ window.scrollY);Pe.style.left=b+"px";Pe.style.top=c+"px";Pe.style.visibility="visible";Pe.style.opacity="1";Pe.style.transform="translate("+(d-b)+"px,"+(e-c)+"px)";return!!a.arrowAtTop};sf=function(){if(ff){var a=ff.getSourceBlock();a=Ze?af(ff):cf(a);let b=a.left+(a.right-a.left)/2;kf(b,a.bottom,b,a.top)}else Ve()};tf=function(a){return a.length?a.reduce(function(b,c){return b.length<c.length?b:c}).length:0};
117
+ uf=function(a,b){if(!a.length)return 0;if(a.length===1)return a[0].length;var c=0;b=b||tf(a);var d;for(d=0;d<b;d++){var e=a[0][d];for(var f=1;f<a.length;f++)if(e!==a[f][d])return c;e===" "&&(c=d+1)}for(e=1;e<a.length;e++)if((f=a[e][d])&&f!==" ")return c;return b};
118
+ vf=function(a,b){if(!a.length)return 0;if(a.length===1)return a[0].length;var c=0;b=b||tf(a);var d;for(d=0;d<b;d++){var e=a[0].substr(-d-1,1);for(var f=1;f<a.length;f++)if(e!==a[f].substr(-d-1,1))return c;e===" "&&(c=d+1)}for(e=1;e<a.length;e++)if((f=a[e].charAt(a[e].length-d-1))&&f!==" ")return c;return b};
119
+ $.yf=function(a,b){a=a.split("\n");for(let z=0;z<a.length;z++){var c=z;a:{var d=void 0;let E;var e=a[z];var f=b;if(e.length<=f){f=e;break a}let J=e.trim().split(/\s+/);for(d=0;d<J.length;d++)J[d].length>f&&(f=J[d].length);var g=-Infinity;let T=1;do{E=g;d=e;var h=[];g=J.length/T;e=1;for(var m=0;m<J.length-1;m++)e<(m+1.5)/g?(e++,h[m]=!0):h[m]=!1;h=wf(J,h,f);g=xf(J,h,f);e=J;m=[];for(let ra=0;ra<e.length;ra++)m.push(e[ra]),h[ra]!==void 0&&m.push(h[ra]?"\n":" ");e=m.join("");T++}while(g>E);f=d}a[c]=f}return a.join("\n")};
120
+ xf=function(a,b,c){var d=[0],e=[];for(var f=0;f<a.length;f++)d[d.length-1]+=a[f].length,b[f]===!0?(d.push(0),e.push(a[f].charAt(a[f].length-1))):b[f]===!1&&d[d.length-1]++;a=Math.max(...d);b=0;for(f=0;f<d.length;f++)b-=Math.pow(Math.abs(c-d[f]),1.5)*2,b-=Math.pow(a-d[f],1.5),".?!".includes(e[f])?b+=c/3:",;)]}".includes(e[f])&&(b+=c/4);d.length>1&&d[d.length-1]<=d[d.length-2]&&(b+=.5);return b};
121
+ wf=function(a,b,c){var d=xf(a,b,c);for(let f=0;f<b.length-1;f++){if(b[f]===b[f+1])continue;let g=[].concat(b);g[f]=!g[f];g[f+1]=!g[f+1];let h=xf(a,g,c);if(h>d){d=h;var e=g}}return e?wf(a,e,c):b};$.zf=function(a){return/^\s*-?\d+(\.\d+)?\s*$/.test(a)};Bf=function(a){if(a=Af(a)){for(a=a.tooltip;typeof a==="function";)a=a();if(typeof a!=="string")throw Error("Tooltip function must return a string.");return a}return""};
122
+ Af=function(a){for(;a&&a.tooltip;){if(typeof a.tooltip==="string"||typeof a.tooltip==="function")return a;a=a.tooltip}return null};Df=function(){document.querySelector(".blocklyTooltipDiv")||(Cf=document.createElement("div"),Cf.className="blocklyTooltipDiv",(rb()||document.body).appendChild(Cf))};Hf=function(a){a.mouseOverWrapper_=ja(a,"pointerover",null,Ef);a.mouseOutWrapper_=ja(a,"pointerout",null,Ff);a.addEventListener("pointermove",Gf,!1)};
123
+ If=function(a){a&&(ka(a.mouseOverWrapper_),ka(a.mouseOutWrapper_),a.removeEventListener("pointermove",Gf))};Ef=function(a){Jf||(a=Af(a.currentTarget),Kf!==a&&(Lf(),Mf=null,Kf=a),clearTimeout(Nf))};Ff=function(){Jf||(Nf=setTimeout(function(){Mf=Kf=null;Lf()},1),clearTimeout(Of),Of=0)};
124
+ Gf=function(a){if(Kf&&Kf.tooltip&&!Jf)if(Pf){let b=Qf-a.pageX;a=Rf-a.pageY;Math.sqrt(b*b+a*a)>10&&Lf()}else Mf!==Kf&&(clearTimeout(Of),Qf=a.pageX,Rf=a.pageY,Of=setTimeout(()=>{if(this instanceof Element)for(let c of gb()){if(!c.rendered)continue;let d;if((d=c.getInjectionDiv())==null?0:d.contains(this)){var b=c;break}}Sf(b)},750))};Tf=function(){Mf=Kf=null;Lf()};Lf=function(){Pf&&(Pf=!1,Cf&&(Cf.style.display="none"));Of&&(clearTimeout(Of),Of=0)};
125
+ Uf=function(a,b){Kf!==a&&(Lf(),Mf=null,Kf=a);Kf&&Kf.tooltip&&!Jf&&(a=a.getFocusableElement().getBoundingClientRect(),Qf=Kf.RTL?a.x+a.width:a.x,Rf=a.y+a.height,Sf(b))};Vf=function(){Lf();Jf=!0};
126
+ Sf=function(a){if(!Jf&&(Mf=Kf,Cf)){var b;(b=rb(a))==null||b.appendChild(Cf);Cf.textContent="";if(Cf&&Kf)if(typeof Wf==="function")Wf(Cf,Kf);else for(a=Bf(Kf),a=$.yf(a,50),a=a.split("\n"),b=0;b<a.length;b++){var c=document.createElement("div");c.appendChild(document.createTextNode(a[b]));Cf.appendChild(c)}a=Kf.RTL;Cf.style.direction=a?"rtl":"ltr";Cf.style.display="block";Pf=!0;b=document.documentElement.clientWidth;c=document.documentElement.clientHeight;var d=Qf;d=a?d-(0+Cf.offsetWidth):d+0;var e=
127
+ Rf+10,f,g=(f=Cf)==null?void 0:f.parentElement;g&&(f=g.getBoundingClientRect(),d-=f.left+window.scrollX,e-=f.top+window.scrollY);e+Cf.offsetHeight>c+window.scrollY&&(e-=Cf.offsetHeight+20);a?d=Math.max(5-window.scrollX,d):d+Cf.offsetWidth>b+window.scrollX-10&&(d=b-Cf.offsetWidth-10);var {x:h,y:m}={x:d,y:e};Cf.style.left=h+"px";Cf.style.top=m+"px"}};
128
+ Zf=function(a){a=`${a}`.toLowerCase().trim();var b=Xf[a];if(b)return b;b=a.substring(0,2)==="0x"?"#"+a.substring(2):a;b=b[0]==="#"?b:"#"+b;if(/^#[0-9a-f]{6}$/.test(b))return b;if(/^#[0-9a-f]{3}$/.test(b))return["#",b[1],b[1],b[2],b[2],b[3],b[3]].join("");var c=a.match(/^(?:rgb)?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/);return c&&(a=Number(c[1]),b=Number(c[2]),c=Number(c[3]),a>=0&&a<256&&b>=0&&b<256&&c>=0&&c<256)?Yf(a,b,c):null};
129
+ Yf=function(a,b,c){b=a<<16|b<<8|c;return a<16?"#"+(16777216|b).toString(16).substr(1):"#"+b.toString(16)};$f=function(a){a=Zf(a);if(!a)return[0,0,0];a=parseInt(a.substr(1),16);return[a>>16,a>>8&255,a&255]};
130
+ ag=function(a,b,c){var d=0,e=0,f=0;if(b===0)f=e=d=c;else{let g=Math.floor(a/60),h=a/60-g;a=c*(1-b);let m=c*(1-b*h);b=c*(1-b*(1-h));switch(g){case 1:d=m;e=c;f=a;break;case 2:d=a;e=c;f=b;break;case 3:d=a;e=m;f=c;break;case 4:d=b;e=a;f=c;break;case 5:d=c;e=a;f=m;break;case 6:case 0:d=c,e=b,f=a}}return Yf(Math.floor(d),Math.floor(e),Math.floor(f))};
131
+ bg=function(a,b,c){a=Zf(a);if(!a)return null;b=Zf(b);if(!b)return null;a=$f(a);b=$f(b);return Yf(Math.round(b[0]+c*(a[0]-b[0])),Math.round(b[1]+c*(a[1]-b[1])),Math.round(b[2]+c*(a[2]-b[2])))};eg=function(a){return ag(a,cg,dg*255)};
132
+ fg=function(a,b,c){var d=[],e=a.split("");e.push("");var f=0;a=[];var g=null;for(let z=0;z<e.length;z++){var h=e[z];if(f===0)if(h==="%")(f=a.join(""))&&d.push(f),a.length=0,f=1;else if(c&&h==="\n"){let E=a.join("");E&&d.push(E);a.length=0;d.push(h)}else a.push(h);else if(f===1)h==="%"?(a.push(h),f=0):b&&"0"<=h&&h<="9"?(f=2,g=h,(h=a.join(""))&&d.push(h),a.length=0):h==="{"?f=3:(a.push("%",h),f=0);else if(f===2)if("0"<=h&&h<="9")g+=h;else{var m=void 0;d.push(parseInt((m=g)!=null?m:"",10));z--;f=0}else f===
133
+ 3&&(h===""?(a.splice(0,0,"%{"),z--,f=0):h!=="}"?a.push(h):(f=a.join(""),/[A-Z]\w*/i.test(f)?(h=f.toUpperCase(),(h=h.startsWith("BKY_")?h.substring(4):null)&&h in $.C?(f=$.C[h],typeof f==="string"?Array.prototype.push.apply(d,fg(f,b,c)):b?d.push(`${f}`):d.push(f)):d.push("%{"+f+"}")):d.push("%{"+f+"}"),f=a.length=0))}(b=a.join(""))&&d.push(b);m=[];a.length=0;for(e=0;e<d.length;e++)typeof d[e]!=="string"||c&&d[e]==="\n"?((b=a.join(""))&&m.push(b),a.length=0,m.push(d[e])):a.push(d[e]);(b=a.join(""))&&
134
+ m.push(b);a.length=0;return m};gg=function(a){return fg(a,!0,!0)};hg=function(a){if(typeof a!=="string")return a;a=fg(a,!1,!1);return a.length?String(a[0]):""};ig=function(a){var b=typeof a==="string"?hg(a):a,c=Number(b);if(!isNaN(c)&&0<=c&&c<=360)return{hue:c,hex:ag(c,cg,dg*255)};if(c=Zf(b))return{hue:null,hex:c};c='Invalid colour: "'+b+'"';a!==b&&(c+=' (from "'+a+'")');throw Error(c);};lg=function(){jg&&(jg(!1),jg=null);kg()};
135
+ ng=function(){var a=rb()||document.body,b=document.querySelector("div.blocklyWidgetDiv");b?mg=b:(mg=document.createElement("div"),mg.id=Lb(),mg.className="blocklyWidgetDiv",mg.tabIndex=-1);k(mg,"keydown",null,Bb);a.appendChild(mg)};
136
+ ug=function(a,b,c,d,e=!0){kg();og=a;pg=c;if(c=mg){qg=d!=null?d:kb;var f=Aa(qg.getFocusableElement(),p.OWNS);l(qg.getFocusableElement(),p.OWNS,f?[f,c.id]:c.id);qg.getFocusableElement().classList.add("blocklyShowingWidgetDiv");var g;(g=rb())==null||g.appendChild(c);c.style.direction=b?"rtl":"ltr";c.style.display="block";!d&&a instanceof rg&&a.getSourceBlock();sg=qg.getRenderer().getClassName();tg=qg.getTheme().getClassName();sg&&n(c,sg);tg&&n(c,tg);e&&(jg=$.t().takeEphemeralFocus(c));$.t().registerPopoverFocusLossHandler(lg)}};
137
+ kg=function(){if(og){og=null;var a=mg;if(a){$.t().unregisterPopoverFocusLossHandler(lg);a.style.display="none";a.style.left="";a.style.top="";pg&&(pg(),pg=null);a.textContent="";sg&&(Ma(a,sg),sg="");tg&&(Ma(a,tg),tg="");var b;(b=qg)==null||b.markFocused();jg&&(jg(),jg=null);if(qg&&mg){var c;a=(c=Aa(qg.getFocusableElement(),p.OWNS))!=null?c:"";l(qg.getFocusableElement(),p.OWNS,a.replace(mg.id,""));qg.getFocusableElement().classList.remove("blocklyShowingWidgetDiv")}}}};vg=function(a){og===a&&kg()};
138
+ wg=function(a){for(var b=qg===null,c=a;!b&&c;){if(c===a){b=!0;break}c=a.options.parentWorkspace}b&&kg()};xg=function(a,b,c){if(mg){var d=mg.parentElement;d&&(d=d.getBoundingClientRect(),a-=d.left+window.scrollX,b-=d.top+window.scrollY);mg.style.left=a+"px";mg.style.top=b+"px";mg.style.height=c+"px"}};
139
+ yg=function(a,b,c,d){var e=b.bottom+c.height>=a.bottom?b.top-c.height:b.bottom;a=d?Math.min(Math.max(b.right-c.width,a.left),a.right-c.width):Math.max(Math.min(b.left,a.right-c.width),a.left);e<0?xg(a,0,c.height+e):xg(a,e,c.height)};zg=function(){var a;(a=og)!=null&&a.repositionForWindowResize&&og.repositionForWindowResize()||kg()};
140
+ Hg=function(a,b,c,d,e){ug(Ag,c,Bg,d);if(b.length){e||(a instanceof PointerEvent?e=new D(a.clientX,a.clientY):(console.warn("Context menu opened with keyboard but no location given"),e=new D(0,0)));var f=Cg(b,c,a,e);Dg=f;Eg(f,c,e);setTimeout(function(){f.focus()},1);Fg=null}else Gg()};
141
+ Cg=function(a,b,c,d){var e=new Ig;e.setRole(Ka.MENU);for(let f=0;f<a.length;f++){let g=a[f];if(g.separator){e.addChild(new Jg);continue}let h=new Kg(Lg(g));h.setRightToLeft(b);h.setRole(Ka.MENUITEM);e.addChild(h);h.setEnabled(g.enabled);if(g.enabled)h.onAction(function(m,z){Gg();requestAnimationFrame(()=>{setTimeout(()=>{g.callback(g.scope,c,z,d)},0)})},{})}return e};
142
+ Eg=function(a,b,c){var d=mc();c=new cc(c.y+d.top,c.y+d.top,c.x+d.left,c.x+d.left);var e=mg;if(!e)throw Error("Attempting to create a context menu when widget div is null");e=a.render(e);n(e,"blocklyContextMenu");k(e,"contextmenu",null,Mg);a.focus();e=a.getSize();b&&(c.left+=e.width,c.right+=e.width,d.left+=e.width,d.right+=e.width);yg(d,c,e,b);a.focus()};Mg=function(a){a.preventDefault();a.stopPropagation()};Gg=function(){vg(Ag);Fg=null;var a;(a=Dg)==null||a.dispose();Dg=null};
143
+ Bg=function(){Dg&&(Dg.dispose(),Dg=null)};$.Pg=function(a,b){return()=>{$.Ub++;try{var c=b instanceof Element?Ng(b,a.workspace):de(b,a.workspace);let d=a.getRelativeToSurfaceXY();d.x=a.RTL?d.x-$.Og.snapRadius:d.x+$.Og.snapRadius;d.y+=$.Og.snapRadius*2;c.moveBy(d.x,d.y)}finally{$.Ub--}Vb()&&!c.isShadow()&&w(new (u(v.BLOCK_CREATE))(c));$.t().focusNode(c);return c}};
144
+ Lg=function(a){var b=a.text;if(b&&!(b instanceof HTMLElement)){let c=document.createElement("div");c.className="blocklyShortcutContainer";let d=document.createElement("span");d.textContent=b;b=document.createElement("span");b.className="blocklyShortcut";a="id"in a&&a.associatedKeyboardShortcut?re(a.associatedKeyboardShortcut):"";b.textContent=` ${a}`;c.appendChild(d);c.appendChild(b);return c}return a.text};
145
+ Qg=function(a,b){b=oa(b,a.getParentSvg(),a.getInverseScreenCTM());b.x/=a.scale;b.y/=a.scale;return b};Sg=function(a,b,c){b=Qg(a,b);Rg.set(a,D.difference(c,b))};Tg=function(a,b){b=Qg(a,b);a=Rg.get(a);if(!a)throw Error("Drag not initialized");return D.sum(a,b)};
146
+ Ug=function(a,b=!1){var c=$.rc("comment");b||c.setAttribute("id",a.id);b=a.workspace;var d=a.getRelativeToSurfaceXY().clone();d.x=b.RTL?b.getWidth()-d.x:d.x;c.setAttribute("x",`${d.x}`);c.setAttribute("y",`${d.y}`);c.setAttribute("w",`${a.getSize().width}`);c.setAttribute("h",`${a.getSize().height}`);a.getText()&&(c.textContent=a.getText());a.isCollapsed()&&c.setAttribute("collapsed","true");a.isOwnEditable()||c.setAttribute("editable","false");a.isOwnMovable()||c.setAttribute("movable","false");
147
+ a.isOwnDeletable()||c.setAttribute("deletable","false");return c};Vg=function(a){var b=$.rc("variables");for(let c=0;c<a.length;c++){let d=a[c],e=$.rc("variable");e.appendChild($.sc(d.getName()));d.getType()&&e.setAttribute("type",d.getType());e.id=d.getId();b.appendChild(e)}return b};
148
+ Yg=function(a,b){if(a.isInsertionMarker()&&(a=a.getChildren(!1)[0],!a))return new DocumentFragment;var c=0;a.workspace.RTL&&(c=a.workspace.getWidth());b=Wg(a,b);if(b.nodeType===Xg.ELEMENT_NODE){let d=a.getRelativeToSurfaceXY();b.setAttribute("x",String(Math.round(a.workspace.RTL?c-d.x:d.x)));b.setAttribute("y",String(Math.round(d.y)))}return b};
149
+ Wg=function(a,b){if(a.isInsertionMarker())return(b=a.getChildren(!1)[0])?Wg(b):new DocumentFragment;var c=$.rc(a.isShadow()?"shadow":"block");c.setAttribute("type",a.type);b||(c.id=a.id);if(a.mutationToDom){var d=a.mutationToDom();d&&(d.hasChildNodes()||d.hasAttributes())&&c.appendChild(d)}for(var e of a.getFields())e.isSerializable()?(d=$.rc("field"),d.setAttribute("name",e.name||""),d=e.toXml(d)):d=null,d&&c.appendChild(d);if(e=a.getCommentText()){var f=a.getIcon(Zg.COMMENT);d=f.getBubbleSize();
150
+ var g=f.bubbleIsVisible();f=f.getBubbleLocation();var h=$.rc("comment");h.appendChild($.sc(e));h.setAttribute("pinned",`${g}`);h.setAttribute("h",`${d.height}`);h.setAttribute("w",`${d.width}`);f&&(h.setAttribute("x",`${a.workspace.RTL?a.workspace.getWidth()-(f.x+d.width):f.x}`),h.setAttribute("y",`${f.y}`));c.appendChild(h)}a.data&&(e=$.rc("data"),e.appendChild($.sc(a.data)),c.appendChild(e));for(e=0;e<a.inputList.length;e++){d=a.inputList[e];var m=void 0;g=!0;d.type!==$.je.DUMMY&&d.type!==$.je.END_ROW&&
151
+ (f=d.connection.targetBlock(),d.type===$.je.VALUE?m=$.rc("value"):d.type===$.je.STATEMENT&&(m=$.rc("statement")),h=d.connection.getShadowDom(),!h||f&&f.isShadow()||m.appendChild($g(h,b)),f&&(f=Wg(f,b),f.nodeType===Xg.ELEMENT_NODE&&(m.appendChild(f),g=!1)),m.setAttribute("name",d.name),g||c.appendChild(m))}a.inputsInline!==void 0&&a.inputsInline!==a.inputsInlineDefault&&c.setAttribute("inline",String(a.inputsInline));a.isCollapsed()&&c.setAttribute("collapsed","true");a.isEnabled()||c.setAttribute("disabled-reasons",
152
+ Array.from(a.getDisabledReasons()).map(encodeURIComponent).join(","));a.isOwnDeletable()||c.setAttribute("deletable","false");a.isOwnMovable()||c.setAttribute("movable","false");a.isOwnEditable()||c.setAttribute("editable","false");m=a.getNextBlock();if(m&&(e=Wg(m,b),e.nodeType===Xg.ELEMENT_NODE)){var z=$.rc("next");z.appendChild(e);c.appendChild(z)}a=a.nextConnection&&a.nextConnection.getShadowDom();!a||m&&m.isShadow()||z.appendChild($g(a,b));return c};
153
+ $g=function(a,b){for(var c=a=a.cloneNode(!0),d;c;)if(b&&c.nodeName==="shadow"&&c.removeAttribute("id"),c.firstChild)c=c.firstChild;else{for(;c&&!c.nextSibling;){d=c;c=c.parentNode;let e;d.nodeType===Xg.TEXT_NODE&&d.data.trim()===""&&((e=c)==null?void 0:e.firstChild)!==d&&Oa(d)}c&&(d=c,c=c.nextSibling,d.nodeType===Xg.TEXT_NODE&&d.data.trim()===""&&Oa(d))}return a};ae=function(a){return xc(a).replace(/<(\w+)([^<]*)\/>/g,"<$1$2></$1>")};
154
+ $.ch=function(a,b){var c=0;b.RTL&&(c=b.getWidth());var d=[];Ta();var e=$.gd;e||$.B(!0);b.setResizesEnabled&&b.setResizesEnabled(!1);var f=!0;try{for(let g=0,h;h=a.childNodes[g];g++){let m=h.nodeName.toLowerCase(),z=h;if(m==="block"||m==="shadow"&&!$.Qc){let E=Ng(z,b);d.push(E.id);let J,T=parseInt((J=z.getAttribute("x"))!=null?J:"10",10),ra,jb=parseInt((ra=z.getAttribute("y"))!=null?ra:"10",10);isNaN(T)||isNaN(jb)||E.moveBy(b.RTL?c-T:T,jb,["create"]);f=!1}else{if(m==="shadow")throw TypeError("Shadow block cannot be a top-level block.");
155
+ if(m==="comment")ah(z,b);else if(m==="variables"){if(f)bh(z,b);else throw Error("'variables' tag must exist once before block and shadow tag elements in the workspace XML, but it was found in another location.");f=!1}}}}finally{$.B(e),b.setResizesEnabled&&b.setResizesEnabled(!0),b.rendered&&dd(),Ua()}w(new (u(v.FINISHED_LOADING))(b));return d};
156
+ ah=function(a,b){var c,d=(c=a.getAttribute("id"))!=null?c:void 0;c=b.rendered?new dh(b,d):new eh(b,d);var e;c.setText((e=a.textContent)!=null?e:"");var f;e=parseInt((f=a.getAttribute("x"))!=null?f:"",10);var g;f=parseInt((g=a.getAttribute("y"))!=null?g:"",10);isNaN(e)||isNaN(f)||(e=b.RTL?b.getWidth()-e:e,c.moveTo(new D(e,f)));var h;b=parseInt((h=a.getAttribute("w"))!=null?h:"",10);var m;h=parseInt((m=a.getAttribute("h"))!=null?m:"",10);isNaN(b)||isNaN(h)||c.setSize(new hc(b,h));a.getAttribute("collapsed")===
157
+ "true"&&c.setCollapsed(!0);a.getAttribute("editable")==="false"&&c.setEditable(!1);a.getAttribute("movable")==="false"&&c.setMovable(!1);a.getAttribute("deletable")==="false"&&c.setDeletable(!1);return c};$.fh=function(a,b){a=Ng(a,b);b.rendered&&dd();return a};
158
+ Ng=function(a,b){$.Ub++;var c=b.getVariableMap().getAllVariables();try{var d=gh(a,b);if(b.rendered){let e=d,f=d.getDescendants(!1);e.setConnectionTracking(!1);for(let g=f.length-1;g>=0;g--)f[g].initSvg();for(let g=f.length-1;g>=0;g--)f[g].queueRender();setTimeout(function(){e.disposed||e.setConnectionTracking(!0)},1);b.resizeContents()}else{let e=d.getDescendants(!1);for(let f=e.length-1;f>=0;f--)e[f].initModel()}}finally{$.Ub--}if(Vb()){a=Xd(b,c);for(b=0;b<a.length;b++)c=a[b],w(new (u(v.VAR_CREATE))(c));
159
+ w(new (u(v.BLOCK_CREATE))(d))}return d};bh=function(a,b){for(let d=0;d<a.children.length;d++){var c=a.children[d];let e=c.getAttribute("type"),f=c.getAttribute("id");c=c.textContent;if(!c)break;b.getVariableMap().createVariable(c,e!=null?e:void 0,f)}};
160
+ hh=function(a,b){for(let c=0;c<a.length;c++){let d=a[c],e=d.textContent,f=d.getAttribute("pinned")==="true",g,h=parseInt((g=d.getAttribute("w"))!=null?g:"50",10),m,z=parseInt((m=d.getAttribute("h"))!=null?m:"50",10),E,J=parseInt((E=d.getAttribute("x"))!=null?E:"",10),T,ra=parseInt((T=d.getAttribute("y"))!=null?T:"",10);b.setCommentText(e);let jb=b.getIcon(Zg.COMMENT);isNaN(h)||isNaN(z)||jb.setBubbleSize(new hc(h,z));jb.setBubbleVisible(f);setTimeout(()=>{isNaN(J)||isNaN(ra)||(J=b.workspace.RTL?b.workspace.getWidth()-
161
+ (J+h):J,jb.setBubbleLocation(new D(J,ra)));jb.setBubbleVisible(f)},1)}};ih=function(a){var b=null,c=null;for(let d=0;d<a.childNodes.length;d++){let e=a.childNodes[d];e.nodeType===Xg.ELEMENT_NODE&&(e.nodeName.toLowerCase()==="block"?b=e:e.nodeName.toLowerCase()==="shadow"&&(c=e))}return{childBlockElement:b,childShadowElement:c}};
162
+ gh=function(a,b,c,d){var e,f=a.getAttribute("type");if(!f)throw TypeError("Block type unspecified: "+a.outerHTML);var g=(e=a.getAttribute("id"))!=null?e:void 0;e=b.newBlock(f,g);var h=[],m=[],z=[],E=[],J=[];g=[];for(var T=0;T<a.children.length;T++){var ra=a.children[T];if(ra.nodeType!==Xg.TEXT_NODE)switch(ra.nodeName.toLowerCase()){case "mutation":h.push(ra);break;case "comment":m.push(ra);break;case "data":z.push(ra);break;case "title":case "field":E.push(ra);break;case "value":case "statement":J.push(ra);
163
+ break;case "next":g.push(ra);break;default:console.warn("Ignoring unknown tag: "+ra.nodeName)}}T=!1;for(ra=0;ra<h.length;ra++){let Xi=h[ra];e.domToMutation&&(e.domToMutation(Xi),e.initSvg&&(T=!0))}h=T;hh(m,e);m=z;for(z=0;z<m.length;z++)e.data=m[z].textContent;if(c){if(d)if(e.previousConnection)d=e.previousConnection;else throw TypeError("Next block does not have previous statement.");else if(e.outputConnection)d=e.outputConnection;else if(e.previousConnection)d=e.previousConnection;else throw TypeError("Child block does not have output or previous statement.");
164
+ if(!c.connect(d))throw a=e.workspace.connectionChecker,TypeError(a.getErrorMessage(a.canConnectWithReason(d,c,!1),d,c));}c=E;for(E=0;E<c.length;E++)m=c[E],(z=m.getAttribute("name"))?(d=e,(T=d.getField(z))?T.fromXml(m):console.warn("Ignoring non-existent field "+z+" in block "+d.type)):console.warn(`Ignoring unnamed field in block ${e.type}`);for(c=0;c<J.length;c++){E=J[c];d=(m=E.getAttribute("name"))?e.getInput(m):null;if(!d){console.warn("Ignoring non-existent input "+m+" in block "+f);break}E=ih(E);
165
+ if(E.childBlockElement){if(!d.connection)throw TypeError("Input connection does not exist.");gh(E.childBlockElement,b,d.connection,!1)}if(E.childShadowElement){var jb=void 0;(jb=d.connection)==null||jb.setShadowDom(E.childShadowElement)}}f=g;for(jb=0;jb<f.length;jb++){g=ih(f[jb]);if(g.childBlockElement){if(!e.nextConnection)throw TypeError("Next statement does not exist.");if(e.nextConnection.isConnected())throw TypeError("Next statement is already connected.");gh(g.childBlockElement,b,e.nextConnection,
166
+ !0)}g.childShadowElement&&e.nextConnection&&e.nextConnection.setShadowDom(g.childShadowElement)}h&&e.initSvg();(b=a.getAttribute("inline"))&&e.setInputsInline(b==="true");(b=a.getAttribute("disabled"))&&e.setDisabledReason(b==="true"||b==="disabled","MANUALLY_DISABLED");b=a.getAttribute("disabled-reasons");if(b!==null)for(var pb of b.split(","))e.setDisabledReason(!0,decodeURIComponent(pb));(pb=a.getAttribute("deletable"))&&e.setDeletable(pb==="true");(pb=a.getAttribute("movable"))&&e.setMovable(pb===
167
+ "true");(pb=a.getAttribute("editable"))&&e.setEditable(pb==="true");(pb=a.getAttribute("collapsed"))&&e.setCollapsed(pb==="true");if(a.nodeName.toLowerCase()==="shadow"){a=e.getChildren(!1);for(pb=0;pb<a.length;pb++)if(!a[pb].isShadow())throw TypeError("Shadow block not allowed non-shadow child.");e.setShadow(!0)}return e};jh=function(a,b){A(y.FIELD,a,b,!0)};$.lh=function(a){return kh.fromJsonInternal(a)};
168
+ mh=function(a){return a&&typeof a==="object"&&"src"in a&&typeof a.src==="string"&&"alt"in a&&typeof a.alt==="string"&&"width"in a&&typeof a.width==="number"&&"height"in a&&typeof a.height==="number"};$.oh=function(a,b){if(typeof a!=="string"||a.trim()==="")throw Error('Error: Invalid extension name "'+a+'"');if(nh[a])throw Error('Error: Extension "'+a+'" is already registered.');if(typeof b!=="function")throw Error('Error: Extension "'+a+'" must be a function');nh[a]=b};
169
+ $.ph=function(a,b){if(!b||typeof b!=="object")throw Error('Error: Mixin "'+a+'" must be a object');$.oh(a,function(){this.mixin(b)})};$.th=function(a,b,c,d){var e='Error when registering mutator "'+a+'": ';qh(e,b);var f=rh(b.compose,b.decompose,e+" compose/decompose");if(c&&typeof c!=="function")throw Error(e+'Extension "'+a+'" is not a function');$.oh(a,function(){f&&this.setMutator(new $.sh(d||[],this));this.mixin(b);c&&c.apply(this)})};uh=function(a){return!!nh[a]};
170
+ wh=function(a,b,c){var d=nh[a];if(typeof d!=="function")throw Error('Error: Extension "'+a+'" not found.');if(c){if(vh(b).length)throw Error('Error: tried to apply mutation "'+a+'" to a block that already has mutator functions. Block id: '+b.id);}else var e=vh(b);d.apply(b);if(c)qh('Error after applying mutator "'+a+'": ',b);else{a:if(c=e,b=vh(b),b.length!==c.length)b=!1;else{for(d=0;d<b.length;d++)if(c[d]!==b[d]){b=!1;break a}b=!0}if(!b)throw Error('Error when applying extension "'+a+'": mutation properties changed when applying a non-mutator extension.');
171
+ }};rh=function(a,b,c){if(a&&b){if(typeof a!=="function"||typeof b!=="function")throw Error(c+" must be a function");return!0}if(!a&&!b)return!1;throw Error(c+"Must have both or neither functions");};qh=function(a,b){var c=rh(b.mutationToDom,b.domToMutation,a+" mutationToDom/domToMutation"),d=rh(b.saveExtraState,b.loadExtraState,a+" saveExtraState/loadExtraState");if(!c&&!d)throw Error(a+"Mutations must contain either XML hooks, or JSON hooks, or both");rh(b.compose,b.decompose,a+" compose/decompose")};
172
+ vh=function(a){var b=[];a.domToMutation!==void 0&&b.push(a.domToMutation);a.mutationToDom!==void 0&&b.push(a.mutationToDom);a.saveExtraState!==void 0&&b.push(a.saveExtraState);a.loadExtraState!==void 0&&b.push(a.loadExtraState);a.compose!==void 0&&b.push(a.compose);a.decompose!==void 0&&b.push(a.decompose);return b};$.yh=function(a,b){var c=[];return function(){c.includes(this.type)||(xh(this,a,b),c.push(this.type));this.setTooltip(function(){var d=String(this.getFieldValue(a));return hg(b[d])}.bind(this))}};
173
+ xh=function(a,b,c){var d=a.getField(b);if(d instanceof zh&&!d.isOptionListDynamic()){d=d.getOptions();for(let e of d){if(e===zh.SEPARATOR)continue;[,d]=e;c[d]===void 0&&console.warn(`No tooltip mapping for value ${d} of field ${b} of block type ${a.type}.`)}}};$.Ah=function(a,b){return function(){this.setTooltip(function(){var c=this.getField(b);return hg(a).replace("%1",c?c.getText():"")}.bind(this))}};H=function(a,b){return" "+a+","+b+" "};Bh=function(a,b){return" "+a+b.join("")};
174
+ Ch=function(a,b){return" M "+a+","+b+" "};Dh=function(a,b){return" m "+a+","+b+" "};Eh=function(a,b){return" l "+a+","+b+" "};Fh=function(a){return" l"+a.join("")};I=function(a,b){return" "+a+" "+b+" "};Gh=function(a,b,c,d){return a+" "+c+" "+c+" "+b+d};Hh=function(a,b){var c=null;b=b.outputConnection;var d=b==null?void 0:b.getConnectionChecker();for(let e=0,f;f=a.inputList[e];e++){let g=f.connection;if(g&&(d==null?0:d.canConnect(b,g,!1))){if(c)return null;c=g}}return c};
175
+ Ih=function(a){return $a(a)&&typeof a.getType==="function"&&typeof a.initView==="function"&&typeof a.dispose==="function"&&typeof a.getWeight==="function"&&typeof a.getSize==="function"&&typeof a.applyColour==="function"&&typeof a.hideForInsertionMarker==="function"&&typeof a.updateEditable==="function"&&typeof a.updateCollapsed==="function"&&typeof a.isShownWhenCollapsed==="function"&&typeof a.setOffsetInBlock==="function"&&typeof a.onLocationChange==="function"&&typeof a.onClick==="function"};
176
+ Kh=function(a){if(!(a.getDescendants(!1).length>100)){var b=a.workspace,c=a.getSvgRoot();b.getAudioManager().play("delete");var d=a.getRelativeToSurfaceXY(),e=c.cloneNode(!0);e.setAttribute("transform","translate("+d.x+","+d.y+")");var f;(f=b.getLayerManager())==null||f.appendToAnimationLayer({getSvgRoot:()=>e});Jh(e,{x:d.x,y:d.y,width:a.width,height:a.height},b.RTL,new Date)}};
177
+ Jh=function(a,b,c,d){var e=((new Date).getTime()-d.getTime())/150;e>1?Oa(a):(a.setAttribute("transform","translate("+(b.x+(c?-1:1)*b.width/2*e)+","+(b.y+b.height/2*e)+") scale("+(1-e)+")"),setTimeout(Jh,10,a,b,c,d))};
178
+ Lh=function(a){var b=a.workspace,c=b.scale;b.getAudioManager().play("click");if(!(c<1)){var d=b.getSvgXY(a.getSvgRoot());a.outputConnection?(d.x+=(a.RTL?3:-3)*c,d.y+=13*c):a.previousConnection&&(d.x+=(a.RTL?-23:23)*c,d.y+=3*c);var e=r(q.CIRCLE,{cx:d.x,cy:d.y,r:0,fill:"none",stroke:"#888","stroke-width":10},b.getParentSvg());a=r(q.ANIMATE,{id:"animationCircle",begin:"indefinite",attributeName:"r",dur:"150ms",from:0,to:25*c},e);b=r(q.ANIMATE,{id:"animationOpacity",begin:"indefinite",attributeName:"opacity",
179
+ dur:"150ms",from:1,to:0},e);a.beginElement();b.beginElement();setTimeout(()=>void Oa(e),150)}};Ph=function(a){Mh();a.workspace.getAudioManager().play("disconnect");if(!(a.workspace.scale<1)){var b=a.getHeightWidth().height;b=Math.atan(10/b)/Math.PI*180;a.RTL||(b*=-1);Nh=a;Oh(a,b,new Date,0)}};
180
+ Oh=function(a,b,c,d){var e=[.66,1,.66,0,-.66,-1,-.66,0],f="";c.getTime()+200>(new Date).getTime()&&(f=`skewX(${Math.round(e[d%e.length]*b)})`,Qh=setTimeout(Oh,15,a,b,c,d+1));a.getSvgRoot().setAttribute("transform",`${a.getTranslation()} ${f}`)};Mh=function(){Nh&&(Qh&&(clearTimeout(Qh),Qh=null),Nh.getSvgRoot().setAttribute("transform",Nh.getTranslation()),Nh=null)};
181
+ Th=function(a,b){a.workspace.RTL&&(b.x=a.workspace.getWidth()-b.x);for(var c=a.workspace,d=$.Og.snapRadius,e=D.difference(b,a.getRelativeToSurfaceXY()),f=new D(0,0),g=c.getAllBlocks(!1).filter(h=>h.id!=a.id).map(h=>h.getRelativeToSurfaceXY());Rh(D.sum(b,f),g)||Sh(a,D.sum(e,f),d);)c.RTL?f.translate(-d,d*2):f.translate(d,d*2);a.moveTo(D.sum(b,f))};Rh=function(a,b){return b.some(c=>Math.abs(c.x-a.x)<=1&&Math.abs(c.y-a.y)<=1)};Sh=function(a,b,c){return a.getConnections_(!1).some(d=>!!d.closest(c,b).connection)};
182
+ Uh=function(a,b,c){var d=c.getBoundingRectangle(),e=d.right-d.left,f=Oe(b.top,d.top,b.top+b.height-(d.bottom-d.top))-d.top,g=b.left;b=b.left+b.width-e;a.RTL?g=Math.min(b,g):b=Math.max(g,b);return(a=Oe(g,d.left,b)-d.left)||f?(c.moveBy(a,f,["inbounds"]),!0):!1};
183
+ Xh=function(a){return b=>{var c=a.getMetricsManager();if(c.hasFixedEdges()&&!a.isDragging()){var d;if(Vh.includes((d=b.type)!=null?d:"")){c=c.getScrollMetrics(!0);d=null;switch(b.type){case v.BLOCK_CREATE:case v.BLOCK_MOVE:(d=a.getBlockById(b.blockId))&&(d=d.getRootBlock());break;case v.COMMENT_CREATE:case v.COMMENT_MOVE:case v.COMMENT_RESIZE:d=a.getCommentById(b.commentId)}if(d){var e=$.gd||!1;$.B(b.group);Uh(a,c,d)&&!b.group&&console.warn("Moved object in bounds but there was no event group. This may break undo.");
184
+ $.B(e)}}else b.type===v.VIEWPORT_CHANGE&&b.scale&&b.oldScale&&b.scale>b.oldScale&&Wh(a)}}};Wh=function(a){var b=a.getMetricsManager();if(b.hasFixedEdges()&&!a.isDragging()){b=b.getScrollMetrics(!0);var c=a.getTopBoundedElements();for(let d=0,e;e=c[d];d++)Uh(a,b,e)}};bi=function(a,b){var c=a.toCopyData();Yh=c;Zh=ab(a)&&a.workspace instanceof $h?a.workspace:null;ai=b;return c};di=function(a,b,c){return a&&b?ci(a,b,c):Yh&&Zh?ci(Yh,Zh,ai):null};
185
+ ci=function(a,b,c){var d;b=b.isMutator?b:(d=b.options.parentWorkspace)!=null?d:b;var e,f;return(f=(e=Fb(y.PASTER,a.paster,!1))==null?void 0:e.paste(a,b,c))!=null?f:null};ei=function(a){return a&&typeof a.toCopyData==="function"};fi=function(a){return a&&typeof a.isDeletable==="function"&&typeof a.dispose==="function"&&typeof a.setDeleteStyle==="function"};
186
+ gi=function(a){return a&&typeof a.getRelativeToSurfaceXY==="function"&&typeof a.isMovable==="function"&&typeof a.startDrag==="function"&&typeof a.drag==="function"&&typeof a.endDrag==="function"&&typeof a.revertDrag==="function"};hi=function(){x.registry.register({name:K.ESCAPE,preconditionFn(a){return!a.isReadOnly()},callback(a){a.hideChaff();return!0},keyCodes:[L.ESC],displayText:()=>$.C.SHORTCUTS_ESCAPE})};
187
+ ji=function(){x.registry.register({name:K.DELETE,preconditionFn(a,b){b=b.focusedNode;(b=!a.isReadOnly()&&b!=null&&fi(b)&&b.isDeletable()&&!a.isDragging()&&!$.t().ephemeralFocusTaken())||a.getAudioManager().playErrorBeep();return b},callback(a,b,c,d){b.preventDefault();b=d.focusedNode;b instanceof ii?b.checkAndDelete():fi(b)&&b.isDeletable()&&($.B(!0),b.dispose(),$.B(!1),a.getAudioManager().play("delete"));return!0},keyCodes:[L.DELETE,L.BACKSPACE],displayText:()=>$.C.SHORTCUTS_DELETE})};
188
+ ki=function(a){return ei(a)&&fi(a)&&gi(a)?a.isCopyable?a.isCopyable():a instanceof ii||a instanceof dh?a.isOwnDeletable()&&a.isOwnMovable():a.isDeletable()&&a.isMovable():!1};
189
+ mi=function(){var a=x.registry.createSerializedKey(L.C,[L.CTRL_CMD]);x.registry.register({name:K.COPY,preconditionFn(b,c){c=c.focusedNode;var d=b.isFlyout?b.targetWorkspace:b;(c=!!c&&!!d&&!d.isDragging()&&!$.t().ephemeralFocusTaken()&&ki(c))||b.getAudioManager().playErrorBeep();return c},callback(b,c,d,e){c.preventDefault();d=e.focusedNode;if(!d||!ei(d)||!ki(d))return!1;e=b.isFlyout?b.targetWorkspace:b;if(!e)return!1;d.workspace.isFlyout||e.hideChaff();e=gi(d)&&d.workspace==e?d.getRelativeToSurfaceXY():
190
+ void 0;(d=!!bi(d,e))&&c instanceof KeyboardEvent&&li.show(b,{message:$.C.KEYBOARD_NAV_COPIED_HINT.replace("%1",re(K.PASTE)),duration:7,id:"copiedHint"});return d},keyCodes:[a],displayText:()=>$.C.COPY_SHORTCUT})};
191
+ ni=function(){var a=x.registry.createSerializedKey(L.X,[L.CTRL_CMD]);x.registry.register({name:K.CUT,preconditionFn(b,c){c=c.focusedNode;(c=!!c&&!b.isReadOnly()&&!b.isDragging()&&!$.t().ephemeralFocusTaken()&&ki(c)&&fi(c)&&c.isDeletable())||b.getAudioManager().playErrorBeep();return c},callback(b,c,d,e){d=e.focusedNode;if(!(d&&ki(d)&&fi(d)&&d.isDeletable()&&ei(d)))return!1;e=gi(d)?d.getRelativeToSurfaceXY():void 0;e=bi(d,e);d instanceof ii?(d.checkAndDelete(),c.preventDefault()):fi(d)&&($.B(!0),d.dispose(),
192
+ $.B(!1),b.getAudioManager().play("delete"),c.preventDefault());e&&c instanceof KeyboardEvent&&li.show(b,{message:$.C.KEYBOARD_NAV_CUT_HINT.replace("%1",re(K.PASTE)),duration:7,id:"cutHint"});return!!e},keyCodes:[a],displayText:()=>$.C.CUT_SHORTCUT})};
193
+ oi=function(){var a=x.registry.createSerializedKey(L.V,[L.CTRL_CMD]);x.registry.register({name:K.PASTE,preconditionFn(){var b=Zh;if(!b||!b.rendered)return!1;var c=b.isFlyout?b.targetWorkspace:b;(c=!!Yh&&!!c&&!c.isReadOnly()&&!c.isDragging()&&!$.t().ephemeralFocusTaken())||b.getAudioManager().playErrorBeep();return c},callback(b,c){var d=Yh,e=$.t().getFocusedNode();if(!d)return!1;var f=Zh;if(!f)return!1;li.hide(b,"cutHint");li.hide(b,"copiedHint");b=f.isFlyout?f.targetWorkspace:f;if(!b||b.isReadOnly())return!1;
194
+ if(c instanceof PointerEvent){var g=oc(b,new D(c.clientX,c.clientY));return!!di(d,b,g)}if(c=(g=b.getNavigator().getSourceBlockFromNode(e))==null?void 0:g.getRelativeToSurfaceXY())return!!di(d,b,c);g=ai;if(!g)return!!di(d,b);var {left:h,top:m,width:z,height:E}=b.getMetricsManager().getViewMetrics(!0);if((new cc(m,m+E,h,h+z)).contains(g.x,g.y))return!!di(d,b);g=new D(h+z/2,m+E/2);return!!di(d,b,g)},keyCodes:[a],displayText:()=>$.C.PASTE_SHORTCUT})};
195
+ pi=function(){var a=x.registry.createSerializedKey(L.Z,[L.CTRL_CMD]);x.registry.register({name:K.UNDO,preconditionFn(b){return!b.isReadOnly()&&!b.isDragging()&&!$.t().ephemeralFocusTaken()},callback(b,c){b.hideChaff();b.undo();c.preventDefault();return!0},keyCodes:[a],displayText:()=>$.C.UNDO})};
196
+ qi=function(){var a=x.registry.createSerializedKey(L.Z,[L.CTRL_CMD,L.SHIFT]),b=x.registry.createSerializedKey(L.Y,[L.CTRL]);x.registry.register({name:K.REDO,preconditionFn(c){return!c.isDragging()&&!c.isReadOnly()&&!$.t().ephemeralFocusTaken()},callback(c,d){c.hideChaff();c.redo();d.preventDefault();return!0},keyCodes:[a,b],displayText:()=>$.C.REDO})};
197
+ ti=function(){var a=d=>{var e=$.t().getFocusedNode();if(gi(e))return e;var f;return(f=d.getNavigator().getSourceBlockFromNode($.t().getFocusedNode()))!=null?f:void 0},b=x.registry.createSerializedKey(L.M,[L.SHIFT]),c={name:K.START_MOVE,preconditionFn:d=>{d=a(d);return!!d&&ri.mover.canMove(d)},callback:(d,e)=>{Nd.setIsActive(!0);(d=a(d))&&$.t().focusNode(d);return!!d&&ri.mover.startMove(d,e)},keyCodes:[L.M],displayText:()=>$.C.SHORTCUTS_START_MOVE};b=[c,Object.assign({},c,{name:K.START_MOVE_STACK,
198
+ keyCodes:[b],displayText:()=>$.C.SHORTCUTS_START_MOVE_STACK}),{name:K.FINISH_MOVE,preconditionFn:()=>ri.mover.isMoving(),callback:(d,e)=>ri.mover.finishMove(e),keyCodes:[L.ENTER,L.SPACE],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_FINISH_MOVE},{name:K.ABORT_MOVE,preconditionFn:()=>ri.mover.isMoving(),callback:(d,e)=>ri.mover.abortMove(e),keyCodes:[L.ESC],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_ABORT_MOVE},{name:K.MOVE_LEFT,preconditionFn:()=>ri.mover.isMoving(),callback:(d,e)=>{e.preventDefault();
199
+ return ri.mover.move(si.LEFT,e)},keyCodes:[L.LEFT,x.registry.createSerializedKey(L.LEFT,[L.CTRL_CMD])],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_MOVE_LEFT},{name:K.MOVE_RIGHT,preconditionFn:()=>ri.mover.isMoving(),callback:(d,e)=>{e.preventDefault();return ri.mover.move(si.RIGHT,e)},keyCodes:[L.RIGHT,x.registry.createSerializedKey(L.RIGHT,[L.CTRL_CMD])],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_MOVE_RIGHT},{name:K.MOVE_UP,preconditionFn:()=>ri.mover.isMoving(),callback:(d,e)=>{e.preventDefault();
200
+ return ri.mover.move(si.UP,e)},keyCodes:[L.UP,x.registry.createSerializedKey(L.UP,[L.CTRL_CMD])],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_MOVE_UP},{name:K.MOVE_DOWN,preconditionFn:()=>ri.mover.isMoving(),callback:(d,e)=>{e.preventDefault();return ri.mover.move(si.DOWN,e)},keyCodes:[L.DOWN,x.registry.createSerializedKey(L.DOWN,[L.CTRL_CMD])],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_MOVE_DOWN}];for(let d of b)x.registry.register(d)};
201
+ ui=function(){var a=x.registry.createSerializedKey(L.ENTER,[L.CTRL_CMD]),b=x.registry.createSerializedKey(L.F10,[L.SHIFT]);x.registry.register({name:K.MENU,preconditionFn:c=>!c.isDragging(),callback:(c,d)=>{Nd.setIsActive(!0);if((c=$.t().getFocusedNode())&&typeof c.showContextMenu==="function"){c.showContextMenu(d);let e;(e=Dg)==null||e.highlightNext();return!0}return!1},keyCodes:[a,b,L.CONTEXT_MENU],displayText:()=>$.C.SHORTCUTS_SHOW_CONTEXT_MENU})};
202
+ vi=function(){var a={right:{name:K.NAVIGATE_RIGHT,preconditionFn:b=>!b.isDragging()&&!ff&&!og,callback:(b,c)=>{c.preventDefault();Nd.setIsActive(!0);var d,e;c=b.RTL?(d=$.t().getFocusedTree())==null?void 0:d.getNavigator().getOutNode():(e=$.t().getFocusedTree())==null?void 0:e.getNavigator().getInNode();if(!c)return b.getAudioManager().playErrorBeep(),!1;$.t().focusNode(c);return!0},keyCodes:[L.RIGHT],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_NAVIGATE_RIGHT},left:{name:K.NAVIGATE_LEFT,preconditionFn:b=>
203
+ !b.isDragging()&&!ff&&!og,callback:(b,c)=>{c.preventDefault();Nd.setIsActive(!0);var d,e;c=b.RTL?(d=$.t().getFocusedTree())==null?void 0:d.getNavigator().getInNode():(e=$.t().getFocusedTree())==null?void 0:e.getNavigator().getOutNode();if(!c)return b.getAudioManager().playErrorBeep(),!1;$.t().focusNode(c);return!0},keyCodes:[L.LEFT],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_NAVIGATE_LEFT},down:{name:K.NAVIGATE_DOWN,preconditionFn:b=>!b.isDragging()&&!ff&&!og,callback:(b,c)=>{c.preventDefault();
204
+ Nd.setIsActive(!0);var d;c=(d=$.t().getFocusedTree())==null?void 0:d.getNavigator().getNextNode();if(!c)return b.getAudioManager().playErrorBeep(),!1;b.getAudioManager().maybePlayScopeChangeAudioCue(c);$.t().focusNode(c);return!0},keyCodes:[L.DOWN],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_NAVIGATE_DOWN},up:{name:K.NAVIGATE_UP,preconditionFn:b=>!b.isDragging()&&!ff&&!og,callback:(b,c)=>{c.preventDefault();Nd.setIsActive(!0);var d;c=(d=$.t().getFocusedTree())==null?void 0:d.getNavigator().getPreviousNode();
204
205
  if(!c)return b.getAudioManager().playErrorBeep(),!1;b.getAudioManager().maybePlayScopeChangeAudioCue(c);$.t().focusNode(c);return!0},keyCodes:[L.UP],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_NAVIGATE_UP}};for(let b of Object.values(a))x.registry.register(b)};
205
- wi=function(){x.registry.register({name:K.FOCUS_WORKSPACE,preconditionFn:a=>!a.isDragging(),callback:a=>{Nd.setIsActive(!0);a=vi(a);var b;$.t().focusNode((b=a.getWorkspaceFocusTarget())!=null?b:a);return!0},keyCodes:[L.W],displayText:()=>$.C.SHORTCUTS_FOCUS_WORKSPACE})};
206
- xi=function(){x.registry.register({name:K.FOCUS_TOOLBOX,preconditionFn:a=>!a.isDragging(),callback:(a,b)=>{var c=a.getToolbox();if(c)Nd.setIsActive(!0),$.t().focusTree(c);else{a=a.getFlyout();if(!a)return!1;Nd.setIsActive(!0);$.t().focusTree(a.getWorkspace())}b.preventDefault();return!0},keyCodes:[L.T],displayText:()=>$.C.SHORTCUTS_FOCUS_TOOLBOX})};
207
- yi=function(){x.registry.register({name:K.INFORMATION,preconditionFn:()=>!0,callback:a=>{var b=$.t().getFocusedNode(),c=a.getNavigator().getSourceBlockFromNode(b);if(c)return a=Be(c,ve.LOQUACIOUS),Ja(a),!0;if(b===a){b=vi(a);a=b.getTopBlocks().length;b=b.getTopComments().length;c=a===0?"WORKSPACE_CONTENTS_BLOCKS_ZERO":a===1?"WORKSPACE_CONTENTS_BLOCKS_ONE":"WORKSPACE_CONTENTS_BLOCKS_MANY";let d="";b>0&&(d=$.C[b===1?"WORKSPACE_CONTENTS_COMMENTS_ONE":"WORKSPACE_CONTENTS_COMMENTS_MANY"].replace("%1",String(b)));
206
+ xi=function(){x.registry.register({name:K.FOCUS_WORKSPACE,preconditionFn:a=>!a.isDragging(),callback:a=>{Nd.setIsActive(!0);a=wi(a);var b;$.t().focusNode((b=a.getWorkspaceFocusTarget())!=null?b:a);return!0},keyCodes:[L.W],displayText:()=>$.C.SHORTCUTS_FOCUS_WORKSPACE})};
207
+ yi=function(){x.registry.register({name:K.FOCUS_TOOLBOX,preconditionFn:a=>!a.isDragging(),callback:(a,b)=>{var c=a.getToolbox();if(c)Nd.setIsActive(!0),$.t().focusTree(c);else{a=a.getFlyout();if(!a)return!1;Nd.setIsActive(!0);$.t().focusTree(a.getWorkspace())}b.preventDefault();return!0},keyCodes:[L.T],displayText:()=>$.C.SHORTCUTS_FOCUS_TOOLBOX})};
208
+ zi=function(){x.registry.register({name:K.INFORMATION,preconditionFn:()=>!0,callback:a=>{var b=$.t().getFocusedNode(),c=a.getNavigator().getSourceBlockFromNode(b);if(c)return a=Ce(c,we.LOQUACIOUS),Ja(a),!0;if(b===a){b=wi(a);a=b.getTopBlocks().length;b=b.getTopComments().length;c=a===0?"WORKSPACE_CONTENTS_BLOCKS_ZERO":a===1?"WORKSPACE_CONTENTS_BLOCKS_ONE":"WORKSPACE_CONTENTS_BLOCKS_MANY";let d="";b>0&&(d=$.C[b===1?"WORKSPACE_CONTENTS_COMMENTS_ONE":"WORKSPACE_CONTENTS_COMMENTS_MANY"].replace("%1",String(b)));
208
209
  a=$.C[c].replace("%1",String(a)).replace("%2",d);Ja(a);return!0}return!1},keyCodes:[L.I],displayText:()=>$.C.SHORTCUTS_INFORMATION})};
209
- zi=function(){var a=x.registry.createSerializedKey(L.I,[L.SHIFT]);x.registry.register({name:K.EXTENDED_INFORMATION,preconditionFn:()=>!0,callback:b=>{b=b.getNavigator().getSourceBlockFromNode($.t().getFocusedNode());if(!b)return!1;for(var c=[],d=b,e;(e=d.outputConnection)==null?0:e.isConnected();)d=d.getParent();d!==b&&c.push(Be(d,ve.TERSE));for(e=d.getParent();e;)c.push(Be(e,ve.TERSE)),e=e.getParent();if(c.length){c.reverse();let f;((f=b.outputConnection)==null?0:f.isConnected())||c.push($.C.CURRENT_BLOCK_ANNOUNCEMENT.replace("%1",
210
- Be(b,ve.TERSE)));Ja($.C.PARENT_BLOCKS_ANNOUNCEMENT.replace("%1",c.join(",")))}else Ja($.C.NO_PARENT_ANNOUNCEMENT);return!0},keyCodes:[a],displayText:()=>$.C.SHORTCUTS_EXTENDED_INFORMATION})};
211
- Ai=function(){var a=x.registry.createSerializedKey(L.X,[L.SHIFT]);x.registry.register({name:K.DISCONNECT,preconditionFn:(b,c)=>{c=c.focusedNode;(c=!b.isDragging()&&!b.isReadOnly()&&c instanceof hi&&!c.isShadow())||b.getAudioManager().playErrorBeep();return c},callback:(b,c)=>{Nd.setIsActive(!0);b=$.t().getFocusedNode();if(!(b instanceof hi))return!1;c=!(c instanceof KeyboardEvent&&c.shiftKey);$.B(!0);b.unplug(c);$.B(!1);return!0},keyCodes:[L.X,a],displayText:()=>$.C.SHORTCUTS_DISCONNECT})};
212
- Bi=function(){var a=(c,d=$.t().getFocusedNode())=>{var e=c.getNavigator();for(let f=d;f&&f!==c;f=e.getParent(f))d=f;return ab(d)?d:null},b={name:K.PREVIOUS_STACK,preconditionFn:c=>!c.isDragging()&&!!a(c)&&!ef&&!ng,callback:c=>{Nd.setIsActive(!0);var d=a(c);if(!d)return!1;c=a(c,c.getNavigator().navigateStacks(d,-1));if(!c)return!1;$.t().focusNode(c);return!0},keyCodes:[L.B],displayText:()=>$.C.SHORTCUTS_PREVIOUS_STACK};x.registry.register({name:K.NEXT_STACK,preconditionFn:c=>!c.isDragging()&&!!a(c)&&
213
- !ef&&!ng,callback:c=>{Nd.setIsActive(!0);var d=a(c);if(!d)return!1;c=c.getNavigator().navigateStacks(d,1);if(!c)return!1;$.t().focusNode(c);return!0},keyCodes:[L.N],displayText:()=>$.C.SHORTCUTS_NEXT_STACK});x.registry.register(b)};
214
- Di=function(){var a=()=>{var e=$.t().getFocusedTree();if(e instanceof Zh&&e.isFlyout&&e.targetWorkspace){let f;return(f=e.targetWorkspace.getFlyout())!=null?f:null}return null},b=e=>{var f=e.getWorkspace().getNavigator();e=e.getContents().map(m=>m.getElement());for(var g,h=(g=$.t().getFocusedNode())!=null?g:null;h&&!e.includes(h);)h=f.getParent(h);return h},c=(e,f)=>{var g=e.getContents().map(m=>m.getElement());e=(e=b(e))?g.indexOf(e):f===1?-1:g.length;for(let m=1;m<=g.length;m++){var h=e+f*m;if(h<
215
- 0||h>=g.length)break;h=g[h];if(h instanceof Ci&&h.isLabel())return h}return null},d=x.registry.createSerializedKey(L.H,[L.SHIFT]);d={name:K.PREVIOUS_HEADING,preconditionFn:e=>!e.isDragging()&&!ef&&!ng&&!!a(),callback:()=>{var e=a();if(!e)return!1;e=c(e,-1);if(!e)return!1;Nd.setIsActive(!0);$.t().focusNode(e);return!0},keyCodes:[d],displayText:()=>$.C.SHORTCUTS_PREVIOUS_HEADING};x.registry.register({name:K.NEXT_HEADING,preconditionFn:e=>!e.isDragging()&&!ef&&!ng&&!!a(),callback:()=>{var e=a();if(!e)return!1;
210
+ Ai=function(){var a=x.registry.createSerializedKey(L.I,[L.SHIFT]);x.registry.register({name:K.EXTENDED_INFORMATION,preconditionFn:()=>!0,callback:b=>{b=b.getNavigator().getSourceBlockFromNode($.t().getFocusedNode());if(!b)return!1;for(var c=[],d=b,e;(e=d.outputConnection)==null?0:e.isConnected();)d=d.getParent();d!==b&&c.push(Ce(d,we.TERSE));for(e=d.getParent();e;)c.push(Ce(e,we.TERSE)),e=e.getParent();if(c.length){c.reverse();let f;((f=b.outputConnection)==null?0:f.isConnected())||c.push($.C.CURRENT_BLOCK_ANNOUNCEMENT.replace("%1",
211
+ Ce(b,we.TERSE)));Ja($.C.PARENT_BLOCKS_ANNOUNCEMENT.replace("%1",c.join(",")))}else Ja($.C.NO_PARENT_ANNOUNCEMENT);return!0},keyCodes:[a],displayText:()=>$.C.SHORTCUTS_EXTENDED_INFORMATION})};
212
+ Bi=function(){var a=x.registry.createSerializedKey(L.X,[L.SHIFT]);x.registry.register({name:K.DISCONNECT,preconditionFn:(b,c)=>{c=c.focusedNode;(c=!b.isDragging()&&!b.isReadOnly()&&c instanceof ii&&!c.isShadow())||b.getAudioManager().playErrorBeep();return c},callback:(b,c)=>{Nd.setIsActive(!0);b=$.t().getFocusedNode();if(!(b instanceof ii))return!1;c=!(c instanceof KeyboardEvent&&c.shiftKey);$.B(!0);b.unplug(c);$.B(!1);return!0},keyCodes:[L.X,a],displayText:()=>$.C.SHORTCUTS_DISCONNECT})};
213
+ Ci=function(){var a=(c,d=$.t().getFocusedNode())=>{var e=c.getNavigator();for(let f=d;f&&f!==c;f=e.getParent(f))d=f;return ab(d)?d:null},b={name:K.PREVIOUS_STACK,preconditionFn:c=>!c.isDragging()&&!!a(c)&&!ff&&!og,callback:c=>{Nd.setIsActive(!0);var d=a(c);if(!d)return!1;c=a(c,c.getNavigator().navigateStacks(d,-1));if(!c)return!1;$.t().focusNode(c);return!0},keyCodes:[L.B],displayText:()=>$.C.SHORTCUTS_PREVIOUS_STACK};x.registry.register({name:K.NEXT_STACK,preconditionFn:c=>!c.isDragging()&&!!a(c)&&
214
+ !ff&&!og,callback:c=>{Nd.setIsActive(!0);var d=a(c);if(!d)return!1;c=c.getNavigator().navigateStacks(d,1);if(!c)return!1;$.t().focusNode(c);return!0},keyCodes:[L.N],displayText:()=>$.C.SHORTCUTS_NEXT_STACK});x.registry.register(b)};
215
+ Ei=function(){var a=()=>{var e=$.t().getFocusedTree();if(e instanceof $h&&e.isFlyout&&e.targetWorkspace){let f;return(f=e.targetWorkspace.getFlyout())!=null?f:null}return null},b=e=>{var f=e.getWorkspace().getNavigator();e=e.getContents().map(m=>m.getElement());for(var g,h=(g=$.t().getFocusedNode())!=null?g:null;h&&!e.includes(h);)h=f.getParent(h);return h},c=(e,f)=>{var g=e.getContents().map(m=>m.getElement());e=(e=b(e))?g.indexOf(e):f===1?-1:g.length;for(let m=1;m<=g.length;m++){var h=e+f*m;if(h<
216
+ 0||h>=g.length)break;h=g[h];if(h instanceof Di&&h.isLabel())return h}return null},d=x.registry.createSerializedKey(L.H,[L.SHIFT]);d={name:K.PREVIOUS_HEADING,preconditionFn:e=>!e.isDragging()&&!ff&&!og&&!!a(),callback:()=>{var e=a();if(!e)return!1;e=c(e,-1);if(!e)return!1;Nd.setIsActive(!0);$.t().focusNode(e);return!0},keyCodes:[d],displayText:()=>$.C.SHORTCUTS_PREVIOUS_HEADING};x.registry.register({name:K.NEXT_HEADING,preconditionFn:e=>!e.isDragging()&&!ff&&!og&&!!a(),callback:()=>{var e=a();if(!e)return!1;
216
217
  e=c(e,1);if(!e)return!1;Nd.setIsActive(!0);$.t().focusNode(e);return!0},keyCodes:[L.H],displayText:()=>$.C.SHORTCUTS_NEXT_HEADING});x.registry.register(d)};
217
- Ei=function(){x.registry.register({name:K.PERFORM_ACTION,preconditionFn:a=>!a.isDragging()&&!ef&&!ng&&!$.t().ephemeralFocusTaken(),callback:(a,b)=>{Nd.setIsActive(!0);if((a=$.t().getFocusedNode())&&"performAction"in a){b.preventDefault();let c;(c=a.performAction)==null||c.call(a,b);return!0}return!1},keyCodes:[L.ENTER,L.SPACE],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_PERFORM_ACTION})};
218
- Fi=function(){x.registry.register({name:K.DUPLICATE,preconditionFn:(a,b)=>{({focusedNode:b}=b);(b=!a.isDragging()&&!a.isReadOnly()&&!a.isFlyout&&(b instanceof hi?b.isDuplicatable():!0))||a.getAudioManager().playErrorBeep();return b},callback:(a,b,c,d)=>{Nd.setIsActive(!0);b=di(d.focusedNode)&&d.focusedNode;return b?(b=b.toCopyData())?!!ci(b,a):!1:!1},keyCodes:[L.D],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_DUPLICATE})};
219
- Gi=function(){x.registry.register({name:K.CLEANUP,preconditionFn:a=>!a.isDragging()&&!a.isReadOnly()&&!a.isFlyout,callback:a=>{Nd.setIsActive(!0);a.cleanUp();return!0},keyCodes:[L.C],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_CLEANUP})};
220
- Hi=function(){var a=x.registry.createSerializedKey(L.J,[L.CTRL_CMD]);x.registry.register({name:K.SHOW_TOOLTIP,preconditionFn:b=>!b.isDragging(),callback:b=>{var c=$.t().getFocusedNode();c!==null&&(Nd.setIsActive(!0),Tf(c,b));return!0},keyCodes:[a],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_SHOW_TOOLTIP})};
221
- Ii=function(){var a=x.registry.createSerializedKey(L.A,[L.ALT,L.SHIFT]),b=!1;x.registry.register({name:K.TOGGLE_SCREENREADER,preconditionFn:()=>!0,callback:(c,d)=>{b=!b;Nd.setScopeChangeAudioCuesEnabled(b);c.getNavigator().setNavigationLoops(!b);var e;(e=c.getToolbox())==null||e.getNavigator().setNavigationLoops(!b);var f;(f=c.getFlyout())==null||f.getWorkspace().getNavigator().setNavigationLoops(!b);ki.show(c,{message:(b?$.C.SCREENREADER_MODE_ENABLED:$.C.SCREENREADER_MODE_DISABLED).replace("%1",
222
- qe(K.TOGGLE_SCREENREADER)),duration:7,id:"screenreaderHint"});d.preventDefault();return!0},keyCodes:[a],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_TOGGLE_SCREENREADER_MODE})};
223
- Ki=function(){x.registry.register({name:K.JUMP_BLOCK_START,preconditionFn:Ji,callback(a,b,c,d){if(!d.focusedNode)return!1;a=a.getNavigator().getSourceBlockFromNode(d.focusedNode);var e;((e=a)==null?0:e.getFullBlockField())&&a.getParent()&&(a=a.getParent());if(!a)return!1;$.t().focusNode(a);return!0},keyCodes:[L.HOME],displayText:()=>$.C.SHORTCUTS_JUMP_BLOCK_START})};
224
- Mi=function(){x.registry.register({name:K.JUMP_BLOCK_END,preconditionFn:Ji,callback(a,b,c,d){if(!d.focusedNode)return!1;a=a.getNavigator().getSourceBlockFromNode(d.focusedNode);var e;((e=a)==null?0:e.getFullBlockField())&&a.getParent()&&(a=a.getParent());if(!a)return!1;e=a.inputList;if(!e.length)return!1;e=e[e.length-1].connection;if(!(e&&e instanceof Li))return!1;$.t().focusNode(e);return!0},keyCodes:[L.END],displayText:()=>$.C.SHORTCUTS_JUMP_BLOCK_END})};
225
- Ni=function(){x.registry.register({name:K.JUMP_TOP_STACK,preconditionFn:Ji,callback(a,b,c,d){if(!d.focusedNode)return!1;a=a.getNavigator().getSourceBlockFromNode(d.focusedNode);if(!a)return!1;a=a.getRootBlock();$.t().focusNode(a);return!0},keyCodes:[L.PAGE_UP],displayText:()=>$.C.SHORTCUTS_JUMP_TOP_STACK})};
226
- Oi=function(){x.registry.register({name:K.JUMP_BOTTOM_STACK,preconditionFn:Ji,callback(a,b,c,d){if(!d.focusedNode)return!1;a=a.getNavigator().getSourceBlockFromNode(d.focusedNode);if(!a)return!1;var e;a=(e=a.getRootBlock().lastConnectionInStack(!1))==null?void 0:e.getSourceBlock();if(!a)return!1;e=a.getDescendants(!0);e=e[e.length-1];$.t().focusNode(e);return!0},keyCodes:[L.PAGE_DOWN],displayText:()=>$.C.SHORTCUTS_JUMP_BOTTOM_STACK})};
227
- Pi=function(){var a=x.registry.createSerializedKey(L.HOME,[L.CTRL_CMD]);x.registry.register({name:K.JUMP_FIRST_BLOCK,preconditionFn:b=>!b.isDragging()&&!$.t().ephemeralFocusTaken(),callback(b){b=b.getTopBlocks(!0);if(!b.length)return!1;$.t().focusNode(b[0]);return!0},keyCodes:[a],displayText:()=>$.C.SHORTCUTS_JUMP_FIRST_BLOCK})};
228
- Qi=function(){var a=x.registry.createSerializedKey(L.END,[L.CTRL_CMD]);x.registry.register({name:K.JUMP_LAST_BLOCK,preconditionFn:b=>!b.isDragging()&&!$.t().ephemeralFocusTaken(),callback(b){b=b.getAllBlocks(!0);if(!b.length)return!1;$.t().focusNode(b[b.length-1]);return!0},keyCodes:[a],displayText:()=>$.C.SHORTCUTS_JUMP_LAST_BLOCK})};Ri=function(){gi();ii();li();mi();ni();oi();pi()};Si=function(){ti();si();wi();xi();ui();Ai();Bi();Di();Ei();Fi();Gi();Hi()};Ti=function(){yi();zi();Ii()};
229
- Xi=function(a,b=!1){var c=$.C.KEYBOARD_NAV_UNCONSTRAINED_MOVE_HINT.replace("%1",na||Ui||Wi?$.C.COMMAND_KEY:$.C.CONTROL_KEY).replace("%2",$.C.ENTER_KEY);ki.show(a,{message:c,id:"unconstrainedMoveHint",oncePerSession:!b})};Yi=function(a){var b=$.C.KEYBOARD_NAV_CONSTRAINED_MOVE_HINT.replace("%1",$.C.ENTER_KEY);ki.show(a,{message:b,id:"constrainedMoveHint",oncePerSession:!0})};
230
- Zi=function(a){var b=[];for(var c of a.getIcons()){if(a.isCollapsed()&&!c.isShownWhenCollapsed())continue;b.push(c);let d;xd(c)&&c.bubbleIsVisible()&&(d=c.getBubble())&&b.push(d)}for(let d of a.inputList){if(!d.isVisible())continue;b.push(...d.fieldRow);c=d.connection;if(!c)continue;b.push(c);c=c.targetBlock();if(!c)continue;b.push(c);(c=c.lastConnectionInStack(!1))&&b.push(c)}a.nextConnection&&!a.isCollapsed()&&b.push(a.nextConnection);return b};
231
- $i=function(a,b,c){a=Zi(a);b=a.indexOf(b);if(b===-1)return null;c=b+c;return c>=0&&c<a.length?a[c]:null};aj=function(a){return a&&typeof a.getChildToolboxItems==="function"&&typeof a.isExpanded==="function"&&typeof a.toggleExpanded==="function"&&ue(a)&&a.isCollapsible()};bj=function(a){var b=a.options.toolboxPosition;return a.options.RTL&&b!==F.TOP&&b!==F.BOTTOM?b===F.LEFT?F.RIGHT:F.LEFT:b};cj=function(a,b){A(y.ICON,a.toString(),b)};
232
- dj=function(a){return typeof a.getProcedureModel==="function"&&typeof a.doProcedureUpdate==="function"&&typeof a.isProcedureDef==="function"};ej=function(a){return a&&typeof a.startPublishing==="function"&&typeof a.stopPublishing==="function"};
233
- gj=function(a){var b=a.getProcedureMap().getProcedures().filter(d=>!d.getReturnTypes()).map(d=>[d.getName(),d.getParameters().map(e=>e.getName()),!1]);a.getBlocksByType("procedures_defnoreturn",!1).forEach(d=>{!dj(d)&&zd(d)&&b.push(d.getProcedureDef())});var c=a.getProcedureMap().getProcedures().filter(d=>!!d.getReturnTypes()).map(d=>[d.getName(),d.getParameters().map(e=>e.getName()),!0]);a.getBlocksByType("procedures_defreturn",!1).forEach(d=>{!dj(d)&&zd(d)&&c.push(d.getProcedureDef())});b.sort(fj);
234
- c.sort(fj);return[b,c]};fj=function(a,b){return a[0].localeCompare(b[0],void 0,{sensitivity:"base"})};$.ij=function(a,b){if(b.isInFlyout)return a;for(a=a||$.C.UNNAMED_KEY||"unnamed";hj(a,b.workspace,b);){let c=a.match(/^(.*?)(\d+)$/);a=c?c[1]+(parseInt(c[2])+1):a+"2"}return a};
235
- hj=function(a,b,c){for(let d of b.getAllBlocks(!1))if(d!==c&&zd(d)&&$.jj.equals(d.getProcedureDef()[0],a))return!0;c=c&&dj(c)?c==null?void 0:c.getProcedureModel():void 0;for(let d of b.getProcedureMap().getProcedures())if(d!==c&&$.jj.equals(d.getName(),a))return!0;return!1};
236
- $.lj=function(a){var b=this.getSourceBlock();if(!b)throw new kj;a=a.trim();var c=$.ij(a,b);dj(b)&&!b.isInsertionMarker()&&b.getProcedureModel().setName(c);var d=this.getValue();if(d!==a&&d!==c)for(a=b.workspace.getAllBlocks(!1),b=0;b<a.length;b++){let e=a[b];e.renameProcedure&&e.renameProcedure(d,c)}return c};
237
- mj=function(a){function b(d,e){for(let [f,g]of d)c.push({kind:"block",type:e,gap:16,extraState:{name:f,params:g}})}var c=[];zb.procedures_defnoreturn&&c.push({kind:"block",type:"procedures_defnoreturn",gap:16,fields:{NAME:$.C.PROCEDURES_DEFNORETURN_PROCEDURE}});zb.procedures_defreturn&&c.push({kind:"block",type:"procedures_defreturn",gap:16,fields:{NAME:$.C.PROCEDURES_DEFRETURN_PROCEDURE}});zb.procedures_ifreturn&&c.push({kind:"block",type:"procedures_ifreturn",gap:16});c.length&&(c[c.length-1].gap=
238
- 24);a=gj(a);b(a[0],"procedures_callnoreturn");b(a[1],"procedures_callreturn");return c};nj=function(a){var b=[],c=a.getBlocksByType("procedures_mutatorarg",!1);for(let f=0,g;g=c[f];f++)b.push(g.getFieldValue("NAME"));c=$.rc("xml");var d=$.rc("block");d.setAttribute("type","procedures_mutatorarg");var e=$.rc("field");e.setAttribute("name","NAME");b=Kd("x",b);b=$.sc(b);e.appendChild(b);d.appendChild(e);c.appendChild(d);a.updateToolbox(c)};
239
- pj=function(a){if(a.type===v.BUBBLE_OPEN&&a.bubbleType==="mutator"&&a.isOpen&&a.blockId){a=fb(a.workspaceId).getBlockById(a.blockId);var b=a.type;if(b==="procedures_defnoreturn"||b==="procedures_defreturn")a=a.getIcon($.rh.TYPE).getWorkspace(),nj(a),a.addChangeListener(oj)}};oj=function(a){if(a.type===v.BLOCK_CREATE||a.type===v.BLOCK_DELETE||a.type===v.BLOCK_CHANGE||a.type===v.BLOCK_FIELD_INTERMEDIATE_CHANGE)a=fb(a.workspaceId),nj(a)};
240
- qj=function(a,b){return b.getAllBlocks(!1).filter(c=>dj(c)&&!c.isProcedureDef()&&c.getProcedureModel()&&$.jj.equals(c.getProcedureModel().getName(),a)||c&&typeof c.getProcedureCall==="function"&&typeof c.renameProcedure==="function"&&$.jj.equals(c.getProcedureCall(),a))};
241
- $.rj=function(a){var b=$.Qc,c=a.getProcedureDef()[0],d=a.mutationToDom(!0);a=qj(c,a.workspace);for(let f=0,g;g=a[f];f++){c=(c=g.mutationToDom())&&xc(c);g.domToMutation&&g.domToMutation(d);var e=g.mutationToDom();e=e&&xc(e);c!==e&&($.Qc=!1,w(new (u(v.BLOCK_CHANGE))(g,"mutation",null,c,e)),$.Qc=b)}};$.sj=function(a,b){for(let c of b.getAllBlocks(!1))if(dj(c)&&c.isProcedureDef()&&$.jj.equals(c.getProcedureModel().getName(),a)||zd(c)&&$.jj.equals(c.getProcedureDef()[0],a))return c;return null};
242
- tj=function(a,b){A(y.RENDERER,a,b)};uj=function(a,b,c){a=new (Fb(y.RENDERER,a,void 0))(a);a.init(b,c);return a};vj=function(a){Dd(a.getTargetWorkspace(),void 0,"String")};wj=function(a){Dd(a.getTargetWorkspace(),void 0,"Number")};xj=function(a){Dd(a.getTargetWorkspace(),void 0,"Colour")};
243
- yj=function(a){zb.variables_set_dynamic||zb.variables_get_dynamic||console.warn("There are no dynamic variable blocks, but there is a dynamic variable category.");a.registerButtonCallback("CREATE_VARIABLE_STRING",vj);a.registerButtonCallback("CREATE_VARIABLE_NUMBER",wj);a.registerButtonCallback("CREATE_VARIABLE_COLOUR",xj);return[{kind:"button",text:$.C.NEW_STRING_VARIABLE,callbackkey:"CREATE_VARIABLE_STRING"},{kind:"button",text:$.C.NEW_NUMBER_VARIABLE,callbackkey:"CREATE_VARIABLE_NUMBER"},{kind:"button",
244
- text:$.C.NEW_COLOUR_VARIABLE,callbackkey:"CREATE_VARIABLE_COLOUR"},...Ed(a,a.getVariableMap().getAllVariables(),!1,"variables_get_dynamic","variables_set_dynamic")]};zj=function(a){var b=a.saveState();if(!a.getParameters().length)return b;b.parameters=a.getParameters().map(c=>c.saveState());return b};Aj=function(a,b,c,d){a=a.loadState(c,d);if(!c.parameters)return a;for(let [e,f]of c.parameters.entries())a.insertParameter(b.loadState(f,d),e);return a};
245
- Cj=function(a,b){a.setAttribute("dir","LTR");wa(a,b.hasCss,b.pathToMedia);var c=r(q.SVG,{xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1","class":"blocklySvg"},a),d=r(q.DEFS,{},c),e=String(Math.random()).substring(2);b.gridPattern=Bj.createDom(e,b.gridOptions,d,a);return c};
246
- Dj=function(a,b,c){c.parentWorkspace=null;c=new Zh(c);var d=c.options;c.scale=d.zoomOptions.startScale;b.appendChild(c.createDom("blocklyMainBackground",a));var e=c.getRenderer().getClassName();e&&n(a,e);(e=c.getTheme().getClassName())&&n(a,e);!d.hasCategories&&d.languageTree&&(e=c.addFlyout(q.SVG),a.insertBefore(e,b));d.hasTrashcan&&c.addTrashcan();d.zoomOptions&&d.zoomOptions.controls&&c.addZoomControls();c.getThemeManager().subscribe(b,"workspaceBackgroundColour","background-color");c.translate(0,
247
- 0);c.addChangeListener(Wh(c));tb(c);mg();Se();Cf();return c};
248
- Hj=function(a){var b=a.options,c=a.getParentSvg();k(c.parentNode,"contextmenu",null,function(d){ma(d)||d.preventDefault()});c=k(window,"resize",null,function(){Kf();a.hideComponents(!0);rf();yg();tb(a);Vh(a)});a.setResizeHandlerWrapper(c);Ej();if(b.languageTree){c=a.getToolbox();let d=a.getFlyout(!0);c?c.init():d&&(d.init(a),d.show(b.languageTree),typeof d.scrollToStart==="function"&&d.scrollToStart())}b.hasTrashcan&&a.trashcan.init();b.zoomOptions&&b.zoomOptions.controls&&a.zoomControls_.init();
249
- b.moveOptions&&b.moveOptions.scrollbars?(a.scrollbar=new Fj(a,b.moveOptions.scrollbars===!0||!!b.moveOptions.scrollbars.horizontal,b.moveOptions.scrollbars===!0||!!b.moveOptions.scrollbars.vertical,"blocklyMainWorkspaceScrollbar"),a.scrollbar.resize()):a.setMetrics({x:.5,y:.5});b.hasSounds&&Gj(b.pathToMedia,a)};
250
- Ej=function(){Ij||(k(document,"scroll",null,function(){var a=gb();for(let b=0,c;c=a[b];b++)c instanceof Zh&&c.updateInverseScreenCTM()}),ka(document,"touchend",null,aa),ka(document,"touchcancel",null,aa),ka(document,"keydown",null,function(a){a.key==="Tab"&&Nd.setIsActive(!0)}));Ij=!0};Gj=function(a,b){b=b.getAudioManager();b.load([`${a}click.mp3`],"click");b.load([`${a}disconnect.mp3`],"disconnect");b.load([`${a}delete.mp3`],"delete");b.load([`${a}drop.mp3`],"drop")};
251
- Kj=function(){Jj.registry.register({displayText(){return $.C.UNDO},preconditionFn(a){return a.workspace.getUndoStack().length>0?"enabled":"disabled"},callback(a){a.workspace.undo()},scopeType:Jj.ScopeType.WORKSPACE,id:"undoWorkspace",weight:1,associatedKeyboardShortcut:"undo"})};
252
- Lj=function(){Jj.registry.register({displayText(){return $.C.REDO},preconditionFn(a){return a.workspace.getRedoStack().length>0?"enabled":"disabled"},callback(a){a.workspace.redo()},scopeType:Jj.ScopeType.WORKSPACE,id:"redoWorkspace",weight:2,associatedKeyboardShortcut:"redo"})};
253
- Mj=function(){Jj.registry.register({displayText(){return $.C.CLEAN_UP},preconditionFn(a){return a.workspace.isMovable()?a.workspace.getTopBlocks(!1).length>1?"enabled":"disabled":"hidden"},callback(a){a.workspace.cleanUp()},scopeType:Jj.ScopeType.WORKSPACE,id:"cleanWorkspace",weight:3,associatedKeyboardShortcut:"cleanup"})};
254
- Nj=function(a,b){function c(f){e--;f.setCollapsed(a);e===0&&$.B(!1)}var d=0,e=0;$.B(!0);for(let f=0;f<b.length;f++){let g=b[f];for(;g;)e++,setTimeout(c.bind(null,g),d),g=g.getNextBlock(),d+=10}};
255
- Oj=function(){Jj.registry.register({displayText(){return $.C.COLLAPSE_ALL},preconditionFn(a){if(a.workspace.options.collapse){a=a.workspace.getTopBlocks(!1);for(let b=0;b<a.length;b++){let c=a[b];for(;c;){if(!c.isCollapsed())return"enabled";c=c.getNextBlock()}}return"disabled"}return"hidden"},callback(a){Nj(!0,a.workspace.getTopBlocks(!0))},scopeType:Jj.ScopeType.WORKSPACE,id:"collapseWorkspace",weight:4})};
256
- Pj=function(){Jj.registry.register({displayText(){return $.C.EXPAND_ALL},preconditionFn(a){if(a.workspace.options.collapse){a=a.workspace.getTopBlocks(!1);for(let b=0;b<a.length;b++){let c=a[b];for(;c;){if(c.isCollapsed())return"enabled";c=c.getNextBlock()}}return"disabled"}return"hidden"},callback(a){Nj(!1,a.workspace.getTopBlocks(!0))},scopeType:Jj.ScopeType.WORKSPACE,id:"expandWorkspace",weight:5})};
257
- Qj=function(a,b){if(a.isDeletable())Array.prototype.push.apply(b,a.getDescendants(!1));else{a=a.getChildren(!1);for(let c=0;c<a.length;c++)Qj(a[c],b)}};Rj=function(a){var b=[];a=a.getTopBlocks(!0);for(let c=0;c<a.length;c++)Qj(a[c],b);return b};Sj=function(a,b){b?$.B(b):($.B(!0),b=$.gd);var c=a.shift();c&&(c.isDeadOrDying()?Sj(a,b):(c.dispose(!1,!0),setTimeout(Sj,10,a,b)));$.B(!1)};
258
- Tj=function(){Jj.registry.register({displayText(a){if(!a.workspace)return"";a=Rj(a.workspace).length;return a===1?$.C.DELETE_BLOCK:$.C.DELETE_X_BLOCKS.replace("%1",`${a}`)},preconditionFn(a){return a.workspace?Rj(a.workspace).length>0?"enabled":"disabled":"disabled"},callback(a){if(a.workspace){a.workspace.cancelCurrentGesture();var b=Rj(a.workspace);b.length<2?Sj(b):td($.C.DELETE_ALL_BLOCKS.replace("%1",String(b.length)),function(c){c&&Sj(b)})}},scopeType:Jj.ScopeType.WORKSPACE,id:"workspaceDelete",
259
- weight:6})};Uj=function(){Jj.registry.register({displayText(){return $.C.DUPLICATE_BLOCK},preconditionFn(a){a=a.block;return!a.isInFlyout&&a.isDeletable()&&a.isMovable()?a.isDuplicatable()?"enabled":"disabled":"hidden"},callback(a){if(a.block){var b=a.block.toCopyData();b&&ci(b,a.block.workspace)}},scopeType:Jj.ScopeType.BLOCK,id:"blockDuplicate",weight:1,associatedKeyboardShortcut:"duplicate"})};
260
- Wj=function(){Jj.registry.register({displayText(a){return a.block.hasIcon(Vj.TYPE)?$.C.REMOVE_COMMENT:$.C.ADD_COMMENT},preconditionFn(a){a=a.block;var b;if((b=a&&!a.isInFlyout&&a.workspace.options.comments&&!a.isCollapsed()&&a.isEditable())&&!(b=a.hasIcon(Vj.TYPE))){if(a&&a.isSimpleReporter()){var c;a=(c=a.getFields().next().value)==null?void 0:c.isFullBlockField()}else a=!1;b=!a}return b?"enabled":"hidden"},callback(a){(a=a.block)&&a.hasIcon(Vj.TYPE)?a.setCommentText(null):a.setCommentText("")},
261
- scopeType:Jj.ScopeType.BLOCK,id:"blockComment",weight:2})};
262
- Zj=function(){Jj.registry.register({displayText(a){return a.block.getInputsInline()?$.C.EXTERNAL_INPUTS:$.C.INLINE_INPUTS},preconditionFn(a){a=a.block;if(!a.isInFlyout&&a.isMovable()&&!a.isCollapsed())for(let b=1;b<a.inputList.length;b++)if(!(a.inputList[b-1]instanceof Xj||a.inputList[b]instanceof Xj))return"enabled";return"hidden"},callback(a){a.block.setInputsInline(!a.block.getInputsInline())},scopeType:Jj.ScopeType.BLOCK,id:"blockInline",weight:3})};
263
- ak=function(){Jj.registry.register({displayText(a){return a.block.isCollapsed()?$.C.EXPAND_BLOCK:$.C.COLLAPSE_BLOCK},preconditionFn(a){a=a.block;return!a.isInFlyout&&a.isMovable()&&a.workspace.options.collapse?"enabled":"hidden"},callback(a){a.block.setCollapsed(!a.block.isCollapsed())},scopeType:Jj.ScopeType.BLOCK,id:"blockCollapseExpand",weight:4})};
264
- bk=function(){Jj.registry.register({displayText(a){return a.block.hasDisabledReason("MANUALLY_DISABLED")?$.C.ENABLE_BLOCK:$.C.DISABLE_BLOCK},preconditionFn(a){a=a.block;if(!a.isInFlyout&&a.workspace.options.disable&&a.isEditable()){var b=a.getDisabledReasons();b=b.size>(b.has("MANUALLY_DISABLED")?1:0);return a.getInheritedDisabled()||b?"disabled":"enabled"}return"hidden"},callback(a){a=a.block;var b=$.gd;b||$.B(!0);a.setDisabledReason(!a.hasDisabledReason("MANUALLY_DISABLED"),"MANUALLY_DISABLED");
265
- $.B(b)},scopeType:Jj.ScopeType.BLOCK,id:"blockDisable",weight:5})};
266
- ck=function(){Jj.registry.register({displayText(a){var b=a.block;a=b.getDescendants(!1).length;(b=b.getNextBlock())&&(a-=b.getDescendants(!1).length);return a===1?$.C.DELETE_BLOCK:$.C.DELETE_X_BLOCKS.replace("%1",`${a}`)},preconditionFn(a){return!a.block.isInFlyout&&a.block.isDeletable()?"enabled":"hidden"},callback(a){a.block&&($.t().focusNode(a.block),a.block.checkAndDelete())},scopeType:Jj.ScopeType.BLOCK,id:"blockDelete",weight:6,associatedKeyboardShortcut:"delete"})};
267
- dk=function(){Jj.registry.register({displayText(){return $.C.HELP},preconditionFn(a){a=a.block;return(typeof a.helpUrl==="function"?a.helpUrl():a.helpUrl)?"enabled":"hidden"},callback(a){a.block.showHelp()},scopeType:Jj.ScopeType.BLOCK,id:"blockHelp",weight:7})};
268
- ek=function(){Jj.registry.register({displayText:()=>$.C.REMOVE_COMMENT,preconditionFn(a){var b;return((b=a.comment)==null?0:b.isDeletable())?"enabled":"hidden"},callback(a){$.B(!0);var b;(b=a.comment)==null||b.dispose();$.B(!1);var c;(c=a.comment)==null||c.workspace.getAudioManager().play("delete")},scopeType:Jj.ScopeType.COMMENT,id:"commentDelete",weight:6,associatedKeyboardShortcut:"delete"})};
269
- fk=function(){Jj.registry.register({displayText:()=>$.C.DUPLICATE_COMMENT,preconditionFn(a){var b;return((b=a.comment)==null?0:b.isMovable())?"enabled":"hidden"},callback(a){if(a.comment){var b=a.comment.toCopyData();b&&ci(b,a.comment.workspace)}},scopeType:Jj.ScopeType.COMMENT,id:"commentDuplicate",weight:1,associatedKeyboardShortcut:"duplicate"})};
270
- gk=function(){Jj.registry.register({displayText:()=>$.C.ADD_COMMENT,preconditionFn:a=>{var b;return((b=a.workspace)==null?0:b.isMutator)?"hidden":"enabled"},callback:(a,b,c,d)=>{if(a=a.workspace)$.B(!0),b=new ch(a),b.moveTo(oc(a,new D(d.x,d.y))),$.t().focusNode(b),$.B(!1)},scopeType:Jj.ScopeType.WORKSPACE,id:"commentCreate",weight:8})};hk=function(){Kj();Lj();Mj();Oj();Pj();Tj();Uj();Wj();Zj();ak();bk();ck();dk()};M=M||{};M.scope={};M.ASSUME_ES5=!1;M.ASSUME_ES6=!1;M.ASSUME_ES2020=!1;
218
+ Fi=function(){x.registry.register({name:K.PERFORM_ACTION,preconditionFn:a=>!a.isDragging()&&!ff&&!og&&!$.t().ephemeralFocusTaken(),callback:(a,b)=>{Nd.setIsActive(!0);if((a=$.t().getFocusedNode())&&"performAction"in a){b.preventDefault();let c;(c=a.performAction)==null||c.call(a,b);return!0}return!1},keyCodes:[L.ENTER,L.SPACE],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_PERFORM_ACTION})};
219
+ Gi=function(){x.registry.register({name:K.DUPLICATE,preconditionFn:(a,b)=>{({focusedNode:b}=b);(b=!a.isDragging()&&!a.isReadOnly()&&!a.isFlyout&&(b instanceof ii?b.isDuplicatable():!0))||a.getAudioManager().playErrorBeep();return b},callback:(a,b,c,d)=>{Nd.setIsActive(!0);b=ei(d.focusedNode)&&d.focusedNode;return b?(b=b.toCopyData())?!!di(b,a):!1:!1},keyCodes:[L.D],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_DUPLICATE})};
220
+ Hi=function(){x.registry.register({name:K.CLEANUP,preconditionFn:a=>!a.isDragging()&&!a.isReadOnly()&&!a.isFlyout,callback:a=>{Nd.setIsActive(!0);a.cleanUp();return!0},keyCodes:[L.C],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_CLEANUP})};
221
+ Ii=function(){var a=x.registry.createSerializedKey(L.J,[L.CTRL_CMD]);x.registry.register({name:K.SHOW_TOOLTIP,preconditionFn:b=>!b.isDragging(),callback:b=>{var c=$.t().getFocusedNode();c!==null&&(Nd.setIsActive(!0),Uf(c,b));return!0},keyCodes:[a],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_SHOW_TOOLTIP})};
222
+ Ji=function(){var a=x.registry.createSerializedKey(L.A,[L.ALT,L.SHIFT]),b=!1;x.registry.register({name:K.TOGGLE_SCREENREADER,preconditionFn:()=>!0,callback:(c,d)=>{b=!b;Nd.setScopeChangeAudioCuesEnabled(b);c.getNavigator().setNavigationLoops(!b);var e;(e=c.getToolbox())==null||e.getNavigator().setNavigationLoops(!b);var f;(f=c.getFlyout())==null||f.getWorkspace().getNavigator().setNavigationLoops(!b);li.show(c,{message:(b?$.C.SCREENREADER_MODE_ENABLED:$.C.SCREENREADER_MODE_DISABLED).replace("%1",
223
+ re(K.TOGGLE_SCREENREADER)),duration:7,id:"screenreaderHint"});d.preventDefault();return!0},keyCodes:[a],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_TOGGLE_SCREENREADER_MODE})};
224
+ Li=function(){x.registry.register({name:K.JUMP_BLOCK_START,preconditionFn:Ki,callback(a,b,c,d){if(!d.focusedNode)return!1;a=a.getNavigator().getSourceBlockFromNode(d.focusedNode);var e;((e=a)==null?0:e.getFullBlockField())&&a.getParent()&&(a=a.getParent());if(!a)return!1;$.t().focusNode(a);return!0},keyCodes:[L.HOME],displayText:()=>$.C.SHORTCUTS_JUMP_BLOCK_START})};
225
+ Ni=function(){x.registry.register({name:K.JUMP_BLOCK_END,preconditionFn:Ki,callback(a,b,c,d){if(!d.focusedNode)return!1;a=a.getNavigator().getSourceBlockFromNode(d.focusedNode);var e;((e=a)==null?0:e.getFullBlockField())&&a.getParent()&&(a=a.getParent());if(!a)return!1;e=a.inputList;if(!e.length)return!1;e=e[e.length-1].connection;if(!(e&&e instanceof Mi))return!1;$.t().focusNode(e);return!0},keyCodes:[L.END],displayText:()=>$.C.SHORTCUTS_JUMP_BLOCK_END})};
226
+ Oi=function(){x.registry.register({name:K.JUMP_TOP_STACK,preconditionFn:Ki,callback(a,b,c,d){if(!d.focusedNode)return!1;a=a.getNavigator().getSourceBlockFromNode(d.focusedNode);if(!a)return!1;a=a.getRootBlock();$.t().focusNode(a);return!0},keyCodes:[L.PAGE_UP],displayText:()=>$.C.SHORTCUTS_JUMP_TOP_STACK})};
227
+ Pi=function(){x.registry.register({name:K.JUMP_BOTTOM_STACK,preconditionFn:Ki,callback(a,b,c,d){if(!d.focusedNode)return!1;a=a.getNavigator().getSourceBlockFromNode(d.focusedNode);if(!a)return!1;var e;a=(e=a.getRootBlock().lastConnectionInStack(!1))==null?void 0:e.getSourceBlock();if(!a)return!1;e=a.getDescendants(!0);e=e[e.length-1];$.t().focusNode(e);return!0},keyCodes:[L.PAGE_DOWN],displayText:()=>$.C.SHORTCUTS_JUMP_BOTTOM_STACK})};
228
+ Qi=function(){var a=x.registry.createSerializedKey(L.HOME,[L.CTRL_CMD]);x.registry.register({name:K.JUMP_FIRST_BLOCK,preconditionFn:b=>!b.isDragging()&&!$.t().ephemeralFocusTaken(),callback(b){b=b.getTopBlocks(!0);if(!b.length)return!1;$.t().focusNode(b[0]);return!0},keyCodes:[a],displayText:()=>$.C.SHORTCUTS_JUMP_FIRST_BLOCK})};
229
+ Ri=function(){var a=x.registry.createSerializedKey(L.END,[L.CTRL_CMD]);x.registry.register({name:K.JUMP_LAST_BLOCK,preconditionFn:b=>!b.isDragging()&&!$.t().ephemeralFocusTaken(),callback(b){b=b.getAllBlocks(!0);if(!b.length)return!1;$.t().focusNode(b[b.length-1]);return!0},keyCodes:[a],displayText:()=>$.C.SHORTCUTS_JUMP_LAST_BLOCK})};Si=function(){hi();ji();mi();ni();oi();pi();qi()};Ti=function(){ui();ti();xi();yi();vi();Bi();Ci();Ei();Fi();Gi();Hi();Ii()};Ui=function(){zi();Ai();Ji()};
230
+ Yi=function(a,b=!1){var c=$.C.KEYBOARD_NAV_UNCONSTRAINED_MOVE_HINT.replace("%1",ma||Vi||Wi?$.C.COMMAND_KEY:$.C.CONTROL_KEY).replace("%2",$.C.ENTER_KEY);li.show(a,{message:c,id:"unconstrainedMoveHint",oncePerSession:!b})};Zi=function(a){var b=$.C.KEYBOARD_NAV_CONSTRAINED_MOVE_HINT.replace("%1",$.C.ENTER_KEY);li.show(a,{message:b,id:"constrainedMoveHint",oncePerSession:!0})};
231
+ $i=function(a){var b=[];for(var c of a.getIcons()){if(a.isCollapsed()&&!c.isShownWhenCollapsed())continue;b.push(c);let d;xd(c)&&c.bubbleIsVisible()&&(d=c.getBubble())&&b.push(d)}for(let d of a.inputList){if(!d.isVisible())continue;b.push(...d.fieldRow);c=d.connection;if(!c)continue;b.push(c);c=c.targetBlock();if(!c)continue;b.push(c);(c=c.lastConnectionInStack(!1))&&b.push(c)}a.nextConnection&&!a.isCollapsed()&&b.push(a.nextConnection);return b};
232
+ aj=function(a,b,c){a=$i(a);b=a.indexOf(b);if(b===-1)return null;c=b+c;return c>=0&&c<a.length?a[c]:null};bj=function(a){return a&&typeof a.getChildToolboxItems==="function"&&typeof a.isExpanded==="function"&&typeof a.toggleExpanded==="function"&&ve(a)&&a.isCollapsible()};cj=function(a){var b=a.options.toolboxPosition;return a.options.RTL&&b!==F.TOP&&b!==F.BOTTOM?b===F.LEFT?F.RIGHT:F.LEFT:b};dj=function(a,b){A(y.ICON,a.toString(),b)};
233
+ ej=function(a){return typeof a.getProcedureModel==="function"&&typeof a.doProcedureUpdate==="function"&&typeof a.isProcedureDef==="function"};fj=function(a){return a&&typeof a.startPublishing==="function"&&typeof a.stopPublishing==="function"};
234
+ hj=function(a){var b=a.getProcedureMap().getProcedures().filter(d=>!d.getReturnTypes()).map(d=>[d.getName(),d.getParameters().map(e=>e.getName()),!1]);a.getBlocksByType("procedures_defnoreturn",!1).forEach(d=>{!ej(d)&&zd(d)&&b.push(d.getProcedureDef())});var c=a.getProcedureMap().getProcedures().filter(d=>!!d.getReturnTypes()).map(d=>[d.getName(),d.getParameters().map(e=>e.getName()),!0]);a.getBlocksByType("procedures_defreturn",!1).forEach(d=>{!ej(d)&&zd(d)&&c.push(d.getProcedureDef())});b.sort(gj);
235
+ c.sort(gj);return[b,c]};gj=function(a,b){return a[0].localeCompare(b[0],void 0,{sensitivity:"base"})};$.jj=function(a,b){if(b.isInFlyout)return a;for(a=a||$.C.UNNAMED_KEY||"unnamed";ij(a,b.workspace,b);){let c=a.match(/^(.*?)(\d+)$/);a=c?c[1]+(parseInt(c[2])+1):a+"2"}return a};
236
+ ij=function(a,b,c){for(let d of b.getAllBlocks(!1))if(d!==c&&zd(d)&&$.kj.equals(d.getProcedureDef()[0],a))return!0;c=c&&ej(c)?c==null?void 0:c.getProcedureModel():void 0;for(let d of b.getProcedureMap().getProcedures())if(d!==c&&$.kj.equals(d.getName(),a))return!0;return!1};
237
+ $.mj=function(a){var b=this.getSourceBlock();if(!b)throw new lj;a=a.trim();var c=$.jj(a,b);ej(b)&&!b.isInsertionMarker()&&b.getProcedureModel().setName(c);var d=this.getValue();if(d!==a&&d!==c)for(a=b.workspace.getAllBlocks(!1),b=0;b<a.length;b++){let e=a[b];e.renameProcedure&&e.renameProcedure(d,c)}return c};
238
+ nj=function(a){function b(d,e){for(let [f,g]of d)c.push({kind:"block",type:e,gap:16,extraState:{name:f,params:g}})}var c=[];zb.procedures_defnoreturn&&c.push({kind:"block",type:"procedures_defnoreturn",gap:16,fields:{NAME:$.C.PROCEDURES_DEFNORETURN_PROCEDURE}});zb.procedures_defreturn&&c.push({kind:"block",type:"procedures_defreturn",gap:16,fields:{NAME:$.C.PROCEDURES_DEFRETURN_PROCEDURE}});zb.procedures_ifreturn&&c.push({kind:"block",type:"procedures_ifreturn",gap:16});c.length&&(c[c.length-1].gap=
239
+ 24);a=hj(a);b(a[0],"procedures_callnoreturn");b(a[1],"procedures_callreturn");return c};oj=function(a){var b=[],c=a.getBlocksByType("procedures_mutatorarg",!1);for(let f=0,g;g=c[f];f++)b.push(g.getFieldValue("NAME"));c=$.rc("xml");var d=$.rc("block");d.setAttribute("type","procedures_mutatorarg");var e=$.rc("field");e.setAttribute("name","NAME");b=Kd("x",b);b=$.sc(b);e.appendChild(b);d.appendChild(e);c.appendChild(d);a.updateToolbox(c)};
240
+ qj=function(a){if(a.type===v.BUBBLE_OPEN&&a.bubbleType==="mutator"&&a.isOpen&&a.blockId){a=fb(a.workspaceId).getBlockById(a.blockId);var b=a.type;if(b==="procedures_defnoreturn"||b==="procedures_defreturn")a=a.getIcon($.sh.TYPE).getWorkspace(),oj(a),a.addChangeListener(pj)}};pj=function(a){if(a.type===v.BLOCK_CREATE||a.type===v.BLOCK_DELETE||a.type===v.BLOCK_CHANGE||a.type===v.BLOCK_FIELD_INTERMEDIATE_CHANGE)a=fb(a.workspaceId),oj(a)};
241
+ rj=function(a,b){return b.getAllBlocks(!1).filter(c=>ej(c)&&!c.isProcedureDef()&&c.getProcedureModel()&&$.kj.equals(c.getProcedureModel().getName(),a)||c&&typeof c.getProcedureCall==="function"&&typeof c.renameProcedure==="function"&&$.kj.equals(c.getProcedureCall(),a))};
242
+ $.sj=function(a){var b=$.Qc,c=a.getProcedureDef()[0],d=a.mutationToDom(!0);a=rj(c,a.workspace);for(let f=0,g;g=a[f];f++){c=(c=g.mutationToDom())&&xc(c);g.domToMutation&&g.domToMutation(d);var e=g.mutationToDom();e=e&&xc(e);c!==e&&($.Qc=!1,w(new (u(v.BLOCK_CHANGE))(g,"mutation",null,c,e)),$.Qc=b)}};$.tj=function(a,b){for(let c of b.getAllBlocks(!1))if(ej(c)&&c.isProcedureDef()&&$.kj.equals(c.getProcedureModel().getName(),a)||zd(c)&&$.kj.equals(c.getProcedureDef()[0],a))return c;return null};
243
+ uj=function(a,b){A(y.RENDERER,a,b)};vj=function(a,b,c){a=new (Fb(y.RENDERER,a,void 0))(a);a.init(b,c);return a};wj=function(a){Dd(a.getTargetWorkspace(),void 0,"String")};xj=function(a){Dd(a.getTargetWorkspace(),void 0,"Number")};yj=function(a){Dd(a.getTargetWorkspace(),void 0,"Colour")};
244
+ zj=function(a){zb.variables_set_dynamic||zb.variables_get_dynamic||console.warn("There are no dynamic variable blocks, but there is a dynamic variable category.");a.registerButtonCallback("CREATE_VARIABLE_STRING",wj);a.registerButtonCallback("CREATE_VARIABLE_NUMBER",xj);a.registerButtonCallback("CREATE_VARIABLE_COLOUR",yj);return[{kind:"button",text:$.C.NEW_STRING_VARIABLE,callbackkey:"CREATE_VARIABLE_STRING"},{kind:"button",text:$.C.NEW_NUMBER_VARIABLE,callbackkey:"CREATE_VARIABLE_NUMBER"},{kind:"button",
245
+ text:$.C.NEW_COLOUR_VARIABLE,callbackkey:"CREATE_VARIABLE_COLOUR"},...Ed(a,a.getVariableMap().getAllVariables(),!1,"variables_get_dynamic","variables_set_dynamic")]};Aj=function(a){var b=a.saveState();if(!a.getParameters().length)return b;b.parameters=a.getParameters().map(c=>c.saveState());return b};Bj=function(a,b,c,d){a=a.loadState(c,d);if(!c.parameters)return a;for(let [e,f]of c.parameters.entries())a.insertParameter(b.loadState(f,d),e);return a};
246
+ Dj=function(a,b){a.setAttribute("dir","LTR");wa(a,b.hasCss,b.pathToMedia);var c=r(q.SVG,{xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1","class":"blocklySvg"},a),d=r(q.DEFS,{},c),e=String(Math.random()).substring(2);b.gridPattern=Cj.createDom(e,b.gridOptions,d,a);return c};
247
+ Ej=function(a,b,c){c.parentWorkspace=null;c=new $h(c);var d=c.options;c.scale=d.zoomOptions.startScale;b.appendChild(c.createDom("blocklyMainBackground",a));var e=c.getRenderer().getClassName();e&&n(a,e);(e=c.getTheme().getClassName())&&n(a,e);!d.hasCategories&&d.languageTree&&(e=c.addFlyout(q.SVG),a.insertBefore(e,b));d.hasTrashcan&&c.addTrashcan();d.zoomOptions&&d.zoomOptions.controls&&c.addZoomControls();c.getThemeManager().subscribe(b,"workspaceBackgroundColour","background-color");c.translate(0,
248
+ 0);c.addChangeListener(Xh(c));tb(c);ng();Te();Df();return c};
249
+ Ij=function(a){var b=a.options,c=a.getParentSvg();k(c.parentNode,"contextmenu",null,function(d){la(d)||d.preventDefault()});c=k(window,"resize",null,function(){Lf();a.hideComponents(!0);sf();zg();tb(a);Wh(a)});a.setResizeHandlerWrapper(c);Fj();if(b.languageTree){c=a.getToolbox();let d=a.getFlyout(!0);c?c.init():d&&(d.init(a),d.show(b.languageTree),typeof d.scrollToStart==="function"&&d.scrollToStart())}b.hasTrashcan&&a.trashcan.init();b.zoomOptions&&b.zoomOptions.controls&&a.zoomControls_.init();
250
+ b.moveOptions&&b.moveOptions.scrollbars?(a.scrollbar=new Gj(a,b.moveOptions.scrollbars===!0||!!b.moveOptions.scrollbars.horizontal,b.moveOptions.scrollbars===!0||!!b.moveOptions.scrollbars.vertical,"blocklyMainWorkspaceScrollbar"),a.scrollbar.resize()):a.setMetrics({x:.5,y:.5});b.hasSounds&&Hj(b.pathToMedia,a)};
251
+ Fj=function(){Jj||(k(document,"scroll",null,function(){var a=gb();for(let b=0,c;c=a[b];b++)c instanceof $h&&c.updateInverseScreenCTM()}),ja(document,"touchend",null,aa),ja(document,"touchcancel",null,aa),ja(document,"keydown",null,function(a){a.key==="Tab"&&Nd.setIsActive(!0)}));Jj=!0};Hj=function(a,b){b=b.getAudioManager();b.load([`${a}click.mp3`],"click");b.load([`${a}disconnect.mp3`],"disconnect");b.load([`${a}delete.mp3`],"delete");b.load([`${a}drop.mp3`],"drop")};
252
+ Lj=function(){Kj.registry.register({displayText(){return $.C.UNDO},preconditionFn(a){return a.workspace.getUndoStack().length>0?"enabled":"disabled"},callback(a){a.workspace.undo()},scopeType:Kj.ScopeType.WORKSPACE,id:"undoWorkspace",weight:1,associatedKeyboardShortcut:"undo"})};
253
+ Mj=function(){Kj.registry.register({displayText(){return $.C.REDO},preconditionFn(a){return a.workspace.getRedoStack().length>0?"enabled":"disabled"},callback(a){a.workspace.redo()},scopeType:Kj.ScopeType.WORKSPACE,id:"redoWorkspace",weight:2,associatedKeyboardShortcut:"redo"})};
254
+ Nj=function(){Kj.registry.register({displayText(){return $.C.CLEAN_UP},preconditionFn(a){return a.workspace.isMovable()?a.workspace.getTopBlocks(!1).length>1?"enabled":"disabled":"hidden"},callback(a){a.workspace.cleanUp()},scopeType:Kj.ScopeType.WORKSPACE,id:"cleanWorkspace",weight:3,associatedKeyboardShortcut:"cleanup"})};
255
+ Oj=function(a,b){function c(f){e--;f.setCollapsed(a);e===0&&$.B(!1)}var d=0,e=0;$.B(!0);for(let f=0;f<b.length;f++){let g=b[f];for(;g;)e++,setTimeout(c.bind(null,g),d),g=g.getNextBlock(),d+=10}};
256
+ Pj=function(){Kj.registry.register({displayText(){return $.C.COLLAPSE_ALL},preconditionFn(a){if(a.workspace.options.collapse){a=a.workspace.getTopBlocks(!1);for(let b=0;b<a.length;b++){let c=a[b];for(;c;){if(!c.isCollapsed())return"enabled";c=c.getNextBlock()}}return"disabled"}return"hidden"},callback(a){Oj(!0,a.workspace.getTopBlocks(!0))},scopeType:Kj.ScopeType.WORKSPACE,id:"collapseWorkspace",weight:4})};
257
+ Qj=function(){Kj.registry.register({displayText(){return $.C.EXPAND_ALL},preconditionFn(a){if(a.workspace.options.collapse){a=a.workspace.getTopBlocks(!1);for(let b=0;b<a.length;b++){let c=a[b];for(;c;){if(c.isCollapsed())return"enabled";c=c.getNextBlock()}}return"disabled"}return"hidden"},callback(a){Oj(!1,a.workspace.getTopBlocks(!0))},scopeType:Kj.ScopeType.WORKSPACE,id:"expandWorkspace",weight:5})};
258
+ Rj=function(a,b){if(a.isDeletable())Array.prototype.push.apply(b,a.getDescendants(!1));else{a=a.getChildren(!1);for(let c=0;c<a.length;c++)Rj(a[c],b)}};Sj=function(a){var b=[];a=a.getTopBlocks(!0);for(let c=0;c<a.length;c++)Rj(a[c],b);return b};Tj=function(a,b){b?$.B(b):($.B(!0),b=$.gd);var c=a.shift();c&&(c.isDeadOrDying()?Tj(a,b):(c.dispose(!1,!0),setTimeout(Tj,10,a,b)));$.B(!1)};
259
+ Uj=function(){Kj.registry.register({displayText(a){if(!a.workspace)return"";a=Sj(a.workspace).length;return a===1?$.C.DELETE_BLOCK:$.C.DELETE_X_BLOCKS.replace("%1",`${a}`)},preconditionFn(a){return a.workspace?Sj(a.workspace).length>0?"enabled":"disabled":"disabled"},callback(a){if(a.workspace){a.workspace.cancelCurrentGesture();var b=Sj(a.workspace);b.length<2?Tj(b):td($.C.DELETE_ALL_BLOCKS.replace("%1",String(b.length)),function(c){c&&Tj(b)})}},scopeType:Kj.ScopeType.WORKSPACE,id:"workspaceDelete",
260
+ weight:6})};Vj=function(){Kj.registry.register({displayText(){return $.C.DUPLICATE_BLOCK},preconditionFn(a){a=a.block;return!a.isInFlyout&&a.isDeletable()&&a.isMovable()?a.isDuplicatable()?"enabled":"disabled":"hidden"},callback(a){if(a.block){var b=a.block.toCopyData();b&&di(b,a.block.workspace)}},scopeType:Kj.ScopeType.BLOCK,id:"blockDuplicate",weight:1,associatedKeyboardShortcut:"duplicate"})};
261
+ Xj=function(){Kj.registry.register({displayText(a){return a.block.hasIcon(Wj.TYPE)?$.C.REMOVE_COMMENT:$.C.ADD_COMMENT},preconditionFn(a){a=a.block;var b;if((b=a&&!a.isInFlyout&&a.workspace.options.comments&&!a.isCollapsed()&&a.isEditable())&&!(b=a.hasIcon(Wj.TYPE))){if(a&&a.isSimpleReporter()){var c;a=(c=a.getFields().next().value)==null?void 0:c.isFullBlockField()}else a=!1;b=!a}return b?"enabled":"hidden"},callback(a){(a=a.block)&&a.hasIcon(Wj.TYPE)?a.setCommentText(null):a.setCommentText("")},
262
+ scopeType:Kj.ScopeType.BLOCK,id:"blockComment",weight:2})};
263
+ Zj=function(){Kj.registry.register({displayText(a){return a.block.getInputsInline()?$.C.EXTERNAL_INPUTS:$.C.INLINE_INPUTS},preconditionFn(a){a=a.block;if(!a.isInFlyout&&a.isMovable()&&!a.isCollapsed())for(let b=1;b<a.inputList.length;b++)if(!(a.inputList[b-1]instanceof Yj||a.inputList[b]instanceof Yj))return"enabled";return"hidden"},callback(a){a.block.setInputsInline(!a.block.getInputsInline())},scopeType:Kj.ScopeType.BLOCK,id:"blockInline",weight:3})};
264
+ bk=function(){Kj.registry.register({displayText(a){return a.block.isCollapsed()?$.C.EXPAND_BLOCK:$.C.COLLAPSE_BLOCK},preconditionFn(a){a=a.block;return!a.isInFlyout&&a.isMovable()&&a.workspace.options.collapse?"enabled":"hidden"},callback(a){a.block.setCollapsed(!a.block.isCollapsed())},scopeType:Kj.ScopeType.BLOCK,id:"blockCollapseExpand",weight:4})};
265
+ ck=function(){Kj.registry.register({displayText(a){return a.block.hasDisabledReason("MANUALLY_DISABLED")?$.C.ENABLE_BLOCK:$.C.DISABLE_BLOCK},preconditionFn(a){a=a.block;if(!a.isInFlyout&&a.workspace.options.disable&&a.isEditable()){var b=a.getDisabledReasons();b=b.size>(b.has("MANUALLY_DISABLED")?1:0);return a.getInheritedDisabled()||b?"disabled":"enabled"}return"hidden"},callback(a){a=a.block;var b=$.gd;b||$.B(!0);a.setDisabledReason(!a.hasDisabledReason("MANUALLY_DISABLED"),"MANUALLY_DISABLED");
266
+ $.B(b)},scopeType:Kj.ScopeType.BLOCK,id:"blockDisable",weight:5})};
267
+ dk=function(){Kj.registry.register({displayText(a){var b=a.block;a=b.getDescendants(!1).length;(b=b.getNextBlock())&&(a-=b.getDescendants(!1).length);return a===1?$.C.DELETE_BLOCK:$.C.DELETE_X_BLOCKS.replace("%1",`${a}`)},preconditionFn(a){return!a.block.isInFlyout&&a.block.isDeletable()?"enabled":"hidden"},callback(a){a.block&&($.t().focusNode(a.block),a.block.checkAndDelete())},scopeType:Kj.ScopeType.BLOCK,id:"blockDelete",weight:6,associatedKeyboardShortcut:"delete"})};
268
+ ek=function(){Kj.registry.register({displayText(){return $.C.HELP},preconditionFn(a){a=a.block;return(typeof a.helpUrl==="function"?a.helpUrl():a.helpUrl)?"enabled":"hidden"},callback(a){a.block.showHelp()},scopeType:Kj.ScopeType.BLOCK,id:"blockHelp",weight:7})};
269
+ fk=function(){Kj.registry.register({displayText:()=>$.C.REMOVE_COMMENT,preconditionFn(a){var b;return((b=a.comment)==null?0:b.isDeletable())?"enabled":"hidden"},callback(a){$.B(!0);var b;(b=a.comment)==null||b.dispose();$.B(!1);var c;(c=a.comment)==null||c.workspace.getAudioManager().play("delete")},scopeType:Kj.ScopeType.COMMENT,id:"commentDelete",weight:6,associatedKeyboardShortcut:"delete"})};
270
+ gk=function(){Kj.registry.register({displayText:()=>$.C.DUPLICATE_COMMENT,preconditionFn(a){var b;return((b=a.comment)==null?0:b.isMovable())?"enabled":"hidden"},callback(a){if(a.comment){var b=a.comment.toCopyData();b&&di(b,a.comment.workspace)}},scopeType:Kj.ScopeType.COMMENT,id:"commentDuplicate",weight:1,associatedKeyboardShortcut:"duplicate"})};
271
+ hk=function(){Kj.registry.register({displayText:()=>$.C.ADD_COMMENT,preconditionFn:a=>{var b;return((b=a.workspace)==null?0:b.isMutator)?"hidden":"enabled"},callback:(a,b,c,d)=>{if(a=a.workspace)$.B(!0),b=new dh(a),b.moveTo(oc(a,new D(d.x,d.y))),$.t().focusNode(b),$.B(!1)},scopeType:Kj.ScopeType.WORKSPACE,id:"commentCreate",weight:8})};ik=function(){Lj();Mj();Nj();Pj();Qj();Uj();Vj();Xj();Zj();bk();ck();dk();ek()};M=M||{};M.scope={};M.ASSUME_ES2020=!1;M.ASSUME_ES6=M.ASSUME_ES2020;M.ASSUME_ES5=M.ASSUME_ES6;
271
272
  M.ASSUME_NO_NATIVE_MAP=!1;M.ASSUME_NO_NATIVE_SET=!1;M.ISOLATE_POLYFILLS=!1;M.FORCE_POLYFILL_PROMISE=!1;M.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;M.INSTRUMENT_ASYNC_CONTEXT=!0;M.objectCreate=M.ASSUME_ES5||typeof Object.create=="function"?Object.create:function(a){function b(){}b.prototype=a;return new b};M.defineProperty=M.ASSUME_ES5||typeof Object.defineProperties=="function"?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};
272
273
  M.getGlobal=function(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");};M.global=M.ASSUME_ES2020?globalThis:M.getGlobal(this);M.IS_SYMBOL_NATIVE=typeof Symbol==="function"&&typeof Symbol("x")==="symbol";M.TRUST_ES6_POLYFILLS=!M.ISOLATE_POLYFILLS||M.IS_SYMBOL_NATIVE;M.polyfills={};
273
- M.propertyToPolyfillSymbol={};M.POLYFILL_PREFIX="$jscp$";var ik="Int8 Uint8 Uint8Clamped Int16 Uint16 Int32 Uint32 Float32 Float64".split(" ");M.global.BigInt64Array&&(ik.push("BigInt64"),ik.push("BigUint64"));M.TYPED_ARRAY_CLASSES=ik;M.polyfillTypedArrayMethod=function(a,b,c,d){if(b)for(var e=0;e<M.TYPED_ARRAY_CLASSES.length;e++){var f=M.TYPED_ARRAY_CLASSES[e]+"Array.prototype."+a;M.ISOLATE_POLYFILLS?M.polyfillIsolated(f,b,c,d):M.polyfillUnisolated(f,b,c,d)}};
274
+ M.propertyToPolyfillSymbol={};M.POLYFILL_PREFIX="$jscp$";var jk="Int8 Uint8 Uint8Clamped Int16 Uint16 Int32 Uint32 Float32 Float64".split(" ");M.global.BigInt64Array&&(jk.push("BigInt64"),jk.push("BigUint64"));M.TYPED_ARRAY_CLASSES=jk;M.polyfillTypedArrayMethod=function(a,b,c,d){if(b)for(var e=0;e<M.TYPED_ARRAY_CLASSES.length;e++){var f=M.TYPED_ARRAY_CLASSES[e]+"Array.prototype."+a;M.ISOLATE_POLYFILLS?M.polyfillIsolated(f,b,c,d):M.polyfillUnisolated(f,b,c,d)}};
274
275
  M.polyfill=function(a,b,c,d){b&&(M.ISOLATE_POLYFILLS?M.polyfillIsolated(a,b,c,d):M.polyfillUnisolated(a,b,c,d))};M.polyfillUnisolated=function(a,b){var c=M.global;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))return;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&b!=null&&M.defineProperty(c,a,{configurable:!0,writable:!0,value:b})};
275
276
  M.polyfillIsolated=function(a,b,c){var d=a.split(".");a=d.length===1;var e=d[0];e=!a&&e in M.polyfills?M.polyfills:M.global;for(var f=0;f<d.length-1;f++){var g=d[f];if(!(g in e))return;e=e[g]}d=d[d.length-1];c=M.IS_SYMBOL_NATIVE&&c==="es6"?e[d]:null;b=b(c);b!=null&&(a?M.defineProperty(M.polyfills,d,{configurable:!0,writable:!0,value:b}):b!==c&&(M.propertyToPolyfillSymbol[d]===void 0&&(a=Math.random()*1E9>>>0,M.propertyToPolyfillSymbol[d]=M.IS_SYMBOL_NATIVE?M.global.Symbol(d):M.POLYFILL_PREFIX+a+"$"+
276
277
  d),M.defineProperty(e,M.propertyToPolyfillSymbol[d],{configurable:!0,writable:!0,value:b})))};
@@ -302,14 +303,14 @@ M.getSmallerAndLargerSets=function(a,b){return a.size<=b.size?{smallerSetIterato
302
303
  M.iteratorFromArray=function(a,b){if(M.ASSUME_ES6)return a[Symbol.iterator]();a instanceof String&&(a+="");var c=0,d=!1,e={next:function(){if(!d&&c<a.length){var f=c++;return{value:b(f,a[f]),done:!1}}d=!0;return{done:!0,value:void 0}}};e[Symbol.iterator]=function(){return e};return e};M.polyfill("Array.prototype.values",function(a){return a?a:function(){return M.iteratorFromArray(this,function(b,c){return c})}},"es8","es3");
303
304
  M.polyfill("Array.prototype.flatMap",function(a){return a?a:function(b,c){var d=[];Array.prototype.forEach.call(this,function(e,f){e=b.call(c,e,f,this);Array.isArray(e)?d.push.apply(d,e):d.push(e)});return d}},"es9","es5");M.polyfill("Array.prototype.flat",function(a){return a?a:function(b){b=b===void 0?1:b;var c=[];Array.prototype.forEach.call(this,function(d){Array.isArray(d)&&b>0?(d=Array.prototype.flat.call(d,b-1),c.push.apply(c,d)):c.push(d)});return c}},"es9","es5");
304
305
  M.polyfill("Object.entries",function(a){return a?a:function(b){var c=[],d;for(d in b)M.owns(b,d)&&c.push([d,b[d]]);return c}},"es8","es3");
305
- var jk="ontouchstart"in globalThis||!!(globalThis.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!globalThis.navigator||!globalThis.navigator.maxTouchPoints&&!globalThis.navigator.msMaxTouchPoints),ha=null,ja={mousedown:["pointerdown"],mouseenter:["pointerenter"],mouseleave:["pointerleave"],mousemove:["pointermove"],mouseout:["pointerout"],mouseover:["pointerover"],mouseup:["pointerup","pointercancel"],touchend:["pointerup"],touchcancel:["pointercancel"]},ba=0,kk=
306
- {TOUCH_ENABLED:jk,TOUCH_MAP:ja};kk.checkTouchIdentifier=da;kk.clearTouchIdentifier=function(){ha=null};kk.getTouchIdentifierFromEvent=fa;kk.longStart=ca;kk.longStop=aa;kk.shouldHandleEvent=ea;var lk,mk,nk,ok,pk,qk,rk,sk,tk,uk;(function(a){function b(d){return c.includes(d.toUpperCase())}lk=a;var c=lk.toUpperCase();mk=b("JavaFX");nk=b("WebKit");ok=b("Gecko")&&!nk;pk=b("Android");a=globalThis.navigator&&globalThis.navigator.maxTouchPoints;qk=b("iPad")||b("Macintosh")&&a>0;rk=b("iPhone")&&!qk;sk=b("Macintosh");tk=qk||pk&&!b("Mobile")||b("Silk");uk=!tk&&(rk||pk)})(globalThis.navigator&&globalThis.navigator.userAgent||"");
307
- var Xc=mk,vk=ok,wk=pk,Ui=qk,Wi=rk,na=sk,xk=uk,pe=na||Ui||Wi,yk={ANDROID:wk,APPLE:pe,GECKO:vk,IPAD:Ui,IPHONE:Wi,JavaFx:Xc,MAC:na,MOBILE:xk,raw:lk};var zk={};zk.bind=ka;zk.conditionalBind=k;zk.getScrollDeltaPixels=qa;zk.isRightButton=oa;zk.isTargetInput=ma;zk.mouseToSvg=pa;zk.unbind=la;var Ak={};Ak.removeElem=ra;var Bk=class{constructor(a){this.name=a}toString(){return this.name}};Bk.POSITIONABLE=new Bk("positionable");Bk.DRAG_TARGET=new Bk("drag_target");Bk.DELETE_AREA=new Bk("delete_area");Bk.AUTOHIDEABLE=new Bk("autohideable");Bk.FOCUSABLE=new Bk("focusable");
308
- var Ck=class{constructor(){this.componentData=new Map;this.capabilityToComponentIds=new Map}addComponent(a,b){var c=a.component.id;if(!b&&this.componentData.has(c)){var d;throw Error('Plugin "'+c+'" with capabilities "'+((d=this.componentData.get(c))==null?void 0:d.capabilities)+'" already added.');}this.componentData.set(c,a);b=[];for(d=0;d<a.capabilities.length;d++){let e=String(a.capabilities[d]).toLowerCase();b.push(e);if(this.capabilityToComponentIds.has(e)){let f;(f=this.capabilityToComponentIds.get(e))==
309
- null||f.push(c)}else this.capabilityToComponentIds.set(e,[c])}this.componentData.get(c).capabilities=b}removeComponent(a){var b=this.componentData.get(a);if(b){for(let c=0;c<b.capabilities.length;c++){let d=String(b.capabilities[c]).toLowerCase();ra(this.capabilityToComponentIds.get(d),a)}this.componentData.delete(a)}}addCapability(a,b){if(!this.getComponent(a))throw Error('Cannot add capability, "'+b+'". Plugin "'+a+'" has not been added to the ComponentManager');if(this.hasCapability(a,b))console.warn('Plugin "'+
310
- a+'already has capability "'+b+'"');else{b=`${b}`.toLowerCase();var c;(c=this.componentData.get(a))==null||c.capabilities.push(b);var d;(d=this.capabilityToComponentIds.get(b))==null||d.push(a)}}removeCapability(a,b){if(!this.getComponent(a))throw Error('Cannot remove capability, "'+b+'". Plugin "'+a+'" has not been added to the ComponentManager');this.hasCapability(a,b)?(b=`${b}`.toLowerCase(),ra(this.componentData.get(a).capabilities,b),ra(this.capabilityToComponentIds.get(b),a)):console.warn('Plugin "'+
306
+ var kk="ontouchstart"in globalThis||!!(globalThis.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!globalThis.navigator||!globalThis.navigator.maxTouchPoints&&!globalThis.navigator.msMaxTouchPoints),ha=null,ia={mousedown:["pointerdown"],mouseenter:["pointerenter"],mouseleave:["pointerleave"],mousemove:["pointermove"],mouseout:["pointerout"],mouseover:["pointerover"],mouseup:["pointerup","pointercancel"],touchend:["pointerup"],touchcancel:["pointercancel"]},ba=0,lk=
307
+ {TOUCH_ENABLED:kk,TOUCH_MAP:ia};lk.checkTouchIdentifier=da;lk.clearTouchIdentifier=function(){ha=null};lk.getTouchIdentifierFromEvent=fa;lk.longStart=ca;lk.longStop=aa;lk.shouldHandleEvent=ea;var mk,nk,ok,pk,qk,rk,sk,tk,uk,vk;(function(a){function b(d){return c.includes(d.toUpperCase())}mk=a;var c=mk.toUpperCase();nk=b("JavaFX");ok=b("WebKit");pk=b("Gecko")&&!ok;qk=b("Android");a=globalThis.navigator&&globalThis.navigator.maxTouchPoints;rk=b("iPad")||b("Macintosh")&&a>0;sk=b("iPhone")&&!rk;tk=b("Macintosh");uk=rk||qk&&!b("Mobile")||b("Silk");vk=!uk&&(sk||qk)})(globalThis.navigator&&globalThis.navigator.userAgent||"");
308
+ var Xc=nk,wk=pk,xk=qk,Vi=rk,Wi=sk,ma=tk,yk=vk,qe=ma||Vi||Wi,zk={ANDROID:xk,APPLE:qe,GECKO:wk,IPAD:Vi,IPHONE:Wi,JavaFx:Xc,MAC:ma,MOBILE:yk,raw:mk};var Ak={};Ak.bind=ja;Ak.conditionalBind=k;Ak.getScrollDeltaPixels=pa;Ak.isRightButton=na;Ak.isTargetInput=la;Ak.mouseToSvg=oa;Ak.unbind=ka;var Bk={};Bk.removeElem=qa;var Ck=class{constructor(a){this.name=a}toString(){return this.name}};Ck.POSITIONABLE=new Ck("positionable");Ck.DRAG_TARGET=new Ck("drag_target");Ck.DELETE_AREA=new Ck("delete_area");Ck.AUTOHIDEABLE=new Ck("autohideable");Ck.FOCUSABLE=new Ck("focusable");
309
+ var Dk=class{constructor(){this.componentData=new Map;this.capabilityToComponentIds=new Map}addComponent(a,b){var c=a.component.id;if(!b&&this.componentData.has(c)){var d;throw Error('Plugin "'+c+'" with capabilities "'+((d=this.componentData.get(c))==null?void 0:d.capabilities)+'" already added.');}this.componentData.set(c,a);b=[];for(d=0;d<a.capabilities.length;d++){let e=String(a.capabilities[d]).toLowerCase();b.push(e);if(this.capabilityToComponentIds.has(e)){let f;(f=this.capabilityToComponentIds.get(e))==
310
+ null||f.push(c)}else this.capabilityToComponentIds.set(e,[c])}this.componentData.get(c).capabilities=b}removeComponent(a){var b=this.componentData.get(a);if(b){for(let c=0;c<b.capabilities.length;c++){let d=String(b.capabilities[c]).toLowerCase();qa(this.capabilityToComponentIds.get(d),a)}this.componentData.delete(a)}}addCapability(a,b){if(!this.getComponent(a))throw Error('Cannot add capability, "'+b+'". Plugin "'+a+'" has not been added to the ComponentManager');if(this.hasCapability(a,b))console.warn('Plugin "'+
311
+ a+'already has capability "'+b+'"');else{b=`${b}`.toLowerCase();var c;(c=this.componentData.get(a))==null||c.capabilities.push(b);var d;(d=this.capabilityToComponentIds.get(b))==null||d.push(a)}}removeCapability(a,b){if(!this.getComponent(a))throw Error('Cannot remove capability, "'+b+'". Plugin "'+a+'" has not been added to the ComponentManager');this.hasCapability(a,b)?(b=`${b}`.toLowerCase(),qa(this.componentData.get(a).capabilities,b),qa(this.capabilityToComponentIds.get(b),a)):console.warn('Plugin "'+
311
312
  a+"doesn't have capability \""+b+'" to remove')}hasCapability(a,b){b=`${b}`.toLowerCase();return this.componentData.has(a)&&this.componentData.get(a).capabilities.includes(b)}getComponent(a){var b;return(b=this.componentData.get(a))==null?void 0:b.component}getComponents(a,b){a=`${a}`.toLowerCase();a=this.capabilityToComponentIds.get(a);if(!a)return[];var c=[];if(b){let d=[];a.forEach(e=>{d.push(this.componentData.get(e))});d.sort(function(e,f){return e.weight-f.weight});d.forEach(function(e){c.push(e.component)})}else a.forEach(d=>
312
- {c.push(this.componentData.get(d).component)});return c}};Ck.Capability=Bk;var Dk=Ck||(Ck={}),Ek=Dk.ComponentWeight||(Dk.ComponentWeight={});Ek[Ek.TOOLBOX_WEIGHT=0]="TOOLBOX_WEIGHT";Ek[Ek.FLYOUT_WEIGHT=1]="FLYOUT_WEIGHT";Ek[Ek.TRASHCAN_WEIGHT=2]="TRASHCAN_WEIGHT";Ek[Ek.ZOOM_CONTROLS_WEIGHT=3]="ZOOM_CONTROLS_WEIGHT";var ua=new WeakSet,sa=[],va=`
313
+ {c.push(this.componentData.get(d).component)});return c}};Dk.Capability=Ck;var Ek=Dk||(Dk={}),Fk=Ek.ComponentWeight||(Ek.ComponentWeight={});Fk[Fk.TOOLBOX_WEIGHT=0]="TOOLBOX_WEIGHT";Fk[Fk.FLYOUT_WEIGHT=1]="FLYOUT_WEIGHT";Fk[Fk.TRASHCAN_WEIGHT=2]="TRASHCAN_WEIGHT";Fk[Fk.ZOOM_CONTROLS_WEIGHT=3]="ZOOM_CONTROLS_WEIGHT";var ua=new WeakSet,sa=[],va=`
313
314
  :is(
314
315
  .injectionDiv,
315
316
  .blocklyWidgetDiv,
@@ -946,292 +947,294 @@ input[type=number] {
946
947
  }
947
948
  .blocklyDialogButtonRow {
948
949
  display: flex;
949
- flex-direction: ${xk||pe?"row-reverse":"row"};
950
+ flex-direction: ${yk||qe?"row-reverse":"row"};
950
951
  column-gap: 8px;
951
952
  }
952
- `,Fk={};Fk.inject=wa;Fk.register=ta;var v,Gk=v||(v={});Gk.BLOCK_CREATE="create";Gk.BLOCK_DELETE="delete";Gk.BLOCK_CHANGE="change";Gk.BLOCK_FIELD_INTERMEDIATE_CHANGE="block_field_intermediate_change";Gk.BLOCK_MOVE="move";Gk.VAR_CREATE="var_create";Gk.VAR_DELETE="var_delete";Gk.VAR_RENAME="var_rename";Gk.VAR_TYPE_CHANGE="var_type_change";Gk.UI="ui";Gk.BLOCK_DRAG="drag";Gk.SELECTED="selected";Gk.CLICK="click";Gk.MARKER_MOVE="marker_move";Gk.BUBBLE_OPEN="bubble_open";Gk.TRASHCAN_OPEN="trashcan_open";Gk.TOOLBOX_ITEM_SELECT="toolbox_item_select";
953
- Gk.THEME_CHANGE="theme_change";Gk.VIEWPORT_CHANGE="viewport_change";Gk.COMMENT_CREATE="comment_create";Gk.COMMENT_DELETE="comment_delete";Gk.COMMENT_CHANGE="comment_change";Gk.COMMENT_MOVE="comment_move";Gk.COMMENT_RESIZE="comment_resize";Gk.COMMENT_DRAG="comment_drag";Gk.COMMENT_COLLAPSE="comment_collapse";Gk.FINISHED_LOADING="finished_loading";var Uh=[v.BLOCK_CREATE,v.BLOCK_MOVE,v.COMMENT_CREATE,v.COMMENT_MOVE];var zb=Object.create(null);var Ca,Hk=Ca||(Ca={});Hk.ASSERTIVE="assertive";Hk.OFF="off";Hk.POLITE="polite";var Ga=Ca.OFF,Fa=[],Ka,Ik=Ka||(Ka={});Ik.APPLICATION="application";Ik.BUTTON="button";Ik.CHECKBOX="checkbox";Ik.DIALOG="dialog";Ik.FIGURE="figure";Ik.GENERIC="generic";Ik.GRID="grid";Ik.GRIDCELL="gridcell";Ik.GROUP="group";Ik.LIST="list";Ik.LISTBOX="listbox";Ik.LISTITEM="listitem";Ik.MENU="menu";Ik.MENUITEM="menuitem";Ik.NONE="none";Ik.OPTION="option";Ik.REGION="region";Ik.ROW="row";Ik.SEPARATOR="separator";Ik.STATUS="status";
954
- Ik.TEXTBOX="textbox";Ik.TREE="tree";Ik.TREEITEM="treeitem";var Da=Ka.STATUS,p,Jk=p||(p={});Jk.ACTIVEDESCENDANT="activedescendant";Jk.ATOMIC="atomic";Jk.CHECKED="checked";Jk.CONTROLS="controls";Jk.DISABLED="disabled";Jk.EXPANDED="expanded";Jk.HASPOPUP="haspopup";Jk.HIDDEN="hidden";Jk.INVALID="invalid";Jk.LABEL="label";Jk.LABELLEDBY="labelledby";Jk.LEVEL="level";Jk.LIVE="live";Jk.ROLEDESCRIPTION="roledescription";Jk.SELECTED="selected";Jk.VALUEMAX="valuemax";Jk.VALUEMIN="valuemin";Jk.OWNS="owns";
955
- var ve,Kk=ve||(ve={});Kk[Kk.TERSE=0]="TERSE";Kk[Kk.STANDARD=1]="STANDARD";Kk[Kk.LOQUACIOUS=2]="LOQUACIOUS";var Ba=null,Ha,Ia=!1,Lk={};Lk.LiveRegionAssertiveness=Ca;Lk.Role=Ka;Lk.State=p;Lk.Verbosity=ve;Lk.announceDynamicAriaState=Ja;Lk.clearState=za;Lk.getRole=function(a){return(a=a.getAttribute("role"))&&Object.values(Ka).includes(a)?a:null};Lk.getState=Aa;Lk.initializeGlobalAriaLiveRegion=Ea;Lk.removeRole=xa;Lk.setRole=ya;Lk.setState=l;var q=class{constructor(a){this.tagName=a}toString(){return this.tagName}};q.ANIMATE=new q("animate");q.CIRCLE=new q("circle");q.CLIPPATH=new q("clipPath");q.DEFS=new q("defs");q.FECOMPOSITE=new q("feComposite");q.FECOMPONENTTRANSFER=new q("feComponentTransfer");q.FEFLOOD=new q("feFlood");q.FEFUNCA=new q("feFuncA");q.FEGAUSSIANBLUR=new q("feGaussianBlur");q.FEPOINTLIGHT=new q("fePointLight");q.FESPECULARLIGHTING=new q("feSpecularLighting");q.FILTER=new q("filter");q.FOREIGNOBJECT=new q("foreignObject");
956
- q.G=new q("g");q.IMAGE=new q("image");q.LINE=new q("line");q.PATH=new q("path");q.PATTERN=new q("pattern");q.POLYGON=new q("polygon");q.RECT=new q("rect");q.SVG=new q("svg");q.TEXT=new q("text");q.TSPAN=new q("tspan");var Wg,Mk=Wg||(Wg={});Mk[Mk.ELEMENT_NODE=1]="ELEMENT_NODE";Mk[Mk.TEXT_NODE=3]="TEXT_NODE";Mk[Mk.COMMENT_NODE=8]="COMMENT_NODE";var Sa=null,Ra=0,Xa=null,Nk={HTML_NS:"http://www.w3.org/1999/xhtml"};Nk.NodeType=Wg;Nk.SVG_NS="http://www.w3.org/2000/svg";Nk.XLINK_NS="http://www.w3.org/1999/xlink";Nk.addClass=n;Nk.createSvgElement=r;Nk.getFastTextWidth=function(a,b,c,d){return Va(a,b+"pt",c,d)};Nk.getFastTextWidthWithSizeString=Va;Nk.getTextWidth=Wa;Nk.hasClass=Na;Nk.insertAfter=Pa;
957
- Nk.measureFontMetrics=Ya;Nk.removeClass=Ma;Nk.removeClasses=La;Nk.removeNode=Oa;Nk.setCssTransform=Qa;Nk.startTextWidthCache=Ta;Nk.stopTextWidthCache=Ua;var Ok=class{static findFocusedNode(a){var b=a.getRootFocusableNode();if(!b.canBeFocused())return null;var c=b.getFocusableElement();if(Na(c,Ok.ACTIVE_CLASS_NAME)||Na(c,Ok.PASSIVE_CSS_CLASS_NAME))return b;b=c.querySelector(this.ACTIVE_FOCUS_NODE_CSS_SELECTOR);if(b instanceof HTMLElement||b instanceof SVGElement)if(b=Ok.findFocusableNodeFor(b,a))return b;c=c.querySelector(this.PASSIVE_FOCUS_NODE_CSS_SELECTOR);if(c instanceof HTMLElement||c instanceof SVGElement)if(a=Ok.findFocusableNodeFor(c,a))return a;
958
- return null}static findFocusableNodeFor(a,b){if(!a.id||a.id==="null"||b.getNestedTrees().map(e=>Ok.findFocusableNodeFor(a,e)).findIndex(e=>!!e)!==-1)return null;var c=b.getRootFocusableNode();if(c.canBeFocused()&&a===c.getFocusableElement())return c;var d;if(c=(d=b.lookUpFocusableNode(a.id))!=null?d:null)return c;d=a.parentElement;return!c&&d?Ok.findFocusableNodeFor(d,b):null}};Ok.ACTIVE_CLASS_NAME="blocklyActiveFocus";Ok.PASSIVE_CSS_CLASS_NAME="blocklyPassiveFocus";
959
- Ok.ACTIVE_FOCUS_NODE_CSS_SELECTOR=`.${Ok.ACTIVE_CLASS_NAME}`;Ok.PASSIVE_FOCUS_NODE_CSS_SELECTOR=`.${Ok.PASSIVE_CSS_CLASS_NAME}`;var Pk=class{constructor(a,b){this.tree=a;this.rootShouldBeAutoTabbable=b}},Za=class{constructor(a){this.previouslyFocusedNode=this.focusedNode=null;this.registeredTrees=[];this.isUpdatingFocusedNode=this.recentlyLostAllFocus=this.lockFocusStateChanges=this.currentlyHoldsEphemeralFocus=!1;this.popoverFocusLossHandlers=new Set;this.popoverFocusOutHandler=c=>{c=c.relatedTarget;var d;if(c===null||c instanceof Node&&((d=this.popoverFocusRoot)==null||!d.contains(c)))for(let e of this.popoverFocusLossHandlers)e()};
960
- var b=c=>{if(!this.isUpdatingFocusedNode){this.recentlyLostAllFocus=!c;var d=null;if(c instanceof HTMLElement||c instanceof SVGElement)for(var e of this.registeredTrees)if(d=Ok.findFocusableNodeFor(c,e.tree))break;if(d&&d.canBeFocused()){c=d.getFocusableTree();let f;e=(f=this.focusedNode)==null?void 0:f.getFocusableTree();d===c.getRootFocusableNode()&&c!==e?this.focusTree(c):this.focusNode(d)}else this.defocusCurrentFocusedNode()}};a("focusin",c=>{c instanceof FocusEvent&&b(document.activeElement)});
961
- a("focusout",c=>{c instanceof FocusEvent&&b(c.relatedTarget)})}registerTree(a,b=!1){this.ensureManagerIsUnlocked();if(this.isRegistered(a))throw Error(`Attempted to re-register already registered tree: ${a}.`);this.registeredTrees.push(new Pk(a,b));var c=a.getRootFocusableNode().getFocusableElement();if(!c.id||c.id==="null")throw Error(`Attempting to register a tree with a root element that has an invalid ID: ${a}.`);b&&(c.tabIndex=0)}isRegistered(a){return!!this.lookUpRegistration(a)}lookUpRegistration(a){var b;
962
- return(b=this.registeredTrees.find(c=>c.tree===a))!=null?b:null}unregisterTree(a){this.ensureManagerIsUnlocked();if(!this.isRegistered(a))throw Error(`Attempted to unregister not registered tree: ${a}.`);var b=this.registeredTrees.findIndex(e=>e.tree===a),c=this.registeredTrees[b];this.registeredTrees.splice(b,1);b=Ok.findFocusedNode(a);var d=a.getRootFocusableNode();b&&this.removeHighlight(b);this.focusedNode!==b&&this.focusedNode!==d||this.updateFocusedNode(null);this.removeHighlight(d);c.rootShouldBeAutoTabbable&&
963
- a.getRootFocusableNode().getFocusableElement().removeAttribute("tabindex")}getFocusedTree(){var a,b;return(b=(a=this.focusedNode)==null?void 0:a.getFocusableTree())!=null?b:null}getFocusedNode(){return this.focusedNode}focusTree(a){this.ensureManagerIsUnlocked();if(!this.isRegistered(a))throw Error(`Attempted to focus unregistered tree: ${a}.`);var b=Ok.findFocusedNode(a),c=a.getRestoredFocusableNode(b);a=a.getRootFocusableNode();var d;this.focusNode((d=c!=null?c:b)!=null?d:a)}focusNode(a){this.ensureManagerIsUnlocked();
964
- var b=!this.currentlyHoldsEphemeralFocus;b&&(this.isUpdatingFocusedNode=!0);var c,d=((c=this.focusedNode)==null?void 0:c.getFocusableElement())!==document.activeElement;if(this.focusedNode!==a||d)if(a.canBeFocused()){c=a.getFocusableTree();if(!this.isRegistered(c))throw Error(`Attempted to focus unregistered node: ${a}.`);d=a.getFocusableElement();d.id&&d.id!=="null"||console.warn("Trying to focus a node that has an invalid ID.");var e=Ok.findFocusableNodeFor(d,c);d=Ok.findFocusedNode(c);var f=a;
953
+ `,Gk={};Gk.inject=wa;Gk.register=ta;var v,Hk=v||(v={});Hk.BLOCK_CREATE="create";Hk.BLOCK_DELETE="delete";Hk.BLOCK_CHANGE="change";Hk.BLOCK_FIELD_INTERMEDIATE_CHANGE="block_field_intermediate_change";Hk.BLOCK_MOVE="move";Hk.VAR_CREATE="var_create";Hk.VAR_DELETE="var_delete";Hk.VAR_RENAME="var_rename";Hk.VAR_TYPE_CHANGE="var_type_change";Hk.UI="ui";Hk.BLOCK_DRAG="drag";Hk.SELECTED="selected";Hk.CLICK="click";Hk.MARKER_MOVE="marker_move";Hk.BUBBLE_OPEN="bubble_open";Hk.TRASHCAN_OPEN="trashcan_open";Hk.TOOLBOX_ITEM_SELECT="toolbox_item_select";
954
+ Hk.THEME_CHANGE="theme_change";Hk.VIEWPORT_CHANGE="viewport_change";Hk.COMMENT_CREATE="comment_create";Hk.COMMENT_DELETE="comment_delete";Hk.COMMENT_CHANGE="comment_change";Hk.COMMENT_MOVE="comment_move";Hk.COMMENT_RESIZE="comment_resize";Hk.COMMENT_DRAG="comment_drag";Hk.COMMENT_COLLAPSE="comment_collapse";Hk.FINISHED_LOADING="finished_loading";var Vh=[v.BLOCK_CREATE,v.BLOCK_MOVE,v.COMMENT_CREATE,v.COMMENT_MOVE];var zb=Object.create(null);var Ca,Ik=Ca||(Ca={});Ik.ASSERTIVE="assertive";Ik.OFF="off";Ik.POLITE="polite";var Ga=Ca.OFF,Fa=[],Ka,Jk=Ka||(Ka={});Jk.APPLICATION="application";Jk.BUTTON="button";Jk.CHECKBOX="checkbox";Jk.DIALOG="dialog";Jk.FIGURE="figure";Jk.GENERIC="generic";Jk.GRID="grid";Jk.GRIDCELL="gridcell";Jk.GROUP="group";Jk.LIST="list";Jk.LISTBOX="listbox";Jk.LISTITEM="listitem";Jk.MENU="menu";Jk.MENUITEM="menuitem";Jk.NONE="none";Jk.OPTION="option";Jk.REGION="region";Jk.ROW="row";Jk.SEPARATOR="separator";Jk.STATUS="status";
955
+ Jk.TEXTBOX="textbox";Jk.TREE="tree";Jk.TREEITEM="treeitem";var Da=Ka.STATUS,p,Kk=p||(p={});Kk.ACTIVEDESCENDANT="activedescendant";Kk.ATOMIC="atomic";Kk.CHECKED="checked";Kk.CONTROLS="controls";Kk.DISABLED="disabled";Kk.EXPANDED="expanded";Kk.HASPOPUP="haspopup";Kk.HIDDEN="hidden";Kk.INVALID="invalid";Kk.LABEL="label";Kk.LABELLEDBY="labelledby";Kk.LEVEL="level";Kk.LIVE="live";Kk.ROLEDESCRIPTION="roledescription";Kk.SELECTED="selected";Kk.VALUEMAX="valuemax";Kk.VALUEMIN="valuemin";Kk.OWNS="owns";
956
+ var we,Lk=we||(we={});Lk[Lk.TERSE=0]="TERSE";Lk[Lk.STANDARD=1]="STANDARD";Lk[Lk.LOQUACIOUS=2]="LOQUACIOUS";var Ba=null,Ha,Ia=!1,Mk={};Mk.LiveRegionAssertiveness=Ca;Mk.Role=Ka;Mk.State=p;Mk.Verbosity=we;Mk.announceDynamicAriaState=Ja;Mk.clearState=za;Mk.getRole=function(a){return(a=a.getAttribute("role"))&&Object.values(Ka).includes(a)?a:null};Mk.getState=Aa;Mk.initializeGlobalAriaLiveRegion=Ea;Mk.removeRole=xa;Mk.setRole=ya;Mk.setState=l;var q=class{constructor(a){this.tagName=a}toString(){return this.tagName}};q.ANIMATE=new q("animate");q.CIRCLE=new q("circle");q.CLIPPATH=new q("clipPath");q.DEFS=new q("defs");q.FECOMPOSITE=new q("feComposite");q.FECOMPONENTTRANSFER=new q("feComponentTransfer");q.FEFLOOD=new q("feFlood");q.FEFUNCA=new q("feFuncA");q.FEGAUSSIANBLUR=new q("feGaussianBlur");q.FEPOINTLIGHT=new q("fePointLight");q.FESPECULARLIGHTING=new q("feSpecularLighting");q.FILTER=new q("filter");q.FOREIGNOBJECT=new q("foreignObject");
957
+ q.G=new q("g");q.IMAGE=new q("image");q.LINE=new q("line");q.PATH=new q("path");q.PATTERN=new q("pattern");q.POLYGON=new q("polygon");q.RECT=new q("rect");q.SVG=new q("svg");q.TEXT=new q("text");q.TSPAN=new q("tspan");var Xg,Nk=Xg||(Xg={});Nk[Nk.ELEMENT_NODE=1]="ELEMENT_NODE";Nk[Nk.TEXT_NODE=3]="TEXT_NODE";Nk[Nk.COMMENT_NODE=8]="COMMENT_NODE";var Sa=null,Ra=0,Xa=null,Ok={HTML_NS:"http://www.w3.org/1999/xhtml"};Ok.NodeType=Xg;Ok.SVG_NS="http://www.w3.org/2000/svg";Ok.XLINK_NS="http://www.w3.org/1999/xlink";Ok.addClass=n;Ok.createSvgElement=r;Ok.getFastTextWidth=function(a,b,c,d){return Va(a,b+"pt",c,d)};Ok.getFastTextWidthWithSizeString=Va;Ok.getTextWidth=Wa;Ok.hasClass=Na;Ok.insertAfter=Pa;
958
+ Ok.measureFontMetrics=Ya;Ok.removeClass=Ma;Ok.removeClasses=La;Ok.removeNode=Oa;Ok.setCssTransform=Qa;Ok.startTextWidthCache=Ta;Ok.stopTextWidthCache=Ua;var Pk=class{static findFocusedNode(a){var b=a.getRootFocusableNode();if(!b.canBeFocused())return null;var c=b.getFocusableElement();if(Na(c,Pk.ACTIVE_CLASS_NAME)||Na(c,Pk.PASSIVE_CSS_CLASS_NAME))return b;b=c.querySelector(this.ACTIVE_FOCUS_NODE_CSS_SELECTOR);if(b instanceof HTMLElement||b instanceof SVGElement)if(b=Pk.findFocusableNodeFor(b,a))return b;c=c.querySelector(this.PASSIVE_FOCUS_NODE_CSS_SELECTOR);if(c instanceof HTMLElement||c instanceof SVGElement)if(a=Pk.findFocusableNodeFor(c,a))return a;
959
+ return null}static findFocusableNodeFor(a,b){if(!a.id||a.id==="null"||b.getNestedTrees().map(e=>Pk.findFocusableNodeFor(a,e)).findIndex(e=>!!e)!==-1)return null;var c=b.getRootFocusableNode();if(c.canBeFocused()&&a===c.getFocusableElement())return c;var d;if(c=(d=b.lookUpFocusableNode(a.id))!=null?d:null)return c;d=a.parentElement;return!c&&d?Pk.findFocusableNodeFor(d,b):null}};Pk.ACTIVE_CLASS_NAME="blocklyActiveFocus";Pk.PASSIVE_CSS_CLASS_NAME="blocklyPassiveFocus";
960
+ Pk.ACTIVE_FOCUS_NODE_CSS_SELECTOR=`.${Pk.ACTIVE_CLASS_NAME}`;Pk.PASSIVE_FOCUS_NODE_CSS_SELECTOR=`.${Pk.PASSIVE_CSS_CLASS_NAME}`;var Qk=class{constructor(a,b){this.tree=a;this.rootShouldBeAutoTabbable=b}},Za=class{constructor(a){this.previouslyFocusedNode=this.focusedNode=null;this.registeredTrees=[];this.isUpdatingFocusedNode=this.recentlyLostAllFocus=this.lockFocusStateChanges=this.currentlyHoldsEphemeralFocus=!1;this.popoverFocusLossHandlers=new Set;this.popoverFocusOutHandler=c=>{c=c.relatedTarget;var d;if(c===null||c instanceof Node&&((d=this.popoverFocusRoot)==null||!d.contains(c)))for(let e of this.popoverFocusLossHandlers)e()};
961
+ var b=c=>{if(!this.isUpdatingFocusedNode){this.recentlyLostAllFocus=!c;var d=null;if(c instanceof HTMLElement||c instanceof SVGElement)for(var e of this.registeredTrees)if(d=Pk.findFocusableNodeFor(c,e.tree))break;if(d&&d.canBeFocused()){c=d.getFocusableTree();let f;e=(f=this.focusedNode)==null?void 0:f.getFocusableTree();d===c.getRootFocusableNode()&&c!==e?this.focusTree(c):this.focusNode(d)}else this.defocusCurrentFocusedNode()}};a("focusin",c=>{c instanceof FocusEvent&&b(document.activeElement)});
962
+ a("focusout",c=>{c instanceof FocusEvent&&b(c.relatedTarget)})}registerTree(a,b=!1){this.ensureManagerIsUnlocked();if(this.isRegistered(a))throw Error(`Attempted to re-register already registered tree: ${a}.`);this.registeredTrees.push(new Qk(a,b));var c=a.getRootFocusableNode().getFocusableElement();if(!c.id||c.id==="null")throw Error(`Attempting to register a tree with a root element that has an invalid ID: ${a}.`);b&&(c.tabIndex=0)}isRegistered(a){return!!this.lookUpRegistration(a)}lookUpRegistration(a){var b;
963
+ return(b=this.registeredTrees.find(c=>c.tree===a))!=null?b:null}unregisterTree(a){this.ensureManagerIsUnlocked();if(!this.isRegistered(a))throw Error(`Attempted to unregister not registered tree: ${a}.`);var b=this.registeredTrees.findIndex(e=>e.tree===a),c=this.registeredTrees[b];this.registeredTrees.splice(b,1);b=Pk.findFocusedNode(a);var d=a.getRootFocusableNode();b&&this.removeHighlight(b);this.focusedNode!==b&&this.focusedNode!==d||this.updateFocusedNode(null);this.removeHighlight(d);c.rootShouldBeAutoTabbable&&
964
+ a.getRootFocusableNode().getFocusableElement().removeAttribute("tabindex")}getFocusedTree(){var a,b;return(b=(a=this.focusedNode)==null?void 0:a.getFocusableTree())!=null?b:null}getFocusedNode(){return this.focusedNode}focusTree(a){this.ensureManagerIsUnlocked();if(!this.isRegistered(a))throw Error(`Attempted to focus unregistered tree: ${a}.`);var b=Pk.findFocusedNode(a),c=a.getRestoredFocusableNode(b);a=a.getRootFocusableNode();var d;this.focusNode((d=c!=null?c:b)!=null?d:a)}focusNode(a){this.ensureManagerIsUnlocked();
965
+ var b=!this.currentlyHoldsEphemeralFocus;b&&(this.isUpdatingFocusedNode=!0);var c,d=((c=this.focusedNode)==null?void 0:c.getFocusableElement())!==document.activeElement;if(this.focusedNode!==a||d)if(a.canBeFocused()){c=a.getFocusableTree();if(!this.isRegistered(c))throw Error(`Attempted to focus unregistered node: ${a}.`);d=a.getFocusableElement();d.id&&d.id!=="null"||console.warn("Trying to focus a node that has an invalid ID.");var e=Pk.findFocusableNodeFor(d,c);d=Pk.findFocusedNode(c);var f=a;
965
966
  if(e!==a){f=c.getRestoredFocusableNode(d);a=c.getRootFocusableNode();var g;f=(g=f!=null?f:d)!=null?g:a}a=this.focusedNode;g=a==null?void 0:a.getFocusableTree();a&&this.passivelyFocusNode(a,c);c=c.getRootFocusableNode();d&&this.removeHighlight(d);c!==f&&this.removeHighlight(c);this.currentlyHoldsEphemeralFocus||this.activelyFocusNode(f,g!=null?g:null);this.updateFocusedNode(f)}else console.warn("Trying to focus a node that can't be focused.");b&&(this.isUpdatingFocusedNode=!1)}takeEphemeralFocus(a){this.ensureManagerIsUnlocked();
966
967
  if(this.currentlyHoldsEphemeralFocus)throw Error(`Attempted to take ephemeral focus when it's already held, with new element: ${a}.`);this.currentlyHoldsEphemeralFocus=!0;this.focusedNode&&this.passivelyFocusNode(this.focusedNode,null);a.focus({preventScroll:!0});var b=!1;return(c=!0)=>{if(b)throw Error(`Attempted to finish ephemeral focus twice for element: ${a}.`);b=!0;this.currentlyHoldsEphemeralFocus=!1;if(this.focusedNode&&c){this.activelyFocusNode(this.focusedNode,null);let d=this.focusedNode;
967
968
  setTimeout(()=>{!this.focusedNode&&this.previouslyFocusedNode===d&&this.recentlyLostAllFocus&&this.focusNode(d)},0)}}}ephemeralFocusTaken(){return this.currentlyHoldsEphemeralFocus}ensureManagerIsUnlocked(){if(this.lockFocusStateChanges)throw Error("FocusManager state changes cannot happen in a tree/node focus/blur callback.");}updateFocusedNode(a){this.previouslyFocusedNode=this.focusedNode;this.focusedNode=a}defocusCurrentFocusedNode(){this.focusedNode&&!this.currentlyHoldsEphemeralFocus&&(this.passivelyFocusNode(this.focusedNode,
968
969
  null),this.updateFocusedNode(null))}activelyFocusNode(a,b){this.lockFocusStateChanges=!0;var c=a.getFocusableTree(),d=a.getFocusableElement(),e,f=(e=this.lookUpRegistration(c))==null?void 0:e.rootShouldBeAutoTabbable;c!==b&&(c.onTreeFocus(a,b),f&&(c.getRootFocusableNode().getFocusableElement().tabIndex=-1));a.onNodeFocus();this.lockFocusStateChanges=!1;f&&a===c.getRootFocusableNode()||d.hasAttribute("tabindex")||(d.tabIndex=-1);this.setNodeToVisualActiveFocus(a);d.focus({preventScroll:!0})}passivelyFocusNode(a,
969
970
  b){this.lockFocusStateChanges=!0;var c=a.getFocusableTree();if(c!==b){c.onTreeBlur(b);let d;if((d=this.lookUpRegistration(c))==null?0:d.rootShouldBeAutoTabbable)c.getRootFocusableNode().getFocusableElement().tabIndex=0}a.onNodeBlur();this.lockFocusStateChanges=!1;c!==b&&this.setNodeToVisualPassiveFocus(a)}setNodeToVisualActiveFocus(a){a=a.getFocusableElement();n(a,Za.ACTIVE_FOCUS_NODE_CSS_CLASS_NAME);Ma(a,Za.PASSIVE_FOCUS_NODE_CSS_CLASS_NAME)}setNodeToVisualPassiveFocus(a){a=a.getFocusableElement();
970
971
  Ma(a,Za.ACTIVE_FOCUS_NODE_CSS_CLASS_NAME);n(a,Za.PASSIVE_FOCUS_NODE_CSS_CLASS_NAME)}removeHighlight(a){a=a.getFocusableElement();Ma(a,Za.ACTIVE_FOCUS_NODE_CSS_CLASS_NAME);Ma(a,Za.PASSIVE_FOCUS_NODE_CSS_CLASS_NAME)}static getFocusManager(){Za.focusManager||(Za.focusManager=new Za(document.addEventListener));return Za.focusManager}setPopoverFocusRoot(a){var b;(b=this.popoverFocusRoot)==null||b.removeEventListener("focusout",this.popoverFocusOutHandler);this.popoverFocusRoot=a;this.popoverFocusRoot.addEventListener("focusout",
971
- this.popoverFocusOutHandler)}registerPopoverFocusLossHandler(a){this.popoverFocusLossHandlers.add(a)}unregisterPopoverFocusLossHandler(a){this.popoverFocusLossHandlers.delete(a)}};Za.ACTIVE_FOCUS_NODE_CSS_CLASS_NAME="blocklyActiveFocus";Za.PASSIVE_FOCUS_NODE_CSS_CLASS_NAME="blocklyPassiveFocus";Za.focusManager=null;var Qk={};Qk.deepMerge=bb;var x=class{constructor(){this.shortcuts=new Map;this.keyMap=new Map;this.reset()}reset(){this.shortcuts.clear();this.keyMap.clear()}register(a,b){if(this.shortcuts.get(a.name)&&!b)throw Error(`Shortcut named "${a.name}" already exists.`);this.shortcuts.set(a.name,a);b=a.keyCodes;if(b==null?0:b.length)for(let c of b)this.addKeyMapping(c,a.name,!!a.allowCollision)}unregister(a){if(!this.shortcuts.get(a))return console.warn(`Keyboard shortcut named "${a}" not found.`),!1;this.removeAllKeyMappings(a);
972
+ this.popoverFocusOutHandler)}registerPopoverFocusLossHandler(a){this.popoverFocusLossHandlers.add(a)}unregisterPopoverFocusLossHandler(a){this.popoverFocusLossHandlers.delete(a)}};Za.ACTIVE_FOCUS_NODE_CSS_CLASS_NAME="blocklyActiveFocus";Za.PASSIVE_FOCUS_NODE_CSS_CLASS_NAME="blocklyPassiveFocus";Za.focusManager=null;var Rk={};Rk.deepMerge=bb;var x=class{constructor(){this.shortcuts=new Map;this.keyMap=new Map;this.reset()}reset(){this.shortcuts.clear();this.keyMap.clear()}register(a,b){if(this.shortcuts.get(a.name)&&!b)throw Error(`Shortcut named "${a.name}" already exists.`);this.shortcuts.set(a.name,a);b=a.keyCodes;if(b==null?0:b.length)for(let c of b)this.addKeyMapping(c,a.name,!!a.allowCollision)}unregister(a){if(!this.shortcuts.get(a))return console.warn(`Keyboard shortcut named "${a}" not found.`),!1;this.removeAllKeyMappings(a);
972
973
  this.shortcuts.delete(a);return!0}addKeyMapping(a,b,c){a=`${a}`;var d=this.keyMap.get(a);if(d&&!c)throw Error(`Shortcut named "${b}" collides with shortcuts "${d}"`);d&&c?d.unshift(b):this.keyMap.set(a,[b])}removeKeyMapping(a,b,c){var d=this.keyMap.get(a);if(!d)return c||console.warn(`No keyboard shortcut named "${b}" registered with key code "${a}"`),!1;var e=d.indexOf(b);if(e>-1)return d.splice(e,1),d.length===0&&this.keyMap.delete(a),!0;c||console.warn(`No keyboard shortcut named "${b}" registered with key code "${a}"`);
973
974
  return!1}removeAllKeyMappings(a){for(let b of this.keyMap.keys())this.removeKeyMapping(b,a,!0)}setKeyMap(a){this.keyMap.clear();for(let b in a)this.keyMap.set(b,a[b])}getKeyMap(){var a=Object.create(null);for(let [b,c]of this.keyMap)a[b]=c;return a}getRegistry(){var a=Object.create(null);for(let [b,c]of this.shortcuts)a[b]=c;return bb(Object.create(null),a)}onKeyDown(a,b){var c=this.serializeKeyEvent(b);c=this.getShortcutNamesByKeyCode(c);if(!c)return!1;for(let d of c){c=this.shortcuts.get(d);let e;
974
975
  if(!c||c.preconditionFn&&!c.preconditionFn(a,{focusedNode:(e=$.t().getFocusedNode())!=null?e:void 0}))continue;let f,g;if((f=c.callback)==null?0:f.call(c,a,b,c,{focusedNode:(g=$.t().getFocusedNode())!=null?g:void 0}))return!0}return!1}getShortcutNamesByKeyCode(a){var b;return((b=this.keyMap.get(a))==null?void 0:b.slice())||[]}getKeyCodesByShortcutName(a){var b=[];for(let [c,d]of this.keyMap)d.indexOf(a)>-1&&b.push(c);return b}serializeKeyEvent(a){var b="";for(let c in x.modifierKeys)a.getModifierState(c)&&
975
- (b!==""&&(b+="+"),b+=c);b!==""&&a.keyCode?b+="+"+a.keyCode:a.keyCode&&(b=String(a.keyCode));return b}checkModifiers(a){for(let b of a)if(!(b in x.modifierKeys))throw Error(b+" is not a valid modifier key.");}createSerializedKey(a,b){var c="";if(b){this.checkModifiers(b);for(let d in x.modifierKeys)b.includes(x.modifierKeys[d])&&(c!==""&&(c+="+"),c+=d)}c!==""&&a?c+="+"+a:a&&(c=`${a}`);return c}};x.registry=new x;var Rk=x||(x={}),Sk=Rk.modifierKeys||(Rk.modifierKeys={});Sk[Sk.Shift=16]="Shift";
976
- Sk[Sk.Control=17]="Control";Sk[Sk.Alt=18]="Alt";Sk[Sk.Meta=91]="Meta";var cb=new Set,Tk={};Tk.warn=db;var eb=Object.create(null),kb,qb,Uk=[],wb={defineBlocksWithJsonArrayInternal:function(a){$.Ab($.yb(a))}},Vk={TEST_ONLY:wb};Vk.createBlockDefinitionsFromJsonArray=$.yb;Vk.defineBlocks=$.Ab;Vk.defineBlocksWithJsonArray=xb;Vk.draggingConnections=Uk;Vk.fireSelectedEvent=ob;Vk.getAllWorkspaces=gb;Vk.getBlockTypeCounts=ub;Vk.getMainWorkspace=lb;Vk.getParentContainer=rb;Vk.getSelected=nb;Vk.getWorkspaceById=fb;Vk.globalShortcutHandler=Bb;Vk.registerWorkspace=hb;Vk.setMainWorkspace=mb;
977
- Vk.setParentContainer=sb;Vk.setSelected=function(a){$.t().focusNode(a)};Vk.svgResize=tb;Vk.unregisterWorkpace=function(a){db("Blockly.common.unregisterWorkpace","v13","v14","Blockly.common.unregisterWorkspace");ib(a)};Vk.unregisterWorkspace=ib;var Cb=Object.create(null),Wk={typeMap:Cb},Db=Object.create(null),y=class{constructor(a){this.name=a}toString(){return this.name}};y.CONNECTION_CHECKER=new y("connectionChecker");y.CONNECTION_PREVIEWER=new y("connectionPreviewer");y.EVENT=new y("event");y.FIELD=new y("field");y.INPUT=new y("input");y.RENDERER=new y("renderer");y.TOOLBOX=new y("toolbox");y.THEME=new y("theme");y.TOOLBOX_ITEM=new y("toolboxItem");y.FLYOUTS_VERTICAL_TOOLBOX=new y("flyoutsVerticalToolbox");
978
- y.FLYOUTS_HORIZONTAL_TOOLBOX=new y("flyoutsHorizontalToolbox");y.FLYOUT_INFLATER=new y("flyoutInflater");y.METRICS_MANAGER=new y("metricsManager");y.BLOCK_DRAGGER=new y("blockDragger");y.SERIALIZER=new y("serializer");y.ICON=new y("icon");y.PASTER=new y("paster");y.VARIABLE_MODEL=new y("variableModel");y.VARIABLE_MAP=new y("variableMap");var Xk={DEFAULT:"default",TEST_ONLY:Wk};Xk.Type=y;Xk.getAllItems=Ib;Xk.getClass=Hb;Xk.getClassFromOptions=Jb;Xk.getObject=function(a,b,c){return Fb(a,b,c)};
979
- Xk.hasItem=Gb;Xk.register=A;Xk.unregister=Eb;var Mb={genUid:()=>{var a=[];for(let b=0;b<20;b++)a[b]="!#$%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.random()*88);return a.join("")}},Kb=0,Yk={TEST_ONLY:Mb};Yk.genUid=Nb;Yk.getNextUniqueId=Lb;var Qb,Ob;$.gd="";$.Qc=!0;$.Ub=0;Qb=[];Ob={FIRE_QUEUE:Qb,enqueueEvent:Sb,fireNow:Rb,fireInternal:function(a){if(Vb()){if(!Qb.length)try{requestAnimationFrame(()=>{setTimeout(Rb,0)})}catch(b){setTimeout(Rb,0)}Sb(a)}},setGroupInternal:function(a){$.gd=typeof a==="boolean"?a?Nb():"":a}};var Zk;$.C=Object.create(null);Zk={Msg:$.C,setLocale:Xb};var D=class{constructor(a,b){this.x=a;this.y=b}clone(){return new D(this.x,this.y)}scale(a){this.x*=a;this.y*=a;return this}translate(a,b){this.x+=a;this.y+=b;return this}static equals(a,b){return a===b?!0:a&&b?a.x===b.x&&a.y===b.y:!1}static distance(a,b){var c=a.x-b.x;a=a.y-b.y;return Math.sqrt(c*c+a*a)}static magnitude(a){return Math.sqrt(a.x*a.x+a.y*a.y)}static difference(a,b){return new D(a.x-b.x,a.y-b.y)}static sum(a,b){return new D(a.x+b.x,a.y+b.y)}};var cc=class{constructor(a,b,c,d){this.top=a;this.bottom=b;this.left=c;this.right=d}static from(a){return new cc(a.y,a.y+a.height,a.x,a.x+a.width)}clone(){return new cc(this.top,this.bottom,this.left,this.right)}getHeight(){return this.bottom-this.top}getWidth(){return this.right-this.left}getOrigin(){return new D(this.left,this.top)}contains(a,b){return a>=this.left&&a<=this.right&&b>=this.top&&b<=this.bottom}intersects(a){return this.left<=a.right&&this.right>=a.left&&this.bottom>=a.top&&this.top<=
980
- a.bottom}static equals(a,b){return a===b?!0:a&&b?a.top===b.top&&a.bottom===b.bottom&&a.left===b.left&&a.right===b.right:!1}static createFromPoint(a,b,c){var d=a.x;a=a.y;return new cc(a,a+c,d,d+b)}};var hc=class{constructor(a,b){this.width=a;this.height=b}static equals(a,b){return a===b?!0:a&&b?a.width===b.width&&a.height===b.height:!1}static max(a,b){return new hc(Math.max(a.width,b.width),Math.max(a.height,b.height))}static min(a,b){return new hc(Math.min(a.width,b.width),Math.min(a.height,b.height))}};var Yb={getSizeInternal:function(a){if($b(a,"display")!=="none")return new hc(a.offsetWidth,a.offsetHeight);var b=a.style,c=b.display,d=b.visibility,e=b.position;b.visibility="hidden";b.position="absolute";b.display="inline";var f=a.offsetWidth;a=a.offsetHeight;b.display=c;b.position=e;b.visibility=d;return new hc(f,a)}},$k={TEST_ONLY:Yb};$k.getBorderBox=dc;$k.getComputedStyle=$b;$k.getContainerOffsetToScrollInto=ec;$k.getPageOffset=ac;$k.getSize=Zb;$k.getViewportPageOffset=bc;
981
- $k.scrollIntoContainerView=fc;var ic=/translate\(\s*([-+\d.e]+)([ ,]\s*([-+\d.e]+)\s*)?/,jc=/transform:\s*translate(?:3d)?\(\s*([-+\d.e]+)\s*px([ ,]\s*([-+\d.e]+)\s*px)?/,al={TEST_ONLY:{XY_REGEX:ic,XY_STYLE_REGEX:jc}};al.getDocumentScroll=nc;al.getInjectionDivXY=lc;al.getRelativeXY=kc;al.getViewportBBox=mc;al.screenToWsCoordinates=oc;al.wsToScreenCoordinates=pc;var Ic=class{constructor(a,b,c,d,e){this.workspace=a;this.horizontal=b;this.oldHostMetrics=null;this.ratio=1;this.origin=new D(0,0);this.startDragHandle=this.handlePosition=this.handleLength=this.scrollbarLength=this.startDragMouse=0;this.containerVisible=this.isHandleVisible=!0;this.position=new D(0,0);this.onMouseMoveWrapper_=this.onMouseUpWrapper_=null;this.pair=c||!1;this.margin=e!==void 0?e:Ic.DEFAULT_SCROLLBAR_MARGIN;a="blocklyScrollbar"+(this.horizontal?"Horizontal":"Vertical");d&&(a+=" "+
976
+ (b!==""&&(b+="+"),b+=c);b!==""&&a.keyCode?b+="+"+a.keyCode:a.keyCode&&(b=String(a.keyCode));return b}checkModifiers(a){for(let b of a)if(!(b in x.modifierKeys))throw Error(b+" is not a valid modifier key.");}createSerializedKey(a,b){var c="";if(b){this.checkModifiers(b);for(let d in x.modifierKeys)b.includes(x.modifierKeys[d])&&(c!==""&&(c+="+"),c+=d)}c!==""&&a?c+="+"+a:a&&(c=`${a}`);return c}};x.registry=new x;var Sk=x||(x={}),Tk=Sk.modifierKeys||(Sk.modifierKeys={});Tk[Tk.Shift=16]="Shift";
977
+ Tk[Tk.Control=17]="Control";Tk[Tk.Alt=18]="Alt";Tk[Tk.Meta=91]="Meta";var cb=new Set,Uk={};Uk.warn=db;var eb=Object.create(null),kb,qb,Vk=[],wb={defineBlocksWithJsonArrayInternal:function(a){$.Ab($.yb(a))}},Wk={TEST_ONLY:wb};Wk.createBlockDefinitionsFromJsonArray=$.yb;Wk.defineBlocks=$.Ab;Wk.defineBlocksWithJsonArray=xb;Wk.draggingConnections=Vk;Wk.fireSelectedEvent=ob;Wk.getAllWorkspaces=gb;Wk.getBlockTypeCounts=ub;Wk.getMainWorkspace=lb;Wk.getParentContainer=rb;Wk.getSelected=nb;Wk.getWorkspaceById=fb;Wk.globalShortcutHandler=Bb;Wk.registerWorkspace=hb;Wk.setMainWorkspace=mb;
978
+ Wk.setParentContainer=sb;Wk.setSelected=function(a){$.t().focusNode(a)};Wk.svgResize=tb;Wk.unregisterWorkpace=function(a){db("Blockly.common.unregisterWorkpace","v13","v14","Blockly.common.unregisterWorkspace");ib(a)};Wk.unregisterWorkspace=ib;var Cb=Object.create(null),Xk={typeMap:Cb},Db=Object.create(null),y=class{constructor(a){this.name=a}toString(){return this.name}};y.CONNECTION_CHECKER=new y("connectionChecker");y.CONNECTION_PREVIEWER=new y("connectionPreviewer");y.EVENT=new y("event");y.FIELD=new y("field");y.INPUT=new y("input");y.RENDERER=new y("renderer");y.TOOLBOX=new y("toolbox");y.THEME=new y("theme");y.TOOLBOX_ITEM=new y("toolboxItem");y.FLYOUTS_VERTICAL_TOOLBOX=new y("flyoutsVerticalToolbox");
979
+ y.FLYOUTS_HORIZONTAL_TOOLBOX=new y("flyoutsHorizontalToolbox");y.FLYOUT_INFLATER=new y("flyoutInflater");y.METRICS_MANAGER=new y("metricsManager");y.BLOCK_DRAGGER=new y("blockDragger");y.SERIALIZER=new y("serializer");y.ICON=new y("icon");y.PASTER=new y("paster");y.VARIABLE_MODEL=new y("variableModel");y.VARIABLE_MAP=new y("variableMap");var Yk={DEFAULT:"default",TEST_ONLY:Xk};Yk.Type=y;Yk.getAllItems=Ib;Yk.getClass=Hb;Yk.getClassFromOptions=Jb;Yk.getObject=function(a,b,c){return Fb(a,b,c)};
980
+ Yk.hasItem=Gb;Yk.register=A;Yk.unregister=Eb;var Mb={genUid:()=>{var a=[];for(let b=0;b<20;b++)a[b]="!#$%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.random()*88);return a.join("")}},Kb=0,Zk={TEST_ONLY:Mb};Zk.genUid=Nb;Zk.getNextUniqueId=Lb;var Qb,Ob;$.gd="";$.Qc=!0;$.Ub=0;Qb=[];Ob={FIRE_QUEUE:Qb,enqueueEvent:Sb,fireNow:Rb,fireInternal:function(a){if(Vb()){if(!Qb.length)try{requestAnimationFrame(()=>{setTimeout(Rb,0)})}catch(b){setTimeout(Rb,0)}Sb(a)}},setGroupInternal:function(a){$.gd=typeof a==="boolean"?a?Nb():"":a}};var $k;$.C=Object.create(null);$k={Msg:$.C,setLocale:Xb};var D=class{constructor(a,b){this.x=a;this.y=b}clone(){return new D(this.x,this.y)}scale(a){this.x*=a;this.y*=a;return this}translate(a,b){this.x+=a;this.y+=b;return this}static equals(a,b){return a===b?!0:a&&b?a.x===b.x&&a.y===b.y:!1}static distance(a,b){var c=a.x-b.x;a=a.y-b.y;return Math.sqrt(c*c+a*a)}static magnitude(a){return Math.sqrt(a.x*a.x+a.y*a.y)}static difference(a,b){return new D(a.x-b.x,a.y-b.y)}static sum(a,b){return new D(a.x+b.x,a.y+b.y)}};var cc=class{constructor(a,b,c,d){this.top=a;this.bottom=b;this.left=c;this.right=d}static from(a){return new cc(a.y,a.y+a.height,a.x,a.x+a.width)}clone(){return new cc(this.top,this.bottom,this.left,this.right)}getHeight(){return this.bottom-this.top}getWidth(){return this.right-this.left}getOrigin(){return new D(this.left,this.top)}contains(a,b){return a>=this.left&&a<=this.right&&b>=this.top&&b<=this.bottom}intersects(a){return this.left<=a.right&&this.right>=a.left&&this.bottom>=a.top&&this.top<=
981
+ a.bottom}static equals(a,b){return a===b?!0:a&&b?a.top===b.top&&a.bottom===b.bottom&&a.left===b.left&&a.right===b.right:!1}static createFromPoint(a,b,c){var d=a.x;a=a.y;return new cc(a,a+c,d,d+b)}};var hc=class{constructor(a,b){this.width=a;this.height=b}static equals(a,b){return a===b?!0:a&&b?a.width===b.width&&a.height===b.height:!1}static max(a,b){return new hc(Math.max(a.width,b.width),Math.max(a.height,b.height))}static min(a,b){return new hc(Math.min(a.width,b.width),Math.min(a.height,b.height))}};var Yb={getSizeInternal:function(a){if($b(a,"display")!=="none")return new hc(a.offsetWidth,a.offsetHeight);var b=a.style,c=b.display,d=b.visibility,e=b.position;b.visibility="hidden";b.position="absolute";b.display="inline";var f=a.offsetWidth;a=a.offsetHeight;b.display=c;b.position=e;b.visibility=d;return new hc(f,a)}},al={TEST_ONLY:Yb};al.getBorderBox=dc;al.getComputedStyle=$b;al.getContainerOffsetToScrollInto=ec;al.getPageOffset=ac;al.getSize=Zb;al.getViewportPageOffset=bc;
982
+ al.scrollIntoContainerView=fc;var ic=/translate\(\s*([-+\d.e]+)([ ,]\s*([-+\d.e]+)\s*)?/,jc=/transform:\s*translate(?:3d)?\(\s*([-+\d.e]+)\s*px([ ,]\s*([-+\d.e]+)\s*px)?/,bl={TEST_ONLY:{XY_REGEX:ic,XY_STYLE_REGEX:jc}};bl.getDocumentScroll=nc;bl.getInjectionDivXY=lc;bl.getRelativeXY=kc;bl.getViewportBBox=mc;bl.screenToWsCoordinates=oc;bl.wsToScreenCoordinates=pc;var Ic=class{constructor(a,b,c,d,e){this.workspace=a;this.horizontal=b;this.oldHostMetrics=null;this.ratio=1;this.origin=new D(0,0);this.startDragHandle=this.handlePosition=this.handleLength=this.scrollbarLength=this.startDragMouse=0;this.containerVisible=this.isHandleVisible=!0;this.position=new D(0,0);this.onMouseMoveWrapper_=this.onMouseUpWrapper_=null;this.pair=c||!1;this.margin=e!==void 0?e:Ic.DEFAULT_SCROLLBAR_MARGIN;a="blocklyScrollbar"+(this.horizontal?"Horizontal":"Vertical");d&&(a+=" "+
982
983
  d);this.outerSvg=r(q.SVG,{"class":a});d=r(q.G,{},this.outerSvg);this.svgBackground=r(q.RECT,{"class":"blocklyScrollbarBackground"},d);a=Math.floor((Ic.scrollbarThickness-5)/2);this.svgHandle=r(q.RECT,{"class":"blocklyScrollbarHandle",rx:a,ry:a},d);this.workspace.getThemeManager().subscribe(this.svgHandle,"scrollbarColour","fill");this.workspace.getThemeManager().subscribe(this.svgHandle,"scrollbarOpacity","fill-opacity");Pa(this.outerSvg,this.workspace.getParentSvg());this.setInitialThickness();b?
983
984
  (this.lengthAttribute_="width",this.positionAttribute_="x"):(this.lengthAttribute_="height",this.positionAttribute_="y");this.onMouseDownBarWrapper_=k(this.svgBackground,"pointerdown",this,this.onMouseDownBar);this.onMouseDownHandleWrapper_=k(this.svgHandle,"pointerdown",this,this.onMouseDownHandle)}setInitialThickness(){var a=Ic.scrollbarThickness;this.horizontal?(this.svgBackground.setAttribute("height",String(a)),this.outerSvg.setAttribute("height",String(a)),this.svgHandle.setAttribute("height",
984
- String(a-5)),this.svgHandle.setAttribute("y","2.5")):(this.svgBackground.setAttribute("width",String(a)),this.outerSvg.setAttribute("width",String(a)),this.svgHandle.setAttribute("width",String(a-5)),this.svgHandle.setAttribute("x","2.5"))}dispose(){this.cleanUp();la(this.onMouseDownBarWrapper_);la(this.onMouseDownHandleWrapper_);Oa(this.outerSvg);this.workspace.getThemeManager().unsubscribe(this.svgHandle)}constrainHandleLength(a){return a=a<=0||isNaN(a)?0:Math.min(a,this.scrollbarLength)}setHandleLength(a){this.handleLength=
985
+ String(a-5)),this.svgHandle.setAttribute("y","2.5")):(this.svgBackground.setAttribute("width",String(a)),this.outerSvg.setAttribute("width",String(a)),this.svgHandle.setAttribute("width",String(a-5)),this.svgHandle.setAttribute("x","2.5"))}dispose(){this.cleanUp();ka(this.onMouseDownBarWrapper_);ka(this.onMouseDownHandleWrapper_);Oa(this.outerSvg);this.workspace.getThemeManager().unsubscribe(this.svgHandle)}constrainHandleLength(a){return a=a<=0||isNaN(a)?0:Math.min(a,this.scrollbarLength)}setHandleLength(a){this.handleLength=
985
986
  a;this.svgHandle.setAttribute(this.lengthAttribute_,String(this.handleLength))}constrainHandlePosition(a){return a=a<=0||isNaN(a)?0:Math.min(a,this.scrollbarLength-this.handleLength)}setHandlePosition(a){this.handlePosition=a;this.svgHandle.setAttribute(this.positionAttribute_,String(this.handlePosition))}setScrollbarLength(a){this.scrollbarLength=a;this.outerSvg.setAttribute(this.lengthAttribute_,String(this.scrollbarLength));this.svgBackground.setAttribute(this.lengthAttribute_,String(this.scrollbarLength))}setPosition(a,
986
987
  b){this.position.x=a;this.position.y=b;Qa(this.outerSvg,"translate("+(this.position.x+this.origin.x)+"px,"+(this.position.y+this.origin.y)+"px)")}resize(a){if(!a&&(a=this.workspace.getMetrics(),!a))return;this.oldHostMetrics&&Ic.metricsAreEquivalent(a,this.oldHostMetrics)||(this.horizontal?this.resizeHorizontal(a):this.resizeVertical(a),this.oldHostMetrics=a,this.updateMetrics())}requiresViewResize(a){return this.oldHostMetrics?this.oldHostMetrics.viewWidth!==a.viewWidth||this.oldHostMetrics.viewHeight!==
987
988
  a.viewHeight||this.oldHostMetrics.absoluteLeft!==a.absoluteLeft||this.oldHostMetrics.absoluteTop!==a.absoluteTop:!0}resizeHorizontal(a){this.requiresViewResize(a)?this.resizeViewHorizontal(a):this.resizeContentHorizontal(a)}resizeViewHorizontal(a){var b=a.viewWidth-this.margin*2;this.pair&&(b-=Ic.scrollbarThickness);this.setScrollbarLength(Math.max(0,b));b=a.absoluteLeft+this.margin;this.pair&&this.workspace.RTL&&(b+=Ic.scrollbarThickness);this.setPosition(b,a.absoluteTop+a.viewHeight-Ic.scrollbarThickness-
988
989
  this.margin);this.resizeContentHorizontal(a)}resizeContentHorizontal(a){if(a.viewWidth>=a.scrollWidth)this.setHandleLength(this.scrollbarLength),this.setHandlePosition(0),this.pair||this.setVisible(!1);else{this.pair||this.setVisible(!0);var b=this.scrollbarLength*a.viewWidth/a.scrollWidth;b=this.constrainHandleLength(b);this.setHandleLength(b);b=a.scrollWidth-a.viewWidth;var c=this.scrollbarLength-this.handleLength;a=(a.viewLeft-a.scrollLeft)/b*c;a=this.constrainHandlePosition(a);this.setHandlePosition(a);
989
990
  this.ratio=c/b}}resizeVertical(a){this.requiresViewResize(a)?this.resizeViewVertical(a):this.resizeContentVertical(a)}resizeViewVertical(a){var b=a.viewHeight-this.margin*2;this.pair&&(b-=Ic.scrollbarThickness);this.setScrollbarLength(Math.max(0,b));this.setPosition(this.workspace.RTL?a.absoluteLeft+this.margin:a.absoluteLeft+a.viewWidth-Ic.scrollbarThickness-this.margin,a.absoluteTop+this.margin);this.resizeContentVertical(a)}resizeContentVertical(a){if(a.viewHeight>=a.scrollHeight)this.setHandleLength(this.scrollbarLength),
990
991
  this.setHandlePosition(0),this.pair||this.setVisible(!1);else{this.pair||this.setVisible(!0);var b=this.scrollbarLength*a.viewHeight/a.scrollHeight;b=this.constrainHandleLength(b);this.setHandleLength(b);b=a.scrollHeight-a.viewHeight;var c=this.scrollbarLength-this.handleLength;a=(a.viewTop-a.scrollTop)/b*c;a=this.constrainHandlePosition(a);this.setHandlePosition(a);this.ratio=c/b}}isVisible(){return this.isHandleVisible}setContainerVisible(a){var b=a!==this.containerVisible;this.containerVisible=
991
- a;b&&this.updateDisplay_()}setVisible(a){if(this.pair)throw Error("Unable to toggle visibility of paired scrollbars.");this.setVisibleInternal(a)}setVisibleInternal(a){var b=a!==this.isVisible();this.isHandleVisible=a;b&&this.updateDisplay_()}updateDisplay_(){this.containerVisible&&this.isVisible()?this.outerSvg.setAttribute("display","block"):this.outerSvg.setAttribute("display","none")}onMouseDownBar(a){this.workspace.markFocused();ha=null;this.cleanUp();if(oa(a))a.stopPropagation();else{var b=
992
- pa(a,this.workspace.getParentSvg(),this.workspace.getInverseScreenCTM());b=this.horizontal?b.x:b.y;var c=lc(this.svgHandle);c=this.horizontal?c.x:c.y;var d=this.handlePosition,e=this.handleLength*.95;b<=c?d-=e:b>=c+this.handleLength&&(d+=e);this.setHandlePosition(this.constrainHandlePosition(d));this.updateMetrics();a.stopPropagation();a.preventDefault()}}onMouseDownHandle(a){this.workspace.markFocused();this.cleanUp();oa(a)?a.stopPropagation():(this.startDragHandle=this.handlePosition,this.startDragMouse=
992
+ a;b&&this.updateDisplay_()}setVisible(a){if(this.pair)throw Error("Unable to toggle visibility of paired scrollbars.");this.setVisibleInternal(a)}setVisibleInternal(a){var b=a!==this.isVisible();this.isHandleVisible=a;b&&this.updateDisplay_()}updateDisplay_(){this.containerVisible&&this.isVisible()?this.outerSvg.setAttribute("display","block"):this.outerSvg.setAttribute("display","none")}onMouseDownBar(a){this.workspace.markFocused();ha=null;this.cleanUp();if(na(a))a.stopPropagation();else{var b=
993
+ oa(a,this.workspace.getParentSvg(),this.workspace.getInverseScreenCTM());b=this.horizontal?b.x:b.y;var c=lc(this.svgHandle);c=this.horizontal?c.x:c.y;var d=this.handlePosition,e=this.handleLength*.95;b<=c?d-=e:b>=c+this.handleLength&&(d+=e);this.setHandlePosition(this.constrainHandlePosition(d));this.updateMetrics();a.stopPropagation();a.preventDefault()}}onMouseDownHandle(a){this.workspace.markFocused();this.cleanUp();na(a)?a.stopPropagation():(this.startDragHandle=this.handlePosition,this.startDragMouse=
993
994
  this.horizontal?a.clientX:a.clientY,this.onMouseUpWrapper_=k(document,"pointerup",this,this.onMouseUpHandle),this.onMouseMoveWrapper_=k(document,"pointermove",this,this.onMouseMoveHandle),a.stopPropagation(),a.preventDefault())}onMouseMoveHandle(a){this.setHandlePosition(this.constrainHandlePosition(this.startDragHandle+((this.horizontal?a.clientX:a.clientY)-this.startDragMouse)));this.updateMetrics()}onMouseUpHandle(){ha=null;this.cleanUp()}cleanUp(){this.workspace.hideChaff(!0);this.onMouseUpWrapper_&&
994
- (la(this.onMouseUpWrapper_),this.onMouseUpWrapper_=null);this.onMouseMoveWrapper_&&(la(this.onMouseMoveWrapper_),this.onMouseMoveWrapper_=null)}getRatio_(){var a=this.handlePosition/(this.scrollbarLength-this.handleLength);isNaN(a)&&(a=0);return a}updateMetrics(){var a=this.getRatio_();this.horizontal?this.workspace.setMetrics({x:a}):this.workspace.setMetrics({y:a})}set(a,b){this.setHandlePosition(this.constrainHandlePosition(a*this.ratio));(b||b===void 0)&&this.updateMetrics()}setOrigin(a,b){this.origin=
995
- new D(a,b)}static metricsAreEquivalent(a,b){return a.viewWidth===b.viewWidth&&a.viewHeight===b.viewHeight&&a.viewLeft===b.viewLeft&&a.viewTop===b.viewTop&&a.absoluteTop===b.absoluteTop&&a.absoluteLeft===b.absoluteLeft&&a.scrollWidth===b.scrollWidth&&a.scrollHeight===b.scrollHeight&&a.scrollLeft===b.scrollLeft&&a.scrollTop===b.scrollTop}};Ic.scrollbarThickness=jk?25:15;Ic.DEFAULT_SCROLLBAR_MARGIN=.5;var tc={parseFromString:function(){throw Error("DOMParser was not found in the global scope and was not properly injected using injectDependencies");}},wc={serializeToString:function(){throw Error("XMLSerializer was not foundin the global scope and was not properly injected using injectDependencies");}},{document:qc,DOMParser:bl,XMLSerializer:cl}=globalThis;bl&&(tc=new bl);cl&&(wc=new cl);var yc=/[\x00-\x09\x0B\x0C\x0E-\x1F]/g,dl={NAME_SPACE:"https://developers.google.com/blockly/xml"};
996
- dl.createElement=$.rc;dl.createTextNode=$.sc;dl.domToText=xc;dl.injectDependencies=function(a){({document:qc=qc,DOMParser:bl=bl,XMLSerializer:cl=cl}=a);tc=new bl;wc=new cl};dl.textToDom=$.uc;var F,el=F||(F={});el[el.TOP=0]="TOP";el[el.BOTTOM=1]="BOTTOM";el[el.LEFT=2]="LEFT";el[el.RIGHT=3]="RIGHT";var Ec={hasCategoriesInternal:function(a){if(!a)return!1;var b=a.kind;return b?b==="categoryToolbox":!!a.contents.filter(c=>c.kind.toUpperCase()==="CATEGORY").length}},fl={};fl.Position=F;fl.TEST_ONLY=Ec;fl.convertFlyoutDefToJsonArray=Dc;fl.convertToolboxDefToJson=Cc;fl.hasCategories=Fc;fl.isCategoryCollapsible=Gc;fl.parseToolboxTree=zc;var Jc,gl=Jc||(Jc={});gl[gl.TOP=0]="TOP";gl[gl.BOTTOM=1]="BOTTOM";var Hc,hl=Hc||(Hc={});hl[hl.LEFT=0]="LEFT";hl[hl.RIGHT=1]="RIGHT";var Mc,il=Mc||(Mc={});il[il.UP=0]="UP";il[il.DOWN=1]="DOWN";var jl={};jl.bumpDirection=Mc;jl.bumpPositionRect=Nc;jl.getCornerOppositeToolbox=Lc;jl.getStartPositionRect=Kc;jl.horizontalPosition=Hc;jl.verticalPosition=Jc;var kl={width:96,height:124,url:"sprites.svg"};var ll=class{constructor(a,b){this.workspace=a;this.group=b;this.pointerDownHandler=k(b,"pointerdown",null,this.performAction.bind(this));ya(b,Ka.BUTTON);this.id=Lb();this.group.id=this.id}zoom(a,b){this.workspace.markFocused();this.workspace.zoomCenter(a);this.fireZoomEvent();ha=null;b.stopPropagation();b.preventDefault()}fireZoomEvent(){var a=new (u(v.CLICK))(null,this.workspace.id,"zoom_controls");w(a)}getFocusableElement(){return this.group}getFocusableTree(){return this.workspace}onNodeFocus(){}onNodeBlur(){}canBeFocused(){return!0}dispose(){la(this.pointerDownHandler)}},
997
- ml=class extends ll{constructor(a,b){var c=String(Math.random()).substring(2);b=r(q.G,{"class":"blocklyZoom blocklyZoomIn",tabindex:"0"},b);l(b,p.LABEL,$.C.ZOOM_IN);r(q.RECT,{width:40,height:40,x:-4,y:-4,rx:2,ry:2,fill:"none","class":"blocklyFocusRing"},b);var d=r(q.CLIPPATH,{id:"blocklyZoominClipPath"+c},b);r(q.RECT,{width:32,height:32},d);r(q.IMAGE,{width:kl.width,height:kl.height,x:-32,y:-92,"clip-path":"url(#blocklyZoominClipPath"+c+")"},b).setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",
998
- a.options.pathToMedia+kl.url);super(a,b)}performAction(a){this.zoom(1,a)}},nl=class extends ll{constructor(a,b){var c=String(Math.random()).substring(2);b=r(q.G,{"class":"blocklyZoom blocklyZoomOut",tabindex:"0"},b);l(b,p.LABEL,$.C.ZOOM_OUT);r(q.RECT,{width:40,height:40,x:-4,y:-4,rx:2,ry:2,fill:"none","class":"blocklyFocusRing"},b);var d=r(q.CLIPPATH,{id:"blocklyZoomoutClipPath"+c},b);r(q.RECT,{width:32,height:32},d);r(q.IMAGE,{width:kl.width,height:kl.height,x:-64,y:-92,"clip-path":"url(#blocklyZoomoutClipPath"+
999
- c+")"},b).setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a.options.pathToMedia+kl.url);super(a,b)}performAction(a){this.zoom(-1,a)}},ol=class extends ll{constructor(a,b){var c=String(Math.random()).substring(2);b=r(q.G,{"class":"blocklyZoom blocklyZoomReset",tabindex:"0"},b);l(b,p.LABEL,$.C.RESET_ZOOM);r(q.RECT,{width:40,height:40,x:-4,y:-4,rx:2,ry:2,fill:"none","class":"blocklyFocusRing"},b);var d=r(q.CLIPPATH,{id:"blocklyZoomresetClipPath"+c},b);r(q.RECT,{width:32,height:32},d);r(q.IMAGE,
1000
- {width:kl.width,height:kl.height,y:-92,"clip-path":"url(#blocklyZoomresetClipPath"+c+")"},b).setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a.options.pathToMedia+kl.url);super(a,b)}performAction(a){this.workspace.markFocused();var b=Math.log(this.workspace.options.zoomOptions.startScale/this.workspace.scale)/Math.log(this.workspace.options.zoomOptions.scaleSpeed);this.workspace.beginCanvasTransition();this.workspace.zoomCenter(b);this.workspace.scrollCenter();setTimeout(this.workspace.endCanvasTransition.bind(this.workspace),
1001
- 500);this.fireZoomEvent();ha=null;a.stopPropagation();a.preventDefault()}},pl=class{constructor(a){this.workspace=a;this.id="zoomControls";this.zoomResetControl=this.zoomOutControl=this.zoomInControl=null;this.HEIGHT=this.WIDTH=32;this.SMALL_SPACING=2;this.LARGE_SPACING=11;this.MARGIN_HORIZONTAL=this.MARGIN_VERTICAL=20;this.svgGroup=null;this.top=this.left=0;this.initialized=!1}createDom(){this.svgGroup=r(q.G,{});this.zoomOutControl=new nl(this.workspace,this.svgGroup);this.zoomInControl=new ml(this.workspace,
1002
- this.svgGroup);this.workspace.isMovable()&&(this.zoomResetControl=new ol(this.workspace,this.svgGroup));for(let a of[this.zoomOutControl,this.zoomInControl,this.zoomResetControl])a&&this.workspace.getComponentManager().addComponent({component:a,weight:Ck.ComponentWeight.ZOOM_CONTROLS_WEIGHT,capabilities:[Ck.Capability.FOCUSABLE]});return this.svgGroup}init(){this.workspace.getComponentManager().addComponent({component:this,weight:Ck.ComponentWeight.ZOOM_CONTROLS_WEIGHT,capabilities:[Ck.Capability.POSITIONABLE]});
995
+ (ka(this.onMouseUpWrapper_),this.onMouseUpWrapper_=null);this.onMouseMoveWrapper_&&(ka(this.onMouseMoveWrapper_),this.onMouseMoveWrapper_=null)}getRatio_(){var a=this.handlePosition/(this.scrollbarLength-this.handleLength);isNaN(a)&&(a=0);return a}updateMetrics(){var a=this.getRatio_();this.horizontal?this.workspace.setMetrics({x:a}):this.workspace.setMetrics({y:a})}set(a,b){this.setHandlePosition(this.constrainHandlePosition(a*this.ratio));(b||b===void 0)&&this.updateMetrics()}setOrigin(a,b){this.origin=
996
+ new D(a,b)}static metricsAreEquivalent(a,b){return a.viewWidth===b.viewWidth&&a.viewHeight===b.viewHeight&&a.viewLeft===b.viewLeft&&a.viewTop===b.viewTop&&a.absoluteTop===b.absoluteTop&&a.absoluteLeft===b.absoluteLeft&&a.scrollWidth===b.scrollWidth&&a.scrollHeight===b.scrollHeight&&a.scrollLeft===b.scrollLeft&&a.scrollTop===b.scrollTop}};Ic.scrollbarThickness=kk?25:15;Ic.DEFAULT_SCROLLBAR_MARGIN=.5;var tc={parseFromString:function(){throw Error("DOMParser was not found in the global scope and was not properly injected using injectDependencies");}},wc={serializeToString:function(){throw Error("XMLSerializer was not foundin the global scope and was not properly injected using injectDependencies");}},{document:qc,DOMParser:cl,XMLSerializer:dl}=globalThis;cl&&(tc=new cl);dl&&(wc=new dl);var yc=/[\x00-\x09\x0B\x0C\x0E-\x1F]/g,el={NAME_SPACE:"https://developers.google.com/blockly/xml"};
997
+ el.createElement=$.rc;el.createTextNode=$.sc;el.domToText=xc;el.injectDependencies=function(a){({document:qc=qc,DOMParser:cl=cl,XMLSerializer:dl=dl}=a);tc=new cl;wc=new dl};el.textToDom=$.uc;var F,fl=F||(F={});fl[fl.TOP=0]="TOP";fl[fl.BOTTOM=1]="BOTTOM";fl[fl.LEFT=2]="LEFT";fl[fl.RIGHT=3]="RIGHT";var Ec={hasCategoriesInternal:function(a){if(!a)return!1;var b=a.kind;return b?b==="categoryToolbox":!!a.contents.filter(c=>c.kind.toUpperCase()==="CATEGORY").length}},gl={};gl.Position=F;gl.TEST_ONLY=Ec;gl.convertFlyoutDefToJsonArray=Dc;gl.convertToolboxDefToJson=Cc;gl.hasCategories=Fc;gl.isCategoryCollapsible=Gc;gl.parseToolboxTree=zc;var Jc,hl=Jc||(Jc={});hl[hl.TOP=0]="TOP";hl[hl.BOTTOM=1]="BOTTOM";var Hc,il=Hc||(Hc={});il[il.LEFT=0]="LEFT";il[il.RIGHT=1]="RIGHT";var Mc,jl=Mc||(Mc={});jl[jl.UP=0]="UP";jl[jl.DOWN=1]="DOWN";var kl={};kl.bumpDirection=Mc;kl.bumpPositionRect=Nc;kl.getCornerOppositeToolbox=Lc;kl.getStartPositionRect=Kc;kl.horizontalPosition=Hc;kl.verticalPosition=Jc;var ll={width:96,height:124,url:"sprites.svg"};var ml=class{constructor(a,b){this.workspace=a;this.group=b;this.pointerDownHandler=k(b,"pointerdown",null,this.performAction.bind(this));ya(b,Ka.BUTTON);this.id=Lb();this.group.id=this.id}zoom(a,b){this.workspace.markFocused();this.workspace.zoomCenter(a);this.fireZoomEvent();ha=null;b.stopPropagation();b.preventDefault()}fireZoomEvent(){var a=new (u(v.CLICK))(null,this.workspace.id,"zoom_controls");w(a)}getFocusableElement(){return this.group}getFocusableTree(){return this.workspace}onNodeFocus(){}onNodeBlur(){}canBeFocused(){return!0}dispose(){ka(this.pointerDownHandler)}},
998
+ nl=class extends ml{constructor(a,b){var c=String(Math.random()).substring(2);b=r(q.G,{"class":"blocklyZoom blocklyZoomIn",tabindex:"0"},b);l(b,p.LABEL,$.C.ZOOM_IN);r(q.RECT,{width:40,height:40,x:-4,y:-4,rx:2,ry:2,fill:"none","class":"blocklyFocusRing"},b);var d=r(q.CLIPPATH,{id:"blocklyZoominClipPath"+c},b);r(q.RECT,{width:32,height:32},d);r(q.IMAGE,{width:ll.width,height:ll.height,x:-32,y:-92,"clip-path":"url(#blocklyZoominClipPath"+c+")"},b).setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",
999
+ a.options.pathToMedia+ll.url);super(a,b)}performAction(a){this.zoom(1,a)}},ol=class extends ml{constructor(a,b){var c=String(Math.random()).substring(2);b=r(q.G,{"class":"blocklyZoom blocklyZoomOut",tabindex:"0"},b);l(b,p.LABEL,$.C.ZOOM_OUT);r(q.RECT,{width:40,height:40,x:-4,y:-4,rx:2,ry:2,fill:"none","class":"blocklyFocusRing"},b);var d=r(q.CLIPPATH,{id:"blocklyZoomoutClipPath"+c},b);r(q.RECT,{width:32,height:32},d);r(q.IMAGE,{width:ll.width,height:ll.height,x:-64,y:-92,"clip-path":"url(#blocklyZoomoutClipPath"+
1000
+ c+")"},b).setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a.options.pathToMedia+ll.url);super(a,b)}performAction(a){this.zoom(-1,a)}},pl=class extends ml{constructor(a,b){var c=String(Math.random()).substring(2);b=r(q.G,{"class":"blocklyZoom blocklyZoomReset",tabindex:"0"},b);l(b,p.LABEL,$.C.RESET_ZOOM);r(q.RECT,{width:40,height:40,x:-4,y:-4,rx:2,ry:2,fill:"none","class":"blocklyFocusRing"},b);var d=r(q.CLIPPATH,{id:"blocklyZoomresetClipPath"+c},b);r(q.RECT,{width:32,height:32},d);r(q.IMAGE,
1001
+ {width:ll.width,height:ll.height,y:-92,"clip-path":"url(#blocklyZoomresetClipPath"+c+")"},b).setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a.options.pathToMedia+ll.url);super(a,b)}performAction(a){this.workspace.markFocused();var b=Math.log(this.workspace.options.zoomOptions.startScale/this.workspace.scale)/Math.log(this.workspace.options.zoomOptions.scaleSpeed);this.workspace.beginCanvasTransition();this.workspace.zoomCenter(b);this.workspace.scrollCenter();setTimeout(this.workspace.endCanvasTransition.bind(this.workspace),
1002
+ 500);this.fireZoomEvent();ha=null;a.stopPropagation();a.preventDefault()}},ql=class{constructor(a){this.workspace=a;this.id="zoomControls";this.zoomResetControl=this.zoomOutControl=this.zoomInControl=null;this.HEIGHT=this.WIDTH=32;this.SMALL_SPACING=2;this.LARGE_SPACING=11;this.MARGIN_HORIZONTAL=this.MARGIN_VERTICAL=20;this.svgGroup=null;this.top=this.left=0;this.initialized=!1}createDom(){this.svgGroup=r(q.G,{});this.zoomOutControl=new ol(this.workspace,this.svgGroup);this.zoomInControl=new nl(this.workspace,
1003
+ this.svgGroup);this.workspace.isMovable()&&(this.zoomResetControl=new pl(this.workspace,this.svgGroup));for(let a of[this.zoomOutControl,this.zoomInControl,this.zoomResetControl])a&&this.workspace.getComponentManager().addComponent({component:a,weight:Dk.ComponentWeight.ZOOM_CONTROLS_WEIGHT,capabilities:[Dk.Capability.FOCUSABLE]});return this.svgGroup}init(){this.workspace.getComponentManager().addComponent({component:this,weight:Dk.ComponentWeight.ZOOM_CONTROLS_WEIGHT,capabilities:[Dk.Capability.POSITIONABLE]});
1003
1004
  this.initialized=!0}dispose(){this.workspace.getComponentManager().removeComponent("zoomControls");this.svgGroup&&Oa(this.svgGroup);var a;(a=this.zoomInControl)==null||a.dispose();var b;(b=this.zoomOutControl)==null||b.dispose();var c;(c=this.zoomResetControl)==null||c.dispose()}getBoundingRectangle(){var a=this.SMALL_SPACING+2*this.HEIGHT;this.zoomResetControl&&(a+=this.LARGE_SPACING+this.HEIGHT);return new cc(this.top,this.top+a,this.left,this.left+this.WIDTH)}position(a,b){if(this.initialized){var c=
1004
1005
  Lc(this.workspace,a),d=this.SMALL_SPACING+2*this.HEIGHT;this.zoomResetControl&&(d+=this.LARGE_SPACING+this.HEIGHT);a=Kc(c,new hc(this.WIDTH,d),this.MARGIN_HORIZONTAL,this.MARGIN_VERTICAL,a,this.workspace);c=c.vertical;b=Nc(a,this.MARGIN_VERTICAL,c===Jc.TOP?Mc.DOWN:Mc.UP,b);if(c===Jc.TOP){var e=this.SMALL_SPACING+this.HEIGHT,f;(f=this.zoomInControl)==null||f.getFocusableElement().setAttribute("transform","translate(0, "+e+")");this.zoomResetControl&&(e=e+this.LARGE_SPACING+this.HEIGHT,this.zoomResetControl.getFocusableElement().setAttribute("transform",
1005
- "translate(0, "+e+")"))}else{f=this.zoomResetControl?this.LARGE_SPACING+this.HEIGHT:0;let h;(h=this.zoomInControl)==null||h.getFocusableElement().setAttribute("transform","translate(0, "+f+")");f=f+this.SMALL_SPACING+this.HEIGHT;(e=this.zoomOutControl)==null||e.getFocusableElement().setAttribute("transform","translate(0, "+f+")")}this.top=b.top;this.left=b.left;var g;(g=this.svgGroup)==null||g.setAttribute("transform","translate("+this.left+","+this.top+")")}}};ta("\n.blocklyZoom>image, .blocklyZoom>svg>image {\n opacity: .4;\n}\n\n.blocklyZoom>image:hover, .blocklyZoom>svg>image:hover, .blocklyZoom:focus>image {\n opacity: .8;\n}\n\n.blocklyZoom>image:active, .blocklyZoom>svg>image:active {\n opacity: 1;\n}\n");var ql={};ql.register=Oc;ql.unregister=function(a){Eb(y.SERIALIZER,a)};var rl=class{constructor(){this.priority=25}save(a){var b=[];for(let c of a.getTopComments())(a=Pc(c,{addCoordinates:!0,saveIds:!0}))&&b.push(a);return b.length?b:null}load(a,b){for(let c of a)Rc(c,b,{recordUndo:$.Qc})}clear(a){for(let b of a.getTopComments())b.dispose()}};Oc("workspaceComments",new rl);var sl={};sl.WorkspaceCommentSerializer=rl;sl.append=Rc;sl.save=Pc;var tl={};tl.register=Sc;tl.unregister=function(a){Eb(y.PASTER,a)};var ul=class{paste(a,b,c){a=a.commentState;c&&(a.x=c.x,a.y=c.y);$.Ub++;try{var d=Rc(a,b);Uc(d)}finally{$.Ub--}if(!d)return null;Vb()&&w(new (u(v.COMMENT_CREATE))(d));$.t().focusNode(d);return d}};ul.TYPE="workspace-comment";Sc(ul.TYPE,new ul);$.Ng={dragRadius:5,flyoutDragRadius:10,snapRadius:28,connectingSnapRadius:28,currentConnectionPreference:8,bumpDelay:250};var Jg=class{constructor(a,b,c){this.content=a;this.opt_value=b;this.ariaLabel=c;this.enabled=!0;this.element=null;this.rightToLeft=!1;this.roleName=null;this.highlight=this.checked=this.checkable=!1;this.actionHandler=null;this.id=Lb()}createDom(){var a=document.createElement("div");a.id=this.getId();this.element=a;a.className="blocklyMenuItem "+(this.enabled?"":"blocklyMenuItemDisabled ")+(this.checked?"blocklyMenuItemSelected ":"")+(this.highlight?"blocklyMenuItemHighlight ":"")+(this.rightToLeft?
1006
+ "translate(0, "+e+")"))}else{f=this.zoomResetControl?this.LARGE_SPACING+this.HEIGHT:0;let h;(h=this.zoomInControl)==null||h.getFocusableElement().setAttribute("transform","translate(0, "+f+")");f=f+this.SMALL_SPACING+this.HEIGHT;(e=this.zoomOutControl)==null||e.getFocusableElement().setAttribute("transform","translate(0, "+f+")")}this.top=b.top;this.left=b.left;var g;(g=this.svgGroup)==null||g.setAttribute("transform","translate("+this.left+","+this.top+")")}}};ta("\n.blocklyZoom>image, .blocklyZoom>svg>image {\n opacity: .4;\n}\n\n.blocklyZoom>image:hover, .blocklyZoom>svg>image:hover, .blocklyZoom:focus>image {\n opacity: .8;\n}\n\n.blocklyZoom>image:active, .blocklyZoom>svg>image:active {\n opacity: 1;\n}\n");var rl={};rl.register=Oc;rl.unregister=function(a){Eb(y.SERIALIZER,a)};var sl=class{constructor(){this.priority=25}save(a){var b=[];for(let c of a.getTopComments())(a=Pc(c,{addCoordinates:!0,saveIds:!0}))&&b.push(a);return b.length?b:null}load(a,b){for(let c of a)Rc(c,b,{recordUndo:$.Qc})}clear(a){for(let b of a.getTopComments())b.dispose()}};Oc("workspaceComments",new sl);var tl={};tl.WorkspaceCommentSerializer=sl;tl.append=Rc;tl.save=Pc;var ul={};ul.register=Sc;ul.unregister=function(a){Eb(y.PASTER,a)};var vl=class{paste(a,b,c){a=a.commentState;c&&(a.x=c.x,a.y=c.y);$.Ub++;try{var d=Rc(a,b);Uc(d)}finally{$.Ub--}if(!d)return null;Vb()&&w(new (u(v.COMMENT_CREATE))(d));$.t().focusNode(d);return d}};vl.TYPE="workspace-comment";Sc(vl.TYPE,new vl);$.Og={dragRadius:5,flyoutDragRadius:10,snapRadius:28,connectingSnapRadius:28,currentConnectionPreference:8,bumpDelay:250};var Kg=class{constructor(a,b,c){this.content=a;this.opt_value=b;this.ariaLabel=c;this.enabled=!0;this.element=null;this.rightToLeft=!1;this.roleName=null;this.highlight=this.checked=this.checkable=!1;this.actionHandler=null;this.id=Lb()}createDom(){var a=document.createElement("div");a.id=this.getId();this.element=a;a.className="blocklyMenuItem "+(this.enabled?"":"blocklyMenuItemDisabled ")+(this.checked?"blocklyMenuItemSelected ":"")+(this.highlight?"blocklyMenuItemHighlight ":"")+(this.rightToLeft?
1006
1007
  "blocklyMenuItemRtl ":"");var b=document.createElement("div");l(a,p.LABEL,this.getAriaLabel());ya(b,Ka.NONE);b.className="blocklyMenuItemContent";var c=this.content;typeof this.content==="string"&&(c=document.createTextNode(this.content));b.appendChild(c);a.appendChild(b);this.checkable&&this.toggleHasCheckbox(!0);this.roleName&&ya(a,this.roleName);l(a,p.SELECTED,this.checkable&&this.checked||!1);l(a,p.DISABLED,!this.enabled);return a}getAriaLabel(){return this.ariaLabel||(typeof this.content==="string"?
1007
1008
  this.content:this.content.textContent)}dispose(){this.element=null}getElement(){return this.element}getId(){return this.id}getValue(){var a;return(a=this.opt_value)!=null?a:null}setRightToLeft(a){this.rightToLeft=a;var b;(b=this.getElement())==null||b.classList.toggle("blocklyMenuItemRtl",this.rightToLeft)}setRole(a){this.roleName=a}setCheckable(a){(this.checkable=a)||this.setChecked(!1);this.toggleHasCheckbox(a)}setChecked(a){if(!a||this.checkable)if(this.checked=a,a=this.getElement())a.classList.toggle("blocklyMenuItemSelected",
1008
1009
  this.checked),l(a,p.SELECTED,this.checked)}setHighlighted(a){this.highlight=a;if(this.isEnabled()){let b;(b=this.getElement())==null||b.classList.toggle("blocklyMenuItemHighlight",this.highlight)}}isEnabled(){return this.enabled}setEnabled(a){this.enabled=a;if(a=this.getElement())a.classList.toggle("blocklyMenuItemDisabled",!this.enabled),l(a,p.DISABLED,!this.enabled)}performAction(a){this.isEnabled()&&this.actionHandler&&this.actionHandler(this,a)}onAction(a,b){this.actionHandler=a.bind(b)}toggleHasCheckbox(a){if(a){let d;
1009
- if((d=this.getElement())==null||!d.querySelector(".blocklyMenuItemContent .blocklyMenuItemCheckbox")){a=document.createElement("div");l(a,p.HIDDEN,!0);a.className="blocklyMenuItemCheckbox ";var b,c;(b=this.getElement())==null||(c=b.querySelector(".blocklyMenuItemContent"))==null||c.prepend(a)}}else{let d,e;(d=this.getElement())==null||(e=d.querySelector(".blocklyMenuItemContent .blocklyMenuItemCheckbox"))==null||e.remove()}}};var Hg=class{constructor(){this.menuItems=[];this.roleName=this.element=this.onKeyDownHandler=this.pointerLeaveHandler=this.pointerEnterHandler=this.clickHandler=this.pointerMoveHandler=this.highlightedItem=this.openingCoords=null;this.id=Lb()}addChild(a){this.menuItems.push(a)}render(a){var b=document.createElement("div");b.className="blocklyMenu";b.tabIndex=0;b.id=this.getId();this.roleName&&ya(b,this.roleName);this.element=b;for(let c=0,d;d=this.menuItems[c];c++)b.appendChild(d.createDom());this.pointerMoveHandler=
1010
+ if((d=this.getElement())==null||!d.querySelector(".blocklyMenuItemContent .blocklyMenuItemCheckbox")){a=document.createElement("div");l(a,p.HIDDEN,!0);a.className="blocklyMenuItemCheckbox ";var b,c;(b=this.getElement())==null||(c=b.querySelector(".blocklyMenuItemContent"))==null||c.prepend(a)}}else{let d,e;(d=this.getElement())==null||(e=d.querySelector(".blocklyMenuItemContent .blocklyMenuItemCheckbox"))==null||e.remove()}}};var Ig=class{constructor(){this.menuItems=[];this.roleName=this.element=this.onKeyDownHandler=this.pointerLeaveHandler=this.pointerEnterHandler=this.clickHandler=this.pointerMoveHandler=this.highlightedItem=this.openingCoords=null;this.id=Lb()}addChild(a){this.menuItems.push(a)}render(a){var b=document.createElement("div");b.className="blocklyMenu";b.tabIndex=0;b.id=this.getId();this.roleName&&ya(b,this.roleName);this.element=b;for(let c=0,d;d=this.menuItems[c];c++)b.appendChild(d.createDom());this.pointerMoveHandler=
1010
1011
  k(b,"pointermove",this,this.handlePointerMove,!0);this.clickHandler=k(b,"pointerup",this,this.handleClick,!0);this.pointerEnterHandler=k(b,"pointerenter",this,this.handlePointerEnter,!0);this.pointerLeaveHandler=k(b,"pointerleave",this,this.handlePointerLeave,!0);this.onKeyDownHandler=k(b,"keydown",this,this.handleKeyEvent);a.appendChild(b);return b}getElement(){return this.element}focus(){var a=this.getElement();a&&a.focus({preventScroll:!0})}blur(){var a=this.getElement();a&&a.blur()}setRole(a){this.roleName=
1011
- a}dispose(){this.pointerMoveHandler&&(la(this.pointerMoveHandler),this.pointerMoveHandler=null);this.clickHandler&&(la(this.clickHandler),this.clickHandler=null);this.pointerEnterHandler&&(la(this.pointerEnterHandler),this.pointerEnterHandler=null);this.pointerLeaveHandler&&(la(this.pointerLeaveHandler),this.pointerLeaveHandler=null);this.onKeyDownHandler&&(la(this.onKeyDownHandler),this.onKeyDownHandler=null);for(let a=0,b;b=this.menuItems[a];a++)b.dispose();this.element=null}getMenuItem(a){for(var b=
1012
+ a}dispose(){this.pointerMoveHandler&&(ka(this.pointerMoveHandler),this.pointerMoveHandler=null);this.clickHandler&&(ka(this.clickHandler),this.clickHandler=null);this.pointerEnterHandler&&(ka(this.pointerEnterHandler),this.pointerEnterHandler=null);this.pointerLeaveHandler&&(ka(this.pointerLeaveHandler),this.pointerLeaveHandler=null);this.onKeyDownHandler&&(ka(this.onKeyDownHandler),this.onKeyDownHandler=null);for(let a=0,b;b=this.menuItems[a];a++)b.dispose();this.element=null}getMenuItem(a){for(var b=
1012
1013
  this.getElement();a&&a!==b;){if(a.classList.contains("blocklyMenuItem")){let c=this.getMenuItems();for(let d=0,e;e=c[d];d++)if(e.getElement()===a)return e}a=a.parentElement}return null}setHighlighted(a){var b=this.highlightedItem;b&&(b.setHighlighted(!1),this.highlightedItem=null);if(a){a.setHighlighted(!0);this.highlightedItem=a;b=this.getElement();let c=a.getElement();b&&c&&(fc(c,b),l(b,p.ACTIVEDESCENDANT,a.getId()))}}highlightNext(){var a=this.highlightedItem?this.getMenuItems().indexOf(this.highlightedItem):
1013
1014
  -1;this.highlightHelper(a,1)}highlightPrevious(){var a=this.highlightedItem?this.getMenuItems().indexOf(this.highlightedItem):-1;this.highlightHelper(a<0?this.menuItems.length:a,-1)}highlightFirst(){this.highlightHelper(-1,1)}highlightLast(){this.highlightHelper(this.menuItems.length,-1)}highlightHelper(a,b){a+=b;for(var c,d=this.getMenuItems();c=d[a];){if(c.isEnabled()){this.setHighlighted(c);break}a+=b}}handlePointerMove(a){Math.max(Math.abs(a.movementX),Math.abs(a.movementY))!==0&&(a=this.getMenuItem(a.target))&&
1014
1015
  (a.isEnabled()?this.highlightedItem!==a&&this.setHighlighted(a):this.setHighlighted(null))}handleClick(a){var b=this.openingCoords;this.openingCoords=null;if(b&&typeof a.clientX==="number"){let c=new D(a.clientX,a.clientY);if(D.distance(b,c)<1)return}(b=this.getMenuItem(a.target))&&b.performAction(a)}handlePointerEnter(){this.focus()}handlePointerLeave(){this.getElement()&&this.setHighlighted(null)}handleKeyEvent(a){if(this.menuItems.length&&!(a.shiftKey||a.ctrlKey||a.metaKey||a.altKey)){var b=this.highlightedItem;
1015
- switch(a.key){case "Enter":case " ":b&&b.performAction(a);break;case "ArrowUp":this.highlightPrevious();break;case "ArrowDown":this.highlightNext();break;case "PageUp":case "Home":this.highlightFirst();break;case "PageDown":case "End":this.highlightLast();break;default:return}a.preventDefault();a.stopPropagation()}}getSize(){var a=this.getElement(),b=Zb(a);b.height=a.scrollHeight;return b}getMenuItems(){return this.menuItems.filter(a=>a instanceof Jg)}getId(){return this.id}};var Ig=class{constructor(){this.element=null}createDom(){this.element=document.createElement("hr");this.element.className="blocklyMenuSeparator";ya(this.element,Ka.SEPARATOR);return this.element}dispose(){var a;(a=this.element)==null||a.remove();this.element=null}};var vl;vl=$.ie||($.ie={});vl[vl.VALUE=1]="VALUE";vl[vl.STATEMENT=3]="STATEMENT";vl[vl.DUMMY=5]="DUMMY";vl[vl.CUSTOM=6]="CUSTOM";vl[vl.END_ROW=7]="END_ROW";var hd=new Set,ed=new WeakSet,fd=new WeakMap,Zc=null,$c=null,ad=0,wl={};wl.finishQueuedRenders=cd;wl.queueRender=bd;wl.triggerQueuedRenders=dd;var ki=class{static show(a,b){if(b.oncePerSession&&b.id){if(this.shownIds.has(b.id))return;this.shownIds.add(b.id)}this.hide(a);var c=this.createDom(a,b);requestAnimationFrame(()=>{c.style.bottom="2rem"})}static createDom(a,b){var {message:c,duration:d=5,assertiveness:e=Ca.POLITE}=b,f=document.createElement("div");a.getInjectionDiv().appendChild(f);f.dataset.toastId=b.id;f.className="blocklyToast";b=f.appendChild(document.createElement("div"));b.className="blocklyToastMessage";b.innerText=c;b=f.appendChild(document.createElement("button"));
1016
+ switch(a.key){case "Enter":case " ":b&&b.performAction(a);break;case "ArrowUp":this.highlightPrevious();break;case "ArrowDown":this.highlightNext();break;case "PageUp":case "Home":this.highlightFirst();break;case "PageDown":case "End":this.highlightLast();break;default:return}a.preventDefault();a.stopPropagation()}}getSize(){var a=this.getElement(),b=Zb(a);b.height=a.scrollHeight;return b}getMenuItems(){return this.menuItems.filter(a=>a instanceof Kg)}getId(){return this.id}};var Jg=class{constructor(){this.element=null}createDom(){this.element=document.createElement("hr");this.element.className="blocklyMenuSeparator";ya(this.element,Ka.SEPARATOR);return this.element}dispose(){var a;(a=this.element)==null||a.remove();this.element=null}};var wl;wl=$.je||($.je={});wl[wl.VALUE=1]="VALUE";wl[wl.STATEMENT=3]="STATEMENT";wl[wl.DUMMY=5]="DUMMY";wl[wl.CUSTOM=6]="CUSTOM";wl[wl.END_ROW=7]="END_ROW";var hd=new Set,ed=new WeakSet,fd=new WeakMap,Zc=null,$c=null,ad=0,xl={};xl.finishQueuedRenders=cd;xl.queueRender=bd;xl.triggerQueuedRenders=dd;var li=class{static show(a,b){if(b.oncePerSession&&b.id){if(this.shownIds.has(b.id))return;this.shownIds.add(b.id)}this.hide(a);var c=this.createDom(a,b);requestAnimationFrame(()=>{c.style.bottom="2rem"})}static createDom(a,b){var {message:c,duration:d=5,assertiveness:e=Ca.POLITE}=b,f=document.createElement("div");a.getInjectionDiv().appendChild(f);f.dataset.toastId=b.id;f.className="blocklyToast";b=f.appendChild(document.createElement("div"));b.className="blocklyToastMessage";b.innerText=c;b=f.appendChild(document.createElement("button"));
1016
1017
  b.className="blocklyToastCloseButton";l(b,p.LABEL,$.C.CLOSE);var g=r(q.SVG,{width:24,height:24,viewBox:"0 0 24 24",fill:"none"},b);l(g,p.HIDDEN,!0);r(q.RECT,{x:19.7782,y:2.80762,width:2,height:24,transform:"rotate(45, 19.7782, 2.80762)",fill:"black"},g);r(q.RECT,{x:2.80762,y:4.22183,width:2,height:24,transform:"rotate(-45, 2.80762, 4.22183)",fill:"black"},g);b.addEventListener("click",()=>{f.remove();a.markFocused()});var h;b=()=>{h=setTimeout(()=>f.remove(),d*1E3)};g=()=>clearTimeout(h);f.addEventListener("focusin",
1017
- g);f.addEventListener("focusout",b);f.addEventListener("mouseenter",g);f.addEventListener("mousemove",g);f.addEventListener("mouseleave",b);b();Ja(c,{assertiveness:e,role:Ka.STATUS});return f}static hide(a,b){a=a.getInjectionDiv().querySelector(".blocklyToast");a instanceof HTMLElement&&(!b||b===a.dataset.toastId)&&a.remove()}};ki.shownIds=new Set;ta("\n.blocklyToast {\n font-size: 1.2rem;\n position: absolute;\n bottom: -10rem;\n right: 2rem;\n padding: 1rem;\n color: black;\n background-color: white;\n border: 2px solid black;\n border-radius: 0.4rem;\n z-index: 999;\n display: flex;\n align-items: center;\n gap: 0.8rem;\n line-height: 1.5;\n transition: bottom 0.3s ease-out;\n}\n\n.blocklyToast .blocklyToastMessage {\n maxWidth: 18rem;\n}\n\n.blocklyToast .blocklyToastCloseButton {\n margin: 0;\n padding: 0.2rem;\n background-color: transparent;\n color: black;\n border: none;\n cursor: pointer;\n}\n");var md,xl=md||(md={});xl[xl.ALERT=1]="ALERT";xl[xl.CONFIRM=2]="CONFIRM";xl[xl.PROMPT=3]="PROMPT";var wd=0,qd=nd,sd=od,ud=pd,yl=ki.show.bind(ki),zl=yl,Al={};Al.alert=rd;Al.confirm=td;Al.prompt=vd;Al.setAlert=function(a=nd){qd=a};Al.setConfirm=function(a=od){sd=a};Al.setPrompt=function(a=pd){ud=a};Al.setToast=function(a=yl){zl=a};Al.toast=function(a,b){zl(a,b)};var Bl=class{constructor(){this.workspaceId=void 0;this.isUiEvent=!1;this.type="";this.group=$.gd;this.recordUndo=$.Qc}toJson(){return{type:this.type,group:this.group}}static fromJson(a,b,c){c.isBlank=!1;c.group=a.group||"";c.workspaceId=b.id;return c}isNull(){return!1}run(){}getEventWorkspace_(){var a;this.workspaceId&&(a=fb(this.workspaceId));if(!a)throw Error("Workspace is null. Event must have been generated from real Blockly events.");return a}};var Cl=class extends Bl{constructor(a){super();this.isBlank=!0;this.isBlank=!a;a&&(this.blockId=a.id,this.workspaceId=a.workspace.id)}toJson(){var a=super.toJson();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");a.blockId=this.blockId;return a}static fromJson(a,b,c){b=Bl.fromJson(a,b,c!=null?c:new Cl);b.blockId=a.blockId;return b}};var Yg=class{constructor(a){this.name=a}toString(){return this.name}equals(a){return this.name===a.toString()}};Yg.MUTATOR=new Yg("mutator");Yg.WARNING=new Yg("warning");Yg.COMMENT=new Yg("comment");var Dl=class extends Cl{constructor(a,b,c,d,e){super(a);this.type=v.BLOCK_CHANGE;a&&(this.element=b,this.name=c||void 0,this.oldValue=d,this.newValue=e)}toJson(){var a=super.toJson();if(!this.element)throw Error("The changed element is undefined. Either pass an element to the constructor, or call fromJson");a.element=this.element;a.name=this.name;a.oldValue=this.oldValue;a.newValue=this.newValue;this.disabledReason&&(a.disabledReason=this.disabledReason);return a}static fromJson(a,b,c){b=Cl.fromJson(a,
1018
- b,c!=null?c:new Dl);b.element=a.element;b.name=a.name;b.oldValue=a.oldValue;b.newValue=a.newValue;a.disabledReason!==void 0&&(b.disabledReason=a.disabledReason);return b}setDisabledReason(a){if(this.element!=="disabled")throw Error('Cannot set the disabled reason for a BlockChange event if the element is not "disabled".');this.disabledReason=a}isNull(){return this.oldValue===this.newValue}run(a){var b=this.getEventWorkspace_();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");
1019
- b=b.getBlockById(this.blockId);if(!b)throw Error("The associated block is undefined. Either pass a block to the constructor, or call fromJson");var c=b.getIcon(Yg.MUTATOR);c&&xd(c)&&c.bubbleIsVisible()&&c.setBubbleVisible(!1);a=a?this.newValue:this.oldValue;switch(this.element){case "field":(b=b.getField(this.name))?b.setValue(a):console.warn("Can't set non-existent field: "+this.name);break;case "comment":b.setCommentText(a!=null?a:null);break;case "collapsed":b.setCollapsed(!!a);break;case "disabled":var d;
1020
- b.setDisabledReason(!!a,(d=this.disabledReason)!=null?d:"MANUALLY_DISABLED");break;case "inline":b.setInputsInline(!!a);break;case "mutation":d=Dl.getExtraBlockState_(b);b.loadExtraState?b.loadExtraState(JSON.parse(a||"{}")):b.domToMutation&&b.domToMutation($.uc(a||"<mutation/>"));w(new Dl(b,"mutation",null,d,a));break;default:console.warn("Unknown change type: "+this.element)}}static getExtraBlockState_(a){return a.saveExtraState?(a=a.saveExtraState(!0))?JSON.stringify(a):"":a.mutationToDom?(a=a.mutationToDom())?
1021
- $d(a):"":""}};A(y.EVENT,v.BLOCK_CHANGE,Dl);var El=class extends Cl{constructor(a){super(a);this.type=v.BLOCK_CREATE;a&&(a.isShadow()&&(this.recordUndo=!1),this.ids=Wb(a),this.json=be(a,{addCoordinates:!0}))}toJson(){var a=super.toJson();if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");if(!this.json)throw Error("The block JSON is undefined. Either pass a block to the constructor, or call fromJson");a.ids=this.ids;a.json=this.json;this.recordUndo||(a.recordUndo=this.recordUndo);
1022
- return a}static fromJson(a,b,c){b=Cl.fromJson(a,b,c!=null?c:new El);b.ids=a.ids;b.json=a.json;a.recordUndo!==void 0&&(b.recordUndo=a.recordUndo);return b}run(a){var b=this.getEventWorkspace_();if(!this.json)throw Error("The block JSON is undefined. Either pass a block to the constructor, or call fromJson");if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");if(!yd(b,this.ids))if(a)de(this.json,b);else for(a=0;a<this.ids.length;a++){let c=
1023
- this.ids[a],d=b.getBlockById(c);d?d.dispose(!1):c===this.blockId&&console.warn("Can't uncreate non-existent block: "+c)}}};A(y.EVENT,v.BLOCK_CREATE,El);var Fl=class extends Cl{constructor(a){super(a);this.type=v.BLOCK_DELETE;if(a){if(a.getParent())throw Error("Connected blocks cannot be deleted.");a.isShadow()&&(this.recordUndo=!1);this.ids=Wb(a);this.wasShadow=a.isShadow();this.oldJson=be(a,{addCoordinates:!0})}}toJson(){var a=super.toJson();if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");if(this.wasShadow===void 0)throw Error("Whether the block was a shadow is undefined. Either pass a block to the constructor, or call fromJson");
1024
- if(!this.oldJson)throw Error("The old block JSON is undefined. Either pass a block to the constructor, or call fromJson");a.ids=this.ids;a.wasShadow=this.wasShadow;a.oldJson=this.oldJson;this.recordUndo||(a.recordUndo=this.recordUndo);return a}static fromJson(a,b,c){b=Cl.fromJson(a,b,c!=null?c:new Fl);b.ids=a.ids;b.wasShadow=a.wasShadow;b.oldJson=a.oldJson;a.recordUndo!==void 0&&(b.recordUndo=a.recordUndo);return b}run(a){var b=this.getEventWorkspace_();if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");
1025
- if(!this.oldJson)throw Error("The old block JSON is undefined. Either pass a block to the constructor, or call fromJson");if(a)for(a=0;a<this.ids.length;a++){let c=this.ids[a],d=b.getBlockById(c);d?d.dispose(!1):c===this.blockId&&console.warn("Can't delete non-existent block: "+c)}else de(this.oldJson,b)}};A(y.EVENT,v.BLOCK_DELETE,Fl);var Gl=class extends Bl{constructor(a){super();this.isBlank=!0;this.recordUndo=!1;this.isUiEvent=!0;this.isBlank=typeof a==="undefined";this.workspaceId=a?a:""}};var Hl=class extends Gl{constructor(a,b,c){super(a?a.workspace.id:void 0);this.type=v.BLOCK_DRAG;a&&(this.blockId=a.id,this.isStart=b,this.blocks=c)}toJson(){var a=super.toJson();if(this.isStart===void 0)throw Error("Whether this event is the start of a drag is undefined. Either pass the value to the constructor, or call fromJson");if(this.blockId===void 0)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");a.isStart=this.isStart;a.blockId=this.blockId;
1026
- a.blocks=this.blocks;return a}static fromJson(a,b,c){b=Gl.fromJson(a,b,c!=null?c:new Hl);b.isStart=a.isStart;b.blockId=a.blockId;b.blocks=a.blocks;return b}};A(y.EVENT,v.BLOCK_DRAG,Hl);var Il=class extends Cl{constructor(a,b,c,d){super(a);this.type=v.BLOCK_FIELD_INTERMEDIATE_CHANGE;this.recordUndo=!1;a&&(this.name=b,this.oldValue=c,this.newValue=d)}toJson(){var a=super.toJson();if(!this.name)throw Error("The changed field name is undefined. Either pass a name to the constructor, or call fromJson.");a.name=this.name;a.oldValue=this.oldValue;a.newValue=this.newValue;return a}static fromJson(a,b,c){b=Cl.fromJson(a,b,c!=null?c:new Il);b.name=a.name;b.oldValue=a.oldValue;b.newValue=
1018
+ g);f.addEventListener("focusout",b);f.addEventListener("mouseenter",g);f.addEventListener("mousemove",g);f.addEventListener("mouseleave",b);b();Ja(c,{assertiveness:e,role:Ka.STATUS});return f}static hide(a,b){a=a.getInjectionDiv().querySelector(".blocklyToast");a instanceof HTMLElement&&(!b||b===a.dataset.toastId)&&a.remove()}};li.shownIds=new Set;ta("\n.blocklyToast {\n font-size: 1.2rem;\n position: absolute;\n bottom: -10rem;\n right: 2rem;\n padding: 1rem;\n color: black;\n background-color: white;\n border: 2px solid black;\n border-radius: 0.4rem;\n z-index: 999;\n display: flex;\n align-items: center;\n gap: 0.8rem;\n line-height: 1.5;\n transition: bottom 0.3s ease-out;\n}\n\n.blocklyToast .blocklyToastMessage {\n maxWidth: 18rem;\n}\n\n.blocklyToast .blocklyToastCloseButton {\n margin: 0;\n padding: 0.2rem;\n background-color: transparent;\n color: black;\n border: none;\n cursor: pointer;\n}\n");var md,yl=md||(md={});yl[yl.ALERT=1]="ALERT";yl[yl.CONFIRM=2]="CONFIRM";yl[yl.PROMPT=3]="PROMPT";var wd=0,qd=nd,sd=od,ud=pd,zl=li.show.bind(li),Al=zl,Bl={};Bl.alert=rd;Bl.confirm=td;Bl.prompt=vd;Bl.setAlert=function(a=nd){qd=a};Bl.setConfirm=function(a=od){sd=a};Bl.setPrompt=function(a=pd){ud=a};Bl.setToast=function(a=zl){Al=a};Bl.toast=function(a,b){Al(a,b)};var Cl=class{constructor(){this.workspaceId=void 0;this.isUiEvent=!1;this.type="";this.group=$.gd;this.recordUndo=$.Qc}toJson(){return{type:this.type,group:this.group}}static fromJson(a,b,c){c.isBlank=!1;c.group=a.group||"";c.workspaceId=b.id;return c}isNull(){return!1}run(){}getEventWorkspace_(){var a;this.workspaceId&&(a=fb(this.workspaceId));if(!a)throw Error("Workspace is null. Event must have been generated from real Blockly events.");return a}};var Dl=class extends Cl{constructor(a){super();this.isBlank=!0;this.isBlank=!a;a&&(this.blockId=a.id,this.workspaceId=a.workspace.id)}toJson(){var a=super.toJson();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");a.blockId=this.blockId;return a}static fromJson(a,b,c){b=Cl.fromJson(a,b,c!=null?c:new Dl);b.blockId=a.blockId;return b}};var Zg=class{constructor(a){this.name=a}toString(){return this.name}equals(a){return this.name===a.toString()}};Zg.MUTATOR=new Zg("mutator");Zg.WARNING=new Zg("warning");Zg.COMMENT=new Zg("comment");var El=class extends Dl{constructor(a,b,c,d,e){super(a);this.type=v.BLOCK_CHANGE;a&&(this.element=b,this.name=c||void 0,this.oldValue=d,this.newValue=e)}toJson(){var a=super.toJson();if(!this.element)throw Error("The changed element is undefined. Either pass an element to the constructor, or call fromJson");a.element=this.element;a.name=this.name;a.oldValue=this.oldValue;a.newValue=this.newValue;this.disabledReason&&(a.disabledReason=this.disabledReason);return a}static fromJson(a,b,c){b=Dl.fromJson(a,
1019
+ b,c!=null?c:new El);b.element=a.element;b.name=a.name;b.oldValue=a.oldValue;b.newValue=a.newValue;a.disabledReason!==void 0&&(b.disabledReason=a.disabledReason);return b}setDisabledReason(a){if(this.element!=="disabled")throw Error('Cannot set the disabled reason for a BlockChange event if the element is not "disabled".');this.disabledReason=a}isNull(){return this.oldValue===this.newValue}run(a){var b=this.getEventWorkspace_();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");
1020
+ b=b.getBlockById(this.blockId);if(!b)throw Error("The associated block is undefined. Either pass a block to the constructor, or call fromJson");var c=b.getIcon(Zg.MUTATOR);c&&xd(c)&&c.bubbleIsVisible()&&c.setBubbleVisible(!1);a=a?this.newValue:this.oldValue;switch(this.element){case "field":(b=b.getField(this.name))?b.setValue(a):console.warn("Can't set non-existent field: "+this.name);break;case "comment":b.setCommentText(a!=null?a:null);break;case "collapsed":b.setCollapsed(!!a);break;case "disabled":var d;
1021
+ b.setDisabledReason(!!a,(d=this.disabledReason)!=null?d:"MANUALLY_DISABLED");break;case "inline":b.setInputsInline(!!a);break;case "mutation":d=El.getExtraBlockState_(b);b.loadExtraState?b.loadExtraState(JSON.parse(a||"{}")):b.domToMutation&&b.domToMutation($.uc(a||"<mutation/>"));w(new El(b,"mutation",null,d,a));break;default:console.warn("Unknown change type: "+this.element)}}static getExtraBlockState_(a){return a.saveExtraState?(a=a.saveExtraState(!0))?JSON.stringify(a):"":a.mutationToDom?(a=a.mutationToDom())?
1022
+ ae(a):"":""}};A(y.EVENT,v.BLOCK_CHANGE,El);var Fl=class extends Dl{constructor(a){super(a);this.type=v.BLOCK_CREATE;a&&(a.isShadow()&&(this.recordUndo=!1),this.ids=Wb(a),this.json=ce(a,{addCoordinates:!0}))}toJson(){var a=super.toJson();if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");if(!this.json)throw Error("The block JSON is undefined. Either pass a block to the constructor, or call fromJson");a.ids=this.ids;a.json=this.json;this.recordUndo||(a.recordUndo=this.recordUndo);
1023
+ return a}static fromJson(a,b,c){b=Dl.fromJson(a,b,c!=null?c:new Fl);b.ids=a.ids;b.json=a.json;a.recordUndo!==void 0&&(b.recordUndo=a.recordUndo);return b}run(a){var b=this.getEventWorkspace_();if(!this.json)throw Error("The block JSON is undefined. Either pass a block to the constructor, or call fromJson");if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");if(!yd(b,this.ids))if(a)ee(this.json,b);else for(a=0;a<this.ids.length;a++){let c=
1024
+ this.ids[a],d=b.getBlockById(c);d?d.dispose(!1):c===this.blockId&&console.warn("Can't uncreate non-existent block: "+c)}}};A(y.EVENT,v.BLOCK_CREATE,Fl);var Gl=class extends Dl{constructor(a){super(a);this.type=v.BLOCK_DELETE;if(a){if(a.getParent())throw Error("Connected blocks cannot be deleted.");a.isShadow()&&(this.recordUndo=!1);this.ids=Wb(a);this.wasShadow=a.isShadow();this.oldJson=ce(a,{addCoordinates:!0})}}toJson(){var a=super.toJson();if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");if(this.wasShadow===void 0)throw Error("Whether the block was a shadow is undefined. Either pass a block to the constructor, or call fromJson");
1025
+ if(!this.oldJson)throw Error("The old block JSON is undefined. Either pass a block to the constructor, or call fromJson");a.ids=this.ids;a.wasShadow=this.wasShadow;a.oldJson=this.oldJson;this.recordUndo||(a.recordUndo=this.recordUndo);return a}static fromJson(a,b,c){b=Dl.fromJson(a,b,c!=null?c:new Gl);b.ids=a.ids;b.wasShadow=a.wasShadow;b.oldJson=a.oldJson;a.recordUndo!==void 0&&(b.recordUndo=a.recordUndo);return b}run(a){var b=this.getEventWorkspace_();if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");
1026
+ if(!this.oldJson)throw Error("The old block JSON is undefined. Either pass a block to the constructor, or call fromJson");if(a)for(a=0;a<this.ids.length;a++){let c=this.ids[a],d=b.getBlockById(c);d?d.dispose(!1):c===this.blockId&&console.warn("Can't delete non-existent block: "+c)}else ee(this.oldJson,b)}};A(y.EVENT,v.BLOCK_DELETE,Gl);var Hl=class extends Cl{constructor(a){super();this.isBlank=!0;this.recordUndo=!1;this.isUiEvent=!0;this.isBlank=typeof a==="undefined";this.workspaceId=a?a:""}};var Il=class extends Hl{constructor(a,b,c){super(a?a.workspace.id:void 0);this.type=v.BLOCK_DRAG;a&&(this.blockId=a.id,this.isStart=b,this.blocks=c)}toJson(){var a=super.toJson();if(this.isStart===void 0)throw Error("Whether this event is the start of a drag is undefined. Either pass the value to the constructor, or call fromJson");if(this.blockId===void 0)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");a.isStart=this.isStart;a.blockId=this.blockId;
1027
+ a.blocks=this.blocks;return a}static fromJson(a,b,c){b=Hl.fromJson(a,b,c!=null?c:new Il);b.isStart=a.isStart;b.blockId=a.blockId;b.blocks=a.blocks;return b}};A(y.EVENT,v.BLOCK_DRAG,Il);var Jl=class extends Dl{constructor(a,b,c,d){super(a);this.type=v.BLOCK_FIELD_INTERMEDIATE_CHANGE;this.recordUndo=!1;a&&(this.name=b,this.oldValue=c,this.newValue=d)}toJson(){var a=super.toJson();if(!this.name)throw Error("The changed field name is undefined. Either pass a name to the constructor, or call fromJson.");a.name=this.name;a.oldValue=this.oldValue;a.newValue=this.newValue;return a}static fromJson(a,b,c){b=Dl.fromJson(a,b,c!=null?c:new Jl);b.name=a.name;b.oldValue=a.oldValue;b.newValue=
1027
1028
  a.newValue;return b}isNull(){return this.oldValue===this.newValue}run(a){var b=this.getEventWorkspace_();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");b=b.getBlockById(this.blockId);if(!b)throw Error("The associated block is undefined. Either pass a block to the constructor, or call fromJson");a=a?this.newValue:this.oldValue;(b=b.getField(this.name))?b.setValue(a):console.warn("Can't set non-existent field: "+this.name)}};
1028
- A(y.EVENT,v.BLOCK_FIELD_INTERMEDIATE_CHANGE,Il);var G,Jl=G||(G={});Jl[Jl.INPUT_VALUE=1]="INPUT_VALUE";Jl[Jl.OUTPUT_VALUE=2]="OUTPUT_VALUE";Jl[Jl.NEXT_STATEMENT=3]="NEXT_STATEMENT";Jl[Jl.PREVIOUS_STATEMENT=4]="PREVIOUS_STATEMENT";var Kl=class extends Cl{constructor(a){super(a);this.type=v.BLOCK_MOVE;a&&(a.isShadow()&&(this.recordUndo=!1),a=this.currentLocation(),this.oldParentId=a.parentId,this.oldInputName=a.inputName,this.oldCoordinate=a.coordinate)}toJson(){var a=super.toJson();a.oldParentId=this.oldParentId;a.oldInputName=this.oldInputName;this.oldCoordinate&&(a.oldCoordinate=`${Math.round(this.oldCoordinate.x)}, ${Math.round(this.oldCoordinate.y)}`);a.newParentId=this.newParentId;a.newInputName=this.newInputName;this.newCoordinate&&
1029
- (a.newCoordinate=`${Math.round(this.newCoordinate.x)}, ${Math.round(this.newCoordinate.y)}`);this.reason&&(a.reason=this.reason);this.recordUndo||(a.recordUndo=this.recordUndo);return a}static fromJson(a,b,c){b=Cl.fromJson(a,b,c!=null?c:new Kl);b.oldParentId=a.oldParentId;b.oldInputName=a.oldInputName;a.oldCoordinate&&(c=a.oldCoordinate.split(","),b.oldCoordinate=new D(Number(c[0]),Number(c[1])));b.newParentId=a.newParentId;b.newInputName=a.newInputName;a.newCoordinate&&(c=a.newCoordinate.split(","),
1029
+ A(y.EVENT,v.BLOCK_FIELD_INTERMEDIATE_CHANGE,Jl);var G,Kl=G||(G={});Kl[Kl.INPUT_VALUE=1]="INPUT_VALUE";Kl[Kl.OUTPUT_VALUE=2]="OUTPUT_VALUE";Kl[Kl.NEXT_STATEMENT=3]="NEXT_STATEMENT";Kl[Kl.PREVIOUS_STATEMENT=4]="PREVIOUS_STATEMENT";var Ll=class extends Dl{constructor(a){super(a);this.type=v.BLOCK_MOVE;a&&(a.isShadow()&&(this.recordUndo=!1),a=this.currentLocation(),this.oldParentId=a.parentId,this.oldInputName=a.inputName,this.oldCoordinate=a.coordinate)}toJson(){var a=super.toJson();a.oldParentId=this.oldParentId;a.oldInputName=this.oldInputName;this.oldCoordinate&&(a.oldCoordinate=`${Math.round(this.oldCoordinate.x)}, ${Math.round(this.oldCoordinate.y)}`);a.newParentId=this.newParentId;a.newInputName=this.newInputName;this.newCoordinate&&
1030
+ (a.newCoordinate=`${Math.round(this.newCoordinate.x)}, ${Math.round(this.newCoordinate.y)}`);this.reason&&(a.reason=this.reason);this.recordUndo||(a.recordUndo=this.recordUndo);return a}static fromJson(a,b,c){b=Dl.fromJson(a,b,c!=null?c:new Ll);b.oldParentId=a.oldParentId;b.oldInputName=a.oldInputName;a.oldCoordinate&&(c=a.oldCoordinate.split(","),b.oldCoordinate=new D(Number(c[0]),Number(c[1])));b.newParentId=a.newParentId;b.newInputName=a.newInputName;a.newCoordinate&&(c=a.newCoordinate.split(","),
1030
1031
  b.newCoordinate=new D(Number(c[0]),Number(c[1])));a.reason!==void 0&&(b.reason=a.reason);a.recordUndo!==void 0&&(b.recordUndo=a.recordUndo);return b}recordNew(){var a=this.currentLocation();this.newParentId=a.parentId;this.newInputName=a.inputName;this.newCoordinate=a.coordinate}setReason(a){this.reason=a}currentLocation(){var a=this.getEventWorkspace_();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");var b=a.getBlockById(this.blockId);
1031
1032
  if(!b)throw Error("The block associated with the block move event could not be found");a={};var c=b.getParent();if(c){if(a.parentId=c.id,b=c.getInputWithBlock(b))a.inputName=b.name}else a.coordinate=b.getRelativeToSurfaceXY();return a}isNull(){return this.oldParentId===this.newParentId&&this.oldInputName===this.newInputName&&D.equals(this.oldCoordinate,this.newCoordinate)}run(a){var b=this.getEventWorkspace_();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");
1032
1033
  var c=b.getBlockById(this.blockId);if(c){var d=a?this.newParentId:this.oldParentId,e=a?this.newInputName:this.oldInputName;a=a?this.newCoordinate:this.oldCoordinate;if(d){var f=b.getBlockById(d);if(!f){console.warn("Can't connect to non-existent block: "+d);return}}c.getParent()&&c.unplug();if(a)e=c.getRelativeToSurfaceXY(),c.moveBy(a.x-e.x,a.y-e.y,this.reason);else{b=c.outputConnection;if(!b||c.previousConnection&&c.previousConnection.isConnected())b=c.previousConnection;let g,h;c=(h=b)==null?void 0:
1033
- h.type;if(e){if(c=f.getInput(e))g=c.connection}else c===G.PREVIOUS_STATEMENT&&(g=f.nextConnection);g&&b?b.connect(g):console.warn("Can't connect to non-existent input: "+e)}}else console.warn("Can't move non-existent block: "+this.blockId)}};A(y.EVENT,v.BLOCK_MOVE,Kl);var Ll=class extends Gl{constructor(a,b,c){super(a?a.workspace.id:void 0);this.type=v.BUBBLE_OPEN;a&&(this.blockId=a.id,this.isOpen=b,this.bubbleType=c)}toJson(){var a=super.toJson();if(this.isOpen===void 0)throw Error("Whether this event is for opening the bubble is undefined. Either pass the value to the constructor, or call fromJson");if(!this.bubbleType)throw Error("The type of bubble is undefined. Either pass the value to the constructor, or call fromJson");a.isOpen=this.isOpen;a.bubbleType=
1034
- this.bubbleType;a.blockId=this.blockId||"";return a}static fromJson(a,b,c){b=Gl.fromJson(a,b,c!=null?c:new Ll);b.isOpen=a.isOpen;b.bubbleType=a.bubbleType;b.blockId=a.blockId;return b}},Ml,Nl=Ml||(Ml={});Nl.MUTATOR="mutator";Nl.COMMENT="comment";Nl.WARNING="warning";A(y.EVENT,v.BUBBLE_OPEN,Ll);var Ol=class extends Gl{constructor(a,b,c){b=a?a.workspace.id:b;b===null&&(b=void 0);super(b);this.type=v.CLICK;this.blockId=a?a.id:void 0;this.targetType=c}toJson(){var a=super.toJson();if(!this.targetType)throw Error("The click target type is undefined. Either pass a block to the constructor, or call fromJson");a.targetType=this.targetType;a.blockId=this.blockId;return a}static fromJson(a,b,c){b=Gl.fromJson(a,b,c!=null?c:new Ol);b.targetType=a.targetType;b.blockId=a.blockId;return b}},Pl,Ql=Pl||
1035
- (Pl={});Ql.BLOCK="block";Ql.WORKSPACE="workspace";Ql.ZOOM_CONTROLS="zoom_controls";A(y.EVENT,v.CLICK,Ol);var Rl=class extends Bl{constructor(a){super();this.isBlank=!0;this.isBlank=!a;a&&(this.commentId=a.id,this.workspaceId=a.workspace.id,this.group=$.gd,this.recordUndo=$.Qc)}toJson(){var a=super.toJson();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");a.commentId=this.commentId;return a}static fromJson(a,b,c){b=Bl.fromJson(a,b,c!=null?c:new Rl);b.commentId=a.commentId;return b}static CommentCreateDeleteHelper(a,b){var c=a.getEventWorkspace_();
1036
- if(b){if(!a.json)throw Error("Encountered a comment event without proper json");Rc(a.json,c)}else{if(!a.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");(b=c.getCommentById(a.commentId))?b.dispose():console.warn("Can't delete non-existent comment: "+a.commentId)}}};var Sl=class extends Rl{constructor(a,b,c){super(a);this.type=v.COMMENT_CHANGE;a&&(this.oldContents_=typeof b==="undefined"?"":b,this.newContents_=typeof c==="undefined"?"":c)}toJson(){var a=super.toJson();if(!this.oldContents_)throw Error("The old contents is undefined. Either pass a value to the constructor, or call fromJson");if(!this.newContents_)throw Error("The new contents is undefined. Either pass a value to the constructor, or call fromJson");a.oldContents=this.oldContents_;a.newContents=
1037
- this.newContents_;return a}static fromJson(a,b,c){b=Rl.fromJson(a,b,c!=null?c:new Sl);b.oldContents_=a.oldContents;b.newContents_=a.newContents;return b}isNull(){return this.oldContents_===this.newContents_}run(a){var b=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(b=b.getCommentById(this.commentId)){var c=a?this.newContents_:this.oldContents_;if(c===void 0){if(a)throw Error("The new contents is undefined. Either pass a value to the constructor, or call fromJson");
1038
- throw Error("The old contents is undefined. Either pass a value to the constructor, or call fromJson");}b.setText(c)}else console.warn("Can't change non-existent comment: "+this.commentId)}};A(y.EVENT,v.COMMENT_CHANGE,Sl);var Tl=class extends Rl{constructor(a,b){super(a);this.newCollapsed=b;this.type=v.COMMENT_COLLAPSE}toJson(){var a=super.toJson();if(this.newCollapsed===void 0)throw Error("The new collapse value undefined. Either call recordNew, or call fromJson");a.newCollapsed=this.newCollapsed;return a}static fromJson(a,b,c){b=Rl.fromJson(a,b,c!=null?c:new Tl);b.newCollapsed=a.newCollapsed;return b}run(a){var b=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");
1039
- (b=b.getCommentById(this.commentId))?b.setCollapsed(a?!!this.newCollapsed:!this.newCollapsed):console.warn("Can't collapse or uncollapse non-existent comment: "+this.commentId)}};A(y.EVENT,v.COMMENT_COLLAPSE,Tl);var Ul=class extends Rl{constructor(a){super(a);this.type=v.COMMENT_CREATE;a&&(this.json=Pc(a,{addCoordinates:!0}))}toJson(){var a=super.toJson();if(!this.json)throw Error("The comment JSON is undefined. Either pass a block to the constructor, or call fromJson");a.json=this.json;return a}static fromJson(a,b,c){b=Rl.fromJson(a,b,c!=null?c:new Ul);b.json=a.json;return b}run(a){Rl.CommentCreateDeleteHelper(this,a)}};A(y.EVENT,v.COMMENT_CREATE,Ul);var Vl=class extends Rl{constructor(a){super(a);this.type=v.COMMENT_DELETE;a&&(this.json=Pc(a,{addCoordinates:!0}))}run(a){Rl.CommentCreateDeleteHelper(this,!a)}toJson(){var a=super.toJson();if(!this.json)throw Error("The comment JSON is undefined. Either pass a block to the constructor, or call fromJson");a.json=this.json;return a}static fromJson(a,b,c){b=Rl.fromJson(a,b,c!=null?c:new Vl);b.json=a.json;return b}};A(y.EVENT,v.COMMENT_DELETE,Vl);var Wl=class extends Gl{constructor(a,b){super(a?a.workspace.id:void 0);this.type=v.COMMENT_DRAG;a&&(this.commentId=a.id,this.isStart=b)}toJson(){var a=super.toJson();if(this.isStart===void 0)throw Error("Whether this event is the start of a drag is undefined. Either pass the value to the constructor, or call fromJson");if(this.commentId===void 0)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");a.isStart=this.isStart;a.commentId=this.commentId;
1040
- return a}static fromJson(a,b,c){b=Gl.fromJson(a,b,c!=null?c:new Wl);b.isStart=a.isStart;b.commentId=a.commentId;return b}};A(y.EVENT,v.COMMENT_DRAG,Wl);var Xl=class extends Rl{constructor(a){super(a);this.type=v.COMMENT_MOVE;a&&(this.comment_=a,this.oldCoordinate_=a.getRelativeToSurfaceXY())}recordNew(){if(this.newCoordinate_)throw Error("Tried to record the new position of a comment on the same event twice.");if(!this.comment_)throw Error("The comment is undefined. Pass a comment to the constructor if you want to use the record functionality");this.newCoordinate_=this.comment_.getRelativeToSurfaceXY()}setReason(a){this.reason=a}setOldCoordinate(a){this.oldCoordinate_=
1034
+ h.type;if(e){if(c=f.getInput(e))g=c.connection}else c===G.PREVIOUS_STATEMENT&&(g=f.nextConnection);g&&b?b.connect(g):console.warn("Can't connect to non-existent input: "+e)}}else console.warn("Can't move non-existent block: "+this.blockId)}};A(y.EVENT,v.BLOCK_MOVE,Ll);var Ml=class extends Hl{constructor(a,b,c){super(a?a.workspace.id:void 0);this.type=v.BUBBLE_OPEN;a&&(this.blockId=a.id,this.isOpen=b,this.bubbleType=c)}toJson(){var a=super.toJson();if(this.isOpen===void 0)throw Error("Whether this event is for opening the bubble is undefined. Either pass the value to the constructor, or call fromJson");if(!this.bubbleType)throw Error("The type of bubble is undefined. Either pass the value to the constructor, or call fromJson");a.isOpen=this.isOpen;a.bubbleType=
1035
+ this.bubbleType;a.blockId=this.blockId||"";return a}static fromJson(a,b,c){b=Hl.fromJson(a,b,c!=null?c:new Ml);b.isOpen=a.isOpen;b.bubbleType=a.bubbleType;b.blockId=a.blockId;return b}},Nl,Ol=Nl||(Nl={});Ol.MUTATOR="mutator";Ol.COMMENT="comment";Ol.WARNING="warning";A(y.EVENT,v.BUBBLE_OPEN,Ml);var Pl=class extends Hl{constructor(a,b,c){b=a?a.workspace.id:b;b===null&&(b=void 0);super(b);this.type=v.CLICK;this.blockId=a?a.id:void 0;this.targetType=c}toJson(){var a=super.toJson();if(!this.targetType)throw Error("The click target type is undefined. Either pass a block to the constructor, or call fromJson");a.targetType=this.targetType;a.blockId=this.blockId;return a}static fromJson(a,b,c){b=Hl.fromJson(a,b,c!=null?c:new Pl);b.targetType=a.targetType;b.blockId=a.blockId;return b}},Ql,Rl=Ql||
1036
+ (Ql={});Rl.BLOCK="block";Rl.WORKSPACE="workspace";Rl.ZOOM_CONTROLS="zoom_controls";A(y.EVENT,v.CLICK,Pl);var Sl=class extends Cl{constructor(a){super();this.isBlank=!0;this.isBlank=!a;a&&(this.commentId=a.id,this.workspaceId=a.workspace.id,this.group=$.gd,this.recordUndo=$.Qc)}toJson(){var a=super.toJson();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");a.commentId=this.commentId;return a}static fromJson(a,b,c){b=Cl.fromJson(a,b,c!=null?c:new Sl);b.commentId=a.commentId;return b}static CommentCreateDeleteHelper(a,b){var c=a.getEventWorkspace_();
1037
+ if(b){if(!a.json)throw Error("Encountered a comment event without proper json");Rc(a.json,c)}else{if(!a.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");(b=c.getCommentById(a.commentId))?b.dispose():console.warn("Can't delete non-existent comment: "+a.commentId)}}};var Tl=class extends Sl{constructor(a,b,c){super(a);this.type=v.COMMENT_CHANGE;a&&(this.oldContents_=typeof b==="undefined"?"":b,this.newContents_=typeof c==="undefined"?"":c)}toJson(){var a=super.toJson();if(!this.oldContents_)throw Error("The old contents is undefined. Either pass a value to the constructor, or call fromJson");if(!this.newContents_)throw Error("The new contents is undefined. Either pass a value to the constructor, or call fromJson");a.oldContents=this.oldContents_;a.newContents=
1038
+ this.newContents_;return a}static fromJson(a,b,c){b=Sl.fromJson(a,b,c!=null?c:new Tl);b.oldContents_=a.oldContents;b.newContents_=a.newContents;return b}isNull(){return this.oldContents_===this.newContents_}run(a){var b=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(b=b.getCommentById(this.commentId)){var c=a?this.newContents_:this.oldContents_;if(c===void 0){if(a)throw Error("The new contents is undefined. Either pass a value to the constructor, or call fromJson");
1039
+ throw Error("The old contents is undefined. Either pass a value to the constructor, or call fromJson");}b.setText(c)}else console.warn("Can't change non-existent comment: "+this.commentId)}};A(y.EVENT,v.COMMENT_CHANGE,Tl);var Ul=class extends Sl{constructor(a,b){super(a);this.newCollapsed=b;this.type=v.COMMENT_COLLAPSE}toJson(){var a=super.toJson();if(this.newCollapsed===void 0)throw Error("The new collapse value undefined. Either call recordNew, or call fromJson");a.newCollapsed=this.newCollapsed;return a}static fromJson(a,b,c){b=Sl.fromJson(a,b,c!=null?c:new Ul);b.newCollapsed=a.newCollapsed;return b}run(a){var b=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");
1040
+ (b=b.getCommentById(this.commentId))?b.setCollapsed(a?!!this.newCollapsed:!this.newCollapsed):console.warn("Can't collapse or uncollapse non-existent comment: "+this.commentId)}};A(y.EVENT,v.COMMENT_COLLAPSE,Ul);var Vl=class extends Sl{constructor(a){super(a);this.type=v.COMMENT_CREATE;a&&(this.json=Pc(a,{addCoordinates:!0}))}toJson(){var a=super.toJson();if(!this.json)throw Error("The comment JSON is undefined. Either pass a block to the constructor, or call fromJson");a.json=this.json;return a}static fromJson(a,b,c){b=Sl.fromJson(a,b,c!=null?c:new Vl);b.json=a.json;return b}run(a){Sl.CommentCreateDeleteHelper(this,a)}};A(y.EVENT,v.COMMENT_CREATE,Vl);var Wl=class extends Sl{constructor(a){super(a);this.type=v.COMMENT_DELETE;a&&(this.json=Pc(a,{addCoordinates:!0}))}run(a){Sl.CommentCreateDeleteHelper(this,!a)}toJson(){var a=super.toJson();if(!this.json)throw Error("The comment JSON is undefined. Either pass a block to the constructor, or call fromJson");a.json=this.json;return a}static fromJson(a,b,c){b=Sl.fromJson(a,b,c!=null?c:new Wl);b.json=a.json;return b}};A(y.EVENT,v.COMMENT_DELETE,Wl);var Xl=class extends Hl{constructor(a,b){super(a?a.workspace.id:void 0);this.type=v.COMMENT_DRAG;a&&(this.commentId=a.id,this.isStart=b)}toJson(){var a=super.toJson();if(this.isStart===void 0)throw Error("Whether this event is the start of a drag is undefined. Either pass the value to the constructor, or call fromJson");if(this.commentId===void 0)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");a.isStart=this.isStart;a.commentId=this.commentId;
1041
+ return a}static fromJson(a,b,c){b=Hl.fromJson(a,b,c!=null?c:new Xl);b.isStart=a.isStart;b.commentId=a.commentId;return b}};A(y.EVENT,v.COMMENT_DRAG,Xl);var Yl=class extends Sl{constructor(a){super(a);this.type=v.COMMENT_MOVE;a&&(this.comment_=a,this.oldCoordinate_=a.getRelativeToSurfaceXY())}recordNew(){if(this.newCoordinate_)throw Error("Tried to record the new position of a comment on the same event twice.");if(!this.comment_)throw Error("The comment is undefined. Pass a comment to the constructor if you want to use the record functionality");this.newCoordinate_=this.comment_.getRelativeToSurfaceXY()}setReason(a){this.reason=a}setOldCoordinate(a){this.oldCoordinate_=
1041
1042
  a}toJson(){var a=super.toJson();if(!this.oldCoordinate_)throw Error("The old comment position is undefined. Either pass a comment to the constructor, or call fromJson");if(!this.newCoordinate_)throw Error("The new comment position is undefined. Either call recordNew, or call fromJson");a.oldCoordinate=`${Math.round(this.oldCoordinate_.x)}, ${Math.round(this.oldCoordinate_.y)}`;a.newCoordinate=Math.round(this.newCoordinate_.x)+","+Math.round(this.newCoordinate_.y);return a}static fromJson(a,b,c){b=
1042
- Rl.fromJson(a,b,c!=null?c:new Xl);c=a.oldCoordinate.split(",");b.oldCoordinate_=new D(Number(c[0]),Number(c[1]));c=a.newCoordinate.split(",");b.newCoordinate_=new D(Number(c[0]),Number(c[1]));return b}isNull(){return D.equals(this.oldCoordinate_,this.newCoordinate_)}run(a){var b=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(b=b.getCommentById(this.commentId)){a=a?this.newCoordinate_:this.oldCoordinate_;
1043
- if(!a)throw Error("Either oldCoordinate_ or newCoordinate_ is undefined. Either pass a comment to the constructor and call recordNew, or call fromJson");b.moveTo(a)}else console.warn("Can't move non-existent comment: "+this.commentId)}};A(y.EVENT,v.COMMENT_MOVE,Xl);var Yl=class extends Rl{constructor(a){super(a);this.type=v.COMMENT_RESIZE;a&&(this.oldSize=a.getSize())}recordCurrentSizeAsNewSize(){if(this.newSize)throw Error("Tried to record the new size of a comment on the same event twice.");var a=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");a=a.getCommentById(this.commentId);if(!a)throw Error("The comment associated with the comment resize event could not be found");
1043
+ Sl.fromJson(a,b,c!=null?c:new Yl);c=a.oldCoordinate.split(",");b.oldCoordinate_=new D(Number(c[0]),Number(c[1]));c=a.newCoordinate.split(",");b.newCoordinate_=new D(Number(c[0]),Number(c[1]));return b}isNull(){return D.equals(this.oldCoordinate_,this.newCoordinate_)}run(a){var b=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(b=b.getCommentById(this.commentId)){a=a?this.newCoordinate_:this.oldCoordinate_;
1044
+ if(!a)throw Error("Either oldCoordinate_ or newCoordinate_ is undefined. Either pass a comment to the constructor and call recordNew, or call fromJson");b.moveTo(a)}else console.warn("Can't move non-existent comment: "+this.commentId)}};A(y.EVENT,v.COMMENT_MOVE,Yl);var Zl=class extends Sl{constructor(a){super(a);this.type=v.COMMENT_RESIZE;a&&(this.oldSize=a.getSize())}recordCurrentSizeAsNewSize(){if(this.newSize)throw Error("Tried to record the new size of a comment on the same event twice.");var a=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");a=a.getCommentById(this.commentId);if(!a)throw Error("The comment associated with the comment resize event could not be found");
1044
1045
  this.newSize=a.getSize()}toJson(){var a=super.toJson();if(!this.oldSize)throw Error("The old comment size is undefined. Either pass a comment to the constructor, or call fromJson");if(!this.newSize)throw Error("The new comment size is undefined. Either call recordCurrentSizeAsNewSize, or call fromJson");a.oldWidth=Math.round(this.oldSize.width);a.oldHeight=Math.round(this.oldSize.height);a.newWidth=Math.round(this.newSize.width);a.newHeight=Math.round(this.newSize.height);return a}static fromJson(a,
1045
- b,c){b=Rl.fromJson(a,b,c!=null?c:new Yl);b.oldSize=new hc(a.oldWidth,a.oldHeight);b.newSize=new hc(a.newWidth,a.newHeight);return b}isNull(){return hc.equals(this.oldSize,this.newSize)}run(a){var b=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(b=b.getCommentById(this.commentId)){a=a?this.newSize:this.oldSize;if(!a)throw Error("Either oldSize or newSize is undefined. Either pass a comment to the constructor and call recordCurrentSizeAsNewSize, or call fromJson");
1046
- b.setSize(a)}else console.warn("Can't resize non-existent comment: "+this.commentId)}};A(y.EVENT,v.COMMENT_RESIZE,Yl);var Zl=class extends Gl{constructor(a,b,c){super(c);this.type=v.SELECTED;this.oldElementId=a!=null?a:void 0;this.newElementId=b!=null?b:void 0}toJson(){var a=super.toJson();a.oldElementId=this.oldElementId;a.newElementId=this.newElementId;return a}static fromJson(a,b,c){b=Gl.fromJson(a,b,c!=null?c:new Zl);b.oldElementId=a.oldElementId;b.newElementId=a.newElementId;return b}};A(y.EVENT,v.SELECTED,Zl);var $l=class extends Gl{constructor(a,b){super(b);this.type=v.THEME_CHANGE;this.themeName=a}toJson(){var a=super.toJson();if(!this.themeName)throw Error("The theme name is undefined. Either pass a theme name to the constructor, or call fromJson");a.themeName=this.themeName;return a}static fromJson(a,b,c){b=Gl.fromJson(a,b,c!=null?c:new $l);b.themeName=a.themeName;return b}};A(y.EVENT,v.THEME_CHANGE,$l);var am=class extends Gl{constructor(a,b,c){super(c);this.type=v.TOOLBOX_ITEM_SELECT;this.oldItem=a!=null?a:void 0;this.newItem=b!=null?b:void 0}toJson(){var a=super.toJson();a.oldItem=this.oldItem;a.newItem=this.newItem;return a}static fromJson(a,b,c){b=Gl.fromJson(a,b,c!=null?c:new am);b.oldItem=a.oldItem;b.newItem=a.newItem;return b}};A(y.EVENT,v.TOOLBOX_ITEM_SELECT,am);var bm=class extends Gl{constructor(a,b){super(b);this.type=v.TRASHCAN_OPEN;this.isOpen=a}toJson(){var a=super.toJson();if(this.isOpen===void 0)throw Error("Whether this is already open or not is undefined. Either pass a value to the constructor, or call fromJson");a.isOpen=this.isOpen;return a}static fromJson(a,b,c){b=Gl.fromJson(a,b,c!=null?c:new bm);b.isOpen=a.isOpen;return b}};A(y.EVENT,v.TRASHCAN_OPEN,bm);var cm=class extends Bl{constructor(a){super();this.isBlank=!0;this.isBlank=typeof a==="undefined";a&&(this.varId=a.getId(),this.workspaceId=a.getWorkspace().id)}toJson(){var a=super.toJson();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");a.varId=this.varId;return a}static fromJson(a,b,c){b=Bl.fromJson(a,b,c!=null?c:new cm);b.varId=a.varId;return b}};var dm=class extends cm{constructor(a){super(a);this.type=v.VAR_CREATE;a&&(this.varType=a.getType(),this.varName=a.getName())}toJson(){var a=super.toJson();if(this.varType===void 0)throw Error("The var type is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");a.varType=this.varType;a.varName=this.varName;return a}static fromJson(a,b,c){b=cm.fromJson(a,b,c!=
1047
- null?c:new dm);b.varType=a.varType;b.varName=a.varName;return b}run(a){var b=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");b=b.getVariableMap();a?b.createVariable(this.varName,this.varType,this.varId):(a=b.getVariableById(this.varId))&&b.deleteVariable(a)}};A(y.EVENT,v.VAR_CREATE,dm);var em=class extends cm{constructor(a){super(a);this.type=v.VAR_DELETE;a&&(this.varType=a.getType(),this.varName=a.getName())}toJson(){var a=super.toJson();if(this.varType===void 0)throw Error("The var type is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");a.varType=this.varType;a.varName=this.varName;return a}static fromJson(a,b,c){b=cm.fromJson(a,b,c!=
1048
- null?c:new em);b.varType=a.varType;b.varName=a.varName;return b}run(a){var b=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");b=b.getVariableMap();a?(a=b.getVariableById(this.varId))&&b.deleteVariable(a):b.createVariable(this.varName,this.varType,this.varId)}};A(y.EVENT,v.VAR_DELETE,em);var fm=class extends cm{constructor(a,b){super(a);this.type=v.VAR_RENAME;a&&(this.oldName=a.getName(),this.newName=typeof b==="undefined"?"":b)}toJson(){var a=super.toJson();if(!this.oldName)throw Error("The old var name is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.newName)throw Error("The new var name is undefined. Either pass a value to the constructor, or call fromJson");a.oldName=this.oldName;a.newName=this.newName;return a}static fromJson(a,b,c){b=cm.fromJson(a,
1049
- b,c!=null?c:new fm);b.oldName=a.oldName;b.newName=a.newName;return b}run(a){var b=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.oldName)throw Error("The old var name is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.newName)throw Error("The new var name is undefined. Either pass a value to the constructor, or call fromJson");b=b.getVariableMap();var c=b.getVariableById(this.varId);
1050
- a?c&&b.renameVariable(c,this.newName):c&&b.renameVariable(c,this.oldName)}};A(y.EVENT,v.VAR_RENAME,fm);var gm=class extends cm{constructor(a,b,c){super(a);this.oldType=b;this.newType=c;this.type=v.VAR_TYPE_CHANGE}toJson(){var a=super.toJson();if(!this.oldType||!this.newType)throw Error("The variable's types are undefined. Either pass them to the constructor, or call fromJson");a.oldType=this.oldType;a.newType=this.newType;return a}static fromJson(a,b,c){b=cm.fromJson(a,b,c!=null?c:new gm);b.oldType=a.oldType;b.newType=a.newType;return b}run(a){var b=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");
1051
- if(!this.oldType||!this.newType)throw Error("The variable's types are undefined. Either pass them to the constructor, or call fromJson");var c=b.getVariableMap().getVariableById(this.varId);c&&(a?b.getVariableMap().changeVariableType(c,this.newType):b.getVariableMap().changeVariableType(c,this.oldType))}};A(y.EVENT,v.VAR_TYPE_CHANGE,gm);var hm=class extends Gl{constructor(a,b,c,d,e){super(d);this.type=v.VIEWPORT_CHANGE;this.viewTop=a;this.viewLeft=b;this.scale=c;this.oldScale=e}toJson(){var a=super.toJson();if(this.viewTop===void 0)throw Error("The view top is undefined. Either pass a value to the constructor, or call fromJson");if(this.viewLeft===void 0)throw Error("The view left is undefined. Either pass a value to the constructor, or call fromJson");if(this.scale===void 0)throw Error("The scale is undefined. Either pass a value to the constructor, or call fromJson");
1052
- if(this.oldScale===void 0)throw Error("The old scale is undefined. Either pass a value to the constructor, or call fromJson");a.viewTop=this.viewTop;a.viewLeft=this.viewLeft;a.scale=this.scale;a.oldScale=this.oldScale;return a}static fromJson(a,b,c){b=Gl.fromJson(a,b,c!=null?c:new hm);b.viewTop=a.viewTop;b.viewLeft=a.viewLeft;b.scale=a.scale;b.oldScale=a.oldScale;return b}};A(y.EVENT,v.VIEWPORT_CHANGE,hm);var im=class extends Bl{constructor(a){super();this.isBlank=!0;this.recordUndo=!1;this.type=v.FINISHED_LOADING;this.isBlank=!!a;a&&(this.workspaceId=a.id)}};A(y.EVENT,v.FINISHED_LOADING,im);var lm,nm,om,pm,qm,rm,sm,tm,um,vm,wm,xm,ym,zm,Am,Bm,Cm,Dm,Em,Fm,Gm,Hm,Im,Jm,N;$.jm=v.BLOCK_CHANGE;$.Od=v.BLOCK_CREATE;$.km=v.BLOCK_DELETE;lm=v.BLOCK_DRAG;$.mm=v.BLOCK_MOVE;nm=v.BLOCK_FIELD_INTERMEDIATE_CHANGE;om=v.BUBBLE_OPEN;pm=v.BLOCK_CHANGE;qm=v.CLICK;rm=v.COMMENT_CHANGE;sm=v.COMMENT_CREATE;tm=v.COMMENT_DELETE;um=v.COMMENT_MOVE;vm=v.COMMENT_RESIZE;wm=v.COMMENT_DRAG;xm=v.BLOCK_CREATE;ym=v.BLOCK_DELETE;zm=v.FINISHED_LOADING;Am=v.BLOCK_MOVE;Bm=v.SELECTED;Cm=v.THEME_CHANGE;Dm=v.TOOLBOX_ITEM_SELECT;
1053
- Em=v.TRASHCAN_OPEN;Fm=v.UI;Gm=v.VAR_CREATE;Hm=v.VAR_DELETE;Im=v.VAR_RENAME;Jm=v.VIEWPORT_CHANGE;N={};N.Abstract=Bl;N.BLOCK_CHANGE=$.jm;N.BLOCK_CREATE=$.Od;N.BLOCK_DELETE=$.km;N.BLOCK_DRAG=lm;N.BLOCK_FIELD_INTERMEDIATE_CHANGE=nm;N.BLOCK_MOVE=$.mm;N.BUBBLE_OPEN=om;N.BUMP_EVENTS=Uh;N.BlockBase=Cl;N.BlockChange=Dl;N.BlockCreate=El;N.BlockDelete=Fl;N.BlockDrag=Hl;N.BlockFieldIntermediateChange=Il;N.BlockMove=Kl;N.BubbleOpen=Ll;N.BubbleType=Ml;N.CHANGE=pm;N.CLICK=qm;N.COMMENT_CHANGE=rm;
1054
- N.COMMENT_CREATE=sm;N.COMMENT_DELETE=tm;N.COMMENT_DRAG=wm;N.COMMENT_MOVE=um;N.COMMENT_RESIZE=vm;N.CREATE=xm;N.Click=Ol;N.ClickTarget=Pl;N.CommentBase=Rl;N.CommentChange=Sl;N.CommentCollapse=Tl;N.CommentCreate=Ul;N.CommentDelete=Vl;N.CommentDrag=Wl;N.CommentMove=Xl;N.CommentResize=Yl;N.DELETE=ym;N.FINISHED_LOADING=zm;N.FinishedLoading=im;N.MOVE=Am;N.SELECTED=Bm;N.Selected=Zl;N.THEME_CHANGE=Cm;N.TOOLBOX_ITEM_SELECT=Dm;N.TRASHCAN_OPEN=Em;N.ThemeChange=$l;N.ToolboxItemSelect=am;N.TrashcanOpen=bm;
1055
- N.UI=Fm;N.UiBase=Gl;N.VAR_CREATE=Gm;N.VAR_DELETE=Hm;N.VAR_RENAME=Im;N.VIEWPORT_CHANGE=Jm;N.VarBase=cm;N.VarCreate=dm;N.VarDelete=em;N.VarRename=fm;N.VarTypeChange=gm;N.ViewportChange=hm;N.clearPendingUndo=Tb;N.disable=function(){$.Ub++};
1046
+ b,c){b=Sl.fromJson(a,b,c!=null?c:new Zl);b.oldSize=new hc(a.oldWidth,a.oldHeight);b.newSize=new hc(a.newWidth,a.newHeight);return b}isNull(){return hc.equals(this.oldSize,this.newSize)}run(a){var b=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(b=b.getCommentById(this.commentId)){a=a?this.newSize:this.oldSize;if(!a)throw Error("Either oldSize or newSize is undefined. Either pass a comment to the constructor and call recordCurrentSizeAsNewSize, or call fromJson");
1047
+ b.setSize(a)}else console.warn("Can't resize non-existent comment: "+this.commentId)}};A(y.EVENT,v.COMMENT_RESIZE,Zl);var $l=class extends Hl{constructor(a,b,c){super(c);this.type=v.SELECTED;this.oldElementId=a!=null?a:void 0;this.newElementId=b!=null?b:void 0}toJson(){var a=super.toJson();a.oldElementId=this.oldElementId;a.newElementId=this.newElementId;return a}static fromJson(a,b,c){b=Hl.fromJson(a,b,c!=null?c:new $l);b.oldElementId=a.oldElementId;b.newElementId=a.newElementId;return b}};A(y.EVENT,v.SELECTED,$l);var am=class extends Hl{constructor(a,b){super(b);this.type=v.THEME_CHANGE;this.themeName=a}toJson(){var a=super.toJson();if(!this.themeName)throw Error("The theme name is undefined. Either pass a theme name to the constructor, or call fromJson");a.themeName=this.themeName;return a}static fromJson(a,b,c){b=Hl.fromJson(a,b,c!=null?c:new am);b.themeName=a.themeName;return b}};A(y.EVENT,v.THEME_CHANGE,am);var bm=class extends Hl{constructor(a,b,c){super(c);this.type=v.TOOLBOX_ITEM_SELECT;this.oldItem=a!=null?a:void 0;this.newItem=b!=null?b:void 0}toJson(){var a=super.toJson();a.oldItem=this.oldItem;a.newItem=this.newItem;return a}static fromJson(a,b,c){b=Hl.fromJson(a,b,c!=null?c:new bm);b.oldItem=a.oldItem;b.newItem=a.newItem;return b}};A(y.EVENT,v.TOOLBOX_ITEM_SELECT,bm);var cm=class extends Hl{constructor(a,b){super(b);this.type=v.TRASHCAN_OPEN;this.isOpen=a}toJson(){var a=super.toJson();if(this.isOpen===void 0)throw Error("Whether this is already open or not is undefined. Either pass a value to the constructor, or call fromJson");a.isOpen=this.isOpen;return a}static fromJson(a,b,c){b=Hl.fromJson(a,b,c!=null?c:new cm);b.isOpen=a.isOpen;return b}};A(y.EVENT,v.TRASHCAN_OPEN,cm);var dm=class extends Cl{constructor(a){super();this.isBlank=!0;this.isBlank=typeof a==="undefined";a&&(this.varId=a.getId(),this.workspaceId=a.getWorkspace().id)}toJson(){var a=super.toJson();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");a.varId=this.varId;return a}static fromJson(a,b,c){b=Cl.fromJson(a,b,c!=null?c:new dm);b.varId=a.varId;return b}};var em=class extends dm{constructor(a){super(a);this.type=v.VAR_CREATE;a&&(this.varType=a.getType(),this.varName=a.getName())}toJson(){var a=super.toJson();if(this.varType===void 0)throw Error("The var type is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");a.varType=this.varType;a.varName=this.varName;return a}static fromJson(a,b,c){b=dm.fromJson(a,b,c!=
1048
+ null?c:new em);b.varType=a.varType;b.varName=a.varName;return b}run(a){var b=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");b=b.getVariableMap();a?b.createVariable(this.varName,this.varType,this.varId):(a=b.getVariableById(this.varId))&&b.deleteVariable(a)}};A(y.EVENT,v.VAR_CREATE,em);var fm=class extends dm{constructor(a){super(a);this.type=v.VAR_DELETE;a&&(this.varType=a.getType(),this.varName=a.getName())}toJson(){var a=super.toJson();if(this.varType===void 0)throw Error("The var type is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");a.varType=this.varType;a.varName=this.varName;return a}static fromJson(a,b,c){b=dm.fromJson(a,b,c!=
1049
+ null?c:new fm);b.varType=a.varType;b.varName=a.varName;return b}run(a){var b=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");b=b.getVariableMap();a?(a=b.getVariableById(this.varId))&&b.deleteVariable(a):b.createVariable(this.varName,this.varType,this.varId)}};A(y.EVENT,v.VAR_DELETE,fm);var gm=class extends dm{constructor(a,b){super(a);this.type=v.VAR_RENAME;a&&(this.oldName=a.getName(),this.newName=typeof b==="undefined"?"":b)}toJson(){var a=super.toJson();if(!this.oldName)throw Error("The old var name is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.newName)throw Error("The new var name is undefined. Either pass a value to the constructor, or call fromJson");a.oldName=this.oldName;a.newName=this.newName;return a}static fromJson(a,b,c){b=dm.fromJson(a,
1050
+ b,c!=null?c:new gm);b.oldName=a.oldName;b.newName=a.newName;return b}run(a){var b=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.oldName)throw Error("The old var name is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.newName)throw Error("The new var name is undefined. Either pass a value to the constructor, or call fromJson");b=b.getVariableMap();var c=b.getVariableById(this.varId);
1051
+ a?c&&b.renameVariable(c,this.newName):c&&b.renameVariable(c,this.oldName)}};A(y.EVENT,v.VAR_RENAME,gm);var hm=class extends dm{constructor(a,b,c){super(a);this.oldType=b;this.newType=c;this.type=v.VAR_TYPE_CHANGE}toJson(){var a=super.toJson();if(!this.oldType||!this.newType)throw Error("The variable's types are undefined. Either pass them to the constructor, or call fromJson");a.oldType=this.oldType;a.newType=this.newType;return a}static fromJson(a,b,c){b=dm.fromJson(a,b,c!=null?c:new hm);b.oldType=a.oldType;b.newType=a.newType;return b}run(a){var b=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");
1052
+ if(!this.oldType||!this.newType)throw Error("The variable's types are undefined. Either pass them to the constructor, or call fromJson");var c=b.getVariableMap().getVariableById(this.varId);c&&(a?b.getVariableMap().changeVariableType(c,this.newType):b.getVariableMap().changeVariableType(c,this.oldType))}};A(y.EVENT,v.VAR_TYPE_CHANGE,hm);var im=class extends Hl{constructor(a,b,c,d,e){super(d);this.type=v.VIEWPORT_CHANGE;this.viewTop=a;this.viewLeft=b;this.scale=c;this.oldScale=e}toJson(){var a=super.toJson();if(this.viewTop===void 0)throw Error("The view top is undefined. Either pass a value to the constructor, or call fromJson");if(this.viewLeft===void 0)throw Error("The view left is undefined. Either pass a value to the constructor, or call fromJson");if(this.scale===void 0)throw Error("The scale is undefined. Either pass a value to the constructor, or call fromJson");
1053
+ if(this.oldScale===void 0)throw Error("The old scale is undefined. Either pass a value to the constructor, or call fromJson");a.viewTop=this.viewTop;a.viewLeft=this.viewLeft;a.scale=this.scale;a.oldScale=this.oldScale;return a}static fromJson(a,b,c){b=Hl.fromJson(a,b,c!=null?c:new im);b.viewTop=a.viewTop;b.viewLeft=a.viewLeft;b.scale=a.scale;b.oldScale=a.oldScale;return b}};A(y.EVENT,v.VIEWPORT_CHANGE,im);var jm=class extends Cl{constructor(a){super();this.isBlank=!0;this.recordUndo=!1;this.type=v.FINISHED_LOADING;this.isBlank=!!a;a&&(this.workspaceId=a.id)}};A(y.EVENT,v.FINISHED_LOADING,jm);var mm,om,pm,qm,rm,sm,tm,um,vm,wm,xm,ym,zm,Am,Bm,Cm,Dm,Em,Fm,Gm,Hm,Im,Jm,Km,N;$.km=v.BLOCK_CHANGE;$.Od=v.BLOCK_CREATE;$.lm=v.BLOCK_DELETE;mm=v.BLOCK_DRAG;$.nm=v.BLOCK_MOVE;om=v.BLOCK_FIELD_INTERMEDIATE_CHANGE;pm=v.BUBBLE_OPEN;qm=v.BLOCK_CHANGE;rm=v.CLICK;sm=v.COMMENT_CHANGE;tm=v.COMMENT_CREATE;um=v.COMMENT_DELETE;vm=v.COMMENT_MOVE;wm=v.COMMENT_RESIZE;xm=v.COMMENT_DRAG;ym=v.BLOCK_CREATE;zm=v.BLOCK_DELETE;Am=v.FINISHED_LOADING;Bm=v.BLOCK_MOVE;Cm=v.SELECTED;Dm=v.THEME_CHANGE;Em=v.TOOLBOX_ITEM_SELECT;
1054
+ Fm=v.TRASHCAN_OPEN;Gm=v.UI;Hm=v.VAR_CREATE;Im=v.VAR_DELETE;Jm=v.VAR_RENAME;Km=v.VIEWPORT_CHANGE;N={};N.Abstract=Cl;N.BLOCK_CHANGE=$.km;N.BLOCK_CREATE=$.Od;N.BLOCK_DELETE=$.lm;N.BLOCK_DRAG=mm;N.BLOCK_FIELD_INTERMEDIATE_CHANGE=om;N.BLOCK_MOVE=$.nm;N.BUBBLE_OPEN=pm;N.BUMP_EVENTS=Vh;N.BlockBase=Dl;N.BlockChange=El;N.BlockCreate=Fl;N.BlockDelete=Gl;N.BlockDrag=Il;N.BlockFieldIntermediateChange=Jl;N.BlockMove=Ll;N.BubbleOpen=Ml;N.BubbleType=Nl;N.CHANGE=qm;N.CLICK=rm;N.COMMENT_CHANGE=sm;
1055
+ N.COMMENT_CREATE=tm;N.COMMENT_DELETE=um;N.COMMENT_DRAG=xm;N.COMMENT_MOVE=vm;N.COMMENT_RESIZE=wm;N.CREATE=ym;N.Click=Pl;N.ClickTarget=Ql;N.CommentBase=Sl;N.CommentChange=Tl;N.CommentCollapse=Ul;N.CommentCreate=Vl;N.CommentDelete=Wl;N.CommentDrag=Xl;N.CommentMove=Yl;N.CommentResize=Zl;N.DELETE=zm;N.FINISHED_LOADING=Am;N.FinishedLoading=jm;N.MOVE=Bm;N.SELECTED=Cm;N.Selected=$l;N.THEME_CHANGE=Dm;N.TOOLBOX_ITEM_SELECT=Em;N.TRASHCAN_OPEN=Fm;N.ThemeChange=am;N.ToolboxItemSelect=bm;N.TrashcanOpen=cm;
1056
+ N.UI=Gm;N.UiBase=Hl;N.VAR_CREATE=Hm;N.VAR_DELETE=Im;N.VAR_RENAME=Jm;N.VIEWPORT_CHANGE=Km;N.VarBase=dm;N.VarCreate=em;N.VarDelete=fm;N.VarRename=gm;N.VarTypeChange=hm;N.ViewportChange=im;N.clearPendingUndo=Tb;N.disable=function(){$.Ub++};
1056
1057
  N.disableOrphans=function(a){if((a.type===v.BLOCK_MOVE||a.type===v.BLOCK_CREATE||a.type===v.BLOCK_DRAG&&!a.isStart)&&a.workspaceId){var b=fb(a.workspaceId);if(!a.blockId)throw Error("Encountered a blockEvent without a proper blockId");if(a=b.getBlockById(a.blockId)){let c=$.Qc;try{$.Qc=!1;let d=a.getParent();if(d&&!d.hasDisabledReason("ORPHANED_BLOCK")){let e=a.getDescendants(!1);for(let f=0,g;g=e[f];f++)g.setDisabledReason(!1,"ORPHANED_BLOCK")}else if((a.outputConnection||a.previousConnection)&&
1057
- !b.isDragging()){do a.setDisabledReason(!0,"ORPHANED_BLOCK"),a=a.getNextBlock();while(a)}}finally{$.Qc=c}}}};N.enable=function(){$.Ub--};N.filter=Pb;N.fire=w;N.fromJson=function(a,b){var c=u(a.type);if(!c)throw Error("Unknown event type.");return c.fromJson(a,b)};N.get=u;N.getDescendantIds=Wb;N.getGroup=function(){return $.gd};N.getRecordUndo=function(){return $.Qc};N.isEnabled=Vb;N.setGroup=$.B;N.setRecordUndo=function(a){$.Qc=a};var Km=class{constructor(){this.scopeChangeAudioCuesEnabled=this.isActive=!1;this.activeClassName="blocklyKeyboardNavigation"}setIsActive(a=!0){this.isActive=a;this.updateActiveVisualization()}getIsActive(){return this.isActive}setScopeChangeAudioCuesEnabled(a){this.scopeChangeAudioCuesEnabled=a}getScopeChangeAudioCuesEnabled(){return this.scopeChangeAudioCuesEnabled}updateActiveVisualization(){var a=kb.getInjectionDiv().parentElement;this.isActive?a==null||a.classList.add(this.activeClassName):a==
1058
- null||a.classList.remove(this.activeClassName)}},Nd=new Km;var Id={generateUniqueNameInternal:function(a){return Kd("i",a.getVariableMap().getAllVariables().map(b=>b.getName()))}},Lm={CATEGORY_NAME:"VARIABLE",TEST_ONLY:Id,VAR_LETTER_OPTIONS:"ijkmnopqrstuvwxyzabcdefgh"};Lm.allDeveloperVariables=$.Cd;Lm.allUsedVarModels=$.Bd;Lm.compareByName=Hd;Lm.createVariableButtonHandler=Dd;Lm.deleteVariable=$.Zd;Lm.flyoutCategory=Fd;
1059
- Lm.flyoutCategoryBlocks=function(a){a=a.getVariableMap().getVariablesOfType("");var b=[];if(a.length>0){var c=a[a.length-1];if(zb.variables_set){var d=$.rc("block");d.setAttribute("type","variables_set");d.setAttribute("gap",zb.math_change?"8":"24");d.appendChild(Ud(c));b.push(d)}zb.math_change&&(d=$.rc("block"),d.setAttribute("type","math_change"),d.setAttribute("gap",zb.variables_get?"20":"8"),d.appendChild(Ud(c)),c=$.uc('<value name="DELTA"><shadow type="math_number"><field name="NUM">1</field></shadow></value>'),
1060
- d.appendChild(c),b.push(d));if(zb.variables_get){a.sort(Hd);for(let e=0,f;f=a[e];e++)c=$.rc("block"),c.setAttribute("type","variables_get"),c.setAttribute("gap","8"),c.appendChild(Ud(f)),b.push(c)}}return b};Lm.generateUniqueName=Jd;Lm.generateUniqueNameFromOptions=Kd;Lm.generateVariableFieldDom=Ud;Lm.getAddedVariables=Xd;Lm.getOrCreateVariablePackage=$.Wd;Lm.getVariable=$.Vd;Lm.getVariableUsesById=Yd;Lm.jsonFlyoutCategoryBlocks=Ed;Lm.nameUsedWithAnyType=Md;Lm.nameUsedWithConflictingParam=Qd;
1061
- Lm.promptName=Ld;Lm.renameVariable=$.Rd;var Mm=class extends Error{},ge=class extends Mm{constructor(a){super("Expected to find a 'type' property, defining the block type");this.state=a}},je=class extends Mm{constructor(a,b,c){super(`The block ${b.toDevString()} is missing a(n) ${a}
1062
- connection`);this.block=b;this.state=c}},ke=class extends Mm{constructor(a,b,c,d){super(`The block ${c.toDevString()} could not connect its
1063
- ${b} to its parent, because: ${a}`);this.childBlock=c;this.childState=d}},he=class extends Mm{constructor(a){super("Encountered a real block which is defined as a child of a shadow\nblock. It is an invariant of Blockly that shadow blocks only have shadow\nchildren");this.state=a}},le=class extends Mm{constructor(a,b,c){super(`Cannot add an icon of type '${a}' to the block ${b.toDevString()}, because there is no icon registered with type '${a}'. Make sure that all of your icons have been registered.`);
1064
- this.block=b;this.state=c}},Nm={};Nm.BadConnectionCheck=ke;Nm.DeserializationError=Mm;Nm.MissingBlockType=ge;Nm.MissingConnection=je;Nm.RealChildOfShadow=he;Nm.UnregisteredIcon=le;var Om=class{constructor(){this.priority=50}save(a){var b=[];for(let c of a.getTopBlocks(!1))(a=be(c,{addCoordinates:!0,doFullSerialization:!1}))&&b.push(a);return b.length?{languageVersion:0,blocks:b}:null}load(a,b){a=a.blocks;for(let c of a)de(c,b,{recordUndo:$.Qc})}clear(a){for(let b of a.getTopBlocks(!1))b.dispose(!1)}};Oc("blocks",new Om);var Pm={};Pm.BlockSerializer=Om;Pm.append=de;Pm.appendInternal=ce;Pm.save=be;var oe={Control:$.C.CONTROL_KEY,Meta:"\u2318",Alt:pe?"\u2325":$.C.ALT_KEY},se=["Meta","Control","Alt","Shift"];var He,Qm=He||(He={});Qm[Qm.UNKNOWN=0]="UNKNOWN";Qm[Qm.BEFORE=1]="BEFORE";Qm[Qm.AFTER=2]="AFTER";Qm[Qm.AROUND=3]="AROUND";Qm[Qm.INSIDE=4]="INSIDE";Qm[Qm.TO=5]="TO";var Rm={};Rm.clamp=Ne;Rm.toDegrees=function(a){return a*180/Math.PI};Rm.toRadians=Me;var pf=null,ff=null,gf="",hf="",Oe,Pe,Re,cf=null,ef=null,Ye=null,Te=null,Qe=null,qf={getBoundsInfo:function(){var a=ac(cf),b=Zb(cf);return{left:a.x,right:a.x+b.width,top:a.y,bottom:a.y+b.height,width:b.width,height:b.height}},getPositionMetrics:function(a,b,c,d){var e=qf.getBoundsInfo(),f=Zb(Oe);if(b+f.height<e.bottom)return lf(a,b,e,f);if(d-f.height>e.top)return mf(c,d,e,f);if(b+f.height<document.documentElement.clientHeight)return lf(a,b,e,f);if(d-f.height>document.documentElement.clientTop)return mf(c,
1065
- d,e,f);a=kf(a,e.left,e.right,f.width);return{initialX:a.divX,initialY:0,finalX:a.divX,finalY:0,arrowAtTop:null,arrowX:null,arrowY:null,arrowVisible:!1}}},Sm={ANIMATION_TIME:.25,ARROW_HORIZONTAL_PADDING:12,ARROW_SIZE:16,BORDER_SIZE:1,PADDING_Y:16,TEST_ONLY:qf};Sm.clearContent=We;Sm.createDom=Se;Sm.getContentDiv=function(){return Pe};Sm.getOwner=function(){return ef};Sm.getPositionX=kf;Sm.hide=Ue;Sm.hideIfOwner=of;Sm.hideWithoutAnimation=nf;Sm.isVisible=function(){return!!ef};
1066
- Sm.repositionForWindowResize=rf;Sm.setBoundsElement=function(a){cf=a};Sm.setColour=Xe;Sm.show=df;Sm.showPositionedByBlock=function(a,b,c,d,e=!0){return Ze(bf(b),a,e,c,d)};Sm.showPositionedByField=af;var Tm={};Tm.commonWordPrefix=tf;Tm.commonWordSuffix=uf;Tm.isNumber=$.yf;Tm.shortestStringLength=sf;Tm.wrap=$.xf;var Vf=void 0,Of=!1,If=!1,Mf=0,Nf=0,Pf=0,Qf=0,Jf=null,Lf=null,Bf=null,Um={HOVER_MS:750,LIMIT:50,MARGINS:5,OFFSET_X:0,OFFSET_Y:10,RADIUS_OK:10};Um.bindMouseEvents=Gf;Um.block=Uf;Um.createDom=Cf;Um.display=Tf;Um.dispose=Sf;Um.getCustomTooltip=function(){return Vf};Um.getDiv=function(){return Bf};Um.getTooltipOfObject=Af;Um.hide=Kf;Um.isVisible=function(){return Of};Um.setCustomTooltip=function(a){Vf=a};Um.unbindMouseEvents=Hf;Um.unblock=function(){If=!1};var bg=.45,cg=.65,Wf={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00"},Vm={};Vm.blend=ag;Vm.getHsvSaturation=function(){return bg};Vm.getHsvValue=function(){return cg};Vm.hexToRgb=Zf;Vm.hsvToHex=$f;Vm.hueToHex=dg;Vm.names=Wf;Vm.parse=Yf;Vm.rgbToHex=Xf;Vm.setHsvSaturation=function(a){bg=a};
1067
- Vm.setHsvValue=function(a){cg=a};var Wm={checkMessageReferences:function(a){var b=!0,c=a.match(/%{BKY_[A-Z]\w*}/gi);if(c)for(let d=0;d<c.length;d++){let e=c[d].toUpperCase();$.C[e.slice(6,-1)]===void 0&&(console.warn("No message string for "+c[d]+" in "+a),b=!1)}return b}};Wm.parseBlockColour=hg;Wm.replaceMessageReferences=gg;Wm.tokenizeInterpolation=fg;var qg=class{get size_(){return this.size}set size_(a){this.size=a}constructor(a,b,c){this.DEFAULT_VALUE=null;this.name=void 0;this.tooltip=this.ariaTypeName=this.validator_=null;this.size=new hc(0,0);this.constants_=this.mouseDownWrapper=this.textContent_=this.textElement_=this.borderRect_=this.fieldGroup_=null;this.disposed=!1;this.maxDisplayLength=50;this.sourceBlock_=null;this.enabled_=this.visible_=this.isDirty_=!0;this.suffixField=this.prefixField=this.clickTarget_=null;this.EDITABLE=!0;this.SERIALIZABLE=
1068
- !1;this.id_=null;this.value_="DEFAULT_VALUE"in new.target.prototype?new.target.prototype.DEFAULT_VALUE:this.DEFAULT_VALUE;this.size_=new hc(0,0);a!==qg.SKIP_SETUP&&(c&&this.configure_(c),this.setValue(a),b&&this.setValidator(b))}configure_(a){a.tooltip&&this.setTooltip(gg(a.tooltip));a.ariaTypeName&&(this.ariaTypeName=a.ariaTypeName)}setSourceBlock(a){if(this.sourceBlock_)throw Error("Field already bound to a block");this.sourceBlock_=a;if(a.id.includes("_field"))throw Error(`Field ID indicator is contained in block ID. This may cause problems with focus: ${a.id}.`);
1069
- }getConstants(){!this.constants_&&this.sourceBlock_&&!this.sourceBlock_.isDeadOrDying()&&this.sourceBlock_.workspace.rendered&&(this.constants_=this.sourceBlock_.workspace.getRenderer().getConstants());return this.constants_}getSourceBlock(){return this.sourceBlock_}getAriaTypeName(){return this.ariaTypeName||null}getAriaValue(){return this.getValue()==null?null:this.getText()}computeAriaLabel(a=!0){a=a?this.getAriaTypeName():null;var b=this.getAriaValue();if(b===null||b==="")b=$.C.FIELD_LABEL_EMPTY;
1070
- return a?`${a}: ${b}`:b}init(){if(!this.fieldGroup_){this.fieldGroup_=r(q.G,{});this.isVisible()||(this.fieldGroup_.style.display="none");var a=this.sourceBlock_;a.getSvgRoot().appendChild(this.fieldGroup_);this.initView();this.updateEditable();this.setTooltip(this.tooltip);this.bindEvents_();this.initModel();this.applyColour();this.isFullBlockField()?this.id_=Lb():this.id_=`${a.id}_field_${Lb()}`;this.fieldGroup_.setAttribute("id",this.id_)}}initView(){this.createBorderRect_();this.createTextElement_();
1071
- this.fieldGroup_&&n(this.fieldGroup_,"blocklyField")}initModel(){}isFullBlockField(){return!1}isLabelField(){return!1}createBorderRect_(){this.borderRect_=r(q.RECT,{rx:this.getConstants().FIELD_BORDER_RECT_RADIUS,ry:this.getConstants().FIELD_BORDER_RECT_RADIUS,x:0,y:0,height:this.size_.height,width:this.size_.width,"class":"blocklyFieldRect"},this.fieldGroup_)}createTextElement_(){this.textElement_=r(q.TEXT,{"class":"blocklyText blocklyFieldText","aria-hidden":"true"},this.fieldGroup_);this.getConstants().FIELD_TEXT_BASELINE_CENTER&&
1072
- this.textElement_.setAttribute("dominant-baseline","central");this.textContent_=document.createTextNode("");this.textElement_.appendChild(this.textContent_)}bindEvents_(){var a=this.getClickTarget_();if(!a)throw Error("A click target has not been set.");Gf(a);this.mouseDownWrapper=k(a,"pointerdown",this,this.onMouseDown_)}fromXml(a){this.setValue(a.textContent)}toXml(a){a.textContent=this.getValue();return a}saveState(){var a=this.saveLegacyState(qg);return a!==null?a:this.getValue()}loadState(a){this.loadLegacyState(qg,
1073
- a)||this.setValue(a)}saveLegacyState(a){return a.prototype.saveState===this.saveState&&a.prototype.toXml!==this.toXml?(a=$.rc("field"),a.setAttribute("name",this.name||""),xc(this.toXml(a)).replace(' xmlns="https://developers.google.com/blockly/xml"',"")):null}loadLegacyState(a,b){return a.prototype.loadState===this.loadState&&a.prototype.fromXml!==this.fromXml?(this.fromXml($.uc(b)),!0):!1}dispose(){of(this);ug(this);var a;((a=this.getSourceBlock())==null?0:a.isDeadOrDying())||Oa(this.fieldGroup_);
1074
- this.disposed=!0}updateEditable(){var a=this.fieldGroup_,b=this.getSourceBlock();this.EDITABLE&&a&&b&&(this.enabled_&&b.isEditable()?(n(a,"blocklyEditableField"),Ma(a,"blocklyNonEditableField")):(n(a,"blocklyNonEditableField"),Ma(a,"blocklyEditableField")))}setEnabled(a){this.enabled_=a;this.updateEditable()}isEnabled(){return this.enabled_}isClickable(){return this.enabled_&&!!this.sourceBlock_&&this.sourceBlock_.isEditable()&&this.showEditor_!==qg.prototype.showEditor_}isClickableInFlyout(a){return!a}isCurrentlyEditable(){return this.enabled_&&
1075
- this.EDITABLE&&!!this.sourceBlock_&&this.sourceBlock_.isEditable()}isSerializable(){var a=!1;this.name&&(this.SERIALIZABLE?a=!0:this.EDITABLE&&(console.warn("Detected an editable field that was not serializable. Please define SERIALIZABLE property as true on all editable custom fields. Proceeding with serialization."),a=!0));return a}isVisible(){return this.visible_}setVisible(a){if(this.visible_!==a){this.visible_=a;var b=this.fieldGroup_;b&&(b.style.display=a?"block":"none")}}setValidator(a){this.validator_=
1076
- a}getValidator(){return this.validator_}getSvgRoot(){return this.fieldGroup_}getBorderRect(){if(!this.borderRect_)throw Error(`The border rectangle is ${this.borderRect_}.`);return this.borderRect_}getTextElement(){if(!this.textElement_)throw Error(`The text element is ${this.textElement_}.`);return this.textElement_}getTextContent(){if(!this.textContent_)throw Error(`The text content is ${this.textContent_}.`);return this.textContent_}applyColour(){}render_(){this.textContent_&&(this.textContent_.nodeValue=
1077
- this.getDisplayText_());this.updateSize_()}showEditor(a){this.isClickable()&&this.showEditor_(a)}showEditor_(){}repositionForWindowResize(){return!1}updateSize_(a){var b=this.getConstants();a=a!==void 0?a:this.borderRect_?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;var c=a*2,d=b.FIELD_TEXT_HEIGHT,e=0;this.textElement_&&(e=Wa(this.textElement_),c+=e);this.borderRect_&&(d=Math.max(d,b.FIELD_BORDER_RECT_HEIGHT));this.size_=new hc(c,d);this.positionTextElement_(a,e);this.positionBorderRect_()}positionTextElement_(a,
1078
- b){if(this.textElement_){var c=this.getConstants(),d=this.size_.height/2,e;this.textElement_.setAttribute("x",String(((e=this.getSourceBlock())==null?0:e.RTL)?this.size_.width-b-a:a));this.textElement_.setAttribute("y",String(c.FIELD_TEXT_BASELINE_CENTER?d:d-c.FIELD_TEXT_HEIGHT/2+c.FIELD_TEXT_BASELINE))}}positionBorderRect_(){this.borderRect_&&(this.borderRect_.setAttribute("width",String(this.size_.width)),this.borderRect_.setAttribute("height",String(this.size_.height)),this.borderRect_.setAttribute("rx",
1079
- String(this.getConstants().FIELD_BORDER_RECT_RADIUS)),this.borderRect_.setAttribute("ry",String(this.getConstants().FIELD_BORDER_RECT_RADIUS)))}getSize(){if(!this.isVisible())return new hc(0,0);this.isDirty_&&(this.render_(),this.isDirty_=!1);return this.size_}getScaledBBox(){var a=this.getSourceBlock();if(!a)throw new kj;if(this.borderRect_){var b=this.borderRect_.getBoundingClientRect();var c=ac(this.borderRect_);a=b.width;b=b.height}else{b=this.sourceBlock_.getHeightWidth();let d=a.workspace.scale;
1080
- c=this.getAbsoluteXY_();a=(b.width+1)*d;b=(b.height+1)*d;vk?(c.x+=1.5*d,c.y+=1.5*d):(c.x-=.5*d,c.y-=.5*d)}return new cc(c.y,c.y+b,c.x,c.x+a)}onLocationChange(){}getDisplayText_(){var a=this.getText();a.length>this.maxDisplayLength&&(a=a.substring(0,this.maxDisplayLength-2)+"\u2026");a=a.replace(/\s/g,qg.NBSP);this.sourceBlock_&&this.sourceBlock_.RTL&&(a+="\u200f");return a}getText(){var a=this.getText_();return a!==null?String(a):String(this.getValue())}getText_(){return null}markDirty(){this.isDirty_=
1081
- !0;this.constants_=null}forceRerender(){this.isDirty_=!0;this.sourceBlock_&&this.sourceBlock_.rendered&&this.sourceBlock_.queueRender()}setValue(a,b=!0){if(a!==null){var c=$.gd;c||$.B(!0);try{let m=this.doClassValidation_(a),z=this.processValidation(a,m,b);if(!(z instanceof Error)){var d,e=(d=this.getValidator())==null?void 0:d.call(this,z),f=this.processValidation(z,e,b);if(!(f instanceof Error)){var g=this.sourceBlock_;if(!g||!g.disposed){var h=this.getValue();h===f?this.doValueUpdate_(f):(this.doValueUpdate_(f),
1082
- b&&g&&Vb()&&w(new (u(v.BLOCK_CHANGE))(g,"field",this.name||null,h,f)),this.isDirty_&&this.forceRerender())}}}}finally{$.B(c)}}}processValidation(a,b,c){return b===null?(this.doValueInvalid_(a,c),this.isDirty_&&this.forceRerender(),Error()):b===void 0?a:b}getValue(){return this.value_}doClassValidation_(a){return a===null||a===void 0?null:a}doValueUpdate_(a){this.value_=a;this.isDirty_=!0}doValueInvalid_(){}onMouseDown_(a){this.sourceBlock_&&!this.sourceBlock_.isDeadOrDying()&&(a=this.sourceBlock_.workspace.getGesture(a))&&
1083
- a.setStartField(this)}setTooltip(a){a||a===""||(a=this.sourceBlock_);var b=this.getClickTarget_();b?b.tooltip=a:this.tooltip=a}getTooltip(){var a=this.getClickTarget_();return a?Af(a):Af({tooltip:this.tooltip})}getClickTarget_(){return this.clickTarget_||this.getSvgRoot()}getAbsoluteXY_(){return ac(this.getClickTarget_())}referencesVariables(){return!1}refreshVariableName(){}getParentInput(){var a=null,b=this.getSourceBlock();if(!b)throw new kj;var c=b.inputList;for(let d=0;d<b.inputList.length;d++){let e=
1084
- c[d],f=e.fieldRow;for(let g=0;g<f.length;g++)if(f[g]===this){a=e;break}}return a}getFlipRtl(){return!1}onShortcut(){return!1}getFocusableElement(){if(!this.fieldGroup_)throw Error("This field currently has no representative DOM element.");return this.fieldGroup_}getFocusableTree(){var a=this.getSourceBlock();if(!a)throw new kj;return a.workspace}onNodeFocus(){var a=this.getSourceBlock();a.workspace.scrollBoundsIntoView(a.getBoundingRectangleWithoutChildren())}onNodeBlur(){}canBeFocused(){return!0}performAction(){this.showEditor()}recomputeAriaContext(){try{var a=
1085
- this.getFocusableElement()}catch(d){return!1}if(!a)return!1;var b;if((b=this.getSourceBlock())==null?0:b.isInFlyout){let d,e;if((d=this.getSourceBlock())==null||!d.getFullBlockField()||((e=this.getSourceBlock())==null?0:e.getParent()))return l(a,p.HIDDEN,!0),!1;var c;b=((c=this.getSourceBlock())==null?void 0:c.getAriaRoleDescription())||$.C.BLOCK_LABEL_VALUE;l(a,p.ROLEDESCRIPTION,b)}za(a,p.HIDDEN);ya(a,Ka.BUTTON);c=this.computeAriaLabel(!0);this.isFullBlockField()&&(c=Be(this.getSourceBlock(),ve.STANDARD,
1086
- c));l(a,p.LABEL,c);return!0}static fromJson(){throw Error("Attempted to instantiate a field from the registry that hasn't defined a 'fromJson' method.");}};qg.NBSP="\u00a0";qg.SKIP_SETUP=Symbol("SKIP_SETUP");var kj=class extends Error{constructor(){super("The field has not yet been attached to its input. Call appendField to attach it.")}};var ng=null,pg=null,og=null,rg="",sg="",lg,ig=null,Xm={};Xm.createDom=mg;Xm.getDiv=function(){return lg};Xm.hide=jg;Xm.hideIfOwner=ug;Xm.hideIfOwnerIsInWorkspace=vg;Xm.isVisible=function(){return!!ng};Xm.positionWithAnchor=xg;Xm.repositionForWindowResize=yg;Xm.show=tg;Xm.testOnly_setDiv=function(a){lg=a;if(a===null){let b;(b=document.querySelector(".blocklyWidgetDiv"))==null||b.remove()}};var Eg=null,zg={},Cg=null,Ym={};Ym.callbackFactory=$.Og;Ym.dispose=Ag;Ym.getCurrentBlock=function(){return Eg};Ym.getMenu=function(){return Cg};Ym.hide=Fg;Ym.setCurrentBlock=function(a){Eg=a};Ym.show=Gg;var Jj=class{constructor(){this.registeredItems=new Map;this.reset()}reset(){this.registeredItems.clear()}register(a){if(this.registeredItems.has(a.id))throw Error('Menu item with ID "'+a.id+'" is already registered.');this.registeredItems.set(a.id,a)}unregister(a){if(!this.registeredItems.has(a))throw Error('Menu item with ID "'+a+'" not found.');this.registeredItems.delete(a)}getItem(a){var b;return(b=this.registeredItems.get(a))!=null?b:null}getContextMenuOptions(a,b){var c=[];for(let d of this.registeredItems.values()){if(d.scopeType){if(d.scopeType===
1087
- Zm.BLOCK&&!a.block)continue;if(d.scopeType===Zm.COMMENT&&!a.comment)continue;if(d.scopeType===Zm.WORKSPACE&&!a.workspace)continue}let e;e={id:d.id,scope:a,weight:d.weight};let f,g,h=(g=(f=d).preconditionFn)==null?void 0:g.call(f,a,b);if(h!=="hidden"){if(d.separator)e=Object.assign({},e,{separator:!0});else{let m=typeof d.displayText==="function"?d.displayText(a):d.displayText;e=Object.assign({},e,{text:m,callback:d.callback,enabled:h==="enabled",associatedKeyboardShortcut:d.associatedKeyboardShortcut})}c.push(e)}}c.sort(function(d,
1088
- e){return d.weight-e.weight});return c}},$m=Jj||(Jj={}),an=$m.ScopeType||($m.ScopeType={});an.BLOCK="block";an.WORKSPACE="workspace";an.COMMENT="comment";$m.registry=new $m;var Zm=Jj.ScopeType;var bn=class{constructor(a){this.comment=a;this.startLoc=null;this.workspace=a.workspace}isMovable(){return this.comment.isOwnMovable()&&!this.comment.isDeadOrDying()&&!this.workspace.isReadOnly()}startDrag(){this.fireDragStartEvent();this.startLoc=this.comment.getRelativeToSurfaceXY();this.workspace.setResizesEnabled(!1);var a;(a=this.workspace.getLayerManager())==null||a.moveToDragLayer(this.comment);this.comment.setDragging(!0);return this.comment}drag(a){this.comment.moveDuringDrag(a)}endDrag(){this.fireDragEndEvent();
1058
+ !b.isDragging()){do a.setDisabledReason(!0,"ORPHANED_BLOCK"),a=a.getNextBlock();while(a)}}finally{$.Qc=c}}}};N.enable=function(){$.Ub--};N.filter=Pb;N.fire=w;N.fromJson=function(a,b){var c=u(a.type);if(!c)throw Error("Unknown event type.");return c.fromJson(a,b)};N.get=u;N.getDescendantIds=Wb;N.getGroup=function(){return $.gd};N.getRecordUndo=function(){return $.Qc};N.isEnabled=Vb;N.setGroup=$.B;N.setRecordUndo=function(a){$.Qc=a};var Lm=class{constructor(){this.scopeChangeAudioCuesEnabled=this.isActive=!1;this.activeClassName="blocklyKeyboardNavigation"}setIsActive(a=!0){this.isActive=a;this.updateActiveVisualization()}getIsActive(){return this.isActive}setScopeChangeAudioCuesEnabled(a){this.scopeChangeAudioCuesEnabled=a}getScopeChangeAudioCuesEnabled(){return this.scopeChangeAudioCuesEnabled}updateActiveVisualization(){var a=kb.getInjectionDiv().parentElement;this.isActive?a==null||a.classList.add(this.activeClassName):a==
1059
+ null||a.classList.remove(this.activeClassName)}},Nd=new Lm;var Yd=new Intl.Collator(void 0,{sensitivity:"base"}),Id={generateUniqueNameInternal:function(a){return Kd("i",a.getVariableMap().getAllVariables().map(b=>b.getName()))}},Mm={CATEGORY_NAME:"VARIABLE",TEST_ONLY:Id,VAR_LETTER_OPTIONS:"ijkmnopqrstuvwxyzabcdefgh"};Mm.allDeveloperVariables=$.Cd;Mm.allUsedVarModels=$.Bd;Mm.compareByName=Hd;Mm.createVariableButtonHandler=Dd;Mm.deleteVariable=$.$d;Mm.flyoutCategory=Fd;
1060
+ Mm.flyoutCategoryBlocks=function(a){a=a.getVariableMap().getVariablesOfType("");var b=[];if(a.length>0){var c=a[a.length-1];if(zb.variables_set){var d=$.rc("block");d.setAttribute("type","variables_set");d.setAttribute("gap",zb.math_change?"8":"24");d.appendChild(Ud(c));b.push(d)}zb.math_change&&(d=$.rc("block"),d.setAttribute("type","math_change"),d.setAttribute("gap",zb.variables_get?"20":"8"),d.appendChild(Ud(c)),c=$.uc('<value name="DELTA"><shadow type="math_number"><field name="NUM">1</field></shadow></value>'),
1061
+ d.appendChild(c),b.push(d));if(zb.variables_get){a.sort(Hd);for(let e=0,f;f=a[e];e++)c=$.rc("block"),c.setAttribute("type","variables_get"),c.setAttribute("gap","8"),c.appendChild(Ud(f)),b.push(c)}}return b};Mm.generateUniqueName=Jd;Mm.generateUniqueNameFromOptions=Kd;Mm.generateVariableFieldDom=Ud;Mm.getAddedVariables=Xd;Mm.getOrCreateVariablePackage=$.Wd;Mm.getVariable=$.Vd;Mm.getVariableUsesById=Zd;Mm.jsonFlyoutCategoryBlocks=Ed;Mm.nameUsedWithAnyType=Md;Mm.nameUsedWithConflictingParam=Qd;
1062
+ Mm.promptName=Ld;Mm.renameVariable=$.Rd;var Nm=class extends Error{},he=class extends Nm{constructor(a){super("Expected to find a 'type' property, defining the block type");this.state=a}},ke=class extends Nm{constructor(a,b,c){super(`The block ${b.toDevString()} is missing a(n) ${a}
1063
+ connection`);this.block=b;this.state=c}},le=class extends Nm{constructor(a,b,c,d){super(`The block ${c.toDevString()} could not connect its
1064
+ ${b} to its parent, because: ${a}`);this.childBlock=c;this.childState=d}},ie=class extends Nm{constructor(a){super("Encountered a real block which is defined as a child of a shadow\nblock. It is an invariant of Blockly that shadow blocks only have shadow\nchildren");this.state=a}},me=class extends Nm{constructor(a,b,c){super(`Cannot add an icon of type '${a}' to the block ${b.toDevString()}, because there is no icon registered with type '${a}'. Make sure that all of your icons have been registered.`);
1065
+ this.block=b;this.state=c}},Om={};Om.BadConnectionCheck=le;Om.DeserializationError=Nm;Om.MissingBlockType=he;Om.MissingConnection=ke;Om.RealChildOfShadow=ie;Om.UnregisteredIcon=me;var Pm=class{constructor(){this.priority=50}save(a){var b=[];for(let c of a.getTopBlocks(!1))(a=ce(c,{addCoordinates:!0,doFullSerialization:!1}))&&b.push(a);return b.length?{languageVersion:0,blocks:b}:null}load(a,b){a=a.blocks;for(let c of a)ee(c,b,{recordUndo:$.Qc})}clear(a){for(let b of a.getTopBlocks(!1))b.dispose(!1)}};Oc("blocks",new Pm);var Qm={};Qm.BlockSerializer=Pm;Qm.append=ee;Qm.appendInternal=de;Qm.save=ce;var pe={Control:$.C.CONTROL_KEY,Meta:"\u2318",Alt:qe?"\u2325":$.C.ALT_KEY},te=["Meta","Control","Alt","Shift"];var Ie,Rm=Ie||(Ie={});Rm[Rm.UNKNOWN=0]="UNKNOWN";Rm[Rm.BEFORE=1]="BEFORE";Rm[Rm.AFTER=2]="AFTER";Rm[Rm.AROUND=3]="AROUND";Rm[Rm.INSIDE=4]="INSIDE";Rm[Rm.TO=5]="TO";var Sm={};Sm.clamp=Oe;Sm.toDegrees=function(a){return a*180/Math.PI};Sm.toRadians=Ne;var qf=null,gf=null,hf="",jf="",Pe,Qe,Se,df=null,ff=null,Ze=null,Ue=null,Re=null,rf={getBoundsInfo:function(){var a=ac(df),b=Zb(df);return{left:a.x,right:a.x+b.width,top:a.y,bottom:a.y+b.height,width:b.width,height:b.height}},getPositionMetrics:function(a,b,c,d){var e=rf.getBoundsInfo(),f=Zb(Pe);if(b+f.height<e.bottom)return mf(a,b,e,f);if(d-f.height>e.top)return nf(c,d,e,f);if(b+f.height<document.documentElement.clientHeight)return mf(a,b,e,f);if(d-f.height>document.documentElement.clientTop)return nf(c,
1066
+ d,e,f);a=lf(a,e.left,e.right,f.width);return{initialX:a.divX,initialY:0,finalX:a.divX,finalY:0,arrowAtTop:null,arrowX:null,arrowY:null,arrowVisible:!1}}},Tm={ANIMATION_TIME:.25,ARROW_HORIZONTAL_PADDING:12,ARROW_SIZE:16,BORDER_SIZE:1,PADDING_Y:16,TEST_ONLY:rf};Tm.clearContent=Xe;Tm.createDom=Te;Tm.getContentDiv=function(){return Qe};Tm.getOwner=function(){return ff};Tm.getPositionX=lf;Tm.hide=Ve;Tm.hideIfOwner=pf;Tm.hideWithoutAnimation=of;Tm.isVisible=function(){return!!ff};
1067
+ Tm.repositionForWindowResize=sf;Tm.setBoundsElement=function(a){df=a};Tm.setColour=Ye;Tm.show=ef;Tm.showPositionedByBlock=function(a,b,c,d,e=!0){return $e(cf(b),a,e,c,d)};Tm.showPositionedByField=bf;var Um={};Um.commonWordPrefix=uf;Um.commonWordSuffix=vf;Um.isNumber=$.zf;Um.shortestStringLength=tf;Um.wrap=$.yf;var Wf=void 0,Pf=!1,Jf=!1,Nf=0,Of=0,Qf=0,Rf=0,Kf=null,Mf=null,Cf=null,Vm={HOVER_MS:750,LIMIT:50,MARGINS:5,OFFSET_X:0,OFFSET_Y:10,RADIUS_OK:10};Vm.bindMouseEvents=Hf;Vm.block=Vf;Vm.createDom=Df;Vm.display=Uf;Vm.dispose=Tf;Vm.getCustomTooltip=function(){return Wf};Vm.getDiv=function(){return Cf};Vm.getTooltipOfObject=Bf;Vm.hide=Lf;Vm.isVisible=function(){return Pf};Vm.setCustomTooltip=function(a){Wf=a};Vm.unbindMouseEvents=If;Vm.unblock=function(){Jf=!1};var cg=.45,dg=.65,Xf={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00"},Wm={};Wm.blend=bg;Wm.getHsvSaturation=function(){return cg};Wm.getHsvValue=function(){return dg};Wm.hexToRgb=$f;Wm.hsvToHex=ag;Wm.hueToHex=eg;Wm.names=Xf;Wm.parse=Zf;Wm.rgbToHex=Yf;Wm.setHsvSaturation=function(a){cg=a};
1068
+ Wm.setHsvValue=function(a){dg=a};var Xm={checkMessageReferences:function(a){var b=!0,c=a.match(/%{BKY_[A-Z]\w*}/gi);if(c)for(let d=0;d<c.length;d++){let e=c[d].toUpperCase();$.C[e.slice(6,-1)]===void 0&&(console.warn("No message string for "+c[d]+" in "+a),b=!1)}return b}};Xm.parseBlockColour=ig;Xm.replaceMessageReferences=hg;Xm.tokenizeInterpolation=gg;var rg=class{get size_(){return this.size}set size_(a){this.size=a}constructor(a,b,c){this.DEFAULT_VALUE=null;this.name=void 0;this.tooltip=this.ariaTypeName=this.validator_=null;this.size=new hc(0,0);this.constants_=this.mouseDownWrapper=this.textContent_=this.textElement_=this.borderRect_=this.fieldGroup_=null;this.disposed=!1;this.maxDisplayLength=50;this.sourceBlock_=null;this.enabled_=this.visible_=this.isDirty_=!0;this.suffixField=this.prefixField=this.clickTarget_=null;this.EDITABLE=!0;this.SERIALIZABLE=
1069
+ !1;this.id_=null;this.value_="DEFAULT_VALUE"in new.target.prototype?new.target.prototype.DEFAULT_VALUE:this.DEFAULT_VALUE;this.size_=new hc(0,0);a!==rg.SKIP_SETUP&&(c&&this.configure_(c),this.setValue(a),b&&this.setValidator(b))}configure_(a){a.tooltip&&this.setTooltip(hg(a.tooltip));a.ariaTypeName&&this.setAriaTypeName(a.ariaTypeName)}setSourceBlock(a){if(this.sourceBlock_)throw Error("Field already bound to a block");this.sourceBlock_=a;if(a.id.includes("_field"))throw Error(`Field ID indicator is contained in block ID. This may cause problems with focus: ${a.id}.`);
1070
+ }getConstants(){!this.constants_&&this.sourceBlock_&&!this.sourceBlock_.isDeadOrDying()&&this.sourceBlock_.workspace.rendered&&(this.constants_=this.sourceBlock_.workspace.getRenderer().getConstants());return this.constants_}getSourceBlock(){return this.sourceBlock_}getAriaTypeName(){return this.ariaTypeName||null}setAriaTypeName(a){this.ariaTypeName=hg(a)}getAriaValue(){return this.getValue()==null?null:this.getText()}computeAriaLabel(a=!0){a=a?this.getAriaTypeName():null;var b=this.getAriaValue();
1071
+ if(b===null||b==="")b=$.C.FIELD_LABEL_EMPTY;return a?`${a}: ${b}`:b}init(){if(!this.fieldGroup_){this.fieldGroup_=r(q.G,{});this.isVisible()||(this.fieldGroup_.style.display="none");var a=this.sourceBlock_;a.getSvgRoot().appendChild(this.fieldGroup_);this.initView();this.updateEditable();this.setTooltip(this.tooltip);this.bindEvents_();this.initModel();this.applyColour();this.isFullBlockField()?this.id_=Lb():this.id_=`${a.id}_field_${Lb()}`;this.fieldGroup_.setAttribute("id",this.id_)}}initView(){this.createBorderRect_();
1072
+ this.createTextElement_();this.fieldGroup_&&n(this.fieldGroup_,"blocklyField")}initModel(){}isFullBlockField(){return!1}isLabelField(){return!1}createBorderRect_(){this.borderRect_=r(q.RECT,{rx:this.getConstants().FIELD_BORDER_RECT_RADIUS,ry:this.getConstants().FIELD_BORDER_RECT_RADIUS,x:0,y:0,height:this.size_.height,width:this.size_.width,"class":"blocklyFieldRect"},this.fieldGroup_)}createTextElement_(){this.textElement_=r(q.TEXT,{"class":"blocklyText blocklyFieldText","aria-hidden":"true"},this.fieldGroup_);
1073
+ this.getConstants().FIELD_TEXT_BASELINE_CENTER&&this.textElement_.setAttribute("dominant-baseline","central");this.textContent_=document.createTextNode("");this.textElement_.appendChild(this.textContent_)}bindEvents_(){var a=this.getClickTarget_();if(!a)throw Error("A click target has not been set.");Hf(a);this.mouseDownWrapper=k(a,"pointerdown",this,this.onMouseDown_)}fromXml(a){this.setValue(a.textContent)}toXml(a){a.textContent=this.getValue();return a}saveState(){var a=this.saveLegacyState(rg);
1074
+ return a!==null?a:this.getValue()}loadState(a){this.loadLegacyState(rg,a)||this.setValue(a)}saveLegacyState(a){return a.prototype.saveState===this.saveState&&a.prototype.toXml!==this.toXml?(a=$.rc("field"),a.setAttribute("name",this.name||""),xc(this.toXml(a)).replace(' xmlns="https://developers.google.com/blockly/xml"',"")):null}loadLegacyState(a,b){return a.prototype.loadState===this.loadState&&a.prototype.fromXml!==this.fromXml?(this.fromXml($.uc(b)),!0):!1}dispose(){pf(this);vg(this);var a;((a=
1075
+ this.getSourceBlock())==null?0:a.isDeadOrDying())||Oa(this.fieldGroup_);this.disposed=!0}updateEditable(){var a=this.fieldGroup_,b=this.getSourceBlock();this.EDITABLE&&a&&b&&(this.enabled_&&b.isEditable()?(n(a,"blocklyEditableField"),Ma(a,"blocklyNonEditableField")):(n(a,"blocklyNonEditableField"),Ma(a,"blocklyEditableField")))}setEnabled(a){this.enabled_=a;this.updateEditable()}isEnabled(){return this.enabled_}isClickable(){return this.enabled_&&!!this.sourceBlock_&&this.sourceBlock_.isEditable()&&
1076
+ this.showEditor_!==rg.prototype.showEditor_}isClickableInFlyout(a){return!a}isCurrentlyEditable(){return this.enabled_&&this.EDITABLE&&!!this.sourceBlock_&&this.sourceBlock_.isEditable()}isSerializable(){var a=!1;this.name&&(this.SERIALIZABLE?a=!0:this.EDITABLE&&(console.warn("Detected an editable field that was not serializable. Please define SERIALIZABLE property as true on all editable custom fields. Proceeding with serialization."),a=!0));return a}isVisible(){return this.visible_}setVisible(a){if(this.visible_!==
1077
+ a){this.visible_=a;var b=this.fieldGroup_;b&&(b.style.display=a?"block":"none")}}setValidator(a){this.validator_=a}getValidator(){return this.validator_}getSvgRoot(){return this.fieldGroup_}getBorderRect(){if(!this.borderRect_)throw Error(`The border rectangle is ${this.borderRect_}.`);return this.borderRect_}getTextElement(){if(!this.textElement_)throw Error(`The text element is ${this.textElement_}.`);return this.textElement_}getTextContent(){if(!this.textContent_)throw Error(`The text content is ${this.textContent_}.`);
1078
+ return this.textContent_}applyColour(){}render_(){this.textContent_&&(this.textContent_.nodeValue=this.getDisplayText_());this.updateSize_()}showEditor(a){this.isClickable()&&this.showEditor_(a)}showEditor_(){}repositionForWindowResize(){return!1}updateSize_(a){var b=this.getConstants();a=a!==void 0?a:this.borderRect_?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;var c=a*2,d=b.FIELD_TEXT_HEIGHT,e=0;this.textElement_&&(e=Wa(this.textElement_),c+=e);this.borderRect_&&(d=Math.max(d,b.FIELD_BORDER_RECT_HEIGHT));
1079
+ this.size_=new hc(c,d);this.positionTextElement_(a,e);this.positionBorderRect_()}positionTextElement_(a,b){if(this.textElement_){var c=this.getConstants(),d=this.size_.height/2,e;this.textElement_.setAttribute("x",String(((e=this.getSourceBlock())==null?0:e.RTL)?this.size_.width-b-a:a));this.textElement_.setAttribute("y",String(c.FIELD_TEXT_BASELINE_CENTER?d:d-c.FIELD_TEXT_HEIGHT/2+c.FIELD_TEXT_BASELINE))}}positionBorderRect_(){this.borderRect_&&(this.borderRect_.setAttribute("width",String(this.size_.width)),
1080
+ this.borderRect_.setAttribute("height",String(this.size_.height)),this.borderRect_.setAttribute("rx",String(this.getConstants().FIELD_BORDER_RECT_RADIUS)),this.borderRect_.setAttribute("ry",String(this.getConstants().FIELD_BORDER_RECT_RADIUS)))}getSize(){if(!this.isVisible())return new hc(0,0);this.isDirty_&&(this.render_(),this.isDirty_=!1);return this.size_}getScaledBBox(){var a=this.getSourceBlock();if(!a)throw new lj;if(this.borderRect_){var b=this.borderRect_.getBoundingClientRect();var c=ac(this.borderRect_);
1081
+ a=b.width;b=b.height}else{b=this.sourceBlock_.getHeightWidth();let d=a.workspace.scale;c=this.getAbsoluteXY_();a=(b.width+1)*d;b=(b.height+1)*d;wk?(c.x+=1.5*d,c.y+=1.5*d):(c.x-=.5*d,c.y-=.5*d)}return new cc(c.y,c.y+b,c.x,c.x+a)}onLocationChange(){}getDisplayText_(){var a=this.getText();a.length>this.maxDisplayLength&&(a=a.substring(0,this.maxDisplayLength-2)+"\u2026");a=a.replace(/\s/g,rg.NBSP);this.sourceBlock_&&this.sourceBlock_.RTL&&(a+="\u200f");return a}getText(){var a=this.getText_();return a!==
1082
+ null?String(a):String(this.getValue())}getText_(){return null}markDirty(){this.isDirty_=!0;this.constants_=null}forceRerender(){this.isDirty_=!0;this.sourceBlock_&&this.sourceBlock_.rendered&&this.sourceBlock_.queueRender()}setValue(a,b=!0){if(a!==null){var c=$.gd;c||$.B(!0);try{let m=this.doClassValidation_(a),z=this.processValidation(a,m,b);if(!(z instanceof Error)){var d,e=(d=this.getValidator())==null?void 0:d.call(this,z),f=this.processValidation(z,e,b);if(!(f instanceof Error)){var g=this.sourceBlock_;
1083
+ if(!g||!g.disposed){var h=this.getValue();h===f?this.doValueUpdate_(f):(this.doValueUpdate_(f),b&&g&&Vb()&&w(new (u(v.BLOCK_CHANGE))(g,"field",this.name||null,h,f)),this.isDirty_&&this.forceRerender())}}}}finally{$.B(c)}}}processValidation(a,b,c){return b===null?(this.doValueInvalid_(a,c),this.isDirty_&&this.forceRerender(),Error()):b===void 0?a:b}getValue(){return this.value_}doClassValidation_(a){return a===null||a===void 0?null:a}doValueUpdate_(a){this.value_=a;this.isDirty_=!0}doValueInvalid_(){}onMouseDown_(a){this.sourceBlock_&&
1084
+ !this.sourceBlock_.isDeadOrDying()&&(a=this.sourceBlock_.workspace.getGesture(a))&&a.setStartField(this)}setTooltip(a){a||a===""||(a=this.sourceBlock_);var b=this.getClickTarget_();b?b.tooltip=a:this.tooltip=a}getTooltip(){var a=this.getClickTarget_();return a?Bf(a):Bf({tooltip:this.tooltip})}getClickTarget_(){return this.clickTarget_||this.getSvgRoot()}getAbsoluteXY_(){return ac(this.getClickTarget_())}referencesVariables(){return!1}refreshVariableName(){}getParentInput(){var a=null,b=this.getSourceBlock();
1085
+ if(!b)throw new lj;var c=b.inputList;for(let d=0;d<b.inputList.length;d++){let e=c[d],f=e.fieldRow;for(let g=0;g<f.length;g++)if(f[g]===this){a=e;break}}return a}getFlipRtl(){return!1}onShortcut(){return!1}getFocusableElement(){if(!this.fieldGroup_)throw Error("This field currently has no representative DOM element.");return this.fieldGroup_}getFocusableTree(){var a=this.getSourceBlock();if(!a)throw new lj;return a.workspace}onNodeFocus(){var a=this.getSourceBlock();a.workspace.scrollBoundsIntoView(a.getBoundingRectangleWithoutChildren())}onNodeBlur(){}canBeFocused(){return!0}performAction(){this.showEditor()}recomputeAriaContext(){try{var a=
1086
+ this.getFocusableElement()}catch(d){return!1}if(!a)return!1;var b;if((b=this.getSourceBlock())==null?0:b.isInFlyout){let d,e;if((d=this.getSourceBlock())==null||!d.getFullBlockField()||((e=this.getSourceBlock())==null?0:e.getParent()))return l(a,p.HIDDEN,!0),!1;var c;b=((c=this.getSourceBlock())==null?void 0:c.getAriaRoleDescription())||$.C.BLOCK_LABEL_VALUE;l(a,p.ROLEDESCRIPTION,b)}za(a,p.HIDDEN);ya(a,Ka.BUTTON);c=this.computeAriaLabel(!0);this.isFullBlockField()&&(c=Ce(this.getSourceBlock(),we.STANDARD,
1087
+ c));l(a,p.LABEL,c);return!0}static fromJson(){throw Error("Attempted to instantiate a field from the registry that hasn't defined a 'fromJson' method.");}};rg.NBSP="\u00a0";rg.SKIP_SETUP=Symbol("SKIP_SETUP");var lj=class extends Error{constructor(){super("The field has not yet been attached to its input. Call appendField to attach it.")}};var og=null,qg=null,pg=null,sg="",tg="",mg,jg=null,Ym={};Ym.createDom=ng;Ym.getDiv=function(){return mg};Ym.hide=kg;Ym.hideIfOwner=vg;Ym.hideIfOwnerIsInWorkspace=wg;Ym.isVisible=function(){return!!og};Ym.positionWithAnchor=yg;Ym.repositionForWindowResize=zg;Ym.show=ug;Ym.testOnly_setDiv=function(a){mg=a;if(a===null){let b;(b=document.querySelector(".blocklyWidgetDiv"))==null||b.remove()}};var Fg=null,Ag={},Dg=null,Zm={};Zm.callbackFactory=$.Pg;Zm.dispose=Bg;Zm.getCurrentBlock=function(){return Fg};Zm.getMenu=function(){return Dg};Zm.hide=Gg;Zm.setCurrentBlock=function(a){Fg=a};Zm.show=Hg;var Kj=class{constructor(){this.registeredItems=new Map;this.reset()}reset(){this.registeredItems.clear()}register(a){if(this.registeredItems.has(a.id))throw Error('Menu item with ID "'+a.id+'" is already registered.');this.registeredItems.set(a.id,a)}unregister(a){if(!this.registeredItems.has(a))throw Error('Menu item with ID "'+a+'" not found.');this.registeredItems.delete(a)}getItem(a){var b;return(b=this.registeredItems.get(a))!=null?b:null}getContextMenuOptions(a,b){var c=[];for(let d of this.registeredItems.values()){if(d.scopeType){if(d.scopeType===
1088
+ $m.BLOCK&&!a.block)continue;if(d.scopeType===$m.COMMENT&&!a.comment)continue;if(d.scopeType===$m.WORKSPACE&&!a.workspace)continue}let e;e={id:d.id,scope:a,weight:d.weight};let f,g,h=(g=(f=d).preconditionFn)==null?void 0:g.call(f,a,b);if(h!=="hidden"){if(d.separator)e=Object.assign({},e,{separator:!0});else{let m=typeof d.displayText==="function"?d.displayText(a):d.displayText;e=Object.assign({},e,{text:m,callback:d.callback,enabled:h==="enabled",associatedKeyboardShortcut:d.associatedKeyboardShortcut})}c.push(e)}}c.sort(function(d,
1089
+ e){return d.weight-e.weight});return c}},an=Kj||(Kj={}),bn=an.ScopeType||(an.ScopeType={});bn.BLOCK="block";bn.WORKSPACE="workspace";bn.COMMENT="comment";an.registry=new an;var $m=Kj.ScopeType;var cn=class{constructor(a){this.comment=a;this.startLoc=null;this.workspace=a.workspace}isMovable(){return this.comment.isOwnMovable()&&!this.comment.isDeadOrDying()&&!this.workspace.isReadOnly()}startDrag(){this.fireDragStartEvent();this.startLoc=this.comment.getRelativeToSurfaceXY();this.workspace.setResizesEnabled(!1);var a;(a=this.workspace.getLayerManager())==null||a.moveToDragLayer(this.comment);this.comment.setDragging(!0);return this.comment}drag(a){this.comment.moveDuringDrag(a)}endDrag(){this.fireDragEndEvent();
1089
1090
  this.fireMoveEvent();var a;(a=this.workspace.getLayerManager())==null||a.moveOffDragLayer(this.comment,50);this.workspace.getAudioManager().play("drop");this.comment.setDragging(!1);this.comment.snapToGrid();this.workspace.setResizesEnabled(!0)}fireDragStartEvent(){var a=new (u(v.COMMENT_DRAG))(this.comment,!0);w(a)}fireDragEndEvent(){var a=new (u(v.COMMENT_DRAG))(this.comment,!1);w(a)}fireMoveEvent(){if(!this.comment.isDeadOrDying()){var a=new (u(v.COMMENT_MOVE))(this.comment);a.setReason(["drag"]);
1090
- a.oldCoordinate_=this.startLoc;a.recordNew();w(a)}}revertDrag(){this.startLoc&&this.comment.moveDuringDrag(this.startLoc)}};var Qg=new WeakMap;var cn=class{constructor(a,b,c,d){this.id=a;this.workspace=b;this.container=c;this.commentView=d}isVisible(){return this.icon.checkVisibility()}getCommentView(){return this.commentView}getSize(a=!1){var b=this.icon.getBBox();b=cc.from(b);a&&(a=this.getMargin(),b.left-=a,b.top-=a,b.bottom+=a,b.right+=a);return b}getMargin(){return(this.container.getBBox().height-this.icon.getBBox().height)/2}getFocusableElement(){return this.icon}getFocusableTree(){return this.workspace}onNodeFocus(){var a=this.getCommentView(),
1091
- b=a.getRelativeToSurfaceXY(),c=a.getSize();b=new cc(b.y,b.y+c.height,b.x,b.x+c.width);a.workspace.scrollBoundsIntoView(b)}onNodeBlur(){}canBeFocused(){return this.isVisible()}recomputeAriaContext(){if(this.icon){ya(this.icon,Ka.BUTTON);var a=this.getAriaLabel();l(this.icon,p.LABEL,a||$.C.ARIA_LABEL_BUTTON)}}getAriaLabel(){return null}};var dn=class extends cn{constructor(a,b,c,d){super(a,b,c,d);this.id=a;this.workspace=b;this.container=c;this.commentView=d;this.icon=r(q.IMAGE,{"class":"blocklyFoldoutIcon",href:`${this.workspace.options.pathToMedia}foldout-icon.svg`,id:`${this.id}_collapse_bar_button`},this.container);this.recomputeAriaContext();this.bindId=k(this.icon,"pointerdown",this,this.performAction.bind(this))}dispose(){la(this.bindId)}reposition(){var a=this.getMargin();this.icon.setAttribute("y",`${a}`);this.icon.setAttribute("x",
1092
- `${a}`)}performAction(a){ha=null;this.getCommentView().bringToFront();a&&a instanceof PointerEvent&&oa(a)?a.stopPropagation():(this.getCommentView().setCollapsed(!this.getCommentView().isCollapsed()),this.recomputeAriaContext(),this.workspace.hideChaff(),a==null||a.stopPropagation())}getAriaLabel(){return this.getCommentView().isCollapsed()?$.C.ARIA_LABEL_COMMENT_EXPAND:$.C.ARIA_LABEL_COMMENT_COLLAPSE}};var en=class{constructor(a,b,c){this.workspace=a;this.onFinishEditing=c;this.textChangeListeners=[];this.text="";this.foreignObject=r(q.FOREIGNOBJECT,{"class":"blocklyCommentForeignObject"});a=document.createElementNS("http://www.w3.org/1999/xhtml","body");a.setAttribute("xmlns","http://www.w3.org/1999/xhtml");a.className="blocklyMinimalBody";this.textArea=document.createElementNS("http://www.w3.org/1999/xhtml","textarea");this.textArea.setAttribute("tabindex","-1");this.textArea.setAttribute("dir",
1091
+ a.oldCoordinate_=this.startLoc;a.recordNew();w(a)}}revertDrag(){this.startLoc&&this.comment.moveDuringDrag(this.startLoc)}};var Rg=new WeakMap;var dn=class{constructor(a,b,c,d){this.id=a;this.workspace=b;this.container=c;this.commentView=d}isVisible(){return this.icon.checkVisibility()}getCommentView(){return this.commentView}getSize(a=!1){var b=this.icon.getBBox();b=cc.from(b);a&&(a=this.getMargin(),b.left-=a,b.top-=a,b.bottom+=a,b.right+=a);return b}getMargin(){return(this.container.getBBox().height-this.icon.getBBox().height)/2}getFocusableElement(){return this.icon}getFocusableTree(){return this.workspace}onNodeFocus(){var a=this.getCommentView(),
1092
+ b=a.getRelativeToSurfaceXY(),c=a.getSize();b=new cc(b.y,b.y+c.height,b.x,b.x+c.width);a.workspace.scrollBoundsIntoView(b)}onNodeBlur(){}canBeFocused(){return this.isVisible()}recomputeAriaContext(){if(this.icon){ya(this.icon,Ka.BUTTON);var a=this.getAriaLabel();l(this.icon,p.LABEL,a||$.C.ARIA_LABEL_BUTTON)}}getAriaLabel(){return null}};var en=class extends dn{constructor(a,b,c,d){super(a,b,c,d);this.id=a;this.workspace=b;this.container=c;this.commentView=d;this.icon=r(q.IMAGE,{"class":"blocklyFoldoutIcon",href:`${this.workspace.options.pathToMedia}foldout-icon.svg`,id:`${this.id}_collapse_bar_button`},this.container);this.recomputeAriaContext();this.bindId=k(this.icon,"pointerdown",this,this.performAction.bind(this))}dispose(){ka(this.bindId)}reposition(){var a=this.getMargin();this.icon.setAttribute("y",`${a}`);this.icon.setAttribute("x",
1093
+ `${a}`)}performAction(a){ha=null;this.getCommentView().bringToFront();a&&a instanceof PointerEvent&&na(a)?a.stopPropagation():(this.getCommentView().setCollapsed(!this.getCommentView().isCollapsed()),this.recomputeAriaContext(),this.workspace.hideChaff(),a==null||a.stopPropagation())}getAriaLabel(){return this.getCommentView().isCollapsed()?$.C.ARIA_LABEL_COMMENT_EXPAND:$.C.ARIA_LABEL_COMMENT_COLLAPSE}};var fn=class{constructor(a,b,c){this.workspace=a;this.onFinishEditing=c;this.textChangeListeners=[];this.text="";this.foreignObject=r(q.FOREIGNOBJECT,{"class":"blocklyCommentForeignObject"});a=document.createElementNS("http://www.w3.org/1999/xhtml","body");a.setAttribute("xmlns","http://www.w3.org/1999/xhtml");a.className="blocklyMinimalBody";this.textArea=document.createElementNS("http://www.w3.org/1999/xhtml","textarea");this.textArea.setAttribute("tabindex","-1");this.textArea.setAttribute("dir",
1093
1094
  this.workspace.RTL?"RTL":"LTR");ya(this.textArea,Ka.TEXTBOX);this.textArea.setAttribute("placeholder",$.C.WORKSPACE_COMMENT_DEFAULT_TEXT);n(this.textArea,"blocklyCommentText");n(this.textArea,"blocklyTextarea");n(this.textArea,"blocklyText");a.appendChild(this.textArea);this.foreignObject.appendChild(a);this.id=b+"_comment_textarea_";this.textArea.setAttribute("id",this.id);k(this.textArea,"change",this,this.onTextChange);k(this.textArea,"pointerdown",this,d=>{d.stopPropagation();$.t().focusNode(this);
1094
1095
  ha=null});k(this.textArea,"wheel",this,d=>{d.stopPropagation()},!1,{passive:!0});k(this.textArea,"keydown",this,this.handleKeyDown)}getDom(){return this.foreignObject}getText(){return this.text}setText(a){this.textArea.value=a;this.onTextChange()}setParent(a){this.parent=a}getParent(){return this.parent}onTextChange(){var a=this.text;this.text=this.textArea.value;for(let b=this.textChangeListeners.length-1;b>=0;b--)this.textChangeListeners[b](a,this.text)}handleKeyDown(a){if(a.key==="Escape"||a.key===
1095
1096
  "Enter"&&(a.ctrlKey||a.metaKey)){if(this.onFinishEditing)this.onFinishEditing();a.stopPropagation()}}addTextChangeListener(a){this.textChangeListeners.push(a)}removeTextChangeListener(a){this.textChangeListeners.splice(this.textChangeListeners.indexOf(a),1)}setPlaceholderText(a){this.textArea.placeholder=a}setEditable(a){a?this.textArea.removeAttribute("readonly"):this.textArea.setAttribute("readonly","true")}updateSize(a,b){this.foreignObject.setAttribute("height",`${a.height-b.height}`);this.foreignObject.setAttribute("width",
1096
- `${a.width}`);this.foreignObject.setAttribute("y",`${b.height}`);this.workspace.RTL&&this.foreignObject.setAttribute("x",`${-a.width}`)}getFocusableElement(){return this.textArea}getFocusableTree(){return this.workspace}onNodeFocus(){var a=cc.from(this.foreignObject.getBoundingClientRect());this.workspace.scrollBoundsIntoView(cc.createFromPoint(oc(this.workspace,a.getOrigin()),a.getWidth(),a.getHeight()))}onNodeBlur(){}canBeFocused(){return this.id?!0:!1}};var fn=class extends cn{constructor(a,b,c,d){super(a,b,c,d);this.id=a;this.workspace=b;this.container=c;this.commentView=d;this.icon=r(q.IMAGE,{"class":"blocklyDeleteIcon",href:`${this.workspace.options.pathToMedia}delete-icon.svg`,id:`${this.id}_delete_bar_button`},c);this.recomputeAriaContext();this.bindId=k(this.icon,"pointerdown",this,this.performAction.bind(this))}dispose(){la(this.bindId)}reposition(){var a=this.getMargin();this.icon.setAttribute("x","0");var b=this.container.getBBox();this.icon.setAttribute("y",
1097
- `${a}`);this.icon.setAttribute("x",`${b.width-this.getSize(!0).getWidth()}`)}performAction(a){ha=null;a&&a instanceof PointerEvent&&oa(a)?a.stopPropagation():(this.getCommentView().dispose(),a==null||a.stopPropagation(),$.t().focusNode(this.workspace),this.workspace.getAudioManager().play("delete"))}getAriaLabel(){return $.C.REMOVE_COMMENT}};var gn=class{constructor(a,b){this.workspace=a;this.commentId=b;this.collapsed=!1;this.editable=!0;this.location=new D(0,0);this.sizeChangeListeners=[];this.disposeListeners=[];this.collapseChangeListeners=[];this.resizePointerMoveListener=this.resizePointerUpListener=null;this.disposed=this.disposing=!1;this.svgRoot=r(q.G,{"class":"blocklyComment blocklyEditable blocklyDraggable"});ya(this.svgRoot,Ka.BUTTON);l(this.svgRoot,p.ROLEDESCRIPTION,$.C.ARIA_LABEL_COMMENT);this.highlightRect=this.createHighlightRect(this.svgRoot);
1098
- ({topBarGroup:this.topBarGroup,topBarBackground:this.topBarBackground,deleteButton:this.deleteButton,foldoutButton:this.foldoutButton,textPreview:this.textPreview,textPreviewNode:this.textPreviewNode}=this.createTopBar(this.svgRoot));this.commentEditor=this.createTextArea();l(this.svgRoot,p.LABELLEDBY,this.commentEditor.getFocusableElement().id);this.resizeHandle=this.createResizeHandle(this.svgRoot,a);var c;(c=a.getLayerManager())==null||c.append(this,50);this.size=gn.defaultCommentSize;this.setSizeWithoutFiringEvents(this.size);
1099
- this.moveTo(new D(0,0))}createHighlightRect(a){return r(q.RECT,{"class":"blocklyCommentHighlight"},a)}createTopBar(a){a=r(q.G,{"class":"blocklyCommentTopbar"},a);var b=r(q.RECT,{"class":"blocklyCommentTopbarBackground"},a),c=new fn(this.commentId,this.workspace,a,this),d=new dn(this.commentId,this.workspace,a,this);this.addDisposeListener(()=>{c.dispose();d.dispose()});var e=r(q.TEXT,{"class":"blocklyCommentPreview blocklyCommentText blocklyText"},a),f=document.createTextNode("");e.appendChild(f);
1100
- return{topBarGroup:a,topBarBackground:b,deleteButton:c,foldoutButton:d,textPreview:e,textPreviewNode:f}}createTextArea(){var a=new en(this.workspace,this.commentId,()=>this.svgRoot.focus());this.svgRoot.appendChild(a.getDom());a.addTextChangeListener((b,c)=>{this.updateTextPreview(c);this.setSize(this.size)});return a}getEditorFocusableNode(){return this.commentEditor}createResizeHandle(a,b){a=r(q.IMAGE,{"class":"blocklyResizeHandle",href:`${b.options.pathToMedia}resize-handle.svg`},a);k(a,"pointerdown",
1097
+ `${a.width}`);this.foreignObject.setAttribute("y",`${b.height}`);this.workspace.RTL&&this.foreignObject.setAttribute("x",`${-a.width}`)}getFocusableElement(){return this.textArea}getFocusableTree(){return this.workspace}onNodeFocus(){var a=cc.from(this.foreignObject.getBoundingClientRect());this.workspace.scrollBoundsIntoView(cc.createFromPoint(oc(this.workspace,a.getOrigin()),a.getWidth(),a.getHeight()))}onNodeBlur(){}canBeFocused(){return this.id?!0:!1}};var gn=class extends dn{constructor(a,b,c,d){super(a,b,c,d);this.id=a;this.workspace=b;this.container=c;this.commentView=d;this.icon=r(q.IMAGE,{"class":"blocklyDeleteIcon",href:`${this.workspace.options.pathToMedia}delete-icon.svg`,id:`${this.id}_delete_bar_button`},c);this.recomputeAriaContext();this.bindId=k(this.icon,"pointerdown",this,this.performAction.bind(this))}dispose(){ka(this.bindId)}reposition(){var a=this.getMargin();this.icon.setAttribute("x","0");var b=this.container.getBBox();this.icon.setAttribute("y",
1098
+ `${a}`);this.icon.setAttribute("x",`${b.width-this.getSize(!0).getWidth()}`)}performAction(a){ha=null;a&&a instanceof PointerEvent&&na(a)?a.stopPropagation():(this.getCommentView().dispose(),a==null||a.stopPropagation(),$.t().focusNode(this.workspace),this.workspace.getAudioManager().play("delete"))}getAriaLabel(){return $.C.REMOVE_COMMENT}};var hn=class{constructor(a,b){this.workspace=a;this.commentId=b;this.collapsed=!1;this.editable=!0;this.location=new D(0,0);this.sizeChangeListeners=[];this.disposeListeners=[];this.collapseChangeListeners=[];this.resizePointerMoveListener=this.resizePointerUpListener=null;this.disposed=this.disposing=!1;this.svgRoot=r(q.G,{"class":"blocklyComment blocklyEditable blocklyDraggable"});ya(this.svgRoot,Ka.BUTTON);l(this.svgRoot,p.ROLEDESCRIPTION,$.C.ARIA_LABEL_COMMENT);this.highlightRect=this.createHighlightRect(this.svgRoot);
1099
+ ({topBarGroup:this.topBarGroup,topBarBackground:this.topBarBackground,deleteButton:this.deleteButton,foldoutButton:this.foldoutButton,textPreview:this.textPreview,textPreviewNode:this.textPreviewNode}=this.createTopBar(this.svgRoot));this.commentEditor=this.createTextArea();l(this.svgRoot,p.LABELLEDBY,this.commentEditor.getFocusableElement().id);this.resizeHandle=this.createResizeHandle(this.svgRoot,a);var c;(c=a.getLayerManager())==null||c.append(this,50);this.size=hn.defaultCommentSize;this.setSizeWithoutFiringEvents(this.size);
1100
+ this.moveTo(new D(0,0))}createHighlightRect(a){return r(q.RECT,{"class":"blocklyCommentHighlight"},a)}createTopBar(a){a=r(q.G,{"class":"blocklyCommentTopbar"},a);var b=r(q.RECT,{"class":"blocklyCommentTopbarBackground"},a),c=new gn(this.commentId,this.workspace,a,this),d=new en(this.commentId,this.workspace,a,this);this.addDisposeListener(()=>{c.dispose();d.dispose()});var e=r(q.TEXT,{"class":"blocklyCommentPreview blocklyCommentText blocklyText"},a),f=document.createTextNode("");e.appendChild(f);
1101
+ return{topBarGroup:a,topBarBackground:b,deleteButton:c,foldoutButton:d,textPreview:e,textPreviewNode:f}}createTextArea(){var a=new fn(this.workspace,this.commentId,()=>this.svgRoot.focus());this.svgRoot.appendChild(a.getDom());a.addTextChangeListener((b,c)=>{this.updateTextPreview(c);this.setSize(this.size)});return a}getEditorFocusableNode(){return this.commentEditor}createResizeHandle(a,b){a=r(q.IMAGE,{"class":"blocklyResizeHandle",href:`${b.options.pathToMedia}resize-handle.svg`},a);k(a,"pointerdown",
1101
1102
  this,this.onResizePointerDown);return a}getSvgRoot(){return this.svgRoot}getSize(){return this.collapsed?this.topBarBackground.getBBox():this.size}setSizeWithoutFiringEvents(a){var b=this.topBarBackground.getBBox(),c=this.textPreview.getBBox(),d=this.resizeHandle.getBBox();this.size=a=hc.max(a,this.calcMinSize(b));this.svgRoot.setAttribute("height",`${a.height}`);this.svgRoot.setAttribute("width",`${a.width}`);this.updateHighlightRect(a);this.updateTopBarSize(a);this.commentEditor.updateSize(a,b);
1102
1103
  this.deleteButton.reposition();this.foldoutButton.reposition();this.updateTextPreviewSize(a,b,c);this.updateResizeHandlePosition(a,d)}setSize(a){var b=this.preResizeSize||this.size;this.setSizeWithoutFiringEvents(a);this.onSizeChange(b,this.size)}calcMinSize(a){var b;this.updateTextPreview((b=this.commentEditor.getText())!=null?b:"");var c=b=Wa(this.textPreview);this.foldoutButton.isVisible()?c+=this.foldoutButton.getSize(!0).getWidth():b&&(c+=4);this.deleteButton.isVisible()?c+=this.deleteButton.getSize(!0).getWidth():
1103
1104
  b&&(c+=4);return new hc(c,a.height+20)}updateHighlightRect(a){this.highlightRect.setAttribute("height",`${a.height}`);this.highlightRect.setAttribute("width",`${a.width}`);this.workspace.RTL&&this.highlightRect.setAttribute("x",`${-a.width}`)}updateTopBarSize(a){this.topBarBackground.setAttribute("width",`${a.width}`)}updateTextPreviewSize(a,b,c){b=(b.height-c.height)/2;var d=this.foldoutButton.getSize(!0),e=this.deleteButton.getSize(!0);a=a.width-d.getWidth()-e.getWidth();this.textPreview.setAttribute("x",
1104
1105
  `${(this.workspace.RTL?-1:1)*d.getWidth()}`);this.textPreview.setAttribute("y",`${b+c.height/2}`);this.textPreview.setAttribute("width",`${a}`)}updateResizeHandlePosition(a,b){this.resizeHandle.setAttribute("y",`${a.height-b.height}`);this.resizeHandle.setAttribute("x",`${a.width-b.width}`)}onSizeChange(a,b){for(let c=this.sizeChangeListeners.length-1;c>=0;c--)this.sizeChangeListeners[c](a,b)}addSizeChangeListener(a){this.sizeChangeListeners.push(a)}removeSizeChangeListener(a){this.sizeChangeListeners.splice(this.sizeChangeListeners.indexOf(a),
1105
- 1)}onResizePointerDown(a){this.isEditable()&&(this.bringToFront(),oa(a)||(this.preResizeSize=this.getSize(),Rg(this.workspace,a,new D(this.workspace.RTL?-this.getSize().width:this.getSize().width,this.getSize().height)),this.resizePointerUpListener=k(document,"pointerup",this,this.onResizePointerUp),this.resizePointerMoveListener=k(document,"pointermove",this,this.onResizePointerMove),this.workspace.hideChaff()),a.stopPropagation())}onResizePointerUp(){ha=null;this.resizePointerUpListener&&(la(this.resizePointerUpListener),
1106
- this.resizePointerUpListener=null);this.resizePointerMoveListener&&(la(this.resizePointerMoveListener),this.resizePointerMoveListener=null);this.setSize(this.size);this.preResizeSize=void 0}onResizePointerMove(a){a=Sg(this.workspace,a);this.setSizeWithoutFiringEvents(new hc(this.workspace.RTL?-a.x:a.x,a.y))}isCollapsed(){return this.collapsed}setCollapsed(a){(this.collapsed=a)?n(this.svgRoot,"blocklyCollapsed"):Ma(this.svgRoot,"blocklyCollapsed");this.setSizeWithoutFiringEvents(this.size);this.onCollapse()}onCollapse(){for(let a=
1106
+ 1)}onResizePointerDown(a){this.isEditable()&&(this.bringToFront(),na(a)||(this.preResizeSize=this.getSize(),Sg(this.workspace,a,new D(this.workspace.RTL?-this.getSize().width:this.getSize().width,this.getSize().height)),this.resizePointerUpListener=k(document,"pointerup",this,this.onResizePointerUp),this.resizePointerMoveListener=k(document,"pointermove",this,this.onResizePointerMove),this.workspace.hideChaff()),a.stopPropagation())}onResizePointerUp(){ha=null;this.resizePointerUpListener&&(ka(this.resizePointerUpListener),
1107
+ this.resizePointerUpListener=null);this.resizePointerMoveListener&&(ka(this.resizePointerMoveListener),this.resizePointerMoveListener=null);this.setSize(this.size);this.preResizeSize=void 0}onResizePointerMove(a){a=Tg(this.workspace,a);this.setSizeWithoutFiringEvents(new hc(this.workspace.RTL?-a.x:a.x,a.y))}isCollapsed(){return this.collapsed}setCollapsed(a){(this.collapsed=a)?n(this.svgRoot,"blocklyCollapsed"):Ma(this.svgRoot,"blocklyCollapsed");this.setSizeWithoutFiringEvents(this.size);this.onCollapse()}onCollapse(){for(let a=
1107
1108
  this.collapseChangeListeners.length-1;a>=0;a--)this.collapseChangeListeners[a](this.collapsed)}addOnCollapseListener(a){this.collapseChangeListeners.push(a)}removeOnCollapseListener(a){this.collapseChangeListeners.splice(this.collapseChangeListeners.indexOf(a),1)}isEditable(){return this.editable}setEditable(a){(this.editable=a)?(n(this.svgRoot,"blocklyEditable"),Ma(this.svgRoot,"blocklyReadonly")):(Ma(this.svgRoot,"blocklyEditable"),n(this.svgRoot,"blocklyReadonly"));this.commentEditor.setEditable(a)}getRelativeToSurfaceXY(){return this.location}moveTo(a){this.location=
1108
1109
  a;this.svgRoot.setAttribute("transform",`translate(${a.x}, ${a.y})`)}getText(){return this.commentEditor.getText()}setText(a){this.commentEditor.setText(a)}setPlaceholderText(a){this.commentEditor.setPlaceholderText(a)}addTextChangeListener(a){this.commentEditor.addTextChangeListener(a)}removeTextChangeListener(a){this.commentEditor.removeTextChangeListener(a)}updateTextPreview(a){this.textPreviewNode.textContent=this.truncateText(a)}truncateText(a){return a.length>=12?`${a.substring(0,9)}...`:a}bringToFront(){var a=
1109
- this.svgRoot.parentNode,b=a.childNodes;b[b.length-1]!==this.svgRoot&&a.appendChild(this.svgRoot)}onDeleteDown(a){ha=null;oa(a)||this.dispose();a.stopPropagation()}dispose(){this.disposing=!0;Oa(this.svgRoot);for(let a=this.disposeListeners.length-1;a>=0;a--)this.disposeListeners[a]();this.disposeListeners.length=0;this.disposed=!0}isDisposed(){return this.disposed}isDeadOrDying(){return this.disposing||this.disposed}addDisposeListener(a){this.disposeListeners.push(a)}removeDisposeListener(a){this.disposeListeners.splice(this.disposeListeners.indexOf(a),
1110
- 1)}getCommentBarButtons(){return[this.foldoutButton,this.deleteButton]}};gn.defaultCommentSize=new hc(120,100);ta("\n.injectionDiv {\n --commentFillColour: #FFFCC7;\n --commentBorderColour: #F2E49B;\n}\n\n.blocklyComment .blocklyTextarea {\n background-color: var(--commentFillColour);\n border: 1px solid var(--commentBorderColour);\n box-sizing: border-box;\n display: block;\n outline: 0;\n padding: 5px;\n resize: none;\n width: 100%;\n height: 100%;\n}\n\n.blocklyReadonly.blocklyComment .blocklyTextarea {\n cursor: inherit;\n}\n\n.blocklyDeleteIcon {\n width: 20px;\n height: 20px;\n display: none;\n cursor: pointer;\n}\n\n.blocklyFoldoutIcon {\n width: 20px;\n height: 20px;\n transform-origin: 12px 12px;\n cursor: pointer;\n}\n.blocklyResizeHandle {\n width: 12px;\n height: 12px;\n cursor: se-resize;\n}\n.blocklyReadonly.blocklyComment .blocklyResizeHandle {\n cursor: inherit;\n}\n\n.blocklyCommentTopbarBackground {\n fill: var(--commentBorderColour);\n height: 24px;\n}\n\n.blocklyComment .blocklyCommentPreview.blocklyText {\n fill: #000;\n dominant-baseline: middle;\n visibility: hidden;\n}\n\n.blocklyCollapsed.blocklyComment .blocklyCommentPreview {\n visibility: visible;\n}\n\n.blocklyCollapsed.blocklyComment .blocklyCommentForeignObject,\n.blocklyCollapsed.blocklyComment .blocklyResizeHandle {\n display: none;\n}\n\n.blocklyCollapsed.blocklyComment .blocklyFoldoutIcon {\n transform: rotate(-90deg);\n}\n\n.blocklyRTL .blocklyCommentTopbar {\n transform: scale(-1, 1);\n}\n\n.blocklyRTL .blocklyCommentForeignObject {\n direction: rtl;\n}\n\n.blocklyRTL .blocklyCommentPreview {\n /* Revert the scale and control RTL using direction instead. */\n transform: scale(-1, 1);\n direction: rtl;\n}\n\n.blocklyRTL .blocklyResizeHandle {\n transform: scale(-1, 1);\n cursor: sw-resize;\n}\n\n.blocklyCommentHighlight {\n fill: none;\n}\n\n.blocklyCommentText.blocklyActiveFocus {\n border-color: #fc3;\n border-width: 2px;\n}\n\n.blocklySelected .blocklyCommentHighlight {\n stroke: #fc3;\n stroke-width: 3px;\n}\n\n.blocklyCollapsed.blocklySelected .blocklyCommentHighlight {\n stroke: none;\n}\n\n.blocklyCollapsed.blocklySelected .blocklyCommentTopbarBackground {\n stroke: #fc3;\n stroke-width: 3px;\n}\n");var dh=class{constructor(a,b){this.workspace=a;this.text="";this.collapsed=!1;this.deletable=this.movable=this.editable=!0;this.location=new D(0,0);this.disposing=this.disposed=!1;this.id=b&&!a.getCommentById(b)?b:Nb();this.size=gn.defaultCommentSize;a.addTopComment(this);this.fireCreateEvent()}fireCreateEvent(){Vb()&&w(new (u(v.COMMENT_CREATE))(this))}fireDeleteEvent(){Vb()&&w(new (u(v.COMMENT_DELETE))(this))}fireChangeEvent(a,b){Vb()&&w(new (u(v.COMMENT_CHANGE))(this,a,b))}fireCollapseEvent(a){Vb()&&
1110
+ this.svgRoot.parentNode,b=a.childNodes;b[b.length-1]!==this.svgRoot&&a.appendChild(this.svgRoot)}onDeleteDown(a){ha=null;na(a)||this.dispose();a.stopPropagation()}dispose(){this.disposing=!0;Oa(this.svgRoot);for(let a=this.disposeListeners.length-1;a>=0;a--)this.disposeListeners[a]();this.disposeListeners.length=0;this.disposed=!0}isDisposed(){return this.disposed}isDeadOrDying(){return this.disposing||this.disposed}addDisposeListener(a){this.disposeListeners.push(a)}removeDisposeListener(a){this.disposeListeners.splice(this.disposeListeners.indexOf(a),
1111
+ 1)}getCommentBarButtons(){return[this.foldoutButton,this.deleteButton]}};hn.defaultCommentSize=new hc(120,100);ta("\n.injectionDiv {\n --commentFillColour: #FFFCC7;\n --commentBorderColour: #F2E49B;\n}\n\n.blocklyComment .blocklyTextarea {\n background-color: var(--commentFillColour);\n border: 1px solid var(--commentBorderColour);\n box-sizing: border-box;\n display: block;\n outline: 0;\n padding: 5px;\n resize: none;\n width: 100%;\n height: 100%;\n}\n\n.blocklyReadonly.blocklyComment .blocklyTextarea {\n cursor: inherit;\n}\n\n.blocklyDeleteIcon {\n width: 20px;\n height: 20px;\n display: none;\n cursor: pointer;\n}\n\n.blocklyFoldoutIcon {\n width: 20px;\n height: 20px;\n transform-origin: 12px 12px;\n cursor: pointer;\n}\n.blocklyResizeHandle {\n width: 12px;\n height: 12px;\n cursor: se-resize;\n}\n.blocklyReadonly.blocklyComment .blocklyResizeHandle {\n cursor: inherit;\n}\n\n.blocklyCommentTopbarBackground {\n fill: var(--commentBorderColour);\n height: 24px;\n}\n\n.blocklyComment .blocklyCommentPreview.blocklyText {\n fill: #000;\n dominant-baseline: middle;\n visibility: hidden;\n}\n\n.blocklyCollapsed.blocklyComment .blocklyCommentPreview {\n visibility: visible;\n}\n\n.blocklyCollapsed.blocklyComment .blocklyCommentForeignObject,\n.blocklyCollapsed.blocklyComment .blocklyResizeHandle {\n display: none;\n}\n\n.blocklyCollapsed.blocklyComment .blocklyFoldoutIcon {\n transform: rotate(-90deg);\n}\n\n.blocklyRTL .blocklyCommentTopbar {\n transform: scale(-1, 1);\n}\n\n.blocklyRTL .blocklyCommentForeignObject {\n direction: rtl;\n}\n\n.blocklyRTL .blocklyCommentPreview {\n /* Revert the scale and control RTL using direction instead. */\n transform: scale(-1, 1);\n direction: rtl;\n}\n\n.blocklyRTL .blocklyResizeHandle {\n transform: scale(-1, 1);\n cursor: sw-resize;\n}\n\n.blocklyCommentHighlight {\n fill: none;\n}\n\n.blocklyCommentText.blocklyActiveFocus {\n border-color: #fc3;\n border-width: 2px;\n}\n\n.blocklySelected .blocklyCommentHighlight {\n stroke: #fc3;\n stroke-width: 3px;\n}\n\n.blocklyCollapsed.blocklySelected .blocklyCommentHighlight {\n stroke: none;\n}\n\n.blocklyCollapsed.blocklySelected .blocklyCommentTopbarBackground {\n stroke: #fc3;\n stroke-width: 3px;\n}\n");var eh=class{constructor(a,b){this.workspace=a;this.text="";this.collapsed=!1;this.deletable=this.movable=this.editable=!0;this.location=new D(0,0);this.disposing=this.disposed=!1;this.id=b&&!a.getCommentById(b)?b:Nb();this.size=hn.defaultCommentSize;a.addTopComment(this);this.fireCreateEvent()}fireCreateEvent(){Vb()&&w(new (u(v.COMMENT_CREATE))(this))}fireDeleteEvent(){Vb()&&w(new (u(v.COMMENT_DELETE))(this))}fireChangeEvent(a,b){Vb()&&w(new (u(v.COMMENT_CHANGE))(this,a,b))}fireCollapseEvent(a){Vb()&&
1111
1112
  w(new (u(v.COMMENT_COLLAPSE))(this,a))}setText(a){var b=this.text;this.text=a;this.fireChangeEvent(b,a)}getText(){return this.text}setSize(a){var b=new (u(v.COMMENT_RESIZE))(this);this.size=a;b.recordCurrentSizeAsNewSize();w(b)}getSize(){return this.size}setCollapsed(a){this.collapsed=a;this.fireCollapseEvent(a)}isCollapsed(){return this.collapsed}setEditable(a){this.editable=a}isEditable(){return this.isOwnEditable()&&!this.workspace.isReadOnly()}isOwnEditable(){return this.editable}setMovable(a){this.movable=
1112
1113
  a}isMovable(){return this.isOwnMovable()&&!this.workspace.isReadOnly()&&!this.workspace.isFlyout}isOwnMovable(){return this.movable}setDeletable(a){this.deletable=a}isDeletable(){return this.isOwnDeletable()&&!this.isDeadOrDying()&&!this.workspace.isReadOnly()&&!this.workspace.isFlyout}isOwnDeletable(){return this.deletable}moveTo(a,b){var c=new (u(v.COMMENT_MOVE))(this);b&&c.setReason(b);this.location=a;c.recordNew();w(c)}getRelativeToSurfaceXY(){return this.location.clone()}dispose(){this.disposing=
1113
- !0;this.fireDeleteEvent();this.workspace.removeTopComment(this);this.disposed=!0}isDisposed(){return this.disposed}isDeadOrDying(){return this.disposing||this.disposed}};var ch=class extends dh{constructor(a,b){super(a,b);this.dragStrategy=new bn(this);this.workspace=a;this.view=new gn(a,this.id);this.view.getEditorFocusableNode().setParent(this);this.view.setSize(this.getSize());this.view.setEditable(this.isEditable());this.view.getSvgRoot().setAttribute("data-id",this.id);this.view.getSvgRoot().setAttribute("id",this.id);this.addModelUpdateBindings();k(this.view.getSvgRoot(),"pointerdown",this,this.startGesture)}addModelUpdateBindings(){this.view.addTextChangeListener((a,
1114
+ !0;this.fireDeleteEvent();this.workspace.removeTopComment(this);this.disposed=!0}isDisposed(){return this.disposed}isDeadOrDying(){return this.disposing||this.disposed}};var dh=class extends eh{constructor(a,b){super(a,b);this.dragStrategy=new cn(this);this.workspace=a;this.view=new hn(a,this.id);this.view.getEditorFocusableNode().setParent(this);this.view.setSize(this.getSize());this.view.setEditable(this.isEditable());this.view.getSvgRoot().setAttribute("data-id",this.id);this.view.getSvgRoot().setAttribute("id",this.id);this.addModelUpdateBindings();k(this.view.getSvgRoot(),"pointerdown",this,this.startGesture)}addModelUpdateBindings(){this.view.addTextChangeListener((a,
1114
1115
  b)=>void super.setText(b));this.view.addSizeChangeListener((a,b)=>void super.setSize(b));this.view.addOnCollapseListener(()=>void super.setCollapsed(this.view.isCollapsed()));this.view.addDisposeListener(()=>{this.isDeadOrDying()||this.dispose()})}setText(a){this.view.setText(a)}setPlaceholderText(a){this.view.setPlaceholderText(a)}setSize(a){this.view.setSize(a)}setCollapsed(a){this.view.setCollapsed(a)}setEditable(a){super.setEditable(a);this.view.setEditable(this.isEditable())}getSvgRoot(){return this.view.getSvgRoot()}getSize(){return super.getSize()}getBoundingRectangle(){var a=
1115
1116
  this.getRelativeToSurfaceXY(),b,c,d=(c=(b=this.view)==null?void 0:b.getSize())!=null?c:this.getSize();this.workspace.RTL?(b=a.x-d.width,c=a.x):(b=a.x,c=a.x+d.width);return new cc(a.y,a.y+d.height,b,c)}moveBy(a,b,c){var d=this.getRelativeToSurfaceXY();a=new D(d.x+a,d.y+b);this.moveTo(a,c)}moveTo(a,b){super.moveTo(a,b);this.view.moveTo(a)}moveDuringDrag(a){this.location=a;this.view.moveTo(a)}setDragging(a){a?n(this.getSvgRoot(),"blocklyDragging"):Ma(this.getSvgRoot(),"blocklyDragging")}dispose(){this.disposing=
1116
1117
  !0;var a=$.t();a.getFocusedNode()===this&&setTimeout(()=>a.focusTree(this.workspace),0);this.view.isDeadOrDying()||this.view.dispose();super.dispose()}startGesture(a){var b=this.workspace.getGesture(a);b&&(b.handleCommentStart(a,this),$.t().focusNode(this))}setDeleteStyle(a){a?n(this.getSvgRoot(),"blocklyDraggingDelete"):Ma(this.getSvgRoot(),"blocklyDraggingDelete")}isCopyable(){return this.isOwnMovable()&&this.isOwnDeletable()}isMovable(){return this.dragStrategy.isMovable()}startDrag(){return this.dragStrategy.startDrag()}drag(a){this.dragStrategy.drag(a)}endDrag(){this.dragStrategy.endDrag()}revertDrag(){this.dragStrategy.revertDrag()}select(){n(this.getSvgRoot(),
1117
- "blocklySelected");ob(this)}unselect(){Ma(this.getSvgRoot(),"blocklySelected");ob(null)}toCopyData(){return{paster:ul.TYPE,commentState:Pc(this,{addCoordinates:!0,saveIds:!1})}}showContextMenu(a){var b=Jj.registry.getContextMenuOptions({comment:this,focusedNode:this},a);var c=a instanceof PointerEvent?new D(a.clientX,a.clientY):pc(this.workspace,this.getRelativeToSurfaceXY()).translate(10,10);Gg(a,b,this.workspace.RTL,this.workspace,c)}snapToGrid(){if(!this.isDeadOrDying()){var a=this.workspace.getGrid();
1118
+ "blocklySelected");ob(this)}unselect(){Ma(this.getSvgRoot(),"blocklySelected");ob(null)}toCopyData(){return{paster:vl.TYPE,commentState:Pc(this,{addCoordinates:!0,saveIds:!1})}}showContextMenu(a){var b=Kj.registry.getContextMenuOptions({comment:this,focusedNode:this},a);var c=a instanceof PointerEvent?new D(a.clientX,a.clientY):pc(this.workspace,this.getRelativeToSurfaceXY()).translate(10,10);Hg(a,b,this.workspace.RTL,this.workspace,c)}snapToGrid(){if(!this.isDeadOrDying()){var a=this.workspace.getGrid();
1118
1119
  if(a!=null&&a.shouldSnap()){var b=this.getRelativeToSurfaceXY();a=a.alignXY(b);a!==b&&this.moveTo(a,["snap"])}}}getEditorFocusableNode(){return this.view.getEditorFocusableNode()}getFocusableElement(){return this.getSvgRoot()}getFocusableTree(){return this.workspace}onNodeFocus(){this.select();var a;(a=this.getSvgRoot().parentElement)==null||a.appendChild(this.getSvgRoot());this.workspace.scrollBoundsIntoView(this.getBoundingRectangle())}onNodeBlur(){this.unselect()}canBeFocused(){return!0}performAction(){this.setCollapsed(!1);
1119
- $.t().focusNode(this.getEditorFocusableNode())}};var hn={appendDomToWorkspace:function(a,b){if(!b.getBlocksBoundingBox)return $.bh(a,b);var c=b.getBlocksBoundingBox();a=$.bh(a,b);if(c&&c.top!==c.bottom){var d=c.bottom;c=b.RTL?c.right:c.left;var e=Infinity;let f=-Infinity,g=Infinity;for(let h=0;h<a.length;h++){let m=b.getBlockById(a[h]).getRelativeToSurfaceXY();m.y<g&&(g=m.y);m.x<e&&(e=m.x);m.x>f&&(f=m.x)}d=d-g+10;c=b.RTL?c-f:c-e;for(e=0;e<a.length;e++)b.getBlockById(a[e]).moveBy(c,d,["create"])}return a}};hn.blockToDom=Vg;hn.blockToDomWithXY=Xg;
1120
- hn.clearWorkspaceAndLoadFromXml=function(a,b){b.setResizesEnabled(!1);b.clear();a=$.bh(a,b);b.setResizesEnabled(!0);return a};hn.deleteNext=function(a){for(let b=0;b<a.childNodes.length;b++){let c=a.childNodes[b];if(c.nodeName.toLowerCase()==="next"){a.removeChild(c);break}}};hn.domToBlock=$.eh;hn.domToBlockInternal=Mg;
1121
- hn.domToPrettyText=function(a){a=$d(a).split("<");var b="";for(let c=1;c<a.length;c++){let d=a[c];d[0]==="/"&&(b=b.substring(2));a[c]=b+"<"+d;d[0]!=="/"&&d.slice(-2)!=="/>"&&(b+=" ")}a=a.join("\n");a=a.replace(/(<(\w+)\b[^>]*>[^\n]*)\n *<\/\2>/g,"$1</$2>");return a.replace(/^\n/,"")};hn.domToText=$d;hn.domToVariables=ah;hn.domToWorkspace=$.bh;hn.loadWorkspaceComment=$g;hn.saveWorkspaceComment=Tg;hn.variablesToDom=Ug;
1122
- hn.workspaceToDom=function(a,b=!1){var c=$.rc("xml"),d=Ug($.Bd(a));d.hasChildNodes()&&c.appendChild(d);for(let e of a.getTopComments())c.appendChild(Tg(e,b));a=a.getTopBlocks(!0);for(d=0;d<a.length;d++)c.appendChild(Xg(a[d],b));return c};var jh={fromJsonInternal:function(a){var b=Fb(y.FIELD,a.type,void 0);return b?b.fromJson(a):(console.warn("Blockly could not create a field of type "+a.type+". The field is probably not being registered. This could be because the file is not loaded, the field does not register itself (Issue #1584), or the registration is not being reached."),null)}},jn={TEST_ONLY:jh};jn.fromJson=$.kh;jn.register=ih;jn.unregister=function(a){Eb(y.FIELD,a)};var yh=class extends qg{constructor(a,b,c){super(qg.SKIP_SETUP);this.svgArrow=this.arrow=this.imageElement=this.menu_=this.selectedMenuItem=null;this.SERIALIZABLE=!0;this.clickTarget_=this.suffixField=this.prefixField=this.generatedOptions=null;this.isInitialized=!1;a!==qg.SKIP_SETUP&&(this.setOptions(a),c&&this.configure_(c),b&&this.setValidator(b))}fromXml(a){this.isOptionListDynamic()&&this.getOptions(!1);this.setValue(a.textContent)}loadState(a){this.loadLegacyState(yh,a)||(this.isOptionListDynamic()&&
1120
+ $.t().focusNode(this.getEditorFocusableNode())}};var jn={appendDomToWorkspace:function(a,b){if(!b.getBlocksBoundingBox)return $.ch(a,b);var c=b.getBlocksBoundingBox();a=$.ch(a,b);if(c&&c.top!==c.bottom){var d=c.bottom;c=b.RTL?c.right:c.left;var e=Infinity;let f=-Infinity,g=Infinity;for(let h=0;h<a.length;h++){let m=b.getBlockById(a[h]).getRelativeToSurfaceXY();m.y<g&&(g=m.y);m.x<e&&(e=m.x);m.x>f&&(f=m.x)}d=d-g+10;c=b.RTL?c-f:c-e;for(e=0;e<a.length;e++)b.getBlockById(a[e]).moveBy(c,d,["create"])}return a}};jn.blockToDom=Wg;jn.blockToDomWithXY=Yg;
1121
+ jn.clearWorkspaceAndLoadFromXml=function(a,b){b.setResizesEnabled(!1);b.clear();a=$.ch(a,b);b.setResizesEnabled(!0);return a};jn.deleteNext=function(a){for(let b=0;b<a.childNodes.length;b++){let c=a.childNodes[b];if(c.nodeName.toLowerCase()==="next"){a.removeChild(c);break}}};jn.domToBlock=$.fh;jn.domToBlockInternal=Ng;
1122
+ jn.domToPrettyText=function(a){a=ae(a).split("<");var b="";for(let c=1;c<a.length;c++){let d=a[c];d[0]==="/"&&(b=b.substring(2));a[c]=b+"<"+d;d[0]!=="/"&&d.slice(-2)!=="/>"&&(b+=" ")}a=a.join("\n");a=a.replace(/(<(\w+)\b[^>]*>[^\n]*)\n *<\/\2>/g,"$1</$2>");return a.replace(/^\n/,"")};jn.domToText=ae;jn.domToVariables=bh;jn.domToWorkspace=$.ch;jn.loadWorkspaceComment=ah;jn.saveWorkspaceComment=Ug;jn.variablesToDom=Vg;
1123
+ jn.workspaceToDom=function(a,b=!1){var c=$.rc("xml"),d=Vg($.Bd(a));d.hasChildNodes()&&c.appendChild(d);for(let e of a.getTopComments())c.appendChild(Ug(e,b));a=a.getTopBlocks(!0);for(d=0;d<a.length;d++)c.appendChild(Yg(a[d],b));return c};var kh={fromJsonInternal:function(a){var b=Fb(y.FIELD,a.type,void 0);return b?b.fromJson(a):(console.warn("Blockly could not create a field of type "+a.type+". The field is probably not being registered. This could be because the file is not loaded, the field does not register itself (Issue #1584), or the registration is not being reached."),null)}},kn={TEST_ONLY:kh};kn.fromJson=$.lh;kn.register=jh;kn.unregister=function(a){Eb(y.FIELD,a)};var zh=class extends rg{constructor(a,b,c){super(rg.SKIP_SETUP);this.svgArrow=this.arrow=this.imageElement=this.menu_=this.selectedMenuItem=null;this.SERIALIZABLE=!0;this.clickTarget_=this.suffixField=this.prefixField=this.generatedOptions=null;this.isInitialized=!1;a!==rg.SKIP_SETUP&&(this.setOptions(a),c&&this.configure_(c),b&&this.setValidator(b))}fromXml(a){this.isOptionListDynamic()&&this.getOptions(!1);this.setValue(a.textContent)}loadState(a){this.loadLegacyState(zh,a)||(this.isOptionListDynamic()&&
1123
1124
  this.getOptions(!1),this.setValue(a))}initView(){this.shouldAddBorderRect_()?this.createBorderRect_():this.clickTarget_=this.sourceBlock_.getSvgRoot();this.createTextElement_();this.imageElement=r(q.IMAGE,{},this.fieldGroup_);this.getConstants().FIELD_DROPDOWN_SVG_ARROW?this.createSVGArrow_():this.createTextArrow_();this.borderRect_&&n(this.borderRect_,"blocklyDropdownRect");this.fieldGroup_&&(n(this.fieldGroup_,"blocklyField"),n(this.fieldGroup_,"blocklyDropdownField"));this.recomputeAriaContext();
1124
- this.isInitialized=!0}isFullBlockField(){var a;return!this.shouldAddBorderRect_()&&!((a=this.getSourceBlock())==null||!a.isSimpleReporter())}shouldAddBorderRect_(){var a;return!this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW||this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW&&!((a=this.getSourceBlock())==null?0:a.isShadow())}createTextArrow_(){this.arrow=r(q.TSPAN,{},this.textElement_);var a;this.arrow.appendChild(document.createTextNode(((a=this.getSourceBlock())==null?0:a.RTL)?yh.ARROW_CHAR+
1125
- " ":" "+yh.ARROW_CHAR));this.getConstants().FIELD_TEXT_BASELINE_CENTER&&this.arrow.setAttribute("dominant-baseline","central");var b;((b=this.getSourceBlock())==null?0:b.RTL)?this.getTextElement().insertBefore(this.arrow,this.textContent_):this.getTextElement().appendChild(this.arrow)}createSVGArrow_(){this.svgArrow=r(q.IMAGE,{height:this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE+"px",width:this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE+"px"},this.fieldGroup_);this.svgArrow.setAttributeNS("http://www.w3.org/1999/xlink",
1126
- "xlink:href",this.getConstants().FIELD_DROPDOWN_SVG_ARROW_DATAURI)}showEditor_(a){var b=this.getSourceBlock();if(!b)throw new kj;this.dropdownCreate();this.menu_&&(this.menu_.openingCoords=a&&typeof a.clientX==="number"?new D(a.clientX,a.clientY):null,We(),a=this.menu_.render(Pe),n(a,"blocklyDropdownMenu"),this.getConstants().FIELD_DROPDOWN_COLOURED_DIV&&(b=b.getColour(),a=this.sourceBlock_.getColourTertiary(),Xe(b,a)),af(this,this.dropdownDispose_.bind(this)),Pe.style.height=`${this.menu_.getSize().height}px`,
1127
- this.menu_.focus(),this.selectedMenuItem&&this.menu_.setHighlighted(this.selectedMenuItem),this.applyColour(),l(this.getFocusableElement(),p.EXPANDED,!0))}dropdownCreate(){var a=this.getSourceBlock();if(!a)throw new kj;var b=new Hg;b.setRole(Ka.LISTBOX);this.menu_=b;l(this.getFocusableElement(),p.CONTROLS,this.menu_.getId());var c=this.getOptions(!1);this.selectedMenuItem=null;for(let f=0;f<c.length;f++){var d=c[f];if(d===yh.SEPARATOR){b.addChild(new Ig);continue}let [g,h]=d;d=this.computeOptionAriaLabel(d,
1128
- f);if(lh(g)){var e=new Image(g.width,g.height);e.src=g.src;e.alt=g.alt}else e=g;d=new Jg(e,h,d);d.setRole(Ka.OPTION);d.setRightToLeft(a.RTL);d.setCheckable(!0);b.addChild(d);d.setChecked(h===this.value_);h===this.value_&&(this.selectedMenuItem=d);d.onAction(this.handleMenuActionEvent,this)}}dropdownDispose_(){this.menu_&&this.menu_.dispose();this.selectedMenuItem=this.menu_=null;this.applyColour();l(this.getFocusableElement(),p.EXPANDED,!1)}handleMenuActionEvent(a){of(this,!0);this.onItemSelected_(this.menu_,
1125
+ this.isInitialized=!0}isFullBlockField(){var a;return!this.shouldAddBorderRect_()&&!((a=this.getSourceBlock())==null||!a.isSimpleReporter())}shouldAddBorderRect_(){var a;return!this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW||this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW&&!((a=this.getSourceBlock())==null?0:a.isShadow())}createTextArrow_(){this.arrow=r(q.TSPAN,{},this.textElement_);var a;this.arrow.appendChild(document.createTextNode(((a=this.getSourceBlock())==null?0:a.RTL)?zh.ARROW_CHAR+
1126
+ " ":" "+zh.ARROW_CHAR));this.getConstants().FIELD_TEXT_BASELINE_CENTER&&this.arrow.setAttribute("dominant-baseline","central");var b;((b=this.getSourceBlock())==null?0:b.RTL)?this.getTextElement().insertBefore(this.arrow,this.textContent_):this.getTextElement().appendChild(this.arrow)}createSVGArrow_(){this.svgArrow=r(q.IMAGE,{height:this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE+"px",width:this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE+"px"},this.fieldGroup_);this.svgArrow.setAttributeNS("http://www.w3.org/1999/xlink",
1127
+ "xlink:href",this.getConstants().FIELD_DROPDOWN_SVG_ARROW_DATAURI)}showEditor_(a){var b=this.getSourceBlock();if(!b)throw new lj;this.dropdownCreate();this.menu_&&(this.menu_.openingCoords=a&&typeof a.clientX==="number"?new D(a.clientX,a.clientY):null,Xe(),a=this.menu_.render(Qe),n(a,"blocklyDropdownMenu"),this.getConstants().FIELD_DROPDOWN_COLOURED_DIV&&(b=b.getColour(),a=this.sourceBlock_.getColourTertiary(),Ye(b,a)),bf(this,this.dropdownDispose_.bind(this)),Qe.style.height=`${this.menu_.getSize().height}px`,
1128
+ this.menu_.focus(),this.selectedMenuItem&&this.menu_.setHighlighted(this.selectedMenuItem),this.applyColour(),l(this.getFocusableElement(),p.EXPANDED,!0))}dropdownCreate(){var a=this.getSourceBlock();if(!a)throw new lj;var b=new Ig;b.setRole(Ka.LISTBOX);this.menu_=b;l(this.getFocusableElement(),p.CONTROLS,this.menu_.getId());var c=this.getOptions(!1);this.selectedMenuItem=null;for(let f=0;f<c.length;f++){var d=c[f];if(d===zh.SEPARATOR){b.addChild(new Jg);continue}let [g,h]=d;d=this.computeOptionAriaLabel(d,
1129
+ f);if(mh(g)){var e=new Image(g.width,g.height);e.src=g.src;e.alt=g.alt}else e=g;d=new Kg(e,h,d);d.setRole(Ka.OPTION);d.setRightToLeft(a.RTL);d.setCheckable(!0);b.addChild(d);d.setChecked(h===this.value_);h===this.value_&&(this.selectedMenuItem=d);d.onAction(this.handleMenuActionEvent,this)}}dropdownDispose_(){this.menu_&&this.menu_.dispose();this.selectedMenuItem=this.menu_=null;this.applyColour();l(this.getFocusableElement(),p.EXPANDED,!1)}handleMenuActionEvent(a){pf(this,!0);this.onItemSelected_(this.menu_,
1129
1130
  a)}onItemSelected_(a,b){this.setValue(b.getValue())}isOptionListDynamic(){return typeof this.menuGenerator_==="function"}getOptions(a){if(!this.menuGenerator_)throw TypeError("A menu generator was never defined.");if(Array.isArray(this.menuGenerator_))return this.menuGenerator_;if(a&&this.generatedOptions)return this.generatedOptions;this.generatedOptions=this.menuGenerator_();this.validateOptions(this.generatedOptions);return this.generatedOptions}setOptions(a){Array.isArray(a)?(this.validateOptions(a),
1130
1131
  a=this.trimOptions(a),this.menuGenerator_=a.options,this.prefixField=a.prefix||null,this.suffixField=a.suffix||null):this.menuGenerator_=a;this.selectedOption=this.getOptions(!1)[0];this.setValue(this.selectedOption[1])}doClassValidation_(a){return this.getOptions(!0).some(b=>b[1]===a)?a:(this.sourceBlock_&&console.warn("Cannot set the dropdown's value to an unavailable option. Block type: "+this.sourceBlock_.type+", Field name: "+this.name+", Value: "+a),null)}doValueUpdate_(a){super.doValueUpdate_(a);
1131
1132
  a=this.getOptions(!0);for(let b=0,c;c=a[b];b++)c[1]===this.value_&&(this.selectedOption=c);this.isInitialized&&this.recomputeAriaContext()}applyColour(){var a=this.sourceBlock_;this.borderRect_&&(this.borderRect_.setAttribute("stroke",a.getColourTertiary()),this.menu_?this.borderRect_.setAttribute("fill",a.getColourTertiary()):this.borderRect_.setAttribute("fill","transparent"));a&&this.arrow&&(a.isShadow()?this.arrow.style.fill=a.getColourSecondary():this.arrow.style.fill=a.getColour())}render_(){this.getTextContent().nodeValue=
1132
- "";this.imageElement.style.display="none";var a=this.selectedOption&&this.selectedOption[0];lh(a)?this.renderSelectedImage(a):this.renderSelectedText();this.positionBorderRect_()}renderSelectedImage(a){var b=this.getSourceBlock();if(!b)throw new kj;this.imageElement.style.display="";this.imageElement.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a.src);this.imageElement.setAttribute("height",String(a.height));this.imageElement.setAttribute("width",String(a.width));var c=Number(a.height);
1133
- a=Number(a.width);var d=!!this.borderRect_,e=Math.max(d?this.getConstants().FIELD_DROPDOWN_BORDER_RECT_HEIGHT:0,c+yh.IMAGE_Y_PADDING);d=d?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;var f=this.svgArrow?this.positionSVGArrow(a+d,e/2-this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE/2):Wa(this.arrow);this.size_=new hc(a+f+d*2,e);var g=0;b.RTL?this.imageElement.setAttribute("x",`${d+f}`):(g=a+f,this.getTextElement().setAttribute("text-anchor","end"),this.imageElement.setAttribute("x",`${d}`));
1133
+ "";this.imageElement.style.display="none";var a=this.selectedOption&&this.selectedOption[0];mh(a)?this.renderSelectedImage(a):this.renderSelectedText();this.positionBorderRect_()}renderSelectedImage(a){var b=this.getSourceBlock();if(!b)throw new lj;this.imageElement.style.display="";this.imageElement.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a.src);this.imageElement.setAttribute("height",String(a.height));this.imageElement.setAttribute("width",String(a.width));var c=Number(a.height);
1134
+ a=Number(a.width);var d=!!this.borderRect_,e=Math.max(d?this.getConstants().FIELD_DROPDOWN_BORDER_RECT_HEIGHT:0,c+zh.IMAGE_Y_PADDING);d=d?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;var f=this.svgArrow?this.positionSVGArrow(a+d,e/2-this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE/2):Wa(this.arrow);this.size_=new hc(a+f+d*2,e);var g=0;b.RTL?this.imageElement.setAttribute("x",`${d+f}`):(g=a+f,this.getTextElement().setAttribute("text-anchor","end"),this.imageElement.setAttribute("x",`${d}`));
1134
1135
  this.imageElement.setAttribute("y",String(e/2-c/2));this.positionTextElement_(g+d,a+f)}renderSelectedText(){this.getTextContent().nodeValue=this.getDisplayText_();var a=this.getTextElement();n(a,"blocklyDropdownText");a.setAttribute("text-anchor","start");var b=!!this.borderRect_;a=Math.max(b?this.getConstants().FIELD_DROPDOWN_BORDER_RECT_HEIGHT:0,this.getConstants().FIELD_TEXT_HEIGHT);var c=Wa(this.getTextElement());b=b?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;var d=0;this.svgArrow&&(d=
1135
- this.positionSVGArrow(c+b,a/2-this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE/2));this.size_=new hc(c+d+b*2,a);this.positionTextElement_(b,c)}positionSVGArrow(a,b){if(!this.svgArrow)return 0;var c=this.getSourceBlock();if(!c)throw new kj;var d=this.borderRect_?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0,e=this.getConstants().FIELD_DROPDOWN_SVG_ARROW_PADDING,f=this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE;this.svgArrow.setAttribute("transform","translate("+(c.RTL?d:a+e)+","+b+")");return f+
1136
- e}getText_(){if(!this.selectedOption)return null;var a=this.selectedOption[0];if(lh(a))return a.alt;if(typeof HTMLElement!=="undefined"&&a instanceof HTMLElement){let b;return a.title||((b=a.ariaLabel)!=null?b:a.innerText)}if(typeof a==="string")return a;console.warn("Can't get text for existing dropdown option. If you're using HTMLElement dropdown options in node, ensure you're using jsdom-global or similar.");return null}static fromJson(a){if(!a.options)throw Error("options are required for the dropdown field. The options property must be assigned an array of [humanReadableValue, languageNeutralValue] tuples.");
1137
- return new this(a.options,void 0,a)}trimOptions(a){var b=!1,c=a.map(g=>{if(g===yh.SEPARATOR)return b=!0,g;var [h,m,z]=g;if(typeof h==="string")return g=[gg(h),m],z&&g.push(gg(z)),g;b=!0;g=[lh(h)?Object.assign({},h,{alt:gg(h.alt)}):h,m];z&&g.push(gg(z));return g});if(b||a.length<2)return{options:c};var d=c.map(([g])=>g),e=sf(d);a=tf(d,e);var f=uf(d,e);if(!a&&!f||e<=a+f)return{options:c};e=a?d[0].substring(0,a-1):void 0;d=f?d[0].substr(1-f):void 0;return{options:this.applyTrim(c,a,f),prefix:e,suffix:d}}applyTrim(a,
1138
- b,c){return a.map(([d,e,f])=>{d=d.substring(b,d.length-c);return f!==void 0?[d,e,f]:[d,e]})}validateOptions(a){if(!Array.isArray(a))throw TypeError("FieldDropdown options must be an array.");if(!a.length)throw TypeError("FieldDropdown options must not be an empty array.");var b=!1;for(let c=0;c<a.length;c++){let d=a[c];Array.isArray(d)||d===yh.SEPARATOR?typeof d[1]!=="string"?(b=!0,console.error(`Invalid option[${c}]: Each FieldDropdown option id must be a string.
1139
- Found ${d[1]} in: ${d}`)):!d[0]||typeof d[0]==="string"||lh(d[0])||typeof HTMLElement!=="undefined"&&d[0]instanceof HTMLElement?d[2]&&typeof d[2]!=="string"&&(b=!0,console.error(`Invalid option[${c}]: Each FieldDropdown option ARIA label must be a string.
1136
+ this.positionSVGArrow(c+b,a/2-this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE/2));this.size_=new hc(c+d+b*2,a);this.positionTextElement_(b,c)}positionSVGArrow(a,b){if(!this.svgArrow)return 0;var c=this.getSourceBlock();if(!c)throw new lj;var d=this.borderRect_?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0,e=this.getConstants().FIELD_DROPDOWN_SVG_ARROW_PADDING,f=this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE;this.svgArrow.setAttribute("transform","translate("+(c.RTL?d:a+e)+","+b+")");return f+
1137
+ e}getText_(){if(!this.selectedOption)return null;var a=this.selectedOption[0];if(mh(a))return a.alt;if(typeof HTMLElement!=="undefined"&&a instanceof HTMLElement){let b;return a.title||((b=a.ariaLabel)!=null?b:a.innerText)}if(typeof a==="string")return a;console.warn("Can't get text for existing dropdown option. If you're using HTMLElement dropdown options in node, ensure you're using jsdom-global or similar.");return null}static fromJson(a){if(!a.options)throw Error("options are required for the dropdown field. The options property must be assigned an array of [humanReadableValue, languageNeutralValue] tuples.");
1138
+ return new this(a.options,void 0,a)}trimOptions(a){var b=!1,c=a.map(g=>{if(g===zh.SEPARATOR)return b=!0,g;var [h,m,z]=g;if(typeof h==="string")return g=[hg(h),m],z&&g.push(hg(z)),g;b=!0;g=[mh(h)?Object.assign({},h,{alt:hg(h.alt)}):h,m];z&&g.push(hg(z));return g});if(b||a.length<2)return{options:c};var d=c.map(([g])=>g),e=tf(d);a=uf(d,e);var f=vf(d,e);if(!a&&!f||e<=a+f)return{options:c};e=a?d[0].substring(0,a-1):void 0;d=f?d[0].substr(1-f):void 0;return{options:this.applyTrim(c,a,f),prefix:e,suffix:d}}applyTrim(a,
1139
+ b,c){return a.map(([d,e,f])=>{d=d.substring(b,d.length-c);return f!==void 0?[d,e,f]:[d,e]})}validateOptions(a){if(!Array.isArray(a))throw TypeError("FieldDropdown options must be an array.");if(!a.length)throw TypeError("FieldDropdown options must not be an empty array.");var b=!1;for(let c=0;c<a.length;c++){let d=a[c];Array.isArray(d)||d===zh.SEPARATOR?typeof d[1]!=="string"?(b=!0,console.error(`Invalid option[${c}]: Each FieldDropdown option id must be a string.
1140
+ Found ${d[1]} in: ${d}`)):!d[0]||typeof d[0]==="string"||mh(d[0])||typeof HTMLElement!=="undefined"&&d[0]instanceof HTMLElement?d[2]&&typeof d[2]!=="string"&&(b=!0,console.error(`Invalid option[${c}]: Each FieldDropdown option ARIA label must be a string.
1140
1141
  Found ${d[2]} in: ${d}`)):(b=!0,console.error(`Invalid option[${c}]: Each FieldDropdown option must have a string
1141
1142
  label, image description, or HTML element. Found ${d[0]} in: ${d}`)):(b=!0,console.error(`Invalid option[${c}]: Each FieldDropdown option must be an array or
1142
1143
  the string literal 'separator'. Found: ${d}`))}if(b)throw TypeError("Found invalid FieldDropdown options.");}getAriaTypeName(){return this.ariaTypeName||$.C.ARIA_TYPE_FIELD_DROPDOWN}getAriaValue(){return this.getSelectedAriaLabel()||this.getText()||$.C.FIELD_LABEL_EMPTY}getSelectedAriaLabel(){if(!this.selectedOption)return null;var a=this.selectedOption;a=this.computeOptionAriaLabel(a,this.getOptions(!1).indexOf(a));return typeof a==="string"?a:null}recomputeAriaContext(){if(!super.recomputeAriaContext())return!1;
1143
- var a=this.getFocusableElement();l(a,p.HASPOPUP,"listbox");l(a,p.EXPANDED,!!this.menu_);return!0}computeOptionAriaLabel(a,b){if(a===yh.SEPARATOR)return"";var [c,,d]=a;if(typeof d==="string"&&d.trim())return d;a=null;if(lh(c)){let e;a=(e=c.ariaLabel)!=null?e:c.alt}else if(typeof HTMLElement!=="undefined"&&c instanceof HTMLElement){let e;a=(e=c.ariaLabel)!=null?e:c.title||c.innerText}else typeof c==="string"&&(a=c);return a&&a.trim()?a:$.C.FIELD_LABEL_OPTION_INDEX.replace("%1",String(b+1))}};
1144
- yh.SEPARATOR="separator";yh.ARROW_CHAR="\u25be";yh.IMAGE_Y_OFFSET=5;yh.IMAGE_Y_PADDING=yh.IMAGE_Y_OFFSET*2;ih("field_dropdown",yh);var L,O=L||(L={});O[O.WIN_KEY_FF_LINUX=0]="WIN_KEY_FF_LINUX";O[O.MAC_ENTER=3]="MAC_ENTER";O[O.BACKSPACE=8]="BACKSPACE";O[O.TAB=9]="TAB";O[O.NUM_CENTER=12]="NUM_CENTER";O[O.ENTER=13]="ENTER";O[O.SHIFT=16]="SHIFT";O[O.CTRL=17]="CTRL";O[O.ALT=18]="ALT";O[O.PAUSE=19]="PAUSE";O[O.CAPS_LOCK=20]="CAPS_LOCK";O[O.ESC=27]="ESC";O[O.SPACE=32]="SPACE";O[O.PAGE_UP=33]="PAGE_UP";O[O.PAGE_DOWN=34]="PAGE_DOWN";O[O.END=35]="END";O[O.HOME=36]="HOME";O[O.LEFT=37]="LEFT";O[O.UP=38]="UP";O[O.RIGHT=39]="RIGHT";
1144
+ var a=this.getFocusableElement();l(a,p.HASPOPUP,"listbox");l(a,p.EXPANDED,!!this.menu_);return!0}computeOptionAriaLabel(a,b){if(a===zh.SEPARATOR)return"";var [c,,d]=a;if(typeof d==="string"&&d.trim())return d;a=null;if(mh(c)){let e;a=(e=c.ariaLabel)!=null?e:c.alt}else if(typeof HTMLElement!=="undefined"&&c instanceof HTMLElement){let e;a=(e=c.ariaLabel)!=null?e:c.title||c.innerText}else typeof c==="string"&&(a=c);return a&&a.trim()?a:$.C.FIELD_LABEL_OPTION_INDEX.replace("%1",String(b+1))}};
1145
+ zh.SEPARATOR="separator";zh.ARROW_CHAR="\u25be";zh.IMAGE_Y_OFFSET=5;zh.IMAGE_Y_PADDING=zh.IMAGE_Y_OFFSET*2;jh("field_dropdown",zh);var L,O=L||(L={});O[O.WIN_KEY_FF_LINUX=0]="WIN_KEY_FF_LINUX";O[O.MAC_ENTER=3]="MAC_ENTER";O[O.BACKSPACE=8]="BACKSPACE";O[O.TAB=9]="TAB";O[O.NUM_CENTER=12]="NUM_CENTER";O[O.ENTER=13]="ENTER";O[O.SHIFT=16]="SHIFT";O[O.CTRL=17]="CTRL";O[O.ALT=18]="ALT";O[O.PAUSE=19]="PAUSE";O[O.CAPS_LOCK=20]="CAPS_LOCK";O[O.ESC=27]="ESC";O[O.SPACE=32]="SPACE";O[O.PAGE_UP=33]="PAGE_UP";O[O.PAGE_DOWN=34]="PAGE_DOWN";O[O.END=35]="END";O[O.HOME=36]="HOME";O[O.LEFT=37]="LEFT";O[O.UP=38]="UP";O[O.RIGHT=39]="RIGHT";
1145
1146
  O[O.DOWN=40]="DOWN";O[O.PLUS_SIGN=43]="PLUS_SIGN";O[O.PRINT_SCREEN=44]="PRINT_SCREEN";O[O.INSERT=45]="INSERT";O[O.DELETE=46]="DELETE";O[O.ZERO=48]="ZERO";O[O.ONE=49]="ONE";O[O.TWO=50]="TWO";O[O.THREE=51]="THREE";O[O.FOUR=52]="FOUR";O[O.FIVE=53]="FIVE";O[O.SIX=54]="SIX";O[O.SEVEN=55]="SEVEN";O[O.EIGHT=56]="EIGHT";O[O.NINE=57]="NINE";O[O.FF_SEMICOLON=59]="FF_SEMICOLON";O[O.FF_EQUALS=61]="FF_EQUALS";O[O.FF_DASH=173]="FF_DASH";O[O.FF_HASH=163]="FF_HASH";O[O.QUESTION_MARK=63]="QUESTION_MARK";
1146
1147
  O[O.AT_SIGN=64]="AT_SIGN";O[O.A=65]="A";O[O.B=66]="B";O[O.C=67]="C";O[O.D=68]="D";O[O.E=69]="E";O[O.F=70]="F";O[O.G=71]="G";O[O.H=72]="H";O[O.I=73]="I";O[O.J=74]="J";O[O.K=75]="K";O[O.L=76]="L";O[O.M=77]="M";O[O.N=78]="N";O[O.O=79]="O";O[O.P=80]="P";O[O.Q=81]="Q";O[O.R=82]="R";O[O.S=83]="S";O[O.T=84]="T";O[O.U=85]="U";O[O.V=86]="V";O[O.W=87]="W";O[O.X=88]="X";O[O.Y=89]="Y";O[O.Z=90]="Z";O[O.META=91]="META";O[O.WIN_KEY_RIGHT=92]="WIN_KEY_RIGHT";O[O.CONTEXT_MENU=93]="CONTEXT_MENU";
1147
1148
  O[O.NUM_ZERO=96]="NUM_ZERO";O[O.NUM_ONE=97]="NUM_ONE";O[O.NUM_TWO=98]="NUM_TWO";O[O.NUM_THREE=99]="NUM_THREE";O[O.NUM_FOUR=100]="NUM_FOUR";O[O.NUM_FIVE=101]="NUM_FIVE";O[O.NUM_SIX=102]="NUM_SIX";O[O.NUM_SEVEN=103]="NUM_SEVEN";O[O.NUM_EIGHT=104]="NUM_EIGHT";O[O.NUM_NINE=105]="NUM_NINE";O[O.NUM_MULTIPLY=106]="NUM_MULTIPLY";O[O.NUM_PLUS=107]="NUM_PLUS";O[O.NUM_MINUS=109]="NUM_MINUS";O[O.NUM_PERIOD=110]="NUM_PERIOD";O[O.NUM_DIVISION=111]="NUM_DIVISION";O[O.F1=112]="F1";O[O.F2=113]="F2";O[O.F3=114]="F3";
1148
1149
  O[O.F4=115]="F4";O[O.F5=116]="F5";O[O.F6=117]="F6";O[O.F7=118]="F7";O[O.F8=119]="F8";O[O.F9=120]="F9";O[O.F10=121]="F10";O[O.F11=122]="F11";O[O.F12=123]="F12";O[O.NUMLOCK=144]="NUMLOCK";O[O.SCROLL_LOCK=145]="SCROLL_LOCK";O[O.FIRST_MEDIA_KEY=166]="FIRST_MEDIA_KEY";O[O.LAST_MEDIA_KEY=183]="LAST_MEDIA_KEY";O[O.SEMICOLON=186]="SEMICOLON";O[O.DASH=189]="DASH";O[O.EQUALS=187]="EQUALS";O[O.COMMA=188]="COMMA";O[O.PERIOD=190]="PERIOD";O[O.SLASH=191]="SLASH";O[O.APOSTROPHE=192]="APOSTROPHE";
1149
- O[O.TILDE=192]="TILDE";O[O.SINGLE_QUOTE=222]="SINGLE_QUOTE";O[O.OPEN_SQUARE_BRACKET=219]="OPEN_SQUARE_BRACKET";O[O.BACKSLASH=220]="BACKSLASH";O[O.CLOSE_SQUARE_BRACKET=221]="CLOSE_SQUARE_BRACKET";O[O.WIN_KEY=224]="WIN_KEY";O[O.MAC_FF_META=224]="MAC_FF_META";O[O.MAC_WK_CMD_LEFT=91]="MAC_WK_CMD_LEFT";O[O.MAC_WK_CMD_RIGHT=93]="MAC_WK_CMD_RIGHT";O[O.WIN_IME=229]="WIN_IME";O[O.VK_NONAME=252]="VK_NONAME";O[O.PHANTOM=255]="PHANTOM";O[O.CTRL_CMD=na||Wi||Ui?O.MAC_WK_CMD_LEFT:O.CTRL]="CTRL_CMD";var kn=class{constructor(a){this.workspace=a;var b,c,d;this.svgRoot=r(q.G,{},(d=(b=a.getLayerManager())==null?void 0:b.getDragLayer())!=null?d:(c=a.getLayerManager())==null?void 0:c.getBlockLayer());this.svgRoot.classList.add("blocklyMoveIndicator");a=a.RTL;r(q.CIRCLE,{fill:"white","fill-opacity":"0.8",stroke:"grey","stroke-width":"1",r:20,cx:20*(a?-1:1),cy:20},this.svgRoot);r(q.PATH,{fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m18 9l3 3l-3 3m-3-3h6M6 9l-3 3l3 3m-3-3h6m0 6l3 3l3-3m-3-3v6m3-15l-3-3l-3 3m3-3v6",
1150
- transform:`translate(${(a?-4:1)*8} 8)`},this.svgRoot)}moveTo(a,b){this.svgRoot.setAttribute("transform",`translate(${a+(this.workspace.RTL?20:-20)}, ${b-20})`)}dispose(){Oa(this.svgRoot)}};var ri,ln=ri||(ri={});ln[ln.NONE=0]="NONE";ln[ln.UP=1]="UP";ln[ln.DOWN=2]="DOWN";ln[ln.LEFT=3]="LEFT";ln[ln.RIGHT=4]="RIGHT";
1151
- var qi=class{constructor(){this.totalDelta=new D(0,0);this.stepDistance=20;this.allowedShortcuts=[];this.blurListener=()=>{this.abortMove()}}canMove(a){return!a.workspace.isReadOnly()&&a.isMovable()}isMoving(){return!!this.draggable}startMove(a,b){if(!this.canMove(a)||this.isMoving())return!1;var c=Jb(y.BLOCK_DRAGGER,a.workspace.options,!0);if(!c)throw Error("no Dragger registered");this.dragger=new c(a,a.workspace);this.draggable=this.dragger.onDragStart(b);this.startLocation=this.draggable.getRelativeToSurfaceXY();
1150
+ O[O.TILDE=192]="TILDE";O[O.SINGLE_QUOTE=222]="SINGLE_QUOTE";O[O.OPEN_SQUARE_BRACKET=219]="OPEN_SQUARE_BRACKET";O[O.BACKSLASH=220]="BACKSLASH";O[O.CLOSE_SQUARE_BRACKET=221]="CLOSE_SQUARE_BRACKET";O[O.WIN_KEY=224]="WIN_KEY";O[O.MAC_FF_META=224]="MAC_FF_META";O[O.MAC_WK_CMD_LEFT=91]="MAC_WK_CMD_LEFT";O[O.MAC_WK_CMD_RIGHT=93]="MAC_WK_CMD_RIGHT";O[O.WIN_IME=229]="WIN_IME";O[O.VK_NONAME=252]="VK_NONAME";O[O.PHANTOM=255]="PHANTOM";O[O.CTRL_CMD=ma||Wi||Vi?O.MAC_WK_CMD_LEFT:O.CTRL]="CTRL_CMD";var ln=class{constructor(a){this.workspace=a;var b,c,d;this.svgRoot=r(q.G,{},(d=(b=a.getLayerManager())==null?void 0:b.getDragLayer())!=null?d:(c=a.getLayerManager())==null?void 0:c.getBlockLayer());this.svgRoot.classList.add("blocklyMoveIndicator");a=a.RTL;r(q.CIRCLE,{fill:"white","fill-opacity":"0.8",stroke:"grey","stroke-width":"1",r:20,cx:20*(a?-1:1),cy:20},this.svgRoot);r(q.PATH,{fill:"none",stroke:"black","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m18 9l3 3l-3 3m-3-3h6M6 9l-3 3l3 3m-3-3h6m0 6l3 3l3-3m-3-3v6m3-15l-3-3l-3 3m3-3v6",
1151
+ transform:`translate(${(a?-4:1)*8} 8)`},this.svgRoot)}moveTo(a,b){this.svgRoot.setAttribute("transform",`translate(${a+(this.workspace.RTL?20:-20)}, ${b-20})`)}dispose(){Oa(this.svgRoot)}};var si,mn=si||(si={});mn[mn.NONE=0]="NONE";mn[mn.UP=1]="UP";mn[mn.DOWN=2]="DOWN";mn[mn.LEFT=3]="LEFT";mn[mn.RIGHT=4]="RIGHT";
1152
+ var ri=class{constructor(){this.totalDelta=new D(0,0);this.stepDistance=20;this.allowedShortcuts=[];this.blurListener=()=>{this.abortMove()}}canMove(a){return!a.workspace.isReadOnly()&&a.isMovable()}isMoving(){return!!this.draggable}startMove(a,b){if(!this.canMove(a)||this.isMoving())return!1;var c=Jb(y.BLOCK_DRAGGER,a.workspace.options,!0);if(!c)throw Error("no Dragger registered");this.dragger=new c(a,a.workspace);this.draggable=this.dragger.onDragStart(b);this.startLocation=this.draggable.getRelativeToSurfaceXY();
1152
1153
  this.updateTotalDelta();this.draggable.getFocusableElement().addEventListener("blur",this.blurListener);a=Object.values(x.registry.getRegistry()).flatMap(d=>d.keyCodes).filter(d=>d&&![L.RIGHT,L.LEFT,L.UP,L.DOWN,L.ENTER,L.SPACE,L.ESC,L.M].includes(typeof d==="number"?d:parseInt(`${d.split("+").pop()}`))).filter(d=>!!d);x.registry.register({name:"commitMove",preconditionFn:()=>this.isMoving(),callback:()=>{this.finishMove();return!1},keyCodes:a,allowCollision:!0},!0);this.scrollCurrentElementIntoView();
1153
- this.moveIndicator=new kn(this.draggable.workspace);this.repositionMoveIndicator();return!0}move(a,b){switch(a){case ri.UP:this.totalDelta.y-=this.stepDistance;break;case ri.DOWN:this.totalDelta.y+=this.stepDistance;break;case ri.LEFT:this.totalDelta.x-=this.stepDistance;break;case ri.RIGHT:this.totalDelta.x+=this.stepDistance}var c;(c=this.dragger)==null||c.onDrag(b,this.totalPixelDelta());this.updateTotalDelta();this.scrollCurrentElementIntoView();this.repositionMoveIndicator();return!0}finishMove(a){this.preDragEndCleanup();
1154
+ this.moveIndicator=new ln(this.draggable.workspace);this.repositionMoveIndicator();return!0}move(a,b){switch(a){case si.UP:this.totalDelta.y-=this.stepDistance;break;case si.DOWN:this.totalDelta.y+=this.stepDistance;break;case si.LEFT:this.totalDelta.x-=this.stepDistance;break;case si.RIGHT:this.totalDelta.x+=this.stepDistance}var c;(c=this.dragger)==null||c.onDrag(b,this.totalPixelDelta());this.updateTotalDelta();this.scrollCurrentElementIntoView();this.repositionMoveIndicator();return!0}finishMove(a){this.preDragEndCleanup();
1154
1155
  var b;(b=this.dragger)==null||b.onDragEnd(a,this.totalPixelDelta());this.postDragEndCleanup();return!0}abortMove(a){this.preDragEndCleanup();var b;(b=this.dragger)==null||b.onDragRevert(a,this.totalPixelDelta());this.postDragEndCleanup();return!0}setMoveDistance(a){this.stepDistance=a}getAllowedShortcuts(){return this.allowedShortcuts}setAllowedShortcuts(a){this.allowedShortcuts=a}repositionMoveIndicator(){cd().then(()=>{var a,b=(a=this.draggable)==null?void 0:a.getBoundingRectangle();this.draggable&&
1155
1156
  "getBoundingRectangleWithoutChildren"in this.draggable&&(b=this.positionForBlockMoveIndicator(this.draggable));if(b){var c,d;(d=this.moveIndicator)==null||d.moveTo(((c=this.draggable)==null?0:c.workspace.RTL)?b.left:b.right,b.top)}})}positionForBlockMoveIndicator(a){for(var b=a.workspace.getNavigator(),c=a,d;d=b.getInNode(c);)c=d;b=b.getSourceBlockFromNode(c);c=a.getBoundingRectangleWithoutChildren().getOrigin().y;for(var e;((e=b)==null?void 0:e.getBoundingRectangleWithoutChildren().getOrigin().y)!==
1156
1157
  c;){let h,m;b=(m=(h=b)==null?void 0:h.getParent())!=null?m:null}var f,g;return(g=(f=b)==null?void 0:f.getBoundingRectangleWithoutChildren())!=null?g:a.getBoundingRectangleWithoutChildren()}preDragEndCleanup(){x.registry.unregister("commitMove");var a;(a=this.draggable)==null||a.getFocusableElement().removeEventListener("blur",this.blurListener)}postDragEndCleanup(){var a;(a=this.moveIndicator)==null||a.dispose();this.startLocation=this.dragger=this.draggable=this.moveIndicator=void 0;this.totalDelta=
1157
1158
  new D(0,0)}totalPixelDelta(){var a,b,c=(b=(a=this.draggable)==null?void 0:a.workspace.scale)!=null?b:1;return new D(this.totalDelta.x*c,this.totalDelta.y*c)}scrollCurrentElementIntoView(){if(this.draggable){var a=this.draggable.getBoundingRectangle();this.draggable.workspace.scrollBoundsIntoView(a)}}updateTotalDelta(){this.draggable&&this.startLocation&&(this.totalDelta=new D(this.draggable.getRelativeToSurfaceXY().x-this.startLocation.x,this.draggable.getRelativeToSurfaceXY().y-this.startLocation.y))}};
1158
- qi.mover=new qi;var mn=class{constructor(a,b,c,d){this.name=a;this.startHats=!1;this.blockStyles=b||Object.create(null);this.categoryStyles=c||Object.create(null);this.componentStyles=d||Object.create(null);this.fontStyle=Object.create(null);A(y.THEME,a,this,!0)}getClassName(){return this.name+"-theme"}setBlockStyle(a,b){this.blockStyles[a]=b}setCategoryStyle(a,b){this.categoryStyles[a]=b}getComponentStyle(a){a=this.componentStyles[a];if(!a)return null;if(typeof a==="string"){let b=this.getComponentStyle(a);if(b)return b}return`${a}`}setComponentStyle(a,
1159
- b){this.componentStyles[a]=b}setFontStyle(a){this.fontStyle=a}setStartHats(a){this.startHats=a}static defineTheme(a,b){a=a.toLowerCase();var c=new mn(a),d=b.base;if(d){if(typeof d==="string"){let e;d=(e=Fb(y.THEME,d,void 0))!=null?e:void 0}d instanceof mn&&(bb(c,d),c.name=a)}bb(c.blockStyles,b.blockStyles);bb(c.categoryStyles,b.categoryStyles);bb(c.componentStyles,b.componentStyles);bb(c.fontStyle,b.fontStyle);b.startHats!==null&&(c.startHats=b.startHats);return c}};var nn=new mn("classic",{colour_blocks:{colourPrimary:"20"},list_blocks:{colourPrimary:"260"},logic_blocks:{colourPrimary:"210"},loop_blocks:{colourPrimary:"120"},math_blocks:{colourPrimary:"230"},procedure_blocks:{colourPrimary:"290"},text_blocks:{colourPrimary:"160"},variable_blocks:{colourPrimary:"330"},variable_dynamic_blocks:{colourPrimary:"310"},hat_blocks:{colourPrimary:"330",hat:"cap"}},{colour_category:{colour:"20"},list_category:{colour:"260"},logic_category:{colour:"210"},loop_category:{colour:"120"},
1160
- math_category:{colour:"230"},procedure_category:{colour:"290"},text_category:{colour:"160"},variable_category:{colour:"330"},variable_dynamic_category:{colour:"310"}});var on=class{constructor(a){this.gridPattern=null;this.getMetrics=this.setMetrics=void 0;var b=null,c=!1,d=!1,e=!1,f=!1,g=!1,h=!1,m=!!a.readOnly;if(!m){var z;b=Cc((z=a.toolbox)!=null?z:null);c=Fc(b);d=a.trashcan;d=d===void 0?c:d;e=a.collapse;e=e===void 0?c:e;f=a.comments;f=f===void 0?c:f;g=a.disable;g=g===void 0?c:g;h=a.sounds;h=h===void 0?!0:h}z=a.maxTrashcanContents;d?z===void 0&&(z=32):z=0;var E=!!a.rtl,H=a.horizontalLayout;H===void 0&&(H=!1);var Y=a.toolboxPosition!=="end";Y=H?Y?F.TOP:F.BOTTOM:
1161
- Y===E?F.RIGHT:F.LEFT;var ia=a.css;ia===void 0&&(ia=!0);var jb="https://static.blockly.com/media/";a.media&&(jb=a.media.endsWith("/")?a.media:a.media+"/");var pb=a.oneBasedIndex,Vi=a.renderer||"thrasos",xs=a.plugins||{},Yj=a.modalInputs;Yj===void 0&&(Yj=!0);this.RTL=E;this.oneBasedIndex=pb===void 0?!0:pb;this.collapse=e;this.comments=f;this.disable=g;this.readOnly=m;this.maxBlocks=a.maxBlocks||Infinity;var Ro;this.maxInstances=(Ro=a.maxInstances)!=null?Ro:null;this.modalInputs=Yj;this.pathToMedia=
1162
- jb;this.hasCategories=c;this.moveOptions=on.parseMoveOptions(a,c);this.hasScrollbars=!!this.moveOptions.scrollbars;this.hasTrashcan=d;this.maxTrashcanContents=z;this.hasSounds=h;this.hasCss=ia;this.horizontalLayout=H;this.languageTree=b;this.gridOptions=on.parseGridOptions(a);this.zoomOptions=on.parseZoomOptions(a);this.toolboxPosition=Y;this.theme=on.parseThemeOptions(a);this.renderer=Vi;var So;this.rendererOverrides=(So=a.rendererOverrides)!=null?So:null;var To;this.parentWorkspace=(To=a.parentWorkspace)!=
1163
- null?To:null;this.plugins=xs}static parseMoveOptions(a,b){var c=a.move||{},d={};c.scrollbars===void 0&&a.scrollbars===void 0?d.scrollbars=b:typeof c.scrollbars==="object"?(d.scrollbars={horizontal:!!c.scrollbars.horizontal,vertical:!!c.scrollbars.vertical},d.scrollbars.horizontal&&d.scrollbars.vertical?d.scrollbars=!0:d.scrollbars.horizontal||d.scrollbars.vertical||(d.scrollbars=!1)):d.scrollbars=!!c.scrollbars||!!a.scrollbars;d.wheel=d.scrollbars&&c.wheel!==void 0?!!c.wheel:typeof d.scrollbars===
1159
+ ri.mover=new ri;var nn=class{constructor(a,b,c,d){this.name=a;this.startHats=!1;this.blockStyles=b||Object.create(null);this.categoryStyles=c||Object.create(null);this.componentStyles=d||Object.create(null);this.fontStyle=Object.create(null);A(y.THEME,a,this,!0)}getClassName(){return this.name+"-theme"}setBlockStyle(a,b){this.blockStyles[a]=b}setCategoryStyle(a,b){this.categoryStyles[a]=b}getComponentStyle(a){a=this.componentStyles[a];if(!a)return null;if(typeof a==="string"){let b=this.getComponentStyle(a);if(b)return b}return`${a}`}setComponentStyle(a,
1160
+ b){this.componentStyles[a]=b}setFontStyle(a){this.fontStyle=a}setStartHats(a){this.startHats=a}static defineTheme(a,b){a=a.toLowerCase();var c=new nn(a),d=b.base;if(d){if(typeof d==="string"){let e;d=(e=Fb(y.THEME,d,void 0))!=null?e:void 0}d instanceof nn&&(bb(c,d),c.name=a)}bb(c.blockStyles,b.blockStyles);bb(c.categoryStyles,b.categoryStyles);bb(c.componentStyles,b.componentStyles);bb(c.fontStyle,b.fontStyle);b.startHats!==null&&(c.startHats=b.startHats);return c}};var on=new nn("classic",{colour_blocks:{colourPrimary:"20"},list_blocks:{colourPrimary:"260"},logic_blocks:{colourPrimary:"210"},loop_blocks:{colourPrimary:"120"},math_blocks:{colourPrimary:"230"},procedure_blocks:{colourPrimary:"290"},text_blocks:{colourPrimary:"160"},variable_blocks:{colourPrimary:"330"},variable_dynamic_blocks:{colourPrimary:"310"},hat_blocks:{colourPrimary:"330",hat:"cap"}},{colour_category:{colour:"20"},list_category:{colour:"260"},logic_category:{colour:"210"},loop_category:{colour:"120"},
1161
+ math_category:{colour:"230"},procedure_category:{colour:"290"},text_category:{colour:"160"},variable_category:{colour:"330"},variable_dynamic_category:{colour:"310"}});var pn=class{constructor(a){this.gridPattern=null;this.getMetrics=this.setMetrics=void 0;var b=null,c=!1,d=!1,e=!1,f=!1,g=!1,h=!1,m=!!a.readOnly;if(!m){var z;b=Cc((z=a.toolbox)!=null?z:null);c=Fc(b);d=a.trashcan;d=d===void 0?c:d;e=a.collapse;e=e===void 0?c:e;f=a.comments;f=f===void 0?c:f;g=a.disable;g=g===void 0?c:g;h=a.sounds;h=h===void 0?!0:h}z=a.maxTrashcanContents;d?z===void 0&&(z=32):z=0;var E=!!a.rtl,J=a.horizontalLayout;J===void 0&&(J=!1);var T=a.toolboxPosition!=="end";T=J?T?F.TOP:F.BOTTOM:
1162
+ T===E?F.RIGHT:F.LEFT;var ra=a.css;ra===void 0&&(ra=!0);var jb="https://static.blockly.com/media/";a.media&&(jb=a.media.endsWith("/")?a.media:a.media+"/");var pb=a.oneBasedIndex,Xi=a.renderer||"thrasos",ys=a.plugins||{},ak=a.modalInputs;ak===void 0&&(ak=!0);this.RTL=E;this.oneBasedIndex=pb===void 0?!0:pb;this.collapse=e;this.comments=f;this.disable=g;this.readOnly=m;this.maxBlocks=a.maxBlocks||Infinity;var Uo;this.maxInstances=(Uo=a.maxInstances)!=null?Uo:null;this.modalInputs=ak;this.pathToMedia=
1163
+ jb;this.hasCategories=c;this.moveOptions=pn.parseMoveOptions(a,c);this.hasScrollbars=!!this.moveOptions.scrollbars;this.hasTrashcan=d;this.maxTrashcanContents=z;this.hasSounds=h;this.hasCss=ra;this.horizontalLayout=J;this.languageTree=b;this.gridOptions=pn.parseGridOptions(a);this.zoomOptions=pn.parseZoomOptions(a);this.toolboxPosition=T;this.theme=pn.parseThemeOptions(a);this.renderer=Xi;var Vo;this.rendererOverrides=(Vo=a.rendererOverrides)!=null?Vo:null;var Wo;this.parentWorkspace=(Wo=a.parentWorkspace)!=
1164
+ null?Wo:null;this.plugins=ys}static parseMoveOptions(a,b){var c=a.move||{},d={};c.scrollbars===void 0&&a.scrollbars===void 0?d.scrollbars=b:typeof c.scrollbars==="object"?(d.scrollbars={horizontal:!!c.scrollbars.horizontal,vertical:!!c.scrollbars.vertical},d.scrollbars.horizontal&&d.scrollbars.vertical?d.scrollbars=!0:d.scrollbars.horizontal||d.scrollbars.vertical||(d.scrollbars=!1)):d.scrollbars=!!c.scrollbars||!!a.scrollbars;d.wheel=d.scrollbars&&c.wheel!==void 0?!!c.wheel:typeof d.scrollbars===
1164
1165
  "object";d.drag=d.scrollbars?c.drag===void 0?!0:!!c.drag:!1;return d}static parseZoomOptions(a){a=a.zoom||{};var b={};b.controls=a.controls===void 0?!1:!!a.controls;b.wheel=a.wheel===void 0?!1:!!a.wheel;b.startScale=a.startScale===void 0?1:Number(a.startScale);b.maxScale=a.maxScale===void 0?3:Number(a.maxScale);b.minScale=a.minScale===void 0?.3:Number(a.minScale);b.scaleSpeed=a.scaleSpeed===void 0?1.2:Number(a.scaleSpeed);b.pinch=a.pinch===void 0?b.wheel||b.controls:!!a.pinch;return b}static parseGridOptions(a){a=
1165
- a.grid||{};var b={};b.spacing=Number(a.spacing)||0;b.colour=a.colour||"#888";b.length=a.length===void 0?1:Number(a.length);b.snap=b.spacing>0&&!!a.snap;return b}static parseThemeOptions(a){a=a.theme||nn;return typeof a==="string"?Fb(y.THEME,a,void 0):a instanceof mn?a:mn.defineTheme(a.name||"builtin"+Lb(),a)}};var pn=class{constructor(a,b){this.bubble=a;this.workspace=b;this.startLoc=null}isMovable(){return!0}startDrag(){this.startLoc=this.bubble.getRelativeToSurfaceXY();this.workspace.setResizesEnabled(!1);var a;(a=this.workspace.getLayerManager())==null||a.moveToDragLayer(this.bubble);this.bubble.setDragging&&this.bubble.setDragging(!0);return this.bubble}drag(a){this.bubble.moveDuringDrag(a)}endDrag(){this.workspace.setResizesEnabled(!0);var a;(a=this.workspace.getLayerManager())==null||a.moveOffDragLayer(this.bubble,
1166
- 100);this.bubble.setDragging(!1)}revertDrag(){this.startLoc&&this.bubble.moveDuringDrag(this.startLoc)}};var qn,rn=class{constructor(a,b,c,d,e){this.workspace=a;this.anchor=b;this.ownerRect=c;this.owner=e;this.size=new hc(0,0);this.colour="#ffffff";this.disposed=!1;this.relativeLeft=this.relativeTop=0;this.dragStrategy=new pn(this,this.workspace);this.ariaLabelProvider=null;this.id=Lb();this.svgRoot=r(q.G,{"class":"blocklyBubble"},a.getBubbleCanvas());a=r(q.G,{"class":"blocklyEmboss"},this.svgRoot);this.tail=r(q.PATH,{"class":"blocklyBubbleTail"},a);this.background=r(q.RECT,{"class":"blocklyDraggable",
1167
- x:0,y:0,rx:qn.BORDER_WIDTH,ry:qn.BORDER_WIDTH},a);this.contentContainer=r(q.G,{},this.svgRoot);this.focusableElement=d!=null?d:this.svgRoot;this.focusableElement.setAttribute("id",this.id);k(this.background,"pointerdown",this,this.onMouseDown);k(this.focusableElement,"keydown",this,this.onKeyDown);this.recomputeAriaContext()}dispose(){Oa(this.svgRoot);this.disposed=!0}setAnchorLocation(a,b=!1){this.anchor=a;b?this.positionByRect(this.ownerRect):this.positionRelativeToAnchor();this.renderTail()}setPositionRelativeToAnchor(a,
1168
- b){this.relativeLeft=a;this.relativeTop=b;this.positionRelativeToAnchor();this.renderTail()}getSize(){return this.size}setSize(a,b=!1){a.width=Math.max(a.width,qn.MIN_SIZE);a.height=Math.max(a.height,qn.MIN_SIZE);this.size=a;this.background.setAttribute("width",`${a.width}`);this.background.setAttribute("height",`${a.height}`);b?this.positionByRect(this.ownerRect):this.positionRelativeToAnchor();this.renderTail()}getColour(){return this.colour}setColour(a){this.colour=a;this.tail.setAttribute("fill",
1166
+ a.grid||{};var b={};b.spacing=Number(a.spacing)||0;b.colour=a.colour||"#888";b.length=a.length===void 0?1:Number(a.length);b.snap=b.spacing>0&&!!a.snap;return b}static parseThemeOptions(a){a=a.theme||on;return typeof a==="string"?Fb(y.THEME,a,void 0):a instanceof nn?a:nn.defineTheme(a.name||"builtin"+Lb(),a)}};var qn=class{constructor(a,b){this.bubble=a;this.workspace=b;this.startLoc=null}isMovable(){return!0}startDrag(){this.startLoc=this.bubble.getRelativeToSurfaceXY();this.workspace.setResizesEnabled(!1);var a;(a=this.workspace.getLayerManager())==null||a.moveToDragLayer(this.bubble);this.bubble.setDragging&&this.bubble.setDragging(!0);return this.bubble}drag(a){this.bubble.moveDuringDrag(a)}endDrag(){this.workspace.setResizesEnabled(!0);var a;(a=this.workspace.getLayerManager())==null||a.moveOffDragLayer(this.bubble,
1167
+ 100);this.bubble.setDragging(!1)}revertDrag(){this.startLoc&&this.bubble.moveDuringDrag(this.startLoc)}};var rn,sn=class{constructor(a,b,c,d,e){this.workspace=a;this.anchor=b;this.ownerRect=c;this.owner=e;this.size=new hc(0,0);this.colour="#ffffff";this.disposed=!1;this.relativeLeft=this.relativeTop=0;this.dragStrategy=new qn(this,this.workspace);this.ariaLabelProvider=null;this.id=Lb();this.svgRoot=r(q.G,{"class":"blocklyBubble"},a.getBubbleCanvas());a=r(q.G,{"class":"blocklyEmboss"},this.svgRoot);this.tail=r(q.PATH,{"class":"blocklyBubbleTail"},a);this.background=r(q.RECT,{"class":"blocklyDraggable",
1168
+ x:0,y:0,rx:rn.BORDER_WIDTH,ry:rn.BORDER_WIDTH},a);this.contentContainer=r(q.G,{},this.svgRoot);this.focusableElement=d!=null?d:this.svgRoot;this.focusableElement.setAttribute("id",this.id);k(this.background,"pointerdown",this,this.onMouseDown);k(this.focusableElement,"keydown",this,this.onKeyDown);this.recomputeAriaContext()}dispose(){Oa(this.svgRoot);this.disposed=!0}setAnchorLocation(a,b=!1){this.anchor=a;b?this.positionByRect(this.ownerRect):this.positionRelativeToAnchor();this.renderTail()}setPositionRelativeToAnchor(a,
1169
+ b){this.relativeLeft=a;this.relativeTop=b;this.positionRelativeToAnchor();this.renderTail()}getSize(){return this.size}setSize(a,b=!1){a.width=Math.max(a.width,rn.MIN_SIZE);a.height=Math.max(a.height,rn.MIN_SIZE);this.size=a;this.background.setAttribute("width",`${a.width}`);this.background.setAttribute("height",`${a.height}`);b?this.positionByRect(this.ownerRect):this.positionRelativeToAnchor();this.renderTail()}getColour(){return this.colour}setColour(a){this.colour=a;this.tail.setAttribute("fill",
1169
1170
  a);this.background.setAttribute("fill",a)}onMouseDown(a){var b;(b=this.workspace.getGesture(a))==null||b.handleBubbleStart(a,this);$.t().focusNode(this)}onKeyDown(a){a.key==="Escape"&&this.owner&&(this.owner.setBubbleVisible(!1),$.t().focusNode(this.owner))}positionRelativeToAnchor(){var a=this.anchor.x;a=this.workspace.RTL?a-(this.relativeLeft+this.size.width):a+this.relativeLeft;this.moveTo(a,this.relativeTop+this.anchor.y)}moveTo(a,b){this.svgRoot.setAttribute("transform",`translate(${a}, ${b})`)}moveBy(a,
1170
1171
  b){var c=this.getRelativeToSurfaceXY();this.moveTo(c.x+a,c.y+b)}positionByRect(a=new cc(0,0,0,0)){var b=this.workspace.getMetricsManager().getViewMetrics(!0),c=this.getOptimalRelativeLeft(b),d=this.getOptimalRelativeTop(b),e={x:c,y:-this.size.height-this.workspace.getRenderer().getConstants().MIN_BLOCK_HEIGHT},f={x:-this.size.width-30,y:d};d={x:a.getWidth(),y:d};var g={x:c,y:a.getHeight()};c=a.getWidth()<a.getHeight()?d:g;a=a.getWidth()<a.getHeight()?g:d;d=this.getOverlap(e,b);g=this.getOverlap(f,
1171
1172
  b);var h=this.getOverlap(c,b);b=this.getOverlap(a,b);b=Math.max(d,g,h,b);d===b?(this.relativeLeft=e.x,this.relativeTop=e.y):g===b?(this.relativeLeft=f.x,this.relativeTop=f.y):h===b?(this.relativeLeft=c.x,this.relativeTop=c.y):(this.relativeLeft=a.x,this.relativeTop=a.y);this.positionRelativeToAnchor()}getOverlap(a,b){var c=this.workspace.RTL?this.anchor.x-a.x-this.size.width:a.x+this.anchor.x;a=a.y+this.anchor.y;return Math.max(0,Math.min(1,(Math.min(c+this.size.width,b.left+b.width)-Math.max(c,b.left))*
1172
1173
  (Math.min(a+this.size.height,b.top+b.height)-Math.max(a,b.top))/(this.size.width*this.size.height)))}getOptimalRelativeLeft(a){var b=-this.size.width/4;if(this.size.width>a.width)return b;a=this.getWorkspaceViewRect(a);if(this.workspace.RTL){var c=this.anchor.x-b;c-this.size.width<a.left?b=-(a.left-this.anchor.x+this.size.width):c>a.right&&(b=-(a.right-this.anchor.x))}else{c=b+this.anchor.x;let d=c+this.size.width;c<a.left?b=a.left-this.anchor.x:d>a.right&&(b=a.right-this.anchor.x-this.size.width)}return b}getOptimalRelativeTop(a){var b=
1173
1174
  -this.size.height/4;if(this.size.height>a.height)return b;var c=this.anchor.y+b,d=c+this.size.height;a=this.getWorkspaceViewRect(a);c<a.top?b=a.top-this.anchor.y:d>a.bottom&&(b=a.bottom-this.anchor.y-this.size.height);return b}getWorkspaceViewRect(a){var b=a.top,c=a.top+a.height,d=a.left;a=a.left+a.width;c-=this.getScrollbarThickness();this.workspace.RTL?d-=this.getScrollbarThickness():a-=this.getScrollbarThickness();return new cc(b,c,d,a)}getScrollbarThickness(){return Ic.scrollbarThickness/this.workspace.scale}renderTail(){var a=
1174
- [],b=this.size.width/2,c=this.size.height/2,d=-this.relativeLeft,e=-this.relativeTop;if(b===d&&c===e)a.push("M "+b+","+c);else{e-=c;d-=b;this.workspace.RTL&&(d*=-1);var f=Math.sqrt(e*e+d*d),g=Math.acos(d/f);e<0&&(g=2*Math.PI-g);var h=g+Math.PI/2;h>Math.PI*2&&(h-=Math.PI*2);var m=Math.sin(h);let E=Math.cos(h),H=(this.size.width+this.size.height)/qn.TAIL_THICKNESS;H=Math.min(H,this.size.width,this.size.height)/4;h=1-qn.ANCHOR_RADIUS/f;d=b+h*d;e=c+h*e;h=b+H*E;let Y=c+H*m;b-=H*E;c-=H*m;m=Me(this.workspace.RTL?
1175
- -qn.TAIL_ANGLE:qn.TAIL_ANGLE);m=g+m;m>Math.PI*2&&(m-=Math.PI*2);g=Math.sin(m)*f/qn.TAIL_BEND;f=Math.cos(m)*f/qn.TAIL_BEND;a.push("M"+h+","+Y);a.push("C"+(h+f)+","+(Y+g)+" "+d+","+e+" "+d+","+e);a.push("C"+d+","+e+" "+(b+f)+","+(c+g)+" "+b+","+c)}a.push("z");var z;(z=this.tail)==null||z.setAttribute("d",a.join(" "))}bringToFront(){var a,b=(a=this.svgRoot)==null?void 0:a.parentNode;return this.svgRoot&&(b==null?void 0:b.lastChild)!==this.svgRoot?(b==null||b.appendChild(this.svgRoot),!0):!1}getRelativeToSurfaceXY(){return new D(this.workspace.RTL?
1175
+ [],b=this.size.width/2,c=this.size.height/2,d=-this.relativeLeft,e=-this.relativeTop;if(b===d&&c===e)a.push("M "+b+","+c);else{e-=c;d-=b;this.workspace.RTL&&(d*=-1);var f=Math.sqrt(e*e+d*d),g=Math.acos(d/f);e<0&&(g=2*Math.PI-g);var h=g+Math.PI/2;h>Math.PI*2&&(h-=Math.PI*2);var m=Math.sin(h);let E=Math.cos(h),J=(this.size.width+this.size.height)/rn.TAIL_THICKNESS;J=Math.min(J,this.size.width,this.size.height)/4;h=1-rn.ANCHOR_RADIUS/f;d=b+h*d;e=c+h*e;h=b+J*E;let T=c+J*m;b-=J*E;c-=J*m;m=Ne(this.workspace.RTL?
1176
+ -rn.TAIL_ANGLE:rn.TAIL_ANGLE);m=g+m;m>Math.PI*2&&(m-=Math.PI*2);g=Math.sin(m)*f/rn.TAIL_BEND;f=Math.cos(m)*f/rn.TAIL_BEND;a.push("M"+h+","+T);a.push("C"+(h+f)+","+(T+g)+" "+d+","+e+" "+d+","+e);a.push("C"+d+","+e+" "+(b+f)+","+(c+g)+" "+b+","+c)}a.push("z");var z;(z=this.tail)==null||z.setAttribute("d",a.join(" "))}bringToFront(){var a,b=(a=this.svgRoot)==null?void 0:a.parentNode;return this.svgRoot&&(b==null?void 0:b.lastChild)!==this.svgRoot?(b==null||b.appendChild(this.svgRoot),!0):!1}getRelativeToSurfaceXY(){return new D(this.workspace.RTL?
1176
1177
  -this.relativeLeft+this.anchor.x-this.size.width:this.anchor.x+this.relativeLeft,this.anchor.y+this.relativeTop)}getBoundingRectangle(){var a=this.getRelativeToSurfaceXY();return new cc(a.y,a.y+this.size.height,a.x,a.x+this.size.width)}getSvgRoot(){return this.svgRoot}moveDuringDrag(a){this.moveTo(a.x,a.y);this.relativeLeft=this.workspace.RTL?this.anchor.x-a.x-this.size.width:a.x-this.anchor.x;this.relativeTop=a.y-this.anchor.y;this.renderTail()}setDragging(){}setDeleteStyle(){}isDeletable(){return!1}showContextMenu(){}isMovable(){return!0}startDrag(){return this.dragStrategy.startDrag()}drag(a){this.dragStrategy.drag(a)}endDrag(){this.dragStrategy.endDrag()}revertDrag(){this.dragStrategy.revertDrag()}select(){ob(this)}unselect(){ob(null)}getFocusableElement(){return this.focusableElement}getFocusableTree(){return this.workspace}onNodeFocus(){this.select();
1177
1178
  this.bringToFront();var a=this.getRelativeToSurfaceXY(),b=this.getSize();a=new cc(a.y,a.y+b.height,a.x,a.x+b.width);this.workspace.scrollBoundsIntoView(a)}onNodeBlur(){this.unselect()}canBeFocused(){return!0}getOwner(){return this.owner}recomputeAriaContext(){var a=this.getFocusableElement();if(a){ya(a,Ka.GROUP);var b,c=(b=this.getAriaLabel())==null?void 0:b.trim();l(a,p.LABEL,c?c:$.C.BUBBLE_LABEL_DEFAULT)}}setAriaLabelProvider(a){this.ariaLabelProvider=a;this.recomputeAriaContext()}getAriaLabel(){if(this.ariaLabelProvider){if(typeof this.ariaLabelProvider===
1178
- "string")return this.ariaLabelProvider;if(typeof this.ariaLabelProvider==="function")return this.ariaLabelProvider(this)}return null}};qn=rn;rn.BORDER_WIDTH=6;rn.DOUBLE_BORDER=qn.BORDER_WIDTH*2;rn.MIN_SIZE=qn.DOUBLE_BORDER;rn.TAIL_THICKNESS=1;rn.TAIL_ANGLE=20;rn.TAIL_BEND=4;rn.ANCHOR_RADIUS=8;var sn=class extends rn{constructor(a,b,c,d,e){super(b,c,d,void 0,e);this.workspace=b;this.anchor=c;this.ownerRect=d;this.owner=e;this.autoLayout=!0;b=new on(a);this.validateWorkspaceOptions(b);this.svgDialog=r(q.SVG,{x:rn.BORDER_WIDTH,y:rn.BORDER_WIDTH},this.contentContainer);a.parentWorkspace=this.workspace;this.miniWorkspace=this.newWorkspaceSvg(new on(a));this.miniWorkspace.internalIsMutator=!0;a=this.miniWorkspace.createDom("blocklyMutatorBackground");this.svgDialog.appendChild(a);b.languageTree&&
1179
+ "string")return this.ariaLabelProvider;if(typeof this.ariaLabelProvider==="function")return this.ariaLabelProvider(this)}return null}};rn=sn;sn.BORDER_WIDTH=6;sn.DOUBLE_BORDER=rn.BORDER_WIDTH*2;sn.MIN_SIZE=rn.DOUBLE_BORDER;sn.TAIL_THICKNESS=1;sn.TAIL_ANGLE=20;sn.TAIL_BEND=4;sn.ANCHOR_RADIUS=8;var tn=class extends sn{constructor(a,b,c,d,e){super(b,c,d,void 0,e);this.workspace=b;this.anchor=c;this.ownerRect=d;this.owner=e;this.autoLayout=!0;b=new pn(a);this.validateWorkspaceOptions(b);this.svgDialog=r(q.SVG,{x:sn.BORDER_WIDTH,y:sn.BORDER_WIDTH},this.contentContainer);a.parentWorkspace=this.workspace;this.miniWorkspace=this.newWorkspaceSvg(new pn(a));this.miniWorkspace.internalIsMutator=!0;a=this.miniWorkspace.createDom("blocklyMutatorBackground");this.svgDialog.appendChild(a);b.languageTree&&
1179
1180
  (a.insertBefore(this.miniWorkspace.addFlyout(q.G),this.miniWorkspace.getCanvas()),a=this.miniWorkspace.getFlyout(),a==null||a.init(this.miniWorkspace),a==null||a.show(b.languageTree));n(this.svgRoot,"blocklyMiniWorkspaceBubble");this.miniWorkspace.addChangeListener(this.onWorkspaceChange.bind(this));var f,g;(f=this.miniWorkspace.getFlyout())==null||(g=f.getWorkspace())==null||g.addChangeListener(this.onWorkspaceChange.bind(this));this.updateBubbleSize()}dispose(){this.miniWorkspace.dispose();super.dispose()}getWorkspace(){return this.miniWorkspace}addWorkspaceChangeListener(a){this.miniWorkspace.addChangeListener(a)}validateWorkspaceOptions(a){if(a.hasCategories)throw Error("The miniworkspace bubble does not support toolboxes with categories");
1180
1181
  if(a.hasTrashcan)throw Error("The miniworkspace bubble does not support trashcans");if(a.zoomOptions.controls||a.zoomOptions.wheel||a.zoomOptions.pinch)throw Error("The miniworkspace bubble does not support zooming");if(a.moveOptions.scrollbars||a.moveOptions.wheel||a.moveOptions.drag)throw Error("The miniworkspace bubble does not scrolling/moving the workspace");if(a.horizontalLayout)throw Error("The miniworkspace bubble does not support horizontal layouts");}onWorkspaceChange(){this.bumpBlocksIntoBounds();
1181
- this.updateBubbleSize()}bumpBlocksIntoBounds(){if(!this.miniWorkspace.isDragging()||qi.mover.isMoving())for(let a of this.miniWorkspace.getTopBlocks(!1)){let b=a.getRelativeToSurfaceXY();b.y<20&&a.moveBy(0,20-b.y);if(a.RTL){let c=-20,d=this.miniWorkspace.getFlyout();d&&(c-=d.getWidth());b.x>c&&a.moveBy(c-b.x,0)}else b.x<20&&a.moveBy(20-b.x,0)}}updateBubbleSize(){if(!this.miniWorkspace.isDragging()||qi.mover.isMoving()){this.autoLayout&&(this.autoLayout=!qi.mover.isMoving());var a=this.getSize(),b=
1182
- this.calculateWorkspaceSize();Math.abs(a.width-b.width)<sn.MINIMUM_VIEW_CHANGE&&Math.abs(a.height-b.height)<sn.MINIMUM_VIEW_CHANGE||(this.svgDialog.setAttribute("width",`${b.width}px`),this.svgDialog.setAttribute("height",`${b.height}px`),this.miniWorkspace.setCachedParentSvgSize(b.width,b.height),this.miniWorkspace.RTL&&this.miniWorkspace.getCanvas().setAttribute("transform",`translate(${b.width}, 0)`),this.setSize(new hc(b.width+rn.DOUBLE_BORDER,b.height+rn.DOUBLE_BORDER),this.autoLayout),this.miniWorkspace.resize(),
1183
- this.miniWorkspace.recordDragTargets())}}calculateWorkspaceSize(){var a=this.miniWorkspace.getCanvas().getBBox(),b=a.width+sn.MARGIN;a=a.height+sn.MARGIN;var c=this.miniWorkspace.getFlyout();if(c){let d=c.getWorkspace().getMetricsManager().getScrollMetrics();a=Math.max(a,d.height+20);b+=c.getWidth()}return new hc(b,a)}updateBlockStyles(){for(var a of this.miniWorkspace.getAllBlocks(!1))a.setStyle(a.getStyleName());var b;if(a=(b=this.miniWorkspace.getFlyout())==null?void 0:b.getWorkspace())for(let c of a.getAllBlocks(!1))c.setStyle(c.getStyleName())}moveDuringDrag(a){super.moveDuringDrag(a);
1184
- this.autoLayout=!1}moveTo(a,b){super.moveTo(a,b);this.miniWorkspace.recordDragTargets()}newWorkspaceSvg(){throw Error("The implementation of newWorkspaceSvg should be monkey-patched in by blockly.ts");}performAction(){$.t().focusTree(this.getWorkspace())}};sn.MINIMUM_VIEW_CHANGE=10;sn.MARGIN=rn.DOUBLE_BORDER*3;var tn=class{constructor(a){this.sourceBlock=a;this.offsetInBlock=new D(0,0);this.workspaceLocation=new D(0,0);this.svgRoot=null;this.tooltip=a;this.id=Lb()}getType(){throw Error("Icons must implement getType");}initView(a){if(!this.svgRoot){var b=this.sourceBlock;this.svgRoot=r(q.G,{"class":"blocklyIconGroup",id:this.id});b.getSvgRoot().appendChild(this.svgRoot);this.updateSvgRootOffset();k(this.svgRoot,"pointerdown",this,a);this.svgRoot.tooltip=this;Gf(this.svgRoot);this.recomputeAriaContext()}}dispose(){Hf(this.svgRoot);
1182
+ this.updateBubbleSize()}bumpBlocksIntoBounds(){if(!this.miniWorkspace.isDragging()||ri.mover.isMoving())for(let a of this.miniWorkspace.getTopBlocks(!1)){let b=a.getRelativeToSurfaceXY();b.y<20&&a.moveBy(0,20-b.y);if(a.RTL){let c=-20,d=this.miniWorkspace.getFlyout();d&&(c-=d.getWidth());b.x>c&&a.moveBy(c-b.x,0)}else b.x<20&&a.moveBy(20-b.x,0)}}updateBubbleSize(){if(!this.miniWorkspace.isDragging()||ri.mover.isMoving()){this.autoLayout&&(this.autoLayout=!ri.mover.isMoving());var a=this.getSize(),b=
1183
+ this.calculateWorkspaceSize();Math.abs(a.width-b.width)<tn.MINIMUM_VIEW_CHANGE&&Math.abs(a.height-b.height)<tn.MINIMUM_VIEW_CHANGE||(this.svgDialog.setAttribute("width",`${b.width}px`),this.svgDialog.setAttribute("height",`${b.height}px`),this.miniWorkspace.setCachedParentSvgSize(b.width,b.height),this.miniWorkspace.RTL&&this.miniWorkspace.getCanvas().setAttribute("transform",`translate(${b.width}, 0)`),this.setSize(new hc(b.width+sn.DOUBLE_BORDER,b.height+sn.DOUBLE_BORDER),this.autoLayout),this.miniWorkspace.resize(),
1184
+ this.miniWorkspace.recordDragTargets())}}calculateWorkspaceSize(){var a=this.miniWorkspace.getCanvas().getBBox(),b=a.width+tn.MARGIN;a=a.height+tn.MARGIN;var c=this.miniWorkspace.getFlyout();if(c){let d=c.getWorkspace().getMetricsManager().getScrollMetrics();a=Math.max(a,d.height+20);b+=c.getWidth()}return new hc(b,a)}updateBlockStyles(){for(var a of this.miniWorkspace.getAllBlocks(!1))a.setStyle(a.getStyleName());var b;if(a=(b=this.miniWorkspace.getFlyout())==null?void 0:b.getWorkspace())for(let c of a.getAllBlocks(!1))c.setStyle(c.getStyleName())}moveDuringDrag(a){super.moveDuringDrag(a);
1185
+ this.autoLayout=!1}moveTo(a,b){super.moveTo(a,b);this.miniWorkspace.recordDragTargets()}newWorkspaceSvg(){throw Error("The implementation of newWorkspaceSvg should be monkey-patched in by blockly.ts");}performAction(){$.t().focusTree(this.getWorkspace())}};tn.MINIMUM_VIEW_CHANGE=10;tn.MARGIN=sn.DOUBLE_BORDER*3;var un=class{constructor(a){this.sourceBlock=a;this.offsetInBlock=new D(0,0);this.workspaceLocation=new D(0,0);this.svgRoot=null;this.tooltip=a;this.id=Lb()}getType(){throw Error("Icons must implement getType");}initView(a){if(!this.svgRoot){var b=this.sourceBlock;this.svgRoot=r(q.G,{"class":"blocklyIconGroup",id:this.id});b.getSvgRoot().appendChild(this.svgRoot);this.updateSvgRootOffset();k(this.svgRoot,"pointerdown",this,a);this.svgRoot.tooltip=this;Hf(this.svgRoot);this.recomputeAriaContext()}}dispose(){If(this.svgRoot);
1185
1186
  Oa(this.svgRoot)}getWeight(){return-1}getSize(){return new hc(0,0)}setTooltip(a){this.tooltip=a!=null?a:this.sourceBlock}getTooltip(){return this.tooltip}applyColour(){}updateEditable(){}updateCollapsed(){this.svgRoot&&(this.sourceBlock.isCollapsed()?this.svgRoot.style.display="none":this.svgRoot.style.display="block",xd(this)&&this.setBubbleVisible(!1))}hideForInsertionMarker(){this.svgRoot&&(this.svgRoot.style.display="none")}isShownWhenCollapsed(){return!1}setOffsetInBlock(a){this.offsetInBlock=
1186
1187
  a;this.updateSvgRootOffset()}updateSvgRootOffset(){var a;(a=this.svgRoot)==null||a.setAttribute("transform",`translate(${this.offsetInBlock.x}, ${this.offsetInBlock.y})`)}onLocationChange(a){this.workspaceLocation=D.sum(a,this.offsetInBlock)}onClick(){}isClickableInFlyout(){return!0}getFocusableElement(){var a=this.svgRoot;if(!a)throw Error("Attempting to focus uninitialized icon.");return a}getFocusableTree(){return this.sourceBlock.workspace}onNodeFocus(){var a=this.sourceBlock.getBoundingRectangle();
1187
1188
  a=new cc(a.top+this.offsetInBlock.y,a.top+this.offsetInBlock.y+this.getSize().height,a.left+this.offsetInBlock.x,a.left+this.offsetInBlock.x+this.getSize().width);this.sourceBlock.workspace.scrollBoundsIntoView(a)}onNodeBlur(){}canBeFocused(){return!0}performAction(){this.onClick();cd().then(()=>{if(xd(this)&&this.bubbleIsVisible()){let a=this.getBubble();a&&$.t().focusNode(a)}})}getSourceBlock(){return this.sourceBlock}showContextMenu(a){this.getSourceBlock().showContextMenu(a)}recomputeAriaContext(){var a=
1188
- this.getFocusableElement();if(a){var b,c=(b=this.sourceBlock.workspace.targetWorkspace)==null?void 0:b.getFlyout();if(c&&!this.isClickableInFlyout(c.autoClose))l(a,p.HIDDEN,!0);else{za(a,p.HIDDEN);ya(a,Ka.BUTTON);var d;b=(d=this.getAriaLabel())!=null?d:$.C.ICON_LABEL_DEFAULT;l(a,p.LABEL,b)}}}getAriaLabel(){return null}};$.rh=class extends tn{constructor(a,b){super(b);this.flyoutBlockTypes=a;this.sourceBlock=b;this.saveConnectionsListener=this.updateWorkspacePid=this.rootBlock=this.miniWorkspaceBubble=null}getType(){return $.rh.TYPE}initView(a){this.svgRoot||(super.initView(a),r(q.RECT,{"class":"blocklyIconShape",rx:"4",ry:"4",height:"16",width:"16"},this.svgRoot),r(q.PATH,{"class":"blocklyIconSymbol",d:"m4.203,7.296 0,1.368 -0.92,0.677 -0.11,0.41 0.9,1.559 0.41,0.11 1.043,-0.457 1.187,0.683 0.127,1.134 0.3,0.3 1.8,0 0.3,-0.299 0.127,-1.138 1.185,-0.682 1.046,0.458 0.409,-0.11 0.9,-1.559 -0.11,-0.41 -0.92,-0.677 0,-1.366 0.92,-0.677 0.11,-0.41 -0.9,-1.559 -0.409,-0.109 -1.046,0.458 -1.185,-0.682 -0.127,-1.138 -0.3,-0.299 -1.8,0 -0.3,0.3 -0.126,1.135 -1.187,0.682 -1.043,-0.457 -0.41,0.11 -0.899,1.559 0.108,0.409z"},
1189
- this.svgRoot),r(q.CIRCLE,{"class":"blocklyIconShape",r:"2.7",cx:"8",cy:"8"},this.svgRoot),n(this.svgRoot,"blocklyMutatorIcon"))}dispose(){super.dispose();var a;(a=this.miniWorkspaceBubble)==null||a.dispose()}getWeight(){return $.rh.WEIGHT}getSize(){return new hc(17,17)}applyColour(){super.applyColour();var a;(a=this.miniWorkspaceBubble)==null||a.setColour(this.sourceBlock.getColour());var b;(b=this.miniWorkspaceBubble)==null||b.updateBlockStyles()}updateCollapsed(){super.updateCollapsed();this.sourceBlock.isCollapsed()&&
1189
+ this.getFocusableElement();if(a){var b,c=(b=this.sourceBlock.workspace.targetWorkspace)==null?void 0:b.getFlyout();if(c&&!this.isClickableInFlyout(c.autoClose))l(a,p.HIDDEN,!0);else{za(a,p.HIDDEN);ya(a,Ka.BUTTON);var d;b=(d=this.getAriaLabel())!=null?d:$.C.ICON_LABEL_DEFAULT;l(a,p.LABEL,b)}}}getAriaLabel(){return null}};$.sh=class extends un{constructor(a,b){super(b);this.flyoutBlockTypes=a;this.sourceBlock=b;this.saveConnectionsListener=this.updateWorkspacePid=this.rootBlock=this.miniWorkspaceBubble=null}getType(){return $.sh.TYPE}initView(a){this.svgRoot||(super.initView(a),r(q.RECT,{"class":"blocklyIconShape",rx:"4",ry:"4",height:"16",width:"16"},this.svgRoot),r(q.PATH,{"class":"blocklyIconSymbol",d:"m4.203,7.296 0,1.368 -0.92,0.677 -0.11,0.41 0.9,1.559 0.41,0.11 1.043,-0.457 1.187,0.683 0.127,1.134 0.3,0.3 1.8,0 0.3,-0.299 0.127,-1.138 1.185,-0.682 1.046,0.458 0.409,-0.11 0.9,-1.559 -0.11,-0.41 -0.92,-0.677 0,-1.366 0.92,-0.677 0.11,-0.41 -0.9,-1.559 -0.409,-0.109 -1.046,0.458 -1.185,-0.682 -0.127,-1.138 -0.3,-0.299 -1.8,0 -0.3,0.3 -0.126,1.135 -1.187,0.682 -1.043,-0.457 -0.41,0.11 -0.899,1.559 0.108,0.409z"},
1190
+ this.svgRoot),r(q.CIRCLE,{"class":"blocklyIconShape",r:"2.7",cx:"8",cy:"8"},this.svgRoot),n(this.svgRoot,"blocklyMutatorIcon"))}dispose(){super.dispose();var a;(a=this.miniWorkspaceBubble)==null||a.dispose()}getWeight(){return $.sh.WEIGHT}getSize(){return new hc(17,17)}applyColour(){super.applyColour();var a;(a=this.miniWorkspaceBubble)==null||a.setColour(this.sourceBlock.getColour());var b;(b=this.miniWorkspaceBubble)==null||b.updateBlockStyles()}updateCollapsed(){super.updateCollapsed();this.sourceBlock.isCollapsed()&&
1190
1191
  this.setBubbleVisible(!1)}onLocationChange(a){super.onLocationChange(a);var b;(b=this.miniWorkspaceBubble)==null||b.setAnchorLocation(this.getAnchorLocation())}onClick(){super.onClick();this.sourceBlock.isEditable()&&this.setBubbleVisible(!this.bubbleIsVisible())}isClickableInFlyout(){return!1}bubbleIsVisible(){return!!this.miniWorkspaceBubble}setBubbleVisible(a){var b=this;return(0,M.asyncExecutePromiseGeneratorFunction)(function*(){if(b.bubbleIsVisible()!==a){yield cd();if(a){b.miniWorkspaceBubble=
1191
- new sn(b.getMiniWorkspaceConfig(),b.sourceBlock.workspace,b.getAnchorLocation(),b.getBubbleOwnerRect(),b);b.applyColour();b.createRootBlock();b.addSaveConnectionsListener();let c;(c=b.miniWorkspaceBubble)==null||c.addWorkspaceChangeListener(b.createMiniWorkspaceChangeListener());b.miniWorkspaceBubble.setAriaLabelProvider($.C.WORKSPACE_LABEL_MUTATOR_WORKSPACE)}else{let c;(c=b.miniWorkspaceBubble)==null||c.dispose();b.miniWorkspaceBubble=null;b.saveConnectionsListener&&b.sourceBlock.workspace.removeChangeListener(b.saveConnectionsListener);
1192
+ new tn(b.getMiniWorkspaceConfig(),b.sourceBlock.workspace,b.getAnchorLocation(),b.getBubbleOwnerRect(),b);b.applyColour();b.createRootBlock();b.addSaveConnectionsListener();let c;(c=b.miniWorkspaceBubble)==null||c.addWorkspaceChangeListener(b.createMiniWorkspaceChangeListener());b.miniWorkspaceBubble.setAriaLabelProvider($.C.WORKSPACE_LABEL_MUTATOR_WORKSPACE)}else{let c;(c=b.miniWorkspaceBubble)==null||c.dispose();b.miniWorkspaceBubble=null;b.saveConnectionsListener&&b.sourceBlock.workspace.removeChangeListener(b.saveConnectionsListener);
1192
1193
  b.saveConnectionsListener=null}w(new (u(v.BUBBLE_OPEN))(b.sourceBlock,a,"mutator"));b.recomputeAriaContext()}})}getBubble(){return this.miniWorkspaceBubble}getMiniWorkspaceConfig(){var a,b={disable:!1,media:this.sourceBlock.workspace.options.pathToMedia,rtl:this.sourceBlock.RTL,renderer:this.sourceBlock.workspace.options.renderer,rendererOverrides:(a=this.sourceBlock.workspace.options.rendererOverrides)!=null?a:void 0};this.flyoutBlockTypes.length&&(b.toolbox={kind:"flyoutToolbox",contents:this.flyoutBlockTypes.map(c=>
1193
1194
  ({kind:"block",type:c}))});return b}getAnchorLocation(){return D.sum(this.workspaceLocation,new D(8.5,8.5))}getBubbleOwnerRect(){var a=this.sourceBlock.getSvgRoot().getBBox();return new cc(a.y,a.y+a.height,a.x,a.x+a.width)}createRootBlock(){if(!this.sourceBlock.decompose)throw Error("Blocks with mutator icons must include a decompose method");this.rootBlock=this.sourceBlock.decompose(this.miniWorkspaceBubble.getWorkspace());for(var a of this.rootBlock.getDescendants(!1))a.queueRender();this.rootBlock.setMovable(!1);
1194
1195
  this.rootBlock.setDeletable(!1);var b,c,d,e;a=(e=(b=this.miniWorkspaceBubble)==null?void 0:(c=b.getWorkspace())==null?void 0:(d=c.getFlyout())==null?void 0:d.getWidth())!=null?e:0;this.rootBlock.moveBy(this.rootBlock.RTL?-(a+16):16,16)}addSaveConnectionsListener(){this.sourceBlock.saveConnections&&this.rootBlock&&(this.saveConnectionsListener=()=>{this.sourceBlock.saveConnections&&this.rootBlock&&this.sourceBlock.saveConnections(this.rootBlock)},this.saveConnectionsListener(),this.sourceBlock.workspace.addChangeListener(this.saveConnectionsListener))}createMiniWorkspaceChangeListener(){return a=>
1195
- {$.rh.isIgnorableMutatorEvent(a)||this.updateWorkspacePid||(this.updateWorkspacePid=setTimeout(()=>{this.updateWorkspacePid=null;this.recomposeSourceBlock()},0))}}static isIgnorableMutatorEvent(a){return a.isUiEvent||a.type===v.BLOCK_CREATE||a.type===v.BLOCK_CHANGE&&a.element==="disabled"}recomposeSourceBlock(){if(this.rootBlock){if(!this.sourceBlock.compose)throw Error("Blocks with mutator icons must include a compose method");var a=$.gd;a||$.B(!0);var b=Dl.getExtraBlockState_(this.sourceBlock);
1196
- this.sourceBlock.compose(this.rootBlock);var c=Dl.getExtraBlockState_(this.sourceBlock);b!==c&&w(new (u(v.BLOCK_CHANGE))(this.sourceBlock,"mutation",null,b,c));$.B(a)}}getWorkspace(){var a;return(a=this.miniWorkspaceBubble)==null?void 0:a.getWorkspace()}getAriaLabel(){return this.bubbleIsVisible()?$.C.ICON_LABEL_MUTATOR_OPEN:$.C.ICON_LABEL_MUTATOR_CLOSED}};$.rh.TYPE=Yg.MUTATOR;$.rh.WEIGHT=1;var mh=Object.create(null),un={allExtensions:mh};$.nh("parent_tooltip_when_inline",function(){var a=this.tooltip;this.setTooltip(function(){var b=this.getParent();return b&&b.getInputsInline()&&b.tooltip||a}.bind(this))});var vn={TEST_ONLY:un};vn.apply=vh;vn.buildTooltipForDropdown=$.xh;vn.buildTooltipWithFieldText=$.zh;vn.isRegistered=th;vn.register=$.nh;vn.registerMixin=$.oh;vn.registerMutator=$.sh;
1197
- vn.runAfterPageLoad=function(a){if(typeof document!=="object")throw Error("runAfterPageLoad() requires browser document.");if(document.readyState==="complete")a();else{let b=setInterval(function(){document.readyState==="complete"&&(clearInterval(b),a())},10)}};vn.unregister=function(a){th(a)?delete mh[a]:console.warn('No extension mapping for name "'+a+'" found to unregister')};var wn={};wn.arc=Fh;wn.curve=Ah;wn.line=Eh;wn.lineOnAxis=J;wn.lineTo=Dh;wn.moveBy=Ch;wn.moveTo=Bh;wn.point=I;var xn={};xn.Coordinate=D;xn.KeyCodes=L;xn.Rect=cc;xn.Size=hc;xn.Svg=q;xn.aria=Lk;xn.array=Ak;xn.browserEvents=zk;xn.colour=Vm;xn.deprecation=Tk;xn.dom=Nk;xn.extensions=vn;xn.idGenerator=Yk;xn.math=Rm;xn.object=Qk;xn.parsing=Wm;xn.string=Tm;xn.style=$k;xn.svgMath=al;xn.svgPaths=wn;xn.toolbox=fl;xn.userAgent=yk;xn.xml=dl;var yn=class extends rn{constructor(a,b,c,d){super(a,b,c,void 0,d);this.workspace=a;this.anchor=b;this.ownerRect=c;this.owner=d;this.resizePointerMoveListener=this.resizePointerUpListener=null;this.sizeChangeListeners=[];this.locationChangeListeners=[];this.DEFAULT_SIZE=new hc(160+rn.DOUBLE_BORDER,80+rn.DOUBLE_BORDER);this.MIN_SIZE=new hc(45+rn.DOUBLE_BORDER,20+rn.DOUBLE_BORDER);this.editable=!0;this.textChangeListener=()=>{this.recomputeAriaContext()};n(this.svgRoot,"blocklyTextInputBubble");this.editor=
1198
- new en(a,this.id,()=>{$.t().focusNode(this)});this.contentContainer.appendChild(this.editor.getDom());this.resizeGroup=this.createResizeHandle(this.svgRoot,a);this.setSize(this.DEFAULT_SIZE,!0);this.addTextChangeListener(this.textChangeListener)}getText(){return this.editor.getText()}setText(a){this.editor.setText(a)}setEditable(a){this.editable=a;this.editor.setEditable(a)}isEditable(){return this.editable}addTextChangeListener(a){this.editor.addTextChangeListener(a)}addSizeChangeListener(a){this.sizeChangeListeners.push(a)}addLocationChangeListener(a){this.locationChangeListeners.push(a)}createResizeHandle(a,
1199
- b){a=r(q.IMAGE,{"class":"blocklyResizeHandle",href:`${b.options.pathToMedia}resize-handle.svg`},a);k(a,"pointerdown",this,this.onResizePointerDown);return a}setSize(a,b=!1){a.width=Math.max(a.width,this.MIN_SIZE.width);a.height=Math.max(a.height,this.MIN_SIZE.height);var c=a.width-rn.DOUBLE_BORDER,d=a.height-rn.DOUBLE_BORDER;this.editor.updateSize(new hc(c,d),new hc(0,0));this.editor.getDom().setAttribute("x",`${rn.DOUBLE_BORDER/2}`);this.editor.getDom().setAttribute("y",`${rn.DOUBLE_BORDER/2}`);
1200
- this.resizeGroup.setAttribute("y",`${d}`);this.workspace.RTL?this.resizeGroup.setAttribute("x",`${-rn.DOUBLE_BORDER}`):this.resizeGroup.setAttribute("x",`${c}`);super.setSize(a,b);this.onSizeChange()}getSize(){return super.getSize()}moveDuringDrag(a){super.moveDuringDrag(a);this.onLocationChange()}setPositionRelativeToAnchor(a,b){super.setPositionRelativeToAnchor(a,b);this.onLocationChange()}positionByRect(a=new cc(0,0,0,0)){super.positionByRect(a);this.onLocationChange()}onResizePointerDown(a){this.bringToFront();
1201
- oa(a)||(Rg(this.workspace,a,new D(this.workspace.RTL?-this.getSize().width:this.getSize().width,this.getSize().height)),this.resizePointerUpListener=k(document,"pointerup",this,this.onResizePointerUp),this.resizePointerMoveListener=k(document,"pointermove",this,this.onResizePointerMove),this.workspace.hideChaff());a.stopPropagation()}onResizePointerUp(){ha=null;this.resizePointerUpListener&&(la(this.resizePointerUpListener),this.resizePointerUpListener=null);this.resizePointerMoveListener&&(la(this.resizePointerMoveListener),
1202
- this.resizePointerMoveListener=null)}onResizePointerMove(a){a=Sg(this.workspace,a);this.setSize(new hc(this.workspace.RTL?-a.x:a.x,a.y),!1);this.onSizeChange()}onSizeChange(){for(let a of this.sizeChangeListeners)a()}onLocationChange(){for(let a of this.locationChangeListeners)a()}getEditor(){return this.editor}performAction(){$.t().focusNode(this.getEditor())}dispose(){super.dispose();this.editor.removeTextChangeListener(this.textChangeListener)}};ta("\n.blocklyTextInputBubble .blocklyTextarea {\n background-color: var(--commentFillColour);\n border: 0;\n box-sizing: border-box;\n display: block;\n outline: 0;\n padding: 5px;\n resize: none;\n width: 100%;\n height: 100%;\n}\n");var zn=class{constructor(a){this.connectionChecker=a;this.connections=[]}addConnection(a,b){b=this.calculateIndexForYPos(b);this.connections.splice(b,0,a)}findIndexOfConnection(a,b){if(!this.connections.length)return-1;var c=this.calculateIndexForYPos(b);if(c>=this.connections.length)return-1;b=a.y;for(var d=c;d>=0&&this.connections[d].y===b;){if(this.connections[d]===a)return d;d--}for(d=c;d<this.connections.length&&this.connections[d].y===b;){if(this.connections[d]===a)return d;d++}return-1}calculateIndexForYPos(a){if(!this.connections.length)return 0;
1203
- for(var b=0,c=this.connections.length;b<c;){let d=Math.floor((b+c)/2);if(this.connections[d].y<a)b=d+1;else if(this.connections[d].y>a)c=d;else{b=d;break}}return b}removeConnection(a,b){a=this.findIndexOfConnection(a,b);if(a===-1)throw Error("Unable to find connection in connectionDB.");this.connections.splice(a,1)}getNeighbours(a,b){function c(z){var E=e-d[z].x,H=f-d[z].y;Math.sqrt(E*E+H*H)<=b&&m.push(d[z]);return H<b}var d=this.connections,e=a.x,f=a.y;a=0;for(var g=d.length-2,h=g;a<h;)d[h].y<f?
1204
- a=h:g=h,h=Math.floor((a+g)/2);var m=[];g=a=h;if(d.length){for(;a>=0&&c(a);)a--;do g++;while(g<d.length&&c(g))}return m}isInYRange(a,b,c){return Math.abs(this.connections[a].y-b)<=c}searchForClosest(a,b,c){if(!this.connections.length)return{connection:null,radius:b};var d=a.y,e=a.x;a.x=e+c.x;a.y=d+c.y;var f=this.calculateIndexForYPos(a.y);c=null;for(var g=b,h,m=f-1;m>=0&&this.isInYRange(m,a.y,b);)h=this.connections[m],this.connectionChecker.canConnect(a,h,!0,g)&&(c=h,g=h.distanceFrom(a)),m--;for(;f<
1205
- this.connections.length&&this.isInYRange(f,a.y,b);)h=this.connections[f],this.connectionChecker.canConnect(a,h,!0,g)&&(c=h,g=h.distanceFrom(a)),f++;a.x=e;a.y=d;return{connection:c,radius:g}}static init(a){var b=[];b[G.INPUT_VALUE]=new zn(a);b[G.OUTPUT_VALUE]=new zn(a);b[G.NEXT_STATEMENT]=new zn(a);b[G.PREVIOUS_STATEMENT]=new zn(a);return b}};var An=class{constructor(a,b){this.type=b;this.targetConnection=null;this.disposed=!1;this.shadowDom=this.check=null;this.y=this.x=0;this.shadowState=null;this.sourceBlock_=a;if(a.id.includes("_connection"))throw Error(`Connection ID indicator is contained in block ID. This will cause problems with focus: ${a.id}.`);this.id=`${a.id}_connection_${Lb()}`}connect_(a){var b=G.INPUT_VALUE,c=this.getSourceBlock(),d=a.getSourceBlock();a.isConnected()&&a.disconnectInternal(!1);if(this.isConnected()){let g=
1206
- this.stashShadowState(),h=this.targetBlock();if(h.isShadow())h.dispose(!1);else{this.disconnectInternal();var e=h}this.applyShadowState(g)}if(Vb()){var f=new (u(v.BLOCK_MOVE))(d);f.setReason(["connect"])}if(!this||!a)throw Error("Cannot connect null connections.");this.targetConnection=a;a.targetConnection=this;d.setParent(c);f&&(f.recordNew(),w(f));if(e&&(a=this.type===b?e.outputConnection:e.previousConnection))if(d=An.getConnectionForOrphanedConnection(d,a))a.connect(d);else a.onFailedConnect(this)}dispose(){if(this.isConnected()){this.isSuperior()&&
1196
+ {$.sh.isIgnorableMutatorEvent(a)||this.updateWorkspacePid||(this.updateWorkspacePid=setTimeout(()=>{this.updateWorkspacePid=null;this.recomposeSourceBlock()},0))}}static isIgnorableMutatorEvent(a){return a.isUiEvent||a.type===v.BLOCK_CREATE||a.type===v.BLOCK_CHANGE&&a.element==="disabled"}recomposeSourceBlock(){if(this.rootBlock){if(!this.sourceBlock.compose)throw Error("Blocks with mutator icons must include a compose method");var a=$.gd;a||$.B(!0);var b=El.getExtraBlockState_(this.sourceBlock);
1197
+ this.sourceBlock.compose(this.rootBlock);var c=El.getExtraBlockState_(this.sourceBlock);b!==c&&w(new (u(v.BLOCK_CHANGE))(this.sourceBlock,"mutation",null,b,c));$.B(a)}}getWorkspace(){var a;return(a=this.miniWorkspaceBubble)==null?void 0:a.getWorkspace()}getAriaLabel(){return this.bubbleIsVisible()?$.C.ICON_LABEL_MUTATOR_OPEN:$.C.ICON_LABEL_MUTATOR_CLOSED}};$.sh.TYPE=Zg.MUTATOR;$.sh.WEIGHT=1;var nh=Object.create(null),vn={allExtensions:nh};$.oh("parent_tooltip_when_inline",function(){var a=this.tooltip;this.setTooltip(function(){var b=this.getParent();return b&&b.getInputsInline()&&b.tooltip||a}.bind(this))});var wn={TEST_ONLY:vn};wn.apply=wh;wn.buildTooltipForDropdown=$.yh;wn.buildTooltipWithFieldText=$.Ah;wn.isRegistered=uh;wn.register=$.oh;wn.registerMixin=$.ph;wn.registerMutator=$.th;
1198
+ wn.runAfterPageLoad=function(a){if(typeof document!=="object")throw Error("runAfterPageLoad() requires browser document.");if(document.readyState==="complete")a();else{let b=setInterval(function(){document.readyState==="complete"&&(clearInterval(b),a())},10)}};wn.unregister=function(a){uh(a)?delete nh[a]:console.warn('No extension mapping for name "'+a+'" found to unregister')};var xn={};xn.arc=Gh;xn.curve=Bh;xn.line=Fh;xn.lineOnAxis=I;xn.lineTo=Eh;xn.moveBy=Dh;xn.moveTo=Ch;xn.point=H;var yn={};yn.Coordinate=D;yn.KeyCodes=L;yn.Rect=cc;yn.Size=hc;yn.Svg=q;yn.aria=Mk;yn.array=Bk;yn.browserEvents=Ak;yn.colour=Wm;yn.deprecation=Uk;yn.dom=Ok;yn.extensions=wn;yn.idGenerator=Zk;yn.math=Sm;yn.object=Rk;yn.parsing=Xm;yn.string=Um;yn.style=al;yn.svgMath=bl;yn.svgPaths=xn;yn.toolbox=gl;yn.userAgent=zk;yn.xml=el;var zn=class extends sn{constructor(a,b,c,d){super(a,b,c,void 0,d);this.workspace=a;this.anchor=b;this.ownerRect=c;this.owner=d;this.resizePointerMoveListener=this.resizePointerUpListener=null;this.sizeChangeListeners=[];this.locationChangeListeners=[];this.DEFAULT_SIZE=new hc(160+sn.DOUBLE_BORDER,80+sn.DOUBLE_BORDER);this.MIN_SIZE=new hc(45+sn.DOUBLE_BORDER,20+sn.DOUBLE_BORDER);this.editable=!0;this.textChangeListener=()=>{this.recomputeAriaContext()};n(this.svgRoot,"blocklyTextInputBubble");this.editor=
1199
+ new fn(a,this.id,()=>{$.t().focusNode(this)});this.contentContainer.appendChild(this.editor.getDom());this.resizeGroup=this.createResizeHandle(this.svgRoot,a);this.setSize(this.DEFAULT_SIZE,!0);this.addTextChangeListener(this.textChangeListener)}getText(){return this.editor.getText()}setText(a){this.editor.setText(a)}setEditable(a){this.editable=a;this.editor.setEditable(a)}isEditable(){return this.editable}addTextChangeListener(a){this.editor.addTextChangeListener(a)}addSizeChangeListener(a){this.sizeChangeListeners.push(a)}addLocationChangeListener(a){this.locationChangeListeners.push(a)}createResizeHandle(a,
1200
+ b){a=r(q.IMAGE,{"class":"blocklyResizeHandle",href:`${b.options.pathToMedia}resize-handle.svg`},a);k(a,"pointerdown",this,this.onResizePointerDown);return a}setSize(a,b=!1){a.width=Math.max(a.width,this.MIN_SIZE.width);a.height=Math.max(a.height,this.MIN_SIZE.height);var c=a.width-sn.DOUBLE_BORDER,d=a.height-sn.DOUBLE_BORDER;this.editor.updateSize(new hc(c,d),new hc(0,0));this.editor.getDom().setAttribute("x",`${sn.DOUBLE_BORDER/2}`);this.editor.getDom().setAttribute("y",`${sn.DOUBLE_BORDER/2}`);
1201
+ this.resizeGroup.setAttribute("y",`${d}`);this.workspace.RTL?this.resizeGroup.setAttribute("x",`${-sn.DOUBLE_BORDER}`):this.resizeGroup.setAttribute("x",`${c}`);super.setSize(a,b);this.onSizeChange()}getSize(){return super.getSize()}moveDuringDrag(a){super.moveDuringDrag(a);this.onLocationChange()}setPositionRelativeToAnchor(a,b){super.setPositionRelativeToAnchor(a,b);this.onLocationChange()}positionByRect(a=new cc(0,0,0,0)){super.positionByRect(a);this.onLocationChange()}onResizePointerDown(a){this.bringToFront();
1202
+ na(a)||(Sg(this.workspace,a,new D(this.workspace.RTL?-this.getSize().width:this.getSize().width,this.getSize().height)),this.resizePointerUpListener=k(document,"pointerup",this,this.onResizePointerUp),this.resizePointerMoveListener=k(document,"pointermove",this,this.onResizePointerMove),this.workspace.hideChaff());a.stopPropagation()}onResizePointerUp(){ha=null;this.resizePointerUpListener&&(ka(this.resizePointerUpListener),this.resizePointerUpListener=null);this.resizePointerMoveListener&&(ka(this.resizePointerMoveListener),
1203
+ this.resizePointerMoveListener=null)}onResizePointerMove(a){a=Tg(this.workspace,a);this.setSize(new hc(this.workspace.RTL?-a.x:a.x,a.y),!1);this.onSizeChange()}onSizeChange(){for(let a of this.sizeChangeListeners)a()}onLocationChange(){for(let a of this.locationChangeListeners)a()}getEditor(){return this.editor}performAction(){$.t().focusNode(this.getEditor())}dispose(){super.dispose();this.editor.removeTextChangeListener(this.textChangeListener)}};ta("\n.blocklyTextInputBubble .blocklyTextarea {\n background-color: var(--commentFillColour);\n border: 0;\n box-sizing: border-box;\n display: block;\n outline: 0;\n padding: 5px;\n resize: none;\n width: 100%;\n height: 100%;\n}\n");var An=class{constructor(a){this.connectionChecker=a;this.connections=[];this.bulkCounter=0}addConnection(a,b){b=this.calculateIndexForYPos(b);this.connections.splice(b,0,a)}findIndexOfConnection(a,b){if(!this.connections.length)return-1;var c=this.calculateIndexForYPos(b);if(c>=this.connections.length)return-1;b=a.y;for(var d=c;d>=0&&this.connections[d].y===b;){if(this.connections[d]===a)return d;d--}for(d=c;d<this.connections.length&&this.connections[d].y===b;){if(this.connections[d]===a)return d;
1204
+ d++}return-1}calculateIndexForYPos(a){if(!this.connections.length)return 0;for(var b=0,c=this.connections.length;b<c;){let d=Math.floor((b+c)/2);if(this.connections[d].y<a)b=d+1;else if(this.connections[d].y>a)c=d;else{b=d;break}}return b}removeConnection(a,b){a=this.findIndexOfConnection(a,b);if(a===-1)throw Error("Unable to find connection in connectionDB.");this.connections.splice(a,1)}reorderConnection(a,b){this.bulkCounter===0&&(this.removeConnection(a,a.y),this.addConnection(a,b))}getNeighbours(a,
1205
+ b){function c(z){var E=e-d[z].x,J=f-d[z].y;Math.sqrt(E*E+J*J)<=b&&m.push(d[z]);return J<b}var d=this.connections,e=a.x,f=a.y;a=0;for(var g=d.length-2,h=g;a<h;)d[h].y<f?a=h:g=h,h=Math.floor((a+g)/2);var m=[];g=a=h;if(d.length){for(;a>=0&&c(a);)a--;do g++;while(g<d.length&&c(g))}return m}isInYRange(a,b,c){return Math.abs(this.connections[a].y-b)<=c}searchForClosest(a,b,c){if(!this.connections.length)return{connection:null,radius:b};var d=a.y,e=a.x;a.x=e+c.x;a.y=d+c.y;var f=this.calculateIndexForYPos(a.y);
1206
+ c=null;for(var g=b,h,m=f-1;m>=0&&this.isInYRange(m,a.y,b);)h=this.connections[m],this.connectionChecker.canConnect(a,h,!0,g)&&(c=h,g=h.distanceFrom(a)),m--;for(;f<this.connections.length&&this.isInYRange(f,a.y,b);)h=this.connections[f],this.connectionChecker.canConnect(a,h,!0,g)&&(c=h,g=h.distanceFrom(a)),f++;a.x=e;a.y=d;return{connection:c,radius:g}}beginBulkUpdates(){this.bulkCounter++}endBulkUpdates(){if(this.bulkCounter===0)throw Error("Bulk updates are already ended.");this.bulkCounter--;this.bulkCounter===
1207
+ 0&&this.reorderConnections()}reorderConnections(){this.connections.sort((a,b)=>a.y-b.y)}static init(a){var b=[];b[G.INPUT_VALUE]=new An(a);b[G.OUTPUT_VALUE]=new An(a);b[G.NEXT_STATEMENT]=new An(a);b[G.PREVIOUS_STATEMENT]=new An(a);return b}};var Bn=class{constructor(a,b){this.type=b;this.targetConnection=null;this.disposed=!1;this.shadowDom=this.check=null;this.y=this.x=0;this.shadowState=null;this.sourceBlock_=a;if(a.id.includes("_connection"))throw Error(`Connection ID indicator is contained in block ID. This will cause problems with focus: ${a.id}.`);this.id=`${a.id}_connection_${Lb()}`}connect_(a){var b=G.INPUT_VALUE,c=this.getSourceBlock(),d=a.getSourceBlock();a.isConnected()&&a.disconnectInternal(!1);if(this.isConnected()){let g=
1208
+ this.stashShadowState(),h=this.targetBlock();if(h.isShadow())h.dispose(!1);else{this.disconnectInternal();var e=h}this.applyShadowState(g)}if(Vb()){var f=new (u(v.BLOCK_MOVE))(d);f.setReason(["connect"])}if(!this||!a)throw Error("Cannot connect null connections.");this.targetConnection=a;a.targetConnection=this;d.setParent(c);f&&(f.recordNew(),w(f));if(e&&(a=this.type===b?e.outputConnection:e.previousConnection))if(d=Bn.getConnectionForOrphanedConnection(d,a))a.connect(d);else a.onFailedConnect(this)}dispose(){if(this.isConnected()){this.isSuperior()&&
1207
1209
  this.setShadowStateInternal();let a=this.targetBlock();a&&!a.isDeadOrDying()&&a.unplug()}this.disposed=!0}getSourceBlock(){return this.sourceBlock_}isSuperior(){return this.type===G.INPUT_VALUE||this.type===G.NEXT_STATEMENT}isConnected(){return!!this.targetConnection}getConnectionChecker(){return this.sourceBlock_.workspace.connectionChecker}onFailedConnect(){}connect(a){if(this.targetConnection===a)return!0;if(this.getConnectionChecker().canConnect(this,a,!1)){let b=$.gd;b||$.B(!0);this.isSuperior()?
1208
1210
  this.connect_(a):a.connect_(this);$.B(b)}return this.isConnected()}disconnect(){this.disconnectInternal()}disconnectInternal(a=!0){var {parentConnection:b,childConnection:c}=this.getParentAndChildConnections();if(!b||!c)throw Error("Source connection not connected.");var d=$.gd;d||$.B(!0);if(Vb()){var e=new (u(v.BLOCK_MOVE))(c.getSourceBlock());e.setReason(["disconnect"])}var f=this.targetConnection;f&&(f.targetConnection=null);this.targetConnection=null;a&&c.getSourceBlock().setParent(null);e&&(e.recordNew(),
1209
1211
  w(e));c.getSourceBlock().isShadow()||b.respawnShadow_();$.B(d)}getParentAndChildConnections(){return this.targetConnection?this.isSuperior()?{parentConnection:this,childConnection:this.targetConnection}:{parentConnection:this.targetConnection,childConnection:this}:{}}respawnShadow_(){this.createShadowBlock(!0)}reconnect(a,b){if(this.getSourceBlock().isDeadOrDying())return!1;var c;b=(c=a.getInput(b))==null?void 0:c.connection;c=this.targetBlock();return c&&c!==a||!b||b.targetConnection===this?!1:(b.isConnected()&&
1210
1212
  b.disconnect(),b.connect(this),!0)}targetBlock(){if(this.isConnected()){let a,b;return(b=(a=this.targetConnection)==null?void 0:a.getSourceBlock())!=null?b:null}return null}onCheckChanged_(){!this.isConnected()||this.targetConnection&&this.getConnectionChecker().canConnect(this,this.targetConnection,!1)||(this.isSuperior()?this.targetBlock():this.sourceBlock_).unplug()}setCheck(a){a?(Array.isArray(a)||(a=[a]),this.check=a,this.onCheckChanged_()):this.check=null;return this}getCheck(){return this.check}setShadowDom(a){this.setShadowStateInternal({shadowDom:a})}getShadowDom(a){return a&&
1211
- this.targetBlock().isShadow()?Vg(this.targetBlock()):this.shadowDom}setShadowState(a){this.setShadowStateInternal({shadowState:a})}getShadowState(a){return a&&this.targetBlock()&&this.targetBlock().isShadow()?be(this.targetBlock()):this.shadowState}neighbours(){return[]}getParentInput(){var a=null,b=this.sourceBlock_.inputList;for(let c=0;c<b.length;c++)if(b[c].connection===this){a=b[c];break}return a}toString(){var a=this.sourceBlock_;if(!a)return"Orphan Connection";if(a.outputConnection===this)var b=
1213
+ this.targetBlock().isShadow()?Wg(this.targetBlock()):this.shadowDom}setShadowState(a){this.setShadowStateInternal({shadowState:a})}getShadowState(a){return a&&this.targetBlock()&&this.targetBlock().isShadow()?ce(this.targetBlock()):this.shadowState}neighbours(){return[]}getParentInput(){var a=null,b=this.sourceBlock_.inputList;for(let c=0;c<b.length;c++)if(b[c].connection===this){a=b[c];break}return a}toString(){var a=this.sourceBlock_;if(!a)return"Orphan Connection";if(a.outputConnection===this)var b=
1212
1214
  "Output Connection of ";else if(a.previousConnection===this)b="Previous Connection of ";else if(a.nextConnection===this)b="Next Connection of ";else{b=null;for(let c=0,d;d=a.inputList[c];c++)if(d.connection===this){b=d;break}if(b)b='Input "'+b.name+'" connection on ';else return console.warn("Connection not actually connected to sourceBlock_"),"Orphan Connection"}return b+a.toDevString()}stashShadowState(){var a=this.getShadowDom(!0),b=this.getShadowState(!0);this.shadowState=this.shadowDom=null;
1213
1215
  return{shadowDom:a,shadowState:b}}applyShadowState({shadowDom:a,shadowState:b}){this.shadowDom=a;this.shadowState=b}setShadowStateInternal({shadowDom:a=null,shadowState:b=null}={}){this.shadowDom=a;this.shadowState=b;this.getSourceBlock().isDeadOrDying()||((a=this.targetBlock())?a.isShadow()?(a.dispose(!1),this.respawnShadow_(),this.targetBlock()&&this.targetBlock().isShadow()&&this.serializeShadow(this.targetBlock())):(a=this.createShadowBlock(!1),this.serializeShadow(a),a&&a.dispose(!1)):(this.respawnShadow_(),
1214
- this.targetBlock()&&this.targetBlock().isShadow()&&this.serializeShadow(this.targetBlock())))}createShadowBlock(a){var b=this.getSourceBlock(),c=this.getShadowState(),d=this.getShadowDom();if(b.isDeadOrDying()||!c&&!d)return null;if(c)return b=ce(c,b.workspace,{parentConnection:a?this:void 0,isShadow:!0,recordUndo:!1});if(d){b=Mg(d,b.workspace);if(a)if(this.type===G.INPUT_VALUE){if(!b.outputConnection)throw Error("Shadow block is missing an output connection");if(!this.connect(b.outputConnection))throw Error("Could not connect shadow block to connection");
1215
- }else if(this.type===G.NEXT_STATEMENT){if(!b.previousConnection)throw Error("Shadow block is missing previous connection");if(!this.connect(b.previousConnection))throw Error("Could not connect shadow block to connection");}else throw Error("Cannot connect a shadow block to a previous/output connection");return b}return null}serializeShadow(a){a&&(this.shadowDom=Vg(a),this.shadowState=be(a))}static getConnectionForOrphanedConnection(a,b){if(b.type===G.OUTPUT_VALUE){a:{b=b.getSourceBlock();for(var c;c=
1216
- Gh(a,b);)if(a=c.targetBlock(),!a||a.isShadow()){b=c;break a}b=null}return b}a=a.lastConnectionInStack(!0);c=b.getConnectionChecker();return a&&c.canConnect(b,a,!1)?a:null}};An.CAN_CONNECT=0;An.REASON_SELF_CONNECTION=1;An.REASON_WRONG_TYPE=2;An.REASON_TARGET_NULL=3;An.REASON_CHECKS_FAILED=4;An.REASON_DIFFERENT_WORKSPACES=5;An.REASON_SHADOW_PARENT=6;An.REASON_DRAG_CHECKS_FAILED=7;An.REASON_PREVIOUS_AND_OUTPUT=8;var Bn=class extends Error{constructor(a){super(`Tried to append an icon of type ${a.getType()} when an icon of that type already exists on the block. Use getIcon to access the existing icon.`);this.icon=a}},Cn={};Cn.DuplicateIconType=Bn;var En;En=$.Dn||($.Dn={});En[En.LEFT=-1]="LEFT";En[En.CENTRE=0]="CENTRE";En[En.RIGHT=1]="RIGHT";var Fn=[];Fn[G.INPUT_VALUE]=G.OUTPUT_VALUE;Fn[G.OUTPUT_VALUE]=G.INPUT_VALUE;Fn[G.NEXT_STATEMENT]=G.PREVIOUS_STATEMENT;Fn[G.PREVIOUS_STATEMENT]=G.NEXT_STATEMENT;var Li=class extends An{constructor(a,b){super(a,b);this.highlighted=!1;this.targetConnection=null;this.db=a.workspace.connectionDBList[b];this.dbOpposite=a.workspace.connectionDBList[Fn[b]];this.offsetInBlock=new D(0,0);this.trackedState=Li.TrackedState.WILL_TRACK}dispose(){super.dispose();this.trackedState===Li.TrackedState.TRACKED&&this.db.removeConnection(this,this.y);var a,b;(b=(a=this.sourceBlock_.pathObject).removeConnectionHighlight)==null||b.call(a,this)}getSourceBlock(){return super.getSourceBlock()}targetBlock(){return super.targetBlock()}distanceFrom(a){var b=
1217
- this.x-a.x;a=this.y-a.y;return Math.sqrt(b*b+a*a)}bumpAwayFrom(a,b=!1){if(!this.sourceBlock_.workspace.isDragging()){var c=$.Ng.snapRadius+Math.floor(Math.random()*10),d=$.Ng.snapRadius+Math.floor(Math.random()*10),e=a.sourceBlock_.getRootBlock(),f=this.sourceBlock_.getRootBlock();if(!e.isInFlyout&&!f.isInFlyout){var g=!0;if(f.isMovable())e.isMovable()&&b&&(d=-d);else if(e.isMovable())g=!1,c=-c,d=-d;else return;b=g?a:this;a=g?this:a;e=g?f:e;e.RTL&&(c=-c);e.moveBy(b.x+c-a.x,b.y+d-a.y,["bump"])}}}moveTo(a,
1218
- b){var c=!1;this.trackedState===Li.TrackedState.WILL_TRACK?(this.db.addConnection(this,b),this.trackedState=Li.TrackedState.TRACKED,c=!0):this.trackedState===Li.TrackedState.TRACKED&&(this.db.removeConnection(this,this.y),this.db.addConnection(this,b),c=!0);this.x=a;this.y=b;return c}moveBy(a,b){return this.moveTo(this.x+a,this.y+b)}moveToOffset(a){return this.moveTo(a.x+this.offsetInBlock.x,a.y+this.offsetInBlock.y)}setOffsetInBlock(a,b){this.offsetInBlock.x=a;this.offsetInBlock.y=b}getOffsetInBlock(){return this.offsetInBlock}tightenEfficiently(){var a=
1219
- this.targetConnection,b=this.targetBlock();a&&b&&(a=D.difference(this.offsetInBlock,a.offsetInBlock),b.translate(a.x,a.y))}closest(a,b){return this.dbOpposite.searchForClosest(this,a,b)}setAriaRole(a){var b=this.type===G.INPUT_VALUE?$.C.INPUT_LABEL_VALUE:$.C.INPUT_LABEL_STATEMENT;ya(a,Ka.FIGURE);l(a,p.ROLEDESCRIPTION,b)}recomputeAriaContext(a){this.setAriaRole(a);var b,c,d,e=(d=this.getParentInput())!=null?d:(b=this.getSourceBlock().getTopStackBlock().previousConnection)==null?void 0:(c=b.targetConnection)==
1220
- null?void 0:c.getParentInput();if(e){var f;b=(f=e==null?void 0:e.getAriaLabelText())!=null?f:De(e.getSourceBlock(),e,!0).join(", ");this.type===G.NEXT_STATEMENT?l(a,p.LABEL,$.C.INPUT_LABEL_END_STATEMENT.replace("%1",b)):l(a,p.LABEL,b)}else l(a,p.LABEL,$.C.INPUT_LABEL_EMPTY)}highlight(){this.highlighted=!0;var a=this.findHighlightSvg();a&&(n(a,"blocklyHighlightedConnectionPathVisible"),requestAnimationFrame(()=>{var b=a.parentElement;if(b)for(;a.nextSibling;)b.insertBefore(a.nextSibling,a)}),this.recomputeAriaContext(a))}unhighlight(){this.highlighted=
1221
- !1;var a=this.findHighlightSvg();a&&Ma(a,"blocklyHighlightedConnectionPathVisible")}isHighlighted(){return this.highlighted}setTracking(a){a&&this.trackedState===Li.TrackedState.TRACKED||!a&&this.trackedState===Li.TrackedState.UNTRACKED||this.sourceBlock_.isInFlyout||(a?(this.db.addConnection(this,this.y),this.trackedState=Li.TrackedState.TRACKED):(this.trackedState===Li.TrackedState.TRACKED&&this.db.removeConnection(this,this.y),this.trackedState=Li.TrackedState.UNTRACKED))}stopTrackingAll(){this.setTracking(!1);
1222
- if(this.targetConnection){let a=this.targetBlock().getDescendants(!1);for(let b=0;b<a.length;b++){let c=a[b],d=c.getConnections_(!0);for(let e=0;e<d.length;e++)d[e].setTracking(!1);for(let e of c.getIcons())xd(e)&&e.setBubbleVisible(!1)}}}startTrackingAll(){this.setTracking(!0);var a=[];if(this.type!==G.INPUT_VALUE&&this.type!==G.NEXT_STATEMENT)return a;var b=this.targetBlock();if(b){let c;b.isCollapsed()?(c=[],b.outputConnection&&c.push(b.outputConnection),b.nextConnection&&c.push(b.nextConnection),
1223
- b.previousConnection&&c.push(b.previousConnection)):c=b.getConnections_(!0);for(let d=0;d<c.length;d++)a.push(...c[d].startTrackingAll());a.length||(a=[b])}return a}onFailedConnect(a){var b=this.getSourceBlock();if($.Qc){let c=$.gd;setTimeout(function(){b.isDisposed()||b.getParent()||($.B(c),this.bumpAwayFrom(a),$.B(!1))}.bind(this),$.Ng.bumpDelay)}}disconnectInternal(a=!0){var {parentConnection:b,childConnection:c}=this.getParentAndChildConnections();if(b&&c){var d=$.gd;d||$.B(!0);var e=b.getSourceBlock(),
1224
- f=c.getSourceBlock();super.disconnectInternal(a);e.queueRender();f.updateDisabled();f.queueRender();f.getSvgRoot().style.display="block";$.B(d)}}respawnShadow_(){super.respawnShadow_();var a=this.targetBlock();a&&(a.initSvg(),a.queueRender())}neighbours(a){return this.dbOpposite.getNeighbours(this,a)}connect_(a){super.connect_(a);var b=this.getSourceBlock();a=a.getSourceBlock();b.updateDisabled();a.updateDisabled();a.queueRender();if(b=b.getInputWithBlock(a))b=b.isVisible(),a.getSvgRoot().style.display=
1225
- b?"block":"none"}onCheckChanged_(){!this.isConnected()||this.targetConnection&&this.getConnectionChecker().canConnect(this,this.targetConnection,!1)||(this.isSuperior()?this.targetBlock():this.sourceBlock_).unplug()}setCheck(a){super.setCheck(a);this.sourceBlock_.queueRender();return this}showContextMenu(a){var b=Jj.registry.getContextMenuOptions({focusedNode:this},a);if(b.length){var c=this.getSourceBlock(),d=c.workspace;if(a instanceof PointerEvent)var e=new D(a.clientX,a.clientY);else e=new D(this.x,
1226
- this.y),e=pc(d,e).translate(c.RTL?-5:5,5);Gg(a,b,c.RTL,d,e)}}getFocusableElement(){var a=this.findHighlightSvg();if(a)return a;throw Error("No highlight SVG found corresponding to this connection.");}getFocusableTree(){return this.getSourceBlock().workspace}onNodeFocus(){this.highlight();var a=this.getSourceBlock();a.workspace.isFlyout||a.moveSvgRootToFront();a.workspace.scrollBoundsIntoView(a.getBoundingRectangleWithoutChildren())}onNodeBlur(){this.unhighlight()}canBeFocused(){return this.findHighlightSvg()!==
1227
- null}findHighlightSvg(){return this.getSourceBlock().getSvgRoot().getRootNode().getElementById(this.id)}},Gn=Li||(Li={}),Hn=Gn.TrackedState||(Gn.TrackedState={});Hn[Hn.WILL_TRACK=-1]="WILL_TRACK";Hn[Hn.UNTRACKED=0]="UNTRACKED";Hn[Hn.TRACKED=1]="TRACKED";var In=class{constructor(a,b){this.name=a;this.sourceBlock=b;this.fieldRow=[];this.align=$.Dn.LEFT;this.visible=!0;this.ariaLabelProvider=null;this.type=$.ie.CUSTOM;this.connection=null}getSourceBlock(){return this.sourceBlock}appendField(a,b){this.insertFieldAt(this.fieldRow.length,a,b);return this}insertFieldAt(a,b,c){if(a<0||a>this.fieldRow.length)throw Error("index "+a+" out of bounds.");if(!(b||b===""&&c))return a;typeof b==="string"&&(b=$.kh({type:"field_label",text:b}));b.setSourceBlock(this.sourceBlock);
1216
+ this.targetBlock()&&this.targetBlock().isShadow()&&this.serializeShadow(this.targetBlock())))}createShadowBlock(a){var b=this.getSourceBlock(),c=this.getShadowState(),d=this.getShadowDom();if(b.isDeadOrDying()||!c&&!d)return null;if(c)return b=de(c,b.workspace,{parentConnection:a?this:void 0,isShadow:!0,recordUndo:!1});if(d){b=Ng(d,b.workspace);if(a)if(this.type===G.INPUT_VALUE){if(!b.outputConnection)throw Error("Shadow block is missing an output connection");if(!this.connect(b.outputConnection))throw Error("Could not connect shadow block to connection");
1217
+ }else if(this.type===G.NEXT_STATEMENT){if(!b.previousConnection)throw Error("Shadow block is missing previous connection");if(!this.connect(b.previousConnection))throw Error("Could not connect shadow block to connection");}else throw Error("Cannot connect a shadow block to a previous/output connection");return b}return null}serializeShadow(a){a&&(this.shadowDom=Wg(a),this.shadowState=ce(a))}static getConnectionForOrphanedConnection(a,b){if(b.type===G.OUTPUT_VALUE){a:{b=b.getSourceBlock();for(var c;c=
1218
+ Hh(a,b);)if(a=c.targetBlock(),!a||a.isShadow()){b=c;break a}b=null}return b}a=a.lastConnectionInStack(!0);c=b.getConnectionChecker();return a&&c.canConnect(b,a,!1)?a:null}};Bn.CAN_CONNECT=0;Bn.REASON_SELF_CONNECTION=1;Bn.REASON_WRONG_TYPE=2;Bn.REASON_TARGET_NULL=3;Bn.REASON_CHECKS_FAILED=4;Bn.REASON_DIFFERENT_WORKSPACES=5;Bn.REASON_SHADOW_PARENT=6;Bn.REASON_DRAG_CHECKS_FAILED=7;Bn.REASON_PREVIOUS_AND_OUTPUT=8;var Cn=class extends Error{constructor(a){super(`Tried to append an icon of type ${a.getType()} when an icon of that type already exists on the block. Use getIcon to access the existing icon.`);this.icon=a}},Dn={};Dn.DuplicateIconType=Cn;var Fn;Fn=$.En||($.En={});Fn[Fn.LEFT=-1]="LEFT";Fn[Fn.CENTRE=0]="CENTRE";Fn[Fn.RIGHT=1]="RIGHT";var Gn=[];Gn[G.INPUT_VALUE]=G.OUTPUT_VALUE;Gn[G.OUTPUT_VALUE]=G.INPUT_VALUE;Gn[G.NEXT_STATEMENT]=G.PREVIOUS_STATEMENT;Gn[G.PREVIOUS_STATEMENT]=G.NEXT_STATEMENT;var Mi=class extends Bn{constructor(a,b){super(a,b);this.highlighted=!1;this.targetConnection=null;this.db=a.workspace.connectionDBList[b];this.dbOpposite=a.workspace.connectionDBList[Gn[b]];this.offsetInBlock=new D(0,0);this.trackedState=Mi.TrackedState.WILL_TRACK}dispose(){super.dispose();this.trackedState===Mi.TrackedState.TRACKED&&this.db.removeConnection(this,this.y);var a,b;(b=(a=this.sourceBlock_.pathObject).removeConnectionHighlight)==null||b.call(a,this)}getSourceBlock(){return super.getSourceBlock()}targetBlock(){return super.targetBlock()}distanceFrom(a){var b=
1219
+ this.x-a.x;a=this.y-a.y;return Math.sqrt(b*b+a*a)}bumpAwayFrom(a,b=!1){if(!this.sourceBlock_.workspace.isDragging()){var c=$.Og.snapRadius+Math.floor(Math.random()*10),d=$.Og.snapRadius+Math.floor(Math.random()*10),e=a.sourceBlock_.getRootBlock(),f=this.sourceBlock_.getRootBlock();if(!e.isInFlyout&&!f.isInFlyout){var g=!0;if(f.isMovable())e.isMovable()&&b&&(d=-d);else if(e.isMovable())g=!1,c=-c,d=-d;else return;b=g?a:this;a=g?this:a;e=g?f:e;e.RTL&&(c=-c);e.moveBy(b.x+c-a.x,b.y+d-a.y,["bump"])}}}moveTo(a,
1220
+ b){var c=this.x!==a||this.y!==b,d=!1;this.trackedState===Mi.TrackedState.WILL_TRACK?(this.db.addConnection(this,b),this.trackedState=Mi.TrackedState.TRACKED,d=!0):this.trackedState===Mi.TrackedState.TRACKED&&c&&(this.db.reorderConnection(this,b),d=!0);this.x=a;this.y=b;return d}moveBy(a,b){return this.moveTo(this.x+a,this.y+b)}moveToOffset(a){return this.moveTo(a.x+this.offsetInBlock.x,a.y+this.offsetInBlock.y)}setOffsetInBlock(a,b){this.offsetInBlock.x=a;this.offsetInBlock.y=b}getOffsetInBlock(){return this.offsetInBlock}tightenEfficiently(){var a=
1221
+ this.targetConnection,b=this.targetBlock();a&&b&&(a=D.difference(this.offsetInBlock,a.offsetInBlock),this.insertionMarker&&(this.type===G.INPUT_VALUE?a.x+=this.insertionMarker.getHeightWidth().width:a.y+=this.insertionMarker.getHeightWidth().height),b.translate(a.x,a.y))}closest(a,b){return this.dbOpposite.searchForClosest(this,a,b)}setAriaRole(a){var b=this.type===G.INPUT_VALUE?$.C.INPUT_LABEL_VALUE:$.C.INPUT_LABEL_STATEMENT;ya(a,Ka.FIGURE);l(a,p.ROLEDESCRIPTION,b)}recomputeAriaContext(a){this.setAriaRole(a);
1222
+ var b,c,d,e=(d=this.getParentInput())!=null?d:(b=this.getSourceBlock().getTopStackBlock().previousConnection)==null?void 0:(c=b.targetConnection)==null?void 0:c.getParentInput();if(e){var f;b=(f=e==null?void 0:e.getAriaLabelText())!=null?f:Ee(e.getSourceBlock(),e,!0).join(", ");this.type===G.NEXT_STATEMENT?l(a,p.LABEL,$.C.INPUT_LABEL_END_STATEMENT.replace("%1",b)):l(a,p.LABEL,b)}else l(a,p.LABEL,$.C.INPUT_LABEL_EMPTY)}highlight(){this.highlighted=!0;var a=this.findHighlightSvg();a&&(n(a,"blocklyHighlightedConnectionPathVisible"),
1223
+ requestAnimationFrame(()=>{var b=a.parentElement;if(b)for(;a.nextSibling;)b.insertBefore(a.nextSibling,a)}),this.recomputeAriaContext(a))}unhighlight(){this.highlighted=!1;var a=this.findHighlightSvg();a&&Ma(a,"blocklyHighlightedConnectionPathVisible")}isHighlighted(){return this.highlighted}setTracking(a){a&&this.trackedState===Mi.TrackedState.TRACKED||!a&&this.trackedState===Mi.TrackedState.UNTRACKED||this.sourceBlock_.isInFlyout||(a?(this.db.addConnection(this,this.y),this.trackedState=Mi.TrackedState.TRACKED):
1224
+ (this.trackedState===Mi.TrackedState.TRACKED&&this.db.removeConnection(this,this.y),this.trackedState=Mi.TrackedState.UNTRACKED))}stopTrackingAll(){this.setTracking(!1);if(this.targetConnection){let a=this.targetBlock().getDescendants(!1);for(let b=0;b<a.length;b++){let c=a[b],d=c.getConnections_(!0);for(let e=0;e<d.length;e++)d[e].setTracking(!1);for(let e of c.getIcons())xd(e)&&e.setBubbleVisible(!1)}}}startTrackingAll(){this.setTracking(!0);var a=[];if(this.type!==G.INPUT_VALUE&&this.type!==G.NEXT_STATEMENT)return a;
1225
+ var b=this.targetBlock();if(b){let c;b.isCollapsed()?(c=[],b.outputConnection&&c.push(b.outputConnection),b.nextConnection&&c.push(b.nextConnection),b.previousConnection&&c.push(b.previousConnection)):c=b.getConnections_(!0);for(let d=0;d<c.length;d++)a.push(...c[d].startTrackingAll());a.length||(a=[b])}return a}onFailedConnect(a){var b=this.getSourceBlock();if($.Qc){let c=$.gd;setTimeout(function(){b.isDisposed()||b.getParent()||($.B(c),this.bumpAwayFrom(a),$.B(!1))}.bind(this),$.Og.bumpDelay)}}disconnectInternal(a=
1226
+ !0){var {parentConnection:b,childConnection:c}=this.getParentAndChildConnections();if(b&&c){var d=$.gd;d||$.B(!0);var e=b.getSourceBlock(),f=c.getSourceBlock();super.disconnectInternal(a);e.queueRender();f.updateDisabled();f.queueRender();f.getSvgRoot().style.display="block";$.B(d)}}respawnShadow_(){super.respawnShadow_();var a=this.targetBlock();a&&(a.initSvg(),a.queueRender())}neighbours(a){return this.dbOpposite.getNeighbours(this,a)}connect_(a){super.connect_(a);var b=this.getSourceBlock();a=
1227
+ a.getSourceBlock();b.updateDisabled();a.updateDisabled();a.queueRender();if(b=b.getInputWithBlock(a))b=b.isVisible(),a.getSvgRoot().style.display=b?"block":"none"}onCheckChanged_(){!this.isConnected()||this.targetConnection&&this.getConnectionChecker().canConnect(this,this.targetConnection,!1)||(this.isSuperior()?this.targetBlock():this.sourceBlock_).unplug()}setCheck(a){super.setCheck(a);this.sourceBlock_.queueRender();return this}showContextMenu(a){var b=Kj.registry.getContextMenuOptions({focusedNode:this},
1228
+ a);if(b.length){var c=this.getSourceBlock(),d=c.workspace;if(a instanceof PointerEvent)var e=new D(a.clientX,a.clientY);else e=new D(this.x,this.y),e=pc(d,e).translate(c.RTL?-5:5,5);Hg(a,b,c.RTL,d,e)}}getFocusableElement(){var a=this.findHighlightSvg();if(a)return a;throw Error("No highlight SVG found corresponding to this connection.");}getFocusableTree(){return this.getSourceBlock().workspace}onNodeFocus(){this.highlight();var a=this.getSourceBlock();a.workspace.isFlyout||a.moveSvgRootToFront();
1229
+ a.workspace.scrollBoundsIntoView(a.getBoundingRectangleWithoutChildren())}onNodeBlur(){this.unhighlight()}canBeFocused(){return this.findHighlightSvg()!==null}findHighlightSvg(){return this.getSourceBlock().getSvgRoot().getRootNode().getElementById(this.id)}attachInsertionMarker(a){this.insertionMarker=a}detachInsertionMarker(){this.insertionMarker=void 0}getInsertionMarker(){return this.insertionMarker}},Hn=Mi||(Mi={}),In=Hn.TrackedState||(Hn.TrackedState={});In[In.WILL_TRACK=-1]="WILL_TRACK";
1230
+ In[In.UNTRACKED=0]="UNTRACKED";In[In.TRACKED=1]="TRACKED";var Jn=class{constructor(a,b){this.name=a;this.sourceBlock=b;this.fieldRow=[];this.align=$.En.LEFT;this.visible=!0;this.ariaLabelProvider=null;this.type=$.je.CUSTOM;this.connection=null}getSourceBlock(){return this.sourceBlock}appendField(a,b){this.insertFieldAt(this.fieldRow.length,a,b);return this}insertFieldAt(a,b,c){if(a<0||a>this.fieldRow.length)throw Error("index "+a+" out of bounds.");if(!(b||b===""&&c))return a;typeof b==="string"&&(b=$.lh({type:"field_label",text:b}));b.setSourceBlock(this.sourceBlock);
1228
1231
  this.sourceBlock.initialized&&this.initField(b);b.name=c;b.setVisible(this.isVisible());b.prefixField&&(a=this.insertFieldAt(a,b.prefixField));this.fieldRow.splice(a,0,b);a++;b.suffixField&&(a=this.insertFieldAt(a,b.suffixField));this.sourceBlock.rendered&&this.sourceBlock.queueRender();return a}removeField(a,b){for(let c=0,d;d=this.fieldRow[c];c++)if(d.name===a)return d.dispose(),this.fieldRow.splice(c,1),this.sourceBlock.rendered&&this.sourceBlock.queueRender(),!0;if(b)return!1;throw Error('Field "'+
1229
- a+'" not found.');}isVisible(){return this.visible}setVisible(a){var b=[];if(this.visible===a)return b;this.visible=a;for(let c=0,d;d=this.fieldRow[c];c++)d.setVisible(a);if(this.connection&&this.connection instanceof Li){a?b=this.connection.startTrackingAll():this.connection.stopTrackingAll();let c=this.connection.targetBlock();c&&(c.getSvgRoot().style.display=a?"block":"none")}return b}markDirty(){for(let a=0,b;b=this.fieldRow[a];a++)b.markDirty()}setCheck(a){if(!this.connection)throw Error("This input does not have a connection.");
1232
+ a+'" not found.');}isVisible(){return this.visible}setVisible(a){var b=[];if(this.visible===a)return b;this.visible=a;for(let c=0,d;d=this.fieldRow[c];c++)d.setVisible(a);if(this.connection&&this.connection instanceof Mi){a?b=this.connection.startTrackingAll():this.connection.stopTrackingAll();let c=this.connection.targetBlock();c&&(c.getSvgRoot().style.display=a?"block":"none")}return b}markDirty(){for(let a=0,b;b=this.fieldRow[a];a++)b.markDirty()}setCheck(a){if(!this.connection)throw Error("This input does not have a connection.");
1230
1233
  this.connection.setCheck(a);return this}setAlign(a){this.align=a;this.sourceBlock.rendered&&this.sourceBlock.queueRender();return this}setShadowDom(a){if(!this.connection)throw Error("This input does not have a connection.");this.connection.setShadowDom(a);return this}getShadowDom(){if(!this.connection)throw Error("This input does not have a connection.");return this.connection.getShadowDom()}init(){for(let a of this.fieldRow)a.init()}setAriaLabelProvider(a){this.ariaLabelProvider=a;return this}getAriaLabelText(){return this.ariaLabelProvider?
1231
- typeof this.ariaLabelProvider==="string"?gg(this.ariaLabelProvider):this.ariaLabelProvider(this):null}initModel(){for(let a of this.fieldRow)a.initModel()}initField(a){this.sourceBlock.rendered?a.init():a.initModel()}dispose(){for(let a=0,b;b=this.fieldRow[a];a++)b.dispose();this.connection&&this.connection.dispose()}makeConnection(a){return this.sourceBlock.makeConnection_(a)}getRowId(){var a=this.getSourceBlock().inputList;if(this===a.find(f=>f.isVisible())||this===a[0])return this.getSourceBlock().getRowId();
1232
- var b=a.indexOf(this),c,d=((c=a[b-1].connection)==null?void 0:c.type)===G.NEXT_STATEMENT,e;return((e=this.connection)==null?void 0:e.type)===G.NEXT_STATEMENT||d?`${this.getSourceBlock().id}-input${b}`:a[b-1].getRowId()}getLabel(a=ve.STANDARD,b=!0){if(!this.isVisible())return"";var c=Ce(this,!1,a),d;b&&((d=this.connection)==null?void 0:d.type)===G.INPUT_VALUE&&(b=this.connection.targetBlock())&&!b.isInsertionMarker()&&c.push(ye(b,a).join(", "));return c.join(", ")}getIndex(){var a=[$.ie.DUMMY,$.ie.END_ROW];
1233
- return this.getSourceBlock().inputList.filter(b=>!a.includes(b.type)).indexOf(this)}};var Jn=class extends In{constructor(a,b){super(a,b);this.name=a;this.type=$.ie.DUMMY}};var Kn=class extends In{constructor(a,b){super(a,b);this.name=a;this.type=$.ie.END_ROW}};var Ln=class extends In{constructor(a,b){if(!a)throw Error("Statement inputs must have a non-empty name");super(a,b);this.name=a;this.type=$.ie.STATEMENT;this.connection=this.makeConnection(G.NEXT_STATEMENT)}};$.Mn=class extends In{constructor(a,b){if(!a)throw Error("Value inputs must have a non-empty name");super(a,b);this.name=a;this.type=$.ie.VALUE;this.connection=this.makeConnection(G.INPUT_VALUE)}};var Nn=class{constructor(a,b,c){this.data=null;this.disposed=!1;this.hue=null;this.colour_="#000000";this.styleName_="";this.suppressPrefixSuffix=!1;this.previousConnection=this.nextConnection=this.outputConnection=null;this.inputList=[];this.icons=[];this.disabledReasons=new Set;this.tooltip="";this.contextMenu=!0;this.parentBlock_=null;this.childBlocks_=[];this.editable=this.movable=this.deletable=!0;this.collapsed_=this.shadow=!1;this.outputShape_=null;this.rendered=this.isInsertionMarker_=this.initialized=
1234
- this.disposing=!1;this.onchangeWrapper=this.helpUrl=null;this.statementInputCount=0;this.workspace=a;this.id=c&&!a.getBlockById(c)?c:Nb();a.setBlockById(this.id,this);this.xy=new D(0,0);this.isInFlyout=a.isFlyout;this.isInMutator=a.isMutator;this.RTL=a.RTL;if(b){this.type=b;c=zb[b];if(!c||typeof c!=="object")throw TypeError("Invalid block definition for type: "+b);Object.assign(this,c)}a.addTopBlock(this);a.addTypedBlock(this);new.target===Nn&&this.doInit_()}doInit_(){var a=$.gd;a||$.B(!0);var b=
1234
+ typeof this.ariaLabelProvider==="string"?hg(this.ariaLabelProvider):this.ariaLabelProvider(this):null}initModel(){for(let a of this.fieldRow)a.initModel()}initField(a){this.sourceBlock.rendered?a.init():a.initModel()}dispose(){for(let a=0,b;b=this.fieldRow[a];a++)b.dispose();this.connection&&this.connection.dispose()}makeConnection(a){return this.sourceBlock.makeConnection_(a)}getRowId(){var a=this.getSourceBlock().inputList;if(this===a.find(f=>f.isVisible())||this===a[0])return this.getSourceBlock().getRowId();
1235
+ var b=a.indexOf(this),c,d=((c=a[b-1].connection)==null?void 0:c.type)===G.NEXT_STATEMENT,e;return((e=this.connection)==null?void 0:e.type)===G.NEXT_STATEMENT||d?`${this.getSourceBlock().id}-input${b}`:a[b-1].getRowId()}getLabel(a=we.STANDARD,b=!0){if(!this.isVisible())return"";var c=De(this,!1,a),d;b&&((d=this.connection)==null?void 0:d.type)===G.INPUT_VALUE&&(b=this.connection.targetBlock())&&!b.isInsertionMarker()&&c.push(ze(b,a).join(", "));return c.join(", ")}getIndex(){var a=[$.je.DUMMY,$.je.END_ROW];
1236
+ return this.getSourceBlock().inputList.filter(b=>!a.includes(b.type)).indexOf(this)}};var Kn=class extends Jn{constructor(a,b){super(a,b);this.name=a;this.type=$.je.DUMMY}};var Ln=class extends Jn{constructor(a,b){super(a,b);this.name=a;this.type=$.je.END_ROW}};var Mn=class extends Jn{constructor(a,b){if(!a)throw Error("Statement inputs must have a non-empty name");super(a,b);this.name=a;this.type=$.je.STATEMENT;this.connection=this.makeConnection(G.NEXT_STATEMENT)}};$.Nn=class extends Jn{constructor(a,b){if(!a)throw Error("Value inputs must have a non-empty name");super(a,b);this.name=a;this.type=$.je.VALUE;this.connection=this.makeConnection(G.INPUT_VALUE)}};var On=class{constructor(a,b,c){this.data=null;this.disposed=!1;this.hue=null;this.colour_="#000000";this.styleName_="";this.suppressPrefixSuffix=!1;this.previousConnection=this.nextConnection=this.outputConnection=null;this.inputList=[];this.icons=[];this.disabledReasons=new Set;this.tooltip="";this.contextMenu=!0;this.parentBlock_=null;this.childBlocks_=[];this.editable=this.movable=this.deletable=!0;this.collapsed_=this.shadow=!1;this.outputShape_=null;this.rendered=this.isInsertionMarker_=this.initialized=
1237
+ this.disposing=!1;this.onchangeWrapper=this.helpUrl=null;this.statementInputCount=0;this.workspace=a;this.id=c&&!a.getBlockById(c)?c:Nb();a.setBlockById(this.id,this);this.xy=new D(0,0);this.isInFlyout=a.isFlyout;this.isInMutator=a.isMutator;this.RTL=a.RTL;if(b){this.type=b;c=zb[b];if(!c||typeof c!=="object")throw TypeError("Invalid block definition for type: "+b);Object.assign(this,c)}a.addTopBlock(this);a.addTypedBlock(this);new.target===On&&this.doInit_()}doInit_(){var a=$.gd;a||$.B(!0);var b=
1235
1238
  $.Qc;try{typeof this.init==="function"&&($.Qc=!1,this.init(),$.Qc=b),Vb()&&w(new (u(v.BLOCK_CREATE))(this))}finally{$.B(a),$.Qc=b}this.inputsInlineDefault=this.inputsInline;typeof this.onchange==="function"&&this.setOnChange(this.onchange)}dispose(a=!1){this.disposing=!0;this.onchangeWrapper&&this.workspace.removeChangeListener(this.onchangeWrapper);this.unplug(a);Vb()&&w(new (u(v.BLOCK_DELETE))(this));this.workspace.removeTopBlock(this);this.disposeInternal()}disposeInternal(){this.disposing=!0;
1236
1239
  this.onchangeWrapper&&this.workspace.removeChangeListener(this.onchangeWrapper);this.workspace.removeTypedBlock(this);this.workspace.removeBlockById(this.id);typeof this.destroy==="function"&&this.destroy();this.childBlocks_.forEach(a=>a.disposeInternal());this.inputList.forEach(a=>a.dispose());this.inputList.length=0;this.getConnections_(!0).forEach(a=>a.dispose());this.disposed=!0}isDeadOrDying(){return this.disposing||this.disposed}initModel(){if(!this.initialized){for(let a of this.inputList)a.initModel();
1237
1240
  this.initialized=!0}}unplug(a){this.outputConnection&&this.unplugFromRow(a);this.previousConnection&&this.unplugFromStack(a)}unplugFromRow(a){var b=null,c;if((c=this.outputConnection)==null?0:c.isConnected())b=this.outputConnection.targetConnection,this.outputConnection.disconnect();b&&a&&(a=this.getOnlyValueConnection())&&a.isConnected()&&!a.targetBlock().isShadow()&&(a=a.targetConnection,a==null||a.disconnect(),this.workspace.connectionChecker.canConnect(a,b,!1)?b.connect(a):a==null||a.onFailedConnect(b))}getOnlyValueConnection(){var a=
@@ -1239,400 +1242,441 @@ null;for(let b=0;b<this.inputList.length;b++){let c=this.inputList[b].connection
1239
1242
  void 0:(f=e.nextConnection)==null?void 0:f.targetConnection)!=null?g:null;a==null||a.disconnect();b&&this.workspace.connectionChecker.canConnect(b,a,!1)&&b.connect(a)}}}getConnections_(){var a=[];this.outputConnection&&a.push(this.outputConnection);this.previousConnection&&a.push(this.previousConnection);this.nextConnection&&a.push(this.nextConnection);for(let b=0,c;c=this.inputList[b];b++)c.connection&&a.push(c.connection);return a}lastConnectionInStack(a){for(var b=this.nextConnection;b;){let c=
1240
1243
  b.targetBlock();if(!c||a&&c.isShadow())return b;b=c.nextConnection}return null}bumpNeighbours(){}getParent(){return this.parentBlock_}getInputWithBlock(a){for(let b=0,c;c=this.inputList[b];b++)if(c.connection&&c.connection.targetBlock()===a)return c;return null}getSurroundParent(){var a=this;do{var b=a;a=a.getParent();if(!a)return null}while(a.getNextBlock()===b);return a}getNextBlock(){return this.nextConnection&&this.nextConnection.targetBlock()}getPreviousBlock(){return this.previousConnection&&
1241
1244
  this.previousConnection.targetBlock()}getRootBlock(){var a=this;do{var b=a;a=b.parentBlock_}while(a);return b}getTopStackBlock(){var a=this;do var b=a.getPreviousBlock();while(b&&b.getNextBlock()===a&&(a=b));return a}getChildren(a){if(!a)return this.childBlocks_;a=[];for(let c=0,d;d=this.inputList[c];c++)if(d.connection){var b=d.connection.targetBlock();b&&a.push(b)}(b=this.getNextBlock())&&a.push(b);return a}setParent(a){if(a!==this.parentBlock_){var b=this.previousConnection&&this.previousConnection.targetBlock()||
1242
- this.outputConnection&&this.outputConnection.targetBlock(),c=!!b;if(c&&a&&b!==a)throw Error("Block connected to superior one that is not new parent.");if(!c&&a)throw Error("Block not connected to new parent.");if(c&&!a)throw Error("Cannot set parent to null while block is still connected to superior block.");this.parentBlock_?ra(this.parentBlock_.childBlocks_,this):this.workspace.removeTopBlock(this);(this.parentBlock_=a)?a.childBlocks_.push(this):this.workspace.addTopBlock(this)}}getDescendants(a){var b=
1245
+ this.outputConnection&&this.outputConnection.targetBlock(),c=!!b;if(c&&a&&b!==a)throw Error("Block connected to superior one that is not new parent.");if(!c&&a)throw Error("Block not connected to new parent.");if(c&&!a)throw Error("Cannot set parent to null while block is still connected to superior block.");this.parentBlock_?qa(this.parentBlock_.childBlocks_,this):this.workspace.removeTopBlock(this);(this.parentBlock_=a)?a.childBlocks_.push(this):this.workspace.addTopBlock(this)}}getDescendants(a){var b=
1243
1246
  [this],c=this.getChildren(a);for(let d,e=0;d=c[e];e++)b.push(...d.getDescendants(a));return b}isDeletable(){return this.deletable&&!this.isInFlyout&&!this.shadow&&!this.isDeadOrDying()&&!this.workspace.isReadOnly()}isOwnDeletable(){return this.deletable}setDeletable(a){this.deletable=a}isMovable(){return this.movable&&!this.isInFlyout&&!this.shadow&&!this.isDeadOrDying()&&!this.workspace.isReadOnly()}isOwnMovable(){return this.movable}setMovable(a){this.movable=a}isDuplicatable(){return this.workspace.hasBlockLimits()?
1244
1247
  this.workspace.isCapacityAvailable(ub(this,!0)):!0}isShadow(){return this.shadow}setShadow(a){this.shadow=a}isInsertionMarker(){return this.isInsertionMarker_}setInsertionMarker(a){this.isInsertionMarker_=a}isEditable(){return this.editable&&!this.isDeadOrDying()&&!this.workspace.isReadOnly()}isOwnEditable(){return this.editable}setEditable(a){this.editable=a;for(let b of this.getFields())b.updateEditable()}isDisposed(){return this.disposed}getFullBlockField(){if(!this.isSimpleReporter())return null;
1245
1248
  var a,b=(a=this.inputList[0])==null?void 0:a.fieldRow[0];return(b==null?0:b.isFullBlockField())?b:null}isSimpleReporter(){if(!this.outputConnection)return!1;for(let a of this.inputList)if(a.connection||a.fieldRow.length>1)return!1;return!0}getMatchingConnection(a,b){var c=this.getConnections_(!0);a=a.getConnections_(!0);if(c.length!==a.length)throw Error("Connection lists did not match in length.");for(let d=0;d<a.length;d++)if(a[d]===b)return c[d];return null}setHelpUrl(a){this.helpUrl=a}setTooltip(a){this.tooltip=
1246
- a}getTooltip(){return Af(this)}getColour(){return this.colour_}getStyleName(){return this.styleName_}getHue(){return this.hue}setColour(a){a=hg(a);this.hue=a.hue;this.colour_=a.hex}setStyle(a){this.styleName_=a}setOnChange(a){if(a&&typeof a!=="function")throw Error("onchange must be a function.");this.onchangeWrapper&&this.workspace.removeChangeListener(this.onchangeWrapper);this.onchange=a;this.onchangeWrapper=a.bind(this);this.workspace.addChangeListener(this.onchangeWrapper)}getField(a){if(typeof a!==
1249
+ a}getTooltip(){return Bf(this)}getColour(){return this.colour_}getStyleName(){return this.styleName_}getHue(){return this.hue}setColour(a){a=ig(a);this.hue=a.hue;this.colour_=a.hex}setStyle(a){this.styleName_=a}setOnChange(a){if(a&&typeof a!=="function")throw Error("onchange must be a function.");this.onchangeWrapper&&this.workspace.removeChangeListener(this.onchangeWrapper);this.onchange=a;this.onchangeWrapper=a.bind(this);this.workspace.addChangeListener(this.onchangeWrapper)}getField(a){if(typeof a!==
1247
1250
  "string")throw TypeError("Block.prototype.getField expects a string with the field name but received "+(a===void 0?"nothing":a+" of type "+typeof a)+" instead");for(let b of this.getFields())if(b.name===a)return b;return null}*getFields(){for(let a of this.inputList)for(let b of a.fieldRow)yield b}getVarModels(){var a=[];for(let b of this.getFields())if(b.referencesVariables()){let c=this.workspace.getVariableMap().getVariableById(b.getValue());c&&a.push(c)}return a}updateVarName(a){for(let b of this.getFields())b.referencesVariables()&&
1248
1251
  a.getId()===b.getValue()&&b.refreshVariableName()}renameVarById(a,b){for(let c of this.getFields())c.referencesVariables()&&a===c.getValue()&&c.setValue(b)}getFieldValue(a){return(a=this.getField(a))?a.getValue():null}setFieldValue(a,b){var c=this.getField(b);if(!c)throw Error('Field "'+b+'" not found.');c.setValue(a)}setPreviousStatement(a,b){if(a)b===void 0&&(b=null),this.previousConnection||(this.previousConnection=this.makeConnection_(G.PREVIOUS_STATEMENT)),this.previousConnection.setCheck(b);
1249
1252
  else if(this.previousConnection){if(this.previousConnection.isConnected())throw Error("Must disconnect previous statement before removing connection.");this.previousConnection.dispose();this.previousConnection=null}}setNextStatement(a,b){if(a)b===void 0&&(b=null),this.nextConnection||(this.nextConnection=this.makeConnection_(G.NEXT_STATEMENT)),this.nextConnection.setCheck(b);else if(this.nextConnection){if(this.nextConnection.isConnected())throw Error("Must disconnect next statement before removing connection.");
1250
1253
  this.nextConnection.dispose();this.nextConnection=null}}setOutput(a,b){if(a)b===void 0&&(b=null),this.outputConnection||(this.outputConnection=this.makeConnection_(G.OUTPUT_VALUE)),this.outputConnection.setCheck(b);else if(this.outputConnection){if(this.outputConnection.isConnected())throw Error("Must disconnect output value before removing connection.");this.outputConnection.dispose();this.outputConnection=null}}setInputsInline(a){this.inputsInline!==a&&(w(new (u(v.BLOCK_CHANGE))(this,"inline",null,
1251
- this.inputsInline,a)),this.inputsInline=a)}getInputsInline(){if(this.inputsInline!==void 0)return this.inputsInline;for(var a=1;a<this.inputList.length;a++)if(this.inputList[a-1]instanceof Jn&&this.inputList[a]instanceof Jn)return!1;for(a=1;a<this.inputList.length;a++)if(this.inputList[a-1]instanceof $.Mn&&this.inputList[a]instanceof Jn)return!0;for(a=0;a<this.inputList.length;a++)if(this.inputList[a]instanceof Kn)return!0;return!1}setOutputShape(a){this.outputShape_=a}getOutputShape(){return this.outputShape_}isEnabled(){return this.disabledReasons.size===
1254
+ this.inputsInline,a)),this.inputsInline=a)}getInputsInline(){if(this.inputsInline!==void 0)return this.inputsInline;for(var a=1;a<this.inputList.length;a++)if(this.inputList[a-1]instanceof Kn&&this.inputList[a]instanceof Kn)return!1;for(a=1;a<this.inputList.length;a++)if(this.inputList[a-1]instanceof $.Nn&&this.inputList[a]instanceof Kn)return!0;for(a=0;a<this.inputList.length;a++)if(this.inputList[a]instanceof Ln)return!0;return!1}setOutputShape(a){this.outputShape_=a}getOutputShape(){return this.outputShape_}isEnabled(){return this.disabledReasons.size===
1252
1255
  0}setDisabledReason(a,b){a||this.workspace.options.disable||!this.hasDisabledReason("MANUALLY_DISABLED")||b=="MANUALLY_DISABLED"||this.setDisabledReason(!1,"MANUALLY_DISABLED");this.disabledReasons.has(b)!==a&&(a?this.disabledReasons.add(b):this.disabledReasons.delete(b),a=new (u(v.BLOCK_CHANGE))(this,"disabled",null,!a,a),a.setDisabledReason(b),w(a))}getInheritedDisabled(){for(var a=this.getSurroundParent();a;){if(!a.isEnabled())return!0;a=a.getSurroundParent()}return!1}hasDisabledReason(a){return this.disabledReasons.has(a)}getDisabledReasons(){return this.disabledReasons}isCollapsed(){return this.collapsed_}setCollapsed(a){this.collapsed_!==
1253
- a&&(w(new (u(v.BLOCK_CHANGE))(this,"collapsed",null,this.collapsed_,a)),this.collapsed_=a)}setAriaRoleDescriptionProvider(a){this.ariaRoleDescriptionProvider=a}getAriaRoleDescription(){return this.ariaRoleDescriptionProvider?typeof this.ariaRoleDescriptionProvider==="function"?this.ariaRoleDescriptionProvider():gg(this.ariaRoleDescriptionProvider):this.statementInputCount?$.C.BLOCK_LABEL_CONTAINER:this.outputConnection?$.C.BLOCK_LABEL_VALUE:$.C.BLOCK_LABEL_STATEMENT}toString(a,b){b=this.toTokens(b);
1256
+ a&&(w(new (u(v.BLOCK_CHANGE))(this,"collapsed",null,this.collapsed_,a)),this.collapsed_=a)}setAriaRoleDescriptionProvider(a){this.ariaRoleDescriptionProvider=a}getAriaRoleDescription(){return this.ariaRoleDescriptionProvider?typeof this.ariaRoleDescriptionProvider==="function"?this.ariaRoleDescriptionProvider():hg(this.ariaRoleDescriptionProvider):this.statementInputCount?$.C.BLOCK_LABEL_CONTAINER:this.outputConnection?$.C.BLOCK_LABEL_VALUE:$.C.BLOCK_LABEL_STATEMENT}toString(a,b){b=this.toTokens(b);
1254
1257
  for(let d=2;d<b.length;d++)b[d-2]==="("&&b[d]===")"&&(b[d-2]=b[d-1],b.splice(d-1,2));var c="";b=b.reduce((d,e)=>{d=d+(c==="("||e===")"?"":" ")+e;c=e[e.length-1];return d},"");b=b.trim()||"???";a&&b.length>a&&(b=b.substring(0,a-3)+"...");return b}toTokens(a="?"){var b=[];for(let d of this.inputList)if(d.name!="_TEMP_COLLAPSED_INPUT"){for(let e of d.fieldRow)b.push(e.getText());if(d.connection){let e=d.connection.targetBlock();if(e){var c=d.connection;let f=c.getCheck();!f&&c.targetConnection&&(f=c.targetConnection.getCheck());
1255
- (c=!!f&&(f.includes("Boolean")||f.includes("Number")))&&b.push("(");b.push(...e.toTokens(a));c&&b.push(")")}else b.push(a)}}return b}appendValueInput(a){return this.appendInput(new $.Mn(a,this))}appendStatementInput(a){this.statementInputCount++;return this.appendInput(new Ln(a,this))}appendDummyInput(a=""){return this.appendInput(new Jn(a,this))}appendEndRowInput(a=""){return this.appendInput(new Kn(a,this))}appendInput(a){this.inputList.push(a);return a}appendInputFromRegistry(a,b){return(a=Fb(y.INPUT,
1258
+ (c=!!f&&(f.includes("Boolean")||f.includes("Number")))&&b.push("(");b.push(...e.toTokens(a));c&&b.push(")")}else b.push(a)}}return b}appendValueInput(a){return this.appendInput(new $.Nn(a,this))}appendStatementInput(a){this.statementInputCount++;return this.appendInput(new Mn(a,this))}appendDummyInput(a=""){return this.appendInput(new Kn(a,this))}appendEndRowInput(a=""){return this.appendInput(new Ln(a,this))}appendInput(a){this.inputList.push(a);return a}appendInputFromRegistry(a,b){return(a=Fb(y.INPUT,
1256
1259
  a,!1))?this.appendInput(new a(b,this)):null}jsonInit(a){var b=a.type?'Block "'+a.type+'": ':"";if(a.output&&a.previousStatement)throw Error(b+"Must not have both an output and a previousStatement.");for(var c=0;a[`args${c}`];){if(a[`message${c}`]===void 0)throw Error(b+`args${c} must have a corresponding message (message${c}).`);c++}a.style&&typeof a.style==="object"&&(this.hat=a.style.hat,a.style=null);if(a.style&&a.colour)throw Error(b+"Must not have both a colour and a style.");a.style?this.jsonInitStyle(a,
1257
1260
  b):this.jsonInitColour(a,b);for(c=0;a[`message${c}`]!==void 0;)this.interpolate(a[`message${c}`]||"",a[`args${c}`]||[],a[`implicitAlign${c}`]||a[`lastDummyAlign${c}`],b),c++;a.inputsInline!==void 0&&($.Ub++,this.setInputsInline(a.inputsInline),$.Ub--);a.output!==void 0&&this.setOutput(!0,a.output);a.outputShape!==void 0&&this.setOutputShape(a.outputShape);a.previousStatement!==void 0&&this.setPreviousStatement(!0,a.previousStatement);a.nextStatement!==void 0&&this.setNextStatement(!0,a.nextStatement);
1258
- a.tooltip!==void 0&&(c=gg(a.tooltip),this.setTooltip(c));a.enableContextMenu!==void 0&&(this.contextMenu=!!a.enableContextMenu);a.suppressPrefixSuffix!==void 0&&(this.suppressPrefixSuffix=!!a.suppressPrefixSuffix);a.helpUrl!==void 0&&(c=gg(a.helpUrl),this.setHelpUrl(c));a.ariaRoleDescription!==void 0&&this.setAriaRoleDescriptionProvider(a.ariaRoleDescription);typeof a.extensions==="string"&&(console.warn(b+"JSON attribute 'extensions' should be an array of strings. Found raw string in JSON for '"+
1259
- a.type+"' block."),a.extensions=[a.extensions]);a.mutator!==void 0&&vh(a.mutator,this,!0);a=a.extensions;if(Array.isArray(a))for(b=0;b<a.length;b++)vh(a[b],this,!1)}jsonInitColour(a,b){if("colour"in a)if(a.colour===void 0)console.warn(b+"Undefined colour value.");else{a=a.colour;try{this.setColour(a)}catch(c){console.warn(b+"Illegal colour value: ",a)}}}jsonInitStyle(a,b){a=a.style;try{this.setStyle(a)}catch(c){console.warn(b+"Style does not exist: ",a)}}mixin(a,b){if(b!==void 0&&typeof b!=="boolean")throw Error("opt_disableCheck must be a boolean if provided");
1260
- if(!b){b=[];for(let c in a)this[c]!==void 0&&b.push(c);if(b.length)throw Error("Mixin will overwrite block members: "+JSON.stringify(b));}Object.assign(this,a)}interpolate(a,b,c,d){a=fg(a);this.validateTokens(a,b.length);b=this.interpolateArguments(a,b,c);c=[];for(let e=0,f;f=b[e];e++)if(this.isInputKeyword(f.type)){if(a=this.inputFromJson(f,d)){for(let g=0,h;h=c[g];g++)a.appendField(h[0],h[1]);c.length=0}}else(a=this.fieldFromJson(f))&&c.push([a,f.name])}validateTokens(a,b){var c=[],d=0;for(let e=
1261
+ a.tooltip!==void 0&&(c=hg(a.tooltip),this.setTooltip(c));a.enableContextMenu!==void 0&&(this.contextMenu=!!a.enableContextMenu);a.suppressPrefixSuffix!==void 0&&(this.suppressPrefixSuffix=!!a.suppressPrefixSuffix);a.helpUrl!==void 0&&(c=hg(a.helpUrl),this.setHelpUrl(c));a.ariaRoleDescription!==void 0&&this.setAriaRoleDescriptionProvider(a.ariaRoleDescription);typeof a.extensions==="string"&&(console.warn(b+"JSON attribute 'extensions' should be an array of strings. Found raw string in JSON for '"+
1262
+ a.type+"' block."),a.extensions=[a.extensions]);a.mutator!==void 0&&wh(a.mutator,this,!0);a=a.extensions;if(Array.isArray(a))for(b=0;b<a.length;b++)wh(a[b],this,!1)}jsonInitColour(a,b){if("colour"in a)if(a.colour===void 0)console.warn(b+"Undefined colour value.");else{a=a.colour;try{this.setColour(a)}catch(c){console.warn(b+"Illegal colour value: ",a)}}}jsonInitStyle(a,b){a=a.style;try{this.setStyle(a)}catch(c){console.warn(b+"Style does not exist: ",a)}}mixin(a,b){if(b!==void 0&&typeof b!=="boolean")throw Error("opt_disableCheck must be a boolean if provided");
1263
+ if(!b){b=[];for(let c in a)this[c]!==void 0&&b.push(c);if(b.length)throw Error("Mixin will overwrite block members: "+JSON.stringify(b));}Object.assign(this,a)}interpolate(a,b,c,d){a=gg(a);this.validateTokens(a,b.length);b=this.interpolateArguments(a,b,c);c=[];for(let e=0,f;f=b[e];e++)if(this.isInputKeyword(f.type)){if(a=this.inputFromJson(f,d)){for(let g=0,h;h=c[g];g++)a.appendField(h[0],h[1]);c.length=0}}else(a=this.fieldFromJson(f))&&c.push([a,f.name])}validateTokens(a,b){var c=[],d=0;for(let e=
1261
1264
  0;e<a.length;e++){let f=a[e];if(typeof f==="number"){if(f<1||f>b)throw Error('Block "'+this.type+'": Message index %'+f+" out of range.");if(c[f])throw Error('Block "'+this.type+'": Message index %'+f+" duplicated.");c[f]=!0;d++}}if(d!==b)throw Error('Block "'+this.type+'": Message does not reference all '+b+" arg(s).");}interpolateArguments(a,b,c){var d=[];for(let f=0;f<a.length;f++){var e=a[f];typeof e==="number"&&(e=b[e-1]);if(typeof e==="string")if(e==="\n")e={type:"input_end_row"},c&&(e.align=
1262
- c);else if(e=this.stringToFieldJson(e),!e)continue;d.push(e)}(a=d.length)&&!this.isInputKeyword(d[a-1].type)&&(a={type:"input_dummy"},c&&(a.align=c),d.push(a));return d}fieldFromJson(a){var b=$.kh(a);return!b&&a.alt?typeof a.alt==="string"?(a=this.stringToFieldJson(a.alt))?this.fieldFromJson(a):null:this.fieldFromJson(a.alt):b}inputFromJson(a,b){var c={LEFT:$.Dn.LEFT,RIGHT:$.Dn.RIGHT,CENTRE:$.Dn.CENTRE,CENTER:$.Dn.CENTRE};switch(a.type){case "input_value":var d=this.appendValueInput(a.name);break;
1265
+ c);else if(e=this.stringToFieldJson(e),!e)continue;d.push(e)}(a=d.length)&&!this.isInputKeyword(d[a-1].type)&&(a={type:"input_dummy"},c&&(a.align=c),d.push(a));return d}fieldFromJson(a){var b=$.lh(a);return!b&&a.alt?typeof a.alt==="string"?(a=this.stringToFieldJson(a.alt))?this.fieldFromJson(a):null:this.fieldFromJson(a.alt):b}inputFromJson(a,b){var c={LEFT:$.En.LEFT,RIGHT:$.En.RIGHT,CENTRE:$.En.CENTRE,CENTER:$.En.CENTRE};switch(a.type){case "input_value":var d=this.appendValueInput(a.name);break;
1263
1266
  case "input_statement":d=this.appendStatementInput(a.name);break;case "input_dummy":d=this.appendDummyInput(a.name);break;case "input_end_row":d=this.appendEndRowInput(a.name);break;default:d=this.appendInputFromRegistry(a.type,a.name)}if(!d)return null;a.check&&d.setCheck(a.check);a.align&&(c=c[a.align.toUpperCase()],c===void 0?console.warn(b+"Illegal align value: ",a.align):d.setAlign(c));a.ariaLabelText&&d.setAriaLabelProvider(a.ariaLabelText);return d}isInputKeyword(a){return a==="input_value"||
1264
1267
  a==="input_statement"||a==="input_dummy"||a==="input_end_row"||Gb(y.INPUT,a)}stringToFieldJson(a){return(a=a.trim())?{type:"field_label",text:a}:null}moveInputBefore(a,b){if(a!==b){var c=-1,d=b?-1:this.inputList.length;for(let e=0,f;f=this.inputList[e];e++)if(f.name===a){if(c=e,d!==-1)break}else if(b&&f.name===b&&(d=e,c!==-1))break;if(c===-1)throw Error('Named input "'+a+'" not found.');if(d===-1)throw Error('Reference input "'+b+'" not found.');this.moveNumberedInputBefore(c,d)}}moveNumberedInputBefore(a,
1265
- b){if(a===b)throw Error("Can't move input to itself.");if(a>=this.inputList.length)throw RangeError("Input index "+a+" out of bounds.");if(b>this.inputList.length)throw RangeError("Reference input "+b+" out of bounds.");var c=this.inputList[a];this.inputList.splice(a,1);a<b&&b--;this.inputList.splice(b,0,c)}removeInput(a,b){for(let c=0,d;d=this.inputList[c];c++)if(d.name===a)return d instanceof Ln&&this.statementInputCount--,d.dispose(),this.inputList.splice(c,1),!0;if(b)return!1;throw Error("Input not found: "+
1266
- a);}getInput(a){for(let b=0,c;c=this.inputList[b];b++)if(c.name===a)return c;return null}getInputTargetBlock(a){return(a=this.getInput(a))&&a.connection&&a.connection.targetBlock()}getCommentText(){var a,b;return(b=(a=this.getIcon(Yg.COMMENT))==null?void 0:a.getText())!=null?b:null}setCommentText(a){var b,c,d=(c=(b=this.getIcon(Yg.COMMENT))==null?void 0:b.getText())!=null?c:null;if(d!==a){if(a!==null){b=this.getIcon(Yg.COMMENT);if(!b){b=Fb(y.ICON,Yg.COMMENT.toString(),!1);if(!b)throw Error("No comment icon class is registered, so a comment cannot be set");
1267
- b=new b(this);if(!(Hh(b)&&xd(b)&&Vc(b)&&typeof b.setText==="function"&&typeof b.getText==="function"&&typeof b.setBubbleSize==="function"&&typeof b.getBubbleSize==="function"&&typeof b.setBubbleLocation==="function"&&typeof b.getBubbleLocation==="function"&&b.getType()===Yg.COMMENT))throw Error("The class registered as a comment icon does not conform to the ICommentIcon interface");b=this.addIcon(b)}$.Ub++;b.setText(a);$.Ub--}else this.removeIcon(Yg.COMMENT);w(new (u(v.BLOCK_CHANGE))(this,"comment",
1268
- null,d,a))}}setWarningText(){}setMutator(){}addIcon(a){if(this.hasIcon(a.getType()))throw new Bn(a);this.icons.push(a);this.icons.sort((b,c)=>b.getWeight()-c.getWeight());return a}removeIcon(a){if(!this.hasIcon(a))return!1;var b;(b=this.getIcon(a))==null||b.dispose();this.icons=this.icons.filter(c=>!c.getType().equals(a));return!0}hasIcon(a){return this.icons.some(b=>b.getType().equals(a))}getIcon(a){return a instanceof Yg?this.icons.find(b=>b.getType().equals(a)):this.icons.find(b=>b.getType().toString()===
1269
- a)}getIcons(){return[...this.icons]}getRelativeToSurfaceXY(){return this.xy}moveBy(a,b,c){if(this.parentBlock_)throw Error("Block has parent");var d=new (u(v.BLOCK_MOVE))(this);c&&d.setReason(c);this.xy.translate(a,b);d.recordNew();w(d)}makeConnection_(a){return new An(this,a)}allInputsFilled(a){a===void 0&&(a=!0);if(!a&&this.isShadow())return!1;for(let c=0,d;d=this.inputList[c];c++){if(!d.connection)continue;var b=d.connection.targetBlock();if(!b||!b.allInputsFilled(a))return!1}return(b=this.getNextBlock())?
1270
- b.allInputsFilled(a):!0}toDevString(){var a=this.type?'"'+this.type+'" block':"Block";this.id&&(a+=' (id="'+this.id+'")');return a}};Nn.COLLAPSED_INPUT_NAME="_TEMP_COLLAPSED_INPUT";Nn.COLLAPSED_FIELD_NAME="_TEMP_COLLAPSED_FIELD";var Ph=null,Mh=null,On={};On.connectionUiEffect=Kh;On.disconnectUiEffect=Oh;On.disconnectUiStop=Lh;On.disposeUiEffect=Jh;var Pn=class{paste(a,b,c){if(!b.isCapacityAvailable(a.typeCounts))return null;c&&(a.blockState.x=c.x,a.blockState.y=c.y);c=c!=null?c:new D(a.blockState.x||0,a.blockState.y||0);$.Ub++;try{var d=de(a.blockState,b);Sh(d,c)}finally{$.Ub--}if(!d)return d;Vb()&&!d.isShadow()&&w(new (u(v.BLOCK_CREATE))(d));var e=d;cd().then(()=>$.t().focusNode(e));return d}};Pn.TYPE="block";Sc(Pn.TYPE,new Pn);var Qn={};Qn.bumpIntoBounds=Th;Qn.bumpIntoBoundsHandler=Wh;Qn.bumpTopObjectsIntoBounds=Vh;var Xh=null,Yh=null,$h=void 0,Rn={};Rn.BlockPaster=Pn;Rn.copy=ai;Rn.getLastCopiedData=function(){return Xh};Rn.getLastCopiedLocation=function(){return $h};Rn.getLastCopiedWorkspace=function(){return Yh};Rn.paste=ci;Rn.registry=tl;Rn.setLastCopiedData=function(a){Xh=a};Rn.setLastCopiedLocation=function(a){$h=a};Rn.setLastCopiedWorkspace=function(a){Yh=a};var Sn={};Sn.CollapseCommentBarButton=dn;Sn.CommentBarButton=cn;Sn.CommentEditor=en;Sn.CommentView=gn;Sn.DeleteCommentBarButton=fn;Sn.RenderedWorkspaceComment=ch;Sn.WorkspaceComment=dh;var Ci=class{constructor(a,b,c,d){this.workspace=a;this.targetWorkspace=b;this.isFlyoutLabel=d;this.height=this.width=0;this.cursorSvg=this.svgText=null;this.text=c.text;this.position=new D(0,0);this.callbackKey=c.callbackKey||c.callbackkey;this.cssClass=c["web-class"]||null;this.info=c;a=this.isFlyoutLabel?"blocklyFlyoutLabel":"blocklyFlyoutButton";this.cssClass&&(a+=" "+this.cssClass);this.id=Lb();this.svgGroup=r(q.G,{id:this.id,"class":a},this.workspace.getCanvas());if(!this.isFlyoutLabel){var e=
1271
- r(q.RECT,{"class":"blocklyFlyoutButtonShadow",rx:Ci.BORDER_RADIUS,ry:Ci.BORDER_RADIUS,x:1,y:1},this.svgGroup);ya(e,Ka.NONE)}a=r(q.RECT,{"class":this.isFlyoutLabel?"blocklyFlyoutLabelBackground":"blocklyFlyoutButtonBackground",rx:Ci.BORDER_RADIUS,ry:Ci.BORDER_RADIUS},this.svgGroup);ya(a,Ka.NONE);b=r(q.TEXT,{"class":this.isFlyoutLabel?"blocklyFlyoutLabelText":"blocklyText",x:0,y:0,"text-anchor":"middle"},this.svgGroup);c=gg(this.text);this.workspace.RTL&&(c+="\u200f");b.textContent=c;this.isFlyoutLabel&&
1272
- (this.svgText=b,this.workspace.getThemeManager().subscribe(this.svgText,"flyoutForegroundColour","fill"));ya(b,Ka.NONE);d=`${c}, ${this.isFlyoutLabel?$.C.ARIA_LABEL_HEADING:$.C.ARIA_LABEL_BUTTON}`;l(this.getFocusableElement(),p.LABEL,d);ya(this.getFocusableElement(),Ka.OPTION);d=$b(b,"fontSize");var f=$b(b,"fontWeight"),g=$b(b,"fontFamily");this.width=Va(b,d,f,g);c=Ya(c,d,f,g);this.height=this.height||c.height;if(!this.isFlyoutLabel){this.width+=2*Ci.TEXT_MARGIN_X;this.height+=2*Ci.TEXT_MARGIN_Y;
1268
+ b){if(a===b)throw Error("Can't move input to itself.");if(a>=this.inputList.length)throw RangeError("Input index "+a+" out of bounds.");if(b>this.inputList.length)throw RangeError("Reference input "+b+" out of bounds.");var c=this.inputList[a];this.inputList.splice(a,1);a<b&&b--;this.inputList.splice(b,0,c)}removeInput(a,b){for(let c=0,d;d=this.inputList[c];c++)if(d.name===a)return d instanceof Mn&&this.statementInputCount--,d.dispose(),this.inputList.splice(c,1),!0;if(b)return!1;throw Error("Input not found: "+
1269
+ a);}getInput(a){for(let b=0,c;c=this.inputList[b];b++)if(c.name===a)return c;return null}getInputTargetBlock(a){return(a=this.getInput(a))&&a.connection&&a.connection.targetBlock()}getCommentText(){var a,b;return(b=(a=this.getIcon(Zg.COMMENT))==null?void 0:a.getText())!=null?b:null}setCommentText(a){var b,c,d=(c=(b=this.getIcon(Zg.COMMENT))==null?void 0:b.getText())!=null?c:null;if(d!==a){if(a!==null){b=this.getIcon(Zg.COMMENT);if(!b){b=Fb(y.ICON,Zg.COMMENT.toString(),!1);if(!b)throw Error("No comment icon class is registered, so a comment cannot be set");
1270
+ b=new b(this);if(!(Ih(b)&&xd(b)&&Vc(b)&&typeof b.setText==="function"&&typeof b.getText==="function"&&typeof b.setBubbleSize==="function"&&typeof b.getBubbleSize==="function"&&typeof b.setBubbleLocation==="function"&&typeof b.getBubbleLocation==="function"&&b.getType()===Zg.COMMENT))throw Error("The class registered as a comment icon does not conform to the ICommentIcon interface");b=this.addIcon(b)}$.Ub++;b.setText(a);$.Ub--}else this.removeIcon(Zg.COMMENT);w(new (u(v.BLOCK_CHANGE))(this,"comment",
1271
+ null,d,a))}}setWarningText(){}setMutator(){}addIcon(a){if(this.hasIcon(a.getType()))throw new Cn(a);this.icons.push(a);this.icons.sort((b,c)=>b.getWeight()-c.getWeight());return a}removeIcon(a){if(!this.hasIcon(a))return!1;var b;(b=this.getIcon(a))==null||b.dispose();this.icons=this.icons.filter(c=>!c.getType().equals(a));return!0}hasIcon(a){return this.icons.some(b=>b.getType().equals(a))}getIcon(a){return a instanceof Zg?this.icons.find(b=>b.getType().equals(a)):this.icons.find(b=>b.getType().toString()===
1272
+ a)}getIcons(){return[...this.icons]}getRelativeToSurfaceXY(){return this.xy.clone()}moveBy(a,b,c){if(this.parentBlock_)throw Error("Block has parent");var d=new (u(v.BLOCK_MOVE))(this);c&&d.setReason(c);this.xy.translate(a,b);d.recordNew();w(d)}makeConnection_(a){return new Bn(this,a)}allInputsFilled(a){a===void 0&&(a=!0);if(!a&&this.isShadow())return!1;for(let c=0,d;d=this.inputList[c];c++){if(!d.connection)continue;var b=d.connection.targetBlock();if(!b||!b.allInputsFilled(a))return!1}return(b=
1273
+ this.getNextBlock())?b.allInputsFilled(a):!0}toDevString(){var a=this.type?'"'+this.type+'" block':"Block";this.id&&(a+=' (id="'+this.id+'")');return a}};On.COLLAPSED_INPUT_NAME="_TEMP_COLLAPSED_INPUT";On.COLLAPSED_FIELD_NAME="_TEMP_COLLAPSED_FIELD";var Qh=null,Nh=null,Pn={};Pn.connectionUiEffect=Lh;Pn.disconnectUiEffect=Ph;Pn.disconnectUiStop=Mh;Pn.disposeUiEffect=Kh;var Qn=class{paste(a,b,c){if(!b.isCapacityAvailable(a.typeCounts))return null;c&&(a.blockState.x=c.x,a.blockState.y=c.y);c=c!=null?c:new D(a.blockState.x||0,a.blockState.y||0);$.Ub++;try{var d=ee(a.blockState,b);Th(d,c)}finally{$.Ub--}if(!d)return d;Vb()&&!d.isShadow()&&w(new (u(v.BLOCK_CREATE))(d));var e=d;cd().then(()=>$.t().focusNode(e));return d}};Qn.TYPE="block";Sc(Qn.TYPE,new Qn);var Rn={};Rn.bumpIntoBounds=Uh;Rn.bumpIntoBoundsHandler=Xh;Rn.bumpTopObjectsIntoBounds=Wh;var Yh=null,Zh=null,ai=void 0,Sn={};Sn.BlockPaster=Qn;Sn.copy=bi;Sn.getLastCopiedData=function(){return Yh};Sn.getLastCopiedLocation=function(){return ai};Sn.getLastCopiedWorkspace=function(){return Zh};Sn.paste=di;Sn.registry=ul;Sn.setLastCopiedData=function(a){Yh=a};Sn.setLastCopiedLocation=function(a){ai=a};Sn.setLastCopiedWorkspace=function(a){Zh=a};var Tn={};Tn.CollapseCommentBarButton=en;Tn.CommentBarButton=dn;Tn.CommentEditor=fn;Tn.CommentView=hn;Tn.DeleteCommentBarButton=gn;Tn.RenderedWorkspaceComment=dh;Tn.WorkspaceComment=eh;var Di=class{constructor(a,b,c,d){this.workspace=a;this.targetWorkspace=b;this.isFlyoutLabel=d;this.height=this.width=0;this.cursorSvg=this.svgText=null;this.text=c.text;this.position=new D(0,0);this.callbackKey=c.callbackKey||c.callbackkey;this.cssClass=c["web-class"]||null;this.info=c;a=this.isFlyoutLabel?"blocklyFlyoutLabel":"blocklyFlyoutButton";this.cssClass&&(a+=" "+this.cssClass);this.id=Lb();this.svgGroup=r(q.G,{id:this.id,"class":a},this.workspace.getCanvas());if(!this.isFlyoutLabel){var e=
1274
+ r(q.RECT,{"class":"blocklyFlyoutButtonShadow",rx:Di.BORDER_RADIUS,ry:Di.BORDER_RADIUS,x:1,y:1},this.svgGroup);ya(e,Ka.NONE)}a=r(q.RECT,{"class":this.isFlyoutLabel?"blocklyFlyoutLabelBackground":"blocklyFlyoutButtonBackground",rx:Di.BORDER_RADIUS,ry:Di.BORDER_RADIUS},this.svgGroup);ya(a,Ka.NONE);b=r(q.TEXT,{"class":this.isFlyoutLabel?"blocklyFlyoutLabelText":"blocklyText",x:0,y:0,"text-anchor":"middle"},this.svgGroup);c=hg(this.text);this.workspace.RTL&&(c+="\u200f");b.textContent=c;this.isFlyoutLabel&&
1275
+ (this.svgText=b,this.workspace.getThemeManager().subscribe(this.svgText,"flyoutForegroundColour","fill"));ya(b,Ka.NONE);d=`${c}, ${this.isFlyoutLabel?$.C.ARIA_LABEL_HEADING:$.C.ARIA_LABEL_BUTTON}`;l(this.getFocusableElement(),p.LABEL,d);ya(this.getFocusableElement(),Ka.OPTION);d=$b(b,"fontSize");var f=$b(b,"fontWeight"),g=$b(b,"fontFamily");this.width=Va(b,d,f,g);c=Ya(c,d,f,g);this.height=this.height||c.height;if(!this.isFlyoutLabel){this.width+=2*Di.TEXT_MARGIN_X;this.height+=2*Di.TEXT_MARGIN_Y;
1273
1276
  let h;(h=e)==null||h.setAttribute("width",String(this.width));let m;(m=e)==null||m.setAttribute("height",String(this.height))}a.setAttribute("width",String(this.width));a.setAttribute("height",String(this.height));b.setAttribute("x",String(this.width/2));b.setAttribute("y",String(this.height/2-c.height/2+c.baseline));this.updateTransform();this.onMouseDownWrapper=k(this.svgGroup,"pointerdown",this,this.onMouseDown);this.onMouseUpWrapper=k(this.svgGroup,"pointerup",this,this.onMouseUp)}createDom(){return this.svgGroup}show(){this.updateTransform();
1274
- this.svgGroup.setAttribute("display","block")}updateTransform(){this.svgGroup.setAttribute("transform","translate("+this.position.x+","+this.position.y+")")}moveTo(a,b){this.position.x=a;this.position.y=b;this.updateTransform()}moveBy(a,b){this.moveTo(this.position.x+a,this.position.y+b)}isLabel(){return this.isFlyoutLabel}getPosition(){return this.position}getBoundingRectangle(){return new cc(this.position.y,this.position.y+this.height,this.position.x,this.position.x+this.width)}getButtonText(){return this.text}getTargetWorkspace(){return this.targetWorkspace}getWorkspace(){return this.workspace}dispose(){la(this.onMouseDownWrapper);
1275
- la(this.onMouseUpWrapper);this.svgGroup&&Oa(this.svgGroup);this.svgText&&this.workspace.getThemeManager().unsubscribe(this.svgText)}setCursorSvg(a){a?this.svgGroup&&(this.svgGroup.appendChild(a),this.cursorSvg=a):this.cursorSvg=null}onMouseUp(a){(a=this.targetWorkspace.getGesture(a))&&a.cancel();this.isFlyoutLabel&&this.callbackKey?console.warn("Labels should not have callbacks. Label text: "+this.text):this.isFlyoutLabel||this.callbackKey&&this.targetWorkspace.getButtonCallback(this.callbackKey)?
1277
+ this.svgGroup.setAttribute("display","block")}updateTransform(){this.svgGroup.setAttribute("transform","translate("+this.position.x+","+this.position.y+")")}moveTo(a,b){this.position.x=a;this.position.y=b;this.updateTransform()}moveBy(a,b){this.moveTo(this.position.x+a,this.position.y+b)}isLabel(){return this.isFlyoutLabel}getPosition(){return this.position}getBoundingRectangle(){return new cc(this.position.y,this.position.y+this.height,this.position.x,this.position.x+this.width)}getButtonText(){return this.text}getTargetWorkspace(){return this.targetWorkspace}getWorkspace(){return this.workspace}dispose(){ka(this.onMouseDownWrapper);
1278
+ ka(this.onMouseUpWrapper);this.svgGroup&&Oa(this.svgGroup);this.svgText&&this.workspace.getThemeManager().unsubscribe(this.svgText)}setCursorSvg(a){a?this.svgGroup&&(this.svgGroup.appendChild(a),this.cursorSvg=a):this.cursorSvg=null}onMouseUp(a){(a=this.targetWorkspace.getGesture(a))&&a.cancel();this.isFlyoutLabel&&this.callbackKey?console.warn("Labels should not have callbacks. Label text: "+this.text):this.isFlyoutLabel||this.callbackKey&&this.targetWorkspace.getButtonCallback(this.callbackKey)?
1276
1279
  this.isFlyoutLabel||(a=this.targetWorkspace.getButtonCallback(this.callbackKey))&&a(this):console.warn("Buttons should have callbacks. Button text: "+this.text)}onMouseDown(a){var b=this.targetWorkspace.getGesture(a),c=this.targetWorkspace.getFlyout();b&&c&&b.handleFlyoutStart(a,c)}getSvgRoot(){return this.svgGroup}getFocusableElement(){return this.svgGroup}getFocusableTree(){return this.workspace}onNodeFocus(){var a=this.getPosition();a=new cc(a.y,a.y+this.height,a.x,a.x+this.width);this.workspace.scrollBoundsIntoView(a)}onNodeBlur(){}canBeFocused(){return!0}getId(){return this.id}performAction(){if(this.isFlyoutLabel){var a=
1277
- this.targetWorkspace;let b=$.C.KEYBOARD_NAV_FLYOUT_LABEL_HINT.replace("%1",qe(K.NEXT_HEADING));ki.show(a,{message:b,id:"flyoutLabelHint"})}else(a=this.targetWorkspace.getButtonCallback(this.callbackKey))&&a(this)}};Ci.TEXT_MARGIN_X=5;Ci.TEXT_MARGIN_Y=2;Ci.BORDER_RADIUS=4;ta("\n.blocklyFlyoutButton {\n fill: #888;\n cursor: default;\n}\n\n.blocklyFlyoutButtonShadow {\n fill: #666;\n}\n\n@media (hover: hover) {\n .blocklyFlyoutButton:hover {\n fill: #aaa;\n }\n}\n\n.blocklyFlyoutButton:active {\n fill: #aaa;\n}\n\n.blocklyFlyoutLabel {\n cursor: default;\n}\n\n.blocklyFlyoutLabelBackground {\n opacity: 0;\n}\n");var Tn,Un=Tn||(Tn={});Un[Un.COMMIT=1]="COMMIT";Un[Un.DELETE=2]="DELETE";Un[Un.REVERT=3]="REVERT";var K,Vn=K||(K={});Vn.ESCAPE="escape";Vn.DELETE="delete";Vn.COPY="copy";Vn.CUT="cut";Vn.PASTE="paste";Vn.UNDO="undo";Vn.REDO="redo";Vn.MENU="menu";Vn.FOCUS_WORKSPACE="focus_workspace";Vn.FOCUS_TOOLBOX="focus_toolbox";Vn.START_MOVE="start_move";Vn.START_MOVE_STACK="start_move_stack";Vn.FINISH_MOVE="finish_move";Vn.ABORT_MOVE="abort_move";Vn.MOVE_UP="move_up";Vn.MOVE_DOWN="move_down";Vn.MOVE_LEFT="move_left";Vn.MOVE_RIGHT="move_right";Vn.NAVIGATE_RIGHT="right";Vn.NAVIGATE_LEFT="left";
1278
- Vn.NAVIGATE_UP="up";Vn.NAVIGATE_DOWN="down";Vn.DISCONNECT="disconnect";Vn.NEXT_STACK="next_stack";Vn.PREVIOUS_STACK="previous_stack";Vn.INFORMATION="information";Vn.EXTENDED_INFORMATION="extended_information";Vn.PERFORM_ACTION="perform_action";Vn.DUPLICATE="duplicate";Vn.CLEANUP="cleanup";Vn.SHOW_TOOLTIP="show_tooltip";Vn.NEXT_HEADING="next_heading";Vn.PREVIOUS_HEADING="previous_heading";Vn.TOGGLE_SCREENREADER="toggle_screenreader";Vn.JUMP_TOP_STACK="jump_to_top_of_stack";Vn.JUMP_BOTTOM_STACK="jump_to_bottom_of_stack";
1279
- Vn.JUMP_BLOCK_START="jump_to_block_start";Vn.JUMP_BLOCK_END="jump_to_block_end";Vn.JUMP_FIRST_BLOCK="jump_to_first_block";Vn.JUMP_LAST_BLOCK="jump_to_last_block";var vi=a=>{if(a.isFlyout){let c=a.targetWorkspace;if(c)return vi(c)}var b;return(b=a.getRootWorkspace())!=null?b:a},Ji=(a,b)=>!a.isFlyout&&!!b.focusedNode&&!a.isDragging()&&!$.t().ephemeralFocusTaken()&&!!a.getNavigator().getSourceBlockFromNode(b.focusedNode);Ri();Si();Ti();var Wn={};Wn.names=K;Wn.registerArrowNavigation=ui;
1280
- Wn.registerCleanup=Gi;Wn.registerCopy=li;Wn.registerCut=mi;Wn.registerDefaultShortcuts=Ri;Wn.registerDelete=ii;Wn.registerDisconnectBlock=Ai;Wn.registerDuplicate=Fi;Wn.registerEscape=gi;Wn.registerFocusToolbox=xi;Wn.registerFocusWorkspace=wi;Wn.registerHeadingNavigation=Di;Wn.registerJumpBlockEnd=Mi;Wn.registerJumpBlockStart=Ki;Wn.registerJumpBottomStack=Oi;Wn.registerJumpFirstBlock=Pi;Wn.registerJumpLastBlock=Qi;Wn.registerJumpTopStack=Ni;Wn.registerKeyboardNavigationShortcuts=Si;
1281
- Wn.registerMovementShortcuts=si;Wn.registerNavigationShortcuts=function(){Ki();Mi();Ni();Oi();Pi();Qi()};Wn.registerPaste=ni;Wn.registerPerformAction=Ei;Wn.registerReadExtendedInformation=zi;Wn.registerReadInformation=yi;Wn.registerRedo=pi;Wn.registerScreenReaderShortcuts=Ti;Wn.registerShowContextMenu=ti;Wn.registerShowTooltip=Hi;Wn.registerStackNavigation=Bi;Wn.registerToggleScreenreaderMode=Ii;Wn.registerUndo=oi;var Xn,Yn=Xn||(Xn={});Yn[Yn.CONSTRAINED=1]="CONSTRAINED";Yn[Yn.UNCONSTRAINED=2]="UNCONSTRAINED";
1282
- var Zn=class{constructor(a){this.block=a;this.connectionPreviewer=this.connectionCandidate=this.startLoc=this.startChildConn=this.startParentConn=null;this.dragging=!1;this.allConnectionPairs=[];this.moveMode=Xn.UNCONSTRAINED;this.originalEventGroup="";this.lastBlockDisabledReasons=new Map;this.WORKSPACE_MARGIN=this.BLOCK_CONNECTION_OFFSET=10;this.workspace=a.workspace}isMovable(){var a;return this.block.isOwnMovable()&&!this.block.isDeadOrDying()&&!this.workspace.isReadOnly()&&(!this.block.isInFlyout||
1283
- this.block.isEnabled()&&!((a=this.block.workspace.targetWorkspace)==null?0:a.isReadOnly()))}positionNewBlock(a,b){a=pc(a.workspace,a.getRelativeToSurfaceXY());a=oc(b.workspace,a);b.moveDuringDrag(a);if(this.moveMode===Xn.CONSTRAINED){var c=b.workspace,d=this.WORKSPACE_MARGIN;a=this.WORKSPACE_MARGIN;var e=Math.max($.Ng.connectingSnapRadius,$.Ng.snapRadius)+2,f=c.getTopBlocks(!0).filter(Y=>Y.id!==b.id).map(Y=>{Y=Y.getBoundingRectangle();return new cc(Y.top-e,Y.bottom+e,Y.left-e,Y.right+e)}),g,h=(g=
1284
- c.getToolbox())==null?void 0:g.getWidth();g=c.getParentSvg().clientWidth-(h!=null?h:0);c.getParentSvg();({width:h}=b.getHeightWidth());var m=function(Y){for(let ia of f)if(Y.intersects(ia))return ia;return null},z=a;c=c.getRenderer().getConstants().MIN_BLOCK_HEIGHT;var E=b.getBoundingRectangle();b.moveBy(z-E.left,d-E.top,["cleanup"]);E=b.getBoundingRectangle();for(var H=m(E);H!=null;)z=H.left+H.getWidth()+80,H=H.top+H.getHeight()+c,z+h<=g||(d=H,z=a),b.moveBy(z-E.left,d-E.top,["cleanup"]),E=b.getBoundingRectangle(),
1285
- H=m(E)}}getTargetBlock(){if(this.block.isShadow()){var a=this.block.getParent();if(a)return a}else if(this.block.isInFlyout&&this.block.workspace.targetWorkspace&&(a=this.block.getRootBlock(),a=be(a)))return a=ce(a,this.block.workspace.targetWorkspace,{recordUndo:!0}),$.Qc=!1,this.positionNewBlock(this.block,a),$.Qc=!0,a;return this.block}announceMove(a=!1){if(this.connectionCandidate)a=Le(this.connectionCandidate.local,this.connectionCandidate.neighbour,this.hasMultipleCompatibleConnections.bind(this),
1280
+ this.targetWorkspace;let b=$.C.KEYBOARD_NAV_FLYOUT_LABEL_HINT.replace("%1",re(K.NEXT_HEADING));li.show(a,{message:b,id:"flyoutLabelHint"})}else(a=this.targetWorkspace.getButtonCallback(this.callbackKey))&&a(this)}};Di.TEXT_MARGIN_X=5;Di.TEXT_MARGIN_Y=2;Di.BORDER_RADIUS=4;ta("\n.blocklyFlyoutButton {\n fill: #888;\n cursor: default;\n}\n\n.blocklyFlyoutButtonShadow {\n fill: #666;\n}\n\n@media (hover: hover) {\n .blocklyFlyoutButton:hover {\n fill: #aaa;\n }\n}\n\n.blocklyFlyoutButton:active {\n fill: #aaa;\n}\n\n.blocklyFlyoutLabel {\n cursor: default;\n}\n\n.blocklyFlyoutLabelBackground {\n opacity: 0;\n}\n");var Un,Vn=Un||(Un={});Vn[Vn.COMMIT=1]="COMMIT";Vn[Vn.DELETE=2]="DELETE";Vn[Vn.REVERT=3]="REVERT";var K,Wn=K||(K={});Wn.ESCAPE="escape";Wn.DELETE="delete";Wn.COPY="copy";Wn.CUT="cut";Wn.PASTE="paste";Wn.UNDO="undo";Wn.REDO="redo";Wn.MENU="menu";Wn.FOCUS_WORKSPACE="focus_workspace";Wn.FOCUS_TOOLBOX="focus_toolbox";Wn.START_MOVE="start_move";Wn.START_MOVE_STACK="start_move_stack";Wn.FINISH_MOVE="finish_move";Wn.ABORT_MOVE="abort_move";Wn.MOVE_UP="move_up";Wn.MOVE_DOWN="move_down";Wn.MOVE_LEFT="move_left";Wn.MOVE_RIGHT="move_right";Wn.NAVIGATE_RIGHT="right";Wn.NAVIGATE_LEFT="left";
1281
+ Wn.NAVIGATE_UP="up";Wn.NAVIGATE_DOWN="down";Wn.DISCONNECT="disconnect";Wn.NEXT_STACK="next_stack";Wn.PREVIOUS_STACK="previous_stack";Wn.INFORMATION="information";Wn.EXTENDED_INFORMATION="extended_information";Wn.PERFORM_ACTION="perform_action";Wn.DUPLICATE="duplicate";Wn.CLEANUP="cleanup";Wn.SHOW_TOOLTIP="show_tooltip";Wn.NEXT_HEADING="next_heading";Wn.PREVIOUS_HEADING="previous_heading";Wn.TOGGLE_SCREENREADER="toggle_screenreader";Wn.JUMP_TOP_STACK="jump_to_top_of_stack";Wn.JUMP_BOTTOM_STACK="jump_to_bottom_of_stack";
1282
+ Wn.JUMP_BLOCK_START="jump_to_block_start";Wn.JUMP_BLOCK_END="jump_to_block_end";Wn.JUMP_FIRST_BLOCK="jump_to_first_block";Wn.JUMP_LAST_BLOCK="jump_to_last_block";var wi=a=>{if(a.isFlyout){let c=a.targetWorkspace;if(c)return wi(c)}var b;return(b=a.getRootWorkspace())!=null?b:a},Ki=(a,b)=>!a.isFlyout&&!!b.focusedNode&&!a.isDragging()&&!$.t().ephemeralFocusTaken()&&!!a.getNavigator().getSourceBlockFromNode(b.focusedNode);Si();Ti();Ui();var Xn={};Xn.names=K;Xn.registerArrowNavigation=vi;
1283
+ Xn.registerCleanup=Hi;Xn.registerCopy=mi;Xn.registerCut=ni;Xn.registerDefaultShortcuts=Si;Xn.registerDelete=ji;Xn.registerDisconnectBlock=Bi;Xn.registerDuplicate=Gi;Xn.registerEscape=hi;Xn.registerFocusToolbox=yi;Xn.registerFocusWorkspace=xi;Xn.registerHeadingNavigation=Ei;Xn.registerJumpBlockEnd=Ni;Xn.registerJumpBlockStart=Li;Xn.registerJumpBottomStack=Pi;Xn.registerJumpFirstBlock=Qi;Xn.registerJumpLastBlock=Ri;Xn.registerJumpTopStack=Oi;Xn.registerKeyboardNavigationShortcuts=Ti;
1284
+ Xn.registerMovementShortcuts=ti;Xn.registerNavigationShortcuts=function(){Li();Ni();Oi();Pi();Qi();Ri()};Xn.registerPaste=oi;Xn.registerPerformAction=Fi;Xn.registerReadExtendedInformation=Ai;Xn.registerReadInformation=zi;Xn.registerRedo=qi;Xn.registerScreenReaderShortcuts=Ui;Xn.registerShowContextMenu=ui;Xn.registerShowTooltip=Ii;Xn.registerStackNavigation=Ci;Xn.registerToggleScreenreaderMode=Ji;Xn.registerUndo=pi;var Yn,Zn=Yn||(Yn={});Zn[Zn.CONSTRAINED=1]="CONSTRAINED";Zn[Zn.UNCONSTRAINED=2]="UNCONSTRAINED";
1285
+ var $n=class{constructor(a){this.block=a;this.connectionPreviewer=this.connectionCandidate=this.startLoc=this.startChildConn=this.startParentConn=null;this.dragging=!1;this.allConnectionPairs=[];this.moveMode=Yn.UNCONSTRAINED;this.originalEventGroup="";this.lastBlockDisabledReasons=new Map;this.WORKSPACE_MARGIN=this.BLOCK_CONNECTION_OFFSET=10;this.workspace=a.workspace}isMovable(){var a;return this.block.isOwnMovable()&&!this.block.isDeadOrDying()&&!this.workspace.isReadOnly()&&(!this.block.isInFlyout||
1286
+ this.block.isEnabled()&&!((a=this.block.workspace.targetWorkspace)==null?0:a.isReadOnly()))}positionNewBlock(a,b){a=pc(a.workspace,a.getRelativeToSurfaceXY());a=oc(b.workspace,a);b.moveDuringDrag(a);if(this.moveMode===Yn.CONSTRAINED){var c=b.workspace,d=this.WORKSPACE_MARGIN;a=this.WORKSPACE_MARGIN;var e=Math.max($.Og.connectingSnapRadius,$.Og.snapRadius)+2,f=c.getTopBlocks(!0).filter(T=>T.id!==b.id).map(T=>{T=T.getBoundingRectangle();return new cc(T.top-e,T.bottom+e,T.left-e,T.right+e)}),g,h=(g=
1287
+ c.getToolbox())==null?void 0:g.getWidth();g=c.getParentSvg().clientWidth-(h!=null?h:0);c.getParentSvg();({width:h}=b.getHeightWidth());var m=function(T){for(let ra of f)if(T.intersects(ra))return ra;return null},z=a;c=c.getRenderer().getConstants().MIN_BLOCK_HEIGHT;var E=b.getBoundingRectangle();b.moveBy(z-E.left,d-E.top,["cleanup"]);E=b.getBoundingRectangle();for(var J=m(E);J!=null;)z=J.left+J.getWidth()+80,J=J.top+J.getHeight()+c,z+h<=g||(d=J,z=a),b.moveBy(z-E.left,d-E.top,["cleanup"]),E=b.getBoundingRectangle(),
1288
+ J=m(E)}}getTargetBlock(){if(this.block.isShadow()){var a=this.block.getParent();if(a)return a}else if(this.block.isInFlyout&&this.block.workspace.targetWorkspace&&(a=this.block.getRootBlock(),a=ce(a)))return a=de(a,this.block.workspace.targetWorkspace,{recordUndo:!0}),$.Qc=!1,a.render(),this.positionNewBlock(this.block,a),$.Qc=!0,a;return this.block}announceMove(a=!1){if(this.connectionCandidate)a=Me(this.connectionCandidate.local,this.connectionCandidate.neighbour,this.hasMultipleCompatibleConnections.bind(this),
1286
1289
  a);else{let b=a?this.block.getStackBlocksCountLabel():"";a=$.C.ANNOUNCE_MOVE_WORKSPACE;a=a.replace("%1",b)}Ja(a.replace(/\s+/g," "))}hasMultipleCompatibleConnections(a=!0){var b=this.connectionCandidate;if(!b)return!1;var c=a?"local":"neighbour",d=a?"neighbour":"local";return this.allConnectionPairs.filter(e=>e[d]===b[d]&&e[c]!==b[c].getSourceBlock().nextConnection&&e[c].getSourceBlock().id===b[c].getSourceBlock().id).length>1}startDrag(a){this.updateMoveMode(a);var b=this.getTargetBlock();if(b!==
1287
- this.block)return b.startDrag(a);this.block.workspace.recordDragTargets();this.dragging=!0;this.fireDragStartEvent();this.startLoc=this.block.getRelativeToSurfaceXY();this.connectionCandidate=null;this.connectionPreviewer=new (Jb(y.CONNECTION_PREVIEWER,this.workspace.options))(this.block);Ta();this.workspace.setResizesEnabled(!1);Lh();b=this.shouldHealStack(a);this.storeInitialConnections(b);this.shouldDisconnect(b)&&this.disconnectBlock(b);this.block.setDragging(!0);this.enableAllDraggedBlocks(this.block);
1288
- a instanceof KeyboardEvent?(this.cacheAllConnectionPairs(),this.updateConnectionPreview(this.block,new D(0,0))&&this.block.moveDuringDrag(this.determineConnectionOffset()),this.allConnectionPairs.length?Yi(this.workspace):Xi(this.workspace)):this.block.moveDuringDrag(this.startLoc);var c;(c=this.workspace.getLayerManager())==null||c.moveToDragLayer(this.block);this.getVisibleBubbles(this.block).forEach(d=>{var e;(e=this.workspace.getLayerManager())==null||e.moveToDragLayer(d,!1)});this.announceMove(!0);
1289
- return this.block}cacheAllConnectionPairs(){var a=this.block.workspace.connectionChecker,b=[];this.allConnectionPairs=[];var c=this.getLocalConnections(this.block);for(let d of this.block.workspace.getTopBlocks(!0))b.push(...this.getAllConnections(d));for(let d of b)for(let e of c){let f;!a.canConnect(e,d,!0,Infinity)||((f=d.targetBlock())==null?0:f.isInsertionMarker())||this.allConnectionPairs.push({local:e,neighbour:d})}}getVisibleBubbles(a){return a.getDescendants(!1).flatMap(b=>b.getIcons()).filter(b=>
1290
- xd(b)&&b.bubbleIsVisible()).map(b=>b.getBubble()).filter(b=>!!b).sort((b,c)=>{b=b.getSvgRoot().compareDocumentPosition(c.getSvgRoot());return b&Node.DOCUMENT_POSITION_PRECEDING?1:b&Node.DOCUMENT_POSITION_FOLLOWING?-1:0})}shouldHealStack(a){return a instanceof PointerEvent?a.ctrlKey||a.metaKey:a instanceof KeyboardEvent?!(a.shiftKey||!this.block.previousConnection):!1}shouldDisconnect(a){return!!(this.block.getParent()||a&&this.block.nextConnection&&this.block.nextConnection.targetBlock())}disconnectBlock(a){this.block.unplug(a);
1291
- Oh(this.block)}storeInitialConnections(a){var b=this.startChildConn=this.startParentConn=null,c=null,d;if((d=this.block.outputConnection)==null?0:d.isConnected())b=this.block.outputConnection,c=this.block.outputConnection.targetConnection;else{let e;if((e=this.block.previousConnection)==null?0:e.isConnected())b=this.block.previousConnection,c=this.block.previousConnection.targetConnection}this.startParentConn=c;b&&c?this.connectionCandidate={local:b,neighbour:c,distance:0}:a&&(a=this.block.nextConnection,
1290
+ this.block)return b.startDrag(a);this.block.workspace.recordDragTargets();this.dragging=!0;this.fireDragStartEvent();this.startLoc=this.block.getRelativeToSurfaceXY();this.connectionCandidate=null;this.connectionPreviewer=new (Jb(y.CONNECTION_PREVIEWER,this.workspace.options))(this.block);Ta();this.workspace.setResizesEnabled(!1);Mh();b=this.shouldHealStack(a);this.storeInitialConnections(b);this.shouldDisconnect(b)&&this.disconnectBlock(b);this.block.setDragging(!0);this.enableAllDraggedBlocks(this.block);
1291
+ this.cacheAllConnectionPairs();if(a instanceof KeyboardEvent){let d;a=(d=this.getInitialCandidate())!=null?d:void 0;this.updateConnectionPreview(this.block,new D(0,0),a)&&this.block.moveDuringDrag(this.determineConnectionOffset());this.allConnectionPairs.length?Zi(this.workspace):Yi(this.workspace)}else this.block.moveDuringDrag(this.startLoc);var c;(c=this.workspace.getLayerManager())==null||c.moveToDragLayer(this.block);this.getVisibleBubbles(this.block).forEach(d=>{var e;(e=this.workspace.getLayerManager())==
1292
+ null||e.moveToDragLayer(d,!1)});this.announceMove(!0);return this.block}cacheAllConnectionPairs(){var a=this.block.workspace.connectionChecker,b=[];this.allConnectionPairs=[];var c=this.getLocalConnections(this.block);for(let d of this.block.workspace.getTopBlocks(!0))b.push(...this.getAllConnections(d));for(let d of b)for(let e of c){let f;!a.canConnect(e,d,!0,Infinity)||((f=d.targetBlock())==null?0:f.isInsertionMarker())||this.allConnectionPairs.push({local:e,neighbour:d})}}getVisibleBubbles(a){return a.getDescendants(!1).flatMap(b=>
1293
+ b.getIcons()).filter(b=>xd(b)&&b.bubbleIsVisible()).map(b=>b.getBubble()).filter(b=>!!b).sort((b,c)=>{b=b.getSvgRoot().compareDocumentPosition(c.getSvgRoot());return b&Node.DOCUMENT_POSITION_PRECEDING?1:b&Node.DOCUMENT_POSITION_FOLLOWING?-1:0})}shouldHealStack(a){return a instanceof PointerEvent?a.ctrlKey||a.metaKey:a instanceof KeyboardEvent?!(a.shiftKey||!this.block.previousConnection):!1}shouldDisconnect(a){return!!(this.block.getParent()||a&&this.block.nextConnection&&this.block.nextConnection.targetBlock())}disconnectBlock(a){this.block.unplug(a);
1294
+ Ph(this.block)}storeInitialConnections(a){var b=this.startChildConn=this.startParentConn=null,c=null,d;if((d=this.block.outputConnection)==null?0:d.isConnected())b=this.block.outputConnection,c=this.block.outputConnection.targetConnection;else{let e;if((e=this.block.previousConnection)==null?0:e.isConnected())b=this.block.previousConnection,c=this.block.previousConnection.targetConnection}this.startParentConn=c;b&&c?this.connectionCandidate={local:b,neighbour:c,distance:0}:a&&(a=this.block.nextConnection,
1292
1295
  b=a==null?void 0:a.targetConnection,a&&b&&(this.connectionCandidate={local:a,neighbour:b,distance:0}),this.startChildConn=b!=null?b:null)}fireDragStartEvent(){var a=new (u(v.BLOCK_DRAG))(this.block,!0,this.block.getDescendants(!1));w(a)}fireDragEndEvent(){var a=new (u(v.BLOCK_DRAG))(this.block,!1,this.block.getDescendants(!1));w(a)}fireMoveEvent(){if(!this.block.isDeadOrDying()){var a=new (u(v.BLOCK_MOVE))(this.block);a.setReason(["drag"]);a.oldCoordinate=this.startLoc;a.recordNew();w(a)}}drag(a,
1293
- b){this.updateMoveMode(b);this.moveMode===Xn.UNCONSTRAINED&&this.block.moveDuringDrag(a);b=!!this.connectionCandidate;this.updateConnectionPreview(this.block,D.difference(a,this.startLoc));if(this.connectionCandidate)this.moveMode===Xn.CONSTRAINED&&this.block.moveDuringDrag(this.determineConnectionOffset());else if(this.moveMode===Xn.CONSTRAINED&&(this.allConnectionPairs.length||Xi(this.workspace,!0),!b)){this.workspace.getAudioManager().playErrorBeep();return}this.announceMove()}determineConnectionOffset(){var {local:a,
1294
- neighbour:b}=this.connectionCandidate,c=a.getOffsetInBlock(),d=b.x-c.x;c=b.y-c.y;var e=this.BLOCK_CONNECTION_OFFSET;a.type===G.PREVIOUS_STATEMENT||a.type===G.OUTPUT_VALUE?(d+=e,c+=e):(d-=e,c-=e);return new D(d,c)}updateConnectionPreview(a,b){var c=this.connectionCandidate,d,e=(d=this.getInitialCandidate())!=null?d:this.getConnectionCandidate(b),f;(f=this.connectionPreviewer)==null||f.hidePreview();this.connectionCandidate=null;if(e){this.connectionCandidate=b=c&&this.currCandidateIsBetter(c,b,e)?
1295
- c:e;var {local:g,neighbour:h}=b;b=g.type===G.OUTPUT_VALUE||g.type===G.PREVIOUS_STATEMENT;var m,z=h.isConnected()&&!((m=h.targetBlock())==null?0:m.isInsertionMarker());if(b&&z&&!this.orphanCanConnectAtEnd(a,h.targetBlock(),g.type)){var E;(E=this.connectionPreviewer)==null||E.previewReplacement(g,h,h.targetBlock())}else{let H;(H=this.connectionPreviewer)==null||H.previewConnection(g,h)}return h}if(this.moveMode===Xn.CONSTRAINED){let H;m=(H=c==null?void 0:c.neighbour.getSourceBlock())!=null?H:null;let Y;
1296
- E=(Y=m==null?void 0:m.getRootBlock())!=null?Y:m;E===a&&(E=m);if(E&&(m=a.workspace.getTopBlocks().filter(ia=>ia!==a.getRootBlock()).map(ia=>ia.getBoundingRectangle()),m.length)){c=(z=c==null?void 0:c.neighbour.x)!=null?z:a.getRelativeToSurfaceXY().x;z=this.BLOCK_CONNECTION_OFFSET*2;switch(this.getDirectionToNewLocation(D.sum(this.startLoc,b))){case ri.LEFT:case ri.UP:b=Math.min(...m.map(ia=>ia.top))-z-a.getHeightWidth().height;break;default:b=Math.max(...m.map(ia=>ia.bottom))+z}a.moveDuringDrag(new D(c,
1297
- b))}}}orphanCanConnectAtEnd(a,b,c){return!!An.getConnectionForOrphanedConnection(a,c===G.OUTPUT_VALUE?b.outputConnection:b.previousConnection)}currCandidateIsBetter(a,b,c){if(this.moveMode===Xn.CONSTRAINED)return!1;var {local:d,neighbour:e}=a;a=new D(d.x,d.y);var f=new D(e.x,e.y);b=D.distance(D.sum(a,b),f);return c.distance>b-$.Ng.currentConnectionPreference}getConnectionCandidate(a){return this.moveMode===Xn.CONSTRAINED?this.findTraversalCandidate(a):this.getClosestCandidate(this.block,a)}getClosestCandidate(a,
1298
- b){var c=this.getSearchRadius();a=this.getLocalConnections(a);var d=null;for(let e of a){let {connection:f,radius:g}=e.closest(c,b);f&&(d={local:e,neighbour:f,distance:g},c=g)}return d}getSearchRadius(){return this.moveMode===Xn.CONSTRAINED?Infinity:this.connectionCandidate?$.Ng.connectingSnapRadius:$.Ng.snapRadius}getLocalConnections(a){var b=a.getConnections_(!1),c=a.lastConnectionInStack(!0);c&&c!==a.nextConnection&&b.push(c);a=[a.outputConnection,a.previousConnection,a.nextConnection].filter(d=>
1299
- !!d);c=[];for(let d of b)a.includes(d)||c.push(d);c.reverse();return[...a,...c]}endDrag(a,b){b===Tn.DELETE&&Jh(this.block);this.originalEventGroup=$.gd;this.fireDragEndEvent();this.fireMoveEvent();Ua();Lh();var c;(c=this.connectionPreviewer)==null||c.hidePreview();if(!this.block.isDeadOrDying()&&this.dragging){let d;(d=this.workspace.getLayerManager())==null||d.moveOffDragLayer(this.block,50);this.getVisibleBubbles(this.block).forEach(e=>{var f;return(f=this.workspace.getLayerManager())==null?void 0:
1300
- f.moveOffDragLayer(e,100,!1)});this.block.setDragging(!1);this.redisableAllDraggedBlocks(this.block)}this.connectionCandidate?(this.applyConnections(this.connectionCandidate),this.disposeStep()):(b!==Tn.DELETE&&this.workspace.getAudioManager().play("drop"),this.block.queueRender().then(()=>this.disposeStep()));this.allConnectionPairs=[];this.connectionCandidate=this.startChildConn=this.startParentConn=null;this.dragging=!1}disposeStep(){var a=$.gd;$.B(this.originalEventGroup);this.block.snapToGrid();
1301
- var b;(b=this.connectionPreviewer)==null||b.dispose();this.workspace.setResizesEnabled(!0);$.B(a)}applyConnections(a){var {local:b,neighbour:c}=a;b.connect(c);var d=b.isSuperior()?c:b,e=this.block.getRootBlock();cd().then(()=>{Kh(d.getSourceBlock());setTimeout(()=>{e.bringToFront()},0)})}revertDrag(){var a;(a=this.connectionPreviewer)==null||a.hidePreview();this.connectionCandidate=null;if(this.block.nextConnection){let b;(b=this.startChildConn)==null||b.connect(this.block.nextConnection)}if(this.startParentConn)switch(this.startParentConn.type){case G.INPUT_VALUE:this.block.outputConnection&&
1302
- this.startParentConn.connect(this.block.outputConnection);break;case G.NEXT_STATEMENT:this.block.previousConnection&&this.startParentConn.connect(this.block.previousConnection)}else{this.block.moveDuringDrag(this.startLoc);let b;(b=this.workspace.getLayerManager())==null||b.moveOffDragLayer(this.block,50);this.getVisibleBubbles(this.block).forEach(c=>{var d;return(d=this.workspace.getLayerManager())==null?void 0:d.moveOffDragLayer(c,100,!1)});Th(this.workspace,this.workspace.getMetricsManager().getScrollMetrics(!0),
1303
- this.block)}this.startParentConn=this.startChildConn=null;this.block.setDragging(!1);this.redisableAllDraggedBlocks(this.block);this.dragging=!1;Ja($.C.ANNOUNCE_MOVE_CANCELED)}findTraversalCandidate(a){var b=this.getDirectionToNewLocation(D.sum(this.startLoc,a)),c=this.allConnectionPairs;if(b===ri.NONE||!c.length)return this.connectionCandidate;b=b===ri.RIGHT||b===ri.DOWN;var d=c.findIndex(f=>{var g,h;return((g=this.connectionCandidate)==null?void 0:g.local)===f.local&&((h=this.connectionCandidate)==
1304
- null?void 0:h.neighbour)===f.neighbour}),e=this.block.workspace.getNavigator();return b?d===-1?this.isInTerminalPosition(this.block,ri.DOWN)?e.getNavigationLoops()?this.pairToCandidate(c[0]):null:this.getClosestCandidate(this.block,a):d===c.length-1?null:this.pairToCandidate(c[d+1]):d===-1?this.isInTerminalPosition(this.block,ri.UP)?e.getNavigationLoops()?this.pairToCandidate(c[c.length-1]):null:this.getClosestCandidate(this.block,a):d===0?null:this.pairToCandidate(c[d-1])}isInTerminalPosition(a,
1305
- b){if(a.getParent())return!1;var c=a.workspace.getTopBlocks(!0),d=a.getBoundingRectangle(),e=(b=b===ri.UP)?"top":"bottom",f=b?(g,h)=>g<=h:(g,h)=>g>=h;b=c.filter(g=>g.id!==a.id&&f(g.getBoundingRectangle()[e],d[e]));c=a.getConnections_(!1);for(let g of b){b=this.getAllConnections(g);for(let h of c)for(let m of b)if(a.workspace.connectionChecker.canConnect(h,m,!0,Infinity))return!1}return!0}pairToCandidate(a){return Object.assign({},a,{distance:0})}getDirectionToNewLocation(a){var b=this.block.getRelativeToSurfaceXY();
1306
- a=D.difference(a,b);var {x:c,y:d}=a;return Math.abs(c)>Math.abs(d)?c<0?ri.LEFT:ri.RIGHT:Math.abs(d)>0?d<0?ri.UP:ri.DOWN:ri.NONE}getAllConnections(a){if(a.isShadow())return[];var b=[];a.outputConnection&&b.push(a.outputConnection);a.previousConnection&&b.push(a.previousConnection);if(!a.isCollapsed())for(let c of a.inputList)if(c.connection&&c.isVisible()){b.push(c.connection);let d=c.connection.targetBlock();d&&b.push(...this.getAllConnections(d))}a.nextConnection&&(b.push(a.nextConnection),(a=a.nextConnection.targetBlock())&&
1307
- b.push(...this.getAllConnections(a)));return b}getInitialCandidate(){var a=this.workspace.getSvgGroup().querySelector(`.${Za.PASSIVE_FOCUS_NODE_CSS_CLASS_NAME}`);if(!a||!a.id||a===this.block.getFocusableElement())return null;a=this.workspace.lookUpFocusableNode(a.id);if(!a)return null;var b=this.workspace.getNavigator().getSourceBlockFromNode(a);if(!b)return null;var c=null;if(b.getConnections_(!1).includes(a)){c=a;let g=this.block.workspace.connectionChecker;if(a=this.block.getConnections_(!1).find(h=>
1308
- g.canConnect(h,c,!0,Infinity)))return{local:a,neighbour:c,distance:0}}if(a=this.allConnectionPairs.find(g=>g.neighbour.getSourceBlock()===b))return this.pairToCandidate(a);var d,e=(d=b.outputConnection)==null?void 0:d.targetConnection;if(d=this.allConnectionPairs.find(g=>g.neighbour===e))return this.pairToCandidate(d);for(var f=b.getSurroundParent();f;){if(d=this.allConnectionPairs.find(g=>g.neighbour.getSourceBlock()===f))return this.pairToCandidate(d);f=f.getSurroundParent()}return null}updateMoveMode(a){this.moveMode=
1309
- a instanceof KeyboardEvent&&!a.ctrlKey&&!a.metaKey?Xn.CONSTRAINED:Xn.UNCONSTRAINED}enableAllDraggedBlocks(a){var b=$.Qc;$.Qc=!1;this.lastBlockDisabledReasons.clear();a.getDescendants(!1).forEach(c=>{var d=new Set(c.getDisabledReasons());this.lastBlockDisabledReasons.set(c.id,d);d.forEach(e=>c.setDisabledReason(!1,e))});$.Qc=b}redisableAllDraggedBlocks(a){var b=$.Qc;$.Qc=!1;a.getDescendants(!1).forEach(c=>{var d;(d=this.lastBlockDisabledReasons.get(c.id))==null||d.forEach(e=>{c.setDisabledReason(!0,
1310
- e)})});$.Qc=b}};var $n=class extends qg{isLabelField(){return!0}constructor(a,b,c){super(qg.SKIP_SETUP);this.class=null;this.EDITABLE=!1;this.maxDisplayLength=Infinity;a!==qg.SKIP_SETUP&&(c?this.configure_(c):this.class=b||null,this.setValue(a))}configure_(a){super.configure_(a);a.class&&(this.class=a.class)}initView(){this.createTextElement_();this.class&&n(this.getTextElement(),this.class);this.fieldGroup_&&(n(this.fieldGroup_,"blocklyLabelField"),l(this.fieldGroup_,p.HIDDEN,!0))}computeAriaLabel(a=!0){a=a?this.getAriaTypeName():
1311
- null;var b,c=(b=this.getAriaValue())!=null?b:"";return a?`${a}: ${c}`:c}doClassValidation_(a){return a===null||a===void 0?null:`${a}`}setClass(a){this.textElement_&&(this.class&&Ma(this.textElement_,this.class),a&&n(this.textElement_,a));this.class=a}static fromJson(a){return new this(gg(a.text),void 0,a)}};ih("field_label",$n);$n.prototype.DEFAULT_VALUE="";var ao=class extends rn{constructor(a,b,c,d,e){super(b,c,d,void 0,e);this.text=a;this.workspace=b;this.anchor=c;this.ownerRect=d;this.owner=e;this.paragraph=this.stringToSvg(a,this.contentContainer);this.updateBubbleSize();n(this.svgRoot,"blocklyTextBubble")}getText(){return this.text}setText(a){this.text=a;Oa(this.paragraph);this.paragraph=this.stringToSvg(a,this.contentContainer);this.updateBubbleSize()}stringToSvg(a,b){b=this.createParagraph(b);a=this.createTextFragments(b,a);this.workspace.RTL&&
1312
- this.rightAlignTextFragments(b.getBBox().width,a);return b}createParagraph(a){return r(q.G,{"class":"blocklyText blocklyBubbleText blocklyNoPointerEvents",transform:`translate(0,${rn.BORDER_WIDTH})`,style:`direction: ${this.workspace.RTL?"rtl":"ltr"}`},a)}createTextFragments(a,b){var c=1;return b.split("\n").map(d=>{var e=r(q.TEXT,{y:`${c}em`,x:rn.BORDER_WIDTH},a);d=document.createTextNode(d);e.appendChild(d);c+=1;return e})}rightAlignTextFragments(a,b){for(let c of b)c.setAttribute("text-anchor",
1313
- "start"),c.setAttribute("x",`${a+rn.BORDER_WIDTH}`)}updateBubbleSize(){var a=this.paragraph.getBBox();this.setSize(new hc(a.width+rn.BORDER_WIDTH*2,a.height+rn.BORDER_WIDTH*2),!0)}};var bo=class extends tn{constructor(a){super(a);this.sourceBlock=a;this.textMap=new Map;this.textBubble=null}getType(){return bo.TYPE}initView(a){this.svgRoot||(super.initView(a),r(q.PATH,{"class":"blocklyIconShape",d:"M2,15Q-1,15 0.5,12L6.5,1.7Q8,-1 9.5,1.7L15.5,12Q17,15 14,15z"},this.svgRoot),r(q.PATH,{"class":"blocklyIconSymbol",d:"m7,4.8v3.16l0.27,2.27h1.46l0.27,-2.27v-3.16z"},this.svgRoot),r(q.RECT,{"class":"blocklyIconSymbol",x:"7",y:"11",height:"2",width:"2"},this.svgRoot),n(this.svgRoot,"blocklyWarningIcon"))}dispose(){super.dispose();
1314
- var a;(a=this.textBubble)==null||a.dispose()}getWeight(){return bo.WEIGHT}getSize(){return new hc(17,17)}applyColour(){super.applyColour();var a;(a=this.textBubble)==null||a.setColour(this.sourceBlock.getColour())}updateCollapsed(){}isShownWhenCollapsed(){return!0}onLocationChange(a){super.onLocationChange(a);var b;(b=this.textBubble)==null||b.setAnchorLocation(this.getAnchorLocation())}addMessage(a,b){if(this.textMap.get(b)===a)return this;a?this.textMap.set(b,a):this.textMap.delete(b);var c;(c=
1315
- this.textBubble)==null||c.setText(this.getText());return this}getText(){return[...this.textMap.values()].join("\n")}onClick(){super.onClick();this.setBubbleVisible(!this.bubbleIsVisible())}isClickableInFlyout(){return!1}bubbleIsVisible(){return!!this.textBubble}setBubbleVisible(a){var b=this;return(0,M.asyncExecutePromiseGeneratorFunction)(function*(){if(b.bubbleIsVisible()!==a){yield cd();if(a)b.textBubble=new ao(b.getText(),b.sourceBlock.workspace,b.getAnchorLocation(),b.getBubbleOwnerRect(),b),
1296
+ b){this.updateMoveMode(b);this.moveMode===Yn.UNCONSTRAINED&&this.block.moveDuringDrag(a);b=!!this.connectionCandidate;this.updateConnectionPreview(this.block,D.difference(a,this.startLoc));if(this.connectionCandidate)this.moveMode===Yn.CONSTRAINED&&this.block.moveDuringDrag(this.determineConnectionOffset());else if(this.moveMode===Yn.CONSTRAINED&&(this.allConnectionPairs.length||Yi(this.workspace,!0),!b)){this.workspace.getAudioManager().playErrorBeep();return}this.announceMove()}determineConnectionOffset(){var {local:a,
1297
+ neighbour:b}=this.connectionCandidate,c=a.getOffsetInBlock(),d=b.x-c.x;c=b.y-c.y;var e=this.BLOCK_CONNECTION_OFFSET;a.type===G.PREVIOUS_STATEMENT||a.type===G.OUTPUT_VALUE?(d+=e,c+=e):(d-=e,c-=e);return new D(d,c)}updateConnectionPreview(a,b,c){var d=this.connectionCandidate;c=c!=null?c:this.getConnectionCandidate(b);this.connectionCandidate=null;if(c){var e=d&&this.currCandidateIsBetter(d,b,c)?d:c;this.connectionCandidate=e;var {local:f,neighbour:g}=e;e=f.type===G.OUTPUT_VALUE||f.type===G.PREVIOUS_STATEMENT;
1298
+ var h;b=g.isConnected()&&!((h=g.targetBlock())==null?0:h.isInsertionMarker());if(e&&b&&!this.orphanCanConnectAtEnd(a,g.targetBlock(),f.type)){var m;(m=this.connectionPreviewer)==null||m.previewReplacement(f,g,g.targetBlock())}else{let E;(E=this.connectionPreviewer)==null||E.previewConnection(f,g)}return g}if(this.moveMode===Yn.CONSTRAINED){let E;h=(E=d==null?void 0:d.neighbour.getSourceBlock())!=null?E:null;let J;m=(J=h==null?void 0:h.getRootBlock())!=null?J:h;m===a&&(m=h);if(!m){let T;(T=this.connectionPreviewer)==
1299
+ null||T.hidePreview();return}h=a.workspace.getTopBlocks().filter(T=>T!==a.getRootBlock()).map(T=>T.getBoundingRectangle());if(!h.length){let T;(T=this.connectionPreviewer)==null||T.hidePreview();return}var z;d=(z=d==null?void 0:d.neighbour.x)!=null?z:a.getRelativeToSurfaceXY().x;z=this.BLOCK_CONNECTION_OFFSET*2;switch(this.getDirectionToNewLocation(D.sum(this.startLoc,b))){case si.LEFT:case si.UP:b=Math.min(...h.map(T=>T.top))-z-a.getHeightWidth().height;break;default:b=Math.max(...h.map(T=>T.bottom))+
1300
+ z}a.moveDuringDrag(new D(d,b))}(e=this.connectionPreviewer)==null||e.hidePreview()}orphanCanConnectAtEnd(a,b,c){return!!Bn.getConnectionForOrphanedConnection(a,c===G.OUTPUT_VALUE?b.outputConnection:b.previousConnection)}currCandidateIsBetter(a,b,c){if(this.moveMode===Yn.CONSTRAINED)return!1;var {local:d,neighbour:e}=a;a=new D(d.x,d.y);var f=new D(e.x,e.y);b=D.distance(D.sum(a,b),f);return c.distance>b-$.Og.currentConnectionPreference}getConnectionCandidate(a){return this.moveMode===Yn.CONSTRAINED?
1301
+ this.findTraversalCandidate(a):this.getClosestCandidate(this.block,a)}getClosestCandidate(a,b){var c=this.getSearchRadius();a=this.getLocalConnections(a);var d=null;for(let e of a){let {connection:f,radius:g}=e.closest(c,b);f&&(d={local:e,neighbour:f,distance:g},c=g)}return d}getSearchRadius(){return this.moveMode===Yn.CONSTRAINED?Infinity:this.connectionCandidate?$.Og.connectingSnapRadius:$.Og.snapRadius}getLocalConnections(a){var b=a.getConnections_(!1),c=a.lastConnectionInStack(!0);c&&c!==a.nextConnection&&
1302
+ b.push(c);a=[a.outputConnection,a.previousConnection,a.nextConnection].filter(d=>!!d);c=[];for(let d of b)a.includes(d)||c.push(d);c.reverse();return[...a,...c]}endDrag(a,b){b===Un.DELETE&&Kh(this.block);this.originalEventGroup=$.gd;this.fireDragEndEvent();this.fireMoveEvent();Ua();Mh();var c;(c=this.connectionPreviewer)==null||c.hidePreview();if(!this.block.isDeadOrDying()&&this.dragging){let d;(d=this.workspace.getLayerManager())==null||d.moveOffDragLayer(this.block,50);this.getVisibleBubbles(this.block).forEach(e=>
1303
+ {var f;return(f=this.workspace.getLayerManager())==null?void 0:f.moveOffDragLayer(e,100,!1)});this.block.setDragging(!1);this.redisableAllDraggedBlocks(this.block)}this.connectionCandidate?(this.applyConnections(this.connectionCandidate),this.disposeStep()):(b!==Un.DELETE&&this.workspace.getAudioManager().play("drop"),this.block.queueRender().then(()=>this.disposeStep()));this.allConnectionPairs=[];this.connectionCandidate=this.startChildConn=this.startParentConn=null;this.dragging=!1}disposeStep(){var a=
1304
+ $.gd;$.B(this.originalEventGroup);this.block.snapToGrid();var b;(b=this.connectionPreviewer)==null||b.dispose();this.workspace.setResizesEnabled(!0);$.B(a)}applyConnections(a){var {local:b,neighbour:c}=a;b.connect(c);var d=b.isSuperior()?c:b,e=this.block.getRootBlock();cd().then(()=>{Lh(d.getSourceBlock());setTimeout(()=>{e.bringToFront()},0)})}revertDrag(){var a;(a=this.connectionPreviewer)==null||a.hidePreview();this.connectionCandidate=null;if(this.block.nextConnection){let b;(b=this.startChildConn)==
1305
+ null||b.connect(this.block.nextConnection)}if(this.startParentConn)switch(this.startParentConn.type){case G.INPUT_VALUE:this.block.outputConnection&&this.startParentConn.connect(this.block.outputConnection);break;case G.NEXT_STATEMENT:this.block.previousConnection&&this.startParentConn.connect(this.block.previousConnection)}else{this.block.moveDuringDrag(this.startLoc);let b;(b=this.workspace.getLayerManager())==null||b.moveOffDragLayer(this.block,50);this.getVisibleBubbles(this.block).forEach(c=>
1306
+ {var d;return(d=this.workspace.getLayerManager())==null?void 0:d.moveOffDragLayer(c,100,!1)});Uh(this.workspace,this.workspace.getMetricsManager().getScrollMetrics(!0),this.block)}this.startParentConn=this.startChildConn=null;this.block.setDragging(!1);this.redisableAllDraggedBlocks(this.block);this.dragging=!1;Ja($.C.ANNOUNCE_MOVE_CANCELED)}findTraversalCandidate(a){var b=this.getDirectionToNewLocation(D.sum(this.startLoc,a)),c=this.allConnectionPairs;if(b===si.NONE||!c.length)return this.connectionCandidate;
1307
+ b=b===si.RIGHT||b===si.DOWN;var d=c.findIndex(f=>{var g,h;return((g=this.connectionCandidate)==null?void 0:g.local)===f.local&&((h=this.connectionCandidate)==null?void 0:h.neighbour)===f.neighbour}),e=this.block.workspace.getNavigator();return b?d===-1?this.isInTerminalPosition(this.block,si.DOWN)?e.getNavigationLoops()?this.pairToCandidate(c[0]):null:this.getClosestCandidate(this.block,a):d===c.length-1?null:this.pairToCandidate(c[d+1]):d===-1?this.isInTerminalPosition(this.block,si.UP)?e.getNavigationLoops()?
1308
+ this.pairToCandidate(c[c.length-1]):null:this.getClosestCandidate(this.block,a):d===0?null:this.pairToCandidate(c[d-1])}isInTerminalPosition(a,b){if(a.getParent())return!1;var c=a.workspace.getTopBlocks(!0),d=a.getBoundingRectangle(),e=(b=b===si.UP)?"top":"bottom",f=b?(g,h)=>g<=h:(g,h)=>g>=h;b=c.filter(g=>g.id!==a.id&&f(g.getBoundingRectangle()[e],d[e]));c=a.getConnections_(!1);for(let g of b){b=this.getAllConnections(g);for(let h of c)for(let m of b)if(a.workspace.connectionChecker.canConnect(h,
1309
+ m,!0,Infinity))return!1}return!0}pairToCandidate(a){return Object.assign({},a,{distance:0})}getDirectionToNewLocation(a){var b=this.block.getRelativeToSurfaceXY();a=D.difference(a,b);var {x:c,y:d}=a;return Math.abs(c)>Math.abs(d)?c<0?si.LEFT:si.RIGHT:Math.abs(d)>0?d<0?si.UP:si.DOWN:si.NONE}getAllConnections(a){if(a.isShadow())return[];var b=[];a.outputConnection&&b.push(a.outputConnection);a.previousConnection&&b.push(a.previousConnection);if(!a.isCollapsed())for(let c of a.inputList)if(c.connection&&
1310
+ c.isVisible()){b.push(c.connection);let d=c.connection.targetBlock();d&&b.push(...this.getAllConnections(d))}a.nextConnection&&(b.push(a.nextConnection),(a=a.nextConnection.targetBlock())&&b.push(...this.getAllConnections(a)));return b}getInitialCandidate(){var a=this.workspace.getSvgGroup().querySelector(`.${Za.PASSIVE_FOCUS_NODE_CSS_CLASS_NAME}`);if(!a||!a.id||a===this.block.getFocusableElement())return null;a=this.workspace.lookUpFocusableNode(a.id);if(!a)return null;var b=this.workspace.getNavigator().getSourceBlockFromNode(a);
1311
+ if(!b)return null;var c=null;if(b.getConnections_(!1).includes(a)){c=a;let g=this.block.workspace.connectionChecker;if(a=this.block.getConnections_(!1).find(h=>g.canConnect(h,c,!0,Infinity)))return{local:a,neighbour:c,distance:0}}if(a=this.allConnectionPairs.find(g=>g.neighbour.getSourceBlock()===b))return this.pairToCandidate(a);var d,e=(d=b.outputConnection)==null?void 0:d.targetConnection;if(d=this.allConnectionPairs.find(g=>g.neighbour===e))return this.pairToCandidate(d);for(var f=b.getSurroundParent();f;){if(d=
1312
+ this.allConnectionPairs.find(g=>g.neighbour.getSourceBlock()===f))return this.pairToCandidate(d);f=f.getSurroundParent()}return null}updateMoveMode(a){this.moveMode=a instanceof KeyboardEvent&&!a.ctrlKey&&!a.metaKey?Yn.CONSTRAINED:Yn.UNCONSTRAINED}enableAllDraggedBlocks(a){var b=$.Qc;$.Qc=!1;this.lastBlockDisabledReasons.clear();a.getDescendants(!1).forEach(c=>{var d=new Set(c.getDisabledReasons());this.lastBlockDisabledReasons.set(c.id,d);d.forEach(e=>c.setDisabledReason(!1,e))});$.Qc=b}redisableAllDraggedBlocks(a){var b=
1313
+ $.Qc;$.Qc=!1;a.getDescendants(!1).forEach(c=>{var d;(d=this.lastBlockDisabledReasons.get(c.id))==null||d.forEach(e=>{c.setDisabledReason(!0,e)})});$.Qc=b}};var ao=class extends rg{isLabelField(){return!0}constructor(a,b,c){super(rg.SKIP_SETUP);this.class=null;this.EDITABLE=!1;this.maxDisplayLength=Infinity;a!==rg.SKIP_SETUP&&(c?this.configure_(c):this.class=b||null,this.setValue(a))}configure_(a){super.configure_(a);a.class&&(this.class=a.class)}initView(){this.createTextElement_();this.class&&n(this.getTextElement(),this.class);this.fieldGroup_&&(n(this.fieldGroup_,"blocklyLabelField"),l(this.fieldGroup_,p.HIDDEN,!0))}computeAriaLabel(a=!0){a=a?this.getAriaTypeName():
1314
+ null;var b,c=(b=this.getAriaValue())!=null?b:"";return a?`${a}: ${c}`:c}doClassValidation_(a){return a===null||a===void 0?null:`${a}`}setClass(a){this.textElement_&&(this.class&&Ma(this.textElement_,this.class),a&&n(this.textElement_,a));this.class=a}static fromJson(a){return new this(hg(a.text),void 0,a)}};jh("field_label",ao);ao.prototype.DEFAULT_VALUE="";var bo=class extends sn{constructor(a,b,c,d,e){super(b,c,d,void 0,e);this.text=a;this.workspace=b;this.anchor=c;this.ownerRect=d;this.owner=e;this.paragraph=this.stringToSvg(a,this.contentContainer);this.updateBubbleSize();n(this.svgRoot,"blocklyTextBubble")}getText(){return this.text}setText(a){this.text=a;Oa(this.paragraph);this.paragraph=this.stringToSvg(a,this.contentContainer);this.updateBubbleSize()}stringToSvg(a,b){b=this.createParagraph(b);a=this.createTextFragments(b,a);this.workspace.RTL&&
1315
+ this.rightAlignTextFragments(b.getBBox().width,a);return b}createParagraph(a){return r(q.G,{"class":"blocklyText blocklyBubbleText blocklyNoPointerEvents",transform:`translate(0,${sn.BORDER_WIDTH})`,style:`direction: ${this.workspace.RTL?"rtl":"ltr"}`},a)}createTextFragments(a,b){var c=1;return b.split("\n").map(d=>{var e=r(q.TEXT,{y:`${c}em`,x:sn.BORDER_WIDTH},a);d=document.createTextNode(d);e.appendChild(d);c+=1;return e})}rightAlignTextFragments(a,b){for(let c of b)c.setAttribute("text-anchor",
1316
+ "start"),c.setAttribute("x",`${a+sn.BORDER_WIDTH}`)}updateBubbleSize(){var a=this.paragraph.getBBox();this.setSize(new hc(a.width+sn.BORDER_WIDTH*2,a.height+sn.BORDER_WIDTH*2),!0)}};var co=class extends un{constructor(a){super(a);this.sourceBlock=a;this.textMap=new Map;this.textBubble=null}getType(){return co.TYPE}initView(a){this.svgRoot||(super.initView(a),r(q.PATH,{"class":"blocklyIconShape",d:"M2,15Q-1,15 0.5,12L6.5,1.7Q8,-1 9.5,1.7L15.5,12Q17,15 14,15z"},this.svgRoot),r(q.PATH,{"class":"blocklyIconSymbol",d:"m7,4.8v3.16l0.27,2.27h1.46l0.27,-2.27v-3.16z"},this.svgRoot),r(q.RECT,{"class":"blocklyIconSymbol",x:"7",y:"11",height:"2",width:"2"},this.svgRoot),n(this.svgRoot,"blocklyWarningIcon"))}dispose(){super.dispose();
1317
+ var a;(a=this.textBubble)==null||a.dispose()}getWeight(){return co.WEIGHT}getSize(){return new hc(17,17)}applyColour(){super.applyColour();var a;(a=this.textBubble)==null||a.setColour(this.sourceBlock.getColour())}updateCollapsed(){}isShownWhenCollapsed(){return!0}onLocationChange(a){super.onLocationChange(a);var b;(b=this.textBubble)==null||b.setAnchorLocation(this.getAnchorLocation())}addMessage(a,b){if(this.textMap.get(b)===a)return this;a?this.textMap.set(b,a):this.textMap.delete(b);var c;(c=
1318
+ this.textBubble)==null||c.setText(this.getText());return this}getText(){return[...this.textMap.values()].join("\n")}onClick(){super.onClick();this.setBubbleVisible(!this.bubbleIsVisible())}isClickableInFlyout(){return!1}bubbleIsVisible(){return!!this.textBubble}setBubbleVisible(a){var b=this;return(0,M.asyncExecutePromiseGeneratorFunction)(function*(){if(b.bubbleIsVisible()!==a){yield cd();if(a)b.textBubble=new bo(b.getText(),b.sourceBlock.workspace,b.getAnchorLocation(),b.getBubbleOwnerRect(),b),
1316
1319
  b.applyColour(),b.textBubble.setAriaLabelProvider(()=>$.C.BUBBLE_LABEL_WARNING.replace("%1",b.getText()));else{let c;(c=b.textBubble)==null||c.dispose();b.textBubble=null}w(new (u(v.BUBBLE_OPEN))(b.sourceBlock,a,"warning"));b.recomputeAriaContext()}})}getBubble(){return this.textBubble}getAnchorLocation(){return D.sum(this.workspaceLocation,new D(8.5,8.5))}getBubbleOwnerRect(){var a=this.sourceBlock.getSvgRoot().getBBox();return new cc(a.y,a.y+a.height,a.x,a.x+a.width)}getAriaLabel(){return this.bubbleIsVisible()?
1317
- $.C.ICON_LABEL_WARNING_OPEN:$.C.ICON_LABEL_WARNING_CLOSED}};bo.TYPE=Yg.WARNING;bo.WEIGHT=2;var hi=class extends Nn{constructor(a,b,c){super(a,b,c);this.childlessWidth=this.width=this.height=0;this.warningTextDb=new Map;this.mutator=null;this.rendered=!0;this.visuallyDisabled=!1;this.previousConnection=this.nextConnection=this.outputConnection=null;this.translation="";this.dragging=!1;this.relativeCoords=new D(0,0);this.dragStrategy=new Zn(this);if(!a.rendered)throw TypeError("Cannot create a rendered block in a headless workspace");this.workspace=a;this.svgGroup=r(q.G,{});b&&n(this.svgGroup,
1318
- b);this.style=a.getRenderer().getConstants().getBlockStyle(null);this.pathObject=a.getRenderer().makePathObject(this.svgGroup,this.style);a=this.pathObject.svgPath;a.tooltip=this;Gf(a);this.svgGroup.setAttribute("data-id",this.id);a.id=Lb();this.doInit_()}initSvg(){if(!this.initialized){for(var a of this.inputList)a.init();for(let b of this.getIcons())b.initView(this.createIconPointerDownListener(b)),b.updateEditable();this.applyColour();this.pathObject.updateMovable(this.isMovable()||this.isInFlyout);
1320
+ $.C.ICON_LABEL_WARNING_OPEN:$.C.ICON_LABEL_WARNING_CLOSED}};co.TYPE=Zg.WARNING;co.WEIGHT=2;var ii=class extends On{constructor(a,b,c){super(a,b,c);this.childlessWidth=this.width=this.height=0;this.warningTextDb=new Map;this.mutator=null;this.rendered=!0;this.visuallyDisabled=!1;this.previousConnection=this.nextConnection=this.outputConnection=null;this.translation="";this.dragging=!1;this.relativeCoords=new D(0,0);this.dragStrategy=new $n(this);if(!a.rendered)throw TypeError("Cannot create a rendered block in a headless workspace");this.workspace=a;this.svgGroup=r(q.G,{});b&&n(this.svgGroup,
1321
+ b);this.style=a.getRenderer().getConstants().getBlockStyle(null);this.pathObject=a.getRenderer().makePathObject(this.svgGroup,this.style);a=this.pathObject.svgPath;a.tooltip=this;Hf(a);this.svgGroup.setAttribute("data-id",this.id);a.id=Lb();this.doInit_()}initSvg(){if(!this.initialized){for(var a of this.inputList)a.init();for(let b of this.getIcons())b.initView(this.createIconPointerDownListener(b)),b.updateEditable();this.applyColour();this.pathObject.updateMovable(this.isMovable()||this.isInFlyout);
1319
1322
  (a=this.getSvgRoot())&&k(a,"pointerdown",this,this.onMouseDown);a.parentNode||this.workspace.getCanvas().appendChild(a);this.recomputeAriaContext();this.initialized=!0}}getColourSecondary(){return this.style.colourSecondary}getColourTertiary(){return this.style.colourTertiary}select(){this.addSelect();ob(this)}unselect(){this.removeSelect();ob(null)}setParent(a){var b=this.parentBlock_;if(a!==b){Ta();super.setParent(a);Ua();var c=this.getSvgRoot();if(!this.workspace.isClearing&&c){var d=this.getRelativeToSurfaceXY(),
1320
- e=$.t().getFocusedNode(),f,g=this.getSvgRoot().contains((f=e==null?void 0:e.getFocusableElement())!=null?f:null);a?(a.getSvgRoot().appendChild(c),g&&e&&$.t().focusNode(e)):b&&(a=this.workspace.getCanvas().querySelector(".blocklyDragging"),b=a==null?void 0:a.parentElement,f=this.workspace.getCanvas(),b===f?f.insertBefore(c,a):(f.appendChild(c),g&&e&&$.t().focusNode(e)),this.translate(d.x,d.y));this.applyColour();this.recomputeAriaContext()}}}getRelativeToSurfaceXY(){var a=this.workspace.getLayerManager();
1321
- if(!a)throw Error("Cannot calculate position because the workspace has not been appended");var b=0,c=0,d=this.getSvgRoot();if(d){do{let e=kc(d);b+=e.x;c+=e.y;d=d.parentNode}while(d&&!a.hasLayer(d))}return new D(b,c)}moveBy(a,b,c){if(this.parentBlock_)throw Error("Block has parent");var d=Vb(),e=null;d&&(e=new (u(v.BLOCK_MOVE))(this),c&&e.setReason(c));a=new D(a,b);b=this.getRelativeToSurfaceXY();a=D.sum(b,a);this.translate(a.x,a.y);this.updateComponentLocations(a);d&&e&&(e.recordNew(),w(e));this.workspace.resizeContents()}translate(a,
1322
- b){this.translation=`translate(${a}, ${b})`;this.relativeCoords=new D(a,b);this.getSvgRoot().setAttribute("transform",this.getTranslation())}getTranslation(){return this.translation}moveTo(a,b){var c=this.getRelativeToSurfaceXY();this.moveBy(a.x-c.x,a.y-c.y,b)}moveDuringDrag(a){this.translate(a.x,a.y);this.getSvgRoot().setAttribute("transform",this.getTranslation());this.updateComponentLocations(a)}snapToGrid(){if(!this.isDeadOrDying()&&!this.getParent()&&!this.isInFlyout){var a=this.workspace.getGrid();
1323
- if(a!=null&&a.shouldSnap()){var b=this.getRelativeToSurfaceXY();a=a.alignXY(b);a!==b&&this.moveTo(a,["snap"])}}}getBoundingRectangle(){return this.getBoundingRectangleWithDimensions(this.getHeightWidth())}getBoundingRectangleWithoutChildren(){return this.getBoundingRectangleWithDimensions({height:this.height,width:this.childlessWidth})}getBoundingRectangleWithDimensions(a){var b=this.getRelativeToSurfaceXY();if(this.RTL){var c=b.x-a.width;var d=b.x}else c=b.x,d=b.x+a.width;return new cc(b.y,b.y+a.height,
1324
- c,d)}markDirty(){this.pathObject.constants=this.workspace.getRenderer().getConstants();for(let a=0,b;b=this.inputList[a];a++)b.markDirty()}setCollapsed(a){this.collapsed_!==a&&(super.setCollapsed(a),this.updateCollapsed())}childHasWarning(){var a=this.getNextBlock();a=a?new Set(a.getDescendants(!1)):null;var b=this.getDescendants(!1);for(let c of b)if(c!==this&&(a==null||!a.has(c))&&c.getIcon(bo.TYPE))return!0;return!1}updateCollapsed(){var a=this.isCollapsed();for(let c=0,d;d=this.inputList[c];c++)d.name!==
1325
- "_TEMP_COLLAPSED_INPUT"&&d.setVisible(!a);for(var b of this.getIcons())b.updateCollapsed();a?(n(this.svgGroup,"blocklyCollapsed"),this.childHasWarning()&&this.setWarningText($.C.COLLAPSED_WARNINGS_WARNING,hi.COLLAPSED_WARNING_ID),a=this.toString(30),(b=this.getField("_TEMP_COLLAPSED_FIELD"))?b.setValue(a):((this.getInput("_TEMP_COLLAPSED_INPUT")||this.appendDummyInput("_TEMP_COLLAPSED_INPUT")).appendField(new $n(a),"_TEMP_COLLAPSED_FIELD"),this.recomputeAriaContext())):(this.updateDisabled(),this.removeInput("_TEMP_COLLAPSED_INPUT"),
1326
- Ma(this.svgGroup,"blocklyCollapsed"),this.setWarningText(null,hi.COLLAPSED_WARNING_ID))}onMouseDown(a){if(!this.workspace.isReadOnly()){var b=this.workspace.getGesture(a);b&&b.handleBlockStart(a,this)}}showHelp(){var a=typeof this.helpUrl==="function"?this.helpUrl():this.helpUrl;a&&window.open(a)}generateContextMenu(a){if(this.workspace.isReadOnly()||!this.contextMenu)return null;a=Jj.registry.getContextMenuOptions({block:this,focusedNode:this},a);this.customContextMenu&&this.customContextMenu(a);
1327
- return a}calculateContextMenuLocation(a){if(a instanceof PointerEvent)return new D(a.clientX,a.clientY);a=pc(this.workspace,this.getRelativeToSurfaceXY());var b,c,d=(b=this.inputList.filter(e=>e.isVisible()).flatMap(e=>e.fieldRow).find(e=>e.isVisible()))==null?void 0:(c=b.getSvgRoot())==null?void 0:c.getBoundingClientRect();return new D(this.RTL?a.x-5:a.x+5,(d&&d.height?d.y+d.height:a.y+this.height)+5)}showContextMenu(a){if(this.isShadow()){for(var b=this.getParent();b&&b.isShadow();)b=b.getParent();
1328
- b&&($.t().focusNode(b),b.showContextMenu(a))}else{b=this.generateContextMenu(a);var c=this.calculateContextMenuLocation(a);b&&b.length&&(Gg(a,b,this.RTL,this.workspace,c),Eg=this)}}updateComponentLocations(a){this.dragging||this.updateConnectionLocations(a);this.updateIconLocations(a);this.updateFieldLocations(a);for(let b of this.getChildren(!1))b.updateComponentLocations(D.sum(a,b.relativeCoords))}updateConnectionLocations(a){for(let b of this.getConnections_(!1))b.moveToOffset(a)}updateIconLocations(a){for(let b of this.getIcons())b.onLocationChange(a)}updateFieldLocations(a){for(let b of this.inputList)for(let c of b.fieldRow)c.onLocationChange(a)}addClass(a){n(this.svgGroup,
1329
- a)}removeClass(a){Ma(this.svgGroup,a)}setDragging(a){(this.dragging=a)?(this.translation="",Uk.push(...this.getConnections_(!0)),this.addClass("blocklyDragging")):(Uk.length=0,this.removeClass("blocklyDragging"),this.getFullBlockField()&&this.recomputeAriaContext());for(let b=0;b<this.childBlocks_.length;b++)this.childBlocks_[b].setDragging(a)}isDragging(){return this.dragging}setMovable(a){super.setMovable(a);this.pathObject.updateMovable(a)}setEditable(a){super.setEditable(a);a?Ma(this.svgGroup,
1330
- "blocklyNotEditable"):n(this.svgGroup,"blocklyNotEditable");a=this.getIcons();for(let b=0;b<a.length;b++)a[b].updateEditable()}setShadow(a){super.setShadow(a);this.applyColour();this.recomputeAriaContext()}setInsertionMarker(a){this.isInsertionMarker_!==a&&(this.isInsertionMarker_=a)&&(this.setColour(this.workspace.getRenderer().getConstants().INSERTION_MARKER_COLOUR),this.pathObject.updateInsertionMarker(!0))}getSvgRoot(){return this.svgGroup}getNearestNeighbour(){if(!this.workspace.rendered)return null;
1331
- var a=this.workspace.getAllBlocks(!1).filter(e=>!e.isDeadOrDying()),b=null,c=Number.MAX_SAFE_INTEGER,d=this.getRelativeToSurfaceXY();for(let e of a)a=e.getRelativeToSurfaceXY(),a=Math.sqrt(Math.pow(a.x-d.x,2)+Math.pow(a.y-d.y,2)),a<c&&(b=e,c=a);return b}dispose(a,b){this.disposing=!0;Sf();Fg();b&&(this.unplug(a),Jh(this));var c=$.t(),d,e;b=(e=(d=c.getFocusedNode())==null?void 0:d.getFocusableElement())!=null?e:null;super.dispose(!!a);Oa(this.svgGroup);if(this.getSvgRoot().contains(b)){let f=this.getParent();
1332
- if(!f){let g;if(a=(g=this.outputConnection)!=null?g:this.previousConnection){let h;f=(h=a.closest(0,new D(0,0)).connection)==null?void 0:h.getSourceBlock()}}setTimeout(()=>{if(this.workspace.rendered)if(f)c.focusNode(f);else{let g=this.getNearestNeighbour();g?c.focusNode(g):c.focusTree(this.workspace)}},0)}}disposeInternal(){this.disposing=!0;super.disposeInternal();$.t().getFocusedNode()===this&&this.workspace.cancelCurrentGesture();[...this.warningTextDb.values()].forEach(a=>clearTimeout(a));this.warningTextDb.clear();
1333
- this.getIcons().forEach(a=>a.dispose())}checkAndDelete(){this.workspace.isFlyout||($.B(!0),this.workspace.hideChaff(),this.outputConnection?this.dispose(!1,!0):this.dispose(!0,!0),$.B(!1))}toCopyData(a=!1){return this.isInsertionMarker_?null:{paster:Pn.TYPE,blockState:be(this,{addCoordinates:!0,addNextBlocks:a,saveIds:!1}),typeCounts:ub(this,!0)}}applyColour(){var a,b;(b=(a=this.pathObject).applyColour)==null||b.call(a,this);a=this.getIcons();for(b=0;b<a.length;b++)a[b].applyColour();for(let c of this.getFields())c.applyColour()}updateDisabled(){var a=
1334
- !this.isEnabled()||this.getInheritedDisabled();if(this.visuallyDisabled===a){let b;(b=this.getNextBlock())==null||b.updateDisabled()}else{this.applyColour();this.visuallyDisabled=a;for(let b of this.getChildren(!1))b.updateDisabled();this.recomputeAriaContext()}}setWarningText(a,b=""){if(b)this.warningTextDb.has(b)&&(clearTimeout(this.warningTextDb.get(b)),this.warningTextDb.delete(b));else{for(var c of this.warningTextDb.values())clearTimeout(c);this.warningTextDb.clear()}if(this.workspace.isDragging())this.warningTextDb.set(b,
1335
- setTimeout(()=>{this.isDeadOrDying()||(this.warningTextDb.delete(b),this.setWarningText(a,b))},100));else if(this.isInFlyout&&(a=null),c=this.getIcon(bo.TYPE),a){let d=this.getSurroundParent(),e=null;for(;d;)d.isCollapsed()&&(e=d),d=d.getSurroundParent();e&&e.setWarningText($.C.COLLAPSED_WARNINGS_WARNING,hi.COLLAPSED_WARNING_ID);c?c.addMessage(a,b):this.addIcon((new bo(this)).addMessage(a,b))}else c&&(b?(c.addMessage("",b),c.getText()||this.removeIcon(bo.TYPE)):this.removeIcon(bo.TYPE))}setMutator(a){this.removeIcon($.rh.TYPE);
1336
- a&&this.addIcon(a)}addIcon(a){super.addIcon(a);a instanceof $.rh&&(this.mutator=a);a.initView(this.createIconPointerDownListener(a));a.applyColour();a.updateEditable();this.queueRender();return a}createIconPointerDownListener(a){return b=>{!this.isDeadOrDying()&&(b=this.workspace.getGesture(b))&&(this.bringToFront(),b.setStartIcon(a),$.t().focusNode(a))}}removeIcon(a){var b=super.removeIcon(a);a.equals($.rh.TYPE)&&(this.mutator=null);this.queueRender();return b}setDisabledReason(a,b){var c=this.isEnabled();
1323
+ e=$.t().getFocusedNode(),f,g=this.getSvgRoot().contains((f=e==null?void 0:e.getFocusableElement())!=null?f:null);a?(a.getSvgRoot().appendChild(c),g&&e&&$.t().focusNode(e)):b&&(a=this.workspace.getCanvas().querySelector(".blocklyDragging"),b=a==null?void 0:a.parentElement,f=this.workspace.getCanvas(),b===f?f.insertBefore(c,a):(f.appendChild(c),g&&e&&$.t().focusNode(e)),this.translate(d.x,d.y));this.applyColour();this.recomputeAriaContext()}}}moveBy(a,b,c){if(this.parentBlock_)throw Error("Block has parent");
1324
+ var d=Vb(),e=null;d&&(e=new (u(v.BLOCK_MOVE))(this),c&&e.setReason(c));a=new D(a,b);b=this.getRelativeToSurfaceXY();a=D.sum(b,a);this.translate(a.x,a.y);this.workspace.connectionDBList.forEach(f=>f==null?void 0:f.beginBulkUpdates());this.updateComponentLocations(a);this.workspace.connectionDBList.forEach(f=>f==null?void 0:f.endBulkUpdates());d&&e&&(e.recordNew(),w(e));this.workspace.resizeContents()}translate(a,b){this.translation=`translate(${a}, ${b})`;this.relativeCoords=new D(a,b);this.getSvgRoot().setAttribute("transform",
1325
+ this.getTranslation())}getTranslation(){return this.translation}moveTo(a,b){var c=this.getRelativeToSurfaceXY();this.moveBy(a.x-c.x,a.y-c.y,b)}moveDuringDrag(a){this.translate(a.x,a.y);this.getSvgRoot().setAttribute("transform",this.getTranslation());this.updateComponentLocations(a)}snapToGrid(){if(!this.isDeadOrDying()&&!this.getParent()&&!this.isInFlyout){var a=this.workspace.getGrid();if(a!=null&&a.shouldSnap()){var b=this.getRelativeToSurfaceXY();a=a.alignXY(b);a!==b&&this.moveTo(a,["snap"])}}}getBoundingRectangle(){return this.getBoundingRectangleWithDimensions(this.getHeightWidth())}getBoundingRectangleWithoutChildren(){return this.getBoundingRectangleWithDimensions({height:this.height,
1326
+ width:this.childlessWidth})}getBoundingRectangleWithDimensions(a){var b=this.getRelativeToSurfaceXY();if(this.RTL){var c=b.x-a.width;var d=b.x}else c=b.x,d=b.x+a.width;return new cc(b.y,b.y+a.height,c,d)}markDirty(){this.pathObject.constants=this.workspace.getRenderer().getConstants();for(let a=0,b;b=this.inputList[a];a++)b.markDirty()}setCollapsed(a){this.collapsed_!==a&&(super.setCollapsed(a),this.updateCollapsed())}childHasWarning(){var a=this.getNextBlock();a=a?new Set(a.getDescendants(!1)):null;
1327
+ var b=this.getDescendants(!1);for(let c of b)if(c!==this&&(a==null||!a.has(c))&&c.getIcon(co.TYPE))return!0;return!1}updateCollapsed(){var a=this.isCollapsed();for(let c=0,d;d=this.inputList[c];c++)d.name!=="_TEMP_COLLAPSED_INPUT"&&d.setVisible(!a);for(var b of this.getIcons())b.updateCollapsed();a?(n(this.svgGroup,"blocklyCollapsed"),this.childHasWarning()&&this.setWarningText($.C.COLLAPSED_WARNINGS_WARNING,ii.COLLAPSED_WARNING_ID),a=this.toString(30),(b=this.getField("_TEMP_COLLAPSED_FIELD"))?b.setValue(a):
1328
+ ((this.getInput("_TEMP_COLLAPSED_INPUT")||this.appendDummyInput("_TEMP_COLLAPSED_INPUT")).appendField(new ao(a),"_TEMP_COLLAPSED_FIELD"),this.recomputeAriaContext())):(this.updateDisabled(),this.removeInput("_TEMP_COLLAPSED_INPUT"),Ma(this.svgGroup,"blocklyCollapsed"),this.setWarningText(null,ii.COLLAPSED_WARNING_ID))}onMouseDown(a){if(!this.workspace.isReadOnly()){var b=this.workspace.getGesture(a);b&&b.handleBlockStart(a,this)}}showHelp(){var a=typeof this.helpUrl==="function"?this.helpUrl():this.helpUrl;
1329
+ a&&window.open(a)}generateContextMenu(a){if(this.workspace.isReadOnly()||!this.contextMenu)return null;a=Kj.registry.getContextMenuOptions({block:this,focusedNode:this},a);this.customContextMenu&&this.customContextMenu(a);return a}calculateContextMenuLocation(a){if(a instanceof PointerEvent)return new D(a.clientX,a.clientY);a=pc(this.workspace,this.getRelativeToSurfaceXY());var b,c,d=(b=this.inputList.filter(e=>e.isVisible()).flatMap(e=>e.fieldRow).find(e=>e.isVisible()))==null?void 0:(c=b.getSvgRoot())==
1330
+ null?void 0:c.getBoundingClientRect();return new D(this.RTL?a.x-5:a.x+5,(d&&d.height?d.y+d.height:a.y+this.height)+5)}showContextMenu(a){if(this.isShadow()){for(var b=this.getParent();b&&b.isShadow();)b=b.getParent();b&&($.t().focusNode(b),b.showContextMenu(a))}else{b=this.generateContextMenu(a);var c=this.calculateContextMenuLocation(a);b&&b.length&&(Hg(a,b,this.RTL,this.workspace,c),Fg=this)}}updateComponentLocations(a){this.xy.x=a.x;this.xy.y=a.y;this.dragging||this.updateConnectionLocations(a);
1331
+ this.updateIconLocations(a);this.updateFieldLocations(a);for(let b of this.getChildren(!1))b.updateComponentLocations(D.sum(a,b.relativeCoords))}updateConnectionLocations(a){for(let b of this.getConnections_(!1))b.moveToOffset(a)}updateIconLocations(a){for(let b of this.getIcons())b.onLocationChange(a)}updateFieldLocations(a){for(let b of this.inputList)for(let c of b.fieldRow)c.onLocationChange(a)}addClass(a){n(this.svgGroup,a)}removeClass(a){Ma(this.svgGroup,a)}setDragging(a){(this.dragging=a)?
1332
+ (this.translation="",Vk.push(...this.getConnections_(!0)),this.addClass("blocklyDragging")):(Vk.length=0,this.removeClass("blocklyDragging"),this.getFullBlockField()&&this.recomputeAriaContext());for(let b=0;b<this.childBlocks_.length;b++)this.childBlocks_[b].setDragging(a)}isDragging(){return this.dragging}setMovable(a){super.setMovable(a);this.pathObject.updateMovable(a)}setEditable(a){super.setEditable(a);a?Ma(this.svgGroup,"blocklyNotEditable"):n(this.svgGroup,"blocklyNotEditable");a=this.getIcons();
1333
+ for(let b=0;b<a.length;b++)a[b].updateEditable()}setShadow(a){super.setShadow(a);this.applyColour();this.recomputeAriaContext()}setInsertionMarker(a){this.isInsertionMarker_!==a&&(this.isInsertionMarker_=a)&&(this.setColour(this.workspace.getRenderer().getConstants().INSERTION_MARKER_COLOUR),this.pathObject.updateInsertionMarker(!0))}getSvgRoot(){return this.svgGroup}getNearestNeighbour(){if(!this.workspace.rendered)return null;var a=this.workspace.getAllBlocks(!1).filter(e=>!e.isDeadOrDying()),b=
1334
+ null,c=Number.MAX_SAFE_INTEGER,d=this.getRelativeToSurfaceXY();for(let e of a)a=e.getRelativeToSurfaceXY(),a=Math.sqrt(Math.pow(a.x-d.x,2)+Math.pow(a.y-d.y,2)),a<c&&(b=e,c=a);return b}dispose(a,b){this.disposing=!0;Tf();Gg();b&&(this.unplug(a),Kh(this));var c=$.t(),d,e;b=(e=(d=c.getFocusedNode())==null?void 0:d.getFocusableElement())!=null?e:null;super.dispose(!!a);Oa(this.svgGroup);if(this.getSvgRoot().contains(b)){let f=this.getParent();if(!f){let g;if(a=(g=this.outputConnection)!=null?g:this.previousConnection){let h;
1335
+ f=(h=a.closest(0,new D(0,0)).connection)==null?void 0:h.getSourceBlock()}}setTimeout(()=>{if(this.workspace.rendered)if(f)c.focusNode(f);else{let g=this.getNearestNeighbour();g?c.focusNode(g):c.focusTree(this.workspace)}},0)}}disposeInternal(){this.disposing=!0;super.disposeInternal();$.t().getFocusedNode()===this&&this.workspace.cancelCurrentGesture();[...this.warningTextDb.values()].forEach(a=>clearTimeout(a));this.warningTextDb.clear();this.getIcons().forEach(a=>a.dispose())}checkAndDelete(){this.workspace.isFlyout||
1336
+ ($.B(!0),this.workspace.hideChaff(),this.outputConnection?this.dispose(!1,!0):this.dispose(!0,!0),$.B(!1))}toCopyData(a=!1){return this.isInsertionMarker_?null:{paster:Qn.TYPE,blockState:ce(this,{addCoordinates:!0,addNextBlocks:a,saveIds:!1}),typeCounts:ub(this,!0)}}applyColour(){var a,b;(b=(a=this.pathObject).applyColour)==null||b.call(a,this);a=this.getIcons();for(b=0;b<a.length;b++)a[b].applyColour();for(let c of this.getFields())c.applyColour()}updateDisabled(){var a=!this.isEnabled()||this.getInheritedDisabled();
1337
+ if(this.visuallyDisabled===a){let b;(b=this.getNextBlock())==null||b.updateDisabled()}else{this.applyColour();this.visuallyDisabled=a;for(let b of this.getChildren(!1))b.updateDisabled();this.recomputeAriaContext()}}setWarningText(a,b=""){if(b)this.warningTextDb.has(b)&&(clearTimeout(this.warningTextDb.get(b)),this.warningTextDb.delete(b));else{for(var c of this.warningTextDb.values())clearTimeout(c);this.warningTextDb.clear()}if(this.workspace.isDragging())this.warningTextDb.set(b,setTimeout(()=>
1338
+ {this.isDeadOrDying()||(this.warningTextDb.delete(b),this.setWarningText(a,b))},100));else if(this.isInFlyout&&(a=null),c=this.getIcon(co.TYPE),a){let d=this.getSurroundParent(),e=null;for(;d;)d.isCollapsed()&&(e=d),d=d.getSurroundParent();e&&e.setWarningText($.C.COLLAPSED_WARNINGS_WARNING,ii.COLLAPSED_WARNING_ID);c?c.addMessage(a,b):this.addIcon((new co(this)).addMessage(a,b))}else c&&(b?(c.addMessage("",b),c.getText()||this.removeIcon(co.TYPE)):this.removeIcon(co.TYPE))}setMutator(a){this.removeIcon($.sh.TYPE);
1339
+ a&&this.addIcon(a)}addIcon(a){super.addIcon(a);a instanceof $.sh&&(this.mutator=a);a.initView(this.createIconPointerDownListener(a));a.applyColour();a.updateEditable();this.queueRender();return a}createIconPointerDownListener(a){return b=>{!this.isDeadOrDying()&&(b=this.workspace.getGesture(b))&&(this.bringToFront(),b.setStartIcon(a),$.t().focusNode(a))}}removeIcon(a){var b=super.removeIcon(a);a.equals($.sh.TYPE)&&(this.mutator=null);this.queueRender();return b}setDisabledReason(a,b){var c=this.isEnabled();
1337
1340
  super.setDisabledReason(a,b);this.isEnabled()===c||this.getInheritedDisabled()||this.updateDisabled()}setDeletable(a){super.setDeletable(a);a?Ma(this.svgGroup,"blocklyNotDeletable"):n(this.svgGroup,"blocklyNotDeletable")}setHighlighted(a){this.pathObject.updateHighlighted(a)}addSelect(){this.pathObject.updateSelected(!0)}removeSelect(){this.pathObject.updateSelected(!1)}setDeleteStyle(a){this.pathObject.updateDraggingDelete(a)}getColour(){return this.style.colourPrimary}setColour(a){super.setColour(a);
1338
1341
  a=this.workspace.getRenderer().getConstants().getBlockStyleForColour(this.colour_);var b,c;(c=(b=this.pathObject).setStyle)==null||c.call(b,a.style);this.style=a.style;this.styleName_=a.name;this.applyColour()}setStyle(a){var b=this.workspace.getRenderer().getConstants().getBlockStyle(a);this.styleName_&&Ma(this.svgGroup,this.styleName_);if(b){this.hat=b.hat;let c,d;(d=(c=this.pathObject).setStyle)==null||d.call(c,b);this.colour_=b.colourPrimary;this.style=b;this.applyColour();n(this.svgGroup,a);
1339
1342
  this.styleName_=a}else throw Error("Invalid style name: "+a);}getStyle(){return this.style}bringToFront(a=!1){var b=$.t().getFocusedNode();this.moveSvgRootToFront(a);b&&$.t().focusNode(b)}moveSvgRootToFront(a=!1){this.isDeadOrDying()||requestAnimationFrame(()=>{if(!this.dragging){var b=this;do{if(b.isDeadOrDying())break;let c=b.getSvgRoot(),d=c.parentNode;if(!d)break;let e=d.childNodes;if(e[e.length-1]!==c)for(;c.nextSibling;)d.insertBefore(c.nextSibling,c);if(a)break;b=b.getParent()}while(b)}})}setPreviousStatement(a,
1340
1343
  b){super.setPreviousStatement(a,b);this.queueRender()}setNextStatement(a,b){super.setNextStatement(a,b);this.queueRender()}setOutput(a,b){super.setOutput(a,b);this.queueRender()}setInputsInline(a){super.setInputsInline(a);this.queueRender()}removeInput(a,b){a=super.removeInput(a,b);this.queueRender();return a}moveNumberedInputBefore(a,b){super.moveNumberedInputBefore(a,b);this.queueRender()}appendInput(a){super.appendInput(a);this.queueRender();return a}setConnectionTracking(a){this.previousConnection&&
1341
1344
  this.previousConnection.setTracking(a);this.outputConnection&&this.outputConnection.setTracking(a);if(this.nextConnection){this.nextConnection.setTracking(a);var b=this.nextConnection.targetBlock();b&&b.setConnectionTracking(a)}if(!this.collapsed_)for(b=0;b<this.inputList.length;b++){var c=this.inputList[b].connection;c&&(c.setTracking(a),(c=c.targetBlock())&&c.setConnectionTracking(a))}}getConnections_(a){var b=[];this.outputConnection&&b.push(this.outputConnection);this.previousConnection&&b.push(this.previousConnection);
1342
- this.nextConnection&&b.push(this.nextConnection);if(a||!this.collapsed_)for(let c=0,d;d=this.inputList[c];c++)d.connection&&b.push(d.connection);return b}lastConnectionInStack(a){return super.lastConnectionInStack(a)}getMatchingConnection(a,b){return super.getMatchingConnection(a,b)}makeConnection_(a){return new Li(this,a)}getNextBlock(){return super.getNextBlock()}getPreviousBlock(){return super.getPreviousBlock()}bumpNeighbours(){var a=this.getRootBlock();if(!(this.isDeadOrDying()||this.workspace.isDragging()||
1343
- this.isDragging()||a.isInFlyout))for(let b of this.getConnections_(!1)){if(b.isSuperior()){let c;(c=b.targetBlock())==null||c.bumpNeighbours()}for(let c of b.neighbours($.Ng.snapRadius))c.getSourceBlock().getRootBlock()!==a&&(b.isConnected()&&c.isConnected()||(b.isSuperior()?c.bumpAwayFrom(b,!1):c.getSourceBlock().isDragging()||b.bumpAwayFrom(c,!0)))}}scheduleSnapAndBump(){this.snapToGrid();this.bumpNeighbours()}positionNearConnection(a,b,c){if(a.type===G.NEXT_STATEMENT||a.type===G.INPUT_VALUE){let d=
1345
+ this.nextConnection&&b.push(this.nextConnection);if(a||!this.collapsed_)for(let c=0,d;d=this.inputList[c];c++)d.connection&&b.push(d.connection);return b}lastConnectionInStack(a){return super.lastConnectionInStack(a)}getMatchingConnection(a,b){return super.getMatchingConnection(a,b)}makeConnection_(a){return new Mi(this,a)}getNextBlock(){return super.getNextBlock()}getPreviousBlock(){return super.getPreviousBlock()}bumpNeighbours(){var a=this.getRootBlock();if(!(this.isDeadOrDying()||this.workspace.isDragging()||
1346
+ this.isDragging()||a.isInFlyout))for(let b of this.getConnections_(!1)){if(b.isSuperior()){let c;(c=b.targetBlock())==null||c.bumpNeighbours()}for(let c of b.neighbours($.Og.snapRadius))c.getSourceBlock().getRootBlock()!==a&&(b.isConnected()&&c.isConnected()||(b.isSuperior()?c.bumpAwayFrom(b,!1):c.getSourceBlock().isDragging()||b.bumpAwayFrom(c,!0)))}}scheduleSnapAndBump(){this.snapToGrid();this.bumpNeighbours()}positionNearConnection(a,b,c){if(a.type===G.NEXT_STATEMENT||a.type===G.INPUT_VALUE){let d=
1344
1347
  b.x;b=b.y;d+=c.x-a.getOffsetInBlock().x;b+=c.y-a.getOffsetInBlock().y;this.moveBy(d,b)}}getChildren(a){return super.getChildren(a)}queueRender(){return bd(this)}render(){this.queueRender();dd()}renderEfficiently(){Ta();this.isCollapsed()&&this.updateCollapsed();this.isEnabled()||this.updateDisabled();this.workspace.getRenderer().render(this);this.tightenChildrenEfficiently();Ua()}tightenChildrenEfficiently(){for(let a of this.inputList){let b=a.connection;b&&b.tightenEfficiently()}this.nextConnection&&
1345
1348
  this.nextConnection.tightenEfficiently()}getHeightWidth(){var a=this.height,b=this.width,c=this.getNextBlock();if(c){c=c.getHeightWidth();let d=this.workspace.getRenderer().getConstants().NOTCH_HEIGHT;a+=c.height-d;b=Math.max(b,c.width)}return{height:a,width:b}}fadeForReplacement(a){var b,c;(c=(b=this.pathObject).updateReplacing)==null||c.call(b,a)}getDragStrategy(){return this.dragStrategy}setDragStrategy(a){this.dragStrategy=a}isCopyable(){return this.isOwnDeletable()&&this.isOwnMovable()}isMovable(){return this.dragStrategy.isMovable()}startDrag(a){return this.dragStrategy.startDrag(a)}drag(a,
1346
- b){this.dragStrategy.drag(a,b)}endDrag(a,b){this.dragStrategy.endDrag(a,b)}revertDrag(){this.dragStrategy.revertDrag()}toFlyoutInfo(){function a(d){for(let e in d)c.has(e)?delete d[e]:typeof d[e]==="object"&&a(d[e])}var b=Object.assign({},{kind:"BLOCK"},be(this)),c=new Set(["id","height","width","pinned","enabled"]);a(b);return[b]}jsonInit(a){super.jsonInit(a);a.classes&&this.addClass(Array.isArray(a.classes)?a.classes.join(" "):a.classes)}getNestingLevel(){var a=this.getSurroundParent();return a?
1347
- a.getNestingLevel()+1:0}getFocusableElement(){var a=this.getFullBlockField();return a?a.getFocusableElement():this.pathObject.svgPath}getFocusableTree(){return this.workspace}onNodeFocus(){this.recomputeAriaContext();this.select();this.workspace.isFlyout||this.moveSvgRootToFront();var a=$.t().getFocusedNode();a&&a!==this&&cd().then(()=>{this.workspace.scrollBoundsIntoView(this.getBoundingRectangleWithoutChildren())})}onNodeBlur(){this.unselect()}canBeFocused(){return!0}performAction(a){if(this.workspace.isFlyout)qi.mover.startMove(this,
1348
- a);else{if(this.isSimpleReporter())for(var b of this.inputList)for(let c of b.fieldRow)if(c.isClickable()&&c.isFullBlockField()){c.showEditor();return}if(this.workspace.getNavigator().getInNode(this))a=this.workspace,b=qe(a.RTL?K.NAVIGATE_LEFT:K.NAVIGATE_RIGHT),b=$.C.KEYBOARD_NAV_BLOCK_NAVIGATION_HINT.replace("%1",b),ki.show(a,{message:b,id:"blockNavigationHint"});else if(a=this.workspace,b=qe("list_shortcuts"))b=$.C.HELP_PROMPT.replace("%1",b),ki.show(a,{message:b,id:"helpHint"})}}getParents(){for(var a=
1349
+ b){this.dragStrategy.drag(a,b)}endDrag(a,b){this.dragStrategy.endDrag(a,b)}revertDrag(){this.dragStrategy.revertDrag()}toFlyoutInfo(){function a(d){for(let e in d)c.has(e)?delete d[e]:typeof d[e]==="object"&&a(d[e])}var b=Object.assign({},{kind:"BLOCK"},ce(this)),c=new Set(["id","height","width","pinned","enabled"]);a(b);return[b]}jsonInit(a){super.jsonInit(a);a.classes&&this.addClass(Array.isArray(a.classes)?a.classes.join(" "):a.classes)}getNestingLevel(){var a=this.getSurroundParent();return a?
1350
+ a.getNestingLevel()+1:0}getFocusableElement(){var a=this.getFullBlockField();return a?a.getFocusableElement():this.pathObject.svgPath}getFocusableTree(){return this.workspace}onNodeFocus(){this.recomputeAriaContext();this.select();this.workspace.isFlyout||this.moveSvgRootToFront();var a=$.t().getFocusedNode();a&&a!==this&&cd().then(()=>{this.workspace.scrollBoundsIntoView(this.getBoundingRectangleWithoutChildren())})}onNodeBlur(){this.unselect()}canBeFocused(){return!0}performAction(a){if(this.workspace.isFlyout)ri.mover.startMove(this,
1351
+ a);else{if(this.isSimpleReporter())for(var b of this.inputList)for(let c of b.fieldRow)if(c.isClickable()&&c.isFullBlockField()){c.showEditor();return}if(this.workspace.getNavigator().getInNode(this))a=this.workspace,b=re(a.RTL?K.NAVIGATE_LEFT:K.NAVIGATE_RIGHT),b=$.C.KEYBOARD_NAV_BLOCK_NAVIGATION_HINT.replace("%1",b),li.show(a,{message:b,id:"blockNavigationHint"});else if(a=this.workspace,b=re("list_shortcuts"))b=$.C.HELP_PROMPT.replace("%1",b),li.show(a,{message:b,id:"helpHint"})}}getParents(){for(var a=
1349
1352
  new Set,b=this.getParent();b;)a.add(b),b=b.getParent();return a}getOutputParents(){var a=new Set;a.add(this);for(var b,c=(b=this.outputConnection)==null?void 0:b.targetBlock();c;){a.add(c);let d;c=(d=c.outputConnection)==null?void 0:d.targetBlock()}return a}getRowId(){var a,b,c=(a=this.outputConnection)==null?void 0:(b=a.targetConnection)==null?void 0:b.getParentInput();return c?c.getRowId():this.id}recomputeAriaContext(){var a=this.getFullBlockField();a?a.recomputeAriaContext():(l(this.getFocusableElement(),
1350
- p.LABEL,this.getAriaLabel(ve.STANDARD)),ya(this.getSvgRoot(),Ka.NONE),a=this.getFocusableElement(),this.isInFlyout||ya(a,Ka.FIGURE),l(a,p.ROLEDESCRIPTION,this.getAriaRoleDescription()))}getAriaLabel(a){return Be(this,a)}getStackBlocksCountLabel(){for(var a=1,b=this.getNextBlock();b;)a++,b=b.getNextBlock();return a<=1?Be(this,ve.TERSE):$.C.BLOCK_LABEL_STACK_BLOCKS.replace("%1",a.toString())}};hi.INLINE=-1;hi.COLLAPSED_WARNING_ID="TEMP_COLLAPSED_WARNING_";var co=class{constructor(){}onDragEnter(){}onDragOver(){}onDragExit(){}onDrop(){}getClientRect(){return null}shouldPreventMove(){return!1}};var eo=class extends co{constructor(){super();this.wouldDelete_=!1}wouldDelete(a){qi.mover.isMoving()?this.updateWouldDelete_(!1):a instanceof hi?(a=!a.getParent()&&a.isDeletable(),this.updateWouldDelete_(a)):this.updateWouldDelete_(ei(a)&&a.isDeletable());return this.wouldDelete_}updateWouldDelete_(a){this.wouldDelete_=a}};var fo=class{constructor(a,b){this.element=a;this.type=b}getElement(){return this.element}getType(){return this.type}};var go=class{constructor(a){this.workspace_=a}getDimensionsPx_(a){var b=0,c=0;a&&(b=a.getWidth(),c=a.getHeight());return new hc(b,c)}getFlyoutMetrics(a){a=this.getDimensionsPx_(this.workspace_.getFlyout(a));return{width:a.width,height:a.height,position:this.workspace_.toolboxPosition}}getToolboxMetrics(){var a=this.getDimensionsPx_(this.workspace_.getToolbox());return{width:a.width,height:a.height,position:this.workspace_.toolboxPosition}}getSvgMetrics(){return this.workspace_.getCachedParentSvgSize()}getAbsoluteMetrics(){var a=
1353
+ p.LABEL,this.getAriaLabel(we.STANDARD)),ya(this.getSvgRoot(),Ka.NONE),a=this.getFocusableElement(),this.isInFlyout||ya(a,Ka.FIGURE),l(a,p.ROLEDESCRIPTION,this.getAriaRoleDescription()))}getAriaLabel(a){return Ce(this,a)}getStackBlocksCountLabel(){for(var a=1,b=this.getNextBlock();b;)a++,b=b.getNextBlock();return a<=1?Ce(this,we.TERSE):$.C.BLOCK_LABEL_STACK_BLOCKS.replace("%1",a.toString())}};ii.INLINE=-1;ii.COLLAPSED_WARNING_ID="TEMP_COLLAPSED_WARNING_";var eo=class{constructor(){}onDragEnter(){}onDragOver(){}onDragExit(){}onDrop(){}getClientRect(){return null}shouldPreventMove(){return!1}};var fo=class extends eo{constructor(){super();this.wouldDelete_=!1}wouldDelete(a){ri.mover.isMoving()?this.updateWouldDelete_(!1):a instanceof ii?(a=!a.getParent()&&a.isDeletable(),this.updateWouldDelete_(a)):this.updateWouldDelete_(fi(a)&&a.isDeletable());return this.wouldDelete_}updateWouldDelete_(a){this.wouldDelete_=a}};var go=class{constructor(a,b){this.element=a;this.type=b}getElement(){return this.element}getType(){return this.type}};var ho=class{constructor(a){this.workspace_=a}getDimensionsPx_(a){var b=0,c=0;a&&(b=a.getWidth(),c=a.getHeight());return new hc(b,c)}getFlyoutMetrics(a){a=this.getDimensionsPx_(this.workspace_.getFlyout(a));return{width:a.width,height:a.height,position:this.workspace_.toolboxPosition}}getToolboxMetrics(){var a=this.getDimensionsPx_(this.workspace_.getToolbox());return{width:a.width,height:a.height,position:this.workspace_.toolboxPosition}}getSvgMetrics(){return this.workspace_.getCachedParentSvgSize()}getAbsoluteMetrics(){var a=
1351
1354
  0,b=0,c=this.getToolboxMetrics(),d=this.getFlyoutMetrics(),e=!!this.workspace_.getToolbox(),f,g=!((f=this.workspace_.getFlyout())==null?0:f.autoClose);f=e?c.position:d.position;var h=f===F.TOP;f===F.LEFT&&(e&&(a+=c.width),g&&(a+=d.width));h&&(e&&(b+=c.height),g&&(b+=d.height));return{top:b,left:a}}getViewMetrics(a){a=a?this.workspace_.scale:1;var b=this.getSvgMetrics(),c=this.getToolboxMetrics(),d=this.getFlyoutMetrics(),e=!!this.workspace_.getToolbox(),f,g=!((f=this.workspace_.getFlyout())==null?
1352
1355
  0:f.autoClose);f=e?c.position:d.position;var h=f===F.LEFT||f===F.RIGHT;if(f===F.TOP||f===F.BOTTOM)e&&(b.height-=c.height),g&&(b.height-=d.height);h&&(e&&(b.width-=c.width),g&&(b.width-=d.width));return{height:b.height/a,width:b.width/a,top:-this.workspace_.scrollY/a,left:-this.workspace_.scrollX/a}}getContentMetrics(a){a=a?1:this.workspace_.scale;var b=this.workspace_.getBlocksBoundingBox();return{height:(b.bottom-b.top)*a,width:(b.right-b.left)*a,top:b.top*a,left:b.left*a}}hasFixedEdges(){return!this.workspace_.isMovableHorizontally()||
1353
1356
  !this.workspace_.isMovableVertically()}getComputedFixedEdges_(a){if(!this.hasFixedEdges())return{};var b=this.workspace_.isMovableHorizontally(),c=this.workspace_.isMovableVertically();a=a||this.getViewMetrics(!1);var d={};c||(d.top=a.top,d.bottom=a.top+a.height);b||(d.left=a.left,d.right=a.left+a.width);return d}getPaddedContent_(a,b){var c=b.top+b.height,d=b.left+b.width,e=a.width;a=a.height;var f=e/2,g=a/2;return{top:Math.min(b.top-g,c-a),bottom:Math.max(c+g,b.top+a),left:Math.min(b.left-f,d-e),
1354
1357
  right:Math.max(d+f,b.left+e)}}getScrollMetrics(a,b,c){a=a?this.workspace_.scale:1;b=b||this.getViewMetrics(!1);var d=c||this.getContentMetrics();c=this.getComputedFixedEdges_(b);b=this.getPaddedContent_(b,d);d=c.top!==void 0?c.top:b.top;var e=c.left!==void 0?c.left:b.left;return{top:d/a,left:e/a,width:((c.right!==void 0?c.right:b.right)-e)/a,height:((c.bottom!==void 0?c.bottom:b.bottom)-d)/a}}getUiMetrics(){return{viewMetrics:this.getViewMetrics(),absoluteMetrics:this.getAbsoluteMetrics(),toolboxMetrics:this.getToolboxMetrics()}}getMetrics(){var a=
1355
1358
  this.getToolboxMetrics(),b=this.getFlyoutMetrics(!0),c=this.getSvgMetrics(),d=this.getAbsoluteMetrics(),e=this.getViewMetrics(),f=this.getContentMetrics(),g=this.getScrollMetrics(!1,e,f);return{contentHeight:f.height,contentWidth:f.width,contentTop:f.top,contentLeft:f.left,scrollHeight:g.height,scrollWidth:g.width,scrollTop:g.top,scrollLeft:g.left,viewHeight:e.height,viewWidth:e.width,viewTop:e.top,viewLeft:e.left,absoluteTop:d.top,absoluteLeft:d.left,svgHeight:c.height,svgWidth:c.width,toolboxWidth:a.width,
1356
- toolboxHeight:a.height,toolboxPosition:a.position,flyoutWidth:b.width,flyoutHeight:b.height}}};A(y.METRICS_MANAGER,"default",go);var ho=class extends go{constructor(a,b){super(a);this.flyout_=b}getBoundingBox(){try{var a=this.workspace_.getCanvas().getBBox()}catch(b){a={height:0,y:0,width:0,x:0}}return a}getContentMetrics(a){var b=this.getBoundingBox();a=a?1:this.workspace_.scale;return{height:b.height*a,width:b.width*a,top:b.y*a,left:b.x*a}}getScrollMetrics(a,b,c){b=c||this.getContentMetrics();c=this.flyout_.MARGIN*this.workspace_.scale;a=a?this.workspace_.scale:1;return{height:(b.height+2*c)/a,width:(b.width+b.left+c)/a,
1357
- top:0,left:0}}};var io=class{constructor(a,b){this.gap=a;this.axis=b;this.y=this.x=0}getBoundingRectangle(){switch(this.axis){case "x":return new cc(this.y,this.y,this.x,this.x+this.gap);case "y":return new cc(this.y,this.y+this.gap,this.x,this.x)}}moveBy(a,b){this.x+=a;this.y+=b}isNavigable(){return!1}getFocusableElement(){throw Error("Cannot be focused");}getFocusableTree(){throw Error("Cannot be focused");}onNodeFocus(){}onNodeBlur(){}canBeFocused(){return!1}};var jo=class{getFirstChild(){return null}getParent(a){return a.getWorkspace()}getNextSibling(){return null}getPreviousSibling(){return null}getRowId(a){return a.getId()}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof Ci}};var ko=class{getFirstChild(){return null}getParent(){return null}getNextSibling(){return null}getPreviousSibling(){return null}getRowId(){return"error"}isNavigable(){return!1}isApplicable(a){return a instanceof io}};var lo=class{getFirstChild(a){return Zi(a)[0]}getParent(a){var b;if((b=a.previousConnection)==null?0:b.targetBlock()){if(b=a.getSurroundParent())return b}else{let c;if((c=a.outputConnection)==null?0:c.targetBlock())return a.outputConnection.targetBlock()}return a.workspace}getNextSibling(a){if(a.nextConnection){let c;return(c=a.nextConnection.targetBlock())!=null?c:a.nextConnection}var b;return((b=a.outputConnection)==null?0:b.targetConnection)?(b=this.getParent(a),$i(b,a,1)):null}getPreviousSibling(a){var b;
1358
- if((b=a.previousConnection)==null?0:b.targetBlock())return a.previousConnection;var c;return((c=a.outputConnection)==null?0:c.targetBlock())?$i(a.outputConnection.targetBlock(),a,-1):null}getRowId(a){return a.getRowId()}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof hi}};var mo=class{getFirstChild(){return null}getParent(a){var b;return(b=a.getOwner())!=null?b:null}getNextSibling(a){var b;return $i((b=a.getOwner())==null?void 0:b.getSourceBlock(),a,1)}getPreviousSibling(a){var b;return $i((b=a.getOwner())==null?void 0:b.getSourceBlock(),a,-1)}getRowId(a){var b,c,d;return(d=(b=a.getOwner())==null?void 0:(c=b.getSourceBlock())==null?void 0:c.getRowId())!=null?d:""}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof rn}};var no=class{getFirstChild(){return null}getParent(a){return a.getCommentView().workspace.getCommentById(a.getCommentView().commentId)}getNextSibling(a){var b=a.getCommentView().getCommentBarButtons();a=b.indexOf(a);return a>=0&&a+1<b.length?b[a+1]:null}getPreviousSibling(a){var b=a.getCommentView().getCommentBarButtons();a=b.indexOf(a);return a>0?b[a-1]:null}getRowId(a){return a.getCommentView().commentId}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof cn}};var oo=class{getFirstChild(){return null}getParent(){return null}getNextSibling(){return null}getPreviousSibling(){return null}getRowId(a){return a.id}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof en}};var po=class{getFirstChild(){return null}getParent(a){return a.getSourceBlock()}getNextSibling(a){if(a.getParentInput())return $i(a.getSourceBlock(),a,1);if(a.type===G.NEXT_STATEMENT&&a.getSourceBlock().getSurroundParent()&&!a.targetConnection)return $i(a.getSourceBlock().getSurroundParent(),a,1);switch(a.type){case G.NEXT_STATEMENT:return a.targetConnection;case G.PREVIOUS_STATEMENT:case G.OUTPUT_VALUE:return a.getSourceBlock()}return null}getPreviousSibling(a){if(a.getParentInput())return $i(a.getParentInput().getSourceBlock(),
1359
+ toolboxHeight:a.height,toolboxPosition:a.position,flyoutWidth:b.width,flyoutHeight:b.height}}};A(y.METRICS_MANAGER,"default",ho);var io=class extends ho{constructor(a,b){super(a);this.flyout_=b}getBoundingBox(){try{var a=this.workspace_.getCanvas().getBBox()}catch(b){a={height:0,y:0,width:0,x:0}}return a}getContentMetrics(a){var b=this.getBoundingBox();a=a?1:this.workspace_.scale;return{height:b.height*a,width:b.width*a,top:b.y*a,left:b.x*a}}getScrollMetrics(a,b,c){b=c||this.getContentMetrics();c=this.flyout_.MARGIN*this.workspace_.scale;a=a?this.workspace_.scale:1;return{height:(b.height+2*c)/a,width:(b.width+b.left+c)/a,
1360
+ top:0,left:0}}};var jo=class{constructor(a,b){this.gap=a;this.axis=b;this.y=this.x=0}getBoundingRectangle(){switch(this.axis){case "x":return new cc(this.y,this.y,this.x,this.x+this.gap);case "y":return new cc(this.y,this.y+this.gap,this.x,this.x)}}moveBy(a,b){this.x+=a;this.y+=b}isNavigable(){return!1}getFocusableElement(){throw Error("Cannot be focused");}getFocusableTree(){throw Error("Cannot be focused");}onNodeFocus(){}onNodeBlur(){}canBeFocused(){return!1}};var ko=class{getFirstChild(){return null}getParent(a){return a.getWorkspace()}getNextSibling(){return null}getPreviousSibling(){return null}getRowId(a){return a.getId()}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof Di}};var lo=class{getFirstChild(){return null}getParent(){return null}getNextSibling(){return null}getPreviousSibling(){return null}getRowId(){return"error"}isNavigable(){return!1}isApplicable(a){return a instanceof jo}};var mo=class{getFirstChild(a){return $i(a)[0]}getParent(a){var b;if((b=a.previousConnection)==null?0:b.targetBlock()){if(b=a.getSurroundParent())return b}else{let c;if((c=a.outputConnection)==null?0:c.targetBlock())return a.outputConnection.targetBlock()}return a.workspace}getNextSibling(a){if(a.nextConnection){let c;return(c=a.nextConnection.targetBlock())!=null?c:a.nextConnection}var b;return((b=a.outputConnection)==null?0:b.targetConnection)?(b=this.getParent(a),aj(b,a,1)):null}getPreviousSibling(a){var b;
1361
+ if((b=a.previousConnection)==null?0:b.targetBlock())return a.previousConnection;var c;return((c=a.outputConnection)==null?0:c.targetBlock())?aj(a.outputConnection.targetBlock(),a,-1):null}getRowId(a){return a.getRowId()}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof ii}};var no=class{getFirstChild(){return null}getParent(a){var b;return(b=a.getOwner())!=null?b:null}getNextSibling(a){var b;return aj((b=a.getOwner())==null?void 0:b.getSourceBlock(),a,1)}getPreviousSibling(a){var b;return aj((b=a.getOwner())==null?void 0:b.getSourceBlock(),a,-1)}getRowId(a){var b,c,d;return(d=(b=a.getOwner())==null?void 0:(c=b.getSourceBlock())==null?void 0:c.getRowId())!=null?d:""}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof sn}};var oo=class{getFirstChild(){return null}getParent(a){return a.getCommentView().workspace.getCommentById(a.getCommentView().commentId)}getNextSibling(a){var b=a.getCommentView().getCommentBarButtons();a=b.indexOf(a);return a>=0&&a+1<b.length?b[a+1]:null}getPreviousSibling(a){var b=a.getCommentView().getCommentBarButtons();a=b.indexOf(a);return a>0?b[a-1]:null}getRowId(a){return a.getCommentView().commentId}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof dn}};var po=class{getFirstChild(){return null}getParent(){return null}getNextSibling(){return null}getPreviousSibling(){return null}getRowId(a){return a.id}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof fn}};var qo=class{getFirstChild(){return null}getParent(a){return a.getSourceBlock()}getNextSibling(a){if(a.getParentInput())return aj(a.getSourceBlock(),a,1);if(a.type===G.NEXT_STATEMENT&&a.getSourceBlock().getSurroundParent()&&!a.targetConnection)return aj(a.getSourceBlock().getSurroundParent(),a,1);switch(a.type){case G.NEXT_STATEMENT:return a.targetConnection;case G.PREVIOUS_STATEMENT:case G.OUTPUT_VALUE:return a.getSourceBlock()}return null}getPreviousSibling(a){if(a.getParentInput())return aj(a.getParentInput().getSourceBlock(),
1359
1362
  a,-1);switch(a.type){case G.NEXT_STATEMENT:return a.getSourceBlock();case G.PREVIOUS_STATEMENT:case G.OUTPUT_VALUE:return a.targetConnection}return null}getRowId(a){switch(a.type){case G.NEXT_STATEMENT:case G.PREVIOUS_STATEMENT:return a.id;case G.INPUT_VALUE:return a.getParentInput().getRowId();default:return a.getSourceBlock().getRowId()}}isNavigable(a){if(!a.canBeFocused())return!1;if(a.type===G.NEXT_STATEMENT){if(a.targetBlock())return!1;let b,c=(b=a.getSourceBlock().getRootBlock())!=null?b:a.getSourceBlock();
1360
- return a===c.lastConnectionInStack(!1)?!1:!0}return a.type===G.INPUT_VALUE&&!a.targetBlock()}isApplicable(a){return a instanceof Li}};var qo=class{getFirstChild(){return null}getParent(a){return a.getSourceBlock()}getNextSibling(a){return $i(a.getSourceBlock(),a,1)}getPreviousSibling(a){return $i(a.getSourceBlock(),a,-1)}getRowId(a){return a.getParentInput().getRowId()}isNavigable(a){var b;return a.canBeFocused()&&a.isVisible()&&(a.isClickable()||a.isCurrentlyEditable())&&!(((b=a.getSourceBlock())==null?0:b.isSimpleReporter())&&a.isFullBlockField())&&a.getParentInput().isVisible()}isApplicable(a){return a instanceof qg}};var ro=class{getFirstChild(){return null}getParent(a){return a.getSourceBlock()}getNextSibling(a){return $i(a.getSourceBlock(),a,1)}getPreviousSibling(a){return $i(a.getSourceBlock(),a,-1)}getRowId(a){return a.getSourceBlock().getRowId()}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof tn}};var so=class{getFirstChild(a){return a.view.getCommentBarButtons()[0]}getParent(a){return a.workspace}getNextSibling(){return null}getPreviousSibling(){return null}getRowId(a){return a.id}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof ch}};var to=class{getFirstChild(a){a=a.getTopBlocks(!0);return a.length?a[0]:null}getParent(){return null}getNextSibling(){return null}getPreviousSibling(){return null}getRowId(a){return a.id}isNavigable(a){return a.canBeFocused()&&!a.isMutator}isApplicable(a){return a instanceof Zh}};var uo,vo=uo||(uo={});vo[vo.NEXT=0]="NEXT";vo[vo.PREVIOUS=1]="PREVIOUS";vo[vo.IN=2]="IN";vo[vo.OUT=3]="OUT";
1361
- var wo=class{constructor(){this.rules=[new lo,new qo,new po,new to,new ro,new so,new no,new mo,new oo];this.navigationLoops=!0}addNavigationPolicy(a){this.rules.push(a)}get(a){return this.rules.find(b=>b.isApplicable(a))}getFirstChild(a){var b,c=(b=this.get(a))==null?void 0:b.getFirstChild(a);return c?this.isNavigable(c)?c:this.getFirstChild(c)||this.getNextSibling(c):null}getParent(a){var b,c=(b=this.get(a))==null?void 0:b.getParent(a);return c?this.isNavigable(c)?c:this.getParent(c):null}getNextSibling(a){var b,
1362
- c=(b=this.get(a))==null?void 0:b.getNextSibling(a);return c?this.isNavigable(c)?c:this.getNextSibling(c):null}getPreviousSibling(a){var b,c=(b=this.get(a))==null?void 0:b.getPreviousSibling(a);return c?this.isNavigable(c)?c:this.getPreviousSibling(c):null}getPreviousNode(a=$.t().getFocusedNode()){if(!a)return null;var b=this.getPreviousNodeImpl(a,a,uo.PREVIOUS);if(!b||b===a.getFocusableTree()){b=this.navigateStacks(a,-1);if(!b)return null;b=this.getLastNodeInStack(b,a)}return this.getLeftmostSibling(b)}getOutNode(a=
1363
- $.t().getFocusedNode()){return this.getPreviousNodeImpl(a,a,uo.OUT)}getNextNode(a=$.t().getFocusedNode()){var b=this.getNextNodeImpl(a,a,uo.NEXT);return a&&b===null?this.navigateStacks(a,1):b}getInNode(a=$.t().getFocusedNode()){return this.getNextNodeImpl(a,a,uo.IN)}getPreviousNodeImpl(a,b,c,d=new Set){if(!b||!a||d.has(b))return null;var e=this.getRightMostChild(this.getPreviousSibling(b),b)||this.getParent(b);return e&&this.transitionAllowed(a,e,c)?e:e?(d.add(b),this.getPreviousNodeImpl(a,e,c,d)):
1363
+ return a===c.lastConnectionInStack(!1)?!1:!0}return a.type===G.INPUT_VALUE&&!a.targetBlock()}isApplicable(a){return a instanceof Mi}};var ro=class{getFirstChild(){return null}getParent(a){return a.getSourceBlock()}getNextSibling(a){return aj(a.getSourceBlock(),a,1)}getPreviousSibling(a){return aj(a.getSourceBlock(),a,-1)}getRowId(a){return a.getParentInput().getRowId()}isNavigable(a){var b;return a.canBeFocused()&&a.isVisible()&&(a.isClickable()||a.isCurrentlyEditable())&&!(((b=a.getSourceBlock())==null?0:b.isSimpleReporter())&&a.isFullBlockField())&&a.getParentInput().isVisible()}isApplicable(a){return a instanceof rg}};var so=class{getFirstChild(){return null}getParent(a){return a.getSourceBlock()}getNextSibling(a){return aj(a.getSourceBlock(),a,1)}getPreviousSibling(a){return aj(a.getSourceBlock(),a,-1)}getRowId(a){return a.getSourceBlock().getRowId()}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof un}};var to=class{getFirstChild(a){return a.view.getCommentBarButtons()[0]}getParent(a){return a.workspace}getNextSibling(){return null}getPreviousSibling(){return null}getRowId(a){return a.id}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof dh}};var uo=class{getFirstChild(a){a=a.getTopBlocks(!0);return a.length?a[0]:null}getParent(){return null}getNextSibling(){return null}getPreviousSibling(){return null}getRowId(a){return a.id}isNavigable(a){return a.canBeFocused()&&!a.isMutator}isApplicable(a){return a instanceof $h}};var vo,wo=vo||(vo={});wo[wo.NEXT=0]="NEXT";wo[wo.PREVIOUS=1]="PREVIOUS";wo[wo.IN=2]="IN";wo[wo.OUT=3]="OUT";
1364
+ var xo=class{constructor(){this.rules=[new mo,new ro,new qo,new uo,new so,new to,new oo,new no,new po];this.navigationLoops=!0}addNavigationPolicy(a){this.rules.push(a)}get(a){return this.rules.find(b=>b.isApplicable(a))}getFirstChild(a){var b,c=(b=this.get(a))==null?void 0:b.getFirstChild(a);return c?this.isNavigable(c)?c:this.getFirstChild(c)||this.getNextSibling(c):null}getParent(a){var b,c=(b=this.get(a))==null?void 0:b.getParent(a);return c?this.isNavigable(c)?c:this.getParent(c):null}getNextSibling(a){var b,
1365
+ c=(b=this.get(a))==null?void 0:b.getNextSibling(a);return c?this.isNavigable(c)?c:this.getNextSibling(c):null}getPreviousSibling(a){var b,c=(b=this.get(a))==null?void 0:b.getPreviousSibling(a);return c?this.isNavigable(c)?c:this.getPreviousSibling(c):null}getPreviousNode(a=$.t().getFocusedNode()){if(!a)return null;var b=this.getPreviousNodeImpl(a,a,vo.PREVIOUS);if(!b||b===a.getFocusableTree()){b=this.navigateStacks(a,-1);if(!b)return null;b=this.getLastNodeInStack(b,a)}return this.getLeftmostSibling(b)}getOutNode(a=
1366
+ $.t().getFocusedNode()){return this.getPreviousNodeImpl(a,a,vo.OUT)}getNextNode(a=$.t().getFocusedNode()){var b=this.getNextNodeImpl(a,a,vo.NEXT);return a&&b===null?this.navigateStacks(a,1):b}getInNode(a=$.t().getFocusedNode()){return this.getNextNodeImpl(a,a,vo.IN)}getPreviousNodeImpl(a,b,c,d=new Set){if(!b||!a||d.has(b))return null;var e=this.getRightMostChild(this.getPreviousSibling(b),b)||this.getParent(b);return e&&this.transitionAllowed(a,e,c)?e:e?(d.add(b),this.getPreviousNodeImpl(a,e,c,d)):
1364
1367
  null}getNextNodeImpl(a,b,c,d=new Set){if(!b||!a||d.has(b))return null;for(var e=this.getFirstChild(b)||this.getNextSibling(b),f=b;f&&!e;){f=this.getParent(f);if(!f)break;e=this.getNextSibling(f)}return e&&this.transitionAllowed(a,e,c)?e:e?(d.add(b),this.getNextNodeImpl(a,e,c,d)):null}getRightMostChild(a,b){if(!a)return a;var c=this.getFirstChild(a);if(!c||c===b)return a;for(a=c;a&&a!==b;a=this.getNextSibling(c))c=a;return this.getRightMostChild(c,b)}setNavigationLoops(a){this.navigationLoops=a}getNavigationLoops(){return this.navigationLoops}getFirstNode(){var a,
1365
- b=(a=$.t().getFocusedTree())==null?void 0:a.getRootFocusableNode();return b?this.getTopLevelItems(b)[0]:null}getLastNode(){var a,b=(a=$.t().getFocusedTree())==null?void 0:a.getRootFocusableNode();return b?this.getTopLevelItems(b).slice(-1)[0]:null}transitionAllowed(a,b,c){switch(c){case uo.IN:case uo.OUT:return this.getRowId(a)===this.getRowId(b);case uo.NEXT:case uo.PREVIOUS:return this.getRowId(a)!==this.getRowId(b)}}getLeftmostSibling(a){if(!a)return null;for(var b;b=this.getPreviousNodeImpl(a,
1366
- a,uo.OUT);)a=b;return a}getLastNodeInStack(a,b){for(var c;(c=this.getNextNodeImpl(a,a,uo.NEXT))&&c!==b;)a=c;return a}getRowId(a){var b;return(b=this.get(a))==null?void 0:b.getRowId(a)}navigateStacks(a,b){var c=this.getTopLevelItems(a),d,e,f=(e=(d=this.getSourceBlockFromNode(a))==null?void 0:d.getRootBlock())!=null?e:a;a=c.indexOf(f)+b;b=null;a>=0&&a<c.length?b=c[a]:a<0&&this.getNavigationLoops()?b=c[c.length-1]:a>=c.length&&this.getNavigationLoops()&&(b=c[0]);return b}getTopLevelItems(a){return a.getFocusableTree().getTopBoundedElements(!0)}isNavigable(a){var b;
1367
- return(b=this.get(a))==null?void 0:b.isNavigable(a)}getSourceBlockFromNode(a){return a instanceof hi?a:a instanceof qg||a instanceof Li||a instanceof tn?a.getSourceBlock():a instanceof en?(a=a.getParent(),a instanceof hi?a:null):null}};var xo=class{getFirstChild(a){return aj(a)?a.getChildToolboxItems()[0]:null}getParent(a){return a.getParent()}getNextSibling(a){var b=a.getParentToolbox().getToolboxItems();a=b.indexOf(a);var c;return(c=b[a+1])!=null?c:null}getPreviousSibling(a){var b=a.getParentToolbox().getToolboxItems();a=b.indexOf(a);var c;return(c=b[a-1])!=null?c:null}getRowId(a){return a.getId()}isNavigable(a){return a.canBeFocused()&&this.allParentsExpanded(a)}allParentsExpanded(a){return(a=a.getParent())&&aj(a)?a.isExpanded()&&
1368
- this.allParentsExpanded(a):!0}isApplicable(a){return te(a)}};var yo=class extends wo{constructor(a){super();this.toolbox=a;this.rules=[new xo]}getInNode(a=$.t().getFocusedNode(),b=!1){var c=bj(this.toolbox.getWorkspace());if(!b)switch(c){case F.TOP:case F.BOTTOM:return this.getNextNode(a,!0);case F.RIGHT:return this.getOutNode(a,!0)}if(!ue(a)||ue(a)&&!a.getContents().length)return null;var d;return(a=(d=this.toolbox.getFlyout())==null?void 0:d.getWorkspace().getNavigator())?!this.toolbox.getWorkspace().RTL||c!==F.TOP&&c!==F.BOTTOM?a.getFirstNode():a.getLastNode():
1369
- null}getOutNode(a,b=!1){if(!b)switch(bj(this.toolbox.getWorkspace())){case F.TOP:case F.BOTTOM:return this.getPreviousNode(a,!0);case F.RIGHT:return this.getInNode(a,!0)}return super.getOutNode(a)}getNextNode(a,b=!1){if(!b)switch(bj(this.toolbox.getWorkspace())){case F.TOP:return this.getInNode(a,!0);case F.BOTTOM:return this.getOutNode(a,!0)}return super.getNextNode(a)}getPreviousNode(a,b=!1){if(!b)switch(bj(this.toolbox.getWorkspace())){case F.TOP:return this.getOutNode(a,!0);case F.BOTTOM:return this.getInNode(a,
1370
- !0)}return super.getPreviousNode(a)}getTopLevelItems(){return this.toolbox.getToolboxItems()}};var zo=class extends wo{constructor(a){super();this.flyout=a;this.rules.push(new jo,new ko)}getOutNode(a,b=!1){if(!b&&this.flyout.targetWorkspace)switch(bj(this.flyout.targetWorkspace)){case F.TOP:case F.BOTTOM:return this.flyout.RTL?this.getNextNode(a,!0):this.getPreviousNode(a,!0);case F.RIGHT:return null}var c;return(a=(c=this.flyout.targetWorkspace)==null?void 0:c.getToolbox())?a.getSelectedItem():null}getInNode(a,b=!1){if(!b&&this.flyout.targetWorkspace)switch(bj(this.flyout.targetWorkspace)){case F.TOP:case F.BOTTOM:return this.flyout.RTL?
1371
- this.getPreviousNode(a,!0):this.getNextNode(a,!0);case F.RIGHT:return this.getOutNode(a,!0)}return super.getInNode(a)}getNextNode(a,b=!1){if(!b&&this.flyout.targetWorkspace)switch(bj(this.flyout.targetWorkspace)){case F.TOP:return null;case F.BOTTOM:return this.getOutNode(a,!0)}return super.getNextNode(a)}getPreviousNode(a,b=!1){if(!b&&this.flyout.targetWorkspace)switch(bj(this.flyout.targetWorkspace)){case F.TOP:return this.getOutNode(a,!0);case F.BOTTOM:return null}return super.getPreviousNode(a)}getTopLevelItems(){return this.flyout.getContents().map(a=>
1372
- a.getElement()).filter(a=>this.isNavigable(a))}isNavigable(a){return super.isNavigable(a)&&this.flyout.getContents().map(b=>b.getElement()).includes(a)}};var Fj=class{constructor(a,b,c,d,e){this.workspace=a;this.oldHostMetrics=this.corner_=this.vScroll=this.hScroll=null;b=b===void 0?!0:b;c=c===void 0?!0:c;var f=b&&c;b&&(this.hScroll=new Ic(a,!0,f,d,e));c&&(this.vScroll=new Ic(a,!1,f,d,e));f&&(this.corner_=r(q.RECT,{height:Ic.scrollbarThickness,width:Ic.scrollbarThickness,"class":"blocklyScrollbarBackground"}),Pa(this.corner_,a.getBubbleCanvas()))}dispose(){Oa(this.corner_);this.oldHostMetrics=this.corner_=null;this.hScroll&&(this.hScroll.dispose(),
1368
+ b=(a=$.t().getFocusedTree())==null?void 0:a.getRootFocusableNode();return b?this.getTopLevelItems(b)[0]:null}getLastNode(){var a,b=(a=$.t().getFocusedTree())==null?void 0:a.getRootFocusableNode();return b?this.getTopLevelItems(b).slice(-1)[0]:null}transitionAllowed(a,b,c){switch(c){case vo.IN:case vo.OUT:return this.getRowId(a)===this.getRowId(b);case vo.NEXT:case vo.PREVIOUS:return this.getRowId(a)!==this.getRowId(b)}}getLeftmostSibling(a){if(!a)return null;for(var b;b=this.getPreviousNodeImpl(a,
1369
+ a,vo.OUT);)a=b;return a}getLastNodeInStack(a,b){for(var c;(c=this.getNextNodeImpl(a,a,vo.NEXT))&&c!==b;)a=c;return a}getRowId(a){var b;return(b=this.get(a))==null?void 0:b.getRowId(a)}navigateStacks(a,b){var c=this.getTopLevelItems(a),d,e,f=(e=(d=this.getSourceBlockFromNode(a))==null?void 0:d.getRootBlock())!=null?e:a;a=c.indexOf(f)+b;b=null;a>=0&&a<c.length?b=c[a]:a<0&&this.getNavigationLoops()?b=c[c.length-1]:a>=c.length&&this.getNavigationLoops()&&(b=c[0]);return b}getTopLevelItems(a){return a.getFocusableTree().getTopBoundedElements(!0)}isNavigable(a){var b;
1370
+ return(b=this.get(a))==null?void 0:b.isNavigable(a)}getSourceBlockFromNode(a){return a instanceof ii?a:a instanceof rg||a instanceof Mi||a instanceof un?a.getSourceBlock():a instanceof fn?(a=a.getParent(),a instanceof ii?a:null):null}};var yo=class{getFirstChild(a){return bj(a)?a.getChildToolboxItems()[0]:null}getParent(a){return a.getParent()}getNextSibling(a){var b=a.getParentToolbox().getToolboxItems();a=b.indexOf(a);var c;return(c=b[a+1])!=null?c:null}getPreviousSibling(a){var b=a.getParentToolbox().getToolboxItems();a=b.indexOf(a);var c;return(c=b[a-1])!=null?c:null}getRowId(a){return a.getId()}isNavigable(a){return a.canBeFocused()&&this.allParentsExpanded(a)}allParentsExpanded(a){return(a=a.getParent())&&bj(a)?a.isExpanded()&&
1371
+ this.allParentsExpanded(a):!0}isApplicable(a){return ue(a)}};var zo=class extends xo{constructor(a){super();this.toolbox=a;this.rules=[new yo]}getInNode(a=$.t().getFocusedNode(),b=!1){var c=cj(this.toolbox.getWorkspace());if(!b)switch(c){case F.TOP:case F.BOTTOM:return this.getNextNode(a,!0);case F.RIGHT:return this.getOutNode(a,!0)}if(!ve(a)||ve(a)&&!a.getContents().length)return null;var d;return(a=(d=this.toolbox.getFlyout())==null?void 0:d.getWorkspace().getNavigator())?!this.toolbox.getWorkspace().RTL||c!==F.TOP&&c!==F.BOTTOM?a.getFirstNode():a.getLastNode():
1372
+ null}getOutNode(a,b=!1){if(!b)switch(cj(this.toolbox.getWorkspace())){case F.TOP:case F.BOTTOM:return this.getPreviousNode(a,!0);case F.RIGHT:return this.getInNode(a,!0)}return super.getOutNode(a)}getNextNode(a,b=!1){if(!b)switch(cj(this.toolbox.getWorkspace())){case F.TOP:return this.getInNode(a,!0);case F.BOTTOM:return this.getOutNode(a,!0)}return super.getNextNode(a)}getPreviousNode(a,b=!1){if(!b)switch(cj(this.toolbox.getWorkspace())){case F.TOP:return this.getOutNode(a,!0);case F.BOTTOM:return this.getInNode(a,
1373
+ !0)}return super.getPreviousNode(a)}getTopLevelItems(){return this.toolbox.getToolboxItems()}};var Ao=class extends xo{constructor(a){super();this.flyout=a;this.rules.push(new ko,new lo)}getOutNode(a,b=!1){if(!b&&this.flyout.targetWorkspace)switch(cj(this.flyout.targetWorkspace)){case F.TOP:case F.BOTTOM:return this.flyout.RTL?this.getNextNode(a,!0):this.getPreviousNode(a,!0);case F.RIGHT:return null}var c;return(a=(c=this.flyout.targetWorkspace)==null?void 0:c.getToolbox())?a.getSelectedItem():null}getInNode(a,b=!1){if(!b&&this.flyout.targetWorkspace)switch(cj(this.flyout.targetWorkspace)){case F.TOP:case F.BOTTOM:return this.flyout.RTL?
1374
+ this.getPreviousNode(a,!0):this.getNextNode(a,!0);case F.RIGHT:return this.getOutNode(a,!0)}return super.getInNode(a)}getNextNode(a,b=!1){if(!b&&this.flyout.targetWorkspace)switch(cj(this.flyout.targetWorkspace)){case F.TOP:return null;case F.BOTTOM:return this.getOutNode(a,!0)}return super.getNextNode(a)}getPreviousNode(a,b=!1){if(!b&&this.flyout.targetWorkspace)switch(cj(this.flyout.targetWorkspace)){case F.TOP:return this.getOutNode(a,!0);case F.BOTTOM:return null}return super.getPreviousNode(a)}getTopLevelItems(){return this.flyout.getContents().map(a=>
1375
+ a.getElement()).filter(a=>this.isNavigable(a))}isNavigable(a){return super.isNavigable(a)&&this.flyout.getContents().map(b=>b.getElement()).includes(a)}};var Gj=class{constructor(a,b,c,d,e){this.workspace=a;this.oldHostMetrics=this.corner_=this.vScroll=this.hScroll=null;b=b===void 0?!0:b;c=c===void 0?!0:c;var f=b&&c;b&&(this.hScroll=new Ic(a,!0,f,d,e));c&&(this.vScroll=new Ic(a,!1,f,d,e));f&&(this.corner_=r(q.RECT,{height:Ic.scrollbarThickness,width:Ic.scrollbarThickness,"class":"blocklyScrollbarBackground"}),Pa(this.corner_,a.getBubbleCanvas()))}dispose(){Oa(this.corner_);this.oldHostMetrics=this.corner_=null;this.hScroll&&(this.hScroll.dispose(),
1373
1376
  this.hScroll=null);this.vScroll&&(this.vScroll.dispose(),this.vScroll=null)}resize(){var a=this.workspace.getMetrics();if(a){var b=!1,c=!1;this.oldHostMetrics&&this.oldHostMetrics.viewWidth===a.viewWidth&&this.oldHostMetrics.viewHeight===a.viewHeight&&this.oldHostMetrics.absoluteTop===a.absoluteTop&&this.oldHostMetrics.absoluteLeft===a.absoluteLeft?(this.oldHostMetrics&&this.oldHostMetrics.scrollWidth===a.scrollWidth&&this.oldHostMetrics.viewLeft===a.viewLeft&&this.oldHostMetrics.scrollLeft===a.scrollLeft||
1374
1377
  (b=!0),this.oldHostMetrics&&this.oldHostMetrics.scrollHeight===a.scrollHeight&&this.oldHostMetrics.viewTop===a.viewTop&&this.oldHostMetrics.scrollTop===a.scrollTop||(c=!0)):c=b=!0;if(b||c){try{$.Ub++,this.hScroll&&b&&this.hScroll.resize(a),this.vScroll&&c&&this.vScroll.resize(a)}finally{$.Ub--}this.workspace.maybeFireViewportChangeEvent()}if(this.hScroll&&this.vScroll){if(!this.oldHostMetrics||this.oldHostMetrics.viewWidth!==a.viewWidth||this.oldHostMetrics.absoluteLeft!==a.absoluteLeft){let d;(d=
1375
1378
  this.corner_)==null||d.setAttribute("x",String(this.vScroll.position.x))}if(!this.oldHostMetrics||this.oldHostMetrics.viewHeight!==a.viewHeight||this.oldHostMetrics.absoluteTop!==a.absoluteTop){let d;(d=this.corner_)==null||d.setAttribute("y",String(this.hScroll.position.y))}}this.oldHostMetrics=a}}canScrollHorizontally(){return!!this.hScroll}canScrollVertically(){return!!this.vScroll}setOrigin(a,b){this.hScroll&&this.hScroll.setOrigin(a,b);this.vScroll&&this.vScroll.setOrigin(a,b)}set(a,b,c){this.hScroll&&
1376
1379
  this.hScroll.set(a,!1);this.vScroll&&this.vScroll.set(b,!1);if(c||c===void 0)a={},this.hScroll&&(a.x=this.hScroll.getRatio_()),this.vScroll&&(a.y=this.vScroll.getRatio_()),this.workspace.setMetrics(a)}setX(a){this.hScroll&&this.hScroll.set(a,!0)}setY(a){this.vScroll&&this.vScroll.set(a,!0)}setContainerVisible(a){this.hScroll&&this.hScroll.setContainerVisible(a);this.vScroll&&this.vScroll.setContainerVisible(a)}isVisible(){var a=!1;this.hScroll&&(a=this.hScroll.isVisible());this.vScroll&&(a=a||this.vScroll.isVisible());
1377
- return a}setVisible(a){this.hScroll&&this.hScroll.setVisibleInternal(a);this.vScroll&&this.vScroll.setVisibleInternal(a)}resizeContent(a){this.hScroll&&this.hScroll.resizeContentHorizontal(a);this.vScroll&&this.vScroll.resizeContentVertical(a)}resizeView(a){this.hScroll&&this.hScroll.resizeViewHorizontal(a);this.vScroll&&this.vScroll.resizeViewVertical(a)}};var Ao=class{load(a,b){a=new io(0,b.horizontalLayout?"x":"y");return new fo(a,"sep")}gapForItem(a,b){var c;return(c=parseInt(String(a.gap)))!=null?c:b}disposeItem(){}getType(){return"sep"}};A(y.FLYOUT_INFLATER,"sep",Ao);var Bo=class extends eo{constructor(a){super();this.horizontalLayout=!1;this.boundEvents=[];this.reflowWrapper=null;this.inhibitReflowWrapper=!1;this.contents=[];this.autoClose=!0;this.visible=!1;this.containerVisible=!0;this.CORNER_RADIUS=8;this.SCROLLBAR_MARGIN=2.5;this.height_=this.width_=0;this.svgGroup_=this.svgBackground_=null;this.inflaters=new Map;a.setMetrics=this.setMetrics_.bind(this);this.workspace_=new Zh(a);this.workspace_.setMetricsManager(new ho(this.workspace_,this));this.workspace_.internalIsFlyout=
1378
- !0;this.workspace_.setVisible(this.visible);this.workspace_.setNavigator(new zo(this));this.id=Nb();this.RTL=!!a.RTL;this.toolboxPosition_=a.toolboxPosition;this.tabWidth_=this.workspace_.getRenderer().getConstants().TAB_WIDTH;this.MARGIN=this.CORNER_RADIUS;this.GAP_X=this.MARGIN*3;this.GAP_Y=this.MARGIN*3}createDom(a){this.svgGroup_=r(a,{"class":"blocklyFlyout"});this.svgGroup_.style.display="none";this.svgBackground_=r(q.PATH,{"class":"blocklyFlyoutBackground"},this.svgGroup_);this.svgGroup_.appendChild(this.workspace_.createDom());
1380
+ return a}setVisible(a){this.hScroll&&this.hScroll.setVisibleInternal(a);this.vScroll&&this.vScroll.setVisibleInternal(a)}resizeContent(a){this.hScroll&&this.hScroll.resizeContentHorizontal(a);this.vScroll&&this.vScroll.resizeContentVertical(a)}resizeView(a){this.hScroll&&this.hScroll.resizeViewHorizontal(a);this.vScroll&&this.vScroll.resizeViewVertical(a)}};var Bo=class{load(a,b){a=new jo(0,b.horizontalLayout?"x":"y");return new go(a,"sep")}gapForItem(a,b){var c;return(c=parseInt(String(a.gap)))!=null?c:b}disposeItem(){}getType(){return"sep"}};A(y.FLYOUT_INFLATER,"sep",Bo);var Co=class extends fo{constructor(a){super();this.horizontalLayout=!1;this.boundEvents=[];this.reflowWrapper=null;this.inhibitReflowWrapper=!1;this.contents=[];this.autoClose=!0;this.visible=!1;this.containerVisible=!0;this.CORNER_RADIUS=8;this.SCROLLBAR_MARGIN=2.5;this.height_=this.width_=0;this.svgGroup_=this.svgBackground_=null;this.inflaters=new Map;a.setMetrics=this.setMetrics_.bind(this);this.workspace_=new $h(a);this.workspace_.setMetricsManager(new io(this.workspace_,this));this.workspace_.internalIsFlyout=
1381
+ !0;this.workspace_.setVisible(this.visible);this.workspace_.setNavigator(new Ao(this));this.id=Nb();this.RTL=!!a.RTL;this.toolboxPosition_=a.toolboxPosition;this.tabWidth_=this.workspace_.getRenderer().getConstants().TAB_WIDTH;this.MARGIN=this.CORNER_RADIUS;this.GAP_X=this.MARGIN*3;this.GAP_Y=this.MARGIN*3}createDom(a){this.svgGroup_=r(a,{"class":"blocklyFlyout"});this.svgGroup_.style.display="none";this.svgBackground_=r(q.PATH,{"class":"blocklyFlyoutBackground"},this.svgGroup_);this.svgGroup_.appendChild(this.workspace_.createDom());
1379
1382
  this.workspace_.getThemeManager().subscribe(this.svgBackground_,"flyoutBackgroundColour","fill");this.workspace_.getThemeManager().subscribe(this.svgBackground_,"flyoutOpacity","fill-opacity");this.svgGroup_.addEventListener("keydown",b=>{b.key==="Escape"&&($.t().focusTree(this.targetWorkspace),this.targetWorkspace.isMutator||this.autoHide(!1),b.preventDefault(),b.stopPropagation())});return this.svgGroup_}init(a){this.targetWorkspace=a;this.workspace_.targetWorkspace=a;this.workspace_.setInitialAriaContext();
1380
- this.workspace_.scrollbar=new Fj(this.workspace_,this.horizontalLayout,!this.horizontalLayout,"blocklyFlyoutScrollbar",this.SCROLLBAR_MARGIN);this.hide();this.boundEvents.push(k(this.svgGroup_,"wheel",this,this.wheel_,!1,{passive:!1}));this.boundEvents.push(k(this.svgBackground_,"pointerdown",this,this.onMouseDown));this.workspace_.getGesture=this.targetWorkspace.getGesture.bind(this.targetWorkspace);this.workspace_.setVariableMap(this.targetWorkspace.getVariableMap());this.workspace_.createPotentialVariableMap();
1381
- a.getComponentManager().addComponent({component:this,weight:Ck.ComponentWeight.FLYOUT_WEIGHT,capabilities:[Ck.Capability.AUTOHIDEABLE,Ck.Capability.DELETE_AREA,Ck.Capability.DRAG_TARGET]})}dispose(){this.hide();this.targetWorkspace.getComponentManager().removeComponent(this.id);for(let a of this.boundEvents)la(a);this.boundEvents.length=0;this.workspace_&&(this.workspace_.getThemeManager().unsubscribe(this.svgBackground_),this.workspace_.dispose());this.svgGroup_&&Oa(this.svgGroup_)}getWidth(){return this.width_}getHeight(){return this.height_}getFlyoutScale(){return this.targetWorkspace.scale}getWorkspace(){return this.workspace_}setAutoClose(a){this.autoClose=
1383
+ this.workspace_.scrollbar=new Gj(this.workspace_,this.horizontalLayout,!this.horizontalLayout,"blocklyFlyoutScrollbar",this.SCROLLBAR_MARGIN);this.hide();this.boundEvents.push(k(this.svgGroup_,"wheel",this,this.wheel_,!1,{passive:!1}));this.boundEvents.push(k(this.svgBackground_,"pointerdown",this,this.onMouseDown));this.workspace_.getGesture=this.targetWorkspace.getGesture.bind(this.targetWorkspace);this.workspace_.setVariableMap(this.targetWorkspace.getVariableMap());this.workspace_.createPotentialVariableMap();
1384
+ a.getComponentManager().addComponent({component:this,weight:Dk.ComponentWeight.FLYOUT_WEIGHT,capabilities:[Dk.Capability.AUTOHIDEABLE,Dk.Capability.DELETE_AREA,Dk.Capability.DRAG_TARGET]})}dispose(){this.hide();this.targetWorkspace.getComponentManager().removeComponent(this.id);for(let a of this.boundEvents)ka(a);this.boundEvents.length=0;this.workspace_&&(this.workspace_.getThemeManager().unsubscribe(this.svgBackground_),this.workspace_.dispose());this.svgGroup_&&Oa(this.svgGroup_)}getWidth(){return this.width_}getHeight(){return this.height_}getFlyoutScale(){return this.targetWorkspace.scale}getWorkspace(){return this.workspace_}setAutoClose(a){this.autoClose=
1382
1385
  a;this.targetWorkspace.recordDragTargets();this.targetWorkspace.resizeContents()}autoHide(a){!a&&this.targetWorkspace.getFlyout(!0)===this&&this.autoClose&&this.hide()}getTargetWorkspace(){return this.targetWorkspace}isVisible(){return this.visible}setVisible(a){var b=a!==this.isVisible();this.visible=a;b&&(this.autoClose||this.targetWorkspace.recordDragTargets(),this.updateDisplay())}setContainerVisible(a){var b=a!==this.containerVisible;this.containerVisible=a;b&&this.updateDisplay()}getContents(){return this.contents}setContents(a){this.contents=
1383
1386
  a}updateDisplay(){var a=this.containerVisible?this.isVisible():!1;this.svgGroup_&&(this.svgGroup_.style.display=a?"block":"none");var b;(b=this.workspace_.scrollbar)==null||b.setContainerVisible(a)}positionAt_(a,b,c,d){var e;(e=this.svgGroup_)==null||e.setAttribute("width",`${a}`);var f;(f=this.svgGroup_)==null||f.setAttribute("height",`${b}`);this.workspace_.setCachedParentSvgSize(a,b);this.svgGroup_&&Qa(this.svgGroup_,"translate("+c+"px,"+d+"px)");if(a=this.workspace_.scrollbar)a.setOrigin(c,d),
1384
1387
  a.resize(),a.hScroll&&a.hScroll.setPosition(a.hScroll.position.x,a.hScroll.position.y),a.vScroll&&a.vScroll.setPosition(a.vScroll.position.x,a.vScroll.position.y)}hide(){this.isVisible()&&(this.setVisible(!1),this.reflowWrapper&&(this.workspace_.removeChangeListener(this.reflowWrapper),this.reflowWrapper=null))}show(a){$.t().getFocusedTree()===this.workspace_&&$.t().getFocusedNode()!==this.workspace_&&$.t().focusNode(this.workspace_);this.workspace_.setResizesEnabled(!1);$.Qc=!1;this.hide();this.clearOldBlocks();
1385
1388
  typeof a==="string"&&(a=this.getDynamicCategoryContents(a));this.setVisible(!0);a=Dc(a);a=this.createFlyoutInfo(a);dd(this.workspace_);this.setContents(a);this.layout_(a);this.horizontalLayout?this.height_=0:this.width_=0;this.reflow();this.updateAriaContext();$.Qc=!0;this.workspace_.setResizesEnabled(!0);this.reflowWrapper=b=>{this.inhibitReflowWrapper||b.type!==v.BLOCK_CHANGE&&b.type!==v.BLOCK_FIELD_INTERMEDIATE_CHANGE||this.reflow()};this.workspace_.addChangeListener(this.reflowWrapper)}updateAriaContext(){var a=
1386
- this.getContents().map(c=>c.getElement()).filter(c=>c.canBeFocused()).map(c=>c.getFocusableElement().id);l(this.getWorkspace().getCanvas(),p.OWNS,a.join(" "));this.targetWorkspace.isMutator||this.autoClose?ya(this.getWorkspace().svgGroup_,Ka.NONE):ya(this.getWorkspace().svgGroup_,Ka.REGION);var b=(a=(b=this.targetWorkspace.getToolbox())==null?void 0:b.getSelectedItem())&&ue(a)?a.getName():"";b=$.C.WORKSPACE_LABEL_FLYOUT_WORKSPACE.replace("%1",b).trim();l(this.getWorkspace().getCanvas(),p.LABEL,b);
1387
- ya(this.getWorkspace().getCanvas(),Ka.LISTBOX)}createFlyoutInfo(a){var b=[],c=this.horizontalLayout?this.GAP_X:this.GAP_Y;for(let d of a)if("custom"in d&&(a=this.getDynamicCategoryContents(d.custom),a=Dc(a),b.push(...this.createFlyoutInfo(a))),a=d.kind.toLowerCase(),a=this.getInflaterForType(a))b.push(a.load(d,this)),(a=a.gapForItem(d,c))&&b.push(new fo(new io(a,this.horizontalLayout?"x":"y"),"sep"));return this.normalizeSeparators(b)}normalizeSeparators(a){for(let b=a.length-1;b>0;b--){let c=a[b].getType().toLowerCase(),
1389
+ this.getContents().map(c=>c.getElement()).filter(c=>c.canBeFocused()).map(c=>c.getFocusableElement().id);l(this.getWorkspace().getCanvas(),p.OWNS,a.join(" "));this.targetWorkspace.isMutator||this.autoClose?ya(this.getWorkspace().svgGroup_,Ka.NONE):ya(this.getWorkspace().svgGroup_,Ka.REGION);var b=(a=(b=this.targetWorkspace.getToolbox())==null?void 0:b.getSelectedItem())&&ve(a)?a.getName():"";b=$.C.WORKSPACE_LABEL_FLYOUT_WORKSPACE.replace("%1",b).trim();l(this.getWorkspace().getCanvas(),p.LABEL,b);
1390
+ ya(this.getWorkspace().getCanvas(),Ka.LISTBOX)}createFlyoutInfo(a){var b=[],c=this.horizontalLayout?this.GAP_X:this.GAP_Y;for(let d of a)if("custom"in d&&(a=this.getDynamicCategoryContents(d.custom),a=Dc(a),b.push(...this.createFlyoutInfo(a))),a=d.kind.toLowerCase(),a=this.getInflaterForType(a))b.push(a.load(d,this)),(a=a.gapForItem(d,c))&&b.push(new go(new jo(a,this.horizontalLayout?"x":"y"),"sep"));return this.normalizeSeparators(b)}normalizeSeparators(a){for(let b=a.length-1;b>0;b--){let c=a[b].getType().toLowerCase(),
1388
1391
  d=a[b-1].getType().toLowerCase();c==="sep"&&d==="sep"&&a.splice(b-1,1)}return a}getDynamicCategoryContents(a){a=this.workspace_.targetWorkspace.getToolboxCategoryCallback(a);if(typeof a!=="function")throw TypeError("Couldn't find a callback function when opening a toolbox category.");return a(this.workspace_.targetWorkspace)}clearOldBlocks(){this.getContents().forEach(b=>{var c;(c=this.getInflaterForType(b.getType()))==null||c.disposeItem(b)});var a;(a=this.workspace_.getPotentialVariableMap())==
1389
- null||a.clear()}onMouseDown(a){var b=this.targetWorkspace.getGesture(a);b&&b.handleFlyoutStart(a,this)}reflow(){this.inhibitReflowWrapper=!0;this.reflowInternal_();this.inhibitReflowWrapper=!1}isScrollable(){return this.workspace_.scrollbar?this.workspace_.scrollbar.isVisible():!1}getInflaterForType(a){if(this.inflaters.has(a)){var b;return(b=this.inflaters.get(a))!=null?b:null}return(b=Fb(y.FLYOUT_INFLATER,a,void 0))?(b=new b,this.inflaters.set(a,b),b):null}};var Co=class{constructor(a){this.workspace=a;this.horizontalScrollEnabled=this.workspace.isMovableHorizontally();this.verticalScrollEnabled=this.workspace.isMovableVertically();this.startScrollXY_=new D(a.scrollX,a.scrollY)}startDrag(){}endDrag(a){this.drag(a)}drag(a){a=D.sum(this.startScrollXY_,a);if(this.horizontalScrollEnabled&&this.verticalScrollEnabled)this.workspace.scroll(a.x,a.y);else if(this.horizontalScrollEnabled)this.workspace.scroll(a.x,this.workspace.scrollY);else if(this.verticalScrollEnabled)this.workspace.scroll(this.workspace.scrollX,
1390
- a.y);else throw new TypeError("Invalid state.");}};var Do=class{constructor(a,b){this.creatorWorkspace=b;this.mouseDownXY=new D(0,0);this.startWorkspace_=this.targetBlock=this.startComment=this.startBlock=this.startIcon=this.startField=this.startBubble=null;this.hasExceededDragRadius=!1;this.boundEvents=[];this.workspaceDragger=this.dragger=null;this.dragging=!1;this.flyout=null;this.multiTouch=this.isEnding_=this.gestureHasStarted=this.calledUpdateIsDragging=!1;this.cachedPoints=new Map;this.startDistance=this.previousScale=0;this.currentDropdownOwner=
1391
- this.isPinchZoomEnabled=null;this.mostRecentEvent=a;this.currentDragDeltaXY=new D(0,0)}dispose(){ha=null;If=!1;this.creatorWorkspace.clearGesture();for(let a of this.boundEvents)la(a);this.boundEvents.length=0}updateFromEvent(a){var b=new D(a.clientX,a.clientY);this.updateDragDelta(b)&&(this.updateIsDragging(a),aa());this.mostRecentEvent=a}updateDragDelta(a){this.currentDragDeltaXY=D.difference(a,this.mouseDownXY);return this.hasExceededDragRadius?!1:this.hasExceededDragRadius=D.magnitude(this.currentDragDeltaXY)>
1392
- (this.flyout?$.Ng.flyoutDragRadius:$.Ng.dragRadius)}updateIsDraggingWorkspace(){if(!this.startWorkspace_)throw Error("Cannot update dragging the workspace because the start workspace is undefined");if(this.flyout?this.flyout.isScrollable():this.startWorkspace_&&this.startWorkspace_.isDraggable())this.dragging=!0,this.workspaceDragger=new Co(this.startWorkspace_),this.workspaceDragger.startDrag()}updateIsDragging(a){if(!this.startWorkspace_)throw Error("Cannot update dragging because the start workspace is undefined");
1393
- if(this.calledUpdateIsDragging)throw Error("updateIsDragging_ should only be called once per gesture.");this.calledUpdateIsDragging=!0;var b=nb();b&&fi(b)&&b.isMovable()?(this.dragging=!0,this.dragger=this.createDragger(b),this.dragger.onDragStart(a),this.dragger.onDrag(a,this.currentDragDeltaXY)):this.updateIsDraggingWorkspace()}createDragger(a){return new (Jb(y.BLOCK_DRAGGER,this.creatorWorkspace.options,!0))(a)}doStart(a){if(!this.startWorkspace_)throw Error("Cannot start the touch gesture becauase the start workspace is undefined");
1394
- this.isPinchZoomEnabled=this.startWorkspace_.options.zoomOptions&&this.startWorkspace_.options.zoomOptions.pinch;ma(a)?this.cancel():(this.gestureHasStarted=!0,Lh(),this.startWorkspace_.updateScreenCalculationsIfScrolled(),this.startWorkspace_.isMutator&&this.startWorkspace_.resize(),this.currentDropdownOwner=ef,this.startWorkspace_.hideChaff(!!this.flyout),this.startWorkspace_.markFocused(),this.mostRecentEvent=a,Uf(),oa(a)?this.handleRightClick(a):(a.type.toLowerCase()==="pointerdown"&&a.pointerType!==
1392
+ null||a.clear()}onMouseDown(a){var b=this.targetWorkspace.getGesture(a);b&&b.handleFlyoutStart(a,this)}reflow(){this.inhibitReflowWrapper=!0;this.reflowInternal_();this.inhibitReflowWrapper=!1}isScrollable(){return this.workspace_.scrollbar?this.workspace_.scrollbar.isVisible():!1}getInflaterForType(a){if(this.inflaters.has(a)){var b;return(b=this.inflaters.get(a))!=null?b:null}return(b=Fb(y.FLYOUT_INFLATER,a,void 0))?(b=new b,this.inflaters.set(a,b),b):null}};var Do=class{constructor(a){this.workspace=a;this.horizontalScrollEnabled=this.workspace.isMovableHorizontally();this.verticalScrollEnabled=this.workspace.isMovableVertically();this.startScrollXY_=new D(a.scrollX,a.scrollY)}startDrag(){}endDrag(a){this.drag(a)}drag(a){a=D.sum(this.startScrollXY_,a);if(this.horizontalScrollEnabled&&this.verticalScrollEnabled)this.workspace.scroll(a.x,a.y);else if(this.horizontalScrollEnabled)this.workspace.scroll(a.x,this.workspace.scrollY);else if(this.verticalScrollEnabled)this.workspace.scroll(this.workspace.scrollX,
1393
+ a.y);else throw new TypeError("Invalid state.");}};var Eo=class{constructor(a,b){this.creatorWorkspace=b;this.mouseDownXY=new D(0,0);this.startWorkspace_=this.targetBlock=this.startComment=this.startBlock=this.startIcon=this.startField=this.startBubble=null;this.hasExceededDragRadius=!1;this.boundEvents=[];this.workspaceDragger=this.dragger=null;this.dragging=!1;this.flyout=null;this.multiTouch=this.isEnding_=this.gestureHasStarted=this.calledUpdateIsDragging=!1;this.cachedPoints=new Map;this.startDistance=this.previousScale=0;this.currentDropdownOwner=
1394
+ this.isPinchZoomEnabled=null;this.mostRecentEvent=a;this.currentDragDeltaXY=new D(0,0)}dispose(){ha=null;Jf=!1;this.creatorWorkspace.clearGesture();for(let a of this.boundEvents)ka(a);this.boundEvents.length=0}updateFromEvent(a){var b=new D(a.clientX,a.clientY);this.updateDragDelta(b)&&(this.updateIsDragging(a),aa());this.mostRecentEvent=a}updateDragDelta(a){this.currentDragDeltaXY=D.difference(a,this.mouseDownXY);return this.hasExceededDragRadius?!1:this.hasExceededDragRadius=D.magnitude(this.currentDragDeltaXY)>
1395
+ (this.flyout?$.Og.flyoutDragRadius:$.Og.dragRadius)}updateIsDraggingWorkspace(){if(!this.startWorkspace_)throw Error("Cannot update dragging the workspace because the start workspace is undefined");if(this.flyout?this.flyout.isScrollable():this.startWorkspace_&&this.startWorkspace_.isDraggable())this.dragging=!0,this.workspaceDragger=new Do(this.startWorkspace_),this.workspaceDragger.startDrag()}updateIsDragging(a){if(!this.startWorkspace_)throw Error("Cannot update dragging because the start workspace is undefined");
1396
+ if(this.calledUpdateIsDragging)throw Error("updateIsDragging_ should only be called once per gesture.");this.calledUpdateIsDragging=!0;var b=nb();b&&gi(b)&&b.isMovable()?(this.dragging=!0,this.dragger=this.createDragger(b),this.dragger.onDragStart(a),this.dragger.onDrag(a,this.currentDragDeltaXY)):this.updateIsDraggingWorkspace()}createDragger(a){return new (Jb(y.BLOCK_DRAGGER,this.creatorWorkspace.options,!0))(a)}doStart(a){if(!this.startWorkspace_)throw Error("Cannot start the touch gesture becauase the start workspace is undefined");
1397
+ this.isPinchZoomEnabled=this.startWorkspace_.options.zoomOptions&&this.startWorkspace_.options.zoomOptions.pinch;la(a)?this.cancel():(this.gestureHasStarted=!0,Mh(),this.startWorkspace_.updateScreenCalculationsIfScrolled(),this.startWorkspace_.isMutator&&this.startWorkspace_.resize(),this.currentDropdownOwner=ff,this.startWorkspace_.hideChaff(!!this.flyout),this.startWorkspace_.markFocused(),this.mostRecentEvent=a,Vf(),na(a)?this.handleRightClick(a):(a.type.toLowerCase()==="pointerdown"&&a.pointerType!==
1395
1398
  "mouse"&&ca(a,this),this.mouseDownXY=new D(a.clientX,a.clientY),this.bindMouseEvents(a),this.isEnding_||this.handleTouchStart(a)))}bindMouseEvents(a){this.boundEvents.push(k(document,"pointerdown",null,this.handleStart.bind(this),!0));this.boundEvents.push(k(document,"pointermove",null,this.handleMove.bind(this),!0));this.boundEvents.push(k(document,"pointerup",null,this.handleUp.bind(this),!0));this.boundEvents.push(k(document,"pointercancel",null,this.handleUp.bind(this),!0));a.preventDefault();
1396
1399
  a.stopPropagation()}handleStart(a){this.isDragging()||(this.handleTouchStart(a),this.isMultiTouch()&&aa())}handleMove(a){if(this.isDragging()&&ea(a)||!this.isMultiTouch()){this.updateFromEvent(a);if(this.workspaceDragger)this.workspaceDragger.drag(this.currentDragDeltaXY);else if(this.dragger)this.dragger.onDrag(this.mostRecentEvent,this.currentDragDeltaXY);a.preventDefault();a.stopPropagation()}else this.isMultiTouch()&&(this.handleTouchMove(a),aa())}handleUp(a){this.isDragging()||this.handleTouchEnd(a);
1397
1400
  if(!this.isMultiTouch()||this.isDragging()){if(!ea(a))return;this.updateFromEvent(a);aa();if(this.isEnding_){console.log("Trying to end a gesture recursively.");return}this.isEnding_=!0;this.dragger?(Nd.setIsActive(!1),this.dragger.onDragEnd(a,this.currentDragDeltaXY)):this.workspaceDragger?(Nd.setIsActive(!1),this.workspaceDragger.endDrag(this.currentDragDeltaXY)):this.isBubbleClick()||this.isCommentClick()||(this.isFieldClick()?this.doFieldClick():this.isIconClick()?this.doIconClick():this.isBlockClick()?
1398
1401
  this.doBlockClick():this.isWorkspaceClick()&&this.doWorkspaceClick(a))}a.preventDefault();a.stopPropagation();this.dispose()}handleTouchStart(a){var b=fa(a);this.cachedPoints.set(b,this.getTouchPoint(a));var c=Array.from(this.cachedPoints.keys());c.length===2&&(b=this.cachedPoints.get(c[0]),c=this.cachedPoints.get(c[1]),this.startDistance=D.distance(b,c),this.multiTouch=!0,a.preventDefault())}handleTouchMove(a){var b=fa(a);this.cachedPoints.set(b,this.getTouchPoint(a));if(this.isPinchZoomEnabled&&
1399
1402
  this.cachedPoints.size===2)this.handlePinch(a);else{this.updateFromEvent(a);if(this.workspaceDragger)this.workspaceDragger.drag(this.currentDragDeltaXY);else if(this.dragger)this.dragger.onDrag(this.mostRecentEvent,this.currentDragDeltaXY);a.preventDefault();a.stopPropagation()}}handlePinch(a){var b=Array.from(this.cachedPoints.keys()),c=this.cachedPoints.get(b[0]);b=this.cachedPoints.get(b[1]);c=D.distance(c,b)/this.startDistance;if(this.previousScale>0&&this.previousScale<Infinity){b=c-this.previousScale;
1400
- b=b>0?b*5:b*6;if(!this.startWorkspace_)throw Error("Cannot handle a pinch because the start workspace is undefined");let d=this.startWorkspace_,e=pa(a,d.getParentSvg(),d.getInverseScreenCTM());d.zoom(e.x,e.y,b)}this.previousScale=c;a.preventDefault()}handleTouchEnd(a){a=fa(a);this.cachedPoints.has(a)&&this.cachedPoints.delete(a);this.cachedPoints.size<2&&(this.cachedPoints.clear(),this.previousScale=0)}getTouchPoint(a){return this.startWorkspace_?new D(a.pageX,a.pageY):null}isMultiTouch(){return this.multiTouch}cancel(){if(!this.isEnding_){aa();
1403
+ b=b>0?b*5:b*6;if(!this.startWorkspace_)throw Error("Cannot handle a pinch because the start workspace is undefined");let d=this.startWorkspace_,e=oa(a,d.getParentSvg(),d.getInverseScreenCTM());d.zoom(e.x,e.y,b)}this.previousScale=c;a.preventDefault()}handleTouchEnd(a){a=fa(a);this.cachedPoints.has(a)&&this.cachedPoints.delete(a);this.cachedPoints.size<2&&(this.cachedPoints.clear(),this.previousScale=0)}getTouchPoint(a){return this.startWorkspace_?new D(a.pageX,a.pageY):null}isMultiTouch(){return this.multiTouch}cancel(){if(!this.isEnding_){aa();
1401
1404
  if(this.dragger)this.dragger.onDragEnd(this.mostRecentEvent,this.currentDragDeltaXY);else this.workspaceDragger&&this.workspaceDragger.endDrag(this.currentDragDeltaXY);this.dispose()}}handleRightClick(a){var b=$.t().getFocusedNode();if(b&&typeof b.showContextMenu==="function"){let c;(c=this.startWorkspace_)==null||c.hideChaff(!!this.flyout);b.showContextMenu(a)}a.preventDefault();a.stopPropagation();Nd.setIsActive(!1);this.dispose()}handleWsStart(a,b){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleWsStart, but the gesture had already been started.");
1402
1405
  this.setStartWorkspace(b);this.mostRecentEvent=a;this.targetBlock||this.startBubble||this.startComment||this.startIcon||$.t().focusNode(b);this.doStart(a)}fireWorkspaceClick(a){w(new (u(v.CLICK))(null,a.id,"workspace"))}handleFlyoutStart(a,b){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleFlyoutStart, but the gesture had already been started.");this.setStartFlyout(b);this.handleWsStart(a,b.getWorkspace())}handleBlockStart(a,b){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleBlockStart, but the gesture had already been started.");
1403
1406
  this.setStartBlock(b);this.mostRecentEvent=a}handleBubbleStart(a,b){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleBubbleStart, but the gesture had already been started.");this.setStartBubble(b);this.mostRecentEvent=a}handleCommentStart(a,b){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleCommentStart, but the gesture had already been started.");this.setStartComment(b);this.mostRecentEvent=a}doFieldClick(){if(!this.startField)throw Error("Cannot do a field click because the start field is undefined");
1404
- this.currentDropdownOwner!==this.startField&&this.startField.showEditor(this.mostRecentEvent)}doIconClick(){if(!this.startIcon)throw Error("Cannot do an icon click because the start icon is undefined");this.startIcon.onClick()}doBlockClick(){if(this.flyout&&this.flyout.autoClose){if(!this.targetBlock)throw Error("Cannot do a block click because the target block is undefined");var a=be(this.targetBlock);let c=this.flyout.targetWorkspace;if(a&&c){var b=pc(this.flyout.getWorkspace(),this.targetBlock.getRelativeToSurfaceXY());
1405
- b=oc(c,b);a.x=b.x;a.y=b.y;ce(a,c,{recordUndo:!0});c.hideChaff(!1)}}else{if(!this.startWorkspace_)throw Error("Cannot do a block click because the start workspace is undefined");a=new (u(v.CLICK))(this.startBlock,this.startWorkspace_.id,"block");w(a)}$.B(!1)}doWorkspaceClick(){this.fireWorkspaceClick(this.startWorkspace_||this.creatorWorkspace)}setStartField(a){if(this.gestureHasStarted)throw Error("Tried to call gesture.setStartField, but the gesture had already been started.");this.startField||(this.startField=
1407
+ this.currentDropdownOwner!==this.startField&&this.startField.showEditor(this.mostRecentEvent)}doIconClick(){if(!this.startIcon)throw Error("Cannot do an icon click because the start icon is undefined");this.startIcon.onClick()}doBlockClick(){if(this.flyout&&this.flyout.autoClose){if(!this.targetBlock)throw Error("Cannot do a block click because the target block is undefined");var a=ce(this.targetBlock);let c=this.flyout.targetWorkspace;if(a&&c){var b=pc(this.flyout.getWorkspace(),this.targetBlock.getRelativeToSurfaceXY());
1408
+ b=oc(c,b);a.x=b.x;a.y=b.y;de(a,c,{recordUndo:!0});c.hideChaff(!1)}}else{if(!this.startWorkspace_)throw Error("Cannot do a block click because the start workspace is undefined");a=new (u(v.CLICK))(this.startBlock,this.startWorkspace_.id,"block");w(a)}$.B(!1)}doWorkspaceClick(){this.fireWorkspaceClick(this.startWorkspace_||this.creatorWorkspace)}setStartField(a){if(this.gestureHasStarted)throw Error("Tried to call gesture.setStartField, but the gesture had already been started.");this.startField||(this.startField=
1406
1409
  a)}setStartIcon(a){if(this.gestureHasStarted)throw Error("Tried to call gesture.setStartIcon, but the gesture had already been started.");this.startIcon||(this.startIcon=a)}setStartBubble(a){this.startBubble||(this.startBubble=a)}setStartComment(a){this.startComment||(this.startComment=a)}setStartBlock(a){this.startBlock||this.startBubble||this.startIcon||(this.startBlock=a,a.isInFlyout&&a!==a.getRootBlock()?this.setTargetBlock(a.getRootBlock()):this.setTargetBlock(a))}setTargetBlock(a){a.isShadow()?
1407
1410
  this.setTargetBlock(a.getParent()):(this.targetBlock=a,this.targetBlock.bringToFront(),$.t().focusNode(this.targetBlock))}setStartWorkspace(a){this.startWorkspace_||(this.startWorkspace_=a)}setStartFlyout(a){this.flyout||(this.flyout=a)}isBubbleClick(){return!!this.startBubble&&!this.hasExceededDragRadius}isCommentClick(){return!!this.startComment&&!this.hasExceededDragRadius}isBlockClick(){return!!this.startBlock&&!this.hasExceededDragRadius&&!this.isFieldClick()&&!this.isIconClick()}isFieldClick(){return this.startField?
1408
1411
  this.startField.isClickable()&&!this.hasExceededDragRadius&&(!this.flyout||this.startField.isClickableInFlyout(this.flyout.autoClose)):!1}isIconClick(){if(!this.startIcon)return!1;var a=!this.flyout||!this.startIcon.isClickableInFlyout||this.startIcon.isClickableInFlyout(this.flyout.autoClose);return!this.hasExceededDragRadius&&a}isWorkspaceClick(){return!this.startBlock&&!this.startBubble&&!this.startField&&!this.hasExceededDragRadius}getCurrentDragger(){var a,b;return(b=(a=this.workspaceDragger)!=
1409
- null?a:this.dragger)!=null?b:null}isDragging(){return this.dragging}hasStarted(){return this.gestureHasStarted}static inProgress(){var a=gb();for(let b=0,c;c=a[b];b++)if(c.currentGesture_)return!0;return!1}};var Bj=class{constructor(a,b){this.pattern=a;this.scale=1;var c;this.spacing=(c=b.spacing)!=null?c:0;var d;this.length=(d=b.length)!=null?d:1;this.line2=(this.line1=a.firstChild)&&this.line1.nextSibling;var e;this.snapToGrid=(e=b.snap)!=null?e:!1}setSpacing(a){this.spacing=a;this.update(this.scale)}getSpacing(){return this.spacing}setLength(a){this.length=a;this.update(this.scale)}getLength(){return this.length}setSnapToGrid(a){this.snapToGrid=a}shouldSnap(){return this.snapToGrid}getPatternId(){return this.pattern.id}update(a){this.scale=
1412
+ null?a:this.dragger)!=null?b:null}isDragging(){return this.dragging}hasStarted(){return this.gestureHasStarted}static inProgress(){var a=gb();for(let b=0,c;c=a[b];b++)if(c.currentGesture_)return!0;return!1}};var Cj=class{constructor(a,b){this.pattern=a;this.scale=1;var c;this.spacing=(c=b.spacing)!=null?c:0;var d;this.length=(d=b.length)!=null?d:1;this.line2=(this.line1=a.firstChild)&&this.line1.nextSibling;var e;this.snapToGrid=(e=b.snap)!=null?e:!1}setSpacing(a){this.spacing=a;this.update(this.scale)}getSpacing(){return this.spacing}setLength(a){this.length=a;this.update(this.scale)}getLength(){return this.length}setSnapToGrid(a){this.snapToGrid=a}shouldSnap(){return this.snapToGrid}getPatternId(){return this.pattern.id}update(a){this.scale=
1410
1413
  a;var b=this.spacing*a;this.pattern.setAttribute("width",`${b}`);this.pattern.setAttribute("height",`${b}`);b=Math.floor(this.spacing/2)+.5;var c=b-this.length/2,d=b+this.length/2;b*=a;c*=a;d*=a;this.setLineAttributes(this.line1,a,c,d,b,b);this.setLineAttributes(this.line2,a,b,b,c,d)}setLineAttributes(a,b,c,d,e,f){a&&(a.setAttribute("stroke-width",`${b}`),a.setAttribute("x1",`${c}`),a.setAttribute("y1",`${e}`),a.setAttribute("x2",`${d}`),a.setAttribute("y2",`${f}`))}moveTo(a,b){this.pattern.setAttribute("x",
1411
1414
  `${a}`);this.pattern.setAttribute("y",`${b}`)}alignXY(a){var b=this.getSpacing(),c=b/2,d=Math.round(Math.round((a.x-c)/b)*b+c);b=Math.round(Math.round((a.y-c)/b)*b+c);return d===a.x&&b===a.y?a:new D(d,b)}static createDom(a,b,c,d){a=r(q.PATTERN,{id:"blocklyGridPattern"+a,patternUnits:"userSpaceOnUse"},c);var e,f;if(((e=b.length)!=null?e:1)>0&&((f=b.spacing)!=null?f:0)>0){r(q.LINE,{stroke:b.colour},a);let g;(g=b.length)!=null&&g&&r(q.LINE,{stroke:b.colour},a)}else r(q.LINE,{},a);d&&d.style.setProperty("--blocklyGridPattern",
1412
- `url(#${a.id})`);return a}};var Eo=class{constructor(a){this.workspace=a;this.layers=new Map;if(a=a.getInjectionDiv())this.dragLayer=this.createDragLayer(a),this.animationLayer=this.createAnimationLayer(a);a=this.createLayer(50);n(a,"blocklyBlockCanvas");a=this.createLayer(100);n(a,"blocklyBubbleCanvas")}createDragLayer(a){var b=r(q.SVG,{"class":"blocklyBlockDragSurface",xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"});a.append(b);return r(q.G,
1415
+ `url(#${a.id})`);return a}};var Fo=class{constructor(a){this.workspace=a;this.layers=new Map;if(a=a.getInjectionDiv())this.dragLayer=this.createDragLayer(a),this.animationLayer=this.createAnimationLayer(a);a=this.createLayer(50);n(a,"blocklyBlockCanvas");a=this.createLayer(100);n(a,"blocklyBubbleCanvas")}createDragLayer(a){var b=r(q.SVG,{"class":"blocklyBlockDragSurface",xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"});a.append(b);return r(q.G,
1413
1416
  {},b)}createAnimationLayer(a){var b=r(q.SVG,{"class":"blocklyAnimationLayer",xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"});a.append(b);return r(q.G,{},b)}appendToAnimationLayer(a){var b,c=(b=this.dragLayer)==null?void 0:b.getAttribute("transform");if(c){let e;(e=this.animationLayer)==null||e.setAttribute("transform",c)}var d;(d=this.animationLayer)==null||d.appendChild(a.getSvgRoot())}translateLayers(a,b){a=
1414
1417
  `translate(${a.x}, ${a.y}) scale(${b})`;var c;(c=this.dragLayer)==null||c.setAttribute("transform",a);for(let [,d]of this.layers)d.setAttribute("transform",a)}moveToDragLayer(a,b=!0){var c;(c=this.dragLayer)==null||c.appendChild(a.getSvgRoot());b&&a.canBeFocused()&&$.t().focusNode(a)}moveOffDragLayer(a,b,c=!0){this.append(a,b);c&&a.canBeFocused()&&$.t().focusNode(a)}append(a,b){this.layers.has(b)||this.createLayer(b);a=a.getSvgRoot();var c;if(((c=this.layers.get(b))==null?void 0:c.lastChild)!==a){let d;
1415
- (d=this.layers.get(b))==null||d.appendChild(a)}}createLayer(a){var b=this.workspace.getSvgGroup(),c=r(q.G,{}),d=!1,e=[...this.layers].sort((f,g)=>f[0]-g[0]);for(let [f,g]of e)if(a<f){b.insertBefore(c,g);d=!0;break}d||b.appendChild(c);this.layers.set(a,c);return c}hasLayer(a){return a===this.dragLayer||(new Set(this.layers.values())).has(a)}getBlockLayer(){return this.layers.get(50)}getBubbleLayer(){return this.layers.get(100)}getDragLayer(){return this.dragLayer}};var Fo={};Fo.register=cj;Fo.unregister=function(a){Eb(y.ICON,a)};var Vj=class extends tn{constructor(a){super(a);this.sourceBlock=a;this.textInputBubble=null;this.text="";this.bubbleSize=new hc(160,80);this.bubbleVisiblity=!1}getType(){return Vj.TYPE}initView(a){this.svgRoot||(super.initView(a),r(q.CIRCLE,{"class":"blocklyIconShape",r:"8",cx:"8",cy:"8"},this.svgRoot),r(q.PATH,{"class":"blocklyIconSymbol",d:"m6.8,10h2c0.003,-0.617 0.271,-0.962 0.633,-1.266 2.875,-2.4050.607,-5.534 -3.765,-3.874v1.7c3.12,-1.657 3.698,0.118 2.336,1.25-1.201,0.998 -1.201,1.528 -1.204,2.19z"},
1416
- this.svgRoot),r(q.RECT,{"class":"blocklyIconSymbol",x:"6.8",y:"10.78",height:"2",width:"2"},this.svgRoot),n(this.svgRoot,"blocklyCommentIcon"))}dispose(){super.dispose();var a;(a=this.textInputBubble)==null||a.dispose()}getWeight(){return Vj.WEIGHT}getSize(){return new hc(17,17)}applyColour(){super.applyColour();var a=this.sourceBlock.getColour(),b;(b=this.textInputBubble)==null||b.setColour(a)}updateEditable(){var a=this,b=()=>super.updateEditable;return(0,M.asyncExecutePromiseGeneratorFunction)(function*(){b().call(a);
1418
+ (d=this.layers.get(b))==null||d.appendChild(a)}}createLayer(a){var b=this.workspace.getSvgGroup(),c=r(q.G,{}),d=!1,e=[...this.layers].sort((f,g)=>f[0]-g[0]);for(let [f,g]of e)if(a<f){b.insertBefore(c,g);d=!0;break}d||b.appendChild(c);this.layers.set(a,c);return c}hasLayer(a){return a===this.dragLayer||(new Set(this.layers.values())).has(a)}getBlockLayer(){return this.layers.get(50)}getBubbleLayer(){return this.layers.get(100)}getDragLayer(){return this.dragLayer}};var Go={};Go.register=dj;Go.unregister=function(a){Eb(y.ICON,a)};var Wj=class extends un{constructor(a){super(a);this.sourceBlock=a;this.textInputBubble=null;this.text="";this.bubbleSize=new hc(160,80);this.bubbleVisiblity=!1}getType(){return Wj.TYPE}initView(a){this.svgRoot||(super.initView(a),r(q.CIRCLE,{"class":"blocklyIconShape",r:"8",cx:"8",cy:"8"},this.svgRoot),r(q.PATH,{"class":"blocklyIconSymbol",d:"m6.8,10h2c0.003,-0.617 0.271,-0.962 0.633,-1.266 2.875,-2.4050.607,-5.534 -3.765,-3.874v1.7c3.12,-1.657 3.698,0.118 2.336,1.25-1.201,0.998 -1.201,1.528 -1.204,2.19z"},
1419
+ this.svgRoot),r(q.RECT,{"class":"blocklyIconSymbol",x:"6.8",y:"10.78",height:"2",width:"2"},this.svgRoot),n(this.svgRoot,"blocklyCommentIcon"))}dispose(){super.dispose();var a;(a=this.textInputBubble)==null||a.dispose()}getWeight(){return Wj.WEIGHT}getSize(){return new hc(17,17)}applyColour(){super.applyColour();var a=this.sourceBlock.getColour(),b;(b=this.textInputBubble)==null||b.setColour(a)}updateEditable(){var a=this,b=()=>super.updateEditable;return(0,M.asyncExecutePromiseGeneratorFunction)(function*(){b().call(a);
1417
1420
  a.bubbleIsVisible()&&(yield a.setBubbleVisible(!1),yield a.setBubbleVisible(!0))})}onLocationChange(a){var b=this.workspaceLocation;super.onLocationChange(a);this.bubbleLocation&&(a=D.difference(this.workspaceLocation,b),this.bubbleLocation=D.sum(this.bubbleLocation,a));a=this.getAnchorLocation();var c;(c=this.textInputBubble)==null||c.setAnchorLocation(a)}setText(a){var b=this.text;w(new (u(v.BLOCK_CHANGE))(this.sourceBlock,"comment",null,b,a));this.text=a;var c;(c=this.textInputBubble)==null||c.setText(this.text)}getText(){return this.text}setBubbleSize(a){this.bubbleSize=
1418
1421
  a;var b;(b=this.textInputBubble)==null||b.setSize(this.bubbleSize,!0)}getBubbleSize(){return this.bubbleSize}setBubbleLocation(a){this.bubbleLocation=a;var b;(b=this.textInputBubble)==null||b.moveDuringDrag(a)}getBubbleLocation(){return this.bubbleLocation}saveState(){if(this.text){let a={text:this.text,pinned:this.bubbleIsVisible(),height:this.bubbleSize.height,width:this.bubbleSize.width},b=this.getBubbleLocation();b&&(a.x=this.sourceBlock.workspace.RTL?this.sourceBlock.workspace.getWidth()-(b.x+
1419
1422
  this.bubbleSize.width):b.x,a.y=b.y);return a}return null}loadState(a){var b;this.text=(b=a.text)!=null?b:"";var c,d;this.bubbleSize=new hc((c=a.width)!=null?c:160,(d=a.height)!=null?d:80);var e;this.bubbleVisiblity=(e=a.pinned)!=null?e:!1;this.setBubbleVisible(this.bubbleVisiblity);var f=a.x,g=a.y;cd().then(()=>{f&&g&&(f=this.sourceBlock.workspace.RTL?this.sourceBlock.workspace.getWidth()-(f+this.bubbleSize.width):f,this.setBubbleLocation(new D(f,g)))})}onClick(){super.onClick();this.setBubbleVisible(!this.bubbleIsVisible())}isClickableInFlyout(){return!1}onTextChange(){if(this.textInputBubble){var a=
1420
1423
  this.textInputBubble.getText();this.text!==a&&(w(new (u(v.BLOCK_CHANGE))(this.sourceBlock,"comment",null,this.text,a)),this.text=a)}}onSizeChange(){this.textInputBubble&&(this.bubbleSize=this.textInputBubble.getSize())}onBubbleLocationChange(){this.textInputBubble&&(this.bubbleLocation=this.textInputBubble.getRelativeToSurfaceXY())}bubbleIsVisible(){return this.bubbleVisiblity}setBubbleVisible(a){var b=this;return(0,M.asyncExecutePromiseGeneratorFunction)(function*(){b.bubbleVisiblity!==a&&(b.bubbleVisiblity=
1421
1424
  a,yield cd(),!b.sourceBlock.rendered||b.sourceBlock.isInFlyout||b.sourceBlock.isInsertionMarker()||(a?(b.sourceBlock.isEditable()?b.showEditableBubble():b.showNonEditableBubble(),b.applyColour()):b.hideBubble(),w(new (u(v.BUBBLE_OPEN))(b.sourceBlock,a,"comment")),b.svgRoot&&b.recomputeAriaContext()))})}getBubble(){return this.textInputBubble}showEditableBubble(){this.createBubble();var a;(a=this.textInputBubble)==null||a.addTextChangeListener(()=>this.onTextChange());var b;(b=this.textInputBubble)==
1422
- null||b.addSizeChangeListener(()=>this.onSizeChange())}showNonEditableBubble(){this.createBubble();var a;(a=this.textInputBubble)==null||a.setEditable(!1)}createBubble(){this.textInputBubble=new yn(this.sourceBlock.workspace,this.getAnchorLocation(),this.getBubbleOwnerRect(),this);this.textInputBubble.getEditor().setParent(this.sourceBlock);this.textInputBubble.setText(this.getText());this.textInputBubble.setSize(this.bubbleSize,!0);this.bubbleLocation&&this.textInputBubble.moveDuringDrag(this.bubbleLocation);
1425
+ null||b.addSizeChangeListener(()=>this.onSizeChange())}showNonEditableBubble(){this.createBubble();var a;(a=this.textInputBubble)==null||a.setEditable(!1)}createBubble(){this.textInputBubble=new zn(this.sourceBlock.workspace,this.getAnchorLocation(),this.getBubbleOwnerRect(),this);this.textInputBubble.getEditor().setParent(this.sourceBlock);this.textInputBubble.setText(this.getText());this.textInputBubble.setSize(this.bubbleSize,!0);this.bubbleLocation&&this.textInputBubble.moveDuringDrag(this.bubbleLocation);
1423
1426
  this.textInputBubble.addTextChangeListener(()=>this.onTextChange());this.textInputBubble.addSizeChangeListener(()=>this.onSizeChange());this.textInputBubble.addLocationChangeListener(()=>this.onBubbleLocationChange());this.textInputBubble.setAriaLabelProvider(()=>$.C.BUBBLE_LABEL_COMMENT.replace("%1",this.getText()))}hideBubble(){var a;(a=this.textInputBubble)==null||a.dispose();this.textInputBubble=null}getAnchorLocation(){return D.sum(this.workspaceLocation,new D(8.5,8.5))}getBubbleOwnerRect(){return this.sourceBlock.getBoundingRectangleWithoutChildren()}getAriaLabel(){return this.bubbleIsVisible()?
1424
- $.C.ICON_LABEL_COMMENT_OPEN:$.C.ICON_LABEL_COMMENT_CLOSED}};Vj.TYPE=Yg.COMMENT;Vj.WEIGHT=3;cj(Vj.TYPE,Vj);var Go={};Go.CommentIcon=Vj;Go.Icon=tn;Go.IconType=Yg;Go.MutatorIcon=$.rh;Go.WarningIcon=bo;Go.exceptions=Cn;Go.registry=Fo;var Ho,Io;
1425
- $.jj=class{constructor(a,b){this.db=new Map;this.dbReverse=new Set;this.variableMap=null;this.variablePrefix=b||"";this.reservedWords=new Set(a?a.split(","):[])}reset(){this.db.clear();this.dbReverse.clear();this.variableMap=null}setVariableMap(a){this.variableMap=a}getNameForUserVariable(a){return this.variableMap?(a=this.variableMap.getVariableById(a))?a.getName():null:(console.warn("Deprecated call to Names.prototype.getName without defining a variable map. To fix, add the following code in your generator's init() function:\nBlockly.YourGeneratorName.nameDB_.setVariableMap(workspace.getVariableMap());"),null)}populateVariables(a){a=
1427
+ $.C.ICON_LABEL_COMMENT_OPEN:$.C.ICON_LABEL_COMMENT_CLOSED}};Wj.TYPE=Zg.COMMENT;Wj.WEIGHT=3;dj(Wj.TYPE,Wj);var Ho={};Ho.CommentIcon=Wj;Ho.Icon=un;Ho.IconType=Zg;Ho.MutatorIcon=$.sh;Ho.WarningIcon=co;Ho.exceptions=Dn;Ho.registry=Go;var Io,Jo;
1428
+ $.kj=class{constructor(a,b){this.db=new Map;this.dbReverse=new Set;this.variableMap=null;this.variablePrefix=b||"";this.reservedWords=new Set(a?a.split(","):[])}reset(){this.db.clear();this.dbReverse.clear();this.variableMap=null}setVariableMap(a){this.variableMap=a}getNameForUserVariable(a){return this.variableMap?(a=this.variableMap.getVariableById(a))?a.getName():null:(console.warn("Deprecated call to Names.prototype.getName without defining a variable map. To fix, add the following code in your generator's init() function:\nBlockly.YourGeneratorName.nameDB_.setVariableMap(workspace.getVariableMap());"),null)}populateVariables(a){a=
1426
1429
  $.Bd(a);for(let b=0;b<a.length;b++)this.getName(a[b].getId(),$.P.VARIABLE)}populateProcedures(){throw Error("The implementation of populateProcedures should be monkey-patched in by blockly.ts");}getName(a,b){var c=a;b===$.P.VARIABLE&&(a=this.getNameForUserVariable(a))&&(c=a);a=c.toLowerCase();var d=b===$.P.VARIABLE||b===$.P.DEVELOPER_VARIABLE?this.variablePrefix:"";this.db.has(b)||this.db.set(b,new Map);var e=this.db.get(b);if(e.has(a))return d+e.get(a);b=this.getDistinctName(c,b);e.set(a,b.substr(d.length));
1427
1430
  return b}getUserNames(a){var b;return(a=(b=this.db.get(a))==null?void 0:b.keys())?Array.from(a):[]}getDistinctName(a,b){a=this.safeName(a);for(var c=null,d,e;this.dbReverse.has(a+((d=c)!=null?d:""))||this.reservedWords.has(a+((e=c)!=null?e:""));)c=c?c+1:2;var f;a+=(f=c)!=null?f:"";this.dbReverse.add(a);return(b===$.P.VARIABLE||b===$.P.DEVELOPER_VARIABLE?this.variablePrefix:"")+a}safeName(a){a?(a=encodeURI(a.replace(/ /g,"_")).replace(/[^\w]/g,"_"),"0123456789".includes(a[0])&&(a="my_"+a)):a=$.C.UNNAMED_KEY||
1428
- "unnamed";return a}static equals(a,b){return a.toLowerCase()===b.toLowerCase()}};Ho=$.jj||($.jj={});Io=Ho.NameType||(Ho.NameType={});Io.DEVELOPER_VARIABLE="DEVELOPER_VARIABLE";Io.VARIABLE="VARIABLE";Io.PROCEDURE="PROCEDURE";$.P=$.jj.NameType;$.jj.DEVELOPER_VARIABLE_TYPE=$.P.DEVELOPER_VARIABLE;var Jo=class extends Map{constructor(){super()}set(a,b){if(this.get(a)===b)return this;super.set(a,b);ej(b)&&b.startPublishing();return this}delete(a){var b=this.get(a);a=super.delete(a);if(!a)return a;ej(b)&&b.stopPublishing();return a}clear(){if(this.size)for(let a of this.keys())this.delete(a)}add(a){return this.set(a.getId(),a)}getProcedures(){return[...this.values()]}};var Ko={CATEGORY_NAME:"PROCEDURE",DEFAULT_ARG:"x"};Ko.ObservableProcedureMap=Jo;Ko.allProcedures=gj;Ko.findLegalName=$.ij;Ko.flyoutCategory=mj;Ko.getCallers=qj;Ko.getDefinition=$.sj;Ko.isNameUsed=hj;Ko.isProcedureBlock=dj;Ko.mutateCallers=$.rj;Ko.mutatorOpenListener=pj;Ko.rename=$.lj;var Lo=class{constructor(){this.NONE=0;this.FIELD=1;this.HAT=2;this.ICON=4;this.SPACER=8;this.BETWEEN_ROW_SPACER=16;this.IN_ROW_SPACER=32;this.EXTERNAL_VALUE_INPUT=64;this.INPUT=128;this.INLINE_INPUT=256;this.STATEMENT_INPUT=512;this.CONNECTION=1024;this.PREVIOUS_CONNECTION=2048;this.NEXT_CONNECTION=4096;this.OUTPUT_CONNECTION=8192;this.CORNER=16384;this.LEFT_SQUARE_CORNER=32768;this.LEFT_ROUND_CORNER=65536;this.RIGHT_SQUARE_CORNER=131072;this.RIGHT_ROUND_CORNER=262144;this.JAGGED_EDGE=524288;this.ROW=
1431
+ "unnamed";return a}static equals(a,b){return a.toLowerCase()===b.toLowerCase()}};Io=$.kj||($.kj={});Jo=Io.NameType||(Io.NameType={});Jo.DEVELOPER_VARIABLE="DEVELOPER_VARIABLE";Jo.VARIABLE="VARIABLE";Jo.PROCEDURE="PROCEDURE";$.P=$.kj.NameType;$.kj.DEVELOPER_VARIABLE_TYPE=$.P.DEVELOPER_VARIABLE;var Ko=class extends Map{constructor(){super()}set(a,b){if(this.get(a)===b)return this;super.set(a,b);fj(b)&&b.startPublishing();return this}delete(a){var b=this.get(a);a=super.delete(a);if(!a)return a;fj(b)&&b.stopPublishing();return a}clear(){if(this.size)for(let a of this.keys())this.delete(a)}add(a){return this.set(a.getId(),a)}getProcedures(){return[...this.values()]}};var Lo={CATEGORY_NAME:"PROCEDURE",DEFAULT_ARG:"x"};Lo.ObservableProcedureMap=Ko;Lo.allProcedures=hj;Lo.findLegalName=$.jj;Lo.flyoutCategory=nj;Lo.getCallers=rj;Lo.getDefinition=$.tj;Lo.isNameUsed=ij;Lo.isProcedureBlock=ej;Lo.mutateCallers=$.sj;Lo.mutatorOpenListener=qj;Lo.rename=$.mj;var Mo=class{constructor(){this.NONE=0;this.FIELD=1;this.HAT=2;this.ICON=4;this.SPACER=8;this.BETWEEN_ROW_SPACER=16;this.IN_ROW_SPACER=32;this.EXTERNAL_VALUE_INPUT=64;this.INPUT=128;this.INLINE_INPUT=256;this.STATEMENT_INPUT=512;this.CONNECTION=1024;this.PREVIOUS_CONNECTION=2048;this.NEXT_CONNECTION=4096;this.OUTPUT_CONNECTION=8192;this.CORNER=16384;this.LEFT_SQUARE_CORNER=32768;this.LEFT_ROUND_CORNER=65536;this.RIGHT_SQUARE_CORNER=131072;this.RIGHT_ROUND_CORNER=262144;this.JAGGED_EDGE=524288;this.ROW=
1429
1432
  1048576;this.TOP_ROW=2097152;this.BOTTOM_ROW=4194304;this.INPUT_ROW=8388608;this.LEFT_CORNER=this.LEFT_SQUARE_CORNER|this.LEFT_ROUND_CORNER;this.RIGHT_CORNER=this.RIGHT_SQUARE_CORNER|this.RIGHT_ROUND_CORNER;this.nextTypeValue_=16777216}getType(a){Object.prototype.hasOwnProperty.call(this,a)||(this[a]=this.nextTypeValue_,this.nextTypeValue_<<=1);return this[a]}isField(a){return(a.type&this.FIELD)>=1}isHat(a){return(a.type&this.HAT)>=1}isIcon(a){return(a.type&this.ICON)>=1}isSpacer(a){return(a.type&
1430
1433
  this.SPACER)>=1}isInRowSpacer(a){return(a.type&this.IN_ROW_SPACER)>=1}isSpacerRow(a){return(a.type&this.BETWEEN_ROW_SPACER)>=1}isInput(a){return(a.type&this.INPUT)>=1}isExternalInput(a){return(a.type&this.EXTERNAL_VALUE_INPUT)>=1}isInlineInput(a){return(a.type&this.INLINE_INPUT)>=1}isStatementInput(a){return(a.type&this.STATEMENT_INPUT)>=1}isPreviousConnection(a){return(a.type&this.PREVIOUS_CONNECTION)>=1}isNextConnection(a){return(a.type&this.NEXT_CONNECTION)>=1}isPreviousOrNextConnection(a){return this.isPreviousConnection(a)||
1431
1434
  this.isNextConnection(a)}isRoundCorner(a){return(a.type&this.LEFT_ROUND_CORNER)>=1||(a.type&this.RIGHT_ROUND_CORNER)>=1}isLeftRoundedCorner(a){return this.isRoundCorner(a)&&(a.type&this.LEFT_ROUND_CORNER)>=1}isRightRoundedCorner(a){return this.isRoundCorner(a)&&(a.type&this.RIGHT_ROUND_CORNER)>=1}isLeftSquareCorner(a){return(a.type&this.LEFT_SQUARE_CORNER)>=1}isRightSquareCorner(a){return(a.type&this.RIGHT_SQUARE_CORNER)>=1}isCorner(a){return(a.type&this.CORNER)>=1}isJaggedEdge(a){return(a.type&this.JAGGED_EDGE)>=
1432
- 1}isRow(a){return(a.type&this.ROW)>=1}isBetweenRowSpacer(a){return(a.type&this.BETWEEN_ROW_SPACER)>=1}isTopRow(a){return(a.type&this.TOP_ROW)>=1}isBottomRow(a){return(a.type&this.BOTTOM_ROW)>=1}isTopOrBottomRow(a){return this.isTopRow(a)||this.isBottomRow(a)}isInputRow(a){return(a.type&this.INPUT_ROW)>=1}},Q=new Lo;var Mo=class{constructor(a){this.centerline=this.xPos=this.height=this.width=0;this.constants_=a;this.type=Q.NONE;this.notchOffset=this.constants_.NOTCH_OFFSET_LEFT}};var No=class{constructor(a){this.elements=[];this.xPos=this.yPos=this.widthWithConnectedBlocks=this.minWidth=this.minHeight=this.width=this.height=0;this.hasStatement=this.hasExternalInput=!1;this.statementEdge=0;this.hasJaggedEdge=this.hasDummyInput=this.hasInlineInput=!1;this.align=null;this.constants_=a;this.type=Q.ROW;this.notchOffset=this.constants_.NOTCH_OFFSET_LEFT}getLastInput(){for(let a=this.elements.length-1;a>=0;a--){let b=this.elements[a];if(Q.isInput(b))return b}return null}measure(){throw Error("Unexpected attempt to measure a base Row.");
1433
- }startsWithElemSpacer(){return!0}endsWithElemSpacer(){return!0}getFirstSpacer(){for(let a=0;a<this.elements.length;a++){let b=this.elements[a];if(Q.isInRowSpacer(b))return b}return null}getLastSpacer(){for(let a=this.elements.length-1;a>=0;a--){let b=this.elements[a];if(Q.isInRowSpacer(b))return b}return null}};var Oo=class extends No{constructor(a){super(a);this.hasNextConnection=!1;this.connection=null;this.baseline=this.descenderHeight=0;this.type|=Q.BOTTOM_ROW}hasLeftSquareCorner(a){return!!a.outputConnection||!!a.getNextBlock()}hasRightSquareCorner(){return!0}measure(){var a=0,b=0,c=0;for(let d=0;d<this.elements.length;d++){let e=this.elements[d];b+=e.width;Q.isSpacer(e)||(Q.isNextConnection(e)?c=Math.max(c,e.height):a=Math.max(a,e.height))}this.width=Math.max(this.minWidth,b);this.height=Math.max(this.minHeight,
1434
- a)+c;this.descenderHeight=c;this.widthWithConnectedBlocks=this.width}startsWithElemSpacer(){return!1}endsWithElemSpacer(){return!1}};var Po=class extends Mo{constructor(a,b){super(a);this.connectionModel=b;this.type|=Q.CONNECTION;this.shape=this.constants_.shapeFor(b);this.isDynamicShape="isDynamic"in this.shape&&this.shape.isDynamic;this.highlighted=b.isHighlighted()}};var Qo=class extends Po{constructor(a,b){super(a,b.connection);this.input=b;this.connectionOffsetY=this.connectionOffsetX=0;this.type|=Q.INPUT;this.align=b.align;(this.connectedBlock=b.connection&&b.connection.targetBlock()?b.connection.targetBlock():null)?(a=this.connectedBlock.getHeightWidth(),this.connectedBlockWidth=a.width,this.connectedBlockHeight=a.height):this.connectedBlockHeight=this.connectedBlockWidth=0}};var Uo=class extends Qo{constructor(a,b){super(a,b);this.height=0;this.type|=Q.EXTERNAL_VALUE_INPUT;this.height=this.connectedBlock?this.connectedBlockHeight-this.constants_.TAB_OFFSET_FROM_TOP-this.constants_.MEDIUM_PADDING:this.shape.height;this.width=this.shape.width+this.constants_.EXTERNAL_VALUE_INPUT_PADDING;this.connectionOffsetY=this.constants_.TAB_OFFSET_FROM_TOP;this.connectionHeight=this.shape.height;this.connectionWidth=this.shape.width}};var Vo=class extends Mo{constructor(a,b,c){super(a);this.field=b;this.parentInput=c;this.isEditable=b.EDITABLE;this.flipRtl=b.getFlipRtl();this.type|=Q.FIELD;a=this.field.getSize();this.height=a.height;this.width=a.width}};var Wo=class extends Mo{constructor(a){super(a);this.type|=Q.HAT;this.height=this.constants_.START_HAT.height;this.width=this.constants_.START_HAT.width;this.ascenderHeight=this.height}};var Xo=class extends Mo{constructor(a,b){super(a);this.icon=b;this.flipRtl=!1;this.type|=Q.ICON;a=b.getSize();this.height=a.height;this.width=a.width}};var Yo=class extends Mo{constructor(a,b){super(a);this.type|=Q.SPACER|Q.IN_ROW_SPACER;this.width=b;this.height=this.constants_.SPACER_DEFAULT_HEIGHT}};var Zo=class extends Qo{constructor(a,b){super(a,b);this.type|=Q.INLINE_INPUT;this.connectedBlock?(this.width=this.connectedBlockWidth,this.height=this.connectedBlockHeight):(this.height=this.constants_.EMPTY_INLINE_INPUT_HEIGHT,this.width=this.constants_.EMPTY_INLINE_INPUT_PADDING);this.connectionHeight=this.isDynamicShape?this.shape.height(this.height):this.shape.height;this.connectionWidth=this.isDynamicShape?this.shape.width(this.height):this.shape.width;this.connectedBlock||(this.width+=this.connectionWidth*
1435
- (this.isDynamicShape?2:1));this.connectionOffsetY="connectionOffsetY"in this.shape?this.shape.connectionOffsetY(this.connectionHeight):this.constants_.TAB_OFFSET_FROM_TOP;this.connectionOffsetX="connectionOffsetX"in this.shape?this.shape.connectionOffsetX(this.connectionWidth):0}};var $o=class extends No{constructor(a){super(a);this.connectedBlockWidths=0;this.type|=Q.INPUT_ROW}measure(){this.width=this.minWidth;this.height=this.minHeight;var a=0;for(let b=0;b<this.elements.length;b++){let c=this.elements[b];this.width+=c.width;Q.isInput(c)&&(Q.isStatementInput(c)?a+=c.connectedBlockWidth:Q.isExternalInput(c)&&c.connectedBlockWidth!==0&&(a+=c.connectedBlockWidth-c.connectionWidth));Q.isSpacer(c)||(this.height=Math.max(this.height,c.height))}this.connectedBlockWidths=a;this.widthWithConnectedBlocks=
1436
- this.width+a}endsWithElemSpacer(){return!this.hasExternalInput&&!this.hasStatement}};var ap=class extends Mo{constructor(a){super(a);this.type|=Q.JAGGED_EDGE;this.height=this.constants_.JAGGED_TEETH.height;this.width=this.constants_.JAGGED_TEETH.width}};var bp=class extends Po{constructor(a,b){super(a,b);this.type|=Q.NEXT_CONNECTION;this.height=this.shape.height;this.width=this.shape.width}};var cp=class extends Po{constructor(a,b){super(a,b);this.connectionOffsetX=0;this.type|=Q.OUTPUT_CONNECTION;this.height=this.isDynamicShape?0:this.shape.height;this.startX=this.width=this.isDynamicShape?0:this.shape.width;this.connectionOffsetY=this.constants_.TAB_OFFSET_FROM_TOP}};var dp=class extends Po{constructor(a,b){super(a,b);this.type|=Q.PREVIOUS_CONNECTION;this.height=this.shape.height;this.width=this.shape.width}};var ep=class extends Mo{constructor(a,b){super(a);this.type=(b&&b!=="left"?Q.RIGHT_ROUND_CORNER:Q.LEFT_ROUND_CORNER)|Q.CORNER;this.width=this.constants_.CORNER_RADIUS;this.height=this.constants_.CORNER_RADIUS/2}};var fp=class extends No{constructor(a,b,c){super(a);this.height=b;this.width=c;this.precedesStatement=this.followsStatement=!1;this.widthWithConnectedBlocks=0;this.type|=Q.SPACER|Q.BETWEEN_ROW_SPACER;this.elements=[new Yo(this.constants_,c)]}measure(){}};var gp=class extends Mo{constructor(a,b){super(a);this.type=(b&&b!=="left"?Q.RIGHT_SQUARE_CORNER:Q.LEFT_SQUARE_CORNER)|Q.CORNER;this.width=this.height=this.constants_.NO_PADDING}};var hp=class extends Qo{constructor(a,b){super(a,b);this.type|=Q.STATEMENT_INPUT;this.height=this.connectedBlock?this.connectedBlockHeight+this.constants_.STATEMENT_BOTTOM_SPACER:this.constants_.EMPTY_STATEMENT_INPUT_HEIGHT;this.width=this.constants_.STATEMENT_INPUT_NOTCH_OFFSET+this.shape.width}};var ip=class extends No{constructor(a){super(a);this.ascenderHeight=this.capline=0;this.hasPreviousConnection=!1;this.connection=null;this.type|=Q.TOP_ROW}hasLeftSquareCorner(a){var b=(a.hat?a.hat==="cap":this.constants_.ADD_START_HATS)&&!a.outputConnection&&!a.previousConnection,c=a.getPreviousBlock();return!!a.outputConnection||b||(c?c.getNextBlock()===a:!1)}hasRightSquareCorner(){return!0}measure(){var a=0,b=0,c=0;for(let d=0;d<this.elements.length;d++){let e=this.elements[d];b+=e.width;Q.isSpacer(e)||
1437
- (Q.isHat(e)?c=Math.max(c,e.ascenderHeight):a=Math.max(a,e.height))}this.width=Math.max(this.minWidth,b);this.height=Math.max(this.minHeight,a)+c;this.capline=this.ascenderHeight=c;this.widthWithConnectedBlocks=this.width}startsWithElemSpacer(){return!1}endsWithElemSpacer(){return!1}};var jp=new Map,kp=class{constructor(){this.NO_PADDING=0;this.SMALL_PADDING=3;this.MEDIUM_PADDING=5;this.MEDIUM_LARGE_PADDING=8;this.LARGE_PADDING=10;this.TAB_HEIGHT=15;this.TAB_OFFSET_FROM_TOP=5;this.TAB_VERTICAL_OVERLAP=2.5;this.TAB_WIDTH=8;this.NOTCH_WIDTH=15;this.NOTCH_HEIGHT=4;this.MIN_BLOCK_WIDTH=12;this.EMPTY_BLOCK_SPACER_HEIGHT=16;this.CORNER_RADIUS=8;this.NOTCH_OFFSET_LEFT=15;this.STATEMENT_BOTTOM_SPACER=0;this.STATEMENT_INPUT_PADDING_LEFT=20;this.BETWEEN_STATEMENT_PADDING_Y=4;this.ADD_START_HATS=
1435
+ 1}isRow(a){return(a.type&this.ROW)>=1}isBetweenRowSpacer(a){return(a.type&this.BETWEEN_ROW_SPACER)>=1}isTopRow(a){return(a.type&this.TOP_ROW)>=1}isBottomRow(a){return(a.type&this.BOTTOM_ROW)>=1}isTopOrBottomRow(a){return this.isTopRow(a)||this.isBottomRow(a)}isInputRow(a){return(a.type&this.INPUT_ROW)>=1}},Q=new Mo;var No=class{constructor(a){this.centerline=this.xPos=this.height=this.width=0;this.constants_=a;this.type=Q.NONE;this.notchOffset=this.constants_.NOTCH_OFFSET_LEFT}};var Oo=class{constructor(a){this.elements=[];this.xPos=this.yPos=this.widthWithConnectedBlocks=this.minWidth=this.minHeight=this.width=this.height=0;this.hasStatement=this.hasExternalInput=!1;this.statementEdge=0;this.hasJaggedEdge=this.hasDummyInput=this.hasInlineInput=!1;this.align=null;this.constants_=a;this.type=Q.ROW;this.notchOffset=this.constants_.NOTCH_OFFSET_LEFT}getLastInput(){for(let a=this.elements.length-1;a>=0;a--){let b=this.elements[a];if(Q.isInput(b))return b}return null}measure(){throw Error("Unexpected attempt to measure a base Row.");
1436
+ }startsWithElemSpacer(){return!0}endsWithElemSpacer(){return!0}getFirstSpacer(){for(let a=0;a<this.elements.length;a++){let b=this.elements[a];if(Q.isInRowSpacer(b))return b}return null}getLastSpacer(){for(let a=this.elements.length-1;a>=0;a--){let b=this.elements[a];if(Q.isInRowSpacer(b))return b}return null}};var Po=class extends Oo{constructor(a){super(a);this.hasNextConnection=!1;this.connection=null;this.baseline=this.descenderHeight=0;this.type|=Q.BOTTOM_ROW}hasLeftSquareCorner(a){return!!a.outputConnection||!!a.getNextBlock()}hasRightSquareCorner(){return!0}measure(){var a=0,b=0,c=0;for(let d=0;d<this.elements.length;d++){let e=this.elements[d];b+=e.width;Q.isSpacer(e)||(Q.isNextConnection(e)?c=Math.max(c,e.height):a=Math.max(a,e.height))}this.width=Math.max(this.minWidth,b);this.height=Math.max(this.minHeight,
1437
+ a)+c;this.descenderHeight=c;this.widthWithConnectedBlocks=this.width}startsWithElemSpacer(){return!1}endsWithElemSpacer(){return!1}};var Qo=class extends No{constructor(a,b){super(a);this.connectionModel=b;this.type|=Q.CONNECTION;this.shape=this.constants_.shapeFor(b);this.isDynamicShape="isDynamic"in this.shape&&this.shape.isDynamic;this.highlighted=b.isHighlighted()}};var Ro=class extends Qo{constructor(a,b){super(a,b.connection);this.input=b;this.connectionOffsetY=this.connectionOffsetX=0;this.type|=Q.INPUT;this.align=b.align;this.connectedBlock=b.connection&&b.connection.targetBlock()?b.connection.targetBlock():null;a=b.connection.getInsertionMarker();this.connectedBlockHeight=this.connectedBlockWidth=0;this.connectedBlock&&(b=this.connectedBlock.getHeightWidth(),this.connectedBlockWidth=b.width,this.connectedBlockHeight=b.height);a&&(a=a.getHeightWidth(),this.connectedBlockWidth+=
1438
+ a.width,this.connectedBlockHeight+=a.height)}};var So=class extends Ro{constructor(a,b){super(a,b);this.height=0;this.type|=Q.EXTERNAL_VALUE_INPUT;if(this.connectedBlockHeight){if(a=this.connectionModel.getInsertionMarker())this.connectedBlockHeight=a.getHeightWidth().height;this.height=this.connectedBlockHeight-this.constants_.TAB_OFFSET_FROM_TOP-this.constants_.MEDIUM_PADDING}else this.height=this.shape.height;this.width=this.shape.width+this.constants_.EXTERNAL_VALUE_INPUT_PADDING;this.connectionOffsetY=this.constants_.TAB_OFFSET_FROM_TOP;
1439
+ this.connectionHeight=this.shape.height;this.connectionWidth=this.shape.width}};var To=class extends No{constructor(a,b,c){super(a);this.field=b;this.parentInput=c;this.isEditable=b.EDITABLE;this.flipRtl=b.getFlipRtl();this.type|=Q.FIELD;a=this.field.getSize();this.height=a.height;this.width=a.width}};var Xo=class extends No{constructor(a){super(a);this.type|=Q.HAT;this.height=this.constants_.START_HAT.height;this.width=this.constants_.START_HAT.width;this.ascenderHeight=this.height}};var Yo=class extends No{constructor(a,b){super(a);this.icon=b;this.flipRtl=!1;this.type|=Q.ICON;a=b.getSize();this.height=a.height;this.width=a.width}};var Zo=class extends No{constructor(a,b){super(a);this.type|=Q.SPACER|Q.IN_ROW_SPACER;this.width=b;this.height=this.constants_.SPACER_DEFAULT_HEIGHT}};var $o=class extends Ro{constructor(a,b){super(a,b);this.type|=Q.INLINE_INPUT;this.connectedBlockWidth||this.connectedBlockHeight?(this.width=this.connectedBlockWidth,this.height=this.connectedBlockHeight):(this.height=this.constants_.EMPTY_INLINE_INPUT_HEIGHT,this.width=this.constants_.EMPTY_INLINE_INPUT_PADDING);this.connectionHeight=this.isDynamicShape?this.shape.height(this.height):this.shape.height;this.connectionWidth=this.isDynamicShape?this.shape.width(this.height):this.shape.width;this.connectedBlockHeight||
1440
+ (this.width+=this.connectionWidth*(this.isDynamicShape?2:1));this.connectionOffsetY="connectionOffsetY"in this.shape?this.shape.connectionOffsetY(this.connectionHeight):this.constants_.TAB_OFFSET_FROM_TOP;this.connectionOffsetX="connectionOffsetX"in this.shape?this.shape.connectionOffsetX(this.connectionWidth):0}};var ap=class extends Oo{constructor(a){super(a);this.connectedBlockWidths=0;this.type|=Q.INPUT_ROW}measure(){this.width=this.minWidth;this.height=this.minHeight;var a=0;for(let b=0;b<this.elements.length;b++){let c=this.elements[b];this.width+=c.width;Q.isInput(c)&&(Q.isStatementInput(c)?a+=c.connectedBlockWidth:Q.isExternalInput(c)&&c.connectedBlockWidth!==0&&(a+=c.connectedBlockWidth-c.connectionWidth));Q.isSpacer(c)||(this.height=Math.max(this.height,c.height))}this.connectedBlockWidths=a;this.widthWithConnectedBlocks=
1441
+ this.width+a}endsWithElemSpacer(){return!this.hasExternalInput&&!this.hasStatement}};var bp=class extends No{constructor(a){super(a);this.type|=Q.JAGGED_EDGE;this.height=this.constants_.JAGGED_TEETH.height;this.width=this.constants_.JAGGED_TEETH.width}};var cp=class extends Qo{constructor(a,b){super(a,b);this.type|=Q.NEXT_CONNECTION;this.height=this.shape.height;this.width=this.shape.width;if(a=b.getInsertionMarker())this.height+=a.getHeightWidth().height}};var dp=class extends Qo{constructor(a,b){super(a,b);this.connectionOffsetX=0;this.type|=Q.OUTPUT_CONNECTION;this.height=this.isDynamicShape?0:this.shape.height;this.startX=this.width=this.isDynamicShape?0:this.shape.width;this.connectionOffsetY=this.constants_.TAB_OFFSET_FROM_TOP}};var ep=class extends Qo{constructor(a,b){super(a,b);this.type|=Q.PREVIOUS_CONNECTION;this.height=this.shape.height;this.width=this.shape.width}};var fp=class extends No{constructor(a,b){super(a);this.type=(b&&b!=="left"?Q.RIGHT_ROUND_CORNER:Q.LEFT_ROUND_CORNER)|Q.CORNER;this.width=this.constants_.CORNER_RADIUS;this.height=this.constants_.CORNER_RADIUS/2}};var gp=class extends Oo{constructor(a,b,c){super(a);this.height=b;this.width=c;this.precedesStatement=this.followsStatement=!1;this.widthWithConnectedBlocks=0;this.type|=Q.SPACER|Q.BETWEEN_ROW_SPACER;this.elements=[new Zo(this.constants_,c)]}measure(){}};var hp=class extends No{constructor(a,b){super(a);this.type=(b&&b!=="left"?Q.RIGHT_SQUARE_CORNER:Q.LEFT_SQUARE_CORNER)|Q.CORNER;this.width=this.height=this.constants_.NO_PADDING}};var ip=class extends Ro{constructor(a,b){super(a,b);this.type|=Q.STATEMENT_INPUT;this.height=this.connectedBlockHeight?this.connectedBlockHeight+this.constants_.STATEMENT_BOTTOM_SPACER:this.constants_.EMPTY_STATEMENT_INPUT_HEIGHT;this.width=this.constants_.STATEMENT_INPUT_NOTCH_OFFSET+this.shape.width}};var jp=class extends Oo{constructor(a){super(a);this.ascenderHeight=this.capline=0;this.hasPreviousConnection=!1;this.connection=null;this.type|=Q.TOP_ROW}hasLeftSquareCorner(a){var b=(a.hat?a.hat==="cap":this.constants_.ADD_START_HATS)&&!a.outputConnection&&!a.previousConnection,c=a.getPreviousBlock();return!!a.outputConnection||b||(c?c.getNextBlock()===a:!1)}hasRightSquareCorner(){return!0}measure(){var a=0,b=0,c=0;for(let d=0;d<this.elements.length;d++){let e=this.elements[d];b+=e.width;Q.isSpacer(e)||
1442
+ (Q.isHat(e)?c=Math.max(c,e.ascenderHeight):a=Math.max(a,e.height))}this.width=Math.max(this.minWidth,b);this.height=Math.max(this.minHeight,a)+c;this.capline=this.ascenderHeight=c;this.widthWithConnectedBlocks=this.width}startsWithElemSpacer(){return!1}endsWithElemSpacer(){return!1}};var kp=new Map,lp=class{constructor(){this.NO_PADDING=0;this.SMALL_PADDING=3;this.MEDIUM_PADDING=5;this.MEDIUM_LARGE_PADDING=8;this.LARGE_PADDING=10;this.TAB_HEIGHT=15;this.TAB_OFFSET_FROM_TOP=5;this.TAB_VERTICAL_OVERLAP=2.5;this.TAB_WIDTH=8;this.NOTCH_WIDTH=15;this.NOTCH_HEIGHT=4;this.MIN_BLOCK_WIDTH=12;this.EMPTY_BLOCK_SPACER_HEIGHT=16;this.CORNER_RADIUS=8;this.NOTCH_OFFSET_LEFT=15;this.STATEMENT_BOTTOM_SPACER=0;this.STATEMENT_INPUT_PADDING_LEFT=20;this.BETWEEN_STATEMENT_PADDING_Y=4;this.ADD_START_HATS=
1438
1443
  !1;this.START_HAT_HEIGHT=15;this.START_HAT_WIDTH=100;this.SPACER_DEFAULT_HEIGHT=15;this.MIN_BLOCK_HEIGHT=24;this.EMPTY_INLINE_INPUT_PADDING=14.5;this.EXTERNAL_VALUE_INPUT_PADDING=2;this.JAGGED_TEETH_HEIGHT=12;this.JAGGED_TEETH_WIDTH=6;this.FIELD_TEXT_FONTSIZE=11;this.FIELD_TEXT_FONTWEIGHT="normal";this.FIELD_TEXT_FONTFAMILY="sans-serif";this.FIELD_TEXT_BASELINE=this.FIELD_TEXT_HEIGHT=-1;this.FIELD_BORDER_RECT_RADIUS=4;this.FIELD_BORDER_RECT_HEIGHT=16;this.FIELD_BORDER_RECT_X_PADDING=5;this.FIELD_BORDER_RECT_Y_PADDING=
1439
1444
  3;this.FIELD_BORDER_RECT_COLOUR="#fff";this.FIELD_DROPDOWN_SVG_ARROW=this.FIELD_DROPDOWN_COLOURED_DIV=this.FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW=!1;this.FIELD_DROPDOWN_SVG_ARROW_SIZE=12;this.FIELD_COLOUR_FULL_BLOCK=this.FIELD_TEXTINPUT_BOX_SHADOW=!1;this.FIELD_COLOUR_DEFAULT_WIDTH=26;this.defs=null;this.embossFilterId="";this.embossFilter=null;this.disabledPatternId="";this.disabledPattern=null;this.debugFilterId="";this.debugFilter=null;this.CURSOR_COLOUR="#cc0a0a";this.MARKER_COLOUR="#4286f4";this.CURSOR_WS_WIDTH=
1440
1445
  100;this.WS_CURSOR_HEIGHT=5;this.CURSOR_STACK_PADDING=10;this.CURSOR_BLOCK_PADDING=2;this.CURSOR_STROKE_WIDTH=4;this.FULL_BLOCK_FIELDS=!1;this.INSERTION_MARKER_COLOUR="#000000";this.INSERTION_MARKER_OPACITY=.2;this.SHAPES={PUZZLE:1,NOTCH:2};this.TALL_INPUT_FIELD_OFFSET_Y=this.MEDIUM_PADDING;this.DUMMY_INPUT_SHADOW_MIN_HEIGHT=this.DUMMY_INPUT_MIN_HEIGHT=this.TAB_HEIGHT;this.STATEMENT_INPUT_NOTCH_OFFSET=this.NOTCH_OFFSET_LEFT;this.TOP_ROW_MIN_HEIGHT=this.MEDIUM_PADDING;this.TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT=
1441
- this.LARGE_PADDING;this.BOTTOM_ROW_MIN_HEIGHT=this.MEDIUM_PADDING;this.BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT=this.LARGE_PADDING;this.EMPTY_INLINE_INPUT_HEIGHT=this.TAB_HEIGHT+11;this.EMPTY_STATEMENT_INPUT_HEIGHT=this.MIN_BLOCK_HEIGHT;this.START_POINT=Ch(0,0);this.FIELD_TEXT_BASELINE_CENTER=!0;this.FIELD_DROPDOWN_BORDER_RECT_HEIGHT=this.FIELD_BORDER_RECT_HEIGHT;this.FIELD_DROPDOWN_SVG_ARROW_PADDING=this.FIELD_BORDER_RECT_X_PADDING;this.FIELD_DROPDOWN_SVG_ARROW_DATAURI="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMi43MSIgaGVpZ2h0PSI4Ljc5IiB2aWV3Qm94PSIwIDAgMTIuNzEgOC43OSI+PHRpdGxlPmRyb3Bkb3duLWFycm93PC90aXRsZT48ZyBvcGFjaXR5PSIwLjEiPjxwYXRoIGQ9Ik0xMi43MSwyLjQ0QTIuNDEsMi40MSwwLDAsMSwxMiw0LjE2TDguMDgsOC4wOGEyLjQ1LDIuNDUsMCwwLDEtMy40NSwwTDAuNzIsNC4xNkEyLjQyLDIuNDIsMCwwLDEsMCwyLjQ0LDIuNDgsMi40OCwwLDAsMSwuNzEuNzFDMSwwLjQ3LDEuNDMsMCw2LjM2LDBTMTEuNzUsMC40NiwxMiwuNzFBMi40NCwyLjQ0LDAsMCwxLDEyLjcxLDIuNDRaIiBmaWxsPSIjMjMxZjIwIi8+PC9nPjxwYXRoIGQ9Ik02LjM2LDcuNzlhMS40MywxLjQzLDAsMCwxLTEtLjQyTDEuNDIsMy40NWExLjQ0LDEuNDQsMCwwLDEsMC0yYzAuNTYtLjU2LDkuMzEtMC41Niw5Ljg3LDBhMS40NCwxLjQ0LDAsMCwxLDAsMkw3LjM3LDcuMzdBMS40MywxLjQzLDAsMCwxLDYuMzYsNy43OVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=";
1446
+ this.LARGE_PADDING;this.BOTTOM_ROW_MIN_HEIGHT=this.MEDIUM_PADDING;this.BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT=this.LARGE_PADDING;this.EMPTY_INLINE_INPUT_HEIGHT=this.TAB_HEIGHT+11;this.EMPTY_STATEMENT_INPUT_HEIGHT=this.MIN_BLOCK_HEIGHT;this.START_POINT=Dh(0,0);this.FIELD_TEXT_BASELINE_CENTER=!0;this.FIELD_DROPDOWN_BORDER_RECT_HEIGHT=this.FIELD_BORDER_RECT_HEIGHT;this.FIELD_DROPDOWN_SVG_ARROW_PADDING=this.FIELD_BORDER_RECT_X_PADDING;this.FIELD_DROPDOWN_SVG_ARROW_DATAURI="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMi43MSIgaGVpZ2h0PSI4Ljc5IiB2aWV3Qm94PSIwIDAgMTIuNzEgOC43OSI+PHRpdGxlPmRyb3Bkb3duLWFycm93PC90aXRsZT48ZyBvcGFjaXR5PSIwLjEiPjxwYXRoIGQ9Ik0xMi43MSwyLjQ0QTIuNDEsMi40MSwwLDAsMSwxMiw0LjE2TDguMDgsOC4wOGEyLjQ1LDIuNDUsMCwwLDEtMy40NSwwTDAuNzIsNC4xNkEyLjQyLDIuNDIsMCwwLDEsMCwyLjQ0LDIuNDgsMi40OCwwLDAsMSwuNzEuNzFDMSwwLjQ3LDEuNDMsMCw2LjM2LDBTMTEuNzUsMC40NiwxMiwuNzFBMi40NCwyLjQ0LDAsMCwxLDEyLjcxLDIuNDRaIiBmaWxsPSIjMjMxZjIwIi8+PC9nPjxwYXRoIGQ9Ik02LjM2LDcuNzlhMS40MywxLjQzLDAsMCwxLTEtLjQyTDEuNDIsMy40NWExLjQ0LDEuNDQsMCwwLDEsMC0yYzAuNTYtLjU2LDkuMzEtMC41Niw5Ljg3LDBhMS40NCwxLjQ0LDAsMCwxLDAsMkw3LjM3LDcuMzdBMS40MywxLjQzLDAsMCwxLDYuMzYsNy43OVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=";
1442
1447
  this.FIELD_COLOUR_DEFAULT_HEIGHT=this.FIELD_BORDER_RECT_HEIGHT;this.FIELD_CHECKBOX_X_OFFSET=this.FIELD_BORDER_RECT_X_PADDING-3;this.randomIdentifier=String(Math.random()).substring(2)}init(){this.JAGGED_TEETH=this.makeJaggedTeeth();this.NOTCH=this.makeNotch();this.START_HAT=this.makeStartHat();this.PUZZLE_TAB=this.makePuzzleTab();this.INSIDE_CORNERS=this.makeInsideCorners();this.OUTSIDE_CORNERS=this.makeOutsideCorners()}setTheme(a){this.blockStyles=Object.create(null);var b=a.blockStyles;for(let c in b)this.blockStyles[c]=
1443
1448
  this.validatedBlockStyle_(b[c]);this.setDynamicProperties_(a)}setDynamicProperties_(a){this.setFontConstants_(a);this.setComponentConstants_(a);this.ADD_START_HATS=a.startHats!==void 0?a.startHats:this.ADD_START_HATS}setFontConstants_(a){a.fontStyle&&a.fontStyle.family&&(this.FIELD_TEXT_FONTFAMILY=a.fontStyle.family);a.fontStyle&&a.fontStyle.weight&&(this.FIELD_TEXT_FONTWEIGHT=a.fontStyle.weight);a.fontStyle&&a.fontStyle.size&&(this.FIELD_TEXT_FONTSIZE=a.fontStyle.size);a=Ya("Hg",this.FIELD_TEXT_FONTSIZE+
1444
1449
  "pt",this.FIELD_TEXT_FONTWEIGHT,this.FIELD_TEXT_FONTFAMILY);this.FIELD_TEXT_HEIGHT=a.height;this.FIELD_TEXT_BASELINE=a.baseline}setComponentConstants_(a){this.CURSOR_COLOUR=a.getComponentStyle("cursorColour")||this.CURSOR_COLOUR;this.MARKER_COLOUR=a.getComponentStyle("markerColour")||this.MARKER_COLOUR;this.INSERTION_MARKER_COLOUR=a.getComponentStyle("insertionMarkerColour")||this.INSERTION_MARKER_COLOUR;this.INSERTION_MARKER_OPACITY=Number(a.getComponentStyle("insertionMarkerOpacity"))||this.INSERTION_MARKER_OPACITY}getBlockStyleForColour(a){var b=
1445
- "auto_"+a;this.blockStyles[b]||(this.blockStyles[b]=this.createBlockStyle_(a));return{style:this.blockStyles[b],name:b}}getBlockStyle(a){return this.blockStyles[a||""]||(a&&a.startsWith("auto_")?this.getBlockStyleForColour(a.substring(5)).style:this.createBlockStyle_("#000000"))}createBlockStyle_(a){return this.validatedBlockStyle_({colourPrimary:a})}validatedBlockStyle_(a){var b={};a&&Object.assign(b,a);a=hg(b.colourPrimary||"#000");b.colourPrimary=a.hex;b.colourSecondary=b.colourSecondary?hg(b.colourSecondary).hex:
1446
- this.generateSecondaryColour_(b.colourPrimary);b.colourTertiary=b.colourTertiary?hg(b.colourTertiary).hex:this.generateTertiaryColour_(b.colourPrimary);b.hat=b.hat||"";return b}generateSecondaryColour_(a){return ag("#fff",a,.6)||a}generateTertiaryColour_(a){return ag("#fff",a,.3)||a}dispose(){this.embossFilter&&Oa(this.embossFilter);this.disabledPattern&&Oa(this.disabledPattern);this.debugFilter&&Oa(this.debugFilter)}makeJaggedTeeth(){var a=this.JAGGED_TEETH_HEIGHT,b=this.JAGGED_TEETH_WIDTH,c=Eh([I(b,
1447
- a/4),I(-b*2,a/2),I(b,a/4)]);return{height:a,width:b,path:c}}makeStartHat(){var a=this.START_HAT_HEIGHT,b=this.START_HAT_WIDTH,c=Ah("c",[I(30,-a),I(70,-a),I(b,0)]);return{height:a*.75,width:b,path:c}}makePuzzleTab(){function a(f){f=f?-1:1;var g=-f,h=c/2,m=h+2.5,z=h+.5,E=I(-b,f*h);h=I(b,f*h);return Ah("c",[I(0,f*m),I(-b,g*z),E])+Ah("s",[I(b,g*2.5),h])}var b=this.TAB_WIDTH,c=this.TAB_HEIGHT,d=a(!0),e=a(!1);return{type:this.SHAPES.PUZZLE,width:b,height:c,pathDown:e,pathUp:d}}makeNotch(){function a(g){return Eh([I(g*
1448
- d,c),I(g*3,0),I(g*d,-c)])}var b=this.NOTCH_WIDTH,c=this.NOTCH_HEIGHT,d=(b-3)/2,e=a(1),f=a(-1);return{type:this.SHAPES.NOTCH,width:b,height:c,pathLeft:e,pathRight:f}}makeInsideCorners(){var a=this.CORNER_RADIUS,b=Fh("a","0 0,0",a,I(-a,a)),c=Fh("a","0 0,0",a,I(a,a));return{width:a,height:a,pathTop:b,pathBottom:c}}makeOutsideCorners(){var a=this.CORNER_RADIUS,b=Ch(0,a)+Fh("a","0 0,1",a,I(a,-a)),c=Fh("a","0 0,1",a,I(a,a)),d=Fh("a","0 0,1",a,I(-a,-a)),e=Fh("a","0 0,1",a,I(-a,a));return{topLeft:b,topRight:c,
1450
+ "auto_"+a;this.blockStyles[b]||(this.blockStyles[b]=this.createBlockStyle_(a));return{style:this.blockStyles[b],name:b}}getBlockStyle(a){return this.blockStyles[a||""]||(a&&a.startsWith("auto_")?this.getBlockStyleForColour(a.substring(5)).style:this.createBlockStyle_("#000000"))}createBlockStyle_(a){return this.validatedBlockStyle_({colourPrimary:a})}validatedBlockStyle_(a){var b={};a&&Object.assign(b,a);a=ig(b.colourPrimary||"#000");b.colourPrimary=a.hex;b.colourSecondary=b.colourSecondary?ig(b.colourSecondary).hex:
1451
+ this.generateSecondaryColour_(b.colourPrimary);b.colourTertiary=b.colourTertiary?ig(b.colourTertiary).hex:this.generateTertiaryColour_(b.colourPrimary);b.hat=b.hat||"";return b}generateSecondaryColour_(a){return bg("#fff",a,.6)||a}generateTertiaryColour_(a){return bg("#fff",a,.3)||a}dispose(){this.embossFilter&&Oa(this.embossFilter);this.disabledPattern&&Oa(this.disabledPattern);this.debugFilter&&Oa(this.debugFilter)}makeJaggedTeeth(){var a=this.JAGGED_TEETH_HEIGHT,b=this.JAGGED_TEETH_WIDTH,c=Fh([H(b,
1452
+ a/4),H(-b*2,a/2),H(b,a/4)]);return{height:a,width:b,path:c}}makeStartHat(){var a=this.START_HAT_HEIGHT,b=this.START_HAT_WIDTH,c=Bh("c",[H(30,-a),H(70,-a),H(b,0)]);return{height:a*.75,width:b,path:c}}makePuzzleTab(){function a(f){f=f?-1:1;var g=-f,h=c/2,m=h+2.5,z=h+.5,E=H(-b,f*h);h=H(b,f*h);return Bh("c",[H(0,f*m),H(-b,g*z),E])+Bh("s",[H(b,g*2.5),h])}var b=this.TAB_WIDTH,c=this.TAB_HEIGHT,d=a(!0),e=a(!1);return{type:this.SHAPES.PUZZLE,width:b,height:c,pathDown:e,pathUp:d}}makeNotch(){function a(g){return Fh([H(g*
1453
+ d,c),H(g*3,0),H(g*d,-c)])}var b=this.NOTCH_WIDTH,c=this.NOTCH_HEIGHT,d=(b-3)/2,e=a(1),f=a(-1);return{type:this.SHAPES.NOTCH,width:b,height:c,pathLeft:e,pathRight:f}}makeInsideCorners(){var a=this.CORNER_RADIUS,b=Gh("a","0 0,0",a,H(-a,a)),c=Gh("a","0 0,0",a,H(a,a));return{width:a,height:a,pathTop:b,pathBottom:c}}makeOutsideCorners(){var a=this.CORNER_RADIUS,b=Dh(0,a)+Gh("a","0 0,1",a,H(a,-a)),c=Gh("a","0 0,1",a,H(a,a)),d=Gh("a","0 0,1",a,H(-a,-a)),e=Gh("a","0 0,1",a,H(-a,a));return{topLeft:b,topRight:c,
1449
1454
  bottomRight:e,bottomLeft:d,rightHeight:a}}shapeFor(a){switch(a.type){case G.INPUT_VALUE:case G.OUTPUT_VALUE:return this.PUZZLE_TAB;case G.PREVIOUS_STATEMENT:case G.NEXT_STATEMENT:return this.NOTCH;default:throw Error("Unknown connection type");}}createDom(a,b,c){if(c){let d=c.getRootNode();this.injectCSS_(d,b)}this.defs=r(q.DEFS,{},a);a=r(q.FILTER,{id:"blocklyEmbossFilter"+this.randomIdentifier},this.defs);r(q.FEGAUSSIANBLUR,{"in":"SourceAlpha",stdDeviation:1,result:"blur"},a);b=r(q.FESPECULARLIGHTING,
1450
1455
  {"in":"blur",surfaceScale:1,specularConstant:.5,specularExponent:10,"lighting-color":"white",result:"specOut"},a);r(q.FEPOINTLIGHT,{x:-5E3,y:-1E4,z:2E4},b);r(q.FECOMPOSITE,{"in":"specOut",in2:"SourceAlpha",operator:"in",result:"specOut"},a);r(q.FECOMPOSITE,{"in":"SourceGraphic",in2:"specOut",operator:"arithmetic",k1:0,k2:1,k3:1,k4:0},a);this.embossFilterId=a.id;this.embossFilter=a;a=r(q.PATTERN,{id:"blocklyDisabledPattern"+this.randomIdentifier,patternUnits:"userSpaceOnUse",width:10,height:10},this.defs);
1451
1456
  r(q.RECT,{width:10,height:10,fill:"#aaa"},a);r(q.PATH,{d:"M 0 0 L 10 10 M 10 0 L 0 10",stroke:"#cc0"},a);this.disabledPatternId=a.id;this.disabledPattern=a;this.createDebugFilter();c&&(c.style.setProperty("--blocklyEmbossFilter",`url(#${this.embossFilterId})`),c.style.setProperty("--blocklyDisabledPattern",`url(#${this.disabledPatternId})`),c.style.setProperty("--blocklyDebugFilter",`url(#${this.debugFilterId})`))}createDebugFilter(){if(!this.debugFilter){let a=r(q.FILTER,{id:"blocklyDebugFilter"+
1452
- this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},this.defs),b=r(q.FECOMPONENTTRANSFER,{result:"outBlur"},a);r(q.FEFUNCA,{type:"table",tableValues:"0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"},b);r(q.FEFLOOD,{"flood-color":"#ff0000","flood-opacity":.5,result:"outColor"},a);r(q.FECOMPOSITE,{"in":"outColor",in2:"outBlur",operator:"in",result:"outGlow"},a);this.debugFilterId=a.id;this.debugFilter=a}}injectCSS_(a,b){if(typeof window!=="undefined"){var c;if((c=jp.get(b))==null||!c.has(a)){c=document.createElement("style");
1453
- c.className="blockly-renderer-style";c.textContent=this.getCSS_(b).join("\n");(typeof globalThis.ShadowRoot!=="undefined"&&a instanceof ShadowRoot?a:document.head).prepend(c);var d;c=(d=jp.get(b))!=null?d:new WeakSet;c.add(a);jp.set(b,c)}}}getCSS_(a){return[`${a}.injectionDiv {`,"--blockly-active-node-color: #fc3;","}",`${a} .blocklyText, `,`${a} .blocklyFlyoutLabelText {`,`font: ${this.FIELD_TEXT_FONTWEIGHT} ${this.FIELD_TEXT_FONTSIZE}pt ${this.FIELD_TEXT_FONTFAMILY};`,"}",`${a} .blocklyText {`,
1457
+ this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},this.defs),b=r(q.FECOMPONENTTRANSFER,{result:"outBlur"},a);r(q.FEFUNCA,{type:"table",tableValues:"0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"},b);r(q.FEFLOOD,{"flood-color":"#ff0000","flood-opacity":.5,result:"outColor"},a);r(q.FECOMPOSITE,{"in":"outColor",in2:"outBlur",operator:"in",result:"outGlow"},a);this.debugFilterId=a.id;this.debugFilter=a}}injectCSS_(a,b){if(typeof window!=="undefined"){var c;if((c=kp.get(b))==null||!c.has(a)){c=document.createElement("style");
1458
+ c.className="blockly-renderer-style";c.textContent=this.getCSS_(b).join("\n");(typeof globalThis.ShadowRoot!=="undefined"&&a instanceof ShadowRoot?a:document.head).prepend(c);var d;c=(d=kp.get(b))!=null?d:new WeakSet;c.add(a);kp.set(b,c)}}}getCSS_(a){return[`${a}.injectionDiv {`,"--blockly-active-node-color: #fc3;","}",`${a} .blocklyText, `,`${a} .blocklyFlyoutLabelText {`,`font: ${this.FIELD_TEXT_FONTWEIGHT} ${this.FIELD_TEXT_FONTSIZE}pt ${this.FIELD_TEXT_FONTFAMILY};`,"}",`${a} .blocklyText {`,
1454
1459
  "fill: #fff;","}",`${a} .blocklyNonEditableField>rect,`,`${a} .blocklyEditableField>rect {`,`fill: ${this.FIELD_BORDER_RECT_COLOUR};`,"fill-opacity: .6;","stroke: none;","}",`${a} .blocklyNonEditableField>text,`,`${a} .blocklyEditableField>text {`,"fill: #000;","}",`${a} .blocklyFlyoutLabelText {`,"fill: #000;","}",`${a} .blocklyText.blocklyBubbleText {`,"fill: #000;","}",`${a} .blocklyEditableField:not(.blocklyEditing):hover>rect {`,"stroke: #fff;","stroke-width: 2;","}",`${a} .blocklyHtmlInput {`,
1455
1460
  `font-family: ${this.FIELD_TEXT_FONTFAMILY};`,`font-weight: ${this.FIELD_TEXT_FONTWEIGHT};`,"}",`${a} .blocklySelected>.blocklyPath {`,"stroke: #fc3;","stroke-width: 3px;","}",`${a} .blocklyHighlightedConnectionPathVisible {`,"stroke: #fc3;","}",`${a} .blocklyReplaceable .blocklyPath {`,"fill-opacity: .5;","}",`${a} .blocklyReplaceable .blocklyPathLight,`,`${a} .blocklyReplaceable .blocklyPathDark {`,"display: none;","}",`${a} .blocklyInsertionMarker>.blocklyPath {`,`fill-opacity: ${this.INSERTION_MARKER_OPACITY};`,
1456
- "stroke: none;","}"]}};var lp=class{constructor(a,b){this.inlinePath_=this.outlinePath_="";this.block_=a;this.info_=b;this.topLeft_=a.getRelativeToSurfaceXY();this.constants_=b.getRenderer().getConstants()}draw(){this.drawOutline_();this.drawInternals_();this.updateConnectionHighlights();this.block_.pathObject.setPath(this.outlinePath_+"\n"+this.inlinePath_);this.info_.RTL&&this.block_.pathObject.flipRTL();this.recordSizeOnBlock_()}recordSizeOnBlock_(){this.block_.height=this.info_.height;this.block_.width=this.info_.widthWithChildren;
1457
- this.block_.childlessWidth=this.info_.width}drawOutline_(){this.drawTop_();for(let a=1;a<this.info_.rows.length-1;a++){let b=this.info_.rows[a];b.hasJaggedEdge?this.drawJaggedEdge_(b):b.hasStatement?this.drawStatementInput_(b):b.hasExternalInput?this.drawValueInput_(b):this.drawRightSideRow_(b)}this.drawBottom_();this.drawLeft_()}drawTop_(){var a=this.info_.topRow,b=a.elements;this.positionPreviousConnection_();this.outlinePath_+=Ch(a.xPos,this.info_.startY);for(let c=0,d;d=b[c];c++)Q.isLeftRoundedCorner(d)?
1458
- this.outlinePath_+=this.constants_.OUTSIDE_CORNERS.topLeft:Q.isRightRoundedCorner(d)?this.outlinePath_+=this.constants_.OUTSIDE_CORNERS.topRight:Q.isPreviousConnection(d)?this.outlinePath_+=d.shape.pathLeft:Q.isHat(d)?this.outlinePath_+=this.constants_.START_HAT.path:Q.isSpacer(d)&&(this.outlinePath_+=J("h",d.width));this.outlinePath_+=J("v",a.height-a.ascenderHeight)}drawJaggedEdge_(a){this.outlinePath_+=this.constants_.JAGGED_TEETH.path+J("v",a.height-this.constants_.JAGGED_TEETH.height)}drawValueInput_(a){var b=
1459
- a.getLastInput();this.positionExternalValueConnection_(a);var c=b.shape.isDynamic?b.shape.pathDown(b.height):b.shape.pathDown;this.outlinePath_+=J("H",b.xPos+b.width)+c+J("v",a.height-b.connectionHeight)}drawStatementInput_(a){var b=a.getLastInput();if(b){var c=b.xPos+b.notchOffset+b.shape.width;b=b.shape.pathRight+J("h",-(b.notchOffset-this.constants_.INSIDE_CORNERS.width))+this.constants_.INSIDE_CORNERS.pathTop;var d=a.height-2*this.constants_.INSIDE_CORNERS.height;this.outlinePath_+=J("H",c)+b+
1460
- J("v",d)+this.constants_.INSIDE_CORNERS.pathBottom+J("H",a.xPos+a.width);this.positionStatementInputConnection_(a)}}drawRightSideRow_(a){this.outlinePath_+=J("V",a.yPos+a.height)}drawBottom_(){var a=this.info_.bottomRow,b=a.elements;this.positionNextConnection_();var c=0,d="";for(let e=b.length-1,f;f=b[e];e--)Q.isNextConnection(f)?d+=f.shape.pathRight:Q.isLeftSquareCorner(f)?d+=J("H",a.xPos):Q.isLeftRoundedCorner(f)?d+=this.constants_.OUTSIDE_CORNERS.bottomLeft:Q.isRightRoundedCorner(f)?(d+=this.constants_.OUTSIDE_CORNERS.bottomRight,
1461
- c=this.constants_.OUTSIDE_CORNERS.rightHeight):Q.isSpacer(f)&&(d+=J("h",f.width*-1));this.outlinePath_+=J("V",a.baseline-c);this.outlinePath_+=d}drawLeft_(){var a=this.info_.outputConnection;this.positionOutputConnection_();if(a){let b=a.connectionOffsetY+a.height;a=a.shape.isDynamic?a.shape.pathUp(a.height):a.shape.pathUp;this.outlinePath_+=J("V",b)+a}this.outlinePath_+="z"}drawInternals_(){for(let a=0,b;b=this.info_.rows[a];a++)for(let c=0,d;d=b.elements[c];c++)Q.isInlineInput(d)?this.drawInlineInput_(d):
1461
+ "stroke: none;","}"]}};var mp=class{constructor(a,b){this.inlinePath_=this.outlinePath_="";this.block_=a;this.info_=b;this.topLeft_=a.getRelativeToSurfaceXY();this.constants_=b.getRenderer().getConstants()}draw(){this.drawOutline_();this.drawInternals_();this.updateConnectionHighlights();this.block_.pathObject.setPath(this.outlinePath_+"\n"+this.inlinePath_);this.info_.RTL&&this.block_.pathObject.flipRTL();this.recordSizeOnBlock_()}recordSizeOnBlock_(){this.block_.height=this.info_.height;this.block_.width=this.info_.widthWithChildren;
1462
+ this.block_.childlessWidth=this.info_.width}drawOutline_(){this.drawTop_();for(let a=1;a<this.info_.rows.length-1;a++){let b=this.info_.rows[a];b.hasJaggedEdge?this.drawJaggedEdge_(b):b.hasStatement?this.drawStatementInput_(b):b.hasExternalInput?this.drawValueInput_(b):this.drawRightSideRow_(b)}this.drawBottom_();this.drawLeft_()}drawTop_(){var a=this.info_.topRow,b=a.elements;this.positionPreviousConnection_();this.outlinePath_+=Dh(a.xPos,this.info_.startY);for(let c=0,d;d=b[c];c++)Q.isLeftRoundedCorner(d)?
1463
+ this.outlinePath_+=this.constants_.OUTSIDE_CORNERS.topLeft:Q.isRightRoundedCorner(d)?this.outlinePath_+=this.constants_.OUTSIDE_CORNERS.topRight:Q.isPreviousConnection(d)?this.outlinePath_+=d.shape.pathLeft:Q.isHat(d)?this.outlinePath_+=this.constants_.START_HAT.path:Q.isSpacer(d)&&(this.outlinePath_+=I("h",d.width));this.outlinePath_+=I("v",a.height-a.ascenderHeight)}drawJaggedEdge_(a){this.outlinePath_+=this.constants_.JAGGED_TEETH.path+I("v",a.height-this.constants_.JAGGED_TEETH.height)}drawValueInput_(a){var b=
1464
+ a.getLastInput();this.positionExternalValueConnection_(a);var c=b.shape.isDynamic?b.shape.pathDown(b.height):b.shape.pathDown;this.outlinePath_+=I("H",b.xPos+b.width)+c+I("v",a.height-b.connectionHeight)}drawStatementInput_(a){var b=a.getLastInput();if(b){var c=b.xPos+b.notchOffset+b.shape.width;b=b.shape.pathRight+I("h",-(b.notchOffset-this.constants_.INSIDE_CORNERS.width))+this.constants_.INSIDE_CORNERS.pathTop;var d=a.height-2*this.constants_.INSIDE_CORNERS.height;this.outlinePath_+=I("H",c)+b+
1465
+ I("v",d)+this.constants_.INSIDE_CORNERS.pathBottom+I("H",a.xPos+a.width);this.positionStatementInputConnection_(a)}}drawRightSideRow_(a){this.outlinePath_+=I("V",a.yPos+a.height)}drawBottom_(){var a=this.info_.bottomRow,b=a.elements;this.positionNextConnection_();var c=0,d="";for(let e=b.length-1,f;f=b[e];e--)Q.isNextConnection(f)?d+=f.shape.pathRight:Q.isLeftSquareCorner(f)?d+=I("H",a.xPos):Q.isLeftRoundedCorner(f)?d+=this.constants_.OUTSIDE_CORNERS.bottomLeft:Q.isRightRoundedCorner(f)?(d+=this.constants_.OUTSIDE_CORNERS.bottomRight,
1466
+ c=this.constants_.OUTSIDE_CORNERS.rightHeight):Q.isSpacer(f)&&(d+=I("h",f.width*-1));this.outlinePath_+=I("V",a.baseline-c);this.outlinePath_+=d}drawLeft_(){var a=this.info_.outputConnection;this.positionOutputConnection_();if(a){let b=a.connectionOffsetY+a.height;a=a.shape.isDynamic?a.shape.pathUp(a.height):a.shape.pathUp;this.outlinePath_+=I("V",b)+a}this.outlinePath_+="z"}drawInternals_(){for(let a=0,b;b=this.info_.rows[a];a++)for(let c=0,d;d=b.elements[c];c++)Q.isInlineInput(d)?this.drawInlineInput_(d):
1462
1467
  (Q.isIcon(d)||Q.isField(d))&&this.layoutField_(d)}layoutField_(a){var b=a.centerline-a.height/2,c=a.xPos,d="";this.info_.RTL&&(c=-(c+a.width),a.flipRtl&&(c+=a.width,d="scale(-1 1)"));Q.isIcon(a)?(d=a.icon,d.setOffsetInBlock(new D(c,b)),this.info_.isInsertionMarker&&d.hideForInsertionMarker()):(a=a.field.getSvgRoot(),a.setAttribute("transform","translate("+c+","+b+")"+d),this.info_.isInsertionMarker&&a.setAttribute("display","none"))}drawInlineInput_(a){var b=a.width,c=a.height,d=a.connectionOffsetY,
1463
- e=a.connectionHeight+d;this.inlinePath_+=Bh(a.xPos+a.connectionWidth,a.centerline-c/2)+J("v",d)+a.shape.pathDown+J("v",c-e)+J("h",b-a.connectionWidth)+J("v",-c)+"z";this.positionInlineInputConnection_(a)}positionInlineInputConnection_(a){var b=a.centerline-a.height/2;if(a.connectionModel){let c=a.xPos+a.connectionWidth+a.connectionOffsetX;this.info_.RTL&&(c*=-1);a.connectionModel.setOffsetInBlock(c,b+a.connectionOffsetY)}}positionStatementInputConnection_(a){var b=a.getLastInput();if(b==null?0:b.connectionModel){let c=
1468
+ e=a.connectionHeight+d;this.inlinePath_+=Ch(a.xPos+a.connectionWidth,a.centerline-c/2)+I("v",d)+a.shape.pathDown+I("v",c-e)+I("h",b-a.connectionWidth)+I("v",-c)+"z";this.positionInlineInputConnection_(a)}positionInlineInputConnection_(a){var b=a.centerline-a.height/2;if(a.connectionModel){let c=a.xPos+a.connectionWidth+a.connectionOffsetX;this.info_.RTL&&(c*=-1);a.connectionModel.setOffsetInBlock(c,b+a.connectionOffsetY)}}positionStatementInputConnection_(a){var b=a.getLastInput();if(b==null?0:b.connectionModel){let c=
1464
1469
  a.xPos+a.statementEdge+b.notchOffset;this.info_.RTL&&(c*=-1);b.connectionModel.setOffsetInBlock(c,a.yPos)}}positionExternalValueConnection_(a){var b=a.getLastInput();if(b&&b.connectionModel){let c=a.xPos+a.width;this.info_.RTL&&(c*=-1);b.connectionModel.setOffsetInBlock(c,a.yPos)}}positionPreviousConnection_(){var a=this.info_.topRow;if(a.connection){let b=a.xPos+a.notchOffset;a.connection.connectionModel.setOffsetInBlock(this.info_.RTL?-b:b,0)}}positionNextConnection_(){var a=this.info_.bottomRow;
1465
- if(a.connection){let b=a.connection,c=b.xPos;b.connectionModel.setOffsetInBlock(this.info_.RTL?-c:c,a.baseline)}}positionOutputConnection_(){if(this.info_.outputConnection){var a=this.info_.startX+this.info_.outputConnection.connectionOffsetX;a=this.info_.RTL?-a:a;let b;(b=this.block_.outputConnection)==null||b.setOffsetInBlock(a,this.info_.outputConnection.connectionOffsetY)}}updateConnectionHighlights(){for(let a of this.info_.rows)for(let b of a.elements){if(!(b instanceof Po))continue;let c=this.drawConnectionHighlightPath(b);
1470
+ if(a.connection){let b=a.connection,c=b.xPos;b.connectionModel.setOffsetInBlock(this.info_.RTL?-c:c,a.baseline)}}positionOutputConnection_(){if(this.info_.outputConnection){var a=this.info_.startX+this.info_.outputConnection.connectionOffsetX;a=this.info_.RTL?-a:a;let b;(b=this.block_.outputConnection)==null||b.setOffsetInBlock(a,this.info_.outputConnection.connectionOffsetY)}}updateConnectionHighlights(){for(let a of this.info_.rows)for(let b of a.elements){if(!(b instanceof Qo))continue;let c=this.drawConnectionHighlightPath(b);
1466
1471
  c&&(b.connectionModel.setAriaRole(c),c.classList.toggle("blocklyHighlightedConnectionPathVisible",b.highlighted))}}drawConnectionHighlightPath(a){var b=a.connectionModel;a=b.type===G.INPUT_VALUE||b.type===G.OUTPUT_VALUE?this.getExpressionConnectionHighlightPath(a):this.getStatementConnectionHighlightPath(a);var c=b.getSourceBlock(),d,e;return(e=(d=c.pathObject).addConnectionHighlight)==null?void 0:e.call(d,b,a,b.getOffsetInBlock(),c.RTL)}getExpressionConnectionHighlightPath(a){var b="";if(a.shape.isDynamic)b=
1467
- a.shape.pathDown(a.height);else{var c=a.shape;c.pathDown!==void 0&&c.pathUp!==void 0&&(b=a.shape.pathDown)}a=this.constants_.TAB_OFFSET_FROM_TOP;return Ch(0,-a)+J("v",a)+b+J("v",a)}getStatementConnectionHighlightPath(a){var b=a.shape;if(b.pathLeft===void 0||b.pathRight===void 0)throw Error("Statement connections should have notch shapes");b=this.constants_.NOTCH_OFFSET_LEFT-this.constants_.CORNER_RADIUS;return Ch(-b,0)+J("h",b)+a.shape.pathLeft+J("h",b)}};var mp=class{constructor(a,b){this.statementEdge=this.width=this.widthWithChildren=this.height=0;this.rows=[];this.inputRows=[];this.startY=this.startX=0;this.renderer_=a;this.block_=b;this.constants_=this.renderer_.getConstants();this.outputConnection=b.outputConnection?new cp(this.constants_,b.outputConnection):null;this.isInline=b.getInputsInline()&&!b.isCollapsed();this.isCollapsed=b.isCollapsed();this.isInsertionMarker=b.isInsertionMarker();this.RTL=b.RTL;this.topRow=new ip(this.constants_);
1468
- this.bottomRow=new Oo(this.constants_)}getRenderer(){return this.renderer_}measure(){this.createRows_();this.addElemSpacing_();this.addRowSpacing_();this.computeBounds_();this.alignRowElements_();this.finalize_()}createRows_(){this.populateTopRow_();this.rows.push(this.topRow);var a=new $o(this.constants_);this.inputRows.push(a);var b=this.block_.getIcons();for(let c=0,d;d=b[c];c++){let e=new Xo(this.constants_,d);this.isCollapsed&&!d.isShownWhenCollapsed()||a.elements.push(e)}b=void 0;for(let c=
1469
- 0,d;d=this.block_.inputList[c];c++)if(d.isVisible()){this.shouldStartNewRow_(d,b)&&(this.rows.push(a),a=new $o(this.constants_),this.inputRows.push(a));for(let e=0,f;f=d.fieldRow[e];e++)a.elements.push(new Vo(this.constants_,f,d));this.addInput_(d,a);b=d}this.isCollapsed&&(a.hasJaggedEdge=!0,a.elements.push(new ap(this.constants_)));(a.elements.length||a.hasDummyInput)&&this.rows.push(a);this.populateBottomRow_();this.rows.push(this.bottomRow)}populateTopRow_(){var a=!!this.block_.previousConnection,
1470
- b=(this.block_.hat?this.block_.hat==="cap":this.constants_.ADD_START_HATS)&&!this.outputConnection&&!a,c=this.topRow.hasLeftSquareCorner(this.block_)?gp:ep;this.topRow.elements.push(new c(this.constants_));b?(a=new Wo(this.constants_),this.topRow.elements.push(a)):a&&(this.topRow.hasPreviousConnection=!0,this.topRow.connection=new dp(this.constants_,this.block_.previousConnection),this.topRow.elements.push(this.topRow.connection));this.block_.inputList.length&&this.block_.inputList[0]instanceof Ln&&
1471
- !this.block_.isCollapsed()?this.topRow.minHeight=this.constants_.TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT:this.topRow.minHeight=this.constants_.TOP_ROW_MIN_HEIGHT;c=this.topRow.hasRightSquareCorner(this.block_)?gp:ep;this.topRow.elements.push(new c(this.constants_,"right"))}populateBottomRow_(){this.bottomRow.hasNextConnection=!!this.block_.nextConnection;this.bottomRow.minHeight=this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1]instanceof Ln?this.constants_.BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT:
1472
- this.constants_.BOTTOM_ROW_MIN_HEIGHT;this.bottomRow.hasLeftSquareCorner(this.block_)?this.bottomRow.elements.push(new gp(this.constants_)):this.bottomRow.elements.push(new ep(this.constants_));this.bottomRow.hasNextConnection&&(this.bottomRow.connection=new bp(this.constants_,this.block_.nextConnection),this.bottomRow.elements.push(this.bottomRow.connection));this.bottomRow.hasRightSquareCorner(this.block_)?this.bottomRow.elements.push(new gp(this.constants_,"right")):this.bottomRow.elements.push(new ep(this.constants_,
1473
- "right"))}addInput_(a,b){if(this.isInline&&a instanceof $.Mn)b.elements.push(new Zo(this.constants_,a)),b.hasInlineInput=!0;else if(a instanceof Ln)b.elements.push(new hp(this.constants_,a)),b.hasStatement=!0;else if(a instanceof $.Mn)b.elements.push(new Uo(this.constants_,a)),b.hasExternalInput=!0;else if(a instanceof Jn||a instanceof Kn)b.minHeight=Math.max(b.minHeight,a.getSourceBlock()&&a.getSourceBlock().isShadow()?this.constants_.DUMMY_INPUT_SHADOW_MIN_HEIGHT:this.constants_.DUMMY_INPUT_MIN_HEIGHT),
1474
- b.hasDummyInput=!0;b.align===null&&(b.align=a.align)}shouldStartNewRow_(a,b){return b?b instanceof Kn||a instanceof Ln||b instanceof Ln?!0:a instanceof $.Mn||a instanceof Jn||b instanceof $.Mn?!this.isInline:!1:!1}addElemSpacing_(){for(let a=0,b;b=this.rows[a];a++){let c=b.elements;b.elements=[];b.startsWithElemSpacer()&&b.elements.push(new Yo(this.constants_,this.getInRowSpacing_(null,c[0])));if(c.length){for(let d=0;d<c.length-1;d++){b.elements.push(c[d]);let e=this.getInRowSpacing_(c[d],c[d+1]);
1475
- b.elements.push(new Yo(this.constants_,e))}b.elements.push(c[c.length-1]);b.endsWithElemSpacer()&&b.elements.push(new Yo(this.constants_,this.getInRowSpacing_(c[c.length-1],null)))}}}getInRowSpacing_(a,b){if(!a&&b&&Q.isStatementInput(b))return this.constants_.STATEMENT_INPUT_PADDING_LEFT;if(a&&Q.isInput(a)&&!b){if(Q.isExternalInput(a))return this.constants_.NO_PADDING;if(Q.isInlineInput(a))return this.constants_.LARGE_PADDING;if(Q.isStatementInput(a))return this.constants_.NO_PADDING}return a&&Q.isLeftSquareCorner(a)&&
1472
+ a.shape.pathDown(a.height);else{var c=a.shape;c.pathDown!==void 0&&c.pathUp!==void 0&&(b=a.shape.pathDown)}a=this.constants_.TAB_OFFSET_FROM_TOP;return Dh(0,-a)+I("v",a)+b+I("v",a)}getStatementConnectionHighlightPath(a){var b=a.shape;if(b.pathLeft===void 0||b.pathRight===void 0)throw Error("Statement connections should have notch shapes");b=this.constants_.NOTCH_OFFSET_LEFT-this.constants_.CORNER_RADIUS;return Dh(-b,0)+I("h",b)+a.shape.pathLeft+I("h",b)}};var np=class{constructor(a,b){this.statementEdge=this.width=this.widthWithChildren=this.height=0;this.rows=[];this.inputRows=[];this.startY=this.startX=0;this.renderer_=a;this.block_=b;this.constants_=this.renderer_.getConstants();this.outputConnection=b.outputConnection?new dp(this.constants_,b.outputConnection):null;this.isInline=b.getInputsInline()&&!b.isCollapsed();this.isCollapsed=b.isCollapsed();this.isInsertionMarker=b.isInsertionMarker();this.RTL=b.RTL;this.topRow=new jp(this.constants_);
1473
+ this.bottomRow=new Po(this.constants_)}getRenderer(){return this.renderer_}measure(){this.createRows_();this.addElemSpacing_();this.addRowSpacing_();this.computeBounds_();this.alignRowElements_();this.finalize_()}createRows_(){this.populateTopRow_();this.rows.push(this.topRow);var a=new ap(this.constants_);this.inputRows.push(a);var b=this.block_.getIcons();for(let c=0,d;d=b[c];c++){let e=new Yo(this.constants_,d);this.isCollapsed&&!d.isShownWhenCollapsed()||a.elements.push(e)}b=void 0;for(let c=
1474
+ 0,d;d=this.block_.inputList[c];c++)if(d.isVisible()){this.shouldStartNewRow_(d,b)&&(this.rows.push(a),a=new ap(this.constants_),this.inputRows.push(a));for(let e=0,f;f=d.fieldRow[e];e++)a.elements.push(new To(this.constants_,f,d));this.addInput_(d,a);b=d}this.isCollapsed&&(a.hasJaggedEdge=!0,a.elements.push(new bp(this.constants_)));(a.elements.length||a.hasDummyInput)&&this.rows.push(a);this.populateBottomRow_();this.rows.push(this.bottomRow)}populateTopRow_(){var a=!!this.block_.previousConnection,
1475
+ b=(this.block_.hat?this.block_.hat==="cap":this.constants_.ADD_START_HATS)&&!this.outputConnection&&!a,c=this.topRow.hasLeftSquareCorner(this.block_)?hp:fp;this.topRow.elements.push(new c(this.constants_));b?(a=new Xo(this.constants_),this.topRow.elements.push(a)):a&&(this.topRow.hasPreviousConnection=!0,this.topRow.connection=new ep(this.constants_,this.block_.previousConnection),this.topRow.elements.push(this.topRow.connection));this.block_.inputList.length&&this.block_.inputList[0]instanceof Mn&&
1476
+ !this.block_.isCollapsed()?this.topRow.minHeight=this.constants_.TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT:this.topRow.minHeight=this.constants_.TOP_ROW_MIN_HEIGHT;c=this.topRow.hasRightSquareCorner(this.block_)?hp:fp;this.topRow.elements.push(new c(this.constants_,"right"))}populateBottomRow_(){this.bottomRow.hasNextConnection=!!this.block_.nextConnection;this.bottomRow.minHeight=this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1]instanceof Mn?this.constants_.BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT:
1477
+ this.constants_.BOTTOM_ROW_MIN_HEIGHT;this.bottomRow.hasLeftSquareCorner(this.block_)?this.bottomRow.elements.push(new hp(this.constants_)):this.bottomRow.elements.push(new fp(this.constants_));this.bottomRow.hasNextConnection&&(this.bottomRow.connection=new cp(this.constants_,this.block_.nextConnection),this.bottomRow.elements.push(this.bottomRow.connection));this.bottomRow.hasRightSquareCorner(this.block_)?this.bottomRow.elements.push(new hp(this.constants_,"right")):this.bottomRow.elements.push(new fp(this.constants_,
1478
+ "right"))}addInput_(a,b){if(this.isInline&&a instanceof $.Nn)b.elements.push(new $o(this.constants_,a)),b.hasInlineInput=!0;else if(a instanceof Mn)b.elements.push(new ip(this.constants_,a)),b.hasStatement=!0;else if(a instanceof $.Nn)b.elements.push(new So(this.constants_,a)),b.hasExternalInput=!0;else if(a instanceof Kn||a instanceof Ln)b.minHeight=Math.max(b.minHeight,a.getSourceBlock()&&a.getSourceBlock().isShadow()?this.constants_.DUMMY_INPUT_SHADOW_MIN_HEIGHT:this.constants_.DUMMY_INPUT_MIN_HEIGHT),
1479
+ b.hasDummyInput=!0;b.align===null&&(b.align=a.align)}shouldStartNewRow_(a,b){return b?b instanceof Ln||a instanceof Mn||b instanceof Mn?!0:a instanceof $.Nn||a instanceof Kn||b instanceof $.Nn?!this.isInline:!1:!1}addElemSpacing_(){for(let a=0,b;b=this.rows[a];a++){let c=b.elements;b.elements=[];b.startsWithElemSpacer()&&b.elements.push(new Zo(this.constants_,this.getInRowSpacing_(null,c[0])));if(c.length){for(let d=0;d<c.length-1;d++){b.elements.push(c[d]);let e=this.getInRowSpacing_(c[d],c[d+1]);
1480
+ b.elements.push(new Zo(this.constants_,e))}b.elements.push(c[c.length-1]);b.endsWithElemSpacer()&&b.elements.push(new Zo(this.constants_,this.getInRowSpacing_(c[c.length-1],null)))}}}getInRowSpacing_(a,b){if(!a&&b&&Q.isStatementInput(b))return this.constants_.STATEMENT_INPUT_PADDING_LEFT;if(a&&Q.isInput(a)&&!b){if(Q.isExternalInput(a))return this.constants_.NO_PADDING;if(Q.isInlineInput(a))return this.constants_.LARGE_PADDING;if(Q.isStatementInput(a))return this.constants_.NO_PADDING}return a&&Q.isLeftSquareCorner(a)&&
1476
1481
  b&&(Q.isPreviousConnection(b)||Q.isNextConnection(b))?b.notchOffset:a&&Q.isLeftRoundedCorner(a)&&b&&(Q.isPreviousConnection(b)||Q.isNextConnection(b))?b.notchOffset-this.constants_.CORNER_RADIUS:a&&Q.isField(a)&&a.width===0?this.constants_.NO_PADDING:this.constants_.MEDIUM_PADDING}computeBounds_(){var a=0,b=0,c=0;for(let e=0,f;f=this.rows[e];e++){f.measure();b=Math.max(b,f.width);if(f.hasStatement){var d=f.getLastInput();let g;d=f.width-((g=d==null?void 0:d.width)!=null?g:0);a=Math.max(a,d)}c=Math.max(c,
1477
1482
  f.widthWithConnectedBlocks)}this.statementEdge=a;this.width=b;for(let e=0,f;f=this.rows[e];e++)f.hasStatement&&(f.statementEdge=this.statementEdge);this.widthWithChildren=Math.max(b,c);this.outputConnection&&(this.startX=this.outputConnection.width,this.width+=this.outputConnection.width,this.widthWithChildren+=this.outputConnection.width)}alignRowElements_(){for(let b=0,c;c=this.rows[b];b++)if(c.hasStatement)this.alignStatementRow_(c);else{var a=c.width;a=this.getDesiredRowWidth_(c)-a;a>0&&this.addAlignmentPadding_(c,
1478
- a);Q.isTopOrBottomRow(c)&&(c.widthWithConnectedBlocks=c.width)}}getDesiredRowWidth_(){return this.width-this.startX}addAlignmentPadding_(a,b){var c=a.getFirstSpacer(),d=a.getLastSpacer();if(a.hasExternalInput||a.hasStatement)a.widthWithConnectedBlocks+=b;if(a.align===$.Dn.LEFT&&d)d.width+=b;else if(a.align===$.Dn.CENTRE&&c&&d)c.width+=b/2,d.width+=b/2;else if(a.align===$.Dn.RIGHT&&c)c.width+=b;else if(d)d.width+=b;else return;a.width+=b}alignStatementRow_(a){var b=a.getLastInput();if(b){var c=a.width-
1483
+ a);Q.isTopOrBottomRow(c)&&(c.widthWithConnectedBlocks=c.width)}}getDesiredRowWidth_(){return this.width-this.startX}addAlignmentPadding_(a,b){var c=a.getFirstSpacer(),d=a.getLastSpacer();if(a.hasExternalInput||a.hasStatement)a.widthWithConnectedBlocks+=b;if(a.align===$.En.LEFT&&d)d.width+=b;else if(a.align===$.En.CENTRE&&c&&d)c.width+=b/2,d.width+=b/2;else if(a.align===$.En.RIGHT&&c)c.width+=b;else if(d)d.width+=b;else return;a.width+=b}alignStatementRow_(a){var b=a.getLastInput();if(b){var c=a.width-
1479
1484
  b.width,d=this.statementEdge;c=d-c;c>0&&this.addAlignmentPadding_(a,c);c=a.width;d=this.getDesiredRowWidth_(a);b.width+=d-c;b.height=Math.max(b.height,a.height);a.width+=d-c;a.widthWithConnectedBlocks=Math.max(a.width,this.statementEdge+a.connectedBlockWidths)}}addRowSpacing_(){var a=this.rows;this.rows=[];for(let b=0;b<a.length;b++)this.rows.push(a[b]),b!==a.length-1&&this.rows.push(this.makeSpacerRow_(a[b],a[b+1]))}makeSpacerRow_(a,b){var c=this.getSpacerRowHeight_(a,b),d=this.getSpacerRowWidth_(a,
1480
- b);c=new fp(this.constants_,c,d);a.hasStatement&&(c.followsStatement=!0);b.hasStatement&&(c.precedesStatement=!0);return c}getSpacerRowWidth_(){return this.width-this.startX}getSpacerRowHeight_(){return this.constants_.MEDIUM_PADDING}getElemCenterline_(a,b){return Q.isSpacer(b)?a.yPos+b.height/2:Q.isBottomRow(a)?(a=a.yPos+a.height-a.descenderHeight,Q.isNextConnection(b)?a+b.height/2:a-b.height/2):Q.isTopRow(a)?Q.isHat(b)?a.capline-b.height/2:a.capline+b.height/2:a.yPos+a.height/2}recordElemPositions_(a){var b=
1485
+ b);c=new gp(this.constants_,c,d);a.hasStatement&&(c.followsStatement=!0);b.hasStatement&&(c.precedesStatement=!0);return c}getSpacerRowWidth_(){return this.width-this.startX}getSpacerRowHeight_(){return this.constants_.MEDIUM_PADDING}getElemCenterline_(a,b){return Q.isSpacer(b)?a.yPos+b.height/2:Q.isBottomRow(a)?(a=a.yPos+a.height-a.descenderHeight,Q.isNextConnection(b)?a+b.height/2:a-b.height/2):Q.isTopRow(a)?Q.isHat(b)?a.capline-b.height/2:a.capline+b.height/2:a.yPos+a.height/2}recordElemPositions_(a){var b=
1481
1486
  a.xPos;for(let c=0,d;d=a.elements[c];c++)Q.isSpacer(d)&&(d.height=a.height),d.xPos=b,d.centerline=this.getElemCenterline_(a,d),b+=d.width}finalize_(){var a=0,b=0;for(let c=0,d;d=this.rows[c];c++)d.yPos=b,d.xPos=this.startX,b+=d.height,a=Math.max(a,d.widthWithConnectedBlocks),this.recordElemPositions_(d);if(this.outputConnection&&this.block_.nextConnection){let c=this.block_.nextConnection.targetBlock();c&&(a=Math.max(a,c.getHeightWidth().width))}this.widthWithChildren=a+this.startX;this.height=b;
1482
- this.startY=this.topRow.capline;this.bottomRow.baseline=b-this.bottomRow.descenderHeight}getMeasureableForConnection(a){var b;if(((b=this.outputConnection)==null?void 0:b.connectionModel)===a)return this.outputConnection;for(let c of this.rows)for(let d of c.elements)if(d instanceof Po&&d.connectionModel===a)return d;return null}};var np=class{constructor(a,b,c){this.connectionHighlights=new WeakMap;this.highlightOffsets=new WeakMap;this.constants=c;this.style=b;this.svgRoot=a;this.svgPath=r(q.PATH,{"class":"blocklyPath"},this.svgRoot);this.setClass_("blocklyBlock",!0)}setPath(a){this.svgPath.setAttribute("d",a)}flipRTL(){this.svgPath.setAttribute("transform","scale(-1 1)")}applyColour(a){this.svgPath.setAttribute("stroke",this.style.colourTertiary);this.svgPath.setAttribute("fill",this.style.colourPrimary);this.updateShadow_(a.isShadow());
1487
+ this.startY=this.topRow.capline;this.bottomRow.baseline=b-this.bottomRow.descenderHeight}getMeasureableForConnection(a){var b;if(((b=this.outputConnection)==null?void 0:b.connectionModel)===a)return this.outputConnection;for(let c of this.rows)for(let d of c.elements)if(d instanceof Qo&&d.connectionModel===a)return d;return null}};var op=class{constructor(a,b,c){this.connectionHighlights=new WeakMap;this.highlightOffsets=new WeakMap;this.constants=c;this.style=b;this.svgRoot=a;this.svgPath=r(q.PATH,{"class":"blocklyPath"},this.svgRoot);this.setClass_("blocklyBlock",!0)}setPath(a){this.svgPath.setAttribute("d",a)}flipRTL(){this.svgPath.setAttribute("transform","scale(-1 1)")}applyColour(a){this.svgPath.setAttribute("stroke",this.style.colourTertiary);this.svgPath.setAttribute("fill",this.style.colourPrimary);this.updateShadow_(a.isShadow());
1483
1488
  this.updateDisabled_(!a.isEnabled()||a.getInheritedDisabled())}setStyle(a){this.style=a}setClass_(a,b){a&&(b?n(this.svgRoot,a):Ma(this.svgRoot,a))}updateHighlighted(a){a?this.setClass_("blocklyHighlighted",!0):this.setClass_("blocklyHighlighted",!1)}updateShadow_(a){a?(this.setClass_("blocklyShadow",!0),this.svgPath.setAttribute("stroke","none"),this.svgPath.setAttribute("fill",this.style.colourSecondary)):this.setClass_("blocklyShadow",!1)}updateDisabled_(a){this.setClass_("blocklyDisabled",a);this.setClass_("blocklyDisabledPattern",
1484
1489
  a)}updateSelected(a){this.setClass_("blocklySelected",a)}updateDraggingDelete(a){this.setClass_("blocklyDraggingDelete",a)}updateInsertionMarker(a){this.setClass_("blocklyInsertionMarker",a)}updateMovable(a){this.setClass_("blocklyDraggable",a)}updateReplacing(a){this.setClass_("blocklyReplaceable",a)}addConnectionHighlight(a,b,c,d){c=`translate(${c.x}, ${c.y})`+(d?" scale(-1 1)":"");if(d=this.connectionHighlights.get(a))return d.setAttribute("d",b),d.setAttribute("transform",c),d;b=r(q.PATH,{id:a.id,
1485
- "class":"blocklyHighlightedConnectionPath",d:b,transform:c},this.svgRoot);this.connectionHighlights.set(a,b);return b}removeConnectionHighlight(a){var b=this.connectionHighlights.get(a);b&&(Oa(b),this.connectionHighlights.delete(a))}};var op=class{constructor(a){this.overrides=null;this.name=a}getClassName(){return this.name+"-renderer"}init(a,b){this.constants_=this.makeConstants_();b&&(this.overrides=b,Object.assign(this.constants_,b));this.constants_.setTheme(a);this.constants_.init()}createDom(a,b,c){this.constants_.createDom(a,"."+this.getClassName()+"."+b.getClassName(),c)}refreshDom(a,b,c){var d=this.getConstants();d.dispose();this.constants_=this.makeConstants_();this.overrides&&Object.assign(this.constants_,this.overrides);
1486
- this.constants_.randomIdentifier=d.randomIdentifier;this.constants_.setTheme(b);this.constants_.init();this.createDom(a,b,c)}dispose(){this.constants_&&this.constants_.dispose()}makeConstants_(){return new kp}makeRenderInfo_(a){return new mp(this,a)}makeDrawer_(a,b){return new lp(a,b)}makePathObject(a,b){return new np(a,b,this.constants_)}getConstants(){return this.constants_}shouldHighlightConnection(a){return!a.getSourceBlock().isDragging()}orphanCanConnectAtEnd(a,b,c){return!!An.getConnectionForOrphanedConnection(a,
1487
- c===G.OUTPUT_VALUE?b.outputConnection:b.previousConnection)}render(a){var b=this.makeRenderInfo_(a);b.measure();this.makeDrawer_(a,b).draw()}};var pp={};pp.BottomRow=Oo;pp.Connection=Po;pp.ConstantProvider=kp;pp.Drawer=lp;pp.ExternalValueInput=Uo;pp.Field=Vo;pp.Hat=Wo;pp.Icon=Xo;pp.InRowSpacer=Yo;pp.InlineInput=Zo;pp.InputConnection=Qo;pp.InputRow=$o;pp.JaggedEdge=ap;pp.Measurable=Mo;pp.NextConnection=bp;pp.OutputConnection=cp;pp.PathObject=np;pp.PreviousConnection=dp;pp.RenderInfo=mp;pp.Renderer=op;pp.RoundCorner=ep;pp.Row=No;pp.SpacerRow=fp;pp.SquareCorner=gp;pp.StatementInput=hp;pp.TopRow=ip;pp.Types=Q;pp.init=uj;pp.register=tj;
1488
- pp.unregister=function(a){Eb(y.RENDERER,a)};var qp=class{constructor(a,b){this.workspace=a;this.theme=b;this.subscribedWorkspaces=[];this.componentDB=new Map}getTheme(){return this.theme}setTheme(a){var b=this.theme;this.theme=a;if(a=this.workspace.getInjectionDiv())b&&(b=b.getClassName())&&Ma(a,b),(b=this.theme.getClassName())&&n(a,b);for(let c=0,d;d=this.subscribedWorkspaces[c];c++)d.refreshTheme();for(let [c,d]of this.componentDB)for(let e of d){a=e.element;b=e.propertyName;let f=this.theme&&this.theme.getComponentStyle(c);a.style.setProperty(b,
1489
- f||"")}for(let c of this.subscribedWorkspaces)c.hideChaff()}subscribeWorkspace(a){this.subscribedWorkspaces.push(a)}unsubscribeWorkspace(a){if(!ra(this.subscribedWorkspaces,a))throw Error("Cannot unsubscribe a workspace that hasn't been subscribed.");}subscribe(a,b,c){this.componentDB.has(b)||this.componentDB.set(b,[]);this.componentDB.get(b).push({element:a,propertyName:c});b=this.theme&&this.theme.getComponentStyle(b);a.style.setProperty(c,b||"")}unsubscribe(a){if(a)for(let [b,c]of this.componentDB){for(let d=
1490
- c.length-1;d>=0;d--)c[d].element===a&&c.splice(d,1);c.length||this.componentDB.delete(b)}}dispose(){this.subscribedWorkspaces.length=0;this.componentDB.clear()}};var rp={CATEGORY_NAME:"VARIABLE_DYNAMIC"};rp.flyoutCategory=yj;
1491
- rp.flyoutCategoryBlocks=function(a){a=a.getVariableMap().getAllVariables();var b=[];if(a.length>0){if(zb.variables_set_dynamic){var c=a[a.length-1];let d=$.rc("block");d.setAttribute("type","variables_set_dynamic");d.setAttribute("gap","24");d.appendChild(Ud(c));b.push(d)}if(zb.variables_get_dynamic){a.sort(Hd);for(let d=0,e;e=a[d];d++)c=$.rc("block"),c.setAttribute("type","variables_get_dynamic"),c.setAttribute("gap","8"),c.appendChild(Ud(e)),b.push(c)}}return b};
1492
- rp.onCreateVariableButtonClick_Colour=xj;rp.onCreateVariableButtonClick_Number=wj;rp.onCreateVariableButtonClick_String=vj;var sp=class{get isFlyout(){return this.internalIsFlyout}get isMutator(){return this.internalIsMutator}constructor(a){this.isClearing=this.internalIsMutator=this.internalIsFlyout=this.rendered=!1;this.MAX_UNDO=1024;this.connectionDBList=[];this.topBlocks=[];this.topComments=[];this.commentDB=new Map;this.listeners=[];this.undoStack_=[];this.redoStack_=[];this.blockDB=new Map;this.typedBlocksDB=new Map;this.procedureMap=new Jo;this.readOnly=!1;this.potentialVariableMap=null;this.id=Nb();hb(this);this.options=
1493
- a||new on({});this.RTL=!!this.options.RTL;this.horizontalLayout=!!this.options.horizontalLayout;this.toolboxPosition=this.options.toolboxPosition;this.connectionChecker=new (Jb(y.CONNECTION_CHECKER,this.options,!0))(this);this.variableMap=new (this.getVariableMapClass())(this);this.setIsReadOnly(this.options.readOnly)}dispose(){this.listeners.length=0;this.clear();ib(this)}sortObjects(a,b){var c=d=>({getBoundingRectangle:()=>{var e=d.getRelativeToSurfaceXY();return new cc(e.y,e.y,e.x,e.x)},moveBy:()=>
1494
- {}});return this.sortByOrigin(c(a),c(b))}sortByOrigin(a,b){var c=Math.sin(Me(sp.SCAN_ANGLE))*(this.RTL?-1:1);a=a.getBoundingRectangle().getOrigin();b=b.getBoundingRectangle().getOrigin();return a.y+c*a.x-(b.y+c*b.x)}addTopBlock(a){this.topBlocks.push(a)}removeTopBlock(a){if(!ra(this.topBlocks,a))throw Error("Block not present in workspace's list of top-most blocks.");}getTopBlocks(a=!1){var b=[].concat(this.topBlocks);a&&b.length>1&&b.sort(this.sortObjects.bind(this));return b}addTypedBlock(a){this.typedBlocksDB.has(a.type)||
1495
- this.typedBlocksDB.set(a.type,[]);this.typedBlocksDB.get(a.type).push(a)}removeTypedBlock(a){ra(this.typedBlocksDB.get(a.type),a);this.typedBlocksDB.get(a.type).length||this.typedBlocksDB.delete(a.type)}getBlocksByType(a,b=!1){if(!this.typedBlocksDB.has(a))return[];a=this.typedBlocksDB.get(a).slice(0);b&&a&&a.length>1&&a.sort(this.sortObjects.bind(this));return a.filter(c=>!c.isInsertionMarker())}addTopComment(a){this.topComments.push(a);this.commentDB.has(a.id)&&console.warn('Overriding an existing comment on this workspace, with id "'+
1496
- a.id+'"');this.commentDB.set(a.id,a)}removeTopComment(a){if(!ra(this.topComments,a))throw Error("Comment not present in workspace's list of top-most comments.");this.commentDB.delete(a.id)}getTopComments(a=!1){var b=[].concat(this.topComments);a&&b.length>1&&b.sort(this.sortObjects.bind(this));return b}getAllBlocks(a=!1){if(a){var b=this.getTopBlocks(!0);a=[];for(let c=0;c<b.length;c++)a.push(...b[c].getDescendants(!0))}else for(a=this.getTopBlocks(!1),b=0;b<a.length;b++)a.push(...a[b].getChildren(!1));
1490
+ "class":"blocklyHighlightedConnectionPath",d:b,transform:c},this.svgRoot);this.connectionHighlights.set(a,b);return b}removeConnectionHighlight(a){var b=this.connectionHighlights.get(a);b&&(Oa(b),this.connectionHighlights.delete(a))}};var pp=class{constructor(a){this.overrides=null;this.name=a}getClassName(){return this.name+"-renderer"}init(a,b){this.constants_=this.makeConstants_();b&&(this.overrides=b,Object.assign(this.constants_,b));this.constants_.setTheme(a);this.constants_.init()}createDom(a,b,c){this.constants_.createDom(a,"."+this.getClassName()+"."+b.getClassName(),c)}refreshDom(a,b,c){var d=this.getConstants();d.dispose();this.constants_=this.makeConstants_();this.overrides&&Object.assign(this.constants_,this.overrides);
1491
+ this.constants_.randomIdentifier=d.randomIdentifier;this.constants_.setTheme(b);this.constants_.init();this.createDom(a,b,c)}dispose(){this.constants_&&this.constants_.dispose()}makeConstants_(){return new lp}makeRenderInfo_(a){return new np(this,a)}makeDrawer_(a,b){return new mp(a,b)}makePathObject(a,b){return new op(a,b,this.constants_)}getConstants(){return this.constants_}shouldHighlightConnection(a){return!a.getSourceBlock().isDragging()}orphanCanConnectAtEnd(a,b,c){return!!Bn.getConnectionForOrphanedConnection(a,
1492
+ c===G.OUTPUT_VALUE?b.outputConnection:b.previousConnection)}render(a){var b=this.makeRenderInfo_(a);b.measure();this.makeDrawer_(a,b).draw()}};var qp={};qp.BottomRow=Po;qp.Connection=Qo;qp.ConstantProvider=lp;qp.Drawer=mp;qp.ExternalValueInput=So;qp.Field=To;qp.Hat=Xo;qp.Icon=Yo;qp.InRowSpacer=Zo;qp.InlineInput=$o;qp.InputConnection=Ro;qp.InputRow=ap;qp.JaggedEdge=bp;qp.Measurable=No;qp.NextConnection=cp;qp.OutputConnection=dp;qp.PathObject=op;qp.PreviousConnection=ep;qp.RenderInfo=np;qp.Renderer=pp;qp.RoundCorner=fp;qp.Row=Oo;qp.SpacerRow=gp;qp.SquareCorner=hp;qp.StatementInput=ip;qp.TopRow=jp;qp.Types=Q;qp.init=vj;qp.register=uj;
1493
+ qp.unregister=function(a){Eb(y.RENDERER,a)};var rp=class{constructor(a,b){this.workspace=a;this.theme=b;this.subscribedWorkspaces=[];this.componentDB=new Map}getTheme(){return this.theme}setTheme(a){var b=this.theme;this.theme=a;if(a=this.workspace.getInjectionDiv())b&&(b=b.getClassName())&&Ma(a,b),(b=this.theme.getClassName())&&n(a,b);for(let c=0,d;d=this.subscribedWorkspaces[c];c++)d.refreshTheme();for(let [c,d]of this.componentDB)for(let e of d){a=e.element;b=e.propertyName;let f=this.theme&&this.theme.getComponentStyle(c);a.style.setProperty(b,
1494
+ f||"")}for(let c of this.subscribedWorkspaces)c.hideChaff()}subscribeWorkspace(a){this.subscribedWorkspaces.push(a)}unsubscribeWorkspace(a){if(!qa(this.subscribedWorkspaces,a))throw Error("Cannot unsubscribe a workspace that hasn't been subscribed.");}subscribe(a,b,c){this.componentDB.has(b)||this.componentDB.set(b,[]);this.componentDB.get(b).push({element:a,propertyName:c});b=this.theme&&this.theme.getComponentStyle(b);a.style.setProperty(c,b||"")}unsubscribe(a){if(a)for(let [b,c]of this.componentDB){for(let d=
1495
+ c.length-1;d>=0;d--)c[d].element===a&&c.splice(d,1);c.length||this.componentDB.delete(b)}}dispose(){this.subscribedWorkspaces.length=0;this.componentDB.clear()}};var sp={CATEGORY_NAME:"VARIABLE_DYNAMIC"};sp.flyoutCategory=zj;
1496
+ sp.flyoutCategoryBlocks=function(a){a=a.getVariableMap().getAllVariables();var b=[];if(a.length>0){if(zb.variables_set_dynamic){var c=a[a.length-1];let d=$.rc("block");d.setAttribute("type","variables_set_dynamic");d.setAttribute("gap","24");d.appendChild(Ud(c));b.push(d)}if(zb.variables_get_dynamic){a.sort(Hd);for(let d=0,e;e=a[d];d++)c=$.rc("block"),c.setAttribute("type","variables_get_dynamic"),c.setAttribute("gap","8"),c.appendChild(Ud(e)),b.push(c)}}return b};
1497
+ sp.onCreateVariableButtonClick_Colour=yj;sp.onCreateVariableButtonClick_Number=xj;sp.onCreateVariableButtonClick_String=wj;var tp=class{get isFlyout(){return this.internalIsFlyout}get isMutator(){return this.internalIsMutator}constructor(a){this.isClearing=this.internalIsMutator=this.internalIsFlyout=this.rendered=!1;this.MAX_UNDO=1024;this.connectionDBList=[];this.topBlocks=[];this.topComments=[];this.commentDB=new Map;this.listeners=[];this.undoStack_=[];this.redoStack_=[];this.blockDB=new Map;this.typedBlocksDB=new Map;this.procedureMap=new Ko;this.readOnly=!1;this.potentialVariableMap=null;this.id=Nb();hb(this);this.options=
1498
+ a||new pn({});this.RTL=!!this.options.RTL;this.horizontalLayout=!!this.options.horizontalLayout;this.toolboxPosition=this.options.toolboxPosition;this.connectionChecker=new (Jb(y.CONNECTION_CHECKER,this.options,!0))(this);this.variableMap=new (this.getVariableMapClass())(this);this.setIsReadOnly(this.options.readOnly)}dispose(){this.listeners.length=0;this.clear();ib(this)}sortObjects(a,b){var c=d=>({getBoundingRectangle:()=>{var e=d.getRelativeToSurfaceXY();return new cc(e.y,e.y,e.x,e.x)},moveBy:()=>
1499
+ {}});return this.sortByOrigin(c(a),c(b))}sortByOrigin(a,b){var c=Math.sin(Ne(tp.SCAN_ANGLE))*(this.RTL?-1:1);a=a.getBoundingRectangle().getOrigin();b=b.getBoundingRectangle().getOrigin();return a.y+c*a.x-(b.y+c*b.x)}addTopBlock(a){this.topBlocks.push(a)}removeTopBlock(a){if(!qa(this.topBlocks,a))throw Error("Block not present in workspace's list of top-most blocks.");}getTopBlocks(a=!1){var b=[].concat(this.topBlocks);a&&b.length>1&&b.sort(this.sortObjects.bind(this));return b}addTypedBlock(a){this.typedBlocksDB.has(a.type)||
1500
+ this.typedBlocksDB.set(a.type,[]);this.typedBlocksDB.get(a.type).push(a)}removeTypedBlock(a){qa(this.typedBlocksDB.get(a.type),a);this.typedBlocksDB.get(a.type).length||this.typedBlocksDB.delete(a.type)}getBlocksByType(a,b=!1){if(!this.typedBlocksDB.has(a))return[];a=this.typedBlocksDB.get(a).slice(0);b&&a&&a.length>1&&a.sort(this.sortObjects.bind(this));return a.filter(c=>!c.isInsertionMarker())}addTopComment(a){this.topComments.push(a);this.commentDB.has(a.id)&&console.warn('Overriding an existing comment on this workspace, with id "'+
1501
+ a.id+'"');this.commentDB.set(a.id,a)}removeTopComment(a){if(!qa(this.topComments,a))throw Error("Comment not present in workspace's list of top-most comments.");this.commentDB.delete(a.id)}getTopComments(a=!1){var b=[].concat(this.topComments);a&&b.length>1&&b.sort(this.sortObjects.bind(this));return b}getAllBlocks(a=!1){if(a){var b=this.getTopBlocks(!0);a=[];for(let c=0;c<b.length;c++)a.push(...b[c].getDescendants(!0))}else for(a=this.getTopBlocks(!1),b=0;b<a.length;b++)a.push(...a[b].getChildren(!1));
1497
1502
  return a.filter(c=>!c.isInsertionMarker())}clear(){this.isClearing=!0;try{let a=$.gd;for(a||$.B(!0);this.topBlocks.length;)this.topBlocks[0].dispose(!1);for(;this.topComments.length;)this.topComments[this.topComments.length-1].dispose();$.B(a);this.isFlyout||this.variableMap.clear();this.potentialVariableMap&&this.potentialVariableMap.clear()}finally{this.isClearing=!1}}getWidth(){return 0}newBlock(){throw Error("The implementation of newBlock should be monkey-patched in by blockly.ts");}newComment(){throw Error("The implementation of newComment should be monkey-patched in by blockly.ts");
1498
1503
  }remainingCapacity(){return isNaN(this.options.maxBlocks)?Infinity:this.options.maxBlocks-this.getAllBlocks(!1).length}remainingCapacityOfType(a){return this.options.maxInstances?(this.options.maxInstances[a]!==void 0?this.options.maxInstances[a]:Infinity)-this.getBlocksByType(a,!1).length:Infinity}isCapacityAvailable(a){if(!this.hasBlockLimits())return!0;var b=0;for(let c in a){if(a[c]>this.remainingCapacityOfType(c))return!1;b+=a[c]}return b>this.remainingCapacity()?!1:!0}hasBlockLimits(){return this.options.maxBlocks!==
1499
1504
  Infinity||!!this.options.maxInstances}getUndoStack(){return this.undoStack_}getRedoStack(){return this.redoStack_}undo(a=!1){var b=a?this.redoStack_:this.undoStack_,c=a?this.undoStack_:this.redoStack_,d=b.pop();if(d){for(var e=[d];b.length&&d.group&&d.group===b[b.length-1].group;){let f=b.pop();f&&e.push(f)}for(b=0;b<e.length;b++)c.push(e[b]);$.Qc=!1;try{for(c=0;c<e.length;c++)e[c].run(a)}finally{$.Qc=!0}}}redo(){this.undo(!0)}clearUndo(){this.undoStack_.length=0;this.redoStack_.length=0;Tb()}addChangeListener(a){this.listeners.push(a);
1500
- return a}removeChangeListener(a){ra(this.listeners,a)}fireChangeListener(a){if(a.recordUndo)for(this.undoStack_.push(a),this.redoStack_.length=0;this.undoStack_.length>this.MAX_UNDO&&this.MAX_UNDO>=0;)this.undoStack_.shift();for(let b=0;b<this.listeners.length;b++)(0,this.listeners[b])(a)}getBlockById(a){return this.blockDB.get(a)||null}setBlockById(a,b){this.blockDB.set(a,b)}removeBlockById(a){this.blockDB.delete(a)}getCommentById(a){var b;return(b=this.commentDB.get(a))!=null?b:null}allInputsFilled(a){var b=
1505
+ return a}removeChangeListener(a){qa(this.listeners,a)}fireChangeListener(a){if(a.recordUndo)for(this.undoStack_.push(a),this.redoStack_.length=0;this.undoStack_.length>this.MAX_UNDO&&this.MAX_UNDO>=0;)this.undoStack_.shift();for(let b=0;b<this.listeners.length;b++)(0,this.listeners[b])(a)}getBlockById(a){return this.blockDB.get(a)||null}setBlockById(a,b){this.blockDB.set(a,b)}removeBlockById(a){this.blockDB.delete(a)}getCommentById(a){var b;return(b=this.commentDB.get(a))!=null?b:null}allInputsFilled(a){var b=
1501
1506
  this.getTopBlocks(!1);for(let c=0;c<b.length;c++)if(!b[c].allInputsFilled(a))return!1;return!0}getPotentialVariableMap(){return this.potentialVariableMap}createPotentialVariableMap(){this.potentialVariableMap=new (this.getVariableMapClass())(this,!0)}getVariableMap(){return this.variableMap}setVariableMap(a){this.variableMap=a}getProcedureMap(){return this.procedureMap}getRootWorkspace(){var a=null,b=this.options.parentWorkspace;this.isFlyout?b&&b.options&&(a=b.options.parentWorkspace):b&&(a=b);return a}static getById(a){return fb(a)}static getAll(){return gb()}getVariableMapClass(){var a=
1502
- Jb(y.VARIABLE_MAP,this.options,!0);if(!a)throw Error("No variable map is registered.");return a}isReadOnly(){return this.readOnly}setIsReadOnly(a){this.readOnly=a;this.options.readOnly=a}};sp.SCAN_ANGLE=3;var tp=class{constructor(a){this.parentWorkspace=a;this.sounds=new Map;this.lastSound=null;this.muted=!1;window.AudioContext&&(this.context=new AudioContext)}dispose(){this.sounds.clear();var a;(a=this.context)==null||a.close()}load(a,b){var c=this;return(0,M.asyncExecutePromiseGeneratorFunction)(function*(){if(a.length){var d=yield(yield fetch(a[0])).arrayBuffer(),e;(e=c.context)==null||e.decodeAudioData(d,f=>{c.sounds.set(b,f)})}})}play(a,b){var c=this;return(0,M.asyncExecutePromiseGeneratorFunction)(function*(){if(c.isPlayingAllowed()&&
1507
+ Jb(y.VARIABLE_MAP,this.options,!0);if(!a)throw Error("No variable map is registered.");return a}isReadOnly(){return this.readOnly}setIsReadOnly(a){this.readOnly=a;this.options.readOnly=a}};tp.SCAN_ANGLE=3;var up=class{constructor(a){this.parentWorkspace=a;this.sounds=new Map;this.lastSound=null;this.muted=!1;window.AudioContext&&(this.context=new AudioContext)}dispose(){this.sounds.clear();var a;(a=this.context)==null||a.close()}load(a,b){var c=this;return(0,M.asyncExecutePromiseGeneratorFunction)(function*(){if(a.length){var d=yield(yield fetch(a[0])).arrayBuffer(),e;(e=c.context)==null||e.decodeAudioData(d,f=>{c.sounds.set(b,f)})}})}play(a,b){var c=this;return(0,M.asyncExecutePromiseGeneratorFunction)(function*(){if(c.isPlayingAllowed()&&
1503
1508
  b!==0){var d=c.sounds.get(a);if(d){yield c.prepareToPlay();let e=c.context.createBufferSource(),f=c.context.createGain();f.gain.value=b!=null?b:1;f.connect(c.context.destination);e.buffer=d;e.connect(f);e.addEventListener("ended",()=>{e.disconnect();f.disconnect()});e.start()}else c.parentWorkspace&&(d=c.parentWorkspace.getAudioManager(),d!==c&&d.play(a,b))}})}beep(a,b=.2){var c=this;return(0,M.asyncExecutePromiseGeneratorFunction)(function*(){if(c.isPlayingAllowed()){yield c.prepareToPlay();var d=
1504
1509
  c.context.createOscillator();d.type="sine";d.frequency.setValueAtTime(a,c.context.currentTime);var e=c.context.createGain();e.gain.setValueAtTime(0,c.context.currentTime);e.gain.linearRampToValueAtTime(.5,c.context.currentTime+.01);e.gain.linearRampToValueAtTime(0,c.context.currentTime+b);d.connect(e);e.connect(c.context.destination);d.start(c.context.currentTime);d.stop(c.context.currentTime+b)}})}playErrorBeep(){var a=this;return(0,M.asyncExecutePromiseGeneratorFunction)(function*(){return a.beep(260)})}maybePlayScopeChangeAudioCue(a){if(Nd.getScopeChangeAudioCuesEnabled()){var b=
1505
1510
  this.parentWorkspace.getNavigator(),c=b.getSourceBlockFromNode($.t().getFocusedNode());a=b.getSourceBlockFromNode(a);b=0;c&&a&&c.getNestingLevel()!==(b=a.getNestingLevel())&&this.beep(400+b*60)}}isPlayingAllowed(){var a=new Date;return this.getMuted()||!this.context||this.lastSound!==null&&a.getTime()-this.lastSound.getTime()<100?!1:!0}prepareToPlay(){var a=this;return(0,M.asyncExecutePromiseGeneratorFunction)(function*(){a.lastSound=new Date;a.context.state==="suspended"&&(yield a.context.resume())})}setMuted(a){this.muted=
1506
- a}getMuted(){return this.muted}};var up=class{constructor(a,b){this.workspace=a;this.element=b}getFocusableElement(){return this.element}getFocusableTree(){return this.workspace}onNodeFocus(){this.workspace.handleWorkspaceFocusTargetFocus()}onNodeBlur(){}canBeFocused(){return!0}getWorkspace(){return this.workspace}};var Zh=class extends sp{constructor(a){super(a);this.resizeHandlerWrapper=null;this.resizesEnabled=this.visible=this.rendered=!0;this.startScrollY=this.startScrollX=this.scrollY=this.scrollX=0;this.oldScale=this.scale=1;this.oldLeft=this.oldTop=0;this.inverseScreenCTM=this.targetWorkspace=this.dummyWheelListener=this.configureContextMenu=this.lastRecordedPageScroll=this.injectionDiv=this.currentGesture_=this.toolbox=this.flyout=this.scrollbar=this.trashcan=null;this.inverseScreenCTMDirty=!0;this.highlightedBlocks=
1507
- [];this.toolboxCategoryCallbacks=new Map;this.flyoutButtonCallbacks=new Map;this.cachedParentSvg=null;this.topBoundedElements=[];this.dragTargetAreas=[];this.workspaceFocusTarget=this.workspaceFocusTargetElement=this.workspaceSelectionRing=this.workspaceFocusRing=this.zoomControls_=this.layerManager=null;this.navigator=new wo;this.metricsManager=new (Jb(y.METRICS_MANAGER,a,!0))(this);this.getMetrics=a.getMetrics||this.metricsManager.getMetrics.bind(this.metricsManager);this.setMetrics=a.setMetrics||
1508
- Zh.setTopLevelWorkspaceMetrics;this.componentManager=new Ck;this.connectionDBList=zn.init(this.connectionChecker);var b;this.audioManager=new tp((b=a.parentWorkspace)!=null?b:this);this.grid=this.options.gridPattern?new Bj(this.options.gridPattern,a.gridOptions):null;Lm&&Fd&&this.registerToolboxCategoryCallback("VARIABLE",Fd);rp&&yj&&this.registerToolboxCategoryCallback("VARIABLE_DYNAMIC",yj);Ko&&mj&&(this.registerToolboxCategoryCallback("PROCEDURE",mj),this.addChangeListener(pj));this.addChangeListener(this.variableChangeCallback.bind(this));
1509
- this.themeManager_=this.options.parentWorkspace?this.options.parentWorkspace.getThemeManager():new qp(this,this.options.theme||nn);this.themeManager_.subscribeWorkspace(this);var c;this.renderer=uj(this.options.renderer||"geras",this.getTheme(),(c=this.options.rendererOverrides)!=null?c:void 0);this.cachedParentSvgSize=new hc(0,0)}getMetricsManager(){return this.metricsManager}setMetricsManager(a){this.metricsManager=a;this.getMetrics=this.metricsManager.getMetrics.bind(this.metricsManager)}getComponentManager(){return this.componentManager}getRenderer(){return this.renderer}getThemeManager(){return this.themeManager_}getTheme(){return this.themeManager_.getTheme()}setTheme(a){a||
1510
- (a=nn);this.themeManager_.setTheme(a)}refreshTheme(){if(this.svgGroup_){var a=this.options.parentWorkspace===null;this.renderer.refreshDom(this.svgGroup_,this.getTheme(),a?this.getInjectionDiv():void 0)}this.updateBlockStyles(this.getAllBlocks(!1).filter(b=>!!b.getStyleName()));this.refreshToolboxSelection();this.toolbox&&this.toolbox.refreshTheme();this.isVisible()&&this.setVisible(!0);a=new (u(v.THEME_CHANGE))(this.getTheme().name,this.id);w(a)}updateBlockStyles(a){for(let b=0,c;c=a[b];b++){let d=
1511
+ a}getMuted(){return this.muted}};var vp=class{constructor(a,b){this.workspace=a;this.element=b}getFocusableElement(){return this.element}getFocusableTree(){return this.workspace}onNodeFocus(){this.workspace.handleWorkspaceFocusTargetFocus()}onNodeBlur(){}canBeFocused(){return!0}getWorkspace(){return this.workspace}};var $h=class extends tp{constructor(a){super(a);this.resizeHandlerWrapper=null;this.resizesEnabled=this.visible=this.rendered=!0;this.startScrollY=this.startScrollX=this.scrollY=this.scrollX=0;this.oldScale=this.scale=1;this.oldLeft=this.oldTop=0;this.inverseScreenCTM=this.targetWorkspace=this.dummyWheelListener=this.configureContextMenu=this.lastRecordedPageScroll=this.injectionDiv=this.currentGesture_=this.toolbox=this.flyout=this.scrollbar=this.trashcan=null;this.inverseScreenCTMDirty=!0;this.highlightedBlocks=
1512
+ [];this.toolboxCategoryCallbacks=new Map;this.flyoutButtonCallbacks=new Map;this.cachedParentSvg=null;this.topBoundedElements=[];this.dragTargetAreas=[];this.workspaceFocusTarget=this.workspaceFocusTargetElement=this.workspaceSelectionRing=this.workspaceFocusRing=this.zoomControls_=this.layerManager=null;this.navigator=new xo;this.metricsManager=new (Jb(y.METRICS_MANAGER,a,!0))(this);this.getMetrics=a.getMetrics||this.metricsManager.getMetrics.bind(this.metricsManager);this.setMetrics=a.setMetrics||
1513
+ $h.setTopLevelWorkspaceMetrics;this.componentManager=new Dk;this.connectionDBList=An.init(this.connectionChecker);var b;this.audioManager=new up((b=a.parentWorkspace)!=null?b:this);this.grid=this.options.gridPattern?new Cj(this.options.gridPattern,a.gridOptions):null;Mm&&Fd&&this.registerToolboxCategoryCallback("VARIABLE",Fd);sp&&zj&&this.registerToolboxCategoryCallback("VARIABLE_DYNAMIC",zj);Lo&&nj&&(this.registerToolboxCategoryCallback("PROCEDURE",nj),this.addChangeListener(qj));this.addChangeListener(this.variableChangeCallback.bind(this));
1514
+ this.themeManager_=this.options.parentWorkspace?this.options.parentWorkspace.getThemeManager():new rp(this,this.options.theme||on);this.themeManager_.subscribeWorkspace(this);var c;this.renderer=vj(this.options.renderer||"geras",this.getTheme(),(c=this.options.rendererOverrides)!=null?c:void 0);this.cachedParentSvgSize=new hc(0,0)}getMetricsManager(){return this.metricsManager}setMetricsManager(a){this.metricsManager=a;this.getMetrics=this.metricsManager.getMetrics.bind(this.metricsManager)}getComponentManager(){return this.componentManager}getRenderer(){return this.renderer}getThemeManager(){return this.themeManager_}getTheme(){return this.themeManager_.getTheme()}setTheme(a){a||
1515
+ (a=on);this.themeManager_.setTheme(a)}refreshTheme(){if(this.svgGroup_){var a=this.options.parentWorkspace===null;this.renderer.refreshDom(this.svgGroup_,this.getTheme(),a?this.getInjectionDiv():void 0)}this.updateBlockStyles(this.getAllBlocks(!1).filter(b=>!!b.getStyleName()));this.refreshToolboxSelection();this.toolbox&&this.toolbox.refreshTheme();this.isVisible()&&this.setVisible(!0);a=new (u(v.THEME_CHANGE))(this.getTheme().name,this.id);w(a)}updateBlockStyles(a){for(let b=0,c;c=a[b];b++){let d=
1511
1516
  c.getStyleName();d&&c.setStyle(d)}}getInverseScreenCTM(){if(this.inverseScreenCTMDirty){let a=this.getParentSvg().getScreenCTM();a&&(this.inverseScreenCTM=a.inverse(),this.inverseScreenCTMDirty=!1)}return this.inverseScreenCTM}updateInverseScreenCTM(){this.inverseScreenCTMDirty=!0}isVisible(){return this.visible}getSvgXY(a){var b=0,c=0,d=1;if(this.getCanvas().contains(a)||this.getBubbleCanvas().contains(a))d=this.scale;do{let e=kc(a);if(a===this.getCanvas()||a===this.getBubbleCanvas())d=1;b+=e.x*
1512
1517
  d;c+=e.y*d;a=a.parentNode}while(a&&a!==this.getParentSvg()&&a!==this.getInjectionDiv());return new D(b,c)}getCachedParentSvgSize(){var a=this.cachedParentSvgSize;return new hc(a.width,a.height)}getOriginOffsetInPixels(){return lc(this.getCanvas())}getInjectionDiv(){if(!this.injectionDiv){let a=this.svgGroup_;for(;a;){if((" "+(a.getAttribute("class")||"")+" ").includes(" injectionDiv ")){this.injectionDiv=a;break}a=a.parentNode}}return this.injectionDiv}getSvgGroup(){return this.svgGroup_}getBlockCanvas(){return this.getCanvas()}setResizeHandlerWrapper(a){this.resizeHandlerWrapper=
1513
1518
  a}setInitialAriaContext(){if(!this.svgGroup_)throw Error("Must initialize svgGroup_ by calling `createDom` before calling setAriaContext");this.isFlyout||(ya(this.svgGroup_,Ka.REGION),this.isMutator?l(this.svgGroup_,p.LABEL,$.C.WORKSPACE_LABEL_MUTATOR_WORKSPACE):(l(this.svgGroup_,p.LABEL,$.C.WORKSPACE_LABEL_PLAIN),this.workspaceFocusTargetElement&&(ya(this.workspaceFocusTargetElement,Ka.FIGURE),l(this.workspaceFocusTargetElement,p.ROLEDESCRIPTION,$.C.WORKSPACE_ROLEDESCRIPTION),this.updateAriaLabel())))}updateAriaLabel(){if(this.workspaceFocusTargetElement){var a=
1514
1519
  this.getTopBlocks(!1).length;a==1?l(this.workspaceFocusTargetElement,p.LABEL,$.C.WORKSPACE_LABEL_1_STACK):l(this.workspaceFocusTargetElement,p.LABEL,$.C.WORKSPACE_LABEL_MANY_STACKS.replace("%1",String(a)))}}createDom(a,b){this.injectionDiv||(this.injectionDiv=b!=null?b:null);this.svgGroup_=r(q.G,{"class":"blocklyWorkspace",id:this.id});a&&(this.svgBackground_=r(q.RECT,{height:"100%",width:"100%","class":a},this.svgGroup_),a==="blocklyMainBackground"&&this.grid?this.svgBackground_.style.fill="var(--blocklyGridPattern)":
1515
- this.themeManager_.subscribe(this.svgBackground_,"workspaceBackgroundColour","fill"));this.workspaceSelectionRing=a=r(q.RECT,{fill:"none",class:"blocklyWorkspaceSelectionRing"},this.svgGroup_);this.workspaceFocusRing=r(q.RECT,{fill:"none",class:"blocklyWorkspaceFocusRing"},this.svgGroup_);this.isFlyout||this.isMutator||(a.id=`${this.id}_focusTarget`,this.workspaceFocusTargetElement=a,this.workspaceFocusTarget=new up(this,a));this.layerManager=new Eo(this);this.svgBlockCanvas_=this.layerManager.getBlockLayer();
1520
+ this.themeManager_.subscribe(this.svgBackground_,"workspaceBackgroundColour","fill"));this.workspaceSelectionRing=a=r(q.RECT,{fill:"none",class:"blocklyWorkspaceSelectionRing"},this.svgGroup_);this.workspaceFocusRing=r(q.RECT,{fill:"none",class:"blocklyWorkspaceFocusRing"},this.svgGroup_);this.isFlyout||this.isMutator||(a.id=`${this.id}_focusTarget`,this.workspaceFocusTargetElement=a,this.workspaceFocusTarget=new vp(this,a));this.layerManager=new Fo(this);this.svgBlockCanvas_=this.layerManager.getBlockLayer();
1516
1521
  this.svgBubbleCanvas_=this.layerManager.getBubbleLayer();this.setInitialAriaContext();this.isFlyout||(k(this.svgGroup_,"pointerdown",this,this.onMouseDown,!1),this.dummyWheelListener=()=>{},document.body.addEventListener("wheel",this.dummyWheelListener,{passive:!0}),k(this.svgGroup_,"wheel",this,this.onMouseWheel,!1,{passive:!1}));this.options.hasCategories&&(this.toolbox=new (Jb(y.TOOLBOX,this.options,!0))(this));this.grid&&this.grid.update(this.scale);this.recordDragTargets();a=this.options.parentWorkspace===
1517
1522
  null;this.renderer.createDom(this.svgGroup_,this.getTheme(),a?this.getInjectionDiv():void 0);$.t().registerTree(this,!!this.injectionDiv||this.isFlyout);return this.svgGroup_}dispose(){this.rendered=!1;this.currentGesture_&&this.currentGesture_.cancel();this.svgGroup_&&Oa(this.svgGroup_);this.toolbox&&(this.toolbox.dispose(),this.toolbox=null);this.flyout&&(this.flyout.dispose(),this.flyout=null);this.trashcan&&(this.trashcan.dispose(),this.trashcan=null);this.scrollbar&&(this.scrollbar.dispose(),
1518
1523
  this.scrollbar=null);this.zoomControls_&&this.zoomControls_.dispose();this.audioManager&&this.audioManager.dispose();this.grid&&(this.grid=null);this.renderer.dispose();super.dispose();this.themeManager_&&(this.themeManager_.unsubscribeWorkspace(this),this.themeManager_.unsubscribe(this.svgBackground_),this.options.parentWorkspace||this.themeManager_.dispose());this.connectionDBList.length=0;this.toolboxCategoryCallbacks.clear();this.flyoutButtonCallbacks.clear();if(!this.options.parentWorkspace){let c=
1519
- this.getParentSvg();c&&c.parentNode&&Oa(c.parentNode)}this.resizeHandlerWrapper&&(la(this.resizeHandlerWrapper),this.resizeHandlerWrapper=null);this.dummyWheelListener&&(document.body.removeEventListener("wheel",this.dummyWheelListener),this.dummyWheelListener=null);var a;(a=this.workspaceFocusRing)==null||a.remove();var b;(b=this.workspaceSelectionRing)==null||b.remove();$.t().isRegistered(this)&&$.t().unregisterTree(this)}addTrashcan(){this.trashcan=Zh.newTrashcan(this);var a=this.trashcan.createDom();
1520
- this.svgGroup_.insertBefore(a,this.getCanvas())}static newTrashcan(){throw Error("The implementation of newTrashcan should be monkey-patched in by blockly.ts");}addZoomControls(){this.zoomControls_=new pl(this);var a=this.zoomControls_.createDom();this.svgGroup_.appendChild(a)}copyOptionsForFlyout(){return new on({parentWorkspace:this,rtl:this.RTL,oneBasedIndex:this.options.oneBasedIndex,horizontalLayout:this.horizontalLayout,renderer:this.options.renderer,rendererOverrides:this.options.rendererOverrides,
1524
+ this.getParentSvg();c&&c.parentNode&&Oa(c.parentNode)}this.resizeHandlerWrapper&&(ka(this.resizeHandlerWrapper),this.resizeHandlerWrapper=null);this.dummyWheelListener&&(document.body.removeEventListener("wheel",this.dummyWheelListener),this.dummyWheelListener=null);var a;(a=this.workspaceFocusRing)==null||a.remove();var b;(b=this.workspaceSelectionRing)==null||b.remove();$.t().isRegistered(this)&&$.t().unregisterTree(this)}addTrashcan(){this.trashcan=$h.newTrashcan(this);var a=this.trashcan.createDom();
1525
+ this.svgGroup_.insertBefore(a,this.getCanvas())}static newTrashcan(){throw Error("The implementation of newTrashcan should be monkey-patched in by blockly.ts");}addZoomControls(){this.zoomControls_=new ql(this);var a=this.zoomControls_.createDom();this.svgGroup_.appendChild(a)}copyOptionsForFlyout(){return new pn({parentWorkspace:this,rtl:this.RTL,oneBasedIndex:this.options.oneBasedIndex,horizontalLayout:this.horizontalLayout,renderer:this.options.renderer,rendererOverrides:this.options.rendererOverrides,
1521
1526
  plugins:this.options.plugins,modalInputs:this.options.modalInputs,move:{scrollbars:!0}})}addFlyout(a){var b=this.copyOptionsForFlyout();b.toolboxPosition=this.options.toolboxPosition;this.flyout=this.horizontalLayout?new (Jb(y.FLYOUTS_HORIZONTAL_TOOLBOX,this.options,!0))(b):new (Jb(y.FLYOUTS_VERTICAL_TOOLBOX,this.options,!0))(b);this.flyout.autoClose=!1;this.flyout.getWorkspace().setVisible(!0);return this.flyout.createDom(a)}getFlyout(a){return this.flyout||a?this.flyout:this.toolbox?this.toolbox.getFlyout():
1522
- null}getToolbox(){return this.toolbox}updateScreenCalculations(){this.updateInverseScreenCTM();this.recordDragTargets()}resizeContents(){this.resizesEnabled&&this.rendered&&(this.scrollbar&&this.scrollbar.resize(),this.updateInverseScreenCTM())}resize(){this.toolbox?this.toolbox.position():this.flyout&&this.flyout.position();var a=this.componentManager.getComponents(Ck.Capability.POSITIONABLE,!0),b=this.getMetricsManager().getUiMetrics(),c=[];for(let d=0,e;e=a[d];d++){e.position(b,c);let f=e.getBoundingRectangle();
1527
+ null}getToolbox(){return this.toolbox}updateScreenCalculations(){this.updateInverseScreenCTM();this.recordDragTargets()}resizeContents(){this.resizesEnabled&&this.rendered&&(this.scrollbar&&this.scrollbar.resize(),this.updateInverseScreenCTM())}resize(){this.toolbox?this.toolbox.position():this.flyout&&this.flyout.position();var a=this.componentManager.getComponents(Dk.Capability.POSITIONABLE,!0),b=this.getMetricsManager().getUiMetrics(),c=[];for(let d=0,e;e=a[d];d++){e.position(b,c);let f=e.getBoundingRectangle();
1523
1528
  f&&c.push(f)}this.scrollbar&&this.scrollbar.resize();this.updateScreenCalculations();this.workspaceFocusRing&&this.workspaceSelectionRing&&(this.resizeWorkspaceRing(this.workspaceSelectionRing,5),this.resizeWorkspaceRing(this.workspaceFocusRing,0))}resizeWorkspaceRing(a,b){var c=this.getMetrics();a.setAttribute("x",`${c.absoluteLeft+b}`);a.setAttribute("y",`${c.absoluteTop+b}`);a.setAttribute("width",`${Math.max(0,c.viewWidth-b*2)}`);a.setAttribute("height",`${Math.max(0,c.svgHeight-b*2)}`)}updateScreenCalculationsIfScrolled(){var a=
1524
1529
  nc();D.equals(this.lastRecordedPageScroll,a)||(this.lastRecordedPageScroll=a,this.updateScreenCalculations())}getLayerManager(){return this.layerManager}getCanvas(){return this.layerManager.getBlockLayer()}setCachedParentSvgSize(a,b){var c=this.getParentSvg();a!=null&&(this.cachedParentSvgSize.width=a,c.setAttribute("data-cached-width",`${a}`));b!=null&&(this.cachedParentSvgSize.height=b,c.setAttribute("data-cached-height",`${b}`))}getBubbleCanvas(){return this.layerManager.getBubbleLayer()}getParentSvg(){if(!this.cachedParentSvg){let a=
1525
1530
  this.svgGroup_;for(;a;){if(a.tagName==="svg"){this.cachedParentSvg=a;break}a=a.parentNode}}return this.cachedParentSvg}maybeFireViewportChangeEvent(){if(Vb()){var a=this.scale,b=-this.scrollY,c=-this.scrollX;if(!(a===this.oldScale&&Math.abs(b-this.oldTop)<1&&Math.abs(c-this.oldLeft)<1)){var d=new (u(v.VIEWPORT_CHANGE))(b,c,a,this.id,this.oldScale);this.oldScale=a;this.oldTop=b;this.oldLeft=c;w(d)}}}translate(a,b){var c;(c=this.layerManager)==null||c.translateLayers(new D(a,b),this.scale);var d;(d=
1526
1531
  this.grid)==null||d.moveTo(a,b);this.maybeFireViewportChangeEvent()}getWidth(){var a=this.getMetrics();return a?a.viewWidth/this.scale:0}setVisible(a){this.visible=a;this.svgGroup_&&(this.scrollbar&&this.scrollbar.setContainerVisible(a),this.getFlyout()&&this.getFlyout().setContainerVisible(a),this.getParentSvg().style.display=a?"block":"none",this.toolbox&&this.toolbox.setVisible(a),a||this.hideChaff(!0))}render(){var a=this.getAllBlocks(!1);for(let b=a.length-1;b>=0;b--)a[b].queueRender();this.getTopBlocks().flatMap(b=>
1527
- b.getDescendants(!1)).filter(b=>b.isInsertionMarker()).forEach(b=>b.queueRender())}highlightBlock(a,b){if(b===void 0){for(let c=0,d;d=this.highlightedBlocks[c];c++)d.setHighlighted(!1);this.highlightedBlocks.length=0}if(a=a?this.getBlockById(a):null)(b=b===void 0||b)?this.highlightedBlocks.includes(a)||this.highlightedBlocks.push(a):ra(this.highlightedBlocks,a),a.setHighlighted(b)}variableChangeCallback(a){switch(a.type){case v.VAR_CREATE:case v.VAR_DELETE:case v.VAR_RENAME:case v.VAR_TYPE_CHANGE:this.refreshToolboxSelection()}}refreshToolboxSelection(){var a=
1528
- this.isFlyout?this.targetWorkspace:this;a&&!a.currentGesture_&&a.toolbox&&a.toolbox.getFlyout()&&a.toolbox.refreshSelection()}recordDragTargets(){var a=this.componentManager.getComponents(Ck.Capability.DRAG_TARGET,!0);this.dragTargetAreas=[];for(let b=0,c;c=a[b];b++){let d=c.getClientRect();d&&this.dragTargetAreas.push({component:c,clientRect:d})}}newBlock(){throw Error("The implementation of newBlock should be monkey-patched in by blockly.ts");}newComment(){throw Error("The implementation of newComment should be monkey-patched in by blockly.ts");
1529
- }getDragTarget(a){a=a instanceof D?a:new D(a.clientX,a.clientY);for(let b=0,c;c=this.dragTargetAreas[b];b++)if(c.clientRect.contains(a.x,a.y))return c.component;return null}onMouseDown(a){var b=this.getGesture(a);b&&b.handleWsStart(a,this)}startDrag(a,b){Rg(this,a,b)}moveDrag(a){return Sg(this,a)}isDragging(){return qi.mover.isMoving()||this.currentGesture_!==null&&this.currentGesture_.isDragging()}isDraggable(){return this.options.moveOptions&&this.options.moveOptions.drag}isMovable(){return this.options.moveOptions&&
1530
- !!this.options.moveOptions.scrollbars||this.options.moveOptions&&this.options.moveOptions.wheel||this.options.moveOptions&&this.options.moveOptions.drag||this.options.zoomOptions&&this.options.zoomOptions.wheel||this.options.zoomOptions&&this.options.zoomOptions.pinch}isMovableHorizontally(){var a=!!this.scrollbar;return this.isMovable()&&(!a||a&&this.scrollbar.canScrollHorizontally())}isMovableVertically(){var a=!!this.scrollbar;return this.isMovable()&&(!a||a&&this.scrollbar.canScrollVertically())}onMouseWheel(a){if(Do.inProgress())a.preventDefault(),
1531
- a.stopPropagation();else{var b=this.options.zoomOptions&&this.options.zoomOptions.wheel,c=this.options.moveOptions&&this.options.moveOptions.wheel;if(b||c){var d=qa(a);if(na)var e=a.metaKey;b&&(a.ctrlKey||e||!c)?(d=-d.y/50,b=pa(a,this.getParentSvg(),this.getInverseScreenCTM()),this.zoom(b.x,b.y,d)):(b=this.scrollX-d.x,c=this.scrollY-d.y,a.shiftKey&&!d.x&&(b=this.scrollX-d.y,c=this.scrollY),this.scroll(b,c));a.preventDefault()}}}getBlocksBoundingBox(){var a=this.getTopBoundedElements();if(!a.length)return new cc(0,
1532
+ b.getDescendants(!1)).filter(b=>b.isInsertionMarker()).forEach(b=>b.queueRender())}highlightBlock(a,b){if(b===void 0){for(let c=0,d;d=this.highlightedBlocks[c];c++)d.setHighlighted(!1);this.highlightedBlocks.length=0}if(a=a?this.getBlockById(a):null)(b=b===void 0||b)?this.highlightedBlocks.includes(a)||this.highlightedBlocks.push(a):qa(this.highlightedBlocks,a),a.setHighlighted(b)}variableChangeCallback(a){switch(a.type){case v.VAR_CREATE:case v.VAR_DELETE:case v.VAR_RENAME:case v.VAR_TYPE_CHANGE:this.refreshToolboxSelection()}}refreshToolboxSelection(){var a=
1533
+ this.isFlyout?this.targetWorkspace:this;a&&!a.currentGesture_&&a.toolbox&&a.toolbox.getFlyout()&&a.toolbox.refreshSelection()}recordDragTargets(){var a=this.componentManager.getComponents(Dk.Capability.DRAG_TARGET,!0);this.dragTargetAreas=[];for(let b=0,c;c=a[b];b++){let d=c.getClientRect();d&&this.dragTargetAreas.push({component:c,clientRect:d})}}newBlock(){throw Error("The implementation of newBlock should be monkey-patched in by blockly.ts");}newComment(){throw Error("The implementation of newComment should be monkey-patched in by blockly.ts");
1534
+ }getDragTarget(a){a=a instanceof D?a:new D(a.clientX,a.clientY);for(let b=0,c;c=this.dragTargetAreas[b];b++)if(c.clientRect.contains(a.x,a.y))return c.component;return null}onMouseDown(a){var b=this.getGesture(a);b&&b.handleWsStart(a,this)}startDrag(a,b){Sg(this,a,b)}moveDrag(a){return Tg(this,a)}isDragging(){return ri.mover.isMoving()||this.currentGesture_!==null&&this.currentGesture_.isDragging()}isDraggable(){return this.options.moveOptions&&this.options.moveOptions.drag}isMovable(){return this.options.moveOptions&&
1535
+ !!this.options.moveOptions.scrollbars||this.options.moveOptions&&this.options.moveOptions.wheel||this.options.moveOptions&&this.options.moveOptions.drag||this.options.zoomOptions&&this.options.zoomOptions.wheel||this.options.zoomOptions&&this.options.zoomOptions.pinch}isMovableHorizontally(){var a=!!this.scrollbar;return this.isMovable()&&(!a||a&&this.scrollbar.canScrollHorizontally())}isMovableVertically(){var a=!!this.scrollbar;return this.isMovable()&&(!a||a&&this.scrollbar.canScrollVertically())}onMouseWheel(a){if(Eo.inProgress())a.preventDefault(),
1536
+ a.stopPropagation();else{var b=this.options.zoomOptions&&this.options.zoomOptions.wheel,c=this.options.moveOptions&&this.options.moveOptions.wheel;if(b||c){var d=pa(a);if(ma)var e=a.metaKey;b&&(a.ctrlKey||e||!c)?(d=-d.y/50,b=oa(a,this.getParentSvg(),this.getInverseScreenCTM()),this.zoom(b.x,b.y,d)):(b=this.scrollX-d.x,c=this.scrollY-d.y,a.shiftKey&&!d.x&&(b=this.scrollX-d.y,c=this.scrollY),this.scroll(b,c));a.preventDefault()}}}getBlocksBoundingBox(){var a=this.getTopBoundedElements();if(!a.length)return new cc(0,
1532
1537
  0,0,0);var b=a[0].getBoundingRectangle();for(let d=1;d<a.length;d++){var c=a[d];if(c.isInsertionMarker&&c.isInsertionMarker())continue;c=c.getBoundingRectangle();c.top<b.top&&(b.top=c.top);c.bottom>b.bottom&&(b.bottom=c.bottom);c.left<b.left&&(b.left=c.left);c.right>b.right&&(b.right=c.right)}return b}cleanUp(){function a(g){for(let h of e)if(g.intersects(h))return h;return null}this.setResizesEnabled(!1);var b=$.gd;b||$.B(!0);var c=this.getTopBlocks(!0),d=c.filter(g=>g.isMovable()),e=c.filter(g=>
1533
1538
  !g.isMovable()).map(g=>g.getBoundingRectangle()),f=0;c=this.renderer.getConstants().MIN_BLOCK_HEIGHT;for(let g of d){d=g.getBoundingRectangle();g.moveBy(-d.left,f-d.top,["cleanup"]);g.snapToGrid();d=g.getBoundingRectangle();for(f=a(d);f!=null;)f=f.top+f.getHeight()+c,g.moveBy(0,f-d.top,["cleanup"]),g.snapToGrid(),d=g.getBoundingRectangle(),f=a(d);f=g.getRelativeToSurfaceXY().y+g.getHeightWidth().height+c}$.B(b);this.setResizesEnabled(!0)}showContextMenu(a){if(!this.isReadOnly()&&!this.isFlyout){var b=
1534
- Jj.registry.getContextMenuOptions({workspace:this,focusedNode:this},a);this.configureContextMenu&&this.configureContextMenu(b,a);if(a instanceof PointerEvent)var c=new D(a.clientX,a.clientY);else c=this.RTL?this.getWidth()-5:5,c=pc(this,new D(c,5));Gg(a,b,this.RTL,this,c)}}updateToolbox(a){if(a=Cc(a)){if(!this.options.languageTree)throw Error("Existing toolbox is null. Can't create new toolbox.");if(Fc(a)){if(!this.toolbox)throw Error("Existing toolbox has no categories. Can't change mode.");this.options.languageTree=
1539
+ Kj.registry.getContextMenuOptions({workspace:this,focusedNode:this},a);this.configureContextMenu&&this.configureContextMenu(b,a);if(a instanceof PointerEvent)var c=new D(a.clientX,a.clientY);else c=this.RTL?this.getWidth()-5:5,c=pc(this,new D(c,5));Hg(a,b,this.RTL,this,c)}}updateToolbox(a){if(a=Cc(a)){if(!this.options.languageTree)throw Error("Existing toolbox is null. Can't create new toolbox.");if(Fc(a)){if(!this.toolbox)throw Error("Existing toolbox has no categories. Can't change mode.");this.options.languageTree=
1535
1540
  a;this.toolbox.render(a)}else{if(!this.flyout)throw Error("Existing toolbox has categories. Can't change mode.");this.options.languageTree=a;this.flyout.show(a)}}else if(this.options.languageTree)throw Error("Can't nullify an existing toolbox.");}markFocused(){this.options.parentWorkspace?this.options.parentWorkspace.markFocused():(mb(this),this.getParentSvg().focus({preventScroll:!0}))}zoom(a,b,c){c=Math.pow(this.options.zoomOptions.scaleSpeed,c);var d=this.scale*c;if(this.scale!==d){d>this.options.zoomOptions.maxScale?
1536
1541
  c=this.options.zoomOptions.maxScale/this.scale:d<this.options.zoomOptions.minScale&&(c=this.options.zoomOptions.minScale/this.scale);var e=this.getCanvas().getCTM(),f=this.getParentSvg().createSVGPoint();f.x=a;f.y=b;f=f.matrixTransform(e.inverse());a=f.x;b=f.y;e=e.translate(a*(1-c),b*(1-c)).scale(c);this.scrollX=e.e;this.scrollY=e.f;this.setScale(d)}}zoomCenter(a){var b=this.getMetrics();if(this.flyout){var c=b.svgWidth?b.svgWidth/2:0;b=b.svgHeight?b.svgHeight/2:0}else c=b.viewWidth/2+b.absoluteLeft,
1537
1542
  b=b.viewHeight/2+b.absoluteTop;this.zoom(c,b,a)}zoomToFit(){if(this.isMovable()){var a=this.getMetrics(),b=a.viewWidth;a=a.viewHeight;var c=this.getBlocksBoundingBox(),d=c.right-c.left+40;c=c.bottom-c.top+40;if(d){this.flyout&&(this.horizontalLayout?(a+=this.flyout.getHeight(),c+=this.flyout.getHeight()/this.scale):(b+=this.flyout.getWidth(),d+=this.flyout.getWidth()/this.scale));$.Ub++;try{this.setScale(Math.min(b/d,a/c)),this.scrollCenter()}finally{$.Ub--}this.maybeFireViewportChangeEvent()}}else console.warn("Tried to move a non-movable workspace. This could result in blocks becoming inaccessible.")}beginCanvasTransition(){n(this.getCanvas(),
1538
1543
  "blocklyCanvasTransitioning");n(this.getBubbleCanvas(),"blocklyCanvasTransitioning")}endCanvasTransition(){Ma(this.getCanvas(),"blocklyCanvasTransitioning");Ma(this.getBubbleCanvas(),"blocklyCanvasTransitioning")}scrollCenter(){if(this.isMovable()){var a=this.getMetrics(),b=(a.scrollWidth-a.viewWidth)/2,c=(a.scrollHeight-a.viewHeight)/2;b=-b-a.scrollLeft;c=-c-a.scrollTop;this.scroll(b,c)}else console.warn("Tried to move a non-movable workspace. This could result in blocks becoming inaccessible.")}centerOnBlock(a,
1539
1544
  b){if(this.isMovable()){var c=a?this.getBlockById(a):null;if(c){a=c.getRelativeToSurfaceXY();c=b?{height:c.height,width:c.width}:c.getHeightWidth();var d=this.scale;b=(a.x+(this.RTL?-1:1)*c.width/2)*d;a=(a.y+c.height/2)*d;c=this.getMetrics();this.scroll(-(b-c.viewWidth/2),-(a-c.viewHeight/2))}}else console.warn("Tried to move a non-movable workspace. This could result in blocks becoming inaccessible.")}setScale(a){this.options.zoomOptions.maxScale&&a>this.options.zoomOptions.maxScale?a=this.options.zoomOptions.maxScale:
1540
1545
  this.options.zoomOptions.minScale&&a<this.options.zoomOptions.minScale&&(a=this.options.zoomOptions.minScale);this.scale=a;this.hideChaff(!1);(a=this.getFlyout(!1))&&a.isVisible()&&(a.reflow(),this.recordDragTargets());this.grid&&this.grid.update(this.scale);a=this.getMetrics();this.scrollX-=a.absoluteLeft;this.scrollY-=a.absoluteTop;a.viewLeft+=a.absoluteLeft;a.viewTop+=a.absoluteTop;this.scroll(this.scrollX,this.scrollY);this.scrollbar&&(this.flyout?this.scrollbar.resizeView(a):this.scrollbar.resizeContent(a))}getScale(){return this.scale}getAbsoluteScale(){var a=
1541
- c=>{if(c.isFlyout){let d,e=(d=c.targetWorkspace)==null?void 0:d.getFlyout();if(e instanceof Bo)return e.getFlyoutScale()}return c.getScale()},b=(c,d)=>c.options.parentWorkspace&&c.options.parentWorkspace.getSvgGroup().contains(c.getSvgGroup())?b(c.options.parentWorkspace,d*a(c)):d*a(c);return b(this,1)}scroll(a,b){this.hideChaff(!0);var c=this.getMetrics();a=Math.min(a,-c.scrollLeft);b=Math.min(b,-c.scrollTop);var d=c.scrollTop+Math.max(0,c.scrollHeight-c.viewHeight);a=Math.max(a,-(c.scrollLeft+Math.max(0,
1546
+ c=>{if(c.isFlyout){let d,e=(d=c.targetWorkspace)==null?void 0:d.getFlyout();if(e instanceof Co)return e.getFlyoutScale()}return c.getScale()},b=(c,d)=>c.options.parentWorkspace&&c.options.parentWorkspace.getSvgGroup().contains(c.getSvgGroup())?b(c.options.parentWorkspace,d*a(c)):d*a(c);return b(this,1)}scroll(a,b){this.hideChaff(!0);var c=this.getMetrics();a=Math.min(a,-c.scrollLeft);b=Math.min(b,-c.scrollTop);var d=c.scrollTop+Math.max(0,c.scrollHeight-c.viewHeight);a=Math.max(a,-(c.scrollLeft+Math.max(0,
1542
1547
  c.scrollWidth-c.viewWidth)));b=Math.max(b,-d);this.scrollX=a;this.scrollY=b;this.scrollbar&&this.scrollbar.set(-(a+c.scrollLeft),-(b+c.scrollTop),!1);a+=c.absoluteLeft;b+=c.absoluteTop;this.translate(a,b)}getBlockById(a){return super.getBlockById(a)}getAllBlocks(a=!1){return super.getAllBlocks(a)}getTopBlocks(a=!1){return super.getTopBlocks(a)}addTopBlock(a){this.addTopBoundedElement(a);super.addTopBlock(a)}removeTopBlock(a){this.removeTopBoundedElement(a);super.removeTopBlock(a)}addTopComment(a){this.addTopBoundedElement(a);
1543
- super.addTopComment(a)}removeTopComment(a){this.removeTopBoundedElement(a);super.removeTopComment(a)}getTopComments(a=!1){return super.getTopComments(a)}getCommentById(a){return super.getCommentById(a)}getRootWorkspace(){return super.getRootWorkspace()}addTopBoundedElement(a){this.topBoundedElements.push(a)}removeTopBoundedElement(a){ra(this.topBoundedElements,a)}getTopBoundedElements(a=!1){var b=[].concat(this.topBoundedElements);a&&b.sort(this.sortByOrigin.bind(this));return b}setResizesEnabled(a){var b=
1548
+ super.addTopComment(a)}removeTopComment(a){this.removeTopBoundedElement(a);super.removeTopComment(a)}getTopComments(a=!1){return super.getTopComments(a)}getCommentById(a){return super.getCommentById(a)}getRootWorkspace(){return super.getRootWorkspace()}addTopBoundedElement(a){this.topBoundedElements.push(a)}removeTopBoundedElement(a){qa(this.topBoundedElements,a)}getTopBoundedElements(a=!1){var b=[].concat(this.topBoundedElements);a&&b.sort(this.sortByOrigin.bind(this));return b}setResizesEnabled(a){var b=
1544
1549
  !this.resizesEnabled&&a;this.resizesEnabled=a;b&&this.resizeContents()}clear(){this.setResizesEnabled(!1);super.clear();this.topBoundedElements=[];this.setResizesEnabled(!0)}registerButtonCallback(a,b){if(typeof b!=="function")throw TypeError("Button callbacks must be functions.");this.flyoutButtonCallbacks.set(a,b)}getButtonCallback(a){var b;return(b=this.flyoutButtonCallbacks.get(a))!=null?b:null}removeButtonCallback(a){this.flyoutButtonCallbacks.delete(a)}registerToolboxCategoryCallback(a,b){if(typeof b!==
1545
- "function")throw TypeError("Toolbox category callbacks must be functions.");this.toolboxCategoryCallbacks.set(a,b)}getToolboxCategoryCallback(a){return this.toolboxCategoryCallbacks.get(a)||null}removeToolboxCategoryCallback(a){this.toolboxCategoryCallbacks.delete(a)}getGesture(a){if(qi.mover.isMoving())return a==null||a.preventDefault(),a==null||a.stopPropagation(),null;var b=(a==null?void 0:a.type)==="pointerdown",c;b&&((c=this.currentGesture_)==null?0:c.hasStarted())&&(console.warn("Tried to start the same gesture twice."),
1546
- this.currentGesture_.cancel());!this.currentGesture_&&b&&(this.currentGesture_=new Do(a,this));return this.currentGesture_}clearGesture(){this.currentGesture_=null}cancelCurrentGesture(){this.currentGesture_&&this.currentGesture_.cancel()}getAudioManager(){return this.audioManager}getGrid(){return this.grid}hideChaff(a=!1){Kf();vg(this);nf();this.hideComponents(a)}hideComponents(a=!1){this.getComponentManager().getComponents(Ck.Capability.AUTOHIDEABLE,!0).forEach(b=>b.autoHide(a))}static setTopLevelWorkspaceMetrics(a){var b=
1550
+ "function")throw TypeError("Toolbox category callbacks must be functions.");this.toolboxCategoryCallbacks.set(a,b)}getToolboxCategoryCallback(a){return this.toolboxCategoryCallbacks.get(a)||null}removeToolboxCategoryCallback(a){this.toolboxCategoryCallbacks.delete(a)}getGesture(a){if(ri.mover.isMoving())return a==null||a.preventDefault(),a==null||a.stopPropagation(),null;var b=(a==null?void 0:a.type)==="pointerdown",c;b&&((c=this.currentGesture_)==null?0:c.hasStarted())&&(console.warn("Tried to start the same gesture twice."),
1551
+ this.currentGesture_.cancel());!this.currentGesture_&&b&&(this.currentGesture_=new Eo(a,this));return this.currentGesture_}clearGesture(){this.currentGesture_=null}cancelCurrentGesture(){this.currentGesture_&&this.currentGesture_.cancel()}getAudioManager(){return this.audioManager}getGrid(){return this.grid}hideChaff(a=!1){Lf();wg(this);of();this.hideComponents(a)}hideComponents(a=!1){this.getComponentManager().getComponents(Dk.Capability.AUTOHIDEABLE,!0).forEach(b=>b.autoHide(a))}static setTopLevelWorkspaceMetrics(a){var b=
1547
1552
  this.getMetrics();typeof a.x==="number"&&(this.scrollX=-(b.scrollLeft+(b.scrollWidth-b.viewWidth)*a.x));typeof a.y==="number"&&(this.scrollY=-(b.scrollTop+(b.scrollHeight-b.viewHeight)*a.y));this.translate(this.scrollX+b.absoluteLeft,this.scrollY+b.absoluteTop)}addClass(a){this.injectionDiv&&n(this.injectionDiv,a)}removeClass(a){this.injectionDiv&&Ma(this.injectionDiv,a)}setIsReadOnly(a){super.setIsReadOnly(a);a?this.addClass("blocklyReadOnly"):this.removeClass("blocklyReadOnly")}scrollBoundsIntoView(a,
1548
- b=10){if(!Do.inProgress()){var c=this.getScale(),d=this.getMetricsManager().getViewMetrics(!0);d=new cc(d.top,d.top+d.height,d.left,d.left+d.width);if(!(a.left>=d.left&&a.top>=d.top&&a.right<=d.right&&a.bottom<=d.bottom)){a=a.clone();a.top-=b;a.bottom+=b;a.left-=b;a.right+=b;var e=b=0;a.left<d.left?b=this.RTL?Math.min(d.left-a.left,d.right-a.right):d.left-a.left:a.right>d.right&&(b=this.RTL?d.right-a.right:Math.max(d.right-a.right,d.left-a.left));a.top<d.top?e=d.top-a.top:a.bottom>d.bottom&&(e=Math.max(d.bottom-
1549
- a.bottom,d.top-a.top));this.scroll(this.scrollX+b*c,this.scrollY+e*c)}}}getFocusableElement(){return this.svgGroup_}getFocusableTree(){return this}onNodeFocus(){this.maybeAnnounceScreenreaderHint()}handleWorkspaceFocusTargetFocus(){this.updateAriaLabel();this.maybeAnnounceScreenreaderHint()}maybeAnnounceScreenreaderHint(){Zh.everFocused||this.options.parentWorkspace||(Ja($.C.SCREENREADER_HINT.replace("%1",qe(K.TOGGLE_SCREENREADER))),Zh.everFocused=!0)}onNodeBlur(){}canBeFocused(){return!0}getRootFocusableNode(){return this}getRestoredFocusableNode(a){if(a)return a;
1550
- var b;a=(b=this.targetWorkspace)==null?void 0:b.getFlyout();if(this.isFlyout&&a){let c,d;return(d=(c=a.getContents().find(e=>{e=e.getElement();return $a(e)&&e.canBeFocused()}))==null?void 0:c.getElement())!=null?d:null}if(this.isMutator){let c;return(c=this.getTopBlocks(!0)[0])!=null?c:null}return this.workspaceFocusTarget}getWorkspaceFocusTarget(){return this.workspaceFocusTarget}getNestedTrees(){var a=this.getAllBlocks().map(c=>c.getIcons()).flat().filter(c=>c instanceof $.rh&&c.bubbleIsVisible()).map(c=>
1551
- {var d;return(d=c.getBubble())==null?void 0:d.getWorkspace()}).filter(c=>!!c),b=this.getFlyout(!0);b&&a.push(b.getWorkspace());return a}searchForWorkspaceComment(a){for(let b of this.getTopComments())if(b instanceof ch&&b.canBeFocused()&&b.getFocusableElement().id===a)return b}lookUpFocusableNode(a){if(this.workspaceFocusTargetElement&&this.workspaceFocusTargetElement.id===a)return this.workspaceFocusTarget;var b,c=(b=this.targetWorkspace)==null?void 0:b.getFlyout();if(this.isFlyout&&c)for(var d of c.getContents())if(b=
1553
+ b=10){if(!Eo.inProgress()){var c=this.getScale(),d=this.getMetricsManager().getViewMetrics(!0);d=new cc(d.top,d.top+d.height,d.left,d.left+d.width);if(!(a.left>=d.left&&a.top>=d.top&&a.right<=d.right&&a.bottom<=d.bottom)){a=a.clone();a.top-=b;a.bottom+=b;a.left-=b;a.right+=b;var e=b=0;a.left<d.left?b=this.RTL?Math.min(d.left-a.left,d.right-a.right):d.left-a.left:a.right>d.right&&(b=this.RTL?d.right-a.right:Math.max(d.right-a.right,d.left-a.left));a.top<d.top?e=d.top-a.top:a.bottom>d.bottom&&(e=Math.max(d.bottom-
1554
+ a.bottom,d.top-a.top));this.scroll(this.scrollX+b*c,this.scrollY+e*c)}}}getFocusableElement(){return this.svgGroup_}getFocusableTree(){return this}onNodeFocus(){this.maybeAnnounceScreenreaderHint()}handleWorkspaceFocusTargetFocus(){this.updateAriaLabel();this.maybeAnnounceScreenreaderHint()}maybeAnnounceScreenreaderHint(){$h.everFocused||this.options.parentWorkspace||(Ja($.C.SCREENREADER_HINT.replace("%1",re(K.TOGGLE_SCREENREADER))),$h.everFocused=!0)}onNodeBlur(){}canBeFocused(){return!0}getRootFocusableNode(){return this}getRestoredFocusableNode(a){if(a)return a;
1555
+ var b;a=(b=this.targetWorkspace)==null?void 0:b.getFlyout();if(this.isFlyout&&a){let c,d;return(d=(c=a.getContents().find(e=>{e=e.getElement();return $a(e)&&e.canBeFocused()}))==null?void 0:c.getElement())!=null?d:null}if(this.isMutator){let c;return(c=this.getTopBlocks(!0)[0])!=null?c:null}return this.workspaceFocusTarget}getWorkspaceFocusTarget(){return this.workspaceFocusTarget}getNestedTrees(){var a=this.getAllBlocks().map(c=>c.getIcons()).flat().filter(c=>c instanceof $.sh&&c.bubbleIsVisible()).map(c=>
1556
+ {var d;return(d=c.getBubble())==null?void 0:d.getWorkspace()}).filter(c=>!!c),b=this.getFlyout(!0);b&&a.push(b.getWorkspace());return a}searchForWorkspaceComment(a){for(let b of this.getTopComments())if(b instanceof dh&&b.canBeFocused()&&b.getFocusableElement().id===a)return b}lookUpFocusableNode(a){if(this.workspaceFocusTargetElement&&this.workspaceFocusTargetElement.id===a)return this.workspaceFocusTarget;var b,c=(b=this.targetWorkspace)==null?void 0:b.getFlyout();if(this.isFlyout&&c)for(var d of c.getContents())if(b=
1552
1557
  d.getElement(),$a(b)&&b.canBeFocused()&&b.getFocusableElement().id===a)return b;d=a.indexOf("_field_");b=a.indexOf("_connection_");if(d!==-1){var e=a.substring(0,d);if(e=this.getBlockById(e))for(var f of e.getFields())if(f.canBeFocused()&&f.getFocusableElement().id===a)return f;return null}if(b!==-1){e=a.substring(0,b);if(e=this.getBlockById(e))for(let m of e.getConnections_(!0))if(m.id===a)return m;return null}f=Math.max(a.indexOf("_comment_textarea_"),a.indexOf("_collapse_bar_button"),a.indexOf("_delete_bar_button"));
1553
1558
  if(f!==-1&&(f=a.substring(0,f),f=this.searchForWorkspaceComment(f))){if(a.indexOf("_comment_textarea_")>-1)return f.getEditorFocusableNode();var g;return(g=f.view.getCommentBarButtons().find(m=>m.getFocusableElement().id.includes(a)))!=null?g:null}if((g=this.getAllBlocks(!1).find(m=>m.getFocusableElement().id===a))||(g=this.searchForWorkspaceComment(a)))return g;g=this.getAllBlocks().map(m=>m.getIcons()).flat();for(var h of g){if(h.canBeFocused()&&h.getFocusableElement().id===a)return h;if(xd(h)){if((g=
1554
- h.getBubble())&&g.canBeFocused()&&g.getFocusableElement().id===a)return g;if(g instanceof yn&&g.getEditor().getFocusableElement().id===a)return g.getEditor()}}h=this.getComponentManager().getComponents(Ck.Capability.FOCUSABLE,!1);for(e of h)if(e.getFocusableElement().getAttribute("id")===a)return e;return null}onTreeFocus(){this.updateAriaLabel()}onTreeBlur(a){if(this.isFlyout&&this.targetWorkspace&&!$.t().ephemeralFocusTaken()){var b=this.targetWorkspace.getToolbox();b&&a===b||b&&typeof b.autoHide===
1555
- "function"&&b.autoHide(!1)}}performAction(){ki.show(this,{message:$.C.KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT,id:"workspaceNavigationHint"})}getNavigator(){return this.navigator}setNavigator(a){this.navigator=a}};Zh.everFocused=!1;var vp=class{constructor(a,b,c,d){this.workspace=a;this.name=b;this.type=c||"";this.id=d||Nb()}getId(){return this.id}getName(){return this.name}setName(a){this.name=a;return this}getType(){return this.type}setType(a){this.type=a;return this}getWorkspace(){return this.workspace}save(){var a={name:this.getName(),id:this.getId()},b=this.getType();b&&(a.type=b);return a}static load(a,b){a=new this(b,a.name,a.type,a.id);b.getVariableMap().addVariable(a);w(new (u(v.VAR_CREATE))(a))}};
1556
- A(y.VARIABLE_MODEL,"default",vp);var wp=class{constructor(a,b=!1){this.workspace=a;this.potentialMap=b;this.variableMap=new Map}clear(){for(let a of this.variableMap.values())for(let b of a.values())this.deleteVariable(b);if(this.variableMap.size!==0)throw Error("Non-empty variable map");}renameVariable(a,b){if(a.getName()===b)return a;var c=a.getType();c=this.getVariable(b,c);var d=this.workspace.getAllBlocks(!1),e="";this.potentialMap||(e=$.gd)||$.B(!0);try{c&&c.getId()!==a.getId()?this.renameVariableWithConflict(a,b,c,d):this.renameVariableAndUses(a,
1559
+ h.getBubble())&&g.canBeFocused()&&g.getFocusableElement().id===a)return g;if(g instanceof zn&&g.getEditor().getFocusableElement().id===a)return g.getEditor()}}h=this.getComponentManager().getComponents(Dk.Capability.FOCUSABLE,!1);for(e of h)if(e.getFocusableElement().getAttribute("id")===a)return e;return null}onTreeFocus(){this.updateAriaLabel()}onTreeBlur(a){if(this.isFlyout&&this.targetWorkspace&&!$.t().ephemeralFocusTaken()){var b=this.targetWorkspace.getToolbox();b&&a===b||b&&typeof b.autoHide===
1560
+ "function"&&b.autoHide(!1)}}performAction(){li.show(this,{message:$.C.KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT,id:"workspaceNavigationHint"})}getNavigator(){return this.navigator}setNavigator(a){this.navigator=a}};$h.everFocused=!1;var wp=class{constructor(a,b,c,d){this.workspace=a;this.name=b;this.type=c||"";this.id=d||Nb()}getId(){return this.id}getName(){return this.name}setName(a){this.name=a;return this}getType(){return this.type}setType(a){this.type=a;return this}getWorkspace(){return this.workspace}save(){var a={name:this.getName(),id:this.getId()},b=this.getType();b&&(a.type=b);return a}static load(a,b){a=new this(b,a.name,a.type,a.id);b.getVariableMap().addVariable(a);w(new (u(v.VAR_CREATE))(a))}};
1561
+ A(y.VARIABLE_MODEL,"default",wp);var xp=class{constructor(a,b=!1){this.workspace=a;this.potentialMap=b;this.variableMap=new Map}clear(){for(let a of this.variableMap.values())for(let b of a.values())this.deleteVariable(b);if(this.variableMap.size!==0)throw Error("Non-empty variable map");}renameVariable(a,b){if(a.getName()===b)return a;var c=a.getType();c=this.getVariable(b,c);var d=this.workspace.getAllBlocks(!1),e="";this.potentialMap||(e=$.gd)||$.B(!0);try{c&&c.getId()!==a.getId()?this.renameVariableWithConflict(a,b,c,d):this.renameVariableAndUses(a,
1557
1562
  b,d)}finally{this.potentialMap||$.B(e)}return a}changeVariableType(a,b){var c=a.getType();if(c===b)return a;var d=this.variableMap.get(c);d==null||d.delete(a.getId());(d==null?void 0:d.size)===0&&this.variableMap.delete(c);a.setType(b);var e;d=(e=this.variableMap.get(b))!=null?e:new Map;d.set(a.getId(),a);this.variableMap.has(b)||this.variableMap.set(b,d);w(new (u(v.VAR_TYPE_CHANGE))(a,c,b));return a}renameVariableAndUses(a,b,c){this.potentialMap||w(new (u(v.VAR_RENAME))(a,b));a.setName(b);for(b=
1558
1563
  0;b<c.length;b++)c[b].updateVarName(a)}renameVariableWithConflict(a,b,c,d){var e=a.getType(),f=c.getName();b!==f&&this.renameVariableAndUses(c,b,d);for(b=0;b<d.length;b++)d[b].renameVarById(a.getId(),c.getId());this.potentialMap||w(new (u(v.VAR_DELETE))(a));var g;(g=this.variableMap.get(e))==null||g.delete(a.getId())}createVariable(a,b,c){var d=this.getVariable(a,b);if(d){if(c&&d.getId()!==c)throw Error('Variable "'+a+'" is already in use and its id is "'+d.getId()+'" which conflicts with the passed in id, "'+
1559
1564
  c+'".');return d}if(c&&this.getVariableById(c))throw Error('Variable id, "'+c+'", is already in use.');d=c||Nb();b=b||"";c=Jb(y.VARIABLE_MODEL,this.workspace.options,!0);if(!c)throw Error("No variable model is registered.");d=new c(this.workspace,a,b,d);var e;a=(e=this.variableMap.get(b))!=null?e:new Map;a.set(d.getId(),d);this.variableMap.has(b)||this.variableMap.set(b,a);this.potentialMap||w(new (u(v.VAR_CREATE))(d));return d}addVariable(a){var b=a.getType();this.variableMap.has(b)||this.variableMap.set(b,
1560
- new Map);var c;(c=this.variableMap.get(b))==null||c.set(a.getId(),a)}deleteVariable(a){var b=Yd(this.workspace,a.getId()),c="";this.potentialMap||(c=$.gd)||$.B(!0);try{for(let e=0;e<b.length;e++)b[e].isDeadOrDying()||b[e].dispose(!0);let d=this.variableMap.get(a.getType());d&&d.has(a.getId())&&(d.delete(a.getId()),this.potentialMap||w(new (u(v.VAR_DELETE))(a)),d.size===0&&this.variableMap.delete(a.getType()))}finally{this.potentialMap||$.B(c)}}getVariable(a,b){b=this.variableMap.get(b||"");if(!b)return null;
1561
- var c;return(c=[...b.values()].find(d=>$.jj.equals(d.getName(),a)))!=null?c:null}getVariableById(a){for(let b of this.variableMap.values())if(b.has(a)){let c;return(c=b.get(a))!=null?c:null}return null}getVariablesOfType(a){return(a=this.variableMap.get(a||""))?[...a.values()]:[]}getTypes(){return[...this.variableMap.keys()]}getAllVariables(){var a=[];for(let b of this.variableMap.values())a=a.concat(...b.values());return a}};A(y.VARIABLE_MAP,"default",wp);var xp=class extends eo{constructor(a){super();this.workspace=a;this.id="trashcan";this.uniqueId=Lb();this.contents=[];this.flyout=null;this.isLidOpen=!1;this.svgGroup=null;this.top=this.left=0;this.initialized=!1;this.workspace.options.maxTrashcanContents<=0||(a=this.workspace.copyOptionsForFlyout(),this.workspace.horizontalLayout?(a.toolboxPosition=this.workspace.toolboxPosition===F.TOP?F.BOTTOM:F.TOP,this.flyout=new (Jb(y.FLYOUTS_HORIZONTAL_TOOLBOX,this.workspace.options,!0))(a)):(a.toolboxPosition=
1562
- this.workspace.toolboxPosition===F.RIGHT?F.LEFT:F.RIGHT,this.flyout=new (Jb(y.FLYOUTS_VERTICAL_TOOLBOX,this.workspace.options,!0))(a)),this.workspace.addChangeListener(this.onDelete.bind(this)))}createDom(){this.svgGroup=r(q.G,{"class":"blocklyTrash",tabindex:"0",id:this.uniqueId});r(q.RECT,{width:55,height:68,x:-4,y:-4,rx:2,ry:2,fill:"none","class":"blocklyFocusRing"},this.svgGroup);ya(this.svgGroup,Ka.BUTTON);l(this.svgGroup,p.LABEL,$.C.OPEN_TRASH);var a=String(Math.random()).substring(2);var b=
1563
- r(q.CLIPPATH,{id:"blocklyTrashBodyClipPath"+a},this.svgGroup);r(q.RECT,{width:47,height:44,y:16},b);r(q.IMAGE,{width:kl.width,x:-0,height:kl.height,y:-32,"clip-path":"url(#blocklyTrashBodyClipPath"+a+")"},this.svgGroup).setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",this.workspace.options.pathToMedia+kl.url);b=r(q.CLIPPATH,{id:"blocklyTrashLidClipPath"+a},this.svgGroup);r(q.RECT,{width:47,height:16},b);b=r(q.G,{"class":"blocklyTrashLid"},this.svgGroup);b=r(q.SVG,{viewBox:"0 32 47 16",
1564
- width:47,height:16},b);r(q.IMAGE,{width:kl.width,height:kl.height,href:this.workspace.options.pathToMedia+kl.url},b);ka(this.svgGroup,"pointerdown",this,this.blockMouseDownWhenOpenable);ka(this.svgGroup,"pointerup",this,this.click);return this.svgGroup}init(){if(this.workspace.options.maxTrashcanContents>0){let a=this.flyout.createDom(q.SVG);n(a,"blocklyTrashcanFlyout");Pa(a,this.workspace.getParentSvg());this.flyout.init(this.workspace)}this.workspace.getComponentManager().addComponent({component:this,
1565
- weight:Ck.ComponentWeight.TRASHCAN_WEIGHT,capabilities:[Ck.Capability.AUTOHIDEABLE,Ck.Capability.DELETE_AREA,Ck.Capability.DRAG_TARGET,Ck.Capability.POSITIONABLE,Ck.Capability.FOCUSABLE]});this.initialized=!0;this.setLidOpen(!1)}dispose(){this.workspace.getComponentManager().removeComponent("trashcan");this.svgGroup&&Oa(this.svgGroup)}hasContents(){return!!this.contents.length}contentsIsOpen(){return!!this.flyout&&this.flyout.isVisible()}openFlyout(){if(!this.contentsIsOpen()){var a=this.contents.map(function(c){return JSON.parse(c)}),
1565
+ new Map);var c;(c=this.variableMap.get(b))==null||c.set(a.getId(),a)}deleteVariable(a){var b=Zd(this.workspace,a.getId()),c="";this.potentialMap||(c=$.gd)||$.B(!0);try{for(let e=0;e<b.length;e++)b[e].isDeadOrDying()||b[e].dispose(!0);let d=this.variableMap.get(a.getType());d&&d.has(a.getId())&&(d.delete(a.getId()),this.potentialMap||w(new (u(v.VAR_DELETE))(a)),d.size===0&&this.variableMap.delete(a.getType()))}finally{this.potentialMap||$.B(c)}}getVariable(a,b){b=this.variableMap.get(b||"");if(!b)return null;
1566
+ var c;return(c=[...b.values()].find(d=>$.kj.equals(d.getName(),a)))!=null?c:null}getVariableById(a){for(let b of this.variableMap.values())if(b.has(a)){let c;return(c=b.get(a))!=null?c:null}return null}getVariablesOfType(a){return(a=this.variableMap.get(a||""))?[...a.values()]:[]}getTypes(){return[...this.variableMap.keys()]}getAllVariables(){var a=[];for(let b of this.variableMap.values())a=a.concat(...b.values());return a}};A(y.VARIABLE_MAP,"default",xp);var yp=class extends fo{constructor(a){super();this.workspace=a;this.id="trashcan";this.uniqueId=Lb();this.contents=[];this.flyout=null;this.isLidOpen=!1;this.svgGroup=null;this.top=this.left=0;this.initialized=!1;this.workspace.options.maxTrashcanContents<=0||(a=this.workspace.copyOptionsForFlyout(),this.workspace.horizontalLayout?(a.toolboxPosition=this.workspace.toolboxPosition===F.TOP?F.BOTTOM:F.TOP,this.flyout=new (Jb(y.FLYOUTS_HORIZONTAL_TOOLBOX,this.workspace.options,!0))(a)):(a.toolboxPosition=
1567
+ this.workspace.toolboxPosition===F.RIGHT?F.LEFT:F.RIGHT,this.flyout=new (Jb(y.FLYOUTS_VERTICAL_TOOLBOX,this.workspace.options,!0))(a)),this.workspace.addChangeListener(this.onDelete.bind(this)))}createDom(){this.svgGroup=r(q.G,{"class":"blocklyTrash",tabindex:"0",id:this.uniqueId});r(q.RECT,{width:55,height:68,x:-4,y:-4,rx:2,ry:2,fill:"none","class":"blocklyFocusRing"},this.svgGroup);ya(this.svgGroup,Ka.BUTTON);l(this.svgGroup,p.LABEL,$.C.ARIA_LABEL_TRASH_EMPTY);l(this.svgGroup,p.DISABLED,!0);var a=
1568
+ String(Math.random()).substring(2);var b=r(q.CLIPPATH,{id:"blocklyTrashBodyClipPath"+a},this.svgGroup);r(q.RECT,{width:47,height:44,y:16},b);r(q.IMAGE,{width:ll.width,x:-0,height:ll.height,y:-32,"clip-path":"url(#blocklyTrashBodyClipPath"+a+")"},this.svgGroup).setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",this.workspace.options.pathToMedia+ll.url);b=r(q.CLIPPATH,{id:"blocklyTrashLidClipPath"+a},this.svgGroup);r(q.RECT,{width:47,height:16},b);b=r(q.G,{"class":"blocklyTrashLid"},this.svgGroup);
1569
+ b=r(q.SVG,{viewBox:"0 32 47 16",width:47,height:16},b);r(q.IMAGE,{width:ll.width,height:ll.height,href:this.workspace.options.pathToMedia+ll.url},b);ja(this.svgGroup,"pointerdown",this,this.blockMouseDownWhenOpenable);ja(this.svgGroup,"pointerup",this,this.click);return this.svgGroup}init(){if(this.workspace.options.maxTrashcanContents>0){let a=this.flyout.createDom(q.SVG);n(a,"blocklyTrashcanFlyout");Pa(a,this.workspace.getParentSvg());this.flyout.init(this.workspace)}this.workspace.getComponentManager().addComponent({component:this,
1570
+ weight:Dk.ComponentWeight.TRASHCAN_WEIGHT,capabilities:[Dk.Capability.AUTOHIDEABLE,Dk.Capability.DELETE_AREA,Dk.Capability.DRAG_TARGET,Dk.Capability.POSITIONABLE,Dk.Capability.FOCUSABLE]});this.initialized=!0;this.setLidOpen(!1)}dispose(){this.workspace.getComponentManager().removeComponent("trashcan");this.svgGroup&&Oa(this.svgGroup)}hasContents(){return!!this.contents.length}contentsIsOpen(){return!!this.flyout&&this.flyout.isVisible()}openFlyout(){if(!this.contentsIsOpen()){var a=this.contents.map(function(c){return JSON.parse(c)}),
1566
1571
  b=this.workspace.getParentSvg().style;b.cursor="wait";setTimeout(()=>{var c;(c=this.flyout)==null||c.show(a);b.cursor="";var d;(d=this.workspace.scrollbar)==null||d.setVisible(!1);if(Nd.getIsActive()){let e,f;(c=(f=(e=this.flyout)==null?void 0:e.getWorkspace())==null?void 0:f.getNavigator().getFirstNode())&&$.t().focusNode(c)}},10);this.fireUiEvent(!0)}}closeFlyout(){if(this.contentsIsOpen()){var a;(a=this.flyout)==null||a.hide();var b;(b=this.workspace.scrollbar)==null||b.setVisible(!0);this.fireUiEvent(!1);
1567
- this.workspace.recordDragTargets()}}autoHide(a){!a&&this.flyout&&this.closeFlyout()}emptyContents(){if(this.hasContents()){this.contents.length=0;var a;(a=this.svgGroup)==null||a.classList.remove("blocklyTrashFull");this.closeFlyout()}}position(a,b){if(this.initialized){var c=Lc(this.workspace,a);a=Kc(c,new hc(47,60),20,20,a,this.workspace);b=Nc(a,20,c.vertical===Jc.TOP?Mc.DOWN:Mc.UP,b);this.top=b.top;this.left=b.left;var d;(d=this.svgGroup)==null||d.setAttribute("transform","translate("+this.left+
1568
- ","+this.top+")");var e;(e=this.flyout)==null||e.position()}}getBoundingRectangle(){return new cc(this.top,this.top+44+16,this.left,this.left+47)}getClientRect(){if(!this.svgGroup)return null;var a=this.svgGroup.getBoundingClientRect(),b=a.top+32-10;a=a.left+0-10;return new cc(b,b+16+44+20,a,a+47+20)}onDragOver(){qi.mover.isMoving()||this.setLidOpen(this.wouldDelete_)}onDragExit(){qi.mover.isMoving()||this.setLidOpen(!1)}onDrop(){qi.mover.isMoving()||setTimeout(this.setLidOpen.bind(this,!1),100)}setLidOpen(a){if(this.isLidOpen!==
1569
- a){this.isLidOpen=a;var b;(b=this.svgGroup)==null||b.classList.toggle("blocklyTrashOpen",a)}}closeLid(){this.setLidOpen(!1)}click(){this.hasContents()&&!this.workspace.isDragging()&&this.openFlyout()}fireUiEvent(a){a=new (u(v.TRASHCAN_OPEN))(a,this.workspace.id);w(a)}blockMouseDownWhenOpenable(a){!this.contentsIsOpen()&&this.hasContents()&&a.stopPropagation()}onDelete(a){if(!(this.workspace.options.maxTrashcanContents<=0||a.type!==v.BLOCK_DELETE||a.wasShadow)){if(!a.oldJson)throw Error("Encountered a delete event without proper oldJson");
1570
- a=JSON.stringify(this.cleanBlockJson(a.oldJson));if(!this.contents.includes(a)){for(this.contents.unshift(a);this.contents.length>this.workspace.options.maxTrashcanContents;)this.contents.pop();var b;(b=this.svgGroup)==null||b.classList.add("blocklyTrashFull")}}}cleanBlockJson(a){function b(c){if(c){delete c.id;delete c.x;delete c.y;delete c.enabled;delete c.disabledReasons;if(c.icons&&c.icons.comment){var d=c.icons.comment;delete d.height;delete d.width;delete d.pinned}d=c.inputs;for(var e in d){var f=
1571
- d[e];let g=f.block;f=f.shadow;g&&b(g);f&&b(f)}c.next&&(e=c.next,c=e.block,e=e.shadow,c&&b(c),e&&b(e))}}a=JSON.parse(JSON.stringify(a));b(a);return Object.assign({},{kind:"BLOCK"},a)}getFocusableElement(){if(!this.svgGroup)throw Error("Tried to focus uninitialized trashcan");return this.svgGroup}getFocusableTree(){return this.workspace}onNodeFocus(){}onNodeBlur(){}canBeFocused(){return!!this.svgGroup}performAction(){this.click()}};ta("\n .blocklyTrash {\n opacity: 0.4;\n transition: opacity 0.08 ease-out;\n }\n\n .blocklyTrashLid {\n transition: rotate 0.08s ease-out;\n transform-origin: 46px 12px;\n rotate: 0deg;\n pointer-events: none;\n }\n\n .blocklyRTL .blocklyTrashLid {\n transform-origin: 0px 12px;\n }\n\n .blocklyTrash.blocklyTrashFull .blocklyTrashLid {\n rotate: 5deg;\n }\n\n .blocklyRTL .blocklyTrash.blocklyTrashFull .blocklyTrashLid {\n rotate: -5deg;\n }\n\n .blocklyTrash.blocklyTrashOpen,\n .blocklyTrash:hover,\n .blocklyTrash:focus {\n opacity: 0.8;\n }\n\n .blocklyTrash.blocklyTrashFull.blocklyTrashOpen .blocklyTrashLid,\n .blocklyTrash.blocklyTrashFull:hover .blocklyTrashLid,\n .blocklyTrash.blocklyTrashFull:focus .blocklyTrashLid {\n rotate: 45deg;\n }\n\n .blocklyRTL .blocklyTrash.blocklyTrashFull.blocklyTrashOpen .blocklyTrashLid,\n .blocklyRTL .blocklyTrash.blocklyTrashFull:hover .blocklyTrashLid,\n .blocklyRTL .blocklyTrash.blocklyTrashFull:focus .blocklyTrashLid {\n rotate: -45deg;\n }\n");var yp=class{constructor(a,b){this.procedureModelClass=a;this.parameterModelClass=b;this.priority=75}save(a){a=a.getProcedureMap().getProcedures().map(b=>zj(b));return a.length?a:null}load(a,b){var c=b.getProcedureMap();for(let d of a)c.add(Aj(this.procedureModelClass,this.parameterModelClass,d,b))}clear(a){a.getProcedureMap().clear()}},zp={};zp.ProcedureSerializer=yp;zp.loadProcedure=Aj;zp.saveProcedure=zj;var Ap=class{constructor(){this.priority=100}save(a){a=a.getVariableMap().getAllVariables().map(b=>b.save());return a.length?a:null}load(a,b){var c=Fb(y.VARIABLE_MODEL,"default",void 0);a.forEach(d=>{c==null||c.load(d,b)})}clear(a){a.getVariableMap().clear()}};Oc("variables",new Ap);var Bp={};Bp.VariableSerializer=Ap;var Cp={blocks:Pm,exceptions:Nm,priorities:{BLOCKS:50,PROCEDURES:75,VARIABLES:100,WORKSPACE_COMMENTS:25},procedures:zp,registry:ql,variables:Bp,workspaceComments:sl,workspaces:{load:function(a,b,{recordUndo:c=!1}={}){var d=Ib(y.SERIALIZER,!0);if(d){d=Object.entries(d).sort((f,g)=>g[1].priority-f[1].priority);var e=$.Qc;$.Qc=c;(c=$.gd)||$.B(!0);Ta();b instanceof Zh&&b.setResizesEnabled(!1);for(let [,f]of d.reverse()){let g;(g=f)==null||g.clear(b)}for(let [f,g]of d.reverse())if(a[f]){let h;(h=g)==null||
1572
- h.load(a[f],b)}b instanceof Zh&&b.setResizesEnabled(!0);Ua();w(new (u(v.FINISHED_LOADING))(b));$.B(c);$.Qc=e}},save:function(a){var b=Object.create(null),c=Ib(y.SERIALIZER,!0);for(let d in c){let e,f=(e=c[d])==null?void 0:e.save(a);f&&(b[d]=f)}return b}}};"Blockly"in globalThis||(globalThis.Blockly={Msg:Zk});var Dp=class{load(a,b){a=new Ci(b.getWorkspace(),b.targetWorkspace,a,!0);a.show();return new fo(a,"label")}gapForItem(a,b){return b}disposeItem(a){a=a.getElement();a instanceof Ci&&a.dispose()}getType(){return"label"}};A(y.FLYOUT_INFLATER,"label",Dp);var Ep=class extends kp{constructor(a){super();this.GRID_UNIT=4;this.CURSOR_COLOUR="#ffa200";this.CURSOR_RADIUS=5;this.JAGGED_TEETH_WIDTH=this.JAGGED_TEETH_HEIGHT=0;this.START_HAT_HEIGHT=22;this.START_HAT_WIDTH=96;this.SHAPES={HEXAGONAL:1,ROUND:2,SQUARE:3,PUZZLE:4,NOTCH:5};this.SHAPE_IN_SHAPE_PADDING={1:{0:5*this.GRID_UNIT,1:2*this.GRID_UNIT,2:5*this.GRID_UNIT,3:5*this.GRID_UNIT},2:{0:3*this.GRID_UNIT,1:3*this.GRID_UNIT,2:1*this.GRID_UNIT,3:2*this.GRID_UNIT},3:{0:2*this.GRID_UNIT,1:2*this.GRID_UNIT,
1572
+ this.workspace.recordDragTargets()}}autoHide(a){!a&&this.flyout&&this.closeFlyout()}emptyContents(){this.hasContents()&&this.svgGroup&&(this.contents.length=0,this.svgGroup.classList.remove("blocklyTrashFull"),l(this.svgGroup,p.LABEL,$.C.ARIA_LABEL_TRASH_EMPTY),l(this.svgGroup,p.DISABLED,!0),this.closeFlyout())}position(a,b){if(this.initialized){var c=Lc(this.workspace,a);a=Kc(c,new hc(47,60),20,20,a,this.workspace);b=Nc(a,20,c.vertical===Jc.TOP?Mc.DOWN:Mc.UP,b);this.top=b.top;this.left=b.left;var d;
1573
+ (d=this.svgGroup)==null||d.setAttribute("transform","translate("+this.left+","+this.top+")");var e;(e=this.flyout)==null||e.position()}}getBoundingRectangle(){return new cc(this.top,this.top+44+16,this.left,this.left+47)}getClientRect(){if(!this.svgGroup)return null;var a=this.svgGroup.getBoundingClientRect(),b=a.top+32-10;a=a.left+0-10;return new cc(b,b+16+44+20,a,a+47+20)}onDragOver(){ri.mover.isMoving()||this.setLidOpen(this.wouldDelete_)}onDragExit(){ri.mover.isMoving()||this.setLidOpen(!1)}onDrop(){ri.mover.isMoving()||
1574
+ setTimeout(this.setLidOpen.bind(this,!1),100)}setLidOpen(a){if(this.isLidOpen!==a){this.isLidOpen=a;var b;(b=this.svgGroup)==null||b.classList.toggle("blocklyTrashOpen",a)}}closeLid(){this.setLidOpen(!1)}click(){this.hasContents()&&!this.workspace.isDragging()&&this.openFlyout()}fireUiEvent(a){a=new (u(v.TRASHCAN_OPEN))(a,this.workspace.id);w(a)}blockMouseDownWhenOpenable(a){!this.contentsIsOpen()&&this.hasContents()&&a.stopPropagation()}onDelete(a){if(!(this.workspace.options.maxTrashcanContents<=
1575
+ 0||a.type!==v.BLOCK_DELETE||a.wasShadow)&&this.svgGroup){if(!a.oldJson)throw Error("Encountered a delete event without proper oldJson");a=JSON.stringify(this.cleanBlockJson(a.oldJson));if(!this.contents.includes(a)){for(this.contents.unshift(a);this.contents.length>this.workspace.options.maxTrashcanContents;)this.contents.pop();this.svgGroup.classList.add("blocklyTrashFull");l(this.svgGroup,p.LABEL,$.C.OPEN_TRASH);za(this.svgGroup,p.DISABLED)}}}cleanBlockJson(a){function b(c){if(c){delete c.id;delete c.x;
1576
+ delete c.y;delete c.enabled;delete c.disabledReasons;if(c.icons&&c.icons.comment){var d=c.icons.comment;delete d.height;delete d.width;delete d.pinned}d=c.inputs;for(var e in d){var f=d[e];let g=f.block;f=f.shadow;g&&b(g);f&&b(f)}c.next&&(e=c.next,c=e.block,e=e.shadow,c&&b(c),e&&b(e))}}a=JSON.parse(JSON.stringify(a));b(a);return Object.assign({},{kind:"BLOCK"},a)}getFocusableElement(){if(!this.svgGroup)throw Error("Tried to focus uninitialized trashcan");return this.svgGroup}getFocusableTree(){return this.workspace}onNodeFocus(){}onNodeBlur(){}canBeFocused(){return!!this.svgGroup}performAction(){this.click()}};
1577
+ ta("\n .blocklyTrash {\n opacity: 0.4;\n transition: opacity 0.08 ease-out;\n }\n\n .blocklyTrashLid {\n transition: rotate 0.08s ease-out;\n transform-origin: 46px 12px;\n rotate: 0deg;\n pointer-events: none;\n }\n\n .blocklyRTL .blocklyTrashLid {\n transform-origin: 0px 12px;\n }\n\n .blocklyTrash.blocklyTrashFull .blocklyTrashLid {\n rotate: 5deg;\n }\n\n .blocklyRTL .blocklyTrash.blocklyTrashFull .blocklyTrashLid {\n rotate: -5deg;\n }\n\n .blocklyTrash.blocklyTrashOpen,\n .blocklyTrash.blocklyTrashFull:hover,\n .blocklyTrash.blocklyTrashFull:focus {\n opacity: 0.8;\n }\n\n .blocklyTrash.blocklyTrashOpen .blocklyTrashLid,\n .blocklyTrash.blocklyTrashFull:hover .blocklyTrashLid,\n .blocklyTrash.blocklyTrashFull:focus .blocklyTrashLid {\n rotate: 45deg;\n }\n\n .blocklyRTL .blocklyTrash.blocklyTrashFull.blocklyTrashOpen .blocklyTrashLid,\n .blocklyRTL .blocklyTrash.blocklyTrashFull:hover .blocklyTrashLid,\n .blocklyRTL .blocklyTrash.blocklyTrashFull:focus .blocklyTrashLid {\n rotate: -45deg;\n }\n");var zp=class{constructor(a,b){this.procedureModelClass=a;this.parameterModelClass=b;this.priority=75}save(a){a=a.getProcedureMap().getProcedures().map(b=>Aj(b));return a.length?a:null}load(a,b){var c=b.getProcedureMap();for(let d of a)c.add(Bj(this.procedureModelClass,this.parameterModelClass,d,b))}clear(a){a.getProcedureMap().clear()}},Ap={};Ap.ProcedureSerializer=zp;Ap.loadProcedure=Bj;Ap.saveProcedure=Aj;var Bp=class{constructor(){this.priority=100}save(a){a=a.getVariableMap().getAllVariables().map(b=>b.save());return a.length?a:null}load(a,b){var c=Fb(y.VARIABLE_MODEL,"default",void 0);a.forEach(d=>{c==null||c.load(d,b)})}clear(a){a.getVariableMap().clear()}};Oc("variables",new Bp);var Cp={};Cp.VariableSerializer=Bp;var Dp={blocks:Qm,exceptions:Om,priorities:{BLOCKS:50,PROCEDURES:75,VARIABLES:100,WORKSPACE_COMMENTS:25},procedures:Ap,registry:rl,variables:Cp,workspaceComments:tl,workspaces:{load:function(a,b,{recordUndo:c=!1}={}){var d=Ib(y.SERIALIZER,!0);if(d){d=Object.entries(d).sort((f,g)=>g[1].priority-f[1].priority);var e=$.Qc;$.Qc=c;(c=$.gd)||$.B(!0);Ta();b instanceof $h&&b.setResizesEnabled(!1);for(let [,f]of d.reverse()){let g;(g=f)==null||g.clear(b)}for(let [f,g]of d.reverse())if(a[f]){let h;(h=g)==null||
1578
+ h.load(a[f],b)}b instanceof $h&&b.setResizesEnabled(!0);Ua();w(new (u(v.FINISHED_LOADING))(b));$.B(c);$.Qc=e}},save:function(a){var b=Object.create(null),c=Ib(y.SERIALIZER,!0);for(let d in c){let e,f=(e=c[d])==null?void 0:e.save(a);f&&(b[d]=f)}return b}}};"Blockly"in globalThis||(globalThis.Blockly={Msg:$k});var Ep=class{load(a,b){a=new Di(b.getWorkspace(),b.targetWorkspace,a,!0);a.show();return new go(a,"label")}gapForItem(a,b){return b}disposeItem(a){a=a.getElement();a instanceof Di&&a.dispose()}getType(){return"label"}};A(y.FLYOUT_INFLATER,"label",Ep);var Fp=class{constructor(){this.size=new hc(0,0)}getHeightWidth(){return this.size}show(a,b){this.parentConnection=a;this.parentConnection.attachInsertionMarker(this);var c=b.getSourceBlock(),d=new Map;for(var e of c.getConnections_(!1))d.set(e,e.targetConnection),e.targetConnection=null;b.targetConnection=a;c.workspace.getRenderer().render(c);this.partiallyTighten(c,b);this.marker=this.makeMarker(c);e=c.getBoundingRectangleWithoutChildren();this.size=new hc(e.getWidth(),e.getHeight());e=a.getSourceBlock().getRelativeToSurfaceXY();
1579
+ var f=D.difference(a.getOffsetInBlock(),b.getOffsetInBlock());for(let [g,h]of d.entries())g.targetConnection=h;c.workspace.getRenderer().render(c);this.partiallyTighten(c,b);this.marker.setAttribute("transform",`translate(${e.x+f.x}, ${e.y+f.y})`);a.getSourceBlock().queueRender();dd()}hide(){if(this.parentConnection){var a;(a=this.marker)==null||a.remove();this.marker=void 0;this.parentConnection.detachInsertionMarker();var b;(b=this.parentConnection)==null||b.getSourceBlock().queueRender();dd();
1580
+ this.parentConnection=void 0}}makeMarker(a){var b=r(q.G,{transform:`translate(${a.relativeCoords.x}, ${a.relativeCoords.y})`,"class":"blocklyInsertionMarker"}),c;r(q.PATH,{d:(c=a.pathObject.svgPath.getAttribute("d"))!=null?c:"","class":"blocklyPath"},b);a.workspace.getCanvas().appendChild(b);return b}partiallyTighten(a,b){for(let c of a.inputList){if(c===b.getParentInput())continue;let d=c.connection;d&&d.tightenEfficiently()}a.nextConnection&&a.nextConnection!==b&&a.nextConnection.tightenEfficiently()}};var Gp=class extends lp{constructor(){super();this.FIELD_TEXT_BASELINE_CENTER=!1;this.DARK_PATH_OFFSET=1;this.MAX_BOTTOM_WIDTH=30;this.STATEMENT_BOTTOM_SPACER=-this.NOTCH_HEIGHT/2}getCSS_(a){return super.getCSS_(a).concat([`${a} .blocklyInsertionMarker>.blocklyPathLight,`,`${a} .blocklyInsertionMarker>.blocklyPathDark {`,`fill-opacity: ${this.INSERTION_MARKER_OPACITY};`,"stroke: none;","}"])}};var Hp=class{constructor(a){this.inlineSteps_=this.steps_="";this.info_=a;this.RTL_=this.info_.RTL;a=a.getRenderer();this.constants_=a.getConstants();this.highlightConstants_=a.getHighlightConstants();this.highlightOffset=this.highlightConstants_.OFFSET;this.outsideCornerPaths_=this.highlightConstants_.OUTSIDE_CORNER;this.insideCornerPaths_=this.highlightConstants_.INSIDE_CORNER;this.puzzleTabPaths_=this.highlightConstants_.PUZZLE_TAB;this.notchPaths_=this.highlightConstants_.NOTCH;this.startPaths_=
1581
+ this.highlightConstants_.START_HAT;this.jaggedTeethPaths_=this.highlightConstants_.JAGGED_TEETH}getPath(){return this.steps_+"\n"+this.inlineSteps_}drawTopCorner(a){this.steps_+=Dh(a.xPos,this.info_.startY);for(let b=0,c;c=a.elements[b];b++)Q.isLeftSquareCorner(c)?this.steps_+=this.highlightConstants_.START_POINT:Q.isLeftRoundedCorner(c)?this.steps_+=this.outsideCornerPaths_.topLeft(this.RTL_):Q.isPreviousConnection(c)?this.steps_+=this.notchPaths_.pathLeft:Q.isHat(c)?this.steps_+=this.startPaths_.path(this.RTL_):
1582
+ Q.isSpacer(c)&&c.width!==0&&(this.steps_+=I("H",c.xPos+c.width-this.highlightOffset));this.steps_+=I("H",a.xPos+a.width-this.highlightOffset)}drawJaggedEdge_(a){this.info_.RTL&&(this.steps_+=this.jaggedTeethPaths_.pathLeft+I("v",a.height-this.jaggedTeethPaths_.height-this.highlightOffset))}drawValueInput(a){var b=a.getLastInput();if(this.RTL_){let c=a.height-b.connectionHeight;this.steps_+=Ch(b.xPos+b.width-this.highlightOffset,a.yPos)+this.puzzleTabPaths_.pathDown(this.RTL_)+I("v",c)}else this.steps_+=
1583
+ Ch(b.xPos+b.width,a.yPos)+this.puzzleTabPaths_.pathDown(this.RTL_)}drawStatementInput(a){var b=a.getLastInput();if(b)if(this.RTL_){let c=a.height-2*this.insideCornerPaths_.height;this.steps_+=Ch(b.xPos,a.yPos)+this.insideCornerPaths_.pathTop(this.RTL_)+I("v",c)+this.insideCornerPaths_.pathBottom(this.RTL_)+Eh(a.width-b.xPos-this.insideCornerPaths_.width,0)}else this.steps_+=Ch(b.xPos,a.yPos+a.height)+this.insideCornerPaths_.pathBottom(this.RTL_)+Eh(a.width-b.xPos-this.insideCornerPaths_.width,0)}drawRightSideRow(a){var b=
1584
+ a.xPos+a.width-this.highlightOffset;a instanceof gp&&a.followsStatement&&(this.steps_+=I("H",b));this.RTL_&&(this.steps_+=I("H",b),a.height>this.highlightOffset&&(this.steps_+=I("V",a.yPos+a.height-this.highlightOffset)))}drawBottomRow(a){if(this.RTL_)this.steps_+=I("V",a.baseline-this.highlightOffset);else{let b=this.info_.bottomRow.elements[0];Q.isLeftSquareCorner(b)?this.steps_+=Ch(a.xPos+this.highlightOffset,a.baseline-this.highlightOffset):Q.isLeftRoundedCorner(b)&&(this.steps_+=Ch(a.xPos,a.baseline),
1585
+ this.steps_+=this.outsideCornerPaths_.bottomLeft())}}drawLeft(){var a=this.info_.outputConnection;a&&(a=a.connectionOffsetY+a.height,this.RTL_?this.steps_+=Ch(this.info_.startX,a):(this.steps_+=Ch(this.info_.startX+this.highlightOffset,this.info_.bottomRow.baseline-this.highlightOffset),this.steps_+=I("V",a)),this.steps_+=this.puzzleTabPaths_.pathUp(this.RTL_));this.RTL_||(a=this.info_.topRow,Q.isLeftRoundedCorner(a.elements[0])?this.steps_+=I("V",this.outsideCornerPaths_.height):this.steps_+=I("V",
1586
+ a.capline+this.highlightOffset))}drawInlineInput(a){var b=this.highlightOffset,c=a.xPos+a.connectionWidth,d=a.centerline-a.height/2,e=a.width-a.connectionWidth,f=d+b;this.RTL_?(d=a.connectionOffsetY-b,a=a.height-(a.connectionOffsetY+a.connectionHeight)+b,this.inlineSteps_+=Ch(c-b,f)+I("v",d)+this.puzzleTabPaths_.pathDown(this.RTL_)+I("v",a)+I("h",e)):this.inlineSteps_+=Ch(a.xPos+a.width+b,f)+I("v",a.height)+I("h",-e)+Ch(c,d+a.connectionOffsetY)+this.puzzleTabPaths_.pathDown(this.RTL_)}};var Ip=class extends mp{constructor(a,b){super(a,b);this.highlighter_=new Hp(b)}draw(){this.drawOutline_();this.drawInternals_();this.updateConnectionHighlights();var a=this.block_.pathObject;a.setPath(this.outlinePath_+"\n"+this.inlinePath_);a.setHighlightPath(this.highlighter_.getPath());this.info_.RTL&&a.flipRTL();this.recordSizeOnBlock_()}drawTop_(){this.highlighter_.drawTopCorner(this.info_.topRow);this.highlighter_.drawRightSideRow(this.info_.topRow);super.drawTop_()}drawJaggedEdge_(a){this.highlighter_.drawJaggedEdge_(a);
1587
+ super.drawJaggedEdge_(a)}drawValueInput_(a){this.highlighter_.drawValueInput(a);super.drawValueInput_(a)}drawStatementInput_(a){this.highlighter_.drawStatementInput(a);super.drawStatementInput_(a)}drawRightSideRow_(a){this.highlighter_.drawRightSideRow(a);this.outlinePath_+=I("H",a.xPos+a.width)+I("V",a.yPos+a.height)}drawBottom_(){this.highlighter_.drawBottomRow(this.info_.bottomRow);super.drawBottom_()}drawLeft_(){this.highlighter_.drawLeft();super.drawLeft_()}drawInlineInput_(a){this.highlighter_.drawInlineInput(a);
1588
+ super.drawInlineInput_(a)}positionInlineInputConnection_(a){var b=a.centerline-a.height/2;if(a.connectionModel){let c=a.xPos+a.connectionWidth+this.constants_.DARK_PATH_OFFSET;this.info_.RTL&&(c*=-1);a.connectionModel.setOffsetInBlock(c,b+a.connectionOffsetY+this.constants_.DARK_PATH_OFFSET)}}positionStatementInputConnection_(a){var b=a.getLastInput();if(b==null?0:b.connectionModel){let c=a.xPos+a.statementEdge+b.notchOffset;c=this.info_.RTL?c*-1:c+this.constants_.DARK_PATH_OFFSET;b.connectionModel.setOffsetInBlock(c,
1589
+ a.yPos+this.constants_.DARK_PATH_OFFSET)}}positionExternalValueConnection_(a){var b=a.getLastInput();if(b&&b.connectionModel){let c=a.xPos+a.width+this.constants_.DARK_PATH_OFFSET;this.info_.RTL&&(c*=-1);b.connectionModel.setOffsetInBlock(c,a.yPos)}}positionNextConnection_(){var a=this.info_.bottomRow;if(a.connection){let b=a.connection,c=b.xPos;b.connectionModel.setOffsetInBlock((this.info_.RTL?-c:c)+this.constants_.DARK_PATH_OFFSET/2,a.baseline+this.constants_.DARK_PATH_OFFSET)}}};var Jp=class{constructor(a){this.OFFSET=.5;this.constantProvider=a;this.START_POINT=Dh(this.OFFSET,this.OFFSET)}init(){this.INSIDE_CORNER=this.makeInsideCorner();this.OUTSIDE_CORNER=this.makeOutsideCorner();this.PUZZLE_TAB=this.makePuzzleTab();this.NOTCH=this.makeNotch();this.JAGGED_TEETH=this.makeJaggedTeeth();this.START_HAT=this.makeStartHat()}makeInsideCorner(){var a=this.constantProvider.CORNER_RADIUS,b=this.OFFSET,c=(1-Math.SQRT1_2)*(a+b)-b,d=Dh(c,c)+Gh("a","0 0,0",a,H(-c-b,a-c)),e=Gh("a","0 0,0",
1590
+ a+b,H(a+b,a+b)),f=Dh(c,-c)+Gh("a","0 0,0",a+b,H(a-c,c+b));return{width:a+b,height:a,pathTop(g){return g?d:""},pathBottom(g){return g?e:f}}}makeOutsideCorner(){var a=this.constantProvider.CORNER_RADIUS,b=this.OFFSET,c=(1-Math.SQRT1_2)*(a-b)+b,d=Dh(c,c)+Gh("a","0 0,1",a-b,H(a-c,-c+b)),e=Dh(b,a)+Gh("a","0 0,1",a-b,H(a,-a+b)),f=-c,g=Dh(c,f)+Gh("a","0 0,1",a-b,H(-c+b,-f-a));return{height:a,topLeft(h){return h?d:e},bottomLeft(){return g}}}makePuzzleTab(){var a=this.constantProvider.TAB_WIDTH,b=this.constantProvider.TAB_HEIGHT,
1591
+ c=Dh(-2,-b+2.5+.9)+Eh(a*-.45,-2.1),d=I("v",2.5)+Dh(-a*.97,2.5)+Bh("q",[H(-a*.05,10),H(a*.3,9.5)])+Dh(a*.67,-1.9)+I("v",2.5),e=I("v",-1.5)+Dh(a*-.92,-.5)+Bh("q",[H(a*-.19,-5.5),H(0,-11)])+Dh(a*.92,1),f=Dh(-5,b-.7)+Eh(a*.46,-2.1);return{width:a,height:b,pathUp(g){return g?c:e},pathDown(g){return g?d:f}}}makeNotch(){return{pathLeft:I("h",this.OFFSET)+this.constantProvider.NOTCH.pathLeft}}makeJaggedTeeth(){return{pathLeft:Eh(5.1,2.6)+Dh(-10.2,6.8)+Eh(5.1,2.6),height:12,width:10.2}}makeStartHat(){var a=
1592
+ this.constantProvider.START_HAT.height,b=Dh(25,-8.7)+Bh("c",[H(29.7,-6.2),H(57.2,-.5),H(75,8.7)]),c=Bh("c",[H(17.8,-9.2),H(45.3,-14.9),H(75,-8.7)])+Ch(100.5,a+.5);return{path(d){return d?b:c}}}};var Kp=class extends $o{constructor(a,b){super(a,b);this.constants_=a;this.connectedBlock&&(this.width+=this.constants_.DARK_PATH_OFFSET,this.height+=this.constants_.DARK_PATH_OFFSET)}};var Lp=class extends ip{constructor(a,b){super(a,b);this.constants_=a;this.connectedBlock&&(this.height+=this.constants_.DARK_PATH_OFFSET)}};var Mp=class extends np{constructor(a,b){super(a,b);this.renderer_=a}getRenderer(){return this.renderer_}populateBottomRow_(){super.populateBottomRow_();this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1]instanceof Mn||(this.bottomRow.minHeight=this.constants_.MEDIUM_PADDING-this.constants_.DARK_PATH_OFFSET)}addInput_(a,b){if(this.isInline&&a instanceof $.Nn)b.elements.push(new Kp(this.constants_,a)),b.hasInlineInput=!0;else if(a instanceof Mn)b.elements.push(new Lp(this.constants_,
1593
+ a)),b.hasStatement=!0;else if(a instanceof $.Nn)b.elements.push(new So(this.constants_,a)),b.hasExternalInput=!0;else if(a instanceof Kn||a instanceof Ln)b.minHeight=Math.max(b.minHeight,this.constants_.DUMMY_INPUT_MIN_HEIGHT),b.hasDummyInput=!0;this.isInline||b.align!==null||(b.align=a.align)}addElemSpacing_(){var a=!1;for(let c=0,d;d=this.rows[c];c++)d.hasExternalInput&&(a=!0);for(let c=0,d;d=this.rows[c];c++){var b=d.elements;d.elements=[];d.startsWithElemSpacer()&&d.elements.push(new Zo(this.constants_,
1594
+ this.getInRowSpacing_(null,b[0])));if(b.length){for(let e=0;e<b.length-1;e++){d.elements.push(b[e]);let f=this.getInRowSpacing_(b[e],b[e+1]);d.elements.push(new Zo(this.constants_,f))}d.elements.push(b[b.length-1]);d.endsWithElemSpacer()&&(b=this.getInRowSpacing_(b[b.length-1],null),a&&d.hasDummyInput&&(b+=this.constants_.TAB_WIDTH),d.elements.push(new Zo(this.constants_,b)))}}}getInRowSpacing_(a,b){if(!a)return b&&Q.isField(b)&&b.isEditable?this.constants_.MEDIUM_PADDING:b&&Q.isInlineInput(b)?this.constants_.MEDIUM_LARGE_PADDING:
1595
+ b&&Q.isStatementInput(b)?this.constants_.STATEMENT_INPUT_PADDING_LEFT:this.constants_.LARGE_PADDING;if(!Q.isInput(a)&&(!b||Q.isStatementInput(b)))return Q.isField(a)&&a.isEditable?a.width===0?this.constants_.NO_PADDING:this.constants_.MEDIUM_PADDING:Q.isIcon(a)?this.constants_.LARGE_PADDING*2+1:Q.isHat(a)?this.constants_.NO_PADDING:Q.isPreviousOrNextConnection(a)?this.constants_.LARGE_PADDING:Q.isLeftRoundedCorner(a)?this.constants_.MIN_BLOCK_WIDTH:Q.isJaggedEdge(a)?this.constants_.NO_PADDING:this.constants_.LARGE_PADDING;
1596
+ if(Q.isInput(a)&&!b){if(Q.isExternalInput(a))return this.constants_.NO_PADDING;if(Q.isInlineInput(a))return this.constants_.LARGE_PADDING;if(Q.isStatementInput(a))return this.constants_.NO_PADDING}if(!Q.isInput(a)&&b&&Q.isInput(b)){if(Q.isField(a)&&a.isEditable){if(Q.isInlineInput(b)||Q.isExternalInput(b))return this.constants_.SMALL_PADDING}else{if(Q.isInlineInput(b)||Q.isExternalInput(b))return this.constants_.MEDIUM_LARGE_PADDING;if(Q.isStatementInput(b))return this.constants_.LARGE_PADDING}return this.constants_.LARGE_PADDING-
1597
+ 1}if(Q.isIcon(a)&&b&&!Q.isInput(b))return this.constants_.LARGE_PADDING;if(Q.isInlineInput(a)&&b&&Q.isField(b))return b.isEditable?this.constants_.MEDIUM_PADDING:this.constants_.LARGE_PADDING;if(Q.isLeftSquareCorner(a)&&b){if(Q.isHat(b))return this.constants_.NO_PADDING;if(Q.isPreviousConnection(b))return b.notchOffset;if(Q.isNextConnection(b))return b.notchOffset+(this.RTL?1:-1)*this.constants_.DARK_PATH_OFFSET/2}if(Q.isLeftRoundedCorner(a)&&b){if(Q.isPreviousConnection(b))return b.notchOffset-this.constants_.CORNER_RADIUS;
1598
+ if(Q.isNextConnection(b))return b.notchOffset-this.constants_.CORNER_RADIUS+(this.RTL?1:-1)*this.constants_.DARK_PATH_OFFSET/2}return Q.isField(a)&&b&&Q.isField(b)&&a.isEditable===b.isEditable?a.width===0?this.constants_.NO_PADDING:this.constants_.LARGE_PADDING:b&&Q.isJaggedEdge(b)?this.constants_.LARGE_PADDING:this.constants_.MEDIUM_PADDING}getSpacerRowHeight_(a,b){return Q.isTopRow(a)&&Q.isBottomRow(b)?this.constants_.EMPTY_BLOCK_SPACER_HEIGHT:Q.isTopRow(a)||Q.isBottomRow(b)?this.constants_.NO_PADDING:
1599
+ a.hasExternalInput&&b.hasExternalInput?this.constants_.LARGE_PADDING:!a.hasStatement&&b.hasStatement?this.constants_.BETWEEN_STATEMENT_PADDING_Y:a.hasStatement&&b.hasStatement||!a.hasStatement&&b.hasDummyInput||a.hasDummyInput?this.constants_.LARGE_PADDING:this.constants_.MEDIUM_PADDING}getElemCenterline_(a,b){if(Q.isSpacer(b))return a.yPos+b.height/2;if(Q.isBottomRow(a))return a=a.yPos+a.height-a.descenderHeight,Q.isNextConnection(b)?a+b.height/2:a-b.height/2;if(Q.isTopRow(a))return Q.isHat(b)?a.capline-
1600
+ b.height/2:a.capline+b.height/2;var c=a.yPos;Q.isField(b)||Q.isIcon(b)?(c+=b.height/2,(a.hasInlineInput||a.hasStatement)&&b.height+this.constants_.TALL_INPUT_FIELD_OFFSET_Y<=a.height&&(c+=this.constants_.TALL_INPUT_FIELD_OFFSET_Y)):c=Q.isInlineInput(b)?c+b.height/2:c+a.height/2;return c}alignRowElements_(){if(this.isInline){var a=0,b=new WeakMap,c=null;for(let d=this.rows.length-1,e;e=this.rows[d];d--)b.set(e,a),Q.isInputRow(e)&&(e.hasStatement&&this.alignStatementRow_(e),c&&c.hasStatement&&e.width<
1601
+ c.width?b.set(e,c.width):a=e.hasStatement?e.width:Math.max(a,e.width),c=e);a=0;for(let d=0,e;e=this.rows[d];d++)e.hasStatement?a=this.getDesiredRowWidth_(e):Q.isSpacer(e)?e.width=Math.max(a,b.get(e)):(c=e.width,a=Math.max(a,b.get(e))-c,a>0&&this.addAlignmentPadding_(e,a),a=e.width)}else super.alignRowElements_()}getDesiredRowWidth_(a){return this.isInline&&a.hasStatement?this.statementEdge+this.constants_.MAX_BOTTOM_WIDTH+this.startX:super.getDesiredRowWidth_(a)}finalize_(){var a=0,b=0;for(let d=
1602
+ 0,e;e=this.rows[d];d++){e.yPos=b;e.xPos=this.startX;b+=e.height;a=Math.max(a,e.widthWithConnectedBlocks);var c=b-this.topRow.ascenderHeight;e===this.bottomRow&&c<this.constants_.MIN_BLOCK_HEIGHT&&(c=this.constants_.MIN_BLOCK_HEIGHT-c,this.bottomRow.height+=c,b+=c);this.recordElemPositions_(e)}this.outputConnection&&this.block_.nextConnection&&this.block_.nextConnection.isConnected()&&(c=this.block_.nextConnection.targetBlock())&&(a=Math.max(a,c.getHeightWidth().width-this.constants_.DARK_PATH_OFFSET));
1603
+ this.bottomRow.baseline=b-this.bottomRow.descenderHeight;this.widthWithChildren=a+this.startX+this.constants_.DARK_PATH_OFFSET;this.width+=this.constants_.DARK_PATH_OFFSET;this.height=b+this.constants_.DARK_PATH_OFFSET;this.startY=this.topRow.capline}};var Np=class extends op{constructor(a,b,c){super(a,b,c);this.constants=c;this.colourDark="#000000";this.svgPathDark=r(q.PATH,{"class":"blocklyPathDark",transform:"translate(1,1)"});this.svgRoot.insertBefore(this.svgPathDark,this.svgPath);this.svgPathLight=r(q.PATH,{"class":"blocklyPathLight"},this.svgRoot)}setPath(a){this.svgPath.setAttribute("d",a);this.svgPathDark.setAttribute("d",a)}setHighlightPath(a){this.svgPathLight.setAttribute("d",a)}flipRTL(){this.svgPath.setAttribute("transform","scale(-1 1)");
1604
+ this.svgPathLight.setAttribute("transform","scale(-1 1)");this.svgPathDark.setAttribute("transform","translate(1,1) scale(-1 1)")}applyColour(a){this.svgPathLight.style.display="";this.svgPathDark.style.display="";this.svgPathLight.setAttribute("stroke",this.style.colourTertiary);this.svgPathDark.setAttribute("fill",this.colourDark);super.applyColour(a);this.svgPath.setAttribute("stroke","none")}setStyle(a){this.style=a;this.colourDark=bg("#000",this.style.colourPrimary,.2)||this.colourDark}updateHighlighted(a){super.updateHighlighted(a);
1605
+ this.svgPathLight.style.display=a?"none":"inline"}updateShadow_(a){super.updateShadow_(a);a&&(this.svgPathLight.style.display="none",this.svgPathDark.setAttribute("fill",this.style.colourSecondary))}updateDisabled_(a){super.updateDisabled_(a);a&&this.svgPath.setAttribute("stroke","none")}};var Op=class extends pp{constructor(a){super(a);this.highlightConstants=null}init(a,b){super.init(a,b);this.highlightConstants=this.makeHighlightConstants_();this.highlightConstants.init()}refreshDom(a,b,c){super.refreshDom(a,b,c);this.getHighlightConstants().init()}makeConstants_(){return new Gp}makeRenderInfo_(a){return new Mp(this,a)}makeDrawer_(a,b){return new Ip(a,b)}makePathObject(a,b){return new Np(a,b,this.getConstants())}makeHighlightConstants_(){return new Jp(this.getConstants())}getHighlightConstants(){if(!this.highlightConstants)throw Error("Cannot access the highlight constants because init has not been called");
1606
+ return this.highlightConstants}};uj("geras",Op);var Pp=class extends np{constructor(a,b){super(a,b)}getRenderer(){return this.renderer_}addElemSpacing_(){var a=!1;for(var b=0;b<this.rows.length;b++)if(this.rows[b].hasExternalInput){a=!0;break}for(b=0;b<this.rows.length;b++){let d=this.rows[b];var c=d.elements;d.elements=[];d.startsWithElemSpacer()&&d.elements.push(new Zo(this.constants_,this.getInRowSpacing_(null,c[0])));if(c.length){for(let e=0;e<c.length-1;e++){d.elements.push(c[e]);let f=this.getInRowSpacing_(c[e],c[e+1]);d.elements.push(new Zo(this.constants_,
1607
+ f))}d.elements.push(c[c.length-1]);d.endsWithElemSpacer()&&(c=this.getInRowSpacing_(c[c.length-1],null),a&&d.hasDummyInput&&(c+=this.constants_.TAB_WIDTH),d.elements.push(new Zo(this.constants_,c)))}}}getInRowSpacing_(a,b){if(!a)return b&&Q.isField(b)&&b.isEditable?this.constants_.MEDIUM_PADDING:b&&Q.isInlineInput(b)?this.constants_.MEDIUM_LARGE_PADDING:b&&Q.isStatementInput(b)?this.constants_.STATEMENT_INPUT_PADDING_LEFT:this.constants_.LARGE_PADDING;if(!Q.isInput(a)&&!b)return Q.isField(a)&&a.isEditable?
1608
+ a.width===0?this.constants_.NO_PADDING:this.constants_.MEDIUM_PADDING:Q.isIcon(a)?this.constants_.LARGE_PADDING*2+1:Q.isHat(a)?this.constants_.NO_PADDING:Q.isPreviousOrNextConnection(a)?this.constants_.LARGE_PADDING:Q.isLeftRoundedCorner(a)?this.constants_.MIN_BLOCK_WIDTH:Q.isJaggedEdge(a)?this.constants_.NO_PADDING:this.constants_.LARGE_PADDING;if(Q.isInput(a)&&!b){if(Q.isExternalInput(a))return this.constants_.NO_PADDING;if(Q.isInlineInput(a))return this.constants_.LARGE_PADDING;if(Q.isStatementInput(a))return this.constants_.NO_PADDING}if(!Q.isInput(a)&&
1609
+ b&&Q.isInput(b)){if(Q.isField(a)&&a.isEditable){if(Q.isInlineInput(b)||Q.isExternalInput(b))return this.constants_.SMALL_PADDING}else{if(Q.isInlineInput(b)||Q.isExternalInput(b))return this.constants_.MEDIUM_LARGE_PADDING;if(Q.isStatementInput(b))return this.constants_.LARGE_PADDING}return this.constants_.LARGE_PADDING-1}if(Q.isIcon(a)&&b&&!Q.isInput(b))return this.constants_.LARGE_PADDING;if(Q.isInlineInput(a)&&b&&Q.isField(b))return b.isEditable?this.constants_.MEDIUM_PADDING:this.constants_.LARGE_PADDING;
1610
+ if(Q.isLeftSquareCorner(a)&&b){if(Q.isHat(b))return this.constants_.NO_PADDING;if(Q.isPreviousConnection(b)||Q.isNextConnection(b))return b.notchOffset}return Q.isLeftRoundedCorner(a)&&b?b.notchOffset-this.constants_.CORNER_RADIUS:Q.isField(a)&&b&&Q.isField(b)&&a.isEditable===b.isEditable?a.width===0?this.constants_.NO_PADDING:this.constants_.LARGE_PADDING:b&&Q.isJaggedEdge(b)?this.constants_.LARGE_PADDING:this.constants_.MEDIUM_PADDING}getSpacerRowHeight_(a,b){return Q.isTopRow(a)&&Q.isBottomRow(b)?
1611
+ this.constants_.EMPTY_BLOCK_SPACER_HEIGHT:Q.isTopRow(a)||Q.isBottomRow(b)?this.constants_.NO_PADDING:a.hasExternalInput&&b.hasExternalInput?this.constants_.LARGE_PADDING:!a.hasStatement&&b.hasStatement?this.constants_.BETWEEN_STATEMENT_PADDING_Y:a.hasStatement&&b.hasStatement||a.hasDummyInput||b.hasDummyInput?this.constants_.LARGE_PADDING:this.constants_.MEDIUM_PADDING}getElemCenterline_(a,b){if(Q.isSpacer(b))return a.yPos+b.height/2;if(Q.isBottomRow(a))return a=a.yPos+a.height-a.descenderHeight,
1612
+ Q.isNextConnection(b)?a+b.height/2:a-b.height/2;if(Q.isTopRow(a))return Q.isHat(b)?a.capline-b.height/2:a.capline+b.height/2;var c=a.yPos;return c=Q.isField(b)&&a.hasStatement?c+(this.constants_.TALL_INPUT_FIELD_OFFSET_Y+b.height/2):c+a.height/2}finalize_(){var a=0,b=0;for(var c=0;c<this.rows.length;c++){let e=this.rows[c];e.yPos=b;e.xPos=this.startX;b+=e.height;a=Math.max(a,e.widthWithConnectedBlocks);var d=b-this.topRow.ascenderHeight;e===this.bottomRow&&d<this.constants_.MIN_BLOCK_HEIGHT&&(d=this.constants_.MIN_BLOCK_HEIGHT-
1613
+ d,this.bottomRow.height+=d,b+=d);this.recordElemPositions_(e)}this.outputConnection&&this.block_.nextConnection&&this.block_.nextConnection.isConnected()&&(c=this.block_.nextConnection.targetBlock())&&(a=Math.max(a,c.getHeightWidth().width));this.bottomRow.baseline=b-this.bottomRow.descenderHeight;this.widthWithChildren=a+this.startX;this.height=b;this.startY=this.topRow.capline}};var Qp=class extends pp{constructor(a){super(a)}makeRenderInfo_(a){return new Pp(this,a)}};uj("thrasos",Qp);var Rp=class extends lp{constructor(a){super();this.GRID_UNIT=4;this.CURSOR_COLOUR="#ffa200";this.CURSOR_RADIUS=5;this.JAGGED_TEETH_WIDTH=this.JAGGED_TEETH_HEIGHT=0;this.START_HAT_HEIGHT=22;this.START_HAT_WIDTH=96;this.SHAPES={HEXAGONAL:1,ROUND:2,SQUARE:3,PUZZLE:4,NOTCH:5};this.SHAPE_IN_SHAPE_PADDING={1:{0:5*this.GRID_UNIT,1:2*this.GRID_UNIT,2:5*this.GRID_UNIT,3:5*this.GRID_UNIT},2:{0:3*this.GRID_UNIT,1:3*this.GRID_UNIT,2:1*this.GRID_UNIT,3:2*this.GRID_UNIT},3:{0:2*this.GRID_UNIT,1:2*this.GRID_UNIT,
1573
1614
  2:2*this.GRID_UNIT,3:2*this.GRID_UNIT}};this.FULL_BLOCK_FIELDS=!0;this.FIELD_TEXT_FONTWEIGHT="bold";this.FIELD_TEXT_FONTFAMILY='"Helvetica Neue", "Segoe UI", Helvetica, sans-serif';this.FIELD_COLOUR_FULL_BLOCK=this.FIELD_TEXTINPUT_BOX_SHADOW=this.FIELD_DROPDOWN_SVG_ARROW=this.FIELD_DROPDOWN_COLOURED_DIV=this.FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW=!0;this.SELECTED_GLOW_COLOUR="#fff200";this.SELECTED_GLOW_SIZE=.5;this.selectedGlowFilterId="";this.SQUARED=this.ROUNDED=this.HEXAGONAL=this.selectedGlowFilter=
1574
1615
  null;a&&(this.GRID_UNIT=a);this.SMALL_PADDING=this.GRID_UNIT;this.MEDIUM_PADDING=2*this.GRID_UNIT;this.MEDIUM_LARGE_PADDING=3*this.GRID_UNIT;this.LARGE_PADDING=4*this.GRID_UNIT;this.CORNER_RADIUS=1*this.GRID_UNIT;this.NOTCH_WIDTH=9*this.GRID_UNIT;this.NOTCH_HEIGHT=2*this.GRID_UNIT;this.STATEMENT_INPUT_NOTCH_OFFSET=this.NOTCH_OFFSET_LEFT=3*this.GRID_UNIT;this.MIN_BLOCK_WIDTH=2*this.GRID_UNIT;this.MIN_BLOCK_HEIGHT=12*this.GRID_UNIT;this.EMPTY_STATEMENT_INPUT_HEIGHT=6*this.GRID_UNIT;this.TOP_ROW_MIN_HEIGHT=
1575
1616
  this.CORNER_RADIUS;this.TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT=this.LARGE_PADDING;this.BOTTOM_ROW_MIN_HEIGHT=this.CORNER_RADIUS;this.BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT=6*this.GRID_UNIT;this.STATEMENT_BOTTOM_SPACER=-this.NOTCH_HEIGHT;this.STATEMENT_INPUT_SPACER_MIN_WIDTH=40*this.GRID_UNIT;this.STATEMENT_INPUT_PADDING_LEFT=4*this.GRID_UNIT;this.EMPTY_INLINE_INPUT_PADDING=4*this.GRID_UNIT;this.EMPTY_INLINE_INPUT_HEIGHT=8*this.GRID_UNIT;this.DUMMY_INPUT_MIN_HEIGHT=8*this.GRID_UNIT;this.DUMMY_INPUT_SHADOW_MIN_HEIGHT=
1576
1617
  6*this.GRID_UNIT;this.CURSOR_WS_WIDTH=20*this.GRID_UNIT;this.FIELD_TEXT_FONTSIZE=3*this.GRID_UNIT;this.FIELD_BORDER_RECT_RADIUS=this.CORNER_RADIUS;this.FIELD_BORDER_RECT_X_PADDING=2*this.GRID_UNIT;this.FIELD_BORDER_RECT_Y_PADDING=1.625*this.GRID_UNIT;this.FIELD_BORDER_RECT_HEIGHT=8*this.GRID_UNIT;this.FIELD_DROPDOWN_BORDER_RECT_HEIGHT=8*this.GRID_UNIT;this.FIELD_DROPDOWN_SVG_ARROW_PADDING=this.FIELD_BORDER_RECT_X_PADDING;this.FIELD_COLOUR_DEFAULT_WIDTH=6*this.GRID_UNIT;this.FIELD_COLOUR_DEFAULT_HEIGHT=
1577
1618
  8*this.GRID_UNIT;this.FIELD_CHECKBOX_X_OFFSET=1*this.GRID_UNIT;this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH=12*this.GRID_UNIT}setFontConstants_(a){super.setFontConstants_(a);this.FIELD_DROPDOWN_BORDER_RECT_HEIGHT=this.FIELD_BORDER_RECT_HEIGHT=this.FIELD_TEXT_HEIGHT+this.FIELD_BORDER_RECT_Y_PADDING*2}init(){super.init();this.HEXAGONAL=this.makeHexagonal();this.ROUNDED=this.makeRounded();this.SQUARED=this.makeSquared();this.STATEMENT_INPUT_NOTCH_OFFSET=this.NOTCH_OFFSET_LEFT+this.INSIDE_CORNERS.rightWidth}setDynamicProperties_(a){super.setDynamicProperties_(a);
1578
- this.SELECTED_GLOW_COLOUR=a.getComponentStyle("selectedGlowColour")||this.SELECTED_GLOW_COLOUR;this.SELECTED_GLOW_SIZE=(a=Number(a.getComponentStyle("selectedGlowSize")))&&!isNaN(a)?a:this.SELECTED_GLOW_SIZE}dispose(){super.dispose();this.selectedGlowFilter&&Oa(this.selectedGlowFilter)}makeStartHat(){var a=this.START_HAT_HEIGHT,b=this.START_HAT_WIDTH,c=Ah("c",[I(25,-a),I(71,-a),I(b,0)]);return{height:a*.75,width:b,path:c}}makeHexagonal(){function a(c,d,e){var f=c/2;f=f>b?b:f;e=e?-1:1;c=(d?-1:1)*c/
1579
- 2;return Dh(-e*f,c)+Dh(e*f,c)}var b=this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH;return{type:this.SHAPES.HEXAGONAL,isDynamic:!0,width(c){c/=2;return c>b?b:c},height(c){return c},connectionOffsetY(c){return c/2},connectionOffsetX(c){return-c},pathDown(c){return a(c,!1,!1)},pathUp(c){return a(c,!0,!1)},pathRightDown(c){return a(c,!1,!0)},pathRightUp(c){return a(c,!1,!0)}}}makeRounded(){function a(d,e,f){var g=d>c?d-c:0;d=(d>c?c:d)/2;var h=f===e?"0":"1";return Fh("a","0 0,"+h,d,I((f?1:-1)*d,(e?-1:1)*d))+
1580
- J("v",(e?-1:1)*g)+Fh("a","0 0,"+h,d,I((f?-1:1)*d,(e?-1:1)*d))}var b=this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH,c=b*2;return{type:this.SHAPES.ROUND,isDynamic:!0,width(d){d/=2;return d>b?b:d},height(d){return d},connectionOffsetY(d){return d/2},connectionOffsetX(d){return-d},pathDown(d){return a(d,!1,!1)},pathUp(d){return a(d,!0,!1)},pathRightDown(d){return a(d,!1,!0)},pathRightUp(d){return a(d,!1,!0)}}}makeSquared(){function a(c,d,e){c-=b*2;var f=e===d?"0":"1";return Fh("a","0 0,"+f,b,I((e?1:-1)*b,(d?
1581
- -1:1)*b))+J("v",(d?-1:1)*c)+Fh("a","0 0,"+f,b,I((e?-1:1)*b,(d?-1:1)*b))}var b=this.CORNER_RADIUS;return{type:this.SHAPES.SQUARE,isDynamic:!0,width(){return b},height(c){return c},connectionOffsetY(c){return c/2},connectionOffsetX(c){return-c},pathDown(c){return a(c,!1,!1)},pathUp(c){return a(c,!0,!1)},pathRightDown(c){return a(c,!1,!0)},pathRightUp(c){return a(c,!1,!0)}}}shapeFor(a){var b=a.getCheck();!b&&a.targetConnection&&(b=a.targetConnection.getCheck());switch(a.type){case G.INPUT_VALUE:case G.OUTPUT_VALUE:a=
1582
- a.getSourceBlock().getOutputShape();if(a!==null)switch(a){case this.SHAPES.HEXAGONAL:return this.HEXAGONAL;case this.SHAPES.ROUND:return this.ROUNDED;case this.SHAPES.SQUARE:return this.SQUARED}if(b&&b.includes("Boolean"))return this.HEXAGONAL;if(b&&b.includes("Number"))return this.ROUNDED;b&&b.includes("String");return this.ROUNDED;case G.PREVIOUS_STATEMENT:case G.NEXT_STATEMENT:return this.NOTCH;default:throw Error("Unknown type");}}makeNotch(){function a(z){return Ah("c",[I(z*e/2,0),I(z*e*3/4,
1583
- g/2),I(z*e,g)])+Eh([I(z*e,f)])+Ah("c",[I(z*e/4,g/2),I(z*e/2,g),I(z*e,g)])+J("h",z*d)+Ah("c",[I(z*e/2,0),I(z*e*3/4,-(g/2)),I(z*e,-g)])+Eh([I(z*e,-f)])+Ah("c",[I(z*e/4,-(g/2)),I(z*e/2,-g),I(z*e,-g)])}var b=this.NOTCH_WIDTH,c=this.NOTCH_HEIGHT,d=b/3,e=d/3,f=c/2,g=f/2,h=a(1),m=a(-1);return{type:this.SHAPES.NOTCH,width:b,height:c,pathLeft:h,pathRight:m}}makeInsideCorners(){var a=this.CORNER_RADIUS,b=Fh("a","0 0,0",a,I(-a,a)),c=Fh("a","0 0,1",a,I(-a,a)),d=Fh("a","0 0,0",a,I(a,a)),e=Fh("a","0 0,1",a,I(a,
1584
- a));return{width:a,height:a,pathTop:b,pathBottom:d,rightWidth:a,rightHeight:a,pathTopRight:c,pathBottomRight:e}}generateSecondaryColour_(a){return ag("#000",a,.15)||a}generateTertiaryColour_(a){return ag("#000",a,.25)||a}createDom(a,b,c){super.createDom(a,b,c);a=r(q.DEFS,{},a);a=r(q.FILTER,{id:"blocklySelectedGlowFilter"+this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},a);r(q.FEGAUSSIANBLUR,{"in":"SourceGraphic",stdDeviation:this.SELECTED_GLOW_SIZE},a);b=r(q.FECOMPONENTTRANSFER,
1619
+ this.SELECTED_GLOW_COLOUR=a.getComponentStyle("selectedGlowColour")||this.SELECTED_GLOW_COLOUR;this.SELECTED_GLOW_SIZE=(a=Number(a.getComponentStyle("selectedGlowSize")))&&!isNaN(a)?a:this.SELECTED_GLOW_SIZE}dispose(){super.dispose();this.selectedGlowFilter&&Oa(this.selectedGlowFilter)}makeStartHat(){var a=this.START_HAT_HEIGHT,b=this.START_HAT_WIDTH,c=Bh("c",[H(25,-a),H(71,-a),H(b,0)]);return{height:a*.75,width:b,path:c}}makeHexagonal(){function a(c,d,e){var f=c/2;f=f>b?b:f;e=e?-1:1;c=(d?-1:1)*c/
1620
+ 2;return Eh(-e*f,c)+Eh(e*f,c)}var b=this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH;return{type:this.SHAPES.HEXAGONAL,isDynamic:!0,width(c){c/=2;return c>b?b:c},height(c){return c},connectionOffsetY(c){return c/2},connectionOffsetX(c){return-c},pathDown(c){return a(c,!1,!1)},pathUp(c){return a(c,!0,!1)},pathRightDown(c){return a(c,!1,!0)},pathRightUp(c){return a(c,!1,!0)}}}makeRounded(){function a(d,e,f){var g=d>c?d-c:0;d=(d>c?c:d)/2;var h=f===e?"0":"1";return Gh("a","0 0,"+h,d,H((f?1:-1)*d,(e?-1:1)*d))+
1621
+ I("v",(e?-1:1)*g)+Gh("a","0 0,"+h,d,H((f?-1:1)*d,(e?-1:1)*d))}var b=this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH,c=b*2;return{type:this.SHAPES.ROUND,isDynamic:!0,width(d){d/=2;return d>b?b:d},height(d){return d},connectionOffsetY(d){return d/2},connectionOffsetX(d){return-d},pathDown(d){return a(d,!1,!1)},pathUp(d){return a(d,!0,!1)},pathRightDown(d){return a(d,!1,!0)},pathRightUp(d){return a(d,!1,!0)}}}makeSquared(){function a(c,d,e){c-=b*2;var f=e===d?"0":"1";return Gh("a","0 0,"+f,b,H((e?1:-1)*b,(d?
1622
+ -1:1)*b))+I("v",(d?-1:1)*c)+Gh("a","0 0,"+f,b,H((e?-1:1)*b,(d?-1:1)*b))}var b=this.CORNER_RADIUS;return{type:this.SHAPES.SQUARE,isDynamic:!0,width(){return b},height(c){return c},connectionOffsetY(c){return c/2},connectionOffsetX(c){return-c},pathDown(c){return a(c,!1,!1)},pathUp(c){return a(c,!0,!1)},pathRightDown(c){return a(c,!1,!0)},pathRightUp(c){return a(c,!1,!0)}}}shapeFor(a){var b=a.getCheck();!b&&a.targetConnection&&(b=a.targetConnection.getCheck());switch(a.type){case G.INPUT_VALUE:case G.OUTPUT_VALUE:a=
1623
+ a.getSourceBlock().getOutputShape();if(a!==null)switch(a){case this.SHAPES.HEXAGONAL:return this.HEXAGONAL;case this.SHAPES.ROUND:return this.ROUNDED;case this.SHAPES.SQUARE:return this.SQUARED}if(b&&b.includes("Boolean"))return this.HEXAGONAL;if(b&&b.includes("Number"))return this.ROUNDED;b&&b.includes("String");return this.ROUNDED;case G.PREVIOUS_STATEMENT:case G.NEXT_STATEMENT:return this.NOTCH;default:throw Error("Unknown type");}}makeNotch(){function a(z){return Bh("c",[H(z*e/2,0),H(z*e*3/4,
1624
+ g/2),H(z*e,g)])+Fh([H(z*e,f)])+Bh("c",[H(z*e/4,g/2),H(z*e/2,g),H(z*e,g)])+I("h",z*d)+Bh("c",[H(z*e/2,0),H(z*e*3/4,-(g/2)),H(z*e,-g)])+Fh([H(z*e,-f)])+Bh("c",[H(z*e/4,-(g/2)),H(z*e/2,-g),H(z*e,-g)])}var b=this.NOTCH_WIDTH,c=this.NOTCH_HEIGHT,d=b/3,e=d/3,f=c/2,g=f/2,h=a(1),m=a(-1);return{type:this.SHAPES.NOTCH,width:b,height:c,pathLeft:h,pathRight:m}}makeInsideCorners(){var a=this.CORNER_RADIUS,b=Gh("a","0 0,0",a,H(-a,a)),c=Gh("a","0 0,1",a,H(-a,a)),d=Gh("a","0 0,0",a,H(a,a)),e=Gh("a","0 0,1",a,H(a,
1625
+ a));return{width:a,height:a,pathTop:b,pathBottom:d,rightWidth:a,rightHeight:a,pathTopRight:c,pathBottomRight:e}}generateSecondaryColour_(a){return bg("#000",a,.15)||a}generateTertiaryColour_(a){return bg("#000",a,.25)||a}createDom(a,b,c){super.createDom(a,b,c);a=r(q.DEFS,{},a);a=r(q.FILTER,{id:"blocklySelectedGlowFilter"+this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},a);r(q.FEGAUSSIANBLUR,{"in":"SourceGraphic",stdDeviation:this.SELECTED_GLOW_SIZE},a);b=r(q.FECOMPONENTTRANSFER,
1585
1626
  {result:"outBlur"},a);r(q.FEFUNCA,{type:"table",tableValues:"0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"},b);r(q.FEFLOOD,{"flood-color":this.SELECTED_GLOW_COLOUR,"flood-opacity":1,result:"outColor"},a);r(q.FECOMPOSITE,{"in":"outColor",in2:"outBlur",operator:"in",result:"outGlow"},a);this.selectedGlowFilterId=a.id;this.selectedGlowFilter=a;c&&c.style.setProperty("--blocklySelectedGlowFilter",`url(#${this.selectedGlowFilterId})`)}getCSS_(a){return[`${a} .blocklyText,`,`${a} .blocklyFlyoutLabelText {`,`font: ${this.FIELD_TEXT_FONTWEIGHT} ${this.FIELD_TEXT_FONTSIZE}pt ${this.FIELD_TEXT_FONTFAMILY};`,
1586
1627
  "}",`${a} .blocklyTextInputBubble textarea {`,"font-weight: normal;","}",`${a} .blocklyText {`,"fill: #fff;","}",`${a} .blocklyNonEditableField>rect:not(.blocklyDropdownRect),`,`${a} .blocklyEditableField>rect:not(.blocklyDropdownRect) {`,`fill: ${this.FIELD_BORDER_RECT_COLOUR};`,"}",`${a} .blocklyNonEditableField>text,`,`${a} .blocklyEditableField>text,`,`${a} .blocklyNonEditableField>g>text,`,`${a} .blocklyEditableField>g>text {`,"fill: #575E75;","}",`${a} .blocklyFlyoutLabelText {`,"fill: #575E75;",
1587
1628
  "}",`${a} .blocklyText.blocklyBubbleText {`,"fill: #575E75;","}",`${a} .blocklyDraggable:not(.blocklyDisabled)`," .blocklyEditableField:not(.blocklyEditing):hover>rect,",`${a} .blocklyDraggable:not(.blocklyDisabled)`," .blocklyEditableField:not(.blocklyEditing):hover>.blocklyPath {","stroke: #fff;","stroke-width: 2;","}",`${a} .blocklyHtmlInput {`,`font-family: ${this.FIELD_TEXT_FONTFAMILY};`,`font-weight: ${this.FIELD_TEXT_FONTWEIGHT};`,"color: #575E75;","}",`${a} .blocklyDropdownText {`,"fill: #fff !important;",
1588
1629
  "}",`${a}.blocklyWidgetDiv .blocklyMenuItem,`,`${a}.blocklyDropDownDiv .blocklyMenuItem {`,`font-family: ${this.FIELD_TEXT_FONTFAMILY};`,"}",`${a}.blocklyDropDownDiv .blocklyMenuItemContent {`,"color: #fff;","}",`${a} .blocklyHighlightedConnectionPathVisible {`,`stroke: ${this.SELECTED_GLOW_COLOUR};`,"}",`${a} .blocklyDisabledPattern > .blocklyOutlinePath {`,"fill: var(--blocklyDisabledPattern)","}",`${a} .blocklyInsertionMarker>.blocklyPath {`,`fill-opacity: ${this.INSERTION_MARKER_OPACITY};`,"stroke: none;",
1589
- "}",`${a} .blocklySelected>.blocklyPath.blocklyPathSelected {`,"fill: none;","filter: var(--blocklySelectedGlowFilter);","}"]}};var Fp=class extends lp{constructor(a,b){super(a,b)}draw(){var a=this.block_.pathObject;a.beginDrawing();this.drawOutline_();this.drawInternals_();this.updateConnectionHighlights();a.setPath(this.outlinePath_+"\n"+this.inlinePath_);this.info_.RTL&&a.flipRTL();this.recordSizeOnBlock_();this.info_.outputConnection&&(a.outputShapeType=this.info_.outputConnection.shape.type);a.endDrawing()}drawOutline_(){this.info_.outputConnection&&this.info_.outputConnection.isDynamicShape&&!this.info_.hasStatementInput&&
1630
+ "}",`${a} .blocklySelected>.blocklyPath.blocklyPathSelected {`,"fill: none;","filter: var(--blocklySelectedGlowFilter);","}"]}};var Sp=class extends mp{constructor(a,b){super(a,b)}draw(){var a=this.block_.pathObject;a.beginDrawing();this.drawOutline_();this.drawInternals_();this.updateConnectionHighlights();a.setPath(this.outlinePath_+"\n"+this.inlinePath_);this.info_.RTL&&a.flipRTL();this.recordSizeOnBlock_();this.info_.outputConnection&&(a.outputShapeType=this.info_.outputConnection.shape.type);a.endDrawing()}drawOutline_(){this.info_.outputConnection&&this.info_.outputConnection.isDynamicShape&&!this.info_.hasStatementInput&&
1590
1631
  !this.info_.bottomRow.hasNextConnection?(this.drawFlatTop_(),this.drawRightDynamicConnection_(),this.drawFlatBottom_(),this.drawLeftDynamicConnection_()):super.drawOutline_()}drawLeft_(){this.info_.outputConnection&&this.info_.outputConnection.isDynamicShape?this.drawLeftDynamicConnection_():super.drawLeft_()}drawRightSideRow_(a){if(!(a.height<=0)){if(Q.isSpacer(a)){let d=a.precedesStatement;var b=a.followsStatement;if(d||b){let e=this.constants_.INSIDE_CORNERS;var c=e.rightHeight;c=a.height-(d?c:
1591
- 0);b=b?e.pathBottomRight:"";a=c>0?J("V",a.yPos+c):"";this.outlinePath_+=b+a+(d?e.pathTopRight:"");return}}this.outlinePath_+=J("V",a.yPos+a.height)}}drawRightDynamicConnection_(){if(!this.info_.outputConnection)throw Error("Cannot draw the output connection of a block that doesn't have one");this.outlinePath_+=this.info_.outputConnection.shape.pathRightDown(this.info_.outputConnection.height)}drawLeftDynamicConnection_(){if(!this.info_.outputConnection)throw Error("Cannot draw the output connection of a block that doesn't have one");
1592
- this.positionOutputConnection_();this.outlinePath_+=this.info_.outputConnection.shape.pathUp(this.info_.outputConnection.height);this.outlinePath_+="z"}drawFlatTop_(){var a=this.info_.topRow;this.positionPreviousConnection_();this.outlinePath_+=Ch(a.xPos,this.info_.startY);this.outlinePath_+=J("h",a.width)}drawFlatBottom_(){var a=this.info_.bottomRow;this.positionNextConnection_();this.outlinePath_+=J("V",a.baseline);this.outlinePath_+=J("h",-a.width)}drawInlineInput_(a){this.positionInlineInputConnection_(a);
1593
- var b=a.input.name;a.connectedBlock||this.info_.isInsertionMarker||(a=Bh(a.xPos+a.connectionWidth,a.centerline-a.height/2)+this.getInlineInputPath(a),this.block_.pathObject.setOutlinePath(b,a))}getInlineInputPath(a){var b=a.width-a.connectionWidth*2,c=a.height;return J("h",b)+a.shape.pathRightDown(c)+J("h",-b)+a.shape.pathUp(c)+"z"}drawStatementInput_(a){var b=a.getLastInput(),c=b.xPos+b.notchOffset+b.shape.width,d=this.constants_.INSIDE_CORNERS,e=b.shape.pathRight+J("h",-(b.notchOffset-d.width))+
1594
- d.pathTop,f=a.height-2*d.height;b=d.pathBottom+J("h",b.notchOffset-d.width)+(b.connectedBottomNextConnection?"":b.shape.pathLeft);this.outlinePath_+=J("H",c)+e+J("v",f)+b+J("H",a.xPos+a.width);this.positionStatementInputConnection_(a)}drawConnectionHighlightPath(a){var b=a.connectionModel;if(b.type===G.NEXT_STATEMENT||b.type===G.PREVIOUS_STATEMENT||b.type===G.OUTPUT_VALUE&&!a.isDynamicShape)return super.drawConnectionHighlightPath(a);a=b.type===G.INPUT_VALUE?Bh(a.connectionWidth,-a.height/2)+this.getInlineInputPath(a):
1595
- Bh(a.width,-a.height/2)+a.shape.pathDown(a.height);var c=b.getSourceBlock(),d,e;return(e=(d=c.pathObject).addConnectionHighlight)==null?void 0:e.call(d,b,a,b.getOffsetInBlock(),c.RTL)}};var Gp=class extends qg{constructor(a,b,c,d,e,f,g){super(qg.SKIP_SETUP);this.imageElement=this.clickHandler=null;this.flipRtl=this.isDirty_=this.EDITABLE=!1;this.altText="";c=Number(gg(c));b=Number(gg(b));if(isNaN(c)||isNaN(b))throw Error("Height and width values of an image field must cast to numbers.");if(c<=0||b<=0)throw Error("Height and width values of an image field must be greater than 0.");this.size_=new hc(b,c+Gp.Y_PADDING);this.imageHeight=c;typeof e==="function"&&(this.clickHandler=e);
1596
- a!==qg.SKIP_SETUP&&(g?this.configure_(g):typeof d==="object"&&d!==null&&!Array.isArray(d)&&("alt"in d||"flipRtl"in d)?this.configure_(d):(this.flipRtl=!!f,this.altText=typeof d==="string"?gg(d)||"":""),this.setValue(gg(a)))}configure_(a){super.configure_(a);a.flipRtl&&(this.flipRtl=a.flipRtl);a.alt&&(this.altText=gg(a.alt))}initView(){this.imageElement=r(q.IMAGE,{height:this.imageHeight+"px",width:this.size_.width+"px",alt:this.altText},this.fieldGroup_);this.imageElement.setAttributeNS("http://www.w3.org/1999/xlink",
1632
+ 0);b=b?e.pathBottomRight:"";a=c>0?I("V",a.yPos+c):"";this.outlinePath_+=b+a+(d?e.pathTopRight:"");return}}this.outlinePath_+=I("V",a.yPos+a.height)}}drawRightDynamicConnection_(){if(!this.info_.outputConnection)throw Error("Cannot draw the output connection of a block that doesn't have one");this.outlinePath_+=this.info_.outputConnection.shape.pathRightDown(this.info_.outputConnection.height)}drawLeftDynamicConnection_(){if(!this.info_.outputConnection)throw Error("Cannot draw the output connection of a block that doesn't have one");
1633
+ this.positionOutputConnection_();this.outlinePath_+=this.info_.outputConnection.shape.pathUp(this.info_.outputConnection.height);this.outlinePath_+="z"}drawFlatTop_(){var a=this.info_.topRow;this.positionPreviousConnection_();this.outlinePath_+=Dh(a.xPos,this.info_.startY);this.outlinePath_+=I("h",a.width)}drawFlatBottom_(){var a=this.info_.bottomRow;this.positionNextConnection_();this.outlinePath_+=I("V",a.baseline);this.outlinePath_+=I("h",-a.width)}drawInlineInput_(a){this.positionInlineInputConnection_(a);
1634
+ var b=a.input.name;a.connectedBlock||this.info_.isInsertionMarker||(a=Ch(a.xPos+a.connectionWidth,a.centerline-a.height/2)+this.getInlineInputPath(a),this.block_.pathObject.setOutlinePath(b,a))}getInlineInputPath(a){var b=a.width-a.connectionWidth*2,c=a.height;return I("h",b)+a.shape.pathRightDown(c)+I("h",-b)+a.shape.pathUp(c)+"z"}drawStatementInput_(a){var b=a.getLastInput(),c=b.xPos+b.notchOffset+b.shape.width,d=this.constants_.INSIDE_CORNERS,e=b.shape.pathRight+I("h",-(b.notchOffset-d.width))+
1635
+ d.pathTop,f=a.height-2*d.height;b=d.pathBottom+I("h",b.notchOffset-d.width)+(b.connectedBottomNextConnection?"":b.shape.pathLeft);this.outlinePath_+=I("H",c)+e+I("v",f)+b+I("H",a.xPos+a.width);this.positionStatementInputConnection_(a)}drawConnectionHighlightPath(a){var b=a.connectionModel;if(b.type===G.NEXT_STATEMENT||b.type===G.PREVIOUS_STATEMENT||b.type===G.OUTPUT_VALUE&&!a.isDynamicShape)return super.drawConnectionHighlightPath(a);a=b.type===G.INPUT_VALUE?Ch(a.connectionWidth,-a.height/2)+this.getInlineInputPath(a):
1636
+ Ch(a.width,-a.height/2)+a.shape.pathDown(a.height);var c=b.getSourceBlock(),d,e;return(e=(d=c.pathObject).addConnectionHighlight)==null?void 0:e.call(d,b,a,b.getOffsetInBlock(),c.RTL)}};var Tp=class extends rg{constructor(a,b,c,d,e,f,g){super(rg.SKIP_SETUP);this.imageElement=this.clickHandler=null;this.flipRtl=this.isDirty_=this.EDITABLE=!1;this.altText="";c=Number(hg(c));b=Number(hg(b));if(isNaN(c)||isNaN(b))throw Error("Height and width values of an image field must cast to numbers.");if(c<=0||b<=0)throw Error("Height and width values of an image field must be greater than 0.");this.size_=new hc(b,c+Tp.Y_PADDING);this.imageHeight=c;typeof e==="function"&&(this.clickHandler=e);
1637
+ a!==rg.SKIP_SETUP&&(g?this.configure_(g):typeof d==="object"&&d!==null&&!Array.isArray(d)&&("alt"in d||"flipRtl"in d)?this.configure_(d):(this.flipRtl=!!f,this.altText=typeof d==="string"?hg(d)||"":""),this.setValue(hg(a)))}configure_(a){super.configure_(a);a.flipRtl&&(this.flipRtl=a.flipRtl);a.alt&&(this.altText=hg(a.alt))}initView(){this.imageElement=r(q.IMAGE,{height:this.imageHeight+"px",width:this.size_.width+"px",alt:this.altText},this.fieldGroup_);this.imageElement.setAttributeNS("http://www.w3.org/1999/xlink",
1597
1638
  "xlink:href",this.value_);this.fieldGroup_&&n(this.fieldGroup_,"blocklyImageField");this.clickHandler&&(this.imageElement.style.cursor="pointer");this.recomputeAriaContext()}updateSize_(){}doClassValidation_(a){return typeof a!=="string"?null:a}doValueUpdate_(a){this.value_=a;this.imageElement&&this.imageElement.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",this.value_);this.recomputeAriaContext()}getFlipRtl(){return this.flipRtl}setAlt(a){a!==this.altText&&(this.altText=a||"",this.imageElement&&
1598
1639
  this.imageElement.setAttribute("alt",this.altText))}isClickable(){return super.isClickable()&&!!this.clickHandler}showEditor_(){this.clickHandler&&this.clickHandler(this)}setOnClickHandler(a){this.clickHandler=a}getText_(){return this.altText}static fromJson(a){if(!a.src||!a.width||!a.height)throw Error("src, width, and height values for an image field arerequired. The width and height must be non-zero.");return new this(a.src,a.width,a.height,void 0,void 0,void 0,a)}getAriaTypeName(){return this.ariaTypeName||
1599
- $.C.ARIA_TYPE_FIELD_IMAGE}getAriaValue(){return this.altText||null}computeAriaLabel(a){return this.isClickable()?"":super.computeAriaLabel(a)}recomputeAriaContext(){if(!super.recomputeAriaContext())return!1;var a=this.getFocusableElement();if(!this.isClickable())return ya(a,Ka.NONE),za(a,p.LABEL),!1;var b=this.getAriaValue()||"";l(a,p.LABEL,b);return!0}};Gp.Y_PADDING=1;ih("field_image",Gp);Gp.prototype.DEFAULT_VALUE="";var Hp=class extends qg{set size_(a){super.size_=a}get size_(){var a=super.size_;a.width<14&&(a.width=14);return a}constructor(a,b,c){super(qg.SKIP_SETUP);this.spellcheck_=!0;this.htmlInput_=null;this.isTextValid_=this.isBeingEdited_=!1;this.onInputWrapper=this.onKeyDownWrapper=this.valueWhenEditorWasOpened_=null;this.fullBlockClickTarget_=!1;this.workspace_=null;this.SERIALIZABLE=!0;a!==qg.SKIP_SETUP&&(c&&this.configure_(c),this.setValue(a),b&&this.setValidator(b))}configure_(a){super.configure_(a);
1600
- a.spellcheck!==void 0&&(this.spellcheck_=a.spellcheck)}initView(){if(!this.getSourceBlock())throw new kj;this.isFullBlockField()||this.createBorderRect_();this.createTextElement_();this.fieldGroup_&&n(this.fieldGroup_,"blocklyField");this.isFullBlockField()&&(this.clickTarget_=this.sourceBlock_.getSvgRoot());this.fieldGroup_&&n(this.fieldGroup_,"blocklyInputField");this.recomputeAriaContext()}isFullBlockField(){var a=this.getSourceBlock();if(!a)throw new kj;var b;return this.fullBlockClickTarget_=
1601
- !((b=this.getConstants())==null||!b.FULL_BLOCK_FIELDS)&&a.isSimpleReporter()}doValueInvalid_(a,b=!0){this.isBeingEdited_&&(this.isDirty_=!0,this.isTextValid_=!1,a=this.value_,this.value_=this.valueWhenEditorWasOpened_,this.sourceBlock_&&Vb()&&this.value_!==a&&b&&w(new (u(v.BLOCK_CHANGE))(this.sourceBlock_,"field",this.name||null,a,this.value_)));this.recomputeAriaContext()}doValueUpdate_(a){this.isTextValid_=this.isDirty_=!0;this.value_=a;this.recomputeAriaContext()}applyColour(){var a=this.getSourceBlock();
1602
- if(!a)throw new kj;this.getConstants().FULL_BLOCK_FIELDS&&this.fieldGroup_&&(!this.isFullBlockField()&&this.borderRect_?(this.borderRect_.style.display="block",this.borderRect_.setAttribute("stroke",a.getColourTertiary())):a.pathObject.svgPath.setAttribute("fill",this.getConstants().FIELD_BORDER_RECT_COLOUR))}getSize(){var a;if((a=this.getConstants())==null?0:a.FULL_BLOCK_FIELDS)this.render_(),this.isDirty_=!1;return super.getSize()}onLocationChange(){this.isBeingEdited_&&this.resizeEditor_()}render_(){super.render_();
1603
- if(this.isBeingEdited_){var a=this.htmlInput_;this.isTextValid_?(Ma(a,"blocklyInvalidInput"),l(a,p.INVALID,!1)):(n(a,"blocklyInvalidInput"),l(a,p.INVALID,!0))}a=this.getSourceBlock();if(!a)throw new kj;this.getConstants().FULL_BLOCK_FIELDS&&a.applyColour()}setSpellcheck(a){a!==this.spellcheck_&&(this.spellcheck_=a,this.htmlInput_&&this.htmlInput_.setAttribute("spellcheck",this.spellcheck_))}showEditor_(a,b=!1,c=!0){this.workspace_=this.sourceBlock_.workspace;!b&&this.workspace_.options.modalInputs&&
1604
- (xk||wk||Ui)?this.showPromptEditor():this.showInlineEditor(b,c)}showPromptEditor(){vd($.C.CHANGE_VALUE_TITLE,this.getText(),a=>{a!==null&&this.setValue(this.getValueFromEditorText_(a));this.onFinishEditing_(this.value_)})}showInlineEditor(a,b){var c=this.getSourceBlock();if(!c)throw new kj;tg(this,c.RTL,this.widgetDispose_.bind(this),this.workspace_,b);this.htmlInput_=this.widgetCreate_();this.isBeingEdited_=!0;this.valueWhenEditorWasOpened_=this.value_;a||(this.htmlInput_.focus({preventScroll:!0}),
1605
- this.htmlInput_.select())}widgetCreate_(){var a=this.getSourceBlock();if(!a)throw new kj;$.B(!0);var b=lg,c=this.getClickTarget_();if(!c)throw Error("A click target has not been set.");n(c,"blocklyEditing");c=document.createElement("input");c.className="blocklyHtmlInput";c.setAttribute("spellcheck",this.spellcheck_);var d=this.workspace_.getAbsoluteScale(),e=this.getConstants().FIELD_TEXT_FONTSIZE*d+"pt";b.style.fontSize=e;c.style.fontSize=e;e=Hp.BORDERRADIUS*d+"px";this.isFullBlockField()&&(e=this.getScaledBBox(),
1606
- e=(e.bottom-e.top)/2+"px",a=a.getParent()?a.getParent().getColourTertiary():this.sourceBlock_.getColourTertiary(),c.style.border=1*d+"px solid "+a,b.style.borderRadius=e,b.style.transition="box-shadow 0.25s ease 0s",this.getConstants().FIELD_TEXTINPUT_BOX_SHADOW&&(b.style.boxShadow="rgba(255, 255, 255, 0.3) 0 0 0 "+4*d+"px"));c.style.borderRadius=e;b.appendChild(c);c.value=c.defaultValue=this.getEditorText_(this.value_);c.setAttribute("data-untyped-default-value",String(this.value_));this.resizeEditor_();
1607
- this.bindInputEvents_(c);return c}widgetDispose_(){this.isBeingEdited_=!1;this.isTextValid_=!0;this.forceRerender();this.onFinishEditing_(this.value_);this.sourceBlock_&&Vb()&&this.valueWhenEditorWasOpened_!==null&&this.valueWhenEditorWasOpened_!==this.value_&&(w(new (u(v.BLOCK_CHANGE))(this.sourceBlock_,"field",this.name||null,this.valueWhenEditorWasOpened_,this.value_)),this.valueWhenEditorWasOpened_=null);$.B(!1);this.unbindInputEvents_();var a=lg.style;a.width="auto";a.height="auto";a.fontSize=
1608
- "";a.transition="";a.boxShadow="";this.htmlInput_=null;a=this.getClickTarget_();if(!a)throw Error("A click target has not been set.");Ma(a,"blocklyEditing");this.recomputeAriaContext()}onFinishEditing_(){}bindInputEvents_(a){this.onKeyDownWrapper=k(a,"keydown",this,this.onHtmlInputKeyDown_);this.onInputWrapper=k(a,"input",this,this.onHtmlInputChange)}unbindInputEvents_(){this.onKeyDownWrapper&&(la(this.onKeyDownWrapper),this.onKeyDownWrapper=null);this.onInputWrapper&&(la(this.onInputWrapper),this.onInputWrapper=
1609
- null)}onHtmlInputKeyDown_(a){if(a.key==="Enter")ug(this),nf(),a.stopPropagation();else if(a.key==="Escape")this.setValue(this.htmlInput_.getAttribute("data-untyped-default-value"),!1),ug(this),nf();else if(a.key==="Tab"){a.preventDefault();var b;let c=(b=this.workspace_)==null?void 0:b.getNavigator(),d=e=>(e instanceof Hp||e instanceof hi&&e.isSimpleReporter())&&e!==this.getSourceBlock();b=this;do b=a.shiftKey?c==null?void 0:c.getOutNode(b):c==null?void 0:c.getInNode(b);while(b&&!d(b));b=b instanceof
1610
- hi&&b.isSimpleReporter()?b.getFields().next().value:b;b instanceof Hp&&(ug(this),nf(),a=b.getSourceBlock(),b.isFullBlockField()&&a&&a instanceof hi?$.t().focusNode(a):$.t().focusNode(b),b.showEditor())}}onHtmlInputChange(){var a=this.value_;this.setValue(this.getValueFromEditorText_(this.htmlInput_.value),!1);this.sourceBlock_&&Vb()&&this.value_!==a&&w(new (u(v.BLOCK_FIELD_INTERMEDIATE_CHANGE))(this.sourceBlock_,this.name||null,a,this.value_))}setEditorValue_(a,b=!0){this.isDirty_=!0;this.isBeingEdited_&&
1611
- (this.htmlInput_.value=this.getEditorText_(a));this.setValue(a,b)}resizeEditor_(){cd().then(()=>{var a=this.getSourceBlock();if(!a)throw new kj;var b=lg,c=this.getScaledBBox();b.style.width=c.right-c.left+"px";b.style.height=c.bottom-c.top+"px";a=a.RTL?c.right-b.offsetWidth:c.left;c=c.top;var d=b==null?void 0:b.parentElement;d&&(d=d.getBoundingClientRect(),a-=d.left+window.scrollX,c-=d.top+window.scrollY);b.style.left=`${a}px`;b.style.top=`${c}px`})}repositionForWindowResize(){var a,b=(a=this.getSourceBlock())==
1612
- null?void 0:a.getRootBlock();if(!(b instanceof hi))return!1;Th(this.workspace_,this.workspace_.getMetricsManager().getViewMetrics(!0),b)||this.resizeEditor_();return!0}positionTextElement_(a,b){var c=a*2+b;super.positionTextElement_(a+(c<14?(14-c)/2:0),b)}getText_(){return this.isBeingEdited_&&this.htmlInput_?this.htmlInput_.value:null}getEditorText_(a){return`${a}`}getValueFromEditorText_(a){return a}getAriaTypeName(){return this.ariaTypeName||$.C.ARIA_TYPE_FIELD_INPUT}getAriaValue(){return this.getText()||
1613
- $.C.FIELD_LABEL_EMPTY}recomputeAriaContext(){if(!super.recomputeAriaContext())return!1;var a=this.getFocusableElement(),b=this.computeAriaLabel(!0),c,d=this.isCurrentlyEditable()&&!((c=this.getSourceBlock())==null?0:c.isInFlyout);if(this.isFullBlockField()){if(c=Be(this.getSourceBlock(),ve.STANDARD,b),d){b=c.split(", ");d=we(this.getSourceBlock());d=d===void 0?-1:b.indexOf(d);d=d===-1?0:d+1;let e;b[d]=$.C.FIELD_LABEL_EDIT_PREFIX.replace("%1",(e=b[d])!=null?e:"");b=b.join(", ")}}else d&&(b=$.C.FIELD_LABEL_EDIT_PREFIX.replace("%1",
1614
- b));l(a,p.LABEL,b);return!0}};Hp.BORDERRADIUS=4;$.Ip=class extends Hp{constructor(a,b,c){super(a,b,c)}initView(){super.initView();this.fieldGroup_&&n(this.fieldGroup_,"blocklyTextInputField")}doClassValidation_(a){return a===void 0?null:`${a}`}static fromJson(a){return new this(gg(a.text),void 0,a)}getAriaTypeName(){return this.ariaTypeName||$.C.ARIA_TYPE_FIELD_TEXT_INPUT}};ih("field_input",$.Ip);$.Ip.prototype.DEFAULT_VALUE="";var Jp=class extends Oo{constructor(a){super(a)}endsWithElemSpacer(){return!1}hasLeftSquareCorner(a){return!!a.outputConnection}hasRightSquareCorner(a){return!!a.outputConnection&&!a.statementInputCount&&!a.nextConnection}};var Xj=class extends hp{constructor(a,b){super(a,b);this.connectedBottomNextConnection=!1;if(this.connectedBlock){for(a=this.connectedBlock;b=a.getNextBlock();)a=b;a.nextConnection||(this.height=this.connectedBlockHeight,this.connectedBottomNextConnection=!0)}}};var Kp=class extends Mo{constructor(a){super(a);this.width=this.height=0;this.type|=Q.getType("RIGHT_CONNECTION")}};var Lp=class extends ip{constructor(a){super(a)}endsWithElemSpacer(){return!1}hasLeftSquareCorner(a){var b=(a.hat?a.hat==="cap":this.constants_.ADD_START_HATS)&&!a.outputConnection&&!a.previousConnection;return!!a.outputConnection||b}hasRightSquareCorner(a){return!!a.outputConnection&&!a.statementInputCount&&!a.nextConnection}};var Mp=class extends mp{constructor(a,b){super(a,b);this.isInline=!0;this.renderer_=a;this.constants_=this.renderer_.getConstants();this.topRow=new Lp(this.constants_);this.bottomRow=new Jp(this.constants_);this.isMultiRow=!b.getInputsInline()||b.isCollapsed();this.hasStatementInput=b.statementInputCount>0;this.rightSide=this.outputConnection?new Kp(this.constants_):null;this.rightAlignedDummyInputs=new WeakMap}getRenderer(){return this.renderer_}measure(){this.createRows_();this.addElemSpacing_();
1615
- this.addRowSpacing_();this.adjustXPosition_();this.computeBounds_();this.alignRowElements_();this.finalize_()}shouldStartNewRow_(a,b){return b?b instanceof Kn||a instanceof Ln||b instanceof Ln?!0:a instanceof $.Mn||a instanceof Jn||a instanceof Kn?!this.isInline||this.isMultiRow:!1:!1}getDesiredRowWidth_(a){return a.hasStatement?this.width-this.startX-(this.constants_.INSIDE_CORNERS.rightWidth||0):super.getDesiredRowWidth_(a)}getInRowSpacing_(a,b){return a&&b||!this.outputConnection||!this.outputConnection.isDynamicShape||
1640
+ $.C.ARIA_TYPE_FIELD_IMAGE}getAriaValue(){return this.altText||null}computeAriaLabel(a){return this.isClickable()?"":super.computeAriaLabel(a)}recomputeAriaContext(){if(!super.recomputeAriaContext())return!1;var a=this.getFocusableElement();if(!this.isClickable())return ya(a,Ka.NONE),za(a,p.LABEL),!1;var b=this.getAriaValue()||"";l(a,p.LABEL,b);return!0}};Tp.Y_PADDING=1;jh("field_image",Tp);Tp.prototype.DEFAULT_VALUE="";var Up=class extends rg{set size_(a){super.size_=a}get size_(){var a=super.size_;a.width<14&&(a.width=14);return a}constructor(a,b,c){super(rg.SKIP_SETUP);this.spellcheck_=!0;this.htmlInput_=null;this.isTextValid_=this.isBeingEdited_=!1;this.onInputWrapper=this.onKeyDownWrapper=this.valueWhenEditorWasOpened_=this.warningIcon=null;this.fullBlockClickTarget_=!1;this.workspace_=null;this.SERIALIZABLE=!0;a!==rg.SKIP_SETUP&&(c&&this.configure_(c),this.setValue(a),b&&this.setValidator(b))}configure_(a){super.configure_(a);
1641
+ a.spellcheck!==void 0&&(this.spellcheck_=a.spellcheck)}initView(){if(!this.getSourceBlock())throw new lj;this.isFullBlockField()||this.createBorderRect_();this.createTextElement_();this.fieldGroup_&&n(this.fieldGroup_,"blocklyField");this.isFullBlockField()&&(this.clickTarget_=this.sourceBlock_.getSvgRoot());this.fieldGroup_&&n(this.fieldGroup_,"blocklyInputField");this.recomputeAriaContext()}isFullBlockField(){var a=this.getSourceBlock();if(!a)throw new lj;var b;return this.fullBlockClickTarget_=
1642
+ !((b=this.getConstants())==null||!b.FULL_BLOCK_FIELDS)&&a.isSimpleReporter()}createWarningIcon(){if(!this.sourceBlock_)return null;var a=this.getScaledBBox();a=a.bottom-a.top;a=r(q.SVG,{"class":"blocklyInputWarning",viewBox:"-4 0 24 16",x:"0",y:"0",height:`${a}px`,width:`${a}px`});r(q.PATH,{"class":"blocklyInputWarningIconShape",d:"M2,15Q-1,15 0.5,12L6.5,1.7Q8,-1 9.5,1.7L15.5,12Q17,15 14,15z"},a);r(q.PATH,{"class":"blocklyInputWarningIconSymbol",d:"m7,4.8v3.16l0.27,2.27h1.46l0.27,-2.27v-3.16z"},a);
1643
+ r(q.RECT,{"class":"blocklyInputWarningIconSymbol",x:"7",y:"11",height:"2",width:"2"},a);return a}doValueInvalid_(a,b=!0){this.isBeingEdited_&&(this.isDirty_=!0,this.isTextValid_=!1,a=this.value_,this.value_=this.valueWhenEditorWasOpened_,this.sourceBlock_&&Vb()&&this.value_!==a&&b&&w(new (u(v.BLOCK_CHANGE))(this.sourceBlock_,"field",this.name||null,a,this.value_)));this.recomputeAriaContext()}doValueUpdate_(a){this.isTextValid_=this.isDirty_=!0;this.value_=a;this.recomputeAriaContext()}applyColour(){var a=
1644
+ this.getSourceBlock();if(!a)throw new lj;this.getConstants().FULL_BLOCK_FIELDS&&this.fieldGroup_&&(!this.isFullBlockField()&&this.borderRect_?(this.borderRect_.style.display="block",this.borderRect_.setAttribute("stroke",a.getColourTertiary())):a.pathObject.svgPath.setAttribute("fill",this.getConstants().FIELD_BORDER_RECT_COLOUR))}getSize(){var a;if((a=this.getConstants())==null?0:a.FULL_BLOCK_FIELDS)this.render_(),this.isDirty_=!1;return super.getSize()}onLocationChange(){this.isBeingEdited_&&this.resizeEditor_()}render_(){super.render_();
1645
+ var a=this.getSourceBlock();if(!a)throw new lj;if(this.isBeingEdited_){let b=this.htmlInput_;this.renderWarningIcon(a.RTL,this.isTextValid_);this.isTextValid_?(Ma(b,"blocklyInvalidInput"),l(b,p.INVALID,!1)):(n(b,"blocklyInvalidInput"),l(b,p.INVALID,!0))}this.getConstants().FULL_BLOCK_FIELDS&&a.applyColour()}renderWarningIcon(a,b){var c=this.htmlInput_;if(this.warningIcon)if(b)c.style.paddingRight="",c.style.paddingLeft="",Ma(this.warningIcon,"blocklyInputWarningInvalid");else{b=this.getScaledBBox();
1646
+ var d=b.bottom-b.top;d=(b=!!this.borderRect_)?this.getConstants().FIELD_BORDER_RECT_X_PADDING:d/2;n(this.warningIcon,"blocklyInputWarningInvalid");let e=this.warningIcon.getBoundingClientRect().width;c.setAttribute("width",`${c.offsetWidth+e}px`);let f=e/1.5;a?c.style.paddingRight=`${f}px`:c.style.paddingLeft=`${f}px`;this.size_.width=e;a=b?this.getConstants().FIELD_TEXT_HEIGHT-this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;this.updateSize_(d+a)}}setSpellcheck(a){a!==this.spellcheck_&&(this.spellcheck_=
1647
+ a,this.htmlInput_&&this.htmlInput_.setAttribute("spellcheck",this.spellcheck_))}showEditor_(a,b=!1,c=!0){this.workspace_=this.sourceBlock_.workspace;!b&&this.workspace_.options.modalInputs&&(yk||xk||Vi)?this.showPromptEditor():this.showInlineEditor(b,c)}showPromptEditor(){vd($.C.CHANGE_VALUE_TITLE,this.getText(),a=>{a!==null&&this.setValue(this.getValueFromEditorText_(a));this.onFinishEditing_(this.value_)})}showInlineEditor(a,b){var c=this.getSourceBlock();if(!c)throw new lj;ug(this,c.RTL,this.widgetDispose_.bind(this),
1648
+ this.workspace_,b);this.htmlInput_=this.widgetCreate_();this.isBeingEdited_=!0;this.valueWhenEditorWasOpened_=this.value_;a||(this.htmlInput_.focus({preventScroll:!0}),this.htmlInput_.select())}widgetCreate_(){var a=this.getSourceBlock();if(!a)throw new lj;$.B(!0);var b=mg,c=this.getClickTarget_();if(!c)throw Error("A click target has not been set.");n(c,"blocklyEditing");c=document.createElement("input");c.className="blocklyHtmlInput";c.setAttribute("spellcheck",this.spellcheck_);this.warningIcon=
1649
+ this.createWarningIcon();var d=this.workspace_.getAbsoluteScale(),e=this.getConstants().FIELD_TEXT_FONTSIZE*d+"pt";b.style.fontSize=e;c.style.fontSize=e;e=Up.BORDERRADIUS*d+"px";if(this.isFullBlockField()){let f=this.getScaledBBox();e=(f.bottom-f.top)/2+"px";a=a.getParent()?a.getParent().getColourTertiary():this.sourceBlock_.getColourTertiary();c.style.border=1*d+"px solid "+a;b.style.borderRadius=e;b.style.transition="box-shadow 0.25s ease 0s";this.getConstants().FIELD_TEXTINPUT_BOX_SHADOW&&(b.style.boxShadow=
1650
+ "rgba(255, 255, 255, 0.3) 0 0 0 "+4*d+"px");a=(f.bottom-f.top)/4;this.warningIcon.style.paddingLeft=`${a}px`;this.warningIcon.style.paddingRight=`${a}px`}c.style.borderRadius=e;this.warningIcon&&b.appendChild(this.warningIcon);b.appendChild(c);c.value=c.defaultValue=this.getEditorText_(this.value_);c.setAttribute("data-untyped-default-value",String(this.value_));this.resizeEditor_();this.bindInputEvents_(c);return c}widgetDispose_(){this.isBeingEdited_=!1;this.isTextValid_=!0;this.forceRerender();
1651
+ this.onFinishEditing_(this.value_);this.sourceBlock_&&Vb()&&this.valueWhenEditorWasOpened_!==null&&this.valueWhenEditorWasOpened_!==this.value_&&(w(new (u(v.BLOCK_CHANGE))(this.sourceBlock_,"field",this.name||null,this.valueWhenEditorWasOpened_,this.value_)),this.valueWhenEditorWasOpened_=null);$.B(!1);this.unbindInputEvents_();var a=mg.style;a.width="auto";a.height="auto";a.fontSize="";a.transition="";a.boxShadow="";this.htmlInput_=null;a=this.getClickTarget_();if(!a)throw Error("A click target has not been set.");
1652
+ Ma(a,"blocklyEditing");this.recomputeAriaContext()}onFinishEditing_(){}bindInputEvents_(a){this.onKeyDownWrapper=k(a,"keydown",this,this.onHtmlInputKeyDown_);this.onInputWrapper=k(a,"input",this,this.onHtmlInputChange)}unbindInputEvents_(){this.onKeyDownWrapper&&(ka(this.onKeyDownWrapper),this.onKeyDownWrapper=null);this.onInputWrapper&&(ka(this.onInputWrapper),this.onInputWrapper=null)}onHtmlInputKeyDown_(a){if(a.key==="Enter")vg(this),of(),a.stopPropagation();else if(a.key==="Escape")this.setValue(this.htmlInput_.getAttribute("data-untyped-default-value"),
1653
+ !1),vg(this),of();else if(a.key==="Tab"){a.preventDefault();var b;let c=(b=this.workspace_)==null?void 0:b.getNavigator(),d=e=>(e instanceof Up||e instanceof ii&&e.isSimpleReporter())&&e!==this.getSourceBlock();b=this;do b=a.shiftKey?c==null?void 0:c.getOutNode(b):c==null?void 0:c.getInNode(b);while(b&&!d(b));b=b instanceof ii&&b.isSimpleReporter()?b.getFields().next().value:b;b instanceof Up&&(vg(this),of(),a=b.getSourceBlock(),b.isFullBlockField()&&a&&a instanceof ii?$.t().focusNode(a):$.t().focusNode(b),
1654
+ b.showEditor())}}onHtmlInputChange(){var a=this.value_;this.setValue(this.getValueFromEditorText_(this.htmlInput_.value),!1);this.sourceBlock_&&Vb()&&this.value_!==a&&w(new (u(v.BLOCK_FIELD_INTERMEDIATE_CHANGE))(this.sourceBlock_,this.name||null,a,this.value_))}setEditorValue_(a,b=!0){this.isDirty_=!0;this.isBeingEdited_&&(this.htmlInput_.value=this.getEditorText_(a));this.setValue(a,b)}resizeEditor_(){cd().then(()=>{var a=this.getSourceBlock();if(!a)throw new lj;var b=mg,c=this.getScaledBBox();b.style.width=
1655
+ c.right-c.left+"px";b.style.height=c.bottom-c.top+"px";a=a.RTL?c.right-b.offsetWidth:c.left;c=c.top;var d=b==null?void 0:b.parentElement;d&&(d=d.getBoundingClientRect(),a-=d.left+window.scrollX,c-=d.top+window.scrollY);b.style.left=`${a}px`;b.style.top=`${c}px`})}repositionForWindowResize(){var a,b=(a=this.getSourceBlock())==null?void 0:a.getRootBlock();if(!(b instanceof ii))return!1;Uh(this.workspace_,this.workspace_.getMetricsManager().getViewMetrics(!0),b)||this.resizeEditor_();return!0}positionTextElement_(a,
1656
+ b){var c=a*2+b;super.positionTextElement_(a+(c<14?(14-c)/2:0),b)}getText_(){return this.isBeingEdited_&&this.htmlInput_?this.htmlInput_.value:null}getEditorText_(a){return`${a}`}getValueFromEditorText_(a){return a}getAriaTypeName(){return this.ariaTypeName||$.C.ARIA_TYPE_FIELD_INPUT}getAriaValue(){return this.getText()||$.C.FIELD_LABEL_EMPTY}recomputeAriaContext(){if(!super.recomputeAriaContext())return!1;var a=this.getFocusableElement(),b=this.computeAriaLabel(!0),c,d=this.isCurrentlyEditable()&&
1657
+ !((c=this.getSourceBlock())==null?0:c.isInFlyout);if(this.isFullBlockField()){if(c=Ce(this.getSourceBlock(),we.STANDARD,b),d){b=c.split(", ");d=xe(this.getSourceBlock());d=d===void 0?-1:b.indexOf(d);d=d===-1?0:d+1;let e;b[d]=$.C.FIELD_LABEL_EDIT_PREFIX.replace("%1",(e=b[d])!=null?e:"");b=b.join(", ")}}else d&&(b=$.C.FIELD_LABEL_EDIT_PREFIX.replace("%1",b));l(a,p.LABEL,b);return!0}};Up.BORDERRADIUS=4;ta("\n .blocklyInputWarningIconShape {\n stroke: #1f1f1f;\n stroke-width: 1px;\n fill: none;\n }\n .blocklyInputWarningIconSymbol {\n fill: #1f1f1f;\n }\n .blocklyInputWarning {\n display: none;\n position: absolute;\n }\n .blocklyInputWarning.blocklyInputWarningInvalid {\n display: inline;\n }\n");$.Vp=class extends Up{constructor(a,b,c){super(a,b,c)}initView(){super.initView();this.fieldGroup_&&n(this.fieldGroup_,"blocklyTextInputField")}doClassValidation_(a){return a===void 0?null:`${a}`}static fromJson(a){return new this(hg(a.text),void 0,a)}getAriaTypeName(){return this.ariaTypeName||$.C.ARIA_TYPE_FIELD_TEXT_INPUT}};jh("field_input",$.Vp);$.Vp.prototype.DEFAULT_VALUE="";var Wp=class extends Po{constructor(a){super(a)}endsWithElemSpacer(){return!1}hasLeftSquareCorner(a){return!!a.outputConnection}hasRightSquareCorner(a){return!!a.outputConnection&&!a.statementInputCount&&!a.nextConnection}};var Yj=class extends ip{constructor(a,b){super(a,b);this.connectedBottomNextConnection=!1;if(this.connectedBlock){for(a=this.connectedBlock;b=a.getNextBlock();)a=b;a.nextConnection||(this.height=this.connectedBlockHeight,this.connectedBottomNextConnection=!0)}}};var Xp=class extends No{constructor(a){super(a);this.width=this.height=0;this.type|=Q.getType("RIGHT_CONNECTION")}};var Yp=class extends jp{constructor(a){super(a)}endsWithElemSpacer(){return!1}hasLeftSquareCorner(a){var b=(a.hat?a.hat==="cap":this.constants_.ADD_START_HATS)&&!a.outputConnection&&!a.previousConnection;return!!a.outputConnection||b}hasRightSquareCorner(a){return!!a.outputConnection&&!a.statementInputCount&&!a.nextConnection}};var Zp=class extends np{constructor(a,b){super(a,b);this.isInline=!0;this.renderer_=a;this.constants_=this.renderer_.getConstants();this.topRow=new Yp(this.constants_);this.bottomRow=new Wp(this.constants_);this.isMultiRow=!b.getInputsInline()||b.isCollapsed();this.hasStatementInput=b.statementInputCount>0;this.rightSide=this.outputConnection?new Xp(this.constants_):null;this.rightAlignedDummyInputs=new WeakMap}getRenderer(){return this.renderer_}measure(){this.createRows_();this.addElemSpacing_();
1658
+ this.addRowSpacing_();this.adjustXPosition_();this.computeBounds_();this.alignRowElements_();this.finalize_()}shouldStartNewRow_(a,b){return b?b instanceof Ln||a instanceof Mn||b instanceof Mn?!0:a instanceof $.Nn||a instanceof Kn||a instanceof Ln?!this.isInline||this.isMultiRow:!1:!1}getDesiredRowWidth_(a){return a.hasStatement?this.width-this.startX-(this.constants_.INSIDE_CORNERS.rightWidth||0):super.getDesiredRowWidth_(a)}getInRowSpacing_(a,b){return a&&b||!this.outputConnection||!this.outputConnection.isDynamicShape||
1616
1659
  this.hasStatementInput||this.bottomRow.hasNextConnection?!a&&b&&Q.isStatementInput(b)?this.constants_.STATEMENT_INPUT_PADDING_LEFT:a&&Q.isLeftRoundedCorner(a)&&b&&(Q.isPreviousConnection(b)||Q.isNextConnection(b))?b.notchOffset-this.constants_.CORNER_RADIUS:a&&Q.isLeftSquareCorner(a)&&b&&Q.isHat(b)||a&&Q.isField(a)&&a.width===0?this.constants_.NO_PADDING:this.constants_.MEDIUM_PADDING:this.constants_.NO_PADDING}getSpacerRowHeight_(a,b){if(Q.isTopRow(a)&&Q.isBottomRow(b))return this.constants_.EMPTY_BLOCK_SPACER_HEIGHT;
1617
1660
  var c=Q.isInputRow(a)&&a.hasStatement,d=Q.isInputRow(b)&&b.hasStatement;return d||c?(a=Math.max(this.constants_.NOTCH_HEIGHT,this.constants_.INSIDE_CORNERS.rightHeight||0),d&&c?Math.max(a,this.constants_.DUMMY_INPUT_MIN_HEIGHT):a):Q.isTopRow(a)?a.hasPreviousConnection||this.outputConnection&&!this.hasStatementInput?this.constants_.NO_PADDING:Math.abs(this.constants_.NOTCH_HEIGHT-this.constants_.CORNER_RADIUS):Q.isBottomRow(b)?this.outputConnection?!b.hasNextConnection&&this.hasStatementInput?Math.abs(this.constants_.NOTCH_HEIGHT-
1618
1661
  this.constants_.CORNER_RADIUS):this.constants_.NO_PADDING:Math.max(this.topRow.minHeight,Math.max(this.constants_.NOTCH_HEIGHT,this.constants_.CORNER_RADIUS))-this.constants_.CORNER_RADIUS:this.constants_.MEDIUM_PADDING}getSpacerRowWidth_(a,b){var c=this.width-this.startX;return Q.isInputRow(a)&&a.hasStatement||Q.isInputRow(b)&&b.hasStatement?Math.max(c,this.constants_.STATEMENT_INPUT_SPACER_MIN_WIDTH):c}getElemCenterline_(a,b){if(a.hasStatement&&!Q.isSpacer(b)&&!Q.isStatementInput(b))return a.yPos+
1619
- this.constants_.EMPTY_STATEMENT_INPUT_HEIGHT/2;if(Q.isInlineInput(b)){let c=b.connectedBlock;if(c&&c.outputConnection&&c.nextConnection)return a.yPos+c.height/2}return super.getElemCenterline_(a,b)}addInput_(a,b){if((a instanceof Jn||a instanceof Kn)&&b.hasDummyInput&&b.align===$.Dn.LEFT&&a.align===$.Dn.RIGHT)this.rightAlignedDummyInputs.set(b,a);else if(a instanceof Ln){b.elements.push(new Xj(this.constants_,a));b.hasStatement=!0;b.align===null&&(b.align=a.align);return}super.addInput_(a,b)}addAlignmentPadding_(a,
1662
+ this.constants_.EMPTY_STATEMENT_INPUT_HEIGHT/2;if(Q.isInlineInput(b)){let c=b.connectedBlock;if(c&&c.outputConnection&&c.nextConnection)return a.yPos+c.height/2}return super.getElemCenterline_(a,b)}addInput_(a,b){if((a instanceof Kn||a instanceof Ln)&&b.hasDummyInput&&b.align===$.En.LEFT&&a.align===$.En.RIGHT)this.rightAlignedDummyInputs.set(b,a);else if(a instanceof Mn){b.elements.push(new Yj(this.constants_,a));b.hasStatement=!0;b.align===null&&(b.align=a.align);return}super.addInput_(a,b)}addAlignmentPadding_(a,
1620
1663
  b){if(this.rightAlignedDummyInputs.get(a)){let c;for(let d=0;d<a.elements.length;d++){let e=a.elements[d];Q.isSpacer(e)&&(c=e);if(Q.isField(e)&&e.parentInput===this.rightAlignedDummyInputs.get(a))break}if(c){c.width+=b;a.width+=b;return}}super.addAlignmentPadding_(a,b)}adjustXPosition_(){var a=this.constants_.NOTCH_OFFSET_LEFT+this.constants_.NOTCH_WIDTH,b=a;for(let e=2;e<this.rows.length-1;e+=2){var c=this.rows[e-1];let f=this.rows[e];var d=this.rows[e+1];c=e===2?!!this.topRow.hasPreviousConnection:
1621
- !!c.followsStatement;d=e+2>=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!d.precedesStatement;if(Q.isInputRow(f)&&f.hasStatement){f.measure();let g,h;b=f.width-((h=(g=f.getLastInput())==null?void 0:g.width)!=null?h:0)+a}else if(c&&(e===2||d)&&Q.isInputRow(f)&&!f.hasStatement){d=f.xPos;c=null;for(let g=0;g<f.elements.length;g++){let h=f.elements[g];Q.isSpacer(h)&&(c=h);!(c&&(Q.isField(h)||Q.isInput(h))&&d<b)||Q.isField(h)&&(h.field instanceof $n||h.field instanceof Gp)||(c.width+=b-d);d+=
1664
+ !!c.followsStatement;d=e+2>=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!d.precedesStatement;if(Q.isInputRow(f)&&f.hasStatement){f.measure();let g,h;b=f.width-((h=(g=f.getLastInput())==null?void 0:g.width)!=null?h:0)+a}else if(c&&(e===2||d)&&Q.isInputRow(f)&&!f.hasStatement){d=f.xPos;c=null;for(let g=0;g<f.elements.length;g++){let h=f.elements[g];Q.isSpacer(h)&&(c=h);!(c&&(Q.isField(h)||Q.isInput(h))&&d<b)||Q.isField(h)&&(h.field instanceof ao||h.field instanceof Tp)||(c.width+=b-d);d+=
1622
1665
  h.width}}}}finalizeOutputConnection_(){if(this.outputConnection&&this.outputConnection.isDynamicShape){var a=this.outputConnection.shape;if("isDynamic"in a&&a.isDynamic){var b=0;for(var c=0;c<this.rows.length;c++){let d=this.rows[c];d.yPos=b;b+=d.height}this.height=b;c=this.bottomRow.hasNextConnection?this.height-this.bottomRow.descenderHeight:this.height;b=a.height(c);c=a.width(c);this.outputConnection.height=b;this.outputConnection.width=c;this.outputConnection.startX=c;this.outputConnection.connectionOffsetY=
1623
1666
  a.connectionOffsetY(b);this.outputConnection.connectionOffsetX=a.connectionOffsetX(c);a=0;this.hasStatementInput||this.bottomRow.hasNextConnection||(a=c,this.rightSide.height=b,this.rightSide.width=a,this.rightSide.centerline=b/2,this.rightSide.xPos=this.width+a);this.startX=c;this.width+=c+a;this.widthWithChildren+=c+a}}}finalizeHorizontalAlignment_(){if(this.outputConnection&&!this.hasStatementInput&&!this.bottomRow.hasNextConnection){var a=0;for(var b=0;b<this.rows.length;b++){var c=this.rows[b];
1624
- if(!Q.isInputRow(c))continue;a=c.elements[c.elements.length-2];let d=this.getNegativeSpacing_(c.elements[1]),e=this.getNegativeSpacing_(a);a=d+e;let f=this.constants_.MIN_BLOCK_WIDTH+this.outputConnection.width*2;this.width-a<f&&(a=this.width-f,d=a/2,e=a/2);c.elements.unshift(new Yo(this.constants_,-d));c.elements.push(new Yo(this.constants_,-e))}if(a)for(this.width-=a,this.widthWithChildren-=a,this.rightSide.xPos-=a,b=0;b<this.rows.length;b++)c=this.rows[b],Q.isTopOrBottomRow(c)&&(c.elements[1].width-=
1667
+ if(!Q.isInputRow(c))continue;a=c.elements[c.elements.length-2];let d=this.getNegativeSpacing_(c.elements[1]),e=this.getNegativeSpacing_(a);a=d+e;let f=this.constants_.MIN_BLOCK_WIDTH+this.outputConnection.width*2;this.width-a<f&&(a=this.width-f,d=a/2,e=a/2);c.elements.unshift(new Zo(this.constants_,-d));c.elements.push(new Zo(this.constants_,-e))}if(a)for(this.width-=a,this.widthWithChildren-=a,this.rightSide.xPos-=a,b=0;b<this.rows.length;b++)c=this.rows[b],Q.isTopOrBottomRow(c)&&(c.elements[1].width-=
1625
1668
  a),c.width-=a,c.widthWithConnectedBlocks-=a}}getNegativeSpacing_(a){if(!a||!this.outputConnection)return 0;var b=this.outputConnection.width,c=this.outputConnection.shape.type,d=this.constants_;if(this.inputRows.length>1)switch(c){case d.SHAPES.ROUND:return c=this.constants_.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH,c=this.height/2>c?c:this.height/2,b-c*(1-Math.sin(Math.acos((c-this.constants_.SMALL_PADDING)/c)));default:return 0}if(Q.isInlineInput(a)){let e=a.connectedBlock;a=e?e.pathObject.outputShapeType:
1626
- a.shape.type;return a==null||e&&e.outputConnection&&(e.statementInputCount||e.nextConnection)||c===d.SHAPES.HEXAGONAL&&c!==a?0:b-this.constants_.SHAPE_IN_SHAPE_PADDING[c][a]}return Q.isField(a)?c===d.SHAPES.ROUND&&a.field instanceof $.Ip?b-2.75*d.GRID_UNIT:b-this.constants_.SHAPE_IN_SHAPE_PADDING[c][0]:Q.isIcon(a)?this.constants_.SMALL_PADDING:0}finalizeVerticalAlignment_(){if(!this.outputConnection)for(let d=2;d<this.rows.length-1;d+=2){let e=this.rows[d-1],f=this.rows[d],g=this.rows[d+1];var a=
1627
- d===2,b=d+2>=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!g.precedesStatement;if(a?this.topRow.hasPreviousConnection:e.followsStatement){var c=f.elements[1];c=f.elements.length===3&&c instanceof Vo&&(c.field instanceof $n||c.field instanceof Gp);if(!a&&c)e.height-=this.constants_.SMALL_PADDING,g.height-=this.constants_.SMALL_PADDING,f.height-=this.constants_.MEDIUM_PADDING;else if(!a&&!b)e.height+=this.constants_.SMALL_PADDING;else if(b){a=!1;for(b=0;b<f.elements.length;b++)if(c=f.elements[b],
1628
- Q.isInlineInput(c)&&c.connectedBlock&&!c.connectedBlock.isShadow()&&c.connectedBlock.getHeightWidth().height>=40){a=!0;break}a&&(e.height-=this.constants_.SMALL_PADDING,g.height-=this.constants_.SMALL_PADDING)}}}}finalize_(){this.finalizeOutputConnection_();this.finalizeHorizontalAlignment_();this.finalizeVerticalAlignment_();super.finalize_();this.rightSide&&(this.widthWithChildren+=this.rightSide.width)}};var Np=class extends np{constructor(a,b,c){super(a,b,c);this.svgPathSelected=null;this.outlines=new Map;this.remainingOutlines=new Set;this.outputShapeType=null;this.constants=c}setPath(a){super.setPath(a);this.svgPathSelected&&this.svgPathSelected.setAttribute("d",a)}applyColour(a){super.applyColour(a);var b=a.getParent();a.isShadow()&&b&&this.svgPath.setAttribute("stroke",b.getColourTertiary());for(let c of this.outlines.values())c.setAttribute("fill",this.style.colourTertiary)}flipRTL(){super.flipRTL();
1629
- for(let a of this.outlines.values())a.setAttribute("transform","scale(-1 1)")}updateSelected(a){this.setClass_("blocklySelected",a);a?this.svgPathSelected||(this.svgPathSelected=r(q.PATH,{"class":"blocklyPath blocklyPathSelected",stroke:this.svgPath.getAttribute("stroke")||"",fill:this.svgPath.getAttribute("fill")||"",d:this.svgPath.getAttribute("d")||"",transform:this.svgPath.getAttribute("transform")||"",role:Ka.NONE},this.svgRoot),this.svgRoot.appendChild(this.svgPathSelected)):this.svgPathSelected&&
1630
- (this.svgRoot.removeChild(this.svgPathSelected),this.svgPathSelected=null)}beginDrawing(){this.remainingOutlines.clear();for(let a of this.outlines.keys())this.remainingOutlines.add(a)}endDrawing(){if(this.remainingOutlines.size)for(let a of this.remainingOutlines)this.removeOutlinePath(a);this.remainingOutlines.clear()}setOutlinePath(a,b){a=this.getOutlinePath(a);a.setAttribute("d",b);a.setAttribute("fill",this.style.colourTertiary)}getOutlinePath(a){this.outlines.has(a)||this.outlines.set(a,r(q.PATH,
1631
- {"class":"blocklyOutlinePath",d:""},this.svgRoot));this.remainingOutlines.delete(a);return this.outlines.get(a)}removeOutlinePath(a){var b,c;(b=this.outlines.get(a))==null||(c=b.parentNode)==null||c.removeChild(this.outlines.get(a));this.outlines.delete(a)}};var Op=class extends op{constructor(a){super(a)}makeConstants_(){return new Ep}makeRenderInfo_(a){return new Mp(this,a)}makeDrawer_(a,b){return new Fp(a,b)}makePathObject(a,b){return new Np(a,b,this.getConstants())}getConstants(){return this.constants_}shouldHighlightConnection(a){return super.shouldHighlightConnection(a)||a.type===G.INPUT_VALUE}};tj("zelos",Op);var Pp=class{constructor(a){this.staticConn=this.draggedConn=this.markerConn=this.fadedBlock=null;this.workspace=a.workspace}previewReplacement(a,b,c){$.Ub++;try{this.hidePreview(),this.fadedBlock=c,c.fadeForReplacement(!0),this.workspace.getRenderer().shouldHighlightConnection(b)&&(b.highlight(),this.staticConn=b)}finally{$.Ub--}}previewConnection(a,b){if(a!==this.draggedConn||b!==this.staticConn){$.Ub++;try{this.hidePreview(),this.shouldUseMarkerPreview(a,b)&&(this.markerConn=this.previewMarker(a,
1632
- b)),this.workspace.getRenderer().shouldHighlightConnection(b)&&b.highlight(),this.workspace.getRenderer().shouldHighlightConnection(a)&&a.highlight(),this.draggedConn=a,this.staticConn=b}finally{$.Ub--}}}shouldUseMarkerPreview(a,b){return b.type===G.PREVIOUS_STATEMENT||b.type===G.NEXT_STATEMENT||!(this.workspace.getRenderer()instanceof Op)}previewMarker(a,b){var c=a.getSourceBlock(),d=this.createInsertionMarker(c),e=this.getMatchingConnection(c,d,a);if(!e)return null;d.queueRender();dd();e.connect(b);
1633
- var f={x:b.x-e.x,y:b.y-e.y},g=e.getOffsetInBlock().clone();cd().then(()=>{if(!d.isDeadOrDying()){$.Ub++;try{d==null||d.positionNearConnection(e,f,g),d==null||d.getSvgRoot().setAttribute("visibility","visible")}finally{$.Ub--}}});return e}serializeBlockToInsertionMarker(a){var b=be(a,{addCoordinates:!1,addInputBlocks:!1,addNextBlocks:!1,doFullSerialization:!1});if(!b)throw Error(`Failed to serialize source block. ${a.toDevString()}`);return b}createInsertionMarker(a){a=this.serializeBlockToInsertionMarker(a);
1634
- a=de(a,this.workspace);for(let b of a.getDescendants(!1))b.setInsertionMarker(!0);a.initSvg();a.getSvgRoot().setAttribute("visibility","hidden");return a}getMatchingConnection(a,b,c){a=a.getConnections_(!0);b=b.getConnections_(!0);if(a.length!==b.length)return null;for(let d=0;d<a.length;d++)if(a[d]===c)return b[d];return null}hidePreview(){$.Ub++;try{this.staticConn&&(this.staticConn.unhighlight(),this.staticConn=null),this.draggedConn&&(this.draggedConn.unhighlight(),this.draggedConn=null),this.fadedBlock&&
1635
- (this.fadedBlock.fadeForReplacement(!1),this.fadedBlock=null),this.markerConn&&(this.hideInsertionMarker(this.markerConn),this.draggedConn=this.markerConn=null)}finally{$.Ub--}}hideInsertionMarker(a){var b=a.getSourceBlock(),c=b.outputConnection,d;if(((d=b.previousConnection)==null?0:d.targetConnection)||(c==null?0:c.targetConnection))b.unplug(!0);else{let e;(e=a.targetBlock())==null||e.unplug(!1)}b.dispose()}dispose(){this.hidePreview()}};A(y.CONNECTION_PREVIEWER,"default",Pp);var Qp={};Qp.Align=$.Dn;Qp.DummyInput=Jn;Qp.EndRowInput=Kn;Qp.Input=In;Qp.StatementInput=Ln;Qp.ValueInput=$.Mn;Qp.inputTypes=$.ie;var Ij=!1;$.Rp=class{constructor(a){this.forBlock=Object.create(null);this.FUNCTION_NAME_PLACEHOLDER_="{leCUI8hutHZI4480Dc}";this.STATEMENT_SUFFIX=this.STATEMENT_PREFIX=this.INFINITE_LOOP_TRAP=null;this.INDENT=" ";this.COMMENT_WRAP=60;this.ORDER_OVERRIDES=[];this.isInitialized=null;this.RESERVED_WORDS_="";this.definitions_=Object.create(null);this.functionNames_=Object.create(null);this.nameDB_=void 0;this.name_=a;this.FUNCTION_NAME_PLACEHOLDER_REGEXP_=new RegExp(this.FUNCTION_NAME_PLACEHOLDER_,"g")}workspaceToCode(a){a||
1669
+ a.shape.type;return a==null||e&&e.outputConnection&&(e.statementInputCount||e.nextConnection)||c===d.SHAPES.HEXAGONAL&&c!==a?0:b-this.constants_.SHAPE_IN_SHAPE_PADDING[c][a]}return Q.isField(a)?c===d.SHAPES.ROUND&&a.field instanceof $.Vp?b-2.75*d.GRID_UNIT:b-this.constants_.SHAPE_IN_SHAPE_PADDING[c][0]:Q.isIcon(a)?this.constants_.SMALL_PADDING:0}finalizeVerticalAlignment_(){if(!this.outputConnection)for(let d=2;d<this.rows.length-1;d+=2){let e=this.rows[d-1],f=this.rows[d],g=this.rows[d+1];var a=
1670
+ d===2,b=d+2>=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!g.precedesStatement;if(a?this.topRow.hasPreviousConnection:e.followsStatement){var c=f.elements[1];c=f.elements.length===3&&c instanceof To&&(c.field instanceof ao||c.field instanceof Tp);if(!a&&c)e.height-=this.constants_.SMALL_PADDING,g.height-=this.constants_.SMALL_PADDING,f.height-=this.constants_.MEDIUM_PADDING;else if(!a&&!b)e.height+=this.constants_.SMALL_PADDING;else if(b){a=!1;for(b=0;b<f.elements.length;b++)if(c=f.elements[b],
1671
+ Q.isInlineInput(c)&&c.connectedBlock&&!c.connectedBlock.isShadow()&&c.connectedBlock.getHeightWidth().height>=40){a=!0;break}a&&(e.height-=this.constants_.SMALL_PADDING,g.height-=this.constants_.SMALL_PADDING)}}}}finalize_(){this.finalizeOutputConnection_();this.finalizeHorizontalAlignment_();this.finalizeVerticalAlignment_();super.finalize_();this.rightSide&&(this.widthWithChildren+=this.rightSide.width)}};var $p=class extends op{constructor(a,b,c){super(a,b,c);this.svgPathSelected=null;this.outlines=new Map;this.remainingOutlines=new Set;this.outputShapeType=null;this.constants=c}setPath(a){super.setPath(a);this.svgPathSelected&&this.svgPathSelected.setAttribute("d",a)}applyColour(a){super.applyColour(a);var b=a.getParent();a.isShadow()&&b&&this.svgPath.setAttribute("stroke",b.getColourTertiary());for(let c of this.outlines.values())c.setAttribute("fill",this.style.colourTertiary)}flipRTL(){super.flipRTL();
1672
+ for(let b of this.outlines.values())b.setAttribute("transform","scale(-1 1)");var a;(a=this.svgPathSelected)==null||a.setAttribute("transform","scale(-1 1)")}updateSelected(a){this.setClass_("blocklySelected",a);a?this.svgPathSelected||(this.svgPathSelected=r(q.PATH,{"class":"blocklyPath blocklyPathSelected",stroke:this.svgPath.getAttribute("stroke")||"",fill:this.svgPath.getAttribute("fill")||"",d:this.svgPath.getAttribute("d")||"",transform:this.svgPath.getAttribute("transform")||"",role:Ka.NONE},
1673
+ this.svgRoot),this.svgRoot.appendChild(this.svgPathSelected)):this.svgPathSelected&&(this.svgRoot.removeChild(this.svgPathSelected),this.svgPathSelected=null)}beginDrawing(){this.remainingOutlines.clear();for(let a of this.outlines.keys())this.remainingOutlines.add(a)}endDrawing(){if(this.remainingOutlines.size)for(let a of this.remainingOutlines)this.removeOutlinePath(a);this.remainingOutlines.clear()}setOutlinePath(a,b){a=this.getOutlinePath(a);a.setAttribute("d",b);a.setAttribute("fill",this.style.colourTertiary)}getOutlinePath(a){this.outlines.has(a)||
1674
+ this.outlines.set(a,r(q.PATH,{"class":"blocklyOutlinePath",d:""},this.svgRoot));this.remainingOutlines.delete(a);return this.outlines.get(a)}removeOutlinePath(a){var b,c;(b=this.outlines.get(a))==null||(c=b.parentNode)==null||c.removeChild(this.outlines.get(a));this.outlines.delete(a)}};var aq=class extends pp{constructor(a){super(a)}makeConstants_(){return new Rp}makeRenderInfo_(a){return new Zp(this,a)}makeDrawer_(a,b){return new Sp(a,b)}makePathObject(a,b){return new $p(a,b,this.getConstants())}getConstants(){return this.constants_}shouldHighlightConnection(a){return super.shouldHighlightConnection(a)||a.type===G.INPUT_VALUE}};uj("zelos",aq);var bq=class{constructor(a){this.staticConn=this.draggedConn=this.markerConn=this.fadedBlock=null;this.workspace=a.workspace;this.insertionMarker=new Fp}previewReplacement(a,b,c){$.Ub++;try{this.hidePreview(),this.fadedBlock=c,c.fadeForReplacement(!0),this.workspace.getRenderer().shouldHighlightConnection(b)&&(b.highlight(),this.staticConn=b)}finally{$.Ub--}}previewConnection(a,b){if(a!==this.draggedConn||b!==this.staticConn){$.Ub++;try{this.hidePreview(),this.shouldUseMarkerPreview(a,b)&&(this.shouldUseFastInsertionMarkers()?
1675
+ this.insertionMarker.show(b,a):this.markerConn=this.previewMarker(a,b)),this.workspace.getRenderer().shouldHighlightConnection(b)&&b.highlight(),this.workspace.getRenderer().shouldHighlightConnection(a)&&a.highlight(),this.draggedConn=a,this.staticConn=b}finally{$.Ub--}}}shouldUseMarkerPreview(a,b){return b.type===G.PREVIOUS_STATEMENT||b.type===G.NEXT_STATEMENT||!(this.workspace.getRenderer()instanceof aq)}previewMarker(a,b){var c=a.getSourceBlock(),d=this.createInsertionMarker(c),e=this.getMatchingConnection(c,
1676
+ d,a);if(!e)return null;d.queueRender();dd();e.connect(b);var f={x:b.x-e.x,y:b.y-e.y},g=e.getOffsetInBlock().clone();cd().then(()=>{if(!d.isDeadOrDying()){$.Ub++;try{d==null||d.positionNearConnection(e,f,g),d==null||d.getSvgRoot().setAttribute("visibility","visible")}finally{$.Ub--}}});return e}serializeBlockToInsertionMarker(a){var b=ce(a,{addCoordinates:!1,addInputBlocks:!1,addNextBlocks:!1,doFullSerialization:!1});if(!b)throw Error(`Failed to serialize source block. ${a.toDevString()}`);return b}createInsertionMarker(a){a=
1677
+ this.serializeBlockToInsertionMarker(a);a=ee(a,this.workspace);for(let b of a.getDescendants(!1))b.setInsertionMarker(!0);a.initSvg();a.getSvgRoot().setAttribute("visibility","hidden");return a}getMatchingConnection(a,b,c){a=a.getConnections_(!0);b=b.getConnections_(!0);if(a.length!==b.length)return null;for(let d=0;d<a.length;d++)if(a[d]===c)return b[d];return null}hidePreview(){$.Ub++;try{this.staticConn&&(this.staticConn.unhighlight(),this.staticConn=null),this.draggedConn&&(this.draggedConn.unhighlight(),
1678
+ this.draggedConn=null),this.fadedBlock&&(this.fadedBlock.fadeForReplacement(!1),this.fadedBlock=null),this.shouldUseFastInsertionMarkers()?this.insertionMarker.hide():this.markerConn&&(this.hideInsertionMarker(this.markerConn),this.draggedConn=this.markerConn=null)}finally{$.Ub--}}hideInsertionMarker(a){var b=a.getSourceBlock(),c=b.outputConnection,d;if(((d=b.previousConnection)==null?0:d.targetConnection)||(c==null?0:c.targetConnection))b.unplug(!0);else{let e;(e=a.targetBlock())==null||e.unplug(!1)}b.dispose()}dispose(){this.hidePreview()}shouldUseFastInsertionMarkers(){var a=
1679
+ this.workspace.getRenderer();return a.constructor===Qp||a.constructor===Op||a.constructor===aq||bq.useFastInsertionMarkers}};bq.useFastInsertionMarkers=!1;A(y.CONNECTION_PREVIEWER,"default",bq);var cq={};cq.Align=$.En;cq.DummyInput=Kn;cq.EndRowInput=Ln;cq.Input=Jn;cq.StatementInput=Mn;cq.ValueInput=$.Nn;cq.inputTypes=$.je;var Jj=!1;$.dq=class{constructor(a){this.forBlock=Object.create(null);this.FUNCTION_NAME_PLACEHOLDER_="{leCUI8hutHZI4480Dc}";this.STATEMENT_SUFFIX=this.STATEMENT_PREFIX=this.INFINITE_LOOP_TRAP=null;this.INDENT=" ";this.COMMENT_WRAP=60;this.ORDER_OVERRIDES=[];this.isInitialized=null;this.RESERVED_WORDS_="";this.definitions_=Object.create(null);this.functionNames_=Object.create(null);this.nameDB_=void 0;this.name_=a;this.FUNCTION_NAME_PLACEHOLDER_REGEXP_=new RegExp(this.FUNCTION_NAME_PLACEHOLDER_,"g")}workspaceToCode(a){a||
1636
1680
  (console.warn("No workspace specified in workspaceToCode call. Guessing."),a=kb);var b=[];this.init(a);a=a.getTopBlocks(!0);for(let c=0,d;d=a[c];c++){let e=this.blockToCode(d);Array.isArray(e)&&(e=e[0]);e&&(d.outputConnection&&(e=this.scrubNakedValue(e),this.STATEMENT_PREFIX&&!d.suppressPrefixSuffix&&(e=this.injectId(this.STATEMENT_PREFIX,d)+e),this.STATEMENT_SUFFIX&&!d.suppressPrefixSuffix&&(e+=this.injectId(this.STATEMENT_SUFFIX,d))),b.push(e))}b=b.join("\n");b=this.finish(b);b=b.replace(/^\s+\n/,
1637
1681
  "");b=b.replace(/\n\s+$/,"\n");return b=b.replace(/[ \t]+\n/g,"\n")}prefixLines(a,b){return b+a.replace(/(?!\n$)\n/g,"\n"+b)}allNestedComments(a){var b=[];a=a.getDescendants(!0);for(let c=0;c<a.length;c++){let d=a[c].getCommentText();d&&b.push(d)}b.length&&b.push("");return b.join("\n")}blockToCode(a,b){this.isInitialized===!1&&console.warn("CodeGenerator init was not called before blockToCode was called.");if(!a)return"";if(!a.isEnabled())return b?"":this.blockToCode(a.getNextBlock());if(a.isInsertionMarker())return b?
1638
1682
  "":this.blockToCode(a.getChildren(!1)[0]);var c=this.forBlock[a.type];if(typeof c!=="function")throw Error(`${this.name_} generator does not know how to generate code for block type "${a.type}".`);c=c.call(a,a,this);if(Array.isArray(c)){if(!a.outputConnection)throw TypeError("Expecting string from statement block: "+a.type);return[this.scrub_(a,c[0],b),c[1]]}if(typeof c==="string")return this.STATEMENT_PREFIX&&!a.suppressPrefixSuffix&&(c=this.injectId(this.STATEMENT_PREFIX,a)+c),this.STATEMENT_SUFFIX&&
@@ -1640,130 +1684,97 @@ a=de(a,this.workspace);for(let b of a.getDescendants(!1))b.setInsertionMarker(!0
1640
1684
  a=b[0];b=b[1];if(isNaN(b))throw TypeError("Expecting valid order from value block: "+d.type);if(!a)return"";d=!1;var e=Math.floor(c),f=Math.floor(b);if(e<=f&&(e!==f||e!==0&&e!==99))for(d=!0,e=0;e<this.ORDER_OVERRIDES.length;e++)if(this.ORDER_OVERRIDES[e][0]===c&&this.ORDER_OVERRIDES[e][1]===b){d=!1;break}d&&(a="("+a+")");return a}statementToCode(a,b){var c=a.getInputTargetBlock(b);if(!c&&!a.getInput(b))throw ReferenceError(`Input "${b}" doesn't exist on "${a.type}"`);a=this.blockToCode(c);if(typeof a!==
1641
1685
  "string")throw TypeError("Expecting code from statement block: "+(c&&c.type));a&&(a=this.prefixLines(a,this.INDENT));return a}addLoopTrap(a,b){this.INFINITE_LOOP_TRAP&&(a=this.prefixLines(this.injectId(this.INFINITE_LOOP_TRAP,b),this.INDENT)+a);this.STATEMENT_SUFFIX&&!b.suppressPrefixSuffix&&(a=this.prefixLines(this.injectId(this.STATEMENT_SUFFIX,b),this.INDENT)+a);this.STATEMENT_PREFIX&&!b.suppressPrefixSuffix&&(a+=this.prefixLines(this.injectId(this.STATEMENT_PREFIX,b),this.INDENT));return a}injectId(a,
1642
1686
  b){b=b.id.replace(/\$/g,"$$$$");return a.replace(/%1/g,"'"+b+"'")}addReservedWords(a){this.RESERVED_WORDS_+=a+","}provideFunction_(a,b){if(!this.definitions_[a]){let c=this.nameDB_.getDistinctName(a,$.P.PROCEDURE);this.functionNames_[a]=c;Array.isArray(b)&&(b=b.join("\n"));b=b.trim().replace(this.FUNCTION_NAME_PLACEHOLDER_REGEXP_,c);let d;for(;d!==b;)d=b,b=b.replace(/^(( {2})*) {2}/gm,"$1\x00");b=b.replace(/\0/g,this.INDENT);this.definitions_[a]=b}return this.functionNames_[a]}getVariableName(a){return this.getName(a,
1643
- $.P.VARIABLE)}getProcedureName(a){return this.getName(a,$.P.PROCEDURE)}getName(a,b){if(!this.nameDB_)throw Error("Name database is not defined. You must initialize `nameDB_` in your generator class and call `init` first.");return this.nameDB_.getName(a,b)}init(){this.definitions_=Object.create(null);this.functionNames_=Object.create(null)}scrub_(a,b){return b}finish(a){this.definitions_=Object.create(null);this.functionNames_=Object.create(null);return a}scrubNakedValue(a){return a}};var Sp=class extends Bo{constructor(a){super(a)}setMetrics_(a){if(this.isVisible()){var b=this.workspace_.getMetricsManager(),c=b.getScrollMetrics(),d=b.getViewMetrics();b=b.getAbsoluteMetrics();typeof a.y==="number"&&(this.workspace_.scrollY=-(c.top+(c.height-d.height)*a.y));this.workspace_.translate(this.workspace_.scrollX+b.left,this.workspace_.scrollY+b.top)}}getX(){if(!this.isVisible())return 0;var a=this.targetWorkspace.getMetricsManager(),b=a.getAbsoluteMetrics(),c=a.getViewMetrics();a=a.getToolboxMetrics();
1687
+ $.P.VARIABLE)}getProcedureName(a){return this.getName(a,$.P.PROCEDURE)}getName(a,b){if(!this.nameDB_)throw Error("Name database is not defined. You must initialize `nameDB_` in your generator class and call `init` first.");return this.nameDB_.getName(a,b)}init(){this.definitions_=Object.create(null);this.functionNames_=Object.create(null)}scrub_(a,b){return b}finish(a){this.definitions_=Object.create(null);this.functionNames_=Object.create(null);return a}scrubNakedValue(a){return a}};var eq=class extends Co{constructor(a){super(a)}setMetrics_(a){if(this.isVisible()){var b=this.workspace_.getMetricsManager(),c=b.getScrollMetrics(),d=b.getViewMetrics();b=b.getAbsoluteMetrics();typeof a.y==="number"&&(this.workspace_.scrollY=-(c.top+(c.height-d.height)*a.y));this.workspace_.translate(this.workspace_.scrollX+b.left,this.workspace_.scrollY+b.top)}}getX(){if(!this.isVisible())return 0;var a=this.targetWorkspace.getMetricsManager(),b=a.getAbsoluteMetrics(),c=a.getViewMetrics();a=a.getToolboxMetrics();
1644
1688
  return this.targetWorkspace.toolboxPosition===this.toolboxPosition_?this.targetWorkspace.getToolbox()?this.toolboxPosition_===F.LEFT?a.width:c.width-this.getWidth():this.toolboxPosition_===F.LEFT?0:c.width:this.toolboxPosition_===F.LEFT?0:c.width+b.left-this.getWidth()}getY(){return 0}position(){if(this.isVisible()&&this.targetWorkspace.isVisible()){var a=this.targetWorkspace.getMetricsManager().getViewMetrics();this.height_=a.height;var b=this.getWidth()-this.CORNER_RADIUS;this.setBackgroundPath(b,
1645
1689
  a.height-2*this.CORNER_RADIUS);a=this.getX();b=this.getY();this.positionAt_(this.getWidth(),this.getHeight(),a,b)}}setBackgroundPath(a,b){var c=this.toolboxPosition_===F.RIGHT,d=a+this.CORNER_RADIUS;d=["M "+(c?d:0)+",0"];d.push("h",c?-a:a);d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,c?0:1,c?-this.CORNER_RADIUS:this.CORNER_RADIUS,this.CORNER_RADIUS);d.push("v",Math.max(0,b));d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,c?0:1,c?this.CORNER_RADIUS:-this.CORNER_RADIUS,this.CORNER_RADIUS);
1646
- d.push("h",c?a:-a);d.push("z");this.svgBackground_.setAttribute("d",d.join(" "))}scrollToStart(){var a;(a=this.workspace_.scrollbar)==null||a.setY(0)}wheel_(a){var b=qa(a);if(b.y){let c=this.workspace_.getMetricsManager(),d=c.getScrollMetrics();b=c.getViewMetrics().top-d.top+b.y;let e;(e=this.workspace_.scrollbar)==null||e.setY(b);vg(this.workspace_);nf()}a.preventDefault();a.stopPropagation()}layout_(a){this.workspace_.scale=this.targetWorkspace.scale;var b=this.MARGIN,c=this.RTL?b:b+this.tabWidth_;
1690
+ d.push("h",c?a:-a);d.push("z");this.svgBackground_.setAttribute("d",d.join(" "))}scrollToStart(){var a;(a=this.workspace_.scrollbar)==null||a.setY(0)}wheel_(a){var b=pa(a);if(b.y){let c=this.workspace_.getMetricsManager(),d=c.getScrollMetrics();b=c.getViewMetrics().top-d.top+b.y;let e;(e=this.workspace_.scrollbar)==null||e.setY(b);wg(this.workspace_);of()}a.preventDefault();a.stopPropagation()}layout_(a){this.workspace_.scale=this.targetWorkspace.scale;var b=this.MARGIN,c=this.RTL?b:b+this.tabWidth_;
1647
1691
  for(let d of a)d.getElement().moveBy(c,b),b+=d.getElement().getBoundingRectangle().getHeight()}getClientRect(){if(!this.svgGroup_||this.autoClose||!this.isVisible())return null;var a=this.svgGroup_.getBoundingClientRect(),b=a.left;return this.toolboxPosition_===F.LEFT?new cc(-1E9,1E9,-1E9,b+a.width):new cc(-1E9,1E9,b,1E9)}reflowInternal_(){this.workspace_.scale=this.getFlyoutScale();var a=this.getContents().reduce((b,c)=>Math.max(b,c.getElement().getBoundingRectangle().getWidth()),0);a+=this.MARGIN*
1648
1692
  1.5+this.tabWidth_;a*=this.workspace_.scale;a+=Ic.scrollbarThickness;if(this.getWidth()!==a){if(this.RTL)for(let b of this.getContents()){let c=b.getElement().getBoundingRectangle().left,d=a/this.workspace_.scale-b.getElement().getBoundingRectangle().getWidth()-this.MARGIN-this.tabWidth_;b.getElement().moveBy(d-c,0)}this.targetWorkspace.scrollbar||this.autoClose||this.targetWorkspace.getFlyout()!==this||this.toolboxPosition_!==F.LEFT||this.targetWorkspace.translate(this.targetWorkspace.scrollX+a,
1649
- this.targetWorkspace.scrollY);this.width_=a;this.position();this.targetWorkspace.resizeContents();this.targetWorkspace.recordDragTargets()}}};Sp.registryName="verticalFlyout";A(y.FLYOUTS_VERTICAL_TOOLBOX,"default",Sp);var Tp=class extends Bo{constructor(a){super(a);this.horizontalLayout=!0}setMetrics_(a){if(this.isVisible()){var b=this.workspace_.getMetricsManager(),c=b.getScrollMetrics(),d=b.getViewMetrics();b=b.getAbsoluteMetrics();typeof a.x==="number"&&(this.workspace_.scrollX=-(c.left+(c.width-d.width)*a.x));this.workspace_.translate(this.workspace_.scrollX+b.left,this.workspace_.scrollY+b.top)}}getX(){return 0}getY(){if(!this.isVisible())return 0;var a=this.targetWorkspace.getMetricsManager(),b=a.getAbsoluteMetrics(),
1693
+ this.targetWorkspace.scrollY);this.width_=a;this.position();this.targetWorkspace.resizeContents();this.targetWorkspace.recordDragTargets()}}};eq.registryName="verticalFlyout";A(y.FLYOUTS_VERTICAL_TOOLBOX,"default",eq);var fq=class extends Co{constructor(a){super(a);this.horizontalLayout=!0}setMetrics_(a){if(this.isVisible()){var b=this.workspace_.getMetricsManager(),c=b.getScrollMetrics(),d=b.getViewMetrics();b=b.getAbsoluteMetrics();typeof a.x==="number"&&(this.workspace_.scrollX=-(c.left+(c.width-d.width)*a.x));this.workspace_.translate(this.workspace_.scrollX+b.left,this.workspace_.scrollY+b.top)}}getX(){return 0}getY(){if(!this.isVisible())return 0;var a=this.targetWorkspace.getMetricsManager(),b=a.getAbsoluteMetrics(),
1650
1694
  c=a.getViewMetrics();a=a.getToolboxMetrics();var d=this.toolboxPosition_===F.TOP;return this.targetWorkspace.toolboxPosition===this.toolboxPosition_?this.targetWorkspace.getToolbox()?d?a.height:c.height-this.getHeight():d?0:c.height:d?0:c.height+b.top-this.getHeight()}position(){if(this.isVisible()&&this.targetWorkspace.isVisible()){var a=this.targetWorkspace.getMetricsManager().getViewMetrics();this.width_=a.width;a=a.width-2*this.CORNER_RADIUS;var b=this.getHeight()-this.CORNER_RADIUS;this.setBackgroundPath(a,
1651
1695
  b);a=this.getX();b=this.getY();this.positionAt_(this.getWidth(),this.getHeight(),a,b)}}setBackgroundPath(a,b){var c=this.toolboxPosition_===F.TOP,d=["M 0,"+(c?0:this.CORNER_RADIUS)];c?(d.push("h",a+2*this.CORNER_RADIUS),d.push("v",b),d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,-this.CORNER_RADIUS,this.CORNER_RADIUS),d.push("h",-a),d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,-this.CORNER_RADIUS,-this.CORNER_RADIUS)):(d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,this.CORNER_RADIUS,
1652
- -this.CORNER_RADIUS),d.push("h",a),d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,this.CORNER_RADIUS,this.CORNER_RADIUS),d.push("v",b),d.push("h",-a-2*this.CORNER_RADIUS));d.push("z");this.svgBackground_.setAttribute("d",d.join(" "))}scrollToStart(){var a;(a=this.workspace_.scrollbar)==null||a.setX(this.RTL?Infinity:0)}wheel_(a){var b=qa(a);if(b=b.x||b.y){let c=this.workspace_.getMetricsManager(),d=c.getScrollMetrics();b=c.getViewMetrics().left-d.left+b;let e;(e=this.workspace_.scrollbar)==
1653
- null||e.setX(b);vg(this.workspace_);nf()}a.preventDefault();a.stopPropagation()}layout_(a){this.workspace_.scale=this.targetWorkspace.scale;var b=this.MARGIN,c=b+this.tabWidth_;this.RTL&&(a=a.reverse());for(let d of a)a=d.getElement().getBoundingRectangle(),a=this.RTL?c+a.getWidth():c,d.getElement().moveBy(a,b),c+=d.getElement().getBoundingRectangle().getWidth()}getClientRect(){if(!this.svgGroup_||this.autoClose||!this.isVisible())return null;var a=this.svgGroup_.getBoundingClientRect(),b=a.top;return this.toolboxPosition_===
1696
+ -this.CORNER_RADIUS),d.push("h",a),d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,this.CORNER_RADIUS,this.CORNER_RADIUS),d.push("v",b),d.push("h",-a-2*this.CORNER_RADIUS));d.push("z");this.svgBackground_.setAttribute("d",d.join(" "))}scrollToStart(){var a;(a=this.workspace_.scrollbar)==null||a.setX(this.RTL?Infinity:0)}wheel_(a){var b=pa(a);if(b=b.x||b.y){let c=this.workspace_.getMetricsManager(),d=c.getScrollMetrics();b=c.getViewMetrics().left-d.left+b;let e;(e=this.workspace_.scrollbar)==
1697
+ null||e.setX(b);wg(this.workspace_);of()}a.preventDefault();a.stopPropagation()}layout_(a){this.workspace_.scale=this.targetWorkspace.scale;var b=this.MARGIN,c=b+this.tabWidth_;this.RTL&&(a=a.reverse());for(let d of a)a=d.getElement().getBoundingRectangle(),a=this.RTL?c+a.getWidth():c,d.getElement().moveBy(a,b),c+=d.getElement().getBoundingRectangle().getWidth()}getClientRect(){if(!this.svgGroup_||this.autoClose||!this.isVisible())return null;var a=this.svgGroup_.getBoundingClientRect(),b=a.top;return this.toolboxPosition_===
1654
1698
  F.TOP?new cc(-1E9,b+a.height,-1E9,1E9):new cc(b,1E9,-1E9,1E9)}reflowInternal_(){this.workspace_.scale=this.getFlyoutScale();var a=this.getContents().reduce((b,c)=>Math.max(b,c.getElement().getBoundingRectangle().getHeight()),0);a+=this.MARGIN*1.5;a*=this.workspace_.scale;a+=Ic.scrollbarThickness;this.getHeight()!==a&&(this.targetWorkspace.scrollbar||this.autoClose||this.targetWorkspace.getFlyout()!==this||this.toolboxPosition_!==F.TOP||this.targetWorkspace.translate(this.targetWorkspace.scrollX,this.targetWorkspace.scrollY+
1655
- a),this.height_=a,this.position(),this.targetWorkspace.resizeContents(),this.targetWorkspace.recordDragTargets())}};A(y.FLYOUTS_HORIZONTAL_TOOLBOX,"default",Tp);var Up=class extends yh{constructor(a,b,c,d,e){super(qg.SKIP_SETUP);this.defaultType="";this.variableTypes=[];this.variable=null;this.SERIALIZABLE=!0;this.menuGenerator_=Up.dropdownCreate;this.defaultVariableName=typeof a==="string"?a:"";this.size_=new hc(0,0);a!==qg.SKIP_SETUP&&(e?this.configure_(e):this.setTypes(c,d),b&&this.setValidator(b))}configure_(a){super.configure_(a);this.setTypes(a.variableTypes,a.defaultType)}initModel(){var a=this.getSourceBlock();if(!a)throw new kj;this.variable||(a=
1656
- $.Wd(a.workspace,null,this.defaultVariableName,this.defaultType),this.doValueUpdate_(a.getId()))}initView(){super.initView();n(this.fieldGroup_,"blocklyVariableField")}shouldAddBorderRect_(){var a=this.getSourceBlock();if(!a)throw new kj;return super.shouldAddBorderRect_()&&(!this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW||a.type!=="variables_get")}fromXml(a){var b=this.getSourceBlock();if(!b)throw new kj;var c=a.getAttribute("id"),d=a.textContent,e=a.getAttribute("variabletype")||a.getAttribute("variableType")||
1657
- "";b=$.Wd(b.workspace,c,d,e);if(e!==null&&e!==b.getType())throw Error("Serialized variable type with id '"+b.getId()+"' had type "+b.getType()+", and does not match variable field that references it: "+$d(a)+".");this.setValue(b.getId())}toXml(a){this.initModel();a.id=this.variable.getId();a.textContent=this.variable.getName();this.variable.getType()&&a.setAttribute("variabletype",this.variable.getType());return a}saveState(a){var b=this.saveLegacyState(Up);if(b!==null)return b;this.initModel();b=
1658
- {id:this.variable.getId()};a&&(b.name=this.variable.getName(),b.type=this.variable.getType());return b}loadState(a){var b=this.getSourceBlock();if(!b)throw new kj;this.loadLegacyState(Up,a)||(a=$.Wd(b.workspace,a.id||null,a.name,a.type||""),this.setValue(a.getId()))}setSourceBlock(a){if(a.isShadow())throw Error("Variable fields are not allowed to exist on shadow blocks.");super.setSourceBlock(a)}getValue(){return this.variable?this.variable.getId():null}getText(){return this.variable?this.variable.getName():
1659
- ""}getVariable(){return this.variable}getDefaultType(){return this.defaultType}getValidator(){return this.variable?this.validator_:null}doClassValidation_(a){if(a===null)return null;var b=this.getSourceBlock();if(!b)throw new kj;b=$.Vd(b.workspace,a);if(!b)return console.warn("Variable id doesn't point to a real variable! ID was "+a),null;b=b.getType();return this.typeIsAllowed(b)?a:(console.warn("Variable type doesn't match this field! Type was "+b),null)}doValueUpdate_(a){var b=this.getSourceBlock();
1660
- if(!b)throw new kj;this.variable=$.Vd(b.workspace,a);super.doValueUpdate_(a)}typeIsAllowed(a){var b=this.getVariableTypes();if(!b)return!0;for(let c=0;c<b.length;c++)if(a===b[c])return!0;return!1}getVariableTypes(){if(this.variableTypes)return this.variableTypes;if(!this.sourceBlock_||this.sourceBlock_.isDeadOrDying())return[""];var a=this.sourceBlock_.workspace.getVariableMap().getTypes();if(this.sourceBlock_.isInFlyout){let b=this.sourceBlock_.workspace.getPotentialVariableMap();if(!b)return a;
1699
+ a),this.height_=a,this.position(),this.targetWorkspace.resizeContents(),this.targetWorkspace.recordDragTargets())}};A(y.FLYOUTS_HORIZONTAL_TOOLBOX,"default",fq);var gq=class extends zh{constructor(a,b,c,d,e){super(rg.SKIP_SETUP);this.defaultType="";this.variableTypes=[];this.variable=null;this.SERIALIZABLE=!0;this.menuGenerator_=gq.dropdownCreate;this.defaultVariableName=typeof a==="string"?a:"";this.size_=new hc(0,0);a!==rg.SKIP_SETUP&&(e?this.configure_(e):this.setTypes(c,d),b&&this.setValidator(b))}configure_(a){super.configure_(a);this.setTypes(a.variableTypes,a.defaultType)}initModel(){var a=this.getSourceBlock();if(!a)throw new lj;this.variable||(a=
1700
+ $.Wd(a.workspace,null,this.defaultVariableName,this.defaultType),this.doValueUpdate_(a.getId()))}initView(){super.initView();n(this.fieldGroup_,"blocklyVariableField")}shouldAddBorderRect_(){var a=this.getSourceBlock();if(!a)throw new lj;return super.shouldAddBorderRect_()&&(!this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW||a.type!=="variables_get")}fromXml(a){var b=this.getSourceBlock();if(!b)throw new lj;var c=a.getAttribute("id"),d=a.textContent,e=a.getAttribute("variabletype")||a.getAttribute("variableType")||
1701
+ "";b=$.Wd(b.workspace,c,d,e);if(e!==null&&e!==b.getType())throw Error("Serialized variable type with id '"+b.getId()+"' had type "+b.getType()+", and does not match variable field that references it: "+ae(a)+".");this.setValue(b.getId())}toXml(a){this.initModel();a.id=this.variable.getId();a.textContent=this.variable.getName();this.variable.getType()&&a.setAttribute("variabletype",this.variable.getType());return a}saveState(a){var b=this.saveLegacyState(gq);if(b!==null)return b;this.initModel();b=
1702
+ {id:this.variable.getId()};a&&(b.name=this.variable.getName(),b.type=this.variable.getType());return b}loadState(a){var b=this.getSourceBlock();if(!b)throw new lj;this.loadLegacyState(gq,a)||(a=$.Wd(b.workspace,a.id||null,a.name,a.type||""),this.setValue(a.getId()))}setSourceBlock(a){if(a.isShadow())throw Error("Variable fields are not allowed to exist on shadow blocks.");super.setSourceBlock(a)}getValue(){return this.variable?this.variable.getId():null}getText(){return this.variable?this.variable.getName():
1703
+ ""}getVariable(){return this.variable}getDefaultType(){return this.defaultType}getValidator(){return this.variable?this.validator_:null}doClassValidation_(a){if(a===null)return null;var b=this.getSourceBlock();if(!b)throw new lj;b=$.Vd(b.workspace,a);if(!b)return console.warn("Variable id doesn't point to a real variable! ID was "+a),null;b=b.getType();return this.typeIsAllowed(b)?a:(console.warn("Variable type doesn't match this field! Type was "+b),null)}doValueUpdate_(a){var b=this.getSourceBlock();
1704
+ if(!b)throw new lj;this.variable=$.Vd(b.workspace,a);super.doValueUpdate_(a)}typeIsAllowed(a){var b=this.getVariableTypes();if(!b)return!0;for(let c=0;c<b.length;c++)if(a===b[c])return!0;return!1}getVariableTypes(){if(this.variableTypes)return this.variableTypes;if(!this.sourceBlock_||this.sourceBlock_.isDeadOrDying())return[""];var a=this.sourceBlock_.workspace.getVariableMap().getTypes();if(this.sourceBlock_.isInFlyout){let b=this.sourceBlock_.workspace.getPotentialVariableMap();if(!b)return a;
1661
1705
  a=Array.from(new Set([...a,...b.getTypes()]))}return a}setTypes(a=null,b=""){var c=this.getText();if(Array.isArray(a)){if(a.length===0)throw Error(`'variableTypes' of field variable ${c} was an empty list. If you want to include all variable types, pass 'null' instead.`);c=!1;for(let d=0;d<a.length;d++)a[d]===b&&(c=!0);if(!c)throw Error("Invalid default type '"+b+"' in the definition of a FieldVariable");}else if(a!==null)throw Error(`'variableTypes' was not an array or null in the definition of FieldVariable ${c}`);
1662
- this.defaultType=b;this.variableTypes=a}refreshVariableName(){this.forceRerender()}onItemSelected_(a,b){a=b.getValue();if(this.sourceBlock_&&!this.sourceBlock_.isDeadOrDying()){if(a==="RENAME_VARIABLE_ID"&&this.variable){$.Rd(this.sourceBlock_.workspace,this.variable);return}if(a==="DELETE_VARIABLE_ID"&&this.variable){a=this.variable.getWorkspace();$.Zd(a,this.variable,this.sourceBlock_);return}}this.setValue(a)}referencesVariables(){return!0}static fromJson(a){return new this(gg(a.variable),void 0,
1706
+ this.defaultType=b;this.variableTypes=a}refreshVariableName(){this.forceRerender()}onItemSelected_(a,b){a=b.getValue();if(this.sourceBlock_&&!this.sourceBlock_.isDeadOrDying()){if(a==="RENAME_VARIABLE_ID"&&this.variable){$.Rd(this.sourceBlock_.workspace,this.variable);return}if(a==="DELETE_VARIABLE_ID"&&this.variable){a=this.variable.getWorkspace();$.$d(a,this.variable,this.sourceBlock_);return}}this.setValue(a)}referencesVariables(){return!0}static fromJson(a){return new this(hg(a.variable),void 0,
1663
1707
  void 0,void 0,a)}static dropdownCreate(){if(!this.variable)throw Error("Tried to call dropdownCreate on a variable field with no variable selected.");var a=this.getText(),b=[],c=this.getSourceBlock();if(c&&!c.isDeadOrDying()){c=c.workspace;let f=this.getVariableTypes();for(let g=0;g<f.length;g++){let h=f[g],m=c.getVariableMap().getVariablesOfType(h);b=b.concat(m);if(c.isFlyout){var d=void 0,e=void 0;b=b.concat((e=(d=c.getPotentialVariableMap())==null?void 0:d.getVariablesOfType(h))!=null?e:[])}}}b.sort(Hd);
1664
- d=[];for(e=0;e<b.length;e++)d[e]=[b[e].getName(),b[e].getId()];d.push([$.C.RENAME_VARIABLE.replace("%1",a),"RENAME_VARIABLE_ID"]);$.C.DELETE_VARIABLE&&d.push([$.C.DELETE_VARIABLE.replace("%1",a),"DELETE_VARIABLE_ID"]);return d}getAriaValue(){return $.C.FIELD_LABEL_VARIABLE.replace("%1",super.getAriaValue())}};ih("field_variable",Up);var Vp=class extends Hp{constructor(a,b,c,d,e,f){super(qg.SKIP_SETUP);this.min_=-Infinity;this.max_=Infinity;this.precision_=0;this.decimalPlaces=null;this.spellcheck_=!1;a!==qg.SKIP_SETUP&&(f?this.configure_(f):this.setConstraints(b,c,d),this.setValue(a),e&&this.setValidator(e))}configure_(a){super.configure_(a);this.setMinInternal(a.min);this.setMaxInternal(a.max);this.setPrecisionInternal(a.precision)}setConstraints(a,b,c){this.setMinInternal(a);this.setMaxInternal(b);this.setPrecisionInternal(c);
1708
+ d=[];for(e=0;e<b.length;e++)d[e]=[b[e].getName(),b[e].getId()];d.push([$.C.RENAME_VARIABLE.replace("%1",a),"RENAME_VARIABLE_ID"]);$.C.DELETE_VARIABLE&&d.push([$.C.DELETE_VARIABLE.replace("%1",a),"DELETE_VARIABLE_ID"]);return d}getAriaValue(){return $.C.FIELD_LABEL_VARIABLE.replace("%1",super.getAriaValue())}};jh("field_variable",gq);var hq=class extends Up{constructor(a,b,c,d,e,f){super(rg.SKIP_SETUP);this.min_=-Infinity;this.max_=Infinity;this.precision_=0;this.decimalPlaces=null;this.spellcheck_=!1;a!==rg.SKIP_SETUP&&(f?this.configure_(f):this.setConstraints(b,c,d),this.setValue(a),e&&this.setValidator(e))}configure_(a){super.configure_(a);this.setMinInternal(a.min);this.setMaxInternal(a.max);this.setPrecisionInternal(a.precision)}setConstraints(a,b,c){this.setMinInternal(a);this.setMaxInternal(b);this.setPrecisionInternal(c);
1665
1709
  this.setValue(this.getValue())}setMin(a){this.setMinInternal(a);this.setValue(this.getValue())}setMinInternal(a){a==null?this.min_=-Infinity:(a=Number(a),isNaN(a)||(this.min_=a))}getMin(){return this.min_}setMax(a){this.setMaxInternal(a);this.setValue(this.getValue())}setMaxInternal(a){a==null?this.max_=Infinity:(a=Number(a),isNaN(a)||(this.max_=a))}getMax(){return this.max_}setPrecision(a){this.setPrecisionInternal(a);this.setValue(this.getValue())}setPrecisionInternal(a){this.precision_=Number(a)||
1666
1710
  0;var b=String(this.precision_);b.includes("e")&&(b=this.precision_.toLocaleString("en-US",{maximumFractionDigits:20}));var c=b.indexOf(".");this.decimalPlaces=c===-1?a?0:null:b.length-c-1}getPrecision(){return this.precision_}doClassValidation_(a){if(a===null)return null;a=`${a}`.replace(/O/gi,"0");a=a.replace(/,/g,"");a=a.replace(/infinity/i,"Infinity");a=Number(a||0);if(isNaN(a))return null;a=Math.min(Math.max(a,this.min_),this.max_);this.precision_&&isFinite(a)&&(a=Math.round(a/this.precision_)*
1667
- this.precision_);this.decimalPlaces!==null&&(a=Number(a.toFixed(this.decimalPlaces)));return a}widgetCreate_(){var a=super.widgetCreate_();this.min_>-Infinity&&(a.min=`${this.min_}`);this.max_<Infinity&&(a.max=`${this.max_}`);return a}initView(){super.initView();this.fieldGroup_&&n(this.fieldGroup_,"blocklyNumberField")}static fromJson(a){return new this(a.value,void 0,void 0,void 0,void 0,a)}getAriaTypeName(){return this.ariaTypeName||$.C.ARIA_TYPE_FIELD_NUMBER}};ih("field_number",Vp);
1668
- Vp.prototype.DEFAULT_VALUE=0;var Wp=class extends $n{constructor(a,b,c){super(String(a!=null?a:""),b,c);this.EDITABLE=!1;this.SERIALIZABLE=!0}static fromJson(a){return new this(gg(a.text),void 0,a)}};ih("field_label_serializable",Wp);var Xp=class extends qg{constructor(a,b,c){super(qg.SKIP_SETUP);this.SERIALIZABLE=!0;this.value_=this.value_;this.checkChar=Xp.CHECK_CHAR;a!==qg.SKIP_SETUP&&(c&&this.configure_(c),this.setValue(a),b&&this.setValidator(b))}configure_(a){super.configure_(a);a.checkCharacter&&(this.checkChar=a.checkCharacter)}saveState(){var a=this.saveLegacyState(Xp);return a!==null?a:this.getValueBoolean()}initView(){super.initView();var a=this.getTextElement();n(this.fieldGroup_,"blocklyCheckboxField");a.style.display=
1669
- this.value_?"block":"none";this.recomputeAriaContext()}render_(){this.textContent_&&(this.textContent_.nodeValue=this.getDisplayText_());this.updateSize_(this.getConstants().FIELD_CHECKBOX_X_OFFSET)}getDisplayText_(){return this.checkChar}setCheckCharacter(a){this.checkChar=a||Xp.CHECK_CHAR;this.forceRerender()}showEditor_(){this.setValue(!this.value_)}doClassValidation_(a){return a===!0||a==="TRUE"?"TRUE":a===!1||a==="FALSE"?"FALSE":null}doValueUpdate_(a){this.value_=this.convertValueToBool(a);this.textElement_&&
1711
+ this.precision_);this.decimalPlaces!==null&&(a=Number(a.toFixed(this.decimalPlaces)));return a}widgetCreate_(){var a=super.widgetCreate_();this.min_>-Infinity&&(a.min=`${this.min_}`);this.max_<Infinity&&(a.max=`${this.max_}`);return a}initView(){super.initView();this.fieldGroup_&&n(this.fieldGroup_,"blocklyNumberField")}static fromJson(a){return new this(a.value,void 0,void 0,void 0,void 0,a)}getAriaTypeName(){return this.ariaTypeName||$.C.ARIA_TYPE_FIELD_NUMBER}};jh("field_number",hq);
1712
+ hq.prototype.DEFAULT_VALUE=0;var iq=class extends ao{constructor(a,b,c){super(String(a!=null?a:""),b,c);this.EDITABLE=!1;this.SERIALIZABLE=!0}static fromJson(a){return new this(hg(a.text),void 0,a)}};jh("field_label_serializable",iq);var jq=class extends rg{constructor(a,b,c){super(rg.SKIP_SETUP);this.SERIALIZABLE=!0;this.value_=this.value_;this.checkChar=jq.CHECK_CHAR;a!==rg.SKIP_SETUP&&(c&&this.configure_(c),this.setValue(a),b&&this.setValidator(b))}configure_(a){super.configure_(a);a.checkCharacter&&(this.checkChar=a.checkCharacter)}saveState(){var a=this.saveLegacyState(jq);return a!==null?a:this.getValueBoolean()}initView(){super.initView();var a=this.getTextElement();n(this.fieldGroup_,"blocklyCheckboxField");a.style.display=
1713
+ this.value_?"block":"none";this.recomputeAriaContext()}render_(){this.textContent_&&(this.textContent_.nodeValue=this.getDisplayText_());this.updateSize_(this.getConstants().FIELD_CHECKBOX_X_OFFSET)}getDisplayText_(){return this.checkChar}setCheckCharacter(a){this.checkChar=a||jq.CHECK_CHAR;this.forceRerender()}showEditor_(){this.setValue(!this.value_)}doClassValidation_(a){return a===!0||a==="TRUE"?"TRUE":a===!1||a==="FALSE"?"FALSE":null}doValueUpdate_(a){this.value_=this.convertValueToBool(a);this.textElement_&&
1670
1714
  (this.textElement_.style.display=this.value_?"block":"none");this.recomputeAriaContext()}getValue(){return this.value_?"TRUE":"FALSE"}getValueBoolean(){return this.value_}getText(){return String(this.convertValueToBool(this.value_))}convertValueToBool(a){return typeof a==="string"?a==="TRUE":!!a}getAriaTypeName(){return this.ariaTypeName||$.C.ARIA_TYPE_FIELD_CHECKBOX}getAriaValue(){return this.convertValueToBool(this.value_)?$.C.FIELD_LABEL_CHECKBOX_CHECKED:$.C.FIELD_LABEL_CHECKBOX_UNCHECKED}static fromJson(a){return new this(a.checked,
1671
- void 0,a)}recomputeAriaContext(){if(!super.recomputeAriaContext())return!1;var a=this.getFocusableElement();l(a,p.HIDDEN,!1);ya(a,Ka.CHECKBOX);var b=this.convertValueToBool(this.value_);l(a,p.CHECKED,b);b=this.getAriaTypeName();l(a,p.LABEL,b);return!0}};Xp.CHECK_CHAR="\u2713";ih("field_checkbox",Xp);Xp.prototype.DEFAULT_VALUE=!1;var Yp=class{constructor(a){this.draggable=a;this.dragTarget=null;this.startLoc=a.getRelativeToSurfaceXY()}onDragStart(a){$.gd||$.B(!0);this.draggable=this.draggable.startDrag(a);this.startLoc=this.draggable.getRelativeToSurfaceXY();return this.draggable}onDrag(a,b){this.moveDraggable(a,b);if(a=a instanceof PointerEvent?a:null)a=new D(a.clientX,a.clientY),ei(this.draggable)&&this.draggable.setDeleteStyle(this.wouldDeleteDraggable(a,this.draggable)),this.updateDragTarget(a)}updateDragTarget(a){a=this.draggable.workspace.getDragTarget(a);
1672
- if(this.dragTarget!==a){let b;(b=this.dragTarget)==null||b.onDragExit(this.draggable);a==null||a.onDragEnter(this.draggable)}a==null||a.onDragOver(this.draggable);this.dragTarget=a}moveDraggable(a,b){b=this.pixelsToWorkspaceUnits(b);b=D.sum(this.startLoc,b);this.draggable.drag(b,a)}wouldDeleteDraggable(a,b){return(a=this.draggable.workspace.getDragTarget(a))&&this.draggable.workspace.getComponentManager().hasCapability(a.id,Ck.Capability.DELETE_AREA)?a.wouldDelete(b):!1}onDragEnd(a){var b=$.gd,c=
1673
- a instanceof PointerEvent?a:null;if(c){c=new D(c.clientX,c.clientY);if(this.draggable.workspace.getDragTarget(c)){var d;(d=this.dragTarget)==null||d.onDrop(this.draggable)}d=!1;this.shouldReturnToStart(c,this.draggable)&&(d=!0,this.draggable.revertDrag());(c=ei(this.draggable)&&this.wouldDeleteDraggable(c,this.draggable))&&ei(this.draggable)?(this.draggable.endDrag(a,Tn.DELETE),$.B(b),this.draggable.dispose()):this.draggable.endDrag(a,d?Tn.REVERT:Tn.COMMIT);$.B(!1);!c&&$a(this.draggable)&&$.t().focusNode(this.draggable)}else this.draggable.endDrag(a,
1674
- Tn.COMMIT),$a(this.draggable)&&$.t().focusNode(this.draggable)}onDragRevert(){this.draggable.revertDrag();$a(this.draggable)&&$.t().focusNode(this.draggable)}shouldReturnToStart(a,b){return(a=this.draggable.workspace.getDragTarget(a))?a.shouldPreventMove(b):!1}pixelsToWorkspaceUnits(a){a=new D(a.x/this.draggable.workspace.scale,a.y/this.draggable.workspace.scale);this.draggable.workspace.isMutator&&a.scale(1/this.draggable.workspace.options.parentWorkspace.scale);return a}};
1675
- A(y.BLOCK_DRAGGER,"default",Yp);var Zp={};Zp.BlockDragStrategy=Zn;Zp.BubbleDragStrategy=pn;Zp.CommentDragStrategy=bn;Zp.Dragger=Yp;var $p={};$p.BottomRow=Jp;$p.ConstantProvider=Ep;$p.Drawer=Fp;$p.PathObject=Np;$p.RenderInfo=Mp;$p.Renderer=Op;$p.RightConnectionShape=Kp;$p.StatementInput=Xj;$p.TopRow=Lp;hk();var aq={};aq.registerCleanup=Mj;aq.registerCollapse=Oj;aq.registerCollapseExpandBlock=ak;aq.registerComment=Wj;aq.registerCommentCreate=gk;aq.registerCommentDelete=ek;aq.registerCommentDuplicate=fk;aq.registerCommentOptions=function(){fk();ek();gk()};aq.registerDefaultOptions=hk;aq.registerDelete=ck;aq.registerDeleteAll=Tj;aq.registerDisable=bk;aq.registerDuplicate=Uj;aq.registerExpand=Pj;aq.registerHelp=dk;aq.registerInline=Zj;aq.registerRedo=Lj;aq.registerUndo=Kj;var bq=class{canConnect(a,b,c,d){return this.canConnectWithReason(a,b,c,d)===An.CAN_CONNECT}canConnectWithReason(a,b,c,d){var e=this.doSafetyChecks(a,b);return e!==An.CAN_CONNECT?e:this.doTypeChecks(a,b)?c&&!this.doDragChecks(a,b,d||0)?An.REASON_DRAG_CHECKS_FAILED:An.CAN_CONNECT:An.REASON_CHECKS_FAILED}getErrorMessage(a,b,c){switch(a){case An.REASON_SELF_CONNECTION:return"Attempted to connect a block to itself.";case An.REASON_DIFFERENT_WORKSPACES:return"Blocks not on same workspace.";case An.REASON_WRONG_TYPE:return"Attempt to connect incompatible types.";
1676
- case An.REASON_TARGET_NULL:return"Target connection is null.";case An.REASON_CHECKS_FAILED:return"Connection checks failed. "+(b+" expected "+b.getCheck()+", found "+c.getCheck());case An.REASON_SHADOW_PARENT:return"Connecting non-shadow to shadow block.";case An.REASON_DRAG_CHECKS_FAILED:return"Drag checks failed.";case An.REASON_PREVIOUS_AND_OUTPUT:return"Block would have an output and a previous connection.";default:return"Unknown connection failure: this should never happen!"}}doSafetyChecks(a,
1677
- b){if(!a||!b)return An.REASON_TARGET_NULL;if(a.isSuperior()){var c=a.getSourceBlock();var d=b.getSourceBlock();var e=b}else d=a.getSourceBlock(),c=b.getSourceBlock(),e=a,a=b;return c===d?An.REASON_SELF_CONNECTION:e.type!==Fn[a.type]?An.REASON_WRONG_TYPE:c.workspace!==d.workspace?An.REASON_DIFFERENT_WORKSPACES:c.isShadow()&&!d.isShadow()?An.REASON_SHADOW_PARENT:e.type===G.OUTPUT_VALUE&&d.previousConnection&&d.previousConnection.isConnected()||e.type===G.PREVIOUS_STATEMENT&&d.outputConnection&&d.outputConnection.isConnected()?
1678
- An.REASON_PREVIOUS_AND_OUTPUT:An.CAN_CONNECT}doTypeChecks(a,b){a=a.getCheck();b=b.getCheck();if(!a||!b)return!0;for(let c=0;c<a.length;c++)if(b.includes(a[c]))return!0;return!1}doDragChecks(a,b,c){if(a.distanceFrom(b)>c||b.getSourceBlock().isInsertionMarker())return!1;switch(b.type){case G.PREVIOUS_STATEMENT:return this.canConnectToPrevious_(a,b);case G.OUTPUT_VALUE:if(b.isConnected()&&!b.targetBlock().isInsertionMarker()||a.isConnected())return!1;break;case G.INPUT_VALUE:if(b.isConnected()&&!b.targetBlock().isMovable()&&
1679
- !b.targetBlock().isShadow())return!1;break;case G.NEXT_STATEMENT:if(b.isConnected()&&!a.getSourceBlock().nextConnection&&!b.targetBlock().isShadow()&&b.targetBlock().nextConnection||b.targetBlock()&&!b.targetBlock().isMovable()&&!b.targetBlock().isShadow())return!1;break;default:return!1}return Uk.includes(b)?!1:!0}canConnectToPrevious_(a,b){if(a.targetConnection||Uk.includes(b))return!1;if(!b.targetConnection)return!0;a=b.targetBlock();return a.isInsertionMarker()?!a.getPreviousBlock():!1}};
1680
- A(y.CONNECTION_CHECKER,"default",bq);var cq=class{load(a,b){a=new Ci(b.getWorkspace(),b.targetWorkspace,a,!1);a.show();return new fo(a,"button")}gapForItem(a,b){return b}disposeItem(a){a=a.getElement();a instanceof Ci&&a.dispose()}getType(){return"button"}};A(y.FLYOUT_INFLATER,"button",cq);var dq={};dq.Bubble=rn;dq.MiniWorkspaceBubble=sn;dq.TextBubble=ao;dq.TextInputBubble=yn;var eq=class{constructor(){this.permanentlyDisabledBlocks=new Set;this.listeners=new Map;this.capacityWrapper=this.filterFlyoutBasedOnCapacity.bind(this)}load(a,b){this.setFlyout(b);a=this.createBlock(a,b.getWorkspace());a.isEnabled()?this.updateStateBasedOnCapacity(a):this.permanentlyDisabledBlocks.add(a);a.getDescendants(!1).forEach(f=>{f.isInFlyout=!0;f=f.getFocusableElement();l(f,p.HIDDEN,!0);ya(f,Ka.NONE)});var c=a.getFocusableElement();za(c,p.HIDDEN);ya(c,Ka.OPTION);var d=a.getIcons().filter(f=>
1681
- {var g;return(g=f.isClickableInFlyout)==null?void 0:g.call(f,b.autoClose)}).map(f=>f.getFocusableElement().id).filter(f=>!!f),e=a.getConnections_(!0).map(f=>f.id);d=[...d,...e];d.length&&l(c,p.OWNS,d);this.addBlockListeners(a);return new fo(a,"block")}createBlock(a,b){a.blockxml?(a=typeof a.blockxml==="string"?$.uc(a.blockxml):a.blockxml,b=Mg(a,b)):(a.enabled===void 0&&(a.enabled=a.disabled!=="true"&&a.disabled!==!0),a.disabledReasons===void 0&&a.enabled===!1&&(a.disabledReasons=["MANUALLY_DISABLED"]),
1682
- "x"in a&&delete a.x,"y"in a&&delete a.y,b=ce(a,b));return b}gapForItem(a,b){if(a.gap)var c=parseInt(String(a.gap));else a.blockxml&&(a=typeof a.blockxml==="string"?$.uc(a.blockxml):a.blockxml,c=parseInt(a.getAttribute("gap")));return!c||isNaN(c)?b:c}disposeItem(a){a=a.getElement();a instanceof hi&&(this.removeListeners(a.id),a.dispose(!1,!1))}removeListeners(a){var b;((b=this.listeners.get(a))!=null?b:[]).forEach(c=>la(c));this.listeners.delete(a)}setFlyout(a){if(this.flyout!==a){if(this.flyout){let c;
1715
+ void 0,a)}recomputeAriaContext(){if(!super.recomputeAriaContext())return!1;var a=this.getFocusableElement();l(a,p.HIDDEN,!1);ya(a,Ka.CHECKBOX);var b=this.convertValueToBool(this.value_);l(a,p.CHECKED,b);b=this.getAriaTypeName();l(a,p.LABEL,b);return!0}};jq.CHECK_CHAR="\u2713";jh("field_checkbox",jq);jq.prototype.DEFAULT_VALUE=!1;var kq=class{constructor(a){this.draggable=a;this.dragTarget=null;this.startLoc=a.getRelativeToSurfaceXY()}onDragStart(a){$.gd||$.B(!0);this.draggable=this.draggable.startDrag(a);this.startLoc=this.draggable.getRelativeToSurfaceXY();return this.draggable}onDrag(a,b){this.moveDraggable(a,b);if(a=a instanceof PointerEvent?a:null)a=new D(a.clientX,a.clientY),fi(this.draggable)&&this.draggable.setDeleteStyle(this.wouldDeleteDraggable(a,this.draggable)),this.updateDragTarget(a)}updateDragTarget(a){a=this.draggable.workspace.getDragTarget(a);
1716
+ if(this.dragTarget!==a){let b;(b=this.dragTarget)==null||b.onDragExit(this.draggable);a==null||a.onDragEnter(this.draggable)}a==null||a.onDragOver(this.draggable);this.dragTarget=a}moveDraggable(a,b){b=this.pixelsToWorkspaceUnits(b);b=D.sum(this.startLoc,b);this.draggable.drag(b,a)}wouldDeleteDraggable(a,b){return(a=this.draggable.workspace.getDragTarget(a))&&this.draggable.workspace.getComponentManager().hasCapability(a.id,Dk.Capability.DELETE_AREA)?a.wouldDelete(b):!1}onDragEnd(a){var b=$.gd,c=
1717
+ a instanceof PointerEvent?a:null;if(c){c=new D(c.clientX,c.clientY);if(this.draggable.workspace.getDragTarget(c)){var d;(d=this.dragTarget)==null||d.onDrop(this.draggable)}d=!1;this.shouldReturnToStart(c,this.draggable)&&(d=!0,this.draggable.revertDrag());(c=fi(this.draggable)&&this.wouldDeleteDraggable(c,this.draggable))&&fi(this.draggable)?(this.draggable.endDrag(a,Un.DELETE),$.B(b),this.draggable.dispose()):this.draggable.endDrag(a,d?Un.REVERT:Un.COMMIT);$.B(!1);!c&&$a(this.draggable)&&$.t().focusNode(this.draggable)}else this.draggable.endDrag(a,
1718
+ Un.COMMIT),$a(this.draggable)&&$.t().focusNode(this.draggable)}onDragRevert(){this.draggable.revertDrag();$a(this.draggable)&&$.t().focusNode(this.draggable)}shouldReturnToStart(a,b){return(a=this.draggable.workspace.getDragTarget(a))?a.shouldPreventMove(b):!1}pixelsToWorkspaceUnits(a){a=new D(a.x/this.draggable.workspace.scale,a.y/this.draggable.workspace.scale);this.draggable.workspace.isMutator&&a.scale(1/this.draggable.workspace.options.parentWorkspace.scale);return a}};
1719
+ A(y.BLOCK_DRAGGER,"default",kq);var lq={};lq.BlockDragStrategy=$n;lq.BubbleDragStrategy=qn;lq.CommentDragStrategy=cn;lq.Dragger=kq;var mq={};mq.BottomRow=Wp;mq.ConstantProvider=Rp;mq.Drawer=Sp;mq.PathObject=$p;mq.RenderInfo=Zp;mq.Renderer=aq;mq.RightConnectionShape=Xp;mq.StatementInput=Yj;mq.TopRow=Yp;ik();var nq={};nq.registerCleanup=Nj;nq.registerCollapse=Pj;nq.registerCollapseExpandBlock=bk;nq.registerComment=Xj;nq.registerCommentCreate=hk;nq.registerCommentDelete=fk;nq.registerCommentDuplicate=gk;nq.registerCommentOptions=function(){gk();fk();hk()};nq.registerDefaultOptions=ik;nq.registerDelete=dk;nq.registerDeleteAll=Uj;nq.registerDisable=ck;nq.registerDuplicate=Vj;nq.registerExpand=Qj;nq.registerHelp=ek;nq.registerInline=Zj;nq.registerRedo=Mj;nq.registerUndo=Lj;var oq=class{canConnect(a,b,c,d){return this.canConnectWithReason(a,b,c,d)===Bn.CAN_CONNECT}canConnectWithReason(a,b,c,d){var e=this.doSafetyChecks(a,b);return e!==Bn.CAN_CONNECT?e:this.doTypeChecks(a,b)?c&&!this.doDragChecks(a,b,d||0)?Bn.REASON_DRAG_CHECKS_FAILED:Bn.CAN_CONNECT:Bn.REASON_CHECKS_FAILED}getErrorMessage(a,b,c){switch(a){case Bn.REASON_SELF_CONNECTION:return"Attempted to connect a block to itself.";case Bn.REASON_DIFFERENT_WORKSPACES:return"Blocks not on same workspace.";case Bn.REASON_WRONG_TYPE:return"Attempt to connect incompatible types.";
1720
+ case Bn.REASON_TARGET_NULL:return"Target connection is null.";case Bn.REASON_CHECKS_FAILED:return"Connection checks failed. "+(b+" expected "+b.getCheck()+", found "+c.getCheck());case Bn.REASON_SHADOW_PARENT:return"Connecting non-shadow to shadow block.";case Bn.REASON_DRAG_CHECKS_FAILED:return"Drag checks failed.";case Bn.REASON_PREVIOUS_AND_OUTPUT:return"Block would have an output and a previous connection.";default:return"Unknown connection failure: this should never happen!"}}doSafetyChecks(a,
1721
+ b){if(!a||!b)return Bn.REASON_TARGET_NULL;if(a.isSuperior()){var c=a.getSourceBlock();var d=b.getSourceBlock();var e=b}else d=a.getSourceBlock(),c=b.getSourceBlock(),e=a,a=b;return c===d?Bn.REASON_SELF_CONNECTION:e.type!==Gn[a.type]?Bn.REASON_WRONG_TYPE:c.workspace!==d.workspace?Bn.REASON_DIFFERENT_WORKSPACES:c.isShadow()&&!d.isShadow()?Bn.REASON_SHADOW_PARENT:e.type===G.OUTPUT_VALUE&&d.previousConnection&&d.previousConnection.isConnected()||e.type===G.PREVIOUS_STATEMENT&&d.outputConnection&&d.outputConnection.isConnected()?
1722
+ Bn.REASON_PREVIOUS_AND_OUTPUT:Bn.CAN_CONNECT}doTypeChecks(a,b){a=a.getCheck();b=b.getCheck();if(!a||!b)return!0;for(let c=0;c<a.length;c++)if(b.includes(a[c]))return!0;return!1}doDragChecks(a,b,c){if(a.distanceFrom(b)>c||b.getSourceBlock().isInsertionMarker())return!1;switch(b.type){case G.PREVIOUS_STATEMENT:return this.canConnectToPrevious_(a,b);case G.OUTPUT_VALUE:if(b.isConnected()&&!b.targetBlock().isInsertionMarker()||a.isConnected())return!1;break;case G.INPUT_VALUE:if(b.isConnected()&&!b.targetBlock().isMovable()&&
1723
+ !b.targetBlock().isShadow())return!1;break;case G.NEXT_STATEMENT:if(b.isConnected()&&!a.getSourceBlock().nextConnection&&!b.targetBlock().isShadow()&&b.targetBlock().nextConnection||b.targetBlock()&&!b.targetBlock().isMovable()&&!b.targetBlock().isShadow())return!1;break;default:return!1}return Vk.includes(b)?!1:!0}canConnectToPrevious_(a,b){if(a.targetConnection||Vk.includes(b))return!1;if(!b.targetConnection)return!0;a=b.targetBlock();return a.isInsertionMarker()?!a.getPreviousBlock():!1}};
1724
+ A(y.CONNECTION_CHECKER,"default",oq);var pq=class{load(a,b){a=new Di(b.getWorkspace(),b.targetWorkspace,a,!1);a.show();return new go(a,"button")}gapForItem(a,b){return b}disposeItem(a){a=a.getElement();a instanceof Di&&a.dispose()}getType(){return"button"}};A(y.FLYOUT_INFLATER,"button",pq);var qq={};qq.Bubble=sn;qq.MiniWorkspaceBubble=tn;qq.TextBubble=bo;qq.TextInputBubble=zn;var rq=class{constructor(){this.permanentlyDisabledBlocks=new Set;this.listeners=new Map;this.capacityWrapper=this.filterFlyoutBasedOnCapacity.bind(this)}load(a,b){this.setFlyout(b);a=this.createBlock(a,b.getWorkspace());a.isEnabled()?this.updateStateBasedOnCapacity(a):this.permanentlyDisabledBlocks.add(a);a.getDescendants(!1).forEach(f=>{f.isInFlyout=!0;f=f.getFocusableElement();l(f,p.HIDDEN,!0);ya(f,Ka.NONE)});var c=a.getFocusableElement();za(c,p.HIDDEN);ya(c,Ka.OPTION);var d=a.getIcons().filter(f=>
1725
+ {var g;return(g=f.isClickableInFlyout)==null?void 0:g.call(f,b.autoClose)}).map(f=>f.getFocusableElement().id).filter(f=>!!f),e=a.getConnections_(!0).map(f=>f.id);d=[...d,...e];d.length&&l(c,p.OWNS,d);this.addBlockListeners(a);return new go(a,"block")}createBlock(a,b){a.blockxml?(a=typeof a.blockxml==="string"?$.uc(a.blockxml):a.blockxml,b=Ng(a,b)):(a.enabled===void 0&&(a.enabled=a.disabled!=="true"&&a.disabled!==!0),a.disabledReasons===void 0&&a.enabled===!1&&(a.disabledReasons=["MANUALLY_DISABLED"]),
1726
+ "x"in a&&delete a.x,"y"in a&&delete a.y,b=de(a,b));return b}gapForItem(a,b){if(a.gap)var c=parseInt(String(a.gap));else a.blockxml&&(a=typeof a.blockxml==="string"?$.uc(a.blockxml):a.blockxml,c=parseInt(a.getAttribute("gap")));return!c||isNaN(c)?b:c}disposeItem(a){a=a.getElement();a instanceof ii&&(this.removeListeners(a.id),a.dispose(!1,!1))}removeListeners(a){var b;((b=this.listeners.get(a))!=null?b:[]).forEach(c=>ka(c));this.listeners.delete(a)}setFlyout(a){if(this.flyout!==a){if(this.flyout){let c;
1683
1727
  (c=this.flyout.targetWorkspace)==null||c.removeChangeListener(this.capacityWrapper)}this.flyout=a;var b;(b=this.flyout.targetWorkspace)==null||b.addChangeListener(this.capacityWrapper)}}updateStateBasedOnCapacity(a){for(var b,c,d=(b=this.flyout)==null?void 0:(c=b.targetWorkspace)==null?void 0:c.isCapacityAvailable(ub(a));a;)a.setDisabledReason(!d,"WORKSPACE_AT_BLOCK_CAPACITY"),a=a.getNextBlock()}addBlockListeners(a){var b=[];b.push(k(a.getSvgRoot(),"pointerdown",a,c=>{var d,e,f=(d=this.flyout)==null?
1684
- void 0:(e=d.targetWorkspace)==null?void 0:e.getGesture(c);f&&this.flyout&&(f.setStartBlock(a),f.handleFlyoutStart(c,this.flyout))}));b.push(ka(a.getSvgRoot(),"pointermove",null,()=>{var c,d;((c=this.flyout)==null?0:(d=c.targetWorkspace)==null?0:d.isDragging())||a.addSelect()}));b.push(ka(a.getSvgRoot(),"pointerleave",null,()=>{var c,d;((c=this.flyout)==null?0:(d=c.targetWorkspace)==null?0:d.isDragging())||a.removeSelect()}));this.listeners.set(a.id,b)}filterFlyoutBasedOnCapacity(a){!this.flyout||
1685
- a&&a.type!==v.BLOCK_CREATE&&a.type!==v.BLOCK_DELETE||this.flyout.getWorkspace().getTopBlocks(!1).forEach(b=>{this.permanentlyDisabledBlocks.has(b)||this.updateStateBasedOnCapacity(b)})}getType(){return"block"}};A(y.FLYOUT_INFLATER,"block",eq);var fq=class extends kp{constructor(){super();this.FIELD_TEXT_BASELINE_CENTER=!1;this.DARK_PATH_OFFSET=1;this.MAX_BOTTOM_WIDTH=30;this.STATEMENT_BOTTOM_SPACER=-this.NOTCH_HEIGHT/2}getCSS_(a){return super.getCSS_(a).concat([`${a} .blocklyInsertionMarker>.blocklyPathLight,`,`${a} .blocklyInsertionMarker>.blocklyPathDark {`,`fill-opacity: ${this.INSERTION_MARKER_OPACITY};`,"stroke: none;","}"])}};var gq=class{constructor(a){this.inlineSteps_=this.steps_="";this.info_=a;this.RTL_=this.info_.RTL;a=a.getRenderer();this.constants_=a.getConstants();this.highlightConstants_=a.getHighlightConstants();this.highlightOffset=this.highlightConstants_.OFFSET;this.outsideCornerPaths_=this.highlightConstants_.OUTSIDE_CORNER;this.insideCornerPaths_=this.highlightConstants_.INSIDE_CORNER;this.puzzleTabPaths_=this.highlightConstants_.PUZZLE_TAB;this.notchPaths_=this.highlightConstants_.NOTCH;this.startPaths_=
1686
- this.highlightConstants_.START_HAT;this.jaggedTeethPaths_=this.highlightConstants_.JAGGED_TEETH}getPath(){return this.steps_+"\n"+this.inlineSteps_}drawTopCorner(a){this.steps_+=Ch(a.xPos,this.info_.startY);for(let b=0,c;c=a.elements[b];b++)Q.isLeftSquareCorner(c)?this.steps_+=this.highlightConstants_.START_POINT:Q.isLeftRoundedCorner(c)?this.steps_+=this.outsideCornerPaths_.topLeft(this.RTL_):Q.isPreviousConnection(c)?this.steps_+=this.notchPaths_.pathLeft:Q.isHat(c)?this.steps_+=this.startPaths_.path(this.RTL_):
1687
- Q.isSpacer(c)&&c.width!==0&&(this.steps_+=J("H",c.xPos+c.width-this.highlightOffset));this.steps_+=J("H",a.xPos+a.width-this.highlightOffset)}drawJaggedEdge_(a){this.info_.RTL&&(this.steps_+=this.jaggedTeethPaths_.pathLeft+J("v",a.height-this.jaggedTeethPaths_.height-this.highlightOffset))}drawValueInput(a){var b=a.getLastInput();if(this.RTL_){let c=a.height-b.connectionHeight;this.steps_+=Bh(b.xPos+b.width-this.highlightOffset,a.yPos)+this.puzzleTabPaths_.pathDown(this.RTL_)+J("v",c)}else this.steps_+=
1688
- Bh(b.xPos+b.width,a.yPos)+this.puzzleTabPaths_.pathDown(this.RTL_)}drawStatementInput(a){var b=a.getLastInput();if(b)if(this.RTL_){let c=a.height-2*this.insideCornerPaths_.height;this.steps_+=Bh(b.xPos,a.yPos)+this.insideCornerPaths_.pathTop(this.RTL_)+J("v",c)+this.insideCornerPaths_.pathBottom(this.RTL_)+Dh(a.width-b.xPos-this.insideCornerPaths_.width,0)}else this.steps_+=Bh(b.xPos,a.yPos+a.height)+this.insideCornerPaths_.pathBottom(this.RTL_)+Dh(a.width-b.xPos-this.insideCornerPaths_.width,0)}drawRightSideRow(a){var b=
1689
- a.xPos+a.width-this.highlightOffset;a instanceof fp&&a.followsStatement&&(this.steps_+=J("H",b));this.RTL_&&(this.steps_+=J("H",b),a.height>this.highlightOffset&&(this.steps_+=J("V",a.yPos+a.height-this.highlightOffset)))}drawBottomRow(a){if(this.RTL_)this.steps_+=J("V",a.baseline-this.highlightOffset);else{let b=this.info_.bottomRow.elements[0];Q.isLeftSquareCorner(b)?this.steps_+=Bh(a.xPos+this.highlightOffset,a.baseline-this.highlightOffset):Q.isLeftRoundedCorner(b)&&(this.steps_+=Bh(a.xPos,a.baseline),
1690
- this.steps_+=this.outsideCornerPaths_.bottomLeft())}}drawLeft(){var a=this.info_.outputConnection;a&&(a=a.connectionOffsetY+a.height,this.RTL_?this.steps_+=Bh(this.info_.startX,a):(this.steps_+=Bh(this.info_.startX+this.highlightOffset,this.info_.bottomRow.baseline-this.highlightOffset),this.steps_+=J("V",a)),this.steps_+=this.puzzleTabPaths_.pathUp(this.RTL_));this.RTL_||(a=this.info_.topRow,Q.isLeftRoundedCorner(a.elements[0])?this.steps_+=J("V",this.outsideCornerPaths_.height):this.steps_+=J("V",
1691
- a.capline+this.highlightOffset))}drawInlineInput(a){var b=this.highlightOffset,c=a.xPos+a.connectionWidth,d=a.centerline-a.height/2,e=a.width-a.connectionWidth,f=d+b;this.RTL_?(d=a.connectionOffsetY-b,a=a.height-(a.connectionOffsetY+a.connectionHeight)+b,this.inlineSteps_+=Bh(c-b,f)+J("v",d)+this.puzzleTabPaths_.pathDown(this.RTL_)+J("v",a)+J("h",e)):this.inlineSteps_+=Bh(a.xPos+a.width+b,f)+J("v",a.height)+J("h",-e)+Bh(c,d+a.connectionOffsetY)+this.puzzleTabPaths_.pathDown(this.RTL_)}};var hq=class extends lp{constructor(a,b){super(a,b);this.highlighter_=new gq(b)}draw(){this.drawOutline_();this.drawInternals_();this.updateConnectionHighlights();var a=this.block_.pathObject;a.setPath(this.outlinePath_+"\n"+this.inlinePath_);a.setHighlightPath(this.highlighter_.getPath());this.info_.RTL&&a.flipRTL();this.recordSizeOnBlock_()}drawTop_(){this.highlighter_.drawTopCorner(this.info_.topRow);this.highlighter_.drawRightSideRow(this.info_.topRow);super.drawTop_()}drawJaggedEdge_(a){this.highlighter_.drawJaggedEdge_(a);
1692
- super.drawJaggedEdge_(a)}drawValueInput_(a){this.highlighter_.drawValueInput(a);super.drawValueInput_(a)}drawStatementInput_(a){this.highlighter_.drawStatementInput(a);super.drawStatementInput_(a)}drawRightSideRow_(a){this.highlighter_.drawRightSideRow(a);this.outlinePath_+=J("H",a.xPos+a.width)+J("V",a.yPos+a.height)}drawBottom_(){this.highlighter_.drawBottomRow(this.info_.bottomRow);super.drawBottom_()}drawLeft_(){this.highlighter_.drawLeft();super.drawLeft_()}drawInlineInput_(a){this.highlighter_.drawInlineInput(a);
1693
- super.drawInlineInput_(a)}positionInlineInputConnection_(a){var b=a.centerline-a.height/2;if(a.connectionModel){let c=a.xPos+a.connectionWidth+this.constants_.DARK_PATH_OFFSET;this.info_.RTL&&(c*=-1);a.connectionModel.setOffsetInBlock(c,b+a.connectionOffsetY+this.constants_.DARK_PATH_OFFSET)}}positionStatementInputConnection_(a){var b=a.getLastInput();if(b==null?0:b.connectionModel){let c=a.xPos+a.statementEdge+b.notchOffset;c=this.info_.RTL?c*-1:c+this.constants_.DARK_PATH_OFFSET;b.connectionModel.setOffsetInBlock(c,
1694
- a.yPos+this.constants_.DARK_PATH_OFFSET)}}positionExternalValueConnection_(a){var b=a.getLastInput();if(b&&b.connectionModel){let c=a.xPos+a.width+this.constants_.DARK_PATH_OFFSET;this.info_.RTL&&(c*=-1);b.connectionModel.setOffsetInBlock(c,a.yPos)}}positionNextConnection_(){var a=this.info_.bottomRow;if(a.connection){let b=a.connection,c=b.xPos;b.connectionModel.setOffsetInBlock((this.info_.RTL?-c:c)+this.constants_.DARK_PATH_OFFSET/2,a.baseline+this.constants_.DARK_PATH_OFFSET)}}};var iq=class{constructor(a){this.OFFSET=.5;this.constantProvider=a;this.START_POINT=Ch(this.OFFSET,this.OFFSET)}init(){this.INSIDE_CORNER=this.makeInsideCorner();this.OUTSIDE_CORNER=this.makeOutsideCorner();this.PUZZLE_TAB=this.makePuzzleTab();this.NOTCH=this.makeNotch();this.JAGGED_TEETH=this.makeJaggedTeeth();this.START_HAT=this.makeStartHat()}makeInsideCorner(){var a=this.constantProvider.CORNER_RADIUS,b=this.OFFSET,c=(1-Math.SQRT1_2)*(a+b)-b,d=Ch(c,c)+Fh("a","0 0,0",a,I(-c-b,a-c)),e=Fh("a","0 0,0",
1695
- a+b,I(a+b,a+b)),f=Ch(c,-c)+Fh("a","0 0,0",a+b,I(a-c,c+b));return{width:a+b,height:a,pathTop(g){return g?d:""},pathBottom(g){return g?e:f}}}makeOutsideCorner(){var a=this.constantProvider.CORNER_RADIUS,b=this.OFFSET,c=(1-Math.SQRT1_2)*(a-b)+b,d=Ch(c,c)+Fh("a","0 0,1",a-b,I(a-c,-c+b)),e=Ch(b,a)+Fh("a","0 0,1",a-b,I(a,-a+b)),f=-c,g=Ch(c,f)+Fh("a","0 0,1",a-b,I(-c+b,-f-a));return{height:a,topLeft(h){return h?d:e},bottomLeft(){return g}}}makePuzzleTab(){var a=this.constantProvider.TAB_WIDTH,b=this.constantProvider.TAB_HEIGHT,
1696
- c=Ch(-2,-b+2.5+.9)+Dh(a*-.45,-2.1),d=J("v",2.5)+Ch(-a*.97,2.5)+Ah("q",[I(-a*.05,10),I(a*.3,9.5)])+Ch(a*.67,-1.9)+J("v",2.5),e=J("v",-1.5)+Ch(a*-.92,-.5)+Ah("q",[I(a*-.19,-5.5),I(0,-11)])+Ch(a*.92,1),f=Ch(-5,b-.7)+Dh(a*.46,-2.1);return{width:a,height:b,pathUp(g){return g?c:e},pathDown(g){return g?d:f}}}makeNotch(){return{pathLeft:J("h",this.OFFSET)+this.constantProvider.NOTCH.pathLeft}}makeJaggedTeeth(){return{pathLeft:Dh(5.1,2.6)+Ch(-10.2,6.8)+Dh(5.1,2.6),height:12,width:10.2}}makeStartHat(){var a=
1697
- this.constantProvider.START_HAT.height,b=Ch(25,-8.7)+Ah("c",[I(29.7,-6.2),I(57.2,-.5),I(75,8.7)]),c=Ah("c",[I(17.8,-9.2),I(45.3,-14.9),I(75,-8.7)])+Bh(100.5,a+.5);return{path(d){return d?b:c}}}};var jq=class extends Zo{constructor(a,b){super(a,b);this.constants_=a;this.connectedBlock&&(this.width+=this.constants_.DARK_PATH_OFFSET,this.height+=this.constants_.DARK_PATH_OFFSET)}};var kq=class extends hp{constructor(a,b){super(a,b);this.constants_=a;this.connectedBlock&&(this.height+=this.constants_.DARK_PATH_OFFSET)}};var lq=class extends mp{constructor(a,b){super(a,b);this.renderer_=a}getRenderer(){return this.renderer_}populateBottomRow_(){super.populateBottomRow_();this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1]instanceof Ln||(this.bottomRow.minHeight=this.constants_.MEDIUM_PADDING-this.constants_.DARK_PATH_OFFSET)}addInput_(a,b){if(this.isInline&&a instanceof $.Mn)b.elements.push(new jq(this.constants_,a)),b.hasInlineInput=!0;else if(a instanceof Ln)b.elements.push(new kq(this.constants_,
1698
- a)),b.hasStatement=!0;else if(a instanceof $.Mn)b.elements.push(new Uo(this.constants_,a)),b.hasExternalInput=!0;else if(a instanceof Jn||a instanceof Kn)b.minHeight=Math.max(b.minHeight,this.constants_.DUMMY_INPUT_MIN_HEIGHT),b.hasDummyInput=!0;this.isInline||b.align!==null||(b.align=a.align)}addElemSpacing_(){var a=!1;for(let c=0,d;d=this.rows[c];c++)d.hasExternalInput&&(a=!0);for(let c=0,d;d=this.rows[c];c++){var b=d.elements;d.elements=[];d.startsWithElemSpacer()&&d.elements.push(new Yo(this.constants_,
1699
- this.getInRowSpacing_(null,b[0])));if(b.length){for(let e=0;e<b.length-1;e++){d.elements.push(b[e]);let f=this.getInRowSpacing_(b[e],b[e+1]);d.elements.push(new Yo(this.constants_,f))}d.elements.push(b[b.length-1]);d.endsWithElemSpacer()&&(b=this.getInRowSpacing_(b[b.length-1],null),a&&d.hasDummyInput&&(b+=this.constants_.TAB_WIDTH),d.elements.push(new Yo(this.constants_,b)))}}}getInRowSpacing_(a,b){if(!a)return b&&Q.isField(b)&&b.isEditable?this.constants_.MEDIUM_PADDING:b&&Q.isInlineInput(b)?this.constants_.MEDIUM_LARGE_PADDING:
1700
- b&&Q.isStatementInput(b)?this.constants_.STATEMENT_INPUT_PADDING_LEFT:this.constants_.LARGE_PADDING;if(!Q.isInput(a)&&(!b||Q.isStatementInput(b)))return Q.isField(a)&&a.isEditable?a.width===0?this.constants_.NO_PADDING:this.constants_.MEDIUM_PADDING:Q.isIcon(a)?this.constants_.LARGE_PADDING*2+1:Q.isHat(a)?this.constants_.NO_PADDING:Q.isPreviousOrNextConnection(a)?this.constants_.LARGE_PADDING:Q.isLeftRoundedCorner(a)?this.constants_.MIN_BLOCK_WIDTH:Q.isJaggedEdge(a)?this.constants_.NO_PADDING:this.constants_.LARGE_PADDING;
1701
- if(Q.isInput(a)&&!b){if(Q.isExternalInput(a))return this.constants_.NO_PADDING;if(Q.isInlineInput(a))return this.constants_.LARGE_PADDING;if(Q.isStatementInput(a))return this.constants_.NO_PADDING}if(!Q.isInput(a)&&b&&Q.isInput(b)){if(Q.isField(a)&&a.isEditable){if(Q.isInlineInput(b)||Q.isExternalInput(b))return this.constants_.SMALL_PADDING}else{if(Q.isInlineInput(b)||Q.isExternalInput(b))return this.constants_.MEDIUM_LARGE_PADDING;if(Q.isStatementInput(b))return this.constants_.LARGE_PADDING}return this.constants_.LARGE_PADDING-
1702
- 1}if(Q.isIcon(a)&&b&&!Q.isInput(b))return this.constants_.LARGE_PADDING;if(Q.isInlineInput(a)&&b&&Q.isField(b))return b.isEditable?this.constants_.MEDIUM_PADDING:this.constants_.LARGE_PADDING;if(Q.isLeftSquareCorner(a)&&b){if(Q.isHat(b))return this.constants_.NO_PADDING;if(Q.isPreviousConnection(b))return b.notchOffset;if(Q.isNextConnection(b))return b.notchOffset+(this.RTL?1:-1)*this.constants_.DARK_PATH_OFFSET/2}if(Q.isLeftRoundedCorner(a)&&b){if(Q.isPreviousConnection(b))return b.notchOffset-this.constants_.CORNER_RADIUS;
1703
- if(Q.isNextConnection(b))return b.notchOffset-this.constants_.CORNER_RADIUS+(this.RTL?1:-1)*this.constants_.DARK_PATH_OFFSET/2}return Q.isField(a)&&b&&Q.isField(b)&&a.isEditable===b.isEditable?a.width===0?this.constants_.NO_PADDING:this.constants_.LARGE_PADDING:b&&Q.isJaggedEdge(b)?this.constants_.LARGE_PADDING:this.constants_.MEDIUM_PADDING}getSpacerRowHeight_(a,b){return Q.isTopRow(a)&&Q.isBottomRow(b)?this.constants_.EMPTY_BLOCK_SPACER_HEIGHT:Q.isTopRow(a)||Q.isBottomRow(b)?this.constants_.NO_PADDING:
1704
- a.hasExternalInput&&b.hasExternalInput?this.constants_.LARGE_PADDING:!a.hasStatement&&b.hasStatement?this.constants_.BETWEEN_STATEMENT_PADDING_Y:a.hasStatement&&b.hasStatement||!a.hasStatement&&b.hasDummyInput||a.hasDummyInput?this.constants_.LARGE_PADDING:this.constants_.MEDIUM_PADDING}getElemCenterline_(a,b){if(Q.isSpacer(b))return a.yPos+b.height/2;if(Q.isBottomRow(a))return a=a.yPos+a.height-a.descenderHeight,Q.isNextConnection(b)?a+b.height/2:a-b.height/2;if(Q.isTopRow(a))return Q.isHat(b)?a.capline-
1705
- b.height/2:a.capline+b.height/2;var c=a.yPos;Q.isField(b)||Q.isIcon(b)?(c+=b.height/2,(a.hasInlineInput||a.hasStatement)&&b.height+this.constants_.TALL_INPUT_FIELD_OFFSET_Y<=a.height&&(c+=this.constants_.TALL_INPUT_FIELD_OFFSET_Y)):c=Q.isInlineInput(b)?c+b.height/2:c+a.height/2;return c}alignRowElements_(){if(this.isInline){var a=0,b=new WeakMap,c=null;for(let d=this.rows.length-1,e;e=this.rows[d];d--)b.set(e,a),Q.isInputRow(e)&&(e.hasStatement&&this.alignStatementRow_(e),c&&c.hasStatement&&e.width<
1706
- c.width?b.set(e,c.width):a=e.hasStatement?e.width:Math.max(a,e.width),c=e);a=0;for(let d=0,e;e=this.rows[d];d++)e.hasStatement?a=this.getDesiredRowWidth_(e):Q.isSpacer(e)?e.width=Math.max(a,b.get(e)):(c=e.width,a=Math.max(a,b.get(e))-c,a>0&&this.addAlignmentPadding_(e,a),a=e.width)}else super.alignRowElements_()}getDesiredRowWidth_(a){return this.isInline&&a.hasStatement?this.statementEdge+this.constants_.MAX_BOTTOM_WIDTH+this.startX:super.getDesiredRowWidth_(a)}finalize_(){var a=0,b=0;for(let d=
1707
- 0,e;e=this.rows[d];d++){e.yPos=b;e.xPos=this.startX;b+=e.height;a=Math.max(a,e.widthWithConnectedBlocks);var c=b-this.topRow.ascenderHeight;e===this.bottomRow&&c<this.constants_.MIN_BLOCK_HEIGHT&&(c=this.constants_.MIN_BLOCK_HEIGHT-c,this.bottomRow.height+=c,b+=c);this.recordElemPositions_(e)}this.outputConnection&&this.block_.nextConnection&&this.block_.nextConnection.isConnected()&&(c=this.block_.nextConnection.targetBlock())&&(a=Math.max(a,c.getHeightWidth().width-this.constants_.DARK_PATH_OFFSET));
1708
- this.bottomRow.baseline=b-this.bottomRow.descenderHeight;this.widthWithChildren=a+this.startX+this.constants_.DARK_PATH_OFFSET;this.width+=this.constants_.DARK_PATH_OFFSET;this.height=b+this.constants_.DARK_PATH_OFFSET;this.startY=this.topRow.capline}};var mq=class extends np{constructor(a,b,c){super(a,b,c);this.constants=c;this.colourDark="#000000";this.svgPathDark=r(q.PATH,{"class":"blocklyPathDark",transform:"translate(1,1)"});this.svgRoot.insertBefore(this.svgPathDark,this.svgPath);this.svgPathLight=r(q.PATH,{"class":"blocklyPathLight"},this.svgRoot)}setPath(a){this.svgPath.setAttribute("d",a);this.svgPathDark.setAttribute("d",a)}setHighlightPath(a){this.svgPathLight.setAttribute("d",a)}flipRTL(){this.svgPath.setAttribute("transform","scale(-1 1)");
1709
- this.svgPathLight.setAttribute("transform","scale(-1 1)");this.svgPathDark.setAttribute("transform","translate(1,1) scale(-1 1)")}applyColour(a){this.svgPathLight.style.display="";this.svgPathDark.style.display="";this.svgPathLight.setAttribute("stroke",this.style.colourTertiary);this.svgPathDark.setAttribute("fill",this.colourDark);super.applyColour(a);this.svgPath.setAttribute("stroke","none")}setStyle(a){this.style=a;this.colourDark=ag("#000",this.style.colourPrimary,.2)||this.colourDark}updateHighlighted(a){super.updateHighlighted(a);
1710
- this.svgPathLight.style.display=a?"none":"inline"}updateShadow_(a){super.updateShadow_(a);a&&(this.svgPathLight.style.display="none",this.svgPathDark.setAttribute("fill",this.style.colourSecondary))}updateDisabled_(a){super.updateDisabled_(a);a&&this.svgPath.setAttribute("stroke","none")}};var nq=class extends op{constructor(a){super(a);this.highlightConstants=null}init(a,b){super.init(a,b);this.highlightConstants=this.makeHighlightConstants_();this.highlightConstants.init()}refreshDom(a,b,c){super.refreshDom(a,b,c);this.getHighlightConstants().init()}makeConstants_(){return new fq}makeRenderInfo_(a){return new lq(this,a)}makeDrawer_(a,b){return new hq(a,b)}makePathObject(a,b){return new mq(a,b,this.getConstants())}makeHighlightConstants_(){return new iq(this.getConstants())}getHighlightConstants(){if(!this.highlightConstants)throw Error("Cannot access the highlight constants because init has not been called");
1711
- return this.highlightConstants}};tj("geras",nq);var oq={};oq.ConstantProvider=fq;oq.Drawer=hq;oq.HighlightConstantProvider=iq;oq.Highlighter=gq;oq.InlineInput=jq;oq.PathObject=mq;oq.RenderInfo=lq;oq.Renderer=nq;oq.StatementInput=kq;var pq=class extends mp{constructor(a,b){super(a,b)}getRenderer(){return this.renderer_}addElemSpacing_(){var a=!1;for(var b=0;b<this.rows.length;b++)if(this.rows[b].hasExternalInput){a=!0;break}for(b=0;b<this.rows.length;b++){let d=this.rows[b];var c=d.elements;d.elements=[];d.startsWithElemSpacer()&&d.elements.push(new Yo(this.constants_,this.getInRowSpacing_(null,c[0])));if(c.length){for(let e=0;e<c.length-1;e++){d.elements.push(c[e]);let f=this.getInRowSpacing_(c[e],c[e+1]);d.elements.push(new Yo(this.constants_,
1712
- f))}d.elements.push(c[c.length-1]);d.endsWithElemSpacer()&&(c=this.getInRowSpacing_(c[c.length-1],null),a&&d.hasDummyInput&&(c+=this.constants_.TAB_WIDTH),d.elements.push(new Yo(this.constants_,c)))}}}getInRowSpacing_(a,b){if(!a)return b&&Q.isField(b)&&b.isEditable?this.constants_.MEDIUM_PADDING:b&&Q.isInlineInput(b)?this.constants_.MEDIUM_LARGE_PADDING:b&&Q.isStatementInput(b)?this.constants_.STATEMENT_INPUT_PADDING_LEFT:this.constants_.LARGE_PADDING;if(!Q.isInput(a)&&!b)return Q.isField(a)&&a.isEditable?
1713
- a.width===0?this.constants_.NO_PADDING:this.constants_.MEDIUM_PADDING:Q.isIcon(a)?this.constants_.LARGE_PADDING*2+1:Q.isHat(a)?this.constants_.NO_PADDING:Q.isPreviousOrNextConnection(a)?this.constants_.LARGE_PADDING:Q.isLeftRoundedCorner(a)?this.constants_.MIN_BLOCK_WIDTH:Q.isJaggedEdge(a)?this.constants_.NO_PADDING:this.constants_.LARGE_PADDING;if(Q.isInput(a)&&!b){if(Q.isExternalInput(a))return this.constants_.NO_PADDING;if(Q.isInlineInput(a))return this.constants_.LARGE_PADDING;if(Q.isStatementInput(a))return this.constants_.NO_PADDING}if(!Q.isInput(a)&&
1714
- b&&Q.isInput(b)){if(Q.isField(a)&&a.isEditable){if(Q.isInlineInput(b)||Q.isExternalInput(b))return this.constants_.SMALL_PADDING}else{if(Q.isInlineInput(b)||Q.isExternalInput(b))return this.constants_.MEDIUM_LARGE_PADDING;if(Q.isStatementInput(b))return this.constants_.LARGE_PADDING}return this.constants_.LARGE_PADDING-1}if(Q.isIcon(a)&&b&&!Q.isInput(b))return this.constants_.LARGE_PADDING;if(Q.isInlineInput(a)&&b&&Q.isField(b))return b.isEditable?this.constants_.MEDIUM_PADDING:this.constants_.LARGE_PADDING;
1715
- if(Q.isLeftSquareCorner(a)&&b){if(Q.isHat(b))return this.constants_.NO_PADDING;if(Q.isPreviousConnection(b)||Q.isNextConnection(b))return b.notchOffset}return Q.isLeftRoundedCorner(a)&&b?b.notchOffset-this.constants_.CORNER_RADIUS:Q.isField(a)&&b&&Q.isField(b)&&a.isEditable===b.isEditable?a.width===0?this.constants_.NO_PADDING:this.constants_.LARGE_PADDING:b&&Q.isJaggedEdge(b)?this.constants_.LARGE_PADDING:this.constants_.MEDIUM_PADDING}getSpacerRowHeight_(a,b){return Q.isTopRow(a)&&Q.isBottomRow(b)?
1716
- this.constants_.EMPTY_BLOCK_SPACER_HEIGHT:Q.isTopRow(a)||Q.isBottomRow(b)?this.constants_.NO_PADDING:a.hasExternalInput&&b.hasExternalInput?this.constants_.LARGE_PADDING:!a.hasStatement&&b.hasStatement?this.constants_.BETWEEN_STATEMENT_PADDING_Y:a.hasStatement&&b.hasStatement||a.hasDummyInput||b.hasDummyInput?this.constants_.LARGE_PADDING:this.constants_.MEDIUM_PADDING}getElemCenterline_(a,b){if(Q.isSpacer(b))return a.yPos+b.height/2;if(Q.isBottomRow(a))return a=a.yPos+a.height-a.descenderHeight,
1717
- Q.isNextConnection(b)?a+b.height/2:a-b.height/2;if(Q.isTopRow(a))return Q.isHat(b)?a.capline-b.height/2:a.capline+b.height/2;var c=a.yPos;return c=Q.isField(b)&&a.hasStatement?c+(this.constants_.TALL_INPUT_FIELD_OFFSET_Y+b.height/2):c+a.height/2}finalize_(){var a=0,b=0;for(var c=0;c<this.rows.length;c++){let e=this.rows[c];e.yPos=b;e.xPos=this.startX;b+=e.height;a=Math.max(a,e.widthWithConnectedBlocks);var d=b-this.topRow.ascenderHeight;e===this.bottomRow&&d<this.constants_.MIN_BLOCK_HEIGHT&&(d=this.constants_.MIN_BLOCK_HEIGHT-
1718
- d,this.bottomRow.height+=d,b+=d);this.recordElemPositions_(e)}this.outputConnection&&this.block_.nextConnection&&this.block_.nextConnection.isConnected()&&(c=this.block_.nextConnection.targetBlock())&&(a=Math.max(a,c.getHeightWidth().width));this.bottomRow.baseline=b-this.bottomRow.descenderHeight;this.widthWithChildren=a+this.startX;this.height=b;this.startY=this.topRow.capline}};var qq=class extends op{constructor(a){super(a)}makeRenderInfo_(a){return new pq(this,a)}};tj("thrasos",qq);var rq={};rq.RenderInfo=pq;rq.Renderer=qq;var sq=new mn("zelos",{colour_blocks:{colourPrimary:"#CF63CF",colourSecondary:"#C94FC9",colourTertiary:"#BD42BD"},list_blocks:{colourPrimary:"#9966FF",colourSecondary:"#855CD6",colourTertiary:"#774DCB"},logic_blocks:{colourPrimary:"#4C97FF",colourSecondary:"#4280D7",colourTertiary:"#3373CC"},loop_blocks:{colourPrimary:"#0fBD8C",colourSecondary:"#0DA57A",colourTertiary:"#0B8E69"},math_blocks:{colourPrimary:"#59C059",colourSecondary:"#46B946",colourTertiary:"#389438"},procedure_blocks:{colourPrimary:"#FF6680",
1728
+ void 0:(e=d.targetWorkspace)==null?void 0:e.getGesture(c);f&&this.flyout&&(f.setStartBlock(a),f.handleFlyoutStart(c,this.flyout))}));b.push(ja(a.getSvgRoot(),"pointermove",null,()=>{var c,d;((c=this.flyout)==null?0:(d=c.targetWorkspace)==null?0:d.isDragging())||a.addSelect()}));b.push(ja(a.getSvgRoot(),"pointerleave",null,()=>{var c,d;((c=this.flyout)==null?0:(d=c.targetWorkspace)==null?0:d.isDragging())||a.removeSelect()}));this.listeners.set(a.id,b)}filterFlyoutBasedOnCapacity(a){!this.flyout||
1729
+ a&&a.type!==v.BLOCK_CREATE&&a.type!==v.BLOCK_DELETE||this.flyout.getWorkspace().getTopBlocks(!1).forEach(b=>{this.permanentlyDisabledBlocks.has(b)||this.updateStateBasedOnCapacity(b)})}getType(){return"block"}};A(y.FLYOUT_INFLATER,"block",rq);var sq={};sq.ConstantProvider=Gp;sq.Drawer=Ip;sq.HighlightConstantProvider=Jp;sq.Highlighter=Hp;sq.InlineInput=Kp;sq.PathObject=Np;sq.RenderInfo=Mp;sq.Renderer=Op;sq.StatementInput=Lp;var tq={};tq.RenderInfo=Pp;tq.Renderer=Qp;var uq=new nn("zelos",{colour_blocks:{colourPrimary:"#CF63CF",colourSecondary:"#C94FC9",colourTertiary:"#BD42BD"},list_blocks:{colourPrimary:"#9966FF",colourSecondary:"#855CD6",colourTertiary:"#774DCB"},logic_blocks:{colourPrimary:"#4C97FF",colourSecondary:"#4280D7",colourTertiary:"#3373CC"},loop_blocks:{colourPrimary:"#0fBD8C",colourSecondary:"#0DA57A",colourTertiary:"#0B8E69"},math_blocks:{colourPrimary:"#59C059",colourSecondary:"#46B946",colourTertiary:"#389438"},procedure_blocks:{colourPrimary:"#FF6680",
1719
1730
  colourSecondary:"#FF4D6A",colourTertiary:"#FF3355"},text_blocks:{colourPrimary:"#FFBF00",colourSecondary:"#E6AC00",colourTertiary:"#CC9900"},variable_blocks:{colourPrimary:"#FF8C1A",colourSecondary:"#FF8000",colourTertiary:"#DB6E00"},variable_dynamic_blocks:{colourPrimary:"#FF8C1A",colourSecondary:"#FF8000",colourTertiary:"#DB6E00"},hat_blocks:{colourPrimary:"#4C97FF",colourSecondary:"#4280D7",colourTertiary:"#3373CC",hat:"cap"}},{colour_category:{colour:"#CF63CF"},list_category:{colour:"#9966FF"},
1720
- logic_category:{colour:"#4C97FF"},loop_category:{colour:"#0fBD8C"},math_category:{colour:"#59C059"},procedure_category:{colour:"#FF6680"},text_category:{colour:"#FFBF00"},variable_category:{colour:"#FF8C1A"},variable_dynamic_category:{colour:"#FF8C1A"}});var tq={Classic:nn,Zelos:sq};var uq=class{constructor(a,b,c){this.id_=a.toolboxitemid||Lb();this.level_=(this.parent_=c||null)?this.parent_.getLevel()+1:0;this.toolboxItemDef_=a;this.parentToolbox_=b;this.workspace_=this.parentToolbox_.getWorkspace()}init(){}getDiv(){return null}getClickTarget(){return null}getId(){return this.id_}getParent(){return null}getLevel(){return this.level_}isSelectable(){return!1}isCollapsible(){return!1}dispose(){}setVisible_(){}getFocusableElement(){var a=this.getDiv();if(!a)throw Error("Trying to access toolbox item before DOM is initialized.");
1721
- if(!(a instanceof HTMLElement))throw Error("Toolbox item div is unexpectedly not an HTML element.");return a}getFocusableTree(){return this.parentToolbox_}onNodeFocus(){}onNodeBlur(){}canBeFocused(){return!0}getParentToolbox(){return this.parentToolbox_}};var vq=class extends uq{constructor(a,b,c){super(a,b,c);this.colour_=this.name_="";this.labelDom_=this.iconDom_=this.rowContents_=this.rowDiv_=this.htmlDiv_=null;this.isDisabled_=this.isHidden_=!1;this.flyoutItems_=[];this.cssConfig_=this.makeDefaultCssConfig_()}init(){this.parseCategoryDef_(this.toolboxItemDef_);this.parseContents_(this.toolboxItemDef_);this.createDom_();this.toolboxItemDef_.hidden==="true"&&this.hide()}makeDefaultCssConfig_(){return{container:"blocklyToolboxCategoryContainer",row:"blocklyToolboxCategory",
1731
+ logic_category:{colour:"#4C97FF"},loop_category:{colour:"#0fBD8C"},math_category:{colour:"#59C059"},procedure_category:{colour:"#FF6680"},text_category:{colour:"#FFBF00"},variable_category:{colour:"#FF8C1A"},variable_dynamic_category:{colour:"#FF8C1A"}});var vq={Classic:on,Zelos:uq};var wq=class{constructor(a,b,c){this.id_=a.toolboxitemid||Lb();this.level_=(this.parent_=c||null)?this.parent_.getLevel()+1:0;this.toolboxItemDef_=a;this.parentToolbox_=b;this.workspace_=this.parentToolbox_.getWorkspace()}init(){}getDiv(){return null}getClickTarget(){return null}getId(){return this.id_}getParent(){return null}getLevel(){return this.level_}isSelectable(){return!1}isCollapsible(){return!1}dispose(){}setVisible_(){}getFocusableElement(){var a=this.getDiv();if(!a)throw Error("Trying to access toolbox item before DOM is initialized.");
1732
+ if(!(a instanceof HTMLElement))throw Error("Toolbox item div is unexpectedly not an HTML element.");return a}getFocusableTree(){return this.parentToolbox_}onNodeFocus(){}onNodeBlur(){}canBeFocused(){return!0}getParentToolbox(){return this.parentToolbox_}};var xq=class extends wq{constructor(a,b,c){super(a,b,c);this.colour_=this.name_="";this.labelDom_=this.iconDom_=this.rowContents_=this.rowDiv_=this.htmlDiv_=null;this.isDisabled_=this.isHidden_=!1;this.flyoutItems_=[];this.cssConfig_=this.makeDefaultCssConfig_()}init(){this.parseCategoryDef_(this.toolboxItemDef_);this.parseContents_(this.toolboxItemDef_);this.createDom_();this.toolboxItemDef_.hidden==="true"&&this.hide()}makeDefaultCssConfig_(){return{container:"blocklyToolboxCategoryContainer",row:"blocklyToolboxCategory",
1722
1733
  rowcontentcontainer:"blocklyTreeRowContentContainer",icon:"blocklyToolboxCategoryIcon",label:"blocklyToolboxCategoryLabel",contents:"blocklyToolboxCategoryGroup",selected:"blocklyToolboxSelected",openicon:"blocklyToolboxCategoryIconOpen",closedicon:"blocklyToolboxCategoryIconClosed"}}parseContents_(a){if("custom"in a)this.flyoutItems_=a.custom;else if(a=a.contents)for(let b=0;b<a.length;b++){let c=a[b];Array.isArray(this.flyoutItems_)&&this.flyoutItems_.push(c)}}parseCategoryDef_(a){this.name_="name"in
1723
- a?gg(a.name):"";this.colour_=this.getColour_(a);Object.assign(this.cssConfig_,a.cssconfig||a.cssConfig)}createDom_(){this.htmlDiv_=this.createContainer_();ya(this.htmlDiv_,Ka.TREEITEM);l(this.htmlDiv_,p.SELECTED,!1);l(this.htmlDiv_,p.LEVEL,this.level_+1);this.rowDiv_=this.createRowContainer_();this.rowDiv_.style.pointerEvents="auto";this.htmlDiv_.appendChild(this.rowDiv_);this.rowContents_=this.createRowContentsContainer_();this.rowContents_.style.pointerEvents="none";this.rowDiv_.appendChild(this.rowContents_);
1734
+ a?hg(a.name):"";this.colour_=this.getColour_(a);Object.assign(this.cssConfig_,a.cssconfig||a.cssConfig)}createDom_(){this.htmlDiv_=this.createContainer_();ya(this.htmlDiv_,Ka.TREEITEM);l(this.htmlDiv_,p.SELECTED,!1);l(this.htmlDiv_,p.LEVEL,this.level_+1);this.rowDiv_=this.createRowContainer_();this.rowDiv_.style.pointerEvents="auto";this.htmlDiv_.appendChild(this.rowDiv_);this.rowContents_=this.createRowContentsContainer_();this.rowContents_.style.pointerEvents="none";this.rowDiv_.appendChild(this.rowContents_);
1724
1735
  this.iconDom_=this.createIconDom_();ya(this.iconDom_,Ka.NONE);this.rowContents_.appendChild(this.iconDom_);this.labelDom_=this.createLabelDom_(this.name_);this.rowContents_.appendChild(this.labelDom_);var a=this.labelDom_.getAttribute("id");a&&l(this.htmlDiv_,p.LABELLEDBY,a);this.addColourBorder_(this.colour_);return this.htmlDiv_}createContainer_(){var a=document.createElement("div");a.tabIndex=-1;a.id=this.getId();var b=this.cssConfig_.container;b&&n(a,b);return a}createRowContainer_(){var a=document.createElement("div"),
1725
- b=this.cssConfig_.row;b&&n(a,b);b=`${vq.nestedPadding*this.getLevel()}px`;this.workspace_.RTL?a.style.paddingRight=b:a.style.paddingLeft=b;return a}createRowContentsContainer_(){var a=document.createElement("div"),b=this.cssConfig_.rowcontentcontainer;b&&n(a,b);return a}createIconDom_(){var a=document.createElement("span");if(!this.parentToolbox_.isHorizontal()){let b=this.cssConfig_.icon;b&&n(a,b)}a.style.display="inline-block";return a}createLabelDom_(a){var b=document.createElement("span");b.setAttribute("id",
1726
- this.getId()+".label");b.textContent=a;(a=this.cssConfig_.label)&&n(b,a);return b}refreshTheme(){this.colour_=this.getColour_(this.toolboxItemDef_);this.addColourBorder_(this.colour_)}addColourBorder_(a){a&&(a=vq.borderWidth+"px solid "+(a||"#ddd"),this.workspace_.RTL?this.rowDiv_.style.borderRight=a:this.rowDiv_.style.borderLeft=a)}getColour_(a){var b=a.categorystyle||a.categoryStyle;if((a=a.colour)&&b)console.warn('Toolbox category "'+this.name_+'" must not have both a style and a colour');else{if(b)return this.getColourfromStyle(b);
1727
- if(a)return this.parseColour(a)}return""}getColour(){return this.colour_}getColourfromStyle(a){var b=this.workspace_.getTheme();if(a&&b){if((b=b.categoryStyles[a])&&b.colour)return this.parseColour(b.colour);console.warn('Style "'+a+'" must exist and contain a colour value')}return""}getClickTarget(){return this.rowDiv_}parseColour(a){a=gg(a);if(a==null||a==="")return"";var b=Number(a);if(isNaN(b)){if(b=Yf(a))return b;console.warn('Toolbox category "'+this.name_+'" has unrecognized colour attribute: '+
1728
- a);return""}return dg(b)}openIcon_(a){if(a){var b=this.cssConfig_.closedicon;b&&La(a,b);(b=this.cssConfig_.openicon)&&n(a,b)}}closeIcon_(a){if(a){var b=this.cssConfig_.openicon;b&&La(a,b);(b=this.cssConfig_.closedicon)&&n(a,b)}}setVisible_(a){this.htmlDiv_.style.display=a?"block":"none";this.isHidden_=!a;this.parentToolbox_.getSelectedItem()===this&&this.parentToolbox_.clearSelection()}hide(){this.setVisible_(!1)}show(){this.setVisible_(!0)}isVisible(){return!this.isHidden_&&this.allAncestorsExpanded_()}allAncestorsExpanded_(){for(var a=
1729
- this;a.getParent();)if(a=a.getParent(),!a.isExpanded())return!1;return!0}isSelectable(){return this.isVisible()&&!this.isDisabled_}onClick(){}setSelected(a){if(this.rowDiv_){var b=this.cssConfig_.selected;if(a){let c=this.parseColour(vq.defaultBackgroundColour);this.rowDiv_.style.backgroundColor=this.colour_||c;b&&n(this.rowDiv_,b)}else this.rowDiv_.style.backgroundColor="",b&&Ma(this.rowDiv_,b);l(this.htmlDiv_,p.SELECTED,a)}}setDisabled(a){this.isDisabled_=a;this.getDiv().setAttribute("disabled",
1736
+ b=this.cssConfig_.row;b&&n(a,b);b=`${xq.nestedPadding*this.getLevel()}px`;this.workspace_.RTL?a.style.paddingRight=b:a.style.paddingLeft=b;return a}createRowContentsContainer_(){var a=document.createElement("div"),b=this.cssConfig_.rowcontentcontainer;b&&n(a,b);return a}createIconDom_(){var a=document.createElement("span");if(!this.parentToolbox_.isHorizontal()){let b=this.cssConfig_.icon;b&&n(a,b)}a.style.display="inline-block";return a}createLabelDom_(a){var b=document.createElement("span");b.setAttribute("id",
1737
+ this.getId()+".label");b.textContent=a;(a=this.cssConfig_.label)&&n(b,a);return b}refreshTheme(){this.colour_=this.getColour_(this.toolboxItemDef_);this.addColourBorder_(this.colour_)}addColourBorder_(a){a&&(a=xq.borderWidth+"px solid "+(a||"#ddd"),this.workspace_.RTL?this.rowDiv_.style.borderRight=a:this.rowDiv_.style.borderLeft=a)}getColour_(a){var b=a.categorystyle||a.categoryStyle;if((a=a.colour)&&b)console.warn('Toolbox category "'+this.name_+'" must not have both a style and a colour');else{if(b)return this.getColourfromStyle(b);
1738
+ if(a)return this.parseColour(a)}return""}getColour(){return this.colour_}getColourfromStyle(a){var b=this.workspace_.getTheme();if(a&&b){if((b=b.categoryStyles[a])&&b.colour)return this.parseColour(b.colour);console.warn('Style "'+a+'" must exist and contain a colour value')}return""}getClickTarget(){return this.rowDiv_}parseColour(a){a=hg(a);if(a==null||a==="")return"";var b=Number(a);if(isNaN(b)){if(b=Zf(a))return b;console.warn('Toolbox category "'+this.name_+'" has unrecognized colour attribute: '+
1739
+ a);return""}return eg(b)}openIcon_(a){if(a){var b=this.cssConfig_.closedicon;b&&La(a,b);(b=this.cssConfig_.openicon)&&n(a,b)}}closeIcon_(a){if(a){var b=this.cssConfig_.openicon;b&&La(a,b);(b=this.cssConfig_.closedicon)&&n(a,b)}}setVisible_(a){this.htmlDiv_.style.display=a?"block":"none";this.isHidden_=!a;this.parentToolbox_.getSelectedItem()===this&&this.parentToolbox_.clearSelection()}hide(){this.setVisible_(!1)}show(){this.setVisible_(!0)}isVisible(){return!this.isHidden_&&this.allAncestorsExpanded_()}allAncestorsExpanded_(){for(var a=
1740
+ this;a.getParent();)if(a=a.getParent(),!a.isExpanded())return!1;return!0}isSelectable(){return this.isVisible()&&!this.isDisabled_}onClick(){}setSelected(a){if(this.rowDiv_){var b=this.cssConfig_.selected;if(a){let c=this.parseColour(xq.defaultBackgroundColour);this.rowDiv_.style.backgroundColor=this.colour_||c;b&&n(this.rowDiv_,b)}else this.rowDiv_.style.backgroundColor="",b&&Ma(this.rowDiv_,b);l(this.htmlDiv_,p.SELECTED,a)}}setDisabled(a){this.isDisabled_=a;this.getDiv().setAttribute("disabled",
1730
1741
  `${a}`);a?this.getDiv().setAttribute("disabled","true"):this.getDiv().removeAttribute("disabled")}getName(){return this.name_}getParent(){return this.parent_}getDiv(){return this.htmlDiv_}onNodeFocus(){this.getParentToolbox().getSelectedItem()!==this&&this.getParentToolbox().setSelectedItem(this)}getContents(){return this.flyoutItems_}updateFlyoutContents(a){this.flyoutItems_=[];this.toolboxItemDef_=typeof a==="string"?{kind:this.toolboxItemDef_.kind,custom:a,id:this.toolboxItemDef_.id,categorystyle:this.toolboxItemDef_.categorystyle,
1731
1742
  colour:this.toolboxItemDef_.colour,cssconfig:this.toolboxItemDef_.cssconfig,hidden:this.toolboxItemDef_.hidden}:{kind:this.toolboxItemDef_.kind,name:"name"in this.toolboxItemDef_?this.toolboxItemDef_.name:"",contents:Dc(a),id:this.toolboxItemDef_.id,categorystyle:this.toolboxItemDef_.categorystyle,colour:this.toolboxItemDef_.colour,cssconfig:this.toolboxItemDef_.cssconfig,hidden:this.toolboxItemDef_.hidden};this.parseContents_(this.toolboxItemDef_)}dispose(){Oa(this.htmlDiv_)}};
1732
- vq.registrationName="category";vq.nestedPadding=19;vq.borderWidth=8;vq.defaultBackgroundColour="#57e";ta('\n.blocklyToolboxCategory:not(.blocklyToolboxSelected):hover {\n background-color: rgba(255, 255, 255, .2);\n}\n\n.blocklyToolbox[layout="h"] .blocklyToolboxCategoryContainer {\n margin: 1px 5px 1px 0;\n}\n\n.blocklyToolbox[dir="RTL"][layout="h"] .blocklyToolboxCategoryContainer {\n margin: 1px 0 1px 5px;\n}\n\n.blocklyToolboxCategory {\n height: 22px;\n line-height: 22px;\n margin-bottom: 3px;\n padding-right: 8px;\n white-space: nowrap;\n}\n\n.blocklyToolbox[dir="RTL"] .blocklyToolboxCategory {\n margin-left: 8px;\n padding-right: 0;\n}\n\n.blocklyToolboxCategoryIcon {\n background-image: url(<<<PATH>>>/sprites.svg);\n height: 16px;\n vertical-align: middle;\n visibility: hidden;\n width: 16px;\n}\n\n.blocklyToolboxCategoryIconClosed {\n background-position: -32px -1px;\n}\n\n.blocklyToolbox[dir="RTL"] .blocklyToolboxCategoryIconClosed {\n background-position: 0 -1px;\n}\n\n.blocklyToolboxSelected>.blocklyToolboxCategoryIconClosed {\n background-position: -32px -17px;\n}\n\n.blocklyToolbox[dir="RTL"] .blocklyToolboxSelected>.blocklyToolboxCategoryIconClosed {\n background-position: 0 -17px;\n}\n\n.blocklyToolboxCategoryIconOpen {\n background-position: -16px -1px;\n}\n\n.blocklyToolboxSelected>.blocklyToolboxCategoryIconOpen {\n background-position: -16px -17px;\n}\n\n.blocklyToolboxCategoryLabel {\n cursor: default;\n font: 16px sans-serif;\n padding: 0 3px;\n vertical-align: middle;\n}\n\n.blocklyToolboxDelete .blocklyToolboxCategoryLabel {\n cursor: url("<<<PATH>>>/handdelete.cur"), auto;\n}\n\n.blocklyToolboxSelected .blocklyToolboxCategoryLabel {\n color: #fff;\n}\n');
1733
- A(y.TOOLBOX_ITEM,vq.registrationName,vq);var wq=class extends uq{constructor(a,b){super(a,b);this.cssConfig_={container:"blocklyTreeSeparator"};this.htmlDiv=null;Object.assign(this.cssConfig_,a.cssconfig||a.cssConfig)}init(){this.createDom_()}createDom_(){var a=document.createElement("div");a.tabIndex=-1;a.id=this.getId();var b=this.cssConfig_.container;b&&n(a,b);return this.htmlDiv=a}getDiv(){return this.htmlDiv}dispose(){Oa(this.htmlDiv)}canBeFocused(){return!1}};wq.registrationName="sep";ta('\n.blocklyTreeSeparator {\n border-bottom: solid #e5e5e5 1px;\n height: 0;\n margin: 5px 0;\n}\n\n.blocklyToolbox[layout="h"] .blocklyTreeSeparator {\n border-right: solid #e5e5e5 1px;\n border-bottom: none;\n height: auto;\n margin: 0 5px 0 5px;\n padding: 5px 0;\n width: 0;\n}\n');
1734
- A(y.TOOLBOX_ITEM,wq.registrationName,wq);var xq=class extends vq{constructor(a,b,c){super(a,b,c);this.subcategoriesDiv_=null;this.expanded_=!1;this.toolboxItems_=[]}makeDefaultCssConfig_(){var a=super.makeDefaultCssConfig_();a.contents="blocklyToolboxCategoryGroup";return a}parseContents_(a){if("custom"in a)this.flyoutItems_=a.custom;else{let b=a.contents;if(b){this.flyoutItems_=[];a=!0;for(let c=0;c<b.length;c++){let d=b[c];!Gb(y.TOOLBOX_ITEM,d.kind)||d.kind.toLowerCase()===wq.registrationName&&a?(this.flyoutItems_.push(d),a=!0):(this.createToolboxItem(d),
1735
- a=!1)}}}}createToolboxItem(a){var b=a.kind;b.toUpperCase()==="CATEGORY"&&Gc(a)&&(b=xq.registrationName);a=new (Fb(y.TOOLBOX_ITEM,b,void 0))(a,this.parentToolbox_,this);this.toolboxItems_.push(a)}init(){super.init();this.setExpanded(this.toolboxItemDef_.expanded==="true"||this.toolboxItemDef_.expanded===!0)}createDom_(){super.createDom_();var a=this.getChildToolboxItems();this.subcategoriesDiv_=this.createSubCategoriesDom_(a);ya(this.subcategoriesDiv_,Ka.GROUP);this.htmlDiv_.appendChild(this.subcategoriesDiv_);
1743
+ xq.registrationName="category";xq.nestedPadding=19;xq.borderWidth=8;xq.defaultBackgroundColour="#57e";ta('\n.blocklyToolboxCategory:not(.blocklyToolboxSelected):hover {\n background-color: rgba(255, 255, 255, .2);\n}\n\n.blocklyToolbox[layout="h"] .blocklyToolboxCategoryContainer {\n margin: 1px 5px 1px 0;\n}\n\n.blocklyToolbox[dir="RTL"][layout="h"] .blocklyToolboxCategoryContainer {\n margin: 1px 0 1px 5px;\n}\n\n.blocklyToolboxCategory {\n height: 22px;\n line-height: 22px;\n margin-bottom: 3px;\n padding-right: 8px;\n white-space: nowrap;\n}\n\n.blocklyToolbox[dir="RTL"] .blocklyToolboxCategory {\n margin-left: 8px;\n padding-right: 0;\n}\n\n.blocklyToolboxCategoryIcon {\n background-image: url(<<<PATH>>>/sprites.svg);\n height: 16px;\n vertical-align: middle;\n visibility: hidden;\n width: 16px;\n}\n\n.blocklyToolboxCategoryIconClosed {\n background-position: -32px -1px;\n}\n\n.blocklyToolbox[dir="RTL"] .blocklyToolboxCategoryIconClosed {\n background-position: 0 -1px;\n}\n\n.blocklyToolboxSelected>.blocklyToolboxCategoryIconClosed {\n background-position: -32px -17px;\n}\n\n.blocklyToolbox[dir="RTL"] .blocklyToolboxSelected>.blocklyToolboxCategoryIconClosed {\n background-position: 0 -17px;\n}\n\n.blocklyToolboxCategoryIconOpen {\n background-position: -16px -1px;\n}\n\n.blocklyToolboxSelected>.blocklyToolboxCategoryIconOpen {\n background-position: -16px -17px;\n}\n\n.blocklyToolboxCategoryLabel {\n cursor: default;\n font: 16px sans-serif;\n padding: 0 3px;\n vertical-align: middle;\n}\n\n.blocklyToolboxDelete .blocklyToolboxCategoryLabel {\n cursor: url("<<<PATH>>>/handdelete.cur"), auto;\n}\n\n.blocklyToolboxSelected .blocklyToolboxCategoryLabel {\n color: #fff;\n}\n');
1744
+ A(y.TOOLBOX_ITEM,xq.registrationName,xq);var yq=class extends wq{constructor(a,b){super(a,b);this.cssConfig_={container:"blocklyTreeSeparator"};this.htmlDiv=null;Object.assign(this.cssConfig_,a.cssconfig||a.cssConfig)}init(){this.createDom_()}createDom_(){var a=document.createElement("div");a.id=this.getId();var b=this.cssConfig_.container;b&&n(a,b);ya(a,Ka.NONE);return this.htmlDiv=a}getDiv(){return this.htmlDiv}dispose(){Oa(this.htmlDiv)}canBeFocused(){return!1}};yq.registrationName="sep";ta('\n.blocklyTreeSeparator {\n border-bottom: solid #e5e5e5 1px;\n height: 0;\n margin: 5px 0;\n}\n\n.blocklyToolbox[layout="h"] .blocklyTreeSeparator {\n border-right: solid #e5e5e5 1px;\n border-bottom: none;\n height: auto;\n margin: 0 5px 0 5px;\n padding: 5px 0;\n width: 0;\n}\n');
1745
+ A(y.TOOLBOX_ITEM,yq.registrationName,yq);var zq=class extends xq{constructor(a,b,c){super(a,b,c);this.subcategoriesDiv_=null;this.expanded_=!1;this.toolboxItems_=[]}makeDefaultCssConfig_(){var a=super.makeDefaultCssConfig_();a.contents="blocklyToolboxCategoryGroup";return a}parseContents_(a){if("custom"in a)this.flyoutItems_=a.custom;else{let b=a.contents;if(b){this.flyoutItems_=[];a=!0;for(let c=0;c<b.length;c++){let d=b[c];!Gb(y.TOOLBOX_ITEM,d.kind)||d.kind.toLowerCase()===yq.registrationName&&a?(this.flyoutItems_.push(d),a=!0):(this.createToolboxItem(d),
1746
+ a=!1)}}}}createToolboxItem(a){var b=a.kind;b.toUpperCase()==="CATEGORY"&&Gc(a)&&(b=zq.registrationName);a=new (Fb(y.TOOLBOX_ITEM,b,void 0))(a,this.parentToolbox_,this);this.toolboxItems_.push(a)}init(){super.init();this.setExpanded(this.toolboxItemDef_.expanded==="true"||this.toolboxItemDef_.expanded===!0)}createDom_(){super.createDom_();var a=this.getChildToolboxItems();this.subcategoriesDiv_=this.createSubCategoriesDom_(a);ya(this.subcategoriesDiv_,Ka.GROUP);this.htmlDiv_.appendChild(this.subcategoriesDiv_);
1736
1747
  this.closeIcon_(this.iconDom_);l(this.htmlDiv_,p.EXPANDED,!1);return this.htmlDiv_}createIconDom_(){var a=document.createElement("span");if(!this.parentToolbox_.isHorizontal()){let b=this.cssConfig_.icon;b&&n(a,b);a.style.visibility="visible"}a.style.display="inline-block";return a}createSubCategoriesDom_(a){var b=document.createElement("div");b.style.display="none";var c=this.cssConfig_.contents;c&&n(b,c);for(c=0;c<a.length;c++){let d=a[c];d.init();let e=d.getDiv();b.appendChild(e);if(d.getClickTarget){let f;
1737
1748
  (f=d.getClickTarget())==null||f.setAttribute("id",d.getId())}}return b}setExpanded(a){this.expanded_!==a&&((this.expanded_=a)?(this.subcategoriesDiv_.style.display="block",this.openIcon_(this.iconDom_)):(this.setFlyoutVisible(!1),this.subcategoriesDiv_.style.display="none",this.closeIcon_(this.iconDom_)),l(this.htmlDiv_,p.EXPANDED,a),this.parentToolbox_.handleToolboxItemResize())}setVisible_(a){this.htmlDiv_.style.display=a?"block":"none";var b=this.getChildToolboxItems();for(let c=0;c<b.length;c++)b[c].setVisible_(a);
1738
1749
  this.isHidden_=!a;this.parentToolbox_.getSelectedItem()===this&&this.parentToolbox_.clearSelection()}isExpanded(){return this.expanded_}isCollapsible(){return!0}onClick(){if(this.flyoutItems_.length>0){var a=this.getParentToolbox();let b;a=a.getSelectedItem()===this&&((b=a.getFlyout())==null?void 0:b.isVisible());if(this.expanded_&&!a){this.setFlyoutVisible(!0);return}}this.toggleExpanded()}setFlyoutVisible(a){var b;(b=this.parentToolbox_.getFlyout())==null||b.setVisible(a)}toggleExpanded(){this.setExpanded(!this.expanded_)}getDiv(){return this.htmlDiv_}getChildToolboxItems(){return this.toolboxItems_}};
1739
- xq.registrationName="collapsibleCategory";A(y.TOOLBOX_ITEM,xq.registrationName,xq);var yq=class extends eo{constructor(a){super();this.id="toolbox";this.contentsDiv_=this.HtmlDiv=null;this.isVisible_=!1;this.height_=this.width_=0;this.flyout=null;this.contents=new Map;this.previouslySelectedItem_=this.selectedItem_=null;this.boundEvents_=[];this.mouseDown=!1;this.navigator=new yo(this);this.workspace_=a;this.toolboxDef_=a.options.languageTree||{contents:[]};this.horizontalLayout=a.options.horizontalLayout;this.RTL=a.options.RTL;this.toolboxPosition=a.options.toolboxPosition}onShortcut(){return!1}init(){var a=
1750
+ zq.registrationName="collapsibleCategory";A(y.TOOLBOX_ITEM,zq.registrationName,zq);var Aq=class extends fo{constructor(a){super();this.id="toolbox";this.contentsDiv_=this.HtmlDiv=null;this.isVisible_=!1;this.height_=this.width_=0;this.flyout=null;this.contents=new Map;this.previouslySelectedItem_=this.selectedItem_=null;this.boundEvents_=[];this.mouseDown=!1;this.navigator=new zo(this);this.workspace_=a;this.toolboxDef_=a.options.languageTree||{contents:[]};this.horizontalLayout=a.options.horizontalLayout;this.RTL=a.options.RTL;this.toolboxPosition=a.options.toolboxPosition}onShortcut(){return!1}init(){var a=
1740
1751
  this.workspace_,b=a.getParentSvg();this.flyout=this.createFlyout_();this.HtmlDiv=this.createDom_(this.workspace_);var c=this.flyout.createDom("svg");a.getInjectionDiv().insertBefore(c,b);n(c,"blocklyToolboxFlyout");this.setVisible(!0);this.flyout.init(a);this.render(this.toolboxDef_);a=a.getThemeManager();a.subscribe(this.HtmlDiv,"toolboxBackgroundColour","background-color");a.subscribe(this.HtmlDiv,"toolboxForegroundColour","color");this.workspace_.getComponentManager().addComponent({component:this,
1741
- weight:Ck.ComponentWeight.TOOLBOX_WEIGHT,capabilities:[Ck.Capability.AUTOHIDEABLE,Ck.Capability.DELETE_AREA,Ck.Capability.DRAG_TARGET]});$.t().registerTree(this,!0)}createDom_(a){a=a.getParentSvg();var b=this.createContainer_();b.id=Lb();this.contentsDiv_=this.createContentsContainer_();ya(this.contentsDiv_,Ka.TREE);b.appendChild(this.contentsDiv_);var c;(c=a.parentNode)==null||c.insertBefore(b,a);this.attachEvents_(b,this.contentsDiv_);return b}createContainer_(){var a=document.createElement("div");
1742
- a.setAttribute("layout",this.isHorizontal()?"h":"v");n(a,"blocklyToolbox");a.setAttribute("dir",this.RTL?"RTL":"LTR");return a}createContentsContainer_(){var a=document.createElement("div");n(a,"blocklyToolboxCategoryGroup");this.isHorizontal()&&(a.style.flexDirection="row");return a}attachEvents_(a,b){var c=k(a,"pointerdown",this,this.onClick_,!1);this.boundEvents_.push(c);a=ka(a,"pointerup",this,()=>{this.mouseDown=!1});this.boundEvents_.push(a);b=k(b,"keydown",this,this.onKeyDown_,!1);this.boundEvents_.push(b)}onClick_(a){var b=
1743
- ()=>{$.t().focusNode(this);this.clearSelection();kb.hideChaff(!1);a.preventDefault()};this.mouseDown=!0;if(oa(a)||a.target===this.HtmlDiv)b();else{var c=a.target.getAttribute("id");c&&(c=this.getToolboxItemById(c),c==null?0:c.isSelectable())&&(c.onClick(a),c===this.getSelectedItem()?b():(this.setSelectedItem(c),kb.hideChaff(!0)))}ha=null}onKeyDown_(a){var b=!1;switch(a.key){case "ArrowLeft":b=this.toggleSelectedItem(!1);break;case "ArrowRight":b=this.toggleSelectedItem(!0);break;case "Escape":$.t().focusTree(this.getWorkspace()),
1752
+ weight:Dk.ComponentWeight.TOOLBOX_WEIGHT,capabilities:[Dk.Capability.AUTOHIDEABLE,Dk.Capability.DELETE_AREA,Dk.Capability.DRAG_TARGET]});$.t().registerTree(this,!0)}createDom_(a){a=a.getParentSvg();var b=this.createContainer_();b.id=Lb();this.contentsDiv_=this.createContentsContainer_();ya(this.contentsDiv_,Ka.TREE);b.appendChild(this.contentsDiv_);var c;(c=a.parentNode)==null||c.insertBefore(b,a);this.attachEvents_(b,this.contentsDiv_);return b}createContainer_(){var a=document.createElement("div");
1753
+ a.setAttribute("layout",this.isHorizontal()?"h":"v");n(a,"blocklyToolbox");a.setAttribute("dir",this.RTL?"RTL":"LTR");return a}createContentsContainer_(){var a=document.createElement("div");n(a,"blocklyToolboxCategoryGroup");this.isHorizontal()&&(a.style.flexDirection="row");return a}attachEvents_(a,b){var c=k(a,"pointerdown",this,this.onClick_,!1);this.boundEvents_.push(c);a=ja(a,"pointerup",this,()=>{this.mouseDown=!1});this.boundEvents_.push(a);b=k(b,"keydown",this,this.onKeyDown_,!1);this.boundEvents_.push(b)}onClick_(a){var b=
1754
+ ()=>{$.t().focusNode(this);this.clearSelection();kb.hideChaff(!1);a.preventDefault()};this.mouseDown=!0;if(na(a)||a.target===this.HtmlDiv)b();else{var c=a.target.getAttribute("id");c&&(c=this.getToolboxItemById(c),c==null?0:c.isSelectable())&&(c.onClick(a),c===this.getSelectedItem()?b():(this.setSelectedItem(c),kb.hideChaff(!0)))}ha=null}onKeyDown_(a){var b=!1;switch(a.key){case "ArrowLeft":b=this.toggleSelectedItem(!1);break;case "ArrowRight":b=this.toggleSelectedItem(!0);break;case "Escape":$.t().focusTree(this.getWorkspace()),
1744
1755
  b=!0}b&&(a.preventDefault(),a.stopPropagation())}createFlyout_(){var a=this.workspace_,b=a.copyOptionsForFlyout();b.toolboxPosition=a.options.toolboxPosition;return new (a.horizontalLayout?Jb(y.FLYOUTS_HORIZONTAL_TOOLBOX,a.options,!0):Jb(y.FLYOUTS_VERTICAL_TOOLBOX,a.options,!0))(b)}render(a){this.toolboxDef_=a;this.contents.forEach(b=>b.dispose());this.contents.clear();this.renderContents_(a.contents);this.position();this.handleToolboxItemResize()}renderContents_(a){var b=document.createDocumentFragment();
1745
- for(let d=0;d<a.length;d++)this.createToolboxItem(a[d],b);var c;(c=this.contentsDiv_)==null||c.appendChild(b)}createToolboxItem(a,b){var c=a.kind;c.toUpperCase()==="CATEGORY"&&Gc(a)&&(c=xq.registrationName);if(c=Hb(y.TOOLBOX_ITEM,c.toLowerCase())){a=new c(a,this);a.init();this.addToolboxItem_(a);(c=a.getDiv())&&b.appendChild(c);let d;(d=a.getClickTarget())==null||d.setAttribute("id",a.getId())}}addToolboxItem_(a){this.contents.set(a.getId(),a);if(a.isCollapsible()){a=a.getChildToolboxItems();for(let b=
1756
+ for(let d=0;d<a.length;d++)this.createToolboxItem(a[d],b);var c;(c=this.contentsDiv_)==null||c.appendChild(b)}createToolboxItem(a,b){var c=a.kind;c.toUpperCase()==="CATEGORY"&&Gc(a)&&(c=zq.registrationName);if(c=Hb(y.TOOLBOX_ITEM,c.toLowerCase())){a=new c(a,this);a.init();this.addToolboxItem_(a);(c=a.getDiv())&&b.appendChild(c);let d;(d=a.getClickTarget())==null||d.setAttribute("id",a.getId())}}addToolboxItem_(a){this.contents.set(a.getId(),a);if(a.isCollapsible()){a=a.getChildToolboxItems();for(let b=
1746
1757
  0;b<a.length;b++)this.addToolboxItem_(a[b])}}getToolboxItems(){return[...this.contents.values()]}addStyle(a){a&&this.HtmlDiv&&n(this.HtmlDiv,a)}removeStyle(a){a&&this.HtmlDiv&&Ma(this.HtmlDiv,a)}getClientRect(){if(!this.HtmlDiv||!this.isVisible_)return null;var a=this.HtmlDiv.getBoundingClientRect(),b=a.top,c=b+a.height,d=a.left;a=d+a.width;return this.toolboxPosition===F.TOP?new cc(-1E7,c,-1E7,1E7):this.toolboxPosition===F.BOTTOM?new cc(b,1E7,-1E7,1E7):this.toolboxPosition===F.LEFT?new cc(-1E7,1E7,
1747
- -1E7,a):new cc(-1E7,1E7,d,1E7)}onDragEnter(){qi.mover.isMoving()||this.updateCursorDeleteStyle_(!0)}onDragExit(){qi.mover.isMoving()||this.updateCursorDeleteStyle_(!1)}onDrop(){qi.mover.isMoving()||this.updateCursorDeleteStyle_(!1)}updateWouldDelete_(a){a!==this.wouldDelete_&&(this.updateCursorDeleteStyle_(!1),this.wouldDelete_=a,this.updateCursorDeleteStyle_(!0))}updateCursorDeleteStyle_(a){var b=this.wouldDelete_?"blocklyToolboxDelete":"blocklyToolboxGrab";a?this.addStyle(b):this.removeStyle(b)}getToolboxItemById(a){return this.contents.get(a)||
1758
+ -1E7,a):new cc(-1E7,1E7,d,1E7)}onDragEnter(){ri.mover.isMoving()||this.updateCursorDeleteStyle_(!0)}onDragExit(){ri.mover.isMoving()||this.updateCursorDeleteStyle_(!1)}onDrop(){ri.mover.isMoving()||this.updateCursorDeleteStyle_(!1)}updateWouldDelete_(a){a!==this.wouldDelete_&&(this.updateCursorDeleteStyle_(!1),this.wouldDelete_=a,this.updateCursorDeleteStyle_(!0))}updateCursorDeleteStyle_(a){var b=this.wouldDelete_?"blocklyToolboxDelete":"blocklyToolboxGrab";a?this.addStyle(b):this.removeStyle(b)}getToolboxItemById(a){return this.contents.get(a)||
1748
1759
  null}getWidth(){return this.width_}getHeight(){return this.height_}getFlyout(){return this.flyout}getWorkspace(){return this.workspace_}getSelectedItem(){return this.selectedItem_}getPreviouslySelectedItem(){return this.previouslySelectedItem_}isHorizontal(){return this.horizontalLayout}position(){var a=this.workspace_.getMetrics(),b=this.HtmlDiv;if(b){this.horizontalLayout?(b.style.left="0",b.style.height="auto",b.style.width="100%",this.height_=b.offsetHeight,this.width_=a.viewWidth,this.toolboxPosition===
1749
1760
  F.TOP?b.style.top="0":b.style.bottom="0"):(this.toolboxPosition===F.RIGHT?b.style.right="0":b.style.left="0",b.style.height="100%",this.width_=b.offsetWidth,this.height_=a.viewHeight);var c;(c=this.flyout)==null||c.position()}}handleToolboxItemResize(){if(this.HtmlDiv){var a=this.workspace_,b=this.HtmlDiv.getBoundingClientRect(),c=this.getFlyout(),d=this.toolboxPosition===F.LEFT?a.scrollX+b.width+((c==null?0:c.isVisible())?c.getWidth():0):a.scrollX;b=this.toolboxPosition===F.TOP?a.scrollY+b.height+
1750
1761
  ((c==null?0:c.isVisible())?c.getHeight():0):a.scrollY;a.translate(d,b);tb(a)}}clearSelection(){this.setSelectedItem(null)}refreshTheme(){this.contents.forEach(a=>{a.refreshTheme&&a.refreshTheme()})}refreshSelection(){if(this.selectedItem_&&this.selectedItem_.isSelectable()&&this.selectedItem_.getContents().length){let a;(a=this.flyout)==null||a.show(this.selectedItem_.getContents())}}setVisible(a){this.isVisible_!==a&&(this.HtmlDiv&&(this.HtmlDiv.style.display=a?"block":"none"),this.isVisible_=a,
1751
- this.workspace_.recordDragTargets())}autoHide(a){!a&&this.flyout&&this.flyout.autoClose&&this.clearSelection()}setSelectedItem(a){var b=this.selectedItem_;!a&&!b||a&&!ue(a)||(this.shouldDeselectItem_(b,a)&&b!==null&&this.deselectItem_(b),this.shouldSelectItem_(b,a)&&a!==null&&this.selectItem_(b,a),this.updateFlyout_(b,a),this.fireSelectEvent(b,a))}shouldDeselectItem_(a,b){return a!==null&&(!a.isCollapsible()||a!==b)}shouldSelectItem_(a,b){return b!==null&&b!==a}deselectItem_(a){this.selectedItem_=
1762
+ this.workspace_.recordDragTargets())}autoHide(a){!a&&this.flyout&&this.flyout.autoClose&&this.clearSelection()}setSelectedItem(a){var b=this.selectedItem_;!a&&!b||a&&!ve(a)||(this.shouldDeselectItem_(b,a)&&b!==null&&this.deselectItem_(b),this.shouldSelectItem_(b,a)&&a!==null&&this.selectItem_(b,a),this.updateFlyout_(b,a),this.fireSelectEvent(b,a))}shouldDeselectItem_(a,b){return a!==null&&(!a.isCollapsible()||a!==b)}shouldSelectItem_(a,b){return b!==null&&b!==a}deselectItem_(a){this.selectedItem_=
1752
1763
  null;this.previouslySelectedItem_=a;a.setSelected(!1);l(this.contentsDiv_,p.ACTIVEDESCENDANT,"")}selectItem_(a,b){this.selectedItem_=b;this.previouslySelectedItem_=a;b.setSelected(!0);l(this.contentsDiv_,p.ACTIVEDESCENDANT,b.getId())}selectItemByPosition(a){(a=this.getToolboxItems()[a])&&this.setSelectedItem(a)}updateFlyout_(a,b){if(b&&(a!==b||b.isCollapsible())&&b.getContents().length){let c;(c=this.flyout)==null||c.show(b.getContents());let d;(d=this.flyout)==null||d.scrollToStart()}else{let c;
1753
- (c=this.flyout)==null||c.hide()}}fireSelectEvent(a,b){var c=a&&a.getName(),d=b&&b.getName();a===b&&(d=null);a=new (u(v.TOOLBOX_ITEM_SELECT))(c,d,this.workspace_.id);w(a)}toggleSelectedItem(a){var b,c;return aj(this.selectedItem_)&&((b=this.selectedItem_)==null?0:b.isCollapsible())&&((c=this.selectedItem_)==null?void 0:c.isExpanded())!==a?(this.selectedItem_.toggleExpanded(),!0):!1}dispose(){this.workspace_.getComponentManager().removeComponent("toolbox");var a;(a=this.flyout)==null||a.dispose();this.contents.forEach(b=>
1754
- b.dispose());for(a=0;a<this.boundEvents_.length;a++)la(this.boundEvents_[a]);this.boundEvents_=[];this.contents.clear();this.HtmlDiv&&(this.workspace_.getThemeManager().unsubscribe(this.HtmlDiv),Oa(this.HtmlDiv));$.t().unregisterTree(this)}getFocusableElement(){if(!this.HtmlDiv)throw Error("Toolbox DOM has not yet been created.");return this.HtmlDiv}getFocusableTree(){return this}onNodeFocus(){}onNodeBlur(){}canBeFocused(){return!0}getRootFocusableNode(){return this}getRestoredFocusableNode(a){if(!a||
1764
+ (c=this.flyout)==null||c.hide()}}fireSelectEvent(a,b){var c=a&&a.getName(),d=b&&b.getName();a===b&&(d=null);a=new (u(v.TOOLBOX_ITEM_SELECT))(c,d,this.workspace_.id);w(a)}toggleSelectedItem(a){var b,c;return bj(this.selectedItem_)&&((b=this.selectedItem_)==null?0:b.isCollapsible())&&((c=this.selectedItem_)==null?void 0:c.isExpanded())!==a?(this.selectedItem_.toggleExpanded(),!0):!1}dispose(){this.workspace_.getComponentManager().removeComponent("toolbox");var a;(a=this.flyout)==null||a.dispose();this.contents.forEach(b=>
1765
+ b.dispose());for(a=0;a<this.boundEvents_.length;a++)ka(this.boundEvents_[a]);this.boundEvents_=[];this.contents.clear();this.HtmlDiv&&(this.workspace_.getThemeManager().unsubscribe(this.HtmlDiv),Oa(this.HtmlDiv));$.t().unregisterTree(this)}getFocusableElement(){if(!this.HtmlDiv)throw Error("Toolbox DOM has not yet been created.");return this.HtmlDiv}getFocusableTree(){return this}onNodeFocus(){}onNodeBlur(){}canBeFocused(){return!0}getRootFocusableNode(){return this}getRestoredFocusableNode(a){if(!a||
1755
1766
  a===this){let b;return(b=this.getToolboxItems().find(c=>c.isSelectable()))!=null?b:null}return null}getNestedTrees(){return[]}lookUpFocusableNode(a){return this.getToolboxItemById(a)}onTreeFocus(a){a!==this?this.getSelectedItem()===a||this.mouseDown||this.setSelectedItem(a):this.clearSelection()}onTreeBlur(a){var b;a&&a===((b=this.flyout)==null?void 0:b.getWorkspace())||this.autoHide(!1)}getNavigator(){return this.navigator}};ta('\n.blocklyToolboxDelete {\n cursor: url("<<<PATH>>>/handdelete.cur"), auto;\n}\n\n.blocklyToolboxGrab {\n cursor: url("<<<PATH>>>/handclosed.cur"), auto;\n cursor: grabbing;\n cursor: -webkit-grabbing;\n}\n\n/* Category tree in Toolbox. */\n.blocklyToolbox {\n box-sizing: border-box;\n user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n background-color: #ddd;\n overflow-x: visible;\n overflow-y: auto;\n padding: 4px 0 4px 0;\n position: absolute;\n z-index: 70; /* so blocks go under toolbox when dragging */\n -webkit-tap-highlight-color: transparent; /* issue #1345 */\n}\n\n.blocklyToolboxCategoryGroup {\n display: flex;\n flex-wrap: wrap;\n flex-direction: column;\n}\n\n.blocklyToolboxCategoryGroup:focus {\n outline: none;\n}\n');
1756
- A(y.TOOLBOX,"default",yq);var zq=G.INPUT_VALUE,Aq=G.OUTPUT_VALUE,Bq=G.NEXT_STATEMENT,Cq=G.PREVIOUS_STATEMENT,Dq=F.TOP,Eq=F.BOTTOM,Fq=F.LEFT,Gq=F.RIGHT;sp.prototype.newBlock=function(a,b){return new Nn(this,a,b)};Zh.prototype.newBlock=function(a,b){return new hi(this,a,b)};sp.prototype.newComment=function(a){return new dh(this,a)};Zh.prototype.newComment=function(a){return new ch(this,a)};Zh.newTrashcan=function(a){return new xp(a)};sn.prototype.newWorkspaceSvg=function(a){return new Zh(a)};
1757
- $.jj.prototype.populateProcedures=function(a){a=gj(a);a=a[0].concat(a[1]);for(let b=0;b<a.length;b++)this.getName(a[b][0],$.jj.NameType.PROCEDURE)};var R={};R.Block=Nn;R.BlockFlyoutInflater=eq;R.BlockNavigationPolicy=lo;R.BlockSvg=hi;R.Blocks=zb;R.BubbleNavigationPolicy=mo;R.ButtonFlyoutInflater=cq;R.COLLAPSED_FIELD_NAME="_TEMP_COLLAPSED_FIELD";R.COLLAPSED_INPUT_NAME="_TEMP_COLLAPSED_INPUT";R.COLLAPSE_CHARS=30;R.CodeGenerator=$.Rp;R.CollapsibleToolboxCategory=xq;
1758
- R.CommentBarButtonNavigationPolicy=no;R.CommentEditorNavigationPolicy=oo;R.ComponentManager=Ck;R.Connection=An;R.ConnectionChecker=bq;R.ConnectionDB=zn;R.ConnectionNavigationPolicy=po;R.ConnectionType=G;R.ContextMenu=Ym;R.ContextMenuItems=aq;R.ContextMenuRegistry=Jj;R.Css=Fk;R.DELETE_VARIABLE_ID="DELETE_VARIABLE_ID";R.DeleteArea=eo;R.Direction=ri;R.DragDisposition=Tn;R.DragTarget=co;R.DropDownDiv=Sm;R.Events=N;R.Extensions=vn;R.Field=qg;R.FieldCheckbox=Xp;R.FieldDropdown=yh;R.FieldImage=Gp;
1759
- R.FieldLabel=$n;R.FieldLabelSerializable=Wp;R.FieldNavigationPolicy=qo;R.FieldNumber=Vp;R.FieldTextInput=$.Ip;R.FieldVariable=Up;R.Flyout=Bo;R.FlyoutButton=Ci;R.FlyoutButtonNavigationPolicy=jo;R.FlyoutItem=fo;R.FlyoutMetricsManager=ho;R.FlyoutNavigator=zo;R.FlyoutSeparator=io;R.FlyoutSeparatorNavigationPolicy=ko;R.FocusManager=Za;R.FocusableTreeTraverser=Ok;R.Generator=$.Rp;R.Gesture=Do;R.Grid=Bj;R.HorizontalFlyout=Tp;R.INPUT_VALUE=zq;R.IconNavigationPolicy=ro;R.Input=In;
1760
- R.InsertionMarkerPreviewer=Pp;R.KeyboardMover=qi;R.KeyboardNavigationController=Km;R.LabelFlyoutInflater=Dp;R.Menu=Hg;R.MenuItem=Jg;R.MetricsManager=go;R.MoveIndicator=kn;R.Msg=$.C;R.NEXT_STATEMENT=Bq;R.Names=$.jj;R.NavigationDirection=uo;R.Navigator=wo;R.OPPOSITE_TYPE=Fn;R.OUTPUT_VALUE=Aq;R.Options=on;R.PREVIOUS_STATEMENT=Cq;R.PROCEDURE_CATEGORY_NAME="PROCEDURE";R.Procedures=Ko;R.RENAME_VARIABLE_ID="RENAME_VARIABLE_ID";R.RenderedConnection=Li;R.Scrollbar=Ic;R.ScrollbarPair=Fj;
1761
- R.SeparatorFlyoutInflater=Ao;R.ShortcutItems=Wn;R.ShortcutRegistry=x;R.TOOLBOX_AT_BOTTOM=Eq;R.TOOLBOX_AT_LEFT=Fq;R.TOOLBOX_AT_RIGHT=Gq;R.TOOLBOX_AT_TOP=Dq;R.Theme=mn;R.ThemeManager=qp;R.Themes=tq;R.Toast=ki;R.Toolbox=yq;R.ToolboxCategory=vq;R.ToolboxItem=uq;R.ToolboxItemNavigationPolicy=xo;R.ToolboxNavigator=yo;R.ToolboxSeparator=wq;R.Tooltip=Um;R.Touch=kk;R.Trashcan=xp;R.UnattachedFieldError=kj;R.VARIABLE_CATEGORY_NAME="VARIABLE";R.VARIABLE_DYNAMIC_CATEGORY_NAME="VARIABLE_DYNAMIC";R.VERSION="13.1.1";
1762
- R.VariableMap=wp;R.VariableModel=vp;R.Variables=Lm;R.VariablesDynamic=rp;R.VerticalFlyout=Sp;R.WidgetDiv=Xm;R.Workspace=sp;R.WorkspaceAudio=tp;R.WorkspaceCommentNavigationPolicy=so;R.WorkspaceDragger=Co;R.WorkspaceNavigationPolicy=to;R.WorkspaceSvg=Zh;R.Xml=hn;R.ZoomControls=pl;R.blockAnimations=On;R.blockRendering=pp;R.browserEvents=zk;R.bubbles=dq;R.bumpObjects=Qn;R.clipboard=Rn;R.comments=Sn;R.common=Vk;R.config=$.Ng;
1763
- R.constants={COLLAPSED_FIELD_NAME:"_TEMP_COLLAPSED_FIELD",COLLAPSED_INPUT_NAME:"_TEMP_COLLAPSED_INPUT",MANUALLY_DISABLED:"MANUALLY_DISABLED"};R.defineBlocksWithJsonArray=xb;R.dialog=Al;R.dragging=Zp;R.fieldRegistry=jn;R.geras=oq;R.getFocusManager=$.t;R.getMainWorkspace=lb;R.getSelected=nb;R.hasBubble=xd;R.hideChaff=function(a){kb.hideChaff(a)};R.icons=Go;
1764
- R.inject=function(a,b){var c=null;c=typeof a==="string"?document.getElementById(a)||document.querySelector(a):a;var d;if(!document.contains(c)&&document!==((d=c)==null?void 0:d.ownerDocument))throw Error("Error: container is not in current document");a=new on(b||{});d=document.createElement("div");n(d,"injectionDiv");(b==null?0:b.rtl)&&n(d,"blocklyRTL");ya(d,Ka.APPLICATION);c.appendChild(d);b=Cj(d,a);var e=Dj(d,b,a);Hj(e);mb(e);tb(e);d.addEventListener("focusin",function(){mb(e)});k(d,"keydown",null,
1765
- Bb);Ea(d);return e};R.inputs=Qp;R.isBoundedElement=function(a){return typeof a.getBoundingRectangle==="function"&&typeof a.moveBy==="function"};R.isCopyable=di;R.isDeletable=ei;R.isDraggable=fi;R.isIcon=Hh;R.isObservable=ej;R.isPaster=function(a){return a&&typeof a.paste==="function"};R.isRenderedElement=function(a){return a&&typeof a.getSvgRoot==="function"};R.isSelectable=ab;R.isSerializable=Vc;R.isVariableBackedParameterModel=Ad;R.keyboardNavigationController=Nd;R.layers={BLOCK:50,BUBBLE:100};
1766
- R.navigateBlock=$i;R.procedures=Ko;R.registry=Xk;R.renderManagement=wl;R.serialization=Cp;R.setLocale=Xb;R.setParentContainer=sb;R.svgResize=tb;R.thrasos=rq;R.uiPosition=jl;R.utils=xn;R.zelos=$p;$.__chunk_blockly=R;
1767
+ A(y.TOOLBOX,"default",Aq);var Bq=G.INPUT_VALUE,Cq=G.OUTPUT_VALUE,Dq=G.NEXT_STATEMENT,Eq=G.PREVIOUS_STATEMENT,Fq=F.TOP,Gq=F.BOTTOM,Hq=F.LEFT,Iq=F.RIGHT;tp.prototype.newBlock=function(a,b){return new On(this,a,b)};$h.prototype.newBlock=function(a,b){return new ii(this,a,b)};tp.prototype.newComment=function(a){return new eh(this,a)};$h.prototype.newComment=function(a){return new dh(this,a)};$h.newTrashcan=function(a){return new yp(a)};tn.prototype.newWorkspaceSvg=function(a){return new $h(a)};
1768
+ $.kj.prototype.populateProcedures=function(a){a=hj(a);a=a[0].concat(a[1]);for(let b=0;b<a.length;b++)this.getName(a[b][0],$.kj.NameType.PROCEDURE)};var R={};R.Block=On;R.BlockFlyoutInflater=rq;R.BlockNavigationPolicy=mo;R.BlockSvg=ii;R.Blocks=zb;R.BubbleNavigationPolicy=no;R.ButtonFlyoutInflater=pq;R.COLLAPSED_FIELD_NAME="_TEMP_COLLAPSED_FIELD";R.COLLAPSED_INPUT_NAME="_TEMP_COLLAPSED_INPUT";R.COLLAPSE_CHARS=30;R.CodeGenerator=$.dq;R.CollapsibleToolboxCategory=zq;
1769
+ R.CommentBarButtonNavigationPolicy=oo;R.CommentEditorNavigationPolicy=po;R.ComponentManager=Dk;R.Connection=Bn;R.ConnectionChecker=oq;R.ConnectionDB=An;R.ConnectionNavigationPolicy=qo;R.ConnectionType=G;R.ContextMenu=Zm;R.ContextMenuItems=nq;R.ContextMenuRegistry=Kj;R.Css=Gk;R.DELETE_VARIABLE_ID="DELETE_VARIABLE_ID";R.DeleteArea=fo;R.Direction=si;R.DragDisposition=Un;R.DragTarget=eo;R.DropDownDiv=Tm;R.Events=N;R.Extensions=wn;R.Field=rg;R.FieldCheckbox=jq;R.FieldDropdown=zh;R.FieldImage=Tp;
1770
+ R.FieldLabel=ao;R.FieldLabelSerializable=iq;R.FieldNavigationPolicy=ro;R.FieldNumber=hq;R.FieldTextInput=$.Vp;R.FieldVariable=gq;R.Flyout=Co;R.FlyoutButton=Di;R.FlyoutButtonNavigationPolicy=ko;R.FlyoutItem=go;R.FlyoutMetricsManager=io;R.FlyoutNavigator=Ao;R.FlyoutSeparator=jo;R.FlyoutSeparatorNavigationPolicy=lo;R.FocusManager=Za;R.FocusableTreeTraverser=Pk;R.Generator=$.dq;R.Gesture=Eo;R.Grid=Cj;R.HorizontalFlyout=fq;R.INPUT_VALUE=Bq;R.IconNavigationPolicy=so;R.Input=Jn;
1771
+ R.InsertionMarkerPreviewer=bq;R.KeyboardMover=ri;R.KeyboardNavigationController=Lm;R.LabelFlyoutInflater=Ep;R.Menu=Ig;R.MenuItem=Kg;R.MetricsManager=ho;R.MoveIndicator=ln;R.Msg=$.C;R.NEXT_STATEMENT=Dq;R.Names=$.kj;R.NavigationDirection=vo;R.Navigator=xo;R.OPPOSITE_TYPE=Gn;R.OUTPUT_VALUE=Cq;R.Options=pn;R.PREVIOUS_STATEMENT=Eq;R.PROCEDURE_CATEGORY_NAME="PROCEDURE";R.Procedures=Lo;R.RENAME_VARIABLE_ID="RENAME_VARIABLE_ID";R.RenderedConnection=Mi;R.Scrollbar=Ic;R.ScrollbarPair=Gj;
1772
+ R.SeparatorFlyoutInflater=Bo;R.ShortcutItems=Xn;R.ShortcutRegistry=x;R.TOOLBOX_AT_BOTTOM=Gq;R.TOOLBOX_AT_LEFT=Hq;R.TOOLBOX_AT_RIGHT=Iq;R.TOOLBOX_AT_TOP=Fq;R.Theme=nn;R.ThemeManager=rp;R.Themes=vq;R.Toast=li;R.Toolbox=Aq;R.ToolboxCategory=xq;R.ToolboxItem=wq;R.ToolboxItemNavigationPolicy=yo;R.ToolboxNavigator=zo;R.ToolboxSeparator=yq;R.Tooltip=Vm;R.Touch=lk;R.Trashcan=yp;R.UnattachedFieldError=lj;R.VARIABLE_CATEGORY_NAME="VARIABLE";R.VARIABLE_DYNAMIC_CATEGORY_NAME="VARIABLE_DYNAMIC";R.VERSION="13.2.0";
1773
+ R.VariableMap=xp;R.VariableModel=wp;R.Variables=Mm;R.VariablesDynamic=sp;R.VerticalFlyout=eq;R.WidgetDiv=Ym;R.Workspace=tp;R.WorkspaceAudio=up;R.WorkspaceCommentNavigationPolicy=to;R.WorkspaceDragger=Do;R.WorkspaceNavigationPolicy=uo;R.WorkspaceSvg=$h;R.Xml=jn;R.ZoomControls=ql;R.blockAnimations=Pn;R.blockRendering=qp;R.browserEvents=Ak;R.bubbles=qq;R.bumpObjects=Rn;R.clipboard=Sn;R.comments=Tn;R.common=Wk;R.config=$.Og;
1774
+ R.constants={COLLAPSED_FIELD_NAME:"_TEMP_COLLAPSED_FIELD",COLLAPSED_INPUT_NAME:"_TEMP_COLLAPSED_INPUT",MANUALLY_DISABLED:"MANUALLY_DISABLED"};R.defineBlocksWithJsonArray=xb;R.dialog=Bl;R.dragging=lq;R.fieldRegistry=kn;R.geras=sq;R.getFocusManager=$.t;R.getMainWorkspace=lb;R.getSelected=nb;R.hasBubble=xd;R.hideChaff=function(a){kb.hideChaff(a)};R.icons=Ho;
1775
+ R.inject=function(a,b){var c=null;c=typeof a==="string"?document.getElementById(a)||document.querySelector(a):a;var d;if(!document.contains(c)&&document!==((d=c)==null?void 0:d.ownerDocument))throw Error("Error: container is not in current document");a=new pn(b||{});d=document.createElement("div");n(d,"injectionDiv");(b==null?0:b.rtl)&&n(d,"blocklyRTL");ya(d,Ka.APPLICATION);c.appendChild(d);b=Dj(d,a);var e=Ej(d,b,a);Ij(e);mb(e);tb(e);d.addEventListener("focusin",function(){mb(e)});k(d,"keydown",null,
1776
+ Bb);Ea(d);return e};R.inputs=cq;R.isBoundedElement=function(a){return typeof a.getBoundingRectangle==="function"&&typeof a.moveBy==="function"};R.isCopyable=ei;R.isDeletable=fi;R.isDraggable=gi;R.isIcon=Ih;R.isObservable=fj;R.isPaster=function(a){return a&&typeof a.paste==="function"};R.isRenderedElement=function(a){return a&&typeof a.getSvgRoot==="function"};R.isSelectable=ab;R.isSerializable=Vc;R.isVariableBackedParameterModel=Ad;R.keyboardNavigationController=Nd;R.layers={BLOCK:50,BUBBLE:100};
1777
+ R.navigateBlock=aj;R.procedures=Lo;R.registry=Yk;R.renderManagement=xl;R.serialization=Dp;R.setLocale=Xb;R.setParentContainer=sb;R.svgResize=tb;R.thrasos=tq;R.uiPosition=kl;R.utils=yn;R.zelos=mq;$.__chunk_blockly=R;
1767
1778
  $.__chunk_blockly.__namespace__=$;
1768
1779
  return $.__chunk_blockly;
1769
1780
  }));