diff --git a/google-blockly/blockly_compressed.js b/google-blockly/blockly_compressed.js index 76ffff9..ae1bd13 100644 --- a/google-blockly/blockly_compressed.js +++ b/google-blockly/blockly_compressed.js @@ -10,21 +10,16 @@ root.Blockly = factory(); } }(this, function() { - 'use strict';var Blockly={constants:{},LINE_MODE_MULTIPLIER:40,PAGE_MODE_MULTIPLIER:125,DRAG_RADIUS:5,FLYOUT_DRAG_RADIUS:10,SNAP_RADIUS:28};Blockly.CONNECTING_SNAP_RADIUS=Blockly.SNAP_RADIUS;Blockly.CURRENT_CONNECTION_PREFERENCE=8;Blockly.BUMP_DELAY=250;Blockly.BUMP_RANDOMNESS=10;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.DRAG_STACK=!0;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"};Blockly.INPUT_VALUE=1; -Blockly.OUTPUT_VALUE=2;Blockly.NEXT_STATEMENT=3;Blockly.PREVIOUS_STATEMENT=4;Blockly.DUMMY_INPUT=5;Blockly.ALIGN_LEFT=-1;Blockly.ALIGN_CENTRE=0;Blockly.ALIGN_RIGHT=1;Blockly.DRAG_NONE=0;Blockly.DRAG_STICKY=1;Blockly.DRAG_BEGIN=1;Blockly.DRAG_FREE=2;Blockly.OPPOSITE_TYPE=[];Blockly.OPPOSITE_TYPE[Blockly.INPUT_VALUE]=Blockly.OUTPUT_VALUE;Blockly.OPPOSITE_TYPE[Blockly.OUTPUT_VALUE]=Blockly.INPUT_VALUE;Blockly.OPPOSITE_TYPE[Blockly.NEXT_STATEMENT]=Blockly.PREVIOUS_STATEMENT; -Blockly.OPPOSITE_TYPE[Blockly.PREVIOUS_STATEMENT]=Blockly.NEXT_STATEMENT;Blockly.TOOLBOX_AT_TOP=0;Blockly.TOOLBOX_AT_BOTTOM=1;Blockly.TOOLBOX_AT_LEFT=2;Blockly.TOOLBOX_AT_RIGHT=3;Blockly.DELETE_AREA_NONE=null;Blockly.DELETE_AREA_TRASH=1;Blockly.DELETE_AREA_TOOLBOX=2;Blockly.VARIABLE_CATEGORY_NAME="VARIABLE";Blockly.VARIABLE_DYNAMIC_CATEGORY_NAME="VARIABLE_DYNAMIC";Blockly.PROCEDURE_CATEGORY_NAME="PROCEDURE";Blockly.RENAME_VARIABLE_ID="RENAME_VARIABLE_ID";Blockly.DELETE_VARIABLE_ID="DELETE_VARIABLE_ID";Blockly.registry={};Blockly.registry.typeMap_={};Blockly.registry.DEFAULT="default";Blockly.registry.Type=function(a){this.name_=a};Blockly.registry.Type.prototype.toString=function(){return this.name_};Blockly.registry.Type.CONNECTION_CHECKER=new Blockly.registry.Type("connectionChecker");Blockly.registry.Type.EVENT=new Blockly.registry.Type("event");Blockly.registry.Type.FIELD=new Blockly.registry.Type("field");Blockly.registry.Type.RENDERER=new Blockly.registry.Type("renderer"); -Blockly.registry.Type.TOOLBOX=new Blockly.registry.Type("toolbox");Blockly.registry.Type.THEME=new Blockly.registry.Type("theme");Blockly.registry.Type.TOOLBOX_ITEM=new Blockly.registry.Type("toolboxItem");Blockly.registry.Type.FLYOUTS_VERTICAL_TOOLBOX=new Blockly.registry.Type("flyoutsVerticalToolbox");Blockly.registry.Type.FLYOUTS_HORIZONTAL_TOOLBOX=new Blockly.registry.Type("flyoutsHorizontalToolbox"); -Blockly.registry.register=function(a,b,c,d){if(!(a instanceof Blockly.registry.Type)&&"string"!=typeof a||""==String(a).trim())throw Error('Invalid type "'+a+'". The type must be a non-empty string or a Blockly.registry.Type.');a=String(a).toLowerCase();if("string"!=typeof b||""==b.trim())throw Error('Invalid name "'+b+'". The name must be a non-empty string.');b=b.toLowerCase();if(!c)throw Error("Can not register a null value");var e=Blockly.registry.typeMap_[a];e||(e=Blockly.registry.typeMap_[a]= -{});Blockly.registry.validate_(a,c);if(!d&&e[b])throw Error('Name "'+b+'" with type "'+a+'" already registered.');e[b]=c};Blockly.registry.validate_=function(a,b){switch(a){case String(Blockly.registry.Type.FIELD):if("function"!=typeof b.fromJson)throw Error('Type "'+a+'" must have a fromJson function');}}; -Blockly.registry.unregister=function(a,b){a=String(a).toLowerCase();b=b.toLowerCase();var c=Blockly.registry.typeMap_[a];c?c[b]?delete Blockly.registry.typeMap_[a][b]:console.warn('No name "'+b+'" with type "'+a+'" found'):console.warn('No type "'+a+'" found')}; -Blockly.registry.getItem_=function(a,b){a=String(a).toLowerCase();b=b.toLowerCase();var c=Blockly.registry.typeMap_[a];return c?c[b]?c[b]:(console.warn('No name "'+b+'" with type "'+a+'" found'),null):(console.warn('No type "'+a+'" found'),null)};Blockly.registry.hasItem=function(a,b){a=String(a).toLowerCase();b=b.toLowerCase();return(a=Blockly.registry.typeMap_[a])?!!a[b]:!1};Blockly.registry.getClass=function(a,b){return Blockly.registry.getItem_(a,b)}; -Blockly.registry.getObject=function(a,b){return Blockly.registry.getItem_(a,b)};Blockly.registry.getClassFromOptions=function(a,b){b=b.plugins[a.toString()]||Blockly.registry.DEFAULT;return"function"==typeof b?b:Blockly.registry.getClass(a,b)};Blockly.utils={};Blockly.utils.global=function(){return"object"===typeof self?self:"object"===typeof window?window:"object"===typeof global?global:this}();Blockly.Msg={};Blockly.utils.global.Blockly||(Blockly.utils.global.Blockly={});Blockly.utils.global.Blockly.Msg||(Blockly.utils.global.Blockly.Msg=Blockly.Msg);Blockly.utils.colour={}; + 'use strict';var Blockly={connectionTypes:{INPUT_VALUE:1,OUTPUT_VALUE:2,NEXT_STATEMENT:3,PREVIOUS_STATEMENT:4}};Blockly.constants={};Blockly.LINE_MODE_MULTIPLIER=40;Blockly.PAGE_MODE_MULTIPLIER=125;Blockly.DRAG_RADIUS=5;Blockly.FLYOUT_DRAG_RADIUS=10;Blockly.SNAP_RADIUS=28;Blockly.CONNECTING_SNAP_RADIUS=Blockly.SNAP_RADIUS;Blockly.CURRENT_CONNECTION_PREFERENCE=8;Blockly.BUMP_DELAY=250;Blockly.BUMP_RANDOMNESS=10;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.DRAG_STACK=!0;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"}; +Blockly.constants.ALIGN={LEFT:-1,CENTRE:0,RIGHT:1};Blockly.DRAG_NONE=0;Blockly.DRAG_STICKY=1;Blockly.DRAG_BEGIN=1;Blockly.DRAG_FREE=2;Blockly.OPPOSITE_TYPE=[];Blockly.OPPOSITE_TYPE[Blockly.connectionTypes.INPUT_VALUE]=Blockly.connectionTypes.OUTPUT_VALUE;Blockly.OPPOSITE_TYPE[Blockly.connectionTypes.OUTPUT_VALUE]=Blockly.connectionTypes.INPUT_VALUE;Blockly.OPPOSITE_TYPE[Blockly.connectionTypes.NEXT_STATEMENT]=Blockly.connectionTypes.PREVIOUS_STATEMENT; +Blockly.OPPOSITE_TYPE[Blockly.connectionTypes.PREVIOUS_STATEMENT]=Blockly.connectionTypes.NEXT_STATEMENT;Blockly.DELETE_AREA_NONE=null;Blockly.DELETE_AREA_TRASH=1;Blockly.DELETE_AREA_TOOLBOX=2;Blockly.VARIABLE_CATEGORY_NAME="VARIABLE";Blockly.VARIABLE_DYNAMIC_CATEGORY_NAME="VARIABLE_DYNAMIC";Blockly.PROCEDURE_CATEGORY_NAME="PROCEDURE";Blockly.RENAME_VARIABLE_ID="RENAME_VARIABLE_ID";Blockly.DELETE_VARIABLE_ID="DELETE_VARIABLE_ID";Blockly.constants.COLLAPSED_INPUT_NAME="_TEMP_COLLAPSED_INPUT"; +Blockly.constants.COLLAPSED_FIELD_NAME="_TEMP_COLLAPSED_FIELD";Blockly.utils={};Blockly.utils.global=function(){return"object"===typeof self?self:"object"===typeof window?window:"object"===typeof global?global:this}();Blockly.Msg={};Blockly.utils.global.Blockly||(Blockly.utils.global.Blockly={});Blockly.utils.global.Blockly.Msg||(Blockly.utils.global.Blockly.Msg=Blockly.Msg);Blockly.utils.colour={}; Blockly.utils.colour.parse=function(a){a=String(a).toLowerCase().trim();var b=Blockly.utils.colour.names[a];if(b)return b;b="0x"==a.substring(0,2)?"#"+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]),0<=a&&256>a&&0<=b&&256>b&&0<=c&&256>c)?Blockly.utils.colour.rgbToHex(a,b, c):null};Blockly.utils.colour.rgbToHex=function(a,b,c){b=a<<16|b<<8|c;return 16>a?"#"+(16777216|b).toString(16).substr(1):"#"+b.toString(16)};Blockly.utils.colour.hexToRgb=function(a){a=Blockly.utils.colour.parse(a);if(!a)return[0,0,0];a=parseInt(a.substr(1),16);return[a>>16,a>>8&255,a&255]}; Blockly.utils.colour.hsvToHex=function(a,b,c){var d=0,e=0,f=0;if(0==b)f=e=d=c;else{var g=Math.floor(a/60),h=a/60-g;a=c*(1-b);var k=c*(1-b*h);b=c*(1-b*(1-h));switch(g){case 1:d=k;e=c;f=a;break;case 2:d=a;e=c;f=b;break;case 3:d=a;e=k;f=c;break;case 4:d=b;e=a;f=c;break;case 5:d=c;e=a;f=k;break;case 6:case 0:d=c,e=b,f=a}}return Blockly.utils.colour.rgbToHex(Math.floor(d),Math.floor(e),Math.floor(f))}; Blockly.utils.colour.blend=function(a,b,c){a=Blockly.utils.colour.parse(a);if(!a)return null;b=Blockly.utils.colour.parse(b);if(!b)return null;a=Blockly.utils.colour.hexToRgb(a);b=Blockly.utils.colour.hexToRgb(b);return Blockly.utils.colour.rgbToHex(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])))}; Blockly.utils.colour.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00"};Blockly.utils.Coordinate=function(a,b){this.x=a;this.y=b};Blockly.utils.Coordinate.equals=function(a,b){return a==b?!0:a&&b?a.x==b.x&&a.y==b.y:!1};Blockly.utils.Coordinate.distance=function(a,b){var c=a.x-b.x;a=a.y-b.y;return Math.sqrt(c*c+a*a)};Blockly.utils.Coordinate.magnitude=function(a){return Math.sqrt(a.x*a.x+a.y*a.y)};Blockly.utils.Coordinate.difference=function(a,b){return new Blockly.utils.Coordinate(a.x-b.x,a.y-b.y)}; -Blockly.utils.Coordinate.sum=function(a,b){return new Blockly.utils.Coordinate(a.x+b.x,a.y+b.y)};Blockly.utils.Coordinate.prototype.scale=function(a){this.x*=a;this.y*=a;return this};Blockly.utils.Coordinate.prototype.translate=function(a,b){this.x+=a;this.y+=b;return this};Blockly.utils.Rect=function(a,b,c,d){this.top=a;this.bottom=b;this.left=c;this.right=d};Blockly.utils.Rect.prototype.contains=function(a,b){return a>=this.left&&a<=this.right&&b>=this.top&&b<=this.bottom};Blockly.utils.string={};Blockly.utils.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};Blockly.utils.string.shortestStringLength=function(a){return a.length?a.reduce(function(b,c){return b.length=this.left&&a<=this.right&&b>=this.top&&b<=this.bottom};Blockly.utils.Rect.prototype.intersects=function(a){return!(this.left>a.right||this.righta.bottom||this.bottomb&&(b=c[d].length);d=-Infinity;var e=1;do{var f=d;var g=a;a=[];var h=c.length/e,k=1;for(d=0;df);return g}; @@ -52,19 +47,35 @@ if(!b)return document.body.removeChild(a),!1;b=b.getPropertyValue(c[d])}document Blockly.utils.getViewportBBox=function(){var a=Blockly.utils.style.getViewportPageOffset();return new Blockly.utils.Rect(a.y,document.documentElement.clientHeight+a.y,a.x,document.documentElement.clientWidth+a.x)};Blockly.utils.arrayRemove=function(a,b){b=a.indexOf(b);if(-1==b)return!1;a.splice(b,1);return!0}; Blockly.utils.getDocumentScroll=function(){var a=document.documentElement,b=window;return Blockly.utils.userAgent.IE&&b.pageYOffset!=a.scrollTop?new Blockly.utils.Coordinate(a.scrollLeft,a.scrollTop):new Blockly.utils.Coordinate(b.pageXOffset||a.scrollLeft,b.pageYOffset||a.scrollTop)};Blockly.utils.getBlockTypeCounts=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(a=0;b=d[a];a++)c[b.type]?c[b.type]++:c[b.type]=1;return c}; Blockly.utils.screenToWsCoordinates=function(a,b){var c=b.x;b=b.y;var d=a.getInjectionDiv().getBoundingClientRect();c=new Blockly.utils.Coordinate(c-d.left,b-d.top);b=a.getOriginOffsetInPixels();return Blockly.utils.Coordinate.difference(c,b).scale(1/a.scale)}; -Blockly.utils.parseBlockColour=function(a){var b="string"==typeof a?Blockly.utils.replaceMessageReferences(a):a,c=Number(b);if(!isNaN(c)&&0<=c&&360>=c)return{hue:c,hex:Blockly.utils.colour.hsvToHex(c,Blockly.HSV_SATURATION,255*Blockly.HSV_VALUE)};if(c=Blockly.utils.colour.parse(b))return{hue:null,hex:c};c='Invalid colour: "'+b+'"';a!=b&&(c+=' (from "'+a+'")');throw Error(c);};Blockly.Events={};Blockly.Events.group_="";Blockly.Events.recordUndo=!0;Blockly.Events.disabled_=0;Blockly.Events.CREATE="create";Blockly.Events.BLOCK_CREATE=Blockly.Events.CREATE;Blockly.Events.DELETE="delete";Blockly.Events.BLOCK_DELETE=Blockly.Events.DELETE;Blockly.Events.CHANGE="change";Blockly.Events.BLOCK_CHANGE=Blockly.Events.CHANGE;Blockly.Events.MOVE="move";Blockly.Events.BLOCK_MOVE=Blockly.Events.MOVE;Blockly.Events.VAR_CREATE="var_create";Blockly.Events.VAR_DELETE="var_delete"; +Blockly.utils.parseBlockColour=function(a){var b="string"==typeof a?Blockly.utils.replaceMessageReferences(a):a,c=Number(b);if(!isNaN(c)&&0<=c&&360>=c)return{hue:c,hex:Blockly.utils.colour.hsvToHex(c,Blockly.HSV_SATURATION,255*Blockly.HSV_VALUE)};if(c=Blockly.utils.colour.parse(b))return{hue:null,hex:c};c='Invalid colour: "'+b+'"';a!=b&&(c+=' (from "'+a+'")');throw Error(c);};Blockly.Touch={};Blockly.Touch.TOUCH_ENABLED="ontouchstart"in Blockly.utils.global||!!(Blockly.utils.global.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!Blockly.utils.global.navigator||!Blockly.utils.global.navigator.maxTouchPoints&&!Blockly.utils.global.navigator.msMaxTouchPoints);Blockly.Touch.touchIdentifier_=null;Blockly.Touch.TOUCH_MAP={}; +Blockly.utils.global.PointerEvent?Blockly.Touch.TOUCH_MAP={mousedown:["pointerdown"],mouseenter:["pointerenter"],mouseleave:["pointerleave"],mousemove:["pointermove"],mouseout:["pointerout"],mouseover:["pointerover"],mouseup:["pointerup","pointercancel"],touchend:["pointerup"],touchcancel:["pointercancel"]}:Blockly.Touch.TOUCH_ENABLED&&(Blockly.Touch.TOUCH_MAP={mousedown:["touchstart"],mousemove:["touchmove"],mouseup:["touchend","touchcancel"]});Blockly.longPid_=0; +Blockly.longStart=function(a,b){Blockly.longStop_();a.changedTouches&&1!=a.changedTouches.length||(Blockly.longPid_=setTimeout(function(){a.changedTouches&&(a.button=2,a.clientX=a.changedTouches[0].clientX,a.clientY=a.changedTouches[0].clientY);b&&b.handleRightClick(a)},Blockly.LONGPRESS))};Blockly.longStop_=function(){Blockly.longPid_&&(clearTimeout(Blockly.longPid_),Blockly.longPid_=0)};Blockly.Touch.clearTouchIdentifier=function(){Blockly.Touch.touchIdentifier_=null}; +Blockly.Touch.shouldHandleEvent=function(a){return!Blockly.Touch.isMouseOrTouchEvent(a)||Blockly.Touch.checkTouchIdentifier(a)};Blockly.Touch.getTouchIdentifierFromEvent=function(a){return void 0!=a.pointerId?a.pointerId:a.changedTouches&&a.changedTouches[0]&&void 0!==a.changedTouches[0].identifier&&null!==a.changedTouches[0].identifier?a.changedTouches[0].identifier:"mouse"}; +Blockly.Touch.checkTouchIdentifier=function(a){var b=Blockly.Touch.getTouchIdentifierFromEvent(a);return void 0!==Blockly.Touch.touchIdentifier_&&null!==Blockly.Touch.touchIdentifier_?Blockly.Touch.touchIdentifier_==b:"mousedown"==a.type||"touchstart"==a.type||"pointerdown"==a.type?(Blockly.Touch.touchIdentifier_=b,!0):!1};Blockly.Touch.setClientFromTouch=function(a){if(Blockly.utils.string.startsWith(a.type,"touch")){var b=a.changedTouches[0];a.clientX=b.clientX;a.clientY=b.clientY}}; +Blockly.Touch.isMouseOrTouchEvent=function(a){return Blockly.utils.string.startsWith(a.type,"touch")||Blockly.utils.string.startsWith(a.type,"mouse")||Blockly.utils.string.startsWith(a.type,"pointer")};Blockly.Touch.isTouchEvent=function(a){return Blockly.utils.string.startsWith(a.type,"touch")||Blockly.utils.string.startsWith(a.type,"pointer")}; +Blockly.Touch.splitEventByTouches=function(a){var b=[];if(a.changedTouches)for(var c=0;c/g,"<$1$2>")};Blockly.Xml.domToPrettyText=function(a){a=Blockly.Xml.domToText(a).split("<");for(var b="",c=1;c"!=d.slice(-2)&&(b+=" ")}a=a.join("\n");a=a.replace(/(<(\w+)\b[^>]*>[^\n]*)\n *<\/\2>/g,"$1");return a.replace(/^\n/,"")}; +Blockly.Xml.textToDom=function(a){var b=Blockly.utils.xml.textToDomDocument(a);if(!b||!b.documentElement||b.getElementsByTagName("parsererror").length)throw Error("textToDom was unable to parse: "+a);return b.documentElement};Blockly.Xml.clearWorkspaceAndLoadFromXml=function(a,b){b.setResizesEnabled(!1);b.clear();a=Blockly.Xml.domToWorkspace(a,b);b.setResizesEnabled(!0);return a}; +Blockly.Xml.domToWorkspace=function(a,b){if(a instanceof Blockly.Workspace){var c=a;a=b;b=c;console.warn("Deprecated call to Blockly.Xml.domToWorkspace, swap the arguments.")}var d;b.RTL&&(d=b.getWidth());c=[];Blockly.utils.dom.startTextWidthCache();var e=Blockly.Events.getGroup();e||Blockly.Events.setGroup(!0);b.setResizesEnabled&&b.setResizesEnabled(!1);var f=!0;try{for(var g=0,h;h=a.childNodes[g];g++){var k=h.nodeName.toLowerCase(),l=h;if("block"==k||"shadow"==k&&!Blockly.Events.recordUndo){var m= +Blockly.Xml.domToBlock(l,b);c.push(m.id);var n=l.hasAttribute("x")?parseInt(l.getAttribute("x"),10):10,p=l.hasAttribute("y")?parseInt(l.getAttribute("y"),10):10;isNaN(n)||isNaN(p)||m.moveBy(b.RTL?d-n:n,p);f=!1}else{if("shadow"==k)throw TypeError("Shadow block cannot be a top-level block.");if("comment"==k)b.rendered?Blockly.WorkspaceCommentSvg?Blockly.WorkspaceCommentSvg.fromXml(l,b,d):console.warn("Missing require for Blockly.WorkspaceCommentSvg, ignoring workspace comment."):Blockly.WorkspaceComment? +Blockly.WorkspaceComment.fromXml(l,b):console.warn("Missing require for Blockly.WorkspaceComment, ignoring workspace comment.");else if("variables"==k){if(f)Blockly.Xml.domToVariables(l,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{e||Blockly.Events.setGroup(!1),Blockly.utils.dom.stopTextWidthCache()}b.setResizesEnabled&&b.setResizesEnabled(!0);Blockly.Events.fire(new (Blockly.Events.get(Blockly.Events.FINISHED_LOADING))(b)); +return c};Blockly.Xml.appendDomToWorkspace=function(a,b){var c;Object.prototype.hasOwnProperty.call(b,"scale")&&(c=b.getBlocksBoundingBox());a=Blockly.Xml.domToWorkspace(a,b);if(c&&c.top!=c.bottom){var d=c.bottom;var e=b.RTL?c.right:c.left;var f=Infinity,g=-Infinity,h=Infinity;for(c=0;cg&&(g=k.x)}d=d-h+10;e=b.RTL?e-g:e-f;for(c=0;c");b.domToMutation(d)}Blockly.Events.fire(new (Blockly.Events.get(Blockly.Events.CHANGE))(b,"mutation",null,c,a));break;default:console.warn("Unknown change type: "+this.element)}else console.warn("Can't change non-existent block: "+this.blockId)}; +Blockly.Events.Create=function(a){Blockly.Events.Create.superClass_.constructor.call(this,a);a&&(a.isShadow()&&(this.recordUndo=!1),this.xml=a.workspace.rendered?Blockly.Xml.blockToDomWithXY(a):Blockly.Xml.blockToDom(a),this.ids=Blockly.Events.getDescendantIds(a))};Blockly.utils.object.inherits(Blockly.Events.Create,Blockly.Events.BlockBase);Blockly.Events.BlockCreate=Blockly.Events.Create;Blockly.Events.Create.prototype.type=Blockly.Events.CREATE; +Blockly.Events.Create.prototype.toJson=function(){var a=Blockly.Events.Create.superClass_.toJson.call(this);a.xml=Blockly.Xml.domToText(this.xml);a.ids=this.ids;this.recordUndo||(a.recordUndo=this.recordUndo);return a};Blockly.Events.Create.prototype.fromJson=function(a){Blockly.Events.Create.superClass_.fromJson.call(this,a);this.xml=Blockly.Xml.textToDom(a.xml);this.ids=a.ids;void 0!==a.recordUndo&&(this.recordUndo=a.recordUndo)}; +Blockly.Events.Create.prototype.run=function(a){var b=this.getEventWorkspace_();if(a)a=Blockly.utils.xml.createElement("xml"),a.appendChild(this.xml),Blockly.Xml.domToWorkspace(a,b);else{a=0;for(var c;c=this.ids[a];a++){var d=b.getBlockById(c);d?d.dispose(!1):c==this.blockId&&console.warn("Can't uncreate non-existent block: "+c)}}}; +Blockly.Events.Delete=function(a){Blockly.Events.Delete.superClass_.constructor.call(this,a);if(a){if(a.getParent())throw Error("Connected blocks cannot be deleted.");a.isShadow()&&(this.recordUndo=!1);this.oldXml=a.workspace.rendered?Blockly.Xml.blockToDomWithXY(a):Blockly.Xml.blockToDom(a);this.ids=Blockly.Events.getDescendantIds(a)}};Blockly.utils.object.inherits(Blockly.Events.Delete,Blockly.Events.BlockBase);Blockly.Events.BlockDelete=Blockly.Events.Delete; +Blockly.Events.Delete.prototype.type=Blockly.Events.DELETE;Blockly.Events.Delete.prototype.toJson=function(){var a=Blockly.Events.Delete.superClass_.toJson.call(this);a.oldXml=Blockly.Xml.domToText(this.oldXml);a.ids=this.ids;this.recordUndo||(a.recordUndo=this.recordUndo);return a};Blockly.Events.Delete.prototype.fromJson=function(a){Blockly.Events.Delete.superClass_.fromJson.call(this,a);this.oldXml=Blockly.Xml.textToDom(a.oldXml);this.ids=a.ids;void 0!==a.recordUndo&&(this.recordUndo=a.recordUndo)}; +Blockly.Events.Delete.prototype.run=function(a){var b=this.getEventWorkspace_();if(a){a=0;for(var c;c=this.ids[a];a++){var d=b.getBlockById(c);d?d.dispose(!1):c==this.blockId&&console.warn("Can't delete non-existent block: "+c)}}else a=Blockly.utils.xml.createElement("xml"),a.appendChild(this.oldXml),Blockly.Xml.domToWorkspace(a,b)}; +Blockly.Events.Move=function(a){Blockly.Events.Move.superClass_.constructor.call(this,a);a&&(a.isShadow()&&(this.recordUndo=!1),a=this.currentLocation_(),this.oldParentId=a.parentId,this.oldInputName=a.inputName,this.oldCoordinate=a.coordinate)};Blockly.utils.object.inherits(Blockly.Events.Move,Blockly.Events.BlockBase);Blockly.Events.BlockMove=Blockly.Events.Move;Blockly.Events.Move.prototype.type=Blockly.Events.MOVE; +Blockly.Events.Move.prototype.toJson=function(){var a=Blockly.Events.Move.superClass_.toJson.call(this);this.newParentId&&(a.newParentId=this.newParentId);this.newInputName&&(a.newInputName=this.newInputName);this.newCoordinate&&(a.newCoordinate=Math.round(this.newCoordinate.x)+","+Math.round(this.newCoordinate.y));this.recordUndo||(a.recordUndo=this.recordUndo);return a}; +Blockly.Events.Move.prototype.fromJson=function(a){Blockly.Events.Move.superClass_.fromJson.call(this,a);this.newParentId=a.newParentId;this.newInputName=a.newInputName;if(a.newCoordinate){var b=a.newCoordinate.split(",");this.newCoordinate=new Blockly.utils.Coordinate(Number(b[0]),Number(b[1]))}void 0!==a.recordUndo&&(this.recordUndo=a.recordUndo)}; +Blockly.Events.Move.prototype.recordNew=function(){var a=this.currentLocation_();this.newParentId=a.parentId;this.newInputName=a.inputName;this.newCoordinate=a.coordinate};Blockly.Events.Move.prototype.currentLocation_=function(){var a=this.getEventWorkspace_().getBlockById(this.blockId),b={},c=a.getParent();if(c){if(b.parentId=c.id,a=c.getInputWithBlock(a))b.inputName=a.name}else b.coordinate=a.getRelativeToSurfaceXY();return b}; +Blockly.Events.Move.prototype.isNull=function(){return this.oldParentId==this.newParentId&&this.oldInputName==this.newInputName&&Blockly.utils.Coordinate.equals(this.oldCoordinate,this.newCoordinate)}; +Blockly.Events.Move.prototype.run=function(a){var b=this.getEventWorkspace_(),c=b.getBlockById(this.blockId);if(c){var d=a?this.newParentId:this.oldParentId,e=a?this.newInputName:this.oldInputName,f=a?this.newCoordinate:this.oldCoordinate;a=null;if(d&&(a=b.getBlockById(d),!a)){console.warn("Can't connect to non-existent block: "+d);return}c.getParent()&&c.unplug();if(f)e=c.getRelativeToSurfaceXY(),c.moveBy(f.x-e.x,f.y-e.y);else{c=c.outputConnection||c.previousConnection;b=c.type;if(e){if(a=a.getInput(e))var g= +a.connection}else b==Blockly.connectionTypes.PREVIOUS_STATEMENT&&(g=a.nextConnection);g?c.connect(g):console.warn("Can't connect to non-existent input: "+e)}}else console.warn("Can't move non-existent block: "+this.blockId)};Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.CREATE,Blockly.Events.Create);Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.DELETE,Blockly.Events.Delete);Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.CHANGE,Blockly.Events.Change); +Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.MOVE,Blockly.Events.Move);Blockly.Events.FinishedLoading=function(a){this.isBlank="undefined"==typeof a;this.workspaceId=a?a.id:"";this.group=Blockly.Events.getGroup();this.recordUndo=!1};Blockly.utils.object.inherits(Blockly.Events.FinishedLoading,Blockly.Events.Abstract);Blockly.Events.FinishedLoading.prototype.type=Blockly.Events.FINISHED_LOADING;Blockly.Events.FinishedLoading.prototype.toJson=function(){var a={type:this.type};this.group&&(a.group=this.group);this.workspaceId&&(a.workspaceId=this.workspaceId);return a}; +Blockly.Events.FinishedLoading.prototype.fromJson=function(a){this.isBlank=!1;this.workspaceId=a.workspaceId;this.group=a.group};Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.FINISHED_LOADING,Blockly.Events.FinishedLoading);Blockly.Events.UiBase=function(a){Blockly.Events.UiBase.superClass_.constructor.call(this);this.isBlank="undefined"==typeof a;this.workspaceId=a?a:"";this.recordUndo=!1};Blockly.utils.object.inherits(Blockly.Events.UiBase,Blockly.Events.Abstract);Blockly.Events.UiBase.prototype.isUiEvent=!0; +Blockly.Events.Ui=function(a,b,c,d){Blockly.Events.Ui.superClass_.constructor.call(this,a?a.workspace.id:void 0);this.blockId=a?a.id:null;this.element="undefined"==typeof b?"":b;this.oldValue="undefined"==typeof c?"":c;this.newValue="undefined"==typeof d?"":d};Blockly.utils.object.inherits(Blockly.Events.Ui,Blockly.Events.UiBase);Blockly.Events.Ui.prototype.type=Blockly.Events.UI; +Blockly.Events.Ui.prototype.toJson=function(){var a=Blockly.Events.Ui.superClass_.toJson.call(this);a.element=this.element;void 0!==this.newValue&&(a.newValue=this.newValue);this.blockId&&(a.blockId=this.blockId);return a};Blockly.Events.Ui.prototype.fromJson=function(a){Blockly.Events.Ui.superClass_.fromJson.call(this,a);this.element=a.element;this.newValue=a.newValue;this.blockId=a.blockId};Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.UI,Blockly.Events.Ui);Blockly.Events.VarBase=function(a){Blockly.Events.VarBase.superClass_.constructor.call(this);this.varId=(this.isBlank="undefined"==typeof a)?"":a.getId();this.workspaceId=this.isBlank?"":a.workspace.id};Blockly.utils.object.inherits(Blockly.Events.VarBase,Blockly.Events.Abstract);Blockly.Events.VarBase.prototype.toJson=function(){var a=Blockly.Events.VarBase.superClass_.toJson.call(this);a.varId=this.varId;return a}; +Blockly.Events.VarBase.prototype.fromJson=function(a){Blockly.Events.VarBase.superClass_.toJson.call(this);this.varId=a.varId};Blockly.Events.VarCreate=function(a){Blockly.Events.VarCreate.superClass_.constructor.call(this,a);a&&(this.varType=a.type,this.varName=a.name)};Blockly.utils.object.inherits(Blockly.Events.VarCreate,Blockly.Events.VarBase);Blockly.Events.VarCreate.prototype.type=Blockly.Events.VAR_CREATE; +Blockly.Events.VarCreate.prototype.toJson=function(){var a=Blockly.Events.VarCreate.superClass_.toJson.call(this);a.varType=this.varType;a.varName=this.varName;return a};Blockly.Events.VarCreate.prototype.fromJson=function(a){Blockly.Events.VarCreate.superClass_.fromJson.call(this,a);this.varType=a.varType;this.varName=a.varName};Blockly.Events.VarCreate.prototype.run=function(a){var b=this.getEventWorkspace_();a?b.createVariable(this.varName,this.varType,this.varId):b.deleteVariableById(this.varId)}; +Blockly.Events.VarDelete=function(a){Blockly.Events.VarDelete.superClass_.constructor.call(this,a);a&&(this.varType=a.type,this.varName=a.name)};Blockly.utils.object.inherits(Blockly.Events.VarDelete,Blockly.Events.VarBase);Blockly.Events.VarDelete.prototype.type=Blockly.Events.VAR_DELETE;Blockly.Events.VarDelete.prototype.toJson=function(){var a=Blockly.Events.VarDelete.superClass_.toJson.call(this);a.varType=this.varType;a.varName=this.varName;return a}; +Blockly.Events.VarDelete.prototype.fromJson=function(a){Blockly.Events.VarDelete.superClass_.fromJson.call(this,a);this.varType=a.varType;this.varName=a.varName};Blockly.Events.VarDelete.prototype.run=function(a){var b=this.getEventWorkspace_();a?b.deleteVariableById(this.varId):b.createVariable(this.varName,this.varType,this.varId)};Blockly.Events.VarRename=function(a,b){Blockly.Events.VarRename.superClass_.constructor.call(this,a);a&&(this.oldName=a.name,this.newName="undefined"==typeof b?"":b)}; +Blockly.utils.object.inherits(Blockly.Events.VarRename,Blockly.Events.VarBase);Blockly.Events.VarRename.prototype.type=Blockly.Events.VAR_RENAME;Blockly.Events.VarRename.prototype.toJson=function(){var a=Blockly.Events.VarRename.superClass_.toJson.call(this);a.oldName=this.oldName;a.newName=this.newName;return a};Blockly.Events.VarRename.prototype.fromJson=function(a){Blockly.Events.VarRename.superClass_.fromJson.call(this,a);this.oldName=a.oldName;this.newName=a.newName}; +Blockly.Events.VarRename.prototype.run=function(a){var b=this.getEventWorkspace_();a?b.renameVariableById(this.varId,this.newName):b.renameVariableById(this.varId,this.oldName)};Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.VAR_CREATE,Blockly.Events.VarCreate);Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.VAR_DELETE,Blockly.Events.VarDelete);Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.VAR_RENAME,Blockly.Events.VarRename);Blockly.BlockDragSurfaceSvg=function(a){this.container_=a;this.createDom()};Blockly.BlockDragSurfaceSvg.prototype.SVG_=null;Blockly.BlockDragSurfaceSvg.prototype.dragGroup_=null;Blockly.BlockDragSurfaceSvg.prototype.container_=null;Blockly.BlockDragSurfaceSvg.prototype.scale_=1;Blockly.BlockDragSurfaceSvg.prototype.surfaceXY_=null; Blockly.BlockDragSurfaceSvg.prototype.createDom=function(){this.SVG_||(this.SVG_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.SVG,{xmlns:Blockly.utils.dom.SVG_NS,"xmlns:html":Blockly.utils.dom.HTML_NS,"xmlns:xlink":Blockly.utils.dom.XLINK_NS,version:"1.1","class":"blocklyBlockDragSurface"},this.container_),this.dragGroup_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.G,{},this.SVG_))}; Blockly.BlockDragSurfaceSvg.prototype.setBlocksAndShow=function(a){if(this.dragGroup_.childNodes.length)throw Error("Already dragging a block.");this.dragGroup_.appendChild(a);this.SVG_.style.display="block";this.surfaceXY_=new Blockly.utils.Coordinate(0,0)};Blockly.BlockDragSurfaceSvg.prototype.translateAndScaleGroup=function(a,b,c){this.scale_=c;a=a.toFixed(0);b=b.toFixed(0);this.dragGroup_.setAttribute("transform","translate("+a+","+b+") scale("+c+")")}; Blockly.BlockDragSurfaceSvg.prototype.translateSurfaceInternal_=function(){var a=this.surfaceXY_.x,b=this.surfaceXY_.y;a=a.toFixed(0);b=b.toFixed(0);this.SVG_.style.display="block";Blockly.utils.dom.setCssTransform(this.SVG_,"translate3d("+a+"px, "+b+"px, 0px)")};Blockly.BlockDragSurfaceSvg.prototype.translateSurface=function(a,b){this.surfaceXY_=new Blockly.utils.Coordinate(a*this.scale_,b*this.scale_);this.translateSurfaceInternal_()}; @@ -123,122 +189,75 @@ Blockly.Grid.createDom=function(a,b,c){a=Blockly.utils.dom.createSvgElement(Bloc Blockly.Theme.prototype.setCategoryStyle=function(a,b){this.categoryStyles[a]=b};Blockly.Theme.prototype.getComponentStyle=function(a){return(a=this.componentStyles[a])&&"string"==typeof a&&this.getComponentStyle(a)?this.getComponentStyle(a):a?String(a):null};Blockly.Theme.prototype.setComponentStyle=function(a,b){this.componentStyles[a]=b};Blockly.Theme.prototype.setFontStyle=function(a){this.fontStyle=a};Blockly.Theme.prototype.setStartHats=function(a){this.startHats=a}; Blockly.Theme.defineTheme=function(a,b){var c=new Blockly.Theme(a),d=b.base;d&&("string"==typeof d&&(d=Blockly.registry.getObject(Blockly.registry.Type.THEME,d)),d instanceof Blockly.Theme&&(Blockly.utils.object.deepMerge(c,d),c.name=a));Blockly.utils.object.deepMerge(c.blockStyles,b.blockStyles);Blockly.utils.object.deepMerge(c.categoryStyles,b.categoryStyles);Blockly.utils.object.deepMerge(c.componentStyles,b.componentStyles);Blockly.utils.object.deepMerge(c.fontStyle,b.fontStyle);null!=b.startHats&& (c.startHats=b.startHats);return c};Blockly.Themes={};Blockly.Themes.Classic={};Blockly.Themes.Classic.defaultBlockStyles={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"}}; -Blockly.Themes.Classic.categoryStyles={colour_category:{colour:"20"},list_category:{colour:"260"},logic_category:{colour:"210"},loop_category:{colour:"120"},math_category:{colour:"230"},procedure_category:{colour:"290"},text_category:{colour:"160"},variable_category:{colour:"330"},variable_dynamic_category:{colour:"310"}};Blockly.Themes.Classic=new Blockly.Theme("classic",Blockly.Themes.Classic.defaultBlockStyles,Blockly.Themes.Classic.categoryStyles);Blockly.utils.IdGenerator={};Blockly.utils.IdGenerator.nextId_=0;Blockly.utils.IdGenerator.getNextUniqueId=function(){return"blockly-"+(Blockly.utils.IdGenerator.nextId_++).toString(36)};Blockly.utils.Metrics=function(){};Blockly.utils.toolbox={};Blockly.utils.toolbox.CATEGORY_TOOLBOX_KIND="categoryToolbox";Blockly.utils.toolbox.FLYOUT_TOOLBOX_KIND="flyoutToolbox";Blockly.utils.toolbox.Position={TOP:Blockly.TOOLBOX_AT_TOP,BOTTOM:Blockly.TOOLBOX_AT_BOTTOM,LEFT:Blockly.TOOLBOX_AT_LEFT,RIGHT:Blockly.TOOLBOX_AT_RIGHT}; -Blockly.utils.toolbox.convertToolboxDefToJson=function(a){if(!a)return null;if(a instanceof Element||"string"==typeof a)a=Blockly.utils.toolbox.parseToolboxTree(a),a=Blockly.utils.toolbox.convertToToolboxJson_(a);Blockly.utils.toolbox.validateToolbox_(a);return a}; +Blockly.Themes.Classic.categoryStyles={colour_category:{colour:"20"},list_category:{colour:"260"},logic_category:{colour:"210"},loop_category:{colour:"120"},math_category:{colour:"230"},procedure_category:{colour:"290"},text_category:{colour:"160"},variable_category:{colour:"330"},variable_dynamic_category:{colour:"310"}};Blockly.Themes.Classic=new Blockly.Theme("classic",Blockly.Themes.Classic.defaultBlockStyles,Blockly.Themes.Classic.categoryStyles);Blockly.utils.IdGenerator={};Blockly.utils.IdGenerator.nextId_=0;Blockly.utils.IdGenerator.getNextUniqueId=function(){return"blockly-"+(Blockly.utils.IdGenerator.nextId_++).toString(36)};Blockly.utils.Metrics=function(){};Blockly.utils.toolbox={};Blockly.utils.toolbox.CATEGORY_TOOLBOX_KIND="categoryToolbox";Blockly.utils.toolbox.FLYOUT_TOOLBOX_KIND="flyoutToolbox";Blockly.utils.toolbox.Position={TOP:0,BOTTOM:1,LEFT:2,RIGHT:3};Blockly.utils.toolbox.convertToolboxDefToJson=function(a){if(!a)return null;if(a instanceof Element||"string"==typeof a)a=Blockly.utils.toolbox.parseToolboxTree(a),a=Blockly.utils.toolbox.convertToToolboxJson_(a);Blockly.utils.toolbox.validateToolbox_(a);return a}; Blockly.utils.toolbox.validateToolbox_=function(a){var b=a.kind;a=a.contents;if(b&&b!=Blockly.utils.toolbox.FLYOUT_TOOLBOX_KIND&&b!=Blockly.utils.toolbox.CATEGORY_TOOLBOX_KIND)throw Error("Invalid toolbox kind "+b+". Please supply either "+Blockly.utils.toolbox.FLYOUT_TOOLBOX_KIND+" or "+Blockly.utils.toolbox.CATEGORY_TOOLBOX_KIND);if(!a)throw Error("Toolbox must have a contents attribute.");}; Blockly.utils.toolbox.convertFlyoutDefToJsonArray=function(a){return a?a.contents?a.contents:Array.isArray(a)&&0 document.");}else a=null;return a};Blockly.utils.xml={};Blockly.utils.xml.NAME_SPACE="https://developers.google.com/blockly/xml";Blockly.utils.xml.document=function(){return document};Blockly.utils.xml.createElement=function(a){return Blockly.utils.xml.document().createElementNS(Blockly.utils.xml.NAME_SPACE,a)};Blockly.utils.xml.createTextNode=function(a){return Blockly.utils.xml.document().createTextNode(a)};Blockly.utils.xml.textToDomDocument=function(a){return(new DOMParser).parseFromString(a,"text/xml")}; -Blockly.utils.xml.domToText=function(a){return(new XMLSerializer).serializeToString(a)};Blockly.Events.BlockBase=function(a){Blockly.Events.BlockBase.superClass_.constructor.call(this);this.blockId=(this.isBlank="undefined"==typeof a)?"":a.id;this.workspaceId=this.isBlank?"":a.workspace.id};Blockly.utils.object.inherits(Blockly.Events.BlockBase,Blockly.Events.Abstract);Blockly.Events.BlockBase.prototype.toJson=function(){var a=Blockly.Events.BlockBase.superClass_.toJson.call(this);a.blockId=this.blockId;return a}; -Blockly.Events.BlockBase.prototype.fromJson=function(a){Blockly.Events.BlockBase.superClass_.fromJson.call(this,a);this.blockId=a.blockId};Blockly.Events.Change=function(a,b,c,d,e){Blockly.Events.Change.superClass_.constructor.call(this,a);a&&(this.element="undefined"==typeof b?"":b,this.name="undefined"==typeof c?"":c,this.oldValue="undefined"==typeof d?"":d,this.newValue="undefined"==typeof e?"":e)};Blockly.utils.object.inherits(Blockly.Events.Change,Blockly.Events.BlockBase); -Blockly.Events.BlockChange=Blockly.Events.Change;Blockly.Events.Change.prototype.type=Blockly.Events.CHANGE;Blockly.Events.Change.prototype.toJson=function(){var a=Blockly.Events.Change.superClass_.toJson.call(this);a.element=this.element;this.name&&(a.name=this.name);a.oldValue=this.oldValue;a.newValue=this.newValue;return a}; -Blockly.Events.Change.prototype.fromJson=function(a){Blockly.Events.Change.superClass_.fromJson.call(this,a);this.element=a.element;this.name=a.name;this.oldValue=a.oldValue;this.newValue=a.newValue};Blockly.Events.Change.prototype.isNull=function(){return this.oldValue==this.newValue}; -Blockly.Events.Change.prototype.run=function(a){var b=this.getEventWorkspace_().getBlockById(this.blockId);if(b)switch(b.mutator&&b.mutator.setVisible(!1),a=a?this.newValue:this.oldValue,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);break;case "collapsed":b.setCollapsed(!!a);break;case "disabled":b.setEnabled(!a);break;case "inline":b.setInputsInline(!!a);break;case "mutation":var c= -"";b.mutationToDom&&(c=(c=b.mutationToDom())&&Blockly.Xml.domToText(c));if(b.domToMutation){var d=Blockly.Xml.textToDom(a||"");b.domToMutation(d)}Blockly.Events.fire(new Blockly.Events.Change(b,"mutation",null,c,a));break;default:console.warn("Unknown change type: "+this.element)}else console.warn("Can't change non-existent block: "+this.blockId)}; -Blockly.Events.Create=function(a){Blockly.Events.Create.superClass_.constructor.call(this,a);a&&(a.isShadow()&&(this.recordUndo=!1),this.xml=a.workspace.rendered?Blockly.Xml.blockToDomWithXY(a):Blockly.Xml.blockToDom(a),this.ids=Blockly.Events.getDescendantIds(a))};Blockly.utils.object.inherits(Blockly.Events.Create,Blockly.Events.BlockBase);Blockly.Events.BlockCreate=Blockly.Events.Create;Blockly.Events.Create.prototype.type=Blockly.Events.CREATE; -Blockly.Events.Create.prototype.toJson=function(){var a=Blockly.Events.Create.superClass_.toJson.call(this);a.xml=Blockly.Xml.domToText(this.xml);a.ids=this.ids;this.recordUndo||(a.recordUndo=this.recordUndo);return a};Blockly.Events.Create.prototype.fromJson=function(a){Blockly.Events.Create.superClass_.fromJson.call(this,a);this.xml=Blockly.Xml.textToDom(a.xml);this.ids=a.ids;void 0!==a.recordUndo&&(this.recordUndo=a.recordUndo)}; -Blockly.Events.Create.prototype.run=function(a){var b=this.getEventWorkspace_();if(a)a=Blockly.utils.xml.createElement("xml"),a.appendChild(this.xml),Blockly.Xml.domToWorkspace(a,b);else{a=0;for(var c;c=this.ids[a];a++){var d=b.getBlockById(c);d?d.dispose(!1):c==this.blockId&&console.warn("Can't uncreate non-existent block: "+c)}}}; -Blockly.Events.Delete=function(a){Blockly.Events.Delete.superClass_.constructor.call(this,a);if(a){if(a.getParent())throw Error("Connected blocks cannot be deleted.");a.isShadow()&&(this.recordUndo=!1);this.oldXml=a.workspace.rendered?Blockly.Xml.blockToDomWithXY(a):Blockly.Xml.blockToDom(a);this.ids=Blockly.Events.getDescendantIds(a)}};Blockly.utils.object.inherits(Blockly.Events.Delete,Blockly.Events.BlockBase);Blockly.Events.BlockDelete=Blockly.Events.Delete; -Blockly.Events.Delete.prototype.type=Blockly.Events.DELETE;Blockly.Events.Delete.prototype.toJson=function(){var a=Blockly.Events.Delete.superClass_.toJson.call(this);a.oldXml=Blockly.Xml.domToText(this.oldXml);a.ids=this.ids;this.recordUndo||(a.recordUndo=this.recordUndo);return a};Blockly.Events.Delete.prototype.fromJson=function(a){Blockly.Events.Delete.superClass_.fromJson.call(this,a);this.oldXml=Blockly.Xml.textToDom(a.oldXml);this.ids=a.ids;void 0!==a.recordUndo&&(this.recordUndo=a.recordUndo)}; -Blockly.Events.Delete.prototype.run=function(a){var b=this.getEventWorkspace_();if(a){a=0;for(var c;c=this.ids[a];a++){var d=b.getBlockById(c);d?d.dispose(!1):c==this.blockId&&console.warn("Can't delete non-existent block: "+c)}}else a=Blockly.utils.xml.createElement("xml"),a.appendChild(this.oldXml),Blockly.Xml.domToWorkspace(a,b)}; -Blockly.Events.Move=function(a){Blockly.Events.Move.superClass_.constructor.call(this,a);a&&(a.isShadow()&&(this.recordUndo=!1),a=this.currentLocation_(),this.oldParentId=a.parentId,this.oldInputName=a.inputName,this.oldCoordinate=a.coordinate)};Blockly.utils.object.inherits(Blockly.Events.Move,Blockly.Events.BlockBase);Blockly.Events.BlockMove=Blockly.Events.Move;Blockly.Events.Move.prototype.type=Blockly.Events.MOVE; -Blockly.Events.Move.prototype.toJson=function(){var a=Blockly.Events.Move.superClass_.toJson.call(this);this.newParentId&&(a.newParentId=this.newParentId);this.newInputName&&(a.newInputName=this.newInputName);this.newCoordinate&&(a.newCoordinate=Math.round(this.newCoordinate.x)+","+Math.round(this.newCoordinate.y));this.recordUndo||(a.recordUndo=this.recordUndo);return a}; -Blockly.Events.Move.prototype.fromJson=function(a){Blockly.Events.Move.superClass_.fromJson.call(this,a);this.newParentId=a.newParentId;this.newInputName=a.newInputName;if(a.newCoordinate){var b=a.newCoordinate.split(",");this.newCoordinate=new Blockly.utils.Coordinate(Number(b[0]),Number(b[1]))}void 0!==a.recordUndo&&(this.recordUndo=a.recordUndo)}; -Blockly.Events.Move.prototype.recordNew=function(){var a=this.currentLocation_();this.newParentId=a.parentId;this.newInputName=a.inputName;this.newCoordinate=a.coordinate};Blockly.Events.Move.prototype.currentLocation_=function(){var a=this.getEventWorkspace_().getBlockById(this.blockId),b={},c=a.getParent();if(c){if(b.parentId=c.id,a=c.getInputWithBlock(a))b.inputName=a.name}else b.coordinate=a.getRelativeToSurfaceXY();return b}; -Blockly.Events.Move.prototype.isNull=function(){return this.oldParentId==this.newParentId&&this.oldInputName==this.newInputName&&Blockly.utils.Coordinate.equals(this.oldCoordinate,this.newCoordinate)}; -Blockly.Events.Move.prototype.run=function(a){var b=this.getEventWorkspace_(),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;var f=null;if(d&&(f=b.getBlockById(d),!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);else{c=c.outputConnection||c.previousConnection;if(e){if(b=f.getInput(e))var g= -b.connection}else c.type==Blockly.PREVIOUS_STATEMENT&&(g=f.nextConnection);g?c.connect(g):console.warn("Can't connect to non-existent input: "+e)}}else console.warn("Can't move non-existent block: "+this.blockId)};Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.CREATE,Blockly.Events.Create);Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.DELETE,Blockly.Events.Delete);Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.CHANGE,Blockly.Events.Change); -Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.MOVE,Blockly.Events.Move);Blockly.Events.FinishedLoading=function(a){this.isBlank="undefined"==typeof a;this.workspaceId=a?a.id:"";this.group=Blockly.Events.getGroup();this.recordUndo=!1};Blockly.utils.object.inherits(Blockly.Events.FinishedLoading,Blockly.Events.Abstract);Blockly.Events.FinishedLoading.prototype.type=Blockly.Events.FINISHED_LOADING;Blockly.Events.FinishedLoading.prototype.toJson=function(){var a={type:this.type};this.group&&(a.group=this.group);this.workspaceId&&(a.workspaceId=this.workspaceId);return a}; -Blockly.Events.FinishedLoading.prototype.fromJson=function(a){this.isBlank=!1;this.workspaceId=a.workspaceId;this.group=a.group};Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.FINISHED_LOADING,Blockly.Events.FinishedLoading);Blockly.Events.VarBase=function(a){Blockly.Events.VarBase.superClass_.constructor.call(this);this.varId=(this.isBlank="undefined"==typeof a)?"":a.getId();this.workspaceId=this.isBlank?"":a.workspace.id};Blockly.utils.object.inherits(Blockly.Events.VarBase,Blockly.Events.Abstract);Blockly.Events.VarBase.prototype.toJson=function(){var a=Blockly.Events.VarBase.superClass_.toJson.call(this);a.varId=this.varId;return a}; -Blockly.Events.VarBase.prototype.fromJson=function(a){Blockly.Events.VarBase.superClass_.toJson.call(this);this.varId=a.varId};Blockly.Events.VarCreate=function(a){Blockly.Events.VarCreate.superClass_.constructor.call(this,a);a&&(this.varType=a.type,this.varName=a.name)};Blockly.utils.object.inherits(Blockly.Events.VarCreate,Blockly.Events.VarBase);Blockly.Events.VarCreate.prototype.type=Blockly.Events.VAR_CREATE; -Blockly.Events.VarCreate.prototype.toJson=function(){var a=Blockly.Events.VarCreate.superClass_.toJson.call(this);a.varType=this.varType;a.varName=this.varName;return a};Blockly.Events.VarCreate.prototype.fromJson=function(a){Blockly.Events.VarCreate.superClass_.fromJson.call(this,a);this.varType=a.varType;this.varName=a.varName};Blockly.Events.VarCreate.prototype.run=function(a){var b=this.getEventWorkspace_();a?b.createVariable(this.varName,this.varType,this.varId):b.deleteVariableById(this.varId)}; -Blockly.Events.VarDelete=function(a){Blockly.Events.VarDelete.superClass_.constructor.call(this,a);a&&(this.varType=a.type,this.varName=a.name)};Blockly.utils.object.inherits(Blockly.Events.VarDelete,Blockly.Events.VarBase);Blockly.Events.VarDelete.prototype.type=Blockly.Events.VAR_DELETE;Blockly.Events.VarDelete.prototype.toJson=function(){var a=Blockly.Events.VarDelete.superClass_.toJson.call(this);a.varType=this.varType;a.varName=this.varName;return a}; -Blockly.Events.VarDelete.prototype.fromJson=function(a){Blockly.Events.VarDelete.superClass_.fromJson.call(this,a);this.varType=a.varType;this.varName=a.varName};Blockly.Events.VarDelete.prototype.run=function(a){var b=this.getEventWorkspace_();a?b.deleteVariableById(this.varId):b.createVariable(this.varName,this.varType,this.varId)};Blockly.Events.VarRename=function(a,b){Blockly.Events.VarRename.superClass_.constructor.call(this,a);a&&(this.oldName=a.name,this.newName="undefined"==typeof b?"":b)}; -Blockly.utils.object.inherits(Blockly.Events.VarRename,Blockly.Events.VarBase);Blockly.Events.VarRename.prototype.type=Blockly.Events.VAR_RENAME;Blockly.Events.VarRename.prototype.toJson=function(){var a=Blockly.Events.VarRename.superClass_.toJson.call(this);a.oldName=this.oldName;a.newName=this.newName;return a};Blockly.Events.VarRename.prototype.fromJson=function(a){Blockly.Events.VarRename.superClass_.fromJson.call(this,a);this.oldName=a.oldName;this.newName=a.newName}; -Blockly.Events.VarRename.prototype.run=function(a){var b=this.getEventWorkspace_();a?b.renameVariableById(this.varId,this.newName):b.renameVariableById(this.varId,this.oldName)};Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.VAR_CREATE,Blockly.Events.VarCreate);Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.VAR_DELETE,Blockly.Events.VarDelete);Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.VAR_RENAME,Blockly.Events.VarRename);Blockly.Xml={};Blockly.Xml.workspaceToDom=function(a,b){var c=Blockly.utils.xml.createElement("xml"),d=Blockly.Xml.variablesToDom(Blockly.Variables.allUsedVarModels(a));d.hasChildNodes()&&c.appendChild(d);var e=a.getTopComments(!0);d=0;for(var f;f=e[d];d++)c.appendChild(f.toXmlWithXY(b));a=a.getTopBlocks(!0);for(d=0;e=a[d];d++)c.appendChild(Blockly.Xml.blockToDomWithXY(e,b));return c}; -Blockly.Xml.variablesToDom=function(a){for(var b=Blockly.utils.xml.createElement("variables"),c=0,d;d=a[c];c++){var e=Blockly.utils.xml.createElement("variable");e.appendChild(Blockly.utils.xml.createTextNode(d.name));d.type&&e.setAttribute("type",d.type);e.id=d.getId();b.appendChild(e)}return b}; -Blockly.Xml.blockToDomWithXY=function(a,b){if(a.isInsertionMarker()&&(a=a.getChildren(!1)[0],!a))return new DocumentFragment;var c;a.workspace.RTL&&(c=a.workspace.getWidth());b=Blockly.Xml.blockToDom(a,b);var d=a.getRelativeToSurfaceXY();b.setAttribute("x",Math.round(a.workspace.RTL?c-d.x:d.x));b.setAttribute("y",Math.round(d.y));return b};Blockly.Xml.fieldToDom_=function(a){if(a.isSerializable()){var b=Blockly.utils.xml.createElement("field");b.setAttribute("name",a.name||"");return a.toXml(b)}return null}; -Blockly.Xml.allFieldsToDom_=function(a,b){for(var c=0,d;d=a.inputList[c];c++)for(var e=0,f;f=d.fieldRow[e];e++)(f=Blockly.Xml.fieldToDom_(f))&&b.appendChild(f)}; -Blockly.Xml.blockToDom=function(a,b){if(a.isInsertionMarker())return(a=a.getChildren(!1)[0])?Blockly.Xml.blockToDom(a):new DocumentFragment;var c=Blockly.utils.xml.createElement(a.isShadow()?"shadow":"block");c.setAttribute("type",a.type);b||c.setAttribute("id",a.id);if(a.mutationToDom){var d=a.mutationToDom();d&&(d.hasChildNodes()||d.hasAttributes())&&c.appendChild(d)}Blockly.Xml.allFieldsToDom_(a,c);if(d=a.getCommentText()){var e=a.commentModel.size,f=a.commentModel.pinned,g=Blockly.utils.xml.createElement("comment"); -g.appendChild(Blockly.utils.xml.createTextNode(d));g.setAttribute("pinned",f);g.setAttribute("h",e.height);g.setAttribute("w",e.width);c.appendChild(g)}a.data&&(d=Blockly.utils.xml.createElement("data"),d.appendChild(Blockly.utils.xml.createTextNode(a.data)),c.appendChild(d));for(d=0;e=a.inputList[d];d++){var h;f=!0;if(e.type!=Blockly.DUMMY_INPUT){var k=e.connection.targetBlock();e.type==Blockly.INPUT_VALUE?h=Blockly.utils.xml.createElement("value"):e.type==Blockly.NEXT_STATEMENT&&(h=Blockly.utils.xml.createElement("statement")); -g=e.connection.getShadowDom();!g||k&&k.isShadow()||h.appendChild(Blockly.Xml.cloneShadow_(g,b));k&&(g=Blockly.Xml.blockToDom(k,b),g.nodeType==Blockly.utils.dom.NodeType.ELEMENT_NODE&&(h.appendChild(g),f=!1));h.setAttribute("name",e.name);f||c.appendChild(h)}}void 0!=a.inputsInline&&a.inputsInline!=a.inputsInlineDefault&&c.setAttribute("inline",a.inputsInline);a.isCollapsed()&&c.setAttribute("collapsed",!0);a.isEnabled()||c.setAttribute("disabled",!0);a.isDeletable()||a.isShadow()||c.setAttribute("deletable", -!1);a.isMovable()||a.isShadow()||c.setAttribute("movable",!1);a.isEditable()||c.setAttribute("editable",!1);if(d=a.getNextBlock())g=Blockly.Xml.blockToDom(d,b),g.nodeType==Blockly.utils.dom.NodeType.ELEMENT_NODE&&(h=Blockly.utils.xml.createElement("next"),h.appendChild(g),c.appendChild(h));g=a.nextConnection&&a.nextConnection.getShadowDom();!g||d&&d.isShadow()||h.appendChild(Blockly.Xml.cloneShadow_(g,b));return c}; -Blockly.Xml.cloneShadow_=function(a,b){for(var c=a=a.cloneNode(!0),d;c;)if(b&&"shadow"==c.nodeName&&c.removeAttribute("id"),c.firstChild)c=c.firstChild;else{for(;c&&!c.nextSibling;)d=c,c=c.parentNode,d.nodeType==Blockly.utils.dom.NodeType.TEXT_NODE&&""==d.data.trim()&&c.firstChild!=d&&Blockly.utils.dom.removeNode(d);c&&(d=c,c=c.nextSibling,d.nodeType==Blockly.utils.dom.NodeType.TEXT_NODE&&""==d.data.trim()&&Blockly.utils.dom.removeNode(d))}return a}; -Blockly.Xml.domToText=function(a){return Blockly.utils.xml.domToText(a).replace(/<(\w+)([^<]*)\/>/g,"<$1$2>")};Blockly.Xml.domToPrettyText=function(a){a=Blockly.Xml.domToText(a).split("<");for(var b="",c=1;c"!=d.slice(-2)&&(b+=" ")}a=a.join("\n");a=a.replace(/(<(\w+)\b[^>]*>[^\n]*)\n *<\/\2>/g,"$1");return a.replace(/^\n/,"")}; -Blockly.Xml.textToDom=function(a){var b=Blockly.utils.xml.textToDomDocument(a);if(!b||!b.documentElement||b.getElementsByTagName("parsererror").length)throw Error("textToDom was unable to parse: "+a);return b.documentElement};Blockly.Xml.clearWorkspaceAndLoadFromXml=function(a,b){b.setResizesEnabled(!1);b.clear();a=Blockly.Xml.domToWorkspace(a,b);b.setResizesEnabled(!0);return a}; -Blockly.Xml.domToWorkspace=function(a,b){if(a instanceof Blockly.Workspace){var c=a;a=b;b=c;console.warn("Deprecated call to Blockly.Xml.domToWorkspace, swap the arguments.")}var d;b.RTL&&(d=b.getWidth());c=[];Blockly.utils.dom.startTextWidthCache();var e=Blockly.Events.getGroup();e||Blockly.Events.setGroup(!0);b.setResizesEnabled&&b.setResizesEnabled(!1);var f=!0;try{for(var g=0,h;h=a.childNodes[g];g++){var k=h.nodeName.toLowerCase(),l=h;if("block"==k||"shadow"==k&&!Blockly.Events.recordUndo){var m= -Blockly.Xml.domToBlock(l,b);c.push(m.id);var n=l.hasAttribute("x")?parseInt(l.getAttribute("x"),10):10,p=l.hasAttribute("y")?parseInt(l.getAttribute("y"),10):10;isNaN(n)||isNaN(p)||m.moveBy(b.RTL?d-n:n,p);f=!1}else{if("shadow"==k)throw TypeError("Shadow block cannot be a top-level block.");if("comment"==k)b.rendered?Blockly.WorkspaceCommentSvg?Blockly.WorkspaceCommentSvg.fromXml(l,b,d):console.warn("Missing require for Blockly.WorkspaceCommentSvg, ignoring workspace comment."):Blockly.WorkspaceComment? -Blockly.WorkspaceComment.fromXml(l,b):console.warn("Missing require for Blockly.WorkspaceComment, ignoring workspace comment.");else if("variables"==k){if(f)Blockly.Xml.domToVariables(l,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{e||Blockly.Events.setGroup(!1),Blockly.utils.dom.stopTextWidthCache()}b.setResizesEnabled&&b.setResizesEnabled(!0);Blockly.Events.fire(new Blockly.Events.FinishedLoading(b)); -return c};Blockly.Xml.appendDomToWorkspace=function(a,b){var c;Object.prototype.hasOwnProperty.call(b,"scale")&&(c=b.getBlocksBoundingBox());a=Blockly.Xml.domToWorkspace(a,b);if(c&&c.top!=c.bottom){var d=c.bottom;var e=b.RTL?c.right:c.left;var f=Infinity,g=-Infinity,h=Infinity;for(c=0;cg&&(g=k.x)}d=d-h+10;e=b.RTL?e-g:e-f;for(c=0;c document.");}else a=null;return a};Blockly.Options=function(a){var b=!!a.readOnly;if(b)var c=null,d=!1,e=!1,f=!1,g=!1,h=!1,k=!1;else{c=Blockly.utils.toolbox.convertToolboxDefToJson(a.toolbox);d=Blockly.utils.toolbox.hasCategories(c);e=a.trashcan;void 0===e&&(e=d);var l=a.maxTrashcanContents;e?void 0===l&&(l=32):l=0;f=a.collapse;void 0===f&&(f=d);g=a.comments;void 0===g&&(g=d);h=a.disable;void 0===h&&(h=d);k=a.sounds;void 0===k&&(k=!0)}var m=!!a.rtl,n=a.horizontalLayout;void 0===n&&(n=!1);var p=a.toolboxPosition;p="end"!==p;p=n?p?Blockly.utils.toolbox.Position.TOP: Blockly.utils.toolbox.Position.BOTTOM:p==m?Blockly.utils.toolbox.Position.RIGHT:Blockly.utils.toolbox.Position.LEFT;var q=a.css;void 0===q&&(q=!0);var t="https://blockly-demo.appspot.com/static/media/";a.media?t=a.media:a.path&&(t=a.path+"media/");var r=void 0===a.oneBasedIndex?!0:!!a.oneBasedIndex,u=a.renderer||"geras",v=a.plugins||{};this.RTL=m;this.oneBasedIndex=r;this.collapse=f;this.comments=g;this.disable=h;this.readOnly=b;this.maxBlocks=a.maxBlocks||Infinity;this.maxInstances=a.maxInstances; -this.pathToMedia=t;this.hasCategories=d;this.moveOptions=Blockly.Options.parseMoveOptions_(a,d);this.hasScrollbars=this.moveOptions.scrollbars;this.hasTrashcan=e;this.maxTrashcanContents=l;this.hasSounds=k;this.hasCss=q;this.horizontalLayout=n;this.languageTree=c;this.gridOptions=Blockly.Options.parseGridOptions_(a);this.zoomOptions=Blockly.Options.parseZoomOptions_(a);this.toolboxPosition=p;this.theme=Blockly.Options.parseThemeOptions_(a);this.renderer=u;this.rendererOverrides=a.rendererOverrides; -this.gridPattern=null;this.parentWorkspace=a.parentWorkspace;this.plugins=v};Blockly.BlocklyOptions=function(){};Blockly.Options.parseMoveOptions_=function(a,b){var c=a.move||{},d={};d.scrollbars=void 0===c.scrollbars&&void 0===a.scrollbars?b:!!c.scrollbars||!!a.scrollbars;d.wheel=d.scrollbars&&void 0!==c.wheel?!!c.wheel:!1;d.drag=d.scrollbars?void 0===c.drag?!0:!!c.drag:!1;return d}; +this.pathToMedia=t;this.hasCategories=d;this.moveOptions=Blockly.Options.parseMoveOptions_(a,d);this.hasScrollbars=!!this.moveOptions.scrollbars;this.hasTrashcan=e;this.maxTrashcanContents=l;this.hasSounds=k;this.hasCss=q;this.horizontalLayout=n;this.languageTree=c;this.gridOptions=Blockly.Options.parseGridOptions_(a);this.zoomOptions=Blockly.Options.parseZoomOptions_(a);this.toolboxPosition=p;this.theme=Blockly.Options.parseThemeOptions_(a);this.renderer=u;this.rendererOverrides=a.rendererOverrides; +this.gridPattern=null;this.parentWorkspace=a.parentWorkspace;this.plugins=v};Blockly.BlocklyOptions=function(){}; +Blockly.Options.parseMoveOptions_=function(a,b){var c=a.move||{},d={};void 0===c.scrollbars&&void 0===a.scrollbars?d.scrollbars=b:"object"==typeof c.scrollbars?(d.scrollbars={},d.scrollbars.horizontal=!!c.scrollbars.horizontal,d.scrollbars.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&&void 0!==c.wheel?!!c.wheel:"object"== +typeof d.scrollbars;d.drag=d.scrollbars?void 0===c.drag?!0:!!c.drag:!1;return d}; Blockly.Options.parseZoomOptions_=function(a){a=a.zoom||{};var b={};b.controls=void 0===a.controls?!1:!!a.controls;b.wheel=void 0===a.wheel?!1:!!a.wheel;b.startScale=void 0===a.startScale?1:Number(a.startScale);b.maxScale=void 0===a.maxScale?3:Number(a.maxScale);b.minScale=void 0===a.minScale?.3:Number(a.minScale);b.scaleSpeed=void 0===a.scaleSpeed?1.2:Number(a.scaleSpeed);b.pinch=void 0===a.pinch?b.wheel||b.controls:!!a.pinch;return b}; Blockly.Options.parseGridOptions_=function(a){a=a.grid||{};var b={};b.spacing=Number(a.spacing)||0;b.colour=a.colour||"#888";b.length=void 0===a.length?1:Number(a.length);b.snap=0=a||isNaN(a)?0:Math.min(a,this.scrollbarLength_)};Blockly.Scrollbar.prototype.setHandleLength_=function(a){this.handleLength_=a;this.svgHandle_.setAttribute(this.lengthAttribute_,this.handleLength_)};Blockly.Scrollbar.prototype.constrainHandlePosition_=function(a){return a=0>=a||isNaN(a)?0:Math.min(a,this.scrollbarLength_-this.handleLength_)}; +Blockly.Scrollbar.prototype.setHandlePosition=function(a){this.handlePosition_=a;this.svgHandle_.setAttribute(this.positionAttribute_,this.handlePosition_)};Blockly.Scrollbar.prototype.setScrollbarLength_=function(a){this.scrollbarLength_=a;this.outerSvg_.setAttribute(this.lengthAttribute_,this.scrollbarLength_);this.svgBackground_.setAttribute(this.lengthAttribute_,this.scrollbarLength_)}; +Blockly.Scrollbar.prototype.setPosition=function(a,b){this.position.x=a;this.position.y=b;Blockly.utils.dom.setCssTransform(this.outerSvg_,"translate("+(this.position.x+this.origin_.x)+"px,"+(this.position.y+this.origin_.y)+"px)")};Blockly.Scrollbar.prototype.resize=function(a){if(!a&&(a=this.workspace_.getMetrics(),!a))return;Blockly.Scrollbar.metricsAreEquivalent_(a,this.oldHostMetrics_)||(this.horizontal_?this.resizeHorizontal_(a):this.resizeVertical_(a),this.oldHostMetrics_=a,this.updateMetrics_())}; +Blockly.Scrollbar.prototype.requiresViewResize_=function(a){return this.oldHostMetrics_?this.oldHostMetrics_.viewWidth!==a.viewWidth||this.oldHostMetrics_.viewHeight!==a.viewHeight||this.oldHostMetrics_.absoluteLeft!==a.absoluteLeft||this.oldHostMetrics_.absoluteTop!==a.absoluteTop:!0};Blockly.Scrollbar.prototype.resizeHorizontal_=function(a){this.requiresViewResize_(a)?this.resizeViewHorizontal(a):this.resizeContentHorizontal(a)}; +Blockly.Scrollbar.prototype.resizeViewHorizontal=function(a){var b=a.viewWidth-2*Blockly.Scrollbar.SCROLLBAR_MARGIN;this.pair_&&(b-=Blockly.Scrollbar.scrollbarThickness);this.setScrollbarLength_(Math.max(0,b));b=a.absoluteLeft+Blockly.Scrollbar.SCROLLBAR_MARGIN;this.pair_&&this.workspace_.RTL&&(b+=Blockly.Scrollbar.scrollbarThickness);this.setPosition(b,a.absoluteTop+a.viewHeight-Blockly.Scrollbar.scrollbarThickness-Blockly.Scrollbar.SCROLLBAR_MARGIN);this.resizeContentHorizontal(a)}; +Blockly.Scrollbar.prototype.resizeContentHorizontal=function(a){if(a.viewWidth>=a.scrollWidth)this.setHandleLength_(this.scrollbarLength_),this.setHandlePosition(0),this.pair_||this.setVisible(!1);else{this.pair_||this.setVisible(!0);var b=this.scrollbarLength_*a.viewWidth/a.scrollWidth;b=this.constrainHandleLength_(b);this.setHandleLength_(b);b=a.scrollWidth-a.viewWidth;var c=this.scrollbarLength_-this.handleLength_;a=(a.viewLeft-a.scrollLeft)/b*c;a=this.constrainHandlePosition_(a);this.setHandlePosition(a); +this.ratio=c/b}};Blockly.Scrollbar.prototype.resizeVertical_=function(a){this.requiresViewResize_(a)?this.resizeViewVertical(a):this.resizeContentVertical(a)}; +Blockly.Scrollbar.prototype.resizeViewVertical=function(a){var b=a.viewHeight-2*Blockly.Scrollbar.SCROLLBAR_MARGIN;this.pair_&&(b-=Blockly.Scrollbar.scrollbarThickness);this.setScrollbarLength_(Math.max(0,b));this.setPosition(this.workspace_.RTL?a.absoluteLeft+Blockly.Scrollbar.SCROLLBAR_MARGIN:a.absoluteLeft+a.viewWidth-Blockly.Scrollbar.scrollbarThickness-Blockly.Scrollbar.SCROLLBAR_MARGIN,a.absoluteTop+Blockly.Scrollbar.SCROLLBAR_MARGIN);this.resizeContentVertical(a)}; +Blockly.Scrollbar.prototype.resizeContentVertical=function(a){if(a.viewHeight>=a.scrollHeight)this.setHandleLength_(this.scrollbarLength_),this.setHandlePosition(0),this.pair_||this.setVisible(!1);else{this.pair_||this.setVisible(!0);var b=this.scrollbarLength_*a.viewHeight/a.scrollHeight;b=this.constrainHandleLength_(b);this.setHandleLength_(b);b=a.scrollHeight-a.viewHeight;var c=this.scrollbarLength_-this.handleLength_;a=(a.viewTop-a.scrollTop)/b*c;a=this.constrainHandlePosition_(a);this.setHandlePosition(a); +this.ratio=c/b}}; Blockly.Scrollbar.prototype.createDom_=function(a){var b="blocklyScrollbar"+(this.horizontal_?"Horizontal":"Vertical");a&&(b+=" "+a);this.outerSvg_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.SVG,{"class":b},null);this.svgGroup_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.G,{},this.outerSvg_);this.svgBackground_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT,{"class":"blocklyScrollbarBackground"},this.svgGroup_);a=Math.floor((Blockly.Scrollbar.scrollbarThickness-5)/2); this.svgHandle_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT,{"class":"blocklyScrollbarHandle",rx:a,ry:a},this.svgGroup_);this.workspace_.getThemeManager().subscribe(this.svgHandle_,"scrollbarColour","fill");this.workspace_.getThemeManager().subscribe(this.svgHandle_,"scrollbarOpacity","fill-opacity");Blockly.utils.dom.insertAfter(this.outerSvg_,this.workspace_.getParentSvg())};Blockly.Scrollbar.prototype.isVisible=function(){return this.isVisible_}; Blockly.Scrollbar.prototype.setContainerVisible=function(a){var b=a!=this.containerVisible_;this.containerVisible_=a;b&&this.updateDisplay_()};Blockly.Scrollbar.prototype.setVisible=function(a){var b=a!=this.isVisible();if(this.pair_)throw Error("Unable to toggle visibility of paired scrollbars.");this.isVisible_=a;b&&this.updateDisplay_()}; Blockly.Scrollbar.prototype.updateDisplay_=function(){this.containerVisible_&&this.isVisible()?this.outerSvg_.setAttribute("display","block"):this.outerSvg_.setAttribute("display","none")}; Blockly.Scrollbar.prototype.onMouseDownBar_=function(a){this.workspace_.markFocused();Blockly.Touch.clearTouchIdentifier();this.cleanUp_();if(Blockly.utils.isRightButton(a))a.stopPropagation();else{var b=Blockly.utils.mouseToSvg(a,this.workspace_.getParentSvg(),this.workspace_.getInverseScreenCTM());b=this.horizontal_?b.x:b.y;var c=Blockly.utils.getInjectionDivXY_(this.svgHandle_);c=this.horizontal_?c.x:c.y;var d=this.handlePosition_,e=.95*this.handleLength_;b<=c?d-=e:b>=c+this.handleLength_&&(d+= -e);this.setHandlePosition(this.constrainHandle_(d));this.onScroll_();a.stopPropagation();a.preventDefault()}}; -Blockly.Scrollbar.prototype.onMouseDownHandle_=function(a){this.workspace_.markFocused();this.cleanUp_();Blockly.utils.isRightButton(a)?a.stopPropagation():(this.startDragHandle=this.handlePosition_,this.workspace_.setupDragSurface(),this.startDragMouse_=this.horizontal_?a.clientX:a.clientY,Blockly.Scrollbar.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,this.onMouseUpHandle_),Blockly.Scrollbar.onMouseMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",this,this.onMouseMoveHandle_), -a.stopPropagation(),a.preventDefault())};Blockly.Scrollbar.prototype.onMouseMoveHandle_=function(a){this.setHandlePosition(this.constrainHandle_(this.startDragHandle+((this.horizontal_?a.clientX:a.clientY)-this.startDragMouse_)));this.onScroll_()};Blockly.Scrollbar.prototype.onMouseUpHandle_=function(){this.workspace_.resetDragSurface();Blockly.Touch.clearTouchIdentifier();this.cleanUp_()}; -Blockly.Scrollbar.prototype.cleanUp_=function(){Blockly.hideChaff(!0);Blockly.Scrollbar.onMouseUpWrapper_&&(Blockly.unbindEvent_(Blockly.Scrollbar.onMouseUpWrapper_),Blockly.Scrollbar.onMouseUpWrapper_=null);Blockly.Scrollbar.onMouseMoveWrapper_&&(Blockly.unbindEvent_(Blockly.Scrollbar.onMouseMoveWrapper_),Blockly.Scrollbar.onMouseMoveWrapper_=null)}; -Blockly.Scrollbar.prototype.constrainHandle_=function(a){return a=0>=a||isNaN(a)||this.scrollViewSize_Blockly.Tooltip.RADIUS_OK&&Blockly.Tooltip.hide()}else Blockly.Tooltip.poisonedElement_!=Blockly.Tooltip.element_&&(clearTimeout(Blockly.Tooltip.showPid_),Blockly.Tooltip.lastX_=a.pageX,Blockly.Tooltip.lastY_=a.pageY,Blockly.Tooltip.showPid_=setTimeout(Blockly.Tooltip.show_, Blockly.Tooltip.HOVER_MS))};Blockly.Tooltip.dispose=function(){Blockly.Tooltip.element_=null;Blockly.Tooltip.poisonedElement_=null;Blockly.Tooltip.hide()};Blockly.Tooltip.hide=function(){Blockly.Tooltip.visible&&(Blockly.Tooltip.visible=!1,Blockly.Tooltip.DIV&&(Blockly.Tooltip.DIV.style.display="none"));Blockly.Tooltip.showPid_&&clearTimeout(Blockly.Tooltip.showPid_)};Blockly.Tooltip.block=function(){Blockly.Tooltip.hide();Blockly.Tooltip.blocked_=!0}; Blockly.Tooltip.unblock=function(){Blockly.Tooltip.blocked_=!1}; Blockly.Tooltip.show_=function(){if(!Blockly.Tooltip.blocked_&&(Blockly.Tooltip.poisonedElement_=Blockly.Tooltip.element_,Blockly.Tooltip.DIV)){Blockly.Tooltip.DIV.textContent="";var a=Blockly.Tooltip.getTooltipOfObject(Blockly.Tooltip.element_);a=Blockly.utils.string.wrap(a,Blockly.Tooltip.LIMIT);a=a.split("\n");for(var b=0;bc+window.scrollY&&(e-=Blockly.Tooltip.DIV.offsetHeight+2*Blockly.Tooltip.OFFSET_Y);a?d=Math.max(Blockly.Tooltip.MARGINS-window.scrollX, -d):d+Blockly.Tooltip.DIV.offsetWidth>b+window.scrollX-2*Blockly.Tooltip.MARGINS&&(d=b-Blockly.Tooltip.DIV.offsetWidth-2*Blockly.Tooltip.MARGINS);Blockly.Tooltip.DIV.style.top=e+"px";Blockly.Tooltip.DIV.style.left=d+"px"}};Blockly.WorkspaceDragSurfaceSvg=function(a){this.container_=a;this.createDom()};Blockly.WorkspaceDragSurfaceSvg.prototype.SVG_=null;Blockly.WorkspaceDragSurfaceSvg.prototype.container_=null; +d):d+Blockly.Tooltip.DIV.offsetWidth>b+window.scrollX-2*Blockly.Tooltip.MARGINS&&(d=b-Blockly.Tooltip.DIV.offsetWidth-2*Blockly.Tooltip.MARGINS);Blockly.Tooltip.DIV.style.top=e+"px";Blockly.Tooltip.DIV.style.left=d+"px"}};Blockly.utils.aria={};Blockly.utils.aria.ARIA_PREFIX_="aria-";Blockly.utils.aria.ROLE_ATTRIBUTE_="role";Blockly.utils.aria.Role={GRID:"grid",GRIDCELL:"gridcell",GROUP:"group",LISTBOX:"listbox",MENU:"menu",MENUITEM:"menuitem",MENUITEMCHECKBOX:"menuitemcheckbox",OPTION:"option",PRESENTATION:"presentation",ROW:"row",TREE:"tree",TREEITEM:"treeitem"}; +Blockly.utils.aria.State={ACTIVEDESCENDANT:"activedescendant",COLCOUNT:"colcount",DISABLED:"disabled",EXPANDED:"expanded",INVALID:"invalid",LABEL:"label",LABELLEDBY:"labelledby",LEVEL:"level",ORIENTATION:"orientation",POSINSET:"posinset",ROWCOUNT:"rowcount",SELECTED:"selected",SETSIZE:"setsize",VALUEMAX:"valuemax",VALUEMIN:"valuemin"};Blockly.utils.aria.setRole=function(a,b){a.setAttribute(Blockly.utils.aria.ROLE_ATTRIBUTE_,b)}; +Blockly.utils.aria.setState=function(a,b,c){Array.isArray(c)&&(c=c.join(" "));a.setAttribute(Blockly.utils.aria.ARIA_PREFIX_+b,c)};Blockly.WorkspaceDragSurfaceSvg=function(a){this.container_=a;this.createDom()};Blockly.WorkspaceDragSurfaceSvg.prototype.SVG_=null;Blockly.WorkspaceDragSurfaceSvg.prototype.container_=null; Blockly.WorkspaceDragSurfaceSvg.prototype.createDom=function(){this.SVG_||(this.SVG_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.SVG,{xmlns:Blockly.utils.dom.SVG_NS,"xmlns:html":Blockly.utils.dom.HTML_NS,"xmlns:xlink":Blockly.utils.dom.XLINK_NS,version:"1.1","class":"blocklyWsDragSurface blocklyOverflowVisible"},null),this.container_.appendChild(this.SVG_))}; Blockly.WorkspaceDragSurfaceSvg.prototype.translateSurface=function(a,b){a=a.toFixed(0);b=b.toFixed(0);this.SVG_.style.display="block";Blockly.utils.dom.setCssTransform(this.SVG_,"translate3d("+a+"px, "+b+"px, 0px)")};Blockly.WorkspaceDragSurfaceSvg.prototype.getSurfaceTranslation=function(){return Blockly.utils.getRelativeXY(this.SVG_)}; Blockly.WorkspaceDragSurfaceSvg.prototype.clearAndHide=function(a){if(!a)throw Error("Couldn't clear and hide the drag surface: missing new surface.");var b=this.SVG_.childNodes[0],c=this.SVG_.childNodes[1];if(!(b&&c&&Blockly.utils.dom.hasClass(b,"blocklyBlockCanvas")&&Blockly.utils.dom.hasClass(c,"blocklyBubbleCanvas")))throw Error("Couldn't clear and hide the drag surface. A node was missing.");null!=this.previousSibling_?Blockly.utils.dom.insertAfter(b,this.previousSibling_):a.insertBefore(b,a.firstChild); Blockly.utils.dom.insertAfter(c,b);this.SVG_.style.display="none";if(this.SVG_.childNodes.length)throw Error("Drag surface was not cleared.");Blockly.utils.dom.setCssTransform(this.SVG_,"");this.previousSibling_=null}; -Blockly.WorkspaceDragSurfaceSvg.prototype.setContentsAndShow=function(a,b,c,d,e,f){if(this.SVG_.childNodes.length)throw Error("Already dragging a block.");this.previousSibling_=c;a.setAttribute("transform","translate(0, 0) scale("+f+")");b.setAttribute("transform","translate(0, 0) scale("+f+")");this.SVG_.setAttribute("width",d);this.SVG_.setAttribute("height",e);this.SVG_.appendChild(a);this.SVG_.appendChild(b);this.SVG_.style.display="block"};Blockly.ASTNode=function(a,b,c){if(!b)throw Error("Cannot create a node without a location.");this.type_=a;this.isConnection_=Blockly.ASTNode.isConnectionType_(a);this.location_=b;this.wsCoordinate_=null;this.processParams_(c||null)};Blockly.ASTNode.types={FIELD:"field",BLOCK:"block",INPUT:"input",OUTPUT:"output",NEXT:"next",PREVIOUS:"previous",STACK:"stack",WORKSPACE:"workspace"};Blockly.ASTNode.NAVIGATE_ALL_FIELDS=!1;Blockly.ASTNode.DEFAULT_OFFSET_Y=-20;Blockly.ASTNode.isConnectionType_=function(a){switch(a){case Blockly.ASTNode.types.PREVIOUS:case Blockly.ASTNode.types.NEXT:case Blockly.ASTNode.types.INPUT:case Blockly.ASTNode.types.OUTPUT:return!0}return!1}; +Blockly.WorkspaceDragSurfaceSvg.prototype.setContentsAndShow=function(a,b,c,d,e,f){if(this.SVG_.childNodes.length)throw Error("Already dragging a block.");this.previousSibling_=c;a.setAttribute("transform","translate(0, 0) scale("+f+")");b.setAttribute("transform","translate(0, 0) scale("+f+")");this.SVG_.setAttribute("width",d);this.SVG_.setAttribute("height",e);this.SVG_.appendChild(a);this.SVG_.appendChild(b);this.SVG_.style.display="block"};Blockly.blockRendering={};Blockly.blockRendering.useDebugger=!1;Blockly.blockRendering.register=function(a,b){Blockly.registry.register(Blockly.registry.Type.RENDERER,a,b)};Blockly.blockRendering.unregister=function(a){Blockly.registry.unregister(Blockly.registry.Type.RENDERER,a)};Blockly.blockRendering.startDebugger=function(){Blockly.blockRendering.useDebugger=!0};Blockly.blockRendering.stopDebugger=function(){Blockly.blockRendering.useDebugger=!1}; +Blockly.blockRendering.init=function(a,b,c){a=new (Blockly.registry.getClass(Blockly.registry.Type.RENDERER,a))(a);a.init(b,c);return a};Blockly.ASTNode=function(a,b,c){if(!b)throw Error("Cannot create a node without a location.");this.type_=a;this.isConnection_=Blockly.ASTNode.isConnectionType_(a);this.location_=b;this.wsCoordinate_=null;this.processParams_(c||null)};Blockly.ASTNode.types={FIELD:"field",BLOCK:"block",INPUT:"input",OUTPUT:"output",NEXT:"next",PREVIOUS:"previous",STACK:"stack",WORKSPACE:"workspace"};Blockly.ASTNode.NAVIGATE_ALL_FIELDS=!1;Blockly.ASTNode.DEFAULT_OFFSET_Y=-20;Blockly.ASTNode.isConnectionType_=function(a){switch(a){case Blockly.ASTNode.types.PREVIOUS:case Blockly.ASTNode.types.NEXT:case Blockly.ASTNode.types.INPUT:case Blockly.ASTNode.types.OUTPUT:return!0}return!1}; Blockly.ASTNode.createFieldNode=function(a){return a?new Blockly.ASTNode(Blockly.ASTNode.types.FIELD,a):null}; -Blockly.ASTNode.createConnectionNode=function(a){return a?a.type==Blockly.INPUT_VALUE||a.type==Blockly.NEXT_STATEMENT&&a.getParentInput()?Blockly.ASTNode.createInputNode(a.getParentInput()):a.type==Blockly.NEXT_STATEMENT?new Blockly.ASTNode(Blockly.ASTNode.types.NEXT,a):a.type==Blockly.OUTPUT_VALUE?new Blockly.ASTNode(Blockly.ASTNode.types.OUTPUT,a):a.type==Blockly.PREVIOUS_STATEMENT?new Blockly.ASTNode(Blockly.ASTNode.types.PREVIOUS,a):null:null}; -Blockly.ASTNode.createInputNode=function(a){return a&&a.connection?new Blockly.ASTNode(Blockly.ASTNode.types.INPUT,a.connection):null};Blockly.ASTNode.createBlockNode=function(a){return a?new Blockly.ASTNode(Blockly.ASTNode.types.BLOCK,a):null};Blockly.ASTNode.createStackNode=function(a){return a?new Blockly.ASTNode(Blockly.ASTNode.types.STACK,a):null};Blockly.ASTNode.createWorkspaceNode=function(a,b){return b&&a?new Blockly.ASTNode(Blockly.ASTNode.types.WORKSPACE,a,{wsCoordinate:b}):null}; +Blockly.ASTNode.createConnectionNode=function(a){if(!a)return null;var b=a.type;return b==Blockly.connectionTypes.INPUT_VALUE||b==Blockly.connectionTypes.NEXT_STATEMENT&&a.getParentInput()?Blockly.ASTNode.createInputNode(a.getParentInput()):b==Blockly.connectionTypes.NEXT_STATEMENT?new Blockly.ASTNode(Blockly.ASTNode.types.NEXT,a):b==Blockly.connectionTypes.OUTPUT_VALUE?new Blockly.ASTNode(Blockly.ASTNode.types.OUTPUT,a):b==Blockly.connectionTypes.PREVIOUS_STATEMENT?new Blockly.ASTNode(Blockly.ASTNode.types.PREVIOUS, +a):null};Blockly.ASTNode.createInputNode=function(a){return a&&a.connection?new Blockly.ASTNode(Blockly.ASTNode.types.INPUT,a.connection):null};Blockly.ASTNode.createBlockNode=function(a){return a?new Blockly.ASTNode(Blockly.ASTNode.types.BLOCK,a):null};Blockly.ASTNode.createStackNode=function(a){return a?new Blockly.ASTNode(Blockly.ASTNode.types.STACK,a):null};Blockly.ASTNode.createWorkspaceNode=function(a,b){return b&&a?new Blockly.ASTNode(Blockly.ASTNode.types.WORKSPACE,a,{wsCoordinate:b}):null}; Blockly.ASTNode.createTopNode=function(a){var b=a.previousConnection||a.outputConnection;return b?Blockly.ASTNode.createConnectionNode(b):Blockly.ASTNode.createBlockNode(a)};Blockly.ASTNode.prototype.processParams_=function(a){a&&a.wsCoordinate&&(this.wsCoordinate_=a.wsCoordinate)};Blockly.ASTNode.prototype.getLocation=function(){return this.location_};Blockly.ASTNode.prototype.getType=function(){return this.type_};Blockly.ASTNode.prototype.getWsCoordinate=function(){return this.wsCoordinate_}; Blockly.ASTNode.prototype.isConnection=function(){return this.isConnection_};Blockly.ASTNode.prototype.findNextForInput_=function(){var a=this.location_.getParentInput(),b=a.getSourceBlock();a=b.inputList.indexOf(a)+1;for(var c;c=b.inputList[a];a++){for(var d=c.fieldRow,e=0,f;f=d[e];e++)if(f.isClickable()||Blockly.ASTNode.NAVIGATE_ALL_FIELDS)return Blockly.ASTNode.createFieldNode(f);if(c.connection)return Blockly.ASTNode.createInputNode(c)}return null}; Blockly.ASTNode.prototype.findNextForField_=function(){var a=this.location_,b=a.getParentInput(),c=a.getSourceBlock(),d=c.inputList.indexOf(b);for(a=b.fieldRow.indexOf(a)+1;b=c.inputList[d];d++){for(var e=b.fieldRow;ab-Blockly.CURRENT_CONNECTION_PREFERENCE)}if(this.localConnection_||this.closestConnection_)console.error("Only one of localConnection_ and closestConnection_ was set."); else return!0}else return!(!this.localConnection_||!this.closestConnection_);console.error("Returning true from shouldUpdatePreviews, but it's not clear why.");return!0};Blockly.InsertionMarkerManager.prototype.getCandidate_=function(a){for(var b=this.getStartRadius_(),c=null,d=null,e=0;ec||b.getSourceBlock().isInsertionMarker())return!1;switch(b.type){case Blockly.PREVIOUS_STATEMENT:return this.canConnectToPrevious_(a,b);case Blockly.OUTPUT_VALUE:if(b.isConnected()&&!b.targetBlock().isInsertionMarker()||a.isConnected())return!1;break;case Blockly.INPUT_VALUE:if(b.isConnected()&&!b.targetBlock().isMovable()&&!b.targetBlock().isShadow())return!1;break;case Blockly.NEXT_STATEMENT:if(b.isConnected()&& -!a.getSourceBlock().nextConnection&&!b.targetBlock().isShadow()&&b.targetBlock().nextConnection)return!1;break;default:return!1}return-1!=Blockly.draggingConnections.indexOf(b)?!1:!0};Blockly.ConnectionChecker.prototype.canConnectToPrevious_=function(a,b){if(a.targetConnection||-1!=Blockly.draggingConnections.indexOf(b))return!1;if(!b.targetConnection)return!0;a=b.targetBlock();return a.isInsertionMarker()?!a.getPreviousBlock():!1}; +Blockly.ConnectionChecker.prototype.doDragChecks=function(a,b,c){if(a.distanceFrom(b)>c||b.getSourceBlock().isInsertionMarker())return!1;switch(b.type){case Blockly.connectionTypes.PREVIOUS_STATEMENT:return this.canConnectToPrevious_(a,b);case Blockly.connectionTypes.OUTPUT_VALUE:if(b.isConnected()&&!b.targetBlock().isInsertionMarker()||a.isConnected())return!1;break;case Blockly.connectionTypes.INPUT_VALUE:if(b.isConnected()&&!b.targetBlock().isMovable()&&!b.targetBlock().isShadow())return!1;break; +case Blockly.connectionTypes.NEXT_STATEMENT:if(b.isConnected()&&!a.getSourceBlock().nextConnection&&!b.targetBlock().isShadow()&&b.targetBlock().nextConnection)return!1;break;default:return!1}return-1!=Blockly.draggingConnections.indexOf(b)?!1:!0};Blockly.ConnectionChecker.prototype.canConnectToPrevious_=function(a,b){if(a.targetConnection||-1!=Blockly.draggingConnections.indexOf(b))return!1;if(!b.targetConnection)return!0;a=b.targetBlock();return a.isInsertionMarker()?!a.getPreviousBlock():!1}; Blockly.registry.register(Blockly.registry.Type.CONNECTION_CHECKER,Blockly.registry.DEFAULT,Blockly.ConnectionChecker);Blockly.VariableMap=function(a){this.variableMap_=Object.create(null);this.workspace=a};Blockly.VariableMap.prototype.clear=function(){this.variableMap_=Object.create(null)};Blockly.VariableMap.prototype.renameVariable=function(a,b){var c=this.getVariable(b,a.type),d=this.workspace.getAllBlocks(!1);Blockly.Events.setGroup(!0);try{c&&c.getId()!=a.getId()?this.renameVariableWithConflict_(a,b,c,d):this.renameVariableAndUses_(a,b,d)}finally{Blockly.Events.setGroup(!1)}}; -Blockly.VariableMap.prototype.renameVariableById=function(a,b){var c=this.getVariableById(a);if(!c)throw Error("Tried to rename a variable that didn't exist. ID: "+a);this.renameVariable(c,b)};Blockly.VariableMap.prototype.renameVariableAndUses_=function(a,b,c){Blockly.Events.fire(new Blockly.Events.VarRename(a,b));a.name=b;for(b=0;ba.viewWidth)return b;if(this.workspace_.RTL)var c=this.anchorXY_.x-b,d=c-this.width_,e=a.viewLeft+a.viewWidth,f=a.viewLeft+Blockly.Scrollbar.scrollbarThickness/this.workspace_.scale;else d=b+this.anchorXY_.x,c=d+this.width_,f=a.viewLeft,e=a.viewLeft+a.viewWidth-Blockly.Scrollbar.scrollbarThickness/this.workspace_.scale;this.workspace_.RTL?de&&(b=-(e-this.anchorXY_.x)): -de&&(b=e-this.anchorXY_.x-this.width_);return b};Blockly.Bubble.prototype.getOptimalRelativeTop_=function(a){var b=-this.height_/4;if(this.height_>a.viewHeight)return b;var c=this.anchorXY_.y+b,d=c+this.height_,e=a.viewTop;a=a.viewTop+a.viewHeight-Blockly.Scrollbar.scrollbarThickness/this.workspace_.scale;var f=this.anchorXY_.y;ca&&(b=a-f-this.height_);return b}; +Blockly.Bubble.prototype.layoutBubble_=function(){var a=this.workspace_.getMetricsManager().getViewMetrics(!0),b=this.getOptimalRelativeLeft_(a),c=this.getOptimalRelativeTop_(a),d=this.shape_.getBBox(),e={x:b,y:-this.height_-this.workspace_.getRenderer().getConstants().MIN_BLOCK_HEIGHT},f={x:-this.width_-30,y:c};c={x:d.width,y:c};var g={x:b,y:d.height};b=d.widtha.width)return b;if(this.workspace_.RTL)var c=this.anchorXY_.x-b,d=c-this.width_,e=a.left+a.width,f=a.left+Blockly.Scrollbar.scrollbarThickness/this.workspace_.scale;else d=b+this.anchorXY_.x,c=d+this.width_,f=a.left,e=a.left+a.width-Blockly.Scrollbar.scrollbarThickness/this.workspace_.scale;this.workspace_.RTL?de&&(b=-(e-this.anchorXY_.x)):de&&(b=e-this.anchorXY_.x-this.width_);return b};Blockly.Bubble.prototype.getOptimalRelativeTop_=function(a){var b=-this.height_/4;if(this.height_>a.height)return b;var c=this.anchorXY_.y+b,d=c+this.height_,e=a.top;a=a.top+a.height-Blockly.Scrollbar.scrollbarThickness/this.workspace_.scale;var f=this.anchorXY_.y;ca&&(b=a-f-this.height_);return b}; Blockly.Bubble.prototype.positionBubble_=function(){var a=this.anchorXY_.x;a=this.workspace_.RTL?a-(this.relativeLeft_+this.width_):a+this.relativeLeft_;this.moveTo(a,this.relativeTop_+this.anchorXY_.y)};Blockly.Bubble.prototype.moveTo=function(a,b){this.bubbleGroup_.setAttribute("transform","translate("+a+","+b+")")};Blockly.Bubble.prototype.setDragging=function(a){!a&&this.moveCallback_&&this.moveCallback_()}; Blockly.Bubble.prototype.getBubbleSize=function(){return new Blockly.utils.Size(this.width_,this.height_)}; Blockly.Bubble.prototype.setBubbleSize=function(a,b){var c=2*Blockly.Bubble.BORDER_WIDTH;a=Math.max(a,c+45);b=Math.max(b,c+20);this.width_=a;this.height_=b;this.bubbleBack_.setAttribute("width",a);this.bubbleBack_.setAttribute("height",b);this.resizeGroup_&&(this.workspace_.RTL?this.resizeGroup_.setAttribute("transform","translate("+2*Blockly.Bubble.BORDER_WIDTH+","+(b-c)+") scale(-1 1)"):this.resizeGroup_.setAttribute("transform","translate("+(a-c)+","+(b-c)+")"));this.autoLayout_&&this.layoutBubble_(); this.positionBubble_();this.renderArrow_();this.resizeCallback_&&this.resizeCallback_()}; Blockly.Bubble.prototype.renderArrow_=function(){var a=[],b=this.width_/2,c=this.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);0>e&&(g=2*Math.PI-g);var h=g+Math.PI/2;h>2*Math.PI&&(h-=2*Math.PI);var k=Math.sin(h),l=Math.cos(h),m=this.getBubbleSize();h=(m.width+m.height)/Blockly.Bubble.ARROW_THICKNESS;h=Math.min(h,m.width,m.height)/4;m=1-Blockly.Bubble.ANCHOR_RADIUS/f;d=b+ m*d;e=c+m*e;m=b+h*l;var n=c+h*k;b-=h*l;c-=h*k;k=g+this.arrow_radians_;k>2*Math.PI&&(k-=2*Math.PI);g=Math.sin(k)*f/Blockly.Bubble.ARROW_BEND;f=Math.cos(k)*f/Blockly.Bubble.ARROW_BEND;a.push("M"+m+","+n);a.push("C"+(m+f)+","+(n+g)+" "+d+","+e+" "+d+","+e);a.push("C"+d+","+e+" "+(b+f)+","+(c+g)+" "+b+","+c)}a.push("z");this.bubbleArrow_.setAttribute("d",a.join(" "))};Blockly.Bubble.prototype.setColour=function(a){this.bubbleBack_.setAttribute("fill",a);this.bubbleArrow_.setAttribute("fill",a)}; -Blockly.Bubble.prototype.dispose=function(){this.onMouseDownBubbleWrapper_&&Blockly.unbindEvent_(this.onMouseDownBubbleWrapper_);this.onMouseDownResizeWrapper_&&Blockly.unbindEvent_(this.onMouseDownResizeWrapper_);Blockly.Bubble.unbindDragEvents_();Blockly.utils.dom.removeNode(this.bubbleGroup_);this.disposed=!0}; +Blockly.Bubble.prototype.dispose=function(){this.onMouseDownBubbleWrapper_&&Blockly.browserEvents.unbind(this.onMouseDownBubbleWrapper_);this.onMouseDownResizeWrapper_&&Blockly.browserEvents.unbind(this.onMouseDownResizeWrapper_);Blockly.Bubble.unbindDragEvents_();Blockly.utils.dom.removeNode(this.bubbleGroup_);this.disposed=!0}; Blockly.Bubble.prototype.moveDuringDrag=function(a,b){a?a.translateSurface(b.x,b.y):this.moveTo(b.x,b.y);this.relativeLeft_=this.workspace_.RTL?this.anchorXY_.x-b.x-this.width_:b.x-this.anchorXY_.x;this.relativeTop_=b.y-this.anchorXY_.y;this.renderArrow_()};Blockly.Bubble.prototype.getRelativeToSurfaceXY=function(){return new Blockly.utils.Coordinate(this.workspace_.RTL?-this.relativeLeft_+this.anchorXY_.x-this.width_:this.anchorXY_.x+this.relativeLeft_,this.anchorXY_.y+this.relativeTop_)}; Blockly.Bubble.prototype.setAutoLayout=function(a){this.autoLayout_=a};Blockly.Bubble.textToDom=function(a){var b=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.TEXT,{"class":"blocklyText blocklyBubbleText blocklyNoPointerEvents",y:Blockly.Bubble.BORDER_WIDTH},null);a=a.split("\n");for(var c=0;c(this.flyout_?Blockly.FLYOUT_DRAG_RADIUS:Blockly.DRAG_RADIUS)}; Blockly.Gesture.prototype.updateIsDraggingFromFlyout_=function(){return this.targetBlock_&&this.flyout_.isBlockCreatable_(this.targetBlock_)?!this.flyout_.isScrollable()||this.flyout_.isDragTowardWorkspace(this.currentDragDeltaXY_)?(this.startWorkspace_=this.flyout_.targetWorkspace,this.startWorkspace_.updateScreenCalculationsIfScrolled(),Blockly.Events.getGroup()||Blockly.Events.setGroup(!0),this.startBlock_=null,this.targetBlock_=this.flyout_.createBlock(this.targetBlock_),this.targetBlock_.select(), !0):!1:!1};Blockly.Gesture.prototype.updateIsDraggingBubble_=function(){if(!this.startBubble_)return!1;this.isDraggingBubble_=!0;this.startDraggingBubble_();return!0};Blockly.Gesture.prototype.updateIsDraggingBlock_=function(){if(!this.targetBlock_)return!1;this.flyout_?this.isDraggingBlock_=this.updateIsDraggingFromFlyout_():this.targetBlock_.isMovable()&&(this.isDraggingBlock_=!0);return this.isDraggingBlock_?(this.startDraggingBlock_(),!0):!1}; -Blockly.Gesture.prototype.updateIsDraggingWorkspace_=function(){if(this.flyout_?this.flyout_.isScrollable():this.startWorkspace_&&this.startWorkspace_.isDraggable())this.workspaceDragger_=this.flyout_?new Blockly.FlyoutDragger(this.flyout_):new Blockly.WorkspaceDragger(this.startWorkspace_),this.isDraggingWorkspace_=!0,this.workspaceDragger_.startDrag()}; +Blockly.Gesture.prototype.updateIsDraggingWorkspace_=function(){if(this.flyout_?this.flyout_.isScrollable():this.startWorkspace_&&this.startWorkspace_.isDraggable())this.workspaceDragger_=new Blockly.WorkspaceDragger(this.startWorkspace_),this.isDraggingWorkspace_=!0,this.workspaceDragger_.startDrag()}; Blockly.Gesture.prototype.updateIsDragging_=function(){if(this.calledUpdateIsDragging_)throw Error("updateIsDragging_ should only be called once per gesture.");this.calledUpdateIsDragging_=!0;this.updateIsDraggingBubble_()||this.updateIsDraggingBlock_()||this.updateIsDraggingWorkspace_()}; Blockly.Gesture.prototype.startDraggingBlock_=function(){this.blockDragger_=new Blockly.BlockDragger(this.targetBlock_,this.startWorkspace_);this.blockDragger_.startBlockDrag(this.currentDragDeltaXY_,this.healStack_);this.blockDragger_.dragBlock(this.mostRecentEvent_,this.currentDragDeltaXY_)}; Blockly.Gesture.prototype.startDraggingBubble_=function(){this.bubbleDragger_=new Blockly.BubbleDragger(this.startBubble_,this.startWorkspace_);this.bubbleDragger_.startBubbleDrag();this.bubbleDragger_.dragBubble(this.mostRecentEvent_,this.currentDragDeltaXY_)}; -Blockly.Gesture.prototype.doStart=function(a){Blockly.utils.isTargetInput(a)?this.cancel():(this.hasStarted_=!0,Blockly.blockAnimations.disconnectUiStop(),this.startWorkspace_.updateScreenCalculationsIfScrolled(),this.startWorkspace_.isMutator&&this.startWorkspace_.resize(),Blockly.hideChaff(!!this.flyout_),this.startWorkspace_.markFocused(),this.mostRecentEvent_=a,Blockly.Tooltip.block(),this.targetBlock_&&(!this.targetBlock_.isInFlyout&&a.shiftKey&&this.targetBlock_.workspace.keyboardAccessibilityMode? -this.creatorWorkspace_.getCursor().setCurNode(Blockly.ASTNode.createTopNode(this.targetBlock_)):this.targetBlock_.select()),Blockly.utils.isRightButton(a)?this.handleRightClick(a):("touchstart"!=a.type.toLowerCase()&&"pointerdown"!=a.type.toLowerCase()||"mouse"==a.pointerType||Blockly.longStart(a,this),this.mouseDownXY_=new Blockly.utils.Coordinate(a.clientX,a.clientY),this.healStack_=a.altKey||a.ctrlKey||a.metaKey,this.bindMouseEvents(a)))}; -Blockly.Gesture.prototype.bindMouseEvents=function(a){this.onMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",null,this.handleMove.bind(this));this.onUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",null,this.handleUp.bind(this));a.preventDefault();a.stopPropagation()}; +Blockly.Gesture.prototype.doStart=function(a){Blockly.utils.isTargetInput(a)?this.cancel():(this.hasStarted_=!0,Blockly.blockAnimations.disconnectUiStop(),this.startWorkspace_.updateScreenCalculationsIfScrolled(),this.startWorkspace_.isMutator&&this.startWorkspace_.resize(),Blockly.hideChaff(!!this.flyout_),this.startWorkspace_.markFocused(),this.mostRecentEvent_=a,Blockly.Tooltip.block(),this.targetBlock_&&this.targetBlock_.select(),Blockly.utils.isRightButton(a)?this.handleRightClick(a):("touchstart"!= +a.type.toLowerCase()&&"pointerdown"!=a.type.toLowerCase()||"mouse"==a.pointerType||Blockly.longStart(a,this),this.mouseDownXY_=new Blockly.utils.Coordinate(a.clientX,a.clientY),this.healStack_=a.altKey||a.ctrlKey||a.metaKey,this.bindMouseEvents(a)))}; +Blockly.Gesture.prototype.bindMouseEvents=function(a){this.onMoveWrapper_=Blockly.browserEvents.conditionalBind(document,"mousemove",null,this.handleMove.bind(this));this.onUpWrapper_=Blockly.browserEvents.conditionalBind(document,"mouseup",null,this.handleUp.bind(this));a.preventDefault();a.stopPropagation()}; Blockly.Gesture.prototype.handleMove=function(a){this.updateFromEvent_(a);this.isDraggingWorkspace_?this.workspaceDragger_.drag(this.currentDragDeltaXY_):this.isDraggingBlock_?this.blockDragger_.dragBlock(this.mostRecentEvent_,this.currentDragDeltaXY_):this.isDraggingBubble_&&this.bubbleDragger_.dragBubble(this.mostRecentEvent_,this.currentDragDeltaXY_);a.preventDefault();a.stopPropagation()}; Blockly.Gesture.prototype.handleUp=function(a){this.updateFromEvent_(a);Blockly.longStop_();this.isEnding_?console.log("Trying to end a gesture recursively."):(this.isEnding_=!0,this.isDraggingBubble_?this.bubbleDragger_.endBubbleDrag(a,this.currentDragDeltaXY_):this.isDraggingBlock_?this.blockDragger_.endBlockDrag(a,this.currentDragDeltaXY_):this.isDraggingWorkspace_?this.workspaceDragger_.endDrag(this.currentDragDeltaXY_):this.isBubbleClick_()?this.doBubbleClick_():this.isFieldClick_()?this.doFieldClick_(): this.isBlockClick_()?this.doBlockClick_():this.isWorkspaceClick_()&&this.doWorkspaceClick_(a),a.preventDefault(),a.stopPropagation(),this.dispose())}; Blockly.Gesture.prototype.cancel=function(){this.isEnding_||(Blockly.longStop_(),this.isDraggingBubble_?this.bubbleDragger_.endBubbleDrag(this.mostRecentEvent_,this.currentDragDeltaXY_):this.isDraggingBlock_?this.blockDragger_.endBlockDrag(this.mostRecentEvent_,this.currentDragDeltaXY_):this.isDraggingWorkspace_&&this.workspaceDragger_.endDrag(this.currentDragDeltaXY_),this.dispose())}; Blockly.Gesture.prototype.handleRightClick=function(a){this.targetBlock_?(this.bringBlockToFront_(),Blockly.hideChaff(!!this.flyout_),this.targetBlock_.showContextMenu(a)):this.startBubble_?this.startBubble_.showContextMenu(a):this.startWorkspace_&&!this.flyout_&&(Blockly.hideChaff(),this.startWorkspace_.showContextMenu(a));a.preventDefault();a.stopPropagation();this.dispose()}; -Blockly.Gesture.prototype.handleWsStart=function(a,b){if(this.hasStarted_)throw Error("Tried to call gesture.handleWsStart, but the gesture had already been started.");this.setStartWorkspace_(b);this.mostRecentEvent_=a;this.doStart(a);this.startWorkspace_.keyboardAccessibilityMode&&Blockly.navigation.setState(Blockly.navigation.STATE_WS)};Blockly.Gesture.prototype.fireWorkspaceClick_=function(a){a=new Blockly.Events.Click(null,a.id,"workspace");Blockly.Events.fire(a)}; +Blockly.Gesture.prototype.handleWsStart=function(a,b){if(this.hasStarted_)throw Error("Tried to call gesture.handleWsStart, but the gesture had already been started.");this.setStartWorkspace_(b);this.mostRecentEvent_=a;this.doStart(a)};Blockly.Gesture.prototype.fireWorkspaceClick_=function(a){Blockly.Events.fire(new (Blockly.Events.get(Blockly.Events.CLICK))(null,a.id,"workspace"))}; Blockly.Gesture.prototype.handleFlyoutStart=function(a,b){if(this.hasStarted_)throw Error("Tried to call gesture.handleFlyoutStart, but the gesture had already been started.");this.setStartFlyout_(b);this.handleWsStart(a,b.getWorkspace())};Blockly.Gesture.prototype.handleBlockStart=function(a,b){if(this.hasStarted_)throw Error("Tried to call gesture.handleBlockStart, but the gesture had already been started.");this.setStartBlock(b);this.mostRecentEvent_=a}; Blockly.Gesture.prototype.handleBubbleStart=function(a,b){if(this.hasStarted_)throw Error("Tried to call gesture.handleBubbleStart, but the gesture had already been started.");this.setStartBubble(b);this.mostRecentEvent_=a};Blockly.Gesture.prototype.doBubbleClick_=function(){this.startBubble_.setFocus&&this.startBubble_.setFocus();this.startBubble_.select&&this.startBubble_.select()};Blockly.Gesture.prototype.doFieldClick_=function(){this.startField_.showEditor(this.mostRecentEvent_);this.bringBlockToFront_()}; -Blockly.Gesture.prototype.doBlockClick_=function(){if(this.flyout_&&this.flyout_.autoClose)this.targetBlock_.isEnabled()&&(Blockly.Events.getGroup()||Blockly.Events.setGroup(!0),this.flyout_.createBlock(this.targetBlock_).scheduleSnapAndBump());else{var a=new Blockly.Events.Click(this.startBlock_,this.startWorkspace_.id,"block");Blockly.Events.fire(a)}this.bringBlockToFront_();Blockly.Events.setGroup(!1)}; -Blockly.Gesture.prototype.doWorkspaceClick_=function(a){var b=this.creatorWorkspace_;a.shiftKey&&b.keyboardAccessibilityMode?(a=new Blockly.utils.Coordinate(a.clientX,a.clientY),a=Blockly.utils.screenToWsCoordinates(b,a),a=Blockly.ASTNode.createWorkspaceNode(b,a),b.getCursor().setCurNode(a)):Blockly.selected&&Blockly.selected.unselect();this.fireWorkspaceClick_(this.startWorkspace_||b)};Blockly.Gesture.prototype.bringBlockToFront_=function(){this.targetBlock_&&!this.flyout_&&this.targetBlock_.bringToFront()}; +Blockly.Gesture.prototype.doBlockClick_=function(){if(this.flyout_&&this.flyout_.autoClose)this.targetBlock_.isEnabled()&&(Blockly.Events.getGroup()||Blockly.Events.setGroup(!0),this.flyout_.createBlock(this.targetBlock_).scheduleSnapAndBump());else{var a=new (Blockly.Events.get(Blockly.Events.CLICK))(this.startBlock_,this.startWorkspace_.id,"block");Blockly.Events.fire(a)}this.bringBlockToFront_();Blockly.Events.setGroup(!1)}; +Blockly.Gesture.prototype.doWorkspaceClick_=function(a){a=this.creatorWorkspace_;Blockly.selected&&Blockly.selected.unselect();this.fireWorkspaceClick_(this.startWorkspace_||a)};Blockly.Gesture.prototype.bringBlockToFront_=function(){this.targetBlock_&&!this.flyout_&&this.targetBlock_.bringToFront()}; Blockly.Gesture.prototype.setStartField=function(a){if(this.hasStarted_)throw Error("Tried to call gesture.setStartField, but the gesture had already been started.");this.startField_||(this.startField_=a)};Blockly.Gesture.prototype.setStartBubble=function(a){this.startBubble_||(this.startBubble_=a)};Blockly.Gesture.prototype.setStartBlock=function(a){this.startBlock_||this.startBubble_||(this.startBlock_=a,a.isInFlyout&&a!=a.getRootBlock()?this.setTargetBlock_(a.getRootBlock()):this.setTargetBlock_(a))}; Blockly.Gesture.prototype.setTargetBlock_=function(a){a.isShadow()?this.setTargetBlock_(a.getParent()):this.targetBlock_=a};Blockly.Gesture.prototype.setStartWorkspace_=function(a){this.startWorkspace_||(this.startWorkspace_=a)};Blockly.Gesture.prototype.setStartFlyout_=function(a){this.flyout_||(this.flyout_=a)};Blockly.Gesture.prototype.isBubbleClick_=function(){return!!this.startBubble_&&!this.hasExceededDragRadius_}; Blockly.Gesture.prototype.isBlockClick_=function(){return!!this.startBlock_&&!this.hasExceededDragRadius_&&!this.isFieldClick_()};Blockly.Gesture.prototype.isFieldClick_=function(){return(this.startField_?this.startField_.isClickable():!1)&&!this.hasExceededDragRadius_&&(!this.flyout_||!this.flyout_.autoClose)};Blockly.Gesture.prototype.isWorkspaceClick_=function(){return!this.startBlock_&&!this.startBubble_&&!this.startField_&&!this.hasExceededDragRadius_}; @@ -482,8 +457,8 @@ Blockly.Field.prototype.setSourceBlock=function(a){if(this.sourceBlock_)throw Er Blockly.Field.prototype.init=function(){this.fieldGroup_||(this.fieldGroup_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.G,{},null),this.isVisible()||(this.fieldGroup_.style.display="none"),this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_),this.initView(),this.updateEditable(),this.setTooltip(this.tooltip_),this.bindEvents_(),this.initModel())};Blockly.Field.prototype.initView=function(){this.createBorderRect_();this.createTextElement_()};Blockly.Field.prototype.initModel=function(){}; Blockly.Field.prototype.createBorderRect_=function(){this.borderRect_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT,{rx:this.getConstants().FIELD_BORDER_RECT_RADIUS,ry:this.getConstants().FIELD_BORDER_RECT_RADIUS,x:0,y:0,height:this.size_.height,width:this.size_.width,"class":"blocklyFieldRect"},this.fieldGroup_)}; Blockly.Field.prototype.createTextElement_=function(){this.textElement_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.TEXT,{"class":"blocklyText"},this.fieldGroup_);this.getConstants().FIELD_TEXT_BASELINE_CENTER&&this.textElement_.setAttribute("dominant-baseline","central");this.textContent_=document.createTextNode("");this.textElement_.appendChild(this.textContent_)}; -Blockly.Field.prototype.bindEvents_=function(){Blockly.Tooltip.bindMouseEvents(this.getClickTarget_());this.mouseDownWrapper_=Blockly.bindEventWithChecks_(this.getClickTarget_(),"mousedown",this,this.onMouseDown_)};Blockly.Field.prototype.fromXml=function(a){this.setValue(a.textContent)};Blockly.Field.prototype.toXml=function(a){a.textContent=this.getValue();return a}; -Blockly.Field.prototype.dispose=function(){Blockly.DropDownDiv.hideIfOwner(this);Blockly.WidgetDiv.hideIfOwner(this);Blockly.Tooltip.unbindMouseEvents(this.getClickTarget_());this.mouseDownWrapper_&&Blockly.unbindEvent_(this.mouseDownWrapper_);Blockly.utils.dom.removeNode(this.fieldGroup_);this.disposed=!0}; +Blockly.Field.prototype.bindEvents_=function(){Blockly.Tooltip.bindMouseEvents(this.getClickTarget_());this.mouseDownWrapper_=Blockly.browserEvents.conditionalBind(this.getClickTarget_(),"mousedown",this,this.onMouseDown_)};Blockly.Field.prototype.fromXml=function(a){this.setValue(a.textContent)};Blockly.Field.prototype.toXml=function(a){a.textContent=this.getValue();return a}; +Blockly.Field.prototype.dispose=function(){Blockly.DropDownDiv.hideIfOwner(this);Blockly.WidgetDiv.hideIfOwner(this);Blockly.Tooltip.unbindMouseEvents(this.getClickTarget_());this.mouseDownWrapper_&&Blockly.browserEvents.unbind(this.mouseDownWrapper_);Blockly.utils.dom.removeNode(this.fieldGroup_);this.disposed=!0}; Blockly.Field.prototype.updateEditable=function(){var a=this.fieldGroup_;this.EDITABLE&&a&&(this.sourceBlock_.isEditable()?(Blockly.utils.dom.addClass(a,"blocklyEditableText"),Blockly.utils.dom.removeClass(a,"blocklyNonEditableText"),a.style.cursor=this.CURSOR):(Blockly.utils.dom.addClass(a,"blocklyNonEditableText"),Blockly.utils.dom.removeClass(a,"blocklyEditableText"),a.style.cursor=""))}; Blockly.Field.prototype.isClickable=function(){return!!this.sourceBlock_&&this.sourceBlock_.isEditable()&&!!this.showEditor_&&"function"===typeof this.showEditor_};Blockly.Field.prototype.isCurrentlyEditable=function(){return this.EDITABLE&&!!this.sourceBlock_&&this.sourceBlock_.isEditable()}; Blockly.Field.prototype.isSerializable=function(){var a=!1;this.name&&(this.SERIALIZABLE?a=!0:this.EDITABLE&&(console.warn("Detected an editable field that was not serializable. Please define SERIALIZABLE property as true on all editable custom fields. Proceeding with serialization."),a=!0));return a};Blockly.Field.prototype.isVisible=function(){return this.visible_}; @@ -496,30 +471,31 @@ Blockly.Field.prototype.getSize=function(){if(!this.isVisible())return new Block Blockly.Field.prototype.getScaledBBox=function(){if(this.borderRect_)a=this.borderRect_.getBoundingClientRect(),c=Blockly.utils.style.getPageOffset(this.borderRect_),d=a.width,a=a.height;else{var a=this.sourceBlock_.getHeightWidth(),b=this.sourceBlock_.workspace.scale,c=this.getAbsoluteXY_(),d=a.width*b;a=a.height*b;Blockly.utils.userAgent.GECKO?(c.x+=1.5*b,c.y+=1.5*b):Blockly.utils.userAgent.EDGE||Blockly.utils.userAgent.IE||(c.x-=.5*b,c.y-=.5*b);d+=1*b;a+=1*b}return new Blockly.utils.Rect(c.y,c.y+ a,c.x,c.x+d)};Blockly.Field.prototype.getDisplayText_=function(){var a=this.getText();if(!a)return Blockly.Field.NBSP;a.length>this.maxDisplayLength&&(a=a.substring(0,this.maxDisplayLength-2)+"\u2026");a=a.replace(/\s/g,Blockly.Field.NBSP);this.sourceBlock_&&this.sourceBlock_.RTL&&(a+="\u200f");return a};Blockly.Field.prototype.getText=function(){if(this.getText_){var a=this.getText_.call(this);if(null!==a)return String(a)}return String(this.getValue())}; Blockly.Field.prototype.markDirty=function(){this.isDirty_=!0;this.constants_=null};Blockly.Field.prototype.forceRerender=function(){this.isDirty_=!0;this.sourceBlock_&&this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours(),this.updateMarkers_())}; -Blockly.Field.prototype.setValue=function(a){if(null!==a){var b=this.doClassValidation_(a);a=this.processValidation_(a,b);if(!(a instanceof Error)){if(b=this.getValidator())if(b=b.call(this,a),a=this.processValidation_(a,b),a instanceof Error)return;b=this.sourceBlock_;if(!b||!b.disposed){var c=this.getValue();c===a?this.doValueUpdate_(a):(b&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.BlockChange(b,"field",this.name||null,c,a)),this.doValueUpdate_(a),this.isDirty_&&this.forceRerender())}}}}; -Blockly.Field.prototype.processValidation_=function(a,b){if(null===b)return this.doValueInvalid_(a),this.isDirty_&&this.forceRerender(),Error();void 0!==b&&(a=b);return a};Blockly.Field.prototype.getValue=function(){return this.value_};Blockly.Field.prototype.doClassValidation_=function(a){return null===a||void 0===a?null:a};Blockly.Field.prototype.doValueUpdate_=function(a){this.value_=a;this.isDirty_=!0};Blockly.Field.prototype.doValueInvalid_=function(a){}; +Blockly.Field.prototype.setValue=function(a){if(null!==a){var b=this.doClassValidation_(a);a=this.processValidation_(a,b);if(!(a instanceof Error)){if(b=this.getValidator())if(b=b.call(this,a),a=this.processValidation_(a,b),a instanceof Error)return;b=this.sourceBlock_;if(!b||!b.disposed){var c=this.getValue();c===a?this.doValueUpdate_(a):(b&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new (Blockly.Events.get(Blockly.Events.BLOCK_CHANGE))(b,"field",this.name||null,c,a)),this.doValueUpdate_(a), +this.isDirty_&&this.forceRerender())}}}};Blockly.Field.prototype.processValidation_=function(a,b){if(null===b)return this.doValueInvalid_(a),this.isDirty_&&this.forceRerender(),Error();void 0!==b&&(a=b);return a};Blockly.Field.prototype.getValue=function(){return this.value_};Blockly.Field.prototype.doClassValidation_=function(a){return null===a||void 0===a?null:a};Blockly.Field.prototype.doValueUpdate_=function(a){this.value_=a;this.isDirty_=!0};Blockly.Field.prototype.doValueInvalid_=function(a){}; Blockly.Field.prototype.onMouseDown_=function(a){this.sourceBlock_&&this.sourceBlock_.workspace&&(a=this.sourceBlock_.workspace.getGesture(a))&&a.setStartField(this)};Blockly.Field.prototype.setTooltip=function(a){a||""===a||(a=this.sourceBlock_);var b=this.getClickTarget_();b?b.tooltip=a:this.tooltip_=a};Blockly.Field.prototype.getTooltip=function(){var a=this.getClickTarget_();return a?Blockly.Tooltip.getTooltipOfObject(a):Blockly.Tooltip.getTooltipOfObject({tooltip:this.tooltip_})}; Blockly.Field.prototype.getClickTarget_=function(){return this.clickTarget_||this.getSvgRoot()};Blockly.Field.prototype.getAbsoluteXY_=function(){return Blockly.utils.style.getPageOffset(this.getClickTarget_())};Blockly.Field.prototype.referencesVariables=function(){return!1};Blockly.Field.prototype.getParentInput=function(){for(var a=null,b=this.sourceBlock_,c=b.inputList,d=0;da||a>this.fieldRow.length)throw Error("index "+a+" out of bounds.");if(!(b||""==b&&c))return a;"string"==typeof b&&(b=new Blockly.FieldLabel(b));b.setSourceBlock(this.sourceBlock_);this.sourceBlock_.rendered&&(b.init(),b.applyColour());b.name=c;b.setVisible(this.isVisible());c=b;c.prefixField&&(a=this.insertFieldAt(a,c.prefixField));this.fieldRow.splice(a,0,b);++a;c.suffixField&&(a=this.insertFieldAt(a,c.suffixField));this.sourceBlock_.rendered&& -(this.sourceBlock_=this.sourceBlock_,this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours());return a};Blockly.Input.prototype.removeField=function(a,b){for(var c=0,d;d=this.fieldRow[c];c++)if(d.name===a)return d.dispose(),this.fieldRow.splice(c,1),this.sourceBlock_.rendered&&(this.sourceBlock_=this.sourceBlock_,this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours()),!0;if(b)return!1;throw Error('Field "'+a+'" not found.');};Blockly.Input.prototype.isVisible=function(){return this.visible_}; -Blockly.Input.prototype.setVisible=function(a){var b=[];if(this.visible_==a)return b;this.visible_=a;for(var c=0,d;d=this.fieldRow[c];c++)d.setVisible(a);this.connection&&(this.connection=this.connection,a?b=this.connection.startTrackingAll():this.connection.stopTrackingAll(),c=this.connection.targetBlock())&&(c.getSvgRoot().style.display=a?"block":"none");return b};Blockly.Input.prototype.markDirty=function(){for(var a=0,b;b=this.fieldRow[a];a++)b.markDirty()}; +Blockly.FieldLabel.prototype.setClass=function(a){this.textElement_&&(this.class_&&Blockly.utils.dom.removeClass(this.textElement_,this.class_),a&&Blockly.utils.dom.addClass(this.textElement_,a));this.class_=a};Blockly.fieldRegistry.register("field_label",Blockly.FieldLabel);Blockly.Input=function(a,b,c,d){if(a!=Blockly.inputTypes.DUMMY&&!b)throw Error("Value inputs and statement inputs must have non-empty name.");this.type=a;this.name=b;this.sourceBlock_=c;this.connection=d;this.fieldRow=[]};Blockly.Input.prototype.align=Blockly.constants.ALIGN.LEFT;Blockly.Input.prototype.visible_=!0;Blockly.Input.prototype.getSourceBlock=function(){return this.sourceBlock_};Blockly.Input.prototype.appendField=function(a,b){this.insertFieldAt(this.fieldRow.length,a,b);return this}; +Blockly.Input.prototype.insertFieldAt=function(a,b,c){if(0>a||a>this.fieldRow.length)throw Error("index "+a+" out of bounds.");if(!(b||""==b&&c))return a;"string"==typeof b&&(b=Blockly.fieldRegistry.fromJson({type:"field_label",text:b}));b.setSourceBlock(this.sourceBlock_);this.sourceBlock_.rendered&&(b.init(),b.applyColour());b.name=c;b.setVisible(this.isVisible());b.prefixField&&(a=this.insertFieldAt(a,b.prefixField));this.fieldRow.splice(a,0,b);++a;b.suffixField&&(a=this.insertFieldAt(a,b.suffixField)); +this.sourceBlock_.rendered&&(this.sourceBlock_=this.sourceBlock_,this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours());return a};Blockly.Input.prototype.removeField=function(a,b){for(var c=0,d;d=this.fieldRow[c];c++)if(d.name===a)return d.dispose(),this.fieldRow.splice(c,1),this.sourceBlock_.rendered&&(this.sourceBlock_=this.sourceBlock_,this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours()),!0;if(b)return!1;throw Error('Field "'+a+'" not found.');}; +Blockly.Input.prototype.isVisible=function(){return this.visible_};Blockly.Input.prototype.setVisible=function(a){var b=[];if(this.visible_==a)return b;this.visible_=a;for(var c=0,d;d=this.fieldRow[c];c++)d.setVisible(a);this.connection&&(this.connection=this.connection,a?b=this.connection.startTrackingAll():this.connection.stopTrackingAll(),c=this.connection.targetBlock())&&(c.getSvgRoot().style.display=a?"block":"none");return b};Blockly.Input.prototype.markDirty=function(){for(var a=0,b;b=this.fieldRow[a];a++)b.markDirty()}; Blockly.Input.prototype.setCheck=function(a){if(!this.connection)throw Error("This input does not have a connection.");this.connection.setCheck(a);return this};Blockly.Input.prototype.setAlign=function(a){this.align=a;this.sourceBlock_.rendered&&(this.sourceBlock_=this.sourceBlock_,this.sourceBlock_.render());return this};Blockly.Input.prototype.setShadowDom=function(a){if(!this.connection)throw Error("This input does not have a connection.");this.connection.setShadowDom(a);return this}; Blockly.Input.prototype.getShadowDom=function(){if(!this.connection)throw Error("This input does not have a connection.");return this.connection.getShadowDom()};Blockly.Input.prototype.init=function(){if(this.sourceBlock_.workspace.rendered)for(var a=0;aa&&(e=e.substring(0,a-3)+"...");return e};Blockly.Block.prototype.appendValueInput=function(a){return this.appendInput_(Blockly.INPUT_VALUE,a)};Blockly.Block.prototype.appendStatementInput=function(a){return this.appendInput_(Blockly.NEXT_STATEMENT,a)};Blockly.Block.prototype.appendDummyInput=function(a){return this.appendInput_(Blockly.DUMMY_INPUT,a||"")}; +g.in()?c(k)&&e.push("("):e.push(b);break;case Blockly.ASTNode.types.FIELD:k=g.getLocation(),k.name!=Blockly.constants.COLLAPSED_FIELD_NAME&&e.push(k.getText())}k=g;g=k.in()||k.next();if(!g){g=k.out();for(d();g&&!g.next();)g=g.out(),d(),g&&g.getType()==Blockly.ASTNode.types.INPUT&&c(g.getLocation())&&e.push(")");g&&(g=g.next())}}Blockly.ASTNode.NAVIGATE_ALL_FIELDS=f;b=2;for(f=e.length;ba&&(e=e.substring(0,a-3)+"...");return e};Blockly.Block.prototype.appendValueInput=function(a){return this.appendInput_(Blockly.inputTypes.VALUE,a)};Blockly.Block.prototype.appendStatementInput=function(a){return this.appendInput_(Blockly.inputTypes.STATEMENT,a)};Blockly.Block.prototype.appendDummyInput=function(a){return this.appendInput_(Blockly.inputTypes.DUMMY,a||"")}; Blockly.Block.prototype.jsonInit=function(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.");a.style&&a.style.hat&&(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,b):this.jsonInitColour_(a,b);for(var c=0;void 0!==a["message"+c];)this.interpolate_(a["message"+c],a["args"+c]||[],a["lastDummyAlign"+c],b),c++;void 0!== a.inputsInline&&this.setInputsInline(a.inputsInline);void 0!==a.output&&this.setOutput(!0,a.output);void 0!==a.outputShape&&this.setOutputShape(a.outputShape);void 0!==a.previousStatement&&this.setPreviousStatement(!0,a.previousStatement);void 0!==a.nextStatement&&this.setNextStatement(!0,a.nextStatement);void 0!==a.tooltip&&(c=a.tooltip,c=Blockly.utils.replaceMessageReferences(c),this.setTooltip(c));void 0!==a.enableContextMenu&&(c=a.enableContextMenu,this.contextMenu=!!c);void 0!==a.helpUrl&&(c= a.helpUrl,c=Blockly.utils.replaceMessageReferences(c),this.setHelpUrl(c));"string"==typeof a.extensions&&(console.warn(b+"JSON attribute 'extensions' should be an array of strings. Found raw string in JSON for '"+a.type+"' block."),a.extensions=[a.extensions]);void 0!==a.mutator&&Blockly.Extensions.apply(a.mutator,this,!0);if(Array.isArray(a.extensions))for(a=a.extensions,b=0;b=k||k>b.length)throw Error('Block "'+this.type+'": Message index %'+k+" out of range.");if(f[k])throw Error('Block "'+this.type+'": Message index %'+k+" duplicated.");f[k]=!0;g++;a.push(b[k-1])}else(k=k.trim())&&a.push(k)}if(g!=b.length)throw Error('Block "'+this.type+'": Message does not reference all '+b.length+" arg(s)."); -a.length&&("string"==typeof a[a.length-1]||Blockly.utils.string.startsWith(a[a.length-1].type,"field_"))&&(h={type:"input_dummy"},c&&(h.align=c),a.push(h));c={LEFT:Blockly.ALIGN_LEFT,RIGHT:Blockly.ALIGN_RIGHT,CENTRE:Blockly.ALIGN_CENTRE,CENTER:Blockly.ALIGN_CENTRE};b=[];for(h=0;hf||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).");}; +Blockly.Block.prototype.interpolateArguments_=function(a,b,c){for(var d=[],e=0;e=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);aa?this.menuItems_.length:a,-1)};Blockly.Menu.prototype.highlightFirst_=function(){this.highlightHelper_(-1,1)};Blockly.Menu.prototype.highlightLast_=function(){this.highlightHelper_(this.menuItems_.length,-1)};Blockly.Menu.prototype.highlightHelper_=function(a,b){a+=b;for(var c;c=this.menuItems_[a];){if(c.isEnabled()){this.setHighlighted(c);break}a+=b}}; @@ -575,35 +552,19 @@ Blockly.MenuItem.prototype.createDom=function(){var a=document.createElement("di b.className="blocklyMenuItemContent goog-menuitem-content";if(this.checkable_){var c=document.createElement("div");c.className="blocklyMenuItemCheckbox goog-menuitem-checkbox";b.appendChild(c)}c=this.content_;"string"==typeof this.content_&&(c=document.createTextNode(this.content_));b.appendChild(c);a.appendChild(b);this.roleName_&&Blockly.utils.aria.setRole(a,this.roleName_);Blockly.utils.aria.setState(a,Blockly.utils.aria.State.SELECTED,this.checkable_&&this.checked_||!1);Blockly.utils.aria.setState(a, Blockly.utils.aria.State.DISABLED,!this.enabled_);return a};Blockly.MenuItem.prototype.dispose=function(){this.element_=null};Blockly.MenuItem.prototype.getElement=function(){return this.element_};Blockly.MenuItem.prototype.getId=function(){return this.element_.id};Blockly.MenuItem.prototype.getValue=function(){return this.value_};Blockly.MenuItem.prototype.setRightToLeft=function(a){this.rightToLeft_=a};Blockly.MenuItem.prototype.setRole=function(a){this.roleName_=a}; Blockly.MenuItem.prototype.setCheckable=function(a){this.checkable_=a};Blockly.MenuItem.prototype.setChecked=function(a){this.checked_=a};Blockly.MenuItem.prototype.setHighlighted=function(a){this.highlight_=a;var b=this.getElement();b&&this.isEnabled()&&(a?(Blockly.utils.dom.addClass(b,"blocklyMenuItemHighlight"),Blockly.utils.dom.addClass(b,"goog-menuitem-highlight")):(Blockly.utils.dom.removeClass(b,"blocklyMenuItemHighlight"),Blockly.utils.dom.removeClass(b,"goog-menuitem-highlight")))}; -Blockly.MenuItem.prototype.isEnabled=function(){return this.enabled_};Blockly.MenuItem.prototype.setEnabled=function(a){this.enabled_=a};Blockly.MenuItem.prototype.performAction=function(){this.isEnabled()&&this.actionHandler_&&this.actionHandler_(this)};Blockly.MenuItem.prototype.onAction=function(a,b){this.actionHandler_=a.bind(b)};Blockly.ContextMenu={};Blockly.ContextMenu.currentBlock=null;Blockly.ContextMenu.menu_=null;Blockly.ContextMenu.show=function(a,b,c){Blockly.WidgetDiv.show(Blockly.ContextMenu,c,Blockly.ContextMenu.dispose);if(b.length){var d=Blockly.ContextMenu.populate_(b,c);Blockly.ContextMenu.menu_=d;Blockly.ContextMenu.position_(d,a,c);setTimeout(function(){d.focus()},1);Blockly.ContextMenu.currentBlock=null}else Blockly.ContextMenu.hide()}; +Blockly.MenuItem.prototype.isEnabled=function(){return this.enabled_};Blockly.MenuItem.prototype.setEnabled=function(a){this.enabled_=a};Blockly.MenuItem.prototype.performAction=function(){this.isEnabled()&&this.actionHandler_&&this.actionHandler_(this)};Blockly.MenuItem.prototype.onAction=function(a,b){this.actionHandler_=a.bind(b)};Blockly.WidgetDiv={};Blockly.WidgetDiv.owner_=null;Blockly.WidgetDiv.dispose_=null;Blockly.WidgetDiv.rendererClassName_="";Blockly.WidgetDiv.themeClassName_="";Blockly.WidgetDiv.createDom=function(){Blockly.WidgetDiv.DIV||(Blockly.WidgetDiv.DIV=document.createElement("div"),Blockly.WidgetDiv.DIV.className="blocklyWidgetDiv",(Blockly.parentContainer||document.body).appendChild(Blockly.WidgetDiv.DIV))}; +Blockly.WidgetDiv.show=function(a,b,c){Blockly.WidgetDiv.hide();Blockly.WidgetDiv.owner_=a;Blockly.WidgetDiv.dispose_=c;a=Blockly.WidgetDiv.DIV;a.style.direction=b?"rtl":"ltr";a.style.display="block";b=Blockly.getMainWorkspace();Blockly.WidgetDiv.rendererClassName_=b.getRenderer().getClassName();Blockly.WidgetDiv.themeClassName_=b.getTheme().getClassName();Blockly.utils.dom.addClass(a,Blockly.WidgetDiv.rendererClassName_);Blockly.utils.dom.addClass(a,Blockly.WidgetDiv.themeClassName_)}; +Blockly.WidgetDiv.hide=function(){if(Blockly.WidgetDiv.isVisible()){Blockly.WidgetDiv.owner_=null;var a=Blockly.WidgetDiv.DIV;a.style.display="none";a.style.left="";a.style.top="";Blockly.WidgetDiv.dispose_&&Blockly.WidgetDiv.dispose_();Blockly.WidgetDiv.dispose_=null;a.textContent="";Blockly.WidgetDiv.rendererClassName_&&(Blockly.utils.dom.removeClass(a,Blockly.WidgetDiv.rendererClassName_),Blockly.WidgetDiv.rendererClassName_="");Blockly.WidgetDiv.themeClassName_&&(Blockly.utils.dom.removeClass(a, +Blockly.WidgetDiv.themeClassName_),Blockly.WidgetDiv.themeClassName_="");Blockly.getMainWorkspace().markFocused()}};Blockly.WidgetDiv.isVisible=function(){return!!Blockly.WidgetDiv.owner_};Blockly.WidgetDiv.hideIfOwner=function(a){Blockly.WidgetDiv.owner_==a&&Blockly.WidgetDiv.hide()};Blockly.WidgetDiv.positionInternal_=function(a,b,c){Blockly.WidgetDiv.DIV.style.left=a+"px";Blockly.WidgetDiv.DIV.style.top=b+"px";Blockly.WidgetDiv.DIV.style.height=c+"px"}; +Blockly.WidgetDiv.positionWithAnchor=function(a,b,c,d){var e=Blockly.WidgetDiv.calculateY_(a,b,c);a=Blockly.WidgetDiv.calculateX_(a,b,c,d);0>e?Blockly.WidgetDiv.positionInternal_(a,0,c.height+e):Blockly.WidgetDiv.positionInternal_(a,e,c.height)};Blockly.WidgetDiv.calculateX_=function(a,b,c,d){if(d)return b=Math.max(b.right-c.width,a.left),Math.min(b,a.right-c.width);b=Math.min(b.left,a.right-c.width);return Math.max(b,a.left)}; +Blockly.WidgetDiv.calculateY_=function(a,b,c){return b.bottom+c.height>=a.bottom?b.top-c.height:b.bottom};Blockly.ContextMenu={};Blockly.ContextMenu.currentBlock=null;Blockly.ContextMenu.menu_=null;Blockly.ContextMenu.show=function(a,b,c){Blockly.WidgetDiv.show(Blockly.ContextMenu,c,Blockly.ContextMenu.dispose);if(b.length){var d=Blockly.ContextMenu.populate_(b,c);Blockly.ContextMenu.menu_=d;Blockly.ContextMenu.position_(d,a,c);setTimeout(function(){d.focus()},1);Blockly.ContextMenu.currentBlock=null}else Blockly.ContextMenu.hide()}; Blockly.ContextMenu.populate_=function(a,b){var c=new Blockly.Menu;c.setRole(Blockly.utils.aria.Role.MENU);for(var d=0,e;e=a[d];d++){var f=new Blockly.MenuItem(e.text);f.setRightToLeft(b);f.setRole(Blockly.utils.aria.Role.MENUITEM);c.addChild(f);f.setEnabled(e.enabled);if(e.enabled)f.onAction(function(g){Blockly.ContextMenu.hide();this.callback(this.scope)},e)}return c}; Blockly.ContextMenu.position_=function(a,b,c){var d=Blockly.utils.getViewportBBox();b=new Blockly.utils.Rect(b.clientY+d.top,b.clientY+d.top,b.clientX+d.left,b.clientX+d.left);Blockly.ContextMenu.createWidget_(a);var e=a.getSize();c&&(b.left+=e.width,b.right+=e.width,d.left+=e.width,d.right+=e.width);Blockly.WidgetDiv.positionWithAnchor(d,b,e,c);a.focus()}; -Blockly.ContextMenu.createWidget_=function(a){a.render(Blockly.WidgetDiv.DIV);var b=a.getElement();Blockly.utils.dom.addClass(b,"blocklyContextMenu");Blockly.bindEventWithChecks_(b,"contextmenu",null,Blockly.utils.noEvent);a.focus()};Blockly.ContextMenu.hide=function(){Blockly.WidgetDiv.hideIfOwner(Blockly.ContextMenu);Blockly.ContextMenu.currentBlock=null};Blockly.ContextMenu.dispose=function(){Blockly.ContextMenu.menu_&&(Blockly.ContextMenu.menu_.dispose(),Blockly.ContextMenu.menu_=null)}; -Blockly.ContextMenu.callbackFactory=function(a,b){return function(){Blockly.Events.disable();try{var c=Blockly.Xml.domToBlock(b,a.workspace),d=a.getRelativeToSurfaceXY();d.x=a.RTL?d.x-Blockly.SNAP_RADIUS:d.x+Blockly.SNAP_RADIUS;d.y+=2*Blockly.SNAP_RADIUS;c.moveBy(d.x,d.y)}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&!c.isShadow()&&Blockly.Events.fire(new Blockly.Events.BlockCreate(c));c.select()}}; +Blockly.ContextMenu.createWidget_=function(a){a.render(Blockly.WidgetDiv.DIV);var b=a.getElement();Blockly.utils.dom.addClass(b,"blocklyContextMenu");Blockly.browserEvents.conditionalBind(b,"contextmenu",null,Blockly.utils.noEvent);a.focus()};Blockly.ContextMenu.hide=function(){Blockly.WidgetDiv.hideIfOwner(Blockly.ContextMenu);Blockly.ContextMenu.currentBlock=null};Blockly.ContextMenu.dispose=function(){Blockly.ContextMenu.menu_&&(Blockly.ContextMenu.menu_.dispose(),Blockly.ContextMenu.menu_=null)}; +Blockly.ContextMenu.callbackFactory=function(a,b){return function(){Blockly.Events.disable();try{var c=Blockly.Xml.domToBlock(b,a.workspace),d=a.getRelativeToSurfaceXY();d.x=a.RTL?d.x-Blockly.SNAP_RADIUS:d.x+Blockly.SNAP_RADIUS;d.y+=2*Blockly.SNAP_RADIUS;c.moveBy(d.x,d.y)}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&!c.isShadow()&&Blockly.Events.fire(new (Blockly.Events.get(Blockly.Events.BLOCK_CREATE))(c));c.select()}}; Blockly.ContextMenu.commentDeleteOption=function(a){return{text:Blockly.Msg.REMOVE_COMMENT,enabled:!0,callback:function(){Blockly.Events.setGroup(!0);a.dispose(!0,!0);Blockly.Events.setGroup(!1)}}};Blockly.ContextMenu.commentDuplicateOption=function(a){return{text:Blockly.Msg.DUPLICATE_COMMENT,enabled:!0,callback:function(){Blockly.duplicate(a)}}}; Blockly.ContextMenu.workspaceCommentOption=function(a,b){if(!Blockly.WorkspaceCommentSvg)throw Error("Missing require for Blockly.WorkspaceCommentSvg");var c={enabled:!Blockly.utils.userAgent.IE};c.text=Blockly.Msg.ADD_COMMENT;c.callback=function(){var d=new Blockly.WorkspaceCommentSvg(a,Blockly.Msg.WORKSPACE_COMMENT_DEFAULT_TEXT,Blockly.WorkspaceCommentSvg.DEFAULT_SIZE,Blockly.WorkspaceCommentSvg.DEFAULT_SIZE),e=a.getInjectionDiv().getBoundingClientRect();e=new Blockly.utils.Coordinate(b.clientX- -e.left,b.clientY-e.top);var f=a.getOriginOffsetInPixels();e=Blockly.utils.Coordinate.difference(e,f);e.scale(1/a.scale);d.moveBy(e.x,e.y);a.rendered&&(d.initSvg(),d.render(),d.select())};return c};Blockly.ContextMenuItems={};Blockly.ContextMenuItems.registerUndo=function(){Blockly.ContextMenuRegistry.registry.register({displayText:function(){return Blockly.Msg.UNDO},preconditionFn:function(a){return 0b.length?Blockly.ContextMenuItems.deleteNext_(b,c):Blockly.confirm(Blockly.Msg.DELETE_ALL_BLOCKS.replace("%1",b.length),function(d){d&&Blockly.ContextMenuItems.deleteNext_(b,c)})}},scopeType:Blockly.ContextMenuRegistry.ScopeType.WORKSPACE,id:"workspaceDelete",weight:6})}; -Blockly.ContextMenuItems.registerWorkspaceOptions_=function(){Blockly.ContextMenuItems.registerUndo();Blockly.ContextMenuItems.registerRedo();Blockly.ContextMenuItems.registerCleanup();Blockly.ContextMenuItems.registerCollapse();Blockly.ContextMenuItems.registerExpand();Blockly.ContextMenuItems.registerDeleteAll()}; -Blockly.ContextMenuItems.registerDuplicate=function(){Blockly.ContextMenuRegistry.registry.register({displayText:function(){return Blockly.Msg.DUPLICATE_BLOCK},preconditionFn:function(a){a=a.block;return!a.isInFlyout&&a.isDeletable()&&a.isMovable()?a.isDuplicatable()?"enabled":"disabled":"hidden"},callback:function(a){a.block&&Blockly.duplicate(a.block)},scopeType:Blockly.ContextMenuRegistry.ScopeType.BLOCK,id:"blockDuplicate",weight:1})}; -Blockly.ContextMenuItems.registerComment=function(){Blockly.ContextMenuRegistry.registry.register({displayText:function(a){return a.block.getCommentIcon()?Blockly.Msg.REMOVE_COMMENT:Blockly.Msg.ADD_COMMENT},preconditionFn:function(a){a=a.block;return Blockly.utils.userAgent.IE||a.isInFlyout||!a.workspace.options.comments||a.isCollapsed()||!a.isEditable()?"hidden":"enabled"},callback:function(a){a=a.block;a.getCommentIcon()?a.setCommentText(null):a.setCommentText("")},scopeType:Blockly.ContextMenuRegistry.ScopeType.BLOCK, -id:"blockComment",weight:2})}; -Blockly.ContextMenuItems.registerInline=function(){Blockly.ContextMenuRegistry.registry.register({displayText:function(a){return a.block.getInputsInline()?Blockly.Msg.EXTERNAL_INPUTS:Blockly.Msg.INLINE_INPUTS},preconditionFn:function(a){a=a.block;if(!a.isInFlyout&&a.isMovable()&&!a.isCollapsed())for(var b=1;bb?!1:Blockly.RenderedConnection.superClass_.isConnectionAllowed.call(this,a)};Blockly.RenderedConnection.prototype.onFailedConnect=function(a){this.bumpAwayFrom(a)}; +Blockly.RenderedConnection.prototype.startTrackingAll=function(){this.setTracking(!0);var a=[];if(this.type!=Blockly.connectionTypes.INPUT_VALUE&&this.type!=Blockly.connectionTypes.NEXT_STATEMENT)return a;var b=this.targetBlock();if(b){if(b.isCollapsed()){var c=[];b.outputConnection&&c.push(b.outputConnection);b.nextConnection&&c.push(b.nextConnection);b.previousConnection&&c.push(b.previousConnection)}else c=b.getConnections_(!0);for(var d=0;db?!1:Blockly.RenderedConnection.superClass_.isConnectionAllowed.call(this,a)};Blockly.RenderedConnection.prototype.onFailedConnect=function(a){this.bumpAwayFrom(a)}; Blockly.RenderedConnection.prototype.disconnectInternal_=function(a,b){Blockly.RenderedConnection.superClass_.disconnectInternal_.call(this,a,b);a.rendered&&a.render();b.rendered&&(b.updateDisabled(),b.render(),b.getSvgRoot().style.display="block")};Blockly.RenderedConnection.prototype.respawnShadow_=function(){Blockly.RenderedConnection.superClass_.respawnShadow_.call(this);var a=this.targetBlock();a&&(a.initSvg(),a.render(!1),a=this.getSourceBlock(),a.rendered&&a.render())}; Blockly.RenderedConnection.prototype.neighbours=function(a){return this.dbOpposite_.getNeighbours(this,a)}; -Blockly.RenderedConnection.prototype.connect_=function(a){Blockly.RenderedConnection.superClass_.connect_.call(this,a);var b=this.getSourceBlock();a=a.getSourceBlock();var c=b.rendered,d=a.rendered;c&&b.updateDisabled();d&&a.updateDisabled();c&&d&&(this.type==Blockly.NEXT_STATEMENT||this.type==Blockly.PREVIOUS_STATEMENT?a.render():b.render());if(b=b.getInputWithBlock(a))b=b.isVisible(),a.getSvgRoot().style.display=b?"block":"none"}; +Blockly.RenderedConnection.prototype.connect_=function(a){Blockly.RenderedConnection.superClass_.connect_.call(this,a);var b=this.getSourceBlock();a=a.getSourceBlock();var c=b.rendered,d=a.rendered;c&&b.updateDisabled();d&&a.updateDisabled();c&&d&&(this.type==Blockly.connectionTypes.NEXT_STATEMENT||this.type==Blockly.connectionTypes.PREVIOUS_STATEMENT?a.render():b.render());if(b=b.getInputWithBlock(a))b=b.isVisible(),a.getSvgRoot().style.display=b?"block":"none"}; Blockly.RenderedConnection.prototype.onCheckChanged_=function(){!this.isConnected()||this.targetConnection&&this.getConnectionChecker().canConnect(this,this.targetConnection,!1)||((this.isSuperior()?this.targetBlock():this.sourceBlock_).unplug(),this.sourceBlock_.bumpNeighbours())};Blockly.Marker=function(){this.drawer_=this.curNode_=this.colour=null;this.type="marker"};Blockly.Marker.prototype.setDrawer=function(a){this.drawer_=a};Blockly.Marker.prototype.getDrawer=function(){return this.drawer_};Blockly.Marker.prototype.getCurNode=function(){return this.curNode_};Blockly.Marker.prototype.setCurNode=function(a){var b=this.curNode_;this.curNode_=a;this.drawer_&&this.drawer_.draw(b,this.curNode_)}; Blockly.Marker.prototype.draw=function(){this.drawer_&&this.drawer_.draw(this.curNode_,this.curNode_)};Blockly.Marker.prototype.hide=function(){this.drawer_&&this.drawer_.hide()};Blockly.Marker.prototype.dispose=function(){this.getDrawer()&&this.getDrawer().dispose()};Blockly.Cursor=function(){Blockly.Cursor.superClass_.constructor.call(this);this.type="cursor"};Blockly.utils.object.inherits(Blockly.Cursor,Blockly.Marker);Blockly.Cursor.prototype.next=function(){var a=this.getCurNode();if(!a)return null;for(a=a.next();a&&a.next()&&(a.getType()==Blockly.ASTNode.types.NEXT||a.getType()==Blockly.ASTNode.types.BLOCK);)a=a.next();a&&this.setCurNode(a);return a}; Blockly.Cursor.prototype.in=function(){var a=this.getCurNode();if(!a)return null;if(a.getType()==Blockly.ASTNode.types.PREVIOUS||a.getType()==Blockly.ASTNode.types.OUTPUT)a=a.next();(a=a.in())&&this.setCurNode(a);return a};Blockly.Cursor.prototype.prev=function(){var a=this.getCurNode();if(!a)return null;for(a=a.prev();a&&a.prev()&&(a.getType()==Blockly.ASTNode.types.NEXT||a.getType()==Blockly.ASTNode.types.BLOCK);)a=a.prev();a&&this.setCurNode(a);return a}; -Blockly.Cursor.prototype.out=function(){var a=this.getCurNode();if(!a)return null;(a=a.out())&&a.getType()==Blockly.ASTNode.types.BLOCK&&(a=a.prev()||a);a&&this.setCurNode(a);return a}; -Blockly.Cursor.prototype.onBlocklyAction=function(a){if(this.getCurNode()&&this.getCurNode().getType()===Blockly.ASTNode.types.FIELD&&this.getCurNode().getLocation().onBlocklyAction(a))return!0;switch(a.name){case Blockly.navigation.actionNames.PREVIOUS:return this.prev(),!0;case Blockly.navigation.actionNames.OUT:return this.out(),!0;case Blockly.navigation.actionNames.NEXT:return this.next(),!0;case Blockly.navigation.actionNames.IN:return this.in(),!0;default:return!1}};Blockly.BasicCursor=function(){Blockly.BasicCursor.superClass_.constructor.call(this)};Blockly.utils.object.inherits(Blockly.BasicCursor,Blockly.Cursor);Blockly.BasicCursor.prototype.next=function(){var a=this.getCurNode();if(!a)return null;(a=this.getNextNode_(a,this.validNode_))&&this.setCurNode(a);return a};Blockly.BasicCursor.prototype.in=function(){return this.next()}; +Blockly.Cursor.prototype.out=function(){var a=this.getCurNode();if(!a)return null;(a=a.out())&&a.getType()==Blockly.ASTNode.types.BLOCK&&(a=a.prev()||a);a&&this.setCurNode(a);return a};Blockly.registry.register(Blockly.registry.Type.CURSOR,Blockly.registry.DEFAULT,Blockly.Cursor);Blockly.BasicCursor=function(){Blockly.BasicCursor.superClass_.constructor.call(this)};Blockly.utils.object.inherits(Blockly.BasicCursor,Blockly.Cursor);Blockly.BasicCursor.registrationName="basicCursor";Blockly.BasicCursor.prototype.next=function(){var a=this.getCurNode();if(!a)return null;(a=this.getNextNode_(a,this.validNode_))&&this.setCurNode(a);return a};Blockly.BasicCursor.prototype.in=function(){return this.next()}; Blockly.BasicCursor.prototype.prev=function(){var a=this.getCurNode();if(!a)return null;(a=this.getPreviousNode_(a,this.validNode_))&&this.setCurNode(a);return a};Blockly.BasicCursor.prototype.out=function(){return this.prev()};Blockly.BasicCursor.prototype.getNextNode_=function(a,b){if(!a)return null;var c=a.in()||a.next();if(b(c))return c;if(c)return this.getNextNode_(c,b);a=this.findSiblingOrParent_(a.out());return b(a)?a:a?this.getNextNode_(a,b):null}; Blockly.BasicCursor.prototype.getPreviousNode_=function(a,b){if(!a)return null;var c=a.prev();c=c?this.getRightMostChild_(c):a.out();return b(c)?c:c?this.getPreviousNode_(c,b):null};Blockly.BasicCursor.prototype.validNode_=function(a){var b=!1;a=a&&a.getType();if(a==Blockly.ASTNode.types.OUTPUT||a==Blockly.ASTNode.types.INPUT||a==Blockly.ASTNode.types.FIELD||a==Blockly.ASTNode.types.NEXT||a==Blockly.ASTNode.types.PREVIOUS||a==Blockly.ASTNode.types.WORKSPACE)b=!0;return b}; -Blockly.BasicCursor.prototype.findSiblingOrParent_=function(a){if(!a)return null;var b=a.next();return b?b:this.findSiblingOrParent_(a.out())};Blockly.BasicCursor.prototype.getRightMostChild_=function(a){if(!a.in())return a;for(a=a.in();a.next();)a=a.next();return this.getRightMostChild_(a)};Blockly.TabNavigateCursor=function(){Blockly.TabNavigateCursor.superClass_.constructor.call(this)};Blockly.utils.object.inherits(Blockly.TabNavigateCursor,Blockly.BasicCursor);Blockly.TabNavigateCursor.prototype.validNode_=function(a){var b=!1,c=a&&a.getType();a&&(a=a.getLocation(),c==Blockly.ASTNode.types.FIELD&&a&&a.isTabNavigable()&&a.isClickable()&&(b=!0));return b};Blockly.BlockSvg=function(a,b,c){this.svgGroup_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.G,{},null);this.svgGroup_.translate_="";this.style=a.getRenderer().getConstants().getBlockStyle(null);this.pathObject=a.getRenderer().makePathObject(this.svgGroup_,this.style);this.renderIsInProgress_=this.rendered=!1;this.workspace=a;this.previousConnection=this.nextConnection=this.outputConnection=null;this.useDragSurface_=Blockly.utils.is3dSupported()&&!!a.getBlockDragSurface();var d=this.pathObject.svgPath; +Blockly.BasicCursor.prototype.findSiblingOrParent_=function(a){if(!a)return null;var b=a.next();return b?b:this.findSiblingOrParent_(a.out())};Blockly.BasicCursor.prototype.getRightMostChild_=function(a){if(!a.in())return a;for(a=a.in();a.next();)a=a.next();return this.getRightMostChild_(a)};Blockly.registry.register(Blockly.registry.Type.CURSOR,Blockly.BasicCursor.registrationName,Blockly.BasicCursor);Blockly.TabNavigateCursor=function(){Blockly.TabNavigateCursor.superClass_.constructor.call(this)};Blockly.utils.object.inherits(Blockly.TabNavigateCursor,Blockly.BasicCursor);Blockly.TabNavigateCursor.prototype.validNode_=function(a){var b=!1,c=a&&a.getType();a&&(a=a.getLocation(),c==Blockly.ASTNode.types.FIELD&&a&&a.isTabNavigable()&&a.isClickable()&&(b=!0));return b};Blockly.BlockSvg=function(a,b,c){this.svgGroup_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.G,{},null);this.svgGroup_.translate_="";this.style=a.getRenderer().getConstants().getBlockStyle(null);this.pathObject=a.getRenderer().makePathObject(this.svgGroup_,this.style);this.renderIsInProgress_=this.rendered=!1;this.workspace=a;this.previousConnection=this.nextConnection=this.outputConnection=null;this.useDragSurface_=Blockly.utils.is3dSupported()&&!!a.getBlockDragSurface();var d=this.pathObject.svgPath; d.tooltip=this;Blockly.Tooltip.bindMouseEvents(d);Blockly.BlockSvg.superClass_.constructor.call(this,a,b,c);this.svgGroup_.dataset?this.svgGroup_.dataset.id=this.id:Blockly.utils.userAgent.IE&&this.svgGroup_.setAttribute("data-id",this.id)};Blockly.utils.object.inherits(Blockly.BlockSvg,Blockly.Block);Blockly.BlockSvg.prototype.height=0;Blockly.BlockSvg.prototype.width=0;Blockly.BlockSvg.prototype.warningTextDb_=null;Blockly.BlockSvg.INLINE=-1;Blockly.BlockSvg.COLLAPSED_WARNING_ID="TEMP_COLLAPSED_WARNING_"; -Blockly.BlockSvg.prototype.initSvg=function(){if(!this.workspace.rendered)throw TypeError("Workspace is headless.");for(var a=0,b;b=this.inputList[a];a++)b.init();b=this.getIcons();for(a=0;a=this.connections_.length)return-1;b=a.y;for(var d=c;0<=d&&this.connections_[d].y==b;){if(this.connections_[d]==a)return d;d--}for(;ca)c=d;else{b=d;break}}return b};Blockly.ConnectionDB.prototype.removeConnection=function(a,b){a=this.findIndexOfConnection_(a,b);if(-1==a)throw Error("Unable to find connection in connectionDB.");this.connections_.splice(a,1)}; Blockly.ConnectionDB.prototype.getNeighbours=function(a,b){function c(l){var m=e-d[l].x,n=f-d[l].y;Math.sqrt(m*m+n*n)<=b&&k.push(d[l]);return na)throw Error("Cannot unsubscribe a workspace that hasn't been subscribed.");this.subscribedWorkspaces_.splice(a,1)}; Blockly.ThemeManager.prototype.subscribe=function(a,b,c){this.componentDB_[b]||(this.componentDB_[b]=[]);this.componentDB_[b].push({element:a,propertyName:c});b=this.theme_&&this.theme_.getComponentStyle(b);a.style[c]=b||""};Blockly.ThemeManager.prototype.unsubscribe=function(a){if(a)for(var b=Object.keys(this.componentDB_),c=0,d;d=b[c];c++){for(var e=this.componentDB_[d],f=e.length-1;0<=f;f--)e[f].element===a&&e.splice(f,1);this.componentDB_[d].length||delete this.componentDB_[d]}}; Blockly.ThemeManager.prototype.dispose=function(){this.componentDB_=this.subscribedWorkspaces_=this.theme_=this.owner_=null};Blockly.TouchGesture=function(a,b){Blockly.TouchGesture.superClass_.constructor.call(this,a,b);this.isMultiTouch_=!1;this.cachedPoints_=Object.create(null);this.startDistance_=this.previousScale_=0;this.isPinchZoomEnabled_=this.onStartWrapper_=null};Blockly.utils.object.inherits(Blockly.TouchGesture,Blockly.Gesture);Blockly.TouchGesture.ZOOM_IN_MULTIPLIER=5;Blockly.TouchGesture.ZOOM_OUT_MULTIPLIER=6; Blockly.TouchGesture.prototype.doStart=function(a){this.isPinchZoomEnabled_=this.startWorkspace_.options.zoomOptions&&this.startWorkspace_.options.zoomOptions.pinch;Blockly.TouchGesture.superClass_.doStart.call(this,a);!this.isEnding_&&Blockly.Touch.isTouchEvent(a)&&this.handleTouchStart(a)}; -Blockly.TouchGesture.prototype.bindMouseEvents=function(a){this.onStartWrapper_=Blockly.bindEventWithChecks_(document,"mousedown",null,this.handleStart.bind(this),!0);this.onMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",null,this.handleMove.bind(this),!0);this.onUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",null,this.handleUp.bind(this),!0);a.preventDefault();a.stopPropagation()}; +Blockly.TouchGesture.prototype.bindMouseEvents=function(a){this.onStartWrapper_=Blockly.browserEvents.conditionalBind(document,"mousedown",null,this.handleStart.bind(this),!0);this.onMoveWrapper_=Blockly.browserEvents.conditionalBind(document,"mousemove",null,this.handleMove.bind(this),!0);this.onUpWrapper_=Blockly.browserEvents.conditionalBind(document,"mouseup",null,this.handleUp.bind(this),!0);a.preventDefault();a.stopPropagation()}; Blockly.TouchGesture.prototype.handleStart=function(a){!this.isDragging()&&Blockly.Touch.isTouchEvent(a)&&(this.handleTouchStart(a),this.isMultiTouch()&&Blockly.longStop_())};Blockly.TouchGesture.prototype.handleMove=function(a){this.isDragging()?Blockly.Touch.shouldHandleEvent(a)&&Blockly.TouchGesture.superClass_.handleMove.call(this,a):this.isMultiTouch()?(Blockly.Touch.isTouchEvent(a)&&this.handleTouchMove(a),Blockly.longStop_()):Blockly.TouchGesture.superClass_.handleMove.call(this,a)}; Blockly.TouchGesture.prototype.handleUp=function(a){Blockly.Touch.isTouchEvent(a)&&!this.isDragging()&&this.handleTouchEnd(a);!this.isMultiTouch()||this.isDragging()?Blockly.Touch.shouldHandleEvent(a)&&Blockly.TouchGesture.superClass_.handleUp.call(this,a):(a.preventDefault(),a.stopPropagation(),this.dispose())};Blockly.TouchGesture.prototype.isMultiTouch=function(){return this.isMultiTouch_}; -Blockly.TouchGesture.prototype.dispose=function(){Blockly.TouchGesture.superClass_.dispose.call(this);this.onStartWrapper_&&Blockly.unbindEvent_(this.onStartWrapper_)};Blockly.TouchGesture.prototype.handleTouchStart=function(a){var b=Blockly.Touch.getTouchIdentifierFromEvent(a);this.cachedPoints_[b]=this.getTouchPoint(a);b=Object.keys(this.cachedPoints_);2==b.length&&(this.startDistance_=Blockly.utils.Coordinate.distance(this.cachedPoints_[b[0]],this.cachedPoints_[b[1]]),this.isMultiTouch_=!0,a.preventDefault())}; +Blockly.TouchGesture.prototype.dispose=function(){Blockly.TouchGesture.superClass_.dispose.call(this);this.onStartWrapper_&&Blockly.browserEvents.unbind(this.onStartWrapper_)}; +Blockly.TouchGesture.prototype.handleTouchStart=function(a){var b=Blockly.Touch.getTouchIdentifierFromEvent(a);this.cachedPoints_[b]=this.getTouchPoint(a);b=Object.keys(this.cachedPoints_);2==b.length&&(this.startDistance_=Blockly.utils.Coordinate.distance(this.cachedPoints_[b[0]],this.cachedPoints_[b[1]]),this.isMultiTouch_=!0,a.preventDefault())}; Blockly.TouchGesture.prototype.handleTouchMove=function(a){var b=Blockly.Touch.getTouchIdentifierFromEvent(a);this.cachedPoints_[b]=this.getTouchPoint(a);b=Object.keys(this.cachedPoints_);this.isPinchZoomEnabled_&&2===b.length?this.handlePinch_(a):Blockly.TouchGesture.superClass_.handleMove.call(this,a)}; Blockly.TouchGesture.prototype.handlePinch_=function(a){var b=Object.keys(this.cachedPoints_);b=Blockly.utils.Coordinate.distance(this.cachedPoints_[b[0]],this.cachedPoints_[b[1]])/this.startDistance_;if(0this.previousScale_){var c=b-this.previousScale_;c=0Object.keys(this.cachedPoints_).length&&(this.cachedPoints_=Object.create(null),this.previousScale_=0)};Blockly.TouchGesture.prototype.getTouchPoint=function(a){return this.startWorkspace_?new Blockly.utils.Coordinate(a.pageX?a.pageX:a.changedTouches[0].pageX,a.pageY?a.pageY:a.changedTouches[0].pageY):null};Blockly.WorkspaceAudio=function(a){this.parentWorkspace_=a;this.SOUNDS_=Object.create(null)};Blockly.WorkspaceAudio.prototype.lastSound_=null;Blockly.WorkspaceAudio.prototype.dispose=function(){this.SOUNDS_=this.parentWorkspace_=null}; Blockly.WorkspaceAudio.prototype.load=function(a,b){if(a.length){try{var c=new Blockly.utils.global.Audio}catch(h){return}for(var d,e=0;eMath.abs(b-this.oldTop_)&&1>Math.abs(c-this.oldLeft_)||(this.oldScale_=a,this.oldTop_=b,this.oldLeft_=c,a=new Blockly.Events.ViewportChange(b,c,a,this.id),Blockly.Events.fire(a))}}; +this.themeManager_=null));this.flyoutButtonCallbacks_=this.toolboxCategoryCallbacks_=this.connectionDBList=null;if(!this.options.parentWorkspace){var a=this.getParentSvg();a&&a.parentNode&&Blockly.utils.dom.removeNode(a.parentNode)}this.resizeHandlerWrapper_&&(Blockly.browserEvents.unbind(this.resizeHandlerWrapper_),this.resizeHandlerWrapper_=null)};Blockly.WorkspaceSvg.prototype.newBlock=function(a,b){return new Blockly.BlockSvg(this,a,b)}; +Blockly.WorkspaceSvg.prototype.addTrashcan=function(){if(!Blockly.Trashcan)throw Error("Missing require for Blockly.Trashcan");this.trashcan=new Blockly.Trashcan(this);var a=this.trashcan.createDom();this.svgGroup_.insertBefore(a,this.svgBlockCanvas_);this.pluginManager_.addPlugin({id:"trashcan",plugin:this.trashcan,weight:1,types:[Blockly.PluginManager.Type.POSITIONABLE]})}; +Blockly.WorkspaceSvg.prototype.addZoomControls=function(){if(!Blockly.ZoomControls)throw Error("Missing require for Blockly.ZoomControls");this.zoomControls_=new Blockly.ZoomControls(this);var a=this.zoomControls_.createDom();this.svgGroup_.appendChild(a);this.pluginManager_.addPlugin({id:"zoomControls",plugin:this.zoomControls_,weight:2,types:[Blockly.PluginManager.Type.POSITIONABLE]})}; +Blockly.WorkspaceSvg.prototype.addFlyout=function(a){var b=new Blockly.Options({parentWorkspace:this,rtl:this.RTL,oneBasedIndex:this.options.oneBasedIndex,horizontalLayout:this.horizontalLayout,renderer:this.options.renderer,rendererOverrides:this.options.rendererOverrides,move:{scrollbars:!0}});b.toolboxPosition=this.options.toolboxPosition;this.flyout_=this.horizontalLayout?new (Blockly.registry.getClassFromOptions(Blockly.registry.Type.FLYOUTS_HORIZONTAL_TOOLBOX,this.options,!0))(b):new (Blockly.registry.getClassFromOptions(Blockly.registry.Type.FLYOUTS_VERTICAL_TOOLBOX, +this.options,!0))(b);this.flyout_.autoClose=!1;this.flyout_.getWorkspace().setVisible(!0);return this.flyout_.createDom(a)};Blockly.WorkspaceSvg.prototype.getFlyout=function(a){return this.flyout_||a?this.flyout_:this.toolbox_?this.toolbox_.getFlyout():null};Blockly.WorkspaceSvg.prototype.getToolbox=function(){return this.toolbox_};Blockly.WorkspaceSvg.prototype.updateScreenCalculations_=function(){this.updateInverseScreenCTM();this.recordDeleteAreas()}; +Blockly.WorkspaceSvg.prototype.resizeContents=function(){this.resizesEnabled_&&this.rendered&&(this.scrollbar&&this.scrollbar.resize(),this.updateInverseScreenCTM())}; +Blockly.WorkspaceSvg.prototype.resize=function(){this.toolbox_&&this.toolbox_.position();this.flyout_&&this.flyout_.position();for(var a=this.pluginManager_.getPlugins(Blockly.PluginManager.Type.POSITIONABLE,!0),b=this.getMetricsManager().getUiMetrics(),c=[],d=0,e;e=a[d];d++)e.position(b,c),c.push(e.getBoundingRectangle());this.scrollbar&&this.scrollbar.resize();this.updateScreenCalculations_()}; +Blockly.WorkspaceSvg.prototype.updateScreenCalculationsIfScrolled=function(){var a=Blockly.utils.getDocumentScroll();Blockly.utils.Coordinate.equals(this.lastRecordedPageScroll_,a)||(this.lastRecordedPageScroll_=a,this.updateScreenCalculations_())};Blockly.WorkspaceSvg.prototype.getCanvas=function(){return this.svgBlockCanvas_}; +Blockly.WorkspaceSvg.prototype.setCachedParentSvgSize=function(a,b){var c=this.getParentSvg();a&&(this.cachedParentSvgSize_.width=a,c.cachedWidth_=a);b&&(this.cachedParentSvgSize_.height=b,c.cachedHeight_=b)};Blockly.WorkspaceSvg.prototype.getBubbleCanvas=function(){return this.svgBubbleCanvas_};Blockly.WorkspaceSvg.prototype.getParentSvg=function(){if(!this.cachedParentSvg_)for(var a=this.svgGroup_;a;){if("svg"==a.tagName){this.cachedParentSvg_=a;break}a=a.parentNode}return this.cachedParentSvg_}; +Blockly.WorkspaceSvg.prototype.maybeFireViewportChangeEvent=function(){if(Blockly.Events.isEnabled()){var a=this.scale,b=-this.scrollY,c=-this.scrollX;if(!(a==this.oldScale_&&1>Math.abs(b-this.oldTop_)&&1>Math.abs(c-this.oldLeft_))){var d=new (Blockly.Events.get(Blockly.Events.VIEWPORT_CHANGE))(b,c,a,this.id,this.oldScale_);this.oldScale_=a;this.oldTop_=b;this.oldLeft_=c;Blockly.Events.fire(d)}}}; Blockly.WorkspaceSvg.prototype.translate=function(a,b){if(this.useWorkspaceDragSurface_&&this.isDragSurfaceActive_)this.workspaceDragSurface_.translateSurface(a,b);else{var c="translate("+a+","+b+") scale("+this.scale+")";this.svgBlockCanvas_.setAttribute("transform",c);this.svgBubbleCanvas_.setAttribute("transform",c)}this.blockDragSurface_&&this.blockDragSurface_.translateAndScaleGroup(a,b,this.scale);this.grid_&&this.grid_.moveTo(a,b);this.maybeFireViewportChangeEvent()}; Blockly.WorkspaceSvg.prototype.resetDragSurface=function(){if(this.useWorkspaceDragSurface_){this.isDragSurfaceActive_=!1;var a=this.workspaceDragSurface_.getSurfaceTranslation();this.workspaceDragSurface_.clearAndHide(this.svgGroup_);a="translate("+a.x+","+a.y+") scale("+this.scale+")";this.svgBlockCanvas_.setAttribute("transform",a);this.svgBubbleCanvas_.setAttribute("transform",a)}}; Blockly.WorkspaceSvg.prototype.setupDragSurface=function(){if(this.useWorkspaceDragSurface_&&!this.isDragSurfaceActive_){this.isDragSurfaceActive_=!0;var a=this.svgBlockCanvas_.previousSibling,b=parseInt(this.getParentSvg().getAttribute("width"),10),c=parseInt(this.getParentSvg().getAttribute("height"),10),d=Blockly.utils.getRelativeXY(this.getCanvas());this.workspaceDragSurface_.setContentsAndShow(this.getCanvas(),this.getBubbleCanvas(),a,b,c,this.scale);this.workspaceDragSurface_.translateSurface(d.x, @@ -740,18 +722,18 @@ Blockly.WorkspaceSvg.prototype.setVisible=function(a){this.isVisible_=a;if(this. Blockly.WorkspaceSvg.prototype.render=function(){for(var a=this.getAllBlocks(!1),b=a.length-1;0<=b;b--)a[b].render(!1);if(this.currentGesture_)for(a=this.currentGesture_.getInsertionMarkers(),b=0;b=this.remainingCapacity()||(this.currentGesture_&&this.currentGesture_.cancel(),"comment"==a.tagName.toLowerCase()?this.pasteWorkspaceComment_(a):this.pasteBlock_(a))}; -Blockly.WorkspaceSvg.prototype.pasteBlock_=function(a){Blockly.Events.disable();try{var b=Blockly.Xml.domToBlock(a,this),c=this.getMarker(Blockly.navigation.MARKER_NAME).getCurNode();if(this.keyboardAccessibilityMode&&c&&c.isConnection()){var d=c.getLocation();Blockly.navigation.insertBlock(b,d);return}var e=parseInt(a.getAttribute("x"),10),f=parseInt(a.getAttribute("y"),10);if(!isNaN(e)&&!isNaN(f)){this.RTL&&(e=-e);do{a=!1;var g=this.getAllBlocks(!1);c=0;for(var h;h=g[c];c++){var k=h.getRelativeToSurfaceXY(); -if(1>=Math.abs(e-k.x)&&1>=Math.abs(f-k.y)){a=!0;break}}if(!a){var l=b.getConnections_(!1);c=0;for(var m;m=l[c];c++)if(m.closest(Blockly.SNAP_RADIUS,new Blockly.utils.Coordinate(e,f)).connection){a=!0;break}}a&&(e=this.RTL?e-Blockly.SNAP_RADIUS:e+Blockly.SNAP_RADIUS,f+=2*Blockly.SNAP_RADIUS)}while(a);b.moveBy(e,f)}}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&!b.isShadow()&&Blockly.Events.fire(new Blockly.Events.BlockCreate(b));b.select()}; +Blockly.WorkspaceSvg.prototype.pasteBlock_=function(a){Blockly.Events.disable();try{var b=Blockly.Xml.domToBlock(a,this),c=parseInt(a.getAttribute("x"),10),d=parseInt(a.getAttribute("y"),10);if(!isNaN(c)&&!isNaN(d)){this.RTL&&(c=-c);do{a=!1;for(var e=this.getAllBlocks(!1),f=0,g;g=e[f];f++){var h=g.getRelativeToSurfaceXY();if(1>=Math.abs(c-h.x)&&1>=Math.abs(d-h.y)){a=!0;break}}if(!a){var k=b.getConnections_(!1);f=0;for(var l;l=k[f];f++)if(l.closest(Blockly.SNAP_RADIUS,new Blockly.utils.Coordinate(c, +d)).connection){a=!0;break}}a&&(c=this.RTL?c-Blockly.SNAP_RADIUS:c+Blockly.SNAP_RADIUS,d+=2*Blockly.SNAP_RADIUS)}while(a);b.moveBy(c,d)}}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&!b.isShadow()&&Blockly.Events.fire(new (Blockly.Events.get(Blockly.Events.BLOCK_CREATE))(b));b.select()}; Blockly.WorkspaceSvg.prototype.pasteWorkspaceComment_=function(a){Blockly.Events.disable();try{var b=Blockly.WorkspaceCommentSvg.fromXml(a,this),c=parseInt(a.getAttribute("x"),10),d=parseInt(a.getAttribute("y"),10);isNaN(c)||isNaN(d)||(this.RTL&&(c=-c),b.moveBy(c+50,d+50))}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&Blockly.WorkspaceComment.fireCreateEvent(b);b.select()}; Blockly.WorkspaceSvg.prototype.refreshToolboxSelection=function(){var a=this.isFlyout?this.targetWorkspace:this;a&&!a.currentGesture_&&a.toolbox_&&a.toolbox_.getFlyout()&&a.toolbox_.refreshSelection()};Blockly.WorkspaceSvg.prototype.renameVariableById=function(a,b){Blockly.WorkspaceSvg.superClass_.renameVariableById.call(this,a,b);this.refreshToolboxSelection()};Blockly.WorkspaceSvg.prototype.deleteVariableById=function(a){Blockly.WorkspaceSvg.superClass_.deleteVariableById.call(this,a);this.refreshToolboxSelection()}; Blockly.WorkspaceSvg.prototype.createVariable=function(a,b,c){a=Blockly.WorkspaceSvg.superClass_.createVariable.call(this,a,b,c);this.refreshToolboxSelection();return a};Blockly.WorkspaceSvg.prototype.recordDeleteAreas=function(){this.deleteAreaTrash_=this.trashcan&&this.svgGroup_.parentNode?this.trashcan.getClientRect():null;this.deleteAreaToolbox_=this.flyout_?this.flyout_.getClientRect():this.toolbox_&&"function"==typeof this.toolbox_.getClientRect?this.toolbox_.getClientRect():null}; Blockly.WorkspaceSvg.prototype.isDeleteArea=function(a){return this.deleteAreaTrash_&&this.deleteAreaTrash_.contains(a.clientX,a.clientY)?Blockly.DELETE_AREA_TRASH:this.deleteAreaToolbox_&&this.deleteAreaToolbox_.contains(a.clientX,a.clientY)?Blockly.DELETE_AREA_TOOLBOX:Blockly.DELETE_AREA_NONE};Blockly.WorkspaceSvg.prototype.onMouseDown_=function(a){var b=this.getGesture(a);b&&b.handleWsStart(a,this)}; Blockly.WorkspaceSvg.prototype.startDrag=function(a,b){a=Blockly.utils.mouseToSvg(a,this.getParentSvg(),this.getInverseScreenCTM());a.x/=this.scale;a.y/=this.scale;this.dragDeltaXY_=Blockly.utils.Coordinate.difference(b,a)};Blockly.WorkspaceSvg.prototype.moveDrag=function(a){a=Blockly.utils.mouseToSvg(a,this.getParentSvg(),this.getInverseScreenCTM());a.x/=this.scale;a.y/=this.scale;return Blockly.utils.Coordinate.sum(this.dragDeltaXY_,a)}; Blockly.WorkspaceSvg.prototype.isDragging=function(){return null!=this.currentGesture_&&this.currentGesture_.isDragging()};Blockly.WorkspaceSvg.prototype.isDraggable=function(){return this.options.moveOptions&&this.options.moveOptions.drag}; -Blockly.WorkspaceSvg.prototype.isContentBounded=function(){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&&this.options.zoomOptions.controls||this.options.zoomOptions&&this.options.zoomOptions.wheel||this.options.zoomOptions&&this.options.zoomOptions.pinch}; -Blockly.WorkspaceSvg.prototype.isMovable=function(){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&&this.options.zoomOptions.wheel||this.options.zoomOptions&&this.options.zoomOptions.pinch}; +Blockly.WorkspaceSvg.prototype.isMovable=function(){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&&this.options.zoomOptions.wheel||this.options.zoomOptions&&this.options.zoomOptions.pinch};Blockly.WorkspaceSvg.prototype.isMovableHorizontally=function(){var a=!!this.scrollbar;return this.isMovable()&&(!a||a&&this.scrollbar.canScrollHorizontally())}; +Blockly.WorkspaceSvg.prototype.isMovableVertically=function(){var a=!!this.scrollbar;return this.isMovable()&&(!a||a&&this.scrollbar.canScrollVertically())}; Blockly.WorkspaceSvg.prototype.onMouseWheel_=function(a){if(Blockly.Gesture.inProgress())a.preventDefault(),a.stopPropagation();else{var b=this.options.zoomOptions&&this.options.zoomOptions.wheel,c=this.options.moveOptions&&this.options.moveOptions.wheel;if(b||c){var d=Blockly.utils.getScrollDeltaPixels(a);!b||!a.ctrlKey&&c?(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)):(d=-d.y/50,b=Blockly.utils.mouseToSvg(a,this.getParentSvg(),this.getInverseScreenCTM()), -this.zoom(b.x,b.y,d));a.preventDefault()}}};Blockly.WorkspaceSvg.prototype.getBlocksBoundingBox=function(){var a=this.getTopBoundedElements();if(!a.length)return new Blockly.utils.Rect(0,0,0,0);for(var b=a[0].getBoundingRectangle(),c=1;cb.bottom&&(b.bottom=d.bottom);d.leftb.right&&(b.right=d.right)}return b}; +this.zoom(b.x,b.y,d));a.preventDefault()}}};Blockly.WorkspaceSvg.prototype.getBlocksBoundingBox=function(){var a=this.getTopBoundedElements();if(!a.length)return new Blockly.utils.Rect(0,0,0,0);for(var b=a[0].getBoundingRectangle(),c=1;cb.bottom&&(b.bottom=d.bottom),d.leftb.right&&(b.right=d.right))}return b}; Blockly.WorkspaceSvg.prototype.cleanUp=function(){this.setResizesEnabled(!1);Blockly.Events.setGroup(!0);for(var a=this.getTopBlocks(!0),b=0,c=0,d;d=a[c];c++)if(d.isMovable()){var e=d.getRelativeToSurfaceXY();d.moveBy(-e.x,b-e.y);d.snapToGrid();b=d.getRelativeToSurfaceXY().y+d.getHeightWidth().height+this.renderer_.getConstants().MIN_BLOCK_HEIGHT}Blockly.Events.setGroup(!1);this.setResizesEnabled(!0)}; Blockly.WorkspaceSvg.prototype.showContextMenu=function(a){if(!this.options.readOnly&&!this.isFlyout){var b=Blockly.ContextMenuRegistry.registry.getContextMenuOptions(Blockly.ContextMenuRegistry.ScopeType.WORKSPACE,{workspace:this});this.configureContextMenu&&this.configureContextMenu(b,a);Blockly.ContextMenu.show(a,b,this.RTL)}}; Blockly.WorkspaceSvg.prototype.updateToolbox=function(a){if(a=Blockly.utils.toolbox.convertToolboxDefToJson(a)){if(!this.options.languageTree)throw Error("Existing toolbox is null. Can't create new toolbox.");if(Blockly.utils.toolbox.hasCategories(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= @@ -760,18 +742,12 @@ Blockly.WorkspaceSvg.prototype.zoom=function(a,b,c){c=Math.pow(this.options.zoom e.f;this.setScale(d)}};Blockly.WorkspaceSvg.prototype.zoomCenter=function(a){var b=this.getMetrics();if(this.flyout_){var c=b.svgWidth?b.svgWidth/2:0;b=b.svgHeight?b.svgHeight/2:0}else c=b.viewWidth/2+b.absoluteLeft,b=b.viewHeight/2+b.absoluteTop;this.zoom(c,b,a)}; Blockly.WorkspaceSvg.prototype.zoomToFit=function(){if(this.isMovable()){var a=this.getMetrics(),b=a.viewWidth;a=a.viewHeight;var c=this.getBlocksBoundingBox(),d=c.right-c.left;c=c.bottom-c.top;if(d){this.flyout_&&(this.horizontalLayout?(a+=this.flyout_.getHeight(),c+=this.flyout_.getHeight()/this.scale):(b+=this.flyout_.getWidth(),d+=this.flyout_.getWidth()/this.scale));b/=d;a/=c;Blockly.Events.disable();try{this.setScale(Math.min(b,a)),this.scrollCenter()}finally{Blockly.Events.enable()}this.maybeFireViewportChangeEvent()}}else console.warn("Tried to move a non-movable workspace. This could result in blocks becoming inaccessible.")}; Blockly.WorkspaceSvg.prototype.beginCanvasTransition=function(){Blockly.utils.dom.addClass(this.svgBlockCanvas_,"blocklyCanvasTransitioning");Blockly.utils.dom.addClass(this.svgBubbleCanvas_,"blocklyCanvasTransitioning")};Blockly.WorkspaceSvg.prototype.endCanvasTransition=function(){Blockly.utils.dom.removeClass(this.svgBlockCanvas_,"blocklyCanvasTransitioning");Blockly.utils.dom.removeClass(this.svgBubbleCanvas_,"blocklyCanvasTransitioning")}; -Blockly.WorkspaceSvg.prototype.scrollCenter=function(){if(this.isMovable()){var a=this.getMetrics(),b=(a.contentWidth-a.viewWidth)/2,c=(a.contentHeight-a.viewHeight)/2;b=-b-a.contentLeft;c=-c-a.contentTop;this.scroll(b,c)}else console.warn("Tried to move a non-movable workspace. This could result in blocks becoming inaccessible.")}; +Blockly.WorkspaceSvg.prototype.scrollCenter=function(){if(this.isMovable()){var a=this.getMetrics(),b=(a.scrollWidth-a.viewWidth)/2,c=(a.scrollHeight-a.viewHeight)/2;b=-b-a.scrollLeft;c=-c-a.scrollTop;this.scroll(b,c)}else console.warn("Tried to move a non-movable workspace. This could result in blocks becoming inaccessible.")}; Blockly.WorkspaceSvg.prototype.centerOnBlock=function(a){if(this.isMovable()){if(a=a?this.getBlockById(a):null){var b=a.getRelativeToSurfaceXY(),c=a.getHeightWidth(),d=this.scale;a=(b.x+(this.RTL?-1:1)*c.width/2)*d;b=(b.y+c.height/2)*d;c=this.getMetrics();this.scroll(-(a-c.viewWidth/2),-(b-c.viewHeight/2))}}else console.warn("Tried to move a non-movable workspace. This could result in blocks becoming inaccessible.")}; Blockly.WorkspaceSvg.prototype.setScale=function(a){this.options.zoomOptions.maxScale&&a>this.options.zoomOptions.maxScale?a=this.options.zoomOptions.maxScale:this.options.zoomOptions.minScale&&ag.viewBottom||g.contentLeftg.viewRight){h=null;f&&(h=Blockly.Events.getGroup(),Blockly.Events.setGroup(f.group));switch(f.type){case Blockly.Events.BLOCK_CREATE:case Blockly.Events.BLOCK_MOVE:var l= -e.getBlockById(f.blockId);l&&(l=l.getRootBlock());break;case Blockly.Events.COMMENT_CREATE:case Blockly.Events.COMMENT_MOVE:l=e.getCommentById(f.commentId)}if(l){k=l.getBoundingRectangle();k.height=k.bottom-k.top;k.width=k.right-k.left;var m=g.viewTop,n=g.viewBottom-k.height;n=Math.max(m,n);m=Blockly.utils.math.clamp(m,k.top,n)-k.top;n=g.viewLeft;var p=g.viewRight-k.width;g.RTL?n=Math.min(p,n):p=Math.max(n,p);g=Blockly.utils.math.clamp(n,k.left,p)-k.left;l.moveBy(g,m)}f&&(!f.group&&l&&console.warn("Moved object in bounds but there was no event group. This may break undo."), -null!==h&&Blockly.Events.setGroup(h))}}});Blockly.svgResize(e);Blockly.WidgetDiv.createDom();Blockly.DropDownDiv.createDom();Blockly.Tooltip.createDom();return e}; -Blockly.init_=function(a){var b=a.options,c=a.getParentSvg();Blockly.bindEventWithChecks_(c.parentNode,"contextmenu",null,function(e){Blockly.utils.isTargetInput(e)||e.preventDefault()});c=Blockly.bindEventWithChecks_(window,"resize",null,function(){Blockly.hideChaff(!0);Blockly.svgResize(a)});a.setResizeHandlerWrapper(c);Blockly.inject.bindDocumentEvents_();if(b.languageTree){c=a.getToolbox();var d=a.getFlyout(!0);c?c.init():d&&(d.init(a),d.show(b.languageTree),"function"==typeof d.scrollToStart&& -d.scrollToStart())}c=Blockly.Scrollbar.scrollbarThickness;b.hasTrashcan&&(c=a.trashcan.init(c));b.zoomOptions&&b.zoomOptions.controls&&a.zoomControls_.init(c);b.moveOptions&&b.moveOptions.scrollbars?(a.scrollbar=new Blockly.ScrollbarPair(a),a.scrollbar.resize()):a.setMetrics({x:.5,y:.5});b.hasSounds&&Blockly.inject.loadSounds_(b.pathToMedia,a)}; -Blockly.inject.bindDocumentEvents_=function(){Blockly.documentEventsBound_||(Blockly.bindEventWithChecks_(document,"scroll",null,function(){for(var a=Blockly.Workspace.getAll(),b=0,c;c=a[b];b++)c.updateInverseScreenCTM&&c.updateInverseScreenCTM()}),Blockly.bindEventWithChecks_(document,"keydown",null,Blockly.onKeyDown),Blockly.bindEvent_(document,"touchend",null,Blockly.longStop_),Blockly.bindEvent_(document,"touchcancel",null,Blockly.longStop_),Blockly.utils.userAgent.IPAD&&Blockly.bindEventWithChecks_(window, -"orientationchange",document,function(){Blockly.svgResize(Blockly.getMainWorkspace())}));Blockly.documentEventsBound_=!0}; -Blockly.inject.loadSounds_=function(a,b){var c=b.getAudioManager();c.load([a+"click.mp3",a+"click.wav",a+"click.ogg"],"click");c.load([a+"disconnect.wav",a+"disconnect.mp3",a+"disconnect.ogg"],"disconnect");c.load([a+"delete.mp3",a+"delete.ogg",a+"delete.wav"],"delete");var d=[];a=function(){for(;d.length;)Blockly.unbindEvent_(d.pop());c.preload()};d.push(Blockly.bindEventWithChecks_(document,"mousemove",null,a,!0));d.push(Blockly.bindEventWithChecks_(document,"touchstart",null,a,!0))};Blockly.Names=function(a,b){this.variablePrefix_=b||"";this.reservedDict_=Object.create(null);if(a)for(a=a.split(","),b=0;bb.oldScale&&Blockly.bumpTopObjectsIntoBounds_(a)}};Blockly.bumpObjectIntoBounds_=function(a,b,c){var d=c.getBoundingRectangle(),e=d.right-d.left,f=Blockly.utils.math.clamp(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=Blockly.utils.math.clamp(g,d.left,b)-d.left)||f?(c.moveBy(a,f),!0):!1}; +Blockly.init_=function(a){var b=a.options,c=a.getParentSvg();Blockly.browserEvents.conditionalBind(c.parentNode,"contextmenu",null,function(e){Blockly.utils.isTargetInput(e)||e.preventDefault()});c=Blockly.browserEvents.conditionalBind(window,"resize",null,function(){Blockly.hideChaff(!0);Blockly.svgResize(a);Blockly.bumpTopObjectsIntoBounds_(a)});a.setResizeHandlerWrapper(c);Blockly.inject.bindDocumentEvents_();if(b.languageTree){c=a.getToolbox();var d=a.getFlyout(!0);c?c.init():d&&(d.init(a),d.show(b.languageTree), +"function"==typeof d.scrollToStart&&d.scrollToStart())}c=Blockly.Scrollbar.scrollbarThickness;b.hasTrashcan&&(c=a.trashcan.init(c));b.zoomOptions&&b.zoomOptions.controls&&a.zoomControls_.init(c);b.moveOptions&&b.moveOptions.scrollbars?(a.scrollbar=new Blockly.ScrollbarPair(a,!0===b.moveOptions.scrollbars||!!b.moveOptions.scrollbars.horizontal,!0===b.moveOptions.scrollbars||!!b.moveOptions.scrollbars.vertical,"blocklyMainWorkspaceScrollbar"),a.scrollbar.resize()):a.setMetrics({x:.5,y:.5});b.hasSounds&& +Blockly.inject.loadSounds_(b.pathToMedia,a)}; +Blockly.inject.bindDocumentEvents_=function(){Blockly.documentEventsBound_||(Blockly.browserEvents.conditionalBind(document,"scroll",null,function(){for(var a=Blockly.Workspace.getAll(),b=0,c;c=a[b];b++)c.updateInverseScreenCTM&&c.updateInverseScreenCTM()}),Blockly.browserEvents.conditionalBind(document,"keydown",null,Blockly.onKeyDown),Blockly.browserEvents.bind(document,"touchend",null,Blockly.longStop_),Blockly.browserEvents.bind(document,"touchcancel",null,Blockly.longStop_),Blockly.utils.userAgent.IPAD&& +Blockly.browserEvents.conditionalBind(window,"orientationchange",document,function(){Blockly.svgResize(Blockly.getMainWorkspace())}));Blockly.documentEventsBound_=!0}; +Blockly.inject.loadSounds_=function(a,b){var c=b.getAudioManager();c.load([a+"click.mp3",a+"click.wav",a+"click.ogg"],"click");c.load([a+"disconnect.wav",a+"disconnect.mp3",a+"disconnect.ogg"],"disconnect");c.load([a+"delete.mp3",a+"delete.ogg",a+"delete.wav"],"delete");var d=[];a=function(){for(;d.length;)Blockly.browserEvents.unbind(d.pop());c.preload()};d.push(Blockly.browserEvents.conditionalBind(document,"mousemove",null,a,!0));d.push(Blockly.browserEvents.conditionalBind(document,"touchstart", +null,a,!0))};Blockly.Names=function(a,b){this.variablePrefix_=b||"";this.reservedDict_=Object.create(null);if(a)for(a=a.split(","),b=0;bb.indexOf(d))throw Error(d+" is not a valid modifier key.");}; -Blockly.ShortcutRegistry.prototype.createSerializedKey=function(a,b){var c="";if(b){this.checkModifiers_(b);for(var d in Blockly.ShortcutRegistry.modifierKeys)-1e?Blockly.WidgetDiv.positionInternal_(a,0,c.height+e):Blockly.WidgetDiv.positionInternal_(a,e,c.height)};Blockly.WidgetDiv.calculateX_=function(a,b,c,d){if(d)return b=Math.max(b.right-c.width,a.left),Math.min(b,a.right-c.width);b=Math.min(b.left,a.right-c.width);return Math.max(b,a.left)}; -Blockly.WidgetDiv.calculateY_=function(a,b,c){return b.bottom+c.height>=a.bottom?b.top-c.height:b.bottom};Blockly.VERSION="4.20201217.0";Blockly.mainWorkspace=null;Blockly.selected=null;Blockly.draggingConnections=[];Blockly.clipboardXml_=null;Blockly.clipboardSource_=null;Blockly.clipboardTypeCounts_=null;Blockly.cache3dSupported_=null;Blockly.parentContainer=null;Blockly.svgSize=function(a){return new Blockly.utils.Size(a.cachedWidth_,a.cachedHeight_)};Blockly.resizeSvgContents=function(a){a.resizeContents()}; -Blockly.svgResize=function(a){for(;a.options.parentWorkspace;)a=a.options.parentWorkspace;var b=a.getParentSvg(),c=b.parentNode;if(c){var d=c.offsetWidth;c=c.offsetHeight;b.cachedWidth_!=d&&(b.setAttribute("width",d+"px"),b.cachedWidth_=d);b.cachedHeight_!=c&&(b.setAttribute("height",c+"px"),b.cachedHeight_=c);a.resize()}};Blockly.onKeyDown=function(a){var b=Blockly.mainWorkspace;if(b&&!(Blockly.utils.isTargetInput(a)||b.rendered&&!b.isVisible()))Blockly.ShortcutRegistry.registry.onKeyDown(b,a)}; -Blockly.deleteBlock=function(a){a.workspace.isFlyout||(Blockly.Events.setGroup(!0),Blockly.hideChaff(),a.dispose(!0,!0),Blockly.Events.setGroup(!1))};Blockly.copy=function(a){if(a=a.toCopyData())Blockly.clipboardXml_=a.xml,Blockly.clipboardSource_=a.source,Blockly.clipboardTypeCounts_=a.typeCounts}; +Blockly.Variables.createVariable_=function(a,b,c,d){var e=a.getPotentialVariableMap();c||(c=Blockly.Variables.generateUniqueName(a.isFlyout?a.targetWorkspace:a));return e?e.createVariable(c,d,b):a.createVariable(c,d,b)};Blockly.Variables.getAddedVariables=function(a,b){a=a.getAllVariables();var c=[];if(b.length!=a.length)for(var d=0;d90-b||a>-90-b&&a<-90+b?!0:!1}; -Blockly.HorizontalFlyout.prototype.getClientRect=function(){if(!this.svgGroup_)return null;var a=this.svgGroup_.getBoundingClientRect(),b=a.top;return this.toolboxPosition_==Blockly.TOOLBOX_AT_TOP?new Blockly.utils.Rect(-1E9,b+a.height,-1E9,1E9):new Blockly.utils.Rect(b,1E9,-1E9,1E9)}; -Blockly.HorizontalFlyout.prototype.reflowInternal_=function(){this.workspace_.scale=this.targetWorkspace.scale;for(var a=0,b=this.workspace_.getTopBlocks(!1),c=0,d;d=b[c];c++)a=Math.max(a,d.getHeightWidth().height);a+=1.5*this.MARGIN;a*=this.workspace_.scale;a+=Blockly.Scrollbar.scrollbarThickness;if(this.height_!=a){for(c=0;d=b[c];c++)d.flyoutRect_&&this.moveRectToBlock_(d.flyoutRect_,d);this.targetWorkspace.toolboxPosition!=this.toolboxPosition_||this.toolboxPosition_!=Blockly.TOOLBOX_AT_TOP||this.targetWorkspace.getToolbox()|| -this.targetWorkspace.translate(this.targetWorkspace.scrollX,this.targetWorkspace.scrollY+a);this.height_=a;this.position()}};Blockly.registry.register(Blockly.registry.Type.FLYOUTS_HORIZONTAL_TOOLBOX,Blockly.registry.DEFAULT,Blockly.HorizontalFlyout);Blockly.VerticalFlyout=function(a){Blockly.VerticalFlyout.superClass_.constructor.call(this,a)};Blockly.utils.object.inherits(Blockly.VerticalFlyout,Blockly.Flyout);Blockly.VerticalFlyout.registryName="verticalFlyout"; -Blockly.VerticalFlyout.prototype.getMetrics_=function(){if(!this.isVisible())return null;try{var a=this.workspace_.getCanvas().getBBox()}catch(e){a={height:0,y:0,width:0,x:0}}var b=this.SCROLLBAR_PADDING,c=this.height_-2*this.SCROLLBAR_PADDING,d=this.width_;this.RTL||(d-=this.SCROLLBAR_PADDING);return{contentHeight:a.height*this.workspace_.scale+2*this.MARGIN,contentWidth:a.width*this.workspace_.scale+2*this.MARGIN,contentTop:a.y,contentLeft:a.x,viewHeight:c,viewWidth:d,viewTop:-this.workspace_.scrollY+ -a.y,viewLeft:-this.workspace_.scrollX,absoluteTop:b,absoluteLeft:0}};Blockly.VerticalFlyout.prototype.setMetrics_=function(a){var b=this.getMetrics_();b&&("number"==typeof a.y&&(this.workspace_.scrollY=-b.contentHeight*a.y),this.workspace_.translate(this.workspace_.scrollX+b.absoluteLeft,this.workspace_.scrollY+b.absoluteTop))}; -Blockly.VerticalFlyout.prototype.getX=function(){var a=this.targetWorkspace.getMetrics();return a?this.targetWorkspace.toolboxPosition==this.toolboxPosition_?a.toolboxWidth?this.toolboxPosition_==Blockly.TOOLBOX_AT_LEFT?a.toolboxWidth:a.viewWidth-this.width_:this.toolboxPosition_==Blockly.TOOLBOX_AT_LEFT?0:a.viewWidth:this.toolboxPosition_==Blockly.TOOLBOX_AT_LEFT?0:a.viewWidth+a.absoluteLeft-this.width_:0};Blockly.VerticalFlyout.prototype.getY=function(){return 0}; -Blockly.VerticalFlyout.prototype.position=function(){if(this.isVisible()){var a=this.targetWorkspace.getMetrics();if(a){this.height_=a.viewHeight;this.setBackgroundPath_(this.width_-this.CORNER_RADIUS,a.viewHeight-2*this.CORNER_RADIUS);a=this.getX();var b=this.getY();this.positionAt_(this.width_,this.height_,a,b)}}}; -Blockly.VerticalFlyout.prototype.setBackgroundPath_=function(a,b){var c=this.toolboxPosition_==Blockly.TOOLBOX_AT_RIGHT,d=a+this.CORNER_RADIUS;d=["M "+(c?d:0)+",0"];d.push("h",c?-a:a);d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,c?0:1,c?-this.CORNER_RADIUS:this.CORNER_RADIUS,this.CORNER_RADIUS);d.push("v",Math.max(0,b));d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,c?0:1,c?this.CORNER_RADIUS:-this.CORNER_RADIUS,this.CORNER_RADIUS);d.push("h",c?a:-a);d.push("z");this.svgBackground_.setAttribute("d", -d.join(" "))};Blockly.VerticalFlyout.prototype.scrollToStart=function(){this.scrollbar.set(0)};Blockly.VerticalFlyout.prototype.wheel_=function(a){var b=Blockly.utils.getScrollDeltaPixels(a);if(b.y){var c=this.getMetrics_();b=c.viewTop-c.contentTop+b.y;b=Math.min(b,c.contentHeight-c.viewHeight);b=Math.max(b,0);this.scrollbar.set(b);Blockly.WidgetDiv.hide();Blockly.DropDownDiv.hideWithoutAnimation()}a.preventDefault();a.stopPropagation()}; +Blockly.HorizontalFlyout.prototype.getClientRect=function(){if(!this.svgGroup_)return null;var a=this.svgGroup_.getBoundingClientRect(),b=a.top;return this.toolboxPosition_==Blockly.utils.toolbox.Position.TOP?new Blockly.utils.Rect(-1E9,b+a.height,-1E9,1E9):new Blockly.utils.Rect(b,1E9,-1E9,1E9)}; +Blockly.HorizontalFlyout.prototype.reflowInternal_=function(){this.workspace_.scale=this.getFlyoutScale();for(var a=0,b=this.workspace_.getTopBlocks(!1),c=0,d;d=b[c];c++)a=Math.max(a,d.getHeightWidth().height);a+=1.5*this.MARGIN;a*=this.workspace_.scale;a+=Blockly.Scrollbar.scrollbarThickness;if(this.height_!=a){for(c=0;d=b[c];c++)d.flyoutRect_&&this.moveRectToBlock_(d.flyoutRect_,d);this.targetWorkspace.toolboxPosition!=this.toolboxPosition_||this.toolboxPosition_!=Blockly.utils.toolbox.Position.TOP|| +this.targetWorkspace.getToolbox()||this.targetWorkspace.translate(this.targetWorkspace.scrollX,this.targetWorkspace.scrollY+a);this.height_=a;this.position()}};Blockly.registry.register(Blockly.registry.Type.FLYOUTS_HORIZONTAL_TOOLBOX,Blockly.registry.DEFAULT,Blockly.HorizontalFlyout);Blockly.VerticalFlyout=function(a){Blockly.VerticalFlyout.superClass_.constructor.call(this,a)};Blockly.utils.object.inherits(Blockly.VerticalFlyout,Blockly.Flyout);Blockly.VerticalFlyout.registryName="verticalFlyout"; +Blockly.VerticalFlyout.prototype.setMetrics_=function(a){if(this.isVisible()){var b=this.workspace_.getMetricsManager(),c=b.getScrollMetrics(),d=b.getViewMetrics();b=b.getAbsoluteMetrics();"number"==typeof a.y&&(this.workspace_.scrollY=-(c.top+(c.height-d.height)*a.y));this.workspace_.translate(this.workspace_.scrollX+b.left,this.workspace_.scrollY+b.top)}}; +Blockly.VerticalFlyout.prototype.getX=function(){if(!this.isVisible())return 0;var a=this.targetWorkspace.getMetricsManager(),b=a.getAbsoluteMetrics(),c=a.getViewMetrics();a=a.getToolboxMetrics();return this.targetWorkspace.toolboxPosition==this.toolboxPosition_?this.targetWorkspace.getToolbox()?this.toolboxPosition_==Blockly.utils.toolbox.Position.LEFT?a.width:c.width-this.width_:this.toolboxPosition_==Blockly.utils.toolbox.Position.LEFT?0:c.width:this.toolboxPosition_==Blockly.utils.toolbox.Position.LEFT? +0:c.width+b.left-this.width_};Blockly.VerticalFlyout.prototype.getY=function(){return 0};Blockly.VerticalFlyout.prototype.position=function(){if(this.isVisible()&&this.targetWorkspace.isVisible()){var a=this.targetWorkspace.getMetricsManager().getViewMetrics();this.height_=a.height;this.setBackgroundPath_(this.width_-this.CORNER_RADIUS,a.height-2*this.CORNER_RADIUS);a=this.getX();var b=this.getY();this.positionAt_(this.width_,this.height_,a,b)}}; +Blockly.VerticalFlyout.prototype.setBackgroundPath_=function(a,b){var c=this.toolboxPosition_==Blockly.utils.toolbox.Position.RIGHT,d=a+this.CORNER_RADIUS;d=["M "+(c?d:0)+",0"];d.push("h",c?-a:a);d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,c?0:1,c?-this.CORNER_RADIUS:this.CORNER_RADIUS,this.CORNER_RADIUS);d.push("v",Math.max(0,b));d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,c?0:1,c?this.CORNER_RADIUS:-this.CORNER_RADIUS,this.CORNER_RADIUS);d.push("h",c?a:-a);d.push("z");this.svgBackground_.setAttribute("d", +d.join(" "))};Blockly.VerticalFlyout.prototype.scrollToStart=function(){this.workspace_.scrollbar.setY(0)};Blockly.VerticalFlyout.prototype.wheel_=function(a){var b=Blockly.utils.getScrollDeltaPixels(a);if(b.y){var c=this.workspace_.getMetricsManager(),d=c.getScrollMetrics();b=c.getViewMetrics().top-d.top+b.y;this.workspace_.scrollbar.setY(b);Blockly.WidgetDiv.hide();Blockly.DropDownDiv.hideWithoutAnimation()}a.preventDefault();a.stopPropagation()}; Blockly.VerticalFlyout.prototype.layout_=function(a,b){this.workspace_.scale=this.targetWorkspace.scale;for(var c=this.MARGIN,d=this.RTL?c:c+this.tabWidth_,e=0,f;f=a[e];e++)if("block"==f.type){f=f.block;for(var g=f.getDescendants(!1),h=0,k;k=g[h];h++)k.isInFlyout=!0;f.render();g=f.getSvgRoot();h=f.getHeightWidth();k=f.outputConnection?d-this.tabWidth_:d;f.moveBy(k,c);k=this.createRect_(f,this.RTL?k-h.width:k,c,h,e);this.addBlockListeners_(g,f,k);c+=h.height+b[e]}else"button"==f.type&&(this.initFlyoutButton_(f.button, -d,c),c+=f.button.height+b[e])};Blockly.VerticalFlyout.prototype.isDragTowardWorkspace=function(a){a=Math.atan2(a.y,a.x)/Math.PI*180;var b=this.dragAngleRange_;return a-b||a<-180+b||a>180-b?!0:!1};Blockly.VerticalFlyout.prototype.getClientRect=function(){if(!this.svgGroup_)return null;var a=this.svgGroup_.getBoundingClientRect(),b=a.left;return this.toolboxPosition_==Blockly.TOOLBOX_AT_LEFT?new Blockly.utils.Rect(-1E9,1E9,-1E9,b+a.width):new Blockly.utils.Rect(-1E9,1E9,b,1E9)}; -Blockly.VerticalFlyout.prototype.reflowInternal_=function(){this.workspace_.scale=this.targetWorkspace.scale;for(var a=0,b=this.workspace_.getTopBlocks(!1),c=0,d;d=b[c];c++){var e=d.getHeightWidth().width;d.outputConnection&&(e-=this.tabWidth_);a=Math.max(a,e)}for(c=0;d=this.buttons_[c];c++)a=Math.max(a,d.width);a+=1.5*this.MARGIN+this.tabWidth_;a*=this.workspace_.scale;a+=Blockly.Scrollbar.scrollbarThickness;if(this.width_!=a){for(c=0;d=b[c];c++){if(this.RTL){e=d.getRelativeToSurfaceXY().x;var f= -a/this.workspace_.scale-this.MARGIN;d.outputConnection||(f-=this.tabWidth_);d.moveBy(f-e,0)}d.flyoutRect_&&this.moveRectToBlock_(d.flyoutRect_,d)}if(this.RTL)for(c=0;d=this.buttons_[c];c++)b=d.getPosition().y,d.moveTo(a/this.workspace_.scale-d.width-this.MARGIN-this.tabWidth_,b);this.targetWorkspace.toolboxPosition!=this.toolboxPosition_||this.toolboxPosition_!=Blockly.TOOLBOX_AT_LEFT||this.targetWorkspace.getToolbox()||this.targetWorkspace.translate(this.targetWorkspace.scrollX+a,this.targetWorkspace.scrollY); +d,c),c+=f.button.height+b[e])};Blockly.VerticalFlyout.prototype.isDragTowardWorkspace=function(a){a=Math.atan2(a.y,a.x)/Math.PI*180;var b=this.dragAngleRange_;return a-b||a<-180+b||a>180-b?!0:!1};Blockly.VerticalFlyout.prototype.getClientRect=function(){if(!this.svgGroup_)return null;var a=this.svgGroup_.getBoundingClientRect(),b=a.left;return this.toolboxPosition_==Blockly.utils.toolbox.Position.LEFT?new Blockly.utils.Rect(-1E9,1E9,-1E9,b+a.width):new Blockly.utils.Rect(-1E9,1E9,b,1E9)}; +Blockly.VerticalFlyout.prototype.reflowInternal_=function(){this.workspace_.scale=this.getFlyoutScale();for(var a=0,b=this.workspace_.getTopBlocks(!1),c=0,d;d=b[c];c++){var e=d.getHeightWidth().width;d.outputConnection&&(e-=this.tabWidth_);a=Math.max(a,e)}for(c=0;d=this.buttons_[c];c++)a=Math.max(a,d.width);a+=1.5*this.MARGIN+this.tabWidth_;a*=this.workspace_.scale;a+=Blockly.Scrollbar.scrollbarThickness;if(this.width_!=a){for(c=0;d=b[c];c++){if(this.RTL){e=d.getRelativeToSurfaceXY().x;var f=a/this.workspace_.scale- +this.MARGIN;d.outputConnection||(f-=this.tabWidth_);d.moveBy(f-e,0)}d.flyoutRect_&&this.moveRectToBlock_(d.flyoutRect_,d)}if(this.RTL)for(c=0;d=this.buttons_[c];c++)b=d.getPosition().y,d.moveTo(a/this.workspace_.scale-d.width-this.MARGIN-this.tabWidth_,b);this.targetWorkspace.toolboxPosition!=this.toolboxPosition_||this.toolboxPosition_!=Blockly.utils.toolbox.Position.LEFT||this.targetWorkspace.getToolbox()||this.targetWorkspace.translate(this.targetWorkspace.scrollX+a,this.targetWorkspace.scrollY); this.width_=a;this.position()}};Blockly.registry.register(Blockly.registry.Type.FLYOUTS_VERTICAL_TOOLBOX,Blockly.registry.DEFAULT,Blockly.VerticalFlyout);Blockly.FlyoutButton=function(a,b,c,d){this.workspace_=a;this.targetWorkspace_=b;this.text_=c.text;this.position_=new Blockly.utils.Coordinate(0,0);this.isLabel_=d;this.callbackKey_=c.callbackKey||c.callbackkey;this.cssClass_=c["web-class"]||null;this.onMouseUpWrapper_=null;this.info=c};Blockly.FlyoutButton.MARGIN_X=5;Blockly.FlyoutButton.MARGIN_Y=2;Blockly.FlyoutButton.prototype.width=0;Blockly.FlyoutButton.prototype.height=0; Blockly.FlyoutButton.prototype.createDom=function(){var a=this.isLabel_?"blocklyFlyoutLabel":"blocklyFlyoutButton";this.cssClass_&&(a+=" "+this.cssClass_);this.svgGroup_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.G,{"class":a},this.workspace_.getCanvas());if(!this.isLabel_)var b=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT,{"class":"blocklyFlyoutButtonShadow",rx:4,ry:4,x:1,y:1},this.svgGroup_);a=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT,{"class":this.isLabel_? "blocklyFlyoutLabelBackground":"blocklyFlyoutButtonBackground",rx:4,ry:4},this.svgGroup_);var c=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.TEXT,{"class":this.isLabel_?"blocklyFlyoutLabelText":"blocklyText",x:0,y:0,"text-anchor":"middle"},this.svgGroup_),d=Blockly.utils.replaceMessageReferences(this.text_);this.workspace_.RTL&&(d+="\u200f");c.textContent=d;this.isLabel_&&(this.svgText_=c,this.workspace_.getThemeManager().subscribe(this.svgText_,"flyoutForegroundColour","fill"));var e=Blockly.utils.style.getComputedStyle(c, "fontSize"),f=Blockly.utils.style.getComputedStyle(c,"fontWeight"),g=Blockly.utils.style.getComputedStyle(c,"fontFamily");this.width=Blockly.utils.dom.getFastTextWidthWithSizeString(c,e,f,g);d=Blockly.utils.dom.measureFontMetrics(d,e,f,g);this.height=d.height;this.isLabel_||(this.width+=2*Blockly.FlyoutButton.MARGIN_X,this.height+=2*Blockly.FlyoutButton.MARGIN_Y,b.setAttribute("width",this.width),b.setAttribute("height",this.height));a.setAttribute("width",this.width);a.setAttribute("height",this.height); -c.setAttribute("x",this.width/2);c.setAttribute("y",this.height/2-d.height/2+d.baseline);this.updateTransform_();this.onMouseUpWrapper_=Blockly.bindEventWithChecks_(this.svgGroup_,"mouseup",this,this.onMouseUp_);return this.svgGroup_};Blockly.FlyoutButton.prototype.show=function(){this.updateTransform_();this.svgGroup_.setAttribute("display","block")}; +c.setAttribute("x",this.width/2);c.setAttribute("y",this.height/2-d.height/2+d.baseline);this.updateTransform_();this.onMouseUpWrapper_=Blockly.browserEvents.conditionalBind(this.svgGroup_,"mouseup",this,this.onMouseUp_);return this.svgGroup_};Blockly.FlyoutButton.prototype.show=function(){this.updateTransform_();this.svgGroup_.setAttribute("display","block")}; Blockly.FlyoutButton.prototype.updateTransform_=function(){this.svgGroup_.setAttribute("transform","translate("+this.position_.x+","+this.position_.y+")")};Blockly.FlyoutButton.prototype.moveTo=function(a,b){this.position_.x=a;this.position_.y=b;this.updateTransform_()};Blockly.FlyoutButton.prototype.isLabel=function(){return this.isLabel_};Blockly.FlyoutButton.prototype.getPosition=function(){return this.position_};Blockly.FlyoutButton.prototype.getButtonText=function(){return this.text_}; -Blockly.FlyoutButton.prototype.getTargetWorkspace=function(){return this.targetWorkspace_};Blockly.FlyoutButton.prototype.dispose=function(){this.onMouseUpWrapper_&&Blockly.unbindEvent_(this.onMouseUpWrapper_);this.svgGroup_&&Blockly.utils.dom.removeNode(this.svgGroup_);this.svgText_&&this.workspace_.getThemeManager().unsubscribe(this.svgText_)}; +Blockly.FlyoutButton.prototype.getTargetWorkspace=function(){return this.targetWorkspace_};Blockly.FlyoutButton.prototype.dispose=function(){this.onMouseUpWrapper_&&Blockly.browserEvents.unbind(this.onMouseUpWrapper_);this.svgGroup_&&Blockly.utils.dom.removeNode(this.svgGroup_);this.svgText_&&this.workspace_.getThemeManager().unsubscribe(this.svgText_)}; Blockly.FlyoutButton.prototype.onMouseUp_=function(a){(a=this.targetWorkspace_.getGesture(a))&&a.cancel();this.isLabel_&&this.callbackKey_?console.warn("Labels should not have callbacks. Label text: "+this.text_):this.isLabel_||this.callbackKey_&&this.targetWorkspace_.getButtonCallback(this.callbackKey_)?this.isLabel_||this.targetWorkspace_.getButtonCallback(this.callbackKey_)(this):console.warn("Buttons should have callbacks. Button text: "+this.text_)};Blockly.Css.register(".blocklyFlyoutButton {,fill: #888;,cursor: default;,},.blocklyFlyoutButtonShadow {,fill: #666;,},.blocklyFlyoutButton:hover {,fill: #aaa;,},.blocklyFlyoutLabel {,cursor: default;,},.blocklyFlyoutLabelBackground {,opacity: 0;,}".split(","));Blockly.Generator=function(a){this.name_=a;this.FUNCTION_NAME_PLACEHOLDER_REGEXP_=new RegExp(this.FUNCTION_NAME_PLACEHOLDER_,"g")};Blockly.Generator.NAME_TYPE="generated_function";Blockly.Generator.prototype.INFINITE_LOOP_TRAP=null;Blockly.Generator.prototype.STATEMENT_PREFIX=null;Blockly.Generator.prototype.STATEMENT_SUFFIX=null;Blockly.Generator.prototype.INDENT=" ";Blockly.Generator.prototype.COMMENT_WRAP=60;Blockly.Generator.prototype.ORDER_OVERRIDES=[]; Blockly.Generator.prototype.isInitialized=null; Blockly.Generator.prototype.workspaceToCode=function(a){a||(console.warn("No workspace specified in workspaceToCode call. Guessing."),a=Blockly.getMainWorkspace());var b=[];this.init(a);a=a.getTopBlocks(!0);for(var c=0,d;d=a[c];c++){var 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, @@ -983,51 +940,51 @@ Blockly.CollapsibleToolboxCategory.prototype.createSubCategoriesDom_=function(a) Blockly.CollapsibleToolboxCategory.prototype.setExpanded=function(a){this.expanded_!=a&&((this.expanded_=a)?(this.subcategoriesDiv_.style.display="block",this.openIcon_(this.iconDom_)):(this.subcategoriesDiv_.style.display="none",this.closeIcon_(this.iconDom_)),Blockly.utils.aria.setState(this.htmlDiv_,Blockly.utils.aria.State.EXPANDED,a),this.parentToolbox_.handleToolboxItemResize())}; Blockly.CollapsibleToolboxCategory.prototype.setVisible_=function(a){this.htmlDiv_.style.display=a?"block":"none";for(var b=0,c;c=this.getChildToolboxItems()[b];b++)c.setVisible_(a);this.isHidden_=!a;this.parentToolbox_.getSelectedItem()==this&&this.parentToolbox_.clearSelection()};Blockly.CollapsibleToolboxCategory.prototype.isExpanded=function(){return this.expanded_};Blockly.CollapsibleToolboxCategory.prototype.isCollapsible=function(){return!0}; Blockly.CollapsibleToolboxCategory.prototype.onClick=function(a){this.toggleExpanded()};Blockly.CollapsibleToolboxCategory.prototype.toggleExpanded=function(){this.setExpanded(!this.expanded_)};Blockly.CollapsibleToolboxCategory.prototype.getDiv=function(){return this.htmlDiv_};Blockly.CollapsibleToolboxCategory.prototype.getChildToolboxItems=function(){return this.toolboxItems_};Blockly.registry.register(Blockly.registry.Type.TOOLBOX_ITEM,Blockly.CollapsibleToolboxCategory.registrationName,Blockly.CollapsibleToolboxCategory);Blockly.Events.ToolboxItemSelect=function(a,b,c){Blockly.Events.ToolboxItemSelect.superClass_.constructor.call(this,c);this.oldItem=a;this.newItem=b};Blockly.utils.object.inherits(Blockly.Events.ToolboxItemSelect,Blockly.Events.UiBase);Blockly.Events.ToolboxItemSelect.prototype.type=Blockly.Events.TOOLBOX_ITEM_SELECT;Blockly.Events.ToolboxItemSelect.prototype.toJson=function(){var a=Blockly.Events.ToolboxItemSelect.superClass_.toJson.call(this);a.oldItem=this.oldItem;a.newItem=this.newItem;return a}; -Blockly.Events.ToolboxItemSelect.prototype.fromJson=function(a){Blockly.Events.ToolboxItemSelect.superClass_.fromJson.call(this,a);this.oldItem=a.oldItem;this.newItem=a.newItem};Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.TOOLBOX_ITEM_SELECT,Blockly.Events.ToolboxItemSelect);Blockly.Toolbox=function(a){this.workspace_=a;this.toolboxDef_=a.options.languageTree||{contents:[]};this.horizontalLayout_=a.options.horizontalLayout;this.contentsDiv_=this.HtmlDiv=null;this.contents_=[];this.height_=this.width_=0;this.RTL=a.options.RTL;this.flyout_=null;this.contentMap_={};this.toolboxPosition=a.options.toolboxPosition;this.previouslySelectedItem_=this.selectedItem_=null;this.boundEvents_=[]}; +Blockly.Events.ToolboxItemSelect.prototype.fromJson=function(a){Blockly.Events.ToolboxItemSelect.superClass_.fromJson.call(this,a);this.oldItem=a.oldItem;this.newItem=a.newItem};Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.TOOLBOX_ITEM_SELECT,Blockly.Events.ToolboxItemSelect);Blockly.Toolbox=function(a){this.workspace_=a;this.toolboxDef_=a.options.languageTree||{contents:[]};this.horizontalLayout_=a.options.horizontalLayout;this.contentsDiv_=this.HtmlDiv=null;this.contents_=[];this.height_=this.width_=0;this.RTL=a.options.RTL;this.flyout_=null;this.contentMap_={};this.toolboxPosition=a.options.toolboxPosition;this.previouslySelectedItem_=this.selectedItem_=null;this.boundEvents_=[]};Blockly.Toolbox.prototype.onShortcut=function(a){return!1}; Blockly.Toolbox.prototype.init=function(){var a=this.workspace_,b=a.getParentSvg();this.flyout_=this.createFlyout_();this.HtmlDiv=this.createDom_(this.workspace_);Blockly.utils.dom.insertAfter(this.flyout_.createDom("svg"),b);this.flyout_.init(a);this.render(this.toolboxDef_);a=a.getThemeManager();a.subscribe(this.HtmlDiv,"toolboxBackgroundColour","background-color");a.subscribe(this.HtmlDiv,"toolboxForegroundColour","color")}; Blockly.Toolbox.prototype.createDom_=function(a){a=a.getParentSvg();var b=this.createContainer_();this.contentsDiv_=this.createContentsContainer_();this.contentsDiv_.tabIndex=0;Blockly.utils.aria.setRole(this.contentsDiv_,Blockly.utils.aria.Role.TREE);b.appendChild(this.contentsDiv_);a.parentNode.insertBefore(b,a);this.attachEvents_(b,this.contentsDiv_);return b}; Blockly.Toolbox.prototype.createContainer_=function(){var a=document.createElement("div");a.setAttribute("layout",this.isHorizontal()?"h":"v");Blockly.utils.dom.addClass(a,"blocklyToolboxDiv");Blockly.utils.dom.addClass(a,"blocklyNonSelectable");a.setAttribute("dir",this.RTL?"RTL":"LTR");return a}; -Blockly.Toolbox.prototype.createContentsContainer_=function(){var a=document.createElement("div");Blockly.utils.dom.addClass(a,"blocklyToolboxContents");this.isHorizontal()&&(a.style.flexDirection="row");return a};Blockly.Toolbox.prototype.attachEvents_=function(a,b){a=Blockly.bindEventWithChecks_(a,"click",this,this.onClick_,!1,!0);this.boundEvents_.push(a);b=Blockly.bindEventWithChecks_(b,"keydown",this,this.onKeyDown_,!1,!0);this.boundEvents_.push(b)}; +Blockly.Toolbox.prototype.createContentsContainer_=function(){var a=document.createElement("div");Blockly.utils.dom.addClass(a,"blocklyToolboxContents");this.isHorizontal()&&(a.style.flexDirection="row");return a};Blockly.Toolbox.prototype.attachEvents_=function(a,b){a=Blockly.browserEvents.conditionalBind(a,"click",this,this.onClick_,!1,!0);this.boundEvents_.push(a);b=Blockly.browserEvents.conditionalBind(b,"keydown",this,this.onKeyDown_,!1,!0);this.boundEvents_.push(b)}; Blockly.Toolbox.prototype.onClick_=function(a){if(Blockly.utils.isRightButton(a)||a.target==this.HtmlDiv)Blockly.hideChaff(!1);else{var b=a.target.getAttribute("id");b&&(b=this.getToolboxItemById(b),b.isSelectable()&&(this.setSelectedItem(b),b.onClick(a)));Blockly.hideChaff(!0)}Blockly.Touch.clearTouchIdentifier()}; Blockly.Toolbox.prototype.onKeyDown_=function(a){var b=!1;switch(a.keyCode){case Blockly.utils.KeyCodes.DOWN:b=this.selectNext_();break;case Blockly.utils.KeyCodes.UP:b=this.selectPrevious_();break;case Blockly.utils.KeyCodes.LEFT:b=this.selectParent_();break;case Blockly.utils.KeyCodes.RIGHT:b=this.selectChild_();break;case Blockly.utils.KeyCodes.ENTER:case Blockly.utils.KeyCodes.SPACE:this.selectedItem_&&this.selectedItem_.isCollapsible()&&(this.selectedItem_.toggleExpanded(),b=!0);break;default:b= !1}!b&&this.selectedItem_&&this.selectedItem_.onKeyDown&&(b=this.selectedItem_.onKeyDown(a));b&&a.preventDefault()}; -Blockly.Toolbox.prototype.createFlyout_=function(){var a=this.workspace_,b=new Blockly.Options({parentWorkspace:a,rtl:a.RTL,oneBasedIndex:a.options.oneBasedIndex,horizontalLayout:a.horizontalLayout,renderer:a.options.renderer,rendererOverrides:a.options.rendererOverrides});b.toolboxPosition=a.options.toolboxPosition;a=a.horizontalLayout?Blockly.registry.getClassFromOptions(Blockly.registry.Type.FLYOUTS_HORIZONTAL_TOOLBOX,a.options):Blockly.registry.getClassFromOptions(Blockly.registry.Type.FLYOUTS_VERTICAL_TOOLBOX, -a.options);if(!a)throw Error("Blockly.VerticalFlyout, Blockly.HorizontalFlyout or your own custom flyout must be required.");return new a(b)};Blockly.Toolbox.prototype.render=function(a){this.toolboxDef_=a;for(var b=0;b>>/handdelete.cur"), auto;',"}",".blocklyToolboxGrab {",'cursor: url("<<>>/handclosed.cur"), auto;',"cursor: grabbing;","cursor: -webkit-grabbing;","}",".blocklyToolboxDiv {","background-color: #ddd;","overflow-x: visible;","overflow-y: auto;","padding: 4px 0 4px 0;","position: absolute;","z-index: 70;","-webkit-tap-highlight-color: transparent;","}",".blocklyToolboxContents {","display: flex;","flex-wrap: wrap;","flex-direction: column;", "}",".blocklyToolboxContents:focus {","outline: none;","}"]);Blockly.registry.register(Blockly.registry.Type.TOOLBOX,Blockly.registry.DEFAULT,Blockly.Toolbox);Blockly.Events.TrashcanOpen=function(a,b){Blockly.Events.TrashcanOpen.superClass_.constructor.call(this,b);this.isOpen=a};Blockly.utils.object.inherits(Blockly.Events.TrashcanOpen,Blockly.Events.UiBase);Blockly.Events.TrashcanOpen.prototype.type=Blockly.Events.TRASHCAN_OPEN;Blockly.Events.TrashcanOpen.prototype.toJson=function(){var a=Blockly.Events.TrashcanOpen.superClass_.toJson.call(this);a.isOpen=this.isOpen;return a}; -Blockly.Events.TrashcanOpen.prototype.fromJson=function(a){Blockly.Events.TrashcanOpen.superClass_.fromJson.call(this,a);this.isOpen=a.isOpen};Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.TRASHCAN_OPEN,Blockly.Events.TrashcanOpen);Blockly.Trashcan=function(a){this.workspace_=a;this.contents_=[];this.flyout=null;if(!(0>=this.workspace_.options.maxTrashcanContents)){a=new Blockly.Options({scrollbars:!0,parentWorkspace:this.workspace_,rtl:this.workspace_.RTL,oneBasedIndex:this.workspace_.options.oneBasedIndex,renderer:this.workspace_.options.renderer,rendererOverrides:this.workspace_.options.rendererOverrides});if(this.workspace_.horizontalLayout){a.toolboxPosition=this.workspace_.toolboxPosition==Blockly.utils.toolbox.Position.TOP? -Blockly.utils.toolbox.Position.BOTTOM:Blockly.utils.toolbox.Position.TOP;if(!Blockly.HorizontalFlyout)throw Error("Missing require for Blockly.HorizontalFlyout");this.flyout=new Blockly.HorizontalFlyout(a)}else{a.toolboxPosition=this.workspace_.toolboxPosition==Blockly.utils.toolbox.Position.RIGHT?Blockly.utils.toolbox.Position.LEFT:Blockly.utils.toolbox.Position.RIGHT;if(!Blockly.VerticalFlyout)throw Error("Missing require for Blockly.VerticalFlyout");this.flyout=new Blockly.VerticalFlyout(a)}this.workspace_.addChangeListener(this.onDelete_.bind(this))}}; -Blockly.Trashcan.prototype.WIDTH_=47;Blockly.Trashcan.prototype.BODY_HEIGHT_=44;Blockly.Trashcan.prototype.LID_HEIGHT_=16;Blockly.Trashcan.prototype.MARGIN_BOTTOM_=20;Blockly.Trashcan.prototype.MARGIN_SIDE_=20;Blockly.Trashcan.prototype.MARGIN_HOTSPOT_=10;Blockly.Trashcan.prototype.SPRITE_LEFT_=0;Blockly.Trashcan.prototype.SPRITE_TOP_=32;Blockly.Trashcan.prototype.HAS_BLOCKS_LID_ANGLE_=.1;Blockly.Trashcan.ANIMATION_LENGTH_=80;Blockly.Trashcan.ANIMATION_FRAMES_=4;Blockly.Trashcan.OPACITY_MIN_=.4; -Blockly.Trashcan.OPACITY_MAX_=.8;Blockly.Trashcan.MAX_LID_ANGLE_=45;Blockly.Trashcan.prototype.isLidOpen=!1;Blockly.Trashcan.prototype.minOpenness_=0;Blockly.Trashcan.prototype.svgGroup_=null;Blockly.Trashcan.prototype.svgLid_=null;Blockly.Trashcan.prototype.lidTask_=0;Blockly.Trashcan.prototype.lidOpen_=0;Blockly.Trashcan.prototype.left_=0;Blockly.Trashcan.prototype.top_=0; +Blockly.Events.TrashcanOpen.prototype.fromJson=function(a){Blockly.Events.TrashcanOpen.superClass_.fromJson.call(this,a);this.isOpen=a.isOpen};Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.TRASHCAN_OPEN,Blockly.Events.TrashcanOpen);Blockly.IPlugin=function(){};Blockly.IPositionable=function(){};Blockly.Trashcan=function(a){this.workspace_=a;this.contents_=[];this.flyout=null;0>=this.workspace_.options.maxTrashcanContents||(a=new Blockly.Options({scrollbars:!0,parentWorkspace:this.workspace_,rtl:this.workspace_.RTL,oneBasedIndex:this.workspace_.options.oneBasedIndex,renderer:this.workspace_.options.renderer,rendererOverrides:this.workspace_.options.rendererOverrides,move:{scrollbars:!0}}),this.workspace_.horizontalLayout?(a.toolboxPosition=this.workspace_.toolboxPosition==Blockly.utils.toolbox.Position.TOP? +Blockly.utils.toolbox.Position.BOTTOM:Blockly.utils.toolbox.Position.TOP,this.flyout=new (Blockly.registry.getClassFromOptions(Blockly.registry.Type.FLYOUTS_HORIZONTAL_TOOLBOX,this.workspace_.options,!0))(a)):(a.toolboxPosition=this.workspace_.toolboxPosition==Blockly.utils.toolbox.Position.RIGHT?Blockly.utils.toolbox.Position.LEFT:Blockly.utils.toolbox.Position.RIGHT,this.flyout=new (Blockly.registry.getClassFromOptions(Blockly.registry.Type.FLYOUTS_VERTICAL_TOOLBOX,this.workspace_.options,!0))(a)), +this.workspace_.addChangeListener(this.onDelete_.bind(this)))};Blockly.Trashcan.prototype.WIDTH_=47;Blockly.Trashcan.prototype.BODY_HEIGHT_=44;Blockly.Trashcan.prototype.LID_HEIGHT_=16;Blockly.Trashcan.prototype.MARGIN_BOTTOM_=20;Blockly.Trashcan.prototype.MARGIN_SIDE_=20;Blockly.Trashcan.prototype.MARGIN_HOTSPOT_=10;Blockly.Trashcan.prototype.SPRITE_LEFT_=0;Blockly.Trashcan.prototype.SPRITE_TOP_=32;Blockly.Trashcan.prototype.HAS_BLOCKS_LID_ANGLE_=.1;Blockly.Trashcan.ANIMATION_LENGTH_=80; +Blockly.Trashcan.ANIMATION_FRAMES_=4;Blockly.Trashcan.OPACITY_MIN_=.4;Blockly.Trashcan.OPACITY_MAX_=.8;Blockly.Trashcan.MAX_LID_ANGLE_=45;Blockly.Trashcan.prototype.isLidOpen=!1;Blockly.Trashcan.prototype.minOpenness_=0;Blockly.Trashcan.prototype.svgGroup_=null;Blockly.Trashcan.prototype.svgLid_=null;Blockly.Trashcan.prototype.lidTask_=0;Blockly.Trashcan.prototype.lidOpen_=0;Blockly.Trashcan.prototype.left_=0;Blockly.Trashcan.prototype.top_=0; Blockly.Trashcan.prototype.createDom=function(){this.svgGroup_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.G,{"class":"blocklyTrash"},null);var a=String(Math.random()).substring(2);var b=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.CLIPPATH,{id:"blocklyTrashBodyClipPath"+a},this.svgGroup_);Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT,{width:this.WIDTH_,height:this.BODY_HEIGHT_,y:this.LID_HEIGHT_},b);var c=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.IMAGE,{width:Blockly.SPRITE.width, x:-this.SPRITE_LEFT_,height:Blockly.SPRITE.height,y:-this.SPRITE_TOP_,"clip-path":"url(#blocklyTrashBodyClipPath"+a+")"},this.svgGroup_);c.setAttributeNS(Blockly.utils.dom.XLINK_NS,"xlink:href",this.workspace_.options.pathToMedia+Blockly.SPRITE.url);b=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.CLIPPATH,{id:"blocklyTrashLidClipPath"+a},this.svgGroup_);Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT,{width:this.WIDTH_,height:this.LID_HEIGHT_},b);this.svgLid_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.IMAGE, -{width:Blockly.SPRITE.width,x:-this.SPRITE_LEFT_,height:Blockly.SPRITE.height,y:-this.SPRITE_TOP_,"clip-path":"url(#blocklyTrashLidClipPath"+a+")"},this.svgGroup_);this.svgLid_.setAttributeNS(Blockly.utils.dom.XLINK_NS,"xlink:href",this.workspace_.options.pathToMedia+Blockly.SPRITE.url);Blockly.bindEvent_(this.svgGroup_,"mousedown",this,this.blockMouseDownWhenOpenable_);Blockly.bindEvent_(this.svgGroup_,"mouseup",this,this.click);Blockly.bindEvent_(c,"mouseover",this,this.mouseOver_);Blockly.bindEvent_(c, -"mouseout",this,this.mouseOut_);this.animateLid_();return this.svgGroup_};Blockly.Trashcan.prototype.init=function(a){0this.minOpenness_&&1>this.lidOpen_&&(this.lidTask_=setTimeout(this.animateLid_.bind(this),Blockly.Trashcan.ANIMATION_LENGTH_/ -a))};Blockly.Trashcan.prototype.setLidAngle_=function(a){var b=this.workspace_.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT||this.workspace_.horizontalLayout&&this.workspace_.RTL;this.svgLid_.setAttribute("transform","rotate("+(b?-a:a)+","+(b?4:this.WIDTH_-4)+","+(this.LID_HEIGHT_-2)+")")};Blockly.Trashcan.prototype.setMinOpenness_=function(a){this.minOpenness_=a;this.isLidOpen||this.setLidAngle_(a*Blockly.Trashcan.MAX_LID_ANGLE_)};Blockly.Trashcan.prototype.closeLid=function(){this.setLidOpen(!1)}; -Blockly.Trashcan.prototype.click=function(){this.hasContents_()&&this.openFlyout()};Blockly.Trashcan.prototype.fireUiEvent_=function(a){a=new Blockly.Events.TrashcanOpen(a,this.workspace_.id);Blockly.Events.fire(a)};Blockly.Trashcan.prototype.blockMouseDownWhenOpenable_=function(a){!this.contentsIsOpen()&&this.hasContents_()&&a.stopPropagation()};Blockly.Trashcan.prototype.mouseOver_=function(){this.hasContents_()&&this.setLidOpen(!0)};Blockly.Trashcan.prototype.mouseOut_=function(){this.setLidOpen(!1)}; +a))};Blockly.Trashcan.prototype.setLidAngle_=function(a){var b=this.workspace_.toolboxPosition==Blockly.utils.toolbox.Position.RIGHT||this.workspace_.horizontalLayout&&this.workspace_.RTL;this.svgLid_.setAttribute("transform","rotate("+(b?-a:a)+","+(b?4:this.WIDTH_-4)+","+(this.LID_HEIGHT_-2)+")")};Blockly.Trashcan.prototype.setMinOpenness_=function(a){this.minOpenness_=a;this.isLidOpen||this.setLidAngle_(a*Blockly.Trashcan.MAX_LID_ANGLE_)};Blockly.Trashcan.prototype.closeLid=function(){this.setLidOpen(!1)}; +Blockly.Trashcan.prototype.click=function(){this.hasContents_()&&this.openFlyout()};Blockly.Trashcan.prototype.fireUiEvent_=function(a){a=new (Blockly.Events.get(Blockly.Events.TRASHCAN_OPEN))(a,this.workspace_.id);Blockly.Events.fire(a)};Blockly.Trashcan.prototype.blockMouseDownWhenOpenable_=function(a){!this.contentsIsOpen()&&this.hasContents_()&&a.stopPropagation()};Blockly.Trashcan.prototype.mouseOver_=function(){this.hasContents_()&&this.setLidOpen(!0)};Blockly.Trashcan.prototype.mouseOut_=function(){this.setLidOpen(!1)}; Blockly.Trashcan.prototype.onDelete_=function(a){if(!(0>=this.workspace_.options.maxTrashcanContents)&&a.type==Blockly.Events.BLOCK_DELETE&&a.oldXml.tagName&&"shadow"!=a.oldXml.tagName.toLowerCase()&&(a=this.cleanBlockXML_(a.oldXml),-1==this.contents_.indexOf(a))){for(this.contents_.unshift(a);this.contents_.length>this.workspace_.options.maxTrashcanContents;)this.contents_.pop();this.setMinOpenness_(this.HAS_BLOCKS_LID_ANGLE_)}}; Blockly.Trashcan.prototype.cleanBlockXML_=function(a){for(var b=a=a.cloneNode(!0);b;){b.removeAttribute&&(b.removeAttribute("x"),b.removeAttribute("y"),b.removeAttribute("id"),b.removeAttribute("disabled"),"comment"==b.nodeName&&(b.removeAttribute("h"),b.removeAttribute("w"),b.removeAttribute("pinned")));var c=b.firstChild||b.nextSibling;if(!c)for(c=b.parentNode;c;){if(c.nextSibling){c=c.nextSibling;break}c=c.parentNode}b=c}return Blockly.Xml.domToText(a)};Blockly.VariablesDynamic={};Blockly.VariablesDynamic.onCreateVariableButtonClick_String=function(a){Blockly.Variables.createVariableButtonHandler(a.getTargetWorkspace(),void 0,"String")};Blockly.VariablesDynamic.onCreateVariableButtonClick_Number=function(a){Blockly.Variables.createVariableButtonHandler(a.getTargetWorkspace(),void 0,"Number")};Blockly.VariablesDynamic.onCreateVariableButtonClick_Colour=function(a){Blockly.Variables.createVariableButtonHandler(a.getTargetWorkspace(),void 0,"Colour")}; Blockly.VariablesDynamic.flyoutCategory=function(a){var b=[],c=document.createElement("button");c.setAttribute("text",Blockly.Msg.NEW_STRING_VARIABLE);c.setAttribute("callbackKey","CREATE_VARIABLE_STRING");b.push(c);c=document.createElement("button");c.setAttribute("text",Blockly.Msg.NEW_NUMBER_VARIABLE);c.setAttribute("callbackKey","CREATE_VARIABLE_NUMBER");b.push(c);c=document.createElement("button");c.setAttribute("text",Blockly.Msg.NEW_COLOUR_VARIABLE);c.setAttribute("callbackKey","CREATE_VARIABLE_COLOUR"); @@ -1035,36 +992,71 @@ b.push(c);a.registerButtonCallback("CREATE_VARIABLE_STRING",Blockly.VariablesDyn Blockly.VariablesDynamic.flyoutCategoryBlocks=function(a){a=a.getAllVariables();var b=[];if(0image, .blocklyZoom>svg>image {","opacity: .4;","}",".blocklyZoom>image:hover, .blocklyZoom>svg>image:hover {","opacity: .6;","}",".blocklyZoom>image:active, .blocklyZoom>svg>image:active {","opacity: .8;","}"]);Blockly.Mutator=function(a){Blockly.Mutator.superClass_.constructor.call(this,null);this.quarkNames_=a};Blockly.utils.object.inherits(Blockly.Mutator,Blockly.Icon);Blockly.Mutator.prototype.workspaceWidth_=0;Blockly.Mutator.prototype.workspaceHeight_=0;Blockly.Mutator.prototype.setBlock=function(a){this.block_=a};Blockly.Mutator.prototype.getWorkspace=function(){return this.workspace_}; +y:-92,"clip-path":"url(#blocklyZoomresetClipPath"+a+")"},this.zoomResetGroup_).setAttributeNS(Blockly.utils.dom.XLINK_NS,"xlink:href",this.workspace_.options.pathToMedia+Blockly.SPRITE.url);this.onZoomResetWrapper_=Blockly.browserEvents.conditionalBind(this.zoomResetGroup_,"mousedown",null,this.resetZoom_.bind(this))}; +Blockly.ZoomControls.prototype.resetZoom_=function(a){this.workspace_.markFocused();var b=Math.log(this.workspace_.options.zoomOptions.startScale/this.workspace_.scale)/Math.log(this.workspace_.options.zoomOptions.scaleSpeed);this.workspace_.beginCanvasTransition();this.workspace_.zoomCenter(b);this.workspace_.scrollCenter();setTimeout(this.workspace_.endCanvasTransition.bind(this.workspace_),500);this.fireZoomEvent_();Blockly.Touch.clearTouchIdentifier();a.stopPropagation();a.preventDefault()}; +Blockly.ZoomControls.prototype.fireZoomEvent_=function(){var a=new (Blockly.Events.get(Blockly.Events.CLICK))(null,this.workspace_.id,"zoom_controls");Blockly.Events.fire(a)};Blockly.Css.register([".blocklyZoom>image, .blocklyZoom>svg>image {","opacity: .4;","}",".blocklyZoom>image:hover, .blocklyZoom>svg>image:hover {","opacity: .6;","}",".blocklyZoom>image:active, .blocklyZoom>svg>image:active {","opacity: .8;","}"]);Blockly.ShortcutItems={};Blockly.ShortcutItems.names={ESCAPE:"escape",DELETE:"delete",COPY:"copy",CUT:"cut",PASTE:"paste",UNDO:"undo",REDO:"redo"};Blockly.ShortcutItems.registerEscape=function(){var a={name:Blockly.ShortcutItems.names.ESCAPE,preconditionFn:function(b){return!b.options.readOnly},callback:function(){Blockly.hideChaff();return!0}};Blockly.ShortcutRegistry.registry.register(a);Blockly.ShortcutRegistry.registry.addKeyMapping(Blockly.utils.KeyCodes.ESC,a.name)}; +Blockly.ShortcutItems.registerDelete=function(){var a={name:Blockly.ShortcutItems.names.DELETE,preconditionFn:function(b){return!b.options.readOnly&&Blockly.selected&&Blockly.selected.isDeletable()},callback:function(b,c){c.preventDefault();if(Blockly.Gesture.inProgress())return!1;Blockly.deleteBlock(Blockly.selected);return!0}};Blockly.ShortcutRegistry.registry.register(a);Blockly.ShortcutRegistry.registry.addKeyMapping(Blockly.utils.KeyCodes.DELETE,a.name);Blockly.ShortcutRegistry.registry.addKeyMapping(Blockly.utils.KeyCodes.BACKSPACE, +a.name)}; +Blockly.ShortcutItems.registerCopy=function(){var a={name:Blockly.ShortcutItems.names.COPY,preconditionFn:function(c){return!c.options.readOnly&&!Blockly.Gesture.inProgress()&&Blockly.selected&&Blockly.selected.isDeletable()&&Blockly.selected.isMovable()},callback:function(){Blockly.hideChaff();Blockly.copy(Blockly.selected);return!0}};Blockly.ShortcutRegistry.registry.register(a);var b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.C,[Blockly.utils.KeyCodes.CTRL]);Blockly.ShortcutRegistry.registry.addKeyMapping(b, +a.name);b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.C,[Blockly.utils.KeyCodes.ALT]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name);b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.C,[Blockly.utils.KeyCodes.META]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name)}; +Blockly.ShortcutItems.registerCut=function(){var a={name:Blockly.ShortcutItems.names.CUT,preconditionFn:function(c){return!c.options.readOnly&&!Blockly.Gesture.inProgress()&&Blockly.selected&&Blockly.selected.isDeletable()&&Blockly.selected.isMovable()&&!Blockly.selected.workspace.isFlyout},callback:function(){Blockly.copy(Blockly.selected);Blockly.deleteBlock(Blockly.selected);return!0}};Blockly.ShortcutRegistry.registry.register(a);var b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.X, +[Blockly.utils.KeyCodes.CTRL]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name);b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.X,[Blockly.utils.KeyCodes.ALT]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name);b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.X,[Blockly.utils.KeyCodes.META]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name)}; +Blockly.ShortcutItems.registerPaste=function(){var a={name:Blockly.ShortcutItems.names.PASTE,preconditionFn:function(c){return!c.options.readOnly&&!Blockly.Gesture.inProgress()},callback:function(){return Blockly.paste()}};Blockly.ShortcutRegistry.registry.register(a);var b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.V,[Blockly.utils.KeyCodes.CTRL]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name);b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.V, +[Blockly.utils.KeyCodes.ALT]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name);b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.V,[Blockly.utils.KeyCodes.META]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name)}; +Blockly.ShortcutItems.registerUndo=function(){var a={name:Blockly.ShortcutItems.names.UNDO,preconditionFn:function(c){return!c.options.readOnly&&!Blockly.Gesture.inProgress()},callback:function(c){Blockly.hideChaff();c.undo(!1);return!0}};Blockly.ShortcutRegistry.registry.register(a);var b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.Z,[Blockly.utils.KeyCodes.CTRL]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name);b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.Z, +[Blockly.utils.KeyCodes.ALT]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name);b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.Z,[Blockly.utils.KeyCodes.META]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name)}; +Blockly.ShortcutItems.registerRedo=function(){var a={name:Blockly.ShortcutItems.names.REDO,preconditionFn:function(c){return!Blockly.Gesture.inProgress()&&!c.options.readOnly},callback:function(c){Blockly.hideChaff();c.undo(!0);return!0}};Blockly.ShortcutRegistry.registry.register(a);var b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.Z,[Blockly.utils.KeyCodes.SHIFT,Blockly.utils.KeyCodes.CTRL]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name);b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.Z, +[Blockly.utils.KeyCodes.SHIFT,Blockly.utils.KeyCodes.ALT]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name);b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.Z,[Blockly.utils.KeyCodes.SHIFT,Blockly.utils.KeyCodes.META]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name);b=Blockly.ShortcutRegistry.registry.createSerializedKey(Blockly.utils.KeyCodes.Y,[Blockly.utils.KeyCodes.CTRL]);Blockly.ShortcutRegistry.registry.addKeyMapping(b,a.name)}; +Blockly.ShortcutItems.registerDefaultShortcuts=function(){Blockly.ShortcutItems.registerEscape();Blockly.ShortcutItems.registerDelete();Blockly.ShortcutItems.registerCopy();Blockly.ShortcutItems.registerCut();Blockly.ShortcutItems.registerPaste();Blockly.ShortcutItems.registerUndo();Blockly.ShortcutItems.registerRedo()};Blockly.ShortcutItems.registerDefaultShortcuts();Blockly.ContextMenuItems={};Blockly.ContextMenuItems.registerUndo=function(){Blockly.ContextMenuRegistry.registry.register({displayText:function(){return Blockly.Msg.UNDO},preconditionFn:function(a){return 0b.length?Blockly.ContextMenuItems.deleteNext_(b,c):Blockly.confirm(Blockly.Msg.DELETE_ALL_BLOCKS.replace("%1",b.length),function(d){d&&Blockly.ContextMenuItems.deleteNext_(b,c)})}},scopeType:Blockly.ContextMenuRegistry.ScopeType.WORKSPACE,id:"workspaceDelete",weight:6})}; +Blockly.ContextMenuItems.registerWorkspaceOptions_=function(){Blockly.ContextMenuItems.registerUndo();Blockly.ContextMenuItems.registerRedo();Blockly.ContextMenuItems.registerCleanup();Blockly.ContextMenuItems.registerCollapse();Blockly.ContextMenuItems.registerExpand();Blockly.ContextMenuItems.registerDeleteAll()}; +Blockly.ContextMenuItems.registerDuplicate=function(){Blockly.ContextMenuRegistry.registry.register({displayText:function(){return Blockly.Msg.DUPLICATE_BLOCK},preconditionFn:function(a){a=a.block;return!a.isInFlyout&&a.isDeletable()&&a.isMovable()?a.isDuplicatable()?"enabled":"disabled":"hidden"},callback:function(a){a.block&&Blockly.duplicate(a.block)},scopeType:Blockly.ContextMenuRegistry.ScopeType.BLOCK,id:"blockDuplicate",weight:1})}; +Blockly.ContextMenuItems.registerComment=function(){Blockly.ContextMenuRegistry.registry.register({displayText:function(a){return a.block.getCommentIcon()?Blockly.Msg.REMOVE_COMMENT:Blockly.Msg.ADD_COMMENT},preconditionFn:function(a){a=a.block;return Blockly.utils.userAgent.IE||a.isInFlyout||!a.workspace.options.comments||a.isCollapsed()||!a.isEditable()?"hidden":"enabled"},callback:function(a){a=a.block;a.getCommentIcon()?a.setCommentText(null):a.setCommentText("")},scopeType:Blockly.ContextMenuRegistry.ScopeType.BLOCK, +id:"blockComment",weight:2})}; +Blockly.ContextMenuItems.registerInline=function(){Blockly.ContextMenuRegistry.registry.register({displayText:function(a){return a.block.getInputsInline()?Blockly.Msg.EXTERNAL_INPUTS:Blockly.Msg.INLINE_INPUTS},preconditionFn:function(a){a=a.block;if(!a.isInFlyout&&a.isMovable()&&!a.isCollapsed())for(var b=1;ba||Math.abs(this.workspaceHeight_-d)>a)this.workspaceWidth_=c,this.workspaceHeight_=d,this.bubble_.setBubbleSize(c+a,d+a),this.svgDialog_.setAttribute("width",this.workspaceWidth_), -this.svgDialog_.setAttribute("height",this.workspaceHeight_);this.block_.RTL&&(a="translate("+this.workspaceWidth_+",0)",this.workspace_.getCanvas().setAttribute("transform",a));this.workspace_.resize()};Blockly.Mutator.prototype.onBubbleMove_=function(){this.workspace_&&this.workspace_.recordDeleteAreas()}; -Blockly.Mutator.prototype.setVisible=function(a){if(a!=this.isVisible())if(Blockly.Events.fire(new Blockly.Events.BubbleOpen(this.block_,a,"mutator")),a){this.bubble_=new Blockly.Bubble(this.block_.workspace,this.createEditor_(),this.block_.pathObject.svgPath,this.iconXY_,null,null);this.bubble_.setSvgId(this.block_.id);this.bubble_.registerMoveEvent(this.onBubbleMove_.bind(this));var b=this.workspace_.options.languageTree;a=this.workspace_.getFlyout();b&&(a.init(this.workspace_),a.show(b));this.rootBlock_= -this.block_.decompose(this.workspace_);b=this.rootBlock_.getDescendants(!1);for(var c=0,d;d=b[c];c++)d.render();this.rootBlock_.setMovable(!1);this.rootBlock_.setDeletable(!1);a?(b=2*a.CORNER_RADIUS,a=this.rootBlock_.RTL?a.getWidth()+b:b):a=b=16;this.block_.RTL&&(a=-a);this.rootBlock_.moveBy(a,b);if(this.block_.saveConnections){var e=this,f=this.block_;f.saveConnections(this.rootBlock_);this.sourceListener_=function(){f.saveConnections(e.rootBlock_)};this.block_.workspace.addChangeListener(this.sourceListener_)}this.resizeBubble_(); +rtl:this.block_.RTL,horizontalLayout:!1,renderer:this.block_.workspace.options.renderer,rendererOverrides:this.block_.workspace.options.rendererOverrides});b.toolboxPosition=this.block_.RTL?Blockly.utils.toolbox.Position.RIGHT:Blockly.utils.toolbox.Position.LEFT;if(c=!!a)b.languageTree=Blockly.utils.toolbox.convertToolboxDefToJson(a);this.workspace_=new Blockly.WorkspaceSvg(b);this.workspace_.isMutator=!0;this.workspace_.addChangeListener(Blockly.Events.disableOrphans);a=c?this.workspace_.addFlyout(Blockly.utils.Svg.G): +null;b=this.workspace_.createDom("blocklyMutatorBackground");a&&b.insertBefore(a,this.workspace_.svgBlockCanvas_);this.svgDialog_.appendChild(b);return this.svgDialog_};Blockly.Mutator.prototype.updateEditable=function(){Blockly.Mutator.superClass_.updateEditable.call(this);this.block_.isInFlyout||(this.block_.isEditable()?this.iconGroup_&&Blockly.utils.dom.removeClass(this.iconGroup_,"blocklyIconGroupReadonly"):(this.setVisible(!1),this.iconGroup_&&Blockly.utils.dom.addClass(this.iconGroup_,"blocklyIconGroupReadonly")))}; +Blockly.Mutator.prototype.resizeBubble_=function(){var a=2*Blockly.Bubble.BORDER_WIDTH,b=this.workspace_.getCanvas().getBBox(),c=b.width+b.x,d=b.height+3*a,e=this.workspace_.getFlyout();if(e){var f=e.getWorkspace().getMetricsManager().getScrollMetrics();d=Math.max(d,f.height+20);c+=e.getWidth()}this.block_.RTL&&(c=-b.x);c+=3*a;if(Math.abs(this.workspaceWidth_-c)>a||Math.abs(this.workspaceHeight_-d)>a)this.workspaceWidth_=c,this.workspaceHeight_=d,this.bubble_.setBubbleSize(c+a,d+a),this.svgDialog_.setAttribute("width", +this.workspaceWidth_),this.svgDialog_.setAttribute("height",this.workspaceHeight_),this.workspace_.setCachedParentSvgSize(this.workspaceWidth_,this.workspaceHeight_);this.block_.RTL&&(a="translate("+this.workspaceWidth_+",0)",this.workspace_.getCanvas().setAttribute("transform",a));this.workspace_.resize()};Blockly.Mutator.prototype.onBubbleMove_=function(){this.workspace_&&this.workspace_.recordDeleteAreas()}; +Blockly.Mutator.prototype.setVisible=function(a){if(a!=this.isVisible())if(Blockly.Events.fire(new (Blockly.Events.get(Blockly.Events.BUBBLE_OPEN))(this.block_,a,"mutator")),a){this.bubble_=new Blockly.Bubble(this.block_.workspace,this.createEditor_(),this.block_.pathObject.svgPath,this.iconXY_,null,null);this.bubble_.setSvgId(this.block_.id);this.bubble_.registerMoveEvent(this.onBubbleMove_.bind(this));var b=this.workspace_.options.languageTree;a=this.workspace_.getFlyout();b&&(a.init(this.workspace_), +a.show(b));this.rootBlock_=this.block_.decompose(this.workspace_);b=this.rootBlock_.getDescendants(!1);for(var c=0,d;d=b[c];c++)d.render();this.rootBlock_.setMovable(!1);this.rootBlock_.setDeletable(!1);a?(b=2*a.CORNER_RADIUS,a=this.rootBlock_.RTL?a.getWidth()+b:b):a=b=16;this.block_.RTL&&(a=-a);this.rootBlock_.moveBy(a,b);if(this.block_.saveConnections){var e=this,f=this.block_;f.saveConnections(this.rootBlock_);this.sourceListener_=function(){f.saveConnections(e.rootBlock_)};this.block_.workspace.addChangeListener(this.sourceListener_)}this.resizeBubble_(); this.workspace_.addChangeListener(this.workspaceChanged_.bind(this));this.applyColour()}else this.svgDialog_=null,this.workspace_.dispose(),this.rootBlock_=this.workspace_=null,this.bubble_.dispose(),this.bubble_=null,this.workspaceHeight_=this.workspaceWidth_=0,this.sourceListener_&&(this.block_.workspace.removeChangeListener(this.sourceListener_),this.sourceListener_=null)}; Blockly.Mutator.prototype.workspaceChanged_=function(a){if(!(a.isUiEvent||a.type==Blockly.Events.CHANGE&&"disabled"==a.element)){if(!this.workspace_.isDragging()){a=this.workspace_.getTopBlocks(!1);for(var b=0,c;c=a[b];b++){var d=c.getRelativeToSurfaceXY();20>d.y&&c.moveBy(0,20-d.y);if(c.RTL){var e=-20,f=this.workspace_.getFlyout();f&&(e-=f.getWidth());d.x>e&&c.moveBy(e-d.x,0)}else 20>d.x&&c.moveBy(20-d.x,0)}}if(this.rootBlock_.workspace==this.workspace_){Blockly.Events.setGroup(!0);c=this.block_; -a=(a=c.mutationToDom())&&Blockly.Xml.domToText(a);b=c.rendered;c.rendered=!1;c.compose(this.rootBlock_);c.rendered=b;c.initSvg();Blockly.getMainWorkspace().keyboardAccessibilityMode&&Blockly.navigation.moveCursorOnBlockMutation(c);c.rendered&&c.render();b=(b=c.mutationToDom())&&Blockly.Xml.domToText(b);if(a!=b){Blockly.Events.fire(new Blockly.Events.BlockChange(c,"mutation",null,a,b));var g=Blockly.Events.getGroup();setTimeout(function(){Blockly.Events.setGroup(g);c.bumpNeighbours();Blockly.Events.setGroup(!1)}, -Blockly.BUMP_DELAY)}this.workspace_.isDragging()||this.resizeBubble_();Blockly.Events.setGroup(!1)}}};Blockly.Mutator.prototype.getFlyoutMetrics_=function(){var a=this.workspace_.getFlyout();a=a?a.getWidth():0;return{contentHeight:0,contentWidth:0,contentTop:0,contentLeft:0,viewHeight:this.workspaceHeight_,viewWidth:this.workspaceWidth_-a,viewTop:0,viewLeft:0,absoluteTop:0,absoluteLeft:this.workspace_.RTL?0:a}};Blockly.Mutator.prototype.dispose=function(){this.block_.mutator=null;Blockly.Icon.prototype.dispose.call(this)}; -Blockly.Mutator.prototype.updateBlockStyle=function(){var a=this.workspace_;if(a&&a.getAllBlocks(!1)){for(var b=a.getAllBlocks(!1),c=0;c=a&&this.sourceBlock_.outputConnection&&!b}else this.fullBlockClickTarget_=!1;this.fullBlockClickTarget_?this.clickTarget_=this.sourceBlock_.getSvgRoot():this.createBorderRect_();this.createTextElement_()}; -Blockly.FieldTextInput.prototype.doClassValidation_=function(a){return null===a||void 0===a?null:String(a)};Blockly.FieldTextInput.prototype.doValueInvalid_=function(a){this.isBeingEdited_&&(this.isTextValid_=!1,a=this.value_,this.value_=this.htmlInput_.untypedDefaultValue_,this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.BlockChange(this.sourceBlock_,"field",this.name||null,a,this.value_)))}; +Blockly.FieldTextInput.prototype.doClassValidation_=function(a){return null===a||void 0===a?null:String(a)};Blockly.FieldTextInput.prototype.doValueInvalid_=function(a){this.isBeingEdited_&&(this.isTextValid_=!1,a=this.value_,this.value_=this.htmlInput_.untypedDefaultValue_,this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new (Blockly.Events.get(Blockly.Events.BLOCK_CHANGE))(this.sourceBlock_,"field",this.name||null,a,this.value_)))}; Blockly.FieldTextInput.prototype.doValueUpdate_=function(a){this.isTextValid_=!0;this.value_=a;this.isBeingEdited_||(this.isDirty_=!0)};Blockly.FieldTextInput.prototype.applyColour=function(){this.sourceBlock_&&this.getConstants().FULL_BLOCK_FIELDS&&(this.borderRect_?this.borderRect_.setAttribute("stroke",this.sourceBlock_.style.colourTertiary):this.sourceBlock_.pathObject.svgPath.setAttribute("fill",this.getConstants().FIELD_BORDER_RECT_COLOUR))}; Blockly.FieldTextInput.prototype.render_=function(){Blockly.FieldTextInput.superClass_.render_.call(this);if(this.isBeingEdited_){this.resizeEditor_();var a=this.htmlInput_;this.isTextValid_?(Blockly.utils.dom.removeClass(a,"blocklyInvalidInput"),Blockly.utils.aria.setState(a,Blockly.utils.aria.State.INVALID,!1)):(Blockly.utils.dom.addClass(a,"blocklyInvalidInput"),Blockly.utils.aria.setState(a,Blockly.utils.aria.State.INVALID,!0))}}; Blockly.FieldTextInput.prototype.setSpellcheck=function(a){a!=this.spellcheck_&&(this.spellcheck_=a,this.htmlInput_&&this.htmlInput_.setAttribute("spellcheck",this.spellcheck_))};Blockly.FieldTextInput.prototype.showEditor_=function(a,b){this.workspace_=this.sourceBlock_.workspace;a=b||!1;!a&&(Blockly.utils.userAgent.MOBILE||Blockly.utils.userAgent.ANDROID||Blockly.utils.userAgent.IPAD)?this.showPromptEditor_():this.showInlineEditor_(a)}; @@ -1072,8 +1064,8 @@ Blockly.FieldTextInput.prototype.showPromptEditor_=function(){Blockly.prompt(Blo Blockly.FieldTextInput.prototype.widgetCreate_=function(){var a=Blockly.WidgetDiv.DIV;Blockly.utils.dom.addClass(this.getClickTarget_(),"editing");var b=document.createElement("input");b.className="blocklyHtmlInput";b.setAttribute("spellcheck",this.spellcheck_);var c=this.workspace_.getScale(),d=this.getConstants().FIELD_TEXT_FONTSIZE*c+"pt";a.style.fontSize=d;b.style.fontSize=d;d=Blockly.FieldTextInput.BORDERRADIUS*c+"px";if(this.fullBlockClickTarget_){d=this.getScaledBBox();d=(d.bottom-d.top)/2+ "px";var e=this.sourceBlock_.getParent()?this.sourceBlock_.getParent().style.colourTertiary:this.sourceBlock_.style.colourTertiary;b.style.border=1*c+"px solid "+e;a.style.borderRadius=d;a.style.transition="box-shadow 0.25s ease 0s";this.getConstants().FIELD_TEXTINPUT_BOX_SHADOW&&(a.style.boxShadow="rgba(255, 255, 255, 0.3) 0px 0px 0px "+4*c+"px")}b.style.borderRadius=d;a.appendChild(b);b.value=b.defaultValue=this.getEditorText_(this.value_);b.untypedDefaultValue_=this.value_;b.oldValue_=null;this.resizeEditor_(); this.bindInputEvents_(b);return b};Blockly.FieldTextInput.prototype.widgetDispose_=function(){this.isBeingEdited_=!1;this.isTextValid_=!0;this.forceRerender();if(this.onFinishEditing_)this.onFinishEditing_(this.value_);this.unbindInputEvents_();var a=Blockly.WidgetDiv.DIV.style;a.width="auto";a.height="auto";a.fontSize="";a.transition="";a.boxShadow="";this.htmlInput_=null;Blockly.utils.dom.removeClass(this.getClickTarget_(),"editing")}; -Blockly.FieldTextInput.prototype.bindInputEvents_=function(a){this.onKeyDownWrapper_=Blockly.bindEventWithChecks_(a,"keydown",this,this.onHtmlInputKeyDown_);this.onKeyInputWrapper_=Blockly.bindEventWithChecks_(a,"input",this,this.onHtmlInputChange_)}; -Blockly.FieldTextInput.prototype.unbindInputEvents_=function(){this.onKeyDownWrapper_&&(Blockly.unbindEvent_(this.onKeyDownWrapper_),this.onKeyDownWrapper_=null);this.onKeyInputWrapper_&&(Blockly.unbindEvent_(this.onKeyInputWrapper_),this.onKeyInputWrapper_=null)}; +Blockly.FieldTextInput.prototype.bindInputEvents_=function(a){this.onKeyDownWrapper_=Blockly.browserEvents.conditionalBind(a,"keydown",this,this.onHtmlInputKeyDown_);this.onKeyInputWrapper_=Blockly.browserEvents.conditionalBind(a,"input",this,this.onHtmlInputChange_)}; +Blockly.FieldTextInput.prototype.unbindInputEvents_=function(){this.onKeyDownWrapper_&&(Blockly.browserEvents.unbind(this.onKeyDownWrapper_),this.onKeyDownWrapper_=null);this.onKeyInputWrapper_&&(Blockly.browserEvents.unbind(this.onKeyInputWrapper_),this.onKeyInputWrapper_=null)}; Blockly.FieldTextInput.prototype.onHtmlInputKeyDown_=function(a){a.keyCode==Blockly.utils.KeyCodes.ENTER?(Blockly.WidgetDiv.hide(),Blockly.DropDownDiv.hideWithoutAnimation()):a.keyCode==Blockly.utils.KeyCodes.ESC?(this.htmlInput_.value=this.htmlInput_.defaultValue,Blockly.WidgetDiv.hide(),Blockly.DropDownDiv.hideWithoutAnimation()):a.keyCode==Blockly.utils.KeyCodes.TAB&&(Blockly.WidgetDiv.hide(),Blockly.DropDownDiv.hideWithoutAnimation(),this.sourceBlock_.tab(this,!a.shiftKey),a.preventDefault())}; Blockly.FieldTextInput.prototype.onHtmlInputChange_=function(a){a=this.htmlInput_.value;a!==this.htmlInput_.oldValue_&&(this.htmlInput_.oldValue_=a,Blockly.Events.setGroup(!0),a=this.getValueFromEditorText_(a),this.setValue(a),this.forceRerender(),this.resizeEditor_(),Blockly.Events.setGroup(!1))};Blockly.FieldTextInput.prototype.setEditorValue_=function(a){this.isDirty_=!0;this.isBeingEdited_&&(this.htmlInput_.value=this.getEditorText_(a));this.setValue(a)}; Blockly.FieldTextInput.prototype.resizeEditor_=function(){var a=Blockly.WidgetDiv.DIV,b=this.getScaledBBox();a.style.width=b.right-b.left+"px";a.style.height=b.bottom-b.top+"px";b=new Blockly.utils.Coordinate(this.sourceBlock_.RTL?b.right-a.offsetWidth:b.left,b.top);a.style.left=b.x+"px";a.style.top=b.y+"px"};Blockly.FieldTextInput.prototype.isTabNavigable=function(){return!0};Blockly.FieldTextInput.prototype.getText_=function(){return this.isBeingEdited_&&this.htmlInput_?this.htmlInput_.value:null}; @@ -1084,8 +1076,8 @@ Blockly.FieldAngle.prototype.initView=function(){Blockly.FieldAngle.superClass_. Blockly.FieldAngle.prototype.showEditor_=function(a){Blockly.FieldAngle.superClass_.showEditor_.call(this,a,Blockly.utils.userAgent.MOBILE||Blockly.utils.userAgent.ANDROID||Blockly.utils.userAgent.IPAD);a=this.dropdownCreate_();Blockly.DropDownDiv.getContentDiv().appendChild(a);Blockly.DropDownDiv.setColour(this.sourceBlock_.style.colourPrimary,this.sourceBlock_.style.colourTertiary);Blockly.DropDownDiv.showPositionedByField(this,this.dropdownDispose_.bind(this));this.updateGraph_()}; Blockly.FieldAngle.prototype.dropdownCreate_=function(){var a=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.SVG,{xmlns:Blockly.utils.dom.SVG_NS,"xmlns:html":Blockly.utils.dom.HTML_NS,"xmlns:xlink":Blockly.utils.dom.XLINK_NS,version:"1.1",height:2*Blockly.FieldAngle.HALF+"px",width:2*Blockly.FieldAngle.HALF+"px",style:"touch-action: none"},null),b=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.CIRCLE,{cx:Blockly.FieldAngle.HALF,cy:Blockly.FieldAngle.HALF,r:Blockly.FieldAngle.RADIUS,"class":"blocklyAngleCircle"}, a);this.gauge_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.PATH,{"class":"blocklyAngleGauge"},a);this.line_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.LINE,{x1:Blockly.FieldAngle.HALF,y1:Blockly.FieldAngle.HALF,"class":"blocklyAngleLine"},a);for(var c=0;360>c;c+=15)Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.LINE,{x1:Blockly.FieldAngle.HALF+Blockly.FieldAngle.RADIUS,y1:Blockly.FieldAngle.HALF,x2:Blockly.FieldAngle.HALF+Blockly.FieldAngle.RADIUS-(0==c%45?10:5),y2:Blockly.FieldAngle.HALF, -"class":"blocklyAngleMarks",transform:"rotate("+c+","+Blockly.FieldAngle.HALF+","+Blockly.FieldAngle.HALF+")"},a);this.clickWrapper_=Blockly.bindEventWithChecks_(a,"click",this,this.hide_);this.clickSurfaceWrapper_=Blockly.bindEventWithChecks_(b,"click",this,this.onMouseMove_,!0,!0);this.moveSurfaceWrapper_=Blockly.bindEventWithChecks_(b,"mousemove",this,this.onMouseMove_,!0,!0);return a}; -Blockly.FieldAngle.prototype.dropdownDispose_=function(){this.clickWrapper_&&(Blockly.unbindEvent_(this.clickWrapper_),this.clickWrapper_=null);this.clickSurfaceWrapper_&&(Blockly.unbindEvent_(this.clickSurfaceWrapper_),this.clickSurfaceWrapper_=null);this.moveSurfaceWrapper_&&(Blockly.unbindEvent_(this.moveSurfaceWrapper_),this.moveSurfaceWrapper_=null);this.line_=this.gauge_=null};Blockly.FieldAngle.prototype.hide_=function(){Blockly.DropDownDiv.hideIfOwner(this);Blockly.WidgetDiv.hide()}; +"class":"blocklyAngleMarks",transform:"rotate("+c+","+Blockly.FieldAngle.HALF+","+Blockly.FieldAngle.HALF+")"},a);this.clickWrapper_=Blockly.browserEvents.conditionalBind(a,"click",this,this.hide_);this.clickSurfaceWrapper_=Blockly.browserEvents.conditionalBind(b,"click",this,this.onMouseMove_,!0,!0);this.moveSurfaceWrapper_=Blockly.browserEvents.conditionalBind(b,"mousemove",this,this.onMouseMove_,!0,!0);return a}; +Blockly.FieldAngle.prototype.dropdownDispose_=function(){this.clickWrapper_&&(Blockly.browserEvents.unbind(this.clickWrapper_),this.clickWrapper_=null);this.clickSurfaceWrapper_&&(Blockly.browserEvents.unbind(this.clickSurfaceWrapper_),this.clickSurfaceWrapper_=null);this.moveSurfaceWrapper_&&(Blockly.browserEvents.unbind(this.moveSurfaceWrapper_),this.moveSurfaceWrapper_=null);this.line_=this.gauge_=null};Blockly.FieldAngle.prototype.hide_=function(){Blockly.DropDownDiv.hideIfOwner(this);Blockly.WidgetDiv.hide()}; Blockly.FieldAngle.prototype.onMouseMove_=function(a){var b=this.gauge_.ownerSVGElement.getBoundingClientRect(),c=a.clientX-b.left-Blockly.FieldAngle.HALF;a=a.clientY-b.top-Blockly.FieldAngle.HALF;b=Math.atan(-a/c);isNaN(b)||(b=Blockly.utils.math.toDegrees(b),0>c?b+=180:0a?0>e&&0e&&(e=0):0d-1&&fd-1&&e--:0>b?0>f&&(f=0):0Math.floor(c.length/d)-1&&(f=Math.floor(c.length/d)-1);this.setHighlightedCell_(this.picker_.childNodes[f].childNodes[e],f*d+e)}; Blockly.FieldColour.prototype.onMouseMove_=function(a){var b=(a=a.target)&&Number(a.getAttribute("data-index"));null!==b&&b!==this.highlightedIndex_&&this.setHighlightedCell_(a,b)};Blockly.FieldColour.prototype.onMouseEnter_=function(){this.picker_.focus({preventScroll:!0})};Blockly.FieldColour.prototype.onMouseLeave_=function(){this.picker_.blur();var a=this.getHighlighted_();a&&Blockly.utils.dom.removeClass(a,"blocklyColourHighlighted")}; Blockly.FieldColour.prototype.getHighlighted_=function(){var a=this.columns_||Blockly.FieldColour.COLUMNS,b=this.picker_.childNodes[Math.floor(this.highlightedIndex_/a)];return b?b.childNodes[this.highlightedIndex_%a]:null}; Blockly.FieldColour.prototype.setHighlightedCell_=function(a,b){var c=this.getHighlighted_();c&&Blockly.utils.dom.removeClass(c,"blocklyColourHighlighted");Blockly.utils.dom.addClass(a,"blocklyColourHighlighted");this.highlightedIndex_=b;Blockly.utils.aria.setState(this.picker_,Blockly.utils.aria.State.ACTIVEDESCENDANT,a.getAttribute("id"))}; Blockly.FieldColour.prototype.dropdownCreate_=function(){var a=this.columns_||Blockly.FieldColour.COLUMNS,b=this.colours_||Blockly.FieldColour.COLOURS,c=this.titles_||Blockly.FieldColour.TITLES,d=this.getValue(),e=document.createElement("table");e.className="blocklyColourTable";e.tabIndex=0;e.dir="ltr";Blockly.utils.aria.setRole(e,Blockly.utils.aria.Role.GRID);Blockly.utils.aria.setState(e,Blockly.utils.aria.State.EXPANDED,!0);Blockly.utils.aria.setState(e,Blockly.utils.aria.State.ROWCOUNT,Math.floor(b.length/ a));Blockly.utils.aria.setState(e,Blockly.utils.aria.State.COLCOUNT,a);for(var f,g=0;gtr>td {","border: .5px solid #888;","box-sizing: border-box;","cursor: pointer;","display: inline-block;","height: 20px;","padding: 0;","width: 20px;","}",".blocklyColourTable>tr>td.blocklyColourHighlighted {","border-color: #eee;","box-shadow: 2px 2px 7px 2px rgba(0,0,0,.3);","position: relative;","}",".blocklyColourSelected, .blocklyColourSelected:hover {", "border-color: #eee !important;","outline: 1px solid #333;","position: relative;","}"]);Blockly.fieldRegistry.register("field_colour",Blockly.FieldColour);Blockly.FieldDropdown=function(a,b,c){"function"!=typeof a&&Blockly.FieldDropdown.validateOptions_(a);this.menuGenerator_=a;this.suffixField=this.prefixField=this.generatedOptions_=null;this.trimOptions_();this.selectedOption_=this.getOptions(!1)[0];Blockly.FieldDropdown.superClass_.constructor.call(this,this.selectedOption_[1],b,c);this.svgArrow_=this.arrow_=this.imageElement_=this.menu_=this.selectedMenuItem_=null};Blockly.utils.object.inherits(Blockly.FieldDropdown,Blockly.Field); -Blockly.FieldDropdown.fromJson=function(a){return new Blockly.FieldDropdown(a.options,void 0,a)};Blockly.FieldDropdown.prototype.SERIALIZABLE=!0;Blockly.FieldDropdown.CHECKMARK_OVERHANG=25;Blockly.FieldDropdown.MAX_MENU_HEIGHT_VH=.45;Blockly.FieldDropdown.IMAGE_Y_OFFSET=5;Blockly.FieldDropdown.IMAGE_Y_PADDING=2*Blockly.FieldDropdown.IMAGE_Y_OFFSET;Blockly.FieldDropdown.ARROW_CHAR=Blockly.utils.userAgent.ANDROID?"\u25bc":"\u25be";Blockly.FieldDropdown.prototype.CURSOR="default"; +Blockly.FieldDropdown.fromJson=function(a){return new Blockly.FieldDropdown(a.options,void 0,a)};Blockly.FieldDropdown.prototype.fromXml=function(a){this.isOptionListDynamic()&&this.getOptions(!1);this.setValue(a.textContent)};Blockly.FieldDropdown.prototype.SERIALIZABLE=!0;Blockly.FieldDropdown.CHECKMARK_OVERHANG=25;Blockly.FieldDropdown.MAX_MENU_HEIGHT_VH=.45;Blockly.FieldDropdown.IMAGE_Y_OFFSET=5;Blockly.FieldDropdown.IMAGE_Y_PADDING=2*Blockly.FieldDropdown.IMAGE_Y_OFFSET; +Blockly.FieldDropdown.ARROW_CHAR=Blockly.utils.userAgent.ANDROID?"\u25bc":"\u25be";Blockly.FieldDropdown.prototype.CURSOR="default"; Blockly.FieldDropdown.prototype.initView=function(){this.shouldAddBorderRect_()?this.createBorderRect_():this.clickTarget_=this.sourceBlock_.getSvgRoot();this.createTextElement_();this.imageElement_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.IMAGE,{},this.fieldGroup_);this.getConstants().FIELD_DROPDOWN_SVG_ARROW?this.createSVGArrow_():this.createTextArrow_();this.borderRect_&&Blockly.utils.dom.addClass(this.borderRect_,"blocklyDropdownRect")}; Blockly.FieldDropdown.prototype.shouldAddBorderRect_=function(){return!this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW||this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW&&!this.sourceBlock_.isShadow()}; Blockly.FieldDropdown.prototype.createTextArrow_=function(){this.arrow_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.TSPAN,{},this.textElement_);this.arrow_.appendChild(document.createTextNode(this.sourceBlock_.RTL?Blockly.FieldDropdown.ARROW_CHAR+" ":" "+Blockly.FieldDropdown.ARROW_CHAR));this.sourceBlock_.RTL?this.textElement_.insertBefore(this.arrow_,this.textContent_):this.textElement_.appendChild(this.arrow_)}; @@ -1142,23 +1134,27 @@ this.getConstants().FIELD_TEXT_FONTFAMILY);a=a?this.getConstants().FIELD_BORDER_ Blockly.FieldDropdown.prototype.positionSVGArrow_=function(a,b){if(!this.svgArrow_)return 0;var c=this.borderRect_?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0,d=this.getConstants().FIELD_DROPDOWN_SVG_ARROW_PADDING,e=this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE;this.svgArrow_.setAttribute("transform","translate("+(this.sourceBlock_.RTL?c:a+d)+","+b+")");return e+d}; Blockly.FieldDropdown.prototype.getText_=function(){if(!this.selectedOption_)return null;var a=this.selectedOption_[0];return"object"==typeof a?a.alt:a}; Blockly.FieldDropdown.validateOptions_=function(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.");for(var b=!1,c=0;c=c||0>=b)throw Error("Height and width values of an image field must be greater than 0.");this.flipRtl_=!1;this.altText_="";Blockly.FieldImage.superClass_.constructor.call(this, a,null,g);g||(this.flipRtl_=!!f,this.altText_=Blockly.utils.replaceMessageReferences(d)||"");this.size_=new Blockly.utils.Size(b,c+Blockly.FieldImage.Y_PADDING);this.imageHeight_=c;this.clickHandler_=null;"function"==typeof e&&(this.clickHandler_=e);this.imageElement_=null};Blockly.utils.object.inherits(Blockly.FieldImage,Blockly.Field);Blockly.FieldImage.prototype.DEFAULT_VALUE="";Blockly.FieldImage.fromJson=function(a){return new Blockly.FieldImage(a.src,a.width,a.height,void 0,void 0,void 0,a)}; Blockly.FieldImage.Y_PADDING=1;Blockly.FieldImage.prototype.EDITABLE=!1;Blockly.FieldImage.prototype.isDirty_=!1;Blockly.FieldImage.prototype.configure_=function(a){Blockly.FieldImage.superClass_.configure_.call(this,a);this.flipRtl_=!!a.flipRtl;this.altText_=Blockly.utils.replaceMessageReferences(a.alt)||""}; Blockly.FieldImage.prototype.initView=function(){this.imageElement_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.IMAGE,{height:this.imageHeight_+"px",width:this.size_.width+"px",alt:this.altText_},this.fieldGroup_);this.imageElement_.setAttributeNS(Blockly.utils.dom.XLINK_NS,"xlink:href",this.value_);this.clickHandler_&&(this.imageElement_.style.cursor="pointer")};Blockly.FieldImage.prototype.updateSize_=function(){}; Blockly.FieldImage.prototype.doClassValidation_=function(a){return"string"!=typeof a?null:a};Blockly.FieldImage.prototype.doValueUpdate_=function(a){this.value_=a;this.imageElement_&&this.imageElement_.setAttributeNS(Blockly.utils.dom.XLINK_NS,"xlink:href",String(this.value_))};Blockly.FieldImage.prototype.getFlipRtl=function(){return this.flipRtl_};Blockly.FieldImage.prototype.setAlt=function(a){a!=this.altText_&&(this.altText_=a||"",this.imageElement_&&this.imageElement_.setAttribute("alt",this.altText_))}; -Blockly.FieldImage.prototype.showEditor_=function(){this.clickHandler_&&this.clickHandler_(this)};Blockly.FieldImage.prototype.setOnClickHandler=function(a){this.clickHandler_=a};Blockly.FieldImage.prototype.getText_=function(){return this.altText_};Blockly.fieldRegistry.register("field_image",Blockly.FieldImage);Blockly.FieldMultilineInput=function(a,b,c){Blockly.FieldMultilineInput.superClass_.constructor.call(this,a,b,c);this.textGroup_=null};Blockly.utils.object.inherits(Blockly.FieldMultilineInput,Blockly.FieldTextInput);Blockly.FieldMultilineInput.fromJson=function(a){var b=Blockly.utils.replaceMessageReferences(a.text);return new Blockly.FieldMultilineInput(b,void 0,a)};Blockly.FieldMultilineInput.prototype.toXml=function(a){a.textContent=this.getValue().replace(/\n/g," ");return a}; -Blockly.FieldMultilineInput.prototype.fromXml=function(a){this.setValue(a.textContent.replace(/ /g,"\n"))};Blockly.FieldMultilineInput.prototype.initView=function(){this.createBorderRect_();this.textGroup_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.G,{"class":"blocklyEditableText"},this.fieldGroup_)}; -Blockly.FieldMultilineInput.prototype.getDisplayText_=function(){var a=this.getText();if(!a)return Blockly.Field.NBSP;var b=a.split("\n");a="";for(var c=0;cthis.maxDisplayLength&&(d=d.substring(0,this.maxDisplayLength-4)+"...");d=d.replace(/\s/g,Blockly.Field.NBSP);a+=d;c!==b.length-1&&(a+="\n")}this.sourceBlock_.RTL&&(a+="\u200f");return a}; +Blockly.FieldImage.prototype.showEditor_=function(){this.clickHandler_&&this.clickHandler_(this)};Blockly.FieldImage.prototype.setOnClickHandler=function(a){this.clickHandler_=a};Blockly.FieldImage.prototype.getText_=function(){return this.altText_};Blockly.fieldRegistry.register("field_image",Blockly.FieldImage);Blockly.FieldMultilineInput=function(a,b,c){Blockly.FieldMultilineInput.superClass_.constructor.call(this,a,b,c);this.textGroup_=null;this.maxLines_=Infinity;this.isOverflowedY_=!1};Blockly.utils.object.inherits(Blockly.FieldMultilineInput,Blockly.FieldTextInput);Blockly.FieldMultilineInput.prototype.configure_=function(a){Blockly.FieldMultilineInput.superClass_.configure_.call(this,a);a.maxLines&&this.setMaxLines(a.maxLines)}; +Blockly.FieldMultilineInput.fromJson=function(a){var b=Blockly.utils.replaceMessageReferences(a.text);return new Blockly.FieldMultilineInput(b,void 0,a)};Blockly.FieldMultilineInput.prototype.toXml=function(a){a.textContent=this.getValue().replace(/\n/g," ");return a};Blockly.FieldMultilineInput.prototype.fromXml=function(a){this.setValue(a.textContent.replace(/ /g,"\n"))}; +Blockly.FieldMultilineInput.prototype.initView=function(){this.createBorderRect_();this.textGroup_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.G,{"class":"blocklyEditableText"},this.fieldGroup_)}; +Blockly.FieldMultilineInput.prototype.getDisplayText_=function(){var a=this.getText();if(!a)return Blockly.Field.NBSP;var b=a.split("\n");a="";for(var c=this.isOverflowedY_?this.maxLines_:b.length,d=0;dthis.maxDisplayLength?e=e.substring(0,this.maxDisplayLength-4)+"...":this.isOverflowedY_&&d===c-1&&(e=e.substring(0,e.length-3)+"...");e=e.replace(/\s/g,Blockly.Field.NBSP);a+=e;d!==c-1&&(a+="\n")}this.sourceBlock_.RTL&&(a+="\u200f");return a}; +Blockly.FieldMultilineInput.prototype.doValueUpdate_=function(a){Blockly.FieldMultilineInput.superClass_.doValueUpdate_.call(this,a);this.isOverflowedY_=this.value_.split("\n").length>this.maxLines_}; Blockly.FieldMultilineInput.prototype.render_=function(){for(var a;a=this.textGroup_.firstChild;)this.textGroup_.removeChild(a);a=this.getDisplayText_().split("\n");for(var b=0,c=0;cb&&(b=e);c+=this.getConstants().FIELD_TEXT_HEIGHT+(0b&&(b=e);c+=this.getConstants().FIELD_TEXT_HEIGHT+(0this.maxDisplayLength&&(a[d]=a[d].substring(0,this.maxDisplayLength));e.textContent=a[d];var k=Blockly.utils.dom.getFastTextWidth(e,f,g,h);k>b&&(b=k)}b+=this.htmlInput_.offsetWidth-this.htmlInput_.clientWidth}this.borderRect_&&(c+=2*this.getConstants().FIELD_BORDER_RECT_Y_PADDING,b+=2*this.getConstants().FIELD_BORDER_RECT_X_PADDING,this.borderRect_.setAttribute("width",b),this.borderRect_.setAttribute("height",c));this.size_.width= +b;this.size_.height=c;this.positionBorderRect_()};Blockly.FieldMultilineInput.prototype.showEditor_=function(a,b){Blockly.FieldMultilineInput.superClass_.showEditor_.call(this,a,b);this.forceRerender()}; Blockly.FieldMultilineInput.prototype.widgetCreate_=function(){var a=Blockly.WidgetDiv.DIV,b=this.workspace_.getScale(),c=document.createElement("textarea");c.className="blocklyHtmlInput blocklyHtmlTextAreaInput";c.setAttribute("spellcheck",this.spellcheck_);var d=this.getConstants().FIELD_TEXT_FONTSIZE*b+"pt";a.style.fontSize=d;c.style.fontSize=d;c.style.borderRadius=Blockly.FieldTextInput.BORDERRADIUS*b+"px";d=this.getConstants().FIELD_BORDER_RECT_X_PADDING*b;var e=this.getConstants().FIELD_BORDER_RECT_Y_PADDING* b/2;c.style.padding=e+"px "+d+"px "+e+"px "+d+"px";d=this.getConstants().FIELD_TEXT_HEIGHT+this.getConstants().FIELD_BORDER_RECT_Y_PADDING;c.style.lineHeight=d*b+"px";a.appendChild(c);c.value=c.defaultValue=this.getEditorText_(this.value_);c.untypedDefaultValue_=this.value_;c.oldValue_=null;Blockly.utils.userAgent.GECKO?setTimeout(this.resizeEditor_.bind(this),0):this.resizeEditor_();this.bindInputEvents_(c);return c}; -Blockly.FieldMultilineInput.prototype.onHtmlInputKeyDown_=function(a){a.keyCode!==Blockly.utils.KeyCodes.ENTER&&Blockly.FieldMultilineInput.superClass_.onHtmlInputKeyDown_.call(this,a)};Blockly.Css.register(".blocklyHtmlTextAreaInput {,font-family: monospace;,resize: none;,overflow: hidden;,height: 100%;,text-align: left;,}".split(","));Blockly.fieldRegistry.register("field_multilinetext",Blockly.FieldMultilineInput);Blockly.FieldNumber=function(a,b,c,d,e,f){this.min_=-Infinity;this.max_=Infinity;this.precision_=0;this.decimalPlaces_=null;Blockly.FieldNumber.superClass_.constructor.call(this,a,e,f);f||this.setConstraints(b,c,d)};Blockly.utils.object.inherits(Blockly.FieldNumber,Blockly.FieldTextInput);Blockly.FieldNumber.prototype.DEFAULT_VALUE=0;Blockly.FieldNumber.fromJson=function(a){return new Blockly.FieldNumber(a.value,void 0,void 0,void 0,void 0,a)};Blockly.FieldNumber.prototype.SERIALIZABLE=!0; +Blockly.FieldMultilineInput.prototype.setMaxLines=function(a){"number"===typeof a&&0rect,",a+" .blocklyEditableText>rect {","fill: "+this.FIELD_BORDER_RECT_COLOUR+";","fill-opacity: .6;","stroke: none;","}",a+" .blocklyNonEditableText>text,",a+" .blocklyEditableText>text {","fill: #000;", "}",a+" .blocklyFlyoutLabelText {","fill: #000;","}",a+" .blocklyText.blocklyBubbleText {","fill: #000;","}",a+" .blocklyEditableText:not(.editing):hover>rect {","stroke: #fff;","stroke-width: 2;","}",a+" .blocklyHtmlInput {","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+";","stroke: none;","}"]};Blockly.Events.MarkerMove=function(a,b,c,d){var e=a?a.workspace.id:void 0;d&&d.getType()==Blockly.ASTNode.types.WORKSPACE&&(e=d.getLocation().id);Blockly.Events.MarkerMove.superClass_.constructor.call(this,e);this.blockId=a?a.id:null;this.oldNode=c;this.newNode=d;this.isCursor=b};Blockly.utils.object.inherits(Blockly.Events.MarkerMove,Blockly.Events.UiBase);Blockly.Events.MarkerMove.prototype.type=Blockly.Events.MARKER_MOVE; -Blockly.Events.MarkerMove.prototype.toJson=function(){var a=Blockly.Events.MarkerMove.superClass_.toJson.call(this);a.isCursor=this.isCursor;a.blockId=this.blockId;a.oldNode=this.oldNode;a.newNode=this.newNode;return a};Blockly.Events.MarkerMove.prototype.fromJson=function(a){Blockly.Events.MarkerMove.superClass_.fromJson.call(this,a);this.isCursor=a.isCursor;this.blockId=a.blockId;this.oldNode=a.oldNode;this.newNode=a.newNode}; -Blockly.registry.register(Blockly.registry.Type.EVENT,Blockly.Events.MARKER_MOVE,Blockly.Events.MarkerMove);Blockly.blockRendering.MarkerSvg=function(a,b,c){this.workspace_=a;this.marker_=c;this.parent_=null;this.constants_=b;this.currentMarkerSvg=null;a=this.isCursor()?this.constants_.CURSOR_COLOUR:this.constants_.MARKER_COLOUR;this.colour_=c.colour||a};Blockly.blockRendering.MarkerSvg.CURSOR_CLASS="blocklyCursor";Blockly.blockRendering.MarkerSvg.MARKER_CLASS="blocklyMarker";Blockly.blockRendering.MarkerSvg.HEIGHT_MULTIPLIER=.75;Blockly.blockRendering.MarkerSvg.prototype.getSvgRoot=function(){return this.svgGroup_}; -Blockly.blockRendering.MarkerSvg.prototype.getMarker=function(){return this.marker_};Blockly.blockRendering.MarkerSvg.prototype.isCursor=function(){return"cursor"==this.marker_.type};Blockly.blockRendering.MarkerSvg.prototype.createDom=function(){var a=this.isCursor()?Blockly.blockRendering.MarkerSvg.CURSOR_CLASS:Blockly.blockRendering.MarkerSvg.MARKER_CLASS;this.svgGroup_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.G,{"class":a},null);this.createDomInternal_();return this.svgGroup_}; -Blockly.blockRendering.MarkerSvg.prototype.setParent_=function(a){this.isCursor()?(this.parent_&&this.parent_.setCursorSvg(null),a.setCursorSvg(this.getSvgRoot())):(this.parent_&&this.parent_.setMarkerSvg(null),a.setMarkerSvg(this.getSvgRoot()));this.parent_=a}; -Blockly.blockRendering.MarkerSvg.prototype.draw=function(a,b){if(b){this.constants_=this.workspace_.getRenderer().getConstants();var c=this.isCursor()?this.constants_.CURSOR_COLOUR:this.constants_.MARKER_COLOUR;this.colour_=this.marker_.colour||c;this.applyColour_(b);this.showAtLocation_(b);this.fireMarkerEvent_(a,b);a=this.currentMarkerSvg.childNodes[0];void 0!==a&&a.beginElement&&a.beginElement()}else this.hide()}; -Blockly.blockRendering.MarkerSvg.prototype.showAtLocation_=function(a){var b=a.getLocation();a.getType()==Blockly.ASTNode.types.BLOCK?this.showWithBlock_(a):a.getType()==Blockly.ASTNode.types.OUTPUT?this.showWithOutput_(a):b.type==Blockly.INPUT_VALUE?this.showWithInput_(a):b.type==Blockly.NEXT_STATEMENT?this.showWithNext_(a):a.getType()==Blockly.ASTNode.types.PREVIOUS?this.showWithPrevious_(a):a.getType()==Blockly.ASTNode.types.FIELD?this.showWithField_(a):a.getType()==Blockly.ASTNode.types.WORKSPACE? -this.showWithCoordinates_(a):a.getType()==Blockly.ASTNode.types.STACK&&this.showWithStack_(a)}; -Blockly.blockRendering.MarkerSvg.prototype.showWithBlockPrevOutput_=function(a){a=a.getSourceBlock();var b=a.width,c=a.height,d=c*Blockly.blockRendering.MarkerSvg.HEIGHT_MULTIPLIER,e=this.constants_.CURSOR_BLOCK_PADDING;if(a.previousConnection){var f=this.constants_.shapeFor(a.previousConnection);this.positionPrevious_(b,e,d,f)}else a.outputConnection?(f=this.constants_.shapeFor(a.outputConnection),this.positionOutput_(b,c,f)):this.positionBlock_(b,e,d);this.setParent_(a);this.showCurrent_()}; -Blockly.blockRendering.MarkerSvg.prototype.showWithBlock_=function(a){this.showWithBlockPrevOutput_(a)};Blockly.blockRendering.MarkerSvg.prototype.showWithPrevious_=function(a){this.showWithBlockPrevOutput_(a)};Blockly.blockRendering.MarkerSvg.prototype.showWithOutput_=function(a){this.showWithBlockPrevOutput_(a)}; -Blockly.blockRendering.MarkerSvg.prototype.showWithCoordinates_=function(a){var b=a.getWsCoordinate();a=b.x;b=b.y;this.workspace_.RTL&&(a-=this.constants_.CURSOR_WS_WIDTH);this.positionLine_(a,b,this.constants_.CURSOR_WS_WIDTH);this.setParent_(this.workspace_);this.showCurrent_()};Blockly.blockRendering.MarkerSvg.prototype.showWithField_=function(a){a=a.getLocation();var b=a.getSize().width,c=a.getSize().height;this.positionRect_(0,0,b,c);this.setParent_(a);this.showCurrent_()}; -Blockly.blockRendering.MarkerSvg.prototype.showWithInput_=function(a){a=a.getLocation();var b=a.getSourceBlock();this.positionInput_(a);this.setParent_(b);this.showCurrent_()};Blockly.blockRendering.MarkerSvg.prototype.showWithNext_=function(a){var b=a.getLocation();a=b.getSourceBlock();var c=0;b=b.getOffsetInBlock().y;var d=a.getHeightWidth().width;this.workspace_.RTL&&(c=-d);this.positionLine_(c,b,d);this.setParent_(a);this.showCurrent_()}; -Blockly.blockRendering.MarkerSvg.prototype.showWithStack_=function(a){a=a.getLocation();var b=a.getHeightWidth(),c=b.width+this.constants_.CURSOR_STACK_PADDING;b=b.height+this.constants_.CURSOR_STACK_PADDING;var d=-this.constants_.CURSOR_STACK_PADDING/2,e=-this.constants_.CURSOR_STACK_PADDING/2,f=d;this.workspace_.RTL&&(f=-(c+d));this.positionRect_(f,e,c,b);this.setParent_(a);this.showCurrent_()}; -Blockly.blockRendering.MarkerSvg.prototype.showCurrent_=function(){this.hide();this.currentMarkerSvg.style.display=""};Blockly.blockRendering.MarkerSvg.prototype.positionBlock_=function(a,b,c){a=Blockly.utils.svgPaths.moveBy(-b,c)+Blockly.utils.svgPaths.lineOnAxis("V",-b)+Blockly.utils.svgPaths.lineOnAxis("H",a+2*b)+Blockly.utils.svgPaths.lineOnAxis("V",c);this.markerBlock_.setAttribute("d",a);this.workspace_.RTL&&this.flipRtl_(this.markerBlock_);this.currentMarkerSvg=this.markerBlock_}; -Blockly.blockRendering.MarkerSvg.prototype.positionInput_=function(a){var b=a.getOffsetInBlock().x,c=a.getOffsetInBlock().y;a=Blockly.utils.svgPaths.moveTo(0,0)+this.constants_.shapeFor(a).pathDown;this.markerInput_.setAttribute("d",a);this.markerInput_.setAttribute("transform","translate("+b+","+c+")"+(this.workspace_.RTL?" scale(-1 1)":""));this.currentMarkerSvg=this.markerInput_}; -Blockly.blockRendering.MarkerSvg.prototype.positionLine_=function(a,b,c){this.markerSvgLine_.setAttribute("x",a);this.markerSvgLine_.setAttribute("y",b);this.markerSvgLine_.setAttribute("width",c);this.currentMarkerSvg=this.markerSvgLine_}; -Blockly.blockRendering.MarkerSvg.prototype.positionOutput_=function(a,b,c){a=Blockly.utils.svgPaths.moveBy(a,0)+Blockly.utils.svgPaths.lineOnAxis("h",-(a-c.width))+Blockly.utils.svgPaths.lineOnAxis("v",this.constants_.TAB_OFFSET_FROM_TOP)+c.pathDown+Blockly.utils.svgPaths.lineOnAxis("V",b)+Blockly.utils.svgPaths.lineOnAxis("H",a);this.markerBlock_.setAttribute("d",a);this.workspace_.RTL&&this.flipRtl_(this.markerBlock_);this.currentMarkerSvg=this.markerBlock_}; -Blockly.blockRendering.MarkerSvg.prototype.positionPrevious_=function(a,b,c,d){a=Blockly.utils.svgPaths.moveBy(-b,c)+Blockly.utils.svgPaths.lineOnAxis("V",-b)+Blockly.utils.svgPaths.lineOnAxis("H",this.constants_.NOTCH_OFFSET_LEFT)+d.pathLeft+Blockly.utils.svgPaths.lineOnAxis("H",a+2*b)+Blockly.utils.svgPaths.lineOnAxis("V",c);this.markerBlock_.setAttribute("d",a);this.workspace_.RTL&&this.flipRtl_(this.markerBlock_);this.currentMarkerSvg=this.markerBlock_}; -Blockly.blockRendering.MarkerSvg.prototype.positionRect_=function(a,b,c,d){this.markerSvgRect_.setAttribute("x",a);this.markerSvgRect_.setAttribute("y",b);this.markerSvgRect_.setAttribute("width",c);this.markerSvgRect_.setAttribute("height",d);this.currentMarkerSvg=this.markerSvgRect_};Blockly.blockRendering.MarkerSvg.prototype.flipRtl_=function(a){a.setAttribute("transform","scale(-1 1)")}; -Blockly.blockRendering.MarkerSvg.prototype.hide=function(){this.markerSvgLine_.style.display="none";this.markerSvgRect_.style.display="none";this.markerInput_.style.display="none";this.markerBlock_.style.display="none"};Blockly.blockRendering.MarkerSvg.prototype.fireMarkerEvent_=function(a,b){var c=b.getSourceBlock();a=new Blockly.Events.MarkerMove(c,this.isCursor(),a,b);Blockly.Events.fire(a)}; -Blockly.blockRendering.MarkerSvg.prototype.getBlinkProperties_=function(){return{attributeType:"XML",attributeName:"fill",dur:"1s",values:this.colour_+";transparent;transparent;",repeatCount:"indefinite"}}; -Blockly.blockRendering.MarkerSvg.prototype.createDomInternal_=function(){this.markerSvg_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.G,{width:this.constants_.CURSOR_WS_WIDTH,height:this.constants_.WS_CURSOR_HEIGHT},this.svgGroup_);this.markerSvgLine_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT,{width:this.constants_.CURSOR_WS_WIDTH,height:this.constants_.WS_CURSOR_HEIGHT,style:"display: none"},this.markerSvg_);this.markerSvgRect_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT, -{"class":"blocklyVerticalMarker",rx:10,ry:10,style:"display: none"},this.markerSvg_);this.markerInput_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.PATH,{transform:"",style:"display: none"},this.markerSvg_);this.markerBlock_=Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.PATH,{transform:"",style:"display: none",fill:"none","stroke-width":this.constants_.CURSOR_STROKE_WIDTH},this.markerSvg_);if(this.isCursor()){var a=this.getBlinkProperties_();Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.ANIMATE, -a,this.markerSvgLine_);Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.ANIMATE,a,this.markerInput_);a.attributeName="stroke";Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.ANIMATE,a,this.markerBlock_)}return this.markerSvg_}; -Blockly.blockRendering.MarkerSvg.prototype.applyColour_=function(a){this.markerSvgLine_.setAttribute("fill",this.colour_);this.markerSvgRect_.setAttribute("stroke",this.colour_);this.markerInput_.setAttribute("fill",this.colour_);this.markerBlock_.setAttribute("stroke",this.colour_);this.isCursor()&&(a=this.colour_+";transparent;transparent;",this.markerSvgLine_.firstChild.setAttribute("values",a),this.markerInput_.firstChild.setAttribute("values",a),this.markerBlock_.firstChild.setAttribute("values", -a))};Blockly.blockRendering.MarkerSvg.prototype.dispose=function(){this.svgGroup_&&Blockly.utils.dom.removeNode(this.svgGroup_)};Blockly.blockRendering.Types={NONE:0,FIELD:1,HAT:2,ICON:4,SPACER:8,BETWEEN_ROW_SPACER:16,IN_ROW_SPACER:32,EXTERNAL_VALUE_INPUT:64,INPUT:128,INLINE_INPUT:256,STATEMENT_INPUT:512,CONNECTION:1024,PREVIOUS_CONNECTION:2048,NEXT_CONNECTION:4096,OUTPUT_CONNECTION:8192,CORNER:16384,LEFT_SQUARE_CORNER:32768,LEFT_ROUND_CORNER:65536,RIGHT_SQUARE_CORNER:131072,RIGHT_ROUND_CORNER:262144,JAGGED_EDGE:524288,ROW:1048576,TOP_ROW:2097152,BOTTOM_ROW:4194304,INPUT_ROW:8388608}; +"fill-opacity: .5;","}",a+" .blocklyReplaceable .blocklyPathLight,",a+" .blocklyReplaceable .blocklyPathDark {","display: none;","}",a+" .blocklyInsertionMarker>.blocklyPath {","fill-opacity: "+this.INSERTION_MARKER_OPACITY+";","stroke: none;","}"]};Blockly.blockRendering.Types={NONE:0,FIELD:1,HAT:2,ICON:4,SPACER:8,BETWEEN_ROW_SPACER:16,IN_ROW_SPACER:32,EXTERNAL_VALUE_INPUT:64,INPUT:128,INLINE_INPUT:256,STATEMENT_INPUT:512,CONNECTION:1024,PREVIOUS_CONNECTION:2048,NEXT_CONNECTION:4096,OUTPUT_CONNECTION:8192,CORNER:16384,LEFT_SQUARE_CORNER:32768,LEFT_ROUND_CORNER:65536,RIGHT_SQUARE_CORNER:131072,RIGHT_ROUND_CORNER:262144,JAGGED_EDGE:524288,ROW:1048576,TOP_ROW:2097152,BOTTOM_ROW:4194304,INPUT_ROW:8388608}; Blockly.blockRendering.Types.LEFT_CORNER=Blockly.blockRendering.Types.LEFT_SQUARE_CORNER|Blockly.blockRendering.Types.LEFT_ROUND_CORNER;Blockly.blockRendering.Types.RIGHT_CORNER=Blockly.blockRendering.Types.RIGHT_SQUARE_CORNER|Blockly.blockRendering.Types.RIGHT_ROUND_CORNER;Blockly.blockRendering.Types.nextTypeValue_=16777216; Blockly.blockRendering.Types.getType=function(a){Object.prototype.hasOwnProperty.call(Blockly.blockRendering.Types,a)||(Blockly.blockRendering.Types[a]=Blockly.blockRendering.Types.nextTypeValue_,Blockly.blockRendering.Types.nextTypeValue_<<=1);return Blockly.blockRendering.Types[a]};Blockly.blockRendering.Types.isField=function(a){return a.type&Blockly.blockRendering.Types.FIELD};Blockly.blockRendering.Types.isHat=function(a){return a.type&Blockly.blockRendering.Types.HAT}; Blockly.blockRendering.Types.isIcon=function(a){return a.type&Blockly.blockRendering.Types.ICON};Blockly.blockRendering.Types.isSpacer=function(a){return a.type&Blockly.blockRendering.Types.SPACER};Blockly.blockRendering.Types.isInRowSpacer=function(a){return a.type&Blockly.blockRendering.Types.IN_ROW_SPACER};Blockly.blockRendering.Types.isInput=function(a){return a.type&Blockly.blockRendering.Types.INPUT};Blockly.blockRendering.Types.isExternalInput=function(a){return a.type&Blockly.blockRendering.Types.EXTERNAL_VALUE_INPUT}; @@ -1271,26 +1242,39 @@ a;this.widthWithConnectedBlocks=this.width+a};Blockly.blockRendering.InputRow.pr Blockly.blockRendering.RenderInfo.prototype.createRows_=function(){this.populateTopRow_();this.rows.push(this.topRow);var a=new Blockly.blockRendering.InputRow(this.constants_);this.inputRows.push(a);var b=this.block_.getIcons();if(b.length)for(var c=0,d;d=b[c];c++){var e=new Blockly.blockRendering.Icon(this.constants_,d);this.isCollapsed&&d.collapseHidden?this.hiddenIcons.push(e):a.elements.push(e)}d=null;for(c=0;b=this.block_.inputList[c];c++)if(b.isVisible()){this.shouldStartNewRow_(b,d)&&(this.rows.push(a), a=new Blockly.blockRendering.InputRow(this.constants_),this.inputRows.push(a));for(d=0;e=b.fieldRow[d];d++)a.elements.push(new Blockly.blockRendering.Field(this.constants_,e,b));this.addInput_(b,a);d=b}this.isCollapsed&&(a.hasJaggedEdge=!0,a.elements.push(new Blockly.blockRendering.JaggedEdge(this.constants_)));(a.elements.length||a.hasDummyInput)&&this.rows.push(a);this.populateBottomRow_();this.rows.push(this.bottomRow)}; Blockly.blockRendering.RenderInfo.prototype.populateTopRow_=function(){var a=!!this.block_.previousConnection,b=(this.block_.hat?"cap"===this.block_.hat:this.constants_.ADD_START_HATS)&&!this.outputConnection&&!a;this.topRow.hasLeftSquareCorner(this.block_)?this.topRow.elements.push(new Blockly.blockRendering.SquareCorner(this.constants_)):this.topRow.elements.push(new Blockly.blockRendering.RoundCorner(this.constants_));b?(a=new Blockly.blockRendering.Hat(this.constants_),this.topRow.elements.push(a), -this.topRow.capline=a.ascenderHeight):a&&(this.topRow.hasPreviousConnection=!0,this.topRow.connection=new Blockly.blockRendering.PreviousConnection(this.constants_,this.block_.previousConnection),this.topRow.elements.push(this.topRow.connection));this.block_.inputList.length&&this.block_.inputList[0].type==Blockly.NEXT_STATEMENT&&!this.block_.isCollapsed()?this.topRow.minHeight=this.constants_.TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT:this.topRow.minHeight=this.constants_.TOP_ROW_MIN_HEIGHT;this.topRow.hasRightSquareCorner(this.block_)? +this.topRow.capline=a.ascenderHeight):a&&(this.topRow.hasPreviousConnection=!0,this.topRow.connection=new Blockly.blockRendering.PreviousConnection(this.constants_,this.block_.previousConnection),this.topRow.elements.push(this.topRow.connection));this.block_.inputList.length&&this.block_.inputList[0].type==Blockly.inputTypes.STATEMENT&&!this.block_.isCollapsed()?this.topRow.minHeight=this.constants_.TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT:this.topRow.minHeight=this.constants_.TOP_ROW_MIN_HEIGHT;this.topRow.hasRightSquareCorner(this.block_)? this.topRow.elements.push(new Blockly.blockRendering.SquareCorner(this.constants_,"right")):this.topRow.elements.push(new Blockly.blockRendering.RoundCorner(this.constants_,"right"))}; -Blockly.blockRendering.RenderInfo.prototype.populateBottomRow_=function(){this.bottomRow.hasNextConnection=!!this.block_.nextConnection;this.bottomRow.minHeight=this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1].type==Blockly.NEXT_STATEMENT?this.constants_.BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT:this.constants_.BOTTOM_ROW_MIN_HEIGHT;this.bottomRow.hasLeftSquareCorner(this.block_)?this.bottomRow.elements.push(new Blockly.blockRendering.SquareCorner(this.constants_)): +Blockly.blockRendering.RenderInfo.prototype.populateBottomRow_=function(){this.bottomRow.hasNextConnection=!!this.block_.nextConnection;this.bottomRow.minHeight=this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1].type==Blockly.inputTypes.STATEMENT?this.constants_.BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT:this.constants_.BOTTOM_ROW_MIN_HEIGHT;this.bottomRow.hasLeftSquareCorner(this.block_)?this.bottomRow.elements.push(new Blockly.blockRendering.SquareCorner(this.constants_)): this.bottomRow.elements.push(new Blockly.blockRendering.RoundCorner(this.constants_));this.bottomRow.hasNextConnection&&(this.bottomRow.connection=new Blockly.blockRendering.NextConnection(this.constants_,this.block_.nextConnection),this.bottomRow.elements.push(this.bottomRow.connection));this.bottomRow.hasRightSquareCorner(this.block_)?this.bottomRow.elements.push(new Blockly.blockRendering.SquareCorner(this.constants_,"right")):this.bottomRow.elements.push(new Blockly.blockRendering.RoundCorner(this.constants_, "right"))}; -Blockly.blockRendering.RenderInfo.prototype.addInput_=function(a,b){this.isInline&&a.type==Blockly.INPUT_VALUE?(b.elements.push(new Blockly.blockRendering.InlineInput(this.constants_,a)),b.hasInlineInput=!0):a.type==Blockly.NEXT_STATEMENT?(b.elements.push(new Blockly.blockRendering.StatementInput(this.constants_,a)),b.hasStatement=!0):a.type==Blockly.INPUT_VALUE?(b.elements.push(new Blockly.blockRendering.ExternalValueInput(this.constants_,a)),b.hasExternalInput=!0):a.type==Blockly.DUMMY_INPUT&&(b.minHeight= -Math.max(b.minHeight,a.getSourceBlock()&&a.getSourceBlock().isShadow()?this.constants_.DUMMY_INPUT_SHADOW_MIN_HEIGHT:this.constants_.DUMMY_INPUT_MIN_HEIGHT),b.hasDummyInput=!0);null==b.align&&(b.align=a.align)};Blockly.blockRendering.RenderInfo.prototype.shouldStartNewRow_=function(a,b){return b?a.type==Blockly.NEXT_STATEMENT||b.type==Blockly.NEXT_STATEMENT?!0:a.type==Blockly.INPUT_VALUE||a.type==Blockly.DUMMY_INPUT?!this.isInline:!1:!1}; +Blockly.blockRendering.RenderInfo.prototype.addInput_=function(a,b){this.isInline&&a.type==Blockly.inputTypes.VALUE?(b.elements.push(new Blockly.blockRendering.InlineInput(this.constants_,a)),b.hasInlineInput=!0):a.type==Blockly.inputTypes.STATEMENT?(b.elements.push(new Blockly.blockRendering.StatementInput(this.constants_,a)),b.hasStatement=!0):a.type==Blockly.inputTypes.VALUE?(b.elements.push(new Blockly.blockRendering.ExternalValueInput(this.constants_,a)),b.hasExternalInput=!0):a.type==Blockly.inputTypes.DUMMY&& +(b.minHeight=Math.max(b.minHeight,a.getSourceBlock()&&a.getSourceBlock().isShadow()?this.constants_.DUMMY_INPUT_SHADOW_MIN_HEIGHT:this.constants_.DUMMY_INPUT_MIN_HEIGHT),b.hasDummyInput=!0);null==b.align&&(b.align=a.align)};Blockly.blockRendering.RenderInfo.prototype.shouldStartNewRow_=function(a,b){return b?a.type==Blockly.inputTypes.STATEMENT||b.type==Blockly.inputTypes.STATEMENT?!0:a.type==Blockly.inputTypes.VALUE||a.type==Blockly.inputTypes.DUMMY?!this.isInline:!1:!1}; Blockly.blockRendering.RenderInfo.prototype.addElemSpacing_=function(){for(var a=0,b;b=this.rows[a];a++){var c=b.elements;b.elements=[];b.startsWithElemSpacer()&&b.elements.push(new Blockly.blockRendering.InRowSpacer(this.constants_,this.getInRowSpacing_(null,c[0])));if(c.length){for(var d=0;da.height;e&&(b-=d);this.debugElements_.push(Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT,{"class":"rowSpacerRect blockRenderDebug",x:c?-(a.xPos+a.width):a.xPos,y:b,width:a.width,height:d,stroke:e?"black":"blue",fill:"blue","fill-opacity":"0.5","stroke-width":"1px"},this.svgRoot_))}}; +Blockly.blockRendering.Debug.prototype.drawSpacerElem=function(a,b,c){if(Blockly.blockRendering.Debug.config.elemSpacers){b=Math.abs(a.width);var d=0>a.width,e=d?a.xPos-b:a.xPos;c&&(e=-(e+b));this.debugElements_.push(Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT,{"class":"elemSpacerRect blockRenderDebug",x:e,y:a.centerline-a.height/2,width:b,height:a.height,stroke:"pink",fill:d?"black":"pink","fill-opacity":"0.5","stroke-width":"1px"},this.svgRoot_))}}; +Blockly.blockRendering.Debug.prototype.drawRenderedElem=function(a,b){if(Blockly.blockRendering.Debug.config.elems){var c=a.xPos;b&&(c=-(c+a.width));b=a.centerline-a.height/2;this.debugElements_.push(Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT,{"class":"rowRenderingRect blockRenderDebug",x:c,y:b,width:a.width,height:a.height,stroke:"black",fill:"none","stroke-width":"1px"},this.svgRoot_));Blockly.blockRendering.Types.isField(a)&&a.field instanceof Blockly.FieldLabel&&this.debugElements_.push(Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT, +{"class":"rowRenderingRect blockRenderDebug",x:c,y:b+this.constants_.FIELD_TEXT_BASELINE,width:a.width,height:"0.1px",stroke:"red",fill:"none","stroke-width":"0.5px"},this.svgRoot_))}Blockly.blockRendering.Types.isInput(a)&&Blockly.blockRendering.Debug.config.connections&&this.drawConnection(a.connectionModel)}; +Blockly.blockRendering.Debug.prototype.drawConnection=function(a){if(Blockly.blockRendering.Debug.config.connections){if(a.type==Blockly.connectionTypes.INPUT_VALUE){var b=4;var c="magenta";var d="none"}else a.type==Blockly.connectionTypes.OUTPUT_VALUE?(b=2,d=c="magenta"):a.type==Blockly.connectionTypes.NEXT_STATEMENT?(b=4,c="goldenrod",d="none"):a.type==Blockly.connectionTypes.PREVIOUS_STATEMENT&&(b=2,d=c="goldenrod");this.debugElements_.push(Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.CIRCLE, +{"class":"blockRenderDebug",cx:a.offsetInBlock_.x,cy:a.offsetInBlock_.y,r:b,fill:d,stroke:c},this.svgRoot_))}}; +Blockly.blockRendering.Debug.prototype.drawRenderedRow=function(a,b,c){Blockly.blockRendering.Debug.config.rows&&(this.debugElements_.push(Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT,{"class":"elemRenderingRect blockRenderDebug",x:c?-(a.xPos+a.width):a.xPos,y:a.yPos,width:a.width,height:a.height,stroke:"red",fill:"none","stroke-width":"1px"},this.svgRoot_)),Blockly.blockRendering.Types.isTopOrBottomRow(a)||Blockly.blockRendering.Debug.config.connectedBlockBounds&&this.debugElements_.push(Blockly.utils.dom.createSvgElement(Blockly.utils.Svg.RECT, +{"class":"connectedBlockWidth blockRenderDebug",x:c?-(a.xPos+a.widthWithConnectedBlocks):a.xPos,y:a.yPos,width:a.widthWithConnectedBlocks,height:a.height,stroke:this.randomColour_,fill:"none","stroke-width":"1px","stroke-dasharray":"3,3"},this.svgRoot_)))}; +Blockly.blockRendering.Debug.prototype.drawRowWithElements=function(a,b,c){for(var d=0,e=a.elements.length;d.blocklyPathLight,",a+" .blocklyInsertionMarker>.blocklyPathDark {","fill-opacity: "+this.INSERTION_MARKER_OPACITY+";","stroke: none;","}"])};Blockly.geras.Highlighter=function(a){this.info_=a;this.inlineSteps_=this.steps_="";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_= this.highlightConstants_.START_HAT;this.jaggedTeethPaths_=this.highlightConstants_.JAGGED_TEETH};Blockly.geras.Highlighter.prototype.getPath=function(){return this.steps_+"\n"+this.inlineSteps_}; @@ -1334,9 +1343,9 @@ this.steps_+=Blockly.utils.svgPaths.lineOnAxis("V",this.outsideCornerPaths_.heig Blockly.geras.Highlighter.prototype.drawInlineInput=function(a){var b=this.highlightOffset_,c=a.xPos+a.connectionWidth,d=a.centerline-a.height/2,e=a.width-a.connectionWidth,f=d+b;this.RTL_?(d=a.connectionOffsetY-b,a=a.height-(a.connectionOffsetY+a.connectionHeight)+b,this.inlineSteps_+=Blockly.utils.svgPaths.moveTo(c-b,f)+Blockly.utils.svgPaths.lineOnAxis("v",d)+this.puzzleTabPaths_.pathDown(this.RTL_)+Blockly.utils.svgPaths.lineOnAxis("v",a)+Blockly.utils.svgPaths.lineOnAxis("h",e)):this.inlineSteps_+= Blockly.utils.svgPaths.moveTo(a.xPos+a.width+b,f)+Blockly.utils.svgPaths.lineOnAxis("v",a.height)+Blockly.utils.svgPaths.lineOnAxis("h",-e)+Blockly.utils.svgPaths.moveTo(c,d+a.connectionOffsetY)+this.puzzleTabPaths_.pathDown(this.RTL_)};Blockly.geras.InlineInput=function(a,b){Blockly.geras.InlineInput.superClass_.constructor.call(this,a,b);this.connectedBlock&&(this.width+=this.constants_.DARK_PATH_OFFSET,this.height+=this.constants_.DARK_PATH_OFFSET)};Blockly.utils.object.inherits(Blockly.geras.InlineInput,Blockly.blockRendering.InlineInput);Blockly.geras.StatementInput=function(a,b){Blockly.geras.StatementInput.superClass_.constructor.call(this,a,b);this.connectedBlock&&(this.height+=this.constants_.DARK_PATH_OFFSET)}; Blockly.utils.object.inherits(Blockly.geras.StatementInput,Blockly.blockRendering.StatementInput);Blockly.geras.RenderInfo=function(a,b){Blockly.geras.RenderInfo.superClass_.constructor.call(this,a,b)};Blockly.utils.object.inherits(Blockly.geras.RenderInfo,Blockly.blockRendering.RenderInfo);Blockly.geras.RenderInfo.prototype.getRenderer=function(){return this.renderer_}; -Blockly.geras.RenderInfo.prototype.populateBottomRow_=function(){Blockly.geras.RenderInfo.superClass_.populateBottomRow_.call(this);this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1].type==Blockly.NEXT_STATEMENT||(this.bottomRow.minHeight=this.constants_.MEDIUM_PADDING-this.constants_.DARK_PATH_OFFSET)}; -Blockly.geras.RenderInfo.prototype.addInput_=function(a,b){this.isInline&&a.type==Blockly.INPUT_VALUE?(b.elements.push(new Blockly.geras.InlineInput(this.constants_,a)),b.hasInlineInput=!0):a.type==Blockly.NEXT_STATEMENT?(b.elements.push(new Blockly.geras.StatementInput(this.constants_,a)),b.hasStatement=!0):a.type==Blockly.INPUT_VALUE?(b.elements.push(new Blockly.blockRendering.ExternalValueInput(this.constants_,a)),b.hasExternalInput=!0):a.type==Blockly.DUMMY_INPUT&&(b.minHeight=Math.max(b.minHeight, -this.constants_.DUMMY_INPUT_MIN_HEIGHT),b.hasDummyInput=!0);this.isInline||null!=b.align||(b.align=a.align)}; +Blockly.geras.RenderInfo.prototype.populateBottomRow_=function(){Blockly.geras.RenderInfo.superClass_.populateBottomRow_.call(this);this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1].type==Blockly.inputTypes.STATEMENT||(this.bottomRow.minHeight=this.constants_.MEDIUM_PADDING-this.constants_.DARK_PATH_OFFSET)}; +Blockly.geras.RenderInfo.prototype.addInput_=function(a,b){this.isInline&&a.type==Blockly.inputTypes.VALUE?(b.elements.push(new Blockly.geras.InlineInput(this.constants_,a)),b.hasInlineInput=!0):a.type==Blockly.inputTypes.STATEMENT?(b.elements.push(new Blockly.geras.StatementInput(this.constants_,a)),b.hasStatement=!0):a.type==Blockly.inputTypes.VALUE?(b.elements.push(new Blockly.blockRendering.ExternalValueInput(this.constants_,a)),b.hasExternalInput=!0):a.type==Blockly.inputTypes.DUMMY&&(b.minHeight= +Math.max(b.minHeight,this.constants_.DUMMY_INPUT_MIN_HEIGHT),b.hasDummyInput=!0);this.isInline||null!=b.align||(b.align=a.align)}; Blockly.geras.RenderInfo.prototype.addElemSpacing_=function(){for(var a=!1,b=0,c;c=this.rows[b];b++)c.hasExternalInput&&(a=!0);for(b=0;c=this.rows[b];b++){var d=c.elements;c.elements=[];c.startsWithElemSpacer()&&c.elements.push(new Blockly.blockRendering.InRowSpacer(this.constants_,this.getInRowSpacing_(null,d[0])));if(d.length){for(var e=0;eg>text {","fill: #575E75;","}",a+" .blocklyFlyoutLabelT ";","color: #575E75;","}",a+" .blocklyDropdownText {","fill: #fff !important;","}",a+".blocklyWidgetDiv .goog-menuitem,",a+".blocklyDropDownDiv .goog-menuitem {","font-family: "+this.FIELD_TEXT_FONTFAMILY+";","}",a+".blocklyDropDownDiv .goog-menuitem-content {","color: #fff;","}",a+" .blocklyHighlightedConnectionPath {","stroke: "+this.SELECTED_GLOW_COLOUR+";","}",a+" .blocklyDisabled > .blocklyOutlinePath {","fill: url(#blocklyDisabledPattern"+this.randomIdentifier+")","}",a+" .blocklyInsertionMarker>.blocklyPath {", "fill-opacity: "+this.INSERTION_MARKER_OPACITY+";","stroke: none;","}"]};Blockly.zelos.TopRow=function(a){Blockly.zelos.TopRow.superClass_.constructor.call(this,a)};Blockly.utils.object.inherits(Blockly.zelos.TopRow,Blockly.blockRendering.TopRow);Blockly.zelos.TopRow.prototype.endsWithElemSpacer=function(){return!1};Blockly.zelos.TopRow.prototype.hasLeftSquareCorner=function(a){var b=(a.hat?"cap"===a.hat:this.constants_.ADD_START_HATS)&&!a.outputConnection&&!a.previousConnection;return!!a.outputConnection||b}; Blockly.zelos.TopRow.prototype.hasRightSquareCorner=function(a){return!!a.outputConnection&&!a.statementInputCount&&!a.nextConnection};Blockly.zelos.BottomRow=function(a){Blockly.zelos.BottomRow.superClass_.constructor.call(this,a)};Blockly.utils.object.inherits(Blockly.zelos.BottomRow,Blockly.blockRendering.BottomRow);Blockly.zelos.BottomRow.prototype.endsWithElemSpacer=function(){return!1};Blockly.zelos.BottomRow.prototype.hasLeftSquareCorner=function(a){return!!a.outputConnection}; -Blockly.zelos.BottomRow.prototype.hasRightSquareCorner=function(a){return!!a.outputConnection&&!a.statementInputCount&&!a.nextConnection};Blockly.zelos.RightConnectionShape=function(a){Blockly.zelos.RightConnectionShape.superClass_.constructor.call(this,a);this.type|=Blockly.blockRendering.Types.getType("RIGHT_CONNECTION");this.width=this.height=0};Blockly.utils.object.inherits(Blockly.zelos.RightConnectionShape,Blockly.blockRendering.Measurable);Blockly.zelos.StatementInput=function(a,b){Blockly.zelos.StatementInput.superClass_.constructor.call(this,a,b);if(this.connectedBlock){for(a=this.connectedBlock;a.getNextBlock();)a=a.getNextBlock();a.nextConnection||(this.height=this.connectedBlockHeight,this.connectedBottomNextConnection=!0)}};Blockly.utils.object.inherits(Blockly.zelos.StatementInput,Blockly.blockRendering.StatementInput);Blockly.zelos.RenderInfo=function(a,b){Blockly.zelos.RenderInfo.superClass_.constructor.call(this,a,b);this.topRow=new Blockly.zelos.TopRow(this.constants_);this.bottomRow=new Blockly.zelos.BottomRow(this.constants_);this.isInline=!0;this.isMultiRow=!b.getInputsInline()||b.isCollapsed();this.hasStatementInput=0=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!f.precedesStatement;if(Blockly.blockRendering.Types.isInputRow(e)&&e.hasStatement)e.measure(),b=e.width-e.getLastInput().width+a;else if(d&&(2==c||f)&& Blockly.blockRendering.Types.isInputRow(e)&&!e.hasStatement){f=e.xPos;d=null;for(var g=0,h;h=e.elements[g];g++)Blockly.blockRendering.Types.isSpacer(h)&&(d=h),!(d&&(Blockly.blockRendering.Types.isField(h)||Blockly.blockRendering.Types.isInput(h))&&fc?Blockly.JavaScript.valueToCode(a,b,Blockly.JavaScript.ORDER_SUBTRACTION)||f:d?Blockly.JavaScript.valueToCode(a,b,Blockly.JavaScript.ORDER_UNARY_NEGATION)||f:Blockly.JavaScript.valueToCode(a,b,e)||f;if(Blockly.isNumber(a))a=Number(a)+c,d&& (a=-a);else{if(0c&&(a=a+" - "+-c,g=Blockly.JavaScript.ORDER_SUBTRACTION);d&&(a=c?"-("+a+")":"-"+a,g=Blockly.JavaScript.ORDER_UNARY_NEGATION);g=Math.floor(g);e=Math.floor(e);g&&e>=g&&(a="("+a+")")}return a};Blockly.JavaScript.colour={};Blockly.JavaScript.colour_picker=function(a){return[Blockly.JavaScript.quote_(a.getFieldValue("COLOUR")),Blockly.JavaScript.ORDER_ATOMIC]};Blockly.JavaScript.colour_random=function(a){return[Blockly.JavaScript.provideFunction_("colourRandom",["function "+Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_+"() {"," var num = Math.floor(Math.random() * Math.pow(2, 24));"," return '#' + ('00000' + num.toString(16)).substr(-6);","}"])+"()",Blockly.JavaScript.ORDER_FUNCTION_CALL]}; diff --git a/google-blockly/javascript_compressed.js.map b/google-blockly/javascript_compressed.js.map index 4e8b867..fe8ad9f 100644 --- a/google-blockly/javascript_compressed.js.map +++ b/google-blockly/javascript_compressed.js.map @@ -1 +1 @@ -{"version":3,"sources":["generators/javascript.js","generators/javascript/colour.js","generators/javascript/lists.js","generators/javascript/logic.js","generators/javascript/loops.js","generators/javascript/math.js","generators/javascript/procedures.js","generators/javascript/text.js","generators/javascript/variables.js","generators/javascript/variables_dynamic.js"],"names":["Blockly","JavaScript","Generator","addReservedWords","Object","getOwnPropertyNames","utils","global","join","ORDER_ATOMIC","ORDER_NEW","ORDER_MEMBER","ORDER_FUNCTION_CALL","ORDER_INCREMENT","ORDER_DECREMENT","ORDER_BITWISE_NOT","ORDER_UNARY_PLUS","ORDER_UNARY_NEGATION","ORDER_LOGICAL_NOT","ORDER_TYPEOF","ORDER_VOID","ORDER_DELETE","ORDER_AWAIT","ORDER_EXPONENTIATION","ORDER_MULTIPLICATION","ORDER_DIVISION","ORDER_MODULUS","ORDER_SUBTRACTION","ORDER_ADDITION","ORDER_BITWISE_SHIFT","ORDER_RELATIONAL","ORDER_IN","ORDER_INSTANCEOF","ORDER_EQUALITY","ORDER_BITWISE_AND","ORDER_BITWISE_XOR","ORDER_BITWISE_OR","ORDER_LOGICAL_AND","ORDER_LOGICAL_OR","ORDER_CONDITIONAL","ORDER_ASSIGNMENT","ORDER_YIELD","ORDER_COMMA","ORDER_NONE","ORDER_OVERRIDES","isInitialized","init","Blockly.JavaScript.init","workspace","definitions_","create","functionNames_","variableDB_","reset","Names","RESERVED_WORDS_","setVariableMap","getVariableMap","defvars","devVarList","Variables","allDeveloperVariables","i","length","push","getName","DEVELOPER_VARIABLE_TYPE","variables","allUsedVarModels","getId","VARIABLE_CATEGORY_NAME","finish","Blockly.JavaScript.finish","code","definitions","name","scrubNakedValue","Blockly.JavaScript.scrubNakedValue","line","quote_","Blockly.JavaScript.quote_","string","replace","multiline_quote_","Blockly.JavaScript.multiline_quote_","split","lines","map","scrub_","Blockly.JavaScript.scrub_","block","opt_thisOnly","commentCode","outputConnection","targetConnection","comment","getCommentText","wrap","COMMENT_WRAP","prefixLines","inputList","type","INPUT_VALUE","childBlock","connection","targetBlock","allNestedComments","nextBlock","nextConnection","nextCode","blockToCode","getAdjusted","Blockly.JavaScript.getAdjusted","atId","opt_delta","opt_negate","opt_order","delta","order","options","oneBasedIndex","defaultAtIndex","at","valueToCode","isNumber","Number","innerOrder","Math","floor","getFieldValue","functionName","provideFunction_","FUNCTION_NAME_PLACEHOLDER_","red","green","blue","c1","c2","ratio","elements","Array","itemCount_","element","repeatCount","operator","item","mode","where","list","listOrder","Error","cacheList","match","listVar","getDistinctName","value","xVar","lists","getIndex_","Blockly.JavaScript.lists.getIndex_","listName","opt_at","where1","where2","at1","at2","wherePascalCase","direction","getCompareFunctionName","input","delimiter","n","STATEMENT_PREFIX","injectId","conditionCode","branchCode","statementToCode","STATEMENT_SUFFIX","INDENT","getInput","OPERATORS","argument0","argument1","defaultArgument","value_if","value_then","value_else","repeats","getField","String","branch","addLoopTrap","loopVar","endVar","until","variable0","increment","up","step","abs","startVar","incVar","indexVar","xfix","loop","Constants","Loops","CONTROL_FLOW_IN_LOOP_CHECK_MIXIN","getSurroundLoop","suppressPrefixSuffix","tuple","arg","CONSTANTS","number_to_check","dropdown_property","divisor","varName","func","argument2","funcName","PROCEDURE_CATEGORY_NAME","xfix1","loopTrap","INFINITE_LOOP_TRAP","returnValue","xfix2","args","getVars","hasReturnValue_","indexOf","text","forceString_","Blockly.JavaScript.text.forceString_","strRegExp","test","codeAndOrder","element0","element1","substring","textOrder","Blockly.JavaScript.text.getIndex_","stringName","requiresLengthCall","msg","sub","from","to"],"mappings":"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","file":"javascript_compressed.js","sourceRoot":"./"} \ No newline at end of file +{"version":3,"sources":["generators/javascript.js","generators/javascript/colour.js","generators/javascript/lists.js","generators/javascript/logic.js","generators/javascript/loops.js","generators/javascript/math.js","generators/javascript/procedures.js","generators/javascript/text.js","generators/javascript/variables.js","generators/javascript/variables_dynamic.js"],"names":["Blockly","JavaScript","Generator","addReservedWords","Object","getOwnPropertyNames","utils","global","join","ORDER_ATOMIC","ORDER_NEW","ORDER_MEMBER","ORDER_FUNCTION_CALL","ORDER_INCREMENT","ORDER_DECREMENT","ORDER_BITWISE_NOT","ORDER_UNARY_PLUS","ORDER_UNARY_NEGATION","ORDER_LOGICAL_NOT","ORDER_TYPEOF","ORDER_VOID","ORDER_DELETE","ORDER_AWAIT","ORDER_EXPONENTIATION","ORDER_MULTIPLICATION","ORDER_DIVISION","ORDER_MODULUS","ORDER_SUBTRACTION","ORDER_ADDITION","ORDER_BITWISE_SHIFT","ORDER_RELATIONAL","ORDER_IN","ORDER_INSTANCEOF","ORDER_EQUALITY","ORDER_BITWISE_AND","ORDER_BITWISE_XOR","ORDER_BITWISE_OR","ORDER_LOGICAL_AND","ORDER_LOGICAL_OR","ORDER_CONDITIONAL","ORDER_ASSIGNMENT","ORDER_YIELD","ORDER_COMMA","ORDER_NONE","ORDER_OVERRIDES","isInitialized","init","Blockly.JavaScript.init","workspace","definitions_","create","functionNames_","variableDB_","reset","Names","RESERVED_WORDS_","setVariableMap","getVariableMap","defvars","devVarList","Variables","allDeveloperVariables","i","length","push","getName","DEVELOPER_VARIABLE_TYPE","variables","allUsedVarModels","getId","VARIABLE_CATEGORY_NAME","finish","Blockly.JavaScript.finish","code","definitions","name","scrubNakedValue","Blockly.JavaScript.scrubNakedValue","line","quote_","Blockly.JavaScript.quote_","string","replace","multiline_quote_","Blockly.JavaScript.multiline_quote_","split","map","lines","scrub_","Blockly.JavaScript.scrub_","block","opt_thisOnly","commentCode","outputConnection","targetConnection","comment","getCommentText","wrap","COMMENT_WRAP","prefixLines","inputList","type","inputTypes","VALUE","childBlock","connection","targetBlock","allNestedComments","nextBlock","nextConnection","nextCode","blockToCode","getAdjusted","Blockly.JavaScript.getAdjusted","atId","opt_delta","opt_negate","opt_order","delta","order","options","oneBasedIndex","defaultAtIndex","at","valueToCode","isNumber","Number","innerOrder","Math","floor","getFieldValue","provideFunction_","functionName","FUNCTION_NAME_PLACEHOLDER_","red","green","blue","c1","c2","ratio","elements","Array","itemCount_","element","repeatCount","operator","item","mode","where","list","listOrder","Error","cacheList","match","listVar","getDistinctName","value","xVar","lists","getIndex_","Blockly.JavaScript.lists.getIndex_","listName","opt_at","where1","where2","at1","at2","wherePascalCase","direction","getCompareFunctionName","input","delimiter","n","STATEMENT_PREFIX","injectId","conditionCode","branchCode","statementToCode","STATEMENT_SUFFIX","INDENT","getInput","OPERATORS","argument0","argument1","defaultArgument","value_if","value_then","value_else","repeats","getField","String","branch","addLoopTrap","loopVar","endVar","until","variable0","increment","up","step","abs","startVar","incVar","indexVar","xfix","loop","Constants","Loops","CONTROL_FLOW_IN_LOOP_CHECK_MIXIN","getSurroundLoop","suppressPrefixSuffix","tuple","arg","CONSTANTS","number_to_check","dropdown_property","divisor","varName","func","argument2","funcName","PROCEDURE_CATEGORY_NAME","xfix1","loopTrap","INFINITE_LOOP_TRAP","returnValue","xfix2","args","getVars","hasReturnValue_","indexOf","text","forceString_","Blockly.JavaScript.text.forceString_","strRegExp","test","codeAndOrder","element0","element1","substring","textOrder","Blockly.JavaScript.text.getIndex_","stringName","requiresLengthCall","msg","sub","from","to"],"mappings":"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","file":"javascript_compressed.js","sourceRoot":"./"} \ No newline at end of file diff --git a/google-blockly/javascript_compressed.js.map:Zone.Identifier b/google-blockly/javascript_compressed.js.map:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/javascript_compressed.js.map:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/javascript_compressed.js:Zone.Identifier b/google-blockly/javascript_compressed.js:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/javascript_compressed.js:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/1x1.gif:Zone.Identifier b/google-blockly/media/1x1.gif:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/1x1.gif:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/click.mp3:Zone.Identifier b/google-blockly/media/click.mp3:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/click.mp3:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/click.ogg:Zone.Identifier b/google-blockly/media/click.ogg:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/click.ogg:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/click.wav:Zone.Identifier b/google-blockly/media/click.wav:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/click.wav:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/delete.mp3:Zone.Identifier b/google-blockly/media/delete.mp3:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/delete.mp3:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/delete.ogg:Zone.Identifier b/google-blockly/media/delete.ogg:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/delete.ogg:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/delete.wav:Zone.Identifier b/google-blockly/media/delete.wav:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/delete.wav:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/disconnect.mp3:Zone.Identifier b/google-blockly/media/disconnect.mp3:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/disconnect.mp3:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/disconnect.ogg:Zone.Identifier b/google-blockly/media/disconnect.ogg:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/disconnect.ogg:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/disconnect.wav:Zone.Identifier b/google-blockly/media/disconnect.wav:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/disconnect.wav:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/dropdown-arrow.svg:Zone.Identifier b/google-blockly/media/dropdown-arrow.svg:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/dropdown-arrow.svg:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/handclosed.cur:Zone.Identifier b/google-blockly/media/handclosed.cur:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/handclosed.cur:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/handdelete.cur:Zone.Identifier b/google-blockly/media/handdelete.cur:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/handdelete.cur:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/handopen.cur:Zone.Identifier b/google-blockly/media/handopen.cur:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/handopen.cur:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/pilcrow.png:Zone.Identifier b/google-blockly/media/pilcrow.png:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/pilcrow.png:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/quote0.png:Zone.Identifier b/google-blockly/media/quote0.png:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/quote0.png:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/quote1.png:Zone.Identifier b/google-blockly/media/quote1.png:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/quote1.png:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/sprites.png:Zone.Identifier b/google-blockly/media/sprites.png:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/sprites.png:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/media/sprites.svg:Zone.Identifier b/google-blockly/media/sprites.svg:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/media/sprites.svg:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/msg/js/en.js:Zone.Identifier b/google-blockly/msg/js/en.js:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/msg/js/en.js:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/msg/js/ja.js b/google-blockly/msg/js/ja.js index 9049d70..b6a365e 100644 --- a/google-blockly/msg/js/ja.js +++ b/google-blockly/msg/js/ja.js @@ -19,7 +19,7 @@ Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://ja.wikipedia.org/wiki/色"; Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "パレットから色を選んでください。"; Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated Blockly.Msg["COLOUR_RANDOM_TITLE"] = "ランダムな色"; -Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "ランダムな色を選ぶ。"; +Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "ランダムに色を選ぶ。"; Blockly.Msg["COLOUR_RGB_BLUE"] = "青"; Blockly.Msg["COLOUR_RGB_GREEN"] = "緑"; Blockly.Msg["COLOUR_RGB_HELPURL"] = "http://www.december.com/html/spec/colorper.html"; @@ -46,9 +46,9 @@ Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "そうでなければ"; Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "そうでなくもし"; Blockly.Msg["CONTROLS_IF_MSG_IF"] = "もし"; Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "値が true の場合、ステートメントを実行します。"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "値が true 場合は、ステートメントの最初のブロックを行います。それ以外の場合は、ステートメントの 2 番目のブロックを行います。"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "最初の値が true 場合は、ステートメントの最初のブロックを行います。それ以外の場合は、2 番目の値が true の場合、ステートメントの 2 番目のブロックをします。"; -Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "最初の値が true 場合は、ステートメントの最初のブロックを行います。2 番目の値が true の場合は、ステートメントの 2 番目のブロックを行います。それ以外の場合は最後のブロックのステートメントを行います。"; +Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "値が true の場合は、最初のステートメントのブロックを実行します。それ以外の場合は、2番目のステートメントのブロックを実行します。"; +Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "最初の値が true の場合は、最初のステートメントのブロックを実行します。それ以外の場合で、2番目の値が true の場合は、2番目のステートメントのブロックを実行します。"; +Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "最初の値が true の場合は、最初のステートメントのブロックを実行します。それ以外の場合で、2番目の値が true の場合は、2番目のステートメントのブロックを実行します。すべての値が true でない場合は、最後のステートメントのブロックを実行します。"; Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://ja.wikipedia.org/wiki/for文"; Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "実行"; Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "%1 回繰り返す"; @@ -58,11 +58,11 @@ Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "繰り返す:終わる条 Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "繰り返す:続ける条件"; Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "値がfalseの間、いくつかのステートメントを実行する。"; Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "値がtrueの間、いくつかのステートメントを実行する。"; -Blockly.Msg["DELETE_ALL_BLOCKS"] = "%1件のすべてのブロックを削除しますか?"; +Blockly.Msg["DELETE_ALL_BLOCKS"] = "%1個あるすべてのブロックを削除しますか?"; Blockly.Msg["DELETE_BLOCK"] = "ブロックを削除"; Blockly.Msg["DELETE_VARIABLE"] = "変数 '%1' を削除"; Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "%1か所で使われている変数 '%2' を削除しますか?"; -Blockly.Msg["DELETE_X_BLOCKS"] = "%1 個のブロックを削除"; +Blockly.Msg["DELETE_X_BLOCKS"] = "%1個のブロックを削除"; Blockly.Msg["DISABLE_BLOCK"] = "ブロックを無効にする"; Blockly.Msg["DUPLICATE_BLOCK"] = "複製"; Blockly.Msg["DUPLICATE_COMMENT"] = "コメントを複製"; @@ -266,7 +266,7 @@ Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "ネイピア数eの数値乗を返す Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "数値の自然対数を返す。"; Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "底が10の対数を返す。"; Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "負の数を返す。"; -Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "10の数値乗を返す。"; +Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "10の数値乗を返す。"; Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "平方根を返す。"; Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; @@ -318,7 +318,7 @@ Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "この関数への入力 Blockly.Msg["REDO"] = "やり直す"; Blockly.Msg["REMOVE_COMMENT"] = "コメントを削除"; Blockly.Msg["RENAME_VARIABLE"] = "変数の名前を変える…"; -Blockly.Msg["RENAME_VARIABLE_TITLE"] = "選択した%1の変数すべての名前を変える:"; +Blockly.Msg["RENAME_VARIABLE_TITLE"] = "選択した%1個すべての変数の名前を変える:"; Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated Blockly.Msg["TEXT_APPEND_TITLE"] = "項目 %1 へテキストを追加 %2"; Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "変数 '%1' にテキストを追加。"; diff --git a/google-blockly/msg/js/ja.js:Zone.Identifier b/google-blockly/msg/js/ja.js:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/msg/js/ja.js:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/msg/json/en.json b/google-blockly/msg/json/en.json index 66bf469..08cf637 100644 --- a/google-blockly/msg/json/en.json +++ b/google-blockly/msg/json/en.json @@ -1,7 +1,7 @@ { "@metadata": { "author": "Ellen Spertus ", - "lastupdated": "2020-12-17 12:10:29.080541", + "lastupdated": "2021-03-25 09:26:05.766290", "locale": "en", "messagedocumentation" : "qqq" }, diff --git a/google-blockly/msg/json/en.json:Zone.Identifier b/google-blockly/msg/json/en.json:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/msg/json/en.json:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/msg/json/ja.json b/google-blockly/msg/json/ja.json index 449b975..63c8c89 100644 --- a/google-blockly/msg/json/ja.json +++ b/google-blockly/msg/json/ja.json @@ -5,6 +5,7 @@ "Gimite", "Gulpin", "Kebhr", + "Kkairri", "Oda", "Omotecho", "Otokoume", @@ -27,8 +28,8 @@ "EXTERNAL_INPUTS": "外部入力", "INLINE_INPUTS": "インライン入力", "DELETE_BLOCK": "ブロックを削除", - "DELETE_X_BLOCKS": "%1 個のブロックを削除", - "DELETE_ALL_BLOCKS": "%1件のすべてのブロックを削除しますか?", + "DELETE_X_BLOCKS": "%1個のブロックを削除", + "DELETE_ALL_BLOCKS": "%1個あるすべてのブロックを削除しますか?", "CLEAN_UP": "ブロックを整理する", "COLLAPSE_BLOCK": "ブロックを折りたたむ", "COLLAPSE_ALL": "ブロックを折りたたむ", @@ -41,7 +42,7 @@ "REDO": "やり直す", "CHANGE_VALUE_TITLE": "値を変える:", "RENAME_VARIABLE": "変数の名前を変える…", - "RENAME_VARIABLE_TITLE": "選択した%1の変数すべての名前を変える:", + "RENAME_VARIABLE_TITLE": "選択した%1個すべての変数の名前を変える:", "NEW_VARIABLE": "変数の作成…", "NEW_STRING_VARIABLE": "文字列の変数を作る...", "NEW_NUMBER_VARIABLE": "数の変数を作る...", @@ -56,7 +57,7 @@ "COLOUR_PICKER_HELPURL": "https://ja.wikipedia.org/wiki/色", "COLOUR_PICKER_TOOLTIP": "パレットから色を選んでください。", "COLOUR_RANDOM_TITLE": "ランダムな色", - "COLOUR_RANDOM_TOOLTIP": "ランダムな色を選ぶ。", + "COLOUR_RANDOM_TOOLTIP": "ランダムに色を選ぶ。", "COLOUR_RGB_HELPURL": "http://www.december.com/html/spec/colorper.html", "COLOUR_RGB_TITLE": "色:", "COLOUR_RGB_RED": "赤", @@ -87,9 +88,9 @@ "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "このループの残りの部分をスキップして、ループの繰り返しを続けます。", "CONTROLS_FLOW_STATEMENTS_WARNING": "注意: このブロックは、ループ内でのみ使用できます。", "CONTROLS_IF_TOOLTIP_1": "値が true の場合、ステートメントを実行します。", - "CONTROLS_IF_TOOLTIP_2": "値が true 場合は、ステートメントの最初のブロックを行います。それ以外の場合は、ステートメントの 2 番目のブロックを行います。", - "CONTROLS_IF_TOOLTIP_3": "最初の値が true 場合は、ステートメントの最初のブロックを行います。それ以外の場合は、2 番目の値が true の場合、ステートメントの 2 番目のブロックをします。", - "CONTROLS_IF_TOOLTIP_4": "最初の値が true 場合は、ステートメントの最初のブロックを行います。2 番目の値が true の場合は、ステートメントの 2 番目のブロックを行います。それ以外の場合は最後のブロックのステートメントを行います。", + "CONTROLS_IF_TOOLTIP_2": "値が true の場合は、最初のステートメントのブロックを実行します。それ以外の場合は、2番目のステートメントのブロックを実行します。", + "CONTROLS_IF_TOOLTIP_3": "最初の値が true の場合は、最初のステートメントのブロックを実行します。それ以外の場合で、2番目の値が true の場合は、2番目のステートメントのブロックを実行します。", + "CONTROLS_IF_TOOLTIP_4": "最初の値が true の場合は、最初のステートメントのブロックを実行します。それ以外の場合で、2番目の値が true の場合は、2番目のステートメントのブロックを実行します。すべての値が true でない場合は、最後のステートメントのブロックを実行します。", "CONTROLS_IF_MSG_IF": "もし", "CONTROLS_IF_MSG_ELSEIF": "そうでなくもし", "CONTROLS_IF_MSG_ELSE": "そうでなければ", @@ -162,7 +163,7 @@ "MATH_SINGLE_TOOLTIP_LN": "数値の自然対数を返す。", "MATH_SINGLE_TOOLTIP_LOG10": "底が10の対数を返す。", "MATH_SINGLE_TOOLTIP_EXP": "ネイピア数eの数値乗を返す。", - "MATH_SINGLE_TOOLTIP_POW10": "10の数値乗を返す。", + "MATH_SINGLE_TOOLTIP_POW10": "10の数値乗を返す。", "MATH_TRIG_HELPURL": "https://ja.wikipedia.org/wiki/三角関数", "MATH_TRIG_TOOLTIP_SIN": "(ラジアンではなく)度数の正弦(sin)を返す。", "MATH_TRIG_TOOLTIP_COS": "(ラジアンではなく)度数の余弦(cosin)を返す。", diff --git a/google-blockly/msg/json/ja.json:Zone.Identifier b/google-blockly/msg/json/ja.json:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/msg/json/ja.json:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/google-blockly/msg/messages.js:Zone.Identifier b/google-blockly/msg/messages.js:Zone.Identifier new file mode 100644 index 0000000..238a6e0 --- /dev/null +++ b/google-blockly/msg/messages.js:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +ReferrerUrl=F:\Downloads\blockly-5.20210325.1.zip diff --git a/index.html b/index.html index 47470ef..46ddad0 100644 --- a/index.html +++ b/index.html @@ -237,10 +237,7 @@ - - - - + diff --git a/package-lock.json b/package-lock.json index a3fffa6..4603fa3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -582,9 +582,9 @@ "dev": true }, "detect-node": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz", - "integrity": "sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true, "optional": true }, @@ -605,9 +605,9 @@ } }, "electron": { - "version": "12.0.6", - "resolved": "https://registry.npmjs.org/electron/-/electron-12.0.6.tgz", - "integrity": "sha512-+fqhpdG6Fd6LzsizMdaSPC1I8tfsMT8/7fsYBgABED3hEWdus/rt6CQ54P3/EWZyQebtyHR6HXtlofUqKMV3KQ==", + "version": "12.0.8", + "resolved": "https://registry.npmjs.org/electron/-/electron-12.0.8.tgz", + "integrity": "sha512-bN2wYNnnma7ugBsiwysO1LI6oTTV1lDHOXuWip+OGjDUiz0IiJmZ+r0gAIMMeypVohZh7AA1ftnKad7tJ8sH4A==", "dev": true, "requires": { "@electron/get": "^1.0.1", @@ -616,9 +616,9 @@ }, "dependencies": { "@types/node": { - "version": "14.14.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.45.tgz", - "integrity": "sha512-DssMqTV9UnnoxDWu959sDLZzfvqCF0qDNRjaWeYSui9xkFe61kKo4l1TWNTQONpuXEm+gLMRvdlzvNHBamzmEw==", + "version": "14.17.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.0.tgz", + "integrity": "sha512-w8VZUN/f7SSbvVReb9SWp6cJFevxb4/nkG65yLAya//98WgocKm5PLDAtSs5CtJJJM+kHmJjO/6mmYW4MHShZA==", "dev": true } } @@ -1557,9 +1557,9 @@ } }, "nodemailer": { - "version": "6.4.17", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.17.tgz", - "integrity": "sha512-89ps+SBGpo0D4Bi5ZrxcrCiRFaMmkCt+gItMXQGzEtZVR3uAD3QAQIDoxTWnx3ky0Dwwy/dhFrQ+6NNGXpw/qQ==" + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.6.0.tgz", + "integrity": "sha512-ikSMDU1nZqpo2WUPE0wTTw/NGGImTkwpJKDIFPZT+YvvR9Sj+ze5wzu95JHkBMglQLoG2ITxU21WukCC/XsFkg==" }, "nopt": { "version": "4.0.3", diff --git a/package.json b/package.json index bd2f170..918675d 100644 --- a/package.json +++ b/package.json @@ -19,12 +19,12 @@ }, "homepage": "https://github.com/ocogeclub/ocoge#readme", "devDependencies": { - "electron": "12.0.6", + "electron": "^12.0.8", "electron-rebuild": "^2.3.5" }, "dependencies": { "axios": "^0.21.1", - "nodemailer": "^6.4.17", + "nodemailer": "^6.6.0", "ocoge_pigpiod": "file:local_modules/ocoge_pigpiod" } } diff --git a/scripts/ugj_script.js b/scripts/ugj_script.js index 8bd4ed9..5c177fb 100644 --- a/scripts/ugj_script.js +++ b/scripts/ugj_script.js @@ -439,6 +439,7 @@ var workspace = Blockly.inject(blocklyDiv, { toolbox: document.getElementById('toolbox'), theme: theme, + renderer: 'thrasos', scrollbars: true, grid: {