ichart.1.2.min.js 93.7 KB
!function(t){var e=navigator.userAgent.toLowerCase(),R=Object.prototype.toString,M=/opera/.test(e),L=/\bchrome\b/.test(e),H=/webkit/.test(e),F=!L&&/safari/.test(e),B=!M&&/msie/.test(e),X=!!document.createElement("canvas").getContext,Y=!H&&/gecko/.test(e),j=/ipod|ipad|iphone|android/gi.test(e),V=function(t,e,i,n){return i*t/n+e},W={easeIn:function(t,e,i,n){return i*(t/=n)*t*t+e},easeOut:function(t,e,i,n){return i*((t=t/n-1)*t*t+1)+e},easeInOut:function(t,e,i,n){return(t/=n/2)<1?i/2*t*t*t+e:i/2*((t-=2)*t*t+2)+e}},q=function(s){var a,r,e=!1,i=!1,n=[],o=document.addEventListener?function(){document.removeEventListener("DOMContentLoaded",o,!1),c()}:document.attachEvent?function(){"complete"===document.readyState&&(document.detachEvent("onreadystatechange",o),c())}:void 0,l=function(){if(!e){try{document.documentElement.doScroll("left")}catch(t){return void setTimeout(l,1)}c()}},c=function(){if(!e){e=!0;for(var t=0;t<n.length;t++)n[t].call(document);n=[]}},u=function(t){!function(){if(!i){if(i=!0,"complete"===document.readyState)return setTimeout(c,1);if(document.addEventListener)document.addEventListener("DOMContentLoaded",o,!1),s.addEventListener("load",c,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",o),s.attachEvent("onload",c);var t=!1;try{t=null==s.frameElement}catch(t){}document.documentElement.doScroll&&t&&l()}}}(),e?t.call(document,d):n.push(function(){return t.call(this)})},d=function(t){return!t||t.nodeType?t:"string"==typeof t?(-1!=t.indexOf("#")&&(t=t.substring(1)),document.getElementById(t)):void("function"==typeof t&&u(t))};d.apply=function(t,e){if(t&&e&&"object"==typeof e)for(var i in e)void 0!==e[i]&&(t[i]=e[i]);if(e||!t)return t;var n={};for(i in t)n[i]=t[i];return n},d.apply(d,{version:"1.0",email:"taylor@ichartjs.com",isEmpty:function(t,e){return null==t||d.isArray(t)&&!t.length||!e&&""===t},isArray:function(t){return"[object Array]"===R.apply(t)},isDate:function(t){return"[object Date]"===R.apply(t)},isObject:function(t){return!!t&&"[object Object]"===R.apply(t)},isFunction:function(t){return"[object Function]"===R.apply(t)},isNumber:function(t){return"number"==typeof t&&isFinite(t)},isString:function(t){return"string"==typeof t},isBoolean:function(t){return"boolean"==typeof t},isFalse:function(t){return"boolean"==typeof t&&!t},isElement:function(t){return!!t&&!!t.tagName},isDefined:function(t){return void 0!==t}}),d.applyIf=function(t,e){if(t&&d.isObject(e))for(var i in e)d.isDefined(e[i])&&!d.isDefined(t[i])&&(t[i]=e[i]);return!e&&t?d.apply(t):t},d.merge=function(t,e,i){if(t&&d.isObject(e)){for(var n in e)d.isDefined(e[n])&&(d.isObject(e[n])?d.isObject(t[n])?d.merge(t[n],e[n]):t[n]=d.clone(e[n],!0):t[n]=e[n]);if(d.isObject(i))return d.merge(t,i)}return t},d.clone=function(t,e,i){var n={};if(d.isArray(t)&&d.isObject(e))for(var o=0;o<t.length;o++)n[t[o]]=i&&d.isObject(e[t[o]])?d.clone(e[t[o]],i):e[t[o]];else if(d.isObject(t))for(o in t)n[o]=e&&d.isObject(t[o])&&!t[o].ICHARTJS_OBJECT?d.clone(t[o],e):t[o];return n},d.override=function(t,e){if(t&&e){var i=t.prototype;d.apply(i,e),d.isIE&&e.hasOwnProperty("toString")&&(i.toString=e.toString)}},d.extend=(a=function(t){for(var e in t)this[e]=t[e]},r=Object.prototype.constructor,function(t,e){var i=function(){t.apply(this,arguments)},n=function(){},o=t.prototype;return n.prototype=o,(((n=i.prototype=new n).constructor=i).superclass=o).constructor==r&&(o.constructor=t),i.override=function(t){d.override(i,t)},n.superclass=n.supr=function(){return o},n.override=a,d.override(i,e),i.extend=function(t){return d.extend(i,t)},i.plugin_={},i.plugin=function(t,e){d.isString(t)&&d.isFunction(e)&&(i.plugin_[t]=e)},i});var h,g=Math.sin,p=Math.cos,f=Math.atan,y=Math.sqrt,x=Math.abs,_=Math.PI,b=2*_,m=Math.ceil,v=Math.round,w=Math.floor,T=Math.max,A=Math.min,C=parseFloat,D={},k={},S=function(t,e){if(0==t)return t;var i=x(t),n=.1;if(1<i){for(;1<i;)i/=10,n*=10;return w(t/n+e)*n}for(n=1;i<1;)i*=10,n*=10;return v(t*n+e)/n},E={white:"rgb(255,255,255)",green:"rgb(0,128,0)",gray:"rgb(80,80,80)",red:"rgb(255,0,0)",blue:"rgb(0,0,255)",yellow:"rgb(255,255,0)",black:"rgb(0,0,0)"},z=function(t){var e=/rgb\((\w*),(\w*),(\w*)\)/.exec(t);if(e)return[e[1],e[2],e[3]];if(e=/rgba\((\w*),(\w*),(\w*),(.*)\)/.exec(t))return[e[1],e[2],e[3],e[4]];throw Error("invalid colors value '"+t+"'")},P=function(t){if(!t)return t;if(t=t.replace(/\s/g,"").toLowerCase(),/^rgb\([0-9]{1,3},[0-9]{1,3},[0-9]{1,3}\)$/.exec(t)||/^rgba\([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},(0(\.[0-9])?|1(\.0)?)\)$/.exec(t))return t;if(/^#(([a-fA-F0-9]{6,7})|([a-fA-F0-9]{3}))$/.exec(t))return(7==(t=t.replace(/#/g,"").replace(/^(\w)(\w)(\w)$/,"$1$1$2$2$3$3")).length?"rgba(":"rgb(")+parseInt(t.substring(0,2),16)+","+parseInt(t.substring(2,4),16)+","+parseInt(t.substring(4,6),16)+(7==t.length?",0."+t.substring(6,7)+")":")");if(E[t])return E[t];throw Error("invalid colors value '"+t+"'")},O=function(t,e){return e=e||.14,.5<t?e-(1-t)/10:.1<t?e-.16+t/5:e<t?e:t/2},I=function(t,e,i,n){if(!e)return e;var o;o=e=z(P(e));var s=void 0,a=void 0;d.isArray(o)&&(s=o[1],a=o[2],o=o[0]);a/=255;var r,l,c=T(T(o/=255,s=s/255),a);0==(r=c-(r=A(A(o,s),a)))?o=[0,0,c]:(o==c?l=(s-a)/r:s==c?l=(a-o)/r+2:a==c&&(l=(o-s)/r+4),(l*=60)<0&&(l+=360),o=[l,r/c,c]);o[1]-=0!=n?n||.05:n,o[2]=t?(o[2]-=O(o[2],i),o[1]=d.upTo(o[1],1),d.lowTo(o[2],0)):(o[2]+=O(1-o[2],i),o[1]=d.lowTo(o[1],0),d.upTo(o[2],1)),n=e[3],t=e=void 0,d.isArray(o)&&(t=n,n=o[1],e=o[2],o=o[0]);var u,h,g;a=o/60-(i=w(o/60)%6);switch(o=e*(1-n),s=e*(1-n*a),n=e*(1-n*(1-a)),i){case 0:u=e,h=n,g=o;break;case 1:u=s,h=e,g=o;break;case 2:u=o,h=e,g=n;break;case 3:u=o,h=s,g=e;break;case 4:u=n,h=o,g=e;break;case 5:u=e,h=o,g=s}return"rgb"+(t?"a":"")+"("+v(255*u)+","+v(255*h)+","+v(255*g)+(t?","+t+")":")")};return d.apply(d,{getFont:function(t,e,i,n){return t+" "+e+(n||"px")+" "+i},getDoc:function(){return s.contentWindow?s.contentWindow.document:s.contentDocument?s.contentDocument:s.document},DefineAbstract:function(t,e){if(!e[t])throw Error("Cannot instantiate the type '"+e.type+"'.you must implements it with method '"+t+"'.")},getAA:function(t){return"linear"==t?V:"easeInOut"==t||"easeIn"==t||"easeOut"==t?W[t]:V},noConflict:function(){return q},plugin:function(t,e,i){d.isFunction(t)&&t.plugin(e,i)},parsePadding:function(t,e){return t=t||0,d.isNumber(t)?[t,t,t,t]:(d.isArray(t)||(e=e||0,1==(t=t.replace(/^\s+|\s+$/g,"").replace(/\s{2,}/g,/\s/).replace(/\s/g,",").split(",")).length?t[0]=t[1]=t[2]=t[3]=C(t[0])||e:2==t.length?(t[0]=t[2]=C(t[0])||e,t[1]=t[3]=C(t[1])||e):3==t.length?(t[0]=C(t[0])||e,t[1]=t[3]=C(t[1])||e,t[2]=C(t[2])||e):(t[0]=C(t[0])||e,t[1]=C(t[1])||e,t[2]=C(t[2])||e,t[3]=C(t[3])||e)),t)},distanceP2P:function(t,e,i,n){return y((i-t)*(i-t)+(n-e)*(n-e))},atan2Radian:function(t,e,i,n){if(t==i)return e<n?_/2:3*_/2;if(e==n)return t<i?0:_;var o=d.quadrant(t,e,i,n);t=f(x((e-n)/(t-i)));return o?(3==o?b:_)+(2==o?t:-t):t},angle2Radian:function(t){return t*_/180},radian2Angle:function(t){return 180*t/_},quadrant:function(t,e,i,n){return t<i?e<n?0:3:e<n?1:2},toPI2:function(t){for(;t<0;)t+=b;return t},visible:function(t,e,i){if(e<=t)return[];var n=d.quadrantd(t),o=d.quadrantd(e);if((2==n||3==n)&&(2==o||3==o)&&e-t<_)return[];if(t=d.toPI2(t),(e=d.toPI2(e))<=t&&(e+=b),_<t)t=b;else{if(b<e)return[{s:t,e:_,f:i},{s:b,e:e,f:i}];_<e&&(e=_)}return{s:t,e:e,f:i}},quadrantd:function(t){if(0==t)return 0;if(0==t%b)return 3;for(;t<0;)t+=b;return m(t%b*2/_)-1},upTo:function(t,e){return t<e?t:e},lowTo:function(t,e){return e<t?t:e},between:function(t,e,i){return e<t?d.between(e,t,i):e<i?e:i<t?t:i},inRange:function(t,e,i){return i<e&&t<i},angleInRange:function(t,e,i){return i=(i-=t)<0?i+b:i,(i%=b)<e-t},angleZInRange:function(t,e,i){return e<t?t<i||i<e:i<e&&t<i},inRangeClosed:function(t,e,i){return i<=e&&t<=i},inEllipse:function(t,e,i,n){return t*t/i/i+e*e/n/n<=1},p2Point:function(t,e,i,n){return{x:t+p(i)*n,y:e+g(i)*n}},toRgb:P,toRgba:function(t,e){var i=z(P(t));return"rgba("+i[0]+","+i[1]+","+i[2]+","+e+")"},vectorP2P:function(t,e,i){return i||(e=d.angle2Radian(e),t=d.angle2Radian(t)),{x:(e=g(e))*g(t),y:e*p(t)}},uid:function(t){return(t||"ichartjs")+"_"+m(1e4*Math.random())+(new Date).getTime().toString().substring(4)},register:function(t){if(d.isString(t))k[t.toLowerCase()]=t;else{var e=t.get("id");if(!e||""==e){for(e=d.uid(t.type);D[e];)e=d.uid(t.type);t.push("id",e)}if(D[e])throw Error("exist reduplicate id :"+e);t.id=e,D[e]=t}},create:function(t){if(!t.type||!k[t.type])throw Error("TypeNotFoundException["+t.type+"]");return new d[k[t.type]](t)},get:function(t){return D[t]},isPercent:function(t){return d.isString(t)&&t.match(/(.*)%/)},parsePercent:function(t,e){return d.isString(t)&&(t=t.match(/(.*)%/))&&(t=e?w(C(t[1])*e/100):t[1]/100),!t||t<=0||e<t?e:t},parseFloat:function(t,e){if(!d.isNumber(t)&&(t=C(t),!d.isNumber(t)))throw Error("["+e+"]="+t+"is not a valid number.");return t},ceil:function(t){return S(t,1)},floor:function(t){return S(t,-1)},_2D:"2d",_3D:"3d",light:function(t,e,i){return I(!1,t,e,i)},dark:function(t,e,i){return I(!0,t,e,i)},fixPixel:function(t){return d.isNumber(t)?t:C(t.replace("px",""))||0},toPixel:function(t){return d.isNumber(t)?t+"px":d.fixPixel(t)+"px"},emptyFn:function(){return!0},supportCanvas:X,isOpera:M,isWebKit:H,isChrome:L,isSafari:F,isIE:B,isGecko:Y,isMobile:j,touch:"ontouchend"in document,FRAME:j?30:60}),d.Assert={isTrue:function(t,e){if(!0!==t)throw Error(e)}},d.requestAnimFrame=(h=s.requestAnimationFrame||s.webkitRequestAnimationFrame||s.mozRequestAnimationFrame||s.oRequestAnimationFrame||s.msRequestAnimationFrame||function(t){s.setTimeout(t,1e3/60)},function(t){h(t)}),d.Event={addEvent:function(t,e,i,n){t.addEventListener?t.addEventListener(e,i,n):t.attachEvent?t.attachEvent("on"+e,i):t["on"+e]=i},fix:function(t){void 0===t&&(t=s.event);var e={target:t.target,pageX:t.pageX,pageY:t.pageY,offsetX:t.offsetX,offsetY:t.offsetY,stopPropagation:!1,event:t};if(void 0===t.offsetX){if(t.target||(e.target=t.srcElement||document),t.targetTouches&&(e.pageX=t.targetTouches[0].pageX,e.pageY=t.targetTouches[0].pageY),null==e.pageX&&null!=t.clientX){var i=document.documentElement,n=document.body;e.pageX=t.clientX+(i&&i.scrollLeft||n&&n.scrollLeft||0)-(i&&i.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(i&&i.scrollTop||n&&n.scrollTop||0)-(i&&i.clientTop||n&&n.clientTop||0)}n=i=0;for(var o=t.target;o!=document.body&&o;)i+=o.offsetLeft-(o.scrollLeft||0),n+=o.offsetTop,o=o.offsetParent;e.offsetX=e.pageX-i,e.offsetY=e.pageY-n}return e.x=e.offsetX,e.y=e.offsetY,t.stopPropagation||(t.stopPropagation=function(){s.event.cancelBubble=!0}),e}},d}(t);Array.prototype.each=function(t,e){for(var i,n=this.length,o=0;o<n&&("boolean"!=typeof(i=e?t.call(e,this[o],o):t(this[o],o))||i);o++);return this},Array.prototype.eachAll=function(i,n){this.each(function(t,e){return q.isArray(t)?t.eachAll(i,n):n?i.call(n,t,e):i(t,e)},n)},Array.prototype.sor=function(t){for(var e,i=this.length-1,n=0;n<i;n++)for(var o=i;n<o;o--)(t?!t(this[o],this[o-1]):this[o]<this[o-1])&&(e=this[o],this[o]=this[o-1],this[o-1]=e)},t.iChart=q,t.$||(t.$=t.iChart)}(window),function(v){v.Element=function(t){var e=this._();e.type="element",e.ICHARTJS_OBJECT=!0,v.DefineAbstract("configure",e),v.DefineAbstract("afterConfiguration",e),e.options={},e.set({border:{enable:!1,color:"#BCBCBC",style:"solid",width:1,radius:0},shadow:!1,shadow_color:"#666666",shadow_blur:4,shadow_offsetx:0,shadow_offsety:0}),e.W="width",e.H="height",e.O="top",e.B="bottom",e.L="left",e.R="right",e.C="center",e.X="originx",e.Y="originy",e.variable={},e.events={mouseup:[],touchstart:[],touchmove:[],touchend:[],mousedown:[],dblclick:[]},e.registerEvent("initialize"),e.initialization=!1,e.configure.apply(e,Array.prototype.slice.call(arguments,1)),e.default_=v.clone(e.options,!0),e.set(t),e.afterConfiguration(e)},v.Element.prototype={_:function(){return this},afterConfiguration:function(t){if(v.isObject(t.get("listeners")))for(var e in t.get("listeners"))t.on(e,t.get("listeners")[e]);t.initialize(),t.fireEvent(t,"initialize",[t])},registerEvent:function(){for(var t=0;t<arguments.length;t++)this.events[arguments[t]]=[]},fireString:function(t,e,i,n){return t=this.fireEvent(t,e,i),v.isString(t)?t:!0!==t&&v.isDefined(t)?t.toString():n},fireEvent:function(t,e,i){var n=this.events[e].length;if(1==n)return this.events[e][0].apply(t,i);for(var o=!0,s=0;s<n;s++)this.events[e][s].apply(t,i)||(o=!1);return o},on:function(t,e){return v.isString(t)&&v.isArray(this.events[t])?this.events[t].push(e):v.isArray(t)&&t.each(function(t){this.on(t,e)},this),this},getPlugin:function(t){return this.constructor.plugin_[t]},set:function(t){v.isObject(t)&&v.merge(this.options,t)},pushIf:function(t,e){return v.isDefined(this.get(t))&&null!=this.get(t)?this.get(t):this.push(t,e)},push:function(t,e){for(var i=t.split("."),n=i.length-1,o=this.options,s=0;s<n;s++)o[i[s]]||(o[i[s]]={}),o=o[i[s]];return o[i[n]]=e},get:function(t){t=t.split(".");for(var e=this.options[t[0]],i=1;i<t.length;i++){if(!e)return null;e=e[t[i]]}return e}},v.Painter=v.extend(v.Element,{configure:function(){this.type="painter",this.dimension=v._2D,v.DefineAbstract("commonDraw",this),v.DefineAbstract("initialize",this),this.set({strokeStyle:"gray",padding:10,color:"black",offsetx:0,offsety:0,background_color:"#FEFEFE",color_factor:.15,style:"",border:{enable:!0},gradient:!1,gradient_mode:"LinearGradientUpDown",z_index:0,listeners:null,originx:null,originy:null}),this.variable.event={mouseover:!1},this.variable.animation={},this.registerEvent("click","mousemove","mouseover","mouseout","beforedraw","draw")},is3D:function(){return this.dimension==v._3D},applyGradient:function(t,e,i,n){var o=this._();o.get("gradient")&&o.get("f_color")&&(o.push("f_color",o.T.gradient(t||o.x||0,e||o.y||0,i||o.get(o.W),n||o.get(o.H),[o.get("dark_color"),o.get("light_color")],o.get("gradient_mode"))),o.push("light_color",o.T.gradient(t||o.x||0,e||o.y||0,i||o.get(o.W),n||o.get(o.H),[o.get("background_color"),o.get("light_color")],o.get("gradient_mode"))),o.push("f_color_",o.get("f_color")))},draw:function(t,e){if(e)this.root.draw(t);else{if(!this.fireEvent(this,"beforedraw",[this,t]))return this;this.commonDraw(this,t),this.fireEvent(this,"draw",[this,t])}},inject:function(t){t&&(this.root=t,this.target=this.T=t.T)},doConfig:function(){var t=this._(),e=v.parsePadding(t.get("padding")),i=(i=t.get("border.enable"))?v.parsePadding(t.get("border.width")):[0,0,0,0],n=v.toRgb(t.get("background_color")),o=t.get("color_factor"),s=t.get("gradient")?0:null;t.set({border_top:i[0],border_right:i[1],border_bottom:i[2],border_left:i[3],hborder:i[1]+i[3],vborder:i[0]+i[2],padding_top:e[0]+i[0],padding_right:e[1]+i[1],padding_bottom:e[2]+i[2],padding_left:e[3]+i[3],hpadding:e[1]+e[3]+i[1]+i[3],vpadding:e[0]+e[2]+i[0]+i[2]}),!0===t.get("shadow")&&t.push("shadow",{color:t.get("shadow_color"),blur:t.get("shadow_blur"),offsetx:t.get("shadow_offsetx"),offsety:t.get("shadow_offsety")}),t.push("f_color",n),t.push("f_color_",n),t.push("light_color",v.light(n,o,s)),t.push("dark_color",v.dark(n,.8*o,s)),t.push("light_color2",v.light(n,2*o,s)),t.is3D()&&!t.get("xAngle_")&&(e=v.vectorP2P(t.get("xAngle"),t.get("yAngle")),t.push("xAngle_",e.x),t.push("yAngle_",e.y))}}),v.Html=v.extend(v.Element,{configure:function(t){this.type="html",this.T=t,v.DefineAbstract("beforeshow",this),this.set({animation:!0,default_action:!0,width:0,height:0,style:"",index:999,offset_top:0,offset_left:0}),this.transitions=""},initialize:function(){var t=this._();t.wrap=t.get("wrap"),t.dom=document.createElement("div"),t.get("shadow")&&t.css("boxShadow",t.get("shadow_offsetx")+"px "+t.get("shadow_offsety")+"px "+t.get("shadow_blur")+"px "+t.get("shadow_color")),t.get("border.enable")&&(t.css("border",t.get("border.width")+"px "+t.get("border.style")+" "+t.get("border.color")),t.css("borderRadius",t.get("border.radius")+"px")),t.css("position","absolute"),t.css("zIndex",t.get("index")),t.applyStyle(),t.wrap.appendChild(t.dom),t.style=t.dom.style,t.get("default_action")&&t.doAction(t)},width:function(){return this.dom.offsetWidth},height:function(){return this.dom.offsetHeight},onTransitionEnd:function(t,e){var i="transitionend";v.isWebKit?i="webkitTransitionEnd":v.isOpera&&(i="oTransitionEnd"),v.Event.addEvent(this.dom,i,t,e)},destroy:function(){this.wrap.removeChild(this.dom),this.dom=null},transition:function(t){this.transitions=""==this.transitions?t:this.transitions+","+t,v.isWebKit?this.css("WebkitTransition",this.transitions):v.isGecko?this.css("MozTransition",this.transitions):v.isOpera?this.css("OTransition",this.transitions):this.css("transition",this.transitions)},beforeshow:function(t,e,i){i.follow(t,e,i)},show:function(t,e){this.beforeshow(t,e,this),this.css("visibility","visible"),this.get("animation")&&this.css("opacity",1)},hidden:function(){this.css("visibility","hidden")},getDom:function(){return this.dom},css:function(t,e){if(v.isString(t)){if(!v.isDefined(e))return this.dom.style[t];this.dom.style[t]=e}},applyStyle:function(){for(var t,e=this.get("style").split(";"),i=0;i<e.length;i++)1<(t=e[i].split(":")).length&&this.css(t[0],t[1])}}),v.Component=v.extend(v.Painter,{configure:function(t){v.Component.superclass.configure.apply(this,arguments),this.type="component",this.set({fontsize:12,font:"Verdana",fontweight:"normal",fontunit:"px",tip:{enable:!1,border:{width:2}}}),this.ICHARTJS_CHART=this.proxy=this.atomic=!1,this.inject(t)},initialize:function(){v.DefineAbstract("isEventValid",this),v.DefineAbstract("doDraw",this),this.doConfig(),this.initialization=!0},getDimension:function(){return{x:this.x,y:this.y,width:this.get("width"),height:this.get("height")}},destroy:function(){this.tip&&this.tip.destroy()},doConfig:function(){v.Component.superclass.doConfig.call(this);var t=this._(),e=t.get(t.W),i=t.get("maxwidth"),n=t.get(t.X);if(e&&i&&(i<(e=t.push(t.W,v.parsePercent(e,i)))&&(e=t.push("width",i)),e<i)){var o=t.get("align")||t.C;o==t.C?n+=(i-e)/2:o==t.R&&(n+=i-e)}t.x=t.push(t.X,n+t.get("offsetx")),t.y=t.push(t.Y,t.get(t.Y)+t.get("offsety")),t.push("fontStyle",v.getFont(t.get("fontweight"),t.get("fontsize"),t.get("font"),t.get("fontunit"))),t.data=t.get("data"),t.get("tip.enable")&&(t.pushIf("tip.border.color",t.get("f_color")),v.isFunction(t.get("tip.invokeOffset"))||t.push("tip.invokeOffset",t.tipInvoke()))},isMouseOver:function(t){return this.isEventValid(t,this)},redraw:function(t){this.root.draw(t,this.root.Combination)},last:v.emptyFn,commonDraw:function(t){t.proxy||t.doDraw.call(t,t)}}),v.Tip=v.extend(v.Html,{configure:function(){v.Tip.superclass.configure.apply(this,arguments),this.type="tip",this.set({name:"",index:0,value:"",text:"",showType:"follow",invokeOffset:null,fade_duration:300,move_duration:100,timing_function:"ease-out",invokeOffsetDynamic:!1,style:"textAlign:left;padding:4px 5px;cursor:pointer;backgroundColor:rgba(239,239,239,.85);fontSize:12px;color:black;",border:{enable:!0,radius:5},delay:200}),this.registerEvent("parseText")},position:function(t,e,i){i.style.top=(t<0?0:t)+"px",i.style.left=(e<0?0:e)+"px"},follow:function(t,e,i){i.get("invokeOffsetDynamic")?e.hit&&((v.isString(e.text)||v.isNumber(e.text))&&i.text(e.name,e.value,e.text,e.i,i),t=i.get("invokeOffset")(i.width(),i.height(),e),i.position(t.top,t.left,i)):"follow"!=i.get("showType")&&v.isFunction(i.get("invokeOffset"))?(t=i.get("invokeOffset")(i.width(),i.height(),e),i.position(t.top,t.left,i)):i.position(t.y-1.1*i.height()-2,t.x+2,i)},text:function(t,e,i,n,o){o.dom.innerHTML=o.fireString(o,"parseText",[o,t,e,i,n],i)},hidden:function(){this.get("animation")?this.css("opacity",0):this.css("visibility","hidden")},doAction:function(n){n.T.on("mouseover",function(t,e,i){n.show(e,i)}).on("mouseout",function(t,e){n.hidden(e)}),"follow"==n.get("showType")&&n.T.on("mousemove",function(t,e,i){n.T.variable.event.mouseover&&setTimeout(function(){n.T.variable.event.mouseover&&n.follow(e,i,n)},n.get("delay"))})},initialize:function(){v.Tip.superclass.initialize.call(this);var t=this._();if(t.text(t.get("name"),t.get("value"),t.get("text"),t.get("index"),t),t.hidden(),t.get("animation")){var e=t.get("move_duration")/1e3+"s "+t.get("timing_function")+" 0s";t.transition("opacity "+t.get("fade_duration")/1e3+"s "+t.get("timing_function")+" 0s"),t.transition("top "+e),t.transition("left "+e),t.onTransitionEnd(function(){0==t.css("opacity")&&t.css("visibility","hidden")},!1)}}}),v.CrossHair=v.extend(v.Html,{configure:function(){v.CrossHair.superclass.configure.apply(this,arguments),this.type="crosshair",this.set({top:0,left:0,hcross:!0,vcross:!0,invokeOffset:null,line_width:1,line_color:"#1A1A1A",delay:200})},follow:function(t,e,i){i.get("invokeOffset")?(t=i.get("invokeOffset")(t,e))&&t.hit?(i.o_valid=!0,i.position(t.top-i.top,t.left-i.left,i)):(!t||!i.o_valid)&&i.position(i.owidth,i.oheight,i):i.position(t.y-i.top-1,t.x-i.left-1,i)},position:function(t,e,i){i.horizontal.style.top=t-i.size+"px",i.vertical.style.left=e-i.size+"px"},doCreate:function(t,e,i){var n=document.createElement("div");return n.style.width=v.toPixel(e),n.style.height=v.toPixel(i),n.style.backgroundColor=t.get("line_color"),n.style.position="absolute",t.dom.appendChild(n),n},doAction:function(n){n.T.on("mouseover",function(t,e,i){n.show(e,i)}).on("mouseout",function(t,e,i){n.hidden(e,i)}).on("mousemove",function(t,e,i){n.follow(e,i,n)})},initialize:function(){v.CrossHair.superclass.initialize.call(this);var t=this._(),e=v.toPixel(t.get("line_width"));t.size=t.get("line_width")/2,t.top=v.fixPixel(t.get(t.O)),t.left=v.fixPixel(t.get(t.L)),t.owidth=-t.T.root.width,t.oheight=-t.T.root.height,t.o_valid=!1,t.css("width","0px"),t.css("height","0px"),t.css("top",t.top+"px"),t.css("left",t.left+"px"),t.css("visibility","hidden"),t.horizontal=t.doCreate(t,t.get("hcross")?v.toPixel(t.get(t.W)):"0px",e),t.vertical=t.doCreate(t,e,t.get("vcross")?v.toPixel(t.get(t.H)):"0px")}}),v.Legend=v.extend(v.Component,{configure:function(){v.Legend.superclass.configure.apply(this,arguments),this.type="legend",this.set({data:void 0,width:"auto",column:1,row:"max",maxwidth:0,line_height:16,sign:"square",sign_size:10,sign_space:5,legend_space:5,z_index:1009,text_with_sign_color:!1,align:"right",valign:"middle"}),this.atomic=!0,this.registerEvent("parse")},isEventValid:function(i,n){var o={valid:!1};return i.x>this.x&&i.x<n.x+n.width&&i.y>n.y&&i.y<n.y+n.height&&n.data.each(function(t,e){if(i.x>t.x&&i.x<t.x+t.width_+n.get("signwidth")&&i.y>t.y&&i.y<t.y+n.get("line_height"))return!(o={valid:!0,index:e,target:t})},n),o},drawCell:function(t,e,i,n,o,s){var a=s.get("sign_size"),r=s.getPlugin("sign");r&&r.call(s,s.T,o,{x:t+a/2,y:e},a,n)||(-1!=o.indexOf("bar")&&s.T.box(t,e-a/12,a,a/6,0,n),"round"==o?s.T.round(t+a/2,e,a/2,n):"round-bar"==o?s.T.round(t+a/2,e,a/4,n):"square-bar"==o?s.T.box(t+a/4,e-a/4,a/2,a/2,0,n):"square"==o&&s.T.box(t,e-a/2,a,a,0,n)),s.T.fillText(i,t+s.get("signwidth"),e,0,s.get("text_with_sign_color")?n:s.get("color"),"lr",s.get("line_height"))},doDraw:function(e){e.T.box(e.x,e.y,e.width,e.height,e.get("border"),e.get("f_color"),!1,e.get("shadow")),e.T.textStyle(e.L,"middle",v.getFont(e.get("fontweight"),e.get("fontsize"),e.get("font"))),e.data.each(function(t){e.drawCell(t.x,t.y,t.text,t.color,t.sign,e)})},doLayout:function(e,t){var i,n=e.get("sign_size"),o=0,s=0,a=0,r=e.get("column"),l=e.get("row"),c=e.data.length;e.T.textFont(e.get("fontStyle")),e.get("line_height")<n&&e.push("line_height",n+n/5),e.push("signwidth",n+e.get("sign_space")),e.data.each(function(t){t.width_=e.T.measureText(t.text)},e);for(var u=0;u<r;u++){a=0;for(var h=u;h<c;h+=r)a=Math.max(a,e.data[h].width_);o+=e.columnwidth[u]=a}for(u=0;u<l;u++){for(a=0,h=u*r;h<c;h++)a=Math.max(a,e.data[h].text.split("\n").length);s+=e.columnheight[u]=a}if((o=e.push(e.W,o+e.get("hpadding")+e.get("signwidth")*r+(r-1)*e.get("legend_space")))>e.get("maxwidth")&&!((n=Math.floor(e.get("fontsize")*(e.get("maxwidth")/o)))<10&&1==r))return 9<n?e.push("fontStyle",v.getFont(e.get("fontweight"),e.push("fontsize",n),e.get("font"))):1<r&&e.push("row",Math.ceil(c/e.push("column",r-1))),void e.doLayout(e,t);for(e.width=o,e.height=s=e.push(e.H,s*e.get("line_height")+e.get("vpadding")),e.y=e.get("valign")==e.O?t.get("t_originy"):e.get("valign")==e.B?t.get("b_originy")-s:t.get("centery")-s/2,e.x=e.get("align")==e.L?t.get("l_originx"):e.get("align")==e.C?t.get("centerx")-o/2:t.get("r_originx")-o,e.x=e.push(e.X,(e.x<0?t.get("l_originx"):e.x)+e.get("offsetx")),e.y=e.push(e.Y,(e.y<0?t.get("t_originy"):e.y)+e.get("offsety")),a=e.y+e.get("padding_top"),n=e.get("legend_space")+e.get("signwidth"),u=0;u<l;u++){for(s=e.x+e.get("padding_left"),a+=i=e.columnheight[u]/2*e.get("line_height"),h=0;h<r&&u*r+h<c;h++)(o=e.data[u*r+h]).y=a,o.x=s,s+=e.columnwidth[h]+n;a+=i}},doConfig:function(){v.Legend.superclass.doConfig.call(this);var i=this._(),t=i.root,e=v.isNumber(i.get("column")),n=v.isNumber(i.get("row")),o=i.data.length;i.get("align")==i.C&&"middle"==i.get("valign")&&i.push("valign",i.O),t.get("align")==i.L&&"middle"==i.get("valign")&&i.push("align",i.R),i.data.each(function(t,e){v.merge(t,i.fireEvent(i,"parse",[i,t.name,e])),t.text=t.text||t.name||"",t.sign=t.sign||i.get("sign")},i),!e&&!n&&(e=i.push("column",1)),e&&!n&&(n=i.push("row",Math.ceil(o/i.get("column")))),!e&&n&&(e=i.push("column",Math.ceil(o/i.get("row")))),e=i.get("column"),(n=i.get("row"))*e<o&&(n+=Math.ceil((o-n*e)/e),n=i.push("row",n)),i.columnwidth=[],i.columnheight=[],i.doLayout(i,t)}}),v.Label=v.extend(v.Component,{configure:function(){v.Label.superclass.configure.apply(this,arguments),this.type="label",this.set({text:"",line_height:12,line_thickness:1,sign:"square",sign_size:12,padding:"2 5",offsety:2,sign_space:5,background_color:"#efefef",text_with_sign_color:!1}),this.atomic=!0,this.registerEvent()},isEventValid:function(t,e){return{valid:v.inRange(e.labelx,e.labelx+e.get(e.W),t.x)&&v.inRange(e.labely,e.labely+e.get(e.H),t.y)}},text:function(t){t&&this.push("text",t),this.push(this.W,this.T.measureText(this.get("text"))+this.get("hpadding")+this.get("sign_size")+this.get("sign_space"))},localizer:function(t){var e=t.get("quadrantd"),i=t.get("line_points"),n=t.get("smooth"),o=(e=1<=e&&e<=2,t.get("labelx")),s=t.get("labely");t.labelx=o+(e?-t.get(t.W)-n:n),t.labely=s-t.get(t.H)/2,i[2]={x:o,y:s},i[3]={x:i[2].x+(e?-n:n),y:i[2].y}},doLayout:function(i,n,t,e){e.push("labelx",e.get("labelx")+i/t),e.push("labely",e.get("labely")+n/t),e.get("line_points").each(function(t,e){return t.x+=i,t.y+=n,1==e},e),e.localizer(e)},doDraw:function(t){var e=t.get("line_points"),i=t.get("sign_size"),n=t.labelx+t.get("padding_left"),o=t.labely+t.get("padding_top");t.T.label(e,t.get("line_thickness"),t.get("border.color")),t.T.box(t.labelx,t.labely,t.get(t.W),t.get(t.H),t.get("border"),t.get("f_color"),!1,t.get("shadow")),t.T.textStyle(t.L,t.O,t.get("fontStyle")),e=t.get("color"),t.get("text_with_sign_color")&&(e=t.get("scolor")),"square"==t.get("sign")?t.T.box(n,o,i,i,0,t.get("scolor")):t.get("sign")&&t.T.round(n+i/2,o+i/2,i/2,t.get("scolor")),t.T.fillText(t.get("text"),n+i+t.get("sign_space"),o,t.get("textwidth"),e)},doConfig:function(){v.Label.superclass.doConfig.call(this);var t=this._();t.T.textFont(t.get("fontStyle")),t.get("fontsize")>t.get("line_height")&&t.push("line_height",t.get("fontsize")),t.get("sign")||(t.push("sign_size",0),t.push("sign_space",0)),t.push(t.H,t.get("line_height")+t.get("vpadding")),t.text(),t.localizer(t)}}),v.Text=v.extend(v.Component,{configure:function(){v.Text.superclass.configure.apply(this,arguments),this.type="text",this.set({text:"",textAlign:"center",align:"center",background_color:0,textBaseline:"top",border:{enable:!1},width:0,height:0,padding:0,writingmode:"lr",line_height:16,rotate:0}),this.registerEvent()},doDraw:function(t){t.get("box_feature")&&t.T.box(t.x,t.y,t.get(t.W),t.get(t.H),t.get("border"),t.get("f_color")),t.T.text(t.get("text"),t.get("textx"),t.get("texty"),t.get(t.W)-t.get("hpadding"),t.get("color"),t.get("textAlign"),t.get("textBaseline"),t.get("fontStyle"),t.get("writingmode"),t.get("line_height"),t.get("shadow"),t.get("rotate"))},isEventValid:function(){return{valid:!1}},doLayout:function(t,e,i,n){n.x=n.push(n.X,n.x+t),n.y=n.push(n.Y,n.y+e),n.push("textx",n.get("textx")+t),n.push("texty",n.get("texty")+e)},doConfig:function(){v.Text.superclass.doConfig.call(this);var t=this._(),e=t.x,i=t.y+t.get("padding_top"),n=t.get(t.W),o=t.get(t.H),s=t.get("textAlign");e+=s==t.C?n/2:s==t.R?n-t.get("padding_right"):t.get("padding_left");o&&(i+=o/2,t.push("textBaseline","middle")),t.push("textx",e),t.push("texty",i),t.push("box_feature",n&&o),t.applyGradient()}}),function(p){function s(t){if("string"==typeof t&&(t=p(t)),!t||!t.tagName||"canvas"!=t.tagName.toLowerCase())throw Error("there not a canvas element");this.canvas=t,this.c=this.canvas.getContext("2d")}var d,h,f,t,y=Math.PI,x=y/90,c=x/2,_=Math.ceil,b=Math.floor,m=2*y,v=Math.max,w=Math.min,T=Math.sin,A=Math.cos,C=function(t,e){return 1==t?b(e)+.5:Math.round(e)},u=function(t,e,i,n){var o,s,a=e.x,r=e.y,l=t[i-1],c=t[i+1];if(i<t.length-1){var u;t=l.y,i=c.y;o=(n*a+l.x)/(n+1),s=(n*r+t)/(n+1),c=(n*a+c.x)/(n+1),n=(n*r+i)/(n+1),n+=u=(n-s)*(c-a)/(c-o)+r-n,t<(s+=u)&&r<s?n=2*r-(s=v(t,r)):s<t&&s<r&&(n=2*r-(s=w(t,r))),i<n&&r<n?s=2*r-(n=v(i,r)):n<i&&n<r&&(s=2*r-(n=w(i,r))),e.rcx=c,e.rcy=n}return[l.rcx||l.x,l.rcy||l.y,o||a,s||r,a,r]},D=function(t){return p.isNumber(t)?t:p.parseFloat(t,t)};s.prototype={getContext:function(){return this.c},css:function(t,e){if(!p.isDefined(e))return this.canvas.style[t];this.canvas.style[t]=e},ellipse:function(t,e,i,n,o,s,a,r,l,c,u,h,g,d){for(g=!!g,this.save().gCo(d).strokeStyle(r,l,c).shadowOn(u).fillStyle(a).moveTo(t,e).beginPath(),g&&this.moveTo(t,e);o<=s;)this.lineTo(t+i*A(o),e+n*T(o)),o+=x;return this.lineTo(t+i*A(s),e+n*T(s)).closePath().stroke(r).fill(a).restore()},arc:function(t,e,i,n,o,s,a,r,l,c,u,h,g,d){return r&&(i-=b(l/2)),i<=0?this:(this.save().gCo(d).strokeStyle(r,l,c).fillStyle(a).beginPath(),n?(this.moveTo(t+A(o)*(i-n),e+T(o)*(i-n)).lineTo(t+A(o)*i,e+T(o)*i),this.c.arc(t,e,i,o,s,h),this.lineTo(t+A(s)*(i-n),e+T(s)*(i-n)),this.c.arc(t,e,i-n,s,o,!h)):(this.c.arc(t,e,i,o,s,h),g&&this.lineTo(t,e)),this.closePath(),r?this.shadowOn(u).stroke(r).shadowOff().fill(a):this.shadowOn(u).fill(a),this.restore())},sector:function(t,e,i,n,o,s,a,r,l,c,u,h,g,d){return u&&this.arc(t,e,i,n,o,s,a,r,l,c,u,h,!g,!d),this.arc(t,e,i,n,o,s,a,r,l,c,!1,h,!g)},sector3D:(d=function(i,n,o,s,t,e,a,r,l){a=function(t,e){this.lineTo(i+o*A(t),n+(e||0)+s*T(t))};var c=t;for(this.fillStyle(p.dark(l)).moveTo(i+o*A(t),n+s*T(t)).beginPath();c<=e;)a.call(this,c),c+=x;for(a.call(this,e),this.lineTo(i+o*A(e),n+r+s*T(e)),c=e;t<=c;)a.call(this,c,r),c-=x;a.call(this,t,r),this.lineTo(i+o*A(t),n+s*T(t)).closePath().fill(!0)},h=function(t,e,i,n,o,s,a,r){i=t+i*A(a),n=e+s+n*T(a),this.moveTo(t,e).beginPath().fillStyle(r).lineTo(t,e+s).lineTo(i,n).lineTo(i,n-s).lineTo(t,e).closePath().fill(!0)},f=function(t,e,i,n,o,s,a,r,l){var c=p.quadrantd(o),u=p.quadrantd(s);l=p.dark(l);(1==c||2==c)&&h.call(this,t,e,i,n,a,r,o,l),(0==u||3==u)&&h.call(this,t,e,i,n,a,r,s,l)},t=function(t,e,i,n,o,s,a,r,l,c,u,h,g){return this.ellipse(t,e+a,i,n,o,s,r,l,c,u,h,g,!0),f.call(this,t,e,i,n,o,s,g,a,r),this.ellipse(t,e,i,n,o,s,r,l,c,u,!1,g,!0),d.call(this,t,e,i,n,o,s,g,a,r),this},t.layerPaint=f,t.sPaint=d,t.layerDraw=h,t),textStyle:function(t,e,i){return this.textAlign(t).textBaseline(e).textFont(i)},strokeStyle:function(t,e,i,n){return t&&(e&&(this.c.lineWidth=e),i&&(this.c.strokeStyle=i),n)&&(this.c.lineJoin=n),this},globalAlpha:function(t){return t&&(this.c.globalAlpha=t),this},fillStyle:function(t){return t&&(this.c.fillStyle=t),this},arc2:function(t,e,i,n,o,s){return i&&this.c.arc(t,e,i,n,o,s),this},textAlign:function(t){return t&&(this.c.textAlign=t),this},textBaseline:function(t){return t&&(this.c.textBaseline=t),this},textFont:function(t){return t&&(this.c.font=t),this},shadowOn:function(t){return t&&(this.c.shadowColor=t.color,this.c.shadowBlur=t.blur,this.c.shadowOffsetX=t.offsetx,this.c.shadowOffsetY=t.offsety),this},shadowOff:function(){return this.c.shadowColor="white",this.c.shadowBlur=this.c.shadowOffsetX=this.c.shadowOffsetY=0,this},gradient:function(t,e,i,n,o,s,a){var r=t,l=e,c=!(s=s.toLowerCase()).indexOf("linear");s=s.substring(14);if(c){switch(s){case"updown":l+=n;break;case"downup":e+=n;break;case"leftright":r+=i;break;case"rightleft":t+=i;break;default:return o[0]}return this.avgLinearGradient(t,e,r,l,o)}return t+=i/2,e+=n/2,this.avgRadialGradient(t,e,a||0,t,e,n<i?n:i,"outin"==s?o.reverse():o)},avgLinearGradient:function(t,e,i,n,o){for(t=this.createLinearGradient(t,e,i,n),e=0;e<o.length;e++)t.addColorStop(e/(o.length-1),o[e]);return t},createLinearGradient:function(t,e,i,n){return this.c.createLinearGradient(t,e,i,n)},avgRadialGradient:function(t,e,i,n,o,s,a){for(t=this.createRadialGradient(t,e,i,n,o,s),e=0;e<a.length;e++)t.addColorStop(e/(a.length-1),a[e]);return t},createRadialGradient:function(t,e,i,n,o,s){return this.c.createRadialGradient(t,e,i,n,o,s)},text:function(t,e,i,n,o,s,a,r,l,c,u,h){return this.save().textStyle(s,a,r).fillText(t,e,i,n,o,l,c,u,h).restore()},fillText:function(t,i,n,o,e,s,a,r,l){return(t=t.toString())&&t.length?(o=o||!1,s=s||"lr",a=a||16,i=C(0,i),n=C(0,n),1<(t=t.split("tb"==s?"":"\n")).length&&("middle"==this.c.textBaseline?n-=(t.length-1)*a/2:"bottom"==this.c.textBaseline&&(n-=(t.length-1)*a)),this.save().fillStyle(e).translate(i,n).rotate(c*l).shadowOn(r),t.each(function(e,t){try{o&&0<o?this.c.fillText(e,0,t*a,o):this.c.fillText(e,0,t*a)}catch(t){console.log(t.message+"["+e+","+i+","+n+"]")}},this),this.restore()):this},measureText:function(t){t=t.split("\n");var e=0;return t.each(function(t){e=v(this.measureText(t).width,e)},this.c),e},moveTo:function(t,e){return this.c.moveTo(t||0,e||0),this},lineTo:function(t,e){return this.c.lineTo(t||0,e||0),this},save:function(){return this.c.save(),this},restore:function(){return this.c.restore(),this},beginPath:function(){return this.c.beginPath(),this},closePath:function(){return this.c.closePath(),this},stroke:function(t){return t&&this.c.stroke(),this},fill:function(t){return t&&this.c.fill(),this},cube:function(t,e,i,n,o,s,a,r,l,c,u,h){return t=C(c,t),n=(e=C(c,e))-(a=a&&0<a?a:o)*n,i=C(c,t+a*i),n=C(c,n),h&&(this.polygon(r,l,c,u,h,!1,[{x:t,y:e},{x:i,y:n},{x:i+o,y:n},{x:t+o,y:e}]),this.polygon(r,l,c,u,h,!1,[{x:t,y:e},{x:t,y:e+s},{x:t+o,y:e+s},{x:t+o,y:e}]),this.polygon(r,l,c,u,h,!1,[{x:t+o,y:e},{x:i+o,y:n},{x:i+o,y:n+s},{x:t+o,y:e+s}])),this.polygon(p.dark(r),l,c,u,!1,!1,[{x:t,y:e},{x:i,y:n},{x:i+o,y:n},{x:t+o,y:e}]),this.polygon(r,l,c,u,!1,!1,[{x:t,y:e},{x:t,y:e+s},{x:t+o,y:e+s},{x:t+o,y:e}]),this.polygon(p.dark(r),l,c,u,!1,!1,[{x:t+o,y:e},{x:i+o,y:n},{x:i+o,y:n+s},{x:t+o,y:e+s}]),this},cube3D:function(t,e,i,n,o,s,a,r,l,c,u,h){for(t=C(c,t),e=C(c,e),r=r&&0!=r?r:s,n=o?(i=t+r*(n=p.vectorP2P(i,n)).x,e-r*n.y):(i=t+r*i,e-r*n);h.length<6;)h.push(!1);return i=C(c,i),r=[],(n=C(c,n))<0?p.isObject(h[4])&&r.push(p.applyIf({points:[{x:t,y:e-a},{x:i,y:n-a},{x:i+s,y:n-a},{x:t+s,y:e-a}]},h[4])):p.isObject(h[0])&&r.push(p.applyIf({points:[{x:t,y:e},{x:i,y:n},{x:i+s,y:n},{x:t+s,y:e}]},h[0])),p.isObject(h[1])&&r.push(p.applyIf({points:[{x:i,y:n},{x:i,y:n-a},{x:i+s,y:n-a},{x:i+s,y:n}]},h[1])),p.isObject(h[2])&&r.push(p.applyIf({points:[{x:t,y:e},{x:t,y:e-a},{x:i,y:n-a},{x:i,y:n}]},h[2])),p.isObject(h[3])&&r.push(p.applyIf({points:[{x:t+s,y:e},{x:t+s,y:e-a},{x:i+s,y:n-a},{x:i+s,y:n}]},h[3])),n<0?p.isObject(h[0])&&r.push(p.applyIf({points:[{x:t,y:e},{x:i,y:n},{x:i+s,y:n},{x:t+s,y:e}]},h[0])):p.isObject(h[4])&&r.push(p.applyIf({points:[{x:t,y:e-a},{x:i,y:n-a},{x:i+s,y:n-a},{x:t+s,y:e-a}]},h[4])),p.isObject(h[5])&&r.push(p.applyIf({points:[{x:t,y:e},{x:t,y:e-a},{x:t+s,y:e-a},{x:t+s,y:e}]},h[5])),r.each(function(t){this.polygon(t.color,l,c,u,t.shadow,t.alpha,t.points)},this),this},polygon:function(t,e,i,n,o,s,a,r,l,c){if(this.save().strokeStyle(e,i,n).beginPath().fillStyle(t).globalAlpha(s).shadowOn(o).moveTo(a[0].x,a[0].y),r){for(this.moveTo(C(i,c[0].x),C(i,c[0].y)).lineTo(C(i,a[0].x),C(i,a[0].y)),n=1;n<a.length;n++)this.bezierCurveTo(u(a,a[n],n,l));this.lineTo(C(i,c[1].x),C(i,c[1].y))}else for(n=1;n<a.length;n++)this.lineTo(C(i,a[n].x),C(i,a[n].y));return this.closePath().stroke(e).fill(t).restore()},lines:function(t,e,i,n){if(!e)return this;for(this.save().gCo(n).beginPath().strokeStyle(!0,e,i).moveTo(C(e,t[0]),C(e,t[1])),i=2;i<t.length-1;i+=2)this.lineTo(C(e,t[i]),C(e,t[i+1]));return this.stroke(!0).restore()},bezierCurveTo:function(t){return this.c.bezierCurveTo(t[0],t[1],t[2],t[3],t[4],t[5]),this},label:function(t,e,i){return this.save().beginPath().strokeStyle(!0,e,i).moveTo(C(e,t[0].x),C(e,t[0].y)).bezierCurveTo([t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y]).stroke(!0).restore()},lineArray:function(t,e,i,n,o){if(!e)return this;for(this.save().beginPath().strokeStyle(!0,e,i).moveTo(C(e,t[0].x),C(e,t[0].y)),i=1;i<t.length;i++)n?this.bezierCurveTo(u(t,t[i],i,o||1.5)):this.lineTo(C(e,t[i].x),C(e,t[i].y));return this.stroke(!0).restore()},dotted:function(t,e,i,n,o,s,a,r,l){if(!o)return this;t=C(o,t),e=C(o,e),i=C(o,i),n=C(o,n);var c,u=p.distanceP2P(t,e,i,n);if(a<=0||u<=a||t!=i&&e!=n)return this.line(t,e,i,n,o,s,l);for((i<t||n<e)&&(c=t,t=i,i=c,c=e,e=n,n=c),this.save().gCo(l).strokeStyle(!0,o,s).beginPath().moveTo(t,e),o=a*(r||1),r=e==n,s=(u=a<u-(s=b(u/(a+o)))*(a+o))?s+1:s,l=1;l<=s;l++)this.lineTo(r?t+a*l+o*(l-1):t,r?e:e+a*l+o*(l-1)).moveTo(r?t+(a+o)*l:t,r?e:e+(a+o)*l);return u||this.lineTo(i,n),this.stroke(!0).restore()},line:function(t,e,i,n,o,s,a){return o?(this.save().gCo(a),this.beginPath().strokeStyle(!0,o,s).moveTo(C(o,t),C(o,e)).lineTo(C(o,i),C(o,n)).stroke(!0).restore()):this},round:function(t,e,i,n,o,s){return this.arc(t,e,i,0,0,m,n,!!s,o,s)},round0:function(t,e,i,n,o){return this.arc(t.x,t.y,e,0,0,m,i,!!o,n,o)},fillRect:function(t,e,i,n){return this.c.fillRect(t,e,i,n),this},translate:function(t,e){return this.c.translate(t,e),this},rotate:function(t){return this.c.rotate(t),this},clearRect:function(t,e,i,n){return i=i||this.canvas.width,n=n||this.canvas.height,this.c.clearRect(t||0,e||0,i,n),this},gCo:function(t){return t?this.gCO(t):this},gCO:function(t){return this.c.globalCompositeOperation=t?"destination-over":"source-over",this},box:function(t,e,i,n,o,s,a,r,l){if((o=o||{enable:0}).enable){var c=o.width,u=o.color,h=o.radius,g=p.isNumber(c);(c=p.parsePadding(c))[0]==c[1]&&c[1]==c[2]&&c[2]==c[3]&&(g=!0),i+=(r=r?1:-1)*(c[1]+c[3])/2,n+=r*(c[0]+c[2])/2,t-=r*(c[3]/2),e-=r*(c[0]/2),c=g?c[0]:c,h=g&&h&&0!=h&&"0"!=h?p.parsePadding(h):0}return this.save().gCo(l).fillStyle(s).strokeStyle(g,c,u),h?this.beginPath().moveTo(C(c,t+h[0]),C(c,e)).lineTo(C(c,t+i-h[1]),C(c,e)).arc2(C(c,t+i-h[1]),C(c,e+h[1]),h[1],3*y/2,m).lineTo(C(c,t+i),C(c,e+n-h[2])).arc2(C(c,t+i-h[2]),C(c,e+n-h[2]),h[2],0,y/2).lineTo(C(c,t+h[3]),C(c,e+n)).arc2(C(c,t+h[3]),C(c,e+n-h[3]),h[3],y/2,y).lineTo(C(c,t),C(c,e+h[0])).arc2(C(c,t+h[0]),C(c,e+h[0]),h[0],y,3*y/2).closePath().shadowOn(a).stroke(c).shadowOff().fill(s):!o.enable||g?(c&&o.enable&&(this.shadowOn(a).c.strokeRect(t,e,i,n),this.shadowOff()),s&&this.fillRect(t,e,i,n)):(c&&(u=p.isArray(u)?u:[u,u,u,u],this.shadowOn(a).line(t+i,e+c[0]/2,t+i,e+n-c[0]/2,c[1],u[1],0).line(t,e+c[0]/2,t,e+n-c[0]/2,c[3],u[3],0).line(b(t-c[3]/2),e,t+i+c[1]/2,e,c[0],u[0],0).line(b(t-c[3]/2),e+n,t+i+c[1]/2,e+n,c[2],u[2],0).shadowOff()),s&&this.beginPath().moveTo(b(t+c[3]/2),b(e+c[0]/2)).lineTo(_(t+i-c[1]/2),e+c[0]/2).lineTo(_(t+i-c[1]/2),_(e+n-c[2]/2)).lineTo(b(t+c[3]/2),_(e+n-c[2]/2)).lineTo(b(t+c[3]/2),b(e+c[0]/2)).closePath().fill(s)),this.restore()},toDataURL:function(t){return this.canvas.toDataURL(t||"image/png")},addEvent:function(t,e,i){p.Event.addEvent(this.canvas,t,e,i)}},p.taylor={light:function(t,e){e.highlight=!1,t.on("mouseover",function(){e.highlight=!0,t.redraw("mouseover")}).on("mouseout",function(){e.highlight=!1,t.redraw("mouseout")}).on("beforedraw",function(){return t.push("f_color",e.highlight?t.get("light_color"):t.get("f_color_")),!0})}},p.Chart=p.extend(p.Painter,{configure:function(){p.Chart.superclass.configure.apply(this,arguments),this.type="chart",this.dataType="simple",this.set({id:"",render:"",data:[],width:void 0,height:void 0,lineJoin:"round",align:"center",default_mouseover_css:!0,turn_off_touchmove:!1,showpercent:!1,decimalsnum:1,title:{text:"",fontweight:"bold",fontsize:20,height:30},subtitle:{text:"",fontweight:"bold",fontsize:16,height:20},footnote:{text:"",color:"#5d7f97",textAlign:"right",height:20},animation:!1,doAnimation:null,animation_timing_function:"easeInOut",animation_duration:1e3,z_index:999,legend:{enable:!1},tip:{enable:!1}}),this.registerEvent("beforeAnimation","afterAnimation","resize","animating"),this.T=null,this.show=this.Animationed=this.Combination=this.Rendered=!1,this.data=[],this.plugins=[],this.components=[],this.oneways=[],this.total=0,this.ICHARTJS_CHART=!0},toDataURL:function(t){return this.T.toDataURL(t)},segmentRect:function(){this.Combination||this.T.clearRect()},resetCanvas:function(){this.Combination||this.T.box(this.get("l_originx"),this.get("t_originy"),this.get("client_width"),this.get("client_height"),0,this.get("f_color"),0,0,!0)},animation:function(e){e.segmentRect(),e.coo&&!e.ILLUSIVE_COO&&e.coo.draw(),e.doAnimation(e.variable.animation.time,e.duration,e),e.plugins.each(function(t){t.A_draw&&(t.variable.animation.animating=!0,t.variable.animation.time=e.variable.animation.time,t.draw(),t.variable.animation.animating=!1)}),e.Combination||(e.oneways.each(function(t){t.draw()}),e.variable.animation.time<e.duration?(e.variable.animation.time++,p.requestAnimFrame(function(){e.animation(e)})):p.requestAnimFrame(function(){e.Animationed=!0,e.plugins.each(function(t){t.Animationed=!0}),e.processAnimation=!1,e.draw(),e.plugins.each(function(t){t.processAnimation=!1}),e.fireEvent(e,"afterAnimation",[e])}))},runAnimation:function(t){t.fireEvent(t,"beforeAnimation",[t]),t.A_draw||(t.variable.animation={type:0,time:0,queue:[]}),t.processAnimation=!0,t.animation(t)},doSort:function(){var t=function(t,e){return(p.isArray(t)?t.zIndex||0:t.get("z_index"))>(p.isArray(e)?e.zIndex||0:e.get("z_index"))};this.components.sor(t),this.oneways.sor(t)},commonDraw:function(t,e){t.show=!1,t.redraw||(p.Assert.isTrue(t.Rendered,t.type+" has not rendered"),p.Assert.isTrue(t.data&&0<t.data.length,t.type+"'s data is empty"),p.Assert.isTrue(t.initialization,t.type+" Failed to initialize"),t.doSort()),t.redraw=!0,!t.Animationed&&t.get("animation")?t.runAnimation(t):(t.segmentRect(),t.components.eachAll(function(t){t.draw(e)}),t.components.eachAll(function(t){t.last&&t.last(t)}),t.oneways.each(function(t){t.draw()}),t.show=!0)},plugin:function(t){var e=this._();t.inject(e),t.ICHARTJS_CHART&&(t.Combination=!0,t.setUp()),e.get("animation")||t.push("animation",!1),t.duration=e.duration,e.register(t),e.plugins.push(t)},destroy:function(t){t.components.eachAll(function(t){t.destroy()}),t.oneways.each(function(t){t.destroy()})},getTitle:function(){return this.title},getSubTitle:function(){return this.subtitle},getFootNote:function(){return this.footnote},getDrawingArea:function(){return{x:this.get("l_originx"),x:this.get("t_originy"),width:this.get("client_width"),height:this.get("client_height")}},create:function(t,e){if(t.get("fit")){var i=window.innerWidth,n=window.innerHeight,o=p.getDoc().body.style;o.padding="0px",o.margin="0px",o.overflow="hidden",t.push(t.W,i),t.push(t.H,n)}t.canvasid=p.uid(t.type),t.shellid="shell-"+t.canvasid,(i=[]).push("<div id='"),i.push(t.shellid),i.push("' style='padding:0px;margin:0px;overflow:hidden;position:relative;'>"),i.push("<canvas id= '"),i.push(t.canvasid),i.push("' style='-webkit-text-size-adjust: none;'>"),i.push("<p>Your browser does not support the canvas element</p></canvas>"),i.push("</div>"),e.innerHTML=i.join(""),t.shell=p(t.shellid),t.T=t.target=new s(t.canvasid),t.size(t),t.Rendered=!0},setUp:function(){var t=this._();t.redraw=!1,t.T.clearRect(),t.initialization=!1,t.initialize()},load:function(t){var e=this._();e.push("data",t||[]),e.setUp(),(e.Combination?e.root:e).draw()},resize:function(e,i){e=p.parseFloat(e),i=p.parseFloat(i);var t=this._();t.Combination||(t.width=t.push(t.W,e),t.height=t.push(t.H,i),t.size(t)),t.set(t.fireEvent(t,"resize",[e,i])),t.setUp(),t.plugins.eachAll(function(t){t.Combination&&t.resize(e,i)}),t.Combination||t.draw()},size:function(t){t.T.canvas.width=t.width=t.pushIf(t.W,400),t.T.canvas.height=t.height=t.pushIf(t.H,300),t.shell.style.width=t.width+"px",t.shell.style.height=t.height+"px"},initialize:function(){var e=this._(),t=e.get("data"),i=e.get("render");e.push(e.X,null),e.push(e.Y,null),e.Combination?(p.apply(e.options,p.clone([e.W,e.H,"padding","border","client_height","client_width","minDistance","maxDistance","centerx","centery","l_originx","r_originx","t_originy","b_originy"],e.root.options,!0)),e.width=e.get(e.W),e.height=e.get(e.H),e.shell=e.root.shell,e.Rendered=!0):e.Rendered||i&&e.create(e,p(i)),e.Rendered&&!e.initialization&&(t&&0<t.length?function(i,n){var o,s,a=0,r=0,l=!1,t=n.get("labels");if(n.data=i,"simple"==n.dataType)n.total=0,i.each(function(t){if(t.background_color=t.color,a=t.value||0,p.isArray(a)){var e=0;r=a.length>r?a.length:r;for(var i=0;i<a.length;i++)a[i]=D(a[i]),e+=a[i],l||(o=s=a[i],l=!0),o=v(a[i],o),s=w(a[i],s);t.total=e}else a=D(a),t.value=a,n.total+=a,l||(o=s=a,l=!0),o=v(a,o),s=w(a,s)},n),p.isArray(t)&&(r=t.length>r?t.length:r),n.push("maxItemSize",r);else if("stacked"==n.dataType||"complex"==n.dataType){var c,u,h,e=t.length,g="stacked"==n.dataType;if(0==e){e=i[0].value.length;for(var d=0;d<e;d++)t.push("")}for(n.columns=[],d=0;d<e;d++)c=[],u=0,i.each(function(t,e){(a=t.value[d])&&(t.value[d]=a=D(a),u+=a,g?h=i[e].color:(h=t.color,l||(o=s=a,l=!0),o=v(a,o),s=w(a,s)),c.push(p.applyIf({name:t.name,value:t.value[d],background_color:h,color:h},p.isArray(t.extra)?t.extra[d]||{}:t)))}),g&&(l||(o=s=a,l=!0),o=v(u,o),s=w(u,s)),n.columns.push({total:u,name:t[d],item:c})}n.push("minValue",s),n.push("maxValue",o),n.doConfig(),n.initialization=!0}.call(e,t,e):p.isString(e.get("url"))&&e.ajax.call(e,e.get("url"),function(t){e.push("data",t),e.initialize(),e.draw()}))},eventOff:function(){this.stopEvent=!0},eventOn:function(){this.stopEvent=!1},oneWay:function(i){i.T.strokeStyle(!0,0,i.get("strokeStyle"),i.get("lineJoin")),i.processAnimation=i.get("animation"),p.isFunction(i.get("doAnimation"))&&(i.doAnimation=i.get("doAnimation")),i.animationArithmetic=p.getAA(i.get("animation_timing_function"));var o,s=i.variable.event,t=i.Combination,e=!i.get("turn_off_touchmove")&&!t,n=!p.touch&&i.get("default_mouseover_css")&&!t,a=p.touch?["touchstart","touchmove"]:["click","mousemove"];i.stopEvent=!1,i.A_draw=t&&i.processAnimation,p.register(i),t||a.each(function(e){i.T.addEvent(e,function(t){i.processAnimation||i.stopEvent||t.targetTouches&&1!=t.targetTouches.length||i.fireEvent(i,e,[i,p.Event.fix(t)])},!1)}),i.on(a[0],function(t,i){if(t.components.eachAll(function(t){if(t.ICHARTJS_CHART){if(t.fireEvent(t,a[0],[t,i]))return!(s.click=!0)}else{var e=t.isMouseOver(i);if(e.valid)return s.click=!0,t.fireEvent(t,"click",[t,i,e]),!i.stopPropagation}}),s.click)return e&&i.event.preventDefault(),!(s.click=!1)}),p.touch&&!e||(i.on(a[1],function(t,n){if(o=!1,t.components.eachAll(function(t){if(!t.ICHARTJS_CHART){var e=t.variable.event,i=t.isMouseOver(n);if(i.valid){if(o=o||t.atomic,e.mouseover||(e.mouseover=!0,t.fireEvent(t,"mouseover",[t,n,i])),t.fireEvent(t,"mousemove",[t,n,i]),i.stop)return!1}else e.mouseover&&(e.mouseover=!1,t.fireEvent(t,"mouseout",[t,n,i]));return!n.stopPropagation}if(t.fireEvent(t,a[1],[t,n]))return!(o=!0)}),s.mouseover)return n.event.preventDefault(),o||(s.mouseover=!1,t.fireEvent(t,"mouseout",[t,n])),s.mouseover;o&&(s.mouseover=o,t.fireEvent(t,"mouseover",[t,n]))}),n&&i.on("mouseover",function(){i.T.css("cursor","pointer")}).on("mouseout",function(){i.T.css("cursor","default")})),p.applyIf(i.get("sub_option"),p.clone(["shadow","tip"],i.options,!0)),i.Combination||(i.bg=new p.Custom({z_index:-1,drawFn:function(){i.T.box(0,0,i.width,i.height,i.get("border"),i.get("f_color"),0,0,!0)}}),i.duration=_(i.get("animation_duration")*p.FRAME/1e3)),i.oneWay=p.emptyFn},originXY:function(t,e,i){var n=t.get("align");return n==t.L?t.pushIf(t.X,e[0]):n==t.R?t.pushIf(t.X,e[1]):t.pushIf(t.X,e[2]),t.x=t.push(t.X,t.get(t.X)+t.get("offsetx")),t.y=t.push(t.Y,i[0]+t.get("offsety")),{x:t.x,y:t.y}},getPercent:function(t,e){return this.get("showpercent")?(t/(e||this.total||1)*100).toFixed(this.get("decimalsnum"))+"%":t},doActing:function(t,e,i,n,o){var s=!!t.get("communal_acting"),a=t.getPercent(e.value,e.total);t.push(s?"sub_option":"communal_acting",p.clone(t.get(s?"communal_acting":"sub_option"),!0)),p.merge(t.get("sub_option"),e),p.merge(t.get("sub_option"),i),t.push("sub_option.value",a),t.push("sub_option.value_",e.value),t.get("sub_option.tip.enable")&&(t.push("sub_option.tip.text",o||e.name+" "+a),t.push("sub_option.tip.name",e.name),t.push("sub_option.tip.index",n),t.push("sub_option.tip.value",e.value),t.push("sub_option.tip.total",e.total||t.total))},register:function(t){return t.id=p.uid(t.type),this.components.push(t),t},remove:function(i,n){n&&i.components.each(function(t,e){if(n.id==t.id)return i.components.splice(e,1),!1})},doConfig:function(){p.Chart.superclass.doConfig.call(this);var t=this._();if(t.destroy(t),t.oneways.length=0,t.oneWay(t),t.push("communal_acting",0),!t.Combination){t.oneways.push(t.bg),t.push("r_originx",t.width-t.get("padding_right")),t.push("b_originy",t.height-t.get("padding_bottom")),t.applyGradient(),p.isString(t.get("title"))&&t.push("title",p.applyIf({text:t.get("title")},t.default_.title)),p.isString(t.get("subtitle"))&&t.push("subtitle",p.applyIf({text:t.get("subtitle")},t.default_.subtitle)),p.isString(t.get("footnote"))&&t.push("footnote",p.applyIf({text:t.get("footnote")},t.default_.footnote));var e=0,i=t.push("l_originx",t.get("padding_left")),n=t.push("t_originy",t.get("padding_top")),o=t.push("client_width",t.width-t.get("hpadding"));if(""!=t.get("title.text")){var s=""!=t.get("subtitle.text");e=s?t.get("title.height")+t.get("subtitle.height"):t.get("title.height"),n=t.push("t_originy",n+e);t.push("title.originx",i),t.push("title.originy",t.get("padding_top")),t.push("title.maxwidth",o),t.pushIf("title.width",o),t.title=new p.Text(t.get("title"),t),t.oneways.push(t.title),s&&(t.push("subtitle.originx",i),t.push("subtitle.originy",t.get("padding_top")+t.get("title.height")),t.pushIf("subtitle.width",o),t.push("subtitle.maxwidth",o),t.subtitle=new p.Text(t.get("subtitle"),t),t.oneways.push(t.subtitle))}""!=t.get("footnote.text")&&(e+=s=t.get("footnote.height"),t.push("b_originy",t.get("b_originy")-s),t.push("footnote.originx",i),t.push("footnote.originy",t.get("b_originy")),t.push("footnote.maxwidth",o),t.pushIf("footnote.width",o),t.footnote=new p.Text(t.get("footnote"),t),t.oneways.push(t.footnote)),e=t.push("client_height",t.get(t.H)-t.get("vpadding")-t.pushIf("other_height",e)),t.push("minDistance",w(o,e)),t.push("maxDistance",v(o,e)),t.push("centerx",i+o/2),t.push("centery",n+e/2)}t.get("legend.enable")&&(t.legend=new p.Legend(p.apply({maxwidth:t.get("client_width"),data:t.data},t.get("legend")),t),t.oneways.push(t.legend)),t.push("sub_option.tip.wrap",t.push("tip.wrap",t.shell))}})}(v),v.Custom=v.extend(v.Component,{configure:function(){v.Custom.superclass.configure.apply(this,arguments),this.type="custom",this.set({drawFn:v.emptyFn,configFn:v.emptyFn,eventValid:void 0,animating_draw:!0})},doDraw:function(t){t.get("drawFn").call(t,t)},isEventValid:function(t,e){return v.isFunction(this.get("eventValid"))?this.get("eventValid").call(this,t,e):{valid:!1}},doConfig:function(){v.Custom.superclass.doConfig.call(this);var t=this._();t.A_draw=t.get("animating_draw"),t.variable.animation={animating:!1,time:0},t.duration=0,t.get("configFn").call(t,t)}}),v.Scale=v.extend(v.Component,{configure:function(){v.Scale.superclass.configure.apply(this,arguments),this.type="scale",this.set({position:"left",which:"h",basic_value:0,scale2grid:!0,distance:void 0,start_scale:0,end_scale:void 0,min_scale:void 0,max_scale:void 0,scale_space:void 0,scale_share:5,scale_enable:!0,scale_size:1,scale_width:4,scale_color:"#333333",scaleAlign:"center",labels:[],label:{},text_space:6,textAlign:"left",decimalsnum:0,join_style:"none",join_size:2}),this.registerEvent("parseText")},isEventValid:function(){return{valid:!1}},getScale:function(t){return(t=[t.get("basic_value"),t.get("start_scale"),t.get("end_scale"),t.get("end_scale")-t.get("start_scale"),0])[4]=v.inRange(t[1],t[2]+1,t[0])||v.inRange(t[2]-1,t[1],t[0]),{range:t[4],basic:t[4]?(t[0]-t[1])/t[3]:0,start:t[4]?t[0]:t[1],end:t[2],distance:t[3]}},doDraw:function(e){e.get("scale_enable")&&e.items.each(function(t){e.T.line(t.x0,t.y0,t.x1,t.y1,e.get("scale_size"),e.get("scale_color"),!1)}),e.labels.each(function(t){t.draw()})},doLayout:function(e,i,t){t.get("scale_enable")&&t.items.each(function(t){t.x0+=e,t.y0+=i,t.x1+=e,t.y1+=i}),t.labels.each(function(t){t.doLayout(e,i,0,t)})},doConfig:function(){v.Scale.superclass.doConfig.call(this);var t=this._(),e=Math.abs,i=t.get("labels").length,n=t.get("min_scale"),o=t.get("max_scale"),s=t.get("scale_space"),a=t.get("end_scale"),r=t.get("start_scale");if(t.items=[],t.labels=[],(t.number=0)<i)t.number=i-1;else{if(n<r&&(r=t.push("start_scale",v.floor(n))),(!v.isNumber(a)||a<o)&&(a=v.ceil(o),a=t.push("end_scale",a||r?a:1)),s&&e(s)<e(a-r)&&t.push("scale_share",(a-r)/s),t.number=t.push("scale_share",e(t.get("scale_share"))),!s||a-r<s){for(s=(a-r+"").indexOf(".")+1,e=1;0<s;)s--,e*=10;s=t.push("scale",(a-r)*e/t.get("scale_share")/e)}parseInt(s)!=s&&0==t.get("decimalsnum")&&t.push("decimalsnum",(s+"").substring((s+"").indexOf(".")+1).length)}t.push("distanceOne",t.get("valid_distance")/t.number);var l,c,u,h=o=n=e=a=0,g=0;c=(l=t.get("scale_width"))/2,u=t.get("scaleAlign");var d=t.get("position"),p=t.get("text_space"),f="",y=t.get("coo").get("axis.width");for(t.push("which",t.get("which").toLowerCase()),t.isH="h"==t.get("which"),t.isH?(u==t.O?o=-l:e=u==t.C?(o=-c,c):l,f=d==t.O?(g=-p-y[0],t.B):(g=p+y[2],t.O),d=t.C):(u==t.L?n=-l:a=u==t.C?(n=-c,c):l,f="middle",h=d==t.R?(d=t.L,p+y[1]):(d=t.R,-p-y[3])),p=0;p<=t.number;p++)l=i?t.get("labels")[p]:(s*p+r).toFixed(t.get("decimalsnum")),c=t.isH?t.get("valid_x")+p*t.get("distanceOne"):t.x,u=t.isH?t.y:t.get("valid_y")+t.get("valid_distance")-p*t.get("distanceOne"),t.items.push({x:c,y:u,x0:c+n,y0:u+o,x1:c+a,y1:u+e}),t.get("label")&&t.labels.push(new v.Text(v.applyIf(v.apply(t.get("label"),v.merge({text:l,x:c,y:u,originx:c+h,originy:u+g},t.fireEvent(t,"parseText",[l,c+h,u+g,p,t.number==p]))),{textAlign:d,textBaseline:f}),t))}}),v.Coordinate={coordinate_:function(t){var e=this._();if((i=e.get("coordinate")).ICHARTJS_OBJECT)return e.x=e.push(e.X,i.x),e.y=e.push(e.Y,i.y),e.ILLUSIVE_COO=!0,i;var i=v.parsePercent,n=e.get("coordinate.scale"),o=e.get("scaleAlign"),s=e.push("coordinate._width",i(e.get("coordinate.width")||"85%",Math.floor(e.get("client_width"))));if(h=e.push("coordinate._height",i(e.get("coordinate.height")||"85%",Math.floor(e.get("client_height")))-(e.is3D()?(e.get("coordinate.pedestal_height")||22)+(e.get("coordinate.board_deep")||20):0)),e.push("coordinate.valid_height_value",i(e.get("coordinate.valid_height"),h)),e.push("coordinate.valid_width_value",i(e.get("coordinate.valid_width"),s)),e.originXY(e,[e.get("l_originx"),e.get("r_originx")-s,e.get("centerx")-s/2],[e.get("centery")-h/2]),e.push("coordinate.originx",e.x),e.push("coordinate.originy",e.y),t&&t(),v.isObject(n)&&(n=[n]),v.isArray(n)){var a="stacked"!=e.dataType;n.each(function(t){e.get("percent")&&t.position==o&&(t=v.apply(t,{start_scale:0,end_scale:100,scale_space:10,listeners:{parseText:function(t){return{text:t+"%"}}}})),(!t.start_scale||a&&t.start_scale>e.get("minValue"))&&(t.min_scale=e.get("minValue")),(!t.end_scale||a&&t.end_scale<e.get("maxValue"))&&(t.max_scale=e.get("maxValue"))})}else e.push("coordinate.scale",{position:o,scaleAlign:o,max_scale:e.get("maxValue"),min_scale:e.get("minValue")});return e.is3D()&&(e.push("coordinate.xAngle_",e.get("xAngle_")),e.push("coordinate.yAngle_",e.get("yAngle_")),e.push("coordinate.zHeight",e.get("zHeight")*e.get("bottom_scale"))),e.remove(e,e.coo),e.register(new(v[e.is3D()?"Coordinate3D":"Coordinate2D"])(e.get("coordinate"),e))}},v.Coordinate2D=v.extend(v.Component,{configure:function(){v.Coordinate2D.superclass.configure.apply(this,arguments),this.type="coordinate2d",this.set({sign_size:12,sign_space:5,scale:[],width:"85%",height:"85%",valid_width:"100%",valid_height:"100%",grid_line_width:1,grid_color:"#dbe1e1",gridHStyle:{},gridVStyle:{},gridlinesVisible:!0,scale2grid:!0,grids:void 0,ignoreOverlap:!0,ignoreEdge:!1,xlabel:"",ylabel:"",background_color:0,striped:!0,striped_direction:"v",striped_factor:.01,crosshair:{enable:!1},z_index:-1,axis:{enable:!0,color:"#666666",width:1}}),this.scale=[],this.gridlines=[]},getScale:function(t,e){for(var i=this._(),n=0;n<i.scale.length;n++)if(i.scale[n].get("position")==t)return i.scale[n].getScale(i.scale[n]);if(!e)return t=t==i.L?i.R:t==i.R?i.L:t==i.O?i.B:i.O,i.getScale(t,!0);throw Error("there no valid scale")},isEventValid:function(t,e){return{valid:t.x>e.x&&t.x<e.x+e.width&&t.y<e.y+e.height&&t.y>e.y}},doDraw:function(e){if(e.T.box(e.x,e.y,e.width,e.height,0,e.get("f_color")),e.get("striped")){var i,n,o=!1;e.get("axis.width");var s=v.dark(e.get("background_color"),e.get("striped_factor"),0)}var a="v"==e.get("striped_direction");e.gridlines.each(function(t){e.get("striped")&&(o&&(a?e.T.box(t.x1,t.y1+t.width,t.x2-t.x1,n-t.y1-t.width,0,s):e.T.box(i+t.width,t.y2,t.x1-i,t.y1-t.y2,0,s)),i=t.x1,n=t.y1,o=!o)}).each(function(t){t.overlap||(t.solid?e.T.line(t.x1,t.y1,t.x2,t.y2,t.width,t.color):e.T.dotted(t.x1,t.y1,t.x2,t.y2,t.width,t.color,t.size,t.fator))}),e.T.box(e.x,e.y,e.width,e.height,e.get("axis"),!1,e.get("shadow"),!0),e.scale.each(function(t){t.draw()})},destroy:function(){this.crosshair&&this.crosshair.destroy()},doCrosshair:function(t){t.get("crosshair.enable")&&!t.crosshair&&(t.push("crosshair.wrap",t.root.shell),t.push("crosshair.height",t.height),t.push("crosshair.width",t.width),t.push("crosshair.top",t.y),t.push("crosshair.left",t.x),t.crosshair=new v.CrossHair(t.get("crosshair"),t))},doConfig:function(){v.Coordinate2D.superclass.doConfig.call(this);var n=this._();if(n.atomic=!1,n.width=n.get("_width"),n.height=n.get("_height"),n.valid_width=n.get("valid_width_value"),n.valid_height=n.get("valid_height_value"),n.get("gradient")&&v.isString(n.get("f_color"))&&n.push("f_color",n.T.avgLinearGradient(n.x,n.y,n.x,n.y+n.height,[n.get("dark_color"),n.get("light_color")])),n.get("axis.enable")){var t=n.get("axis.width");v.isArray(t)||n.push("axis.width",[t,t,t,t])}else n.push("axis.width",[0,0,0,0]);n.doCrosshair(n);var e,i=(t=!(!n.get("gridlinesVisible")||!n.get("grids")))&&!!n.get("grids.horizontal"),o=t&&!!n.get("grids.vertical"),s=n.height,a=n.width,r=n.valid_width,l=n.valid_height,c=(t=n.get("gridlinesVisible")&&n.get("scale2grid")&&!(i&&o),n.push("x_start",n.x+(a-r)/2)),u=n.push("y_start",n.y+(s-l)/2),h=n.get("axis.width");n.push("x_end",n.x+(a+r)/2),n.push("y_end",n.y+(s+l)/2),v.isArray(n.get("scale"))||(v.isObject(n.get("scale"))?n.push("scale",[n.get("scale")]):n.push("scale",[])),n.get("scale").each(function(t){e=(e=(e=t.position)||n.L).toLowerCase(),t[n.X]=n.x,t.coo=n,t[n.Y]=n.y,t.valid_x=c,t.valid_y=u,(t.position=e)==n.O?(t.which="h",t.distance=a,t.valid_distance=r):e==n.R?(t.which="v",t.distance=s,t.valid_distance=l,t[n.X]+=a,t.valid_x+=r):e==n.B?(t.which="h",t.distance=a,t.valid_distance=r,t[n.Y]+=s,t.valid_y+=l):(t.which="v",t.distance=s,t.valid_distance=l),n.scale.push(new v.Scale(t,n.root))},n);var g=n.push("ignoreOverlap",n.get("ignoreOverlap")&&n.get("axis.enable")||n.get("ignoreEdge"));if(g)var d=n.get("ignoreEdge")?function(t,e,i){return"v"==t?i==n.y||i==n.y+s:e==n.x||e==n.x+t}:function(t,e,i){return"v"==t?i==n.y&&0<h[0]||i==n.y+s&&0<h[2]:e==n.x&&0<h[3]||e==n.x+a&&0<h[1]};var p,f,y,x={solid:!0,size:10,fator:1,width:n.get("grid_line_width"),color:n.get("grid_color")},_=v.applyIf(n.get("gridHStyle"),x),b=v.applyIf(n.get("gridVStyle"),x);t&&n.scale.each(function(e){y=e.get("position"),v.isFalse(e.get("scale2grid"))||i&&"v"==e.get("which")||o&&"h"==e.get("which")||(p=f=0,y==n.O?f=s:y==n.R?p=-a:y==n.B?f=-s:p=a,e.items.each(function(t){g&&n.gridlines.push(v.applyIf({overlap:d.call(n,e.get("which"),t.x,t.y),x1:t.x,y1:t.y,x2:t.x+p,y2:t.y+f},e.isH?b:_))}))});if(o){var m=n.get("grids.vertical");for(v.Assert.isTrue(0<m.value,"vertical value"),t=a/m.value,x=m.value,"given_value"==m.way&&(x=t,t=m.value,t=a<t?a:t),m=0;m<=x;m++)g&&n.gridlines.push(v.applyIf({overlap:d.call(n,"h",n.x+m*t,n.y),x1:n.x+m*t,y1:n.y,x2:n.x+m*t,y2:n.y+s,H:!1,width:b.width,color:b.color},b))}if(i)for(m=n.get("grids.horizontal"),v.Assert.isTrue(0<m.value,"horizontal value"),t=s/m.value,x=m.value,"given_value"==m.way&&(x=t,t=m.value,t=s<t?s:t),m=0;m<=x;m++)g&&n.gridlines.push(v.applyIf({overlap:d.call(n,"v",n.x,n.y+m*t),x1:n.x,y1:n.y+m*t,x2:n.x+a,y2:n.y+m*t,H:!0,width:_.width,color:_.color},_))}}),v.Coordinate3D=v.extend(v.Coordinate2D,{configure:function(){v.Coordinate3D.superclass.configure.apply(this,arguments),this.type="coordinate3d",this.dimension=v._3D,this.set({xAngle:60,yAngle:20,xAngle_:void 0,yAngle_:void 0,zHeight:0,pedestal_height:22,board_deep:20,left_board:!0,gradient:!0,color_factor:.18,ignoreEdge:!0,striped:!1,grid_color:"#a4ad96",background_color:"#d6dbd2",shadow_offsetx:4,shadow_offsety:2,wall_style:[],axis:{enable:!1}})},doDraw:function(e){var t=e.width,i=e.height,n=e.get("xAngle_"),o=e.get("yAngle_"),s=e.get("zHeight"),a=e.get("z_offx"),r=e.get("z_offy");e.get("pedestal_height")&&e.T.cube3D(e.x,e.y+i+e.get("pedestal_height"),n,o,!1,t,e.get("pedestal_height"),3*s/2,e.get("axis.enable"),e.get("axis.width"),e.get("axis.color"),e.get("bottom_style")),e.get("board_deep")&&e.T.cube3D(e.x+a,e.y+i-r,n,o,!1,t,i,e.get("board_deep"),e.get("axis.enable"),e.get("axis.width"),e.get("axis.color"),e.get("board_style")),e.T.cube3D(e.x,e.y+i,n,o,!1,t,i,s,e.get("axis.enable"),e.get("axis.width"),e.get("axis.color"),e.get("wall_style")),e.gridlines.each(function(t){t.solid?(e.get("left_board")&&e.T.line(t.x1,t.y1,t.x1+a,t.y1-r,t.width,t.color),e.T.line(t.x1+a,t.y1-r,t.x2+a,t.y2-r,t.width,t.color)):(e.get("left_board")&&e.T.dotted(t.x1,t.y1,t.x1+a,t.y1-r,t.width,t.color,t.size,t.fator),e.T.dotted(t.x1+a,t.y1-r,t.x2+a,t.y2-r,t.width,t.color,t.size,t.fator))}),e.scale.each(function(t){t.draw()})},doConfig:function(){v.Coordinate3D.superclass.doConfig.call(this);for(var t=this._(),e=t.get("wall_style"),i=t.get("background_color")||"#d6dbd2",n=t.height,o=t.width,s=t.get("color_factor"),a=t.push("z_offx",t.get("xAngle_")*t.get("zHeight")),r=t.push("z_offy",t.get("yAngle_")*t.get("zHeight"));e.length<6;)e.push({color:i});t.get("left_board")||(e[2]=!1,t.scale.each(function(t){t.doLayout(a,-r,t)})),t.push("bottom_style",[{color:t.get("shadow_color"),shadow:t.get("shadow")},!1,!1,{color:e[3].color},!1,{color:e[3].color}]),t.push("board_style",[!1,!1,!1,{color:e[4].color},{color:e[5].color},!1]),t.get("gradient")&&(v.isString(e[0].color)&&(e[0].color=t.T.avgLinearGradient(t.x,t.y+n,t.x+o,t.y+n,[v.dark(e[0].color,s/2+.06),v.dark(e[0].color,s/2+.06)])),v.isString(e[1].color)&&(e[1].color=t.T.avgLinearGradient(t.x+a,t.y-r,t.x+a,t.y+n-r,[v.dark(e[1].color,s),v.light(e[1].color,s)])),v.isString(e[2].color)&&(e[2].color=t.T.avgLinearGradient(t.x,t.y,t.x,t.y+n,[v.light(e[2].color,s/3),v.dark(e[2].color,s)])),t.get("bottom_style")[5].color=t.T.avgLinearGradient(t.x,t.y+n,t.x,t.y+n+t.get("pedestal_height"),[v.light(e[3].color,s/2+.06),v.dark(e[3].color,s/2,0)])),t.push("wall_style",[e[0],e[1],e[2]])}}),v.Rectangle=v.extend(v.Component,{configure:function(){v.Rectangle.superclass.configure.apply(this,arguments),this.type="rectangle",this.set({width:0,height:0,value_space:4,value:"",label:{},name:"",tipAlign:"top",valueAlign:"top",shadow_blur:3,shadow_offsety:-1}),this.atomic=!0,this.registerEvent("parseText"),this.label=null},last:function(t){t.label&&t.label.draw()},doDraw:function(t){t.drawRectangle()},doConfig:function(){v.Rectangle.superclass.doConfig.call(this);var t=this._(),e=t.variable.event,i=t.get("valueAlign");v.taylor.light(t,e),t.width=t.get(t.W),t.height=t.get(t.H);e=t.push("centerx",t.x+t.width/2);var n=t.push("centery",t.y+t.height/2),o=t.C,s="middle",a=t.get("value_space");i==t.L?(o=t.R,e=t.x-a):i==t.R?(o=t.L,e=t.x+t.width+a):i==t.B?(n=t.y+t.height+a,s=t.O):i==t.O&&(n=t.y-a,s=t.B),t.get("label")&&(t.push("label.originx",e),t.push("label.originy",n),t.push("label.text",t.push("value",t.fireString(t,"parseText",[t,t.get("value")],t.get("value")))),v.applyIf(t.get("label"),{textAlign:o,textBaseline:s,color:t.get("color")}),t.label=new v.Text(t.get("label"),t)),t.get("tip.enable")&&("follow"!=t.get("tip.showType")&&t.push("tip.invokeOffsetDynamic",!1),t.tip=new v.Tip(t.get("tip"),t))}}),v.Rectangle2D=v.extend(v.Rectangle,{configure:function(){v.Rectangle2D.superclass.configure.apply(this,arguments),this.type="rectangle2d",this.set({shadow_offsety:-2})},drawRectangle:function(){var t=this._();t.T.box(t.get(t.X),t.get(t.Y),t.get(t.W),t.get(t.H),t.get("border"),t.get("f_color"),t.get("shadow"))},isEventValid:function(t,e){return{valid:t.x>e.x&&t.x<e.x+e.width&&t.y<e.y+e.height&&t.y>e.y}},tipInvoke:function(){var i=this._();return function(t,e){return{left:i.tipX(t,e),top:i.tipY(t,e)}}},doConfig:function(){v.Rectangle2D.superclass.doConfig.call(this);var i=this._(),t=i.get("tipAlign");t==i.L||t==i.R?i.tipY=function(t,e){return i.get("centery")-e/2}:i.tipX=function(t){return i.get("centerx")-t/2},t==i.L?i.tipX=function(t){return i.x-i.get("value_space")-t}:t==i.R?i.tipX=function(){return i.x+i.width+i.get("value_space")}:i.tipY=t==i.B?function(){return i.y+i.height+3}:function(t,e){return i.y-e-3},i.applyGradient()}}),v.Rectangle3D=v.extend(v.Rectangle,{configure:function(){v.Rectangle3D.superclass.configure.apply(this,arguments),this.type="rectangle3d",this.dimension=v._3D,this.set({zHeight:void 0,xAngle:60,yAngle:20,xAngle_:void 0,yAngle_:void 0,shadow_offsetx:2})},drawRectangle:function(){var t=this._();t.T.cube(t.get(t.X),t.get(t.Y),t.get("xAngle_"),t.get("yAngle_"),t.get(t.W),t.get(t.H),t.get("zHeight"),t.get("f_color"),t.get("border.enable"),t.get("border.width"),t.get("light_color"),t.get("shadow"))},isEventValid:function(t,e){return{valid:t.x>e.x&&t.x<e.x+e.get(e.W)&&t.y<e.y+e.get(e.H)&&t.y>e.y}},tipInvoke:function(){var i=this._();return function(t,e){return{left:i.topCenterX-t/2,top:i.topCenterY-e}}},doConfig:function(){v.Rectangle3D.superclass.doConfig.call(this);var t=this._();t.pushIf("zHeight",t.get(t.W)),t.topCenterX=t.x+(t.get(t.W)+t.get(t.W)*t.get("xAngle_"))/2,t.topCenterY=t.y-t.get(t.W)*t.get("yAngle_")/2-t.get("value_space"),t.get("valueAlign")==t.O&&t.label&&(t.label.push("textx",t.topCenterX),t.label.push("texty",t.topCenterY))}}),v.Sector=v.extend(v.Component,{configure:function(){v.Sector.superclass.configure.apply(this,arguments),this.type="sector",this.set({value:"",name:"",ignored:!1,counterclockwise:!1,startAngle:0,middleAngle:0,endAngle:0,totalAngle:0,bound_event:"click",expand:!1,donutwidth:0,mutex:!1,increment:void 0,label_length:void 0,gradient_mode:"RadialGradientOutIn",mini_label_threshold_angle:15,mini_label:!1,label:{},rounded:!1}),this.atomic=!0,this.registerEvent("changed","parseText"),this.tip=this.label=null},bound:function(){this.expanded||this.toggle()},rebound:function(){this.expanded&&this.toggle()},toggle:function(){this.fireEvent(this,this.get("bound_event"),[this])},getDimension:function(){var t=this._();return{x:t.x,x:t.y,startAngle:t.get("startAngle"),middleAngle:t.get("middleAngle"),endAngle:t.get("endAngle")}},doDraw:function(t){t.get("ignored")||(t.label&&!t.get("mini_label")&&t.label.draw(),t.drawSector(),t.label&&t.get("mini_label")&&t.label.draw())},doText:function(t,e,i){t.push("label.originx",e),t.push("label.originy",i),t.push("label.textBaseline","middle"),t.label=new v.Text(t.get("label"),t)},doLabel:function(t,e,i,n,o,s,a,r){t.push("label.originx",e),t.push("label.originy",i),t.push("label.quadrantd",n),t.push("label.line_points",o),t.push("label.labelx",s),t.push("label.labely",a),t.push("label.smooth",r),t.push("label.angle",t.get("middleAngle")%(2*Math.PI)),t.label=new v.Label(t.get("label"),t)},isLabel:function(){return this.get("label")&&!this.get("mini_label")},doConfig:function(){v.Sector.superclass.doConfig.call(this);var i,n=this._(),o=n.variable.event,s=n.get("label"),a=n.get("bound_event");n.get("rounded")?(n.push("startAngle",0),n.push("endAngle",2*Math.PI)):(v.taylor.light(n,o),n.push("totalAngle",n.get("endAngle")-n.get("startAngle")),s&&(n.get("mini_label")&&(n.get("mini_label_threshold_angle")*Math.PI/180>n.get("totalAngle")?n.push("mini_label",!1):v.apply(n.get("label"),n.get("mini_label"))),n.push("label.text",n.fireString(n,"parseText",[n,n.get("label.text")],n.get("label.text"))),n.pushIf("label.border.color",n.get("border.color")),n.push("label.scolor",n.get("background_color"))),n.variable.event.status=n.expanded=n.get("expand"),n.get("tip.enable")&&("follow"!=n.get("tip.showType")&&n.push("tip.invokeOffsetDynamic",!1),n.tip=new v.Tip(n.get("tip"),n)),o.poped=!1,n.on(a,function(){o.poped=!0,n.expanded=!n.expanded,n.redraw(a),o.poped=!1}),n.on("beforedraw",function(t,e){return e==a&&(i=!1,n.x=n.get(n.X),n.y=n.get(n.Y),n.expanded&&(n.get("mutex")&&!o.poped?(n.expanded=!1,i=!0):(n.x=n.x+n.get("inc_x"),n.y=n.y-n.get("inc_y"))),o.status!=n.expanded&&(n.fireEvent(n,"changed",[n,n.expanded]),i=!0,o.status=n.expanded),s&&i&&n.label.doLayout(n.get("inc_x")*(n.expanded?1:-1),-n.get("inc_y")*(n.expanded?1:-1),2,n.label)),!0}))}}),v.Sector2D=v.extend(v.Sector,{configure:function(){v.Sector2D.superclass.configure.apply(this,arguments),this.type="sector2d",this.set({radius:0})},drawSector:function(){this.T.sector(this.x,this.y,this.r,this.get("donutwidth"),this.get("startAngle"),this.get("endAngle"),this.get("f_color"),this.get("border.enable"),this.get("border.width"),this.get("border.color"),this.get("shadow"),this.get("counterclockwise"))},isEventValid:function(t,e){if(!e.get("ignored")){if(e.isLabel()&&e.label.isEventValid(t,e.label).valid)return{valid:!0};var i=v.distanceP2P(e.x,e.y,t.x,t.y),n=e.get("donutwidth");if(e.r<i||n&&e.r-n>i)return{valid:!1};if(v.angleInRange(e.get("startAngle"),e.get("endAngle"),v.atan2Radian(e.x,e.y,t.x,t.y)))return{valid:!0}}return{valid:!1}},tipInvoke:function(){var n=this,o=n.get("middleAngle"),s=v.quadrantd(o);return function(t,e){var i=v.p2Point(n.x,n.y,o,.8*n.r);return{left:1<=s&&s<=2?i.x-t:i.x,top:2<=s?i.y-e:i.y}}},doConfig:function(){v.Sector2D.superclass.doConfig.call(this);var t=this._();t.r=t.get("radius"),t.get("donutwidth")>t.r&&t.push("donutwidth",0),t.applyGradient(t.x-t.r,t.y-t.r,1.8*t.r,1.8*t.r);var e=t.get("middleAngle"),i=t.pushIf("increment",v.lowTo(5,t.r/10));if(t.push("inc_x",i*Math.cos(2*Math.PI-e)),t.push("inc_y",i*Math.sin(2*Math.PI-e)),i*=2,t.get("label"))if(t.get("mini_label"))P2=v.p2Point(t.x,t.y,e,t.get("donutwidth")?t.r-t.get("donutwidth")/2:5*t.r/8),t.doText(t,P2.x,P2.y);else{var n=v.quadrantd(e),o=v.p2Point(t.x,t.y,e,t.r+i),s=v.p2Point(t.x,t.y,e,t.r+.6*i);P2=v.p2Point(t.x,t.y,e,t.r),t.doLabel(t,P2.x,P2.y,n,[{x:P2.x,y:P2.y},{x:s.x,y:s.y},{x:o.x,y:o.y}],o.x,o.y,.4*i)}}}),v.Sector3D=v.extend(v.Sector,{configure:function(){v.Sector3D.superclass.configure.apply(this,arguments),this.type="sector3d",this.dimension=v._3D,this.set({semi_major_axis:0,semi_minor_axis:0,cylinder_height:0}),this.proxy=!0},isEventValid:function(t,e){if(!e.get("ignored")){if(e.isLabel()&&e.label.isEventValid(t,e.label).valid)return{valid:!0};if(!v.inEllipse(t.x-e.x,t.y-e.y,e.a,e.b))return{valid:!1};if(v.angleZInRange(e.sA,e.eA,v.atan2Radian(e.x,e.y,t.x,t.y)))return{valid:!0}}return{valid:!1}},p2p:function(t,e,i,n){return{x:t+this.a*Math.cos(i)*n,y:e+this.b*Math.sin(i)*n}},tipInvoke:function(){var n=this,o=n.get("middleAngle"),s=v.quadrantd(o);return function(t,e){var i=n.p2p(n.x,n.y,o,.6);return{left:2<=s&&s<=3?i.x-t:i.x,top:3<=s?i.y-e:i.y}}},doConfig:function(){v.Sector3D.superclass.doConfig.call(this);var e=this._(),i=e.get("counterclockwise"),t=e.get("middleAngle");e.a=e.get("semi_major_axis"),e.b=e.get("semi_minor_axis"),e.h=e.get("cylinder_height"),v.Assert.isTrue(0<=e.a*e.b,"major&minor");var n=2*Math.PI,o=function(t){for(;t<0;)t+=n;return Math.abs(v.atan2Radian(0,0,e.a*Math.cos(t),i?-e.b*Math.sin(t):e.b*Math.sin(t)))},s=e.pushIf("increment",v.lowTo(5,e.a/10));if(e.sA=o.call(e,e.get("startAngle")),e.eA=o.call(e,e.get("endAngle")),e.mA=o.call(e,t),e.push("inc_x",s*Math.cos(n-e.mA)),e.push("inc_y",s*Math.sin(n-e.mA)),s*=2,e.get("label"))if(e.get("mini_label"))s=e.p2p(e.x,e.y,t,.5),e.doText(e,s.x,s.y);else{o=v.quadrantd(t);var a=e.p2p(e.x,e.y,t,s/e.a+1),r=e.p2p(e.x,e.y,t,.6*s/e.a+1);t=e.p2p(e.x,e.y,t,1);e.doLabel(e,t.x,t.y,o,[{x:t.x,y:t.y},{x:r.x,y:r.y},{x:a.x,y:a.y}],a.x,a.y,.4*s)}}}),v.Pie=v.extend(v.Chart,{configure:function(){v.Pie.superclass.configure.call(this),this.type="pie",this.set({radius:"100%",offset_angle:0,separate_angle:0,bound_event:"click",counterclockwise:!1,intellectLayout:!0,layout_distance:4,pop_animate:!1,mutex:!1,increment:void 0,sub_option:{label:{}}}),this.registerEvent("bound","rebound"),this.sectors=[],this.components.push(this.sectors),this.ILLUSIVE_COO=!0},toggle:function(t){this.sectors[t||0].toggle()},bound:function(t){this.sectors[t||0].bound()},rebound:function(t){this.sectors[t||0].rebound()},getSectors:function(){return this.sectors},doAnimation:function(e,i,n){var o=0,s=n.oA;n.sectors.each(function(t){o=n.animationArithmetic(e,0,t.get("totalAngle"),i),t.push("startAngle",s),t.push("endAngle",s+=o),n.is3D()||t.drawSector()}),n.is3D()&&n.proxy.drawSector()},parse:function(i){i.data.each(function(t,e){i.doParse(i,t,e)},i),i.localizer(i)},doParse:function(i,t,e){var n=t.name+" "+i.getPercent(t.value);i.doActing(i,t,null,e,n),i.push("sub_option.id",e),i.get("sub_option.label")&&i.push("sub_option.label.text",n),i.push("sub_option.listeners.changed",function(t,e){i.fireEvent(i,e?"bound":"rebound",[i,t.get("name")])}),i.sectors.push(i.doSector(i,t))},doSector:function(t){return new v[t.sub](t.get("sub_option"),t)},dolayout:function(t,e,i,n,o,s){(t.is3D()?v.inEllipse(t.get(t.X)-e,t.topY-i,t.a,t.b):v.distanceP2P(t.get(t.X),t.topY,e,i)<t.r)&&(i=t.topY-i,n.push("labelx",t.get(t.X)+(2*Math.sqrt(t.r*t.r-i*i)+o)*(0==s||3==s?1:-1)),n.localizer(n))},localizer:function(i){if(i.get("intellectLayout")){var n,o,s,e=[],t=[],a=i.get("layout_distance");i.sectors.each(function(t){t.isLabel()&&e.push(t.label)}),e.sor(function(t,e){return 0<Math.abs(Math.sin(t.get("angle")))-Math.abs(Math.sin(e.get("angle")))}),e.each(function(e){t.each(function(t){o=t.labelx,s=t.labely,(e.labely<=s&&s-e.labely-1<e.get(i.H)||e.labely>s&&e.labely-s-1<t.get(i.H))&&(e.labelx<=o&&o-e.labelx<e.get(i.W)||e.labelx>o&&e.labelx-o<t.get(i.W))&&(n=e.get("quadrantd"),e.push("labely",e.get("labely")+s-e.labely+(e.get(i.H)+a)*(1<n?-1:1)),e.localizer(e),i.dolayout(i,e.get("labelx"),e.get("labely")+e.get(i.H)/2*(n<2?-1:1),e,a,n))},i),t.push(e)})}},doConfig:function(){v.Pie.superclass.doConfig.call(this);var i,n=this._(),t=n.get("radius"),e=n.get("sub_option.label")?.35:.44,o=2*Math.PI;n.sub=n.is3D()?"Sector3D":"Sector2D",n.sectors.zIndex=n.get("z_index"),n.sectors.length=0,n.oA=v.angle2Radian(n.get("offset_angle"))%o,n.is3D()&&(e+=.06);var s=n.data.length,a=v.angle2Radian(v.between(0,90,n.get("separate_angle"))),r=o-a,l=(a=a/s,n.oA+a),c=l;0==n.total&&(i=1/s),n.data.each(function(t,e){l+=(i||t.value/n.total)*r,e==s-1&&(l=o+n.oA),t.startAngle=c,t.endAngle=l,t.totalAngle=l-c,t.middleAngle=(c+l)/2,c=l+a},n),n.r=t=v.parsePercent(t,Math.floor(n.get("minDistance")*e)),n.topY=n.originXY(n,[t+n.get("l_originx"),n.get("r_originx")-t,n.get("centerx")],[n.get("centery")]).y,v.apply(n.get("sub_option"),v.clone([n.X,n.Y,"bound_event","mutex","increment"],n.options))}}),v.Pie2D=v.extend(v.Pie,{configure:function(){v.Pie2D.superclass.configure.call(this),this.type="pie2d"},doConfig:function(){v.Pie2D.superclass.doConfig.call(this);var t=this._();t.push("sub_option.radius",t.r),t.parse(t)}}),v.register("Pie2D"),v.Pie3D=v.extend(v.Pie,{configure:function(){v.Pie3D.superclass.configure.apply(this,arguments),this.type="pie3d",this.dimension=v._3D,this.set({zRotate:45,yHeight:30}),this.positive=!0},doSector:function(t,e){return t.push("sub_option.cylinder_height",e.cylinder_height?e.cylinder_height*t.get("zRotate_"):t.get("cylinder_height")),new v[t.sub](t.get("sub_option"),t)},one:function(e){var o,i,s,n=[],a=e.get("counterclockwise"),r=function(t,e){return 1+Math.sin(e?t+Math.PI:t)};lay=function(t,e,i,n){s=v.quadrantd(e),(t&&(0==s||3==s)||!t&&(2==s||1==s))&&o.push({g:e,z:e==i,x:n.x,y:n.y,a:n.a,b:n.b,color:v.dark(n.get("background_color")),h:n.h,F:n})},e.proxy=new v.Custom({z_index:e.get("z_index")+1,drawFn:function(){this.drawSector(),n=[],e.sectors.each(function(t){t.get("label")&&(t.expanded?n.push(t.label):t.label.draw())}),n.each(function(t){t.draw()})}}),e.proxy.drawSector=function(){e.sectors.each(function(t){e.T.ellipse(t.x,t.y+t.h,t.a,t.b,t.get("startAngle"),t.get("endAngle"),0,t.get("border.enable"),t.get("border.width"),t.get("border.color"),t.get("shadow"),a,!0)},e),o=[],i=[],e.sectors.each(function(t){lay(a,t.get("startAngle"),t.get("endAngle"),t),lay(!a,t.get("endAngle"),t.get("startAngle"),t),i=i.concat(v.visible(t.get("startAngle"),t.get("endAngle"),t))},e),o.sor(function(t,e){var i=r(t.g)-r(e.g);return 0==i?t.z:0<i}),o.each(function(t){e.T.sector3D.layerDraw.call(e.T,t.x,t.y,t.a+.5,t.b+.5,a,t.h,t.g,t.color)},e),e.processAnimation||i.sor(function(t,e){return r((t.s+t.e)/2,1)-r((e.s+e.e)/2,1)<0}),i.each(function(t){e.T.sector3D.sPaint.call(e.T,t.f.x,t.f.y,t.f.a,t.f.b,t.s,t.e,a,t.f.h,t.f.get("f_color"))},e),e.sectors.each(function(t){e.T.ellipse(t.x,t.y,t.a,t.b,t.get("startAngle"),t.get("endAngle"),t.get("f_color"),t.get("border.enable"),t.get("border.width"),t.get("border.color"),!1,!1,!0)},e)},e.one=v.emptyFn},doConfig:function(){v.Pie3D.superclass.doConfig.call(this);var t=this._(),e=v.angle2Radian(t.get("zRotate"));t.push("cylinder_height",t.get("yHeight")*t.push("zRotate_",Math.abs(Math.cos(e)))),t.a=t.push("sub_option.semi_major_axis",t.r),t.b=t.push("sub_option.semi_minor_axis",t.r*Math.abs(Math.sin(e))),t.topY=t.push("sub_option.originy",t.get(t.Y)-t.get("yHeight")/2),t.parse(t),t.one(t),t.components.push(t.proxy)}}),v.register("Pie3D"),v.Donut2D=v.extend(v.Pie,{configure:function(){v.Donut2D.superclass.configure.call(this),this.type="donut2d",this.set({donutwidth:.3,center:{text:"",line_height:24,fontweight:"bold",fontsize:24}})},doConfig:function(){v.Donut2D.superclass.doConfig.call(this);var t=this._(),e=t.r;t.push("sub_option.radius",e),0<t.get("donutwidth")&&(t.get("donutwidth")<1?t.push("donutwidth",Math.floor(e*t.get("donutwidth"))):t.get("donutwidth")>=e&&t.push("donutwidth",0),t.push("sub_option.donutwidth",t.get("donutwidth"))),v.isString(t.get("center"))&&t.push("center",v.applyIf({text:t.get("center")},t.default_.center)),""!=t.get("center.text")&&(t.push("center.originx",t.get(t.X)),t.push("center.originy",t.get(t.Y)),t.push("center.textBaseline","middle"),t.center=new v.Text(t.get("center"),t),t.components.push(t.center)),t.parse(t)}}),v.register("Donut2D"),v.Column=v.extend(v.Chart,{configure:function(){v.Column.superclass.configure.call(this),this.type="column",this.set({coordinate:{},column_width:void 0,column_space:void 0,text_space:6,scaleAlign:"left",sub_option:{},label:{}}),this.registerEvent(),this.rectangles=[],this.labels=[],this.components.push(this.labels),this.components.push(this.rectangles)},doAnimation:function(e,i,n){var o;n.labels.each(function(t){t.draw()}),n.rectangles.each(function(t){o=Math.ceil(n.animationArithmetic(e,0,t.height,i)),t.push(n.Y,t.y+(t.height-o)),t.push(n.H,o),t.drawRectangle()})},getCoordinate:function(){return this.coo},doLabel:function(t,e,i,n,o){t.labels.push(new v.Text(v.apply(t.get("label"),{id:e,text:i,originx:n,originy:o}),t))},doParse:function(t,e,i,n){t.doActing(t,e,n,i)},engine:function(t){var e=t.get("column_width"),i=t.get("column_space"),n=t.coo.getScale(t.get("scaleAlign")),o=t.coo.valid_height,s=e/2,a=e*(t.get("group_fator")||0),r="complex"!=t.dataType?e+i:t.data.length*e+i+(t.is3D()?(t.data.length-1)*a:0),l=(u=t.coo.get("y_end"))-n.basic*o-(t.is3D()?t.get("zHeight")*(t.get("bottom_scale")-1)/2*t.get("yAngle_"):0),c=i+t.coo.get("x_start"),u=u+t.get("text_space")+t.coo.get("axis.width")[2];t.doEngine(t,e,i,n,o,s,a,r,c,l,u)},doConfig:function(){v.Column.superclass.doConfig.call(this);var s=this._();s.sub=s.is3D()?"Rectangle3D":"Rectangle2D",s.rectangles.length=0,s.labels.length=0,s.rectangles.zIndex=s.get("z_index"),s.labels.zIndex=s.get("z_index")+1,s.coo=v.Coordinate.coordinate_.call(s,function(){var t,e,i,n=s.data.length,o=s.get("coordinate.valid_width_value");"complex"==s.dataType?(n=(i=s.get("labels").length)*n+(s.is3D()?(n-1)*i*s.get("group_fator"):0),t=Math.floor(o/(i+1+n)),e=s.pushIf("column_width",t),i+=1):("stacked"==s.dataType&&(n=s.get("labels").length),t=Math.floor(2*o/(3*n+1)),e=s.pushIf("column_width",t),i=n+1),o<e*n&&(e=s.push("column_width",t)),s.push("column_space",(o-e*n)/i),s.is3D()&&(s.push("zHeight",s.get("column_width")*s.get("zScale")),s.push("sub_option.zHeight",s.get("zHeight")),s.push("sub_option.xAngle_",s.get("xAngle_")),s.push("sub_option.yAngle_",s.get("yAngle_")))}),s.push("sub_option.width",s.get("column_width"))}}),v.Column2D=v.extend(v.Column,{configure:function(){v.Column2D.superclass.configure.call(this),this.type="column2d"},doEngine:function(i,t,e,n,o,s,a,r,l,c,u){var h;i.data.each(function(t,e){h=(t.value-n.start)*o/n.distance,i.doParse(i,t,e,{id:e,originx:l+e*r,originy:c-(0<h?h:0),height:Math.abs(h)}),i.rectangles.push(new v[i.sub](i.get("sub_option"),i)),i.doLabel(i,e,t.name,l+r*e+s,u)},i)},doConfig:function(){v.Column2D.superclass.doConfig.call(this),this.engine(this)}}),v.register("Column2D"),v.Column3D=v.extend(v.Column2D,{configure:function(){v.Column3D.superclass.configure.call(this),this.type="column3d",this.dimension=v._3D,this.set({coordinate:{},xAngle:60,yAngle:20,zScale:1,bottom_scale:1.4})},doConfig:function(){v.Column3D.superclass.doConfig.call(this)}}),v.register("Column3D"),v.ColumnMulti2D=v.extend(v.Column,{configure:function(){v.ColumnMulti2D.superclass.configure.call(this),this.type="columnmulti2d",this.dataType="complex",this.set({labels:[]})},doEngine:function(n,o,e,s,a,t,r,l,c,u,h){var g;n.columns.each(function(t,i){t.item.each(function(t,e){g=(t.value-s.start)*a/s.distance,n.doParse(n,t,e,{id:i+"_"+e,originx:c+e*(o+r)+i*l,originy:u-(0<g?g:0),height:Math.abs(g)}),n.rectangles.push(new v[n.sub](n.get("sub_option"),n))},n),n.doLabel(n,i,t.name,c-.5*e+(i+.5)*l,h)},n)},doConfig:function(){v.ColumnMulti2D.superclass.doConfig.call(this),this.engine(this)}}),v.register("ColumnMulti2D"),v.ColumnMulti3D=v.extend(v.ColumnMulti2D,{configure:function(){v.ColumnMulti3D.superclass.configure.call(this),this.type="columnmulti3d",this.dataType="complex",this.dimension=v._3D,this.set({xAngle:60,yAngle:20,zScale:1,group_fator:.3,bottom_scale:1.4})},doConfig:function(){v.ColumnMulti3D.superclass.doConfig.call(this)}}),v.register("ColumnMulti3D"),v.ColumnStacked2D=v.extend(v.Column,{configure:function(){v.ColumnStacked2D.superclass.configure.call(this),this.type="columnstacked2d",this.dataType="stacked",this.set({percent:!1,labels:[],sub_option:{label:{color:"#ffffff"},valueAlign:"middle"}})},doEngine:function(o,t,e,s,a,i,n,r,l,c,u){var h,g,d,p=o.get("percent");o.columns.each(function(i,n){h=0,d=p?100/i.total:1,i.item.each(function(t,e){g=(t.value*d-s.start)*a/s.distance,t.total=i.total,o.doParse(o,t,e,{id:n+"_"+e,originx:l+n*r,originy:c-(0<g?g:0)-h,height:Math.abs(g)}),h+=g,o.rectangles.push(new v[o.sub](o.get("sub_option"),o))},o),o.doLabel(o,n,i.name,l-.5*e+(n+.5)*r,u)},o)},doConfig:function(){v.ColumnStacked2D.superclass.doConfig.call(this),this.engine(this)}}),v.register("ColumnStacked2D"),v.ColumnStacked3D=v.extend(v.ColumnStacked2D,{configure:function(){v.ColumnStacked3D.superclass.configure.call(this),this.type="columnstacked3d",this.dataType="stacked",this.dimension=v._3D,this.set({percent:!1,sub_option:{label:{color:"#ffffff"},valueAlign:"middle"},coordinate:{},xAngle:60,yAngle:20,zScale:1,bottom_scale:1.4})},doConfig:function(){v.ColumnStacked3D.superclass.doConfig.call(this)}}),v.register("ColumnStacked3D"),v.Bar=v.extend(v.Chart,{configure:function(){v.Bar.superclass.configure.call(this),this.type="bar",this.set({coordinate:{striped_direction:"h"},bar_height:void 0,bar_space:void 0,text_space:6,scaleAlign:"bottom",sub_option:{},label:{}})},getCoordinate:function(){return this.coo},doLabel:function(t,e,i,n,o){t.labels.push(new v.Text(v.apply(t.get("label"),{id:e,text:i,textAlign:"right",textBaseline:"middle",originx:n,originy:o}),t))},doParse:function(t,e,i,n){t.doActing(t,e,n,i)},engine:function(t){var e=t.get("bar_height"),i=t.get("bar_space"),n=t.coo.getScale(t.get("scaleAlign")),o=t.coo.valid_width,s=e/2,a="complex"!=t.dataType?e+i:t.data.length*e+i,r=t.coo.get("x_start")+n.basic*o,l=t.coo.get(t.X)-t.get("text_space")-t.coo.get("axis.width")[3],c=t.coo.get("y_start")+i;t.doEngine(t,e,i,n,o,s,a,r,l,c)},doAnimation:function(e,i,n){n.labels.each(function(t){t.draw()}),n.rectangles.each(function(t){t.push(n.W,Math.ceil(n.animationArithmetic(e,0,t.width,i))),t.drawRectangle()})},doConfig:function(){v.Bar.superclass.doConfig.call(this);var s=this._();s.rectangles=[],s.labels=[],s.rectangles.zIndex=s.get("z_index"),s.labels.zIndex=s.get("z_index")+1,s.components.push(s.labels),s.components.push(s.rectangles),s.coo=v.Coordinate.coordinate_.call(s,function(){var t,e,i,n=s.data.length,o=s.get("coordinate.valid_height_value");"complex"==s.dataType?(n=(i=s.get("labels").length)*n+(s.is3D()?(n-1)*i*s.get("group_fator"):0),t=Math.floor(o/(i+1+n)),e=s.pushIf("bar_height",t),i+=1):("stacked"==s.dataType&&(n=s.get("labels").length),t=Math.floor(2*o/(3*n+1)),e=s.pushIf("bar_height",t),i=n+1),o<e*n&&(e=s.push("bar_height",t)),s.push("bar_space",(o-e*n)/i)}),s.push("sub_option.height",s.get("bar_height")),s.push("sub_option.valueAlign",s.R),s.push("sub_option.tipAlign",s.R)}}),v.Bar2D=v.extend(v.Bar,{configure:function(){v.Bar2D.superclass.configure.call(this),this.type="bar2d"},doEngine:function(i,t,e,n,o,s,a,r,l,c){var u;i.data.each(function(t,e){u=(t.value-n.start)*o/n.distance,i.doParse(i,t,e,{id:e,originy:c+e*a,width:Math.abs(u),originx:r+(0<u?0:-Math.abs(u))}),i.rectangles.push(new v.Rectangle2D(i.get("sub_option"),i)),i.doLabel(i,e,t.name,l,c+e*a+s)},i)},doConfig:function(){v.Bar2D.superclass.doConfig.call(this),this.engine(this)}}),v.register("Bar2D"),v.BarMulti2D=v.extend(v.Bar,{configure:function(){v.BarMulti2D.superclass.configure.call(this),this.type="barmulti2d",this.dataType="complex",this.set({labels:[]})},doEngine:function(n,o,e,s,a,t,r,l,c,u){var h;n.columns.each(function(t,i){t.item.each(function(t,e){h=(t.value-s.start)*a/s.distance,n.doParse(n,t,e,{id:i+"_"+e,originy:u+e*o+i*r,width:Math.abs(h),originx:l+(0<h?0:-Math.abs(h))}),n.rectangles.push(new v.Rectangle2D(n.get("sub_option"),n))},n),n.doLabel(n,i,t.name,c,u-.5*e+(i+.5)*r)},n)},doConfig:function(){v.BarMulti2D.superclass.doConfig.call(this),this.engine(this)}}),v.register("BarMulti2D"),v.BarStacked2D=v.extend(v.Bar,{configure:function(){v.BarStacked2D.superclass.configure.call(this),this.type="barstacked2d",this.dataType="stacked",this.set({percent:!1,labels:[],sub_option:{label:{color:"#ffffff"},valueAlign:"middle"}})},doEngine:function(o,t,e,s,a,i,r,l,c,u){var h,g,d,p=o.get("percent");o.columns.each(function(i,n){h=0,d=p?100/i.total:1,i.item.each(function(t,e){g=(t.value*d-s.start)*a/s.distance,t.total=i.total,o.doParse(o,t,e,{id:n+"_"+e,originy:u+n*r,originx:l+(0<g?0:-Math.abs(g))+h,width:Math.abs(g)}),h+=g,o.rectangles.push(new v.Rectangle2D(o.get("sub_option"),o))},o),o.doLabel(o,n,i.name,c,u-.5*e+(n+.5)*r)},o)},doConfig:function(){v.BarStacked2D.superclass.doConfig.call(this),this.push("sub_option.valueAlign",this.C),this.engine(this)}}),v.register("BarStacked2D"),v.LineSegment=v.extend(v.Component,{configure:function(){v.LineSegment.superclass.configure.apply(this,arguments),this.type="linesegment",this.set({brushsize:1,intersection:!0,label:{},sign:"round",area_color:null,hollow:!0,hollow_inside:!0,hollow_color:"#FEFEFE",smooth:!1,smoothing:1.5,point_size:6,points:[],keep_with_coordinate:!1,shadow_blur:1,shadow_offsety:1,point_space:0,coordinate:null,event_range_x:0,limit_y:!1,tip_offset:2,event_range_y:0}),this.registerEvent("parseText"),this.tip=null},drawSegment:function(){var e=this._();e.polygons.each(function(t){e.T.polygon.apply(e.T,t)}),e.T.shadowOn(e.get("shadow")),e.lines.each(function(t){e.T.lineArray.apply(e.T,t)}),e.intersections.each(function(t){e.sign_plugin?e.sign_plugin_fn.apply(e,t):e.T.round0.apply(e.T,t)}),e.get("shadow")&&e.T.shadowOff()},doDraw:function(t){t.drawSegment(),t.get("label")&&t.labels.each(function(t){t.draw()})},isEventValid:function(){},tipInvoke:function(){var o=this.x,s=this.get("tip_offset"),a=this.get("point_size")+s,r=this;return function(t,e,i){var n=i.left;i=i.top;return{left:n=r.tipPosition<3&&0<n-t-o-s||2<r.tipPosition&&n-t-o-s<0?n-(t+s):n+s,top:i=0==r.tipPosition%2?i+a:i-e-a}}},PP:function(t,e,i,n,o,s){t.get("area")&&t.polygons.push([t.get("area_color")||t.get("light_color2"),0,t.get("brushsize"),0,0,t.get("area_opacity"),t.get("smooth")?e:[{x:i,y:n}].concat(e.concat([{x:o,y:s}])),t.get("smooth"),t.get("smoothing")||1.5,[{x:i,y:n},{x:o,y:s}]])},parse:function(e){e.polygons=[],e.lines=[],e.intersections=[],e.labels=[];var t=e.get("points"),i=e.get("intersection"),n=!!e.get("label"),o=[],s=!1,a=e.get("smooth"),r=e.get("smoothing")||1.5,l=e.get("f_color"),c=e.get("brushsize"),u=e.get("point_size");if(i){var h=e.getPlugin("sign"),g=l,d=e.get("hollow_color");e.sign_plugin=v.isFunction(h),e.sign_plugin_fn=h,e.get("hollow_inside")&&(g=d,d=l)}t.each(function(t){t.x_=t.x,t.y_=t.y,!t.ignored&&n&&(e.push("label.originx",t.x),e.push("label.originy",t.y-u/2-1),e.push("label.text",e.fireString(e,"parseText",[e,t.value],t.value)),v.applyIf(e.get("label"),{textBaseline:"bottom",color:e.get("f_color")}),e.labels.push(new v.Text(e.get("label"),e))),t.ignored&&s?(e.lines.push([o,c,l,a,r]),e.PP(e,o,o[0].x,e.y,o[o.length-1].x,e.y),s=!(o=[])):t.ignored||(o.push(t),s=!0),i&&!t.ignored&&e.intersections.push(e.sign_plugin?[e.T,e.get("sign"),t,u,t.color||g,t.hollow_color||d]:e.get("hollow")?[t,u/2-c+1,t.color||g,c+1,t.hollow_color||d]:[t,u/2,t.color||g])}),o.length&&(e.lines.push([o,c,l,a,r]),e.PP(e,o,o[0].x,e.y,o[o.length-1].x,e.y))},doConfig:function(){v.LineSegment.superclass.doConfig.call(this),v.Assert.isTrue(0<this.get("point_space"),"point_space");var n=this._(),t=3*n.get("point_size")/2,o=n.get("point_space"),s=n.get("event_range_y"),a=n.get("event_range_x"),e=n.get("tipInvokeHeap"),r=n.get("points"),i=n.get("name");n.parse(n),(a<=0||o/2<a)&&(a=n.push("event_range_x",o/2)),0==s&&(s=n.push("event_range_y",t/2)),n.get("tip.enable")&&(n.on("mouseover",function(){e.push(n),n.tipPosition=e.length}).on("mouseout",function(){e.pop()}),n.push("tip.invokeOffsetDynamic",!0),n.tip=new v.Tip(n.get("tip"),n));var l=n.get("coordinate"),c=n.get("limit_y"),u=n.get("keep_with_coordinate"),h=function(t,e,i){return!(t.ignored||!(Math.abs(e-t.x)<a)||c&&!(c&&Math.abs(i-t.y)<s))},g=function(t){return{valid:!0,name:i,value:r[t].value,text:r[t].text,top:r[t].y,left:r[t].x,i:t,hit:!0}};n.isEventValid=function(t){if(l&&!l.isEventValid(t,l).valid)return{valid:!1};var e=Math.floor((t.x-n.x)/o);if(e<0||e>=r.length-1)return e=v.between(0,r.length-1,e),h(r[e],t.x,t.y)?g(e):{valid:u};for(var i=e;i<=e+1;i++)if(h(r[i],t.x,t.y))return g(i);return{valid:u}}}}),v.Line=v.extend(v.Chart,{configure:function(){v.Line.superclass.configure.call(this),this.type="line",this.set({brushsize:1,coordinate:{axis:{width:[0,0,2,2]}},crosshair:{enable:!1},tipMocker:null,tipMockerOffset:null,scaleAlign:"left",labelAlign:"bottom",labels:[],label_space:6,proportional_spacing:!0,sub_option:{},legend:{sign:"bar"},label:{}}),this.registerEvent("parsePoint"),this.lines=[],this.components.push(this.lines)},getCoordinate:function(){return this.coo},doConfig:function(){v.Line.superclass.doConfig.call(this);var e=this._(),t=1==e.data.length;e.lines.length=0,e.lines.zIndex=e.get("z_index");var i=e.pushIf("sub_option.keep_with_coordinate",t);e.get("crosshair.enable")&&(e.pushIf("crosshair.hcross",t),e.push("crosshair.invokeOffset",function(t){return(t=e.lines[0].isEventValid(t)).valid?t:i})),e.Combination||(e.push("coordinate.crosshair",e.get("crosshair")),e.pushIf("coordinate.scale",[{position:e.get("scaleAlign"),max_scale:e.get("maxValue")},{position:e.get("labelAlign"),start_scale:1,scale:1,end_scale:e.get("maxItemSize"),labels:e.get("labels"),label:e.get("label")}])),e.coo=v.Coordinate.coordinate_.call(e),e.Combination&&(e.coo.push("crosshair",e.get("crosshair")),e.coo.doCrosshair(e.coo));var n=t=e.coo.valid_width,o=e.get("maxItemSize")-1,s=t/o,a=e.get("point_space");if(e.get("proportional_spacing")&&(a&&a<s?n=o*a:e.push("point_space",s)),e.push("sub_option.width",n),e.push("sub_option.height",e.coo.valid_height),e.push("sub_option.originx",e.coo.get("x_start")+(t-n)/2),e.push("sub_option.originy",e.coo.get("y_end")),e.get("tip.enable")&&!e.mocker&&v.isFunction(e.get("tipMocker"))){e.push("sub_option.tip.enable",!1),e.push("tip.invokeOffsetDynamic",!0);var r,l,c,u,h=e.coo.get(e.X),g=e.coo.get(e.Y),d=e.coo.height,p=e.get("tipMockerOffset");p=v.isNumber(p)?p<0?0:1<p?1:p:null;e.push("tip.invokeOffset",function(t,e,i){return null!=p?i.top=g+(d-e)*p:(i.top=i.maxTop-(i.maxTop-i.minTop)/3-e,(d<e||g>i.top)&&(i.top=g)),{left:5<i.left-t-h?i.left-t-5:i.left+5,top:i.top}});var f=e.get("tip.listeners.parseText");f&&delete e.get("tip.listeners").parseText,e.mocker=new v.Custom({eventValid:function(i){return(c=e.lines[0].isEventValid(i)).hit=l!=c.i,c.valid&&(l=c.i,r=[],e.lines.each(function(t,e){u=t.isEventValid(i),0==e?c.minTop=c.maxTop=u.top:(c.minTop=Math.min(c.minTop,u.top),c.maxTop=Math.max(c.maxTop,u.top)),r.push(f?f(null,u.name,u.value,u.text,u.i):u.name+" "+u.value)}),c.text=e.get("tipMocker").call(e,r,c.i)||"tipMocker not return"),!!c.valid&&c}}),new v.Tip(e.get("tip"),e.mocker),e.register(e.mocker)}e.pushIf("sub_option.area_opacity",e.get("area_opacity"))}}),v.LineBasic2D=v.extend(v.Line,{configure:function(){v.LineBasic2D.superclass.configure.call(this),this.type="basicline2d",this.tipInvokeHeap=[]},doAnimation:function(i,n,o){o.lines.each(function(e){e.get("points").each(function(t){t.y=e.y-Math.ceil(o.animationArithmetic(i,0,e.y-t.y_,n))}),e.drawSegment()})},doConfig:function(){v.LineBasic2D.superclass.doConfig.call(this);var n,o,s,a,r,l,c=this._(),u=c.coo.valid_height,h=c.get("point_space"),g=c.get("sub_option.originx");c.push("sub_option.tip.showType","follow"),c.push("sub_option.coordinate",c.coo),c.push("sub_option.tipInvokeHeap",c.tipInvokeHeap),c.push("sub_option.point_space",h),c.data.each(function(i){n=c.coo.getScale(i.scaleAlign||c.get("scaleAlign")),r=c.get("sub_option.originy")-n.basic*u,o=[],i.value.each(function(t,e){s=h*e,a=(t-n.start)*u/n.distance,l={x:g+s,y:r-a,value:t,text:i.name+" "+t},v.merge(l,c.fireEvent(c,"parsePoint",[i,t,s,a,e,n])),o.push(l)},c),v.merge(c.get("sub_option"),i),c.push("sub_option.points",o),c.push("sub_option.brushsize",i.linewidth||i.line_width),c.lines.push(new v.LineSegment(c.get("sub_option"),c))},this)}}),v.register("LineBasic2D"),v.Area2D=v.extend(v.LineBasic2D,{configure:function(){v.Area2D.superclass.configure.call(this),this.type="area2d",this.set({area_opacity:.3})},doConfig:function(){this.push("sub_option.area",!0),v.Area2D.superclass.doConfig.call(this)}}),v.register("Area2D")}(iChart);