var jsonlint=function(){var t={trace:function(){},yy:{},symbols_:{error:2,JSONString:3,STRING:4,JSONNumber:5,NUMBER:6,JSONNullLiteral:7,NULL:8,JSONBooleanLiteral:9,TRUE:10,FALSE:11,JSONText:12,JSONValue:13,EOF:14,JSONObject:15,JSONArray:16,"{":17,"}":18,JSONMemberList:19,JSONMember:20,":":21,",":22,"[":23,"]":24,JSONElementList:25,$accept:0,$end:1},terminals_:{2:"error",4:"STRING",6:"NUMBER",8:"NULL",10:"TRUE",11:"FALSE",14:"EOF",17:"{",18:"}",21:":",22:",",23:"[",24:"]"},productions_:[0,[3,1],[5,1],[7,1],[9,1],[9,1],[12,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[15,2],[15,3],[20,3],[19,1],[19,3],[16,2],[16,3],[25,1],[25,3]],performAction:function(t,e,i,n,r,s){var h=s.length-1;switch(r){case 1:this.$=t.replace(/\\(\\|")/g,"$1").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\t/g,"	").replace(/\\v/g,"").replace(/\\f/g,"\f").replace(/\\b/g,"\b");break;case 2:this.$=Number(t);break;case 3:this.$=null;break;case 4:this.$=!0;break;case 5:this.$=!1;break;case 6:return this.$=s[h-1];case 13:this.$={};break;case 14:this.$=s[h-1];break;case 15:this.$=[s[h-2],s[h]];break;case 16:this.$={},this.$[s[h][0]]=s[h][1];break;case 17:this.$=s[h-2],s[h-2][s[h][0]]=s[h][1];break;case 18:this.$=[];break;case 19:this.$=s[h-1];break;case 20:this.$=[s[h]];break;case 21:this.$=s[h-2],s[h-2].push(s[h])}},table:[{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],defaultActions:{16:[2,6]},parseError:function(t){throw new Error(t)},parse:function(t){function e(t){r.length=r.length-2*t,s.length=s.length-t,h.length=h.length-t}function i(){var t;return t=n.lexer.lex()||1,"number"!=typeof t&&(t=n.symbols_[t]||t),t}var n=this,r=[0],s=[null],h=[],l=this.table,o="",a=0,c=0,u=0,y=2,p=1;this.lexer.setInput(t),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var f=this.lexer.yylloc;h.push(f),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var g,d,m,x,_,b,E,S,k,v={};;){if(m=r[r.length-1],this.defaultActions[m]?x=this.defaultActions[m]:(null==g&&(g=i()),x=l[m]&&l[m][g]),"undefined"==typeof x||!x.length||!x[0]){if(!u){k=[];for(b in l[m])this.terminals_[b]&&b>2&&k.push("'"+this.terminals_[b]+"'");var $="";$=this.lexer.showPosition?"Parse error on line "+(a+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+k.join(", ")+", got '"+this.terminals_[g]+"'":"Parse error on line "+(a+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError($,{text:this.lexer.match,token:this.terminals_[g]||g,line:this.lexer.yylineno,loc:f,expected:k})}if(3==u){if(g==p)throw new Error($||"Parsing halted.");c=this.lexer.yyleng,o=this.lexer.yytext,a=this.lexer.yylineno,f=this.lexer.yylloc,g=i()}for(;;){if(y.toString()in l[m])break;if(0==m)throw new Error($||"Parsing halted.");e(1),m=r[r.length-1]}d=g,g=y,m=r[r.length-1],x=l[m]&&l[m][y],u=3}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+g);switch(x[0]){case 1:r.push(g),s.push(this.lexer.yytext),h.push(this.lexer.yylloc),r.push(x[1]),g=null,d?(g=d,d=null):(c=this.lexer.yyleng,o=this.lexer.yytext,a=this.lexer.yylineno,f=this.lexer.yylloc,u>0&&u--);break;case 2:if(E=this.productions_[x[1]][1],v.$=s[s.length-E],v._$={first_line:h[h.length-(E||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(E||1)].first_column,last_column:h[h.length-1].last_column},_=this.performAction.call(v,o,c,a,this.yy,x[1],s,h),"undefined"!=typeof _)return _;E&&(r=r.slice(0,-1*E*2),s=s.slice(0,-1*E),h=h.slice(0,-1*E)),r.push(this.productions_[x[1]][0]),s.push(v.$),h.push(v._$),S=l[r[r.length-2]][r[r.length-1]],r.push(S);break;case 3:return!0}}return!0}},e=function(){var t={EOF:1,parseError:function(t,e){if(!this.yy.parseError)throw new Error(t);this.yy.parseError(t,e)},setInput:function(t){return this._input=t,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.match+=t,this.matched+=t;var e=t.match(/\n/);return e&&this.yylineno++,this._input=this._input.slice(1),t},unput:function(t){return this._input=t+this._input,this},more:function(){return this._more=!0,this},less:function(t){this._input=this.match.slice(t)+this._input},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,e,i,n,r;this._more||(this.yytext="",this.match="");for(var s=this._currentRules(),h=0;h<s.length&&(i=this._input.match(this.rules[s[h]]),!i||e&&!(i[0].length>e[0].length)||(e=i,n=h,this.options.flex));h++);return e?(r=e[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],t=this.performAction.call(this,this.yy,this,s[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),t?t:void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return"undefined"!=typeof t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(t){this.begin(t)}};return t.options={},t.performAction=function(t,e,i,n){switch(i){case 0:break;case 1:return 6;case 2:return e.yytext=e.yytext.substr(1,e.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},t.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],t.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},t}();return t.lexer=e,t}();"undefined"!=typeof require&&"undefined"!=typeof exports&&(exports.parser=jsonlint,exports.parse=function(){return jsonlint.parse.apply(jsonlint,arguments)},exports.main=function(t){if(!t[1])throw new Error("Usage: "+t[0]+" FILE");if("undefined"!=typeof process)var e=require("fs").readFileSync(require("path").join(process.cwd(),t[1]),"utf8");else var i=require("file").path(require("file").cwd()),e=i.join(t[1]).read({charset:"utf-8"});return exports.parser.parse(e)},"undefined"!=typeof module&&require.main===module&&exports.main("undefined"!=typeof process?process.argv.slice(1):require("system").args));
;angular.module('colorpicker.module',[]).factory('Helper',function(){'use strict';return{closestSlider:function(elem){var matchesSelector=elem.matches||elem.webkitMatchesSelector||elem.mozMatchesSelector||elem.msMatchesSelector;if(matchesSelector.bind(elem)('I')){return elem.parentNode;}
return elem;},getOffset:function(elem,fixedPosition){var
scrollX=0,scrollY=0,rect=elem.getBoundingClientRect();while(elem&&!isNaN(elem.offsetLeft)&&!isNaN(elem.offsetTop)){if(!fixedPosition&&elem.tagName==='BODY'){scrollX+=document.documentElement.scrollLeft||elem.scrollLeft;scrollY+=document.documentElement.scrollTop||elem.scrollTop;}else{scrollX+=elem.scrollLeft;scrollY+=elem.scrollTop;}
elem=elem.offsetParent;}
return{top:rect.top+window.pageYOffset,left:rect.left+window.pageXOffset,scrollX:scrollX,scrollY:scrollY};},stringParsers:[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(execResult){return[execResult[1],execResult[2],execResult[3],execResult[4]];}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(execResult){return[2.55*execResult[1],2.55*execResult[2],2.55*execResult[3],execResult[4]];}},{re:/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,parse:function(execResult){return[parseInt(execResult[1],16),parseInt(execResult[2],16),parseInt(execResult[3],16)];}},{re:/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/,parse:function(execResult){return[parseInt(execResult[1]+execResult[1],16),parseInt(execResult[2]+execResult[2],16),parseInt(execResult[3]+execResult[3],16)];}}]};}).factory('Color',['Helper',function(Helper){'use strict';return{value:{h:1,s:1,b:1,a:1},'rgb':function(){var rgb=this.toRGB();return'rgb('+rgb.r+','+rgb.g+','+rgb.b+')';},'rgba':function(){var rgb=this.toRGB();return'rgba('+rgb.r+','+rgb.g+','+rgb.b+','+rgb.a+')';},'hex':function(){return this.toHex();},RGBtoHSB:function(r,g,b,a){r/=255;g/=255;b/=255;var H,S,V,C;V=Math.max(r,g,b);C=V-Math.min(r,g,b);H=(C===0?null:V===r?(g-b)/C:V===g?(b-r)/C+2:(r-g)/C+4);H=((H+360)%6)*60/360;S=C===0?0:C/V;return{h:H||1,s:S,b:V,a:a||1};},setColor:function(val){val=(val)?val.toLowerCase():val;for(var key in Helper.stringParsers){if(Helper.stringParsers.hasOwnProperty(key)){var parser=Helper.stringParsers[key];var match=parser.re.exec(val),values=match&&parser.parse(match);if(values){this.value=this.RGBtoHSB.apply(null,values);return false;}}}},setHue:function(h){this.value.h=1-h;},setSaturation:function(s){this.value.s=s;},setLightness:function(b){this.value.b=1-b;},setAlpha:function(a){this.value.a=parseInt((1-a)*100,10)/100;},toRGB:function(h,s,b,a){if(!h){h=this.value.h;s=this.value.s;b=this.value.b;}
h*=360;var R,G,B,X,C;h=(h%360)/60;C=b*s;X=C*(1-Math.abs(h%2-1));R=G=B=b-C;h=~~h;R+=[C,X,0,0,X,C][h];G+=[X,C,C,X,0,0][h];B+=[0,0,X,C,C,X][h];return{r:Math.round(R*255),g:Math.round(G*255),b:Math.round(B*255),a:a||this.value.a};},toHex:function(h,s,b,a){var rgb=this.toRGB(h,s,b,a);return'#'+((1<<24)|(parseInt(rgb.r,10)<<16)|(parseInt(rgb.g,10)<<8)|parseInt(rgb.b,10)).toString(16).substr(1);}};}]).factory('Slider',['Helper',function(Helper){'use strict';var
slider={maxLeft:0,maxTop:0,callLeft:null,callTop:null,knob:{top:0,left:0}},pointer={};return{getSlider:function(){return slider;},getLeftPosition:function(event){return Math.max(0,Math.min(slider.maxLeft,slider.left+((event.pageX||pointer.left)-pointer.left)));},getTopPosition:function(event){return Math.max(0,Math.min(slider.maxTop,slider.top+((event.pageY||pointer.top)-pointer.top)));},setSlider:function(event,fixedPosition){var
target=Helper.closestSlider(event.target),targetOffset=Helper.getOffset(target,fixedPosition),rect=target.getBoundingClientRect(),offsetX=event.clientX-rect.left,offsetY=event.clientY-rect.top;slider.knob=target.children[0].style;slider.left=event.pageX-targetOffset.left-window.pageXOffset+targetOffset.scrollX;slider.top=event.pageY-targetOffset.top-window.pageYOffset+targetOffset.scrollY;pointer={left:event.pageX-(offsetX-slider.left),top:event.pageY-(offsetY-slider.top)};},setSaturation:function(event,fixedPosition,componentSize){slider={maxLeft:componentSize,maxTop:componentSize,callLeft:'setSaturation',callTop:'setLightness'};this.setSlider(event,fixedPosition);},setHue:function(event,fixedPosition,componentSize){slider={maxLeft:0,maxTop:componentSize,callLeft:false,callTop:'setHue'};this.setSlider(event,fixedPosition);},setAlpha:function(event,fixedPosition,componentSize){slider={maxLeft:0,maxTop:componentSize,callLeft:false,callTop:'setAlpha'};this.setSlider(event,fixedPosition);},setKnob:function(top,left){slider.knob.top=top+'px';slider.knob.left=left+'px';}};}]).directive('colorpicker',['$document','$compile','Color','Slider','Helper',function($document,$compile,Color,Slider,Helper){'use strict';return{require:'?ngModel',restrict:'A',link:function($scope,elem,attrs,ngModel){var
thisFormat=attrs.colorpicker?attrs.colorpicker:'hex',position=angular.isDefined(attrs.colorpickerPosition)?attrs.colorpickerPosition:'bottom',inline=angular.isDefined(attrs.colorpickerInline)?attrs.colorpickerInline:false,fixedPosition=angular.isDefined(attrs.colorpickerFixedPosition)?attrs.colorpickerFixedPosition:false,target=angular.isDefined(attrs.colorpickerParent)?elem.parent():angular.element(document.body),withInput=angular.isDefined(attrs.colorpickerWithInput)?attrs.colorpickerWithInput:false,componentSize=angular.isDefined(attrs.colorpickerSize)?attrs.colorpickerSize:100,componentSizePx=componentSize+'px',inputTemplate=withInput?'<input type="text" name="colorpicker-input" spellcheck="false">':'',closeButton=!inline?'<button type="button" class="close close-colorpicker">&times;</button>':'',template='<div class="colorpicker dropdown">'+'<div class="dropdown-menu">'+'<colorpicker-saturation><i></i></colorpicker-saturation>'+'<colorpicker-hue><i></i></colorpicker-hue>'+'<colorpicker-alpha><i></i></colorpicker-alpha>'+'<colorpicker-preview></colorpicker-preview>'+
inputTemplate+
closeButton+'</div>'+'</div>',colorpickerTemplate=angular.element(template),pickerColor=Color,componentSizePx,sliderAlpha,sliderHue=colorpickerTemplate.find('colorpicker-hue'),sliderSaturation=colorpickerTemplate.find('colorpicker-saturation'),colorpickerPreview=colorpickerTemplate.find('colorpicker-preview'),pickerColorPointers=colorpickerTemplate.find('i');$compile(colorpickerTemplate)($scope);colorpickerTemplate.css('min-width',parseInt(componentSize)+29+'px');sliderSaturation.css({'width':componentSizePx,'height':componentSizePx});sliderHue.css('height',componentSizePx);if(withInput){var pickerColorInput=colorpickerTemplate.find('input');pickerColorInput.css('width',componentSizePx);pickerColorInput.on('mousedown',function(event){event.stopPropagation();}).on('keyup',function(){var newColor=this.value;elem.val(newColor);if(ngModel&&ngModel.$modelValue!==newColor){$scope.$apply(ngModel.$setViewValue(newColor));update(true);}});}
function bindMouseEvents(){$document.on('mousemove',mousemove);$document.on('mouseup',mouseup);}
if(thisFormat==='rgba'){colorpickerTemplate.addClass('alpha');sliderAlpha=colorpickerTemplate.find('colorpicker-alpha');sliderAlpha.css('height',componentSizePx);sliderAlpha.on('click',function(event){Slider.setAlpha(event,fixedPosition,componentSize);mousemove(event);}).on('mousedown',function(event){Slider.setAlpha(event,fixedPosition,componentSize);bindMouseEvents();}).on('mouseup',function(event){emitEvent('colorpicker-selected-alpha');});}
sliderHue.on('click',function(event){Slider.setHue(event,fixedPosition,componentSize);mousemove(event);}).on('mousedown',function(event){Slider.setHue(event,fixedPosition,componentSize);bindMouseEvents();}).on('mouseup',function(event){emitEvent('colorpicker-selected-hue');});sliderSaturation.on('click',function(event){Slider.setSaturation(event,fixedPosition,componentSize);mousemove(event);if(angular.isDefined(attrs.colorpickerCloseOnSelect)){hideColorpickerTemplate();}}).on('mousedown',function(event){Slider.setSaturation(event,fixedPosition,componentSize);bindMouseEvents();}).on('mouseup',function(event){emitEvent('colorpicker-selected-saturation');});if(fixedPosition){colorpickerTemplate.addClass('colorpicker-fixed-position');}
colorpickerTemplate.addClass('colorpicker-position-'+position);if(inline==='true'){colorpickerTemplate.addClass('colorpicker-inline');}
target.append(colorpickerTemplate);if(ngModel){ngModel.$render=function(){elem.val(ngModel.$viewValue);update();};}
elem.on('blur keyup change',function(){update();});elem.on('$destroy',function(){colorpickerTemplate.remove();});function previewColor(){try{colorpickerPreview.css('backgroundColor',pickerColor[thisFormat]());}catch(e){colorpickerPreview.css('backgroundColor',pickerColor.toHex());}
sliderSaturation.css('backgroundColor',pickerColor.toHex(pickerColor.value.h,1,1,1));if(thisFormat==='rgba'){sliderAlpha.css.backgroundColor=pickerColor.toHex();}}
function mousemove(event){var
left=Slider.getLeftPosition(event),top=Slider.getTopPosition(event),slider=Slider.getSlider();Slider.setKnob(top,left);if(slider.callLeft){pickerColor[slider.callLeft].call(pickerColor,left/componentSize);}
if(slider.callTop){pickerColor[slider.callTop].call(pickerColor,top/componentSize);}
previewColor();var newColor=pickerColor[thisFormat]();elem.val(newColor);if(ngModel){$scope.$apply(ngModel.$setViewValue(newColor));}
if(withInput){pickerColorInput.val(newColor);}
return false;}
function mouseup(){emitEvent('colorpicker-selected');$document.off('mousemove',mousemove);$document.off('mouseup',mouseup);}
function update(omitInnerInput){pickerColor.setColor(elem.val());if(withInput&&!omitInnerInput){pickerColorInput.val(elem.val());}
pickerColorPointers.eq(0).css({left:pickerColor.value.s*componentSize+'px',top:componentSize-pickerColor.value.b*componentSize+'px'});pickerColorPointers.eq(1).css('top',componentSize*(1-pickerColor.value.h)+'px');pickerColorPointers.eq(2).css('top',componentSize*(1-pickerColor.value.a)+'px');previewColor();}
function getColorpickerTemplatePosition(){var
positionValue,positionOffset=Helper.getOffset(elem[0]);if(angular.isDefined(attrs.colorpickerParent)){positionOffset.left=0;positionOffset.top=0;}
if(position==='top'){positionValue={'top':positionOffset.top-147,'left':positionOffset.left};}else if(position==='right'){positionValue={'top':positionOffset.top,'left':positionOffset.left+126};}else if(position==='bottom'){positionValue={'top':positionOffset.top+elem[0].offsetHeight+2,'left':positionOffset.left};}else if(position==='left'){positionValue={'top':positionOffset.top,'left':positionOffset.left-150};}
return{'top':positionValue.top+'px','left':positionValue.left+'px'};}
function documentMousedownHandler(){hideColorpickerTemplate();}
function showColorpickerTemplate(){if(!colorpickerTemplate.hasClass('colorpicker-visible')){update();colorpickerTemplate.addClass('colorpicker-visible').css(getColorpickerTemplatePosition());emitEvent('colorpicker-shown');if(inline===false){$document.on('mousedown',documentMousedownHandler);}
if(attrs.colorpickerIsOpen){$scope[attrs.colorpickerIsOpen]=true;if(!$scope.$$phase){$scope.$digest();}}}}
if(inline===false){elem.on('click',showColorpickerTemplate);}else{showColorpickerTemplate();}
colorpickerTemplate.on('mousedown',function(event){event.stopPropagation();event.preventDefault();});function emitEvent(name){if(ngModel){$scope.$emit(name,{name:attrs.ngModel,value:ngModel.$modelValue});}}
function hideColorpickerTemplate(){if(colorpickerTemplate.hasClass('colorpicker-visible')){colorpickerTemplate.removeClass('colorpicker-visible');emitEvent('colorpicker-closed');$document.off('mousedown',documentMousedownHandler);if(attrs.colorpickerIsOpen){$scope[attrs.colorpickerIsOpen]=false;if(!$scope.$$phase){$scope.$digest();}}}}
colorpickerTemplate.find('button').on('click',function(){hideColorpickerTemplate();});if(attrs.colorpickerIsOpen){$scope.$watch(attrs.colorpickerIsOpen,function(shouldBeOpen){if(shouldBeOpen===true){showColorpickerTemplate();}else if(shouldBeOpen===false){hideColorpickerTemplate();}});}}};}]);;(function(dndLists){var MIME_TYPE='application/x-dnd';var EDGE_MIME_TYPE='application/json';var MSIE_MIME_TYPE='Text';var ALL_EFFECTS=['move','copy','link'];dndLists.directive('dndDraggable',['$parse','$timeout',function($parse,$timeout){return function(scope,element,attr){element.attr("draggable","true");if(attr.dndDisableIf){scope.$watch(attr.dndDisableIf,function(disabled){element.attr("draggable",!disabled);});}
element.on('dragstart',function(event){event=event.originalEvent||event;if(element.attr('draggable')=='false')return true;dndState.isDragging=true;dndState.itemType=attr.dndType&&scope.$eval(attr.dndType).toLowerCase();dndState.dropEffect="none";dndState.effectAllowed=attr.dndEffectAllowed||ALL_EFFECTS[0];event.dataTransfer.effectAllowed=dndState.effectAllowed;var item=scope.$eval(attr.dndDraggable);var mimeType=MIME_TYPE+(dndState.itemType?('-'+dndState.itemType):'');try{event.dataTransfer.setData(mimeType,angular.toJson(item));}catch(e){var data=angular.toJson({item:item,type:dndState.itemType});try{event.dataTransfer.setData(EDGE_MIME_TYPE,data);}catch(e){var effectsAllowed=filterEffects(ALL_EFFECTS,dndState.effectAllowed);event.dataTransfer.effectAllowed=effectsAllowed[0];event.dataTransfer.setData(MSIE_MIME_TYPE,data);}}
element.addClass("dndDragging");$timeout(function(){element.addClass("dndDraggingSource");},0);if(event._dndHandle&&event.dataTransfer.setDragImage){event.dataTransfer.setDragImage(element[0],0,0);}
$parse(attr.dndDragstart)(scope,{event:event});if(attr.dndCallback){var callback=$parse(attr.dndCallback);dndState.callback=function(params){return callback(scope,params||{});};}
event.stopPropagation();});element.on('dragend',function(event){event=event.originalEvent||event;scope.$apply(function(){var dropEffect=dndState.dropEffect;var cb={copy:'dndCopied',link:'dndLinked',move:'dndMoved',none:'dndCanceled'};$parse(attr[cb[dropEffect]])(scope,{event:event});$parse(attr.dndDragend)(scope,{event:event,dropEffect:dropEffect});});dndState.isDragging=false;dndState.callback=undefined;element.removeClass("dndDragging");element.removeClass("dndDraggingSource");event.stopPropagation();$timeout(function(){element.removeClass("dndDraggingSource");},0);});element.on('click',function(event){if(!attr.dndSelected)return;event=event.originalEvent||event;scope.$apply(function(){$parse(attr.dndSelected)(scope,{event:event});});event.stopPropagation();});element.on('selectstart',function(){if(this.dragDrop)this.dragDrop();});};}]);dndLists.directive('dndList',['$parse',function($parse){return function(scope,element,attr){var placeholder=getPlaceholderElement();placeholder.remove();var placeholderNode=placeholder[0];var listNode=element[0];var listSettings={};element.on('dragenter',function(event){event=event.originalEvent||event;var types=attr.dndAllowedTypes&&scope.$eval(attr.dndAllowedTypes);listSettings={allowedTypes:angular.isArray(types)&&types.join('|').toLowerCase().split('|'),disabled:attr.dndDisableIf&&scope.$eval(attr.dndDisableIf),externalSources:attr.dndExternalSources&&scope.$eval(attr.dndExternalSources),horizontal:attr.dndHorizontalList&&scope.$eval(attr.dndHorizontalList)};var mimeType=getMimeType(event.dataTransfer.types);if(!mimeType||!isDropAllowed(getItemType(mimeType)))return true;event.preventDefault();});element.on('dragover',function(event){event=event.originalEvent||event;var mimeType=getMimeType(event.dataTransfer.types);var itemType=getItemType(mimeType);if(!mimeType||!isDropAllowed(itemType))return true;if(placeholderNode.parentNode!=listNode){element.append(placeholder);}
if(event.target!=listNode){var listItemNode=event.target;while(listItemNode.parentNode!=listNode&&listItemNode.parentNode){listItemNode=listItemNode.parentNode;}
if(listItemNode.parentNode==listNode&&listItemNode!=placeholderNode){var rect=listItemNode.getBoundingClientRect();if(listSettings.horizontal){var isFirstHalf=event.clientX<rect.left+rect.width/2;}else{var isFirstHalf=event.clientY<rect.top+rect.height/2;}
listNode.insertBefore(placeholderNode,isFirstHalf?listItemNode:listItemNode.nextSibling);}}
var ignoreDataTransfer=mimeType==MSIE_MIME_TYPE;var dropEffect=getDropEffect(event,ignoreDataTransfer);if(dropEffect=='none')return stopDragover();if(attr.dndDragover&&!invokeCallback(attr.dndDragover,event,dropEffect,itemType)){return stopDragover();}
event.preventDefault();if(!ignoreDataTransfer){event.dataTransfer.dropEffect=dropEffect;}
element.addClass("dndDragover");event.stopPropagation();return false;});element.on('drop',function(event){event=event.originalEvent||event;var mimeType=getMimeType(event.dataTransfer.types);var itemType=getItemType(mimeType);if(!mimeType||!isDropAllowed(itemType))return true;event.preventDefault();try{var data=JSON.parse(event.dataTransfer.getData(mimeType));}catch(e){return stopDragover();}
if(mimeType==MSIE_MIME_TYPE||mimeType==EDGE_MIME_TYPE){itemType=data.type||undefined;data=data.item;if(!isDropAllowed(itemType))return stopDragover();}
var ignoreDataTransfer=mimeType==MSIE_MIME_TYPE;var dropEffect=getDropEffect(event,ignoreDataTransfer);if(dropEffect=='none')return stopDragover();var index=getPlaceholderIndex();if(attr.dndDrop){data=invokeCallback(attr.dndDrop,event,dropEffect,itemType,index,data);if(!data)return stopDragover();}
dndState.dropEffect=dropEffect;if(!ignoreDataTransfer){event.dataTransfer.dropEffect=dropEffect;}
if(data!==true){scope.$apply(function(){scope.$eval(attr.dndList).splice(index,0,data);});}
invokeCallback(attr.dndInserted,event,dropEffect,itemType,index,data);stopDragover();event.stopPropagation();return false;});element.on('dragleave',function(event){event=event.originalEvent||event;var newTarget=document.elementFromPoint(event.clientX,event.clientY);if(listNode.contains(newTarget)&&!event._dndPhShown){event._dndPhShown=true;}else{stopDragover();}});function getMimeType(types){if(!types)return MSIE_MIME_TYPE;for(var i=0;i<types.length;i++){if(types[i]==MSIE_MIME_TYPE||types[i]==EDGE_MIME_TYPE||types[i].substr(0,MIME_TYPE.length)==MIME_TYPE){return types[i];}}
return null;}
function getItemType(mimeType){if(dndState.isDragging)return dndState.itemType||undefined;if(mimeType==MSIE_MIME_TYPE||mimeType==EDGE_MIME_TYPE)return null;return(mimeType&&mimeType.substr(MIME_TYPE.length+1))||undefined;}
function isDropAllowed(itemType){if(listSettings.disabled)return false;if(!listSettings.externalSources&&!dndState.isDragging)return false;if(!listSettings.allowedTypes||itemType===null)return true;return itemType&&listSettings.allowedTypes.indexOf(itemType)!=-1;}
function getDropEffect(event,ignoreDataTransfer){var effects=ALL_EFFECTS;if(!ignoreDataTransfer){effects=filterEffects(effects,event.dataTransfer.effectAllowed);}
if(dndState.isDragging){effects=filterEffects(effects,dndState.effectAllowed);}
if(attr.dndEffectAllowed){effects=filterEffects(effects,attr.dndEffectAllowed);}
if(!effects.length){return'none';}else if(event.ctrlKey&&effects.indexOf('copy')!=-1){return'copy';}else if(event.altKey&&effects.indexOf('link')!=-1){return'link';}else{return effects[0];}}
function stopDragover(){placeholder.remove();element.removeClass("dndDragover");return true;}
function invokeCallback(expression,event,dropEffect,itemType,index,item){return $parse(expression)(scope,{callback:dndState.callback,dropEffect:dropEffect,event:event,external:!dndState.isDragging,index:index!==undefined?index:getPlaceholderIndex(),item:item||undefined,type:itemType});}
function getPlaceholderIndex(){return Array.prototype.indexOf.call(listNode.children,placeholderNode);}
function getPlaceholderElement(){var placeholder;angular.forEach(element.children(),function(childNode){var child=angular.element(childNode);if(child.hasClass('dndPlaceholder')){placeholder=child;}});return placeholder||angular.element("<li class='dndPlaceholder'></li>");}};}]);dndLists.directive('dndNodrag',function(){return function(scope,element,attr){element.attr("draggable","true");element.on('dragstart',function(event){event=event.originalEvent||event;if(!event._dndHandle){if(!(event.dataTransfer.types&&event.dataTransfer.types.length)){event.preventDefault();}
event.stopPropagation();}});element.on('dragend',function(event){event=event.originalEvent||event;if(!event._dndHandle){event.stopPropagation();}});};});dndLists.directive('dndHandle',function(){return function(scope,element,attr){element.attr("draggable","true");element.on('dragstart dragend',function(event){event=event.originalEvent||event;event._dndHandle=true;});};});function filterEffects(effects,effectAllowed){if(effectAllowed=='all')return effects;return effects.filter(function(effect){return effectAllowed.toLowerCase().indexOf(effect)!=-1;});}
var dndState={};})(angular.module('dndLists',[]));;(function(){var picker;picker=angular.module('daterangepicker',[]);picker.constant('dateRangePickerConfig',{clearLabel:'Clear',locale:{separator:' - ',format:'YYYY-MM-DD'}});picker.directive('dateRangePicker',['$compile','$timeout','$parse','dateRangePickerConfig',function($compile,$timeout,$parse,dateRangePickerConfig){return{require:'ngModel',restrict:'A',scope:{min:'=',max:'=',model:'=ngModel',opts:'=options',clearable:'='},link:function($scope,element,attrs,modelCtrl){var _clear,_init,_initBoundaryField,_mergeOpts,_picker,_setDatePoint,_setEndDate,_setStartDate,_validate,_validateMax,_validateMin,customOpts,el,opts;_mergeOpts=function(){var extend,localeExtend;localeExtend=angular.extend.apply(angular,Array.prototype.slice.call(arguments).map(function(opt){return opt!=null?opt.locale:void 0;}).filter(function(opt){return!!opt;}));extend=angular.extend.apply(angular,arguments);extend.locale=localeExtend;return extend;};el=$(element);customOpts=$scope.opts;opts=_mergeOpts({},dateRangePickerConfig,customOpts);_picker=null;_clear=function(){_picker.setStartDate();return _picker.setEndDate();};_setDatePoint=function(setter){return function(newValue){if(_picker&&newValue){return setter(moment(newValue));}};};_setStartDate=_setDatePoint(function(m){if(_picker.endDate<m){_picker.setEndDate(m);}
return _picker.setStartDate(m);});_setEndDate=_setDatePoint(function(m){if(_picker.startDate>m){_picker.setStartDate(m);}
return _picker.setEndDate(m);});_validate=function(validator){return function(boundary,actual){if(boundary&&actual){return validator(moment(boundary),moment(actual));}else{return true;}};};_validateMin=_validate(function(min,start){return min.isBefore(start)||min.isSame(start,'day');});_validateMax=_validate(function(max,end){return max.isAfter(end)||max.isSame(end,'day');});modelCtrl.$formatters.push(function(objValue){var f;f=function(date){if(!moment.isMoment(date)){return moment(date).format(opts.locale.format);}else{return date.format(opts.locale.format);}};if(objValue){if(opts.singleDatePicker){return f(objValue);}else if(objValue.startDate){return[f(objValue.startDate),f(objValue.endDate)].join(opts.locale.separator);}else{return'';}}else{return'';}});modelCtrl.$render=function(){if(modelCtrl.$modelValue&&modelCtrl.$modelValue.startDate){_setStartDate(modelCtrl.$modelValue.startDate);_setEndDate(modelCtrl.$modelValue.endDate);}else{_clear();}
return el.val(modelCtrl.$viewValue);};modelCtrl.$parsers.push(function(val){var f,objValue,x;f=function(value){return moment(value,opts.locale.format);};objValue={startDate:null,endDate:null};if(angular.isString(val)&&val.length>0){if(opts.singleDatePicker){objValue=f(val);}else{x=val.split(opts.locale.separator).map(f);objValue.startDate=x[0];objValue.endDate=x[1];}}
return objValue;});modelCtrl.$isEmpty=function(val){return!(angular.isString(val)&&val.length>0);};_init=function(){var eventType,results;el.daterangepicker(angular.extend(opts,{autoUpdateInput:false}),function(start,end){return $scope.$apply(function(){return $scope.model=opts.singleDatePicker?start:{startDate:start,endDate:end};});});_picker=el.data('daterangepicker');results=[];for(eventType in opts.eventHandlers){results.push(el.on(eventType,function(e,params){var eventName;eventName=e.type+'.'+e.namespace;return $scope.$evalAsync(opts.eventHandlers[eventName],params);}));}
return results;};_init();$scope.$watch('model.startDate',function(n){return _setStartDate(n);});$scope.$watch('model.endDate',function(n){return _setEndDate(n);});_initBoundaryField=function(field,validator,modelField,optName){if(attrs[field]){modelCtrl.$validators[field]=function(value){return value&&validator(opts[optName],value[modelField]);};return $scope.$watch(field,function(date){opts[optName]=date?moment(date):false;return _init();});}};_initBoundaryField('min',_validateMin,'startDate','minDate');_initBoundaryField('max',_validateMax,'endDate','maxDate');if(attrs.options){$scope.$watch('opts',function(newOpts){opts=_mergeOpts(opts,newOpts);return _init();},true);}
if(attrs.clearable){$scope.$watch('clearable',function(newClearable){if(newClearable){opts=_mergeOpts(opts,{locale:{cancelLabel:opts.clearLabel}});}
_init();if(newClearable){return el.on('cancel.daterangepicker',function(){return $scope.$apply(function(){return $scope.model=opts.singleDatePicker?null:{startDate:null,endDate:null};});});}});}
return $scope.$on('$destroy',function(){return _picker!=null?_picker.remove():void 0;});}};}]);}).call(this);;(function(root,factory){"use strict";if(typeof define==='function'&&define.amd){define(['moment'],factory);}else if(typeof module==='object'&&module.exports){module.exports=factory(require('moment'));}else{factory(root.moment);}}(this,function(moment){"use strict";var VERSION="0.5.13",zones={},links={},names={},guesses={},cachedGuess,momentVersion=moment.version.split('.'),major=+momentVersion[0],minor=+momentVersion[1];if(major<2||(major===2&&minor<6)){logError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js '+moment.version+'. See momentjs.com');}
function charCodeToInt(charCode){if(charCode>96){return charCode-87;}else if(charCode>64){return charCode-29;}
return charCode-48;}
function unpackBase60(string){var i=0,parts=string.split('.'),whole=parts[0],fractional=parts[1]||'',multiplier=1,num,out=0,sign=1;if(string.charCodeAt(0)===45){i=1;sign=-1;}
for(i;i<whole.length;i++){num=charCodeToInt(whole.charCodeAt(i));out=60*out+num;}
for(i=0;i<fractional.length;i++){multiplier=multiplier/60;num=charCodeToInt(fractional.charCodeAt(i));out+=num*multiplier;}
return out*sign;}
function arrayToInt(array){for(var i=0;i<array.length;i++){array[i]=unpackBase60(array[i]);}}
function intToUntil(array,length){for(var i=0;i<length;i++){array[i]=Math.round((array[i-1]||0)+(array[i]*60000));}
array[length-1]=Infinity;}
function mapIndices(source,indices){var out=[],i;for(i=0;i<indices.length;i++){out[i]=source[indices[i]];}
return out;}
function unpack(string){var data=string.split('|'),offsets=data[2].split(' '),indices=data[3].split(''),untils=data[4].split(' ');arrayToInt(offsets);arrayToInt(indices);arrayToInt(untils);intToUntil(untils,indices.length);return{name:data[0],abbrs:mapIndices(data[1].split(' '),indices),offsets:mapIndices(offsets,indices),untils:untils,population:data[5]|0};}
function Zone(packedString){if(packedString){this._set(unpack(packedString));}}
Zone.prototype={_set:function(unpacked){this.name=unpacked.name;this.abbrs=unpacked.abbrs;this.untils=unpacked.untils;this.offsets=unpacked.offsets;this.population=unpacked.population;},_index:function(timestamp){var target=+timestamp,untils=this.untils,i;for(i=0;i<untils.length;i++){if(target<untils[i]){return i;}}},parse:function(timestamp){var target=+timestamp,offsets=this.offsets,untils=this.untils,max=untils.length-1,offset,offsetNext,offsetPrev,i;for(i=0;i<max;i++){offset=offsets[i];offsetNext=offsets[i+1];offsetPrev=offsets[i?i-1:i];if(offset<offsetNext&&tz.moveAmbiguousForward){offset=offsetNext;}else if(offset>offsetPrev&&tz.moveInvalidForward){offset=offsetPrev;}
if(target<untils[i]-(offset*60000)){return offsets[i];}}
return offsets[max];},abbr:function(mom){return this.abbrs[this._index(mom)];},offset:function(mom){logError("zone.offset has been deprecated in favor of zone.utcOffset");return this.offsets[this._index(mom)];},utcOffset:function(mom){return this.offsets[this._index(mom)];}};function OffsetAt(at){var timeString=at.toTimeString();var abbr=timeString.match(/\([a-z ]+\)/i);if(abbr&&abbr[0]){abbr=abbr[0].match(/[A-Z]/g);abbr=abbr?abbr.join(''):undefined;}else{abbr=timeString.match(/[A-Z]{3,5}/g);abbr=abbr?abbr[0]:undefined;}
if(abbr==='GMT'){abbr=undefined;}
this.at=+at;this.abbr=abbr;this.offset=at.getTimezoneOffset();}
function ZoneScore(zone){this.zone=zone;this.offsetScore=0;this.abbrScore=0;}
ZoneScore.prototype.scoreOffsetAt=function(offsetAt){this.offsetScore+=Math.abs(this.zone.utcOffset(offsetAt.at)-offsetAt.offset);if(this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g,'')!==offsetAt.abbr){this.abbrScore++;}};function findChange(low,high){var mid,diff;while((diff=((high.at-low.at)/12e4|0)*6e4)){mid=new OffsetAt(new Date(low.at+diff));if(mid.offset===low.offset){low=mid;}else{high=mid;}}
return low;}
function userOffsets(){var startYear=new Date().getFullYear()-2,last=new OffsetAt(new Date(startYear,0,1)),offsets=[last],change,next,i;for(i=1;i<48;i++){next=new OffsetAt(new Date(startYear,i,1));if(next.offset!==last.offset){change=findChange(last,next);offsets.push(change);offsets.push(new OffsetAt(new Date(change.at+6e4)));}
last=next;}
for(i=0;i<4;i++){offsets.push(new OffsetAt(new Date(startYear+i,0,1)));offsets.push(new OffsetAt(new Date(startYear+i,6,1)));}
return offsets;}
function sortZoneScores(a,b){if(a.offsetScore!==b.offsetScore){return a.offsetScore-b.offsetScore;}
if(a.abbrScore!==b.abbrScore){return a.abbrScore-b.abbrScore;}
return b.zone.population-a.zone.population;}
function addToGuesses(name,offsets){var i,offset;arrayToInt(offsets);for(i=0;i<offsets.length;i++){offset=offsets[i];guesses[offset]=guesses[offset]||{};guesses[offset][name]=true;}}
function guessesForUserOffsets(offsets){var offsetsLength=offsets.length,filteredGuesses={},out=[],i,j,guessesOffset;for(i=0;i<offsetsLength;i++){guessesOffset=guesses[offsets[i].offset]||{};for(j in guessesOffset){if(guessesOffset.hasOwnProperty(j)){filteredGuesses[j]=true;}}}
for(i in filteredGuesses){if(filteredGuesses.hasOwnProperty(i)){out.push(names[i]);}}
return out;}
function rebuildGuess(){try{var intlName=Intl.DateTimeFormat().resolvedOptions().timeZone;if(intlName&&intlName.length>3){var name=names[normalizeName(intlName)];if(name){return name;}
logError("Moment Timezone found "+intlName+" from the Intl api, but did not have that data loaded.");}}catch(e){}
var offsets=userOffsets(),offsetsLength=offsets.length,guesses=guessesForUserOffsets(offsets),zoneScores=[],zoneScore,i,j;for(i=0;i<guesses.length;i++){zoneScore=new ZoneScore(getZone(guesses[i]),offsetsLength);for(j=0;j<offsetsLength;j++){zoneScore.scoreOffsetAt(offsets[j]);}
zoneScores.push(zoneScore);}
zoneScores.sort(sortZoneScores);return zoneScores.length>0?zoneScores[0].zone.name:undefined;}
function guess(ignoreCache){if(!cachedGuess||ignoreCache){cachedGuess=rebuildGuess();}
return cachedGuess;}
function normalizeName(name){return(name||'').toLowerCase().replace(/\//g,'_');}
function addZone(packed){var i,name,split,normalized;if(typeof packed==="string"){packed=[packed];}
for(i=0;i<packed.length;i++){split=packed[i].split('|');name=split[0];normalized=normalizeName(name);zones[normalized]=packed[i];names[normalized]=name;addToGuesses(normalized,split[2].split(' '));}}
function getZone(name,caller){name=normalizeName(name);var zone=zones[name];var link;if(zone instanceof Zone){return zone;}
if(typeof zone==='string'){zone=new Zone(zone);zones[name]=zone;return zone;}
if(links[name]&&caller!==getZone&&(link=getZone(links[name],getZone))){zone=zones[name]=new Zone();zone._set(link);zone.name=names[name];return zone;}
return null;}
function getNames(){var i,out=[];for(i in names){if(names.hasOwnProperty(i)&&(zones[i]||zones[links[i]])&&names[i]){out.push(names[i]);}}
return out.sort();}
function addLink(aliases){var i,alias,normal0,normal1;if(typeof aliases==="string"){aliases=[aliases];}
for(i=0;i<aliases.length;i++){alias=aliases[i].split('|');normal0=normalizeName(alias[0]);normal1=normalizeName(alias[1]);links[normal0]=normal1;names[normal0]=alias[0];links[normal1]=normal0;names[normal1]=alias[1];}}
function loadData(data){addZone(data.zones);addLink(data.links);tz.dataVersion=data.version;}
function zoneExists(name){if(!zoneExists.didShowError){zoneExists.didShowError=true;logError("moment.tz.zoneExists('"+name+"') has been deprecated in favor of !moment.tz.zone('"+name+"')");}
return!!getZone(name);}
function needsOffset(m){var isUnixTimestamp=(m._f==='X'||m._f==='x');return!!(m._a&&(m._tzm===undefined)&&!isUnixTimestamp);}
function logError(message){if(typeof console!=='undefined'&&typeof console.error==='function'){console.error(message);}}
function tz(input){var args=Array.prototype.slice.call(arguments,0,-1),name=arguments[arguments.length-1],zone=getZone(name),out=moment.utc.apply(null,args);if(zone&&!moment.isMoment(input)&&needsOffset(out)){out.add(zone.parse(out),'minutes');}
out.tz(name);return out;}
tz.version=VERSION;tz.dataVersion='';tz._zones=zones;tz._links=links;tz._names=names;tz.add=addZone;tz.link=addLink;tz.load=loadData;tz.zone=getZone;tz.zoneExists=zoneExists;tz.guess=guess;tz.names=getNames;tz.Zone=Zone;tz.unpack=unpack;tz.unpackBase60=unpackBase60;tz.needsOffset=needsOffset;tz.moveInvalidForward=true;tz.moveAmbiguousForward=false;var fn=moment.fn;moment.tz=tz;moment.defaultZone=null;moment.updateOffset=function(mom,keepTime){var zone=moment.defaultZone,offset;if(mom._z===undefined){if(zone&&needsOffset(mom)&&!mom._isUTC){mom._d=moment.utc(mom._a)._d;mom.utc().add(zone.parse(mom),'minutes');}
mom._z=zone;}
if(mom._z){offset=mom._z.utcOffset(mom);if(Math.abs(offset)<16){offset=offset/60;}
if(mom.utcOffset!==undefined){mom.utcOffset(-offset,keepTime);}else{mom.zone(offset,keepTime);}}};fn.tz=function(name,keepTime){if(name){this._z=getZone(name);if(this._z){moment.updateOffset(this,keepTime);}else{logError("Moment Timezone has no data for "+name+". See http://momentjs.com/timezone/docs/#/data-loading/.");}
return this;}
if(this._z){return this._z.name;}};function abbrWrap(old){return function(){if(this._z){return this._z.abbr(this);}
return old.call(this);};}
function resetZoneWrap(old){return function(){this._z=null;return old.apply(this,arguments);};}
fn.zoneName=abbrWrap(fn.zoneName);fn.zoneAbbr=abbrWrap(fn.zoneAbbr);fn.utc=resetZoneWrap(fn.utc);moment.tz.setDefault=function(name){if(major<2||(major===2&&minor<9)){logError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js '+moment.version+'.');}
moment.defaultZone=name?getZone(name):null;return moment;};var momentProperties=moment.momentProperties;if(Object.prototype.toString.call(momentProperties)==='[object Array]'){momentProperties.push('_z');momentProperties.push('_a');}else if(momentProperties){momentProperties._z=null;}
return moment;}));
;angular.module("angularResizable",[]).directive("resizable",function(){function e(e){void 0===t?(t=e,setTimeout(function(){t(),t=void 0},100)):t=e}var t;return{restrict:"AE",scope:{rDirections:"=",rCenteredX:"=",rCenteredY:"=",rWidth:"=",rHeight:"=",rFlex:"=",rGrabber:"@"},link:function(t,r,n){t.$watch("rWidth",function(e){r[0].style.width=t.rWidth+"px"}),t.$watch("rHeight",function(e){r[0].style.height=t.rHeight+"px"}),r.addClass("resizable");for(var i,s,a,l,o,u=window.getComputedStyle(r[0],null),d=t.rDirections,c=t.rCenteredX?2:1,p=t.rCenteredY?2:1,h=t.rGrabber?t.rGrabber:"<span></span>",x={},g=function(){x.width=!1,x.height=!1,"x"==o?x.width=parseInt(t.rFlex?r[0].style.flexBasis:r[0].style.width):x.height=parseInt(t.rFlex?r[0].style.flexBasis:r[0].style.height),x.id=r[0].id},f=function(n){var u="x"==o?a-n.clientX:a-n.clientY;switch(l){case"top":t.rFlex?r[0].style.flexBasis=s+u*p+"px":r[0].style.height=s+u*p+"px";break;case"right":t.rFlex?r[0].style.flexBasis=i-u*c+"px":r[0].style.width=i-u*c+"px";break;case"bottom":t.rFlex?r[0].style.flexBasis=s-u*p+"px":r[0].style.height=s-u*p+"px";break;case"left":t.rFlex?r[0].style.flexBasis=i+u*c+"px":r[0].style.width=i+u*c+"px"}g(),e(function(){t.$emit("angular-resizable.resizing",x)})},m=function(e){g(),t.$emit("angular-resizable.resizeEnd",x),t.$apply(),document.removeEventListener("mouseup",m,!1),document.removeEventListener("mousemove",f,!1),r.removeClass("no-transition")},v=function(e,n){l=n,o="left"==l||"right"==l?"x":"y",a="x"==o?e.clientX:e.clientY,i=parseInt(u.getPropertyValue("width")),s=parseInt(u.getPropertyValue("height")),r.addClass("no-transition"),document.addEventListener("mouseup",m,!1),document.addEventListener("mousemove",f,!1),e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.cancelBubble=!0,e.returnValue=!1,g(),t.$emit("angular-resizable.resizeStart",x),t.$apply()},y=0;y<d.length;y++)!function(){var e=document.createElement("div"),t=d[y];e.setAttribute("class","rg-"+d[y]),e.innerHTML=h,r[0].appendChild(e),e.ondragstart=function(){return!1},e.addEventListener("mousedown",function(e){v(e,t)},!1)}()}}});
;/**
 * angular-ui-sortable - This directive allows you to jQueryUI Sortable.
 * @version v0.17.2 - 2017-08-17
 * @link http://angular-ui.github.com
 * @license MIT
 */

!function(a,b,c){"use strict";b.module("ui.sortable",[]).value("uiSortableConfig",{items:"> [ng-repeat],> [data-ng-repeat],> [x-ng-repeat]"}).directive("uiSortable",["uiSortableConfig","$timeout","$log",function(a,d,e){return{require:"?ngModel",scope:{ngModel:"=",uiSortable:"=",create:"&uiSortableCreate",start:"&uiSortableStart",activate:"&uiSortableActivate",beforeStop:"&uiSortableBeforeStop",update:"&uiSortableUpdate",remove:"&uiSortableRemove",receive:"&uiSortableReceive",deactivate:"&uiSortableDeactivate",stop:"&uiSortableStop"},link:function(f,g,h,i){function j(a,b){var c="function"==typeof a,d="function"==typeof b;return c&&d?function(){a.apply(this,arguments),b.apply(this,arguments)}:d?b:a}function k(a){var b=a.data("ui-sortable");return b&&"object"==typeof b&&"ui-sortable"===b.widgetFullName?b:null}function l(b,c){return C[b]?("stop"===b&&(c=j(c,function(){f.$apply()}),c=j(c,t)),c=j(C[b],c)):D[b]&&(c=D[b](c)),c||"items"!==b&&"ui-model-items"!==b||(c=a.items),c}function m(a,d,e){function f(a,b){b in A||(A[b]=null)}b.forEach(C,f);var g=null;if(d){var h;b.forEach(d,function(d,e){if(!(a&&e in a)){if(e in B)return void("ui-floating"===e?A[e]="auto":A[e]=l(e,c));h||(h=b.element.ui.sortable().options);var f=h[e];f=l(e,f),g||(g={}),g[e]=f,A[e]=f}})}return b.forEach(a,function(a,b){return b in B?("ui-floating"!==b||a!==!1&&a!==!0||!e||(e.floating=a),void(A[b]=l(b,a))):(a=l(b,a),g||(g={}),g[b]=a,void(A[b]=a))}),g}function n(a){var c=a.sortable("option","placeholder");if(c&&c.element&&"function"==typeof c.element){var d=c.element();return d=b.element(d)}return null}function o(a,b){var c=A["ui-model-items"].replace(/[^,]*>/g,""),d=a.find('[class="'+b.attr("class")+'"]:not('+c+")");return d}function p(a,b){var c=a.sortable("option","helper");return"clone"===c||"function"==typeof c&&b.item.sortable.isCustomHelperUsed()}function q(a,b){var c=null;return p(a,b)&&"parent"===a.sortable("option","appendTo")&&(c=z),c}function r(a){return/left|right/.test(a.css("float"))||/inline|table-cell/.test(a.css("display"))}function s(a,b){for(var c=0;c<a.length;c++){var d=a[c];if(d.element[0]===b[0])return d}}function t(a,b){b.item.sortable._destroy()}function u(a){return a.parent().find(A["ui-model-items"]).index(a)}function v(){f.$watchCollection("ngModel",function(){d(function(){k(g)&&g.sortable("refresh")},0,!1)}),C.start=function(a,d){if("auto"===A["ui-floating"]){var e=d.item.siblings(),f=k(b.element(a.target));f.floating=r(e)}var h=u(d.item);d.item.sortable={model:i.$modelValue[h],index:h,source:g,sourceList:d.item.parent(),sourceModel:i.$modelValue,cancel:function(){d.item.sortable._isCanceled=!0},isCanceled:function(){return d.item.sortable._isCanceled},isCustomHelperUsed:function(){return!!d.item.sortable._isCustomHelperUsed},_isCanceled:!1,_isCustomHelperUsed:d.item.sortable._isCustomHelperUsed,_destroy:function(){b.forEach(d.item.sortable,function(a,b){d.item.sortable[b]=c})},_connectedSortables:[],_getElementContext:function(a){return s(this._connectedSortables,a)}}},C.activate=function(a,b){var c=b.item.sortable.source===g,d=c?b.item.sortable.sourceList:g,e={element:g,scope:f,isSourceContext:c,savedNodesOrigin:d};b.item.sortable._connectedSortables.push(e),y=d.contents(),z=b.helper;var h=n(g);if(h&&h.length){var i=o(g,h);y=y.not(i)}},C.update=function(a,b){if(!b.item.sortable.received){b.item.sortable.dropindex=u(b.item);var c=b.item.parent().closest("[ui-sortable], [data-ui-sortable], [x-ui-sortable]");b.item.sortable.droptarget=c,b.item.sortable.droptargetList=b.item.parent();var d=b.item.sortable._getElementContext(c);b.item.sortable.droptargetModel=d.scope.ngModel,g.sortable("cancel")}var e=!b.item.sortable.received&&q(g,b,y);e&&e.length&&(y=y.not(e));var h=b.item.sortable._getElementContext(g);y.appendTo(h.savedNodesOrigin),b.item.sortable.received&&(y=null),b.item.sortable.received&&!b.item.sortable.isCanceled()&&(f.$apply(function(){i.$modelValue.splice(b.item.sortable.dropindex,0,b.item.sortable.moved)}),f.$emit("ui-sortable:moved",b))},C.stop=function(a,c){var d="dropindex"in c.item.sortable&&!c.item.sortable.isCanceled();if(d&&!c.item.sortable.received)f.$apply(function(){i.$modelValue.splice(c.item.sortable.dropindex,0,i.$modelValue.splice(c.item.sortable.index,1)[0])}),f.$emit("ui-sortable:moved",c);else if(!d&&!b.equals(g.contents().toArray(),y.toArray())){var e=q(g,c,y);e&&e.length&&(y=y.not(e));var h=c.item.sortable._getElementContext(g);y.appendTo(h.savedNodesOrigin)}y=null,z=null},C.receive=function(a,b){b.item.sortable.received=!0},C.remove=function(a,b){"dropindex"in b.item.sortable||(g.sortable("cancel"),b.item.sortable.cancel()),b.item.sortable.isCanceled()||f.$apply(function(){b.item.sortable.moved=i.$modelValue.splice(b.item.sortable.index,1)[0]})},b.forEach(C,function(a,b){C[b]=j(C[b],function(){var a,c=f[b];"function"==typeof c&&("uiSortable"+b.substring(0,1).toUpperCase()+b.substring(1)).length&&"function"==typeof(a=c())&&a.apply(this,arguments)})}),D.helper=function(a){return a&&"function"==typeof a?function(d,e){var f=e.sortable,h=u(e);e.sortable={model:i.$modelValue[h],index:h,source:g,sourceList:e.parent(),sourceModel:i.$modelValue,_restore:function(){b.forEach(e.sortable,function(a,b){e.sortable[b]=c}),e.sortable=f}};var j=a.apply(this,arguments);return e.sortable._restore(),e.sortable._isCustomHelperUsed=e!==j,j}:a},f.$watchCollection("uiSortable",function(a,b){var c=k(g);if(c){var d=m(a,b,c);d&&g.sortable("option",d)}},!0),m(A)}function w(){i?v():e.info("ui.sortable: ngModel not provided!",g),g.sortable(A)}function x(){return f.uiSortable&&f.uiSortable.disabled?!1:(w(),x.cancelWatcher(),x.cancelWatcher=b.noop,!0)}var y,z,A={},B={"ui-floating":c,"ui-model-items":a.items},C={create:null,start:null,activate:null,beforeStop:null,update:null,remove:null,receive:null,deactivate:null,stop:null},D={helper:null};return b.extend(A,B,a,f.uiSortable),b.element.fn&&b.element.fn.jquery?(x.cancelWatcher=b.noop,void(x()||(x.cancelWatcher=f.$watch("uiSortable.disabled",x)))):void e.error("ui.sortable: jQuery should be included before AngularJS!")}}}])}(window,window.angular);

;!function(e,t){if("function"==typeof define&&define.amd)define(["module","exports","angular","ws"],t);else if("undefined"!=typeof exports)t(module,exports,require("angular"),require("ws"));else{var o={exports:{}};t(o,o.exports,e.angular,e.ws),e.angularWebsocket=o.exports}}(this,function(e,t,o,n){"use strict";function s(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,o,n){function s(t,o,n){n||!k(o)||C(o)||(n=o,o=void 0),this.protocols=o,this.url=t||"Missing URL",this.ssl=/(wss)/i.test(this.url),this.scope=n&&n.scope||e,this.rootScopeFailover=n&&n.rootScopeFailover&&!0,this.useApplyAsync=n&&n.useApplyAsync||!1,this.initialTimeout=n&&n.initialTimeout||500,this.maxTimeout=n&&n.maxTimeout||3e5,this.reconnectIfNotNormalClose=n&&n.reconnectIfNotNormalClose||!1,this.binaryType=n&&n.binaryType||"blob",this._reconnectAttempts=0,this.sendQueue=[],this.onOpenCallbacks=[],this.onMessageCallbacks=[],this.onErrorCallbacks=[],this.onCloseCallbacks=[],f(this._readyStateConstants),t?this._connect():this._setInternalState(0)}return s.prototype._readyStateConstants={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3,RECONNECT_ABORTED:4},s.prototype._normalCloseCode=1e3,s.prototype._reconnectableStatusCodes=[4e3],s.prototype.safeDigest=function(e){e&&!this.scope.$$phase&&this.scope.$digest()},s.prototype.bindToScope=function(t){var o=this;return t&&(this.scope=t,this.rootScopeFailover&&this.scope.$on("$destroy",function(){o.scope=e})),o},s.prototype._connect=function(e){!e&&this.socket&&this.socket.readyState===this._readyStateConstants.OPEN||(this.socket=n.create(this.url,this.protocols),this.socket.onmessage=c["default"].bind(this,this._onMessageHandler),this.socket.onopen=c["default"].bind(this,this._onOpenHandler),this.socket.onerror=c["default"].bind(this,this._onErrorHandler),this.socket.onclose=c["default"].bind(this,this._onCloseHandler),this.socket.binaryType=this.binaryType)},s.prototype.fireQueue=function(){for(;this.sendQueue.length&&this.socket.readyState===this._readyStateConstants.OPEN;){var e=this.sendQueue.shift();this.socket.send(d(e.message)||"blob"!=this.binaryType?e.message:JSON.stringify(e.message)),e.deferred.resolve()}},s.prototype.notifyOpenCallbacks=function(e){for(var t=0;t<this.onOpenCallbacks.length;t++)this.onOpenCallbacks[t].call(this,e)},s.prototype.notifyCloseCallbacks=function(e){for(var t=0;t<this.onCloseCallbacks.length;t++)this.onCloseCallbacks[t].call(this,e)},s.prototype.notifyErrorCallbacks=function(e){for(var t=0;t<this.onErrorCallbacks.length;t++)this.onErrorCallbacks[t].call(this,e)},s.prototype.onOpen=function(e){return this.onOpenCallbacks.push(e),this},s.prototype.onClose=function(e){return this.onCloseCallbacks.push(e),this},s.prototype.onError=function(e){return this.onErrorCallbacks.push(e),this},s.prototype.onMessage=function(e,t){if(!y(e))throw new Error("Callback must be a function");if(t&&b(t.filter)&&!d(t.filter)&&!(t.filter instanceof RegExp))throw new Error("Pattern must be a string or regular expression");return this.onMessageCallbacks.push({fn:e,pattern:t?t.filter:void 0,autoApply:t?t.autoApply:!0}),this},s.prototype._onOpenHandler=function(e){this._reconnectAttempts=0,this.notifyOpenCallbacks(e),this.fireQueue()},s.prototype._onCloseHandler=function(e){var t=this;t.useApplyAsync?t.scope.$applyAsync(function(){t.notifyCloseCallbacks(e)}):(t.notifyCloseCallbacks(e),t.safeDigest(!0)),(this.reconnectIfNotNormalClose&&e.code!==this._normalCloseCode||this._reconnectableStatusCodes.indexOf(e.code)>-1)&&this.reconnect()},s.prototype._onErrorHandler=function(e){var t=this;t.useApplyAsync?t.scope.$applyAsync(function(){t.notifyErrorCallbacks(e)}):(t.notifyErrorCallbacks(e),t.safeDigest(!0))},s.prototype._onMessageHandler=function(e){function t(e,t,o){o=m.call(arguments,2),s.useApplyAsync?s.scope.$applyAsync(function(){e.apply(s,o)}):(e.apply(s,o),s.safeDigest(t))}for(var o,n,s=this,r=0;r<s.onMessageCallbacks.length;r++)n=s.onMessageCallbacks[r],o=n.pattern,o?d(o)&&e.data===o?t(n.fn,n.autoApply,e):o instanceof RegExp&&o.exec(e.data)&&t(n.fn,n.autoApply,e):t(n.fn,n.autoApply,e)},s.prototype.close=function(e){return!e&&this.socket.bufferedAmount||this.socket.close(),this},s.prototype.send=function(e){function o(e){e.cancel=s;var t=e.then;return e.then=function(){var e=t.apply(this,arguments);return o(e)},e}function s(t){return i.sendQueue.splice(i.sendQueue.indexOf(e),1),r.reject(t),i}var r=t.defer(),i=this,a=o(r.promise);return i.readyState===i._readyStateConstants.RECONNECT_ABORTED?r.reject("Socket connection has been closed"):(i.sendQueue.push({message:e,deferred:r}),i.fireQueue()),n.isMocked&&n.isMocked()&&n.isConnected(this.url)&&this._onMessageHandler(n.mockSend()),a},s.prototype.reconnect=function(){this.close();var e=this._getBackoffDelay(++this._reconnectAttempts),t=e/1e3;return console.log("Reconnecting in "+t+" seconds"),o(c["default"].bind(this,this._connect),e),this},s.prototype._getBackoffDelay=function(e){var t=Math.random()+1,o=this.initialTimeout,n=2,s=e,r=this.maxTimeout;return Math.floor(Math.min(t*o*Math.pow(n,s),r))},s.prototype._setInternalState=function(e){if(Math.floor(e)!==e||0>e||e>4)throw new Error("state must be an integer between 0 and 4, got: "+e);h||(this.readyState=e||this.socket.readyState),this._internalConnectionState=e,g(this.sendQueue,function(e){e.deferred.reject("Message cancelled due to closed socket connection")})},h&&h(s.prototype,"readyState",{get:function(){return this._internalConnectionState||this.socket.readyState},set:function(){throw new Error("The readyState property is read-only")}}),function(e,t,o){return new s(e,t,o)}}function i(e){this.create=function(e,t){var o=/wss?:\/\//.exec(e);if(!o)throw new Error("Invalid url provided");return t?new a(e,t):new a(e)},this.createWebSocketBackend=function(t,o){return e.warn("Deprecated: Please use .create(url, protocols)"),this.create(t,o)}}Object.defineProperty(t,"__esModule",{value:!0});var a,c=s(o),l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};if("object"===("undefined"==typeof t?"undefined":l(t))&&"function"==typeof require)try{a=n.Client||n.client||n}catch(u){}a=a||window.WebSocket||window.MozWebSocket;var p=c["default"].noop,f=Object.freeze?Object.freeze:p,h=Object.defineProperty,d=c["default"].isString,y=c["default"].isFunction,b=c["default"].isDefined,k=c["default"].isObject,C=c["default"].isArray,g=c["default"].forEach,m=Array.prototype.slice;Array.prototype.indexOf||(Array.prototype.indexOf=function(e){var t=this.length>>>0,o=Number(arguments[1])||0;for(o=0>o?Math.ceil(o):Math.floor(o),0>o&&(o+=t);t>o;o++)if(o in this&&this[o]===e)return o;return-1}),c["default"].module("ngWebSocket",[]).factory("$websocket",["$rootScope","$q","$timeout","$websocketBackend",r]).factory("WebSocket",["$rootScope","$q","$timeout","WebsocketBackend",r]).service("$websocketBackend",["$log",i]).service("WebSocketBackend",["$log",i]),c["default"].module("angular-websocket",["ngWebSocket"]),t["default"]=c["default"].module("ngWebSocket"),e.exports=t["default"]});
//# sourceMappingURL=angular-websocket.min.js.map
