File: //opt/netdata/usr/local/share/netdata/web/v3/9961.46c18ee3e172ba60fb9e.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:"708a75c92819a91d9965e190e4acf4e55b2c19a3"};var t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c4279ed7-0681-4391-ae34-330ad4a47fff",e._sentryDebugIdIdentifier="sentry-dbid-c4279ed7-0681-4391-ae34-330ad4a47fff")}catch(e){}}(),(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[9961],{89544(e,t,r){r.d(t,{A:()=>u,H:()=>d});r(98992),r(81454);var n=r(96540),a=r(30569),l=r(24609),s=r(10602),o=r(258),i=r(81391);const c=()=>{const e=(0,l.vt)();return(0,a.yF)((0,n.useCallback)((async(t,r,n)=>{const a=await t((0,s.$6)({id:n,key:"nodes"}));let l=null;return null!==a&&void 0!==a&&a.length||(r((0,s.$6)({id:n,key:"loaded"}),!1),l=(0,o.uQ)({roomId:n,spaceId:e}),l.then((e=>{let{data:t}=e;r((0,s.$6)({id:n,key:"nodes"}),t.map((e=>{let{id:t,name:r}=e;return{label:r,value:t}}))),r((0,s.$6)({id:n,key:"loaded"}),!0)})).catch((e=>r((0,s.$6)({id:n,key:"error"}),e)))),l}),[e]))},d=()=>{const e=c(),t=(0,i.n)("id");(0,n.useEffect)((()=>{let r=null;return t&&(r=e(t)),()=>{var e;return!(null===(e=r)||void 0===e||!e.cancel)&&r.cancel()}}),[t,e])},u=c},19961(e,t,r){r.r(t),r.d(t,{default:()=>be});var n=r(88255),a=r(55093),l=(r(98992),r(37550),r(62953),r(96540)),s=r(6304),o=r(81683),i=r(13473),c=r(27784),d=(r(54520),r(3949),r(64467)),u=r(42358),p=(r(8872),r(42790)),m=r(38823),h=r(64007),b=r(57714),g=r(11409),y=r(74848);function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function x(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){(0,d.A)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}const j=(e,t,r)=>{let{id:n,name:a}=e;-1==r?t.push({id:n,name:a,count:1}):t[r]=x(x({},t[r]),{},{count:t[r].count+1})},O=e=>e.id,v=e=>e.name,w=e=>{let{title:t,baseKey:r,param:n,paramKey:a,extraKey:s,testIdPrefix:o}=e;const i=(e=>{let{baseKey:t,extraKey:r,param:n,paramKey:a}=e;const{rules:s}=(0,b.q)({extraKey:r,omit:n,keepAll:!0}),o=(0,p.rW)(n,{key:t,extraKey:r,flavour:"arr"});return(0,l.useMemo)((()=>s.reduce(((e,t)=>{const r=t[a];if(!r)return e;const n=e.findIndex((e=>e.id==r.id));return"id"==a?j({id:r,name:r},e,n):["rooms","nodes"].includes(a)?r.forEach((t=>{let{id:r,name:a,notAvailable:l}=t;const s=l?"Not available (".concat(r,")"):a;j({id:r,name:s},e,n)})):["alertNames","alertContexts","alertRoles"].includes(a)?r.forEach((t=>{j({id:t,name:t},e,n)})):"hostLabels"==a&&Object.entries(r).forEach((t=>{let[r,a]=t;const l=(0,g.M)({key:r,value:a});j({id:l,name:l},e,n)})),e}),[])),[s,o])})({baseKey:r,extraKey:s,param:n,paramKey:a});return i.length?(0,y.jsx)(m.A,{title:t,testIdPrefix:o,param:n,baseKey:r,extraKey:s,children:(0,y.jsx)(h.Ay,{param:n,baseKey:r,extraKey:s,testIdPrefix:o,collection:i,getValue:O,getLabel:v,capitalized:!1})}):null};var A=r(24609),P=r(37437);function k(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function S(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?k(Object(r),!0).forEach((function(t){(0,d.A)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):k(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}const K=[{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"}],D={filters:{iconName:"filterList",color:{active:"success",notActive:"textLite"},width:"19px",Content:(0,l.memo)((e=>{const t=(0,A.vt)();return(0,y.jsx)(u.Flex,S(S({column:!0,height:"calc(100vh - 266px)",overflow:{vertical:"auto"},padding:[0,0,30]},e),{},{children:K.map((e=>{let{title:r,param:n,paramKey:a}=e;return(0,y.jsx)(w,{baseKey:t,extraKey:P.qt,title:r,param:n,paramKey:a},r)}))}))})),dataTestId:"filterBar",label:"Filters"}},C=["filters"],T=e=>e.some((e=>{let{roomIds:t=[],nodeIds:r=[],hostLabels:n={},alertNames:a=[],alertContexts:l=[],alertRoles:s=[]}=e;return t.length||r.length||Object.keys(n).length||a.length||l.length||s.length})),I=e=>{let{rules:t}=e;const[r,n]=(0,s.A)((()=>T(t))),{Content:a}=D.filters;return(0,l.useEffect)((()=>{n(T(t))}),[t]),(0,y.jsx)(o.Ay,{collapsedComponent:(0,y.jsx)(i.A,{onClickTab:n,availableTabs:D,tabsToShow:C}),isOpen:r,header:(0,y.jsx)(c.A,{isOpen:r,onToggle:n,title:"Filters",icon:"filterList"}),children:(0,y.jsx)(a,{padding:[0,3,30]})})};r(33110),r(27495);var F=r(7960),E=r(79748),L=r(57377),R=(r(9391),r(81454),r(30569)),N=r(64587),M=r(92068),V=r(63872),_=r(45087),$=r(75894),H=r(15679);function B(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function U(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?B(Object(r),!0).forEach((function(t){(0,d.A)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):B(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}const z=()=>(0,y.jsx)(u.Text,{children:"*"}),W=e=>{let{getValue:t}=e;const r=t();return null!==r&&void 0!==r&&r.length?(0,y.jsx)(u.Flex,{flexWrap:!0,gap:1,children:r.map((e=>(0,y.jsx)(u.Flex,{padding:[.5,0],children:(0,y.jsx)(H.A,{value:e})},e)))}):(0,y.jsx)(z,{})},q=e=>{let{getValue:t}=e;const{localeDateString:r}=(0,N.$j)();if(!t())return(0,y.jsx)(u.Text,{children:"-"});const n=r(new Date(t()),{month:"2-digit",day:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",long:!1,dateStyle:void 0});return(0,y.jsx)(u.Text,{whiteSpace:"nowrap",children:n})},J=[{id:"name",desc:!0}],Y=[{id:"disabled",name:"Disable rule",accessorKey:"disabled",header:"",cell:e=>{let{row:t,getValue:r}=e;const n=(0,A.vt)(),a=t.original,[o,i]=(0,l.useState)(!r()),[c,d]=(0,s.A)(),[,p]=(0,V.A)(),m=(0,M.FU)(),h=(0,R.yF)((0,l.useCallback)(((e,t,r)=>{t((0,M.Pu)({id:n,key:"rules"}),(e=>[...e.filter((e=>e.id!=r.id)),r]))}),[n]));return(0,y.jsx)(u.Toggle,{colored:!0,checked:o,disabled:c,onChange:e=>{d();const t=e.target.checked;i(t);const r=U(U({},a),{},{disabled:!t});m(r).then((()=>{h(r)})).catch((e=>{i(!t),p(e)})).finally(d)}})},size:80},{id:"name",name:"Name",accessorKey:"name",header:"Rule name",cell:e=>{let{row:t,getValue:r}=e;const{accountId:n}=t.original;return(0,y.jsxs)(u.Flex,{gap:2,alignItems:"center",children:[(0,y.jsx)(u.Text,{wordBreak:"break-word",children:r()}),n&&(0,y.jsx)(_.A,{align:"bottom",content:"This rule affects only your account",children:(0,y.jsx)(u.Box,{children:(0,y.jsx)(u.Icon,{color:"textLite",height:"16px",name:"userPress",width:"16px"})})})]})}},{id:"rooms",name:"Rooms",accessorKey:"rooms",header:"Rooms",cell:e=>{let{getValue:t}=e;const r=t();return null!==r&&void 0!==r&&r.length?(0,y.jsx)(u.Text,{children:r.map((e=>{let{name:t}=e;return t})).join(", ")}):(0,y.jsx)(u.Text,{children:"All rooms"})}},{id:"nodes",name:"Nodes",accessorKey:"nodes",header:"Nodes",cell:e=>{let{getValue:t}=e;const r=t();return null!==r&&void 0!==r&&r.length?(0,y.jsx)(u.Flex,{flexWrap:!0,gap:1,children:r.map((e=>{let{id:t,name:r,notAvailable:n}=e;const a=n?(0,y.jsxs)(u.Flex,{alignItems:"center",gap:1,children:[(0,y.jsx)(u.Icon,{name:"warning_triangle",size:"small",color:"neutralPillColor"}),(0,y.jsx)(u.Text,{children:"Node no longer available"})]}):r;return(0,y.jsx)(H.A,{value:a},t)}))}):(0,y.jsx)(z,{})}},{id:"hostLabels",name:"Host labels",accessorKey:"hostLabels",header:"Host labels",cell:e=>{let{getValue:t}=e;const r=t(),n=Object.entries(r||{});return n.length?(0,y.jsx)(u.Flex,{flexWrap:!0,gap:1,children:n.map((e=>{let[t,r]=e;const n=(0,g.M)({key:t,value:r});return(0,y.jsx)(H.A,{value:n},n)}))}):(0,y.jsx)(z,{})}},{id:"alertNames",name:"Alert names",accessorKey:"alertNames",header:"Alert name",cell:W},{id:"alertContexts",name:"Alert contexts",accessorKey:"alertContexts",header:"Alert context",cell:W},{id:"alertInstances",name:"Alert instances",accessorKey:"alertInstances",header:"Alert instances",cell:W},{id:"severities",name:"Alert status",accessorKey:"severities",header:"Alert status",cell:e=>{let{getValue:t}=e;const r=t();return null!==r&&void 0!==r&&r.length?(0,y.jsx)(u.Flex,{flexWrap:!0,gap:1,children:r.map((e=>(0,y.jsx)(u.Flex,{padding:[.5,0],children:(0,y.jsx)($.A,{flavour:e.toLowerCase(),capitalize:!0,children:e})},e)))}):(0,y.jsx)(z,{})}},{id:"alertRoles",name:"Alert roles",accessorKey:"alertRoles",header:"Alert role",cell:W},{id:"startDate",name:"Start date",accessorKey:"startsAt",header:"Start date",cell:q},{id:"endDate",name:"End date",accessorKey:"lastsUntil",header:"End date",cell:q}];r(46449),r(93514);var G=r(89942),Q=r(30811),X=r(99728);const Z={month:"2-digit",day:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",long:!1,dateStyle:void 0},ee=()=>{const[e,t]=(0,l.useState)(""),{silencingRulePrefill:r}=(0,G.PP)(),n=r?{type:"create"}:{},[a,s]=(0,l.useState)(n),[o,i]=(0,V.A)(),{localeDateString:c}=(0,N.$j)(),d=(0,M._S)(),p=(0,M.Lz)(),m=(0,Q.l)(),h=()=>s({type:"create"}),b=e=>s({type:"edit",rule:e}),g=e=>{let{id:t}=e;d([t]).then((()=>{p(),m(),o({header:"Success",text:"You have successfully deleted a rule"})})).catch(i)},f=(0,X.JT)("space:DeletePersonalSilencingRule"),x=(0,X.JT)("space:DeleteSystemSilencingRule"),j=(0,l.useMemo)((()=>({addEntry:{dataGa:"",flavour:"hollow",handleAction:h,iconColor:"success",label:"Add rule",small:!0,width:"auto"}})),[]),O=e=>{let{name:t}=e;return(0,y.jsxs)(y.Fragment,{children:["Delete ",t," rule"]})};return{search:e,setSearch:t,bulkActions:j,rowActions:(0,l.useMemo)((()=>({edit:{handleAction:b,disabledTooltipText:"Edit is disabled",isDisabled:e=>{let{readOnly:t}=e;return!!t},dataGa:"alert-silencing::click-edit-row::rules-table"},delete:{handleAction:g,confirmationTitle:O,confirmationMessage:e=>(0,y.jsxs)(u.Text,{wordBreak:"break-word",children:["You are about to delete ",(0,y.jsx)("strong",{children:e.name})," silencing rule.",(0,y.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?!f:!x}}})),[]),onFilter:(0,l.useCallback)(((e,t,r)=>{const n=e.original,a=r.toLowerCase(),l=(n.rooms||[]).map((e=>{let{name:t}=e;return t})),s=(n.nodes||[]).map((e=>{let{name:t}=e;return t})),o=n.alertNames||[],i=n.alertContexts||[],d=n.severities||[],u=n.alertRoles||[],p=n.hostLabels||{},m=n.startsAt?c(new Date(n.startsAt),Z):"",h=n.lastsUntil?c(new Date(n.lastsUntil),Z):"";return((e,t)=>e.some((e=>e.toLowerCase().includes(t))))([n.name.toLowerCase(),...l,...s,...o,...i,...d,...u,...Object.entries(p).flat(),m,h],a)}),[]),modalDetails:a,closeModal:()=>s({})}},te=(0,F.A)((()=>r.e(9163).then(r.bind(r,29163))),"CreateOrUpdateRuleModal"),re=(0,l.memo)(u.Table,((e,t)=>(0,L.Ay)(e,t))),ne={right:["actions"]},ae=()=>(0,y.jsx)(u.Flex,{children:(0,y.jsxs)(u.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,y.jsx)(E.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."})]})}),le=e=>{let{data:t}=e;const{search:r,setSearch:n,bulkActions:a,rowActions:s,onFilter:o,modalDetails:i,closeModal:c}=ee();return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(u.Flex,{column:!0,gap:4,padding:[2,4],height:"100%",children:[(0,y.jsx)(ae,{}),(0,y.jsx)(re,{enableSorting:!0,enableColumnVisibility:!0,data:t,dataColumns:Y,bulkActions:a,rowActions:s,globalFilter:r,globalFilterFn:o,onSearch:n,columnPinning:ne,enableColumnPinning:!0,sortBy:J},JSON.stringify(t||{}))]}),"create"===i.type?(0,y.jsx)(l.Suspense,{children:(0,y.jsx)(te,{onClose:c})}):null,"edit"===i.type&&i.rule?(0,y.jsx)(l.Suspense,{children:(0,y.jsx)(te,{rule:i.rule,onClose:c,isEdit:!0})}):null]})};var se=r(36710),oe=r(49910),ie=r(32052);function ce(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function de(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ce(Object(r),!0).forEach((function(t){(0,d.A)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ce(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}const ue=()=>{const e=(0,A.vt)(),t=(0,M.ys)({key:"initialLoad"}),r=(0,M.Qu)(),n=(0,M.UJ)();(0,ie.A)((()=>({enabled:!!e&&!t,fetch:()=>(0,se.cH)(e),onFail:e=>n(de(de({},oe.$),{},{loading:!1,loaded:!0,error:e})),onSuccess:e=>n(de(de({},oe.$),{},{loading:!1,loaded:!0,initialLoad:!0,rules:e}))})),[e,t,r])},pe=e=>{let{errorMessage:t}=e;return(0,y.jsxs)(u.Flex,{column:!0,gap:2,alignItems:"center",justifyContent:"center",flex:!0,children:[(0,y.jsx)(u.TextBig,{children:"Something went wrong"}),t&&(0,y.jsxs)(u.Text,{children:["(",t,")"]})]})};var me=r(89544),he=r(60908);const be=()=>{ue(),(0,me.H)();const{loaded:e,rules:t,error:r}=(0,b.q)({extraKey:P.qt});return e?r?(0,y.jsx)(he.DL,{tab:"Notifications::SilencingRules",children:(0,y.jsx)(pe,{errorMessage:r.message})}):(0,y.jsx)(he.Ay,{tab:"Notifications::SilencingRules",children:(0,y.jsx)(n.A,{sidebar:(0,y.jsx)(I,{rules:t}),children:(0,y.jsx)(le,{data:t})})}):(0,y.jsx)(a.A,{title:"Loading silencing rules..."})}},11409(e,t,r){r.d(t,{H:()=>a,M:()=>l});r(98992),r(8872),r(62953);var n=r(37437);const a=e=>{var t;const{validationErrors:r,errorMessage:a}=(null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.data)||"object"===typeof e&&e||{};return r&&Object.keys(r).length?Object.entries(r).reduce(((e,t)=>{let[,r]=t;const{code:a,message:l}=r;return n.xc[a]||l?e.push({errorMessage:n.xc[a]||l}):e.includes(n.xc.default)||e.push({errorMessage:n.xc.default}),e}),[]):[{errorMessage:a}]},l=e=>{let{key:t,value:r}=e;return"".concat(t,": ").concat(r)}}}]);