Rename more.js; recompile 10/3 (#650)

This commit is contained in:
Tim Mickel 2016-10-03 08:41:17 -04:00 committed by GitHub
parent efb3d41483
commit 2f03a21f2f
10 changed files with 284 additions and 265 deletions

View file

@ -909,7 +909,8 @@ Blockly.Workspace=function(a){this.id=Blockly.genUid();Blockly.Workspace.Workspa
Blockly.Workspace.prototype.dispose=function(){this.listeners_.length=0;this.clear();delete Blockly.Workspace.WorkspaceDB_[this.id]};Blockly.Workspace.SCAN_ANGLE=3;Blockly.Workspace.prototype.addTopBlock=function(a){this.topBlocks_.push(a);if(this.isFlyout){a=Blockly.Variables.allUsedVariables(a);for(var b=0;b<a.length;b++)-1==this.variableList.indexOf(a[b])&&this.variableList.push(a[b])}};
Blockly.Workspace.prototype.removeTopBlock=function(a){for(var b=!1,c,d=0;c=this.topBlocks_[d];d++)if(c==a){this.topBlocks_.splice(d,1);b=!0;break}if(!b)throw"Block not present in workspace's list of top-most blocks.";};
Blockly.Workspace.prototype.getTopBlocks=function(a){var b=[].concat(this.topBlocks_);if(a&&1<b.length){var c=Math.sin(goog.math.toRadians(Blockly.Workspace.SCAN_ANGLE));this.RTL&&(c*=-1);b.sort(function(a,b){var f=a.getRelativeToSurfaceXY(),g=b.getRelativeToSurfaceXY();return f.y+c*f.x-(g.y+c*g.x)})}return b};Blockly.Workspace.prototype.getAllBlocks=function(){for(var a=this.getTopBlocks(!1),b=0;b<a.length;b++)a.push.apply(a,a[b].getChildren());return a};
Blockly.Workspace.prototype.clear=function(){var a=Blockly.Events.getGroup();for(a||Blockly.Events.setGroup(!0);this.topBlocks_.length;)this.topBlocks_[0].dispose();a||Blockly.Events.setGroup(!1);this.variableList.length=0};Blockly.Workspace.prototype.updateVariableList=function(a){if(!this.isFlyout){a&&(this.variableList.length=0);a=Blockly.Variables.allUsedVariables(this);for(var b=0;b<a.length;b++)this.createVariable(a[b])}};
Blockly.Workspace.prototype.clear=function(){var a=Blockly.Events.getGroup();for(a||Blockly.Events.setGroup(!0);this.topBlocks_.length;)this.topBlocks_[0].dispose();a||Blockly.Events.setGroup(!1);this.variableList.length=0;Blockly.DropDownDiv&&Blockly.DropDownDiv.hideWithoutAnimation();Blockly.WidgetDiv&&Blockly.WidgetDiv.hide(!0)};
Blockly.Workspace.prototype.updateVariableList=function(a){if(!this.isFlyout){a&&(this.variableList.length=0);a=Blockly.Variables.allUsedVariables(this);for(var b=0;b<a.length;b++)this.createVariable(a[b])}};
Blockly.Workspace.prototype.renameVariable=function(a,b){var c=this.variableIndexOf(a),d=this.variableIndexOf(b);if(-1!=d&&this.variableList[d]!=b)var e=this.variableList[d];Blockly.Events.setGroup(!0);for(var f=this.getAllBlocks(),g=0;g<f.length;g++)f[g].renameVar(a,b),e&&f[g].renameVar(e,b);Blockly.Events.setGroup(!1);c==d||-1!=c&&-1==d?this.variableList[c]=b:-1!=c&&-1!=d?(this.variableList.splice(c,1),this.variableList[d]=b):(this.variableList.push(b),console.log("Tried to rename an non-existent variable."))};
Blockly.Workspace.prototype.createVariable=function(a){-1==this.variableIndexOf(a)&&this.variableList.push(a)};Blockly.Workspace.prototype.getVariableUses=function(a){for(var b=[],c=this.getAllBlocks(),d=0;d<c.length;d++){var e=c[d].getVars();if(e)for(var f=0;f<e.length;f++){var g=e[f];g&&Blockly.Names.equals(g,a)&&b.push(c[d])}}return b};
Blockly.Workspace.prototype.deleteVariable=function(a){var b=this.variableIndexOf(a);if(-1!=b){var c=this.getVariableUses(a);if(1<c.length){for(var d=0,e;e=c[d];d++)if("procedures_defnoreturn"==e.type||"procedures_defreturn"==e.type){b=e.getFieldValue("NAME");window.alert(Blockly.Msg.CANNOT_DELETE_VARIABLE_PROCEDURE.replace("%1",a).replace("%2",b));return}if(!window.confirm(Blockly.Msg.DELETE_VARIABLE_CONFIRMATION.replace("%1",c.length).replace("%2",a)))return}Blockly.Events.setGroup(!0);for(d=0;d<
@ -969,12 +970,13 @@ Blockly.Connection.prototype.disconnect=function(){var a=this.targetConnection;g
Blockly.Connection.prototype.disconnectInternal_=function(a,b){var c;Blockly.Events.isEnabled()&&(c=new Blockly.Events.Move(b));this.targetConnection=this.targetConnection.targetConnection=null;b.setParent(null);c&&(c.recordNew(),Blockly.Events.fire(c))};
Blockly.Connection.prototype.respawnShadow_=function(){var a=this.getSourceBlock(),b=this.getShadowDom();if(a.workspace&&b&&Blockly.Events.recordUndo)if(a=Blockly.Xml.domToBlock(b,a.workspace),a.outputConnection)this.connect(a.outputConnection);else if(a.previousConnection)this.connect(a.previousConnection);else throw"Child block does not have output or previous statement.";};Blockly.Connection.prototype.targetBlock=function(){return this.isConnected()?this.targetConnection.getSourceBlock():null};
Blockly.Connection.prototype.checkType_=function(a){if(!this.check_||!a.check_)return!0;for(var b=0;b<this.check_.length;b++)if(-1!=a.check_.indexOf(this.check_[b]))return!0;return!1};Blockly.Connection.prototype.setCheck=function(a){a?(goog.isArray(a)||(a=[a]),this.check_=a,this.isConnected()&&!this.checkType_(this.targetConnection)&&((this.isSuperior()?this.targetBlock():this.sourceBlock_).unplug(),this.sourceBlock_.bumpNeighbours_())):this.check_=null;return this};
Blockly.Connection.prototype.getOutputShape=function(){if(!this.check_)return Blockly.OUTPUT_SHAPE_SQUARE;if(-1!==this.check_.indexOf("Boolean"))return Blockly.OUTPUT_SHAPE_HEXAGONAL;if(-1!==this.check_.indexOf("Number"))return Blockly.OUTPUT_SHAPE_ROUND;this.check_.indexOf("String");return Blockly.OUTPUT_SHAPE_SQUARE};Blockly.Connection.prototype.setShadowDom=function(a){this.shadowDom_=a};Blockly.Connection.prototype.getShadowDom=function(){return this.shadowDom_};Blockly.Field=function(a,b){this.size_=new goog.math.Size(Blockly.BlockSvg.FIELD_WIDTH,Blockly.BlockSvg.FIELD_HEIGHT);this.setValue(a);this.setValidator(b);this.maxDisplayLength=Blockly.BlockSvg.MAX_DISPLAY_LENGTH};Blockly.Field.cacheWidths_=null;Blockly.Field.cacheReference_=0;Blockly.Field.prototype.name=void 0;Blockly.Field.prototype.text_="";Blockly.Field.prototype.sourceBlock_=null;Blockly.Field.prototype.visible_=!0;Blockly.Field.prototype.validator_=null;Blockly.Field.NBSP="\u00a0";
Blockly.Field.prototype.EDITABLE=!0;Blockly.Field.prototype.setSourceBlock=function(a){goog.asserts.assert(!this.sourceBlock_,"Field already bound to a block.");this.sourceBlock_=a};
Blockly.Field.prototype.init=function(){if(!this.fieldGroup_){this.fieldGroup_=Blockly.createSvgElement("g",{},null);this.visible_||(this.fieldGroup_.style.display="none");var a=this.getSize();this.textElement_=Blockly.createSvgElement("text",{"class":"blocklyText",x:this.sourceBlock_.RTL?-a.width/2:a.width/2,y:a.height/2+Blockly.BlockSvg.FIELD_TOP_PADDING,"dominant-baseline":"middle","text-anchor":"middle"},this.fieldGroup_);this.updateEditable();this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_);
this.mouseUpWrapper_=Blockly.bindEvent_(this.getClickTarget_(),"mouseup",this,this.onMouseUp_);this.updateTextNode_()}};Blockly.Field.prototype.dispose=function(){this.mouseUpWrapper_&&(Blockly.unbindEvent_(this.mouseUpWrapper_),this.mouseUpWrapper_=null);this.sourceBlock_=null;goog.dom.removeNode(this.fieldGroup_);this.validator_=this.textElement_=this.fieldGroup_=null};
Blockly.Connection.prototype.getOutputShape=function(){if(!this.check_)return Blockly.OUTPUT_SHAPE_SQUARE;if(-1!==this.check_.indexOf("Boolean"))return Blockly.OUTPUT_SHAPE_HEXAGONAL;if(-1!==this.check_.indexOf("Number"))return Blockly.OUTPUT_SHAPE_ROUND;this.check_.indexOf("String");return Blockly.OUTPUT_SHAPE_SQUARE};Blockly.Connection.prototype.setShadowDom=function(a){this.shadowDom_=a};Blockly.Connection.prototype.getShadowDom=function(){return this.shadowDom_};Blockly.Field=function(a,b){this.size_=new goog.math.Size(Blockly.BlockSvg.FIELD_WIDTH,Blockly.BlockSvg.FIELD_HEIGHT);this.setValue(a);this.setValidator(b);this.maxDisplayLength=Blockly.BlockSvg.MAX_DISPLAY_LENGTH};Blockly.Field.cacheWidths_=null;Blockly.Field.cacheReference_=0;Blockly.Field.prototype.name=void 0;Blockly.Field.prototype.text_="";Blockly.Field.prototype.sourceBlock_=null;Blockly.Field.prototype.visible_=!0;Blockly.Field.prototype.argType_=null;Blockly.Field.prototype.validator_=null;
Blockly.Field.NBSP="\u00a0";Blockly.Field.prototype.EDITABLE=!0;Blockly.Field.prototype.setSourceBlock=function(a){goog.asserts.assert(!this.sourceBlock_,"Field already bound to a block.");this.sourceBlock_=a};
Blockly.Field.prototype.init=function(){if(!this.fieldGroup_){this.fieldGroup_=Blockly.createSvgElement("g",{},null);this.visible_||(this.fieldGroup_.style.display="none");null!==this.getArgType()&&(this.sourceBlock_.isShadow()?this.sourceBlock_.svgGroup_.setAttribute("data-argument-type",this.getArgType()):this.fieldGroup_.setAttribute("data-argument-type",this.getArgType()));var a=this.getSize();this.textElement_=Blockly.createSvgElement("text",{"class":"blocklyText",x:this.sourceBlock_.RTL?-a.width/
2:a.width/2,y:a.height/2+Blockly.BlockSvg.FIELD_TOP_PADDING,"dominant-baseline":"middle","text-anchor":"middle"},this.fieldGroup_);this.updateEditable();this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_);this.mouseUpWrapper_=Blockly.bindEvent_(this.getClickTarget_(),"mouseup",this,this.onMouseUp_);this.updateTextNode_()}};
Blockly.Field.prototype.dispose=function(){this.mouseUpWrapper_&&(Blockly.unbindEvent_(this.mouseUpWrapper_),this.mouseUpWrapper_=null);this.sourceBlock_=null;goog.dom.removeNode(this.fieldGroup_);this.validator_=this.textElement_=this.fieldGroup_=null};
Blockly.Field.prototype.updateEditable=function(){var a=this.fieldGroup_;this.EDITABLE&&a&&(this.sourceBlock_.isEditable()?(Blockly.addClass_(a,"blocklyEditableText"),Blockly.removeClass_(a,"blocklyNonEditableText"),this.getClickTarget_().style.cursor=this.CURSOR):(Blockly.addClass_(a,"blocklyNonEditableText"),Blockly.removeClass_(a,"blocklyEditableText"),this.getClickTarget_().style.cursor=""))};Blockly.Field.prototype.isVisible=function(){return this.visible_};
Blockly.Field.prototype.setVisible=function(a){if(this.visible_!=a){this.visible_=a;var b=this.getSvgRoot();b&&(b.style.display=a?"block":"none",this.render_())}};Blockly.Field.prototype.setValidator=function(a){this.validator_=a};Blockly.Field.prototype.getValidator=function(){return this.validator_};Blockly.Field.prototype.classValidator=function(a){return a};
Blockly.Field.prototype.setVisible=function(a){if(this.visible_!=a){this.visible_=a;var b=this.getSvgRoot();b&&(b.style.display=a?"block":"none",this.render_())}};Blockly.Field.prototype.setArgType=function(a){this.argType_=a};Blockly.Field.prototype.getArgType=function(){return this.argType_};Blockly.Field.prototype.setValidator=function(a){this.validator_=a};Blockly.Field.prototype.getValidator=function(){return this.validator_};Blockly.Field.prototype.classValidator=function(a){return a};
Blockly.Field.prototype.callValidator=function(a){var b=this.classValidator(a);if(null===b)return null;void 0!==b&&(a=b);if(b=this.getValidator()){b=b.call(this,a);if(null===b)return null;void 0!==b&&(a=b)}return a};Blockly.Field.prototype.getSvgRoot=function(){return this.fieldGroup_};
Blockly.Field.prototype.render_=function(){if(this.visible_&&this.textElement_){var a=this.textElement_.textContent+"\n"+this.textElement_.className.baseVal;if(Blockly.Field.cacheWidths_&&Blockly.Field.cacheWidths_[a])var b=Blockly.Field.cacheWidths_[a];else{try{b=this.textElement_.getComputedTextLength()}catch(d){b=8*this.textElement_.textContent.length}Blockly.Field.cacheWidths_&&(Blockly.Field.cacheWidths_[a]=b)}this.EDITABLE&&(b+=Blockly.BlockSvg.EDITABLE_FIELD_PADDING);this.box_&&(b+=Blockly.BlockSvg.BOX_FIELD_PADDING);
a=b/2;if(this.sourceBlock_.isShadow())var c=Blockly.BlockSvg.FIELD_WIDTH/2,a=this.sourceBlock_.RTL?Math.min(b-c,a):Math.max(c,a);this.textElement_.setAttribute("x",a)}else b=0;this.size_.width=b;this.box_&&(this.box_.setAttribute("width",this.size_.width),this.box_.setAttribute("height",this.size_.height))};Blockly.Field.startCache=function(){Blockly.Field.cacheReference_++;Blockly.Field.cacheWidths_||(Blockly.Field.cacheWidths_={})};
@ -1001,12 +1003,12 @@ Blockly.ConnectionDB.prototype.findConnection=function(a){if(!this.length)return
Blockly.ConnectionDB.prototype.findPositionForConnection_=function(a){if(!this.length)return 0;for(var b=0,c=this.length;b<c;){var d=Math.floor((b+c)/2);if(this[d].y_<a.y_)b=d+1;else if(this[d].y_>a.y_)c=d;else{b=d;break}}return b};Blockly.ConnectionDB.prototype.removeConnection_=function(a){if(!a.inDB_)throw"Connection not in database.";var b=this.findConnection(a);if(-1==b)throw"Unable to find connection in connectionDB.";a.inDB_=!1;this.splice(b,1)};
Blockly.ConnectionDB.prototype.getNeighbours=function(a,b){function c(a){var c=e-d[a].x_,g=f-d[a].y_;Math.sqrt(c*c+g*g)<=b&&l.push(d[a]);return g<b}for(var d=this,e=a.x_,f=a.y_,g=0,h=d.length-2,k=h;g<k;)d[k].y_<f?g=k:h=k,k=Math.floor((g+h)/2);var l=[],h=g=k;if(d.length){for(;0<=g&&c(g);)g--;do h++;while(h<d.length&&c(h))}return l};Blockly.ConnectionDB.prototype.isInYRange_=function(a,b,c){return Math.abs(this[a].y_-b)<=c};
Blockly.ConnectionDB.prototype.searchForClosest=function(a,b,c){if(!this.length)return{connection:null,radius:b};var d=a.y_,e=a.x_;a.x_=e+c.x;a.y_=d+c.y;var f=this.findPositionForConnection_(a);c=null;for(var g=b,h,k=f-1;0<=k&&this.isInYRange_(k,a.y_,b);)h=this[k],a.isConnectionAllowed(h,g)&&(c=h,g=h.distanceFrom(a)),k--;for(;f<this.length&&this.isInYRange_(f,a.y_,b);)h=this[f],a.isConnectionAllowed(h,g)&&(c=h,g=h.distanceFrom(a)),f++;a.x_=e;a.y_=d;return{connection:c,radius:g}};
Blockly.ConnectionDB.init=function(a){var b=[];b[Blockly.INPUT_VALUE]=new Blockly.ConnectionDB;b[Blockly.OUTPUT_VALUE]=new Blockly.ConnectionDB;b[Blockly.NEXT_STATEMENT]=new Blockly.ConnectionDB;b[Blockly.PREVIOUS_STATEMENT]=new Blockly.ConnectionDB;a.connectionDBList=b};Blockly.constants={};Blockly.DRAG_RADIUS=5;Blockly.SNAP_RADIUS=72;Blockly.CONNECTING_SNAP_RADIUS=132;Blockly.CURRENT_CONNECTION_PREFERENCE=20;Blockly.BUMP_DELAY=0;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"};Blockly.SVG_NS="http://www.w3.org/2000/svg";Blockly.HTML_NS="http://www.w3.org/1999/xhtml";Blockly.INPUT_VALUE=1;Blockly.OUTPUT_VALUE=2;Blockly.NEXT_STATEMENT=3;
Blockly.ConnectionDB.init=function(a){var b=[];b[Blockly.INPUT_VALUE]=new Blockly.ConnectionDB;b[Blockly.OUTPUT_VALUE]=new Blockly.ConnectionDB;b[Blockly.NEXT_STATEMENT]=new Blockly.ConnectionDB;b[Blockly.PREVIOUS_STATEMENT]=new Blockly.ConnectionDB;a.connectionDBList=b};Blockly.constants={};Blockly.DRAG_RADIUS=3;Blockly.SNAP_RADIUS=48;Blockly.CONNECTING_SNAP_RADIUS=96;Blockly.CURRENT_CONNECTION_PREFERENCE=20;Blockly.BUMP_DELAY=0;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"};Blockly.SVG_NS="http://www.w3.org/2000/svg";Blockly.HTML_NS="http://www.w3.org/1999/xhtml";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.OUTPUT_SHAPE_HEXAGONAL=1;Blockly.OUTPUT_SHAPE_ROUND=2;Blockly.OUTPUT_SHAPE_SQUARE=3;Blockly.DropDownDiv=function(){};Blockly.DropDownDiv.DIV_=null;Blockly.DropDownDiv.boundsElement_=null;Blockly.DropDownDiv.owner_=null;Blockly.DropDownDiv.ARROW_SIZE=16;Blockly.DropDownDiv.BORDER_SIZE=1;Blockly.DropDownDiv.ARROW_HORIZONTAL_PADDING=12;Blockly.DropDownDiv.PADDING_Y=20;Blockly.DropDownDiv.ANIMATION_TIME=.25;Blockly.DropDownDiv.animateOutTimer_=null;Blockly.DropDownDiv.onHide_=0;
Blockly.TOOLBOX_AT_TOP=0;Blockly.TOOLBOX_AT_BOTTOM=1;Blockly.TOOLBOX_AT_LEFT=2;Blockly.TOOLBOX_AT_RIGHT=3;Blockly.OUTPUT_SHAPE_HEXAGONAL=1;Blockly.OUTPUT_SHAPE_ROUND=2;Blockly.OUTPUT_SHAPE_SQUARE=3;Blockly.STACK_GLOW_RADIUS=1.3;Blockly.REPLACEMENT_GLOW_RADIUS=2;Blockly.Categories={motion:"motion",looks:"looks",sound:"sounds",pen:"pen",data:"data",event:"events",control:"control",sensing:"sensing",operators:"operators",more:"more"};Blockly.DropDownDiv=function(){};Blockly.DropDownDiv.DIV_=null;Blockly.DropDownDiv.boundsElement_=null;Blockly.DropDownDiv.owner_=null;Blockly.DropDownDiv.ARROW_SIZE=16;Blockly.DropDownDiv.BORDER_SIZE=1;Blockly.DropDownDiv.ARROW_HORIZONTAL_PADDING=12;Blockly.DropDownDiv.PADDING_Y=20;Blockly.DropDownDiv.ANIMATION_TIME=.25;Blockly.DropDownDiv.animateOutTimer_=null;Blockly.DropDownDiv.onHide_=0;
Blockly.DropDownDiv.createDom=function(){Blockly.DropDownDiv.DIV_||(Blockly.DropDownDiv.DIV_=goog.dom.createDom("div","blocklyDropDownDiv"),document.body.appendChild(Blockly.DropDownDiv.DIV_),Blockly.DropDownDiv.content_=goog.dom.createDom("div","blocklyDropDownContent"),Blockly.DropDownDiv.DIV_.appendChild(Blockly.DropDownDiv.content_),Blockly.DropDownDiv.arrow_=goog.dom.createDom("div","blocklyDropDownArrow"),Blockly.DropDownDiv.DIV_.appendChild(Blockly.DropDownDiv.arrow_),Blockly.DropDownDiv.DIV_.style.transition=
"transform "+Blockly.DropDownDiv.ANIMATION_TIME+"s, opacity "+Blockly.DropDownDiv.ANIMATION_TIME+"s")};Blockly.DropDownDiv.setBoundsElement=function(a){Blockly.DropDownDiv.boundsElement_=a};Blockly.DropDownDiv.getContentDiv=function(){return Blockly.DropDownDiv.content_};Blockly.DropDownDiv.clearContent=function(){Blockly.DropDownDiv.content_.innerHTML=""};Blockly.DropDownDiv.setColour=function(a,b){Blockly.DropDownDiv.DIV_.style.backgroundColor=a;Blockly.DropDownDiv.DIV_.style.borderColor=b};
Blockly.DropDownDiv.showPositionedByBlock=function(a,b,c,d){a=b.workspace.scale;var e=b.getHeightWidth();e.width*=a;e.height*=a;var f=goog.style.getPageOffset(b.getSvgRoot());a=f.x+e.width/2;e=f.y+e.height;f=f.y;d&&(f+=d);Blockly.DropDownDiv.setBoundsElement(b.workspace.getParentSvg().parentNode);return Blockly.DropDownDiv.show(this,a,e,a,f,c)};
Blockly.DropDownDiv.setCategory=function(a){Blockly.DropDownDiv.DIV_.setAttribute("data-category",a)};Blockly.DropDownDiv.showPositionedByBlock=function(a,b,c,d){var e=b.workspace.scale,f=b.width;a=b.height;f*=e;a*=e;e=goog.style.getPageOffset(b.getSvgRoot());f=e.x+f/2;a=e.y+a;e=e.y;d&&(e+=d);Blockly.DropDownDiv.setBoundsElement(b.workspace.getParentSvg().parentNode);return Blockly.DropDownDiv.show(this,f,a,f,e,c)};
Blockly.DropDownDiv.show=function(a,b,c,d,e,f){Blockly.DropDownDiv.owner_=a;Blockly.DropDownDiv.onHide_=f;a=Blockly.DropDownDiv.DIV_;b=Blockly.DropDownDiv.getPositionMetrics(b,c,d,e);Blockly.DropDownDiv.arrow_.style.transform="translate("+b.arrowX+"px,"+b.arrowY+"px) rotate(45deg)";Blockly.DropDownDiv.arrow_.setAttribute("class",b.arrowAtTop?"blocklyDropDownArrow arrowTop":"blocklyDropDownArrow arrowBottom");a.style.left=b.initialX+"px";a.style.top=b.initialY+"px";a.style.display="block";a.style.opacity=
1;a.style.transform="translate("+(b.finalX-b.initialX)+"px,"+(b.finalY-b.initialY)+"px)";return b.arrowAtTop};
Blockly.DropDownDiv.getPositionMetrics=function(a,b,c,d){var e=Blockly.DropDownDiv.DIV_,f=goog.style.getPageOffset(Blockly.DropDownDiv.boundsElement_),g=goog.style.getSize(Blockly.DropDownDiv.boundsElement_),e=goog.style.getSize(e),h;b+e.height>f.y+g.height?d-e.height<f.y?(c=b+Blockly.DropDownDiv.PADDING_Y,h=!1):(a=c,c=d-e.height-Blockly.DropDownDiv.PADDING_Y,h=!0):(c=b+Blockly.DropDownDiv.PADDING_Y,h=!1);var k=a-Blockly.DropDownDiv.ARROW_SIZE/2,k=Math.max(f.x,Math.min(k,f.x+g.width));a=Math.max(f.x,
@ -1046,7 +1048,7 @@ this.oldHostMetrics_.contentHeight==a.contentHeight&&this.oldHostMetrics_.viewTo
this.hScroll.position_.y);this.oldHostMetrics_=a}};Blockly.ScrollbarPair.prototype.set=function(a,b){var c={},d=a*this.hScroll.ratio_,e=b*this.vScroll.ratio_,f=this.vScroll.scrollViewSize_;c.x=this.getRatio_(d,this.hScroll.scrollViewSize_);c.y=this.getRatio_(e,f);this.workspace_.setMetrics(c);this.hScroll.setHandlePosition(d);this.vScroll.setHandlePosition(e)};Blockly.ScrollbarPair.prototype.getRatio_=function(a,b){var c=a/b;return isNaN(c)?0:c};
Blockly.Scrollbar=function(a,b,c){this.workspace_=a;this.pair_=c||!1;this.horizontal_=b;this.oldHostMetrics_=null;this.createDom_();this.position_=new goog.math.Coordinate(0,0);b?(this.svgBackground_.setAttribute("height",Blockly.Scrollbar.scrollbarThickness),this.svgHandle_.setAttribute("height",Blockly.Scrollbar.scrollbarThickness-5),this.svgHandle_.setAttribute("y",2.5),this.lengthAttribute_="width",this.positionAttribute_="x"):(this.svgBackground_.setAttribute("width",Blockly.Scrollbar.scrollbarThickness),
this.svgHandle_.setAttribute("width",Blockly.Scrollbar.scrollbarThickness-5),this.svgHandle_.setAttribute("x",2.5),this.lengthAttribute_="height",this.positionAttribute_="y");this.onMouseDownBarWrapper_=Blockly.bindEvent_(this.svgBackground_,"mousedown",this,this.onMouseDownBar_);this.onMouseDownHandleWrapper_=Blockly.bindEvent_(this.svgHandle_,"mousedown",this,this.onMouseDownHandle_)};Blockly.Scrollbar.prototype.scrollViewSize_=0;Blockly.Scrollbar.prototype.handleLength_=0;
Blockly.Scrollbar.prototype.handlePosition_=0;Blockly.Scrollbar.prototype.isVisible_=!0;Blockly.Scrollbar.scrollbarThickness=15;goog.events.BrowserFeature.TOUCH_ENABLED&&(Blockly.Scrollbar.scrollbarThickness=25);
Blockly.Scrollbar.prototype.handlePosition_=0;Blockly.Scrollbar.prototype.isVisible_=!0;Blockly.Scrollbar.scrollbarThickness=11;goog.events.BrowserFeature.TOUCH_ENABLED&&(Blockly.Scrollbar.scrollbarThickness=25);
Blockly.Scrollbar.metricsAreEquivalent_=function(a,b){return a&&b&&a.viewWidth==b.viewWidth&&a.viewHeight==b.viewHeight&&a.viewLeft==b.viewLeft&&a.viewTop==b.viewTop&&a.absoluteTop==b.absoluteTop&&a.absoluteLeft==b.absoluteLeft&&a.contentWidth==b.contentWidth&&a.contentHeight==b.contentHeight&&a.contentLeft==b.contentLeft&&a.contentTop==b.contentTop?!0:!1};
Blockly.Scrollbar.prototype.dispose=function(){this.cleanUp_();Blockly.unbindEvent_(this.onMouseDownBarWrapper_);this.onMouseDownBarWrapper_=null;Blockly.unbindEvent_(this.onMouseDownHandleWrapper_);this.onMouseDownHandleWrapper_=null;goog.dom.removeNode(this.svgGroup_);this.workspace_=this.svgHandle_=this.svgBackground_=this.svgGroup_=null};Blockly.Scrollbar.prototype.setHandleLength_=function(a){this.handleLength_=a;this.svgHandle_.setAttribute(this.lengthAttribute_,this.handleLength_)};
Blockly.Scrollbar.prototype.setHandlePosition=function(a){this.handlePosition_=a;this.svgHandle_.setAttribute(this.positionAttribute_,this.handlePosition_)};Blockly.Scrollbar.prototype.setScrollViewSize_=function(a){this.scrollViewSize_=a;this.svgBackground_.setAttribute(this.lengthAttribute_,this.scrollViewSize_)};Blockly.Scrollbar.prototype.setPosition=function(a,b){this.position_.x=a;this.position_.y=b;this.svgGroup_.setAttribute("transform","translate("+this.position_.x+","+this.position_.y+")")};
@ -1171,7 +1173,7 @@ Blockly.Warning.textToDom_=function(a){var b=Blockly.createSvgElement("text",{"c
Blockly.Warning.prototype.setVisible=function(a){if(a!=this.isVisible())if(Blockly.Events.fire(new Blockly.Events.Ui(this.block_,"warningOpen",!a,a)),a){a=Blockly.Warning.textToDom_(this.getText());this.bubble_=new Blockly.Bubble(this.block_.workspace,a,this.block_.svgPath_,this.iconXY_,null,null);if(this.block_.RTL)for(var b=a.getBBox().width,c=0,d;d=a.childNodes[c];c++)d.setAttribute("text-anchor","end"),d.setAttribute("x",b+Blockly.Bubble.BORDER_WIDTH);this.updateColour();a=this.bubble_.getBubbleSize();
this.bubble_.setBubbleSize(a.width,a.height)}else this.bubble_.dispose(),this.body_=this.bubble_=null};Blockly.Warning.prototype.bodyFocus_=function(){this.bubble_.promote_()};Blockly.Warning.prototype.setText=function(a,b){this.text_[b]!=a&&(a?this.text_[b]=a:delete this.text_[b],this.isVisible()&&(this.setVisible(!1),this.setVisible(!0)))};Blockly.Warning.prototype.getText=function(){var a=[],b;for(b in this.text_)a.push(this.text_[b]);return a.join("\n")};
Blockly.Warning.prototype.dispose=function(){this.block_.warning=null;Blockly.Icon.prototype.dispose.call(this)};Blockly.Block=function(a,b,c){var d=a&&a.getFlyout&&a.getFlyout()?a.getFlyout().getWorkspace():null;this.id=!c||a.getBlockById(c)||d&&d.getBlockById(c)?Blockly.genUid():c;a.blockDB_[this.id]=this;this.previousConnection=this.nextConnection=this.outputConnection=null;this.inputList=[];this.inputsInline=!0;this.disabled=!1;this.tooltip="";this.contextMenu=!0;this.parentBlock_=null;this.childBlocks_=[];this.editable_=this.movable_=this.deletable_=!0;this.checkboxInFlyout_=this.collapsed_=this.isShadow_=
!1;this.outputShape_=this.comment=null;this.xy_=new goog.math.Coordinate(0,0);this.workspace=a;this.isInFlyout=a.isFlyout;this.isInMutator=a.isMutator;this.RTL=a.RTL;this.isInsertionMarker_=!1;b&&(this.type=b,c=Blockly.Blocks[b],goog.asserts.assertObject(c,'Error: "%s" is an unknown language block.',b),goog.mixin(this,c));a.addTopBlock(this);goog.isFunction(this.init)&&this.init();this.inputsInlineDefault=this.inputsInline;Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Create(this));
!1;this.category_=this.outputShape_=this.comment=null;this.xy_=new goog.math.Coordinate(0,0);this.workspace=a;this.isInFlyout=a.isFlyout;this.isInMutator=a.isMutator;this.RTL=a.RTL;this.isInsertionMarker_=!1;b&&(this.type=b,c=Blockly.Blocks[b],goog.asserts.assertObject(c,'Error: "%s" is an unknown language block.',b),goog.mixin(this,c));a.addTopBlock(this);goog.isFunction(this.init)&&this.init();this.inputsInlineDefault=this.inputsInline;Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Create(this));
goog.isFunction(this.onchange)&&(this.onchangeWrapper_=this.onchange.bind(this),this.workspace.addChangeListener(this.onchangeWrapper_))};Blockly.Block.prototype.data=null;Blockly.Block.prototype.colour_="#FF0000";Blockly.Block.prototype.colourSecondary_="#FF0000";Blockly.Block.prototype.colourTertiary_="#FF0000";
Blockly.Block.prototype.dispose=function(a){if(this.workspace){this.onchangeWrapper_&&this.workspace.removeChangeListener(this.onchangeWrapper_);this.unplug(a);Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Delete(this));Blockly.Events.disable();try{this.workspace&&(this.workspace.removeTopBlock(this),delete this.workspace.blockDB_[this.id],this.workspace=null);Blockly.selected==this&&(Blockly.selected=null);for(var b=this.childBlocks_.length-1;0<=b;b--)this.childBlocks_[b].dispose(!1);
for(var b=0,c;c=this.inputList[b];b++)c.dispose();this.inputList.length=0;for(var d=this.getConnections_(!0),b=0;b<d.length;b++){var e=d[b];e.isConnected()&&e.disconnect();d[b].dispose()}}finally{Blockly.Events.enable()}}};
@ -1200,7 +1202,7 @@ Blockly.Block.prototype.setCollapsed=function(a){this.collapsed_!=a&&(Blockly.Ev
Blockly.Block.prototype.toString=function(a,b){var c=[],d=b||"?";if(this.collapsed_)c.push(this.getInput("_TEMP_COLLAPSED_INPUT").fieldRow[0].text_);else for(var e=0,f;f=this.inputList[e];e++){for(var g=0,h;h=f.fieldRow[g];g++)c.push(h.getText());f.connection&&((f=f.connection.targetBlock())?c.push(f.toString(void 0,b)):c.push(d))}c=goog.string.trim(c.join(" "))||"???";a&&(c=goog.string.truncate(c,a));return c};
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||"")};
Blockly.Block.prototype.jsonInit=function(a){goog.asserts.assert(void 0==a.output||void 0==a.previousStatement,"Must not have both an output and a previousStatement.");void 0!==a.colour&&this.setColour(a.colour,a.colourSecondary,a.colourTertiary);for(var b=0;void 0!==a["message"+b];)this.interpolate_(a["message"+b],a["args"+b]||[],a["lastDummyAlign"+b]),b++;void 0!==a.inputsInline&&this.setInputsInline(a.inputsInline);void 0!==a.output&&this.setOutput(!0,a.output);void 0!==a.previousStatement&&this.setPreviousStatement(!0,
a.previousStatement);void 0!==a.nextStatement&&this.setNextStatement(!0,a.nextStatement);void 0!==a.tooltip&&this.setTooltip(a.tooltip);void 0!==a.helpUrl&&this.setHelpUrl(a.helpUrl);void 0!==a.outputShape&&this.setOutputShape(a.outputShape);void 0!==a.checkboxInFlyout&&this.setCheckboxInFlyout(a.checkboxInFlyout)};
a.previousStatement);void 0!==a.nextStatement&&this.setNextStatement(!0,a.nextStatement);void 0!==a.tooltip&&this.setTooltip(a.tooltip);void 0!==a.helpUrl&&this.setHelpUrl(a.helpUrl);void 0!==a.outputShape&&this.setOutputShape(a.outputShape);void 0!==a.checkboxInFlyout&&this.setCheckboxInFlyout(a.checkboxInFlyout);void 0!==a.category&&this.setCategory(a.category)};
Blockly.Block.prototype.interpolate_=function(a,b,c){var d=Blockly.utils.tokenizeInterpolation(a),e=[],f=0;a=[];for(var g=0;g<d.length;g++){var h=d[g];"number"==typeof h?(goog.asserts.assert(0<h&&h<=b.length,'Message index "%s" out of range.',h),goog.asserts.assert(!e[h],'Message index "%s" duplicated.',h),e[h]=!0,f++,a.push(b[h-1])):(h=h.trim())&&a.push(h)}goog.asserts.assert(f==b.length,"Message does not reference all %s arg(s).",b.length);!a.length||"string"!=typeof a[a.length-1]&&0!=a[a.length-
1].type.indexOf("field_")||(g={type:"input_dummy"},c&&(g.align=c),a.push(g));c={LEFT:Blockly.ALIGN_LEFT,RIGHT:Blockly.ALIGN_RIGHT,CENTRE:Blockly.ALIGN_CENTRE};b=[];for(g=0;g<a.length;g++)if(e=a[g],"string"==typeof e)b.push([e,void 0]);else{d=f=null;do if(h=!1,"string"==typeof e)f=new Blockly.FieldLabel(e);else switch(e.type){case "input_value":d=this.appendValueInput(e.name);break;case "input_statement":d=this.appendStatementInput(e.name);break;case "input_dummy":d=this.appendDummyInput(e.name);break;
case "field_label":f=new Blockly.FieldLabel(e.text,e["class"]);break;case "field_input":f=new Blockly.FieldTextInput(e.text);"boolean"==typeof e.spellcheck&&f.setSpellcheck(e.spellcheck);break;case "field_angle":f=new Blockly.FieldAngle(e.angle);break;case "field_checkbox":f=new Blockly.FieldCheckbox(e.checked?"TRUE":"FALSE");break;case "field_colour":f=new Blockly.FieldColour(e.colour);break;case "field_variable":f=new Blockly.FieldVariable(e.variable);break;case "field_dropdown":f=new Blockly.FieldDropdown(e.options);
@ -1210,7 +1212,7 @@ Blockly.Block.prototype.moveInputBefore=function(a,b){if(a!=b){for(var c=-1,d=b?
Blockly.Block.prototype.moveNumberedInputBefore=function(a,b){goog.asserts.assert(a!=b,"Can't move input to itself.");goog.asserts.assert(a<this.inputList.length,"Input index "+a+" out of bounds.");goog.asserts.assert(b<=this.inputList.length,"Reference input "+b+" out of bounds.");var c=this.inputList[a];this.inputList.splice(a,1);a<b&&b--;this.inputList.splice(b,0,c)};
Blockly.Block.prototype.removeInput=function(a,b){for(var c=0,d;d=this.inputList[c];c++)if(d.name==a){if(d.connection&&d.connection.isConnected()){d.connection.setShadowDom(null);var e=d.connection.targetBlock();e.isShadow()?e.dispose():e.unplug()}d.dispose();this.inputList.splice(c,1);return}b||goog.asserts.fail('Input "%s" not found.',a)};Blockly.Block.prototype.getInput=function(a){for(var b=0,c;c=this.inputList[b];b++)if(c.name==a)return c;return null};
Blockly.Block.prototype.getInputTargetBlock=function(a){return(a=this.getInput(a))&&a.connection&&a.connection.targetBlock()};Blockly.Block.prototype.getCommentText=function(){return this.comment||""};Blockly.Block.prototype.setCommentText=function(a){this.comment!=a&&(Blockly.Events.fire(new Blockly.Events.Change(this,"comment",null,this.comment,a||"")),this.comment=a)};Blockly.Block.prototype.setOutputShape=function(a){this.outputShape_=a};Blockly.Block.prototype.getOutputShape=function(){return this.outputShape_};
Blockly.Block.prototype.setCheckboxInFlyout=function(a){this.checkboxInFlyout_=a};Blockly.Block.prototype.hasCheckboxInFlyout=function(){return this.checkboxInFlyout_};Blockly.Block.prototype.setWarningText=function(){};Blockly.Block.prototype.setMutator=function(){};Blockly.Block.prototype.getRelativeToSurfaceXY=function(){return this.xy_};
Blockly.Block.prototype.setCategory=function(a){this.category_=a};Blockly.Block.prototype.getCategory=function(){return this.category_};Blockly.Block.prototype.setCheckboxInFlyout=function(a){this.checkboxInFlyout_=a};Blockly.Block.prototype.hasCheckboxInFlyout=function(){return this.checkboxInFlyout_};Blockly.Block.prototype.setWarningText=function(){};Blockly.Block.prototype.setMutator=function(){};Blockly.Block.prototype.getRelativeToSurfaceXY=function(){return this.xy_};
Blockly.Block.prototype.moveBy=function(a,b){goog.asserts.assert(!this.parentBlock_,"Block has parent.");var c=new Blockly.Events.Move(this);this.xy_.translate(a,b);c.recordNew();Blockly.Events.fire(c)};Blockly.Block.prototype.makeConnection_=function(a){return new Blockly.Connection(this,a)};Blockly.ContextMenu={};Blockly.ContextMenu.currentBlock=null;
Blockly.ContextMenu.show=function(a,b,c){Blockly.WidgetDiv.show(Blockly.ContextMenu,c,null);if(b.length){var d=new goog.ui.Menu;d.setRightToLeft(c);for(var e=0,f;f=b[e];e++){var g=new goog.ui.MenuItem(f.text);g.setRightToLeft(c);d.addChild(g,!0);g.setEnabled(f.enabled);f.enabled&&goog.events.listen(g,goog.ui.Component.EventType.ACTION,f.callback)}goog.events.listen(d,goog.ui.Component.EventType.ACTION,Blockly.ContextMenu.hide);b=goog.dom.getViewportSize();e=goog.style.getViewportPageOffset(document);
d.render(Blockly.WidgetDiv.DIV);var h=d.getElement();Blockly.addClass_(h,"blocklyContextMenu");Blockly.bindEvent_(h,"contextmenu",null,Blockly.noEvent);f=goog.style.getSize(h);var g=a.clientX+e.x,k=a.clientY+e.y;a.clientY+f.height>=b.height&&(k-=f.height);c?f.width>=a.clientX&&(g+=f.width):a.clientX+f.width>=b.width&&(g-=f.width);Blockly.WidgetDiv.position(g,k,b,e,c);d.setAllowAutoFocus(!0);setTimeout(function(){h.focus()},1);Blockly.ContextMenu.currentBlock=null}else Blockly.ContextMenu.hide()};
@ -1225,7 +1227,7 @@ Blockly.RenderedConnection.prototype.unhighlight=function(){goog.dom.removeNode(
Blockly.RenderedConnection.prototype.hideAll=function(){this.setHidden(!0);if(this.targetConnection)for(var a=this.targetBlock().getDescendants(),b=0;b<a.length;b++){for(var c=a[b],d=c.getConnections_(!0),e=0;e<d.length;e++)d[e].setHidden(!0);c=c.getIcons();for(e=0;e<c.length;e++)c[e].setVisible(!1)}};Blockly.RenderedConnection.prototype.isConnectionAllowed=function(a,b){return this.distanceFrom(a)>b?!1:Blockly.RenderedConnection.superClass_.isConnectionAllowed.call(this,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())};
Blockly.RenderedConnection.prototype.respawnShadow_=function(){var a=this.getSourceBlock(),b=this.getShadowDom();if(a.workspace&&b&&Blockly.Events.recordUndo){Blockly.RenderedConnection.superClass_.respawnShadow_.call(this);b=this.targetBlock();if(!b)throw"Couldn't respawn the shadow block that should exist here.";b.initSvg();b.render(!1);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();b.rendered&&b.updateDisabled();a.rendered&&a.updateDisabled();b.rendered&&a.rendered&&(this.type==Blockly.NEXT_STATEMENT||this.type==Blockly.PREVIOUS_STATEMENT?a.render():b.render())};Blockly.BlockSvg=function(a,b,c){this.svgGroup_=Blockly.createSvgElement("g",{},null);this.svgPath_=Blockly.createSvgElement("path",{"class":"blocklyPath"},this.svgGroup_);this.svgPath_.tooltip=this;this.rendered=!1;this.inputShapes_={};Blockly.Tooltip.bindMouseEvents(this.svgPath_);Blockly.BlockSvg.superClass_.constructor.call(this,a,b,c)};goog.inherits(Blockly.BlockSvg,Blockly.Block);Blockly.BlockSvg.prototype.height=0;Blockly.BlockSvg.prototype.width=0;
Blockly.RenderedConnection.prototype.connect_=function(a){Blockly.RenderedConnection.superClass_.connect_.call(this,a);var b=this.getSourceBlock();a=a.getSourceBlock();b.rendered&&b.updateDisabled();a.rendered&&a.updateDisabled();b.rendered&&a.rendered&&(this.type==Blockly.NEXT_STATEMENT||this.type==Blockly.PREVIOUS_STATEMENT?a.render():b.render())};Blockly.BlockSvg=function(a,b,c){this.svgGroup_=Blockly.createSvgElement("g",{},null);this.svgPath_=Blockly.createSvgElement("path",{"class":"blocklyPath blocklyBlockBackground"},this.svgGroup_);this.svgPath_.tooltip=this;this.rendered=!1;this.inputShapes_={};Blockly.Tooltip.bindMouseEvents(this.svgPath_);Blockly.BlockSvg.superClass_.constructor.call(this,a,b,c)};goog.inherits(Blockly.BlockSvg,Blockly.Block);Blockly.BlockSvg.prototype.height=0;Blockly.BlockSvg.prototype.width=0;
Blockly.BlockSvg.prototype.insertionMarkerMinWidth_=0;Blockly.BlockSvg.prototype.opacity_=1;Blockly.BlockSvg.prototype.dragStartXY_=null;Blockly.BlockSvg.prototype.isGlowingBlock_=!1;Blockly.BlockSvg.prototype.isGlowingStack_=!1;Blockly.BlockSvg.INLINE=-1;
Blockly.BlockSvg.prototype.initSvg=function(){goog.asserts.assert(this.workspace.rendered,"Workspace is headless.");if(!this.isInsertionMarker()){for(var a=0,b;b=this.inputList[a];a++)b.init(),b.type===Blockly.INPUT_VALUE&&this.initInputShape(b);b=this.getIcons();for(a=0;a<b.length;a++)b[a].createIcon()}this.updateColour();this.updateMovable();if(!this.workspace.options.readOnly&&!this.eventsInit_){Blockly.bindEvent_(this.getSvgRoot(),"mousedown",this,this.onMouseDown_);var c=this;Blockly.bindEvent_(this.getSvgRoot(),
"touchstart",null,function(a){Blockly.longStart_(a,c)})}this.eventsInit_=!0;this.getSvgRoot().parentNode||this.workspace.getCanvas().appendChild(this.getSvgRoot())};Blockly.BlockSvg.prototype.initInputShape=function(a){this.inputShapes_[a.name]||(this.inputShapes_[a.name]=Blockly.createSvgElement("path",{"class":"blocklyPath",style:"visibility: hidden"},this.svgGroup_))};
@ -1291,8 +1293,8 @@ Blockly.BlockSvg.FIELD_TEXTINPUT_FONTSIZE_INITIAL=12;Blockly.BlockSvg.FIELD_TEXT
Blockly.BlockSvg.prototype.connectionUiEffect=function(){this.workspace.playAudio("click")};Blockly.BlockSvg.prototype.updateColour=function(){var a;this.isGlowing_?this.getColourSecondary():this.getColour();a=this.getColourTertiary();this.svgPath_.setAttribute("stroke",a);a=this.isGlowingBlock_?this.getColourSecondary():this.getColour();this.svgPath_.setAttribute("fill",a);this.svgPath_.setAttribute("fill-opacity",this.getOpacity());a=0;for(var b;b=this.inputList[a];a++)for(var c=0,d;d=b.fieldRow[c];c++)d.setText(null)};
Blockly.BlockSvg.prototype.highlightForReplacement=function(a){a?this.svgPath_.setAttribute("filter","url(#blocklyReplacementGlowFilter)"):this.svgPath_.removeAttribute("filter")};
Blockly.BlockSvg.prototype.getHeightWidth=function(a){var b=this.height,c=this.width;!a&&this.getFieldShadowBlock_()&&(b+=Blockly.BlockSvg.FIELD_Y_OFFSET,b+=Blockly.BlockSvg.FIELD_HEIGHT);var d=this.getNextBlock();d&&(a=d.getHeightWidth(a),c+=a.width,c-=Blockly.BlockSvg.NOTCH_WIDTH,b=Math.max(b,a.height));return{height:b,width:c}};
Blockly.BlockSvg.prototype.render=function(a){Blockly.Field.startCache();this.rendered=!0;var b=this.renderingMetrics_,c=this.renderCompute_();b&&Blockly.BlockSvg.metricsAreEquivalent_(b,c)?(c.statement&&c.statement.connection&&c.statement.targetConnection&&c.statement.connection.tighten_(),this.nextConnection&&this.nextConnection.targetConnection&&this.nextConnection.tighten_()):(this.height=c.height,this.width=c.width,this.renderDraw_(c),this.renderingMetrics_=c);!1!==a&&((a=this.getParent())?a.render(!0):
Blockly.resizeSvgContents(this.workspace));Blockly.Field.stopCache()};
Blockly.BlockSvg.prototype.render=function(a){Blockly.Field.startCache();this.rendered=!0;var b=this.renderingMetrics_,c=this.renderCompute_();b&&Blockly.BlockSvg.metricsAreEquivalent_(b,c)?(c.statement&&c.statement.connection&&c.statement.targetConnection&&c.statement.connection.tighten_(),this.nextConnection&&this.nextConnection.targetConnection&&this.nextConnection.tighten_()):(this.height=c.height,this.width=c.width,this.renderDraw_(c),this.renderClassify_(c),this.renderingMetrics_=c);!1!==a&&
((a=this.getParent())?a.render(!0):Blockly.resizeSvgContents(this.workspace));Blockly.Field.stopCache()};
Blockly.BlockSvg.prototype.renderCompute_=function(){for(var a={statement:null,imageField:null,iconMenu:null,width:0,height:0,bayHeight:0,bayWidth:0,bayNotchAtRight:!0,fieldRadius:0,startHat:!1,endCap:!1},b=0,c;c=this.inputList[b];b++){if(c.type==Blockly.NEXT_STATEMENT){a.statement=c;a.bayHeight=Blockly.BlockSvg.MIN_BLOCK_Y;a.bayWidth=Blockly.BlockSvg.MIN_BLOCK_X;if(c.connection&&c.connection.targetConnection){var d=c.connection.targetBlock(),d=d.getHeightWidth(!0);a.bayHeight=Math.max(a.bayHeight,
d.height);a.bayWidth=Math.max(a.bayWidth,d.width)}(d=c.connection.targetBlock())&&!d.lastConnectionInStack()?a.bayNotchAtRight=!1:a.bayWidth-=Blockly.BlockSvg.NOTCH_WIDTH}for(var d=0,e;e=c.fieldRow[d];d++)e instanceof Blockly.FieldImage&&(a.imageField=e),e instanceof Blockly.FieldIconMenu&&(a.iconMenu=e),a.fieldRadius=e instanceof Blockly.FieldTextInput?e.getBorderRadius():Blockly.BlockSvg.FIELD_DEFAULT_CORNER_RADIUS}this.nextConnection&&!this.previousConnection&&(a.startHat=!0);this.nextConnection||
!this.previousConnection||this.outputConnection||a.statement||(a.endCap=!0);a.iconMenu&&(b=a.iconMenu.getSrcForValue(a.iconMenu.getValue()))&&a.iconMenu.setParentFieldImage(b);a.width=2*Blockly.BlockSvg.SEP_SPACE_X+Blockly.BlockSvg.IMAGE_FIELD_WIDTH;a.height=2*Blockly.BlockSvg.SEP_SPACE_Y+Blockly.BlockSvg.IMAGE_FIELD_HEIGHT;this.outputConnection&&(a.height=Blockly.BlockSvg.FIELD_HEIGHT,a.width=Blockly.BlockSvg.FIELD_WIDTH);a.statement&&(a.width+=a.bayWidth+4*Blockly.BlockSvg.CORNER_RADIUS+2*Blockly.BlockSvg.GRID_UNIT,
@ -1300,6 +1302,7 @@ a.height=a.bayHeight+Blockly.BlockSvg.STATEMENT_BLOCK_SPACE);a.startHat&&(a.widt
Blockly.BlockSvg.prototype.renderDraw_=function(a){var b=this.getRelativeToSurfaceXY(),c=[];this.renderDrawLeft_(c,b,a);this.renderDrawBottom_(c,b,a);this.renderDrawRight_(c,b,a);this.renderDrawTop_(c,b,a);b=c.join(" ");this.svgPath_.setAttribute("d",b);this.RTL&&this.svgPath_.setAttribute("transform","scale(-1 1)");if(a.imageField){var b=a.imageField.getSvgRoot(),c=a.imageField.getSize(),d=a.width-c.width-Blockly.BlockSvg.SEP_SPACE_X/1.5,e=a.height-c.height-Blockly.BlockSvg.SEP_SPACE_Y;a.endCap&&
(d-=Blockly.BlockSvg.GRID_UNIT);var f="scale(1 1)";this.RTL&&(a.imageField.getFlipRTL()?(f="scale(-1 1)",d=-a.width+c.width+Blockly.BlockSvg.SEP_SPACE_X/1.5):d=-a.width+Blockly.BlockSvg.SEP_SPACE_X/1.5);b&&(this.isInsertionMarker()&&b.setAttribute("display","none"),b.setAttribute("transform","translate("+d+","+e+") "+f))}this.getFieldShadowBlock_()&&(b=this.getFieldShadowBlock_().getSvgRoot(),c=Blockly.BlockSvg.NOTCH_WIDTH+(a.bayWidth?2*Blockly.BlockSvg.GRID_UNIT+2*Blockly.BlockSvg.NOTCH_WIDTH:0)+
a.bayWidth,a.startHat&&(c+=2*Blockly.BlockSvg.GRID_UNIT),this.RTL&&(c=-c),b.setAttribute("transform","translate("+c+","+(a.height+Blockly.BlockSvg.FIELD_Y_OFFSET)+")"))};
Blockly.BlockSvg.prototype.renderClassify_=function(a){var b=[];this.isShadow_?b.push("argument"):(a.statement&&b.push("c-block"),a.startHat?b.push("hat"):a.statement||b.push("stack"),this.nextConnection||b.push("end"));this.svgGroup_.setAttribute("data-shapes",b.join(" "));this.getCategory()&&this.svgGroup_.setAttribute("data-category",this.getCategory())};
Blockly.BlockSvg.prototype.renderDrawLeft_=function(a,b,c){c.startHat?(a.push(Blockly.BlockSvg.HAT_TOP_LEFT_CORNER_START),a.push(Blockly.BlockSvg.HAT_TOP_LEFT_CORNER)):this.previousConnection?(a.push(Blockly.BlockSvg.TOP_LEFT_CORNER_START),a.push(Blockly.BlockSvg.TOP_LEFT_CORNER),a.push("V",c.height-Blockly.BlockSvg.CORNER_RADIUS-Blockly.BlockSvg.SEP_SPACE_Y-Blockly.BlockSvg.NOTCH_HEIGHT),a.push(Blockly.BlockSvg.NOTCH_PATH_DOWN),this.previousConnection.moveTo(b.x,b.y+c.height-2*Blockly.BlockSvg.CORNER_RADIUS),
a.push("V",c.height-Blockly.BlockSvg.CORNER_RADIUS)):(a.push("m",c.fieldRadius+",0"),a.push("A",c.fieldRadius+","+c.fieldRadius,"0","0,0","0,"+c.fieldRadius),a.push("V",c.height-c.fieldRadius))};
Blockly.BlockSvg.prototype.renderDrawBottom_=function(a,b,c){c.startHat?a.push("a",Blockly.BlockSvg.HAT_CORNER_RADIUS+","+Blockly.BlockSvg.HAT_CORNER_RADIUS+" 0 0,0 "+Blockly.BlockSvg.HAT_CORNER_RADIUS+","+Blockly.BlockSvg.HAT_CORNER_RADIUS):this.previousConnection?a.push("a",Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,0 "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS):a.push("a",c.fieldRadius+","+c.fieldRadius,"0","0,0",c.fieldRadius+","+c.fieldRadius);
@ -1326,7 +1329,7 @@ Blockly.genUid=function(){for(var a=Blockly.genUid.soup_.length,b=[],c=0;20>c;c+
Blockly.utils.wrap_line_=function(a,b){if(a.length<=b)return a;for(var c=a.trim().split(/\s+/),d=0;d<c.length;d++)c[d].length>b&&(b=c[d].length);var e,d=-Infinity,f,g=1;do{e=d;f=a;for(var h=[],k=c.length/g,l=1,d=0;d<c.length-1;d++)l<(d+1.5)/k?(l++,h[d]=!0):h[d]=!1;h=Blockly.utils.wrapMutate_(c,h,b);d=Blockly.utils.wrapScore_(c,h,b);a=Blockly.utils.wrapToText_(c,h);g++}while(d>e);return f};
Blockly.utils.wrapScore_=function(a,b,c){for(var d=[0],e=[],f=0;f<a.length;f++)d[d.length-1]+=a[f].length,!0===b[f]?(d.push(0),e.push(a[f].charAt(a[f].length-1))):!1===b[f]&&d[d.length-1]++;a=Math.max.apply(Math,d);for(f=b=0;f<d.length;f++)b-=2*Math.pow(Math.abs(c-d[f]),1.5),b-=Math.pow(a-d[f],1.5),-1!=".?!".indexOf(e[f])?b+=c/3:-1!=",;)]}".indexOf(e[f])&&(b+=c/4);1<d.length&&d[d.length-1]<=d[d.length-2]&&(b+=.5);return b};
Blockly.utils.wrapMutate_=function(a,b,c){for(var d=Blockly.utils.wrapScore_(a,b,c),e,f=0;f<b.length-1;f++)if(b[f]!=b[f+1]){var g=[].concat(b);g[f]=!g[f];g[f+1]=!g[f+1];var h=Blockly.utils.wrapScore_(a,g,c);h>d&&(d=h,e=g)}return e?Blockly.utils.wrapMutate_(a,e,c):b};Blockly.utils.wrapToText_=function(a,b){for(var c=[],d=0;d<a.length;d++)c.push(a[d]),void 0!==b[d]&&c.push(b[d]?"\n":" ");return c.join("")};
Blockly.measureText=function(a,b,c,d){var e=document.createElement("canvas").getContext("2d");e.font=c+" "+a+" "+b;return e.measureText(d).width};Blockly.encodeEntities=function(a){return a.replace(/[\u00A0-\u9999<>\&]/gim,function(a){return"&#"+a.charCodeAt(0)+";"})};Blockly.FieldTextInput=function(a,b,c){Blockly.FieldTextInput.superClass_.constructor.call(this,a,b);this.setRestrictor(c)};goog.inherits(Blockly.FieldTextInput,Blockly.Field);Blockly.FieldTextInput.ANIMATION_TIME=.25;Blockly.FieldTextInput.TEXT_MEASURE_PADDING_MAGIC=45;Blockly.FieldTextInput.prototype.CURSOR="text";Blockly.FieldTextInput.prototype.spellcheck_=!0;
Blockly.measureText=function(a,b,c,d){var e=document.createElement("canvas").getContext("2d");e.font=c+" "+a+" "+b;return e.measureText(d).width};Blockly.encodeEntities=function(a){return a.replace(/[\u00A0-\u9999<>\&]/gim,function(a){return"&#"+a.charCodeAt(0)+";"})};Blockly.FieldTextInput=function(a,b,c){Blockly.FieldTextInput.superClass_.constructor.call(this,a,b);this.setRestrictor(c);this.setArgType("text")};goog.inherits(Blockly.FieldTextInput,Blockly.Field);Blockly.FieldTextInput.ANIMATION_TIME=.25;Blockly.FieldTextInput.TEXT_MEASURE_PADDING_MAGIC=45;Blockly.FieldTextInput.prototype.CURSOR="text";Blockly.FieldTextInput.prototype.spellcheck_=!0;
Blockly.FieldTextInput.prototype.init=function(){Blockly.FieldTextInput.superClass_.init.call(this);this.sourceBlock_.isShadow()||(this.box_=Blockly.createSvgElement("rect",{rx:Blockly.BlockSvg.CORNER_RADIUS,ry:Blockly.BlockSvg.CORNER_RADIUS,x:0,y:0,width:this.size_.width,height:this.size_.height,fill:Blockly.Colours.textField,stroke:this.sourceBlock_.getColourTertiary()}),this.fieldGroup_.insertBefore(this.box_,this.textElement_))};
Blockly.FieldTextInput.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldTextInput.superClass_.dispose.call(this)};Blockly.FieldTextInput.prototype.setValue=function(a){if(null!==a){if(this.sourceBlock_){var b=this.callValidator(a);null!==b&&(a=b)}Blockly.Field.prototype.setValue.call(this,a)}};Blockly.FieldTextInput.prototype.setSpellcheck=function(a){this.spellcheck_=a};Blockly.FieldTextInput.prototype.setRestrictor=function(a){this.restrictor_=a};
Blockly.FieldTextInput.prototype.showEditor_=function(a,b){this.workspace_=this.sourceBlock_.workspace;var c=a||!1,d=b||!1;Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,this.widgetDispose_(),this.widgetDisposeAnimationFinished_(),Blockly.FieldTextInput.ANIMATION_TIME);var e=Blockly.WidgetDiv.DIV;e.className+=" fieldTextInput";var f=goog.dom.createDom("INPUT","blocklyHtmlInput");f.setAttribute("spellcheck",this.spellcheck_);d&&f.setAttribute("readonly","true");Blockly.FieldTextInput.htmlInput_=
@ -1342,48 +1345,50 @@ d.x-=a/2;d.y-=a/2;this.sourceBlock_.RTL&&(d.x+=c,d.x-=b.offsetWidth*a);d.y+=1*a;
Blockly.FieldTextInput.prototype.widgetDispose_=function(){var a=this;return function(){var b=Blockly.WidgetDiv.DIV,c=Blockly.FieldTextInput.htmlInput_,d=c.value;if(a.sourceBlock_)if(d=a.callValidator(d),null===d)d=c.defaultValue;else if(a.onFinishEditing_)a.onFinishEditing_(d);a.setValue(d);a.sourceBlock_.rendered&&a.sourceBlock_.render();Blockly.unbindEvent_(c.onKeyDownWrapper_);Blockly.unbindEvent_(c.onKeyUpWrapper_);Blockly.unbindEvent_(c.onKeyPressWrapper_);Blockly.unbindEvent_(c.onInputWrapper_);
a.workspace_.removeChangeListener(c.onWorkspaceChangeWrapper_);c.style.fontSize=Blockly.BlockSvg.FIELD_TEXTINPUT_FONTSIZE_INITIAL+"pt";b.style.boxShadow="";a.sourceBlock_&&(c=a.sourceBlock_.getHeightWidth(),b.style.width=c.width+1+"px",b.style.height=c.height+1+"px");b.style.marginLeft=0}};
Blockly.FieldTextInput.prototype.widgetDisposeAnimationFinished_=function(){return function(){var a=Blockly.WidgetDiv.DIV.style;a.width="auto";a.height="auto";a.fontSize="";Blockly.WidgetDiv.DIV.className="blocklyWidgetDiv";Blockly.WidgetDiv.DIV.removeAttribute("style");Blockly.FieldTextInput.htmlInput_.style.transition="";Blockly.FieldTextInput.htmlInput_=null}};
Blockly.FieldTextInput.numberValidator=function(a){console.warn("Blockly.FieldTextInput.numberValidator is deprecated. Use Blockly.FieldNumber instead.");if(null===a)return null;a=String(a);a=a.replace(/O/ig,"0");a=a.replace(/,/g,"");a=parseFloat(a||0);return isNaN(a)?null:String(a)};Blockly.FieldTextInput.nonnegativeIntegerValidator=function(a){(a=Blockly.FieldTextInput.numberValidator(a))&&(a=String(Math.max(0,Math.floor(a))));return a};Blockly.FieldAngle=function(a,b){this.symbol_=Blockly.createSvgElement("tspan",{},null);this.symbol_.appendChild(document.createTextNode("\u00b0"));Blockly.FieldAngle.superClass_.constructor.call(this,a,b)};goog.inherits(Blockly.FieldAngle,Blockly.FieldTextInput);Blockly.FieldAngle.ROUND=15;Blockly.FieldAngle.HALF=50;Blockly.FieldAngle.CLOCKWISE=!0;Blockly.FieldAngle.OFFSET=90;Blockly.FieldAngle.WRAP=180;Blockly.FieldAngle.RADIUS=Blockly.FieldAngle.HALF-1;
Blockly.FieldTextInput.numberValidator=function(a){console.warn("Blockly.FieldTextInput.numberValidator is deprecated. Use Blockly.FieldNumber instead.");if(null===a)return null;a=String(a);a=a.replace(/O/ig,"0");a=a.replace(/,/g,"");a=parseFloat(a||0);return isNaN(a)?null:String(a)};Blockly.FieldTextInput.nonnegativeIntegerValidator=function(a){(a=Blockly.FieldTextInput.numberValidator(a))&&(a=String(Math.max(0,Math.floor(a))));return a};Blockly.FieldAngle=function(a,b){this.symbol_=Blockly.createSvgElement("tspan",{},null);this.symbol_.appendChild(document.createTextNode("\u00b0"));Blockly.FieldAngle.superClass_.constructor.call(this,a,b);this.setArgType("angle")};goog.inherits(Blockly.FieldAngle,Blockly.FieldTextInput);Blockly.FieldAngle.ROUND=15;Blockly.FieldAngle.HALF=50;Blockly.FieldAngle.CLOCKWISE=!0;Blockly.FieldAngle.OFFSET=90;Blockly.FieldAngle.WRAP=180;Blockly.FieldAngle.RADIUS=Blockly.FieldAngle.HALF-1;
Blockly.FieldAngle.prototype.dispose_=function(){var a=this;return function(){Blockly.FieldAngle.superClass_.dispose_.call(a)();a.gauge_=null;a.clickWrapper_&&Blockly.unbindEvent_(a.clickWrapper_);a.moveWrapper1_&&Blockly.unbindEvent_(a.moveWrapper1_);a.moveWrapper2_&&Blockly.unbindEvent_(a.moveWrapper2_)}};
Blockly.FieldAngle.prototype.showEditor_=function(){Blockly.FieldAngle.superClass_.showEditor_.call(this,goog.userAgent.MOBILE||goog.userAgent.ANDROID||goog.userAgent.IPAD);Blockly.DropDownDiv.hideWithoutAnimation();Blockly.DropDownDiv.clearContent();var a=Blockly.DropDownDiv.getContentDiv(),a=Blockly.createSvgElement("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1",height:2*Blockly.FieldAngle.HALF+"px",
width:2*Blockly.FieldAngle.HALF+"px"},a),b=Blockly.createSvgElement("circle",{cx:Blockly.FieldAngle.HALF,cy:Blockly.FieldAngle.HALF,r:Blockly.FieldAngle.RADIUS,"class":"blocklyAngleCircle"},a);this.gauge_=Blockly.createSvgElement("path",{"class":"blocklyAngleGauge"},a);this.line_=Blockly.createSvgElement("line",{x1:Blockly.FieldAngle.HALF,y1:Blockly.FieldAngle.HALF,"class":"blocklyAngleLine"},a);for(var c=0;360>c;c+=15)Blockly.createSvgElement("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);Blockly.DropDownDiv.setColour(this.sourceBlock_.parentBlock_.getColour(),this.sourceBlock_.getColourTertiary());Blockly.DropDownDiv.showPositionedByBlock(this,this.sourceBlock_);this.clickWrapper_=Blockly.bindEvent_(a,"click",this,function(){Blockly.WidgetDiv.hide();
Blockly.DropDownDiv.hide()});this.moveWrapper1_=Blockly.bindEvent_(b,"mousemove",this,this.onMouseMove);this.moveWrapper2_=Blockly.bindEvent_(this.gauge_,"mousemove",this,this.onMouseMove);this.updateGraph_()};
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);Blockly.DropDownDiv.setColour(this.sourceBlock_.parentBlock_.getColour(),this.sourceBlock_.getColourTertiary());Blockly.DropDownDiv.setCategory(this.sourceBlock_.parentBlock_.getCategory());Blockly.DropDownDiv.showPositionedByBlock(this,this.sourceBlock_);this.clickWrapper_=
Blockly.bindEvent_(a,"click",this,function(){Blockly.WidgetDiv.hide();Blockly.DropDownDiv.hide()});this.moveWrapper1_=Blockly.bindEvent_(b,"mousemove",this,this.onMouseMove);this.moveWrapper2_=Blockly.bindEvent_(this.gauge_,"mousemove",this,this.onMouseMove);this.updateGraph_()};
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=goog.math.toDegrees(b),0>c?b+=180:0<a&&(b+=360),b=Blockly.FieldAngle.CLOCKWISE?Blockly.FieldAngle.OFFSET+360-b:b-Blockly.FieldAngle.OFFSET,Blockly.FieldAngle.ROUND&&(b=Math.round(b/Blockly.FieldAngle.ROUND)*Blockly.FieldAngle.ROUND),b=this.callValidator(b),Blockly.FieldTextInput.htmlInput_.value=
b,this.setValue(b),this.validate_(),this.resizeEditor_())};Blockly.FieldAngle.prototype.setText=function(a){Blockly.FieldAngle.superClass_.setText.call(this,a);this.textElement_&&(this.updateGraph_(),this.sourceBlock_.RTL?this.textElement_.insertBefore(this.symbol_,this.textElement_.firstChild):this.textElement_.appendChild(this.symbol_),this.size_.width=0)};
Blockly.FieldAngle.prototype.updateGraph_=function(){if(this.gauge_){var a=Number(this.getText())+Blockly.FieldAngle.OFFSET,b=goog.math.toRadians(a),a=["M ",Blockly.FieldAngle.HALF,",",Blockly.FieldAngle.HALF],c=Blockly.FieldAngle.HALF,d=Blockly.FieldAngle.HALF;if(!isNaN(b)){var e=goog.math.toRadians(Blockly.FieldAngle.OFFSET),f=Math.cos(e)*Blockly.FieldAngle.RADIUS,g=Math.sin(e)*-Blockly.FieldAngle.RADIUS;Blockly.FieldAngle.CLOCKWISE&&(b=2*e-b);c+=Math.cos(b)*Blockly.FieldAngle.RADIUS;d-=Math.sin(b)*
Blockly.FieldAngle.RADIUS;b=Math.abs(Math.floor((b-e)/Math.PI)%2);Blockly.FieldAngle.CLOCKWISE&&(b=1-b);a.push(" l ",f,",",g," A ",Blockly.FieldAngle.RADIUS,",",Blockly.FieldAngle.RADIUS," 0 ",b," ",Number(Blockly.FieldAngle.CLOCKWISE)," ",c,",",d," z")}this.gauge_.setAttribute("d",a.join(""));this.line_.setAttribute("x2",c);this.line_.setAttribute("y2",d)}};
Blockly.FieldAngle.prototype.classValidator=function(a){if(null===a)return null;a=parseFloat(a||0);if(isNaN(a))return null;a%=360;0>a&&(a+=360);a>Blockly.FieldAngle.WRAP&&(a-=360);return String(a)};Blockly.FieldCheckbox=function(a,b){Blockly.FieldCheckbox.superClass_.constructor.call(this,"",b);this.setValue(a)};goog.inherits(Blockly.FieldCheckbox,Blockly.Field);Blockly.FieldCheckbox.CHECK_CHAR="\u2713";Blockly.FieldCheckbox.prototype.CURSOR="default";
Blockly.FieldAngle.prototype.classValidator=function(a){if(null===a)return null;a=parseFloat(a||0);if(isNaN(a))return null;a%=360;0>a&&(a+=360);a>Blockly.FieldAngle.WRAP&&(a-=360);return String(a)};Blockly.FieldCheckbox=function(a,b){Blockly.FieldCheckbox.superClass_.constructor.call(this,"",b);this.setValue(a);this.setArgType("checkbox")};goog.inherits(Blockly.FieldCheckbox,Blockly.Field);Blockly.FieldCheckbox.CHECK_CHAR="\u2713";Blockly.FieldCheckbox.prototype.CURSOR="default";
Blockly.FieldCheckbox.prototype.init=function(){if(!this.fieldGroup_){Blockly.FieldCheckbox.superClass_.init.call(this);this.checkElement_=Blockly.createSvgElement("text",{"class":"blocklyText blocklyCheckbox",x:-3,y:14},this.fieldGroup_);var a=document.createTextNode(Blockly.FieldCheckbox.CHECK_CHAR);this.checkElement_.appendChild(a);this.checkElement_.style.display=this.state_?"block":"none"}};Blockly.FieldCheckbox.prototype.getValue=function(){return String(this.state_).toUpperCase()};
Blockly.FieldCheckbox.prototype.setValue=function(a){a="TRUE"==a;this.state_!==a&&(this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.state_,a)),this.state_=a,this.checkElement_&&(this.checkElement_.style.display=a?"block":"none"))};Blockly.FieldCheckbox.prototype.showEditor_=function(){var a=!this.state_;this.sourceBlock_&&(a=this.callValidator(a));null!==a&&this.setValue(String(a).toUpperCase())};Blockly.FieldColour=function(a,b){Blockly.FieldColour.superClass_.constructor.call(this,a,b)};goog.inherits(Blockly.FieldColour,Blockly.Field);Blockly.FieldColour.prototype.colours_=null;Blockly.FieldColour.prototype.columns_=0;Blockly.FieldColour.prototype.init=function(a){Blockly.FieldColour.superClass_.init.call(this,a);this.setValue(this.getValue())};Blockly.FieldColour.prototype.CURSOR="default";Blockly.FieldColour.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldColour.superClass_.dispose.call(this)};
Blockly.FieldColour.prototype.getValue=function(){return this.colour_};Blockly.FieldColour.prototype.setValue=function(a){this.sourceBlock_&&Blockly.Events.isEnabled()&&this.colour_!=a&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.colour_,a));this.colour_=a;this.sourceBlock_&&this.sourceBlock_.setColour(a,this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourTertiary())};
Blockly.FieldColour.prototype.getText=function(){var a=this.colour_,b=a.match(/^#(.)\1(.)\2(.)\3$/);b&&(a="#"+b[1]+b[2]+b[3]);return a};Blockly.FieldColour.prototype.getSize=function(){return new goog.math.Size(Blockly.BlockSvg.FIELD_WIDTH,Blockly.BlockSvg.FIELD_HEIGHT)};Blockly.FieldColour.COLOURS=goog.ui.ColorPicker.SIMPLE_GRID_COLORS;Blockly.FieldColour.COLUMNS=7;Blockly.FieldColour.prototype.setColours=function(a){this.colours_=a;return this};
Blockly.FieldColour.prototype.setColumns=function(a){this.columns_=a;return this};
Blockly.FieldCheckbox.prototype.setValue=function(a){a="TRUE"==a;this.state_!==a&&(this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.state_,a)),this.state_=a,this.checkElement_&&(this.checkElement_.style.display=a?"block":"none"))};Blockly.FieldCheckbox.prototype.showEditor_=function(){var a=!this.state_;this.sourceBlock_&&(a=this.callValidator(a));null!==a&&this.setValue(String(a).toUpperCase())};Blockly.FieldColour=function(a,b){Blockly.FieldColour.superClass_.constructor.call(this,a,b);this.setArgType("colour")};goog.inherits(Blockly.FieldColour,Blockly.Field);Blockly.FieldColour.prototype.colours_=null;Blockly.FieldColour.prototype.columns_=0;Blockly.FieldColour.prototype.init=function(a){Blockly.FieldColour.superClass_.init.call(this,a);this.setValue(this.getValue())};Blockly.FieldColour.prototype.CURSOR="default";
Blockly.FieldColour.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldColour.superClass_.dispose.call(this)};Blockly.FieldColour.prototype.getValue=function(){return this.colour_};
Blockly.FieldColour.prototype.setValue=function(a){this.sourceBlock_&&Blockly.Events.isEnabled()&&this.colour_!=a&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.colour_,a));this.colour_=a;this.sourceBlock_&&this.sourceBlock_.setColour(a,this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourTertiary())};Blockly.FieldColour.prototype.getText=function(){var a=this.colour_,b=a.match(/^#(.)\1(.)\2(.)\3$/);b&&(a="#"+b[1]+b[2]+b[3]);return a};
Blockly.FieldColour.prototype.getSize=function(){return new goog.math.Size(Blockly.BlockSvg.FIELD_WIDTH,Blockly.BlockSvg.FIELD_HEIGHT)};Blockly.FieldColour.COLOURS=goog.ui.ColorPicker.SIMPLE_GRID_COLORS;Blockly.FieldColour.COLUMNS=7;Blockly.FieldColour.prototype.setColours=function(a){this.colours_=a;return this};Blockly.FieldColour.prototype.setColumns=function(a){this.columns_=a;return this};
Blockly.FieldColour.prototype.showEditor_=function(){Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,Blockly.FieldColour.widgetDispose_);var a=new goog.ui.ColorPicker;a.setSize(this.columns_||Blockly.FieldColour.COLUMNS);a.setColors(this.colours_||Blockly.FieldColour.COLOURS);var b=goog.dom.getViewportSize(),c=goog.style.getViewportPageOffset(document),d=this.getAbsoluteXY_(),e=this.getScaledBBox_();a.render(Blockly.WidgetDiv.DIV);a.setSelectedColor(this.getValue());var f=goog.style.getSize(a.getElement());
d.y=d.y+f.height+e.height>=b.height+c.y?d.y-(f.height-1):d.y+(e.height-1);this.sourceBlock_.RTL?(d.x+=e.width,d.x-=f.width,d.x<c.x&&(d.x=c.x)):d.x>b.width+c.x-f.width&&(d.x=b.width+c.x-f.width);Blockly.WidgetDiv.position(d.x,d.y,b,c,this.sourceBlock_.RTL);var g=this;Blockly.FieldColour.changeEventKey_=goog.events.listen(a,goog.ui.ColorPicker.EventType.CHANGE,function(a){a=a.target.getSelectedColor()||"#000000";Blockly.WidgetDiv.hide();g.sourceBlock_&&(a=g.callValidator(a));null!==a&&g.setValue(a)})};
Blockly.FieldColour.widgetDispose_=function(){Blockly.FieldColour.changeEventKey_&&goog.events.unlistenByKey(Blockly.FieldColour.changeEventKey_)};Blockly.FieldDropdown=function(a,b){this.menuGenerator_=a;this.trimOptions_();var c=this.getOptions_()[0];Blockly.FieldDropdown.superClass_.constructor.call(this,c[1],b)};goog.inherits(Blockly.FieldDropdown,Blockly.Field);Blockly.FieldDropdown.CHECKMARK_OVERHANG=25;Blockly.FieldDropdown.ARROW_CHAR=goog.userAgent.ANDROID?"\u25bc":"\u25be";Blockly.FieldDropdown.prototype.CURSOR="default";
Blockly.FieldColour.widgetDispose_=function(){Blockly.FieldColour.changeEventKey_&&goog.events.unlistenByKey(Blockly.FieldColour.changeEventKey_)};Blockly.FieldDropdown=function(a,b){this.menuGenerator_=a;this.trimOptions_();var c=this.getOptions_()[0];Blockly.FieldDropdown.superClass_.constructor.call(this,c[1],b);this.setArgType("dropdown")};goog.inherits(Blockly.FieldDropdown,Blockly.Field);Blockly.FieldDropdown.CHECKMARK_OVERHANG=25;Blockly.FieldDropdown.ARROW_CHAR=goog.userAgent.ANDROID?"\u25bc":"\u25be";Blockly.FieldDropdown.prototype.CURSOR="default";Blockly.FieldDropdown.prototype.selectedItem=null;
Blockly.FieldDropdown.prototype.init=function(){if(!this.fieldGroup_){this.arrow_=Blockly.createSvgElement("tspan",{},null);this.arrow_.appendChild(document.createTextNode(this.sourceBlock_.RTL?Blockly.FieldDropdown.ARROW_CHAR+" ":" "+Blockly.FieldDropdown.ARROW_CHAR));Blockly.FieldDropdown.superClass_.init.call(this);this.sourceBlock_.isShadow()||(this.box_=Blockly.createSvgElement("rect",{rx:Blockly.BlockSvg.CORNER_RADIUS,ry:Blockly.BlockSvg.CORNER_RADIUS,x:0,y:0,width:this.size_.width,height:this.size_.height,
stroke:this.sourceBlock_.getColourTertiary()},this.fieldGroup_));var a=this.text_;this.text_=null;this.setText(a)}};
Blockly.FieldDropdown.prototype.showEditor_=function(){Blockly.DropDownDiv.hideWithoutAnimation();Blockly.DropDownDiv.clearContent();var a=Blockly.DropDownDiv.getContentDiv(),b=this,c=new goog.ui.Menu;c.setRightToLeft(this.sourceBlock_.RTL);for(var d=this.getOptions_(),e=0;e<d.length;e++){var f=d[e][1],g=new goog.ui.MenuItem(d[e][0]);g.setRightToLeft(this.sourceBlock_.RTL);g.setValue(f);g.setCheckable(!0);c.addChild(g,!0);g.setChecked(f==this.value_)}goog.events.listen(c,goog.ui.Component.EventType.ACTION,
function(a){if(a=a.target)a=a.getValue(),b.sourceBlock_&&(a=b.callValidator(a)),null!==a&&b.setValue(a);Blockly.DropDownDiv.hide()});c.getHandler().listen(c.getElement(),goog.events.EventType.TOUCHSTART,function(a){this.getOwnerControl(a.target).handleMouseDown(a)});c.getHandler().listen(c.getElement(),goog.events.EventType.TOUCHEND,function(a){this.getOwnerControl(a.target).performActionInternal(a)});c.render(a);a=c.getElement();Blockly.addClass_(a,"blocklyDropdownMenu");goog.style.getSize(a).height=
a.scrollHeight;d=this.sourceBlock_.isShadow()?this.sourceBlock_.parentBlock_.getColour():this.sourceBlock_.getColour();Blockly.DropDownDiv.setColour(d,this.sourceBlock_.getColourTertiary());Blockly.DropDownDiv.showPositionedByBlock(this,this.sourceBlock_);c.setAllowAutoFocus(!0);a.focus()};
Blockly.FieldDropdown.prototype.showEditor_=function(){Blockly.DropDownDiv.hideWithoutAnimation();Blockly.DropDownDiv.clearContent();var a=Blockly.DropDownDiv.getContentDiv(),b=this,c=new goog.ui.Menu;c.setRightToLeft(this.sourceBlock_.RTL);for(var d=this.getOptions_(),e=0;e<d.length;e++){var f=d[e][1],g=new goog.ui.MenuItem(d[e][0]);g.setRightToLeft(this.sourceBlock_.RTL);g.setValue(f);g.setCheckable(!0);c.addChild(g,!0);f=f==this.value_;g.setChecked(f);f&&(this.selectedItem=g)}goog.events.listen(c,
goog.ui.Component.EventType.ACTION,function(a){if(a=a.target)a=a.getValue(),b.sourceBlock_&&(a=b.callValidator(a)),null!==a&&b.setValue(a);Blockly.DropDownDiv.hide()});c.getHandler().listen(c.getElement(),goog.events.EventType.TOUCHSTART,function(a){this.getOwnerControl(a.target).handleMouseDown(a)});c.getHandler().listen(c.getElement(),goog.events.EventType.TOUCHEND,function(a){this.getOwnerControl(a.target).performActionInternal(a)});c.render(a);a=c.getElement();Blockly.addClass_(a,"blocklyDropdownMenu");
goog.style.getSize(a).height=a.scrollHeight;d=this.sourceBlock_.isShadow()?this.sourceBlock_.parentBlock_.getColour():this.sourceBlock_.getColour();Blockly.DropDownDiv.setColour(d,this.sourceBlock_.getColourTertiary());d=this.sourceBlock_.isShadow()?this.sourceBlock_.parentBlock_.getCategory():this.sourceBlock_.getCategory();Blockly.DropDownDiv.setCategory(d);e=this.sourceBlock_.workspace.scale;g=this.size_.width;d=this.size_.height;g*=e;d*=e;e=goog.style.getPageOffset(this.fieldGroup_);g=e.x+g/2;
d=e.y+d;e=e.y;Blockly.DropDownDiv.setBoundsElement(this.sourceBlock_.workspace.getParentSvg().parentNode);Blockly.DropDownDiv.show(this,g,d,g,e);c.setAllowAutoFocus(!0);a.focus()};
Blockly.FieldDropdown.prototype.trimOptions_=function(){this.suffixField=this.prefixField=null;var a=this.menuGenerator_;if(goog.isArray(a)&&!(2>a.length)){var b=a.map(function(a){return a[0]}),c=Blockly.shortestStringLength(b),d=Blockly.commonWordPrefix(b,c),e=Blockly.commonWordSuffix(b,c);if((d||e)&&!(c<=d+e)){d&&(this.prefixField=b[0].substring(0,d-1));e&&(this.suffixField=b[0].substr(1-e));b=[];for(c=0;c<a.length;c++){var f=a[c][0],g=a[c][1],f=f.substring(d,f.length-e);b[c]=[f,g]}this.menuGenerator_=
b}}};Blockly.FieldDropdown.prototype.getOptions_=function(){return goog.isFunction(this.menuGenerator_)?this.menuGenerator_.call(this):this.menuGenerator_};Blockly.FieldDropdown.prototype.getValue=function(){return this.value_};
Blockly.FieldDropdown.prototype.setValue=function(a){if(null!==a&&a!==this.value_){this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,a));this.value_=a;for(var b=this.getOptions_(),c=0;c<b.length;c++)if(b[c][1]==a){this.setText(b[c][0]);return}this.setText(a)}};
Blockly.FieldDropdown.prototype.setValue=function(a){if(null!==a&&a!==this.value_){this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,a));this.selectedItem&&(this.selectedItem.setChecked(!1),this.selectedItem=null);this.value_=a;for(var b=this.getOptions_(),c=0;c<b.length;c++)if(b[c][1]==a){this.setText(b[c][0]);return}this.setText(a)}};
Blockly.FieldDropdown.prototype.setText=function(a){null!==a&&a!==this.text_&&(this.text_=a,this.updateTextNode_(),this.textElement_&&(this.textElement_.setAttribute("class",this.textElement_.getAttribute("class")+" blocklyDropdownText"),this.sourceBlock_.RTL?this.textElement_.insertBefore(this.arrow_,this.textElement_.firstChild):this.textElement_.appendChild(this.arrow_)),this.sourceBlock_&&this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_()))};
Blockly.FieldDropdown.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldDropdown.superClass_.dispose.call(this)};Blockly.FieldIconMenu=function(a){this.icons_=a;Blockly.FieldIconMenu.superClass_.constructor.call(this,a[0].value)};goog.inherits(Blockly.FieldIconMenu,Blockly.Field);Blockly.FieldIconMenu.DROPDOWN_WIDTH=168;Blockly.FieldIconMenu.savedPrimary_=null;
Blockly.FieldDropdown.prototype.dispose=function(){this.selectedItem=null;Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldDropdown.superClass_.dispose.call(this)};Blockly.FieldIconMenu=function(a){this.icons_=a;Blockly.FieldIconMenu.superClass_.constructor.call(this,a[0].value);this.setArgType("iconmenu")};goog.inherits(Blockly.FieldIconMenu,Blockly.Field);Blockly.FieldIconMenu.DROPDOWN_WIDTH=168;Blockly.FieldIconMenu.savedPrimary_=null;
Blockly.FieldIconMenu.prototype.init=function(a){this.arrowX_=18;this.arrowY_=10;a.RTL&&(this.arrowX_=-this.arrowX_-12);this.arrowIcon_=Blockly.createSvgElement("image",{height:"12px",width:"12px",transform:"translate("+this.arrowX_+","+this.arrowY_+")"});this.arrowIcon_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",Blockly.mainWorkspace.options.pathToMedia+"dropdown-arrow.svg");a.getSvgRoot().appendChild(this.arrowIcon_);Blockly.FieldIconMenu.superClass_.init.call(this,a)};
Blockly.FieldIconMenu.prototype.CURSOR="default";Blockly.FieldIconMenu.prototype.setValue=function(a){null!==a&&a!==this.value_&&(this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,a)),this.value_=a,this.setParentFieldImage(this.getSrcForValue(this.value_)))};
Blockly.FieldIconMenu.prototype.setParentFieldImage=function(a){if(this.sourceBlock_&&this.sourceBlock_.parentBlock_)for(var b=this.sourceBlock_.parentBlock_,c=0,d;d=b.inputList[c];c++)for(var e=0,f;f=d.fieldRow[e];e++)if(f instanceof Blockly.FieldImage){f.setValue(a);return}};Blockly.FieldIconMenu.prototype.getValue=function(){return this.value_};Blockly.FieldIconMenu.prototype.getSrcForValue=function(a){for(var b=0,c;c=this.icons_[b];b++)if(c.value===a)return c.src};
Blockly.FieldIconMenu.prototype.showEditor_=function(){if(!Blockly.DropDownDiv.hideIfOwner(this)){Blockly.DropDownDiv.hideWithoutAnimation();Blockly.DropDownDiv.clearContent();var a=Blockly.DropDownDiv.getContentDiv();a.setAttribute("role","menu");a.setAttribute("aria-haspopup","true");for(var b=0,c;c=this.icons_[b];b++){if("placeholder"==c.type){var d=document.createElement("span");d.setAttribute("class","blocklyDropDownPlaceholder");d.style.width=c.width+"px";d.style.height=c.height+"px"}else{d=
document.createElement("button");d.setAttribute("id",":"+b);d.setAttribute("role","menuitem");d.setAttribute("class","blocklyDropDownButton");d.title=c.alt;d.style.width=c.width+"px";d.style.height=c.height+"px";var e=this.sourceBlock_.getColour();c.value==this.getValue()&&(e=this.sourceBlock_.getColourTertiary(),d.setAttribute("aria-selected","true"));d.style.backgroundColor=e;d.style.borderColor=this.sourceBlock_.getColourTertiary();Blockly.bindEvent_(d,"click",this,this.buttonClick_);Blockly.bindEvent_(d,
"mouseup",this,this.buttonClick_);Blockly.bindEvent_(d,"mousedown",d,function(a){this.setAttribute("class","blocklyDropDownButton blocklyDropDownButtonHover");a.preventDefault()});Blockly.bindEvent_(d,"mouseover",d,function(){this.setAttribute("class","blocklyDropDownButton blocklyDropDownButtonHover");a.setAttribute("aria-activedescendant",this.id)});Blockly.bindEvent_(d,"mouseout",d,function(){this.setAttribute("class","blocklyDropDownButton");a.removeAttribute("aria-activedescendant")});e=document.createElement("img");
e.src=c.src;d.setAttribute("data-value",c.value);e.setAttribute("data-value",c.value);d.appendChild(e)}a.appendChild(d)}a.style.width=Blockly.FieldIconMenu.DROPDOWN_WIDTH+"px";Blockly.DropDownDiv.setColour(this.sourceBlock_.getColour(),this.sourceBlock_.getColourTertiary());this.savedPrimary_=this.sourceBlock_.getColour();this.sourceBlock_.setColour(this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourTertiary());b=this.sourceBlock_.workspace.scale;
b=-(Blockly.BlockSvg.MIN_BLOCK_Y*b)-Blockly.BlockSvg.FIELD_Y_OFFSET*b;Blockly.DropDownDiv.showPositionedByBlock(this,this.sourceBlock_,this.onHide_.bind(this),b)||this.arrowIcon_.setAttribute("transform","translate("+(this.arrowX_+Blockly.DropDownDiv.ARROW_SIZE/1.5+1)+","+(this.arrowY_+Blockly.DropDownDiv.ARROW_SIZE/1.5)+") rotate(180)")}};Blockly.FieldIconMenu.prototype.buttonClick_=function(a){a=a.target.getAttribute("data-value");this.setValue(a);Blockly.DropDownDiv.hide()};
e.src=c.src;d.setAttribute("data-value",c.value);e.setAttribute("data-value",c.value);d.appendChild(e)}a.appendChild(d)}a.style.width=Blockly.FieldIconMenu.DROPDOWN_WIDTH+"px";Blockly.DropDownDiv.setColour(this.sourceBlock_.getColour(),this.sourceBlock_.getColourTertiary());Blockly.DropDownDiv.setCategory(this.sourceBlock_.parentBlock_.getCategory());this.savedPrimary_=this.sourceBlock_.getColour();this.sourceBlock_.setColour(this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourSecondary(),
this.sourceBlock_.getColourTertiary());b=this.sourceBlock_.workspace.scale;b=-(Blockly.BlockSvg.MIN_BLOCK_Y*b)-Blockly.BlockSvg.FIELD_Y_OFFSET*b;Blockly.DropDownDiv.showPositionedByBlock(this,this.sourceBlock_,this.onHide_.bind(this),b)||this.arrowIcon_.setAttribute("transform","translate("+(this.arrowX_+Blockly.DropDownDiv.ARROW_SIZE/1.5+1)+","+(this.arrowY_+Blockly.DropDownDiv.ARROW_SIZE/1.5)+") rotate(180)")}};
Blockly.FieldIconMenu.prototype.buttonClick_=function(a){a=a.target.getAttribute("data-value");this.setValue(a);Blockly.DropDownDiv.hide()};
Blockly.FieldIconMenu.prototype.onHide_=function(){this.sourceBlock_&&this.sourceBlock_.setColour(this.savedPrimary_,this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourTertiary());Blockly.DropDownDiv.content_.removeAttribute("role");Blockly.DropDownDiv.content_.removeAttribute("aria-haspopup");Blockly.DropDownDiv.content_.removeAttribute("aria-activedescendant");this.arrowIcon_.setAttribute("transform","translate("+this.arrowX_+","+this.arrowY_+")")};Blockly.FieldImage=function(a,b,c,d,e){this.sourceBlock_=null;this.height_=Number(c);this.width_=Number(b);this.size_=new goog.math.Size(this.width_,this.height_);this.text_=d||"";this.flipRTL_=e;this.setValue(a)};goog.inherits(Blockly.FieldImage,Blockly.Field);Blockly.FieldImage.prototype.rectElement_=null;Blockly.FieldImage.prototype.EDITABLE=!1;
Blockly.FieldImage.prototype.init=function(){if(!this.fieldGroup_){this.fieldGroup_=Blockly.createSvgElement("g",{},null);this.visible_||(this.fieldGroup_.style.display="none");this.imageElement_=Blockly.createSvgElement("image",{height:this.height_+"px",width:this.width_+"px"},this.fieldGroup_);this.setValue(this.src_);goog.userAgent.GECKO&&(this.rectElement_=Blockly.createSvgElement("rect",{height:this.height_+"px",width:this.width_+"px","fill-opacity":0},this.fieldGroup_));this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_);
var a=this.rectElement_||this.imageElement_;a.tooltip=this.sourceBlock_;Blockly.Tooltip.bindMouseEvents(a)}};Blockly.FieldImage.prototype.dispose=function(){goog.dom.removeNode(this.fieldGroup_);this.rectElement_=this.imageElement_=this.fieldGroup_=null};Blockly.FieldImage.prototype.setTooltip=function(a){(this.rectElement_||this.imageElement_).tooltip=a};Blockly.FieldImage.prototype.getValue=function(){return this.src_};
Blockly.FieldImage.prototype.setValue=function(a){null!==a&&(this.src_=a,this.imageElement_&&this.imageElement_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",goog.isString(a)?a:""))};Blockly.FieldImage.prototype.getFlipRTL=function(){return this.flipRTL_};Blockly.FieldImage.prototype.setText=function(a){null!==a&&(this.text_=a)};Blockly.FieldImage.prototype.render_=function(){};var getNumRestrictor=function(a,b){var c="[\\d]";a&&(c+="|[\\.]");b&&(c+="|[-]");return new RegExp(c)};Blockly.FieldNumber=function(a,b,c,d,e){this.decimalAllowed_="undefined"==typeof d||isNaN(d)||0==d||Math.floor(d)!=d;this.negativeAllowed_="undefined"==typeof b||isNaN(b)||0>b;b=getNumRestrictor(this.decimalAllowed_,this.negativeAllowed_);Blockly.FieldNumber.superClass_.constructor.call(this,a,e,b)};goog.inherits(Blockly.FieldNumber,Blockly.FieldTextInput);Blockly.FieldNumber.DROPDOWN_WIDTH=168;
Blockly.FieldNumber.DROPDOWN_Y_PADDING=8;Blockly.FieldNumber.NUMPAD_BUTTONS="789456123.0".split("");
Blockly.FieldImage.prototype.setValue=function(a){null!==a&&(this.src_=a,this.imageElement_&&this.imageElement_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",goog.isString(a)?a:""))};Blockly.FieldImage.prototype.getFlipRTL=function(){return this.flipRTL_};Blockly.FieldImage.prototype.setText=function(a){null!==a&&(this.text_=a)};Blockly.FieldImage.prototype.render_=function(){};var getNumRestrictor=function(a,b){var c="[\\d]";a&&(c+="|[\\.]");b&&(c+="|[-]");return new RegExp(c)};Blockly.FieldNumber=function(a,b,c,d,e){this.decimalAllowed_="undefined"==typeof d||isNaN(d)||0==d||Math.floor(d)!=d;this.negativeAllowed_="undefined"==typeof b||isNaN(b)||0>b;b=getNumRestrictor(this.decimalAllowed_,this.negativeAllowed_);Blockly.FieldNumber.superClass_.constructor.call(this,a,e,b);this.setArgType("number")};goog.inherits(Blockly.FieldNumber,Blockly.FieldTextInput);
Blockly.FieldNumber.DROPDOWN_WIDTH=168;Blockly.FieldNumber.DROPDOWN_Y_PADDING=8;Blockly.FieldNumber.NUMPAD_BUTTONS="789456123.0".split("");
Blockly.FieldNumber.NUMPAD_DELETE_ICON='data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><path d="M28.89,11.45H16.79a2.86,2.86,0,0,0-2,.84L9.09,18a2.85,2.85,0,0,0,0,4l5.69,5.69a2.86,2.86,0,0,0,2,.84h12.1a2.86,2.86,0,0,0,2.86-2.86V14.31A2.86,2.86,0,0,0,28.89,11.45ZM27.15,22.73a1,1,0,0,1,0,1.41,1,1,0,0,1-.71.3,1,1,0,0,1-.71-0.3L23,21.41l-2.73,2.73a1,1,0,0,1-1.41,0,1,1,0,0,1,0-1.41L21.59,20l-2.73-2.73a1,1,0,0,1,0-1.41,1,1,0,0,1,1.41,0L23,18.59l2.73-2.73a1,1,0,1,1,1.42,1.41L24.42,20Z" fill="'+Blockly.Colours.numPadText+
'"/></svg>';Blockly.FieldNumber.activeField_=null;Blockly.FieldNumber.prototype.setConstraints_=function(a,b,c){this.decimalAllowed_="undefined"==typeof c||isNaN(c)||0==c||Math.floor(c)!=c;this.negativeAllowed_="undefined"==typeof a||isNaN(a)||0>a};Blockly.FieldNumber.prototype.showEditor_=function(){Blockly.FieldNumber.activeField_=this;var a=goog.userAgent.MOBILE||goog.userAgent.ANDROID||goog.userAgent.IPAD;Blockly.FieldNumber.superClass_.showEditor_.call(this,!1,a);a&&this.showNumPad_()};
Blockly.FieldNumber.prototype.showNumPad_=function(){Blockly.DropDownDiv.hideWithoutAnimation();Blockly.DropDownDiv.clearContent();var a=Blockly.DropDownDiv.getContentDiv();a.setAttribute("role","menu");a.setAttribute("aria-haspopup","true");for(var b=Blockly.FieldNumber.NUMPAD_BUTTONS,c=0,d;d=b[c];c++){var e=document.createElement("button");e.setAttribute("role","menuitem");e.setAttribute("class","blocklyNumPadButton");e.title=d;e.innerHTML=d;Blockly.bindEvent_(e,"mousedown",e,Blockly.FieldNumber.numPadButtonTouch_);
@ -1395,12 +1400,13 @@ Blockly.FieldNumber.numPadEraseButtonTouch_=function(){var a=Blockly.FieldTextIn
Blockly.FieldTextInput.htmlInput_.scrollWidth;Blockly.FieldNumber.activeField_.validate_()};Blockly.FieldNumber.prototype.onHide_=function(){Blockly.DropDownDiv.content_.removeAttribute("role");Blockly.DropDownDiv.content_.removeAttribute("aria-haspopup")};Blockly.Variables={};Blockly.Variables.NAME_TYPE="VARIABLE";Blockly.Variables.allUsedVariables=function(a){var b;if(a instanceof Blockly.Block)b=a.getDescendants();else if(a instanceof Blockly.Workspace||a instanceof Blockly.WorkspaceSvg)b=a.getAllBlocks();else throw"Not Block or Workspace: "+a;a=Object.create(null);for(var c=0;c<b.length;c++){var d=b[c].getVars();if(d)for(var e=0;e<d.length;e++){var f=d[e];f&&(a[f.toLowerCase()]=f)}}b=[];for(var g in a)b.push(a[g]);return b};
Blockly.Variables.allVariables=function(a){a instanceof Blockly.Block&&console.warn("Deprecated call to Blockly.Variables.allVariables with a block instead of a workspace. You may want Blockly.Variables.allUsedVariables");return a.variableList};
Blockly.Variables.flyoutCategory=function(a){a=a.variableList;a.sort(goog.string.caseInsensitiveCompare);var b=[],c=goog.dom.createDom("button");c.setAttribute("text",Blockly.Msg.NEW_VARIABLE);b.push(c);for(c=0;c<a.length;c++)if(Blockly.Blocks.data_variable){var d=goog.dom.createDom("block");d.setAttribute("type","data_variable");d.setAttribute("gap",8);d.appendChild(Blockly.Variables.createVariableDom_(a[c]));b.push(d)}1<b.length&&(b[b.length-1].setAttribute("gap",24),Blockly.Blocks.data_setvariableto&&
(d=goog.dom.createDom("block"),d.setAttribute("type","data_setvariableto"),d.setAttribute("gap",8),d.appendChild(Blockly.Variables.createVariableDom_(a[0])),d.appendChild(Blockly.Variables.createMathNumberDom_()),b.push(d)),Blockly.Blocks.data_changevariableby&&(d=goog.dom.createDom("block"),d.setAttribute("type","data_changevariableby"),d.setAttribute("gap",8),d.appendChild(Blockly.Variables.createVariableDom_(a[0])),d.appendChild(Blockly.Variables.createMathNumberDom_()),b.push(d)),Blockly.Blocks.data_showvariable&&
(d=goog.dom.createDom("block"),d.setAttribute("type","data_setvariableto"),d.setAttribute("gap",8),d.appendChild(Blockly.Variables.createVariableDom_(a[0])),d.appendChild(Blockly.Variables.createTextDom_()),b.push(d)),Blockly.Blocks.data_changevariableby&&(d=goog.dom.createDom("block"),d.setAttribute("type","data_changevariableby"),d.setAttribute("gap",8),d.appendChild(Blockly.Variables.createVariableDom_(a[0])),d.appendChild(Blockly.Variables.createMathNumberDom_()),b.push(d)),Blockly.Blocks.data_showvariable&&
(d=goog.dom.createDom("block"),d.setAttribute("type","data_showvariable"),d.setAttribute("gap",8),d.appendChild(Blockly.Variables.createVariableDom_(a[0])),b.push(d)),Blockly.Blocks.data_hidevariable&&(d=goog.dom.createDom("block"),d.setAttribute("type","data_hidevariable"),d.appendChild(Blockly.Variables.createVariableDom_(a[0])),b.push(d)));return b};Blockly.Variables.createValueDom_=function(a){var b=goog.dom.createDom("value");b.setAttribute("name",a);return b};
Blockly.Variables.createShadowDom_=function(a){var b=goog.dom.createDom("shadow");b.setAttribute("type",a);return b};Blockly.Variables.createVariableDom_=function(a){var b=Blockly.Variables.createValueDom_("VARIABLE"),c=Blockly.Variables.createShadowDom_("data_variablemenu");a=goog.dom.createDom("field",null,a);a.setAttribute("name","VARIABLE");c.appendChild(a);b.appendChild(c);return b};
Blockly.Variables.createMathNumberDom_=function(){var a=Blockly.Variables.createValueDom_("VALUE"),b=Blockly.Variables.createShadowDom_("math_number"),c=goog.dom.createDom("field",null,"0");c.setAttribute("name","NUM");b.appendChild(c);a.appendChild(b);return a};
Blockly.Variables.createTextDom_=function(){var a=Blockly.Variables.createValueDom_("VALUE"),b=Blockly.Variables.createShadowDom_("text"),c=goog.dom.createDom("field",null,"0");c.setAttribute("name","TEXT");b.appendChild(c);a.appendChild(b);return a};
Blockly.Variables.createMathNumberDom_=function(){var a=Blockly.Variables.createValueDom_("VALUE"),b=Blockly.Variables.createShadowDom_("math_number"),c=goog.dom.createDom("field",null,"1");c.setAttribute("name","NUM");b.appendChild(c);a.appendChild(b);return a};
Blockly.Variables.generateUniqueName=function(a){a=a.variableList;var b="";if(a.length)for(var c=1,d=0,e="ijkmnopqrstuvwxyzabcdefgh".charAt(d);!b;){for(var f=!1,g=0;g<a.length;g++)if(a[g].toLowerCase()==e){f=!0;break}f?(d++,25==d&&(d=0,c++),e="ijkmnopqrstuvwxyzabcdefgh".charAt(d),1<c&&(e+=c)):b=e}else b="i";return b};
Blockly.Variables.createVariable=function(a){for(;;){var b=Blockly.Variables.promptName(Blockly.Msg.NEW_VARIABLE_TITLE,"");if(b)if(-1!=a.variableIndexOf(b))window.alert(Blockly.Msg.VARIABLE_ALREADY_EXISTS.replace("%1",b.toLowerCase()));else{a.createVariable(b);break}else{b=null;break}}return b};Blockly.Variables.promptName=function(a,b){var c=window.prompt(a,b);c&&(c=c.replace(/[\s\xa0]+/g," ").replace(/^ | $/g,""),c==Blockly.Msg.RENAME_VARIABLE||c==Blockly.Msg.NEW_VARIABLE)&&(c=null);return c};Blockly.FieldVariable=function(a,b){Blockly.FieldVariable.superClass_.constructor.call(this,Blockly.FieldVariable.dropdownCreate,b);this.setValue(a||"")};goog.inherits(Blockly.FieldVariable,Blockly.FieldDropdown);
Blockly.Variables.createVariable=function(a){for(;;){var b=Blockly.Variables.promptName(Blockly.Msg.NEW_VARIABLE_TITLE,"");if(b)if(-1!=a.variableIndexOf(b))window.alert(Blockly.Msg.VARIABLE_ALREADY_EXISTS.replace("%1",b.toLowerCase()));else{a.createVariable(b);break}else{b=null;break}}return b};Blockly.Variables.promptName=function(a,b){var c=window.prompt(a,b);c&&(c=c.replace(/[\s\xa0]+/g," ").replace(/^ | $/g,""),c==Blockly.Msg.RENAME_VARIABLE||c==Blockly.Msg.NEW_VARIABLE)&&(c=null);return c};Blockly.FieldVariable=function(a,b){Blockly.FieldVariable.superClass_.constructor.call(this,Blockly.FieldVariable.dropdownCreate,b);this.setValue(a||"");this.setArgType("variable")};goog.inherits(Blockly.FieldVariable,Blockly.FieldDropdown);
Blockly.FieldVariable.prototype.init=function(){this.fieldGroup_||(Blockly.FieldVariable.superClass_.init.call(this),this.getValue()||this.setValue(Blockly.Variables.generateUniqueName(this.sourceBlock_.isInFlyout?this.sourceBlock_.workspace.targetWorkspace:this.sourceBlock_.workspace)),this.sourceBlock_.isInFlyout||this.sourceBlock_.workspace.createVariable(this.getValue()))};Blockly.FieldVariable.prototype.getValue=function(){return this.getText()};
Blockly.FieldVariable.prototype.setValue=function(a){this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,a));this.value_=a;this.setText(a)};
Blockly.FieldVariable.dropdownCreate=function(){var a=this.sourceBlock_&&this.sourceBlock_.workspace?this.sourceBlock_.workspace.variableList.slice(0):[],b=this.getText();b&&-1==a.indexOf(b)&&a.push(b);a.sort(goog.string.caseInsensitiveCompare);a.push(Blockly.Msg.RENAME_VARIABLE);a.push(Blockly.Msg.DELETE_VARIABLE.replace("%1",b));for(var b=[],c=0;c<a.length;c++)b[c]=[a[c],a[c]];return b};
@ -1519,8 +1525,8 @@ Blockly.Css.CONTENT=[".blocklySvg {","background-color: $colour_workspace;","out
"padding-left: 7em;","padding-right: 28px;","}",".blocklyWidgetDiv .goog-menu-nocheckbox .goog-menuitem,",".blocklyWidgetDiv .goog-menu-noicon .goog-menuitem, ",".blocklyDropDownDiv .goog-menu-nocheckbox .goog-menuitem,",".blocklyDropDownDiv .goog-menu-noicon .goog-menuitem { ","padding-left: 12px;","}",".blocklyWidgetDiv .goog-menu-noaccel .goog-menuitem, ",".blocklyDropDownDiv .goog-menu-noaccel .goog-menuitem {","padding-right: 20px;","}",".blocklyWidgetDiv .goog-menuitem-content ",".blocklyDropDownDiv .goog-menuitem-content {",
"color: #000;",'font: normal 13px "Helvetica Neue", Helvetica, sans-serif;',"}",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-accel,",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-content, ",".blocklyDropDownDiv .goog-menuitem-disabled .goog-menuitem-accel,",".blocklyDropDownDiv .goog-menuitem-disabled .goog-menuitem-content {","color: #ccc !important;","}",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-icon, ",".blocklyDropDownDiv .goog-menuitem-disabled .goog-menuitem-icon {",
"opacity: 0.3;","-moz-opacity: 0.3;","filter: alpha(opacity=30);","}",".blocklyWidgetDiv .goog-menuitem-highlight,",".blocklyWidgetDiv .goog-menuitem-hover {","background-color: #d6e9f8;","border-color: #d6e9f8;","border-style: dotted;","border-width: 1px 0;","padding-bottom: 3px;","padding-top: 3px;","}",".blocklyDropDownDiv .goog-menuitem-highlight,",".blocklyDropDownDiv .goog-menuitem-hover {","background-color: rgba(0, 0, 0, 0.2);","}",".blocklyWidgetDiv .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-menuitem-icon, ",
".blocklyDropDownDiv .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-menuitem-icon {","background-repeat: no-repeat;","height: 16px;","left: 6px;","position: absolute;","right: auto;","vertical-align: middle;","width: 16px;","}",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-icon,",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-icon {","left: auto;",
"right: 6px;","}",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon,",".blocklyDropDownDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-option-selected .goog-menuitem-icon {","background: url(<<<PATH>>>/sprites.png) no-repeat -48px -16px !important;","}",".blocklyWidgetDiv .goog-menuitem-accel, ",".blocklyDropDownDiv .goog-menuitem-accel {","color: #999;","direction: ltr;","left: auto;","padding: 0 6px;",
".blocklyDropDownDiv .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-menuitem-icon {","background-repeat: no-repeat;","height: 16px;","left: 6px;","position: absolute;","right: auto;","vertical-align: middle;","width: 16px;","}",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon,",".blocklyDropDownDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-option-selected .goog-menuitem-icon {","background: url(<<<PATH>>>/sprites.png) no-repeat -48px -16px !important;",
"position: static;","float: left;","margin-left: -24px;","}",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-icon,",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-icon {","float: right;","margin-left: 6px;","}",".blocklyWidgetDiv .goog-menuitem-accel, ",".blocklyDropDownDiv .goog-menuitem-accel {","color: #999;","direction: ltr;","left: auto;","padding: 0 6px;",
"position: absolute;","right: 0;","text-align: right;","}",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-accel, ",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-accel {","left: 0;","right: auto;","text-align: left;","}",".blocklyWidgetDiv .goog-menuitem-mnemonic-hint, ",".blocklyDropDownDiv .goog-menuitem-mnemonic-hint {","text-decoration: underline;","}",".blocklyWidgetDiv .goog-menuitem-mnemonic-separator, ",".blocklyDropDownDiv .goog-menuitem-mnemonic-separator {","color: #999;",
"font-size: 12px;","padding-left: 4px;","}",".blocklyWidgetDiv .goog-menuseparator, ",".blocklyDropDownDiv .goog-menuseparator {","border-top: 1px solid #ccc;","margin: 4px 0;","padding: 0;","}",".blocklyFlyoutCheckbox {","fill: red","}",".blocklyFlyoutCheckbox.checked {","fill: blue","}",""];Blockly.WidgetDiv={};Blockly.WidgetDiv.DIV=null;Blockly.WidgetDiv.owner_=null;Blockly.WidgetDiv.dispose_=null;Blockly.WidgetDiv.disposeAnimationFinished_=null;Blockly.WidgetDiv.disposeAnimationTimer_=null;Blockly.WidgetDiv.disposeAnimationTimerLength_=0;Blockly.WidgetDiv.createDom=function(){Blockly.WidgetDiv.DIV||(Blockly.WidgetDiv.DIV=goog.dom.createDom("DIV","blocklyWidgetDiv"),document.body.appendChild(Blockly.WidgetDiv.DIV))};
Blockly.WidgetDiv.show=function(a,b,c,d,e){Blockly.WidgetDiv.hide();Blockly.WidgetDiv.owner_=a;Blockly.WidgetDiv.dispose_=c;Blockly.WidgetDiv.disposeAnimationFinished_=d;Blockly.WidgetDiv.disposeAnimationTimerLength_=e;a=goog.style.getViewportPageOffset(document);Blockly.WidgetDiv.DIV.style.top=a.y+"px";Blockly.WidgetDiv.DIV.style.direction=b?"rtl":"ltr";Blockly.WidgetDiv.DIV.style.display="block"};
@ -1534,8 +1540,7 @@ Blockly.DragSurfaceSvg.prototype.createDropShadowDom_=function(a){a=Blockly.crea
in2:"offsetBlur",operator:"over"},a);return a.id};Blockly.DragSurfaceSvg.prototype.setBlocksAndShow=function(a){goog.asserts.assert(0==this.dragGroup_.childNodes.length,"Already dragging a block.");this.dragGroup_.appendChild(a);this.SVG_.style.display="block"};
Blockly.DragSurfaceSvg.prototype.translateAndScaleGroup=function(a,b,c){this.scale_=c;a=a.toFixed(2);b=b.toFixed(2);Blockly.is3dSupported()?this.dragGroup_.setAttribute("style","transform: translate3d("+a+"px, "+b+"px, 0px)scale3d("+c+","+c+","+c+")"):this.dragGroup_.setAttribute("transform","translate("+a+", "+b+") scale("+c+")")};
Blockly.DragSurfaceSvg.prototype.translateSurface=function(a,b){a*=this.scale_;b*=this.scale_;a=a.toFixed(2);b=b.toFixed(2);Blockly.is3dSupported()?this.SVG_.setAttribute("style","transform: translate3d("+a+"px, "+b+"px, 0px); display: block;"):this.SVG_.setAttribute("transform","translate("+a+", "+b+")")};Blockly.DragSurfaceSvg.prototype.getSurfaceTranslation=function(){var a=Blockly.getRelativeXY_(this.SVG_);return new goog.math.Coordinate(a.x/this.scale_,a.y/this.scale_)};
Blockly.DragSurfaceSvg.prototype.getGroup=function(){return this.dragGroup_};Blockly.DragSurfaceSvg.prototype.getCurrentBlock=function(){return this.dragGroup_.childNodes[0]};Blockly.DragSurfaceSvg.prototype.clearAndHide=function(a){a.appendChild(this.getCurrentBlock());this.SVG_.style.display="none";goog.asserts.assert(0==this.dragGroup_.childNodes.length,"Drag group was not cleared.")};Blockly.STACK_GLOW_RADIUS=1;Blockly.REPLACEMENT_GLOW_RADIUS=2;
Blockly.inject=function(a,b){goog.isString(a)&&(a=document.getElementById(a)||document.querySelector(a));if(!goog.dom.contains(document,a))throw"Error: container is not in current document.";var c=new Blockly.Options(b||{}),d=goog.dom.createDom("div","injectionDiv");a.appendChild(d);var e=Blockly.createDom_(d,c),d=new Blockly.DragSurfaceSvg(d);d.createDom();c=Blockly.createMainWorkspace_(e,c,d);Blockly.init_(c);c.markFocused();Blockly.bindEvent_(e,"focus",c,c.markFocused);Blockly.svgResize(c);return c};
Blockly.DragSurfaceSvg.prototype.getGroup=function(){return this.dragGroup_};Blockly.DragSurfaceSvg.prototype.getCurrentBlock=function(){return this.dragGroup_.childNodes[0]};Blockly.DragSurfaceSvg.prototype.clearAndHide=function(a){a.appendChild(this.getCurrentBlock());this.SVG_.style.display="none";goog.asserts.assert(0==this.dragGroup_.childNodes.length,"Drag group was not cleared.")};Blockly.inject=function(a,b){goog.isString(a)&&(a=document.getElementById(a)||document.querySelector(a));if(!goog.dom.contains(document,a))throw"Error: container is not in current document.";var c=new Blockly.Options(b||{}),d=goog.dom.createDom("div","injectionDiv");a.appendChild(d);var e=Blockly.createDom_(d,c),d=new Blockly.DragSurfaceSvg(d);d.createDom();c=Blockly.createMainWorkspace_(e,c,d);Blockly.init_(c);c.markFocused();Blockly.bindEvent_(e,"focus",c,c.markFocused);Blockly.svgResize(c);return c};
Blockly.createDom_=function(a,b){a.setAttribute("dir","LTR");goog.ui.Component.setDefaultRightToLeft(b.RTL);Blockly.Css.inject(b.hasCss,b.pathToMedia);var c=Blockly.createSvgElement("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1","class":"blocklySvg"},a),d=Blockly.createSvgElement("defs",{},c),e=String(Math.random()).substring(2),f=Blockly.createSvgElement("filter",{id:"blocklyStackGlowFilter",height:"160%",
width:"180%",y:"-30%",x:"-40%"},d);b.stackGlowBlur=Blockly.createSvgElement("feGaussianBlur",{"in":"SourceGraphic",stdDeviation:Blockly.STACK_GLOW_RADIUS},f);var g=Blockly.createSvgElement("feComponentTransfer",{result:"outBlur"},f);Blockly.createSvgElement("feFuncA",{type:"table",tableValues:"0"+" 1".repeat(16)},g);Blockly.createSvgElement("feFlood",{"flood-color":Blockly.Colours.stackGlow,"flood-opacity":Blockly.Colours.stackGlowOpacity,result:"outColor"},f);Blockly.createSvgElement("feComposite",
{"in":"outColor",in2:"outBlur",operator:"in",result:"outGlow"},f);Blockly.createSvgElement("feComposite",{"in":"SourceGraphic",in2:"outGlow",operator:"over"},f);f=Blockly.createSvgElement("filter",{id:"blocklyReplacementGlowFilter",height:"160%",width:"180%",y:"-30%",x:"-40%"},d);Blockly.createSvgElement("feGaussianBlur",{"in":"SourceGraphic",stdDeviation:Blockly.REPLACEMENT_GLOW_RADIUS},f);g=Blockly.createSvgElement("feComponentTransfer",{result:"outBlur"},f);Blockly.createSvgElement("feFuncA",{type:"table",

View file

@ -909,7 +909,8 @@ Blockly.Workspace=function(a){this.id=Blockly.genUid();Blockly.Workspace.Workspa
Blockly.Workspace.prototype.dispose=function(){this.listeners_.length=0;this.clear();delete Blockly.Workspace.WorkspaceDB_[this.id]};Blockly.Workspace.SCAN_ANGLE=3;Blockly.Workspace.prototype.addTopBlock=function(a){this.topBlocks_.push(a);if(this.isFlyout){a=Blockly.Variables.allUsedVariables(a);for(var b=0;b<a.length;b++)-1==this.variableList.indexOf(a[b])&&this.variableList.push(a[b])}};
Blockly.Workspace.prototype.removeTopBlock=function(a){for(var b=!1,c,d=0;c=this.topBlocks_[d];d++)if(c==a){this.topBlocks_.splice(d,1);b=!0;break}if(!b)throw"Block not present in workspace's list of top-most blocks.";};
Blockly.Workspace.prototype.getTopBlocks=function(a){var b=[].concat(this.topBlocks_);if(a&&1<b.length){var c=Math.sin(goog.math.toRadians(Blockly.Workspace.SCAN_ANGLE));this.RTL&&(c*=-1);b.sort(function(a,b){var f=a.getRelativeToSurfaceXY(),g=b.getRelativeToSurfaceXY();return f.y+c*f.x-(g.y+c*g.x)})}return b};Blockly.Workspace.prototype.getAllBlocks=function(){for(var a=this.getTopBlocks(!1),b=0;b<a.length;b++)a.push.apply(a,a[b].getChildren());return a};
Blockly.Workspace.prototype.clear=function(){var a=Blockly.Events.getGroup();for(a||Blockly.Events.setGroup(!0);this.topBlocks_.length;)this.topBlocks_[0].dispose();a||Blockly.Events.setGroup(!1);this.variableList.length=0};Blockly.Workspace.prototype.updateVariableList=function(a){if(!this.isFlyout){a&&(this.variableList.length=0);a=Blockly.Variables.allUsedVariables(this);for(var b=0;b<a.length;b++)this.createVariable(a[b])}};
Blockly.Workspace.prototype.clear=function(){var a=Blockly.Events.getGroup();for(a||Blockly.Events.setGroup(!0);this.topBlocks_.length;)this.topBlocks_[0].dispose();a||Blockly.Events.setGroup(!1);this.variableList.length=0;Blockly.DropDownDiv&&Blockly.DropDownDiv.hideWithoutAnimation();Blockly.WidgetDiv&&Blockly.WidgetDiv.hide(!0)};
Blockly.Workspace.prototype.updateVariableList=function(a){if(!this.isFlyout){a&&(this.variableList.length=0);a=Blockly.Variables.allUsedVariables(this);for(var b=0;b<a.length;b++)this.createVariable(a[b])}};
Blockly.Workspace.prototype.renameVariable=function(a,b){var c=this.variableIndexOf(a),d=this.variableIndexOf(b);if(-1!=d&&this.variableList[d]!=b)var e=this.variableList[d];Blockly.Events.setGroup(!0);for(var f=this.getAllBlocks(),g=0;g<f.length;g++)f[g].renameVar(a,b),e&&f[g].renameVar(e,b);Blockly.Events.setGroup(!1);c==d||-1!=c&&-1==d?this.variableList[c]=b:-1!=c&&-1!=d?(this.variableList.splice(c,1),this.variableList[d]=b):(this.variableList.push(b),console.log("Tried to rename an non-existent variable."))};
Blockly.Workspace.prototype.createVariable=function(a){-1==this.variableIndexOf(a)&&this.variableList.push(a)};Blockly.Workspace.prototype.getVariableUses=function(a){for(var b=[],c=this.getAllBlocks(),d=0;d<c.length;d++){var e=c[d].getVars();if(e)for(var f=0;f<e.length;f++){var g=e[f];g&&Blockly.Names.equals(g,a)&&b.push(c[d])}}return b};
Blockly.Workspace.prototype.deleteVariable=function(a){var b=this.variableIndexOf(a);if(-1!=b){var c=this.getVariableUses(a);if(1<c.length){for(var d=0,e;e=c[d];d++)if("procedures_defnoreturn"==e.type||"procedures_defreturn"==e.type){b=e.getFieldValue("NAME");window.alert(Blockly.Msg.CANNOT_DELETE_VARIABLE_PROCEDURE.replace("%1",a).replace("%2",b));return}if(!window.confirm(Blockly.Msg.DELETE_VARIABLE_CONFIRMATION.replace("%1",c.length).replace("%2",a)))return}Blockly.Events.setGroup(!0);for(d=0;d<
@ -969,12 +970,13 @@ Blockly.Connection.prototype.disconnect=function(){var a=this.targetConnection;g
Blockly.Connection.prototype.disconnectInternal_=function(a,b){var c;Blockly.Events.isEnabled()&&(c=new Blockly.Events.Move(b));this.targetConnection=this.targetConnection.targetConnection=null;b.setParent(null);c&&(c.recordNew(),Blockly.Events.fire(c))};
Blockly.Connection.prototype.respawnShadow_=function(){var a=this.getSourceBlock(),b=this.getShadowDom();if(a.workspace&&b&&Blockly.Events.recordUndo)if(a=Blockly.Xml.domToBlock(b,a.workspace),a.outputConnection)this.connect(a.outputConnection);else if(a.previousConnection)this.connect(a.previousConnection);else throw"Child block does not have output or previous statement.";};Blockly.Connection.prototype.targetBlock=function(){return this.isConnected()?this.targetConnection.getSourceBlock():null};
Blockly.Connection.prototype.checkType_=function(a){if(!this.check_||!a.check_)return!0;for(var b=0;b<this.check_.length;b++)if(-1!=a.check_.indexOf(this.check_[b]))return!0;return!1};Blockly.Connection.prototype.setCheck=function(a){a?(goog.isArray(a)||(a=[a]),this.check_=a,this.isConnected()&&!this.checkType_(this.targetConnection)&&((this.isSuperior()?this.targetBlock():this.sourceBlock_).unplug(),this.sourceBlock_.bumpNeighbours_())):this.check_=null;return this};
Blockly.Connection.prototype.getOutputShape=function(){if(!this.check_)return Blockly.OUTPUT_SHAPE_SQUARE;if(-1!==this.check_.indexOf("Boolean"))return Blockly.OUTPUT_SHAPE_HEXAGONAL;if(-1!==this.check_.indexOf("Number"))return Blockly.OUTPUT_SHAPE_ROUND;this.check_.indexOf("String");return Blockly.OUTPUT_SHAPE_SQUARE};Blockly.Connection.prototype.setShadowDom=function(a){this.shadowDom_=a};Blockly.Connection.prototype.getShadowDom=function(){return this.shadowDom_};Blockly.Field=function(a,b){this.size_=new goog.math.Size(Blockly.BlockSvg.FIELD_WIDTH,Blockly.BlockSvg.FIELD_HEIGHT);this.setValue(a);this.setValidator(b);this.maxDisplayLength=Blockly.BlockSvg.MAX_DISPLAY_LENGTH};Blockly.Field.cacheWidths_=null;Blockly.Field.cacheReference_=0;Blockly.Field.prototype.name=void 0;Blockly.Field.prototype.text_="";Blockly.Field.prototype.sourceBlock_=null;Blockly.Field.prototype.visible_=!0;Blockly.Field.prototype.validator_=null;Blockly.Field.NBSP="\u00a0";
Blockly.Field.prototype.EDITABLE=!0;Blockly.Field.prototype.setSourceBlock=function(a){goog.asserts.assert(!this.sourceBlock_,"Field already bound to a block.");this.sourceBlock_=a};
Blockly.Field.prototype.init=function(){if(!this.fieldGroup_){this.fieldGroup_=Blockly.createSvgElement("g",{},null);this.visible_||(this.fieldGroup_.style.display="none");var a=this.getSize();this.textElement_=Blockly.createSvgElement("text",{"class":"blocklyText",x:this.sourceBlock_.RTL?-a.width/2:a.width/2,y:a.height/2+Blockly.BlockSvg.FIELD_TOP_PADDING,"dominant-baseline":"middle","text-anchor":"middle"},this.fieldGroup_);this.updateEditable();this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_);
this.mouseUpWrapper_=Blockly.bindEvent_(this.getClickTarget_(),"mouseup",this,this.onMouseUp_);this.updateTextNode_()}};Blockly.Field.prototype.dispose=function(){this.mouseUpWrapper_&&(Blockly.unbindEvent_(this.mouseUpWrapper_),this.mouseUpWrapper_=null);this.sourceBlock_=null;goog.dom.removeNode(this.fieldGroup_);this.validator_=this.textElement_=this.fieldGroup_=null};
Blockly.Connection.prototype.getOutputShape=function(){if(!this.check_)return Blockly.OUTPUT_SHAPE_SQUARE;if(-1!==this.check_.indexOf("Boolean"))return Blockly.OUTPUT_SHAPE_HEXAGONAL;if(-1!==this.check_.indexOf("Number"))return Blockly.OUTPUT_SHAPE_ROUND;this.check_.indexOf("String");return Blockly.OUTPUT_SHAPE_SQUARE};Blockly.Connection.prototype.setShadowDom=function(a){this.shadowDom_=a};Blockly.Connection.prototype.getShadowDom=function(){return this.shadowDom_};Blockly.Field=function(a,b){this.size_=new goog.math.Size(Blockly.BlockSvg.FIELD_WIDTH,Blockly.BlockSvg.FIELD_HEIGHT);this.setValue(a);this.setValidator(b);this.maxDisplayLength=Blockly.BlockSvg.MAX_DISPLAY_LENGTH};Blockly.Field.cacheWidths_=null;Blockly.Field.cacheReference_=0;Blockly.Field.prototype.name=void 0;Blockly.Field.prototype.text_="";Blockly.Field.prototype.sourceBlock_=null;Blockly.Field.prototype.visible_=!0;Blockly.Field.prototype.argType_=null;Blockly.Field.prototype.validator_=null;
Blockly.Field.NBSP="\u00a0";Blockly.Field.prototype.EDITABLE=!0;Blockly.Field.prototype.setSourceBlock=function(a){goog.asserts.assert(!this.sourceBlock_,"Field already bound to a block.");this.sourceBlock_=a};
Blockly.Field.prototype.init=function(){if(!this.fieldGroup_){this.fieldGroup_=Blockly.createSvgElement("g",{},null);this.visible_||(this.fieldGroup_.style.display="none");null!==this.getArgType()&&(this.sourceBlock_.isShadow()?this.sourceBlock_.svgGroup_.setAttribute("data-argument-type",this.getArgType()):this.fieldGroup_.setAttribute("data-argument-type",this.getArgType()));var a=this.getSize();this.textElement_=Blockly.createSvgElement("text",{"class":"blocklyText",x:this.sourceBlock_.RTL?-a.width/
2:a.width/2,y:a.height/2+Blockly.BlockSvg.FIELD_TOP_PADDING,"dominant-baseline":"middle","text-anchor":"middle"},this.fieldGroup_);this.updateEditable();this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_);this.mouseUpWrapper_=Blockly.bindEvent_(this.getClickTarget_(),"mouseup",this,this.onMouseUp_);this.updateTextNode_()}};
Blockly.Field.prototype.dispose=function(){this.mouseUpWrapper_&&(Blockly.unbindEvent_(this.mouseUpWrapper_),this.mouseUpWrapper_=null);this.sourceBlock_=null;goog.dom.removeNode(this.fieldGroup_);this.validator_=this.textElement_=this.fieldGroup_=null};
Blockly.Field.prototype.updateEditable=function(){var a=this.fieldGroup_;this.EDITABLE&&a&&(this.sourceBlock_.isEditable()?(Blockly.addClass_(a,"blocklyEditableText"),Blockly.removeClass_(a,"blocklyNonEditableText"),this.getClickTarget_().style.cursor=this.CURSOR):(Blockly.addClass_(a,"blocklyNonEditableText"),Blockly.removeClass_(a,"blocklyEditableText"),this.getClickTarget_().style.cursor=""))};Blockly.Field.prototype.isVisible=function(){return this.visible_};
Blockly.Field.prototype.setVisible=function(a){if(this.visible_!=a){this.visible_=a;var b=this.getSvgRoot();b&&(b.style.display=a?"block":"none",this.render_())}};Blockly.Field.prototype.setValidator=function(a){this.validator_=a};Blockly.Field.prototype.getValidator=function(){return this.validator_};Blockly.Field.prototype.classValidator=function(a){return a};
Blockly.Field.prototype.setVisible=function(a){if(this.visible_!=a){this.visible_=a;var b=this.getSvgRoot();b&&(b.style.display=a?"block":"none",this.render_())}};Blockly.Field.prototype.setArgType=function(a){this.argType_=a};Blockly.Field.prototype.getArgType=function(){return this.argType_};Blockly.Field.prototype.setValidator=function(a){this.validator_=a};Blockly.Field.prototype.getValidator=function(){return this.validator_};Blockly.Field.prototype.classValidator=function(a){return a};
Blockly.Field.prototype.callValidator=function(a){var b=this.classValidator(a);if(null===b)return null;void 0!==b&&(a=b);if(b=this.getValidator()){b=b.call(this,a);if(null===b)return null;void 0!==b&&(a=b)}return a};Blockly.Field.prototype.getSvgRoot=function(){return this.fieldGroup_};
Blockly.Field.prototype.render_=function(){if(this.visible_&&this.textElement_){var a=this.textElement_.textContent+"\n"+this.textElement_.className.baseVal;if(Blockly.Field.cacheWidths_&&Blockly.Field.cacheWidths_[a])var b=Blockly.Field.cacheWidths_[a];else{try{b=this.textElement_.getComputedTextLength()}catch(d){b=8*this.textElement_.textContent.length}Blockly.Field.cacheWidths_&&(Blockly.Field.cacheWidths_[a]=b)}this.EDITABLE&&(b+=Blockly.BlockSvg.EDITABLE_FIELD_PADDING);this.box_&&(b+=Blockly.BlockSvg.BOX_FIELD_PADDING);
a=b/2;if(this.sourceBlock_.isShadow())var c=Blockly.BlockSvg.FIELD_WIDTH/2,a=this.sourceBlock_.RTL?Math.min(b-c,a):Math.max(c,a);this.textElement_.setAttribute("x",a)}else b=0;this.size_.width=b;this.box_&&(this.box_.setAttribute("width",this.size_.width),this.box_.setAttribute("height",this.size_.height))};Blockly.Field.startCache=function(){Blockly.Field.cacheReference_++;Blockly.Field.cacheWidths_||(Blockly.Field.cacheWidths_={})};
@ -1001,12 +1003,12 @@ Blockly.ConnectionDB.prototype.findConnection=function(a){if(!this.length)return
Blockly.ConnectionDB.prototype.findPositionForConnection_=function(a){if(!this.length)return 0;for(var b=0,c=this.length;b<c;){var d=Math.floor((b+c)/2);if(this[d].y_<a.y_)b=d+1;else if(this[d].y_>a.y_)c=d;else{b=d;break}}return b};Blockly.ConnectionDB.prototype.removeConnection_=function(a){if(!a.inDB_)throw"Connection not in database.";var b=this.findConnection(a);if(-1==b)throw"Unable to find connection in connectionDB.";a.inDB_=!1;this.splice(b,1)};
Blockly.ConnectionDB.prototype.getNeighbours=function(a,b){function c(a){var c=e-d[a].x_,g=f-d[a].y_;Math.sqrt(c*c+g*g)<=b&&l.push(d[a]);return g<b}for(var d=this,e=a.x_,f=a.y_,g=0,h=d.length-2,k=h;g<k;)d[k].y_<f?g=k:h=k,k=Math.floor((g+h)/2);var l=[],h=g=k;if(d.length){for(;0<=g&&c(g);)g--;do h++;while(h<d.length&&c(h))}return l};Blockly.ConnectionDB.prototype.isInYRange_=function(a,b,c){return Math.abs(this[a].y_-b)<=c};
Blockly.ConnectionDB.prototype.searchForClosest=function(a,b,c){if(!this.length)return{connection:null,radius:b};var d=a.y_,e=a.x_;a.x_=e+c.x;a.y_=d+c.y;var f=this.findPositionForConnection_(a);c=null;for(var g=b,h,k=f-1;0<=k&&this.isInYRange_(k,a.y_,b);)h=this[k],a.isConnectionAllowed(h,g)&&(c=h,g=h.distanceFrom(a)),k--;for(;f<this.length&&this.isInYRange_(f,a.y_,b);)h=this[f],a.isConnectionAllowed(h,g)&&(c=h,g=h.distanceFrom(a)),f++;a.x_=e;a.y_=d;return{connection:c,radius:g}};
Blockly.ConnectionDB.init=function(a){var b=[];b[Blockly.INPUT_VALUE]=new Blockly.ConnectionDB;b[Blockly.OUTPUT_VALUE]=new Blockly.ConnectionDB;b[Blockly.NEXT_STATEMENT]=new Blockly.ConnectionDB;b[Blockly.PREVIOUS_STATEMENT]=new Blockly.ConnectionDB;a.connectionDBList=b};Blockly.constants={};Blockly.DRAG_RADIUS=5;Blockly.SNAP_RADIUS=72;Blockly.CONNECTING_SNAP_RADIUS=132;Blockly.CURRENT_CONNECTION_PREFERENCE=20;Blockly.BUMP_DELAY=0;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"};Blockly.SVG_NS="http://www.w3.org/2000/svg";Blockly.HTML_NS="http://www.w3.org/1999/xhtml";Blockly.INPUT_VALUE=1;Blockly.OUTPUT_VALUE=2;Blockly.NEXT_STATEMENT=3;
Blockly.ConnectionDB.init=function(a){var b=[];b[Blockly.INPUT_VALUE]=new Blockly.ConnectionDB;b[Blockly.OUTPUT_VALUE]=new Blockly.ConnectionDB;b[Blockly.NEXT_STATEMENT]=new Blockly.ConnectionDB;b[Blockly.PREVIOUS_STATEMENT]=new Blockly.ConnectionDB;a.connectionDBList=b};Blockly.constants={};Blockly.DRAG_RADIUS=3;Blockly.SNAP_RADIUS=48;Blockly.CONNECTING_SNAP_RADIUS=96;Blockly.CURRENT_CONNECTION_PREFERENCE=20;Blockly.BUMP_DELAY=0;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"};Blockly.SVG_NS="http://www.w3.org/2000/svg";Blockly.HTML_NS="http://www.w3.org/1999/xhtml";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.OUTPUT_SHAPE_HEXAGONAL=1;Blockly.OUTPUT_SHAPE_ROUND=2;Blockly.OUTPUT_SHAPE_SQUARE=3;Blockly.DropDownDiv=function(){};Blockly.DropDownDiv.DIV_=null;Blockly.DropDownDiv.boundsElement_=null;Blockly.DropDownDiv.owner_=null;Blockly.DropDownDiv.ARROW_SIZE=16;Blockly.DropDownDiv.BORDER_SIZE=1;Blockly.DropDownDiv.ARROW_HORIZONTAL_PADDING=12;Blockly.DropDownDiv.PADDING_Y=20;Blockly.DropDownDiv.ANIMATION_TIME=.25;Blockly.DropDownDiv.animateOutTimer_=null;Blockly.DropDownDiv.onHide_=0;
Blockly.TOOLBOX_AT_TOP=0;Blockly.TOOLBOX_AT_BOTTOM=1;Blockly.TOOLBOX_AT_LEFT=2;Blockly.TOOLBOX_AT_RIGHT=3;Blockly.OUTPUT_SHAPE_HEXAGONAL=1;Blockly.OUTPUT_SHAPE_ROUND=2;Blockly.OUTPUT_SHAPE_SQUARE=3;Blockly.STACK_GLOW_RADIUS=1.3;Blockly.REPLACEMENT_GLOW_RADIUS=2;Blockly.Categories={motion:"motion",looks:"looks",sound:"sounds",pen:"pen",data:"data",event:"events",control:"control",sensing:"sensing",operators:"operators",more:"more"};Blockly.DropDownDiv=function(){};Blockly.DropDownDiv.DIV_=null;Blockly.DropDownDiv.boundsElement_=null;Blockly.DropDownDiv.owner_=null;Blockly.DropDownDiv.ARROW_SIZE=16;Blockly.DropDownDiv.BORDER_SIZE=1;Blockly.DropDownDiv.ARROW_HORIZONTAL_PADDING=12;Blockly.DropDownDiv.PADDING_Y=20;Blockly.DropDownDiv.ANIMATION_TIME=.25;Blockly.DropDownDiv.animateOutTimer_=null;Blockly.DropDownDiv.onHide_=0;
Blockly.DropDownDiv.createDom=function(){Blockly.DropDownDiv.DIV_||(Blockly.DropDownDiv.DIV_=goog.dom.createDom("div","blocklyDropDownDiv"),document.body.appendChild(Blockly.DropDownDiv.DIV_),Blockly.DropDownDiv.content_=goog.dom.createDom("div","blocklyDropDownContent"),Blockly.DropDownDiv.DIV_.appendChild(Blockly.DropDownDiv.content_),Blockly.DropDownDiv.arrow_=goog.dom.createDom("div","blocklyDropDownArrow"),Blockly.DropDownDiv.DIV_.appendChild(Blockly.DropDownDiv.arrow_),Blockly.DropDownDiv.DIV_.style.transition=
"transform "+Blockly.DropDownDiv.ANIMATION_TIME+"s, opacity "+Blockly.DropDownDiv.ANIMATION_TIME+"s")};Blockly.DropDownDiv.setBoundsElement=function(a){Blockly.DropDownDiv.boundsElement_=a};Blockly.DropDownDiv.getContentDiv=function(){return Blockly.DropDownDiv.content_};Blockly.DropDownDiv.clearContent=function(){Blockly.DropDownDiv.content_.innerHTML=""};Blockly.DropDownDiv.setColour=function(a,b){Blockly.DropDownDiv.DIV_.style.backgroundColor=a;Blockly.DropDownDiv.DIV_.style.borderColor=b};
Blockly.DropDownDiv.showPositionedByBlock=function(a,b,c,d){a=b.workspace.scale;var e=b.getHeightWidth();e.width*=a;e.height*=a;var f=goog.style.getPageOffset(b.getSvgRoot());a=f.x+e.width/2;e=f.y+e.height;f=f.y;d&&(f+=d);Blockly.DropDownDiv.setBoundsElement(b.workspace.getParentSvg().parentNode);return Blockly.DropDownDiv.show(this,a,e,a,f,c)};
Blockly.DropDownDiv.setCategory=function(a){Blockly.DropDownDiv.DIV_.setAttribute("data-category",a)};Blockly.DropDownDiv.showPositionedByBlock=function(a,b,c,d){var e=b.workspace.scale,f=b.width;a=b.height;f*=e;a*=e;e=goog.style.getPageOffset(b.getSvgRoot());f=e.x+f/2;a=e.y+a;e=e.y;d&&(e+=d);Blockly.DropDownDiv.setBoundsElement(b.workspace.getParentSvg().parentNode);return Blockly.DropDownDiv.show(this,f,a,f,e,c)};
Blockly.DropDownDiv.show=function(a,b,c,d,e,f){Blockly.DropDownDiv.owner_=a;Blockly.DropDownDiv.onHide_=f;a=Blockly.DropDownDiv.DIV_;b=Blockly.DropDownDiv.getPositionMetrics(b,c,d,e);Blockly.DropDownDiv.arrow_.style.transform="translate("+b.arrowX+"px,"+b.arrowY+"px) rotate(45deg)";Blockly.DropDownDiv.arrow_.setAttribute("class",b.arrowAtTop?"blocklyDropDownArrow arrowTop":"blocklyDropDownArrow arrowBottom");a.style.left=b.initialX+"px";a.style.top=b.initialY+"px";a.style.display="block";a.style.opacity=
1;a.style.transform="translate("+(b.finalX-b.initialX)+"px,"+(b.finalY-b.initialY)+"px)";return b.arrowAtTop};
Blockly.DropDownDiv.getPositionMetrics=function(a,b,c,d){var e=Blockly.DropDownDiv.DIV_,f=goog.style.getPageOffset(Blockly.DropDownDiv.boundsElement_),g=goog.style.getSize(Blockly.DropDownDiv.boundsElement_),e=goog.style.getSize(e),h;b+e.height>f.y+g.height?d-e.height<f.y?(c=b+Blockly.DropDownDiv.PADDING_Y,h=!1):(a=c,c=d-e.height-Blockly.DropDownDiv.PADDING_Y,h=!0):(c=b+Blockly.DropDownDiv.PADDING_Y,h=!1);var k=a-Blockly.DropDownDiv.ARROW_SIZE/2,k=Math.max(f.x,Math.min(k,f.x+g.width));a=Math.max(f.x,
@ -1046,7 +1048,7 @@ this.oldHostMetrics_.contentHeight==a.contentHeight&&this.oldHostMetrics_.viewTo
this.hScroll.position_.y);this.oldHostMetrics_=a}};Blockly.ScrollbarPair.prototype.set=function(a,b){var c={},d=a*this.hScroll.ratio_,e=b*this.vScroll.ratio_,f=this.vScroll.scrollViewSize_;c.x=this.getRatio_(d,this.hScroll.scrollViewSize_);c.y=this.getRatio_(e,f);this.workspace_.setMetrics(c);this.hScroll.setHandlePosition(d);this.vScroll.setHandlePosition(e)};Blockly.ScrollbarPair.prototype.getRatio_=function(a,b){var c=a/b;return isNaN(c)?0:c};
Blockly.Scrollbar=function(a,b,c){this.workspace_=a;this.pair_=c||!1;this.horizontal_=b;this.oldHostMetrics_=null;this.createDom_();this.position_=new goog.math.Coordinate(0,0);b?(this.svgBackground_.setAttribute("height",Blockly.Scrollbar.scrollbarThickness),this.svgHandle_.setAttribute("height",Blockly.Scrollbar.scrollbarThickness-5),this.svgHandle_.setAttribute("y",2.5),this.lengthAttribute_="width",this.positionAttribute_="x"):(this.svgBackground_.setAttribute("width",Blockly.Scrollbar.scrollbarThickness),
this.svgHandle_.setAttribute("width",Blockly.Scrollbar.scrollbarThickness-5),this.svgHandle_.setAttribute("x",2.5),this.lengthAttribute_="height",this.positionAttribute_="y");this.onMouseDownBarWrapper_=Blockly.bindEvent_(this.svgBackground_,"mousedown",this,this.onMouseDownBar_);this.onMouseDownHandleWrapper_=Blockly.bindEvent_(this.svgHandle_,"mousedown",this,this.onMouseDownHandle_)};Blockly.Scrollbar.prototype.scrollViewSize_=0;Blockly.Scrollbar.prototype.handleLength_=0;
Blockly.Scrollbar.prototype.handlePosition_=0;Blockly.Scrollbar.prototype.isVisible_=!0;Blockly.Scrollbar.scrollbarThickness=15;goog.events.BrowserFeature.TOUCH_ENABLED&&(Blockly.Scrollbar.scrollbarThickness=25);
Blockly.Scrollbar.prototype.handlePosition_=0;Blockly.Scrollbar.prototype.isVisible_=!0;Blockly.Scrollbar.scrollbarThickness=11;goog.events.BrowserFeature.TOUCH_ENABLED&&(Blockly.Scrollbar.scrollbarThickness=25);
Blockly.Scrollbar.metricsAreEquivalent_=function(a,b){return a&&b&&a.viewWidth==b.viewWidth&&a.viewHeight==b.viewHeight&&a.viewLeft==b.viewLeft&&a.viewTop==b.viewTop&&a.absoluteTop==b.absoluteTop&&a.absoluteLeft==b.absoluteLeft&&a.contentWidth==b.contentWidth&&a.contentHeight==b.contentHeight&&a.contentLeft==b.contentLeft&&a.contentTop==b.contentTop?!0:!1};
Blockly.Scrollbar.prototype.dispose=function(){this.cleanUp_();Blockly.unbindEvent_(this.onMouseDownBarWrapper_);this.onMouseDownBarWrapper_=null;Blockly.unbindEvent_(this.onMouseDownHandleWrapper_);this.onMouseDownHandleWrapper_=null;goog.dom.removeNode(this.svgGroup_);this.workspace_=this.svgHandle_=this.svgBackground_=this.svgGroup_=null};Blockly.Scrollbar.prototype.setHandleLength_=function(a){this.handleLength_=a;this.svgHandle_.setAttribute(this.lengthAttribute_,this.handleLength_)};
Blockly.Scrollbar.prototype.setHandlePosition=function(a){this.handlePosition_=a;this.svgHandle_.setAttribute(this.positionAttribute_,this.handlePosition_)};Blockly.Scrollbar.prototype.setScrollViewSize_=function(a){this.scrollViewSize_=a;this.svgBackground_.setAttribute(this.lengthAttribute_,this.scrollViewSize_)};Blockly.Scrollbar.prototype.setPosition=function(a,b){this.position_.x=a;this.position_.y=b;this.svgGroup_.setAttribute("transform","translate("+this.position_.x+","+this.position_.y+")")};
@ -1171,7 +1173,7 @@ Blockly.Warning.textToDom_=function(a){var b=Blockly.createSvgElement("text",{"c
Blockly.Warning.prototype.setVisible=function(a){if(a!=this.isVisible())if(Blockly.Events.fire(new Blockly.Events.Ui(this.block_,"warningOpen",!a,a)),a){a=Blockly.Warning.textToDom_(this.getText());this.bubble_=new Blockly.Bubble(this.block_.workspace,a,this.block_.svgPath_,this.iconXY_,null,null);if(this.block_.RTL)for(var b=a.getBBox().width,c=0,d;d=a.childNodes[c];c++)d.setAttribute("text-anchor","end"),d.setAttribute("x",b+Blockly.Bubble.BORDER_WIDTH);this.updateColour();a=this.bubble_.getBubbleSize();
this.bubble_.setBubbleSize(a.width,a.height)}else this.bubble_.dispose(),this.body_=this.bubble_=null};Blockly.Warning.prototype.bodyFocus_=function(){this.bubble_.promote_()};Blockly.Warning.prototype.setText=function(a,b){this.text_[b]!=a&&(a?this.text_[b]=a:delete this.text_[b],this.isVisible()&&(this.setVisible(!1),this.setVisible(!0)))};Blockly.Warning.prototype.getText=function(){var a=[],b;for(b in this.text_)a.push(this.text_[b]);return a.join("\n")};
Blockly.Warning.prototype.dispose=function(){this.block_.warning=null;Blockly.Icon.prototype.dispose.call(this)};Blockly.Block=function(a,b,c){var d=a&&a.getFlyout&&a.getFlyout()?a.getFlyout().getWorkspace():null;this.id=!c||a.getBlockById(c)||d&&d.getBlockById(c)?Blockly.genUid():c;a.blockDB_[this.id]=this;this.previousConnection=this.nextConnection=this.outputConnection=null;this.inputList=[];this.inputsInline=!0;this.disabled=!1;this.tooltip="";this.contextMenu=!0;this.parentBlock_=null;this.childBlocks_=[];this.editable_=this.movable_=this.deletable_=!0;this.checkboxInFlyout_=this.collapsed_=this.isShadow_=
!1;this.outputShape_=this.comment=null;this.xy_=new goog.math.Coordinate(0,0);this.workspace=a;this.isInFlyout=a.isFlyout;this.isInMutator=a.isMutator;this.RTL=a.RTL;this.isInsertionMarker_=!1;b&&(this.type=b,c=Blockly.Blocks[b],goog.asserts.assertObject(c,'Error: "%s" is an unknown language block.',b),goog.mixin(this,c));a.addTopBlock(this);goog.isFunction(this.init)&&this.init();this.inputsInlineDefault=this.inputsInline;Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Create(this));
!1;this.category_=this.outputShape_=this.comment=null;this.xy_=new goog.math.Coordinate(0,0);this.workspace=a;this.isInFlyout=a.isFlyout;this.isInMutator=a.isMutator;this.RTL=a.RTL;this.isInsertionMarker_=!1;b&&(this.type=b,c=Blockly.Blocks[b],goog.asserts.assertObject(c,'Error: "%s" is an unknown language block.',b),goog.mixin(this,c));a.addTopBlock(this);goog.isFunction(this.init)&&this.init();this.inputsInlineDefault=this.inputsInline;Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Create(this));
goog.isFunction(this.onchange)&&(this.onchangeWrapper_=this.onchange.bind(this),this.workspace.addChangeListener(this.onchangeWrapper_))};Blockly.Block.prototype.data=null;Blockly.Block.prototype.colour_="#FF0000";Blockly.Block.prototype.colourSecondary_="#FF0000";Blockly.Block.prototype.colourTertiary_="#FF0000";
Blockly.Block.prototype.dispose=function(a){if(this.workspace){this.onchangeWrapper_&&this.workspace.removeChangeListener(this.onchangeWrapper_);this.unplug(a);Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Delete(this));Blockly.Events.disable();try{this.workspace&&(this.workspace.removeTopBlock(this),delete this.workspace.blockDB_[this.id],this.workspace=null);Blockly.selected==this&&(Blockly.selected=null);for(var b=this.childBlocks_.length-1;0<=b;b--)this.childBlocks_[b].dispose(!1);
for(var b=0,c;c=this.inputList[b];b++)c.dispose();this.inputList.length=0;for(var d=this.getConnections_(!0),b=0;b<d.length;b++){var e=d[b];e.isConnected()&&e.disconnect();d[b].dispose()}}finally{Blockly.Events.enable()}}};
@ -1200,7 +1202,7 @@ Blockly.Block.prototype.setCollapsed=function(a){this.collapsed_!=a&&(Blockly.Ev
Blockly.Block.prototype.toString=function(a,b){var c=[],d=b||"?";if(this.collapsed_)c.push(this.getInput("_TEMP_COLLAPSED_INPUT").fieldRow[0].text_);else for(var e=0,f;f=this.inputList[e];e++){for(var g=0,h;h=f.fieldRow[g];g++)c.push(h.getText());f.connection&&((f=f.connection.targetBlock())?c.push(f.toString(void 0,b)):c.push(d))}c=goog.string.trim(c.join(" "))||"???";a&&(c=goog.string.truncate(c,a));return c};
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||"")};
Blockly.Block.prototype.jsonInit=function(a){goog.asserts.assert(void 0==a.output||void 0==a.previousStatement,"Must not have both an output and a previousStatement.");void 0!==a.colour&&this.setColour(a.colour,a.colourSecondary,a.colourTertiary);for(var b=0;void 0!==a["message"+b];)this.interpolate_(a["message"+b],a["args"+b]||[],a["lastDummyAlign"+b]),b++;void 0!==a.inputsInline&&this.setInputsInline(a.inputsInline);void 0!==a.output&&this.setOutput(!0,a.output);void 0!==a.previousStatement&&this.setPreviousStatement(!0,
a.previousStatement);void 0!==a.nextStatement&&this.setNextStatement(!0,a.nextStatement);void 0!==a.tooltip&&this.setTooltip(a.tooltip);void 0!==a.helpUrl&&this.setHelpUrl(a.helpUrl);void 0!==a.outputShape&&this.setOutputShape(a.outputShape);void 0!==a.checkboxInFlyout&&this.setCheckboxInFlyout(a.checkboxInFlyout)};
a.previousStatement);void 0!==a.nextStatement&&this.setNextStatement(!0,a.nextStatement);void 0!==a.tooltip&&this.setTooltip(a.tooltip);void 0!==a.helpUrl&&this.setHelpUrl(a.helpUrl);void 0!==a.outputShape&&this.setOutputShape(a.outputShape);void 0!==a.checkboxInFlyout&&this.setCheckboxInFlyout(a.checkboxInFlyout);void 0!==a.category&&this.setCategory(a.category)};
Blockly.Block.prototype.interpolate_=function(a,b,c){var d=Blockly.utils.tokenizeInterpolation(a),e=[],f=0;a=[];for(var g=0;g<d.length;g++){var h=d[g];"number"==typeof h?(goog.asserts.assert(0<h&&h<=b.length,'Message index "%s" out of range.',h),goog.asserts.assert(!e[h],'Message index "%s" duplicated.',h),e[h]=!0,f++,a.push(b[h-1])):(h=h.trim())&&a.push(h)}goog.asserts.assert(f==b.length,"Message does not reference all %s arg(s).",b.length);!a.length||"string"!=typeof a[a.length-1]&&0!=a[a.length-
1].type.indexOf("field_")||(g={type:"input_dummy"},c&&(g.align=c),a.push(g));c={LEFT:Blockly.ALIGN_LEFT,RIGHT:Blockly.ALIGN_RIGHT,CENTRE:Blockly.ALIGN_CENTRE};b=[];for(g=0;g<a.length;g++)if(e=a[g],"string"==typeof e)b.push([e,void 0]);else{d=f=null;do if(h=!1,"string"==typeof e)f=new Blockly.FieldLabel(e);else switch(e.type){case "input_value":d=this.appendValueInput(e.name);break;case "input_statement":d=this.appendStatementInput(e.name);break;case "input_dummy":d=this.appendDummyInput(e.name);break;
case "field_label":f=new Blockly.FieldLabel(e.text,e["class"]);break;case "field_input":f=new Blockly.FieldTextInput(e.text);"boolean"==typeof e.spellcheck&&f.setSpellcheck(e.spellcheck);break;case "field_angle":f=new Blockly.FieldAngle(e.angle);break;case "field_checkbox":f=new Blockly.FieldCheckbox(e.checked?"TRUE":"FALSE");break;case "field_colour":f=new Blockly.FieldColour(e.colour);break;case "field_variable":f=new Blockly.FieldVariable(e.variable);break;case "field_dropdown":f=new Blockly.FieldDropdown(e.options);
@ -1210,7 +1212,7 @@ Blockly.Block.prototype.moveInputBefore=function(a,b){if(a!=b){for(var c=-1,d=b?
Blockly.Block.prototype.moveNumberedInputBefore=function(a,b){goog.asserts.assert(a!=b,"Can't move input to itself.");goog.asserts.assert(a<this.inputList.length,"Input index "+a+" out of bounds.");goog.asserts.assert(b<=this.inputList.length,"Reference input "+b+" out of bounds.");var c=this.inputList[a];this.inputList.splice(a,1);a<b&&b--;this.inputList.splice(b,0,c)};
Blockly.Block.prototype.removeInput=function(a,b){for(var c=0,d;d=this.inputList[c];c++)if(d.name==a){if(d.connection&&d.connection.isConnected()){d.connection.setShadowDom(null);var e=d.connection.targetBlock();e.isShadow()?e.dispose():e.unplug()}d.dispose();this.inputList.splice(c,1);return}b||goog.asserts.fail('Input "%s" not found.',a)};Blockly.Block.prototype.getInput=function(a){for(var b=0,c;c=this.inputList[b];b++)if(c.name==a)return c;return null};
Blockly.Block.prototype.getInputTargetBlock=function(a){return(a=this.getInput(a))&&a.connection&&a.connection.targetBlock()};Blockly.Block.prototype.getCommentText=function(){return this.comment||""};Blockly.Block.prototype.setCommentText=function(a){this.comment!=a&&(Blockly.Events.fire(new Blockly.Events.Change(this,"comment",null,this.comment,a||"")),this.comment=a)};Blockly.Block.prototype.setOutputShape=function(a){this.outputShape_=a};Blockly.Block.prototype.getOutputShape=function(){return this.outputShape_};
Blockly.Block.prototype.setCheckboxInFlyout=function(a){this.checkboxInFlyout_=a};Blockly.Block.prototype.hasCheckboxInFlyout=function(){return this.checkboxInFlyout_};Blockly.Block.prototype.setWarningText=function(){};Blockly.Block.prototype.setMutator=function(){};Blockly.Block.prototype.getRelativeToSurfaceXY=function(){return this.xy_};
Blockly.Block.prototype.setCategory=function(a){this.category_=a};Blockly.Block.prototype.getCategory=function(){return this.category_};Blockly.Block.prototype.setCheckboxInFlyout=function(a){this.checkboxInFlyout_=a};Blockly.Block.prototype.hasCheckboxInFlyout=function(){return this.checkboxInFlyout_};Blockly.Block.prototype.setWarningText=function(){};Blockly.Block.prototype.setMutator=function(){};Blockly.Block.prototype.getRelativeToSurfaceXY=function(){return this.xy_};
Blockly.Block.prototype.moveBy=function(a,b){goog.asserts.assert(!this.parentBlock_,"Block has parent.");var c=new Blockly.Events.Move(this);this.xy_.translate(a,b);c.recordNew();Blockly.Events.fire(c)};Blockly.Block.prototype.makeConnection_=function(a){return new Blockly.Connection(this,a)};Blockly.ContextMenu={};Blockly.ContextMenu.currentBlock=null;
Blockly.ContextMenu.show=function(a,b,c){Blockly.WidgetDiv.show(Blockly.ContextMenu,c,null);if(b.length){var d=new goog.ui.Menu;d.setRightToLeft(c);for(var e=0,f;f=b[e];e++){var g=new goog.ui.MenuItem(f.text);g.setRightToLeft(c);d.addChild(g,!0);g.setEnabled(f.enabled);f.enabled&&goog.events.listen(g,goog.ui.Component.EventType.ACTION,f.callback)}goog.events.listen(d,goog.ui.Component.EventType.ACTION,Blockly.ContextMenu.hide);b=goog.dom.getViewportSize();e=goog.style.getViewportPageOffset(document);
d.render(Blockly.WidgetDiv.DIV);var h=d.getElement();Blockly.addClass_(h,"blocklyContextMenu");Blockly.bindEvent_(h,"contextmenu",null,Blockly.noEvent);f=goog.style.getSize(h);var g=a.clientX+e.x,k=a.clientY+e.y;a.clientY+f.height>=b.height&&(k-=f.height);c?f.width>=a.clientX&&(g+=f.width):a.clientX+f.width>=b.width&&(g-=f.width);Blockly.WidgetDiv.position(g,k,b,e,c);d.setAllowAutoFocus(!0);setTimeout(function(){h.focus()},1);Blockly.ContextMenu.currentBlock=null}else Blockly.ContextMenu.hide()};
@ -1225,7 +1227,7 @@ Blockly.RenderedConnection.prototype.unhighlight=function(){goog.dom.removeNode(
Blockly.RenderedConnection.prototype.hideAll=function(){this.setHidden(!0);if(this.targetConnection)for(var a=this.targetBlock().getDescendants(),b=0;b<a.length;b++){for(var c=a[b],d=c.getConnections_(!0),e=0;e<d.length;e++)d[e].setHidden(!0);c=c.getIcons();for(e=0;e<c.length;e++)c[e].setVisible(!1)}};Blockly.RenderedConnection.prototype.isConnectionAllowed=function(a,b){return this.distanceFrom(a)>b?!1:Blockly.RenderedConnection.superClass_.isConnectionAllowed.call(this,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())};
Blockly.RenderedConnection.prototype.respawnShadow_=function(){var a=this.getSourceBlock(),b=this.getShadowDom();if(a.workspace&&b&&Blockly.Events.recordUndo){Blockly.RenderedConnection.superClass_.respawnShadow_.call(this);b=this.targetBlock();if(!b)throw"Couldn't respawn the shadow block that should exist here.";b.initSvg();b.render(!1);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();b.rendered&&b.updateDisabled();a.rendered&&a.updateDisabled();b.rendered&&a.rendered&&(this.type==Blockly.NEXT_STATEMENT||this.type==Blockly.PREVIOUS_STATEMENT?a.render():b.render())};Blockly.BlockSvg=function(a,b,c){this.svgGroup_=Blockly.createSvgElement("g",{},null);this.svgPath_=Blockly.createSvgElement("path",{"class":"blocklyPath"},this.svgGroup_);this.svgPath_.tooltip=this;this.rendered=!1;this.inputShapes_={};Blockly.Tooltip.bindMouseEvents(this.svgPath_);Blockly.BlockSvg.superClass_.constructor.call(this,a,b,c)};goog.inherits(Blockly.BlockSvg,Blockly.Block);Blockly.BlockSvg.prototype.height=0;Blockly.BlockSvg.prototype.width=0;
Blockly.RenderedConnection.prototype.connect_=function(a){Blockly.RenderedConnection.superClass_.connect_.call(this,a);var b=this.getSourceBlock();a=a.getSourceBlock();b.rendered&&b.updateDisabled();a.rendered&&a.updateDisabled();b.rendered&&a.rendered&&(this.type==Blockly.NEXT_STATEMENT||this.type==Blockly.PREVIOUS_STATEMENT?a.render():b.render())};Blockly.BlockSvg=function(a,b,c){this.svgGroup_=Blockly.createSvgElement("g",{},null);this.svgPath_=Blockly.createSvgElement("path",{"class":"blocklyPath blocklyBlockBackground"},this.svgGroup_);this.svgPath_.tooltip=this;this.rendered=!1;this.inputShapes_={};Blockly.Tooltip.bindMouseEvents(this.svgPath_);Blockly.BlockSvg.superClass_.constructor.call(this,a,b,c)};goog.inherits(Blockly.BlockSvg,Blockly.Block);Blockly.BlockSvg.prototype.height=0;Blockly.BlockSvg.prototype.width=0;
Blockly.BlockSvg.prototype.insertionMarkerMinWidth_=0;Blockly.BlockSvg.prototype.opacity_=1;Blockly.BlockSvg.prototype.dragStartXY_=null;Blockly.BlockSvg.prototype.isGlowingBlock_=!1;Blockly.BlockSvg.prototype.isGlowingStack_=!1;Blockly.BlockSvg.INLINE=-1;
Blockly.BlockSvg.prototype.initSvg=function(){goog.asserts.assert(this.workspace.rendered,"Workspace is headless.");if(!this.isInsertionMarker()){for(var a=0,b;b=this.inputList[a];a++)b.init(),b.type===Blockly.INPUT_VALUE&&this.initInputShape(b);b=this.getIcons();for(a=0;a<b.length;a++)b[a].createIcon()}this.updateColour();this.updateMovable();if(!this.workspace.options.readOnly&&!this.eventsInit_){Blockly.bindEvent_(this.getSvgRoot(),"mousedown",this,this.onMouseDown_);var c=this;Blockly.bindEvent_(this.getSvgRoot(),
"touchstart",null,function(a){Blockly.longStart_(a,c)})}this.eventsInit_=!0;this.getSvgRoot().parentNode||this.workspace.getCanvas().appendChild(this.getSvgRoot())};Blockly.BlockSvg.prototype.initInputShape=function(a){this.inputShapes_[a.name]||(this.inputShapes_[a.name]=Blockly.createSvgElement("path",{"class":"blocklyPath",style:"visibility: hidden"},this.svgGroup_))};
@ -1298,7 +1300,7 @@ Blockly.BlockSvg.SHAPE_IN_SHAPE_PADDING={1:{0:5*Blockly.BlockSvg.GRID_UNIT,1:2*B
Blockly.BlockSvg.prototype.updateColour=function(){var a=this.getColourTertiary();this.isShadow()&&this.parentBlock_&&(a=this.parentBlock_.getColourTertiary(),this.inputList[0]&&this.inputList[0].fieldRow[0]&&this.inputList[0].fieldRow[0]instanceof Blockly.FieldColour&&(a=Blockly.Colours.colourPickerStroke));this.svgPath_.setAttribute("stroke",a);a=this.isGlowingBlock_?this.getColourSecondary():this.getColour();this.svgPath_.setAttribute("fill",a);this.svgPath_.setAttribute("fill-opacity",this.getOpacity());
for(var b in this.inputShapes_)this.inputShapes_[b].setAttribute("fill",this.getColourTertiary());b=this.getIcons();for(a=0;a<b.length;a++)b[a].updateColour();for(b=0;a=this.inputList[b];b++)for(var c=0,d;d=a.fieldRow[c];c++)d.setText(null)};Blockly.BlockSvg.prototype.highlightForReplacement=function(a){a?this.svgPath_.setAttribute("filter","url(#blocklyReplacementGlowFilter)"):this.svgPath_.removeAttribute("filter")};
Blockly.BlockSvg.prototype.highlightShapeForInput=function(a,b){var c=this.getInputWithConnection(a);if(!c)throw"No input found for the connection";c=this.inputShapes_[c.name];b?c.setAttribute("filter","url(#blocklyReplacementGlowFilter)"):c.removeAttribute("filter")};Blockly.BlockSvg.prototype.getHeightWidth=function(){var a=this.height,b=this.width,c=this.getNextBlock();c&&(c=c.getHeightWidth(),a+=c.height,a-=Blockly.BlockSvg.NOTCH_HEIGHT,b=Math.max(b,c.width));return{height:a,width:b}};
Blockly.BlockSvg.prototype.render=function(a){Blockly.Field.startCache();this.rendered=!0;var b=Blockly.BlockSvg.SEP_SPACE_X;this.RTL&&(b=-b);for(var c=this.getIcons(),d=0;d<c.length;d++)b=c[d].renderIcon(b);b+=this.RTL?Blockly.BlockSvg.SEP_SPACE_X:-Blockly.BlockSvg.SEP_SPACE_X;c=this.renderCompute_(b);this.renderDraw_(b,c);!1!==a&&((a=this.getParent())?a.render(!0):Blockly.resizeSvgContents(this.workspace));Blockly.Field.stopCache()};
Blockly.BlockSvg.prototype.render=function(a){Blockly.Field.startCache();this.rendered=!0;var b=Blockly.BlockSvg.SEP_SPACE_X;this.RTL&&(b=-b);for(var c=this.getIcons(),d=0;d<c.length;d++)b=c[d].renderIcon(b);b+=this.RTL?Blockly.BlockSvg.SEP_SPACE_X:-Blockly.BlockSvg.SEP_SPACE_X;c=this.renderCompute_(b);this.renderDraw_(b,c);this.renderClassify_();!1!==a&&((a=this.getParent())?a.render(!0):Blockly.resizeSvgContents(this.workspace));Blockly.Field.stopCache()};
Blockly.BlockSvg.prototype.renderFields_=function(a,b,c){this.RTL&&(b=-b);for(var d=0,e;e=a[d];d++){var f=e.getSvgRoot();if(f){var g=-e.getSize().height/2;this.RTL?(b-=e.renderSep+e.renderWidth,f.setAttribute("transform","translate("+b+","+(c+g)+")"),e.renderWidth&&(b-=Blockly.BlockSvg.SEP_SPACE_X)):(f.setAttribute("transform","translate("+(b+e.renderSep)+","+(c+g)+")"),e.renderWidth&&(b+=e.renderSep+e.renderWidth+Blockly.BlockSvg.SEP_SPACE_X));this.isInsertionMarker()&&f.setAttribute("display","none")}}return this.RTL?
-b:b};
Blockly.BlockSvg.prototype.renderCompute_=function(a){var b=this.inputList,c=[];c.rightEdge=0;for(var d=c.bottomEdge=0,e=!1,f=!1,g=!1,h=void 0,k,l=0,m;m=b[l];l++)if(m.isVisible()){var n;h&&h!=Blockly.NEXT_STATEMENT&&m.type!=Blockly.NEXT_STATEMENT?n=c[c.length-1]:(h=m.type,n=[],n.type=m.type!=Blockly.NEXT_STATEMENT?Blockly.BlockSvg.INLINE:m.type,n.height=0,n.paddingStart=Blockly.BlockSvg.SEP_SPACE_X,n.paddingEnd=Blockly.BlockSvg.SEP_SPACE_X,c.push(n));n.push(m);1===b.length&&this.isShadow()&&this.outputConnection?
@ -1311,15 +1313,18 @@ Blockly.BlockSvg.prototype.computeOutputPadding_=function(a){if(this.getOutputSh
Blockly.BlockSvg.SHAPE_IN_SHAPE_PADDING[b][d];c=a[a.length-1];c.connection?(d=c.connection,d=d.targetConnection?d.targetConnection.getSourceBlock().getOutputShape():d.getOutputShape(),b==Blockly.OUTPUT_SHAPE_HEXAGONAL&&d!=Blockly.OUTPUT_SHAPE_HEXAGONAL&&(c=c.renderHeight-Blockly.BlockSvg.MIN_BLOCK_Y_REPORTER,a.paddingEnd+=c/2)):d=0;a.paddingEnd+=Blockly.BlockSvg.SHAPE_IN_SHAPE_PADDING[b][d]}};
Blockly.BlockSvg.prototype.renderDraw_=function(a,b){this.squareTopLeftCorner_=this.startHat_=!1;this.outputConnection||this.previousConnection||(this.startHat_=this.squareTopLeftCorner_=!0,b.rightEdge=Math.max(b.rightEdge,100));this.edgeShapeWidth_=0;this.edgeShape_=null;if(this.outputConnection){var c=this.getOutputShape();if(c===Blockly.OUTPUT_SHAPE_HEXAGONAL||c===Blockly.OUTPUT_SHAPE_ROUND)this.edgeShapeWidth_=b.bottomEdge/2,this.edgeShape_=c,this.squareTopLeftCorner_=!0}var c=this.getRelativeToSurfaceXY(),
d=[];this.renderDrawTop_(d,c,b.rightEdge);var e=this.renderDrawRight_(d,c,b,a);this.renderDrawBottom_(d,c,e);this.renderDrawLeft_(d,c);c=d.join(" ");this.svgPath_.setAttribute("d",c);this.RTL&&this.svgPath_.setAttribute("transform","scale(-1 1)")};
Blockly.BlockSvg.prototype.renderClassify_=function(){var a=[];if(this.outputConnection)this.isShadow_?a.push("argument"):a.push("reporter"),this.edgeShape_===Blockly.OUTPUT_SHAPE_HEXAGONAL?a.push("boolean"):this.edgeShape_===Blockly.OUTPUT_SHAPE_ROUND&&a.push("round");else{for(var b=this.inputList,c=0,d=0,e;e=b[d];d++)e.connection&&e.connection.type===Blockly.NEXT_STATEMENT&&c++;c&&(a.push("c-block"),a.push("c-"+c));this.startHat_?a.push("hat"):c||a.push("stack");this.nextConnection||a.push("end")}this.svgGroup_.setAttribute("data-shapes",
a.join(" "));this.getCategory()&&this.svgGroup_.setAttribute("data-category",this.getCategory())};
Blockly.BlockSvg.prototype.renderDrawTop_=function(a,b,c){this.squareTopLeftCorner_?(a.push("m 0,0"),this.startHat_&&a.push(Blockly.BlockSvg.START_HAT_PATH),this.edgeShapeWidth_&&a.push("m "+this.edgeShapeWidth_+",0")):(a.push(Blockly.BlockSvg.TOP_LEFT_CORNER_START),a.push(Blockly.BlockSvg.TOP_LEFT_CORNER));this.previousConnection&&(a.push("H",Blockly.BlockSvg.NOTCH_START_PADDING),a.push(Blockly.BlockSvg.NOTCH_PATH_LEFT),this.previousConnection.moveTo(b.x+(this.RTL?-Blockly.BlockSvg.NOTCH_WIDTH:Blockly.BlockSvg.NOTCH_WIDTH),
b.y));this.width=c};
Blockly.BlockSvg.prototype.renderDrawRight_=function(a,b,c,d){for(var e,f=0,g,h,k=0,l;l=c[k];k++){e=l.paddingStart;0==k&&(e+=this.RTL?-d:d);if(l.type==Blockly.BlockSvg.INLINE){for(var m=0,n;n=l[m];m++)if(g=f,g+=l.height/2,n.align!=Blockly.ALIGN_LEFT&&(h=c.rightEdge-n.fieldWidth-2*Blockly.BlockSvg.SEP_SPACE_X,n.align==Blockly.ALIGN_RIGHT?e+=h:n.align==Blockly.ALIGN_CENTRE&&(e+=h/2)),e=this.renderFields_(n.fieldRow,e,g),n.type==Blockly.INPUT_VALUE){0===k&&this.previousConnection&&(e=Math.max(e,Blockly.BlockSvg.NO_PREVIOUS_INPUT_X_MIN));
g=this.RTL?b.x-e:b.x+e;var p=l.height/2;h=b.y+f+p;n.connection.moveTo(g,h);n.connection.isConnected()&&n.connection.tighten_();this.renderInputShape_(n,e,f+p);e+=n.renderWidth+Blockly.BlockSvg.SEP_SPACE_X}e-=Blockly.BlockSvg.SEP_SPACE_X;e+=l.paddingEnd;c.rightEdge=Math.max(e,c.rightEdge);e=Math.max(e,c.rightEdge);this.width=Math.max(this.width,e);this.edgeShape_?a.push("H",e-this.edgeShapeWidth_):(a.push("H",e-Blockly.BlockSvg.CORNER_RADIUS-this.edgeShapeWidth_),a.push(Blockly.BlockSvg.TOP_RIGHT_CORNER));
this.edgeShape_||a.push("v",l.height-2*Blockly.BlockSvg.CORNER_RADIUS)}else l.type==Blockly.NEXT_STATEMENT&&(n=l[0],g=f,this.renderFields_(n.fieldRow,e,g),a.push(Blockly.BlockSvg.BOTTOM_RIGHT_CORNER),e=c.statementEdge+Blockly.BlockSvg.NOTCH_WIDTH,a.push("H",e+Blockly.BlockSvg.STATEMENT_INPUT_INNER_SPACE+2*Blockly.BlockSvg.CORNER_RADIUS),a.push(Blockly.BlockSvg.NOTCH_PATH_RIGHT),a.push("h","-"+Blockly.BlockSvg.STATEMENT_INPUT_INNER_SPACE),a.push(Blockly.BlockSvg.INNER_TOP_LEFT_CORNER),a.push("v",l.height-
2*Blockly.BlockSvg.CORNER_RADIUS),a.push(Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER),l.statementNotchAtBottom&&(a.push("h ",Blockly.BlockSvg.STATEMENT_INPUT_INNER_SPACE),a.push(Blockly.BlockSvg.NOTCH_PATH_LEFT)),a.push("H",c.rightEdge-Blockly.BlockSvg.CORNER_RADIUS),g=b.x+(this.RTL?-e:e),h=b.y+f,n.connection.moveTo(g,h),n.connection.isConnected()&&n.connection.tighten_(),k==c.length-1||c[k+1].type==Blockly.NEXT_STATEMENT)&&(a.push(Blockly.BlockSvg.TOP_RIGHT_CORNER),a.push("v",Blockly.BlockSvg.EXTRA_STATEMENT_ROW_Y-
2*Blockly.BlockSvg.CORNER_RADIUS),f+=Blockly.BlockSvg.EXTRA_STATEMENT_ROW_Y);f+=l.height}this.edgeShape_&&(this.edgeShape_===Blockly.OUTPUT_SHAPE_ROUND?a.push("a "+this.edgeShapeWidth_+" "+this.edgeShapeWidth_+" 0 0 1 0 "+2*this.edgeShapeWidth_):this.edgeShape_===Blockly.OUTPUT_SHAPE_HEXAGONAL&&a.push("l "+this.edgeShapeWidth_+" "+this.edgeShapeWidth_+" l "+-this.edgeShapeWidth_+" "+this.edgeShapeWidth_));c.length||(f=Blockly.BlockSvg.MIN_BLOCK_Y,a.push("V",f));return f};
Blockly.BlockSvg.prototype.renderInputShape_=function(a,b,c){var d=this.inputShapes_[a.name];if(d){var e;if(a.connection.targetConnection)d.setAttribute("style","visibility: hidden");else{switch(a.connection.getOutputShape()){case Blockly.OUTPUT_SHAPE_HEXAGONAL:a=Blockly.BlockSvg.INPUT_SHAPE_HEXAGONAL;e=Blockly.BlockSvg.INPUT_SHAPE_HEXAGONAL_WIDTH;break;case Blockly.OUTPUT_SHAPE_ROUND:a=Blockly.BlockSvg.INPUT_SHAPE_ROUND;e=Blockly.BlockSvg.INPUT_SHAPE_ROUND_WIDTH;break;default:a=Blockly.BlockSvg.INPUT_SHAPE_SQUARE,
e=Blockly.BlockSvg.INPUT_SHAPE_SQUARE_WIDTH}b=this.RTL?-b-e:b;c-=Blockly.BlockSvg.INPUT_SHAPE_HEIGHT/2;d.setAttribute("d",a);d.setAttribute("transform","translate("+b+","+c+")");d.setAttribute("style","visibility: visible")}}};
2*Blockly.BlockSvg.CORNER_RADIUS),a.push(Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER),l.statementNotchAtBottom&&(a.push("h ",Blockly.BlockSvg.STATEMENT_INPUT_INNER_SPACE),a.push(Blockly.BlockSvg.NOTCH_PATH_LEFT)),a.push("H",c.rightEdge-Blockly.BlockSvg.CORNER_RADIUS),g=b.x+(this.RTL?-e:e),h=b.y+f,n.connection.moveTo(g,h),n.connection.isConnected()&&(n.connection.tighten_(),this.width=Math.max(this.width,c.statementEdge+n.connection.targetBlock().getHeightWidth().width)),k==c.length-1||c[k+1].type==
Blockly.NEXT_STATEMENT)&&(a.push(Blockly.BlockSvg.TOP_RIGHT_CORNER),a.push("v",Blockly.BlockSvg.EXTRA_STATEMENT_ROW_Y-2*Blockly.BlockSvg.CORNER_RADIUS),f+=Blockly.BlockSvg.EXTRA_STATEMENT_ROW_Y);f+=l.height}this.edgeShape_&&(this.edgeShape_===Blockly.OUTPUT_SHAPE_ROUND?a.push("a "+this.edgeShapeWidth_+" "+this.edgeShapeWidth_+" 0 0 1 0 "+2*this.edgeShapeWidth_):this.edgeShape_===Blockly.OUTPUT_SHAPE_HEXAGONAL&&a.push("l "+this.edgeShapeWidth_+" "+this.edgeShapeWidth_+" l "+-this.edgeShapeWidth_+" "+
this.edgeShapeWidth_));c.length||(f=Blockly.BlockSvg.MIN_BLOCK_Y,a.push("V",f));return f};
Blockly.BlockSvg.prototype.renderInputShape_=function(a,b,c){var d=this.inputShapes_[a.name];if(d){var e;if(a.connection.targetConnection)d.setAttribute("style","visibility: hidden");else{var f;switch(a.connection.getOutputShape()){case Blockly.OUTPUT_SHAPE_HEXAGONAL:a=Blockly.BlockSvg.INPUT_SHAPE_HEXAGONAL;e=Blockly.BlockSvg.INPUT_SHAPE_HEXAGONAL_WIDTH;f="boolean";break;case Blockly.OUTPUT_SHAPE_ROUND:a=Blockly.BlockSvg.INPUT_SHAPE_ROUND;e=Blockly.BlockSvg.INPUT_SHAPE_ROUND_WIDTH;f="round";break;
default:a=Blockly.BlockSvg.INPUT_SHAPE_SQUARE,e=Blockly.BlockSvg.INPUT_SHAPE_SQUARE_WIDTH,f="square"}b=this.RTL?-b-e:b;c-=Blockly.BlockSvg.INPUT_SHAPE_HEIGHT/2;d.setAttribute("d",a);d.setAttribute("transform","translate("+b+","+c+")");d.setAttribute("data-argument-type",f);d.setAttribute("style","visibility: visible")}}};
Blockly.BlockSvg.prototype.renderDrawBottom_=function(a,b,c){this.height=c;this.edgeShape_||a.push(Blockly.BlockSvg.BOTTOM_RIGHT_CORNER);this.nextConnection&&(a.push("H",Blockly.BlockSvg.NOTCH_WIDTH+Blockly.BlockSvg.NOTCH_START_PADDING+Blockly.BlockSvg.CORNER_RADIUS," "),a.push(Blockly.BlockSvg.NOTCH_PATH_RIGHT),this.nextConnection.moveTo(this.RTL?b.x-Blockly.BlockSvg.NOTCH_WIDTH:b.x+Blockly.BlockSvg.NOTCH_WIDTH,b.y+c),this.nextConnection.isConnected()&&this.nextConnection.tighten_(),this.height+=
Blockly.BlockSvg.NOTCH_HEIGHT);this.edgeShape_?a.push("H",this.edgeShapeWidth_):(a.push("H",Blockly.BlockSvg.CORNER_RADIUS),a.push(Blockly.BlockSvg.BOTTOM_LEFT_CORNER))};
Blockly.BlockSvg.prototype.renderDrawLeft_=function(a,b){this.outputConnection&&this.outputConnection.moveTo(b.x,b.y+this.height/2);this.edgeShape_&&(this.edgeShape_===Blockly.OUTPUT_SHAPE_ROUND?a.push("a "+this.edgeShapeWidth_+" "+this.edgeShapeWidth_+" 0 0 1 0 -"+2*this.edgeShapeWidth_):this.edgeShape_===Blockly.OUTPUT_SHAPE_HEXAGONAL&&a.push("l "+-this.edgeShapeWidth_+" "+-this.edgeShapeWidth_+" l "+this.edgeShapeWidth_+" "+-this.edgeShapeWidth_));a.push("z")};
@ -1340,7 +1345,7 @@ Blockly.genUid=function(){for(var a=Blockly.genUid.soup_.length,b=[],c=0;20>c;c+
Blockly.utils.wrap_line_=function(a,b){if(a.length<=b)return a;for(var c=a.trim().split(/\s+/),d=0;d<c.length;d++)c[d].length>b&&(b=c[d].length);var e,d=-Infinity,f,g=1;do{e=d;f=a;for(var h=[],k=c.length/g,l=1,d=0;d<c.length-1;d++)l<(d+1.5)/k?(l++,h[d]=!0):h[d]=!1;h=Blockly.utils.wrapMutate_(c,h,b);d=Blockly.utils.wrapScore_(c,h,b);a=Blockly.utils.wrapToText_(c,h);g++}while(d>e);return f};
Blockly.utils.wrapScore_=function(a,b,c){for(var d=[0],e=[],f=0;f<a.length;f++)d[d.length-1]+=a[f].length,!0===b[f]?(d.push(0),e.push(a[f].charAt(a[f].length-1))):!1===b[f]&&d[d.length-1]++;a=Math.max.apply(Math,d);for(f=b=0;f<d.length;f++)b-=2*Math.pow(Math.abs(c-d[f]),1.5),b-=Math.pow(a-d[f],1.5),-1!=".?!".indexOf(e[f])?b+=c/3:-1!=",;)]}".indexOf(e[f])&&(b+=c/4);1<d.length&&d[d.length-1]<=d[d.length-2]&&(b+=.5);return b};
Blockly.utils.wrapMutate_=function(a,b,c){for(var d=Blockly.utils.wrapScore_(a,b,c),e,f=0;f<b.length-1;f++)if(b[f]!=b[f+1]){var g=[].concat(b);g[f]=!g[f];g[f+1]=!g[f+1];var h=Blockly.utils.wrapScore_(a,g,c);h>d&&(d=h,e=g)}return e?Blockly.utils.wrapMutate_(a,e,c):b};Blockly.utils.wrapToText_=function(a,b){for(var c=[],d=0;d<a.length;d++)c.push(a[d]),void 0!==b[d]&&c.push(b[d]?"\n":" ");return c.join("")};
Blockly.measureText=function(a,b,c,d){var e=document.createElement("canvas").getContext("2d");e.font=c+" "+a+" "+b;return e.measureText(d).width};Blockly.encodeEntities=function(a){return a.replace(/[\u00A0-\u9999<>\&]/gim,function(a){return"&#"+a.charCodeAt(0)+";"})};Blockly.FieldTextInput=function(a,b,c){Blockly.FieldTextInput.superClass_.constructor.call(this,a,b);this.setRestrictor(c)};goog.inherits(Blockly.FieldTextInput,Blockly.Field);Blockly.FieldTextInput.ANIMATION_TIME=.25;Blockly.FieldTextInput.TEXT_MEASURE_PADDING_MAGIC=45;Blockly.FieldTextInput.prototype.CURSOR="text";Blockly.FieldTextInput.prototype.spellcheck_=!0;
Blockly.measureText=function(a,b,c,d){var e=document.createElement("canvas").getContext("2d");e.font=c+" "+a+" "+b;return e.measureText(d).width};Blockly.encodeEntities=function(a){return a.replace(/[\u00A0-\u9999<>\&]/gim,function(a){return"&#"+a.charCodeAt(0)+";"})};Blockly.FieldTextInput=function(a,b,c){Blockly.FieldTextInput.superClass_.constructor.call(this,a,b);this.setRestrictor(c);this.setArgType("text")};goog.inherits(Blockly.FieldTextInput,Blockly.Field);Blockly.FieldTextInput.ANIMATION_TIME=.25;Blockly.FieldTextInput.TEXT_MEASURE_PADDING_MAGIC=45;Blockly.FieldTextInput.prototype.CURSOR="text";Blockly.FieldTextInput.prototype.spellcheck_=!0;
Blockly.FieldTextInput.prototype.init=function(){Blockly.FieldTextInput.superClass_.init.call(this);this.sourceBlock_.isShadow()||(this.box_=Blockly.createSvgElement("rect",{rx:Blockly.BlockSvg.CORNER_RADIUS,ry:Blockly.BlockSvg.CORNER_RADIUS,x:0,y:0,width:this.size_.width,height:this.size_.height,fill:Blockly.Colours.textField,stroke:this.sourceBlock_.getColourTertiary()}),this.fieldGroup_.insertBefore(this.box_,this.textElement_))};
Blockly.FieldTextInput.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldTextInput.superClass_.dispose.call(this)};Blockly.FieldTextInput.prototype.setValue=function(a){if(null!==a){if(this.sourceBlock_){var b=this.callValidator(a);null!==b&&(a=b)}Blockly.Field.prototype.setValue.call(this,a)}};Blockly.FieldTextInput.prototype.setSpellcheck=function(a){this.spellcheck_=a};Blockly.FieldTextInput.prototype.setRestrictor=function(a){this.restrictor_=a};
Blockly.FieldTextInput.prototype.showEditor_=function(a,b){this.workspace_=this.sourceBlock_.workspace;var c=a||!1,d=b||!1;Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,this.widgetDispose_(),this.widgetDisposeAnimationFinished_(),Blockly.FieldTextInput.ANIMATION_TIME);var e=Blockly.WidgetDiv.DIV;e.className+=" fieldTextInput";var f=goog.dom.createDom("INPUT","blocklyHtmlInput");f.setAttribute("spellcheck",this.spellcheck_);d&&f.setAttribute("readonly","true");Blockly.FieldTextInput.htmlInput_=
@ -1356,48 +1361,50 @@ d.x-=a/2;d.y-=a/2;this.sourceBlock_.RTL&&(d.x+=c,d.x-=b.offsetWidth*a);d.y+=1*a;
Blockly.FieldTextInput.prototype.widgetDispose_=function(){var a=this;return function(){var b=Blockly.WidgetDiv.DIV,c=Blockly.FieldTextInput.htmlInput_,d=c.value;if(a.sourceBlock_)if(d=a.callValidator(d),null===d)d=c.defaultValue;else if(a.onFinishEditing_)a.onFinishEditing_(d);a.setValue(d);a.sourceBlock_.rendered&&a.sourceBlock_.render();Blockly.unbindEvent_(c.onKeyDownWrapper_);Blockly.unbindEvent_(c.onKeyUpWrapper_);Blockly.unbindEvent_(c.onKeyPressWrapper_);Blockly.unbindEvent_(c.onInputWrapper_);
a.workspace_.removeChangeListener(c.onWorkspaceChangeWrapper_);c.style.fontSize=Blockly.BlockSvg.FIELD_TEXTINPUT_FONTSIZE_INITIAL+"pt";b.style.boxShadow="";a.sourceBlock_&&(c=a.sourceBlock_.getHeightWidth(),b.style.width=c.width+1+"px",b.style.height=c.height+1+"px");b.style.marginLeft=0}};
Blockly.FieldTextInput.prototype.widgetDisposeAnimationFinished_=function(){return function(){var a=Blockly.WidgetDiv.DIV.style;a.width="auto";a.height="auto";a.fontSize="";Blockly.WidgetDiv.DIV.className="blocklyWidgetDiv";Blockly.WidgetDiv.DIV.removeAttribute("style");Blockly.FieldTextInput.htmlInput_.style.transition="";Blockly.FieldTextInput.htmlInput_=null}};
Blockly.FieldTextInput.numberValidator=function(a){console.warn("Blockly.FieldTextInput.numberValidator is deprecated. Use Blockly.FieldNumber instead.");if(null===a)return null;a=String(a);a=a.replace(/O/ig,"0");a=a.replace(/,/g,"");a=parseFloat(a||0);return isNaN(a)?null:String(a)};Blockly.FieldTextInput.nonnegativeIntegerValidator=function(a){(a=Blockly.FieldTextInput.numberValidator(a))&&(a=String(Math.max(0,Math.floor(a))));return a};Blockly.FieldAngle=function(a,b){this.symbol_=Blockly.createSvgElement("tspan",{},null);this.symbol_.appendChild(document.createTextNode("\u00b0"));Blockly.FieldAngle.superClass_.constructor.call(this,a,b)};goog.inherits(Blockly.FieldAngle,Blockly.FieldTextInput);Blockly.FieldAngle.ROUND=15;Blockly.FieldAngle.HALF=50;Blockly.FieldAngle.CLOCKWISE=!0;Blockly.FieldAngle.OFFSET=90;Blockly.FieldAngle.WRAP=180;Blockly.FieldAngle.RADIUS=Blockly.FieldAngle.HALF-1;
Blockly.FieldTextInput.numberValidator=function(a){console.warn("Blockly.FieldTextInput.numberValidator is deprecated. Use Blockly.FieldNumber instead.");if(null===a)return null;a=String(a);a=a.replace(/O/ig,"0");a=a.replace(/,/g,"");a=parseFloat(a||0);return isNaN(a)?null:String(a)};Blockly.FieldTextInput.nonnegativeIntegerValidator=function(a){(a=Blockly.FieldTextInput.numberValidator(a))&&(a=String(Math.max(0,Math.floor(a))));return a};Blockly.FieldAngle=function(a,b){this.symbol_=Blockly.createSvgElement("tspan",{},null);this.symbol_.appendChild(document.createTextNode("\u00b0"));Blockly.FieldAngle.superClass_.constructor.call(this,a,b);this.setArgType("angle")};goog.inherits(Blockly.FieldAngle,Blockly.FieldTextInput);Blockly.FieldAngle.ROUND=15;Blockly.FieldAngle.HALF=50;Blockly.FieldAngle.CLOCKWISE=!0;Blockly.FieldAngle.OFFSET=90;Blockly.FieldAngle.WRAP=180;Blockly.FieldAngle.RADIUS=Blockly.FieldAngle.HALF-1;
Blockly.FieldAngle.prototype.dispose_=function(){var a=this;return function(){Blockly.FieldAngle.superClass_.dispose_.call(a)();a.gauge_=null;a.clickWrapper_&&Blockly.unbindEvent_(a.clickWrapper_);a.moveWrapper1_&&Blockly.unbindEvent_(a.moveWrapper1_);a.moveWrapper2_&&Blockly.unbindEvent_(a.moveWrapper2_)}};
Blockly.FieldAngle.prototype.showEditor_=function(){Blockly.FieldAngle.superClass_.showEditor_.call(this,goog.userAgent.MOBILE||goog.userAgent.ANDROID||goog.userAgent.IPAD);Blockly.DropDownDiv.hideWithoutAnimation();Blockly.DropDownDiv.clearContent();var a=Blockly.DropDownDiv.getContentDiv(),a=Blockly.createSvgElement("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1",height:2*Blockly.FieldAngle.HALF+"px",
width:2*Blockly.FieldAngle.HALF+"px"},a),b=Blockly.createSvgElement("circle",{cx:Blockly.FieldAngle.HALF,cy:Blockly.FieldAngle.HALF,r:Blockly.FieldAngle.RADIUS,"class":"blocklyAngleCircle"},a);this.gauge_=Blockly.createSvgElement("path",{"class":"blocklyAngleGauge"},a);this.line_=Blockly.createSvgElement("line",{x1:Blockly.FieldAngle.HALF,y1:Blockly.FieldAngle.HALF,"class":"blocklyAngleLine"},a);for(var c=0;360>c;c+=15)Blockly.createSvgElement("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);Blockly.DropDownDiv.setColour(this.sourceBlock_.parentBlock_.getColour(),this.sourceBlock_.getColourTertiary());Blockly.DropDownDiv.showPositionedByBlock(this,this.sourceBlock_);this.clickWrapper_=Blockly.bindEvent_(a,"click",this,function(){Blockly.WidgetDiv.hide();
Blockly.DropDownDiv.hide()});this.moveWrapper1_=Blockly.bindEvent_(b,"mousemove",this,this.onMouseMove);this.moveWrapper2_=Blockly.bindEvent_(this.gauge_,"mousemove",this,this.onMouseMove);this.updateGraph_()};
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);Blockly.DropDownDiv.setColour(this.sourceBlock_.parentBlock_.getColour(),this.sourceBlock_.getColourTertiary());Blockly.DropDownDiv.setCategory(this.sourceBlock_.parentBlock_.getCategory());Blockly.DropDownDiv.showPositionedByBlock(this,this.sourceBlock_);this.clickWrapper_=
Blockly.bindEvent_(a,"click",this,function(){Blockly.WidgetDiv.hide();Blockly.DropDownDiv.hide()});this.moveWrapper1_=Blockly.bindEvent_(b,"mousemove",this,this.onMouseMove);this.moveWrapper2_=Blockly.bindEvent_(this.gauge_,"mousemove",this,this.onMouseMove);this.updateGraph_()};
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=goog.math.toDegrees(b),0>c?b+=180:0<a&&(b+=360),b=Blockly.FieldAngle.CLOCKWISE?Blockly.FieldAngle.OFFSET+360-b:b-Blockly.FieldAngle.OFFSET,Blockly.FieldAngle.ROUND&&(b=Math.round(b/Blockly.FieldAngle.ROUND)*Blockly.FieldAngle.ROUND),b=this.callValidator(b),Blockly.FieldTextInput.htmlInput_.value=
b,this.setValue(b),this.validate_(),this.resizeEditor_())};Blockly.FieldAngle.prototype.setText=function(a){Blockly.FieldAngle.superClass_.setText.call(this,a);this.textElement_&&(this.updateGraph_(),this.sourceBlock_.RTL?this.textElement_.insertBefore(this.symbol_,this.textElement_.firstChild):this.textElement_.appendChild(this.symbol_),this.size_.width=0)};
Blockly.FieldAngle.prototype.updateGraph_=function(){if(this.gauge_){var a=Number(this.getText())+Blockly.FieldAngle.OFFSET,b=goog.math.toRadians(a),a=["M ",Blockly.FieldAngle.HALF,",",Blockly.FieldAngle.HALF],c=Blockly.FieldAngle.HALF,d=Blockly.FieldAngle.HALF;if(!isNaN(b)){var e=goog.math.toRadians(Blockly.FieldAngle.OFFSET),f=Math.cos(e)*Blockly.FieldAngle.RADIUS,g=Math.sin(e)*-Blockly.FieldAngle.RADIUS;Blockly.FieldAngle.CLOCKWISE&&(b=2*e-b);c+=Math.cos(b)*Blockly.FieldAngle.RADIUS;d-=Math.sin(b)*
Blockly.FieldAngle.RADIUS;b=Math.abs(Math.floor((b-e)/Math.PI)%2);Blockly.FieldAngle.CLOCKWISE&&(b=1-b);a.push(" l ",f,",",g," A ",Blockly.FieldAngle.RADIUS,",",Blockly.FieldAngle.RADIUS," 0 ",b," ",Number(Blockly.FieldAngle.CLOCKWISE)," ",c,",",d," z")}this.gauge_.setAttribute("d",a.join(""));this.line_.setAttribute("x2",c);this.line_.setAttribute("y2",d)}};
Blockly.FieldAngle.prototype.classValidator=function(a){if(null===a)return null;a=parseFloat(a||0);if(isNaN(a))return null;a%=360;0>a&&(a+=360);a>Blockly.FieldAngle.WRAP&&(a-=360);return String(a)};Blockly.FieldCheckbox=function(a,b){Blockly.FieldCheckbox.superClass_.constructor.call(this,"",b);this.setValue(a)};goog.inherits(Blockly.FieldCheckbox,Blockly.Field);Blockly.FieldCheckbox.CHECK_CHAR="\u2713";Blockly.FieldCheckbox.prototype.CURSOR="default";
Blockly.FieldAngle.prototype.classValidator=function(a){if(null===a)return null;a=parseFloat(a||0);if(isNaN(a))return null;a%=360;0>a&&(a+=360);a>Blockly.FieldAngle.WRAP&&(a-=360);return String(a)};Blockly.FieldCheckbox=function(a,b){Blockly.FieldCheckbox.superClass_.constructor.call(this,"",b);this.setValue(a);this.setArgType("checkbox")};goog.inherits(Blockly.FieldCheckbox,Blockly.Field);Blockly.FieldCheckbox.CHECK_CHAR="\u2713";Blockly.FieldCheckbox.prototype.CURSOR="default";
Blockly.FieldCheckbox.prototype.init=function(){if(!this.fieldGroup_){Blockly.FieldCheckbox.superClass_.init.call(this);this.checkElement_=Blockly.createSvgElement("text",{"class":"blocklyText blocklyCheckbox",x:-3,y:14},this.fieldGroup_);var a=document.createTextNode(Blockly.FieldCheckbox.CHECK_CHAR);this.checkElement_.appendChild(a);this.checkElement_.style.display=this.state_?"block":"none"}};Blockly.FieldCheckbox.prototype.getValue=function(){return String(this.state_).toUpperCase()};
Blockly.FieldCheckbox.prototype.setValue=function(a){a="TRUE"==a;this.state_!==a&&(this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.state_,a)),this.state_=a,this.checkElement_&&(this.checkElement_.style.display=a?"block":"none"))};Blockly.FieldCheckbox.prototype.showEditor_=function(){var a=!this.state_;this.sourceBlock_&&(a=this.callValidator(a));null!==a&&this.setValue(String(a).toUpperCase())};Blockly.FieldColour=function(a,b){Blockly.FieldColour.superClass_.constructor.call(this,a,b)};goog.inherits(Blockly.FieldColour,Blockly.Field);Blockly.FieldColour.prototype.colours_=null;Blockly.FieldColour.prototype.columns_=0;Blockly.FieldColour.prototype.init=function(a){Blockly.FieldColour.superClass_.init.call(this,a);this.setValue(this.getValue())};Blockly.FieldColour.prototype.CURSOR="default";Blockly.FieldColour.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldColour.superClass_.dispose.call(this)};
Blockly.FieldColour.prototype.getValue=function(){return this.colour_};Blockly.FieldColour.prototype.setValue=function(a){this.sourceBlock_&&Blockly.Events.isEnabled()&&this.colour_!=a&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.colour_,a));this.colour_=a;this.sourceBlock_&&this.sourceBlock_.setColour(a,this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourTertiary())};
Blockly.FieldColour.prototype.getText=function(){var a=this.colour_,b=a.match(/^#(.)\1(.)\2(.)\3$/);b&&(a="#"+b[1]+b[2]+b[3]);return a};Blockly.FieldColour.prototype.getSize=function(){return new goog.math.Size(Blockly.BlockSvg.FIELD_WIDTH,Blockly.BlockSvg.FIELD_HEIGHT)};Blockly.FieldColour.COLOURS=goog.ui.ColorPicker.SIMPLE_GRID_COLORS;Blockly.FieldColour.COLUMNS=7;Blockly.FieldColour.prototype.setColours=function(a){this.colours_=a;return this};
Blockly.FieldColour.prototype.setColumns=function(a){this.columns_=a;return this};
Blockly.FieldCheckbox.prototype.setValue=function(a){a="TRUE"==a;this.state_!==a&&(this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.state_,a)),this.state_=a,this.checkElement_&&(this.checkElement_.style.display=a?"block":"none"))};Blockly.FieldCheckbox.prototype.showEditor_=function(){var a=!this.state_;this.sourceBlock_&&(a=this.callValidator(a));null!==a&&this.setValue(String(a).toUpperCase())};Blockly.FieldColour=function(a,b){Blockly.FieldColour.superClass_.constructor.call(this,a,b);this.setArgType("colour")};goog.inherits(Blockly.FieldColour,Blockly.Field);Blockly.FieldColour.prototype.colours_=null;Blockly.FieldColour.prototype.columns_=0;Blockly.FieldColour.prototype.init=function(a){Blockly.FieldColour.superClass_.init.call(this,a);this.setValue(this.getValue())};Blockly.FieldColour.prototype.CURSOR="default";
Blockly.FieldColour.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldColour.superClass_.dispose.call(this)};Blockly.FieldColour.prototype.getValue=function(){return this.colour_};
Blockly.FieldColour.prototype.setValue=function(a){this.sourceBlock_&&Blockly.Events.isEnabled()&&this.colour_!=a&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.colour_,a));this.colour_=a;this.sourceBlock_&&this.sourceBlock_.setColour(a,this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourTertiary())};Blockly.FieldColour.prototype.getText=function(){var a=this.colour_,b=a.match(/^#(.)\1(.)\2(.)\3$/);b&&(a="#"+b[1]+b[2]+b[3]);return a};
Blockly.FieldColour.prototype.getSize=function(){return new goog.math.Size(Blockly.BlockSvg.FIELD_WIDTH,Blockly.BlockSvg.FIELD_HEIGHT)};Blockly.FieldColour.COLOURS=goog.ui.ColorPicker.SIMPLE_GRID_COLORS;Blockly.FieldColour.COLUMNS=7;Blockly.FieldColour.prototype.setColours=function(a){this.colours_=a;return this};Blockly.FieldColour.prototype.setColumns=function(a){this.columns_=a;return this};
Blockly.FieldColour.prototype.showEditor_=function(){Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,Blockly.FieldColour.widgetDispose_);var a=new goog.ui.ColorPicker;a.setSize(this.columns_||Blockly.FieldColour.COLUMNS);a.setColors(this.colours_||Blockly.FieldColour.COLOURS);var b=goog.dom.getViewportSize(),c=goog.style.getViewportPageOffset(document),d=this.getAbsoluteXY_(),e=this.getScaledBBox_();a.render(Blockly.WidgetDiv.DIV);a.setSelectedColor(this.getValue());var f=goog.style.getSize(a.getElement());
d.y=d.y+f.height+e.height>=b.height+c.y?d.y-(f.height-1):d.y+(e.height-1);this.sourceBlock_.RTL?(d.x+=e.width,d.x-=f.width,d.x<c.x&&(d.x=c.x)):d.x>b.width+c.x-f.width&&(d.x=b.width+c.x-f.width);Blockly.WidgetDiv.position(d.x,d.y,b,c,this.sourceBlock_.RTL);var g=this;Blockly.FieldColour.changeEventKey_=goog.events.listen(a,goog.ui.ColorPicker.EventType.CHANGE,function(a){a=a.target.getSelectedColor()||"#000000";Blockly.WidgetDiv.hide();g.sourceBlock_&&(a=g.callValidator(a));null!==a&&g.setValue(a)})};
Blockly.FieldColour.widgetDispose_=function(){Blockly.FieldColour.changeEventKey_&&goog.events.unlistenByKey(Blockly.FieldColour.changeEventKey_)};Blockly.FieldDropdown=function(a,b){this.menuGenerator_=a;this.trimOptions_();var c=this.getOptions_()[0];Blockly.FieldDropdown.superClass_.constructor.call(this,c[1],b)};goog.inherits(Blockly.FieldDropdown,Blockly.Field);Blockly.FieldDropdown.CHECKMARK_OVERHANG=25;Blockly.FieldDropdown.ARROW_CHAR=goog.userAgent.ANDROID?"\u25bc":"\u25be";Blockly.FieldDropdown.prototype.CURSOR="default";
Blockly.FieldColour.widgetDispose_=function(){Blockly.FieldColour.changeEventKey_&&goog.events.unlistenByKey(Blockly.FieldColour.changeEventKey_)};Blockly.FieldDropdown=function(a,b){this.menuGenerator_=a;this.trimOptions_();var c=this.getOptions_()[0];Blockly.FieldDropdown.superClass_.constructor.call(this,c[1],b);this.setArgType("dropdown")};goog.inherits(Blockly.FieldDropdown,Blockly.Field);Blockly.FieldDropdown.CHECKMARK_OVERHANG=25;Blockly.FieldDropdown.ARROW_CHAR=goog.userAgent.ANDROID?"\u25bc":"\u25be";Blockly.FieldDropdown.prototype.CURSOR="default";Blockly.FieldDropdown.prototype.selectedItem=null;
Blockly.FieldDropdown.prototype.init=function(){if(!this.fieldGroup_){this.arrow_=Blockly.createSvgElement("tspan",{},null);this.arrow_.appendChild(document.createTextNode(this.sourceBlock_.RTL?Blockly.FieldDropdown.ARROW_CHAR+" ":" "+Blockly.FieldDropdown.ARROW_CHAR));Blockly.FieldDropdown.superClass_.init.call(this);this.sourceBlock_.isShadow()||(this.box_=Blockly.createSvgElement("rect",{rx:Blockly.BlockSvg.CORNER_RADIUS,ry:Blockly.BlockSvg.CORNER_RADIUS,x:0,y:0,width:this.size_.width,height:this.size_.height,
stroke:this.sourceBlock_.getColourTertiary()},this.fieldGroup_));var a=this.text_;this.text_=null;this.setText(a)}};
Blockly.FieldDropdown.prototype.showEditor_=function(){Blockly.DropDownDiv.hideWithoutAnimation();Blockly.DropDownDiv.clearContent();var a=Blockly.DropDownDiv.getContentDiv(),b=this,c=new goog.ui.Menu;c.setRightToLeft(this.sourceBlock_.RTL);for(var d=this.getOptions_(),e=0;e<d.length;e++){var f=d[e][1],g=new goog.ui.MenuItem(d[e][0]);g.setRightToLeft(this.sourceBlock_.RTL);g.setValue(f);g.setCheckable(!0);c.addChild(g,!0);g.setChecked(f==this.value_)}goog.events.listen(c,goog.ui.Component.EventType.ACTION,
function(a){if(a=a.target)a=a.getValue(),b.sourceBlock_&&(a=b.callValidator(a)),null!==a&&b.setValue(a);Blockly.DropDownDiv.hide()});c.getHandler().listen(c.getElement(),goog.events.EventType.TOUCHSTART,function(a){this.getOwnerControl(a.target).handleMouseDown(a)});c.getHandler().listen(c.getElement(),goog.events.EventType.TOUCHEND,function(a){this.getOwnerControl(a.target).performActionInternal(a)});c.render(a);a=c.getElement();Blockly.addClass_(a,"blocklyDropdownMenu");goog.style.getSize(a).height=
a.scrollHeight;d=this.sourceBlock_.isShadow()?this.sourceBlock_.parentBlock_.getColour():this.sourceBlock_.getColour();Blockly.DropDownDiv.setColour(d,this.sourceBlock_.getColourTertiary());Blockly.DropDownDiv.showPositionedByBlock(this,this.sourceBlock_);c.setAllowAutoFocus(!0);a.focus()};
Blockly.FieldDropdown.prototype.showEditor_=function(){Blockly.DropDownDiv.hideWithoutAnimation();Blockly.DropDownDiv.clearContent();var a=Blockly.DropDownDiv.getContentDiv(),b=this,c=new goog.ui.Menu;c.setRightToLeft(this.sourceBlock_.RTL);for(var d=this.getOptions_(),e=0;e<d.length;e++){var f=d[e][1],g=new goog.ui.MenuItem(d[e][0]);g.setRightToLeft(this.sourceBlock_.RTL);g.setValue(f);g.setCheckable(!0);c.addChild(g,!0);f=f==this.value_;g.setChecked(f);f&&(this.selectedItem=g)}goog.events.listen(c,
goog.ui.Component.EventType.ACTION,function(a){if(a=a.target)a=a.getValue(),b.sourceBlock_&&(a=b.callValidator(a)),null!==a&&b.setValue(a);Blockly.DropDownDiv.hide()});c.getHandler().listen(c.getElement(),goog.events.EventType.TOUCHSTART,function(a){this.getOwnerControl(a.target).handleMouseDown(a)});c.getHandler().listen(c.getElement(),goog.events.EventType.TOUCHEND,function(a){this.getOwnerControl(a.target).performActionInternal(a)});c.render(a);a=c.getElement();Blockly.addClass_(a,"blocklyDropdownMenu");
goog.style.getSize(a).height=a.scrollHeight;d=this.sourceBlock_.isShadow()?this.sourceBlock_.parentBlock_.getColour():this.sourceBlock_.getColour();Blockly.DropDownDiv.setColour(d,this.sourceBlock_.getColourTertiary());d=this.sourceBlock_.isShadow()?this.sourceBlock_.parentBlock_.getCategory():this.sourceBlock_.getCategory();Blockly.DropDownDiv.setCategory(d);e=this.sourceBlock_.workspace.scale;g=this.size_.width;d=this.size_.height;g*=e;d*=e;e=goog.style.getPageOffset(this.fieldGroup_);g=e.x+g/2;
d=e.y+d;e=e.y;Blockly.DropDownDiv.setBoundsElement(this.sourceBlock_.workspace.getParentSvg().parentNode);Blockly.DropDownDiv.show(this,g,d,g,e);c.setAllowAutoFocus(!0);a.focus()};
Blockly.FieldDropdown.prototype.trimOptions_=function(){this.suffixField=this.prefixField=null;var a=this.menuGenerator_;if(goog.isArray(a)&&!(2>a.length)){var b=a.map(function(a){return a[0]}),c=Blockly.shortestStringLength(b),d=Blockly.commonWordPrefix(b,c),e=Blockly.commonWordSuffix(b,c);if((d||e)&&!(c<=d+e)){d&&(this.prefixField=b[0].substring(0,d-1));e&&(this.suffixField=b[0].substr(1-e));b=[];for(c=0;c<a.length;c++){var f=a[c][0],g=a[c][1],f=f.substring(d,f.length-e);b[c]=[f,g]}this.menuGenerator_=
b}}};Blockly.FieldDropdown.prototype.getOptions_=function(){return goog.isFunction(this.menuGenerator_)?this.menuGenerator_.call(this):this.menuGenerator_};Blockly.FieldDropdown.prototype.getValue=function(){return this.value_};
Blockly.FieldDropdown.prototype.setValue=function(a){if(null!==a&&a!==this.value_){this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,a));this.value_=a;for(var b=this.getOptions_(),c=0;c<b.length;c++)if(b[c][1]==a){this.setText(b[c][0]);return}this.setText(a)}};
Blockly.FieldDropdown.prototype.setValue=function(a){if(null!==a&&a!==this.value_){this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,a));this.selectedItem&&(this.selectedItem.setChecked(!1),this.selectedItem=null);this.value_=a;for(var b=this.getOptions_(),c=0;c<b.length;c++)if(b[c][1]==a){this.setText(b[c][0]);return}this.setText(a)}};
Blockly.FieldDropdown.prototype.setText=function(a){null!==a&&a!==this.text_&&(this.text_=a,this.updateTextNode_(),this.textElement_&&(this.textElement_.setAttribute("class",this.textElement_.getAttribute("class")+" blocklyDropdownText"),this.sourceBlock_.RTL?this.textElement_.insertBefore(this.arrow_,this.textElement_.firstChild):this.textElement_.appendChild(this.arrow_)),this.sourceBlock_&&this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_()))};
Blockly.FieldDropdown.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldDropdown.superClass_.dispose.call(this)};Blockly.FieldIconMenu=function(a){this.icons_=a;Blockly.FieldIconMenu.superClass_.constructor.call(this,a[0].value)};goog.inherits(Blockly.FieldIconMenu,Blockly.Field);Blockly.FieldIconMenu.DROPDOWN_WIDTH=168;Blockly.FieldIconMenu.savedPrimary_=null;
Blockly.FieldDropdown.prototype.dispose=function(){this.selectedItem=null;Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldDropdown.superClass_.dispose.call(this)};Blockly.FieldIconMenu=function(a){this.icons_=a;Blockly.FieldIconMenu.superClass_.constructor.call(this,a[0].value);this.setArgType("iconmenu")};goog.inherits(Blockly.FieldIconMenu,Blockly.Field);Blockly.FieldIconMenu.DROPDOWN_WIDTH=168;Blockly.FieldIconMenu.savedPrimary_=null;
Blockly.FieldIconMenu.prototype.init=function(a){this.arrowX_=18;this.arrowY_=10;a.RTL&&(this.arrowX_=-this.arrowX_-12);this.arrowIcon_=Blockly.createSvgElement("image",{height:"12px",width:"12px",transform:"translate("+this.arrowX_+","+this.arrowY_+")"});this.arrowIcon_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",Blockly.mainWorkspace.options.pathToMedia+"dropdown-arrow.svg");a.getSvgRoot().appendChild(this.arrowIcon_);Blockly.FieldIconMenu.superClass_.init.call(this,a)};
Blockly.FieldIconMenu.prototype.CURSOR="default";Blockly.FieldIconMenu.prototype.setValue=function(a){null!==a&&a!==this.value_&&(this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,a)),this.value_=a,this.setParentFieldImage(this.getSrcForValue(this.value_)))};
Blockly.FieldIconMenu.prototype.setParentFieldImage=function(a){if(this.sourceBlock_&&this.sourceBlock_.parentBlock_)for(var b=this.sourceBlock_.parentBlock_,c=0,d;d=b.inputList[c];c++)for(var e=0,f;f=d.fieldRow[e];e++)if(f instanceof Blockly.FieldImage){f.setValue(a);return}};Blockly.FieldIconMenu.prototype.getValue=function(){return this.value_};Blockly.FieldIconMenu.prototype.getSrcForValue=function(a){for(var b=0,c;c=this.icons_[b];b++)if(c.value===a)return c.src};
Blockly.FieldIconMenu.prototype.showEditor_=function(){if(!Blockly.DropDownDiv.hideIfOwner(this)){Blockly.DropDownDiv.hideWithoutAnimation();Blockly.DropDownDiv.clearContent();var a=Blockly.DropDownDiv.getContentDiv();a.setAttribute("role","menu");a.setAttribute("aria-haspopup","true");for(var b=0,c;c=this.icons_[b];b++){if("placeholder"==c.type){var d=document.createElement("span");d.setAttribute("class","blocklyDropDownPlaceholder");d.style.width=c.width+"px";d.style.height=c.height+"px"}else{d=
document.createElement("button");d.setAttribute("id",":"+b);d.setAttribute("role","menuitem");d.setAttribute("class","blocklyDropDownButton");d.title=c.alt;d.style.width=c.width+"px";d.style.height=c.height+"px";var e=this.sourceBlock_.getColour();c.value==this.getValue()&&(e=this.sourceBlock_.getColourTertiary(),d.setAttribute("aria-selected","true"));d.style.backgroundColor=e;d.style.borderColor=this.sourceBlock_.getColourTertiary();Blockly.bindEvent_(d,"click",this,this.buttonClick_);Blockly.bindEvent_(d,
"mouseup",this,this.buttonClick_);Blockly.bindEvent_(d,"mousedown",d,function(a){this.setAttribute("class","blocklyDropDownButton blocklyDropDownButtonHover");a.preventDefault()});Blockly.bindEvent_(d,"mouseover",d,function(){this.setAttribute("class","blocklyDropDownButton blocklyDropDownButtonHover");a.setAttribute("aria-activedescendant",this.id)});Blockly.bindEvent_(d,"mouseout",d,function(){this.setAttribute("class","blocklyDropDownButton");a.removeAttribute("aria-activedescendant")});e=document.createElement("img");
e.src=c.src;d.setAttribute("data-value",c.value);e.setAttribute("data-value",c.value);d.appendChild(e)}a.appendChild(d)}a.style.width=Blockly.FieldIconMenu.DROPDOWN_WIDTH+"px";Blockly.DropDownDiv.setColour(this.sourceBlock_.getColour(),this.sourceBlock_.getColourTertiary());this.savedPrimary_=this.sourceBlock_.getColour();this.sourceBlock_.setColour(this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourTertiary());b=this.sourceBlock_.workspace.scale;
b=-(Blockly.BlockSvg.MIN_BLOCK_Y*b)-Blockly.BlockSvg.FIELD_Y_OFFSET*b;Blockly.DropDownDiv.showPositionedByBlock(this,this.sourceBlock_,this.onHide_.bind(this),b)||this.arrowIcon_.setAttribute("transform","translate("+(this.arrowX_+Blockly.DropDownDiv.ARROW_SIZE/1.5+1)+","+(this.arrowY_+Blockly.DropDownDiv.ARROW_SIZE/1.5)+") rotate(180)")}};Blockly.FieldIconMenu.prototype.buttonClick_=function(a){a=a.target.getAttribute("data-value");this.setValue(a);Blockly.DropDownDiv.hide()};
e.src=c.src;d.setAttribute("data-value",c.value);e.setAttribute("data-value",c.value);d.appendChild(e)}a.appendChild(d)}a.style.width=Blockly.FieldIconMenu.DROPDOWN_WIDTH+"px";Blockly.DropDownDiv.setColour(this.sourceBlock_.getColour(),this.sourceBlock_.getColourTertiary());Blockly.DropDownDiv.setCategory(this.sourceBlock_.parentBlock_.getCategory());this.savedPrimary_=this.sourceBlock_.getColour();this.sourceBlock_.setColour(this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourSecondary(),
this.sourceBlock_.getColourTertiary());b=this.sourceBlock_.workspace.scale;b=-(Blockly.BlockSvg.MIN_BLOCK_Y*b)-Blockly.BlockSvg.FIELD_Y_OFFSET*b;Blockly.DropDownDiv.showPositionedByBlock(this,this.sourceBlock_,this.onHide_.bind(this),b)||this.arrowIcon_.setAttribute("transform","translate("+(this.arrowX_+Blockly.DropDownDiv.ARROW_SIZE/1.5+1)+","+(this.arrowY_+Blockly.DropDownDiv.ARROW_SIZE/1.5)+") rotate(180)")}};
Blockly.FieldIconMenu.prototype.buttonClick_=function(a){a=a.target.getAttribute("data-value");this.setValue(a);Blockly.DropDownDiv.hide()};
Blockly.FieldIconMenu.prototype.onHide_=function(){this.sourceBlock_&&this.sourceBlock_.setColour(this.savedPrimary_,this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourTertiary());Blockly.DropDownDiv.content_.removeAttribute("role");Blockly.DropDownDiv.content_.removeAttribute("aria-haspopup");Blockly.DropDownDiv.content_.removeAttribute("aria-activedescendant");this.arrowIcon_.setAttribute("transform","translate("+this.arrowX_+","+this.arrowY_+")")};Blockly.FieldImage=function(a,b,c,d,e){this.sourceBlock_=null;this.height_=Number(c);this.width_=Number(b);this.size_=new goog.math.Size(this.width_,this.height_);this.text_=d||"";this.flipRTL_=e;this.setValue(a)};goog.inherits(Blockly.FieldImage,Blockly.Field);Blockly.FieldImage.prototype.rectElement_=null;Blockly.FieldImage.prototype.EDITABLE=!1;
Blockly.FieldImage.prototype.init=function(){if(!this.fieldGroup_){this.fieldGroup_=Blockly.createSvgElement("g",{},null);this.visible_||(this.fieldGroup_.style.display="none");this.imageElement_=Blockly.createSvgElement("image",{height:this.height_+"px",width:this.width_+"px"},this.fieldGroup_);this.setValue(this.src_);goog.userAgent.GECKO&&(this.rectElement_=Blockly.createSvgElement("rect",{height:this.height_+"px",width:this.width_+"px","fill-opacity":0},this.fieldGroup_));this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_);
var a=this.rectElement_||this.imageElement_;a.tooltip=this.sourceBlock_;Blockly.Tooltip.bindMouseEvents(a)}};Blockly.FieldImage.prototype.dispose=function(){goog.dom.removeNode(this.fieldGroup_);this.rectElement_=this.imageElement_=this.fieldGroup_=null};Blockly.FieldImage.prototype.setTooltip=function(a){(this.rectElement_||this.imageElement_).tooltip=a};Blockly.FieldImage.prototype.getValue=function(){return this.src_};
Blockly.FieldImage.prototype.setValue=function(a){null!==a&&(this.src_=a,this.imageElement_&&this.imageElement_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",goog.isString(a)?a:""))};Blockly.FieldImage.prototype.getFlipRTL=function(){return this.flipRTL_};Blockly.FieldImage.prototype.setText=function(a){null!==a&&(this.text_=a)};Blockly.FieldImage.prototype.render_=function(){};var getNumRestrictor=function(a,b){var c="[\\d]";a&&(c+="|[\\.]");b&&(c+="|[-]");return new RegExp(c)};Blockly.FieldNumber=function(a,b,c,d,e){this.decimalAllowed_="undefined"==typeof d||isNaN(d)||0==d||Math.floor(d)!=d;this.negativeAllowed_="undefined"==typeof b||isNaN(b)||0>b;b=getNumRestrictor(this.decimalAllowed_,this.negativeAllowed_);Blockly.FieldNumber.superClass_.constructor.call(this,a,e,b)};goog.inherits(Blockly.FieldNumber,Blockly.FieldTextInput);Blockly.FieldNumber.DROPDOWN_WIDTH=168;
Blockly.FieldNumber.DROPDOWN_Y_PADDING=8;Blockly.FieldNumber.NUMPAD_BUTTONS="789456123.0".split("");
Blockly.FieldImage.prototype.setValue=function(a){null!==a&&(this.src_=a,this.imageElement_&&this.imageElement_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",goog.isString(a)?a:""))};Blockly.FieldImage.prototype.getFlipRTL=function(){return this.flipRTL_};Blockly.FieldImage.prototype.setText=function(a){null!==a&&(this.text_=a)};Blockly.FieldImage.prototype.render_=function(){};var getNumRestrictor=function(a,b){var c="[\\d]";a&&(c+="|[\\.]");b&&(c+="|[-]");return new RegExp(c)};Blockly.FieldNumber=function(a,b,c,d,e){this.decimalAllowed_="undefined"==typeof d||isNaN(d)||0==d||Math.floor(d)!=d;this.negativeAllowed_="undefined"==typeof b||isNaN(b)||0>b;b=getNumRestrictor(this.decimalAllowed_,this.negativeAllowed_);Blockly.FieldNumber.superClass_.constructor.call(this,a,e,b);this.setArgType("number")};goog.inherits(Blockly.FieldNumber,Blockly.FieldTextInput);
Blockly.FieldNumber.DROPDOWN_WIDTH=168;Blockly.FieldNumber.DROPDOWN_Y_PADDING=8;Blockly.FieldNumber.NUMPAD_BUTTONS="789456123.0".split("");
Blockly.FieldNumber.NUMPAD_DELETE_ICON='data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><path d="M28.89,11.45H16.79a2.86,2.86,0,0,0-2,.84L9.09,18a2.85,2.85,0,0,0,0,4l5.69,5.69a2.86,2.86,0,0,0,2,.84h12.1a2.86,2.86,0,0,0,2.86-2.86V14.31A2.86,2.86,0,0,0,28.89,11.45ZM27.15,22.73a1,1,0,0,1,0,1.41,1,1,0,0,1-.71.3,1,1,0,0,1-.71-0.3L23,21.41l-2.73,2.73a1,1,0,0,1-1.41,0,1,1,0,0,1,0-1.41L21.59,20l-2.73-2.73a1,1,0,0,1,0-1.41,1,1,0,0,1,1.41,0L23,18.59l2.73-2.73a1,1,0,1,1,1.42,1.41L24.42,20Z" fill="'+Blockly.Colours.numPadText+
'"/></svg>';Blockly.FieldNumber.activeField_=null;Blockly.FieldNumber.prototype.setConstraints_=function(a,b,c){this.decimalAllowed_="undefined"==typeof c||isNaN(c)||0==c||Math.floor(c)!=c;this.negativeAllowed_="undefined"==typeof a||isNaN(a)||0>a};Blockly.FieldNumber.prototype.showEditor_=function(){Blockly.FieldNumber.activeField_=this;var a=goog.userAgent.MOBILE||goog.userAgent.ANDROID||goog.userAgent.IPAD;Blockly.FieldNumber.superClass_.showEditor_.call(this,!1,a);a&&this.showNumPad_()};
Blockly.FieldNumber.prototype.showNumPad_=function(){Blockly.DropDownDiv.hideWithoutAnimation();Blockly.DropDownDiv.clearContent();var a=Blockly.DropDownDiv.getContentDiv();a.setAttribute("role","menu");a.setAttribute("aria-haspopup","true");for(var b=Blockly.FieldNumber.NUMPAD_BUTTONS,c=0,d;d=b[c];c++){var e=document.createElement("button");e.setAttribute("role","menuitem");e.setAttribute("class","blocklyNumPadButton");e.title=d;e.innerHTML=d;Blockly.bindEvent_(e,"mousedown",e,Blockly.FieldNumber.numPadButtonTouch_);
@ -1409,12 +1416,13 @@ Blockly.FieldNumber.numPadEraseButtonTouch_=function(){var a=Blockly.FieldTextIn
Blockly.FieldTextInput.htmlInput_.scrollWidth;Blockly.FieldNumber.activeField_.validate_()};Blockly.FieldNumber.prototype.onHide_=function(){Blockly.DropDownDiv.content_.removeAttribute("role");Blockly.DropDownDiv.content_.removeAttribute("aria-haspopup")};Blockly.Variables={};Blockly.Variables.NAME_TYPE="VARIABLE";Blockly.Variables.allUsedVariables=function(a){var b;if(a instanceof Blockly.Block)b=a.getDescendants();else if(a instanceof Blockly.Workspace||a instanceof Blockly.WorkspaceSvg)b=a.getAllBlocks();else throw"Not Block or Workspace: "+a;a=Object.create(null);for(var c=0;c<b.length;c++){var d=b[c].getVars();if(d)for(var e=0;e<d.length;e++){var f=d[e];f&&(a[f.toLowerCase()]=f)}}b=[];for(var g in a)b.push(a[g]);return b};
Blockly.Variables.allVariables=function(a){a instanceof Blockly.Block&&console.warn("Deprecated call to Blockly.Variables.allVariables with a block instead of a workspace. You may want Blockly.Variables.allUsedVariables");return a.variableList};
Blockly.Variables.flyoutCategory=function(a){a=a.variableList;a.sort(goog.string.caseInsensitiveCompare);var b=[],c=goog.dom.createDom("button");c.setAttribute("text",Blockly.Msg.NEW_VARIABLE);b.push(c);for(c=0;c<a.length;c++)if(Blockly.Blocks.data_variable){var d=goog.dom.createDom("block");d.setAttribute("type","data_variable");d.setAttribute("gap",8);d.appendChild(Blockly.Variables.createVariableDom_(a[c]));b.push(d)}1<b.length&&(b[b.length-1].setAttribute("gap",24),Blockly.Blocks.data_setvariableto&&
(d=goog.dom.createDom("block"),d.setAttribute("type","data_setvariableto"),d.setAttribute("gap",8),d.appendChild(Blockly.Variables.createVariableDom_(a[0])),d.appendChild(Blockly.Variables.createMathNumberDom_()),b.push(d)),Blockly.Blocks.data_changevariableby&&(d=goog.dom.createDom("block"),d.setAttribute("type","data_changevariableby"),d.setAttribute("gap",8),d.appendChild(Blockly.Variables.createVariableDom_(a[0])),d.appendChild(Blockly.Variables.createMathNumberDom_()),b.push(d)),Blockly.Blocks.data_showvariable&&
(d=goog.dom.createDom("block"),d.setAttribute("type","data_setvariableto"),d.setAttribute("gap",8),d.appendChild(Blockly.Variables.createVariableDom_(a[0])),d.appendChild(Blockly.Variables.createTextDom_()),b.push(d)),Blockly.Blocks.data_changevariableby&&(d=goog.dom.createDom("block"),d.setAttribute("type","data_changevariableby"),d.setAttribute("gap",8),d.appendChild(Blockly.Variables.createVariableDom_(a[0])),d.appendChild(Blockly.Variables.createMathNumberDom_()),b.push(d)),Blockly.Blocks.data_showvariable&&
(d=goog.dom.createDom("block"),d.setAttribute("type","data_showvariable"),d.setAttribute("gap",8),d.appendChild(Blockly.Variables.createVariableDom_(a[0])),b.push(d)),Blockly.Blocks.data_hidevariable&&(d=goog.dom.createDom("block"),d.setAttribute("type","data_hidevariable"),d.appendChild(Blockly.Variables.createVariableDom_(a[0])),b.push(d)));return b};Blockly.Variables.createValueDom_=function(a){var b=goog.dom.createDom("value");b.setAttribute("name",a);return b};
Blockly.Variables.createShadowDom_=function(a){var b=goog.dom.createDom("shadow");b.setAttribute("type",a);return b};Blockly.Variables.createVariableDom_=function(a){var b=Blockly.Variables.createValueDom_("VARIABLE"),c=Blockly.Variables.createShadowDom_("data_variablemenu");a=goog.dom.createDom("field",null,a);a.setAttribute("name","VARIABLE");c.appendChild(a);b.appendChild(c);return b};
Blockly.Variables.createMathNumberDom_=function(){var a=Blockly.Variables.createValueDom_("VALUE"),b=Blockly.Variables.createShadowDom_("math_number"),c=goog.dom.createDom("field",null,"0");c.setAttribute("name","NUM");b.appendChild(c);a.appendChild(b);return a};
Blockly.Variables.createTextDom_=function(){var a=Blockly.Variables.createValueDom_("VALUE"),b=Blockly.Variables.createShadowDom_("text"),c=goog.dom.createDom("field",null,"0");c.setAttribute("name","TEXT");b.appendChild(c);a.appendChild(b);return a};
Blockly.Variables.createMathNumberDom_=function(){var a=Blockly.Variables.createValueDom_("VALUE"),b=Blockly.Variables.createShadowDom_("math_number"),c=goog.dom.createDom("field",null,"1");c.setAttribute("name","NUM");b.appendChild(c);a.appendChild(b);return a};
Blockly.Variables.generateUniqueName=function(a){a=a.variableList;var b="";if(a.length)for(var c=1,d=0,e="ijkmnopqrstuvwxyzabcdefgh".charAt(d);!b;){for(var f=!1,g=0;g<a.length;g++)if(a[g].toLowerCase()==e){f=!0;break}f?(d++,25==d&&(d=0,c++),e="ijkmnopqrstuvwxyzabcdefgh".charAt(d),1<c&&(e+=c)):b=e}else b="i";return b};
Blockly.Variables.createVariable=function(a){for(;;){var b=Blockly.Variables.promptName(Blockly.Msg.NEW_VARIABLE_TITLE,"");if(b)if(-1!=a.variableIndexOf(b))window.alert(Blockly.Msg.VARIABLE_ALREADY_EXISTS.replace("%1",b.toLowerCase()));else{a.createVariable(b);break}else{b=null;break}}return b};Blockly.Variables.promptName=function(a,b){var c=window.prompt(a,b);c&&(c=c.replace(/[\s\xa0]+/g," ").replace(/^ | $/g,""),c==Blockly.Msg.RENAME_VARIABLE||c==Blockly.Msg.NEW_VARIABLE)&&(c=null);return c};Blockly.FieldVariable=function(a,b){Blockly.FieldVariable.superClass_.constructor.call(this,Blockly.FieldVariable.dropdownCreate,b);this.setValue(a||"")};goog.inherits(Blockly.FieldVariable,Blockly.FieldDropdown);
Blockly.Variables.createVariable=function(a){for(;;){var b=Blockly.Variables.promptName(Blockly.Msg.NEW_VARIABLE_TITLE,"");if(b)if(-1!=a.variableIndexOf(b))window.alert(Blockly.Msg.VARIABLE_ALREADY_EXISTS.replace("%1",b.toLowerCase()));else{a.createVariable(b);break}else{b=null;break}}return b};Blockly.Variables.promptName=function(a,b){var c=window.prompt(a,b);c&&(c=c.replace(/[\s\xa0]+/g," ").replace(/^ | $/g,""),c==Blockly.Msg.RENAME_VARIABLE||c==Blockly.Msg.NEW_VARIABLE)&&(c=null);return c};Blockly.FieldVariable=function(a,b){Blockly.FieldVariable.superClass_.constructor.call(this,Blockly.FieldVariable.dropdownCreate,b);this.setValue(a||"");this.setArgType("variable")};goog.inherits(Blockly.FieldVariable,Blockly.FieldDropdown);
Blockly.FieldVariable.prototype.init=function(){this.fieldGroup_||(Blockly.FieldVariable.superClass_.init.call(this),this.getValue()||this.setValue(Blockly.Variables.generateUniqueName(this.sourceBlock_.isInFlyout?this.sourceBlock_.workspace.targetWorkspace:this.sourceBlock_.workspace)),this.sourceBlock_.isInFlyout||this.sourceBlock_.workspace.createVariable(this.getValue()))};Blockly.FieldVariable.prototype.getValue=function(){return this.getText()};
Blockly.FieldVariable.prototype.setValue=function(a){this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,a));this.value_=a;this.setText(a)};
Blockly.FieldVariable.dropdownCreate=function(){var a=this.sourceBlock_&&this.sourceBlock_.workspace?this.sourceBlock_.workspace.variableList.slice(0):[],b=this.getText();b&&-1==a.indexOf(b)&&a.push(b);a.sort(goog.string.caseInsensitiveCompare);a.push(Blockly.Msg.RENAME_VARIABLE);a.push(Blockly.Msg.DELETE_VARIABLE.replace("%1",b));for(var b=[],c=0;c<a.length;c++)b[c]=[a[c],a[c]];return b};
@ -1533,8 +1541,8 @@ Blockly.Css.CONTENT=[".blocklySvg {","background-color: $colour_workspace;","out
"padding-left: 7em;","padding-right: 28px;","}",".blocklyWidgetDiv .goog-menu-nocheckbox .goog-menuitem,",".blocklyWidgetDiv .goog-menu-noicon .goog-menuitem, ",".blocklyDropDownDiv .goog-menu-nocheckbox .goog-menuitem,",".blocklyDropDownDiv .goog-menu-noicon .goog-menuitem { ","padding-left: 12px;","}",".blocklyWidgetDiv .goog-menu-noaccel .goog-menuitem, ",".blocklyDropDownDiv .goog-menu-noaccel .goog-menuitem {","padding-right: 20px;","}",".blocklyWidgetDiv .goog-menuitem-content ",".blocklyDropDownDiv .goog-menuitem-content {",
"color: #000;",'font: normal 13px "Helvetica Neue", Helvetica, sans-serif;',"}",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-accel,",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-content, ",".blocklyDropDownDiv .goog-menuitem-disabled .goog-menuitem-accel,",".blocklyDropDownDiv .goog-menuitem-disabled .goog-menuitem-content {","color: #ccc !important;","}",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-icon, ",".blocklyDropDownDiv .goog-menuitem-disabled .goog-menuitem-icon {",
"opacity: 0.3;","-moz-opacity: 0.3;","filter: alpha(opacity=30);","}",".blocklyWidgetDiv .goog-menuitem-highlight,",".blocklyWidgetDiv .goog-menuitem-hover {","background-color: #d6e9f8;","border-color: #d6e9f8;","border-style: dotted;","border-width: 1px 0;","padding-bottom: 3px;","padding-top: 3px;","}",".blocklyDropDownDiv .goog-menuitem-highlight,",".blocklyDropDownDiv .goog-menuitem-hover {","background-color: rgba(0, 0, 0, 0.2);","}",".blocklyWidgetDiv .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-menuitem-icon, ",
".blocklyDropDownDiv .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-menuitem-icon {","background-repeat: no-repeat;","height: 16px;","left: 6px;","position: absolute;","right: auto;","vertical-align: middle;","width: 16px;","}",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-icon,",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-icon {","left: auto;",
"right: 6px;","}",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon,",".blocklyDropDownDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-option-selected .goog-menuitem-icon {","background: url(<<<PATH>>>/sprites.png) no-repeat -48px -16px !important;","}",".blocklyWidgetDiv .goog-menuitem-accel, ",".blocklyDropDownDiv .goog-menuitem-accel {","color: #999;","direction: ltr;","left: auto;","padding: 0 6px;",
".blocklyDropDownDiv .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-menuitem-icon {","background-repeat: no-repeat;","height: 16px;","left: 6px;","position: absolute;","right: auto;","vertical-align: middle;","width: 16px;","}",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon,",".blocklyDropDownDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-option-selected .goog-menuitem-icon {","background: url(<<<PATH>>>/sprites.png) no-repeat -48px -16px !important;",
"position: static;","float: left;","margin-left: -24px;","}",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-icon,",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-icon {","float: right;","margin-left: 6px;","}",".blocklyWidgetDiv .goog-menuitem-accel, ",".blocklyDropDownDiv .goog-menuitem-accel {","color: #999;","direction: ltr;","left: auto;","padding: 0 6px;",
"position: absolute;","right: 0;","text-align: right;","}",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-accel, ",".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-accel {","left: 0;","right: auto;","text-align: left;","}",".blocklyWidgetDiv .goog-menuitem-mnemonic-hint, ",".blocklyDropDownDiv .goog-menuitem-mnemonic-hint {","text-decoration: underline;","}",".blocklyWidgetDiv .goog-menuitem-mnemonic-separator, ",".blocklyDropDownDiv .goog-menuitem-mnemonic-separator {","color: #999;",
"font-size: 12px;","padding-left: 4px;","}",".blocklyWidgetDiv .goog-menuseparator, ",".blocklyDropDownDiv .goog-menuseparator {","border-top: 1px solid #ccc;","margin: 4px 0;","padding: 0;","}",".blocklyFlyoutCheckbox {","fill: red","}",".blocklyFlyoutCheckbox.checked {","fill: blue","}",""];Blockly.WidgetDiv={};Blockly.WidgetDiv.DIV=null;Blockly.WidgetDiv.owner_=null;Blockly.WidgetDiv.dispose_=null;Blockly.WidgetDiv.disposeAnimationFinished_=null;Blockly.WidgetDiv.disposeAnimationTimer_=null;Blockly.WidgetDiv.disposeAnimationTimerLength_=0;Blockly.WidgetDiv.createDom=function(){Blockly.WidgetDiv.DIV||(Blockly.WidgetDiv.DIV=goog.dom.createDom("DIV","blocklyWidgetDiv"),document.body.appendChild(Blockly.WidgetDiv.DIV))};
Blockly.WidgetDiv.show=function(a,b,c,d,e){Blockly.WidgetDiv.hide();Blockly.WidgetDiv.owner_=a;Blockly.WidgetDiv.dispose_=c;Blockly.WidgetDiv.disposeAnimationFinished_=d;Blockly.WidgetDiv.disposeAnimationTimerLength_=e;a=goog.style.getViewportPageOffset(document);Blockly.WidgetDiv.DIV.style.top=a.y+"px";Blockly.WidgetDiv.DIV.style.direction=b?"rtl":"ltr";Blockly.WidgetDiv.DIV.style.display="block"};
@ -1548,8 +1556,7 @@ Blockly.DragSurfaceSvg.prototype.createDropShadowDom_=function(a){a=Blockly.crea
in2:"offsetBlur",operator:"over"},a);return a.id};Blockly.DragSurfaceSvg.prototype.setBlocksAndShow=function(a){goog.asserts.assert(0==this.dragGroup_.childNodes.length,"Already dragging a block.");this.dragGroup_.appendChild(a);this.SVG_.style.display="block"};
Blockly.DragSurfaceSvg.prototype.translateAndScaleGroup=function(a,b,c){this.scale_=c;a=a.toFixed(2);b=b.toFixed(2);Blockly.is3dSupported()?this.dragGroup_.setAttribute("style","transform: translate3d("+a+"px, "+b+"px, 0px)scale3d("+c+","+c+","+c+")"):this.dragGroup_.setAttribute("transform","translate("+a+", "+b+") scale("+c+")")};
Blockly.DragSurfaceSvg.prototype.translateSurface=function(a,b){a*=this.scale_;b*=this.scale_;a=a.toFixed(2);b=b.toFixed(2);Blockly.is3dSupported()?this.SVG_.setAttribute("style","transform: translate3d("+a+"px, "+b+"px, 0px); display: block;"):this.SVG_.setAttribute("transform","translate("+a+", "+b+")")};Blockly.DragSurfaceSvg.prototype.getSurfaceTranslation=function(){var a=Blockly.getRelativeXY_(this.SVG_);return new goog.math.Coordinate(a.x/this.scale_,a.y/this.scale_)};
Blockly.DragSurfaceSvg.prototype.getGroup=function(){return this.dragGroup_};Blockly.DragSurfaceSvg.prototype.getCurrentBlock=function(){return this.dragGroup_.childNodes[0]};Blockly.DragSurfaceSvg.prototype.clearAndHide=function(a){a.appendChild(this.getCurrentBlock());this.SVG_.style.display="none";goog.asserts.assert(0==this.dragGroup_.childNodes.length,"Drag group was not cleared.")};Blockly.STACK_GLOW_RADIUS=1;Blockly.REPLACEMENT_GLOW_RADIUS=2;
Blockly.inject=function(a,b){goog.isString(a)&&(a=document.getElementById(a)||document.querySelector(a));if(!goog.dom.contains(document,a))throw"Error: container is not in current document.";var c=new Blockly.Options(b||{}),d=goog.dom.createDom("div","injectionDiv");a.appendChild(d);var e=Blockly.createDom_(d,c),d=new Blockly.DragSurfaceSvg(d);d.createDom();c=Blockly.createMainWorkspace_(e,c,d);Blockly.init_(c);c.markFocused();Blockly.bindEvent_(e,"focus",c,c.markFocused);Blockly.svgResize(c);return c};
Blockly.DragSurfaceSvg.prototype.getGroup=function(){return this.dragGroup_};Blockly.DragSurfaceSvg.prototype.getCurrentBlock=function(){return this.dragGroup_.childNodes[0]};Blockly.DragSurfaceSvg.prototype.clearAndHide=function(a){a.appendChild(this.getCurrentBlock());this.SVG_.style.display="none";goog.asserts.assert(0==this.dragGroup_.childNodes.length,"Drag group was not cleared.")};Blockly.inject=function(a,b){goog.isString(a)&&(a=document.getElementById(a)||document.querySelector(a));if(!goog.dom.contains(document,a))throw"Error: container is not in current document.";var c=new Blockly.Options(b||{}),d=goog.dom.createDom("div","injectionDiv");a.appendChild(d);var e=Blockly.createDom_(d,c),d=new Blockly.DragSurfaceSvg(d);d.createDom();c=Blockly.createMainWorkspace_(e,c,d);Blockly.init_(c);c.markFocused();Blockly.bindEvent_(e,"focus",c,c.markFocused);Blockly.svgResize(c);return c};
Blockly.createDom_=function(a,b){a.setAttribute("dir","LTR");goog.ui.Component.setDefaultRightToLeft(b.RTL);Blockly.Css.inject(b.hasCss,b.pathToMedia);var c=Blockly.createSvgElement("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1","class":"blocklySvg"},a),d=Blockly.createSvgElement("defs",{},c),e=String(Math.random()).substring(2),f=Blockly.createSvgElement("filter",{id:"blocklyStackGlowFilter",height:"160%",
width:"180%",y:"-30%",x:"-40%"},d);b.stackGlowBlur=Blockly.createSvgElement("feGaussianBlur",{"in":"SourceGraphic",stdDeviation:Blockly.STACK_GLOW_RADIUS},f);var g=Blockly.createSvgElement("feComponentTransfer",{result:"outBlur"},f);Blockly.createSvgElement("feFuncA",{type:"table",tableValues:"0"+" 1".repeat(16)},g);Blockly.createSvgElement("feFlood",{"flood-color":Blockly.Colours.stackGlow,"flood-opacity":Blockly.Colours.stackGlowOpacity,result:"outColor"},f);Blockly.createSvgElement("feComposite",
{"in":"outColor",in2:"outBlur",operator:"in",result:"outGlow"},f);Blockly.createSvgElement("feComposite",{"in":"SourceGraphic",in2:"outGlow",operator:"over"},f);f=Blockly.createSvgElement("filter",{id:"blocklyReplacementGlowFilter",height:"160%",width:"180%",y:"-30%",x:"-40%"},d);Blockly.createSvgElement("feGaussianBlur",{"in":"SourceGraphic",stdDeviation:Blockly.REPLACEMENT_GLOW_RADIUS},f);g=Blockly.createSvgElement("feComponentTransfer",{result:"outBlur"},f);Blockly.createSvgElement("feFuncA",{type:"table",

View file

@ -70,7 +70,7 @@ goog.addDependency("../../../" + dir + "/core/flyout.js", ['Blockly.Flyout'], ['
goog.addDependency("../../../" + dir + "/core/flyout_button.js", ['Blockly.FlyoutButton'], ['goog.dom', 'goog.math.Coordinate']);
goog.addDependency("../../../" + dir + "/core/generator.js", ['Blockly.Generator'], ['Blockly.Block', 'goog.asserts']);
goog.addDependency("../../../" + dir + "/core/icon.js", ['Blockly.Icon'], ['goog.dom', 'goog.math.Coordinate']);
goog.addDependency("../../../" + dir + "/core/inject.js", ['Blockly.inject'], ['Blockly.Css', 'Blockly.Options', 'Blockly.WorkspaceSvg', 'Blockly.DragSurfaceSvg', 'Blockly.DropDownDiv', 'goog.dom', 'goog.ui.Component', 'goog.userAgent']);
goog.addDependency("../../../" + dir + "/core/inject.js", ['Blockly.inject'], ['Blockly.Css', 'Blockly.constants', 'Blockly.Options', 'Blockly.WorkspaceSvg', 'Blockly.DragSurfaceSvg', 'Blockly.DropDownDiv', 'goog.dom', 'goog.ui.Component', 'goog.userAgent']);
goog.addDependency("../../../" + dir + "/core/input.js", ['Blockly.Input'], ['Blockly.Connection', 'Blockly.FieldLabel', 'goog.asserts']);
goog.addDependency("../../../" + dir + "/core/msg.js", ['Blockly.Msg'], []);
goog.addDependency("../../../" + dir + "/core/mutator.js", ['Blockly.Mutator'], ['Blockly.Bubble', 'Blockly.Icon', 'Blockly.WorkspaceSvg', 'goog.dom']);

View file

@ -70,7 +70,7 @@ goog.addDependency("../../../" + dir + "/core/flyout.js", ['Blockly.Flyout'], ['
goog.addDependency("../../../" + dir + "/core/flyout_button.js", ['Blockly.FlyoutButton'], ['goog.dom', 'goog.math.Coordinate']);
goog.addDependency("../../../" + dir + "/core/generator.js", ['Blockly.Generator'], ['Blockly.Block', 'goog.asserts']);
goog.addDependency("../../../" + dir + "/core/icon.js", ['Blockly.Icon'], ['goog.dom', 'goog.math.Coordinate']);
goog.addDependency("../../../" + dir + "/core/inject.js", ['Blockly.inject'], ['Blockly.Css', 'Blockly.Options', 'Blockly.WorkspaceSvg', 'Blockly.DragSurfaceSvg', 'Blockly.DropDownDiv', 'goog.dom', 'goog.ui.Component', 'goog.userAgent']);
goog.addDependency("../../../" + dir + "/core/inject.js", ['Blockly.inject'], ['Blockly.Css', 'Blockly.constants', 'Blockly.Options', 'Blockly.WorkspaceSvg', 'Blockly.DragSurfaceSvg', 'Blockly.DropDownDiv', 'goog.dom', 'goog.ui.Component', 'goog.userAgent']);
goog.addDependency("../../../" + dir + "/core/input.js", ['Blockly.Input'], ['Blockly.Connection', 'Blockly.FieldLabel', 'goog.asserts']);
goog.addDependency("../../../" + dir + "/core/msg.js", ['Blockly.Msg'], []);
goog.addDependency("../../../" + dir + "/core/mutator.js", ['Blockly.Mutator'], ['Blockly.Bubble', 'Blockly.Icon', 'Blockly.WorkspaceSvg', 'goog.dom']);

View file

@ -3,9 +3,9 @@
// Copyright 2016 Google Inc. Apache License 2.0
Blockly.constants={};Blockly.DRAG_RADIUS=5;Blockly.SNAP_RADIUS=72;Blockly.CONNECTING_SNAP_RADIUS=132;Blockly.CURRENT_CONNECTION_PREFERENCE=20;Blockly.BUMP_DELAY=0;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"};Blockly.SVG_NS="http://www.w3.org/2000/svg";Blockly.HTML_NS="http://www.w3.org/1999/xhtml";Blockly.INPUT_VALUE=1;Blockly.OUTPUT_VALUE=2;Blockly.NEXT_STATEMENT=3;
Blockly.constants={};Blockly.DRAG_RADIUS=3;Blockly.SNAP_RADIUS=48;Blockly.CONNECTING_SNAP_RADIUS=96;Blockly.CURRENT_CONNECTION_PREFERENCE=20;Blockly.BUMP_DELAY=0;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"};Blockly.SVG_NS="http://www.w3.org/2000/svg";Blockly.HTML_NS="http://www.w3.org/1999/xhtml";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.OUTPUT_SHAPE_HEXAGONAL=1;Blockly.OUTPUT_SHAPE_ROUND=2;Blockly.OUTPUT_SHAPE_SQUARE=3;
Blockly.TOOLBOX_AT_TOP=0;Blockly.TOOLBOX_AT_BOTTOM=1;Blockly.TOOLBOX_AT_LEFT=2;Blockly.TOOLBOX_AT_RIGHT=3;Blockly.OUTPUT_SHAPE_HEXAGONAL=1;Blockly.OUTPUT_SHAPE_ROUND=2;Blockly.OUTPUT_SHAPE_SQUARE=3;Blockly.STACK_GLOW_RADIUS=1.3;Blockly.REPLACEMENT_GLOW_RADIUS=2;Blockly.Categories={motion:"motion",looks:"looks",sound:"sounds",pen:"pen",data:"data",event:"events",control:"control",sensing:"sensing",operators:"operators",more:"more"};
// Copyright 2012 Google Inc. Apache License 2.0
Blockly.Blocks.colour={};function randomColour(){return"#"+("00000"+Math.floor(Math.random()*Math.pow(2,24)).toString(16)).substr(-6)}Blockly.Blocks.colour_picker={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_colour",name:"COLOUR",colour:randomColour()}],outputShape:Blockly.OUTPUT_SHAPE_ROUND,output:"Colour"})}};/*

View file

@ -23,32 +23,33 @@
Blockly.Colours={motion:{primary:"#4C97FF",secondary:"#4280D7",tertiary:"#3373CC"},looks:{primary:"#9966FF",secondary:"#855CD6",tertiary:"#774DCB"},sounds:{primary:"#CF63CF",secondary:"#C94FC9",tertiary:"#BD42BD"},control:{primary:"#FFAB19",secondary:"#EC9C13",tertiary:"#CF8B17"},event:{primary:"#FFBF00",secondary:"#E6AC00",tertiary:"#CC9900"},sensing:{primary:"#5CB1D6",secondary:"#47A8D1",tertiary:"#2E8EB8"},pen:{primary:"#0fBD8C",secondary:"#0DA57A",tertiary:"#0B8E69"},operators:{primary:"#59C059",
secondary:"#46B946",tertiary:"#389438"},data:{primary:"#FF8C1A",secondary:"#FF8000",tertiary:"#DB6E00"},more:{primary:"#FF6680",secondary:"#FF4D6A",tertiary:"#FF3355"},text:"#575E75",workspace:"#F5F8FF",toolbox:"#DDDDDD",toolboxText:"#000000",flyout:"#DDDDDD",scrollbar:"#CCCCCC",scrollbarHover:"#BBBBBB",textField:"#FFFFFF",insertionMarker:"#949494",insertionMarkerOpacity:.6,dragShadowOpacity:.3,stackGlow:"#FFF200",stackGlowOpacity:1,replacementGlow:"#FFFFFF",replacementGlowOpacity:1,colourPickerStroke:"#FFFFFF",
fieldShadow:"rgba(0,0,0,0.1)",dropDownShadow:"rgba(0, 0, 0, .3)",numPadBackground:"#547AB2",numPadBorder:"#435F91",numPadActiveBackground:"#435F91",numPadText:"#FFFFFF",valueReportBackground:"#FFFFFF",valueReportBorder:"#AAAAAA"};Blockly.Blocks.control={};
Blockly.Blocks.control_repeat={init:function(){this.jsonInit({id:"control_repeat",message0:"%1 %2 %3",args0:[{type:"input_statement",name:"SUBSTACK"},{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_repeat.svg",width:40,height:40,alt:"*",flip_rtl:!0},{type:"input_value",name:"TIMES",check:"Number"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_forever={init:function(){this.jsonInit({id:"control_forever",message0:"%1 %2",args0:[{type:"input_statement",name:"SUBSTACK"},{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_forever.svg",width:40,height:40,alt:"*",flip_rtl:!0}],inputsInline:!0,previousStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_repeat={init:function(){this.jsonInit({id:"control_repeat",message0:"%1 %2 %3",args0:[{type:"input_statement",name:"SUBSTACK"},{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_repeat.svg",width:40,height:40,alt:"*",flip_rtl:!0},{type:"input_value",name:"TIMES",check:"Number"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_stop={init:function(){this.jsonInit({id:"control_stop",message0:"%1",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_stop.svg",width:40,height:40,alt:"Stop"}],inputsInline:!0,previousStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_wait={init:function(){this.jsonInit({id:"control_wait",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_wait.svg",width:40,height:40,alt:"Wait"},{type:"input_value",name:"DURATION",check:"Number"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};Blockly.Blocks.event={};Blockly.Blocks.event_whenflagclicked={init:function(){this.jsonInit({id:"event_whenflagclicked",message0:"%1",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_whenflagclicked.svg",width:40,height:40,alt:"When green flag clicked",flip_rtl:!0}],inputsInline:!0,nextStatement:null,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.control_repeat={init:function(){this.jsonInit({id:"control_repeat",message0:"%1 %2 %3",args0:[{type:"input_statement",name:"SUBSTACK"},{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_repeat.svg",width:40,height:40,alt:"*",flip_rtl:!0},{type:"input_value",name:"TIMES",check:"Number"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_forever={init:function(){this.jsonInit({id:"control_forever",message0:"%1 %2",args0:[{type:"input_statement",name:"SUBSTACK"},{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_forever.svg",width:40,height:40,alt:"*",flip_rtl:!0}],inputsInline:!0,previousStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_repeat={init:function(){this.jsonInit({id:"control_repeat",message0:"%1 %2 %3",args0:[{type:"input_statement",name:"SUBSTACK"},{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_repeat.svg",width:40,height:40,alt:"*",flip_rtl:!0},{type:"input_value",name:"TIMES",check:"Number"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,
colourTertiary:Blockly.Colours.control.tertiary})}};Blockly.Blocks.control_stop={init:function(){this.jsonInit({id:"control_stop",message0:"%1",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_stop.svg",width:40,height:40,alt:"Stop"}],inputsInline:!0,previousStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_wait={init:function(){this.jsonInit({id:"control_wait",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_wait.svg",width:40,height:40,alt:"Wait"},{type:"input_value",name:"DURATION",check:"Number"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};Blockly.Blocks.event={};Blockly.Blocks.event_whenflagclicked={init:function(){this.jsonInit({id:"event_whenflagclicked",message0:"%1",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_whenflagclicked.svg",width:40,height:40,alt:"When green flag clicked",flip_rtl:!0}],inputsInline:!0,nextStatement:null,category:Blockly.Categories.event,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.dropdown_whenbroadcast={init:function(){this.appendDummyInput().appendField(new Blockly.FieldIconMenu([{src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_when-broadcast-received_blue.svg",value:"blue",width:48,height:48,alt:"Blue"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_when-broadcast-received_green.svg",value:"green",width:48,height:48,alt:"Green"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_when-broadcast-received_coral.svg",value:"coral",
width:48,height:48,alt:"Coral"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_when-broadcast-received_magenta.svg",value:"magenta",width:48,height:48,alt:"Magenta"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_when-broadcast-received_orange.svg",value:"orange",width:48,height:48,alt:"Orange"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_when-broadcast-received_purple.svg",value:"purple",width:48,height:48,alt:"Purple"}]),"CHOICE");this.setOutput(!0);this.setColour(Blockly.Colours.event.primary,
Blockly.Colours.event.secondary,Blockly.Colours.event.tertiary)}};
Blockly.Blocks.event_whenbroadcastreceived={init:function(){this.jsonInit({id:"event_whenbroadcastreceived",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_when-broadcast-received_blue.svg",width:40,height:40,alt:"Broadcast received"},{type:"input_value",name:"CHOICE"}],inputsInline:!0,nextStatement:null,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_whenbroadcastreceived={init:function(){this.jsonInit({id:"event_whenbroadcastreceived",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_when-broadcast-received_blue.svg",width:40,height:40,alt:"Broadcast received"},{type:"input_value",name:"CHOICE"}],inputsInline:!0,nextStatement:null,category:Blockly.Categories.event,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.dropdown_broadcast={init:function(){this.appendDummyInput().appendField(new Blockly.FieldIconMenu([{src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_broadcast_blue.svg",value:"blue",width:48,height:48,alt:"Blue"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_broadcast_green.svg",value:"green",width:48,height:48,alt:"Green"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_broadcast_coral.svg",value:"coral",width:48,height:48,alt:"Coral"},{src:Blockly.mainWorkspace.options.pathToMedia+
"icons/event_broadcast_magenta.svg",value:"magenta",width:48,height:48,alt:"Magenta"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_broadcast_orange.svg",value:"orange",width:48,height:48,alt:"Orange"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_broadcast_purple.svg",value:"purple",width:48,height:48,alt:"Purple"}]),"CHOICE");this.setOutput(!0);this.setColour(Blockly.Colours.event.primary,Blockly.Colours.event.secondary,Blockly.Colours.event.tertiary)}};
Blockly.Blocks.event_broadcast={init:function(){this.jsonInit({id:"event_broadcast",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_broadcast_blue.svg",width:40,height:40,alt:"Broadcast"},{type:"input_value",name:"CHOICE"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};Blockly.Blocks.wedo={};
Blockly.Blocks.event_broadcast={init:function(){this.jsonInit({id:"event_broadcast",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_broadcast_blue.svg",width:40,height:40,alt:"Broadcast"},{type:"input_value",name:"CHOICE"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.event,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};Blockly.Blocks.wedo={};
Blockly.Blocks.dropdown_wedo_setcolor={init:function(){this.appendDummyInput().appendField(new Blockly.FieldIconMenu([{src:Blockly.mainWorkspace.options.pathToMedia+"icons/set-led_mystery.svg",value:"mystery",width:48,height:48,alt:"Mystery"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/set-led_yellow.svg",value:"yellow",width:48,height:48,alt:"Yellow"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/set-led_orange.svg",value:"orange",width:48,height:48,alt:"Orange"},{src:Blockly.mainWorkspace.options.pathToMedia+
"icons/set-led_coral.svg",value:"coral",width:48,height:48,alt:"Coral"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/set-led_magenta.svg",value:"magenta",width:48,height:48,alt:"Magenta"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/set-led_purple.svg",value:"purple",width:48,height:48,alt:"Purple"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/set-led_blue.svg",value:"blue",width:48,height:48,alt:"Blue"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/set-led_green.svg",
value:"green",width:48,height:48,alt:"Green"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/set-led_white.svg",value:"white",width:48,height:48,alt:"White"}]),"CHOICE");this.setOutput(!0);this.setColour(Blockly.Colours.looks.primary,Blockly.Colours.looks.secondary,Blockly.Colours.looks.tertiary)}};
Blockly.Blocks.wedo_setcolor={init:function(){this.jsonInit({id:"wedo_setcolor",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/set-led_blue.svg",width:40,height:40,alt:"Set LED Color"},{type:"input_value",name:"CHOICE"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.wedo_motorclockwise={init:function(){this.jsonInit({id:"wedo_motorclockwise",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_motor-clockwise.svg",width:40,height:40,alt:"Turn motor clockwise"},{type:"input_value",name:"DURATION",check:"Number"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.wedo_motorcounterclockwise={init:function(){this.jsonInit({id:"wedo_motorcounterclockwise",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_motor-counterclockwise.svg",width:40,height:40,alt:"Turn motor counter-clockwise"},{type:"input_value",name:"DURATION",check:"Number"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.wedo_setcolor={init:function(){this.jsonInit({id:"wedo_setcolor",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/set-led_blue.svg",width:40,height:40,alt:"Set LED Color"},{type:"input_value",name:"CHOICE"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.wedo_motorclockwise={init:function(){this.jsonInit({id:"wedo_motorclockwise",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_motor-clockwise.svg",width:40,height:40,alt:"Turn motor clockwise"},{type:"input_value",name:"DURATION",check:"Number"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.wedo_motorcounterclockwise={init:function(){this.jsonInit({id:"wedo_motorcounterclockwise",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_motor-counterclockwise.svg",width:40,height:40,alt:"Turn motor counter-clockwise"},{type:"input_value",name:"DURATION",check:"Number"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,
colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.dropdown_wedo_motorspeed={init:function(){this.appendDummyInput().appendField(new Blockly.FieldIconMenu([{src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_motor-speed_slow.svg",value:"slow",width:48,height:48,alt:"Slow"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_motor-speed_med.svg",value:"medium",width:48,height:48,alt:"Medium"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_motor-speed_fast.svg",value:"fast",width:48,height:48,alt:"Fast"}]),"CHOICE");
this.setOutput(!0);this.setColour(Blockly.Colours.motion.primary,Blockly.Colours.motion.secondary,Blockly.Colours.motion.tertiary)}};
Blockly.Blocks.wedo_motorspeed={init:function(){this.jsonInit({id:"wedo_motorspeed",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_motor-speed_fast.svg",width:40,height:40,alt:"Motor Speed"},{type:"input_value",name:"CHOICE"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.wedo_motorspeed={init:function(){this.jsonInit({id:"wedo_motorspeed",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_motor-speed_fast.svg",width:40,height:40,alt:"Motor Speed"},{type:"input_value",name:"CHOICE"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.dropdown_wedo_whentilt={init:function(){this.appendDummyInput().appendField(new Blockly.FieldIconMenu([{type:"placeholder",width:48,height:48},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_when-tilt-forward.svg",value:"forward",width:48,height:48,alt:"Tilt forward"},{type:"placeholder",width:48,height:48},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_when-tilt-left.svg",value:"left",width:48,height:48,alt:"Tilt left"},{src:Blockly.mainWorkspace.options.pathToMedia+
"icons/wedo_when-tilt.svg",value:"any",width:48,height:48,alt:"Tilt any"},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_when-tilt-right.svg",value:"right",width:48,height:48,alt:"Tilt right"},{type:"placeholder",width:48,height:48},{src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_when-tilt-backward.svg",value:"backward",width:48,height:48,alt:"Tilt backward"}]),"CHOICE");this.setOutput(!0);this.setColour(Blockly.Colours.event.primary,Blockly.Colours.event.secondary,Blockly.Colours.event.tertiary)}};
Blockly.Blocks.wedo_whentilt={init:function(){this.jsonInit({id:"wedo_whentilt",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_when-tilt.svg",width:40,height:40,alt:"When tilted"},{type:"input_value",name:"CHOICE"}],inputsInline:!0,nextStatement:null,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.wedo_whendistanceclose={init:function(){this.jsonInit({id:"wedo_whendistanceclose",message0:"%1",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_when-distance_close.svg",width:40,height:40,alt:"When distance close"}],inputsInline:!0,nextStatement:null,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.wedo_whentilt={init:function(){this.jsonInit({id:"wedo_whentilt",message0:"%1 %2",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_when-tilt.svg",width:40,height:40,alt:"When tilted"},{type:"input_value",name:"CHOICE"}],inputsInline:!0,nextStatement:null,category:Blockly.Categories.event,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.wedo_whendistanceclose={init:function(){this.jsonInit({id:"wedo_whendistanceclose",message0:"%1",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/wedo_when-distance_close.svg",width:40,height:40,alt:"When distance close"}],inputsInline:!0,nextStatement:null,category:Blockly.Categories.event,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
// Copyright 2016 Google Inc. Apache License 2.0
Blockly.constants={};Blockly.DRAG_RADIUS=5;Blockly.SNAP_RADIUS=72;Blockly.CONNECTING_SNAP_RADIUS=132;Blockly.CURRENT_CONNECTION_PREFERENCE=20;Blockly.BUMP_DELAY=0;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"};Blockly.SVG_NS="http://www.w3.org/2000/svg";Blockly.HTML_NS="http://www.w3.org/1999/xhtml";Blockly.INPUT_VALUE=1;Blockly.OUTPUT_VALUE=2;Blockly.NEXT_STATEMENT=3;
Blockly.constants={};Blockly.DRAG_RADIUS=3;Blockly.SNAP_RADIUS=48;Blockly.CONNECTING_SNAP_RADIUS=96;Blockly.CURRENT_CONNECTION_PREFERENCE=20;Blockly.BUMP_DELAY=0;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"};Blockly.SVG_NS="http://www.w3.org/2000/svg";Blockly.HTML_NS="http://www.w3.org/1999/xhtml";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.OUTPUT_SHAPE_HEXAGONAL=1;Blockly.OUTPUT_SHAPE_ROUND=2;Blockly.OUTPUT_SHAPE_SQUARE=3;
Blockly.TOOLBOX_AT_TOP=0;Blockly.TOOLBOX_AT_BOTTOM=1;Blockly.TOOLBOX_AT_LEFT=2;Blockly.TOOLBOX_AT_RIGHT=3;Blockly.OUTPUT_SHAPE_HEXAGONAL=1;Blockly.OUTPUT_SHAPE_ROUND=2;Blockly.OUTPUT_SHAPE_SQUARE=3;Blockly.STACK_GLOW_RADIUS=1.3;Blockly.REPLACEMENT_GLOW_RADIUS=2;Blockly.Categories={motion:"motion",looks:"looks",sound:"sounds",pen:"pen",data:"data",event:"events",control:"control",sensing:"sensing",operators:"operators",more:"more"};

View file

@ -22,183 +22,189 @@
*/
Blockly.Colours={motion:{primary:"#4C97FF",secondary:"#4280D7",tertiary:"#3373CC"},looks:{primary:"#9966FF",secondary:"#855CD6",tertiary:"#774DCB"},sounds:{primary:"#CF63CF",secondary:"#C94FC9",tertiary:"#BD42BD"},control:{primary:"#FFAB19",secondary:"#EC9C13",tertiary:"#CF8B17"},event:{primary:"#FFBF00",secondary:"#E6AC00",tertiary:"#CC9900"},sensing:{primary:"#5CB1D6",secondary:"#47A8D1",tertiary:"#2E8EB8"},pen:{primary:"#0fBD8C",secondary:"#0DA57A",tertiary:"#0B8E69"},operators:{primary:"#59C059",
secondary:"#46B946",tertiary:"#389438"},data:{primary:"#FF8C1A",secondary:"#FF8000",tertiary:"#DB6E00"},more:{primary:"#FF6680",secondary:"#FF4D6A",tertiary:"#FF3355"},text:"#575E75",workspace:"#F5F8FF",toolbox:"#DDDDDD",toolboxText:"#000000",flyout:"#DDDDDD",scrollbar:"#CCCCCC",scrollbarHover:"#BBBBBB",textField:"#FFFFFF",insertionMarker:"#949494",insertionMarkerOpacity:.6,dragShadowOpacity:.3,stackGlow:"#FFF200",stackGlowOpacity:1,replacementGlow:"#FFFFFF",replacementGlowOpacity:1,colourPickerStroke:"#FFFFFF",
fieldShadow:"rgba(0,0,0,0.1)",dropDownShadow:"rgba(0, 0, 0, .3)",numPadBackground:"#547AB2",numPadBorder:"#435F91",numPadActiveBackground:"#435F91",numPadText:"#FFFFFF",valueReportBackground:"#FFFFFF",valueReportBorder:"#AAAAAA"};Blockly.Blocks.control={};Blockly.Blocks.control_forever={init:function(){this.jsonInit({id:"control_forever",message0:"forever",message1:"%1",message2:"%1",lastDummyAlign2:"RIGHT",args1:[{type:"input_statement",name:"SUBSTACK"}],args2:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_forever.svg",width:10,height:10,alt:"*",flip_rtl:!0}],inputsInline:!0,previousStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_repeat={init:function(){this.jsonInit({id:"control_repeat",message0:"repeat %1",message1:"%1",message2:"%1",lastDummyAlign2:"RIGHT",args0:[{type:"input_value",name:"TIMES"}],args1:[{type:"input_statement",name:"SUBSTACK"}],args2:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_forever.svg",width:10,height:10,alt:"*",flip_rtl:!0}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,
colourTertiary:Blockly.Colours.control.tertiary})}};Blockly.Blocks.control_if={init:function(){this.jsonInit({type:"control_if",message0:"if %1 then",message1:"%1",args0:[{type:"input_value",name:"CONDITION",check:"Boolean"}],args1:[{type:"input_statement",name:"SUBSTACK"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_if_else={init:function(){this.jsonInit({type:"control_if_else",message0:"if %1 then",message1:"%1",message2:"else",message3:"%1",args0:[{type:"input_value",name:"CONDITION",check:"Boolean"}],args1:[{type:"input_statement",name:"SUBSTACK"}],args3:[{type:"input_statement",name:"SUBSTACK2"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
fieldShadow:"rgba(0,0,0,0.1)",dropDownShadow:"rgba(0, 0, 0, .3)",numPadBackground:"#547AB2",numPadBorder:"#435F91",numPadActiveBackground:"#435F91",numPadText:"#FFFFFF",valueReportBackground:"#FFFFFF",valueReportBorder:"#AAAAAA"};Blockly.Blocks.control={};
Blockly.Blocks.control_forever={init:function(){this.jsonInit({id:"control_forever",message0:"forever",message1:"%1",message2:"%1",lastDummyAlign2:"RIGHT",args1:[{type:"input_statement",name:"SUBSTACK"}],args2:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_forever.svg",width:10,height:10,alt:"*",flip_rtl:!0}],inputsInline:!0,previousStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_repeat={init:function(){this.jsonInit({id:"control_repeat",message0:"repeat %1",message1:"%1",message2:"%1",lastDummyAlign2:"RIGHT",args0:[{type:"input_value",name:"TIMES"}],args1:[{type:"input_statement",name:"SUBSTACK"}],args2:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_forever.svg",width:10,height:10,alt:"*",flip_rtl:!0}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,
colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_if={init:function(){this.jsonInit({type:"control_if",message0:"if %1 then",message1:"%1",args0:[{type:"input_value",name:"CONDITION",check:"Boolean"}],args1:[{type:"input_statement",name:"SUBSTACK"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_if_else={init:function(){this.jsonInit({type:"control_if_else",message0:"if %1 then",message1:"%1",message2:"else",message3:"%1",args0:[{type:"input_value",name:"CONDITION",check:"Boolean"}],args1:[{type:"input_statement",name:"SUBSTACK"}],args3:[{type:"input_statement",name:"SUBSTACK2"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_stop={init:function(){var a=new Blockly.FieldDropdown(function(){return this.sourceBlock_&&this.sourceBlock_.nextConnection&&this.sourceBlock_.nextConnection.isConnected()?[["other scripts in sprite","other scripts in sprite"]]:[["all","all"],["this script","this script"],["other scripts in sprite","other scripts in sprite"]]},function(a){this.sourceBlock_.setNextStatement("other scripts in sprite"==a)});this.appendDummyInput().appendField("stop").appendField(a,"STOP_OPTION");
this.setColour(Blockly.Colours.control.primary,Blockly.Colours.control.secondary,Blockly.Colours.control.tertiary);this.setPreviousStatement(!0)},mutationToDom:function(){var a=document.createElement("mutation"),b="other scripts in sprite"==this.getFieldValue("STOP_OPTION");a.setAttribute("hasnext",b);return a},domToMutation:function(a){a="true"==a.getAttribute("hasnext");this.setNextStatement(a)}};
Blockly.Blocks.control_wait={init:function(){this.jsonInit({id:"control_wait",message0:"wait %1 secs",args0:[{type:"input_value",name:"DURATION"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_wait_until={init:function(){this.jsonInit({message0:"wait until %1",args0:[{type:"input_value",name:"CONDITION",check:"Boolean"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_repeat_until={init:function(){this.jsonInit({message0:"repeat until %1",message1:"%1",message2:"%1",lastDummyAlign2:"RIGHT",args0:[{type:"input_value",name:"CONDITION",check:"Boolean"}],args1:[{type:"input_statement",name:"SUBSTACK"}],args2:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_forever.svg",width:10,height:10,alt:"*",flip_rtl:!0}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,
colourTertiary:Blockly.Colours.control.tertiary})}};Blockly.Blocks.control_start_as_clone={init:function(){this.jsonInit({id:"control_start_as_clone",message0:"when I start as a clone",args0:[],inputsInline:!0,nextStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
this.setCategory(Blockly.Categories.control);this.setColour(Blockly.Colours.control.primary,Blockly.Colours.control.secondary,Blockly.Colours.control.tertiary);this.setPreviousStatement(!0)},mutationToDom:function(){var a=document.createElement("mutation"),b="other scripts in sprite"==this.getFieldValue("STOP_OPTION");a.setAttribute("hasnext",b);return a},domToMutation:function(a){a="true"==a.getAttribute("hasnext");this.setNextStatement(a)}};
Blockly.Blocks.control_wait={init:function(){this.jsonInit({id:"control_wait",message0:"wait %1 secs",args0:[{type:"input_value",name:"DURATION"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_wait_until={init:function(){this.jsonInit({message0:"wait until %1",args0:[{type:"input_value",name:"CONDITION",check:"Boolean"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_repeat_until={init:function(){this.jsonInit({message0:"repeat until %1",message1:"%1",message2:"%1",lastDummyAlign2:"RIGHT",args0:[{type:"input_value",name:"CONDITION",check:"Boolean"}],args1:[{type:"input_statement",name:"SUBSTACK"}],args2:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/control_forever.svg",width:10,height:10,alt:"*",flip_rtl:!0}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,
colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};Blockly.Blocks.control_start_as_clone={init:function(){this.jsonInit({id:"control_start_as_clone",message0:"when I start as a clone",args0:[],inputsInline:!0,nextStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_create_clone_of_menu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"CLONE_OPTION",options:[["myself","_myself_"]]}],inputsInline:!0,output:"String",outputShape:Blockly.OUTPUT_SHAPE_ROUND,colour:Blockly.Colours.control.secondary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_create_clone_of={init:function(){this.jsonInit({id:"control_start_as_clone",message0:"create clone of %1",args0:[{type:"input_value",name:"CLONE_OPTION"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_delete_this_clone={init:function(){this.jsonInit({message0:"delete this clone",args0:[],inputsInline:!0,previousStatement:null,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_create_clone_of={init:function(){this.jsonInit({id:"control_start_as_clone",message0:"create clone of %1",args0:[{type:"input_value",name:"CLONE_OPTION"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
Blockly.Blocks.control_delete_this_clone={init:function(){this.jsonInit({message0:"delete this clone",args0:[],inputsInline:!0,previousStatement:null,category:Blockly.Categories.control,colour:Blockly.Colours.control.primary,colourSecondary:Blockly.Colours.control.secondary,colourTertiary:Blockly.Colours.control.tertiary})}};
// Copyright 2016 Google Inc. Apache License 2.0
Blockly.constants={};Blockly.DRAG_RADIUS=5;Blockly.SNAP_RADIUS=72;Blockly.CONNECTING_SNAP_RADIUS=132;Blockly.CURRENT_CONNECTION_PREFERENCE=20;Blockly.BUMP_DELAY=0;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"};Blockly.SVG_NS="http://www.w3.org/2000/svg";Blockly.HTML_NS="http://www.w3.org/1999/xhtml";Blockly.INPUT_VALUE=1;Blockly.OUTPUT_VALUE=2;Blockly.NEXT_STATEMENT=3;
Blockly.constants={};Blockly.DRAG_RADIUS=3;Blockly.SNAP_RADIUS=48;Blockly.CONNECTING_SNAP_RADIUS=96;Blockly.CURRENT_CONNECTION_PREFERENCE=20;Blockly.BUMP_DELAY=0;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"};Blockly.SVG_NS="http://www.w3.org/2000/svg";Blockly.HTML_NS="http://www.w3.org/1999/xhtml";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.OUTPUT_SHAPE_HEXAGONAL=1;Blockly.OUTPUT_SHAPE_ROUND=2;Blockly.OUTPUT_SHAPE_SQUARE=3;Blockly.Blocks.data={};Blockly.Blocks.data_variablemenu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_variable",name:"VARIABLE"}],inputsInline:!0,output:"String",colour:Blockly.Colours.data.secondary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.data_variable={init:function(){this.jsonInit({message0:"%1",args0:[{type:"input_value",name:"VARIABLE"}],colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary,output:"String",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.data_setvariableto={init:function(){this.jsonInit({message0:"set %1 to %2",args0:[{type:"input_value",name:"VARIABLE"},{type:"input_value",name:"VALUE"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_changevariableby={init:function(){this.jsonInit({message0:"change %1 by %2",args0:[{type:"input_value",name:"VARIABLE"},{type:"input_value",name:"VALUE"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_showvariable={init:function(){this.jsonInit({message0:"show variable %1",args0:[{type:"input_value",name:"VARIABLE"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_hidevariable={init:function(){this.jsonInit({message0:"hide variable %1",args0:[{type:"input_value",name:"VARIABLE"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_list={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_variable",name:"LIST"}],colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary,output:"String",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.data_addtolist={init:function(){this.jsonInit({message0:"add %1 to %2",args0:[{type:"input_value",name:"ITEM"},{type:"field_variable",name:"LIST"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_deleteoflist={init:function(){this.jsonInit({message0:"delete %1 of %2",args0:[{type:"input_value",name:"INDEX"},{type:"field_variable",name:"LIST"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_insertatlist={init:function(){this.jsonInit({message0:"insert %1 at %2 of %3",args0:[{type:"input_value",name:"ITEM"},{type:"input_value",name:"INDEX"},{type:"field_variable",name:"LIST"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_replaceitemoflist={init:function(){this.jsonInit({message0:"replace item %1 of %2 with %3",args0:[{type:"input_value",name:"INDEX"},{type:"field_variable",name:"LIST"},{type:"input_value",name:"ITEM"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_itemoflist={init:function(){this.jsonInit({message0:"item %1 of %2",args0:[{type:"input_value",name:"INDEX"},{type:"field_variable",name:"LIST"}],output:null,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.data_lengthoflist={init:function(){this.jsonInit({message0:"length of %1",args0:[{type:"field_variable",name:"LIST"}],output:"Number",colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.data_listcontainsitem={init:function(){this.jsonInit({message0:"%1 contains %2?",args0:[{type:"field_variable",name:"LIST"},{type:"input_value",name:"ITEM"}],output:"Boolean",outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_showlist={init:function(){this.jsonInit({message0:"show list %1",args0:[{type:"field_variable",name:"LIST"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_hidelist={init:function(){this.jsonInit({message0:"hide list %1",args0:[{type:"field_variable",name:"LIST"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};Blockly.Blocks.event={};Blockly.Blocks.event_whenflagclicked={init:function(){this.jsonInit({id:"event_whenflagclicked",message0:"when %1 clicked",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_whenflagclicked.svg",width:24,height:24,alt:"flag",flip_rtl:!0}],inputsInline:!0,nextStatement:null,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_whenthisspriteclicked={init:function(){this.jsonInit({message0:"when this sprite clicked",inputsInline:!0,nextStatement:null,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_whenbroadcastreceived={init:function(){this.jsonInit({id:"event_whenbroadcastreceived",message0:"when I receive %1",args0:[{type:"field_dropdown",name:"BROADCAST_OPTION",options:[["message1","message1"],["message2","message2"],["new message","new message"]]}],inputsInline:!0,nextStatement:null,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_whenbackdropswitchesto={init:function(){this.jsonInit({message0:"when backdrop switches to %1",args0:[{type:"field_dropdown",name:"BACKDROP",options:[["backdrop1","BACKDROP1"]]}],inputsInline:!0,nextStatement:null,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_whengreaterthan={init:function(){this.jsonInit({message0:"when %1 > %2",args0:[{type:"field_dropdown",name:"WHENGREATERTHANMENU",options:[["loudness","LOUDNESS"],["timer","TIMER"],["video motion","VIDEOMOTION"]]},{type:"input_value",name:"VALUE"}],inputsInline:!0,nextStatement:null,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.TOOLBOX_AT_TOP=0;Blockly.TOOLBOX_AT_BOTTOM=1;Blockly.TOOLBOX_AT_LEFT=2;Blockly.TOOLBOX_AT_RIGHT=3;Blockly.OUTPUT_SHAPE_HEXAGONAL=1;Blockly.OUTPUT_SHAPE_ROUND=2;Blockly.OUTPUT_SHAPE_SQUARE=3;Blockly.STACK_GLOW_RADIUS=1.3;Blockly.REPLACEMENT_GLOW_RADIUS=2;Blockly.Categories={motion:"motion",looks:"looks",sound:"sounds",pen:"pen",data:"data",event:"events",control:"control",sensing:"sensing",operators:"operators",more:"more"};Blockly.Blocks.data={};Blockly.Blocks.data_variablemenu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_variable",name:"VARIABLE"}],inputsInline:!0,output:"String",colour:Blockly.Colours.data.secondary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.data_variable={init:function(){this.jsonInit({message0:"%1",args0:[{type:"input_value",name:"VARIABLE"}],category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary,output:"String",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.data_setvariableto={init:function(){this.jsonInit({message0:"set %1 to %2",args0:[{type:"input_value",name:"VARIABLE"},{type:"input_value",name:"VALUE"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_changevariableby={init:function(){this.jsonInit({message0:"change %1 by %2",args0:[{type:"input_value",name:"VARIABLE"},{type:"input_value",name:"VALUE"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_showvariable={init:function(){this.jsonInit({message0:"show variable %1",args0:[{type:"input_value",name:"VARIABLE"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_hidevariable={init:function(){this.jsonInit({message0:"hide variable %1",args0:[{type:"input_value",name:"VARIABLE"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_listcontents={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_variable",name:"LIST"}],category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary,output:"String",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.data_addtolist={init:function(){this.jsonInit({message0:"add %1 to %2",args0:[{type:"input_value",name:"ITEM"},{type:"field_variable",name:"LIST"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_deleteoflist={init:function(){this.jsonInit({message0:"delete %1 of %2",args0:[{type:"input_value",name:"INDEX"},{type:"field_variable",name:"LIST"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_insertatlist={init:function(){this.jsonInit({message0:"insert %1 at %2 of %3",args0:[{type:"input_value",name:"ITEM"},{type:"input_value",name:"INDEX"},{type:"field_variable",name:"LIST"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_replaceitemoflist={init:function(){this.jsonInit({message0:"replace item %1 of %2 with %3",args0:[{type:"input_value",name:"INDEX"},{type:"field_variable",name:"LIST"},{type:"input_value",name:"ITEM"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_itemoflist={init:function(){this.jsonInit({message0:"item %1 of %2",args0:[{type:"input_value",name:"INDEX"},{type:"field_variable",name:"LIST"}],output:null,category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.data_lengthoflist={init:function(){this.jsonInit({message0:"length of %1",args0:[{type:"field_variable",name:"LIST"}],output:"Number",category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.data_listcontainsitem={init:function(){this.jsonInit({message0:"%1 contains %2?",args0:[{type:"field_variable",name:"LIST"},{type:"input_value",name:"ITEM"}],output:"Boolean",outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL,category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_showlist={init:function(){this.jsonInit({message0:"show list %1",args0:[{type:"field_variable",name:"LIST"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};
Blockly.Blocks.data_hidelist={init:function(){this.jsonInit({message0:"hide list %1",args0:[{type:"field_variable",name:"LIST"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.data,colour:Blockly.Colours.data.primary,colourSecondary:Blockly.Colours.data.secondary,colourTertiary:Blockly.Colours.data.tertiary})}};Blockly.Blocks.event={};Blockly.Blocks.event_whenflagclicked={init:function(){this.jsonInit({id:"event_whenflagclicked",message0:"when %1 clicked",args0:[{type:"field_image",src:Blockly.mainWorkspace.options.pathToMedia+"icons/event_whenflagclicked.svg",width:24,height:24,alt:"flag",flip_rtl:!0}],inputsInline:!0,nextStatement:null,category:Blockly.Categories.event,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_whenthisspriteclicked={init:function(){this.jsonInit({message0:"when this sprite clicked",inputsInline:!0,nextStatement:null,category:Blockly.Categories.event,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_whenbroadcastreceived={init:function(){this.jsonInit({id:"event_whenbroadcastreceived",message0:"when I receive %1",args0:[{type:"field_dropdown",name:"BROADCAST_OPTION",options:[["message1","message1"],["message2","message2"],["new message","new message"]]}],inputsInline:!0,nextStatement:null,category:Blockly.Categories.event,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_whenbackdropswitchesto={init:function(){this.jsonInit({message0:"when backdrop switches to %1",args0:[{type:"field_dropdown",name:"BACKDROP",options:[["backdrop1","BACKDROP1"]]}],inputsInline:!0,nextStatement:null,category:Blockly.Categories.event,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_whengreaterthan={init:function(){this.jsonInit({message0:"when %1 > %2",args0:[{type:"field_dropdown",name:"WHENGREATERTHANMENU",options:[["loudness","LOUDNESS"],["timer","TIMER"],["video motion","VIDEOMOTION"]]},{type:"input_value",name:"VALUE"}],inputsInline:!0,nextStatement:null,category:Blockly.Categories.event,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_broadcast_menu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"BROADCAST_OPTION",options:[["message1","message1"],["message2","message2"],["new message","new message"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.event.secondary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.event_broadcast={init:function(){this.jsonInit({id:"event_broadcast",message0:"broadcast %1",args0:[{type:"input_value",name:"BROADCAST_OPTION"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_broadcastandwait={init:function(){this.jsonInit({message0:"broadcast %1 and wait",args0:[{type:"input_value",name:"BROADCAST_OPTION"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_broadcast={init:function(){this.jsonInit({id:"event_broadcast",message0:"broadcast %1",args0:[{type:"input_value",name:"BROADCAST_OPTION"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.event,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_broadcastandwait={init:function(){this.jsonInit({message0:"broadcast %1 and wait",args0:[{type:"input_value",name:"BROADCAST_OPTION"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.event,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};
Blockly.Blocks.event_whenkeypressed={init:function(){this.jsonInit({id:"event_whenkeypressed",message0:"when %1 key pressed",args0:[{type:"field_dropdown",name:"KEY_OPTION",options:[["space","space"],["left arrow","left arrow"],["right arrow","right arrow"],["down arrow","down arrow"],["up arrow","up arrow"],["any","any"],["a","a"],["b","b"],["c","c"],["d","d"],["e","e"],["f","f"],["g","g"],["h","h"],["i","i"],["j","j"],["k","k"],["l","l"],["m","m"],["n","n"],["o","o"],["p","p"],["q","q"],["r","r"],
["s","s"],["t","t"],["u","u"],["v","v"],["w","w"],["x","x"],["y","y"],["z","z"],["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]]}],inputsInline:!0,nextStatement:null,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};Blockly.Blocks.looks={};Blockly.Blocks.looks_sayforsecs={init:function(){this.jsonInit({message0:"say %1 for %2 secs",args0:[{type:"input_value",name:"MESSAGE"},{type:"input_value",name:"SECS"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_say={init:function(){this.jsonInit({message0:"say %1",args0:[{type:"input_value",name:"MESSAGE"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_thinkforsecs={init:function(){this.jsonInit({message0:"think %1 for %2 secs",args0:[{type:"input_value",name:"MESSAGE"},{type:"input_value",name:"SECS"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_think={init:function(){this.jsonInit({message0:"think %1",args0:[{type:"input_value",name:"MESSAGE"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_show={init:function(){this.jsonInit({message0:"show",previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};Blockly.Blocks.looks_hide={init:function(){this.jsonInit({message0:"hide",previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
["s","s"],["t","t"],["u","u"],["v","v"],["w","w"],["x","x"],["y","y"],["z","z"],["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]]}],inputsInline:!0,nextStatement:null,category:Blockly.Categories.event,colour:Blockly.Colours.event.primary,colourSecondary:Blockly.Colours.event.secondary,colourTertiary:Blockly.Colours.event.tertiary})}};Blockly.Blocks.looks={};Blockly.Blocks.looks_sayforsecs={init:function(){this.jsonInit({message0:"say %1 for %2 secs",args0:[{type:"input_value",name:"MESSAGE"},{type:"input_value",name:"SECS"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_say={init:function(){this.jsonInit({message0:"say %1",args0:[{type:"input_value",name:"MESSAGE"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_thinkforsecs={init:function(){this.jsonInit({message0:"think %1 for %2 secs",args0:[{type:"input_value",name:"MESSAGE"},{type:"input_value",name:"SECS"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_think={init:function(){this.jsonInit({message0:"think %1",args0:[{type:"input_value",name:"MESSAGE"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_show={init:function(){this.jsonInit({message0:"show",previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_hide={init:function(){this.jsonInit({message0:"hide",previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_effectmenu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"EFFECT",options:[["color","COLOR"],["fisheye","FISHEYE"],["whirl","WHIRL"],["pixelate","PIXELATE"],["mosaic","MOSAIC"],["brightness","BRIGHTNESS"],["ghost","GHOST"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.looks.secondary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.looks_changeeffectby={init:function(){this.jsonInit({message0:"change effect %1 by %2",args0:[{type:"input_value",name:"EFFECT"},{type:"input_value",name:"CHANGE"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_seteffectto={init:function(){this.jsonInit({message0:"set effect %1 to %2",args0:[{type:"input_value",name:"EFFECT"},{type:"input_value",name:"VALUE"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_cleargraphiceffects={init:function(){this.jsonInit({message0:"clear graphic effects",previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_changesizeby={init:function(){this.jsonInit({message0:"change size by %1",args0:[{type:"input_value",name:"CHANGE"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_setsizeto={init:function(){this.jsonInit({message0:"set size to %1 %",args0:[{type:"input_value",name:"SIZE"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_size={init:function(){this.jsonInit({message0:"size",colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.looks_changeeffectby={init:function(){this.jsonInit({message0:"change effect %1 by %2",args0:[{type:"input_value",name:"EFFECT"},{type:"input_value",name:"CHANGE"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_seteffectto={init:function(){this.jsonInit({message0:"set effect %1 to %2",args0:[{type:"input_value",name:"EFFECT"},{type:"input_value",name:"VALUE"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_cleargraphiceffects={init:function(){this.jsonInit({message0:"clear graphic effects",previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_changesizeby={init:function(){this.jsonInit({message0:"change size by %1",args0:[{type:"input_value",name:"CHANGE"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_setsizeto={init:function(){this.jsonInit({message0:"set size to %1 %",args0:[{type:"input_value",name:"SIZE"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_size={init:function(){this.jsonInit({message0:"size",category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.looks_costume={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"COSTUME",options:[["costume1","COSTUME1"],["costume2","COSTUME2"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.looks.secondary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.looks_switchcostumeto={init:function(){this.jsonInit({message0:"switch costume to %1",args0:[{type:"input_value",name:"COSTUME"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_nextcostume={init:function(){this.jsonInit({message0:"next costume",previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_switchbackdropto={init:function(){this.jsonInit({message0:"switch backdrop to %1",args0:[{type:"input_value",name:"BACKDROP"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_switchcostumeto={init:function(){this.jsonInit({message0:"switch costume to %1",args0:[{type:"input_value",name:"COSTUME"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_nextcostume={init:function(){this.jsonInit({message0:"next costume",previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_switchbackdropto={init:function(){this.jsonInit({message0:"switch backdrop to %1",args0:[{type:"input_value",name:"BACKDROP"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_backdrops={init:function(){this.jsonInit({id:"looks_backdrops",message0:"%1",args0:[{type:"field_dropdown",name:"BACKDROP",options:[["backdrop1","BACKDROP1"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.looks.secondary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.looks_gotofront={init:function(){this.jsonInit({message0:"go to front",previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_gobacklayers={init:function(){this.jsonInit({message0:"go back %1 layers",args0:[{type:"input_value",name:"NUM"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_backdropname={init:function(){this.jsonInit({message0:"backdrop name",colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.looks_costumeorder={init:function(){this.jsonInit({message0:"costume #",colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.looks_backdroporder={init:function(){this.jsonInit({message0:"backdrop #",colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.looks_switchbackdroptoandwait={init:function(){this.jsonInit({message0:"switch backdrop to %1 and wait",args0:[{type:"input_value",name:"BACKDROP"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_nextbackdrop={init:function(){this.jsonInit({message0:"next backdrop",previousStatement:null,nextStatement:null,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
// Copyright 2012 Google Inc. Apache License 2.0
Blockly.Blocks.procedures={};
Blockly.Blocks.procedures_defnoreturn={init:function(){var a=new Blockly.FieldTextInput(Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE,Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);this.setTooltip(Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP);
this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL);this.arguments_=[];this.setNextStatement(!0)},updateParams_:function(){for(var a=!1,b={},c=0;c<this.arguments_.length;c++){if(b["arg_"+this.arguments_[c].toLowerCase()]){a=!0;break}b["arg_"+this.arguments_[c].toLowerCase()]=!0}a?this.setWarningText(Blockly.Msg.PROCEDURES_DEF_DUPLICATE_WARNING):this.setWarningText(null);a="";this.arguments_.length&&(a=Blockly.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", "));Blockly.Events.disable();
try{this.setFieldValue(a,"PARAMS")}finally{Blockly.Events.enable()}},mutationToDom:function(a){var b=document.createElement("mutation");a&&b.setAttribute("name",this.getFieldValue("NAME"));for(var c=0;c<this.arguments_.length;c++){var d=document.createElement("arg");d.setAttribute("name",this.arguments_[c]);a&&this.paramIds_&&d.setAttribute("paramId",this.paramIds_[c]);b.appendChild(d)}return b},domToMutation:function(a){this.arguments_=[];for(var b=0,c;c=a.childNodes[b];b++)"arg"==c.nodeName.toLowerCase()&&
this.arguments_.push(c.getAttribute("name"));this.updateParams_();Blockly.Procedures.mutateCallers(this)},decompose:function(a){var b=a.newBlock("procedures_mutatorcontainer");b.initSvg();for(var c=b.getInput("STACK").connection,d=0;d<this.arguments_.length;d++){var e=a.newBlock("procedures_mutatorarg");e.initSvg();e.setFieldValue(this.arguments_[d],"NAME");e.oldLocation=d;c.connect(e.previousConnection);c=e.nextConnection}Blockly.Procedures.mutateCallers(this);return b},compose:function(a){this.arguments_=
[];this.paramIds_=[];for(a=a.getInputTargetBlock("STACK");a;)this.arguments_.push(a.getFieldValue("NAME")),this.paramIds_.push(a.id),a=a.nextConnection&&a.nextConnection.targetBlock();this.updateParams_();Blockly.Procedures.mutateCallers(this);Blockly.Mutator.reconnect(this.statementConnection_,this,"STACK");this.statementConnection_=null},getProcedureDef:function(){return[this.getFieldValue("NAME"),this.arguments_,!1]},getVars:function(){return this.arguments_},renameVar:function(a,b){for(var c=
!1,d=0;d<this.arguments_.length;d++)Blockly.Names.equals(a,this.arguments_[d])&&(this.arguments_[d]=b,c=!0);if(c&&(this.updateParams_(),this.mutator.isVisible()))for(var c=this.mutator.workspace_.getAllBlocks(),d=0,e;e=c[d];d++)"procedures_mutatorarg"==e.type&&Blockly.Names.equals(a,e.getFieldValue("NAME"))&&e.setFieldValue(b,"NAME")},customContextMenu:function(a){var b={enabled:!0},c=this.getFieldValue("NAME");b.text=Blockly.Msg.PROCEDURES_CREATE_DO.replace("%1",c);var d=goog.dom.createDom("mutation");
d.setAttribute("name",c);for(var e=0;e<this.arguments_.length;e++)c=goog.dom.createDom("arg"),c.setAttribute("name",this.arguments_[e]),d.appendChild(c);d=goog.dom.createDom("block",null,d);d.setAttribute("type",this.callType_);b.callback=Blockly.ContextMenu.callbackFactory(this,d);a.push(b);if(!this.isCollapsed())for(e=0;e<this.arguments_.length;e++)b={enabled:!0},c=this.arguments_[e],b.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",c),d=goog.dom.createDom("field",null,c),d.setAttribute("name",
"VAR"),d=goog.dom.createDom("block",null,d),d.setAttribute("type","variables_get"),b.callback=Blockly.ContextMenu.callbackFactory(this,d),a.push(b)},callType_:"procedures_callnoreturn"};
Blockly.Blocks.procedures_defreturn={init:function(){var a=new Blockly.FieldTextInput(Blockly.Msg.PROCEDURES_DEFRETURN_PROCEDURE,Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFRETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_TOOLTIP);
this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFRETURN_HELPURL);this.arguments_=[];this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO);this.appendValueInput("RETURN").setAlign(Blockly.ALIGN_LEFT).appendField("report");this.statementConnection_=null},updateParams_:Blockly.Blocks.procedures_defnoreturn.updateParams_,mutationToDom:Blockly.Blocks.procedures_defnoreturn.mutationToDom,domToMutation:Blockly.Blocks.procedures_defnoreturn.domToMutation,decompose:Blockly.Blocks.procedures_defnoreturn.decompose,
compose:Blockly.Blocks.procedures_defnoreturn.compose,getProcedureDef:function(){return[this.getFieldValue("NAME"),this.arguments_,!0]},getVars:Blockly.Blocks.procedures_defnoreturn.getVars,renameVar:Blockly.Blocks.procedures_defnoreturn.renameVar,customContextMenu:Blockly.Blocks.procedures_defnoreturn.customContextMenu,callType_:"procedures_callreturn"};
Blockly.Blocks.procedures_mutatorcontainer={init:function(){this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TITLE);this.appendStatementInput("STACK");this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);this.setTooltip(Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.procedures_mutatorarg={init:function(){var a=new Blockly.FieldTextInput("x",this.validator_);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_MUTATORARG_TITLE).appendField(a,"NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);this.setTooltip(Blockly.Msg.PROCEDURES_MUTATORARG_TOOLTIP);this.contextMenu=!1;a.onFinishEditing_=this.createNewVar_;a.onFinishEditing_("x")},
validator_:function(a){return(a=a.replace(/[\s\xa0]+/g," ").replace(/^ | $/g,""))||null},createNewVar_:function(a){var b=this.sourceBlock_;b&&b.workspace&&b.workspace.options&&b.workspace.options.parentWorkspace&&b.workspace.options.parentWorkspace.createVariable(a)}};
Blockly.Blocks.procedures_callnoreturn={init:function(){this.appendDummyInput("TOPROW").appendField(this.id,"NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL);this.arguments_=[];this.quarkConnections_={};this.quarkIds_=null},getProcedureCall:function(){return this.getFieldValue("NAME")},renameProcedure:function(a,b){Blockly.Names.equals(a,
this.getProcedureCall())&&(this.setFieldValue(b,"NAME"),this.setTooltip((this.outputConnection?Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP:Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP).replace("%1",b)))},setProcedureParameters_:function(a,b){var c=Blockly.Procedures.getDefinition(this.getProcedureCall(),this.workspace),d=c&&c.mutator&&c.mutator.isVisible();d||(this.quarkConnections_={},this.quarkIds_=null);if(b)if(goog.array.equals(this.arguments_,a))this.quarkIds_=b;else{if(b.length!=a.length)throw"Error: paramNames and paramIds must be the same length.";
this.setCollapsed(!1);this.quarkIds_||(this.quarkConnections_={},a.join("\n")==this.arguments_.join("\n")?this.quarkIds_=b:this.quarkIds_=[]);c=this.rendered;this.rendered=!1;for(var e=0;e<this.arguments_.length;e++){var f=this.getInput("ARG"+e);f&&(f=f.connection.targetConnection,this.quarkConnections_[this.quarkIds_[e]]=f,d&&f&&-1==b.indexOf(this.quarkIds_[e])&&(f.disconnect(),f.getSourceBlock().bumpNeighbours_()))}this.arguments_=[].concat(a);this.updateShape_();if(this.quarkIds_=b)for(e=0;e<this.arguments_.length;e++)d=
this.quarkIds_[e],d in this.quarkConnections_&&(f=this.quarkConnections_[d],Blockly.Mutator.reconnect(f,this,"ARG"+e)||delete this.quarkConnections_[d]);(this.rendered=c)&&this.render()}},updateShape_:function(){for(var a=0;a<this.arguments_.length;a++){var b=this.getField("ARGNAME"+a);if(b){Blockly.Events.disable();try{b.setValue(this.arguments_[a])}finally{Blockly.Events.enable()}}else b=new Blockly.FieldLabel(this.arguments_[a]),this.appendValueInput("ARG"+a).appendField(b,"ARGNAME"+a).init()}for(;this.getInput("ARG"+
a);)this.removeInput("ARG"+a),a++;if(a=this.getInput("TOPROW"))this.arguments_.length?this.getField("WITH")||(a.appendField(Blockly.Msg.PROCEDURES_CALL_BEFORE_PARAMS,"WITH"),a.init()):this.getField("WITH")&&a.removeField("WITH")},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("name",this.getProcedureCall());for(var b=0;b<this.arguments_.length;b++){var c=document.createElement("arg");c.setAttribute("name",this.arguments_[b]);a.appendChild(c)}return a},domToMutation:function(a){var b=
a.getAttribute("name");this.renameProcedure(this.getProcedureCall(),b);for(var b=[],c=[],d=0,e;e=a.childNodes[d];d++)"arg"==e.nodeName.toLowerCase()&&(b.push(e.getAttribute("name")),c.push(e.getAttribute("paramId")));this.setProcedureParameters_(b,c)},renameVar:function(a,b){for(var c=0;c<this.arguments_.length;c++)Blockly.Names.equals(a,this.arguments_[c])&&(this.arguments_[c]=b,this.getField("ARGNAME"+c).setValue(b))},onchange:function(a){if(this.workspace&&!this.workspace.isFlyout)if(a.type==Blockly.Events.CREATE&&
-1!=a.ids.indexOf(this.id)){var b=this.getProcedureCall(),b=Blockly.Procedures.getDefinition(b,this.workspace);!b||b.type==this.defType_&&JSON.stringify(b.arguments_)==JSON.stringify(this.arguments_)||(b=null);if(!b){Blockly.Events.setGroup(a.group);a=goog.dom.createDom("xml");b=goog.dom.createDom("block");b.setAttribute("type",this.defType_);var c=this.getRelativeToSurfaceXY(),d=c.y+2*Blockly.SNAP_RADIUS;b.setAttribute("x",c.x+Blockly.SNAP_RADIUS*(this.RTL?-1:1));b.setAttribute("y",d);c=this.mutationToDom();
b.appendChild(c);c=goog.dom.createDom("field");c.setAttribute("name","NAME");c.appendChild(document.createTextNode(this.getProcedureCall()));b.appendChild(c);a.appendChild(b);Blockly.Xml.domToWorkspace(a,this.workspace);Blockly.Events.setGroup(!1)}}else a.type==Blockly.Events.DELETE&&(b=this.getProcedureCall(),b=Blockly.Procedures.getDefinition(b,this.workspace),b||(Blockly.Events.setGroup(a.group),this.dispose(!0,!1),Blockly.Events.setGroup(!1)))},customContextMenu:function(a){var b={enabled:!0};
b.text=Blockly.Msg.PROCEDURES_HIGHLIGHT_DEF;var c=this.getProcedureCall(),d=this.workspace;b.callback=function(){var a=Blockly.Procedures.getDefinition(c,d);a&&a.select()};a.push(b)},defType_:"procedures_defnoreturn"};
Blockly.Blocks.procedures_callreturn={init:function(){this.appendDummyInput("TOPROW").appendField("","NAME");this.setOutput(!0);this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND);this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLRETURN_HELPURL);this.arguments_=[];this.quarkConnections_={};this.quarkIds_=null},getProcedureCall:Blockly.Blocks.procedures_callnoreturn.getProcedureCall,renameProcedure:Blockly.Blocks.procedures_callnoreturn.renameProcedure,
setProcedureParameters_:Blockly.Blocks.procedures_callnoreturn.setProcedureParameters_,updateShape_:Blockly.Blocks.procedures_callnoreturn.updateShape_,mutationToDom:Blockly.Blocks.procedures_callnoreturn.mutationToDom,domToMutation:Blockly.Blocks.procedures_callnoreturn.domToMutation,renameVar:Blockly.Blocks.procedures_callnoreturn.renameVar,onchange:Blockly.Blocks.procedures_callnoreturn.onchange,customContextMenu:Blockly.Blocks.procedures_callnoreturn.customContextMenu,defType_:"procedures_defreturn"};
Blockly.Blocks.procedures_report={init:function(){this.appendValueInput("VALUE").appendField("report");this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!1);this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);this.setTooltip(Blockly.Msg.PROCEDURES_IFRETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_IFRETURN_HELPURL);this.hasReturnValue_=!0},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("value",
Number(this.hasReturnValue_));return a},domToMutation:function(a){this.hasReturnValue_=1==a.getAttribute("value");this.hasReturnValue_||(this.removeInput("VALUE"),this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN))},onchange:function(){var a=!1,b=this;do{if(-1!=this.FUNCTION_TYPES.indexOf(b.type)){a=!0;break}b=b.getSurroundParent()}while(b);a?("procedures_defnoreturn"==b.type&&this.hasReturnValue_?(this.removeInput("VALUE"),this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),
this.hasReturnValue_=!1):"procedures_defreturn"!=b.type||this.hasReturnValue_||(this.removeInput("VALUE"),this.appendValueInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),this.hasReturnValue_=!0),this.setWarningText(null)):this.setWarningText(Blockly.Msg.PROCEDURES_IFRETURN_WARNING)},FUNCTION_TYPES:["procedures_defnoreturn","procedures_defreturn"]};Blockly.Blocks.motion={};Blockly.Blocks.motion_movesteps={init:function(){this.jsonInit({message0:"move %1 steps",args0:[{type:"input_value",name:"STEPS"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_turnright={init:function(){this.jsonInit({message0:"turn right %1 degrees",args0:[{type:"input_value",name:"DEGREES"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_turnleft={init:function(){this.jsonInit({message0:"turn left %1 degrees",args0:[{type:"input_value",name:"DEGREES"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_pointindirection={init:function(){this.jsonInit({message0:"point in direction %1",args0:[{type:"input_value",name:"DIRECTION"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.looks_gotofront={init:function(){this.jsonInit({message0:"go to front",previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_gobacklayers={init:function(){this.jsonInit({message0:"go back %1 layers",args0:[{type:"input_value",name:"NUM"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_backdropname={init:function(){this.jsonInit({message0:"backdrop name",category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.looks_costumeorder={init:function(){this.jsonInit({message0:"costume #",category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.looks_backdroporder={init:function(){this.jsonInit({message0:"backdrop #",category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.looks_switchbackdroptoandwait={init:function(){this.jsonInit({message0:"switch backdrop to %1 and wait",args0:[{type:"input_value",name:"BACKDROP"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};
Blockly.Blocks.looks_nextbackdrop={init:function(){this.jsonInit({message0:"next backdrop",previousStatement:null,nextStatement:null,category:Blockly.Categories.looks,colour:Blockly.Colours.looks.primary,colourSecondary:Blockly.Colours.looks.secondary,colourTertiary:Blockly.Colours.looks.tertiary})}};Blockly.Blocks.motion={};Blockly.Blocks.motion_movesteps={init:function(){this.jsonInit({message0:"move %1 steps",args0:[{type:"input_value",name:"STEPS"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_turnright={init:function(){this.jsonInit({message0:"turn right %1 degrees",args0:[{type:"input_value",name:"DEGREES"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_turnleft={init:function(){this.jsonInit({message0:"turn left %1 degrees",args0:[{type:"input_value",name:"DEGREES"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_pointindirection={init:function(){this.jsonInit({message0:"point in direction %1",args0:[{type:"input_value",name:"DIRECTION"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_pointtowards_menu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"TOWARDS",options:[["mouse-pointer","_mouse_"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.motion.secondary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.motion_pointtowards={init:function(){this.jsonInit({message0:"point towards %1",args0:[{type:"input_value",name:"TOWARDS"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_pointtowards={init:function(){this.jsonInit({message0:"point towards %1",args0:[{type:"input_value",name:"TOWARDS"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_goto_menu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"TO",options:[["mouse-pointer","_mouse_"],["random position","_random_"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.motion.secondary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.motion_gotoxy={init:function(){this.jsonInit({message0:"go to x: %1 y: %2",args0:[{type:"input_value",name:"X"},{type:"input_value",name:"Y"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_goto={init:function(){this.jsonInit({message0:"go to %1",args0:[{type:"input_value",name:"TO"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_glidesecstoxy={init:function(){this.jsonInit({message0:"glide %1 secs to x: %2 y: %3",args0:[{type:"input_value",name:"SECS"},{type:"input_value",name:"X"},{type:"input_value",name:"Y"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_changexby={init:function(){this.jsonInit({message0:"change x by %1",args0:[{type:"input_value",name:"DX"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_setx={init:function(){this.jsonInit({message0:"set x to %1",args0:[{type:"input_value",name:"X"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_changeyby={init:function(){this.jsonInit({message0:"change y by %1",args0:[{type:"input_value",name:"DY"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_sety={init:function(){this.jsonInit({message0:"set y to %1",args0:[{type:"input_value",name:"Y"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_ifonedgebounce={init:function(){this.jsonInit({message0:"if on edge, bounce",previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_gotoxy={init:function(){this.jsonInit({message0:"go to x: %1 y: %2",args0:[{type:"input_value",name:"X"},{type:"input_value",name:"Y"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_goto={init:function(){this.jsonInit({message0:"go to %1",args0:[{type:"input_value",name:"TO"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_glidesecstoxy={init:function(){this.jsonInit({message0:"glide %1 secs to x: %2 y: %3",args0:[{type:"input_value",name:"SECS"},{type:"input_value",name:"X"},{type:"input_value",name:"Y"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_changexby={init:function(){this.jsonInit({message0:"change x by %1",args0:[{type:"input_value",name:"DX"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_setx={init:function(){this.jsonInit({message0:"set x to %1",args0:[{type:"input_value",name:"X"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_changeyby={init:function(){this.jsonInit({message0:"change y by %1",args0:[{type:"input_value",name:"DY"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_sety={init:function(){this.jsonInit({message0:"set y to %1",args0:[{type:"input_value",name:"Y"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_ifonedgebounce={init:function(){this.jsonInit({message0:"if on edge, bounce",previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_setrotationstyle_menu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"STYLE",options:[["left-right","LEFT-RIGHT"],["don't rotate","NONE"],["all around","ALL"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.motion.secondary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.motion_setrotationstyle={init:function(){this.jsonInit({message0:"set rotation style %1",args0:[{type:"input_value",name:"STYLE"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_xposition={init:function(){this.jsonInit({message0:"x position",output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary,checkboxInFlyout:!0})}};
Blockly.Blocks.motion_yposition={init:function(){this.jsonInit({message0:"y position",output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary,checkboxInFlyout:!0})}};
Blockly.Blocks.motion_direction={init:function(){this.jsonInit({message0:"direction",output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary,checkboxInFlyout:!0})}};Blockly.Blocks.operators={};Blockly.Blocks.operator_add={init:function(){this.jsonInit({message0:"%1 + %2",args0:[{type:"input_value",name:"NUM1"},{type:"input_value",name:"NUM2"}],inputsInline:!0,output:"Number",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_subtract={init:function(){this.jsonInit({message0:"%1 - %2",args0:[{type:"input_value",name:"NUM1"},{type:"input_value",name:"NUM2"}],inputsInline:!0,output:"Number",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_multiply={init:function(){this.jsonInit({message0:"%1 * %2",args0:[{type:"input_value",name:"NUM1"},{type:"input_value",name:"NUM2"}],inputsInline:!0,output:"Number",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_divide={init:function(){this.jsonInit({message0:"%1 / %2",args0:[{type:"input_value",name:"NUM1"},{type:"input_value",name:"NUM2"}],inputsInline:!0,output:"Number",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_random={init:function(){this.jsonInit({message0:"pick random %1 to %2",args0:[{type:"input_value",name:"FROM"},{type:"input_value",name:"TO"}],inputsInline:!0,output:"Number",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_lt={init:function(){this.jsonInit({message0:"%1 < %2",args0:[{type:"input_value",name:"OPERAND1"},{type:"input_value",name:"OPERAND2"}],inputsInline:!0,output:"Boolean",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.operator_equals={init:function(){this.jsonInit({message0:"%1 = %2",args0:[{type:"input_value",name:"OPERAND1"},{type:"input_value",name:"OPERAND2"}],inputsInline:!0,output:"Boolean",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.operator_gt={init:function(){this.jsonInit({message0:"%1 > %2",args0:[{type:"input_value",name:"OPERAND1"},{type:"input_value",name:"OPERAND2"}],inputsInline:!0,output:"Boolean",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.operator_and={init:function(){this.jsonInit({message0:"%1 and %2",args0:[{type:"input_value",name:"OPERAND1",check:"Boolean"},{type:"input_value",name:"OPERAND2",check:"Boolean"}],inputsInline:!0,output:"Boolean",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.operator_or={init:function(){this.jsonInit({message0:"%1 or %2",args0:[{type:"input_value",name:"OPERAND1",check:"Boolean"},{type:"input_value",name:"OPERAND2",check:"Boolean"}],inputsInline:!0,output:"Boolean",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.operator_not={init:function(){this.jsonInit({message0:"not %1",args0:[{type:"input_value",name:"OPERAND",check:"Boolean"}],inputsInline:!0,output:"Boolean",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.operator_join={init:function(){this.jsonInit({message0:"join %1 %2",args0:[{type:"input_value",name:"STRING1"},{type:"input_value",name:"STRING2"}],inputsInline:!0,output:"String",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_letter_of={init:function(){this.jsonInit({message0:"letter %1 of %2",args0:[{type:"input_value",name:"LETTER"},{type:"input_value",name:"STRING"}],inputsInline:!0,output:"String",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_length={init:function(){this.jsonInit({message0:"length of %1",args0:[{type:"input_value",name:"STRING"}],inputsInline:!0,output:"Number",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_mod={init:function(){this.jsonInit({message0:"%1 mod %2",args0:[{type:"input_value",name:"NUM1"},{type:"input_value",name:"NUM2"}],inputsInline:!0,output:"Number",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_round={init:function(){this.jsonInit({message0:"round %1",args0:[{type:"input_value",name:"NUM"}],inputsInline:!0,output:"Number",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.motion_setrotationstyle={init:function(){this.jsonInit({message0:"set rotation style %1",args0:[{type:"input_value",name:"STYLE"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary})}};
Blockly.Blocks.motion_xposition={init:function(){this.jsonInit({message0:"x position",output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary,checkboxInFlyout:!0})}};
Blockly.Blocks.motion_yposition={init:function(){this.jsonInit({message0:"y position",output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary,checkboxInFlyout:!0})}};
Blockly.Blocks.motion_direction={init:function(){this.jsonInit({message0:"direction",output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,category:Blockly.Categories.motion,colour:Blockly.Colours.motion.primary,colourSecondary:Blockly.Colours.motion.secondary,colourTertiary:Blockly.Colours.motion.tertiary,checkboxInFlyout:!0})}};
// Copyright 2012 Google Inc. Apache License 2.0
Blockly.Blocks.operators={};Blockly.Blocks.operator_add={init:function(){this.jsonInit({message0:"%1 + %2",args0:[{type:"input_value",name:"NUM1"},{type:"input_value",name:"NUM2"}],inputsInline:!0,output:"Number",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_subtract={init:function(){this.jsonInit({message0:"%1 - %2",args0:[{type:"input_value",name:"NUM1"},{type:"input_value",name:"NUM2"}],inputsInline:!0,output:"Number",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_multiply={init:function(){this.jsonInit({message0:"%1 * %2",args0:[{type:"input_value",name:"NUM1"},{type:"input_value",name:"NUM2"}],inputsInline:!0,output:"Number",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_divide={init:function(){this.jsonInit({message0:"%1 / %2",args0:[{type:"input_value",name:"NUM1"},{type:"input_value",name:"NUM2"}],inputsInline:!0,output:"Number",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_random={init:function(){this.jsonInit({message0:"pick random %1 to %2",args0:[{type:"input_value",name:"FROM"},{type:"input_value",name:"TO"}],inputsInline:!0,output:"Number",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_lt={init:function(){this.jsonInit({message0:"%1 < %2",args0:[{type:"input_value",name:"OPERAND1"},{type:"input_value",name:"OPERAND2"}],inputsInline:!0,output:"Boolean",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.operator_equals={init:function(){this.jsonInit({message0:"%1 = %2",args0:[{type:"input_value",name:"OPERAND1"},{type:"input_value",name:"OPERAND2"}],inputsInline:!0,output:"Boolean",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.operator_gt={init:function(){this.jsonInit({message0:"%1 > %2",args0:[{type:"input_value",name:"OPERAND1"},{type:"input_value",name:"OPERAND2"}],inputsInline:!0,output:"Boolean",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.operator_and={init:function(){this.jsonInit({message0:"%1 and %2",args0:[{type:"input_value",name:"OPERAND1",check:"Boolean"},{type:"input_value",name:"OPERAND2",check:"Boolean"}],inputsInline:!0,output:"Boolean",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.operator_or={init:function(){this.jsonInit({message0:"%1 or %2",args0:[{type:"input_value",name:"OPERAND1",check:"Boolean"},{type:"input_value",name:"OPERAND2",check:"Boolean"}],inputsInline:!0,output:"Boolean",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.operator_not={init:function(){this.jsonInit({message0:"not %1",args0:[{type:"input_value",name:"OPERAND",check:"Boolean"}],inputsInline:!0,output:"Boolean",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.operator_join={init:function(){this.jsonInit({message0:"join %1 %2",args0:[{type:"input_value",name:"STRING1"},{type:"input_value",name:"STRING2"}],inputsInline:!0,output:"String",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_letter_of={init:function(){this.jsonInit({message0:"letter %1 of %2",args0:[{type:"input_value",name:"LETTER"},{type:"input_value",name:"STRING"}],inputsInline:!0,output:"String",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_length={init:function(){this.jsonInit({message0:"length of %1",args0:[{type:"input_value",name:"STRING"}],inputsInline:!0,output:"Number",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_mod={init:function(){this.jsonInit({message0:"%1 mod %2",args0:[{type:"input_value",name:"NUM1"},{type:"input_value",name:"NUM2"}],inputsInline:!0,output:"Number",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_round={init:function(){this.jsonInit({message0:"round %1",args0:[{type:"input_value",name:"NUM"}],inputsInline:!0,output:"Number",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.operator_mathop_menu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"OPERATOR",options:[["abs","abs"],["floor","floor"],["ceiling","ceiling"],["sqrt","sqrt"],["sin","sin"],["cos","cos"],["tan","tan"],["asin","asin"],["acos","acos"],["atan","atan"],["ln","ln"],["log","log"],["e ^","e ^"],["10 ^","10 ^"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.operators.secondary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,
outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};Blockly.Blocks.operator_mathop={init:function(){this.jsonInit({message0:"%1 of %2",args0:[{type:"input_value",name:"OPERATOR"},{type:"input_value",name:"NUM"}],inputsInline:!0,output:"Number",colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};Blockly.Blocks.pen={};Blockly.Blocks.pen_clear={init:function(){this.jsonInit({message0:"clear",previousStatement:null,nextStatement:null,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};Blockly.Blocks.pen_stamp={init:function(){this.jsonInit({message0:"stamp",previousStatement:null,nextStatement:null,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_pendown={init:function(){this.jsonInit({message0:"pen down",previousStatement:null,nextStatement:null,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};Blockly.Blocks.pen_penup={init:function(){this.jsonInit({message0:"pen up",previousStatement:null,nextStatement:null,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_setpencolortocolor={init:function(){this.jsonInit({message0:"set pen color to %1",args0:[{type:"input_value",name:"COLOR"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_changepencolorby={init:function(){this.jsonInit({message0:"change pen color by %1",args0:[{type:"input_value",name:"COLOR"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_setpencolortonum={init:function(){this.jsonInit({message0:"set pen color to %1",args0:[{type:"input_value",name:"COLOR"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_changepenshadeby={init:function(){this.jsonInit({message0:"change pen shade by %1",args0:[{type:"input_value",name:"SHADE"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_setpenshadeto={init:function(){this.jsonInit({message0:"set pen shade to %1",args0:[{type:"input_value",name:"SHADE"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_changepensizeby={init:function(){this.jsonInit({message0:"change pen size by %1",args0:[{type:"input_value",name:"SIZE"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_setpensizeto={init:function(){this.jsonInit({message0:"set pen size to %1",args0:[{type:"input_value",name:"SIZE"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};Blockly.Blocks.sensing={};Blockly.Blocks.sensing_touchingobject={init:function(){this.jsonInit({message0:"touching %1?",args0:[{type:"input_value",name:"TOUCHINGOBJECTMENU"}],inputsInline:!0,output:"Boolean",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};Blockly.Blocks.operator_mathop={init:function(){this.jsonInit({message0:"%1 of %2",args0:[{type:"input_value",name:"OPERATOR"},{type:"input_value",name:"NUM"}],inputsInline:!0,output:"Number",category:Blockly.Categories.operators,colour:Blockly.Colours.operators.primary,colourSecondary:Blockly.Colours.operators.secondary,colourTertiary:Blockly.Colours.operators.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};Blockly.Blocks.pen={};Blockly.Blocks.pen_clear={init:function(){this.jsonInit({message0:"clear",previousStatement:null,nextStatement:null,category:Blockly.Categories.pen,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_stamp={init:function(){this.jsonInit({message0:"stamp",previousStatement:null,nextStatement:null,category:Blockly.Categories.pen,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_pendown={init:function(){this.jsonInit({message0:"pen down",previousStatement:null,nextStatement:null,category:Blockly.Categories.pen,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_penup={init:function(){this.jsonInit({message0:"pen up",previousStatement:null,nextStatement:null,category:Blockly.Categories.pen,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_setpencolortocolor={init:function(){this.jsonInit({message0:"set pen color to %1",args0:[{type:"input_value",name:"COLOR"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.pen,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_changepencolorby={init:function(){this.jsonInit({message0:"change pen color by %1",args0:[{type:"input_value",name:"COLOR"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.pen,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_setpencolortonum={init:function(){this.jsonInit({message0:"set pen color to %1",args0:[{type:"input_value",name:"COLOR"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.pen,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_changepenshadeby={init:function(){this.jsonInit({message0:"change pen shade by %1",args0:[{type:"input_value",name:"SHADE"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.pen,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_setpenshadeto={init:function(){this.jsonInit({message0:"set pen shade to %1",args0:[{type:"input_value",name:"SHADE"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.pen,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_changepensizeby={init:function(){this.jsonInit({message0:"change pen size by %1",args0:[{type:"input_value",name:"SIZE"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.pen,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};
Blockly.Blocks.pen_setpensizeto={init:function(){this.jsonInit({message0:"set pen size to %1",args0:[{type:"input_value",name:"SIZE"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.pen,colour:Blockly.Colours.pen.primary,colourSecondary:Blockly.Colours.pen.secondary,colourTertiary:Blockly.Colours.pen.tertiary})}};Blockly.Blocks.procedures={};
Blockly.Blocks.procedures_defnoreturn={init:function(){var a=new Blockly.FieldTextInput(Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE,Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));this.setCategory(Blockly.Categories.more);this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);
this.setTooltip(Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL);this.arguments_=[];this.setNextStatement(!0)},updateParams_:function(){for(var a=!1,b={},c=0;c<this.arguments_.length;c++){if(b["arg_"+this.arguments_[c].toLowerCase()]){a=!0;break}b["arg_"+this.arguments_[c].toLowerCase()]=!0}a?this.setWarningText(Blockly.Msg.PROCEDURES_DEF_DUPLICATE_WARNING):this.setWarningText(null);a="";this.arguments_.length&&(a=Blockly.Msg.PROCEDURES_BEFORE_PARAMS+
" "+this.arguments_.join(", "));Blockly.Events.disable();try{this.setFieldValue(a,"PARAMS")}finally{Blockly.Events.enable()}},mutationToDom:function(a){var b=document.createElement("mutation");a&&b.setAttribute("name",this.getFieldValue("NAME"));for(var c=0;c<this.arguments_.length;c++){var d=document.createElement("arg");d.setAttribute("name",this.arguments_[c]);a&&this.paramIds_&&d.setAttribute("paramId",this.paramIds_[c]);b.appendChild(d)}return b},domToMutation:function(a){this.arguments_=[];
for(var b=0,c;c=a.childNodes[b];b++)"arg"==c.nodeName.toLowerCase()&&this.arguments_.push(c.getAttribute("name"));this.updateParams_();Blockly.Procedures.mutateCallers(this)},decompose:function(a){var b=a.newBlock("procedures_mutatorcontainer");b.initSvg();for(var c=b.getInput("STACK").connection,d=0;d<this.arguments_.length;d++){var e=a.newBlock("procedures_mutatorarg");e.initSvg();e.setFieldValue(this.arguments_[d],"NAME");e.oldLocation=d;c.connect(e.previousConnection);c=e.nextConnection}Blockly.Procedures.mutateCallers(this);
return b},compose:function(a){this.arguments_=[];this.paramIds_=[];for(a=a.getInputTargetBlock("STACK");a;)this.arguments_.push(a.getFieldValue("NAME")),this.paramIds_.push(a.id),a=a.nextConnection&&a.nextConnection.targetBlock();this.updateParams_();Blockly.Procedures.mutateCallers(this);Blockly.Mutator.reconnect(this.statementConnection_,this,"STACK");this.statementConnection_=null},getProcedureDef:function(){return[this.getFieldValue("NAME"),this.arguments_,!1]},getVars:function(){return this.arguments_},
renameVar:function(a,b){for(var c=!1,d=0;d<this.arguments_.length;d++)Blockly.Names.equals(a,this.arguments_[d])&&(this.arguments_[d]=b,c=!0);if(c&&(this.updateParams_(),this.mutator.isVisible()))for(var c=this.mutator.workspace_.getAllBlocks(),d=0,e;e=c[d];d++)"procedures_mutatorarg"==e.type&&Blockly.Names.equals(a,e.getFieldValue("NAME"))&&e.setFieldValue(b,"NAME")},customContextMenu:function(a){var b={enabled:!0},c=this.getFieldValue("NAME");b.text=Blockly.Msg.PROCEDURES_CREATE_DO.replace("%1",
c);var d=goog.dom.createDom("mutation");d.setAttribute("name",c);for(var e=0;e<this.arguments_.length;e++)c=goog.dom.createDom("arg"),c.setAttribute("name",this.arguments_[e]),d.appendChild(c);d=goog.dom.createDom("block",null,d);d.setAttribute("type",this.callType_);b.callback=Blockly.ContextMenu.callbackFactory(this,d);a.push(b);if(!this.isCollapsed())for(e=0;e<this.arguments_.length;e++)b={enabled:!0},c=this.arguments_[e],b.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",c),d=goog.dom.createDom("field",
null,c),d.setAttribute("name","VAR"),d=goog.dom.createDom("block",null,d),d.setAttribute("type","variables_get"),b.callback=Blockly.ContextMenu.callbackFactory(this,d),a.push(b)},callType_:"procedures_callnoreturn"};
Blockly.Blocks.procedures_defreturn={init:function(){var a=new Blockly.FieldTextInput(Blockly.Msg.PROCEDURES_DEFRETURN_PROCEDURE,Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFRETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));this.setCategory(Blockly.Categories.more);this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);
this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFRETURN_HELPURL);this.arguments_=[];this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO);this.appendValueInput("RETURN").setAlign(Blockly.ALIGN_LEFT).appendField("report");this.statementConnection_=null},updateParams_:Blockly.Blocks.procedures_defnoreturn.updateParams_,mutationToDom:Blockly.Blocks.procedures_defnoreturn.mutationToDom,domToMutation:Blockly.Blocks.procedures_defnoreturn.domToMutation,
decompose:Blockly.Blocks.procedures_defnoreturn.decompose,compose:Blockly.Blocks.procedures_defnoreturn.compose,getProcedureDef:function(){return[this.getFieldValue("NAME"),this.arguments_,!0]},getVars:Blockly.Blocks.procedures_defnoreturn.getVars,renameVar:Blockly.Blocks.procedures_defnoreturn.renameVar,customContextMenu:Blockly.Blocks.procedures_defnoreturn.customContextMenu,callType_:"procedures_callreturn"};
Blockly.Blocks.procedures_mutatorcontainer={init:function(){this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TITLE);this.appendStatementInput("STACK");this.setCategory(Blockly.Categories.more);this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);this.setTooltip(Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TOOLTIP);this.contextMenu=!1}};
Blockly.Blocks.procedures_mutatorarg={init:function(){var a=new Blockly.FieldTextInput("x",this.validator_);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_MUTATORARG_TITLE).appendField(a,"NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setCategory(Blockly.Categories.more);this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);this.setTooltip(Blockly.Msg.PROCEDURES_MUTATORARG_TOOLTIP);this.contextMenu=!1;a.onFinishEditing_=
this.createNewVar_;a.onFinishEditing_("x")},validator_:function(a){return(a=a.replace(/[\s\xa0]+/g," ").replace(/^ | $/g,""))||null},createNewVar_:function(a){var b=this.sourceBlock_;b&&b.workspace&&b.workspace.options&&b.workspace.options.parentWorkspace&&b.workspace.options.parentWorkspace.createVariable(a)}};
Blockly.Blocks.procedures_callnoreturn={init:function(){this.appendDummyInput("TOPROW").appendField(this.id,"NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setCategory(Blockly.Categories.more);this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL);this.arguments_=[];this.quarkConnections_={};this.quarkIds_=null},getProcedureCall:function(){return this.getFieldValue("NAME")},
renameProcedure:function(a,b){Blockly.Names.equals(a,this.getProcedureCall())&&(this.setFieldValue(b,"NAME"),this.setTooltip((this.outputConnection?Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP:Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP).replace("%1",b)))},setProcedureParameters_:function(a,b){var c=Blockly.Procedures.getDefinition(this.getProcedureCall(),this.workspace),d=c&&c.mutator&&c.mutator.isVisible();d||(this.quarkConnections_={},this.quarkIds_=null);if(b)if(goog.array.equals(this.arguments_,
a))this.quarkIds_=b;else{if(b.length!=a.length)throw"Error: paramNames and paramIds must be the same length.";this.setCollapsed(!1);this.quarkIds_||(this.quarkConnections_={},a.join("\n")==this.arguments_.join("\n")?this.quarkIds_=b:this.quarkIds_=[]);c=this.rendered;this.rendered=!1;for(var e=0;e<this.arguments_.length;e++){var f=this.getInput("ARG"+e);f&&(f=f.connection.targetConnection,this.quarkConnections_[this.quarkIds_[e]]=f,d&&f&&-1==b.indexOf(this.quarkIds_[e])&&(f.disconnect(),f.getSourceBlock().bumpNeighbours_()))}this.arguments_=
[].concat(a);this.updateShape_();if(this.quarkIds_=b)for(e=0;e<this.arguments_.length;e++)d=this.quarkIds_[e],d in this.quarkConnections_&&(f=this.quarkConnections_[d],Blockly.Mutator.reconnect(f,this,"ARG"+e)||delete this.quarkConnections_[d]);(this.rendered=c)&&this.render()}},updateShape_:function(){for(var a=0;a<this.arguments_.length;a++){var b=this.getField("ARGNAME"+a);if(b){Blockly.Events.disable();try{b.setValue(this.arguments_[a])}finally{Blockly.Events.enable()}}else b=new Blockly.FieldLabel(this.arguments_[a]),
this.appendValueInput("ARG"+a).appendField(b,"ARGNAME"+a).init()}for(;this.getInput("ARG"+a);)this.removeInput("ARG"+a),a++;if(a=this.getInput("TOPROW"))this.arguments_.length?this.getField("WITH")||(a.appendField(Blockly.Msg.PROCEDURES_CALL_BEFORE_PARAMS,"WITH"),a.init()):this.getField("WITH")&&a.removeField("WITH")},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("name",this.getProcedureCall());for(var b=0;b<this.arguments_.length;b++){var c=document.createElement("arg");
c.setAttribute("name",this.arguments_[b]);a.appendChild(c)}return a},domToMutation:function(a){var b=a.getAttribute("name");this.renameProcedure(this.getProcedureCall(),b);for(var b=[],c=[],d=0,e;e=a.childNodes[d];d++)"arg"==e.nodeName.toLowerCase()&&(b.push(e.getAttribute("name")),c.push(e.getAttribute("paramId")));this.setProcedureParameters_(b,c)},renameVar:function(a,b){for(var c=0;c<this.arguments_.length;c++)Blockly.Names.equals(a,this.arguments_[c])&&(this.arguments_[c]=b,this.getField("ARGNAME"+
c).setValue(b))},onchange:function(a){if(this.workspace&&!this.workspace.isFlyout)if(a.type==Blockly.Events.CREATE&&-1!=a.ids.indexOf(this.id)){var b=this.getProcedureCall(),b=Blockly.Procedures.getDefinition(b,this.workspace);!b||b.type==this.defType_&&JSON.stringify(b.arguments_)==JSON.stringify(this.arguments_)||(b=null);if(!b){Blockly.Events.setGroup(a.group);a=goog.dom.createDom("xml");b=goog.dom.createDom("block");b.setAttribute("type",this.defType_);var c=this.getRelativeToSurfaceXY(),d=c.y+
2*Blockly.SNAP_RADIUS;b.setAttribute("x",c.x+Blockly.SNAP_RADIUS*(this.RTL?-1:1));b.setAttribute("y",d);c=this.mutationToDom();b.appendChild(c);c=goog.dom.createDom("field");c.setAttribute("name","NAME");c.appendChild(document.createTextNode(this.getProcedureCall()));b.appendChild(c);a.appendChild(b);Blockly.Xml.domToWorkspace(a,this.workspace);Blockly.Events.setGroup(!1)}}else a.type==Blockly.Events.DELETE&&(b=this.getProcedureCall(),b=Blockly.Procedures.getDefinition(b,this.workspace),b||(Blockly.Events.setGroup(a.group),
this.dispose(!0,!1),Blockly.Events.setGroup(!1)))},customContextMenu:function(a){var b={enabled:!0};b.text=Blockly.Msg.PROCEDURES_HIGHLIGHT_DEF;var c=this.getProcedureCall(),d=this.workspace;b.callback=function(){var a=Blockly.Procedures.getDefinition(c,d);a&&a.select()};a.push(b)},defType_:"procedures_defnoreturn"};
Blockly.Blocks.procedures_callreturn={init:function(){this.appendDummyInput("TOPROW").appendField("","NAME");this.setOutput(!0);this.setOutputShape(Blockly.OUTPUT_SHAPE_ROUND);this.setCategory(Blockly.Categories.more);this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLRETURN_HELPURL);this.arguments_=[];this.quarkConnections_={};this.quarkIds_=null},getProcedureCall:Blockly.Blocks.procedures_callnoreturn.getProcedureCall,
renameProcedure:Blockly.Blocks.procedures_callnoreturn.renameProcedure,setProcedureParameters_:Blockly.Blocks.procedures_callnoreturn.setProcedureParameters_,updateShape_:Blockly.Blocks.procedures_callnoreturn.updateShape_,mutationToDom:Blockly.Blocks.procedures_callnoreturn.mutationToDom,domToMutation:Blockly.Blocks.procedures_callnoreturn.domToMutation,renameVar:Blockly.Blocks.procedures_callnoreturn.renameVar,onchange:Blockly.Blocks.procedures_callnoreturn.onchange,customContextMenu:Blockly.Blocks.procedures_callnoreturn.customContextMenu,
defType_:"procedures_defreturn"};
Blockly.Blocks.procedures_report={init:function(){this.appendValueInput("VALUE").appendField("report");this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!1);this.setCategory(Blockly.Categories.more);this.setColour(Blockly.Colours.more.primary,Blockly.Colours.more.secondary,Blockly.Colours.more.tertiary);this.setTooltip(Blockly.Msg.PROCEDURES_IFRETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_IFRETURN_HELPURL);this.hasReturnValue_=!0},mutationToDom:function(){var a=
document.createElement("mutation");a.setAttribute("value",Number(this.hasReturnValue_));return a},domToMutation:function(a){this.hasReturnValue_=1==a.getAttribute("value");this.hasReturnValue_||(this.removeInput("VALUE"),this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN))},onchange:function(){var a=!1,b=this;do{if(-1!=this.FUNCTION_TYPES.indexOf(b.type)){a=!0;break}b=b.getSurroundParent()}while(b);a?("procedures_defnoreturn"==b.type&&this.hasReturnValue_?(this.removeInput("VALUE"),
this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),this.hasReturnValue_=!1):"procedures_defreturn"!=b.type||this.hasReturnValue_||(this.removeInput("VALUE"),this.appendValueInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),this.hasReturnValue_=!0),this.setWarningText(null)):this.setWarningText(Blockly.Msg.PROCEDURES_IFRETURN_WARNING)},FUNCTION_TYPES:["procedures_defnoreturn","procedures_defreturn"]};Blockly.Blocks.sensing={};Blockly.Blocks.sensing_touchingobject={init:function(){this.jsonInit({message0:"touching %1?",args0:[{type:"input_value",name:"TOUCHINGOBJECTMENU"}],inputsInline:!0,output:"Boolean",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.sensing_touchingobjectmenu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"TOUCHINGOBJECTMENU",options:[["mouse-pointer","_mouse_"],["edge","_edge_"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.sensing.secondary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_touchingcolor={init:function(){this.jsonInit({message0:"touching color %1?",args0:[{type:"input_value",name:"COLOR"}],inputsInline:!0,output:"Boolean",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.sensing_coloristouchingcolor={init:function(){this.jsonInit({message0:"color %1 is touching %2?",args0:[{type:"input_value",name:"COLOR"},{type:"input_value",name:"COLOR2"}],inputsInline:!0,output:"Boolean",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.sensing_distanceto={init:function(){this.jsonInit({message0:"distance to %1",args0:[{type:"input_value",name:"DISTANCETOMENU"}],colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_touchingcolor={init:function(){this.jsonInit({message0:"touching color %1?",args0:[{type:"input_value",name:"COLOR"}],inputsInline:!0,output:"Boolean",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.sensing_coloristouchingcolor={init:function(){this.jsonInit({message0:"color %1 is touching %2?",args0:[{type:"input_value",name:"COLOR"},{type:"input_value",name:"COLOR2"}],inputsInline:!0,output:"Boolean",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.sensing_distanceto={init:function(){this.jsonInit({message0:"distance to %1",args0:[{type:"input_value",name:"DISTANCETOMENU"}],category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_distancetomenu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"DISTANCETOMENU",options:[["mouse-pointer","_mouse_"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.sensing.secondary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_askandwait={init:function(){this.jsonInit({message0:"ask %1 and wait",args0:[{type:"input_value",name:"QUESTION"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary})}};
Blockly.Blocks.sensing_answer={init:function(){this.jsonInit({message0:"answer",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sensing_keypressed={init:function(){this.jsonInit({message0:"key %1 pressed?",args0:[{type:"input_value",name:"KEY_OPTION"}],inputsInline:!0,output:"Boolean",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.sensing_askandwait={init:function(){this.jsonInit({message0:"ask %1 and wait",args0:[{type:"input_value",name:"QUESTION"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary})}};
Blockly.Blocks.sensing_answer={init:function(){this.jsonInit({message0:"answer",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sensing_keypressed={init:function(){this.jsonInit({message0:"key %1 pressed?",args0:[{type:"input_value",name:"KEY_OPTION"}],inputsInline:!0,output:"Boolean",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.sensing_keyoptions={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"KEY_OPTION",options:[["space","space"],["left arrow","left arrow"],["right arrow","right arrow"],["down arrow","down arrow"],["up arrow","up arrow"],["any","any"],["a","a"],["b","b"],["c","c"],["d","d"],["e","e"],["f","f"],["g","g"],["h","h"],["i","i"],["j","j"],["k","k"],["l","l"],["m","m"],["n","n"],["o","o"],["p","p"],["q","q"],["r","r"],["s","s"],["t","t"],["u","u"],["v","v"],["w",
"w"],["x","x"],["y","y"],["z","z"],["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.sensing.secondary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_mousedown={init:function(){this.jsonInit({message0:"mouse down?",inputsInline:!0,output:"Boolean",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.sensing_mousex={init:function(){this.jsonInit({message0:"mouse x",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_mousey={init:function(){this.jsonInit({message0:"mouse y",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_loudness={init:function(){this.jsonInit({message0:"loudness",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sensing_videoon={init:function(){this.jsonInit({message0:"video %1 on %2",args0:[{type:"input_value",name:"VIDEOONMENU1"},{type:"input_value",name:"VIDEOONMENU2"}],inputsInline:!0,output:"Number",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sensing_mousedown={init:function(){this.jsonInit({message0:"mouse down?",inputsInline:!0,output:"Boolean",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_HEXAGONAL})}};
Blockly.Blocks.sensing_mousex={init:function(){this.jsonInit({message0:"mouse x",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_mousey={init:function(){this.jsonInit({message0:"mouse y",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_loudness={init:function(){this.jsonInit({message0:"loudness",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sensing_videoon={init:function(){this.jsonInit({message0:"video %1 on %2",args0:[{type:"input_value",name:"VIDEOONMENU1"},{type:"input_value",name:"VIDEOONMENU2"}],inputsInline:!0,output:"Number",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sensing_videoonmenuone={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"VIDEOONMENU1",options:[["motion","MOTION"],["direction","DIRECTION"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.sensing.secondary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_videoonmenutwo={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"VIDEOONMENU2",options:[["stage","STAGE"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.sensing.secondary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_videotoggle={init:function(){this.jsonInit({message0:"turn video %1",args0:[{type:"input_value",name:"VIDEOTOGGLEMENU"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary})}};
Blockly.Blocks.sensing_videotoggle={init:function(){this.jsonInit({message0:"turn video %1",args0:[{type:"input_value",name:"VIDEOTOGGLEMENU"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary})}};
Blockly.Blocks.sensing_videotogglemenu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"VIDEOTOGGLEMENU",options:[["on","ON"],["off","OFF"],["on-flipped","ONFLIPPED"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.sensing.secondary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_setvideotransparency={init:function(){this.jsonInit({message0:"set video transparency to %1%",args0:[{type:"input_value",name:"TRANSPARENCY"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary})}};
Blockly.Blocks.sensing_timer={init:function(){this.jsonInit({message0:"timer",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sensing_resettimer={init:function(){this.jsonInit({message0:"reset timer",previousStatement:null,nextStatement:null,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary})}};
Blockly.Blocks.sensing_setvideotransparency={init:function(){this.jsonInit({message0:"set video transparency to %1%",args0:[{type:"input_value",name:"TRANSPARENCY"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary})}};
Blockly.Blocks.sensing_timer={init:function(){this.jsonInit({message0:"timer",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sensing_resettimer={init:function(){this.jsonInit({message0:"reset timer",previousStatement:null,nextStatement:null,category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary})}};
Blockly.Blocks.sensing_of_property_menu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"PROPERTY",options:[["x position","x position"],["y position","y position"],["direction","direction"],["costume #","costume #"],["costume name","costume name"],["size","size"],["volume","volume"],["backdrop #","backdrop #"],["backdrop name","backdrop name"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.sensing.secondary,colourSecondary:Blockly.Colours.sensing.secondary,
colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};Blockly.Blocks.sensing_of_object_menu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"OBJECT",options:[["Sprite1","Sprite1"],["Stage","_stage_"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.sensing.secondary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_of={init:function(){this.jsonInit({message0:"%1 of %2",args0:[{type:"input_value",name:"PROPERTY"},{type:"input_value",name:"OBJECT"}],output:!0,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sensing_current={init:function(){this.jsonInit({message0:"current %1",args0:[{type:"input_value",name:"CURRENTMENU"}],inputsInline:!0,output:"Number",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sensing_of={init:function(){this.jsonInit({message0:"%1 of %2",args0:[{type:"input_value",name:"PROPERTY"},{type:"input_value",name:"OBJECT"}],output:!0,category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sensing_current={init:function(){this.jsonInit({message0:"current %1",args0:[{type:"input_value",name:"CURRENTMENU"}],inputsInline:!0,output:"Number",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sensing_currentmenu={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"CURRENTMENU",options:[["year","YEAR"],["month","MONTH"],["date","DATE"],["day of week","DAYOFWEEK"],["hour","HOUR"],["minute","MINUTE"],["second","SECOND"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.sensing.secondary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_dayssince2000={init:function(){this.jsonInit({message0:"days since 2000",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_username={init:function(){this.jsonInit({message0:"username",colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};Blockly.Blocks.sound={};Blockly.Blocks.sound_sounds_option={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"SOUND_MENU",options:[["meow","MEOW"],["meow2","MEOW2"],["pop","POP"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.sounds.secondary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sound_play={init:function(){this.jsonInit({message0:"play sound %1",args0:[{type:"input_value",name:"SOUND_MENU"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_playuntildone={init:function(){this.jsonInit({message0:"play sound %1 until done",args0:[{type:"input_value",name:"SOUND_MENU"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_stopallsounds={init:function(){this.jsonInit({message0:"stop all sounds",previousStatement:null,nextStatement:null,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_playdrumforbeats={init:function(){this.jsonInit({message0:"play drum %1 for %2 beats",args0:[{type:"input_value",name:"DRUMTYPE"},{type:"input_value",name:"BEATS"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_restforbeats={init:function(){this.jsonInit({message0:"rest for %1 beats",args0:[{type:"input_value",name:"BEATS"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_playnoteforbeats={init:function(){this.jsonInit({message0:"play note %1 to %2 beats",args0:[{type:"input_value",name:"NOTE"},{type:"input_value",name:"BEATS"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_setinstrumentto={init:function(){this.jsonInit({message0:"set instrument to %1",args0:[{type:"input_value",name:"INSTRUMENT"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_changevolumeby={init:function(){this.jsonInit({message0:"change volume by %1",args0:[{type:"input_value",name:"VOLUME"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_setvolumeto={init:function(){this.jsonInit({message0:"set volume to %1%",args0:[{type:"input_value",name:"VOLUME"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_volume={init:function(){this.jsonInit({message0:"volume",colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sound_changetempoby={init:function(){this.jsonInit({message0:"change tempo by %1",args0:[{type:"input_value",name:"TEMPO"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_settempotobpm={init:function(){this.jsonInit({message0:"set tempo to %1 bpm",args0:[{type:"input_value",name:"TEMPO"}],previousStatement:null,nextStatement:null,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_tempo={init:function(){this.jsonInit({message0:"tempo",colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sensing_dayssince2000={init:function(){this.jsonInit({message0:"days since 2000",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sensing_username={init:function(){this.jsonInit({message0:"username",category:Blockly.Categories.sensing,colour:Blockly.Colours.sensing.primary,colourSecondary:Blockly.Colours.sensing.secondary,colourTertiary:Blockly.Colours.sensing.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};Blockly.Blocks.sound={};Blockly.Blocks.sound_sounds_option={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"SOUND_MENU",options:[["meow","MEOW"],["meow2","MEOW2"],["pop","POP"]]}],inputsInline:!0,output:"String",colour:Blockly.Colours.sounds.secondary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary,outputShape:Blockly.OUTPUT_SHAPE_ROUND})}};
Blockly.Blocks.sound_play={init:function(){this.jsonInit({message0:"play sound %1",args0:[{type:"input_value",name:"SOUND_MENU"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.sound,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_playuntildone={init:function(){this.jsonInit({message0:"play sound %1 until done",args0:[{type:"input_value",name:"SOUND_MENU"}],inputsInline:!0,previousStatement:null,nextStatement:null,category:Blockly.Categories.sound,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_stopallsounds={init:function(){this.jsonInit({message0:"stop all sounds",previousStatement:null,nextStatement:null,category:Blockly.Categories.sound,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_playdrumforbeats={init:function(){this.jsonInit({message0:"play drum %1 for %2 beats",args0:[{type:"input_value",name:"DRUMTYPE"},{type:"input_value",name:"BEATS"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.sound,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_restforbeats={init:function(){this.jsonInit({message0:"rest for %1 beats",args0:[{type:"input_value",name:"BEATS"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.sound,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_playnoteforbeats={init:function(){this.jsonInit({message0:"play note %1 to %2 beats",args0:[{type:"input_value",name:"NOTE"},{type:"input_value",name:"BEATS"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.sound,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_setinstrumentto={init:function(){this.jsonInit({message0:"set instrument to %1",args0:[{type:"input_value",name:"INSTRUMENT"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.sound,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_changevolumeby={init:function(){this.jsonInit({message0:"change volume by %1",args0:[{type:"input_value",name:"VOLUME"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.sound,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_setvolumeto={init:function(){this.jsonInit({message0:"set volume to %1%",args0:[{type:"input_value",name:"VOLUME"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.sound,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_volume={init:function(){this.jsonInit({message0:"volume",category:Blockly.Categories.sound,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};
Blockly.Blocks.sound_changetempoby={init:function(){this.jsonInit({message0:"change tempo by %1",args0:[{type:"input_value",name:"TEMPO"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.sound,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_settempotobpm={init:function(){this.jsonInit({message0:"set tempo to %1 bpm",args0:[{type:"input_value",name:"TEMPO"}],previousStatement:null,nextStatement:null,category:Blockly.Categories.sound,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary})}};
Blockly.Blocks.sound_tempo={init:function(){this.jsonInit({message0:"tempo",category:Blockly.Categories.sound,colour:Blockly.Colours.sounds.primary,colourSecondary:Blockly.Colours.sounds.secondary,colourTertiary:Blockly.Colours.sounds.tertiary,output:"Number",outputShape:Blockly.OUTPUT_SHAPE_ROUND,checkboxInFlyout:!0})}};

View file

@ -1,7 +1,7 @@
{
"@metadata": {
"author": "Ellen Spertus <ellen.spertus@gmail.com>",
"lastupdated": "2016-09-22 14:56:05.316407",
"lastupdated": "2016-10-03 08:33:26.703803",
"locale": "en",
"messagedocumentation" : "qqq"
},

View file

@ -15,7 +15,7 @@
<script src="../blocks_vertical/event.js"></script>
<script src="../blocks_vertical/motion.js"></script>
<script src="../blocks_vertical/looks.js"></script>
<script src="../blocks_vertical/more.js"></script>
<script src="../blocks_vertical/procedures.js"></script>
<script src="../blocks_vertical/operators.js"></script>
<script src="../blocks_vertical/pen.js"></script>
<script src="../blocks_vertical/sound.js"></script>