// JenScript - 1.3.2 2017-06-10 // http://jenscript.io - Copyright 2017 Sébastien Janaud. All Rights reserved !function(){"use strict";function a(a,b,c,d,e,f){if(p){var h,i=["new JenScript.BigNumber","compareTo","divide","equals","gt","gte","lt","lte","substract","modulo","add","multiply","toFraction"][s?0>s?-s:s:0>1/s?1:0]+"()",j=g?" out of range":" not a"+(e?" non-zero":"n")+" integer";throw j=([i+" number type has more than 15 significant digits",i+" not a base "+c+" number",i+" base"+j,i+" not a number"][b]||c+"() "+b+(f?" not a boolean or binary digit":j+(d?" or not ["+(g?" negative, positive":" integer, integer")+" ]":"")))+": "+a,g=s=0,h=new Error(j),h.name="JenScript.BigNumber Error",h}}function b(a,b,d,e){function f(a,c){var e,f,g=0,h=a.length,i=[0];for(c=c||d;h>g;g++){for(f=i.length,e=0;f>e;i[e]*=c,e++);for(i[0]+=r.indexOf(a.charAt(g)),e=0;eb-1&&(null==i[e+1]&&(i[e+1]=0),i[e+1]+=i[e]/b^0,i[e]%=b)}return i.reverse()}function g(a){for(var b=0,c=a.length,d="";c>b;d+=r.charAt(a[b++]));return d}var h,i,j,k,l,m;if(37>d&&(a=a.toLowerCase()),(h=a.indexOf("."))>-1)if(h=a.length-h-1,i=f(new JenScript.BigNumber(d).pow(h).toF(),10),k=a.split("."),j=f(k[1]),k=f(k[0]),m=c(j,i,j.length-i.length,e,b,1&k[k.length-1]),l=m.c,h=m.e){for(;++h;l.unshift(0));a=g(k)+"."+g(l)}else l[0]?k[h=k.length-1]x?0:x;t++k;k++){if(h!=(t=s.length))l=h>t?1:-1;else for(m=-1,l=0;++ms[m]?1:-1;break}if(!(0>l))break;for(i=t==h?b:p;t;){if(s[--t]x&&e(u,j,f,g,null!=s[0]),u.e>o?u.c=u.e=null:u.e++b&&e(a,d,10),d=0==f[0]?d+1:c?b:a.e+d+1;f.length=d)?(a.s<0&&f[0]?"-":"")+(f.length>1?(f.splice(1,0,"."),f.join("")):f[0])+(0>d?"e":"e+")+d:a.toString()}function e(a,b,c,d,e){var f=a.c,g=a.s<0,h=c/2,i=a.e+b+1,j=f[i],l=e||0>i||null!=f[i+1];if(e=4>k?(null!=j||l)&&(0==k||2==k&&!g||3==k&&g):j>h||j==h&&(4==k||l||6==k&&(1&f[i-1]||!b&&d)||7==k&&!g||8==k&&g),1>i||!f[0])return f.length=0,f.push(0),e?(f[0]=1,a.e=-b):a.e=0,a;if(f.length=i--,e)for(--c;++f[i]>c;)f[i]=0,i--||(++a.e,f.unshift(1));for(i=f.length;!f[--i];f.pop());return a}function f(a,b,c){var d=k;return k=c,a=new JenScript.BigNumber(a),a.c&&e(a,b,10),k=d,a}var g,h=1e9,i=1e6,j=20,k=4,l=-7,m=21,n=-h,o=h,p=!0,q=parseInt,r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",s=0,t=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,u=String.prototype.trim||function(){return this.replace(/^\s+|\s+$/g,"")};JenScript.BigNumber=function(c,d){var e,h,i,l,m,q,v=this;if(!(v instanceof JenScript.BigNumber))return new JenScript.BigNumber(c,d);if(c instanceof JenScript.BigNumber){if(s=0,d===e)return v.s=c.s,v.e=c.e,void(v.c=(c=c.c)?c.slice():c);c+=""}if("string"!=typeof c&&(c=(i="number"==typeof c||"[object Number]"==Object.prototype.toString.call(c))&&0===c&&0>1/c?"-0":c+""),q=c,d===e&&t.test(c))v.s="-"==c.charAt(0)?(c=c.slice(1),-1):1;else{if(10==d)return f(c,j,k);if(c=u.call(c).replace(/^\+(?!-)/,""),v.s="-"==c.charAt(0)?(c=c.replace(/^-(?!-)/,""),-1):1,null!=d?d!=(0|d)&&p||(g=!(d>=2&&65>d))?(a(d,2),m=t.test(c)):(l="["+r.slice(0,d=0|d)+"]+",c=c.replace(/\.$/,"").replace(/^\./,"0."),(m=new RegExp("^"+l+"(?:\\."+l+")?$",37>d?"i":"").test(c))?(i&&(c.replace(/^0\.0*|\./,"").length>15&&a(q,0),i=!i),c=b(c,10,d,v.s)):"Infinity"!=c&&"NaN"!=c&&(a(q,1,d),c="NaN")):m=t.test(c),!m)return v.c=v.e=null,"Infinity"!=c&&("NaN"!=c&&a(q,3),v.s=null),void(s=0)}for((e=c.indexOf("."))>-1&&(c=c.replace(".","")),(h=c.search(/e/i))>0?(0>e&&(e=h),e+=+c.slice(h+1),c=c.substring(0,h)):0>e&&(e=c.length),h=0;"0"==c.charAt(h);h++);if(d=c.length,i&&d>15&&c.slice(h).length>15&&a(q,0),s=0,(e-=h+1)>o)v.c=v.e=null;else if(h==d||n>e)v.c=[v.e=0];else{for(;"0"==c.charAt(--d););for(v.e=e,v.c=[],e=0;d>=h;v.c[e++]=+c.charAt(h++));}},JenScript.BigNumber.ROUND_UP=0,JenScript.BigNumber.ROUND_DOWN=1,JenScript.BigNumber.ROUND_CEIL=2,JenScript.BigNumber.ROUND_FLOOR=3,JenScript.BigNumber.ROUND_HALF_UP=4,JenScript.BigNumber.ROUND_HALF_DOWN=5,JenScript.BigNumber.ROUND_HALF_EVEN=6,JenScript.BigNumber.ROUND_HALF_CEIL=7,JenScript.BigNumber.ROUND_HALF_FLOOR=8,JenScript.BigNumber.config=function(){var b,c,d=0,e={},f=arguments,i=f[0],r="config",t=function(a,b,c){return!((g=b>a||a>c)||q(a)!=a&&0!==a)},u=i&&"object"==typeof i?function(){return i.hasOwnProperty(c)?null!=(b=i[c]):void 0}:function(){return f.length>d?null!=(b=f[d++]):void 0};return u(c="DECIMAL_PLACES")&&(t(b,0,h)?j=0|b:a(b,c,r)),e[c]=j,u(c="ROUNDING_MODE")&&(t(b,0,8)?k=0|b:a(b,c,r)),e[c]=k,u(c="EXPONENTIAL_AT")&&(t(b,-h,h)?l=-(m=~~(0>b?-b:+b)):!g&&b&&t(b[0],-h,0)&&t(b[1],0,h)?(l=~~b[0],m=~~b[1]):a(b,c,r,1)),e[c]=[l,m],u(c="RANGE")&&(t(b,-h,h)&&~~b?n=-(o=~~(0>b?-b:+b)):!g&&b&&t(b[0],-h,-1)&&t(b[1],1,h)?(n=~~b[0],o=~~b[1]):a(b,c,r,1,1)),e[c]=[n,o],u(c="ERRORS")&&(b===!!b||1===b||0===b?(g=s=0,q=(p=!!b)?parseInt:parseFloat):a(b,c,r,0,0,1)),e[c]=p,e},JenScript.BigNumber.prototype.abs=function(){var a=new JenScript.BigNumber(this);return a.s<0&&(a.s=1),a},JenScript.BigNumber.prototype.ceil=function(){return f(this,0,2)},JenScript.BigNumber.prototype.compareTo=function(a,b){var c,d=this,e=d.c,f=(s=-s,a=new JenScript.BigNumber(a,b)).c,g=d.s,h=a.s,i=d.e,j=a.e;if(!g||!h)return null;if(c=e&&!e[0],b=f&&!f[0],c||b)return c?b?0:-h:g;if(g!=h)return g;if(c=0>g,b=i==j,!e||!f)return b?0:!e^c?1:-1;if(!b)return i>j^c?1:-1;for(g=-1,h=(i=e.length)<(j=f.length)?i:j;++gf[g]^c?1:-1;return i==j?0:i>j^c?1:-1},JenScript.BigNumber.prototype.divide=function(a,b){var d=this.c,e=this.e,f=this.s,g=(s=2,a=new JenScript.BigNumber(a,b)).c,h=a.e,i=a.s,j=f==i?1:-1;return(e||d&&d[0])&&(h||g&&g[0])?c(d,g,e-h,j,10):new JenScript.BigNumber(f&&i&&(d?!g||d[0]!=g[0]:g)?d&&0==d[0]||!g?0*j:j/0:0/0)},JenScript.BigNumber.prototype.equals=function(a,b){return s=3,0===this.compareTo(a,b)},JenScript.BigNumber.prototype.floor=function(){return f(this,0,3)},JenScript.BigNumber.prototype.greaterThan=function(a,b){return s=4,this.compareTo(a,b)>0},JenScript.BigNumber.prototype.greaterThanOrEqualTo=function(a,b){return s=5,1==(b=this.compareTo(a,b))||0===b},JenScript.BigNumber.prototype.isFinite=function(){return!!this.c},JenScript.BigNumber.prototype.isNaN=function(){return!this.s},JenScript.BigNumber.prototype.isNegative=function(){return this.s<0},JenScript.BigNumber.prototype.isZero=function(){return!!this.c&&0==this.c[0]},JenScript.BigNumber.prototype.lessThan=function(a,b){return s=6,this.compareTo(a,b)<0},JenScript.BigNumber.prototype.lessThanOrEqualTo=function(a,b){return s=7,-1==(b=this.compareTo(a,b))||0===b},JenScript.BigNumber.prototype.subtract=function(a,b){var c,d,e,f,g=this,h=g.s;if(b=(s=8,a=new JenScript.BigNumber(a,b)).s,!h||!b)return new JenScript.BigNumber(0/0);if(h!=b)return a.s=-b,g.add(a);var i=g.c,j=g.e,l=a.c,m=a.e;if(!j||!m){if(!i||!l)return i?(a.s=-b,a):new JenScript.BigNumber(l?g:0/0);if(!i[0]||!l[0])return l[0]?(a.s=-b,a):new JenScript.BigNumber(i[0]?g:3==k?-0:0)}if(i=i.slice(),h=j-m){for(c=(f=0>h)?(h=-h,i):(m=j,l),c.reverse(),b=h;b--;c.push(0));c.reverse()}else for(e=((f=i.lengthb;b++)if(i[b]!=l[b]){f=i[b]0)for(;b--;i[e++]=0);for(b=l.length;b>h;){if(i[--b]m||!i[0])&&(i[0]||(a.s=3==k?-1:1),i=[m=0]),a.c=i,a.e=m,a},JenScript.BigNumber.prototype.modulo=function(a,b){var c=this,d=c.c,e=(s=9,a=new JenScript.BigNumber(a,b)).c,f=c.s,g=a.s;return b=!f||!g||e&&!e[0],b||d&&!d[0]?new JenScript.BigNumber(b?0/0:c):(c.s=a.s=1,b=1==a.compareTo(c),c.s=f,a.s=g,b?new JenScript.BigNumber(c):(f=j,g=k,j=0,k=1,c=c.divide(a),j=f,k=g,this.subtract(c.multiply(a))))},JenScript.BigNumber.prototype.negated=function(){var a=new JenScript.BigNumber(this);return a.s=-a.s||null,a},JenScript.BigNumber.prototype.add=function(a,b){var c,d=this,e=d.s;if(b=(s=10,a=new JenScript.BigNumber(a,b)).s,!e||!b)return new JenScript.BigNumber(0/0);if(e!=b)return a.s=-b,d.subtract(a);var f=d.e,g=d.c,h=a.e,i=a.c;if(!f||!h){if(!g||!i)return new JenScript.BigNumber(e/0);if(!g[0]||!i[0])return i[0]?a:new JenScript.BigNumber(g[0]?d:0*e)}if(g=g.slice(),e=f-h){for(c=e>0?(h=f,i):(e=-e,g),c.reverse();e--;c.push(0));c.reverse()}for(g.length-i.length<0&&(c=i,i=g,g=c),e=i.length,b=0;e;b=(g[--e]=g[e]+i[e]+b)/10^0,g[e]%=10);for(b&&(g.unshift(b),++h>o&&(g=h=null)),e=g.length;0==g[--e];g.pop());return a.c=g,a.e=h,a},JenScript.BigNumber.prototype.toPower=function(b){var c=0*b==0?0|b:b,d=new JenScript.BigNumber(this),e=new JenScript.BigNumber(1);if(((g=-i>b||b>i)&&(c=1*b/0)||q(b)!=b&&0!==b&&!(c=0/0))&&!a(b,"exponent","pow")||!c)return new JenScript.BigNumber(Math.pow(d.toString(),c));for(c=0>c?-c:c;1&c&&(e=e.multiply(d)),c>>=1,c;)d=d.multiply(d);return 0>b?new JenScript.BigNumber(1).divide(e):e},JenScript.BigNumber.prototype.round=function(b,c){return b=null==b||((g=0>b||b>h)||q(b)!=b)&&!a(b,"decimal places","round")?0:0|b,c=null==c||((g=0>c||c>8)||q(c)!=c&&0!==c)&&!a(c,"mode","round")?k:0|c,f(this,b,c)},JenScript.BigNumber.prototype.squareRoot=function(){var a,b,c,d,f=this,g=f.c,h=f.s,i=f.e,l=j,m=k,n=new JenScript.BigNumber("0.5");if(1!==h||!g||!g[0])return new JenScript.BigNumber(!h||0>h&&(!g||g[0])?0/0:g?f:1/0);for(h=Math.sqrt(f.toString()),k=1,0==h||h==1/0?(a=g.join(""),a.length+i&1||(a+="0"),b=new JenScript.BigNumber(Math.sqrt(a)+""),b.c||(b.c=[1]),b.e=((i+1)/2|0)-(0>i||1&i)):b=new JenScript.BigNumber(a=h.toString()),c=b.e,h=c+(j+=4),3>h&&(h=0),i=h;;)if(d=b,b=n.multiply(d.add(f.divide(d))),d.c.slice(0,h).join("")===b.c.slice(0,h).join("")){if(g=b.c,h-=a&&b.ei-2&&(g.length=i-2),b.multiply(b).equals(f)))){for(;g.length-1;g--){for(b=0,h=i+g;h>g;b=c[h]+f[g]*e[h-g-1]+b,c[h--]=b%10|0,b=b/10|0);b&&(c[h]=(c[h]+b)%10)}for(b&&++a.e,!c[0]&&c.shift(),h=c.length;!c[--h];c.pop());return a.c=a.e>o?a.e=null:a.eb||b>h)||q(b)!=b&&0!==b)&&!a(b,"decimal places","toE"))&&this.c?this.c.length-1:0|b,1)},JenScript.BigNumber.prototype.toFixed=function(b){var c,e,f,i=this;return null==b||((g=0>b||b>h)||q(b)!=b&&0!==b)&&!a(b,"decimal places","toF")||(f=i.e+(0|b)),c=l,b=m,l=-(m=1/0),f==e?e=i.toString():(e=d(i,f),i.s<0&&i.c&&(i.c[0]?e.indexOf("-")<0&&(e="-"+e):e=e.replace(/^-/,""))),l=c,m=b,e},JenScript.BigNumber.prototype.toFraction=function(b){var c,d,e,f,h,i,l,m=f=new JenScript.BigNumber(1),n=e=new JenScript.BigNumber("0"),q=this,r=q.c,t=o,u=j,v=k,w=new JenScript.BigNumber(1);if(!r)return q.toString();for(l=w.e=r.length-q.e-1,(null==b||(!(s=12,i=new JenScript.BigNumber(b)).s||(g=i.compareTo(m)<0||!i.c)||p&&i.e0)&&(b=l>0?w:m),o=1/0,i=new JenScript.BigNumber(r.join("")),j=0,k=1;c=i.divide(w),h=f.add(c.multiply(n)),1!=h.compareTo(b);)f=n,n=h,m=e.add(c.multiply(h=m)),e=h,w=i.subtract(c.multiply(h=w)),i=h;return h=b.subtract(f).divide(n),e=e.add(h.multiply(m)),f=f.add(h.multiply(n)),e.s=m.s=q.s,j=2*l,k=v,d=m.divide(n).subtract(q).abs().compareTo(e.divide(f).subtract(q).abs())<1?[m.toString(),n.toString()]:[e.toString(),f.toString()],o=t,j=u,d},JenScript.BigNumber.prototype.toPrecision=function(b){return null==b||((g=1>b||b>h)||q(b)!=b)&&!a(b,"precision","toP")?this.toString():d(this,0|--b,2)},JenScript.BigNumber.prototype.toString=function(c){var e,f,h,i=this,j=i.e;if(null===j)f=i.s?"Infinity":"NaN";else{if(c===e&&(l>=j||j>=m))return d(i,i.c.length-1,1);if(f=i.c.join(""),0>j){for(;++j;f="0"+f);f="0."+f}else if(h=f.length,j>0)if(++j>h)for(j-=h;j--;f+="0");else h>j&&(f=f.slice(0,j)+"."+f.slice(j));else if(e=f.charAt(0),h>1)f=e+"."+f.slice(1);else if("0"==e)return e;if(null!=c)if((g=!(c>=2&&65>c))||c!=(0|c)&&p)a(c,"base","toString");else if(f=b(f,0|c,10,i.s),"0"==f)return f}return i.s<0?"-"+f:f},JenScript.BigNumber.prototype.toNumber=function(){var a=this;return+a||(a.s?0*a.s:0/0)},JenScript.BigNumber.prototype.valueOf=function(){return this.toString()}}(),function(){JenScript.MetricsType={XMetrics:"XMetrics",YMetrics:"YMetrics"},JenScript.Axis={AxisSouth:"AxisSouth",AxisEast:"AxisEast",AxisWest:"AxisWest",AxisNorth:"AxisNorth"},JenScript.DeviceAxis={AxisX:"AxisX",AxisY:"AxisY"},JenScript.Metrics=function(a){this.init(a)},JenScript.Model.addMethods(JenScript.Metrics,{init:function(a){a=a||{},this.Id="metrics"+JenScript.sequenceId++,this.metricsType=a.metricsType,this.deviceValue,this.userValue,this.metricsMarkerColor,this.metricsLabelColor,this.format,this.metricsLabel,this.lockMarker,this.lockLabel,this.visible=!0,this.rotate=!1,this.markerLocation,this.markerPosition},getTickMarkerSize:function(){return this.minor?this.metricsPlugin.minor.tickMarkerSize:this.median?this.metricsPlugin.median.tickMarkerSize:this.metricsPlugin.major.tickMarkerSize},getTickMarkerColor:function(){return this.minor?this.metricsPlugin.minor.tickMarkerColor:this.median?this.metricsPlugin.median.tickMarkerColor:this.metricsPlugin.major.tickMarkerColor},getTickMarkerStroke:function(){return this.minor?this.metricsPlugin.minor.tickMarkerStroke:this.median?this.metricsPlugin.median.tickMarkerStroke:this.metricsPlugin.major.tickMarkerColor},getTickTextColor:function(){return this.minor?this.metricsPlugin.minor.tickTextColor:this.median?this.metricsPlugin.median.tickTextColor:this.metricsPlugin.major.tickTextColor},getTickTextFontSize:function(){return this.minor?0:this.median?this.metricsPlugin.median.tickTextFontSize:this.metricsPlugin.major.tickTextFontSize},getTickTextOffset:function(){return this.minor?0:this.median?this.metricsPlugin.median.tickTextOffset:this.metricsPlugin.major.tickTextOffset},setDeviceValue:function(a){this.deviceValue=a},setUserValue:function(a){this.userValue=a},getDeviceValue:function(){return this.deviceValue},getUserValue:function(){return this.userValue},setRotate:function(a){this.rotate=a},isRotate:function(){return this.rotate},setMarkerLocation:function(a){this.markerLocation=a},getMarkerLocation:function(){return this.markerLocation},setMarkerPosition:function(a){this.markerPosition=a},getMarkerPosition:function(){return this.markerPosition},setMetricsType:function(a){this.metricsType=a},getMetricsType:function(){return this.metricsType},getMetricsMarkerColor:function(){return this.metricsMarkerColor},setMetricsMarkerColor:function(a){this.metricsMarkerColor=a}}),JenScript.TimePointMetrics=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.TimePointMetrics,JenScript.Metrics),JenScript.Model.addMethods(JenScript.TimePointMetrics,{_init:function(a){a=a||{},JenScript.Metrics.call(this,a),this.time=a.time},getTime:function(){return this.time},setTime:function(a){this.time=a}}),JenScript.TimeDurationMetrics=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.TimeDurationMetrics,JenScript.Metrics),JenScript.Model.addMethods(JenScript.TimeDurationMetrics,{_init:function(a){a=a||{},JenScript.Metrics.call(this,a),this.timeStart,this.timeEnd,this.metricsStart,this.metricsEnd},getMetricsStart:function(){return this.metricsStart},setMetricsStart:function(a){this.metricsStart=a},getMetricsEnd:function(){return this.metricsEnd},setMetricsEnd:function(a){this.metricsEnd=a},getTimeCenter:function(){var a=this.timeEnd.getTime()-this.timeStart.getTime(),b=this.timeStart.getTime()+a/2;return new Date(b)},getTimeStart:function(){return this.timeStart},setTimeStart:function(a){this.timeStart=a},getTimeEnd:function(){return this.timeEnd},setTimeEnd:function(a){this.timeEnd=a}})}(),function(){JenScript.MetricsPainter=function(){this.axisBaseLine},JenScript.Model.addMethods(JenScript.MetricsPainter,{setMetricsPlugin:function(a){this.metricsPlugin=a},getMetricsPlugin:function(){return this.metricsPlugin},doPaintLineMetrics:function(a,b,c,d,e,f){var g=(new JenScript.SVGElement).name("line").attr("id","metricsaxisline"+JenScript.sequenceId++).attr("x1",c.x).attr("y1",c.y).attr("x2",d.x).attr("y2",d.y).attr("style","stroke:"+e+";stroke-width:"+f);a.insertSVG(g.buildHTML())},paintMetricsTickMarker:function(a,b,c){var d=c.getTickMarkerSize(),e=c.getTickMarkerStroke(),f=c.getTickMarkerColor(),g=void 0,h=void 0,i=void 0,j=c.getMarkerLocation();"S"===c.getMarkerPosition()&&(i="southtick",g={x:j.x,y:j.y+2},h={x:j.x,y:j.y+d+2}),"N"==c.getMarkerPosition()&&(i="northtick",g={x:j.x,y:j.y-2},h={x:j.x,y:j.y-d-2}),"W"==c.getMarkerPosition()&&(i="westtick",g={x:j.x-d-2,y:j.y},h={x:j.x-2,y:j.y}),"E"==c.getMarkerPosition()&&(i="easttick",g={x:j.x+2,y:j.y},h={x:j.x+d+2,y:j.y});var k=(new JenScript.SVGElement).name("line").attr("id",i+JenScript.sequenceId++).attr("x1",g.x).attr("y1",g.y).attr("x2",h.x).attr("y2",h.y).attr("stroke",f).attr("stroke-width",e);a.insertSVG(k.buildHTML())},paintSouthMetricsLabel:function(a,b){var c=b.getMarkerLocation(),d=b.getTickMarkerSize(),e=b.getTickTextColor(),f=b.getTickTextFontSize(),g=b.getTickTextOffset(),h=(new JenScript.SVGElement).name("text").attr("id","southmetrics"+JenScript.sequenceId++).attr("x",c.x+"px").attr("y",c.y+d+f+g+2+"px").attr("font-size",f).attr("fill",e).attr("text-anchor","middle").textContent(b.format()),i=h.buildHTML();a.insertSVG(i)},paintNorthMetricsLabel:function(a,b){var c=b.getMarkerLocation(),d=b.getTickMarkerSize(),e=b.getTickTextColor(),f=b.getTickTextFontSize(),g=b.getTickTextOffset(),h=(new JenScript.SVGElement).name("text").attr("id","northmetrics"+JenScript.sequenceId++).attr("x",c.x+"px").attr("y",c.y-d-g-4+"px").attr("font-size",f).attr("fill",e).attr("text-anchor","middle").textContent(b.format());a.insertSVG(h.buildHTML())},paintWestMetricsLabel:function(a,b){if(b.isRotate()){var c=b.getMarkerLocation(),d=b.getTickMarkerSize(),e=b.getTickTextColor(),f=b.getTickTextFontSize(),g=b.getTickTextOffset(),h="metrics"+JenScript.sequenceId++,i=(new JenScript.SVGElement).name("text").attr("id",h).attr("x",c.x+"px").attr("y",c.y+"px").attr("font-size",f).attr("fill",e).attr("text-anchor","middle").attr("transform","translate("+(-d-g-6)+",0) rotate(-90,"+c.x+","+c.y+")").textContent(b.format()),j=i.buildHTML();a.insertSVG(j);var k=this.transformedBoundingBox(j);(k.y<0||k.y+k.height>this.getMetricsPlugin().getProjection().getView().getDevice().getHeight())&&a.deleteGraphicsElement(h)}else{var c=b.getMarkerLocation(),d=b.getTickMarkerSize(),e=b.getTickTextColor(),f=b.getTickTextFontSize(),g=b.getTickTextOffset(),h="metrics"+JenScript.sequenceId++,i=(new JenScript.SVGElement).name("text").attr("id",h).attr("x",c.x+"px").attr("y",c.y+"px").attr("font-size",f).attr("fill",e).attr("text-anchor","end").attr("transform","translate("+(-d-g-6)+","+f/2+")").textContent(b.format()),j=i.buildHTML();a.insertSVG(j);var k=this.transformedBoundingBox(j);null!==k&&(k.y<-1||k.y+k.height>this.getMetricsPlugin().getProjection().getView().getDevice().getHeight()+1)&&a.deleteGraphicsElement(h)}},transformedBoundingBox:function(a){if(void 0===a)return null;var b=a.getBBox(),c=a.ownerSVGElement,d=a.parentNode.getScreenCTM().inverse().multiply(a.getScreenCTM()),e=[c.createSVGPoint(),c.createSVGPoint(),c.createSVGPoint(),c.createSVGPoint()];e[0].x=b.x,e[0].y=b.y,e[1].x=b.x+b.width,e[1].y=b.y,e[2].x=b.x+b.width,e[2].y=b.y+b.height,e[3].x=b.x,e[3].y=b.y+b.height;var f=1/0,g=-(1/0),h=1/0,i=-(1/0);return e.forEach(function(a){a=a.matrixTransform(d),f=Math.min(f,a.x),g=Math.max(g,a.x),h=Math.min(h,a.y),i=Math.max(i,a.y)}),{x:f,y:h,width:g-f,height:i-h}},paintEastMetricsLabel:function(a,b){if(b.isRotate()){var c=b.getMarkerLocation(),d=b.getTickMarkerSize(),e=b.getTickTextColor(),f=b.getTickTextFontSize(),g=b.getTickTextOffset(),h="metrics"+JenScript.sequenceId++,i=(new JenScript.SVGElement).name("text").attr("id",h).attr("x",c.x).attr("y",c.y).attr("font-size",f).attr("fill",e).attr("text-anchor","middle").attr("transform","translate("+(d+g-6)+",0) rotate(90,"+c.x+","+c.y+")").textContent(b.format()),j=i.buildHTML();a.insertSVG(j);var k=this.transformedBoundingBox(j);(k.y<0||k.y+k.height>this.getMetricsPlugin().getProjection().getView().getDevice().getHeight())&&a.deleteGraphicsElement(h)}else{var c=b.getMarkerLocation(),d=b.getTickMarkerSize(),e=b.getTickTextColor(),f=b.getTickTextFontSize(),g=b.getTickTextOffset(),h="metrics"+JenScript.sequenceId++,i=(new JenScript.SVGElement).name("text").attr("id",h).attr("x",c.x+"px").attr("y",c.y+"px").attr("font-size",f).attr("fill",e).attr("text-anchor","start").attr("transform","translate("+(d+g)+","+f/2+")").textContent(b.format()),j=i.buildHTML();a.insertSVG(j);var k=this.transformedBoundingBox(j);null!==k&&(k.y<-1||k.y+k.height>this.getMetricsPlugin().getProjection().getView().getDevice().getHeight()+1)&&a.deleteGraphicsElement(h)}},paintMetricsTickLabel:function(a,b,c){c.minor!==!0&&("S"===c.getMarkerPosition()&&this.paintSouthMetricsLabel(a,c),"N"===c.getMarkerPosition()&&this.paintNorthMetricsLabel(a,c),"W"===c.getMarkerPosition()&&this.paintWestMetricsLabel(a,c),"E"===c.getMarkerPosition()&&this.paintEastMetricsLabel(a,c))},doPaintMetrics:function(a,b,c){for(var d=0;dc?-1:c>d?1:0});for(var e=0;e=c;c++){var d=this.createExponentModel(c);b[b.length]=d}return b},createExponentModel:function(a){var b=void 0,c="";if(0>a){c+="0.";for(var d=1;d0){c+="1";for(var d=1;d<=Math.abs(a);d++)c+="0";var e=c;b=new JenScript.MetricsModel({exponent:a,factor:new JenScript.BigNumber(e)})}else 0==a&&(b=new JenScript.MetricsModel({exponent:0,factor:new JenScript.BigNumber("1")}));return b},registerMetricsModel:function(a){a.setMetricsManager(this),this.metricsModels[this.metricsModels.length]=a,this.metricsModels.sort(function(a,b){return a.factor.compareTo(b.factor)})},registerMetricsModels:function(a){for(var b=0;bd||d>e?void 0:(b.setDeviceValue(d),b.setUserValue(a),b)}})}(),function(){JenScript.TimeModel=function(a){this.init(a)},JenScript.Model.addMethods(JenScript.TimeModel,{init:function(a){a=a||{},this.millis=a.millis,this.metricsManager,this.name=a.name,this.familyName=a.familyName,this.pixelLabelHolder=void 0!==a.pixelLabelHolder?a.pixelLabelHolder:18,this.minimal=void 0!==a.minimal?a.minimal:!1,this.unit,this.format=a.format},setFormat:function(a){this.format=a},getFormat:function(){return this.format},getMillis:function(){return this.millis},getMetricsManager:function(){return this.metricsManager},setMetricsManager:function(a){this.metricsManager=a},generateMetrics:function(){return[]},getMinify:function(){var a={};a.millis=this.millis,a.name=this.name+" minified",a.familyName=this.familyName,a.unit=this.unit,a.pixelLabelHolder=4,a.minimal=!0;var b=new JenScript.TimeModel(a);return b.generateMetrics=this.generateMetrics,b}})}(),function(){JenScript.MinuteModel=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.MinuteModel,JenScript.TimeModel),JenScript.Model.addMethods(JenScript.MinuteModel,{_init:function(a){a=a||{},a.familyName="Minute Model",a.unit="minute",this.minuteMultiplier=a.minuteMultiplier,a.millis=6e4*this.minuteMultiplier,JenScript.TimeModel.call(this,a)},generateMetrics:function(){for(var a=this.getMetricsManager().getTimingProjection(),b=new Date(a.getMinDate()),c=new Date(b.getFullYear(),b.getMonth(),b.getDate(),b.getHours(),0,0,0),d=this.getMetricsManager().generateMinutesPoint(c,a.durationMinutes()+b.getMinutes(),this.minuteMultiplier,this),e=0;eb.getMillis()?1:a.getMillis()>b.getMillis()?-1:0});for(var c=0;c=3)return a}return a},getDeviceMetrics:function(){var a=this.getTimingSequence(),b=[],c=a.length,d=function(a){for(var c=[],d=0;de||e>f?void 0:(b.setDeviceValue(e),b.setUserValue(c),b)},generateMetricsDuration:function(a,b,c){var d=this.generateMetricsPoint(a,c),e=this.generateMetricsPoint(b,c),f=a.getTime()+(b.getTime()-a.getTime())/2,g=new Date(f),h=new JenScript.TimeDurationMetrics(this.getMetricsType()),i=g.getTime(),j=getTimingProjection(),k=j.timeToPixel(g),l=j.getTimeDurationPixel();return 0>k||k>l?null:(h.setDeviceValue(k),h.setUserValue(i),h.setMetricsStart(d),h.setMetricsEnd(e),h.setTimeStart(a.getTime()),h.setTimeEnd(b.getTime()),h)},generateSecondsPoint:function(a,b,c,d){for(var e=[],f=0;f<=parseInt(b)+1;f+=c){var g=new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds()+f,0),h=this.generateMetricsPoint(g,d);void 0!=h&&(e[e.length]=h)}return e},generateMinutesPoint:function(a,b,c,d){for(var e=[],f=0;f<=parseInt(b);f+=c){var g=new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes()+f,0,0),h=this.generateMetricsPoint(g,d);void 0!==h&&(e[e.length]=h)}return e},generateHoursPoint:function(a,b,c,d){for(var e=[],f=0;f<=parseInt(b)+1;f+=c){var g=new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours()+f,a.getMinutes(),0,0),h=this.generateMetricsPoint(g,d);void 0!=h&&(e[e.length]=h)}return e},generateDaysPoint:function(a,b,c,d){for(var e=[],f=0;f<=parseInt(b)+1;f+=c){var g=new Date(a.getFullYear(),a.getMonth(),a.getDate()+f,a.getHours(),0,0,0),h=this.generateMetricsPoint(g,d);void 0!=h&&(e[e.length]=h)}return e},generateMonthsPoint:function(a,b,c,d){for(var e=[],f=0;f<=parseInt(b)+12+1;f+=c){var g=new Date(a.getFullYear(),a.getMonth()+f,1,0,0,0),h=this.generateMetricsPoint(g,d);void 0!=h&&(e[e.length]=h)}return e},generateYearsPoint:function(a,b,c,d){for(var e=[],f=0;f<=parseInt(b);f+=c){var g=new Date(a.getFullYear()+f,0,1,0,0,0),h=this.generateMetricsPoint(g,d);void 0!=h&&(e[e.length]=h)}return e}})}(),function(){JenScript.MetricsManagerStatic=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.MetricsManagerStatic,JenScript.MetricsManager),JenScript.Model.addMethods(JenScript.MetricsManagerStatic,{_init:function(a){a=a||{},this.metricsCount=a.metricsCount,JenScript.MetricsManager.call(this,a)},getDeviceMetrics:function(){var a=[],b=this.getProjection(),c=b.getUserWidth(),d=b.getUserHeight();if(this.getMetricsType()===JenScript.MetricsType.XMetrics)for(var e,f=0;f=b.getMinX()&&e<=b.getMaxX()){var f=b.userToPixelX(e),g=new JenScript.Metrics({metricsType:JenScript.MetricsType.XMetrics});g.setDeviceValue(f),g.setUserValue(e),g.label=d.label,g.format=void 0===d.label?function(){return this.userValue}:function(){return this.label},a[a.length]=g}}else if(this.getMetricsType()===JenScript.MetricsType.YMetrics)for(var c=0;cb.getMinY()&&h=b.getMinX()&&j<=b.getMaxX()&&a.push(l)}else if(this.getMetricsType()===JenScript.MetricsType.YMetrics){var m=b.userToPixelY(j),l=new JenScript.Metrics({metricsType:JenScript.MetricsType.YMetrics});l.setDeviceValue(m),l.setUserValue(j),l.format=function(){return this.userValue},j>=b.getMinY()&&j<=b.getMaxY()&&a.push(l)}j>d.toNumber()&&(f=!1),g++}return a}})}(),function(){JenScript.AxisMetricsModeled=function(a){this.___init(a)},JenScript.Model.inheritPrototype(JenScript.AxisMetricsModeled,JenScript.AxisMetricsPlugin),JenScript.Model.addMethods(JenScript.AxisMetricsModeled,{___init:function(a){a=a||{};var b=new JenScript.MetricsManagerModeled(a),c=b.createSymmetricListModel(20);b.registerMetricsModels(c),a.manager=b,a.name="AxisMetricsModeled",JenScript.AxisMetricsPlugin.call(this,a)}})}(),function(){JenScript.AxisMetricsStatic=function(a){this.___init(a)},JenScript.Model.inheritPrototype(JenScript.AxisMetricsStatic,JenScript.AxisMetricsPlugin),JenScript.Model.addMethods(JenScript.AxisMetricsStatic,{___init:function(a){a=a||{};var b=new JenScript.MetricsManagerStatic(a);a.manager=b,JenScript.AxisMetricsPlugin.call(this,a)}})}(),function(){JenScript.AxisMetricsTiming=function(a){this.___init(a)},JenScript.Model.inheritPrototype(JenScript.AxisMetricsTiming,JenScript.AxisMetricsPlugin),JenScript.Model.addMethods(JenScript.AxisMetricsTiming,{___init:function(a){a=a||{};var b=new JenScript.TimeMetricsManager(a);a.manager=b,a.name="AxisMetricsTiming",JenScript.AxisMetricsPlugin.call(this,a)}})}(),function(){JenScript.AxisMetricsFree=function(a){this.___init(a)},JenScript.Model.inheritPrototype(JenScript.AxisMetricsFree,JenScript.AxisMetricsPlugin),JenScript.Model.addMethods(JenScript.AxisMetricsFree,{___init:function(a){a=a||{};var b=new JenScript.MetricsManagerFree(a);a.manager=b,a.name="AxisMetricsFree",JenScript.AxisMetricsPlugin.call(this,a)},addMetrics:function(a,b){this.getMetricsManager().addMetrics(a,b)}})}(),function(){JenScript.AxisMetricsFlow=function(a){this.___init(a)},JenScript.Model.inheritPrototype(JenScript.AxisMetricsFlow,JenScript.AxisMetricsPlugin),JenScript.Model.addMethods(JenScript.AxisMetricsFlow,{___init:function(a){a=a||{};var b=new JenScript.MetricsManagerFlow(a);a.manager=b,a.name="AxisMetricsFlow",JenScript.AxisMetricsPlugin.call(this,a)}})}(),function(){JenScript.DeviceMetricsModeled=function(a){this.___init(a)},JenScript.Model.inheritPrototype(JenScript.DeviceMetricsModeled,JenScript.DeviceMetricsPlugin),JenScript.Model.addMethods(JenScript.DeviceMetricsModeled,{___init:function(a){a=a||{};var b=new JenScript.MetricsManagerModeled(a),c=b.createSymmetricListModel(20);b.registerMetricsModels(c),a.manager=b,a.name="DeviceMetrics",JenScript.DeviceMetricsPlugin.call(this,a)}})}(); //# sourceMappingURL=jenscript-metrics.min.js.map