charts.js 362 KB

1
  1. Ext.define('Ext.draw.ContainerBase',{extend:'Ext.Container',constructor:function(a){this.callParent([a]);this.initAnimator()},onResize:function(b,a,d,c){this.handleResize({width:b,height:a},!0)},addElementListener:function(){var a=this.element;a.on.apply(a,arguments)},removeElementListener:function(){var a=this.element;a.un.apply(a,arguments)},preview:function(a){var b;a=a||this.getImage();if(a.type==='svg-markup'){b={xtype:'container',html:a.data}}else {b={xtype:'image',mode:'img',imageCls:'',cls:Ext.baseCSSPrefix+'chart-preview',src:a.data}}Ext.Viewport.add({xtype:'panel',layout:'fit',modal:!0,border:1,shadow:!0,width:'90%',height:'90%',hideOnMaskTap:!0,centered:!0,floated:!0,scrollable:!1,closable:!0,closeAction:'hide',items:[b],listeners:{hide:function(){this.destroy()}}}).show()}});Ext.define('Ext.draw.SurfaceBase',{extend:'Ext.Widget',getOwnerBody:function(){return this.getRefOwner().bodyElement}});Ext.define('Ext.draw.sprite.AnimationParser',function(){function compute(a,c,b){return a+(c-a)*b}return {singleton:!0,attributeRe:/^url\(#([a-zA-Z\-]+)\)$/,requires:['Ext.draw.Color'],color:{parseInitial:function(a,b){if(Ext.isString(a)){a=Ext.util.Color.create(a)}if(Ext.isString(b)){b=Ext.util.Color.create(b)}if((a&&a.isColor)&&(b&&b.isColor)){return [[a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a]]}else {return [a||b,b||a]}},compute:function(a,b,c){if(!Ext.isArray(a)||!Ext.isArray(b)){return b||a}else {return [compute(a[0],b[0],c),compute(a[1],b[1],c),compute(a[2],b[2],c),compute(a[3],b[3],c)]}},serve:function(a){var b=Ext.util.Color.fly(a[0],a[1],a[2],a[3]);return b.toString()}},number:{parse:function(a){return a===null?null:+a},compute:function(a,b,c){if(!Ext.isNumber(a)||!Ext.isNumber(b)){return b||a}else {return compute(a,b,c)}}},angle:{parseInitial:function(b,a){if(a-b>Math.PI){a-=Math.PI*2}else if(a-b<-Math.PI){a+=Math.PI*2}return [b,a]},compute:function(a,b,c){if(!Ext.isNumber(a)||!Ext.isNumber(b)){return b||a}else {return compute(a,b,c)}}},path:{parseInitial:function(m,l){var e=m.toStripes(),c=l.toStripes(),a,i,f=e.length,g=c.length,j,h,k,d=c[g-1],b=[d[d.length-2],d[d.length-1]];for(a=f;a<g;a++){e.push(e[f-1].slice(0))}for(a=g;a<f;a++){c.push(b.slice(0))}k=e.length;c.path=l;c.temp=new Ext.draw.Path();for(a=0;a<k;a++){j=e[a];h=c[a];f=j.length;g=h.length;c.temp.commands.push('M');for(i=g;i<f;i+=6){h.push(b[0],b[1],b[0],b[1],b[0],b[1])}d=c[c.length-1];b=[d[d.length-2],d[d.length-1]];for(i=f;i<g;i+=6){j.push(b[0],b[1],b[0],b[1],b[0],b[1])}for(a=0;a<h.length;a++){h[a]-=j[a]}for(a=2;a<h.length;a+=6){c.temp.commands.push('C')}}return [e,c]},compute:function(e,b,f){if(f>=1){return b.path}var c=0,k=e.length,a=0,g,d,h,i=b.temp.params,j=0;for(;c<k;c++){d=e[c];h=b[c];g=d.length;for(a=0;a<g;a++){i[j++]=h[a]*f+d[a]}}return b.temp}},data:{compute:function(e,i,j,a){var f=e.length-1,g=i.length-1,h=Math.max(f,g),b,d,c;if(!a||a===e){a=[]}a.length=h+1;for(b=0;b<=h;b++){d=e[Math.min(b,f)];c=i[Math.min(b,g)];if(Ext.isNumber(d)){if(!Ext.isNumber(c)){c=0}a[b]=d+(c-d)*j}else {a[b]=c}}return a}},text:{compute:function(b,c,a){return b.substr(0,Math.round(b.length*(1-a)))+c.substr(Math.round(c.length*(1-a)))}},limited:'number',limited01:'number'}});(function(){if(!Ext.global.Float32Array){var a=function(a){if(typeof a==='number'){this.length=a}else if('length' in a){this.length=a.length;for(var b=0,c=a.length;b<c;b++){this[b]=+a[b]}}};a.prototype=[];Ext.global.Float32Array=a}})();Ext.define('Ext.draw.Draw',{singleton:!0,radian:Math.PI/180,pi2:Math.PI*2,reflectFn:function(a){return a},rad:function(a){return (a%360)*this.radian},degrees:function(a){return (a/this.radian)%360},isBBoxIntersect:function(a,b,c){c=c||0;return (Math.max(a.x,b.x)-c>Math.min(a.x+a.width,b.x+b.width))||(Math.max(a.y,b.y)-c>Math.min(a.y+a.height,b.y+b.height))},isPointInBBox:function(b,c,a){return !!a&&b>=a.x&&b<=(a.x+a.width)&&c>=a.y&&c<=(a.y+a.height)},naturalSpline:function(c){var a,e,i=c.length,g,j,k,d,h=0,b=new Float32Array(c.length),f=new Float32Array(c.length*3-2);b[0]=0;b[i-1]=0;for(a=1;a<i-1;a++){b[a]=(c[a+1]+c[a-1]-2*c[a])-b[a-1];h=1/(4-h);b[a]*=h}for(a=i-2;a>0;a--){h=3.732050807568877+48.248711305964385/(-13.928203230275537+Math.pow(0.07179676972449123,a));b[a]-=b[a+1]*h}d=c[0];g=d-b[0];for(a=0,e=0;a<i-1;e+=3){k=d;j=g;a++;d=c[a];g=d-b[a];f[e]=k;f[e+1]=(g+2*j)/3;f[e+2]=(g*2+j)/3}f[e]=d;return f},spline:function(a){return this.naturalSpline(a)},cardinalToBezier:function(d,a,b,e,c){return [a,a+(b-d)/6*c,b-(e-a)/6*c,b]},cardinalSpline:function(b,f){var e=b.length,d=new Float32Array(e*3-2),c,a;if(f===undefined){f=0.5}a=this.cardinalToBezier(b[0],b[0],b[1],b[2],f);d[0]=a[0];d[1]=a[1];d[2]=a[2];d[3]=a[3];for(c=0;c<e-3;c++){a=this.cardinalToBezier(b[c],b[c+1],b[c+2],b[c+3],f);d[4+c*3]=a[1];d[4+c*3+1]=a[2];d[4+c*3+2]=a[3]}a=this.cardinalToBezier(b[e-3],b[e-2],b[e-1],b[e-1],f);d[4+c*3]=a[1];d[4+c*3+1]=a[2];d[4+c*3+2]=a[3];return d},getAnchors:function(s,c,f,a,r,b,m){m=m||4;var j=Math.PI,q=j/2,n=Math.abs,v=Math.sin,u=Math.cos,t=Math.atan,o,p,d,e,k,g,l,h,i;o=(f-s)/m;p=(r-f)/m;if((a>=c&&a>=b)||(a<=c&&a<=b)){d=e=q}else {d=t((f-s)/n(a-c));if(c<a){d=j-d}e=t((r-f)/n(a-b));if(b<a){e=j-e}}i=q-((d+e)%(j*2))/2;if(i>q){i-=j}d+=i;e+=i;k=f-o*v(d);g=a+o*u(d);l=f+p*v(e);h=a+p*u(e);if((a>c&&g<c)||(a<c&&g>c)){k+=n(c-g)*(k-f)/(g-a);g=c}if((a>b&&h<b)||(a<b&&h>b)){l-=n(b-h)*(l-f)/(h-a);h=b}return {x1:k,y1:g,x2:l,y2:h}},smooth:function(i,j,p){var o=i.length,m,n,c,d,k,l,e,f,g=[],h=[],a,b;for(a=0;a<o-1;a++){m=i[a];n=j[a];if(a===0){e=m;f=n;g.push(e);h.push(f);if(o===1){break}}c=i[a+1];d=j[a+1];k=i[a+2];l=j[a+2];if(!(Ext.isNumber(k)&&Ext.isNumber(l))){g.push(e,c,c);h.push(f,d,d);break}b=this.getAnchors(m,n,c,d,k,l,p);g.push(e,b.x1,c);h.push(f,b.y1,d);e=b.x2;f=b.y2}return {smoothX:g,smoothY:h}},beginUpdateIOS:Ext.os.is.iOS?function(){this.iosUpdateEl=Ext.getBody().createChild({style:'position: absolute; top: 0px; bottom: 0px; left: 0px; right: 0px; background: rgba(0,0,0,0.001); z-index: 100000'})}:Ext.emptyFn,endUpdateIOS:function(){this.iosUpdateEl=Ext.destroy(this.iosUpdateEl)}});Ext.define('Ext.draw.gradient.Gradient',{requires:['Ext.draw.Color'],isGradient:!0,config:{stops:[]},applyStops:function(e){var d=[],f=e.length,c,b,a;for(c=0;c<f;c++){b=e[c];a=b.color;if(!(a&&a.isColor)){a=Ext.util.Color.fly(a||Ext.util.Color.NONE)}d.push({offset:Math.min(1,Math.max(0,'offset' in b?b.offset:b.position||0)),color:a.toString()})}d.sort(function(a,b){return a.offset-b.offset});return d},onClassExtended:function(b,a){if(!a.alias&&a.type){a.alias='gradient.'+a.type}},constructor:function(a){this.initConfig(a)},generateGradient:Ext.emptyFn});Ext.define('Ext.draw.gradient.GradientDefinition',{singleton:!0,urlStringRe:/^url\(#([\w\-]+)\)$/,gradients:{},add:function(c){var e=this.gradients,b,d,a;for(b=0,d=c.length;b<d;b++){a=c[b];if(Ext.isString(a.id)){e[a.id]=a}}},get:function(b){var d=this.gradients,a=b.match(this.urlStringRe),c;if(a&&a[1]&&(c=d[a[1]])){return c||b}return b}});Ext.define('Ext.draw.sprite.AttributeParser',{singleton:!0,attributeRe:/^url\(#([a-zA-Z\-]+)\)$/,requires:['Ext.draw.Color','Ext.draw.gradient.GradientDefinition'],'default':Ext.identityFn,string:function(a){return String(a)},number:function(a){if(Ext.isNumber(+a)){return a}},angle:function(a){if(Ext.isNumber(a)){a%=Math.PI*2;if(a<-Math.PI){a+=Math.PI*2}else if(a>=Math.PI){a-=Math.PI*2}return a}},data:function(a){if(Ext.isArray(a)){return a.slice()}else if(a instanceof Float32Array){return new Float32Array(a)}},bool:function(a){return !!a},color:function(a){if(a&&a.isColor){return a.toString()}else if(a&&a.isGradient){return a}else if(!a){return Ext.util.Color.NONE}else if(Ext.isString(a)){if(a.substr(0,3)==='url'){a=Ext.draw.gradient.GradientDefinition.get(a);if(Ext.isString(a)){return a}}else {return Ext.util.Color.fly(a).toString()}}if(a.type==='linear'){return Ext.create('Ext.draw.gradient.Linear',a)}else if(a.type==='radial'){return Ext.create('Ext.draw.gradient.Radial',a)}else if(a.type==='pattern'){return Ext.create('Ext.draw.gradient.Pattern',a)}else {return Ext.util.Color.NONE}},limited:function(a,b){return function(c){c=+c;return Ext.isNumber(c)?Math.min(Math.max(c,a),b):undefined}},limited01:function(a){a=+a;return Ext.isNumber(a)?Math.min(Math.max(a,0),1):undefined},enums:function(){var b={},c=Array.prototype.slice.call(arguments,0),a,d;for(a=0,d=c.length;a<d;a++){b[c[a]]=!0}return function(a){return a in b?a:undefined}}});Ext.define('Ext.draw.sprite.AttributeDefinition',{requires:['Ext.draw.sprite.AttributeParser','Ext.draw.sprite.AnimationParser'],config:{defaults:{$value:{},lazy:!0},aliases:{},animationProcessors:{},processors:{$value:{},lazy:!0},dirtyTriggers:{},triggers:{},updaters:{}},inheritableStatics:{processorFactoryRe:/^(\w+)\(([\w\-,]*)\)$/},spriteClass:null,constructor:function(a){var b=this;b.initConfig(a)},applyDefaults:function(b,a){a=Ext.apply(a||{},this.normalize(b));return a},applyAliases:function(b,a){return Ext.apply(a||{},b)},applyProcessors:function(g,j){this.getAnimationProcessors();var h=j||{},b=Ext.draw.sprite.AttributeParser,i=this.self.processorFactoryRe,f={},e,d,c,a;for(d in g){a=g[d];if(typeof a==='string'){c=a.match(i);if(c){a=b[c[1]].apply(b,c[2].split(','))}else if(b[a]){f[d]=a;e=!0;a=b[a]}}h[d]=a}if(e){this.setAnimationProcessors(f)}return h},applyAnimationProcessors:function(e,b){var d=Ext.draw.sprite.AnimationParser,c,a;if(!b){b={}}for(c in e){a=e[c];if(a==='none'){b[c]=null}else if(Ext.isString(a)&&!(c in b)){if(a in d){while(Ext.isString(d[a])){a=d[a]}b[c]=d[a]}}else if(Ext.isObject(a)){b[c]=a}}return b},updateDirtyTriggers:function(a){this.setTriggers(a)},applyTriggers:function(b,a){if(!a){a={}}for(var c in b){a[c]=b[c].split(',')}return a},applyUpdaters:function(b,a){return Ext.apply(a||{},b)},batchedNormalize:function(d,n){if(!d){return {}}var j=this.getProcessors(),k=this.getAliases(),h=d.translation||d.translate,a={},i,o,c,f,b,e,l,m,g;if('rotation' in d){b=d.rotation}else {b=('rotate' in d)?d.rotate:undefined}if('scaling' in d){e=d.scaling}else {e=('scale' in d)?d.scale:undefined}if(typeof e!=='undefined'){if(Ext.isNumber(e)){a.scalingX=e;a.scalingY=e}else {if('x' in e){a.scalingX=e.x}if('y' in e){a.scalingY=e.y}if('centerX' in e){a.scalingCenterX=e.centerX}if('centerY' in e){a.scalingCenterY=e.centerY}}}if(typeof b!=='undefined'){if(Ext.isNumber(b)){b=Ext.draw.Draw.rad(b);a.rotationRads=b}else {if('rads' in b){a.rotationRads=b.rads}else if('degrees' in b){if(Ext.isArray(b.degrees)){a.rotationRads=Ext.Array.map(b.degrees,function(a){return Ext.draw.Draw.rad(a)})}else {a.rotationRads=Ext.draw.Draw.rad(b.degrees)}}if('centerX' in b){a.rotationCenterX=b.centerX}if('centerY' in b){a.rotationCenterY=b.centerY}}}if(typeof h!=='undefined'){if('x' in h){a.translationX=h.x}if('y' in h){a.translationY=h.y}}if('matrix' in d){l=Ext.draw.Matrix.create(d.matrix);g=l.split();a.matrix=l;a.rotationRads=g.rotation;a.rotationCenterX=0;a.rotationCenterY=0;a.scalingX=g.scaleX;a.scalingY=g.scaleY;a.scalingCenterX=0;a.scalingCenterY=0;a.translationX=g.translateX;a.translationY=g.translateY}for(c in d){f=d[c];if(typeof f==='undefined'){continue}else if(Ext.isArray(f)){if(c in k){c=k[c]}if(c in j){a[c]=[];for(i=0,o=f.length;i<o;i++){m=j[c].call(this,f[i]);if(typeof m!=='undefined'){a[c][i]=m}}}else if(n){a[c]=f}}else {if(c in k){c=k[c]}if(c in j){f=j[c].call(this,f);if(typeof f!=='undefined'){a[c]=f}}else if(n){a[c]=f}}}return a},normalize:function(c,l){if(!c){return {}}var j=this.getProcessors(),k=this.getAliases(),h=c.translation||c.translate,a={},e,f,b,d,i,g;if('rotation' in c){b=c.rotation}else {b=('rotate' in c)?c.rotate:undefined}if('scaling' in c){d=c.scaling}else {d=('scale' in c)?c.scale:undefined}if(h){if('x' in h){a.translationX=h.x}if('y' in h){a.translationY=h.y}}if(typeof d!=='undefined'){if(Ext.isNumber(d)){a.scalingX=d;a.scalingY=d}else {if('x' in d){a.scalingX=d.x}if('y' in d){a.scalingY=d.y}if('centerX' in d){a.scalingCenterX=d.centerX}if('centerY' in d){a.scalingCenterY=d.centerY}}}if(typeof b!=='undefined'){if(Ext.isNumber(b)){b=Ext.draw.Draw.rad(b);a.rotationRads=b}else {if('rads' in b){a.rotationRads=b.rads}else if('degrees' in b){a.rotationRads=Ext.draw.Draw.rad(b.degrees)}if('centerX' in b){a.rotationCenterX=b.centerX}if('centerY' in b){a.rotationCenterY=b.centerY}}}if('matrix' in c){i=Ext.draw.Matrix.create(c.matrix);g=i.split();a.matrix=i;a.rotationRads=g.rotation;a.rotationCenterX=0;a.rotationCenterY=0;a.scalingX=g.scaleX;a.scalingY=g.scaleY;a.scalingCenterX=0;a.scalingCenterY=0;a.translationX=g.translateX;a.translationY=g.translateY}for(e in c){f=c[e];if(typeof f==='undefined'){continue}if(e in k){e=k[e]}if(e in j){f=j[e].call(this,f);if(typeof f!=='undefined'){a[e]=f}}else if(l){a[e]=f}}return a},setBypassingNormalization:function(c,a,b){return a.pushDown(c,b)},set:function(c,b,a){a=this.normalize(a);return this.setBypassingNormalization(c,b,a)}});Ext.define('Ext.draw.Matrix',{isMatrix:!0,statics:{createAffineMatrixFromTwoPair:function(f,g,n,o,j,k,l,m){var b=n-f,c=o-g,h=l-j,i=m-k,a=1/(b*b+c*c),d=b*h+c*i,e=h*c-b*i,p=-d*f-e*g,q=e*f-d*g;return new this(d*a,-e*a,e*a,d*a,p*a+j,q*a+k)},createPanZoomFromTwoPair:function(b,c,l,m,f,h,g,i){if(arguments.length===2){return this.createPanZoomFromTwoPair.apply(this,b.concat(c))}var j=l-b,k=m-c,p=(b+l)*0.5,q=(c+m)*0.5,d=g-f,e=i-h,n=(f+g)*0.5,o=(h+i)*0.5,s=j*j+k*k,r=d*d+e*e,a=Math.sqrt(r/s);return new this(a,0,0,a,n-a*p,o-a*q)},fly:(function(){var a=null,b=function(b){a.elements=b;return a};return function(c){if(!a){a=new Ext.draw.Matrix()}a.elements=c;Ext.draw.Matrix.fly=b;return a}})(),create:function(a){if(a instanceof this){return a}return new this(a)}},constructor:function(a,d,e,f,b,c){if(a&&a.length===6){this.elements=a.slice()}else if(a!==undefined){this.elements=[a,d,e,f,b,c]}else {this.elements=[1,0,0,1,0,0]}},prepend:function(b,c,d,e,l,m){var a=this.elements,h=a[0],i=a[1],j=a[2],k=a[3],f=a[4],g=a[5];a[0]=b*h+d*i;a[1]=c*h+e*i;a[2]=b*j+d*k;a[3]=c*j+e*k;a[4]=b*f+d*g+l;a[5]=c*f+e*g+m;return this},prependMatrix:function(a){return this.prepend.apply(this,a.elements)},append:function(h,i,j,k,f,g){var a=this.elements,b=a[0],c=a[1],d=a[2],e=a[3],l=a[4],m=a[5];a[0]=h*b+i*d;a[1]=h*c+i*e;a[2]=j*b+k*d;a[3]=j*c+k*e;a[4]=f*b+g*d+l;a[5]=f*c+g*e+m;return this},appendMatrix:function(a){return this.append.apply(this,a.elements)},set:function(d,e,f,g,b,c){var a=this.elements;a[0]=d;a[1]=e;a[2]=f;a[3]=g;a[4]=b;a[5]=c;return this},inverse:function(i){var a=this.elements,b=a[0],c=a[1],d=a[2],e=a[3],g=a[4],h=a[5],f=1/(b*e-c*d);b*=f;c*=f;d*=f;e*=f;if(i){i.set(e,-c,-d,b,d*h-e*g,c*g-b*h);return i}else {return new Ext.draw.Matrix(e,-c,-d,b,d*h-e*g,c*g-b*h)}},translate:function(a,b,c){if(c){return this.prepend(1,0,0,1,a,b)}else {return this.append(1,0,0,1,a,b)}},scale:function(d,c,a,b,f){var e=this;if(c==null){c=d}if(a===undefined){a=0}if(b===undefined){b=0}if(f){return e.prepend(d,0,0,c,a-a*d,b-b*c)}else {return e.append(d,0,0,c,a-a*d,b-b*c)}},rotate:function(e,b,c,g){var f=this,a=Math.cos(e),d=Math.sin(e);b=b||0;c=c||0;if(g){return f.prepend(a,d,-d,a,b-a*b+c*d,c-a*c-b*d)}else {return f.append(a,d,-d,a,b-a*b+c*d,c-a*c-b*d)}},rotateFromVector:function(c,d,g){var e=this,f=Math.sqrt(c*c+d*d),a=c/f,b=d/f;if(g){return e.prepend(a,b,-b,a,0,0)}else {return e.append(a,b,-b,a,0,0)}},clone:function(){return new Ext.draw.Matrix(this.elements)},flipX:function(){return this.append(-1,0,0,1,0,0)},flipY:function(){return this.append(1,0,0,-1,0,0)},skewX:function(a){return this.append(1,0,Math.tan(a),1,0,0)},skewY:function(a){return this.append(1,Math.tan(a),0,1,0,0)},shearX:function(a){return this.append(1,0,a,1,0,0)},shearY:function(a){return this.append(1,a,0,1,0,0)},reset:function(){return this.set(1,0,0,1,0,0)},precisionCompensate:function(a,b){var c=this.elements,d=c[0],f=c[1],g=c[2],e=c[3],h=c[4],i=c[5],j=f*g-d*e;b.b=a*f/d;b.c=a*g/e;b.d=a;b.xx=d/a;b.yy=e/a;b.dx=(i*d*g-h*d*e)/j/a;b.dy=(h*f*e-i*d*e)/j/a},precisionCompensateRect:function(a,b){var c=this.elements,d=c[0],e=c[1],j=c[2],f=c[3],h=c[4],i=c[5],g=j/d;b.b=a*e/d;b.c=a*g;b.d=a*f/d;b.xx=d/a;b.yy=d/a;b.dx=(i*j-h*f)/(e*g-f)/a;b.dy=-(i*d-h*e)/(e*g-f)/a},x:function(b,c){var a=this.elements;return b*a[0]+c*a[2]+a[4]},y:function(b,c){var a=this.elements;return b*a[1]+c*a[3]+a[5]},get:function(a,b){return +this.elements[a+b*2].toFixed(4)},transformPoint:function(b){var a=this.elements,c,d;if(b.isPoint){c=b.x;d=b.y}else {c=b[0];d=b[1]}return [c*a[0]+d*a[2]+a[4],c*a[1]+d*a[3]+a[5]]},transformBBox:function(h,e,b){var a=this.elements,p=h.x,q=h.y,d=h.width*0.5,c=h.height*0.5,j=a[0],k=a[1],l=a[2],m=a[3],n=p+d,o=q+c,g,f,i;if(e){d-=e;c-=e;i=[Math.sqrt(a[0]*a[0]+a[2]*a[2]),Math.sqrt(a[1]*a[1]+a[3]*a[3])];g=Math.abs(d*j)+Math.abs(c*l)+Math.abs(i[0]*e);f=Math.abs(d*k)+Math.abs(c*m)+Math.abs(i[1]*e)}else {g=Math.abs(d*j)+Math.abs(c*l);f=Math.abs(d*k)+Math.abs(c*m)}if(!b){b={}}b.x=n*j+o*l+a[4]-g;b.y=n*k+o*m+a[5]-f;b.width=g+g;b.height=f+f;return b},transformList:function(d){var a=this.elements,h=a[0],j=a[2],e=a[4],i=a[1],k=a[3],f=a[5],g=d.length,c,b;for(b=0;b<g;b++){c=d[b];d[b]=[c[0]*h+c[1]*j+e,c[0]*i+c[1]*k+f]}return d},isIdentity:function(){var a=this.elements;return a[0]===1&&a[1]===0&&a[2]===0&&a[3]===1&&a[4]===0&&a[5]===0},isEqual:function(c){var b=c&&c.isMatrix?c.elements:c,a=this.elements;return a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[3]===b[3]&&a[4]===b[4]&&a[5]===b[5]},equals:function(a){return this.isEqual(a)},toArray:function(){var a=this.elements;return [a[0],a[2],a[4],a[1],a[3],a[5]]},toVerticalArray:function(){return this.elements.slice()},toString:function(){var a=this;return [a.get(0,0),a.get(0,1),a.get(1,0),a.get(1,1),a.get(2,0),a.get(2,1)].join(',')},toContext:function(a){a.transform.apply(a,this.elements);return this},toSvg:function(){var a=this.elements;return "matrix("+a[0].toFixed(9)+','+a[1].toFixed(9)+','+a[2].toFixed(9)+','+a[3].toFixed(9)+','+a[4].toFixed(9)+','+a[5].toFixed(9)+")"},getScaleX:function(){var a=this.elements;return Math.sqrt(a[0]*a[0]+a[2]*a[2])},getScaleY:function(){var a=this.elements;return Math.sqrt(a[1]*a[1]+a[3]*a[3])},getXX:function(){return this.elements[0]},getXY:function(){return this.elements[1]},getYX:function(){return this.elements[2]},getYY:function(){return this.elements[3]},getDX:function(){return this.elements[4]},getDY:function(){return this.elements[5]},split:function(){var b=this.elements,c=b[0],d=b[1],e=b[3],a={translateX:b[4],translateY:b[5]};a.rotate=a.rotation=Math.atan2(d,c);a.scaleX=c/Math.cos(a.rotate);a.scaleY=e/c*a.scaleX;return a}},function(){function registerName(b,c,a){b[c]={get:function(){return this.elements[a]},set:function(d){this.elements[a]=d}}}if(Object.defineProperties){var a={};registerName(a,'a',0);registerName(a,'b',1);registerName(a,'c',2);registerName(a,'d',3);registerName(a,'e',4);registerName(a,'f',5);Object.defineProperties(this.prototype,a)}this.prototype.multiply=this.prototype.appendMatrix});Ext.define('Ext.draw.modifier.Modifier',{isModifier:!0,mixins:{observable:'Ext.mixin.Observable'},config:{lower:null,upper:null,sprite:null},constructor:function(a){this.mixins.observable.constructor.call(this,a)},updateUpper:function(a){if(a){a.setLower(this)}},updateLower:function(a){if(a){a.setUpper(this)}},prepareAttributes:function(a){if(this._lower){this._lower.prepareAttributes(a)}},popUp:function(b,a){if(this._upper){this._upper.popUp(b,a)}else {Ext.apply(b,a)}},filterChanges:function(f,c,e){var d=f.targets,a,b;if(e){for(a in c){b=c[a];if(b!==f[a]||(d&&b!==d[a])){e[a]=b}}}else {for(a in c){b=c[a];if(b===f[a]&&(!d||b===d[a])){delete c[a]}}}return e||c},pushDown:function(b,a){return this._lower?this._lower.pushDown(b,a):this.filterChanges(b,a)}});Ext.define('Ext.draw.modifier.Target',{requires:['Ext.draw.Matrix'],extend:'Ext.draw.modifier.Modifier',alias:'modifier.target',statics:{uniqueId:0},prepareAttributes:function(a){if(this._lower){this._lower.prepareAttributes(a)}a.attributeId='attribute-'+Ext.draw.modifier.Target.uniqueId++;if(!a.hasOwnProperty('canvasAttributes')){a.bbox={plain:{dirty:!0},transform:{dirty:!0}};a.dirty=!0;a.pendingUpdaters={};a.canvasAttributes={};a.matrix=new Ext.draw.Matrix();a.inverseMatrix=new Ext.draw.Matrix()}},applyChanges:function(b,h){Ext.apply(b,h);var f=this.getSprite(),g=b.pendingUpdaters,n=f.self.def.getTriggers(),m,k,e,a,l,d,c,j,i;for(a in h){l=!0;if((m=n[a])){f.scheduleUpdaters(b,m,[a])}if(b.template&&h.removeFromInstance&&h.removeFromInstance[a]){delete b[a]}}if(!l){return}if(g.canvas){d=g.canvas;delete g.canvas;for(c=0,i=d.length;c<i;c++){a=d[c];b.canvasAttributes[a]=b[a]}}if(b.hasOwnProperty('children')){k=b.children;for(c=0,i=k.length;c<i;c++){e=k[c];Ext.apply(e.pendingUpdaters,g);if(d){for(j=0;j<d.length;j++){a=d[j];e.canvasAttributes[a]=e[a]}}f.callUpdaters(e)}}f.setDirty(!0);f.callUpdaters(b)},popUp:function(b,a){this.applyChanges(b,a)},pushDown:function(b,a){if(this._lower){a=this._lower.pushDown(b,a)}this.applyChanges(b,a);return a}});Ext.define('Ext.draw.TimingFunctions',function(){var b=Math.pow,k=Math.sin,j=Math.cos,i=Math.sqrt,h=Math.PI,f=['quad','cube','quart','quint'],d={pow:function(a,c){return b(a,c||6)},expo:function(a){return b(2,8*(a-1))},circ:function(a){return 1-i(1-a*a)},sine:function(a){return 1-k((1-a)*h/2)},back:function(b,a){a=a||1.616;return b*b*((a+1)*b-a)},bounce:function(d){for(var c=0,a=1;1;c+=a,a/=2){if(d>=(7-4*c)/11){return a*a-b((11-6*c-11*d)/4,2)}}},elastic:function(a,c){return b(2,10*--a)*j(20*a*h*(c||1)/3)}},a={},e,g,c;function createPoly(a){return function(c){return b(c,a)}}function addEasing(c,b){a[c+'In']=function(a){return b(a)};a[c+'Out']=function(a){return 1-b(1-a)};a[c+'InOut']=function(a){return (a<=0.5)?b(2*a)/2:(2-b(2*(1-a)))/2}}for(c=0,g=f.length;c<g;++c){d[f[c]]=createPoly(c+2)}for(e in d){addEasing(e,d[e])}a.linear=Ext.identityFn;a.easeIn=a.quadIn;a.easeOut=a.quadOut;a.easeInOut=a.quadInOut;return {singleton:!0,easingMap:a}},function(a){Ext.apply(a,a.easingMap)});Ext.define('Ext.draw.Animator',{uses:['Ext.draw.Draw'],singleton:!0,frameCallbacks:{},frameCallbackId:0,scheduled:0,frameStartTimeOffset:Ext.now(),animations:[],running:!1,animationTime:function(){return Ext.AnimationQueue.frameStartTime-this.frameStartTimeOffset},add:function(a){var b=this;if(!b.contains(a)){b.animations.push(a);b.ignite();if('fireEvent' in a){a.fireEvent('animationstart',a)}}},remove:function(a){var d=this,c=d.animations,b=0,e=c.length;for(;b<e;++b){if(c[b]===a){c.splice(b,1);if('fireEvent' in a){a.fireEvent('animationend',a)}return}}},contains:function(a){return Ext.Array.indexOf(this.animations,a)>-1},empty:function(){return this.animations.length===0},idle:function(){return this.scheduled===0&&this.animations.length===0},step:function(e){var f=this,c=f.animations,a,b=0,d=c.length;for(;b<d;b++){a=c[b];a.step(e);if(!a.animating){c.splice(b,1);b--;d--;if(a.fireEvent){a.fireEvent('animationend',a)}}}},schedule:function(a,b){b=b||this;var c='frameCallback'+(this.frameCallbackId++);if(Ext.isString(a)){a=b[a]}Ext.draw.Animator.frameCallbacks[c]={fn:a,scope:b,once:!0};this.scheduled++;Ext.draw.Animator.ignite();return c},scheduleIf:function(a,b){b=b||this;var d=Ext.draw.Animator.frameCallbacks,c,e;if(Ext.isString(a)){a=b[a]}for(e in d){c=d[e];if(c.once&&c.fn===a&&c.scope===b){return null}}return this.schedule(a,b)},cancel:function(a){if(Ext.draw.Animator.frameCallbacks[a]&&Ext.draw.Animator.frameCallbacks[a].once){this.scheduled=Math.max(--this.scheduled,0);delete Ext.draw.Animator.frameCallbacks[a];Ext.draw.Draw.endUpdateIOS()}if(this.idle()){this.extinguish()}},clear:function(){this.animations.length=0;Ext.draw.Animator.frameCallbacks={};this.extinguish()},addFrameCallback:function(a,b){b=b||this;if(Ext.isString(a)){a=b[a]}var c='frameCallback'+(this.frameCallbackId++);Ext.draw.Animator.frameCallbacks[c]={fn:a,scope:b};return c},removeFrameCallback:function(a){delete Ext.draw.Animator.frameCallbacks[a];if(this.idle()){this.extinguish()}},fireFrameCallbacks:function(){var c=this.frameCallbacks,d,b,a;for(d in c){a=c[d];b=a.fn;if(Ext.isString(b)){b=a.scope[b]}b.call(a.scope);if(c[d]&&a.once){this.scheduled=Math.max(--this.scheduled,0);delete c[d]}}},handleFrame:function(){var a=this;a.step(a.animationTime());a.fireFrameCallbacks();if(a.idle()){a.extinguish()}},ignite:function(){if(!this.running){this.running=!0;Ext.AnimationQueue.start(this.handleFrame,this);Ext.draw.Draw.beginUpdateIOS()}},extinguish:function(){this.running=!1;Ext.AnimationQueue.stop(this.handleFrame,this);Ext.draw.Draw.endUpdateIOS()}});Ext.define('Ext.draw.modifier.Animation',{extend:'Ext.draw.modifier.Modifier',alias:'modifier.animation',requires:['Ext.draw.TimingFunctions','Ext.draw.Animator'],config:{easing:Ext.identityFn,duration:0,customEasings:{},customDurations:{}},constructor:function(b){var a=this;a.anyAnimation=a.anySpecialAnimations=!1;a.animating=0;a.animatingPool=[];a.callParent([b])},prepareAttributes:function(a){if(!a.hasOwnProperty('timers')){a.animating=!1;a.timers={};a.targets=Ext.Object.chain(a);a.targets.prototype=a}if(this._lower){this._lower.prepareAttributes(a.targets)}},updateSprite:function(a){this.setConfig(a.config.animation)},updateDuration:function(a){this.anyAnimation=a>0},applyEasing:function(a){if(typeof a==='string'){a=Ext.draw.TimingFunctions.easingMap[a]}return a},applyCustomEasings:function(g,b){b=b||{};var e,f,d,a,c,h;for(f in g){e=!0;a=g[f];d=f.split(',');if(typeof a==='string'){a=Ext.draw.TimingFunctions.easingMap[a]}for(c=0,h=d.length;c<h;c++){b[d[c]]=a}}if(e){this.anySpecialAnimations=e}return b},setEasingOn:function(a,d){a=Ext.Array.from(a).slice();var c={},e=a.length,b=0;for(;b<e;b++){c[a[b]]=d}this.setCustomEasings(c)},clearEasingOn:function(a){a=Ext.Array.from(a,!0);var b=0,c=a.length;for(;b<c;b++){delete this._customEasings[a[b]]}},applyCustomDurations:function(f,a){a=a||{};var d,e,g,c,b,h;for(e in f){d=!0;g=f[e];c=e.split(',');for(b=0,h=c.length;b<h;b++){a[c[b]]=g}}if(d){this.anySpecialAnimations=d}return a},setDurationOn:function(a,d){a=Ext.Array.from(a).slice();var c={},b=0,e=a.length;for(;b<e;b++){c[a[b]]=d}this.setCustomDurations(c)},clearDurationOn:function(a){a=Ext.Array.from(a,!0);for(var b=0,c=a.length;b<c;b++){delete this._customDurations[a[b]]}},setAnimating:function(c,d){var b=this,a=b.animatingPool;if(c.animating!==d){c.animating=d;if(d){a.push(c);if(b.animating===0){Ext.draw.Animator.add(b)}b.animating++}else {for(var e=a.length;e--;){if(a[e]===c){a.splice(e,1)}}b.animating=a.length}}},setAttrs:function(h,c){var g=this,j=h.timers,t=g._sprite.self.def._animationProcessors,s=g._easing,r=g._duration,m=g._customDurations,n=g._customEasings,o=g.anySpecialAnimations,u=g.anyAnimation||o,k=h.targets,q=!1,b,a,e,d,f,l,i;if(!u){for(a in c){if(h[a]===c[a]){delete c[a]}else {h[a]=c[a]}delete k[a];delete j[a]}return c}else {for(a in c){e=c[a];d=h[a];if(e!==d&&d!==undefined&&d!==null&&(f=t[a])){l=s;i=r;if(o){if(a in n){l=n[a]}if(a in m){i=m[a]}}if(d&&d.isGradient||e&&e.isGradient){i=0}if(i){if(!j[a]){j[a]={}}b=j[a];b.start=0;b.easing=l;b.duration=i;b.compute=f.compute;b.serve=f.serve||Ext.identityFn;b.remove=c.removeFromInstance&&c.removeFromInstance[a];if(f.parseInitial){var p=f.parseInitial(d,e);b.source=p[0];b.target=p[1]}else if(f.parse){b.source=f.parse(d);b.target=f.parse(e)}else {b.source=d;b.target=e}k[a]=e;delete c[a];q=!0;continue}else {delete k[a]}}else {delete k[a]}delete j[a]}}if(q&&!h.animating){g.setAnimating(h,!0)}return c},updateAttributes:function(c){if(!c.animating){return {}}var d={},i=!1,e=c.timers,h=c.targets,g=Ext.draw.Animator.animationTime(),b,a,f;if(c.lastUpdate===g){return null}for(b in e){a=e[b];if(!a.start){a.start=g;f=0}else {f=(g-a.start)/a.duration}if(f>=1){d[b]=h[b];delete h[b];if(e[b].remove){d.removeFromInstance=d.removeFromInstance||{};d.removeFromInstance[b]=!0}delete e[b]}else {d[b]=a.serve(a.compute(a.source,a.target,a.easing(f),c[b]));i=!0}}c.lastUpdate=g;this.setAnimating(c,i);return d},pushDown:function(b,a){a=this.callParent([b.targets,a]);return this.setAttrs(b,a)},popUp:function(a,b){a=a.prototype;b=this.setAttrs(a,b);if(this._upper){return this._upper.popUp(a,b)}else {return Ext.apply(a,b)}},step:function(g){var a=this,e=a.animatingPool.slice(),f=e.length,d=0,c,b;for(;d<f;d++){c=e[d];b=a.updateAttributes(c);if(b&&a._upper){a._upper.popUp(c,b)}}},stop:function(){this.step();var a=this,c=a.animatingPool,b,d;for(b=0,d=c.length;b<d;b++){c[b].animating=!1}a.animatingPool.length=0;a.animating=0;Ext.draw.Animator.remove(a)},destroy:function(){Ext.draw.Animator.remove(this);this.callParent()}});Ext.define('Ext.draw.modifier.Highlight',{extend:'Ext.draw.modifier.Modifier',alias:'modifier.highlight',config:{enabled:!1,style:null},preFx:!0,applyStyle:function(b,a){a=a||{};if(this.getSprite()){Ext.apply(a,this.getSprite().self.def.normalize(b))}else {Ext.apply(a,b)}return a},prepareAttributes:function(a){if(!a.hasOwnProperty('highlightOriginal')){a.highlighted=!1;a.highlightOriginal=Ext.Object.chain(a);a.highlightOriginal.prototype=a;a.highlightOriginal.removeFromInstance={}}if(this._lower){this._lower.prepareAttributes(a.highlightOriginal)}},updateSprite:function(a,e){var c=this,d=c.getStyle(),b;if(a){b=a.self.def;if(d){c._style=b.normalize(d)}c.setStyle(a.config.highlight);b.setConfig({defaults:{highlighted:!1},processors:{highlighted:'bool'}})}this.setSprite(a)},filterChanges:function(c,b){var f=this,d=c.highlightOriginal,e=f.getStyle(),a;if(c.highlighted){for(a in b){if(e.hasOwnProperty(a)){d[a]=b[a];delete b[a]}}}return b},pushDown:function(d,a){var f=this.getStyle(),c=d.highlightOriginal,g=c.removeFromInstance,e,b,h,i;if(a.hasOwnProperty('highlighted')){e=a.highlighted;delete a.highlighted;if(this._lower){a=this._lower.pushDown(c,a)}a=this.filterChanges(d,a);if(e!==d.highlighted){if(e){for(b in f){if(b in a){c[b]=a[b]}else {h=d.template&&d.template.ownAttr;if(h&&!d.prototype.hasOwnProperty(b)){g[b]=!0;c[b]=h.targets[b]}else {i=c.timers[b];if(i&&i.remove){g[b]=!0}c[b]=d[b]}}if(c[b]!==f[b]){a[b]=f[b]}}}else {for(b in f){if(!(b in a)){a[b]=c[b]}delete c[b]}a.removeFromInstance=a.removeFromInstance||{};Ext.apply(a.removeFromInstance,g);c.removeFromInstance={}}a.highlighted=e}}else {if(this._lower){a=this._lower.pushDown(c,a)}a=this.filterChanges(d,a)}return a},popUp:function(b,a){a=this.filterChanges(b,a);this.callParent([b,a])}});Ext.define('Ext.draw.sprite.Sprite',{alias:'sprite.sprite',mixins:{observable:'Ext.mixin.Observable'},requires:['Ext.draw.Draw','Ext.draw.gradient.Gradient','Ext.draw.sprite.AttributeDefinition','Ext.draw.modifier.Target','Ext.draw.modifier.Animation','Ext.draw.modifier.Highlight'],isSprite:!0,$configStrict:!1,statics:{defaultHitTestOptions:{fill:!0,stroke:!0}},inheritableStatics:{def:{processors:{strokeStyle:"color",fillStyle:"color",strokeOpacity:"limited01",fillOpacity:"limited01",lineWidth:"number",lineCap:"enums(butt,round,square)",lineJoin:"enums(round,bevel,miter)",lineDash:"data",lineDashOffset:"number",miterLimit:"number",shadowColor:"color",shadowOffsetX:"number",shadowOffsetY:"number",shadowBlur:"number",globalAlpha:"limited01",globalCompositeOperation:"enums(source-over,destination-over,source-in,destination-in,source-out,destination-out,source-atop,destination-atop,lighter,xor,copy)",hidden:"bool",transformFillStroke:"bool",zIndex:"number",translationX:"number",translationY:"number",rotationRads:"number",rotationCenterX:"number",rotationCenterY:"number",scalingX:"number",scalingY:"number",scalingCenterX:"number",scalingCenterY:"number",constrainGradients:"bool"},aliases:{"stroke":"strokeStyle","fill":"fillStyle","color":"fillStyle","stroke-width":"lineWidth","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","text-anchor":"textAlign","opacity":"globalAlpha",translateX:"translationX",translateY:"translationY",rotateRads:"rotationRads",rotateCenterX:"rotationCenterX",rotateCenterY:"rotationCenterY",scaleX:"scalingX",scaleY:"scalingY",scaleCenterX:"scalingCenterX",scaleCenterY:"scalingCenterY"},defaults:{hidden:!1,zIndex:0,strokeStyle:"none",fillStyle:"none",lineWidth:1,lineDash:[],lineDashOffset:0,lineCap:"butt",lineJoin:"miter",miterLimit:10,shadowColor:"none",shadowOffsetX:0,shadowOffsetY:0,shadowBlur:0,globalAlpha:1,strokeOpacity:1,fillOpacity:1,transformFillStroke:!1,translationX:0,translationY:0,rotationRads:0,rotationCenterX:null,rotationCenterY:null,scalingX:1,scalingY:1,scalingCenterX:null,scalingCenterY:null,constrainGradients:!1},triggers:{zIndex:"zIndex",globalAlpha:"canvas",globalCompositeOperation:"canvas",transformFillStroke:"canvas",strokeStyle:"canvas",fillStyle:"canvas",strokeOpacity:"canvas",fillOpacity:"canvas",lineWidth:"canvas",lineCap:"canvas",lineJoin:"canvas",lineDash:"canvas",lineDashOffset:"canvas",miterLimit:"canvas",shadowColor:"canvas",shadowOffsetX:"canvas",shadowOffsetY:"canvas",shadowBlur:"canvas",translationX:"transform",translationY:"transform",rotationRads:"transform",rotationCenterX:"transform",rotationCenterY:"transform",scalingX:"transform",scalingY:"transform",scalingCenterX:"transform",scalingCenterY:"transform",constrainGradients:"canvas"},updaters:{bbox:'bboxUpdater',zIndex:function(a){a.dirtyZIndex=!0},transform:function(a){a.dirtyTransform=!0;a.bbox.transform.dirty=!0}}}},config:{parent:null,surface:null},onClassExtended:function(a,b){var c=a.superclass.self.def.initialConfig,d=b.inheritableStatics&&b.inheritableStatics.def,e;if(d){e=Ext.Object.merge({},c,d);a.def=new Ext.draw.sprite.AttributeDefinition(e);delete b.inheritableStatics.def}else {a.def=new Ext.draw.sprite.AttributeDefinition(c)}a.def.spriteClass=a},constructor:function(b){var a=this,c=a.self.def,e=c.getDefaults(),f=c.getProcessors(),d,g;b=Ext.isObject(b)?b:{};a.id=b.id||Ext.id(null,'ext-sprite-');a.attr={};a.mixins.observable.constructor.apply(a,arguments);d=Ext.Array.from(b.modifiers,!0);a.createModifiers(d);a.initializeAttributes();a.setAttributes(e,!0);a.setAttributes(b)},updateSurface:function(b,a){if(a){a.remove(this)}},getDirty:function(){return this.attr.dirty},setDirty:function(b){this.attr.dirty=b;if(b){var a=this.getParent();if(a){a.setDirty(!0)}}},addModifier:function(a,g){var e=this,b=e.modifiers,d=b.animation,f=b.target,c;if(!(a instanceof Ext.draw.modifier.Modifier)){c=typeof a==='string'?a:a.type;if(c&&!b[c]){b[c]=a=Ext.factory(a,null,null,'modifier')}}a.setSprite(e);if(a.preFx||a.config&&a.config.preFx){if(d._lower){d._lower.setUpper(a)}a.setUpper(d)}else {f._lower.setUpper(a);a.setUpper(f)}if(g){e.initializeAttributes()}return a},createModifiers:function(d){var a=this,e=Ext.draw.modifier,g=a.getInitialConfig().animation,b,c,f;a.modifiers=b={target:new e.Target({sprite:a}),animation:new e.Animation(Ext.apply({sprite:a},g))};b.animation.setUpper(b.target);for(c=0,f=d.length;c<f;c++){a.addModifier(d[c],!1)}return b},getAnimation:function(){return this.modifiers.animation},setAnimation:function(a){if(!this.isConfiguring){this.modifiers.animation.setConfig(a||{duration:0})}},initializeAttributes:function(){this.modifiers.target.prepareAttributes(this.attr)},callUpdaters:function(d){d=d||this.attr;var b=this,f=d.pendingUpdaters,i=b.self.def.getUpdaters(),e=!1,g=!1,h,c,a;b.callUpdaters=Ext.emptyFn;do{e=!1;for(c in f){e=!0;h=f[c];delete f[c];a=i[c];if(typeof a==='string'){a=b[a]}if(a){a.call(b,d,h)}}g=g||e}while(e);delete b.callUpdaters;if(g){b.setDirty(!0)}},callUpdater:function(a,c,b){this.scheduleUpdater(a,c,b);this.callUpdaters(a)},scheduleUpdaters:function(d,c,b){var a;d=d||this.attr;if(b){for(var e=0,f=c.length;e<f;e++){a=c[e];this.scheduleUpdater(d,a,b)}}else {for(a in c){b=c[a];this.scheduleUpdater(d,a,b)}}},scheduleUpdater:function(d,c,a){a=a||[];d=d||this.attr;var b=d.pendingUpdaters;if(c in b){if(a.length){b[c]=Ext.Array.merge(b[c],a)}}else {b[c]=a}},setAttributes:function(b,d,e){var c=this,a;if(d){if(e){a=b}else {a=Ext.apply({},b)}}else {a=c.self.def.normalize(b)}c.modifiers.target.pushDown(c.attr,a)},setAttributesBypassingNormalization:function(b,a){return this.setAttributes(b,!0,a)},bboxUpdater:function(a){var d=a.rotationRads!==0,e=a.scalingX!==1||a.scalingY!==1,b=a.rotationCenterX===null||a.rotationCenterY===null,c=a.scalingCenterX===null||a.scalingCenterY===null;a.bbox.plain.dirty=!0;a.bbox.transform.dirty=!0;if(d&&b||e&&c){this.scheduleUpdater(a,'transform')}},getBBox:function(e){var c=this,f=c.attr,d=f.bbox,a=d.plain,b=d.transform;if(a.dirty){c.updatePlainBBox(a);a.dirty=!1}if(!e){c.applyTransformations();if(b.dirty){c.updateTransformedBBox(b,a);b.dirty=!1}return b}return a},updatePlainBBox:Ext.emptyFn,updateTransformedBBox:function(a,b){this.attr.matrix.transformBBox(b,0,a)},getBBoxCenter:function(b){var a=this.getBBox(b);if(a){return [a.x+a.width*0.5,a.y+a.height*0.5]}else {return [0,0]}},hide:function(){this.attr.hidden=!0;this.setDirty(!0);return this},show:function(){this.attr.hidden=!1;this.setDirty(!0);return this},useAttributes:function(a,i){this.applyTransformations(this.isSpriteInstance);var h=this.attr,b=h.canvasAttributes,d=b.strokeStyle,e=b.fillStyle,g=b.lineDash,f=b.lineDashOffset,c;if(d){if(d.isGradient){a.strokeStyle='black';a.strokeGradient=d}else {a.strokeGradient=!1}}if(e){if(e.isGradient){a.fillStyle='black';a.fillGradient=e}else {a.fillGradient=!1}}if(g){a.setLineDash(g)}if(Ext.isNumber(f)&&Ext.isNumber(a.lineDashOffset)){a.lineDashOffset=f}for(c in b){if(b[c]!==undefined&&b[c]!==a[c]){a[c]=b[c]}}this.setGradientBBox(a,i)},setGradientBBox:function(c,a){var b=this.attr;if(b.constrainGradients){c.setGradientBBox({x:a[0],y:a[1],width:a[2],height:a[3]})}else {c.setGradientBBox(this.getBBox(b.transformFillStroke))}},applyTransformations:function(q){if(!q&&!this.attr.dirtyTransform){return}var p=this,a=p.attr,m=p.getBBoxCenter(!0),k=m[0],l=m[1],r=a.translationX,s=a.translationY,d=a.scalingX,e=a.scalingY===null?a.scalingX:a.scalingY,n=a.scalingCenterX===null?k:a.scalingCenterX,o=a.scalingCenterY===null?l:a.scalingCenterY,h=a.rotationRads,i=a.rotationCenterX===null?k:a.rotationCenterX,j=a.rotationCenterY===null?l:a.rotationCenterY,b=Math.cos(h),c=Math.sin(h),f,g;if(d===1&&e===1){n=0;o=0}if(h===0){i=0;j=0}f=n*(1-d)-i;g=o*(1-e)-j;a.matrix.elements=[b*d,c*d,-c*e,b*e,b*f-c*g+i+r,c*f+b*g+j+s];a.matrix.inverse(a.inverseMatrix);a.dirtyTransform=!1;a.bbox.transform.dirty=!0},transform:function(a,e){var b=this.attr,c=b.matrix,d;if(a&&a.isMatrix){d=a.elements}else {d=a}c.prepend.apply(c,d.slice());c.inverse(b.inverseMatrix);if(e){this.updateTransformAttributes()}b.dirtyTransform=!1;b.bbox.transform.dirty=!0;this.setDirty(!0);return this},updateTransformAttributes:function(){var a=this.attr,b=a.matrix.split();a.rotationRads=b.rotate;a.rotationCenterX=0;a.rotationCenterY=0;a.scalingX=b.scaleX;a.scalingY=b.scaleY;a.scalingCenterX=0;a.scalingCenterY=0;a.translationX=b.translateX;a.translationY=b.translateY},resetTransform:function(b){var a=this.attr;a.matrix.reset();a.inverseMatrix.reset();if(!b){this.updateTransformAttributes()}a.dirtyTransform=!1;a.bbox.transform.dirty=!0;this.setDirty(!0);return this},setTransform:function(b,a){this.resetTransform(!0);this.transform.call(this,b,a);return this},preRender:Ext.emptyFn,render:Ext.emptyFn,hitTest:function(b,f){if(this.isVisible()){var c=b[0],d=b[1],a=this.getBBox(),e=a&&c>=a.x&&c<=(a.x+a.width)&&d>=a.y&&d<=(a.y+a.height);if(e){return {sprite:this}}}return null},isVisible:function(){var a=this.attr,b=this.getParent(),e=b&&(b.isSurface||b.isVisible()),h=e&&!a.hidden&&a.globalAlpha,c=Ext.util.Color.NONE,d=Ext.util.Color.RGBA_NONE,g=a.fillOpacity&&a.fillStyle!==c&&a.fillStyle!==d,f=a.strokeOpacity&&a.strokeStyle!==c&&a.strokeStyle!==d,i=h&&(g||f);return !!i},repaint:function(){var a=this.getSurface();if(a){a.renderFrame()}},remove:function(){var a=this.getSurface();if(a&&a.isSurface){return a.remove(this)}return null},destroy:function(){var a=this,b=a.modifiers.target,c;while(b){c=b;b=b._lower;c.destroy()}delete a.attr;a.remove();if(a.fireEvent('beforedestroy',a)!==!1){a.fireEvent('destroy',a)}a.callParent()}},function(){this.def=new Ext.draw.sprite.AttributeDefinition(this.def);this.def.spriteClass=this});Ext.define('Ext.draw.Path',{requires:['Ext.draw.Draw'],statics:{pathRe:/,?([achlmqrstvxz]),?/gi,pathRe2:/-/gi,pathSplitRe:/\s|,/g},svgString:'',constructor:function(b){var a=this;a.commands=[];a.params=[];a.cursor=null;a.startX=0;a.startY=0;if(b){a.fromSvgString(b)}},clear:function(){var a=this;a.params.length=0;a.commands.length=0;a.cursor=null;a.startX=0;a.startY=0;a.dirt()},dirt:function(){this.svgString=''},moveTo:function(b,c){var a=this;if(!a.cursor){a.cursor=[b,c]}a.params.push(b,c);a.commands.push('M');a.startX=b;a.startY=c;a.cursor[0]=b;a.cursor[1]=c;a.dirt()},lineTo:function(b,c){var a=this;if(!a.cursor){a.cursor=[b,c];a.params.push(b,c);a.commands.push('M')}else {a.params.push(b,c);a.commands.push('L')}a.cursor[0]=b;a.cursor[1]=c;a.dirt()},bezierCurveTo:function(b,c,f,g,d,e){var a=this;if(!a.cursor){a.moveTo(b,c)}a.params.push(b,c,f,g,d,e);a.commands.push('C');a.cursor[0]=d;a.cursor[1]=e;a.dirt()},quadraticCurveTo:function(b,c,d,e){var a=this;if(!a.cursor){a.moveTo(b,c)}a.bezierCurveTo((2*b+a.cursor[0])/3,(2*c+a.cursor[1])/3,(2*b+d)/3,(2*c+e)/3,d,e)},closePath:function(){var a=this;if(a.cursor){a.cursor=null;a.commands.push('Z');a.dirt()}},arcTo:function(l,m,e,f,d,b,n){var i=this;if(b===undefined){b=d}if(n===undefined){n=0}if(!i.cursor){i.moveTo(l,m);return}if(d===0||b===0){i.lineTo(l,m);return}e-=l;f-=m;var g=i.cursor[0]-l,h=i.cursor[1]-m,q=e*h-f*g,j,k,x,z,y,A,v=Math.sqrt(g*g+h*h),w=Math.sqrt(e*e+f*f),t,c,a;if(q===0){i.lineTo(l,m);return}if(b!==d){j=Math.cos(n);k=Math.sin(n);x=j/d;z=k/b;y=-k/d;A=j/b;var u=x*g+z*h;h=y*g+A*h;g=u;u=x*e+z*f;f=y*e+A*f;e=u}else {g/=d;h/=b;e/=d;f/=b}c=g*w+e*v;a=h*w+f*v;t=1/(Math.sin(Math.asin(Math.abs(q)/(v*w))*0.5)*Math.sqrt(c*c+a*a));c*=t;a*=t;var B=(c*g+a*h)/(g*g+h*h),C=(c*e+a*f)/(e*e+f*f);var r=g*B-c,s=h*B-a,D=e*C-c,E=f*C-a,o=Math.atan2(s,r),p=Math.atan2(E,D);if(q>0){if(p<o){p+=Math.PI*2}}else {if(o<p){o+=Math.PI*2}}if(b!==d){c=j*c*d-k*a*b+l;a=k*a*b+j*a*b+m;i.lineTo(j*d*r-k*b*s+c,k*d*r+j*b*s+a);i.ellipse(c,a,d,b,n,o,p,q<0)}else {c=c*d+l;a=a*b+m;i.lineTo(d*r+c,b*s+a);i.ellipse(c,a,d,b,n,o,p,q<0)}},ellipse:function(j,k,h,i,g,d,e,l){var b=this,a=b.params,o=a.length,m,c,f;if(e-d>=Math.PI*2){b.ellipse(j,k,h,i,g,d,d+Math.PI,l);b.ellipse(j,k,h,i,g,d+Math.PI,e,l);return}if(!l){if(e<d){e+=Math.PI*2}m=b.approximateArc(a,j,k,h,i,g,d,e)}else {if(d<e){d+=Math.PI*2}m=b.approximateArc(a,j,k,h,i,g,e,d);for(c=o,f=a.length-2;c<f;c+=2,f-=2){var n=a[c];a[c]=a[f];a[f]=n;n=a[c+1];a[c+1]=a[f+1];a[f+1]=n}}if(!b.cursor){b.cursor=[a[a.length-2],a[a.length-1]];b.commands.push('M')}else {b.cursor[0]=a[a.length-2];b.cursor[1]=a[a.length-1];b.commands.push('L')}for(c=2;c<m;c+=6){b.commands.push('C')}b.dirt()},arc:function(e,f,a,c,d,b){this.ellipse(e,f,a,a,0,c,d,b)},rect:function(b,c,e,d){if(e==0||d==0){return}var a=this;a.moveTo(b,c);a.lineTo(b+e,c);a.lineTo(b+e,c+d);a.lineTo(b,c+d);a.closePath()},approximateArc:function(s,f,g,q,r,y,t,a){var m=Math.cos(y),n=Math.sin(y),k=Math.cos(t),l=Math.sin(t),z=m*k*q-n*l*r,B=-m*l*q-n*k*r,A=n*k*q+m*l*r,C=-n*l*q+m*k*r,x=Math.PI/2,u=2,d=z,b=B,e=A,c=C,p=0.547443256150549,o,i,h,j,v,w;a-=t;if(a<0){a+=Math.PI*2}s.push(z+f,A+g);while(a>=x){s.push(d+b*p+f,e+c*p+g,d*p+b+f,e*p+c+g,b+f,c+g);u+=6;a-=x;o=d;d=b;b=-o;o=e;e=c;c=-o}if(a){i=(0.3294738052815987+0.012120855841304373*a)*a;h=Math.cos(a);j=Math.sin(a);v=h+i*j;w=j-i*h;s.push(d+b*i+f,e+c*i+g,d*v+b*w+f,e*v+c*w+g,d*h+b*j+f,e*h+c*j+g);u+=6}return u},arcSvg:function(b,c,i,y,m,v,x){if(b<0){b=-b}if(c<0){c=-c}var n=this,u=n.cursor[0],w=n.cursor[1],q=(u-v)/2,r=(w-x)/2,g=Math.cos(i),h=Math.sin(i),o=q*g+r*h,p=-q*h+r*g,k=o/b,l=p/c,a=k*k+l*l,s=(u+v)*0.5,t=(w+x)*0.5,e=0,f=0;if(a>=1){a=Math.sqrt(a);b*=a;c*=a}else {a=Math.sqrt(1/a-1);if(y===m){a=-a}e=a*b*l;f=-a*c*k;s+=g*e-h*f;t+=h*e+g*f}var j=Math.atan2((p-f)/c,(o-e)/b),d=Math.atan2((-p-f)/c,(-o-e)/b)-j;if(m){if(d<=0){d+=Math.PI*2}}else {if(d>=0){d-=Math.PI*2}}n.ellipse(s,t,b,c,i,j,j+d,1-m)},fromSvgString:function(k){if(!k){return}var e=this,b,g={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0,A:7,C:6,H:1,L:2,M:2,Q:4,S:4,T:2,V:1,Z:0},h='',i,j,c=0,d=0,l=!1,a,f,m;if(Ext.isString(k)){b=k.replace(Ext.draw.Path.pathRe," $1 ").replace(Ext.draw.Path.pathRe2," -").split(Ext.draw.Path.pathSplitRe)}else if(Ext.isArray(k)){b=k.join(',').split(Ext.draw.Path.pathSplitRe)}for(a=0,f=0;a<b.length;a++){if(b[a]!==''){b[f++]=b[a]}}b.length=f;e.clear();for(a=0;a<b.length;){h=l;l=b[a];m=(l.toUpperCase()!==l);a++;switch(l){case 'M':e.moveTo(c=+b[a],d=+b[a+1]);a+=2;while(a<f&&!g.hasOwnProperty(b[a])){e.lineTo(c=+b[a],d=+b[a+1]);a+=2};break;case 'L':e.lineTo(c=+b[a],d=+b[a+1]);a+=2;while(a<f&&!g.hasOwnProperty(b[a])){e.lineTo(c=+b[a],d=+b[a+1]);a+=2};break;case 'A':while(a<f&&!g.hasOwnProperty(b[a])){e.arcSvg(+b[a],+b[a+1],+b[a+2]*Math.PI/180,+b[a+3],+b[a+4],c=+b[a+5],d=+b[a+6]);a+=7};break;case 'C':while(a<f&&!g.hasOwnProperty(b[a])){e.bezierCurveTo(+b[a],+b[a+1],i=+b[a+2],j=+b[a+3],c=+b[a+4],d=+b[a+5]);a+=6};break;case 'Z':e.closePath();break;case 'm':e.moveTo(c+=+b[a],d+=+b[a+1]);a+=2;while(a<f&&!g.hasOwnProperty(b[a])){e.lineTo(c+=+b[a],d+=+b[a+1]);a+=2};break;case 'l':e.lineTo(c+=+b[a],d+=+b[a+1]);a+=2;while(a<f&&!g.hasOwnProperty(b[a])){e.lineTo(c+=+b[a],d+=+b[a+1]);a+=2};break;case 'a':while(a<f&&!g.hasOwnProperty(b[a])){e.arcSvg(+b[a],+b[a+1],+b[a+2]*Math.PI/180,+b[a+3],+b[a+4],c+=+b[a+5],d+=+b[a+6]);a+=7};break;case 'c':while(a<f&&!g.hasOwnProperty(b[a])){e.bezierCurveTo(c+(+b[a]),d+(+b[a+1]),i=c+(+b[a+2]),j=d+(+b[a+3]),c+=+b[a+4],d+=+b[a+5]);a+=6};break;case 'z':e.closePath();break;case 's':if(!(h==='c'||h==='C'||h==='s'||h==='S')){i=c;j=d};while(a<f&&!g.hasOwnProperty(b[a])){e.bezierCurveTo(c+c-i,d+d-j,i=c+(+b[a]),j=d+(+b[a+1]),c+=+b[a+2],d+=+b[a+3]);a+=4};break;case 'S':if(!(h==='c'||h==='C'||h==='s'||h==='S')){i=c;j=d};while(a<f&&!g.hasOwnProperty(b[a])){e.bezierCurveTo(c+c-i,d+d-j,i=+b[a],j=+b[a+1],c=(+b[a+2]),d=(+b[a+3]));a+=4};break;case 'q':while(a<f&&!g.hasOwnProperty(b[a])){e.quadraticCurveTo(i=c+(+b[a]),j=d+(+b[a+1]),c+=+b[a+2],d+=+b[a+3]);a+=4};break;case 'Q':while(a<f&&!g.hasOwnProperty(b[a])){e.quadraticCurveTo(i=+b[a],j=+b[a+1],c=+b[a+2],d=+b[a+3]);a+=4};break;case 't':if(!(h==='q'||h==='Q'||h==='t'||h==='T')){i=c;j=d};while(a<f&&!g.hasOwnProperty(b[a])){e.quadraticCurveTo(i=c+c-i,j=d+d-j,c+=+b[a+1],d+=+b[a+2]);a+=2};break;case 'T':if(!(h==='q'||h==='Q'||h==='t'||h==='T')){i=c;j=d};while(a<f&&!g.hasOwnProperty(b[a])){e.quadraticCurveTo(i=c+c-i,j=d+d-j,c=(+b[a+1]),d=(+b[a+2]));a+=2};break;case 'h':while(a<f&&!g.hasOwnProperty(b[a])){e.lineTo(c+=+b[a],d);a++};break;case 'H':while(a<f&&!g.hasOwnProperty(b[a])){e.lineTo(c=+b[a],d);a++};break;case 'v':while(a<f&&!g.hasOwnProperty(b[a])){e.lineTo(c,d+=+b[a]);a++};break;case 'V':while(a<f&&!g.hasOwnProperty(b[a])){e.lineTo(c,d=+b[a]);a++};break;}}},clone:function(){var b=this,a=new Ext.draw.Path();a.params=b.params.slice(0);a.commands=b.commands.slice(0);a.cursor=b.cursor?b.cursor.slice(0):null;a.startX=b.startX;a.startY=b.startY;a.svgString=b.svgString;return a},transform:function(a){if(a.isIdentity()){return}var i=a.getXX(),k=a.getYX(),f=a.getDX(),j=a.getXY(),l=a.getYY(),g=a.getDY(),c=this.params,b=0,h=c.length,d,e;for(;b<h;b+=2){d=c[b];e=c[b+1];c[b]=d*i+e*k+f;c[b+1]=d*j+e*l+g}this.dirt()},getDimension:function(a){if(!a){a={}}if(!this.commands||!this.commands.length){a.x=0;a.y=0;a.width=0;a.height=0;return a}a.left=Infinity;a.top=Infinity;a.right=-Infinity;a.bottom=-Infinity;var f=0,b=0,g=this.commands,c=this.params,h=g.length,d,e;for(;f<h;f++){switch(g[f]){case 'M':case 'L':d=c[b];e=c[b+1];a.left=Math.min(d,a.left);a.top=Math.min(e,a.top);a.right=Math.max(d,a.right);a.bottom=Math.max(e,a.bottom);b+=2;break;case 'C':this.expandDimension(a,d,e,c[b],c[b+1],c[b+2],c[b+3],d=c[b+4],e=c[b+5]);b+=6;break;}}a.x=a.left;a.y=a.top;a.width=a.right-a.left;a.height=a.bottom-a.top;return a},getDimensionWithTransform:function(d,a){if(!this.commands||!this.commands.length){if(!a){a={}}a.x=0;a.y=0;a.width=0;a.height=0;return a}a.left=Infinity;a.top=Infinity;a.right=-Infinity;a.bottom=-Infinity;var i=d.getXX(),k=d.getYX(),g=d.getDX(),j=d.getXY(),l=d.getYY(),h=d.getDY(),m=0,b=0,n=this.commands,c=this.params,o=n.length,e,f;for(;m<o;m++){switch(n[m]){case 'M':case 'L':e=c[b]*i+c[b+1]*k+g;f=c[b]*j+c[b+1]*l+h;a.left=Math.min(e,a.left);a.top=Math.min(f,a.top);a.right=Math.max(e,a.right);a.bottom=Math.max(f,a.bottom);b+=2;break;case 'C':this.expandDimension(a,e,f,c[b]*i+c[b+1]*k+g,c[b]*j+c[b+1]*l+h,c[b+2]*i+c[b+3]*k+g,c[b+2]*j+c[b+3]*l+h,e=c[b+4]*i+c[b+5]*k+g,f=c[b+4]*j+c[b+5]*l+h);b+=6;break;}}if(!a){a={}}a.x=a.left;a.y=a.top;a.width=a.right-a.left;a.height=a.bottom-a.top;return a},expandDimension:function(a,l,n,h,j,i,k,m,o){var c=this,e=a.left,f=a.right,g=a.top,d=a.bottom,b=c.dim||(c.dim=[]);c.curveDimension(l,h,i,m,b);e=Math.min(e,b[0]);f=Math.max(f,b[1]);c.curveDimension(n,j,k,o,b);g=Math.min(g,b[0]);d=Math.max(d,b[1]);a.left=e;a.right=f;a.top=g;a.bottom=d},curveDimension:function(e,g,j,h,k){var l=3*(-e+3*(g-j)+h),i=6*(e-2*g+j),m=-3*(e-g),a,b,d=Math.min(e,h),c=Math.max(e,h),f;if(l===0){if(i===0){k[0]=d;k[1]=c;return}else {a=-m/i;if(0<a&&a<1){b=this.interpolate(e,g,j,h,a);d=Math.min(d,b);c=Math.max(c,b)}}}else {f=i*i-4*l*m;if(f>=0){f=Math.sqrt(f);a=(f-i)/2/l;if(0<a&&a<1){b=this.interpolate(e,g,j,h,a);d=Math.min(d,b);c=Math.max(c,b)}if(f>0){a-=f/l;if(0<a&&a<1){b=this.interpolate(e,g,j,h,a);d=Math.min(d,b);c=Math.max(c,b)}}}}k[0]=d;k[1]=c},interpolate:function(c,e,f,d,a){if(a===0){return c}if(a===1){return d}var b=(1-a)/a;return a*a*a*(d+b*(3*f+b*(3*e+b*c)))},fromStripes:function(e){var a=this,c=0,g=e.length,d,f,b;a.clear();for(;c<g;c++){b=e[c];a.params.push.apply(a.params,b);a.commands.push('M');for(d=2,f=b.length;d<f;d+=6){a.commands.push('C')}}if(!a.cursor){a.cursor=[]}a.cursor[0]=a.params[a.params.length-2];a.cursor[1]=a.params[a.params.length-1];a.dirt()},toStripes:function(m){var j=m||[],g,e,f,c,d,k,l,h,a,i=this.commands,b=this.params,n=i.length;for(h=0,a=0;h<n;h++){switch(i[h]){case 'M':g=[k=c=b[a++],l=d=b[a++]];j.push(g);break;case 'L':e=b[a++];f=b[a++];g.push((c+c+e)/3,(d+d+f)/3,(c+e+e)/3,(d+f+f)/3,c=e,d=f);break;case 'C':g.push(b[a++],b[a++],b[a++],b[a++],c=b[a++],d=b[a++]);break;case 'Z':e=k;f=l;g.push((c+c+e)/3,(d+d+f)/3,(c+e+e)/3,(d+f+f)/3,c=e,d=f);break;}}return j},updateSvgString:function(){var c=[],e=this.commands,b=this.params,f=e.length,d=0,a=0;for(;d<f;d++){switch(e[d]){case 'M':c.push('M'+b[a]+','+b[a+1]);a+=2;break;case 'L':c.push('L'+b[a]+','+b[a+1]);a+=2;break;case 'C':c.push('C'+b[a]+','+b[a+1]+' '+b[a+2]+','+b[a+3]+' '+b[a+4]+','+b[a+5]);a+=6;break;case 'Z':c.push('Z');break;}}this.svgString=c.join('')},toString:function(){if(!this.svgString){this.updateSvgString()}return this.svgString}});Ext.define('Ext.draw.overrides.hittest.Path',{override:'Ext.draw.Path',rayOrigin:{x:-10000,y:-10000},isPointInPath:function(j,k){var m=this,n=m.commands,h=Ext.draw.PathUtil,c=m.rayOrigin,b=m.params,o=n.length,f=null,l=null,d=0,e=0,g=0,i,a;for(i=0,a=0;i<o;i++){switch(n[i]){case 'M':if(f!==null){if(h.linesIntersection(f,l,d,e,c.x,c.y,j,k)){g+=1}};f=d=b[a];l=e=b[a+1];a+=2;break;case 'L':if(h.linesIntersection(d,e,b[a],b[a+1],c.x,c.y,j,k)){g+=1};d=b[a];e=b[a+1];a+=2;break;case 'C':g+=h.cubicLineIntersections(d,b[a],b[a+2],b[a+4],e,b[a+1],b[a+3],b[a+5],c.x,c.y,j,k).length;d=b[a+4];e=b[a+5];a+=6;break;case 'Z':if(f!==null){if(h.linesIntersection(f,l,d,e,c.x,c.y,j,k)){g+=1}};break;}}return g%2===1},isPointOnPath:function(h,i){var l=this,k=l.commands,f=Ext.draw.PathUtil,b=l.params,m=k.length,e=null,j=null,c=0,d=0,g,a;for(g=0,a=0;g<m;g++){switch(k[g]){case 'M':if(e!==null){if(f.pointOnLine(e,j,c,d,h,i)){return !0}};e=c=b[a];j=d=b[a+1];a+=2;break;case 'L':if(f.pointOnLine(c,d,b[a],b[a+1],h,i)){return !0};c=b[a];d=b[a+1];a+=2;break;case 'C':if(f.pointOnCubic(c,b[a],b[a+2],b[a+4],d,b[a+1],b[a+3],b[a+5],h,i)){return !0};c=b[a+4];d=b[a+5];a+=6;break;case 'Z':if(e!==null){if(f.pointOnLine(e,j,c,d,h,i)){return !0}};break;}}return !1},getSegmentIntersections:function(h,j,i,k,o,q,p,r){var u=this,n=arguments.length,g=Ext.draw.PathUtil,t=u.commands,b=u.params,v=t.length,l=null,m=null,e=0,f=0,d=[],s,a,c;for(s=0,a=0;s<v;s++){switch(t[s]){case 'M':if(l!==null){switch(n){case 4:c=g.linesIntersection(l,m,e,f,h,j,i,k);if(c){d.push(c)};break;case 8:c=g.cubicLineIntersections(h,i,o,p,j,k,q,r,l,m,e,f);d.push.apply(d,c);break;}};l=e=b[a];m=f=b[a+1];a+=2;break;case 'L':switch(n){case 4:c=g.linesIntersection(e,f,b[a],b[a+1],h,j,i,k);if(c){d.push(c)};break;case 8:c=g.cubicLineIntersections(h,i,o,p,j,k,q,r,e,f,b[a],b[a+1]);d.push.apply(d,c);break;};e=b[a];f=b[a+1];a+=2;break;case 'C':switch(n){case 4:c=g.cubicLineIntersections(e,b[a],b[a+2],b[a+4],f,b[a+1],b[a+3],b[a+5],h,j,i,k);d.push.apply(d,c);break;case 8:c=g.cubicsIntersections(e,b[a],b[a+2],b[a+4],f,b[a+1],b[a+3],b[a+5],h,i,o,p,j,k,q,r);d.push.apply(d,c);break;};e=b[a+4];f=b[a+5];a+=6;break;case 'Z':if(l!==null){switch(n){case 4:c=g.linesIntersection(l,m,e,f,h,j,i,k);if(c){d.push(c)};break;case 8:c=g.cubicLineIntersections(h,i,o,p,j,k,q,r,l,m,e,f);d.push.apply(d,c);break;}};break;}}return d},getIntersections:function(e){var l=this,k=l.commands,b=l.params,m=k.length,h=null,j=null,f=0,g=0,c=[],i,a,d;for(i=0,a=0;i<m;i++){switch(k[i]){case 'M':if(h!==null){d=e.getSegmentIntersections.call(e,h,j,f,g);c.push.apply(c,d)};h=f=b[a];j=g=b[a+1];a+=2;break;case 'L':d=e.getSegmentIntersections.call(e,f,g,b[a],b[a+1]);c.push.apply(c,d);f=b[a];g=b[a+1];a+=2;break;case 'C':d=e.getSegmentIntersections.call(e,f,g,b[a],b[a+1],b[a+2],b[a+3],b[a+4],b[a+5]);c.push.apply(c,d);f=b[a+4];g=b[a+5];a+=6;break;case 'Z':if(h!==null){d=e.getSegmentIntersections.call(e,h,j,f,g);c.push.apply(c,d)};break;}}return c}});Ext.define('Ext.draw.sprite.Path',{extend:'Ext.draw.sprite.Sprite',requires:['Ext.draw.Draw','Ext.draw.Path'],alias:['sprite.path','Ext.draw.Sprite'],type:'path',isPath:!0,inheritableStatics:{def:{processors:{path:function(a,b){if(!(a instanceof Ext.draw.Path)){a=new Ext.draw.Path(a)}return a}},aliases:{d:'path'},triggers:{path:'bbox'},updaters:{path:function(b){var a=b.path;if(!a||a.bindAttr!==b){a=new Ext.draw.Path();a.bindAttr=b;b.path=a}a.clear();this.updatePath(a,b);this.scheduleUpdater(b,'bbox',['path'])}}}},updatePlainBBox:function(a){if(this.attr.path){this.attr.path.getDimension(a)}},updateTransformedBBox:function(a){if(this.attr.path){this.attr.path.getDimensionWithTransform(this.attr.matrix,a)}},render:function(d,b){var c=this.attr.matrix,a=this.attr;if(!a.path||a.path.params.length===0){return}c.toContext(b);b.appendPath(a.path);b.fillStroke(a)},updatePath:function(b,a){}});Ext.define('Ext.draw.overrides.hittest.sprite.Path',{override:'Ext.draw.sprite.Path',requires:['Ext.draw.Color'],isPointInPath:function(e,f){var a=this.attr;if(a.fillStyle===Ext.util.Color.RGBA_NONE){return this.isPointOnPath(e,f)}var b=a.path,g=a.matrix,c,d;if(!g.isIdentity()){c=b.params.slice(0);b.transform(a.matrix)}d=b.isPointInPath(e,f);if(c){b.params=c}return d},isPointOnPath:function(f,g){var c=this.attr,a=c.path,e=c.matrix,b,d;if(!e.isIdentity()){b=a.params.slice(0);a.transform(c.matrix)}d=a.isPointOnPath(f,g);if(b){a.params=b}return d},hitTest:function(i,a){var d=this,e=d.attr,b=e.path,l=e.matrix,f=i[0],g=i[1],k=d.callParent([i,a]),c=null,h,j;if(!k){return c}a=a||Ext.draw.sprite.Sprite.defaultHitTestOptions;if(!l.isIdentity()){h=b.params.slice(0);b.transform(e.matrix)}if(a.fill&&a.stroke){j=e.fillStyle!==Ext.util.Color.NONE&&e.fillStyle!==Ext.util.Color.RGBA_NONE;if(j){if(b.isPointInPath(f,g)){c={sprite:d}}}else {if(b.isPointInPath(f,g)||b.isPointOnPath(f,g)){c={sprite:d}}}}else if(a.stroke&&!a.fill){if(b.isPointOnPath(f,g)){c={sprite:d}}}else if(a.fill&&!a.stroke){if(b.isPointInPath(f,g)){c={sprite:d}}}if(h){b.params=h}return c},getIntersections:function(g){if(!(g.isSprite&&g.isPath)){return []}var e=this.attr,f=g.attr,a=e.path,b=f.path,i=e.matrix,j=f.matrix,c,d,h;if(!i.isIdentity()){c=a.params.slice(0);a.transform(e.matrix)}if(!j.isIdentity()){d=b.params.slice(0);b.transform(f.matrix)}h=a.getIntersections(b);if(c){a.params=c}if(d){b.params=d}return h}});Ext.define('Ext.draw.sprite.Circle',{extend:'Ext.draw.sprite.Path',alias:'sprite.circle',type:'circle',inheritableStatics:{def:{processors:{cx:'number',cy:'number',r:'number'},aliases:{radius:'r',x:'cx',y:'cy',centerX:'cx',centerY:'cy'},defaults:{cx:0,cy:0,r:4},triggers:{cx:'path',cy:'path',r:'path'}}},updatePlainBBox:function(b){var c=this.attr,d=c.cx,e=c.cy,a=c.r;b.x=d-a;b.y=e-a;b.width=a+a;b.height=a+a},updateTransformedBBox:function(a){var c=this.attr,f=c.cx,g=c.cy,h=c.r,b=c.matrix,i=b.getScaleX(),j=b.getScaleY(),d,e;d=i*h;e=j*h;a.x=b.x(f,g)-d;a.y=b.y(f,g)-e;a.width=d+d;a.height=e+e},updatePath:function(b,a){b.arc(a.cx,a.cy,a.r,0,Math.PI*2,!1)}});Ext.define('Ext.draw.sprite.Arc',{extend:'Ext.draw.sprite.Circle',alias:'sprite.arc',type:'arc',inheritableStatics:{def:{processors:{startAngle:'number',endAngle:'number',anticlockwise:'bool'},aliases:{from:'startAngle',to:'endAngle',start:'startAngle',end:'endAngle'},defaults:{startAngle:0,endAngle:Math.PI*2,anticlockwise:!1},triggers:{startAngle:'path',endAngle:'path',anticlockwise:'path'}}},updatePath:function(b,a){b.arc(a.cx,a.cy,a.r,a.startAngle,a.endAngle,a.anticlockwise)}});Ext.define('Ext.draw.sprite.Arrow',{extend:'Ext.draw.sprite.Path',alias:'sprite.arrow',inheritableStatics:{def:{processors:{x:'number',y:'number',size:'number'},defaults:{x:0,y:0,size:4},triggers:{x:'path',y:'path',size:'path'}}},updatePath:function(c,b){var a=b.size*1.5,d=b.x-b.lineWidth/2,e=b.y;c.fromSvgString('M'.concat(d-a*0.7,',',e-a*0.4,'l',[a*0.6,0,0,-a*0.4,a,a*0.8,-a,a*0.8,0,-a*0.4,-a*0.6,0],'z'))}});Ext.define('Ext.draw.sprite.Composite',{extend:'Ext.draw.sprite.Sprite',alias:'sprite.composite',type:'composite',isComposite:!0,config:{sprites:[]},constructor:function(a){this.sprites=[];this.map={};this.callParent([a])},addSprite:function(a){var d=0,c;if(Ext.isArray(a)){c=[];while(d<a.length){c.push(this.addSprite(a[d++]))}return c}if(a&&a.type&&!a.isSprite){a=Ext.create('sprite.'+a.type,a)}if(!a||!a.isSprite||a.isComposite){return null}a.setSurface(null);a.setParent(this);var b=this.attr,e=a.applyTransformations;a.applyTransformations=function(c){if(a.attr.dirtyTransform){b.dirtyTransform=!0;b.bbox.plain.dirty=!0;b.bbox.transform.dirty=!0}e.call(a,c)};this.sprites.push(a);this.map[a.id]=a.getId();b.bbox.plain.dirty=!0;b.bbox.transform.dirty=!0;return a},add:function(a){return this.addSprite(a)},removeSprite:function(a,e){var b=this,c,d;if(a){if(a.charAt){a=b.map[a]}if(!a||!a.isSprite){return null}if(a.destroyed||a.destroying){return a}c=a.getId();d=b.map[c];delete b.map[c];if(e){a.destroy()}if(!d){return a}a.setParent(null);Ext.Array.remove(b.sprites,a);b.dirtyZIndex=!0;b.setDirty(!0)}return a||null},addAll:function(a){if(a.isSprite||a.type){this.add(a)}else if(Ext.isArray(a)){var b=0;while(b<a.length){this.add(a[b++])}}},updatePlainBBox:function(b){var j=this,c=Infinity,h=-Infinity,d=Infinity,f=-Infinity,g,a,e,i;for(e=0,i=j.sprites.length;e<i;e++){g=j.sprites[e];g.applyTransformations();a=g.getBBox();if(c>a.x){c=a.x}if(h<a.x+a.width){h=a.x+a.width}if(d>a.y){d=a.y}if(f<a.y+a.height){f=a.y+a.height}}b.x=c;b.y=d;b.width=h-c;b.height=f-d},isVisible:function(){var b=this.attr,a=this.getParent(),c=a&&(a.isSurface||a.isVisible()),d=c&&!b.hidden&&b.globalAlpha;return !!d},render:function(d,f,e){var a=this,i=a.attr,g=a.attr.matrix,c=a.sprites,h=c.length,b=0;g.toContext(f);for(;b<h;b++){d.renderSprite(c[b],e)}},destroy:function(){var c=this,b=c.sprites,d=b.length,a;for(a=0;a<d;a++){b[a].destroy()}b.length=0;c.callParent()}});Ext.define('Ext.draw.sprite.Cross',{extend:'Ext.draw.sprite.Path',alias:'sprite.cross',inheritableStatics:{def:{processors:{x:'number',y:'number',size:'number'},defaults:{x:0,y:0,size:4},triggers:{x:'path',y:'path',size:'path'}}},updatePath:function(c,b){var a=b.size/1.7,d=b.x-b.lineWidth/2,e=b.y;c.fromSvgString('M'.concat(d-a,',',e,'l',[-a,-a,a,-a,a,a,a,-a,a,a,-a,a,a,a,-a,a,-a,-a,-a,a,-a,-a,'z']))}});Ext.define('Ext.draw.sprite.Diamond',{extend:'Ext.draw.sprite.Path',alias:'sprite.diamond',inheritableStatics:{def:{processors:{x:'number',y:'number',size:'number'},defaults:{x:0,y:0,size:4},triggers:{x:'path',y:'path',size:'path'}}},updatePath:function(c,b){var a=b.size*1.25,d=b.x-b.lineWidth/2,e=b.y;c.fromSvgString(['M',d,e-a,'l',a,a,-a,a,-a,-a,a,-a,'z'])}});Ext.define("Ext.draw.sprite.Ellipse",{extend:"Ext.draw.sprite.Path",alias:'sprite.ellipse',type:'ellipse',inheritableStatics:{def:{processors:{cx:"number",cy:"number",rx:"number",ry:"number",axisRotation:"number"},aliases:{radius:"r",x:"cx",y:"cy",centerX:"cx",centerY:"cy",radiusX:"rx",radiusY:"ry"},defaults:{cx:0,cy:0,rx:1,ry:1,axisRotation:0},triggers:{cx:'path',cy:'path',rx:'path',ry:'path',axisRotation:'path'}}},updatePlainBBox:function(a){var b=this.attr,e=b.cx,f=b.cy,c=b.rx,d=b.ry;a.x=e-c;a.y=f-d;a.width=c+c;a.height=d+d},updateTransformedBBox:function(c){var b=this.attr,m=b.cx,j=b.cy,k=b.rx,p=b.ry,l=p/k,a=b.matrix.clone(),d,e,f,g,n,o,i,h;a.append(1,0,0,l,0,j*(1-l));d=a.getXX();f=a.getYX();n=a.getDX();e=a.getXY();g=a.getYY();o=a.getDY();i=Math.sqrt(d*d+f*f)*k;h=Math.sqrt(e*e+g*g)*k;c.x=m*d+j*f+n-i;c.y=m*e+j*g+o-h;c.width=i+i;c.height=h+h},updatePath:function(b,a){b.ellipse(a.cx,a.cy,a.rx,a.ry,a.axisRotation,0,Math.PI*2,!1)}});Ext.define('Ext.draw.sprite.EllipticalArc',{extend:'Ext.draw.sprite.Ellipse',alias:'sprite.ellipticalArc',type:'ellipticalArc',inheritableStatics:{def:{processors:{startAngle:'number',endAngle:'number',anticlockwise:'bool'},aliases:{from:'startAngle',to:'endAngle',start:'startAngle',end:'endAngle'},defaults:{startAngle:0,endAngle:Math.PI*2,anticlockwise:!1},triggers:{startAngle:'path',endAngle:'path',anticlockwise:'path'}}},updatePath:function(b,a){b.ellipse(a.cx,a.cy,a.rx,a.ry,a.axisRotation,a.startAngle,a.endAngle,a.anticlockwise)}});Ext.define('Ext.draw.sprite.Rect',{extend:'Ext.draw.sprite.Path',alias:'sprite.rect',type:'rect',inheritableStatics:{def:{processors:{x:'number',y:'number',width:'number',height:'number',radius:'number'},aliases:{},triggers:{x:'path',y:'path',width:'path',height:'path',radius:'path'},defaults:{x:0,y:0,width:8,height:8,radius:0}}},updatePlainBBox:function(a){var b=this.attr;a.x=b.x;a.y=b.y;a.width=b.width;a.height=b.height},updateTransformedBBox:function(a,b){this.attr.matrix.transformBBox(b,this.attr.radius,a)},updatePath:function(d,g){var a=g.x,b=g.y,f=g.width,e=g.height,c=Math.min(g.radius,Math.abs(e)*0.5,Math.abs(f)*0.5);if(c===0){d.rect(a,b,f,e)}else {d.moveTo(a+c,b);d.arcTo(a+f,b,a+f,b+e,c);d.arcTo(a+f,b+e,a,b+e,c);d.arcTo(a,b+e,a,b,c);d.arcTo(a,b,a+c,b,c);d.closePath()}}});Ext.define('Ext.draw.sprite.Image',{extend:'Ext.draw.sprite.Rect',alias:'sprite.image',type:'image',statics:{imageLoaders:{}},inheritableStatics:{def:{processors:{src:'string'},triggers:{src:'src'},updaters:{src:'updateSource'},defaults:{src:'',width:null,height:null}}},updateSurface:function(a){if(a){this.updateSource(this.attr)}},updateSource:function(e){var g=this,f=e.src,d=g.getSurface(),a=Ext.draw.sprite.Image.imageLoaders[f],i=e.width,h=e.height,c,b;if(!d){return}if(!a){c=new Image();a=Ext.draw.sprite.Image.imageLoaders[f]={image:c,done:!1,pendingSprites:[g],pendingSurfaces:[d]};c.width=i;c.height=h;c.onload=function(){var c;if(!a.done){a.done=!0;for(b=0;b<a.pendingSprites.length;b++){c=a.pendingSprites[b];if(!c.destroyed){c.setDirty(!0)}}for(b=0;b<a.pendingSurfaces.length;b++){c=a.pendingSurfaces[b];if(!c.destroyed){c.renderFrame()}}}};c.src=f}else {Ext.Array.include(a.pendingSprites,g);Ext.Array.include(a.pendingSurfaces,d)}},render:function(d,e){var j=this,b=j.attr,h=b.matrix,i=b.src,k=b.x,l=b.y,g=b.width,f=b.height,c=Ext.draw.sprite.Image.imageLoaders[i],a;if(c&&c.done){h.toContext(e);a=c.image;e.drawImage(a,k,l,g||(a.naturalWidth||a.width)/d.devicePixelRatio,f||(a.naturalHeight||a.height)/d.devicePixelRatio)}},isVisible:function(){var b=this.attr,a=this.getParent(),c=a&&(a.isSurface||a.isVisible()),d=c&&!b.hidden&&b.globalAlpha;return !!d}});Ext.define('Ext.draw.sprite.Instancing',{extend:'Ext.draw.sprite.Sprite',alias:'sprite.instancing',type:'instancing',isInstancing:!0,config:{template:null,instances:null},instances:null,applyTemplate:function(a){if(!a.isSprite){if(!a.xclass&&!a.type){a.type='circle'}a=Ext.create(a.xclass||'sprite.'+a.type,a)}var b=a.getSurface();if(b){b.remove(a)}a.setParent(this);return a},updateTemplate:function(a,b){if(b){delete b.ownAttr}a.setSurface(this.getSurface());a.ownAttr=a.attr;this.clearAll();this.setDirty(!0)},updateInstances:function(a){this.clearAll();if(Ext.isArray(a)){for(var b=0,c=a.length;b<c;b++){this.add(a[b])}}},updateSurface:function(b){var a=this.getTemplate();if(a&&!a.destroyed){a.setSurface(b)}},get:function(a){return this.instances[a]},getCount:function(){return this.instances.length},clearAll:function(){var a=this.getTemplate();a.attr.children=this.instances=[];this.position=0},createInstance:function(c,a,b){return this.add(c,a,b)},add:function(g,e,f){var c=this,a=c.getTemplate(),d=a.attr,b=Ext.Object.chain(d);a.modifiers.target.prepareAttributes(b);a.attr=b;a.setAttributes(g,e,f);b.template=a;c.instances.push(b);a.attr=d;c.position++;return b},getBBox:function(){return null},getBBoxFor:function(e,c){var a=this.getTemplate(),d=a.attr,b;a.attr=this.instances[e];b=a.getBBox(c);a.attr=d;return b},isVisible:function(){var c=this.attr,a=this.getParent(),b;b=a&&a.isSurface&&!c.hidden&&c.globalAlpha;return !!b},isInstanceVisible:function(b){var d=this,a=d.getTemplate(),f=a.attr,e=d.instances,c=!1;if(!Ext.isNumber(b)||b<0||b>=e.length||!d.isVisible()){return c}a.attr=e[b];c=a.isVisible(point,options);a.attr=f;return c},render:function(e,b,h){var d=this,a=d.getTemplate(),f=e.getRect(),j=d.attr.matrix,i=a.attr,g=d.instances,k=d.position,c;j.toContext(b);a.preRender(e,b,h);a.useAttributes(b,f);a.isSpriteInstance=!0;for(c=0;c<k;c++){if(g[c].hidden){continue}b.save();a.attr=g[c];a.useAttributes(b,f);a.render(e,b,h);b.restore()}a.isSpriteInstance=!1;a.attr=i},setAttributesFor:function(f,b,d){var a=this.getTemplate(),e=a.attr,c=this.instances[f];if(!c){return}a.attr=c;if(d){b=Ext.apply({},b)}else {b=a.self.def.normalize(b)}a.modifiers.target.pushDown(c,b);a.attr=e},destroy:function(){var a=this,b=a.getTemplate();a.instances=null;if(b){b.destroy()}a.callParent()}});Ext.define('Ext.draw.overrides.hittest.sprite.Instancing',{override:'Ext.draw.sprite.Instancing',hitTest:function(h,g){var e=this,c=e.getTemplate(),f=c.attr,d=e.instances,i=d.length,b=0,a=null;if(!e.isVisible()){return a}for(;b<i;b++){c.attr=d[b];a=c.hitTest(h,g);if(a){a.isInstance=!0;a.template=a.sprite;a.sprite=this;a.instance=d[b];a.index=b;return a}}c.attr=f;return a}});Ext.define('Ext.draw.sprite.Line',{extend:'Ext.draw.sprite.Sprite',alias:'sprite.line',type:'line',inheritableStatics:{def:{processors:{fromX:'number',fromY:'number',toX:'number',toY:'number',crisp:'bool'},defaults:{fromX:0,fromY:0,toX:1,toY:1,crisp:!1,strokeStyle:'black'},aliases:{x1:'fromX',y1:'fromY',x2:'toX',y2:'toY'},triggers:{crisp:'bbox'}}},updateLineBBox:function(h,q,a,c,b,d){var k=this.attr,m=k.matrix,l=k.lineWidth/2,f,g,i,j,e;if(k.crisp){a=this.align(a);b=this.align(b);c=this.align(c);d=this.align(d)}if(q){e=m.transformPoint([a,c]);a=e[0];c=e[1];e=m.transformPoint([b,d]);b=e[0];d=e[1]}f=Math.min(a,b);i=Math.max(a,b);g=Math.min(c,d);j=Math.max(c,d);var n=Math.atan2(i-f,j-g),s=Math.sin(n),r=Math.cos(n),o=l*r,p=l*s;f-=o;g-=p;i+=o;j+=p;h.x=f;h.y=g;h.width=i-f;h.height=j-g},updatePlainBBox:function(b){var a=this.attr;this.updateLineBBox(b,!1,a.fromX,a.fromY,a.toX,a.toY)},updateTransformedBBox:function(b,c){var a=this.attr;this.updateLineBBox(b,!0,a.fromX,a.fromY,a.toX,a.toY)},align:function(a){return Math.round(a)-0.5},render:function(e,b){var c=this,a=c.attr,d=a.matrix;d.toContext(b);b.beginPath();if(a.crisp){b.moveTo(c.align(a.fromX),c.align(a.fromY));b.lineTo(c.align(a.toX),c.align(a.toY))}else {b.moveTo(a.fromX,a.fromY);b.lineTo(a.toX,a.toY)}b.stroke()}});Ext.define('Ext.draw.sprite.Plus',{extend:'Ext.draw.sprite.Path',alias:'sprite.plus',inheritableStatics:{def:{processors:{x:'number',y:'number',size:'number'},defaults:{x:0,y:0,size:4},triggers:{x:'path',y:'path',size:'path'}}},updatePath:function(c,b){var a=b.size/1.3,d=b.x-b.lineWidth/2,e=b.y;c.fromSvgString('M'.concat(d-a/2,',',e-a/2,'l',[0,-a,a,0,0,a,a,0,0,a,-a,0,0,a,-a,0,0,-a,-a,0,0,-a,'z']))}});Ext.define('Ext.draw.sprite.Sector',{extend:'Ext.draw.sprite.Path',alias:'sprite.sector',type:'sector',inheritableStatics:{def:{processors:{centerX:'number',centerY:'number',startAngle:'number',endAngle:'number',startRho:'number',endRho:'number',margin:'number'},aliases:{rho:'endRho'},triggers:{centerX:'path,bbox',centerY:'path,bbox',startAngle:'path,bbox',endAngle:'path,bbox',startRho:'path,bbox',endRho:'path,bbox',margin:'path,bbox'},defaults:{centerX:0,centerY:0,startAngle:0,endAngle:0,startRho:0,endRho:150,margin:0,path:'M 0,0'}}},getMidAngle:function(){return this.midAngle||0},updatePath:function(g,a){var b=Math.min(a.startAngle,a.endAngle),c=Math.max(a.startAngle,a.endAngle),j=this.midAngle=(b+c)*0.5,k=Ext.Number.isEqual(Math.abs(c-b),Ext.draw.Draw.pi2,1.0E-10),i=a.margin,d=a.centerX,e=a.centerY,f=Math.min(a.startRho,a.endRho),h=Math.max(a.startRho,a.endRho);if(i){d+=i*Math.cos(j);e+=i*Math.sin(j)}if(!k){g.moveTo(d+f*Math.cos(b),e+f*Math.sin(b));g.lineTo(d+h*Math.cos(b),e+h*Math.sin(b))}g.arc(d,e,h,b,c,!1);g[k?'moveTo':'lineTo'](d+f*Math.cos(c),e+f*Math.sin(c));g.arc(d,e,f,c,b,!0)}});Ext.define('Ext.draw.sprite.Square',{extend:'Ext.draw.sprite.Path',alias:'sprite.square',inheritableStatics:{def:{processors:{x:'number',y:'number',size:'number'},defaults:{x:0,y:0,size:4},triggers:{x:'path',y:'path',size:'size'}}},updatePath:function(d,a){var c=a.size*1.2,b=c*2,e=a.x-a.lineWidth/2,f=a.y;d.fromSvgString('M'.concat(e-c,',',f-c,'l',[b,0,0,b,-b,0,0,-b,'z']))}});Ext.define('Ext.draw.TextMeasurer',{singleton:!0,requires:['Ext.util.TextMetrics'],measureDiv:null,measureCache:{},precise:Ext.isIE8,measureDivTpl:{id:'ext-draw-text-measurer',tag:'div',style:{overflow:'hidden',position:'relative','float':'left',width:0,height:0},children:{tag:'div',style:{display:'block',position:'absolute',x:-100000,y:-100000,padding:0,margin:0,'z-index':-100000,'white-space':'nowrap'}}},actualMeasureText:function(g,e){var f=Ext.draw.TextMeasurer,a=f.measureDiv,b=100000,c;if(!a){var d=Ext.Element.create({style:{"overflow":"hidden","position":"relative","float":"left","width":0,"height":0}});f.measureDiv=a=Ext.Element.create({style:{"position":'absolute',"x":b,"y":b,"z-index":-b,"white-space":"nowrap","display":'block',"padding":0,"margin":0}});Ext.getBody().appendChild(d);d.appendChild(a)}if(e){a.setStyle({font:e,lineHeight:'normal'})}a.setText('('+g+')');c=a.getSize();a.setText('()');c.width-=a.getSize().width;return c},measureTextSingleLine:function(b,c){if(this.precise){return this.preciseMeasureTextSingleLine(b,c)}b=b.toString();var a=this.measureCache,h=b.split(''),i=0,g=0,d,e,f,k,j;if(!a[c]){a[c]={}}a=a[c];if(a[b]){return a[b]}for(f=0,k=h.length;f<k;f++){e=h[f];if(!(d=a[e])){j=this.actualMeasureText(e,c);d=a[e]=j}i+=d.width;g=Math.max(g,d.height)}return a[b]={width:i,height:g}},preciseMeasureTextSingleLine:function(a,c){a=a.toString();var b=this.measureDiv||(this.measureDiv=Ext.getBody().createChild(this.measureDivTpl).down('div'));b.setStyle({font:c||''});return Ext.util.TextMetrics.measure(b,a)},measureText:function(h,g){var f=h.split('\n'),i=f.length,e=0,d=0,a,b,c;if(i===1){return this.measureTextSingleLine(h,g)}c=[];for(b=0;b<i;b++){a=this.measureTextSingleLine(f[b],g);c.push(a);e+=a.height;d=Math.max(d,a.width)}return {width:d,height:e,sizes:c}}});Ext.define('Ext.draw.sprite.Text',function(){var d={'xx-small':!0,'x-small':!0,'small':!0,'medium':!0,'large':!0,'x-large':!0,'xx-large':!0};var c={normal:!0,bold:!0,bolder:!0,lighter:!0,100:!0,200:!0,300:!0,400:!0,500:!0,600:!0,700:!0,800:!0,900:!0};var a={start:'start',left:'start',center:'center',middle:'center',end:'end',right:'end'};var b={top:'top',hanging:'hanging',middle:'middle',center:'middle',alphabetic:'alphabetic',ideographic:'ideographic',bottom:'bottom'};return {extend:'Ext.draw.sprite.Sprite',requires:['Ext.draw.TextMeasurer','Ext.draw.Color'],alias:'sprite.text',type:'text',lineBreakRe:/\r?\n/g,inheritableStatics:{def:{animationProcessors:{text:'text'},processors:{x:'number',y:'number',text:'string',fontSize:function(a){if(Ext.isNumber(+a)){return a+'px'}else if(a.match(Ext.dom.Element.unitRe)){return a}else if(a in d){return a}},fontStyle:'enums(,italic,oblique)',fontVariant:'enums(,small-caps)',fontWeight:function(a){if(a in c){return String(a)}else {return ''}},fontFamily:'string',textAlign:function(b){return a[b]||'center'},textBaseline:function(a){return b[a]||'alphabetic'},font:'string'},aliases:{'font-size':'fontSize','font-family':'fontFamily','font-weight':'fontWeight','font-variant':'fontVariant','text-anchor':'textAlign','dominant-baseline':'textBaseline'},defaults:{fontStyle:'',fontVariant:'',fontWeight:'',fontSize:'10px',fontFamily:'sans-serif',font:'10px sans-serif',textBaseline:'alphabetic',textAlign:'start',strokeStyle:'rgba(0, 0, 0, 0)',fillStyle:'#000',x:0,y:0,text:''},triggers:{fontStyle:'fontX,bbox',fontVariant:'fontX,bbox',fontWeight:'fontX,bbox',fontSize:'fontX,bbox',fontFamily:'fontX,bbox',font:'font,bbox,canvas',textBaseline:'bbox',textAlign:'bbox',x:'bbox',y:'bbox',text:'bbox'},updaters:{fontX:'makeFontShorthand',font:'parseFontShorthand'}}},config:{preciseMeasurement:undefined},constructor:function(a){if(a&&a.font){a=Ext.clone(a);for(var b in a){if(b!=='font'&&b.indexOf('font')===0){delete a[b]}}}Ext.draw.sprite.Sprite.prototype.constructor.call(this,a)},fontValuesMap:{'italic':'fontStyle','oblique':'fontStyle','small-caps':'fontVariant','bold':'fontWeight','bolder':'fontWeight','lighter':'fontWeight','100':'fontWeight','200':'fontWeight','300':'fontWeight','400':'fontWeight','500':'fontWeight','600':'fontWeight','700':'fontWeight','800':'fontWeight','900':'fontWeight','xx-small':'fontSize','x-small':'fontSize','small':'fontSize','medium':'fontSize','large':'fontSize','x-large':'fontSize','xx-large':'fontSize'},makeFontShorthand:function(a){var b=[];if(a.fontStyle){b.push(a.fontStyle)}if(a.fontVariant){b.push(a.fontVariant)}if(a.fontWeight){b.push(a.fontWeight)}if(a.fontSize){b.push(a.fontSize)}if(a.fontFamily){b.push(a.fontFamily)}this.setAttributes({font:b.join(' ')},!0)},parseFontShorthand:function(i){var e=i.font,j=e.length,b={},h=this.fontValuesMap,c=0,d,f,a,g;while(c<j&&d!==-1){d=e.indexOf(' ',c);if(d<0){a=e.substr(c)}else if(d>c){a=e.substr(c,d-c)}else {continue}f=a.indexOf('/');if(f>0){a=a.substr(0,f)}else if(f===0){continue}if(a!=='normal'&&a!=='inherit'){g=h[a];if(g){b[g]=a}else if(a.match(Ext.dom.Element.unitRe)){b.fontSize=a}else {b.fontFamily=e.substr(c);break}}c=d+1}if(!b.fontStyle){b.fontStyle=''}if(!b.fontVariant){b.fontVariant=''}if(!b.fontWeight){b.fontWeight=''}this.setAttributes(b,!0)},fontProperties:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,fontFamily:!0},setAttributes:function(a,d,e){var b,c;if(a&&a.font){c={};for(b in a){if(!(b in this.fontProperties)){c[b]=a[b]}}a=c}this.callParent([a,d,e])},getBBox:function(d){var a=this,b=a.attr.bbox.plain,c=a.getSurface();if(b.dirty){a.updatePlainBBox(b);b.dirty=!1}if(c&&c.getInherited().rtl&&c.getFlipRtlText()){a.updatePlainBBox(b,!0)}return a.callParent([d])},rtlAlignments:{start:'end',center:'center',end:'start'},updatePlainBBox:function(l,u){var c=this,b=c.attr,h=b.x,n=b.y,m=[],w=b.font,x=b.text,v=b.textBaseline,o=b.textAlign,s=c.getPreciseMeasurement(),g,r;if(u&&c.oldSize){g=c.oldSize}else {r=Ext.draw.TextMeasurer.precise;if(Ext.isBoolean(s)){Ext.draw.TextMeasurer.precise=s}g=c.oldSize=Ext.draw.TextMeasurer.measureText(x,w);Ext.draw.TextMeasurer.precise=r}var j=c.getSurface(),k=(j&&j.getInherited().rtl)||!1,t=k&&j.getFlipRtlText(),f=g.sizes,i=g.height,d=g.width,q=f?f.length:0,e,p,a=0;switch(v){case 'hanging':case 'top':break;case 'ideographic':case 'bottom':n-=i;break;case 'alphabetic':n-=i*0.8;break;case 'middle':n-=i*0.5;break;}if(t){p=j.getRect();h=p[2]-p[0]-h;o=c.rtlAlignments[o]}switch(o){case 'start':if(k){for(;a<q;a++){e=f[a].width;m.push(-(d-e))}};break;case 'end':h-=d;if(k){break};for(;a<q;a++){e=f[a].width;m.push(d-e)};break;case 'center':h-=d*0.5;for(;a<q;a++){e=f[a].width;m.push((k?-1:1)*(d-e)*0.5)};break;}b.textAlignOffsets=m;l.x=h;l.y=n;l.width=d;l.height=i},setText:function(a){this.setAttributes({text:a},!0)},render:function(k,d,n){var g=this,b=g.attr,m=Ext.draw.Matrix.fly(b.matrix.elements.slice(0)),l=g.getBBox(!0),j=b.textAlignOffsets,i=Ext.util.Color.RGBA_NONE,f,h,a,c,e;if(b.text.length===0){return}c=b.text.split(g.lineBreakRe);e=l.height/c.length;f=b.bbox.plain.x;h=b.bbox.plain.y+e*0.78;m.toContext(d);if(k.getInherited().rtl){f+=b.bbox.plain.width}for(a=0;a<c.length;a++){if(d.fillStyle!==i){d.fillText(c[a],f+(j[a]||0),h+e*a)}if(d.strokeStyle!==i){d.strokeText(c[a],f+(j[a]||0),h+e*a)}}}}});Ext.define('Ext.draw.sprite.Tick',{extend:'Ext.draw.sprite.Line',alias:'sprite.tick',inheritableStatics:{def:{processors:{x:'number',y:'number',size:'number'},defaults:{x:0,y:0,size:4},triggers:{x:'tick',y:'tick',size:'tick'},updaters:{tick:function(a){var c=a.size*1.5,b=a.lineWidth/2,d=a.x,e=a.y;this.setAttributes({fromX:d-b,fromY:e-c,toX:d-b,toY:e+c})}}}}});Ext.define('Ext.draw.sprite.Triangle',{extend:'Ext.draw.sprite.Path',alias:'sprite.triangle',inheritableStatics:{def:{processors:{x:'number',y:'number',size:'number'},defaults:{x:0,y:0,size:4},triggers:{x:'path',y:'path',size:'path'}}},updatePath:function(c,b){var a=b.size*2.2,d=b.x,e=b.y;c.fromSvgString('M'.concat(d,',',e,'m0-',a*0.48,'l',a*0.5,',',a*0.87,'-',a,',0z'))}});Ext.define('Ext.draw.gradient.Linear',{extend:'Ext.draw.gradient.Gradient',requires:['Ext.draw.Color'],type:'linear',config:{degrees:0,radians:0},applyRadians:function(a,b){if(Ext.isNumber(a)){return a}return b},applyDegrees:function(a,b){if(Ext.isNumber(a)){return a}return b},updateRadians:function(a){this.setDegrees(Ext.draw.Draw.degrees(a))},updateDegrees:function(a){this.setRadians(Ext.draw.Draw.rad(a))},generateGradient:function(m,e){var g=this.getRadians(),k=Math.cos(g),l=Math.sin(g),d=e.width,a=e.height,i=e.x+d*0.5,j=e.y+a*0.5,h=this.getStops(),n=h.length,f,c,b;if(Ext.isNumber(i)&&Ext.isNumber(j)&&a>0&&d>0){c=(Math.sqrt(a*a+d*d)*Math.abs(Math.cos(g-Math.atan(a/d))))/2;f=m.createLinearGradient(i+k*c,j+l*c,i-k*c,j-l*c);for(b=0;b<n;b++){f.addColorStop(h[b].offset,h[b].color)}return f}return Ext.util.Color.NONE}});Ext.define('Ext.draw.gradient.Radial',{extend:'Ext.draw.gradient.Gradient',type:'radial',config:{start:{x:0,y:0,r:0},end:{x:0,y:0,r:1}},applyStart:function(a,c){if(!c){return a}var b={x:c.x,y:c.y,r:c.r};if('x' in a){b.x=a.x}else if('centerX' in a){b.x=a.centerX}if('y' in a){b.y=a.y}else if('centerY' in a){b.y=a.centerY}if('r' in a){b.r=a.r}else if('radius' in a){b.r=a.radius}return b},applyEnd:function(a,c){if(!c){return a}var b={x:c.x,y:c.y,r:c.r};if('x' in a){b.x=a.x}else if('centerX' in a){b.x=a.centerX}if('y' in a){b.y=a.y}else if('centerY' in a){b.y=a.centerY}if('r' in a){b.r=a.r}else if('radius' in a){b.r=a.radius}return b},generateGradient:function(k,d){var e=this.getStart(),g=this.getEnd(),c=d.width*0.5,a=d.height*0.5,i=d.x+c,j=d.y+a,h=k.createRadialGradient(i+e.x*c,j+e.y*a,e.r*Math.max(c,a),i+g.x*c,j+g.y*a,g.r*Math.max(c,a)),f=this.getStops(),l=f.length,b;for(b=0;b<l;b++){h.addColorStop(f[b].offset,f[b].color)}return h}});Ext.define('Ext.draw.Surface',{extend:'Ext.draw.SurfaceBase',xtype:'surface',requires:['Ext.draw.sprite.*','Ext.draw.gradient.*','Ext.draw.sprite.AttributeDefinition','Ext.draw.Matrix','Ext.draw.Draw'],uses:['Ext.draw.engine.Canvas'],devicePixelRatio:window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI,deprecated:{'5.1.0':{statics:{methods:{stableSort:function(a){return Ext.Array.sort(a,function(b,c){return b.attr.zIndex-c.attr.zIndex})}}}}},cls:Ext.baseCSSPrefix+'surface',config:{rect:null,background:null,items:[],dirty:!1,flipRtlText:!1},isSurface:!0,isPendingRenderFrame:!1,dirtyPredecessorCount:0,emptyRect:[0,0,0,0],constructor:function(b){var a=this;a.predecessors=[];a.successors=[];a.map={};a.callParent([b]);a.matrix=new Ext.draw.Matrix();a.inverseMatrix=a.matrix.inverse()},roundPixel:function(a){return Math.round(this.devicePixelRatio*a)/this.devicePixelRatio},waitFor:function(a){var b=this,c=b.predecessors;if(!Ext.Array.contains(c,a)){c.push(a);a.successors.push(b);if(a.getDirty()){b.dirtyPredecessorCount++}}},updateDirty:function(d){var c=this.successors,e=c.length,b=0,a;for(;b<e;b++){a=c[b];if(d){a.dirtyPredecessorCount++;a.setDirty(!0)}else {a.dirtyPredecessorCount--;if(a.dirtyPredecessorCount===0&&a.isPendingRenderFrame){a.renderFrame()}}}},applyBackground:function(a,b){this.setDirty(!0);if(Ext.isString(a)){a={fillStyle:a}}return Ext.factory(a,Ext.draw.sprite.Rect,b)},applyRect:function(a,b){if(b&&a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[3]===b[3]){return b}if(Ext.isArray(a)){return [a[0],a[1],a[2],a[3]]}else if(Ext.isObject(a)){return [a.x||a.left,a.y||a.top,a.width||(a.right-a.left),a.height||(a.bottom-a.top)]}},updateRect:function(a){var d=this,b=a[0],c=a[1],h=b+a[2],g=c+a[3],e=d.getBackground(),f=d.element;f.setLocalXY(Math.floor(b),Math.floor(c));f.setSize(Math.ceil(h-Math.floor(b)),Math.ceil(g-Math.floor(c)));if(e){e.setAttributes({x:0,y:0,width:Math.ceil(h-Math.floor(b)),height:Math.ceil(g-Math.floor(c))})}d.setDirty(!0)},resetTransform:function(){this.matrix.set(1,0,0,1,0,0);this.inverseMatrix.set(1,0,0,1,0,0);this.setDirty(!0)},get:function(a){return this.map[a]||this.getItems()[a]},add:function(){var d=this,h=Array.prototype.slice.call(arguments),j=Ext.isArray(h[0]),i=d.map,e=[],b,c,a,f,g,k;b=Ext.Array.clean(j?h[0]:h);if(!b.length){return e}for(g=0,k=b.length;g<k;g++){c=b[g];if(!c||c.destroyed){continue}a=null;if(c.isSprite&&!i[c.getId()]){a=c}else if(!i[c.id]){a=this.createItem(c)}if(a){i[a.getId()]=a;e.push(a);f=a.getSurface();if(f&&f.isSurface){f.remove(a)}a.setParent(d);a.setSurface(d);d.onAdd(a)}}b=d.getItems();if(b){b.push.apply(b,e)}d.dirtyZIndex=!0;d.setDirty(!0);if(!j&&e.length===1){return e[0]}else {return e}},onAdd:Ext.emptyFn,remove:function(a,f){var b=this,e=b.clearing,d,c;if(a){if(a.charAt){a=b.map[a]}if(!a||!a.isSprite){return null}d=a.id;c=b.map[d];delete b.map[d];if(a.destroyed||a.destroying){if(c&&!e){Ext.Array.remove(b.getItems(),a)}return a}if(!c){if(f){a.destroy()}return a}a.setParent(null);a.setSurface(null);if(f){a.destroy()}if(!e){Ext.Array.remove(b.getItems(),a);b.dirtyZIndex=!0;b.setDirty(!0)}}return a||null},removeAll:function(e){var a=this,d=a.getItems(),b,f,c;a.clearing=!!e;for(c=d.length-1;c>=0;c--){b=d[c];if(e){b.destroy()}else {b.setParent(null);b.setSurface(null)}}a.clearing=!1;d.length=0;a.map={};a.dirtyZIndex=!0;if(!a.destroying){a.setDirty(!0)}},applyItems:function(a){if(this.getItems()){this.removeAll(!0)}return Ext.Array.from(this.add(a))},createItem:function(a){return Ext.create(a.xclass||'sprite.'+a.type,a)},getBBox:function(b,i){b=Ext.Array.from(b);var c=Infinity,g=-Infinity,d=Infinity,f=-Infinity,j=b.length,h,a,e;for(e=0;e<j;e++){h=b[e];a=h.getBBox(i);if(c>a.x){c=a.x}if(g<a.x+a.width){g=a.x+a.width}if(d>a.y){d=a.y}if(f<a.y+a.height){f=a.y+a.height}}return {x:c,y:d,width:g-c,height:f-d}},getEventXY:function(i){var b=this,h=b.getInherited().rtl,c=i.getXY(),f=b.getOwnerBody(),e=f.getXY(),d=b.getRect()||b.emptyRect,a=[],g;if(h){g=f.getWidth();a[0]=e[0]-c[0]-d[0]+g}else {a[0]=c[0]-e[0]-d[0]}a[1]=c[1]-e[1]-d[1];return a},clear:Ext.emptyFn,orderByZIndex:function(){var e=this,b=e.getItems(),d=!1,a,c;if(e.getDirty()){for(a=0,c=b.length;a<c;a++){if(b[a].attr.dirtyZIndex){d=!0;break}}if(d){Ext.Array.sort(b,function(a,b){return a.attr.zIndex-b.attr.zIndex});this.setDirty(!0)}for(a=0,c=b.length;a<c;a++){b[a].attr.dirtyZIndex=!1}}},repaint:function(){var a=this;a.repaint=Ext.emptyFn;Ext.defer(function(){delete a.repaint;a.element.repaint()},1)},renderFrame:function(){var a=this;if(!(a.element&&a.getDirty()&&a.getRect())){return}if(a.dirtyPredecessorCount>0){a.isPendingRenderFrame=!0;return}var d=a.getBackground(),e=a.getItems(),c,b,f;a.orderByZIndex();if(a.getDirty()){a.clear();a.clearTransform();if(d){a.renderSprite(d)}for(b=0,f=e.length;b<f;b++){c=e[b];if(a.renderSprite(c)===!1){return}c.attr.textPositionCount=a.textPosition}a.setDirty(!1)}},renderSprite:Ext.emptyFn,clearTransform:Ext.emptyFn,destroy:function(){var a=this;a.destroying=!0;a.removeAll(!0);a.destroying=!1;a.predecessors=a.successors=null;if(a.hasListeners.destroy){a.fireEvent('destroy',a)}a.callParent()}});Ext.define('Ext.draw.overrides.hittest.Surface',{override:'Ext.draw.Surface',hitTest:function(f,b){var g=this,e=g.getItems(),a,d,c;b=b||Ext.draw.sprite.Sprite.defaultHitTestOptions;for(a=e.length-1;a>=0;a--){d=e[a];if(d.hitTest){c=d.hitTest(f,b);if(c){return c}}}return null},hitTestEvent:function(b,a){var c=this.getEventXY(b);return this.hitTest(c,a)}});Ext.define('Ext.draw.engine.SvgContext',{requires:['Ext.draw.Color'],toSave:['strokeOpacity','strokeStyle','fillOpacity','fillStyle','globalAlpha','lineWidth','lineCap','lineJoin','lineDash','lineDashOffset','miterLimit','shadowOffsetX','shadowOffsetY','shadowBlur','shadowColor','globalCompositeOperation','position','fillGradient','strokeGradient'],strokeOpacity:1,strokeStyle:'none',fillOpacity:1,fillStyle:'none',lineDas:[],lineDashOffset:0,globalAlpha:1,lineWidth:1,lineCap:'butt',lineJoin:'miter',miterLimit:10,shadowOffsetX:0,shadowOffsetY:0,shadowBlur:0,shadowColor:'none',globalCompositeOperation:'src',urlStringRe:/^url\(#([\w\-]+)\)$/,constructor:function(b){var a=this;a.surface=b;a.state=[];a.matrix=new Ext.draw.Matrix();a.path=null;a.clear()},clear:function(){this.group=this.surface.mainGroup;this.position=0;this.path=null},getElement:function(a){return this.surface.getSvgElement(this.group,a,this.position++)},save:function(){var d=this.toSave,c={},e=this.getElement('g'),a,b;for(b=0;b<d.length;b++){a=d[b];if(a in this){c[a]=this[a]}}this.position=0;c.matrix=this.matrix.clone();this.state.push(c);this.group=e;return e},restore:function(){var e=this.toSave,d=this.state.pop(),c=this.group,f=c.dom.childNodes,a,b;while(f.length>this.position){c.last().destroy()}for(b=0;b<e.length;b++){a=e[b];if(a in d){this[a]=d[a]}else {delete this[a]}}this.setTransform.apply(this,d.matrix.elements);this.group=c.getParent()},transform:function(c,e,d,f,a,b){if(this.path){var g=Ext.draw.Matrix.fly([c,e,d,f,a,b]).inverse();this.path.transform(g)}this.matrix.append(c,e,d,f,a,b)},setTransform:function(c,e,d,f,a,b){if(this.path){this.path.transform(this.matrix)}this.matrix.reset();this.transform(c,e,d,f,a,b)},scale:function(a,b){this.transform(a,0,0,b,0,0)},rotate:function(a){var b=Math.cos(a),d=Math.sin(a),c=-Math.sin(a),e=Math.cos(a);this.transform(b,d,c,e,0,0)},translate:function(a,b){this.transform(1,0,0,1,a,b)},setGradientBBox:function(a){this.bbox=a},beginPath:function(){this.path=new Ext.draw.Path()},moveTo:function(a,b){if(!this.path){this.beginPath()}this.path.moveTo(a,b);this.path.element=null},lineTo:function(a,b){if(!this.path){this.beginPath()}this.path.lineTo(a,b);this.path.element=null},rect:function(a,b,d,c){this.moveTo(a,b);this.lineTo(a+d,b);this.lineTo(a+d,b+c);this.lineTo(a,b+c);this.closePath()},strokeRect:function(c,d,b,a){this.beginPath();this.rect(c,d,b,a);this.stroke()},fillRect:function(c,d,b,a){this.beginPath();this.rect(c,d,b,a);this.fill()},closePath:function(){if(!this.path){this.beginPath()}this.path.closePath();this.path.element=null},arcSvg:function(d,e,a,b,c,f,g){if(!this.path){this.beginPath()}this.path.arcSvg(d,e,a,b,c,f,g);this.path.element=null},arc:function(e,f,d,b,c,a){if(!this.path){this.beginPath()}this.path.arc(e,f,d,b,c,a);this.path.element=null},ellipse:function(g,h,e,f,d,b,c,a){if(!this.path){this.beginPath()}this.path.ellipse(g,h,e,f,d,b,c,a);this.path.element=null},arcTo:function(d,f,e,g,b,c,a){if(!this.path){this.beginPath()}this.path.arcTo(d,f,e,g,b,c,a);this.path.element=null},bezierCurveTo:function(a,d,b,e,c,f){if(!this.path){this.beginPath()}this.path.bezierCurveTo(a,d,b,e,c,f);this.path.element=null},strokeText:function(c,d,e){c=String(c);if(this.strokeStyle){var b=this.getElement('text'),a=this.surface.getSvgElement(b,'tspan',0);this.surface.setElementAttributes(b,{"x":d,"y":e,"transform":this.matrix.toSvg(),"stroke":this.strokeStyle,"fill":"none","opacity":this.globalAlpha,"stroke-opacity":this.strokeOpacity,"style":"font: "+this.font,"stroke-dasharray":this.lineDash.join(','),"stroke-dashoffset":this.lineDashOffset});if(this.lineDash.length){this.surface.setElementAttributes(b,{"stroke-dasharray":this.lineDash.join(','),"stroke-dashoffset":this.lineDashOffset})}if(a.dom.firstChild){a.dom.removeChild(a.dom.firstChild)}this.surface.setElementAttributes(a,{"alignment-baseline":"alphabetic"});a.dom.appendChild(document.createTextNode(Ext.String.htmlDecode(c)))}},fillText:function(b,d,e){b=String(b);if(this.fillStyle){var c=this.getElement('text'),a=this.surface.getSvgElement(c,'tspan',0);this.surface.setElementAttributes(c,{"x":d,"y":e,"transform":this.matrix.toSvg(),"fill":this.fillStyle,"opacity":this.globalAlpha,"fill-opacity":this.fillOpacity,"style":"font: "+this.font});if(a.dom.firstChild){a.dom.removeChild(a.dom.firstChild)}this.surface.setElementAttributes(a,{"alignment-baseline":"alphabetic"});a.dom.appendChild(document.createTextNode(Ext.String.htmlDecode(b)))}},drawImage:function(b,j,k,d,c,o,p,n,i){var a=this,e=a.getElement('image'),l=j,m=k,h=typeof d==='undefined'?b.width:d,g=typeof c==='undefined'?b.height:c,f=null;if(typeof i!=='undefined'){f=j+" "+k+" "+d+" "+c;l=o;m=p;h=n;g=i}e.dom.setAttributeNS("http:/"+"/www.w3.org/1999/xlink","href",b.src);a.surface.setElementAttributes(e,{viewBox:f,x:l,y:m,width:h,height:g,opacity:a.globalAlpha,transform:a.matrix.toSvg()})},fill:function(){var a=this;if(!a.path){return}if(a.fillStyle){var f,d=a.fillGradient,b=a.path.element,e=a.bbox,c;if(!b){f=a.path.toString();b=a.path.element=a.getElement('path');a.surface.setElementAttributes(b,{"d":f,"transform":a.matrix.toSvg()})}if(d&&e){c=d.generateGradient(a,e)}else {c=a.fillStyle}a.surface.setElementAttributes(b,{"fill":c,"fill-opacity":a.fillOpacity*a.globalAlpha})}},stroke:function(){var a=this;if(!a.path){return}if(a.strokeStyle){var d,e=a.strokeGradient,b=a.path.element,f=a.bbox,c;if(!b||!a.path.svgString){d=a.path.toString();if(!d){return}b=a.path.element=a.getElement('path');a.surface.setElementAttributes(b,{"fill":"none","d":d,"transform":a.matrix.toSvg()})}if(e&&f){c=e.generateGradient(a,f)}else {c=a.strokeStyle}a.surface.setElementAttributes(b,{"stroke":c,"stroke-linecap":a.lineCap,"stroke-linejoin":a.lineJoin,"stroke-width":a.lineWidth,"stroke-opacity":a.strokeOpacity*a.globalAlpha,"stroke-dasharray":a.lineDash.join(','),"stroke-dashoffset":a.lineDashOffset});if(a.lineDash.length){a.surface.setElementAttributes(b,{"stroke-dasharray":a.lineDash.join(','),"stroke-dashoffset":a.lineDashOffset})}}},fillStroke:function(c,b){var a=this,g=a.fillStyle,f=a.strokeStyle,e=a.fillOpacity,d=a.strokeOpacity;if(b===undefined){b=c.transformFillStroke}if(!b){c.inverseMatrix.toContext(a)}if(g&&e!==0){a.fill()}if(f&&d!==0){a.stroke()}},appendPath:function(a){this.path=a.clone()},setLineDash:function(a){this.lineDash=a},getLineDash:function(){return this.lineDash},createLinearGradient:function(d,f,e,g){var a=this,c=a.surface.getNextDef('linearGradient'),b;a.surface.setElementAttributes(c,{"x1":d,"y1":f,"x2":e,"y2":g,"gradientUnits":"userSpaceOnUse"});b=new Ext.draw.engine.SvgContext.Gradient(a,a.surface,c);return b},createRadialGradient:function(f,h,e,g,i,d){var a=this,c=a.surface.getNextDef('radialGradient'),b;a.surface.setElementAttributes(c,{fx:f,fy:h,cx:g,cy:i,r:d,gradientUnits:'userSpaceOnUse'});b=new Ext.draw.engine.SvgContext.Gradient(a,a.surface,c,e/d);return b}});Ext.define('Ext.draw.engine.SvgContext.Gradient',{isGradient:!0,constructor:function(e,d,c,b){var a=this;a.ctx=e;a.surface=d;a.element=c;a.position=0;a.compression=b||0},addColorStop:function(d,c){var a=this,e=a.surface.getSvgElement(a.element,'stop',a.position++),b=a.compression;a.surface.setElementAttributes(e,{"offset":(((1-b)*d+b)*100).toFixed(2)+'%',"stop-color":c,"stop-opacity":Ext.util.Color.fly(c).a.toFixed(15)})},toString:function(){var a=this.element.dom.childNodes;while(a.length>this.position){Ext.fly(a[a.length-1]).destroy()}return 'url(#'+this.element.getId()+')'}});Ext.define('Ext.draw.engine.Svg',{extend:'Ext.draw.Surface',requires:['Ext.draw.engine.SvgContext'],isSVG:!0,config:{highPrecision:!1},getElementConfig:function(){return {reference:'element',style:{position:'absolute'},children:[{reference:'bodyElement',style:{width:'100%',height:'100%',position:'relative'},children:[{tag:'svg',reference:'svgElement',namespace:"http://www.w3.org/2000/svg",width:'100%',height:'100%',version:1.1}]}]}},constructor:function(b){var a=this;a.callParent([b]);a.mainGroup=a.createSvgNode("g");a.defsElement=a.createSvgNode("defs");a.svgElement.appendChild(a.mainGroup);a.svgElement.appendChild(a.defsElement);a.ctx=new Ext.draw.engine.SvgContext(a)},createSvgNode:function(b){var a=document.createElementNS("http://www.w3.org/2000/svg",b);return Ext.get(a)},getSvgElement:function(e,f,b){var c=e.dom.childNodes,d=c.length,a;if(b<d){a=c[b];if(a.tagName===f){return Ext.get(a)}else {Ext.destroy(a)}}else if(b>d){Ext.raise("Invalid position.")}a=Ext.get(this.createSvgNode(f));if(b===0){e.insertFirst(a)}else {a.insertAfter(Ext.fly(c[b-1]))}a.cache={};return a},setElementAttributes:function(d,c){var f=d.dom,e=d.cache,a,b;for(a in c){b=c[a];if(e[a]!==b){e[a]=b;f.setAttribute(a,b)}}},getNextDef:function(a){return this.getSvgElement(this.defsElement,a,this.defsPosition++)},clearTransform:function(){var a=this;a.mainGroup.set({transform:a.matrix.toSvg()})},clear:function(){this.ctx.clear();this.removeSurplusDefs();this.defsPosition=0},removeSurplusDefs:function(){var b=this.defsElement,c=b.dom.childNodes,d=c.length,a;for(a=d-1;a>this.defsPosition;a--){b.removeChild(c[a])}},renderSprite:function(a){var d=this,c=d.getRect(),b=d.ctx;if(a.attr.hidden||a.attr.globalAlpha===0){b.save();b.restore();return}a.element=b.save();a.preRender(this);a.useAttributes(b,c);if(!1===a.render(this,b,[0,0,c[2],c[3]])){return !1}a.setDirty(!1);b.restore()},toSVG:function(f,e){var g=Ext.getClassName(this),a,b,d,c;a='<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg"'+' width="'+f.width+'"'+' height="'+f.height+'">';for(c=0;c<e.length;c++){b=e[c];if(Ext.getClassName(b)!==g){continue}d=b.getRect();a+='<g transform="translate('+d[0]+','+d[1]+')">';a+=this.serializeNode(b.svgElement.dom);a+='</g>'}a+='</svg>';return a},b64EncodeUnicode:function(a){return btoa(encodeURIComponent(a).replace(/%([0-9A-F]{2})/g,function(c,b){return String.fromCharCode('0x'+b)}))},flatten:function(c,b){var a='<?xml version="1.0" standalone="yes"?>';a+=this.toSVG(c,b);return {data:'data:image/svg+xml;base64,'+this.b64EncodeUnicode(a),type:'svg'}},serializeNode:function(a){var c='',b,d,e,f;if(a.nodeType===document.TEXT_NODE){return a.nodeValue}c+='<'+a.nodeName;if(a.attributes.length){for(b=0,d=a.attributes.length;b<d;b++){e=a.attributes[b];c+=' '+e.name+'="'+Ext.String.htmlEncode(e.value)+'"'}}c+='>';if(a.childNodes&&a.childNodes.length){for(b=0,d=a.childNodes.length;b<d;b++){f=a.childNodes[b];c+=this.serializeNode(f)}}c+='</'+a.nodeName+'>';return c},destroy:function(){var a=this;a.ctx.destroy();a.mainGroup.destroy();a.defsElement.destroy();delete a.mainGroup;delete a.defsElement;delete a.ctx;a.callParent()},remove:function(a,b){if(a&&a.element){a.element.destroy();a.element=null}this.callParent(arguments)}});Ext.draw||(Ext.draw={});Ext.draw.engine||(Ext.draw.engine={});Ext.draw.engine.excanvas=!0;if(!document.createElement('canvas').getContext){(function(){var f=Math;var b=f.round;var n=f.sin;var m=f.cos;var t=f.abs;var s=f.sqrt;var c=10;var e=c/2;var u=+navigator.userAgent.match(/MSIE ([\d.]+)?/)[1];function getContext(){return this.context_||(this.context_=new CanvasRenderingContext2D_(this))}var p=Array.prototype.slice;function bind(c,a,d){var b=p.call(arguments,2);return function(){return c.apply(a,b.concat(p.call(arguments)))}}function encodeHtmlAttribute(a){return String(a).replace(/&/g,'&amp;').replace(/"/g,'&quot;')}function addNamespace(b,a,c){Ext.onReady(function(){if(!b.namespaces[a]){b.namespaces.add(a,c,'#default#VML')}})}function addNamespacesAndStylesheet(a){addNamespace(a,'g_vml_','urn:schemas-microsoft-com:vml');addNamespace(a,'g_o_','urn:schemas-microsoft-com:office:office');if(!a.styleSheets['ex_canvas_']){var b=a.createStyleSheet();b.owningElement.id='ex_canvas_';b.cssText='canvas{display:inline-block;overflow:hidden;'+'text-align:left;width:300px;height:150px}'}}addNamespacesAndStylesheet(document);var o={init:function(b){var a=b||document;a.createElement('canvas');a.attachEvent('onreadystatechange',bind(this.init_,this,a))},init_:function(c){var b=c.getElementsByTagName('canvas');for(var a=0;a<b.length;a++){this.initElement(b[a])}},initElement:function(a){if(!a.getContext){a.getContext=getContext;addNamespacesAndStylesheet(a.ownerDocument);a.innerHTML='';a.attachEvent('onpropertychange',onPropertyChange);a.attachEvent('onresize',onResize);var b=a.attributes;if(b.width&&b.width.specified){a.style.width=b.width.nodeValue+'px'}else {a.width=a.clientWidth}if(b.height&&b.height.specified){a.style.height=b.height.nodeValue+'px'}else {a.height=a.clientHeight}}return a}};function onPropertyChange(b){var a=b.srcElement;switch(b.propertyName){case 'width':a.getContext().clearRect();a.style.width=a.attributes.width.nodeValue+'px';a.firstChild.style.width=a.clientWidth+'px';break;case 'height':a.getContext().clearRect();a.style.height=a.attributes.height.nodeValue+'px';a.firstChild.style.height=a.clientHeight+'px';break;}}function onResize(b){var a=b.srcElement;if(a.firstChild){a.firstChild.style.width=a.clientWidth+'px';a.firstChild.style.height=a.clientHeight+'px'}}o.init();var h=[];for(var i=0;i<16;i++){for(var j=0;j<16;j++){h[i*16+j]=i.toString(16)+j.toString(16)}}function createMatrixIdentity(){return [[1,0,0],[0,1,0],[0,0,1]]}function matrixMultiply(f,g){var d=createMatrixIdentity();for(var a=0;a<3;a++){for(var b=0;b<3;b++){var e=0;for(var c=0;c<3;c++){e+=f[a][c]*g[c][b]}d[a][b]=e}}return d}function copyState(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineDash=a.lineDash;b.lineWidth=a.lineWidth;b.miterLimit=a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX=a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.globalAlpha=a.globalAlpha;b.font=a.font;b.textAlign=a.textAlign;b.textBaseline=a.textBaseline;b.arcScaleX_=a.arcScaleX_;b.arcScaleY_=a.arcScaleY_;b.lineScale_=a.lineScale_}var r={aliceblue:'#F0F8FF',antiquewhite:'#FAEBD7',aquamarine:'#7FFFD4',azure:'#F0FFFF',beige:'#F5F5DC',bisque:'#FFE4C4',black:'#000000',blanchedalmond:'#FFEBCD',blueviolet:'#8A2BE2',brown:'#A52A2A',burlywood:'#DEB887',cadetblue:'#5F9EA0',chartreuse:'#7FFF00',chocolate:'#D2691E',coral:'#FF7F50',cornflowerblue:'#6495ED',cornsilk:'#FFF8DC',crimson:'#DC143C',cyan:'#00FFFF',darkblue:'#00008B',darkcyan:'#008B8B',darkgoldenrod:'#B8860B',darkgray:'#A9A9A9',darkgreen:'#006400',darkgrey:'#A9A9A9',darkkhaki:'#BDB76B',darkmagenta:'#8B008B',darkolivegreen:'#556B2F',darkorange:'#FF8C00',darkorchid:'#9932CC',darkred:'#8B0000',darksalmon:'#E9967A',darkseagreen:'#8FBC8F',darkslateblue:'#483D8B',darkslategray:'#2F4F4F',darkslategrey:'#2F4F4F',darkturquoise:'#00CED1',darkviolet:'#9400D3',deeppink:'#FF1493',deepskyblue:'#00BFFF',dimgray:'#696969',dimgrey:'#696969',dodgerblue:'#1E90FF',firebrick:'#B22222',floralwhite:'#FFFAF0',forestgreen:'#228B22',gainsboro:'#DCDCDC',ghostwhite:'#F8F8FF',gold:'#FFD700',goldenrod:'#DAA520',grey:'#808080',greenyellow:'#ADFF2F',honeydew:'#F0FFF0',hotpink:'#FF69B4',indianred:'#CD5C5C',indigo:'#4B0082',ivory:'#FFFFF0',khaki:'#F0E68C',lavender:'#E6E6FA',lavenderblush:'#FFF0F5',lawngreen:'#7CFC00',lemonchiffon:'#FFFACD',lightblue:'#ADD8E6',lightcoral:'#F08080',lightcyan:'#E0FFFF',lightgoldenrodyellow:'#FAFAD2',lightgreen:'#90EE90',lightgrey:'#D3D3D3',lightpink:'#FFB6C1',lightsalmon:'#FFA07A',lightseagreen:'#20B2AA',lightskyblue:'#87CEFA',lightslategray:'#778899',lightslategrey:'#778899',lightsteelblue:'#B0C4DE',lightyellow:'#FFFFE0',limegreen:'#32CD32',linen:'#FAF0E6',magenta:'#FF00FF',mediumaquamarine:'#66CDAA',mediumblue:'#0000CD',mediumorchid:'#BA55D3',mediumpurple:'#9370DB',mediumseagreen:'#3CB371',mediumslateblue:'#7B68EE',mediumspringgreen:'#00FA9A',mediumturquoise:'#48D1CC',mediumvioletred:'#C71585',midnightblue:'#191970',mintcream:'#F5FFFA',mistyrose:'#FFE4E1',moccasin:'#FFE4B5',navajowhite:'#FFDEAD',oldlace:'#FDF5E6',olivedrab:'#6B8E23',orange:'#FFA500',orangered:'#FF4500',orchid:'#DA70D6',palegoldenrod:'#EEE8AA',palegreen:'#98FB98',paleturquoise:'#AFEEEE',palevioletred:'#DB7093',papayawhip:'#FFEFD5',peachpuff:'#FFDAB9',peru:'#CD853F',pink:'#FFC0CB',plum:'#DDA0DD',powderblue:'#B0E0E6',rosybrown:'#BC8F8F',royalblue:'#4169E1',saddlebrown:'#8B4513',salmon:'#FA8072',sandybrown:'#F4A460',seagreen:'#2E8B57',seashell:'#FFF5EE',sienna:'#A0522D',skyblue:'#87CEEB',slateblue:'#6A5ACD',slategray:'#708090',slategrey:'#708090',snow:'#FFFAFA',springgreen:'#00FF7F',steelblue:'#4682B4',tan:'#D2B48C',thistle:'#D8BFD8',tomato:'#FF6347',turquoise:'#40E0D0',violet:'#EE82EE',wheat:'#F5DEB3',whitesmoke:'#F5F5F5',yellowgreen:'#9ACD32'};function getRgbHslContent(a){var c=a.indexOf('(',3);var d=a.indexOf(')',c+1);var b=a.substring(c+1,d).split(',');if(b.length!=4||a.charAt(3)!='a'){b[3]=1}return b}function percent(a){return parseFloat(a)/100}function clamp(c,b,a){return Math.min(a,Math.max(b,c))}function hslToRgb(e){var j,g,f,b,c,a;b=parseFloat(e[0])/360%360;if(b<0){b++}c=clamp(percent(e[1]),0,1);a=clamp(percent(e[2]),0,1);if(c==0){j=g=f=a}else {var d=a<0.5?a*(1+c):a+c-a*c;var i=2*a-d;j=hueToRgb(i,d,b+1/3);g=hueToRgb(i,d,b);f=hueToRgb(i,d,b-1/3)}return '#'+h[Math.floor(j*255)]+h[Math.floor(g*255)]+h[Math.floor(f*255)]}function hueToRgb(b,c,a){if(a<0){a++}if(a>1){a--}if(6*a<1){return b+(c-b)*6*a}else if(2*a<1){return c}else if(3*a<2){return b+(c-b)*(2/3-a)*6}else {return b}}var k={};function processStyle(a){if(a in k){return k[a]}var c,e=1;a=String(a);if(a.charAt(0)=='#'){c=a}else if(/^rgb/.test(a)){var b=getRgbHslContent(a);var c='#',f;for(var d=0;d<3;d++){if(b[d].indexOf('%')!=-1){f=Math.floor(percent(b[d])*255)}else {f=+b[d]}c+=h[clamp(f,0,255)]}e=+b[3]}else if(/^hsl/.test(a)){var b=getRgbHslContent(a);c=hslToRgb(b);e=b[3]}else {c=r[a]||a}return k[a]={color:c,alpha:e}}var g={style:'normal',variant:'normal',weight:'normal',size:10,family:'sans-serif'};var l={};function processFontStyle(b){if(l[b]){return l[b]}var c=document.createElement('div');var a=c.style;try{a.font=b}catch(v){}return l[b]={style:a.fontStyle||g.style,variant:a.fontVariant||g.variant,weight:a.fontWeight||g.weight,size:a.fontSize||g.size,family:a.fontFamily||g.family}}function getComputedStyle(b,f){var a={};for(var e in b){a[e]=b[e]}var d=parseFloat(f.currentStyle.fontSize),c=parseFloat(b.size);if(typeof b.size=='number'){a.size=b.size}else if(b.size.indexOf('px')!=-1){a.size=c}else if(b.size.indexOf('em')!=-1){a.size=d*c}else if(b.size.indexOf('%')!=-1){a.size=(d/100)*c}else if(b.size.indexOf('pt')!=-1){a.size=c/0.75}else {a.size=d}a.size*=0.981;return a}function buildStyle(a){return a.style+' '+a.variant+' '+a.weight+' '+a.size+'px '+a.family}var q={'butt':'flat','round':'round'};function processLineCap(a){return q[a]||'square'}function CanvasRenderingContext2D_(a){this.m_=createMatrixIdentity();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.strokeStyle='#000';this.fillStyle='#000';this.lineWidth=1;this.lineJoin='miter';this.lineDash=[];this.lineCap='butt';this.miterLimit=c*1;this.globalAlpha=1;this.font='10px sans-serif';this.textAlign='left';this.textBaseline='alphabetic';this.canvas=a;var e='width:'+a.clientWidth+'px;height:'+a.clientHeight+'px;overflow:hidden;position:absolute';var b=a.ownerDocument.createElement('div');b.style.cssText=e;a.appendChild(b);var d=b.cloneNode(!1);d.style.backgroundColor='red';d.style.filter='alpha(opacity=0)';a.appendChild(d);this.element_=b;this.arcScaleX_=1;this.arcScaleY_=1;this.lineScale_=1}var a=CanvasRenderingContext2D_.prototype;a.clearRect=function(){if(this.textMeasureEl_){this.textMeasureEl_.removeNode(!0);this.textMeasureEl_=null}this.element_.innerHTML=''};a.beginPath=function(){this.currentPath_=[]};a.moveTo=function(b,c){var a=getCoords(this,b,c);this.currentPath_.push({type:'moveTo',x:a.x,y:a.y});this.currentX_=a.x;this.currentY_=a.y};a.lineTo=function(b,c){var a=getCoords(this,b,c);this.currentPath_.push({type:'lineTo',x:a.x,y:a.y});this.currentX_=a.x;this.currentY_=a.y};a.bezierCurveTo=function(a,b,c,d,g,h){var i=getCoords(this,g,h);var e=getCoords(this,a,b);var f=getCoords(this,c,d);bezierCurveTo(this,e,f,i)};function bezierCurveTo(b,c,d,a){b.currentPath_.push({type:'bezierCurveTo',cp1x:c.x,cp1y:c.y,cp2x:d.x,cp2y:d.y,x:a.x,y:a.y});b.currentX_=a.x;b.currentY_=a.y}a.quadraticCurveTo=function(d,e,g,h){var c=getCoords(this,d,e);var b=getCoords(this,g,h);var a={x:this.currentX_+2/3*(c.x-this.currentX_),y:this.currentY_+2/3*(c.y-this.currentY_)};var f={x:a.x+(b.x-this.currentX_)/3,y:a.y+(b.y-this.currentY_)/3};bezierCurveTo(this,a,f,b)};a.arc=function(d,f,a,g,i,h){a*=c;var p=h?'at':'wa';var b=d+m(g)*a-e;var q=f+n(g)*a-e;var l=d+m(i)*a-e;var r=f+n(i)*a-e;if(b==l&&!h){b+=0.125}var o=getCoords(this,d,f);var j=getCoords(this,b,q);var k=getCoords(this,l,r);this.currentPath_.push({type:p,x:o.x,y:o.y,radius:a,xStart:j.x,yStart:j.y,xEnd:k.x,yEnd:k.y})};a.rect=function(a,b,d,c){this.moveTo(a,b);this.lineTo(a+d,b);this.lineTo(a+d,b+c);this.lineTo(a,b+c);this.closePath()};a.strokeRect=function(a,b,d,c){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+d,b);this.lineTo(a+d,b+c);this.lineTo(a,b+c);this.closePath();this.stroke();this.currentPath_=e};a.fillRect=function(a,b,d,c){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+d,b);this.lineTo(a+d,b+c);this.lineTo(a,b+c);this.closePath();this.fill();this.currentPath_=e};a.createLinearGradient=function(b,d,c,e){var a=new CanvasGradient_('gradient');a.x0_=b;a.y0_=d;a.x1_=c;a.y1_=e;return a};a.createRadialGradient=function(d,f,b,e,g,c){var a=new CanvasGradient_('gradientradial');a.x0_=d;a.y0_=f;a.r0_=b;a.x1_=e;a.y1_=g;a.r1_=c;return a};a.drawImage=function(a,u){var j,k,i,h,d,e,m,l;var t=a.runtimeStyle.width;var s=a.runtimeStyle.height;a.runtimeStyle.width='auto';a.runtimeStyle.height='auto';var g=a.width;var f=a.height;a.runtimeStyle.width=t;a.runtimeStyle.height=s;if(arguments.length==3){j=arguments[1];k=arguments[2];d=e=0;m=i=g;l=h=f}else if(arguments.length==5){j=arguments[1];k=arguments[2];i=arguments[3];h=arguments[4];d=e=0;m=g;l=f}else if(arguments.length==9){d=arguments[1];e=arguments[2];m=arguments[3];l=arguments[4];j=arguments[5];k=arguments[6];i=arguments[7];h=arguments[8]}else {throw Error('Invalid number of arguments')}var r=getCoords(this,j,k);var o=[];var q=10;var p=10;var n=this.m_;o.push(' <g_vml_:group',' coordsize="',c*q,',',c*p,'"',' coordorigin="0,0"',' style="width:',b(q*n[0][0]),'px;height:',b(p*n[1][1]),'px;position:absolute;','top:',b(r.y/c),'px;left:',b(r.x/c),'px; rotation:',b(Math.atan(n[0][1]/n[1][1])*180/Math.PI),';');o.push('" >','<g_vml_:image src="',a.src,'"',' style="width:',c*i,'px;',' height:',c*h,'px"',' cropleft="',d/g,'"',' croptop="',e/f,'"',' cropright="',(g-d-m)/g,'"',' cropbottom="',(f-e-l)/f,'"',' />','</g_vml_:group>');this.element_.insertAdjacentHTML('BeforeEnd',o.join(''))};a.setLineDash=function(a){if(a.length===1){a=a.slice();a[1]=a[0]}this.lineDash=a};a.getLineDash=function(){return this.lineDash};a.stroke=function(g){var d=[];var j=10;var i=10;d.push('<g_vml_:shape',' filled="',!!g,'"',' style="position:absolute;width:',j,'px;height:',i,'px;left:0px;top:0px;"',' coordorigin="0,0"',' coordsize="',c*j,',',c*i,'"',' stroked="',!g,'"',' path="');var f={x:null,y:null};var e={x:null,y:null};for(var h=0;h<this.currentPath_.length;h++){var a=this.currentPath_[h];var k;switch(a.type){case 'moveTo':k=a;d.push(' m ',b(a.x),',',b(a.y));break;case 'lineTo':d.push(' l ',b(a.x),',',b(a.y));break;case 'close':d.push(' x ');a=null;break;case 'bezierCurveTo':d.push(' c ',b(a.cp1x),',',b(a.cp1y),',',b(a.cp2x),',',b(a.cp2y),',',b(a.x),',',b(a.y));break;case 'at':case 'wa':d.push(' ',a.type,' ',b(a.x-this.arcScaleX_*a.radius),',',b(a.y-this.arcScaleY_*a.radius),' ',b(a.x+this.arcScaleX_*a.radius),',',b(a.y+this.arcScaleY_*a.radius),' ',b(a.xStart),',',b(a.yStart),' ',b(a.xEnd),',',b(a.yEnd));break;}if(a){if(f.x==null||a.x<f.x){f.x=a.x}if(e.x==null||a.x>e.x){e.x=a.x}if(f.y==null||a.y<f.y){f.y=a.y}if(e.y==null||a.y>e.y){e.y=a.y}}}d.push(' ">');if(!g){appendStroke(this,d)}else {appendFill(this,d,f,e)}d.push('</g_vml_:shape>');this.element_.insertAdjacentHTML('beforeEnd',d.join(''))};function appendStroke(a,e){var d=processStyle(a.strokeStyle);var f=d.color;var c=d.alpha*a.globalAlpha;var b=a.lineScale_*a.lineWidth;if(b<1){c*=b}e.push('<g_vml_:stroke',' opacity="',c,'"',' joinstyle="',a.lineJoin,'"',' dashstyle="',a.lineDash.join(' '),'"',' miterlimit="',a.miterLimit,'"',' endcap="',processLineCap(a.lineCap),'"',' weight="',b,'px"',' color="',f,'" />')}function appendFill(b,m,g,v){var a=b.fillStyle;var h=b.arcScaleX_;var i=b.arcScaleY_;var k=v.x-g.x;var j=v.y-g.y;if(a instanceof CanvasGradient_){var e=0;var o={x:0,y:0};var p=0;var s=1;if(a.type_=='gradient'){var I=a.x0_/h;var K=a.y0_/i;var J=a.x1_/h;var L=a.y1_/i;var l=getCoords(b,I,K);var w=getCoords(b,J,L);var G=w.x-l.x;var H=w.y-l.y;e=Math.atan2(G,H)*180/Math.PI;if(e<0){e+=360}if(e<1.0E-6){e=0}}else {var l=getCoords(b,a.x0_,a.y0_);o={x:(l.x-g.x)/k,y:(l.y-g.y)/j};k/=h*c;j/=i*c;var r=f.max(k,j);p=2*a.r0_/r;s=2*a.r1_/r-p}var d=a.colors_;d.sort(function(a,c){return a.offset-c.offset});var n=d.length;var D=d[0].color;var E=d[n-1].color;var A=d[0].alpha*b.globalAlpha;var B=d[n-1].alpha*b.globalAlpha;var t=[];for(var q=0;q<n;q++){var u=d[q];t.push(u.offset*s+p+' '+u.color)}m.push('<g_vml_:fill type="',a.type_,'"',' method="none" focus="100%"',' color="',D,'"',' color2="',E,'"',' colors="',t.join(','),'"',' opacity="',B,'"',' g_o_:opacity2="',A,'"',' angle="',e,'"',' focusposition="',o.x,',',o.y,'" />')}else if(a instanceof CanvasPattern_){if(k&&j){var y=-g.x;var z=-g.y;m.push('<g_vml_:fill',' position="',y/k*h*h,',',z/j*i*i,'"',' type="tile"',' src="',a.src_,'" />')}}else {var x=processStyle(b.fillStyle);var F=x.color;var C=x.alpha*b.globalAlpha;m.push('<g_vml_:fill color="',F,'" opacity="',C,'" />')}}a.fill=function(){this.$stroke(!0)};a.closePath=function(){this.currentPath_.push({type:'close'})};function getCoords(f,b,d){var a=f.m_;return {x:c*(b*a[0][0]+d*a[1][0]+a[2][0])-e,y:c*(b*a[0][1]+d*a[1][1]+a[2][1])-e}}a.save=function(){var a={};copyState(this,a);this.aStack_.push(a);this.mStack_.push(this.m_)};a.restore=function(){if(this.aStack_.length){copyState(this.aStack_.pop(),this);this.m_=this.mStack_.pop()}};function matrixIsFinite(a){return isFinite(a[0][0])&&isFinite(a[0][1])&&isFinite(a[1][0])&&isFinite(a[1][1])&&isFinite(a[2][0])&&isFinite(a[2][1])}function setM(b,a,c){if(!matrixIsFinite(a)){return}b.m_=a;if(c){var d=a[0][0]*a[1][1]-a[0][1]*a[1][0];b.lineScale_=s(t(d))}}a.translate=function(a,b){var c=[[1,0,0],[0,1,0],[a,b,1]];setM(this,matrixMultiply(c,this.m_),!1)};a.rotate=function(a){var b=m(a);var c=n(a);var d=[[b,c,0],[-c,b,0],[0,0,1]];setM(this,matrixMultiply(d,this.m_),!1)};a.scale=function(a,b){this.arcScaleX_*=a;this.arcScaleY_*=b;var c=[[a,0,0],[0,b,0],[0,0,1]];setM(this,matrixMultiply(c,this.m_),!0)};a.transform=function(a,b,c,d,e,f){var g=[[a,b,0],[c,d,0],[e,f,1]];setM(this,matrixMultiply(g,this.m_),!0)};a.setTransform=function(a,b,c,d,e,f){var g=[[a,b,0],[c,d,0],[e,f,1]];setM(this,g,!0)};a.drawText_=function(q,r,s,t,j){var i=this.m_,k=1000,e=0,h=k,g={x:0,y:0},d=[];var f=getComputedStyle(processFontStyle(this.font),this.element_);var n=buildStyle(f);var l=this.element_.currentStyle;var a=this.textAlign.toLowerCase();switch(a){case 'left':case 'center':case 'right':break;case 'end':a=l.direction=='ltr'?'right':'left';break;case 'start':a=l.direction=='rtl'?'right':'left';break;default:a='left';}switch(this.textBaseline){case 'hanging':case 'top':g.y=f.size/1.75;break;case 'middle':break;default:case null:case 'alphabetic':case 'ideographic':case 'bottom':g.y=-f.size/3;break;}switch(a){case 'right':e=k;h=0.05;break;case 'center':e=h=k/2;break;}var m=getCoords(this,r+g.x,s+g.y);d.push('<g_vml_:line from="',-e,' 0" to="',h,' 0.05" ',' coordsize="100 100" coordorigin="0 0"',' filled="',!j,'" stroked="',!!j,'" style="position:absolute;width:1px;height:1px;left:0px;top:0px;">');if(j){appendStroke(this,d)}else {appendFill(this,d,{x:-e,y:0},{x:h,y:f.size})}var p=i[0][0].toFixed(3)+','+i[1][0].toFixed(3)+','+i[0][1].toFixed(3)+','+i[1][1].toFixed(3)+',0,0';var o=b(m.x/c)+','+b(m.y/c);d.push('<g_vml_:skew on="t" matrix="',p,'" ',' offset="',o,'" origin="',e,' 0" />','<g_vml_:path textpathok="true" />','<g_vml_:textpath on="true" string="',encodeHtmlAttribute(q),'" style="v-text-align:',a,';font:',encodeHtmlAttribute(n),'" /></g_vml_:line>');this.element_.insertAdjacentHTML('beforeEnd',d.join(''))};a.fillText=function(b,c,d,a){this.drawText_(b,c,d,a,!1)};a.strokeText=function(b,c,d,a){this.drawText_(b,c,d,a,!0)};a.measureText=function(a){if(!this.textMeasureEl_){var c='<span style="position:absolute;'+'top:-20000px;left:0;padding:0;margin:0;border:none;'+'white-space:pre;"></span>';this.element_.insertAdjacentHTML('beforeEnd',c);this.textMeasureEl_=this.element_.lastChild}var b=this.element_.ownerDocument;this.textMeasureEl_.innerHTML='';this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(b.createTextNode(a));return {width:this.textMeasureEl_.offsetWidth}};a.clip=function(){};a.arcTo=function(){};a.createPattern=function(b,a){return new CanvasPattern_(b,a)};function CanvasGradient_(a){this.type_=a;this.x0_=0;this.y0_=0;this.r0_=0;this.x1_=0;this.y1_=0;this.r1_=0;this.colors_=[]}CanvasGradient_.prototype.addColorStop=function(b,a){a=processStyle(a);this.colors_.push({offset:b,color:a.color,alpha:a.alpha})};function CanvasPattern_(a,b){assertImageIsValid(a);switch(b){case 'repeat':case null:case '':this.repetition_='repeat';break;case 'repeat-x':case 'repeat-y':case 'no-repeat':this.repetition_=b;break;default:throwException('SYNTAX_ERR');}this.src_=a.src;this.width_=a.width;this.height_=a.height}function throwException(a){throw new DOMException_(a)}function assertImageIsValid(a){if(!a||a.nodeType!=1||a.tagName!='IMG'){throwException('TYPE_MISMATCH_ERR')}if(a.readyState!='complete'){throwException('INVALID_STATE_ERR')}}function DOMException_(a){this.code=this[a];this.message=a+': DOM Exception '+this.code}var d=DOMException_.prototype=new Error();d.INDEX_SIZE_ERR=1;d.DOMSTRING_SIZE_ERR=2;d.HIERARCHY_REQUEST_ERR=3;d.WRONG_DOCUMENT_ERR=4;d.INVALID_CHARACTER_ERR=5;d.NO_DATA_ALLOWED_ERR=6;d.NO_MODIFICATION_ALLOWED_ERR=7;d.NOT_FOUND_ERR=8;d.NOT_SUPPORTED_ERR=9;d.INUSE_ATTRIBUTE_ERR=10;d.INVALID_STATE_ERR=11;d.SYNTAX_ERR=12;d.INVALID_MODIFICATION_ERR=13;d.NAMESPACE_ERR=14;d.INVALID_ACCESS_ERR=15;d.VALIDATION_ERR=16;d.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=o;CanvasRenderingContext2D=CanvasRenderingContext2D_;CanvasGradient=CanvasGradient_;CanvasPattern=CanvasPattern_;DOMException=DOMException_})()}Ext.define('Ext.draw.engine.Canvas',{extend:'Ext.draw.Surface',isCanvas:!0,requires:['Ext.draw.engine.excanvas','Ext.draw.Animator','Ext.draw.Color'],config:{highPrecision:!1},statics:{contextOverrides:{setGradientBBox:function(a){this.bbox=a},fill:function(){var d=this.fillStyle,b=this.fillGradient,a=this.fillOpacity,e=this.globalAlpha,c=this.bbox;if(d!==Ext.util.Color.RGBA_NONE&&a!==0){if(b&&c){this.fillStyle=b.generateGradient(this,c)}if(a!==1){this.globalAlpha=e*a}this.$fill();if(a!==1){this.globalAlpha=e}if(b&&c){this.fillStyle=d}}},stroke:function(){var d=this.strokeStyle,b=this.strokeGradient,a=this.strokeOpacity,e=this.globalAlpha,c=this.bbox;if(d!==Ext.util.Color.RGBA_NONE&&a!==0){if(b&&c){this.strokeStyle=b.generateGradient(this,c)}if(a!==1){this.globalAlpha=e*a}this.$stroke();if(a!==1){this.globalAlpha=e}if(b&&c){this.strokeStyle=d}}},fillStroke:function(d,b){var a=this,j=this.fillStyle,f=this.fillOpacity,h=this.strokeStyle,e=this.strokeOpacity,g=a.shadowColor,i=a.shadowBlur,c=Ext.util.Color.RGBA_NONE;if(b===undefined){b=d.transformFillStroke}if(!b){d.inverseMatrix.toContext(a)}if(j!==c&&f!==0){a.fill();a.shadowColor=c;a.shadowBlur=0}if(h!==c&&e!==0){a.stroke()}a.shadowColor=g;a.shadowBlur=i},setLineDash:function(a){if(this.$setLineDash){this.$setLineDash(a)}},getLineDash:function(){if(this.$getLineDash){return this.$getLineDash()}},ellipse:function(e,f,c,d,g,i,j,h){var a=Math.cos(g),b=Math.sin(g);this.transform(a*c,b*c,-b*d,a*d,e,f);this.arc(0,0,1,i,j,h);this.transform(a/c,-b/d,b/c,a/d,-(a*e+b*f)/c,(b*e-a*f)/d)},appendPath:function(f){var c=this,d=0,a=0,e=f.commands,b=f.params,g=e.length;c.beginPath();for(;d<g;d++){switch(e[d]){case 'M':c.moveTo(b[a],b[a+1]);a+=2;break;case 'L':c.lineTo(b[a],b[a+1]);a+=2;break;case 'C':c.bezierCurveTo(b[a],b[a+1],b[a+2],b[a+3],b[a+4],b[a+5]);a+=6;break;case 'Z':c.closePath();break;}}},save:function(){var c=this.toSave,e=c.length,d=e&&{},b=0,a;for(;b<e;b++){a=c[b];if(a in this){d[a]=this[a]}}this.state.push(d);this.$save()},restore:function(){var b=this.state.pop(),a;if(b){for(a in b){this[a]=b[a]}}this.$restore()}}},splitThreshold:3000,toSave:['fillGradient','strokeGradient'],element:{reference:'element',children:[{reference:'bodyElement',style:{width:'100%',height:'100%',position:'relative'}}]},createCanvas:function(){var b=Ext.Element.create({tag:'canvas',cls:Ext.baseCSSPrefix+'surface-canvas'});if(window['G_vmlCanvasManager']){G_vmlCanvasManager.initElement(b.dom);this.isVML=!0}var c=Ext.draw.engine.Canvas.contextOverrides,a=b.dom.getContext('2d'),d;if(a.ellipse){delete c.ellipse}a.state=[];a.toSave=this.toSave;for(d in c){a['$'+d]=a[d]}Ext.apply(a,c);if(this.getHighPrecision()){this.enablePrecisionCompensation(a)}else {this.disablePrecisionCompensation(a)}this.bodyElement.appendChild(b);this.canvases.push(b);this.contexts.push(a)},updateHighPrecision:function(d){var c=this.contexts,e=c.length,a,b;for(a=0;a<e;a++){b=c[a];if(d){this.enablePrecisionCompensation(b)}else {this.disablePrecisionCompensation(b)}}},precisionNames:['rect','fillRect','strokeRect','clearRect','moveTo','lineTo','arc','arcTo','save','restore','updatePrecisionCompensate','setTransform','transform','scale','translate','rotate','quadraticCurveTo','bezierCurveTo','createLinearGradient','createRadialGradient','fillText','strokeText','drawImage'],disablePrecisionCompensation:function(e){var d=Ext.draw.engine.Canvas.contextOverrides,c=this.precisionNames,f=c.length,a,b;for(a=0;a<f;a++){b=c[a];if(!(b in d)){delete e[b]}}this.setDirty(!0)},enablePrecisionCompensation:function(k){var h=this,a=1,c=1,d=0,e=0,g=new Ext.draw.Matrix(),j=[],f={},i=Ext.draw.engine.Canvas.contextOverrides,b=k.constructor.prototype;var l={toSave:h.toSave,rect:function(h,i,g,f){return b.rect.call(this,h*a+d,i*c+e,g*a,f*c)},fillRect:function(h,i,g,f){this.updatePrecisionCompensateRect();b.fillRect.call(this,h*a+d,i*c+e,g*a,f*c);this.updatePrecisionCompensate()},strokeRect:function(h,i,g,f){this.updatePrecisionCompensateRect();b.strokeRect.call(this,h*a+d,i*c+e,g*a,f*c);this.updatePrecisionCompensate()},clearRect:function(h,i,g,f){return b.clearRect.call(this,h*a+d,i*c+e,g*a,f*c)},moveTo:function(f,g){return b.moveTo.call(this,f*a+d,g*c+e)},lineTo:function(f,g){return b.lineTo.call(this,f*a+d,g*c+e)},arc:function(i,j,h,f,g,c){this.updatePrecisionCompensateRect();b.arc.call(this,i*a+d,j*a+e,h*a,f,g,c);this.updatePrecisionCompensate()},arcTo:function(g,i,h,j,f){this.updatePrecisionCompensateRect();b.arcTo.call(this,g*a+d,i*c+e,h*a+d,j*c+e,f*a);this.updatePrecisionCompensate()},save:function(){j.push(g);g=g.clone();i.save.call(this);b.save.call(this)},restore:function(){g=j.pop();i.restore.call(this);b.restore.call(this);this.updatePrecisionCompensate()},updatePrecisionCompensate:function(){g.precisionCompensate(h.devicePixelRatio,f);a=f.xx;c=f.yy;d=f.dx;e=f.dy;b.setTransform.call(this,h.devicePixelRatio,f.b,f.c,f.d,0,0)},updatePrecisionCompensateRect:function(){g.precisionCompensateRect(h.devicePixelRatio,f);a=f.xx;c=f.yy;d=f.dx;e=f.dy;b.setTransform.call(this,h.devicePixelRatio,f.b,f.c,f.d,0,0)},setTransform:function(c,d,e,f,a,b){g.set(c,d,e,f,a,b);this.updatePrecisionCompensate()},transform:function(c,d,e,f,a,b){g.append(c,d,e,f,a,b);this.updatePrecisionCompensate()},scale:function(a,b){this.transform(a,0,0,b,0,0)},translate:function(a,b){this.transform(1,0,0,1,a,b)},rotate:function(a){var b=Math.cos(a),c=Math.sin(a);this.transform(b,c,-c,b,0,0)},quadraticCurveTo:function(f,g,h,i){b.quadraticCurveTo.call(this,f*a+d,g*c+e,h*a+d,i*c+e)},bezierCurveTo:function(f,g,h,i,j,l){b.bezierCurveTo.call(this,f*a+d,g*c+e,h*a+d,i*c+e,j*a+d,l*c+e)},createLinearGradient:function(g,i,h,j){this.updatePrecisionCompensateRect();var f=b.createLinearGradient.call(this,g*a+d,i*c+e,h*a+d,j*c+e);this.updatePrecisionCompensate();return f},createRadialGradient:function(h,j,f,i,l,g){this.updatePrecisionCompensateRect();var c=b.createLinearGradient.call(this,h*a+d,j*a+e,f*a,i*a+d,l*a+e,g*a);this.updatePrecisionCompensate();return c},fillText:function(c,d,e,a){b.setTransform.apply(this,g.elements);if(typeof a==='undefined'){b.fillText.call(this,c,d,e)}else {b.fillText.call(this,c,d,e,a)}this.updatePrecisionCompensate()},strokeText:function(c,d,e,a){b.setTransform.apply(this,g.elements);if(typeof a==='undefined'){b.strokeText.call(this,c,d,e)}else {b.strokeText.call(this,c,d,e,a)}this.updatePrecisionCompensate()},fill:function(){var a=this.fillGradient,c=this.bbox;this.updatePrecisionCompensateRect();if(a&&c){this.fillStyle=a.generateGradient(this,c)}b.fill.call(this);this.updatePrecisionCompensate()},stroke:function(){var a=this.strokeGradient,c=this.bbox;this.updatePrecisionCompensateRect();if(a&&c){this.strokeStyle=a.generateGradient(this,c)}b.stroke.call(this);this.updatePrecisionCompensate()},drawImage:function(f,g,h,i,j,l,m,o,n){switch(arguments.length){case 3:return b.drawImage.call(this,f,g*a+d,h*c+e);case 5:return b.drawImage.call(this,f,g*a+d,h*c+e,i*a,j*c);case 9:return b.drawImage.call(this,f,g,h,i,j,l*a+d,m*c*e,o*a,n*c);}}};Ext.apply(k,l);this.setDirty(!0)},updateRect:function(c){this.callParent([c]);var a=this,s=Math.floor(c[0]),u=Math.floor(c[1]),t=Math.ceil(c[0]+c[2]),r=Math.ceil(c[1]+c[3]),f=a.devicePixelRatio,g=a.canvases,q=t-s,p=r-u,d=Math.round(a.splitThreshold/f),n=a.xSplits=Math.ceil(q/d),o=a.ySplits=Math.ceil(p/d),l,m,e,h,i,b,k,j;for(m=0,i=0;m<o;m++,i+=d){for(l=0,h=0;l<n;l++,h+=d){e=m*n+l;if(e>=g.length){a.createCanvas()}b=g[e].dom;b.style.left=h+'px';b.style.top=i+'px';j=Math.min(d,p-i);if(j*f!==b.height){b.height=j*f;b.style.height=j+'px'}k=Math.min(d,q-h);if(k*f!==b.width){b.width=k*f;b.style.width=k+'px'}a.applyDefaults(a.contexts[e])}}a.activeCanvases=e=n*o;while(g.length>e){g.pop().destroy()}a.clear()},clearTransform:function(){var a=this,g=a.xSplits,j=a.ySplits,i=a.contexts,f=a.splitThreshold,e=a.devicePixelRatio,b,c,h,d;for(b=0;b<g;b++){for(c=0;c<j;c++){h=c*g+b;d=i[h];d.translate(-f*b,-f*c);d.scale(e,e);a.matrix.toContext(d)}}},renderSprite:function(b){var c=this,p=c.getRect(),u=c.matrix,d=b.getParent(),n=Ext.draw.Matrix.fly([1,0,0,1,0,0]),f=c.splitThreshold/c.devicePixelRatio,q=c.xSplits,v=c.ySplits,g,h,e,a,o,m,i=0,s,j=0,r,x=p[2],w=p[3],k,l,t;while(d&&d.isSprite){n.prependMatrix(d.matrix||d.attr&&d.attr.matrix);d=d.getParent()}n.prependMatrix(u);a=b.getBBox();if(a){a=n.transformBBox(a)}b.preRender(c);if(b.attr.hidden||b.attr.globalAlpha===0){b.setDirty(!1);return}for(l=0,h=0;l<v;l++,h+=f){for(k=0,g=0;k<q;k++,g+=f){t=l*q+k;e=c.contexts[t];o=Math.min(f,x-g);m=Math.min(f,w-h);i=g;s=i+o;j=h;r=j+m;if(a){if(a.x>s||a.x+a.width<i||a.y>r||a.y+a.height<j){continue}}e.save();b.useAttributes(e,p);if(!1===b.render(c,e,[i,j,o,m])){return !1}e.restore()}}b.setDirty(!1)},flatten:function(j,i){var b=document.createElement('canvas'),k=Ext.getClassName(this),d=this.devicePixelRatio,l=b.getContext('2d'),a,c,g,e,f,h;b.width=Math.ceil(j.width*d);b.height=Math.ceil(j.height*d);for(e=0;e<i.length;e++){a=i[e];if(Ext.getClassName(a)!==k){continue}g=a.getRect();for(f=0;f<a.canvases.length;f++){c=a.canvases[f];h=c.getOffsetsTo(c.getParent());l.drawImage(c.dom,(g[0]+h[0])*d,(g[1]+h[1])*d)}}return {data:b.toDataURL(),type:'png'}},applyDefaults:function(a){var b=Ext.util.Color.RGBA_NONE;a.strokeStyle=b;a.fillStyle=b;a.textAlign='start';a.textBaseline='alphabetic';a.miterLimit=1},clear:function(){var b=this,e=b.activeCanvases,a,c,d;for(a=0;a<e;a++){c=b.canvases[a].dom;d=b.contexts[a];d.setTransform(1,0,0,1,0,0);d.clearRect(0,0,c.width,c.height)}b.setDirty(!0)},destroy:function(){var b=this,c=b.canvases,d=c.length,a;for(a=0;a<d;a++){b.contexts[a]=null;c[a].destroy();c[a]=null}b.contexts=b.canvases=null;b.callParent()},privates:{initElement:function(){var a=this;a.callParent();a.canvases=[];a.contexts=[];a.activeCanvases=a.xSplits=a.ySplits=0}}},function(){var c=this,b=c.prototype,a=1.0E10;if(Ext.os.is.Android4&&Ext.browser.is.Chrome){a=3000}else if(Ext.is.iOS){a=2200}b.splitThreshold=a});Ext.define('Ext.draw.Container',{extend:'Ext.draw.ContainerBase',alternateClassName:'Ext.draw.Component',xtype:'draw',defaultType:'surface',isDrawContainer:!0,requires:['Ext.draw.Surface','Ext.draw.engine.Svg','Ext.draw.engine.Canvas','Ext.draw.gradient.GradientDefinition'],engine:'Ext.draw.engine.Canvas',config:{cls:[Ext.baseCSSPrefix+'draw-container',Ext.baseCSSPrefix+'unselectable'],resizeHandler:null,sprites:null,gradients:[],downloadServerUrl:undefined,touchAction:{panX:!1,panY:!1,pinchZoom:!1,doubleTapZoom:!1},surfaceZIndexes:{main:1}},defaultDownloadServerUrl:'http://svg.sencha.io',supportedFormats:['png','pdf','jpeg','gif'],supportedOptions:{version:Ext.isNumber,data:Ext.isString,format:function(a){return Ext.Array.indexOf(this.supportedFormats,a)>=0},filename:Ext.isString,width:Ext.isNumber,height:Ext.isNumber,scale:Ext.isNumber,pdf:Ext.isObject,jpeg:Ext.isObject},initAnimator:function(){this.frameCallbackId=Ext.draw.Animator.addFrameCallback('renderFrame',this)},applyDownloadServerUrl:function(a){var b=this.defaultDownloadServerUrl;if(!a){a=b}return a},applyGradients:function(d){var b=[],c,f,a,e;if(!Ext.isArray(d)){return b}for(c=0,f=d.length;c<f;c++){a=d[c];if(!Ext.isObject(a)){continue}if(typeof a.type!=='string'){a.type='linear'}if(a.angle){a.degrees=a.angle;delete a.angle}if(Ext.isObject(a.stops)){a.stops=(function(c){var b=[],a;for(e in c){a=c[e];a.offset=e/100;b.push(a)}return b})(a.stops)}b.push(a)}Ext.draw.gradient.GradientDefinition.add(b);return b},applySprites:function(c){if(!c){return}c=Ext.Array.from(c);var f=c.length,e=[],d,a,b;for(d=0;d<f;d++){b=c[d];a=b.surface;if(!(a&&a.isSurface)){if(Ext.isString(a)){a=this.getSurface(a);delete b.surface}else {a=this.getSurface('main')}}b=a.add(b);e.push(b)}return e},resizeDelay:500,resizeTimerId:0,lastResizeTime:null,size:null,handleResize:function(b,h){var a=this,f=a.element,g=a.getResizeHandler()||a.defaultResizeHandler,d=a.resizeDelay,c=a.lastResizeTime,e,i;if(!f){return}b=b||f.getSize();if(!(b.width&&b.height)){return}a.size=b;a.stopResizeTimer();e=!h&&c&&(Ext.Date.now()-c<d);if(e){a.resizeTimerId=Ext.defer(a.handleResize,d,a,[b,!0]);return}a.fireEvent('bodyresize',a,b);Ext.callback(g,null,[b],0,a);if(i!==!1){a.renderFrame()}a.lastResizeTime=Ext.Date.now()},stopResizeTimer:function(){if(this.resizeTimerId){Ext.undefer(this.resizeTimerId);this.resizeTimerId=0}},defaultResizeHandler:function(a){this.getItems().each(function(b){b.setRect([0,0,a.width,a.height])})},getSurface:function(b,a){b=b||'main';a=a||b;var c=this,e=c.getItems(),g=e.getCount(),f=c.getSurfaceZIndexes(),d;d=c.createSurface(b);if(a in f){d.element.setStyle('zIndex',f[a])}if(e.getCount()>g){c.handleResize(null,!0)}return d},createSurface:function(a){a=this.getId()+'-'+(a||'main');var c=this,d=c.getItems(),b=d.get(a);if(!b){b=c.add({xclass:c.engine,id:a})}return b},renderFrame:function(){var e=this,c=e.getItems(),a,d,b;for(a=0,d=c.length;a<d;a++){b=c.items[a];if(b.isSurface){b.renderFrame()}}},getSurfaces:function(g){var a=Array.prototype.slice.call(this.items.items),e=this.getSurfaceZIndexes(),b,c,d,f;if(g){for(c=1;c<a.length;c++){d=a[c];f=e[d.type];b=c-1;while(b>=0&&e[a[b].type]>f){a[b+1]=a[b];b--}a[b+1]=d}}return a},getImage:function(e){var f=this.bodyElement.getSize(),c=this.getSurfaces(!0),d=c[0],a,b;if((Ext.isIE||Ext.isEdge)&&d.isSVG){a={data:d.toSVG(f,c),type:'svg-markup'}}else {a=d.flatten(f,c);if(e==='image'){b=new Image();b.src=a.data;a.data=b;return a}if(e==='stream'){a.data=a.data.replace(/^data:image\/[^;]+/,'data:application/octet-stream');return a}}return a},download:function(a){var d=this,e=[],f,b,c;if(Ext.isIE8){return !1}a=a||{};a.version=2;if(!a.data){a.data=d.getImage().data}for(b in a){if(a.hasOwnProperty(b)){c=a[b];if(b in d.supportedOptions){if(d.supportedOptions[b].call(d,c)){e.push({tag:'input',type:'hidden',name:b,value:Ext.String.htmlEncode(Ext.isObject(c)?Ext.JSON.encode(c):c)})}}}}f=Ext.dom.Helper.markup({tag:'html',children:[{tag:'head'},{tag:'body',children:[{tag:'form',method:'POST',action:a.url||d.getDownloadServerUrl(),children:e},{tag:'script',type:'text/javascript',children:'document.getElementsByTagName("form")[0].submit();'}]}]});window.open('','ImageDownload_'+Date.now()).document.write(f)},doDestroy:function(){var a=this,b=a.frameCallbackId;if(b){Ext.draw.Animator.removeFrameCallback(b)}a.stopResizeTimer();a.callParent()}},function(){if(location.search.match('svg')){Ext.draw.Container.prototype.engine='Ext.draw.engine.Svg'}else if((Ext.os.is.BlackBerry&&Ext.os.version.getMajor()===10)||(Ext.browser.is.AndroidStock4&&(Ext.os.version.getMinor()===1||Ext.os.version.getMinor()===2||Ext.os.version.getMinor()===3))){Ext.draw.Container.prototype.engine='Ext.draw.engine.Svg'}});Ext.define('Ext.chart.theme.BaseTheme',{defaultsDivCls:'x-root'});Ext.define('Ext.chart.theme.Base',{extend:'Ext.chart.theme.BaseTheme',mixins:{factoryable:'Ext.mixin.Factoryable'},requires:['Ext.draw.Color'],factoryConfig:{type:'chart.theme'},isTheme:!0,isBase:!0,config:{baseColor:null,colors:undefined,gradients:null,chart:{defaults:{captions:{title:{docked:'top',padding:5,style:{textAlign:'center',fontFamily:'default',fontWeight:'500',fillStyle:'black',fontSize:'default*1.6'}},subtitle:{docked:'top',style:{textAlign:'center',fontFamily:'default',fontWeight:'normal',fillStyle:'black',fontSize:'default*1.3'}},credits:{docked:'bottom',padding:5,style:{textAlign:'left',fontFamily:'default',fontWeight:'lighter',fillStyle:'black',fontSize:'default'}}},background:'white'}},axis:{defaults:{label:{x:0,y:0,textBaseline:'middle',textAlign:'center',fontSize:'default',fontFamily:'default',fontWeight:'default',fillStyle:'black'},title:{fillStyle:'black',fontSize:'default*1.23',fontFamily:'default',fontWeight:'default'},style:{strokeStyle:'black'},grid:{strokeStyle:'rgb(221, 221, 221)'}},top:{style:{textPadding:5}},bottom:{style:{textPadding:5}}},series:{defaults:{label:{fillStyle:'black',strokeStyle:'none',fontFamily:'default',fontWeight:'default',fontSize:'default*1.077',textBaseline:'middle',textAlign:'center'},labelOverflowPadding:5}},sprites:{text:{fontSize:'default',fontWeight:'default',fontFamily:'default',fillStyle:'black'}},legend:{label:{fontSize:14,fontWeight:'default',fontFamily:'default',fillStyle:'black'},border:{lineWidth:1,radius:4,fillStyle:'none',strokeStyle:'gray'},background:'white'},seriesThemes:undefined,markerThemes:{type:['circle','cross','plus','square','triangle','diamond']},useGradients:!1,background:null},colorDefaults:['#94ae0a','#115fa6','#a61120','#ff8809','#ffd13e','#a61187','#24ad9a','#7c7474','#a66111'],constructor:function(a){this.initConfig(a);this.resolveDefaults()},defaultRegEx:/^default([+\-/\*]\d+(?:\.\d+)?)?$/,defaultOperators:{'*':function(a,b){return a*b},'+':function(a,b){return a+b},'-':function(a,b){return a-b}},resolveChartDefaults:function(){var c=Ext.clone(this.getChart()),e,d,a,b;for(e in c){a=c[e];if('captions' in a){for(d in a.captions){b=a.captions[d];if(b){this.replaceDefaults(b.style)}}}}this.setChart(c)},resolveDefaults:function(){var a=this;Ext.onInternalReady(function(){var g=Ext.clone(a.getSprites()),h=Ext.clone(a.getLegend()),f=Ext.clone(a.getAxis()),e=Ext.clone(a.getSeries()),b,d,c;if(!a.superclass.defaults){b=Ext.getBody().createChild({tag:'div',cls:a.defaultsDivCls});a.superclass.defaults={fontFamily:b.getStyle('fontFamily'),fontWeight:b.getStyle('fontWeight'),fontSize:parseFloat(b.getStyle('fontSize')),fontVariant:b.getStyle('fontVariant'),fontStyle:b.getStyle('fontStyle')};b.destroy()}a.resolveChartDefaults();a.replaceDefaults(g.text);a.setSprites(g);a.replaceDefaults(h.label);a.setLegend(h);for(d in f){c=f[d];a.replaceDefaults(c.label);a.replaceDefaults(c.title)}a.setAxis(f);for(d in e){c=e[d];a.replaceDefaults(c.label)}a.setSeries(e)})},replaceDefaults:function(d){var e=this,g=e.superclass.defaults,h=e.defaultRegEx,c,b,a,f;if(Ext.isObject(d)){for(c in g){a=h.exec(d[c]);if(a){b=g[c];a=a[1];if(a){f=e.defaultOperators[a.charAt(0)];b=Math.round(f(b,parseFloat(a.substr(1))))}d[c]=b}}}},applyBaseColor:function(b){var a,c;if(b){a=b.isColor?b:Ext.util.Color.fromString(b);c=a.getHSL()[2];if(c<0.15){a=a.createLighter(0.3)}else if(c<0.3){a=a.createLighter(0.15)}else if(c>0.85){a=a.createDarker(0.3)}else if(c>0.7){a=a.createDarker(0.15)}this.setColors([a.createDarker(0.3).toString(),a.createDarker(0.15).toString(),a.toString(),a.createLighter(0.12).toString(),a.createLighter(0.24).toString(),a.createLighter(0.31).toString()])}return b},applyColors:function(a){return a||this.colorDefaults},updateUseGradients:function(a){if(a){this.updateGradients({type:'linear',degrees:90})}},updateBackground:function(a){if(a){var b=this.getChart();b.defaults.background=a;this.setChart(b)}},updateGradients:function(d){var c=this.getColors(),g=[],e,a,f,b,h;if(Ext.isObject(d)){for(b=0,h=c&&c.length||0;b<h;b++){a=Ext.util.Color.fromString(c[b]);if(a){f=a.createLighter(0.15).toString();e=Ext.apply(Ext.Object.chain(d),{stops:[{offset:1,color:a.toString()},{offset:0,color:f.toString()}]});g.push(e)}}this.setColors(g)}},applySeriesThemes:function(a){this.getBaseColor();this.getUseGradients();this.getGradients();var b=this.getColors();if(!a){a={fillStyle:Ext.Array.clone(b),strokeStyle:Ext.Array.map(b,function(b){var c=Ext.util.Color.fromString(b.stops?b.stops[0].color:b);return c.createDarker(0.15).toString()})}}return a}});Ext.define('Ext.chart.theme.Default',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.default','chart.theme.Default','chart.theme.Base']});Ext.define('Ext.chart.Util',{singleton:!0,expandRange:function(b,f){var g=f.length,d=b[0],c=b[1],e,a;for(e=0;e<g;e++){a=f[e];if(a==null||!isFinite(a)){continue}if(a<d||!isFinite(d)){d=a}if(a>c||!isFinite(c)){c=a}}b[0]=d;b[1]=c},defaultRange:[0,1],validateRange:function(a,b,c){b=b||this.defaultRange.slice();if(!(c===0||c>0)){c=0.5}if(!a||a.length!==2){return b}a=[a[0],a[1]];if(!a[0]){a[0]=0}if(!a[1]){a[1]=0}if(c&&a[0]===a[1]){a=[a[0]-c,a[0]+c];if(a[0]===a[1]){return b}}var d=isFinite(a[0]);var e=isFinite(a[1]);if(!d&&!e){return b}if(d&&!e){a[1]=a[0]+Ext.Number.sign(a[1])*(b[1]-b[0])}else if(e&&!d){a[0]=a[1]+Ext.Number.sign(a[0])*(b[1]-b[0])}return [Math.min(a[0],a[1]),Math.max(a[0],a[1])]},applyAnimation:function(a,b){if(!a){a={duration:0}}else if(a===!0){a={easing:'easeInOut',duration:500}}return b?Ext.apply({},a,b):a}});Ext.define('Ext.chart.Markers',{extend:'Ext.draw.sprite.Instancing',isMarkers:!0,defaultCategory:'default',constructor:function(){this.callParent(arguments);this.categories={};this.revisions={}},destroy:function(){this.categories=null;this.revisions=null;this.callParent()},getMarkerFor:function(b,c){if(b in this.categories){var a=this.categories[b];if(c in a){return this.get(a[c])}}},clear:function(a){a=a||this.defaultCategory;if(!(a in this.revisions)){this.revisions[a]=1}else {this.revisions[a]++}},clearAll:function(){this.callParent();this.categories={};this.revisions={}},putMarkerFor:function(b,g,e,f,h){b=b||this.defaultCategory;var a=this,c=a.categories[b]||(a.categories[b]={}),d;if(e in c){a.setAttributesFor(c[e],g,f)}else {c[e]=a.getCount();a.add(g,f)}d=a.get(c[e]);if(d){d.category=b;if(!h){d.revision=a.revisions[b]||(a.revisions[b]=1)}}},getMarkerBBoxFor:function(b,c,d){if(b in this.categories){var a=this.categories[b];if(c in a){return this.getBBoxFor(a[c],d)}}},getBBox:function(){return null},render:function(f,b,h){var d=this,g=f.getRect(),j=d.revisions,k=d.attr.matrix,a=d.getTemplate(),i=a.attr,l=d.instances.length,c,e;k.toContext(b);a.preRender(f,b,h);a.useAttributes(b,g);for(e=0;e<l;e++){c=d.get(e);if(c.hidden||c.revision!==j[c.category]){continue}b.save();a.attr=c;a.useAttributes(b,g);a.render(f,b,h);b.restore()}a.attr=i}});Ext.define('Ext.chart.modifier.Callout',{extend:'Ext.draw.modifier.Modifier',alternateClassName:'Ext.chart.label.Callout',prepareAttributes:function(a){if(!a.hasOwnProperty('calloutOriginal')){a.calloutOriginal=Ext.Object.chain(a);a.calloutOriginal.prototype=a}if(this._lower){this._lower.prepareAttributes(a.calloutOriginal)}},setAttrs:function(f,a){var b=f.callout,i=f.calloutOriginal,l=f.bbox.plain,h=(l.width||0)+f.labelOverflowPadding,g=(l.height||0)+f.labelOverflowPadding,d,e;if('callout' in a){b=a.callout}if('callout' in a||'calloutPlaceX' in a||'calloutPlaceY' in a||'x' in a||'y' in a){var c='rotationRads' in a?i.rotationRads=a.rotationRads:i.rotationRads,n='x' in a?(i.x=a.x):i.x,o='y' in a?(i.y=a.y):i.y,j='calloutPlaceX' in a?a.calloutPlaceX:f.calloutPlaceX,k='calloutPlaceY' in a?a.calloutPlaceY:f.calloutPlaceY,p='calloutVertical' in a?a.calloutVertical:f.calloutVertical,m;c%=Math.PI*2;if(Math.cos(c)<0){c=(c+Math.PI)%(Math.PI*2)}if(c>Math.PI){c-=Math.PI*2}if(p){c=c*(1-b)-Math.PI/2*b;m=h;h=g;g=m}else {c=c*(1-b)}a.rotationRads=c;a.x=n*(1-b)+j*b;a.y=o*(1-b)+k*b;d=j-n;e=k-o;if(Math.abs(e*h)>Math.abs(d*g)){if(e>0){a.calloutEndX=a.x-(g/2)*(d/e)*b;a.calloutEndY=a.y-(g/2)*b}else {a.calloutEndX=a.x+(g/2)*(d/e)*b;a.calloutEndY=a.y+(g/2)*b}}else {if(d>0){a.calloutEndX=a.x-h/2;a.calloutEndY=a.y-(h/2)*(e/d)*b}else {a.calloutEndX=a.x+h/2;a.calloutEndY=a.y+(h/2)*(e/d)*b}}if(a.calloutStartX&&a.calloutStartY){a.calloutHasLine=(d>0&&a.calloutStartX<a.calloutEndX)||(d<=0&&a.calloutStartX>a.calloutEndX)||(e>0&&a.calloutStartY<a.calloutEndY)||(e<=0&&a.calloutStartY>a.calloutEndY)}else {a.calloutHasLine=!0}}return a},pushDown:function(b,a){a=this.callParent([b.calloutOriginal,a]);return this.setAttrs(b,a)},popUp:function(a,b){a=a.prototype;b=this.setAttrs(a,b);if(this._upper){return this._upper.popUp(a,b)}else {return Ext.apply(a,b)}}});Ext.define('Ext.chart.sprite.Label',{extend:'Ext.draw.sprite.Text',alternateClassName:'Ext.chart.label.Label',requires:['Ext.chart.modifier.Callout'],inheritableStatics:{def:{processors:{callout:'limited01',calloutHasLine:'bool',calloutPlaceX:'number',calloutPlaceY:'number',calloutStartX:'number',calloutStartY:'number',calloutEndX:'number',calloutEndY:'number',calloutColor:'color',calloutWidth:'number',calloutVertical:'bool',labelOverflowPadding:'number',display:'enums(none,under,over,rotate,insideStart,insideEnd,inside,outside)',orientation:'enums(horizontal,vertical)',renderer:'default'},defaults:{callout:0,calloutHasLine:!0,calloutPlaceX:0,calloutPlaceY:0,calloutStartX:0,calloutStartY:0,calloutEndX:0,calloutEndY:0,calloutWidth:1,calloutVertical:!1,calloutColor:'black',labelOverflowPadding:5,display:'none',orientation:'',renderer:null},triggers:{callout:'transform',calloutPlaceX:'transform',calloutPlaceY:'transform',labelOverflowPadding:'transform',calloutRotation:'transform',display:'hidden'},updaters:{hidden:function(a){a.hidden=(a.display==='none')}}}},config:{animation:{customDurations:{callout:200}},field:null,calloutLine:!0,hideLessThan:20},applyCalloutLine:function(a){if(a){return Ext.apply({},a)}},createModifiers:function(){var b=this,a=b.callParent(arguments);a.callout=new Ext.chart.modifier.Callout({sprite:b});a.animation.setUpper(a.callout);a.callout.setUpper(a.target)},render:function(e,a){var b=this,d=b.attr,c=d.calloutColor;a.save();a.globalAlpha*=d.callout;if(a.globalAlpha>0&&d.calloutHasLine){if(c&&c.isGradient){c=c.getStops()[0].color}a.strokeStyle=c;a.fillStyle=c;a.lineWidth=d.calloutWidth;a.beginPath();a.moveTo(b.attr.calloutStartX,b.attr.calloutStartY);a.lineTo(b.attr.calloutEndX,b.attr.calloutEndY);a.stroke();a.beginPath();a.arc(b.attr.calloutStartX,b.attr.calloutStartY,1*d.calloutWidth,0,2*Math.PI,!0);a.fill();a.beginPath();a.arc(b.attr.calloutEndX,b.attr.calloutEndY,1*d.calloutWidth,0,2*Math.PI,!0);a.fill()}a.restore();Ext.draw.sprite.Text.prototype.render.apply(b,arguments)}});Ext.define('Ext.chart.series.Series',{requires:['Ext.chart.Util','Ext.chart.Markers','Ext.chart.sprite.Label','Ext.tip.ToolTip'],mixins:['Ext.mixin.Observable','Ext.mixin.Bindable'],isSeries:!0,defaultBindProperty:'store',type:null,seriesType:'sprite',identifiablePrefix:'ext-line-',observableType:'series',darkerStrokeRatio:0.15,config:{chart:null,title:null,renderer:null,showInLegend:!0,triggerAfterDraw:!1,theme:null,style:{},subStyle:{},themeStyle:{},colors:null,useDarkerStrokeColor:!0,store:null,label:null,labelOverflowPadding:null,showMarkers:!0,marker:null,markerSubStyle:null,itemInstancing:null,background:null,surface:null,overlaySurface:null,hidden:!1,highlight:!1,highlightCfg:{merge:function(a){return a},$value:{fillStyle:'yellow',strokeStyle:'red'}},animation:null,tooltip:null},directions:[],sprites:null,themeColorCount:function(){return 1},isStoreDependantColorCount:!1,themeMarkerCount:function(){return 0},getFields:function(d){var f=this,a=[],e=d.length,c,b;for(c=0;c<e;c++){b=f['get'+d[c]+'Field']();if(Ext.isArray(b)){a.push.apply(a,b)}else {a.push(b)}}return a},applyAnimation:function(b,a){var c=this.getChart();if(!c.isSettingSeriesAnimation){this.isUserAnimation=!0}return Ext.chart.Util.applyAnimation(b,a)},updateAnimation:function(e){var f=this.getSprites(),d,c,b,g,a;for(b=0,g=f.length;b<g;b++){a=f[b];if(a.isMarkerHolder){d=a.getMarker('items');if(d){d.getTemplate().setAnimation(e)}c=a.getMarker('markers');if(c){c.getTemplate().setAnimation(e)}}a.setAnimation(e)}},getAnimation:function(){var b=this.getChart(),a;if(b&&b.animationSuspendCount){a={duration:0}}else {if(this.isUserAnimation){a=this.callParent()}else {a=b.getAnimation()}}return a},updateTitle:function(){var b=this,a=b.getChart();if(a&&!a.isInitializing){a.refreshLegendStore()}},applyHighlight:function(a,c){var d=this,b=d.getHighlightCfg();if(Ext.isObject(a)){a=Ext.merge({},b,a)}else if(a===!0){a=b}if(a){a.type='highlight'}return a&&Ext.merge({},c,a)},updateHighlight:function(d){var a=this,g=a.sprites,i=a.getHighlightCfg(),c,h,b,f,e;a.getStyle();a.getMarker();if(!Ext.Object.isEmpty(d)){a.addItemHighlight();for(c=0,h=g.length;c<h;c++){b=g[c];if(b.isMarkerHolder){f=b.getMarker('items');if(f){f.getTemplate().modifiers.highlight.setStyle(d)}e=b.getMarker('markers');if(e){e.getTemplate().modifiers.highlight.setStyle(d)}}}}else if(!Ext.Object.equals(i,this.defaultConfig.highlightCfg)){this.addItemHighlight()}},updateHighlightCfg:function(a){if(!this.isConfiguring&&!Ext.Object.equals(a,this.defaultConfig.highlightCfg)){this.addItemHighlight()}},applyItemInstancing:function(a,b){if(a&&b&&(!a.type||a.type===b.type)){a=Ext.merge({},b,a)}if(a&&!a.type){a=null}return a},setAttributesForItem:function(b,c){var a=b&&b.sprite,d;if(a){if(a.isMarkerHolder&&b.category==='items'){a.putMarker(b.category,c,b.index,!1,!0)}if(a.isMarkerHolder&&b.category==='markers'){a.putMarker(b.category,c,b.index,!1,!0)}else if(a.isInstancing){a.setAttributesFor(b.index,c)}else if(Ext.isArray(a)){for(d=0;d<a.length;d++){a[d].setAttributes(c)}}else {a.setAttributes(c)}}},getBBoxForItem:function(b){var a=b&&b.sprite,c=null;if(a){if(a.getMarker('items')&&b.category==='items'){c=a.getMarkerBBox(b.category,b.index)}else if(a instanceof Ext.draw.sprite.Instancing){c=a.getBBoxFor(b.index)}else {c=a.getBBox()}}return c},dataRange:null,constructor:function(a){var b=this,c;a=a||{};if(a.tips){a=Ext.apply({tooltip:a.tips},a)}if(a.highlightCfg){a=Ext.apply({highlight:a.highlightCfg},a)}if('id' in a){c=a.id}else if('id' in b.config){c=b.config.id}else {c=b.getId()}b.setId(c);b.sprites=[];b.dataRange=[];b.mixins.observable.constructor.call(b,a);b.initBindable()},lookupViewModel:function(b){var a=this.getChart();return a?a.lookupViewModel(b):null},applyTooltip:function(a,c){var b=Ext.apply({xtype:'tooltip',renderer:Ext.emptyFn,constrainPosition:!0,shrinkWrapDock:!0,autoHide:!0,hideDelay:200,mouseOffset:[20,20],trackMouse:!0},a);return Ext.create(b)},updateTooltip:function(){this.addItemHighlight()},addItemHighlight:function(){var d=this.getChart();if(!d){return}var a=d.getInteractions(),b,c,e;for(b=0;b<a.length;b++){c=a[b];if(c.isItemHighlight||c.isItemEdit){e=!0;break}}if(!e){a.push('itemhighlight');d.setInteractions(a)}},showTooltip:function(b,d){var c=this,a=c.getTooltip();if(!a){return}Ext.callback(a.renderer,a.scope,[a,b.record,b],0,c);a.showBy(d)},showTooltipAt:function(c,e,f){var d=this,a=d.getTooltip(),b=a.config.mouseOffset;if(!a||!a.showAt){return}if(b){e+=b[0];f+=b[1]}Ext.callback(a.renderer,a.scope,[a,c.record,c],0,d);a.showAt([e,f])},hideTooltip:function(d,b){var c=this,a=c.getTooltip();if(!a){return}if(b){a.hide()}else {a.delayHide()}},applyStore:function(a){return a&&Ext.StoreManager.lookup(a)},getStore:function(){return this._store||this.getChart()&&this.getChart().getStore()},updateStore:function(c,b){var a=this,g=a.getChart(),i=g&&g.getStore(),e,f,h,d;b=b||i;if(b&&b!==c){b.un({datachanged:'onDataChanged',update:'onDataChanged',scope:a})}if(c){c.on({datachanged:'onDataChanged',update:'onDataChanged',scope:a});e=a.getSprites();for(d=0,h=e.length;d<h;d++){f=e[d];if(f.setStore){f.setStore(c)}}a.onDataChanged()}a.fireEvent('storechange',a,c,b)},onStoreChange:function(c,a,b){if(!this._store){this.updateStore(a,b)}},defaultRange:[0,1],coordinate:function(d,j,n){var a=this,q=a.getStore(),l=a.getHidden(),p=q.getData().items,f=a['get'+d+'Axis'](),c=[NaN,NaN],g=a['fieldCategory'+d]||[d],o=a.getFields(g),b,m,i,e={},h=a.getSprites(),k;if(h.length&&!Ext.isBoolean(l)||!l){for(b=0;b<g.length;b++){m=o[b];i=a.coordinateData(p,m,f);Ext.chart.Util.expandRange(c,i);e['data'+g[b]]=i}c=Ext.chart.Util.validateRange(c,a.defaultRange,0);a.dataRange[j]=c[0];a.dataRange[j+n]=c[1];e['dataMin'+d]=c[0];e['dataMax'+d]=c[1];if(f){k=f.getRange(!0);f.setBoundSeriesRange(k)}for(b=0;b<h.length;b++){h[b].setAttributes(e)}}},coordinateData:function(d,f,g){var c=[],h=d.length,e=g&&g.getLayout(),a,b;for(a=0;a<h;a++){b=d[a].data[f];if(!Ext.isEmpty(b,!0)){if(e){c[a]=e.getCoordFor(b,f,a,d)}else {b=+b;c[a]=Ext.isNumber(b)?b:a}}else {c[a]=b}}return c},updateLabelData:function(){var i=this.getLabel();if(!i){return}var l=this.getStore(),h=l.getData().items,f=this.getSprites(),k=i.getTemplate(),e=Ext.Array.from(k.getField()),a,d,j,g,b,c;if(!f.length||!e.length){return}for(a=0;a<f.length;a++){b=f[a];if(!b.getField){continue}g=[];c=b.getField();if(Ext.Array.indexOf(e,c)<0){c=e[a]}for(d=0,j=h.length;d<j;d++){g.push(h[d].get(c))}b.setAttributes({labels:g})}},processData:function(){var a=this;if(a.isProcessingData||!a.getStore()){return}var f=this.directions,b,g=f.length,c,d,e;a.isProcessingData=!0;for(b=0;b<g;b++){c=f[b];d=a['get'+c+'Axis']();if(d){d.processData(a);continue}e='coordinate'+c;if(a[e]){a[e]()}}a.updateLabelData();a.isProcessingData=!1},applyBackground:function(c){var a,b;if(this.getChart()){a=this.getSurface();a.setBackground(c);b=a.getBackground()}else {b=c}return b},updateChart:function(b,c){var a=this,d=a._store;if(c){c.un('axeschange','onAxesChange',a);a.clearSprites();a.setSurface(null);a.setOverlaySurface(null);c.unregister(a);a.onChartDetached(c);if(!d){a.updateStore(null)}}if(b){a.setSurface(b.getSurface('series'));a.setOverlaySurface(b.getSurface('overlay'));b.on('axeschange','onAxesChange',a);if(b.getAxes()){a.onAxesChange(b)}a.onChartAttached(b);b.register(a);if(!d){a.updateStore(b.getStore())}}},onAxesChange:function(h,l){if(h.destroying||h.destroyed){return}var f=this,k=h.getAxes(),c,e={},i={},j=!1,g=this.directions,a,b,d;for(b=0,d=g.length;b<d;b++){a=g[b];i[a]=f.getFields(f['fieldCategory'+a])}for(b=0,d=k.length;b<d;b++){c=k[b];a=c.getDirection();if(!e[a]){e[a]=[c]}else {e[a].push(c)}}for(b=0,d=g.length;b<d;b++){a=g[b];if(!l&&f['get'+a+'Axis']()){continue}if(e[a]){c=f.findMatchingAxis(e[a],i[a]);if(c){f['set'+a+'Axis'](c);if(c.getNeedHighPrecision()){j=!0}}}}this.getSurface().setHighPrecision(j)},findMatchingAxis:function(f,d){var a,e,b,c;for(b=0;b<f.length;b++){a=f[b];e=a.getFields();if(!e.length){return a}else if(d){for(c=0;c<d.length;c++){if(Ext.Array.indexOf(e,d[c])>=0){return a}}}}},onChartDetached:function(b){var a=this;a.fireEvent('chartdetached',b,a);b.un('storechange','onStoreChange',a)},onChartAttached:function(b){var a=this;a.fireEvent('chartattached',b,a);b.on('storechange','onStoreChange',a);a.processData()},updateOverlaySurface:function(a){var b=this.getLabel();if(a&&b){a.add(b)}},getLabel:function(){return this.labelMarker},setLabel:function(b){var c=this,e=c.getChart(),a=c.labelMarker,d;if(!b&&a){a.getTemplate().destroy();a.destroy();c.labelMarker=a=null}if(b){if(!a){a=c.labelMarker=new Ext.chart.Markers({zIndex:10});a.setTemplate(new Ext.chart.sprite.Label());c.getOverlaySurface().add(a)}d=a.getTemplate();d.setAttributes(b);d.setConfig(b);if(b.field){d.setField(b.field)}if(b.display){a.setAttributes({hidden:b.display==='none'})}a.setDirty(!0)}c.updateLabelData();if(e&&!e.isInitializing&&!c.isConfiguring){e.redraw()}},createItemInstancingSprite:function(g,e){var d=this,a=new Ext.chart.Markers(),f=Ext.apply({modifiers:'highlight'},e),h=d.getStyle(),c,b;a.setAttributes({zIndex:Number.MAX_VALUE});a.setTemplate(f);c=a.getTemplate();c.setAttributes(h);b=c.getAnimation();b.on('animationstart','onSpriteAnimationStart',this);b.on('animationend','onSpriteAnimationEnd',this);g.bindMarker('items',a);d.getSurface().add(a);return a},getDefaultSpriteConfig:function(){return {type:this.seriesType,renderer:this.getRenderer()}},updateRenderer:function(c){var b=this,a=b.getChart();if(a&&a.isInitializing){return}if(b.sprites.length){b.sprites[0].setAttributes({renderer:c||null});if(a&&!a.isInitializing){a.redraw()}}},updateShowMarkers:function(c){var b=this.getSprite(),a=b&&b.getMarker('markers');if(a){a.getTemplate().setAttributes({hidden:!c})}},createSprite:function(){var a=this,f=a.getSurface(),e=a.getItemInstancing(),b=f.add(a.getDefaultSpriteConfig()),d,c;b.setAttributes(a.getStyle());b.setSeries(a);if(e){a.createItemInstancingSprite(b,e)}if(b.isMarkerHolder){c=a.getLabel();if(c&&c.getTemplate().getField()){b.bindMarker('labels',c)}}if(b.setStore){b.setStore(a.getStore())}d=b.getAnimation();d.on('animationstart','onSpriteAnimationStart',a);d.on('animationend','onSpriteAnimationEnd',a);a.sprites.push(b);return b},getSprites:null,getSprite:function(){var a=this.getSprites();return a&&a[0]},withSprite:function(b){var a=this.getSprite();return a&&b(a)||undefined},forEachSprite:function(d){var b=this.getSprites(),a,c;for(a=0,c=b.length;a<c;a++){d(b[a])}},onDataChanged:function(){var a=this,b=a.getChart(),d=b&&b.getStore(),c=a.getStore();if(c!==d){a.processData()}},isXType:function(a){return a==='series'},getItemId:function(){return this.getId()},applyThemeStyle:function(a,e){var d=this,b,c;b=a&&a.subStyle&&a.subStyle.fillStyle;c=b&&a.subStyle.strokeStyle;if(b&&!c){a.subStyle.strokeStyle=d.getStrokeColorsFromFillColors(b)}b=a&&a.markerSubStyle&&a.markerSubStyle.fillStyle;c=b&&a.markerSubStyle.strokeStyle;if(b&&!c){a.markerSubStyle.strokeStyle=d.getStrokeColorsFromFillColors(b)}return Ext.apply(e||{},a)},applyStyle:function(b,a){return Ext.apply({},b,a)},applySubStyle:function(a,c){var d=Ext.ClassManager.getNameByAlias('sprite.'+this.seriesType),b=Ext.ClassManager.get(d);if(b&&b.def){a=b.def.batchedNormalize(a,!0)}return Ext.merge({},c,a)},applyMarker:function(a,d){var b,c;if(a){if(!Ext.isObject(a)){a={}}b=a.type||'circle';if(d&&b===d.type){a=Ext.merge({},d,a)}}if(b){c=Ext.ClassManager.get(Ext.ClassManager.getNameByAlias('sprite.'+b))}if(c&&c.def){a=c.def.normalize(a,!0);a.type=b}else {a=null}return a},updateMarker:function(g){var b=this,f=b.getSprites(),c,a,e,d,h;for(d=0,h=f.length;d<h;d++){c=f[d];if(!c.isMarkerHolder){continue}a=c.getMarker('markers');if(g){if(!a){a=new Ext.chart.Markers();c.bindMarker('markers',a);b.getOverlaySurface().add(a)}e=Ext.Object.merge({modifiers:'highlight'},g);a.setTemplate(e);a.getTemplate().getAnimation().setCustomDurations({translationX:0,translationY:0})}else if(a){c.releaseMarker('markers');b.getOverlaySurface().remove(a,!0)}c.setDirty(!0)}if(!b.isConfiguring){b.doUpdateStyles();b.updateHighlight(b.getHighlight())}},applyMarkerSubStyle:function(a,b){var d=(a&&a.type)||(b&&b.type)||'circle',c=Ext.ClassManager.get(Ext.ClassManager.getNameByAlias('sprite.'+d));if(c&&c.def){a=c.def.batchedNormalize(a,!0)}return Ext.merge(b||{},a)},updateHidden:function(b){var a=this;a.getColors();a.getSubStyle();a.setSubStyle({hidden:b});a.processData();a.doUpdateStyles();if(!Ext.isArray(b)){a.updateLegendStore(b)}},updateLegendStore:function(c,g){var f=this,d=f.getChart(),b=d&&d.getLegendStore(),e=f.getId(),a;if(b){if(arguments.length>1){a=b.findBy(function(a){return a.get('series')===e&&a.get('index')===g});if(a!==-1){a=b.getAt(a)}}else {a=b.findRecord('series',e)}if(a&&a.get('disabled')!==c){a.set('disabled',c)}}},setHiddenByIndex:function(c,b){var a=this;if(Ext.isArray(a.getHidden())){a.getHidden()[c]=b;a.updateHidden(a.getHidden());a.updateLegendStore(b,c)}else {a.setHidden(b)}},getStrokeColorsFromFillColors:function(c){var d=this,b=d.getUseDarkerStrokeColor(),e=(Ext.isNumber(b)?b:d.darkerStrokeRatio),a;if(b){a=Ext.Array.map(c,function(a){a=Ext.isString(a)?a:a.stops[0].color;a=Ext.util.Color.fromString(a);return a.createDarker(e).toString()})}else {a=Ext.Array.clone(c)}return a},updateThemeColors:function(d){var a=this,b=a.getThemeStyle(),f=Ext.Array.clone(d),e=a.getStrokeColorsFromFillColors(d),c={fillStyle:f,strokeStyle:e};b.subStyle=Ext.apply(b.subStyle||{},c);b.markerSubStyle=Ext.apply(b.markerSubStyle||{},c);a.doUpdateStyles();if(!a.isConfiguring){a.getChart().refreshLegendStore()}},themeOnlyIfConfigured:{},updateTheme:function(o){var c=this,d=o.getSeries(),m=c.getInitialConfig(),l=c.defaultConfig,n=c.self.getConfigurator().configs,k=d.defaults,j=d[c.type],i=c.themeOnlyIfConfigured,b,a,g,e,f,h;d=Ext.merge({},k,j);for(b in d){a=d[b];h=n[b];if(a!==null&&a!==undefined&&h){f=m[b];g=Ext.isObject(a);e=f===l[b];if(g){if(e&&i[b]){continue}a=Ext.merge({},a,f)}if(e||g){c[h.names.set](a)}}}},updateChartColors:function(b){var a=this;if(!a.getColors()){a.updateThemeColors(b)}},updateColors:function(b){this.updateThemeColors(b);if(!this.isConfiguring){var a=this.getChart();if(a){a.refreshLegendStore()}}},updateStyle:function(){this.doUpdateStyles()},updateSubStyle:function(){this.doUpdateStyles()},updateThemeStyle:function(){this.doUpdateStyles()},doUpdateStyles:function(){var c=this,d=c.sprites,g=c.getItemInstancing(),h=d&&d.length,i=c.getConfig('showMarkers',!0),f,b,e,a;for(a=0;a<h;a++){b=d[a];f=c.getStyleByIndex(a);if(g){b.getMarker('items').getTemplate().setAttributes(f)}b.setAttributes(f);e=b.isMarkerHolder&&b.getMarker('markers');if(e){e.getTemplate().setAttributes(c.getMarkerStyleByIndex(a))}}},getStyleWithTheme:function(){var c=this,a=c.getThemeStyle(),b=Ext.clone(c.getStyle());if(a&&a.style){Ext.applyIf(b,a.style)}return b},getSubStyleWithTheme:function(){var c=this,a=c.getThemeStyle(),b=Ext.clone(c.getSubStyle());if(a&&a.subStyle){Ext.applyIf(b,a.subStyle)}return b},getStyleByIndex:function(h){var b=this,c=b.getThemeStyle(),g,e,f,d,a={};g=b.getStyle();e=(c&&c.style)||{};f=b.styleDataForIndex(b.getSubStyle(),h);d=b.styleDataForIndex((c&&c.subStyle),h);Ext.apply(a,e);Ext.apply(a,d);Ext.apply(a,g);Ext.apply(a,f);return a},getMarkerStyleByIndex:function(e){var c=this,b=c.getThemeStyle(),l,k,d,i,j,g,h,f,a={};l=c.getStyle();k=(b&&b.style)||{};d=c.styleDataForIndex(c.getSubStyle(),e);if(d.hasOwnProperty('hidden')){d.hidden=d.hidden||!this.getConfig('showMarkers',!0)}i=c.styleDataForIndex((b&&b.subStyle),e);j=c.getMarker();g=(b&&b.marker)||{};h=c.getMarkerSubStyle();f=c.styleDataForIndex((b&&b.markerSubStyle),e);Ext.apply(a,k);Ext.apply(a,i);Ext.apply(a,g);Ext.apply(a,f);Ext.apply(a,l);Ext.apply(a,d);Ext.apply(a,j);Ext.apply(a,h);return a},styleDataForIndex:function(d,e){var a,b,c={};if(d){for(b in d){a=d[b];if(Ext.isArray(a)){c[b]=a[e%a.length]}else {c[b]=a}}}return c},getItemForPoint:Ext.emptyFn,getItemByIndex:function(e,a){var c=this,d=c.getSprites(),b=d&&d[0],f;if(!b){return}if(a===undefined&&b.isMarkerHolder){a=c.getItemInstancing()?'items':'markers'}else if(!a||a===''||a==='sprites'){b=d[e]}if(b){f={series:c,category:a,index:e,record:c.getStore().getData().items[e],field:c.getYField(),sprite:b};return f}},onSpriteAnimationStart:function(a){this.fireEvent('animationstart',this,a)},onSpriteAnimationEnd:function(a){this.fireEvent('animationend',this,a)},resolveListenerScope:function(d){var c=this,e=Ext._namedScopes[d],a=c.getChart(),b;if(!e){b=a?a.resolveListenerScope(d,!1):(d||c)}else if(e.isThis){b=c}else if(e.isController){b=a?a.resolveListenerScope(d,!1):c}else if(e.isSelf){b=a?a.resolveListenerScope(d,!1):c;if(b===a&&!a.getInheritedConfig('defaultListenerScope')){b=c}}return b},provideLegendInfo:function(d){var b=this,c=b.getSubStyleWithTheme(),a=c.fillStyle;if(Ext.isArray(a)){a=a[0]}d.push({name:b.getTitle()||b.getYField()||b.getId(),mark:(Ext.isObject(a)?a.stops&&a.stops[0].color:a)||c.strokeStyle||'black',disabled:b.getHidden(),series:b.getId(),index:0})},clearSprites:function(){var c=this.sprites,a,b,d;for(b=0,d=c.length;b<d;b++){a=c[b];if(a&&a.isSprite){a.destroy()}}this.sprites=[]},destroy:function(){var a=this,b=a._store,c=a.getConfig('tooltip',!0);if(b&&b.getAutoDestroy()){Ext.destroy(b)}a.setChart(null);a.clearListeners();if(c){Ext.destroy(c)}a.callParent()}});Ext.define('Ext.chart.interactions.Abstract',{xtype:'interaction',mixins:{observable:'Ext.mixin.Observable'},config:{gestures:{tap:'onGesture'},chart:null,enabled:!0},throttleGap:0,stopAnimationBeforeSync:!1,constructor:function(b){var a=this,c;b=b||{};if('id' in b){c=b.id}else if('id' in a.config){c=a.config.id}else {c=a.getId()}a.setId(c);a.mixins.observable.constructor.call(a,b)},updateChart:function(c,a){var b=this;if(a===c){return}if(a){a.unregister(b);b.removeChartListener(a)}if(c){c.register(b);b.addChartListener()}},updateEnabled:function(c){var a=this,b=a.getChart();if(b){if(c){a.addChartListener()}else {a.removeChartListener(b)}}},onGesture:Ext.emptyFn,getItemForEvent:function(d){var c=this,b=c.getChart(),a=b.getEventXY(d);return b.getItemForPoint(a[0],a[1])},getItemsForEvent:function(d){var c=this,b=c.getChart(),a=b.getEventXY(d);return b.getItemsForPoint(a[0],a[1])},addChartListener:function(){var a=this,d=a.getChart(),c=a.getGestures(),b;if(!a.getEnabled()){return}function insertGesture(b,c){d.addElementListener(b,a.listeners[b]=function(e){var f=a.getLocks(),d;if(a.getEnabled()&&(!(b in f)||f[b]===a)){d=(Ext.isFunction(c)?c:a[c]).apply(this,arguments);if(d===!1&&e&&e.stopPropagation){e.stopPropagation()}return d}},a)}a.listeners=a.listeners||{};for(b in c){insertGesture(b,c[b])}},removeChartListener:function(d){var a=this,c=a.getGestures(),b;function removeGesture(b){var c=a.listeners[b];if(c){d.removeElementListener(b,c);delete a.listeners[b]}}if(a.listeners){for(b in c){removeGesture(b)}}},lockEvents:function(){var b=this,d=b.getLocks(),a=Array.prototype.slice.call(arguments),c=a.length;while(c--){d[a[c]]=b}},unlockEvents:function(){var c=this.getLocks(),a=Array.prototype.slice.call(arguments),b=a.length;while(b--){delete c[a[b]]}},getLocks:function(){var a=this.getChart();return a.lockedEvents||(a.lockedEvents={})},doSync:function(){var a=this,b=a.getChart();if(a.syncTimer){Ext.undefer(a.syncTimer);a.syncTimer=null}if(a.stopAnimationBeforeSync){b.animationSuspendCount++}b.redraw();if(a.stopAnimationBeforeSync){b.animationSuspendCount--}a.syncThrottle=Date.now()+a.throttleGap},sync:function(){var a=this;if(a.throttleGap&&Ext.frameStartTime<a.syncThrottle){if(a.syncTimer){return}a.syncTimer=Ext.defer(function(){a.doSync()},a.throttleGap)}else {a.doSync()}},getItemId:function(){return this.getId()},isXType:function(a){return a==='interaction'},destroy:function(){var a=this;a.setChart(null);delete a.listeners;a.callParent()}},function(){if(Ext.os.is.Android4){this.prototype.throttleGap=40}});Ext.define('Ext.chart.MarkerHolder',{extend:'Ext.Mixin',requires:['Ext.chart.Markers'],mixinConfig:{id:'markerHolder',after:{constructor:'constructor',preRender:'preRender'},before:{destroy:'destroy'}},isMarkerHolder:!0,surfaceMatrix:null,inverseSurfaceMatrix:null,deprecated:{6:{methods:{getBoundMarker:{message:"Please use the 'getMarker' method instead.",fn:function(b){var a=this.boundMarkers[b];return a?[a]:a}}}}},constructor:function(){this.boundMarkers={};this.cleanRedraw=!1},bindMarker:function(c,a){var b=this,d=b.boundMarkers;if(a&&a.isMarkers){b.releaseMarker(c);d[c]=a;a.on('destroy',b.onMarkerDestroy,b)}},onMarkerDestroy:function(a){this.releaseMarker(a)},releaseMarker:function(a){var c=this.boundMarkers,b;if(a&&a.isMarkers){for(b in c){if(c[b]===a){delete c[b];break}}}else {b=a;a=c[b];delete c[b]}return a||null},getMarker:function(a){return this.boundMarkers[a]||null},preRender:function(h,j,i){var a=this,g=a.getId(),e=a.boundMarkers,b=a.getParent(),f,d,c;if(a.surfaceMatrix){c=a.surfaceMatrix.set(1,0,0,1,0,0)}else {c=a.surfaceMatrix=new Ext.draw.Matrix()}a.cleanRedraw=!a.attr.dirty;if(!a.cleanRedraw){for(f in e){d=e[f];if(d){d.clear(g)}}}while(b&&b.attr&&b.attr.matrix){c.prependMatrix(b.attr.matrix);b=b.getParent()}c.prependMatrix(b.matrix);a.surfaceMatrix=c;a.inverseSurfaceMatrix=c.inverse(a.inverseSurfaceMatrix)},putMarker:function(f,e,d,b,c){var a=this.boundMarkers[f];if(a){a.putMarkerFor(this.getId(),e,d,b,c)}},getMarkerBBox:function(d,c,b){var a=this.boundMarkers[d];if(a){return a.getMarkerBBoxFor(this.getId(),c,b)}},destroy:function(){var a=this.boundMarkers,c,b;for(c in a){b=a[c];b.destroy()}}});Ext.define('Ext.chart.axis.sprite.Axis',{extend:'Ext.draw.sprite.Sprite',alias:'sprite.axis',type:'axis',mixins:{markerHolder:'Ext.chart.MarkerHolder'},requires:['Ext.draw.sprite.Text'],inheritableStatics:{def:{processors:{grid:'bool',axisLine:'bool',minorTicks:'bool',minorTickSize:'number',majorTicks:'bool',majorTickSize:'number',length:'number',startGap:'number',endGap:'number',dataMin:'number',dataMax:'number',visibleMin:'number',visibleMax:'number',position:'enums(left,right,top,bottom,angular,radial,gauge)',minStepSize:'number',estStepSize:'number',titleOffset:'number',textPadding:'number',min:'number',max:'number',centerX:'number',centerY:'number',radius:'number',totalAngle:'number',baseRotation:'number',data:'default',enlargeEstStepSizeByText:'bool'},defaults:{grid:!1,axisLine:!0,minorTicks:!1,minorTickSize:3,majorTicks:!0,majorTickSize:5,length:0,startGap:0,endGap:0,visibleMin:0,visibleMax:1,dataMin:0,dataMax:1,position:'',minStepSize:0,estStepSize:20,min:0,max:1,centerX:0,centerY:0,radius:1,baseRotation:0,data:null,titleOffset:0,textPadding:0,scalingCenterY:0,scalingCenterX:0,strokeStyle:'black',enlargeEstStepSizeByText:!1},triggers:{minorTickSize:'bbox',majorTickSize:'bbox',position:'bbox,layout',axisLine:'bbox,layout',minorTicks:'layout',min:'layout',max:'layout',length:'layout',minStepSize:'layout',estStepSize:'layout',data:'layout',dataMin:'layout',dataMax:'layout',visibleMin:'layout',visibleMax:'layout',enlargeEstStepSizeByText:'layout'},updaters:{layout:'layoutUpdater'}}},config:{label:null,labelOffset:10,layout:null,segmenter:null,renderer:null,layoutContext:null,axis:null},thickness:0,stepSize:0,getBBox:function(){return null},defaultRenderer:function(a){return this.segmenter.renderer(a,this)},layoutUpdater:function(){var b=this,i=b.getAxis().getChart();if(i.isInitializing){return}var a=b.attr,h=b.getLayout(),j=i.getInherited().rtl,f=a.dataMax-a.dataMin,e=a.dataMin+f*a.visibleMin,k=a.dataMin+f*a.visibleMax,c=k-e,d=a.position,g={attr:a,segmenter:b.getSegmenter(),renderer:b.defaultRenderer};if(d==='left'||d==='right'){a.translationX=0;a.translationY=k*a.length/c;a.scalingX=1;a.scalingY=-a.length/c;a.scalingCenterY=0;a.scalingCenterX=0;b.applyTransformations(!0)}else if(d==='top'||d==='bottom'){if(j){a.translationX=a.length+e*a.length/c+1}else {a.translationX=-e*a.length/c}a.translationY=0;a.scalingX=(j?-1:1)*a.length/c;a.scalingY=1;a.scalingCenterY=0;a.scalingCenterX=0;b.applyTransformations(!0)}if(h){h.calculateLayout(g);b.setLayoutContext(g)}},iterate:function(a,c){var b,e,i,g,f,d,j=Ext.Array.some,k=Math.abs,h;if(a.getLabel){if(a.min<a.from){c.call(this,a.min,a.getLabel(a.min),-1,a)}for(b=0;b<=a.steps;b++){c.call(this,a.get(b),a.getLabel(b),b,a)}if(a.max>a.to){c.call(this,a.max,a.getLabel(a.max),a.steps+1,a)}}else {g=this.getAxis();f=g.floatingAxes;d=[];h=(a.to-a.from)/(a.steps+1);if(g.getFloating()){for(i in f){d.push(f[i])}}function isTickVisible(b){return !d.length||j(d,function(d){return k(d-b)>h})}if(a.min<a.from&&isTickVisible(a.min)){c.call(this,a.min,a.min,-1,a)}for(b=0;b<=a.steps;b++){e=a.get(b);if(isTickVisible(e)){c.call(this,e,e,b,a)}}if(a.max>a.to&&isTickVisible(a.max)){c.call(this,a.max,a.max,a.steps+1,a)}}},renderTicks:function(j,b,l,i){var c=this,a=c.attr,r=a.position,k=a.matrix,g=0.5*a.lineWidth,o=k.getXX(),m=k.getDX(),p=k.getYY(),n=k.getDY(),f=l.majorTicks,d=a.majorTickSize,e=l.minorTicks,h=a.minorTickSize;if(f){switch(r){case 'right':function getRightTickFn(a){return function(c,d,e){c=j.roundPixel(c*p+n)+g;b.moveTo(0,c);b.lineTo(a,c)}};c.iterate(f,getRightTickFn(d));e&&c.iterate(e,getRightTickFn(h));break;case 'left':function getLeftTickFn(a){return function(c,d,e){c=j.roundPixel(c*p+n)+g;b.moveTo(i[2]-a,c);b.lineTo(i[2],c)}};c.iterate(f,getLeftTickFn(d));e&&c.iterate(e,getLeftTickFn(h));break;case 'bottom':function getBottomTickFn(a){return function(c,d,e){c=j.roundPixel(c*o+m)-g;b.moveTo(c,0);b.lineTo(c,a)}};c.iterate(f,getBottomTickFn(d));e&&c.iterate(e,getBottomTickFn(h));break;case 'top':function getTopTickFn(a){return function(c,d,e){c=j.roundPixel(c*o+m)-g;b.moveTo(c,i[3]);b.lineTo(c,i[3]-a)}};c.iterate(f,getTopTickFn(d));e&&c.iterate(e,getTopTickFn(h));break;case 'angular':c.iterate(f,function(c,e,f){c=c/(a.max+1)*Math.PI*2+a.baseRotation;b.moveTo(a.centerX+(a.length)*Math.cos(c),a.centerY+(a.length)*Math.sin(c));b.lineTo(a.centerX+(a.length+d)*Math.cos(c),a.centerY+(a.length+d)*Math.sin(c))});break;case 'gauge':var q=c.getGaugeAngles();c.iterate(f,function(c,e,f){c=(c-a.min)/(a.max-a.min)*a.totalAngle-a.totalAngle+q.start;b.moveTo(a.centerX+(a.length)*Math.cos(c),a.centerY+(a.length)*Math.sin(c));b.lineTo(a.centerX+(a.length+d)*Math.cos(c),a.centerY+(a.length+d)*Math.sin(c))});break;}}},renderLabels:function(e,H,i,s){var h=this,a=h.attr,p=0.5*a.lineWidth,t=a.position,B=a.matrix,G=a.textPadding,J=B.getXX(),v=B.getDX(),K=B.getYY(),I=B.getDY(),r=0,x=i.majorTicks,k=Math.max(a.majorTickSize,a.minorTickSize)+a.lineWidth,z=Ext.draw.Draw.isBBoxIntersect,b=h.getLabel(),E,w=h.getLabelOffset(),f=null,o=0,u=0,A=i.segmenter,n=h.getRenderer(),l=h.getAxis(),D=l.getTitle(),m=D&&D.attr.text!==''&&D.getBBox(),C,g=null,c,y,d,j,q,F;if(x&&b&&!b.attr.hidden){E=b.attr.font;if(H.font!==E){H.font=E}b.setAttributes({translationX:0,translationY:0},!0);b.applyTransformations();C=b.attr.inverseMatrix.elements.slice(0);switch(t){case 'left':j=m?m.x+m.width:0;switch(b.attr.textAlign){case 'start':q=e.roundPixel(j+v)-p;break;case 'end':q=e.roundPixel(s[2]-k+v)-p;break;default:q=e.roundPixel(j+(s[2]-j-k)/2+v)-p;};b.setAttributes({translationX:q},!0);break;case 'right':j=m?s[2]-m.x:0;switch(b.attr.textAlign){case 'start':q=e.roundPixel(k+v)+p;break;case 'end':q=e.roundPixel(s[2]-j+v)+p;break;default:q=e.roundPixel(k+(s[2]-k-j)/2+v)+p;};b.setAttributes({translationX:q},!0);break;case 'top':j=m?m.y+m.height:0;b.setAttributes({translationY:e.roundPixel(j+(s[3]-j-k)/2)-p},!0);break;case 'bottom':j=m?s[3]-m.y:0;b.setAttributes({translationY:e.roundPixel(k+(s[3]-k-j)/2)+p},!0);break;case 'radial':b.setAttributes({translationX:a.centerX},!0);break;case 'angular':b.setAttributes({translationY:a.centerY},!0);break;case 'gauge':b.setAttributes({translationY:a.centerY},!0);break;}if(t==='left'||t==='right'){h.iterate(x,function(h,a,j){if(a===undefined){return}if(n){d=Ext.callback(n,null,[l,a,i,f],0,l)}else {d=A.renderer(a,i,f)}f=a;b.setAttributes({text:String(d),translationY:e.roundPixel(h*K+I)},!0);b.applyTransformations();r=Math.max(r,b.getBBox().width+k);y=Ext.draw.Matrix.fly(b.attr.matrix.elements.slice(0));c=y.prepend.apply(y,C).transformBBox(b.getBBox(!0));if(g&&!z(c,g,G)){return}e.renderSprite(b);g=c;o+=c.height;u++})}else if(t==='top'||t==='bottom'){h.iterate(x,function(h,a,j){if(a===undefined){return}if(n){d=Ext.callback(n,null,[l,a,i,f],0,l)}else {d=A.renderer(a,i,f)}f=a;b.setAttributes({text:String(d),translationX:e.roundPixel(h*J+v)},!0);b.applyTransformations();r=Math.max(r,b.getBBox().height+k);y=Ext.draw.Matrix.fly(b.attr.matrix.elements.slice(0));c=y.prepend.apply(y,C).transformBBox(b.getBBox(!0));if(g&&!z(c,g,G)){return}e.renderSprite(b);g=c;o+=c.width;u++})}else if(t==='radial'){h.iterate(x,function(j,h,k){if(h===undefined){return}if(n){d=Ext.callback(n,null,[l,h,i,f],0,l)}else {d=A.renderer(h,i,f)}f=h;if(typeof d!=='undefined'){b.setAttributes({text:String(d),translationX:a.centerX-e.roundPixel(j)/a.max*a.length*Math.cos(a.baseRotation+Math.PI/2),translationY:a.centerY-e.roundPixel(j)/a.max*a.length*Math.sin(a.baseRotation+Math.PI/2)},!0);b.applyTransformations();c=b.attr.matrix.transformBBox(b.getBBox(!0));if(g&&!z(c,g)){return}e.renderSprite(b);g=c;o+=c.width;u++}})}else if(t==='angular'){w+=a.majorTickSize+a.lineWidth*0.5;h.iterate(x,function(k,h,m){if(h===undefined){return}if(n){d=Ext.callback(n,null,[l,h,i,f],0,l)}else {d=A.renderer(h,i,f)}f=h;r=Math.max(r,Math.max(a.majorTickSize,a.minorTickSize)+(a.lineCap!=='butt'?a.lineWidth*0.5:0));if(typeof d!=='undefined'){var j=k/(a.max+1)*Math.PI*2+a.baseRotation;b.setAttributes({text:String(d),translationX:a.centerX+(a.length+w)*Math.cos(j),translationY:a.centerY+(a.length+w)*Math.sin(j)},!0);b.applyTransformations();c=b.attr.matrix.transformBBox(b.getBBox(!0));if(g&&!z(c,g)){return}e.renderSprite(b);g=c;o+=c.width;u++}})}else if(t==='gauge'){F=h.getGaugeAngles();w+=a.majorTickSize+a.lineWidth*0.5;h.iterate(x,function(k,h,m){if(h===undefined){return}if(n){d=Ext.callback(n,null,[l,h,i,f],0,l)}else {d=A.renderer(h,i,f)}f=h;if(typeof d!=='undefined'){var j=(k-a.min)/(a.max-a.min)*a.totalAngle-a.totalAngle+F.start;b.setAttributes({text:String(d),translationX:a.centerX+(a.length+w)*Math.cos(j),translationY:a.centerY+(a.length+w)*Math.sin(j)},!0);b.applyTransformations();c=b.attr.matrix.transformBBox(b.getBBox(!0));if(g&&!z(c,g)){return}e.renderSprite(b);g=c;o+=c.width;u++}})}if(a.enlargeEstStepSizeByText&&u){o/=u;o+=k;o*=2;if(a.estStepSize<o){a.estStepSize=o}}if(Math.abs(h.thickness-r)>1){h.thickness=r;a.bbox.plain.dirty=!0;a.bbox.transform.dirty=!0;h.doThicknessChanged();return !1}}},renderAxisLine:function(g,b,j,f){var h=this,a=h.attr,c=a.lineWidth*0.5,i=a.position,d,e;if(a.axisLine&&a.length){switch(i){case 'left':d=g.roundPixel(f[2])-c;b.moveTo(d,-a.endGap);b.lineTo(d,a.length+a.startGap+1);break;case 'right':b.moveTo(c,-a.endGap);b.lineTo(c,a.length+a.startGap+1);break;case 'bottom':b.moveTo(-a.startGap,c);b.lineTo(a.length+a.endGap,c);break;case 'top':d=g.roundPixel(f[3])-c;b.moveTo(-a.startGap,d);b.lineTo(a.length+a.endGap,d);break;case 'angular':b.moveTo(a.centerX+a.length,a.centerY);b.arc(a.centerX,a.centerY,a.length,0,Math.PI*2,!0);break;case 'gauge':e=h.getGaugeAngles();b.moveTo(a.centerX+Math.cos(e.start)*a.length,a.centerY+Math.sin(e.start)*a.length);b.arc(a.centerX,a.centerY,a.length,e.start,e.end,!0);break;}}},getGaugeAngles:function(){var c=this,b=c.attr.totalAngle,a;if(b<=Math.PI){a=(Math.PI-b)*0.5}else {a=-(Math.PI*2-b)*0.5}a=Math.PI*2-a;return {start:a,end:a-b}},renderGridLines:function(s,t,p,r){var c=this,q=c.getAxis(),b=c.attr,j=b.matrix,i=b.startGap,k=b.endGap,n=j.getXX(),o=j.getYY(),l=j.getDX(),m=j.getDY(),g=b.position,f=q.getGridAlignment(),h=p.majorTicks,a,e,d;if(b.grid){if(h){if(g==='left'||g==='right'){d=b.min*o+m+k+i;c.iterate(h,function(g,h,b){a=g*o+m+k;c.putMarker(f+'-'+(b%2?'odd':'even'),{y:a,height:d-a},e=b,!0);d=a});e++;a=0;c.putMarker(f+'-'+(e%2?'odd':'even'),{y:a,height:d-a},e,!0)}else if(g==='top'||g==='bottom'){d=b.min*n+l+i;if(i){c.putMarker(f+'-even',{x:0,width:d},-1,!0)}c.iterate(h,function(g,h,b){a=g*n+l+i;c.putMarker(f+'-'+(b%2?'odd':'even'),{x:a,width:d-a},e=b,!0);d=a});e++;a=b.length+b.startGap+b.endGap;c.putMarker(f+'-'+(e%2?'odd':'even'),{x:a,width:d-a},e,!0)}else if(g==='radial'){c.iterate(h,function(e,h,g){if(!e){return}a=e/b.max*b.length;c.putMarker(f+'-'+(g%2?'odd':'even'),{scalingX:a,scalingY:a},g,!0);d=a})}else if(g==='angular'){c.iterate(h,function(g,h,e){if(!b.length){return}a=g/(b.max+1)*Math.PI*2+b.baseRotation;c.putMarker(f+'-'+(e%2?'odd':'even'),{rotationRads:a,rotationCenterX:0,rotationCenterY:0,scalingX:b.length,scalingY:b.length},e,!0);d=a})}}}},renderLimits:function(u){var k=this,c=k.attr,g=k.getAxis(),i=Ext.Array.from(g.getLimits());if(!i.length||c.dataMin===c.dataMax){if(g.limits){g.limits.titles.attr.hidden=!0}return}var t=g.getChart(),s=t.getInnerPadding(),m=g.limits.surface.getRect(),o=c.matrix,h=c.position,p=Ext.Object.chain,d=g.limits.titles,f,l,n,a,b,e,j,q,r;d.attr.hidden=!1;d.instances=[];d.position=0;if(h==='left'||h==='right'){for(e=0,j=i.length;e<j;e++){a=p(i[e]);!a.line&&(a.line={});b=Ext.isString(a.value)?g.getCoordFor(a.value):a.value;b=b*o.getYY()+o.getDY();a.line.y=b+s.top;a.line.strokeStyle=a.line.strokeStyle||c.strokeStyle;k.putMarker('horizontal-limit-lines',a.line,e,!0);if(a.line.title){d.add(a.line.title);f=d.getBBoxFor(d.position-1);l=a.line.title.position||(h==='left'?'start':'end');switch(l){case 'start':q=10;break;case 'end':q=m[2]-10;break;case 'middle':q=m[2]/2;break;}d.setAttributesFor(d.position-1,{x:q,y:a.line.y-f.height/2,textAlign:l,fillStyle:a.line.title.fillStyle||a.line.strokeStyle})}}}else if(h==='top'||h==='bottom'){for(e=0,j=i.length;e<j;e++){a=p(i[e]);!a.line&&(a.line={});b=Ext.isString(a.value)?g.getCoordFor(a.value):a.value;b=b*o.getXX()+o.getDX();a.line.x=b+s.left;a.line.strokeStyle=a.line.strokeStyle||c.strokeStyle;k.putMarker('vertical-limit-lines',a.line,e,!0);if(a.line.title){d.add(a.line.title);f=d.getBBoxFor(d.position-1);l=a.line.title.position||(h==='top'?'end':'start');switch(l){case 'start':r=m[3]-f.width/2-10;break;case 'end':r=f.width/2+10;break;case 'middle':r=m[3]/2;break;}d.setAttributesFor(d.position-1,{x:a.line.x+f.height/2,y:r,fillStyle:a.line.title.fillStyle||a.line.strokeStyle,rotationRads:Math.PI/2})}}}else if(h==='radial'){for(e=0,j=i.length;e<j;e++){a=p(i[e]);!a.line&&(a.line={});b=Ext.isString(a.value)?g.getCoordFor(a.value):a.value;if(b>c.max){continue}b=b/c.max*c.length;a.line.cx=c.centerX;a.line.cy=c.centerY;a.line.scalingX=b;a.line.scalingY=b;a.line.strokeStyle=a.line.strokeStyle||c.strokeStyle;k.putMarker('circular-limit-lines',a.line,e,!0);if(a.line.title){d.add(a.line.title);f=d.getBBoxFor(d.position-1);d.setAttributesFor(d.position-1,{x:c.centerX,y:c.centerY-b-f.height/2,fillStyle:a.line.title.fillStyle||a.line.strokeStyle})}}}else if(h==='angular'){for(e=0,j=i.length;e<j;e++){a=p(i[e]);!a.line&&(a.line={});b=Ext.isString(a.value)?g.getCoordFor(a.value):a.value;b=b/(c.max+1)*Math.PI*2+c.baseRotation;a.line.translationX=c.centerX;a.line.translationY=c.centerY;a.line.rotationRads=b;a.line.rotationCenterX=0;a.line.rotationCenterY=0;a.line.scalingX=c.length;a.line.scalingY=c.length;a.line.strokeStyle=a.line.strokeStyle||c.strokeStyle;k.putMarker('radial-limit-lines',a.line,e,!0);if(a.line.title){d.add(a.line.title);f=d.getBBoxFor(d.position-1);n=((b>-0.5*Math.PI&&b<0.5*Math.PI)||(b>1.5*Math.PI&&b<2*Math.PI))?1:-1;d.setAttributesFor(d.position-1,{x:c.centerX+0.5*c.length*Math.cos(b)+n*f.height/2*Math.sin(b),y:c.centerY+0.5*c.length*Math.sin(b)-n*f.height/2*Math.cos(b),rotationRads:n===1?b:b-Math.PI,fillStyle:a.line.title.fillStyle||a.line.strokeStyle})}}}else if(h==='gauge'){}},doThicknessChanged:function(){var a=this.getAxis();if(a){a.onThicknessChanged()}},render:function(e,a,d){var b=this,c=b.getLayoutContext();if(c){if(!1===b.renderLabels(e,a,c,d)){return !1}a.beginPath();b.renderTicks(e,a,c,d);b.renderAxisLine(e,a,c,d);b.renderGridLines(e,a,c,d);b.renderLimits(d);a.stroke()}}});Ext.define('Ext.chart.axis.segmenter.Segmenter',{config:{axis:null},constructor:function(a){this.initConfig(a)},renderer:function(a,b){return String(a)},from:function(a){return a},diff:Ext.emptyFn,align:Ext.emptyFn,add:Ext.emptyFn,preferredStep:Ext.emptyFn});Ext.define('Ext.chart.axis.segmenter.Names',{extend:'Ext.chart.axis.segmenter.Segmenter',alias:'segmenter.names',renderer:function(a,b){return a},diff:function(b,a,c){return Math.floor(a-b)},align:function(a,b,c){return Math.floor(a)},add:function(a,b,c){return a+b},preferredStep:function(d,a,b,c){return {unit:1,step:1}}});Ext.define('Ext.chart.axis.segmenter.Numeric',{extend:'Ext.chart.axis.segmenter.Segmenter',alias:'segmenter.numeric',isNumeric:!0,renderer:function(b,a){return b.toFixed(Math.max(0,a.majorTicks.unit.fixes))},diff:function(c,b,a){return Math.floor((b-c)/a.scale)},align:function(b,c,d){var a=d.scale*c;return Math.floor(b/a)*a},add:function(a,b,c){return a+b*c.scale},preferredStep:function(d,a){var b=Math.floor(Math.log(a)*Math.LOG10E),c=Math.pow(10,b);a/=c;if(a<2){a=2}else if(a<5){a=5}else if(a<10){a=10;b++}return {unit:{fixes:-b,scale:c},step:a}},leadingZeros:function(a){return -Math.floor(Ext.Number.log10(Math.abs(a)))},exactStep:function(d,a){var b=this.leadingZeros(a),c=Math.pow(10,b);return {unit:{fixes:b+(a%c===0?0:1),scale:a<1?a:1},step:a<1?1:a}},adjustByMajorUnit:function(h,g,d){var f=d[0],e=d[1],b=h*g,c,a;a=Math.max(1/(f||1),1/(b||1));a=a>1?a:1;c=((f*a)%(b*a))/a;if(c!==0){d[0]=f-c+(f<0?-b:0)}a=Math.max(1/(e||1),1/(b||1));a=a>1?a:1;c=((e*a)%(b*a))/a;if(c!==0){d[1]=e-c+(e>0?b:0)}}});Ext.define('Ext.chart.axis.segmenter.Time',{extend:'Ext.chart.axis.segmenter.Segmenter',alias:'segmenter.time',config:{step:null},renderer:function(b,c){var a=Ext.Date;switch(c.majorTicks.unit){case 'y':return a.format(b,'Y');case 'mo':return a.format(b,'Y-m');case 'd':return a.format(b,'Y-m-d');}return a.format(b,'Y-m-d\nH:i:s')},from:function(a){return new Date(a)},diff:function(b,a,c){if(isFinite(b)){b=new Date(b)}if(isFinite(a)){a=new Date(a)}return Ext.Date.diff(b,a,c)},updateStep:function(){var a=this.getAxis();if(a&&!this.isConfiguring){a.performLayout()}},align:function(a,b,c){if(c==='d'&&b>=7){a=Ext.Date.align(a,'d',b);a.setDate(a.getDate()-a.getDay()+1);return a}else {return Ext.Date.align(a,c,b)}},add:function(a,b,c){return Ext.Date.add(new Date(a),c,b)},timeBuckets:[{unit:Ext.Date.YEAR,steps:[1,2,5,10,20,50,100,200,500]},{unit:Ext.Date.MONTH,steps:[1,3,6]},{unit:Ext.Date.DAY,steps:[1,7,14]},{unit:Ext.Date.HOUR,steps:[1,6,12]},{unit:Ext.Date.MINUTE,steps:[1,5,15,30]},{unit:Ext.Date.SECOND,steps:[1,5,15,30]},{unit:Ext.Date.MILLI,steps:[1,2,5,10,20,50,100,200,500]}],getTimeBucket:function(j,i){var e=this.timeBuckets,h,d,f,g,b,a,c;for(a=0;a<e.length;a++){h=e[a].unit;d=this.diff(j,i,h);if(d>0){f=e[a].steps;for(c=0;c<f.length;c++){g=f[c];if(d<=g){break}}b={unit:h,step:g};break}}if(!b){b={unit:Ext.Date.MILLI,step:1}}return b},preferredStep:function(b,c){var a=this.getStep();return a?a:this.getTimeBucket(new Date(+b),new Date(+b+Math.ceil(c)))}});Ext.define('Ext.chart.axis.layout.Layout',{mixins:{observable:'Ext.mixin.Observable'},config:{axis:null},constructor:function(a){this.mixins.observable.constructor.call(this,a)},processData:function(d){var g=this,e=g.getAxis(),c=e.getDirection(),b=e.boundSeries,a,f;if(d){d['coordinate'+c]()}else {for(a=0,f=b.length;a<f;a++){b[a]['coordinate'+c]()}}},calculateMajorTicks:function(b){var e=this,a=b.attr,d=a.max-a.min,i=d/Math.max(1,a.length)*(a.visibleMax-a.visibleMin),h=a.min+d*a.visibleMin,g=a.min+d*a.visibleMax,f=a.estStepSize*i,c=e.snapEnds(b,a.min,a.max,f);if(c){e.trimByRange(b,c,h,g);b.majorTicks=c}},calculateMinorTicks:function(a){if(this.snapMinorEnds){a.minorTicks=this.snapMinorEnds(a)}},calculateLayout:function(a){var c=this,b=a.attr;if(b.length===0){return null}if(b.majorTicks){c.calculateMajorTicks(a);if(b.minorTicks){c.calculateMinorTicks(a)}}},snapEnds:Ext.emptyFn,trimByRange:function(i,a,d,g){var b=i.segmenter,c=a.unit,h=b.diff(a.from,d,c),j=b.diff(a.from,g,c),e=Math.max(0,Math.ceil(h/a.step)),f=Math.min(a.steps,Math.floor(j/a.step));if(f<a.steps){a.to=b.add(a.from,f*a.step,c)}if(a.max>g){a.max=a.to}if(a.from<d){a.from=b.add(a.from,e*a.step,c);while(a.from<d){e++;a.from=b.add(a.from,a.step,c)}}if(a.min<d){a.min=a.from}a.steps=f-e}});Ext.define('Ext.chart.axis.layout.Discrete',{extend:'Ext.chart.axis.layout.Layout',alias:'axisLayout.discrete',isDiscrete:!0,processData:function(){var a=this,b=a.getAxis(),e=b.boundSeries,f=b.getDirection(),c,g,d;a.labels=[];a.labelMap={};for(c=0,g=e.length;c<g;c++){d=e[c];if(d['get'+f+'Axis']()===b){d['coordinate'+f]()}}b.getSprites()[0].setAttributes({data:a.labels});a.fireEvent('datachange',a.labels)},calculateLayout:function(a){a.data=this.labels;this.callParent([a])},calculateMajorTicks:function(b){var e=this,a=b.attr,h=b.data,d=a.max-a.min,g=a.min+d*a.visibleMin,f=a.min+d*a.visibleMax,c;c=e.snapEnds(b,Math.max(0,a.min),Math.min(a.max,h.length-1),1);if(c){e.trimByRange(b,c,g,f);b.majorTicks=c}},snapEnds:function(e,b,d,a){a=Math.ceil(a);var c=Math.floor((d-b)/a),f=e.data;return {min:b,max:d,from:b,to:c*a+b,step:a,steps:c,unit:1,getLabel:function(c){return f[this.from+this.step*c]},get:function(c){return this.from+this.step*c}}},trimByRange:function(i,a,c,f){var b=a.unit,g=Math.ceil((c-a.from)/b)*b,h=Math.floor((f-a.from)/b)*b,d=Math.max(0,Math.ceil(g/a.step)),e=Math.min(a.steps,Math.floor(h/a.step));if(e<a.steps){a.to=e}if(a.max>f){a.max=a.to}if(a.from<c&&a.step>0){a.from=a.from+d*a.step*b;while(a.from<c){d++;a.from+=a.step*b}}if(a.min<c){a.min=a.from}a.steps=e-d},getCoordFor:function(a,b,d,c){this.labels.push(a);return this.labels.length-1}});Ext.define('Ext.chart.axis.layout.CombineByIndex',{extend:'Ext.chart.axis.layout.Discrete',alias:'axisLayout.combineByIndex',getCoordFor:function(c,e,d,f){var a=this.labels,b=d;if(a[d]!==c){b=a.push(c)-1}return b}});Ext.define('Ext.chart.axis.layout.CombineDuplicate',{extend:'Ext.chart.axis.layout.Discrete',alias:'axisLayout.combineDuplicate',getCoordFor:function(a,c,e,d){if(!(a in this.labelMap)){var b=this.labelMap[a]=this.labels.length;this.labels.push(a);return b}return this.labelMap[a]}});Ext.define('Ext.chart.axis.layout.Continuous',{extend:'Ext.chart.axis.layout.Layout',alias:'axisLayout.continuous',isContinuous:!0,config:{adjustMinimumByMajorUnit:!1,adjustMaximumByMajorUnit:!1},getCoordFor:function(a,b,d,c){return +a},snapEnds:function(n,b,f,l){var a=n.segmenter,j=this.getAxis(),m=!j.spriteAnimationCount,d=j.getMajorTickSteps(),h=d&&a.exactStep?a.exactStep(b,(f-b)/d):a.preferredStep(b,l),c=h.unit,k=h.step,g=a.diff(b,f,c),i=(d||g)+1,e;if(d||(m&&+a.add(b,g,c)===f)){e=b}else {e=a.align(b,k,c)}return {min:a.from(b),max:a.from(f),from:e,to:a.add(e,i,c),step:k,steps:i,unit:c,get:function(c){return a.add(this.from,this.step*c,this.unit)}}},snapMinorEnds:function(i){var a=i.majorTicks,c=this.getAxis().getMinorTickSteps(),h=i.segmenter,f=a.min,m=a.max,l=a.from,b=a.unit,e=a.step/c,d=e*b.scale,g=l-f,j=Math.floor(g/d),n=j+Math.floor((m-a.to)/d)+1,k=a.steps*c+n;return {min:f,max:m,from:f+g%d,to:h.add(l,k*e,b),step:e,steps:k,unit:b,get:function(a){return (a%c+j+1!==0)?h.add(this.from,this.step*a,b):null}}}});Ext.define('Ext.chart.axis.Axis',{xtype:'axis',mixins:{observable:'Ext.mixin.Observable'},requires:['Ext.chart.axis.sprite.Axis','Ext.chart.axis.segmenter.*','Ext.chart.axis.layout.*','Ext.chart.Util'],isAxis:!0,config:{position:'bottom',fields:[],label:undefined,grid:!1,limits:null,renderer:null,chart:null,style:null,margin:0,titleMargin:4,background:null,minimum:NaN,maximum:NaN,reconcileRange:!1,minZoom:1,maxZoom:10000,layout:'continuous',segmenter:'numeric',hidden:!1,majorTickSteps:0,minorTickSteps:0,adjustByMajorUnit:!0,title:null,expandRangeBy:0,length:0,center:null,radius:null,totalAngle:Math.PI,rotation:null,visibleRange:[0,1],needHighPrecision:!1,linkedTo:null,floating:null},titleOffset:0,spriteAnimationCount:0,boundSeries:[],sprites:null,surface:null,range:null,defaultRange:[0,1],rangePadding:0.5,xValues:[],yValues:[],masterAxis:null,applyRotation:function(b){var a=Math.PI*2;return (b%a+Math.PI)%a-Math.PI},updateRotation:function(c){var a=this.getSprites(),b=this.getPosition();if(!this.getHidden()&&b==='angular'&&a[0]){a[0].setAttributes({baseRotation:c})}},applyTitle:function(b,a){var c;if(Ext.isString(b)){b={text:b}}if(!a){a=Ext.create('sprite.text',b);if((c=this.getSurface())){c.add(a)}}else {a.setAttributes(b)}return a},getAdjustByMajorUnit:function(){return !this.getHidden()&&this.callParent()},applyFloating:function(a,b){if(a===null){a={value:null,alongAxis:null}}else if(Ext.isNumber(a)){a={value:a,alongAxis:null}}if(Ext.isObject(a)){if(b&&b.alongAxis){delete this.getChart().getAxis(b.alongAxis).floatingAxes[this.getId()]}return a}return b},constructor:function(b){var a=this,c;a.sprites=[];a.labels=[];a.floatingAxes={};b=b||{};if(b.position==='angular'){b.style=b.style||{};b.style.estStepSize=1}if('id' in b){c=b.id}else if('id' in a.config){c=a.config.id}else {c=a.getId()}a.setId(c);a.mixins.observable.constructor.apply(a,arguments)},getAlignment:function(){switch(this.getPosition()){case 'left':case 'right':return 'vertical';case 'top':case 'bottom':return 'horizontal';case 'radial':return 'radial';case 'angular':return 'angular';}},getGridAlignment:function(){switch(this.getPosition()){case 'left':case 'right':return 'horizontal';case 'top':case 'bottom':return 'vertical';case 'radial':return 'circular';case 'angular':return 'radial';}},getSurface:function(){var a=this,b=a.getChart();if(b&&!a.surface){var d=a.surface=b.getSurface(a.getId(),'axis'),c=a.gridSurface=b.getSurface('main');c.waitFor(d);a.getGrid();a.createLimits()}return a.surface},createLimits:function(){var b=this,e=b.getChart(),d=b.getSprites()[0],c=b.getGridAlignment(),a;if(b.getLimits()&&c){c=c.replace('3d','');b.limits=a={surface:e.getSurface('overlay'),lines:new Ext.chart.Markers(),titles:new Ext.draw.sprite.Instancing()};a.lines.setTemplate({xclass:'grid.'+c});a.lines.getTemplate().setAttributes({strokeStyle:'black'},!0);a.surface.add(a.lines);d.bindMarker(c+'-limit-lines',b.limits.lines);b.limitTitleTpl=new Ext.draw.sprite.Text();a.titles.setTemplate(b.limitTitleTpl);a.surface.add(a.titles)}},applyGrid:function(a){if(a===!0){return {}}return a},updateGrid:function(c){var b=this,g=b.getChart();if(!g){b.on({chartattached:Ext.bind(b.updateGrid,b,[c]),single:!0});return}var e=b.gridSurface,f=b.getSprites()[0],d=b.getGridAlignment(),a;if(c){a=b.gridSpriteEven;if(!a){a=b.gridSpriteEven=new Ext.chart.Markers();a.setTemplate({xclass:'grid.'+d});e.add(a);f.bindMarker(d+'-even',a)}if(Ext.isObject(c)){a.getTemplate().setAttributes(c);if(Ext.isObject(c.even)){a.getTemplate().setAttributes(c.even)}}a=b.gridSpriteOdd;if(!a){a=b.gridSpriteOdd=new Ext.chart.Markers();a.setTemplate({xclass:'grid.'+d});e.add(a);f.bindMarker(d+'-odd',a)}if(Ext.isObject(c)){a.getTemplate().setAttributes(c);if(Ext.isObject(c.odd)){a.getTemplate().setAttributes(c.odd)}}}},updateMinorTickSteps:function(e){var b=this,d=b.getSprites(),c=d&&d[0],a;if(c){c.setAttributes({minorTicks:!!e});a=b.getSurface();if(!b.isConfiguring&&a){a.renderFrame()}}},getCoordFor:function(c,a,d,b){return this.getLayout().getCoordFor(c,a,d,b)},applyPosition:function(a){return a.toLowerCase()},applyLength:function(a,b){return a>0?a:b},applyLabel:function(b,a){if(!a){a=new Ext.draw.sprite.Text({})}if(b){if(this.limitTitleTpl){this.limitTitleTpl.setAttributes(b)}a.setAttributes(b)}return a},applyLayout:function(a,b){a=Ext.factory(a,null,b,'axisLayout');a.setAxis(this);return a},applySegmenter:function(a,b){a=Ext.factory(a,null,b,'segmenter');a.setAxis(this);return a},updateMinimum:function(){this.range=null},updateMaximum:function(){this.range=null},hideLabels:function(){this.getSprites()[0].setDirty(!0);this.setLabel({hidden:!0})},showLabels:function(){this.getSprites()[0].setDirty(!0);this.setLabel({hidden:!1})},renderFrame:function(){this.getSurface().renderFrame()},updateChart:function(b,c){var a=this,d;if(c){c.unregister(a);c.un('serieschange',a.onSeriesChange,a);a.linkAxis();a.fireEvent('chartdetached',c,a)}if(b){b.on('serieschange',a.onSeriesChange,a);a.surface=null;d=a.getSurface();a.getLabel().setSurface(d);d.add(a.getSprites());d.add(a.getTitle());b.register(a);a.fireEvent('chartattached',b,a)}},applyBackground:function(a){var b=Ext.ClassManager.getByAlias('sprite.rect');return b.def.normalize(a)},processData:function(){this.getLayout().processData();this.range=null},getDirection:function(){return this.getChart().getDirectionForAxis(this.getPosition())},isSide:function(){var a=this.getPosition();return a==='left'||a==='right'},applyFields:function(a){return Ext.Array.from(a)},applyVisibleRange:function(a,b){this.getChart();if(a[0]>a[1]){var c=a[0];a[0]=a[1];a[0]=c}if(a[1]===a[0]){a[1]+=1/this.getMaxZoom()}if(a[1]>a[0]+1){a[0]=0;a[1]=1}else if(a[0]<0){a[1]-=a[0];a[0]=0}else if(a[1]>1){a[0]-=a[1]-1;a[1]=1}if(b&&a[0]===b[0]&&a[1]===b[1]){return undefined}return a},updateVisibleRange:function(a){this.fireEvent('visiblerangechange',this,a)},onSeriesChange:function(h){var a=this,c=h.getSeries(),g=[],e,d,f,b,i;if(c){f='get'+a.getDirection()+'Axis';for(b=0,i=c.length;b<i;b++){if(this===c[b][f]()){g.push(c[b])}}}a.boundSeries=g;e=a.getLinkedTo();d=!Ext.isEmpty(e)&&h.getAxis(e);if(d){a.linkAxis(d)}else {a.getLayout().processData()}},linkAxis:function(b){var a=this;function link(a,d,c){c.getLayout()[a]('datachange','onDataChange',d);c[a]('rangechange','onMasterAxisRangeChange',d)}if(a.masterAxis){if(!a.masterAxis.destroyed){link('un',a,a.masterAxis)}a.masterAxis=null}if(b){if(b.type!==this.type){Ext.Error.raise("Linked axes must be of the same type.")}link('on',a,b);a.onDataChange(b.getLayout().labels);a.onMasterAxisRangeChange(b,b.range);a.setStyle(Ext.apply({},a.config.style,b.config.style));a.setTitle(Ext.apply({},a.config.title,b.config.title));a.setLabel(Ext.apply({},a.config.label,b.config.label));a.masterAxis=b}},onDataChange:function(a){this.getLayout().labels=a},onMasterAxisRangeChange:function(b,a){this.range=a},applyRange:function(a){if(!a){return this.dataRange.slice(0)}else {return [a[0]===null?this.dataRange[0]:a[0],a[1]===null?this.dataRange[1]:a[1]]}},setBoundSeriesRange:function(h){var e=this.boundSeries,f={},d,a,c,b,g;f['range'+this.getDirection()]=h;for(a=0,g=e.length;a<g;a++){d=e[a];if(d.getHidden()===!0){continue}c=d.getSprites();for(b=0;b<c.length;b++){c[b].setAttributes(f)}}},getRange:function(f){var b=this,a=f?null:b.range,c=b.oldRange,e,d;if(!a){if(b.masterAxis){a=b.masterAxis.range}else {e=b.getMinimum();d=b.getMaximum();if(Ext.isNumber(e)&&Ext.isNumber(d)){a=[e,d]}else {a=b.calculateRange()}b.range=a}}if(a&&(!c||a[0]!==c[0]||a[1]!==c[1])){b.fireEvent('rangechange',b,a,c);b.oldRange=a}return a},isSingleDataPoint:function(a){return (a[0]+this.rangePadding)===0&&(a[1]-this.rangePadding)===0},calculateRange:function(){var b=this,l=b.boundSeries,o=b.getLayout(),f=b.getSegmenter(),n=b.getMinimum(),m=b.getMaximum(),k=b.getVisibleRange(),q='get'+b.getDirection()+'Range',h=b.getExpandRangeBy(),e,c,d,j,g,p,i,a=[NaN,NaN];for(g=0,p=l.length;g<p;g++){j=l[g];if(j.getHidden()===!0){continue}i=j[q]();if(i){Ext.chart.Util.expandRange(a,i)}}a=Ext.chart.Util.validateRange(a,b.defaultRange,b.rangePadding);if(h&&(!b.isSingleDataPoint(a))){a[0]-=h;a[1]+=h}if(isFinite(n)){a[0]=n}if(isFinite(m)){a[1]=m}a[0]=Ext.Number.correctFloat(a[0]);a[1]=Ext.Number.correctFloat(a[1]);b.range=a;if(b.getReconcileRange()){b.reconcileRange()}if(a[0]!==a[1]&&b.getAdjustByMajorUnit()&&f.adjustByMajorUnit&&!b.getMajorTickSteps()){c=Ext.Object.chain(b.getSprites()[0].attr);c.min=a[0];c.max=a[1];c.visibleMin=k[0];c.visibleMax=k[1];e={attr:c,segmenter:f};o.calculateLayout(e);d=e.majorTicks;if(d){f.adjustByMajorUnit(d.step,d.unit.scale,a);c.min=a[0];c.max=a[1];e.majorTicks=null;o.calculateLayout(e);d=e.majorTicks;f.adjustByMajorUnit(d.step,d.unit.scale,a)}else if(!b.hasClearRangePending){b.hasClearRangePending=!0;b.getChart().on('layout','clearRange',b)}}return a},clearRange:function(){this.hasClearRangePending=null;this.range=null},reconcileRange:function(){var a=this,e=a.getChart().getAxes(),g=a.getDirection(),d,f,c,b;if(!e){return}for(d=0,f=e.length;d<f;d++){c=e[d];b=c.getRange();if(c===a||c.getDirection()!==g||!b||!c.getReconcileRange()){continue}if(b[0]<a.range[0]){a.range[0]=b[0]}if(b[1]>a.range[1]){a.range[1]=b[1]}}},applyStyle:function(b,a){var c=Ext.ClassManager.getByAlias('sprite.'+this.seriesType);if(c&&c.def){b=c.def.normalize(b)}a=Ext.apply(a||{},b);return a},themeOnlyIfConfigured:{grid:!0},updateTheme:function(p){var c=this,d=p.getAxis(),n=c.getPosition(),m=c.getInitialConfig(),l=c.defaultConfig,o=c.self.getConfigurator().configs,k=d.defaults,j=d[n],i=c.themeOnlyIfConfigured,b,a,g,e,f,h;d=Ext.merge({},k,j);for(b in d){a=d[b];h=o[b];if(a!==null&&a!==undefined&&h){f=m[b];g=Ext.isObject(a);e=f===l[b];if(g){if(e&&i[b]){continue}a=Ext.merge({},a,f)}if(e||g){c[h.names.set](a)}}}},updateCenter:function(e){var c=this,f=c.getSprites(),d=f[0],a=e[0],b=e[1];if(d){d.setAttributes({centerX:a,centerY:b})}if(c.gridSpriteEven){c.gridSpriteEven.getTemplate().setAttributes({translationX:a,translationY:b,rotationCenterX:a,rotationCenterY:b})}if(c.gridSpriteOdd){c.gridSpriteOdd.getTemplate().setAttributes({translationX:a,translationY:b,rotationCenterX:a,rotationCenterY:b})}},getSprites:function(){if(!this.getChart()){return}var a=this,g=a.getRange(),h=a.getPosition(),j=a.getChart(),f=j.getAnimation(),i=a.getLength(),e=a.superclass,b,c,d;if(f===!1){f={duration:0}}c=Ext.applyIf({position:h,axis:a,length:i,grid:a.getGrid(),hidden:a.getHidden(),titleOffset:a.titleOffset,layout:a.getLayout(),segmenter:a.getSegmenter(),totalAngle:a.getTotalAngle(),label:a.getLabel()},a.getStyle());if(g){c.min=g[0];c.max=g[1]}if(!a.sprites.length){while(!e.xtype){e=e.superclass}b=Ext.create('sprite.'+e.xtype,c);d=b.getAnimation();d.setCustomDurations({baseRotation:0});d.on('animationstart','onAnimationStart',a);d.on('animationend','onAnimationEnd',a);b.setLayout(a.getLayout());b.setSegmenter(a.getSegmenter());b.setLabel(a.getLabel());a.sprites.push(b);a.updateTitleSprite()}else {b=a.sprites[0];b.setAnimation(f);b.setAttributes(c)}if(a.getRenderer()){b.setRenderer(a.getRenderer())}return a.sprites},performLayout:function(){if(this.isConfiguring){return}var a=this,b=a.getSprites(),e=a.getSurface(),d=a.getChart(),c=b&&b[0];if(d&&e&&c){c.callUpdater(null,'layout');d.scheduleLayout()}},updateTitleSprite:function(){var b=this,g=b.getLength();if(!b.sprites[0]||!Ext.isNumber(g)){return}var f=this.sprites[0].thickness,i=b.getSurface(),a=b.getTitle(),h=b.getPosition(),e=b.getMargin(),c=b.getTitleMargin(),d=i.roundPixel(g/2);if(a){switch(h){case 'top':a.setAttributes({x:d,y:e+c/2,textBaseline:'top',textAlign:'center'},!0);a.applyTransformations();b.titleOffset=a.getBBox().height+c;break;case 'bottom':a.setAttributes({x:d,y:f+c/2,textBaseline:'top',textAlign:'center'},!0);a.applyTransformations();b.titleOffset=a.getBBox().height+c;break;case 'left':a.setAttributes({x:e+c/2,y:d,textBaseline:'top',textAlign:'center',rotationCenterX:e+c/2,rotationCenterY:d,rotationRads:-Math.PI/2},!0);a.applyTransformations();b.titleOffset=a.getBBox().width+c;break;case 'right':a.setAttributes({x:f-e+c/2,y:d,textBaseline:'bottom',textAlign:'center',rotationCenterX:f+c/2,rotationCenterY:d,rotationRads:Math.PI/2},!0);a.applyTransformations();b.titleOffset=a.getBBox().width+c;break;}}},onThicknessChanged:function(){this.getChart().onThicknessChanged()},getThickness:function(){if(this.getHidden()){return 0}return (this.sprites[0]&&this.sprites[0].thickness||1)+this.titleOffset+this.getMargin()},onAnimationStart:function(){this.spriteAnimationCount++;if(this.spriteAnimationCount===1){this.fireEvent('animationstart',this)}},onAnimationEnd:function(){this.spriteAnimationCount--;if(this.spriteAnimationCount===0){this.fireEvent('animationend',this)}},getItemId:function(){return this.getId()},getAncestorIds:function(){return [this.getChart().getId()]},isXType:function(a){return a==='axis'},resolveListenerScope:function(d){var c=this,e=Ext._namedScopes[d],a=c.getChart(),b;if(!e){b=a?a.resolveListenerScope(d,!1):(d||c)}else if(e.isThis){b=c}else if(e.isController){b=a?a.resolveListenerScope(d,!1):c}else if(e.isSelf){b=a?a.resolveListenerScope(d,!1):c;if(b===a&&!a.getInheritedConfig('defaultListenerScope')){b=c}}return b},destroy:function(){var a=this;a.setChart(null);a.surface.destroy();a.surface=null;a.callParent()}});Ext.define('Ext.chart.legend.LegendBase',{extend:'Ext.dataview.DataView',config:{itemTpl:['<span class="',Ext.baseCSSPrefix,'legend-item-marker {[ values.disabled ? Ext.baseCSSPrefix + \'legend-item-inactive\' : \'\' ]}" style="background:{mark};"></span>{name}'],inline:!0,scrollable:!1},constructor:function(b){this.callParent([b]);var a=this.getScrollable(),c=a.onDrag;a.onDrag=function(a){a.stopPropagation();c.call(this,a)}},updateDocked:function(c,d){var a=this,b=a.el;a.callParent([c,d]);switch(c){case 'top':case 'bottom':b.addCls(a.horizontalCls);b.removeCls(a.verticalCls);break;case 'left':case 'right':b.addCls(a.verticalCls);b.removeCls(a.horizontalCls);break;}},onChildTap:function(b,a){this.callParent([b,a]);this.toggleItem(a.viewIndex)}});Ext.define('Ext.chart.legend.Legend',{extend:'Ext.chart.legend.LegendBase',alternateClassName:'Ext.chart.Legend',xtype:'legend',alias:'legend.dom',type:'dom',isLegend:!0,isDomLegend:!0,config:{rect:null,toggleable:!0},baseCls:Ext.baseCSSPrefix+'legend',horizontalCls:Ext.baseCSSPrefix+'legend-horizontal',verticalCls:Ext.baseCSSPrefix+'legend-vertical',toggleItem:function(h){if(!this.getToggleable()){return}var b=this.getStore(),f=0,d,g=!0,c,e,a;if(b){e=b.getCount();for(c=0;c<e;c++){a=b.getAt(c);if(a.get('disabled')){f++}}g=e-f>1;a=b.getAt(h);if(a){d=a.get('disabled');if(d||g){a.set('disabled',!d)}}}},onResize:function(f,e,d,c){var b=this,a=b.chart;if(!b.isConfiguring){if(a){a.scheduleLayout()}}}});Ext.define('Ext.chart.legend.sprite.Item',{extend:'Ext.draw.sprite.Composite',alias:'sprite.legenditem',type:'legenditem',isLegendItem:!0,requires:['Ext.draw.sprite.Text','Ext.draw.sprite.Circle'],inheritableStatics:{def:{processors:{enabled:'limited01',markerLabelGap:'number'},animationProcessors:{enabled:null,markerLabelGap:null},defaults:{enabled:!0,markerLabelGap:5},triggers:{enabled:'enabled',markerLabelGap:'layout'},updaters:{layout:'layoutUpdater',enabled:'enabledUpdater'}}},config:{label:{$value:{type:'text'},lazy:!0},marker:{$value:{type:'circle'},lazy:!0},legend:null,store:null,record:null,series:null},applyLabel:function(a,b){var c;if(a){if(a.isSprite&&a.type==='text'){c=a}else {if(b&&a.type===b.type){b.setConfig(a);c=b;this.scheduleUpdater(this.attr,'layout')}else {c=new Ext.draw.sprite.Text(a)}}}return c},defaultMarkerSize:10,updateLabel:function(b,c){var a=this;a.removeSprite(c);b.setAttributes({textBaseline:'middle'});a.addSprite(b);a.scheduleUpdater(a.attr,'layout')},applyMarker:function(a){var b;if(a){if(a.isSprite){b=a}else {b=this.createMarker(a)}}b=this.resetMarker(b,a);return b},createMarker:function(a){var b;delete a.animation;if(a.type==='image'){delete a.width;delete a.height}b=Ext.create('sprite.'+a.type,a);return b},resetMarker:function(a,e){var d=e.size||this.defaultMarkerSize,c,f,b;a.setTransform([1,0,0,1,0,0],!0);if(e.type==='image'){a.setAttributes({width:d,height:d})}else {c=a.getBBox();f=Math.max(c.width,c.height);b=d/f;a.setAttributes({scalingX:b,scalingY:b})}return a},updateMarker:function(c,b){var a=this;a.removeSprite(b);a.addSprite(c);a.scheduleUpdater(a.attr,'layout')},updateSurface:function(b,c){var a=this;a.callParent([b,c]);if(b){a.scheduleUpdater(a.attr,'layout')}},enabledUpdater:function(b){var a=this.getMarker();if(a){a.setAttributes({globalAlpha:b.enabled?1:0.3})}},layoutUpdater:function(){var c=this,g=c.attr,f=c.getLabel(),e=c.getMarker(),b,a,d;a=e.getBBox();b=f.getBBox();d=Math.max(a.height,b.height);e.transform([1,0,0,1,-a.x,-a.y+(d-a.height)/2],!0);f.transform([1,0,0,1,-b.x+a.width+g.markerLabelGap,-b.y+(d-b.height)/2],!0);c.bboxUpdater(g)}});Ext.define('Ext.chart.legend.sprite.Border',{extend:'Ext.draw.sprite.Rect',alias:'sprite.legendborder',type:'legendborder',isLegendBorder:!0});Ext.define('Ext.draw.PathUtil',function(){var a=Math.abs,c=Math.pow,d=Math.cos,f=Math.acos,b=Math.sqrt,e=Math.PI;return {singleton:!0,requires:['Ext.draw.overrides.hittest.Path','Ext.draw.overrides.hittest.sprite.Path'],cubicRoots:function(n){var q=n[0],u=n[1],v=n[2],w=n[3];if(q===0){return this.quadraticRoots(u,v,w)}var h=u/q,t=v/q,x=w/q,l=(3*t-c(h,2))/9,i=(9*h*t-27*x-2*c(h,3))/54,k=c(l,3)+c(i,2),g=[],o,p,s,m,j,r=Ext.Number.sign;if(k>=0){o=r(i+b(k))*c(a(i+b(k)),1/3);p=r(i-b(k))*c(a(i-b(k)),1/3);g[0]=-h/3+(o+p);g[1]=-h/3-(o+p)/2;g[2]=g[1];s=a(b(3)*(o-p)/2);if(s!==0){g[1]=-1;g[2]=-1}}else {m=f(i/b(-c(l,3)));g[0]=2*b(-l)*d(m/3)-h/3;g[1]=2*b(-l)*d((m+2*e)/3)-h/3;g[2]=2*b(-l)*d((m+4*e)/3)-h/3}for(j=0;j<3;j++){if(g[j]<0||g[j]>1){g[j]=-1}}return g},quadraticRoots:function(e,c,h){var f,g,a,d;if(e===0){return this.linearRoot(c,h)}f=c*c-4*e*h;if(f===0){a=[-c/(2*e)]}else if(f>0){g=b(f);a=[(-c-g)/(2*e),(-c+g)/(2*e)]}else {return []}for(d=0;d<a.length;d++){if(a[d]<0||a[d]>1){a[d]=-1}}return a},linearRoot:function(b,c){var a=-c/b;if(b===0||a<0||a>1){return []}return [a]},bezierCoeffs:function(b,c,d,e){var a=[];a[0]=-b+3*c-3*d+e;a[1]=3*b-6*c+3*d;a[2]=-3*b+3*c;a[3]=b;return a},cubicLineIntersections:function(s,t,u,v,w,x,y,z,d,e,h,p){var f=[],r=[],i=e-p,j=h-d,A=d*(p-e)-e*(h-d),a=this.bezierCoeffs(s,t,u,v),b=this.bezierCoeffs(w,x,y,z),k,q,l,c,g,m,n,o;f[0]=i*a[0]+j*b[0];f[1]=i*a[1]+j*b[1];f[2]=i*a[2]+j*b[2];f[3]=i*a[3]+j*b[3]+A;q=this.cubicRoots(f);for(k=0;k<q.length;k++){c=q[k];if(c<0||c>1){continue}g=c*c;m=g*c;n=a[0]*m+a[1]*g+a[2]*c+a[3];o=b[0]*m+b[1]*g+b[2]*c+b[3];if((h-d)!==0){l=(n-d)/(h-d)}else {l=(o-e)/(p-e)}if(!(l<0||l>1)){r.push([n,o])}}return r},splitCubic:function(d,e,f,g,a){var h=a*a,k=a*h,b=a-1,c=b*b,j=b*c,i=k*g-3*h*b*f+3*a*c*e-j*d;return [[d,a*e-b*d,h*f-2*a*b*e+c*d,i],[i,h*g-2*a*b*f+c*e,a*g-b*f,g]]},cubicDimension:function(f,h,k,i){var l=3*(-f+3*(h-k)+i),j=6*(f-2*h+k),m=-3*(f-h),a,c,e=Math.min(f,i),d=Math.max(f,i),g;if(l===0){if(j===0){return [e,d]}else {a=-m/j;if(0<a&&a<1){c=this.interpolateCubic(f,h,k,i,a);e=Math.min(e,c);d=Math.max(d,c)}}}else {g=j*j-4*l*m;if(g>=0){g=b(g);a=(g-j)/2/l;if(0<a&&a<1){c=this.interpolateCubic(f,h,k,i,a);e=Math.min(e,c);d=Math.max(d,c)}if(g>0){a-=g/l;if(0<a&&a<1){c=this.interpolateCubic(f,h,k,i,a);e=Math.min(e,c);d=Math.max(d,c)}}}}return [e,d]},interpolateCubic:function(c,e,f,d,a){if(a===0){return c}if(a===1){return d}var b=(1-a)/a;return a*a*a*(d+b*(3*f+b*(3*e+b*c)))},cubicsIntersections:function(h,l,m,i,j,k,n,o,p,q,r,s,t,u,v,w){var b=this,x=b.cubicDimension(h,l,m,i),y=b.cubicDimension(j,k,n,o),z=b.cubicDimension(p,q,r,s),A=b.cubicDimension(t,u,v,w),d,e,f,g,c=[];if(x[0]>z[1]||x[1]<z[0]||y[0]>A[1]||y[1]<A[0]){return []}if(a(j-k)<1&&a(n-o)<1&&a(h-i)<1&&a(l-m)<1&&a(t-u)<1&&a(v-w)<1&&a(p-s)<1&&a(q-r)<1){return [[(h+i)*0.5,(j+k)*0.5]]}d=b.splitCubic(h,l,m,i,0.5);e=b.splitCubic(j,k,n,o,0.5);f=b.splitCubic(p,q,r,s,0.5);g=b.splitCubic(t,u,v,w,0.5);c.push.apply(c,b.cubicsIntersections.apply(b,d[0].concat(e[0],f[0],g[0])));c.push.apply(c,b.cubicsIntersections.apply(b,d[0].concat(e[0],f[1],g[1])));c.push.apply(c,b.cubicsIntersections.apply(b,d[1].concat(e[1],f[0],g[0])));c.push.apply(c,b.cubicsIntersections.apply(b,d[1].concat(e[1],f[1],g[1])));return c},linesIntersection:function(a,b,g,h,d,e,j,k){var i=(g-a)*(k-e)-(h-b)*(j-d),c,f;if(i===0){return null}c=((j-d)*(b-e)-(a-d)*(k-e))/i;f=((g-a)*(b-e)-(h-b)*(a-d))/i;if(c>=0&&c<=1&&f>=0&&f<=1){return [a+c*(g-a),b+c*(h-b)]}return null},pointOnLine:function(c,d,e,f,h,i){var g,b;if(a(e-c)<a(f-d)){b=c;c=d;d=b;b=e;e=f;f=b;b=h;h=i;i=b}g=(h-c)/(e-c);if(g<0||g>1){return !1}return a(d+g*(f-d)-i)<4},pointOnCubic:function(j,k,l,m,n,o,p,q,r,s){var b=this,h=b.bezierCoeffs(j,k,l,m),i=b.bezierCoeffs(n,o,p,q),c,d,f,g,e;h[3]-=r;i[3]-=s;f=b.cubicRoots(h);g=b.cubicRoots(i);for(c=0;c<f.length;c++){e=f[c];for(d=0;d<g.length;d++){if(e>=0&&e<=1&&a(e-g[d])<0.05){return !0}}}return !1}}});Ext.define('Ext.draw.overrides.hittest.All',{requires:['Ext.draw.PathUtil','Ext.draw.overrides.hittest.sprite.Instancing','Ext.draw.overrides.hittest.Surface']});Ext.define('Ext.chart.legend.SpriteLegend',{alias:'legend.sprite',type:'sprite',isLegend:!0,isSpriteLegend:!0,mixins:['Ext.mixin.Observable'],requires:['Ext.chart.legend.sprite.Item','Ext.chart.legend.sprite.Border','Ext.draw.overrides.hittest.All','Ext.draw.Animator'],config:{docked:'bottom',store:null,chart:null,surface:null,size:{width:0,height:0},toggleable:!0,padding:10,label:{preciseMeasurement:!0},marker:{},border:{$value:{type:'legendborder'},lazy:!0},background:null,hidden:!1},sprites:null,spriteZIndexes:{background:0,border:1,item:2},dockedValues:{left:!0,right:!0,top:!0,bottom:!0},constructor:function(b){var a=this;a.oldSize={width:0,height:0};a.getId();a.mixins.observable.constructor.call(a,b)},applyStore:function(a){return a&&Ext.StoreManager.lookup(a)},updateStore:function(b,c){var a=this;if(c){c.un('datachanged',a.onDataChanged,a);c.un('update',a.onDataUpdate,a)}if(b){b.on('datachanged',a.onDataChanged,a);b.on('update',a.onDataUpdate,a);a.onDataChanged(b)}a.performLayout()},updateDocked:function(a){this.isTop=a==='top';if(!this.isConfiguring){this.layoutChart()}},updateHidden:function(b){this.getChart();var a=this.getSurface();if(a){a.setHidden(b)}if(!this.isConfiguring){this.layoutChart()}},layoutChart:function(){if(!this.isConfiguring){var a=this.getChart();if(a){a.scheduleLayout()}}},computeRect:function(a){if(this.getHidden()){return null}var b=[0,0,0,0],f=this.getDocked(),e=this.getSize(),c=e.height,d=e.width;switch(f){case 'top':b[1]=a[1];b[2]=a[2];b[3]=c;a[1]+=c;a[3]-=c;break;case 'bottom':a[3]-=c;b[1]=a[3];b[2]=a[2];b[3]=c;break;case 'left':a[0]+=d;a[2]-=d;b[2]=d;b[3]=a[3];break;case 'right':a[2]-=d;b[0]=a[2];b[2]=d;b[3]=a[3];break;}return b},applyBorder:function(b){var a;if(b){if(b.isSprite){a=b}else {a=Ext.create('sprite.'+b.type,b)}}if(a){a.isLegendBorder=!0;a.setAttributes({zIndex:this.spriteZIndexes.border})}return a},updateBorder:function(c,b){var a=this.getSurface();this.borderSprite=null;if(a){if(b){a.remove(b)}if(c){this.borderSprite=a.add(c)}}},scheduleLayout:function(){if(!this.scheduledLayoutId){this.scheduledLayoutId=Ext.draw.Animator.schedule('performLayout',this)}},cancelLayout:function(){Ext.draw.Animator.cancel(this.scheduledLayoutId);this.scheduledLayoutId=null},performLayout:function(){var f=this,l=f.getSize(),d=f.getPadding(),m=f.getSprites(),n=f.getSurface(),A=f.getBackground(),w=n.getRect(),E=f.getStore(),k=(m&&m.length)||0,a,q;if(!n||!w||!E){return !1}f.cancelLayout();var D=f.getDocked(),u=w[2],t=w[3],p=f.borderSprite,o=[],x,y,e,g,b,h,v,j,i,s,C,B,c,z,r;for(a=0;a<k;a++){q=m[a];c=q.getBBox();o.push(c)}if(c){B=c.height}switch(D){case 'bottom':case 'top':if(!u){return !1};e=0;do{h=0;b=0;g=0;e++;for(a=0;a<k;a++){c=o[a];if(c.width>b){b=c.width}if((a+1)%e===0){h+=b;b=0;g++}}if(a%e!==0){h+=b;g++}j=h+(g-1)*d;s=j+d*4}while(s>u);i=B*e+(e-1)*d;break;case 'right':case 'left':if(!t){return !1};e=k*2;do{e=(e>>1)+(e%2);h=0;v=0;b=0;g=0;for(a=0;a<k;a++){c=o[a];if(!g){v+=c.height}if(c.width>b){b=c.width}if((a+1)%e===0){h+=b;b=0;g++}}if(a%e!==0){h+=b;g++}j=h+(g-1)*d;i=v+(e-1)*d;s=j+d*4;C=i+d*4}while(i>t);break;}x=(u-j)/2;y=(t-i)/2;z=0;r=0;b=0;for(a=0;a<k;a++){q=m[a];c=o[a];q.setAttributes({translationX:x+z,translationY:y+r});if(c.width>b){b=c.width}if((a+1)%e===0){z+=b+d;r=0;b=0}else {r+=c.height+d}}if(p){p.setAttributes({hidden:!k,x:x-d,y:y-d,width:j+d*2,height:i+d*2})}l.width=p.attr.width+d*2;l.height=p.attr.height+d*2;if(l.width!==f.oldSize.width||l.height!==f.oldSize.height){Ext.apply(f.oldSize,l);f.getChart().scheduleLayout();return !1}if(A){f.resizeBackground(n,A)}n.renderFrame();return !0},getSprites:function(){this.updateSprites();return this.sprites},createSprite:function(e,h){var c=this,b=h.data,k=c.getChart(),i=k.get(b.series),d=i.getMarker(),j=null,a,g,f;if(e){a=i.getMarkerStyleByIndex(b.index);a.fillStyle=b.mark;a.hidden=!1;if(d&&d.type){a.type=d.type}Ext.apply(a,c.getMarker());a.surface=e;g=c.getLabel();f={type:'legenditem',zIndex:c.spriteZIndexes.item,text:b.name,enabled:!b.disabled,marker:a,label:g,series:b.series,record:h};j=e.add(f)}return j},updateSprites:function(){var a=this,k=a.getChart(),l=a.getStore(),g=a.getSurface(),j,i,c,b,e,d,f,h;if(!(k&&l&&g)){return}a.sprites=d=a.sprites||[];i=l.getData().items;e=i.length;for(b=0;b<e;b++){j=i[b];c=d[b];if(c){a.updateSprite(c,j)}else {c=a.createSprite(g,j);g.add(c);d.push(c)}}f=Ext.Array.splice(d,b,d.length);for(b=0,e=f.length;b<e;b++){c=f[b];c.destroy()}h=a.getBorder();if(h){a.borderSprite=h}a.updateTheme(k.getTheme())},updateSprite:function(a,e){var c=e.data,h=this.getChart(),g=h.get(c.series),d,f,b;if(a){f=a.getLabel();f.setAttributes({text:c.name});a.setAttributes({enabled:!c.disabled});a.setConfig({series:c.series,record:e});b=g.getMarkerStyleByIndex(c.index);b.fillStyle=c.mark;b.hidden=!1;Ext.apply(b,this.getMarker());d=a.getMarker();d.setAttributes({fillStyle:b.fillStyle,strokeStyle:b.strokeStyle});a.layoutUpdater(a.attr)}},updateChart:function(a,c){var b=this;if(c){b.setSurface(null)}if(a){b.setSurface(a.getSurface('legend'))}},updateSurface:function(b,a){if(a){a.el.un('click','onClick',this);a.removeAll(!0)}if(b){b.isLegendSurface=!0;b.el.on('click','onClick',this)}},onClick:function(e){var c=this.getChart(),b=this.getSurface(),a,d;if(c&&c.hasFirstLayout&&b){d=b.getEventXY(e);a=b.hitTest(d);if(a&&a.sprite){this.toggleItem(a.sprite)}}},applyBackground:function(c,d){var b=this,f=b.getChart(),e=b.getSurface(),a;a=f.refreshBackground(e,c,d);if(a){a.setAttributes({zIndex:b.spriteZIndexes.background})}return a},resizeBackground:function(c,b){var e=b.attr.width,d=b.attr.height,a=c.getRect();if(a&&(e!==a[2]||d!==a[3])){b.setAttributes({width:a[2],height:a[3]})}},themeableConfigs:{background:!0},updateTheme:function(v){var e=this,u=e.getSurface(),o=u.getItems(),g=v.getLegend(),t=e.getLabel(),n=e.self.getConfigurator().configs,q=e.themeableConfigs,s=e.getInitialConfig(),r=e.defaultConfig,b,h,l,j,k,f,d,m,a,c,i,p;for(i=0,p=o.length;i<p;i++){f=o[i];if(f.isLegendItem){d=g.label;if(d){c=null;for(a in d){if(!(a in t)){c=c||{};c[a]=d[a]}}if(c){m=f.getLabel();m.setAttributes(c)}}continue}else if(f.isLegendBorder){d=g.border}else {continue}if(d){c={};for(a in d){if(!(a in f.config)){c[a]=d[a]}}f.setAttributes(c)}}b=g.background;h=n.background;if(b!==null&&b!==undefined&&h){}for(a in g){if(!(a in q)){continue}b=g[a];h=n[a];if(b!==null&&b!==undefined&&h){k=s[a];l=Ext.isObject(b);j=k===r[a];if(l){if(j&&themeOnlyIfConfigured[a]){continue}b=Ext.merge({},b,k)}if(j||l){e[h.names.set](b)}}}},onDataChanged:function(a){this.updateSprites();this.scheduleLayout()},onDataUpdate:function(i,g){var c=this,f=c.sprites,h=f.length,d=0,a,e,b;for(;d<h;d++){a=f[d];e=a.getRecord();if(e===g){b=a;break}}if(b){c.updateSprite(b,g);c.scheduleLayout()}},toggleItem:function(d){if(!this.getToggleable()||!d.isLegendItem){return}var f=this.getStore(),g=0,h=!0,c,e,a,b;if(f){e=f.getCount();for(c=0;c<e;c++){a=f.getAt(c);if(a.get('disabled')){g++}}h=e-g>1;a=d.getRecord();if(a){b=a.get('disabled');if(b||h){a.set('disabled',!b);d.setAttributes({enabled:b})}}}},destroy:function(){var a=this;a.destroying=!0;a.cancelLayout();a.setChart(null);a.callParent()}});Ext.define('Ext.chart.Caption',{mixins:['Ext.mixin.Observable','Ext.mixin.Bindable'],isCaption:!0,config:{weight:0,text:'',align:'center',alignTo:'series',padding:0,hidden:!1,docked:'top',style:{fontSize:'14px',fontWeight:'bold',fontFamily:'Verdana, Aria, sans-serif'},chart:null,sprite:{type:'text',preciseMeasurement:!0,zIndex:10},rect:null},surfaceName:'caption',constructor:function(c){var a=this,b;if('id' in c){b=c.id}else if('id' in a.config){b=a.config.id}else {b=a.getId()}a.setId(b);a.mixins.observable.constructor.call(a,c);a.initBindable()},updateChart:function(){if(!this.isConfiguring){this.setSprite({type:'text'})}},applySprite:function(b){var a=this,d=a.getChart(),c=a.surface=d.getSurface(a.surfaceName);return b&&c.add(b)},updateSprite:function(b,a){if(a){a.destroy()}},updateText:function(a){this.getSprite().setAttributes({text:a})},updateStyle:function(a){this.getSprite().setAttributes(a)},updateRect:function(a){if(this.rectSprite){this.rectSprite.setAttributes({x:a[0],y:a[1],width:a[2],height:a[3]})}},updateDocked:function(){var a=this.getChart();if(a&&!this.isConfiguring){a.scheduleLayout()}},computeRect:function(d,c){if(this.getHidden()){return null}var b=[0,0,d[2],0],g=this.getDocked(),f=this.getPadding(),e=this.getSprite().getBBox(),a=e.height+f*2;switch(g){case 'top':b[1]=c.top;b[3]=a;d[1]+=a;d[3]-=a;c.top+=a;break;case 'bottom':d[3]-=a;c.bottom-=a;b[1]=c.bottom;b[3]=a;break;}this.setRect(b)},alignRect:function(b){var c=this.surface.getRect(),a=this.getRect();a[0]=b[0]-c[0];a[2]=b[2];this.setRect(a.slice())},performLayout:function(){var e=this,c=e.getRect(),f=c[0],m=c[1],g=c[2],i=c[3],b=e.getSprite(),k=b.attr.translationX,l=b.attr.translationY,a=b.getBBox(),j=e.getAlign(),d,h;switch(j){case 'left':d=f-a.x;break;case 'right':d=(f+g)-(a.x+a.width);break;case 'center':d=f+(g-a.width)/2-a.x;break;}h=m+(i-a.height)/2-a.y;b.setAttributes({translationX:k+d,translationY:l+h})},destroy:function(){var a=this;a.getSprite().destroy();a.callParent()}});Ext.define('Ext.chart.legend.store.Item',{extend:'Ext.data.Model',fields:['id','name','mark','disabled','series','index']});Ext.define('Ext.chart.legend.store.Store',{extend:'Ext.data.Store',requires:['Ext.chart.legend.store.Item'],model:'Ext.chart.legend.store.Item',isLegendStore:!0,config:{autoDestroy:!0}});Ext.define('Ext.chart.AbstractChart',{extend:'Ext.draw.Container',requires:['Ext.chart.theme.Default','Ext.chart.series.Series','Ext.chart.interactions.Abstract','Ext.chart.axis.Axis','Ext.chart.Util','Ext.data.StoreManager','Ext.chart.legend.Legend','Ext.chart.legend.SpriteLegend','Ext.chart.Caption','Ext.chart.legend.store.Store','Ext.data.Store'],isChart:!0,defaultBindProperty:'store',config:{store:'ext-empty-store',theme:'default',captions:null,style:null,animation:!Ext.isIE8,series:[],axes:[],legend:null,colors:null,insetPadding:{top:10,left:10,right:10,bottom:10},background:null,interactions:[],mainRect:null,resizeHandler:null,highlightItem:null,surfaceZIndexes:{background:0,main:1,grid:2,series:3,axis:4,chart:5,caption:6,overlay:7,legend:8}},legendStore:null,animationSuspendCount:0,chartLayoutSuspendCount:0,chartLayoutCount:0,scheduledLayoutId:null,axisThicknessSuspendCount:0,isThicknessChanged:!1,constructor:function(b){var a=this;a.itemListeners={};a.surfaceMap={};a.chartComponents={};a.isInitializing=!0;a.suspendChartLayout();a.animationSuspendCount++;a.callParent(arguments);a.isInitializing=!1;a.getSurface('main');a.getSurface('chart').setFlipRtlText(a.getInherited().rtl);a.getSurface('overlay').waitFor(a.getSurface('series'));a.animationSuspendCount--;a.resumeChartLayout()},applyAnimation:function(b,a){return Ext.chart.Util.applyAnimation(b,a)},updateAnimation:function(){if(this.isConfiguring){return}var c=this.getSeries(),d=c.length,b,a;this.isSettingSeriesAnimation=!0;for(b=0;b<d;b++){a=c[b];if(!a.isUserAnimation||this.animationSuspendCount){a.setAnimation(a.getAnimation())}}this.isSettingSeriesAnimation=!1},getAnimation:function(){var a;if(this.animationSuspendCount){a={duration:0}}else {a=this.callParent()}return a},suspendAnimation:function(){this.animationSuspendCount++;if(this.animationSuspendCount===1){this.updateAnimation()}},resumeAnimation:function(){this.animationSuspendCount--;if(this.animationSuspendCount===0){this.updateAnimation()}},applyInsetPadding:function(a,c){var b;if(!Ext.isObject(a)){b=Ext.util.Format.parseBox(a)}else if(!c){b=a}else {b=Ext.apply(c,a)}return b},suspendChartLayout:function(){var a=this;a.chartLayoutSuspendCount++;if(a.chartLayoutSuspendCount===1){if(a.scheduledLayoutId){a.layoutInSuspension=!0;a.cancelChartLayout()}else {a.layoutInSuspension=!1}}},resumeChartLayout:function(){var a=this;a.chartLayoutSuspendCount--;if(a.chartLayoutSuspendCount===0){if(a.layoutInSuspension){a.scheduleLayout()}}},cancelChartLayout:function(){if(this.scheduledLayoutId){Ext.draw.Animator.cancel(this.scheduledLayoutId);this.scheduledLayoutId=null;this.checkLayoutEnd()}},scheduleLayout:function(){var a=this;if(a.allowSchedule()&&!a.scheduledLayoutId){a.scheduledLayoutId=Ext.draw.Animator.schedule('doScheduleLayout',a)}},allowSchedule:function(){return !0},doScheduleLayout:function(){var a=this;a.scheduledLayoutId=null;if(a.chartLayoutSuspendCount){a.layoutInSuspension=!0}else {a.performLayout()}},suspendThicknessChanged:function(){this.axisThicknessSuspendCount++},resumeThicknessChanged:function(){if(this.axisThicknessSuspendCount>0){this.axisThicknessSuspendCount--;if(this.axisThicknessSuspendCount===0&&this.isThicknessChanged){this.onThicknessChanged()}}},onThicknessChanged:function(){if(this.axisThicknessSuspendCount===0){this.isThicknessChanged=!1;this.performLayout()}else {this.isThicknessChanged=!0}},applySprites:function(a){var b=this.getSurface('chart');a=Ext.Array.from(a);b.removeAll(!0);b.add(a);return a},initItems:function(){var a=this.items,b,d,c;if(a&&!a.isMixedCollection){this.items=[];a=Ext.Array.from(a);for(b=0,d=a.length;b<d;b++){c=a[b];if(c.type){Ext.raise("To add custom sprites to the chart use the 'sprites' config.")}else {this.items.push(c)}}}this.callParent()},applyBackground:function(a,b){var c=this.getSurface('background');return this.refreshBackground(c,a,b)},refreshBackground:function(c,b,a){var f,e,d;if(b){if(a){f=a.attr.width;e=a.attr.height;d=a.type===(b.type||'rect')}if(b.isSprite){a=b}else if(b.type==='image'&&Ext.isString(b.src)){if(d){a.setAttributes({src:b.src})}else {c.remove(a,!0);a=c.add(b)}}else {if(d){a.setAttributes({fillStyle:b})}else {c.remove(a,!0);a=c.add({type:'rect',fillStyle:b,animation:{customDurations:{x:0,y:0,width:0,height:0}}})}}}if(f&&e){a.setAttributes({width:f,height:e})}a.setAnimation(this.getAnimation());return a},defaultResizeHandler:function(a){this.scheduleLayout();return !1},applyMainRect:function(a,b){if(!b){return a}this.getSeries();this.getAxes();if(a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[3]===b[3]){return b}else {return a}},register:function(a){var b=this.chartComponents,c=a.getId();b[c]=a},unregister:function(a){var b=this.chartComponents,c=a.getId();delete b[c]},get:function(a){return this.chartComponents[a]},getAxis:function(a){if(a instanceof Ext.chart.axis.Axis){return a}else if(Ext.isNumber(a)){return this.getAxes()[a]}else if(Ext.isString(a)){return this.get(a)}},getSurface:function(d,a){d=d||'main';a=a||d;var e=this,b=this.callParent([d,a]),c=e.surfaceMap;if(!c[a]){c[a]=[]}if(Ext.Array.indexOf(c[a],b)<0){b.type=a;c[a].push(b);b.on('destroy',e.forgetSurface,e)}return b},forgetSurface:function(b){var d=this.surfaceMap;if(!d||this.destroying){return}var a=d[b.type],c=a?Ext.Array.indexOf(a,b):-1;if(c>=0){a.splice(c,1)}},applyAxes:function(e,i){var c=this,n={left:'right',right:'left'},g=[],a,b,h,j,d,l,k,f,m;c.animationSuspendCount++;c.getStore();if(!i){i=[];i.map={}}f=i.map;g.map={};e=Ext.Array.from(e,!0);for(d=0,k=e.length;d<k;d++){a=e[d];if(!a){continue}if(a instanceof Ext.chart.axis.Axis){b=f[a.getId()];a.setChart(c)}else {a=Ext.Object.chain(a);h=a.linkedTo;j=a.id;if(Ext.isNumber(h)){a=Ext.merge({},e[h],a)}else if(Ext.isString(h)){Ext.Array.each(e,function(b){if(b.id===a.linkedTo){a=Ext.merge({},b,a);return !1}})}a.id=j;a.chart=c;if(c.getInherited().rtl){a.position=n[a.position]||a.position}j=a.getId&&a.getId()||a.id;a=Ext.factory(a,null,b=f[j],'axis')}if(a){g.push(a);g.map[a.getId()]=a}}c.axesChangeSeries={};for(d in f){if(!g.map[d]){b=f[d];if(b&&!b.destroyed){for(l=0,k=b.boundSeries.length;l<k;l++){m=b.boundSeries[l];c.axesChangeSeries[m.getId()]=m}b.destroy()}}}c.animationSuspendCount--;return g},updateAxes:function(e){var a=this,c=a.axesChangeSeries,d,g,b,h,f;for(g in c){d=c[g];d.onAxesChange(a,!0)}for(b=0,h=e.length;b<h;b++){f=e[b];f.onSeriesChange(a)}if(!a.isConfiguring&&!a.destroying){a.scheduleLayout()}},circularCopyArray:function(b,e,f){var c=[],a,d=b&&b.length;if(d){for(a=0;a<f;a++){c.push(b[(e+a)%d])}}return c},circularCopyObject:function(d,f,e){var g=this,a,b,c={};if(e){for(a in d){if(d.hasOwnProperty(a)){b=d[a];if(Ext.isArray(b)){c[a]=g.circularCopyArray(b,f,e)}else {c[a]=b}}}}return c},getColors:function(){var b=this,a=b.config.colors,c=b.getTheme();if(Ext.isArray(a)&&a.length>0){a=b.applyColors(a)}return a||(c&&c.getColors())},applyColors:function(a){a=Ext.Array.map(a,function(b){if(Ext.isString(b)){return b}else {return b.toString()}});return a},updateColors:function(k){var a=this,i=a.getTheme(),h=k||(i&&i.getColors()),g=0,e=a.getSeries(),j=e&&e.length,b,d,f,c;if(h.length){for(b=0;b<j;b++){d=e[b];c=d.themeColorCount();f=a.circularCopyArray(h,g,c);g+=c;d.updateChartColors(f)}}if(!a.isConfiguring){a.refreshLegendStore()}},applyTheme:function(a){if(a&&a.isTheme){return a}return Ext.Factory.chartTheme(a)},updateGradients:function(a){if(!Ext.isEmpty(a)){this.updateTheme(this.getTheme())}},updateTheme:function(c,f){var a=this,e=a.getAxes(),d=a.getSeries(),g=a.getColors(),b;if(!d){return}a.updateChartTheme(c);for(b=0;b<e.length;b++){e[b].updateTheme(c)}for(b=0;b<d.length;b++){d[b].setTheme(c)}a.updateSpriteTheme(c);a.updateColors(g);a.redraw();a.fireEvent('themechange',a,c,f)},themeOnlyIfConfigured:{captions:!0},updateChartTheme:function(o){var c=this,d=o.getChart(),m=c.getInitialConfig(),l=c.defaultConfig,n=c.self.getConfigurator().configs,k=d.defaults,j=d[c.xtype],i=c.themeOnlyIfConfigured,b,a,g,e,f,h;d=Ext.merge({},k,j);for(b in d){a=d[b];h=n[b];if(a!==null&&a!==undefined&&h){f=m[b];g=Ext.isObject(a);e=f===l[b];if(g){if(e&&i[b]){continue}a=Ext.merge({},a,f)}if(e||g){c[h.names.set](a)}}}},updateSpriteTheme:function(k){this.getSprites();var l=this,i=l.getSurface('chart'),f=i.getItems(),j=k.getSprites(),a,c,b,e,g,d,h;for(d=0,h=f.length;d<h;d++){a=f[d];c=j[a.type];if(c){e={};g=a.type==='text';for(b in c){if(!(b in a.config)){if(!(g&&b.indexOf('font')===0&&a.config.font)){e[b]=c[b]}}}a.setAttributes(e)}}},addSeries:function(b){var a=this.getSeries();a=a.concat(Ext.Array.from(b));this.setSeries(a)},removeSeries:function(c){c=Ext.Array.from(c);var d=this.getSeries(),f=[],e=c.length,g={},a,b;for(a=0;a<e;a++){b=c[a];if(typeof b!=='string'){b=b.getId()}g[b]=!0}for(a=0,e=d.length;a<e;a++){if(!g[d[a].getId()]){f.push(d[a])}}this.setSeries(f)},applySeries:function(g,h){var f=this,e=[],d,b,c,i,a;f.animationSuspendCount++;f.getAxes();if(h){d=h.map}else {h=[];d=h.map={}}e.map={};g=Ext.Array.from(g,!0);for(c=0,i=g.length;c<i;c++){a=g[c];if(!a){continue}b=d[a.getId&&a.getId()||a.id];if(a instanceof Ext.chart.series.Series){if(b&&b!==a){b.destroy()}a.setChart(f)}else if(Ext.isObject(a)){if(b){b.setConfig(a);a=b}else {if(Ext.isString(a)){a={type:a}}a.chart=f;a=Ext.create(a.xclass||('series.'+a.type),a)}}e.push(a);e.map[a.getId()]=a}for(c in d){if(!e.map[d[c].id]){d[c].destroy()}}f.animationSuspendCount--;return e},updateSeries:function(b,c){var a=this;if(a.destroying){return}a.animationSuspendCount++;a.fireEvent('serieschange',a,b,c);if(!Ext.isEmpty(b)){a.updateTheme(a.getTheme())}a.refreshLegendStore();if(!a.isConfiguring&&!a.destroying){a.scheduleLayout()}a.animationSuspendCount--},defaultLegendType:'sprite',applyLegend:function(b,c){var a=this,d=null,e;if(c&&!(c.destroyed||c.destroying)){if(a.legendStoreListeners){a.legendStoreListeners.destroy()}if(a.legendStore){a.legendStore.destroy()}c.destroy()}if(b){if(Ext.isBoolean(b)){d=Ext.create('legend.'+a.defaultLegendType,{docked:'bottom',chart:a})}else {b.docked=b.docked||'bottom';b.chart=a;e='legend.'+(b.type||a.defaultLegendType);d=Ext.create(e,b)}}return d},updateLegend:function(b){var a=this;a.destroyLegendStore();if(b){a.getItems();b.setStore(a.refreshLegendStore())}if(!a.isConfiguring){a.scheduleLayout()}},captionApplier:function(b,a){var d=this,c;if(a&&!(a.destroyed||a.destroying)){a.destroy()}if(b){b.chart=d;c=new Ext.chart.Caption(b)}return c},applyCaptions:function(e,c){var g={},a,d,b,f;for(b in e){a=e[b];if(a&&!a.length&&!(a.text&&a.text.length)){a=null}else if(typeof a==='string'){a={text:a};this.getInitialConfig().captions[b]=a}d=c&&c[b];a=this.captionApplier(a,d);if(a){f=!0;g[b]=a}}return f&&g},updateCaptions:function(){var a=this;if(!a.isConfiguring){a.scheduleLayout()}},getLegendStore:function(){var a=this,b=a.legendStore;if(!b){b=a.legendStore=new Ext.chart.legend.store.Store({chart:a});a.legendStoreListeners=b.on({scope:a,update:'onLegendStoreUpdate',destroyable:!0})}return b},destroyLegendStore:function(){var a=this.legendStore;if(a&&!(a.destroyed||a.destroying)){a.destroy()}this.legendStore=null},refreshLegendStore:function(){var f=this,a=f.getLegendStore(),b;if(a){var e=f.getSeries(),g=e.length,d=[],c=0;for(;c<g;c++){b=e[c];if(b.getShowInLegend()){b.provideLegendInfo(d)}}a.setData(d)}return a},onLegendStoreUpdate:function(d,a){var c=this,b;if(a){b=this.getSeries().map[a.get('series')];if(b){b.setHiddenByIndex(a.get('index'),a.get('disabled'));c.redraw()}}},applyInteractions:function(e,d){e=Ext.Array.from(e,!0);if(!d){d=[];d.map={}}var h=this,c=[],f=d.map,b,g,a;c.map={};for(b=0,g=e.length;b<g;b++){a=e[b];if(!a){continue}a=Ext.factory(a,null,f[a.getId&&a.getId()||a.id],'interaction');if(a){a.setChart(h);c.push(a);c.map[a.getId()]=a}}for(b in f){if(!c.map[b]){f[b].destroy()}}return c},getInteraction:function(f){var b=this.getInteractions(),d=b&&b.length,e=null,c,a;if(d){for(a=0;a<d;++a){c=b[a];if(c.type===f){e=c;break}}}return e},applyStore:function(a){return a&&Ext.StoreManager.lookup(a)},updateStore:function(c,a){var b=this;if(a&&!a.destroyed){a.un({datachanged:'onDataChanged',update:'onDataChanged',scope:b,order:'after'});if(a.autoDestroy){a.destroy()}}if(c){c.on({datachanged:'onDataChanged',update:'onDataChanged',scope:b,order:'after'})}b.fireEvent('storechange',b,c,a);b.onDataChanged()},redraw:function(){this.fireEvent('redraw',this)},performLayout:function(){if(this.destroying||this.destroyed){return !1}var b=this,a=b.getLegend(),c=b.getChartRect(!0),f=b.getBackground(),e=!0,d;b.cancelChartLayout();if(f){b.getSurface('background').setRect(c.slice());f.setAttributes({width:c[2],height:c[3]})}if(a&&a.isSpriteLegend&&!a.isTop){d=a.computeRect(c)}b.layoutCaptions(c);if(a&&a.isSpriteLegend&&a.isTop){d=a.computeRect(c)}if(d){b.getSurface('legend').setRect(d);e=a.performLayout()}b.getSurface('chart').setRect(c);if(e){b.hasFirstLayout=!0}return e},layoutCaptions:function(c){var d=this.getCaptions(),h={left:0,top:0,right:c[2],bottom:c[3]},e,f,a,b,g;if(d){a=[];for(f in d){a.push(d[f])}a.sort(function(a,b){return a.getWeight()-b.getWeight()});for(b=0,g=a.length;b<g;b++){e=a[b];if(!b){this.getSurface(e.surfaceName).setRect(c.slice())}e.computeRect(c,h)}this.captionList=a}},checkLayoutEnd:function(){if(!this.chartLayoutCount&&!this.scheduledLayoutId){this.onLayoutEnd()}},onLayoutEnd:function(){var a=this;a.fireEvent('layout',a)},getChartRect:function(d){var a=this,b,c;if(d){a.chartRect=null}if(a.chartRect){b=a.chartRect}else {c=a.bodyElement.getSize();b=a.chartRect=[0,0,c.width,c.height]}return b},getEventXY:function(a){return this.getSurface('series').getEventXY(a)},getItemForPoint:function(f,g){var e=this,i=e.getSeries(),d=e.getMainRect(),j=i.length,h=Infinity,c=null,b,a;if(!(e.hasFirstLayout&&d&&f>=0&&f<=d[2]&&g>=0&&g<=d[3])){return null}for(b=j-1;b>=0;b--){a=i[b].getItemForPoint(f,g);if(a){if(!a.distance){c=a;break}if(a.distance<h){h=a.distance;c=a}}}return c},getItemsForPoint:function(h,i){var f=this,c=f.getSeries(),g=c.length,b=f.hasFirstLayout?g-1:-1,e=[],d,a;for(;b>=0;b--){d=c[b];a=d.getItemForPoint(h,i);if(a&&(a.category==='items'||a.category==='markers')){e.push(a)}}return e},onDataChanged:function(){var a=this;if(a.isInitializing){return}var e=a.getMainRect(),c=a.getStore(),b=a.getSeries(),d=a.getAxes();if(!c||!d||!b){return}if(!e){a.on({redraw:a.onDataChanged,scope:a,single:!0});return}a.processData();a.redraw()},recordCount:0,processData:function(){var a=this,e=a.getStore().getCount(),f=a.getSeries(),g=f.length,b=!1,d=0,c;for(;d<g;d++){c=f[d];c.processData();if(!b&&c.isStoreDependantColorCount){b=!0}}if(b&&e>a.recordCount){a.updateColors(a.getColors());a.recordCount=e}if(!a.isConfiguring){a.refreshLegendStore()}},bindStore:function(a){this.setStore(a)},applyHighlightItem:function(a,d){if(a===d){return}if(Ext.isObject(a)&&Ext.isObject(d)){var b=a,c=d,e=b.sprite&&(b.sprite[0]||b.sprite),f=c.sprite&&(c.sprite[0]||c.sprite);if(e===f&&b.index===c.index){return}}return a},updateHighlightItem:function(a,b){var c,d;if(b){d=b.series.getHighlight();if(d){b.series.setAttributesForItem(b,{highlighted:!1})}}if(a){c=a.series.getHighlight();if(c){a.series.setAttributesForItem(a,{highlighted:!0})}}if(d||c){this.fireEvent('itemhighlight',this,a,b)}},destroyChart:function(){var a=this;a.setInteractions(null);a.setAxes(null);a.setSeries(null);a.setLegend(null);a.setStore(null);a.cancelChartLayout()},getRefItems:function(h){var g=this,e=g.getSeries(),f=g.getAxes(),d=g.getInteractions(),i=g.getLegend(),b=[],a,c;for(a=0,c=e.length;a<c;a++){b.push(e[a]);if(e[a].getRefItems){b.push.apply(b,e[a].getRefItems(h))}}for(a=0,c=f.length;a<c;a++){b.push(f[a]);if(f[a].getRefItems){b.push.apply(b,f[a].getRefItems(h))}}for(a=0,c=d.length;a<c;a++){b.push(d[a]);if(d[a].getRefItems){b.push.apply(b,d[a].getRefItems(h))}}if(i){b.push(i)}return b}});Ext.define('Ext.chart.overrides.AbstractChart',{override:'Ext.chart.AbstractChart',zIndex:0,updateLegend:function(a,b){this.callParent([a,b]);if(a&&a.isDomLegend){this.add(a)}},onItemRemove:function(b,f,e){var c=this.surfaceMap,d=b.type,a=c&&c[d];this.callParent([b,f,e]);if(a){Ext.Array.remove(a,b);if(a.length===0){delete c[d]}}},doDestroy:function(){this.destroyChart();this.callParent()}});Ext.define('Ext.chart.grid.HorizontalGrid',{extend:'Ext.draw.sprite.Sprite',alias:'grid.horizontal',inheritableStatics:{def:{processors:{x:'number',y:'number',width:'number',height:'number'},defaults:{x:0,y:0,width:1,height:1,strokeStyle:'#DDD'}}},render:function(c,a,b){var f=this.attr,e=c.roundPixel(f.y),d=a.lineWidth*0.5;a.beginPath();a.rect(b[0]-c.matrix.getDX(),e+d,+b[2],f.height);a.fill();a.beginPath();a.moveTo(b[0]-c.matrix.getDX(),e+d);a.lineTo(b[0]+b[2]-c.matrix.getDX(),e+d);a.stroke()}});Ext.define('Ext.chart.grid.VerticalGrid',{extend:'Ext.draw.sprite.Sprite',alias:'grid.vertical',inheritableStatics:{def:{processors:{x:'number',y:'number',width:'number',height:'number'},defaults:{x:0,y:0,width:1,height:1,strokeStyle:'#DDD'}}},render:function(c,a,b){var f=this.attr,e=c.roundPixel(f.x),d=a.lineWidth*0.5;a.beginPath();a.rect(e-d,b[1]-c.matrix.getDY(),f.width,b[3]);a.fill();a.beginPath();a.moveTo(e-d,b[1]-c.matrix.getDY());a.lineTo(e-d,b[1]+b[3]-c.matrix.getDY());a.stroke()}});Ext.define('Ext.chart.CartesianChart',{extend:'Ext.chart.AbstractChart',alternateClassName:'Ext.chart.Chart',requires:['Ext.chart.grid.HorizontalGrid','Ext.chart.grid.VerticalGrid'],xtype:['cartesian','chart'],isCartesian:!0,config:{flipXY:!1,innerRect:[0,0,1,1],innerPadding:{top:0,left:0,right:0,bottom:0}},applyInnerPadding:function(a,b){if(!Ext.isObject(a)){return Ext.util.Format.parseBox(a)}else if(!b){return a}else {return Ext.apply(b,a)}},getDirectionForAxis:function(b){var c=this.getFlipXY(),a;if(b==='left'||b==='right'){a=c?'X':'Y'}else {a=c?'Y':'X'}return a},performLayout:function(){var a=this;if(a.callParent()===!1){return}a.chartLayoutCount++;a.suspendAnimation();var r=a.getSurface('chart').getRect(),p=r[0],q=r[1],l=r[2],k=r[3],u=a.captionList,t=a.getAxes(),e,A=a.getSeries(),y,f,g,B=a.getInsetPadding(),d=a.getInnerPadding(),j,n,c=Ext.apply({},B),i,o,h,v,w,z,x,b,m,D=a.getInherited().rtl,C=a.getFlipXY(),s;if(l<=0||k<=0){return}a.suspendThicknessChanged();for(b=0;b<t.length;b++){e=t[b];f=e.getSurface();w=e.getFloating();z=w?w.value:null;g=e.getThickness();switch(e.getPosition()){case 'top':f.setRect([p,q+c.top+1,l,g]);break;case 'bottom':f.setRect([p,q+k-(c.bottom+g),l,g]);break;case 'left':f.setRect([p+c.left,q,g,k]);break;case 'right':f.setRect([p+l-(c.right+g),q,g,k]);break;}if(z===null){c[e.getPosition()]+=g}}l-=c.left+c.right;k-=c.top+c.bottom;i=[p+c.left,q+c.top,l,k];c.left+=d.left;c.top+=d.top;c.right+=d.right;c.bottom+=d.bottom;o=l-d.left-d.right;h=k-d.top-d.bottom;a.setInnerRect([c.left,c.top,o,h]);if(o<=0||h<=0){return}a.setMainRect(i);a.getSurface().setRect(i);for(b=0,m=a.surfaceMap.grid&&a.surfaceMap.grid.length;b<m;b++){n=a.surfaceMap.grid[b];n.setRect(i);n.matrix.set(1,0,0,1,d.left,d.top);n.matrix.inverse(n.inverseMatrix)}for(b=0;b<t.length;b++){e=t[b];e.getRange(!0);f=e.getSurface();x=f.matrix;v=x.elements;switch(e.getPosition()){case 'top':case 'bottom':v[4]=c.left;e.setLength(o);break;case 'left':case 'right':v[5]=c.top;e.setLength(h);break;}e.updateTitleSprite();x.inverse(f.inverseMatrix)}for(b=0,m=A.length;b<m;b++){y=A[b];j=y.getSurface();j.setRect(i);if(C){if(D){j.matrix.set(0,-1,-1,0,d.left+o,d.top+h)}else {j.matrix.set(0,-1,1,0,d.left,d.top+h)}}else {j.matrix.set(1,0,0,-1,d.left,d.top+h)}j.matrix.inverse(j.inverseMatrix);y.getOverlaySurface().setRect(i)}if(u){for(b=0,m=u.length;b<m;b++){s=u[b];if(s.getAlignTo()==='series'){s.alignRect(i)}s.performLayout()}}a.afterChartLayout();a.redraw();a.resumeAnimation();a.resumeThicknessChanged();a.chartLayoutCount--;a.checkLayoutEnd()},afterChartLayout:Ext.emptyFn,refloatAxes:function(){var i=this,m=i.getAxes(),q=(m&&m.length)||0,d,j,c,k,a,e,h,n=i.getChartRect(),f=i.getInsetPadding(),b=i.getInnerPadding(),p=n[2]-f.left-f.right,o=n[3]-f.top-f.bottom,g,l;for(l=0;l<q;l++){d=m[l];k=d.getFloating();a=k?k.value:null;if(a===null){d.floatingAtCoord=null;continue}j=d.getSurface();c=j.getRect();if(!c){continue}c=c.slice();e=i.getAxis(k.alongAxis);if(e){g=e.getAlignment()==='horizontal';if(Ext.isString(a)){a=e.getCoordFor(a)}e.floatingAxes[d.getId()]=a;h=e.getSprites()[0].attr.matrix;if(g){a=a*h.getXX()+h.getDX();d.floatingAtCoord=a+b.left+b.right}else {a=a*h.getYY()+h.getDY();d.floatingAtCoord=a+b.top+b.bottom}}else {g=d.getAlignment()==='horizontal';if(g){d.floatingAtCoord=a+b.top+b.bottom}else {d.floatingAtCoord=a+b.left+b.right}a=j.roundPixel(0.01*a*(g?o:p))}switch(d.getPosition()){case 'top':c[1]=f.top+b.top+a-c[3]+1;break;case 'bottom':c[1]=f.top+b.top+(e?a:o-a);break;case 'left':c[0]=f.left+b.left+a-c[2];break;case 'right':c[0]=f.left+b.left+(e?a:p-a)-1;break;}j.setRect(c)}},redraw:function(){var h=this,x=h.getSeries(),z=h.getAxes(),w=h.getMainRect(),t,s,f=h.getInnerPadding(),i,a,b,y,c,e,g,r,n,p,q,u,d,A=h.getFlipXY(),v=1000,k,o,j,m,l;if(!w){return}t=w[2]-f.left-f.right;s=w[3]-f.top-f.bottom;for(e=0;e<x.length;e++){j=x[e];p=j.getXAxis();if(p){d=p.getVisibleRange();a=p.getRange();a=[a[0]+(a[1]-a[0])*d[0],a[0]+(a[1]-a[0])*d[1]]}else {a=j.getXRange()}q=j.getYAxis();if(q){d=q.getVisibleRange();b=q.getRange();b=[b[0]+(b[1]-b[0])*d[0],b[0]+(b[1]-b[0])*d[1]]}else {b=j.getYRange()}c={visibleMinX:a[0],visibleMaxX:a[1],visibleMinY:b[0],visibleMaxY:b[1],innerWidth:t,innerHeight:s,flipXY:A};i=j.getSprites();for(g=0,r=i.length;g<r;g++){m=i[g];k=m.attr.zIndex;if(k<v){k+=(e+1)*100+v;m.attr.zIndex=k;l=m.getMarker('items');if(l){o=l.attr.zIndex;if(o===Number.MAX_VALUE){l.attr.zIndex=k}else if(o<v){l.attr.zIndex=k+o}}}m.setAttributes(c,!0)}}for(e=0;e<z.length;e++){n=z[e];y=n.isSide();i=n.getSprites();u=n.getRange();d=n.getVisibleRange();c={dataMin:u[0],dataMax:u[1],visibleMin:d[0],visibleMax:d[1]};if(y){c.length=s;c.startGap=f.bottom;c.endGap=f.top}else {c.length=t;c.startGap=f.left;c.endGap=f.right}for(g=0,r=i.length;g<r;g++){i[g].setAttributes(c,!0)}}h.renderFrame();h.callParent()},renderFrame:function(){this.refloatAxes();this.callParent()}});Ext.define('Ext.chart.grid.CircularGrid',{extend:'Ext.draw.sprite.Circle',alias:'grid.circular',inheritableStatics:{def:{defaults:{r:1,strokeStyle:'#DDD'}}}});Ext.define('Ext.chart.grid.RadialGrid',{extend:'Ext.draw.sprite.Path',alias:'grid.radial',inheritableStatics:{def:{processors:{startRadius:'number',endRadius:'number'},defaults:{startRadius:0,endRadius:1,scalingCenterX:0,scalingCenterY:0,strokeStyle:'#DDD'},triggers:{startRadius:'path,bbox',endRadius:'path,bbox'}}},render:function(){this.callParent(arguments)},updatePath:function(b,a){var c=a.startRadius,d=a.endRadius;b.moveTo(c,0);b.lineTo(d,0)}});Ext.define('Ext.chart.PolarChart',{extend:'Ext.chart.AbstractChart',requires:['Ext.chart.grid.CircularGrid','Ext.chart.grid.RadialGrid'],xtype:'polar',isPolar:!0,config:{center:[0,0],radius:0,innerPadding:0},getDirectionForAxis:function(a){return a==='radial'?'Y':'X'},updateCenter:function(d){var h=this,f=h.getAxes(),e=h.getSeries(),a,b,g,c;for(a=0,b=f.length;a<b;a++){g=f[a];g.setCenter(d)}for(a=0,b=e.length;a<b;a++){c=e[a];c.setCenter(d)}},applyInnerPadding:function(a,b){return Ext.isNumber(a)?a:b},updateInnerPadding:function(){if(!this.isConfiguring){this.performLayout()}},doSetSurfaceRect:function(c,a){var b=this.getMainRect();c.setRect(a);c.matrix.set(1,0,0,1,b[0]-a[0],b[1]-a[1]);c.inverseMatrix.set(1,0,0,1,a[0]-b[0],a[1]-b[1])},applyAxes:function(a,g){var h=this,b=Ext.Array.from(h.config.series)[0],c,f,e,d;if(b&&b.type==='radar'&&a&&a.length){for(c=0,f=a.length;c<f;c++){e=a[c];if(e.position==='angular'){d=!0;break}}if(!d){a.push({type:'category',position:'angular',fields:b.xField||b.angleField,style:{estStepSize:1},grid:!0})}}return this.callParent([a,g])},performLayout:function(){var a=this,y=!0;try{a.chartLayoutCount++;a.suspendAnimation();if(this.callParent()===!1){y=!1;return}a.suspendThicknessChanged();var d=a.getSurface('chart').getRect(),i=a.getInsetPadding(),h=a.getInnerPadding(),g=Ext.apply({},i),p=Math.max(1,d[2]-d[0]-i.left-i.right),o=Math.max(1,d[3]-d[1]-i.top-i.bottom),j=[d[0]+i.left,d[1]+i.top,p+d[0],o+d[1]],C=a.getSeries(),B=p-h*2,A=o-h*2,G=[(d[0]+B)*0.5+h,(d[1]+A)*0.5+h],E=Math.min(B,A)*0.5,l=a.getAxes(),t=[],v=[],r=E-h,x=a.surfaceMap.grid,u=a.captionList,b,e,s,w,F,f,m,q,k,c,D,z,n;a.setMainRect(j);a.doSetSurfaceRect(a.getSurface(),j);if(x){for(b=0,e=x.length;b<e;b++){a.doSetSurfaceRect(x[b],d)}}for(b=0,e=l.length;b<e;b++){c=l[b];switch(c.getPosition()){case 'angular':t.push(c);break;case 'radial':v.push(c);break;}}for(b=0,e=t.length;b<e;b++){c=t[b];w=c.getFloating();F=w?w.value:null;a.doSetSurfaceRect(c.getSurface(),d);D=c.getThickness();for(q in g){g[q]+=D}p=d[2]-g.left-g.right;o=d[3]-g.top-g.bottom;s=Math.min(p,o)*0.5;if(b===0){r=s-h}c.setMinimum(0);c.setLength(s);c.getSprites();z=c.sprites[0].attr.lineWidth*0.5;for(q in g){g[q]+=z}}for(b=0,e=v.length;b<e;b++){c=v[b];a.doSetSurfaceRect(c.getSurface(),d);c.setMinimum(0);c.setLength(r);c.getSprites()}for(b=0,e=C.length;b<e;b++){k=C[b];if(k.type==='gauge'&&!f){f=k}else {k.setRadius(r)}a.doSetSurfaceRect(k.getSurface(),j)}a.doSetSurfaceRect(a.getSurface('overlay'),d);if(f){f.setRect(j);m=f.getRadius()-h;a.setRadius(m);a.setCenter(f.getCenter());f.setRadius(m);if(l.length&&l[0].getPosition()==='gauge'){c=l[0];a.doSetSurfaceRect(c.getSurface(),d);c.setTotalAngle(f.getTotalAngle());c.setLength(m)}}else {a.setRadius(E);a.setCenter(G)}if(u){for(b=0,e=u.length;b<e;b++){n=u[b];if(n.getAlignTo()==='series'){n.alignRect(j)}n.performLayout()}}a.redraw()}finally{a.resumeAnimation();if(y){a.resumeThicknessChanged()}a.chartLayoutCount--;a.checkLayoutEnd()}},refloatAxes:function(){var g=this,i=g.getAxes(),f=g.getMainRect(),d,a,b,e,j,c,h;if(!f){return}h=0.5*Math.min(f[2],f[3]);for(e=0,j=i.length;e<j;e++){c=i[e];d=c.getFloating();a=d?d.value:null;if(a!==null){b=g.getAxis(d.alongAxis);if(c.getPosition()==='angular'){if(b){a=b.getLength()*a/b.getRange()[1]}else {a=0.01*a*h}c.sprites[0].setAttributes({length:a},!0)}else {if(b){if(Ext.isString(a)){a=b.getCoordFor(a)}a=a/(b.getRange()[1]+1)*Math.PI*2-Math.PI*1.5+c.getRotation()}else {a=Ext.draw.Draw.rad(a)}c.sprites[0].setAttributes({baseRotation:a},!0)}}}},redraw:function(){var c=this,f=c.getAxes(),g,d=c.getSeries(),e,a,b;for(a=0,b=f.length;a<b;a++){g=f[a];g.getSprites()}for(a=0,b=d.length;a<b;a++){e=d[a];e.getSprites()}c.renderFrame();c.callParent()},renderFrame:function(){this.refloatAxes();this.callParent()}});Ext.define('Ext.chart.SpaceFillingChart',{extend:'Ext.chart.AbstractChart',xtype:'spacefilling',config:{},performLayout:function(){var a=this;try{a.chartLayoutCount++;a.suspendAnimation();if(a.callParent()===!1){return}var f=a.getSurface('chart').getRect(),b=a.getInsetPadding(),j=f[2]-b.left-b.right,i=f[3]-b.top-b.bottom,d=[b.left,b.top,j,i],g=a.getSeries(),c,e,h;a.getSurface().setRect(d);a.setMainRect(d);for(e=0,h=g.length;e<h;e++){c=g[e];c.getSurface().setRect(d);if(c.setRect){c.setRect(d)}c.getOverlaySurface().setRect(f)}a.redraw()}finally{a.resumeAnimation();a.chartLayoutCount--;a.checkLayoutEnd()}},redraw:function(){var b=this,c=b.getSeries(),d,a,e;for(a=0,e=c.length;a<e;a++){d=c[a];d.getSprites()}b.renderFrame();b.callParent()}});Ext.define('Ext.chart.axis.sprite.Axis3D',{extend:'Ext.chart.axis.sprite.Axis',alias:'sprite.axis3d',type:'axis3d',inheritableStatics:{def:{processors:{depth:'number'},defaults:{depth:0},triggers:{depth:'layout'}}},config:{animation:{customDurations:{depth:0}}},layoutUpdater:function(){var b=this,h=b.getAxis().getChart();if(h.isInitializing){return}var a=b.attr,f=b.getLayout(),e=f.isDiscrete?0:a.depth,i=h.getInherited().rtl,c=a.dataMin+(a.dataMax-a.dataMin)*a.visibleMin,d=a.dataMin+(a.dataMax-a.dataMin)*a.visibleMax,g={attr:a,segmenter:b.getSegmenter(),renderer:b.defaultRenderer};if(a.position==='left'||a.position==='right'){a.translationX=0;a.translationY=d*(a.length-e)/(d-c)+e;a.scalingX=1;a.scalingY=(-a.length+e)/(d-c);a.scalingCenterY=0;a.scalingCenterX=0;b.applyTransformations(!0)}else if(a.position==='top'||a.position==='bottom'){if(i){a.translationX=a.length+c*a.length/(d-c)+1}else {a.translationX=-c*a.length/(d-c)}a.translationY=0;a.scalingX=(i?-1:1)*(a.length-e)/(d-c);a.scalingY=1;a.scalingCenterY=0;a.scalingCenterX=0;b.applyTransformations(!0)}if(f){f.calculateLayout(g);b.setLayoutContext(g)}},renderAxisLine:function(h,b,i,g){var f=this,a=f.attr,c=a.lineWidth*0.5,i=f.getLayout(),j=i.isDiscrete?0:a.depth,k=a.position,d,e;if(a.axisLine&&a.length){switch(k){case 'left':d=h.roundPixel(g[2])-c;b.moveTo(d,-a.endGap+j);b.lineTo(d,a.length+a.startGap);break;case 'right':b.moveTo(c,-a.endGap);b.lineTo(c,a.length+a.startGap);break;case 'bottom':b.moveTo(-a.startGap,c);b.lineTo(a.length-j+a.endGap,c);break;case 'top':d=h.roundPixel(g[3])-c;b.moveTo(-a.startGap,d);b.lineTo(a.length+a.endGap,d);break;case 'angular':b.moveTo(a.centerX+a.length,a.centerY);b.arc(a.centerX,a.centerY,a.length,0,Math.PI*2,!0);break;case 'gauge':e=f.getGaugeAngles();b.moveTo(a.centerX+Math.cos(e.start)*a.length,a.centerY+Math.sin(e.start)*a.length);b.arc(a.centerX,a.centerY,a.length,e.start,e.end,!0);break;}}}});Ext.define('Ext.chart.axis.Axis3D',{extend:'Ext.chart.axis.Axis',xtype:'axis3d',requires:['Ext.chart.axis.sprite.Axis3D'],config:{depth:0},onSeriesChange:function(f){var b=this,e='depthchange',d='onSeriesDepthChange',a,c;function toggle(h){var g=b.boundSeries;for(a=0;a<g.length;a++){c=g[a];c[h](e,d,b)}}toggle('un');b.callParent(arguments);toggle('on')},onSeriesDepthChange:function(g,a){var e=this,b=a,f=e.boundSeries,d,c;if(a>e.getDepth()){b=a}else {for(d=0;d<f.length;d++){c=f[d];if(c!==g&&c.getDepth){a=c.getDepth();if(a>b){b=a}}}}e.setDepth(b)},updateDepth:function(d){var a=this,b=a.getSprites(),c={depth:d};if(b&&b.length){b[0].setAttributes(c)}if(a.gridSpriteEven&&a.gridSpriteOdd){a.gridSpriteEven.getTemplate().setAttributes(c);a.gridSpriteOdd.getTemplate().setAttributes(c)}},getGridAlignment:function(){switch(this.getPosition()){case 'left':case 'right':return 'horizontal3d';case 'top':case 'bottom':return 'vertical3d';}}});Ext.define('Ext.chart.axis.Category',{requires:['Ext.chart.axis.layout.CombineDuplicate','Ext.chart.axis.segmenter.Names'],extend:'Ext.chart.axis.Axis',alias:'axis.category',type:'category',isCategory:!0,config:{layout:'combineDuplicate',segmenter:'names'}});Ext.define('Ext.chart.axis.Category3D',{requires:['Ext.chart.axis.layout.CombineDuplicate','Ext.chart.axis.segmenter.Names'],extend:'Ext.chart.axis.Axis3D',alias:'axis.category3d',type:'category3d',config:{layout:'combineDuplicate',segmenter:'names'}});Ext.define('Ext.chart.axis.Numeric',{extend:'Ext.chart.axis.Axis',type:'numeric',alias:['axis.numeric','axis.radial'],requires:['Ext.chart.axis.layout.Continuous','Ext.chart.axis.segmenter.Numeric'],config:{layout:'continuous',segmenter:'numeric',aggregator:'double'}});Ext.define('Ext.chart.axis.Numeric3D',{extend:'Ext.chart.axis.Axis3D',alias:['axis.numeric3d'],type:'numeric3d',requires:['Ext.chart.axis.layout.Continuous','Ext.chart.axis.segmenter.Numeric'],config:{layout:'continuous',segmenter:'numeric',aggregator:'double'}});Ext.define('Ext.chart.axis.Time',{extend:'Ext.chart.axis.Numeric',alias:'axis.time',type:'time',requires:['Ext.chart.axis.layout.Continuous','Ext.chart.axis.segmenter.Time'],config:{dateFormat:null,fromDate:null,toDate:null,layout:'continuous',segmenter:'time',aggregator:'time'},updateDateFormat:function(b){var a=this.getRenderer();if(!a||a.isDefault){a=function(c,a){return Ext.Date.format(new Date(a),b)};a.isDefault=!0;this.setRenderer(a);this.performLayout()}},updateRenderer:function(b){var a=this.getDateFormat();if(b){this.performLayout()}else if(a){this.updateDateFormat(a)}},updateFromDate:function(a){this.setMinimum(+a)},updateToDate:function(a){this.setMaximum(+a)},getCoordFor:function(a){if(Ext.isString(a)){a=new Date(a)}return +a}});Ext.define('Ext.chart.axis.Time3D',{extend:'Ext.chart.axis.Numeric3D',alias:'axis.time3d',type:'time3d',requires:['Ext.chart.axis.layout.Continuous','Ext.chart.axis.segmenter.Time'],config:{dateFormat:null,fromDate:null,toDate:null,layout:'continuous',segmenter:'time',aggregator:'time'},updateDateFormat:function(a){this.setRenderer(function(c,b){return Ext.Date.format(new Date(b),a)})},updateFromDate:function(a){this.setMinimum(+a)},updateToDate:function(a){this.setMaximum(+a)},getCoordFor:function(a){if(Ext.isString(a)){a=new Date(a)}return +a}});Ext.define('Ext.chart.grid.HorizontalGrid3D',{extend:'Ext.chart.grid.HorizontalGrid',alias:'grid.horizontal3d',inheritableStatics:{def:{processors:{depth:'number'},defaults:{depth:0}}},render:function(g,a,e){var f=this.attr,l=g.roundPixel(f.x),i=g.roundPixel(f.y),k=g.matrix.getDX(),j=a.lineWidth*0.5,h=f.height,d=f.depth,b,c;if(i<=e[1]){return}b=e[0]+d-k;c=i+j-d;a.beginPath();a.rect(b,c,e[2],h);a.fill();a.beginPath();a.moveTo(b,c);a.lineTo(b+e[2],c);a.stroke();b=e[0]+l-k;c=i+j;a.beginPath();a.moveTo(b,c);a.lineTo(b+d,c-d);a.lineTo(b+d,c-d+h);a.lineTo(b,c+h);a.closePath();a.fill();a.beginPath();a.moveTo(b,c);a.lineTo(b+d,c-d);a.stroke()}});Ext.define('Ext.chart.grid.VerticalGrid3D',{extend:'Ext.chart.grid.VerticalGrid',alias:'grid.vertical3d',inheritableStatics:{def:{processors:{depth:'number'},defaults:{depth:0}}},render:function(j,a,e){var i=this.attr,f=j.roundPixel(i.x),k=j.matrix.getDY(),g=a.lineWidth*0.5,h=i.width,d=i.depth,b,c;if(f>=e[2]){return}b=f-g+d;c=e[1]-d-k;a.beginPath();a.rect(b,c,h,e[3]);a.fill();a.beginPath();a.moveTo(b,c);a.lineTo(b,c+e[3]);a.stroke();b=f-g;c=e[3];a.beginPath();a.moveTo(b,c);a.lineTo(b+d,c-d);a.lineTo(b+d+h,c-d);a.lineTo(b+h,c);a.closePath();a.fill();b=f-g;c=e[3];a.beginPath();a.moveTo(b,c);a.lineTo(b+d,c-d);a.stroke()}});Ext.define('Ext.chart.interactions.CrossZoom',{extend:'Ext.chart.interactions.Abstract',type:'crosszoom',alias:'interaction.crosszoom',isCrossZoom:!0,config:{axes:!0,gestures:{dragstart:'onGestureStart',drag:'onGesture',dragend:'onGestureEnd',dblclick:'onDoubleTap'},undoButton:{}},stopAnimationBeforeSync:!1,zoomAnimationInProgress:!1,constructor:function(){this.callParent(arguments);this.zoomHistory=[]},applyAxes:function(a){var b={};if(a===!0){return {top:{},right:{},bottom:{},left:{}}}else if(Ext.isArray(a)){b={};Ext.each(a,function(c){b[c]={}})}else if(Ext.isObject(a)){Ext.iterate(a,function(d,c){if(c===!0){b[d]={}}else if(c!==!1){b[d]=c}})}return b},applyUndoButton:function(b,a){var c=this;if(a){a.destroy()}if(b){return Ext.create('Ext.Button',Ext.apply({cls:[],text:'Undo Zoom',disabled:!0,handler:function(){c.undoZoom()}},b))}},getSurface:function(){return this.getChart()&&this.getChart().getSurface('overlay')},setSeriesOpacity:function(b){var a=this.getChart()&&this.getChart().getSurface('series');if(a){a.element.setStyle('opacity',b)}},onGestureStart:function(j){var a=this,d=a.getChart(),k=a.getSurface(),h=d.getInnerRect(),e=d.getInnerPadding(),f=e.left,l=f+h[2],g=e.top,m=g+h[3],i=d.getEventXY(j),b=i[0],c=i[1];j.claimGesture();if(a.zoomAnimationInProgress){return}if(b>f&&b<l&&c>g&&c<m){a.gestureEvent='drag';a.lockEvents(a.gestureEvent);a.startX=b;a.startY=c;a.selectionRect=k.add({type:'rect',globalAlpha:0.5,fillStyle:'rgba(80,80,140,0.5)',strokeStyle:'rgba(80,80,140,1)',lineWidth:2,x:b,y:c,width:0,height:0,zIndex:10000});a.setSeriesOpacity(0.8);return !1}},onGesture:function(m){var a=this;if(a.zoomAnimationInProgress){return}if(a.getLocks()[a.gestureEvent]===a){var d=a.getChart(),l=a.getSurface(),j=d.getInnerRect(),g=d.getInnerPadding(),e=g.left,h=e+j[2],f=g.top,i=f+j[3],k=d.getEventXY(m),b=k[0],c=k[1];if(b<e){b=e}else if(b>h){b=h}if(c<f){c=f}else if(c>i){c=i}a.selectionRect.setAttributes({width:b-a.startX,height:c-a.startY});if(Math.abs(a.startX-b)<11||Math.abs(a.startY-c)<11){a.selectionRect.setAttributes({globalAlpha:0.5})}else {a.selectionRect.setAttributes({globalAlpha:1})}l.renderFrame();return !1}},onGestureEnd:function(o){var a=this;if(a.zoomAnimationInProgress){return}if(a.getLocks()[a.gestureEvent]===a){var d=a.getChart(),e=a.getSurface(),f=d.getInnerRect(),k=d.getInnerPadding(),i=k.left,l=i+f[2],j=k.top,m=j+f[3],h=f[2],g=f[3],n=d.getEventXY(o),b=n[0],c=n[1];if(b<i){b=i}else if(b>l){b=l}if(c<j){c=j}else if(c>m){c=m}if(Math.abs(a.startX-b)<11||Math.abs(a.startY-c)<11){e.remove(a.selectionRect)}else {a.zoomBy([Math.min(a.startX,b)/h,1-Math.max(a.startY,c)/g,Math.max(a.startX,b)/h,1-Math.min(a.startY,c)/g]);a.selectionRect.setAttributes({x:Math.min(a.startX,b),y:Math.min(a.startY,c),width:Math.abs(a.startX-b),height:Math.abs(a.startY-c)});a.selectionRect.setAnimation(d.getAnimation()||{duration:0});a.selectionRect.setAttributes({globalAlpha:0,x:0,y:0,width:h,height:g});a.zoomAnimationInProgress=!0;d.suspendThicknessChanged();a.selectionRect.getAnimation().on('animationend',function(){d.resumeThicknessChanged();e.remove(a.selectionRect);a.selectionRect=null;a.zoomAnimationInProgress=!1})}e.renderFrame();a.sync();a.unlockEvents(a.gestureEvent);a.setSeriesOpacity(1);if(!a.zoomAnimationInProgress){e.remove(a.selectionRect);a.selectionRect=null}}},zoomBy:function(b){var d=this,l=d.getAxes(),j=d.getChart(),k=j.getAxes(),n=j.getInherited().rtl,e,i={},f,g;if(n){b=b.slice();f=1-b[0];g=1-b[2];b[0]=Math.min(f,g);b[2]=Math.max(f,g)}for(var h=0;h<k.length;h++){var c=k[h];e=l[c.getPosition()];if(e&&e.allowZoom!==!1){var m=c.isSide(),a=c.getVisibleRange();i[c.getId()]=a.slice(0);if(!m){c.setVisibleRange([(a[1]-a[0])*b[0]+a[0],(a[1]-a[0])*b[2]+a[0]])}else {c.setVisibleRange([(a[1]-a[0])*b[1]+a[0],(a[1]-a[0])*b[3]+a[0]])}}}d.zoomHistory.push(i);d.getUndoButton().setDisabled(!1)},undoZoom:function(){var a=this.zoomHistory.pop(),d=this.getChart().getAxes();if(a){for(var c=0;c<d.length;c++){var b=d[c];if(a[b.getId()]){b.setVisibleRange(a[b.getId()])}}}this.getUndoButton().setDisabled(this.zoomHistory.length===0);this.sync()},onDoubleTap:function(a){this.undoZoom()},destroy:function(){this.setUndoButton(null);this.callParent()}});Ext.define('Ext.chart.interactions.Crosshair',{extend:'Ext.chart.interactions.Abstract',requires:['Ext.chart.grid.HorizontalGrid','Ext.chart.grid.VerticalGrid','Ext.chart.CartesianChart','Ext.chart.axis.layout.Discrete'],type:'crosshair',alias:'interaction.crosshair',config:{axes:{top:{label:{},rect:{}},right:{label:{},rect:{}},bottom:{label:{},rect:{}},left:{label:{},rect:{}}},lines:{horizontal:{strokeStyle:'black',lineDash:[5,5]},vertical:{strokeStyle:'black',lineDash:[5,5]}},gesture:'drag'},applyAxes:function(b,a){return Ext.merge(a||{},b)},applyLines:function(b,a){return Ext.merge(a||{},b)},updateChart:function(a){if(a&&!a.isCartesian){Ext.raise("Crosshair interaction can only be used on cartesian charts.")}this.callParent(arguments)},getGestures:function(){var c=this,a={},b=c.getGesture();a[b]='onGesture';a[b+'start']='onGestureStart';a[b+'end']='onGestureEnd';a[b+'cancel']='onGestureCancel';return a},onGestureStart:function(I){var a=this,i=a.getChart(),C=i.getTheme().getAxis(),D,E=i.getSurface('overlay'),G=i.getInnerRect(),B=G[2],z=G[3],H=i.getEventXY(I),v=H[0],w=H[1],F=i.getAxes(),l=a.getAxes(),A=a.getLines(),f,p,u,t,r,b,g,h,y,x,q,s,e,J,d,o,m,c,j,k,n;I.claimGesture();if(v>0&&v<B&&w>0&&w<z){a.lockEvents(a.getGesture());j=Ext.apply({xclass:'Ext.chart.grid.HorizontalGrid',x:0,y:w,width:B},A.horizontal);k=Ext.apply({xclass:'Ext.chart.grid.VerticalGrid',x:v,y:0,height:z},A.vertical);a.axesLabels=a.axesLabels||{};for(n=0;n<F.length;n++){f=F[n];p=f.getSurface();u=p.getRect();s=f.getSprites()[0];t=u[2];r=u[3];b=f.getPosition();g=f.getAlignment();m=f.getTitle();c=m&&m.attr.text!==''&&m.getBBox();e=s.attr;J=s.thickness;d=e.axisLine?e.lineWidth:0;o=d/2;q=Math.max(e.majorTickSize,e.minorTickSize)+d;h=a.axesLabels[b]=p.add({type:'composite'});h.labelRect=h.addSprite(Ext.apply({type:'rect',fillStyle:'white',x:b==='right'?d:0,y:b==='bottom'?d:0,width:t-d-(g==='vertical'&&c?c.width:0),height:r-d-(g==='horizontal'&&c?c.height:0),translationX:b==='left'&&c?c.width:0,translationY:b==='top'&&c?c.height:0},l.rect||l[b].rect));if(g==='vertical'&&!k.strokeStyle){k.strokeStyle=e.strokeStyle}if(g==='horizontal'&&!j.strokeStyle){j.strokeStyle=e.strokeStyle}D=Ext.merge({},C.defaults,C[b]);y=Ext.apply({},f.config.label,D.label);x=l.label||l[b].label;h.labelText=h.addSprite(Ext.apply(y,x,{type:'text',x:a.calculateLabelTextPoint(!1,b,q,c,t,o),y:a.calculateLabelTextPoint(!0,b,q,c,r,o)}))}a.horizontalLine=E.add(j);a.verticalLine=E.add(k);return !1}},onGesture:function(G){var i=this;if(i.getLocks()[i.getGesture()]!==i){return}var m=i.getChart(),F=m.getSurface('overlay'),D=Ext.Array.slice(m.getInnerRect()),B=m.getInnerPadding(),o=B.left,p=B.top,A=D[2],z=D[3],E=m.getEventXY(G),d=E[0],e=E[1],C=m.getAxes(),g,y,x,s,f,l,r,h,a,j,k,v,w,t,u,b,c,n,q;if(d<0){d=0}else if(d>A){d=A}if(e<0){e=0}else if(e>z){e=z}d+=o;e+=p;for(q=0;q<C.length;q++){g=C[q];y=g.getPosition();x=g.getAlignment();s=g.getSurface();f=g.getSprites()[0];l=f.attr.matrix;k=f.attr.textPadding*2;a=i.axesLabels[y];r=f.getLayoutContext();h=g.getSegmenter();if(a){if(x==='vertical'){w=l.getYY();u=l.getDY();c=(e-u-p)/w;if(g.getLayout() instanceof Ext.chart.axis.layout.Discrete){e=Math.round(c)*w+u+p;c=h.from(Math.round(c));c=f.attr.data[c]}else {c=h.from(c)}n=h.renderer(c,r);a.setAttributes({translationY:e-p});a.labelText.setAttributes({text:n});j=a.labelText.getBBox();a.labelRect.setAttributes({height:j.height+k,y:-(j.height+k)/2});s.renderFrame()}else {v=l.getXX();t=l.getDX();b=(d-t-o)/v;if(g.getLayout() instanceof Ext.chart.axis.layout.Discrete){d=Math.round(b)*v+t+o;b=h.from(Math.round(b));b=f.attr.data[b]}else {b=h.from(b)}n=h.renderer(b,r);a.setAttributes({translationX:d-o});a.labelText.setAttributes({text:n});j=a.labelText.getBBox();a.labelRect.setAttributes({width:j.width+k,x:-(j.width+k)/2});s.renderFrame()}}}i.horizontalLine.setAttributes({y:e,strokeStyle:f.attr.strokeStyle});i.verticalLine.setAttributes({x:d,strokeStyle:f.attr.strokeStyle});F.renderFrame();return !1},onGestureEnd:function(j){var a=this,h=a.getChart(),f=h.getSurface('overlay'),i=h.getAxes(),g,c,d,e,b;f.remove(a.verticalLine);f.remove(a.horizontalLine);for(b=0;b<i.length;b++){g=i[b];c=g.getPosition();d=g.getSurface();e=a.axesLabels[c];if(e){delete a.axesLabels[c];d.remove(e)}d.renderFrame()}f.renderFrame();a.unlockEvents(a.getGesture())},onGestureCancel:function(a){this.onGestureEnd(a)},privates:{vertMap:{top:'start',bottom:'end'},horzMap:{left:'start',right:'end'},calculateLabelTextPoint:function(i,c,e,b,f,h){var a,g,d;if(i){d='y';g='height';c=this.vertMap[c]}else {d='x';g='width';c=this.horzMap[c]}switch(c){case 'start':a=b?b[d]+b[g]:0;return a+(f-a-e)/2-h;case 'end':a=b?f-b[d]:0;return e+(f-e-a)/2+h;default:return 0;}}}});Ext.define('Ext.chart.interactions.ItemHighlight',{extend:'Ext.chart.interactions.Abstract',type:'itemhighlight',alias:'interaction.itemhighlight',isItemHighlight:!0,config:{gestures:{tap:'onTapGesture',mousemove:'onMouseMoveGesture',mousedown:'onMouseDownGesture',mouseup:'onMouseUpGesture',mouseleave:'onMouseUpGesture'},sticky:!1,multiTooltips:!1},constructor:function(a){this.callParent([a]);this.stickyHighlightItem=null;this.tooltipItems=[]},destroy:function(){this.stickyHighlightItem=this.tooltipItems=null;this.callParent()},onMouseMoveGesture:function(i){var a=this,e=a.tooltipItems,k=i.pointerType==='mouse',m=[],b,g,c,f,l,d,h,j,n;if(a.getSticky()){return !0}if(k&&a.stickyHighlightItem){a.stickyHighlightItem=null;a.highlight(null)}if(a.isDragging){if(e.length&&k){a.hideTooltips(e);e.length=0}}else if(!a.stickyHighlightItem){if(a.getMultiTooltips()){c=a.getItemsForEvent(i)}else {b=a.getItemForEvent(i);c=b?[b]:[]}for(d=0,h=c.length;d<h;d++){b=c[d];if(d===0&&b!==a.getChart().getHighlightItem()){a.highlight(b);a.sync()}f=b.series.getTooltip();if(f){m.push(f)}}if(k){if(c.length){for(d=0,h=c.length;d<h;d++){b=c[d];f=b.series.getTooltip();if(f){for(j=0,n=e.length;j<n;j++){g=e[j];if(!Ext.Array.contains(c,g)){l=g.series.getTooltip();if(!Ext.Array.contains(m,l)){g.series.hideTooltip(g,!0)}}}if(f.getTrackMouse()){b.series.showTooltip(b,i)}else {a.showUntracked(b)}}}a.tooltipItems=c}else {a.hideTooltips(e);e.length=0}}return !1}},highlight:function(a){this.getChart().setHighlightItem(a)},showTooltip:function(b,a){a.series.showTooltip(a,b);Ext.Array.include(this.tooltipItems,a)},showUntracked:function(c){var e=c.sprite.getMarker(c.category),b,d,g,a,f;if(e){b=e.getSurface();g=b.matrix.elements[3]<0;d=b.element.getXY();a=Ext.clone(e.getBBoxFor(c.index));if(g){if(b.getInherited().rtl){f=b.inverseMatrix.clone().flipX().translate(c.sprite.attr.innerWidth,0,!0)}else {f=b.inverseMatrix}a=f.transformBBox(a)}a.x+=d[0];a.y+=d[1];c.series.showTooltipAt(c,a.x+a.width*0.5,a.y+a.height*0.5)}},onMouseDownGesture:function(){this.isDragging=!0},onMouseUpGesture:function(){this.isDragging=!1},isSameItem:function(a,b){return a&&b&&a.series===b.series&&a.field===b.field&&a.index===b.index},onTapGesture:function(c){var a=this;if(c.pointerType==='mouse'&&!a.getSticky()){return}var b=a.getItemForEvent(c);if(a.isSameItem(a.stickyHighlightItem,b)){b=null}a.stickyHighlightItem=b;a.highlight(b)},privates:{hideTooltips:function(a,e){var b,c,d;a=Ext.isArray(a)?a:[a];for(c=0,d=a.length;c<d;c++){b=a[c];if(b&&b.series&&!b.series.destroyed){b.series.hideTooltip(b,e)}}}}});Ext.define('Ext.chart.interactions.ItemEdit',{extend:'Ext.chart.interactions.ItemHighlight',requires:['Ext.tip.ToolTip'],type:'itemedit',alias:'interaction.itemedit',isItemEdit:!0,config:{style:null,renderer:null,tooltip:!0,gestures:{dragstart:'onDragStart',drag:'onDrag',dragend:'onDragEnd'},cursors:{ewResize:'ew-resize',nsResize:'ns-resize',move:'move'}},item:null,applyTooltip:function(a){if(a){var b=Ext.apply({},a,{renderer:this.defaultTooltipRenderer,constrainPosition:!0,shrinkWrapDock:!0,autoHide:!0,trackMouse:!0,mouseOffset:[20,20]});a=new Ext.tip.ToolTip(b)}return a},defaultTooltipRenderer:function(c,d,a,e){var b=[];if(a.xField){b.push(a.xField+': '+a.xValue)}if(a.yField){b.push(a.yField+': '+a.yValue)}c.setHtml(b.join('<br>'))},onDragStart:function(d){var b=this,a=b.getChart(),c=a.getHighlightItem();d.claimGesture();if(c){a.fireEvent('beginitemedit',a,b,b.item=c);return !1}},onDrag:function(c){var b=this,d=b.getChart(),a=d.getHighlightItem(),e=a&&a.sprite.type;if(a){switch(e){case 'barSeries':return b.onDragBar(c);case 'scatterSeries':return b.onDragScatter(c);}}},highlight:function(a){var e=this,c=e.getChart(),f=c.getFlipXY(),b=e.getCursors(),g=a&&a.sprite.type,d=c.el.dom.style;e.callParent([a]);if(a){switch(g){case 'barSeries':if(f){d.cursor=b.ewResize}else {d.cursor=b.nsResize};break;case 'scatterSeries':d.cursor=b.move;break;}}else {c.el.dom.style.cursor='default'}},onDragBar:function(m){var d=this,e=d.getChart(),q=e.getInherited().rtl,o=e.isCartesian&&e.getFlipXY(),a=e.getHighlightItem(),p=a.sprite.getMarker('items'),c=p.getMarkerFor(a.sprite.getId(),a.index),h=a.sprite.getSurface(),j=h.getRect(),i=h.getEventXY(m),k=a.sprite.attr.matrix,n=d.getRenderer(),f,g,l,b;if(o){b=q?j[2]-i[0]:i[0]}else {b=j[3]-i[1]}f={x:c.x,y:b,width:c.width,height:c.height+(c.y-b),radius:c.radius,fillStyle:'none',lineDash:[4,4],zIndex:100};Ext.apply(f,d.getStyle());if(Ext.isArray(a.series.getYField())){b=b-c.y-c.height}d.target={index:a.index,yField:a.field,yValue:(b-k.getDY())/k.getYY()};l=[e,{target:d.target,style:f,item:a}];g=Ext.callback(n,null,l,0,e);if(g){Ext.apply(f,g)}a.sprite.putMarker('items',f,'itemedit');d.showTooltip(m,d.target,a);h.renderFrame()},onDragScatter:function(s){var c=this,e=c.getChart(),v=e.getInherited().rtl,p=e.isCartesian&&e.getFlipXY(),a=e.getHighlightItem(),u=a.sprite.getMarker('markers'),d=u.getMarkerFor(a.sprite.getId(),a.index),o=a.sprite.getSurface(),l=o.getRect(),b=o.getEventXY(s),h=a.sprite.attr.matrix,r=a.series.getXAxis(),k=r&&r.getLayout().isContinuous,t=c.getRenderer(),f,n,q,g,m,i,j;if(p){m=v?l[2]-b[0]:b[0]}else {m=l[3]-b[1]}if(k){if(p){g=l[3]-b[1]}else {g=b[0]}}else {g=d.translationX}if(k){i=b[0];j=b[1]}else {if(p){i=b[0];j=d.translationY}else {i=d.translationX;j=b[1]}}f={translationX:i,translationY:j,scalingX:d.scalingX,scalingY:d.scalingY,r:d.r,fillStyle:'none',lineDash:[4,4],zIndex:100};Ext.apply(f,c.getStyle());c.target={index:a.index,yField:a.field,yValue:(m-h.getDY())/h.getYY()};if(k){Ext.apply(c.target,{xField:a.series.getXField(),xValue:(g-h.getDX())/h.getXX()})}q=[e,{target:c.target,style:f,item:a}];n=Ext.callback(t,null,q,0,e);if(n){Ext.apply(f,n)}a.sprite.putMarker('markers',f,'itemedit');c.showTooltip(s,c.target,a);o.renderFrame()},showTooltip:function(d,e,f){var a=this.getTooltip(),b,c;if(a&&Ext.toolkit!=='modern'){b=a.config;c=this.getChart();Ext.callback(b.renderer,null,[a,f,e,d],0,c);a.pointerEvent=d;if(a.isVisible()){a.realignToTarget()}else {a.show()}}},hideTooltip:function(){var a=this.getTooltip();if(a&&Ext.toolkit!=='modern'){a.hide()}},onDragEnd:function(f){var b=this,a=b.target,d=b.getChart(),e=d.getStore(),c;if(a){c=e.getAt(a.index);if(a.yField){c.set(a.yField,a.yValue,{convert:!1})}if(a.xField){c.set(a.xField,a.xValue,{convert:!1})}if(a.yField||a.xField){b.getChart().onDataChanged()}b.target=null}b.hideTooltip();if(b.item){d.fireEvent('enditemedit',d,b,b.item,a)}b.highlight(b.item=null)},destroy:function(){var a=this.getConfig('tooltip',!0);Ext.destroy(a);this.callParent()}});Ext.define('Ext.chart.interactions.PanZoom',{extend:'Ext.chart.interactions.Abstract',type:'panzoom',alias:'interaction.panzoom',requires:['Ext.draw.Animator'],config:{axes:{top:{},right:{},bottom:{},left:{}},minZoom:null,maxZoom:null,showOverflowArrows:!0,panGesture:'drag',zoomGesture:'pinch',zoomOnPanGesture:null,zoomOnPan:!1,doubleTapReset:!1,modeToggleButton:{xtype:'segmentedbutton',width:200,defaults:{ui:'default-toolbar'},cls:Ext.baseCSSPrefix+'panzoom-toggle',items:[{text:'Pan',value:'pan'},{text:'Zoom',value:'zoom'}]},hideLabelInGesture:!1},stopAnimationBeforeSync:!0,applyAxes:function(b,a){return Ext.merge(a||{},b)},updateZoomOnPan:function(a){var b=this.getModeToggleButton();b.setValue(a?'zoom':'pan')},updateZoomOnPanGesture:function(a){this.setZoomOnPan(a)},getZoomOnPanGesture:function(){return this.getZoomOnPan()},applyModeToggleButton:function(b,a){return Ext.factory(b,'Ext.button.Segmented',a)},updateModeToggleButton:function(a){if(a){a.on('change','onModeToggleChange',this)}},onModeToggleChange:function(b,a){this.setZoomOnPan(a==='zoom')},getGestures:function(){var d=this,a={},c=d.getPanGesture(),b=d.getZoomGesture();a[b]='onZoomGestureMove';a[b+'start']='onZoomGestureStart';a[b+'end']='onZoomGestureEnd';a[c]='onPanGestureMove';a[c+'start']='onPanGestureStart';a[c+'end']='onPanGestureEnd';a.doubletap='onDoubleTap';return a},onDoubleTap:function(h){var f=this,g=f.getDoubleTapReset(),b,c,d,a,e;if(g){b=f.getChart();c=b.getAxes();for(a=0,e=c.length;a<e;a++){d=c[a];d.setVisibleRange([0,1])}b.redraw()}},onPanGestureStart:function(b){if(!b||!b.touches||b.touches.length<2){var a=this,c=a.getChart(),d=c.getInnerRect(),e=c.element.getXY();b.claimGesture();c.suspendAnimation();a.startX=b.getX()-e[0]-d[0];a.startY=b.getY()-e[1]-d[1];a.oldVisibleRanges=null;a.hideLabels();c.suspendThicknessChanged();a.lockEvents(a.getPanGesture());return !1}},onPanGestureMove:function(b){var a=this,g=b.pointerType==='mouse',f=g&&a.getZoomOnPan();if(a.getLocks()[a.getPanGesture()]===a){var e=a.getChart(),c=e.getInnerRect(),d=e.element.getXY();if(f){a.transformAxesBy(a.getZoomableAxes(b),0,0,(b.getX()-d[0]-c[0])/a.startX,a.startY/(b.getY()-d[1]-c[1]))}else {a.transformAxesBy(a.getPannableAxes(b),b.getX()-d[0]-c[0]-a.startX,b.getY()-d[1]-c[1]-a.startY,1,1)}a.sync();return !1}},onPanGestureEnd:function(d){var a=this,c=a.getPanGesture(),b;if(a.getLocks()[c]===a){b=a.getChart();b.resumeThicknessChanged();a.showLabels();a.sync();a.unlockEvents(c);b.resumeAnimation();return !1}},onZoomGestureStart:function(b){if(b.touches&&b.touches.length===2){var a=this,d=a.getChart(),f=d.element.getXY(),e=d.getInnerRect(),g=f[0]+e[0],h=f[1]+e[1],c=[b.touches[0].point.x-g,b.touches[0].point.y-h,b.touches[1].point.x-g,b.touches[1].point.y-h],i=Math.max(44,Math.abs(c[2]-c[0])),j=Math.max(44,Math.abs(c[3]-c[1]));b.claimGesture();d.suspendAnimation();d.suspendThicknessChanged();a.lastZoomDistances=[i,j];a.lastPoints=c;a.oldVisibleRanges=null;a.hideLabels();a.lockEvents(a.getZoomGesture());return !1}},onZoomGestureMove:function(c){var a=this;if(a.getLocks()[a.getZoomGesture()]===a){var k=a.getChart(),d=k.getInnerRect(),m=k.element.getXY(),n=m[0]+d[0],o=m[1]+d[1],l=Math.abs,h=a.lastPoints,b=[c.touches[0].point.x-n,c.touches[0].point.y-o,c.touches[1].point.x-n,c.touches[1].point.y-o],i=Math.max(44,l(b[2]-b[0])),j=Math.max(44,l(b[3]-b[1])),g=this.lastZoomDistances||[i,j],e=i/g[0],f=j/g[1];a.transformAxesBy(a.getZoomableAxes(c),d[2]*(e-1)/2+b[2]-h[2]*e,d[3]*(f-1)/2+b[3]-h[3]*f,e,f);a.sync();return !1}},onZoomGestureEnd:function(d){var a=this,c=a.getZoomGesture(),b;if(a.getLocks()[c]===a){b=a.getChart();b.resumeThicknessChanged();a.showLabels();a.sync();a.unlockEvents(c);b.resumeAnimation();return !1}},hideLabels:function(){if(this.getHideLabelInGesture()){this.eachInteractiveAxes(function(a){a.hideLabels()})}},showLabels:function(){if(this.getHideLabelInGesture()){this.eachInteractiveAxes(function(a){a.showLabels()})}},isEventOnAxis:function(b,c){var a=c.getSurface().getRect();return a[0]<=b.getX()&&b.getX()<=a[0]+a[2]&&a[1]<=b.getY()&&b.getY()<=a[1]+a[3]},getPannableAxes:function(d){var h=this,i=h.getAxes(),b=h.getChart().getAxes(),a,g=b.length,f=[],e=!1,c;if(d){for(a=0;a<g;a++){if(this.isEventOnAxis(d,b[a])){e=!0;break}}}for(a=0;a<g;a++){c=i[b[a].getPosition()];if(c&&c.allowPan!==!1&&(!e||this.isEventOnAxis(d,b[a]))){f.push(b[a])}}return f},getZoomableAxes:function(e){var i=this,j=i.getAxes(),d=i.getChart().getAxes(),g=[],a,h=d.length,b,f=!1,c;if(e){for(a=0;a<h;a++){if(this.isEventOnAxis(e,d[a])){f=!0;break}}}for(a=0;a<h;a++){b=d[a];c=j[b.getPosition()];if(c&&c.allowZoom!==!1&&(!f||this.isEventOnAxis(e,b))){g.push(b)}}return g},eachInteractiveAxes:function(e){var c=this,d=c.getAxes(),b=c.getChart().getAxes();for(var a=0;a<b.length;a++){if(d[b[a].getPosition()]){if(!1===e.call(this,b[a])){return}}}},transformAxesBy:function(c,g,h,j,k){var i=this.getChart().getInnerRect(),f=this.getAxes(),d,b=this.oldVisibleRanges,e=!1;if(!b){this.oldVisibleRanges=b={};this.eachInteractiveAxes(function(a){b[a.getId()]=a.getVisibleRange()})}if(!i){return}for(var a=0;a<c.length;a++){d=f[c[a].getPosition()];e=this.transformAxisBy(c[a],b[c[a].getId()],g,h,j,k,this.minZoom||d.minZoom,this.maxZoom||d.maxZoom)||e}return e},transformAxisBy:function(c,b,p,q,r,s,o,n){var g=this,a=b[1]-b[0],d=c.getVisibleRange(),m=o||g.getMinZoom()||c.config.minZoom,h=n||g.getMaxZoom()||c.config.maxZoom,f=g.getChart().getInnerRect(),k,j;if(!f){return}var e=c.isSide(),i=e?f[3]:f[2],l=e?-q:p;a/=e?s:r;if(a<0){a=-a}if(a*m>1){a=1}if(a*h<1){a=1/h}k=b[0];j=b[1];d=d[1]-d[0];if(a===d&&d===1){return}c.setVisibleRange([(b[0]+b[1]-a)*0.5-l/i*a,(b[0]+b[1]+a)*0.5-l/i*a]);return Math.abs(k-c.getVisibleRange()[0])>1.0E-10||Math.abs(j-c.getVisibleRange()[1])>1.0E-10},destroy:function(){this.setModeToggleButton(null);this.callParent()}});Ext.define('Ext.chart.interactions.Rotate',{extend:'Ext.chart.interactions.Abstract',type:'rotate',alternateClassName:'Ext.chart.interactions.RotatePie3D',alias:['interaction.rotate','interaction.rotatePie3d'],config:{gesture:'rotate',gestures:{dragstart:'onGestureStart',drag:'onGesture',dragend:'onGestureEnd'},rotation:0},oldRotations:null,getAngle:function(e){var d=this,b=d.getChart(),c=b.getEventXY(e),a=b.getCenter();return Math.atan2(c[1]-a[1],c[0]-a[0])},onGestureStart:function(b){var a=this;b.claimGesture();a.lockEvents('drag');a.angle=a.getAngle(b);a.oldRotations={};a.getChart().suspendAnimation();a.fireEvent('rotatestart',a,a.getRotation());return !1},onGesture:function(c){var a=this,b=a.getAngle(c)-a.angle;if(a.getLocks().drag===a){a.doRotateTo(b,!0);return !1}},doRotateTo:function(l,k){var b=this,m=b.getChart(),n=m.getAxes(),j=m.getSeries(),e=b.oldRotations,d,f,h,g,c,a,i;for(a=0,i=n.length;a<i;a++){h=n[a];c=h.getId();f=e[c]||(e[c]=h.getRotation());d=l+(k?f:0);h.setRotation(d)}for(a=0,i=j.length;a<i;a++){g=j[a];c=g.getId();f=e[c]||(e[c]=g.getRotation());d=Ext.draw.Draw.degrees(l+(k?f:0));g.setRotation(d)}b.setRotation(d);b.fireEvent('rotate',b,b.getRotation());b.sync()},rotateTo:function(e,d,a){var b=this,c=b.getChart();if(!a){c.suspendAnimation()}b.doRotateTo(e,d,a);b.oldRotations={};if(!a){c.resumeAnimation()}},onGestureEnd:function(b){var a=this;if(a.getLocks().drag===a){a.onGesture(b);a.unlockEvents('drag');a.getChart().resumeAnimation();a.fireEvent('rotateend',a,a.getRotation());a.fireEvent('rotationEnd',a,a.getRotation());return !1}}});Ext.define('Ext.chart.navigator.ContainerBase',{extend:'Ext.Container',updateNavigator:function(b,a){if(a){this.remove(a,!0)}this.add(b)}});Ext.define('Ext.chart.navigator.NavigatorBase',{extend:'Ext.chart.CartesianChart',initialize:function(){var a=this;a.callParent();a.setupEvents()}});Ext.define('Ext.chart.navigator.sprite.RangeMask',{extend:'Ext.draw.sprite.Sprite',alias:'sprite.rangemask',inheritableStatics:{def:{processors:{min:'limited01',max:'limited01',thumbOpacity:'limited01'},defaults:{min:0,max:1,lineWidth:2,miterLimit:1,strokeStyle:'#787878',thumbOpacity:1}}},getBBox:function(c){var d=this,b=d.attr,a=b.bbox;a.plain={x:0,y:0,width:1,height:1};if(c){return a.plain}return a.transform||(a.transform=b.matrix.transformBBox(a.plain))},renderThumb:function(f,b,h,i){var d=this,a=d.shapeSprite,c=d.textureSprite,g=d.attr.thumbOpacity,e={opacity:g,translationX:h,translationY:i};if(!a){a=d.shapeSprite=new Ext.draw.sprite.Rect({x:-9.5,y:-9.5,width:19,height:19,radius:4,lineWidth:1,fillStyle:{type:'linear',degrees:90,stops:[{offset:0,color:'#EEE'},{offset:1,color:'#FFF'}]},strokeStyle:'#999'});c=d.textureSprite=new Ext.draw.sprite.Path({path:'M -4, -5, -4, 5 M 0, -5, 0, 5 M 4, -5, 4, 5',strokeStyle:{type:'linear',degrees:90,stops:[{offset:0,color:'#CCC'},{offset:1,color:'#BBB'}]},lineWidth:2})}b.save();a.setAttributes(e);a.applyTransformations();c.setAttributes(e);c.applyTransformations();a.useAttributes(b);a.render(f,b);c.useAttributes(b);c.render(f,b);b.restore()},render:function(k,a){var j=this,g=j.attr,e=g.matrix.elements,h=e[0],d=e[3],c=e[4],b=e[5],n=g.min,m=g.max,f=n*h+c,i=m*h+c,l=Math.round(0.5*d+b);a.beginPath();a.moveTo(c,b);a.lineTo(h+c,b);a.lineTo(h+c,d+b);a.lineTo(c,d+b);a.lineTo(c,b);a.moveTo(f,b);a.lineTo(f,d+b);a.lineTo(i,d+b);a.lineTo(i,b);a.lineTo(f,b);a.fillStroke(g,!0);j.renderThumb(k,a,Math.round(f),l);j.renderThumb(k,a,Math.round(i),l)}});Ext.define('Ext.chart.navigator.Navigator',{extend:'Ext.chart.navigator.NavigatorBase',isNavigator:!0,requires:['Ext.chart.navigator.sprite.RangeMask'],config:{docked:'bottom',span:'series',insetPadding:0,innerPadding:0,navigatorContainer:null,axis:null,tolerance:20,minimum:0.8,maximum:1,thumbGap:30,autoHideThumbs:!0,width:'100%',height:75},dragType:null,constructor:function(b){b=b||{};var a=this,c=[b.minimum||0.8,b.maximum||1],d;a.callParent([b]);d=a.overlaySurface;d.element.setStyle({zIndex:100});a.rangeMask=d.add({type:'rangemask',min:c[0],max:c[1],fillStyle:'rgba(0, 0, 0, .25)'});a.onDragEnd();a.rangeMask.setAnimation({duration:500,customDurations:{min:0,max:0,translationX:0,translationY:0,scalingX:0,scalingY:0,scalingCenterX:0,scalingCenterY:0,fillStyle:0,strokeStyle:0}});a.setVisibleRange(c)},createSurface:function(b){var a=this.callParent([b]);if(b==='overlay'){this.overlaySurface=a}return a},applyAxis:function(a){return this.getNavigatorContainer().getChart().getAxis(a)},updateAxis:function(a,e){var b=this,d='visiblerangechange',c='onAxisVisibleRangeChange';if(e){e.un(d,c,b)}if(a){a.on(d,c,b)}b.axis=a},getAxis:function(){return this.axis},onAxisVisibleRangeChange:function(b,a){this.setVisibleRange(a)},updateNavigatorContainer:function(j){var a=this,f=a.chart,b=a.chart=j&&j.getChart(),l=b&&b.getSeries(),c=a.chartLegendStore,i=[],m='update',k='onChartLegendStoreUpdate',e,d,h,g;if(f){f.un('layout','afterBoundChartLayout',a);f.un('themechange','onChartThemeChange',a);f.un('storechange','onChartStoreChange',a)}b.on('layout','afterBoundChartLayout',a);for(g=0;g<l.length;g++){e=l[g];h=a.getSeriesConfig(e);d=Ext.create('series.'+h.type,h);d.parentSeries=e;e.navigatorSeries=d;i.push(d)}if(c){c.un(m,k,a);a.chartLegendStore=null}if(b){a.setStore(b.getStore());a.chartLegendStore=c=b.getLegendStore();if(c){c.on(m,k,a)}b.on('themechange','onChartThemeChange',a);b.on('storechange','onChartStoreChange',a);a.onChartThemeChange(b,b.getTheme())}a.setSeries(i)},onChartThemeChange:function(b,a){this.setTheme(a)},onChartStoreChange:function(b,a){this.setStore(a)},addCustomStyle:function(a,c,b){var e,d;c=c||{};b=b||{};a.style=a.style||{};a.subStyle=a.subStyle||{};e=c&&(c.fillStyle||c.fill);d=c&&(c.strokeStyle||c.stroke);if(e){a.style.fillStyle=e}if(d){a.style.strokeStyle=d}e=b&&(b.fillStyle||b.fill);d=b&&(b.strokeStyle||b.stroke);if(e){a.subStyle.fillStyle=e}if(d){a.subStyle.strokeStyle=d}return a},getSeriesConfig:function(a){var d=this,c=a.getStyle(),b;if(a.isLine){b=d.addCustomStyle({type:'line',fill:!0,xField:a.getXField(),yField:a.getYField(),smooth:a.getSmooth()},c)}else if(a.isCandleStick){b=d.addCustomStyle({type:'line',fill:!0,xField:a.getXField(),yField:a.getCloseField()},c.raiseStyle)}else if(a.isArea||a.isBar){b=d.addCustomStyle({type:'area',xField:a.getXField(),yField:a.getYField()},c,a.getSubStyle())}else {Ext.raise("Navigator only works with 'line', 'bar', 'candlestick' and 'area' series.")}b.style.fillOpacity=0.2;return b},onChartLegendStoreUpdate:function(e,a){var d=this,c=d.chart,b;if(c&&a){b=c.getSeries().map[a.get('series')];if(b&&b.navigatorSeries){b.navigatorSeries.setHiddenByIndex(a.get('index'),a.get('disabled'));d.redraw()}}},setupEvents:function(){var a=this,b=a.overlaySurface.element;b.on({scope:a,drag:'onDrag',dragstart:'onDragStart',dragend:'onDragEnd',dragcancel:'onDragEnd',mousemove:'onMouseMove'})},onMouseMove:function(e){var c=this,b=c.overlaySurface.element,a=b.dom.style,d=c.getDragType(e.pageX-b.getXY()[0]);switch(d){case 'min':case 'max':a.cursor='ew-resize';break;case 'pan':a.cursor='move';break;default:a.cursor='default';}},getDragType:function(b){var f=this,a=f.getTolerance(),h=f.overlaySurface.element.getSize().width,g=f.rangeMask,e=h*g.attr.min,d=h*g.attr.max,c;if(b>e+a&&b<d-a){c='pan'}else if(b<=e+a&&b>e-a){c='min'}else if(b>=d-a&&b<d+a){c='max'}return c},onDragStart:function(b){if(this.dragType||b&&b.touches&&b.touches.length>1){return}var a=this,d=b.touches[0].pageX-a.overlaySurface.element.getXY()[0],c=a.getDragType(d);a.rangeMask.attr.thumbOpacity=1;if(c){a.dragType=c;a.touchId=b.touches[0].identifier;a.dragX=d}},onDrag:function(k){if(k.touch.identifier!==this.touchId){return}var c=this,g=c.overlaySurface.element,j=g.getSize().width,l=k.touches[0].pageX-g.getXY()[0],d=c.getThumbGap()/j,h=c.rangeMask,b=h.attr.min,a=h.attr.max,i=a-b,f=c.dragType,m=c.dragX,e=(l-m)/j;if(f==='pan'){b+=e;a+=e;if(b<0){b=0;a=i}if(a>1){a=1;b=a-i}}else if(f==='min'){b+=e;if(b<0){b=0}if(b>a-d){b=a-d}}else if(f==='max'){a+=e;if(a>1){a=1}if(a<b+d){a=b+d}}else {return}c.dragX=l;c.setVisibleRange([b,a])},onDragEnd:function(){var a=this,b=a.getAutoHideThumbs();a.dragType=null;if(b){a.rangeMask.setAttributes({thumbOpacity:0})}},updateMinimum:function(a){if(!this.isConfiguring){this.setVisibleRange([a,this.getMaximum()])}},updateMaximum:function(a){if(!this.isConfiguring){this.setVisibleRange([this.getMinimum(),a])}},getMinimum:function(){return this.rangeMask.attr.min},getMaximum:function(){return this.rangeMask.attr.max},setVisibleRange:function(b){var a=this,c=a.chart;a.axis.setVisibleRange(b);a.rangeMask.setAttributes({min:b[0],max:b[1]});a.getSurface('overlay').renderFrame();c.suspendAnimation();c.redraw();c.resumeAnimation()},afterBoundChartLayout:function(){var a=this,c=a.getSpan()==='series',b=a.chart.getMainRect(),d=a.element.getSize();if(b&&c){a.setInsetPadding({left:b[0],right:d.width-b[2]-b[0],top:0,bottom:0});a.performLayout()}},afterChartLayout:function(){var b=this,a=b.overlaySurface.element.getSize();b.rangeMask.setAttributes({scalingCenterX:0,scalingCenterY:0,scalingX:a.width,scalingY:a.height})},doDestroy:function(){var a=this.chart;if(a&&!a.destroyed){a.un('layout','afterBoundChartLayout',this)}this.callParent()}});Ext.define('Ext.chart.navigator.Container',{extend:'Ext.chart.navigator.ContainerBase',requires:['Ext.chart.CartesianChart','Ext.chart.navigator.Navigator'],xtype:'chartnavigator',config:{chart:null,navigator:{}},layout:'fit',applyChart:function(a,b){if(b){b.destroy()}if(a){if(a.isCartesian){Ext.raise('Only cartesian charts are supported.')}if(!a.isChart){a.$initParent=this;a=new Ext.chart.CartesianChart(a);delete a.$initParent}}return a},legendStore:null,surfaceRects:null,updateChart:function(b,c){var a=this;if(b){a.legendStore=b.getLegendStore();if(!a.items&&a.initItems){a.initItems()}a.add(b)}},applyNavigator:function(a,b){var c;if(b){b.destroy()}if(a){a.navigatorContainer=a.parent=this;c=new Ext.chart.navigator.Navigator(a)}return c},preview:function(){this.getNavigator().preview(this.getImage())},download:function(a){a=a||{};a.data=this.getImage().data;this.getNavigator().download(a)},setVisibleRange:function(a){this.getNavigator().setVisibleRange(a)},getImage:function(k){var c=this,l=c.getChart(),g=c.getNavigator(),n=g.getDocked(),e=l.bodyElement.getSize(),h=g.bodyElement.getSize(),j=l.getSurfaces(!0),i=g.getSurfaces(!0),m={width:e.width,height:e.height+h.height},a,f,b,d;if(n==='top'){c.shiftSurfaces(j,0,h.height)}else {c.shiftSurfaces(i,0,e.height)}b=j.concat(i);d=b[0];if((Ext.isIE||Ext.isEdge)&&d.isSVG){a={data:d.toSVG(m,b),type:'svg-markup'}}else {a=d.flatten(m,b);if(k==='image'){f=new Image();f.src=a.data;a.data=f;return a}if(k==='stream'){a.data=a.data.replace(/^data:image\/[^;]+/,'data:application/octet-stream');return a}}c.unshiftSurfaces(b);return a},shiftSurfaces:function(b,e,f){var d=b.length,a=0,c;this.surfaceRects={};for(;a<d;a++){c=b[a];this.shiftSurface(c,e,f)}},shiftSurface:function(b,c,d){var a=b.getRect();this.surfaceRects[b.getId()]=a.slice();a[0]+=c;a[1]+=d},unshiftSurfaces:function(e){var f=this.surfaceRects,g=e.length,d=0,b,c,a;if(f){for(;d<g;d++){b=e[d];c=b.getRect();a=f[b.getId()];if(a){c[0]=a[0];c[1]=a[1]}}}this.surfaceRects=null}});Ext.define('Ext.chart.plugin.ItemEvents',{extend:'Ext.plugin.Abstract',alias:'plugin.chartitemevents',moveEvents:!1,mouseMoveEvents:{mousemove:!0,mouseover:!0,mouseout:!0},itemMouseMoveEvents:{itemmousemove:!0,itemmouseover:!0,itemmouseout:!0},init:function(b){var a='handleEvent';this.chart=b;b.addElementListener({click:a,tap:a,dblclick:a,mousedown:a,mousemove:a,mouseup:a,mouseover:a,mouseout:a,priority:1001,scope:this})},hasItemMouseMoveListeners:function(){var b=this.chart.hasListeners,a;for(a in this.itemMouseMoveEvents){if(a in b){return !0}}return !1},handleEvent:function(b){var e=this,c=e.chart,g=b.type in e.mouseMoveEvents,d=e.lastItem,f,a;if(g&&!e.hasItemMouseMoveListeners()&&!e.moveEvents){return}f=c.getEventXY(b);a=c.getItemForPoint(f[0],f[1]);if(g&&!Ext.Object.equals(a,d)){if(d){c.fireEvent('itemmouseout',c,d,b);d.series.fireEvent('itemmouseout',d.series,d,b)}if(a){c.fireEvent('itemmouseover',c,a,b);a.series.fireEvent('itemmouseover',a.series,a,b)}}if(a){c.fireEvent('item'+b.type,c,a,b);a.series.fireEvent('item'+b.type,a.series,a,b)}e.lastItem=a}});Ext.define('Ext.chart.series.Cartesian',{extend:'Ext.chart.series.Series',config:{xField:null,yField:null,xAxis:null,yAxis:null},directions:['X','Y'],fieldCategoryX:['X'],fieldCategoryY:['Y'],applyXAxis:function(a,b){return this.getChart().getAxis(a)||b},applyYAxis:function(a,b){return this.getChart().getAxis(a)||b},updateXAxis:function(a){a.processData(this)},updateYAxis:function(a){a.processData(this)},coordinateX:function(){return this.coordinate('X',0,2)},coordinateY:function(){return this.coordinate('Y',1,2)},getItemForPoint:function(e,f){var a=this,c=a.getSprites()[0],d=a.getStore(),b;if(c&&!a.getHidden()){b=c.getNearestDataPoint(e,f)}return b?{series:a,sprite:c,category:a.getItemInstancing()?'items':'markers',index:b.index,record:d.getData().items[b.index],field:a.getYField(),distance:b.distance}:null},createSprite:function(){var c=this,a=c.callParent(),d=c.getChart(),b=c.getXAxis();a.setAttributes({flipXY:d.getFlipXY(),xAxis:b});if(a.setAggregator&&b&&b.getAggregator){if(b.getAggregator){a.setAggregator({strategy:b.getAggregator()})}else {a.setAggregator({})}}return a},getSprites:function(){var b=this,c=this.getChart(),a=b.sprites;if(!c){return Ext.emptyArray}if(!a.length){b.createSprite()}return a},getXRange:function(){return [this.dataRange[0],this.dataRange[2]]},getYRange:function(){return [this.dataRange[1],this.dataRange[3]]}});Ext.define('Ext.chart.series.StackedCartesian',{extend:'Ext.chart.series.Cartesian',config:{stacked:!0,splitStacks:!0,fullStack:!1,fullStackTotal:100,hidden:[]},reversedSpriteZOrder:!0,spriteAnimationCount:0,themeColorCount:function(){var b=this,a=b.getYField();return Ext.isArray(a)?a.length:1},updateStacked:function(){this.processData()},updateSplitStacks:function(){this.processData()},coordinateY:function(){return this.coordinateStacked('Y',1,2)},coordinateStacked:function(r,w,C){var d=this,D=d.getStore(),B=D.getData().items,u=B.length,E=d['get'+r+'Axis'](),A=d.getHidden(),p=d.getSplitStacks(),t=d.getFullStack(),x=d.getFullStackTotal(),f=[0,0],y=d['fieldCategory'+r],h=[],o=[],n=[],l,z=d.getStacked(),m=d.getSprites(),s=[],i,b,a,v,q,k,j,g,c,e;if(!m.length){return}for(i=0;i<y.length;i++){g=y[i];v=d.getFields([g]);q=v.length;for(b=0;b<u;b++){h[b]=0;o[b]=0;n[b]=0}for(b=0;b<q;b++){if(!A[b]){s[b]=d.coordinateData(B,v[b],E)}}if(z&&t){k=[];if(p){j=[]}for(b=0;b<u;b++){k[b]=0;if(p){j[b]=0}for(a=0;a<q;a++){c=s[a];if(!c){continue}c=c[b];if(c>=0||!p){k[b]+=c}else if(c<0){j[b]+=c}}}}for(b=0;b<q;b++){e={};if(A[b]){e['dataStart'+g]=h;e['data'+g]=h;m[b].setAttributes(e);continue}c=s[b];if(z){l=[];for(a=0;a<u;a++){if(!c[a]){c[a]=0}if(c[a]>=0||!p){if(t&&k[a]){c[a]*=x/k[a]}h[a]=o[a];o[a]+=c[a];l[a]=o[a]}else {if(t&&j[a]){c[a]*=x/j[a]}h[a]=n[a];n[a]+=c[a];l[a]=n[a]}}e['dataStart'+g]=h;e['data'+g]=l;Ext.chart.Util.expandRange(f,h);Ext.chart.Util.expandRange(f,l)}else {e['dataStart'+g]=h;e['data'+g]=c;Ext.chart.Util.expandRange(f,c)}m[b].setAttributes(e)}}f=Ext.chart.Util.validateRange(f,d.defaultRange);d.dataRange[w]=f[0];d.dataRange[w+C]=f[1];e={};e['dataMin'+r]=f[0];e['dataMax'+r]=f[1];for(i=0;i<m.length;i++){m[i].setAttributes(e)}},getFields:function(d){var f=this,b=[],e=d.length,c,a;for(c=0;c<e;c++){a=f['get'+d[c]+'Field']();if(Ext.isArray(a)){b.push.apply(b,a)}else {b.push(a)}}return b},updateLabelOverflowPadding:function(c){var b=this,a;if(!b.isConfiguring){a=b.getLabel();if(a){a.setAttributes({labelOverflowPadding:c})}}},updateLabelData:function(){var a=this,b=a.getLabel();if(b){b.setAttributes({labelOverflowPadding:a.getLabelOverflowPadding()})}a.callParent()},getSprites:function(){var a=this,j=a.getChart(),f=a.getFields(a.fieldCategoryY),h=a.getItemInstancing(),e=a.sprites,g=a.getHidden(),d=!1,i=f.length,b,c;if(!j){return []}for(b=0;b<i;b++){c=e[b];if(!c){c=a.createSprite();c.setAttributes({zIndex:(a.reversedSpriteZOrder?-1:1)*b});c.setField(f[b]);d=!0;g.push(!1);if(h){c.getMarker('items').getTemplate().setAttributes(a.getStyleByIndex(b))}else {c.setAttributes(a.getStyleByIndex(b))}}}if(d){a.updateHidden(g)}return e},getItemForPoint:function(n,o){var a=this,h=a.getSprites(),m=a.getStore(),l=a.getHidden(),f=Infinity,j=null,d=-1,g=-1,c,e,i,b,k;for(b=0,k=h.length;b<k;b++){if(l[b]){continue}i=h[b];c=i.getNearestDataPoint(n,o);if(c){if(c.distance<f){f=c.distance;g=c.index;d=b}}}if(d>-1){e=a.getYField();j={series:a,sprite:h[d],category:a.getItemInstancing()?'items':'markers',index:g,record:m.getData().items[g],field:typeof e==='string'?e:e[d],distance:f}}return j},provideLegendInfo:function(k){var b=this,g=b.getSprites(),d=b.getTitle(),h=b.getYField(),i=b.getHidden(),j=g.length===1,f,e,a,c;for(a=0;a<g.length;a++){f=b.getStyleByIndex(a);e=f.fillStyle;if(d){if(Ext.isArray(d)){c=d[a]}else if(j){c=d}}if(!d||!c){if(Ext.isArray(h)){c=h[a]}else {c=b.getId()}}k.push({name:c,mark:(Ext.isObject(e)?e.stops&&e.stops[0].color:e)||f.strokeStyle||'black',disabled:i[a],series:b.getId(),index:a})}},onSpriteAnimationStart:function(a){this.spriteAnimationCount++;if(this.spriteAnimationCount===1){this.fireEvent('animationstart')}},onSpriteAnimationEnd:function(a){this.spriteAnimationCount--;if(this.spriteAnimationCount===0){this.fireEvent('animationend')}}});Ext.define('Ext.chart.series.sprite.Series',{extend:'Ext.draw.sprite.Sprite',mixins:{markerHolder:'Ext.chart.MarkerHolder'},inheritableStatics:{def:{processors:{dataMinX:'number',dataMaxX:'number',dataMinY:'number',dataMaxY:'number',rangeX:'data',rangeY:'data',dataX:'data',dataY:'data',labels:'default',labelOverflowPadding:'number'},defaults:{dataMinX:0,dataMaxX:1,dataMinY:0,dataMaxY:1,rangeX:null,rangeY:null,dataX:null,dataY:null,labels:null,labelOverflowPadding:10},triggers:{dataX:'bbox',dataY:'bbox',dataMinX:'bbox',dataMaxX:'bbox',dataMinY:'bbox',dataMaxY:'bbox'}}},config:{store:null,series:null,field:null}});Ext.define('Ext.chart.series.sprite.Cartesian',{extend:'Ext.chart.series.sprite.Series',inheritableStatics:{def:{processors:{selectionTolerance:'number',flipXY:'bool',renderer:'default',visibleMinX:'number',visibleMinY:'number',visibleMaxX:'number',visibleMaxY:'number',innerWidth:'number',innerHeight:'number'},defaults:{selectionTolerance:20,flipXY:!1,renderer:null,transformFillStroke:!1,visibleMinX:0,visibleMinY:0,visibleMaxX:1,visibleMaxY:1,innerWidth:1,innerHeight:1},triggers:{dataX:'dataX,bbox',dataY:'dataY,bbox',visibleMinX:'panzoom',visibleMinY:'panzoom',visibleMaxX:'panzoom',visibleMaxY:'panzoom',innerWidth:'panzoom',innerHeight:'panzoom'},updaters:{dataX:function(a){this.processDataX();this.scheduleUpdater(a,'dataY',['dataY'])},dataY:function(){this.processDataY()},panzoom:function(a){var f=a.visibleMaxX-a.visibleMinX,g=a.visibleMaxY-a.visibleMinY,b=a.flipXY?a.innerHeight:a.innerWidth,d=!a.flipXY?a.innerHeight:a.innerWidth,c=this.getSurface(),e=c?c.getInherited().rtl:!1;a.scalingCenterX=0;a.scalingCenterY=0;a.scalingX=b/f;a.scalingY=d/g;a.translationX=-(a.visibleMinX*a.scalingX);a.translationY=-(a.visibleMinY*a.scalingY);if(e&&!a.flipXY){a.scalingX*=-1;a.translationX*=-1;a.translationX+=b}this.applyTransformations(!0)}}}},processDataY:Ext.emptyFn,processDataX:Ext.emptyFn,updatePlainBBox:function(b){var a=this.attr;b.x=a.dataMinX;b.y=a.dataMinY;b.width=a.dataMaxX-a.dataMinX;b.height=a.dataMaxY-a.dataMinY},binarySearch:function(c){var e=this.attr.dataX,a=0,b=e.length;if(c<=e[0]){return a}if(c>=e[b-1]){return b-1}while(a+1<b){var d=(a+b)>>1,f=e[d];if(f===c){return d}else if(f<c){a=d}else {b=d}}return a},render:function(f,h,b){var g=this,c=g.attr,e=1,a=c.inverseMatrix.clone();a.appendMatrix(f.inverseMatrix);if(c.dataX===null||c.dataX===undefined){return}if(c.dataY===null||c.dataY===undefined){return}if(a.getXX()*a.getYX()||a.getXY()*a.getYY()){Ext.Logger.warn('Cartesian Series sprite does not support rotation/sheering');return}var d=a.transformList([[b[0]-e,b[3]+e],[b[0]+b[2]+e,-e]]);d=d[0].concat(d[1]);g.renderClipped(f,h,d,b)},renderClipped:Ext.emptyFn,getIndexNearPoint:function(b,c){var a=this.getNearestDataPoint(b,c);return a?a.index:-1},getNearestDataPoint:function(q,r){var d=this,h=d.attr,t=d.getSeries(),o=d.getSurface(),v=d.boundMarkers.items,s=h.matrix,i=h.dataX,u=h.dataY,n=h.selectionTolerance,e=Infinity,g=-1,p=null,f,l,m,b,a,c,j,k;if(v){c=i.length;if(t.reversedSpriteZOrder){a=c-1;j=-1;k=-1}else {a=0;j=c;k=1}for(;a!==j;a+=k){var w=d.getMarkerBBox('items',a);b=o.inverseMatrix.transformPoint([q,r]);if(Ext.draw.Draw.isPointInBBox(b[0],b[1],w)){g=a;e=0;break}}}else {for(a=0,c=i.length;a<c;a++){b=s.transformPoint([i[a],u[a]]);b=o.matrix.transformPoint(b);l=q-b[0];m=r-b[1];f=Math.sqrt(l*l+m*m);if(n&&f>n){continue}if(f<e){e=f;g=a}}}if(g>-1){p={index:g,distance:e}}return p}});Ext.define('Ext.chart.series.sprite.StackedCartesian',{extend:'Ext.chart.series.sprite.Cartesian',inheritableStatics:{def:{processors:{groupCount:'number',groupOffset:'number',dataStartY:'data'},defaults:{selectionTolerance:20,groupCount:1,groupOffset:0,dataStartY:null},triggers:{dataStartY:'dataY,bbox'}}}});Ext.define('Ext.chart.series.sprite.Area',{alias:'sprite.areaSeries',extend:'Ext.chart.series.sprite.StackedCartesian',inheritableStatics:{def:{processors:{step:'bool'},defaults:{selectionTolerance:0,step:!1}}},renderClipped:function(E,b,u){var m=this,B=m.getStore(),A=m.getSeries(),e=m.attr,f=e.dataX,p=e.dataY,x=e.dataStartY,v=e.matrix,c,d,a,y,r,q,w,j=v.elements[0],h=v.elements[4],n=v.elements[3],i=v.elements[5],t=m.surfaceMatrix,g={},D=Math.min(u[0],u[2]),C=Math.max(u[0],u[2]),l=Math.max(0,this.binarySearch(D)),k=Math.min(f.length-1,this.binarySearch(C)+1),o=e.renderer,z={store:B},s;b.beginPath();q=f[l]*j+h;w=p[l]*n+i;b.moveTo(q,w);if(e.step){r=w;for(a=l;a<=k;a++){c=f[a]*j+h;d=p[a]*n+i;b.lineTo(c,r);b.lineTo(c,r=d)}}else {for(a=l;a<=k;a++){c=f[a]*j+h;d=p[a]*n+i;b.lineTo(c,d)}}if(x){if(e.step){y=f[k]*j+h;for(a=k;a>=l;a--){c=f[a]*j+h;d=x[a]*n+i;b.lineTo(y,d);b.lineTo(y=c,d)}}else {for(a=k;a>=l;a--){c=f[a]*j+h;d=x[a]*n+i;b.lineTo(c,d)}}}else {b.lineTo(f[k]*j+h,d);b.lineTo(f[k]*j+h,i);b.lineTo(q,i);b.lineTo(q,p[a]*n+i)}if(e.transformFillStroke){e.matrix.toContext(b)}b.fill();if(e.transformFillStroke){e.inverseMatrix.toContext(b)}b.beginPath();b.moveTo(q,w);if(e.step){for(a=l;a<=k;a++){c=f[a]*j+h;d=p[a]*n+i;b.lineTo(c,r);b.lineTo(c,r=d);g.translationX=t.x(c,d);g.translationY=t.y(c,d);if(o){s=Ext.callback(o,null,[m,g,z,a],0,A);Ext.apply(g,s)}m.putMarker('markers',g,a,!o)}}else {for(a=l;a<=k;a++){c=f[a]*j+h;d=p[a]*n+i;b.lineTo(c,d);g.translationX=t.x(c,d);g.translationY=t.y(c,d);if(o){s=Ext.callback(o,null,[m,g,z,a],0,A);Ext.apply(g,s)}m.putMarker('markers',g,a,!o)}}if(e.transformFillStroke){e.matrix.toContext(b)}b.stroke()}});Ext.define('Ext.chart.series.Area',{extend:'Ext.chart.series.StackedCartesian',alias:'series.area',type:'area',seriesType:'areaSeries',isArea:!0,requires:['Ext.chart.series.sprite.Area'],config:{splitStacks:!1}});Ext.define('Ext.chart.series.sprite.Bar',{alias:'sprite.barSeries',extend:'Ext.chart.series.sprite.StackedCartesian',inheritableStatics:{def:{processors:{minBarWidth:'number',maxBarWidth:'number',minGapWidth:'number',radius:'number',inGroupGapWidth:'number'},defaults:{minBarWidth:2,maxBarWidth:100,minGapWidth:5,inGroupGapWidth:3,radius:0}}},drawLabel:function(w,g,i,e,l){var c=this,p=c.attr,r=c.getMarker('labels'),o=r.getTemplate(),a=c.labelCfg||(c.labelCfg={}),f=c.surfaceMatrix,s=p.labelOverflowPadding,n=o.attr.display,q=o.attr.orientation,t=(q==='horizontal'&&p.flipXY)||(q==='vertical'&&!p.flipXY)||!q,h=o.getCalloutLine(),d,b,j,m,k,u,v;a.x=f.x(g,e);a.y=f.y(g,e);if(h){m=h.length}else {m=0}if(!p.flipXY){a.rotationRads=-Math.PI*0.5}else {a.rotationRads=0}a.calloutVertical=!p.flipXY;switch(q){case 'horizontal':a.rotationRads=0;a.calloutVertical=!1;break;case 'vertical':a.rotationRads=-Math.PI*0.5;a.calloutVertical=!0;break;}a.text=w;if(o.attr.renderer){if(!r.get(l)){r.putMarkerFor('labels',{},l)}v=[w,r,a,{store:c.getStore()},l];k=Ext.callback(o.attr.renderer,null,v,0,c.getSeries());if(typeof k==='string'){a.text=k}else if(typeof k==='object'){if('text' in k){a.text=k.text}u=!0}}j=c.getMarkerBBox('labels',l,!0);if(!j){c.putMarker('labels',a,l);j=c.getMarkerBBox('labels',l,!0)}if(m>0){b=m}else if(m===0){b=(t?j.width:j.height)/2}else {b=(t?j.width:j.height)/2+s}if(i>e){b=-b}if(t){d=(n==='insideStart')?i+b:e-b}else {d=(n==='insideStart')?i+s*2:e-s*2}a.x=f.x(g,d);a.y=f.y(g,d);d=(n==='insideStart')?i:e;a.calloutStartX=f.x(g,d);a.calloutStartY=f.y(g,d);d=(n==='insideStart')?i-b:e+b;a.calloutPlaceX=f.x(g,d);a.calloutPlaceY=f.y(g,d);a.calloutColor=(h&&h.color)||c.attr.fillStyle;if(h){if(h.width){a.calloutWidth=h.width}}else {a.calloutColor='none'}if(i>e){b=-b}if(Math.abs(e-i)<=b*2||n==='outside'){a.callout=1}else {a.callout=0}if(u){Ext.apply(a,k)}c.putMarker('labels',a,l)},drawBar:function(l,j,k,f,g,i,h,e){var b=this,a={},c=b.attr.renderer,d;a.x=f;a.y=g;a.width=i-f;a.height=h-g;a.radius=b.attr.radius;if(c){d=Ext.callback(c,null,[b,a,{store:b.getStore()},e],0,b.getSeries());Ext.apply(a,d)}b.putMarker('items',a,e,!c)},renderClipped:function(c,v,f){if(this.cleanRedraw){return}var e=this,a=e.attr,r=a.dataX,E=a.dataY,l=a.labels,p=a.dataStartY,j=a.groupCount,B=a.groupOffset-(j-1)*0.5,n=a.inGroupGapWidth,q=v.lineWidth,i=a.matrix,y=i.elements[0],z=i.elements[3],J=i.elements[4],x=c.roundPixel(i.elements[5])-1,C=Math.abs(y)-a.minGapWidth,D=(Math.min(C,a.maxBarWidth)-n*(j-1))/j,k=c.roundPixel(Math.max(a.minBarWidth,D)),o=e.surfaceMatrix,t,s,m,g,b,d,h=0.5*a.lineWidth,I=Math.min(f[0],f[2]),H=Math.max(f[0],f[2]),F=Math.max(0,Math.floor(I)),G=Math.min(r.length-1,Math.ceil(H)),A=l&&e.getMarker('labels'),u,w;for(b=F;b<=G;b++){u=p?p[b]:0;w=E[b];d=r[b]*y+J+B*(k+n);t=c.roundPixel(d-k/2)+h;g=c.roundPixel(w*z+x+q);s=c.roundPixel(d+k/2)-h;m=c.roundPixel(u*z+x+q);e.drawBar(v,c,f,t,g-h,s,m-h,b);if(A&&l[b]!=null){e.drawLabel(l[b],d,m,g,b)}e.putMarker('markers',{translationX:o.x(d,g),translationY:o.y(d,g)},b,!0)}}});Ext.define('Ext.chart.series.Bar',{extend:'Ext.chart.series.StackedCartesian',alias:'series.bar',type:'bar',seriesType:'barSeries',isBar:!0,requires:['Ext.chart.series.sprite.Bar','Ext.draw.sprite.Rect'],config:{itemInstancing:{type:'rect',animation:{customDurations:{x:0,y:0,width:0,height:0,radius:0}}}},getItemForPoint:function(d,e){if(this.getSprites().length){var b=this.getChart(),a=b.getInnerPadding(),c=b.getInherited().rtl;arguments[0]=d+(c?a.right:-a.left);arguments[1]=e+a.bottom;return this.callParent(arguments)}},updateXAxis:function(a){a.setExpandRangeBy(0.5);this.callParent(arguments)},updateHidden:function(a){this.callParent(arguments);this.updateStacked()},updateStacked:function(h){var f=this,b={},e=f.getSprites(),g=e.length,d=[],c,a;for(a=0;a<g;a++){if(!e[a].attr.hidden){d.push(e[a])}}c=d.length;if(f.getStacked()){b.groupCount=1;b.groupOffset=0;for(a=0;a<c;a++){d[a].setAttributes(b)}}else {b.groupCount=c;for(a=0;a<c;a++){b.groupOffset=a;d[a].setAttributes(b)}}f.callParent(arguments)}});Ext.define('Ext.chart.series.sprite.Bar3D',{extend:'Ext.chart.series.sprite.Bar',alias:'sprite.bar3dSeries',requires:['Ext.draw.gradient.Linear'],inheritableStatics:{def:{processors:{depthWidthRatio:'number',saturationFactor:'number',brightnessFactor:'number',colorSpread:'number'},defaults:{depthWidthRatio:1/3,saturationFactor:1,brightnessFactor:1,colorSpread:1,transformFillStroke:!0},triggers:{groupCount:'panzoom'},updaters:{panzoom:function(a){var c=this,d=a.visibleMaxX-a.visibleMinX,h=a.visibleMaxY-a.visibleMinY,b=a.flipXY?a.innerHeight:a.innerWidth,e=!a.flipXY?a.innerHeight:a.innerWidth,f=c.getSurface(),g=f?f.getInherited().rtl:!1;if(g&&!a.flipXY){a.translationX=b+a.visibleMinX*b/d}else {a.translationX=-a.visibleMinX*b/d}a.translationY=-a.visibleMinY*(e-c.depth)/h;a.scalingX=(g&&!a.flipXY?-1:1)*b/d;a.scalingY=(e-c.depth)/h;a.scalingCenterX=0;a.scalingCenterY=0;c.applyTransformations(!0)}}}},config:{showStroke:!1},depth:0,drawBar:function(p,n,o,k,l,j,m,i){var b=this,c=b.attr,a={},e=c.renderer,g,d,f,h;a.x=(k+j)*0.5;a.y=l;a.width=(j-k)*0.75;a.height=m-l;a.depth=d=a.width*c.depthWidthRatio;a.orientation=c.flipXY?'horizontal':'vertical';a.saturationFactor=c.saturationFactor;a.brightnessFactor=c.brightnessFactor;a.colorSpread=c.colorSpread;if(d!==b.depth){b.depth=d;f=b.getSeries();f.fireEvent('depthchange',f,d)}if(e){h=[b,a,{store:b.getStore()},i];g=Ext.callback(e,null,h,0,b.getSeries());Ext.apply(a,g)}b.putMarker('items',a,i,!e)}});Ext.define('Ext.chart.sprite.Bar3D',{extend:'Ext.draw.sprite.Sprite',alias:'sprite.bar3d',type:'bar3d',inheritableStatics:{def:{processors:{x:'number',y:'number',width:'number',height:'number',depth:'number',orientation:'enums(vertical,horizontal)',showStroke:'bool',saturationFactor:'number',brightnessFactor:'number',colorSpread:'number'},triggers:{x:'bbox',y:'bbox',width:'bbox',height:'bbox',depth:'bbox',orientation:'bbox'},defaults:{x:0,y:0,width:8,height:8,depth:8,orientation:'vertical',showStroke:!1,saturationFactor:1,brightnessFactor:1,colorSpread:1,lineJoin:'bevel'}}},constructor:function(a){this.callParent([a]);this.topGradient=new Ext.draw.gradient.Linear({});this.rightGradient=new Ext.draw.gradient.Linear({});this.frontGradient=new Ext.draw.gradient.Linear({})},updatePlainBBox:function(a){var b=this.attr,g=b.x,f=b.y,e=b.width,d=b.height,c=b.depth;a.x=g-e*0.5;a.width=e+c;if(d>0){a.y=f;a.height=d+c}else {a.y=f+c;a.height=d-c}},render:function(q,a){var i=this,h=i.attr,e=h.x,g=h.y,f=g+h.height,t=g<f,b=h.width*0.5,d=h.depth,l=h.orientation==='horizontal',s=h.globalAlpha<1,r=h.fillStyle,v=Ext.util.Color.create(r.isGradient?r.getStops()[0].color:r),n=h.saturationFactor,m=h.brightnessFactor,k=h.colorSpread,j=v.getHSV(),c={},o,p,u;if(!h.showStroke){a.strokeStyle=Ext.util.Color.RGBA_NONE}if(t){u=g;g=f;f=u}i.topGradient.setDegrees(l?0:80);i.topGradient.setStops([{offset:0,color:Ext.util.Color.fromHSV(j[0],Ext.Number.constrain(j[1]*n,0,1),Ext.Number.constrain((0.5+k*0.1)*m,0,1))},{offset:1,color:Ext.util.Color.fromHSV(j[0],Ext.Number.constrain(j[1]*n,0,1),Ext.Number.constrain((0.5-k*0.11)*m,0,1))}]);i.rightGradient.setDegrees(l?45:90);i.rightGradient.setStops([{offset:0,color:Ext.util.Color.fromHSV(j[0],Ext.Number.constrain(j[1]*n,0,1),Ext.Number.constrain((0.5-k*0.14)*m,0,1))},{offset:1,color:Ext.util.Color.fromHSV(j[0],Ext.Number.constrain(j[1]*(1+k*0.4)*n,0,1),Ext.Number.constrain((0.5-k*0.32)*m,0,1))}]);if(l){i.frontGradient.setDegrees(0)}else {i.frontGradient.setRadians(Math.atan2(g-f,b*2))}i.frontGradient.setStops([{offset:0,color:Ext.util.Color.fromHSV(j[0],Ext.Number.constrain(j[1]*(1-k*0.1)*n,0,1),Ext.Number.constrain((0.5+k*0.1)*m,0,1))},{offset:1,color:Ext.util.Color.fromHSV(j[0],Ext.Number.constrain(j[1]*(1+k*0.1)*n,0,1),Ext.Number.constrain((0.5-k*0.23)*m,0,1))}]);if(s||t){a.beginPath();a.moveTo(e-b,f);a.lineTo(e-b+d,f+d);a.lineTo(e+b+d,f+d);a.lineTo(e+b,f);a.closePath();c.x=e-b;c.y=g;c.width=b+d;c.height=d;a.fillStyle=(l?i.rightGradient:i.topGradient).generateGradient(a,c);a.fillStroke(h)}if(s){a.beginPath();a.moveTo(e-b,g);a.lineTo(e-b+d,g+d);a.lineTo(e-b+d,f+d);a.lineTo(e-b,f);a.closePath();c.x=e+b;c.y=f;c.width=d;c.height=g+d-f;a.fillStyle=(l?i.topGradient:i.rightGradient).generateGradient(a,c);a.fillStroke(h)}p=q.roundPixel(g);a.beginPath();a.moveTo(e-b,p);a.lineTo(e-b+d,g+d);a.lineTo(e+b+d,g+d);a.lineTo(e+b,p);a.closePath();c.x=e-b;c.y=g;c.width=b+d;c.height=d;a.fillStyle=(l?i.rightGradient:i.topGradient).generateGradient(a,c);a.fillStroke(h);o=q.roundPixel(e+b);a.beginPath();a.moveTo(o,q.roundPixel(g));a.lineTo(e+b+d,g+d);a.lineTo(e+b+d,f+d);a.lineTo(o,f);a.closePath();c.x=e+b;c.y=f;c.width=d;c.height=g+d-f;a.fillStyle=(l?i.topGradient:i.rightGradient).generateGradient(a,c);a.fillStroke(h);o=q.roundPixel(e+b);p=q.roundPixel(g);a.beginPath();a.moveTo(e-b,f);a.lineTo(e-b,p);a.lineTo(o,p);a.lineTo(o,f);a.closePath();c.x=e-b;c.y=f;c.width=b*2;c.height=g-f;a.fillStyle=i.frontGradient.generateGradient(a,c);a.fillStroke(h)}});Ext.define('Ext.chart.series.Bar3D',{extend:'Ext.chart.series.Bar',requires:['Ext.chart.series.sprite.Bar3D','Ext.chart.sprite.Bar3D'],alias:'series.bar3d',type:'bar3d',seriesType:'bar3dSeries',is3D:!0,config:{itemInstancing:{type:'bar3d',animation:{customDurations:{x:0,y:0,width:0,height:0,depth:0}}},highlightCfg:{opacity:0.8}},reversedSpriteZOrder:!1,updateXAxis:function(b,a){this.callParent([b,a])},getDepth:function(){var a=this.getSprites()[0];return a?(a.depth||0):0}});Ext.define('Ext.chart.series.sprite.BoxPlot',{alias:'sprite.boxplotSeries',extend:'Ext.chart.series.sprite.Cartesian',inheritableStatics:{def:{processors:{dataLow:'data',dataQ1:'data',dataQ3:'data',dataHigh:'data',minBoxWidth:'number',maxBoxWidth:'number',minGapWidth:'number'},aliases:{dataMedian:'dataY'},defaults:{minBoxWidth:2,maxBoxWidth:40,minGapWidth:5}}},renderClipped:function(I,J,g){if(this.cleanRedraw){return}var e=this,a=e.attr,C=e.getSeries(),h=a.renderer,t={store:e.getStore()},c={},m=a.dataX,z=a.dataLow,A=a.dataQ1,w=a.dataY,B=a.dataQ3,y=a.dataHigh,G=Math.min(g[0],g[2]),F=Math.max(g[0],g[2]),D=Math.max(0,Math.floor(G)),E=Math.min(m.length-1,Math.ceil(F)),i=a.matrix,r=i.elements[0],f=i.elements[3],H=i.elements[4],d=i.elements[5],u=Math.abs(r)-a.minGapWidth,v=Math.min(u,a.maxBoxWidth),x=Math.round(Math.max(a.minBoxWidth,v)),s,o,p,l,q,n,j,k,b;if(h){j=[e,c,t]}for(b=D;b<=E;b++){s=m[b]*r+H;o=z[b]*f+d;p=A[b]*f+d;l=w[b]*f+d;q=B[b]*f+d;n=y[b]*f+d;c.x=s;c.low=o;c.q1=p;c.median=l;c.q3=q;c.high=n;c.boxWidth=x;if(h){j[3]=b;k=Ext.callback(h,null,j,0,C);Ext.apply(c,k)}e.putMarker('items',c,b,!h)}}});Ext.define('Ext.chart.sprite.BoxPlot',{extend:'Ext.draw.sprite.Sprite',alias:'sprite.boxplot',type:'boxplot',inheritableStatics:{def:{processors:{x:'number',low:'number',q1:'number',median:'number',q3:'number',high:'number',boxWidth:'number',whiskerWidth:'number',crisp:'bool'},triggers:{x:'bbox',low:'bbox',high:'bbox',boxWidth:'bbox',whiskerWidth:'bbox',crisp:'bbox'},defaults:{x:0,low:-20,q1:-10,median:0,q3:10,high:20,boxWidth:12,whiskerWidth:0.5,crisp:!0,fillStyle:'#ccc',strokeStyle:'#000'}}},updatePlainBBox:function(b){var f=this,a=f.attr,c=a.lineWidth/2,g=a.x-a.boxWidth/2-c,h=a.high-c,e=a.boxWidth+a.lineWidth,d=a.low-a.high+a.lineWidth;b.x=g;b.y=h;b.width=e;b.height=d},render:function(c,a){var b=this,d=b.attr;d.matrix.toContext(a);if(d.crisp){b.crispRender(c,a)}else {b.softRender(c,a)}},softRender:function(m,a){var l=this,c=l.attr,b=c.x,g=c.low,h=c.q1,j=c.median,i=c.q3,f=c.high,d=c.boxWidth/2,e=c.boxWidth*c.whiskerWidth/2,k=a.getLineDash();a.setLineDash([]);a.beginPath();a.moveTo(b-d,i);a.lineTo(b+d,i);a.lineTo(b+d,h);a.lineTo(b-d,h);a.closePath();a.fillStroke(c,!0);a.setLineDash(k);a.beginPath();a.moveTo(b,i);a.lineTo(b,f);a.moveTo(b,h);a.lineTo(b,g);a.stroke();a.setLineDash([]);a.beginPath();a.moveTo(b-e,g);a.lineTo(b+e,g);a.moveTo(b-d,j);a.lineTo(b+d,j);a.moveTo(b-e,f);a.lineTo(b+e,f);a.stroke()},alignLine:function(a,b){b=b||this.attr.lineWidth;a=Math.round(a);if(b%2===1){a-=0.5}return a},crispRender:function(r,a){var c=this,b=c.attr,k=b.x,h=c.alignLine(b.low),i=c.alignLine(b.q1),p=c.alignLine(b.median),j=c.alignLine(b.q3),g=c.alignLine(b.high),m=b.boxWidth/2,l=b.boxWidth*b.whiskerWidth/2,d=c.alignLine(k),f=c.alignLine(k-m),e=c.alignLine(k+m),o=d+Math.round(-l),n=d+Math.round(l),q=a.getLineDash();a.setLineDash([]);a.beginPath();a.moveTo(f,j);a.lineTo(e,j);a.lineTo(e,i);a.lineTo(f,i);a.closePath();a.fillStroke(b,!0);a.setLineDash(q);a.beginPath();a.moveTo(d,j);a.lineTo(d,g);a.moveTo(d,i);a.lineTo(d,h);a.stroke();a.setLineDash([]);a.beginPath();a.moveTo(o,h);a.lineTo(n,h);a.moveTo(f,p);a.lineTo(e,p);a.moveTo(o,g);a.lineTo(n,g);a.stroke()}});Ext.define('Ext.chart.series.BoxPlot',{extend:'Ext.chart.series.Cartesian',alias:'series.boxplot',type:'boxplot',seriesType:'boxplotSeries',isBoxPlot:!0,requires:['Ext.chart.series.sprite.BoxPlot','Ext.chart.sprite.BoxPlot'],config:{itemInstancing:{type:'boxplot',animation:{customDurations:{x:0,low:0,q1:0,median:0,q3:0,high:0}}},lowField:'low',q1Field:'q1',medianField:'median',q3Field:'q3',highField:'high'},fieldCategoryY:['Low','Q1','Median','Q3','High'],updateXAxis:function(a){a.setExpandRangeBy(0.5);this.callParent(arguments)}});Ext.define('Ext.draw.LimitedCache',{config:{limit:40,feeder:function(){return 0},scope:null},cache:null,constructor:function(a){this.cache={};this.cache.list=[];this.cache.tail=0;this.initConfig(a)},get:function(b){var a=this.cache,d=this.getLimit(),c=this.getFeeder(),e=this.getScope()||this;if(a[b]){return a[b].value}if(a.list[a.tail]){delete a[a.list[a.tail].cacheId]}a[b]=a.list[a.tail]={value:c.apply(e,Array.prototype.slice.call(arguments,1)),cacheId:b};a.tail++;if(a.tail===d){a.tail=0}return a[b].value},clear:function(){this.cache={};this.cache.list=[];this.cache.tail=0}});Ext.define("Ext.draw.SegmentTree",{config:{strategy:"double"},time:function(d,a,r,D,C,E,B){var s=0,f,v,q=new Date(r[d.startIdx[0]]),z=new Date(r[d.endIdx[a-1]]),b=Ext.Date,w=[[b.MILLI,1,'ms1',null],[b.MILLI,2,'ms2','ms1'],[b.MILLI,5,'ms5','ms1'],[b.MILLI,10,'ms10','ms5'],[b.MILLI,50,'ms50','ms10'],[b.MILLI,100,'ms100','ms50'],[b.MILLI,500,'ms500','ms100'],[b.SECOND,1,'s1','ms500'],[b.SECOND,10,'s10','s1'],[b.SECOND,30,'s30','s10'],[b.MINUTE,1,'mi1','s10'],[b.MINUTE,5,'mi5','mi1'],[b.MINUTE,10,'mi10','mi5'],[b.MINUTE,30,'mi30','mi10'],[b.HOUR,1,'h1','mi30'],[b.HOUR,6,'h6','h1'],[b.HOUR,12,'h12','h6'],[b.DAY,1,'d1','h12'],[b.DAY,7,'d7','d1'],[b.MONTH,1,'mo1','d1'],[b.MONTH,3,'mo3','mo1'],[b.MONTH,6,'mo6','mo3'],[b.YEAR,1,'y1','mo3'],[b.YEAR,5,'y5','y1'],[b.YEAR,10,'y10','y5'],[b.YEAR,100,'y100','y10']],t,e,x=s,y=a,A=!1,p=d.startIdx,i=d.endIdx,l=d.minIdx,k=d.maxIdx,u=d.open,m=d.close,o=d.minX,h=d.minY,n=d.maxX,g=d.maxY,c,j;for(t=0;a>s+1&&t<w.length;t++){q=new Date(r[p[0]]);e=w[t];q=b.align(q,e[0],e[1]);if(b.diff(q,z,e[0])>r.length*2*e[1]){continue}if(e[3]&&d.map['time_'+e[3]]){f=d.map['time_'+e[3]][0];v=d.map['time_'+e[3]][1]}else {f=x;v=y}s=a;j=q;A=!0;p[a]=p[f];i[a]=i[f];l[a]=l[f];k[a]=k[f];u[a]=u[f];m[a]=m[f];o[a]=o[f];h[a]=h[f];n[a]=n[f];g[a]=g[f];j=Ext.Date.add(j,e[0],e[1]);for(c=f+1;c<v;c++){if(r[i[c]]<+j){i[a]=i[c];m[a]=m[c];if(g[c]>g[a]){g[a]=g[c];n[a]=n[c];k[a]=k[c]}if(h[c]<h[a]){h[a]=h[c];o[a]=o[c];l[a]=l[c]}}else {a++;p[a]=p[c];i[a]=i[c];l[a]=l[c];k[a]=k[c];u[a]=u[c];m[a]=m[c];o[a]=o[c];h[a]=h[c];n[a]=n[c];g[a]=g[c];j=Ext.Date.add(j,e[0],e[1])}}if(a>s){d.map['time_'+e[2]]=[s,a]}}},"double":function(a,c,u,s,r,t,q){var d=0,p,o=1,b,k,l,f,e,n,m,i,j,g,h;while(c>d+1){p=d;d=c;o+=o;for(b=p;b<d;b+=2){if(b===d-1){k=a.startIdx[b];l=a.endIdx[b];f=a.minIdx[b];e=a.maxIdx[b];n=a.open[b];m=a.close[b];i=a.minX[b];j=a.minY[b];g=a.maxX[b];h=a.maxY[b]}else {k=a.startIdx[b];l=a.endIdx[b+1];n=a.open[b];m=a.close[b];if(a.minY[b]<=a.minY[b+1]){f=a.minIdx[b];i=a.minX[b];j=a.minY[b]}else {f=a.minIdx[b+1];i=a.minX[b+1];j=a.minY[b+1]}if(a.maxY[b]>=a.maxY[b+1]){e=a.maxIdx[b];g=a.maxX[b];h=a.maxY[b]}else {e=a.maxIdx[b+1];g=a.maxX[b+1];h=a.maxY[b+1]}}a.startIdx[c]=k;a.endIdx[c]=l;a.minIdx[c]=f;a.maxIdx[c]=e;a.open[c]=n;a.close[c]=m;a.minX[c]=i;a.minY[c]=j;a.maxX[c]=g;a.maxY[c]=h;c++}a.map['double_'+o]=[d,c]}},none:Ext.emptyFn,aggregateData:function(c,g,f,i,e){var b=c.length,h=[],j=[],l=[],k=[],r=[],p=[],q=[],n=[],o=[],m=[],d={startIdx:h,endIdx:j,minIdx:l,maxIdx:k,open:r,minX:p,minY:q,maxX:n,maxY:o,close:m},a;for(a=0;a<b;a++){h[a]=a;j[a]=a;l[a]=a;k[a]=a;r[a]=g[a];p[a]=c[a];q[a]=i[a];n[a]=c[a];o[a]=f[a];m[a]=e[a]}d.map={original:[0,b]};if(b){this[this.getStrategy()](d,b,c,g,f,i,e)}return d},binarySearchMin:function(e,a,b,c){var f=this.dataX;if(c<=f[e.startIdx[0]]){return a}if(c>=f[e.startIdx[b-1]]){return b-1}while(a+1<b){var d=(a+b)>>1,g=f[e.startIdx[d]];if(g===c){return d}else if(g<c){a=d}else {b=d}}return a},binarySearchMax:function(e,b,a,c){var f=this.dataX;if(c<=f[e.endIdx[0]]){return b}if(c>=f[e.endIdx[a-1]]){return a-1}while(b+1<a){var d=(b+a)>>1,g=f[e.endIdx[d]];if(g===c){return d}else if(g<c){b=d}else {a=d}}return a},constructor:function(a){this.initConfig(a)},setData:function(c,e,a,b,d){if(!a){d=b=a=e}this.dataX=c;this.dataOpen=e;this.dataHigh=a;this.dataLow=b;this.dataClose=d;if(c.length===a.length&&c.length===b.length){this.cache=this.aggregateData(c,e,a,b,d)}},getAggregation:function(m,l,j){if(!this.cache){return null}var e=Infinity,k=this.dataX[this.dataX.length-1]-this.dataX[0],d=this.cache.map,a=d.original,h,b,i,c,g,f;for(h in d){b=d[h];i=b[1]-b[0]-1;c=k/i;if(j<=c&&c<e){a=b;e=c}}g=Math.max(this.binarySearchMin(this.cache,a[0],a[1],m),a[0]);f=Math.min(this.binarySearchMax(this.cache,a[0],a[1],l)+1,a[1]);return {data:this.cache,start:g,end:f}}});Ext.define('Ext.chart.series.sprite.Aggregative',{extend:'Ext.chart.series.sprite.Cartesian',requires:['Ext.draw.LimitedCache','Ext.draw.SegmentTree'],inheritableStatics:{def:{processors:{dataHigh:'data',dataLow:'data',dataClose:'data'},aliases:{dataOpen:'dataY'},defaults:{dataHigh:null,dataLow:null,dataClose:null}}},config:{aggregator:{}},applyAggregator:function(a,b){return Ext.factory(a,Ext.draw.SegmentTree,b)},constructor:function(){this.callParent(arguments)},processDataY:function(){var c=this,a=c.attr,d=a.dataHigh,g=a.dataLow,f=a.dataClose,e=a.dataY,b;c.callParent(arguments);if(a.dataX&&e&&e.length>0){b=c.getAggregator();if(d){b.setData(a.dataX,a.dataY,d,g,f)}else {b.setData(a.dataX,a.dataY)}}},getGapWidth:function(){return 1},renderClipped:function(h,i,b,d){var c=this,g=Math.min(b[0],b[2]),f=Math.max(b[0],b[2]),e=c.getAggregator(),a=e&&e.getAggregation(g,f,(f-g)/d[2]*c.getGapWidth());if(a){c.dataStart=a.data.startIdx[a.start];c.dataEnd=a.data.endIdx[a.end-1];c.renderAggregates(a.data,a.start,a.end,h,i,b,d)}}});Ext.define('Ext.chart.series.sprite.CandleStick',{alias:'sprite.candlestickSeries',extend:'Ext.chart.series.sprite.Aggregative',inheritableStatics:{def:{processors:{raiseStyle:function(a,b){return Ext.merge({},b||{},a)},dropStyle:function(a,b){return Ext.merge({},b||{},a)},barWidth:'number',padding:'number',ohlcType:'enums(candlestick,ohlc)'},defaults:{raiseStyle:{strokeStyle:'green',fillStyle:'green'},dropStyle:{strokeStyle:'red',fillStyle:'red'},barWidth:15,padding:3,lineJoin:'miter',miterLimit:5,ohlcType:'candlestick'},triggers:{raiseStyle:'raiseStyle',dropStyle:'dropStyle'},updaters:{raiseStyle:function(){var b=this,a=b.raiseTemplate;if(a){a.setAttributes(b.attr.raiseStyle)}},dropStyle:function(){var b=this,a=b.dropTemplate;if(a){a.setAttributes(b.attr.dropStyle)}}}}},candlestick:function(a,g,h,i,f,b,c){var e=Math.min(g,f),d=Math.max(g,f);a.moveTo(b,i);a.lineTo(b,e);a.moveTo(b+c,d);a.lineTo(b+c,e);a.lineTo(b-c,e);a.lineTo(b-c,d);a.closePath();a.moveTo(b,h);a.lineTo(b,d)},ohlc:function(a,e,f,g,d,b,c){a.moveTo(b,f);a.lineTo(b,g);a.moveTo(b,e);a.lineTo(b-c,e);a.moveTo(b,d);a.lineTo(b+c,d)},constructor:function(){var a=this,b=Ext.draw.sprite.Rect;a.callParent(arguments);a.raiseTemplate=new b({parent:a});a.dropTemplate=new b({parent:a})},getGapWidth:function(){var a=this.attr,b=a.barWidth,c=a.padding;return b+c},renderAggregates:function(p,B,D,G,a,C){var d=this,k=d.attr,x=k.ohlcType,H=d.getSeries(),u=k.matrix,F=u.getXX(),i=u.getYY(),E=u.getDX(),h=u.getDY(),s=Math.round(k.barWidth*0.5),y=k.dataX,v=p.open,t=p.close,z=p.maxY,A=p.minY,w=p.startIdx,e=k.lineWidth*G.devicePixelRatio/2,f=k.renderer,c=f&&{},r,q,m,l,n,j,o,b,g;d.rendererData=d.rendererData||{store:d.getStore()};e-=Math.floor(e);a.save();g=d.raiseTemplate;g.useAttributes(a,C);if(!f){a.beginPath()}for(b=B;b<D;b++){if(v[b]<=t[b]){m=Math.round(v[b]*i+h)+e;l=Math.round(z[b]*i+h)+e;n=Math.round(A[b]*i+h)+e;j=Math.round(t[b]*i+h)+e;o=Math.round(y[w[b]]*F+E)+e;if(f){a.save();a.beginPath();c.open=m;c.high=l;c.low=n;c.close=j;c.mid=o;c.halfWidth=s;r=[d,c,d.rendererData,b];q=Ext.callback(f,null,r,0,H);Ext.apply(a,q)}d[x](a,m,l,n,j,o,s);if(f){a.fillStroke(g.attr);a.restore()}}}if(!f){a.fillStroke(g.attr)}a.restore();a.save();g=d.dropTemplate;g.useAttributes(a,C);if(!f){a.beginPath()}for(b=B;b<D;b++){if(v[b]>t[b]){m=Math.round(v[b]*i+h)+e;l=Math.round(z[b]*i+h)+e;n=Math.round(A[b]*i+h)+e;j=Math.round(t[b]*i+h)+e;o=Math.round(y[w[b]]*F+E)+e;if(f){a.save();a.beginPath();c.open=m;c.high=l;c.low=n;c.close=j;c.mid=o;c.halfWidth=s;r=[d,c,d.rendererData,b];q=Ext.callback(f,null,r,0,d.getSeries());Ext.apply(a,q)}d[x](a,m,l,n,j,o,s);if(f){a.fillStroke(g.attr);a.restore()}}}if(!f){a.fillStroke(g.attr)}a.restore()}});Ext.define('Ext.chart.series.CandleStick',{extend:'Ext.chart.series.Cartesian',requires:['Ext.chart.series.sprite.CandleStick'],alias:'series.candlestick',type:'candlestick',seriesType:'candlestickSeries',isCandleStick:!0,config:{openField:null,highField:null,lowField:null,closeField:null},fieldCategoryY:['Open','High','Low','Close'],themeColorCount:function(){return 2}});Ext.define('Ext.chart.series.Polar',{extend:'Ext.chart.series.Series',config:{rotation:0,radius:null,center:[0,0],offsetX:0,offsetY:0,showInLegend:!0,xField:null,yField:null,angleField:null,radiusField:null,xAxis:null,yAxis:null},directions:['X','Y'],fieldCategoryX:['X'],fieldCategoryY:['Y'],deprecatedConfigs:{field:'angleField',lengthField:'radiusField'},constructor:function(a){var b=this,d=b.self.getConfigurator(),e=d.configs,c;if(a){for(c in b.deprecatedConfigs){if(c in a&&!(a in e)){Ext.raise("'"+c+"' config has been deprecated. Please use the '"+b.deprecatedConfigs[c]+"' config instead.")}}}b.callParent([a])},getXField:function(){return this.getAngleField()},updateXField:function(a){this.setAngleField(a)},getYField:function(){return this.getRadiusField()},updateYField:function(a){this.setRadiusField(a)},applyXAxis:function(a,b){return this.getChart().getAxis(a)||b},applyYAxis:function(a,b){return this.getChart().getAxis(a)||b},getXRange:function(){return [this.dataRange[0],this.dataRange[2]]},getYRange:function(){return [this.dataRange[1],this.dataRange[3]]},themeColorCount:function(){var c=this,a=c.getStore(),b=a&&a.getCount()||0;return b},isStoreDependantColorCount:!0,getDefaultSpriteConfig:function(){return {type:this.seriesType,renderer:this.getRenderer(),centerX:0,centerY:0,rotationCenterX:0,rotationCenterY:0}},applyRotation:function(a){return Ext.draw.sprite.AttributeParser.angle(Ext.draw.Draw.rad(a))},updateRotation:function(b){var a=this.getSprites();if(a&&a[0]){a[0].setAttributes({baseRotation:b})}}});Ext.define('Ext.chart.series.Gauge',{alias:'series.gauge',extend:'Ext.chart.series.Polar',type:'gauge',seriesType:'pieslice',requires:['Ext.draw.sprite.Sector'],config:{needle:!1,needleLength:90,needleWidth:4,donut:30,showInLegend:!1,value:null,colors:null,sectors:null,minimum:0,maximum:100,rotation:0,totalAngle:Math.PI/2,rect:[0,0,1,1],center:[0.5,0.75],radius:0.5,wholeDisk:!1},coordinateX:function(){return this.coordinate('X',0,2)},coordinateY:function(){return this.coordinate('Y',1,2)},updateNeedle:function(c){var a=this,b=a.getSprites(),d=a.valueToAngle(a.getValue());if(b&&b.length){b[0].setAttributes({startAngle:(c?d:0),endAngle:d,strokeOpacity:(c?1:0),lineWidth:(c?a.getNeedleWidth():0)});a.doUpdateStyles()}},themeColorCount:function(){var b=this,a=b.getStore(),c=a&&a.getCount()||0;return c+(b.getNeedle()?0:1)},updateColors:function(c,i){var g=this,d=g.getSectors(),h=d&&d.length,f=g.getSprites(),b=Ext.Array.clone(c),e=c&&c.length,a;if(!e||!c[0]){return}for(a=0;a<h;a++){b[a+1]=d[a].color||b[a+1]||c[a%e]}if(f.length){f[0].setAttributes({strokeStyle:b[0]})}this.setSubStyle({fillStyle:b,strokeStyle:b});this.doUpdateStyles()},updateRect:function(d){var f=this.getWholeDisk(),a=f?Math.PI:this.getTotalAngle()/2,g=this.getDonut()/100,e,b,c;if(a<=Math.PI/2){e=2*Math.sin(a);b=1-g*Math.cos(a)}else {e=2;b=1-Math.cos(a)}c=Math.min(d[2]/e,d[3]/b);this.setRadius(c);this.setCenter([d[2]/2,c+(d[3]-b*c)/2])},updateCenter:function(a){this.setStyle({centerX:a[0],centerY:a[1],rotationCenterX:a[0],rotationCenterY:a[1]});this.doUpdateStyles()},updateRotation:function(a){this.setStyle({rotationRads:a-(this.getTotalAngle()+Math.PI)/2});this.doUpdateStyles()},doUpdateShape:function(a,g){var b=this,d=b.getSectors(),f=(d&&d.length)||0,e=b.getNeedleLength()/100,c;c=[a*e,a];while(f--){c.push(a)}b.setSubStyle({endRho:c,startRho:a/100*g});b.doUpdateStyles()},updateRadius:function(a){var b=this.getDonut();this.doUpdateShape(a,b)},updateDonut:function(b){var a=this.getRadius();this.doUpdateShape(a,b)},valueToAngle:function(a){a=this.applyValue(a);return this.getTotalAngle()*(a-this.getMinimum())/(this.getMaximum()-this.getMinimum())},applyValue:function(a){return Math.min(this.getMaximum(),Math.max(a,this.getMinimum()))},updateValue:function(d){var a=this,e=a.getNeedle(),c=a.valueToAngle(d),b=a.getSprites();b[0].getRendererData().value=d;b[0].setAttributes({startAngle:(e?c:0),endAngle:c});a.doUpdateStyles()},processData:function(){var a=this,j=a.getStore(),i=j&&j.first(),c,h,b,g,f,e,d;if(i){e=a.getXField();if(e){d=i.get(e)}}if(b=a.getXAxis()){g=b.getMinimum();f=b.getMaximum();c=b.getSprites()[0].getAnimation();h=c.getDuration();c.setDuration(0);if(Ext.isNumber(g)){a.setMinimum(g)}else {b.setMinimum(a.getMinimum())}if(Ext.isNumber(f)){a.setMaximum(f)}else {b.setMaximum(a.getMaximum())}c.setDuration(h)}if(!Ext.isNumber(d)){d=a.getMinimum()}a.setValue(d)},getDefaultSpriteConfig:function(){return {type:this.seriesType,renderer:this.getRenderer(),animation:{customDurations:{translationX:0,translationY:0,rotationCenterX:0,rotationCenterY:0,centerX:0,centerY:0,startRho:0,endRho:0,baseRotation:0}}}},normalizeSectors:function(b){var c=this,e=(b&&b.length)||0,a,d,f,g;if(e){for(a=0;a<e;a++){d=b[a];if(typeof d==='number'){b[a]={start:(a>0?b[a-1].end:c.getMinimum()),end:Math.min(d,c.getMaximum())};if(a==(e-1)&&b[a].end<c.getMaximum()){b[a+1]={start:b[a].end,end:c.getMaximum()}}}else {if(typeof d.start==='number'){f=Math.max(d.start,c.getMinimum())}else {f=(a>0?b[a-1].end:c.getMinimum())}if(typeof d.end==='number'){g=Math.min(d.end,c.getMaximum())}else {g=c.getMaximum()}b[a].start=f;b[a].end=g}}}else {b=[{start:c.getMinimum(),end:c.getMaximum()}]}return b},getSprites:function(){var a=this,l=a.getStore(),m=a.getValue(),k=a.getLabel(),c,n;if(!l&&!Ext.isNumber(m)){return Ext.emptyArray}var j=a.getChart(),o=a.getAnimation()||j&&j.getAnimation(),e=a.sprites,i=0,b,d,f,g,h=[];if(e&&e.length){e[0].setAnimation(o);return e}g={store:l,field:a.getXField(),angleField:a.getXField(),value:m,series:a};a.needleSprite=b=a.createSprite();b.setAttributes({zIndex:10},!0);b.setRendererData(g);b.setRendererIndex(i++);h.push(a.getNeedleWidth());if(k){k.getTemplate().setField(!0)}d=a.normalizeSectors(a.getSectors());for(c=0,n=d.length;c<n;c++){f={startAngle:a.valueToAngle(d[c].start),endAngle:a.valueToAngle(d[c].end),label:d[c].label,fillStyle:d[c].color,strokeOpacity:0,doCallout:!1,labelOverflowPadding:-1};Ext.apply(f,d[c].style);b=a.createSprite();b.setRendererData(g);b.setRendererIndex(i++);b.setAttributes(f,!0);h.push(f.lineWidth)}a.setSubStyle({lineWidth:h});a.doUpdateStyles();return e},doUpdateStyles:function(){var a=this;a.callParent();if(a.sprites.length){a.needleSprite.setAttributes({startRho:a.getNeedle()?0:(a.getRadius()/100*a.getDonut())})}}});Ext.define('Ext.chart.series.sprite.Line',{alias:'sprite.lineSeries',extend:'Ext.chart.series.sprite.Aggregative',inheritableStatics:{def:{processors:{curve:'default',fillArea:'bool',nullStyle:'enums(gap,connect,origin)',preciseStroke:'bool',xAxis:'default',yCap:'default'},defaults:{curve:{type:'linear'},nullStyle:'connect',fillArea:!1,preciseStroke:!0,xAxis:null,yCap:Math.pow(2,20),yJump:50},triggers:{dataX:'dataX,bbox,curve',dataY:'dataY,bbox,curve',curve:'curve'},updaters:{curve:'curveUpdater'}}},list:null,curveUpdater:function(f){var a=this,b=f.dataX,c=f.dataY,e=f.curve,d=b&&c&&b.length>2&&c.length>2,g=e.type;if(d){if(g==='natural'){a.smoothX=Ext.draw.Draw.naturalSpline(b);a.smoothY=Ext.draw.Draw.naturalSpline(c)}else if(g==='cardinal'){a.smoothX=Ext.draw.Draw.cardinalSpline(b,e.tension);a.smoothY=Ext.draw.Draw.cardinalSpline(c,e.tension)}else {d=!1}}if(!d){delete a.smoothX;delete a.smoothY}},updatePlainBBox:function(b){var a=this.attr,c=Math.min(0,a.dataMinY),d=Math.max(0,a.dataMaxY);b.x=a.dataMinX;b.y=c;b.width=a.dataMaxX-a.dataMinX;b.height=d-c},drawStrip:function(c,a){c.moveTo(a[0],a[1]);for(var b=2,d=a.length;b<d;b+=2){c.lineTo(a[b],a[b+1])}},drawStraightStroke:function(K,a,I,L,i,n){var o=this,s=o.attr,C=s.nullStyle,B=C==='connect',G=C==='origin',D=s.renderer,H=s.curve,z=H.type==='step-after',m=!0,J=i.length,l={type:'line',smooth:!1,step:z};var q,E,u,v,x,w,h,k,r,y,f,t,p,e,j,b,c,F,A,d;var g=[];a.beginPath();for(d=3;d<J;d+=3){b=i[d-3];c=i[d-2];e=i[d];j=i[d+1];F=i[d+3];A=i[d+4];v=Ext.isNumber(b);x=Ext.isNumber(e);w=Ext.isNumber(F);h=v&&Ext.isNumber(c);k=x&&Ext.isNumber(j);r=w&&Ext.isNumber(A);if(G){if(!h&&v){c=n;h=!0}if(!k&&x){j=n;k=!0}if(!r&&w){A=n;r=!0}}if(D){l.x=e;l.y=j;l.x0=b;l.y0=c;E=[o,l,o.rendererData,I+d/3];q=Ext.callback(D,null,E,0,o.getSeries())}if(y&&B&&h&&f){t=f[0];p=f[1];if(m){a.beginPath();a.moveTo(t,p);g.push(t,p);u=t;m=!1}if(z){a.lineTo(b,p);g.push(b,p)}a.lineTo(b,c);g.push(b,c);f=[b,c];y=!1}if(B&&f&&k&&!h){b=f[0];c=f[1];h=!0}if(k){f=[e,j]}if(h&&k){if(m){a.beginPath();a.moveTo(b,c);g.push(b,c);u=b;m=!1}}else {y=!0;continue}if(z){a.lineTo(e,c);g.push(e,c)}a.lineTo(e,j);g.push(e,j);if(q||!r){a.save();Ext.apply(a,q);q=null;if(s.fillArea){a.lineTo(e,n);a.lineTo(u,n);a.closePath();a.fill()}a.beginPath();o.drawStrip(a,g);g=[];a.stroke();a.restore();a.beginPath();m=!0}}},calculateScale:function(b,d){var a=0,c=b;while(c<d&&b>0){a++;c+=b>>a}return Math.pow(2,a>0?a-1:a)},drawSmoothStroke:function(z,a,m,E,j,B){var d=this,i=d.attr,D=i.step,l=i.matrix,r=i.renderer,w=l.getXX(),x=l.getYY(),u=l.getDX(),v=l.getDY(),s=d.smoothX,t=d.smoothY,C=d.calculateScale(i.dataX.length,E),n,p,o,q,h,k,e,f,c,g,y,A,b={type:'line',smooth:!0,step:D};a.beginPath();a.moveTo(s[m*3]*w+u,t[m*3]*x+v);for(c=0,g=m*3+1;c<j.length-3;c+=3,g+=3*C){n=s[g]*w+u;p=t[g]*x+v;o=s[g+1]*w+u;q=t[g+1]*x+v;h=z.roundPixel(j[c+3]);k=j[c+4];e=z.roundPixel(j[c]);f=j[c+1];if(r){b.x0=e;b.y0=f;b.cx1=n;b.cy1=p;b.cx2=o;b.cy2=q;b.x=h;b.y=k;A=[d,b,d.rendererData,m+c/3+1];y=Ext.callback(r,null,A,0,d.getSeries());a.save();Ext.apply(a,y)}if(i.fillArea){a.moveTo(e,f);a.bezierCurveTo(n,p,o,q,h,k);a.lineTo(h,B);a.lineTo(e,B);a.lineTo(e,f);a.closePath();a.fill();a.beginPath()}a.moveTo(e,f);a.bezierCurveTo(n,p,o,q,h,k);a.stroke();a.moveTo(e,f);a.closePath();if(r){a.restore()}a.beginPath();a.moveTo(h,k)}a.beginPath()},drawLabel:function(r,m,f,d,s){var b=this,q=b.attr,p=b.getMarker('labels'),l=p.getTemplate(),a=b.labelCfg||(b.labelCfg={}),h=b.surfaceMatrix,j,e,g=q.labelOverflowPadding,k,i,c,o,n;a.x=h.x(m,f);a.y=h.y(m,f);if(q.flipXY){a.rotationRads=Math.PI*0.5}else {a.rotationRads=0}a.text=r;if(l.attr.renderer){o=[r,p,a,b.rendererData,d];c=Ext.callback(l.attr.renderer,null,o,0,b.getSeries());if(typeof c==='string'){a.text=c}else if(typeof c==='object'){if('text' in c){a.text=c.text}n=!0}}i=b.getMarkerBBox('labels',d,!0);if(!i){b.putMarker('labels',a,d);i=b.getMarkerBBox('labels',d,!0)}k=i.height/2;j=m;switch(l.attr.display){case 'under':e=f-k-g;break;case 'rotate':j+=g;e=f-g;a.rotationRads=-Math.PI/4;break;default:e=f+k+g;}a.x=h.x(j,e);a.y=h.y(j,e);if(n){Ext.apply(a,c)}b.putMarker('labels',a,d)},drawMarker:function(e,f,i){var b=this,j=b.attr,c=j.renderer,g=b.surfaceMatrix,a={},d,h;if(c&&b.getMarker('markers')){a.type='marker';a.x=e;a.y=f;h=[b,a,b.rendererData,i];d=Ext.callback(c,null,h,0,b.getSeries());if(d){Ext.apply(a,d)}}a.translationX=g.x(e,f);a.translationY=g.y(e,f);delete a.x;delete a.y;b.putMarker('markers',a,i,!c)},drawStroke:function(b,f,c,g,e,d){var a=this,h=a.smoothX&&a.smoothY;if(h){a.drawSmoothStroke(b,f,c,g,e,d)}else {a.drawStraightStroke(b,f,c,g,e,d)}},renderAggregates:function(n,G,I,C,e,V,h){var d=this,a=d.attr,E=a.dataX,F=a.dataY,D=a.labels,v=a.xAxis,x=a.yCap,L=a.smooth&&d.smoothX&&d.smoothY,O=D&&d.getMarker('labels'),N=d.getMarker('markers'),u=a.matrix,M=C.devicePixelRatio,k=u.getXX(),l=u.getYY(),i=u.getDX(),j=u.getDY(),c=d.list||(d.list=[]),T=n.minX,R=n.maxX,U=n.minY,S=n.maxY,q=n.startIdx,r=!0,z,s,A,t,g,B,y,f,b,o;d.rendererData={store:d.getStore()};c.length=0;for(b=G;b<I;b++){var p=T[b],m=R[b],H=U[b],w=S[b];z=Ext.isNumber(p);A=Ext.isNumber(H);s=Ext.isNumber(m);t=Ext.isNumber(w);if(p<m){c.push(z?(p*k+i):null,A?(H*l+j):null,q[b]);c.push(s?(m*k+i):null,t?(w*l+j):null,q[b])}else if(p>m){c.push(s?(m*k+i):null,t?(w*l+j):null,q[b]);c.push(z?(p*k+i):null,A?(H*l+j):null,q[b])}else {c.push(s?(m*k+i):null,t?(w*l+j):null,q[b])}}if(c.length){for(b=0;b<c.length;b+=3){y=c[b];f=c[b+1];if(Ext.isNumber(y)&&Ext.isNumber(f)){if(f>x){f=x}else if(f<-x){f=-x}c[b+1]=f}else {r=!1;continue}o=c[b+2];if(N){d.drawMarker(y,f,o)}if(O&&D[o]){d.drawLabel(D[o],y,f,o,h)}}d.isContinuousLine=r;if(L&&!r){Ext.raise("Line smoothing in only supported for gapless data, "+"where all data points are finite numbers.")}if(v){B=v.getAlignment()==='vertical';if(Ext.isNumber(v.floatingAtCoord)){g=(B?h[2]:h[3])-v.floatingAtCoord}else {g=B?h[0]:h[1]}}else {g=a.flipXY?h[0]:h[1]}if(a.preciseStroke){if(a.fillArea){e.fill()}if(a.transformFillStroke){a.inverseMatrix.toContext(e)}d.drawStroke(C,e,G,I,c,g);if(a.transformFillStroke){a.matrix.toContext(e)}e.stroke()}else {d.drawStroke(C,e,G,I,c,g);if(r&&L&&a.fillArea&&!a.renderer){var K=E[E.length-1]*k+i+M,Q=F[F.length-1]*l+j,J=E[0]*k+i-M,P=F[0]*l+j;e.lineTo(K,Q);e.lineTo(K,g-a.lineWidth);e.lineTo(J,g-a.lineWidth);e.lineTo(J,P)}if(a.transformFillStroke){a.matrix.toContext(e)}if(a.fillArea){e.fillStroke(a,!0)}else {e.stroke(!0)}}}}});Ext.define('Ext.chart.series.Line',{extend:'Ext.chart.series.Cartesian',alias:'series.line',type:'line',seriesType:'lineSeries',isLine:!0,requires:['Ext.chart.series.sprite.Line'],config:{selectionTolerance:20,curve:{type:'linear'},smooth:null,step:null,nullStyle:'gap',fill:undefined,aggregator:{strategy:'double'}},themeMarkerCount:function(){return 1},getDefaultSpriteConfig:function(){var b=this,e=b.callParent(arguments),a=Ext.apply({},b.getStyle()),d,c=!1;if(b.config.fill!==undefined){if(b.config.fill){c=!0;if(a.fillStyle===undefined){if(a.strokeStyle===undefined){d=b.getStyleWithTheme();a.fillStyle=d.fillStyle;a.strokeStyle=d.strokeStyle}else {a.fillStyle=a.strokeStyle}}}}else {if(a.fillStyle){c=!0}}if(!c){delete a.fillStyle}a=Ext.apply(e||{},a);return Ext.apply(a,{fillArea:c,selectionTolerance:b.config.selectionTolerance})},updateFill:function(a){this.withSprite(function(b){return b.setAttributes({fillArea:a})})},updateCurve:function(a){this.withSprite(function(b){return b.setAttributes({curve:a})})},getCurve:function(){return this.withSprite(function(a){return a.attr.curve})},updateNullStyle:function(a){this.withSprite(function(b){return b.setAttributes({nullStyle:a})})},updateSmooth:function(a){this.setCurve({type:a?'natural':'linear'})},updateStep:function(a){this.setCurve({type:a?'step-after':'linear'})}});Ext.define('Ext.chart.series.sprite.PieSlice',{extend:'Ext.draw.sprite.Sector',mixins:{markerHolder:'Ext.chart.MarkerHolder'},alias:'sprite.pieslice',inheritableStatics:{def:{processors:{doCallout:'bool',label:'string',rotateLabels:'bool',labelOverflowPadding:'number',renderer:'default'},defaults:{doCallout:!0,rotateLabels:!0,label:'',labelOverflowPadding:10,renderer:null}}},config:{rendererData:null,rendererIndex:0,series:null},setGradientBBox:function(k,p){var g=this,a=g.attr,m=(a.fillStyle&&a.fillStyle.isGradient)||(a.strokeStyle&&a.strokeStyle.isGradient);if(m&&!a.constrainGradients){var j=g.getMidAngle(),c=a.margin,e=a.centerX,f=a.centerY,l=a.endRho,b=a.matrix,n=b.getScaleX(),o=b.getScaleY(),i=n*l,h=o*l,d={width:i+i,height:h+h};if(c){e+=c*Math.cos(j);f+=c*Math.sin(j)}d.x=b.x(e,f)-i;d.y=b.y(e,f)-h;k.setGradientBBox(d)}else {g.callParent([k,p])}},render:function(g,f,e){var b=this,a=b.attr,d={},c;if(a.renderer){d={type:'sector',centerX:a.centerX,centerY:a.centerY,margin:a.margin,startAngle:Math.min(a.startAngle,a.endAngle),endAngle:Math.max(a.startAngle,a.endAngle),startRho:Math.min(a.startRho,a.endRho),endRho:Math.max(a.startRho,a.endRho)};c=Ext.callback(a.renderer,null,[b,d,b.getRendererData(),b.getRendererIndex()],0,b.getSeries());b.setAttributes(c);b.useAttributes(f,e)}b.callParent([g,f,e]);if(a.label&&b.getMarker('labels')){b.placeLabel()}},placeLabel:function(){var c=this,a=c.attr,i=a.attributeId,s=Math.min(a.startAngle,a.endAngle),t=Math.max(a.startAngle,a.endAngle),m=(s+t)*0.5,u=a.margin,q=a.centerX,r=a.centerY,p=Math.sin(m),o=Math.cos(m),z=Math.min(a.startRho,a.endRho)+u,j=Math.max(a.startRho,a.endRho)+u,v=(z+j)*0.5,d=c.surfaceMatrix,b=c.labelCfg||(c.labelCfg={}),x=c.getMarker('labels'),g=x.getTemplate(),y=g.getHideLessThan(),h=g.getCalloutLine(),l,e,f,n,w,k;if(h){k=h.length||40}else {k=0}d.appendMatrix(a.matrix);b.text=a.label;e=q+o*v;f=r+p*v;b.x=d.x(e,f);b.y=d.y(e,f);e=q+o*j;f=r+p*j;b.calloutStartX=d.x(e,f);b.calloutStartY=d.y(e,f);e=q+o*(j+k);f=r+p*(j+k);b.calloutPlaceX=d.x(e,f);b.calloutPlaceY=d.y(e,f);if(!a.rotateLabels){b.rotationRads=0}else {switch(g.attr.orientation){case 'horizontal':b.rotationRads=m+Math.atan2(d.y(1,0)-d.y(0,0),d.x(1,0)-d.x(0,0))+Math.PI/2;break;case 'vertical':b.rotationRads=m+Math.atan2(d.y(1,0)-d.y(0,0),d.x(1,0)-d.x(0,0));break;}}b.calloutColor=(h&&h.color)||c.attr.fillStyle;if(h){if(h.width){b.calloutWidth=h.width}}else {b.calloutColor='none'}b.globalAlpha=a.globalAlpha*a.fillOpacity;if(g.display!=='none'){b.hidden=(a.startAngle==a.endAngle)}if(g.attr.renderer){w=[c.attr.label,x,b,c.getRendererData(),c.getRendererIndex()];n=Ext.callback(g.attr.renderer,null,w,0,c.getSeries());if(typeof n==='string'){b.text=n}else {Ext.apply(b,n)}}c.putMarker('labels',b,i);l=c.getMarkerBBox('labels',i,!0);if(l){if(a.doCallout&&((t-s)*j>y||a.highlighted)){if(g.attr.display==='outside'){c.putMarker('labels',{callout:1},i)}else if(g.attr.display==='inside'){c.putMarker('labels',{callout:0},i)}else {c.putMarker('labels',{callout:1-c.sliceContainsLabel(a,l)},i)}}else {c.putMarker('labels',{globalAlpha:c.sliceContainsLabel(a,l)},i)}}},sliceContainsLabel:function(a,d){var b=a.labelOverflowPadding,f=(a.endRho+a.startRho)/2,g=f+(d.width+b)/2,c=f-(d.width+b)/2,e,h,i,j;if(b<0){return 1}if(d.width+b*2>(a.endRho-a.startRho)){return 0}h=Math.sqrt(a.endRho*a.endRho-g*g);i=Math.sqrt(a.endRho*a.endRho-c*c);e=Math.abs(a.endAngle-a.startAngle);j=(e>Math.PI/2?c:Math.abs(Math.tan(e/2))*c);if(d.height+b*2>Math.min(h,i,j)*2){return 0}return 1}});Ext.define('Ext.chart.series.Pie',{extend:'Ext.chart.series.Polar',requires:['Ext.chart.series.sprite.PieSlice'],type:'pie',alias:'series.pie',seriesType:'pieslice',isPie:!0,config:{donut:0,rotation:0,clockwise:!0,totalAngle:2*Math.PI,hidden:[],radiusFactor:100,highlightCfg:{margin:20},style:{}},directions:['X'],applyLabel:function(a,b){if(Ext.isObject(a)&&!Ext.isString(a.orientation)){Ext.apply(a=Ext.Object.chain(a),{orientation:'vertical'})}return this.callParent([a,b])},updateLabelData:function(){var d=this,k=d.getStore(),h=k.getData().items,e=d.getSprites(),i=d.getLabel(),g=i&&i.getTemplate().getField(),j=d.getHidden(),a,c,f,b;if(e.length&&g){f=[];for(a=0,c=h.length;a<c;a++){f.push(h[a].get(g))}for(a=0,c=e.length;a<c;a++){b=e[a];b.setAttributes({label:f[a]});b.putMarker('labels',{hidden:j[a]},b.attr.attributeId)}}},coordinateX:function(){var c=this,t=c.getStore(),i=t.getData().items,d=i.length,s=c.getXField(),p=c.getYField(),q,g=0,l,m,k=0,f=c.getHidden(),o=[],a,n=0,h=c.getTotalAngle(),r=c.getClockwise()?1:-1,b=c.getSprites(),e,j;if(!b){return}for(a=0;a<d;a++){q=Math.abs(Number(i[a].get(s)))||0;m=p&&Math.abs(Number(i[a].get(p)))||0;if(!f[a]){g+=q;if(m>k){k=m}}o[a]=g;if(a>=f.length){f[a]=!1}}f.length=d;c.maxY=k;if(g!==0){l=h/g}for(a=0;a<d;a++){b[a].setAttributes({startAngle:n,endAngle:n=(l?r*o[a]*l:0),globalAlpha:1})}if(d<b.length){for(a=d;a<b.length;a++){e=b[a];j=e.getMarker('labels');if(j){j.clear(e.getId());e.releaseMarker('labels')}e.destroy()}b.length=d}for(a=d;a<b.length;a++){b[a].setAttributes({startAngle:h,endAngle:h,globalAlpha:0})}},updateCenter:function(a){this.setStyle({translationX:a[0]+this.getOffsetX(),translationY:a[1]+this.getOffsetY()});this.doUpdateStyles()},updateRadius:function(a){this.setStyle({startRho:a*this.getDonut()*0.01,endRho:a*this.getRadiusFactor()*0.01});this.doUpdateStyles()},getStyleByIndex:function(h){var a=this,j=a.getStore(),g=j.getAt(h),f=a.getYField(),e=a.getRadius(),c={},b,d,i;if(g){i=f&&Math.abs(Number(g.get(f)))||0;b=e*a.getDonut()*0.01;d=e*a.getRadiusFactor()*0.01;c=a.callParent([h]);c.startRho=b;c.endRho=a.maxY?(b+(d-b)*i/a.maxY):d}return c},updateDonut:function(b){var a=this.getRadius();this.setStyle({startRho:a*b*0.01,endRho:a*this.getRadiusFactor()*0.01});this.doUpdateStyles()},rotationOffset:-Math.PI/2,updateRotation:function(a){this.setStyle({rotationRads:a+this.rotationOffset});this.doUpdateStyles()},updateTotalAngle:function(a){this.processData()},getSprites:function(){var a=this,e=a.getChart(),f=a.getStore();if(!e||!f){return Ext.emptyArray}a.getColors();a.getSubStyle();var n=f.getData().items,m=n.length,k=a.getAnimation()||e&&e.getAnimation(),l=a.sprites,b,g=!1,j=0,i=a.getLabel(),d=i&&i.getTemplate(),c,h;h={store:f,field:a.getXField(),angleField:a.getXField(),radiusField:a.getYField(),series:a};for(c=0;c<m;c++){b=l[c];if(!b){b=a.createSprite();if(a.getHighlight()){b.config.highlight=a.getHighlight();b.addModifier('highlight',!0)}if(d&&d.getField()){d.setAttributes({labelOverflowPadding:a.getLabelOverflowPadding()});d.getAnimation().setCustomDurations({'callout':200})}b.setAttributes(a.getStyleByIndex(c));b.setRendererData(h);g=!0}b.setRendererIndex(j++);b.setAnimation(k)}if(g){a.doUpdateStyles()}return a.sprites},betweenAngle:function(d,c,a){var b=Math.PI*2,e=this.rotationOffset;if(c===a){return !1}if(!this.getClockwise()){d*=-1;c*=-1;a*=-1;c-=e;a-=e}else {c+=e;a+=e}d-=c;a-=c;d%=b;a%=b;d+=b;a+=b;d%=b;a%=b;return d<a||Ext.Number.isEqual(a,0,1.0E-8)},getItemByIndex:function(b,a){a=a||'sprites';return this.callParent([b,a])},getItemForAngle:function(b){var c=this,d=c.getSprites(),e;b%=Math.PI*2;while(b<0){b+=Math.PI*2}if(d){var f=c.getStore(),h=f.getData().items,g=c.getHidden(),a=0,i=f.getCount();for(;a<i;a++){if(!g[a]){e=d[a].attr;if(e.startAngle<=b&&e.endAngle>=b){return {series:c,sprite:d[a],index:a,record:h[a],field:c.getXField()}}}}}return null},getItemForPoint:function(t,u){var a=this,h=a.getSprites(),i=a.getCenter(),o=a.getOffsetX(),p=a.getOffsetY(),e=t-i[0]+o,f=u-i[1]+p,s=a.getStore(),r=a.getDonut(),g=s.getData().items,n=Math.atan2(f,e)-a.getRotation(),j=Math.sqrt(e*e+f*f),m=a.getRadius()*r*0.01,q=a.getHidden(),k=null,b,l,c,d;for(b=0,l=g.length;b<l;b++){if(q[b]){continue}d=h[b];if(!d){break}c=d.attr;if(j>=m+c.margin&&j<=c.endRho+c.margin&&a.betweenAngle(n,c.startAngle,c.endAngle)){k={series:a,sprite:h[b],index:b,record:g[b],field:a.getXField()};break}}return k},provideLegendInfo:function(i){var c=this,g=c.getStore();if(g){var f=g.getData().items,e=c.getLabel().getTemplate().getField(),j=c.getXField(),h=c.getHidden(),a,d,b;for(a=0;a<f.length;a++){d=c.getStyleByIndex(a);b=d.fillStyle;if(Ext.isObject(b)){b=b.stops&&b.stops[0].color}i.push({name:e?String(f[a].get(e)):j+' '+a,mark:b||d.strokeStyle||'black',disabled:h[a],series:c.getId(),index:a})}}}});Ext.define('Ext.chart.series.sprite.Pie3DPart',{extend:'Ext.draw.sprite.Path',mixins:{markerHolder:'Ext.chart.MarkerHolder'},alias:'sprite.pie3dPart',inheritableStatics:{def:{processors:{centerX:'number',centerY:'number',startAngle:'number',endAngle:'number',startRho:'number',endRho:'number',margin:'number',thickness:'number',bevelWidth:'number',distortion:'number',baseColor:'color',colorSpread:'number',baseRotation:'number',part:'enums(top,bottom,start,end,innerFront,innerBack,outerFront,outerBack)',label:'string'},aliases:{rho:'endRho'},triggers:{centerX:'path,bbox',centerY:'path,bbox',startAngle:'path,partZIndex',endAngle:'path,partZIndex',startRho:'path',endRho:'path,bbox',margin:'path,bbox',thickness:'path',distortion:'path',baseRotation:'path,partZIndex',baseColor:'partZIndex,partColor',colorSpread:'partColor',part:'path,partZIndex',globalAlpha:'canvas,alpha',fillOpacity:'canvas,alpha'},defaults:{centerX:0,centerY:0,startAngle:Math.PI*2,endAngle:Math.PI*2,startRho:0,endRho:150,margin:0,thickness:35,distortion:0.5,baseRotation:0,baseColor:'white',colorSpread:0.5,miterLimit:1,bevelWidth:5,strokeOpacity:0,part:'top',label:''},updaters:{alpha:'alphaUpdater',partColor:'partColorUpdater',partZIndex:'partZIndexUpdater'}}},config:{renderer:null,rendererData:null,rendererIndex:0,series:null},bevelParams:[],constructor:function(a){this.callParent([a]);this.bevelGradient=new Ext.draw.gradient.Linear({stops:[{offset:0,color:'rgba(255,255,255,0)'},{offset:0.7,color:'rgba(255,255,255,0.6)'},{offset:1,color:'rgba(255,255,255,0)'}]})},updateRenderer:function(){this.setDirty(!0)},updateRendererData:function(){this.setDirty(!0)},updateRendererIndex:function(){this.setDirty(!0)},alphaUpdater:function(d){var a=this,c=d.globalAlpha,b=d.fillOpacity,f=a.oldOpacity,e=a.oldFillOpacity;if((c!==f&&(c===1||f===1))||(b!==e&&(b===1||e===1))){a.scheduleUpdater(d,'path',['globalAlpha']);a.oldOpacity=c;a.oldFillOpacity=b}},partColorUpdater:function(d){var a=Ext.util.Color.fly(d.baseColor),e=a.toString(),b=d.colorSpread,c;switch(d.part){case 'top':c=new Ext.draw.gradient.Radial({start:{x:0,y:0,r:0},end:{x:0,y:0,r:1},stops:[{offset:0,color:a.createLighter(0.1*b)},{offset:1,color:a.createDarker(0.1*b)}]});break;case 'bottom':c=new Ext.draw.gradient.Radial({start:{x:0,y:0,r:0},end:{x:0,y:0,r:1},stops:[{offset:0,color:a.createDarker(0.2*b)},{offset:1,color:a.toString()}]});break;case 'outerFront':case 'outerBack':c=new Ext.draw.gradient.Linear({stops:[{offset:0,color:a.createDarker(0.15*b).toString()},{offset:0.3,color:e},{offset:0.8,color:a.createLighter(0.2*b).toString()},{offset:1,color:a.createDarker(0.25*b).toString()}]});break;case 'start':c=new Ext.draw.gradient.Linear({stops:[{offset:0,color:a.createDarker(0.1*b).toString()},{offset:1,color:a.createLighter(0.2*b).toString()}]});break;case 'end':c=new Ext.draw.gradient.Linear({stops:[{offset:0,color:a.createDarker(0.1*b).toString()},{offset:1,color:a.createLighter(0.2*b).toString()}]});break;case 'innerFront':case 'innerBack':c=new Ext.draw.gradient.Linear({stops:[{offset:0,color:a.createDarker(0.1*b).toString()},{offset:0.2,color:a.createLighter(0.2*b).toString()},{offset:0.7,color:e},{offset:1,color:a.createDarker(0.1*b).toString()}]});break;}d.fillStyle=c;d.canvasAttributes.fillStyle=c},partZIndexUpdater:function(a){var e=Ext.draw.sprite.AttributeParser.angle,f=a.baseRotation,b=a.startAngle,c=a.endAngle,d;switch(a.part){case 'top':a.zIndex=6;break;case 'outerFront':b=e(b+f);c=e(c+f);if(b>=0&&c<0){d=Math.sin(b)}else if(b<=0&&c>0){d=Math.sin(c)}else if(b>=0&&c>0){if(b>c){d=0}else {d=Math.max(Math.sin(b),Math.sin(c))}}else {d=1};a.zIndex=4+d;break;case 'outerBack':a.zIndex=1;break;case 'start':a.zIndex=4+Math.sin(e(b+f));break;case 'end':a.zIndex=4+Math.sin(e(c+f));break;case 'innerFront':a.zIndex=2;break;case 'innerBack':a.zIndex=4+Math.sin(e((b+c)/2+f));break;case 'bottom':a.zIndex=0;break;}a.dirtyZIndex=!0},updatePlainBBox:function(b){var a=this.attr,e=a.part,h=a.baseRotation,i=a.centerX,l=a.centerY,c,d,j,k,g,f;if(e==='start'){d=a.startAngle+h}else if(e==='end'){d=a.endAngle+h}if(Ext.isNumber(d)){g=Math.sin(d);f=Math.cos(d);j=Math.min(i+f*a.startRho,i+f*a.endRho);k=l+g*a.startRho*a.distortion;b.x=j;b.y=k;b.width=f*(a.endRho-a.startRho);b.height=a.thickness+g*(a.endRho-a.startRho)*2;return}if(e==='innerFront'||e==='innerBack'){c=a.startRho}else {c=a.endRho}b.width=c*2;b.height=c*a.distortion*2+a.thickness;b.x=a.centerX-c;b.y=a.centerY-c*a.distortion},updateTransformedBBox:function(a){if(this.attr.part==='start'||this.attr.part==='end'){return this.callParent(arguments)}return this.updatePlainBBox(a)},updatePath:function(a){if(!this.attr.globalAlpha){return}if(this.attr.endAngle<this.attr.startAngle){return}this[this.attr.part+'Renderer'](a)},render:function(g,d,i){var b=this,e=b.getRenderer(),a=b.attr,h=a.part,f,c;if(!a.globalAlpha||Ext.Number.isEqual(a.startAngle,a.endAngle,1.0E-8)){return}if(e){f={type:'pie3dPart',part:a.part,margin:a.margin,distortion:a.distortion,centerX:a.centerX,centerY:a.centerY,baseRotation:a.baseRotation,startAngle:a.startAngle,endAngle:a.endAngle,startRho:a.startRho,endRho:a.endRho};c=Ext.callback(e,null,[b,f,b.getRendererData(),b.getRendererIndex()],0,b.getSeries());if(c){if(c.part){c.part=h}b.setAttributes(c);b.useAttributes(d,i)}}b.callParent([g,d]);b.bevelRenderer(g,d);if(a.label&&b.getMarker('labels')){b.placeLabel()}},placeLabel:function(){var c=this,b=c.attr,r=b.attributeId,u=b.margin,i=b.distortion,k=b.centerX,l=b.centerY,q=b.baseRotation,x=b.startAngle+q,y=b.endAngle+q,t=(x+y)/2,z=b.startRho+u,g=b.endRho+u,v=(z+g)/2,n=Math.sin(t),m=Math.cos(t),f=c.surfaceMatrix,w=c.getMarker('labels'),j=w.getTemplate(),s=j.getCalloutLine(),o=s&&s.length||40,a={},p,h,d,e;f.appendMatrix(b.matrix);a.text=b.label;d=k+m*v;e=l+n*v*i;a.x=f.x(d,e);a.y=f.y(d,e);d=k+m*g;e=l+n*g*i;a.calloutStartX=f.x(d,e);a.calloutStartY=f.y(d,e);d=k+m*(g+o);e=l+n*(g+o)*i;a.calloutPlaceX=f.x(d,e);a.calloutPlaceY=f.y(d,e);a.calloutWidth=2;if(j.attr.renderer){p=[c.attr.label,w,a,c.getRendererData(),c.getRendererIndex()];h=Ext.callback(j.attr.renderer,null,p,0,c.getSeries());if(typeof h==='string'){a.text=h}else {Ext.apply(a,h)}}c.putMarker('labels',a,r);c.putMarker('labels',{callout:1},r)},bevelRenderer:function(g,a){var c=this,f=c.attr,d=f.bevelWidth,e=c.bevelParams,b;for(b=0;b<e.length;b++){a.beginPath();a.ellipse.apply(a,e[b]);a.save();a.lineWidth=d;a.strokeOpacity=d?1:0;a.strokeGradient=c.bevelGradient;a.stroke(f);a.restore()}},lidRenderer:function(g,i){var a=this.attr,m=a.margin,c=a.distortion,d=a.centerX,e=a.centerY,j=a.baseRotation,h=a.startAngle+j,b=a.endAngle+j,k=(h+b)/2,l=a.startRho,f=a.endRho,o=Math.sin(b),n=Math.cos(b);d+=Math.cos(k)*m;e+=Math.sin(k)*m*c;g.ellipse(d,e+i,l,l*c,0,h,b,!1);g.lineTo(d+n*f,e+i+o*f*c);g.ellipse(d,e+i,f,f*c,0,b,h,!0);g.closePath()},topRenderer:function(a){this.lidRenderer(a,0)},bottomRenderer:function(c){var a=this.attr,b=Ext.util.Color.RGBA_NONE;if(a.globalAlpha<1||a.fillOpacity<1||a.shadowColor!==b){this.lidRenderer(c,a.thickness)}},sideRenderer:function(f,g){var a=this.attr,p=a.margin,d=a.centerX,e=a.centerY,c=a.distortion,l=a.baseRotation,m=a.startAngle+l,o=a.endAngle+l,s=(!a.startAngle&&Ext.Number.isEqual(Math.PI*2,a.endAngle,1.0E-7)),n=a.thickness,h=a.startRho,i=a.endRho,q=(g==='start'&&m)||(g==='end'&&o),j=Math.sin(q),b=Math.cos(q),r=a.globalAlpha<1,t=g==='start'&&b<0||g==='end'&&b>0||r,k;if(t&&!s){k=(m+o)/2;d+=Math.cos(k)*p;e+=Math.sin(k)*p*c;f.moveTo(d+b*h,e+j*h*c);f.lineTo(d+b*i,e+j*i*c);f.lineTo(d+b*i,e+j*i*c+n);f.lineTo(d+b*h,e+j*h*c+n);f.closePath()}},startRenderer:function(a){this.sideRenderer(a,'start')},endRenderer:function(a){this.sideRenderer(a,'end')},rimRenderer:function(b,a,i,t){var j=this,l=j.attr,s=l.margin,e=l.centerX,f=l.centerY,h=l.distortion,o=l.baseRotation,m=Ext.draw.sprite.AttributeParser.angle,d=l.startAngle+o,c=l.endAngle+o,r=m((d+c)/2),k=l.thickness,n=l.globalAlpha<1,p,q,g;j.bevelParams=[];d=m(d);c=m(c);e+=Math.cos(r)*s;f+=Math.sin(r)*s*h;p=d>=0&&c>=0;q=d<=0&&c<=0;function renderLeftFrontChunk(){b.ellipse(e,f+k,a,a*h,0,Math.PI,d,!0);b.lineTo(e+Math.cos(d)*a,f+Math.sin(d)*a*h);g=[e,f,a,a*h,0,d,Math.PI,!1];if(!i){j.bevelParams.push(g)}b.ellipse.apply(b,g);b.closePath()}function renderRightFrontChunk(){b.ellipse(e,f+k,a,a*h,0,0,c,!1);b.lineTo(e+Math.cos(c)*a,f+Math.sin(c)*a*h);g=[e,f,a,a*h,0,c,0,!0];if(!i){j.bevelParams.push(g)}b.ellipse.apply(b,g);b.closePath()}function renderLeftBackChunk(){b.ellipse(e,f+k,a,a*h,0,Math.PI,c,!1);b.lineTo(e+Math.cos(c)*a,f+Math.sin(c)*a*h);g=[e,f,a,a*h,0,c,Math.PI,!0];if(i){j.bevelParams.push(g)}b.ellipse.apply(b,g);b.closePath()}function renderRightBackChunk(){b.ellipse(e,f+k,a,a*h,0,d,0,!1);b.lineTo(e+a,f);g=[e,f,a,a*h,0,0,d,!0];if(i){j.bevelParams.push(g)}b.ellipse.apply(b,g);b.closePath()}if(t){if(!i||n){if(d>=0&&c<0){renderLeftFrontChunk()}else if(d<=0&&c>0){renderRightFrontChunk()}else if(d<=0&&c<0){if(d>c){b.ellipse(e,f+k,a,a*h,0,0,Math.PI,!1);b.lineTo(e-a,f);g=[e,f,a,a*h,0,Math.PI,0,!0];if(!i){j.bevelParams.push(g)}b.ellipse.apply(b,g);b.closePath()}}else {if(d>c){renderLeftFrontChunk();renderRightFrontChunk()}else {g=[e,f,a,a*h,0,d,c,!1];if(p&&!i||q&&i){j.bevelParams.push(g)}b.ellipse.apply(b,g);b.lineTo(e+Math.cos(c)*a,f+Math.sin(c)*a*h+k);b.ellipse(e,f+k,a,a*h,0,c,d,!0);b.closePath()}}}}else {if(i||n){if(d>=0&&c<0){renderLeftBackChunk()}else if(d<=0&&c>0){renderRightBackChunk()}else if(d<=0&&c<0){if(d>c){renderLeftBackChunk();renderRightBackChunk()}else {b.ellipse(e,f+k,a,a*h,0,d,c,!1);b.lineTo(e+Math.cos(c)*a,f+Math.sin(c)*a*h);g=[e,f,a,a*h,0,c,d,!0];if(i){j.bevelParams.push(g)}b.ellipse.apply(b,g);b.closePath()}}else {if(d>c){b.ellipse(e,f+k,a,a*h,0,-Math.PI,0,!1);b.lineTo(e+a,f);g=[e,f,a,a*h,0,0,-Math.PI,!0];if(i){j.bevelParams.push(g)}b.ellipse.apply(b,g);b.closePath()}}}}},innerFrontRenderer:function(a){this.rimRenderer(a,this.attr.startRho,!0,!0)},innerBackRenderer:function(a){this.rimRenderer(a,this.attr.startRho,!0,!1)},outerFrontRenderer:function(a){this.rimRenderer(a,this.attr.endRho,!1,!0)},outerBackRenderer:function(a){this.rimRenderer(a,this.attr.endRho,!1,!1)}});Ext.define('Ext.chart.series.Pie3D',{extend:'Ext.chart.series.Polar',requires:['Ext.chart.series.sprite.Pie3DPart','Ext.draw.PathUtil'],type:'pie3d',seriesType:'pie3d',alias:'series.pie3d',is3D:!0,config:{rect:[0,0,0,0],thickness:35,distortion:0.5,donut:0,hidden:[],highlightCfg:{margin:20},shadow:!1},rotationOffset:-Math.PI/2,setField:function(a){return this.setXField(a)},getField:function(){return this.getXField()},updateRotation:function(b){var a={baseRotation:b+this.rotationOffset};this.forEachSprite(function(c){c.setAttributes(a)})},updateColors:function(b){this.setSubStyle({baseColor:b});if(!this.isConfiguring){var a=this.getChart();if(a){a.refreshLegendStore()}}},applyShadow:function(a){if(a===!0){a={shadowColor:'rgba(0,0,0,0.8)',shadowBlur:30}}else if(!Ext.isObject(a)){a={shadowColor:Ext.util.Color.RGBA_NONE}}return a},updateShadow:function(f){var d=this,b=d.getSprites(),e=d.spritesPerSlice,g=b&&b.length,a,c;for(a=1;a<g;a+=e){c=b[a];if(c.attr.part='bottom'){c.setAttributes(f)}}},getStyleByIndex:function(e){var a=this.callParent([e]),d=this.getStyle(),c=a.fillStyle||a.fill||a.color,b=d.strokeStyle||d.stroke;if(c){a.baseColor=c;delete a.fillStyle;delete a.fill;delete a.color}if(b){a.strokeStyle=b}return a},doUpdateStyles:function(){var c=this,b=c.getSprites(),e=c.spritesPerSlice,h=b&&b.length,d=0,g=0,a,f;for(;d<h;d+=e,g++){f=c.getStyleByIndex(g);for(a=0;a<e;a++){b[d+a].setAttributes(f)}}},coordinateX:function(){var b=this,D=b.getStore(),o=D.getData().items,h=o.length,B=b.getXField(),k=b.getAnimation(),n=b.getRotation(),j=b.getHidden(),i=b.getSprites(!0),w=i.length,g=b.spritesPerSlice,p=b.getCenter(),z=b.getOffsetX(),A=b.getOffsetY(),q=b.getRadius(),m=b.getThickness(),x=b.getDistortion(),y=b.getRenderer(),v=b.getRendererData(),E=b.getHighlight(),l=0,s=Math.PI*2,C=1.0E-10,d=[],e=0,t,u,c,r,a,f;for(a=0;a<h;a++){t=Math.abs(+o[a].get(B))||0;if(!j[a]){e+=t}d[a]=e;if(a>=j.length){j[a]=!1}}if(e===0){return}u=2*Math.PI/e;for(a=0;a<h;a++){d[a]*=u}for(a=0;a<h;a++){r=this.getStyleByIndex(a);for(f=0;f<g;f++){c=i[a*g+f];c.setAnimation(k);c.setAttributes({centerX:p[0]+z,centerY:p[1]+A-m/2,endRho:q,startRho:q*b.getDonut()/100,baseRotation:n+b.rotationOffset,startAngle:l,endAngle:d[a]-C,thickness:m,distortion:x,globalAlpha:1});c.setAttributes(r);c.setConfig({renderer:y,rendererData:v,rendererIndex:a})}l=d[a]}for(a*=g;a<w;a++){c=i[a];c.setAnimation(k);c.setAttributes({startAngle:s,endAngle:s,globalAlpha:0,baseRotation:n+b.rotationOffset})}},updateHighlight:function(a,b){this.callParent([a,b]);this.forEachSprite(function(c){if(a){if(c.modifiers.highlight){c.modifiers.highlight.setConfig(a)}else {c.config.highlight=a;c.addModifier(a,!0)}}})},updateLabelData:function(){var c=this,n=c.getStore(),k=n.getData().items,i=c.getSprites(),e=c.getLabel(),j=e&&e.getTemplate().getField(),m=c.getHidden(),l=c.spritesPerSlice,g,d,b,f='labels',h,a;if(i.length){if(j){d=[];for(a=0,g=k.length;a<g;a++){d.push(k[a].get(j))}}for(h=0,a=0,g=i.length;h<g;h+=l,a++){b=i[h];if(e){if(!b.getMarker(f)){b.bindMarker(f,e)}if(d){b.setAttributes({label:d[a]})}b.putMarker(f,{hidden:m[a]},b.attr.attributeId)}else {b.releaseMarker(f)}}}},applyRadius:function(){var a=this,f=a.getChart(),d=f.getInnerPadding(),g=f.getMainRect()||[0,0,1,1],i=g[2]-d*2,e=g[3]-d*2-a.getThickness(),c=i/2,h=c*a.getDistortion(),b;if(h>e/2){b=e/(a.getDistortion()*2)}else {b=c}return Math.max(b,0)},forEachSprite:function(c){var b=this.sprites,d=b.length,a;for(a=0;a<d;a++){c(b[a],Math.floor(a/this.spritesPerSlice))}},updateRadius:function(a){this.getChart();var b=this.getDonut();this.forEachSprite(function(c){c.setAttributes({endRho:a,startRho:a*b/100})})},updateDonut:function(b){this.getChart();var a=this.getRadius();this.forEachSprite(function(c){c.setAttributes({startRho:a*b/100})})},updateCenter:function(a){this.getChart();var c=this.getOffsetX(),d=this.getOffsetY(),b=this.getThickness();this.forEachSprite(function(e){e.setAttributes({centerX:a[0]+c,centerY:a[1]+d-b/2})})},updateThickness:function(a){this.getChart();this.setRadius();var c=this.getCenter(),b=this.getOffsetY();this.forEachSprite(function(d){d.setAttributes({thickness:a,centerY:c[1]+b-a/2})})},updateDistortion:function(a){this.getChart();this.setRadius();this.forEachSprite(function(b){b.setAttributes({distortion:a})})},updateOffsetX:function(a){this.getChart();var b=this.getCenter();this.forEachSprite(function(c){c.setAttributes({centerX:b[0]+a})})},updateOffsetY:function(b){this.getChart();var c=this.getCenter(),a=this.getThickness();this.forEachSprite(function(d){d.setAttributes({centerY:c[1]+b-a/2})})},updateAnimation:function(a){this.getChart();this.forEachSprite(function(b){b.setAnimation(a)})},updateRenderer:function(b){this.getChart();var a=this.getRendererData();this.forEachSprite(function(d,c){d.setConfig({renderer:b,rendererData:a,rendererIndex:c})})},getRendererData:function(){return {store:this.getStore(),angleField:this.getXField(),radiusField:this.getYField(),series:this}},getSprites:function(h){var a=this,f=a.getStore(),b=a.sprites;if(!f){return Ext.emptyArray}if(b&&!h){return b}var l=a.getSurface(),k=f.getData().items,g=a.spritesPerSlice,j=a.partNames.length,i=k.length,e,c,d;for(c=0;c<i;c++){if(!b[c*g]){for(d=0;d<j;d++){e=l.add({type:'pie3dPart',part:a.partNames[d],series:a});e.getAnimation().setDurationOn('baseRotation',0);b.push(e)}}}return b},betweenAngle:function(c,d,a){var b=Math.PI*2,e=this.rotationOffset;d+=e;a+=e;c-=d;a-=d;c%=b;a%=b;c+=b;a+=b;c%=b;a%=b;return c<a||a===0},getItemForPoint:function(l,m){var b=this,d=b.getSprites(),e=null;if(!d){return e}var k=b.getStore(),g=k.getData().items,f=b.spritesPerSlice,j=b.getHidden(),a,i,h,c;for(a=0,i=g.length;a<i;a++){if(j[a]){continue}c=a*f;h=d[c];if(h.hitTest([l,m])){e={series:b,sprite:d.slice(c,c+f),index:a,record:g[a],category:'sprites',field:b.getXField()};break}}return e},provideLegendInfo:function(i){var b=this,f=b.getStore();if(f){var e=f.getData().items,c=b.getLabel().getTemplate().getField(),j=b.getField(),h=b.getHidden(),a,g,d;for(a=0;a<e.length;a++){g=b.getStyleByIndex(a);d=g.baseColor;i.push({name:c?String(e[a].get(c)):j+' '+a,mark:d||'black',disabled:h[a],series:b.getId(),index:a})}}}},function(){var a=this.prototype,b=Ext.chart.series.sprite.Pie3DPart.def.getInitialConfig().processors.part;a.partNames=b.replace(/^enums\(|\)/g,'').split(',');a.spritesPerSlice=a.partNames.length});Ext.define('Ext.chart.series.sprite.Polar',{extend:'Ext.chart.series.sprite.Series',inheritableStatics:{def:{processors:{centerX:'number',centerY:'number',startAngle:'number',endAngle:'number',startRho:'number',endRho:'number',baseRotation:'number'},defaults:{centerX:0,centerY:0,startAngle:0,endAngle:Math.PI,startRho:0,endRho:150,baseRotation:0},triggers:{centerX:'bbox',centerY:'bbox',startAngle:'bbox',endAngle:'bbox',startRho:'bbox',endRho:'bbox',baseRotation:'bbox'}}},updatePlainBBox:function(b){var a=this.attr;b.x=a.centerX-a.endRho;b.y=a.centerY+a.endRho;b.width=a.endRho*2;b.height=a.endRho*2}});Ext.define('Ext.chart.series.sprite.Radar',{alias:'sprite.radar',extend:'Ext.chart.series.sprite.Polar',getDataPointXY:function(i){var t=this,a=t.attr,n=a.centerX,o=a.centerY,h=a.matrix,j=a.dataMinX,s=a.dataMaxX,q=a.dataX,r=a.dataY,p=a.endRho,g=a.startRho,m=a.baseRotation,k,l,f,e,c,d,b;if(a.rangeY){b=a.rangeY[1]}else {b=a.dataMaxY}e=(q[i]-j)/(s-j+1)*2*Math.PI+m;f=r[i]/b*(p-g)+g;c=n+Math.cos(e)*f;d=o+Math.sin(e)*f;k=h.x(c,d);l=h.y(c,d);return [k,l]},render:function(l,b){var e=this,i=e.attr,k=i.dataX,j=k.length,h=e.surfaceMatrix,f={},a,c,d,g;b.beginPath();for(a=0;a<j;a++){g=e.getDataPointXY(a);c=g[0];d=g[1];if(a===0){b.moveTo(c,d)}b.lineTo(c,d);f.translationX=h.x(c,d);f.translationY=h.y(c,d);e.putMarker('markers',f,a,!0)}b.closePath();b.fillStroke(i)}});Ext.define('Ext.chart.series.Radar',{extend:'Ext.chart.series.Polar',type:'radar',seriesType:'radar',alias:'series.radar',requires:['Ext.chart.series.sprite.Radar'],themeColorCount:function(){return 1},isStoreDependantColorCount:!1,themeMarkerCount:function(){return 1},updateAngularAxis:function(a){a.processData(this)},updateRadialAxis:function(a){a.processData(this)},coordinateX:function(){return this.coordinate('X',0,2)},coordinateY:function(){return this.coordinate('Y',1,2)},updateCenter:function(a){this.setStyle({translationX:a[0]+this.getOffsetX(),translationY:a[1]+this.getOffsetY()});this.doUpdateStyles()},updateRadius:function(a){this.setStyle({endRho:a});this.doUpdateStyles()},updateRotation:function(c){var b=this,g=b.getChart(),d=g.getAxes(),a,f,e;for(a=0,f=d.length;a<f;a++){e=d[a];e.setRotation(c)}b.setStyle({rotationRads:c});b.doUpdateStyles()},updateTotalAngle:function(a){this.processData()},getItemForPoint:function(n,o){var a=this,c=a.sprites&&a.sprites[0],m=c.attr,k=m.dataX,i=k.length,l=a.getStore(),j=a.getMarker(),d,h,f,b,e,g;if(a.getHidden()){return null}if(c&&j){g=c.getMarker('markers');for(b=0;b<i;b++){e=g.getBBoxFor(b);d=(e.width+e.height)*0.25;f=c.getDataPointXY(b);if(Math.abs(f[0]-n)<d&&Math.abs(f[1]-o)<d){h={series:a,sprite:c,index:b,category:'markers',record:l.getData().items[b],field:a.getYField()};return h}}}return a.callParent(arguments)},getDefaultSpriteConfig:function(){var a=this.callParent(),b={customDurations:{translationX:0,translationY:0,rotationRads:0,dataMinX:0,dataMaxX:0}};if(a.animation){Ext.apply(a.animation,b)}else {a.animation=b}return a},getSprites:function(){var a=this,c=a.getChart(),b=a.sprites;if(!c){return Ext.emptyArray}if(!b.length){a.createSprite()}return b},provideLegendInfo:function(d){var b=this,c=b.getSubStyleWithTheme(),a=c.fillStyle;if(Ext.isArray(a)){a=a[0]}d.push({name:b.getTitle()||b.getYField()||b.getId(),mark:(Ext.isObject(a)?a.stops&&a.stops[0].color:a)||c.strokeStyle||'black',disabled:b.getHidden(),series:b.getId(),index:0})}});Ext.define('Ext.chart.series.sprite.Scatter',{alias:'sprite.scatterSeries',extend:'Ext.chart.series.sprite.Cartesian',renderClipped:function(v,B,A,a){if(this.cleanRedraw){return}var e=this,f=e.attr,t=f.dataX,x=f.dataY,n=f.labels,w=e.getSeries(),u=n&&e.getMarker('labels'),k=e.surfaceMatrix,l=e.attr.matrix,h=l.getXX(),i=l.getYY(),y=l.getDX(),z=l.getDY(),g={},r,s,j=v.getInherited().rtl&&!f.flipXY?-1:1,p,o,q,m,c,d,b;if(f.flipXY){p=a[1]-h*j;o=a[1]+a[3]+h*j;q=a[0]-i;m=a[0]+a[2]+i}else {p=a[0]-h*j;o=a[0]+a[2]+h*j;q=a[1]-i;m=a[1]+a[3]+i}for(b=0;b<t.length;b++){c=t[b];d=x[b];c=c*h+y;d=d*i+z;if(p<=c&&c<=o&&q<=d&&d<=m){if(f.renderer){g={type:'markers',translationX:k.x(c,d),translationY:k.y(c,d)};s=[e,g,{store:e.getStore()},b];r=Ext.callback(f.renderer,null,s,0,w);g=Ext.apply(g,r)}else {g.translationX=k.x(c,d);g.translationY=k.y(c,d)}e.putMarker('markers',g,b,!f.renderer);if(u&&n[b]){e.drawLabel(n[b],c,d,b,a)}}}},drawLabel:function(p,r,k,c,s){var b=this,o=b.attr,n=b.getMarker('labels'),j=n.getTemplate(),a=b.labelCfg||(b.labelCfg={}),l=b.surfaceMatrix,h,d,e=o.labelOverflowPadding,q=o.flipXY,i,f,g,m;a.text=p;f=b.getMarkerBBox('labels',c,!0);if(!f){b.putMarker('labels',a,c);f=b.getMarkerBBox('labels',c,!0)}if(q){a.rotationRads=Math.PI*0.5}else {a.rotationRads=0}i=f.height/2;h=r;switch(j.attr.display){case 'under':d=k-i-e;break;case 'rotate':h+=e;d=k-e;a.rotationRads=-Math.PI/4;break;default:d=k+i+e;}a.x=l.x(h,d);a.y=l.y(h,d);if(j.attr.renderer){m=[p,n,a,{store:b.getStore()},c];g=Ext.callback(j.attr.renderer,null,m,0,b.getSeries());if(typeof g==='string'){a.text=g}else {Ext.apply(a,g)}}b.putMarker('labels',a,c)}});Ext.define('Ext.chart.series.Scatter',{extend:'Ext.chart.series.Cartesian',alias:'series.scatter',type:'scatter',seriesType:'scatterSeries',requires:['Ext.chart.series.sprite.Scatter'],config:{itemInstancing:null,marker:!0},themeMarkerCount:function(){return 1},provideLegendInfo:function(d){var a=this,c=a.getMarkerStyleByIndex(0),b=c.fillStyle;d.push({name:a.getTitle()||a.getYField()||a.getId(),mark:(Ext.isObject(b)?b.stops&&b.stops[0].color:b)||c.strokeStyle||'black',disabled:a.getHidden(),series:a.getId(),index:0})}});Ext.define('Ext.chart.theme.Blue',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.blue','chart.theme.Blue'],config:{baseColor:'#4d7fe6'}});Ext.define('Ext.chart.theme.BlueGradients',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.blue-gradients','chart.theme.Blue:gradients'],config:{baseColor:'#4d7fe6',gradients:{type:'linear',degrees:90}}});Ext.define('Ext.chart.theme.Category1',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.category1','chart.theme.Category1'],config:{colors:['#f0a50a','#c20024','#2044ba','#810065','#7eae29']}});Ext.define('Ext.chart.theme.Category1Gradients',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.category1-gradients','chart.theme.Category1:gradients'],config:{colors:['#f0a50a','#c20024','#2044ba','#810065','#7eae29'],gradients:{type:'linear',degrees:90}}});Ext.define('Ext.chart.theme.Category2',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.category2','chart.theme.Category2'],config:{colors:['#6d9824','#87146e','#2a9196','#d39006','#1e40ac']}});Ext.define('Ext.chart.theme.Category2Gradients',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.category2-gradients','chart.theme.Category2:gradients'],config:{colors:['#6d9824','#87146e','#2a9196','#d39006','#1e40ac'],gradients:{type:'linear',degrees:90}}});Ext.define('Ext.chart.theme.Category3',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.category3','chart.theme.Category3'],config:{colors:['#fbbc29','#ce2e4e','#7e0062','#158b90','#57880e']}});Ext.define('Ext.chart.theme.Category3Gradients',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.category3-gradients','chart.theme.Category3:gradients'],config:{colors:['#fbbc29','#ce2e4e','#7e0062','#158b90','#57880e'],gradients:{type:'linear',degrees:90}}});Ext.define('Ext.chart.theme.Category4',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.category4','chart.theme.Category4'],config:{colors:['#ef5773','#fcbd2a','#4f770d','#1d3eaa','#9b001f']}});Ext.define('Ext.chart.theme.Category4Gradients',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.category4-gradients','chart.theme.Category4:gradients'],config:{colors:['#ef5773','#fcbd2a','#4f770d','#1d3eaa','#9b001f'],gradients:{type:'linear',degrees:90}}});Ext.define('Ext.chart.theme.Category5',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.category5','chart.theme.Category5'],config:{colors:['#7eae29','#fdbe2a','#910019','#27b4bc','#d74dbc']}});Ext.define('Ext.chart.theme.Category5Gradients',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.category5-gradients','chart.theme.Category5:gradients'],config:{colors:['#7eae29','#fdbe2a','#910019','#27b4bc','#d74dbc'],gradients:{type:'linear',degrees:90}}});Ext.define('Ext.chart.theme.Category6',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.category6','chart.theme.Category6'],config:{colors:['#44dce1','#0b2592','#996e05','#7fb325','#b821a1']}});Ext.define('Ext.chart.theme.Category6Gradients',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.category6-gradients','chart.theme.Category6:gradients'],config:{colors:['#44dce1','#0b2592','#996e05','#7fb325','#b821a1'],gradients:{type:'linear',degrees:90}}});Ext.define('Ext.chart.theme.DefaultGradients',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.default-gradients','chart.theme.Base:gradients'],config:{gradients:{type:'linear',degrees:90}}});Ext.define('Ext.chart.theme.Green',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.green','chart.theme.Green'],config:{baseColor:'#b1da5a'}});Ext.define('Ext.chart.theme.GreenGradients',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.green-gradients','chart.theme.Green:gradients'],config:{baseColor:'#b1da5a',gradients:{type:'linear',degrees:90}}});Ext.define('Ext.chart.theme.Midnight',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.midnight','chart.theme.Midnight'],config:{colors:['#a837ff','#4ac0f2','#ff4d35','#ff8809','#61c102','#ff37ea'],chart:{defaults:{captions:{title:{docked:'top',padding:5,style:{textAlign:'center',fontFamily:'default',fontWeight:'bold',fillStyle:'rgb(224, 224, 227)',fontSize:'default*1.6'}},subtitle:{docked:'top',style:{textAlign:'center',fontFamily:'default',fontWeight:'normal',fillStyle:'rgb(224, 224, 227)',fontSize:'default*1.3'}},credits:{docked:'bottom',padding:5,style:{textAlign:'left',fontFamily:'default',fontWeight:'lighter',fillStyle:'rgb(224, 224, 227)',fontSize:'default'}}},background:'rgb(52, 52, 53)'}},axis:{defaults:{style:{strokeStyle:'rgb(224, 224, 227)'},label:{fillStyle:'rgb(224, 224, 227)'},title:{fillStyle:'rgb(224, 224, 227)'},grid:{strokeStyle:'rgb(112, 112, 115)'}}},series:{defaults:{label:{fillStyle:'rgb(224, 224, 227)'}}},sprites:{text:{fillStyle:'rgb(224, 224, 227)'}},legend:{label:{fillStyle:'white'},border:{lineWidth:2,fillStyle:'rgba(255, 255, 255, 0.3)',strokeStyle:'rgb(150, 150, 150)'},background:'rgb(52, 52, 53)'}}});Ext.define('Ext.chart.theme.Muted',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.muted','chart.theme.Muted'],config:{colors:['#8ca640','#974144','#4091ba','#8e658e','#3b8d8b','#b86465','#d2af69','#6e8852','#3dcc7e','#a6bed1','#cbaa4b','#998baa']}});Ext.define('Ext.chart.theme.Purple',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.purple','chart.theme.Purple'],config:{baseColor:'#da5abd'}});Ext.define('Ext.chart.theme.PurpleGradients',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.purple-gradients','chart.theme.Purple:gradients'],config:{baseColor:'#da5abd',gradients:{type:'linear',degrees:90}}});Ext.define('Ext.chart.theme.Red',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.red','chart.theme.Red'],config:{baseColor:'#e84b67'}});Ext.define('Ext.chart.theme.RedGradients',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.red-gradients','chart.theme.Red:gradients'],config:{baseColor:'#e84b67',gradients:{type:'linear',degrees:90}}});Ext.define('Ext.chart.theme.Sky',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.sky','chart.theme.Sky'],config:{baseColor:'#4ce0e7'}});Ext.define('Ext.chart.theme.SkyGradients',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.sky-gradients','chart.theme.Sky:gradients'],config:{baseColor:'#4ce0e7',gradients:{type:'linear',degrees:90}}});Ext.define('Ext.chart.theme.Yellow',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.yellow','chart.theme.Yellow'],config:{baseColor:'#fec935'}});Ext.define('Ext.chart.theme.YellowGradients',{extend:'Ext.chart.theme.Base',singleton:!0,alias:['chart.theme.yellow-gradients','chart.theme.Yellow:gradients'],config:{baseColor:'#fec935',gradients:{type:'linear',degrees:90}}});Ext.define('Ext.draw.Point',{requires:['Ext.draw.Draw','Ext.draw.Matrix'],isPoint:!0,x:0,y:0,length:0,angle:0,angleUnits:'degrees',statics:{fly:(function(){var a=null;return function(b,c){if(!a){a=new Ext.draw.Point()}a.constructor(b,c);return a}})()},constructor:function(a,c){var b=this;if(typeof a==='number'){b.x=a;if(typeof c==='number'){b.y=c}else {b.y=a}}else if(Ext.isArray(a)){b.x=a[0];b.y=a[1]}else if(a){b.x=a.x;b.y=a.y}b.calculatePolar()},calculateCartesian:function(){var a=this,c=a.length,b=a.angle;if(a.angleUnits==='degrees'){b=Ext.draw.Draw.rad(b)}a.x=Math.cos(b)*c;a.y=Math.sin(b)*c},calculatePolar:function(){var a=this,b=a.x,c=a.y;a.length=Math.sqrt(b*b+c*c);a.angle=Math.atan2(c,b);if(a.angleUnits==='degrees'){a.angle=Ext.draw.Draw.degrees(a.angle)}},setX:function(a){this.x=a;this.calculatePolar()},setY:function(a){this.y=a;this.calculatePolar()},set:function(a,b){this.constructor(a,b)},setAngle:function(a){this.angle=a;this.calculateCartesian()},setLength:function(a){this.length=a;this.calculateCartesian()},setPolar:function(b,a){this.angle=b;this.length=a;this.calculateCartesian()},clone:function(){return new Ext.draw.Point(this.x,this.y)},add:function(b,c){var a=Ext.draw.Point.fly(b,c);return new Ext.draw.Point(this.x+a.x,this.y+a.y)},sub:function(b,c){var a=Ext.draw.Point.fly(b,c);return new Ext.draw.Point(this.x-a.x,this.y-a.y)},mul:function(a){return new Ext.draw.Point(this.x*a,this.y*a)},div:function(a){return new Ext.draw.Point(this.x/a,this.y/a)},dot:function(b,c){var a=Ext.draw.Point.fly(b,c);return this.x*a.x+this.y*a.y},equals:function(b,c){var a=Ext.draw.Point.fly(b,c);return this.x===a.x&&this.y===a.y},rotate:function(e,f){var b,a,c,d,g;if(this.angleUnits==='degrees'){e=Ext.draw.Draw.rad(e);b=Math.sin(e);a=Math.cos(e)}if(f){c=f.x;d=f.y}else {c=0;d=0}g=Ext.draw.Matrix.fly([a,b,-b,a,c-a*c+d*b,d-a*d+c*-b]).transformPoint(this);return new Ext.draw.Point(g)},transform:function(a){if(a&&a.isMatrix){return new Ext.draw.Point(a.transformPoint(this))}else if(arguments.length===6){return new Ext.draw.Point(Ext.draw.Matrix.fly(arguments).transformPoint(this))}else {Ext.raise("Invalid parameters.")}},round:function(){return new Ext.draw.Point(Math.round(this.x),Math.round(this.y))},ceil:function(){return new Ext.draw.Point(Math.ceil(this.x),Math.ceil(this.y))},floor:function(){return new Ext.draw.Point(Math.floor(this.x),Math.floor(this.y))},abs:function(a,b){return new Ext.draw.Point(Math.abs(this.x),Math.abs(this.y))},normalize:function(d){var a=this.x,b=this.y,c=(d||1)/Math.sqrt(a*a+b*b);return new Ext.draw.Point(a*c,b*c)},getDistanceToLine:function(a,c){if(arguments.length===4){a=new Ext.draw.Point(arguments[0],arguments[1]);c=new Ext.draw.Point(arguments[2],arguments[3])}var d=c.sub(a).normalize(),b=a.sub(this);return b.sub(d.mul(b.dot(d)))},isZero:function(){return this.x===0&&this.y===0},isNumber:function(){return Ext.isNumber(this.x)&&Ext.isNumber(this.y)}});Ext.define('Ext.draw.plugin.SpriteEvents',{extend:'Ext.plugin.Abstract',alias:'plugin.spriteevents',requires:['Ext.draw.overrides.hittest.All'],mouseMoveEvents:{mousemove:!0,mouseover:!0,mouseout:!0},spriteMouseMoveEvents:{spritemousemove:!0,spritemouseover:!0,spritemouseout:!0},init:function(b){var a='handleEvent';this.drawContainer=b;b.addElementListener({click:a,dblclick:a,mousedown:a,mousemove:a,mouseup:a,mouseover:a,mouseout:a,priority:1001,scope:this})},hasSpriteMouseMoveListeners:function(){var b=this.drawContainer.hasListeners,a;for(a in this.spriteMouseMoveEvents){if(a in b){return !0}}return !1},hitTestEvent:function(e){var d=this.drawContainer.getItems(),c,b,a;for(a=d.length-1;a>=0;a--){c=d.get(a);b=c.hitTestEvent(e);if(b){return b}}return null},handleEvent:function(c){var b=this,d=b.drawContainer,f=c.type in b.mouseMoveEvents,e=b.lastSprite,a;if(f&&!b.hasSpriteMouseMoveListeners()){return}a=b.hitTestEvent(c);if(f&&!Ext.Object.equals(a,e)){if(e){d.fireEvent('spritemouseout',e,c)}if(a){d.fireEvent('spritemouseover',a,c)}}if(a){d.fireEvent('sprite'+c.type,a,c)}b.lastSprite=a}});Ext.define('Ext.chart.interactions.ItemInfo',{extend:'Ext.chart.interactions.Abstract',type:'iteminfo',alias:'interaction.iteminfo',config:{gestures:{tap:'onInfoGesture'},panel:{modal:!0,centered:!0,width:300,height:200,scrollable:'vertical',hideOnMaskTap:!0,fullscreen:!1,hidden:!1,zIndex:30}},item:null,applyPanel:function(b,a){return Ext.factory(b,'Ext.Panel',a)},updatePanel:function(b,a){if(b){b.on('hide',"reset",this)}if(a){a.un('hide',"reset",this)}},onInfoGesture:function(d,e){var a=this,c=a.getPanel(),b=a.getItemForEvent(d);if(b){a.item=b;a.fireEvent('show',a,b,c);Ext.Viewport.add(c);c.show('pop');b.series.setAttributesForItem(b,{highlighted:!0});a.sync()}return !1},reset:function(){var b=this,a=b.item;if(a){a.series.setAttributesForItem(a,{highlighted:!1});b.item=null;b.sync()}}});