File: //opt/netdata/usr/share/netdata/web/v3/9961.08dc498a4d032565382e.chunk.js
try{!function(){var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="692cae30-6a60-4de7-b235-6e948e59ec9d",e._sentryDebugIdIdentifier="sentry-dbid-692cae30-6a60-4de7-b235-6e948e59ec9d")}()}catch(e){}!function(){try{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).SENTRY_RELEASE={id:"cb606294818e94c7fd75c921384b09c30eacd2ba"}}catch(e){}}(),(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[9961],{11409:(e,t,a)=>{a.d(t,{H:()=>n,M:()=>r});a(98992),a(8872);var l=a(37437);const n=e=>{const{validationErrors:t,errorMessage:a}=e?.response?.data||{};return t&&Object.keys(t).length?Object.entries(t).reduce(((e,t)=>{let[,a]=t;const{code:n,message:r}=a;return l.xc[n]||r?e.push({errorMessage:l.xc[n]||r}):e.includes(l.xc.default)||e.push({errorMessage:l.xc.default}),e}),[]):[{errorMessage:a}]},r=e=>{let{key:t,value:a}=e;return`${t}: ${a}`}},19961:(e,t,a)=>{a.r(t),a.d(t,{default:()=>se});var l=a(88255),n=a(55093),r=(a(98992),a(37550),a(96540)),s=a(6304),i=a(81683),o=a(13473),c=a(27784),d=a(63766),u=(a(3949),a(8872),a(42790)),m=a(38823),h=a(64007),x=a(57714),g=a(11409),p=a(74848);const y=(e,t,a)=>{let{id:l,name:n}=e;-1==a?t.push({id:l,name:n,count:1}):t[a]={...t[a],count:t[a].count+1}},b=e=>e.id,f=e=>e.name,j=e=>{let{title:t,baseKey:a,param:l,paramKey:n,extraKey:s,testIdPrefix:i}=e;const o=(e=>{let{baseKey:t,extraKey:a,param:l,paramKey:n}=e;const{rules:s}=(0,x.q)({extraKey:a,omit:l,keepAll:!0}),i=(0,u.rW)(l,{key:t,extraKey:a,flavour:"arr"});return(0,r.useMemo)((()=>s.reduce(((e,t)=>{const a=t[n];if(!a)return e;const l=e.findIndex((e=>e.id==a.id));return"id"==n?y({id:a,name:a},e,l):["rooms","nodes"].includes(n)?a.forEach((t=>{let{id:a,name:n,notAvailable:r}=t;y({id:a,name:r?`Not available (${a})`:n},e,l)})):["alertNames","alertContexts","alertRoles"].includes(n)?a.forEach((t=>{y({id:t,name:t},e,l)})):"hostLabels"==n&&Object.entries(a).forEach((t=>{let[a,n]=t;const r=(0,g.M)({key:a,value:n});y({id:r,name:r},e,l)})),e}),[])),[s,i])})({baseKey:a,extraKey:s,param:l,paramKey:n});return o.length?(0,p.jsx)(m.A,{title:t,testIdPrefix:i,param:l,baseKey:a,extraKey:s,children:(0,p.jsx)(h.Ay,{param:l,baseKey:a,extraKey:s,testIdPrefix:i,collection:o,getValue:b,getLabel:f,capitalized:!1})}):null};var A=a(24609),w=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"}],K={filters:{iconName:"filterList",color:{active:"success",notActive:"textLite"},width:"19px",Content:(0,r.memo)((e=>{const t=(0,A.vt)();return(0,p.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:n}=e;return(0,p.jsx)(j,{baseKey:t,extraKey:w.qt,title:a,param:l,paramKey:n},a)}))})})),dataTestId:"filterBar",label:"Filters"}},k=["filters"],C=e=>e.some((e=>{let{roomIds:t=[],nodeIds:a=[],hostLabels:l={},alertNames:n=[],alertContexts:r=[],alertRoles:s=[]}=e;return t.length||a.length||Object.keys(l).length||n.length||r.length||s.length})),T=e=>{let{rules:t}=e;const[a,l]=(0,s.A)((()=>C(t))),{Content:n}=K.filters;return(0,r.useEffect)((()=>{l(C(t))}),[t]),(0,p.jsx)(i.Ay,{collapsedComponent:(0,p.jsx)(o.A,{onClickTab:l,availableTabs:K,tabsToShow:k}),isOpen:a,header:(0,p.jsx)(c.A,{isOpen:a,onToggle:l,title:"Filters",icon:"filterList"}),children:(0,p.jsx)(n,{padding:[0,3,30]})})};var S=a(7960),I=a(79748),F=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 $=()=>(0,p.jsx)(d.Text,{children:"*"}),O=e=>{let{getValue:t}=e;const a=t();return a?.length?(0,p.jsx)(d.Flex,{flexWrap:!0,gap:1,children:a.map((e=>(0,p.jsx)(d.Flex,{padding:[.5,0],children:(0,p.jsx)(P.A,{value:e})},e)))}):(0,p.jsx)($,{})},V=e=>{let{getValue:t}=e;const{localeDateString:a}=(0,R.$j)();if(!t())return(0,p.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,p.jsx)(d.Text,{whiteSpace:"nowrap",children:l})},_=[{id:"name",desc:!0}],H=[{id:"disabled",name:"Disable rule",accessorKey:"disabled",header:"",cell:e=>{let{row:t,getValue:a}=e;const l=(0,A.vt)(),n=t.original,[i,o]=(0,r.useState)(!a()),[c,u]=(0,s.A)(),[,m]=(0,N.A)(),h=(0,D.FU)(),x=(0,L.yF)((0,r.useCallback)(((e,t,a)=>{t((0,D.Pu)({id:l,key:"rules"}),(e=>[...e.filter((e=>e.id!=a.id)),a]))}),[l]));return(0,p.jsx)(d.Toggle,{colored:!0,checked:i,disabled:c,onChange:e=>{u();const t=e.target.checked;o(t);const a={...n,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,p.jsxs)(d.Flex,{gap:2,alignItems:"center",children:[(0,p.jsx)(d.Text,{wordBreak:"break-word",children:a()}),l&&(0,p.jsx)(M.A,{align:"bottom",content:"This rule affects only your account",children:(0,p.jsx)(d.Box,{children:(0,p.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,p.jsx)(d.Text,{children:a.map((e=>{let{name:t}=e;return t})).join(", ")}):(0,p.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,p.jsx)(d.Flex,{flexWrap:!0,gap:1,children:a.map((e=>{let{id:t,name:a,notAvailable:l}=e;const n=l?(0,p.jsxs)(d.Flex,{alignItems:"center",gap:1,children:[(0,p.jsx)(d.Icon,{name:"warning_triangle",size:"small",color:"neutralPillColor"}),(0,p.jsx)(d.Text,{children:"Node no longer available"})]}):a;return(0,p.jsx)(P.A,{value:n},t)}))}):(0,p.jsx)($,{})}},{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,p.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,p.jsx)(P.A,{value:l},l)}))}):(0,p.jsx)($,{})}},{id:"alertNames",name:"Alert names",accessorKey:"alertNames",header:"Alert name",cell:O},{id:"alertContexts",name:"Alert contexts",accessorKey:"alertContexts",header:"Alert context",cell:O},{id:"alertInstances",name:"Alert instances",accessorKey:"alertInstances",header:"Alert instances",cell:O},{id:"severities",name:"Alert status",accessorKey:"severities",header:"Alert status",cell:e=>{let{getValue:t}=e;const a=t();return a?.length?(0,p.jsx)(d.Flex,{flexWrap:!0,gap:1,children:a.map((e=>(0,p.jsx)(d.Flex,{padding:[.5,0],children:(0,p.jsx)(E.A,{flavour:e.toLowerCase(),capitalize:!0,children:e})},e)))}):(0,p.jsx)($,{})}},{id:"alertRoles",name:"Alert roles",accessorKey:"alertRoles",header:"Alert role",cell:O},{id:"startDate",name:"Start date",accessorKey:"startsAt",header:"Start date",cell:V},{id:"endDate",name:"End date",accessorKey:"lastsUntil",header:"End date",cell:V}];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,r.useState)(""),{silencingRulePrefill:a}=(0,B.PP)(),l=a?{type:"create"}:{},[n,s]=(0,r.useState)(l),[,i]=(0,N.A)(),{localeDateString:o}=(0,R.$j)(),c=(0,D._S)(),u=(0,D.Lz)(),m=(0,U.l)(),h=()=>s({type:"create"}),x=e=>s({type:"edit",rule:e}),g=e=>{let{id:t}=e;c([t]).then((()=>{u(),m()})).catch(i)},y=(0,z.JT)("space:DeletePersonalSilencingRule"),b=(0,z.JT)("space:DeleteSystemSilencingRule"),f=(0,r.useMemo)((()=>({addEntry:{dataGa:"",flavour:"hollow",handleAction:h,iconColor:"success",label:"Add rule",small:!0,width:"auto"}})),[]),j=e=>{let{name:t}=e;return(0,p.jsxs)(p.Fragment,{children:["Delete ",t," rule"]})};return{search:e,setSearch:t,bulkActions:f,rowActions:(0,r.useMemo)((()=>({edit:{handleAction:x,disabledTooltipText:"Edit is disabled",isDisabled:e=>{let{readOnly:t}=e;return!!t},dataGa:"alert-silencing::click-edit-row::rules-table"},delete:{handleAction:g,confirmationTitle:j,confirmationMessage:e=>(0,p.jsxs)(d.Text,{wordBreak:"break-word",children:["You are about to delete ",(0,p.jsx)("strong",{children:e.name})," silencing rule.",(0,p.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:!b}}})),[]),onFilter:(0,r.useCallback)(((e,t,a)=>{const l=e.original,n=a.toLowerCase(),r=(l.rooms||[]).map((e=>{let{name:t}=e;return t})),s=(l.nodes||[]).map((e=>{let{name:t}=e;return t})),i=l.alertNames||[],c=l.alertContexts||[],d=l.severities||[],u=l.alertRoles||[],m=l.hostLabels||{},h=l.startsAt?o(new Date(l.startsAt),W):"",x=l.lastsUntil?o(new Date(l.lastsUntil),W):"";return((e,t)=>e.some((e=>e.toLowerCase().includes(t))))([l.name.toLowerCase(),...r,...s,...i,...c,...d,...u,...Object.entries(m).flat(),h,x],n)}),[]),modalDetails:n,closeModal:()=>s({})}},J=(0,S.A)((()=>a.e(6025).then(a.bind(a,16025))),"CreateOrUpdateRuleModal"),G=(0,r.memo)(d.Table,((e,t)=>(0,F.Ay)(e,t))),Y={right:["actions"]},Q=()=>(0,p.jsx)(d.Flex,{children:(0,p.jsxs)(d.Text,{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,p.jsx)(I.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:n,rowActions:s,onFilter:i,modalDetails:o,closeModal:c}=q();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(d.Flex,{column:!0,gap:4,padding:[2,4],height:"100%",children:[(0,p.jsx)(Q,{}),(0,p.jsx)(G,{enableSorting:!0,enableColumnVisibility:!0,data:t,dataColumns:H,bulkActions:n,rowActions:s,globalFilter:a,globalFilterFn:i,onSearch:l,columnPinning:Y,enableColumnPinning:!0,sortBy:_},JSON.stringify(t||{}))]}),"create"===o.type?(0,p.jsx)(r.Suspense,{children:(0,p.jsx)(J,{onClose:c})}):null,"edit"===o.type&&o.rule?(0,p.jsx)(r.Suspense,{children:(0,p.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,p.jsxs)(d.Flex,{column:!0,gap:2,alignItems:"center",justifyContent:"center",flex:!0,children:[(0,p.jsx)(d.TextBig,{children:"Something went wrong"}),t&&(0,p.jsxs)(d.Text,{children:["(",t,")"]})]})};var ne=a(89544),re=a(60908);const se=()=>{ae(),(0,ne.H)();const{loaded:e,rules:t,error:a}=(0,x.q)({extraKey:w.qt});return e?a?(0,p.jsx)(re.DL,{tab:"Notifications::SilencingRules",children:(0,p.jsx)(le,{errorMessage:a.message})}):(0,p.jsx)(re.Ay,{tab:"Notifications::SilencingRules",children:(0,p.jsx)(l.A,{sidebar:(0,p.jsx)(T,{rules:t}),children:(0,p.jsx)(X,{data:t})})}):(0,p.jsx)(n.A,{title:"Loading silencing rules..."})}},89544:(e,t,a)=>{a.d(t,{A:()=>u,H:()=>d});a(98992),a(81454);var l=a(96540),n=a(30569),r=a(24609),s=a(83268),i=a(258),o=a(81391);const c=()=>{const e=(0,r.vt)();return(0,n.yF)((0,l.useCallback)((async(t,a,l)=>{const n=await t((0,s.$6)({id:l,key:"nodes"}));let r=null;return n?.length||(a((0,s.$6)({id:l,key:"loaded"}),!1),r=(0,i.uQ)({roomId:l,spaceId:e}),r.then((e=>{let{data:t}=e;a((0,s.$6)({id:l,key:"nodes"}),t.map((e=>{let{id:t,name:a}=e;return{label:a,value:t}}))),a((0,s.$6)({id:l,key:"loaded"}),!0)})).catch((e=>a((0,s.$6)({id:l,key:"error"}),e)))),r}),[e]))},d=()=>{const e=c(),t=(0,o.n)("id");(0,l.useEffect)((()=>{let a=null;return t&&(a=e(t)),()=>!!a?.cancel&&a.cancel()}),[t,e])},u=c}}]);