View File Name : graphPlugin.f47f722cdfc0ceb85136.js
').css({position:"absolute",opacity:.8,left:W+"px",top:8,width:r+"px",height:this._plot.height()+x,"border-left-width":r+"px","border-left-style":u,"border-left-color":g,color:g}).appendTo(s)});const I=c()('
').css({position:"absolute",opacity:.5,left:D+"px",top:a,width:h+"px",height:"0.5rem","border-left-color":g,color:g,"background-color":g});I.appendTo(s),I.data({event:e});const G=function(){ie(I,c()(this).data("event"),t._plot)};e.editModel&&ne(I,e.editModel,t._plot);const k=()=>{t._plot.clearSelection()};return m&&(I.css({cursor:"help"}),I.hover(G,k)),new re(I,function(Q){Q.show()},W=>{W.remove()},(W,Q)=>{W.css({top:Q.top,left:Q.left})},l,a,I.width()??1,I.height()??1)}_insidePlot(e){const t=this._plot.getXAxes()[this._plot.getOptions().events.xaxis-1],s=t.p2c(e);return s>0&&s
t._events,n.hideEvents=()=>{c().each(t._events,(s,i)=>{i.visual().getObject().hide()})},n.showEvents=()=>{n.hideEvents(),c().each(t._events,(s,i)=>{i.hide()}),e.eventMarkers.drawEvents()},n.setEvents=s=>{t.eventsEnabled&&t.setupEvents(s)},n.hooks.processOptions.push((s,i)=>{i.events.data!=null&&(t.eventsEnabled=!0)}),n.hooks.draw.push(s=>{const i=s.getOptions();t.eventsEnabled&&(t.getEvents().length<1?(t.setTypes(i.events.types),t.setupEvents(i.events.data)):t.updateEvents()),t.drawEvents()})}const Fe={events:{data:null,types:null,xaxis:1,position:"BOTTOM"}};c().plot.plugins.push({init:Ne,options:Fe,name:"events",version:"0.2.5"});var y=d(96540),Be=d(5338),z=d(26272),le=d(69129),Z=d(47232),Ue=d(56323),ze=d(57875),he=d(11261),Ve=d(78368),de=d(14236),He=d(39306),ve=d(83195),J=d(67982),N=d(2913),ce=d(10096),$e=d(96378),pe=d(92247),Ke=d(32349),je=d(14578),Ge=d(40276),Xe=d(46942),Ye=d.n(Xe),xe=d(13544),_e=d(83598),Qe=d(94536);const Ce=["min","max","avg","current","total"];class ue extends y.PureComponent{constructor(e){super(e),this.onLabelClick=t=>this.props.onLabelClick(this.props.series,t),this.onToggleAxis=()=>{const t=this.state.yaxis===2?1:2,s={alias:this.props.series.alias,yaxis:t};this.setState({yaxis:t}),this.props.onToggleAxis(s)},this.onColorChange=t=>{this.props.onColorChange(this.props.series,t),this.forceUpdate()},this.state={yaxis:this.props.series.yaxis}}renderLegendValues(){const{series:e,asTable:t}=this.props,s=[];for(const i of Ce)if(this.props[i]){const o=e.formatValue(e.stats[i]);s.push(y.createElement(Ze,{key:i,valueName:i,value:o,asTable:t,onValueClick:this.onLabelClick}))}return s}render(){const{series:e,values:t,asTable:s,hidden:i}=this.props,o=Ye()({"graph-legend-series-hidden":i,"graph-legend-series--right-y":e.yaxis===2}),a=t?this.renderLegendValues():[],l=y.createElement(ye,{label:e.alias,color:e.color,yaxis:this.state.yaxis,onLabelClick:this.onLabelClick,onColorChange:this.onColorChange,onToggleAxis:this.onToggleAxis});return s?y.createElement("tr",{className:`graph-legend-series ${o}`},y.createElement("td",{role:"gridcell"},y.createElement("div",{className:"graph-legend-series__table-name"},l)),a):y.createElement("div",{className:`graph-legend-series ${o}`},l,a)}}ue.defaultProps={asTable:!1,hidden:!1,onLabelClick:()=>{},onColorChange:()=>{},onToggleAxis:()=>{}};class ye extends y.PureComponent{render(){const{label:e,color:t,yaxis:s}=this.props,{onColorChange:i,onToggleAxis:o}=this.props,a=this.props.onLabelClick?this.props.onLabelClick:()=>{};return[y.createElement(be,{key:"icon",color:t,yaxis:s,onColorChange:i,onToggleAxis:o}),y.createElement("button",{type:"button",className:"graph-legend-alias pointer",title:e,key:"label",onClick:a,"aria-label":xe.Tp.components.Panels.Visualization.Graph.Legend.legendItemAlias(e)},e)]}}ye.defaultProps={yaxis:void 0,onLabelClick:()=>{}};class be extends y.PureComponent{constructor(){super(...arguments),this.onColorChange=e=>{const{onColorChange:t}=this.props;t&&t(e)}}render(){return y.createElement(_e.Dp,{yaxis:this.props.yaxis,color:this.props.color,onChange:this.onColorChange,onToggleAxis:this.props.onToggleAxis,enableNamedColors:!0},({ref:e,showColorPicker:t,hideColorPicker:s})=>y.createElement(Qe.p,{color:this.props.color,ref:e,onClick:t,onMouseLeave:s,className:"graph-legend-icon"}))}}be.defaultProps={yaxis:void 0,onColorChange:()=>{},onToggleAxis:()=>{}};function Ze({value:n,valueName:e,asTable:t,onValueClick:s}){return t?y.createElement("td",{role:"gridcell",className:`graph-legend-value ${e}`},n):y.createElement("div",{className:`graph-legend-value ${e}`},n)}class Te extends y.PureComponent{constructor(e){super(e),this.onToggleSeries=(t,s)=>{if(!this.props.onToggleSeries)return;let i={...this.state.hiddenSeries};s.ctrlKey||s.metaKey||s.shiftKey?i[t.alias]?delete i[t.alias]:i[t.alias]=!0:i=this.toggleSeriesExclusiveMode(t),this.setState({hiddenSeries:i}),this.props.onToggleSeries(i)},this.state={hiddenSeries:this.props.hiddenSeries}}sortLegend(){let e=[...this.props.seriesList];const t=this.props.sort;return t&&this.props[t]&&this.props.alignAsTable&&(e=(0,p.sortBy)(e,s=>{let i=s.stats[t];return i===null&&(i=-1/0),i}),this.props.sortDesc&&(e=e.reverse())),e}toggleSeriesExclusiveMode(e){const t={...this.state.hiddenSeries};return t[e.alias]&&delete t[e.alias],this.props.seriesList.every(i=>i.alias===e.alias?!0:t[i.alias])?this.props.seriesList.forEach(i=>{delete t[i.alias]}):this.props.seriesList.forEach(i=>{i.alias!==e.alias&&(t[i.alias]=!0)}),t}render(){const{optionalClass:e,rightSide:t,sideWidth:s,sort:i,sortDesc:o,hideEmpty:a,hideZero:l,values:r,min:h,max:u,avg:g,current:m,total:f,renderCallback:x}=this.props,T={values:r,min:h,max:u,avg:g,current:m,total:f},P=this.state.hiddenSeries,w={hideEmpty:a,hideZero:l},C={sort:i,sortDesc:o},O=this.sortLegend().filter(k=>!k.hideFromLegend(w)),D=`${this.props.alignAsTable?"graph-legend-table":""} ${e}`,V=t&&s?s:void 0,j=t&&s?s-1:void 0,I={minWidth:V,width:j},G={seriesList:O,hiddenSeries:P,onToggleSeries:this.onToggleSeries,onToggleAxis:this.props.onToggleAxis,onToggleSort:this.props.onToggleSort,onColorChange:this.props.onColorChange,...T,...C};return y.createElement("div",{className:`graph-legend-content ${D}`,ref:x,style:I},this.props.alignAsTable?y.createElement(qe,{...G}):y.createElement(Je,{...G}))}}Te.defaultProps={values:!1,min:!1,max:!1,avg:!1,current:!1,total:!1,alignAsTable:!1,rightSide:!1,sort:void 0,sortDesc:!1,optionalClass:"",onToggleSeries:()=>{},onToggleSort:()=>{},onToggleAxis:()=>{},onColorChange:()=>{}};class Je extends y.PureComponent{render(){const{seriesList:e,hiddenSeries:t,values:s,min:i,max:o,avg:a,current:l,total:r}=this.props,h={values:s,min:i,max:o,avg:a,current:l,total:r};return e.map((u,g)=>y.createElement(ue,{key:`${u.id}-${g}`,series:u,hidden:t[u.alias],...h,onLabelClick:this.props.onToggleSeries,onColorChange:this.props.onColorChange,onToggleAxis:this.props.onToggleAxis}))}}class qe extends y.PureComponent{constructor(){super(...arguments),this.onToggleSort=e=>{if(!this.props.onToggleSort)return;let t=this.props.sortDesc,s=this.props.sort;e!==s&&(t=void 0),t===!1?(s=void 0,t=void 0):(t=!t,s=e),this.props.onToggleSort(s,t)}}render(){const e=this.props.seriesList,{values:t,min:s,max:i,avg:o,current:a,total:l,sort:r,sortDesc:h,hiddenSeries:u}=this.props,g={values:t,min:s,max:i,avg:o,current:a,total:l};return e?y.createElement("table",{role:"grid"},y.createElement("colgroup",null,y.createElement("col",{style:{width:"100%"}})),y.createElement("thead",null,y.createElement("tr",null,y.createElement("th",{style:{textAlign:"left"}}),Ce.map(m=>g[m]&&y.createElement(et,{key:m,statName:m,sort:r,sortDesc:h,onClick:this.onToggleSort})))),y.createElement("tbody",null,e&&e.map((m,f)=>y.createElement(ue,{key:`${m.id}-${f}`,asTable:!0,series:m,hidden:u[m.alias],onLabelClick:this.props.onToggleSeries,onColorChange:this.props.onColorChange,onToggleAxis:this.props.onToggleAxis,...g})))):null}}class et extends y.PureComponent{constructor(){super(...arguments),this.onClick=()=>{this.props.onClick&&this.props.onClick(this.props.statName)}}render(){const{statName:e,sort:t,sortDesc:s}=this.props;return y.createElement("th",{className:"pointer",onClick:this.onClick},e,t===e&&y.createElement(je.I,{name:s?"angle-down":"angle-up"}))}}class tt extends y.PureComponent{render(){return y.createElement(Ge.E,{hideHorizontalTrack:!0},y.createElement(Te,{...this.props}))}}const Jt=null;function st(n,e){if(isNaN(e)||!ot(n))return;const[t,s]=n;nt(t,s,e),it(t,s);const i=t.min===0||s.min===0||t.max===0||s.max===0,o=Me(t,s);if(i&&o)t.min=t.max>0?0:t.min,t.max=t.max>0?t.max:0,s.min=s.max>0?0:s.min,s.max=s.max>0?s.max:0;else if(rt(t,s))t.min>=0?(t.min=-t.max,s.max=-s.min):(t.max=-t.min,s.min=-s.max);else{const a=lt(t,s);o?t.min>0?(t.min=t.max/a,s.min=s.max/a):(t.max=t.min/a,s.max=s.min/a):Se(t,s)?(t.min=s.min?s.min*a:t.min,s.min=t.min?t.min/a:s.min,t.max=s.max?s.max*a:t.max,s.max=t.max?t.max/a:s.max):(t.min=t.min>0?s.min*a:t.min,s.min=s.min>0?t.min/a:s.min,t.max=t.max<0?s.max*a:t.max,s.max=s.max<0?t.max/a:s.max)}at(t,s,e)}function it(n,e){n.max===n.min&&(n.min-=.25,n.max+=.25),e.max===e.min&&(e.min-=.25,e.max+=.25)}function nt(n,e,t){t!==0&&(n.min-=t,n.max-=t,e.min-=t,e.max-=t)}function at(n,e,t){t!==0&&(n.min+=t,n.max+=t,e.min+=t,e.max+=t)}function ot(n){return n.length===2&&Ee(n[0])&&Ee(n[1])}function Ee(n){return"min"in n&&"max"in n}function Me(n,e){return n.min>=0&&e.min>=0||n.max<=0&&e.max<=0}function Se(n,e){return n.min<=0&&n.max>=0&&e.min<=0&&e.max>=0}function rt(n,e){return n.min>=0&&e.max<=0||n.max<=0&&e.min>=0}function lt(n,e){if(Se(n,e)){const t=e.min?n.min/e.min:0,s=e.max?n.max/e.max:0;return t>s?t:s}if(Me(n,e)){const t=Math.abs(n.min),s=Math.abs(n.max),i=Math.abs(e.min),o=Math.abs(e.max),a=Math.max(t,s),l=Math.min(t,s),r=Math.max(i,o),h=Math.min(i,o),u=l!==0?a/l:a,g=h!==0?r/h:r;return u>g?u:g}return n.min>0||e.min>0?n.max/e.max:n.min/e.min}var ge=d(84140),K=d(24284);class ht{constructor(e){this.panelCtrl=e,this.event=null,this.editorOpen=!1}editorClosed(){this.event=null,this.editorOpen=!1,this.panelCtrl.render()}editorOpened(){this.editorOpen=!0}updateTime(e){this.event||(this.event={},this.event.dashboardUID=this.panelCtrl.dashboard.uid,this.event.panelId=this.panelCtrl.panel.id),this.event.time=e.from,this.event.isRegion=!1,e.to&&(this.event.timeEnd=e.to,this.event.isRegion=!0),this.panelCtrl.render()}editEvent(e,t){this.event=e,this.panelCtrl.render()}addFlotEvents(e,t){if(!this.event&&e.length===0)return;const s={$__alerting:{color:K.xj,position:"BOTTOM",markerSize:5},$__ok:{color:K.Xw,position:"BOTTOM",markerSize:5},$__no_data:{color:K.nO,position:"BOTTOM",markerSize:5},$__pending:{color:K.ct,position:"BOTTOM",markerSize:5},$__editing:{color:K.Mk,position:"BOTTOM",markerSize:5}};if(this.event)this.event.isRegion?e=[{isRegion:!0,min:this.event.time,timeEnd:this.event.timeEnd,text:this.event.text,eventType:"$__editing",editModel:this.event}]:e=[{min:this.event.time,text:this.event.text,editModel:this.event,eventType:"$__editing"}];else for(let l=0;l{o.source?i=o.color||s:i=s,i=pt(i,K.UJ),t.push({xaxis:{from:o.min,to:o.timeEnd},color:i})})}function pt(n,e){const t=(0,ge.A)(n);return t.isValid()?(t.setAlpha(e),t.toRgbString()):n}var H=d(42994),q=d(40672),Oe=d(80348);function ut(n,e,t,s){const i=this,a=t.ctrl.panel,l=new z.kb({pos:{},point:{},panel:this.panel}),r=c()('",g.highlight(D.index,D.hoverIndex)}i.renderAndShow(O,I,h,x)}else if(u){const k=q.sQ.sanitize(u.series.color);j=T[u.seriesIndex],w='
`;class oe extends Ft.F{constructor(e,t){super(e,t),this.renderError=!1,this.hiddenSeries={},this.hiddenSeriesTainted=!1,this.seriesList=[],this.dataList=[],this.annotations=[],this.colors=[],this.subTabIndex=0,this.panelDefaults={datasource:null,renderer:"flot",yaxes:[{label:null,show:!0,logBase:1,min:null,max:null,format:"short"},{label:null,show:!0,logBase:1,min:null,max:null,format:"short"}],xaxis:{show:!0,mode:"time",name:null,values:[],buckets:null},yaxis:{align:!1,alignLevel:null},lines:!0,fill:1,fillGradient:0,linewidth:1,dashes:!1,hiddenSeries:!1,dashLength:10,spaceLength:10,points:!1,pointradius:2,bars:!1,stack:!1,percentage:!1,legend:{show:!0,values:!1,min:!1,max:!1,current:!1,total:!1,avg:!1},nullPointMode:"null",steppedLine:!1,tooltip:{value_type:"individual",shared:!0,sort:0},timeFrom:null,timeShift:null,targets:[{}],aliasColors:{},seriesOverrides:[],thresholds:[],timeRegions:[],options:{alertThreshold:!0}},this.onColorChange=(i,o)=>{i.setColor(N.Ay.theme2.visualization.getColorByName(o)),this.panel.aliasColors[i.alias]=o,this.render()},this.onToggleSeries=i=>{this.hiddenSeriesTainted=!0,this.hiddenSeries=i,this.render()},this.onToggleSort=(i,o)=>{this.panel.legend.sort=i,this.panel.legend.sortDesc=o,this.render()},this.onToggleAxis=i=>{let o=(0,p.find)(this.panel.seriesOverrides,{alias:i.alias});o||(o={alias:i.alias},this.panel.seriesOverrides.push(o)),o.yaxis=i.yaxis,this.render()},this.onContextMenuClose=()=>{this.contextMenuCtrl.toggleMenu()},this.getTimeZone=()=>this.dashboard.getTimezone(),this.getDataFrameByRefId=i=>this.dataList.filter(o=>o.refId===i)[0],(0,p.defaults)(this.panel,this.panelDefaults),(0,p.defaults)(this.panel.tooltip,this.panelDefaults.tooltip),(0,p.defaults)(this.panel.legend,this.panelDefaults.legend),(0,p.defaults)(this.panel.xaxis,this.panelDefaults.xaxis),(0,p.defaults)(this.panel.options,this.panelDefaults.options),this.useDataFrames=!0,this.processor=new Qt(this.panel),this.contextMenuCtrl=new Kt(e),this.events.on(z.ee.render,this.onRender.bind(this)),this.events.on(z.ee.dataFramesReceived,this.onDataFramesReceived.bind(this)),this.events.on(z.ee.dataSnapshotLoad,this.onDataSnapshotLoad.bind(this)),this.events.on(z.ee.editModeInitialized,this.onInitEditMode.bind(this)),this.events.on(z.ee.initPanelActions,this.onInitPanelActions.bind(this));const s=this.panel.fieldConfig.defaults.unit;s&&(this.panel.yaxes[0].format=s)}onInitEditMode(){this.addEditorTab("Display","public/app/plugins/panel/graph/tab_display.html"),this.addEditorTab("Series overrides","public/app/plugins/panel/graph/tab_series_overrides.html"),this.addEditorTab("Axes",Gt),this.addEditorTab("Legend","public/app/plugins/panel/graph/tab_legend.html"),this.addEditorTab("Thresholds","public/app/plugins/panel/graph/tab_thresholds.html"),this.addEditorTab("Time regions","public/app/plugins/panel/graph/tab_time_regions.html"),this.subTabIndex=0,this.hiddenSeriesTainted=!1}onInitPanelActions(e){e.push({text:"Toggle legend",click:"ctrl.toggleLegend()",shortcut:"p l"})}zoomOut(e){ce.lE.publish(new $t.U0({scale:2}))}onDataSnapshotLoad(e){const{series:t,annotations:s}=(0,Vt.d)(this.panel,this.dashboard);this.panelData.annotations=s,this.onDataFramesReceived(t)}onDataFramesReceived(e){this.dataList=e,this.seriesList=this.processor.getSeriesList({dataList:this.dataList,range:this.range}),this.dataWarning=this.getDataWarning(),this.alertState=void 0,this.seriesList.alertState=void 0,this.panelData.alertState&&(this.alertState=this.panelData.alertState,this.seriesList.alertState=this.alertState.state),this.annotations=[],this.panelData.annotations?.length&&(this.annotations=(0,Ht.H)(this.panelData.annotations)),this.loading=!1,this.render(this.seriesList)}getDataWarning(){if(this.seriesList.reduce((i,o)=>i+o.datapoints.length,0)===0){if(this.dataList){for(const i of this.dataList)if(i.length&&i.fields?.length)return{title:"Unable to graph data",tip:"Data exists, but is not timeseries",actionText:"Switch to table view",action:()=>{(0,zt.JD)((0,Ut.gW)({panel:this.panel,pluginId:"table"}))}}}return{title:"No data",tip:"No data returned from query"}}for(const i of this.seriesList)if(!i.isOutsideRange)return;const t={title:"Data outside time range",tip:"Can be caused by timezone mismatch or missing time filter in query"},s=Mt(this.dataList);return s&&(t.actionText="Zoom to data",t.action=()=>{Nt.Ny.partial({from:s.from,to:s.to})}),t}onRender(){if(this.seriesList){Bt.X.alertToGraphThresholds(this.panel);for(const e of this.seriesList)e.applySeriesOverrides(this.panel.seriesOverrides),e.unit&&(this.panel.yaxes[e.yaxis-1].format=e.unit),this.hiddenSeriesTainted===!1&&e.hiddenSeries===!0&&(this.hiddenSeries[e.alias]=!0)}}addSeriesOverride(e){this.panel.seriesOverrides.push(e||{})}removeSeriesOverride(e){this.panel.seriesOverrides=(0,p.without)(this.panel.seriesOverrides,e),this.render()}toggleLegend(){this.panel.legend.show=!this.panel.legend.show,this.render()}legendValuesOptionChanged(){const e=this.panel.legend;e.values=e.min||e.max||e.avg||e.current||e.total,this.render()}migrateToReact(){this.onPluginTypeChange(N.Ay.panels.timeseries)}}oe.template=Zt,oe.$inject=["$scope","$injector"];const Re=new Wt.m(null).useFieldConfig({disableStandardOptions:[_.uo.NoValue,_.uo.Thresholds,_.uo.Max,_.uo.Min,_.uo.Decimals,_.uo.Color,_.uo.Mappings]}).setDataSupport({annotations:!0,alertStates:!0}).setMigrationHandler(jt);Re.angularPanelCtrl=oe}}]);
//# sourceMappingURL=graphPlugin.f47f722cdfc0ceb85136.js.map