1 /* jquery.sparkline 2.1.2 - http://omnipotent.net/jquery.sparkline/
2 ** Licensed under the New BSD License - see above site for details */
4 (function(a
,b
,c
){(function(a
){typeof define
=="function"&&define
.amd
?define(["jquery"],a
):jQuery
&&!jQuery
.fn
.sparkline
&&a(jQuery
)})(function(d
){"use strict";var e
={},f
,g
,h
,i
,j
,k
,l
,m
,n
,o
,p
,q
,r
,s
,t
,u
,v
,w
,x
,y
,z
,A
,B
,C
,D
,E
,F
,G
,H
,I
,J
,K
,L
=0;f=function(){return{common
:{type
:"line",lineColor
:"#00f",fillColor
:"#cdf",defaultPixelsPerValue
:3,width
:"auto",height
:"auto",composite
:!1,tagValuesAttribute
:"values",tagOptionsPrefix
:"spark",enableTagOptions
:!1,enableHighlight
:!0,highlightLighten
:1.4,tooltipSkipNull
:!0,tooltipPrefix
:"",tooltipSuffix
:"",disableHiddenCheck
:!1,numberFormatter
:!1,numberDigitGroupCount
:3,numberDigitGroupSep
:",",numberDecimalMark
:".",disableTooltips
:!1,disableInteraction
:!1},line
:{spotColor
:"#f80",highlightSpotColor
:"#5f5",highlightLineColor
:"#f22",spotRadius
:1.5,minSpotColor
:"#f80",maxSpotColor
:"#f80",lineWidth
:1,normalRangeMin
:c
,normalRangeMax
:c
,normalRangeColor
:"#ccc",drawNormalOnTop
:!1,chartRangeMin
:c
,chartRangeMax
:c
,chartRangeMinX
:c
,chartRangeMaxX
:c
,tooltipFormat
:new h('<span style="color: {{color}}">●</span> {{prefix}}{{y}}{{suffix}}')},bar
:{barColor
:"#3366cc",negBarColor
:"#f44",stackedBarColor
:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],zeroColor
:c
,nullColor
:c
,zeroAxis
:!0,barWidth
:4,barSpacing
:1,chartRangeMax
:c
,chartRangeMin
:c
,chartRangeClip
:!1,colorMap
:c
,tooltipFormat
:new h('<span style="color: {{color}}">●</span> {{prefix}}{{value}}{{suffix}}')},tristate
:{barWidth
:4,barSpacing
:1,posBarColor
:"#6f6",negBarColor
:"#f44",zeroBarColor
:"#999",colorMap
:{},tooltipFormat
:new h('<span style="color: {{color}}">●</span> {{value:map}}'),tooltipValueLookups
:{map
:{"-1":"Loss",0:"Draw",1:"Win"}}},discrete
:{lineHeight
:"auto",thresholdColor
:c
,thresholdValue
:0,chartRangeMax
:c
,chartRangeMin
:c
,chartRangeClip
:!1,tooltipFormat
:new h("{{prefix}}{{value}}{{suffix}}")},bullet
:{targetColor
:"#f33",targetWidth
:3,performanceColor
:"#33f",rangeColors
:["#d3dafe","#a8b6ff","#7f94ff"],base
:c
,tooltipFormat
:new h("{{fieldkey:fields}} - {{value}}"),tooltipValueLookups
:{fields
:{r
:"Range",p
:"Performance",t
:"Target"}}},pie
:{offset
:0,sliceColors
:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],borderWidth
:0,borderColor
:"#000",tooltipFormat
:new h('<span style="color: {{color}}">●</span> {{value}} ({{percent.1}}%)')},box
:{raw
:!1,boxLineColor
:"#000",boxFillColor
:"#cdf",whiskerColor
:"#000",outlierLineColor
:"#333",outlierFillColor
:"#fff",medianColor
:"#f00",showOutliers
:!0,outlierIQR
:1.5,spotRadius
:1.5,target
:c
,targetColor
:"#4a2",chartRangeMax
:c
,chartRangeMin
:c
,tooltipFormat
:new h("{{field:fields}}: {{value}}"),tooltipFormatFieldlistKey
:"field",tooltipValueLookups
:{fields
:{lq
:"Lower Quartile",med
:"Median",uq
:"Upper Quartile",lo
:"Left Outlier",ro
:"Right Outlier",lw
:"Left Whisker",rw
:"Right Whisker"}}}}},E
='.jqstooltip { position: absolute;left: 0px;top: 0px;visibility: hidden;background: rgb(0, 0, 0) transparent;background-color: rgba(0,0,0,0.6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";color: white;font: 10px arial, san serif;text-align: left;white-space: nowrap;padding: 5px;border: 1px solid white;z-index: 10000;}.jqsfield { color: white;font: 10px arial, san serif;text-align: left;}',g=function(){var a
,b
;return a=function(){this.init
.apply(this,arguments
)},arguments
.length
>1?(arguments
[0]?(a
.prototype=d
.extend(new arguments
[0],arguments
[arguments
.length
-1]),a
._super
=arguments
[0].prototype):a
.prototype=arguments
[arguments
.length
-1],arguments
.length
>2&&(b
=Array
.prototype.slice
.call(arguments
,1,-1),b
.unshift(a
.prototype),d
.extend
.apply(d
,b
))):a
.prototype=arguments
[0],a
.prototype.cls
=a
,a
},d
.SPFormatClass
=h
=g({fre
:/\{\{([\w.]+?)(:(.+?))?\}\}/g,precre
:/(\w+)\.(\d+)/,init:function(a
,b
){this.format
=a
,this.fclass
=b
},render:function(a
,b
,d
){var e
=this,f
=a
,g
,h
,i
,j
,k
;return this.format
.replace(this.fre
,function(){var a
;return h
=arguments
[1],i
=arguments
[3],g
=e
.precre
.exec(h
),g
?(k
=g
[2],h
=g
[1]):k
=!1,j
=f
[h
],j
===c
?"":i
&&b
&&b
[i
]?(a
=b
[i
],a
.get?b
[i
].get(j
)||j
:b
[i
][j
]||j
):(n(j
)&&(d
.get("numberFormatter")?j
=d
.get("numberFormatter")(j
):j
=s(j
,k
,d
.get("numberDigitGroupCount"),d
.get("numberDigitGroupSep"),d
.get("numberDecimalMark"))),j
)})}}),d
.spformat=function(a
,b
){return new h(a
,b
)},i=function(a
,b
,c
){return a
<b
?b
:a
>c
?c
:a
},j=function(a
,c
){var d
;return c
===2?(d
=b
.floor(a
.length
/2),a.length%2?a[d]:(a[d-1]+a[d])/2):a
.length
%2?(d
=(a
.length
*c
+c
)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a
[d
-1]):(d
=(a
.length
*c
+2)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a
[d
-1])},k=function(a
){var b
;switch(a
){case"undefined":a
=c
;break;case"null":a
=null;break;case"true":a
=!0;break;case"false":a
=!1;break;default:b
=parseFloat(a
),a
==b
&&(a
=b
)}return a
},l=function(a
){var b
,c
=[];for(b
=a
.length
;b
--;)c
[b
]=k(a
[b
]);return c
},m=function(a
,b
){var c
,d
,e
=[];for(c
=0,d
=a
.length
;c
<d
;c
++)a
[c
]!==b
&&e
.push(a
[c
]);return e
},n=function(a
){return!isNaN(parseFloat(a
))&&isFinite(a
)},s=function(a
,b
,c
,e
,f
){var g
,h
;a
=(b
===!1?parseFloat(a
).toString():a
.toFixed(b
)).split(""),g
=(g
=d
.inArray(".",a
))<0?a
.length
:g
,g
<a
.length
&&(a
[g
]=f
);for(h
=g
-c
;h
>0;h
-=c
)a
.splice(h
,0,e
);return a
.join("")},o=function(a
,b
,c
){var d
;for(d
=b
.length
;d
--;){if(c
&&b
[d
]===null)continue;if(b
[d
]!==a
)return!1}return!0},p=function(a
){var b
=0,c
;for(c
=a
.length
;c
--;)b
+=typeof a
[c
]=="number"?a
[c
]:0;return b
},r=function(a
){return d
.isArray(a
)?a
:[a
]},q=function(b
){var c
;a
.createStyleSheet
?a
.createStyleSheet().cssText
=b
:(c
=a
.createElement("style"),c
.type
="text/css",a
.getElementsByTagName("head")[0].appendChild(c
),c
[typeof a
.body
.style
.WebkitAppearance
=="string"?"innerText":"innerHTML"]=b
)},d
.fn
.simpledraw=function(b
,e
,f
,g
){var h
,i
;if(f
&&(h
=this.data("_jqs_vcanvas")))return h
;if(d
.fn
.sparkline
.canvas
===!1)return!1;if(d
.fn
.sparkline
.canvas
===c
){var j
=a
.createElement("canvas");if(!j
.getContext
||!j
.getContext("2d")){if(!a
.namespaces
||!!a
.namespaces
.v
)return d
.fn
.sparkline
.canvas
=!1,!1;a
.namespaces
.add("v","urn:schemas-microsoft-com:vml","#default#VML"),d
.fn
.sparkline
.canvas=function(a
,b
,c
,d
){return new J(a
,b
,c
)}}else d
.fn
.sparkline
.canvas=function(a
,b
,c
,d
){return new I(a
,b
,c
,d
)}}return b
===c
&&(b
=d(this).innerWidth()),e
===c
&&(e
=d(this).innerHeight()),h
=d
.fn
.sparkline
.canvas(b
,e
,this,g
),i
=d(this).data("_jqs_mhandler"),i
&&i
.registerCanvas(h
),h
},d
.fn
.cleardraw=function(){var a
=this.data("_jqs_vcanvas");a
&&a
.reset()},d
.RangeMapClass
=t
=g({init:function(a
){var b
,c
,d
=[];for(b
in a
)a
.hasOwnProperty(b
)&&typeof b
=="string"&&b
.indexOf(":")>-1&&(c
=b
.split(":"),c
[0]=c
[0].length
===0?-Infinity
:parseFloat(c
[0]),c
[1]=c
[1].length
===0?Infinity
:parseFloat(c
[1]),c
[2]=a
[b
],d
.push(c
));this.map
=a
,this.rangelist
=d
||!1},get:function(a
){var b
=this.rangelist
,d
,e
,f
;if((f
=this.map
[a
])!==c
)return f
;if(b
)for(d
=b
.length
;d
--;){e
=b
[d
];if(e
[0]<=a
&&e
[1]>=a
)return e
[2]}return c
}}),d
.range_map=function(a
){return new t(a
)},u
=g({init:function(a
,b
){var c
=d(a
);this.$el
=c
,this.options
=b
,this.currentPageX
=0,this.currentPageY
=0,this.el
=a
,this.splist
=[],this.tooltip
=null,this.over
=!1,this.displayTooltips
=!b
.get("disableTooltips"),this.highlightEnabled
=!b
.get("disableHighlight")},registerSparkline:function(a
){this.splist
.push(a
),this.over
&&this.updateDisplay()},registerCanvas:function(a
){var b
=d(a
.canvas
);this.canvas
=a
,this.$canvas
=b
,b
.mouseenter(d
.proxy(this.mouseenter
,this)),b
.mouseleave(d
.proxy(this.mouseleave
,this)),b
.click(d
.proxy(this.mouseclick
,this))},reset:function(a
){this.splist
=[],this.tooltip
&&a
&&(this.tooltip
.remove(),this.tooltip
=c
)},mouseclick:function(a
){var b
=d
.Event("sparklineClick");b
.originalEvent
=a
,b
.sparklines
=this.splist
,this.$el
.trigger(b
)},mouseenter:function(b
){d(a
.body
).unbind("mousemove.jqs"),d(a
.body
).bind("mousemove.jqs",d
.proxy(this.mousemove
,this)),this.over
=!0,this.currentPageX
=b
.pageX
,this.currentPageY
=b
.pageY
,this.currentEl
=b
.target
,!this.tooltip
&&this.displayTooltips
&&(this.tooltip
=new v(this.options
),this.tooltip
.updatePosition(b
.pageX
,b
.pageY
)),this.updateDisplay()},mouseleave:function(){d(a
.body
).unbind("mousemove.jqs");var b
=this.splist
,c
=b
.length
,e
=!1,f
,g
;this.over
=!1,this.currentEl
=null,this.tooltip
&&(this.tooltip
.remove(),this.tooltip
=null);for(g
=0;g
<c
;g
++)f
=b
[g
],f
.clearRegionHighlight()&&(e
=!0);e
&&this.canvas
.render()},mousemove:function(a
){this.currentPageX
=a
.pageX
,this.currentPageY
=a
.pageY
,this.currentEl
=a
.target
,this.tooltip
&&this.tooltip
.updatePosition(a
.pageX
,a
.pageY
),this.updateDisplay()},updateDisplay:function(){var a
=this.splist
,b
=a
.length
,c
=!1,e
=this.$canvas
.offset(),f
=this.currentPageX
-e
.left
,g
=this.currentPageY
-e
.top
,h
,i
,j
,k
,l
;if(!this.over
)return;for(j
=0;j
<b
;j
++)i
=a
[j
],k
=i
.setRegionHighlight(this.currentEl
,f
,g
),k
&&(c
=!0);if(c
){l
=d
.Event("sparklineRegionChange"),l
.sparklines
=this.splist
,this.$el
.trigger(l
);if(this.tooltip
){h
="";for(j
=0;j
<b
;j
++)i
=a
[j
],h
+=i
.getCurrentRegionTooltip();this.tooltip
.setContent(h
)}this.disableHighlight
||this.canvas
.render()}k
===null&&this.mouseleave()}}),v
=g({sizeStyle
:"position: static !important;display: block !important;visibility: hidden !important;float: left !important;",init:function(b
){var c
=b
.get("tooltipClassname","jqstooltip"),e
=this.sizeStyle
,f
;this.container
=b
.get("tooltipContainer")||a
.body
,this.tooltipOffsetX
=b
.get("tooltipOffsetX",10),this.tooltipOffsetY
=b
.get("tooltipOffsetY",12),d("#jqssizetip").remove(),d("#jqstooltip").remove(),this.sizetip
=d("<div/>",{id
:"jqssizetip",style
:e
,"class":c
}),this.tooltip
=d("<div/>",{id
:"jqstooltip","class":c
}).appendTo(this.container
),f
=this.tooltip
.offset(),this.offsetLeft
=f
.left
,this.offsetTop
=f
.top
,this.hidden
=!0,d(window
).unbind("resize.jqs scroll.jqs"),d(window
).bind("resize.jqs scroll.jqs",d
.proxy(this.updateWindowDims
,this)),this.updateWindowDims()},updateWindowDims:function(){this.scrollTop
=d(window
).scrollTop(),this.scrollLeft
=d(window
).scrollLeft(),this.scrollRight
=this.scrollLeft
+d(window
).width(),this.updatePosition()},getSize:function(a
){this.sizetip
.html(a
).appendTo(this.container
),this.width
=this.sizetip
.width()+1,this.height
=this.sizetip
.height(),this.sizetip
.remove()},setContent:function(a
){if(!a
){this.tooltip
.css("visibility","hidden"),this.hidden
=!0;return}this.getSize(a
),this.tooltip
.html(a
).css({width
:this.width
,height
:this.height
,visibility
:"visible"}),this.hidden
&&(this.hidden
=!1,this.updatePosition())},updatePosition:function(a
,b
){if(a
===c
){if(this.mousex
===c
)return;a
=this.mousex
-this.offsetLeft
,b
=this.mousey
-this.offsetTop
}else this.mousex
=a
-=this.offsetLeft
,this.mousey
=b
-=this.offsetTop
;if(!this.height
||!this.width
||this.hidden
)return;b
-=this.height
+this.tooltipOffsetY
,a
+=this.tooltipOffsetX
,b
<this.scrollTop
&&(b
=this.scrollTop
),a
<this.scrollLeft
?a
=this.scrollLeft
:a
+this.width
>this.scrollRight
&&(a
=this.scrollRight
-this.width
),this.tooltip
.css({left
:a
,top
:b
})},remove:function(){this.tooltip
.remove(),this.sizetip
.remove(),this.sizetip
=this.tooltip
=c
,d(window
).unbind("resize.jqs scroll.jqs")}}),F=function(){q(E
)},d(F
),K
=[],d
.fn
.sparkline=function(b
,e
){return this.each(function(){var f
=new d
.fn
.sparkline
.options(this,e
),g
=d(this),h
,i
;h=function(){var e
,h
,i
,j
,k
,l
,m
;if(b
==="html"||b
===c
){m
=this.getAttribute(f
.get("tagValuesAttribute"));if(m
===c
||m
===null)m
=g
.html();e
=m
.replace(/(^\s
*<!--)|(-->\s
*$)|\s
+/g,"").split(",")}else e=b;h=f.get("width")==="auto"?e.length*f.get("defaultPixelsPerValue"):f.get("width");if(f.get("height")==="auto"){if(!f.get("composite")||!d.data(this,"_jqs_vcanvas"))j=a.createElement("span"),j.innerHTML="a",g.html(j),i=d(j).innerHeight()||d(j).height(),d(j).remove(),j=null}else i=f.get("height");f.get("disableInteraction")?k=!1:(k=d.data(this,"_jqs_mhandler"),k?f.get("composite")||k.reset():(k=new u(this,f),d.data(this,"_jqs_mhandler",k)));if(f.get("composite")&&!d.data(this,"_jqs_vcanvas")){d.data(this,"_jqs_errnotify")||(alert("Attempted to attach a composite sparkline to an element with no existing sparkline"),d.data(this,"_jqs_errnotify",!0));return}l=new(d.fn.sparkline[f.get("type")])(this,e,f,h,i),l.render(),k&&k.registerSparkline(l)};if(d(this).html()&&!f.get("disableHiddenCheck")&&d(this).is(":hidden")||!d(this).parents("body").length){if(!f.get("composite")&&d.data(this,"_jqs_pending"))for(i=K.length;i;i--)K[i-1][0]==this&&K.splice(i-1,1);K.push([this,h]),d.data(this,"_jqs_pending",!0)}else h.call(this)})},d.fn.sparkline.defaults=f(),d.sparkline_display_visible=function(){var a,b,c,e=[];for(b=0,c=K.length;b<c;b++)a=K[b][0],d(a).is(":visible")&&!d(a).parents().is(":hidden")?(K[b][1].call(a),d.data(K[b][0],"_jqs_pending",!1),e.push(b)):!d(a).closest("html").length&&!d.data(a,"_jqs_pending")&&(d.data(K[b][0],"_jqs_pending",!1),e.push(b));for(b=e.length;b;b--)K.splice(e[b-1],1)},d.fn.sparkline.options=g({init:function(a,b){var c,f,g,h;this.userOptions=b=b||{},this.tag=a,this.tagValCache={},f=d.fn.sparkline.defaults,g=f.common,this.tagOptionsPrefix=b.enableTagOptions&&(b.tagOptionsPrefix||g.tagOptionsPrefix),h=this.getTagSetting("type"),h===e?c=f[b.type||g.type]:c=f[h],this.mergedOptions=d.extend({},g,c,b)},getTagSetting:function(a){var b=this.tagOptionsPrefix,d,f,g,h;if(b===!1||b===c)return e;if(this.tagValCache.hasOwnProperty(a))d=this.tagValCache.key;else{d=this.tag.getAttribute(b+a);if(d===c||d===null)d=e;else if(d.substr(0,1)==="["){d=d.substr(1,d.length-2).split(",");for(f=d.length;f--;)d[f]=k(d[f].replace(/(^\s
*)|(\s
*$)/g,""))}else if(d.substr(0,1)==="{"){g=d.substr(1,d.length-2).split(","),d={};for(f=g.length;f--;)h=g[f].split(":",2),d[h[0].replace(/(^\s
*)|(\s
*$)/g,"")]=k(h[1].replace(/(^\s
*)|(\s
*$)/g,""))}else d=k(d);this.tagValCache.key=d}return d},get:function(a,b){var d=this.getTagSetting(a),f;return d!==e?d:(f=this.mergedOptions[a])===c?b:f}}),d.fn.sparkline._base=g({disabled:!1,init:function(a,b,e,f,g){this.el=a,this.$el=d(a),this.values=b,this.options=e,this.width=f,this.height=g,this.currentRegion=c},initTarget:function(){var a=!this.options.get("disableInteraction");(this.target=this.$el.simpledraw(this.width,this.height,this.options.get("composite"),a))?(this.canvasWidth=this.target.pixelWidth,this.canvasHeight=this.target.pixelHeight):this.disabled=!0},render:function(){return this.disabled?(this.el.innerHTML="",!1):!0},getRegion:function(a,b){},setRegionHighlight:function(a,b,d){var e=this.currentRegion,f=!this.options.get("disableHighlight"),g;return b>this.canvasWidth||d>this.canvasHeight||b<0||d<0?null:(g=this.getRegion(a,b,d),e!==g?(e!==c&&f&&this.removeHighlight(),this.currentRegion=g,g!==c&&f&&this.renderHighlight(),!0):!1)},clearRegionHighlight:function(){return this.currentRegion!==c?(this.removeHighlight(),this.currentRegion=c,!0):!1},renderHighlight:function(){this.changeHighlight(!0)},removeHighlight:function(){this.changeHighlight(!1)},changeHighlight:function(a){},getCurrentRegionTooltip:function(){var a=this.options,b="",e=[],f,g,i,j,k,l,m,n,o,p,q,r,s,t;if(this.currentRegion===c)return"";f=this.getCurrentRegionFields(),q=a.get("tooltipFormatter");if(q)return q(this,a,f);a.get("tooltipChartTitle")&&(b+='<div class="jqs jqstitle">'+a.get("tooltipChartTitle")+"</div>\n"),g=this.options.get("tooltipFormat
");if(!g)return"";d.isArray(g)||(g=[g]),d.isArray(f)||(f=[f]),m=this.options.get("tooltipFormatFieldlist
"),n=this.options.get("tooltipFormatFieldlistKey
");if(m&&n){o=[];for(l=f.length;l--;)p=f[l][n],(t=d.inArray(p,m))!=-1&&(o[t]=f[l]);f=o}i=g.length,s=f.length;for(l=0;l<i;l++){r=g[l],typeof r=="string
"&&(r=new h(r)),j=r.fclass||"jqsfield
";for(t=0;t<s;t++)if(!f[t].isNull||!a.get("tooltipSkipNull
"))d.extend(f[t],{prefix:a.get("tooltipPrefix
"),suffix:a.get("tooltipSuffix
")}),k=r.render(f[t],a.get("tooltipValueLookups
"),a),e.push('<div class="'+j+'">'+k+"</div>")}return e.length?b+e.join("\n"):""},getCurrentRegionFields:function(){},calcHighlightColor:function(a,c){var d=c.get("highlightColor"),e=c.get("highlightLighten"),f,g,h,j;if(d)return d;if(e){f=/^#([0-9a
-f
])([0-9a
-f
])([0-9a
-f
])$/i.exec(a)||/^#([0-9a
-f
]{2})([0-9a
-f
]{2})([0-9a
-f
]{2})$/i.exec(a);if(f){h=[],g=a.length===4?16:1;for(j=0;j<3;j++)h[j]=i(b.round(parseInt(f[j+1],16)*g*e),0,255);return"rgb("+h.join(",")+")"}}return a}}),w={changeHighlight:function(a){var b=this.currentRegion,c=this.target,e=this.regionShapes[b],f;e&&(f=this.renderRegion(b,a),d.isArray(f)||d.isArray(e)?(c.replaceWithShapes(e,f),this.regionShapes[b]=d.map(f,function(a){return a.id})):(c.replaceWithShape(e,f),this.regionShapes[b]=f.id))},render:function(){var a=this.values,b=this.target,c=this.regionShapes,e,f,g,h;if(!this.cls._super.render.call(this))return;for(g=a.length;g--;){e=this.renderRegion(g);if(e)if(d.isArray(e)){f=[];for(h=e.length;h--;)e[h].append(),f.push(e[h].id);c[g]=f}else e.append(),c[g]=e.id;else c[g]=null}b.render()}},d.fn.sparkline.line=x=g(d.fn.sparkline._base,{type:"line",init:function(a,b,c,d,e){x._super.init.call(this,a,b,c,d,e),this.vertices=[],this.regionMap=[],this.xvalues=[],this.yvalues=[],this.yminmax=[],this.hightlightSpotId=null,this.lastShapeId=null,this.initTarget()},getRegion:function(a,b,d){var e,f=this.regionMap;for(e=f.length;e--;)if(f[e]!==null&&b>=f[e][0]&&b<=f[e][1])return f[e][2];return c},getCurrentRegionFields:function(){var a=this.currentRegion;return{isNull:this.yvalues[a]===null,x:this.xvalues[a],y:this.yvalues[a],color:this.options.get("lineColor"),fillColor:this.options.get("fillColor"),offset:a}},renderHighlight:function(){var a=this.currentRegion,b=this.target,d=this.vertices[a],e=this.options,f=e.get("spotRadius"),g=e.get("highlightSpotColor"),h=e.get("highlightLineColor"),i,j;if(!d)return;f&&g&&(i=b.drawCircle(d[0],d[1],f,c,g),this.highlightSpotId=i.id,b.insertAfterShape(this.lastShapeId,i)),h&&(j=b.drawLine(d[0],this.canvasTop,d[0],this.canvasTop+this.canvasHeight,h),this.highlightLineId=j.id,b.insertAfterShape(this.lastShapeId,j))},removeHighlight:function(){var a=this.target;this.highlightSpotId&&(a.removeShapeId(this.highlightSpotId),this.highlightSpotId=null),this.highlightLineId&&(a.removeShapeId(this.highlightLineId),this.highlightLineId=null)},scanValues:function(){var a=this.values,c=a.length,d=this.xvalues,e=this.yvalues,f=this.yminmax,g,h,i,j,k;for(g=0;g<c;g++)h=a[g],i=typeof a[g]=="string",j=typeof a[g]=="object"&&a[g]instanceof Array,k=i&&a[g].split(":"),i&&k.length===2?(d.push(Number(k[0])),e.push(Number(k[1])),f.push(Number(k[1]))):j?(d.push(h[0]),e.push(h[1]),f.push(h[1])):(d.push(g),a[g]===null||a[g]==="null"?e.push(null):(e.push(Number(h)),f.push(Number(h))));this.options.get("xvalues")&&(d=this.options.get("xvalues")),this.maxy=this.maxyorg=b.max.apply(b,f),this.miny=this.minyorg=b.min.apply(b,f),this.maxx=b.max.apply(b,d),this.minx=b.min.apply(b,d),this.xvalues=d,this.yvalues=e,this.yminmax=f},processRangeOptions:function(){var a=this.options,b=a.get("normalRangeMin"),d=a.get("normalRangeMax");b!==c&&(b<this.miny&&(this.miny=b),d>this.maxy&&(this.maxy=d)),a.get("chartRangeMin")!==c&&(a.get("chartRangeClip")||a.get("chartRangeMin")<this.miny)&&(this.miny=a.get("chartRangeMin")),a.get("chartRangeMax")!==c&&(a.get("chartRangeClip")||a.get("chartRangeMax")>this.maxy)&&(this.maxy=a.get("chartRangeMax")),a.get("chartRangeMinX")!==c&&(a.get("chartRangeClipX")||a.get("chartRangeMinX")<this.minx)&&(this.minx=a.get("chartRangeMinX")),a.get("chartRangeMaxX")!==c&&(a.get("chartRangeClipX")||a.get("chartRangeMaxX")>this.maxx)&&(this.maxx=a.get("chartRangeMaxX"))},drawNormalRange:function(a,d,e,f,g){var h=this.options.get("normalRangeMin"),i=this.options.get("normalRangeMax"),j=d+b.round(e-e*((i-this.miny)/g)),k
=b
.round(e
*(i
-h
)/g);this.target.drawRect(a,j,f,k,c,this.options.get("normalRangeColor")).append()},render:function(){var a=this.options,e=this.target,f=this.canvasWidth,g=this.canvasHeight,h=this.vertices,i=a.get("spotRadius"),j=this.regionMap,k,l,m,n,o,p,q,r,s,u,v,w,y,z,A,B,C,D,E,F,G,H,I,J,K;if(!x._super.render.call(this))return;this.scanValues(),this.processRangeOptions(),I=this.xvalues,J=this.yvalues;if(!this.yminmax.length||this.yvalues.length<2)return;n=o=0,k=this.maxx-this.minx===0?1:this.maxx-this.minx,l=this.maxy-this.miny===0?1:this.maxy-this.miny,m=this.yvalues.length-1,i&&(f<i*4||g<i*4)&&(i=0);if(i){G=a.get("highlightSpotColor")&&!a.get("disableInteraction");if(G||a.get("minSpotColor")||a.get("spotColor")&&J[m]===this.miny)g-=b.ceil(i);if(G||a.get("maxSpotColor")||a.get("spotColor")&&J[m]===this.maxy)g-=b.ceil(i),n+=b.ceil(i);if(G||(a.get("minSpotColor")||a.get("maxSpotColor"))&&(J[0]===this.miny||J[0]===this.maxy))o+=b.ceil(i),f-=b.ceil(i);if(G||a.get("spotColor")||a.get("minSpotColor")||a.get("maxSpotColor")&&(J[m]===this.miny||J[m]===this.maxy))f-=b.ceil(i)}g--,a.get("normalRangeMin")!==c&&!a.get("drawNormalOnTop")&&this.drawNormalRange(o,n,g,f,l),q=[],r=[q],z=A=null,B=J.length;for(K=0;K<B;K++)s=I[K],v=I[K+1],u=J[K],w=o+b.round((s-this.minx)*(f/k
)),y
=K
<B
-1?o
+b
.round((v
-this.minx
)*(f
/k)):f,A=w+(y-w)/2,j
[K
]=[z
||0,A
,K
],z
=A
,u
===null?K
&&(J
[K
-1]!==null&&(q
=[],r
.push(q
)),h
.push(null)):(u
<this.miny
&&(u
=this.miny
),u
>this.maxy
&&(u
=this.maxy
),q
.length
||q
.push([w
,n
+g
]),p
=[w
,n
+b
.round(g
-g
*((u
-this.miny
)/l))],q.push(p),h.push(p));C=[],D=[],E=r.length;for(K=0;K<E;K++)q=r[K],q.length&&(a.get("fillColor")&&(q.push([q[q.length-1][0],n+g]),D.push(q.slice(0)),q.pop()),q.length>2&&(q[0]=[q[0][0],q[1][1]]),C.push(q));E=D.length;for(K=0;K<E;K++)e.drawShape(D[K],a.get("fillColor"),a.get("fillColor")).append();a.get("normalRangeMin")!==c&&a.get("drawNormalOnTop")&&this.drawNormalRange(o,n,g,f,l),E=C.length;for(K=0;K<E;K++)e.drawShape(C[K],a.get("lineColor"),c,a.get("lineWidth")).append();if(i&&a.get("valueSpots")){F=a.get("valueSpots"),F.get===c&&(F=new t(F));for(K=0;K<B;K++)H=F.get(J[K]),H&&e.drawCircle(o+b.round((I[K]-this.minx)*(f/k
)),n
+b
.round(g
-g
*((J
[K
]-this.miny
)/l)),i,c,H).append()}i&&a.get("spotColor")&&J[m]!==null&&e.drawCircle(o+b.round((I[I.length-1]-this.minx)*(f/k
)),n
+b
.round(g
-g
*((J
[m
]-this.miny
)/l)),i,c,a.get("spotColor")).append(),this.maxy!==this.minyorg&&(i&&a.get("minSpotColor")&&(s=I[d.inArray(this.minyorg,J)],e.drawCircle(o+b.round((s-this.minx)*(f/k
)),n
+b
.round(g
-g
*((this.minyorg
-this.miny
)/l)),i,c,a.get("minSpotColor")).append()),i&&a.get("maxSpotColor")&&(s=I[d.inArray(this.maxyorg,J)],e.drawCircle(o+b.round((s-this.minx)*(f/k
)),n
+b
.round(g
-g
*((this.maxyorg
-this.miny
)/l)),i,c,a.get("maxSpotColor")).append())),this.lastShapeId=e.getLastShapeId(),this.canvasTop=n,e.render()}}),d.fn.sparkline.bar=y=g(d.fn.sparkline._base,w,{type:"bar",init:function(a,e,f,g,h){var j=parseInt(f.get("barWidth"),10),n=parseInt(f.get("barSpacing"),10),o=f.get("chartRangeMin"),p=f.get("chartRangeMax"),q=f.get("chartRangeClip"),r=Infinity,s=-Infinity,u,v,w,x,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R;y._super.init.call(this,a,e,f,g,h);for(A=0,B=e.length;A<B;A++){O=e[A],u=typeof O=="string"&&O.indexOf(":")>-1;if(u||d.isArray(O))J=!0,u&&(O=e[A]=l(O.split(":"))),O=m(O,null),v=b.min.apply(b,O),w=b.max.apply(b,O),v<r&&(r=v),w>s&&(s=w)}this.stacked=J,this.regionShapes={},this.barWidth=j,this.barSpacing=n,this.totalBarWidth=j+n,this.width=g=e.length*j+(e.length-1)*n,this.initTarget(),q&&(H=o===c?-Infinity:o,I=p===c?Infinity:p),z=[],x=J?[]:z;var S=[],T=[];for(A=0,B=e.length;A<B;A++)if(J){K=e[A],e[A]=N=[],S[A]=0,x[A]=T[A]=0;for(L=0,M=K.length;L<M;L++)O=N[L]=q?i(K[L],H,I):K[L],O!==null&&(O>0&&(S[A]+=O),r<0&&s>0?O<0?T[A]+=b.abs(O):x[A]+=O:x[A]+=b.abs(O-(O<0?s:r)),z.push(O))}else O=q?i(e[A],H,I):e[A],O=e[A]=k(O),O!==null&&z.push(O);this.max=G=b.max.apply(b,z),this.min=F=b.min.apply(b,z),this.stackMax=s=J?b.max.apply(b,S):G,this.stackMin=r=J?b.min.apply(b,z):F,f.get("chartRangeMin")!==c&&(f.get("chartRangeClip")||f.get("chartRangeMin")<F)&&(F=f.get("chartRangeMin")),f.get("chartRangeMax")!==c&&(f.get("chartRangeClip")||f.get("chartRangeMax")>G)&&(G=f.get("chartRangeMax")),this.zeroAxis=D=f.get("zeroAxis",!0),F<=0&&G>=0&&D?E=0:D==0?E=F:F>0?E=F:E=G,this.xaxisOffset=E,C=J?b.max.apply(b,x)+b.max.apply(b,T):G-F,this.canvasHeightEf=D&&F<0?this.canvasHeight-2:this.canvasHeight-1,F<E?(Q=J&&G>=0?s:G,P=(Q-E)/C
*this.canvasHeight
,P
!==b
.ceil(P
)&&(this.canvasHeightEf
-=2,P
=b
.ceil(P
))):P
=this.canvasHeight
,this.yoffset
=P
,d
.isArray(f
.get("colorMap"))?(this.colorMapByIndex
=f
.get("colorMap"),this.colorMapByValue
=null):(this.colorMapByIndex
=null,this.colorMapByValue
=f
.get("colorMap"),this.colorMapByValue
&&this.colorMapByValue
.get===c
&&(this.colorMapByValue
=new t(this.colorMapByValue
))),this.range
=C
},getRegion:function(a
,d
,e
){var f
=b
.floor(d
/this.totalBarWidth);return f<0||f>=this.values.length?c:f},getCurrentRegionFields:function(){var a=this.currentRegion,b=r(this.values[a]),c=[],d,e;for(e=b.length;e--;)d=b[e],c.push({isNull:d===null,value:d,color:this.calcColor(e,d,a),offset:a});return c},calcColor:function(a,b,e){var f=this.colorMapByIndex,g=this.colorMapByValue,h=this.options,i,j;return this.stacked?i=h.get("stackedBarColor"):i=b<0?h.get("negBarColor"):h.get("barColor"),b===0&&h.get("zeroColor")!==c&&(i=h.get("zeroColor")),g&&(j=g.get(b))?i=j:f&&f.length>e&&(i=f[e]),d.isArray(i)?i[a%i.length]:i},renderRegion:function(a,e){var f=this.values[a],g=this.options,h=this.xaxisOffset,i=[],j=this.range,k=this.stacked,l=this.target,m=a*this.totalBarWidth,n=this.canvasHeightEf,p=this.yoffset,q,r,s,t,u,v,w,x,y,z;f=d.isArray(f)?f:[f],w=f.length,x=f[0],t=o(null,f),z=o(h,f,!0);if(t)return g.get("nullColor")?(s=e?g.get("nullColor"):this.calcHighlightColor(g.get("nullColor"),g),q=p>0?p-1:p,l.drawRect(m,q,this.barWidth-1,0,s,s)):c;u=p;for(v=0;v<w;v++){x=f[v];if(k&&x===h){if(!z||y)continue;y=!0}j>0?r=b.floor(n*(b.abs(x-h)/j
))+1:r
=1,x
<h
||x
===h
&&p
===0?(q
=u
,u
+=r
):(q
=p
-r
,p
-=r
),s
=this.calcColor(v
,x
,a
),e
&&(s
=this.calcHighlightColor(s
,g
)),i
.push(l
.drawRect(m
,q
,this.barWidth
-1,r
-1,s
,s
))}return i
.length
===1?i
[0]:i
}}),d
.fn
.sparkline
.tristate
=z
=g(d
.fn
.sparkline
._base
,w
,{type
:"tristate",init:function(a
,b
,e
,f
,g
){var h
=parseInt(e
.get("barWidth"),10),i
=parseInt(e
.get("barSpacing"),10);z
._super
.init
.call(this,a
,b
,e
,f
,g
),this.regionShapes
={},this.barWidth
=h
,this.barSpacing
=i
,this.totalBarWidth
=h
+i
,this.values
=d
.map(b
,Number
),this.width
=f
=b
.length
*h
+(b
.length
-1)*i
,d
.isArray(e
.get("colorMap"))?(this.colorMapByIndex
=e
.get("colorMap"),this.colorMapByValue
=null):(this.colorMapByIndex
=null,this.colorMapByValue
=e
.get("colorMap"),this.colorMapByValue
&&this.colorMapByValue
.get===c
&&(this.colorMapByValue
=new t(this.colorMapByValue
))),this.initTarget()},getRegion:function(a
,c
,d
){return b
.floor(c
/this.totalBarWidth)},getCurrentRegionFields:function(){var a=this.currentRegion;return{isNull:this.values[a]===c,value:this.values[a],color:this.calcColor(this.values[a],a),offset:a}},calcColor:function(a,b){var c=this.values,d=this.options,e=this.colorMapByIndex,f=this.colorMapByValue,g,h;return f&&(h=f.get(a))?g=h:e&&e.length>b?g=e[b]:c[b]<0?g=d.get("negBarColor"):c[b]>0?g=d.get("posBarColor"):g=d.get("zeroBarColor"),g},renderRegion:function(a,c){var d=this.values,e=this.options,f=this.target,g,h,i,j,k,l;g=f.pixelHeight,i=b.round(g/2),j
=a
*this.totalBarWidth
,d
[a
]<0?(k
=i
,h
=i
-1):d
[a
]>0?(k
=0,h
=i
-1):(k
=i
-1,h
=2),l
=this.calcColor(d
[a
],a
);if(l
===null)return;return c
&&(l
=this.calcHighlightColor(l
,e
)),f
.drawRect(j
,k
,this.barWidth
-1,h
-1,l
,l
)}}),d
.fn
.sparkline
.discrete
=A
=g(d
.fn
.sparkline
._base
,w
,{type
:"discrete",init:function(a
,e
,f
,g
,h
){A
._super
.init
.call(this,a
,e
,f
,g
,h
),this.regionShapes
={},this.values
=e
=d
.map(e
,Number
),this.min
=b
.min
.apply(b
,e
),this.max
=b
.max
.apply(b
,e
),this.range
=this.max
-this.min
,this.width
=g
=f
.get("width")==="auto"?e
.length
*2:this.width
,this.interval
=b
.floor(g
/e.length),this.itemWidth=g/e
.length
,f
.get("chartRangeMin")!==c
&&(f
.get("chartRangeClip")||f
.get("chartRangeMin")<this.min
)&&(this.min
=f
.get("chartRangeMin")),f
.get("chartRangeMax")!==c
&&(f
.get("chartRangeClip")||f
.get("chartRangeMax")>this.max
)&&(this.max
=f
.get("chartRangeMax")),this.initTarget(),this.target
&&(this.lineHeight
=f
.get("lineHeight")==="auto"?b
.round(this.canvasHeight
*.3):f
.get("lineHeight"))},getRegion:function(a
,c
,d
){return b
.floor(c
/this.itemWidth)},getCurrentRegionFields:function(){var a=this.currentRegion;return{isNull:this.values[a]===c,value:this.values[a],offset:a}},renderRegion:function(a,c){var d=this.values,e=this.options,f=this.min,g=this.max,h=this.range,j=this.interval,k=this.target,l=this.canvasHeight,m=this.lineHeight,n=l-m,o,p,q,r;return p=i(d[a],f,g),r=a*j,o=b.round(n-n*((p-f)/h
)),q
=e
.get("thresholdColor")&&p
<e
.get("thresholdValue")?e
.get("thresholdColor"):e
.get("lineColor"),c
&&(q
=this.calcHighlightColor(q
,e
)),k
.drawLine(r
,o
,r
,o
+m
,q
)}}),d
.fn
.sparkline
.bullet
=B
=g(d
.fn
.sparkline
._base
,{type
:"bullet",init:function(a
,d
,e
,f
,g
){var h
,i
,j
;B
._super
.init
.call(this,a
,d
,e
,f
,g
),this.values
=d
=l(d
),j
=d
.slice(),j
[0]=j
[0]===null?j
[2]:j
[0],j
[1]=d
[1]===null?j
[2]:j
[1],h
=b
.min
.apply(b
,d
),i
=b
.max
.apply(b
,d
),e
.get("base")===c
?h
=h
<0?h
:0:h
=e
.get("base"),this.min
=h
,this.max
=i
,this.range
=i
-h
,this.shapes
={},this.valueShapes
={},this.regiondata
={},this.width
=f
=e
.get("width")==="auto"?"4.0em":f
,this.target
=this.$el
.simpledraw(f
,g
,e
.get("composite")),d
.length
||(this.disabled
=!0),this.initTarget()},getRegion:function(a
,b
,d
){var e
=this.target
.getShapeAt(a
,b
,d
);return e
!==c
&&this.shapes
[e
]!==c
?this.shapes
[e
]:c
},getCurrentRegionFields:function(){var a
=this.currentRegion
;return{fieldkey
:a
.substr(0,1),value
:this.values
[a
.substr(1)],region
:a
}},changeHighlight:function(a
){var b
=this.currentRegion
,c
=this.valueShapes
[b
],d
;delete this.shapes
[c
];switch(b
.substr(0,1)){case"r":d
=this.renderRange(b
.substr(1),a
);break;case"p":d
=this.renderPerformance(a
);break;case"t":d
=this.renderTarget(a
)}this.valueShapes
[b
]=d
.id
,this.shapes
[d
.id
]=b
,this.target
.replaceWithShape(c
,d
)},renderRange:function(a
,c
){var d
=this.values
[a
],e
=b
.round(this.canvasWidth
*((d
-this.min
)/this.range)),f=this.options.get("rangeColors")[a-2];return c&&(f=this.calcHighlightColor(f,this.options)),this.target.drawRect(0,0,e-1,this.canvasHeight-1,f,f)},renderPerformance:function(a){var c=this.values[1],d=b.round(this.canvasWidth*((c-this.min)/this.range
)),e
=this.options
.get("performanceColor");return a
&&(e
=this.calcHighlightColor(e
,this.options
)),this.target
.drawRect(0,b
.round(this.canvasHeight
*.3),d
-1,b
.round(this.canvasHeight
*.4)-1,e
,e
)},renderTarget:function(a
){var c
=this.values
[0],d
=b
.round(this.canvasWidth
*((c
-this.min
)/this.range)-this.options.get("targetWidth")/2),e
=b
.round(this.canvasHeight
*.1),f
=this.canvasHeight
-e
*2,g
=this.options
.get("targetColor");return a
&&(g
=this.calcHighlightColor(g
,this.options
)),this.target
.drawRect(d
,e
,this.options
.get("targetWidth")-1,f
-1,g
,g
)},render:function(){var a
=this.values
.length
,b
=this.target
,c
,d
;if(!B
._super
.render
.call(this))return;for(c
=2;c
<a
;c
++)d
=this.renderRange(c
).append(),this.shapes
[d
.id
]="r"+c
,this.valueShapes
["r"+c
]=d
.id
;this.values
[1]!==null&&(d
=this.renderPerformance().append(),this.shapes
[d
.id
]="p1",this.valueShapes
.p1
=d
.id
),this.values
[0]!==null&&(d
=this.renderTarget().append(),this.shapes
[d
.id
]="t0",this.valueShapes
.t0
=d
.id
),b
.render()}}),d
.fn
.sparkline
.pie
=C
=g(d
.fn
.sparkline
._base
,{type
:"pie",init:function(a
,c
,e
,f
,g
){var h
=0,i
;C
._super
.init
.call(this,a
,c
,e
,f
,g
),this.shapes
={},this.valueShapes
={},this.values
=c
=d
.map(c
,Number
),e
.get("width")==="auto"&&(this.width
=this.height
);if(c
.length
>0)for(i
=c
.length
;i
--;)h
+=c
[i
];this.total
=h
,this.initTarget(),this.radius
=b
.floor(b
.min(this.canvasWidth
,this.canvasHeight
)/2)},getRegion:function(a,b,d){var e=this.target.getShapeAt(a,b,d);return e!==c&&this.shapes[e]!==c?this.shapes[e]:c},getCurrentRegionFields:function(){var a=this.currentRegion;return{isNull:this.values[a]===c,value:this.values[a],percent:this.values[a]/this.total
*100,color
:this.options
.get("sliceColors")[a
%this.options
.get("sliceColors").length
],offset
:a
}},changeHighlight:function(a
){var b
=this.currentRegion
,c
=this.renderSlice(b
,a
),d
=this.valueShapes
[b
];delete this.shapes
[d
],this.target
.replaceWithShape(d
,c
),this.valueShapes
[b
]=c
.id
,this.shapes
[c
.id
]=b
},renderSlice:function(a
,d
){var e
=this.target
,f
=this.options
,g
=this.radius
,h
=f
.get("borderWidth"),i
=f
.get("offset"),j
=2*b
.PI
,k
=this.values
,l
=this.total
,m
=i
?2*b
.PI
*(i
/360):0,n,o,p,q,r;q=k.length;for(p=0;p<q;p++){n=m,o=m,l>0&&(o=m+j*(k[p]/l));if(a
===p
)return r
=f
.get("sliceColors")[p
%f
.get("sliceColors").length
],d
&&(r
=this.calcHighlightColor(r
,f
)),e
.drawPieSlice(g
,g
,g
-h
,n
,o
,c
,r
);m
=o
}},render:function(){var a
=this.target
,d
=this.values
,e
=this.options
,f
=this.radius
,g
=e
.get("borderWidth"),h
,i
;if(!C
._super
.render
.call(this))return;g
&&a
.drawCircle(f
,f
,b
.floor(f
-g
/2),e
.get("borderColor"),c
,g
).append();for(i
=d
.length
;i
--;)d
[i
]&&(h
=this.renderSlice(i
).append(),this.valueShapes
[i
]=h
.id
,this.shapes
[h
.id
]=i
);a
.render()}}),d
.fn
.sparkline
.box
=D
=g(d
.fn
.sparkline
._base
,{type
:"box",init:function(a
,b
,c
,e
,f
){D
._super
.init
.call(this,a
,b
,c
,e
,f
),this.values
=d
.map(b
,Number
),this.width
=c
.get("width")==="auto"?"4.0em":e
,this.initTarget(),this.values
.length
||(this.disabled
=1)},getRegion:function(){return 1},getCurrentRegionFields:function(){var a
=[{field
:"lq",value
:this.quartiles
[0]},{field
:"med",value
:this.quartiles
5 [1]},{field
:"uq",value
:this.quartiles
[2]}];return this.loutlier
!==c
&&a
.push({field
:"lo",value
:this.loutlier
}),this.routlier
!==c
&&a
.push({field
:"ro",value
:this.routlier
}),this.lwhisker
!==c
&&a
.push({field
:"lw",value
:this.lwhisker
}),this.rwhisker
!==c
&&a
.push({field
:"rw",value
:this.rwhisker
}),a
},render:function(){var a
=this.target
,d
=this.values
,e
=d
.length
,f
=this.options
,g
=this.canvasWidth
,h
=this.canvasHeight
,i
=f
.get("chartRangeMin")===c
?b
.min
.apply(b
,d
):f
.get("chartRangeMin"),k
=f
.get("chartRangeMax")===c
?b
.max
.apply(b
,d
):f
.get("chartRangeMax"),l
=0,m
,n
,o
,p
,q
,r
,s
,t
,u
,v
,w
;if(!D
._super
.render
.call(this))return;if(f
.get("raw"))f
.get("showOutliers")&&d
.length
>5?(n
=d
[0],m
=d
[1],p
=d
[2],q
=d
[3],r
=d
[4],s
=d
[5],t
=d
[6]):(m
=d
[0],p
=d
[1],q
=d
[2],r
=d
[3],s
=d
[4]);else{d
.sort(function(a
,b
){return a
-b
}),p
=j(d
,1),q
=j(d
,2),r
=j(d
,3),o
=r
-p
;if(f
.get("showOutliers")){m
=s
=c
;for(u
=0;u
<e
;u
++)m
===c
&&d
[u
]>p
-o
*f
.get("outlierIQR")&&(m
=d
[u
]),d
[u
]<r
+o
*f
.get("outlierIQR")&&(s
=d
[u
]);n
=d
[0],t
=d
[e
-1]}else m
=d
[0],s
=d
[e
-1]}this.quartiles
=[p
,q
,r
],this.lwhisker
=m
,this.rwhisker
=s
,this.loutlier
=n
,this.routlier
=t
,w
=g
/(k-i+1),f.get("showOutliers")&&(l=b.ceil(f.get("spotRadius")),g-=2*b.ceil(f.get("spotRadius")),w=g/(k
-i
+1),n
<m
&&a
.drawCircle((n
-i
)*w
+l
,h
/2,f.get("spotRadius"),f.get("outlierLineColor"),f.get("outlierFillColor")).append(),t>s&&a.drawCircle((t-i)*w+l,h/2,f
.get("spotRadius"),f
.get("outlierLineColor"),f
.get("outlierFillColor")).append()),a
.drawRect(b
.round((p
-i
)*w
+l
),b
.round(h
*.1),b
.round((r
-p
)*w
),b
.round(h
*.8),f
.get("boxLineColor"),f
.get("boxFillColor")).append(),a
.drawLine(b
.round((m
-i
)*w
+l
),b
.round(h
/2),b.round((p-i)*w+l),b.round(h/2),f
.get("lineColor")).append(),a
.drawLine(b
.round((m
-i
)*w
+l
),b
.round(h
/4),b.round((m-i)*w+l),b.round(h-h/4),f
.get("whiskerColor")).append(),a
.drawLine(b
.round((s
-i
)*w
+l
),b
.round(h
/2),b.round((r-i)*w+l),b.round(h/2),f
.get("lineColor")).append(),a
.drawLine(b
.round((s
-i
)*w
+l
),b
.round(h
/4),b.round((s-i)*w+l),b.round(h-h/4),f
.get("whiskerColor")).append(),a
.drawLine(b
.round((q
-i
)*w
+l
),b
.round(h
*.1),b
.round((q
-i
)*w
+l
),b
.round(h
*.9),f
.get("medianColor")).append(),f
.get("target")&&(v
=b
.ceil(f
.get("spotRadius")),a
.drawLine(b
.round((f
.get("target")-i
)*w
+l
),b
.round(h
/2-v),b.round((f.get("target")-i)*w+l),b.round(h/2+v
),f
.get("targetColor")).append(),a
.drawLine(b
.round((f
.get("target")-i
)*w
+l
-v
),b
.round(h
/2),b.round((f.get("target")-i)*w+l+v),b.round(h/2),f
.get("targetColor")).append()),a
.render()}}),G
=g({init:function(a
,b
,c
,d
){this.target
=a
,this.id
=b
,this.type
=c
,this.args
=d
},append:function(){return this.target
.appendShape(this),this}}),H
=g({_pxregex
:/(\d+)(px)?\s*$/i,init:function(a
,b
,c
){if(!a
)return;this.width
=a
,this.height
=b
,this.target
=c
,this.lastShapeId
=null,c
[0]&&(c
=c
[0]),d
.data(c
,"_jqs_vcanvas",this)},drawLine:function(a
,b
,c
,d
,e
,f
){return this.drawShape([[a
,b
],[c
,d
]],e
,f
)},drawShape:function(a
,b
,c
,d
){return this._genShape("Shape",[a
,b
,c
,d
])},drawCircle:function(a
,b
,c
,d
,e
,f
){return this._genShape("Circle",[a
,b
,c
,d
,e
,f
])},drawPieSlice:function(a
,b
,c
,d
,e
,f
,g
){return this._genShape("PieSlice",[a
,b
,c
,d
,e
,f
,g
])},drawRect:function(a
,b
,c
,d
,e
,f
){return this._genShape("Rect",[a
,b
,c
,d
,e
,f
])},getElement:function(){return this.canvas
},getLastShapeId:function(){return this.lastShapeId
},reset:function(){alert("reset not implemented")},_insert:function(a
,b
){d(b
).html(a
)},_calculatePixelDims:function(a
,b
,c
){var e
;e
=this._pxregex
.exec(b
),e
?this.pixelHeight
=e
[1]:this.pixelHeight
=d(c
).height(),e
=this._pxregex
.exec(a
),e
?this.pixelWidth
=e
[1]:this.pixelWidth
=d(c
).width()},_genShape:function(a
,b
){var c
=L
++;return b
.unshift(c
),new G(this,c
,a
,b
)},appendShape:function(a
){alert("appendShape not implemented")},replaceWithShape:function(a
,b
){alert("replaceWithShape not implemented")},insertAfterShape:function(a
,b
){alert("insertAfterShape not implemented")},removeShapeId:function(a
){alert("removeShapeId not implemented")},getShapeAt:function(a
,b
,c
){alert("getShapeAt not implemented")},render:function(){alert("render not implemented")}}),I
=g(H
,{init:function(b
,e
,f
,g
){I
._super
.init
.call(this,b
,e
,f
),this.canvas
=a
.createElement("canvas"),f
[0]&&(f
=f
[0]),d
.data(f
,"_jqs_vcanvas",this),d(this.canvas
).css({display
:"inline-block",width
:b
,height
:e
,verticalAlign
:"top"}),this._insert(this.canvas
,f
),this._calculatePixelDims(b
,e
,this.canvas
),this.canvas
.width
=this.pixelWidth
,this.canvas
.height
=this.pixelHeight
,this.interact
=g
,this.shapes
={},this.shapeseq
=[],this.currentTargetShapeId
=c
,d(this.canvas
).css({width
:this.pixelWidth
,height
:this.pixelHeight
})},_getContext:function(a
,b
,d
){var e
=this.canvas
.getContext("2d");return a
!==c
&&(e
.strokeStyle
=a
),e
.lineWidth
=d
===c
?1:d
,b
!==c
&&(e
.fillStyle
=b
),e
},reset:function(){var a
=this._getContext();a
.clearRect(0,0,this.pixelWidth
,this.pixelHeight
),this.shapes
={},this.shapeseq
=[],this.currentTargetShapeId
=c
},_drawShape:function(a
,b
,d
,e
,f
){var g
=this._getContext(d
,e
,f
),h
,i
;g
.beginPath(),g
.moveTo(b
[0][0]+.5,b
[0][1]+.5);for(h
=1,i
=b
.length
;h
<i
;h
++)g
.lineTo(b
[h
][0]+.5,b
[h
][1]+.5);d
!==c
&&g
.stroke(),e
!==c
&&g
.fill(),this.targetX
!==c
&&this.targetY
!==c
&&g
.isPointInPath(this.targetX
,this.targetY
)&&(this.currentTargetShapeId
=a
)},_drawCircle:function(a
,d
,e
,f
,g
,h
,i
){var j
=this._getContext(g
,h
,i
);j
.beginPath(),j
.arc(d
,e
,f
,0,2*b
.PI
,!1),this.targetX
!==c
&&this.targetY
!==c
&&j
.isPointInPath(this.targetX
,this.targetY
)&&(this.currentTargetShapeId
=a
),g
!==c
&&j
.stroke(),h
!==c
&&j
.fill()},_drawPieSlice:function(a
,b
,d
,e
,f
,g
,h
,i
){var j
=this._getContext(h
,i
);j
.beginPath(),j
.moveTo(b
,d
),j
.arc(b
,d
,e
,f
,g
,!1),j
.lineTo(b
,d
),j
.closePath(),h
!==c
&&j
.stroke(),i
&&j
.fill(),this.targetX
!==c
&&this.targetY
!==c
&&j
.isPointInPath(this.targetX
,this.targetY
)&&(this.currentTargetShapeId
=a
)},_drawRect:function(a
,b
,c
,d
,e
,f
,g
){return this._drawShape(a
,[[b
,c
],[b
+d
,c
],[b
+d
,c
+e
],[b
,c
+e
],[b
,c
]],f
,g
)},appendShape:function(a
){return this.shapes
[a
.id
]=a
,this.shapeseq
.push(a
.id
),this.lastShapeId
=a
.id
,a
.id
},replaceWithShape:function(a
,b
){var c
=this.shapeseq
,d
;this.shapes
[b
.id
]=b
;for(d
=c
.length
;d
--;)c
[d
]==a
&&(c
[d
]=b
.id
);delete this.shapes
[a
]},replaceWithShapes:function(a
,b
){var c
=this.shapeseq
,d
={},e
,f
,g
;for(f
=a
.length
;f
--;)d
[a
[f
]]=!0;for(f
=c
.length
;f
--;)e
=c
[f
],d
[e
]&&(c
.splice(f
,1),delete this.shapes
[e
],g
=f
);for(f
=b
.length
;f
--;)c
.splice(g
,0,b
[f
].id
),this.shapes
[b
[f
].id
]=b
[f
]},insertAfterShape:function(a
,b
){var c
=this.shapeseq
,d
;for(d
=c
.length
;d
--;)if(c
[d
]===a
){c
.splice(d
+1,0,b
.id
),this.shapes
[b
.id
]=b
;return}},removeShapeId:function(a
){var b
=this.shapeseq
,c
;for(c
=b
.length
;c
--;)if(b
[c
]===a
){b
.splice(c
,1);break}delete this.shapes
[a
]},getShapeAt:function(a
,b
,c
){return this.targetX
=b
,this.targetY
=c
,this.render(),this.currentTargetShapeId
},render:function(){var a
=this.shapeseq
,b
=this.shapes
,c
=a
.length
,d
=this._getContext(),e
,f
,g
;d
.clearRect(0,0,this.pixelWidth
,this.pixelHeight
);for(g
=0;g
<c
;g
++)e
=a
[g
],f
=b
[e
],this["_draw"+f
.type
].apply(this,f
.args
);this.interact
||(this.shapes
={},this.shapeseq
=[])}}),J
=g(H
,{init:function(b
,c
,e
){var f
;J
._super
.init
.call(this,b
,c
,e
),e
[0]&&(e
=e
[0]),d
.data(e
,"_jqs_vcanvas",this),this.canvas
=a
.createElement("span"),d(this.canvas
).css({display
:"inline-block",position
:"relative",overflow
:"hidden",width
:b
,height
:c
,margin
:"0px",padding
:"0px",verticalAlign
:"top"}),this._insert(this.canvas
,e
),this._calculatePixelDims(b
,c
,this.canvas
),this.canvas
.width
=this.pixelWidth
,this.canvas
.height
=this.pixelHeight
,f
='<v:group coordorigin="0 0" coordsize="'+this.pixelWidth
+" "+this.pixelHeight
+'"'+' style="position:absolute;top:0;left:0;width:'+this.pixelWidth
+"px;height="+this.pixelHeight
+'px;"></v:group>',this.canvas
.insertAdjacentHTML("beforeEnd",f
),this.group
=d(this.canvas
).children()[0],this.rendered
=!1,this.prerender
=""},_drawShape:function(a
,b
,d
,e
,f
){var g
=[],h
,i
,j
,k
,l
,m
,n
;for(n
=0,m
=b
.length
;n
<m
;n
++)g
[n
]=""+b
[n
][0]+","+b
[n
][1];return h
=g
.splice(0,1),f
=f
===c
?1:f
,i
=d
===c
?' stroked="false" ':' strokeWeight="'+f
+'px" strokeColor="'+d
+'" ',j
=e
===c
?' filled="false"':' fillColor="'+e
+'" filled="true" ',k
=g
[0]===g
[g
.length
-1]?"x ":"",l
='<v:shape coordorigin="0 0" coordsize="'+this.pixelWidth
+" "+this.pixelHeight
+'" '+' id="jqsshape'+a
+'" '+i
+j
+' style="position:absolute;left:0px;top:0px;height:'+this.pixelHeight
+"px;width:"+this.pixelWidth
+'px;padding:0px;margin:0px;" '+' path="m '+h
+" l "+g
.join(", ")+" "+k
+'e">'+" </v:shape>",l
},_drawCircle:function(a
,b
,d
,e
,f
,g
,h
){var i
,j
,k
;return b
-=e
,d
-=e
,i
=f
===c
?' stroked="false" ':' strokeWeight="'+h
+'px" strokeColor="'+f
+'" ',j
=g
===c
?' filled="false"':' fillColor="'+g
+'" filled="true" ',k
='<v:oval id="jqsshape'+a
+'" '+i
+j
+' style="position:absolute;top:'+d
+"px; left:"+b
+"px; width:"+e
*2+"px; height:"+e
*2+'px"></v:oval>',k
},_drawPieSlice:function(a
,d
,e
,f
,g
,h
,i
,j
){var k
,l
,m
,n
,o
,p
,q
,r
;if(g
===h
)return"";h
-g
===2*b
.PI
&&(g
=0,h
=2*b
.PI
),l
=d
+b
.round(b
.cos(g
)*f
),m
=e
+b
.round(b
.sin(g
)*f
),n
=d
+b
.round(b
.cos(h
)*f
),o
=e
+b
.round(b
.sin(h
)*f
);if(l
===n
&&m
===o
){if(h
-g
<b
.PI
)return"";l
=n
=d
+f
,m
=o
=e
}return l
===n
&&m
===o
&&h
-g
<b
.PI
?"":(k
=[d
-f
,e
-f
,d
+f
,e
+f
,l
,m
,n
,o
],p
=i
===c
?' stroked="false" ':' strokeWeight="1px" strokeColor="'+i
+'" ',q
=j
===c
?' filled="false"':' fillColor="'+j
+'" filled="true" ',r
='<v:shape coordorigin="0 0" coordsize="'+this.pixelWidth
+" "+this.pixelHeight
+'" '+' id="jqsshape'+a
+'" '+p
+q
+' style="position:absolute;left:0px;top:0px;height:'+this.pixelHeight
+"px;width:"+this.pixelWidth
+'px;padding:0px;margin:0px;" '+' path="m '+d
+","+e
+" wa "+k
.join(", ")+' x e">'+" </v:shape>",r
)},_drawRect:function(a
,b
,c
,d
,e
,f
,g
){return this._drawShape(a
,[[b
,c
],[b
,c
+e
],[b
+d
,c
+e
],[b
+d
,c
],[b
,c
]],f
,g
)},reset:function(){this.group
.innerHTML
=""},appendShape:function(a
){var b
=this["_draw"+a
.type
].apply(this,a
.args
);return this.rendered
?this.group
.insertAdjacentHTML("beforeEnd",b
):this.prerender
+=b
,this.lastShapeId
=a
.id
,a
.id
},replaceWithShape:function(a
,b
){var c
=d("#jqsshape"+a
),e
=this["_draw"+b
.type
].apply(this,b
.args
);c
[0].outerHTML
=e
},replaceWithShapes:function(a
,b
){var c
=d("#jqsshape"+a
[0]),e
="",f
=b
.length
,g
;for(g
=0;g
<f
;g
++)e
+=this["_draw"+b
[g
].type
].apply(this,b
[g
].args
);c
[0].outerHTML
=e
;for(g
=1;g
<a
.length
;g
++)d("#jqsshape"+a
[g
]).remove()},insertAfterShape:function(a
,b
){var c
=d("#jqsshape"+a
),e
=this["_draw"+b
.type
].apply(this,b
.args
);c
[0].insertAdjacentHTML("afterEnd",e
)},removeShapeId:function(a
){var b
=d("#jqsshape"+a
);this.group
.removeChild(b
[0])},getShapeAt:function(a
,b
,c
){var d
=a
.id
.substr(8);return d
},render:function(){this.rendered
||(this.group
.innerHTML
=this.prerender
,this.rendered
=!0)}})})})(document
,Math
);