AlertAmRoutes.7b3e3ae6ef0034c36384.js 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. "use strict";(self.webpackChunkgrafana=self.webpackChunkgrafana||[]).push([[8648],{29507:(e,t,n)=>{n.d(t,{x:()=>l});var a=n(68404),r=n(18745),i=n(45193);function l(e){const t=(0,r.useDispatch)(),n=(0,a.useRef)(e);n.current=e,(0,a.useEffect)((()=>()=>{t((0,i.e)({stateSelector:n.current}))}),[t])}},89905:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Je});var a=n(36636),r=n(68404),i=n(18745),l=n(69783),s=n(29507),o=n(50489),c=n(40256),u=n(71308),d=n(53262),g=n(82969),m=n(19462),p=n(82897),v=n(10331),h=n(82139),x=n(66322);const j=["",""],f=(e,t)=>Object.entries(null!=e?e:{}).reduce(((e,n)=>{let[a,r]=n;return[...e,{name:a,value:r,operator:t?v._M.regex:v._M.equal}]}),[]),b=(e,t)=>{if(!e)return null!=t?t:j;const[n,a]=e?(0,x.bG)(e):[void 0,void 0],r=x.qr.find((e=>e.value===a));return n&&r?[String(n),r.value]:j},y=e=>e.value,C={name:"",value:"",operator:v._M.equal},S={id:"",overrideGrouping:!1,groupBy:[],object_matchers:[],routes:[],continue:!1,receiver:"",overrideTimings:!1,groupWaitValue:"",groupWaitValueType:x.qr[0].value,groupIntervalValue:"",groupIntervalValueType:x.qr[0].value,repeatIntervalValue:"",repeatIntervalValueType:x.qr[0].value,muteTimeIntervals:[]},I=e=>{var t,n,a,r,i,l,s,o,c;if(!e)return[S,{}];const u=String(Math.random()),d={[u]:e};if(0===Object.keys(e).length){return[Object.assign({},S,{id:u}),d]}const g=[];null===(t=e.routes)||void 0===t||t.forEach((e=>{const[t,n]=I(e);g.push(t),Object.assign(d,n)}));const m=e.matchers?null!==(n=null===(a=e.matchers)||void 0===a?void 0:a.map((e=>(0,h.cm)((0,h.tC)(e)))))&&void 0!==n?n:[]:null!==(r=null===(i=e.object_matchers)||void 0===i?void 0:i.map((e=>({name:e[0],operator:e[1],value:e[2]}))))&&void 0!==r?r:[],[p,v]=b(e.group_wait,["","s"]),[x,j]=b(e.group_interval,["","m"]),[y,C]=b(e.repeat_interval,["","h"]);return[{id:u,object_matchers:[...m,...f(e.match,!1),...f(e.match_re,!0)],continue:null!==(l=e.continue)&&void 0!==l&&l,receiver:null!==(s=e.receiver)&&void 0!==s?s:"",overrideGrouping:Array.isArray(e.group_by)&&0!==e.group_by.length,groupBy:null!==(o=e.group_by)&&void 0!==o?o:[],overrideTimings:[p,x,y].some(Boolean),groupWaitValue:p,groupWaitValueType:v,groupIntervalValue:x,groupIntervalValueType:j,repeatIntervalValue:y,repeatIntervalValueType:C,routes:g,muteTimeIntervals:null!==(c=e.mute_time_intervals)&&void 0!==c?c:[]},d]},N=(e,t,n)=>{const a=n[t.id],{overrideGrouping:r,groupBy:i,overrideTimings:l,groupWaitValue:s,groupWaitValueType:o,groupIntervalValue:c,groupIntervalValueType:u,repeatIntervalValue:d,repeatIntervalValueType:g}=t,v=r&&i?i:[],h=l&&s?`${s}${o}`:void 0,x=l&&c?`${c}${u}`:void 0,j=l&&d?`${d}${g}`:void 0,f=Object.assign({},null!=a?a:{},{continue:t.continue,group_by:v,object_matchers:t.object_matchers.length?t.object_matchers.map((e=>[e.name,e.operator,e.value])):void 0,match:void 0,match_re:void 0,group_wait:h,group_interval:x,repeat_interval:j,routes:t.routes.map((t=>N(e,t,n))),mute_time_intervals:t.muteTimeIntervals});return e!==m.GC?(f.matchers=t.object_matchers.map((e=>{let{name:t,operator:n,value:a}=e;return`${t}${n}${a}`})),f.object_matchers=void 0):f.matchers=void 0,t.receiver&&(f.receiver=t.receiver),(0,p.omitBy)(f,p.isUndefined)},w=e=>({label:e,value:e}),V=e=>(null!=e?e:[]).map(w),$=e=>{var t;return e&&null!==(t=y(e))&&void 0!==t?t:""},M=e=>{return e?(null!=(t=e)?t:[]).map(y):[];var t},O=e=>{if(e)return/^\d+$/.test(e)?void 0:"Must be a positive integer."};var k=n(39357);const T=e=>({container:a.css`
  2. align-items: center;
  3. display: flex;
  4. flex-flow: row nowrap;
  5. & > * + * {
  6. margin-left: ${e.spacing(1)};
  7. }
  8. `,input:a.css`
  9. flex: 1;
  10. `,timingContainer:a.css`
  11. max-width: ${e.spacing(33)};
  12. `,smallInput:a.css`
  13. width: ${e.spacing(6.5)};
  14. `,linkText:a.css`
  15. text-decoration: underline;
  16. `,collapse:a.css`
  17. border: none;
  18. background: none;
  19. color: ${e.colors.text.primary};
  20. `});var _,B,q=n(45916);const F=["onChange","ref"],G=["onChange","ref"],A=["onChange","ref"],E=["onChange","ref"],W=["onChange","ref"];function R(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}const P=e=>{var t;let{alertManagerSourceName:n,onCancel:i,onSave:s,receivers:o,routes:c}=e;const u=(0,l.useStyles2)(T),[d,g]=(0,r.useState)(!1),[m,p]=(0,r.useState)(V(c.groupBy));return(0,q.jsx)(l.Form,{defaultValues:Object.assign({},c,{overrideTimings:!0,overrideGrouping:!0}),onSubmit:s,children:e=>{var r,s,c,v;let{control:h,errors:j,setValue:f}=e;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(l.Field,{label:"Default contact point",invalid:!!j.receiver,error:null===(r=j.receiver)||void 0===r?void 0:r.message,children:(0,q.jsx)(q.Fragment,{children:(0,q.jsxs)("div",{className:u.container,"data-testid":"am-receiver-select",children:[(0,q.jsx)(l.InputControl,{render:e=>{let{field:{onChange:t}}=e,n=R(e.field,F);return(0,q.jsx)(l.Select,Object.assign({"aria-label":"Default contact point"},n,{className:u.input,onChange:e=>t($(e)),options:o}))},control:h,name:"receiver",rules:{required:{value:!0,message:"Required."}}}),_||(_=(0,q.jsx)("span",{children:"or"})),(0,q.jsx)(l.Link,{className:u.linkText,href:(0,k.eQ)("/alerting/notifications/receivers/new",n),children:"Create a contact point"})]})})}),(0,q.jsx)(l.Field,{label:"Group by",description:"Group alerts when you receive a notification based on labels.","data-testid":"am-group-select",children:(0,q.jsx)(l.InputControl,{render:e=>{let{field:{onChange:t}}=e,n=R(e.field,G);return(0,q.jsx)(l.MultiSelect,Object.assign({"aria-label":"Group by"},n,{allowCustomValue:!0,className:u.input,onCreateOption:e=>{p((t=>[...t,w(e)])),f("groupBy",[...n.value,e])},onChange:e=>t(M(e)),options:m}))},control:h,name:"groupBy"})}),(0,q.jsxs)(l.Collapse,{collapsible:!0,className:u.collapse,isOpen:d,label:"Timing options",onToggle:g,children:[(0,q.jsx)(l.Field,{label:"Group wait",description:"The waiting time until the initial notification is sent for a new group created by an incoming alert. Default 30 seconds.",invalid:!!j.groupWaitValue,error:null===(s=j.groupWaitValue)||void 0===s?void 0:s.message,"data-testid":"am-group-wait",children:(0,q.jsx)(q.Fragment,{children:(0,q.jsxs)("div",{className:(0,a.cx)(u.container,u.timingContainer),children:[(0,q.jsx)(l.InputControl,{render:e=>{let{field:t,fieldState:{invalid:n}}=e;return(0,q.jsx)(l.Input,Object.assign({},t,{className:u.smallInput,invalid:n,placeholder:"30"}))},control:h,name:"groupWaitValue",rules:{validate:O}}),(0,q.jsx)(l.InputControl,{render:e=>{let{field:{onChange:t}}=e,n=R(e.field,A);return(0,q.jsx)(l.Select,Object.assign({},n,{className:u.input,onChange:e=>t($(e)),options:x.qr,"aria-label":"Group wait type"}))},control:h,name:"groupWaitValueType"})]})})}),(0,q.jsx)(l.Field,{label:"Group interval",description:"The waiting time to send a batch of new alerts for that group after the first notification was sent. Default 5 minutes.",invalid:!!j.groupIntervalValue,error:null===(c=j.groupIntervalValue)||void 0===c?void 0:c.message,"data-testid":"am-group-interval",children:(0,q.jsx)(q.Fragment,{children:(0,q.jsxs)("div",{className:(0,a.cx)(u.container,u.timingContainer),children:[(0,q.jsx)(l.InputControl,{render:e=>{let{field:t,fieldState:{invalid:n}}=e;return(0,q.jsx)(l.Input,Object.assign({},t,{className:u.smallInput,invalid:n,placeholder:"5"}))},control:h,name:"groupIntervalValue",rules:{validate:O}}),(0,q.jsx)(l.InputControl,{render:e=>{let{field:{onChange:t}}=e,n=R(e.field,E);return(0,q.jsx)(l.Select,Object.assign({},n,{className:u.input,onChange:e=>t($(e)),options:x.qr,"aria-label":"Group interval type"}))},control:h,name:"groupIntervalValueType"})]})})}),(0,q.jsx)(l.Field,{label:"Repeat interval",description:"The waiting time to resend an alert after they have successfully been sent. Default 4 hours.",invalid:!!j.repeatIntervalValue,error:null===(v=j.repeatIntervalValue)||void 0===v?void 0:v.message,"data-testid":"am-repeat-interval",children:(0,q.jsx)(q.Fragment,{children:(0,q.jsxs)("div",{className:(0,a.cx)(u.container,u.timingContainer),children:[(0,q.jsx)(l.InputControl,{render:e=>{let{field:t,fieldState:{invalid:n}}=e;return(0,q.jsx)(l.Input,Object.assign({},t,{className:u.smallInput,invalid:n,placeholder:"4"}))},control:h,name:"repeatIntervalValue",rules:{validate:O}}),(0,q.jsx)(l.InputControl,{render:e=>{let{field:{onChange:t}}=e,n=R(e.field,W);return(0,q.jsx)(l.Select,Object.assign({},n,{className:u.input,menuPlacement:"top",onChange:e=>t($(e)),options:x.qr,"aria-label":"Repeat interval type"}))},control:h,name:"repeatIntervalValueType"})]})})})]}),(0,q.jsxs)("div",{className:u.container,children:[B||(B=(0,q.jsx)(l.Button,{type:"submit",children:"Save"})),t||(t=(0,q.jsx)(l.Button,{onClick:i,type:"reset",variant:"secondary",fill:"outline",children:"Cancel"}))]})]})}})},L=e=>({container:a.css`
  21. display: grid;
  22. font-style: ${e.typography.fontSize};
  23. grid-template-columns: ${e.spacing(15.5)} auto;
  24. ${e.breakpoints.down("md")} {
  25. grid-template-columns: 100%;
  26. }
  27. `,titleCell:a.css`
  28. color: ${e.colors.text.primary};
  29. `,valueCell:a.css`
  30. color: ${e.colors.text.secondary};
  31. margin-bottom: ${e.spacing(1)};
  32. `}),z=e=>{let{routes:t}=e;const n=(0,l.useStyles2)(L),a=t.receiver||"-",r=t.groupBy.join(", ")||"-",i=t.groupWaitValue?`${t.groupWaitValue}${t.groupWaitValueType}`:"-",s=t.groupIntervalValue?`${t.groupIntervalValue}${t.groupIntervalValueType}`:"-",o=t.repeatIntervalValue?`${t.repeatIntervalValue}${t.repeatIntervalValueType}`:"-";return(0,q.jsxs)("div",{className:n.container,children:[(0,q.jsx)("div",{className:n.titleCell,children:"Contact point"}),(0,q.jsx)("div",{className:n.valueCell,"data-testid":"am-routes-root-receiver",children:a}),(0,q.jsx)("div",{className:n.titleCell,children:"Group by"}),(0,q.jsx)("div",{className:n.valueCell,"data-testid":"am-routes-root-group-by",children:r}),(0,q.jsx)("div",{className:n.titleCell,children:"Timings"}),(0,q.jsxs)("div",{className:n.valueCell,"data-testid":"am-routes-root-timings",children:["Group wait: ",i," | Group interval: ",s," | Repeat interval: ",o]})]})};var D,K;const J=e=>{let{isEditMode:t,onSave:n,onEnterEditMode:a,onExitEditMode:r,receivers:i,routes:s,alertManagerSourceName:o}=e;const c=(0,l.useStyles2)(Y),u=(0,g.Ko)(o),p=(0,m.RY)(o);return(0,q.jsxs)("div",{className:c.container,"data-testid":"am-root-route-container",children:[(0,q.jsxs)("div",{className:c.titleContainer,children:[(0,q.jsxs)("h5",{className:c.title,children:["Root policy - ",D||(D=(0,q.jsx)("i",{children:"default for all alerts"}))]}),!t&&!p&&(0,q.jsx)(d.q,{actions:[u.update],children:(0,q.jsx)(l.Button,{icon:"pen",onClick:a,size:"sm",type:"button",variant:"secondary",children:"Edit"})})]}),K||(K=(0,q.jsx)("p",{children:"All alerts will go to the default contact point, unless you set additional matchers in the specific routing area."})),t?(0,q.jsx)(P,{alertManagerSourceName:o,onCancel:r,onSave:n,receivers:i,routes:s}):(0,q.jsx)(z,{routes:s})]})},Y=e=>({container:a.css`
  33. background-color: ${e.colors.background.secondary};
  34. color: ${e.colors.text.secondary};
  35. padding: ${e.spacing(2)};
  36. `,titleContainer:a.css`
  37. color: ${e.colors.text.primary};
  38. display: flex;
  39. flex-flow: row nowrap;
  40. `,title:a.css`
  41. flex: 100%;
  42. `});var Z=n(17873),Q=n(61959),H=n(28410);const U=e=>{let{children:t}=e;const n=(0,l.useStyles)(X);return(0,q.jsx)("div",{className:n.container,children:t})},X=e=>({container:a.css`
  43. background-color: ${e.colors.bg2};
  44. color: ${e.colors.textSemiWeak};
  45. padding: ${e.spacing.xl};
  46. text-align: center;
  47. `}),ee=e=>{let{buttonIcon:t,buttonLabel:n,buttonSize:a="lg",buttonVariant:r="primary",onButtonClick:i,text:s,href:o,showButton:c=!0}=e;const u=(0,l.useStyles)(te),d={className:u.button,icon:t,size:a,variant:r};return(0,q.jsx)(U,{children:(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)("p",{className:u.text,children:s}),c&&(o?(0,q.jsx)(l.LinkButton,Object.assign({href:o,type:"button"},d,{children:n})):(0,q.jsx)(l.Button,Object.assign({onClick:i,type:"button"},d,{children:n})))]})})},te=e=>({container:a.css`
  48. background-color: ${e.colors.bg2};
  49. color: ${e.colors.textSemiWeak};
  50. padding: ${e.spacing.xl};
  51. text-align: center;
  52. `,text:a.css`
  53. margin-bottom: ${e.spacing.md};
  54. `,button:a.css`
  55. margin: ${e.spacing.md} 0 ${e.spacing.sm};
  56. `});var ne=n(16905);var ae=n(9019),re=n(68698),ie=n(8455),le=n(82498),se=n(1698),oe=n(33899);const ce=["onChange","ref"],ue=["onChange","ref"],de=["onChange","ref"],ge=["onChange","ref"],me=["onChange","ref"],pe=["onChange","ref"],ve=["onChange","ref"];var he,xe;function je(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}const fe=e=>{var t;let{onCancel:n,onSave:i,receivers:s,routes:o}=e;const c=(0,l.useStyles2)(be),u=(0,l.useStyles2)(T),[d,g]=(0,r.useState)(V(o.groupBy)),m=function(){const e=(0,se.k)("notification"),[t]=(0,le.k)(e),n=(0,oe._)((e=>e.amConfigs));return(0,r.useMemo)((()=>{var e,a,r;const{result:i}=t&&n[t]||ie.oq,l=null!==(e=null==i?void 0:i.alertmanager_config)&&void 0!==e?e:{};return null!==(a=null==l||null===(r=l.mute_time_intervals)||void 0===r?void 0:r.map((e=>({value:e.name,label:e.name,description:e.time_intervals.map((e=>(0,h.uK)(e))).join(", AND ")}))))&&void 0!==a?a:[]}),[t,n])}();return(0,q.jsx)(l.Form,{defaultValues:o,onSubmit:i,children:e=>{var r,i,o;let{control:p,register:v,errors:j,setValue:f,watch:b}=e;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)("input",Object.assign({type:"hidden"},v("id"))),(0,q.jsx)(l.FieldArray,{name:"object_matchers",control:p,children:e=>{let{fields:t,append:n,remove:a}=e;return(0,q.jsx)(q.Fragment,{children:(0,q.jsxs)(l.VerticalGroup,{justify:"flex-start",spacing:"md",children:[he||(he=(0,q.jsx)("div",{children:"Matching labels"})),0===t.length&&(0,q.jsx)(l.Badge,{color:"orange",className:c.noMatchersWarning,icon:"exclamation-triangle",text:"If no matchers are specified, this notification policy will handle all alert instances."}),t.length>0&&(0,q.jsx)("div",{className:c.matchersContainer,children:t.map(((e,t)=>{var n,r,i,s,o,u,d,g,m,x;const f=`object_matchers[${t}]`;return(0,q.jsxs)(l.HorizontalGroup,{align:"flex-start",height:"auto",children:[(0,q.jsx)(l.Field,{label:"Label",invalid:!(null===(n=j.object_matchers)||void 0===n||null===(r=n[t])||void 0===r||!r.name),error:null===(i=j.object_matchers)||void 0===i||null===(s=i[t])||void 0===s||null===(o=s.name)||void 0===o?void 0:o.message,children:(0,q.jsx)(l.Input,Object.assign({},v(`${f}.name`,{required:"Field is required"}),{defaultValue:e.name,placeholder:"label"}))}),(0,q.jsx)(l.Field,{label:"Operator",children:(0,q.jsx)(l.InputControl,{render:e=>{let{field:{onChange:t}}=e,n=je(e.field,ce);return(0,q.jsx)(l.Select,Object.assign({},n,{className:c.matchersOperator,onChange:e=>t(null==e?void 0:e.value),options:h.tA,"aria-label":"Operator"}))},defaultValue:e.operator,control:p,name:`${f}.operator`,rules:{required:{value:!0,message:"Required."}}})}),(0,q.jsx)(l.Field,{label:"Value",invalid:!(null===(u=j.object_matchers)||void 0===u||null===(d=u[t])||void 0===d||!d.value),error:null===(g=j.object_matchers)||void 0===g||null===(m=g[t])||void 0===m||null===(x=m.value)||void 0===x?void 0:x.message,children:(0,q.jsx)(l.Input,Object.assign({},v(`${f}.value`,{required:"Field is required"}),{defaultValue:e.value,placeholder:"value"}))}),(0,q.jsx)(l.IconButton,{className:c.removeButton,tooltip:"Remove matcher",name:"trash-alt",onClick:()=>a(t),children:"Remove"})]},e.id)}))}),(0,q.jsx)(l.Button,{className:c.addMatcherBtn,icon:"plus",onClick:()=>n(C),variant:"secondary",type:"button",children:"Add matcher"})]})})}}),(0,q.jsx)(l.Field,{label:"Contact point",children:(0,q.jsx)(l.InputControl,{render:e=>{let{field:{onChange:t}}=e,n=je(e.field,ue);return(0,q.jsx)(l.Select,Object.assign({"aria-label":"Contact point"},n,{className:u.input,onChange:e=>t($(e)),options:s}))},control:p,name:"receiver"})}),(0,q.jsx)(l.Field,{label:"Continue matching subsequent sibling nodes",children:(0,q.jsx)(l.Switch,Object.assign({id:"continue-toggle"},v("continue")))}),(0,q.jsx)(l.Field,{label:"Override grouping",children:(0,q.jsx)(l.Switch,Object.assign({id:"override-grouping-toggle"},v("overrideGrouping")))}),b().overrideGrouping&&(0,q.jsx)(l.Field,{label:"Group by",description:"Group alerts when you receive a notification based on labels. If empty it will be inherited from the parent policy.",children:(0,q.jsx)(l.InputControl,{render:e=>{let{field:{onChange:t}}=e,n=je(e.field,de);return(0,q.jsx)(l.MultiSelect,Object.assign({"aria-label":"Group by"},n,{allowCustomValue:!0,className:u.input,onCreateOption:e=>{g((t=>[...t,w(e)])),f("groupBy",[...n.value,e])},onChange:e=>t(M(e)),options:d}))},control:p,name:"groupBy"})}),(0,q.jsx)(l.Field,{label:"Override general timings",children:(0,q.jsx)(l.Switch,Object.assign({id:"override-timings-toggle"},v("overrideTimings")))}),b().overrideTimings&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(l.Field,{label:"Group wait",description:"The waiting time until the initial notification is sent for a new group created by an incoming alert. If empty it will be inherited from the parent policy.",invalid:!!j.groupWaitValue,error:null===(r=j.groupWaitValue)||void 0===r?void 0:r.message,children:(0,q.jsx)(q.Fragment,{children:(0,q.jsxs)("div",{className:(0,a.cx)(u.container,u.timingContainer),children:[(0,q.jsx)(l.InputControl,{render:e=>{let{field:t,fieldState:{invalid:n}}=e;return(0,q.jsx)(l.Input,Object.assign({},t,{className:u.smallInput,invalid:n,"aria-label":"Group wait value"}))},control:p,name:"groupWaitValue",rules:{validate:O}}),(0,q.jsx)(l.InputControl,{render:e=>{let{field:{onChange:t}}=e,n=je(e.field,ge);return(0,q.jsx)(l.Select,Object.assign({},n,{className:u.input,onChange:e=>t($(e)),options:x.qr,"aria-label":"Group wait type"}))},control:p,name:"groupWaitValueType"})]})})}),(0,q.jsx)(l.Field,{label:"Group interval",description:"The waiting time to send a batch of new alerts for that group after the first notification was sent. If empty it will be inherited from the parent policy.",invalid:!!j.groupIntervalValue,error:null===(i=j.groupIntervalValue)||void 0===i?void 0:i.message,children:(0,q.jsx)(q.Fragment,{children:(0,q.jsxs)("div",{className:(0,a.cx)(u.container,u.timingContainer),children:[(0,q.jsx)(l.InputControl,{render:e=>{let{field:t,fieldState:{invalid:n}}=e;return(0,q.jsx)(l.Input,Object.assign({},t,{className:u.smallInput,invalid:n,"aria-label":"Group interval value"}))},control:p,name:"groupIntervalValue",rules:{validate:O}}),(0,q.jsx)(l.InputControl,{render:e=>{let{field:{onChange:t}}=e,n=je(e.field,me);return(0,q.jsx)(l.Select,Object.assign({},n,{className:u.input,onChange:e=>t($(e)),options:x.qr,"aria-label":"Group interval type"}))},control:p,name:"groupIntervalValueType"})]})})}),(0,q.jsx)(l.Field,{label:"Repeat interval",description:"The waiting time to resend an alert after they have successfully been sent.",invalid:!!j.repeatIntervalValue,error:null===(o=j.repeatIntervalValue)||void 0===o?void 0:o.message,children:(0,q.jsx)(q.Fragment,{children:(0,q.jsxs)("div",{className:(0,a.cx)(u.container,u.timingContainer),children:[(0,q.jsx)(l.InputControl,{render:e=>{let{field:t,fieldState:{invalid:n}}=e;return(0,q.jsx)(l.Input,Object.assign({},t,{className:u.smallInput,invalid:n,"aria-label":"Repeat interval value"}))},control:p,name:"repeatIntervalValue",rules:{validate:O}}),(0,q.jsx)(l.InputControl,{render:e=>{let{field:{onChange:t}}=e,n=je(e.field,pe);return(0,q.jsx)(l.Select,Object.assign({},n,{className:u.input,menuPlacement:"top",onChange:e=>t($(e)),options:x.qr,"aria-label":"Repeat interval type"}))},control:p,name:"repeatIntervalValueType"})]})})})]}),(0,q.jsx)(l.Field,{label:"Mute timings","data-testid":"am-mute-timing-select",description:"Add mute timing to policy",invalid:!!j.muteTimeIntervals,children:(0,q.jsx)(l.InputControl,{render:e=>{let{field:{onChange:t}}=e,n=je(e.field,ve);return(0,q.jsx)(l.MultiSelect,Object.assign({"aria-label":"Mute timings"},n,{className:u.input,onChange:e=>t(M(e)),options:m}))},control:p,name:"muteTimeIntervals"})}),(0,q.jsxs)("div",{className:c.buttonGroup,children:[xe||(xe=(0,q.jsx)(l.Button,{type:"submit",children:"Save policy"})),t||(t=(0,q.jsx)(l.Button,{onClick:n,fill:"outline",type:"button",variant:"secondary",children:"Cancel"}))]})]})}})},be=e=>{const t=e.spacing(3.5);return{addMatcherBtn:a.css`
  57. margin-bottom: ${t};
  58. `,matchersContainer:a.css`
  59. background-color: ${e.colors.background.secondary};
  60. margin: ${e.spacing(1,0)};
  61. padding: ${e.spacing(1,4.6,1,1.5)};
  62. width: fit-content;
  63. `,matchersOperator:a.css`
  64. min-width: 140px;
  65. `,nestedPolicies:a.css`
  66. margin-top: ${t};
  67. `,removeButton:a.css`
  68. margin-left: ${e.spacing(1)};
  69. margin-top: ${e.spacing(2.5)};
  70. `,buttonGroup:a.css`
  71. margin: ${e.spacing(6)} 0 ${t};
  72. & > * + * {
  73. margin-left: ${e.spacing(1.5)};
  74. }
  75. `,noMatchersWarning:a.css`
  76. padding: ${e.spacing(1)} ${e.spacing(2)};
  77. `}};var ye,Ce,Se,Ie,Ne,we,Ve=n(83809);const $e=e=>{var t;let{alertManagerSourceName:n,muteTimingNames:a,hideActions:s}=e;const o=(0,l.useStyles2)(Oe),c=(0,i.useDispatch)(),u=(0,g.Ko)(n),m=(0,oe._)((e=>e.amConfigs)),[p,v]=(0,r.useState)(""),{result:h}=n&&m[n]||ie.oq,x=(0,r.useMemo)((()=>{var e,t;return(null!==(e=null==h||null===(t=h.alertmanager_config)||void 0===t?void 0:t.mute_time_intervals)&&void 0!==e?e:[]).filter((e=>{let{name:t}=e;return!a||a.includes(t)})).map((e=>({id:e.name,data:e})))}),[null==h||null===(t=h.alertmanager_config)||void 0===t?void 0:t.mute_time_intervals,a]),j=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0;const a=(0,g.Ko)(e),i=Q.Vt.hasPermission(a.update),s=Q.Vt.hasPermission(a.delete),o=!t&&(i||s);return(0,r.useMemo)((()=>{const t=[{id:"name",label:"Name",renderCell:function(e){let{data:t}=e;return t.name},size:"250px"},{id:"timeRange",label:"Time range",renderCell:e=>{let{data:t}=e;return Me(t.time_intervals)}}];return o&&t.push({id:"actions",label:"Actions",renderCell:function(t){let{data:r}=t;return(0,q.jsxs)("div",{children:[(0,q.jsx)(d.q,{actions:[a.update],children:(0,q.jsx)(l.Link,{href:(0,k.eQ)("/alerting/routes/mute-timing/edit",e,{muteName:r.name}),children:Ie||(Ie=(0,q.jsx)(l.IconButton,{name:"edit",title:"Edit mute timing"}))})}),(0,q.jsx)(d.q,{actions:[a.delete],children:(0,q.jsx)(l.IconButton,{name:"trash-alt",title:"Delete mute timing",onClick:()=>n(r.name)})})]})},size:"100px"}),t}),[e,n,o,a])}(n,s,v);return(0,q.jsxs)("div",{className:o.container,children:[!s&&(ye||(ye=(0,q.jsx)("h5",{children:"Mute timings"}))),!s&&(Ce||(Ce=(0,q.jsx)("p",{children:"Mute timings are a named interval of time that may be referenced in the notification policy tree to mute particular notification policies for specific times of the day."}))),!s&&x.length>0&&(0,q.jsx)(d.q,{actions:[u.create],children:(0,q.jsx)(l.LinkButton,{className:o.addMuteButton,icon:"plus",variant:"primary",href:(0,k.eQ)("alerting/routes/mute-timing/new",n),children:"New mute timing"})}),x.length>0?(0,q.jsx)(ae.t,{items:x,cols:j}):s?Se||(Se=(0,q.jsx)("p",{children:"No mute timings configured"})):(0,q.jsx)(ee,{text:"You haven't created any mute timings yet",buttonLabel:"Add mute timing",buttonIcon:"plus",buttonSize:"lg",href:(0,k.eQ)("alerting/routes/mute-timing/new",n),showButton:Q.Vt.hasPermission(u.create)}),!s&&(0,q.jsx)(l.ConfirmModal,{isOpen:!!p,title:"Delete mute timing",body:`Are you sure you would like to delete "${p}"`,confirmText:"Delete",onConfirm:()=>c((0,Ve.r0)(n,p)),onDismiss:()=>v("")})]})};function Me(e){return e.map(((e,t)=>{const{times:n,weekdays:a,days_of_month:i,months:l,years:s}=e,o=(0,h.u6)(n),c=(0,h.v7)(a),u=(0,h.J8)(i),d=(0,h.m8)(l),g=(0,h.qw)(s);return(0,q.jsxs)(r.Fragment,{children:[`${o} ${c}`,Ne||(Ne=(0,q.jsx)("br",{})),[u,d,g].join(" | "),we||(we=(0,q.jsx)("br",{}))]},JSON.stringify(e)+t)}))}const Oe=e=>({container:a.css`
  78. display: flex;
  79. flex-flow: column nowrap;
  80. `,addMuteButton:a.css`
  81. margin-bottom: ${e.spacing(2)};
  82. align-self: flex-end;
  83. `});var ke;const Te=e=>{let{onChange:t,receivers:n,routes:a,readOnly:i=!1,alertManagerSourceName:s}=e;const o=(0,l.useStyles2)(_e),c=(0,l.useStyles2)(L),u=(0,g.Ko)(s),m=a.groupWaitValue?`${a.groupWaitValue}${a.groupWaitValueType}`:"-",p=a.groupIntervalValue?`${a.groupIntervalValue}${a.groupIntervalValueType}`:"-",v=a.repeatIntervalValue?`${a.repeatIntervalValue}${a.repeatIntervalValueType}`:"-",[h,x]=(0,r.useState)(a.routes),[j,f]=(0,r.useState)(!1);return(0,q.jsxs)("div",{className:c.container,children:[(0,q.jsx)("div",{className:c.titleCell,children:"Group wait"}),(0,q.jsx)("div",{className:c.valueCell,children:m}),(0,q.jsx)("div",{className:c.titleCell,children:"Group interval"}),(0,q.jsx)("div",{className:c.valueCell,children:p}),(0,q.jsx)("div",{className:c.titleCell,children:"Repeat interval"}),(0,q.jsx)("div",{className:c.valueCell,children:v}),(0,q.jsx)("div",{className:c.titleCell,children:"Nested policies"}),(0,q.jsxs)("div",{className:c.valueCell,children:[h.length?(0,q.jsx)(Ge,{isAddMode:j,onCancelAdd:()=>{f(!1),x((e=>{const t=[...e];return t.pop(),t}))},onChange:e=>{t(Object.assign({},a,{routes:e})),j&&f(!1)},receivers:n,routes:h,alertManagerSourceName:s}):ke||(ke=(0,q.jsx)("p",{children:"No nested policies configured."})),!j&&!i&&(0,q.jsx)(d.q,{actions:[u.create],children:(0,q.jsx)(l.Button,{className:o.addNestedRoutingBtn,icon:"plus",onClick:()=>{x((e=>[...e,S])),f(!0)},variant:"secondary",type:"button",children:"Add nested policy"})})]}),(0,q.jsx)("div",{className:c.titleCell,children:"Mute timings"}),(0,q.jsx)("div",{className:c.valueCell,children:(0,q.jsx)($e,{alertManagerSourceName:s,muteTimingNames:a.muteTimeIntervals,hideActions:!0})})]})},_e=e=>({addNestedRoutingBtn:a.css`
  84. margin-top: ${e.spacing(2)};
  85. `});var Be,qe;const Fe=(e,t)=>{const n=[...e],a=n.findIndex((e=>e.id===t.id));return a>=0&&(n[a]=Object.assign({},n[a],t)),n},Ge=e=>{let{isAddMode:t,onCancelAdd:n,onChange:a,receivers:i,routes:s,filters:o,readOnly:c=!1,alertManagerSourceName:u}=e;const[d,m]=(0,r.useState)(!1),[v,x]=(0,r.useState)(void 0),[j,f]=(0,r.useState)(),b=(0,g.Ko)(u),y=Q.Vt.hasPermission(b.update),C=Q.Vt.hasPermission(b.delete),S=!c&&(y||C),I=(0,r.useCallback)((e=>f(e.id)),[]),N=(0,r.useCallback)((()=>f(void 0)),[]),w=[{id:"matchingCriteria",label:"Matching labels",renderCell:e=>e.data.object_matchers.length?(0,q.jsx)(re.g,{matchers:e.data.object_matchers.map(h._J)}):Be||(Be=(0,q.jsx)("span",{children:"Matches all alert instances"})),size:10},{id:"groupBy",label:"Group by",renderCell:e=>e.data.overrideGrouping&&e.data.groupBy.join(", ")||"-",size:5},{id:"receiverChannel",label:"Contact point",renderCell:e=>e.data.receiver||"-",size:5},{id:"muteTimings",label:"Mute timings",renderCell:e=>e.data.muteTimeIntervals.join(", ")||"-",size:5},...S?[{id:"actions",label:"Actions",renderCell:e=>{if(e.renderExpandedContent)return null;return(0,q.jsx)(q.Fragment,{children:(0,q.jsxs)(l.HorizontalGroup,{children:[(0,q.jsx)(l.Button,{"aria-label":"Edit route",icon:"pen",onClick:()=>{I(e),m(!0)},size:"sm",type:"button",variant:"secondary",children:"Edit"}),(0,q.jsx)(l.IconButton,{"aria-label":"Delete route",name:"trash-alt",onClick:()=>{x(e.data.id)},type:"button"})]})})},size:"100px"}]:[]],V=(0,r.useMemo)((()=>((e,t,n)=>{const a=(0,h.Zh)(null!=t?t:"");let r=e;return a.length&&(r=e.filter((e=>{const t=e.object_matchers.map(h._J);return(0,p.intersectionWith)(t,a,p.isEqual).length>0}))),n&&n.length>0&&(r=r.filter((e=>e.receiver.toLowerCase().includes(n.toLowerCase())))),r})(s,null==o?void 0:o.queryString,null==o?void 0:o.contactPoint)),[s,o]),$=(0,r.useMemo)((()=>{return(t?s:V).map(((t,n)=>{var a;return{id:null!==(a=null==e?void 0:e(t))&&void 0!==a?a:n,data:t}}));var e}),[t,s,V]);return(0,r.useEffect)((()=>{t&&$.length&&f($[$.length-1].id),!t&&$.length&&f(void 0)}),[t,$]),s.length>0&&0===V.length?qe||(qe=(0,q.jsx)(U,{children:(0,q.jsx)("p",{children:"No policies found"})})):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(ae.t,{cols:w,isExpandable:!0,items:$,testIdGenerator:()=>"am-routes-row",onCollapse:N,onExpand:I,isExpanded:e=>j===e.id,renderExpandedContent:e=>t||d?(0,q.jsx)(fe,{onCancel:()=>{t&&n(),m(!1)},onSave:e=>{const t=Fe(s,e);m(!1),a(t)},receivers:i,routes:e.data}):(0,q.jsx)(Te,{onChange:e=>{const t=Fe(s,e);a(t)},receivers:i,routes:e.data,readOnly:c,alertManagerSourceName:u})}),(0,q.jsx)(l.ConfirmModal,{isOpen:!!v,title:"Delete notification policy",body:"Deleting this notification policy will permanently remove it. Are you sure you want to delete this policy?",confirmText:"Yes, delete",icon:"exclamation-triangle",onConfirm:()=>{if(v){const e=((e,t)=>e.filter((e=>e.id!==t)))(s,v);a(e),x(void 0)}},onDismiss:()=>x(void 0)})]})};var Ae,Ee,We,Re,Pe,Le;const ze=e=>{var t,n;let{alertManagerSourceName:a,onChange:i,onRootRouteEdit:s,receivers:o,routes:c,readOnly:u=!1}=e;const[m,p]=(0,r.useState)([...c.routes]),[v,h]=(0,r.useState)(!1),x=(0,g.Ko)(a),j=Q.Vt.hasPermission(x.create),[f,b]=(0,H.j)(),{queryString:y,contactPoint:I}=(0,k.$f)(f),[N,w]=(0,r.useState)({queryString:y,contactPoint:I});(0,Z.Z)((()=>{b({queryString:N.queryString,contactPoint:N.contactPoint})}),400,[N]);const V=(0,l.useStyles2)(De),$=()=>{w({queryString:void 0,contactPoint:void 0}),b({queryString:void 0,contactPoint:void 0})},M=()=>{$(),h(!0),p((()=>[...c.routes,Object.assign({},S,{matchers:[C]})]))};return(0,q.jsxs)("div",{className:V.container,children:[Ae||(Ae=(0,q.jsx)("h5",{children:"Specific routing"})),Ee||(Ee=(0,q.jsx)("p",{children:"Send specific alerts to chosen contact points, based on matching criteria"})),c.receiver?m.length>0?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)("div",{children:[!v&&(0,q.jsxs)("div",{className:V.searchContainer,children:[(0,q.jsx)(ne.F,{onFilterChange:e=>w((t=>Object.assign({},t,{queryString:e}))),queryString:null!==(t=N.queryString)&&void 0!==t?t:"",className:V.filterInput}),(0,q.jsxs)("div",{className:V.filterInput,children:[Re||(Re=(0,q.jsx)(l.Label,{children:"Search by contact point"})),(0,q.jsx)(l.Input,{onChange:e=>{let{currentTarget:t}=e;return w((e=>Object.assign({},e,{contactPoint:t.value})))},value:null!==(n=N.contactPoint)&&void 0!==n?n:"",placeholder:"Search by contact point","data-testid":"search-query-input",prefix:Pe||(Pe=(0,q.jsx)(l.Icon,{name:"search"}))})]}),(y||I)&&(0,q.jsx)(l.Button,{variant:"secondary",icon:"times",onClick:$,className:V.clearFilterBtn,children:"Clear filters"})]}),!v&&!u&&(0,q.jsx)(d.q,{actions:[x.create],children:(0,q.jsx)("div",{className:V.addMatcherBtnRow,children:(0,q.jsx)(l.Button,{className:V.addMatcherBtn,icon:"plus",onClick:M,type:"button",children:"New policy"})})})]}),(0,q.jsx)(Ge,{isAddMode:v,readOnly:u,onCancelAdd:()=>{h(!1),p([...c.routes])},onChange:e=>{i(Object.assign({},c,{routes:e})),v&&h(!1)},receivers:o,routes:m,filters:{queryString:y,contactPoint:I},alertManagerSourceName:a})]}):u?Le||(Le=(0,q.jsx)(U,{children:(0,q.jsx)("p",{children:"There are no specific policies configured."})})):(0,q.jsx)(ee,{buttonIcon:"plus",buttonLabel:"New specific policy",onButtonClick:M,text:"You haven't created any specific policies yet.",showButton:j}):u?We||(We=(0,q.jsx)(U,{children:(0,q.jsx)("p",{children:"There is no default contact point configured for the root route."})})):(0,q.jsx)(ee,{buttonIcon:"rocket",buttonLabel:"Set a default contact point",onButtonClick:s,text:"You haven't set a default contact point for the root route yet.",showButton:j})]})},De=e=>({container:a.css`
  86. display: flex;
  87. flex-flow: column wrap;
  88. `,searchContainer:a.css`
  89. display: flex;
  90. flex-flow: row nowrap;
  91. padding-bottom: ${e.spacing(2)};
  92. border-bottom: 1px solid ${e.colors.border.strong};
  93. `,clearFilterBtn:a.css`
  94. align-self: flex-end;
  95. margin-left: ${e.spacing(1)};
  96. `,filterInput:a.css`
  97. width: 340px;
  98. & + & {
  99. margin-left: ${e.spacing(1)};
  100. }
  101. `,addMatcherBtnRow:a.css`
  102. display: flex;
  103. flex-flow: column nowrap;
  104. padding: ${e.spacing(2)} 0;
  105. `,addMatcherBtn:a.css`
  106. align-self: flex-end;
  107. `});var Ke;const Je=(0,l.withErrorBoundary)((()=>{var e;const t=(0,i.useDispatch)(),n=(0,l.useStyles2)(Ye),[a,d]=(0,r.useState)(!1),g=(0,se.k)("notification"),[p,v]=(0,le.k)(g),h=!p||(0,m.RY)(p),x=(0,oe._)((e=>e.amConfigs)),j=(0,r.useCallback)((()=>{p&&t((0,Ve.Yh)(p))}),[p,t]);(0,r.useEffect)((()=>{j()}),[j]);const{result:f,loading:b,error:y}=p&&x[p]||ie.oq,C=null==f?void 0:f.alertmanager_config,[S,w]=(0,r.useMemo)((()=>I(null==C?void 0:C.route)),[null==C?void 0:C.route]),$=V((null!==(e=null==C?void 0:C.receivers)&&void 0!==e?e:[]).map((e=>e.name))),M=()=>{d(!0)},O=()=>{d(!1)};(0,s.x)((e=>e.unifiedAlerting.saveAMConfig));const k=e=>{if(!f)return;const n=N(p,Object.assign({},S,e),w);a&&O(),t((0,Ve.mM)({newConfig:Object.assign({},f,{alertmanager_config:Object.assign({},f.alertmanager_config,{route:n})}),oldConfig:f,alertManagerSourceName:p,successMessage:"Saved",refetch:!0}))};return p?(0,q.jsxs)(c.J,{pageId:"am-routes",children:[(0,q.jsx)(o.P,{current:p,onChange:v,dataSources:g}),y&&!b&&(0,q.jsx)(l.Alert,{severity:"error",title:"Error loading Alertmanager config",children:y.message||"Unknown error."}),b&&(Ke||(Ke=(0,q.jsx)(l.LoadingPlaceholder,{text:"Loading Alertmanager config..."}))),f&&!b&&!y&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(J,{alertManagerSourceName:p,isEditMode:a,onSave:k,onEnterEditMode:M,onExitEditMode:O,receivers:$,routes:S}),(0,q.jsx)("div",{className:n.break}),(0,q.jsx)(ze,{alertManagerSourceName:p,onChange:k,readOnly:h,onRootRouteEdit:M,receivers:$,routes:S}),(0,q.jsx)("div",{className:n.break}),(0,q.jsx)($e,{alertManagerSourceName:p})]})]}):(0,q.jsx)(c.J,{pageId:"am-routes",children:(0,q.jsx)(u.I,{availableAlertManagers:g})})}),{style:"page"}),Ye=e=>({break:a.css`
  108. width: 100%;
  109. height: 0;
  110. margin-bottom: ${e.spacing(2)};
  111. `})},40256:(e,t,n)=>{n.d(t,{J:()=>s});n(68404);var a=n(18745),r=n(33801),i=n(8674),l=n(45916);const s=e=>{let{children:t,pageId:n,isLoading:s}=e;const o=(0,i.h)((0,a.useSelector)((e=>e.navIndex)),n);return(0,l.jsx)(r.Z,{navModel:o,children:(0,l.jsx)(r.Z.Contents,{isLoading:s,children:t})})}},53262:(e,t,n)=>{n.d(t,{q:()=>i});n(68404);var a=n(61959),r=n(45916);const i=e=>{let{actions:t,children:n,fallback:i=!0}=e;return t.some((e=>a.Vt.hasAccess(e,i)))?(0,r.jsx)(r.Fragment,{children:n}):null}},71308:(e,t,n)=>{n.d(t,{I:()=>m});n(68404);var a,r,i,l,s=n(69783),o=n(82498),c=n(50489),u=n(45916);const d=()=>a||(a=(0,u.jsx)(s.Alert,{title:"No Alertmanager found",severity:"warning",children:"We could not find any external Alertmanagers and you may not have access to the built-in Grafana Alertmanager."})),g=()=>r||(r=(0,u.jsx)(s.Alert,{title:"Selected Alertmanager not found. Select a different Alertmanager.",severity:"warning",children:"Selected Alertmanager no longer exists or you may not have permission to access it."})),m=e=>{let{availableAlertManagers:t}=e;const[n,a]=(0,o.k)(t),r=t.length>0;return(0,u.jsx)("div",{children:r?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(c.P,{onChange:a,dataSources:t}),i||(i=(0,u.jsx)(g,{}))]}):l||(l=(0,u.jsx)(d,{}))})}},16905:(e,t,n)=>{n.d(t,{F:()=>u});var a,r,i,l=n(36636),s=(n(68404),n(90747)),o=n(69783),c=n(45916);const u=e=>{let{className:t,onFilterChange:n,defaultQueryString:l,queryString:u}=e;const g=(0,o.useStyles2)(d),m=a||(a=(0,c.jsx)(o.Icon,{name:"search"}));return(0,c.jsxs)("div",{className:t,children:[(0,c.jsx)(o.Label,{children:(0,c.jsxs)(s.Stack,{gap:.5,children:[r||(r=(0,c.jsx)("span",{children:"Search by label"})),(0,c.jsx)(o.Tooltip,{content:i||(i=(0,c.jsxs)("div",{children:["Filter alerts using label querying, ex:",(0,c.jsx)("pre",{children:'{severity="critical", instance=~"cluster-us-.+"}'})]})),children:(0,c.jsx)(o.Icon,{className:g.icon,name:"info-circle",size:"sm"})})]})}),(0,c.jsx)(o.Input,{placeholder:"Search",defaultValue:l,value:u,onChange:e=>{const t=e.target;n(t.value)},"data-testid":"search-query-input",prefix:m,className:g.inputWidth})]})},d=e=>({icon:l.css`
  112. margin-right: ${e.spacing(.5)};
  113. `,inputWidth:l.css`
  114. width: 340px;
  115. flex-grow: 0;
  116. `})},68698:(e,t,n)=>{n.d(t,{g:()=>s});var a=n(36636),r=(n(68404),n(69783)),i=n(82139),l=n(45916);const s=e=>{let{matchers:t}=e;const n=(0,r.useStyles2)(o);return(0,l.jsx)("div",{children:(0,l.jsx)(r.TagList,{className:n.tags,tags:t.map((e=>`${e.name}${(0,i.zy)(e)}${e.value}`))})})},o=()=>({tags:a.css`
  117. justify-content: flex-start;
  118. `})},82498:(e,t,n)=>{n.d(t,{k:()=>o});var a=n(68404),r=n(26011),i=n(17421),l=n(85464),s=n(19462);function o(e){const[t,n]=(0,r.K)(),o=function(e){return(0,a.useCallback)((t=>e.map((e=>e.name)).includes(t)),[e])}(e),c=(0,a.useCallback)((e=>{o(e)&&(e===s.GC?(i.Z.delete(l.de),n({[l.c4]:null})):(i.Z.set(l.de,e),n({[l.c4]:e})))}),[n,o]),u=t[l.c4];if(u&&"string"==typeof u)return o(u)?[u,c]:[void 0,c];const d=i.Z.get(l.de);return d&&"string"==typeof d&&o(d)?(c(d),[d,c]):o(s.GC)?[s.GC,c]:[void 0,c]}},1698:(e,t,n)=>{n.d(t,{k:()=>i});var a=n(68404),r=n(19462);function i(e){return(0,a.useMemo)((()=>(0,r.LE)(e)),[e])}},28410:(e,t,n)=>{n.d(t,{j:()=>l});var a=n(68404),r=n(42326),i=n(90923);function l(){const{search:e}=(0,r.TH)();return[(0,a.useMemo)((()=>new URLSearchParams(e)),[e]),(0,a.useCallback)(((e,t)=>{i.locationService.partial(e,t)}),[])]}}}]);
  119. //# sourceMappingURL=AlertAmRoutes.7b3e3ae6ef0034c36384.js.map