UNPKG

swagger-stats

Version:

API Telemetry and APM. Trace API calls and Monitor API performance, health and usage statistics in Node.js Microservices, based on express routes and Swagger (Open API) specification

20 lines 116 kB
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-461883cd"],{"0a77":function(t,e,i){"use strict"; /** * @license * Copyright 2012 Dan Vanderkam (danvdk@gmail.com) * MIT-licensed (http://opensource.org/licenses/MIT) */var a=function(){this.title_div_=null,this.xlabel_div_=null,this.ylabel_div_=null,this.y2label_div_=null};a.prototype.toString=function(){return"ChartLabels Plugin"},a.prototype.activate=function(t){return{layout:this.layout,didDrawChart:this.didDrawChart}};var n=function(t){var e=document.createElement("div");return e.style.position="absolute",e.style.left=t.x+"px",e.style.top=t.y+"px",e.style.width=t.w+"px",e.style.height=t.h+"px",e};a.prototype.detachLabels_=function(){for(var t=[this.title_div_,this.xlabel_div_,this.ylabel_div_,this.y2label_div_],e=0;e<t.length;e++){var i=t[e];i&&(i.parentNode&&i.parentNode.removeChild(i))}this.title_div_=null,this.xlabel_div_=null,this.ylabel_div_=null,this.y2label_div_=null};var r=function(t,e,i,a,n){var r=document.createElement("div");r.style.position="absolute",r.style.left=1==i?"0px":e.x+"px",r.style.top=e.y+"px",r.style.width=e.w+"px",r.style.height=e.h+"px",r.style.fontSize=t.getOption("yLabelWidth")-2+"px";var o=document.createElement("div");o.style.position="absolute",o.style.width=e.h+"px",o.style.height=e.w+"px",o.style.top=e.h/2-e.w/2+"px",o.style.left=e.w/2-e.h/2+"px",o.className="dygraph-label-rotate-"+(1==i?"right":"left");var s=document.createElement("div");return s.className=a,s.innerHTML=n,o.appendChild(s),r.appendChild(o),r};a.prototype.layout=function(t){this.detachLabels_();var e=t.dygraph,i=t.chart_div;if(e.getOption("title")){var a=t.reserveSpaceTop(e.getOption("titleHeight"));this.title_div_=n(a),this.title_div_.style.fontSize=e.getOption("titleHeight")-8+"px";var o=document.createElement("div");o.className="dygraph-label dygraph-title",o.innerHTML=e.getOption("title"),this.title_div_.appendChild(o),i.appendChild(this.title_div_)}if(e.getOption("xlabel")){var s=t.reserveSpaceBottom(e.getOption("xLabelHeight"));this.xlabel_div_=n(s),this.xlabel_div_.style.fontSize=e.getOption("xLabelHeight")-2+"px";o=document.createElement("div");o.className="dygraph-label dygraph-xlabel",o.innerHTML=e.getOption("xlabel"),this.xlabel_div_.appendChild(o),i.appendChild(this.xlabel_div_)}if(e.getOption("ylabel")){var l=t.reserveSpaceLeft(0);this.ylabel_div_=r(e,l,1,"dygraph-label dygraph-ylabel",e.getOption("ylabel")),i.appendChild(this.ylabel_div_)}if(e.getOption("y2label")&&2==e.numAxes()){var h=t.reserveSpaceRight(0);this.y2label_div_=r(e,h,2,"dygraph-label dygraph-y2label",e.getOption("y2label")),i.appendChild(this.y2label_div_)}},a.prototype.didDrawChart=function(t){var e=t.dygraph;this.title_div_&&(this.title_div_.children[0].innerHTML=e.getOption("title")),this.xlabel_div_&&(this.xlabel_div_.children[0].innerHTML=e.getOption("xlabel")),this.ylabel_div_&&(this.ylabel_div_.children[0].children[0].innerHTML=e.getOption("ylabel")),this.y2label_div_&&(this.y2label_div_.children[0].children[0].innerHTML=e.getOption("y2label"))},a.prototype.clearChart=function(){},a.prototype.destroy=function(){this.detachLabels_()},e["a"]=a},"0a79":function(t,e,i){"use strict";(function(t){var a=i("d9ce"),n=i("5261"),r=i("8748"),o=i("d84a"),s=i("5337"),l=i("bde9"),h=i("34cf"),u=(i("96c7"),i("fc5c")),c=i("4590"),d=i("3220"),p=i("5176"),g=i("52b9"),_=i("4d71"),f=i("2f43"),v=i("a988"),y=i("5c94"),x=i("0a77"),m=i("b157"),b=i("2648"),w=i("9c6a"),A=i("3501"),D=function(t,e,i){this.__init__(t,e,i)};function S(t){const e=t[0],i=e[0];if("number"!==typeof i&&!l["C"](i))throw new Error(`Expected number or date but got ${typeof i}: ${i}.`);for(let a=1;a<e.length;a++){const t=e[a];if(null!==t&&void 0!==t&&("number"!==typeof t&&!l["A"](t)))throw new Error(`Expected number or array but got ${typeof t}: ${t}.`)}}D.NAME="Dygraph",D.VERSION="2.0.0",D.DEFAULT_ROLL_PERIOD=1,D.DEFAULT_WIDTH=480,D.DEFAULT_HEIGHT=320,D.ANIMATION_STEPS=12,D.ANIMATION_DURATION=200,D.Plotters=n["a"]._Plotters,D.addedAnnotationCSS=!1,D.prototype.__init__=function(t,e,i){if(this.is_initial_draw_=!0,this.readyFns_=[],null!==i&&void 0!==i||(i={}),i=D.copyUserAttrs_(i),"string"==typeof t&&(t=document.getElementById(t)),!t)throw new Error("Constructing dygraph with a non-existent div!");this.maindiv_=t,this.file_=e,this.rollPeriod_=i.rollPeriod||D.DEFAULT_ROLL_PERIOD,this.previousVerticalX_=-1,this.fractions_=i.fractions||!1,this.dateWindow_=i.dateWindow||null,this.annotations_=[],t.innerHTML="",""===t.style.width&&i.width&&(t.style.width=i.width+"px"),""===t.style.height&&i.height&&(t.style.height=i.height+"px"),""===t.style.height&&0===t.clientHeight&&(t.style.height=D.DEFAULT_HEIGHT+"px",""===t.style.width&&(t.style.width=D.DEFAULT_WIDTH+"px")),this.width_=t.clientWidth||i.width||0,this.height_=t.clientHeight||i.height||0,i.stackedGraph&&(i.fillGraph=!0),this.user_attrs_={},l["R"](this.user_attrs_,i),this.attrs_={},l["S"](this.attrs_,h["a"]),this.boundaryIds_=[],this.setIndexByName_={},this.datasetIndex_=[],this.registeredEvents_=[],this.eventListeners_={},this.attributes_=new r["a"](this),this.createInterface_(),this.plugins_=[];for(var a=D.PLUGINS.concat(this.getOption("plugins")),n=0;n<a.length;n++){var o,s=a[n];o="undefined"!==typeof s.activate?s:new s;var u={plugin:o,events:{},options:{},pluginOptions:{}},c=o.activate(this);for(var d in c)c.hasOwnProperty(d)&&(u.events[d]=c[d]);this.plugins_.push(u)}for(n=0;n<this.plugins_.length;n++){var p=this.plugins_[n];for(var d in p.events)if(p.events.hasOwnProperty(d)){var g=p.events[d],_=[p.plugin,g];d in this.eventListeners_?this.eventListeners_[d].push(_):this.eventListeners_[d]=[_]}}this.createDragInterface_(),this.start_()},D.prototype.cascadeEvents_=function(t,e){if(!(t in this.eventListeners_))return!1;var i={dygraph:this,cancelable:!1,defaultPrevented:!1,preventDefault:function(){if(!i.cancelable)throw"Cannot call preventDefault on non-cancelable event.";i.defaultPrevented=!0},propagationStopped:!1,stopPropagation:function(){i.propagationStopped=!0}};l["R"](i,e);var a=this.eventListeners_[t];if(a)for(var n=a.length-1;n>=0;n--){var r=a[n][0],o=a[n][1];if(o.call(r,i),i.propagationStopped)break}return i.defaultPrevented},D.prototype.getPluginInstance_=function(t){for(var e=0;e<this.plugins_.length;e++){var i=this.plugins_[e];if(i.plugin instanceof t)return i.plugin}return null},D.prototype.isZoomed=function(t){const e=!!this.dateWindow_;if("x"===t)return e;const i=this.axes_.map(t=>!!t.valueRange).indexOf(!0)>=0;if(null===t||void 0===t)return e||i;if("y"===t)return i;throw new Error(`axis parameter is [${t}] must be null, 'x' or 'y'.`)},D.prototype.toString=function(){var t=this.maindiv_,e=t&&t.id?t.id:t;return"[Dygraph "+e+"]"},D.prototype.attr_=function(t,e){return e?this.attributes_.getForSeries(t,e):this.attributes_.get(t)},D.prototype.getOption=function(t,e){return this.attr_(t,e)},D.prototype.getNumericOption=function(t,e){return this.getOption(t,e)},D.prototype.getStringOption=function(t,e){return this.getOption(t,e)},D.prototype.getBooleanOption=function(t,e){return this.getOption(t,e)},D.prototype.getFunctionOption=function(t,e){return this.getOption(t,e)},D.prototype.getOptionForAxis=function(t,e){return this.attributes_.getForAxis(t,e)},D.prototype.optionsViewForAxis_=function(t){var e=this;return function(i){var a=e.user_attrs_.axes;return a&&a[t]&&a[t].hasOwnProperty(i)?a[t][i]:("x"!==t||"logscale"!==i)&&("undefined"!=typeof e.user_attrs_[i]?e.user_attrs_[i]:(a=e.attrs_.axes,a&&a[t]&&a[t].hasOwnProperty(i)?a[t][i]:"y"==t&&e.axes_[0].hasOwnProperty(i)?e.axes_[0][i]:"y2"==t&&e.axes_[1].hasOwnProperty(i)?e.axes_[1][i]:e.attr_(i)))}},D.prototype.rollPeriod=function(){return this.rollPeriod_},D.prototype.xAxisRange=function(){return this.dateWindow_?this.dateWindow_:this.xAxisExtremes()},D.prototype.xAxisExtremes=function(){var t=this.getNumericOption("xRangePad")/this.plotter_.area.w;if(0===this.numRows())return[0-t,1+t];var e=this.rawData_[0][0],i=this.rawData_[this.rawData_.length-1][0];if(t){var a=i-e;e-=a*t,i+=a*t}return[e,i]},D.prototype.yAxisExtremes=function(){const t=this.gatherDatasets_(this.rolledSeries_,null),{extremes:e}=t,i=this.axes_;this.computeYAxisRanges_(e);const a=this.axes_;return this.axes_=i,a.map(t=>t.extremeRange)},D.prototype.yAxisRange=function(t){if("undefined"==typeof t&&(t=0),t<0||t>=this.axes_.length)return null;var e=this.axes_[t];return[e.computedValueRange[0],e.computedValueRange[1]]},D.prototype.yAxisRanges=function(){for(var t=[],e=0;e<this.axes_.length;e++)t.push(this.yAxisRange(e));return t},D.prototype.toDomCoords=function(t,e,i){return[this.toDomXCoord(t),this.toDomYCoord(e,i)]},D.prototype.toDomXCoord=function(t){if(null===t)return null;var e=this.plotter_.area,i=this.xAxisRange();return e.x+(t-i[0])/(i[1]-i[0])*e.w},D.prototype.toDomYCoord=function(t,e){var i=this.toPercentYCoord(t,e);if(null===i)return null;var a=this.plotter_.area;return a.y+i*a.h},D.prototype.toDataCoords=function(t,e,i){return[this.toDataXCoord(t),this.toDataYCoord(e,i)]},D.prototype.toDataXCoord=function(t){if(null===t)return null;var e=this.plotter_.area,i=this.xAxisRange();if(this.attributes_.getForAxis("logscale","x")){var a=(t-e.x)/e.w;return l["I"](i[0],i[1],a)}return i[0]+(t-e.x)/e.w*(i[1]-i[0])},D.prototype.toDataYCoord=function(t,e){if(null===t)return null;var i=this.plotter_.area,a=this.yAxisRange(e);if("undefined"==typeof e&&(e=0),this.attributes_.getForAxis("logscale",e)){var n=(t-i.y)/i.h;return l["I"](a[1],a[0],n)}return a[0]+(i.y+i.h-t)/i.h*(a[1]-a[0])},D.prototype.toPercentYCoord=function(t,e){if(null===t)return null;"undefined"==typeof e&&(e=0);var i,a=this.yAxisRange(e),n=this.attributes_.getForAxis("logscale",e);if(n){var r=l["H"](a[0]),o=l["H"](a[1]);i=(o-l["H"](t))/(o-r)}else i=(a[1]-t)/(a[1]-a[0]);return i},D.prototype.toPercentXCoord=function(t){if(null===t)return null;var e,i=this.xAxisRange(),a=this.attributes_.getForAxis("logscale","x");if(!0===a){var n=l["H"](i[0]),r=l["H"](i[1]);e=(l["H"](t)-n)/(r-n)}else e=(t-i[0])/(i[1]-i[0]);return e},D.prototype.numColumns=function(){return this.rawData_?this.rawData_[0]?this.rawData_[0].length:this.attr_("labels").length:0},D.prototype.numRows=function(){return this.rawData_?this.rawData_.length:0},D.prototype.getValue=function(t,e){return t<0||t>this.rawData_.length||e<0||e>this.rawData_[t].length?null:this.rawData_[t][e]},D.prototype.createInterface_=function(){var t=this.maindiv_;this.graphDiv=document.createElement("div"),this.graphDiv.style.textAlign="left",this.graphDiv.style.position="relative",t.appendChild(this.graphDiv),this.canvas_=l["m"](),this.canvas_.style.position="absolute",this.hidden_=this.createPlotKitCanvas_(this.canvas_),this.canvas_ctx_=l["x"](this.canvas_),this.hidden_ctx_=l["x"](this.hidden_),this.resizeElements_(),this.graphDiv.appendChild(this.hidden_),this.graphDiv.appendChild(this.canvas_),this.mouseEventElement_=this.createMouseEventElement_(),this.layout_=new a["a"](this);var e=this;this.mouseMoveHandler_=function(t){e.mouseMove_(t)},this.mouseOutHandler_=function(t){var i=t.target||t.fromElement,a=t.relatedTarget||t.toElement;l["D"](i,e.graphDiv)&&!l["D"](a,e.graphDiv)&&e.mouseOut_(t)},this.addAndTrackEvent(window,"mouseout",this.mouseOutHandler_),this.addAndTrackEvent(this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),this.resizeHandler_||(this.resizeHandler_=function(t){e.resize()},this.addAndTrackEvent(window,"resize",this.resizeHandler_))},D.prototype.resizeElements_=function(){this.graphDiv.style.width=this.width_+"px",this.graphDiv.style.height=this.height_+"px";var t=this.getNumericOption("pixelRatio"),e=t||l["y"](this.canvas_ctx_);this.canvas_.width=this.width_*e,this.canvas_.height=this.height_*e,this.canvas_.style.width=this.width_+"px",this.canvas_.style.height=this.height_+"px",1!==e&&this.canvas_ctx_.scale(e,e);var i=t||l["y"](this.hidden_ctx_);this.hidden_.width=this.width_*i,this.hidden_.height=this.height_*i,this.hidden_.style.width=this.width_+"px",this.hidden_.style.height=this.height_+"px",1!==i&&this.hidden_ctx_.scale(i,i)},D.prototype.destroy=function(){this.canvas_ctx_.restore(),this.hidden_ctx_.restore();for(var t=this.plugins_.length-1;t>=0;t--){var e=this.plugins_.pop();e.plugin.destroy&&e.plugin.destroy()}var i=function(t){while(t.hasChildNodes())i(t.firstChild),t.removeChild(t.firstChild)};this.removeTrackedEvents_(),l["O"](window,"mouseout",this.mouseOutHandler_),l["O"](this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),l["O"](window,"resize",this.resizeHandler_),this.resizeHandler_=null,i(this.maindiv_);var a=function(t){for(var e in t)"object"===typeof t[e]&&(t[e]=null)};a(this.layout_),a(this.plotter_),a(this)},D.prototype.createPlotKitCanvas_=function(t){var e=l["m"]();return e.style.position="absolute",e.style.top=t.style.top,e.style.left=t.style.left,e.width=this.width_,e.height=this.height_,e.style.width=this.width_+"px",e.style.height=this.height_+"px",e},D.prototype.createMouseEventElement_=function(){return this.canvas_},D.prototype.setColors_=function(){var t=this.getLabels(),e=t.length-1;this.colors_=[],this.colorsMap_={};for(var i=this.getNumericOption("colorSaturation")||1,a=this.getNumericOption("colorValue")||.5,n=Math.ceil(e/2),r=this.getOption("colors"),o=this.visibility(),s=0;s<e;s++)if(o[s]){var h=t[s+1],u=this.attributes_.getForSeries("color",h);if(!u)if(r)u=r[s%r.length];else{var c=s%2?n+(s+1)/2:Math.ceil((s+1)/2),d=1*c/(1+e);u=l["z"](d,i,a)}this.colors_.push(u),this.colorsMap_[h]=u}},D.prototype.getColors=function(){return this.colors_},D.prototype.getPropertiesForSeries=function(t){for(var e=-1,i=this.getLabels(),a=1;a<i.length;a++)if(i[a]==t){e=a;break}return-1==e?null:{name:t,column:e,visible:this.visibility()[e-1],color:this.colorsMap_[t],axis:1+this.attributes_.axisForSeries(t)}},D.prototype.createRollInterface_=function(){var t=this.roller_;t||(this.roller_=t=document.createElement("input"),t.type="text",t.style.display="none",t.className="dygraph-roller",this.graphDiv.appendChild(t));var e=this.getBooleanOption("showRoller")?"block":"none",i=this.getArea(),a={top:i.y+i.h-25+"px",left:i.x+1+"px",display:e};t.size="2",t.value=this.rollPeriod_,l["R"](t.style,a),t.onchange=()=>this.adjustRoll(t.value)},D.prototype.createDragInterface_=function(){var t={isZooming:!1,isPanning:!1,is2DPan:!1,dragStartX:null,dragStartY:null,dragEndX:null,dragEndY:null,dragDirection:null,prevEndX:null,prevEndY:null,prevDragDirection:null,cancelNextDblclick:!1,initialLeftmostDate:null,xUnitsPerPixel:null,dateRange:null,px:0,py:0,boundedDates:null,boundedValues:null,tarp:new u["a"],initializeMouseDown:function(t,e,i){t.preventDefault?t.preventDefault():(t.returnValue=!1,t.cancelBubble=!0);var a=l["v"](e.canvas_);i.px=a.x,i.py=a.y,i.dragStartX=l["t"](t,i),i.dragStartY=l["u"](t,i),i.cancelNextDblclick=!1,i.tarp.cover()},destroy:function(){var t=this;if((t.isZooming||t.isPanning)&&(t.isZooming=!1,t.dragStartX=null,t.dragStartY=null),t.isPanning){t.isPanning=!1,t.draggingDate=null,t.dateRange=null;for(var e=0;e<i.axes_.length;e++)delete i.axes_[e].draggingValue,delete i.axes_[e].dragValueRange}t.tarp.uncover()}},e=this.getOption("interactionModel"),i=this,a=function(e){return function(a){e(a,i,t)}};for(var n in e)e.hasOwnProperty(n)&&this.addAndTrackEvent(this.mouseEventElement_,n,a(e[n]));if(!e.willDestroyContextMyself){var r=function(e){t.destroy()};this.addAndTrackEvent(document,"mouseup",r)}},D.prototype.drawZoomRect_=function(t,e,i,a,n,r,o,s){var h=this.canvas_ctx_;r==l["f"]?h.clearRect(Math.min(e,o),this.layout_.getPlotArea().y,Math.abs(e-o),this.layout_.getPlotArea().h):r==l["h"]&&h.clearRect(this.layout_.getPlotArea().x,Math.min(a,s),this.layout_.getPlotArea().w,Math.abs(a-s)),t==l["f"]?i&&e&&(h.fillStyle="rgba(128,128,128,0.33)",h.fillRect(Math.min(e,i),this.layout_.getPlotArea().y,Math.abs(i-e),this.layout_.getPlotArea().h)):t==l["h"]&&n&&a&&(h.fillStyle="rgba(128,128,128,0.33)",h.fillRect(this.layout_.getPlotArea().x,Math.min(a,n),this.layout_.getPlotArea().w,Math.abs(n-a)))},D.prototype.clearZoomRect_=function(){this.currentZoomRectArgs_=null,this.canvas_ctx_.clearRect(0,0,this.width_,this.height_)},D.prototype.doZoomX_=function(t,e){this.currentZoomRectArgs_=null;var i=this.toDataXCoord(t),a=this.toDataXCoord(e);this.doZoomXDates_(i,a)},D.prototype.doZoomXDates_=function(t,e){var i=this.xAxisRange(),a=[t,e];const n=this.getFunctionOption("zoomCallback");this.doAnimatedZoom(i,a,null,null,()=>{n&&n.call(this,t,e,this.yAxisRanges())})},D.prototype.doZoomY_=function(t,e){this.currentZoomRectArgs_=null;for(var i=this.yAxisRanges(),a=[],n=0;n<this.axes_.length;n++){var r=this.toDataYCoord(t,n),o=this.toDataYCoord(e,n);a.push([o,r])}const s=this.getFunctionOption("zoomCallback");this.doAnimatedZoom(null,null,i,a,()=>{if(s){const[t,e]=this.xAxisRange();s.call(this,t,e,this.yAxisRanges())}})},D.zoomAnimationFunction=function(t,e){var i=1.5;return(1-Math.pow(i,-t))/(1-Math.pow(i,-e))},D.prototype.resetZoom=function(){const t=this.isZoomed("x"),e=this.isZoomed("y"),i=t||e;if(this.clearSelection(),!i)return;const[a,n]=this.xAxisExtremes(),r=this.getBooleanOption("animatedZooms"),o=this.getFunctionOption("zoomCallback");if(!r)return this.dateWindow_=null,this.axes_.forEach(t=>{t.valueRange&&delete t.valueRange}),this.drawGraph_(),void(o&&o.call(this,a,n,this.yAxisRanges()));var s=null,l=null,h=null,u=null;t&&(s=this.xAxisRange(),l=[a,n]),e&&(h=this.yAxisRanges(),u=this.yAxisExtremes()),this.doAnimatedZoom(s,l,h,u,()=>{this.dateWindow_=null,this.axes_.forEach(t=>{t.valueRange&&delete t.valueRange}),o&&o.call(this,a,n,this.yAxisRanges())})},D.prototype.doAnimatedZoom=function(t,e,i,a,n){var r,o,s=this.getBooleanOption("animatedZooms")?D.ANIMATION_STEPS:1,h=[],u=[];if(null!==t&&null!==e)for(r=1;r<=s;r++)o=D.zoomAnimationFunction(r,s),h[r-1]=[t[0]*(1-o)+o*e[0],t[1]*(1-o)+o*e[1]];if(null!==i&&null!==a)for(r=1;r<=s;r++){o=D.zoomAnimationFunction(r,s);for(var c=[],d=0;d<this.axes_.length;d++)c.push([i[d][0]*(1-o)+o*a[d][0],i[d][1]*(1-o)+o*a[d][1]]);u[r-1]=c}l["P"](t=>{if(u.length)for(var e=0;e<this.axes_.length;e++){var i=u[t][e];this.axes_[e].valueRange=[i[0],i[1]]}h.length&&(this.dateWindow_=h[t]),this.drawGraph_()},s,D.ANIMATION_DURATION/s,n)},D.prototype.getArea=function(){return this.plotter_.area},D.prototype.eventToDomCoords=function(t){if(t.offsetX&&t.offsetY)return[t.offsetX,t.offsetY];var e=l["v"](this.mouseEventElement_),i=l["L"](t)-e.x,a=l["M"](t)-e.y;return[i,a]},D.prototype.findClosestRow=function(t){for(var e=1/0,i=-1,a=this.layout_.points,n=0;n<a.length;n++)for(var r=a[n],o=r.length,s=0;s<o;s++){var h=r[s];if(l["G"](h,!0)){var u=Math.abs(h.canvasx-t);u<e&&(e=u,i=h.idx)}}return i},D.prototype.findClosestPoint=function(t,e){for(var i,a,n,r,o,s,h,u=1/0,c=this.layout_.points.length-1;c>=0;--c)for(var d=this.layout_.points[c],p=0;p<d.length;++p)r=d[p],l["G"](r)&&(a=r.canvasx-t,n=r.canvasy-e,i=a*a+n*n,i<u&&(u=i,o=r,s=c,h=r.idx));var g=this.layout_.setNames[s];return{row:h,seriesName:g,point:o}},D.prototype.findStackedPoint=function(t,e){for(var i,a,n=this.findClosestRow(t),r=0;r<this.layout_.points.length;++r){var o=this.getLeftBoundary_(r),s=n-o,h=this.layout_.points[r];if(!(s>=h.length)){var u=h[s];if(l["G"](u)){var c=u.canvasy;if(t>u.canvasx&&s+1<h.length){var d=h[s+1];if(l["G"](d)){var p=d.canvasx-u.canvasx;if(p>0){var g=(t-u.canvasx)/p;c+=g*(d.canvasy-u.canvasy)}}}else if(t<u.canvasx&&s>0){var _=h[s-1];if(l["G"](_)){p=u.canvasx-_.canvasx;if(p>0){g=(u.canvasx-t)/p;c+=g*(_.canvasy-u.canvasy)}}}(0===r||c<e)&&(i=u,a=r)}}}var f=this.layout_.setNames[a];return{row:n,seriesName:f,point:i}},D.prototype.mouseMove_=function(t){var e=this.layout_.points;if(void 0!==e&&null!==e){var i=this.eventToDomCoords(t),a=i[0],n=i[1],r=this.getOption("highlightSeriesOpts"),o=!1;if(r&&!this.isSeriesLocked()){var s;s=this.getBooleanOption("stackedGraph")?this.findStackedPoint(a,n):this.findClosestPoint(a,n),o=this.setSelection(s.row,s.seriesName)}else{var l=this.findClosestRow(a);o=this.setSelection(l)}var h=this.getFunctionOption("highlightCallback");h&&o&&h.call(this,t,this.lastx_,this.selPoints_,this.lastRow_,this.highlightSet_)}},D.prototype.getLeftBoundary_=function(t){if(this.boundaryIds_[t])return this.boundaryIds_[t][0];for(var e=0;e<this.boundaryIds_.length;e++)if(void 0!==this.boundaryIds_[e])return this.boundaryIds_[e][0];return 0},D.prototype.animateSelection_=function(t){var e=10,i=30;void 0===this.fadeLevel&&(this.fadeLevel=0),void 0===this.animateId&&(this.animateId=0);var a=this.fadeLevel,n=t<0?a:e-a;if(n<=0)this.fadeLevel&&this.updateSelection_(1);else{var r=++this.animateId,o=this,s=function(){0!==o.fadeLevel&&t<0&&(o.fadeLevel=0,o.clearSelection())};l["P"]((function(i){o.animateId==r&&(o.fadeLevel+=t,0===o.fadeLevel?o.clearSelection():o.updateSelection_(o.fadeLevel/e))}),n,i,s)}},D.prototype.updateSelection_=function(t){var e;this.cascadeEvents_("select",{selectedRow:-1===this.lastRow_?void 0:this.lastRow_,selectedX:-1===this.lastx_?void 0:this.lastx_,selectedPoints:this.selPoints_});var i=this.canvas_ctx_;if(this.getOption("highlightSeriesOpts")){i.clearRect(0,0,this.width_,this.height_);var a=1-this.getNumericOption("highlightSeriesBackgroundAlpha"),n=l["Q"](this.getOption("highlightSeriesBackgroundColor"));if(a){var r=!0;if(r){if(void 0===t)return void this.animateSelection_(1);a*=t}i.fillStyle="rgba("+n.r+","+n.g+","+n.b+","+a+")",i.fillRect(0,0,this.width_,this.height_)}this.plotter_._renderLineChart(this.highlightSet_,i)}else if(this.previousVerticalX_>=0){var o=0,s=this.attr_("labels");for(e=1;e<s.length;e++){var h=this.getNumericOption("highlightCircleSize",s[e]);h>o&&(o=h)}var u=this.previousVerticalX_;i.clearRect(u-o-1,0,2*o+2,this.height_)}if(this.selPoints_.length>0){var c=this.selPoints_[0].canvasx;for(i.save(),e=0;e<this.selPoints_.length;e++){var d=this.selPoints_[e];if(!isNaN(d.canvasy)){var p=this.getNumericOption("highlightCircleSize",d.name),g=this.getFunctionOption("drawHighlightPointCallback",d.name),_=this.plotter_.colors[d.name];g||(g=l["a"].DEFAULT),i.lineWidth=this.getNumericOption("strokeWidth",d.name),i.strokeStyle=_,i.fillStyle=_,g.call(this,this,d.name,i,c,d.canvasy,_,p,d.idx)}}i.restore(),this.previousVerticalX_=c}},D.prototype.setSelection=function(t,e,i){this.selPoints_=[];var a=!1;if(!1!==t&&t>=0){t!=this.lastRow_&&(a=!0),this.lastRow_=t;for(var n=0;n<this.layout_.points.length;++n){var r=this.layout_.points[n],o=t-this.getLeftBoundary_(n);if(o>=0&&o<r.length&&r[o].idx==t){var s=r[o];null!==s.yval&&this.selPoints_.push(s)}else for(var l=0;l<r.length;++l){s=r[l];if(s.idx==t){null!==s.yval&&this.selPoints_.push(s);break}}}}else this.lastRow_>=0&&(a=!0),this.lastRow_=-1;return this.selPoints_.length?this.lastx_=this.selPoints_[0].xval:this.lastx_=-1,void 0!==e&&(this.highlightSet_!==e&&(a=!0),this.highlightSet_=e),void 0!==i&&(this.lockedSet_=i),a&&this.updateSelection_(void 0),a},D.prototype.mouseOut_=function(t){this.getFunctionOption("unhighlightCallback")&&this.getFunctionOption("unhighlightCallback").call(this,t),this.getBooleanOption("hideOverlayOnMouseOut")&&!this.lockedSet_&&this.clearSelection()},D.prototype.clearSelection=function(){this.cascadeEvents_("deselect",{}),this.lockedSet_=!1,this.fadeLevel?this.animateSelection_(-1):(this.canvas_ctx_.clearRect(0,0,this.width_,this.height_),this.fadeLevel=0,this.selPoints_=[],this.lastx_=-1,this.lastRow_=-1,this.highlightSet_=null)},D.prototype.getSelection=function(){if(!this.selPoints_||this.selPoints_.length<1)return-1;for(var t=0;t<this.layout_.points.length;t++)for(var e=this.layout_.points[t],i=0;i<e.length;i++)if(e[i].x==this.selPoints_[0].x)return e[i].idx;return-1},D.prototype.getHighlightSeries=function(){return this.highlightSet_},D.prototype.isSeriesLocked=function(){return this.lockedSet_},D.prototype.loadedEvent_=function(t){this.rawData_=this.parseCSV_(t),this.cascadeDataDidUpdateEvent_(),this.predraw_()},D.prototype.addXTicks_=function(){var t;t=this.dateWindow_?[this.dateWindow_[0],this.dateWindow_[1]]:this.xAxisExtremes();var e=this.optionsViewForAxis_("x"),i=e("ticker")(t[0],t[1],this.plotter_.area.w,e,this);this.layout_.setXTicks(i)},D.prototype.getHandlerClass_=function(){var t;return t=this.attr_("dataHandler")?this.attr_("dataHandler"):this.fractions_?this.getBooleanOption("errorBars")?_["a"]:g["a"]:this.getBooleanOption("customBars")?p["a"]:this.getBooleanOption("errorBars")?d["a"]:c["a"],t},D.prototype.predraw_=function(){var t=new Date;this.dataHandler_=new(this.getHandlerClass_()),this.layout_.computePlotArea(),this.computeYAxes_(),this.is_initial_draw_||(this.canvas_ctx_.restore(),this.hidden_ctx_.restore()),this.canvas_ctx_.save(),this.hidden_ctx_.save(),this.plotter_=new n["a"](this,this.hidden_,this.hidden_ctx_,this.layout_),this.createRollInterface_(),this.cascadeEvents_("predraw"),this.rolledSeries_=[null];for(var e=1;e<this.numColumns();e++){var i=this.dataHandler_.extractSeries(this.rawData_,e,this.attributes_);this.rollPeriod_>1&&(i=this.dataHandler_.rollingAverage(i,this.rollPeriod_,this.attributes_)),this.rolledSeries_.push(i)}this.drawGraph_();var a=new Date;this.drawingTimeMs_=a-t},D.PointType=void 0,D.stackPoints_=function(t,e,i,a){for(var n=null,r=null,o=null,s=-1,l=function(e){if(!(s>=e))for(var i=e;i<t.length;++i)if(o=null,!isNaN(t[i].yval)&&null!==t[i].yval){s=i,o=t[i];break}},h=0;h<t.length;++h){var u=t[h],c=u.xval;void 0===e[c]&&(e[c]=0);var d=u.yval;isNaN(d)||null===d?"none"==a?d=0:(l(h),d=r&&o&&"none"!=a?r.yval+(o.yval-r.yval)*((c-r.xval)/(o.xval-r.xval)):r&&"all"==a?r.yval:o&&"all"==a?o.yval:0):r=u;var p=e[c];n!=c&&(p+=d,e[c]=p),n=c,u.yval_stacked=p,p>i[1]&&(i[1]=p),p<i[0]&&(i[0]=p)}},D.prototype.gatherDatasets_=function(t,e){var i,a,n,r,o,s,l=[],h=[],u=[],c={},d=t.length-1;for(i=d;i>=1;i--)if(this.visibility()[i-1]){if(e){s=t[i];var p=e[0],g=e[1];for(n=null,r=null,a=0;a<s.length;a++)s[a][0]>=p&&null===n&&(n=a),s[a][0]<=g&&(r=a);null===n&&(n=0);var _=n,f=!0;while(f&&_>0)_--,f=null===s[_][1];null===r&&(r=s.length-1);var v=r;f=!0;while(f&&v<s.length-1)v++,f=null===s[v][1];_!==n&&(n=_),v!==r&&(r=v),l[i-1]=[n,r],s=s.slice(n,r+1)}else s=t[i],l[i-1]=[0,s.length-1];var y=this.attr_("labels")[i],x=this.dataHandler_.getExtremeYValues(s,e,this.getBooleanOption("stepPlot",y)),m=this.dataHandler_.seriesToPoints(s,y,l[i-1][0]);this.getBooleanOption("stackedGraph")&&(o=this.attributes_.axisForSeries(y),void 0===u[o]&&(u[o]=[]),D.stackPoints_(m,u[o],x,this.getBooleanOption("stackedGraphNaNFill"))),c[y]=x,h[i]=m}return{points:h,extremes:c,boundaryIds:l}},D.prototype.drawGraph_=function(){var t=new Date,e=this.is_initial_draw_;this.is_initial_draw_=!1,this.layout_.removeAllDatasets(),this.setColors_(),this.attrs_.pointSize=.5*this.getNumericOption("highlightCircleSize");var i=this.gatherDatasets_(this.rolledSeries_,this.dateWindow_),a=i.points,n=i.extremes;this.boundaryIds_=i.boundaryIds,this.setIndexByName_={};for(var r=this.attr_("labels"),o=0,s=1;s<a.length;s++)this.visibility()[s-1]&&(this.layout_.addDataset(r[s],a[s]),this.datasetIndex_[s]=o++);for(s=0;s<r.length;s++)this.setIndexByName_[r[s]]=s;if(this.computeYAxisRanges_(n),this.layout_.setYAxes(this.axes_),this.addXTicks_(),this.layout_.evaluate(),this.renderGraph_(e),this.getStringOption("timingName")){var l=new Date;console.log(this.getStringOption("timingName")+" - drawGraph: "+(l-t)+"ms")}},D.prototype.renderGraph_=function(t){this.cascadeEvents_("clearChart"),this.plotter_.clear();const e=this.getFunctionOption("underlayCallback");e&&e.call(this,this.hidden_ctx_,this.layout_.getPlotArea(),this,this);var i={canvas:this.hidden_,drawingContext:this.hidden_ctx_};this.cascadeEvents_("willDrawChart",i),this.plotter_.render(),this.cascadeEvents_("didDrawChart",i),this.lastRow_=-1,this.canvas_.getContext("2d").clearRect(0,0,this.width_,this.height_);const a=this.getFunctionOption("drawCallback");if(null!==a&&a.call(this,this,t),t){this.readyFired_=!0;while(this.readyFns_.length>0){var n=this.readyFns_.pop();n(this)}}},D.prototype.computeYAxes_=function(){var t,e,i;for(this.axes_=[],t=0;t<this.attributes_.numAxes();t++)e={g:this},l["R"](e,this.attributes_.axisOptions(t)),this.axes_[t]=e;for(t=0;t<this.axes_.length;t++)if(0===t)e=this.optionsViewForAxis_("y"+(t?"2":"")),i=e("valueRange"),i&&(this.axes_[t].valueRange=i);else{var a=this.user_attrs_.axes;a&&a.y2&&(i=a.y2.valueRange,i&&(this.axes_[t].valueRange=i))}},D.prototype.numAxes=function(){return this.attributes_.numAxes()},D.prototype.axisPropertiesForSeries=function(t){return this.axes_[this.attributes_.axisForSeries(t)]},D.prototype.computeYAxisRanges_=function(t){for(var e,i,a,n,r,o=function(t){return isNaN(parseFloat(t))},s=this.attributes_.numAxes(),h=0;h<s;h++){var u=this.axes_[h],c=this.attributes_.getForAxis("logscale",h),d=this.attributes_.getForAxis("includeZero",h),p=this.attributes_.getForAxis("independentTicks",h);a=this.attributes_.seriesForAxis(h),e=!0,n=.1;const s=this.getNumericOption("yRangePad");if(null!==s&&(e=!1,n=s/this.plotter_.area.h),0===a.length)u.extremeRange=[0,1];else{for(var g,_,f=1/0,v=-1/0,y=0;y<a.length;y++)t.hasOwnProperty(a[y])&&(g=t[a[y]][0],null!==g&&(f=Math.min(g,f)),_=t[a[y]][1],null!==_&&(v=Math.max(_,v)));d&&!c&&(f>0&&(f=0),v<0&&(v=0)),f==1/0&&(f=0),v==-1/0&&(v=1),i=v-f,0===i&&(0!==v?i=Math.abs(v):(v=1,i=1));var x=v,m=f;e&&(c?(x=v+n*i,m=f):(x=v+n*i,m=f-n*i,m<0&&f>=0&&(m=0),x>0&&v<=0&&(x=0))),u.extremeRange=[m,x]}if(u.valueRange){var b=o(u.valueRange[0])?u.extremeRange[0]:u.valueRange[0],w=o(u.valueRange[1])?u.extremeRange[1]:u.valueRange[1];u.computedValueRange=[b,w]}else u.computedValueRange=u.extremeRange;if(!e)if(c){b=u.computedValueRange[0],w=u.computedValueRange[1];var A=n/(2*n-1),D=(n-1)/(2*n-1);u.computedValueRange[0]=l["I"](b,w,A),u.computedValueRange[1]=l["I"](b,w,D)}else b=u.computedValueRange[0],w=u.computedValueRange[1],i=w-b,u.computedValueRange[0]=b-i*n,u.computedValueRange[1]=w+i*n;if(p){u.independentTicks=p;var S=this.optionsViewForAxis_("y"+(h?"2":"")),E=S("ticker");u.ticks=E(u.computedValueRange[0],u.computedValueRange[1],this.plotter_.area.h,S,this),r||(r=u)}}if(void 0===r)throw'Configuration Error: At least one axis has to have the "independentTicks" option activated.';for(h=0;h<s;h++){u=this.axes_[h];if(!u.independentTicks){S=this.optionsViewForAxis_("y"+(h?"2":"")),E=S("ticker");for(var L=r.ticks,O=r.computedValueRange[1]-r.computedValueRange[0],T=u.computedValueRange[1]-u.computedValueRange[0],C=[],P=0;P<L.length;P++){var M=(L[P].v-r.computedValueRange[0])/O,N=u.computedValueRange[0]+M*T;C.push(N)}u.ticks=E(u.computedValueRange[0],u.computedValueRange[1],this.plotter_.area.h,S,this,C)}}},D.prototype.detectTypeFromString_=function(t){var e=!1,i=t.indexOf("-");(i>0&&"e"!=t[i-1]&&"E"!=t[i-1]||t.indexOf("/")>=0||isNaN(parseFloat(t))||8==t.length&&t>"19700101"&&t<"20371231")&&(e=!0),this.setXAxisOptions_(e)},D.prototype.setXAxisOptions_=function(t){t?(this.attrs_.xValueParser=l["p"],this.attrs_.axes.x.valueFormatter=l["r"],this.attrs_.axes.x.ticker=s["b"],this.attrs_.axes.x.axisLabelFormatter=l["o"]):(this.attrs_.xValueParser=function(t){return parseFloat(t)},this.attrs_.axes.x.valueFormatter=function(t){return t},this.attrs_.axes.x.ticker=s["e"],this.attrs_.axes.x.axisLabelFormatter=this.attrs_.axes.x.valueFormatter)},D.prototype.parseCSV_=function(t){var e,i,a=[],n=l["s"](t),r=t.split(n||"\n"),o=this.getStringOption("delimiter");-1==r[0].indexOf(o)&&r[0].indexOf("\t")>=0&&(o="\t");var s=0;"labels"in this.user_attrs_||(s=1,this.attrs_.labels=r[0].split(o),this.attributes_.reparseSeries());for(var h,u=!1,c=this.attr_("labels").length,d=!1,p=s;p<r.length;p++){var g=r[p];if(p,0!==g.length&&"#"!=g[0]){var _=g.split(o);if(!(_.length<2)){var f=[];if(u||(this.detectTypeFromString_(_[0]),h=this.getFunctionOption("xValueParser"),u=!0),f[0]=h(_[0],this),this.fractions_)for(i=1;i<_.length;i++)e=_[i].split("/"),2!=e.length?(console.error('Expected fractional "num/den" values in CSV data but found a value \''+_[i]+"' on line "+(1+p)+" ('"+g+"') which is not of this form."),f[i]=[0,0]):f[i]=[l["N"](e[0],p,g),l["N"](e[1],p,g)];else if(this.getBooleanOption("errorBars"))for(_.length%2!=1&&console.error("Expected alternating (value, stdev.) pairs in CSV data but line "+(1+p)+" has an odd number of values ("+(_.length-1)+"): '"+g+"'"),i=1;i<_.length;i+=2)f[(i+1)/2]=[l["N"](_[i],p,g),l["N"](_[i+1],p,g)];else if(this.getBooleanOption("customBars"))for(i=1;i<_.length;i++){var v=_[i];/^ *$/.test(v)?f[i]=[null,null,null]:(e=v.split(";"),3==e.length?f[i]=[l["N"](e[0],p,g),l["N"](e[1],p,g),l["N"](e[2],p,g)]:console.warn('When using customBars, values must be either blank or "low;center;high" tuples (got "'+v+'" on line '+(1+p)))}else for(i=1;i<_.length;i++)f[i]=l["N"](_[i],p,g);if(a.length>0&&f[0]<a[a.length-1][0]&&(d=!0),f.length!=c&&console.error("Number of columns in line "+p+" ("+f.length+") does not agree with number of labels ("+c+") "+g),0===p&&this.attr_("labels")){var y=!0;for(i=0;y&&i<f.length;i++)f[i]&&(y=!1);if(y){console.warn("The dygraphs 'labels' option is set, but the first row of CSV data ('"+g+"') appears to also contain labels. Will drop the CSV labels and use the option labels.");continue}}a.push(f)}}}return d&&(console.warn("CSV is out of order; order it correctly to speed loading."),a.sort((function(t,e){return t[0]-e[0]}))),a},D.prototype.parseArray_=function(t){if(0===t.length)return console.error("Can't plot empty data set"),null;if(0===t[0].length)return console.error("Data set cannot contain an empty row"),null;var e;if(S(t),null===this.attr_("labels")){for(console.warn("Using default labels. Set labels explicitly via 'labels' in the options parameter"),this.attrs_.labels=["X"],e=1;e<t[0].length;e++)this.attrs_.labels.push("Y"+e);this.attributes_.reparseSeries()}else{var i=this.attr_("labels");if(i.length!=t[0].length)return console.error("Mismatch between number of labels ("+i+") and number of columns in array ("+t[0].length+")"),null}if(l["C"](t[0][0])){this.attrs_.axes.x.valueFormatter=l["r"],this.attrs_.axes.x.ticker=s["b"],this.attrs_.axes.x.axisLabelFormatter=l["o"];var a=l["l"](t);for(e=0;e<t.length;e++){if(0===a[e].length)return console.error("Row "+(1+e)+" of data is empty"),null;if(null===a[e][0]||"function"!=typeof a[e][0].getTime||isNaN(a[e][0].getTime()))return console.error("x value in row "+(1+e)+" is not a Date"),null;a[e][0]=a[e][0].getTime()}return a}return this.attrs_.axes.x.valueFormatter=function(t){return t},this.attrs_.axes.x.ticker=s["e"],this.attrs_.axes.x.axisLabelFormatter=l["J"],t},D.prototype.parseDataTable_=function(t){var e=function(t){var e=String.fromCharCode(65+t%26);t=Math.floor(t/26);while(t>0)e=String.fromCharCode(65+(t-1)%26)+e.toLowerCase(),t=Math.floor((t-1)/26);return e},i=t.getNumberOfColumns(),a=t.getNumberOfRows(),n=t.getColumnType(0);if("date"==n||"datetime"==n)this.attrs_.xValueParser=l["p"],this.attrs_.axes.x.valueFormatter=l["r"],this.attrs_.axes.x.ticker=s["b"],this.attrs_.axes.x.axisLabelFormatter=l["o"];else{if("number"!=n)throw new Error("only 'date', 'datetime' and 'number' types are supported for column 1 of DataTable input (Got '"+n+"')");this.attrs_.xValueParser=function(t){return parseFloat(t)},this.attrs_.axes.x.valueFormatter=function(t){return t},this.attrs_.axes.x.ticker=s["e"],this.attrs_.axes.x.axisLabelFormatter=this.attrs_.axes.x.valueFormatter}var r,o,h=[],u={},c=!1;for(r=1;r<i;r++){var d=t.getColumnType(r);if("number"==d)h.push(r);else{if("string"!=d||!this.getBooleanOption("displayAnnotations"))throw new Error("Only 'number' is supported as a dependent type with Gviz. 'string' is only supported if displayAnnotations is true");var p=h[h.length-1];u.hasOwnProperty(p)?u[p].push(r):u[p]=[r],c=!0}}var g=[t.getColumnLabel(0)];for(r=0;r<h.length;r++)g.push(t.getColumnLabel(h[r])),this.getBooleanOption("errorBars")&&(r+=1);this.attrs_.labels=g,i=g.length;var _=[],f=!1,v=[];for(r=0;r<a;r++){var y=[];if("undefined"!==typeof t.getValue(r,0)&&null!==t.getValue(r,0)){if("date"==n||"datetime"==n?y.push(t.getValue(r,0).getTime()):y.push(t.getValue(r,0)),this.getBooleanOption("errorBars"))for(o=0;o<i-1;o++)y.push([t.getValue(r,1+2*o),t.getValue(r,2+2*o)]);else{for(o=0;o<h.length;o++){var x=h[o];if(y.push(t.getValue(r,x)),c&&u.hasOwnProperty(x)&&null!==t.getValue(r,u[x][0])){var m={};m.series=t.getColumnLabel(x),m.xval=y[0],m.shortText=e(v.length),m.text="";for(var b=0;b<u[x].length;b++)b&&(m.text+="\n"),m.text+=t.getValue(r,u[x][b]);v.push(m)}}for(o=0;o<y.length;o++)isFinite(y[o])||(y[o]=null)}_.length>0&&y[0]<_[_.length-1][0]&&(f=!0),_.push(y)}else console.warn("Ignoring row "+r+" of DataTable because of undefined or null first column.")}f&&(console.warn("DataTable is out of order; order it correctly to speed loading."),_.sort((function(t,e){return t[0]-e[0]}))),this.rawData_=_,v.length>0&&this.setAnnotations(v,!0),this.attributes_.reparseSeries()},D.prototype.cascadeDataDidUpdateEvent_=function(){this.cascadeEvents_("dataDidUpdate",{})},D.prototype.start_=function(){var t=this.file_;if("function"==typeof t&&(t=t()),l["A"](t))this.rawData_=this.parseArray_(t),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if("object"==typeof t&&"function"==typeof t.getColumnRange)this.parseDataTable_(t),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if("string"==typeof t){var e=l["s"](t);if(e)this.loadedEvent_(t);else{var i;i=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");var a=this;i.onreadystatechange=function(){4==i.readyState&&(200!==i.status&&0!==i.status||a.loadedEvent_(i.responseText))},i.open("GET",t,!0),i.send(null)}}else console.error("Unknown data format: "+typeof t)},D.prototype.updateOptions=function(t,e){"undefined"==typeof e&&(e=!1);var i=t.file,a=D.copyUserAttrs_(t);"rollPeriod"in a&&(this.rollPeriod_=a.rollPeriod),"dateWindow"in a&&(this.dateWindow_=a.dateWindow);var n=l["F"](this.attr_("labels"),a);l["S"](this.user_attrs_,a),this.attributes_.reparseSeries(),i?(this.cascadeEvents_("dataWillUpdate",{}),this.file_=i,e||this.start_()):e||(n?this.predraw_():this.renderGraph_(!1))},D.copyUserAttrs_=function(t){var e={};for(var i in t)t.hasOwnProperty(i)&&"file"!=i&&t.hasOwnProperty(i)&&(e[i]=t[i]);return e},D.prototype.resize=function(t,e){if(!this.resize_lock){this.resize_lock=!0,null===t!=(null===e)&&(console.warn("Dygraph.resize() should be called with zero parameters or two non-NULL parameters. Pretending it was zero."),t=e=null);var i=this.width_,a=this.height_;t?(this.maindiv_.style.width=t+"px",this.maindiv_.style.height=e+"px",this.width_=t,this.height_=e):(this.width_=this.maindiv_.clientWidth,this.height_=this.maindiv_.clientHeight),i==this.width_&&a==this.height_||(this.resizeElements_(),this.predraw_()),this.resize_lock=!1}},D.prototype.adjustRoll=function(t){this.rollPeriod_=t,this.predraw_()},D.prototype.visibility=function(){this.getOption("visibility")||(this.attrs_.visibility=[]);while(this.getOption("visibility").length<this.numColumns()-1)this.attrs_.visibility.push(!0);return this.getOption("visibility")},D.prototype.setVisibility=function(t,e){var i=this.visibility(),a=!1;if(Array.isArray(t)||(null!==t&&"object"===typeof t?a=!0:t=[t]),a)for(var n in t)t.hasOwnProperty(n)&&(n<0||n>=i.length?console.warn("Invalid series number in setVisibility: "+n):i[n]=t[n]);else for(n=0;n<t.length;n++)"boolean"===typeof t[n]?n>=i.length?console.warn("Invalid series number in setVisibility: "+n):i[n]=t[n]:t[n]<0||t[n]>=i.length?console.warn("Invalid series number in setVisibility: "+t[n]):i[t[n]]=e;this.predraw_()},D.prototype.size=function(){return{width:this.width_,height:this.height_}},D.prototype.setAnnotations=function(t,e){this.annotations_=t,this.layout_?(this.layout_.setAnnotations(this.annotations_),e||this.predraw_()):console.warn("Tried to setAnnotations before dygraph was ready. Try setting them in a ready() block. See dygraphs.com/tests/annotation.html")},D.prototype.annotations=function(){return this.annotations_},D.prototype.getLabels=function(){var t=this.attr_("labels");return t?t.slice():null},D.prototype.indexFromSetName=function(t){return this.setIndexByName_[t]},D.prototype.getRowForX=function(t){var e=0,i=this.numRows()-1;while(e<=i){var a=i+e>>1,n=this.getValue(a,0);if(n<t)e=a+1;else if(n>t)i=a-1;else{if(e==a)return a;i=a}}return null},D.prototype.ready=function(t){this.is_initial_draw_?this.readyFns_.push(t):t.call(this,this)},D.prototype.addAndTrackEvent=function(t,e,i){l["i"](t,e,i),this.registeredEvents_.push({elem:t,type:e,fn:i})},D.prototype.removeTrackedEvents_=function(){if(this.registeredEvents_)for(var t=0;t<this.registeredEvents_.length;t++){var e=this.registeredEvents_[t];l["O"](e.elem,e.type,e.fn)}this.registeredEvents_=[]},D.PLUGINS=[b["a"],y["a"],w["a"],x["a"],v["a"],m["a"]],D.GVizChart=A["a"],D.DASHED_LINE=l["b"],D.DOT_DASH_LINE=l["c"],D.dateAxisLabelFormatter=l["o"],D.toRGB_=l["Q"],D.findPos=l["v"],D.pageX=l["L"],D.pageY=l["M"],D.dateString_=l["q"],D.defaultInteractionModel=o["a"].defaultModel,D.nonInteractiveModel=D.nonInteractiveModel_=o["a"].nonInteractiveModel_,D.Circles=l["a"],D.Plugins={Legend:b["a"],Axes:y["a"],Annotations:v["a"],ChartLabels:x["a"],Grid:m["a"],RangeSelector:w["a"]},D.DataHandlers={DefaultHandler:c["a"],BarsHandler:f["a"],CustomBarsHandler:p["a"],DefaultFractionHandler:g["a"],ErrorBarsHandler:d["a"],FractionsBarsHandler:_["a"]},D.startPan=o["a"].startPan,D.startZoom=o["a"].startZoom,D.movePan=o["a"].movePan,D.moveZoom=o["a"].moveZoom,D.endPan=o["a"].endPan,D.endZoom=o["a"].endZoom,D.numericLinearTicks=s["d"],D.numericTicks=s["e"],D.dateTicker=s["b"],D.Granularity=s["a"],D.getDateAxis=s["c"],D.floatFormat=l["w"],e["a"]=D}).call(this,i("4362"))},"11f9":function(t,e,i){"use strict";i.r(e);var a=i("0a79");i.d(e,"default",(function(){return a["a"]}))},2648:function(t,e,i){"use strict";var a=i("bde9"),n=function(){this.legend_div_=null,this.is_generated_div_=!1}; /** * @license * Copyright 2012 Dan Vanderkam (danvdk@gmail.com) * MIT-licensed (http://opensource.org/licenses/MIT) */n.prototype.toString=function(){return"Legend Plugin"},n.prototype.activate=function(t){var e,i=t.getOption("labelsDiv");return i&&null!==i?e="string"==typeof i||i instanceof String?document.getElementById(i):i:(e=document.createElement("div"),e.className="dygraph-legend",t.graphDiv.appendChild(e),this.is_generated_div_=!0),this.legend_div_=e,this.one_em_width_=10,{select:this.select,deselect:this.deselect,predraw:this.predraw,didDrawChart:this.didDrawChart}};var r=function(t){var e=document.createElement("span");e.setAttribute("style","margin: 0; padding: 0 0 0 1em; border: 0;"),t.appendChild(e);var i=e.offsetWidth;return t.removeChild(e),i},o=function(t){return t.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")};function s(t,e,i){if(!t||t.length<=1)return`<div class="dygraph-legend-line" style="border-bottom-color: ${e};"></div>`;var a,n,r,o,s,l=0,h=0,u=[];for(a=0;a<=t.length;a++)l+=t[a%t.length];if(s=Math.floor(i/(l-t[0])),s>1){for(a=0;a<t.length;a++)u[a]=t[a]/i;h=u.length}else{for(s=1,a=0;a<t.length;a++)u[a]=t[a]/l;h=u.length+1}var c="";for(n=0;n<s;n++)for(a=0;a<h;a+=2)r=u[a%u.length],o=a<t.length?u[(a+1)%u.length]:0,c+=`<div class="dygraph-legend-dash" style="margin-right: ${o}em; padding-left: ${r}em;"></div>`;return c}n.prototype.select=function(t){var e=t.selectedX,i=t.selectedPoints,a=t.selectedRow,r=t.dygraph.getOption("legend");if("never"!==r){if("follow"===r){var o=t.dygraph.plotter_.area,s=this.legend_div_.offsetWidth,l=t.dygraph.getOptionForAxis("axisLabelWidth","y"),h=i[0].x*o.w+50,u=i[0].y*o.h-50;h+s+1>o.w&&(h=h-100-s-(l-o.x)),t.dygraph.graphDiv.appendChild(this.legend_div_),this.legend_div_.style.left=l+h+"px",this.legend_div_.style.top=u+"px"}var c=n.generateLegendHTML(t.dygraph,e,i,this.one_em_width_,a);this.legend_div_.innerHTML=c,this.legend_div_.style.display=""}else this.legend_div_.style.display="none"},n.prototype.deselect=function(t){var e=t.dygraph.getOption("legend");"always"!==e&&(this.legend_div_.style.display="none");var i=r(this.legend_div_);this.one_em_width_=i;var a=n.generateLegendHTML(t.dygraph,void 0,void 0,i,null);this.legend_div_.innerHTML=a},n.prototype.didDrawChart=function(t){this.deselect(t)},n.prototype.predraw=function(t){if(this.is_generated_div_){t.dygraph.graphDiv.appendChild(this.legend_div_);var e=t.dygraph.getArea(),i=this.legend_div_.offsetWidth;this.legend_div_.style.left=e.x+e.w-i-1+"px",this.legend_div_.style.top=e.y+"px"}},n.prototype.destroy=function(){this.legend_div_=null},n.generateLegendHTML=function(t,e,i,r,l){var h={dygraph:t,x:e,series:[]},u={},c=t.getLabels();if(c)for(var d=1;d<c.length;d++){var p=t.getPropertiesForSeries(c[d]),g=t.getOption("strokePattern",c[d]),_={dashHTML:s(g,p.color,r),label:c[d],labelHTML:o(c[d]),isVisible:p.visible,color:p.color};h.series.push(_),u[c[d]]=_}if("undefined"!==typeof e){var f=t.optionsViewForAxis_("x"),v=f("valueFormatter");h.xHTML=v.call(t,e,f,c[0],t,l,0);var y=[],x=t.numAxes();for(d=0;d<x;d++)y[d]=t.optionsViewForAxis_("y"+(d?1+d:""));var m=t.getOption("labelsShowZeroValues"),b=t.getHighlightSeries();for(d=0;d<i.length;d++){var w=i[d];_=u[w.name];if(_.y=w.yval,0===w.yval&&!m||isNaN(w.canvasy))_.isVisible=!1;else{p=t.getPropertiesForSeries(w.name);var A=y[p.axis-1],D=A("valueFormatter"),S=D.call(t,w.yval,A,w.name,t,l,c.indexOf(w.name));a["R"](_,{yHTML:S}),w.name==b&&(_.isHighlighted=!0)}}}var E=t.getOption("legendFormatter")||n.defaultFormatter;return E.call(t,h)},n.defaultFormatter=function(t){var e=t.dygraph;if(!0!==e.getOption("showLabelsOnHighlight"))return"";var i,a=e.getOption("labelsSeparateLines");if("undefined"===typeof t.x){if("always"!=e.getOption("legend"))return"";i="";for(var n=0;n<t.series.length;n++){var r=t.series[n];r.isVisible&&(""!==i&&(i+=a?"<br/>":" "),i+=`<span style='font-weight: bold; color: ${r.color};'>${r.dashHTML} ${r.labelHTML}</span>`)}return i}i=t.xHTML+":";for(n=0;n<t.series.length;n++){r=t.series[n];if(r.isVisible){a&&(i+="<br>");var o=r.isHighlighted?' class="highlight"':"";i+=`<span${o}> <b><span style='color: ${r.color};'>${r.labelHTML}</span></b>:&#160;${r.yHTML}</span>`}}return i},e["a"]=n},"2f43":function(t,e,i){"use strict";var a=i("4808"),n=i("d9ce"),r=function(){a["a"].call(this)};r.prototype=new a["a"],r.prototype.extractSeries=function(t,e,i){},r.prototype.rollingAverage=function(t,e,i){},r.prototype.onPointsCreated_=function(t,e){for(var i=0;i<t.length;++i){var n=t[i],r=e[i];r.y_top=NaN,r.y_bottom=NaN,r.yval_minus=a["a"].parseFloat(n[2][0]),r.yval_plus=a["a"].parseFloat(n[2][1])}},r.prototype.getExtremeYValues=function(t,e,i){for(var a,n=null,r=null,o=0,s=t.length-1,l=o;l<=s;l++)if(a=t[l][1],null!==a&&!isNaN(a)){var h=t[l][2][0],u=t[l][2][1];h>a&&(h=a),u<a&&(u=a),(null===r||u>r)&&(r=u),(null===n||h<n)&&(n=h)}return[n,r]},r.prototype.onLineEvaluated=function(t,e,i){for(var a,r=0;r<t.length;r++)a=t[r],a.y_top=n["a"].calcYNormal_(e,a.yval_minus,i),a.y_bottom=n["a"].calcYNormal_(e,a.yval_plus,i)},e["a"]=r},3220:function(t,e,i){"use strict";var a=i("2f43"),n=function(){}; /** * @license * Copyright 2013 David Eberlein (david.eberlein@ch.sauter-bc.com) * MIT-licensed (http://opensource.org/licenses/MIT) */n.prototype=new a["a"],n.prototype.extractSeries=function(t,e,i){for(var a,n,r,o,s=[],l=i.get("sigma"),h=i.get("logscale"),u=0;u<t.length;u++)a=t[u][0],o=t[u][e],h&&null!==o&&(o[0]<=0||o[0]-l*o[1]<=0)&&(o=null),null!==o?(n=o[0],null===n||isNaN(n)?s.push([a,n,[n,n,n]]):(r=l*o[1],s.push([a,n,[n-r,n+r,o[1]]]))):s.push([a,null,[null,null,null]]);return s},n.prototype.rollingAverage=function(t,e,i){e=Math.min(e,t.length);var a,n,r,o,s,l,h,u,c,d=[],p=i.get("sigma");for(a=0;a<t.length;a++){for(s=0,u=0,l=0,n=Math.max(0,a-e+1);n<a+1;n++)r=t[n][1],null===r||isNaN(r)||(l++,s+=r,u+=Math.pow(t[n][2][2],2));l?(h=Math.sqrt(u)/l,c=s/l,d[a]=[t[a][0],c,[c-p*h,c+p*h]]):(o=1==e?t[a][1]:null,d[a]=[t[a][0],o,[o,o]])}return d},e["a"]=n},"34cf":function(t,e,i){"use strict";var a=i("5337"),n=i("d84a"),r=i("5261"),o=i("bde9"),s={highlightCircleSize:3,highlightSeriesOpts:null,highlightSeriesBackgroundAlpha:.5,highlightSeriesBackgroundColor:"rgb(255, 255, 255)",labelsSeparateLines:!1,labelsShowZeroValues:!0,labelsKMB:!1,labelsKMG2:!1,showLabelsOnHighlight:!0,digitsAfterDecimal:2,maxNumberWidth:6,sigFigs:null,strokeWidth:1,strokeBorderWidth:0,strokeBorderColor:"white",axisTickSize:3,axisLabelFontSize:14,rightGap:5,showRoller:!1,xValueParser:void 0,delimiter:",",sigma:2,errorBars:!1,fractions:!1,wilsonInterval:!0,customBars:!1,fillGraph:!1,fillAlpha:.15,connectSeparatedPoints:!1,stackedGraph:!1,stackedGraphNaNFill:"all",hideOverlayOnMouseOut:!0,legend:"onmouseover",stepPlot:!1,xRangePad:0,yRangePad:null,drawAxesAtZero:!1,titleHeight:28,xLabelHeight:18,yLabelWidth:18,axisLineColor:"black",axisLineWidth:.3,gridLineWidth:.3,axisLabelWidth:50,gridLineColor:"rgb(128,128,128)",interactionModel:n["a"].defaultModel,animatedZooms:!1,showRangeSelector:!1,rangeSelectorHeight:40,rangeSelectorPlotStrokeColor:"#808FAB",rangeSelectorPlotFillGradientColor:"white",rangeSelectorPlotFillColor:"#A7B1C4",rangeSelectorBackgroundStrokeColor:"gray",rangeSelectorBackgroundLineWidth:1,rangeSelectorPlotLineWidth:1.5,rangeSelectorForegroundStrokeColor:"black",rangeSelectorForegroundLineWidth:1,rangeSelectorAlpha:.6,showInRangeSelector:null,plotter:[r["a"]._fillPlotter,r["a"]._errorPlotter,r["a"]._linePlotter],plugins:[],axes:{x:{pixelsPerLabel:70,axisLabelWidth:60,axisLabelFormatter:o["o"],valueFormatter:o["r"],drawGrid:!0,drawAxis:!0,independentTicks:!0,ticker:a["b"]},y:{axisLabelWidth:50,pixelsPerLabel:30,valueFormatter:o["K"],axisLabelFormatter:o["J"],drawGrid:!0,drawAxis:!0,independentTicks:!0,ticker:a["e"]},y2:{axisLabelWidth:50,pixelsPerLabel:30,valueFormatter:o["K"],axisLabelFormatter:o["J"],drawAxis:!0,drawGrid:!1,independentTicks:!1,ticker:a["e"]}}};e["a"]=s},3501:function(t,e,i){"use strict";var a=i("0a79"),n=function(t){this.container=t}; /** * @license * Copyright 2011 Dan Vanderkam (danvdk@gmail.com) * MIT-licensed (http://opensource.org/licen