File: //proc/self/root/opt/netdata/netdata-web-files/v3/9961.32921359d7b376fc5ac5.chunk.js
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"6866bb78c87eb499c83445c224071f481cf2061d"};var t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e4bbf0a8-0d00-4564-8568-52c5ef6e1450",e._sentryDebugIdIdentifier="sentry-dbid-e4bbf0a8-0d00-4564-8568-52c5ef6e1450")}catch(e){}}(),(globalThis.webpackChunkcloud_frontend=globalThis.webpackChunkcloud_frontend||[]).push([[9961],{19961(e,t,a){a.r(t),a.d(t,{default:()=>ne});var l=a(88255),r=a(55093),s=(a(98992),a(37550),a(96540)),n=a(6304),i=a(81683),o=a(13473),c=a(27784),d=a(38429),u=(a(74423),a(3949),a(8872),a(42790)),m=a(38823),h=a(90071),x=a(57714),g=a(11409),b=a(74848);const p=(e,t,a)=>{let{id:l,name:r}=e;-1==a?t.push({id:l,name:r,count:1}):t[a]={...t[a],count:t[a].count+1}},y=e=>e.id,f=e=>e.name,j=e=>{let{title:t,baseKey:a,param:l,paramKey:r,extraKey:n,testIdPrefix:i}=e;const o=(e=>{let{baseKey:t,extraKey:a,param:l,paramKey:r}=e;const{rules:n}=(0,x.q)({extraKey:a,omit:l,keepAll:!0}),i=(0,u.rW)(l,{key:t,extraKey:a,flavour:"arr"});return(0,s.useMemo)(()=>n.reduce((e,t)=>{const a=t[r];if(!a)return e;const l=e.findIndex(e=>e.id==a.id);return"id"==r?p({id:a,name:a},e,l):["rooms","nodes"].includes(r)?a.forEach(t=>{let{id:a,name:r,notAvailable:s}=t;p({id:a,name:s?`Not available (${a})`:r},e,l)}):["alertNames","alertContexts","alertRoles"].includes(r)?a.forEach(t=>{p({id:t,name:t},e,l)}):"hostLabels"==r&&Object.entries(a).forEach(t=>{let[a,r]=t;const s=(0,g.M)({key:a,value:r});p({id:s,name:s},e,l)}),e},[]),[n,i])})({baseKey:a,extraKey:n,param:l,paramKey:r});return o.length?(0,b.jsx)(m.A,{title:t,testIdPrefix:i,param:l,baseKey:a,extraKey:n,children:(0,b.jsx)(h.Ay,{param:l,baseKey:a,extraKey:n,testIdPrefix:i,collection:o,getValue:y,getLabel:f,capitalized:!1})}):null};var A=a(24609),K=a(37437);const v=[{title:"Rules IDs",param:"ids",paramKey:"id"},{title:"Rooms",param:"roomIds",paramKey:"rooms"},{title:"Nodes",param:"nodeIds",paramKey:"nodes"},{title:"Host labels",param:"hostLabels",paramKey:"hostLabels"},{title:"Alert names",param:"alertNames",paramKey:"alertNames"},{title:"Alert contexts",param:"alertContexts",paramKey:"alertContexts"},{title:"Alert roles",param:"alertRoles",paramKey:"alertRoles"}],w={filters:{iconName:"filterList",color:{active:"success",notActive:"textLite"},width:"19px",Content:(0,s.memo)(e=>{const t=(0,A.vt)();return(0,b.jsx)(d.Flex,{column:!0,height:"calc(100vh - 266px)",overflow:{vertical:"auto"},padding:[0,0,30],...e,children:v.map(e=>{let{title:a,param:l,paramKey:r}=e;return(0,b.jsx)(j,{baseKey:t,extraKey:K.qt,title:a,param:l,paramKey:r},a)})})}),dataTestId:"filterBar",label:"Filters"}},S=["filters"],T=e=>e.some(e=>{let{roomIds:t=[],nodeIds:a=[],hostLabels:l={},alertNames:r=[],alertContexts:s=[],alertRoles:n=[]}=e;return t.length||a.length||Object.keys(l).length||r.length||s.length||n.length}),k=e=>{let{rules:t}=e;const[a,l]=(0,n.A)(()=>T(t)),{Content:r}=w.filters;return(0,s.useEffect)(()=>{l(T(t))},[t]),(0,b.jsx)(i.Ay,{collapsedComponent:(0,b.jsx)(o.A,{onClickTab:l,availableTabs:w,tabsToShow:S}),isOpen:a,header:(0,b.jsx)(c.A,{isOpen:a,onToggle:l,title:"Filters",icon:"filterList"}),children:(0,b.jsx)(r,{padding:[0,3,30]})})};a(33110);var C=a(7960),F=a(79748),I=a(57377),L=(a(54520),a(81454),a(30569)),R=a(64587),D=a(92068),N=a(63872),M=a(45087),E=a(75894),P=a(15679);const O=()=>(0,b.jsx)(d.Text,{children:"*"}),V=e=>{let{getValue:t}=e;const a=t();return a?.length?(0,b.jsx)(d.Flex,{flexWrap:!0,gap:1,children:a.map(e=>(0,b.jsx)(d.Flex,{padding:[.5,0],children:(0,b.jsx)(P.A,{value:e})},e))}):(0,b.jsx)(O,{})},_=e=>{let{getValue:t}=e;const{localeDateString:a}=(0,R.$j)();if(!t())return(0,b.jsx)(d.Text,{children:"-"});const l=a(new Date(t()),{month:"2-digit",day:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",long:!1,dateStyle:void 0});return(0,b.jsx)(d.Text,{whiteSpace:"nowrap",children:l})},H=[{id:"name",desc:!0}],$=[{id:"disabled",name:"Disable rule",accessorKey:"disabled",header:"",cell:e=>{let{row:t,getValue:a}=e;const l=(0,A.vt)(),r=t.original,[i,o]=(0,s.useState)(!a()),[c,u]=(0,n.A)(),[,m]=(0,N.A)(),h=(0,D.FU)(),x=(0,L.yF)((0,s.useCallback)((e,t,a)=>{t((0,D.Pu)({id:l,key:"rules"}),e=>[...e.filter(e=>e.id!=a.id),a])},[l]));return(0,b.jsx)(d.Toggle,{colored:!0,checked:i,disabled:c,onChange:e=>{u();const t=e.target.checked;o(t);const a={...r,disabled:!t};h(a).then(()=>{x(a)}).catch(e=>{o(!t),m(e)}).finally(u)}})},size:80},{id:"name",name:"Name",accessorKey:"name",header:"Rule name",cell:e=>{let{row:t,getValue:a}=e;const{accountId:l}=t.original;return(0,b.jsxs)(d.Flex,{gap:2,alignItems:"center",children:[(0,b.jsx)(d.Text,{wordBreak:"break-word",children:a()}),l&&(0,b.jsx)(M.A,{align:"bottom",content:"This rule affects only your account",children:(0,b.jsx)(d.Box,{children:(0,b.jsx)(d.Icon,{color:"textLite",height:"16px",name:"userPress",width:"16px"})})})]})}},{id:"rooms",name:"Rooms",accessorKey:"rooms",header:"Rooms",cell:e=>{let{getValue:t}=e;const a=t();return a?.length?(0,b.jsx)(d.Text,{children:a.map(e=>{let{name:t}=e;return t}).join(", ")}):(0,b.jsx)(d.Text,{children:"All rooms"})}},{id:"nodes",name:"Nodes",accessorKey:"nodes",header:"Nodes",cell:e=>{let{getValue:t}=e;const a=t();return a?.length?(0,b.jsx)(d.Flex,{flexWrap:!0,gap:1,children:a.map(e=>{let{id:t,name:a,notAvailable:l}=e;const r=l?(0,b.jsxs)(d.Flex,{alignItems:"center",gap:1,children:[(0,b.jsx)(d.Icon,{name:"warning_triangle",size:"small",color:"neutralPillColor"}),(0,b.jsx)(d.Text,{children:"Node no longer available"})]}):a;return(0,b.jsx)(P.A,{value:r},t)})}):(0,b.jsx)(O,{})}},{id:"hostLabels",name:"Host labels",accessorKey:"hostLabels",header:"Host labels",cell:e=>{let{getValue:t}=e;const a=t(),l=Object.entries(a||{});return l.length?(0,b.jsx)(d.Flex,{flexWrap:!0,gap:1,children:l.map(e=>{let[t,a]=e;const l=(0,g.M)({key:t,value:a});return(0,b.jsx)(P.A,{value:l},l)})}):(0,b.jsx)(O,{})}},{id:"alertNames",name:"Alert names",accessorKey:"alertNames",header:"Alert name",cell:V},{id:"alertContexts",name:"Alert contexts",accessorKey:"alertContexts",header:"Alert context",cell:V},{id:"alertInstances",name:"Alert instances",accessorKey:"alertInstances",header:"Alert instances",cell:V},{id:"severities",name:"Alert status",accessorKey:"severities",header:"Alert status",cell:e=>{let{getValue:t}=e;const a=t();return a?.length?(0,b.jsx)(d.Flex,{flexWrap:!0,gap:1,children:a.map(e=>(0,b.jsx)(d.Flex,{padding:[.5,0],children:(0,b.jsx)(E.A,{flavour:e.toLowerCase(),capitalize:!0,children:e})},e))}):(0,b.jsx)(O,{})}},{id:"alertRoles",name:"Alert roles",accessorKey:"alertRoles",header:"Alert role",cell:V},{id:"startDate",name:"Start date",accessorKey:"startsAt",header:"Start date",cell:_},{id:"endDate",name:"End date",accessorKey:"lastsUntil",header:"End date",cell:_}];var B=a(89942),U=a(30811),z=a(99728);const W={month:"2-digit",day:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",long:!1,dateStyle:void 0},q=()=>{const[e,t]=(0,s.useState)(""),{silencingRulePrefill:a}=(0,B.PP)(),l=a?{type:"create"}:{},[r,n]=(0,s.useState)(l),[i,o]=(0,N.A)(),{localeDateString:c}=(0,R.$j)(),u=(0,D._S)(),m=(0,D.Lz)(),h=(0,U.l)(),x=()=>n({type:"create"}),g=e=>n({type:"edit",rule:e}),p=e=>{let{id:t}=e;u([t]).then(()=>{m(),h(),i({header:"Success",text:"You have successfully deleted a rule"})}).catch(o)},y=(0,z.JT)("space:DeletePersonalSilencingRule"),f=(0,z.JT)("space:DeleteSystemSilencingRule"),j=(0,s.useMemo)(()=>({addEntry:{dataGa:"",flavour:"hollow",handleAction:x,iconColor:"success",label:"Add rule",small:!0,width:"auto"}}),[]),A=e=>{let{name:t}=e;return(0,b.jsxs)(b.Fragment,{children:["Delete ",t," rule"]})};return{search:e,setSearch:t,bulkActions:j,rowActions:(0,s.useMemo)(()=>({edit:{handleAction:g,disabledTooltipText:"Edit is disabled",isDisabled:e=>{let{readOnly:t}=e;return!!t},dataGa:"alert-silencing::click-edit-row::rules-table"},delete:{handleAction:p,confirmationTitle:A,confirmationMessage:e=>(0,b.jsxs)(d.Text,{wordBreak:"break-word",children:["You are about to delete ",(0,b.jsx)("strong",{children:e.name})," silencing rule.",(0,b.jsx)("br",{}),"Are you sure you want to continue?"]}),dataGa:"alert-silencing::click-delete-row::rules-table",disabledTooltipText:"Delete is disabled",confirmLabel:"Yes, delete",declineLabel:"Cancel",isDisabled:e=>{let{accountId:t}=e;return t?!y:!f}}}),[]),onFilter:(0,s.useCallback)((e,t,a)=>{const l=e.original,r=a.toLowerCase(),s=(l.rooms||[]).map(e=>{let{name:t}=e;return t}),n=(l.nodes||[]).map(e=>{let{name:t}=e;return t}),i=l.alertNames||[],o=l.alertContexts||[],d=l.severities||[],u=l.alertRoles||[],m=l.hostLabels||{},h=l.startsAt?c(new Date(l.startsAt),W):"",x=l.lastsUntil?c(new Date(l.lastsUntil),W):"";return((e,t)=>e.some(e=>e.toLowerCase().includes(t)))([l.name.toLowerCase(),...s,...n,...i,...o,...d,...u,...Object.entries(m).flat(),h,x],r)},[]),modalDetails:r,closeModal:()=>n({})}},J=(0,C.A)(()=>a.e(1544).then(a.bind(a,29163)),"CreateOrUpdateRuleModal"),Y=(0,s.memo)(d.Table,(e,t)=>(0,I.Ay)(e,t)),G={right:["actions"]},Q=()=>(0,b.jsx)(d.Flex,{children:(0,b.jsxs)(d.Text,{lineHeight:1.5,children:["Create or Maintain Alert Notification Silencing Rules on this Space. These rules can be applicable to all users or just you, depending on their definition."," ",(0,b.jsx)(F.A,{"data-ga":"alert-silencing::click-link-docs::rules-table","data-testid":"silencing-rules-doc",href:"https://learn.netdata.cloud/docs/alerts-and-notifications/notifications/netdata-cloud-notifications/#silencing-alert-notifications",rel:"noopener noreferrer",target:"_blank",children:"Read the Alert Notification Silencing Rules documentation to learn more."})]})}),X=e=>{let{data:t}=e;const{search:a,setSearch:l,bulkActions:r,rowActions:n,onFilter:i,modalDetails:o,closeModal:c}=q();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(d.Flex,{column:!0,gap:4,padding:[2,4],height:"100%",children:[(0,b.jsx)(Q,{}),(0,b.jsx)(Y,{enableSorting:!0,enableColumnVisibility:!0,data:t,dataColumns:$,bulkActions:r,rowActions:n,globalFilter:a,globalFilterFn:i,onSearch:l,columnPinning:G,enableColumnPinning:!0,sortBy:H},JSON.stringify(t||{}))]}),"create"===o.type?(0,b.jsx)(s.Suspense,{children:(0,b.jsx)(J,{onClose:c})}):null,"edit"===o.type&&o.rule?(0,b.jsx)(s.Suspense,{children:(0,b.jsx)(J,{rule:o.rule,onClose:c,isEdit:!0})}):null]})};var Z=a(36710),ee=a(49910),te=a(32052);const ae=()=>{const e=(0,A.vt)(),t=(0,D.ys)({key:"initialLoad"}),a=(0,D.Qu)(),l=(0,D.UJ)();(0,te.A)(()=>({enabled:!!e&&!t,fetch:()=>(0,Z.cH)(e),onFail:e=>l({...ee.$,loading:!1,loaded:!0,error:e}),onSuccess:e=>l({...ee.$,loading:!1,loaded:!0,initialLoad:!0,rules:e})}),[e,t,a])},le=e=>{let{errorMessage:t}=e;return(0,b.jsxs)(d.Flex,{column:!0,gap:2,alignItems:"center",justifyContent:"center",flex:!0,children:[(0,b.jsx)(d.TextBig,{children:"Something went wrong"}),t&&(0,b.jsxs)(d.Text,{children:["(",t,")"]})]})};var re=a(89544),se=a(60908);const ne=()=>{ae(),(0,re.H)();const{loaded:e,rules:t,error:a}=(0,x.q)({extraKey:K.qt});return e?a?(0,b.jsx)(se.DL,{tab:"Notifications::SilencingRules",children:(0,b.jsx)(le,{errorMessage:a.message})}):(0,b.jsx)(se.Ay,{tab:"Notifications::SilencingRules",children:(0,b.jsx)(l.A,{sidebar:(0,b.jsx)(k,{rules:t}),children:(0,b.jsx)(X,{data:t})})}):(0,b.jsx)(r.A,{title:"Loading silencing rules..."})}},11409(e,t,a){a.d(t,{H:()=>r,M:()=>s});a(74423),a(98992),a(8872);var l=a(37437);const r=e=>{const{validationErrors:t,errorMessage:a}=e?.response?.data||"object"===typeof e&&e||{};return t&&Object.keys(t).length?Object.entries(t).reduce((e,t)=>{let[,a]=t;const{code:r,message:s}=a;return l.xc[r]||s?e.push({errorMessage:l.xc[r]||s}):e.includes(l.xc.default)||e.push({errorMessage:l.xc.default}),e},[]):[{errorMessage:a}]},s=e=>{let{key:t,value:a}=e;return`${t}: ${a}`}}}]);