D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
share
/
grafana
/
public
/
build
/
Filename :
AlertRuleListIndex.9efaa12b2f2af6e907d1.js
back
Copy
"use strict";(self.webpackChunkgrafana=self.webpackChunkgrafana||[]).push([[2461,4286],{75330:(de,Q,a)=>{a.r(Q),a.d(Q,{AlertRuleListUnconnected:()=>h,default:()=>p});var n=a(27702),e=a(27173),z=a(26129),M=a(34667),C=a(33716),O=a(28580),x=a(66670),b=a(64022),q=a(5933),Y=a(44644),w=a(43620),le=a(13741);function F({onDismiss:c}){return n.createElement(le.u,{title:"Adding an Alert",isOpen:!0,onDismiss:c,onClickBackdrop:c},n.createElement(b.wc,{spacing:"sm"},n.createElement("img",{src:"public/img/alert_howto_new.png",alt:""}),n.createElement("p",null,"Alerts are added and configured in the Alert tab of any dashboard graph panel, letting you build and visualize an alert using existing queries."),n.createElement("p",null,"Remember to save the dashboard to persist your alert rule changes.")))}var G=a(3819),$=a.n(G),J=a(50230),X=a(73453);const Ee=({rule:c,search:s,onTogglePause:v})=>{const f=`${c.url}?editPanel=${c.panelId}&tab=alert`,S=(0,n.useCallback)(W=>n.createElement($(),{key:W,highlightClassName:"highlight-search-match",textToHighlight:W,searchWords:[s]}),[s]);return n.createElement(J.Z,null,n.createElement(J.Z.Heading,null,S(c.name)),n.createElement(J.Z.Figure,null,n.createElement(X.J,{size:"xl",name:c.stateIcon,className:`alert-rule-item__icon ${c.stateClass}`})),n.createElement(J.Z.Meta,null,n.createElement("span",{key:"state"},n.createElement("span",{key:"text",className:`${c.stateClass}`},S(c.stateText)," "),"for ",c.stateAge),c.info?S(c.info):null),n.createElement(J.Z.Actions,null,n.createElement(x.zx,{key:"play",variant:"secondary",icon:c.state==="paused"?"play":"pause",onClick:v},c.state==="paused"?"Resume":"Pause"),n.createElement(x.Qj,{key:"edit",variant:"secondary",href:f,icon:"cog"},"Edit alert")))};var Se=a(63439);const Le="grafana.legacyalerting.unifiedalertingpromo",ie=()=>n.createElement(Se.b,{severity:"warning",title:"Grafana legacy alerting is deprecated and will be removed in a future release."},n.createElement("p",null,"You are using Grafana legacy alerting, which has been deprecated since Grafana 9.0. The codebase is now staying as is and will be removed in Grafana 11.0.",n.createElement("br",null),"We recommend upgrading to Grafana Alerting as soon as possible."),n.createElement("p",null,"See"," ",n.createElement("a",{href:"https://grafana.com/docs/grafana/latest/alerting/migrating-alerts/"},"how to upgrade to Grafana Alerting")," ","to learn more."));var ve=a(53596),ye=a(64216);const xe=c=>c.searchQuery,Ce=c=>{const s=new RegExp(c.alertRules.searchQuery,"i");return c.alertRules.items.filter(v=>s.test(v.name)||s.test(v.stateText)||s.test(v.info))},Ne=(c,s)=>c.notificationChannel.id===s?c.notificationChannel:null;function Ae(c){return{alertRules:Ce(c),search:xe(c.alertRules),isLoading:c.alertRules.isLoading}}const pe={getAlertRulesAsync:ve.Au,setSearchQuery:ye.ql,togglePauseAlertRule:ve.en},Pe=(0,e.connect)(Ae,pe);class h extends n.PureComponent{constructor(){super(...arguments),this.stateFilters=[{label:"All",value:"all"},{label:"OK",value:"ok"},{label:"Not OK",value:"not_ok"},{label:"Alerting",value:"alerting"},{label:"No data",value:"no_data"},{label:"Paused",value:"paused"},{label:"Pending",value:"pending"}],this.onStateFilterChanged=s=>{z.E1.partial({state:s.value})},this.onOpenHowTo=()=>{q.Z.publish(new w.Dn({component:F}))},this.onSearchQueryChange=s=>{this.props.setSearchQuery(s)},this.onTogglePause=s=>{this.props.togglePauseAlertRule(s.id,{paused:s.state!=="paused"})},this.alertStateFilterOption=({text:s,value:v})=>n.createElement("option",{key:v,value:v},s)}componentDidMount(){this.fetchRules()}componentDidUpdate(s){s.queryParams.state!==this.props.queryParams.state&&this.fetchRules()}async fetchRules(){await this.props.getAlertRulesAsync({state:this.getStateFilter()})}getStateFilter(){return this.props.queryParams.state??"all"}render(){const{alertRules:s,search:v,isLoading:f}=this.props;return n.createElement(Y.T,{navId:"alert-list"},n.createElement(Y.T.Contents,{isLoading:f},n.createElement("div",{className:"page-action-bar"},n.createElement("div",{className:"gf-form gf-form--grow"},n.createElement(C.H,{placeholder:"Search alerts",value:v,onChange:this.onSearchQueryChange})),n.createElement("div",{className:"gf-form"},n.createElement("label",{className:"gf-form-label",htmlFor:"alert-state-filter"},"States"),n.createElement("div",{className:"width-13"},n.createElement(O.Ph,{inputId:"alert-state-filter",options:this.stateFilters,onChange:this.onStateFilterChanged,value:this.getStateFilter()}))),n.createElement("div",{className:"page-action-bar__spacer"}),M.config.unifiedAlertingEnabled&&n.createElement(x.Qj,{variant:"primary",href:"alerting/ng/new"},"Add NG Alert"),n.createElement(x.zx,{variant:"secondary",onClick:this.onOpenHowTo},"How to add an alert")),n.createElement(ie,null),n.createElement(b.wc,{spacing:"none"},s.map(S=>n.createElement(Ee,{rule:S,key:S.id,search:v,onTogglePause:()=>this.onTogglePause(S)})))))}}const p=Pe(h)},53596:(de,Q,a)=>{a.d(Q,{Au:()=>O,C2:()=>b,c1:()=>Y,en:()=>x,fA:()=>w,fg:()=>q,tk:()=>le});var n=a(73289),e=a(26129),z=a(33877),M=a(73807),C=a(64216);function O(F){return async G=>{G((0,C.gz)());const $=await(0,n.i)().get("/api/alerts",F);G((0,C.Oc)($))}}function x(F,G){return async $=>{await(0,n.i)().post(`/api/alerts/${F}/pause`,G);const J=e.E1.getSearchObject().state||"all";$(O({state:J.toString()}))}}function b(F){return async G=>{try{await(0,n.i)().post("/api/alert-notifications",F),G((0,z.$l)((0,M.AT)("Notification created"))),e.E1.push("/alerting/notifications")}catch($){(0,n.kW)($)&&G((0,z.$l)((0,M.t_)($.data.error)))}}}function q(F){return async G=>{try{await(0,n.i)().put(`/api/alert-notifications/${F.id}`,F),G((0,z.$l)((0,M.AT)("Notification updated")))}catch($){(0,n.kW)($)&&G((0,z.$l)((0,M.t_)($.data.error)))}}}function Y(F){return async(G,$)=>{const J=$().notificationChannel.notificationChannel;await(0,n.i)().post("/api/alert-notifications/test",{id:J.id,...F})}}function w(){return async F=>{const $=(await(0,n.i)().get("/api/alert-notifiers")).sort((J,X)=>J.name>X.name?1:-1);F((0,C.T2)($))}}function le(F){return async G=>{await G(w());const $=await(0,n.i)().get(`/api/alert-notifications/${F}`);G((0,C.K)($))}}},11555:(de,Q,a)=>{a.r(Q),a.d(Q,{default:()=>ta});var n=a(42844),e=a(27702),z=a(26811),M=a(68873),C=a(23852),O=a(37647),x=a(66310),b=a(66670),q=a(89033),Y=a(18771),w=a(28722),le=a(7662),F=a(78968),G=a(89746),$=a(79655),J=a(80434),X=a(73453),ge=a(13963),Ee=a(59597);function Se({}){const{canCreateGrafanaRules:t,canCreateCloudRules:r,canReadProvisioning:o}=(0,ge.B)(),u=(0,le.TH)(),l=e.createElement(G.v,null,(t||r)&&e.createElement($.s,{url:F.Cj.renderUrl("alerting/new/recording",{returnTo:u.pathname+u.search}),label:"New recording rule"}),o&&e.createElement($.s,{url:(0,Ee.u)("/api/v1/provisioning/alert-rules/export",{download:"true",format:"yaml"}),label:"Export all",target:"_blank"}));return e.createElement(e.Fragment,null,(t||r)&&e.createElement(b.Qj,{href:F.Cj.renderUrl("alerting/new/alerting",{returnTo:u.pathname+u.search}),icon:"plus",onClick:()=>(0,w.PN)(w.z7.alertRuleFromScratch)},"New alert rule"),e.createElement(J.L,{overlay:l},e.createElement(b.zx,{variant:"secondary"},"More",e.createElement(X.J,{name:"angle-down"}))))}var Le=a(81324),ie=a(91106),ve=a(60801),ye=a(66970);const xe=()=>{const{canCreateGrafanaRules:t,canCreateCloudRules:r}=(0,ge.B)(),o=(0,x.wW)(Ce);return t||r?e.createElement("div",null,e.createElement("p",null,"You haven't created any alert rules yet"),e.createElement(C.K,{direction:"row",gap:1,alignItems:"stretch",flexGrow:1},e.createElement("div",{className:o.newRuleCard},e.createElement(ye.Z,{title:"",buttonIcon:"bell",buttonLink:"alerting/new/alerting",buttonTitle:"New alert rule",proTip:"you can also create alert rules from existing panels and queries.",proTipLink:"https://grafana.com/docs/",proTipLinkTitle:"Learn more",proTipTarget:"_blank",onClick:()=>(0,ie.PN)(w.z7.alertRuleFromScratch)})),e.createElement("div",{className:o.newRuleCard},e.createElement(ye.Z,{title:"",buttonIcon:"plus",buttonLink:"alerting/new/recording",buttonTitle:"New recording rule",onClick:()=>(0,ie.PN)(w.z7.recordingRuleFromScratch)})))):e.createElement(ve._,{message:"No rules exist yet.",callToActionElement:e.createElement("div",null)})},Ce=t=>({newRuleCard:(0,n.css)` width: calc(50% - ${t.spacing(1)}); > div { height: 100%; } `});var Ne=a(93764),Ae=a(6772),pe=a.n(Ae),Pe=a(84789),h=a(63439),p=a(80011),c=a(10027),s=a(22513),v=a(39036),f=a(22446);function S(){const[t,r]=(0,e.useState)(!1),[o,u]=(0,Pe.Z)("grafana.unifiedalerting.hideErrors",!1),l=(0,c._)(g=>g.dataSources),i=(0,c._)(g=>g.promRules),m=(0,c._)(g=>g.rulerRules),d=(0,x.wW)(ee),E=(0,e.useMemo)(()=>{const[g,A,N]=[l,i,m].map(P=>(0,s.Eu)().reduce((R,B)=>{const ne=P[B.name]?.error;return P[B.name]&&ne&&!(0,f.m$)(P[B.name])?[...R,{dataSource:B,error:ne}]:R},[])),D=i[s.GC]?.error,I=m[s.GC]?.error,T=[];return D&&T.push(e.createElement(e.Fragment,null,"Failed to load Grafana rules state: ",D.message||"Unknown error.")),I&&T.push(e.createElement(e.Fragment,null,"Failed to load Grafana rules config: ",I.message||"Unknown error.")),g.forEach(({dataSource:P,error:R})=>{T.push(e.createElement(e.Fragment,null,"Failed to load the data source configuration for"," ",e.createElement("a",{href:(0,v.__)(P),className:d.dsLink},P.name),": ",R.message||"Unknown error."))}),A.forEach(({dataSource:P,error:R})=>T.push(e.createElement(e.Fragment,null,"Failed to load rules state from"," ",e.createElement("a",{href:(0,v.__)(P),className:d.dsLink},P.name),": ",R.message||"Unknown error."))),N.forEach(({dataSource:P,error:R})=>T.push(e.createElement(e.Fragment,null,"Failed to load rules config from"," ",e.createElement("a",{href:(0,v.__)(P),className:d.dsLink},P.name),": ",R.message||"Unknown error."))),T},[l,i,m,d.dsLink]);return e.createElement(e.Fragment,null,!!E.length&&o&&e.createElement(W,{count:E.length,onClick:()=>u(g=>!g)}),!!E.length&&!o&&e.createElement(h.b,{"data-testid":"cloud-rulessource-errors",title:"Errors loading rules",severity:"error",onRemove:()=>u(!0)},t&&E.map((g,A)=>e.createElement("div",{key:A},g)),!t&&e.createElement(e.Fragment,null,e.createElement("div",null,E[0]),E.length>=2&&e.createElement(b.zx,{className:d.moreButton,fill:"text",icon:"angle-right",size:"sm",onClick:()=>r(!0)},E.length-1," more ",pe()("error",E.length-1)))))}const W=({count:t,onClick:r})=>{const o=(0,x.wW)(ee);return e.createElement("div",{className:o.floatRight},e.createElement(p.u,{content:"Show all errors",placement:"bottom"},e.createElement(b.zx,{fill:"text",variant:"destructive",icon:"exclamation-triangle",onClick:r},t>1?e.createElement(e.Fragment,null,t," errors"):e.createElement(e.Fragment,null,"1 error"))))},ee=t=>({moreButton:(0,n.css)` padding: 0; `,floatRight:(0,n.css)` display: flex; justify-content: flex-end; `,dsLink:(0,n.css)` font-weight: ${t.typography.fontWeightBold}; `});var ae=a(89439),ce=a(52419),oe=a(62108),Me=a(50852),Ue=a(97957),fe=a(92367),te=a(36148),Ie=a(84369),Te=a(64022),Be=a(25357),lt=a(3613),ot=a(80171),it=a(93364),Oe=a(47702),we=a(10759),Ve=a(14158),he=a(18686),ct=a(98658),ut=a(89898),Ze=a.n(ut),be=a(89949),ze=a(85532),mt=a(13741),dt=a(84749),gt=a(96437),pt=a(68614);const ft=t=>{const{group:r,namespace:o,onClose:u}=t,[l,i]=(0,e.useState)(!1),[m,d]=(0,e.useState)(r.rules),E=(0,x.wW)(je),g=(0,e.useCallback)(N=>{if(!N.destination||N.destination.index===N.source.index)return;const I=Et(m,N.source.index,N.destination.index);d(I);const T=(0,s.EG)(o.rulesSource),P=(0,be.compact)(I.map(R=>R.rulerRule));i(!0),(0,dt.WI)((0,Oe.tg)({namespaceName:o.name,groupName:r.name,rulesSourceName:T,newRules:P})).unwrap().finally(()=>{i(!1)})},[r.name,o.name,o.rulesSource,m]),A=m.map(N=>({...N,uid:String((0,gt.Om)(N.rulerRule))}));return e.createElement(mt.u,{className:E.modal,isOpen:!0,title:e.createElement(ht,{namespace:o,group:r}),onDismiss:u,onClickBackdrop:u},e.createElement(ze.Z5,{onDragEnd:g},e.createElement(ze.bK,{droppableId:"alert-list",mode:"standard",renderClone:(N,D,I)=>e.createElement(Je,{provided:N,rule:A[I.source.index],isClone:!0})},N=>e.createElement("div",{ref:N.innerRef,className:Ze()(E.listContainer,l&&E.disabled),...N.droppableProps},A.map((D,I)=>e.createElement(ze._l,{key:D.uid,draggableId:D.uid,index:I,isDragDisabled:l},T=>e.createElement(Je,{key:D.uid,provided:T,rule:D}))),N.placeholder))))},Je=({provided:t,rule:r,isClone:o=!1,isDragging:u=!1})=>{const l=(0,x.wW)(je);return e.createElement("div",{className:Ze()(l.listItem,o&&"isClone",u&&"isDragging"),ref:t.innerRef,...t.draggableProps,...t.dragHandleProps},(0,f.x_)(r.promRule)&&e.createElement(pt.l,{state:r.promRule.state}),(0,f.OP)(r.promRule)&&e.createElement(Be.C,{text:"Recording",color:"blue"}),e.createElement("div",{className:l.listItemName},r.name),e.createElement(X.J,{name:"draggabledots"}))},ht=({namespace:t,group:r})=>{const o=(0,x.wW)(je);return e.createElement("div",{className:o.header},e.createElement(X.J,{name:"folder"}),(0,s.jq)(t.rulesSource)&&e.createElement(p.u,{content:t.rulesSource.name,placement:"top"},e.createElement("img",{alt:t.rulesSource.meta.name,className:o.dataSourceIcon,src:t.rulesSource.meta.info.logos.small})),e.createElement("span",null,t.name),e.createElement(X.J,{name:"angle-right"}),e.createElement("span",null,r.name))},je=t=>({modal:(0,n.css)` max-width: 640px; max-height: 80%; overflow: hidden; `,listItem:(0,n.css)` display: flex; flex-direction: row; align-items: center; gap: ${t.spacing()}; background: ${t.colors.background.primary}; color: ${t.colors.text.secondary}; border-bottom: solid 1px ${t.colors.border.medium}; padding: ${t.spacing(1)} ${t.spacing(2)}; &:last-child { border-bottom: none; } &.isClone { border: solid 1px ${t.colors.primary.shade}; } `,listContainer:(0,n.css)` user-select: none; border: solid 1px ${t.colors.border.medium}; `,disabled:(0,n.css)` opacity: 0.5; pointer-events: none; `,listItemName:(0,n.css)` flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; `,header:(0,n.css)` display: flex; align-items: center; gap: ${t.spacing(1)}; `,dataSourceIcon:(0,n.css)` width: ${t.spacing(2)}; height: ${t.spacing(2)}; `});function Et(t,r,o){const u=Array.from(t),[l]=u.splice(r,1);return u.splice(o,0,l),u}var Ye=a(94696),Xe=a(3312);const Ke=e.memo(({group:t,namespace:r,expandAll:o,viewMode:u})=>{const{rulesSource:l}=r,i=(0,Y.useDispatch)(),m=(0,x.wW)(vt),[d,E]=(0,e.useState)(!1),[g,A]=(0,e.useState)(!1),[N,D]=(0,e.useState)(!1),[I,T]=(0,e.useState)(!o),{canEditRules:P}=(0,ge.B)();(0,e.useEffect)(()=>{T(!o)},[o]);const{hasRuler:R,rulerRulesLoaded:B}=(0,it.h)(),ne=t.rules[0]?.rulerRule,L=ne&&(0,f.Pc)(ne)&&ne.grafana_alert.namespace_uid||void 0,{folder:U}=(0,ot.W)(L),re=R(l)&&B(l)&&!t.rules.find(Z=>!!Z.rulerRule),V=(0,f.Jq)(t),H=t.rules.some(Z=>(0,f.Pc)(Z.rulerRule)&&Z.rulerRule.grafana_alert.provenance),j=u==="list",me=u==="grouped",k=()=>{i((0,Oe.oE)(r,t)),A(!1)},y=[];if(re)y.push(e.createElement(Te.Lh,{key:"is-deleting"},e.createElement(oe.$,null),"deleting"));else if(l===s.GC){if(L){const Z=(0,v.HV)(L);U?.canSave&&(me&&!H&&(y.push(e.createElement(he.A,{"aria-label":"edit rule group","data-testid":"edit-group",key:"edit",icon:"pen",tooltip:"edit rule group",onClick:()=>E(!0)})),y.push(e.createElement(he.A,{"aria-label":"re-order rules","data-testid":"reorder-group",key:"reorder",icon:"exchange-alt",tooltip:"reorder rules",className:m.rotate90,onClick:()=>D(!0)}))),j&&y.push(e.createElement(he.A,{"aria-label":"go to folder",key:"goto",icon:"folder-open",tooltip:"go to folder",to:Z,target:"__blank"}))),U?.canAdmin&&j&&y.push(e.createElement(he.A,{"aria-label":"manage permissions",key:"manage-perms",icon:"lock",tooltip:"manage permissions",to:Z+"/permissions",target:"__blank"}))}}else P(l.name)&&R(l)&&(V||(y.push(e.createElement(he.A,{"aria-label":"edit rule group","data-testid":"edit-group",key:"edit",icon:"pen",tooltip:"edit rule group",onClick:()=>E(!0)})),y.push(e.createElement(he.A,{"aria-label":"re-order rules","data-testid":"reorder-group",key:"reorder",icon:"exchange-alt",tooltip:"re-order rules",className:m.rotate90,onClick:()=>D(!0)}))),y.push(e.createElement(he.A,{"aria-label":"delete rule group","data-testid":"delete-group",key:"delete-group",icon:"trash-alt",tooltip:"delete rule group",onClick:()=>A(!0)})));const se=j?e.createElement(Ve.V,{namespace:r.name}):e.createElement(Ve.V,{namespace:r.name,group:t.name}),$e=(Z=!1)=>{Z||(0,ie.PN)(w.z7.leavingRuleGroupEdit),E(!1)};return e.createElement("div",{className:m.wrapper,"data-testid":"rule-group"},e.createElement("div",{className:m.header,"data-testid":"rule-group-header"},e.createElement(we.U,{size:"sm",className:m.collapseToggle,isCollapsed:I,onToggle:T,"data-testid":"group-collapse-toggle"}),e.createElement(X.J,{name:I?"folder":"folder-open"}),(0,s.jq)(l)&&e.createElement(p.u,{content:l.name,placement:"top"},e.createElement("img",{alt:l.meta.name,className:m.dataSourceIcon,src:l.meta.info.logos.small})),e.createElement("div",{className:m.groupName,onClick:()=>T(!I)},V&&e.createElement(Be.C,{color:"purple",text:"Federated"})," ",se),e.createElement("div",{className:m.spacer}),e.createElement("div",{className:m.headerStats},e.createElement(Ye.Pb,{group:t})),H&&e.createElement(e.Fragment,null,e.createElement("div",{className:m.actionsSeparator},"|"),e.createElement("div",{className:m.actionIcons},e.createElement(Be.C,{color:"purple",text:"Provisioned"}))),!!y.length&&e.createElement(e.Fragment,null,e.createElement("div",{className:m.actionsSeparator},"|"),e.createElement("div",{className:m.actionIcons},e.createElement(C.K,{gap:.5},y)))),!I&&e.createElement(Xe.i,{showSummaryColumn:!0,className:m.rulesTable,showGuidelines:!0,showNextEvaluationColumn:!!t.interval,rules:t.rules}),d&&e.createElement(ct.vq,{namespace:r,group:t,onClose:()=>$e(),folderUrl:U?.canEdit?(0,v.aH)(U):void 0}),N&&e.createElement(ft,{group:t,namespace:r,onClose:()=>D(!1)}),e.createElement(lt.s,{isOpen:g,title:"Delete group",body:e.createElement("div",null,e.createElement("p",null,'Deleting "',e.createElement("strong",null,t.name),'" will permanently remove the group and'," ",t.rules.length," alert ",pe()("rule",t.rules.length)," belonging to it."),e.createElement("p",null,"Are you sure you want to delete this group?")),onConfirm:k,onDismiss:()=>A(!1),confirmText:"Delete"}))});Ke.displayName="RulesGroup";const vt=t=>({wrapper:(0,n.css)``,header:(0,n.css)` display: flex; flex-direction: row; align-items: center; padding: ${t.spacing(1)} ${t.spacing(1)} ${t.spacing(1)} 0; flex-wrap: nowrap; border-bottom: 1px solid ${t.colors.border.weak}; &:hover { background-color: ${t.components.table.rowHoverBackground}; } `,headerStats:(0,n.css)` flex-shrink: 0; span { vertical-align: middle; } ${t.breakpoints.down("sm")} { order: 2; width: 100%; padding-left: ${t.spacing(1)}; } `,groupName:(0,n.css)` margin-left: ${t.spacing(1)}; margin-bottom: 0; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; `,spacer:(0,n.css)` flex: 1; `,collapseToggle:(0,n.css)` background: none; border: none; margin-top: -${t.spacing(1)}; margin-bottom: -${t.spacing(1)}; svg { margin-bottom: 0; } `,dataSourceIcon:(0,n.css)` width: ${t.spacing(2)}; height: ${t.spacing(2)}; margin-left: ${t.spacing(2)}; `,dataSourceOrigin:(0,n.css)` margin-right: 1em; color: ${t.colors.text.disabled}; `,actionsSeparator:(0,n.css)` margin: 0 ${t.spacing(2)}; `,actionIcons:(0,n.css)` width: 80px; align-items: center; flex-shrink: 0; `,rulesTable:(0,n.css)` margin: ${t.spacing(2,0)}; `,rotate90:(0,n.css)` transform: rotate(90deg); `});function ke(t){return(0,e.useMemo)(()=>t.flatMap(r=>r.groups.map(o=>({namespace:r,group:o}))),[t])}const yt=({namespaces:t,expandAll:r})=>{const o=(0,x.wW)(Rt),u=(0,c._)(R=>R.dataSources),l=(0,c._)(R=>R.promRules),i=(0,e.useMemo)(s.Eu,[]),m=ke(t),d=(0,e.useMemo)(()=>i.filter(R=>(0,Ie.op)(l[R.name])||(0,Ie.op)(u[R.name])),[l,u,i]),E=i.some(R=>!!l[R.name]?.result?.length),g=i.length>0,A=d.length>0,N=t.length>0,{numberOfPages:D,onPageChange:I,page:T,pageItems:P}=(0,fe.h)(m,1,Ue.gN);return e.createElement("section",{className:o.wrapper},e.createElement("div",{className:o.sectionHeader},e.createElement("h5",null,"Mimir / Cortex / Loki"),d.length?e.createElement(ce.u,{className:o.loader,text:`Loading rules from ${d.length} ${pe()("source",d.length)}`}):e.createElement("div",null)),P.map(({group:R,namespace:B})=>e.createElement(Ke,{group:R,key:`${(0,s.v_)(B.rulesSource)}-${B.name}-${R.name}`,namespace:B,expandAll:r,viewMode:"grouped"})),!g&&e.createElement("p",null,"There are no Prometheus or Loki data sources configured."),g&&!A&&!N&&e.createElement("p",null,"No rules found."),!E&&A&&e.createElement(oe.$,{size:24,className:o.spinner}),e.createElement(Me.t,{className:o.pagination,currentPage:T,numberOfPages:D,onNavigate:I,hideWhenSinglePage:!0}))},Rt=t=>({loader:(0,n.css)` margin-bottom: 0; `,sectionHeader:(0,n.css)` display: flex; justify-content: space-between; `,wrapper:(0,n.css)` margin-bottom: ${t.spacing(4)}; `,spinner:(0,n.css)` text-align: center; padding: ${t.spacing(2)}; `,pagination:(0,te.Z)(t)});var De=a(52467);const St=({namespaces:t,expandAll:r})=>{const o=(0,x.wW)(xt),[u]=(0,q.K)(),{prom:l,ruler:i}=(0,c._)(P=>({prom:P.promRules[s.GC]||Ie.oq,ruler:P.rulerRules[s.GC]||Ie.oq})),m=l.loading||i.loading,d=!!l.result||!!i.result,E=u.view==="list",g=E?(0,De.Kd)(t):t,A=ke(g),{numberOfPages:N,onPageChange:D,page:I,pageItems:T}=(0,fe.h)(A,1,Ue.gN);return e.createElement("section",{className:o.wrapper},e.createElement("div",{className:o.sectionHeader},e.createElement("h5",null,"Grafana"),m?e.createElement(ce.u,{className:o.loader,text:"Loading..."}):e.createElement("div",null)),T.map(({group:P,namespace:R})=>e.createElement(Ke,{group:P,key:`${R.name}-${P.name}`,namespace:R,expandAll:r,viewMode:E?"list":"grouped"})),d&&g?.length===0&&e.createElement("p",null,"No rules found."),!d&&m&&e.createElement(oe.$,{size:24,className:o.spinner}),e.createElement(Me.t,{className:o.pagination,currentPage:I,numberOfPages:N,onNavigate:D,hideWhenSinglePage:!0}))},xt=t=>({loader:(0,n.css)` margin-bottom: 0; `,sectionHeader:(0,n.css)` display: flex; justify-content: space-between; margin-bottom: ${t.spacing(1)}; `,wrapper:(0,n.css)` margin-bottom: ${t.spacing(4)}; `,spinner:(0,n.css)` text-align: center; padding: ${t.spacing(2)}; `,pagination:(0,te.Z)(t)}),Ct=({namespaces:t,expandAll:r})=>{const[o,u]=(0,e.useMemo)(()=>{const l=t.map(i=>({...i,groups:i.groups.sort((m,d)=>m.name.localeCompare(d.name))})).sort((i,m)=>i.name.localeCompare(m.name));return[l.filter(i=>(0,s.HY)(i.rulesSource)),l.filter(i=>(0,s.jq)(i.rulesSource))]},[t]);return(0,e.useEffect)(()=>{(0,ie.PN)(w.z7.loadedList)},[]),e.createElement(e.Fragment,null,e.createElement(ae.q,{actions:[Y.AccessControlAction.AlertingRuleRead]},e.createElement(St,{namespaces:o,expandAll:r})),e.createElement(ae.q,{actions:[Y.AccessControlAction.AlertingRuleExternalRead]},e.createElement(yt,{namespaces:u,expandAll:r})))};var K=a(18447);const He=({rules:t,state:r,defaultCollapsed:o=!1})=>{const[u,l]=(0,e.useState)(o),i=(0,x.wW)(Nt);return e.createElement(e.Fragment,null,e.createElement("h4",{className:i.header},e.createElement(we.U,{className:i.collapseToggle,size:"xxl",isCollapsed:u,onToggle:()=>l(!u)}),(0,f.SS)(r)," (",t.length,")"),!u&&e.createElement(Xe.i,{className:i.rulesTable,rules:t,showGroupColumn:!0}))},Nt=t=>({collapseToggle:(0,n.css)` vertical-align: middle; `,header:(0,n.css)` margin-top: ${t.spacing(2)}; `,rulesTable:(0,n.css)` margin-top: ${t.spacing(3)}; `}),At=({namespaces:t})=>{const r=(0,v.lC)((0,q.K)()[0]),o=(0,e.useMemo)(()=>{const u={[K.x_.Firing]:[],[K.x_.Inactive]:[],[K.x_.Pending]:[]};return t.forEach(l=>l.groups.forEach(i=>i.rules.forEach(m=>{m.promRule&&(0,f.x_)(m.promRule)&&u[m.promRule.state].push(m)}))),Object.values(u).forEach(l=>l.sort((i,m)=>i.name.localeCompare(m.name))),u},[t]);return e.createElement(e.Fragment,null,(!r.alertState||r.alertState===K.x_.Firing)&&e.createElement(He,{state:K.x_.Firing,rules:o[K.x_.Firing]}),(!r.alertState||r.alertState===K.x_.Pending)&&e.createElement(He,{state:K.x_.Pending,rules:o[K.x_.Pending]}),(!r.alertState||r.alertState===K.x_.Inactive)&&e.createElement(He,{defaultCollapsed:r.alertState!==K.x_.Inactive,state:K.x_.Inactive,rules:o[K.x_.Inactive]}))};var Pt=a(46089),qe=a(22209),Re=a(79978),Ge=a(40705),It=a(1128),Tt=a(12354),Dt=a(11109),_e=a(10864),Fe=a(41028),We=a(76658),Ft=a(32925),$t=a(79003);function et(){const[t,r]=(0,$t.j)(),o=t.get("search")??"",u=(0,e.useMemo)(()=>(0,Fe.ug)(o),[o]),l=(0,e.useMemo)(()=>Object.values(u).some(d=>!(0,be.isEmpty)(d)),[u]),i=(0,e.useCallback)(d=>{const E=(0,Fe.HY)(o,d);r({search:E})},[o,r]),m=(0,e.useCallback)(d=>{r({search:d})},[r]);return(0,e.useEffect)(()=>{const d={dataSource:t.get("dataSource")??void 0,alertState:t.get("alertState")??void 0,ruleType:t.get("ruleType")??void 0,labels:(0,We.Zh)(t.get("queryString")??"").map(We.cm)};Object.values(d).some(g=>!(0,be.isEmpty)(g))&&(r({dataSource:void 0,alertState:void 0,ruleType:void 0,queryString:void 0}),i((0,Dt.Uy)(u,g=>{if(g.dataSourceNames??=d.dataSource?[d.dataSource]:[],d.alertState&&(0,K.I9)(d.alertState)&&(g.ruleState??=d.alertState),d.ruleType&&(0,f.Wd)(d.ruleType)&&(g.ruleType??=d.ruleType),g.labels.length===0&&d.labels.length>0){const A=d.labels.map(({name:N,operator:D,value:I})=>`${N}${D}${I}`);g.labels.push(...A)}})))},[t,i,u,r]),{filterState:u,hasActiveFilters:l,searchQuery:o,setSearchQuery:m,updateFilters:i}}const Lt=(t,r)=>(0,e.useMemo)(()=>{const o=Mt(t,r);return o.forEach(u=>{u.groups.forEach(l=>{l.rules.forEach(i=>{(0,f.x_)(i.promRule)&&(i.instanceTotals=(0,De.Fm)(i.promRule),i.filteredInstanceTotals=(0,De.ZP)(i.promRule))}),l.totals=(0,De.DD)({rules:l.rules.map(i=>i.promRule).filter(i=>!!i)})})}),o},[t,r]),Qe=new Tt.Z({intraMode:1,intraIns:1,intraSub:1,intraTrn:1,intraDel:1}),Mt=(t,r={dataSourceNames:[],labels:[],freeFormWords:[]})=>{let o=t;const u=r.dataSourceNames;u.length&&(o=o.filter(({rulesSource:i})=>(0,s.jq)(i)?u.includes(i.name):!0));const l=r.namespace;if(l){const i=o.map(g=>g.name),[m,d,E]=Qe.search(i,l);d&&E?o=E.map(g=>o[d.idx[g]]):m&&(o=m.map(g=>o[g]))}return o.reduce(Ot(r),[])},Ot=t=>(r,o)=>{const u=t.groupName;let l=o.groups;if(u){const i=l.map(g=>g.name),[m,d,E]=Qe.search(i,u);d&&E?l=E.map(g=>l[d.idx[g]]):m&&(l=m.map(g=>l[g]))}return l=l.reduce(bt(t),[]),l.length&&r.push({...o,groups:l}),r},bt=t=>{const r=t.ruleName??t.freeFormWords.join(" ");return(o,u)=>{let l=u.rules;if(r){const i=l.map(g=>g.name),[m,d,E]=Qe.search(i,r);d&&E?l=E.map(g=>l[d.idx[g]]):m&&(l=m.map(g=>l[g]))}return l=l.filter(i=>{if(t.ruleType&&t.ruleType!==i.promRule?.type)return!1;const m=(0,f.Pc)(i.rulerRule)&&!Wt(i.rulerRule,t);if(t.dataSourceNames?.length&&m)return!1;if(t.ruleHealth&&i.promRule){const d=(0,f.vU)(i.promRule.health);return t.ruleHealth===d}if(t.labels.length>0){const d=(0,be.compact)(t.labels.map(Gt)),E=d.length>0&&(0,We.eD)(i.labels,d),g=d.length>0&&i.promRule&&i.promRule.type===K.pz.Alerting&&i.promRule.alerts&&i.promRule.alerts.some(A=>(0,We.eD)(A.labels,d));if(!(E||g))return!1}return!(t.ruleState&&!(i.promRule&&(0,f.x_)(i.promRule)&&i.promRule.state===t.ruleState))}),l.length&&o.push({...u,rules:l}),o}};function Gt(t){try{return(0,Ft.tC)(t)}catch{return{name:t,value:"",isRegex:!0,isEqual:!0}}}const Wt=(t,r)=>r.dataSourceNames?.length?!!t.grafana_alert.data.find(o=>{if(!o.datasourceUid)return!1;const u=(0,_e.F)().getInstanceSettings(o.datasourceUid);return u?.name&&r?.dataSourceNames?.includes(u.name)}):!0;var Ut=a(51453),Bt=a(17312),zt=a(81538),tt=a(74639),at=a(42751),jt=a(28580),Kt=a(97918);const Ht=t=>{const r=(0,_e.F)(),[o,u]=(0,e.useState)(),l=(L,U)=>{if(U.action==="clear"&&t.onClear){t.onClear();return}const re=L[L.length-1];let V,H;U.action==="pop-value"||U.action==="remove-value"?(V=U.removedValue?.value,H="remove"):(V=re.value,H="add");const j=r.getInstanceSettings(V);j&&(t.onChange(j,H),u({error:void 0}))},i=()=>{const{current:L,hideTextValue:U,noDefault:re}=t;if(!(!L&&re))return L?.map(V=>{const H=r.getInstanceSettings(V);if(H)return{label:H.name.slice(0,37),value:H.name,imgUrl:H.meta.info.logos.small,hideText:U,meta:H.meta};const j=(0,Bt.BT)(V);return j===at.hr.uid||j===at.hr.name?{label:j,value:j,hideText:U}:{label:(j??"no name")+" - not found",value:j??void 0,imgUrl:"",hideText:U}})},m=()=>{const{alerting:L,tracing:U,metrics:re,mixed:V,dashboard:H,variables:j,annotations:me,pluginId:k,type:y,filter:se,logs:$e}=t,Z=r.getList({alerting:L,tracing:U,metrics:re,logs:$e,dashboard:H,mixed:V,variables:j,annotations:me,pluginId:k,filter:se,type:y}),aa=Z.filter(s.G_).map(_=>({value:_.name,label:`${_.name}${_.isDefault?" (default)":""}`,imgUrl:_.meta.info.logos.small,meta:_.meta})),na=Z.filter(_=>!(0,s.G_)(_)).map(_=>({value:_.name,label:`${_.name}${_.isDefault?" (default)":""}`,imgUrl:_.meta.info.logos.small,meta:_.meta}));return[{label:"Data sources with configured alert rules",options:aa,expanded:!0},{label:"Other data sources",options:na,expanded:!0}]},{autoFocus:d,onBlur:E,onClear:g,openMenuOnFocus:A,placeholder:N,width:D,inputId:I,disabled:T=!1,isLoading:P=!1}=t,R=m(),B=i(),ne=typeof g=="function";return e.createElement("div",{"data-testid":tt.wl.components.DataSourcePicker.container},e.createElement(jt.NU,{isLoading:P,disabled:T,"data-testid":tt.wl.components.DataSourcePicker.inputV2,inputId:I||"data-source-picker",className:"ds-picker select-container",isClearable:ne,backspaceRemovesValue:!0,onChange:l,options:R,autoFocus:d,onBlur:E,width:D,openMenuOnFocus:A,maxMenuHeight:500,placeholder:N,noOptionsMessage:"No datasources found",value:B??[],invalid:!!o?.error||!!t.invalid,getOptionLabel:L=>L.meta&&(0,zt.x)(L.meta.signature)&&L!==B?e.createElement(Te.Lh,{align:"center",justify:"space-between",height:"auto"},e.createElement("span",null,L.label)," ",e.createElement(Kt.o,{status:L.meta.signature})):L.label||""}))},nt=[{icon:"folder",label:"Grouped",value:"grouped"},{icon:"list-ul",label:"List",value:"list"},{icon:"heart-rate",label:"State",value:"state"}],Qt=[{label:"Alert ",value:K.pz.Alerting},{label:"Recording ",value:K.pz.Recording}],wt=[{label:"Ok",value:Fe.VG.Ok},{label:"No Data",value:Fe.VG.NoData},{label:"Error",value:Fe.VG.Error}],Vt=Object.entries(K.x_).map(([t,r])=>({label:(0,f.SS)(r),value:r})),Zt=({onFilterCleared:t=()=>{}})=>{const r=(0,x.wW)(Jt),[o,u]=(0,q.K)(),{filterState:l,hasActiveFilters:i,searchQuery:m,setSearchQuery:d,updateFilters:E}=et(),[g,A]=(0,e.useState)(Math.floor(Math.random()*100)),N=`dataSource-${g}`,D=`queryString-${g}`,I=(0,e.useRef)(null),{handleSubmit:T,register:P,setValue:R}=(0,Pt.cI)({defaultValues:{searchQuery:m}}),{ref:B,...ne}=P("searchQuery");(0,e.useEffect)(()=>{R("searchQuery",m)},[m,R]);const L=(y,se)=>{const $e=se==="add"?[...l.dataSourceNames].concat([y.name]):l.dataSourceNames.filter(Z=>Z!==y.name);E({...l,dataSourceNames:$e}),A(Z=>Z+1)},U=()=>{E({...l,dataSourceNames:[]}),A(y=>y+1)},re=y=>{(0,ie.PN)(w.z7.clickingAlertStateFilters),E({...l,ruleState:y}),A(se=>se+1)},V=y=>{u({view:y})},H=y=>{E({...l,ruleType:y}),A(se=>se+1)},j=y=>{E({...l,ruleHealth:y}),A(se=>se+1)},me=()=>{d(void 0),t(),setTimeout(()=>A(g+1),100)},k=e.createElement(X.J,{name:"search"});return e.createElement("div",{className:r.container},e.createElement(C.K,{direction:"column",gap:1},e.createElement(C.K,{direction:"row",gap:1},e.createElement(qe.g,{className:r.dsPickerContainer,label:e.createElement(Re._,{htmlFor:"data-source-picker"},e.createElement(C.K,{gap:.5},e.createElement("span",null,"Search by data sources"),e.createElement(p.u,{content:e.createElement("div",null,e.createElement("p",null,"Data sources containing configured alert rules are Mimir or Loki data sources where alert rules are stored and evaluated in the data source itself."),e.createElement("p",null,"In these data sources, you can select Manage alerts via Alerting UI to be able to manage these alert rules in the Grafana UI as well as in the data source where they were configured."))},e.createElement(X.J,{name:"info-circle",size:"sm"}))))},e.createElement(Ht,{key:N,alerting:!0,noDefault:!0,placeholder:"All data sources",current:l.dataSourceNames,onChange:L,onClear:U})),e.createElement("div",null,e.createElement(Re._,null,"State"),e.createElement(Ge.S,{options:Vt,value:l.ruleState,onChange:re})),e.createElement("div",null,e.createElement(Re._,null,"Rule type"),e.createElement(Ge.S,{options:Qt,value:l.ruleType,onChange:H})),e.createElement("div",null,e.createElement(Re._,null,"Health"),e.createElement(Ge.S,{options:wt,value:l.ruleHealth,onChange:j}))),e.createElement(C.K,{direction:"column",gap:1},e.createElement(C.K,{direction:"row",gap:1},e.createElement("form",{className:r.searchInput,onSubmit:T(y=>{d(y.searchQuery),I.current?.blur()})},e.createElement(qe.g,{label:e.createElement(Re._,{htmlFor:"rulesSearchInput"},e.createElement(C.K,{gap:.5},e.createElement("span",null,"Search"),e.createElement(Ut.z,{content:e.createElement(Yt,null)},e.createElement(X.J,{name:"info-circle",size:"sm",tabIndex:0}))))},e.createElement(It.I,{id:"rulesSearchInput",key:D,prefix:k,ref:y=>{B(y),I.current=y},...ne,placeholder:"Search","data-testid":"search-query-input"})),e.createElement("input",{type:"submit",hidden:!0})),e.createElement("div",null,e.createElement(Re._,null,"View as"),e.createElement(Ge.S,{options:nt,value:String(o.view??nt[0].value),onChange:V}))),i&&e.createElement("div",null,e.createElement(b.zx,{fullWidth:!1,icon:"times",variant:"secondary",onClick:me},"Clear filters")))))},Jt=t=>({container:(0,n.css)` margin-bottom: ${t.spacing(1)}; `,dsPickerContainer:(0,n.css)` width: 550px; flex-grow: 0; margin: 0; `,searchInput:(0,n.css)` flex: 1; margin: 0; `});function Yt(){const t=(0,x.wW)(rt);return e.createElement("div",null,e.createElement("div",null,"Search syntax allows to query alert rules by the parameters defined below."),e.createElement("hr",null),e.createElement("div",{className:t.grid},e.createElement("div",null,"Filter type"),e.createElement("div",null,"Expression"),e.createElement(ue,{title:"Datasources",expr:"datasource:mimir datasource:prometheus"}),e.createElement(ue,{title:"Folder/Namespace",expr:"namespace:global"}),e.createElement(ue,{title:"Group",expr:"group:cpu-usage"}),e.createElement(ue,{title:"Rule",expr:'rule:"cpu 80%"'}),e.createElement(ue,{title:"Labels",expr:"label:team=A label:cluster=a1"}),e.createElement(ue,{title:"State",expr:"state:firing|normal|pending"}),e.createElement(ue,{title:"Type",expr:"type:alerting|recording"}),e.createElement(ue,{title:"Health",expr:"health:ok|nodata|error"})))}function ue({title:t,expr:r}){const o=(0,x.wW)(rt);return e.createElement(e.Fragment,null,e.createElement("div",null,t),e.createElement("code",{className:o.code},r))}const rt=t=>({grid:(0,n.css)` display: grid; grid-template-columns: max-content auto; gap: ${t.spacing(1)}; align-items: center; `,code:(0,n.css)` display: block; text-align: center; `}),Xt=Zt;var kt=a(33555);const st={groups:Ct,state:At},qt=Ne.gr+1,_t=(0,O.Pf)(()=>{const t=(0,Y.useDispatch)(),r=(0,x.wW)(ea),o=(0,e.useMemo)(s.mA,[]),[u,l]=(0,e.useState)(!1),i=(0,e.useCallback)(()=>l(!1),[]),[m]=(0,q.K)(),{filterState:d,hasActiveFilters:E}=et(),g=st[m.view]?m.view:"groups",A=st[g],N=(0,c._)(k=>k.promRules),D=(0,c._)(k=>k.rulerRules),I=o.some(k=>N[k]?.loading||D[k]?.loading),T=Object.entries(N),P=T.every(([k,y])=>y.dispatched&&(y?.result!==void 0||y?.error!==void 0)),R=T.every(([k,y])=>y.dispatched&&y?.result?.length===0),B=E?void 0:qt,[ne,L]=(0,z.Z)(async()=>{I||await t((0,Oe.ei)(!1,{limitAlerts:B}))},[I,B,t]);(0,e.useEffect)(()=>{(0,w.$I)().catch(()=>{})},[]),(0,e.useEffect)(()=>{t((0,Oe.ei)(!1,{limitAlerts:B}))},[t,B]),(0,M.Z)(L,kt.p4);const U=P&&R&&T.length>0,re=(0,De.Zo)(),V=Lt(re,d),{canCreateGrafanaRules:H,canCreateCloudRules:j,canReadProvisioning:me}=(0,ge.B)();return e.createElement(Le.J,{pageId:"alert-list",isLoading:!1},e.createElement(S,null),e.createElement(Xt,{onFilterCleared:i}),!U&&e.createElement(e.Fragment,null,e.createElement("div",{className:r.break}),e.createElement("div",{className:r.buttonsContainer},e.createElement("div",{className:r.statsContainer},g==="groups"&&E&&e.createElement(b.zx,{className:r.expandAllButton,icon:u?"angle-double-up":"angle-double-down",variant:"secondary",onClick:()=>l(!u)},u?"Collapse all":"Expand all"),e.createElement(Ye.WN,{namespaces:V})),(H||j||me)&&e.createElement(C.K,{direction:"row",gap:.5},e.createElement(Se,null)))),U&&e.createElement(xe,null),!U&&e.createElement(A,{expandAll:u,namespaces:V}))},{style:"page"}),ea=t=>({break:(0,n.css)` width: 100%; height: 0; margin-bottom: ${t.spacing(2)}; border-bottom: solid 1px ${t.colors.border.medium}; `,buttonsContainer:(0,n.css)` margin-bottom: ${t.spacing(2)}; display: flex; justify-content: space-between; `,statsContainer:(0,n.css)` display: flex; flex-direction: row; align-items: center; `,expandAllButton:(0,n.css)` margin-right: ${t.spacing(1)}; `}),ta=_t},89439:(de,Q,a)=>{a.d(Q,{q:()=>z});var n=a(27702),e=a(91368);const z=({actions:M,children:C,fallback:O=!0})=>M.some(x=>e.contextSrv.hasAccess(x,O))?n.createElement(n.Fragment,null,C):null},95017:(de,Q,a)=>{a.d(Q,{p0:()=>ve,Vp:()=>ye,eW:()=>Pe,_4:()=>Ae,Fu:()=>Ce,Ry:()=>Se,Dr:()=>ie,KP:()=>pe,Yq:()=>xe});var n=a(89949),e=a(59425),z=a(5168),M=a(64167),C=a(66805),O=a(12308),x=a(43609),b=a(55692),q=a(65946),Y=a(72821),w=a(82152),le=a(2567);const F=(0,w.Z)(G,(h,p)=>Ee(h[0])===Ee(p[0]));function G(h){const p=new le.kJ,c=h.map(s=>s.refId);return p.createNodes(c),h.forEach(s=>{const v=s.refId;((0,b.j)(s.model)&&s.model.type==="math"?$(s.model.expression??""):[s.model.expression]).forEach(W=>{v&&W&&!(v===W)&&p.link(W,v)})}),p}function $(h){const p=new RegExp(/\$\{(?<var>[a-zA-Z0-9_ ]+?)\}/gm),c=new RegExp(/\$(?<var>[a-zA-Z0-9_]+)/gm),s=Array.from(h.matchAll(p)).map(f=>f.groups?.var),v=Array.from(h.matchAll(c)).map(f=>f.groups?.var);return(0,n.compact)((0,n.uniq)([...s,...v]))}const J=(0,n.memoize)(X,(h,p)=>h+ge(p));function X(h,p){const c=p.getNode(h);let s=[];function v(f){const S=f.inputEdges;S.length>0?S.forEach(W=>{W.inputNode&&v(W.inputNode)}):s?.push(f)}return v(c),s.map(f=>f.name)}function ge(h){return Object.keys(h.nodes).map(p=>{const c=h.nodes[p];let s=c.outputEdges.map(f=>f.outputNode?.name).join(", "),v=c.inputEdges.map(f=>f.inputNode?.name).join(", ");return`${c.name}:${s}:${v}`}).join(" ")}function Ee(h){return h.map(p=>{const c=(0,b.j)(p.model)?p.model.type:p.queryType;return p.refId+(p.model.expression??"")+c}).join()}function Se(h,p,c){return h.map(s=>{if(p===c||!(0,b.j)(s.model))return s;const v=s.model.type==="math",f=s.model.type==="reduce",S=s.model.type==="resample",W=s.model.type==="classic_conditions",ee=s.model.type==="threshold";if(v)return{...s,model:{...s.model,expression:Le(s.model.expression??"",p,c)}};if(S||f||ee){const ae=s.model.expression===p;return{...s,model:{...s.model,expression:ae?c:s.model.expression}}}if(W){const ae=s.model.conditions?.map(ce=>({...ce,query:{...ce.query,params:ce.query.params.map(oe=>oe===p?c:oe)}}));return{...s,model:{...s.model,conditions:ae}}}return s})}function Le(h,p,c){const s=new RegExp("(\\$"+p+"\\b)|(\\${"+p+"})","gm"),v="${"+c+"}";return h.replace(s,v)}function ie(h,p){return h.find(c=>c.refId===p)!==void 0}function ve(h){return h.includes("/")||h.includes("\\")?'Cannot contain "/" or "\\" characters':!0}function ye(h){if(h.length===0)return;const p=(0,e.xI)(h);let c;return p&&(c=new Error("You cannot use time series data as an alert condition, consider adding a reduce expression.")),c}function xe(h){const c=(h[0]?.meta?.notices??[]).find(s=>s.severity==="warning")?.text;return c?new Error(c):void 0}function Ce(h){const p={},c=[q.Us.threshold,q.Us.classic];for(const f of h){if(!(0,b.j)(f.model)||!c.includes(f.model.type)||!Array.isArray(f.model.conditions))continue;const S=f.model.conditions.some(Ne);f.model.conditions.forEach(W=>{const ee=W.evaluator.params,ae=W.query?.params[0]??f.model.expression;if(!ae)return;const ce=Ne(W);try{const oe=F(h),Me=J(ae,oe);h.filter(fe=>Me.includes(fe.refId)).forEach(fe=>{const te=fe.refId,Te=!!(!(0,b.j)(fe?.model)&&te);te&&!p[te]&&(p[te]={config:{mode:z.H.Absolute,steps:[]},mode:M.i3.Line}),te&&Te&&!ce&&!S?s(te,ee[0]):te&&Te&&ce&&(v(te,ee,W.evaluator.type),p[te].mode=M.i3.LineAndArea)})}catch(oe){console.error("Failed to parse thresholds",oe);return}})}function s(f,S){p[f].config.steps.push({value:-1/0,color:"transparent"},{value:S,color:O.config.theme2.colors.error.main})}function v(f,S,W){W===x.$.IsWithinRange&&p[f].config.steps.push({value:-1/0,color:"transparent"},{value:S[0],color:O.config.theme2.colors.error.main},{value:S[1],color:O.config.theme2.colors.error.main},{value:S[1],color:"transparent"}),W===x.$.IsOutsideRange&&p[f].config.steps.push({value:-1/0,color:O.config.theme2.colors.error.main},{value:S[0],color:O.config.theme2.colors.error.main},{value:S[0],color:"transparent"},{value:S[1],color:O.config.theme2.colors.error.main}),p[f].config.steps.sort((ee,ae)=>ee.value-ae.value),p[f].config.steps=p[f].config.steps.filter(ee=>ee.value!==void 0)}return p}function Ne(h){return h.evaluator.type===x.$.IsWithinRange||h.evaluator.type===x.$.IsOutsideRange}function Ae(h){const p="Failed to fetch data";if(h.state!==C.Gu.Error)return;const c=h.errors;return c?.length?c.map(s=>s.message??p).join(", "):h.error?.message??p}function pe(h=""){return h==="recording"?Y.$.cloudRecording:Y.$.grafana}function Pe(h,p){const c=p.filter(S=>!(0,b.j)(S.model)).map(S=>S.refId),s=h.filter(S=>!(0,b.j)(S.model)).map(S=>S.refId),[v,f]=(0,n.xor)(s,c);return[v,f]}},18686:(de,Q,a)=>{a.d(Q,{A:()=>M});var n=a(27702),e=a(80011),z=a(66670);const M=({tooltip:C,icon:O,to:x,target:b,onClick:q,className:Y,tooltipPlacement:w="top",...le})=>{const F=typeof C=="string"?C:void 0;return n.createElement(e.u,{content:C,placement:w},x?n.createElement(z.Qj,{variant:"secondary",fill:"text",icon:O,href:x,size:"sm",target:b,...le,"aria-label":F}):n.createElement(z.zx,{className:Y,variant:"secondary",fill:"text",size:"sm",icon:O,type:"button",onClick:q,...le,"aria-label":F}))}},55692:(de,Q,a)=>{a.d(Q,{j:()=>z});var n=a(42751),e=a(65946);const z=M=>{if(!M)return!1;if((0,n.Pr)(M.datasource))return!0;const C=M;return typeof C.type!="string"?!1:Object.values(e.Us).includes(C.type)}},68873:(de,Q,a)=>{a.d(Q,{Z:()=>z});var n=a(27702),e=function(M,C){var O=(0,n.useRef)(function(){});(0,n.useEffect)(function(){O.current=M}),(0,n.useEffect)(function(){if(C!==null){var x=setInterval(function(){return O.current()},C||0);return function(){return clearInterval(x)}}},[C])};const z=e}}]); //# sourceMappingURL=AlertRuleListIndex.9efaa12b2f2af6e907d1.js.map