/** * Kendo UI v2017.2.504 (http://www.telerik.com/kendo-ui) * Copyright 2017 Telerik AD. All rights reserved. * * Kendo UI commercial licenses may be obtained at * http://www.telerik.com/purchase/license-agreement/kendo-ui-complete * If you do not own a commercial license, this file shall be governed by the trial license terms. */ !function(t,define){define("util/text-metrics.min",["kendo.core.min"],t)}(function(){!function(t){function e(t){var e,i=[];for(e in t)i.push(e+t[e]);return i.sort().join("")}function i(t){var e,i=2166136261;for(e=0;e>>0}function n(){return{width:0,height:0,baseline:0}}function s(t,e,i){return h.current.measure(t,e,i)}var o,r,a,h;window.kendo.util=window.kendo.util||{},o=kendo.Class.extend({init:function(t){this._size=t,this._length=0,this._map={}},put:function(t,e){var i=this._map,n={key:t,value:e};i[t]=n,this._head?(this._tail.newer=n,n.older=this._tail,this._tail=n):this._head=this._tail=n,this._length>=this._size?(i[this._head.key]=null,this._head=this._head.newer,this._head.older=null):this._length++},get:function(t){var e=this._map[t];if(e)return e===this._head&&e!==this._tail&&(this._head=e.newer,this._head.older=null),e!==this._tail&&(e.older&&(e.older.newer=e.newer,e.newer.older=e.older),e.older=this._tail,e.newer=null,this._tail.newer=e,this._tail=e),e.value}}),r={baselineMarkerSize:1},"undefined"!=typeof document&&(a=document.createElement("div"),a.style.cssText="position: absolute !important; top: -4000px !important; width: auto !important; height: auto !important;padding: 0 !important; margin: 0 !important; border: 0 !important;line-height: normal !important; visibility: hidden !important; white-space: nowrap!important;"),h=kendo.Class.extend({init:function(e){this._cache=new o(1e3),this.options=t.extend({},r,e)},measure:function(t,s,o){var r,h,l,c,u,p,d,g;if(!t)return n();if(r=e(s),h=i(t+r),l=this._cache.get(h))return l;c=n(),u=o||a,p=this._baselineMarker().cloneNode(!1);for(d in s)g=s[d],void 0!==g&&(u.style[d]=g);return u.textContent=t,u.appendChild(p),document.body.appendChild(u),(t+"").length&&(c.width=u.offsetWidth-this.options.baselineMarkerSize,c.height=u.offsetHeight,c.baseline=p.offsetTop+this.options.baselineMarkerSize),c.width>0&&c.height>0&&this._cache.put(h,c),u.parentNode.removeChild(u),c},_baselineMarker:function(){var t=document.createElement("div");return t.style.cssText="display: inline-block; vertical-align: baseline;width: "+this.options.baselineMarkerSize+"px; height: "+this.options.baselineMarkerSize+"px;overflow: hidden;",t}}),h.current=new h,kendo.deepExtend(kendo.util,{LRUCache:o,TextMetrics:h,measureText:s,objectKey:e,hashKey:i})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/chart/kendo-chart.min",["kendo.core.min","kendo.color.min","kendo.drawing.min","kendo.dataviz.core.min"],t)}(function(){!function(t){function e(t){var e,i,n=t.length,s=0;for(e=0;eIi)return null;for(h in t)!vt(h,i.excluded)&&t.hasOwnProperty(h)&&(l=t[h],mt(l)?(a=!0,s||(t[h]=yt(l(e),o[h]))):_t(l)&&(s||(i.defaults=o[h]),i.depth++,a=n(l,e,i,s)||a,i.depth--));return a}function s(t){var e,i=t.length,n=0;for(e=0;e0)for(i=0;i-1){for(n=t.split(".");n.length>1;)o=n.shift(),lt(s[o])||(s[o]={}),s=s[o];o=n.shift()}s[o]=i}function f(t,e){var i,n,s=[],o=[].concat(e);for(i=0;ins?K:o<0?st:J,i=Math.abs(s)1?o:o[0]}function O(t,e){var i,n,s,o=t.series,r=o.length,a=t.seriesDefaults,h=wt({},t.seriesDefaults),l=e?wt({},e.seriesDefaults):{},c=wt({},l);for(z(h),z(c),i=0;i0?[i[0]]:[],o=1;o0&&(n=ee.sum(t)/i),n},first:function(t){var e,i,n=t.length;for(e=0;e=0&&(this.valueGetter=this.createValueGetter(e,i),a=this.getStandardError(h,this.getAverage(h)),this.globalRange=function(t){return{low:t-a,high:t+a}})},createValueGetter:function(t,e){var i,n,s,o=t.data,r=ie.current,a=r.valueFields(t),h=lt(o[0])?o[0]:{};return ut(h)?(n=e?a.indexOf(e):0,i=ct("["+n+"]")):U(h)?i=ct():typeof h===X.OBJECT&&(s=r.sourceFields(t,a),i=ct(s[a.indexOf(e)])),i},getErrorRange:function(t,e){var i,n,s,o;if(!lt(e))return null;if(this.globalRange)return this.globalRange(t);if(ut(e))i=t-e[0],n=t+e[1];else if(U(s=parseFloat(e)))i=t-s,n=t+s;else{if(!(s=oe.exec(e)))throw Error("Invalid ErrorBar value: "+e);o=t*(parseFloat(s[1])/100),i=t-Math.abs(o),n=t+Math.abs(o)}return{low:i,high:n}},getStandardError:function(t,e){return this.getStandardDeviation(t,e,!0)/Math.sqrt(e.count)},getStandardDeviation:function(t,e,i){var n,s,o=this,r=t.length,a=i?e.count-1:e.count,h=0;for(n=0;n0)return t.value/s}return t.value},plotRange:function(t,e){var i,n,s,o,r,a,h,l,c,u,p,d,g,f=this;if(void 0===e&&(e=0),i=this.categoryPoints[t.categoryIx],this.options.isStacked){for(n=this.plotValue(t),s=n>=0,o=e,r=!1,a=0;a=0&&s||u<0&&!s)&&(o+=u,n+=u,r=!0,f.options.isStacked100&&(n=Math.min(n,1)))}return r&&(o-=e),[o,n]}return p=t.series,d=this.seriesValueAxis(p),g=this.categoryAxisCrossingValue(d),[g,t.value||g]},stackLimits:function(t,e){var i,n,s,o,r,a=this,h=Y,l=Z;for(i=0;i0&&(this.errorTotals.positive[e]=Math.max(this.errorTotals.positive[e]||0,s)),{low:n,high:s}},addValue:function(e,i){var n,s,o=i.categoryIx,r=i.series,a=i.seriesIx,h=this.categoryPoints[o];h||(this.categoryPoints[o]=h=[]),n=this.seriesPoints[a],n||(this.seriesPoints[a]=n=[]),s=this.createPoint(e,i),s&&(t.extend(s,i),s.owner=this,s.dataItem=r.data[o],s.noteText=e.fields.noteText,this.addErrorBar(s,e,o)),this.points.push(s),n.push(s),h.push(s),this.updateRange(e.valueFields,i)},evalPointOptions:function(t,e,i,s,o,r){var a,h={defaults:o._defaults,excluded:["data","aggregate","_events","tooltip","template","visual","toggle","_outOfRangeMinPoint","_outOfRangeMaxPoint"]},l=this._evalSeries[r];return lt(l)||(this._evalSeries[r]=l=n(t,{},h,!0)),a=t,l&&(a=wt({},a),n(a,{value:e,category:i,index:s,series:o,dataItem:o.data[s]},h)),a},updateRange:function(t,e){var i=e.series.axis,n=t.value,s=this.valueAxisRanges[i];isFinite(n)&&null!==n&&(s=this.valueAxisRanges[i]=s||{min:Y,max:Z},s.min=Math.min(s.min,n),s.max=Math.max(s.max,n))},seriesValueAxis:function(t){var e=this.plotArea,i=t.axis,n=i?e.namedValueAxes[i]:e.valueAxis;if(!n)throw Error("Unable to locate value axis with name "+i);return n},reflow:function(t){var e=this,i=this.categorySlots=[],n=this.points,s=this.categoryAxis,o=0;this.traverseDataPoints(function(t,r){var a,h,l,c=r.categoryIx,u=r.series,p=e.seriesValueAxis(u),d=n[o++],g=i[c];g||(i[c]=g=e.categorySlot(s,c,p)),d&&(a=e.plotRange(d,p.startValue()),h=p.getSlot(a[0],a[1],!e.options.clip),h?(l=e.pointSlot(g,h),d.aboveAxis=e.aboveAxis(d,p),d.stackValue=a[1],e.options.isStacked100&&(d.percentage=e.plotValue(d)),e.reflowPoint(d,l)):d.visible=!1)}),this.reflowCategories(i),this.box=t},aboveAxis:function(t,e){var i=this.categoryAxisCrossingValue(e),n=t.value;return e.options.reverse?n=i},categoryAxisCrossingValue:function(t){var e=this.categoryAxis,i=t.options,n=[].concat(i.axisCrossingValues||i.axisCrossingValue);return n[e.axisIndex||0]||0},reflowPoint:function(t,e){t.reflow(e)},reflowCategories:function(){},pointSlot:function(t,e){var i=this.options,n=i.invertAxes,s=n?e:t,o=n?t:e;return new gt(s.x1,o.y1,s.x2,o.y2)},categorySlot:function(t,e){return t.getSlot(e)},traverseDataPoints:function(t){var e,i,n,o,r,a,h,l=this,c=this.options.series,u=this.categoryAxis.options.categories||[],p=s(c),d=c.length;for(e=0;e1&&(t=h.createSegment(o,i,e,t),h._addSegment(t)),o=[]);o.length>1&&(t=h.createSegment(o,i,e,t),h._addSegment(t))}this.children.unshift.apply(this.children,this._segments)},_addSegment:function(t){this._segments.push(t),t.parent=this},sortPoints:function(t){return t},seriesMissingValues:function(t){var e=t.missingValues,i=!e&&this.options.isStacked;return i?be:e||Ae},getNearestPoint:function(t,e,i){var n,s,o,r,a,h=new dt(t,e),l=this.seriesPoints[i],c=Y;for(s=0;s1&&(t=c[0],e=Rt(c),s?(c.unshift(new Qt(p,t.y)),c.push(new Qt(p,e.y))):(c.unshift(new Qt(t.x,p)),c.push(new Qt(e.x,p)))),c},createVisual:function(){var t=this.series,e=t._defaults,i=t.color;mt(i)&&e&&(i=e.color),this.visual=new Zt({zIndex:t.zIndex}),this.createArea(i),this.createLine(i)},createLine:function(t){var e,i=this.series,n=wt({color:t,opacity:i.opacity},i.line);n.visible!==!1&&n.width>0&&(e=Ut.fromPoints(this._linePoints(),{stroke:{color:n.color,width:n.width,opacity:n.opacity,dashType:n.dashType,lineCap:"butt"}}),this.visual.append(e))},createArea:function(t){var e=this.series,i=Ut.fromPoints(this.points(),{fill:{color:t,opacity:e.opacity},stroke:null});this.visual.append(i)}},Xi=Di.extend({init:function(t,e,i,n){Di.fn.init.call(this,t,i,n),this.stackPoints=e}}),wt(Xi.prototype,Ui,{_linePoints:Di.prototype.points}),Yi=Fi.extend({init:function(t,e,i,n){Fi.fn.init.call(this,t,i,n),this.stackPoints=e}}),wt(Yi.prototype,Ui,{_linePoints:Fi.prototype.points}),Zi=Xi.extend({init:function(t,e,i,n,s){Xi.fn.init.call(this,t,[],n,s),this.prevSegment=e,this.isStacked=i},strokeSegments:function(){var t,e,i=this._strokeSegments;return i||(t=new q.CurveProcessor(this.options.closed),e=Di.prototype.points.call(this),i=this._strokeSegments=t.process(e)),i},createVisual:function(){var t=this.series,e=t._defaults,i=t.color;mt(i)&&e&&(i=e.color),this.visual=new Zt({zIndex:t.zIndex}),this.createFill({fill:{color:i,opacity:t.opacity},stroke:null}),this.createStroke({stroke:wt({color:i,opacity:t.opacity,lineCap:"butt"},t.line)})},createFill:function(t){var e,i,n,s,o,r,a,h=this.strokeSegments(),l=h.slice(0),c=this.prevSegment;if(this.isStacked&&c){for(e=c.strokeSegments(),i=Rt(e).anchor(),l.push(new Kt.Segment(i,i,Rt(h).anchor())),n=[],s=e.length-1;s>=0;s--)o=e[s],n.push(new Kt.Segment(o.anchor(),o.controlOut(),o.controlIn()));Et(l,n),r=l[0].anchor(),l.push(new Kt.Segment(r,r,Rt(n).anchor()))}a=new Ut(t),a.segments.push.apply(a.segments,l),this.closeFill(a),this.visual.append(a)},closeFill:function(t){var e=this.parent,i=this.prevSegment,n=e.plotArea,s=e.options.invertAxes,o=e.seriesValueAxis(this.series),r=o.lineBox(),a=n.seriesCategoryAxis(this.series),h=a.lineBox(),l=s?nt:it,c=this.strokeSegments(),u=c[0].anchor(),p=Rt(c).anchor(),d=s?h.x1:h.y1;d=Pt(d,r[l+1],r[l+2]),e.options.isStacked&&i||!(c.length>1)||(s?t.lineTo(d,p.y).lineTo(d,u.y):t.lineTo(p.x,d).lineTo(u.x,d))},createStroke:function(t){if(t.stroke.width>0){var e=new Ut(t);e.segments.push.apply(e.segments,this.strokeSegments()),this.visual.append(e)}}}),ji=Wi.extend({createSegment:function(t,e,i,n){var s,o,r,a=this.options.isStacked,h=(e.line||{}).style;return a&&i>0&&n&&(o=this.seriesMissingValues(e),s="gap"!==o?n.linePoints:this._gapStackPoints(t,i,h),h!==ke&&(s=s.slice(0).reverse())),h===Se?new Zi(t,n,a,e,i):new(r=h===ke?Yi:Xi)(t,s,e,i)},reflow:function(t){var e,i,n,s,o=this;if(Wi.fn.reflow.call(this,t),e=this._stackPoints)for(i=0;i0&&!l);l?(i!==ke&&r>d&&!p[h][a-1]&&o.push(u._previousSegmentPoint(r,a,a-1,h)),o.push(l),i!==ke&&r+10&&!s;)r--,s=o[r][i];return s?s=o[r][e]:(s=this._createGapStackPoint(t),this._stackPoints.push(s)),s},_createGapStackPoint:function(t){var e=this.pointOptions({},0),i=new zi(0,e);return i.categoryIx=t,i.series={},i},seriesMissingValues:function(t){return t.missingValues||be}}),Ki=W.extend({init:function(){this.axisRanges={}},update:function(t){var e,i,n,s=this.axisRanges;for(e in t)i=t[e],n=s[e],s[e]=n=n||{min:Y,max:Z},n.min=Math.min(n.min,i.min),n.max=Math.max(n.max,i.max)},reset:function(t){this.axisRanges[t]=void 0},query:function(t){return this.axisRanges[t]}}),Qi=pt.extend({init:function(t,e){pt.fn.init.call(this,e),this.textBox=new St(t,this.options),this.append(this.textBox)},createVisual:function(){this.textBox.options.noclip=this.options.noclip},reflow:function(t){var e=this.options,i=e.vertical,n=e.aboveAxis,s=this.children[0],o=s.options,r=s.box,a=s.options.padding,h=t;o.align=i?K:J,o.vAlign=i?Q:K,e.position===bi?i?(o.vAlign=Q,!n&&r.height()0&&n.height()>0&&this.createRect(this.visual))},createRect:function(t){var e,i,n,s,o,a=this.options,h=a.border,l=lt(h.opacity)?h.opacity:a.opacity,c=this.box.toRect();c.size.width=Math.round(c.size.width),e=this.rectVisual=Ut.fromRect(c,{fill:{color:this.color,opacity:a.opacity},stroke:{color:this.getBorderColor(),width:h.width,opacity:l,dashType:h.dashType}}),i=this.box.width(),n=this.box.height(),s=a.vertical?i:n,s>$i&&(ft(e),(i<1||n<1)&&(e.options.stroke.lineJoin="round")),t.append(e),r(a)&&(o=this.createGradientOverlay(e,{baseColor:this.color},wt({end:a.vertical?void 0:[0,1]},a.overlay)),t.append(o))},createHighlight:function(t){var e=Ut.fromRect(this.box.toRect(),t);return ft(e)},highlightVisual:function(){return this.rectVisual},highlightVisualArgs:function(){return{options:this.options,rect:this.box.toRect(),visual:this.rectVisual}},getBorderColor:function(){var t=this.color,e=this.options.border,i=e._brightness||pe,n=e.color;return lt(n)||(n=new jt(t).brightness(i).toHex()),n},tooltipAnchor:function(){var t,e,i,n,s=this,o=s.options,r=s.box,a=s.aboveAxis,h=this.owner.pane.clipBox()||r,l=J,c=Q;return o.vertical?(t=Math.min(r.x2,h.x2)+de,a?e=Math.max(r.y1,h.y1):(e=Math.min(r.y2,h.y2),c=$)):(i=Math.max(r.x1,h.x1),n=Math.min(r.x2,h.x2),o.isStacked?(c=$,a?(l=st,t=n):t=i,e=Math.max(r.y1,h.y1)-de):(a?t=n+de:(t=i-de,l=st),e=Math.max(r.y1,h.y1))),{point:new dt(t,e),align:{horizontal:l,vertical:c}}},overlapsBox:function(t){return this.box.overlaps(t)}}),wt(Ji.prototype,Mi),wt(Ji.prototype,Li),Ji.prototype.defaults={border:{width:1},vertical:!0,overlay:{gradient:"glass"},labels:{visible:!1,format:"{0}"},opacity:1,notes:{label:{}}},tn=pt.extend({reflow:function(t){var e,i,n=this.options,s=n.vertical,o=n.gap,r=n.spacing,a=this.children,h=a.length,l=s?it:nt,c=h+o+r*(h-1),u=(s?t.height():t.width())/c,p=t[l+1]+u*(o/2);for(e=0;e0&&i.options.set("stroke",{color:this.getBorderColor(),width:e.border.width,dashType:e.border.dashType,opacity:yt(e.border.opacity,e.opacity)}),ft(i),t.append(i),r(e)&&t.append(this.createGradientOverlay(i,{baseColor:this.color},wt({end:e.vertical?void 0:[0,1]},e.overlay)))},createLines:function(t,e){this.drawLines(t,e,this.lines,e.line)},drawLines:function(t,e,i,n){var s,o,r;if(i)for(s={stroke:{color:n.color||this.color,opacity:yt(n.opacity,e.opacity),width:n.width,dashType:n.dashType,lineCap:"butt"}},o=0;o{4:d}Open:{0:C}High:{1:C}Low:{2:C}Close:{3:C}"},highlight:{opacity:1,border:{width:1,opacity:1},line:{width:1,opacity:1}},notes:{visible:!0,label:{}}}),wt(sn.prototype,Mi),wt(sn.prototype,Li),on=Vi.extend({reflowCategories:function(t){var e,i=this.children,n=i.length;for(e=0;eh.close&&(c=t.fields.downColor||o.downColor||o.color),mt(o.color)&&(c=l.color),l.vertical=!this.options.invertAxes,i=new a(h,l),i.color=c,i},splitValue:function(t){return[t.low,t.open,t.close,t.high]},updateRange:function(t,e){var i=e.series.axis,n=this.splitValue(t),s=this.valueAxisRanges[i];s=this.valueAxisRanges[i]=s||{min:Y,max:Z},s=this.valueAxisRanges[i]={min:Math.min.apply(Math,n.concat([s.min])),max:Math.max.apply(Math,n.concat([s.max]))}},formatPointValue:function(t,e){var i=t.value;return this.chartService.format.auto(e,i.open,i.high,i.low,i.close,t.category)},animationPoints:function(){return this.points}}),wt(on.prototype,qi),rn=sn.extend({init:function(t,e){sn.fn.init.call(this,t,e),this.createNote()},reflow:function(t){var e,i,n,s,o=this,r=o.options,a=o.value,h=o.owner,l=h.seriesValueAxis(r);this.boxSlot=i=l.getSlot(a.q1,a.q3),this.realBody=i,this.reflowBoxSlot(t),this.whiskerSlot=e=l.getSlot(a.lower,a.upper),this.reflowWhiskerSlot(t),n=l.getSlot(a.median),a.mean&&(s=l.getSlot(a.mean),this.meanPoints=this.calcMeanPoints(t,s)),this.whiskerPoints=this.calcWhiskerPoints(i,e),this.medianPoints=this.calcMedianPoints(t,n),this.box=e.clone().wrap(i),this.reflowNote()},reflowBoxSlot:function(t){this.boxSlot.x1=t.x1,this.boxSlot.x2=t.x2},reflowWhiskerSlot:function(t){this.whiskerSlot.x1=t.x1,this.whiskerSlot.x2=t.x2},calcMeanPoints:function(t,e){return[[[t.x1,e.y1],[t.x2,e.y1]]]},calcWhiskerPoints:function(t,e){var i=e.center().x;return[[[i-5,e.y1],[i+5,e.y1],[i,e.y1],[i,t.y1]],[[i-5,e.y2],[i+5,e.y2],[i,e.y2],[i,t.y2]]]},calcMedianPoints:function(t,e){return[[[t.x1,e.y1],[t.x2,e.y1]]]},renderOutliers:function(t){var e,i,n,s,o=this,r=this.value,a=r.outliers||[],h=3*Math.abs(r.q3-r.q1),l=[],c=t.markers||{};for(e=0;er.q1-h?t.outliers:t.extremes,n=wt({},c.border),lt(n.color)||(n.color=lt(o.color)?o.color:new jt(c.background).brightness(pe).toHex()),s=new kt({type:c.type,width:c.size,height:c.size,rotation:c.rotation,background:c.background,border:n,opacity:c.opacity}),s.value=i,l.push(s);return this.reflowOutliers(l),l},reflowOutliers:function(t){var e,i,n,s=this,o=this.owner.seriesValueAxis(this.options),r=this.box.center();for(e=0;e{6:d}Lower:{0:C}Q1:{1:C}Median:{2:C}Mean:{5:C}Q3:{3:C}Upper:{4:C}"},highlight:{opacity:1,border:{width:1,opacity:1},line:{width:1,opacity:1}},notes:{visible:!0,label:{}},outliers:{visible:!0,size:we,type:X.CROSS,background:tt,border:{width:2,opacity:1},opacity:0},extremes:{visible:!0,size:we,type:et,background:tt,border:{width:2,opacity:1},opacity:0}}),wt(rn.prototype,Mi),an=rn.extend({reflowBoxSlot:function(t){this.boxSlot.y1=t.y1,this.boxSlot.y2=t.y2},reflowWhiskerSlot:function(t){this.whiskerSlot.y1=t.y1,this.whiskerSlot.y2=t.y2},calcMeanPoints:function(t,e){return[[[e.x1,t.y1],[e.x1,t.y2]]]},calcWhiskerPoints:function(t,e){var i=e.center().y;return[[[e.x1,i-5],[e.x1,i+5],[e.x1,i],[t.x1,i]],[[e.x2,i-5],[e.x2,i+5],[e.x2,i],[t.x2,i]]]},calcMedianPoints:function(t,e){return[[[e.x1,t.y1],[e.x1,t.y2]]]}}),hn=on.extend({addValue:function(t,e){var i,n,s=e.categoryIx,o=e.category,r=e.series,h=e.seriesIx,l=this,c=l.children,u=l.options,p=t.valueFields,d=this.splitValue(p),g=a(d),f=r.data[s],x=this.categoryPoints[s];x||(this.categoryPoints[s]=x=[]),g&&(i=this.createPoint(t,e)),n=c[s],n||(n=new tn({vertical:u.invertAxes,gap:u.gap,spacing:u.spacing}),this.append(n)),i&&(this.updateRange(p,e),n.append(i),i.categoryIx=s,i.category=o,i.series=r,i.seriesIx=h,i.owner=this,i.dataItem=f),this.points.push(i),x.push(i)},pointType:function(){return this.options.invertAxes?an:rn},splitValue:function(t){return[t.lower,t.q1,t.median,t.q3,t.upper]},updateRange:function(t,e){var i=e.series.axis,n=this.valueAxisRanges[i],s=this.splitValue(t).concat(this.filterOutliers(t.outliers));lt(t.mean)&&(s=s.concat(t.mean)),n=this.valueAxisRanges[i]=n||{min:Y,max:Z},n=this.valueAxisRanges[i]={min:Math.min.apply(Math,s.concat([n.min])),max:Math.max.apply(Math,s.concat([n.max]))}},formatPointValue:function(t,e){var i=t.value;return this.chartService.format.auto(e,i.lower,i.q1,i.median,i.q3,i.upper,i.mean,t.category)},filterOutliers:function(t){var e,i,n=(t||[]).length,s=[];for(e=0;e0||t.size<0&&e.series.negativeValues.visible)?(this._maxSize=Math.max(this._maxSize,Math.abs(t.size)),cn.fn.addValue.call(this,t,e)):(this.points.push(null),this.seriesPoints[e.seriesIx].push(null))},reflow:function(t){this.updateBubblesSize(t),cn.fn.reflow.call(this,t)},pointType:function(){return un},createPoint:function(t,e){var i,n,s=e.series,o=s.data.length,r=e.pointIx*(le/o),a={delay:r,duration:le-r,type:Ee},h=e.color||s.color;return t.size<0&&s.negativeValues.visible&&(h=yt(s.negativeValues.color,h)),i=wt({labels:{animation:{delay:r,duration:le-r}}},this.pointOptions(s,e.seriesIx),{markers:{type:et,border:s.border,opacity:s.opacity,animation:a}}),i=this.evalPointOptions(i,t,e),mt(s.color)&&(h=i.color),i.markers.background=h,n=new un(t,i),n.color=h,this.append(n),n},updateBubblesSize:function(t){var e,i,n,s,o,r,a,h,l,c,u,p,d,g,f,x,v,m=this,y=this,_=y.options.series,w=Math.min(t.width(),t.height());for(e=0;e<_.length;e++)for(i=_[e],n=m.seriesPoints[e],s=i.minSize||Math.max(.02*w,10),o=i.maxSize||.2*w,r=s/2,a=o/2,h=Math.PI*r*r,l=Math.PI*a*a,c=l-h,u=c/m._maxSize,p=0;p0&&e.options.set("stroke",{color:t.border.color||this.color,width:t.border.width,dashType:t.border.dashType,opacity:yt(t.border.opacity,t.opacity)}),this.bodyVisual=e,ft(e),this.visual.append(e)},createAnimation:function(){this.bodyVisual&&(this.animation=Xt.create(this.bodyVisual,this.options.animation))},createHighlight:function(t){return Ut.fromRect(this.box.toRect(),t)},highlightVisual:function(){return this.bodyVisual},highlightVisualArgs:function(){return{rect:this.box.toRect(),visual:this.bodyVisual,options:this.options}},formatValue:function(t){return this.owner.formatPointValue(this,t)}}),gn.prototype.tooltipAnchor=Ji.prototype.tooltipAnchor,xt(gn,{border:{width:1},vertical:!1,opacity:1,target:{shape:"",border:{width:0,color:"green"},line:{width:2}},tooltip:{format:"Current: {0}
Target: {1}"}}),wt(gn.prototype,Mi),wt(gn.prototype,Li),fn=Vi.extend({init:function(t,e){l(e),Vi.fn.init.call(this,t,e)},reflowCategories:function(t){var e,i=this.children,n=i.length;for(e=0;e0},createAnimation:function(){var t,e,i=this,n=this.points;for(this._setAnimationOptions(),t=0;t180&&(t.className="k-chart-tooltip-inverse"),this.chartService.notify(mi,t)},hide:function(){this.chartService&&this.chartService.notify(yi)},destroy:function(){delete this.chartService}}),xt(xn,{border:{width:1},opacity:1}),vn=xn.extend({init:function(t,e,i){xn.fn.init.call(this,t,i),this.crosshair=e,this.formatService=t.format,this.initAxisName()},initAxisName:function(){var t,e=this.crosshair.axis,i=e.plotArea;t=i.categoryAxis?e.getCategory?"categoryAxis":"valueAxis":e.options.vertical?"yAxis":"xAxis",this.axisName=t},showAt:function(t){var e=this,i=e.crosshair.axis,n=e.options,s=i[n.stickyMode?"getCategory":"getValue"](t),o=s;n.format?o=this.formatService.auto(n.format,s):i.options.type===rt&&(o=this.formatService.auto(i.options.labels.dateFormats[i.options.baseUnit],s)),this.show({point:t,anchor:this.getAnchor(),crosshair:this.crosshair,value:o,axisName:this.axisName,axisIndex:this.crosshair.axis.axisIndex},this.options)},hide:function(){this.chartService.notify(yi,{crosshair:this.crosshair,axisName:this.axisName,axisIndex:this.crosshair.axis.axisIndex})},getAnchor:function(){var t,e,i,n=this,s=n.crosshair,o=n.options,r=o.position,a=o.padding,h=!s.axis.options.vertical,l=s.line.bbox(); return h?(t=K,r===$?(e=Q,i=l.bottomLeft().translate(0,a)):(e=$,i=l.topLeft().translate(0,-a))):(e=K,r===J?(t=st,i=l.topLeft().translate(-a,0)):(t=J,i=l.topRight().translate(a,0))),{point:i,align:{horizontal:t,vertical:e}}}}),xt(vn,{padding:10}),mn=pt.extend({init:function(t,e,i){pt.fn.init.call(this,i),this.axis=e,this.stickyMode=e instanceof Lt;var n=this.options.tooltip;n.visible&&(this.tooltip=new vn(t,this,wt({},n,{stickyMode:this.stickyMode})))},showAt:function(t){this.point=t,this.moveLine(),this.line.visible(!0),this.tooltip&&this.tooltip.showAt(t)},hide:function(){this.line.visible(!1),this.tooltip&&this.tooltip.hide()},moveLine:function(){var t,e,i=this,n=i.axis,s=i.point,o=n.options.vertical,r=this.getBox(),a=o?it:nt,h=new Qt(r.x1,r.y1);t=o?new Qt(r.x2,r.y1):new Qt(r.x1,r.y2),s&&(this.stickyMode?(e=n.getSlot(n.pointCategoryIndex(s)),h[a]=t[a]=e.center()[a]):h[a]=t[a]=s[a]),this.box=r,this.line.moveTo(h).lineTo(t)},getBox:function(){var t,e,i,n=this.axis,s=n.pane.axes,o=s.length,r=n.options.vertical,a=n.lineBox().clone(),h=r?nt:it;for(e=0;e=0;e--)for(i=0;i0&&(a=Math.max(a,r.width()-i.contentBox.width()));if(0!==a)for(n=0;n0)for(o=u(n),r=Math.max(s.y1-o.y1,s.y2-o.y2),d=Math.max(d,s.x1-o.x1),a=0;a0&&n.y.length>0&&(this.alignAxes(n.x,n.y),this.shrinkAxisWidth(t),this.autoRotateAxisLabels(n),this.alignAxes(n.x,n.y),this.shrinkAxisWidth(t)&&this.alignAxes(n.x,n.y),this.shrinkAxisHeight(t),this.alignAxes(n.x,n.y),this.shrinkAxisHeight(t)&&this.alignAxes(n.x,n.y),this.fitAxes(t))},autoRotateAxisLabels:function(t){var e,i,n,s,o=this,r=this,a=r.axes,h=r.panes;for(i=0;i0&&t.y.length>0&&(this.alignAxes(t.x,t.y),this.shrinkAxisWidth(h))}},reflowPaneAxes:function(t){var e,i=t.axes,n=i.length;if(n>0)for(e=0;es.to,i.reflow(t)),n&&(n.options.aboveAxis=s.to>s.from,n.reflow(t)),this.note&&this.note.reflow(t)}}),kn.prototype.defaults=wt({},kn.prototype.defaults,{labels:{format:"{0} - {1}"},tooltip:{format:"{1}"}}),Tn=nn.extend({pointType:function(){return kn},pointValue:function(t){return t.valueFields},formatPointValue:function(t,e){return null===t.value.from&&null===t.value.to?"":this.chartService.format.auto(e,t.value.from,t.value.to)},plotRange:function(t){return t?[t.value.from,t.value.to]:0},updateRange:function(t,e){var i=e.series.axis,n=t.from,s=t.to,o=this.valueAxisRanges[i];null!==t&&U(n)&&U(s)&&(o=this.valueAxisRanges[i]=o||{min:Y,max:Z},o.min=Math.min(o.min,n),o.max=Math.max(o.max,n),o.min=Math.min(o.min,s),o.max=Math.max(o.max,s))},aboveAxis:function(t){var e=t.value;return e.from=0},plotRange:function(t){return[t.from,t.to]},createSegments:function(){var t,e,i,n,s,o,r,a=this,h=this.options.series,l=this.seriesPoints,c=this.segments=[];for(t=0;t0)for(this.invertAxes=vt(t[0].type,[Pe,Ie,Je,Ke,Xe,Oe,Qe]),e=0;e=0&&nl&&(l=v,p={category:f,points:[g]}):v>=S.length&&(v===c?d.points.push(g):v0&&c.length>0&&t.trigger(i,{element:bt(e),originalEvent:e,category:y(l),value:y(c)})}},pointPane:function(t){var e,i,n=this.panes;for(e=0;ee.x2&&(h=e.x2-i.x),ne.y2&&(l=e.y2-i.y),s0},reflow:function(t){var e=this.options,i=t.clone();return this.hasItems()?void(e.position===Nn?(this.containerCustomReflow(i),this.box=i):this.containerReflow(i)):void(this.box=i)},containerReflow:function(t){var e,i=this,n=i.options,s=i.container,o=n.position,r=n.width,a=n.height,h=o===Q||o===$?nt:it,l=this.isVertical(),c=t.clone(),u=t.clone();o!==J&&o!==st||(u.y1=c.y1=0),l&&a?(u.y2=u.y1+a,u.align(c,it,s.options.vAlign)):!l&&r&&(u.x2=u.x1+r,u.align(c,nt,s.options.align)),s.reflow(u),u=s.box,e=u.clone(),(n.offsetX||n.offsetY)&&(u.translate(n.offsetX,n.offsetY),this.container.reflow(u)),e[h+1]=t[h+1],e[h+2]=t[h+2],this.box=e},containerCustomReflow:function(t){var e=this,i=e.options,n=e.container,s=i.offsetX,o=i.offsetY,r=i.width,a=i.height,h=this.isVertical(),l=t.clone();h&&a?l.y2=l.y1+a:!h&&r&&(l.x2=l.x1+r),n.reflow(l),l=n.box,n.reflow(new gt(s,o,s+l.width(),o+l.height()))},renderVisual:function(){this.hasItems()&&pt.fn.renderVisual.call(this)}}),xt(Gn,{position:st,items:[],labels:{margin:{left:6}},offsetX:0,offsetY:0,margin:Tt(5),padding:Tt(5),border:{color:ot,width:0},item:{cursor:Hn},spacing:6,background:"",zIndex:1,markers:{border:{width:0},width:15,height:3,type:"rect",align:J,vAlign:K}}),qn=W.extend({init:function(){this._registry=[]},register:function(t,e){this._registry.push({type:t,seriesTypes:e})},create:function(t,e,i){var n,s,o,r=this._registry,a=r[0];for(s=0;s0){a=o;break}return new a.type(n,e,i)}}),qn.current=new qn,Wn=3,Un=.1,Xn=W.extend({init:function(t,e,i,n){var s=t.element,o=this.getValueAxis(e);this.options=wt({},this.options,i),this.chart=t,this.observer=n,this.chartElement=s,this.categoryAxis=e,this._dateAxis=this.categoryAxis instanceof Dt,this.valueAxis=o,this.initOptions(),this.options.visible&&(this.createElements(),this.set(this._index(this.options.from),this._index(this.options.to)),this.bindEvents())},createElements:function(){var t,e,i,n,s,o,r=this.options,a=this.wrapper=S("k-selector");Ft(a,{top:r.offset.top,left:r.offset.left,width:r.width,height:r.height}),t=this.selection=S("k-selection"),this.leftMask=S("k-mask"),this.rightMask=S("k-mask"),a.appendChild(this.leftMask),a.appendChild(this.rightMask),a.appendChild(t),t.appendChild(S("k-selection-bg")),e=this.leftHandle=S("k-handle k-left-handle"),i=this.rightHandle=S("k-handle k-right-handle"),e.appendChild(S()),i.appendChild(S()),t.appendChild(e),t.appendChild(i),this.chartElement.appendChild(a),n=Ft(t,["borderLeftWidth","borderRightWidth","height"]),s=Ft(e,"height").height,o=Ft(i,"height").height,r.selection={border:{left:n.borderLeftWidth,right:n.borderRightWidth}},Ft(e,{top:(n.height-s)/2}),Ft(i,{top:(n.height-o)/2}),a.style.cssText=a.style.cssText},bindEvents:function(){this._mousewheelHandler=this.options.mousewheel!==!1?this._mousewheel.bind(this):T;var t;Nt(this.wrapper,(t={},t[Si]=this._mousewheelHandler,t)),this._domEvents=At.DomEventsBuilder.create(this.wrapper,{start:this._start.bind(this),move:this._move.bind(this),end:this._end.bind(this),tap:this._tap.bind(this),press:this._press.bind(this),gesturestart:this._gesturestart.bind(this),gesturechange:this._gesturechange.bind(this),gestureend:this._gestureend.bind(this)})},initOptions:function(){var t,e,i,n=this,s=n.options,o=n.categoryAxis,r=n.valueAxis,a=o.lineBox(),h=r.lineBox(),l=this.chart.chartService.intl;this._dateAxis&&wt(s,{min:Vt(l,s.min),max:Vt(l,s.max),from:Vt(l,s.from),to:Vt(l,s.to)}),t=Ft(this.chartElement,["paddingLeft","paddingTop"]),e=t.paddingLeft,i=t.paddingTop,this.options=wt({},{width:a.width(),height:h.height()+Un,padding:{left:e,top:i},offset:{left:h.x2+e,top:h.y1+i},from:s.min,to:s.max},s)},destroy:function(){if(this._domEvents&&(this._domEvents.destroy(),delete this._domEvents),clearTimeout(this._mwTimeout),this._state=null,this.wrapper){var t;Gt(this.wrapper,(t={},t[Si]=this._mousewheelHandler,t)),this.chartElement.removeChild(this.wrapper)}},_rangeEventArgs:function(t){return{axis:this.categoryAxis.options,from:this._value(t.from),to:this._value(t.to)}},_start:function(t){var e,i=this.options,n=bt(t);!this._state&&n&&(this.chart._unsetActivePoint(),this._state={moveTarget:k(n)||n,startLocation:t.x?t.x.location:0,range:{from:this._index(i.from),to:this._index(i.to)}},e=this._rangeEventArgs({from:this._index(i.from),to:this._index(i.to)}),this.trigger(gi,e)&&(this._state=null))},_press:function(t){var e;e=this._state?this._state.moveTarget:k(bt(t)),e&&q.addClass(e,"k-handle-active")},_move:function(t){var e,i,n,s,o,r,a,h,l,c,u,p,d,g,f;this._state&&(e=this,i=e._state,n=e.options,s=e.categoryAxis.options.categories,o=i.range,r=i.moveTarget,a=this._index(n.from),h=this._index(n.to),l=this._index(n.min),c=this._index(n.max),u=i.startLocation-t.x.location,p={from:o.from,to:o.to},d=o.to-o.from,g=Ft(this.wrapper,"width").width/(s.length-1),f=Math.round(u/g),r&&(Ht(r,"k-selection k-selection-bg")?(o.from=Math.min(Math.max(l,a-f),c-d),o.to=Math.min(o.from+d,c)):Ht(r,"k-left-handle")?(o.from=Math.min(Math.max(l,a-f),c-1),o.to=Math.max(o.from+1,o.to)):Ht(r,"k-right-handle")&&(o.to=Math.min(Math.max(l+1,h-f),c),o.from=Math.min(o.to-1,o.from)),o.from===p.from&&o.to===p.to||(this.move(o.from,o.to),this.trigger(fi,this._rangeEventArgs(o)))))},_end:function(){var t,e;this._state&&(t=this._state.moveTarget,t&&q.removeClass(t,"k-handle-active"),e=this._state.range,this.set(e.from,e.to),this.trigger(xi,this._rangeEventArgs(e)),delete this._state)},_tap:function(t){var e=this,i=e.options,n=e.categoryAxis,s=this.chart._eventCoordinates(t),o=n.pointCategoryIndex(new dt(s.x,n.box.y1)),r=this._index(i.from),a=this._index(i.to),h=this._index(i.min),l=this._index(i.max),c=a-r,u=r+c/2,p={},d=3===t.event.which,g=Math.round(u-o);this._state||d||(this.chart._unsetActivePoint(),n.options.justified||g--,p.from=Math.min(Math.max(h,r-g),l-c),p.to=Math.min(p.from+c,l),this._start(t),this._state&&(this._state.range=p,this.trigger(fi,this._rangeEventArgs(p)),this._end()))},_mousewheel:function(t){var e,i=this,n=q.mousewheelDelta(t);this._start({target:this.selection}),this._state&&(e=this._state.range,t.preventDefault(),t.stopPropagation(),Math.abs(n)>1&&(n*=Wn),this.options.mousewheel.reverse&&(n*=-1),this.expand(n)&&this.trigger(fi,{axis:this.categoryAxis.options,delta:n,originalEvent:t,from:this._value(e.from),to:this._value(e.to)}),this._mwTimeout&&clearTimeout(this._mwTimeout),this._mwTimeout=setTimeout(function(){i._end()},ki))},_gesturestart:function(t){var e,i=this.options;this._state={range:{from:this._index(i.from),to:this._index(i.to)}},e=this._rangeEventArgs(this._state.range),this.trigger(gi,e)?this._state=null:t.preventDefault()},_gestureend:function(){this._state&&(this.trigger(xi,this._rangeEventArgs(this._state.range)),delete this._state)},_gesturechange:function(t){var e=this,i=e.chart,n=e._state,s=e.options,o=e.categoryAxis,r=n.range,a=i._toModelCoordinates(t.touches[0].x.location).x,h=i._toModelCoordinates(t.touches[1].x.location).x,l=Math.min(a,h),c=Math.max(a,h);t.preventDefault(),r.from=o.pointCategoryIndex(new dt(l))||s.min,r.to=o.pointCategoryIndex(new dt(c))||s.max,this.move(r.from,r.to),this.trigger(fi,this._rangeEventArgs(r))},_index:function(t){var e=t;return t instanceof Date&&(e=this.categoryAxis.categoryIndex(t)),e},_value:function(t){var e=this.categoryAxis.options.categories,i=t;return this._dateAxis&&(i=t>e.length-1?this.options.max:e[Math.ceil(t)]),i},_slot:function(t){var e=this.categoryAxis,i=this._index(t);return e.getSlot(i,i,!0)},move:function(t,e){var i,n,s=this.options,o=s.offset,r=s.padding,a=s.selection.border,h=this._slot(t),l=Ot(h.x1-o.left+r.left);Ft(this.leftMask,{width:l}),Ft(this.selection,{left:l}),h=this._slot(e),i=Ot(s.width-(h.x1-o.left+r.left)),Ft(this.rightMask,{width:i}),n=s.width-i,n!==s.width&&(n+=a.right),Ft(this.rightMask,{left:n}),Ft(this.selection,{width:Math.max(s.width-(l+i)-a.right,0)})},set:function(t,e){var i=this.options,n=this._index(i.min),s=this._index(i.max),o=Pt(this._index(t),n,s),r=Pt(this._index(e),o+1,s);i.visible&&this.move(o,r),i.from=this._value(o),i.to=this._value(r)},expand:function(t){var e=this.options,i=this._index(e.min),n=this._index(e.max),s=e.mousewheel.zoom,o=this._index(e.from),r=this._index(e.to),a={from:o,to:r},h=wt({},a);if(this._state&&(a=this._state.range),s!==st&&(a.from=Pt(Pt(o-t,0,r-1),i,n)),s!==J&&(a.to=Pt(Pt(r+t,a.from+1,n),i,n)),a.from!==h.from||a.to!==h.to)return this.set(a.from,a.to),!0},getValueAxis:function(t){var e,i,n=t.pane.axes,s=n.length;for(e=0;e0&&(i=o[0],n=this.plotArea.categoryAxis.getSlot(i.categoryIx),s=e?this._slotAnchor(e,n):this._defaultAnchor(i,n),this.show({anchor:s,shared:!0,points:t,category:i.category,categoryText:this.formatService.auto(this.options.categoryFormat,i.category),series:this.plotArea.series},this.options))},_slotAnchor:function(t,e){var i=this.plotArea.categoryAxis,n={horizontal:"left",vertical:"center"};return i.options.vertical||(t.x=e.center().x),{point:t,align:n}},_defaultAnchor:function(t,e){var i,n=t.owner.pane.chartsBox(),s=this.plotArea.categoryAxis.options.vertical,o=n.center(),r=e.center(),a={horizontal:"center",vertical:"center"};return i=s?new dt(o.x,r.y):new dt(r.x,o.y),{point:i,align:a}}}),xt(Zn,{categoryFormat:"{0:d}"}),jn=Xt.extend({setup:function(){var t,e,i=this,n=i.element,s=i.options,o=n.bbox();o?(this.origin=s.origin,t=s.vertical?it:nt,e=this.fromScale=new Qt(1,1),e[t]=ge,n.transform($t().scale(e.x,e.y))):this.abort()},step:function(t){var e=q.interpolateValue(this.fromScale.x,1,t),i=q.interpolateValue(this.fromScale.y,1,t);this.element.transform($t().scale(e,i,this.origin))},abort:function(){Xt.fn.abort.call(this),this.element.transform(null)}}),xt(jn,{duration:le}),Yt.current.register(Pe,jn),Kn=Xt.extend({setup:function(){var t=this.center=this.element.bbox().center();this.element.transform($t().scale(ge,ge,t))},step:function(t){this.element.transform($t().scale(t,t,this.center))}}),xt(Kn,{easing:"easeOutElastic"}),Yt.current.register(Ee,Kn),Qn=Xt.extend({setup:function(){this.fadeTo=this.element.opacity(),this.element.opacity(0)},step:function(t){this.element.opacity(t*this.fadeTo)}}),xt(Qn,{duration:200,easing:"linear"}),Yt.current.register(ce,Qn),$n=Xt.extend({setup:function(){this.element.transform($t().scale(ge,ge,this.options.center))},step:function(t){this.element.transform($t().scale(t,t,this.options.center))}}),xt($n,{easing:"easeOutElastic",duration:le}),Yt.current.register(Fe,$n),Jn=cn.extend({render:function(){cn.fn.render.call(this),this.renderSegments()},createSegment:function(t,e,i){var n,s=e.style;return new(n=s===Se?Hi:Di)(t,e,i)},animationPoints:function(){var t=cn.fn.animationPoints.call(this);return t.concat(this._segments)},createMissingValue:function(t,e){if(e===be){var i={x:t.x,y:t.y};return h(i.x)||(i.x=0),h(i.y)||(i.y=0),i}}}),wt(Jn.prototype,Ni),ts=bn.extend({initFields:function(){this.namedXAxes={},this.namedYAxes={},this.xAxisRangeTracker=new Ki,this.yAxisRangeTracker=new Ki},render:function(t){var e,i,n,s,o,r=this;for(void 0===t&&(t=this.panes),e=this.groupSeriesByPane(),i=0;i0&&this.appendChart(new cn(this,{series:t,clip:e.options.clip}),e)},createScatterLineChart:function(t,e){t.length>0&&this.appendChart(new Jn(this,{series:t,clip:e.options.clip}),e)},createBubbleChart:function(t,e){t.length>0&&this.appendChart(new pn(this,{series:t,clip:e.options.clip}),e)},createXYAxis:function(t,e,i){var n,s,o,r,a,h,l,c,u=t.name,p=e?this.namedYAxes:this.namedXAxes,d=e?this.yAxisRangeTracker:this.xAxisRangeTracker,g=wt({},t,{vertical:e}),f=x(g.type,_i),v=d.query(),m=f?{min:.1,max:1}:{min:0,max:1},y=d.query(u)||v||m,_=[g.min,g.max],w=this.series;for(n=0;n0&&p.length>0&&t.trigger(i,{element:bt(e),originalEvent:e,x:y(u),y:y(p)})},updateAxisOptions:function(t,e){var i=t.options.vertical,n=this.groupAxes(this.panes),s=(i?n.y:n.x).indexOf(t),o=[].concat(i?this.options.yAxis:this.options.xAxis)[s];wt(o,e)}}),xt(ts,{xAxis:{},yAxis:{}}),wt(ts.prototype,An),es=pt.extend({init:function(t,e,i){pt.fn.init.call(this,i),this.value=t,this.sector=e},render:function(){var t,e,i,n=this.options.labels,s=this.owner.chartService,o=this.value;this._rendered||this.visible===!1||(this._rendered=!0,n.template?(t=Ct.compile(n.template),o=t({dataItem:this.dataItem,category:this.category,value:this.value,series:this.series,percentage:this.percentage})):n.format&&(o=s.format.auto(n.format,o)),n.visible&&o&&(n.position===K||n.position===bi?(n.color||(e=new jt(this.options.color).percBrightness(),n.color=e>180?ot:tt),n.background||(n.background=this.options.color)):(i=s.theme.seriesDefaults.labels,n.color=n.color||i.color,n.background=n.background||i.background),this.label=new St(o,wt({},n,{align:K,vAlign:"",animation:{type:ce,delay:this.animationDelay}})),this.append(this.label)))},reflow:function(t){this.render(),this.box=t,this.reflowLabel()},reflowLabel:function(){var t,e,i,n,s=this,o=s.options.labels,r=s.label,a=this.sector.clone(),h=o.distance,l=a.middle();r&&(t=r.box.height(),e=r.box.width(),o.position===K?(a.radius=Math.abs((a.radius-t)/2)+t,i=a.point(l),r.reflow(new gt(i.x,i.y-t/2,i.x,i.y))):o.position===bi?(a.radius=a.radius-t/2,i=a.point(l),r.reflow(new gt(i.x,i.y-t/2,i.x,i.y))):(i=a.clone().expand(h).point(l),i.x>=a.center.x?(n=i.x+e,r.orientation=st):(n=i.x-e,r.orientation=J),r.reflow(new gt(n,i.y-t,i.x,i.y))))},createVisual:function(){var t,e,i=this,n=this,s=n.sector,o=n.options;pt.fn.createVisual.call(this),this.value&&(o.visual?(t=(s.startAngle+180)%360,e=o.visual({category:this.category,dataItem:this.dataItem,value:this.value,series:this.series,percentage:this.percentage,center:new Qt(s.center.x,s.center.y),radius:s.radius,innerRadius:s.innerRadius,startAngle:t,endAngle:t+s.angle,options:o,sender:this.getSender(),createVisual:function(){var t=new Zt;return i.createSegmentVisual(t),t}}),e&&this.visual.append(e)):this.createSegmentVisual(this.visual))},createSegmentVisual:function(t){var e=this,i=e.sector,n=e.options,s=n.border||{},o=s.width>0?{stroke:{color:s.color,width:s.width,opacity:s.opacity,dashType:s.dashType}}:{},a=n.color,h={color:a,opacity:n.opacity},l=this.createSegment(i,wt({fill:h,stroke:{opacity:n.opacity},zIndex:n.zIndex},o));t.append(l),r(n)&&t.append(this.createGradientOverlay(l,{baseColor:a,fallbackFill:h},wt({center:[i.center.x,i.center.y],innerRadius:i.innerRadius,radius:i.radius,userSpace:!0},n.overlay)))},createSegment:function(t,e){return e.singleSegment?new Wt.Circle(new Kt.Circle(new Qt(t.center.x,t.center.y),t.radius),e):q.ShapeBuilder.current.createRing(t,e)},createAnimation:function(){var t=this,e=t.options,i=t.sector.center;wt(e,{animation:{center:[i.x,i.y],delay:this.animationDelay}}),pt.fn.createAnimation.call(this)},createHighlight:function(t){var e=this.options.highlight||{},i=e.border||{};return this.createSegment(this.sector,wt({},t,{fill:{color:e.color,opacity:e.opacity},stroke:{opacity:i.opacity,width:i.width,color:i.color}}))},highlightVisual:function(){return this.visual.children[0]},highlightVisualArgs:function(){var t=this.sector;return{options:this.options,radius:t.radius,innerRadius:t.innerRadius,center:new Qt(t.center.x,t.center.y),startAngle:t.startAngle,endAngle:t.angle+t.startAngle,visual:this.visual}},tooltipAnchor:function(){var t=this.sector.clone().expand(de),e=t.middle(),i=t.point(e);return{point:i,align:P(e+180)}},formatValue:function(t){return this.owner.formatPointValue(this,t)}}),is=Ot(q.rad(30),at),ns=Ot(q.rad(60),at),xt(es,{color:tt,overlay:{gradient:"roundedBevel"},border:{width:.5},labels:{visible:!1,distance:35,font:X.DEFAULT_FONT,margin:Tt(.5),align:et,zIndex:1,position:Ci},animation:{type:Fe},highlight:{visible:!0,border:{width:1}},visible:!0}),wt(es.prototype,Mi),ss={createLegendItem:function(t,e,i){var n,s,o,r,a,h=this.options.legend||{},l=h.labels||{},c=h.inactiveItems||{},u=c.labels||{};i&&i.visibleInLegend!==!1&&(n=i.visible!==!1,s=n?l.template:u.template||l.template,o=i.category||"",s&&(o=Ct.compile(s)({text:o,series:i.series,dataItem:i.dataItem,percentage:i.percentage,value:t})),n?(r={},a=e.color):(r={color:u.color,font:u.font},a=(c.markers||{}).color),o&&this.legendItems.push({pointIndex:i.index,text:o,series:i.series,markerColor:a,labels:r}))}},os=70,rs=pt.extend({init:function(t,e){pt.fn.init.call(this,e),this.plotArea=t,this.chartService=t.chartService,this.points=[],this.legendItems=[],this.render()},render:function(){this.traverseDataPoints(this.addValue.bind(this))},traverseDataPoints:function(t){var e,i,n,s,o,r,a,h,l,c,u,p,d,g,f,x,v,m=this,y=this,_=y.options,w=y.plotArea.options.seriesColors;for(void 0===w&&(w=[]),e=w.length,i=_.series,n=i.length,s=0;so-n?o-n:d,a.translate(l.x-h.x,l.y-h.y),g=o-d,f=new dt(g+a.x1+d,g+a.y1+d),x=0;x0&&(u.sort(this.labelComparator(!0)),this.leftLabelsReflow(u)),p.length>0&&(p.sort(this.labelComparator(!1)),this.rightLabelsReflow(p)),this.box=a},leftLabelsReflow:function(t){var e=this.distanceBetweenLabels(t);this.distributeLabels(e,t)},rightLabelsReflow:function(t){var e=this.distanceBetweenLabels(t);this.distributeLabels(e,t)},distanceBetweenLabels:function(t){var e,i,n=Rt(this.points),s=n.sector,o=t.length-1,r=s.radius+n.options.labels.distance,a=[],h=t[0].box,l=Ot(h.y1-(s.center.y-r-h.height()-h.height()/2));for(a.push(l),e=0;e0&&(i>=0||n0&&(s=Math.min(t[i],o),o-=s,t[i]-=s,t[e]+=s),o},reflowLabels:function(t,e){var i,n,s,o,r=this,a=Rt(this.points),h=a.sector,l=a.options.labels,c=e.length,u=l.distance,p=h.center.y-(h.radius+u)-e[0].box.height();for(t[0]+=2,n=0;ni.center.x?(u=i.center.x-i.radius-y,e.options.labels.align!==Me?u>c.x?r.lineTo(u,l.y):r.lineTo(l.x-2*y,l.y):r.lineTo(u,l.y),r.lineTo(c.x,p.y)):(d.y=p.y,r.lineTo(d.x,d.y))),r.lineTo(p.x,p.y),g._connectorLines.push(r),g.visual.append(r)))},labelComparator:function(t){var e=t?-1:1;return function(t,i){var n=(t.parent.sector.middle()+270)%360,s=(i.parent.sector.middle()+270)%360;return(n-s)*e}},hAlignLabel:function(t,e,i,n,s){var o=e.radius,r=e.center,a=r.x,h=r.y,l=Math.min(Math.abs(h-i),Math.abs(h-n));return l>o?t:a+Math.sqrt(o*o-l*l)*(s?1:-1)},pointInCircle:function(t,e,i){return Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)m-x?m-x:b,e=m-b,i=0,s=0;s0&&n&&(o=n.linePoints.slice(0).reverse()),t.push(t[0]),s=new bs(t,o,e,i)),s},seriesMissingValues:function(t){return t.missingValues||be}}),Cs=hs.extend({init:function(t,e){hs.fn.init.call(this,t,null,e)}}),xt(Cs,{overlay:{gradient:"none"},labels:{distance:10}}),Ss=pt.extend({reflow:function(t){var e,i,n=this,s=n.options,o=n.children,r=s.gap,a=s.spacing,h=o.length,l=h+r+a*(h-1),c=t.angle/l,u=t.startAngle+c*(r/2);for(e=0;e=0&&e1,n.isStacked100=i&&"100%"===i.type&&e.length>1,n.isStacked100&&(this._isStacked100=!0)),n},createAreaChart:function(t,e){if(0!==t.length){var i=new As(this,this.chartOptions(t));this.appendChart(i,e)}},createLineChart:function(t,e){if(0!==t.length){var i=new _s(this,this.chartOptions(t));this.appendChart(i,e)}},createBarChart:function(t,e){var i,n,s;0!==t.length&&(i=t[0],n=this.chartOptions(t),n.gap=i.gap,n.spacing=i.spacing,s=new Ts(this,n),this.appendChart(s,e),this._hasBarCharts=!0)},seriesCategoryAxis:function(){return this.categoryAxis},_dispatchEvent:function(t,e,i){var n=t._eventCoordinates(e),s=new dt(n.x,n.y),o=this.categoryAxis.getCategory(s),r=this.valueAxis.getValue(s);null!==o&&null!==r&&t.trigger(i,{element:bt(e),category:o,value:r})},createCrosshairs:function(){}}),wt(Ps.prototype,An,{appendChart:Vn.prototype.appendChart,aggregateSeries:Vn.prototype.aggregateSeries}),xt(Ps,{categoryAxis:{categories:[]},valueAxis:{}}),Rs=pt.extend({init:function(t,e,i){pt.fn.init.call(this,e),this.value=t,this.options.index=i.index},reflow:function(t){var e=this.points,i=this.children[0];this.box=new gt(e[0].x,e[0].y,e[1].x,e[2].y),i&&i.reflow(new gt(t.x1,e[0].y,t.x2,e[2].y))},createVisual:function(){var t,e=this,i=this.options;pt.fn.createVisual.call(this),t=i.visual?i.visual({category:this.category,dataItem:this.dataItem,value:this.value,series:this.series,percentage:this.percentage,points:this.points,options:i,sender:this.getSender(),createVisual:function(){return e.createPath()}}):this.createPath(),t&&this.visual.append(t)},createPath:function(){var t=this.options,e=t.border,i=Ut.fromPoints(this.points,{fill:{color:t.color,opacity:t.opacity},stroke:{color:e.color,opacity:e.opacity,width:e.width}}).close();return i},createHighlight:function(t){return Ut.fromPoints(this.points,t)},highlightVisual:function(){return this.visual.children[0]},highlightVisualArgs:function(){var t=Ut.fromPoints(this.points).close();return{options:this.options,path:t}},tooltipAnchor:function(){var t=this.box;return{point:new dt(t.center().x,t.y1),align:{horizontal:"center",vertical:"top"}}},formatValue:function(t){var e=this;return e.owner.formatPointValue(e,t)}}),xt(Rs,{color:tt,border:{width:1}}),wt(Rs.prototype,Mi),Es=pt.extend({init:function(t,e){pt.fn.init.call(this,e),this.plotArea=t,this.points=[],this.labels=[],this.legendItems=[],this.render()},formatPointValue:function(t,e){return this.chartService.format.auto(e,t.value)},render:function(){var t,e,i,n,s,o,r,a,h,l,c=this,u=this,p=u.options,d=u.plotArea.options.seriesColors;if(void 0===d&&(d=[]),t=p.series[0],e=t.data)for(i=E(t),n=0;n180?ot:tt,a.background||(a.background=o.color)),this.evalSegmentOptions(a,t,e),s=new St(h,wt({vAlign:a.position},a)),this.labels.push(s),s},labelPadding:function(){var t,e,i,n,s=this.labels,o={left:0,right:0};for(t=0;ty.percentage&&(y=x[n]);for(s=m.percentage/y.percentage*e,o=(e-s)/2,r=0,a=0;a0||e.height>0)&&(!i||e.width!==i.width||e.height!==i.height))&&(this._size=e,this._resize(e,t),this.trigger("resize",e))},_resize:function(){this._noTransitionsRedraw()},redraw:function(t){var e,i;this.applyDefaults(this.options),this.applySeriesColors(),t?(e=this._model._plotArea,i=e.findPane(t),e.redraw(i)):this._redraw()},getAxis:function(t){var e,i=this._plotArea.axes;for(e=0;e=0&&(n=this._plotArea.pointsByCategoryIndex(i),r.showAt(n)):e&&r.show(e)},hideTooltip:function(){this._tooltip.hide()},_initSurface:function(){var t=this.surface,e=this._surfaceWrap(),i=this.options.chartArea;i.width&&q.elementSize(e,{width:i.width}),i.height&&q.elementSize(e,{height:i.height}),t&&t.options.type===this.options.renderAs?(this.surface.clear(),this.surface.resize()):(t&&t.destroy(),this.surface=Wt.Surface.create(e,{type:this.options.renderAs}))},_surfaceWrap:function(){return this.element},_redraw:function(){var t=this._getModel();this._destroyView(),this._model=t,this._plotArea=t._plotArea,t.renderVisual(),this.options.transitions!==!1&&t.traverse(function(t){t.animation&&t.animation.setup()}),this._initSurface(),this.surface.draw(t.visual),this.options.transitions!==!1&&t.traverse(function(t){t.animation&&t.animation.play()}),this._tooltip=this._createTooltip(),this._highlight=new Mn,this._setupSelection(),this._createPannable(),this._createZoomSelection(),this._createMousewheelZoom(),this.trigger(vi),this._navState||this._cancelDomEvents()},exportVisual:function(t){var e,i,n,s;return t&&(t.width||t.height)?(i=this.options.chartArea,n=this._originalOptions.chartArea,wt(i,t),s=this._getModel(),i.width=n.width,i.height=n.height,s.renderVisual(),e=s.visual):e=this.surface.exportVisual(),e},_sharedTooltip:function(){return this._plotArea instanceof Vn&&this.options.tooltip.shared},_createPannable:function(){var t=this.options;t.pannable!==!1&&(this._pannable=new Ln(this._plotArea,t.pannable))},_createZoomSelection:function(){var t=this.options.zoomable,e=(t||{}).selection;t!==!1&&e!==!1&&(this._zoomSelection=new Bn(this,e))},_createMousewheelZoom:function(){var t=this.options.zoomable,e=(t||{}).mousewheel;t!==!1&&e!==!1&&(this._mousewheelZoom=new On(this,e))},_createTooltip:function(){var t,e=this,i=e.options.tooltip;return t=this._sharedTooltip()?this._createSharedTooltip(i):new Yn(this.chartService,i)},_createSharedTooltip:function(t){return new Zn(this._plotArea,t)},applyDefaults:function(t,e){B(t,e),O(t,e)},applySeriesColors:function(){var t,e,i,n,s=this.options,o=s.series,r=s.seriesColors||[];for(t=0;t=0&&this.observers.splice(e,1)},requiresHandlers:function(t){var e,i=this.observers;for(e=0;e=.1&&(i=Math.round(10*i),this._gestureDistance=t.distance,n={delta:i,axisRanges:D(this._plotArea.axes),originalEvent:t},!this._zooming&&this.trigger(ui,n)||(this._zooming||(this._zooming=!0),s=n.axisRanges=o.updateRanges(i),s&&!this.trigger(pi,n)&&o.zoom())))},_mouseout:function(t){if(t.element){var e=this._drawingChartElement(t.element,t);e&&e.leave&&e.leave(this,t.originalEvent)}},_start:function(t){var e=this._eventCoordinates(t);!this._stopDragEvent(t)&&this._plotArea.backgroundContainsPoint(e)&&(this.requiresHandlers([ci,hi,li])&&this._startNavigation(t,e,ci),this._pannable&&this._pannable.start(t)&&(this.surface.suspendTracking(),this._unsetActivePoint(),this._suppressHover=!0),this._zoomSelection&&this._zoomSelection.start(t)&&this.trigger(ui,{axisRanges:D(this._plotArea.axes),originalEvent:t}))},_move:function(t){var e,i,n,s,o,r,a,h,l=this,c=l._navState,u=l._pannable;if(!this._stopDragEvent(t)){if(u)e=u.move(t),e&&!this.trigger(hi,{axisRanges:e,originalEvent:t})&&u.pan();else if(c){for(i={},n=c.axes,s=0;s0&&!this.trigger(oi,o)?(a.visible&&c.showAt(n,t),u.show(n)):c.hide(),this._tooltipCategoryIx=i))},hideElements:function(){var t=this,e=t._plotArea,i=t._tooltip,n=t._highlight;this._mousemove.cancel(),e.hideCrosshairs(),n.hide(),i.hide(),delete this._tooltipCategoryIx},_unsetActivePoint:function(){var t=this,e=t._tooltip,i=t._highlight;this._activePoint=null,e&&e.hide(),i&&i.hide()},_deferRedraw:function(){this._redraw()},_clearRedrawTimeout:function(){this._redrawTimeout&&(clearInterval(this._redrawTimeout),this._redrawTimeout=null)},bindCategories:function(){var t,e,i=this,n=this.options,s=[].concat(n.categoryAxis);for(t=0;t0)for(n=v(t,i(o.categoryField,a[0])),l=n?_:i,c=0;c0&&(n&&(y=H(y,function(t,e){return q.dateComparer(t[0],e[0])})),d=N(y),t.categories=d[0])},_isBindable:function(t){var e,i,n=ie.current.valueFields(t),s=!0;for(e=0;e0;)i.shift().destroy();this._unsetActivePoint(),this._tooltip&&this._tooltip.destroy(),this._highlight&&this._highlight.destroy(),this._zoomSelection&&(this._zoomSelection.destroy(),delete this._zoomSelection),this._pannable&&(this._pannable.destroy(),delete this._pannable),this._mousewheelZoom&&(this._mousewheelZoom.destroy(),delete this._mousewheelZoom)}}),xt(Ws,{renderAs:"",chartArea:{},legend:{visible:!0,labels:{}},categoryAxis:{},seriesDefaults:{type:Me,data:[],highlight:{visible:!0},labels:{},negativeValues:{visible:!1}},series:[],seriesColors:null,tooltip:{visible:!1},transitions:!0,valueAxis:{},plotArea:{},title:{},xAxis:{},yAxis:{},panes:[{}],pannable:!1,zoomable:!1}),kendo.deepExtend(kendo.dataviz,{constants:Ti,Aggregates:ee,AreaChart:ji,AreaSegment:Xi,AxisGroupRangeTracker:Ki,Bar:Ji,BarChart:nn,BarLabel:Qi,BoxPlotChart:hn,BoxPlot:rn,BubbleChart:pn,Bullet:gn,BulletChart:fn,CandlestickChart:on,Candlestick:sn,CategoricalChart:Vi,CategoricalErrorBar:Ei,CategoricalPlotArea:Vn,Chart:Ws,ChartContainer:yn,ClipAnimation:Gi,ClusterLayout:tn,Crosshair:mn,CrosshairTooltip:vn,DefaultAggregates:Sn,DonutChart:cs,DonutPlotArea:us,DonutSegment:hs,ErrorBarBase:Ri,ErrorRangeCalculator:ae,Highlight:Mn,SharedTooltip:Zn,Legend:Gn,LegendItem:Dn,LegendLayout:zn,LineChart:Wi,LinePoint:zi,LineSegment:Di,Pane:_n,PieAnimation:$n,PieChart:rs,PieChartMixin:ss,PiePlotArea:as,PieSegment:es,PlotAreaBase:bn,PlotAreaEventsMixin:An,PlotAreaFactory:qn,PointEventsMixin:Mi,RangeBar:kn,RangeBarChart:Tn,ScatterChart:cn,ScatterErrorBar:ln,ScatterLineChart:Jn,Selection:Xn,SeriesAggregator:Cn,SeriesBinder:ie,SplineSegment:Hi,SplineAreaSegment:Zi,StackWrap:en,Tooltip:Yn,OHLCChart:Rn,OHLCPoint:Pn,WaterfallChart:In,WaterfallSegment:En,XYPlotArea:ts,MousewheelZoom:On,ZoomSelection:Bn,Pannable:Ln,ChartAxis:Jt,ChartPlotArea:te,anyHasZIndex:o,appendIfNotNull:a,areNumbers:a,categoriesCount:s,countNumbers:e,equalsIgnoreCase:x,evalOptions:n,filterSeriesByType:f,getDateField:_,getField:i,hasGradientOverlay:r,hasValue:h,isDateAxis:v,segmentVisible:R,seriesTotal:E,singleItemOrArray:y})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(t,e,i){(i||e)()}),function(t,define){define("dataviz/chart/chart.min",["dataviz/chart/kendo-chart.min","kendo.data.min","kendo.dataviz.core.min","kendo.dataviz.themes.min","kendo.drawing.min","kendo.userevents.min"],t)}(function(){return function(t,e){function i(t){o.fn[t]=function(){var e=this._instance;if(e)return e[t].apply(e,arguments)}}function n(t,i){var n,s,o,r=[],a=t.groupNameTemplate,h=i.length;if(0===h)return o=S({},t),o.visibleInLegend=!1,[o];for(k(a)?(f.logToConsole("'groupNameTemplate' is obsolete and will be removed in future versions. Specify the group name template as 'series.name'"),a&&(n=L(a))):(n=L(t.name||""),0===n._slotCount&&(n=L(k(t.name)?"#= group.value #: #= series.name #":"#= group.value #"))),s=0;s=0?(n=a.pointVisibility=a.pointVisibility||{},s=n[i],n[i]=!!k(s)&&!s):(a.visible=!a.visible,this._seriesVisibility.save(a)),o._noTransitionsRedraw()},_createTooltip:function(){return new c(this.element,this.options.tooltip)},_tooltipleave:function(){var t=this._instance,e=t._plotArea,i=t._highlight;e.hideCrosshairs(),i.hide()},_bindData:function(t){var e,i,s,o=this,r=o.options,a=o._sourceSeries||r.series,h=a.length,l=o.dataSource.view(),c=(o.dataSource.group()||[]).length>0,u=[],p=this._seriesVisibility;for(e=0;e0,o=n,r=i.options,a=[].concat(r.categoryAxis);for(s&&n.length&&(o=n[0].items),t=0;t