/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. * Licensed under the Elastic License 2.0; you may not use this file except in compliance with the Elastic License 2.0. */ (window.ml_bundle_jsonpfunction=window.ml_bundle_jsonpfunction||[]).push([[30],{680:function(e,t,a){"use strict";a.r(t),a.d(t,"NotificationsPage",(function(){return P}));var i=a(2),s=a.n(i),n=a(15),l=a(109),o=a(39),c=a.n(o),r=a(6),d=a(28),u=a(43),m=a(160),b=a.n(m),f=a(176),j=a.n(f),p=a(40),g=a(7),O=a(9),y=a(101),x=a(4);const h={anomaly_detector:!0,data_frame_analytics:!0,trained_models:!0},v=({entityTypes:e=h,multiSelect:t=!0,selectedOptions:a,onSelectionChange:s,handleDuplicates:n=!1})=>{const{jobs:l,trainedModels:o,dataFrameAnalytics:c}=Object(O.c)(),{displayErrorToast:u}=Object(y.c)(),m=Object(d.euiPaletteColorBlindBehindText)(),[b,f]=Object(i.useState)(!0),[p,v]=Object(i.useState)([]),M=Object(i.useCallback)((async()=>{try{const t=[];if(null!=e&&e.anomaly_detector){const{jobIds:e}=await l.getAllJobAndGroupIds();t.push({label:r.i18n.translate("xpack.ml.mlEntitySelector.adOptionsLabel",{defaultMessage:"Anomaly detection jobs"}),isGroupLabelOption:!0,color:m[0],options:e.map((e=>({label:e,value:e,id:`anomaly_detector:${e}`,key:`anomaly_detector:${e}`,color:m[0],"data-test-subj":"mlAdJobOption"})))})}if(null!=e&&e.data_frame_analytics){const e=await c.getDataFrameAnalytics();e.count>0&&t.push({label:r.i18n.translate("xpack.ml.mlEntitySelector.dfaOptionsLabel",{defaultMessage:"Data frame analytics"}),isGroupLabelOption:!0,options:e.data_frame_analytics.map((({id:e})=>({label:e,value:e,id:`data_frame_analytics:${e}`,key:`data_frame_analytics:${e}`,color:m[2],"data-test-subj":"mlDfaJobOption"})))})}if(null!=e&&e.trained_models){const e=await o.getTrainedModels();e.length>0&&t.push({label:r.i18n.translate("xpack.ml.mlEntitySelector.trainedModelsLabel",{defaultMessage:"Trained models"}),isGroupLabelOption:!0,options:e.map((({model_id:e})=>({label:e,value:e,id:`trained_models:${e}`,key:`trained_models:${e}`,color:m[3],"data-test-subj":"mlTrainedModelOption"})))})}v(t)}catch(e){u(e,r.i18n.translate("xpack.ml.mlEntitySelector.fetchError",{defaultMessage:"Failed to fetch ML entities"}))}f(!1)}),[l,o,c,e,m,u]);j()((function(){M()}));const S=Object(i.useMemo)((()=>(null!=a?a:[]).flatMap((e=>{const t=p.flatMap((e=>e.options)).filter((t=>t.value===e.id));return t.length>0?t:[{value:e.id,label:e.id,key:`unknown:${e.id}`,"data-test-subj":`mlUnknownOption ${e.id}`}]}))),[p,a]),_=Object(i.useCallback)((e=>{if(!s)return;let t=e;if(n){const a=Object(g.countBy)(S,"value"),i=Object(g.countBy)(e,"value");t=t.filter((({value:e})=>!(a[e]>1&&i[e]{const[t]=e.key.split(":");return{id:e.value,type:t}})))}),[s,S,n]);return Object(x.jsx)(d.EuiComboBox,{autoFocus:!0,isLoading:b,singleSelection:!t,selectedOptions:S,options:p,onChange:_,fullWidth:!0,"data-test-subj":"mlEntitySelector_"+(b?"loading":"loaded"),isInvalid:!1})};var M={name:"18ji2p4",styles:"width:300px"};const S=s.a.memo((({query:e,onChange:t})=>{const[a,s]=Object(i.useState)(!1),l=e.hasOrFieldClause("job_id")||e.hasSimpleFieldClause("job_id"),o=e.getOrFieldClause("job_id"),c=e.getSimpleFieldClause("job_id"),r=s.bind(null,!1),u=Object(i.useMemo)((()=>{let e=[];return o&&Array.isArray(o.value)&&(e=o.value.map((e=>({id:e})))),c&&c.value&&e.push({id:c.value}),e}),[o,c]),m=Object(i.useCallback)((a=>{let i=e.removeOrFieldClauses("job_id");i=i.removeSimpleFieldClauses("job_id"),a.length>0&&(i=Object(g.uniqBy)(a,"id").reduce(((e,t)=>e.addOrFieldValue("job_id",t.id,!0,"eq")),i)),t(i)}),[t,e]),b=Object(x.jsx)(d.EuiFilterButton,{iconType:"arrowDown",iconSide:"right",onClick:s.bind(null,(e=>!e)),hasActiveFilters:l,numActiveFilters:l?u.length:void 0,grow:!0},Object(x.jsx)(n.FormattedMessage,{id:"xpack.ml.notifications.entityFilter",defaultMessage:"Entity"}));return Object(x.jsx)(d.EuiPopover,{button:b,isOpen:a,closePopover:r,panelPaddingSize:"none",anchorPosition:"downCenter"},Object(x.jsx)(d.EuiPanel,{paddingSize:"s",css:M},Object(x.jsx)(v,{selectedOptions:u,onSelectionChange:m,handleDuplicates:!0})))}));var _=a(271);const k="error",F="info",E="warning";var T=a(154),w=a(44),C=a(141),L=a(205),A=a(1);const I={[k]:"danger",[E]:"warning",[F]:"default"},D=()=>{const{services:{mlServices:{mlApiServices:e}}}=Object(O.d)(),{displayErrorToast:t}=Object(y.c)(),{lastCheckedAt:a,setLastCheckedAt:o,notificationsCounts:m,latestRequestedAt:f}=Object(_.b)(),g=Object(l.i)(),h=Object(l.h)();j()((function(){null!==f&&g.setTime({from:c()(f).toISOString(),to:"now"})}));const[v,M]=Object(i.useState)(!0),[D,N]=Object(i.useState)([]),[B,z]=Object(i.useState)(0),[q,P]=Object(i.useState)(""),$=Object(w.a)(u.FIELD_FORMAT_IDS.DATE),[R,Q]=Object(p.c)(A.b.NOTIFICATIONS,{pageIndex:0,pageSize:25,sortField:"timestamp",sortDirection:"desc"}),{onTableChange:G,pagination:J,sorting:W}=Object(L.a)(B,R,Q),U=Object(C.a)(),V=R.queryText,H=Object(i.useMemo)((()=>{try{return P(""),d.EuiSearchBar.Query.parse(null!=V?V:"")}catch(e){P(e.message)}}),[V,P]),K=Object(i.useCallback)((async()=>{if(!H)return;const a=d.EuiSearchBar.Query.toESQueryString(H);try{M(!0);const t=await e.notifications.findMessages({sortField:W.sort.field,sortDirection:W.sort.direction,earliest:h.from,latest:h.to,queryString:a});N(t.results),z(t.total)}catch(e){t(e,r.i18n.translate("xpack.ml.notifications.fetchFailedError",{defaultMessage:"Fetch notifications failed"}))}M(!1)}),[W,H,e.notifications,t,h]);Object(i.useEffect)((function(){const e=J.pageIndex*J.pageSize,t=D.slice(e,e+J.pageSize),i=Math.max(...t.map((e=>e.timestamp)),null!=a?a:0);i!==a&&0!==i&&o(i)}),[a,o,D,J.pageIndex,J.pageSize]),b()((function(){K()}),500,[W,H,U]);const X=Object(i.useMemo)((()=>[{id:"timestamp",field:"timestamp",name:Object(x.jsx)(n.FormattedMessage,{id:"xpack.ml.notifications.timeLabel",defaultMessage:"Time"}),sortable:!0,truncateText:!1,"data-test-subj":"mlNotificationTime",width:"250px",render:e=>$(e)},{field:"level",name:Object(x.jsx)(n.FormattedMessage,{id:"xpack.ml.notifications.levelLabel",defaultMessage:"Level"}),sortable:!0,truncateText:!1,"data-test-subj":"mlNotificationLevel",render:e=>Object(x.jsx)(d.EuiBadge,{color:I[e]},e),width:"100px"},{field:"job_type",name:Object(x.jsx)(n.FormattedMessage,{id:"xpack.ml.notifications.typeLabel",defaultMessage:"Type"}),sortable:!0,truncateText:!1,"data-test-subj":"mlNotificationType",render:e=>Object(x.jsx)(d.EuiBadge,{color:"hollow"},e),width:"200px"},{field:"job_id",name:Object(x.jsx)(n.FormattedMessage,{id:"xpack.ml.notifications.entityLabel",defaultMessage:"Entity ID"}),sortable:!0,truncateText:!1,"data-test-subj":"mlNotificationEntity",width:"200px"},{field:"message",name:Object(x.jsx)(n.FormattedMessage,{id:"xpack.ml.notifications.messageLabel",defaultMessage:"Message"}),sortable:!1,truncateText:!1,"data-test-subj":"mlNotificationMessage"}]),[$]),Y=Object(i.useMemo)((()=>[{type:"field_value_selection",field:"level",name:r.i18n.translate("xpack.ml.notifications.filters.level.name",{defaultMessage:"Level"}),multiSelect:"or",options:[{value:k,name:r.i18n.translate("xpack.ml.notifications.filters.level.error",{defaultMessage:"Error"}),field:"level"},{value:E,name:r.i18n.translate("xpack.ml.notifications.filters.level.warning",{defaultMessage:"Warning"}),field:"level"},{value:F,name:r.i18n.translate("xpack.ml.notifications.filters.level.info",{defaultMessage:"Info"}),field:"level"}]},{type:"field_value_selection",field:"job_type",name:r.i18n.translate("xpack.ml.notifications.filters.level.type",{defaultMessage:"Type"}),multiSelect:"or",options:[{value:"anomaly_detector",name:r.i18n.translate("xpack.ml.notifications.filters.type.anomalyDetector",{defaultMessage:"Anomaly Detection"})},{value:"data_frame_analytics",name:r.i18n.translate("xpack.ml.notifications.filters.type.dfa",{defaultMessage:"Data Frame Analytics"})},{value:"inference",name:r.i18n.translate("xpack.ml.notifications.filters.type.inference",{defaultMessage:"Inference"})},{value:"system",name:r.i18n.translate("xpack.ml.notifications.filters.type.system",{defaultMessage:"System"})}]},{type:"custom_component",component:S}]),[]),Z=Object.values(m).reduce(((e,t)=>e+t)),ee=Object(i.useMemo)((()=>{const e=J.pageIndex*J.pageSize,t=e+J.pageSize;return D.slice(e,t)}),[D,J]);return Object(x.jsx)(s.a.Fragment,null,Object(x.jsx)(T.a,{onCloseFlyout:K,forceRefresh:v}),Z&&!v?Object(x.jsx)(s.a.Fragment,null,Object(x.jsx)(d.EuiCallOut,{size:"s",title:Object(x.jsx)(n.FormattedMessage,{id:"xpack.ml.notifications.newNotificationsMessage",defaultMessage:"There {newNotificationsCount, plural, one {is # notification} other {are # notifications}} since {sinceDate}. Refresh the page to view updates.",values:{sinceDate:$(f),newNotificationsCount:Z}}),iconType:"bell"}),Object(x.jsx)(d.EuiSpacer,{size:"m"})):null,Object(x.jsx)(d.EuiSearchBar,{query:H,box:{placeholder:r.i18n.translate("xpack.ml.notifications.searchPlaceholder",{defaultMessage:"Search for notifications. Example: job_type:anomaly_detector -level:(info) Datafeed"}),incremental:!1,schema:{strict:!0,fields:{level:{type:"string",name:"level",searchable:!1,aggregatable:!0},job_type:{type:"string",name:"job_type",searchable:!1,aggregatable:!0},job_id:{type:"string",name:"job_id",searchable:!1,aggregatable:!0},message:{type:"string",name:"message",searchable:!0,aggregatable:!1}}},"data-test-subj":"mlNotificationsSearchBarInput"},filters:Y,onChange:e=>{Q({queryText:e.queryText})},"data-test-subj":"mlNotificationsSearchBar"}),Object(x.jsx)(d.EuiSpacer,{size:"m"}),q?Object(x.jsx)(s.a.Fragment,null,Object(x.jsx)(d.EuiCallOut,{size:"s",title:Object(x.jsx)(n.FormattedMessage,{id:"xpack.ml.notifications.invalidQueryError",defaultMessage:"Query is not valid: "}),color:"danger",iconType:"warning"},Object(x.jsx)("p",null,q)),Object(x.jsx)(d.EuiSpacer,{size:"m"})):null,Object(x.jsx)(d.EuiBasicTable,{columns:X,hasActions:!1,isExpandable:!1,isSelectable:!1,items:ee,itemId:"id",loading:v,rowProps:e=>({"data-test-subj":`mlNotificationsTableRow row-${e.id}`}),pagination:J,onChange:G,sorting:W,"data-test-subj":v?"mlNotificationsTable loading":"mlNotificationsTable loaded",noItemsMessage:Object(x.jsx)(n.FormattedMessage,{id:"xpack.ml.notifications.noItemsFoundMessage",defaultMessage:"No notifications found"})}))};var N=a(111),B=a(36),z=a(194),q=a(121);const P=()=>{const{services:{docLinks:e}}=Object(O.d)(),t=e.links.ml.guide;return Object(l.i)({timeRangeSelector:!0,autoRefreshSelector:!0}),Object(x.jsx)("div",null,Object(x.jsx)(N.a,null,Object(x.jsx)(n.FormattedMessage,{id:"xpack.ml.notifications.notificationsLabel",defaultMessage:"Notifications"})),Object(x.jsx)(B.b,null),Object(x.jsx)(z.a,null),Object(x.jsx)(D,null),Object(x.jsx)(q.a,{docLink:t}))};t.default=P}}]);