blockly 13.0.0-beta.9 → 13.0.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.
- package/blockly.min.js +209 -193
- package/blockly_compressed.js +191 -189
- package/blockly_compressed.js.map +1 -1
- package/core/dragging/block_drag_strategy.d.ts +7 -0
- package/dart_compressed.js +6 -6
- package/javascript_compressed.js +4 -4
- package/lua_compressed.js +6 -6
- package/msg/ab.js +14 -0
- package/msg/ab.mjs +14 -0
- package/msg/ace.js +14 -0
- package/msg/ace.mjs +14 -0
- package/msg/af.js +14 -0
- package/msg/af.mjs +14 -0
- package/msg/am.js +14 -0
- package/msg/am.mjs +14 -0
- package/msg/ar.js +15 -1
- package/msg/ar.mjs +14 -0
- package/msg/ast.js +14 -0
- package/msg/ast.mjs +14 -0
- package/msg/az.js +14 -0
- package/msg/az.mjs +14 -0
- package/msg/ba.js +14 -0
- package/msg/ba.mjs +14 -0
- package/msg/bcc.js +14 -0
- package/msg/bcc.mjs +14 -0
- package/msg/be-tarask.js +14 -0
- package/msg/be-tarask.mjs +14 -0
- package/msg/be.js +14 -0
- package/msg/be.mjs +14 -0
- package/msg/bg.js +14 -0
- package/msg/bg.mjs +14 -0
- package/msg/bn.js +14 -0
- package/msg/bn.mjs +14 -0
- package/msg/br.js +14 -0
- package/msg/br.mjs +14 -0
- package/msg/bs.js +14 -0
- package/msg/bs.mjs +14 -0
- package/msg/ca.js +14 -0
- package/msg/ca.mjs +14 -0
- package/msg/ce.js +14 -0
- package/msg/ce.mjs +14 -0
- package/msg/cs.js +14 -0
- package/msg/cs.mjs +14 -0
- package/msg/{hak.js → csb.js} +151 -137
- package/msg/csb.mjs +656 -0
- package/msg/da.js +14 -0
- package/msg/da.mjs +14 -0
- package/msg/de.js +14 -0
- package/msg/de.mjs +14 -0
- package/msg/diq.js +14 -0
- package/msg/diq.mjs +14 -0
- package/msg/dtp.js +14 -0
- package/msg/dtp.mjs +14 -0
- package/msg/dty.js +14 -0
- package/msg/dty.mjs +14 -0
- package/msg/ee.js +14 -0
- package/msg/ee.mjs +14 -0
- package/msg/el.js +15 -1
- package/msg/el.mjs +14 -0
- package/msg/en-gb.js +14 -0
- package/msg/en-gb.mjs +14 -0
- package/msg/en.js +14 -0
- package/msg/en.mjs +14 -0
- package/msg/eo.js +14 -0
- package/msg/eo.mjs +14 -0
- package/msg/es.js +27 -13
- package/msg/es.mjs +14 -0
- package/msg/et.js +14 -0
- package/msg/et.mjs +14 -0
- package/msg/eu.js +14 -0
- package/msg/eu.mjs +14 -0
- package/msg/fa.js +14 -0
- package/msg/fa.mjs +14 -0
- package/msg/fi.js +14 -0
- package/msg/fi.mjs +14 -0
- package/msg/fo.js +14 -0
- package/msg/fo.mjs +14 -0
- package/msg/fr.js +15 -1
- package/msg/fr.mjs +14 -0
- package/msg/frr.js +14 -0
- package/msg/frr.mjs +14 -0
- package/msg/ga.js +14 -0
- package/msg/ga.mjs +14 -0
- package/msg/gl.js +73 -59
- package/msg/gl.mjs +14 -0
- package/msg/gn.js +14 -0
- package/msg/gn.mjs +14 -0
- package/msg/gor.js +14 -0
- package/msg/gor.mjs +14 -0
- package/msg/ha.js +14 -0
- package/msg/ha.mjs +14 -0
- package/msg/he.js +104 -90
- package/msg/he.mjs +14 -0
- package/msg/hi.js +14 -0
- package/msg/hi.mjs +14 -0
- package/msg/hr.js +14 -0
- package/msg/hr.mjs +14 -0
- package/msg/hrx.js +14 -0
- package/msg/hrx.mjs +14 -0
- package/msg/hsb.js +14 -0
- package/msg/hsb.mjs +14 -0
- package/msg/hu.js +14 -0
- package/msg/hu.mjs +14 -0
- package/msg/hy.js +14 -0
- package/msg/hy.mjs +14 -0
- package/msg/ia.js +113 -99
- package/msg/ia.mjs +14 -0
- package/msg/id.js +14 -0
- package/msg/id.mjs +14 -0
- package/msg/ig.js +14 -0
- package/msg/ig.mjs +14 -0
- package/msg/inh.js +14 -0
- package/msg/inh.mjs +14 -0
- package/msg/is.js +14 -0
- package/msg/is.mjs +14 -0
- package/msg/it.js +29 -15
- package/msg/it.mjs +14 -0
- package/msg/ja.js +17 -3
- package/msg/ja.mjs +14 -0
- package/msg/ka.js +14 -0
- package/msg/ka.mjs +14 -0
- package/msg/kab.js +14 -0
- package/msg/kab.mjs +14 -0
- package/msg/kbd-cyrl.js +14 -0
- package/msg/kbd-cyrl.mjs +14 -0
- package/msg/km.js +14 -0
- package/msg/km.mjs +14 -0
- package/msg/kn.js +14 -0
- package/msg/kn.mjs +14 -0
- package/msg/ko.js +312 -298
- package/msg/ko.mjs +14 -0
- package/msg/krc.js +14 -0
- package/msg/krc.mjs +14 -0
- package/msg/ksh.js +14 -0
- package/msg/ksh.mjs +14 -0
- package/msg/ku-latn.js +14 -0
- package/msg/ku-latn.mjs +14 -0
- package/msg/ky.js +14 -0
- package/msg/ky.mjs +14 -0
- package/msg/la.js +14 -0
- package/msg/la.mjs +14 -0
- package/msg/lb.js +14 -0
- package/msg/lb.mjs +14 -0
- package/msg/lki.js +14 -0
- package/msg/lki.mjs +14 -0
- package/msg/lo.js +14 -0
- package/msg/lo.mjs +14 -0
- package/msg/lrc.js +14 -0
- package/msg/lrc.mjs +14 -0
- package/msg/lt.js +14 -0
- package/msg/lt.mjs +14 -0
- package/msg/lv.js +14 -0
- package/msg/lv.mjs +14 -0
- package/msg/mg.js +14 -0
- package/msg/mg.mjs +14 -0
- package/msg/mk.js +14 -0
- package/msg/mk.mjs +14 -0
- package/msg/ml.js +14 -0
- package/msg/ml.mjs +14 -0
- package/msg/mnw.js +14 -0
- package/msg/mnw.mjs +14 -0
- package/msg/ms.js +14 -0
- package/msg/ms.mjs +14 -0
- package/msg/mt.js +675 -0
- package/msg/{hak.mjs → mt.mjs} +16 -2
- package/msg/my.js +14 -0
- package/msg/my.mjs +14 -0
- package/msg/mzn.js +14 -0
- package/msg/mzn.mjs +14 -0
- package/msg/nb.js +14 -0
- package/msg/nb.mjs +14 -0
- package/msg/ne.js +14 -0
- package/msg/ne.mjs +14 -0
- package/msg/nl.js +103 -89
- package/msg/nl.mjs +14 -0
- package/msg/oc.js +14 -0
- package/msg/oc.mjs +14 -0
- package/msg/olo.js +14 -0
- package/msg/olo.mjs +14 -0
- package/msg/pa.js +15 -1
- package/msg/pa.mjs +14 -0
- package/msg/pl.js +14 -0
- package/msg/pl.mjs +14 -0
- package/msg/pms.js +71 -57
- package/msg/pms.mjs +14 -0
- package/msg/ps.js +23 -9
- package/msg/ps.mjs +14 -0
- package/msg/pt-br.js +14 -0
- package/msg/pt-br.mjs +14 -0
- package/msg/pt.js +14 -0
- package/msg/pt.mjs +14 -0
- package/msg/ro.js +14 -0
- package/msg/ro.mjs +14 -0
- package/msg/ru.js +15 -1
- package/msg/ru.mjs +14 -0
- package/msg/sc.js +14 -0
- package/msg/sc.mjs +14 -0
- package/msg/sco.js +14 -0
- package/msg/sco.mjs +14 -0
- package/msg/sd.js +14 -0
- package/msg/sd.mjs +14 -0
- package/msg/shn.js +14 -0
- package/msg/shn.mjs +14 -0
- package/msg/si.js +14 -0
- package/msg/si.mjs +14 -0
- package/msg/sk.js +36 -22
- package/msg/sk.mjs +14 -0
- package/msg/skr-arab.js +14 -0
- package/msg/skr-arab.mjs +14 -0
- package/msg/sl.js +14 -0
- package/msg/sl.mjs +14 -0
- package/msg/smn.js +14 -0
- package/msg/smn.mjs +14 -0
- package/msg/sq.js +14 -0
- package/msg/sq.mjs +14 -0
- package/msg/sr-latn.js +14 -0
- package/msg/sr-latn.mjs +14 -0
- package/msg/sr.js +15 -1
- package/msg/sr.mjs +14 -0
- package/msg/sv.js +14 -0
- package/msg/sv.mjs +14 -0
- package/msg/sw.js +14 -0
- package/msg/sw.mjs +14 -0
- package/msg/ta.js +14 -0
- package/msg/ta.mjs +14 -0
- package/msg/tcy.js +14 -0
- package/msg/tcy.mjs +14 -0
- package/msg/tdd.js +14 -0
- package/msg/tdd.mjs +14 -0
- package/msg/te.js +14 -0
- package/msg/te.mjs +14 -0
- package/msg/th.js +14 -0
- package/msg/th.mjs +14 -0
- package/msg/ti.js +14 -0
- package/msg/ti.mjs +14 -0
- package/msg/tl.js +14 -0
- package/msg/tl.mjs +14 -0
- package/msg/tlh.js +14 -0
- package/msg/tlh.mjs +14 -0
- package/msg/tr.js +14 -0
- package/msg/tr.mjs +14 -0
- package/msg/ug-arab.js +14 -0
- package/msg/ug-arab.mjs +14 -0
- package/msg/uk.js +37 -23
- package/msg/uk.mjs +14 -0
- package/msg/ur.js +14 -0
- package/msg/ur.mjs +14 -0
- package/msg/uz.js +14 -0
- package/msg/uz.mjs +14 -0
- package/msg/vi.js +15 -1
- package/msg/vi.mjs +14 -0
- package/msg/xmf.js +14 -0
- package/msg/xmf.mjs +14 -0
- package/msg/yo.js +14 -0
- package/msg/yo.mjs +14 -0
- package/msg/zgh.js +14 -0
- package/msg/zgh.mjs +14 -0
- package/msg/zh-hans.js +14 -0
- package/msg/zh-hans.mjs +14 -0
- package/msg/zh-hant.js +14 -0
- package/msg/zh-hant.mjs +14 -0
- package/package.json +1 -1
- package/php_compressed.js +5 -5
- package/python_compressed.js +3 -3
package/blockly_compressed.js
CHANGED
|
@@ -14,19 +14,19 @@ var $={};
|
|
|
14
14
|
var l,ca,da,ea,fa,ha,ja,ma,ka,oa,pa,na,n,sa,ta,ua,wa,xa,ya,Aa,Ca,p,Ha,Ia,Ea,Ja,La,Ma,t,Na,Oa,u,Pa,Qa,Ua,Za,y,v,ab,bb,cb,db,eb,fb,jb,kb,mb,lb,ob,rb,sb,tb,vb,Ga,xb,yb,zb,Bb,Cb,Db,Eb,Gb,Hb,Ib,Jb,Kb,Mb,Qb,Rb,Tb,Wb,Xb,Zb,$b,ac,bc,dc,fc,ec,kc,lc,mc,nc,oc,pc,wc,uc,Bc,Cc,Ec,Fc,zc,Ac,yc,Jc,Kc,Mc,Nc,Oc,Qc,Rc,Tc,Sc,Uc,ad,bd,cd,Vc,Xc,jd,hd,id,md,nd,od,qd,sd,ud,kd,wd,xd,yd,zd,Ed,Fd,Dd,Id,Jd,Cd,Kd,Od,Ld,Pd,Rd,Sd,Td,Wd,Gd,Xd,ae,$d,ce,be,de,ee,le,pe,me,qe,se,te,ye,Be,Ce,De,He,Ie,Ge,Fe,Ke,Re,Se,Qe,Ue,Ae,Te,Pe,Xe,
|
|
15
15
|
Ye,Ze,$e,bf,af,ff,ef,hf,mf,nf,jf,kf,lf,yf,qf,zf,Af,xf,Ef,Df,Ff,Gf,Hf,Kf,Lf,Mf,Nf,Of,Rf,Tf,$f,Qf,ag,bg,cg,dg,eg,mg,hg,jg,rg,lg,gg,qg,vg,xg,yg,zg,Ag,Dg,Bg,Fg,Zd,Gg,sg,Hg,Ng,Og,Mg,Pg,Sg,$g,bh,Xg,Wg,ah,ch,I,gh,hh,ih,jh,kh,J,lh,mh,nh,oh,vh,xh,rh,qh,sh,yh,zh,th,Bh,Ch,Eh,Dh,uh,Fh,Hh,Gh,Ih,Mh,Lh,Jh,Qh,Oh,Ph,Rh,Uh,Th,Zh,ai,$h,bi,ci,di,fi,hi,ii,ki,li,mi,ni,oi,ri,si,ti,vi,wi,xi,yi,zi,Ai,Ci,Di,Ei,Fi,Gi,Hi,Ii,Ji,Ki,Ni,Oi,Pi,Qi,Ri,Si,Ui,Vi,Wi,Yi,Xi,Zi,dj,ej,gj,fj,hj,kj,lj,mj,nj,oj,pj,qj,rj,tj,uj,yj,vj,xj,Bj,Cj,
|
|
16
16
|
Dj,Ej,Fj,Gj,Hj,Ij,Jj,Kj,Lj,Nj,Pj,Qj,Rj,Sj,Tj,Uj,Vj,Wj,Yj,M;
|
|
17
|
-
l=function(a,b,c,d){if(!(a instanceof
|
|
17
|
+
l=function(a,b,c,d){if(!(a instanceof k)&&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=aa[a],g=ba[a];f||(f=aa[a]=Object.create(null),g=ba[a]=Object.create(null));switch(a){case String(k.FIELD):if(typeof c.fromJson!==
|
|
18
18
|
"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};ca=function(a,b){a=`${a}`.toLowerCase();b=b.toLowerCase();var c=aa[a];c&&c[b]?(delete aa[a][b],delete ba[a][b]):console.warn("Unable to unregister ["+b+"]["+a+"] from the registry.")};
|
|
19
19
|
da=function(a,b,c){a=`${a}`.toLowerCase();b=b.toLowerCase();var d=aa[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]};ea=function(a,b){a=`${a}`.toLowerCase();b=b.toLowerCase();return(a=aa[a])?!!a[b]:!1};fa=function(a,b,c){return da(a,b,c)};
|
|
20
20
|
ha=function(a,b,c){a=`${a}`.toLowerCase();var d=aa[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=ba[a];c=Object.create(null);for(let e of Object.keys(d))c[a[e]]=d[e];return c};ja=function(a,b,c){b=b.plugins[String(a)]||"default";return typeof b==="function"?b:da(a,b,c)};ma=function(a,b){ka();la=setTimeout(function(){b&&b.handleRightClick(a)},750)};
|
|
21
21
|
ka=function(){la&&(clearTimeout(la),la=0)};oa=function(a){return!a.type.startsWith("pointer")||a instanceof PointerEvent&&na(a)};pa=function(a){return`${a.pointerId}`};na=function(a){var b=pa(a);return qa?qa===b:a.type==="pointerdown"?(qa=b,!0):!1};
|
|
22
|
-
n=function(a,b,c,d,e,f){function g(m){if(e||oa(m))c?d.call(c,m):d(m)}var
|
|
23
|
-
sa=function(a,b,c,d,e){function f(
|
|
22
|
+
n=function(a,b,c,d,e,f){function g(m){if(e||oa(m))c?d.call(c,m):d(m)}var h=[];if(b in ra)for(let m=0;m<ra[b].length;m++){let z=ra[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};
|
|
23
|
+
sa=function(a,b,c,d,e){function f(h){c?d.call(c,h):d(h)}var g=[];if(b in ra)for(let h=0;h<ra[b].length;h++){let m=ra[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};ta=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};
|
|
24
24
|
ua=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};wa=function(a){return a.ctrlKey&&va?!0:a.button===2};
|
|
25
25
|
xa=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)};ya=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}}};Aa=function(){return"blockly-"+(za++).toString(36)};Ca=function(){return Ba.genUid()};p=function(a){Da.fireInternal(a)};
|
|
26
26
|
Ha=function(){var a=Ea(Fa);Fa.length=0;for(let b of a){if(!b.workspaceId)continue;let c;(c=Ga(b.workspaceId))==null||c.fireChangeListener(b)}};Ia=function(a){if(a.type===q.BLOCK_CHANGE&&a.element==="mutation"){let b;for(b=Fa.length;b>0;b--){let c=Fa[b-1];if(c.group!==a.group||c.workspaceId!==a.workspaceId||c.type!==q.BLOCK_MOVE||c.newParentId!==a.blockId)break}Fa.splice(b,0,a)}else Fa.push(a)};
|
|
27
27
|
Ea=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===q.BLOCK_MOVE&&a.type===q.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===q.BLOCK_CHANGE&&a.type===q.BLOCK_CHANGE&&c.blockId===a.blockId&&c.element===a.element&&
|
|
28
28
|
c.name===a.name?a.newValue=c.newValue:c.type===q.VIEWPORT_CHANGE&&a.type===q.VIEWPORT_CHANGE?(a.viewTop=c.viewTop,a.viewLeft=c.viewLeft,a.scale=c.scale,a.oldScale=c.oldScale):c.type===q.CLICK&&a.type===q.BUBBLE_OPEN||b.push(c);else b.push(c);return a=b.filter(c=>!c.isNull())};Ja=function(){for(let a=0,b;b=Fa[a];a++)b.recordUndo=!1};La=function(){return $.Ka===0};$.r=function(a){Da.setGroupInternal(a)};Ma=function(a){var b=[];a=a.getDescendants(!1);for(let c=0,d;d=a[c];c++)b[c]=d.id;return b};
|
|
29
|
-
t=function(a){var b=da(
|
|
29
|
+
t=function(a){var b=da(k.EVENT,a,void 0);if(!b)throw Error(`Event type ${a} not found in registry.`);return b};Na=function(a){a.removeAttribute("role")};Oa=function(a,b){b?a.setAttribute("role",b):Na(a)};u=function(a,b,c){Array.isArray(c)&&(c=c.join(" "));a.setAttribute("aria-"+b,`${c}`)};Pa=function(a,b){a.removeAttribute("aria-"+b)};Qa=function(a,b){return(a=a.getAttribute("aria-"+b))?a:null};
|
|
30
30
|
Ua=function(a){if(!Ra||!document.contains(Ra)){var b=document.createElement("div");b.textContent="";b.id="blocklyAriaAnnounce";v(b,"hiddenForAria");u(b,w.LIVE,Sa.POLITE);Oa(b,Ta);u(b,w.ATOMIC,!0);a.appendChild(b);Ra=b}};
|
|
31
31
|
Za=function(a,b){if(!Ra)throw Error("ARIA live region not initialized.");var c=Ra,{assertiveness:d=Sa.POLITE,role:e=Ta}=b||{};Va.push(a);Wa=d===Sa.ASSERTIVE||Wa===Sa.ASSERTIVE?Sa.ASSERTIVE:d===Sa.POLITE||Wa===Sa.POLITE?Sa.POLITE:Sa.OFF;clearTimeout(Xa);Xa=setTimeout(()=>{c.replaceChildren();u(c,w.LIVE,Wa);Oa(c,e);var f=document.createElement("span");f.textContent=Va.join("\n")+(Ya?"\u00a0":"");Ya=!Ya;c.appendChild(f);Va.length=0;Wa=Sa.OFF},10)};
|
|
32
32
|
y=function(a,b,c){var d=document.createElementNS("http://www.w3.org/2000/svg",`${a}`);a!==x.SVG.toString()&&a!==x.G.toString()&&d.tagName!==x.SVG.toString()&&d.tagName!==x.G.toString()||Oa(d,$a.PRESENTATION);for(let e in b)d.setAttribute(e,`${b[e]}`);c&&c.appendChild(d);return d};v=function(a,b){b=b.split(" ");if(b.every(c=>a.classList.contains(c)))return!1;a.classList.add(...b);return!0};ab=function(a,b){a.classList.remove(...b.split(" "))};
|
|
@@ -40,8 +40,8 @@ Cb=function(a){Ab=a;a.rendered&&$.A().setPopoverFocusRoot(a.getInjectionDiv())};
|
|
|
40
40
|
Ib=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()}};
|
|
41
41
|
Jb=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};Kb=function(a){return function(){this.jsonInit(a)}};Mb=function(a){Lb.defineBlocksWithJsonArrayInternal(a)};$.Nb=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:Kb(d)}:console.warn(`Block definition #${c} in JSON array is missing a type attribute. Skipping.`)}return b};
|
|
42
42
|
$.Pb=function(a){for(let b of Object.keys(a)){let c=a[b];b in Ob&&console.warn(`Block definition "${b}" overwrites previous definition.`);Ob[b]=c}};Qb=function(a){var b=Ab,c=$.A().getFocusedTree();for(let d of xb())if(c===d){b=d;break}if(!ua(a)&&b&&(!b.rendered||b.isFlyout||b.isVisible()))B.registry.onKeyDown(b,a)};Rb=function(a,b){b=a.indexOf(b);if(b===-1)return!1;a.splice(b,1);return!0};Tb=function(a){Sb.push(a)};
|
|
43
|
-
Wb=function(a,b,c){b&&typeof window!=="undefined"&&(a=a.getRootNode(),Ub.has(a)||(Ub.add(a),c=c.replace(/[\\/]$/,""),c=[Vb,...Sb].join("\n").replace(/<<<PATH>>>/g,c),b=document.createElement("style"),b.id="blockly-common-style",b.textContent=c,(a instanceof ShadowRoot?a:document.head).prepend(b)))};Xb=function(a){Object.keys(a).forEach(function(b){$.C[b]=a[b]})};Zb=function(a){return Yb.getSizeInternal(a)}
|
|
44
|
-
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)};
|
|
43
|
+
Wb=function(a,b,c){b&&typeof window!=="undefined"&&(a=a.getRootNode(),Ub.has(a)||(Ub.add(a),c=c.replace(/[\\/]$/,""),c=[Vb,...Sb].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)))};Xb=function(a){Object.keys(a).forEach(function(b){$.C[b]=a[b]})};Zb=function(a){return Yb.getSizeInternal(a)};
|
|
44
|
+
$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};bc=function(){var a=document.body,b=document.documentElement;return new D(a.scrollLeft||b.scrollLeft,a.scrollTop||b.scrollTop)};
|
|
45
45
|
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};
|
|
46
46
|
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)};
|
|
47
47
|
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};
|
|
@@ -52,23 +52,23 @@ Bc=function(a){if(!a)return null;if(a instanceof Element||typeof a==="string"){a
|
|
|
52
52
|
Fc=function(a){return a&&a.contents?!!a.contents.filter(function(b){return b.kind.toUpperCase()==="CATEGORY"}).length:!1};zc=function(a){var b=[],c=a.childNodes;c||(c=a);for(let d=0,e;e=c[d];d++){if(!e.tagName)continue;a={};let f=e.tagName.toUpperCase();a.kind=f;f==="BLOCK"?a.blockxml=e:e.childNodes&&e.childNodes.length>0&&(a.contents=zc(e));Ac(e,a);b.push(a)}return b};
|
|
53
53
|
Ac=function(a,b){for(let c=0;c<a.attributes.length;c++){let d=a.attributes[c];d.nodeName.includes("css-")?(b.cssconfig=b.cssconfig||{},b.cssconfig[d.nodeName.replace("css-","")]=d.value):b[d.nodeName]=d.value}};yc=function(a){var b=null;if(a)if(typeof a==="string"){if(b=$.tc(a),b.nodeName.toLowerCase()!=="xml")throw TypeError("Toolbox should be an <xml> document.");}else a instanceof Element&&(b=a);return b};
|
|
54
54
|
Jc=function(a,b,c,d,e,f){var g=f.scrollbar&&f.scrollbar.canScrollVertically();a.horizontal===Gc.LEFT?(c=e.absoluteMetrics.left+c,g&&f.RTL&&(c+=Hc.scrollbarThickness)):(c=e.absoluteMetrics.left+e.viewMetrics.width-b.width-c,g&&!f.RTL&&(c-=Hc.scrollbarThickness));a.vertical===Ic.TOP?a=e.absoluteMetrics.top+d:(a=e.absoluteMetrics.top+e.viewMetrics.height-b.height-d,f.scrollbar&&f.scrollbar.canScrollHorizontally()&&(a-=Hc.scrollbarThickness));return new cc(a,a+b.height,c,c+b.width)};
|
|
55
|
-
Kc=function(a,b){return{horizontal:b.toolboxMetrics.position===H.LEFT||a.horizontalLayout&&!a.RTL?Gc.RIGHT:Gc.LEFT,vertical:b.toolboxMetrics.position===H.BOTTOM?Ic.TOP:Ic.BOTTOM}};Mc=function(a,b,c,d){var e=a.left,f=a.right-a.left,g=a.bottom-a.top;for(let
|
|
55
|
+
Kc=function(a,b){return{horizontal:b.toolboxMetrics.position===H.LEFT||a.horizontalLayout&&!a.RTL?Gc.RIGHT:Gc.LEFT,vertical:b.toolboxMetrics.position===H.BOTTOM?Ic.TOP:Ic.BOTTOM}};Mc=function(a,b,c,d){var e=a.left,f=a.right-a.left,g=a.bottom-a.top;for(let h=0;h<d.length;h++){let m=d[h];a.intersects(m)&&(a=c===Lc.UP?m.top-g-b:m.bottom+b,a=new cc(a,a+g,e,e+f),h=-1)}return a};Nc=function(a,b){l(k.SERIALIZER,a,b)};
|
|
56
56
|
Oc=function(a,{addCoordinates:b=!1,saveIds:c=!0}={}){var d=a.workspace,e=Object.create(null);e.height=a.getSize().height;e.width=a.getSize().width;c&&(e.id=a.id);b&&(b=a.getRelativeToSurfaceXY(),e.x=d.RTL?d.getWidth()-b.x:b.x,e.y=b.y);a.getText()&&(e.text=a.getText());a.isCollapsed()&&(e.collapsed=!0);a.isOwnEditable()||(e.editable=!1);a.isOwnMovable()||(e.movable=!1);a.isOwnDeletable()||(e.deletable=!1);return e};
|
|
57
|
-
Qc=function(a,b,{recordUndo:c=!1}={}){var d=$.Pc;$.Pc=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,
|
|
58
|
-
a.movable!==void 0&&c.setMovable(a.movable);a.deletable!==void 0&&c.setDeletable(a.deletable);$.Pc=d;return c};Rc=function(a,b){l(
|
|
57
|
+
Qc=function(a,b,{recordUndo:c=!1}={}){var d=$.Pc;$.Pc=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);
|
|
58
|
+
a.movable!==void 0&&c.setMovable(a.movable);a.deletable!==void 0&&c.setDeletable(a.deletable);$.Pc=d;return c};Rc=function(a,b){l(k.PASTER,a,b)};Tc=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());Sc(D.sum(c,d),e);)d.translate(b.RTL?-30:30,30);a.moveTo(D.sum(c,d))};Sc=function(a,b){return b.some(c=>Math.abs(c.x-a.x)<=1&&Math.abs(c.y-a.y)<=1)};
|
|
59
59
|
Uc=function(a){return a&&typeof a.saveState==="function"&&typeof a.loadState==="function"};ad=function(a){Vc(a);if(Wc)return Xc(),Promise.resolve();Yc||(Yc=new Promise(b=>{Zc=b;$c=window.requestAnimationFrame(()=>{Xc();b()})}));return Yc};bd=function(){return Yc?Yc:Promise.resolve()};cd=function(a){a||window.cancelAnimationFrame($c);Xc(a);!a&&Zc&&Zc()};Vc=function(a){dd.add(a);ed.set(a,$.fd);var b=a.getParent();b?Vc(b):gd.add(a)};
|
|
60
60
|
Xc=function(a){var b=a?new Set([a]):new Set([...gd].map(f=>f.workspace)),c=[...gd].filter(hd).filter(f=>b.has(f.workspace));for(var d of c)id(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=$.fd,(d=ed.get(f))&&$.r(d),f.bumpNeighbours(),$.r(e);for(let f of c)jd(f);a||(Yc=null)};jd=function(a){gd.delete(a);dd.delete(a);ed.delete(a);for(let b of a.getChildren(!1))jd(b)};hd=function(a){return!a.isDisposed()&&!a.getParent()};
|
|
61
61
|
id=function(a){if(dd.has(a)&&a.initialized){for(let b of a.getChildren(!1))id(b);a.renderEfficiently()}};md=function(a,b){kd(ld.ALERT,a,b,void 0)};nd=function(a,b){kd(ld.CONFIRM,a,b,void 0)};od=function(a,b,c){kd(ld.PROMPT,a,c,b)};qd=function(a,b){pd(a,b)};sd=function(a,b){rd(a,b)};ud=function(a,b,c){td(a,b,c)};
|
|
62
|
-
kd=function(...[a,b,c,d]){var e=document.createElement("dialog"),f=document.createElement("form"),g=document.createElement("label"),
|
|
63
|
-
$.C.DIALOG_OK;z.value="ok";e.appendChild(f);f.appendChild(g);a===ld.PROMPT&&(
|
|
64
|
-
{vd--;if(!vd){let G;(G=E)==null||G()}e.remove();switch(a){case ld.CONFIRM:c(e.returnValue==="ok");break;case ld.PROMPT:c(e.returnValue==="ok"?
|
|
62
|
+
kd=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=
|
|
63
|
+
$.C.DIALOG_OK;z.value="ok";e.appendChild(f);f.appendChild(g);a===ld.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===ld.CONFIRM||a===ld.PROMPT)b=document.createElement("button"),b.className="blocklyDialogCancelButton",b.textContent=$.C.DIALOG_CANCEL,b.value="cancel",m.appendChild(b);f.appendChild(m);var E;vd===0&&(E=$.A().takeEphemeralFocus(e));vd++;e.addEventListener("close",()=>
|
|
64
|
+
{vd--;if(!vd){let G;(G=E)==null||G()}e.remove();switch(a){case ld.CONFIRM:c(e.returnValue==="ok");break;case ld.PROMPT:c(e.returnValue==="ok"?h.value:null);break;case ld.ALERT:c==null||c()}});document.body.appendChild(e);e.showModal()};wd=function(a){return typeof a.bubbleIsVisible==="function"&&typeof a.setBubbleVisible==="function"&&typeof a.getBubble==="function"};xd=function(a,b){return b.map(c=>a.getBlockById(c)).filter(c=>c&&c.isShadow()).length===b.length};
|
|
65
65
|
yd=function(a){return a&&typeof a.getProcedureDef==="function"};zd=function(a){return a.getVariableModel!==void 0};$.Ad=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())};$.Bd=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())};
|
|
66
66
|
Ed=function(a){Ob.variables_set||Ob.variables_get||console.warn("There are no variable blocks, but there is a variable category.");a.registerButtonCallback("CREATE_VARIABLE",function(b){Cd(b.getTargetWorkspace())});return[{kind:"button",text:"%{BKY_NEW_VARIABLE}",callbackkey:"CREATE_VARIABLE"},...Dd(a,a.getVariableMap().getVariablesOfType(""),!0)]};Fd=function(a){return{VAR:{name:a.getName(),type:a.getType()}}};
|
|
67
67
|
Dd=function(a,b,c,d="variables_get",e="variables_set"){c&&(c=Ob.math_change);a=[];var f=b.slice(-1)[0];f&&(Ob[e]&&a.push({kind:"block",type:e,gap:c?8:24,fields:Fd(f)}),c&&a.push({kind:"block",type:"math_change",gap:Ob[d]?20:8,fields:Fd(f),inputs:{DELTA:{shadow:{type:"math_number",fields:{NUM:1}}}}}));Ob[d]&&a.push(...b.sort(Gd).map(g=>({kind:"block",type:d,gap:8,fields:Fd(g)})));return a};Id=function(a){return Hd.generateUniqueNameInternal(a)};
|
|
68
68
|
Jd=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};
|
|
69
|
-
Cd=function(a,b,c){function d(f){Kd($.C.NEW_VARIABLE_TITLE,f,function(g){if(g){var
|
|
69
|
+
Cd=function(a,b,c){function d(f){Kd($.C.NEW_VARIABLE_TITLE,f,function(g){if(g){var h=Ld(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());qd(m,function(){d(g)})}else{let E=a.getVariableMap().createVariable(g,e);b&&b(g);let G=(m=a.getFlyout())==null?void 0:m.getWorkspace();if(G&&Md.getIsActive()){var z=X=>{X.type===$.Nd&&(X=X.blockId)&&(X=G.getBlockById(X))&&
|
|
70
70
|
X.type==="variables_set"&&X.getFieldValue("VAR")===E.getId()&&($.A().focusNode(X),G.removeChangeListener(z))};G.addChangeListener(z)}}}else b&&b(null)})}var e=c||"";d("")};
|
|
71
|
-
$.Qd=function(a,b,c){function d(e){var f=$.C.RENAME_VARIABLE_TITLE.replace("%1",b.getName());Kd(f,e,function(g){if(g){var
|
|
71
|
+
$.Qd=function(a,b,c){function d(e){var f=$.C.RENAME_VARIABLE_TITLE.replace("%1",b.getName());Kd(f,e,function(g){if(g){var h=Od(g,b.getType(),a),m=Pd(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));qd(z,function(){d(g)})}else a.getVariableMap().renameVariable(b,g),c&&c(g)}else c&&c(null)})}d("")};
|
|
72
72
|
Kd=function(a,b,c){ud(a,b,function(d){d&&(d=d.replace(/[\s\xa0]+/g," ").trim(),d===$.C.RENAME_VARIABLE||d===$.C.NEW_VARIABLE)&&(d=null);c(d)})};Od=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};Ld=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};
|
|
73
73
|
Pd=function(a,b,c){return c.getProcedureMap().getProcedures().length?Rd(a,b,c):Sd(a,b,c)};Rd=function(a,b,c){a=a.toLowerCase();b=b.toLowerCase();c=c.getProcedureMap().getProcedures();for(let e of c){var d=e.getParameters().filter(zd).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};
|
|
74
74
|
Sd=function(a,b,c){a=a.toLowerCase();b=b.toLowerCase();c=c.getAllBlocks(!1);for(let e of c){if(!yd(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};Td=function(a){var b=$.F("field");b.setAttribute("name","VAR");b.setAttribute("id",a.getId());b.setAttribute("variabletype",a.getType());a=$.rc(a.getName());b.appendChild(a);return b};
|
|
@@ -77,15 +77,15 @@ $.Ud=function(a,b,c,d){var e=a.getPotentialVariableMap(),f=null;if(b&&(f=a.getVa
|
|
|
77
77
|
Gd=function(a,b){return a.getName().localeCompare(b.getName(),void 0,{sensitivity:"base"})};Xd=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};
|
|
78
78
|
$.Yd=function(a,b,c){var d=b.getName(),e=Xd(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);pd(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),sd(d,f=>{f&&b&&a.getVariableMap().deleteVariable(b)})):
|
|
79
79
|
a.getVariableMap().deleteVariable(b)};
|
|
80
|
-
ae=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
|
|
81
|
-
!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=Zd(b).replace(' xmlns="https://developers.google.com/blockly/xml"',"")));b=Object.create(null);for(var m of a.getIcons())Uc(m)&&(
|
|
80
|
+
ae=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=
|
|
81
|
+
!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=Zd(b).replace(' xmlns="https://developers.google.com/blockly/xml"',"")));b=Object.create(null);for(var m of a.getIcons())Uc(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()&&
|
|
82
82
|
(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=$d(m.connection,e,f))&&(c[m.name]=b)}Object.keys(c).length&&(g.inputs=c)}d&&a.nextConnection&&(a=$d(a.nextConnection,e,f))&&(g.next=a);return g};
|
|
83
83
|
$d=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=ae(a,{doFullSerialization:b,saveIds:c}));return e};ce=function(a,b,{recordUndo:c=!1}={}){a=be(a,b,{recordUndo:c});b.rendered&&cd();return a};
|
|
84
|
-
be=function(a,b,{parentConnection:c,isShadow:d=!1,recordUndo:e=!1}={}){var f=$.Pc;$.Pc=e;(e=$.fd)||$.r(!0);$.Ka++;var g=b.getVariableMap().getAllVariables();try{var
|
|
85
|
-
de=function(a,b,{parentConnection:c,isShadow:d=!1}={}){if(!a.type)throw new fe(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
|
|
86
|
-
|
|
87
|
-
c,!1),
|
|
88
|
-
d=e.getInput(
|
|
84
|
+
be=function(a,b,{parentConnection:c,isShadow:d=!1,recordUndo:e=!1}={}){var f=$.Pc;$.Pc=e;(e=$.fd)||$.r(!0);$.Ka++;var g=b.getVariableMap().getAllVariables();try{var h=de(a,b,{parentConnection:c,isShadow:d})}finally{$.Ka--}ee(b,g);La()&&p(new (t(q.BLOCK_CREATE))(h));$.r(e);$.Pc=f;if(b.rendered){let m=h;setTimeout(()=>{m.disposed||m.setConnectionTracking(!0)},1)}return h};
|
|
85
|
+
de=function(a,b,{parentConnection:c,isShadow:d=!1}={}){if(!a.type)throw new fe(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,
|
|
86
|
+
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($.tc(a.extraState)));if(c){if(c.getSourceBlock().isShadow()&&!e.isShadow())throw new ge(a);if(c.type===$.he.VALUE){if(h=e.outputConnection,!h)throw new ie("output",e,a);}else if(h=e.previousConnection,!h)throw new ie("previous",e,a);if(!c.connect(h))throw b=e.workspace.connectionChecker,new je(b.getErrorMessage(b.canConnectWithReason(h,
|
|
87
|
+
c,!1),h,c),c.type===$.he.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=da(k.ICON,m,!1);if(!h)throw new ke(m,e,a);h=new h(e);e.addIcon(h)}Uc(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];
|
|
88
|
+
d=e.getInput(h);if(!d||!d.connection)throw new ie(h,e,a);le(d.connection,a.inputs[h])}if(a.next){if(!e.nextConnection)throw new ie("next",e,a);le(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};ee=function(a,b){if(La())for(a=Wd(a,b),b=0;b<a.length;b++){let c=a[b];p(new (t(q.VAR_CREATE))(c))}};
|
|
89
89
|
le=function(a,b){b.shadow&&a.setShadowState(b.shadow);b.block&&de(b.block,a.getSourceBlock().workspace,{parentConnection:a})};pe=function(a){a=me(a,ne);return a.length?a[0].join(oe?" ":" + "):""};
|
|
90
90
|
me=function(a,b){a=B.registry.getKeyCodesByShortcutName(a);if(a.length===0)return[];a=a.map(d=>d.split("+"));a.forEach(d=>d.sort((e,f)=>{e=qe(e);f=qe(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")===oe);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=
|
|
91
91
|
{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",
|
|
@@ -93,30 +93,30 @@ me=function(a,b){a=B.registry.getKeyCodesByShortcutName(a);if(a.length===0)retur
|
|
|
93
93
|
qe=function(a){a=re.indexOf(a);return a===-1?Number.MAX_VALUE:a};se=function(a){return a*Math.PI/180};te=function(a,b,c){if(c<a){let d=c;c=a;a=d}return Math.max(a,Math.min(b,c))};
|
|
94
94
|
ye=function(){document.querySelector(".blocklyDropDownDiv")||(ue=document.createElement("div"),ue.className="blocklyDropDownDiv",ue.tabIndex=-1,ue.id=Aa(),(Gb()||document.body).appendChild(ue),ve=document.createElement("div"),ve.className="blocklyDropDownContent",ue.appendChild(ve),we=n(ve,"keydown",null,Qb),xe=document.createElement("div"),xe.className="blocklyDropDownArrow",ue.appendChild(xe),ue.style.opacity="0",ue.style.transition="transform 0.25s, opacity 0.25s")};
|
|
95
95
|
Be=function(){ze&&(ze(!1),ze=null);Ae()};Ce=function(){we&&(ta(we),we=null);ue.remove();ye()};De=function(a,b){ue.style.backgroundColor=a;ue.style.borderColor=b};He=function(a,b,c,d=!0){Ee=!0;return Fe(Ge(a),a,d,b,c)};Ie=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)};Ge=function(a){a=a.getScaledBBox();return new cc(a.top,a.bottom,a.left,a.right)};
|
|
96
|
-
Fe=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
|
|
97
|
-
Ke=function(a,b,c,d,e,f,g,
|
|
96
|
+
Fe=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;Je=h.getParentSvg().parentNode;return Ke(b,e.RTL,f,g,f,a,c,d)};
|
|
97
|
+
Ke=function(a,b,c,d,e,f,g,h){$.A().registerPopoverFocusLossHandler(Be);var m;(m=Gb())==null||m.appendChild(ue);Le=a;Me=h||null;ue.style.direction=b?"rtl":"ltr";a=Ab;Ne=a.getRenderer().getClassName();Oe=a.getTheme().getClassName();v(ue,Ne);v(ue,Oe);b=Qa(a.getFocusableElement(),w.OWNS);u(a.getFocusableElement(),w.OWNS,b?[b,ue.id]:ue.id);a.getFocusableElement().classList.add("blocklyShowingDropDownDiv");c=Pe(c,d,e,f);g&&(ze=$.A().takeEphemeralFocus(ue));return c};
|
|
98
98
|
Re=function(a,b,c,d){a=Qe(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}};Se=function(a,b,c,d){a=Qe(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}};Qe=function(a,b,c,d){b=te(b,a-d/2,c-d);a=a-8-b;a=te(12,a,d-12-16);return{arrowX:a,divX:b}};
|
|
99
|
-
Ue=function(a,b){return Le===a?(b?Te():Ae(),!0):!1};Ae=function(){$.A().unregisterPopoverFocusLossHandler(Be)
|
|
99
|
+
Ue=function(a,b){return Le===a?(b?Te():Ae(),!0):!1};Ae=function(){Le&&($.A().unregisterPopoverFocusLossHandler(Be),ue.style.transform="translate(0, 0)",ue.style.opacity="0",Ve=setTimeout(function(){Te()},250),Me&&(Me(),Me=null))};
|
|
100
100
|
Te=function(){if(Le){Ve&&clearTimeout(Ve);Me&&(Me(),Me=null);Le=null;var a=Ab,b,c=(b=Qa(a.getFocusableElement(),w.OWNS))!=null?b:"";u(a.getFocusableElement(),w.OWNS,c.replace(ue.id,""));a.getFocusableElement().classList.remove("blocklyShowingDropDownDiv");a.markFocused();ze&&(ze(),ze=null);Ce()}};
|
|
101
101
|
Pe=function(a,b,c,d){a=We.getPositionMetrics(a,b,c,d);a.arrowVisible?(b=a.arrowX,c=a.arrowY,d=a.arrowAtTop?45:225,xe.style.display="",xe.style.transform=`translate(${b}px, ${c}px) rotate(${d}deg)`,xe.setAttribute("class","blocklyDropDownArrow")):xe.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=ue.parentElement;f&&(f=f.getBoundingClientRect(),b-=f.left+window.scrollX,d-=f.left+window.scrollX,c-=f.top+window.scrollY,e-=f.top+
|
|
102
102
|
window.scrollY);ue.style.left=b+"px";ue.style.top=c+"px";ue.style.visibility="visible";ue.style.opacity="1";ue.style.transform="translate("+(d-b)+"px,"+(e-c)+"px)";return!!a.arrowAtTop};Xe=function(){if(Le){var a=Le.getSourceBlock();a=Ee?Ge(Le):Ie(a);let b=a.left+(a.right-a.left)/2;Pe(b,a.bottom,b,a.top)}else Ae()};Ye=function(a){return a.length?a.reduce(function(b,c){return b.length<c.length?b:c}).length:0};
|
|
103
103
|
Ze=function(a,b){if(!a.length)return 0;if(a.length===1)return a[0].length;var c=0;b=b||Ye(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};
|
|
104
104
|
$e=function(a,b){if(!a.length)return 0;if(a.length===1)return a[0].length;var c=0;b=b||Ye(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};
|
|
105
|
-
$.cf=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 G=e.trim().split(/\s+/);for(d=0;d<G.length;d++)G[d].length>f&&(f=G[d].length);var g=-Infinity;let X=1;do{E=g;d=e;var
|
|
105
|
+
$.cf=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 G=e.trim().split(/\s+/);for(d=0;d<G.length;d++)G[d].length>f&&(f=G[d].length);var g=-Infinity;let X=1;do{E=g;d=e;var h=[];g=G.length/X;e=1;for(var m=0;m<G.length-1;m++)e<(m+1.5)/g?(e++,h[m]=!0):h[m]=!1;h=af(G,h,f);g=bf(G,h,f);e=G;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("");X++}while(g>E);f=d}a[c]=f}return a.join("\n")};
|
|
106
106
|
bf=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};
|
|
107
|
-
af=function(a,b,c){var d=bf(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
|
|
107
|
+
af=function(a,b,c){var d=bf(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=bf(a,g,c);if(h>d){d=h;var e=g}}return e?af(a,e,c):b};$.df=function(a){return/^\s*-?\d+(\.\d+)?\s*$/.test(a)};ff=function(a){if(a=ef(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""};
|
|
108
108
|
ef=function(a){for(;a&&a.tooltip;){if(typeof a.tooltip==="string"||typeof a.tooltip==="function")return a;a=a.tooltip}return null};hf=function(){document.querySelector(".blocklyTooltipDiv")||(gf=document.createElement("div"),gf.className="blocklyTooltipDiv",(Gb()||document.body).appendChild(gf))};mf=function(a){a.mouseOverWrapper_=sa(a,"pointerover",null,jf);a.mouseOutWrapper_=sa(a,"pointerout",null,kf);a.addEventListener("pointermove",lf,!1)};
|
|
109
109
|
nf=function(a){a&&(ta(a.mouseOverWrapper_),ta(a.mouseOutWrapper_),a.removeEventListener("pointermove",lf))};jf=function(a){of||(a=ef(a.currentTarget),pf!==a&&(qf(),rf=null,pf=a),clearTimeout(sf))};kf=function(){of||(sf=setTimeout(function(){rf=pf=null;qf()},1),clearTimeout(tf),tf=0)};
|
|
110
110
|
lf=function(a){if(pf&&pf.tooltip&&!of)if(uf){let b=vf-a.pageX;a=wf-a.pageY;Math.sqrt(b*b+a*a)>10&&qf()}else rf!==pf&&(clearTimeout(tf),vf=a.pageX,wf=a.pageY,tf=setTimeout(()=>{if(this instanceof Element)for(let c of xb()){if(!c.rendered)continue;let d;if((d=c.getInjectionDiv())==null?0:d.contains(this)){var b=c;break}}xf(b)},750))};yf=function(){rf=pf=null;qf()};qf=function(){uf&&(uf=!1,gf&&(gf.style.display="none"));tf&&(clearTimeout(tf),tf=0)};
|
|
111
111
|
zf=function(a,b){pf!==a&&(qf(),rf=null,pf=a);pf&&pf.tooltip&&!of&&(a=a.getFocusableElement().getBoundingClientRect(),vf=pf.RTL?a.x+a.width:a.x,wf=a.y+a.height,xf(b))};Af=function(){qf();of=!0};
|
|
112
112
|
xf=function(a){if(!of&&(rf=pf,gf)){var b;(b=Gb(a))==null||b.appendChild(gf);gf.textContent="";if(gf&&pf)if(typeof Bf==="function")Bf(gf,pf);else for(a=ff(pf),a=$.cf(a,50),a=a.split("\n"),b=0;b<a.length;b++){var c=document.createElement("div");c.appendChild(document.createTextNode(a[b]));gf.appendChild(c)}a=pf.RTL;gf.style.direction=a?"rtl":"ltr";gf.style.display="block";uf=!0;b=document.documentElement.clientWidth;c=document.documentElement.clientHeight;var d=vf;d=a?d-(0+gf.offsetWidth):d+0;var e=
|
|
113
|
-
wf+10,f,g=(f=gf)==null?void 0:f.parentElement;g&&(f=g.getBoundingClientRect(),d-=f.left+window.scrollX,e-=f.top+window.scrollY);e+gf.offsetHeight>c+window.scrollY&&(e-=gf.offsetHeight+20);a?d=Math.max(5-window.scrollX,d):d+gf.offsetWidth>b+window.scrollX-10&&(d=b-gf.offsetWidth-10);var {x:
|
|
113
|
+
wf+10,f,g=(f=gf)==null?void 0:f.parentElement;g&&(f=g.getBoundingClientRect(),d-=f.left+window.scrollX,e-=f.top+window.scrollY);e+gf.offsetHeight>c+window.scrollY&&(e-=gf.offsetHeight+20);a?d=Math.max(5-window.scrollX,d):d+gf.offsetWidth>b+window.scrollX-10&&(d=b-gf.offsetWidth-10);var {x:h,y:m}={x:d,y:e};gf.style.left=h+"px";gf.style.top=m+"px"}};
|
|
114
114
|
Ef=function(a){a=`${a}`.toLowerCase().trim();var b=Cf[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)?Df(a,b,c):null};
|
|
115
115
|
Df=function(a,b,c){b=a<<16|b<<8|c;return a<16?"#"+(16777216|b).toString(16).substr(1):"#"+b.toString(16)};Ff=function(a){a=Ef(a);if(!a)return[0,0,0];a=parseInt(a.substr(1),16);return[a>>16,a>>8&255,a&255]};
|
|
116
|
-
Gf=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),
|
|
116
|
+
Gf=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 Df(Math.floor(d),Math.floor(e),Math.floor(f))};
|
|
117
117
|
Hf=function(a,b,c){a=Ef(a);if(!a)return null;b=Ef(b);if(!b)return null;a=Ff(a);b=Ff(b);return Df(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])))};Kf=function(a){return Gf(a,If,Jf*255)};
|
|
118
|
-
Lf=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
|
|
119
|
-
3&&(
|
|
118
|
+
Lf=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===
|
|
119
|
+
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,Lf(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(""))&&
|
|
120
120
|
m.push(b);a.length=0;return m};Mf=function(a){return Lf(a,!0,!0)};Nf=function(a){if(typeof a!=="string")return a;a=Lf(a,!1,!1);return a.length?String(a[0]):""};Of=function(a){var b=typeof a==="string"?Nf(a):a,c=Number(b);if(!isNaN(c)&&0<=c&&c<=360)return{hue:c,hex:Gf(c,If,Jf*255)};if(c=Ef(b))return{hue:null,hex:c};c='Invalid colour: "'+b+'"';a!==b&&(c+=' (from "'+a+'")');throw Error(c);};Rf=function(){Pf&&(Pf(!1),Pf=null);Qf()};
|
|
121
121
|
Tf=function(){var a=Gb()||document.body,b=document.querySelector("div.blocklyWidgetDiv");b?Sf=b:(Sf=document.createElement("div"),Sf.id=Aa(),Sf.className="blocklyWidgetDiv",Sf.tabIndex=-1);n(Sf,"keydown",null,Qb);a.appendChild(Sf)};
|
|
122
122
|
$f=function(a,b,c,d,e=!0){Qf();Uf=a;Vf=c;if(c=Sf){Wf=d!=null?d:Ab;var f=Qa(Wf.getFocusableElement(),w.OWNS);u(Wf.getFocusableElement(),w.OWNS,f?[f,c.id]:c.id);Wf.getFocusableElement().classList.add("blocklyShowingWidgetDiv");var g;(g=Gb())==null||g.appendChild(c);c.style.direction=b?"rtl":"ltr";c.style.display="block";!d&&a instanceof Xf&&a.getSourceBlock();Yf=Wf.getRenderer().getClassName();Zf=Wf.getTheme().getClassName();Yf&&v(c,Yf);Zf&&v(c,Zf);e&&(Pf=$.A().takeEphemeralFocus(c));$.A().registerPopoverFocusLossHandler(Rf)}};
|
|
@@ -124,7 +124,7 @@ Qf=function(){if(Uf){Uf=null;var a=Sf;if(a){$.A().unregisterPopoverFocusLossHand
|
|
|
124
124
|
bg=function(a){for(var b=Wf===null,c=a;!b&&c;){if(c===a){b=!0;break}c=a.options.parentWorkspace}b&&Qf()};cg=function(a,b,c){if(Sf){var d=Sf.parentElement;d&&(d=d.getBoundingClientRect(),a-=d.left+window.scrollX,b-=d.top+window.scrollY);Sf.style.left=a+"px";Sf.style.top=b+"px";Sf.style.height=c+"px"}};
|
|
125
125
|
dg=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?cg(a,0,c.height+e):cg(a,e,c.height)};eg=function(){var a;(a=Uf)!=null&&a.repositionForWindowResize&&Uf.repositionForWindowResize()||Qf()};
|
|
126
126
|
mg=function(a,b,c,d,e){$f(fg,c,gg,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=hg(b,c,a,e);ig=f;jg(f,c,e);setTimeout(function(){f.focus()},1);kg=null}else lg()};
|
|
127
|
-
hg=function(a,b,c,d){var e=new ng;e.setRole($a.MENU);for(let f=0;f<a.length;f++){let g=a[f];if(g.separator){e.addChild(new og);continue}let
|
|
127
|
+
hg=function(a,b,c,d){var e=new ng;e.setRole($a.MENU);for(let f=0;f<a.length;f++){let g=a[f];if(g.separator){e.addChild(new og);continue}let h=new pg(qg(g));h.setRightToLeft(b);h.setRole($a.MENUITEM);e.addChild(h);h.setEnabled(g.enabled);if(g.enabled)h.onAction(function(m,z){lg();requestAnimationFrame(()=>{setTimeout(()=>{g.callback(g.scope,c,z,d)},0)})},{})}return e};
|
|
128
128
|
jg=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=Sf;if(!e)throw Error("Attempting to create a context menu when widget div is null");e=a.render(e);v(e,"blocklyContextMenu");n(e,"contextmenu",null,rg);a.focus();e=a.getSize();b&&(c.left+=e.width,c.right+=e.width,d.left+=e.width,d.right+=e.width);dg(d,c,e,b);a.focus()};rg=function(a){a.preventDefault();a.stopPropagation()};lg=function(){ag(fg);kg=null;var a;(a=ig)==null||a.dispose();ig=null};
|
|
129
129
|
gg=function(){ig&&(ig.dispose(),ig=null)};$.ug=function(a,b){return()=>{$.Ka++;try{var c=b instanceof Element?sg(b,a.workspace):be(b,a.workspace);let d=a.getRelativeToSurfaceXY();d.x=a.RTL?d.x-$.tg.snapRadius:d.x+$.tg.snapRadius;d.y+=$.tg.snapRadius*2;c.moveBy(d.x,d.y)}finally{$.Ka--}La()&&!c.isShadow()&&p(new (t(q.BLOCK_CREATE))(c));$.A().focusNode(c);return c}};
|
|
130
130
|
qg=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?pe(a.associatedKeyboardShortcut):"";b.textContent=` ${a}`;c.appendChild(d);c.appendChild(b);return c}return a.text};
|
|
@@ -133,24 +133,24 @@ zg=function(a,b=!1){var c=$.F("comment");b||c.setAttribute("id",a.id);b=a.worksp
|
|
|
133
133
|
c.setAttribute("deletable","false");return c};Ag=function(a){var b=$.F("variables");for(let c=0;c<a.length;c++){let d=a[c],e=$.F("variable");e.appendChild($.rc(d.getName()));d.getType()&&e.setAttribute("type",d.getType());e.id=d.getId();b.appendChild(e)}return b};
|
|
134
134
|
Dg=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=Bg(a,b);if(b.nodeType===Cg.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};
|
|
135
135
|
Bg=function(a,b){if(a.isInsertionMarker())return(b=a.getChildren(!1)[0])?Bg(b):new DocumentFragment;var c=$.F(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=$.F("field"),d.setAttribute("name",e.name||""),d=e.toXml(d)):d=null,d&&c.appendChild(d);if(e=a.getCommentText()){var f=a.getIcon(Eg.COMMENT);d=f.getBubbleSize();var g=
|
|
136
|
-
f.bubbleIsVisible();f=f.getBubbleLocation();var
|
|
137
|
-
(f=d.connection.targetBlock(),d.type===$.he.VALUE?m=$.F("value"):d.type===$.he.STATEMENT&&(m=$.F("statement")),
|
|
136
|
+
f.bubbleIsVisible();f=f.getBubbleLocation();var h=$.F("comment");h.appendChild($.rc(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=$.F("data"),e.appendChild($.rc(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!==$.he.DUMMY&&d.type!==$.he.END_ROW&&
|
|
137
|
+
(f=d.connection.targetBlock(),d.type===$.he.VALUE?m=$.F("value"):d.type===$.he.STATEMENT&&(m=$.F("statement")),h=d.connection.getShadowDom(),!h||f&&f.isShadow()||m.appendChild(Fg(h,b)),f&&(f=Bg(f,b),f.nodeType===Cg.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",
|
|
138
138
|
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=Bg(m,b),e.nodeType===Cg.ELEMENT_NODE)){var z=$.F("next");z.appendChild(e);c.appendChild(z)}a=a.nextConnection&&a.nextConnection.getShadowDom();!a||m&&m.isShadow()||z.appendChild(Fg(a,b));return c};
|
|
139
139
|
Fg=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===Cg.TEXT_NODE&&d.data.trim()===""&&((e=c)==null?void 0:e.firstChild)!==d&&db(d)}c&&(d=c,c=c.nextSibling,d.nodeType===Cg.TEXT_NODE&&d.data.trim()===""&&db(d))}return a};Zd=function(a){return wc(a).replace(/<(\w+)([^<]*)\/>/g,"<$1$2></$1>")};
|
|
140
|
-
$.Ig=function(a,b){var c=0;b.RTL&&(c=b.getWidth());var d=[];jb();var e=$.fd;e||$.r(!0);b.setResizesEnabled&&b.setResizesEnabled(!1);var f=!0;try{for(let g=0,
|
|
140
|
+
$.Ig=function(a,b){var c=0;b.RTL&&(c=b.getWidth());var d=[];jb();var e=$.fd;e||$.r(!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"&&!$.Pc){let E=sg(z,b);d.push(E.id);let G,X=parseInt((G=z.getAttribute("x"))!=null?G:"10",10),ia,ib=parseInt((ia=z.getAttribute("y"))!=null?ia:"10",10);isNaN(X)||isNaN(ib)||E.moveBy(b.RTL?c-X:X,ib,["create"]);f=!1}else{if(m==="shadow")throw TypeError("Shadow block cannot be a top-level block.");
|
|
141
141
|
if(m==="comment")Gg(z,b);else if(m==="variables"){if(f)Hg(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{$.r(e),b.setResizesEnabled&&b.setResizesEnabled(!0),b.rendered&&cd(),kb()}p(new (t(q.FINISHED_LOADING))(b));return d};
|
|
142
|
-
Gg=function(a,b){var c,d=(c=a.getAttribute("id"))!=null?c:void 0;c=b.rendered?new Jg(b,d):new Kg(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
|
|
142
|
+
Gg=function(a,b){var c,d=(c=a.getAttribute("id"))!=null?c:void 0;c=b.rendered?new Jg(b,d):new Kg(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")===
|
|
143
143
|
"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};$.Lg=function(a,b){a=sg(a,b);b.rendered&&cd();return a};
|
|
144
144
|
sg=function(a,b){$.Ka++;var c=b.getVariableMap().getAllVariables();try{var d=Mg(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{$.Ka--}if(La()){a=Wd(b,c);for(b=0;b<a.length;b++)c=a[b],p(new (t(q.VAR_CREATE))(c));
|
|
145
145
|
p(new (t(q.BLOCK_CREATE))(d))}return d};Hg=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)}};
|
|
146
|
-
Ng=function(a,b){for(let c=0;c<a.length;c++){let d=a[c],e=d.textContent,f=d.getAttribute("pinned")==="true",g,
|
|
147
|
-
(G+
|
|
148
|
-
Mg=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
|
|
149
|
-
break;case "next":g.push(ia);break;default:console.warn("Ignoring unknown tag: "+ia.nodeName)}}X=!1;for(ia=0;ia<
|
|
146
|
+
Ng=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,G=parseInt((E=d.getAttribute("x"))!=null?E:"",10),X,ia=parseInt((X=d.getAttribute("y"))!=null?X:"",10);b.setCommentText(e);let ib=b.getIcon(Eg.COMMENT);isNaN(h)||isNaN(z)||ib.setBubbleSize(new hc(h,z));ib.setBubbleVisible(f);setTimeout(()=>{isNaN(G)||isNaN(ia)||(G=b.workspace.RTL?b.workspace.getWidth()-
|
|
147
|
+
(G+h):G,ib.setBubbleLocation(new D(G,ia)));ib.setBubbleVisible(f)},1)}};Og=function(a){var b=null,c=null;for(let d=0;d<a.childNodes.length;d++){let e=a.childNodes[d];e.nodeType===Cg.ELEMENT_NODE&&(e.nodeName.toLowerCase()==="block"?b=e:e.nodeName.toLowerCase()==="shadow"&&(c=e))}return{childBlockElement:b,childShadowElement:c}};
|
|
148
|
+
Mg=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=[],G=[];g=[];for(var X=0;X<a.children.length;X++){var ia=a.children[X];if(ia.nodeType!==Cg.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":G.push(ia);
|
|
149
|
+
break;case "next":g.push(ia);break;default:console.warn("Ignoring unknown tag: "+ia.nodeName)}}X=!1;for(ia=0;ia<h.length;ia++){let Ti=h[ia];e.domToMutation&&(e.domToMutation(Ti),e.initSvg&&(X=!0))}h=X;Ng(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);
|
|
150
150
|
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,(X=d.getField(z))?X.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<G.length;c++){E=G[c];d=(m=E.getAttribute("name"))?e.getInput(m):null;if(!d){console.warn("Ignoring non-existent input "+m+" in block "+f);break}E=Og(E);if(E.childBlockElement){if(!d.connection)throw TypeError("Input connection does not exist.");
|
|
151
|
-
Mg(E.childBlockElement,b,d.connection,!1)}if(E.childShadowElement){var ib=void 0;(ib=d.connection)==null||ib.setShadowDom(E.childShadowElement)}}f=g;for(ib=0;ib<f.length;ib++){g=Og(f[ib]);if(g.childBlockElement){if(!e.nextConnection)throw TypeError("Next statement does not exist.");if(e.nextConnection.isConnected())throw TypeError("Next statement is already connected.");Mg(g.childBlockElement,b,e.nextConnection,!0)}g.childShadowElement&&e.nextConnection&&e.nextConnection.setShadowDom(g.childShadowElement)}
|
|
151
|
+
Mg(E.childBlockElement,b,d.connection,!1)}if(E.childShadowElement){var ib=void 0;(ib=d.connection)==null||ib.setShadowDom(E.childShadowElement)}}f=g;for(ib=0;ib<f.length;ib++){g=Og(f[ib]);if(g.childBlockElement){if(!e.nextConnection)throw TypeError("Next statement does not exist.");if(e.nextConnection.isConnected())throw TypeError("Next statement is already connected.");Mg(g.childBlockElement,b,e.nextConnection,!0)}g.childShadowElement&&e.nextConnection&&e.nextConnection.setShadowDom(g.childShadowElement)}h&&
|
|
152
152
|
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"))&&
|
|
153
|
-
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};Pg=function(a,b){l(
|
|
153
|
+
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};Pg=function(a,b){l(k.FIELD,a,b,!0)};$.Rg=function(a){return Qg.fromJsonInternal(a)};Sg=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"};
|
|
154
154
|
$.Ug=function(a,b){if(typeof a!=="string"||a.trim()==="")throw Error('Error: Invalid extension name "'+a+'"');if(Tg[a])throw Error('Error: Extension "'+a+'" is already registered.');if(typeof b!=="function")throw Error('Error: Extension "'+a+'" must be a function');Tg[a]=b};$.Vg=function(a,b){if(!b||typeof b!=="object")throw Error('Error: Mixin "'+a+'" must be a object');$.Ug(a,function(){this.mixin(b)})};
|
|
155
155
|
$.Zg=function(a,b,c,d){var e='Error when registering mutator "'+a+'": ';Wg(e,b);var f=Xg(b.compose,b.decompose,e+" compose/decompose");if(c&&typeof c!=="function")throw Error(e+'Extension "'+a+'" is not a function');$.Ug(a,function(){f&&this.setMutator(new $.Yg(d||[],this));this.mixin(b);c&&c.apply(this)})};$g=function(a){return!!Tg[a]};
|
|
156
156
|
bh=function(a,b,c){var d=Tg[a];if(typeof d!=="function")throw Error('Error: Extension "'+a+'" not found.');if(c){if(ah(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=ah(b);d.apply(b);if(c)Wg('Error after applying mutator "'+a+'": ',b);else{a:if(c=e,b=ah(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.');
|
|
@@ -161,10 +161,11 @@ hh=function(a,b){return" M "+a+","+b+" "};ih=function(a,b){return" m "+a+","+b+"
|
|
|
161
161
|
nh=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"};
|
|
162
162
|
oh=function(a){return typeof a.getName==="function"&&typeof a.getContents==="function"&&typeof a.setSelected==="function"&&typeof a.onClick==="function"&&nh(a)&&a.isSelectable()};
|
|
163
163
|
vh=function(a,b=ph.STANDARD){if(a.isSimpleReporter()){let c=a.getFullBlockField();if(c)return c.computeAriaLabel(b>=ph.STANDARD)}return[b>=ph.STANDARD&&qh(a),rh(a),...sh(a,b),b===ph.LOQUACIOUS&&th(a),b>=ph.STANDARD&&(a.isEnabled()?void 0:$.C.BLOCK_LABEL_DISABLED),b>=ph.STANDARD&&(a.isCollapsed()?$.C.BLOCK_LABEL_COLLAPSED:void 0),b>=ph.LOQUACIOUS&&(a.isShadow()?$.C.BLOCK_LABEL_REPLACEABLE:void 0),b>=ph.STANDARD&&uh(a),b>=ph.LOQUACIOUS&&a.getAriaRoleDescription()].filter(c=>!!c).join(", ")};
|
|
164
|
-
xh=function(a,b,c=ph.STANDARD){var d=c>=ph.LOQUACIOUS,e=[],f=a.fieldRow.filter(
|
|
164
|
+
xh=function(a,b,c=ph.STANDARD){var d=c>=ph.LOQUACIOUS,e=[],f=a.fieldRow.filter(h=>h.isVisible()).flatMap((h,m,z)=>{if(h instanceof wh){if(m<z.length-1&&z[m+1]instanceof wh)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 xh(h[m-1],b,c)}var g;a.type===$.he.VALUE&&((g=a.connection)==null?void 0:g.targetConnection)===null&&c>=
|
|
165
|
+
ph.STANDARD&&f.push($.C.INPUT_LABEL_EMPTY);return f.filter(h=>!!h)};
|
|
165
166
|
rh=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===$.he.STATEMENT);if(e===b)return;a=yh(a,e,!1);if(!a.length)return;a=a.join(", ")}return e.type===$.he.STATEMENT?(e=Array.isArray(a)?a.join(" "):a,$.C.BLOCK_LABEL_BEGIN_PREFIX.replace("%1",e)):a}};
|
|
166
167
|
qh=function(a){if(!a.isInFlyout&&!a.isDragging())return a.getRootBlock()===a?$.C.BLOCK_LABEL_BEGIN_STACK:void 0};sh=function(a,b=ph.STANDARD){var c=a=a.inputList.filter(d=>d.isVisible());if(b<=ph.STANDARD){let d=a.filter(e=>e.type===$.he.STATEMENT);d.length>1&&(c=a.slice(0,a.indexOf(d[0])+1))}return c.map(d=>d.getLabel(b))};
|
|
167
|
-
yh=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===$.he.STATEMENT,f=e?zh(a.inputList,d):d,g=a.inputList.slice(f,d+1).filter(z=>z.isVisible()),
|
|
168
|
+
yh=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===$.he.STATEMENT,f=e?zh(a.inputList,d):d,g=a.inputList.slice(f,d+1).filter(z=>z.isVisible()),h=g.map(z=>z.getLabel(ph.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===$.he.DUMMY||z.type===$.he.END_ROW||e&&E===h.length-1&&m))return $.C.INPUT_LABEL_INDEX.replace("%1",(z.getIndex()+1).toString())}).filter(z=>
|
|
168
169
|
z!==void 0)};zh=function(a,b){for(--b;b>=0;b--)if(a[b].type===$.he.STATEMENT)return b+1;return 0};th=function(a){var b=a.workspace.getToolbox();if(b){var c=void 0;for(let d of b.getToolboxItems()){if(!oh(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())}};
|
|
169
170
|
Bh=function(a){switch(a){case Ah.BEFORE:return $.C.ANNOUNCE_MOVE_BEFORE;case Ah.AFTER:return $.C.ANNOUNCE_MOVE_AFTER;case Ah.INSIDE:return $.C.ANNOUNCE_MOVE_INSIDE;case Ah.AROUND:return $.C.ANNOUNCE_MOVE_AROUND;default:return $.C.ANNOUNCE_MOVE_TO}};Ch=function(a,b){var c=a.getParentInput();if(!c)return b;var d=c.getAriaLabelText();if(!d){a=yh(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};
|
|
170
171
|
Eh=function(a,b,c,d=!1){var e=Dh(a,b),f=Bh(e),g=![Ah.BEFORE,Ah.AFTER].includes(e);e=g&&c(!0);c=g&&c(!1);d=d?a.getSourceBlock().getStackBlocksCountLabel():"";g=b.getSourceBlock().getAriaLabel(ph.TERSE);e&&(d=Ch(a,d));c&&(g=Ch(b,g));return f.replace("%1",d).replace("%2",g)};
|
|
@@ -176,11 +177,11 @@ Gh=function(a,b,c,d){var e=((new Date).getTime()-d.getTime())/150;e>1?db(a):(a.s
|
|
|
176
177
|
Ih=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=y(x.CIRCLE,{cx:d.x,cy:d.y,r:0,fill:"none",stroke:"#888","stroke-width":10},b.getParentSvg());a=y(x.ANIMATE,{id:"animationCircle",begin:"indefinite",attributeName:"r",dur:"150ms",from:0,to:25*c},e);b=y(x.ANIMATE,{id:"animationOpacity",begin:"indefinite",attributeName:"opacity",
|
|
177
178
|
dur:"150ms",from:1,to:0},e);a.beginElement();b.beginElement();setTimeout(()=>void db(e),150)}};Mh=function(a){Jh();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);Kh=a;Lh(a,b,new Date,0)}};
|
|
178
179
|
Lh=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)})`,Nh=setTimeout(Lh,15,a,b,c,d+1));a.getSvgRoot().setAttribute("transform",`${a.getTranslation()} ${f}`)};Jh=function(){Kh&&(Nh&&(clearTimeout(Nh),Nh=null),Kh.getSvgRoot().setAttribute("transform",Kh.getTranslation()),Kh=null)};
|
|
179
|
-
Qh=function(a,b){a.workspace.RTL&&(b.x=a.workspace.getWidth()-b.x);for(var c=a.workspace,d=$.tg.snapRadius,e=D.difference(b,a.getRelativeToSurfaceXY()),f=new D(0,0),g=c.getAllBlocks(!1).filter(
|
|
180
|
+
Qh=function(a,b){a.workspace.RTL&&(b.x=a.workspace.getWidth()-b.x);for(var c=a.workspace,d=$.tg.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());Oh(D.sum(b,f),g)||Ph(a,D.sum(e,f),d);)c.RTL?f.translate(-d,d*2):f.translate(d,d*2);a.moveTo(D.sum(b,f))};Oh=function(a,b){return b.some(c=>Math.abs(c.x-a.x)<=1&&Math.abs(c.y-a.y)<=1)};Ph=function(a,b,c){return a.getConnections_(!1).some(d=>!!d.closest(c,b).connection)};
|
|
180
181
|
Rh=function(a,b,c){var d=c.getBoundingRectangle(),e=d.right-d.left,f=te(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=te(g,d.left,b)-d.left)||f?(c.moveBy(a,f,["inbounds"]),!0):!1};
|
|
181
182
|
Uh=function(a){return b=>{var c=a.getMetricsManager();if(c.hasFixedEdges()&&!a.isDragging()){var d;if(Sh.includes((d=b.type)!=null?d:"")){c=c.getScrollMetrics(!0);d=null;switch(b.type){case q.BLOCK_CREATE:case q.BLOCK_MOVE:(d=a.getBlockById(b.blockId))&&(d=d.getRootBlock());break;case q.COMMENT_CREATE:case q.COMMENT_MOVE:case q.COMMENT_RESIZE:d=a.getCommentById(b.commentId)}if(d){var e=$.fd||!1;$.r(b.group);Rh(a,c,d)&&!b.group&&console.warn("Moved object in bounds but there was no event group. This may break undo.");
|
|
182
183
|
$.r(e)}}else b.type===q.VIEWPORT_CHANGE&&b.scale&&b.oldScale&&b.scale>b.oldScale&&Th(a)}}};Th=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++)Rh(a,b,e)}};Zh=function(a,b){var c=a.toCopyData();Vh=c;Wh=sb(a)&&a.workspace instanceof Xh?a.workspace:null;Yh=b;return c};ai=function(a,b,c){return a&&b?$h(a,b,c):Vh&&Wh?$h(Vh,Wh,Yh):null};
|
|
183
|
-
$h=function(a,b,c){var d;b=b.isMutator?b:(d=b.options.parentWorkspace)!=null?d:b;var e,f;return(f=(e=da(
|
|
184
|
+
$h=function(a,b,c){var d;b=b.isMutator?b:(d=b.options.parentWorkspace)!=null?d:b;var e,f;return(f=(e=da(k.PASTER,a.paster,!1))==null?void 0:e.paste(a,b,c))!=null?f:null};bi=function(a){return a&&typeof a.toCopyData==="function"};ci=function(a){return a&&typeof a.isDeletable==="function"&&typeof a.dispose==="function"&&typeof a.setDeleteStyle==="function"};
|
|
184
185
|
di=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"};fi=function(){B.registry.register({name:ei.ESCAPE,preconditionFn(a){return!a.isReadOnly()},callback(a){a.hideChaff();return!0},keyCodes:[L.ESC],displayText:()=>$.C.SHORTCUTS_ESCAPE})};
|
|
185
186
|
hi=function(){B.registry.register({name:ei.DELETE,preconditionFn(a,b){b=b.focusedNode;(b=!a.isReadOnly()&&b!=null&&ci(b)&&b.isDeletable()&&!a.isDragging()&&!$.A().ephemeralFocusTaken())||a.getAudioManager().playErrorBeep();return b},callback(a,b,c,d){b.preventDefault();b=d.focusedNode;b instanceof gi?b.checkAndDelete():ci(b)&&b.isDeletable()&&($.r(!0),b.dispose(),$.r(!1),a.getAudioManager().play("delete"));return!0},keyCodes:[L.DELETE,L.BACKSPACE],displayText:()=>$.C.SHORTCUTS_DELETE})};
|
|
186
187
|
ii=function(a){return bi(a)&&ci(a)&&di(a)?a.isCopyable?a.isCopyable():a instanceof gi||a instanceof Jg?a.isOwnDeletable()&&a.isOwnMovable():a.isDeletable()&&a.isMovable():!1};
|
|
@@ -189,7 +190,7 @@ void 0;(d=!!Zh(d,e))&&c instanceof KeyboardEvent&&ji.show(b,{message:$.C.KEYBOAR
|
|
|
189
190
|
li=function(){var a=B.registry.createSerializedKey(L.X,[L.CTRL_CMD]);B.registry.register({name:ei.CUT,preconditionFn(b,c){c=c.focusedNode;(c=!!c&&!b.isReadOnly()&&!b.isDragging()&&!$.A().ephemeralFocusTaken()&&ii(c)&&ci(c)&&c.isDeletable())||b.getAudioManager().playErrorBeep();return c},callback(b,c,d,e){d=e.focusedNode;if(!(d&&ii(d)&&ci(d)&&d.isDeletable()&&bi(d)))return!1;e=di(d)?d.getRelativeToSurfaceXY():void 0;e=Zh(d,e);d instanceof gi?(d.checkAndDelete(),c.preventDefault()):ci(d)&&($.r(!0),
|
|
190
191
|
d.dispose(),$.r(!1),b.getAudioManager().play("delete"),c.preventDefault());e&&c instanceof KeyboardEvent&&ji.show(b,{message:$.C.KEYBOARD_NAV_CUT_HINT.replace("%1",pe(ei.PASTE)),duration:7,id:"cutHint"});return!!e},keyCodes:[a],displayText:()=>$.C.CUT_SHORTCUT})};
|
|
191
192
|
mi=function(){var a=B.registry.createSerializedKey(L.V,[L.CTRL_CMD]);B.registry.register({name:ei.PASTE,preconditionFn(){var b=Wh;if(!b||!b.rendered)return!1;var c=b.isFlyout?b.targetWorkspace:b;(c=!!Vh&&!!c&&!c.isReadOnly()&&!c.isDragging()&&!$.A().ephemeralFocusTaken())||b.getAudioManager().playErrorBeep();return c},callback(b,c){var d=Vh;if(!d)return!1;var e=Wh;if(!e)return!1;ji.hide(b,"cutHint");ji.hide(b,"copiedHint");b=e.isFlyout?e.targetWorkspace:e;if(!b||b.isReadOnly())return!1;if(c instanceof
|
|
192
|
-
PointerEvent)return c=oc(b,new D(c.clientX,c.clientY)),!!ai(d,b,c);c=Yh;if(!c)return!!ai(d,b);var {left:f,top:g,width:
|
|
193
|
+
PointerEvent)return c=oc(b,new D(c.clientX,c.clientY)),!!ai(d,b,c);c=Yh;if(!c)return!!ai(d,b);var {left:f,top:g,width:h,height:m}=b.getMetricsManager().getViewMetrics(!0);if((new cc(g,g+m,f,f+h)).contains(c.x,c.y))return!!ai(d,b);c=new D(f+h/2,g+m/2);return!!ai(d,b,c)},keyCodes:[a],displayText:()=>$.C.PASTE_SHORTCUT})};
|
|
193
194
|
ni=function(){var a=B.registry.createSerializedKey(L.Z,[L.CTRL_CMD]);B.registry.register({name:ei.UNDO,preconditionFn(b){return!b.isReadOnly()&&!b.isDragging()&&!$.A().ephemeralFocusTaken()},callback(b,c){b.hideChaff();b.undo();c.preventDefault();return!0},keyCodes:[a],displayText:()=>$.C.UNDO})};
|
|
194
195
|
oi=function(){var a=B.registry.createSerializedKey(L.Z,[L.CTRL_CMD,L.SHIFT]),b=B.registry.createSerializedKey(L.Y,[L.CTRL]);B.registry.register({name:ei.REDO,preconditionFn(c){return!c.isDragging()&&!c.isReadOnly()&&!$.A().ephemeralFocusTaken()},callback(c,d){c.hideChaff();c.redo();d.preventDefault();return!0},keyCodes:[a,b],displayText:()=>$.C.REDO})};
|
|
195
196
|
ri=function(){var a=d=>{var e=$.A().getFocusedNode();if(di(e))return e;var f;return(f=d.getNavigator().getSourceBlockFromNode($.A().getFocusedNode()))!=null?f:void 0},b=B.registry.createSerializedKey(L.M,[L.SHIFT]),c={name:ei.START_MOVE,preconditionFn:d=>{d=a(d);return!!d&&pi.mover.canMove(d)},callback:(d,e)=>{Md.setIsActive(!0);(d=a(d))&&$.A().focusNode(d);return!!d&&pi.mover.startMove(d,e)},keyCodes:[L.M],displayText:()=>$.C.SHORTCUTS_START_MOVE};b=[c,Object.assign({},c,{name:ei.START_MOVE_STACK,
|
|
@@ -209,8 +210,8 @@ vh(b,ph.TERSE)));Za($.C.PARENT_BLOCKS_ANNOUNCEMENT.replace("%1",c.join(",")))}el
|
|
|
209
210
|
zi=function(){var a=B.registry.createSerializedKey(L.X,[L.SHIFT]);B.registry.register({name:ei.DISCONNECT,preconditionFn:(b,c)=>{c=c.focusedNode;(c=!b.isDragging()&&!b.isReadOnly()&&c instanceof gi&&!c.isShadow())||b.getAudioManager().playErrorBeep();return c},callback:(b,c)=>{Md.setIsActive(!0);b=$.A().getFocusedNode();if(!(b instanceof gi))return!1;c=!(c instanceof KeyboardEvent&&c.shiftKey);$.r(!0);b.unplug(c);$.r(!1);return!0},keyCodes:[L.X,a],displayText:()=>$.C.SHORTCUTS_DISCONNECT})};
|
|
210
211
|
Ai=function(){var a=(c,d=$.A().getFocusedNode())=>{var e=c.getNavigator();for(let f=d;f&&f!==c;f=e.getParent(f))d=f;return sb(d)?d:null},b={name:ei.PREVIOUS_STACK,preconditionFn:c=>!c.isDragging()&&!!a(c)&&!Le&&!Uf,callback:c=>{Md.setIsActive(!0);var d=a(c);if(!d)return!1;c=a(c,c.getNavigator().navigateStacks(d,-1));if(!c)return!1;$.A().focusNode(c);return!0},keyCodes:[L.B],displayText:()=>$.C.SHORTCUTS_PREVIOUS_STACK};B.registry.register({name:ei.NEXT_STACK,preconditionFn:c=>!c.isDragging()&&!!a(c)&&
|
|
211
212
|
!Le&&!Uf,callback:c=>{Md.setIsActive(!0);var d=a(c);if(!d)return!1;c=c.getNavigator().navigateStacks(d,1);if(!c)return!1;$.A().focusNode(c);return!0},keyCodes:[L.N],displayText:()=>$.C.SHORTCUTS_NEXT_STACK});B.registry.register(b)};
|
|
212
|
-
Ci=function(){var a=()=>{var e=$.A().getFocusedTree();if(e instanceof Xh&&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,
|
|
213
|
-
0||
|
|
213
|
+
Ci=function(){var a=()=>{var e=$.A().getFocusedTree();if(e instanceof Xh&&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=$.A().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<
|
|
214
|
+
0||h>=g.length)break;h=g[h];if(h instanceof Bi&&h.isLabel())return h}return null},d=B.registry.createSerializedKey(L.H,[L.SHIFT]);d={name:ei.PREVIOUS_HEADING,preconditionFn:e=>!e.isDragging()&&!Le&&!Uf&&!!a(),callback:()=>{var e=a();if(!e)return!1;e=c(e,-1);if(!e)return!1;Md.setIsActive(!0);$.A().focusNode(e);return!0},keyCodes:[d],displayText:()=>$.C.SHORTCUTS_PREVIOUS_HEADING};B.registry.register({name:ei.NEXT_HEADING,preconditionFn:e=>!e.isDragging()&&!Le&&!Uf&&!!a(),callback:()=>{var e=a();if(!e)return!1;
|
|
214
215
|
e=c(e,1);if(!e)return!1;Md.setIsActive(!0);$.A().focusNode(e);return!0},keyCodes:[L.H],displayText:()=>$.C.SHORTCUTS_NEXT_HEADING});B.registry.register(d)};
|
|
215
216
|
Di=function(){B.registry.register({name:ei.PERFORM_ACTION,preconditionFn:a=>!a.isDragging()&&!Le&&!Uf&&!$.A().ephemeralFocusTaken(),callback:(a,b)=>{Md.setIsActive(!0);if((a=$.A().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})};
|
|
216
217
|
Ei=function(){B.registry.register({name:ei.DUPLICATE,preconditionFn:(a,b)=>{({focusedNode:b}=b);(b=!a.isDragging()&&!a.isReadOnly()&&!a.isFlyout&&(b instanceof gi?b.isDuplicatable():!0))||a.getAudioManager().playErrorBeep();return b},callback:(a,b,c,d)=>{Md.setIsActive(!0);b=bi(d.focusedNode)&&d.focusedNode;return b?(b=b.toCopyData())?!!ai(b,a):!1:!1},keyCodes:[L.D],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_DUPLICATE})};
|
|
@@ -220,7 +221,7 @@ Hi=function(){var a=B.registry.createSerializedKey(L.Z,[L.CTRL_CMD,L.ALT]),b=!1;
|
|
|
220
221
|
pe(ei.TOGGLE_SCREENREADER)),duration:7,id:"screenreaderHint"});d.preventDefault();return!0},keyCodes:[a],allowCollision:!0,displayText:()=>$.C.SHORTCUTS_TOGGLE_SCREENREADER_MODE})};Ii=function(){fi();hi();ki();li();mi();ni();oi()};Ji=function(){si();ri();vi();wi();ti();zi();Ai();Ci();Di();Ei();Fi();Gi()};Ki=function(){xi();yi();Hi()};
|
|
221
222
|
Ni=function(a,b=!1){var c=$.C.KEYBOARD_NAV_UNCONSTRAINED_MOVE_HINT.replace("%1",va||Li||Mi?$.C.COMMAND_KEY:$.C.CONTROL_KEY).replace("%2",$.C.ENTER_KEY);ji.show(a,{message:c,id:"unconstrainedMoveHint",oncePerSession:!b})};Oi=function(a){var b=$.C.KEYBOARD_NAV_CONSTRAINED_MOVE_HINT.replace("%1",$.C.ENTER_KEY);ji.show(a,{message:b,id:"constrainedMoveHint",oncePerSession:!0})};
|
|
222
223
|
Pi=function(a){var b=[];for(var c of a.getIcons()){if(a.isCollapsed()&&!c.isShownWhenCollapsed())continue;b.push(c);let d;wd(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};
|
|
223
|
-
Qi=function(a,b,c){a=Pi(a);b=a.indexOf(b);if(b===-1)return null;c=b+c;return c>=0&&c<a.length?a[c]:null};Ri=function(a){return a&&typeof a.getChildToolboxItems==="function"&&typeof a.isExpanded==="function"&&typeof a.toggleExpanded==="function"&&oh(a)&&a.isCollapsible()};Si=function(a){var b=a.options.toolboxPosition;return a.options.RTL&&b!==H.TOP&&b!==H.BOTTOM?b===H.LEFT?H.RIGHT:H.LEFT:b};Ui=function(a,b){l(
|
|
224
|
+
Qi=function(a,b,c){a=Pi(a);b=a.indexOf(b);if(b===-1)return null;c=b+c;return c>=0&&c<a.length?a[c]:null};Ri=function(a){return a&&typeof a.getChildToolboxItems==="function"&&typeof a.isExpanded==="function"&&typeof a.toggleExpanded==="function"&&oh(a)&&a.isCollapsible()};Si=function(a){var b=a.options.toolboxPosition;return a.options.RTL&&b!==H.TOP&&b!==H.BOTTOM?b===H.LEFT?H.RIGHT:H.LEFT:b};Ui=function(a,b){l(k.ICON,a.toString(),b)};
|
|
224
225
|
Vi=function(a){return typeof a.getProcedureModel==="function"&&typeof a.doProcedureUpdate==="function"&&typeof a.isProcedureDef==="function"};Wi=function(a){return a&&typeof a.startPublishing==="function"&&typeof a.stopPublishing==="function"};
|
|
225
226
|
Yi=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=>{!Vi(d)&&yd(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=>{!Vi(d)&&yd(d)&&c.push(d.getProcedureDef())});b.sort(Xi);
|
|
226
227
|
c.sort(Xi);return[b,c]};Xi=function(a,b){return a[0].localeCompare(b[0],void 0,{sensitivity:"base"})};$.$i=function(a,b){if(b.isInFlyout)return a;for(a=a||$.C.UNNAMED_KEY||"unnamed";Zi(a,b.workspace,b);){let c=a.match(/^(.*?)(\d+)$/);a=c?c[1]+(parseInt(c[2])+1):a+"2"}return a};
|
|
@@ -231,7 +232,7 @@ dj=function(a){function b(d,e){for(let [f,g]of d)c.push({kind:"block",type:e,gap
|
|
|
231
232
|
gj=function(a){if(a.type===q.BUBBLE_OPEN&&a.bubbleType==="mutator"&&a.isOpen&&a.blockId){a=Ga(a.workspaceId).getBlockById(a.blockId);var b=a.type;if(b==="procedures_defnoreturn"||b==="procedures_defreturn")a=a.getIcon($.Yg.TYPE).getWorkspace(),ej(a),a.addChangeListener(fj)}};fj=function(a){if(a.type===q.BLOCK_CREATE||a.type===q.BLOCK_DELETE||a.type===q.BLOCK_CHANGE||a.type===q.BLOCK_FIELD_INTERMEDIATE_CHANGE)a=Ga(a.workspaceId),ej(a)};
|
|
232
233
|
hj=function(a,b){return b.getAllBlocks(!1).filter(c=>Vi(c)&&!c.isProcedureDef()&&c.getProcedureModel()&&$.aj.equals(c.getProcedureModel().getName(),a)||c&&typeof c.getProcedureCall==="function"&&typeof c.renameProcedure==="function"&&$.aj.equals(c.getProcedureCall(),a))};
|
|
233
234
|
$.ij=function(a){var b=$.Pc,c=a.getProcedureDef()[0],d=a.mutationToDom(!0);a=hj(c,a.workspace);for(let f=0,g;g=a[f];f++){c=(c=g.mutationToDom())&&wc(c);g.domToMutation&&g.domToMutation(d);var e=g.mutationToDom();e=e&&wc(e);c!==e&&($.Pc=!1,p(new (t(q.BLOCK_CHANGE))(g,"mutation",null,c,e)),$.Pc=b)}};$.jj=function(a,b){for(let c of b.getAllBlocks(!1))if(Vi(c)&&c.isProcedureDef()&&$.aj.equals(c.getProcedureModel().getName(),a)||yd(c)&&$.aj.equals(c.getProcedureDef()[0],a))return c;return null};
|
|
234
|
-
kj=function(a,b){l(
|
|
235
|
+
kj=function(a,b){l(k.RENDERER,a,b)};lj=function(a,b,c){a=new (da(k.RENDERER,a,void 0))(a);a.init(b,c);return a};mj=function(a){Cd(a.getTargetWorkspace(),void 0,"String")};nj=function(a){Cd(a.getTargetWorkspace(),void 0,"Number")};oj=function(a){Cd(a.getTargetWorkspace(),void 0,"Colour")};
|
|
235
236
|
pj=function(a){Ob.variables_set_dynamic||Ob.variables_get_dynamic||console.warn("There are no dynamic variable blocks, but there is a dynamic variable category.");a.registerButtonCallback("CREATE_VARIABLE_STRING",mj);a.registerButtonCallback("CREATE_VARIABLE_NUMBER",nj);a.registerButtonCallback("CREATE_VARIABLE_COLOUR",oj);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",
|
|
236
237
|
text:$.C.NEW_COLOUR_VARIABLE,callbackkey:"CREATE_VARIABLE_COLOUR"},...Dd(a,a.getVariableMap().getAllVariables(),!1,"variables_get_dynamic","variables_set_dynamic")]};qj=function(a){var b=a.saveState();if(!a.getParameters().length)return b;b.parameters=a.getParameters().map(c=>c.saveState());return b};rj=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};
|
|
237
238
|
tj=function(a,b){a.setAttribute("dir","LTR");Wb(a,b.hasCss,b.pathToMedia);var c=y(x.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=y(x.DEFS,{},c),e=String(Math.random()).substring(2);b.gridPattern=sj.createDom(e,b.gridOptions,d,a);return c};
|
|
@@ -293,9 +294,9 @@ M.checkIsSetLike=function(a){if(typeof a!=="object"||a===null||typeof a.size!=="
|
|
|
293
294
|
M.getSmallerAndLargerSets=function(a,b){return a.size<=b.size?{smallerSetIterator:a.keys(),largerSet:b}:{smallerSetIterator:M.checkIsValidIterator(b.keys()),largerSet:a}};M.checkIsSetInstance=function(a){if(!(a instanceof Set))throw new TypeError("Method must be called on an instance of Set.");};
|
|
294
295
|
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");
|
|
295
296
|
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");
|
|
296
|
-
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");var aa=Object.create(null),ak={typeMap:aa},ba=Object.create(null),
|
|
297
|
-
|
|
298
|
-
bk.Type=
|
|
297
|
+
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");var aa=Object.create(null),ak={typeMap:aa},ba=Object.create(null),k=class{constructor(a){this.name=a}toString(){return this.name}};k.CONNECTION_CHECKER=new k("connectionChecker");k.CONNECTION_PREVIEWER=new k("connectionPreviewer");k.EVENT=new k("event");k.FIELD=new k("field");k.INPUT=new k("input");k.RENDERER=new k("renderer");k.TOOLBOX=new k("toolbox");
|
|
298
|
+
k.THEME=new k("theme");k.TOOLBOX_ITEM=new k("toolboxItem");k.FLYOUTS_VERTICAL_TOOLBOX=new k("flyoutsVerticalToolbox");k.FLYOUTS_HORIZONTAL_TOOLBOX=new k("flyoutsHorizontalToolbox");k.FLYOUT_INFLATER=new k("flyoutInflater");k.METRICS_MANAGER=new k("metricsManager");k.BLOCK_DRAGGER=new k("blockDragger");k.SERIALIZER=new k("serializer");k.ICON=new k("icon");k.PASTER=new k("paster");k.VARIABLE_MODEL=new k("variableModel");k.VARIABLE_MAP=new k("variableMap");var bk={DEFAULT:"default",TEST_ONLY:ak};
|
|
299
|
+
bk.Type=k;bk.getAllItems=ha;bk.getClass=fa;bk.getClassFromOptions=ja;bk.getObject=function(a,b,c){return da(a,b,c)};bk.hasItem=ea;bk.register=l;bk.unregister=ca;var Ob=Object.create(null);var ck="ontouchstart"in globalThis||!!(globalThis.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!globalThis.navigator||!globalThis.navigator.maxTouchPoints&&!globalThis.navigator.msMaxTouchPoints),qa=null,ra={mousedown:["pointerdown"],mouseenter:["pointerenter"],mouseleave:["pointerleave"],mousemove:["pointermove"],mouseout:["pointerout"],mouseover:["pointerover"],mouseup:["pointerup","pointercancel"],touchend:["pointerup"],touchcancel:["pointercancel"]},la=0,dk=
|
|
299
300
|
{TOUCH_ENABLED:ck,TOUCH_MAP:ra};dk.checkTouchIdentifier=na;dk.clearTouchIdentifier=function(){qa=null};dk.getTouchIdentifierFromEvent=pa;dk.longStart=ma;dk.longStop=ka;dk.shouldHandleEvent=oa;var ek,fk,gk,hk,ik,jk,kk,lk,mk,nk;(function(a){function b(d){return c.includes(d.toUpperCase())}ek=a;var c=ek.toUpperCase();fk=b("JavaFX");gk=b("WebKit");hk=b("Gecko")&&!gk;ik=b("Android");a=globalThis.navigator&&globalThis.navigator.maxTouchPoints;jk=b("iPad")||b("Macintosh")&&a>0;kk=b("iPhone")&&!jk;lk=b("Macintosh");mk=jk||ik&&!b("Mobile")||b("Silk");nk=!mk&&(kk||ik)})(globalThis.navigator&&globalThis.navigator.userAgent||"");
|
|
300
301
|
var Wc=fk,ok=hk,pk=ik,Li=jk,Mi=kk,va=lk,qk=nk,oe=va||Li||Mi,rk={ANDROID:pk,APPLE:oe,GECKO:ok,IPAD:Li,IPHONE:Mi,JavaFx:Wc,MAC:va,MOBILE:qk,raw:ek};var sk={};sk.bind=sa;sk.conditionalBind=n;sk.getScrollDeltaPixels=ya;sk.isRightButton=wa;sk.isTargetInput=ua;sk.mouseToSvg=xa;sk.unbind=ta;var q,tk=q||(q={});tk.BLOCK_CREATE="create";tk.BLOCK_DELETE="delete";tk.BLOCK_CHANGE="change";tk.BLOCK_FIELD_INTERMEDIATE_CHANGE="block_field_intermediate_change";tk.BLOCK_MOVE="move";tk.VAR_CREATE="var_create";tk.VAR_DELETE="var_delete";tk.VAR_RENAME="var_rename";tk.VAR_TYPE_CHANGE="var_type_change";tk.UI="ui";tk.BLOCK_DRAG="drag";tk.SELECTED="selected";tk.CLICK="click";tk.MARKER_MOVE="marker_move";tk.BUBBLE_OPEN="bubble_open";tk.TRASHCAN_OPEN="trashcan_open";tk.TOOLBOX_ITEM_SELECT="toolbox_item_select";
|
|
301
302
|
tk.THEME_CHANGE="theme_change";tk.VIEWPORT_CHANGE="viewport_change";tk.COMMENT_CREATE="comment_create";tk.COMMENT_DELETE="comment_delete";tk.COMMENT_CHANGE="comment_change";tk.COMMENT_MOVE="comment_move";tk.COMMENT_RESIZE="comment_resize";tk.COMMENT_DRAG="comment_drag";tk.COMMENT_COLLAPSE="comment_collapse";tk.FINISHED_LOADING="finished_loading";var Sh=[q.BLOCK_CREATE,q.BLOCK_MOVE,q.COMMENT_CREATE,q.COMMENT_MOVE];var Ba={genUid:()=>{var a=[];for(let b=0;b<20;b++)a[b]="!#$%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.random()*88);return a.join("")}},za=0,uk={TEST_ONLY:Ba};uk.genUid=Ca;uk.getNextUniqueId=Aa;var Fa,Da;$.fd="";$.Pc=!0;$.Ka=0;Fa=[];Da={FIRE_QUEUE:Fa,enqueueEvent:Ia,fireNow:Ha,fireInternal:function(a){if(La()){if(!Fa.length)try{requestAnimationFrame(()=>{setTimeout(Ha,0)})}catch(b){setTimeout(Ha,0)}Ia(a)}},setGroupInternal:function(a){$.fd=typeof a==="boolean"?a?Ca():"":a}};var Sa,vk=Sa||(Sa={});vk.ASSERTIVE="assertive";vk.OFF="off";vk.POLITE="polite";var Wa=Sa.OFF,Va=[],$a,wk=$a||($a={});wk.APPLICATION="application";wk.BUTTON="button";wk.CHECKBOX="checkbox";wk.DIALOG="dialog";wk.FIGURE="figure";wk.GENERIC="generic";wk.GRID="grid";wk.GRIDCELL="gridcell";wk.GROUP="group";wk.LIST="list";wk.LISTBOX="listbox";wk.LISTITEM="listitem";wk.MENU="menu";wk.MENUITEM="menuitem";wk.OPTION="option";wk.PRESENTATION="presentation";wk.REGION="region";wk.ROW="row";wk.SEPARATOR="separator";
|
|
@@ -323,7 +324,7 @@ if(!c||c.preconditionFn&&!c.preconditionFn(a,{focusedNode:(e=$.A().getFocusedNod
|
|
|
323
324
|
(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 B.modifierKeys))throw Error(b+" is not a valid modifier key.");}createSerializedKey(a,b){var c="";if(b){this.checkModifiers(b);for(let d in B.modifierKeys)b.includes(B.modifierKeys[d])&&(c!==""&&(c+="+"),c+=d)}c!==""&&a?c+="+"+a:a&&(c=`${a}`);return c}};B.registry=new B;var Fk=B||(B={}),Gk=Fk.modifierKeys||(Fk.modifierKeys={});Gk[Gk.Shift=16]="Shift";
|
|
324
325
|
Gk[Gk.Control=17]="Control";Gk[Gk.Alt=18]="Alt";Gk[Gk.Meta=91]="Meta";var ub=new Set,Hk={};Hk.warn=vb;var wb=Object.create(null),Ab,Fb,Ik=[],Lb={defineBlocksWithJsonArrayInternal:function(a){$.Pb($.Nb(a))}},Jk={TEST_ONLY:Lb};Jk.createBlockDefinitionsFromJsonArray=$.Nb;Jk.defineBlocks=$.Pb;Jk.defineBlocksWithJsonArray=Mb;Jk.draggingConnections=Ik;Jk.fireSelectedEvent=Eb;Jk.getAllWorkspaces=xb;Jk.getBlockTypeCounts=Jb;Jk.getMainWorkspace=Bb;Jk.getParentContainer=Gb;Jk.getSelected=Db;Jk.getWorkspaceById=Ga;Jk.globalShortcutHandler=Qb;Jk.registerWorkspace=yb;Jk.setMainWorkspace=Cb;
|
|
325
326
|
Jk.setParentContainer=Hb;Jk.setSelected=function(a){$.A().focusNode(a)};Jk.svgResize=Ib;Jk.unregisterWorkpace=function(a){vb("Blockly.common.unregisterWorkpace","v13","v14","Blockly.common.unregisterWorkspace");zb(a)};Jk.unregisterWorkspace=zb;var Kk=class{constructor(){this.workspaceId=void 0;this.isUiEvent=!1;this.type="";this.group=$.fd;this.recordUndo=$.Pc}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=Ga(this.workspaceId));if(!a)throw Error("Workspace is null. Event must have been generated from real Blockly events.");return a}};var Lk=class extends Kk{constructor(a){super();this.isBlank=!0;this.recordUndo=!1;this.isUiEvent=!0;this.isBlank=typeof a==="undefined";this.workspaceId=a?a:""}};var Mk=class extends Lk{constructor(a,b,c){b=a?a.workspace.id:b;b===null&&(b=void 0);super(b);this.type=q.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=Lk.fromJson(a,b,c!=null?c:new Mk);b.targetType=a.targetType;b.blockId=a.blockId;return b}},Nk,Ok=Nk||
|
|
326
|
-
(Nk={});Ok.BLOCK="block";Ok.WORKSPACE="workspace";Ok.ZOOM_CONTROLS="zoom_controls";l(
|
|
327
|
+
(Nk={});Ok.BLOCK="block";Ok.WORKSPACE="workspace";Ok.ZOOM_CONTROLS="zoom_controls";l(k.EVENT,q.CLICK,Mk);var Pk={};Pk.removeElem=Rb;var Qk=class{constructor(a){this.name=a}toString(){return this.name}};Qk.POSITIONABLE=new Qk("positionable");Qk.DRAG_TARGET=new Qk("drag_target");Qk.DELETE_AREA=new Qk("delete_area");Qk.AUTOHIDEABLE=new Qk("autohideable");
|
|
327
328
|
var Rk=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))==
|
|
328
329
|
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();Rb(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 "'+
|
|
329
330
|
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(),Rb(this.componentData.get(a).capabilities,b),Rb(this.capabilityToComponentIds.get(b),a)):console.warn('Plugin "'+
|
|
@@ -978,8 +979,8 @@ c+")"},b).setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a.options.p
|
|
|
978
979
|
500);this.fireZoomEvent();qa=null;a.stopPropagation();a.preventDefault()}},ll=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=y(x.G,{});this.zoomOutControl=new jl(this.workspace,this.svgGroup);this.zoomInControl=new il(this.workspace,
|
|
979
980
|
this.svgGroup);this.workspace.isMovable()&&(this.zoomResetControl=new kl(this.workspace,this.svgGroup));return this.svgGroup}init(){this.workspace.getComponentManager().addComponent({component:this,weight:Rk.ComponentWeight.ZOOM_CONTROLS_WEIGHT,capabilities:[Rk.Capability.POSITIONABLE]});this.initialized=!0}dispose(){this.workspace.getComponentManager().removeComponent("zoomControls");this.svgGroup&&db(this.svgGroup);var a;(a=this.zoomInControl)==null||a.dispose();var b;(b=this.zoomOutControl)==null||
|
|
980
981
|
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=Kc(this.workspace,a),d=this.SMALL_SPACING+2*this.HEIGHT;this.zoomResetControl&&(d+=this.LARGE_SPACING+this.HEIGHT);a=Jc(c,new hc(this.WIDTH,d),this.MARGIN_HORIZONTAL,this.MARGIN_VERTICAL,a,this.workspace);c=c.vertical;
|
|
981
|
-
b=Mc(a,this.MARGIN_VERTICAL,c===Ic.TOP?Lc.DOWN:Lc.UP,b);if(c===Ic.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","translate(0, "+e+")"))}else{f=this.zoomResetControl?this.LARGE_SPACING+this.HEIGHT:0;let
|
|
982
|
-
"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+")")}}getControlWithId(a){for(let b of[this.zoomInControl,this.zoomOutControl,this.zoomResetControl]){let c;if(((c=b)==null?void 0:c.getId())===a)return b}}};Tb("\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 ml={};ml.register=Nc;ml.unregister=function(a){ca(
|
|
982
|
+
b=Mc(a,this.MARGIN_VERTICAL,c===Ic.TOP?Lc.DOWN:Lc.UP,b);if(c===Ic.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","translate(0, "+e+")"))}else{f=this.zoomResetControl?this.LARGE_SPACING+this.HEIGHT:0;let h;(h=this.zoomInControl)==null||h.getFocusableElement().setAttribute("transform",
|
|
983
|
+
"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+")")}}getControlWithId(a){for(let b of[this.zoomInControl,this.zoomOutControl,this.zoomResetControl]){let c;if(((c=b)==null?void 0:c.getId())===a)return b}}};Tb("\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 ml={};ml.register=Nc;ml.unregister=function(a){ca(k.SERIALIZER,a)};var nl=class{constructor(){this.priority=25}save(a){var b=[];for(let c of a.getTopComments())(a=Oc(c,{addCoordinates:!0,saveIds:!0}))&&b.push(a);return b.length?b:null}load(a,b){for(let c of a)Qc(c,b,{recordUndo:$.Pc})}clear(a){for(let b of a.getTopComments())b.dispose()}};Nc("workspaceComments",new nl);var ol={};ol.WorkspaceCommentSerializer=nl;ol.append=Qc;ol.save=Oc;var pl={};pl.register=Rc;pl.unregister=function(a){ca(k.PASTER,a)};var ql=class{paste(a,b,c){a=a.commentState;c&&(a.x=c.x,a.y=c.y);$.Ka++;try{var d=Qc(a,b);Tc(d)}finally{$.Ka--}if(!d)return null;La()&&p(new (t(q.COMMENT_CREATE))(d));$.A().focusNode(d);return d}};ql.TYPE="workspace-comment";Rc(ql.TYPE,new ql);$.tg={dragRadius:5,flyoutDragRadius:10,snapRadius:28,connectingSnapRadius:28,currentConnectionPreference:8,bumpDelay:250};var pg=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=Aa()}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?
|
|
983
984
|
"blocklyMenuItemRtl ":"");var b=document.createElement("div");u(a,w.LABEL,this.getAriaLabel());Oa(b,$a.PRESENTATION);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&&Oa(a,this.roleName);u(a,w.SELECTED,this.checkable&&this.checked||!1);u(a,w.DISABLED,!this.enabled);return a}getAriaLabel(){return this.ariaLabel||(typeof this.content===
|
|
984
985
|
"string"?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",
|
|
985
986
|
this.checked),u(a,w.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),u(a,w.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;
|
|
@@ -990,42 +991,42 @@ this.getElement();a&&a!==b;){if(a.classList.contains("blocklyMenuItem")){let c=t
|
|
|
990
991
|
-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))&&
|
|
991
992
|
(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;
|
|
992
993
|
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 pg)}getId(){return this.id}};var og=class{constructor(){this.element=null}createDom(){this.element=document.createElement("hr");this.element.className="blocklyMenuSeparator";Oa(this.element,$a.SEPARATOR);return this.element}dispose(){var a;(a=this.element)==null||a.remove();this.element=null}};var rl;rl=$.he||($.he={});rl[rl.VALUE=1]="VALUE";rl[rl.STATEMENT=3]="STATEMENT";rl[rl.DUMMY=5]="DUMMY";rl[rl.CUSTOM=6]="CUSTOM";rl[rl.END_ROW=7]="END_ROW";var gd=new Set,dd=new WeakSet,ed=new WeakMap,Yc=null,Zc=null,$c=0,sl={};sl.finishQueuedRenders=bd;sl.queueRender=ad;sl.triggerQueuedRenders=cd;var ji=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=Sa.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"));
|
|
993
|
-
b.className="blocklyToastCloseButton";u(b,w.LABEL,$.C.CLOSE);var g=y(x.SVG,{width:24,height:24,viewBox:"0 0 24 24",fill:"none"},b);u(g,w.HIDDEN,!0);y(x.RECT,{x:19.7782,y:2.80762,width:2,height:24,transform:"rotate(45, 19.7782, 2.80762)",fill:"black"},g);y(x.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
|
|
994
|
+
b.className="blocklyToastCloseButton";u(b,w.LABEL,$.C.CLOSE);var g=y(x.SVG,{width:24,height:24,viewBox:"0 0 24 24",fill:"none"},b);u(g,w.HIDDEN,!0);y(x.RECT,{x:19.7782,y:2.80762,width:2,height:24,transform:"rotate(45, 19.7782, 2.80762)",fill:"black"},g);y(x.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",
|
|
994
995
|
g);f.addEventListener("focusout",b);f.addEventListener("mouseenter",g);f.addEventListener("mousemove",g);f.addEventListener("mouseleave",b);b();Za(c,{assertiveness:e,role:$a.STATUS});return f}static hide(a,b){a=a.getInjectionDiv().querySelector(".blocklyToast");a instanceof HTMLElement&&(!b||b===a.dataset.toastId)&&a.remove()}};ji.shownIds=new Set;Tb("\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 ld,tl=ld||(ld={});tl[tl.ALERT=1]="ALERT";tl[tl.CONFIRM=2]="CONFIRM";tl[tl.PROMPT=3]="PROMPT";var vd=0,pd=md,rd=nd,td=od,ul=ji.show.bind(ji),vl=ul,wl={};wl.alert=qd;wl.confirm=sd;wl.prompt=ud;wl.setAlert=function(a=md){pd=a};wl.setConfirm=function(a=nd){rd=a};wl.setPrompt=function(a=od){td=a};wl.setToast=function(a=ul){vl=a};wl.toast=function(a,b){vl(a,b)};var xl=class extends Kk{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=Kk.fromJson(a,b,c!=null?c:new xl);b.blockId=a.blockId;return b}};var Eg=class{constructor(a){this.name=a}toString(){return this.name}equals(a){return this.name===a.toString()}};Eg.MUTATOR=new Eg("mutator");Eg.WARNING=new Eg("warning");Eg.COMMENT=new Eg("comment");var yl=class extends xl{constructor(a,b,c,d,e){super(a);this.type=q.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=xl.fromJson(a,
|
|
995
996
|
b,c!=null?c:new yl);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");
|
|
996
997
|
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(Eg.MUTATOR);c&&wd(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;
|
|
997
998
|
b.setDisabledReason(!!a,(d=this.disabledReason)!=null?d:"MANUALLY_DISABLED");break;case "inline":b.setInputsInline(!!a);break;case "mutation":d=yl.getExtraBlockState_(b);b.loadExtraState?b.loadExtraState(JSON.parse(a||"{}")):b.domToMutation&&b.domToMutation($.tc(a||"<mutation/>"));p(new yl(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())?
|
|
998
|
-
Zd(a):"":""}};l(
|
|
999
|
+
Zd(a):"":""}};l(k.EVENT,q.BLOCK_CHANGE,yl);var zl=class extends xl{constructor(a){super(a);this.type=q.BLOCK_CREATE;a&&(a.isShadow()&&(this.recordUndo=!1),this.ids=Ma(a),this.json=ae(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);
|
|
999
1000
|
return a}static fromJson(a,b,c){b=xl.fromJson(a,b,c!=null?c:new zl);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(!xd(b,this.ids))if(a)ce(this.json,b);else for(a=0;a<this.ids.length;a++){let c=
|
|
1000
|
-
this.ids[a],d=b.getBlockById(c);d?d.dispose(!1):c===this.blockId&&console.warn("Can't uncreate non-existent block: "+c)}}};l(
|
|
1001
|
+
this.ids[a],d=b.getBlockById(c);d?d.dispose(!1):c===this.blockId&&console.warn("Can't uncreate non-existent block: "+c)}}};l(k.EVENT,q.BLOCK_CREATE,zl);var Al=class extends xl{constructor(a){super(a);this.type=q.BLOCK_DELETE;if(a){if(a.getParent())throw Error("Connected blocks cannot be deleted.");a.isShadow()&&(this.recordUndo=!1);this.ids=Ma(a);this.wasShadow=a.isShadow();this.oldJson=ae(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");
|
|
1001
1002
|
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=xl.fromJson(a,b,c!=null?c:new Al);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");
|
|
1002
|
-
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 ce(this.oldJson,b)}};l(
|
|
1003
|
-
a.blocks=this.blocks;return a}static fromJson(a,b,c){b=Lk.fromJson(a,b,c!=null?c:new Bl);b.isStart=a.isStart;b.blockId=a.blockId;b.blocks=a.blocks;return b}};l(
|
|
1003
|
+
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 ce(this.oldJson,b)}};l(k.EVENT,q.BLOCK_DELETE,Al);var Bl=class extends Lk{constructor(a,b,c){super(a?a.workspace.id:void 0);this.type=q.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;
|
|
1004
|
+
a.blocks=this.blocks;return a}static fromJson(a,b,c){b=Lk.fromJson(a,b,c!=null?c:new Bl);b.isStart=a.isStart;b.blockId=a.blockId;b.blocks=a.blocks;return b}};l(k.EVENT,q.BLOCK_DRAG,Bl);var Cl=class extends xl{constructor(a,b,c,d){super(a);this.type=q.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=xl.fromJson(a,b,c!=null?c:new Cl);b.name=a.name;b.oldValue=a.oldValue;b.newValue=
|
|
1004
1005
|
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)}};
|
|
1005
|
-
l(
|
|
1006
|
+
l(k.EVENT,q.BLOCK_FIELD_INTERMEDIATE_CHANGE,Cl);var K,Dl=K||(K={});Dl[Dl.INPUT_VALUE=1]="INPUT_VALUE";Dl[Dl.OUTPUT_VALUE=2]="OUTPUT_VALUE";Dl[Dl.NEXT_STATEMENT=3]="NEXT_STATEMENT";Dl[Dl.PREVIOUS_STATEMENT=4]="PREVIOUS_STATEMENT";var El=class extends xl{constructor(a){super(a);this.type=q.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&&
|
|
1006
1007
|
(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=xl.fromJson(a,b,c!=null?c:new El);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(","),
|
|
1007
1008
|
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);
|
|
1008
1009
|
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");
|
|
1009
|
-
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,
|
|
1010
|
-
|
|
1011
|
-
this.bubbleType;a.blockId=this.blockId||"";return a}static fromJson(a,b,c){b=Lk.fromJson(a,b,c!=null?c:new Fl);b.isOpen=a.isOpen;b.bubbleType=a.bubbleType;b.blockId=a.blockId;return b}},Gl,Hl=Gl||(Gl={});Hl.MUTATOR="mutator";Hl.COMMENT="comment";Hl.WARNING="warning";l(
|
|
1010
|
+
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:
|
|
1011
|
+
h.type;if(e){if(c=f.getInput(e))g=c.connection}else c===K.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)}};l(k.EVENT,q.BLOCK_MOVE,El);var Fl=class extends Lk{constructor(a,b,c){super(a?a.workspace.id:void 0);this.type=q.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=
|
|
1012
|
+
this.bubbleType;a.blockId=this.blockId||"";return a}static fromJson(a,b,c){b=Lk.fromJson(a,b,c!=null?c:new Fl);b.isOpen=a.isOpen;b.bubbleType=a.bubbleType;b.blockId=a.blockId;return b}},Gl,Hl=Gl||(Gl={});Hl.MUTATOR="mutator";Hl.COMMENT="comment";Hl.WARNING="warning";l(k.EVENT,q.BUBBLE_OPEN,Fl);var Il=class extends Kk{constructor(a){super();this.isBlank=!0;this.isBlank=!a;a&&(this.commentId=a.id,this.workspaceId=a.workspace.id,this.group=$.fd,this.recordUndo=$.Pc)}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=Kk.fromJson(a,b,c!=null?c:new Il);b.commentId=a.commentId;return b}static CommentCreateDeleteHelper(a,b){var c=a.getEventWorkspace_();
|
|
1012
1013
|
if(b){if(!a.json)throw Error("Encountered a comment event without proper json");Qc(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 Jl=class extends Il{constructor(a,b,c){super(a);this.type=q.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=
|
|
1013
1014
|
this.newContents_;return a}static fromJson(a,b,c){b=Il.fromJson(a,b,c!=null?c:new Jl);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");
|
|
1014
|
-
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)}};l(
|
|
1015
|
-
(b=b.getCommentById(this.commentId))?b.setCollapsed(a?!!this.newCollapsed:!this.newCollapsed):console.warn("Can't collapse or uncollapse non-existent comment: "+this.commentId)}};l(
|
|
1016
|
-
return a}static fromJson(a,b,c){b=Lk.fromJson(a,b,c!=null?c:new Nl);b.isStart=a.isStart;b.commentId=a.commentId;return b}};l(
|
|
1015
|
+
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)}};l(k.EVENT,q.COMMENT_CHANGE,Jl);var Kl=class extends Il{constructor(a,b){super(a);this.newCollapsed=b;this.type=q.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=Il.fromJson(a,b,c!=null?c:new Kl);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");
|
|
1016
|
+
(b=b.getCommentById(this.commentId))?b.setCollapsed(a?!!this.newCollapsed:!this.newCollapsed):console.warn("Can't collapse or uncollapse non-existent comment: "+this.commentId)}};l(k.EVENT,q.COMMENT_COLLAPSE,Kl);var Ll=class extends Il{constructor(a){super(a);this.type=q.COMMENT_CREATE;a&&(this.json=Oc(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=Il.fromJson(a,b,c!=null?c:new Ll);b.json=a.json;return b}run(a){Il.CommentCreateDeleteHelper(this,a)}};l(k.EVENT,q.COMMENT_CREATE,Ll);var Ml=class extends Il{constructor(a){super(a);this.type=q.COMMENT_DELETE;a&&(this.json=Oc(a,{addCoordinates:!0}))}run(a){Il.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=Il.fromJson(a,b,c!=null?c:new Ml);b.json=a.json;return b}};l(k.EVENT,q.COMMENT_DELETE,Ml);var Nl=class extends Lk{constructor(a,b){super(a?a.workspace.id:void 0);this.type=q.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;
|
|
1017
|
+
return a}static fromJson(a,b,c){b=Lk.fromJson(a,b,c!=null?c:new Nl);b.isStart=a.isStart;b.commentId=a.commentId;return b}};l(k.EVENT,q.COMMENT_DRAG,Nl);var Ol=class extends Il{constructor(a){super(a);this.type=q.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_=
|
|
1017
1018
|
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=
|
|
1018
1019
|
Il.fromJson(a,b,c!=null?c:new Ol);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_;
|
|
1019
|
-
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)}};l(
|
|
1020
|
+
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)}};l(k.EVENT,q.COMMENT_MOVE,Ol);var Pl=class extends Il{constructor(a){super(a);this.type=q.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");
|
|
1020
1021
|
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,
|
|
1021
1022
|
b,c){b=Il.fromJson(a,b,c!=null?c:new Pl);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");
|
|
1022
|
-
b.setSize(a)}else console.warn("Can't resize non-existent comment: "+this.commentId)}};l(
|
|
1023
|
-
null?c:new Vl);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)}};l(
|
|
1024
|
-
null?c:new Wl);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)}};l(
|
|
1023
|
+
b.setSize(a)}else console.warn("Can't resize non-existent comment: "+this.commentId)}};l(k.EVENT,q.COMMENT_RESIZE,Pl);var Ql=class extends Lk{constructor(a,b,c){super(c);this.type=q.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=Lk.fromJson(a,b,c!=null?c:new Ql);b.oldElementId=a.oldElementId;b.newElementId=a.newElementId;return b}};l(k.EVENT,q.SELECTED,Ql);var Rl=class extends Lk{constructor(a,b){super(b);this.type=q.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=Lk.fromJson(a,b,c!=null?c:new Rl);b.themeName=a.themeName;return b}};l(k.EVENT,q.THEME_CHANGE,Rl);var Sl=class extends Lk{constructor(a,b,c){super(c);this.type=q.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=Lk.fromJson(a,b,c!=null?c:new Sl);b.oldItem=a.oldItem;b.newItem=a.newItem;return b}};l(k.EVENT,q.TOOLBOX_ITEM_SELECT,Sl);var Tl=class extends Lk{constructor(a,b){super(b);this.type=q.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=Lk.fromJson(a,b,c!=null?c:new Tl);b.isOpen=a.isOpen;return b}};l(k.EVENT,q.TRASHCAN_OPEN,Tl);var Ul=class extends Kk{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=Kk.fromJson(a,b,c!=null?c:new Ul);b.varId=a.varId;return b}};var Vl=class extends Ul{constructor(a){super(a);this.type=q.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=Ul.fromJson(a,b,c!=
|
|
1024
|
+
null?c:new Vl);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)}};l(k.EVENT,q.VAR_CREATE,Vl);var Wl=class extends Ul{constructor(a){super(a);this.type=q.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=Ul.fromJson(a,b,c!=
|
|
1025
|
+
null?c:new Wl);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)}};l(k.EVENT,q.VAR_DELETE,Wl);var Xl=class extends Ul{constructor(a,b){super(a);this.type=q.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=Ul.fromJson(a,
|
|
1025
1026
|
b,c!=null?c:new Xl);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);
|
|
1026
|
-
a?c&&b.renameVariable(c,this.newName):c&&b.renameVariable(c,this.oldName)}};l(
|
|
1027
|
-
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))}};l(
|
|
1028
|
-
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=Lk.fromJson(a,b,c!=null?c:new Zl);b.viewTop=a.viewTop;b.viewLeft=a.viewLeft;b.scale=a.scale;b.oldScale=a.oldScale;return b}};l(
|
|
1027
|
+
a?c&&b.renameVariable(c,this.newName):c&&b.renameVariable(c,this.oldName)}};l(k.EVENT,q.VAR_RENAME,Xl);var Yl=class extends Ul{constructor(a,b,c){super(a);this.oldType=b;this.newType=c;this.type=q.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=Ul.fromJson(a,b,c!=null?c:new Yl);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");
|
|
1028
|
+
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))}};l(k.EVENT,q.VAR_TYPE_CHANGE,Yl);var Zl=class extends Lk{constructor(a,b,c,d,e){super(d);this.type=q.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");
|
|
1029
|
+
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=Lk.fromJson(a,b,c!=null?c:new Zl);b.viewTop=a.viewTop;b.viewLeft=a.viewLeft;b.scale=a.scale;b.oldScale=a.oldScale;return b}};l(k.EVENT,q.VIEWPORT_CHANGE,Zl);var $l=class extends Kk{constructor(a){super();this.isBlank=!0;this.recordUndo=!1;this.type=q.FINISHED_LOADING;this.isBlank=!!a;a&&(this.workspaceId=a.id)}};l(k.EVENT,q.FINISHED_LOADING,$l);var cm,em,fm,gm,hm,im,jm,km,lm,mm,nm,om,pm,qm,rm,sm,tm,um,vm,wm,xm,ym,zm,Am,N;$.am=q.BLOCK_CHANGE;$.Nd=q.BLOCK_CREATE;$.bm=q.BLOCK_DELETE;cm=q.BLOCK_DRAG;$.dm=q.BLOCK_MOVE;em=q.BLOCK_FIELD_INTERMEDIATE_CHANGE;fm=q.BUBBLE_OPEN;gm=q.BLOCK_CHANGE;hm=q.CLICK;im=q.COMMENT_CHANGE;jm=q.COMMENT_CREATE;km=q.COMMENT_DELETE;lm=q.COMMENT_MOVE;mm=q.COMMENT_RESIZE;nm=q.COMMENT_DRAG;om=q.BLOCK_CREATE;pm=q.BLOCK_DELETE;qm=q.FINISHED_LOADING;rm=q.BLOCK_MOVE;sm=q.SELECTED;tm=q.THEME_CHANGE;um=q.TOOLBOX_ITEM_SELECT;
|
|
1029
1030
|
vm=q.TRASHCAN_OPEN;wm=q.UI;xm=q.VAR_CREATE;ym=q.VAR_DELETE;zm=q.VAR_RENAME;Am=q.VIEWPORT_CHANGE;N={};N.Abstract=Kk;N.BLOCK_CHANGE=$.am;N.BLOCK_CREATE=$.Nd;N.BLOCK_DELETE=$.bm;N.BLOCK_DRAG=cm;N.BLOCK_FIELD_INTERMEDIATE_CHANGE=em;N.BLOCK_MOVE=$.dm;N.BUBBLE_OPEN=fm;N.BUMP_EVENTS=Sh;N.BlockBase=xl;N.BlockChange=yl;N.BlockCreate=zl;N.BlockDelete=Al;N.BlockDrag=Bl;N.BlockFieldIntermediateChange=Cl;N.BlockMove=El;N.BubbleOpen=Fl;N.BubbleType=Gl;N.CHANGE=gm;N.CLICK=hm;N.COMMENT_CHANGE=im;
|
|
1030
1031
|
N.COMMENT_CREATE=jm;N.COMMENT_DELETE=km;N.COMMENT_DRAG=nm;N.COMMENT_MOVE=lm;N.COMMENT_RESIZE=mm;N.CREATE=om;N.Click=Mk;N.ClickTarget=Nk;N.CommentBase=Il;N.CommentChange=Jl;N.CommentCollapse=Kl;N.CommentCreate=Ll;N.CommentDelete=Ml;N.CommentDrag=Nl;N.CommentMove=Ol;N.CommentResize=Pl;N.DELETE=pm;N.FINISHED_LOADING=qm;N.FinishedLoading=$l;N.MOVE=rm;N.SELECTED=sm;N.Selected=Ql;N.THEME_CHANGE=tm;N.TOOLBOX_ITEM_SELECT=um;N.TRASHCAN_OPEN=vm;N.ThemeChange=Rl;N.ToolboxItemSelect=Sl;N.TrashcanOpen=Tl;
|
|
1031
1032
|
N.UI=wm;N.UiBase=Lk;N.VAR_CREATE=xm;N.VAR_DELETE=ym;N.VAR_RENAME=zm;N.VIEWPORT_CHANGE=Am;N.VarBase=Ul;N.VarCreate=Vl;N.VarDelete=Wl;N.VarRename=Xl;N.VarTypeChange=Yl;N.ViewportChange=Zl;N.clearPendingUndo=Ja;N.disable=function(){$.Ka++};
|
|
@@ -1054,13 +1055,13 @@ this.getDisplayText_());this.updateSize_()}showEditor(a){this.isClickable()&&thi
|
|
|
1054
1055
|
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",
|
|
1055
1056
|
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 bj;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;
|
|
1056
1057
|
c=this.getAbsoluteXY_();a=(b.width+1)*d;b=(b.height+1)*d;ok?(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,Xf.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_=
|
|
1057
|
-
!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=$.fd;c||$.r(!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
|
|
1058
|
-
b&&g&&La()&&p(new (t(q.BLOCK_CHANGE))(g,"field",this.name||null,
|
|
1058
|
+
!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=$.fd;c||$.r(!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),
|
|
1059
|
+
b&&g&&La()&&p(new (t(q.BLOCK_CHANGE))(g,"field",this.name||null,h,f)),this.isDirty_&&this.forceRerender())}}}}finally{$.r(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))&&
|
|
1059
1060
|
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?ff(a):ff({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 bj;var c=b.inputList;for(let d=0;d<b.inputList.length;d++){let e=
|
|
1060
1061
|
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 bj;return a.workspace}onNodeFocus(){var a=this.getSourceBlock();a.workspace.scrollBoundsIntoView(a.getBoundingRectangleWithoutChildren())}onNodeBlur(){}canBeFocused(){return!0}performAction(){this.showEditor()}recomputeAriaContext(){try{var a=
|
|
1061
1062
|
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 u(a,w.HIDDEN,!0),!1;var c;b=((c=this.getSourceBlock())==null?void 0:c.getAriaRoleDescription())||$.C.BLOCK_LABEL_VALUE;u(a,w.ROLEDESCRIPTION,b)}Pa(a,w.HIDDEN);Oa(a,$a.BUTTON);c=this.computeAriaLabel(!0);u(a,w.LABEL,c);return!0}static fromJson(){throw Error("Attempted to instantiate a field from the registry that hasn't defined a 'fromJson' method.");
|
|
1062
1063
|
}};Xf.NBSP="\u00a0";Xf.SKIP_SETUP=Symbol("SKIP_SETUP");var bj=class extends Error{constructor(){super("The field has not yet been attached to its input. Call appendField to attach it.")}};var Uf=null,Wf=null,Vf=null,Yf="",Zf="",Sf,Pf=null,Nm={};Nm.createDom=Tf;Nm.getDiv=function(){return Sf};Nm.hide=Qf;Nm.hideIfOwner=ag;Nm.hideIfOwnerIsInWorkspace=bg;Nm.isVisible=function(){return!!Uf};Nm.positionWithAnchor=dg;Nm.repositionForWindowResize=eg;Nm.show=$f;Nm.testOnly_setDiv=function(a){Sf=a;if(a===null){let b;(b=document.querySelector(".blocklyWidgetDiv"))==null||b.remove()}};var kg=null,fg={},ig=null,Om={};Om.callbackFactory=$.ug;Om.dispose=gg;Om.getCurrentBlock=function(){return kg};Om.getMenu=function(){return ig};Om.hide=lg;Om.setCurrentBlock=function(a){kg=a};Om.show=mg;var Aj=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===
|
|
1063
|
-
Pm.BLOCK&&!a.block)continue;if(d.scopeType===Pm.COMMENT&&!a.comment)continue;if(d.scopeType===Pm.WORKSPACE&&!a.workspace)continue}let e;e={id:d.id,scope:a,weight:d.weight};let f,g,
|
|
1064
|
+
Pm.BLOCK&&!a.block)continue;if(d.scopeType===Pm.COMMENT&&!a.comment)continue;if(d.scopeType===Pm.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,
|
|
1064
1065
|
e){return d.weight-e.weight});return c}},Qm=Aj||(Aj={}),Rm=Qm.ScopeType||(Qm.ScopeType={});Rm.BLOCK="block";Rm.WORKSPACE="workspace";Rm.COMMENT="comment";Qm.registry=new Qm;var Pm=Aj.ScopeType;var Sm=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();
|
|
1065
1066
|
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 (t(q.COMMENT_DRAG))(this.comment,!0);p(a)}fireDragEndEvent(){var a=new (t(q.COMMENT_DRAG))(this.comment,!1);p(a)}fireMoveEvent(){if(!this.comment.isDeadOrDying()){var a=new (t(q.COMMENT_MOVE))(this.comment);a.setReason(["drag"]);
|
|
1066
1067
|
a.oldCoordinate_=this.startLoc;a.recordNew();p(a)}}revertDrag(){this.startLoc&&this.comment.moveDuringDrag(this.startLoc)}};var wg=new WeakMap;var Tm=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,16 +1093,16 @@ this.getRelativeToSurfaceXY(),b,c,d=(c=(b=this.view)==null?void 0:b.getSize())!=
|
|
|
1092
1093
|
!0;var a=$.A();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),$.A().focusNode(this))}setDeleteStyle(a){a?v(this.getSvgRoot(),"blocklyDraggingDelete"):bb(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(){v(this.getSvgRoot(),
|
|
1093
1094
|
"blocklySelected");Eb(this)}unselect(){bb(this.getSvgRoot(),"blocklySelected");Eb(null)}toCopyData(){return{paster:ql.TYPE,commentState:Oc(this,{addCoordinates:!0,saveIds:!1})}}showContextMenu(a){var b=Aj.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);mg(a,b,this.workspace.RTL,this.workspace,c)}snapToGrid(){if(!this.isDeadOrDying()){var a=this.workspace.getGrid();
|
|
1094
1095
|
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);
|
|
1095
|
-
$.A().focusNode(this.getEditorFocusableNode())}};var Ym={appendDomToWorkspace:function(a,b){if(!b.getBlocksBoundingBox)return $.Ig(a,b);var c=b.getBlocksBoundingBox();a=$.Ig(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
|
|
1096
|
+
$.A().focusNode(this.getEditorFocusableNode())}};var Ym={appendDomToWorkspace:function(a,b){if(!b.getBlocksBoundingBox)return $.Ig(a,b);var c=b.getBlocksBoundingBox();a=$.Ig(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}};Ym.blockToDom=Bg;Ym.blockToDomWithXY=Dg;
|
|
1096
1097
|
Ym.clearWorkspaceAndLoadFromXml=function(a,b){b.setResizesEnabled(!1);b.clear();a=$.Ig(a,b);b.setResizesEnabled(!0);return a};Ym.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}}};Ym.domToBlock=$.Lg;Ym.domToBlockInternal=sg;
|
|
1097
1098
|
Ym.domToPrettyText=function(a){a=Zd(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/,"")};Ym.domToText=Zd;Ym.domToVariables=Hg;Ym.domToWorkspace=$.Ig;Ym.loadWorkspaceComment=Gg;Ym.saveWorkspaceComment=zg;Ym.variablesToDom=Ag;
|
|
1098
|
-
Ym.workspaceToDom=function(a,b=!1){var c=$.F("xml"),d=Ag($.Ad(a));d.hasChildNodes()&&c.appendChild(d);for(let e of a.getTopComments())c.appendChild(zg(e,b));a=a.getTopBlocks(!0);for(d=0;d<a.length;d++)c.appendChild(Dg(a[d],b));return c};var Qg={fromJsonInternal:function(a){var b=da(
|
|
1099
|
+
Ym.workspaceToDom=function(a,b=!1){var c=$.F("xml"),d=Ag($.Ad(a));d.hasChildNodes()&&c.appendChild(d);for(let e of a.getTopComments())c.appendChild(zg(e,b));a=a.getTopBlocks(!0);for(d=0;d<a.length;d++)c.appendChild(Dg(a[d],b));return c};var Qg={fromJsonInternal:function(a){var b=da(k.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)}},Zm={TEST_ONLY:Qg};Zm.fromJson=$.Rg;Zm.register=Pg;Zm.unregister=function(a){ca(k.FIELD,a)};var eh=class extends Xf{constructor(a,b,c){super(Xf.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!==Xf.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(eh,a)||(this.isOptionListDynamic()&&
|
|
1099
1100
|
this.getOptions(!1),this.setValue(a))}initView(){this.shouldAddBorderRect_()?this.createBorderRect_():this.clickTarget_=this.sourceBlock_.getSvgRoot();this.createTextElement_();this.imageElement=y(x.IMAGE,{},this.fieldGroup_);this.getConstants().FIELD_DROPDOWN_SVG_ARROW?this.createSVGArrow_():this.createTextArrow_();this.borderRect_&&v(this.borderRect_,"blocklyDropdownRect");this.fieldGroup_&&(v(this.fieldGroup_,"blocklyField"),v(this.fieldGroup_,"blocklyDropdownField"));this.recomputeAriaContext();
|
|
1100
1101
|
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=y(x.TSPAN,{},this.textElement_);var a;this.arrow.appendChild(document.createTextNode(((a=this.getSourceBlock())==null?0:a.RTL)?eh.ARROW_CHAR+
|
|
1101
1102
|
" ":" "+eh.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=y(x.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",
|
|
1102
1103
|
"xlink:href",this.getConstants().FIELD_DROPDOWN_SVG_ARROW_DATAURI)}showEditor_(a){var b=this.getSourceBlock();if(!b)throw new bj;this.dropdownCreate();this.menu_&&(this.menu_.openingCoords=a&&typeof a.clientX==="number"?new D(a.clientX,a.clientY):null,Ce(),a=this.menu_.render(ve),v(a,"blocklyDropdownMenu"),this.getConstants().FIELD_DROPDOWN_COLOURED_DIV&&(b=b.getColour(),a=this.sourceBlock_.getColourTertiary(),De(b,a)),He(this,this.dropdownDispose_.bind(this)),ve.style.height=`${this.menu_.getSize().height}px`,
|
|
1103
|
-
this.menu_.focus(),this.selectedMenuItem&&this.menu_.setHighlighted(this.selectedMenuItem),this.applyColour(),u(this.getFocusableElement(),w.EXPANDED,!0))}dropdownCreate(){var a=this.getSourceBlock();if(!a)throw new bj;var b=new ng;b.setRole($a.LISTBOX);this.menu_=b;u(this.getFocusableElement(),w.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===eh.SEPARATOR){b.addChild(new og);continue}let [g,
|
|
1104
|
-
f);if(Sg(g)){var e=new Image(g.width,g.height);e.src=g.src;e.alt=g.alt}else e=g;d=new pg(e,
|
|
1104
|
+
this.menu_.focus(),this.selectedMenuItem&&this.menu_.setHighlighted(this.selectedMenuItem),this.applyColour(),u(this.getFocusableElement(),w.EXPANDED,!0))}dropdownCreate(){var a=this.getSourceBlock();if(!a)throw new bj;var b=new ng;b.setRole($a.LISTBOX);this.menu_=b;u(this.getFocusableElement(),w.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===eh.SEPARATOR){b.addChild(new og);continue}let [g,h]=d;d=this.computeOptionAriaLabel(d,
|
|
1105
|
+
f);if(Sg(g)){var e=new Image(g.width,g.height);e.src=g.src;e.alt=g.alt}else e=g;d=new pg(e,h,d);d.setRole($a.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();u(this.getFocusableElement(),w.EXPANDED,!1)}handleMenuActionEvent(a){Ue(this,!0);this.onItemSelected_(this.menu_,
|
|
1105
1106
|
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),
|
|
1106
1107
|
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);
|
|
1107
1108
|
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=
|
|
@@ -1110,7 +1111,7 @@ a=Number(a.width);var d=!!this.borderRect_,e=Math.max(d?this.getConstants().FIEL
|
|
|
1110
1111
|
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();v(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=mb(this.getTextElement());b=b?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;var d=0;this.svgArrow&&(d=
|
|
1111
1112
|
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 bj;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+
|
|
1112
1113
|
e}getText_(){if(!this.selectedOption)return null;var a=this.selectedOption[0];if(Sg(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.");
|
|
1113
|
-
return new this(a.options,void 0,a)}trimOptions(a){var b=!1,c=a.map(g=>{if(g===eh.SEPARATOR)return b=!0,g;var [
|
|
1114
|
+
return new this(a.options,void 0,a)}trimOptions(a){var b=!1,c=a.map(g=>{if(g===eh.SEPARATOR)return b=!0,g;var [h,m,z]=g;if(typeof h==="string")return g=[Nf(h),m],z&&g.push(Nf(z)),g;b=!0;g=[Sg(h)?Object.assign({},h,{alt:Nf(h.alt)}):h,m];z&&g.push(Nf(z));return g});if(b||a.length<2)return{options:c};var d=c.map(([g])=>g),e=Ye(d);a=Ze(d,e);var f=$e(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,
|
|
1114
1115
|
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===eh.SEPARATOR?typeof d[1]!=="string"?(b=!0,console.error(`Invalid option[${c}]: Each FieldDropdown option id must be a string.
|
|
1115
1116
|
Found ${d[1]} in: ${d}`)):!d[0]||typeof d[0]==="string"||Sg(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.
|
|
1116
1117
|
Found ${d[2]} in: ${d}`)):(b=!0,console.error(`Invalid option[${c}]: Each FieldDropdown option must have a string
|
|
@@ -1124,31 +1125,31 @@ O[O.NUM_ZERO=96]="NUM_ZERO";O[O.NUM_ONE=97]="NUM_ONE";O[O.NUM_TWO=98]="NUM_TWO";
|
|
|
1124
1125
|
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";
|
|
1125
1126
|
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=va||Mi||Li?O.MAC_WK_CMD_LEFT:O.CTRL]="CTRL_CMD";var $m=class{constructor(a){this.workspace=a;var b,c,d;this.svgRoot=y(x.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;y(x.CIRCLE,{fill:"white","fill-opacity":"0.8",stroke:"grey","stroke-width":"1",r:20,cx:20*(a?-1:1),cy:20},this.svgRoot);y(x.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",
|
|
1126
1127
|
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(){db(this.svgRoot)}};var qi,an=qi||(qi={});an[an.NONE=0]="NONE";an[an.UP=1]="UP";an[an.DOWN=2]="DOWN";an[an.LEFT=3]="LEFT";an[an.RIGHT=4]="RIGHT";
|
|
1127
|
-
var pi=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=ja(
|
|
1128
|
+
var pi=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=ja(k.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();
|
|
1128
1129
|
this.updateTotalDelta();this.draggable.getFocusableElement().addEventListener("blur",this.blurListener);a=Object.values(B.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);B.registry.register({name:"commitMove",preconditionFn:()=>this.isMoving(),callback:()=>{this.finishMove();return!1},keyCodes:a,allowCollision:!0},!0);this.scrollCurrentElementIntoView();
|
|
1129
1130
|
this.moveIndicator=new $m(this.draggable.workspace);this.repositionMoveIndicator();return!0}move(a,b){switch(a){case qi.UP:this.totalDelta.y-=this.stepDistance;break;case qi.DOWN:this.totalDelta.y+=this.stepDistance;break;case qi.LEFT:this.totalDelta.x-=this.stepDistance;break;case qi.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();
|
|
1130
1131
|
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(){bd().then(()=>{var a,b=(a=this.draggable)==null?void 0:a.getBoundingRectangle();this.draggable&&
|
|
1131
1132
|
"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)!==
|
|
1132
|
-
c;){let
|
|
1133
|
+
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(){B.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=
|
|
1133
1134
|
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))}};
|
|
1134
|
-
pi.mover=new pi;var bn=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);l(
|
|
1135
|
-
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 bn(a),d=b.base;if(d){if(typeof d==="string"){let e;d=(e=da(
|
|
1136
|
-
math_category:{colour:"230"},procedure_category:{colour:"290"},text_category:{colour:"160"},variable_category:{colour:"330"},variable_dynamic_category:{colour:"310"}});var dn=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,
|
|
1137
|
-
X===E?H.RIGHT:H.LEFT;var ia=a.css;ia===void 0&&(ia=!0);var ib="https://static.blockly.com/media/";a.media&&(ib=a.media.endsWith("/")?a.media:a.media+"/");var pb=a.oneBasedIndex,Ti=a.renderer||"
|
|
1138
|
-
this.hasCategories=c;this.moveOptions=dn.parseMoveOptions(a,c);this.hasScrollbars=!!this.moveOptions.scrollbars;this.hasTrashcan=d;this.maxTrashcanContents=z;this.hasSounds=
|
|
1135
|
+
pi.mover=new pi;var bn=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);l(k.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,
|
|
1136
|
+
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 bn(a),d=b.base;if(d){if(typeof d==="string"){let e;d=(e=da(k.THEME,d,void 0))!=null?e:void 0}d instanceof bn&&(tb(c,d),c.name=a)}tb(c.blockStyles,b.blockStyles);tb(c.categoryStyles,b.categoryStyles);tb(c.componentStyles,b.componentStyles);tb(c.fontStyle,b.fontStyle);b.startHats!==null&&(c.startHats=b.startHats);return c}};var cn=new bn("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"},
|
|
1137
|
+
math_category:{colour:"230"},procedure_category:{colour:"290"},text_category:{colour:"160"},variable_category:{colour:"330"},variable_dynamic_category:{colour:"310"}});var dn=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=Bc((z=a.toolbox)!=null?z:null);c=Ec(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,G=a.horizontalLayout;G===void 0&&(G=!1);var X=a.toolboxPosition!=="end";X=G?X?H.TOP:H.BOTTOM:
|
|
1138
|
+
X===E?H.RIGHT:H.LEFT;var ia=a.css;ia===void 0&&(ia=!0);var ib="https://static.blockly.com/media/";a.media&&(ib=a.media.endsWith("/")?a.media:a.media+"/");var pb=a.oneBasedIndex,Ti=a.renderer||"thrasos",os=a.plugins||{},Xj=a.modalInputs;Xj===void 0&&(Xj=!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 Io;this.maxInstances=(Io=a.maxInstances)!=null?Io:null;this.modalInputs=Xj;this.pathToMedia=
|
|
1139
|
+
ib;this.hasCategories=c;this.moveOptions=dn.parseMoveOptions(a,c);this.hasScrollbars=!!this.moveOptions.scrollbars;this.hasTrashcan=d;this.maxTrashcanContents=z;this.hasSounds=h;this.hasCss=ia;this.horizontalLayout=G;this.languageTree=b;this.gridOptions=dn.parseGridOptions(a);this.zoomOptions=dn.parseZoomOptions(a);this.toolboxPosition=X;this.theme=dn.parseThemeOptions(a);this.renderer=Ti;var Jo;this.rendererOverrides=(Jo=a.rendererOverrides)!=null?Jo:null;var Ko;this.parentWorkspace=(Ko=a.parentWorkspace)!=
|
|
1139
1140
|
null?Ko:null;this.plugins=os}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===
|
|
1140
1141
|
"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=
|
|
1141
|
-
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||cn;return typeof a==="string"?da(
|
|
1142
|
+
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||cn;return typeof a==="string"?da(k.THEME,a,void 0):a instanceof bn?a:bn.defineTheme(a.name||"builtin"+Aa(),a)}};var en=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,
|
|
1142
1143
|
100);this.bubble.setDragging(!1)}revertDrag(){this.startLoc&&this.bubble.moveDuringDrag(this.startLoc)}};var fn,gn=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 en(this,this.workspace);this.ariaLabelProvider=null;this.id=Aa();this.svgRoot=y(x.G,{"class":"blocklyBubble"},a.getBubbleCanvas());a=y(x.G,{"class":"blocklyEmboss"},this.svgRoot);this.tail=y(x.PATH,{"class":"blocklyBubbleTail"},a);this.background=y(x.RECT,{"class":"blocklyDraggable",
|
|
1143
1144
|
x:0,y:0,rx:fn.BORDER_WIDTH,ry:fn.BORDER_WIDTH},a);this.contentContainer=y(x.G,{},this.svgRoot);this.focusableElement=d!=null?d:this.svgRoot;this.focusableElement.setAttribute("id",this.id);n(this.background,"pointerdown",this,this.onMouseDown);n(this.focusableElement,"keydown",this,this.onKeyDown);this.recomputeAriaContext()}dispose(){db(this.svgRoot);this.disposed=!0}setAnchorLocation(a,b=!1){this.anchor=a;b?this.positionByRect(this.ownerRect):this.positionRelativeToAnchor();this.renderTail()}setPositionRelativeToAnchor(a,
|
|
1144
1145
|
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,fn.MIN_SIZE);a.height=Math.max(a.height,fn.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",
|
|
1145
1146
|
a);this.background.setAttribute("fill",a)}onMouseDown(a){var b;(b=this.workspace.getGesture(a))==null||b.handleBubbleStart(a,this);$.A().focusNode(this)}onKeyDown(a){a.key==="Escape"&&this.owner&&(this.owner.setBubbleVisible(!1),$.A().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,
|
|
1146
1147
|
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,
|
|
1147
|
-
b);var
|
|
1148
|
+
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))*
|
|
1148
1149
|
(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=
|
|
1149
1150
|
-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 Hc.scrollbarThickness/this.workspace.scale}renderTail(){var a=
|
|
1150
|
-
[],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
|
|
1151
|
-
-fn.TAIL_ANGLE:fn.TAIL_ANGLE);m=g+m;m>Math.PI*2&&(m-=Math.PI*2);g=Math.sin(m)*f/fn.TAIL_BEND;f=Math.cos(m)*f/fn.TAIL_BEND;a.push("M"+
|
|
1151
|
+
[],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),G=(this.size.width+this.size.height)/fn.TAIL_THICKNESS;G=Math.min(G,this.size.width,this.size.height)/4;h=1-fn.ANCHOR_RADIUS/f;d=b+h*d;e=c+h*e;h=b+G*E;let X=c+G*m;b-=G*E;c-=G*m;m=se(this.workspace.RTL?
|
|
1152
|
+
-fn.TAIL_ANGLE:fn.TAIL_ANGLE);m=g+m;m>Math.PI*2&&(m-=Math.PI*2);g=Math.sin(m)*f/fn.TAIL_BEND;f=Math.cos(m)*f/fn.TAIL_BEND;a.push("M"+h+","+X);a.push("C"+(h+f)+","+(X+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?
|
|
1152
1153
|
-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(){Eb(this)}unselect(){Eb(null)}getFocusableElement(){return this.focusableElement}getFocusableTree(){return this.workspace}onNodeFocus(){this.select();
|
|
1153
1154
|
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){Oa(a,$a.GROUP);var b,c=(b=this.getAriaLabel())==null?void 0:b.trim();u(a,w.LABEL,c?c:$.C.BUBBLE_LABEL_DEFAULT)}}setAriaLabelProvider(a){this.ariaLabelProvider=a;this.recomputeAriaContext()}getAriaLabel(){if(this.ariaLabelProvider){if(typeof this.ariaLabelProvider===
|
|
1154
1155
|
"string")return this.ariaLabelProvider;if(typeof this.ariaLabelProvider==="function")return this.ariaLabelProvider(this)}return null}};fn=gn;gn.BORDER_WIDTH=6;gn.DOUBLE_BORDER=fn.BORDER_WIDTH*2;gn.MIN_SIZE=fn.DOUBLE_BORDER;gn.TAIL_THICKNESS=1;gn.TAIL_ANGLE=20;gn.TAIL_BEND=4;gn.ANCHOR_RADIUS=8;var hn=class extends gn{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 dn(a);this.validateWorkspaceOptions(b);this.svgDialog=y(x.SVG,{x:gn.BORDER_WIDTH,y:gn.BORDER_WIDTH},this.contentContainer);a.parentWorkspace=this.workspace;this.miniWorkspace=this.newWorkspaceSvg(new dn(a));this.miniWorkspace.internalIsMutator=!0;a=this.miniWorkspace.createDom("blocklyMutatorBackground");this.svgDialog.appendChild(a);b.languageTree&&
|
|
@@ -1176,10 +1177,10 @@ b){a=y(x.IMAGE,{"class":"blocklyResizeHandle",href:`${b.options.pathToMedia}resi
|
|
|
1176
1177
|
this.resizeGroup.setAttribute("y",`${d}`);this.workspace.RTL?this.resizeGroup.setAttribute("x",`${-gn.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();
|
|
1177
1178
|
wa(a)||(xg(this.workspace,a,new D(this.workspace.RTL?-this.getSize().width:this.getSize().width,this.getSize().height)),this.resizePointerUpListener=n(document,"pointerup",this,this.onResizePointerUp),this.resizePointerMoveListener=n(document,"pointermove",this,this.onResizePointerMove),this.workspace.hideChaff());a.stopPropagation()}onResizePointerUp(){qa=null;this.resizePointerUpListener&&(ta(this.resizePointerUpListener),this.resizePointerUpListener=null);this.resizePointerMoveListener&&(ta(this.resizePointerMoveListener),
|
|
1178
1179
|
this.resizePointerMoveListener=null)}onResizePointerMove(a){a=yg(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(){$.A().focusNode(this.getEditor())}dispose(){super.dispose();this.editor.removeTextChangeListener(this.textChangeListener)}};Tb("\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 pn=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;
|
|
1179
|
-
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,G=f-d[z].y;Math.sqrt(E*E+G*G)<=b&&m.push(d[z]);return G<b}var d=this.connections,e=a.x,f=a.y;a=0;for(var g=d.length-2,
|
|
1180
|
-
a=
|
|
1181
|
-
this.connections.length&&this.isInYRange(f,a.y,b);)
|
|
1182
|
-
this.stashShadowState(),
|
|
1180
|
+
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,G=f-d[z].y;Math.sqrt(E*E+G*G)<=b&&m.push(d[z]);return G<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?
|
|
1181
|
+
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<
|
|
1182
|
+
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[K.INPUT_VALUE]=new pn(a);b[K.OUTPUT_VALUE]=new pn(a);b[K.NEXT_STATEMENT]=new pn(a);b[K.PREVIOUS_STATEMENT]=new pn(a);return b}};var qn=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_${Aa()}`}connect_(a){var b=K.INPUT_VALUE,c=this.getSourceBlock(),d=a.getSourceBlock();a.isConnected()&&a.disconnectInternal(!1);if(this.isConnected()){let g=
|
|
1183
|
+
this.stashShadowState(),h=this.targetBlock();if(h.isShadow())h.dispose(!1);else{this.disconnectInternal();var e=h}this.applyShadowState(g)}if(La()){var f=new (t(q.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(),p(f));if(e&&(a=this.type===b?e.outputConnection:e.previousConnection))if(d=qn.getConnectionForOrphanedConnection(d,a))a.connect(d);else a.onFailedConnect(this)}dispose(){if(this.isConnected()){this.isSuperior()&&
|
|
1183
1184
|
this.setShadowStateInternal();let a=this.targetBlock();a&&!a.isDeadOrDying()&&a.unplug()}this.disposed=!0}getSourceBlock(){return this.sourceBlock_}isSuperior(){return this.type===K.INPUT_VALUE||this.type===K.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=$.fd;b||$.r(!0);this.isSuperior()?
|
|
1184
1185
|
this.connect_(a):a.connect_(this);$.r(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=$.fd;d||$.r(!0);if(La()){var e=new (t(q.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(),
|
|
1185
1186
|
p(e));c.getSourceBlock().isShadow()||b.respawnShadow_();$.r(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()&&
|
|
@@ -1229,25 +1230,25 @@ this.inputsInline,a)),this.inputsInline=a)}getInputsInline(){if(this.inputsInlin
|
|
|
1229
1230
|
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 (t(q.BLOCK_CHANGE))(this,"disabled",null,!a,a),a.setDisabledReason(b),p(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_!==
|
|
1230
1231
|
a&&(p(new (t(q.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():Nf(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);
|
|
1231
1232
|
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());
|
|
1232
|
-
(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 $.En(a,this))}appendStatementInput(a){this.statementInputCount++;return this.appendInput(new Dn(a,this))}appendDummyInput(a=""){return this.appendInput(new Bn(a,this))}appendEndRowInput(a=""){return this.appendInput(new Cn(a,this))}appendInput(a){this.inputList.push(a);return a}appendInputFromRegistry(a,b){return(a=da(
|
|
1233
|
+
(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 $.En(a,this))}appendStatementInput(a){this.statementInputCount++;return this.appendInput(new Dn(a,this))}appendDummyInput(a=""){return this.appendInput(new Bn(a,this))}appendEndRowInput(a=""){return this.appendInput(new Cn(a,this))}appendInput(a){this.inputList.push(a);return a}appendInputFromRegistry(a,b){return(a=da(k.INPUT,
|
|
1233
1234
|
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,
|
|
1234
1235
|
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&&($.Ka++,this.setInputsInline(a.inputsInline),$.Ka--);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);
|
|
1235
1236
|
a.tooltip!==void 0&&(c=Nf(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=Nf(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 '"+
|
|
1236
1237
|
a.type+"' block."),a.extensions=[a.extensions]);a.mutator!==void 0&&bh(a.mutator,this,!0);a=a.extensions;if(Array.isArray(a))for(b=0;b<a.length;b++)bh(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");
|
|
1237
|
-
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=Mf(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,
|
|
1238
|
+
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=Mf(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=
|
|
1238
1239
|
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=
|
|
1239
1240
|
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=$.Rg(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:$.tn.LEFT,RIGHT:$.tn.RIGHT,CENTRE:$.tn.CENTRE,CENTER:$.tn.CENTRE};switch(a.type){case "input_value":var d=this.appendValueInput(a.name);break;
|
|
1240
1241
|
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"||
|
|
1241
|
-
a==="input_statement"||a==="input_dummy"||a==="input_end_row"||ea(
|
|
1242
|
+
a==="input_statement"||a==="input_dummy"||a==="input_end_row"||ea(k.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,
|
|
1242
1243
|
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 Dn&&this.statementInputCount--,d.dispose(),this.inputList.splice(c,1),!0;if(b)return!1;throw Error("Input not found: "+
|
|
1243
|
-
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(Eg.COMMENT))==null?void 0:a.getText())!=null?b:null}setCommentText(a){var b,c,d=(c=(b=this.getIcon(Eg.COMMENT))==null?void 0:b.getText())!=null?c:null;if(d!==a){if(a!==null){b=this.getIcon(Eg.COMMENT);if(!b){b=da(
|
|
1244
|
+
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(Eg.COMMENT))==null?void 0:a.getText())!=null?b:null}setCommentText(a){var b,c,d=(c=(b=this.getIcon(Eg.COMMENT))==null?void 0:b.getText())!=null?c:null;if(d!==a){if(a!==null){b=this.getIcon(Eg.COMMENT);if(!b){b=da(k.ICON,Eg.COMMENT.toString(),!1);if(!b)throw Error("No comment icon class is registered, so a comment cannot be set");
|
|
1244
1245
|
b=new b(this);if(!(Fh(b)&&wd(b)&&Uc(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()===Eg.COMMENT))throw Error("The class registered as a comment icon does not conform to the ICommentIcon interface");b=this.addIcon(b)}$.Ka++;b.setText(a);$.Ka--}else this.removeIcon(Eg.COMMENT);p(new (t(q.BLOCK_CHANGE))(this,"comment",
|
|
1245
1246
|
null,d,a))}}setWarningText(){}setMutator(){}addIcon(a){if(this.hasIcon(a.getType()))throw new rn(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 Eg?this.icons.find(b=>b.getType().equals(a)):this.icons.find(b=>b.getType().toString()===
|
|
1246
1247
|
a)}getIcons(){return[...this.icons]}getRelativeToSurfaceXY(){return this.xy}moveBy(a,b,c){if(this.parentBlock_)throw Error("Block has parent");var d=new (t(q.BLOCK_MOVE))(this);c&&d.setReason(c);this.xy.translate(a,b);d.recordNew();p(d)}makeConnection_(a){return new qn(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())?
|
|
1247
1248
|
b.allInputsFilled(a):!0}toDevString(){var a=this.type?'"'+this.type+'" block':"Block";this.id&&(a+=' (id="'+this.id+'")');return a}};Fn.COLLAPSED_INPUT_NAME="_TEMP_COLLAPSED_INPUT";Fn.COLLAPSED_FIELD_NAME="_TEMP_COLLAPSED_FIELD";var Nh=null,Kh=null,Gn={};Gn.connectionUiEffect=Ih;Gn.disconnectUiEffect=Mh;Gn.disconnectUiStop=Jh;Gn.disposeUiEffect=Hh;var Hn=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||new D(a.blockState.x||0,a.blockState.y||0);$.Ka++;try{var d=ce(a.blockState,b);Qh(d,c)}finally{$.Ka--}if(!d)return d;La()&&!d.isShadow()&&p(new (t(q.BLOCK_CREATE))(d));var e=d;bd().then(()=>$.A().focusNode(e));return d}};Hn.TYPE="block";Rc(Hn.TYPE,new Hn);var In={};In.bumpIntoBounds=Rh;In.bumpIntoBoundsHandler=Uh;In.bumpTopObjectsIntoBounds=Th;var Vh=null,Wh=null,Yh=void 0,Jn={};Jn.BlockPaster=Hn;Jn.copy=Zh;Jn.getLastCopiedData=function(){return Vh};Jn.getLastCopiedLocation=function(){return Yh};Jn.getLastCopiedWorkspace=function(){return Wh};Jn.paste=ai;Jn.registry=pl;Jn.setLastCopiedData=function(a){Vh=a};Jn.setLastCopiedLocation=function(a){Yh=a};Jn.setLastCopiedWorkspace=function(a){Wh=a};var Kn={};Kn.CollapseCommentBarButton=Um;Kn.CommentBarButton=Tm;Kn.CommentEditor=Vm;Kn.CommentView=Xm;Kn.DeleteCommentBarButton=Wm;Kn.RenderedWorkspaceComment=Jg;Kn.WorkspaceComment=Kg;var Bi=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=Aa();this.svgGroup=y(x.G,{id:this.id,"class":a},this.workspace.getCanvas());if(!this.isFlyoutLabel){var e=
|
|
1248
1249
|
y(x.RECT,{"class":"blocklyFlyoutButtonShadow",rx:Bi.BORDER_RADIUS,ry:Bi.BORDER_RADIUS,x:1,y:1},this.svgGroup);Oa(e,$a.PRESENTATION)}a=y(x.RECT,{"class":this.isFlyoutLabel?"blocklyFlyoutLabelBackground":"blocklyFlyoutButtonBackground",rx:Bi.BORDER_RADIUS,ry:Bi.BORDER_RADIUS},this.svgGroup);Oa(a,$a.PRESENTATION);b=y(x.TEXT,{"class":this.isFlyoutLabel?"blocklyFlyoutLabelText":"blocklyText",x:0,y:0,"text-anchor":"middle"},this.svgGroup);c=Nf(this.text);this.workspace.RTL&&(c+="\u200f");b.textContent=
|
|
1249
1250
|
c;this.isFlyoutLabel&&(this.svgText=b,this.workspace.getThemeManager().subscribe(this.svgText,"flyoutForegroundColour","fill"));Oa(b,$a.PRESENTATION);d=`${c}, ${this.isFlyoutLabel?$.C.ARIA_LABEL_HEADING:$.C.ARIA_LABEL_BUTTON}`;u(this.getFocusableElement(),w.LABEL,d);Oa(this.getFocusableElement(),$a.LISTITEM);d=$b(b,"fontSize");var f=$b(b,"fontWeight"),g=$b(b,"fontFamily");this.width=lb(b,d,f,g);c=ob(c,d,f,g);this.height=this.height||c.height;if(!this.isFlyoutLabel){this.width+=2*Bi.TEXT_MARGIN_X;
|
|
1250
|
-
this.height+=2*Bi.TEXT_MARGIN_Y;let
|
|
1251
|
+
this.height+=2*Bi.TEXT_MARGIN_Y;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=n(this.svgGroup,"pointerdown",this,this.onMouseDown);this.onMouseUpWrapper=n(this.svgGroup,"pointerup",
|
|
1251
1252
|
this,this.onMouseUp)}createDom(){return this.svgGroup}show(){this.updateTransform();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+
|
|
1252
1253
|
this.height,this.position.x,this.position.x+this.width)}getButtonText(){return this.text}getTargetWorkspace(){return this.targetWorkspace}getWorkspace(){return this.workspace}dispose(){ta(this.onMouseDownWrapper);ta(this.onMouseUpWrapper);this.svgGroup&&db(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();
|
|
1253
1254
|
this.isFlyoutLabel&&this.callbackKey?console.warn("Labels should not have callbacks. Label text: "+this.text):this.isFlyoutLabel||this.callbackKey&&this.targetWorkspace.getButtonCallback(this.callbackKey)?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=
|
|
@@ -1256,32 +1257,32 @@ Nn.NAVIGATE_UP="up";Nn.NAVIGATE_DOWN="down";Nn.DISCONNECT="disconnect";Nn.NEXT_S
|
|
|
1256
1257
|
var ui=a=>{if(a.isFlyout){let c=a.targetWorkspace;if(c)return ui(c)}var b;return(b=a.getRootWorkspace())!=null?b:a};Ii();Ji();Ki();var On={};On.names=ei;On.registerArrowNavigation=ti;On.registerCleanup=Fi;On.registerCopy=ki;On.registerCut=li;On.registerDefaultShortcuts=Ii;On.registerDelete=hi;On.registerDisconnectBlock=zi;On.registerDuplicate=Ei;On.registerEscape=fi;On.registerFocusToolbox=wi;On.registerFocusWorkspace=vi;On.registerHeadingNavigation=Ci;On.registerKeyboardNavigationShortcuts=Ji;
|
|
1257
1258
|
On.registerMovementShortcuts=ri;On.registerPaste=mi;On.registerPerformAction=Di;On.registerReadExtendedInformation=yi;On.registerReadInformation=xi;On.registerRedo=oi;On.registerScreenReaderShortcuts=Ki;On.registerShowContextMenu=si;On.registerShowTooltip=Gi;On.registerStackNavigation=Ai;On.registerToggleScreenreaderMode=Hi;On.registerUndo=ni;var Pn,Qn=Pn||(Pn={});Qn[Qn.CONSTRAINED=1]="CONSTRAINED";Qn[Qn.UNCONSTRAINED=2]="UNCONSTRAINED";
|
|
1258
1259
|
var Rn=class{constructor(a){this.block=a;this.connectionPreviewer=this.connectionCandidate=this.startLoc=this.startChildConn=this.startParentConn=null;this.dragging=!1;this.allConnectionPairs=[];this.moveMode=Pn.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||
|
|
1259
|
-
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===Pn.CONSTRAINED){var c=b.workspace,d=this.WORKSPACE_MARGIN;a=this.WORKSPACE_MARGIN;var e=Math.max($.tg.connectingSnapRadius,$.tg.snapRadius)+2,f=c.getTopBlocks(!0).filter(X=>X.id!==b.id).map(X=>{X=X.getBoundingRectangle();return new cc(X.top-e,X.bottom+e,X.left-e,X.right+e)}),g,
|
|
1260
|
-
c.getToolbox())==null?void 0:g.getWidth();g=c.getParentSvg().clientWidth-(
|
|
1260
|
+
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===Pn.CONSTRAINED){var c=b.workspace,d=this.WORKSPACE_MARGIN;a=this.WORKSPACE_MARGIN;var e=Math.max($.tg.connectingSnapRadius,$.tg.snapRadius)+2,f=c.getTopBlocks(!0).filter(X=>X.id!==b.id).map(X=>{X=X.getBoundingRectangle();return new cc(X.top-e,X.bottom+e,X.left-e,X.right+e)}),g,h=(g=
|
|
1261
|
+
c.getToolbox())==null?void 0:g.getWidth();g=c.getParentSvg().clientWidth-(h!=null?h:0);c.getParentSvg();({width:h}=b.getHeightWidth());var m=function(X){for(let ia of f)if(X.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 G=m(E);G!=null;)z=G.left+G.getWidth()+80,G=G.top+G.getHeight()+c,z+h<=g||(d=G,z=a),b.moveBy(z-E.left,d-E.top,["cleanup"]),E=b.getBoundingRectangle(),
|
|
1261
1262
|
G=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=ae(a)))return a=be(a,this.block.workspace.targetWorkspace,{recordUndo:!0}),$.Pc=!1,this.positionNewBlock(this.block,a),$.Pc=!0,a;return this.block}announceMove(a=!1){if(this.connectionCandidate)a=Eh(this.connectionCandidate.local,this.connectionCandidate.neighbour,this.hasMultipleCompatibleConnections.bind(this),
|
|
1262
1263
|
a);else{let b=a?this.block.getStackBlocksCountLabel():"";a=$.C.ANNOUNCE_MOVE_WORKSPACE;a=a.replace("%1",b)}Za(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!==
|
|
1263
|
-
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 (ja(
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
c.type===K.OUTPUT_VALUE?(
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
a
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1264
|
+
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 (ja(k.CONNECTION_PREVIEWER,this.workspace.options))(this.block);jb();this.workspace.setResizesEnabled(!1);Jh();b=this.shouldHealStack(a);this.storeInitialConnections(b);this.shouldDisconnect(b)&&this.disconnectBlock(b);this.block.setDragging(!0);this.enableAllDraggedBlocks(this.block);
|
|
1265
|
+
a instanceof KeyboardEvent?(this.cacheAllConnectionPairs(),this.updateConnectionPreview(this.block,new D(0,0))&&this.block.moveDuringDrag(this.determineConnectionOffset()),this.allConnectionPairs.length?Oi(this.workspace):Ni(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);
|
|
1266
|
+
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=>
|
|
1267
|
+
wd(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);
|
|
1268
|
+
Mh(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,
|
|
1269
|
+
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 (t(q.BLOCK_DRAG))(this.block,!0,this.block.getDescendants(!1));p(a)}fireDragEndEvent(){var a=new (t(q.BLOCK_DRAG))(this.block,!1,this.block.getDescendants(!1));p(a)}fireMoveEvent(){if(!this.block.isDeadOrDying()){var a=new (t(q.BLOCK_MOVE))(this.block);a.setReason(["drag"]);a.oldCoordinate=this.startLoc;a.recordNew();p(a)}}drag(a,
|
|
1270
|
+
b){this.updateMoveMode(b);this.moveMode===Pn.UNCONSTRAINED&&this.block.moveDuringDrag(a);b=!!this.connectionCandidate;this.updateConnectionPreview(this.block,D.difference(a,this.startLoc));if(this.connectionCandidate)this.moveMode===Pn.CONSTRAINED&&this.block.moveDuringDrag(this.determineConnectionOffset());else if(this.moveMode===Pn.CONSTRAINED&&(this.allConnectionPairs.length||Ni(this.workspace,!0),!b)){this.workspace.getAudioManager().playErrorBeep();return}this.announceMove()}determineConnectionOffset(){var {local:a,
|
|
1271
|
+
neighbour:b}=this.connectionCandidate,c=this.startLoc.x+(b.x-a.x),d=this.startLoc.y+(b.y-a.y),e=this.BLOCK_CONNECTION_OFFSET;a.type===K.PREVIOUS_STATEMENT||a.type===K.OUTPUT_VALUE?(c+=e,d+=e):(c-=e,d-=e);return new D(c,d)}updateConnectionPreview(a,b){var c=this.connectionCandidate,d,e=(d=this.getInitialCandidate())!=null?d:this.getConnectionCandidate(b);if(e){var f=c&&this.currCandidateIsBetter(c,b,e)?c:e;this.connectionCandidate=f;var {local:g,neighbour:h}=f;f=g.type===K.OUTPUT_VALUE||g.type===K.PREVIOUS_STATEMENT;
|
|
1272
|
+
var m,z=h.isConnected()&&!((m=h.targetBlock())==null?0:m.isInsertionMarker());if(f&&z&&!this.orphanCanConnectAtEnd(a,h.targetBlock(),g.type)){var E;(E=this.connectionPreviewer)==null||E.previewReplacement(g,h,h.targetBlock())}else{var G;(G=this.connectionPreviewer)==null||G.previewConnection(g,h)}return h}if(this.moveMode===Pn.CONSTRAINED){E=c==null?void 0:c.neighbour.getSourceBlock();let X;m=(X=E==null?void 0:E.getRootBlock())!=null?X:E;m===a&&(m=E);E=this.getDirectionToNewLocation(D.sum(this.startLoc,
|
|
1273
|
+
b));if((z=m)==null||!z.getBoundingRectangle())return;G=a.workspace.getTopBlocks().map(ia=>ia.getBoundingRectangle());m=Math.min(...G.map(ia=>ia.left));switch(E){case qi.LEFT:case qi.UP:E=Math.min(...G.map(ia=>ia.top));m=new D(m,E-this.BLOCK_CONNECTION_OFFSET*2-a.getHeightWidth().height);break;default:E=Math.max(...G.map(ia=>ia.bottom)),m=new D(m,E+this.BLOCK_CONNECTION_OFFSET*2)}a.moveDuringDrag(m)}(f=this.connectionPreviewer)==null||f.hidePreview();this.connectionCandidate=null}orphanCanConnectAtEnd(a,
|
|
1274
|
+
b,c){return!!qn.getConnectionForOrphanedConnection(a,c===K.OUTPUT_VALUE?b.outputConnection:b.previousConnection)}currCandidateIsBetter(a,b,c){if(this.moveMode===Pn.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-$.tg.currentConnectionPreference}getConnectionCandidate(a){return this.moveMode===Pn.CONSTRAINED?this.findTraversalCandidate(a):this.getClosestCandidate(this.block,a)}getClosestCandidate(a,b){var c=this.getSearchRadius();
|
|
1275
|
+
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===Pn.CONSTRAINED?Infinity:this.connectionCandidate?$.tg.connectingSnapRadius:$.tg.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=>!!d);c=[];for(let d of b)a.includes(d)||
|
|
1276
|
+
c.push(d);c.reverse();return[...a,...c]}endDrag(a,b){b===Ln.DELETE&&Hh(this.block);this.originalEventGroup=$.fd;this.fireDragEndEvent();this.fireMoveEvent();kb();Jh();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:f.moveOffDragLayer(e,100,!1)});this.block.setDragging(!1);
|
|
1277
|
+
this.redisableAllDraggedBlocks(this.block)}this.connectionCandidate?(this.applyConnections(this.connectionCandidate),this.disposeStep()):(b!==Ln.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=$.fd;$.r(this.originalEventGroup);this.block.snapToGrid();var b;(b=this.connectionPreviewer)==null||b.dispose();
|
|
1278
|
+
this.workspace.setResizesEnabled(!0);$.r(a)}applyConnections(a){var {local:b,neighbour:c}=a;b.connect(c);var d=b.isSuperior()?c:b,e=this.block.getRootBlock();bd().then(()=>{Ih(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 K.INPUT_VALUE:this.block.outputConnection&&
|
|
1278
1279
|
this.startParentConn.connect(this.block.outputConnection);break;case K.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)});Rh(this.workspace,this.workspace.getMetricsManager().getScrollMetrics(!0),
|
|
1279
|
-
this.block)}this.startParentConn=this.startChildConn=null;this.block.setDragging(!1);this.redisableAllDraggedBlocks(this.block);this.dragging=!1;Za($.C.ANNOUNCE_MOVE_CANCELED)}findTraversalCandidate(a){var b=this.getDirectionToNewLocation(D.sum(this.startLoc,a)),c=this.allConnectionPairs;if(b===qi.NONE||!c.length)return this.connectionCandidate;b=b===qi.RIGHT||b===qi.DOWN;var d=c.findIndex(f=>{var g,
|
|
1280
|
-
null?void 0:
|
|
1281
|
-
b){if(a.getParent())return!1;var c=a.workspace.getTopBlocks(!0),d=a.getBoundingRectangle(),e=(b=b===qi.UP)?"top":"bottom",f=b?(g,
|
|
1280
|
+
this.block)}this.startParentConn=this.startChildConn=null;this.block.setDragging(!1);this.redisableAllDraggedBlocks(this.block);this.dragging=!1;Za($.C.ANNOUNCE_MOVE_CANCELED)}findTraversalCandidate(a){var b=this.getDirectionToNewLocation(D.sum(this.startLoc,a)),c=this.allConnectionPairs;if(b===qi.NONE||!c.length)return this.connectionCandidate;b=b===qi.RIGHT||b===qi.DOWN;var d=c.findIndex(f=>{var g,h;return((g=this.connectionCandidate)==null?void 0:g.local)===f.local&&((h=this.connectionCandidate)==
|
|
1281
|
+
null?void 0:h.neighbour)===f.neighbour}),e=this.block.workspace.getNavigator();return b?d===-1?this.isInTerminalPosition(this.block,qi.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,qi.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,
|
|
1282
|
+
b){if(a.getParent())return!1;var c=a.workspace.getTopBlocks(!0),d=a.getBoundingRectangle(),e=(b=b===qi.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();
|
|
1282
1283
|
a=D.difference(a,b);var {x:c,y:d}=a;return c<0?qi.LEFT:c>0?qi.RIGHT:d<0?qi.UP:d>0?qi.DOWN:qi.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())&&
|
|
1283
|
-
b.push(...this.getAllConnections(a)));return b}getInitialCandidate(){var a=this.workspace.getSvgGroup().querySelector(`.${qb.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(
|
|
1284
|
-
g.canConnect(
|
|
1284
|
+
b.push(...this.getAllConnections(a)));return b}getInitialCandidate(){var a=this.workspace.getSvgGroup().querySelector(`.${qb.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=>
|
|
1285
|
+
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=
|
|
1285
1286
|
a instanceof KeyboardEvent&&!a.ctrlKey&&!a.metaKey?Pn.CONSTRAINED:Pn.UNCONSTRAINED}enableAllDraggedBlocks(a){var b=$.Pc;$.Pc=!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))});$.Pc=b}redisableAllDraggedBlocks(a){var b=$.Pc;$.Pc=!1;a.getDescendants(!1).forEach(c=>{var d;(d=this.lastBlockDisabledReasons.get(c.id))==null||d.forEach(e=>{c.setDisabledReason(!0,
|
|
1286
1287
|
e)})});$.Pc=b}};var Sn=class extends gn{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();v(this.svgRoot,"blocklyTextBubble")}getText(){return this.text}setText(a){this.text=a;db(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&&
|
|
1287
1288
|
this.rightAlignTextFragments(b.getBBox().width,a);return b}createParagraph(a){return y(x.G,{"class":"blocklyText blocklyBubbleText blocklyNoPointerEvents",transform:`translate(0,${gn.BORDER_WIDTH})`,style:`direction: ${this.workspace.RTL?"rtl":"ltr"}`},a)}createTextFragments(a,b){var c=1;return b.split("\n").map(d=>{var e=y(x.TEXT,{y:`${c}em`,x:gn.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",
|
|
@@ -1303,7 +1304,7 @@ a.clientY);a=pc(this.workspace,this.getRelativeToSurfaceXY());var b,c,d=(b=this.
|
|
|
1303
1304
|
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){v(this.svgGroup,a)}removeClass(a){bb(this.svgGroup,a)}setDragging(a){(this.dragging=
|
|
1304
1305
|
a)?(this.translation="",Ik.push(...this.getConnections_(!0)),this.addClass("blocklyDragging")):(Ik.length=0,this.removeClass("blocklyDragging"));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?bb(this.svgGroup,"blocklyNotEditable"):v(this.svgGroup,"blocklyNotEditable");a=this.getIcons();for(let b=0;b<a.length;b++)a[b].updateEditable()}setShadow(a){super.setShadow(a);
|
|
1305
1306
|
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=null,c=Number.MAX_SAFE_INTEGER,d=this.getRelativeToSurfaceXY();for(let e of a)a=
|
|
1306
|
-
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;yf();lg();b&&(this.unplug(a),Hh(this));var c=$.A(),d,e;b=(e=(d=c.getFocusedNode())==null?void 0:d.getFocusableElement())!=null?e:null;super.dispose(!!a);db(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
|
|
1307
|
+
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;yf();lg();b&&(this.unplug(a),Hh(this));var c=$.A(),d,e;b=(e=(d=c.getFocusedNode())==null?void 0:d.getFocusableElement())!=null?e:null;super.dispose(!!a);db(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;f=(h=a.closest(0,new D(0,0)).connection)==null?void 0:h.getSourceBlock()}}setTimeout(()=>
|
|
1307
1308
|
{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();$.A().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||($.r(!0),this.workspace.hideChaff(),this.outputConnection?this.dispose(!1,
|
|
1308
1309
|
!0):this.dispose(!0,!0),$.r(!1))}toCopyData(a=!1){return this.isInsertionMarker_?null:{paster:Hn.TYPE,blockState:ae(this,{addCoordinates:!0,addNextBlocks:a,saveIds:!1}),typeCounts:Jb(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();if(this.visuallyDisabled===a){let b;(b=this.getNextBlock())==
|
|
1309
1310
|
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(()=>{this.isDeadOrDying()||(this.warningTextDb.delete(b),this.setWarningText(a,
|
|
@@ -1314,21 +1315,21 @@ var b,c;(c=(b=this.pathObject).setStyle)==null||c.call(b,a.style);this.style=a.s
|
|
|
1314
1315
|
!1){var b=$.A().getFocusedNode(),c=this;if(!c.isDeadOrDying()){do{let d=c.getSvgRoot(),e=d.parentNode,f=e.childNodes;f[f.length-1]!==d&&e.appendChild(d);if(a)break;c=c.getParent()}while(c);b&&$.A().focusNode(b)}}setPreviousStatement(a,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,
|
|
1315
1316
|
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&&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=
|
|
1316
1317
|
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);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,
|
|
1317
|
-
b)}makeConnection_(a){return new xn(this,a)}getNextBlock(){return super.getNextBlock()}getPreviousBlock(){return super.getPreviousBlock()}bumpNeighbours(){var a=this.getRootBlock();if(!(this.isDeadOrDying()||this.workspace.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($.tg.snapRadius))c.getSourceBlock().getRootBlock()!==a&&(b.isConnected()&&c.isConnected()||(b.isSuperior()?
|
|
1318
|
-
|
|
1319
|
-
this.tightenChildrenEfficiently();kb()}tightenChildrenEfficiently(){for(let a of this.inputList){let b=a.connection;b&&b.tightenEfficiently()}this.nextConnection&&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,
|
|
1320
|
-
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,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]===
|
|
1321
|
-
{kind:"BLOCK"},ae(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?a.getNestingLevel()+1:0}getFocusableElement(){var a=this.getFullBlockField();return a?a.getFocusableElement():this.pathObject.svgPath}getFocusableTree(){return this.workspace}onNodeFocus(){this.recomputeAriaContext();
|
|
1322
|
-
a&&a!==this&&bd().then(()=>{this.workspace.scrollBoundsIntoView(this.getBoundingRectangleWithoutChildren())})}onNodeBlur(){this.unselect()}canBeFocused(){return!0}performAction(a){if(this.workspace.isFlyout)pi.mover.startMove(this,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=pe(a.RTL?
|
|
1323
|
-
b),ji.show(a,{message:b,id:"blockNavigationHint"});else if(a=this.workspace,b=pe("list_shortcuts"))b=$.C.HELP_PROMPT.replace("%1",b),ji.show(a,{message:b,id:"helpHint"})}}getParents(){for(var a=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)==
|
|
1324
|
-
void 0:(b=a.targetConnection)==null?void 0:b.getParentInput();return c?c.getRowId():this.id}recomputeAriaContext(){if(!this.getFullBlockField()){u(this.getFocusableElement(),w.LABEL,this.getAriaLabel(ph.STANDARD));Oa(this.getSvgRoot(),$a.PRESENTATION);let a=this.getFocusableElement();this.isInFlyout||Oa(a,$a.FIGURE);u(a,w.ROLEDESCRIPTION,this.getAriaRoleDescription())}}getAriaLabel(a){return vh(this,a)}getStackBlocksCountLabel(){for(var a=
|
|
1325
|
-
1?vh(this,ph.TERSE):$.C.BLOCK_LABEL_STACK_BLOCKS.replace("%1",a.toString())}};gi.INLINE=-1;gi.COLLAPSED_WARNING_ID="TEMP_COLLAPSED_WARNING_";var Un=class{constructor(){}onDragEnter(){}onDragOver(){}onDragExit(){}onDrop(){}getClientRect(){return null}shouldPreventMove(){return!1}};var Vn=class extends Un{constructor(){super();this.wouldDelete_=!1}wouldDelete(a){pi.mover.isMoving()?this.updateWouldDelete_(!1):a instanceof gi?(a=!a.getParent()&&a.isDeletable(),this.updateWouldDelete_(a)):this.updateWouldDelete_(ci(a)&&a.isDeletable());return this.wouldDelete_}updateWouldDelete_(a){this.wouldDelete_=a}};var Wn=class{constructor(a,b){this.element=a;this.type=b}getElement(){return this.element}getType(){return this.type}};var Xn=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=
|
|
1326
|
-
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
|
|
1327
|
-
0:f.autoClose);f=e?c.position:d.position;var
|
|
1318
|
+
b)}makeConnection_(a){return new xn(this,a)}getNextBlock(){return super.getNextBlock()}getPreviousBlock(){return super.getPreviousBlock()}bumpNeighbours(){var a=this.getRootBlock();if(!(this.isDeadOrDying()||this.workspace.isDragging()||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($.tg.snapRadius))c.getSourceBlock().getRootBlock()!==a&&(b.isConnected()&&c.isConnected()||(b.isSuperior()?
|
|
1319
|
+
c.bumpAwayFrom(b,!1):c.getSourceBlock().isDragging()||b.bumpAwayFrom(c,!0)))}}scheduleSnapAndBump(){this.snapToGrid();this.bumpNeighbours()}positionNearConnection(a,b,c){if(a.type===K.NEXT_STATEMENT||a.type===K.INPUT_VALUE){let d=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 ad(this)}render(){this.queueRender();cd()}renderEfficiently(){jb();this.isCollapsed()&&this.updateCollapsed();this.isEnabled()||
|
|
1320
|
+
this.updateDisabled();this.workspace.getRenderer().render(this);this.tightenChildrenEfficiently();kb()}tightenChildrenEfficiently(){for(let a of this.inputList){let b=a.connection;b&&b.tightenEfficiently()}this.nextConnection&&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,
|
|
1321
|
+
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,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]===
|
|
1322
|
+
"object"&&a(d[e])}var b=Object.assign({},{kind:"BLOCK"},ae(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?a.getNestingLevel()+1:0}getFocusableElement(){var a=this.getFullBlockField();return a?a.getFocusableElement():this.pathObject.svgPath}getFocusableTree(){return this.workspace}onNodeFocus(){this.recomputeAriaContext();
|
|
1323
|
+
this.select();var a=$.A().getFocusedNode();a&&a!==this&&bd().then(()=>{this.workspace.scrollBoundsIntoView(this.getBoundingRectangleWithoutChildren())})}onNodeBlur(){this.unselect()}canBeFocused(){return!0}performAction(a){if(this.workspace.isFlyout)pi.mover.startMove(this,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=pe(a.RTL?
|
|
1324
|
+
ei.NAVIGATE_LEFT:ei.NAVIGATE_RIGHT),b=$.C.KEYBOARD_NAV_BLOCK_NAVIGATION_HINT.replace("%1",b),ji.show(a,{message:b,id:"blockNavigationHint"});else if(a=this.workspace,b=pe("list_shortcuts"))b=$.C.HELP_PROMPT.replace("%1",b),ji.show(a,{message:b,id:"helpHint"})}}getParents(){for(var a=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)==
|
|
1325
|
+
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(){if(!this.getFullBlockField()){u(this.getFocusableElement(),w.LABEL,this.getAriaLabel(ph.STANDARD));Oa(this.getSvgRoot(),$a.PRESENTATION);let a=this.getFocusableElement();this.isInFlyout||Oa(a,$a.FIGURE);u(a,w.ROLEDESCRIPTION,this.getAriaRoleDescription())}}getAriaLabel(a){return vh(this,a)}getStackBlocksCountLabel(){for(var a=
|
|
1326
|
+
1,b=this.getNextBlock();b;)a++,b=b.getNextBlock();return a<=1?vh(this,ph.TERSE):$.C.BLOCK_LABEL_STACK_BLOCKS.replace("%1",a.toString())}};gi.INLINE=-1;gi.COLLAPSED_WARNING_ID="TEMP_COLLAPSED_WARNING_";var Un=class{constructor(){}onDragEnter(){}onDragOver(){}onDragExit(){}onDrop(){}getClientRect(){return null}shouldPreventMove(){return!1}};var Vn=class extends Un{constructor(){super();this.wouldDelete_=!1}wouldDelete(a){pi.mover.isMoving()?this.updateWouldDelete_(!1):a instanceof gi?(a=!a.getParent()&&a.isDeletable(),this.updateWouldDelete_(a)):this.updateWouldDelete_(ci(a)&&a.isDeletable());return this.wouldDelete_}updateWouldDelete_(a){this.wouldDelete_=a}};var Wn=class{constructor(a,b){this.element=a;this.type=b}getElement(){return this.element}getType(){return this.type}};var Xn=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=
|
|
1327
|
+
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===H.TOP;f===H.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?
|
|
1328
|
+
0:f.autoClose);f=e?c.position:d.position;var h=f===H.LEFT||f===H.RIGHT;if(f===H.TOP||f===H.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()||
|
|
1328
1329
|
!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),
|
|
1329
1330
|
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=
|
|
1330
1331
|
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,
|
|
1331
|
-
toolboxHeight:a.height,toolboxPosition:a.position,flyoutWidth:b.width,flyoutHeight:b.height}}};l(
|
|
1332
|
+
toolboxHeight:a.height,toolboxPosition:a.position,flyoutWidth:b.width,flyoutHeight:b.height}}};l(k.METRICS_MANAGER,"default",Xn);var Yn=class extends Xn{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,
|
|
1332
1333
|
top:0,left:0}}};var Zn=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 $n=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 Bi}};var ao=class{getFirstChild(){return null}getParent(){return null}getNextSibling(){return null}getPreviousSibling(){return null}getRowId(){return"error"}isNavigable(){return!1}isApplicable(a){return a instanceof Zn}};var bo=class{getFirstChild(a){return Pi(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),Qi(b,a,1)):null}getPreviousSibling(a){var b;
|
|
1333
1334
|
if((b=a.previousConnection)==null?0:b.targetBlock())return a.previousConnection;var c;return((c=a.outputConnection)==null?0:c.targetBlock())?Qi(a.outputConnection.targetBlock(),a,-1):null}getRowId(a){return a.getRowId()}isNavigable(a){return a.canBeFocused()}isApplicable(a){return a instanceof gi}};var co=class{getFirstChild(){return null}getParent(a){var b;return(b=a.getOwner())!=null?b:null}getNextSibling(a){var b;return Qi((b=a.getOwner())==null?void 0:b.getSourceBlock(),a,1)}getPreviousSibling(a){var b;return Qi((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 gn}};var eo=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 Tm}};var fo=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 Vm}};var go=class{getFirstChild(){return null}getParent(a){return a.getSourceBlock()}getNextSibling(a){if(a.getParentInput())return Qi(a.getSourceBlock(),a,1);if(a.type===K.NEXT_STATEMENT&&a.getSourceBlock().getSurroundParent()&&!a.targetConnection)return Qi(a.getSourceBlock().getSurroundParent(),a,1);switch(a.type){case K.NEXT_STATEMENT:return a.targetConnection;case K.PREVIOUS_STATEMENT:case K.OUTPUT_VALUE:return a.getSourceBlock()}return null}getPreviousSibling(a){if(a.getParentInput())return Qi(a.getParentInput().getSourceBlock(),
|
|
1334
1335
|
a,-1);switch(a.type){case K.NEXT_STATEMENT:return a.getSourceBlock();case K.PREVIOUS_STATEMENT:case K.OUTPUT_VALUE:return a.targetConnection}return null}getRowId(a){switch(a.type){case K.NEXT_STATEMENT:case K.PREVIOUS_STATEMENT:return a.id;case K.INPUT_VALUE:return a.getParentInput().getRowId();default:return a.getSourceBlock().getRowId()}}isNavigable(a){if(!a.canBeFocused())return!1;if(a.type===K.NEXT_STATEMENT){if(a.targetBlock())return!1;let b,c=(b=a.getSourceBlock().getRootBlock())!=null?b:a.getSourceBlock();
|
|
@@ -1349,7 +1350,7 @@ this.hScroll=null);this.vScroll&&(this.vScroll.dispose(),this.vScroll=null)}resi
|
|
|
1349
1350
|
(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{$.Ka++,this.hScroll&&b&&this.hScroll.resize(a),this.vScroll&&c&&this.vScroll.resize(a)}finally{$.Ka--}this.workspace.maybeFireViewportChangeEvent()}if(this.hScroll&&this.vScroll){if(!this.oldHostMetrics||this.oldHostMetrics.viewWidth!==a.viewWidth||this.oldHostMetrics.absoluteLeft!==a.absoluteLeft){let d;(d=
|
|
1350
1351
|
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&&
|
|
1351
1352
|
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());
|
|
1352
|
-
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 ro=class{load(a,b){a=new Zn(0,b.horizontalLayout?"x":"y");return new Wn(a,"sep")}gapForItem(a,b){var c;return(c=parseInt(String(a.gap)))!=null?c:b}disposeItem(){}getType(){return"sep"}};l(
|
|
1353
|
+
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 ro=class{load(a,b){a=new Zn(0,b.horizontalLayout?"x":"y");return new Wn(a,"sep")}gapForItem(a,b){var c;return(c=parseInt(String(a.gap)))!=null?c:b}disposeItem(){}getType(){return"sep"}};l(k.FLYOUT_INFLATER,"sep",ro);var so=class extends Vn{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 Xh(a);this.workspace_.setMetricsManager(new Yn(this.workspace_,this));this.workspace_.internalIsFlyout=
|
|
1353
1354
|
!0;this.workspace_.setVisible(this.visible);this.workspace_.setNavigator(new qo(this));this.id=Ca();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_=y(a,{"class":"blocklyFlyout"});this.svgGroup_.style.display="none";this.svgBackground_=y(x.PATH,{"class":"blocklyFlyoutBackground"},this.svgGroup_);this.svgGroup_.appendChild(this.workspace_.createDom());
|
|
1354
1355
|
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"&&($.A().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();
|
|
1355
1356
|
this.workspace_.scrollbar=new wj(this.workspace_,this.horizontalLayout,!this.horizontalLayout,"blocklyFlyoutScrollbar",this.SCROLLBAR_MARGIN);this.hide();this.boundEvents.push(n(this.svgGroup_,"wheel",this,this.wheel_,!1,{passive:!1}));this.boundEvents.push(n(this.svgBackground_,"pointerdown",this,this.onMouseDown));this.workspace_.getGesture=this.targetWorkspace.getGesture.bind(this.targetWorkspace);this.workspace_.setVariableMap(this.targetWorkspace.getVariableMap());this.workspace_.createPotentialVariableMap();
|
|
@@ -1361,11 +1362,11 @@ typeof a==="string"&&(a=this.getDynamicCategoryContents(a));this.setVisible(!0);
|
|
|
1361
1362
|
this.getContents().map(c=>c.getElement()).filter(c=>c.canBeFocused()).map(c=>c.getFocusableElement().id);u(this.getWorkspace().getCanvas(),w.OWNS,a.join(" "));this.targetWorkspace.isMutator||this.autoClose?Oa(this.getWorkspace().svgGroup_,$a.PRESENTATION):Oa(this.getWorkspace().svgGroup_,$a.REGION);var b=(a=(b=this.targetWorkspace.getToolbox())==null?void 0:b.getSelectedItem())&&oh(a)?a.getName():"";b=$.C.WORKSPACE_LABEL_FLYOUT_WORKSPACE.replace("%1",b).trim();u(this.getWorkspace().getCanvas(),w.LABEL,
|
|
1362
1363
|
b);Oa(this.getWorkspace().getCanvas(),$a.LIST)}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=Cc(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 Wn(new Zn(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(),
|
|
1363
1364
|
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())==
|
|
1364
|
-
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=da(
|
|
1365
|
+
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=da(k.FLYOUT_INFLATER,a,void 0))?(b=new b,this.inflaters.set(a,b),b):null}};var to=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,
|
|
1365
1366
|
a.y);else throw new TypeError("Invalid state.");}};var uo=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=
|
|
1366
1367
|
this.isPinchZoomEnabled=null;this.mostRecentEvent=a;this.currentDragDeltaXY=new D(0,0)}dispose(){qa=null;of=!1;this.creatorWorkspace.clearGesture();for(let a of this.boundEvents)ta(a);this.boundEvents.length=0}updateFromEvent(a){var b=new D(a.clientX,a.clientY);this.updateDragDelta(b)&&(this.updateIsDragging(a),ka());this.mostRecentEvent=a}updateDragDelta(a){this.currentDragDeltaXY=D.difference(a,this.mouseDownXY);return this.hasExceededDragRadius?!1:this.hasExceededDragRadius=D.magnitude(this.currentDragDeltaXY)>
|
|
1367
1368
|
(this.flyout?$.tg.flyoutDragRadius:$.tg.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 to(this.startWorkspace_),this.workspaceDragger.startDrag()}updateIsDragging(a){if(!this.startWorkspace_)throw Error("Cannot update dragging because the start workspace is undefined");
|
|
1368
|
-
if(this.calledUpdateIsDragging)throw Error("updateIsDragging_ should only be called once per gesture.");this.calledUpdateIsDragging=!0;var b=Db();b&&di(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 (ja(
|
|
1369
|
+
if(this.calledUpdateIsDragging)throw Error("updateIsDragging_ should only be called once per gesture.");this.calledUpdateIsDragging=!0;var b=Db();b&&di(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 (ja(k.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");
|
|
1369
1370
|
this.isPinchZoomEnabled=this.startWorkspace_.options.zoomOptions&&this.startWorkspace_.options.zoomOptions.pinch;ua(a)?this.cancel():(this.gestureHasStarted=!0,Jh(),this.startWorkspace_.updateScreenCalculationsIfScrolled(),this.startWorkspace_.isMutator&&this.startWorkspace_.resize(),this.currentDropdownOwner=Le,this.startWorkspace_.hideChaff(!!this.flyout),this.startWorkspace_.markFocused(),this.mostRecentEvent=a,Af(),wa(a)?this.handleRightClick(a):(a.type.toLowerCase()==="pointerdown"&&a.pointerType!==
|
|
1370
1371
|
"mouse"&&ma(a,this),this.mouseDownXY=new D(a.clientX,a.clientY),this.bindMouseEvents(a),this.isEnding_||this.handleTouchStart(a)))}bindMouseEvents(a){this.boundEvents.push(n(document,"pointerdown",null,this.handleStart.bind(this),!0));this.boundEvents.push(n(document,"pointermove",null,this.handleMove.bind(this),!0));this.boundEvents.push(n(document,"pointerup",null,this.handleUp.bind(this),!0));this.boundEvents.push(n(document,"pointercancel",null,this.handleUp.bind(this),!0));a.preventDefault();
|
|
1371
1372
|
a.stopPropagation()}handleStart(a){this.isDragging()||(this.handleTouchStart(a),this.isMultiTouch()&&ka())}handleMove(a){if(this.isDragging()&&oa(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),ka())}handleUp(a){this.isDragging()||this.handleTouchEnd(a);
|
|
@@ -1387,7 +1388,7 @@ a;var b=this.spacing*a;this.pattern.setAttribute("width",`${b}`);this.pattern.se
|
|
|
1387
1388
|
`url(#${a.id})`);return a}};var vo=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);v(a,"blocklyBlockCanvas");a=this.createLayer(100);v(a,"blocklyBubbleCanvas")}createDragLayer(a){var b=y(x.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 y(x.G,
|
|
1388
1389
|
{},b)}createAnimationLayer(a){var b=y(x.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 y(x.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=
|
|
1389
1390
|
`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()&&$.A().focusNode(a)}moveOffDragLayer(a,b,c=!0){this.append(a,b);c&&a.canBeFocused()&&$.A().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;
|
|
1390
|
-
(d=this.layers.get(b))==null||d.appendChild(a)}}createLayer(a){var b=this.workspace.getSvgGroup(),c=y(x.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 wo={};wo.register=Ui;wo.unregister=function(a){ca(
|
|
1391
|
+
(d=this.layers.get(b))==null||d.appendChild(a)}}createLayer(a){var b=this.workspace.getSvgGroup(),c=y(x.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 wo={};wo.register=Ui;wo.unregister=function(a){ca(k.ICON,a)};var Mj=class extends jn{constructor(a){super(a);this.sourceBlock=a;this.textInputBubble=null;this.text="";this.bubbleSize=new hc(160,80);this.bubbleVisiblity=!1}getType(){return Mj.TYPE}initView(a){this.svgRoot||(super.initView(a),y(x.CIRCLE,{"class":"blocklyIconShape",r:"8",cx:"8",cy:"8"},this.svgRoot),y(x.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"},
|
|
1391
1392
|
this.svgRoot),y(x.RECT,{"class":"blocklyIconSymbol",x:"6.8",y:"10.78",height:"2",width:"2"},this.svgRoot),v(this.svgRoot,"blocklyCommentIcon"))}dispose(){super.dispose();var a;(a=this.textInputBubble)==null||a.dispose()}getWeight(){return Mj.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);
|
|
1392
1393
|
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;p(new (t(q.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=
|
|
1393
1394
|
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,15 +1420,16 @@ this.validatedBlockStyle_(b[c]);this.setDynamicProperties_(a)}setDynamicProperti
|
|
|
1419
1420
|
"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=
|
|
1420
1421
|
"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=Of(b.colourPrimary||"#000");b.colourPrimary=a.hex;b.colourSecondary=b.colourSecondary?Of(b.colourSecondary).hex:
|
|
1421
1422
|
this.generateSecondaryColour_(b.colourPrimary);b.colourTertiary=b.colourTertiary?Of(b.colourTertiary).hex:this.generateTertiaryColour_(b.colourPrimary);b.hat=b.hat||"";return b}generateSecondaryColour_(a){return Hf("#fff",a,.6)||a}generateTertiaryColour_(a){return Hf("#fff",a,.3)||a}dispose(){this.embossFilter&&db(this.embossFilter);this.disabledPattern&&db(this.disabledPattern);this.debugFilter&&db(this.debugFilter)}makeJaggedTeeth(){var a=this.JAGGED_TEETH_HEIGHT,b=this.JAGGED_TEETH_WIDTH,c=kh([I(b,
|
|
1422
|
-
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=gh("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,
|
|
1423
|
+
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=gh("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 gh("c",[I(0,f*m),I(-b,g*z),E])+gh("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 kh([I(g*
|
|
1423
1424
|
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=lh("a","0 0,0",a,I(-a,a)),c=lh("a","0 0,0",a,I(a,a));return{width:a,height:a,pathTop:b,pathBottom:c}}makeOutsideCorners(){var a=this.CORNER_RADIUS,b=ih(0,a)+lh("a","0 0,1",a,I(a,-a)),c=lh("a","0 0,1",a,I(a,a)),d=lh("a","0 0,1",a,I(-a,-a)),e=lh("a","0 0,1",a,I(-a,a));return{topLeft:b,topRight:c,
|
|
1424
1425
|
bottomRight:e,bottomLeft:d,rightHeight:a}}shapeFor(a){switch(a.type){case K.INPUT_VALUE:case K.OUTPUT_VALUE:return this.PUZZLE_TAB;case K.PREVIOUS_STATEMENT:case K.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=y(x.DEFS,{},a);a=y(x.FILTER,{id:"blocklyEmbossFilter"+this.randomIdentifier},this.defs);y(x.FEGAUSSIANBLUR,{"in":"SourceAlpha",stdDeviation:1,result:"blur"},a);b=y(x.FESPECULARLIGHTING,
|
|
1425
1426
|
{"in":"blur",surfaceScale:1,specularConstant:.5,specularExponent:10,"lighting-color":"white",result:"specOut"},a);y(x.FEPOINTLIGHT,{x:-5E3,y:-1E4,z:2E4},b);y(x.FECOMPOSITE,{"in":"specOut",in2:"SourceAlpha",operator:"in",result:"specOut"},a);y(x.FECOMPOSITE,{"in":"SourceGraphic",in2:"specOut",operator:"arithmetic",k1:0,k2:1,k3:1,k4:0},a);this.embossFilterId=a.id;this.embossFilter=a;a=y(x.PATTERN,{id:"blocklyDisabledPattern"+this.randomIdentifier,patternUnits:"userSpaceOnUse",width:10,height:10},this.defs);
|
|
1426
1427
|
y(x.RECT,{width:10,height:10,fill:"#aaa"},a);y(x.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=y(x.FILTER,{id:"blocklyDebugFilter"+
|
|
1427
1428
|
this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},this.defs),b=y(x.FECOMPONENTTRANSFER,{result:"outBlur"},a);y(x.FEFUNCA,{type:"table",tableValues:"0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"},b);y(x.FEFLOOD,{"flood-color":"#ff0000","flood-opacity":.5,result:"outColor"},a);y(x.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=ap.get(b))==null||!c.has(a)){c=document.createElement("style");
|
|
1428
|
-
c.className="blockly-renderer-style";c.textContent=this.getCSS_(b).join("\n");(a instanceof ShadowRoot?a:document.head).prepend(c);var d;c=(d=ap.get(b))!=null?d:new WeakSet;c.add(a);ap.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 {`,
|
|
1429
|
-
|
|
1430
|
-
"}",`${a} .blocklySelected>.blocklyPath {`,"stroke: #fc3;","stroke-width: 3px;","}",`${a} .blocklyHighlightedConnectionPath {`,"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};`,
|
|
1429
|
+
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=ap.get(b))!=null?d:new WeakSet;c.add(a);ap.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 {`,
|
|
1430
|
+
"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 {`,
|
|
1431
|
+
`font-family: ${this.FIELD_TEXT_FONTFAMILY};`,`font-weight: ${this.FIELD_TEXT_FONTWEIGHT};`,"}",`${a} .blocklySelected>.blocklyPath {`,"stroke: #fc3;","stroke-width: 3px;","}",`${a} .blocklyHighlightedConnectionPath {`,"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};`,
|
|
1432
|
+
"stroke: none;","}"]}};var cp=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;
|
|
1431
1433
|
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_+=ih(a.xPos,this.info_.startY);for(let c=0,d;d=b[c];c++)Q.isLeftRoundedCorner(d)?
|
|
1432
1434
|
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=
|
|
1433
1435
|
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+
|
|
@@ -1459,7 +1461,7 @@ a)}updateSelected(a){this.setClass_("blocklySelected",a)}updateDraggingDelete(a)
|
|
|
1459
1461
|
"class":"blocklyHighlightedConnectionPath",style:"display: none;",d:b,transform:c},this.svgRoot);this.connectionHighlights.set(a,b);return b}removeConnectionHighlight(a){var b=this.connectionHighlights.get(a);b&&(db(b),this.connectionHighlights.delete(a))}};var fp=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);
|
|
1460
1462
|
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 bp}makeRenderInfo_(a){return new dp(this,a)}makeDrawer_(a,b){return new cp(a,b)}makePathObject(a,b){return new ep(a,b,this.constants_)}getConstants(){return this.constants_}shouldHighlightConnection(a){return!a.getSourceBlock().isDragging()}orphanCanConnectAtEnd(a,b,c){return!!qn.getConnectionForOrphanedConnection(a,
|
|
1461
1463
|
c===K.OUTPUT_VALUE?b.outputConnection:b.previousConnection)}render(a){var b=this.makeRenderInfo_(a);b.measure();this.makeDrawer_(a,b).draw()}};var gp={};gp.BottomRow=Fo;gp.Connection=Go;gp.ConstantProvider=bp;gp.Drawer=cp;gp.ExternalValueInput=Lo;gp.Field=Mo;gp.Hat=No;gp.Icon=Oo;gp.InRowSpacer=Po;gp.InlineInput=Qo;gp.InputConnection=Ho;gp.InputRow=Ro;gp.JaggedEdge=So;gp.Measurable=Do;gp.NextConnection=To;gp.OutputConnection=Uo;gp.PathObject=ep;gp.PreviousConnection=Vo;gp.RenderInfo=dp;gp.Renderer=fp;gp.RoundCorner=Wo;gp.Row=Eo;gp.SpacerRow=Xo;gp.SquareCorner=Yo;gp.StatementInput=Zo;gp.TopRow=$o;gp.Types=Q;gp.init=lj;gp.register=kj;
|
|
1462
|
-
gp.unregister=function(a){ca(
|
|
1464
|
+
gp.unregister=function(a){ca(k.RENDERER,a)};var hp=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())&&bb(a,b),(b=this.theme.getClassName())&&v(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,
|
|
1463
1465
|
f||"")}for(let c of this.subscribedWorkspaces)c.hideChaff()}subscribeWorkspace(a){this.subscribedWorkspaces.push(a)}unsubscribeWorkspace(a){if(!Rb(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=
|
|
1464
1466
|
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 ip={CATEGORY_NAME:"VARIABLE_DYNAMIC"};ip.flyoutCategory=pj;
|
|
1465
1467
|
ip.flyoutCategoryBlocks=function(a){a=a.getVariableMap().getAllVariables();var b=[];if(a.length>0){if(Ob.variables_set_dynamic){var c=a[a.length-1];let d=$.F("block");d.setAttribute("type","variables_set_dynamic");d.setAttribute("gap","24");d.appendChild(Td(c));b.push(d)}if(Ob.variables_get_dynamic){a.sort(Gd);for(let d=0,e;e=a[d];d++)c=$.F("block"),c.setAttribute("type","variables_get_dynamic"),c.setAttribute("gap","8"),c.appendChild(Td(e)),b.push(c)}}return b};
|
|
@@ -1468,8 +1470,8 @@ case qn.REASON_TARGET_NULL:return"Target connection is null.";case qn.REASON_CHE
|
|
|
1468
1470
|
b){if(!a||!b)return qn.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?qn.REASON_SELF_CONNECTION:e.type!==wn[a.type]?qn.REASON_WRONG_TYPE:c.workspace!==d.workspace?qn.REASON_DIFFERENT_WORKSPACES:c.isShadow()&&!d.isShadow()?qn.REASON_SHADOW_PARENT:e.type===K.OUTPUT_VALUE&&d.previousConnection&&d.previousConnection.isConnected()||e.type===K.PREVIOUS_STATEMENT&&d.outputConnection&&d.outputConnection.isConnected()?
|
|
1469
1471
|
qn.REASON_PREVIOUS_AND_OUTPUT:qn.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 K.PREVIOUS_STATEMENT:return this.canConnectToPrevious_(a,b);case K.OUTPUT_VALUE:if(b.isConnected()&&!b.targetBlock().isInsertionMarker()||a.isConnected())return!1;break;case K.INPUT_VALUE:if(b.isConnected()&&!b.targetBlock().isMovable()&&
|
|
1470
1472
|
!b.targetBlock().isShadow())return!1;break;case K.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 Ik.includes(b)?!1:!0}canConnectToPrevious_(a,b){if(a.targetConnection||Ik.includes(b))return!1;if(!b.targetConnection)return!0;a=b.targetBlock();return a.isInsertionMarker()?!a.getPreviousBlock():!1}};
|
|
1471
|
-
l(
|
|
1472
|
-
a||new dn({});this.RTL=!!this.options.RTL;this.horizontalLayout=!!this.options.horizontalLayout;this.toolboxPosition=this.options.toolboxPosition;this.connectionChecker=new (ja(
|
|
1473
|
+
l(k.CONNECTION_CHECKER,"default",jp);var kp=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 Ao;this.readOnly=!1;this.potentialVariableMap=null;this.id=Ca();yb(this);this.options=
|
|
1474
|
+
a||new dn({});this.RTL=!!this.options.RTL;this.horizontalLayout=!!this.options.horizontalLayout;this.toolboxPosition=this.options.toolboxPosition;this.connectionChecker=new (ja(k.CONNECTION_CHECKER,this.options,!0))(this);this.variableMap=new (this.getVariableMapClass())(this);this.setIsReadOnly(this.options.readOnly)}dispose(){this.listeners.length=0;this.clear();zb(this)}sortObjects(a,b){var c=d=>({getBoundingRectangle:()=>{var e=d.getRelativeToSurfaceXY();return new cc(e.y,e.y,e.x,e.x)},moveBy:()=>
|
|
1473
1475
|
{}});return this.sortByOrigin(c(a),c(b))}sortByOrigin(a,b){var c=Math.sin(se(kp.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(!Rb(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)||
|
|
1474
1476
|
this.typedBlocksDB.set(a.type,[]);this.typedBlocksDB.get(a.type).push(a)}removeTypedBlock(a){Rb(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 "'+
|
|
1475
1477
|
a.id+'"');this.commentDB.set(a.id,a)}removeTopComment(a){if(!Rb(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));
|
|
@@ -1478,12 +1480,12 @@ return a.filter(c=>!c.isInsertionMarker())}clear(){this.isClearing=!0;try{let a=
|
|
|
1478
1480
|
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]);$.Pc=!1;try{for(c=0;c<e.length;c++)e[c].run(a)}finally{$.Pc=!0}}}redo(){this.undo(!0)}clearUndo(){this.undoStack_.length=0;this.redoStack_.length=0;Ja()}addChangeListener(a){this.listeners.push(a);
|
|
1479
1481
|
return a}removeChangeListener(a){Rb(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=
|
|
1480
1482
|
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 Ga(a)}static getAll(){return xb()}getVariableMapClass(){var a=
|
|
1481
|
-
ja(
|
|
1483
|
+
ja(k.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}};kp.SCAN_ANGLE=3;var lp=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()&&
|
|
1482
1484
|
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=
|
|
1483
1485
|
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(Md.getScopeChangeAudioCuesEnabled()){var b=
|
|
1484
1486
|
this.parentWorkspace.getNavigator(),c=b.getSourceBlockFromNode($.A().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=
|
|
1485
1487
|
a}getMuted(){return this.muted}};var Xh=class extends kp{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=
|
|
1486
|
-
[];this.toolboxCategoryCallbacks=new Map;this.flyoutButtonCallbacks=new Map;this.cachedParentSvg=null;this.topBoundedElements=[];this.dragTargetAreas=[];this.workspaceSelectionRing=this.workspaceFocusRing=this.zoomControls_=this.layerManager=null;this.navigator=new no;this.metricsManager=new (ja(
|
|
1488
|
+
[];this.toolboxCategoryCallbacks=new Map;this.flyoutButtonCallbacks=new Map;this.cachedParentSvg=null;this.topBoundedElements=[];this.dragTargetAreas=[];this.workspaceSelectionRing=this.workspaceFocusRing=this.zoomControls_=this.layerManager=null;this.navigator=new no;this.metricsManager=new (ja(k.METRICS_MANAGER,a,!0))(this);this.getMetrics=a.getMetrics||this.metricsManager.getMetrics.bind(this.metricsManager);this.setMetrics=a.setMetrics||Xh.setTopLevelWorkspaceMetrics;this.componentManager=new Rk;
|
|
1487
1489
|
this.connectionDBList=pn.init(this.connectionChecker);var b;this.audioManager=new lp((b=a.parentWorkspace)!=null?b:this);this.grid=this.options.gridPattern?new sj(this.options.gridPattern,a.gridOptions):null;Cm&&Ed&&this.registerToolboxCategoryCallback("VARIABLE",Ed);ip&&pj&&this.registerToolboxCategoryCallback("VARIABLE_DYNAMIC",pj);Bo&&dj&&(this.registerToolboxCategoryCallback("PROCEDURE",dj),this.addChangeListener(gj));this.addChangeListener(this.variableChangeCallback.bind(this));this.themeManager_=
|
|
1488
1490
|
this.options.parentWorkspace?this.options.parentWorkspace.getThemeManager():new hp(this,this.options.theme||cn);this.themeManager_.subscribeWorkspace(this);var c;this.renderer=lj(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||
|
|
1489
1491
|
(a=cn);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 (t(q.THEME_CHANGE))(this.getTheme().name,this.id);p(a)}updateBlockStyles(a){for(let b=0,c;c=a[b];b++){let d=
|
|
@@ -1492,11 +1494,11 @@ d;c+=e.y*d;a=a.parentNode}while(a&&a!==this.getParentSvg()&&a!==this.getInjectio
|
|
|
1492
1494
|
a}setInitialAriaContext(){if(!this.svgGroup_)throw Error("Must initialize svgGroup_ by calling `createDom` before calling setAriaContext");this.isFlyout||(Oa(this.svgGroup_,$a.REGION),this.isMutator?u(this.svgGroup_,w.LABEL,$.C.WORKSPACE_LABEL_MUTATOR_WORKSPACE):this.updateAriaLabel())}updateAriaLabel(){if(oe)u(this.svgGroup_,w.LABEL,$.C.WORKSPACE_LABEL_PLAIN);else{var a=this.getTopBlocks(!1).length;a==1?u(this.svgGroup_,w.LABEL,$.C.WORKSPACE_LABEL_1_STACK):u(this.svgGroup_,w.LABEL,$.C.WORKSPACE_LABEL_MANY_STACKS.replace("%1",
|
|
1493
1495
|
String(a)))}}createDom(a,b){this.injectionDiv||(this.injectionDiv=b!=null?b:null);this.svgGroup_=y(x.G,{"class":"blocklyWorkspace",id:this.id});a&&(this.svgBackground_=y(x.RECT,{height:"100%",width:"100%","class":a},this.svgGroup_),a==="blocklyMainBackground"&&this.grid?this.svgBackground_.style.fill="var(--blocklyGridPattern)":this.themeManager_.subscribe(this.svgBackground_,"workspaceBackgroundColour","fill"));this.workspaceSelectionRing=y(x.RECT,{fill:"none",class:"blocklyWorkspaceSelectionRing"},
|
|
1494
1496
|
this.svgGroup_);this.workspaceFocusRing=y(x.RECT,{fill:"none",class:"blocklyWorkspaceFocusRing"},this.svgGroup_);this.layerManager=new vo(this);this.svgBlockCanvas_=this.layerManager.getBlockLayer();this.svgBubbleCanvas_=this.layerManager.getBubbleLayer();this.setInitialAriaContext();this.isFlyout||(n(this.svgGroup_,"pointerdown",this,this.onMouseDown,!1),this.dummyWheelListener=()=>{},document.body.addEventListener("wheel",this.dummyWheelListener,{passive:!0}),n(this.svgGroup_,"wheel",this,this.onMouseWheel,
|
|
1495
|
-
!1,{passive:!1}));this.options.hasCategories&&(this.toolbox=new (ja(
|
|
1497
|
+
!1,{passive:!1}));this.options.hasCategories&&(this.toolbox=new (ja(k.TOOLBOX,this.options,!0))(this));this.grid&&this.grid.update(this.scale);this.recordDragTargets();a=this.options.parentWorkspace===null;this.renderer.createDom(this.svgGroup_,this.getTheme(),a?this.getInjectionDiv():void 0);$.A().registerTree(this,!!this.injectionDiv||this.isFlyout);return this.svgGroup_}dispose(){this.rendered=!1;this.currentGesture_&&this.currentGesture_.cancel();this.svgGroup_&&db(this.svgGroup_);this.toolbox&&
|
|
1496
1498
|
(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(),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_),
|
|
1497
1499
|
this.options.parentWorkspace||this.themeManager_.dispose());this.connectionDBList.length=0;this.toolboxCategoryCallbacks.clear();this.flyoutButtonCallbacks.clear();if(!this.options.parentWorkspace){let c=this.getParentSvg();c&&c.parentNode&&db(c.parentNode)}this.resizeHandlerWrapper&&(ta(this.resizeHandlerWrapper),this.resizeHandlerWrapper=null);this.dummyWheelListener&&(document.body.removeEventListener("wheel",this.dummyWheelListener),this.dummyWheelListener=null);var a;(a=this.workspaceFocusRing)==
|
|
1498
1500
|
null||a.remove();var b;(b=this.workspaceSelectionRing)==null||b.remove();$.A().isRegistered(this)&&$.A().unregisterTree(this)}addTrashcan(){this.trashcan=Xh.newTrashcan(this);var a=this.trashcan.createDom();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 ll(this);var a=this.zoomControls_.createDom();this.svgGroup_.appendChild(a)}copyOptionsForFlyout(){return new dn({parentWorkspace:this,
|
|
1499
|
-
rtl:this.RTL,oneBasedIndex:this.options.oneBasedIndex,horizontalLayout:this.horizontalLayout,renderer:this.options.renderer,rendererOverrides:this.options.rendererOverrides,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 (ja(
|
|
1501
|
+
rtl:this.RTL,oneBasedIndex:this.options.oneBasedIndex,horizontalLayout:this.horizontalLayout,renderer:this.options.renderer,rendererOverrides:this.options.rendererOverrides,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 (ja(k.FLYOUTS_HORIZONTAL_TOOLBOX,this.options,!0))(b):new (ja(k.FLYOUTS_VERTICAL_TOOLBOX,this.options,!0))(b);
|
|
1500
1502
|
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():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();
|
|
1501
1503
|
var a=this.componentManager.getComponents(Rk.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();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",
|
|
1502
1504
|
`${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=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=
|
|
@@ -1508,7 +1510,7 @@ this.highlightedBlocks.push(a):Rb(this.highlightedBlocks,a),a.setHighlighted(b)}
|
|
|
1508
1510
|
this.getGesture(a);b&&b.handleWsStart(a,this)}startDrag(a,b){xg(this,a,b)}moveDrag(a){return yg(this,a)}isDragging(){return pi.mover.isMoving()||this.currentGesture_!==null&&this.currentGesture_.isDragging()}isDraggable(){return this.options.moveOptions&&this.options.moveOptions.drag}isMovable(){return this.options.moveOptions&&!!this.options.moveOptions.scrollbars||this.options.moveOptions&&this.options.moveOptions.wheel||this.options.moveOptions&&this.options.moveOptions.drag||this.options.zoomOptions&&
|
|
1509
1511
|
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(uo.inProgress())a.preventDefault(),a.stopPropagation();else{var b=this.options.zoomOptions&&this.options.zoomOptions.wheel,c=this.options.moveOptions&&this.options.moveOptions.wheel;
|
|
1510
1512
|
if(b||c){var d=ya(a);if(va)var e=a.metaKey;b&&(a.ctrlKey||e||!c)?(d=-d.y/50,b=xa(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,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;
|
|
1511
|
-
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
|
|
1513
|
+
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=$.fd;b||$.r(!0);var c=this.getTopBlocks(!0),d=c.filter(g=>g.isMovable()),e=c.filter(g=>!g.isMovable()).map(g=>g.getBoundingRectangle()),f=0;c=this.renderer.getConstants().MIN_BLOCK_HEIGHT;for(let g of d){d=g.getBoundingRectangle();
|
|
1512
1514
|
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}$.r(b);this.setResizesEnabled(!0)}showContextMenu(a){if(!this.isReadOnly()&&!this.isFlyout){var b=Aj.registry.getContextMenuOptions({workspace:this,focusedNode:this},a);this.configureContextMenu&&this.configureContextMenu(b,a);if(a instanceof
|
|
1513
1515
|
PointerEvent)var c=new D(a.clientX,a.clientY);else c=this.RTL?this.getWidth()-5:5,c=pc(this,new D(c,5));mg(a,b,this.RTL,this,c)}}updateToolbox(a){if(a=Bc(a)){if(!this.options.languageTree)throw Error("Existing toolbox is null. Can't create new toolbox.");if(Ec(a)){if(!this.toolbox)throw Error("Existing toolbox has no categories. Can't change mode.");this.options.languageTree=a;this.toolbox.render(a)}else{if(!this.flyout)throw Error("Existing toolbox has categories. Can't change mode.");this.options.languageTree=
|
|
1514
1516
|
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():(Cb(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?c=this.options.zoomOptions.maxScale/this.scale:d<this.options.zoomOptions.minScale&&(c=this.options.zoomOptions.minScale/
|
|
@@ -1525,19 +1527,19 @@ super.addTopComment(a)}removeTopComment(a){this.removeTopBoundedElement(a);super
|
|
|
1525
1527
|
this.currentGesture_.cancel());!this.currentGesture_&&b&&(this.currentGesture_=new uo(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){qf();bg(this);Te();this.hideComponents(a)}hideComponents(a=!1){this.getComponentManager().getComponents(Rk.Capability.AUTOHIDEABLE,!0).forEach(b=>b.autoHide(a))}static setTopLevelWorkspaceMetrics(a){var b=
|
|
1526
1528
|
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&&v(this.injectionDiv,a)}removeClass(a){this.injectionDiv&&bb(this.injectionDiv,a)}setIsReadOnly(a){super.setIsReadOnly(a);a?this.addClass("blocklyReadOnly"):this.removeClass("blocklyReadOnly")}scrollBoundsIntoView(a,
|
|
1527
1529
|
b=10){if(!uo.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-
|
|
1528
|
-
a.bottom,d.top-a.top));this.scroll(this.scrollX+b*c,this.scrollY+e*c)}}}getFocusableElement(){return this.svgGroup_}getFocusableTree(){return this
|
|
1529
|
-
|
|
1530
|
-
|
|
1530
|
+
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.isFlyout||this.isMutator||this.updateAriaLabel();Xh.everFocused||this.options.parentWorkspace||(Za($.C.SCREENREADER_HINT.replace("%1",pe(ei.TOGGLE_SCREENREADER))),Xh.everFocused=!0)}onNodeBlur(){}canBeFocused(){return!0}getRootFocusableNode(){return this}getRestoredFocusableNode(a){if(a)return a;var b;a=(b=this.targetWorkspace)==null?
|
|
1531
|
+
void 0:b.getFlyout();if(this.isFlyout&&a){let c,d;return(d=(c=a.getContents().find(e=>{e=e.getElement();return rb(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 null}getNestedTrees(){var a=this.getAllBlocks().map(c=>c.getIcons()).flat().filter(c=>c instanceof $.Yg&&c.bubbleIsVisible()).map(c=>{var d;return(d=c.getBubble())==null?void 0:d.getWorkspace()}).filter(c=>!!c),b=this.getFlyout(!0);b&&a.push(b.getWorkspace());
|
|
1532
|
+
return a}searchForWorkspaceComment(a){for(let b of this.getTopComments())if(b instanceof Jg&&b.canBeFocused()&&b.getFocusableElement().id===a)return b}lookUpFocusableNode(a){var b,c=(b=this.targetWorkspace)==null?void 0:b.getFlyout();if(this.isFlyout&&c)for(var d of c.getContents())if(b=d.getElement(),rb(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()&&
|
|
1531
1533
|
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"));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)))!=
|
|
1532
|
-
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(let m of g){if(m.canBeFocused()&&m.getFocusableElement().id===a)return m;if(wd(m)){if((g=m.getBubble())&&g.canBeFocused()&&g.getFocusableElement().id===a)return g;if(g instanceof on&&g.getEditor().getFocusableElement().id===a)return g.getEditor()}}var
|
|
1533
|
-
a?this.trashcan:(
|
|
1534
|
-
l(
|
|
1534
|
+
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(let m of g){if(m.canBeFocused()&&m.getFocusableElement().id===a)return m;if(wd(m)){if((g=m.getBubble())&&g.canBeFocused()&&g.getFocusableElement().id===a)return g;if(g instanceof on&&g.getEditor().getFocusableElement().id===a)return g.getEditor()}}var h;return((h=this.trashcan)==null?void 0:h.getGloballyUniqueId())===
|
|
1535
|
+
a?this.trashcan:(h=(e=this.zoomControls_)==null?void 0:e.getControlWithId(a))?h:null}onTreeFocus(){}onTreeBlur(a){if(this.isFlyout&&this.targetWorkspace&&!$.A().ephemeralFocusTaken()){var b=this.targetWorkspace.getToolbox();b&&a===b||b&&typeof b.autoHide==="function"&&b.autoHide(!1)}}performAction(){ji.show(this,{message:$.C.KEYBOARD_NAV_WORKSPACE_NAVIGATION_HINT,id:"workspaceNavigationHint"})}getNavigator(){return this.navigator}setNavigator(a){this.navigator=a}};Xh.everFocused=!1;var mp=class{constructor(a,b,c,d){this.workspace=a;this.name=b;this.type=c||"";this.id=d||Ca()}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);p(new (t(q.VAR_CREATE))(a))}};
|
|
1536
|
+
l(k.VARIABLE_MODEL,"default",mp);var np=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=$.fd)||$.r(!0);try{c&&c.getId()!==a.getId()?this.renameVariableWithConflict(a,b,c,d):this.renameVariableAndUses(a,
|
|
1535
1537
|
b,d)}finally{this.potentialMap||$.r(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);p(new (t(q.VAR_TYPE_CHANGE))(a,c,b));return a}renameVariableAndUses(a,b,c){this.potentialMap||p(new (t(q.VAR_RENAME))(a,b));a.setName(b);for(b=
|
|
1536
1538
|
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||p(new (t(q.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, "'+
|
|
1537
|
-
c+'".');return d}if(c&&this.getVariableById(c))throw Error('Variable id, "'+c+'", is already in use.');d=c||Ca();b=b||"";c=ja(
|
|
1539
|
+
c+'".');return d}if(c&&this.getVariableById(c))throw Error('Variable id, "'+c+'", is already in use.');d=c||Ca();b=b||"";c=ja(k.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||p(new (t(q.VAR_CREATE))(d));return d}addVariable(a){var b=a.getType();this.variableMap.has(b)||this.variableMap.set(b,
|
|
1538
1540
|
new Map);var c;(c=this.variableMap.get(b))==null||c.set(a.getId(),a)}deleteVariable(a){var b=Xd(this.workspace,a.getId()),c="";this.potentialMap||(c=$.fd)||$.r(!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||p(new (t(q.VAR_DELETE))(a)),d.size===0&&this.variableMap.delete(a.getType()))}finally{this.potentialMap||$.r(c)}}getVariable(a,b){b=this.variableMap.get(b||"");if(!b)return null;
|
|
1539
|
-
var c;return(c=[...b.values()].find(d=>$.aj.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}};l(
|
|
1540
|
-
this.workspace.toolboxPosition===H.RIGHT?H.LEFT:H.RIGHT,this.flyout=new (ja(
|
|
1541
|
+
var c;return(c=[...b.values()].find(d=>$.aj.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}};l(k.VARIABLE_MAP,"default",np);var op=class extends Vn{constructor(a){super();this.workspace=a;this.id="trashcan";this.uniqueId=Aa();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===H.TOP?H.BOTTOM:H.TOP,this.flyout=new (ja(k.FLYOUTS_HORIZONTAL_TOOLBOX,this.workspace.options,!0))(a)):(a.toolboxPosition=
|
|
1542
|
+
this.workspace.toolboxPosition===H.RIGHT?H.LEFT:H.RIGHT,this.flyout=new (ja(k.FLYOUTS_VERTICAL_TOOLBOX,this.workspace.options,!0))(a)),this.workspace.addChangeListener(this.onDelete.bind(this)))}createDom(){this.svgGroup=y(x.G,{"class":"blocklyTrash",tabindex:"0",id:this.uniqueId});y(x.RECT,{width:55,height:68,x:-4,y:-4,rx:2,ry:2,fill:"none","class":"blocklyFocusRing"},this.svgGroup);Oa(this.svgGroup,$a.BUTTON);u(this.svgGroup,w.LABEL,$.C.OPEN_TRASH);var a=String(Math.random()).substring(2);var b=
|
|
1541
1543
|
y(x.CLIPPATH,{id:"blocklyTrashBodyClipPath"+a},this.svgGroup);y(x.RECT,{width:47,height:44,y:16},b);y(x.IMAGE,{width:gl.width,x:-0,height:gl.height,y:-32,"clip-path":"url(#blocklyTrashBodyClipPath"+a+")"},this.svgGroup).setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",this.workspace.options.pathToMedia+gl.url);b=y(x.CLIPPATH,{id:"blocklyTrashLidClipPath"+a},this.svgGroup);y(x.RECT,{width:47,height:16},b);b=y(x.G,{"class":"blocklyTrashLid"},this.svgGroup);b=y(x.SVG,{viewBox:"0 32 47 16",
|
|
1542
1544
|
width:47,height:16},b);y(x.IMAGE,{width:gl.width,height:gl.height,href:this.workspace.options.pathToMedia+gl.url},b);sa(this.svgGroup,"pointerdown",this,this.blockMouseDownWhenOpenable);sa(this.svgGroup,"pointerup",this,this.click);return this.svgGroup}init(){if(this.workspace.options.maxTrashcanContents>0){let a=this.flyout.createDom(x.SVG);v(a,"blocklyTrashcanFlyout");eb(a,this.workspace.getParentSvg());this.flyout.init(this.workspace)}this.workspace.getComponentManager().addComponent({component:this,
|
|
1543
1545
|
weight:Rk.ComponentWeight.TRASHCAN_WEIGHT,capabilities:[Rk.Capability.AUTOHIDEABLE,Rk.Capability.DELETE_AREA,Rk.Capability.DRAG_TARGET,Rk.Capability.POSITIONABLE]});this.initialized=!0;this.setLidOpen(!1)}dispose(){this.workspace.getComponentManager().removeComponent("trashcan");this.svgGroup&&db(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)}),
|
|
@@ -1546,19 +1548,19 @@ this.workspace.recordDragTargets()}}autoHide(a){!a&&this.flyout&&this.closeFlyou
|
|
|
1546
1548
|
","+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(){pi.mover.isMoving()||this.setLidOpen(this.wouldDelete_)}onDragExit(){pi.mover.isMoving()||this.setLidOpen(!1)}onDrop(){pi.mover.isMoving()||setTimeout(this.setLidOpen.bind(this,!1),100)}setLidOpen(a){if(this.isLidOpen!==
|
|
1547
1549
|
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 (t(q.TRASHCAN_OPEN))(a,this.workspace.id);p(a)}blockMouseDownWhenOpenable(a){!this.contentsIsOpen()&&this.hasContents()&&a.stopPropagation()}onDelete(a){if(!(this.workspace.options.maxTrashcanContents<=0||a.type!==q.BLOCK_DELETE||a.wasShadow)){if(!a.oldJson)throw Error("Encountered a delete event without proper oldJson");
|
|
1548
1550
|
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=
|
|
1549
|
-
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()}getGloballyUniqueId(){return this.uniqueId}};Tb("\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 pp=class{constructor(a,b){this.procedureModelClass=a;this.parameterModelClass=b;this.priority=75}save(a){a=a.getProcedureMap().getProcedures().map(b=>qj(b));return a.length?a:null}load(a,b){var c=b.getProcedureMap();for(let d of a)c.add(rj(this.procedureModelClass,this.parameterModelClass,d,b))}clear(a){a.getProcedureMap().clear()}},qp={};qp.ProcedureSerializer=pp;qp.loadProcedure=rj;qp.saveProcedure=qj;var rp=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=da(
|
|
1550
|
-
|
|
1551
|
+
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()}getGloballyUniqueId(){return this.uniqueId}};Tb("\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 pp=class{constructor(a,b){this.procedureModelClass=a;this.parameterModelClass=b;this.priority=75}save(a){a=a.getProcedureMap().getProcedures().map(b=>qj(b));return a.length?a:null}load(a,b){var c=b.getProcedureMap();for(let d of a)c.add(rj(this.procedureModelClass,this.parameterModelClass,d,b))}clear(a){a.getProcedureMap().clear()}},qp={};qp.ProcedureSerializer=pp;qp.loadProcedure=rj;qp.saveProcedure=qj;var rp=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=da(k.VARIABLE_MODEL,"default",void 0);a.forEach(d=>{c==null||c.load(d,b)})}clear(a){a.getVariableMap().clear()}};Nc("variables",new rp);var sp={};sp.VariableSerializer=rp;var tp={blocks:Gm,exceptions:Em,priorities:{BLOCKS:50,PROCEDURES:75,VARIABLES:100,WORKSPACE_COMMENTS:25},procedures:qp,registry:ml,variables:sp,workspaceComments:ol,workspaces:{load:function(a,b,{recordUndo:c=!1}={}){var d=ha(k.SERIALIZER,!0);if(d){d=Object.entries(d).sort((f,g)=>g[1].priority-f[1].priority);var e=$.Pc;$.Pc=c;(c=$.fd)||$.r(!0);jb();b instanceof Xh&&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||
|
|
1552
|
+
h.load(a[f],b)}b instanceof Xh&&b.setResizesEnabled(!0);kb();p(new (t(q.FINISHED_LOADING))(b));$.r(c);$.Pc=e}},save:function(a){var b=Object.create(null),c=ha(k.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:Vk});var up=class{load(a,b){a=new Bi(b.getWorkspace(),b.targetWorkspace,a,!0);a.show();return new Wn(a,"label")}gapForItem(a,b){return b}disposeItem(a){a=a.getElement();a instanceof Bi&&a.dispose()}getType(){return"label"}};l(k.FLYOUT_INFLATER,"label",up);var vp=class extends bp{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,
|
|
1551
1553
|
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=
|
|
1552
1554
|
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=
|
|
1553
1555
|
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=
|
|
1554
1556
|
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=
|
|
1555
1557
|
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);
|
|
1556
1558
|
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&&db(this.selectedGlowFilter)}makeStartHat(){var a=this.START_HAT_HEIGHT,b=this.START_HAT_WIDTH,c=gh("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/
|
|
1557
|
-
2;return jh(-e*f,c)+jh(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
|
|
1558
|
-
J("v",(e?-1:1)*g)+lh("a","0 0,"+
|
|
1559
|
+
2;return jh(-e*f,c)+jh(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 lh("a","0 0,"+h,d,I((f?1:-1)*d,(e?-1:1)*d))+
|
|
1560
|
+
J("v",(e?-1:1)*g)+lh("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 lh("a","0 0,"+f,b,I((e?1:-1)*b,(d?
|
|
1559
1561
|
-1:1)*b))+J("v",(d?-1:1)*c)+lh("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 K.INPUT_VALUE:case K.OUTPUT_VALUE:a=
|
|
1560
1562
|
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 K.PREVIOUS_STATEMENT:case K.NEXT_STATEMENT:return this.NOTCH;default:throw Error("Unknown type");}}makeNotch(){function a(z){return gh("c",[I(z*e/2,0),I(z*e*3/4,
|
|
1561
|
-
g/2),I(z*e,g)])+kh([I(z*e,f)])+gh("c",[I(z*e/4,g/2),I(z*e/2,g),I(z*e,g)])+J("h",z*d)+gh("c",[I(z*e/2,0),I(z*e*3/4,-(g/2)),I(z*e,-g)])+kh([I(z*e,-f)])+gh("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,
|
|
1563
|
+
g/2),I(z*e,g)])+kh([I(z*e,f)])+gh("c",[I(z*e/4,g/2),I(z*e/2,g),I(z*e,g)])+J("h",z*d)+gh("c",[I(z*e/2,0),I(z*e*3/4,-(g/2)),I(z*e,-g)])+kh([I(z*e,-f)])+gh("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=lh("a","0 0,0",a,I(-a,a)),c=lh("a","0 0,1",a,I(-a,a)),d=lh("a","0 0,0",a,I(a,a)),e=lh("a","0 0,1",a,I(a,
|
|
1562
1564
|
a));return{width:a,height:a,pathTop:b,pathBottom:d,rightWidth:a,rightHeight:a,pathTopRight:c,pathBottomRight:e}}generateSecondaryColour_(a){return Hf("#000",a,.15)||a}generateTertiaryColour_(a){return Hf("#000",a,.25)||a}createDom(a,b,c){super.createDom(a,b,c);a=y(x.DEFS,{},a);a=y(x.FILTER,{id:"blocklySelectedGlowFilter"+this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},a);y(x.FEGAUSSIANBLUR,{"in":"SourceGraphic",stdDeviation:this.SELECTED_GLOW_SIZE},a);b=y(x.FECOMPONENTTRANSFER,
|
|
1563
1565
|
{result:"outBlur"},a);y(x.FEFUNCA,{type:"table",tableValues:"0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"},b);y(x.FEFLOOD,{"flood-color":this.SELECTED_GLOW_COLOUR,"flood-opacity":1,result:"outColor"},a);y(x.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};`,
|
|
1564
1566
|
"}",`${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;",
|
|
@@ -1584,10 +1586,10 @@ this.htmlInput_.select())}widgetCreate_(){var a=this.getSourceBlock();if(!a)thro
|
|
|
1584
1586
|
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_();
|
|
1585
1587
|
this.bindInputEvents_(c);return c}widgetDispose_(){this.isBeingEdited_=!1;this.isTextValid_=!0;this.forceRerender();this.onFinishEditing_(this.value_);this.sourceBlock_&&La()&&this.valueWhenEditorWasOpened_!==null&&this.valueWhenEditorWasOpened_!==this.value_&&(p(new (t(q.BLOCK_CHANGE))(this.sourceBlock_,"field",this.name||null,this.valueWhenEditorWasOpened_,this.value_)),this.valueWhenEditorWasOpened_=null);$.r(!1);this.unbindInputEvents_();var a=Sf.style;a.width="auto";a.height="auto";a.fontSize=
|
|
1586
1588
|
"";a.transition="";a.boxShadow="";this.htmlInput_=null;a=this.getClickTarget_();if(!a)throw Error("A click target has not been set.");bb(a,"blocklyEditing")}onFinishEditing_(){}bindInputEvents_(a){this.onKeyDownWrapper=n(a,"keydown",this,this.onHtmlInputKeyDown_);this.onInputWrapper=n(a,"input",this,this.onHtmlInputChange)}unbindInputEvents_(){this.onKeyDownWrapper&&(ta(this.onKeyDownWrapper),this.onKeyDownWrapper=null);this.onInputWrapper&&(ta(this.onInputWrapper),this.onInputWrapper=null)}onHtmlInputKeyDown_(a){if(a.key===
|
|
1587
|
-
"Enter")ag(this),Te();else if(a.key==="Escape")this.setValue(this.htmlInput_.getAttribute("data-untyped-default-value"),!1),ag(this),Te();else if(a.key==="Tab"){a.preventDefault();var b;let c=(b=this.workspace_)==null?void 0:b.getNavigator(),d=e=>(e instanceof yp||e instanceof gi&&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 gi&&b.isSimpleReporter()?b.getFields().next().value:
|
|
1588
|
-
yp&&(ag(this),Te(),a=b.getSourceBlock(),b.isFullBlockField()&&a&&a instanceof gi?$.A().focusNode(a):$.A().focusNode(b),b.showEditor())}}onHtmlInputChange(){var a=this.value_;this.setValue(this.getValueFromEditorText_(this.htmlInput_.value),!1);this.sourceBlock_&&La()&&this.value_!==a&&p(new (t(q.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));
|
|
1589
|
-
b)}resizeEditor_(){bd().then(()=>{var a=this.getSourceBlock();if(!a)throw new bj;var b=Sf,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())==null?void 0:a.getRootBlock();if(!(b instanceof
|
|
1590
|
-
Rh(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()||$.C.FIELD_LABEL_EMPTY}recomputeAriaContext(){if(!super.recomputeAriaContext())return!1;
|
|
1589
|
+
"Enter")ag(this),Te(),a.stopPropagation();else if(a.key==="Escape")this.setValue(this.htmlInput_.getAttribute("data-untyped-default-value"),!1),ag(this),Te();else if(a.key==="Tab"){a.preventDefault();var b;let c=(b=this.workspace_)==null?void 0:b.getNavigator(),d=e=>(e instanceof yp||e instanceof gi&&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 gi&&b.isSimpleReporter()?b.getFields().next().value:
|
|
1590
|
+
b;b instanceof yp&&(ag(this),Te(),a=b.getSourceBlock(),b.isFullBlockField()&&a&&a instanceof gi?$.A().focusNode(a):$.A().focusNode(b),b.showEditor())}}onHtmlInputChange(){var a=this.value_;this.setValue(this.getValueFromEditorText_(this.htmlInput_.value),!1);this.sourceBlock_&&La()&&this.value_!==a&&p(new (t(q.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));
|
|
1591
|
+
this.setValue(a,b)}resizeEditor_(){bd().then(()=>{var a=this.getSourceBlock();if(!a)throw new bj;var b=Sf,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())==null?void 0:a.getRootBlock();if(!(b instanceof
|
|
1592
|
+
gi))return!1;Rh(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()||$.C.FIELD_LABEL_EMPTY}recomputeAriaContext(){if(!super.recomputeAriaContext())return!1;
|
|
1591
1593
|
var a=this.getFocusableElement(),b=this.computeAriaLabel(!0),c;!this.isCurrentlyEditable()||((c=this.getSourceBlock())==null?0:c.isInFlyout)||(b=$.C.FIELD_LABEL_EDIT_PREFIX.replace("%1",b));u(a,w.LABEL,b);return!0}};yp.BORDERRADIUS=4;$.zp=class extends yp{constructor(a,b,c){super(a,b,c)}initView(){super.initView();this.fieldGroup_&&v(this.fieldGroup_,"blocklyTextInputField")}doClassValidation_(a){return a===void 0?null:`${a}`}static fromJson(a){return new this(Nf(a.text),void 0,a)}getAriaTypeName(){return this.ariaTypeName||$.C.ARIA_TYPE_FIELD_TEXT_INPUT}};Pg("field_input",$.zp);$.zp.prototype.DEFAULT_VALUE="";var Ap=class extends Fo{constructor(a){super(a)}endsWithElemSpacer(){return!1}hasLeftSquareCorner(a){return!!a.outputConnection}hasRightSquareCorner(a){return!!a.outputConnection&&!a.statementInputCount&&!a.nextConnection}};var Oj=class extends Zo{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 Bp=class extends Do{constructor(a){super(a);this.width=this.height=0;this.type|=Q.getType("RIGHT_CONNECTION")}};var Cp=class extends $o{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 Dp=class extends dp{constructor(a,b){super(a,b);this.isInline=!0;this.renderer_=a;this.constants_=this.renderer_.getConstants();this.topRow=new Cp(this.constants_);this.bottomRow=new Ap(this.constants_);this.isMultiRow=!b.getInputsInline()||b.isCollapsed();this.hasStatementInput=b.statementInputCount>0;this.rightSide=this.outputConnection?new Bp(this.constants_):null;this.rightAlignedDummyInputs=new WeakMap}getRenderer(){return this.renderer_}measure(){this.createRows_();this.addElemSpacing_();
|
|
1592
1594
|
this.addRowSpacing_();this.adjustXPosition_();this.computeBounds_();this.alignRowElements_();this.finalize_()}shouldStartNewRow_(a,b){return b?b instanceof Cn||a instanceof Dn||b instanceof Dn?!0:a instanceof $.En||a instanceof Bn||a instanceof Cn?!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||
|
|
1593
1595
|
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;
|
|
@@ -1595,8 +1597,8 @@ var c=Q.isInputRow(a)&&a.hasStatement,d=Q.isInputRow(b)&&b.hasStatement;return d
|
|
|
1595
1597
|
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+
|
|
1596
1598
|
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 Bn||a instanceof Cn)&&b.hasDummyInput&&b.align===$.tn.LEFT&&a.align===$.tn.RIGHT)this.rightAlignedDummyInputs.set(b,a);else if(a instanceof Dn){b.elements.push(new Oj(this.constants_,a));b.hasStatement=!0;b.align===null&&(b.align=a.align);return}super.addInput_(a,b)}addAlignmentPadding_(a,
|
|
1597
1599
|
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:
|
|
1598
|
-
!!c.followsStatement;d=e+2>=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!d.precedesStatement;if(Q.isInputRow(f)&&f.hasStatement){f.measure();let g,
|
|
1599
|
-
|
|
1600
|
+
!!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 wh||h.field instanceof xp)||(c.width+=b-d);d+=
|
|
1601
|
+
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=
|
|
1600
1602
|
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];
|
|
1601
1603
|
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 Po(this.constants_,-d));c.elements.push(new Po(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-=
|
|
1602
1604
|
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:
|
|
@@ -1609,7 +1611,7 @@ for(let a of this.outlines.values())a.setAttribute("transform","scale(-1 1)")}up
|
|
|
1609
1611
|
b)),this.workspace.getRenderer().shouldHighlightConnection(b)&&b.highlight(),this.workspace.getRenderer().shouldHighlightConnection(a)&&a.highlight(),this.draggedConn=a,this.staticConn=b}finally{$.Ka--}}}shouldUseMarkerPreview(a,b){return b.type===K.PREVIOUS_STATEMENT||b.type===K.NEXT_STATEMENT||!(this.workspace.getRenderer()instanceof Fp)}previewMarker(a,b){var c=a.getSourceBlock(),d=this.createInsertionMarker(c),e=this.getMatchingConnection(c,d,a);if(!e)return null;d.queueRender();cd();e.connect(b);
|
|
1610
1612
|
var f={x:b.x-e.x,y:b.y-e.y},g=e.getOffsetInBlock().clone();bd().then(()=>{if(!d.isDeadOrDying()){$.Ka++;try{d==null||d.positionNearConnection(e,f,g),d==null||d.getSvgRoot().setAttribute("visibility","visible")}finally{$.Ka--}}});return e}serializeBlockToInsertionMarker(a){var b=ae(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);
|
|
1611
1613
|
a=ce(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(){$.Ka++;try{this.staticConn&&(this.staticConn.unhighlight(),this.staticConn=null),this.draggedConn&&(this.draggedConn.unhighlight(),this.draggedConn=null),this.fadedBlock&&
|
|
1612
|
-
(this.fadedBlock.fadeForReplacement(!1),this.fadedBlock=null),this.markerConn&&(this.hideInsertionMarker(this.markerConn),this.draggedConn=this.markerConn=null)}finally{$.Ka--}}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()}};l(
|
|
1614
|
+
(this.fadedBlock.fadeForReplacement(!1),this.fadedBlock=null),this.markerConn&&(this.hideInsertionMarker(this.markerConn),this.draggedConn=this.markerConn=null)}finally{$.Ka--}}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()}};l(k.CONNECTION_PREVIEWER,"default",Gp);var Hp={};Hp.Align=$.tn;Hp.DummyInput=Bn;Hp.EndRowInput=Cn;Hp.Input=An;Hp.StatementInput=Dn;Hp.ValueInput=$.En;Hp.inputTypes=$.he;var zj=!1;$.Ip=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||
|
|
1613
1615
|
(console.warn("No workspace specified in workspaceToCode call. Guessing."),a=Ab);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/,
|
|
1614
1616
|
"");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?
|
|
1615
1617
|
"":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&&
|
|
@@ -1623,13 +1625,13 @@ a.height-2*this.CORNER_RADIUS);a=this.getX();b=this.getY();this.positionAt_(this
|
|
|
1623
1625
|
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=ya(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);bg(this.workspace_);Te()}a.preventDefault();a.stopPropagation()}layout_(a){this.workspace_.scale=this.targetWorkspace.scale;var b=this.MARGIN,c=this.RTL?b:b+this.tabWidth_;
|
|
1624
1626
|
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_===H.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*
|
|
1625
1627
|
1.5+this.tabWidth_;a*=this.workspace_.scale;a+=Hc.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_!==H.LEFT||this.targetWorkspace.translate(this.targetWorkspace.scrollX+a,
|
|
1626
|
-
this.targetWorkspace.scrollY);this.width_=a;this.position();this.targetWorkspace.resizeContents();this.targetWorkspace.recordDragTargets()}}};Jp.registryName="verticalFlyout";l(
|
|
1628
|
+
this.targetWorkspace.scrollY);this.width_=a;this.position();this.targetWorkspace.resizeContents();this.targetWorkspace.recordDragTargets()}}};Jp.registryName="verticalFlyout";l(k.FLYOUTS_VERTICAL_TOOLBOX,"default",Jp);var Kp=class extends so{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(),
|
|
1627
1629
|
c=a.getViewMetrics();a=a.getToolboxMetrics();var d=this.toolboxPosition_===H.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,
|
|
1628
1630
|
b);a=this.getX();b=this.getY();this.positionAt_(this.getWidth(),this.getHeight(),a,b)}}setBackgroundPath(a,b){var c=this.toolboxPosition_===H.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,
|
|
1629
1631
|
-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=ya(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)==
|
|
1630
1632
|
null||e.setX(b);bg(this.workspace_);Te()}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_===
|
|
1631
1633
|
H.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+=Hc.scrollbarThickness;this.getHeight()!==a&&(this.targetWorkspace.scrollbar||this.autoClose||this.targetWorkspace.getFlyout()!==this||this.toolboxPosition_!==H.TOP||this.targetWorkspace.translate(this.targetWorkspace.scrollX,this.targetWorkspace.scrollY+
|
|
1632
|
-
a),this.height_=a,this.position(),this.targetWorkspace.resizeContents(),this.targetWorkspace.recordDragTargets())}};l(
|
|
1634
|
+
a),this.height_=a,this.position(),this.targetWorkspace.resizeContents(),this.targetWorkspace.recordDragTargets())}};l(k.FLYOUTS_HORIZONTAL_TOOLBOX,"default",Kp);var Lp=class extends eh{constructor(a,b,c,d,e){super(Xf.SKIP_SETUP);this.defaultType="";this.variableTypes=[];this.variable=null;this.SERIALIZABLE=!0;this.menuGenerator_=Lp.dropdownCreate;this.defaultVariableName=typeof a==="string"?a:"";this.size_=new hc(0,0);a!==Xf.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 bj;this.variable||(a=
|
|
1633
1635
|
$.Vd(a.workspace,null,this.defaultVariableName,this.defaultType),this.doValueUpdate_(a.getId()))}initView(){super.initView();v(this.fieldGroup_,"blocklyVariableField")}shouldAddBorderRect_(){var a=this.getSourceBlock();if(!a)throw new bj;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 bj;var c=a.getAttribute("id"),d=a.textContent,e=a.getAttribute("variabletype")||a.getAttribute("variableType")||
|
|
1634
1636
|
"";b=$.Vd(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: "+Zd(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(Lp);if(b!==null)return b;this.initModel();b=
|
|
1635
1637
|
{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 bj;this.loadLegacyState(Lp,a)||(a=$.Vd(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():
|
|
@@ -1637,7 +1639,7 @@ $.Vd(a.workspace,null,this.defaultVariableName,this.defaultType),this.doValueUpd
|
|
|
1637
1639
|
if(!b)throw new bj;this.variable=$.Ud(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;
|
|
1638
1640
|
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}`);
|
|
1639
1641
|
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){$.Qd(this.sourceBlock_.workspace,this.variable);return}if(a==="DELETE_VARIABLE_ID"&&this.variable){a=this.variable.getWorkspace();$.Yd(a,this.variable,this.sourceBlock_);return}}this.setValue(a)}referencesVariables(){return!0}static fromJson(a){return new this(Nf(a.variable),void 0,
|
|
1640
|
-
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
|
|
1642
|
+
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(Gd);
|
|
1641
1643
|
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())}};Pg("field_variable",Lp);var Mp=class extends yp{constructor(a,b,c,d,e,f){super(Xf.SKIP_SETUP);this.min_=-Infinity;this.max_=Infinity;this.precision_=0;this.decimalPlaces=null;this.spellcheck_=!1;a!==Xf.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);
|
|
1642
1644
|
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)||
|
|
1643
1645
|
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_)*
|
|
@@ -1649,12 +1651,12 @@ void 0,a)}recomputeAriaContext(){if(!super.recomputeAriaContext())return!1;var a
|
|
|
1649
1651
|
this.draggable.workspace.getDragTarget(a);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,Rk.Capability.DELETE_AREA)?a.wouldDelete(b):
|
|
1650
1652
|
!1}onDragEnd(a){var b=$.fd;if(this.draggable.workspace.getDragTarget(this.draggable.getRelativeToSurfaceXY())){var c;(c=this.dragTarget)==null||c.onDrop(this.draggable)}c=!1;this.shouldReturnToStart(this.draggable.getRelativeToSurfaceXY(),this.draggable)&&(c=!0,this.draggable.revertDrag());var d=ci(this.draggable)&&this.wouldDeleteDraggable(this.draggable.getRelativeToSurfaceXY(),this.draggable);d&&ci(this.draggable)?(this.draggable.endDrag(a,Ln.DELETE),$.r(b),this.draggable.dispose()):this.draggable.endDrag(a,
|
|
1651
1653
|
c?Ln.REVERT:Ln.COMMIT);$.r(!1);!d&&rb(this.draggable)&&$.A().focusNode(this.draggable)}onDragRevert(){this.draggable.revertDrag();rb(this.draggable)&&$.A().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}};
|
|
1652
|
-
l(
|
|
1654
|
+
l(k.BLOCK_DRAGGER,"default",Pp);var Qp={};Qp.BlockDragStrategy=Rn;Qp.BubbleDragStrategy=en;Qp.CommentDragStrategy=Sm;Qp.Dragger=Pp;var Rp={};Rp.BottomRow=Ap;Rp.ConstantProvider=vp;Rp.Drawer=wp;Rp.PathObject=Ep;Rp.RenderInfo=Dp;Rp.Renderer=Fp;Rp.RightConnectionShape=Bp;Rp.StatementInput=Oj;Rp.TopRow=Cp;Yj();var Sp={};Sp.registerCleanup=Dj;Sp.registerCollapse=Fj;Sp.registerCollapseExpandBlock=Qj;Sp.registerComment=Nj;Sp.registerCommentCreate=Wj;Sp.registerCommentDelete=Uj;Sp.registerCommentDuplicate=Vj;Sp.registerCommentOptions=function(){Vj();Uj();Wj()};Sp.registerDefaultOptions=Yj;Sp.registerDelete=Sj;Sp.registerDeleteAll=Kj;Sp.registerDisable=Rj;Sp.registerDuplicate=Lj;Sp.registerExpand=Gj;Sp.registerHelp=Tj;Sp.registerInline=Pj;Sp.registerRedo=Cj;Sp.registerUndo=Bj;var Tp=class{load(a,b){a=new Bi(b.getWorkspace(),b.targetWorkspace,a,!1);a.show();return new Wn(a,"button")}gapForItem(a,b){return b}disposeItem(a){a=a.getElement();a instanceof Bi&&a.dispose()}getType(){return"button"}};l(k.FLYOUT_INFLATER,"button",Tp);var Up={};Up.Bubble=gn;Up.MiniWorkspaceBubble=hn;Up.TextBubble=Sn;Up.TextInputBubble=on;var Vp=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(c=>{c.isInFlyout=!0;c=c.getFocusableElement();u(c,w.HIDDEN,!0);Oa(c,$a.PRESENTATION)});b=a.getFocusableElement();Pa(b,w.HIDDEN);Oa(b,$a.LISTITEM);this.addBlockListeners(a);
|
|
1653
1655
|
return new Wn(a,"block")}createBlock(a,b){a.blockxml?(a=typeof a.blockxml==="string"?$.tc(a.blockxml):a.blockxml,b=sg(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"]),"x"in a&&delete a.x,"y"in a&&delete a.y,b=be(a,b));return b}gapForItem(a,b){if(a.gap)var c=parseInt(String(a.gap));else a.blockxml&&(a=typeof a.blockxml==="string"?$.tc(a.blockxml):a.blockxml,c=parseInt(a.getAttribute("gap")));
|
|
1654
1656
|
return!c||isNaN(c)?b:c}disposeItem(a){a=a.getElement();a instanceof gi&&(this.removeListeners(a.id),a.dispose(!1,!1))}removeListeners(a){var b;((b=this.listeners.get(a))!=null?b:[]).forEach(c=>ta(c));this.listeners.delete(a)}setFlyout(a){if(this.flyout!==a){if(this.flyout){let c;(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,
|
|
1655
1657
|
c,d=(b=this.flyout)==null?void 0:(c=b.targetWorkspace)==null?void 0:c.isCapacityAvailable(Jb(a));a;)a.setDisabledReason(!d,"WORKSPACE_AT_BLOCK_CAPACITY"),a=a.getNextBlock()}addBlockListeners(a){var b=[];b.push(n(a.getSvgRoot(),"pointerdown",a,c=>{var d,e,f=(d=this.flyout)==null?void 0:(e=d.targetWorkspace)==null?void 0:e.getGesture(c);f&&this.flyout&&(f.setStartBlock(a),f.handleFlyoutStart(c,this.flyout))}));b.push(sa(a.getSvgRoot(),"pointermove",null,()=>{var c,d;((c=this.flyout)==null?0:(d=c.targetWorkspace)==
|
|
1656
1658
|
null?0:d.isDragging())||a.addSelect()}));b.push(sa(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||a&&a.type!==q.BLOCK_CREATE&&a.type!==q.BLOCK_DELETE||this.flyout.getWorkspace().getTopBlocks(!1).forEach(b=>{this.permanentlyDisabledBlocks.has(b)||this.updateStateBasedOnCapacity(b)})}getType(){return"block"}};
|
|
1657
|
-
l(
|
|
1659
|
+
l(k.FLYOUT_INFLATER,"block",Vp);var Wp=class extends bp{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 Xp=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_=
|
|
1658
1660
|
this.highlightConstants_.START_HAT;this.jaggedTeethPaths_=this.highlightConstants_.JAGGED_TEETH}getPath(){return this.steps_+"\n"+this.inlineSteps_}drawTopCorner(a){this.steps_+=ih(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_):
|
|
1659
1661
|
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_+=hh(b.xPos+b.width-this.highlightOffset,a.yPos)+this.puzzleTabPaths_.pathDown(this.RTL_)+J("v",c)}else this.steps_+=
|
|
1660
1662
|
hh(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_+=hh(b.xPos,a.yPos)+this.insideCornerPaths_.pathTop(this.RTL_)+J("v",c)+this.insideCornerPaths_.pathBottom(this.RTL_)+jh(a.width-b.xPos-this.insideCornerPaths_.width,0)}else this.steps_+=hh(b.xPos,a.yPos+a.height)+this.insideCornerPaths_.pathBottom(this.RTL_)+jh(a.width-b.xPos-this.insideCornerPaths_.width,0)}drawRightSideRow(a){var b=
|
|
@@ -1664,7 +1666,7 @@ a.capline+this.highlightOffset))}drawInlineInput(a){var b=this.highlightOffset,c
|
|
|
1664
1666
|
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);
|
|
1665
1667
|
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,
|
|
1666
1668
|
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 Zp=class{constructor(a){this.OFFSET=.5;this.constantProvider=a;this.START_POINT=ih(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=ih(c,c)+lh("a","0 0,0",a,I(-c-b,a-c)),e=lh("a","0 0,0",
|
|
1667
|
-
a+b,I(a+b,a+b)),f=ih(c,-c)+lh("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=ih(c,c)+lh("a","0 0,1",a-b,I(a-c,-c+b)),e=ih(b,a)+lh("a","0 0,1",a-b,I(a,-a+b)),f=-c,g=ih(c,f)+lh("a","0 0,1",a-b,I(-c+b,-f-a));return{height:a,topLeft(
|
|
1669
|
+
a+b,I(a+b,a+b)),f=ih(c,-c)+lh("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=ih(c,c)+lh("a","0 0,1",a-b,I(a-c,-c+b)),e=ih(b,a)+lh("a","0 0,1",a-b,I(a,-a+b)),f=-c,g=ih(c,f)+lh("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,
|
|
1668
1670
|
c=ih(-2,-b+2.5+.9)+jh(a*-.45,-2.1),d=J("v",2.5)+ih(-a*.97,2.5)+gh("q",[I(-a*.05,10),I(a*.3,9.5)])+ih(a*.67,-1.9)+J("v",2.5),e=J("v",-1.5)+ih(a*-.92,-.5)+gh("q",[I(a*-.19,-5.5),I(0,-11)])+ih(a*.92,1),f=ih(-5,b-.7)+jh(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:jh(5.1,2.6)+ih(-10.2,6.8)+jh(5.1,2.6),height:12,width:10.2}}makeStartHat(){var a=
|
|
1669
1671
|
this.constantProvider.START_HAT.height,b=ih(25,-8.7)+gh("c",[I(29.7,-6.2),I(57.2,-.5),I(75,8.7)]),c=gh("c",[I(17.8,-9.2),I(45.3,-14.9),I(75,-8.7)])+hh(100.5,a+.5);return{path(d){return d?b:c}}}};var $p=class extends Qo{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 aq=class extends Zo{constructor(a,b){super(a,b);this.constants_=a;this.connectedBlock&&(this.height+=this.constants_.DARK_PATH_OFFSET)}};var bq=class extends dp{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 Dn||(this.bottomRow.minHeight=this.constants_.MEDIUM_PADDING-this.constants_.DARK_PATH_OFFSET)}addInput_(a,b){if(this.isInline&&a instanceof $.En)b.elements.push(new $p(this.constants_,a)),b.hasInlineInput=!0;else if(a instanceof Dn)b.elements.push(new aq(this.constants_,
|
|
1670
1672
|
a)),b.hasStatement=!0;else if(a instanceof $.En)b.elements.push(new Lo(this.constants_,a)),b.hasExternalInput=!0;else if(a instanceof Bn||a instanceof Cn)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 Po(this.constants_,
|
|
@@ -1702,18 +1704,18 @@ this.allAncestorsExpanded_()}allAncestorsExpanded_(){for(var a=this;a.getParent(
|
|
|
1702
1704
|
a;this.getDiv().setAttribute("disabled",`${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,
|
|
1703
1705
|
id:this.toolboxItemDef_.id,categorystyle:this.toolboxItemDef_.categorystyle,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:Cc(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(){db(this.htmlDiv_)}};
|
|
1704
1706
|
lq.registrationName="category";lq.nestedPadding=19;lq.borderWidth=8;lq.defaultBackgroundColour="#57e";Tb('\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');
|
|
1705
|
-
l(
|
|
1706
|
-
l(
|
|
1707
|
-
a=!1)}}}}createToolboxItem(a){var b=a.kind;b.toUpperCase()==="CATEGORY"&&Fc(a)&&(b=nq.registrationName);a=new (da(
|
|
1707
|
+
l(k.TOOLBOX_ITEM,lq.registrationName,lq);var mq=class extends kq{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&&v(a,b);return this.htmlDiv=a}getDiv(){return this.htmlDiv}dispose(){db(this.htmlDiv)}canBeFocused(){return!1}};mq.registrationName="sep";Tb('\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');
|
|
1708
|
+
l(k.TOOLBOX_ITEM,mq.registrationName,mq);var nq=class extends lq{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];!ea(k.TOOLBOX_ITEM,d.kind)||d.kind.toLowerCase()===mq.registrationName&&a?(this.flyoutItems_.push(d),a=!0):(this.createToolboxItem(d),
|
|
1709
|
+
a=!1)}}}}createToolboxItem(a){var b=a.kind;b.toUpperCase()==="CATEGORY"&&Fc(a)&&(b=nq.registrationName);a=new (da(k.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);Oa(this.subcategoriesDiv_,$a.GROUP);this.htmlDiv_.appendChild(this.subcategoriesDiv_);
|
|
1708
1710
|
this.closeIcon_(this.iconDom_);u(this.htmlDiv_,w.EXPANDED,!1);return this.htmlDiv_}createIconDom_(){var a=document.createElement("span");if(!this.parentToolbox_.isHorizontal()){let b=this.cssConfig_.icon;b&&v(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&&v(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;
|
|
1709
1711
|
(f=d.getClickTarget())==null||f.setAttribute("id",d.getId())}}return b}setExpanded(a){if(this.expanded_!==a){if(this.expanded_=a)this.subcategoriesDiv_.style.display="block",this.openIcon_(this.iconDom_);else{let b;(b=this.parentToolbox_.getFlyout())==null||b.setVisible(!1);this.subcategoriesDiv_.style.display="none";this.closeIcon_(this.iconDom_)}u(this.htmlDiv_,w.EXPANDED,a);this.parentToolbox_.handleToolboxItemResize()}}setVisible_(a){this.htmlDiv_.style.display=a?"block":"none";var b=this.getChildToolboxItems();
|
|
1710
|
-
for(let c=0;c<b.length;c++)b[c].setVisible_(a);this.isHidden_=!a;this.parentToolbox_.getSelectedItem()===this&&this.parentToolbox_.clearSelection()}isExpanded(){return this.expanded_}isCollapsible(){return!0}onClick(){this.toggleExpanded()}toggleExpanded(){this.setExpanded(!this.expanded_)}getDiv(){return this.htmlDiv_}getChildToolboxItems(){return this.toolboxItems_}};nq.registrationName="collapsibleCategory";l(
|
|
1712
|
+
for(let c=0;c<b.length;c++)b[c].setVisible_(a);this.isHidden_=!a;this.parentToolbox_.getSelectedItem()===this&&this.parentToolbox_.clearSelection()}isExpanded(){return this.expanded_}isCollapsible(){return!0}onClick(){this.toggleExpanded()}toggleExpanded(){this.setExpanded(!this.expanded_)}getDiv(){return this.htmlDiv_}getChildToolboxItems(){return this.toolboxItems_}};nq.registrationName="collapsibleCategory";l(k.TOOLBOX_ITEM,nq.registrationName,nq);var oq=class extends Vn{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 po(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=
|
|
1711
1713
|
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);v(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,
|
|
1712
1714
|
weight:Rk.ComponentWeight.TOOLBOX_WEIGHT,capabilities:[Rk.Capability.AUTOHIDEABLE,Rk.Capability.DELETE_AREA,Rk.Capability.DRAG_TARGET]});$.A().registerTree(this,!0)}createDom_(a){a=a.getParentSvg();var b=this.createContainer_();b.id=Aa();this.contentsDiv_=this.createContentsContainer_();Oa(this.contentsDiv_,$a.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");
|
|
1713
1715
|
a.setAttribute("layout",this.isHorizontal()?"h":"v");v(a,"blocklyToolbox");a.setAttribute("dir",this.RTL?"RTL":"LTR");return a}createContentsContainer_(){var a=document.createElement("div");v(a,"blocklyToolboxCategoryGroup");this.isHorizontal()&&(a.style.flexDirection="row");return a}attachEvents_(a,b){var c=n(a,"pointerdown",this,this.onClick_,!1);this.boundEvents_.push(c);a=sa(a,"pointerup",this,()=>{this.mouseDown=!1});this.boundEvents_.push(a);b=n(b,"keydown",this,this.onKeyDown_,!1);this.boundEvents_.push(b)}onClick_(a){var b=
|
|
1714
1716
|
()=>{$.A().focusNode(this);this.clearSelection();Ab.hideChaff(!1);a.preventDefault()};this.mouseDown=!0;if(wa(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),Ab.hideChaff(!0)))}qa=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":$.A().focusTree(this.getWorkspace()),
|
|
1715
|
-
b=!0}b&&(a.preventDefault(),a.stopPropagation())}createFlyout_(){var a=this.workspace_,b=a.copyOptionsForFlyout();b.toolboxPosition=a.options.toolboxPosition;return new (a.horizontalLayout?ja(
|
|
1716
|
-
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"&&Fc(a)&&(c=nq.registrationName);if(c=fa(
|
|
1717
|
+
b=!0}b&&(a.preventDefault(),a.stopPropagation())}createFlyout_(){var a=this.workspace_,b=a.copyOptionsForFlyout();b.toolboxPosition=a.options.toolboxPosition;return new (a.horizontalLayout?ja(k.FLYOUTS_HORIZONTAL_TOOLBOX,a.options,!0):ja(k.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();
|
|
1718
|
+
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"&&Fc(a)&&(c=nq.registrationName);if(c=fa(k.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=
|
|
1717
1719
|
0;b<a.length;b++)this.addToolboxItem_(a[b])}}getToolboxItems(){return[...this.contents.values()]}addStyle(a){a&&this.HtmlDiv&&v(this.HtmlDiv,a)}removeStyle(a){a&&this.HtmlDiv&&bb(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===H.TOP?new cc(-1E7,c,-1E7,1E7):this.toolboxPosition===H.BOTTOM?new cc(b,1E7,-1E7,1E7):this.toolboxPosition===H.LEFT?new cc(-1E7,1E7,
|
|
1718
1720
|
-1E7,a):new cc(-1E7,1E7,d,1E7)}onDragEnter(){pi.mover.isMoving()||this.updateCursorDeleteStyle_(!0)}onDragExit(){pi.mover.isMoving()||this.updateCursorDeleteStyle_(!1)}onDrop(){pi.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)||
|
|
1719
1721
|
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===
|
|
@@ -1724,12 +1726,12 @@ null;this.previouslySelectedItem_=a;a.setSelected(!1);u(this.contentsDiv_,w.ACTI
|
|
|
1724
1726
|
(c=this.flyout)==null||c.hide()}}fireSelectEvent(a,b){var c=a&&a.getName(),d=b&&b.getName();a===b&&(d=null);a=new (t(q.TOOLBOX_ITEM_SELECT))(c,d,this.workspace_.id);p(a)}toggleSelectedItem(a){var b,c;return Ri(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=>
|
|
1725
1727
|
b.dispose());for(a=0;a<this.boundEvents_.length;a++)ta(this.boundEvents_[a]);this.boundEvents_=[];this.contents.clear();this.HtmlDiv&&(this.workspace_.getThemeManager().unsubscribe(this.HtmlDiv),db(this.HtmlDiv));$.A().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||
|
|
1726
1728
|
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}};Tb('\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');
|
|
1727
|
-
l(
|
|
1729
|
+
l(k.TOOLBOX,"default",oq);var pq=K.INPUT_VALUE,qq=K.OUTPUT_VALUE,rq=K.NEXT_STATEMENT,sq=K.PREVIOUS_STATEMENT,tq=H.TOP,uq=H.BOTTOM,vq=H.LEFT,wq=H.RIGHT;kp.prototype.newBlock=function(a,b){return new Fn(this,a,b)};Xh.prototype.newBlock=function(a,b){return new gi(this,a,b)};kp.prototype.newComment=function(a){return new Kg(this,a)};Xh.prototype.newComment=function(a){return new Jg(this,a)};Xh.newTrashcan=function(a){return new op(a)};hn.prototype.newWorkspaceSvg=function(a){return new Xh(a)};
|
|
1728
1730
|
$.aj.prototype.populateProcedures=function(a){a=Yi(a);a=a[0].concat(a[1]);for(let b=0;b<a.length;b++)this.getName(a[b][0],$.aj.NameType.PROCEDURE)};var R={};R.Block=Fn;R.BlockFlyoutInflater=Vp;R.BlockNavigationPolicy=bo;R.BlockSvg=gi;R.Blocks=Ob;R.BubbleNavigationPolicy=co;R.ButtonFlyoutInflater=Tp;R.COLLAPSED_FIELD_NAME="_TEMP_COLLAPSED_FIELD";R.COLLAPSED_INPUT_NAME="_TEMP_COLLAPSED_INPUT";R.COLLAPSE_CHARS=30;R.CodeGenerator=$.Ip;R.CollapsibleToolboxCategory=nq;
|
|
1729
1731
|
R.CommentBarButtonNavigationPolicy=eo;R.CommentEditorNavigationPolicy=fo;R.ComponentManager=Rk;R.Connection=qn;R.ConnectionChecker=jp;R.ConnectionDB=pn;R.ConnectionNavigationPolicy=go;R.ConnectionType=K;R.ContextMenu=Om;R.ContextMenuItems=Sp;R.ContextMenuRegistry=Aj;R.Css=Uk;R.DELETE_VARIABLE_ID="DELETE_VARIABLE_ID";R.DeleteArea=Vn;R.Direction=qi;R.DragDisposition=Ln;R.DragTarget=Un;R.DropDownDiv=Im;R.Events=N;R.Extensions=ln;R.Field=Xf;R.FieldCheckbox=Op;R.FieldDropdown=eh;R.FieldImage=xp;
|
|
1730
1732
|
R.FieldLabel=wh;R.FieldLabelSerializable=Np;R.FieldNavigationPolicy=ho;R.FieldNumber=Mp;R.FieldTextInput=$.zp;R.FieldVariable=Lp;R.Flyout=so;R.FlyoutButton=Bi;R.FlyoutButtonNavigationPolicy=$n;R.FlyoutItem=Wn;R.FlyoutMetricsManager=Yn;R.FlyoutNavigator=qo;R.FlyoutSeparator=Zn;R.FlyoutSeparatorNavigationPolicy=ao;R.FocusManager=qb;R.FocusableTreeTraverser=Ck;R.Generator=$.Ip;R.Gesture=uo;R.Grid=sj;R.HorizontalFlyout=Kp;R.INPUT_VALUE=pq;R.IconNavigationPolicy=io;R.Input=An;
|
|
1731
1733
|
R.InsertionMarkerPreviewer=Gp;R.KeyboardMover=pi;R.KeyboardNavigationController=Bm;R.LabelFlyoutInflater=up;R.Menu=ng;R.MenuItem=pg;R.MetricsManager=Xn;R.MoveIndicator=$m;R.Msg=$.C;R.NEXT_STATEMENT=rq;R.Names=$.aj;R.NavigationDirection=lo;R.Navigator=no;R.OPPOSITE_TYPE=wn;R.OUTPUT_VALUE=qq;R.Options=dn;R.PREVIOUS_STATEMENT=sq;R.PROCEDURE_CATEGORY_NAME="PROCEDURE";R.Procedures=Bo;R.RENAME_VARIABLE_ID="RENAME_VARIABLE_ID";R.RenderedConnection=xn;R.Scrollbar=Hc;R.ScrollbarPair=wj;
|
|
1732
|
-
R.SeparatorFlyoutInflater=ro;R.ShortcutItems=On;R.ShortcutRegistry=B;R.TOOLBOX_AT_BOTTOM=uq;R.TOOLBOX_AT_LEFT=vq;R.TOOLBOX_AT_RIGHT=wq;R.TOOLBOX_AT_TOP=tq;R.Theme=bn;R.ThemeManager=hp;R.Themes=jq;R.Toast=ji;R.Toolbox=oq;R.ToolboxCategory=lq;R.ToolboxItem=kq;R.ToolboxItemNavigationPolicy=oo;R.ToolboxNavigator=po;R.ToolboxSeparator=mq;R.Tooltip=Km;R.Touch=dk;R.Trashcan=op;R.UnattachedFieldError=bj;R.VARIABLE_CATEGORY_NAME="VARIABLE";R.VARIABLE_DYNAMIC_CATEGORY_NAME="VARIABLE_DYNAMIC";R.VERSION="13.0.0
|
|
1734
|
+
R.SeparatorFlyoutInflater=ro;R.ShortcutItems=On;R.ShortcutRegistry=B;R.TOOLBOX_AT_BOTTOM=uq;R.TOOLBOX_AT_LEFT=vq;R.TOOLBOX_AT_RIGHT=wq;R.TOOLBOX_AT_TOP=tq;R.Theme=bn;R.ThemeManager=hp;R.Themes=jq;R.Toast=ji;R.Toolbox=oq;R.ToolboxCategory=lq;R.ToolboxItem=kq;R.ToolboxItemNavigationPolicy=oo;R.ToolboxNavigator=po;R.ToolboxSeparator=mq;R.Tooltip=Km;R.Touch=dk;R.Trashcan=op;R.UnattachedFieldError=bj;R.VARIABLE_CATEGORY_NAME="VARIABLE";R.VARIABLE_DYNAMIC_CATEGORY_NAME="VARIABLE_DYNAMIC";R.VERSION="13.0.0";
|
|
1733
1735
|
R.VariableMap=np;R.VariableModel=mp;R.Variables=Cm;R.VariablesDynamic=ip;R.VerticalFlyout=Jp;R.WidgetDiv=Nm;R.Workspace=kp;R.WorkspaceAudio=lp;R.WorkspaceCommentNavigationPolicy=jo;R.WorkspaceDragger=to;R.WorkspaceNavigationPolicy=ko;R.WorkspaceSvg=Xh;R.Xml=Ym;R.ZoomControls=ll;R.blockAnimations=Gn;R.blockRendering=gp;R.browserEvents=sk;R.bubbles=Up;R.bumpObjects=In;R.clipboard=Jn;R.comments=Kn;R.common=Jk;R.config=$.tg;
|
|
1734
1736
|
R.constants={COLLAPSED_FIELD_NAME:"_TEMP_COLLAPSED_FIELD",COLLAPSED_INPUT_NAME:"_TEMP_COLLAPSED_INPUT",MANUALLY_DISABLED:"MANUALLY_DISABLED"};R.defineBlocksWithJsonArray=Mb;R.dialog=wl;R.dragging=Qp;R.fieldRegistry=Zm;R.geras=eq;R.getFocusManager=$.A;R.getMainWorkspace=Bb;R.getSelected=Db;R.hasBubble=wd;R.hideChaff=function(a){Ab.hideChaff(a)};R.icons=xo;
|
|
1735
1737
|
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 dn(b||{});d=document.createElement("div");v(d,"injectionDiv");(b==null?0:b.rtl)&&v(d,"blocklyRTL");Oa(d,$a.APPLICATION);c.appendChild(d);b=tj(d,a);var e=uj(d,b,a);yj(e);Cb(e);Ib(e);d.addEventListener("focusin",function(){Cb(e)});n(d,"keydown",null,
|