/*! 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([[4,21,22],Array(102).concat([function(e,t,a){"use strict";a.d(t,"a",(function(){return check_capabilities_MlCapabilitiesService})),a.d(t,"f",(function(){return x})),a.d(t,"c",(function(){return v})),a.d(t,"b",(function(){return y})),a.d(t,"d",(function(){return O})),a.d(t,"e",(function(){return E}));var i=a(5),n=a.n(i),s=a(6),o=a(10),r=a(11),l=a(7),c=a(29),d=a.n(c),u=a(2),p=a(9),m=a(172),b=a(48),f=a(12),g=a(279);let h=Object(b.f)();const j=3e5;class check_capabilities_MlCapabilitiesService{constructor(e){n()(this,"_isLoading$",new o.BehaviorSubject(!0)),n()(this,"_updateRequested$",new o.BehaviorSubject(Date.now())),n()(this,"_capabilities$",new o.BehaviorSubject(null)),n()(this,"capabilities$",this._capabilities$.pipe(Object(r.distinctUntilChanged)(l.isEqual))),n()(this,"_subscription",void 0),this.mlApiServices=e,this.init()}init(){this._subscription=Object(o.combineLatest)([this._updateRequested$,Object(o.timer)(0,j)]).pipe(Object(r.tap)((()=>{this._isLoading$.next(!0)})),Object(r.switchMap)((()=>Object(o.from)(this.mlApiServices.checkMlCapabilities()))),Object(r.retry)({delay:j})).subscribe((e=>{this._capabilities$.next(e.capabilities),this._isLoading$.next(!1),h=e.capabilities}))}getCapabilities(){return this._capabilities$.getValue()}refreshCapabilities(){this._updateRequested$.next(Date.now())}destroy(){this._subscription&&this._subscription.unsubscribe()}}function x(e){const{services:{mlServices:{mlCapabilities:t}}}=Object(p.d)(),a=Object(u.useRef)(e),i=d()(t.capabilities$,t.getCapabilities());return Object(u.useMemo)((()=>Array.isArray(a.current)?a.current.map((e=>i[e])):i[a.current]),[i])}function v({checkMlCapabilities:e}){return new Promise(((t,a)=>{e().then((({capabilities:e,isPlatinumOrTrialLicense:i,mlFeatureEnabledInSpace:n})=>(h=e,!0===Object.values(h).every((e=>!0===e))&&!0===i?t({mlFeatureEnabledInSpace:n}):a({capabilities:e,isPlatinumOrTrialLicense:i,mlFeatureEnabledInSpace:n})))).catch((e=>a()))}))}function y(e){return new Promise(((t,a)=>{new Promise(((e,t)=>{f.ml.checkMlCapabilities().then((t=>{!0===t.upgradeInProgress&&Object(g.b)(!0),e(t)})).catch((()=>{t()}))})).then((async({capabilities:i,isPlatinumOrTrialLicense:n})=>(h=i,h.canCreateJob||!1===n?t(h):(await e(),a())))).catch((async t=>(await e(),a())))}))}function O(e){const t=Object(m.a)();return!0===h[e]&&!0!==t}function E(e){let t="";return Object(m.a)()?t=s.i18n.translate("xpack.ml.privilege.licenseHasExpiredTooltip",{defaultMessage:"Your license has expired."}):"canCreateJob"===e?t=s.i18n.translate("xpack.ml.privilege.noPermission.createMLJobsTooltip",{defaultMessage:"You do not have permission to create Machine Learning jobs."}):"canStartStopDatafeed"===e?t=s.i18n.translate("xpack.ml.privilege.noPermission.startOrStopDatafeedsTooltip",{defaultMessage:"You do not have permission to start or stop datafeeds."}):"canUpdateJob"===e?t=s.i18n.translate("xpack.ml.privilege.noPermission.editJobsTooltip",{defaultMessage:"You do not have permission to edit jobs."}):"canDeleteJob"===e?t=s.i18n.translate("xpack.ml.privilege.noPermission.deleteJobsTooltip",{defaultMessage:"You do not have permission to delete jobs."}):"canCreateCalendar"===e?t=s.i18n.translate("xpack.ml.privilege.noPermission.createCalendarsTooltip",{defaultMessage:"You do not have permission to create calendars."}):"canDeleteCalendar"===e?t=s.i18n.translate("xpack.ml.privilege.noPermission.deleteCalendarsTooltip",{defaultMessage:"You do not have permission to delete calendars."}):"canForecastJob"===e&&(t=s.i18n.translate("xpack.ml.privilege.noPermission.runForecastsTooltip",{defaultMessage:"You do not have permission to run forecasts."})),s.i18n.translate("xpack.ml.privilege.pleaseContactAdministratorTooltip",{defaultMessage:"{message} Please contact your administrator.",values:{message:t}})}},,,,,,function(e,t,a){"use strict";a.d(t,"b",(function(){return c})),a.d(t,"a",(function(){return d})),a.d(t,"c",(function(){return u})),a(2);var i=a(269),n=a(28),s=a(40),o=a(271),r=a(281),l=a(4);const c=({context:e,children:t})=>{const a=!e.initialized;return null!=e&&e.resolvedComponent?e.resolvedComponent:Object(l.jsx)(n.EuiSkeletonText,{lines:10,isLoading:a},a?null:t)},d=({pageDeps:e})=>Object(l.jsx)(i.b,{history:e.history},Object(l.jsx)(s.a,null,Object(l.jsx)(o.a,null,Object(l.jsx)(r.a,{pageDeps:e}))));function u(e,t){return`/${e}${t?`${t}`:""}`}},function(e,t,a){"use strict";a.d(t,"a",(function(){return l})),a.d(t,"g",(function(){return g})),a.d(t,"i",(function(){return f})),a.d(t,"h",(function(){return h})),a.d(t,"b",(function(){return M})),a.d(t,"d",(function(){return A})),a.d(t,"e",(function(){return I})),a.d(t,"f",(function(){return b})),a.d(t,"c",(function(){return D}));var i=a(2),n=a.n(i),s=a(4);const o=Object(i.createContext)(void 0),r=()=>{const e=Object(i.useContext)(o);if(void 0===e)throw new Error("datePickerContext was used outside of its Provider");return e},l=e=>{const{children:t,...a}=e;return Object(s.jsx)(o.Provider,{value:a},t)};var c=a(29),d=a.n(c),u=a(10),p=a(11),m=a(7);const b=new u.Subject,f=(e={})=>{const{timeRangeSelector:t,autoRefreshSelector:a}=e,{data:{query:{timefilter:{timefilter:n}}}}=r();return Object(i.useEffect)((()=>{!0!==t||n.isTimeRangeSelectorEnabled()?!1===t&&n.isTimeRangeSelectorEnabled()&&n.disableTimeRangeSelector():n.enableTimeRangeSelector(),!0!==a||n.isAutoRefreshSelectorEnabled()?!1===a&&n.isAutoRefreshSelectorEnabled()&&n.disableAutoRefreshSelector():n.enableAutoRefreshSelector()}),[t,a,n]),n},g=()=>{const e=f(),t=Object(i.useMemo)((()=>e.getRefreshIntervalUpdate$().pipe(Object(p.map)(e.getRefreshInterval))),[e]);return d()(t,e.getRefreshInterval())},h=(e=!1)=>{const t=f(),a=Object(i.useMemo)((()=>e?t.getAbsoluteTime.bind(t):t.getTime.bind(t)),[e,t]),n=Object(i.useMemo)((()=>t.getTimeUpdate$().pipe(Object(p.map)(a),Object(p.distinctUntilChanged)(m.isEqual))),[t,a]);return d()(n,a())};var j=a(28),x=a(6),v=a(15),y=a(40),O=a(135);const E=5e3;function w(e){b.next({lastRefresh:Date.now(),...e?{timeRange:e}:{}})}const M=e=>{var t,a,o;const{isAutoRefreshOnly:l,isLoading:c=!1,showRefresh:d,width:p,flexGroup:b=!0}=e,{data:f,notifications:{toasts:M},uiSettings:S,uiSettingsKeys:_,theme:T,i18n:C}=r(),k=Object(j.useIsWithinMaxBreakpoint)("l"),{timefilter:F,history:I}=f.query.timefilter,[D,A]=Object(y.d)("_g"),L=(R=I,function(){var e,t;return null!==(e=null===(t=R.get())||void 0===t?void 0:t.map((({from:e,to:t})=>({start:e,end:t}))))&&void 0!==e?e:[]});var R;const N=g(),P=h();Object(i.useEffect)((function(){void 0!==(null==D?void 0:D.time)&&F.setTime({from:D.time.from,to:D.time.to})}),[null==D||null===(t=D.time)||void 0===t?void 0:t.from,null==D||null===(a=D.time)||void 0===a?void 0:a.to,null==D||null===(o=D.time)||void 0===o?void 0:o.ts]),Object(i.useEffect)((function(){var e,t;void 0!==(null==D?void 0:D.refreshInterval)&&F.setRefreshInterval({pause:!(null==D||null===(e=D.refreshInterval)||void 0===e||!e.pause),value:null==D||null===(t=D.refreshInterval)||void 0===t?void 0:t.value})}),[null==D?void 0:D.refreshInterval]);const z=Object(i.useCallback)(Object(m.debounce)((e=>{A("refreshInterval",e,!0)}),200),[A]),[B,V]=Object(i.useState)(L()),[J,U]=Object(i.useState)(F.isAutoRefreshSelectorEnabled()),[G,q]=Object(i.useState)(F.isTimeRangeSelectorEnabled()),$=N;Object(i.useEffect)((function(){const e=!(null==D||!D.refreshInterval);$.valueH.map((({from:e,to:t,display:a})=>({start:e,end:t,label:a})))),[H]);Object(i.useEffect)((()=>{const e=new u.Subscription,t=F.getEnabledUpdated$();return void 0!==t&&e.add(t.subscribe((e=>{U(F.isAutoRefreshSelectorEnabled()),q(F.isTimeRangeSelectorEnabled())}))),function(){e.unsubscribe()}}),[]);const X=Object(i.useCallback)((({start:e,end:t})=>{V(L()),A("time",{from:e,to:t,..."now"===e||"now"===t?{ts:Date.now()}:{}})}),[A]),Q=Object(s.jsx)(n.a.Fragment,null,Object(s.jsx)(j.EuiFlexItem,null,Object(s.jsx)(j.EuiSuperDatePicker,{isLoading:c,start:P.from,end:P.to,isPaused:$.pause,isAutoRefreshOnly:!G||l,refreshInterval:$.value||E,onTimeChange:X,onRefresh:w,onRefreshChange:function({isPaused:e,refreshInterval:t}){!1===e&&t<=0&&z({pause:e,value:5e3}),z({pause:e,value:t})},recentlyUsedRanges:B,dateFormat:W,commonlyUsedRanges:Y,updateButtonProps:{iconOnly:k,fill:!1},width:p})),!0!==d&&G?null:Object(s.jsx)(j.EuiFlexItem,{grow:!1},Object(s.jsx)(j.EuiButton,{fill:!1,color:"primary",iconType:"refresh",onClick:()=>w(),"data-test-subj":"mlDatePickerRefreshPageButton"+(c?" loading":" loaded"),isLoading:c},Object(s.jsx)(v.FormattedMessage,{id:"xpack.ml.datePicker.pageRefreshButton",defaultMessage:"Refresh"})))),K=b?Object(s.jsx)(j.EuiFlexGroup,{gutterSize:"s",alignItems:"center"},Q):Q;return J||G?K:null};var S=a(39),_=a.n(S),T=a(46),C=a.n(T),k=a(20),F=a(120);function I(e){const t=C.a.parse(e.getTime().from),a=C.a.parse(e.getTime().to),i=void 0!==t?t.valueOf():0;return{to:void 0!==a?a.valueOf():0,from:i}}const D={EXCLUDE:"exclude-frozen",INCLUDE:"include-frozen"},A=e=>{const{frozenDataPreference:t,setFrozenDataPreference:a,timefilter:n,dataView:o,query:l,disabled:c,callback:d,apiPath:u}=e,{http:p,notifications:{toasts:m}}=r(),b=Object(i.useCallback)((async()=>{try{const e=await async function(e,t,a,i,n,s,o="/internal/file_upload/time_field_range"){try{const r=t.getRuntimeMappings(),l=await async function(e){const{http:t,path:a,...i}=e;return await t.fetch({path:a,method:"POST",body:JSON.stringify(i),version:"1"})}({index:t.getIndexPattern(),timeFieldName:t.timeFieldName,query:s?Object(F.c)(n):n,...Object(k.a)(r)?{runtimeMappings:r}:{},http:i,path:o});if(l.start.epoch&&l.end.epoch)return e.setTime({from:_()(l.start.epoch).toISOString(),to:_()(l.end.epoch).toISOString()}),l;if("number"==typeof l.start&&"number"==typeof l.end)return e.setTime({from:_()(l.start).toISOString(),to:_()(l.end).toISOString()}),{success:!0,start:{epoch:l.start,string:_()(l.start).toISOString()},end:{epoch:l.end,string:_()(l.end).toISOString()}};a.addWarning({title:x.i18n.translate("xpack.ml.datePicker.fullTimeRangeSelector.noResults",{defaultMessage:"No results match your search criteria"})})}catch(e){a.addDanger(x.i18n.translate("xpack.ml.datePicker.fullTimeRangeSelector.errorSettingTimeRangeNotification",{defaultMessage:"An error occurred setting the time range."}))}}(n,o,m,p,l,t===D.EXCLUDE,u);"function"==typeof d&&void 0!==e&&d(e)}catch(e){m.addDanger(x.i18n.translate("xpack.ml.datePicker.fullTimeRangeSelector.errorSettingTimeRangeNotification",{defaultMessage:"An error occurred setting the time range."}))}}),[d,o,t,p,l,n,m,u]),[f,g]=Object(i.useState)(!1),h=Object(i.useCallback)((e=>{a(e),y()}),[a]),y=()=>{g(!1)},O=Object(i.useMemo)((()=>[{id:D.EXCLUDE,label:x.i18n.translate("xpack.ml.datePicker.fullTimeRangeSelector.useFullDataExcludingFrozenMenuLabel",{defaultMessage:"Exclude frozen data tier"})},{id:D.INCLUDE,label:x.i18n.translate("xpack.ml.datePicker.fullTimeRangeSelector.useFullDataIncludingFrozenMenuLabel",{defaultMessage:"Include frozen data tier"})}]),[]),E=Object(i.useMemo)((()=>Object(s.jsx)(j.EuiPanel,null,Object(s.jsx)(j.EuiRadioGroup,{options:O,idSelected:t,onChange:h,compressed:!0}))),[O,t,h]),w=Object(i.useMemo)((()=>t===D.EXCLUDE?Object(s.jsx)(v.FormattedMessage,{id:"xpack.ml.datePicker.fullTimeRangeSelector.useFullDataExcludingFrozenButtonTooltip",defaultMessage:"Use full range of data excluding frozen data tier."}):Object(s.jsx)(v.FormattedMessage,{id:"xpack.ml.datePicker.fullTimeRangeSelector.useFullDataIncludingFrozenButtonTooltip",defaultMessage:"Use full range of data including frozen data tier, which might have slower search results."})),[t]);return Object(s.jsx)(j.EuiFlexGroup,{responsive:!1,gutterSize:"xs"},Object(s.jsx)(j.EuiToolTip,{content:w},Object(s.jsx)(j.EuiButton,{isDisabled:c,onClick:()=>b(),"data-test-subj":"mlDatePickerButtonUseFullData"},Object(s.jsx)(v.FormattedMessage,{id:"xpack.ml.datePicker.fullTimeRangeSelector.useFullDataButtonLabel",defaultMessage:"Use full data"}))),Object(s.jsx)(j.EuiFlexItem,{grow:!1},Object(s.jsx)(j.EuiPopover,{id:"mlFullTimeRangeSelectorOption",button:Object(s.jsx)(j.EuiButtonIcon,{display:"base",size:"m",iconType:"boxesVertical","aria-label":x.i18n.translate("xpack.ml.datePicker.fullTimeRangeSelector.moreOptionsButtonAriaLabel",{defaultMessage:"More options"}),onClick:()=>{g(!f)}}),isOpen:f,closePopover:y,panelPaddingSize:"none",anchorPosition:"downRight"},E)))}},,function(e,t,a){"use strict";var i=a(230);a.d(t,"a",(function(){return i.a}))},,,,function(e,t,a){var i;try{i={cloneDeep:a(510),constant:a(298),defaults:a(511),each:a(299),filter:a(303),find:a(512),flatten:a(516),forEach:a(300),forIn:a(517),has:a(313),isUndefined:a(316),last:a(518),map:a(317),mapValues:a(519),max:a(520),merge:a(522),min:a(533),minBy:a(534),now:a(535),pick:a(537),range:a(542),reduce:a(319),sortBy:a(543),uniqueId:a(549),values:a(324),zipObject:a(551)}}catch(e){}i||(i=window._),e.exports=i},,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var i=a(2),n=a.n(i),s=a(6),o=a(9);const r=n.a.memo((({docLink:e,appName:t})=>{const{chrome:a}=Object(o.d)().services;return Object(i.useEffect)((()=>{a.setHelpExtension({appName:null!=t?t:s.i18n.translate("xpack.ml.chrome.help.appName",{defaultMessage:"Machine Learning"}),links:[{href:e,linkType:"documentation"}]})}),[]),null}));r.displayName="HelpMenu"},,,,,,function(e,t,a){"use strict";var i=a(115),n=a(137).Graph;function s(e,t,a,n){var s;do{s=i.uniqueId(n)}while(e.hasNode(s));return a.dummy=t,e.setNode(s,a),s}function o(e){return i.max(i.map(e.nodes(),(function(t){var a=e.node(t).rank;if(!i.isUndefined(a))return a})))}e.exports={addDummyNode:s,simplify:function(e){var t=(new n).setGraph(e.graph());return i.forEach(e.nodes(),(function(a){t.setNode(a,e.node(a))})),i.forEach(e.edges(),(function(a){var i=t.edge(a.v,a.w)||{weight:0,minlen:1},n=e.edge(a);t.setEdge(a.v,a.w,{weight:i.weight+n.weight,minlen:Math.max(i.minlen,n.minlen)})})),t},asNonCompoundGraph:function(e){var t=new n({multigraph:e.isMultigraph()}).setGraph(e.graph());return i.forEach(e.nodes(),(function(a){e.children(a).length||t.setNode(a,e.node(a))})),i.forEach(e.edges(),(function(a){t.setEdge(a,e.edge(a))})),t},successorWeights:function(e){var t=i.map(e.nodes(),(function(t){var a={};return i.forEach(e.outEdges(t),(function(t){a[t.w]=(a[t.w]||0)+e.edge(t).weight})),a}));return i.zipObject(e.nodes(),t)},predecessorWeights:function(e){var t=i.map(e.nodes(),(function(t){var a={};return i.forEach(e.inEdges(t),(function(t){a[t.v]=(a[t.v]||0)+e.edge(t).weight})),a}));return i.zipObject(e.nodes(),t)},intersectRect:function(e,t){var a,i,n=e.x,s=e.y,o=t.x-n,r=t.y-s,l=e.width/2,c=e.height/2;if(!o&&!r)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(r)*l>Math.abs(o)*c?(r<0&&(c=-c),a=c*o/r,i=c):(o<0&&(l=-l),a=l,i=l*r/o),{x:n+a,y:s+i}},buildLayerMatrix:function(e){var t=i.map(i.range(o(e)+1),(function(){return[]}));return i.forEach(e.nodes(),(function(a){var n=e.node(a),s=n.rank;i.isUndefined(s)||(t[s][n.order]=a)})),t},normalizeRanks:function(e){var t=i.min(i.map(e.nodes(),(function(t){return e.node(t).rank})));i.forEach(e.nodes(),(function(a){var n=e.node(a);i.has(n,"rank")&&(n.rank-=t)}))},removeEmptyRanks:function(e){var t=i.min(i.map(e.nodes(),(function(t){return e.node(t).rank}))),a=[];i.forEach(e.nodes(),(function(i){var n=e.node(i).rank-t;a[n]||(a[n]=[]),a[n].push(i)}));var n=0,s=e.graph().nodeRankFactor;i.forEach(a,(function(t,a){i.isUndefined(t)&&a%s!=0?--n:n&&i.forEach(t,(function(t){e.node(t).rank+=n}))}))},addBorderNode:function(e,t,a,i){var n={width:0,height:0};return arguments.length>=4&&(n.rank=a,n.order=i),s(e,"border",n,t)},maxRank:o,partition:function(e,t){var a={lhs:[],rhs:[]};return i.forEach(e,(function(e){t(e)?a.lhs.push(e):a.rhs.push(e)})),a},time:function(e,t){var a=i.now();try{return t()}finally{console.log(e+" time: "+(i.now()-a)+"ms")}},notime:function(e,t){return t()}}},function(e,t,a){"use strict";var i=a(152);a.d(t,"a",(function(){return i.a})),a.d(t,"b",(function(){return i.b})),a.d(t,"c",(function(){return i.c})),a.d(t,"d",(function(){return i.h})),a.d(t,"e",(function(){return i.i}))},,,,,function(e,t,a){(function(e){var i=a(180).format_value,n=t.schema={},s=t.properties={CALSCALE:{type:"TEXT"},METHOD:{type:"TEXT"},PRODID:{type:"TEXT"},VERSION:{type:"TEXT"},ATTACH:{type:"URI"},CATEGORIES:{type:"TEXT",list:!0},CLASS:{type:"TEXT"},COMMENT:{type:"TEXT"},DESCRIPTION:{type:"TEXT"},GEO:{type:"FLOAT",list:!0},LOCATION:{type:"TEXT"},"PERCENT-COMPLETE":{type:"INTEGER"},PRIORITY:{type:"INTEGER"},RESOURCES:{type:"TEXT"},STATUS:{type:"TEXT"},SUMMARY:{type:"TEXT"},COMPLETED:{type:"DATE-TIME"},DTEND:{type:"DATE-TIME"},DUE:{type:"DATE-TIME"},DTSTART:{type:"DATE-TIME"},DURATION:{type:"DURATION"},FREEBUSY:{type:"PERIOD"},TRANSP:{type:"TEXT"},TZID:{type:"TEXT"},TZNAME:{type:"TEXT"},TZOFFSETFROM:{type:"UTC-OFFSET"},TZOFFSETTO:{type:"UTC-OFFSET"},TZURL:{type:"URI"},ATTENDEE:{type:"CAL-ADDRESS"},CONTACT:{type:"TEXT"},ORGANIZER:{type:"CAL-ADDRESS"},"RECURRENCE-ID":{type:"DATE-TIME"},"RELATED-TO":{type:"TEXT"},URL:{type:"URI"},UID:{type:"TEXT"},EXDATE:{type:"DATE-TIME",list:!0},RDATE:{type:"DATE-TIME",list:!0},RRULE:{type:"RECUR"},ACTION:{type:"TEXT"},REPEAT:{type:"INTEGER"},TRIGGER:{type:"DURATION"},CREATED:{type:"DATE-TIME"},DTSTAMP:{type:"DATE-TIME"},"LAST-MODIFIED":{type:"DATE-TIME"},SEQUENCE:{type:"INTEGER"},"REQUEST-STATUS":{type:"TEXT"}},o=t.CalendarObject=function(e,t){this.calendar=e,this.element=t,this.components={},this.properties={}};o.create=function(e,t){var a=(n[e]||{}).factory;return void 0!==a?new a(t):new o(t,e)},o.prototype.clone=function(){var e=o.create(this.element,this.calendar);for(var t in this.properties)e.addProperties(this.properties[t]);for(var a=this.getComponents(),i=0;i=s.length&&(n=s.length-o);128==(192&s[o+n]);)n--;if(r.push(s.toString("utf8",o,o+n)),o+n>=s.length)break;s[o+=n-1]=32}return r}}).call(this,a(231).Buffer)},function(e,t,a){var i;try{i={clone:a(455),constant:a(298),each:a(299),filter:a(303),has:a(313),isArray:a(138),isEmpty:a(469),isFunction:a(241),isUndefined:a(316),keys:a(182),map:a(317),reduce:a(319),size:a(473),transform:a(479),union:a(482),values:a(324)}}catch(e){}i||(i=window._),e.exports=i},function(e,t,a){"use strict";a.d(t,"a",(function(){return M}));var i=a(2),n=a(71),s=a.n(n),o=a(100),r=a.n(o),l=a(29),c=a.n(l),d=a(79),u=a.n(d),p=a(28);let m;!function(e){e.preboot="preboot",e.standard="standard"}(m||(m={}));const b="eui-global",f="eui-utilities",g={darkMode:!1};var h=a(4);const j=u()({key:"css",container:document.querySelector('meta[name="emotion"]')}),x=u()({key:b,container:document.querySelector(`meta[name="${b}"]`)}),v=u()({key:f,container:document.querySelector(`meta[name="${f}"]`)});j.compat=!0,x.compat=!0,v.compat=!0;const y={default:j,global:x,utility:v},O=({theme:{theme$:e},globalStyles:t,colorMode:a,children:n})=>{const s=c()(e,g),o=Object(i.useMemo)((()=>(e=>e.darkMode?p.COLOR_MODES_STANDARD.dark:p.COLOR_MODES_STANDARD.light)(s)),[s]),r=a||o,l=!1!==t&&void 0;return Object(h.jsx)(p.EuiProvider,{cache:y,colorMode:r,globalStyles:l,utilityClasses:l},n)},E=({children:e,i18n:t,...a})=>Object(h.jsx)(O,a,Object(h.jsx)(t.Context,null,e)),w=({children:e,...t})=>Object(h.jsx)(E,r()({globalStyles:!1},t),Object(h.jsx)(p.EuiErrorBoundary,null,e)),M=(e,t)=>a=>(s.a.render(Object(h.jsx)(w,t,e),a),()=>s.a.unmountComponentAtNode(a));a(5),a(6);class mount_point_portal_MountPointPortalErrorBoundary extends i.Component{constructor(...e){super(...e),definePropertyfrom_dll_reference_kbnSharedDeps_npm_default()(this,"state",{error:void 0})}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(){}render(){return this.state.error?Object(h.jsx)("p",null,external_kbnSharedDeps_KbnI18n_.i18n.translate("reactPackages.mountPointPortal.errorMessage",{defaultMessage:"Error rendering portal content"})):this.props.children}}},,function(e,t,a){var i;try{i=a(453)}catch(e){}i||(i=window.graphlib),e.exports=i},function(e,t,a){e.exports=a(56)(284)},,function(e,t,a){"use strict";a.d(t,"a",(function(){return l})),a.d(t,"b",(function(){return c})),a.d(t,"c",(function(){return d})),a.d(t,"e",(function(){return u})),a.d(t,"f",(function(){return p})),a.d(t,"d",(function(){return m}));var i=a(162),n=a(99),s=a(102),o=a(32),r=a(122);let l;!function(e){e.regression="100mb",e.outlier_detection="50mb",e.classification="100mb"}(l||(l={}));const c=0,d="--",u=()=>({advancedEditorMessages:[],advancedEditorRawString:"",disableSwitchToForm:!1,form:{alpha:void 0,computeFeatureInfluence:"true",createIndexPattern:!0,classAssignmentObjective:void 0,dependentVariable:"",description:"",destinationIndex:"",destinationIndexNameExists:!1,destinationIndexNameEmpty:!0,destinationIndexNameValid:!1,destinationIndexPatternTitleExists:!1,earlyStoppingEnabled:void 0,downsampleFactor:void 0,eta:void 0,etaGrowthRatePerTree:void 0,featureBagFraction:void 0,featureInfluenceThreshold:void 0,featureProcessors:void 0,gamma:void 0,includes:[],jobId:"",jobIdExists:!1,jobIdEmpty:!0,jobIdInvalidMaxLength:!1,jobIdValid:!1,jobType:void 0,jobConfigQuery:r.e,jobConfigQueryString:void 0,jobConfigQueryLanguage:void 0,lambda:void 0,lossFunction:void 0,lossFunctionParameter:void 0,loadingFieldOptions:!1,maxNumThreads:1,maxOptimizationRoundsPerHyperparameter:void 0,maxTrees:void 0,_meta:void 0,method:void 0,modelMemoryLimit:void 0,modelMemoryLimitUnitValid:!0,modelMemoryLimitValidationResult:null,nNeighbors:void 0,numTopFeatureImportanceValues:c,numTopFeatureImportanceValuesValid:!0,numTopClasses:-1,outlierFraction:void 0,predictionFieldName:void 0,previousJobType:null,requiredFieldsError:void 0,randomizeSeed:void 0,resultsField:void 0,runtimeMappings:void 0,runtimeMappingsUpdated:!1,previousRuntimeMapping:void 0,softTreeDepthLimit:void 0,softTreeDepthTolerance:void 0,sourceIndex:"",sourceIndexNameEmpty:!0,sourceIndexNameValid:!1,sourceIndexContainsNumericalFields:!0,sourceIndexFieldsCheckFailed:!1,standardizationEnabled:"true",timeFieldName:void 0,trainingPercent:80,useEstimatedMml:!0},jobConfig:{},disabled:!Object(o.c)()||!Object(s.d)("canCreateDataFrameAnalytics")||!Object(s.d)("canStartStopDataFrameAnalytics"),indexPatternsMap:{},isAdvancedEditorEnabled:!1,isAdvancedEditorValidJson:!0,hasSwitchedToEditor:!1,isJobCreated:!1,isJobStarted:!1,isValid:!1,jobIds:[],requestMessages:[],estimatedModelMemoryLimit:""}),p=e=>{const t={description:e.description,_meta:e._meta,source:{index:e.sourceIndex.includes(",")?e.sourceIndex.split(",").map((e=>e.trim())):e.sourceIndex,query:e.jobConfigQuery,...Object(i.c)(e.runtimeMappings)?{runtime_mappings:e.runtimeMappings}:{}},dest:{index:e.destinationIndex},analyzed_fields:{includes:e.includes},analysis:{outlier_detection:{}},model_memory_limit:e.modelMemoryLimit};void 0!==e.maxNumThreads&&(t.max_num_threads=e.maxNumThreads);const a="string"==typeof(null==e?void 0:e.resultsField)&&""===(null==e?void 0:e.resultsField.trim());if(t.dest&&!a&&(t.dest.results_field=e.resultsField),e.jobType===n.b.REGRESSION||e.jobType===n.b.CLASSIFICATION){let a={dependent_variable:e.dependentVariable,num_top_feature_importance_values:e.numTopFeatureImportanceValues,training_percent:e.trainingPercent};a=Object.assign(a,e.alpha&&{alpha:e.alpha},e.eta&&{eta:e.eta},e.etaGrowthRatePerTree&&{eta_growth_rate_per_tree:e.etaGrowthRatePerTree},e.downsampleFactor&&{downsample_factor:e.downsampleFactor},e.featureBagFraction&&{feature_bag_fraction:e.featureBagFraction},e.featureProcessors&&{feature_processors:e.featureProcessors},e.gamma&&{gamma:e.gamma},e.lambda&&{lambda:e.lambda},e.lossFunction&&{loss_function:e.lossFunction},e.lossFunctionParameter&&{loss_function_parameter:e.lossFunctionParameter},e.maxOptimizationRoundsPerHyperparameter&&{max_optimization_rounds_per_hyperparameter:e.maxOptimizationRoundsPerHyperparameter},e.maxTrees&&{max_trees:e.maxTrees},e.randomizeSeed&&{randomize_seed:e.randomizeSeed},void 0!==e.earlyStoppingEnabled&&{early_stopping_enabled:e.earlyStoppingEnabled},e.predictionFieldName&&{prediction_field_name:e.predictionFieldName},e.randomizeSeed&&{randomize_seed:e.randomizeSeed},e.softTreeDepthLimit&&{soft_tree_depth_limit:e.softTreeDepthLimit},e.softTreeDepthTolerance&&{soft_tree_depth_tolerance:e.softTreeDepthTolerance}),t.analysis={[e.jobType]:a}}if(void 0!==(null==t?void 0:t.analysis)&&Object(n.z)(null==t?void 0:t.analysis)&&(void 0!==e.numTopClasses&&(t.analysis.classification.num_top_classes=e.numTopClasses),void 0!==e.classAssignmentObjective&&(t.analysis.classification.class_assignment_objective=e.classAssignmentObjective)),e.jobType===n.b.OUTLIER_DETECTION){const a=Object.assign({},void 0!==e.computeFeatureInfluence&&{compute_feature_influence:e.computeFeatureInfluence},e.method&&{method:e.method},e.nNeighbors&&{n_neighbors:e.nNeighbors},e.outlierFraction&&{outlier_fraction:e.outlierFraction},e.featureInfluenceThreshold&&{feature_influence_threshold:e.featureInfluenceThreshold},void 0!==e.standardizationEnabled&&{standardization_enabled:e.standardizationEnabled});t.analysis.outlier_detection=a}return t};function m(e,t=!0){var a,i,s,o;const l=Object(n.s)(e.analysis),c={jobType:l,description:null!==(a=e.description)&&void 0!==a?a:"",_meta:null!==(i=e._meta)&&void 0!==i?i:{},resultsField:e.dest.results_field,sourceIndex:Array.isArray(e.source.index)?e.source.index.join(","):e.source.index,runtimeMappings:e.source.runtime_mappings,modelMemoryLimit:e.model_memory_limit,maxNumThreads:e.max_num_threads,includes:Array.isArray(null===(s=e.analyzed_fields)||void 0===s?void 0:s.includes)?null===(o=e.analyzed_fields)||void 0===o?void 0:o.includes:[],jobConfigQuery:e.source.query||r.e};var d;!1===t&&(c.destinationIndex=null!==(d=null==e?void 0:e.dest.index)&&void 0!==d?d:"");const u=e.analysis[l];for(const e in u)u.hasOwnProperty(e)&&(c[e.replace(/_([a-z])/g,(function(e){return e[1].toUpperCase()}))]=u[e]);return c}},function(e,t,a){"use strict";a.d(t,"a",(function(){return d}));var i=a(29),n=a.n(i),s=a(10),o=a(11),r=a(2),l=a(109),c=a(156);const d=()=>{const e=Object(l.i)(),t=()=>{const{from:t,to:a}=e.getTime();return{start:t,end:a}},a=Object(r.useMemo)((()=>Object(s.merge)(l.f,e.getTimeUpdate$().pipe(Object(o.map)((()=>({lastRefresh:Date.now(),timeRange:t()})))),c.b.pipe(Object(o.map)((e=>({lastRefresh:e})))))),[]);return n()(a)}},,,,,function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return n})),a.d(t,"d",(function(){return s})),a.d(t,"a",(function(){return o})),a.d(t,"e",(function(){return r})),a.d(t,"f",(function(){return l})),a.d(t,"g",(function(){return c}));const i="ml.singleMetricViewer.partitionFields",n="ml.jobSelectorFlyout.applyTimeRange",s="ml.frozenDataTierPreference",o="ml.anomalyExplorerPanels",r="ml.notificationsLastCheckedAt",l="ml.overviewPanels",c=[i,n,"ml.gettingStarted.isDismissed",s,o,r,l]},function(e,t,a){"use strict";a.d(t,"b",(function(){return o})),a.d(t,"a",(function(){return r}));var i=a(6),n=a(42),s=a(17);function o(e,t,a,o){const l=Object(s.d)();if(e.contains("job_id_empty"))t.jobId.valid=!1;else if(e.contains("job_id_invalid")){t.jobId.valid=!1;const e=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.jobNameAllowedCharactersDescription",{defaultMessage:"Job ID can contain lowercase alphanumeric (a-z and 0-9), hyphens or underscores; must start and end with an alphanumeric character"});t.jobId.message=e}else if(e.contains("job_id_invalid_max_length"))t.jobId.valid=!1,t.jobId.message=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.jobIdInvalidMaxLengthErrorMessage",{defaultMessage:"Job ID must be no more than {maxLength, plural, one {# character} other {# characters}} long.",values:{maxLength:n.b}});else if(e.contains("job_id_already_exists")){t.jobId.valid=!1;const e=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.jobNameAlreadyExists",{defaultMessage:"Job ID already exists. A job ID cannot be the same as an existing job or group."});t.jobId.message=e}if(e.contains("job_group_id_invalid")){t.groupIds.valid=!1;const e=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.jobGroupAllowedCharactersDescription",{defaultMessage:"Job group names can contain lowercase alphanumeric (a-z and 0-9), hyphens or underscores; must start and end with an alphanumeric character"});t.groupIds.message=e}else if(e.contains("job_group_id_invalid_max_length"))t.groupIds.valid=!1,t.groupIds.message=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.jobGroupMaxLengthDescription",{defaultMessage:"Job group name must be no more than {maxLength, plural, one {# character} other {# characters}} long.",values:{maxLength:n.b}});else if(e.contains("job_group_id_already_exists")){t.groupIds.valid=!1;const e=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.groupNameAlreadyExists",{defaultMessage:"Group ID already exists. A group ID cannot be the same as an existing job or group."});t.groupIds.message=e}if(e.contains("model_memory_limit_units_invalid")){t.modelMemoryLimit.valid=!1;const e=`${n.a.slice(0,n.a.length-1).join(", ")} or ${[...n.a].pop()}`,a=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.modelMemoryLimitUnitsInvalidErrorMessage",{defaultMessage:"Model memory limit data unit unrecognized. It must be {str}",values:{str:e}});t.modelMemoryLimit.message=a}if(e.contains("model_memory_limit_invalid")){t.modelMemoryLimit.valid=!1;const e=(l.max_model_memory_limit||"").toUpperCase(),a=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.modelMemoryLimitRangeInvalidErrorMessage",{defaultMessage:"Model memory limit cannot be higher than the maximum value of {maxModelMemoryLimit}",values:{maxModelMemoryLimit:e}});t.modelMemoryLimit.message=a}if(e.contains("detectors_duplicates")){t.duplicateDetectors.valid=!1;const e=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.duplicatedDetectorsErrorMessage",{defaultMessage:"Duplicate detectors were found."});t.duplicateDetectors.message=e}if(e.contains("categorizer_detector_missing_per_partition_field")){t.categorizerMissingPerPartition.valid=!1;const e=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.categorizerMissingPerPartitionFieldMessage",{defaultMessage:'Partition field must be set for detectors that reference "mlcategory" when per-partition categorization is enabled.'});t.categorizerMissingPerPartition.message=e}if(e.contains("categorizer_varying_per_partition_fields")){t.categorizerVaryingPerPartitionField.valid=!1;const e=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.categorizerVaryingPerPartitionFieldNamesMessage",{defaultMessage:'Detectors with keyword "mlcategory" cannot have different partition_field_name when per-partition categorization is enabled.'});t.categorizerVaryingPerPartitionField.message=e}if(e.contains("bucket_span_empty")){t.bucketSpan.valid=!1;const e=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.bucketSpanMustBeSetErrorMessage",{defaultMessage:"Bucket span must be set"});t.bucketSpan.message=e}else e.contains("bucket_span_invalid")&&(t.bucketSpan.valid=!1,t.bucketSpan.message=r(a.analysis_config.bucket_span));if(e.contains("query_empty")){t.query.valid=!1;const e=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.queryCannotBeEmpty",{defaultMessage:"Datafeed query cannot be empty."});t.query.message=e}else if(e.contains("query_invalid")){t.query.valid=!1;const e=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.queryIsInvalidEsQuery",{defaultMessage:"Datafeed query must be a valid elasticsearch query."});t.query.message=e}e.contains("query_delay_invalid")&&(t.queryDelay.valid=!1,t.queryDelay.message=r(o.query_delay)),e.contains("frequency_invalid")&&(t.frequency.valid=!1,t.frequency.message=r(o.frequency)),e.contains("missing_summary_count_field_name")&&(t.summaryCountField.valid=!1,t.summaryCountField.message=i.i18n.translate("xpack.ml.newJob.wizard.validateJob.summaryCountFieldMissing",{defaultMessage:"Required field as the datafeed uses aggregations."}))}function r(e){return i.i18n.translate("xpack.ml.newJob.wizard.validateJob.frequencyInvalidTimeIntervalFormatErrorMessage",{defaultMessage:"{value} is not a valid time interval format e.g. {thirtySeconds}, {tenMinutes}, {oneHour}, {sevenDays}. It also needs to be higher than zero.",values:{value:e,thirtySeconds:"30s",tenMinutes:"10m",oneHour:"1h",sevenDays:"7d"}})}},function(e,t,a){var i=a(460),n=a(463),s=a(184),o=a(138),r=a(466);e.exports=function(e){return"function"==typeof e?e:null==e?s:"object"==typeof e?o(e)?n(e[0],e[1]):i(e):r(e)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return d}));var i=a(2),n=a.n(i),s=a(7),o=a(22),r=a(4);const l=n.a.createContext({value:null,setValue(){throw new Error("MlStorageContext set method is not implemented")},removeValue(){throw new Error("MlStorageContext remove method is not implemented")}});function c({children:e,storage:t,storageKeys:a}){const n=Object(i.useMemo)((()=>a.reduce(((e,a)=>(e[a]=t.get(a),e)),{})),[t,a]),[c,d]=Object(i.useState)(n),u=Object(i.useCallback)(((e,a)=>{t.set(e,a),d((t=>({...t,[e]:a})))}),[t]),p=Object(i.useCallback)((e=>{t.remove(e),d((t=>Object(s.omit)(t,e)))}),[t]);Object(i.useEffect)((function(){const e=e=>{(function(e,t){return t.includes(e)})(e.key,a)&&(Object(o.a)(e.newValue)?d((t=>({...t,[e.key]:"string"==typeof e.newValue?JSON.parse(e.newValue):e.newValue}))):d((t=>Object(s.omit)(t,e.key))))};return window.addEventListener("storage",e),()=>{window.removeEventListener("storage",e)}}),[a]);const m=Object(i.useMemo)((()=>({value:c,setValue:u,removeValue:p})),[c,u,p]);return Object(r.jsx)(l.Provider,{value:m},e)}function d(e,t){const{value:a,setValue:n,removeValue:s}=Object(i.useContext)(l);return[Object(i.useMemo)((()=>{var i;return null!==(i=null==a?void 0:a[e])&&void 0!==i?i:t}),[a,e,t]),Object(i.useCallback)((t=>{Object(o.a)(t)?n(e,t):s(e)}),[n,s,e])]}},function(e,t,a){"use strict";a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return l})),a(2);var i=a(91),n=a(21),s=a(74),o=a(4);const{expandLiteralStrings:r}=s.XJson,l={TEXT:"text",JSON:"json",XJSON:i.XJsonLang.ID},c=({value:e,height:t="500px",width:a="100%",mode:s=l.JSON,readOnly:c=!1,onChange:d=(()=>{}),"data-test-subj":u,schema:p})=>{if(s===l.XJSON)try{e=r(e)}catch(e){console.error(e)}return Object(o.jsx)(n.CodeEditor,{languageId:s,options:{readOnly:c},value:e,width:a,height:t,onChange:d,"data-test-subj":u,editorDidMount:e=>{var t;const a=null===(t=e.getModel())||void 0===t?void 0:t.uri.toString();var n;p&&i.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,enableSchemaRequest:!1,schemaValidation:"error",schemas:[...null!==(n=i.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas)&&void 0!==n?n:[],{uri:a,fileMatch:[a],schema:p}]})}})}},,function(e,t,a){"use strict";a.d(t,"c",(function(){return n})),a.d(t,"i",(function(){return s})),a.d(t,"h",(function(){return o})),a.d(t,"b",(function(){return r})),a.d(t,"f",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"e",(function(){return d})),a.d(t,"d",(function(){return u})),a.d(t,"g",(function(){return p}));var i=a(6);const n={STARTED:"started",STARTING:"starting",STOPPING:"stopping"},s={PYTORCH:"pytorch",TREE_ENSEMBLE:"tree_ensemble",LANG_IDENT:"lang_ident"},o={NER:"ner",QUESTION_ANSWERING:"question_answering",ZERO_SHOT_CLASSIFICATION:"zero_shot_classification",TEXT_CLASSIFICATION:"text_classification",TEXT_EMBEDDING:"text_embedding",FILL_MASK:"fill_mask",TEXT_EXPANSION:"text_expansion"},r=i.i18n.translate("xpack.ml.trainedModels.modelsList.builtInModelLabel",{defaultMessage:"built-in"}),l="elastic",c="prepackaged",d="elastic",u={".elser_model_1":{config:{input:{field_names:["text_field"]}},description:i.i18n.translate("xpack.ml.trainedModels.modelsList.elserDescription",{defaultMessage:"Elastic Learned Sparse EncodeR v1 (Tech Preview)"})}},p={...n,DOWNLOADING:"downloading",DOWNLOADED:"downloaded"}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var i=a(2),n=a.n(i),s=a(28),o=a(15),r=a(9),l=a(357),c=a(102),d=a(4);const u=({mlSavedObjectType:e,onCloseFlyout:t,forceRefresh:a})=>{const{savedObjects:{syncCheck:u}}=Object(r.c)(),p=Object(i.useRef)(!1),[m,b]=Object(i.useState)(!1),[f,g]=Object(i.useState)(!1),h=Object(c.f)("canCreateJob"),j=Object(i.useCallback)((async()=>{try{if(!1===p.current)return;const{result:t}=await u(e);!0===p.current&&b(f||t)}catch(e){console.log("Saved object synchronization check could not be performed.")}}),[f,b]);Object(i.useEffect)((function(){return p.current=!0,void 0!==a&&!0!==a||j(),()=>{p.current=!1}}),[a,p,j]);const x=Object(i.useCallback)((()=>{g(!1),void 0===a&&j(),"function"==typeof t&&t()}),[j,t,g]);return Object(i.useEffect)((function(){!1===m&&!0===p.current&&g(!1)}),[m,g]),!1===m?null:Object(d.jsx)(n.a.Fragment,null,Object(d.jsx)(s.EuiCallOut,{title:Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.jobsList.missingSavedObjectWarning.title",defaultMessage:"ML job and trained model synchronization required"}),color:"warning",iconType:"warning","data-test-subj":"mlJobSyncRequiredWarning"},Object(d.jsx)(n.a.Fragment,null,Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.jobsList.missingSavedObjectWarning.description",defaultMessage:"Some jobs or trained models are missing or have incomplete saved objects. "}),h?Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.jobsList.missingSavedObjectWarning.link",defaultMessage:" {link}",values:{link:Object(d.jsx)(s.EuiLink,{onClick:g.bind(null,!0)},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.jobsList.missingSavedObjectWarning.linkToManagement.link",defaultMessage:"Synchronize your jobs and trained models."}))}}):Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.jobsList.missingSavedObjectWarning.noPermission",defaultMessage:"An Administrator can synchronize the jobs and trained models in Stack Management."}),f&&Object(d.jsx)(l.a,{onClose:x}))),Object(d.jsx)(s.EuiSpacer,{size:"m"}))}},,function(e,t,a){"use strict";a.d(t,"b",(function(){return r})),a.d(t,"c",(function(){return l})),a.d(t,"a",(function(){return AnnotationUpdatesService}));var i=a(5),n=a.n(i),s=a(10),o=a(11);new s.BehaviorSubject(null);const r=new s.BehaviorSubject(Date.now()),l=()=>r.next(Date.now());class AnnotationUpdatesService{constructor(){n()(this,"_annotation$",new s.BehaviorSubject(null))}update$(){return this._annotation$.asObservable()}isAnnotationInitialized$(){return this._annotation$.asObservable().pipe(Object(o.distinctUntilChanged)(((e,t)=>null!==e&&null!==t)))}setValue(e){this._annotation$.next(e)}}},function(e,t,a){"use strict";a.d(t,"e",(function(){return u})),a.d(t,"f",(function(){return p})),a.d(t,"a",(function(){return m})),a.d(t,"d",(function(){return b})),a.d(t,"b",(function(){return x})),a.d(t,"c",(function(){return v}));var i=a(7),n=a(39),s=a.n(n),o=a(34),r=a.n(o),l=a(41),c=a(116);const d="auto";function u(e,t,a){const i=e.url_value,n={...t};return i.includes("$earliest$")&&void 0!==a&&(n.earliest=a.from),i.includes("$latest$")&&void 0!==a&&(n.latest=a.to),m(e,n)}function p(e,t,a,i){const n=e.url_value,o=a[i],r="time_range"in e&&e.time_range?Object(l.a)(e.time_range):null,c={...a};if(n.includes("$earliest$")){const e=s()(o);null!==r?e.subtract(r):e.subtract(t,"s"),c.earliest=e.toISOString()}if(n.includes("$latest$")){const e=s()(o).add(t,"s");null!==r?e.add(r):e.add(t,"s"),c.latest=e.toISOString()}return m(e,c)}function m(e,t){return!0===f(e)?function(e,t){const a=e.url_value,n=a.includes("language:lucene"),s=n?c.c:g,o=Object(i.flow)(encodeURIComponent),l=e=>{const a=Object(i.flow)(n?e=>e:s,o);return e.replace(/\$([^?&$\'"]+)\$(\/)?/g,((e,n,s="")=>{let o=Object(i.get)(t,n);return o=Array.isArray(o)?o[0]:o,void 0===o?"":a(o)+s}))};return Object(i.flow)(decodeURIComponent,(e=>e.replace("$earliest$",t.earliest).replace("$latest$",t.latest)),(e=>{const a=Object(i.flow)(s,o),n=j(t,a),c=e.match(/(.+)(\(.*\blanguage:(?:lucene|kuery)\b.*?\))(.+)/);if(null!==c&&void 0!==c[2]){const[,e,t,a]=c,i=t.indexOf("language:kuery")>-1,s=r.a.decode(t);if(h(s)&&s.hasOwnProperty("query")){const[t,o]=[e,a].map(l),c=n(t,s.query,o,i);return`${t}${r.a.encode({...s,query:c})}${o}`}}return e.replace(/(.+&kuery=)(.*?)[^!](&.+)/,((t,a,i,s)=>{const[o,r]=[a,s].map(l);return`${o}${n(o,i,r,e.indexOf("language:kuery")>-1)}${r}`}))}),l)(a)}(e,t):Object(c.f)(e.url_value,t,!1)}function b(e,t,a){if(!1===/^(?:[a-z]+:)?\/\//i.test(t.url_value))"/"!==e.charAt(0)&&(e=`${a}${f(t)?"/app/":"/"}${e}`),window.open(e,"_blank");else{const t=window.open(e,"_blank","noopener,noreferrer");null!=t&&(t.opener=null)}}function f(e){const t=e.url_value;return t.startsWith("discover#/")||t.startsWith("dashboards#/")||t.startsWith("apm#/")||t.startsWith("metrics/")||t.startsWith("security/")||t.startsWith("siem#/")}function g(e){return String(e).replace(/\"/g,'\\"')}const h=e=>null!==e&&"object"==typeof e,j=(e,t)=>(a,n,s,o)=>{let r=2e3-a.length-s.length;const l=n.split(/\sand\s/i).map((e=>(e=>{let t="";for(let a=0;a-1;t--)if(":"===e[t]){i=t;break}t=e.slice(0,i).trim();let n=e.slice(i,e.length);const s=n.indexOf("$"),o=n.lastIndexOf("$");if(n=n.slice(s,o+1),n===`$${t}$`)break}return t})(String(e).replace(/\\/g,"")))),d=[];e:for(let a=0;a0?" OR ":""}${s}:"${t(u[e])}"`;if(r0&&d.push(e>0?`(${p})`:p);break e}p+=a,r-=p.length}p.length>0&&d.push(u.length>1?`(${p})`:p)}return d.join(" AND ")};function x(e,t){let a=void 0!==e&&e.trim().length>0;return!0===a&&void 0!==t&&(a=!t.map((e=>e.url_name)).includes(e)),a}function v(e){return void 0===e||0===e.length||e===d||null!==Object(l.a)(e)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var i=a(28),n=a(15),s=a(2),o=a.n(s),r=a(4);const l=({jobsCount:e,action:t,message:a})=>Object(r.jsx)(o.a.Fragment,null,Object(r.jsx)(i.EuiSpacer,{size:"s"}),Object(r.jsx)(i.EuiCallOut,{color:"warning"},null!=a?a:Object(r.jsx)(n.FormattedMessage,{id:"xpack.ml.managedJobsWarningCallout",defaultMessage:"{jobsCount, plural, one {This job} other {At least one of these jobs}} is preconfigured by Elastic; {action} {jobsCount, plural, one {it} other {them}} might impact other parts of the product.",values:{jobsCount:e,action:t}})))},function(e,t,a){e.exports=a(56)(8)},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(57),n=a(2),s=i.__importDefault(a(254));t.default=function(e,t,a){void 0===t&&(t=0),void 0===a&&(a=[]);var i=s.default(e,t),o=i[0],r=i[1],l=i[2];return n.useEffect(l,a),[o,r]}},,,function(e,t,a){"use strict";a.d(t,"d",(function(){return g})),a.d(t,"c",(function(){return h})),a.d(t,"b",(function(){return j})),a.d(t,"e",(function(){return x})),a.d(t,"a",(function(){return v}));var i=a(28),n=a(2),s=a.n(n),o=a(7),r=a(6),l=a(15),c=a(107),d=a(99),u=a(135),p=a(9),m=a(364),b=a(4);const f=e=>({allow_lazy_start:{optional:!0,defaultValue:!1},description:{optional:!0,formKey:"description"},_meta:{optional:!0,defaultValue:e._meta},analysis:{...Object(d.z)(e.analysis)?{classification:{dependent_variable:{optional:!1,formKey:"dependentVariable"},training_percent:{optional:!0,formKey:"trainingPercent"},eta:{optional:!0,formKey:"eta"},feature_bag_fraction:{optional:!0,formKey:"featureBagFraction"},max_trees:{optional:!0,formKey:"maxTrees"},gamma:{optional:!0,formKey:"gamma"},lambda:{optional:!0,formKey:"lambda"},num_top_classes:{optional:!0,defaultValue:2,formKey:"numTopClasses"},prediction_field_name:{optional:!0,defaultValue:`${e.analysis.classification.dependent_variable}_prediction`,formKey:"predictionFieldName"},randomize_seed:{optional:!0,ignore:!0,formKey:"randomizeSeed"},num_top_feature_importance_values:{optional:!0,defaultValue:m.a,formKey:"numTopFeatureImportanceValues"},class_assignment_objective:{optional:!0,defaultValue:"maximize_minimum_recall"},early_stopping_enabled:{optional:!0,ignore:!0},alpha:{optional:!0,formKey:"alpha"},downsample_factor:{optional:!0,formKey:"downsampleFactor"},eta_growth_rate_per_tree:{optional:!0,formKey:"etaGrowthRatePerTree"},feature_processors:{optional:!0},max_optimization_rounds_per_hyperparameter:{optional:!0,formKey:"maxOptimizationRoundsPerHyperparameter"},soft_tree_depth_limit:{optional:!0,formKey:"softTreeDepthLimit"},soft_tree_depth_tolerance:{optional:!0,formKey:"softTreeDepthTolerance"}}}:{},...Object(d.D)(e.analysis)?{outlier_detection:{standardization_enabled:{defaultValue:!0,optional:!0,formKey:"standardizationEnabled"},compute_feature_influence:{defaultValue:!0,optional:!0,formKey:"computeFeatureInfluence"},outlier_fraction:{defaultValue:.05,optional:!0,formKey:"outlierFraction"},feature_influence_threshold:{optional:!0,formKey:"featureInfluenceThreshold"},method:{optional:!0,formKey:"method"},n_neighbors:{optional:!0,formKey:"nNeighbors"}}}:{},...Object(d.E)(e.analysis)?{regression:{dependent_variable:{optional:!1,formKey:"dependentVariable"},training_percent:{optional:!0,formKey:"trainingPercent"},eta:{optional:!0,formKey:"eta"},feature_bag_fraction:{optional:!0,formKey:"featureBagFraction"},max_trees:{optional:!0,formKey:"maxTrees"},gamma:{optional:!0,formKey:"gamma"},lambda:{optional:!0,formKey:"lambda"},prediction_field_name:{optional:!0,defaultValue:`${e.analysis.regression.dependent_variable}_prediction`,formKey:"predictionFieldName"},num_top_feature_importance_values:{optional:!0,defaultValue:m.a,formKey:"numTopFeatureImportanceValues"},randomize_seed:{optional:!0,ignore:!0,formKey:"randomizeSeed"},loss_function:{optional:!0,defaultValue:"mse"},loss_function_parameter:{optional:!0},feature_processors:{optional:!0},early_stopping_enabled:{optional:!0,ignore:!0},alpha:{optional:!0,formKey:"alpha"},downsample_factor:{optional:!0,formKey:"downsampleFactor"},eta_growth_rate_per_tree:{optional:!0,formKey:"etaGrowthRatePerTree"},max_optimization_rounds_per_hyperparameter:{optional:!0,formKey:"maxOptimizationRoundsPerHyperparameter"},soft_tree_depth_limit:{optional:!0,formKey:"softTreeDepthLimit"},soft_tree_depth_tolerance:{optional:!0,formKey:"softTreeDepthTolerance"}}}:{}},analyzed_fields:{excludes:{optional:!0,defaultValue:[]},includes:{optional:!0,formKey:"includes",defaultValue:[]}},source:{index:{formKey:"sourceIndex",optional:!1},query:{optional:!0,defaultValue:{match_all:{}}},runtime_mappings:{optional:!0,formKey:"runtimeMappings",defaultValue:void 0},_source:{optional:!0}},dest:{index:{optional:!1,formKey:"destinationIndex"},results_field:{optional:!0,formKey:"resultsField",defaultValue:d.f}},model_memory_limit:{optional:!0,formKey:"modelMemoryLimit"},max_num_threads:{optional:!0,formKey:"maxNumThreads"}});function g(e,t=f(e)){for(const a in e)if(e.hasOwnProperty(a)){const i=e[a],n=t[a];if(!n)return console.info(`Property "${a}" is unknown.`),!0;if(n.hasOwnProperty("optional")){if(void 0===n.formKey&&!0!==n.ignore&&!Object(o.isEqual)(n.defaultValue,i))return console.info(`Property "${a}" is not supported by the form or has a different value to the default.`),!0}else if(g(i,n))return!0}return!1}function h({id:e,...t}){return Object(o.cloneDeep)({...t,dest:{...t.dest,index:""}})}const j=r.i18n.translate("xpack.ml.dataframe.analyticsList.cloneActionNameText",{defaultMessage:"Clone"}),x=()=>{const{services:{notifications:{toasts:e},data:{dataViews:t},http:{basePath:a},application:{capabilities:n},theme:o,i18n:d}}=Object(p.d)(),m=Object(p.h)(),f=!0===n.savedObjectsManagement.edit||!0===n.indexPatterns.save;return async n=>{const p=Array.isArray(n.config.source.index)?n.config.source.index.join(","):n.config.source.index;let g;try{const n=(await t.find(p)).find((({title:e})=>e===p));void 0!==n?g=n.id:e.addDanger({title:Object(u.a)(Object(b.jsx)(s.a.Fragment,null,Object(b.jsx)(l.FormattedMessage,{id:"xpack.ml.dataframe.analyticsList.noSourceDataViewForClone",defaultMessage:"Unable to clone the analytics job. No data view exists for index {sourceIndex}.",values:{sourceIndex:p}}),f?Object(b.jsx)(i.EuiText,{size:"xs",color:"text"},Object(b.jsx)(l.FormattedMessage,{id:"xpack.ml.dataframe.analytics.cloneAction.dataViewPromptLink",defaultMessage:"{linkToDataViewManagement}",values:{linkToDataViewManagement:Object(b.jsx)(i.EuiLink,{href:`${a.get()}/app/management/kibana/dataViews/create`,target:"_blank"},Object(b.jsx)(l.FormattedMessage,{id:"xpack.ml.dataframe.analytics.cloneAction.dataViewPromptLinkText",defaultMessage:"Create a data view for {sourceIndex}",values:{sourceIndex:p}}))}})):null),{theme:o,i18n:d})})}catch(t){const a=Object(c.b)(t);e.addDanger(r.i18n.translate("xpack.ml.dataframe.analyticsList.fetchSourceDataViewForCloneErrorMessage",{defaultMessage:"An error occurred checking if data view {dataView} exists: {error}",values:{dataView:p,error:a}}))}g&&await m(`/data_frame_analytics/new_job?index=${encodeURIComponent(g)}&jobId=${n.config.id}`)}},v=({isDisabled:e})=>e?Object(b.jsx)(i.EuiToolTip,{position:"top",content:r.i18n.translate("xpack.ml.dataframe.analyticsList.cloneActionPermissionTooltip",{defaultMessage:"You do not have permission to clone analytics jobs."})},Object(b.jsx)(s.a.Fragment,null,j)):Object(b.jsx)(s.a.Fragment,null,j)},function(e,t,a){e.exports=a(56)(1220)},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a(2);var i=a(28),n=a(4);const s=()=>Object(n.jsx)(i.EuiText,{textAlign:"center"},Object(n.jsx)(i.EuiSpacer,{size:"l"}),Object(n.jsx)(i.EuiLoadingSpinner,{size:"l"}),Object(n.jsx)(i.EuiSpacer,{size:"l"}))},function(e,t,a){"use strict";a.d(t,"a",(function(){return AnomalyDetectionEmbeddable}));var i=a(5),n=a.n(i),s=a(72),o=a(10);class AnomalyDetectionEmbeddable extends s.Embeddable{constructor(e,t,a,i){super(e,{defaultTitle:e.title,defaultDescription:e.description},i),n()(this,"deferEmbeddableLoad",!0),this.anomalyDetectorService=t,this.dataViewsService=a,this.initializeOutput(e).finally((()=>{this.setInitializationFinished()}))}async initializeOutput(e){const{jobIds:t}=e;try{const e=await Object(o.firstValueFrom)(this.anomalyDetectorService.getJobs$(t)),a=new Set(e.map((e=>e.datafeed_config.indices)).flat()),i={};for(const e of a){const t=(await this.dataViewsService.find(`"${e}"`)).find((t=>t.getIndexPattern().toLowerCase().includes(e.toLowerCase())));void 0!==t&&(i[t.id]=t)}this.updateOutput({...this.getOutput(),indexPatterns:Object.values(i)})}catch(e){console.error(`Unable to load data views for ${t}`,e)}}}},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return d}));var i=a(2),n=a.n(i),s=a(28),o=a(15),r=a(32),l=a(4);const c=({jobCount:e})=>!1===Object(r.b)()||0===e?null:Object(l.jsx)(n.a.Fragment,null,Object(l.jsx)(s.EuiCallOut,{title:Object(l.jsx)(o.FormattedMessage,{id:"xpack.ml.jobsAwaitingNodeWarning.title",defaultMessage:"Awaiting machine learning node"}),color:"primary",iconType:"iInCircle"},Object(l.jsx)("div",null,Object(l.jsx)(o.FormattedMessage,{id:"xpack.ml.jobsAwaitingNodeWarning.noMLNodesAvailableDescription",defaultMessage:"There {jobCount, plural, one {is} other {are}} {jobCount, plural, one {# job} other {# jobs}} waiting for machine learning nodes to start.",values:{jobCount:e}}))),Object(l.jsx)(s.EuiSpacer,{size:"m"})),d=()=>!1===Object(r.b)()?null:Object(l.jsx)(n.a.Fragment,null,Object(l.jsx)(s.EuiCallOut,{title:Object(l.jsx)(o.FormattedMessage,{id:"xpack.ml.jobsAwaitingNodeWarning.title",defaultMessage:"Awaiting machine learning node"}),color:"primary",iconType:"iInCircle"},Object(l.jsx)("div",null,Object(l.jsx)(o.FormattedMessage,{id:"xpack.ml.newJobAwaitingNodeWarning.noMLNodesAvailableDescription",defaultMessage:"There are currently no nodes that can run the job, therefore it will remain in OPENING state until an appropriate node becomes available."}))),Object(l.jsx)(s.EuiSpacer,{size:"m"}));a(50)},function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return o})),a.d(t,"c",(function(){return n}));let i=null;function n(e){return i=e,i}function s(){return null!==i&&i.hasLicenseExpired()}function o(){return null!==i&&i.isFullLicense()}},,,,function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(57).__importDefault(a(196));t.default=function(e){i.default((function(){e()}))}},,,,function(e,t,a){(function(e){var i=a(202).RRule;function n(e,t){t=t||2;var a=e<0;return a&&(e*=-1),e=e.toString(),(a?"-":"")+"000000000000000000".substr(0,t-e.length)+e}var s={BINARY:{format:function(e){return e.toString("base64")},parse:function(t){return new e(t,"base64")}},BOOLEAN:{format:function(e){return e?"TRUE":"FALSE"},parse:function(e){return"TRUE"==e.toUpperCase()}},"CAL-ADDRESS":{format:function(e){var t=e.toString();return 0!=t.lastIndexOf("mailto:")&&(t="mailto:"+t),t}},DATE:{format:function(e){return e instanceof Date||(e=new Date(e)),e.getFullYear()+n(e.getMonth()+1)+n(e.getDate())},parse:function(e){var t=new Date(parseInt(e.substr(0,4),10),parseInt(e.substr(4,2),10)-1,parseInt(e.substr(6,2),10),0,0,0);return t.date_only=!0,t}},"DATE-TIME":{format:function(e,t){return e instanceof Date||(e=new Date(e)),e.date_only||"DATE"===t.VALUE?o("DATE",e):e.getUTCFullYear()+n(e.getUTCMonth()+1)+n(e.getUTCDate())+"T"+o("TIME",e)},parse:function(e,t,a){if("DATE"===t.VALUE||e.length<=8)return s.DATE.parse(e);var i=t.TZID,n=[parseInt(e.substr(0,4),10),parseInt(e.substr(4,2),10),parseInt(e.substr(6,2),10),parseInt(e.substr(9,2),10),parseInt(e.substr(11,2),10),parseInt(e.substr(13,2),10)],o=e.length>15&&"Z"===e[15];if(void 0!==i){var r=a.timezone(i);if(!r)throw new Error("Unable to load TZ data for "+i);return r.fromLocalTime(n)}return n[1]-=1,o?new Date(Date.UTC.apply(null,n)):new Date(n[0],n[1],n[2],n[3],n[4],n[5])}},DURATION:{format:function(e){var t=e<0;t&&(e*=-1);var a=Math.floor(e/604800);e-=60*a*60*24*7;var i=Math.floor(e/86400);e-=60*i*60*24;var n=Math.floor(e/3600);e-=60*n*60;var s=Math.floor(e/60),o=e-=60*s,r=["P"];return t&&r.unshift("-"),a&&r.push(a+"W"),i&&r.push(i+"D"),(n||s||o)&&r.push("T"),n&&r.push(n+"H"),s&&r.push(s+"M"),o&&r.push(o+"S"),r.join("")},parse:function(e){for(var t=/(-)?P(\d+W)?(\d+D)?(?:T(\d+H)?(\d+M)?(\d+S)?)?/.exec(e).slice(1),a=[-1,604800,86400,3600,60,1],i=0,n=1;n6&&"Z"===e[6]?new Date(Date.UTC(0,0,0,parseInt(e.substr(0,2),10),parseInt(e.substr(2,2),10),parseInt(e.substr(4,2),10))):new Date(0,0,0,parseInt(e.substr(0,2),10),parseInt(e.substr(2,2),10),parseInt(e.substr(4,2),10))}},URI:{format:function(e){return e.toString()}},"UTC-OFFSET":{format:function(e){var t=e<0;return t&&(e*=-1),(t?"-":"+")+n(e,4)}}},o=t.format_value=function(e,t,a){if(void 0===t)return"";var i=s[e||"TEXT"];if(void 0===i)throw Error("Invalid iCalendar datatype: "+e);return Array.isArray(t)&&"PERIOD"!==e||"PERIOD"===e&&t[0]&&Array.isArray(t[0])?t.map((function(e){return i.format(e,a||{})})).join(","):i.format(t,a||{})},r=t.parse_value=function(e,t,a,i,n){if(n)return t.split(",").map((function(t){return r(e,t,a,i)}));var o=s[e||"TEXT"];if(void 0===o)throw Error("Invalid iCalendar datatype: "+e);var l=(a=a||{}).VALUE&&s[a.VALUE];return l&&(o=l),o.parse?o.parse(t,a,i):t}}).call(this,a(231).Buffer)},function(e,t,a){e.exports=a(56)(2948)},function(e,t,a){e.exports=a(56)(1215)},function(e,t,a){e.exports=a(56)(360)},function(e,t,a){e.exports=a(56)(1650)},,,,,function(e,t,a){"use strict";a.d(t,"d",(function(){return i.a})),a.d(t,"b",(function(){return c})),a.d(t,"c",(function(){return d})),a.d(t,"a",(function(){return u})),a.d(t,"e",(function(){return p})),a.d(t,"f",(function(){return b}));var i=a(175),n=a(6),s=a(107),o=a(12),r=a(119),l=a(125);const c=async(e,t,a)=>{try{Object(l.e)(t.state)&&await o.ml.dataFrameAnalytics.stopDataFrameAnalytics(e.id,!0),await o.ml.dataFrameAnalytics.deleteDataFrameAnalytics(e.id),a.displaySuccessToast(n.i18n.translate("xpack.ml.dataframe.analyticsList.deleteAnalyticsSuccessMessage",{defaultMessage:"Request to delete data frame analytics job {analyticsId} acknowledged.",values:{analyticsId:e.id}}))}catch(t){a.displayErrorToast(t,n.i18n.translate("xpack.ml.dataframe.analyticsList.deleteAnalyticsErrorMessage",{defaultMessage:"An error occurred deleting the data frame analytics job {analyticsId}",values:{analyticsId:e.id}}))}r.l.next(r.a.REFRESH)},d=async(e,t,a,i,c)=>{const d=Array.isArray(e.dest.index)?e.dest.index[0]:e.dest.index;try{var u,p,m,b,f,g;Object(l.e)(t.state)&&await o.ml.dataFrameAnalytics.stopDataFrameAnalytics(e.id,!0);const r=await o.ml.dataFrameAnalytics.deleteDataFrameAnalyticsAndDestIndex(e.id,a,i);if(null!==(u=r.analyticsJobDeleted)&&void 0!==u&&u.success&&c.displaySuccessToast(n.i18n.translate("xpack.ml.dataframe.analyticsList.deleteAnalyticsSuccessMessage",{defaultMessage:"Request to delete data frame analytics job {analyticsId} acknowledged.",values:{analyticsId:e.id}})),null!==(p=r.analyticsJobDeleted)&&void 0!==p&&p.error&&c.displayErrorToast(r.analyticsJobDeleted.error,n.i18n.translate("xpack.ml.dataframe.analyticsList.deleteAnalyticsErrorMessage",{defaultMessage:"An error occurred deleting the data frame analytics job {analyticsId}",values:{analyticsId:e.id}})),null!==(m=r.destIndexDeleted)&&void 0!==m&&m.success&&c.displaySuccessToast(n.i18n.translate("xpack.ml.dataframe.analyticsList.deleteAnalyticsWithIndexSuccessMessage",{defaultMessage:"Request to delete destination index {destinationIndex} acknowledged.",values:{destinationIndex:d}})),null!==(b=r.destIndexDeleted)&&void 0!==b&&b.error&&c.displayErrorToast(r.destIndexDeleted.error,n.i18n.translate("xpack.ml.dataframe.analyticsList.deleteAnalyticsWithIndexErrorMessage",{defaultMessage:"An error occurred deleting destination index {destinationIndex}",values:{destinationIndex:d}})),null!==(f=r.destIndexPatternDeleted)&&void 0!==f&&f.success&&c.displaySuccessToast(n.i18n.translate("xpack.ml.dataframe.analyticsList.deleteAnalyticsWithDataViewSuccessMessage",{defaultMessage:"Request to delete data view {destinationIndex} acknowledged.",values:{destinationIndex:d}})),null!==(g=r.destIndexPatternDeleted)&&void 0!==g&&g.error){const e=Object(s.b)(r.destIndexPatternDeleted.error);c.displayDangerToast(n.i18n.translate("xpack.ml.dataframe.analyticsList.deleteAnalyticsWithDataViewErrorMessage",{defaultMessage:"An error occurred deleting data view {destinationIndex}: {error}",values:{destinationIndex:d,error:e}}))}}catch(t){c.displayErrorToast(t,n.i18n.translate("xpack.ml.dataframe.analyticsList.deleteAnalyticsErrorMessage",{defaultMessage:"An error occurred deleting the data frame analytics job {analyticsId}",values:{analyticsId:e.id}}))}r.l.next(r.a.REFRESH)},u=async(e,t)=>{try{const t=await o.ml.hasPrivileges({index:[{names:[e],privileges:["delete_index"]}]});return!!t&&(!0===t.securityDisabled||!0===t.has_all_requested)}catch(a){const i=Object(s.b)(a);t.displayDangerToast(n.i18n.translate("xpack.ml.dataframe.analyticsList.deleteAnalyticsPrivilegeErrorMessage",{defaultMessage:"User does not have permission to delete index {indexName}: {error}",values:{indexName:e,error:i}}))}},p=async(e,t)=>{try{await o.ml.dataFrameAnalytics.startDataFrameAnalytics(e.config.id),t.displaySuccessToast(n.i18n.translate("xpack.ml.dataframe.analyticsList.startAnalyticsSuccessMessage",{defaultMessage:"Request to start data frame analytics {analyticsId} acknowledged.",values:{analyticsId:e.config.id}}))}catch(e){t.displayErrorToast(e,n.i18n.translate("xpack.ml.dataframe.analyticsList.startAnalyticsErrorTitle",{defaultMessage:"Error starting job"}))}r.l.next(r.a.REFRESH)};var m=a(13);const b=async e=>{const t=Object(m.h)();try{await o.ml.dataFrameAnalytics.stopDataFrameAnalytics(e.config.id,Object(l.e)(e.stats.state)),t.addSuccess(n.i18n.translate("xpack.ml.dataframe.analyticsList.stopAnalyticsSuccessMessage",{defaultMessage:"Request to stop data frame analytics {analyticsId} acknowledged.",values:{analyticsId:e.config.id}}))}catch(a){t.addDanger(n.i18n.translate("xpack.ml.dataframe.analyticsList.stopAnalyticsErrorMessage",{defaultMessage:"An error occurred stopping the data frame analytics {analyticsId}: {error}",values:{analyticsId:e.config.id,error:JSON.stringify(a)}}))}r.l.next(r.a.REFRESH)}},function(e,t,a){"use strict";a.r(t),a.d(t,"getMlGlobalServices",(function(){return k})),a.d(t,"renderApp",(function(){return I}));var i=a(2),n=a.n(i),s=(a(371),a(71)),o=a.n(s),r=a(7),l=a(109),c=a(3),d=a(75),u=a(21),p=a(149),m=a(655),b=a.n(m),f=a(29),g=a.n(f),h=a(38),j=a(102),x=a(146),v=a(13),y=a(172),O=a(90),E=a(0);function w(e){if(void 0===e){const e=(e,t)=>{};return{click:e,count:e}}return{click:(t,a)=>e.reportUiCounter(E.f,O.METRIC_TYPE.CLICK,t,a),count:(t,a)=>e.reportUiCounter(E.f,O.METRIC_TYPE.COUNT,t,a)}}var M=a(108),S=a(12),_=a(25),T=a(4);const C=new c.Storage(window.localStorage);function k(e,t){const a=new _.a(e),i=Object(S.mlApiServicesProvider)(a);return{httpService:a,mlApiServices:i,mlUsageCollection:w(t),mlCapabilities:new j.a(i),mlLicense:new h.a}}const F=({coreStart:e,deps:t,appMountParams:a})=>{var s,o;const c={history:a.history,setHeaderActionMenu:a.setHeaderActionMenu,setBreadcrumbs:e.chrome.setBreadcrumbs},m=Object(i.useMemo)((()=>({kibanaVersion:t.kibanaVersion,share:t.share,data:t.data,security:t.security,licenseManagement:t.licenseManagement,storage:C,embeddable:t.embeddable,maps:t.maps,triggersActionsUi:t.triggersActionsUi,dataVisualizer:t.dataVisualizer,usageCollection:t.usageCollection,fieldFormats:t.fieldFormats,dashboard:t.dashboard,charts:t.charts,cases:t.cases,unifiedSearch:t.unifiedSearch,licensing:t.licensing,lens:t.lens,savedObjectsManagement:t.savedObjectsManagement,savedSearch:t.savedSearch,contentManagement:t.contentManagement,presentationUtil:t.presentationUtil,...e,mlServices:k(e.http,t.usageCollection)})),[t,e]);b()((function(){Object(y.c)(m.mlServices.mlLicense),m.mlServices.mlLicense.setup(t.licensing.license$)}),(function(){m.mlServices.mlLicense.unsubscribe()}));const f=g()(m.mlServices.mlLicense.isLicenseReady$,!1),h=g()(m.mlServices.mlCapabilities.capabilities$,m.mlServices.mlCapabilities.getCapabilities());if(!f||!h)return null;const j={...Object(r.pick)(m,["data","http","notifications","theme","uiSettings","i18n"]),uiSettingsKeys:d.UI_SETTINGS},v=e.i18n.Context,O=null!==(s=null===(o=t.usageCollection)||void 0===o?void 0:o.components.ApplicationUsageTrackingProvider)&&void 0!==s?s:n.a.Fragment;return Object(T.jsx)(O,null,Object(T.jsx)(v,null,Object(T.jsx)(u.KibanaThemeProvider,{theme$:a.theme$},Object(T.jsx)(u.KibanaContextProvider,{services:m},Object(T.jsx)(p.a,{storage:C,storageKeys:x.g},Object(T.jsx)(l.a,j,Object(T.jsx)(M.a,{pageDeps:c})))))))},I=(e,t,a)=>(Object(v.j)({timefilter:t.data.query.timefilter,fieldFormats:t.fieldFormats,autocomplete:t.unifiedSearch.autocomplete,config:e.uiSettings,chrome:e.chrome,docLinks:e.docLinks,toastNotifications:e.notifications.toasts,overlays:e.overlays,theme:e.theme,recentlyAccessed:e.chrome.recentlyAccessed,basePath:e.http.basePath,savedSearch:t.savedSearch,application:e.application,http:e.http,security:t.security,dashboard:t.dashboard,maps:t.maps,dataVisualizer:t.dataVisualizer,dataViews:t.data.dataViews,share:t.share,lens:t.lens}),a.onAppLeave((e=>e.default())),o.a.render(Object(T.jsx)(F,{coreStart:e,deps:t,appMountParams:a}),a.element),()=>{Object(v.a)(),o.a.unmountComponentAtNode(a.element),t.data.search.session.clear()})},function(e,t,a){"use strict";a.d(t,"b",(function(){return h})),a.d(t,"a",(function(){return j}));var i=a(2),n=a.n(i),s=a(28),o=a(6),r=a(15),l=a(40),c=(a(605),a(149)),d=a(159),u=a(219),p=a(4);function m({limit:e,maps:t,onLinkClick:a,selectedIds:i,showAllBarBadges:r}){const l=[],c=[];for(let e=0;ec.includes(e))))continue;l.push(Object(p.jsx)(s.EuiFlexItem,{grow:!1,key:a},Object(p.jsx)(u.a,{id:a})))}}if(r||l.length<=e)return l.length>e&&l.push(Object(p.jsx)(s.EuiLink,{key:"more-badges-bar-link",onClick:a},Object(p.jsx)(s.EuiText,{grow:!1,size:"xs"},o.i18n.translate("xpack.ml.jobSelector.hideBarBadges",{defaultMessage:"Hide"})))),Object(p.jsx)(n.a.Fragment,null,l);{const t=l.length-e;return l.splice(e),l.push(Object(p.jsx)(s.EuiLink,{key:"more-badges-bar-link",onClick:a},Object(p.jsx)(s.EuiText,{grow:!1,size:"xs"},o.i18n.translate("xpack.ml.jobSelector.showBarBadges",{defaultMessage:"And {overFlow} more",values:{overFlow:t}})))),Object(p.jsx)(n.a.Fragment,null,l)}}m.propTypes={limit:d.PropTypes.number,maps:d.PropTypes.shape({jobsMap:d.PropTypes.object,groupsMap:d.PropTypes.object}),onLinkClick:d.PropTypes.func,selectedIds:d.PropTypes.array,showAllBarBadges:d.PropTypes.bool};var b=a(353),f=a(146);function g(e,t,a){if(a)return e;const i=[],n=[];return t.forEach((e=>{i.push(e.groupId),n.push(...e.jobIds)})),e.forEach((e=>{!1===n.includes(e)&&i.push(e)})),i}function h(e){const t={};return e.length&&e.forEach((e=>{t[e.groupId]=e.jobIds})),t}function j({dateFormatTz:e,singleSelection:t,timeseriesOnly:a}){var d,u,j,x;const[v,y]=Object(l.d)("_g"),[O,E]=Object(c.b)(f.b,!0),w=null!==(d=null==v||null===(u=v.ml)||void 0===u?void 0:u.jobIds)&&void 0!==d?d:[],M=null!==(j=null==v||null===(x=v.ml)||void 0===x?void 0:x.groups)&&void 0!==j?j:[],[S,_]=Object(i.useState)({groupsMap:h(M),jobsMap:{}}),[T,C]=Object(i.useState)(g(w,M,t)),[k,F]=Object(i.useState)(!1),[I,D]=Object(i.useState)(!1);function A(){D(!1)}Object(i.useEffect)((()=>{C(g(w,M,t))}),[JSON.stringify([w,M])]);const L=Object(i.useCallback)((({newSelection:e,jobIds:t,groups:a,time:i})=>{C(e),y({ml:{jobIds:t,groups:a},...void 0!==i?{time:i}:{}}),A()}),[y,C]);return Object(p.jsx)("div",null,Object(p.jsx)(n.a.Fragment,null,Object(p.jsx)(s.EuiFlexGroup,{responsive:!1,gutterSize:"xs",alignItems:"center"},Object(p.jsx)(s.EuiFlexItem,{grow:!1},T.length>0?Object(p.jsx)(s.EuiFlexGroup,{wrap:!0,responsive:!1,gutterSize:"xs",alignItems:"center","data-test-subj":"mlJobSelectionBadges"},Object(p.jsx)(m,{limit:b.a,maps:S,onLinkClick:()=>F(!k),selectedIds:T,showAllBarBadges:k})):Object(p.jsx)("span",null,Object(p.jsx)(r.FormattedMessage,{id:"xpack.ml.jobSelector.noJobsSelectedLabel",defaultMessage:"No jobs selected"}))),Object(p.jsx)(s.EuiFlexItem,{grow:!1},Object(p.jsx)(s.EuiButtonEmpty,{size:"xs",iconType:"pencil",onClick:function(){D(!0)},"data-test-subj":"mlButtonEditJobSelection"},o.i18n.translate("xpack.ml.jobSelector.jobSelectionButton",{defaultMessage:"Edit job selection"})))),Object(p.jsx)(s.EuiHorizontalRule,{margin:"s"})),function(){if(I)return Object(p.jsx)(s.EuiFlyout,{onClose:A,"data-test-subj":"mlFlyoutJobSelector","aria-labelledby":"jobSelectorFlyout"},Object(p.jsx)(b.b,{dateFormatTz:e,timeseriesOnly:a,singleSelection:t,selectedIds:T,onSelectionConfirmed:L,onJobsFetched:_,onFlyoutClose:A,maps:S,applyTimeRangeConfig:O,onTimeRangeConfigChange:E}))}())}},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var i=a(2),n=a.n(i),s=a(28),o=a(15),r=a(279),l=a(4);const c=()=>!0===Object(r.a)()?Object(l.jsx)(n.a.Fragment,null,Object(l.jsx)(s.EuiCallOut,{title:Object(l.jsx)(o.FormattedMessage,{id:"xpack.ml.upgrade.upgradeWarning.upgradeInProgressWarningTitle",defaultMessage:"Index migration in progress"}),color:"warning",iconType:"warning"},Object(l.jsx)("p",null,Object(l.jsx)(o.FormattedMessage,{id:"xpack.ml.upgrade.upgradeWarning.upgradeInProgressWarningDescription",defaultMessage:"Indices related to Machine Learning are currently being upgraded."}),Object(l.jsx)("br",null),Object(l.jsx)(o.FormattedMessage,{id:"xpack.ml.upgrade.upgradeWarning.upgradeInProgressWarningDescriptionExtra",defaultMessage:"Some actions will not be available during this time."}))),Object(l.jsx)(s.EuiSpacer,{size:"m"})):null},function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a(2);var i=a(28),n=a(6),s=a(4);const o=({compressed:e=!1})=>Object(s.jsx)(i.EuiBetaBadge,{label:n.i18n.translate("xpack.ml.navMenu.trainedModelsTabBetaLabel",{defaultMessage:"Technical preview"}),size:e?"s":"m",color:"hollow",tooltipContent:n.i18n.translate("xpack.ml.navMenu.trainedModelsTabBetaTooltipContent",{defaultMessage:"This functionality is in technical preview and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but features in technical preview are not subject to the support SLA of official GA features."}),tooltipPosition:"right"})},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(2);t.default=function(e){i.useEffect(e,[])}},,function(e,t,a){"use strict";var i=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function n(e,t){if(e.length!==t.length)return!1;for(var a=0;a{return t=e,{async fetchDashboards(e){const a=await t.findDashboardsService();return(await a.search({search:e?`${e}*`:"",size:1e3})).hits},async getDashboardEditUrl(e){var a;return await(null===(a=t.locator)||void 0===a?void 0:a.getUrl({dashboardId:e,viewMode:n.ViewMode.EDIT,useHash:!1}))}};var t}),[e])}},function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var i=a(2),n=a(75),s=a(9),o=a(136);const r=()=>{const e=Object(s.j)();return Object(i.useMemo)((()=>new o.a({"histogram:maxBars":e.get(n.UI_SETTINGS.HISTOGRAM_MAX_BARS),"histogram:barTarget":e.get(n.UI_SETTINGS.HISTOGRAM_BAR_TARGET),dateFormat:e.get("dateFormat"),"dateFormat:scaled":e.get("dateFormat:scaled")})),[e])}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));const i="_all"},function(e,t,a){var i=a(180),n=["FREQ","INTERVAL","COUNT","UNTIL","BYDAY","BYMONTH","BYMONTHDAY"],s=["SU","MO","TU","WE","TH","FR","SA"];function o(e){return Array.isArray(e)?(e=e.slice(0))[1]--:e=[e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()],new Date(Date.UTC.apply(null,e))}function r(e){return new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds())}function l(e){return e<0?Math.ceil(e):Math.floor(e)}function c(e){return e.getUTCFullYear()}function d(e){return e.getUTCMonth()+1}function u(e){return e.getUTCDate()}function p(e){return e.getUTCHours()}function m(e){return e.getUTCMinutes()}function b(e){return e.getUTCSeconds()}function f(e){return e.getUTCMilliseconds()}function g(e,t){return e.setUTCMonth(t-1),e}function h(e,t){return e.setUTCDate(t),e}function j(e,t){return e.setUTCHours(t),e}function x(e,t){return e.setUTCMinutes(t),e}function v(e,t){return e.setUTCSeconds(t),e}function y(e,t){return e.setUTCMilliseconds(t),e}function O(e,t){return function(e,t){return e.setUTCFullYear(t),e}(e,c(e)+t)}function E(e,t){return g(e,d(e)+t)}function w(e,t){return h(e,u(e)+t)}function M(e){return e.getUTCDay()}function S(e,t){return(t-e)/864e5}var _=t.RRule=function(e,t,a){for(var i in t instanceof Date&&(t={DTSTART:t,DTEND:a}),t=t||{},this.start=t.DTSTART?o(t.DTSTART):null,this.end=t.DTEND?o(t.DTEND):null,this.exceptions=t.EXDATE||[],"string"==typeof e&&(e=_.parse(e)),this.rule={},e||{}){if(-1==n.indexOf(i))throw new Error(i+" is not currently supported!");this.rule[i]=T[i]?T[i].parse(e[i]):e[i]}};_.parse=function(e){for(var t=e.split(/=|;/),a={},i=0;ithis.until)return null;var t=C[this.rule.FREQ];if(!t)throw new Error(this.rule.FREQ+" recurrence is not supported");e:for(;;){for(var a=t.next(this.rule,this.start,e),i=r(a),n=0;nthis.until||this.rule.COUNT&&null!==this.count_end&&(void 0===this.count_end&&(this.count_end=null,this.count_end=this.nextOccurences(this.rule.COUNT).pop()),a>o(this.count_end))||this.rule.UNTIL&&a>o(this.rule.UNTIL)?null:r(a)},_.prototype.nextOccurences=function(e,t){1===arguments.length&&(t=e,e=void 0);var a=[];if(t instanceof Date)for(;(e=this.next(e))&&e<=t;)a.push(e);else for(;t--&&null!==e;)(e=this.next(e))&&a.push(e);return a};var T={INTERVAL:{parse:function(e){return parseInt(e,10)}},UNTIL:{parse:function(e){return e instanceof Date?e:i.parse_value("DATE-TIME",e)},format:function(e){return i.format_value("DATE-TIME",e)}},FREQ:{parse:function(e){return e}},BYMONTH:{parse:function(e){return"number"==typeof e?[e]:e.split(",").map((function(e){return parseInt(e,10)}))},format:function(e){return e.join(",")}},BYDAY:{parse:function(e){var t=e.split(",").map((function(e){var t=e.match(/([+-]?\d)?(SU|MO|TU|WE|TH|FR|SA)/);return[parseInt(t[1],10)||0,s.indexOf(t[2])]}));return t.sort((function(e,t){return e[0]==t[0]?e[1]-t[1]:e[0]-t[0]})),t},format:function(e){return e.map((function(e){return(e[0]||"")+s[e[1]]})).join(",")}},EXDATE:{parse:function(e){return e.split(",").map((function(e){return 8==e.length?i.parse_value("DATE",e):i.parse_value("DATE-TIME",e)}))},format:function(e){return e.map((function(e){return i.format_value(e.date_only?"DATE":"DATE-TIME",e)})).join(",")}}};T.BYMONTHDAY=T.BYMONTH,T.COUNT=T.INTERVAL;var C={DAILY:{next:function(e,t,a){var i=new Date(a);j(i,p(t)),x(i,m(t)),v(i,b(t)),y(i,f(t));var n=e.INTERVAL||1,s=l(S(i,t))%n;s&&w(i,n-s);for(var o=0;o<2&&!((i=D(e.BYDAY,i,a)).valueOf()>a.valueOf());++o)w(i,n);return i}},WEEKLY:{next:function(e,t,a){var i=new Date(a);j(i,p(t)),x(i,m(t)),v(i,b(t)),y(i,f(t));var n,s,o=e.INTERVAL||1,r=l(S(t,i)/7)%o;for(r&&w(i,7*(o-r));i=D(e.BYDAY,i,a),e.BYDAY&&e.BYDAY.length||(startDayOfWeek=M(t),nextDayOfWeek=M(i),nextDayOfWeek>startDayOfWeek?w(i,startDayOfWeek-nextDayOfWeek):startDayOfWeek>nextDayOfWeek&&w(i,startDayOfWeek-nextDayOfWeek-7)),!(i.valueOf()>a.valueOf())||(n=e.BYMONTH,s=i,n&&n.length&&-1===n.indexOf(d(s)));)w(i,7*o);return i}},MONTHLY:{next:function(e,t,a){var i=new Date(a);j(i,p(t)),x(i,m(t)),v(i,b(t)),y(i,f(t));var n=e.INTERVAL||1,s=d(i)-d(t)+12*(c(i)-c(t));s%n&&E(i,n-s%n);for(var o=0;o<2&&(o&&h(i,1),i=D(e.BYDAY,i,a),i=I(e.BYMONTHDAY,i,a),e.BYDAY&&e.BYDAY.length||e.BYMONTHDAY&&e.BYMONTHDAY.length||h(i,u(t)),!(i.valueOf()>a.valueOf()));++o)E(i,n);return i}},YEARLY:{next:function(e,t,a){var i=new Date(a);j(i,p(t)),x(i,m(t)),v(i,b(t)),y(i,f(t));var n=e.INTERVAL||1,s=(c(a)-c(t))%n;s&&O(i,n-s);for(var o=0;o<2&&(i=F(e.BYMONTH,i),i=I(e.BYMONTHDAY,i,a),i=D(e.BYDAY,i,a),e.BYMONTH&&e.BYMONTH.length||g(i,d(t)),e.BYDAY&&e.BYDAY.length||e.BYMONTHDAY&&e.BYMONTHDAY.length||h(i,u(t)),!(i.valueOf()>a.valueOf()));++o)h(g(O(i,n),1),1);return i}}};function k(e){return e.sort((function(e,t){return null===e&&null===t?0:null===e?1:null===t?-1:e.valueOf()-t.valueOf()}))}function F(e,t){return e&&e.length&&k(e.map((function(e){var a=e-d(t);a<0&&(a+=12);var i=E(new Date(t),a);return h(i,1),i}))).shift()||t}function I(e,t,a){return e&&e.length&&k(e.map((function(e){var i=h(new Date(t),e);return i.valueOf()<=a.valueOf()?null:i}))).shift()||t}function D(e,t,a){return e&&e.length&&k(e.map((function(e){(o=e[1]-M(t))<0&&(o+=7);var i=w(new Date(t),o);if(e[0]>0){var n=0|(u(i)-1)/7+1;if(n>e[0])return null;w(i,7*(e[0]-n))}else if(e[0]<0){for(var s=new Date(i),o=[];d(s)===d(i);)o.push(u(s)),w(s,7);h(i,o.reverse()[-e[0]-1])}return i.valueOf()<=a.valueOf()?null:i}))).shift()||t}},function(e,t,a){a(232);var i=a(181),n=a(133).CalendarObject,s=(a(133).CalendarProperty,a(133).schema),o=t.iCalendar=function(e){n.call(this,this,"VCALENDAR"),this.calendar=this,e||(this.addProperty("VERSION","2.0"),this.addProperty("PRODID",a(292).PRODID))};i.inherits(o,n),o.prototype.events=function(){return this.components.VEVENT||[]},o.prototype.timezone=function(e){for(var t=0;t{var n,s,o;let r=null==i?void 0:i.field;"string"!=typeof r&&(r=t.sortField);const l={pageIndex:null!==(n=null==e?void 0:e.index)&&void 0!==n?n:t.pageIndex,pageSize:null!==(s=null==e?void 0:e.size)&&void 0!==s?s:t.pageSize,sortField:r,sortDirection:null!==(o=null==i?void 0:i.direction)&&void 0!==o?o:t.sortDirection};a(l)}),[t,a]),pagination:Object(i.useMemo)((()=>({pageIndex:s,pageSize:o,totalItemCount:e,pageSizeOptions:n})),[e,s,o]),sorting:Object(i.useMemo)((()=>({sort:{field:r,direction:l}})),[r,l])}}},function(e,t,a){var i=a(234),n=a(457)(i);e.exports=n},function(e,t,a){e.exports=a(56)(1654)},function(e,t,a){var i=a(184),n=a(483),s=a(484);e.exports=function(e,t){return s(n(e,t,i),e+"")}},function(e,t,a){e.exports=a(56)(1235)},function(e,t,a){"use strict";var i=a(115);e.exports={longestPath:function(e){var t={};i.forEach(e.sources(),(function a(n){var s=e.node(n);if(i.has(t,n))return s.rank;t[n]=!0;var o=i.min(i.map(e.outEdges(n),(function(t){return a(t.w)-e.edge(t).minlen})));return o!==Number.POSITIVE_INFINITY&&null!=o||(o=0),s.rank=o}))},slack:function(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}}},function(e,t,a){e.exports=a(56)(1801)},,function(e,t,a){"use strict";a.r(t),a.d(t,"AnomalyTimelineService",(function(){return AnomalyTimelineService}));var i=a(5),n=a.n(i),s=a(69),o=a(20),r=a(136),l=a(117);class AnomalyTimelineService{constructor(e,t,a){n()(this,"timeBuckets",void 0),n()(this,"_customTimeRange",void 0),this.timeFilter=e,this.mlResultsService=a,this.timeBuckets=new r.a({"histogram:maxBars":t.get(s.UI_SETTINGS.HISTOGRAM_MAX_BARS),"histogram:barTarget":t.get(s.UI_SETTINGS.HISTOGRAM_BAR_TARGET),dateFormat:t.get("dateFormat"),"dateFormat:scaled":t.get("dateFormat:scaled")}),this.timeFilter.enableTimeRangeSelector()}static isSwimlaneData(e){return Object(o.a)(e,["interval","points","laneLabels"])}static isOverallSwimlaneData(e){return this.isSwimlaneData(e)&&Object(o.a)(e,["earliest","latest"])&&1===e.laneLabels.length&&e.laneLabels[0]===l.g}setTimeRange(e){this._customTimeRange=e}getSwimlaneBucketInterval(e,t){const a=this.getTimeBounds();if(void 0===a)throw new Error("timeRangeSelectorEnabled has to be enabled");this.timeBuckets.setInterval("auto"),this.timeBuckets.setBounds(a);const i=this.timeBuckets.getInterval().asSeconds(),n=(a.max.valueOf()-a.min.valueOf())/1e3/i;Math.floor(t/n*100)/100<8&&this.timeBuckets.setInterval(2*i+"s");const s=e.reduce(((e,t)=>Math.max(e,t.bucketSpanSeconds)),0);return s>i&&(this.timeBuckets.setInterval(s+"s"),this.timeBuckets.setBounds(a)),this.timeBuckets.getInterval()}async loadOverallData(e,t,a,i){const n=null!=a?a:this.getSwimlaneBucketInterval(e,t);if(!e||!e.length)throw new Error("Explorer jobs collection is required");const s=this.getTimeBounds(),o=Object(r.b)(s,n,!1),l=e.map((e=>e.id)),c=Object(r.b)(s,n,!0),d=await this.mlResultsService.getOverallBucketScores(l,1,c.min.valueOf(),c.max.valueOf(),n.asSeconds()+"s",i);return this.processOverallResults(d.results,o,n.asSeconds())}async loadViewBySwimlane(e,t,a,i,n,s,o,c,d,u,p){const m=this.getTimeBounds();if(void 0===m)throw new Error("timeRangeSelectorEnabled has to be enabled");const b=null!=u?u:this.getSwimlaneBucketInterval(a,c),f=Object(r.b)(m,b,!1),g=a.map((e=>e.id)),h=b.asMilliseconds();let j;if(i===l.j){const t=void 0!==e&&e.length>0?e:g;j=await this.mlResultsService.getScoresByBucket(t,f.min.valueOf(),f.max.valueOf(),h,s,o,p)}else j=await this.mlResultsService.getInfluencerValueMaxScoreByTime(g,i,e,f.min.valueOf(),f.max.valueOf(),h,n,s,o,d,p);if(void 0!==j)return this.processViewByResults(j.results,j.cardinality,e,t,i,b.asSeconds())}async loadViewByTopFieldValuesForSelectedTime(e,t,a,i,n,s,o,r,c,d){const u=a.map((e=>e.id));if(i!==l.j){const a=await this.mlResultsService.getTopInfluencers(u,e,t,n,s,o,c,d);if(void 0===a.influencers[i])return[];const r=[],l=a.influencers[i];return Array.isArray(l)&&l.forEach((e=>{e.maxAnomalyScore>0&&r.push(e.influencerFieldValue)})),r}{const a=await this.mlResultsService.getScoresByBucket(u,e,t,r.asMilliseconds(),s,o,n);return Object.keys(a.results)}}getTimeBounds(){return void 0!==this._customTimeRange?this.timeFilter.calculateBounds(this._customTimeRange):this.timeFilter.getBounds()}processOverallResults(e,t,a){const i=l.g,n={laneLabels:[i],points:[],interval:a,earliest:t.min.valueOf()/1e3,latest:t.max.valueOf()/1e3};return Object.entries(e).forEach((([e,t])=>{const a=+e/1e3;n.points.push({laneLabel:i,time:a,value:t}),n.earliest=Math.min(a,n.earliest),n.latest=Math.max(a+n.interval,n.latest)})),n}processViewByResults(e,t,a,i,n,s){const o={fieldName:n,points:[],laneLabels:[],interval:s,earliest:i.earliest,latest:i.latest,cardinality:t},r={};Object.entries(e).forEach((([e,t])=>{o.laneLabels.push(e),r[e]=0,Object.entries(t).forEach((([t,a])=>{const i=+t/1e3;o.points.push({laneLabel:e,time:i,value:a}),r[e]=Math.max(r[e],a)}))}));const l=a.length;return o.laneLabels=0===l?o.laneLabels.sort(((e,t)=>r[t]-r[e])):o.laneLabels.sort(((e,t)=>{let i=a.indexOf(e),n=a.indexOf(t);return i=i>-1?i:l,n=n>-1?n:l,i-n})),o}}},function(e,t,a){"use strict";a.d(t,"b",(function(){return Tv})),a.d(t,"a",(function(){return Cv}));var i={};a.r(i),a.d(i,"overviewRouteFactory",(function(){return Ae})),a.d(i,"appRootRouteFactory",(function(){return Re})),a.d(i,"jobListRouteFactory",(function(){return _n})),a.d(i,"indexOrSearchRouteFactory",(function(){return Nn})),a.d(i,"dataVizIndexOrSearchRouteFactory",(function(){return Pn})),a.d(i,"logRateAnalysisIndexOrSearchRouteFactory",(function(){return zn})),a.d(i,"explainLogRateSpikesIndexOrSearchRouteFactory",(function(){return Bn})),a.d(i,"logCategorizationIndexOrSearchRouteFactory",(function(){return Vn})),a.d(i,"changePointDetectionIndexOrSearchRouteFactory",(function(){return Jn})),a.d(i,"dataComparisonIndexOrSearchRouteFactory",(function(){return Un})),a.d(i,"jobTypeRouteFactory",(function(){return as})),a.d(i,"newJobRouteFactory",(function(){return ns})),a.d(i,"singleMetricRouteFactory",(function(){return id})),a.d(i,"multiMetricRouteFactory",(function(){return nd})),a.d(i,"multiMetricRouteFactoryRedirect",(function(){return sd})),a.d(i,"populationRouteFactory",(function(){return od})),a.d(i,"advancedRouteFactory",(function(){return rd})),a.d(i,"advancedRouteFactoryRedirect",(function(){return ld})),a.d(i,"categorizationRouteFactory",(function(){return cd})),a.d(i,"rareRouteFactory",(function(){return dd})),a.d(i,"geoRouteFactory",(function(){return ud})),a.d(i,"recognizeRouteFactory",(function(){return wd})),a.d(i,"checkViewOrCreateRouteFactory",(function(){return Md})),a.d(i,"fromLensRouteFactory",(function(){return Cd})),a.d(i,"fromMapRouteFactory",(function(){return Id})),a.d(i,"selectorRouteFactory",(function(){return Rd})),a.d(i,"indexBasedRouteFactory",(function(){return zd})),a.d(i,"fileBasedRouteFactory",(function(){return Jd})),a.d(i,"settingsRouteFactory",(function(){return Wd})),a.d(i,"calendarListRouteFactory",(function(){return lu})),a.d(i,"newCalendarRouteFactory",(function(){return uu})),a.d(i,"editCalendarRouteFactory",(function(){return pu})),a.d(i,"filterListRouteFactory",(function(){return _u})),a.d(i,"newFilterListRouteFactory",(function(){return ku})),a.d(i,"editFilterListRouteFactory",(function(){return Fu})),a.d(i,"analyticsJobsListRouteFactory",(function(){return ap})),a.d(i,"analyticsJobExplorationRouteFactory",(function(){return cb})),a.d(i,"analyticsJobsCreationRouteFactory",(function(){return Xf})),a.d(i,"analyticsMapRouteFactory",(function(){return Zf})),a.d(i,"analyticsSourceSelectionRouteFactory",(function(){return ng})),a.d(i,"logRateAnalysisRouteFactory",(function(){return cg})),a.d(i,"explainLogRateSpikesRouteFactory",(function(){return dg})),a.d(i,"logCategorizationRouteFactory",(function(){return bg})),a.d(i,"changePointDetectionRouteFactory",(function(){return jg})),a.d(i,"timeSeriesExplorerRouteFactory",(function(){return Wj})),a.d(i,"explorerRouteFactory",(function(){return iv})),a.d(i,"modelsListRouteFactory",(function(){return ov})),a.d(i,"dataComparisonRouteFactory",(function(){return cv})),a.d(i,"notificationsRouteFactory",(function(){return pv})),a.d(i,"nodesListRouteFactory",(function(){return jv}));var n=a(2),s=a.n(n),o=a(228),r=a(24),l=a(269),c=a(10),d=a(28),u=a(6),p=a(100),m=a.n(p),b=a(70),f=a.n(b),g=(a(379),a(15)),h=(a(384),a(4));const j=e=>{const{className:t,size:a,...i}=e,n={};return(e=>void 0===e.iconType)(e)&&(n.iconType=`logo${e.name.replace(/\s+/g,"")}`),Object(h.jsx)(d.EuiAvatar,m()({className:f()("kbnSolutionAvatar",{[`kbnSolutionAvatar--${a}`]:a},t),size:"xxl"===a?"xl":a,iconSize:a,color:"plain"},i,n))};a(389);const x=u.i18n.translate("sharedUXPackages.solutionNav.collapsibleLabel",{defaultMessage:"Collapse side navigation"}),v=u.i18n.translate("sharedUXPackages.solutionNav.openLabel",{defaultMessage:"Open side navigation"}),y=({className:e,isCollapsed:t,...a})=>{const i=f()("kbnSolutionNavCollapseButton",{"kbnSolutionNavCollapseButton-isCollapsed":t},e);return Object(h.jsx)(d.EuiButtonIcon,m()({className:i,size:"s",color:"text",iconType:t?"menuRight":"menuLeft","aria-label":t?v:x,title:t?v:x},a))},O=(e,t)=>e.map((e=>(e.tabIndex=t?-1:void 0,e.items=e.items&&O(e.items,t),e))),E=Object(d.htmlIdGenerator)("SolutionNav"),w=({children:e,headingProps:t,icon:a,isOpenOnDesktop:i=!1,items:o,mobileBreakpoints:r=["xs","s"],closeFlyoutButtonPosition:l="outside",name:c,onCollapse:p,canBeCollapsed:b=!0,...x})=>{const v=Object(d.useIsWithinBreakpoints)(r),w=Object(d.useIsWithinBreakpoints)(["m"]),M=Object(d.useIsWithinMinBreakpoint)("l"),[S,_]=Object(n.useState)(!1),T=M&&!i&&b,C=!!e,k=f()("kbnSolutionNav",{"kbnSolutionNav--hidden":T}),F=(null==t?void 0:t.id)||E("heading"),I=(null==t?void 0:t.element)||"h2",D=Object(h.jsx)(d.EuiTitle,{size:"xs",id:F,"data-test-subj":null==t?void 0:t["data-test-subj"]},Object(h.jsx)(I,null,a&&Object(h.jsx)(j,{className:"kbnSolutionNav__avatar",iconType:a,name:c}),Object(h.jsx)("strong",null,Object(h.jsx)(g.FormattedMessage,{id:"sharedUXPackages.solutionNav.mobileTitleText",defaultMessage:"{solutionName} {menuText}",values:{solutionName:c||"Navigation",menuText:v?u.i18n.translate("sharedUXPackages.solutionNav.menuText",{defaultMessage:"menu"}):""}})))),A=Object(n.useMemo)((()=>C?e:o?Object(h.jsx)(d.EuiSideNav,m()({"aria-labelledby":F,"aria-hidden":T,items:O(o,T),mobileBreakpoints:[]},x)):null),[e,F,C,T,o,x]);return Object(h.jsx)(s.a.Fragment,null,v&&Object(h.jsx)(d.EuiCollapsibleNavGroup,{className:k,paddingSize:"none",background:"none",title:D,titleElement:"span",isCollapsible:b,initialIsOpen:!1},Object(h.jsx)(d.EuiPanel,{color:"transparent",paddingSize:"s"},A)),w&&Object(h.jsx)(s.a.Fragment,null,(S||!b)&&Object(h.jsx)(d.EuiFlyout,{ownFocus:!1,outsideClickCloses:!0,onClose:()=>_(!1),side:"left",size:248,closeButtonPosition:l,className:"kbnSolutionNav__flyout",hideCloseButton:!b},Object(h.jsx)("div",{className:k},D,Object(h.jsx)(d.EuiSpacer,{size:"l"}),A)),b&&Object(h.jsx)(y,{isCollapsed:!0,onClick:()=>{_(!S)}})),M&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)("div",{className:k},D,Object(h.jsx)(d.EuiSpacer,{size:"l"}),A),b&&Object(h.jsx)(y,{isCollapsed:!i,onClick:p})))};var M=a(394);const S="solutionNavIsCollapsed",_=e=>{const t=t=>{var a;const i=Object(d.useIsWithinBreakpoints)(["m"]),s=Object(d.useIsWithinMinBreakpoint)("l"),[o,r]=Object(n.useState)(!JSON.parse(String(localStorage.getItem(S)))),{solutionNav:l,children:c,...u}=t,{euiTheme:p}=Object(d.useEuiTheme)(),{canBeCollapsed:b=!0}=l,g=i||b&&s&&!o,j=(e=>Object(M.css)("flex:0 1 0;overflow:hidden;",d.euiCanAnimate,"{transition:min-width ",e.animation.fast," ",e.animation.resistance,";}",""))(p),x=f()({"kbnSolutionNav__sidebar--shrink":g},null===(a=t.pageSideBarProps)||void 0===a?void 0:a.className,j),v=Object(h.jsx)(w,m()({isOpenOnDesktop:o,onCollapse:()=>{r(!o),localStorage.setItem(S,JSON.stringify(o))}},l)),y={paddingSize:"none",...t.pageSideBarProps,minWidth:g?p.size.xxl:void 0,className:x};return Object(h.jsx)(e,m()({},u,{pageSideBar:v,pageSideBarProps:y}),c)};var a;return t.displayName=`WithSolutionNavBar(${a=e,a.displayName||a.name||"UnnamedComponent"})`,t};var T=a(29),C=a.n(T);const k=s.a.createContext(null),F=({children:e,...t})=>{const{navigateToUrl:a,currentAppId:i}=t;return Object(h.jsx)(k.Provider,{value:{navigateToUrl:a,currentAppId:i}},e)},I=({children:e,coreStart:t})=>{const{navigateToUrl:a,currentAppId$:i}=t.application,n=C()(i,void 0);return Object(h.jsx)(k.Provider,{value:{navigateToUrl:a,currentAppId:n}},e)},D={name:"36bnqj",styles:"display:flex;flex:1"},A=({children:e,navigateToUrl:t,currentAppId:a})=>{const i=Object(n.useRef)(null),s=Object(n.useCallback)((e=>(({event:e,container:t,navigateToUrl:a,currentAppId:i})=>{if(!t||!i)return;const n=((e,t)=>{let a=e;do{var i,n;if("a"===(null===(i=a)||void 0===i?void 0:i.tagName.toLowerCase()))return a;const e=null===(n=a)||void 0===n?void 0:n.parentElement;if(!e||e===document.body||e===t)break;a=e}while(parent||parent!==document.body||parent!==t)})(e.target,t);if(!n)return;const s=n.href,o=""===n.target||"_self"===n.target,r=0===e.button;s&&o&&r&&!e.defaultPrevented&&!(e=>e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)(e)&&(e.preventDefault(),a(n.href))})({event:e,currentAppId:a,navigateToUrl:t,container:i.current})),[a,t]);return Object(h.jsx)("div",{onClick:s,ref:i,css:D},e)},L=({children:e})=>Object(h.jsx)(A,function(){const e=Object(n.useContext)(k);if(!e)throw new Error("RedirectAppLinksContext is missing. Ensure your component or React root is wrapped with RedirectAppLinksProvider.");return e}(),e),R=({children:e,...t})=>{const a=Object(h.jsx)(L,null,e);if(void 0!==t.coreStart){const{coreStart:e}=t;return Object(h.jsx)(I,{coreStart:e},a)}const{navigateToUrl:i,currentAppId:n}=t;return Object(h.jsx)(F,{currentAppId:n,navigateToUrl:i},a)};var N=a(405),P=a.n(N);const z=u.i18n.translate("sharedUXPackages.card.noData.noPermission.title",{defaultMessage:"Contact your administrator"}),B=u.i18n.translate("sharedUXPackages.card.noData.noPermission.description",{defaultMessage:"This integration is not yet enabled. Your administrator has the required permissions to turn it on."}),V=u.i18n.translate("sharedUXPackages.card.noData.title",{defaultMessage:"Add Elastic Agent"}),J=u.i18n.translate("sharedUXPackages.card.noData.description",{defaultMessage:"Use Elastic Agent for a simple, unified way to collect data from your machines."}),U=()=>Object(h.jsx)(d.EuiImage,{size:"fullWidth",style:{width:"max(100%, 360px)",height:240,objectFit:"cover",background:"aliceblue"},url:P.a,alt:""}),G=({title:e,description:t,canAccessFleet:a,button:i,...n})=>Object(h.jsx)(d.EuiCard,m()({css:{maxWidth:400,marginInline:"auto"},paddingSize:"l",title:a?Object(h.jsx)(d.EuiScreenReaderOnly,null,Object(h.jsx)("span",null,e||V)):Object(h.jsx)(d.EuiTextColor,{color:"default"},z),description:a?t||J:Object(h.jsx)(d.EuiTextColor,{color:"default"},B),footer:(()=>{if(a)return i&&"string"!=typeof i?i:Object(h.jsx)(d.EuiButton,{fill:!0},i||e||V)})(),isDisabled:!a,image:Object(h.jsx)(U,null)},n)),q=s.a.createContext(null),$=({href:e,category:t,description:a,...i})=>{const{canAccessFleet:s,addBasePath:o}=function(){const e=Object(n.useContext)(q);if(!e)throw new Error("NoDataCard Context is missing. Ensure your component or React root is wrapped with NoDataCardContext.");return e}(),r=Object(n.useMemo)((()=>{if(e)return e;const a="/app/integrations/browse";return o(t?`${a}/${t}`:a)}),[o,e,t]);return Object(h.jsx)(L,null,Object(h.jsx)(G,m()({},i,{href:r,canAccessFleet:s,description:a})))},W=({action:e})=>{const t=Object.keys(e);if(1!==t.length)return null;const a=t[0],i="elasticAgent"===a?"empty-page-agent-action":`empty-page-${a}-action`;return Object(h.jsx)($,m()({key:i},e[a]))},H=({solution:e,logo:t,action:a,docsLink:i,pageTitle:n,className:s})=>{const o=n||u.i18n.translate("sharedUXPackages.noDataPage.welcomeTitle",{defaultMessage:"Welcome to Elastic {solution}!",values:{solution:e}}),r=Object(h.jsx)(d.EuiLink,{href:i,target:"_blank"},Object(h.jsx)(g.FormattedMessage,{id:"sharedUXPackages.noDataPage.intro.link",defaultMessage:"learn more"})),l=Object(h.jsx)(g.FormattedMessage,{id:"sharedUXPackages.noDataPage.intro",defaultMessage:"Add your data to get started, or {link} about {solution}.",values:{solution:e,link:r}});return Object(h.jsx)(d.EuiPageTemplate.Section,{alignment:"center",grow:!0,className:f()("kbnNoDataPageContents",s),"data-test-subj":"kbnNoDataPage"},Object(h.jsx)(d.EuiText,{textAlign:"center"},Object(h.jsx)(j,{name:e,iconType:t||`logo${e}`,size:"xxl"}),Object(h.jsx)(d.EuiSpacer,{size:"l"}),Object(h.jsx)("h1",null,o),Object(h.jsx)(d.EuiTextColor,{color:"subdued"},Object(h.jsx)("p",null,l))),Object(h.jsx)(d.EuiSpacer,{size:"xxl"}),Object(h.jsx)(W,{action:a}))},Y=e=>{const{className:t,noDataConfig:a,pageSideBar:i,pageSideBarProps:n,...s}=e;if(!a)return null;let o;i&&(o=Object(h.jsx)(d.EuiPageTemplate.Sidebar,n,i));const r=((e,t)=>f()("kbnPageTemplate","",t||""))(0,t);return Object(h.jsx)(d.EuiPageTemplate,m()({className:r,restrictWidth:950,panelled:!1,offset:0,minHeight:0},s),o,Object(h.jsx)(H,a))},X=_(Y),Q=({className:e,pageHeader:t,children:a,isEmptyState:i,pageSideBar:s,pageSideBarProps:o,...r})=>{let l;const[c,u]=Object(n.useState)();if(Object(n.useEffect)((()=>{const e=document.querySelector('[data-test-subj="kibanaChrome"]');if(e){const t=e.querySelector('[data-test-subj="headerGlobalNav"]');u((null==t?void 0:t.offsetTop)+(null==t?void 0:t.offsetHeight))}}),[]),i&&t&&!a){const{iconType:e,pageTitle:i,description:n,rightSideItems:s}=t,o=i?Object(h.jsx)("h1",null,i):void 0,r=n?Object(h.jsx)("p",null,n):void 0;a=Object(h.jsx)(d.EuiPageTemplate.EmptyPrompt,{iconType:e,iconColor:"",title:o,body:r,actions:s})}else t&&(l=Object(h.jsx)(d.EuiPageTemplate.Header,t));let p;if(s){const e={...o};c&&(e.sticky={offset:c}),p=Object(h.jsx)(d.EuiPageTemplate.Sidebar,e,s)}const b=((e,t)=>f()("kbnPageTemplate","",t||""))(0,e);return Object(h.jsx)(d.EuiPageTemplate,m()({className:b,offset:0,minHeight:0},r),p,l,a)},K=_(Q),Z=Object.assign((({className:e,children:t,solutionNav:a,noDataConfig:i,...n})=>i&&a?Object(h.jsx)(X,{"data-test-subj":n["data-test-subj"],className:e,noDataConfig:i,solutionNav:a}):i?Object(h.jsx)(Y,{"data-test-subj":n["data-test-subj"],className:e,noDataConfig:i}):a?Object(h.jsx)(K,m()({className:e,solutionNav:a,children:t},n)):Object(h.jsx)(Q,m()({className:e,children:t},n))),{Sidebar:d.EuiPageTemplate.Sidebar,Header:d.EuiPageTemplate.Header,Section:d.EuiPageTemplate.Section,BottomBar:d.EuiPageTemplate.BottomBar,EmptyPrompt:d.EuiPageTemplate.EmptyPrompt});var ee=a(109),te=a(16),ae=a(32),ie=a(17);const ne=Object.freeze({text:u.i18n.translate("xpack.ml.machineLearningBreadcrumbLabel",{defaultMessage:"Machine Learning"}),href:"/"}),se=Object.freeze({text:u.i18n.translate("xpack.ml.settingsBreadcrumbLabel",{defaultMessage:"Settings"}),href:"/settings"}),oe=Object.freeze({text:u.i18n.translate("xpack.ml.anomalyDetectionBreadcrumbLabel",{defaultMessage:"Anomaly Detection"}),href:"/jobs"}),re=Object.freeze({text:u.i18n.translate("xpack.ml.dataFrameAnalyticsLabel",{defaultMessage:"Data Frame Analytics"}),href:"/data_frame_analytics"}),le=Object.freeze({text:u.i18n.translate("xpack.ml.modelManagementLabel",{defaultMessage:"Model Management"}),href:"/trained_models"}),ce=Object.freeze({text:u.i18n.translate("xpack.ml.datavisualizerBreadcrumbLabel",{defaultMessage:"Data Visualizer"}),href:"/datavisualizer"}),de=Object.freeze({text:u.i18n.translate("xpack.ml.aiopsBreadcrumbLabel",{defaultMessage:"AIOps Labs"}),href:"/aiops/log_rate_analysis_index_select"}),ue=Object.freeze({text:u.i18n.translate("xpack.ml.aiopsBreadcrumbLabel",{defaultMessage:"AIOps Labs"}),href:"/aiops/log_categorization_index_select"}),pe=Object.freeze({text:u.i18n.translate("xpack.ml.aiopsBreadcrumbLabel",{defaultMessage:"AIOps Labs"}),href:"/aiops/change_point_detection_index_select"}),me=Object.freeze({text:u.i18n.translate("xpack.ml.aiops.logRateAnalysisBreadcrumbLabel",{defaultMessage:"Log Rate Analysis"}),href:"/aiops/log_rate_analysis_index_select"}),be=Object.freeze({text:u.i18n.translate("xpack.ml.aiops.logPatternAnalysisBreadcrumbLabel",{defaultMessage:"Log Pattern Analysis"}),href:"/aiops/log_categorization_index_select"}),fe=Object.freeze({text:u.i18n.translate("xpack.ml.aiops.changePointDetectionBreadcrumbLabel",{defaultMessage:"Change Point Detection"}),href:"/aiops/change_point_detection_index_select"}),ge=Object.freeze({text:u.i18n.translate("xpack.ml.createJobsBreadcrumbLabel",{defaultMessage:"Create job"}),href:"/jobs/new_job"}),he=Object.freeze({text:u.i18n.translate("xpack.ml.settings.breadcrumbs.calendarManagementLabel",{defaultMessage:"Calendar management"}),href:"/settings/calendars_list"}),je=Object.freeze({text:u.i18n.translate("xpack.ml.settings.breadcrumbs.filterListsLabel",{defaultMessage:"Filter lists"}),href:"/settings/filter_lists"}),xe=Object.freeze({text:u.i18n.translate("xpack.ml.settings.breadcrumbs.dataComparisonLabel",{defaultMessage:"Data comparison"}),href:"/data_comparison_index_select"}),ve={ML_BREADCRUMB:ne,SETTINGS_BREADCRUMB:se,ANOMALY_DETECTION_BREADCRUMB:oe,DATA_FRAME_ANALYTICS_BREADCRUMB:re,TRAINED_MODELS:le,DATA_COMPARISON_BREADCRUMB:xe,DATA_VISUALIZER_BREADCRUMB:ce,AIOPS_BREADCRUMB_LOG_RATE_ANALYSIS:de,AIOPS_BREADCRUMB_LOG_PATTERN_ANALYSIS:ue,AIOPS_BREADCRUMB_CHANGE_POINT_DETECTION:pe,LOG_RATE_ANALYSIS:me,LOG_PATTERN_ANALYSIS:be,CHANGE_POINT_DETECTION:fe,CREATE_JOB_BREADCRUMB:ge,CALENDAR_MANAGEMENT_BREADCRUMB:he,FILTER_LISTS_BREADCRUMB:je},ye=(e,t)=>a=>{a.preventDefault(),t(e)},Oe=(e,t,a)=>({text:ve[e].text,...t?{href:`${a}/app/ml${ve[e].href}`,onClick:ye(ve[e].href,t)}:{}});var Ee=a(108),we=a(176),Me=a.n(we),Se=a(102),_e=a(121),Te=a(9);const Ce=({missingCapabilities:e})=>{const{services:{docLinks:t}}=Object(Te.d)(),a=t.links.ml.guide,i=(null!=e?e:[]).map((e=>Object(Se.e)(e)));return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"xxl"}),Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceAround"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiPageContent_Deprecated,{verticalPosition:"center",horizontalPosition:"center",color:"danger"},Object(h.jsx)(d.EuiEmptyPrompt,{iconType:"warning",title:Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.management.jobsList.accessDeniedTitle",defaultMessage:"Access denied"})),body:Object(h.jsx)("div",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.accessDenied.description",defaultMessage:"You do not have permission to view this page."}),i?Object(h.jsx)("ul",null,i.map((e=>Object(h.jsx)("li",{key:e},e)))):null)})))),Object(h.jsx)(_e.a,{docLink:a}))};var ke=a(0),Fe=a(1);const Ie=(e,t,a)=>{const i=Object(n.useRef)(t),s=Object(n.useRef)(a),[o,r]=Object(n.useState)(),[l,c]=Object(n.useState)({initialized:!1}),{services:{application:{navigateToApp:d,navigateToUrl:p},mlServices:{mlCapabilities:m},uiSettings:b,data:{dataViews:f},notifications:g,share:{url:{locators:j}}}}=Object(Te.d)(),x=Object(Te.e)();Me()((function(){m.refreshCapabilities()}));const v=Object(n.useCallback)((async()=>!1===x.isMlEnabled||!1===x.isMinimumLicense?(await d("home"),Promise.reject()):"full"===e&&!1===x.isFullLicense?(await d(ke.f,{path:Fe.b.DATA_VISUALIZER}),Promise.reject()):!x.hasLicenseExpired||(await p(await j.get("LICENSE_MANAGEMENT_LOCATOR").getUrl({page:"dashboard"})),Promise.reject())),[j,x.hasLicenseExpired,x.isFullLicense,x.isMinimumLicense,x.isMlEnabled,d,p,e]),y=Object(Se.f)(t),O=Object(n.useCallback)((async()=>{const e=i.current.filter(((e,t)=>!y[t]));return!(e.length>0)||(c({initialized:!0,resolvedComponent:Object(h.jsx)(Ce,{missingCapabilities:e})}),Promise.reject())}),[y]),E=Object(n.useCallback)((async()=>{if(!s.current)return;const e=Object.keys(s.current),t=Object.values(s.current),a=e.reduce(((e,t)=>(e[t]={},e)),{});return(await Promise.all(t.map((e=>e())))).forEach(((t,i)=>a[e[i]]=t)),a}),[]);return Object(n.useEffect)((function(){let e=!0;return v().then(O).then(E).then((t=>{e&&(c({initialized:!0}),r(t))})).catch((e=>{e instanceof Error&&g.toasts.addError(e,{title:u.i18n.translate("xpack.ml.useResolver.errorTitle",{defaultMessage:"An error has occurred"})})})),()=>{e=!1}}),[v,x,O,g.toasts,E,f,b]),{context:l,results:o}},De=s.a.lazy((()=>a.e(31).then(a.bind(null,675)))),Ae=(e,t)=>({id:"overview",path:Object(Ee.c)(te.a.OVERVIEW),title:u.i18n.translate("xpack.ml.overview.overviewLabel",{defaultMessage:"Overview"}),enableDatePicker:!0,render:(e,t)=>Object(h.jsx)(Le,m()({},e,{deps:t})),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.overview.overviewLabel",{defaultMessage:"Overview"})}],"data-test-subj":"mlPageOverview"}),Le=()=>{const{context:e}=Ie("full",["canGetMlInfo"],{getMlNodeCount:ae.a,loadMlServerInfo:ie.g});return Object(ee.i)({timeRangeSelector:!1,autoRefreshSelector:!1}),Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(n.Suspense,{fallback:null},Object(h.jsx)(De,null)))},Re=(e,t)=>({id:"",path:"/",render:()=>Object(h.jsx)(Ne,null),breadcrumbs:[]}),Ne=()=>Object(h.jsx)(r.Redirect,{to:Object(Ee.c)(te.a.OVERVIEW)}),Pe=1e3;var ze=a(40),Be=a(5),Ve=a.n(Be),Je=a(12),Ue=a(7),Ge=a(112),qe=a(101),$e=a(13),We=a(116),He=a(129),Ye=a(30);const Xe={DELETE:"delete",RESET:"reset",REVERT:"revert"},Qe={"cluster:admin/xpack/ml/job/delete":Xe.DELETE,"cluster:admin/xpack/ml/job/reset":Xe.RESET,"cluster:admin/xpack/ml/job/model_snapshots/revert":Xe.REVERT};Object.keys(Qe);var Ke=a(41);const Ze=new class calendar_service_CalendarService{async assignNewJobId(e,t){const{calendar_id:a}=e;try{await Je.ml.updateCalendar({...e,calendarId:a,job_ids:[...e.job_ids,t]})}catch(e){throw new Error(u.i18n.translate("xpack.ml.calendarService.assignNewJobIdErrorMessage",{defaultMessage:"Unable to assign {jobId} to {calendarId}",values:{calendarId:a,jobId:t}}))}}async fetchCalendarsByIds(e){try{const t=await Je.ml.calendars({calendarIds:e});return Array.isArray(t)?t:[t]}catch(t){throw new Error(u.i18n.translate("xpack.ml.calendarService.fetchCalendarsByIdsErrorMessage",{defaultMessage:"Unable to fetch calendars: {calendarIds}",values:{calendarIds:e.join(", ")}}))}}};var et=a(20);function tt(e){return new Promise(((t,a)=>{Je.ml.jobs.jobs([e]).then((a=>{if(!a.length)throw new Error(`Could not find job ${e}`);t(a[0])})).catch((e=>{a(e)}))}))}function at(e){return new Promise(((t,a)=>{Je.ml.jobs.jobForCloning(e).then((a=>{if(!a)throw new Error(`Could not find job ${e}`);t(a)})).catch((e=>{a(e)}))}))}function it(e){return e.some((e=>e.datafeedState===Ye.a.STOPPED&&e.jobState!==Ye.c.CLOSING))}function nt(e){return e.some((e=>e.datafeedState===Ye.a.STARTED||e.datafeedState===Ye.a.STARTING))}function st(e){return e.some((e=>e.datafeedState===Ye.a.STOPPED&&e.jobState!==Ye.c.CLOSED&&e.jobState!==Ye.c.CLOSING))}function ot(e){return e.some((e=>{var t;return e.jobState===Ye.c.CLOSED||(null===(t=e.blocked)||void 0===t?void 0:t.reason)===Xe.RESET}))}function rt(e,t=(()=>{})){const a=e.filter((e=>e.hasDatafeed)).map((e=>e.datafeedId));Ge.a.stopDatafeeds(a).then((e=>{lt(e,Ye.a.STOPPED),t()})).catch((e=>{Object($e.h)().addDanger(u.i18n.translate("xpack.ml.jobsList.stopJobErrorMessage",{defaultMessage:"Jobs failed to stop"}),e),t()}))}function lt(e,t){const a=[],i=[];for(const n in e)!0===e[n][t]||!1===e[n][t]&&409===e[n].error.statusCode&&t===Ye.a.STARTED?a.push(n):i.push({id:n,result:e[n]});let n="",s="";t===Ye.a.STARTED?(n=u.i18n.translate("xpack.ml.jobsList.startActionStatusText",{defaultMessage:"start"}),s=u.i18n.translate("xpack.ml.jobsList.startedActionStatusText",{defaultMessage:"started"})):t===Ye.a.STOPPED?(n=u.i18n.translate("xpack.ml.jobsList.stopActionStatusText",{defaultMessage:"stop"}),s=u.i18n.translate("xpack.ml.jobsList.stoppedActionStatusText",{defaultMessage:"stopped"})):t===Ye.a.DELETED?(n=u.i18n.translate("xpack.ml.jobsList.deleteActionStatusText",{defaultMessage:"delete"}),s=u.i18n.translate("xpack.ml.jobsList.deletedActionStatusText",{defaultMessage:"deleted"})):t===Ye.c.CLOSED?(n=u.i18n.translate("xpack.ml.jobsList.closeActionStatusText",{defaultMessage:"close"}),s=u.i18n.translate("xpack.ml.jobsList.closedActionStatusText",{defaultMessage:"closed"})):t===Xe.RESET&&(n=u.i18n.translate("xpack.ml.jobsList.resetActionStatusText",{defaultMessage:"reset"}),s=u.i18n.translate("xpack.ml.jobsList.resetActionStatusText",{defaultMessage:"reset"}));const o=Object($e.h)();o.addSuccess(u.i18n.translate("xpack.ml.jobsList.actionExecuteSuccessfullyNotificationMessage",{defaultMessage:"{successesJobsCount, plural, one{{successJob}} other{# jobs}} {actionTextPT} successfully",values:{successesJobsCount:a.length,successJob:a[0],actionTextPT:s}})),i.length>0&&i.forEach((e=>{Object(qe.b)(o).displayErrorToast(e.result.error,u.i18n.translate("xpack.ml.jobsList.actionFailedNotificationMessage",{defaultMessage:"{failureId} failed to {actionText}",values:{failureId:e.id,actionText:n}}))}))}function ct(e,t=(()=>{})){const a=e.map((e=>e.id));Ge.a.closeJobs(a).then((e=>{lt(e,Ye.c.CLOSED),t()})).catch((e=>{Object(qe.a)().displayErrorToast(e,u.i18n.translate("xpack.ml.jobsList.closeJobErrorMessage",{defaultMessage:"Jobs failed to close"})),t()}))}function dt(e,t){if(0===t.length)return e;const a=e.reduce(((e,t)=>(e[t.id]={job:t,count:0},e)),{});t.forEach((t=>{const i="must"===t.match;let n=[];"term"===t.type?n=!0===i?e.filter((e=>Object(We.g)(e.id,t.value)===i||Object(We.g)(e.description,t.value)===i||Object(We.g)(e.memory_status,t.value)===i)):e.filter((e=>Object(We.g)(e.id,t.value)===i&&Object(We.g)(e.description,t.value)===i&&Object(We.g)(e.memory_status,t.value)===i)):Array.isArray(t.value)?"id"===t.field?n=e.filter((e=>t.value.indexOf(ut(e,t.field))>=0)):"groups"===t.field?n=e.filter((e=>ut(e,t.field).some((e=>t.value.indexOf(e)>=0)))):"job_tags"===t.field&&(n=pt(e,t.value)):n="job_tags"===t.field?n=pt(e,[t.value]):e.filter((e=>ut(e,t.field)===t.value)),n.forEach((e=>a[e.id].count++))}));const i=[];return Object(Ue.each)(a,(e=>{e.count>=t.length&&i.push(e.job)})),i}function ut(e,t){return e[{job_state:"jobState",datafeed_state:"datafeedState",groups:"groups",id:"id",job_tags:"jobTags"}[t]]}function pt(e,t){return e.filter((e=>{const a=ut(e,"job_tags");return Object.entries(a).map((e=>e.join(":"))).find((e=>t.some((t=>t===e))))}))}var mt=a(39),bt=a.n(mt),ft=a(110);const[gt,ht,jt]=["info","warning","error"],xt=({message:e,showTooltip:t=!1})=>{if(void 0===e)return Object(h.jsx)("span",null);let a="primary",i="warning";return e.level===gt?i="iInCircle":e.level===ht?a="warning":e.level===jt&&(a="danger"),t?Object(h.jsx)(d.EuiToolTip,{position:"bottom",content:e.text},Object(h.jsx)(d.EuiIcon,{type:i,color:a})):Object(h.jsx)(d.EuiIcon,{type:i,color:a})};var vt=a(23);const yt=e=>Object(et.a)(e,["customSettings"])&&!0===e.customSettings.managed||Object(et.a)(e,["custom_settings"])&&!0===e.custom_settings.managed;function Ot(e,t,a,i,n,s,o,r,l){const c=Object(Se.d)("canCreateJob")&&Object(vt.e)(),d=Object(Se.d)("canUpdateJob"),p=Object(Se.d)("canDeleteJob"),m=Object(Se.d)("canGetDatafeeds"),b=Object(Se.d)("canUpdateDatafeed"),f=Object(Se.d)("canStartStopDatafeed")&&Object(vt.e)(),g=Object(Se.d)("canCloseJob")&&Object(vt.e)(),h=Object(Se.d)("canResetJob")&&Object(vt.e)(),j=Object(Se.d)("canCreateMlAlerts");return[{name:u.i18n.translate("xpack.ml.jobsList.managementActions.startDatafeedLabel",{defaultMessage:"Start datafeed"}),description:u.i18n.translate("xpack.ml.jobsList.managementActions.startDatafeedDescription",{defaultMessage:"Start datafeed"}),icon:"play",enabled:e=>!1===Et(e)&&f,available:e=>it([e]),onClick:e=>{n([e]),wt()},"data-test-subj":"mlActionButtonStartDatafeed"},{name:u.i18n.translate("xpack.ml.jobsList.managementActions.stopDatafeedLabel",{defaultMessage:"Stop datafeed"}),description:u.i18n.translate("xpack.ml.jobsList.managementActions.stopDatafeedDescription",{defaultMessage:"Stop datafeed"}),icon:"stop",enabled:e=>!1===Et(e)&&f,available:e=>nt([e]),onClick:e=>{yt(e)?o([e]):rt([e],r),wt(!0)},"data-test-subj":"mlActionButtonStopDatafeed"},{name:u.i18n.translate("xpack.ml.jobsList.managementActions.createAlertLabel",{defaultMessage:"Create alert rule"}),description:u.i18n.translate("xpack.ml.jobsList.managementActions.createAlertLabel",{defaultMessage:"Create alert rule"}),icon:"bell",enabled:e=>!1===Et(e),available:()=>j,onClick:e=>{l([e.id]),wt(!0)},"data-test-subj":"mlActionButtonCreateAlert"},{name:u.i18n.translate("xpack.ml.jobsList.managementActions.closeJobLabel",{defaultMessage:"Close job"}),description:u.i18n.translate("xpack.ml.jobsList.managementActions.closeJobDescription",{defaultMessage:"Close job"}),icon:"cross",enabled:e=>!1===Et(e)&&g,available:e=>st([e]),onClick:e=>{yt(e)?s([e]):ct([e],r),wt(!0)},"data-test-subj":"mlActionButtonCloseJob"},{name:u.i18n.translate("xpack.ml.jobsList.managementActions.resetJobLabel",{defaultMessage:"Reset job"}),description:u.i18n.translate("xpack.ml.jobsList.managementActions.resetJobDescription",{defaultMessage:"Reset job"}),icon:"refresh",enabled:e=>function(e){return void 0===e.blocked||e.blocked.reason===Xe.RESET}(e)&&h,available:e=>ot([e]),onClick:e=>{i([e]),wt(!0)},"data-test-subj":"mlActionButtonResetJob"},{name:u.i18n.translate("xpack.ml.jobsList.managementActions.cloneJobLabel",{defaultMessage:"Clone job"}),description:u.i18n.translate("xpack.ml.jobsList.managementActions.cloneJobDescription",{defaultMessage:"Clone job"}),icon:"copy",enabled:e=>!1===Et(e)&&c,onClick:e=>{!async function(e){try{var t;const[{job:i,datafeed:n},s]=await Promise.all([at(e),tt(e)]),o=await Object(He.d)(),r=n.indices.join(",");if(!1===o.includes(r)){const t=u.i18n.translate("xpack.ml.jobsList.managementActions.noSourceDataViewForClone",{defaultMessage:"Unable to clone the anomaly detection job {jobId}. No data view exists for index {dataViewTitle}.",values:{jobId:e,dataViewTitle:r}});return void Object(qe.a)().displayDangerToast(t,{"data-test-subj":"mlCloneJobNoDataViewExistsWarningToast"})}var a;if(void 0!==i&&void 0!==(null==s||null===(t=s.custom_settings)||void 0===t?void 0:t.created_by)){if(Ge.a.tempJobCloningObjects.createdBy=null==s||null===(a=s.custom_settings)||void 0===a?void 0:a.created_by,Ge.a.tempJobCloningObjects.job=i,void 0!==s.data_counts.earliest_record_timestamp&&void 0!==s.data_counts.latest_record_timestamp&&void 0!==s.data_counts.latest_bucket_timestamp){let e=s.data_counts.earliest_record_timestamp,t=s.data_counts.latest_record_timestamp;if(void 0!==s.datafeed_config.aggregations){const a=Object(Ke.a)(s.analysis_config.bucket_span).asMilliseconds();e=Math.floor(s.data_counts.earliest_record_timestamp/a)*a,t=s.data_counts.latest_bucket_timestamp+2*a-1}Ge.a.tempJobCloningObjects.start=e,Ge.a.tempJobCloningObjects.end=t}}else Ge.a.tempJobCloningObjects.job=i,Ge.a.tempJobCloningObjects.createdBy=void 0;void 0!==n&&(Ge.a.tempJobCloningObjects.datafeed=n),s.calendars&&(Ge.a.tempJobCloningObjects.calendars=await Ze.fetchCalendarsByIds(s.calendars)),Object($e.b)().navigateToApp(ke.f,{path:Fe.b.ANOMALY_DETECTION_CREATE_JOB})}catch(t){Object(qe.a)().displayErrorToast(t,u.i18n.translate("xpack.ml.jobsList.cloneJobErrorMessage",{defaultMessage:"Could not clone {jobId}. Job could not be found",values:{jobId:e}}))}}(e.id),wt(!0)},"data-test-subj":"mlActionButtonCloneJob"},{name:u.i18n.translate("xpack.ml.jobsList.managementActions.viewDatafeedCountsLabel",{defaultMessage:"View datafeed counts"}),description:u.i18n.translate("xpack.ml.jobsList.managementActions.viewDatafeedCountsDescription",{defaultMessage:"View datafeed counts"}),icon:"visAreaStacked",enabled:()=>m,available:()=>m,onClick:e=>{t(e),wt()},"data-test-subj":"mlActionButtonViewDatafeedChart"},{name:u.i18n.translate("xpack.ml.jobsList.managementActions.editJobLabel",{defaultMessage:"Edit job"}),description:u.i18n.translate("xpack.ml.jobsList.managementActions.editJobDescription",{defaultMessage:"Edit job"}),icon:"pencil",enabled:e=>!1===Et(e)&&d&&b,onClick:t=>{e(t),wt()},"data-test-subj":"mlActionButtonEditJob"},{name:u.i18n.translate("xpack.ml.jobsList.managementActions.deleteJobLabel",{defaultMessage:"Delete job"}),description:u.i18n.translate("xpack.ml.jobsList.managementActions.deleteJobDescription",{defaultMessage:"Delete job"}),icon:"trash",color:"danger",enabled:()=>p,onClick:e=>{a([e]),wt()},"data-test-subj":"mlActionButtonDeleteJob"}]}function Et(e){return void 0!==e.blocked}function wt(e=!1){e?document.querySelector(".euiTable").click():window.setTimeout((()=>{const e=document.querySelector(".euiModalBody");e?e.click():document.querySelector(".euiTable").click()}),500)}const Mt="ml:anomalyDetection:results:timeDefaults",St=()=>{const{services:{http:{basePath:e}}}=Object(Te.d)(),t=Object(Te.j)().get("ml:anomalyDetection:results:enableTimeDefaults"),a=Object(Te.j)().get(Mt);return{createLinkWithUserDefaults:Object(n.useCallback)(((i,n)=>{const s=Ge.a.createResultsUrlForJobs(n,i,!0===t&&void 0!==a?a:void 0);return`${e.get()}/app/ml/${s}`}),[e])}};function _t({jobs:e}){const t=u.i18n.translate("xpack.ml.jobsList.resultActions.openJobsInSingleMetricViewerText",{defaultMessage:"Open {jobsCount, plural, one {{jobId}} other {# jobs}} in Single Metric Viewer",values:{jobsCount:e.length,jobId:e[0].id}}),a=u.i18n.translate("xpack.ml.jobsList.resultActions.openJobsInAnomalyExplorerText",{defaultMessage:"Open {jobsCount, plural, one {{jobId}} other {# jobs}} in Anomaly Explorer",values:{jobsCount:e.length,jobId:e[0].id}}),i=e.length<2,s=1===e.length&&e[0].isSingleMetricViewerJob,o=1===e.length&&e[0].isNotSingleMetricViewerJobMessage,r=void 0!==o?u.i18n.translate("xpack.ml.jobsList.resultActions.singleMetricDisabledMessageText",{defaultMessage:"Disabled because {reason}.",values:{reason:o}}):void 0,l=1===e.length&&void 0!==e[0].blocked,{createLinkWithUserDefaults:c}=St(),p=Object(n.useMemo)((()=>c("timeseriesexplorer",e)),[e]),m=Object(n.useMemo)((()=>c("explorer",e)),[e]);return Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs",justifyContent:"flexEnd",alignItems:"center",wrap:!1,direction:"row",responsive:!1},i&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiToolTip,{position:"bottom",content:null!=r?r:t},Object(h.jsx)(d.EuiButtonIcon,{href:p,iconType:"visLine","aria-label":t,isDisabled:!1===s||!0===l,"data-test-subj":"mlOpenJobsInSingleMetricViewerButton"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiToolTip,{position:"bottom",content:a},Object(h.jsx)(d.EuiButtonIcon,{href:m,iconType:"visTable","aria-label":a,isDisabled:!0===l,"data-test-subj":"mlOpenJobsInAnomalyExplorerButton"}))))}var Tt=a(220);function Ct({job:e}){return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)("div",{className:"job-description"},e.description,"  ",e.groups.map((e=>Object(h.jsx)(Tt.a,{key:e,name:e})))))}var kt=a(286);const Ft=[10,25,50];class jobs_list_JobsList extends n.Component{constructor(e){super(e),Ve()(this,"onTableChange",(({page:e={},sort:t={}})=>{const{index:a,size:i}=e,{field:n,direction:s}=t;this.props.onJobsViewStateUpdate({pageIndex:a,pageSize:i,sortField:n,sortDirection:s})})),Ve()(this,"toggleRow",(e=>{this.props.toggleRow(e.id)})),this.state={jobsSummaryList:e.jobsSummaryList,itemIdToExpandedRowMap:{}}}static getDerivedStateFromProps(e){return{itemIdToExpandedRowMap:e.itemIdToExpandedRowMap,jobsSummaryList:e.jobsSummaryList}}getJobIdLink(e){return!1===this.props.isMlEnabledInSpace?e:Object(h.jsx)(kt.a,{key:e,id:e})}getPageOfJobs(e,t,a,i){let n=this.state.jobsSummaryList;n=Object(Ue.sortBy)(this.state.jobsSummaryList,(e=>e[a])),n="asc"===i?n:n.reverse();const s=n.length;let o=e*t;return o>=s&&0!==s&&(o=Math.floor((s-1)/t)*t,setTimeout((()=>{this.props.onJobsViewStateUpdate({pageIndex:o/t})}),0)),{pageOfItems:n.slice(o,o+t),totalItemCount:s}}render(){const{loading:e}=this.props,t={selectable:e=>void 0===e.blocked,selectableMessage:(e,t)=>!1===e?u.i18n.translate("xpack.ml.jobsList.cannotSelectRowForJobMessage",{defaultMessage:"Cannot select job ID {jobId}",values:{jobId:t.id}}):u.i18n.translate("xpack.ml.jobsList.selectRowForJobMessage",{defaultMessage:"Select the row for job ID {jobId}",values:{jobId:t.id}}),onSelectionChange:this.props.selectJobChange},a=[{name:Object(h.jsx)(d.EuiScreenReaderOnly,null,Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.showDetailsColumn.screenReaderDescription",defaultMessage:"This column contains clickable controls for showing more details on each job"}))),"data-test-subj":"mlJobListColumnExpand",render:e=>Object(h.jsx)(d.EuiButtonIcon,{onClick:()=>this.toggleRow(e),iconType:this.state.itemIdToExpandedRowMap[e.id]?"arrowDown":"arrowRight","aria-label":this.state.itemIdToExpandedRowMap[e.id]?u.i18n.translate("xpack.ml.jobsList.collapseJobDetailsAriaLabel",{defaultMessage:"Hide details for {itemId}",values:{itemId:e.id}}):u.i18n.translate("xpack.ml.jobsList.expandJobDetailsAriaLabel",{defaultMessage:"Show details for {itemId}",values:{itemId:e.id}}),"data-row-id":e.id,"data-test-subj":"mlJobListRowDetailsToggle"}),width:"3%"},{field:"id","data-test-subj":"mlJobListColumnId",name:u.i18n.translate("xpack.ml.jobsList.idLabel",{defaultMessage:"ID"}),sortable:!0,truncateText:!1,width:"15%",scope:"row",render:(e,t)=>yt(t)?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)("span",null,e,"  ",Object(h.jsx)(d.EuiToolTip,{content:u.i18n.translate("xpack.ml.jobsList.managedBadgeTooltip",{defaultMessage:"This job is preconfigured and managed by Elastic; other parts of the product might have might have dependencies on its behavior."})},Object(h.jsx)(d.EuiBadge,{color:"hollow","data-test-subj":"mlJobListRowManagedLabel",size:"xs"},u.i18n.translate("xpack.ml.jobsList.managedBadgeLabel",{defaultMessage:"Managed"}))))):e},{field:"auditMessage","data-test-subj":"mlJobListColumnIcons",name:Object(h.jsx)(d.EuiScreenReaderOnly,null,Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.auditMessageColumn.screenReaderDescription",defaultMessage:"This column displays icons when there are errors or warnings for the job in the past 24 hours"}))),render:e=>Object(h.jsx)(xt,{message:e,showTooltip:!0})},{field:"alertingRules","data-test-subj":"mlJobListColumnAlertingRuleIndicator",name:Object(h.jsx)(d.EuiScreenReaderOnly,null,Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.alertingRules.screenReaderDescription",defaultMessage:"This column displays icons when there are alert rules associated with a job"}))),width:"30px",render:e=>Array.isArray(e)?Object(h.jsx)(d.EuiToolTip,{position:"bottom",content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.alertingRules.tooltipContent",defaultMessage:"Job has {rulesCount} associated alert {rulesCount, plural, one { rule} other { rules}}",values:{rulesCount:e.length}})},Object(h.jsx)(d.EuiIcon,{type:"bell"})):Object(h.jsx)("span",null)},{name:u.i18n.translate("xpack.ml.jobsList.descriptionLabel",{defaultMessage:"Description"}),sortable:!0,field:"description","data-test-subj":"mlJobListColumnDescription",render:(e,t)=>Object(h.jsx)(Ct,{job:t}),textOnly:!0,width:"20%"},{field:"processed_record_count","data-test-subj":"mlJobListColumnRecordCount",name:u.i18n.translate("xpack.ml.jobsList.processedRecordsLabel",{defaultMessage:"Processed records"}),sortable:!0,truncateText:!1,dataType:"number",render:e=>Object(We.h)(e),width:"10%"},{field:"memory_status","data-test-subj":"mlJobListColumnMemoryStatus",name:u.i18n.translate("xpack.ml.jobsList.memoryStatusLabel",{defaultMessage:"Memory status"}),sortable:!0,truncateText:!1,width:"5%"},{field:"jobState","data-test-subj":"mlJobListColumnJobState",name:u.i18n.translate("xpack.ml.jobsList.jobStateLabel",{defaultMessage:"Job state"}),sortable:!0,truncateText:!1,width:"8%"},{field:"datafeedState","data-test-subj":"mlJobListColumnDatafeedState",name:u.i18n.translate("xpack.ml.jobsList.datafeedStateLabel",{defaultMessage:"Datafeed state"}),sortable:!0,truncateText:!1,width:"8%"},{name:u.i18n.translate("xpack.ml.jobsList.latestTimestampLabel",{defaultMessage:"Latest timestamp"}),truncateText:!1,field:"latestTimestampSortValue","data-test-subj":"mlJobListColumnLatestTimestamp",sortable:!0,render:(e,t)=>Object(h.jsx)("span",{className:"euiTableCellContent__text"},void 0===t.latestTimestampMs?"":bt()(t.latestTimestampMs).format(ft.a)),textOnly:!0,width:"15%"},{name:Object(h.jsx)(d.EuiScreenReaderOnly,null,Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.jobActionsColumn.screenReaderDescription",defaultMessage:"This column contains extra actions in a menu that can be performed on each job"}))),render:e=>Object(h.jsx)(_t,{jobs:[e]}),width:"64px"},{name:u.i18n.translate("xpack.ml.jobsList.actionsLabel",{defaultMessage:"Actions"}),actions:Ot(this.props.showEditJobFlyout,this.props.showDatafeedChartFlyout,this.props.showDeleteJobModal,this.props.showResetJobModal,this.props.showStartDatafeedModal,this.props.showCloseJobsConfirmModal,this.props.showStopDatafeedsConfirmModal,this.props.refreshJobs,this.props.showCreateAlertFlyout),width:"5%"}],{pageIndex:i,pageSize:n,sortField:o,sortDirection:r}=this.props.jobsViewState,{pageOfItems:l,totalItemCount:c}=this.getPageOfJobs(i,n,o,r),p={pageIndex:i,pageSize:n,totalItemCount:c,pageSizeOptions:Ft},m={sort:{field:o,direction:r}},b=this.props.selectedJobsCount?"jobs-selected":"";return Object(h.jsx)(d.EuiBasicTable,{"data-test-subj":e?"mlJobListTable loading":"mlJobListTable loaded",loading:!0===e,noItemsMessage:e?u.i18n.translate("xpack.ml.jobsList.loadingJobsLabel",{defaultMessage:"Loading jobs…"}):u.i18n.translate("xpack.ml.jobsList.noJobsFoundLabel",{defaultMessage:"No jobs found"}),itemId:"id",className:`jobs-list-table ${b}`,items:l,columns:a,pagination:p,onChange:this.onTableChange,selection:t,itemIdToExpandedRowMap:this.state.itemIdToExpandedRowMap,isExpandable:!0,sorting:m,hasActions:!0,rowProps:e=>({"data-test-subj":`mlJobListRow row-${e.id}`})})}}jobs_list_JobsList.defaultProps={isMlEnabledInSpace:!0,loading:!1};var It=a(76),Dt=a.n(It),At=a(365);const Lt="0.0 b";function Rt(e){if(!e)return["",""];const[t,a]=e;switch(t){case"finished_time":case"create_time":case"log_time":case"timestamp":case"earliest_record_timestamp":case"latest_record_timestamp":case"last_data_time":case"latest_empty_bucket_timestamp":case"latest_sparse_bucket_timestamp":case"latest_bucket_timestamp":return[t,Object(ft.e)(a)];case"established_model_memory":case"input_bytes":case"model_bytes":case"model_bytes_exceeded":case"model_bytes_memory_limit":case"peak_model_bytes":return[t,(i=a,Dt()(i).format(Lt))];case"processed_record_count":case"processed_field_count":case"input_field_count":case"invalid_date_count":case"missing_field_count":case"out_of_order_timestamp_count":case"empty_bucket_count":case"sparse_bucket_count":case"bucket_count":case"input_record_count":case"total_by_field_count":case"total_over_field_count":case"total_partition_field_count":case"bucket_allocation_failures_count":case"search_count":return[t,Object(We.h)(a)];case"average_search_time_per_bucket_ms":case"exponential_average_search_time_per_hour_ms":case"total_bucket_processing_time_ms":case"minimum_bucket_processing_time_ms":case"maximum_bucket_processing_time_ms":case"average_bucket_processing_time_ms":case"exponential_average_bucket_processing_time_ms":case"exponential_average_bucket_processing_time_per_hour_ms":return[t,"number"==typeof a?Object(At.a)(a,3).toLocaleString():a];case"managed":return[t,a.toString()];default:return[t,a]}var i}function Nt(e,t,a){return Object.keys(e).filter((i=>a||"object"!=typeof e[i]||t&&Array.isArray(e[i]))).map((t=>{let a=e[t];return Array.isArray(a)?a=a.join(", "):"object"==typeof e[t]&&(a=JSON.stringify(a)),[t,a]}))}var Pt=a(26);const zt=({initialAlert:e,jobIds:t,onCloseFlyout:a,onSave:i})=>{const{services:{triggersActionsUi:o}}=Object(Te.d)(),r=Object(n.useMemo)((()=>{if(!o)return;const n={onClose:()=>{a()},onSave:async()=>{i&&i()}};var s;return e?o.getEditRuleFlyout({...n,initialRule:{...e,ruleTypeId:null!==(s=e.ruleTypeId)&&void 0!==s?s:e.alertTypeId}}):o.getAddRuleFlyout({...n,consumer:ke.f,canChangeTrigger:!1,ruleTypeId:Pt.d.ANOMALY_DETECTION,metadata:{},initialValues:{params:{jobSelection:{jobIds:t}}}})}),[o,null==e?void 0:e.id,t]);return Object(h.jsx)(s.a.Fragment,null,r)},Bt=({setShowFunction:e,unsetShowFunction:t,onSave:a})=>{const[i,s]=Object(n.useState)(!1),[o,r]=Object(n.useState)(),l=Object(n.useCallback)((e=>{r(e),s(!0)}),[]);return Object(n.useEffect)((()=>(e(l),()=>{t()})),[]),i&&o?Object(h.jsx)(zt,{jobIds:o,onCloseFlyout:()=>s(!1),onSave:()=>{s(!1),a()}}):null},Vt=({initialAlert:e,onSave:t})=>{const[a,i]=Object(n.useState)(!1);return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiButtonEmpty,{size:"xs",onClick:i.bind(null,!a)},e.name),a?Object(h.jsx)(zt,{initialAlert:e,onCloseFlyout:i.bind(null,!1),onSave:()=>{i(!1),t()}}):null)};var Jt=a(150);function Ut({job:e}){const t=JSON.stringify(e,null,2);return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(Jt.a,{value:t,readOnly:!0,mode:Jt.b.XJSON}))}var Gt=a(106);const qt=({job:e})=>{const{jobs:{datafeedPreview:t}}=Object(Te.c)(),a=Object(Se.f)("canPreviewDatafeed"),[i,o]=Object(n.useState)(!1),[r,l]=Object(n.useState)("");return Object(n.useEffect)((()=>{o(!0),t(e.datafeed_config.datafeed_id).then((e=>{Array.isArray(e)?0===e.length?l(null):l(JSON.stringify(e.slice(0,Gt.a),null,2)):l(""),o(!1)}))}),[t,e]),!1===a?Object(h.jsx)($t,null):i?Object(h.jsx)(d.EuiLoadingSpinner,{size:"xl"}):Object(h.jsx)(s.a.Fragment,null,null===r?Object(h.jsx)(Wt,null):Object(h.jsx)(Jt.a,{value:r,readOnly:!0}))},$t=()=>Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.jobDetails.noPermissionToViewDatafeedPreviewTitle",defaultMessage:"You do not have permission to view the datafeed preview"}),color:"warning",iconType:"warning"},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.jobDetails.pleaseContactYourAdministratorLabel",defaultMessage:"Please contact your administrator"}))),Wt=()=>Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.jobDetails.noResults.title",defaultMessage:"No results"}),color:"warning",iconType:"warning"},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.jobDetails.noResults.text",defaultMessage:"Note: Datafeed preview does not return results from frozen tiers."})));var Ht=a(198),Yt=a.n(Ht),Xt=a(77),Qt=a(197);const Kt={rowMouseenter$:new c.Subject,rowMouseleave$:new c.Subject};var Zt=a(178),ea=a(156);let ta;!function(e){e.ANNOTATION="annotation",e.COMMENT="comment"}(ta||(ta={}));const aa=1e3,ia="user",na="delayed_data";var sa=a(21);const oa=Object(n.createContext)(new ea.a);var ra=a(66),la=a(98),ca=a(143);const da=Object(ra.timeFormatter)(Object(ra.niceTimeFormatByDay)(3));function ua(e){return(Math.round(100*e)/100).toString()}const pa=({chartData:e})=>{const t=function(e){const t=!1;if(void 0===e)return{fit:t,min:NaN,max:NaN};if(0===e.length)return{min:0,max:0,fit:t};let a=Number.MIN_VALUE,i=Number.MAX_VALUE;e.forEach((e=>{a=Math.max(e.value,a),i=Math.min(e.value,i)}));const n=.1*(a-i);return a+=n,i-=n,{min:i,max:a,fit:t}}(e);return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(ra.Axis,{id:"bottom",position:ra.Position.Bottom,showOverlappingTicks:!0,tickFormat:da}),Object(h.jsx)(ra.Axis,{id:"left",position:ra.Position.Left,tickFormat:ua,domain:t}))};var ma=a(114),ba=a(120),fa=a(126),ga=a(132);const ha=250;class job_runner_JobRunner{constructor(e){Ve()(this,"_jobId",void 0),Ve()(this,"_datafeedId",void 0),Ve()(this,"_start",0),Ve()(this,"_end",0),Ve()(this,"_datafeedState",Ye.a.STOPPED),Ve()(this,"_refreshInterval",ha),Ve()(this,"_progress$",void 0),Ve()(this,"_percentageComplete",0),Ve()(this,"_stopRefreshPoll",void 0),Ve()(this,"_subscribers",void 0),Ve()(this,"_datafeedStartTime",0),Ve()(this,"_performRefreshRateAdjustment",!1),Ve()(this,"_jobAssignedToNode",!1),Ve()(this,"_jobAssignedToNode$",void 0),this._jobId=e.jobId,this._datafeedId=e.datafeedId,this._start=e.start,this._end=e.end,this._percentageComplete=0,this._stopRefreshPoll=e.stopAllRefreshPolls,this._progress$=new c.BehaviorSubject(this._percentageComplete),this._jobAssignedToNode$=new c.BehaviorSubject(this._jobAssignedToNode),this._subscribers=e.subscribers}get datafeedState(){return this._datafeedState}set refreshInterval(e){this._refreshInterval=e}resetInterval(){this._refreshInterval=ha}async openJob(){try{const{node:e}=await Ge.a.openJob(this._jobId);this._jobAssignedToNode=void 0!==e&&e.length>0,this._jobAssignedToNode$.next(this._jobAssignedToNode)}catch(e){throw e}}async _startDatafeed(e,t,a){try{this._datafeedStartTime=Date.now();const i=!0===a?this._subscribers.map((e=>this._progress$.subscribe(e))):[];await this.openJob();const{started:n}=await Ge.a.startDatafeed(this._datafeedId,this._jobId,e,t);this._datafeedState=Ye.a.STARTED,this._percentageComplete=0;const s=async()=>{const{isRunning:e,progress:t,isJobClosed:a}=await this.getProgress(),n=100!==t||!0!==e&&!1!==a?t:t-1;this._adjustRefreshInterval(n),this._percentageComplete=n,this._progress$.next(this._percentageComplete),!0!==e&&!1!==a||!1!==this._stopRefreshPoll.stop?(this._progress$.next(100),i.forEach((e=>e.unsubscribe()))):setTimeout((async()=>{!1===this._stopRefreshPoll.stop&&await s()}),this._refreshInterval)},o=async()=>{this._jobAssignedToNode=await this._isJobAssigned(),this._jobAssignedToNode$.next(this._jobAssignedToNode),!0===this._jobAssignedToNode?await s():setTimeout((async()=>{!1===this._stopRefreshPoll.stop&&await o()}),2e3)};return!0===a&&(!0===this._jobAssignedToNode?await s():await o()),n}catch(e){throw e}}_adjustRefreshInterval(e){if(!1===this._performRefreshRateAdjustment){if(!(Date.now()-this._datafeedStartTime>2e3))return;this._performRefreshRateAdjustment=!0}const t=e-this._percentageComplete;0!==t&&(this._refreshInterval=Math.floor(this._refreshInterval*(2/t)),this._refreshInterval0&&void 0!==e[0].node}async startDatafeed(){return await this._startDatafeed(this._start,this._end,!0)}async startDatafeedInRealTime(e){const t=e?this._end:this._start;return await this._startDatafeed(t,void 0,!1)}async getProgress(){return await Je.ml.jobs.getLookBackProgress(this._jobId,this._start,this._end)}subscribeToProgress(e){this._progress$.subscribe(e)}async isRunning(){const{isRunning:e}=await this.getProgress();return e}isJobAssignedToNode(){return this._jobAssignedToNode}subscribeToJobAssignment(e){return this._jobAssignedToNode$.subscribe(e)}}var ja=a(105),xa=a(113);function va(e,t){if(!Object(et.a)(t,["runtime_mappings"])||!Object(et.a)(t.runtime_mappings))return{runtime_mappings:{},discarded_mappings:{}};const a=function(e,t){var a;const i=new Set;e.analysis_config.detectors.forEach((e=>{void 0!==e.field_name&&i.add(e.field_name),void 0!==e.by_field_name&&i.add(e.by_field_name),void 0!==e.over_field_name&&i.add(e.over_field_name),void 0!==e.partition_field_name&&i.add(e.partition_field_name)})),void 0!==e.analysis_config.categorization_field_name&&i.add(e.analysis_config.categorization_field_name),void 0!==e.analysis_config.summary_count_field_name&&i.add(e.analysis_config.summary_count_field_name),void 0!==e.analysis_config.influencers&&e.analysis_config.influencers.forEach((e=>i.add(e)));const n=null!==(a=t.aggregations)&&void 0!==a?a:t.aggs;void 0!==n&&ya(n).forEach((e=>i.add(e)));const s=t.query;return void 0!==s&&Oa(s).forEach((e=>i.add(e))),[...i]}(e,t),{runtimeMappings:i,discardedMappings:n}=(s=t.runtime_mappings,{runtimeMappings:(o=a).reduce(((e,t)=>(void 0!==s[t]&&(e[t]=s[t]),e)),{}),discardedMappings:Object.keys(s).reduce(((e,t)=>(!1===o.includes(t)&&void 0!==s[t]&&(e[t]=s[t]),e)),{})});var s,o;return{runtime_mappings:i,discarded_mappings:n}}function ya(e){const t=[];return Object.entries(e).forEach((([e,a])=>{Object(et.a)(a)?t.push(...ya(a)):"string"==typeof a&&"field"===e&&t.push(a)})),t}function Oa(e){const t=[];return Object.entries(e).forEach((([e,a])=>{Object(et.a)(a)?(t.push(e),t.push(...Oa(a))):"string"==typeof a?t.push(a):t.push(e)})),t}var Ea=a(229),wa=a(290);class job_creator_JobCreator{constructor(e,t,a){Ve()(this,"_type",ja.f.SINGLE_METRIC),Ve()(this,"_indexPattern",void 0),Ve()(this,"_savedSearch",void 0),Ve()(this,"_indexPatternTitle",""),Ve()(this,"_indexPatternDisplayName",""),Ve()(this,"_job_config",void 0),Ve()(this,"_calendars",void 0),Ve()(this,"_datafeed_config",void 0),Ve()(this,"_detectors",void 0),Ve()(this,"_influencers",void 0),Ve()(this,"_bucketSpanMs",0),Ve()(this,"_useDedicatedIndex",!1),Ve()(this,"_start",0),Ve()(this,"_end",0),Ve()(this,"_subscribers",[]),Ve()(this,"_aggs",[]),Ve()(this,"_fields",[]),Ve()(this,"_scriptFields",[]),Ve()(this,"_runtimeFields",[]),Ve()(this,"_runtimeMappings",null),Ve()(this,"_filterRuntimeMappingsOnSave",!0),Ve()(this,"_aggregationFields",[]),Ve()(this,"_sparseData",!1),Ve()(this,"_stopAllRefreshPolls",{stop:!1}),Ve()(this,"_wizardInitialized$",new c.BehaviorSubject(!1)),Ve()(this,"wizardInitialized$",this._wizardInitialized$.asObservable()),this._indexPattern=e,this._savedSearch=t;const i=this._indexPattern.title,n=this._indexPattern.getName();this._indexPatternDisplayName=n===i?n:`${n} (${i})`,this._indexPatternTitle=i,this._job_config=Object(ga.c)(),this._calendars=[],this._datafeed_config=Object(ga.b)(this._indexPatternTitle),this._detectors=this._job_config.analysis_config.detectors,this._influencers=this._job_config.analysis_config.influencers,"string"==typeof e.timeFieldName&&(this._job_config.data_description.time_field=e.timeFieldName),this._extractRuntimeMappings(),this._datafeed_config.query=a}get type(){return this._type}get savedSearch(){return this._savedSearch}get dataView(){return this._indexPattern}get dataViewId(){return this._indexPattern.id}get indexPatternTitle(){return this._indexPatternTitle}get indexPatternDisplayName(){return this._indexPatternDisplayName}_addDetector(e,t,a){this._detectors.push(e),this._aggs.push(t),this._fields.push(a),this._updateSparseDataDetectors()}_editDetector(e,t,a,i){void 0!==this._detectors[i]&&(this._detectors[i]=e,this._aggs[i]=t,this._fields[i]=a,this._updateSparseDataDetectors())}_removeDetector(e){this._detectors.splice(e,1),this._aggs.splice(e,1),this._fields.splice(e,1)}removeAllDetectors(){this._detectors.length=0,this._aggs.length=0,this._fields.length=0}get savedSearchQuery(){return this._savedSearch?Object(He.e)(this._savedSearch):null}get detectors(){return this._detectors}get aggregationsInDetectors(){return this._aggs}getAggregation(e){const t=this._aggs[e];return void 0!==t?t:null}get aggregations(){return this._aggs}getField(e){const t=this._fields[e];return void 0!==t?t:null}get fields(){return this._fields}set bucketSpan(e){this._job_config.analysis_config.bucket_span=e,this._setBucketSpanMs(e)}get bucketSpan(){return this._job_config.analysis_config.bucket_span}_setBucketSpanMs(e){const t=Object(Ke.a)(e,!0);this._bucketSpanMs=null===t?0:t.asMilliseconds()}get bucketSpanMs(){return this._bucketSpanMs}addInfluencer(e){!1===this._influencers.includes(e)&&this._influencers.push(e)}removeInfluencer(e){const t=this._influencers.indexOf(e);-1!==t&&this._influencers.splice(t,1)}removeAllInfluencers(){this._influencers.length=0}get influencers(){return this._influencers}set jobId(e){this._job_config.job_id=e,this._datafeed_config.job_id=e,this._datafeed_config.datafeed_id=`datafeed-${e}`,this._useDedicatedIndex&&(this._job_config.results_index_name=e)}get jobId(){return this._job_config.job_id}get datafeedId(){return this._datafeed_config.datafeed_id}set description(e){this._job_config.description=e}get description(){var e;return null!==(e=this._job_config.description)&&void 0!==e?e:""}get groups(){var e;return null!==(e=this._job_config.groups)&&void 0!==e?e:[]}set groups(e){this._job_config.groups=e}get calendars(){return this._calendars}set calendars(e){this._calendars=e}_initModelPlotConfig(){void 0===this._job_config.model_plot_config&&(this._job_config.model_plot_config={enabled:!1}),void 0!==this._job_config.model_plot_config&&void 0===this._job_config.model_plot_config.enabled&&(this._job_config.model_plot_config.enabled=!1),void 0!==this._job_config.model_plot_config&&void 0===this._job_config.model_plot_config.annotations_enabled&&(this._job_config.model_plot_config.annotations_enabled=!1)}set modelPlot(e){this._initModelPlotConfig(),this._job_config.model_plot_config.enabled=e}get modelPlot(){return void 0!==this._job_config.model_plot_config&&!0===this._job_config.model_plot_config.enabled}set modelChangeAnnotations(e){this._initModelPlotConfig(),this._job_config.model_plot_config.annotations_enabled=e}get modelChangeAnnotations(){var e;return!0===(null===(e=this._job_config.model_plot_config)||void 0===e?void 0:e.annotations_enabled)}set useDedicatedIndex(e){this._useDedicatedIndex=e,e?void 0===this._job_config.results_index_name&&(this._job_config.results_index_name=this._job_config.job_id):delete this._job_config.results_index_name}get useDedicatedIndex(){return this._useDedicatedIndex}set modelMemoryLimit(e){null!==e?this._job_config.analysis_limits={model_memory_limit:e}:delete this._job_config.analysis_limits}get modelMemoryLimit(){return this._job_config.analysis_limits&&void 0!==this._job_config.analysis_limits.model_memory_limit?this._job_config.analysis_limits.model_memory_limit:null}set summaryCountFieldName(e){null!==e?this._job_config.analysis_config.summary_count_field_name=e:delete this._job_config.analysis_config.summary_count_field_name}get summaryCountFieldName(){return this._job_config.analysis_config.summary_count_field_name||null}set categorizationFieldName(e){null!==e?this._job_config.analysis_config.categorization_field_name=e:delete this._job_config.analysis_config.categorization_field_name}get categorizationFieldName(){return this._job_config.analysis_config.categorization_field_name||null}addCategorizationFilter(e){void 0===this._job_config.analysis_config.categorization_filters&&(this._job_config.analysis_config.categorization_filters=[]);const t=this._job_config.analysis_config.categorization_filters;!1===t.includes(e)&&t.push(e)}removeCategorizationFilter(e){const t=this._job_config.analysis_config.categorization_filters;if(void 0!==t){const a=t.indexOf(e);-1!==a&&t.splice(a,1),0===t.length&&this.removeCategorizationFilters()}}removeCategorizationFilters(){delete this._job_config.analysis_config.categorization_filters}get categorizationFilters(){return this._job_config.analysis_config.categorization_filters||null}get timeFieldName(){return this._job_config.data_description.time_field}set timeFieldName(e){this._job_config.data_description.time_field=e}get sparseData(){return this._sparseData}set sparseData(e){this._sparseData=e,this._updateSparseDataDetectors()}_updateSparseDataDetectors(){this._detectors.forEach(((e,t)=>{if(void 0!==this._aggs[t])switch(this._aggs[t].id){case la.n.COUNT:e.function=this._sparseData?la.n.NON_ZERO_COUNT:la.n.COUNT;break;case la.n.HIGH_COUNT:e.function=this._sparseData?la.n.HIGH_NON_ZERO_COUNT:la.n.HIGH_COUNT;break;case la.n.LOW_COUNT:e.function=this._sparseData?la.n.LOW_NON_ZERO_COUNT:la.n.LOW_COUNT;break;case la.n.SUM:e.function=this._sparseData?la.n.NON_NULL_SUM:la.n.SUM;break;case la.n.HIGH_SUM:e.function=this._sparseData?la.n.HIGH_NON_NULL_SUM:la.n.HIGH_SUM;break;case la.n.LOW_SUM:e.function=this._sparseData?la.n.LOW_NON_NULL_SUM:la.n.LOW_SUM}}))}async _updateCalendars(){if(0!==this._calendars.length)for(const e of this._calendars)await Ze.assignNewJobId(e,this.jobId)}setTimeRange(e,t){this._start=e,this._end=t}get start(){return this._start}get end(){return this._end}get query(){return this._datafeed_config.query}set query(e){this._datafeed_config.query=e}get queryDelay(){return this._datafeed_config.query_delay||null}set queryDelay(e){null!==e?this._datafeed_config.query_delay=e:delete this._datafeed_config.query_delay}get frequency(){return this._datafeed_config.frequency||null}set frequency(e){null!==e?this._datafeed_config.frequency=e:delete this._datafeed_config.frequency}get scrollSize(){return this._datafeed_config.scroll_size||null}set scrollSize(e){null!==e?this._datafeed_config.scroll_size=e:delete this._datafeed_config.scroll_size}get indices(){return this._datafeed_config.indices}set indices(e){this._datafeed_config.indices=e}get ignoreUnavailable(){var e;return!(null===(e=this._datafeed_config.indices_options)||void 0===e||!e.ignore_unavailable)}set ignoreUnavailable(e){!0===e?(void 0===this._datafeed_config.indices_options&&(this._datafeed_config.indices_options={}),this._datafeed_config.indices_options.ignore_unavailable=!0):void 0!==this._datafeed_config.indices_options&&(delete this._datafeed_config.indices_options.ignore_unavailable,0===Object.keys(this._datafeed_config.indices_options).length&&delete this._datafeed_config.indices_options)}get scriptFields(){return this._scriptFields}get runtimeMappings(){return this._runtimeMappings}get runtimeFields(){return this._runtimeFields}get aggregationFields(){return this._aggregationFields}get additionalFields(){return[...this._scriptFields,...this._runtimeFields,...this._aggregationFields]}get subscribers(){return this._subscribers}async createAndStartJob(){try{return await this.createJob(),await this.createDatafeed(),await this.startDatafeed()}catch(e){throw e}}async createJob(){try{const{success:e,resp:t}=await Ge.a.saveNewJob(this._job_config);if(await this._updateCalendars(),!0===e)return t;throw t}catch(e){throw e}}async createDatafeed(){try{const e=this._getDatafeedWithFilteredRuntimeMappings();return await Ge.a.saveNewDatafeed(e,this._job_config.job_id)}catch(e){throw e}}async startDatafeed(){const e=new job_runner_JobRunner(this);return await e.startDatafeed(),e}_getDatafeedWithFilteredRuntimeMappings(){if(!1===this._filterRuntimeMappingsOnSave)return this._datafeed_config;const{runtime_mappings:e}=va(this._job_config,this._datafeed_config);return{...this._datafeed_config,runtime_mappings:Object.keys(e).length>0?e:void 0}}subscribeToProgress(e){this._subscribers.push(e)}get jobConfig(){return this._job_config}get datafeedConfig(){return this._datafeed_config}get stopAllRefreshPolls(){return this._stopAllRefreshPolls}forceStopRefreshPolls(){this._stopAllRefreshPolls.stop=!0}_setCustomSetting(e,t){null===t?void 0!==this._job_config.custom_settings&&void 0!==this._job_config.custom_settings[e]&&(delete this._job_config.custom_settings[e],0===Object.keys(this._job_config.custom_settings).length&&delete this._job_config.custom_settings):void 0===this._job_config.custom_settings?this._job_config.custom_settings={[e]:t}:this._job_config.custom_settings[e]=t}_getCustomSetting(e){return void 0!==this._job_config.custom_settings&&void 0!==this._job_config.custom_settings[e]?this._job_config.custom_settings[e]:null}set createdBy(e){this._setCustomSetting("created_by",e)}get createdBy(){return this._getCustomSetting("created_by")}set customUrls(e){this._setCustomSetting("custom_urls",e)}get customUrls(){return this._getCustomSetting("custom_urls")}get formattedJobJson(){return JSON.stringify(this._job_config,null,2)}get formattedDatafeedJson(){return JSON.stringify(this._datafeed_config,null,2)}set filterRuntimeMappingsOnSave(e){this._filterRuntimeMappingsOnSave=e}get filterRuntimeMappingsOnSave(){return this._filterRuntimeMappingsOnSave}_initPerPartitionCategorization(){var e,t;void 0===this._job_config.analysis_config.per_partition_categorization&&(this._job_config.analysis_config.per_partition_categorization={}),void 0===(null===(e=this._job_config.analysis_config.per_partition_categorization)||void 0===e?void 0:e.enabled)&&(this._job_config.analysis_config.per_partition_categorization.enabled=!1),void 0===(null===(t=this._job_config.analysis_config.per_partition_categorization)||void 0===t?void 0:t.stop_on_warn)&&(this._job_config.analysis_config.per_partition_categorization.stop_on_warn=!1)}get perPartitionCategorization(){var e;return!0===(null===(e=this._job_config.analysis_config.per_partition_categorization)||void 0===e?void 0:e.enabled)}set perPartitionCategorization(e){this._initPerPartitionCategorization(),this._job_config.analysis_config.per_partition_categorization.enabled=e}get perPartitionStopOnWarn(){var e;return!0===(null===(e=this._job_config.analysis_config.per_partition_categorization)||void 0===e?void 0:e.stop_on_warn)}set perPartitionStopOnWarn(e){this._initPerPartitionCategorization(),this._job_config.analysis_config.per_partition_categorization.stop_on_warn=e}_extractRuntimeMappings(){const e=this._indexPattern.toSpec().runtimeFieldMap;void 0!==e&&(void 0===this._datafeed_config.runtime_mappings&&(this._datafeed_config.runtime_mappings={}),Object.entries(e).forEach((([e,t])=>{this._datafeed_config.runtime_mappings[e]=t}))),this._populateRuntimeFields()}_populateRuntimeFields(){var e;if(this._runtimeFields=[],this._runtimeMappings=null!==(e=this._datafeed_config.runtime_mappings)&&void 0!==e?e:null,null!==this._runtimeMappings){const e=Object.entries(this._runtimeMappings).map((([e,t])=>({id:e,name:e,type:Array.isArray(t)?t[0].type:t.type,aggregatable:!0,counter:!1,aggs:[],runtimeField:t}))),t=Object(Ue.cloneDeep)([...la.I,...la.J]);this._runtimeFields=Object(fa.b)(e,t,{}).fields}}_populateScriptFields(){this._scriptFields=[],void 0!==this._datafeed_config.script_fields&&(this._scriptFields=Object.keys(this._datafeed_config.script_fields).map((e=>({id:e,name:e,type:ma.a.KEYWORD,aggregatable:!0,counter:!1}))))}async autoSetTimeRange(e=!0){const{start:t,end:a}=await Je.ml.getTimeFieldRange({index:this._indexPatternTitle,timeFieldName:this.timeFieldName,query:e?Object(ba.c)(this.query):this.query,runtimeMappings:this.datafeedConfig.runtime_mappings,indicesOptions:this.datafeedConfig.indices_options});this.setTimeRange(t,a)}_overrideConfigs(e,t){this._job_config=e,this._datafeed_config=t,this._detectors=this._job_config.analysis_config.detectors,this._influencers=this._job_config.analysis_config.influencers,void 0===this._job_config.groups&&(this._job_config.groups=[]),void 0!==this._job_config.analysis_config.influencers&&this._job_config.analysis_config.influencers.forEach((e=>this.addInfluencer(e))),void 0!==this._job_config.results_index_name&&this._job_config.results_index_name!==ja.h&&(this.useDedicatedIndex=!0),this._populateScriptFields(),this._populateRuntimeFields(),this._aggregationFields=[];const a=Object(Ea.b)(this._datafeed_config);if(void 0!==a){const e=Object(wa.a)(a);if(void 0!==e&&void 0!==a[e]){const t=a[e];Object(xa.c)(t,this._aggregationFields)}}}}class single_metric_job_creator_SingleMetricJobCreator extends job_creator_JobCreator{constructor(e,t,a){super(e,t,a),Ve()(this,"_type",ja.f.SINGLE_METRIC),this.createdBy=ja.a.SINGLE_METRIC,this._wizardInitialized$.next(!0)}setDetector(e,t){const a=Object(ga.a)(e,t);0===this._detectors.length?this._addDetector(a,e,t):this._editDetector(a,e,t,0),this._createDatafeedAggregations()}set bucketSpan(e){this._job_config.analysis_config.bucket_span=e,this._setBucketSpanMs(e),this._createDatafeedAggregations()}get bucketSpan(){return this._job_config.analysis_config.bucket_span}_createDatafeedAggregations(){if(this._detectors.length&&"string"==typeof this._job_config.analysis_config.bucket_span&&this._aggs.length>0){var e;if(delete this._job_config.analysis_config.summary_count_field_name,delete this._datafeed_config.aggregations,(null===(e=this._fields[0])||void 0===e?void 0:e.name)===la.a)return;const t=this._aggs[0].dslName,a=this._job_config.data_description.time_field,i=Object(Ke.a)(this._job_config.analysis_config.bucket_span,!0);if(null===i)return;const n=1e3*i.asSeconds();let s=null;switch(t){case la.b.COUNT:this._job_config.analysis_config.summary_count_field_name=la.a,this._datafeed_config.aggregations={buckets:{date_histogram:{field:a,fixed_interval:`${n}ms`},aggregations:{[a]:{max:{field:a}}}}};break;case la.b.AVG:case la.b.SUM:case la.b.MIN:case la.b.MAX:if(s=this._fields[0],null!==s){const e=s.name;this._job_config.analysis_config.summary_count_field_name=la.a,this._datafeed_config.aggregations={buckets:{date_histogram:{field:a,fixed_interval:.1*n+"ms"},aggregations:{[e]:{[t]:{field:e}},[a]:{max:{field:a}}}}}}break;case la.b.CARDINALITY:if(s=this._fields[0],null!==s){const e=s.name;this._job_config.analysis_config.summary_count_field_name=`dc_${e}`,this._datafeed_config.aggregations={buckets:{date_histogram:{field:a,fixed_interval:`${n}ms`},aggregations:{[a]:{max:{field:a}},[this._job_config.analysis_config.summary_count_field_name]:{[t]:{field:e}}}}};const i=this._detectors[0];i.function=la.n.NON_ZERO_COUNT,i.detector_description=`${t} (${e})`,delete i.field_name}}}}get aggFieldPair(){return 0===this._aggs.length?null:{agg:this._aggs[0],field:this._fields[0]}}cloneFromExistingJob(e,t){this._overrideConfigs(e,t),this.createdBy=ja.a.SINGLE_METRIC,this._sparseData=Object(xa.k)(e,t);const a=Object(xa.j)(e,t,this.additionalFields,!1);this.removeAllDetectors();const i=a[0];a.length&&null!==i.agg&&null!==i.field&&this.setDetector(i.agg,i.field)}}class multi_metric_job_creator_MultiMetricJobCreator extends job_creator_JobCreator{constructor(e,t,a){super(e,t,a),Ve()(this,"_splitField",null),Ve()(this,"_type",ja.f.MULTI_METRIC),this.createdBy=ja.a.MULTI_METRIC,this._wizardInitialized$.next(!0)}setSplitField(e){if(this._splitField=e,null===this._splitField)this.removeSplitField();else for(let e=0;e{delete e.partition_field_name}))}get splitField(){return this._splitField}addDetector(e,t){const a=this._createDetector(e,t);this._addDetector(a,e,t)}editDetector(e,t,a){const i=this._createDetector(e,t);this._editDetector(i,e,t,a)}_createDetector(e,t){const a=Object(ga.a)(e,t);return null!==this._splitField&&(a.partition_field_name=this._splitField.id),a}removeDetector(e){this._removeDetector(e)}get aggFieldPairs(){return this.detectors.map(((e,t)=>({field:this._fields[t],agg:this._aggs[t]})))}cloneFromExistingJob(e,t){this._overrideConfigs(e,t),this.createdBy=ja.a.MULTI_METRIC,this._sparseData=Object(xa.k)(e,t);const a=Object(xa.j)(e,t,this.additionalFields,!1);void 0!==t.aggregations&&(delete t.aggregations,delete e.analysis_config.summary_count_field_name),this.removeAllDetectors(),a.forEach(((e,t)=>{const i=a[t];null!==i.agg&&null!==i.field&&this.addDetector(i.agg,i.field)})),a.length&&null!==a[0].partitionField&&this.setSplitField(a[0].partitionField)}}class population_job_creator_PopulationJobCreator extends job_creator_JobCreator{constructor(e,t,a){super(e,t,a),Ve()(this,"_populatonField",null),Ve()(this,"_byFields",[]),Ve()(this,"_type",ja.f.POPULATION),this.createdBy=ja.a.POPULATION,this._wizardInitialized$.next(!0)}setByField(e,t){null===e?this.removeByField(t):void 0!==this._detectors[t]&&(this._byFields[t]=e,this._detectors[t].by_field_name=e.id)}removeByField(e){void 0!==this._detectors[e]&&(this._byFields[e]=null,delete this._detectors[e].by_field_name)}getByField(e){return void 0===this._byFields[e]?null:this._byFields[e]}setPopulationField(e){if(this._populatonField=e,null===this._populatonField)this.removePopulationField();else for(let e=0;e{delete e.over_field_name}))}get populationField(){return this._populatonField}addDetector(e,t){const a=this._createDetector(e,t);this._addDetector(a,e,t),this._byFields.push(null)}editDetector(e,t,a){const i=this._createDetector(e,t),n=this._byFields[a];null!=n&&(i.by_field_name=n.id),this._editDetector(i,e,t,a)}_createDetector(e,t){const a=Object(ga.a)(e,t);return null!==this._populatonField&&(a.over_field_name=this._populatonField.id),a}removeDetector(e){this._removeDetector(e),this._byFields.splice(e,1)}get aggFieldPairs(){return this.detectors.map(((e,t)=>({field:this._fields[t],agg:this._aggs[t],by:{field:this._byFields[t],value:null}})))}cloneFromExistingJob(e,t){this._overrideConfigs(e,t),this.createdBy=ja.a.POPULATION;const a=Object(xa.j)(e,t,this.additionalFields,!1);this.removeAllDetectors(),a.length&&null!==a[0].overField&&this.setPopulationField(a[0].overField),a.forEach(((e,t)=>{const i=a[t];null!==i.agg&&null!==i.field&&(this.addDetector(i.agg,i.field),null!==i.byField&&this.setByField(i.byField,t))}))}}var Ma=a(139);class advanced_job_creator_AdvancedJobCreator extends job_creator_JobCreator{constructor(e,t,a){super(e,t,a),Ve()(this,"_type",ja.f.ADVANCED),Ve()(this,"_richDetectors",[]),Ve()(this,"_queryString",void 0),this._queryString=JSON.stringify(this._datafeed_config.query),this._wizardInitialized$.next(!0)}addDetector(e,t,a,i,n,s,o,r){const{detector:l,richDetector:c}=this._createDetector(e,t,a,i,n,s,o,null,r);this._addDetector(l,e,t),this._richDetectors.push(c)}editDetector(e,t,a,i,n,s,o,r,l){const c=void 0!==this._detectors[r]&&this._detectors[r].custom_rules||null,{detector:d,richDetector:u}=this._createDetector(e,t,a,i,n,s,o,c,l);this._editDetector(d,e,t,r),void 0!==this._richDetectors[r]&&(this._richDetectors[r]=u)}_createDetector(e,t,a,i,n,s,o,r,l){const c=Object(ga.a)(e,t);return null!==a&&(c.by_field_name=a.id),null!==i&&(c.over_field_name=i.id),null!==n&&(c.partition_field_name=n.id),null!==s&&(c.exclude_frequent=s),null!==o&&(c.detector_description=o),null!==r&&(c.custom_rules=r),null!==l&&(c.use_null=l),{detector:c,richDetector:{agg:e,field:t,byField:a,overField:i,partitionField:n,excludeFrequent:s,description:o,customRules:r,useNull:l}}}removeDetector(e){this._removeDetector(e),this._richDetectors.splice(e,1)}get richDetectors(){return this._richDetectors}get queryString(){return this._queryString}set queryString(e){this._queryString=e}get isValidQueryString(){return Object(Ma.c)(this._queryString)}cloneFromExistingJob(e,t){this._overrideConfigs(e,t);const a=Object(xa.j)(e,t,this.additionalFields,!0),i=this._detectors.map((e=>e.custom_rules));this.removeAllDetectors(),this._richDetectors.length=0,a.forEach(((e,t)=>{const i=a[t];null!==i.agg&&null!==i.field&&this.addDetector(i.agg,i.field,i.byField,i.overField,i.partitionField,i.excludeFrequent,i.description,i.useNull)})),i.forEach(((e,t)=>{void 0!==e&&(this._detectors[t].custom_rules=e)}))}}let Sa,_a;!function(e){e.VALID="valid",e.PARTIALLY_VALID="partially_valid",e.INVALID="invalid"}(Sa||(Sa={})),function(e){e[e.NO_EXAMPLES=0]="NO_EXAMPLES",e[e.FAILED_TO_TOKENIZE=1]="FAILED_TO_TOKENIZE",e[e.TOO_MANY_TOKENS=2]="TOO_MANY_TOKENS",e[e.TOKEN_COUNT=3]="TOKEN_COUNT",e[e.MEDIAN_LINE_LENGTH=4]="MEDIAN_LINE_LENGTH",e[e.NULL_VALUES=5]="NULL_VALUES",e[e.INSUFFICIENT_PRIVILEGES=6]="INSUFFICIENT_PRIVILEGES"}(_a||(_a={}));const Ta={[_a.NO_EXAMPLES]:u.i18n.translate("xpack.ml.models.jobService.categorization.messages.validNoDataFound",{defaultMessage:"Examples were successfully loaded."}),[_a.FAILED_TO_TOKENIZE]:u.i18n.translate("xpack.ml.models.jobService.categorization.messages.validFailureToGetTokens",{defaultMessage:"The loaded examples were tokenized successfully."}),[_a.TOKEN_COUNT]:u.i18n.translate("xpack.ml.models.jobService.categorization.messages.validTokenLength",{defaultMessage:"More than {tokenCount} tokens per example were found in over {percentage}% of the loaded examples.",values:{percentage:Math.floor(75),tokenCount:3}}),[_a.MEDIAN_LINE_LENGTH]:u.i18n.translate("xpack.ml.models.jobService.categorization.messages.validMedianLineLength",{defaultMessage:"The median line length of the loaded examples was less than {medianCharCount} characters.",values:{medianCharCount:400}}),[_a.NULL_VALUES]:u.i18n.translate("xpack.ml.models.jobService.categorization.messages.validNullValues",{defaultMessage:"Less than {percentage}% of the loaded examples were null.",values:{percentage:Math.floor(25)}}),[_a.TOO_MANY_TOKENS]:u.i18n.translate("xpack.ml.models.jobService.categorization.messages.validTooManyTokens",{defaultMessage:"Less than 10000 tokens were found in total in the loaded examples."}),[_a.INSUFFICIENT_PRIVILEGES]:u.i18n.translate("xpack.ml.models.jobService.categorization.messages.validUserPrivileges",{defaultMessage:"The user has sufficient privileges to perform the checks."})},Ca={time:0,actual:0,modelUpper:0,modelLower:0};class results_loader_ResultsLoader{constructor(e,t,a){Ve()(this,"_results$",void 0),Ve()(this,"_resultsSearchRunning",!1),Ve()(this,"_jobCreator",void 0),Ve()(this,"_chartInterval",void 0),Ve()(this,"_lastModelTimeStamp",0),Ve()(this,"_lastResultsTimeout",null),Ve()(this,"_chartLoader",void 0),Ve()(this,"_results",{progress:0,model:[],anomalies:[]}),Ve()(this,"_detectorSplitFieldFilters",null),Ve()(this,"_splitFieldFiltersLoaded",!1),Ve()(this,"progressSubscriber",(async e=>{!1===this._resultsSearchRunning&&(e-this._results.progress>5||100===e)&&(!1===this._splitFieldFiltersLoaded&&(this._splitFieldFiltersLoaded=!0,await this._populateDetectorSplitFieldFilters()),this._updateData(e,!1),100===e&&(clearTimeout(this._lastResultsTimeout),this._lastResultsTimeout=setTimeout((()=>{this._updateData(e,!0)}),500)))})),this._jobCreator=e,this._chartInterval=t,this._results$=new c.BehaviorSubject(this._results),this._chartLoader=a,e.subscribeToProgress(this.progressSubscriber)}async _updateData(e,t){this._resultsSearchRunning=!0,!0===t&&this._clearResults(),this._results.progress=e;const a=this._jobCreator.type===ja.f.SINGLE_METRIC?()=>this._loadJobAnomalyData(0):()=>this._loadDetectorsAnomalyData(),[i,n]=await Promise.all([this._loadModelData(0),a()]);this._results.model=i,this._results.anomalies=n,this._resultsSearchRunning=!1,this._results$.next(this._results)}get results$(){return this._results$}subscribeToResults(e){return this._results$.subscribe(e)}get progress(){return this._results.progress}_clearResults(){this._results.model={},this._results.anomalies={},this._results.progress=0,this._lastModelTimeStamp=0}async _loadModelData(e){if(!1===this._jobCreator.modelPlot)return[];const t=this._jobCreator.getAggregation(e);if(null===t)return{[e]:[Ca]};const a=await Object(c.lastValueFrom)(ca.mlResultsService.getModelPlotOutput(this._jobCreator.jobId,e,[],this._lastModelTimeStamp,this._jobCreator.end,this._chartInterval.getInterval().asMilliseconds(),t.mlModelPlotAgg));return this._createModel(a,e)}_createModel({results:e},t){void 0===this._results.model[t]&&(this._results.model[t]=[]);const a=this._jobCreator.aggregations[t].dslName,i=a===la.b.COUNT||a===la.b.CARDINALITY?this._calculateModelScale():1,n=Object.entries(e).map((([e,{actual:t,modelLower:a,modelUpper:n}])=>({time:+e,actual:t,modelUpper:(null===n?0:n)*i,modelLower:(null===a?0:a)*i})));if(n.length>10){this._lastModelTimeStamp=n[n.length-5].time;for(let e=0;e<5;e++)this._results.model[t].pop()}return{[t]:this._results.model[t].concat(n)}}async _loadJobAnomalyData(e){const t=(await ca.mlResultsService.getScoresByBucket([this._jobCreator.jobId],this._jobCreator.start,this._jobCreator.end,this._chartInterval.getInterval().asMilliseconds(),1)).results[this._jobCreator.jobId];if(void 0===t)return[];const a={};return a[0]=Object.entries(t).map((([e,t])=>({time:+e,value:t,severity:Object(la.B)(t)}))),a}async _loadDetectorsAnomalyData(){const e=await(t=this._jobCreator.jobId,a=this._jobCreator.start,i=this._jobCreator.end,n=this._chartInterval.getInterval().asMilliseconds(),s=this._detectorSplitFieldFilters,new Promise(((e,o)=>{const r={success:!0,results:{},totalResults:0};let l="job_id: "+t;s&&void 0!==s.value&&(l+=` AND ${Object(We.c)(s.name)}:`,l+=`"${String(s.value).replace(/\\/g,"\\\\")}"`),Je.ml.results.anomalySearch({body:{size:0,query:{bool:{filter:[{query_string:{query:"result_type:record"}},{bool:{must:[{range:{timestamp:{gte:a,lte:i,format:"epoch_millis"}}},{query_string:{query:l}}]}}]}},aggs:{detector_index:{terms:{field:"detector_index",order:{recordScore:"desc"}},aggs:{recordScore:{max:{field:"record_score"}},byTime:{date_histogram:{field:"timestamp",fixed_interval:`${n}ms`,min_doc_count:1,extended_bounds:{min:a,max:i}},aggs:{recordScore:{max:{field:"record_score"}}}}}}}}},[t]).then((t=>{Object(Ue.get)(t,["aggregations","detector_index","buckets"],[]).forEach((e=>{const t=[],a=+e.key,i=Object(Ue.get)(e,["byTime","buckets"],[]);for(let e=0;e{o(e)}))})));var t,a,i,n,s;const o={};return Object.entries(e.results).forEach((([e,t])=>{o[+e]=t.map((e=>({...e,severity:Object(la.B)(e.value)})))})),o}async _populateDetectorSplitFieldFilters(){if(Fa(this._jobCreator)&&null!==this._jobCreator.splitField){const e=await this._chartLoader.loadFieldExampleValues(this._jobCreator.splitField,this._jobCreator.runtimeMappings,this._jobCreator.datafeedConfig.indices_options);e.length>0&&(this._detectorSplitFieldFilters={name:this._jobCreator.splitField.name,value:e[0]})}else this._detectorSplitFieldFilters=null}_calculateModelScale(){const e=Object(Ke.a)(this._jobCreator.bucketSpan),t=null!==e?e.asMilliseconds():0;return this._chartInterval.getInterval().asMilliseconds()/t}}class categorization_examples_loader_CategorizationExamplesLoader{constructor(e,t,a){Ve()(this,"_jobCreator",void 0),Ve()(this,"_indexPatternTitle",""),Ve()(this,"_timeFieldName",""),Ve()(this,"_query",{}),this._jobCreator=e,this._indexPatternTitle=t.title,this._query=a,"string"==typeof t.timeFieldName&&(this._timeFieldName=t.timeFieldName)}async loadExamples(){var e;const t=this._jobCreator.categorizationAnalyzer,a=this._jobCreator.categorizationFieldName;return null===a?{examples:[],sampleSize:0,overallValidStatus:Sa.INVALID,validationChecks:[]}:await Je.ml.jobs.categorizationFieldExamples(this._indexPatternTitle,this._query,ja.g,a,this._timeFieldName,this._jobCreator.start,this._jobCreator.end,t,null!==(e=this._jobCreator.runtimeMappings)&&void 0!==e?e:void 0,this._jobCreator.datafeedConfig.indices_options)}}class categorization_job_creator_CategorizationJobCreator extends job_creator_JobCreator{constructor(e,t,a){super(e,t,a),Ve()(this,"_type",ja.f.CATEGORIZATION),Ve()(this,"_createCountDetector",(()=>{})),Ve()(this,"_createRareDetector",(()=>{})),Ve()(this,"_examplesLoader",void 0),Ve()(this,"_categoryFieldExamples",[]),Ve()(this,"_validationChecks",[]),Ve()(this,"_overallValidStatus",Sa.INVALID),Ve()(this,"_detectorType",la.n.COUNT),Ve()(this,"_categorizationAnalyzer",{}),Ve()(this,"_defaultCategorizationAnalyzer",void 0),Ve()(this,"_partitionFieldName",null),Ve()(this,"_ccsVersionFailure",!1),this.createdBy=ja.a.CATEGORIZATION,this._examplesLoader=new categorization_examples_loader_CategorizationExamplesLoader(this,e,a);const{anomaly_detectors:i}=Object(ie.c)();this._defaultCategorizationAnalyzer=i.categorization_analyzer||{}}setDefaultDetectorProperties(e,t,a){if(null===e||null===t||null===a)throw Error("event_rate field or count or rare aggregations missing");this._createCountDetector=()=>{this._createDetector(e,a)},this._createRareDetector=()=>{this._createDetector(t,a)}}_createDetector(e,t){const a=Object(ga.a)(e,t);a.by_field_name=la.H.id,this.perPartitionCategorization&&null!==this.categorizationPerPartitionField&&(a.partition_field_name=this.categorizationPerPartitionField),this._addDetector(a,e,la.H)}setDetectorType(e){this._detectorType=e,this.removeAllDetectors(),e===la.n.COUNT?(this._createCountDetector(),this.bucketSpan=ja.b):(this._createRareDetector(),this.bucketSpan=ja.e,this.modelPlot=!1)}set categorizationFieldName(e){null!==e?(this._job_config.analysis_config.categorization_field_name=e,this.setDetectorType(this._detectorType),this.addInfluencer(la.H.id)):(delete this._job_config.analysis_config.categorization_field_name,this._categoryFieldExamples=[],this._validationChecks=[],this._overallValidStatus=Sa.INVALID)}get categorizationFieldName(){return this._job_config.analysis_config.categorization_field_name||null}async loadCategorizationFieldExamples(){const{examples:e,sampleSize:t,overallValidStatus:a,validationChecks:i}=await this._examplesLoader.loadExamples(),n=null!=e?e:[];return this._categoryFieldExamples=n,this._validationChecks=i,this._overallValidStatus=a,this._ccsVersionFailure=this._checkCcsFailure(n,a,i),!0===this._ccsVersionFailure&&(this._overallValidStatus=Sa.VALID),this._wizardInitialized$.next(!0),{examples:n,sampleSize:t,overallValidStatus:a,validationChecks:i,ccsVersionFailure:this._ccsVersionFailure}}_checkCcsFailure(e,t,a){var i;return 0===e.length&&t===Sa.INVALID&&(null===(i=a[0])||void 0===i?void 0:i.id)===_a.NO_EXAMPLES&&Object(He.f)(this.indexPatternTitle)}get categoryFieldExamples(){return this._categoryFieldExamples}get validationChecks(){return this._validationChecks}get overallValidStatus(){return this._overallValidStatus}get selectedDetectorType(){return this._detectorType}set categorizationAnalyzer(e){this._categorizationAnalyzer=e,Object(Ue.isEqual)(this._categorizationAnalyzer,this._defaultCategorizationAnalyzer)?delete this._job_config.analysis_config.categorization_analyzer:this._job_config.analysis_config.categorization_analyzer=e}get categorizationAnalyzer(){return this._categorizationAnalyzer}get categorizationPerPartitionField(){return this._partitionFieldName}set categorizationPerPartitionField(e){null===e?(this._detectors.forEach((e=>{delete e.partition_field_name})),null!==this._partitionFieldName&&this.removeInfluencer(this._partitionFieldName),this._partitionFieldName=null):this._partitionFieldName!==e&&(null!==this._partitionFieldName&&this.removeInfluencer(this._partitionFieldName),this.addInfluencer(e),this._partitionFieldName=e,this._detectors.forEach((t=>{t.partition_field_name=e})))}get perPartitionCategorization(){var e;return!0===(null===(e=this._job_config.analysis_config.per_partition_categorization)||void 0===e?void 0:e.enabled)}set perPartitionCategorization(e){this._initPerPartitionCategorization(),this._job_config.analysis_config.per_partition_categorization.enabled=e,!1===e&&(this.categorizationPerPartitionField=null)}cloneFromExistingJob(e,t){this._overrideConfigs(e,t),this.createdBy=ja.a.CATEGORIZATION;const a=Object(xa.j)(e,t,this.additionalFields,!1)[0];if(void 0!==a&&null!==a.agg&&null!==a.field){const t=a.agg.id===la.n.COUNT?la.n.COUNT:la.n.RARE,i=e.analysis_config.bucket_span;this.setDetectorType(t),null!==a.partitionField&&(this.categorizationPerPartitionField=a.partitionField.id),this.bucketSpan=i}}}class rare_job_creator_RareJobCreator extends job_creator_JobCreator{constructor(e,t,a){super(e,t,a),Ve()(this,"_rareField",null),Ve()(this,"_populationField",null),Ve()(this,"_splitField",null),Ve()(this,"_type",ja.f.RARE),Ve()(this,"_rareInPopulation",!1),Ve()(this,"_frequentlyRare",!1),Ve()(this,"_rareAgg",void 0),Ve()(this,"_freqRareAgg",void 0),this.createdBy=ja.a.RARE,this._wizardInitialized$.next(!0),this._rareAgg={},this._freqRareAgg={}}setDefaultDetectorProperties(e,t){if(null===e||null===t)throw Error("rare or freq_rare aggregations missing");this._rareAgg=e,this._freqRareAgg=t}setRareField(e){if(this._rareField=e,null===e)return this.removePopulationField(),this.removeSplitField(),this._removeDetector(0),this._detectors.length=0,void(this._fields.length=0);const t=this._frequentlyRare?this._freqRareAgg:this._rareAgg,a={function:t.id};0===this._detectors.length?this._addDetector(a,t,e):this._editDetector(a,t,e,0),this._detectors[0].by_field_name=e.id}get rareField(){return this._rareField}get rareInPopulation(){return this._rareInPopulation}set rareInPopulation(e){this._rareInPopulation=e,!1===e&&this.removePopulationField()}get frequentlyRare(){return this._frequentlyRare}set frequentlyRare(e){if(this._frequentlyRare=e,this._detectors.length){const t=e?this._freqRareAgg:this._rareAgg;this._detectors[0].function=t.id,this._aggs[0]=t}}setPopulationField(e){if(this._populationField=e,null===this._populationField)this.removePopulationField();else for(let e=0;e{delete e.over_field_name}))}get populationField(){return this._populationField}setSplitField(e){if(this._splitField=e,null===this._splitField)this.removeSplitField();else for(let e=0;e{delete e.partition_field_name}))}get splitField(){return this._splitField}cloneFromExistingJob(e,t){this._overrideConfigs(e,t),this.createdBy=ja.a.RARE,this._sparseData=Object(xa.k)(e,t);const a=Object(xa.j)(e,t,this.additionalFields,!1);var i;this.removeSplitField(),this.removePopulationField(),this.removeAllDetectors(),a.length&&(this.setRareField(a[0].byField),this.frequentlyRare=(null===(i=a[0].agg)||void 0===i?void 0:i.id)===la.n.FREQ_RARE,null!==a[0].overField&&(this.setPopulationField(a[0].overField),this.rareInPopulation=!0),null!==a[0].partitionField&&this.setSplitField(a[0].partitionField))}}class geo_job_creator_GeoJobCreator extends job_creator_JobCreator{constructor(e,t,a){super(e,t,a),Ve()(this,"_geoField",null),Ve()(this,"_geoAgg",null),Ve()(this,"_splitField",null),Ve()(this,"_type",ja.f.GEO),this.createdBy=ja.a.GEO,this._wizardInitialized$.next(!0)}setDefaultDetectorProperties(e){if(null===e)throw Error("lat_long aggregations missing");this._geoAgg=e}get geoField(){return this._geoField}get geoAgg(){return this._geoAgg}setGeoField(e){if(this._geoField=e,null===e)return this.removeSplitField(),this._removeDetector(0),this._detectors.length=0,void(this._fields.length=0);const t=this._geoAgg;this.removeAllDetectors();const a=this._createDetector(t,e);this._addDetector(a,t,e)}setSplitField(e){if(this._splitField=e,null===this._splitField)this.removeSplitField();else for(let e=0;e{delete e.partition_field_name}))}get splitField(){return this._splitField}_createDetector(e,t){const a=Object(ga.a)(e,t);return null!==this._splitField&&(a.partition_field_name=this._splitField.id),a}get aggFieldPairs(){return this.detectors.map(((e,t)=>({field:this._fields[t],agg:this._aggs[t]})))}cloneFromExistingJob(e,t){this._overrideConfigs(e,t),this.createdBy=ja.a.GEO,this._sparseData=Object(xa.k)(e,t);const a=Object(xa.j)(e,t,this.additionalFields,!1);this.removeSplitField(),this.removeAllDetectors(),this.removeAllDetectors(),a.length&&(this.setGeoField(a[0].field),null!==a[0].partitionField&&this.setSplitField(a[0].partitionField))}}function ka(e){return e.type===ja.f.SINGLE_METRIC}function Fa(e){return e.type===ja.f.MULTI_METRIC}function Ia(e){return e.type===ja.f.POPULATION}function Da(e){return e.type===ja.f.ADVANCED}function Aa(e){return e.type===ja.f.CATEGORIZATION}function La(e){return e.type===ja.f.RARE}function Ra(e){return e.type===ja.f.GEO}var Na=a(136);function Pa(){const{euiTheme:e}=Object(Te.a)();return{LINE_COLOR:e.euiColorPrimary,MODEL_COLOR:e.euiColorPrimary,EVENT_RATE_COLOR:e.euiColorPrimary,EVENT_RATE_COLOR_WITH_ANOMALIES:e.euiColorLightShade}}const za={width:"100%",height:"300px",cols:1,intervalMs:0},Ba={line:{strokeWidth:2,visible:!0,opacity:1},border:{visible:!1,strokeWidth:0},point:{visible:!1,radius:2,strokeWidth:4,opacity:.5},area:{opacity:.25,visible:!1}};function Va(e,t){const a={...za,intervalMs:t.getInterval().asMilliseconds()};if(Ia(e)){const e=Object(Na.c)();e.setInterval("auto"),e.setBounds(t.getBounds()),a.intervalMs=e.getInterval().asMilliseconds()}return a.intervalMs2&&Fa(e)?(a.cols=3,a.height="150px",a.intervalMs=3*a.intervalMs):e.aggFieldPairs.length>1&&(a.cols=2,a.height="200px",a.intervalMs=2*a.intervalMs)),a}var Ja=a(223);function Ua(e){return{line:{stroke:Object(la.A)(e),strokeWidth:3,opacity:1}}}const Ga=({anomalyData:e})=>{const t=function(e){const t={critical:[],major:[],minor:[],warning:[],unknown:[],low:[]};return e.forEach((e=>{0!==e.value&&t[e.severity].push({dataValue:e.time})})),t}(void 0===e?[]:e);return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(ra.LineAnnotation,{id:"low",domainType:ra.AnnotationDomainType.XDomain,dataValues:t.low,style:Ua(la.g.LOW),hideTooltips:!0}),Object(h.jsx)(ra.LineAnnotation,{id:"warning",domainType:ra.AnnotationDomainType.XDomain,dataValues:t.warning,style:Ua(la.g.WARNING),hideTooltips:!0}),Object(h.jsx)(ra.LineAnnotation,{id:"minor",domainType:ra.AnnotationDomainType.XDomain,dataValues:t.minor,style:Ua(la.g.MINOR),hideTooltips:!0}),Object(h.jsx)(ra.LineAnnotation,{id:"major",domainType:ra.AnnotationDomainType.XDomain,dataValues:t.major,style:Ua(la.g.MAJOR),hideTooltips:!0}),Object(h.jsx)(ra.LineAnnotation,{id:"critical",domainType:ra.AnnotationDomainType.XDomain,dataValues:t.critical,style:Ua(la.g.CRITICAL),hideTooltips:!0}))},qa=({overlayKey:e,start:t,end:a,color:i,showMarker:n=!0})=>{const{euiTheme:o}=Object(Te.a)();return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(ra.RectAnnotation,{id:`rect_annotation_${e}`,zIndex:1,hideTooltips:!0,dataValues:[{coordinates:{x0:t,x1:a}}],style:{fill:i,strokeWidth:0}}),Object(h.jsx)(ra.LineAnnotation,{id:"annotation_1",domainType:ra.AnnotationDomainType.XDomain,dataValues:[{dataValue:t}],style:{line:{strokeWidth:1,opacity:0}},markerPosition:ra.Position.Bottom,hideTooltips:!0,marker:n?Object(h.jsx)(d.EuiIcon,{type:"arrowUp"}):void 0,markerBody:n?Object(h.jsx)("div",{style:{fontWeight:"normal",color:o.euiTextColor}},Object(ft.e)(t)):void 0}))};var $a={name:"ozz2hs",styles:".echContainer{overflow:visible;}"};const Wa=({eventRateChartData:e,anomalyData:t,height:a,width:i,showAxis:n,loading:s=!1,fadeChart:o,overlayRanges:r,onBrushEnd:l})=>{const{EVENT_RATE_COLOR_WITH_ANOMALIES:c,EVENT_RATE_COLOR:d}=Pa(),u=o?c:d,p=$a;return Object(h.jsx)("div",{style:{width:i,height:a},"data-test-subj":"mlEventRateChart "+(e.length?"withData":"empty")},Object(h.jsx)(Ja.a,{height:a,hasData:e.length>0,loading:s},Object(h.jsx)(ra.Chart,{css:void 0!==r?p:void 0},!0===n&&Object(h.jsx)(pa,null),Object(h.jsx)(ra.Tooltip,{type:ra.TooltipType.None}),Object(h.jsx)(ra.Settings,{onBrushEnd:l,theme:{scales:{histogramPadding:.2}}}),r&&r.map(((e,t)=>Object(h.jsx)(qa,{key:t,overlayKey:t,start:e.start,end:e.end,color:e.color,showMarker:e.showMarker}))),Object(h.jsx)(Ga,{anomalyData:t}),Object(h.jsx)(ra.HistogramBarSeries,{id:"event_rate",xScaleType:ra.ScaleType.Time,yScaleType:ra.ScaleType.Linear,xAccessor:"time",yAccessors:["value"],data:e,color:u}))))},Ha=({calendarEvents:e,setCalendarEvents:t,minSelectableTimeStamp:a,maxSelectableTimeStamp:i,eventRateData:o,anomalies:r,chartReady:l})=>{const c=bt()(i),p=bt()(a),{euiTheme:m}=Object(Te.a)(),b=Object(n.useCallback)((({x:i})=>{if(i&&2===i.length){const n=i[1]{const n=e[i];void 0===n?t([...e,{start:a,end:null,description:Qa(i)}]):(n.start=a,t([...e]))}),[e]),j=Object(n.useCallback)(((a,i)=>{const n=e[i];void 0===n?t([...e,{start:null,end:a,description:Qa(i)}]):(n.end=a,t([...e]))}),[e]),x=Object(n.useCallback)(((a,i)=>{const n=e[i];void 0!==n&&(n.description=a,t([...e]))}),[e]),v=Object(n.useCallback)((a=>{if(void 0!==e[a]){const i=[...e];i.splice(a,1),t(i)}}),[e]);return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"l"}),Object(h.jsx)("div",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.revertModelSnapshotFlyout.createCalendar.title",defaultMessage:"Select time range for calendar event."})),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(Ya,{eventRateData:o,anomalies:r,loading:!1===l,overlayRanges:e.filter(Xa).map((e=>({start:e.start.valueOf(),end:e.end.valueOf()}))),onBrushEnd:b,overlayColor:m.euiColorPrimary}),Object(h.jsx)(d.EuiSpacer,{size:"s"}),e.map(((e,t)=>{var a,i;return Object(h.jsx)(n.Fragment,{key:t},Object(h.jsx)(d.EuiPanel,{paddingSize:"s"},Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.revertModelSnapshotFlyout.createCalendar.fromLabel",{defaultMessage:"From"})},Object(h.jsx)(d.EuiDatePicker,{showTimeSelect:!0,selected:e.start,minDate:p,maxDate:null!==(a=e.end)&&void 0!==a?a:c,onChange:e=>f(e,t)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.revertModelSnapshotFlyout.createCalendar.toLabel",{defaultMessage:"To"})},Object(h.jsx)(d.EuiDatePicker,{showTimeSelect:!0,selected:e.end,minDate:null!==(i=e.start)&&void 0!==i?i:p,maxDate:c,onChange:e=>j(e,t)})))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,label:u.i18n.translate("xpack.ml.revertModelSnapshotFlyout.createCalendar.descriptionLabel",{defaultMessage:"Description"})},Object(h.jsx)(d.EuiFieldText,{fullWidth:!0,value:e.description,onChange:e=>x(e.target.value,t)}))))),Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{borderLeft:`1px solid ${m.euiColorLightShade}`,marginRight:"0px"}}),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonIcon,{style:{margin:"auto"},color:"danger",onClick:()=>v(t),iconType:"trash","aria-label":u.i18n.translate("xpack.ml.revertModelSnapshotFlyout.createCalendar.deleteLabel",{defaultMessage:"Delete event"})})))),Object(h.jsx)(d.EuiSpacer,{size:"m"}))})))},Ya=Object(n.memo)((({eventRateData:e,anomalies:t,loading:a,onBrushEnd:i,overlayRanges:n,overlayColor:s})=>Object(h.jsx)(Wa,{eventRateChartData:e,anomalyData:t,loading:a,height:"100px",width:"100%",fadeChart:!0,overlayRanges:n.map((e=>({start:e.start,end:e.end,color:s,showMarker:!1}))),onBrushEnd:i})),((e,t)=>e.overlayRanges.length===t.overlayRanges.length&&JSON.stringify(e.overlayRanges)===JSON.stringify(t.overlayRanges)));function Xa(e){return null!==e.start&&null!==e.end}function Qa(e){return u.i18n.translate("xpack.ml.revertModelSnapshotFlyout.createCalendar.defaultEventDescription",{defaultMessage:"Auto created event {index}",values:{index:e}})}const Ka=({snapshot:e,snapshots:t,job:a,closeFlyout:i,refresh:o})=>{const{toasts:r}=Object(Te.i)(),{loadAnomalyDataForJob:l,loadEventRateForJob:c}=Object(n.useMemo)((()=>{return e=ca.mlResultsService,{loadEventRateForJob:async function(t,a,i){const n=Math.max(Math.floor((t.data_counts.latest_record_timestamp-t.data_counts.earliest_record_timestamp)/i),a),s=await e.getEventRateData(t.datafeed_config.indices.join(),t.datafeed_config.query,t.data_description.time_field,t.data_counts.earliest_record_timestamp,t.data_counts.latest_record_timestamp,n,t.datafeed_config.runtime_mappings,t.datafeed_config.indices_options);if(void 0!==s.error)throw s.error;const o=Object.entries(s.results).map((([e,t])=>({time:+e,value:t})));return o.length&&o.push({time:o[o.length-1].time+n,value:0}),o},loadAnomalyDataForJob:async function(t,a,i){const n=Math.max(Math.floor((t.data_counts.latest_record_timestamp-t.data_counts.earliest_record_timestamp)/i),a),s=(await e.getScoresByBucket([t.job_id],t.data_counts.earliest_record_timestamp,t.data_counts.latest_record_timestamp,n,1)).results[t.job_id];if(void 0===s)return[];const o={};return o[0]=Object.entries(s).map((([e,t])=>({time:+e,value:t,severity:Object(la.B)(t)}))),o}};var e}),[]),[p,m]=Object(n.useState)(e),[b,f]=Object(n.useState)(!1),[j,x]=Object(n.useState)(!1),[v,y]=Object(n.useState)(!1),[O,E]=Object(n.useState)(!1),[w,M]=Object(n.useState)([]),[S,_]=Object(n.useState)(!0),[T,C]=Object(n.useState)([]),[k,F]=Object(n.useState)([]),[I,D]=Object(n.useState)(!1);Object(n.useEffect)((()=>{A()}),[p]),Object(n.useEffect)((()=>{const e=w.some((e=>""===e.description||null===e.end||null===e.start));_(!1===e);const t=[...new Map(w.map((e=>{var t,a;return[`${null===(t=e.start)||void 0===t?void 0:t.valueOf()}${null===(a=e.end)||void 0===a?void 0:a.valueOf()}`,e]}))).values()];t.length{const e=Object(Ke.a)(a.analysis_config.bucket_span).asMilliseconds(),t=await c(a,e,100),i=await l(a,e,100);C(t),void 0!==i[0]&&F(i[0]),D(!0)}),[a]);function L(){f(!1)}return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlyout,{onClose:i,hideCloseButton:!0,size:"m"},Object(h.jsx)(d.EuiFlyoutHeader,{hasBorder:!0},Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h5",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.revertModelSnapshotFlyout.title",defaultMessage:"Revert to model snapshot {ssId}",values:{ssId:p.snapshot_id}}))),Object(h.jsx)(d.EuiText,{size:"s"},Object(h.jsx)("p",null,p.description))),Object(h.jsx)(d.EuiFlyoutBody,null,!1,Object(h.jsx)(Wa,{eventRateChartData:T,anomalyData:k,loading:!1===I,height:"100px",width:"100%",fadeChart:!0,overlayRanges:[{start:p.latest_record_time_stamp,end:a.data_counts.latest_record_timestamp,color:"#ff0000"}]}),Object(h.jsx)(d.EuiSpacer,{size:"l"}),Object(h.jsx)(d.EuiSpacer,{size:"l"}),Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.newJob.wizard.revertModelSnapshotFlyout.warningCallout.title",{defaultMessage:"Anomaly data will be deleted"}),color:"warning",iconType:"warning"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.revertModelSnapshotFlyout.warningCallout.contents",defaultMessage:"All anomaly detection results after {date} will be deleted.",values:{date:Object(ft.e)(p.latest_record_time_stamp)}})),Object(h.jsx)(d.EuiHorizontalRule,{margin:"xl"}),Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,helpText:u.i18n.translate("xpack.ml.newJob.wizard.revertModelSnapshotFlyout.replaySwitchHelp",{defaultMessage:"Reopen job and replay analysis after the revert has been applied."})},Object(h.jsx)(d.EuiSwitch,{id:"replaySwitch",label:u.i18n.translate("xpack.ml.newJob.wizard.revertModelSnapshotFlyout.replaySwitchLabel",{defaultMessage:"Replay analysis"}),checked:j,onChange:e=>x(e.target.checked)})),j&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,helpText:u.i18n.translate("xpack.ml.newJob.wizard.revertModelSnapshotFlyout.realTimeSwitchHelp",{defaultMessage:"Job will continue to run until manually stopped. All new data added to the index will be analyzed."})},Object(h.jsx)(d.EuiSwitch,{id:"realTimeSwitch",label:u.i18n.translate("xpack.ml.newJob.wizard.revertModelSnapshotFlyout.realTimeSwitchLabel",{defaultMessage:"Run job in real time"}),checked:v,onChange:e=>y(e.target.checked)})),Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,helpText:u.i18n.translate("xpack.ml.newJob.wizard.revertModelSnapshotFlyout.createCalendarSwitchHelp",{defaultMessage:"Create a new calendar and event to skip over a period of time when analyzing the data."})},Object(h.jsx)(d.EuiSwitch,{id:"createCalendarSwitch",label:u.i18n.translate("xpack.ml.newJob.wizard.revertModelSnapshotFlyout.createCalendarSwitchLabel",{defaultMessage:"Create calendar to skip a range of time"}),checked:O,onChange:e=>E(e.target.checked)})),O&&Object(h.jsx)(Ha,{calendarEvents:w,setCalendarEvents:M,minSelectableTimeStamp:e.latest_record_time_stamp,maxSelectableTimeStamp:a.data_counts.latest_record_timestamp,eventRateData:T,anomalies:k,chartReady:I}))),Object(h.jsx)(d.EuiFlyoutFooter,null,Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{iconType:"cross",onClick:i,flush:"left"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.revertModelSnapshotFlyout.closeButton",defaultMessage:"Close"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!0}),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:function(){f(!0)},disabled:!0===O&&!1===S,fill:!0},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.revertModelSnapshotFlyout.saveButton",defaultMessage:"Apply"})))))),b&&Object(h.jsx)(d.EuiConfirmModal,{title:u.i18n.translate("xpack.ml.newJob.wizard.revertModelSnapshotFlyout.deleteTitle",{defaultMessage:"Apply snapshot revert"}),onCancel:L,onConfirm:async function(){const e=j&&!1===v?a.data_counts.latest_record_timestamp:void 0;try{const t=j&&O?w.filter(Za).map((e=>({start:e.start.valueOf(),end:e.end.valueOf(),description:e.description}))):void 0;Je.ml.jobs.revertModelSnapshot(a.job_id,p.snapshot_id,j,e,t).then((()=>{r.addSuccess(u.i18n.translate("xpack.ml.revertModelSnapshotFlyout.revertSuccessTitle",{defaultMessage:"Model snapshot revert successful"})),o()})).catch((e=>{const{displayErrorToast:t}=Object(qe.b)(r);t(e)})),L(),i()}catch(e){r.addError(new Error(e.body.message),{title:u.i18n.translate("xpack.ml.revertModelSnapshotFlyout.revertErrorTitle",{defaultMessage:"Model snapshot revert failed"})})}},cancelButtonText:u.i18n.translate("xpack.ml.newJob.wizard.revertModelSnapshotFlyout.cancelButton",{defaultMessage:"Cancel"}),confirmButtonText:u.i18n.translate("xpack.ml.newJob.wizard.revertModelSnapshotFlyout.deleteButton",{defaultMessage:"Apply"}),buttonColor:"danger",defaultFocusedButton:"confirm"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.revertModelSnapshotFlyout.modalBody",defaultMessage:"The snapshot revert will be carried out in the background and may take some time."})))};function Za(e){return null!==e.start&&null!==e.end}var ei=a(107),ti=a(35),ai=a(179);const ii=({messages:e,loading:t,error:a,refreshMessage:i,actionHandler:n})=>{const o=[{name:i?Object(h.jsx)(d.EuiToolTip,{content:u.i18n.translate("xpack.ml.jobMessages.refreshLabel",{defaultMessage:"Refresh"})},Object(h.jsx)(d.EuiButtonIcon,{onClick:Object(ai.a)((()=>{i()})),iconType:"refresh","aria-label":u.i18n.translate("xpack.ml.jobMessages.refreshAriaLabel",{defaultMessage:"Refresh"})})):"",render:e=>Object(h.jsx)(xt,{message:e}),width:`${ti.euiLightVars.euiSizeL}`},{field:"timestamp",name:u.i18n.translate("xpack.ml.jobMessages.timeLabel",{defaultMessage:"Time"}),render:ft.e,width:"120px",sortable:!0},{field:"node_name",name:u.i18n.translate("xpack.ml.jobMessages.nodeLabel",{defaultMessage:"Node"}),width:"150px"},{field:"message",name:u.i18n.translate("xpack.ml.jobMessages.messageLabel",{defaultMessage:"Message"}),width:"50%"}];return"function"==typeof n&&o.push({name:u.i18n.translate("xpack.ml.jobMessages.actionsLabel",{defaultMessage:"Actions"}),width:"10%",actions:[{render:e=>Object(h.jsx)(d.EuiToolTip,{content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobMessages.toggleInChartTooltipText",defaultMessage:"Toggle in chart"})},Object(h.jsx)(d.EuiButtonIcon,{size:"xs","aria-label":u.i18n.translate("xpack.ml.jobMessages.toggleInChartAriaLabel",{defaultMessage:"Toggle in chart"}),iconType:"visAreaStacked",onClick:()=>n(e)}))}]}),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiInMemoryTable,{items:e,columns:o,sorting:{sort:{field:"timestamp",direction:"desc"}},compressed:!0,loading:t,error:a,pagination:!0,"data-test-subj":"mlAnalyticsDetailsJobMessagesTable"}))},ni=s.a.memo((({jobId:e,start:t,end:a,actionHandler:i,refreshJobList:o,showClearButton:r})=>{const l=Object(Se.d)("canCreateJob"),[c,p]=Object(n.useState)([]),[m,b]=Object(n.useState)([]),[f,j]=Object(n.useState)(!1),[x,v]=Object(n.useState)(""),[y,O]=Object(n.useState)(!1),E=Object(qe.c)(),{jobs:{clearJobAuditMessages:w}}=Object(Te.c)(),M=async()=>{j(!0);try{const i=await Je.ml.jobs.jobAuditMessages({jobId:e,start:t,end:a});p(i.messages),b(i.notificationIndices),j(!1)}catch(e){j(!1),E.displayErrorToast(e,u.i18n.translate("xpack.ml.jobService.jobAuditMessagesErrorTitle",{defaultMessage:"Error loading job messages"})),v(Object(ei.b)(e))}},S=Object(n.useCallback)(M,[e]),_=Object(n.useCallback)((async()=>{O(!0);try{await w(e,m),O(!1),"function"==typeof o&&o()}catch(e){O(!1),E.displayErrorToast(e,u.i18n.translate("xpack.ml.jobMessages.clearJobAuditMessagesErrorTitle",{defaultMessage:"Error clearing job message warnings and errors"}))}}),[e,JSON.stringify(m)]);Object(n.useEffect)((()=>{M()}),[]);const T=0===m.length,C=Object(h.jsx)(d.EuiButton,{size:"s",isLoading:y,isDisabled:T,onClick:Object(ai.a)((()=>{_()})),"data-test-subj":"mlJobMessagesClearButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobMessages.clearMessagesLabel",defaultMessage:"Clear notifications"}));return Object(h.jsx)(s.a.Fragment,null,l&&r?Object(h.jsx)(d.EuiSpacer,null):null,Object(h.jsx)(d.EuiFlexGroup,{direction:"column"},l&&r?Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)("div",null,!0===T?Object(h.jsx)(d.EuiToolTip,{content:u.i18n.translate("xpack.ml.jobMessages.clearJobAuditMessagesDisabledTooltip",{defaultMessage:"Notification clearing not supported."})},C):Object(h.jsx)(d.EuiToolTip,{content:u.i18n.translate("xpack.ml.jobMessages.clearJobAuditMessagesTooltip",{defaultMessage:"Clears warning icon from jobs list for messages produced in the last 24 hours."})},C))):null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(ii,{refreshMessage:S,messages:c,loading:f,error:x,actionHandler:i}))))})),si=u.i18n.translate("xpack.ml.jobsList.datafeedChart.editQueryDelay.tooltipContent",{defaultMessage:"To edit the query delay, you must have permission to edit the datafeed and the datafeed cannot be running."}),oi=({datafeedId:e,queryDelay:t,isEnabled:a})=>{const[i,o]=Object(n.useState)(),[r,l]=Object(n.useState)(!1),{updateDatafeed:c}=Object(Te.c)(),{displaySuccessToast:p,displayErrorToast:m}=Object(qe.c)(),b=Object(n.useCallback)((async()=>{try{await c({datafeedId:e,datafeedConfig:{query_delay:i}}),p(u.i18n.translate("xpack.ml.jobsList.datafeedChart.editQueryDelay.changesSavedNotificationMessage",{defaultMessage:"Changes to query delay for {datafeedId} saved",values:{datafeedId:e}}))}catch(t){m(t,u.i18n.translate("xpack.ml.jobsList.datafeedChart.editQueryDelay.changesNotSavedNotificationMessage",{defaultMessage:"Could not save changes to query delay for {datafeedId}",values:{datafeedId:e}}))}l(!1)}),[e,i]),f=Object(h.jsx)(d.EuiButtonEmpty,{color:"primary",size:"xs",isDisabled:!1===a,onClick:()=>{l(!0)},iconType:"pencil"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.datafeedChart.queryDelayLinkLabel",defaultMessage:"Query delay: {queryDelay}",values:{queryDelay:i||t}})),j=Object(h.jsx)(d.EuiToolTip,{content:si},f);return Object(h.jsx)(s.a.Fragment,null,!1===r?!1===a?j:f:null,!0===r?Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.datafeedChart.queryDelayLabel",defaultMessage:"Query delay"})},Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"none",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFieldText,{value:i||t,placeholder:t,onChange:e=>{o(e.target.value)}})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"none",direction:"column"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{color:"primary",size:"xs",onClick:b},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.datafeedChart.applyQueryDelayLabel",defaultMessage:"Apply"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{color:"text",size:"xs",onClick:()=>l(!1)},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.datafeedChart.cancelQueryDelayUpdateLabel",defaultMessage:"Cancel"}))))))):null)},ri="forward",li=["100%",380],ci=(u.i18n.translate("xpack.ml.jobsList.datafeedChart.chartTabName",{defaultMessage:"Chart"}),u.i18n.translate("xpack.ml.jobsList.datafeedChart.messagesTabName",{defaultMessage:"Messages"}),(e,t)=>{const a=new Map(e);return t.reduce(((e,t)=>{var i;return e.push(a.has(t[0])?[t[0],null!==(i=a.get(t[0]))&&void 0!==i?i:null]:[t[0],null]),e}),[])}),di=Object(ra.timeFormatter)("MM-DD HH:mm:ss"),ui=u.i18n.translate("xpack.ml.jobsList.datafeedChart.revertSnapshotMessage",{defaultMessage:"Click to revert to this model snapshot."}),pi=u.i18n.translate("xpack.ml.jobsList.datafeedChart.notAvailableMessage",{defaultMessage:"N/A"});function mi(e){return e.header=di(e.dataValue),e}const bi=({details:e,datum:t})=>Object(h.jsx)("div",{className:"echAnnotation__tooltip"},Object(h.jsx)("p",{className:"echAnnotation__header"},di(t.header)),Object(h.jsx)("div",{className:"echAnnotation__details"},e)),fi=({jobId:e,end:t,onClose:a,onModelSnapshotAnnotationClick:i})=>{const[o,r]=Object(n.useState)({datafeedConfig:void 0,bucketSpan:void 0,isInitialized:!1,modelSnapshotData:[]}),[l,c]=Object(n.useState)(bt()(t)),[p,b]=Object(n.useState)(!1),[f,j]=Object(n.useState)([]),[x,v]=Object(n.useState)({rect:[],line:[]}),[y,O]=Object(n.useState)([]),[E,w]=Object(n.useState)([]),[M,S]=Object(n.useState)([]),[_,T]=Object(n.useState)(!0),[C,k]=Object(n.useState)(!1),[F,I]=Object(n.useState)(),D=Object(n.useMemo)((()=>Object(Se.d)("canUpdateDatafeed")),[]),A=Object(n.useMemo)((()=>Object(Se.d)("canCreateJob")),[]),L=Object(n.useMemo)((()=>Object(Se.d)("canStartStopDatafeed")),[]),{getModelSnapshots:R,results:{getDatafeedResultChartData:N}}=Object(Te.c)(),{displayErrorToast:P}=Object(qe.c)(),{euiTheme:z}=Object(Te.a)(),B=e=>{if(void 0===o.bucketSpan)return;const t=l.clone(),a=o.bucketSpan.match(/[d | h| m | s]/g)[0],i=Number(o.bucketSpan.replace(/[^0-9]/g,""));e===ri?t.add(480*i,a):t.subtract(480*i,a),c(t)},V=Object(n.useCallback)((async()=>{if(void 0===o.bucketSpan)return;const t=bt()(l).valueOf(),a=o.bucketSpan.match(/[d | h| m | s]/g)[0],i=Number(o.bucketSpan.replace(/[^0-9]/g,"")),n=l.clone().subtract(480*i,a),s=bt()(n).valueOf();I({start:String(s),end:String(t)});try{const a=await N(e,s,t);let i=a.datafeedResults,n=a.bucketResults;i.length!==n.length&&(i.length>n.length?n=ci(n,i):i=ci(i,n)),S(i),j(n),v({rect:a.annotationResultsRect,line:a.annotationResultsLine.map(mi)}),O(o.modelSnapshotData.filter((e=>e.dataValue>=s&&e.dataValue<=t)))}catch(e){const t=u.i18n.translate("xpack.ml.jobsList.datafeedChart.errorToastTitle",{defaultMessage:"Error fetching data"});P(e,t)}b(!1)}),[l,o.bucketSpan]),J=Object(n.useCallback)((async()=>{try{var t;const a=await tt(e),i=[];(null!==(t=(await R(e)).model_snapshots)&&void 0!==t?t:[]).forEach((e=>{const t=Number(e.latest_record_time_stamp);i.push({dataValue:t,details:`${e.description}. ${A&&L?ui:""}`,modelSnapshot:e})})),r({datafeedConfig:a.datafeed_config,bucketSpan:a.analysis_config.bucket_span,isInitialized:!0,modelSnapshotData:i.map(mi)})}catch(e){P(e)}}),[e]);Object(n.useEffect)((function(){J()}),[]),Object(n.useEffect)((function(){void 0!==o.bucketSpan&&(b(!0),V())}),[l,o.bucketSpan]);const{datafeedConfig:U,bucketSpan:G,isInitialized:q}=o,$=Object(n.useMemo)((()=>Object(d.htmlIdGenerator)()()),[]),W=Object(n.useMemo)((()=>Object(d.htmlIdGenerator)()()),[]),H=Object(n.useMemo)((()=>!f.some((e=>null!==e[1]&&0!==e[1]))&&!M.some((e=>null!==e[1]&&0!==e[1]))),[f,M]);return Object(h.jsx)(d.EuiPortal,null,Object(h.jsx)(d.EuiFlyout,{size:"m",ownFocus:!0,onClose:a.bind(null,!1),"aria-label":u.i18n.translate("xpack.ml.jobsList.datafeedChart.datafeedChartFlyoutAriaLabel",{defaultMessage:"Datafeed chart flyout"}),"data-test-subj":"mlAnnotationsViewDatafeedFlyout"},Object(h.jsx)(d.EuiFlyoutHeader,{hasBorder:!0,"data-test-subj":"mlAnnotationsViewDatafeedFlyoutTitle"},Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",justifyContent:"spaceBetween",gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiIconTip,{color:"primary",type:"help",content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.datafeedChart.headerTooltipContent",defaultMessage:"Charts the event counts of the job and the source data to identify where missing data has occurred."})})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.datafeedChart.header",defaultMessage:"Datafeed chart for {jobId}",values:{jobId:e}})))))),Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{padding:"10px"}},Object(h.jsx)(d.EuiDatePicker,{"aria-label":u.i18n.translate("xpack.ml.jobsList.datafeedChart.chartIntervalEndTime",{defaultMessage:"Chart interval end time"}),showTimeSelect:!0,selected:l,onChange:e=>c(e),popoverPlacement:"leftUp"})))),Object(h.jsx)(d.EuiFlyoutBody,null,p||!1===q?Object(h.jsx)(d.EuiLoadingChart,{size:"l"}):null,!p&&q&&void 0!==U&&G?Object(h.jsx)(d.EuiFlexGroup,{direction:"column"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(oi,{datafeedId:U.datafeed_id,queryDelay:U.query_delay,isEnabled:U.state===Ye.a.STOPPED&&D})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiCheckbox,{id:$,label:Object(h.jsx)(d.EuiText,{size:"xs"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.datafeedChart.showAnnotationsCheckboxLabel",defaultMessage:"Show annotations"})),checked:_,onChange:()=>T(!_)})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiCheckbox,{id:W,label:Object(h.jsx)(d.EuiText,{size:"xs"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.datafeedChart.showModelSnapshotsCheckboxLabel",defaultMessage:"Show model snapshots"})),checked:C,onChange:()=>k(!C)})))))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"none",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiToolTip,{content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.datafeedChart.chartLeftArrowTooltip",defaultMessage:"Previous time window"})},Object(h.jsx)(d.EuiButtonEmpty,{"aria-label":u.i18n.translate("xpack.ml.jobsList.datafeedChart.chartIntervalLeftArrow",{defaultMessage:"Previous time window"}),color:"primary",onClick:()=>{B("back")},iconType:"arrowLeft"}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)("div",{"data-test-subj":"mlAnnotationsViewDatafeedFlyoutChart"},Object(h.jsx)(ra.Chart,{size:li},Object(h.jsx)(ra.Tooltip,{type:ra.TooltipType.VerticalCursor,showNullValues:!0}),Object(h.jsx)(ra.Settings,{showLegend:!0,legendPosition:ra.Position.Bottom,onAnnotationClick:e=>{var t;A&&L&&0!==(null===(t=e.lines)||void 0===t?void 0:t.length)&&(!e.lines||e.lines[0].id.includes("Model snapshots"))&&i(e.lines[0].datum.modelSnapshot)},theme:{lineSeriesStyle:{point:{visible:!1}}}}),Object(h.jsx)(ra.Axis,{id:"bottom",position:ra.Position.Bottom,showOverlappingTicks:!0,tickFormat:di,title:u.i18n.translate("xpack.ml.jobsList.datafeedChart.xAxisTitle",{defaultMessage:"Bucket span ({bucketSpan})",values:{bucketSpan:G}})}),Object(h.jsx)(ra.Axis,{id:"left",title:u.i18n.translate("xpack.ml.jobsList.datafeedChart.yAxisTitle",{defaultMessage:"Count"}),position:ra.Position.Left,domain:H?{min:0,max:10}:void 0,tickFormat:e=>null===e?pi:String(e)}),_?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(ra.LineAnnotation,{id:u.i18n.translate("xpack.ml.jobsList.datafeedChart.annotationLineSeriesId",{defaultMessage:"Annotations line result"}),key:"annotation-results-line",domainType:ra.AnnotationDomainType.XDomain,dataValues:x.line,marker:Object(h.jsx)(d.EuiIcon,{type:"annotation"}),markerPosition:ra.Position.Top,style:{line:{strokeWidth:3,stroke:z.euiColorDangerText,opacity:.5}}}),Object(h.jsx)(ra.RectAnnotation,{key:"annotation-results-rect",customTooltip:bi,dataValues:x.rect,id:u.i18n.translate("xpack.ml.jobsList.datafeedChart.annotationRectSeriesId",{defaultMessage:"Annotations rectangle result"}),style:{fill:z.euiColorDangerText}})):null,C?Object(h.jsx)(ra.LineAnnotation,{id:u.i18n.translate("xpack.ml.jobsList.datafeedChart.modelSnapshotsLineSeriesId",{defaultMessage:"Model snapshots"}),key:"model-snapshots-results-line",domainType:ra.AnnotationDomainType.XDomain,dataValues:y,marker:Object(h.jsx)(d.EuiIcon,{type:"asterisk"}),markerPosition:ra.Position.Top,style:{line:{strokeWidth:3,stroke:z.euiColorVis1,opacity:.5}}}):null,E.length>0?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(ra.LineAnnotation,{id:u.i18n.translate("xpack.ml.jobsList.datafeedChart.messageLineAnnotationId",{defaultMessage:"Job messages line result"}),key:"messages-results-line",domainType:ra.AnnotationDomainType.XDomain,dataValues:E,marker:Object(h.jsx)(d.EuiIcon,{type:"tableDensityNormal"}),markerPosition:ra.Position.Top,style:{line:{strokeWidth:3,stroke:z.euiColorAccent,opacity:.5}}})):null,Object(h.jsx)(ra.LineSeries,{key:"source-results",color:z.euiColorPrimary,id:u.i18n.translate("xpack.ml.jobsList.datafeedChart.sourceSeriesId",{defaultMessage:"Source indices document count"}),xScaleType:ra.ScaleType.Time,yScaleType:ra.ScaleType.Linear,xAccessor:0,yAccessors:[1],data:M,curve:ra.CurveType.LINEAR}),Object(h.jsx)(ra.LineSeries,{key:"job-results",color:z.euiColorAccentText,id:u.i18n.translate("xpack.ml.jobsList.datafeedChart.bucketSeriesId",{defaultMessage:"Datafeed document count"}),xScaleType:ra.ScaleType.Time,yScaleType:ra.ScaleType.Linear,xAccessor:0,yAccessors:[1],data:f,curve:ra.CurveType.LINEAR})))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiToolTip,{content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.datafeedChart.chartRightArrowTooltip",defaultMessage:"Next time window"})},Object(h.jsx)(d.EuiButtonEmpty,{"aria-label":u.i18n.translate("xpack.ml.jobsList.datafeedChart.chartIntervalRightArrow",{defaultMessage:"Next time window"}),color:"primary",onClick:()=>{B(ri)},iconType:"arrowRight"}))))),void 0!==F?Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{direction:"column"},Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.datafeedChart.messagesTableTitle",defaultMessage:"Job messages"}))),Object(h.jsx)(ni,m()({jobId:e},F,{actionHandler:function(e){if(E.length>0&&E[0].dataValue===e.timestamp)w([]);else{const t=mi({dataValue:e.timestamp,details:e.message});w([t])}}})))):null):null)))},gi=({setShowFunction:e,unsetShowFunction:t,refreshJobs:a})=>{const[i,s]=Object(n.useState)(!1),[o,r]=Object(n.useState)(),[l,c]=Object(n.useState)(),[d,u]=Object(n.useState)(!1),[p,m]=Object(n.useState)(null),b=Object(n.useCallback)((e=>{r(e),s(!0)}),[]),f=Object(n.useCallback)((async()=>{const e=await tt(o.id);c(e),u(!0)}),[o]);return Object(n.useEffect)((()=>(e(b),()=>{t()})),[]),!0===i&&void 0!==o?Object(h.jsx)(fi,{onClose:()=>s(!1),onModelSnapshotAnnotationClick:e=>{s(!1),m(e),f()},end:o.latestResultsTimestampMs||Date.now(),jobId:o.id}):!0===d&&void 0!==l&&null!==p?Object(h.jsx)(Ka,{snapshot:p,snapshots:[p],job:l,closeFlyout:()=>{u(!1)},refresh:a}):null},hi=Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.annotationsTable.editAnnotationsTooltip",defaultMessage:"Edit annotation"}),ji=Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.annotationsTable.datafeedChartTooltip",defaultMessage:"View datafeed counts"}),xi="current_series";class annotations_table_AnnotationsTableUI extends n.Component{constructor(e){super(e),Ve()(this,"getAnnotationsWithExtraInfo",Yt()((e=>{var t,a;return Array.isArray(null===(t=this.props.chartDetails)||void 0===t||null===(a=t.entityData)||void 0===a?void 0:a.entities)?e.map((e=>{var t,a;const i=null===(t=this.props.chartDetails)||void 0===t||null===(a=t.entityData)||void 0===a?void 0:a.entities.every((({fieldType:t,fieldValue:a})=>{const i=`${t}_value`;return!(!e[i]||e[i]!==a)}));return{...e,[xi]:i}})):e}))),Ve()(this,"annotationsRefreshSubscription",null),Ve()(this,"previousJobId",void 0),Ve()(this,"openSingleMetricView",(async(e={})=>{const{services:{application:{navigateToUrl:t},share:a}}=this.props.kibana,i=this.getJob(e.job_id),n=i.data_counts,s=Object(Gt.j)(n.latest_record_timestamp,n.latest_bucket_timestamp),o={from:new Date(n.earliest_record_timestamp).toISOString(),to:new Date(s).toISOString(),mode:"absolute"};let r={};const l={};void 0!==e.timestamp&&void 0!==e.end_timestamp&&(r={zoom:{from:new Date(e.timestamp).toISOString(),to:new Date(e.end_timestamp).toISOString()}},e.timestampn.latest_record_timestamp&&(o.to=new Date(e.end_timestamp).toISOString())),void 0!==e.detector_index&&(r.detectorIndex=e.detector_index),void 0!==e.partition_field_value&&(l[e.partition_field_name]=e.partition_field_value),void 0!==e.over_field_value&&(l[e.over_field_name]=e.over_field_value),void 0!==e.by_field_value&&(l[e.by_field_name]=e.by_field_value),r.entities=l;const c=a.url.locators.get(Fe.a),d=await c.getUrl({page:Fe.b.SINGLE_METRIC_VIEWER,pageState:{timeRange:o,refreshInterval:{display:"Off",pause:!0,value:0},jobIds:[i.job_id],query:{query_string:{analyze_wildcard:!0,query:"*"}},...r}},{absolute:!0});Object(Qt.a)("timeseriesexplorer",i.job_id,d),await t(d)})),Ve()(this,"onMouseOverRow",(e=>{void 0!==this.mouseOverRecord?this.mouseOverRecord.rowId!==e.rowId&&(Kt.rowMouseleave$.next({record:this.mouseOverRecord,type:"annotation"}),Kt.rowMouseenter$.next({record:e,type:"annotation"})):Kt.rowMouseenter$.next({record:e,type:"annotation"}),this.mouseOverRecord=e})),Ve()(this,"onMouseLeaveRow",(()=>{void 0!==this.mouseOverRecord&&(Kt.rowMouseleave$.next({record:this.mouseOverRecord,type:"annotation"}),this.mouseOverRecord=void 0)})),this.state={annotations:[],isLoading:!1,queryText:`event:(${ia} or ${na})`,searchError:void 0,jobId:Array.isArray(this.props.jobs)&&this.props.jobs.length>0&&void 0!==this.props.jobs[0]?this.props.jobs[0].job_id:void 0,datafeedFlyoutVisible:!1,modelSnapshot:null,revertSnapshotFlyoutVisible:!1,datafeedEnd:null},this.sorting={sort:{field:"timestamp",direction:"asc"}}}getAnnotations(){const e=this.props.jobs[0],t=e.data_counts;this.setState({isLoading:!0}),t.processed_record_count>0?Je.ml.annotations.getAnnotations$({jobIds:[e.job_id],earliestMs:null,latestMs:null,maxAnnotations:Zt.a}).toPromise().then((e=>{this.setState(((t,a)=>({annotations:e.annotations[a.jobs[0].job_id]||[],errorMessage:void 0,isLoading:!1,jobId:a.jobs[0].job_id})))})).catch((e=>{console.log("Error loading list of annotations for jobs list:",e),this.setState({annotations:[],errorMessage:"Error loading the list of annotations for this job",isLoading:!1,jobId:void 0})})):this.setState({annotations:[],isLoading:!1,jobId:void 0})}getJob(e){if(Array.isArray(this.props.jobs)&&this.props.jobs.length>0){const t=this.props.jobs[0];if(void 0===e||t.job_id===e)return t}return Ge.a.getJob(e)}componentDidMount(){void 0===this.props.annotations&&Array.isArray(this.props.jobs)&&this.props.jobs.length>0&&(this.annotationsRefreshSubscription=ea.b.subscribe((()=>{this.getAnnotations()})),Object(ea.c)())}componentDidUpdate(){Array.isArray(this.props.jobs)&&this.props.jobs.length>0&&this.previousJobId!==this.props.jobs[0].job_id&&void 0===this.props.annotations&&!1===this.state.isLoading&&this.state.jobId!==this.props.jobs[0].job_id&&(Object(ea.c)(),this.previousJobId=this.props.jobs[0].job_id)}componentWillUnmount(){null!==this.annotationsRefreshSubscription&&this.annotationsRefreshSubscription.unsubscribe()}render(){var e,t,a,i;const{isSingleMetricViewerLinkVisible:s=!0,isNumberBadgeVisible:o=!1,annotationUpdatesService:r}=this.props,{queryText:l,searchError:c}=this.state;if(void 0===this.props.annotations){if(!0===this.state.isLoading)return Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceAround"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiLoadingSpinner,{size:"l"})));if(void 0!==this.state.errorMessage)return Object(h.jsx)(d.EuiCallOut,{title:this.state.errorMessage,color:"danger",iconType:"cross"})}const p=this.props.annotations||this.state.annotations;if(0===p.length)return Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.annotationsTable.annotationsNotCreatedTitle",defaultMessage:"No annotations created for this job"}),iconType:"iInCircle",role:"alert"},this.state.jobId&&Object(Gt.r)(this.getJob(this.state.jobId))&&Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.annotationsTable.howToCreateAnnotationDescription",defaultMessage:"To create an annotation, open the {linkToSingleMetricView}",values:{linkToSingleMetricView:Object(h.jsx)(d.EuiLink,{onClick:()=>this.openSingleMetricView()},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.annotationsTable.howToCreateAnnotationDescription.singleMetricViewerLinkText",defaultMessage:"Single Metric Viewer"}))}})));const m=[{field:"annotation",name:u.i18n.translate("xpack.ml.annotationsTable.annotationColumnName",{defaultMessage:"Annotation"}),sortable:!0,width:"40%",scope:"row","data-test-subj":"mlAnnotationsColumnAnnotation"},{field:"timestamp",name:u.i18n.translate("xpack.ml.annotationsTable.fromColumnName",{defaultMessage:"From"}),dataType:"date",render:ft.e,sortable:!0,"data-test-subj":"mlAnnotationsColumnFrom"},{field:"end_timestamp",name:u.i18n.translate("xpack.ml.annotationsTable.toColumnName",{defaultMessage:"To"}),dataType:"date",render:ft.e,sortable:!0,"data-test-subj":"mlAnnotationsColumnTo"},{field:"modified_time",name:u.i18n.translate("xpack.ml.annotationsTable.lastModifiedDateColumnName",{defaultMessage:"Last modified date"}),dataType:"date",render:ft.e,sortable:!0,"data-test-subj":"mlAnnotationsColumnModifiedDate"},{field:"modified_username",name:u.i18n.translate("xpack.ml.annotationsTable.lastModifiedByColumnName",{defaultMessage:"Last modified by"}),sortable:!0,"data-test-subj":"mlAnnotationsColumnModifiedBy"},{field:"event",name:u.i18n.translate("xpack.ml.annotationsTable.eventColumnName",{defaultMessage:"Event"}),sortable:!0,width:"10%","data-test-subj":"mlAnnotationsColumnEvent"}];Object(Ue.uniq)(p.map((e=>e.job_id))).length>1&&m.unshift({field:"job_id",name:u.i18n.translate("xpack.ml.annotationsTable.jobIdColumnName",{defaultMessage:"job ID"}),sortable:!0,"data-test-subj":"mlAnnotationsColumnJobId"}),o&&m.unshift({field:"key",name:u.i18n.translate("xpack.ml.annotationsTable.labelColumnName",{defaultMessage:"Label"}),sortable:e=>+e,width:"60px",render:e=>Object(h.jsx)(d.EuiBadge,{color:"default"},e),"data-test-subj":"mlAnnotationsColumnLabel"});const b=[];void 0!==this.props.jobs&&void 0!==(null===(e=this.props.jobs[0])||void 0===e?void 0:e.blocked)||(b.push({name:hi,description:hi,icon:"pencil",type:"icon",onClick:e=>{const t=e._id,a=p.find((e=>e._id===t));r.setValue(null!=a?a:e)},"data-test-subj":"mlAnnotationsActionEdit"}),this.state.jobId&&this.props.jobs[0].analysis_config.bucket_span&&b.push({name:ji,description:ji,icon:"visAreaStacked",type:"icon",onClick:e=>{this.setState({datafeedFlyoutVisible:!0,datafeedEnd:e.end_timestamp})},"data-test-subj":"mlAnnotationsActionViewDatafeed"}),s&&b.push({name:e=>Object(Gt.r)(this.getJob(e.job_id))?Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.annotationsTable.openInSingleMetricViewerTooltip",defaultMessage:"Open in Single Metric Viewer"}):Object(h.jsx)(d.EuiToolTip,{content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.annotationsTable.jobConfigurationNotSupportedInSingleMetricViewerTooltip",defaultMessage:"Job configuration not supported in Single Metric Viewer"})},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.annotationsTable.openInSingleMetricViewerTooltip",defaultMessage:"Open in Single Metric Viewer"})),description:e=>Object(Gt.r)(this.getJob(e.job_id))?u.i18n.translate("xpack.ml.annotationsTable.openInSingleMetricViewerAriaLabel",{defaultMessage:"Open in Single Metric Viewer"}):u.i18n.translate("xpack.ml.annotationsTable.jobConfigurationNotSupportedInSingleMetricViewerAriaLabel",{defaultMessage:"Job configuration not supported in Single Metric Viewer"}),enabled:e=>Object(Gt.r)(this.getJob(e.job_id)),icon:"visLine",type:"icon",onClick:e=>this.openSingleMetricView(e),"data-test-subj":"mlAnnotationsActionOpenInSingleMetricViewer"}));const f={[ia]:0,[na]:0};p.forEach((e=>{var t;const a=null!==(t=e.event)&&void 0!==t?t:ia;void 0===f[a]&&(f[a]=0),f[a]++}));const j=[{type:"field_value_selection",field:"event",name:"Event",multiSelect:"or",options:Object.entries(f).map((([e,t])=>({value:e,name:e,view:`${e} (${t})`}))),"data-test-subj":"mlAnnotationTableEventFilter"}];var x,v;this.props.detectors&&m.push({name:u.i18n.translate("xpack.ml.annotationsTable.detectorColumnName",{defaultMessage:"Detector"}),width:"10%",render:e=>"detector_index"in e?this.props.detectors[e.detector_index].detector_description:""}),Array.isArray(null===(t=this.props.chartDetails)||void 0===t||null===(a=t.entityData)||void 0===a?void 0:a.entities)?(null===(x=this.props.chartDetails)||void 0===x||null===(v=x.entityData)||void 0===v||v.entities.forEach((e=>{"partition_field"===e.fieldType&&m.push({field:"partition_field_value",name:u.i18n.translate("xpack.ml.annotationsTable.partitionSMVColumnName",{defaultMessage:"Partition"}),sortable:!0}),"over_field"===e.fieldType&&m.push({field:"over_field_value",name:u.i18n.translate("xpack.ml.annotationsTable.overColumnSMVName",{defaultMessage:"Over"}),sortable:!0}),"by_field"===e.fieldType&&m.push({field:"by_field_value",name:u.i18n.translate("xpack.ml.annotationsTable.byColumnSMVName",{defaultMessage:"By"}),sortable:!0})})),j.push({type:"is",field:xi,name:u.i18n.translate("xpack.ml.annotationsTable.seriesOnlyFilterName",{defaultMessage:"Filter to series"})})):(m.push({field:"partition_field_value",name:u.i18n.translate("xpack.ml.annotationsTable.partitionAEColumnName",{defaultMessage:"Partition"}),sortable:!0}),m.push({field:"over_field_value",name:u.i18n.translate("xpack.ml.annotationsTable.overAEColumnName",{defaultMessage:"Over"}),sortable:!0}),m.push({field:"by_field_value",name:u.i18n.translate("xpack.ml.annotationsTable.byAEColumnName",{defaultMessage:"By"}),sortable:!0}));const y={defaultQuery:l,box:{incremental:!0,schema:!0},filters:j};m.push({align:Xt.RIGHT_ALIGNMENT,width:"60px",name:u.i18n.translate("xpack.ml.annotationsTable.actionsColumnName",{defaultMessage:"Actions"}),actions:b,"data-test-subj":"mlAnnotationsColumnActions"},{field:xi,name:xi,dataType:"boolean",width:"0px",render:()=>""});const O=this.getAnnotationsWithExtraInfo(p);return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiInMemoryTable,{"data-test-subj":"mlAnnotationsTable",error:c,className:"eui-textBreakWord",compressed:!0,items:O,columns:m,pagination:{pageSizeOptions:[5,10,25]},sorting:this.sorting,search:y,rowProps:e=>({"data-test-subj":`mlAnnotationsTableRow row-${e._id}`,onMouseOver:()=>this.onMouseOverRow(e),onMouseLeave:()=>this.onMouseLeaveRow()})}),this.state.jobId&&this.state.datafeedFlyoutVisible&&this.state.datafeedEnd?Object(h.jsx)(fi,{onClose:()=>{this.setState({datafeedFlyoutVisible:!1})},onModelSnapshotAnnotationClick:e=>{this.setState({modelSnapshot:e,revertSnapshotFlyoutVisible:!0,datafeedFlyoutVisible:!1})},end:this.state.datafeedEnd,jobId:this.state.jobId}):null,!0===this.state.revertSnapshotFlyoutVisible&&null!==this.state.modelSnapshot?Object(h.jsx)(Ka,{snapshot:this.state.modelSnapshot,snapshots:[this.state.modelSnapshot],job:this.getJob(this.state.jobId),closeFlyout:()=>{this.setState({revertSnapshotFlyoutVisible:!1})},refresh:null!==(i=this.props.refreshJobList)&&void 0!==i?i:()=>{}}):null)}}const vi=Object(sa.withKibana)((e=>{const t=Object(n.useContext)(oa);return Object(h.jsx)(annotations_table_AnnotationsTableUI,m()({annotationUpdatesService:t},e))})),yi=({annotation:e,detectorDescription:t})=>{const a=[{title:u.i18n.translate("xpack.ml.timeSeriesExplorer.annotationDescriptionList.jobIdTitle",{defaultMessage:"Job ID"}),description:e.job_id},{title:u.i18n.translate("xpack.ml.timeSeriesExplorer.annotationDescriptionList.startTitle",{defaultMessage:"Start"}),description:Object(ft.d)(e.timestamp)}];var i,n,s,o,r;return void 0!==e.end_timestamp&&a.push({title:u.i18n.translate("xpack.ml.timeSeriesExplorer.annotationDescriptionList.endTitle",{defaultMessage:"End"}),description:Object(ft.d)(e.end_timestamp)}),void 0!==e.create_time&&void 0!==e.modified_time&&(a.push({title:u.i18n.translate("xpack.ml.timeSeriesExplorer.annotationDescriptionList.createdTitle",{defaultMessage:"Created"}),description:Object(ft.d)(e.create_time)}),a.push({title:u.i18n.translate("xpack.ml.timeSeriesExplorer.annotationDescriptionList.createdByTitle",{defaultMessage:"Created by"}),description:null!==(i=e.create_username)&&void 0!==i?i:""}),a.push({title:u.i18n.translate("xpack.ml.timeSeriesExplorer.annotationDescriptionList.lastModifiedTitle",{defaultMessage:"Last modified"}),description:Object(ft.d)(e.modified_time)}),a.push({title:u.i18n.translate("xpack.ml.timeSeriesExplorer.annotationDescriptionList.modifiedByTitle",{defaultMessage:"Modified by"}),description:null!==(n=e.modified_username)&&void 0!==n?n:""})),void 0!==t&&a.push({title:u.i18n.translate("xpack.ml.timeSeriesExplorer.annotationDescriptionList.detectorTitle",{defaultMessage:"Detector"}),description:t}),void 0!==e.partition_field_name&&a.push({title:e.partition_field_name,description:null!==(s=e.partition_field_value)&&void 0!==s?s:""}),void 0!==e.over_field_name&&a.push({title:e.over_field_name,description:null!==(o=e.over_field_value)&&void 0!==o?o:""}),void 0!==e.by_field_name&&a.push({title:e.by_field_name,description:null!==(r=e.by_field_value)&&void 0!==r?r:""}),Object(h.jsx)(d.EuiDescriptionList,{"data-test-subj":"mlAnnotationDescriptionList",className:"ml-annotation-description-list",type:"column",listItems:a})},Oi=({cancelAction:e,deleteAction:t,isVisible:a})=>Object(h.jsx)(n.Fragment,null,!0===a&&Object(h.jsx)(d.EuiConfirmModal,{title:u.i18n.translate("xpack.ml.timeSeriesExplorer.deleteAnnotationModal.deleteAnnotationTitle",{defaultMessage:"Delete this annotation?"}),onCancel:e,onConfirm:t,cancelButtonText:u.i18n.translate("xpack.ml.timeSeriesExplorer.deleteAnnotationModal.cancelButtonLabel",{defaultMessage:"Cancel"}),confirmButtonText:u.i18n.translate("xpack.ml.timeSeriesExplorer.deleteAnnotationModal.deleteButtonLabel",{defaultMessage:"Delete"}),buttonColor:"danger",defaultFocusedButton:d.EUI_MODAL_CONFIRM_BUTTON,className:"eui-textBreakWord","data-test-subj":"mlAnnotationFlyoutConfirmDeleteModal"}));function Ei(e){return`${e}_name`}function wi(e){return`${e}_value`}class annotation_flyout_AnnotationFlyoutUI extends n.Component{constructor(...e){super(...e),Ve()(this,"deletionInProgress",!1),Ve()(this,"state",{isDeleteModalVisible:!1,applyAnnotationToSeries:!0,annotationState:null}),Ve()(this,"annotationSub",null),Ve()(this,"annotationTextChangeHandler",(e=>{if(null===this.state.annotationState)return;const{annotationUpdatesService:t}=this.props;t.setValue({...this.state.annotationState,annotation:e.target.value})})),Ve()(this,"cancelEditingHandler",(()=>{const{annotationUpdatesService:e}=this.props;e.setValue(null)})),Ve()(this,"deleteConfirmHandler",(()=>{this.setState({isDeleteModalVisible:!0})})),Ve()(this,"deleteHandler",(async()=>{if(this.deletionInProgress)return;const{annotationState:e}=this.state,t=Object($e.h)();if(null===e||void 0===e._id)return;this.deletionInProgress=!0;try{await Je.ml.annotations.deleteAnnotation(e._id),t.addSuccess(u.i18n.translate("xpack.ml.timeSeriesExplorer.timeSeriesChart.deletedAnnotationNotificationMessage",{defaultMessage:"Deleted annotation for job with ID {jobId}.",values:{jobId:e.job_id}}))}catch(a){t.addDanger(u.i18n.translate("xpack.ml.timeSeriesExplorer.timeSeriesChart.errorWithDeletingAnnotationNotificationErrorMessage",{defaultMessage:"An error occurred deleting the annotation for job with ID {jobId}: {error}",values:{jobId:e.job_id,error:JSON.stringify(a)}}))}this.closeDeleteModal(),this.deletionInProgress=!1;const{annotationUpdatesService:a}=this.props;a.setValue(null),Object(ea.c)()})),Ve()(this,"closeDeleteModal",(()=>{this.setState({isDeleteModalVisible:!1})})),Ve()(this,"validateAnnotationText",(()=>{const{annotationState:e}=this.state,t=[];if(null===e)return t;0===e.annotation.trim().length&&t.push(u.i18n.translate("xpack.ml.timeSeriesExplorer.annotationFlyout.noAnnotationTextError",{defaultMessage:"Enter annotation text"}));const a=e.annotation.length;if(a>aa){const e=a-aa;t.push(u.i18n.translate("xpack.ml.timeSeriesExplorer.annotationFlyout.maxLengthError",{defaultMessage:"{charsOver, number} {charsOver, plural, one {character} other {characters}} above maximum length of {maxChars}",values:{maxChars:aa,charsOver:e}}))}return t})),Ve()(this,"saveOrUpdateAnnotation",(()=>{var e,t;const{annotationState:a}=this.state,{chartDetails:i,detectorIndex:n,annotationUpdatesService:s}=this.props;if(null===a)return;const o=Object(Ue.cloneDeep)(a);this.state.applyAnnotationToSeries&&null!=i&&null!==(e=i.entityData)&&void 0!==e&&e.entities&&(i.entityData.entities.forEach((e=>{const{fieldName:t,fieldValue:a}=e,i=e.fieldType;o[Ei(i)]=t,o[wi(i)]=a})),o.detector_index=n),this.state.applyAnnotationToSeries||(delete o.detector_index,la.p.forEach((e=>{delete o[Ei(e)],delete o[wi(e)]}))),o.event=null!==(t=o.event)&&void 0!==t?t:ia,s.setValue(null),Je.ml.annotations.indexAnnotation(o).then((()=>{Object(ea.c)();const e=Object($e.h)();void 0===o._id?e.addSuccess(u.i18n.translate("xpack.ml.timeSeriesExplorer.timeSeriesChart.addedAnnotationNotificationMessage",{defaultMessage:"Added an annotation for job with ID {jobId}.",values:{jobId:o.job_id}})):e.addSuccess(u.i18n.translate("xpack.ml.timeSeriesExplorer.timeSeriesChart.updatedAnnotationNotificationMessage",{defaultMessage:"Updated annotation for job with ID {jobId}.",values:{jobId:o.job_id}}))})).catch((e=>{const t=Object($e.h)();void 0===o._id?t.addDanger(u.i18n.translate("xpack.ml.timeSeriesExplorer.timeSeriesChart.errorWithCreatingAnnotationNotificationErrorMessage",{defaultMessage:"An error occurred creating the annotation for job with ID {jobId}: {error}",values:{jobId:o.job_id,error:JSON.stringify(e)}})):t.addDanger(u.i18n.translate("xpack.ml.timeSeriesExplorer.timeSeriesChart.errorWithUpdatingAnnotationNotificationErrorMessage",{defaultMessage:"An error occurred updating the annotation for job with ID {jobId}: {error}",values:{jobId:o.job_id,error:JSON.stringify(e)}}))}))}))}componentDidMount(){const{annotationUpdatesService:e}=this.props;this.annotationSub=e.update$().subscribe((e=>{this.setState({annotationState:e})}))}componentWillUnmount(){this.annotationSub.unsubscribe()}render(){const{detectors:e,detectorIndex:t}=this.props,{annotationState:a,isDeleteModalVisible:i}=this.state;if(!a)return null;const n=void 0!==a._id,o=this.validateAnnotationText(),r=o.length>0;let l=null;!1===r&&a.annotation.length>950&&(l=u.i18n.translate("xpack.ml.timeSeriesExplorer.annotationFlyout.approachingMaxLengthWarning",{defaultMessage:"{charsRemaining, number} {charsRemaining, plural, one {character} other {characters}} remaining",values:{charsRemaining:aa-a.annotation.length}}));const c=e?e.find((e=>e.index===t)):void 0,p=c&&"detector_description"in c?c.detector_description:"";return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlyoutBody,null,Object(h.jsx)(yi,{annotation:a,detectorDescription:p}),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.annotationFlyout.annotationTextLabel",defaultMessage:"Annotation text"}),fullWidth:!0,helpText:l,isInvalid:r,error:o},Object(h.jsx)(d.EuiTextArea,{fullWidth:!0,isInvalid:r,onChange:this.annotationTextChangeHandler,placeholder:"...",value:a.annotation,"data-test-subj":"mlAnnotationsFlyoutTextInput"})),Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(d.EuiCheckbox,{id:"xpack.ml.annotationFlyout.applyToPartition",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.annotationFlyout.applyToPartitionTextLabel",defaultMessage:"Apply annotation to this series"}),checked:this.state.applyAnnotationToSeries,onChange:()=>this.setState({applyAnnotationToSeries:!this.state.applyAnnotationToSeries}),"data-test-subj":"mlAnnotationsFlyoutApplyToSeriesButton"}))),Object(h.jsx)(d.EuiFlyoutFooter,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{onClick:this.cancelEditingHandler,flush:"left","data-test-subj":"mlAnnotationsFlyoutCancelButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.annotationFlyout.cancelButtonLabel",defaultMessage:"Cancel"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{marginLeft:"auto"}},n&&Object(h.jsx)(d.EuiButtonEmpty,{color:"danger",onClick:this.deleteConfirmHandler,"data-test-subj":"mlAnnotationsFlyoutDeleteButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.annotationFlyout.deleteButtonLabel",defaultMessage:"Delete"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{fill:!0,isDisabled:!0===r,onClick:this.saveOrUpdateAnnotation,"data-test-subj":"annotationFlyoutUpdateOrCreateButton"},n?Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.annotationFlyout.updateButtonLabel",defaultMessage:"Update"}):Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.annotationFlyout.createButtonLabel",defaultMessage:"Create"}))))),Object(h.jsx)(Oi,{cancelAction:this.closeDeleteModal,deleteAction:this.deleteHandler,isVisible:i}))}}const Mi=e=>{const t=Object(n.useContext)(oa),a=C()(t.isAnnotationInitialized$()),i=Object(n.useCallback)((()=>{t.setValue(null)}),[]);if(null==a)return null;const s=void 0!==a._id;return Object(h.jsx)(d.EuiFlyout,{onClose:i,size:"m","aria-labelledby":"Add annotation","data-test-subj":"mlAnnotationFlyout",className:"mlAnnotationFlyout"},Object(h.jsx)(d.EuiFlyoutHeader,{hasBorder:!0},Object(h.jsx)(d.EuiTitle,{size:"s","data-test-subj":"mlAnnotationFlyoutTitle"},Object(h.jsx)("h2",{id:"mlAnnotationFlyoutTitle"},s?Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.annotationFlyout.editAnnotationTitle",defaultMessage:"Edit annotation"}):Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.annotationFlyout.addAnnotationTitle",defaultMessage:"Add annotation"})))),Object(h.jsx)(annotation_flyout_AnnotationFlyoutUI,m()({},e,{annotationUpdatesService:t})))},Si=({snapshot:e,job:t,closeFlyout:a})=>{const{toasts:i}=Object(Te.i)(),[o,r]=Object(n.useState)(e.description),[l,c]=Object(n.useState)(e.retain),[p,m]=Object(n.useState)(!1),[b,f]=Object(n.useState)(e.snapshot_id===t.model_snapshot_id);Object(n.useEffect)((()=>{f(e.snapshot_id===t.model_snapshot_id)}),[e]);const j=Object(n.useCallback)((async()=>{try{await Je.ml.updateModelSnapshot(e.job_id,e.snapshot_id,{description:o,retain:l}),v()}catch(e){i.addError(new Error(e.body.message),{title:u.i18n.translate("xpack.ml.editModelSnapshotFlyout.saveErrorTitle",{defaultMessage:"Model snapshot update failed"})})}}),[l,o,e]),x=Object(n.useCallback)((async()=>{try{await Je.ml.deleteModelSnapshot(e.job_id,e.snapshot_id),O(),v()}catch(e){i.addError(new Error(e.body.message),{title:u.i18n.translate("xpack.ml.editModelSnapshotFlyout.deleteErrorTitle",{defaultMessage:"Model snapshot deletion failed"})})}}),[e]);function v(){a(!0)}function y(){a(!1)}function O(){m(!1)}return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlyout,{onClose:y,hideCloseButton:!0,size:"m"},Object(h.jsx)(d.EuiFlyoutBody,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h5",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.editModelSnapshotFlyout.title",defaultMessage:"Edit snapshot {ssId}",values:{ssId:e.snapshot_id}}))),b&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiCallOut,{size:"s",title:u.i18n.translate("xpack.ml.editModelSnapshotFlyout.calloutTitle",{defaultMessage:"Current snapshot"})},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.editModelSnapshotFlyout.calloutText",defaultMessage:"This is the current snapshot being used by job {jobId} and so cannot be deleted.",values:{jobId:t.job_id}}))),Object(h.jsx)(d.EuiSpacer,{size:"l"}),Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.editModelSnapshotFlyout.descriptionTitle",{defaultMessage:"Description"}),fullWidth:!0},Object(h.jsx)(d.EuiTextArea,{fullWidth:!0,value:o,onChange:e=>r(e.target.value)})),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiFormRow,{fullWidth:!0},Object(h.jsx)(d.EuiSwitch,{label:u.i18n.translate("xpack.ml.editModelSnapshotFlyout.retainSwitchLabel",{defaultMessage:"Retain snapshot during automatic snapshot cleanup process"}),checked:l,onChange:e=>c(e.target.checked)})))),Object(h.jsx)(d.EuiFlyoutFooter,null,Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{iconType:"cross",onClick:y,flush:"left"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.editModelSnapshotFlyout.closeButton",defaultMessage:"Close"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!0}),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{onClick:function(){m(!0)},color:"danger",disabled:!0===b},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.editModelSnapshotFlyout.useDefaultButton",defaultMessage:"Delete"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:j,fill:!0},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.editModelSnapshotFlyout.saveButton",defaultMessage:"Save"})))))),p&&Object(h.jsx)(d.EuiConfirmModal,{title:u.i18n.translate("xpack.ml.editModelSnapshotFlyout.deleteTitle",{defaultMessage:"Delete snapshot?"}),onCancel:O,onConfirm:x,cancelButtonText:u.i18n.translate("xpack.ml.editModelSnapshotFlyout.cancelButton",{defaultMessage:"Cancel"}),confirmButtonText:u.i18n.translate("xpack.ml.editModelSnapshotFlyout.deleteButton",{defaultMessage:"Delete"}),buttonColor:"danger",defaultFocusedButton:"confirm"}))},_i=({combinedJobState:e,hideCloseJobModalVisible:t,forceCloseJob:a})=>Object(h.jsx)(d.EuiConfirmModal,{title:e===Ti.OPEN_AND_RUNNING?u.i18n.translate("xpack.ml.modelSnapshotTable.closeJobConfirm.stopAndClose.title",{defaultMessage:"Stop datafeed and close job?"}):u.i18n.translate("xpack.ml.modelSnapshotTable.closeJobConfirm.close.title",{defaultMessage:"Close job?"}),onCancel:t,onConfirm:a,cancelButtonText:u.i18n.translate("xpack.ml.modelSnapshotTable.closeJobConfirm.cancelButton",{defaultMessage:"Cancel"}),confirmButtonText:e===Ti.OPEN_AND_RUNNING?u.i18n.translate("xpack.ml.modelSnapshotTable.closeJobConfirm.stopAndClose.button",{defaultMessage:"Stop and close"}):u.i18n.translate("xpack.ml.modelSnapshotTable.closeJobConfirm.close.button",{defaultMessage:"Close"}),defaultFocusedButton:"confirm"},Object(h.jsx)("p",null,e===Ti.OPEN_AND_RUNNING&&Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.modelSnapshotTable.closeJobConfirm.contentOpenAndRunning",defaultMessage:"Job is currently open and running."}),e===Ti.OPEN_AND_STOPPED&&Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.modelSnapshotTable.closeJobConfirm.contentOpen",defaultMessage:"Job is currently open."}),Object(h.jsx)("br",null),Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.modelSnapshotTable.closeJobConfirm.content",defaultMessage:"Snapshot revert can only happen on jobs which are closed."})));let Ti;!function(e){e[e.OPEN_AND_RUNNING=0]="OPEN_AND_RUNNING",e[e.OPEN_AND_STOPPED=1]="OPEN_AND_STOPPED",e[e.CLOSED=2]="CLOSED",e[e.UNKNOWN=3]="UNKNOWN"}(Ti||(Ti={}));const Ci=({job:e,refreshJobList:t})=>{const[a,i]=Object(Se.f)(["canCreateJob","canStartStopDatafeed"]),[o,r]=Object(n.useState)([]),[l,c]=Object(n.useState)(!1),[p,m]=Object(n.useState)(null),[b,f]=Object(n.useState)(null),[g,j]=Object(n.useState)(null),[x,v]=Object(n.useState)(null),y=Object(n.useMemo)((()=>void 0===e.blocked),[e]),O=Object(n.useRef)(!0);async function E(){if(!1===O.current)return;const{model_snapshots:t}=await Je.ml.getModelSnapshots(e.job_id);r(t),c(!0)}Object(n.useEffect)((()=>(E(),()=>{O.current=!1})),[]);const w=Object(n.useCallback)((async t=>{const a=await ki(e.job_id);a!==Ti.UNKNOWN?(v(a),a===Ti.CLOSED?f(t):j(t)):console.error(`Error retrieving state for job ${e.job_id}`)}),[e]);function M(){v(null),j(null)}const S=Object(n.useCallback)((async()=>{await Je.ml.jobs.forceStopAndCloseJob(e.job_id),null!==g&&await ki(e.job_id)===Ti.CLOSED&&f(g),M()}),[e,g]),_=Object(n.useCallback)((e=>{m(null),e&&E()}),[]),T=Object(n.useCallback)((()=>{f(null)}),[]),C=Object(n.useCallback)((()=>{E(),setTimeout(t,500)}),[]),k=[{field:"snapshot_id",name:u.i18n.translate("xpack.ml.modelSnapshotTable.id",{defaultMessage:"ID"}),sortable:!0},{field:"description",name:u.i18n.translate("xpack.ml.modelSnapshotTable.description",{defaultMessage:"Description"}),sortable:!0},{field:"timestamp",name:u.i18n.translate("xpack.ml.modelSnapshotTable.time",{defaultMessage:"Date created"}),dataType:"date",render:ft.e,sortable:!0},{field:"latest_record_time_stamp",name:u.i18n.translate("xpack.ml.modelSnapshotTable.latestTimestamp",{defaultMessage:"Latest timestamp"}),dataType:"date",render:ft.e,sortable:!0},{field:"retain",name:u.i18n.translate("xpack.ml.modelSnapshotTable.retain",{defaultMessage:"Retain"}),width:"100px",sortable:!0},{field:"",width:"100px",name:u.i18n.translate("xpack.ml.modelSnapshotTable.actions",{defaultMessage:"Actions"}),actions:[{name:u.i18n.translate("xpack.ml.modelSnapshotTable.actions.revert.name",{defaultMessage:"Revert"}),description:u.i18n.translate("xpack.ml.modelSnapshotTable.actions.revert.description",{defaultMessage:"Revert to this snapshot"}),enabled:()=>y&&a&&i,type:"icon",icon:"crosshairs",onClick:w},{name:u.i18n.translate("xpack.ml.modelSnapshotTable.actions.edit.name",{defaultMessage:"Edit"}),description:u.i18n.translate("xpack.ml.modelSnapshotTable.actions.edit.description",{defaultMessage:"Edit this snapshot"}),enabled:()=>y&&a,type:"icon",icon:"pencil",onClick:m}]}];return!1===l?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceAround"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiLoadingSpinner,{size:"l"})))):Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiInMemoryTable,{className:"eui-textBreakWord",compressed:!0,items:o,columns:k,pagination:{pageSizeOptions:[5,10,25]},sorting:{sort:{field:"timestamp",direction:"asc"}}}),null!==p&&Object(h.jsx)(Si,{snapshot:p,job:e,closeFlyout:_}),null!==b&&Object(h.jsx)(Ka,{snapshot:b,snapshots:o,job:e,closeFlyout:T,refresh:C}),null!==g&&null!==x&&Object(h.jsx)(_i,{combinedJobState:x,hideCloseJobModalVisible:M,forceCloseJob:S}))};async function ki(e){const t=await Je.ml.jobs.jobs([e]);return 1!==t.length?Ti.UNKNOWN:t[0].state!==Ye.c.CLOSED?t[0].datafeed_config.state!==Ye.a.STOPPED?Ti.OPEN_AND_RUNNING:Ti.OPEN_AND_STOPPED:Ti.CLOSED}var Fi=a(92),Ii=a(11);const Di={getForecastsSummary:function(e,t,a,i){return new Promise(((n,s)=>{const o={success:!0,forecasts:[]},r=[{term:{result_type:"model_forecast_request_stats"}},{term:{job_id:e.job_id}},{range:{timestamp:{gte:a,format:"epoch_millis"}}}];t&&r.push(t),Je.ml.results.anomalySearch({size:i,body:{query:{bool:{filter:r}},sort:[{forecast_create_timestamp:{order:"desc"}}]}},[e.job_id]).then((e=>{e.hits.total.value>0&&(o.forecasts=e.hits.hits.map((e=>e._source))),n(o)})).catch((e=>{s(e)}))}))},getForecastDateRange:function(e,t){return new Promise(((a,i)=>{const n={success:!0,earliest:null,latest:null},s=[{query_string:{query:"result_type:model_forecast",analyze_wildcard:!0}},{term:{job_id:e.job_id}},{term:{forecast_id:t}}];Je.ml.results.anomalySearch({size:0,body:{query:{bool:{filter:s}},aggs:{earliest:{min:{field:"timestamp"}},latest:{max:{field:"timestamp"}}}}},[e.job_id]).then((e=>{n.earliest=Object(Ue.get)(e,"aggregations.earliest.value",null),n.latest=Object(Ue.get)(e,"aggregations.latest.value",null),null===n.earliest||null===n.latest?i(e):a(n)})).catch((e=>{i(e)}))}))},getForecastData:function(e,t,a,i,n,s,o,r){const l=[],c=e.analysis_config.detectors[t];if(void 0!==c.partition_field_name){const e=Object(Ue.find)(i,{fieldName:c.partition_field_name});void 0!==e&&l.push({fieldName:"partition_field_name",fieldValue:e.fieldName},{fieldName:"partition_field_value",fieldValue:e.fieldValue})}if(void 0!==c.over_field_name){const e=Object(Ue.find)(i,{fieldName:c.over_field_name});void 0!==e&&l.push({fieldName:"over_field_name",fieldValue:e.fieldName},{fieldName:"over_field_value",fieldValue:e.fieldValue})}if(void 0!==c.by_field_name){const e=Object(Ue.find)(i,{fieldName:c.by_field_name});void 0!==e&&l.push({fieldName:"by_field_name",fieldValue:e.fieldName},{fieldName:"by_field_value",fieldValue:e.fieldValue})}const d={success:!0,results:{}},u=[{query_string:{query:"result_type:model_forecast",analyze_wildcard:!0}},{term:{job_id:e.job_id}},{term:{forecast_id:a}},{term:{detector_index:t}},{range:{timestamp:{gte:n,lte:s,format:"epoch_millis"}}}];Object(Ue.each)(l,(e=>{u.push({term:{[e.fieldName]:e.fieldValue}})}));const p=void 0===r?{avg:"avg",max:"max",min:"min"}:{avg:r.avg,max:r.max,min:r.min};return Je.ml.results.anomalySearch$({size:0,body:{query:{bool:{filter:u}},aggs:{times:{date_histogram:{field:"timestamp",fixed_interval:`${o}ms`,min_doc_count:1},aggs:{prediction:{[p.avg]:{field:"forecast_prediction"}},forecastUpper:{[p.max]:{field:"forecast_upper"}},forecastLower:{[p.min]:{field:"forecast_lower"}}}}}}},[e.job_id]).pipe(Object(Ii.map)((e=>{const t=Object(Ue.get)(e,["aggregations","times","buckets"],[]);return Object(Ue.each)(t,(e=>{const t=e.key;d.results[t]={prediction:Object(Ue.get)(e,["prediction","value"]),forecastUpper:Object(Ue.get)(e,["forecastUpper","value"]),forecastLower:Object(Ue.get)(e,["forecastLower","value"])}})),d})))},runForecast:function(e,t){return console.log("ML forecast service run forecast with duration:",t),new Promise(((a,i)=>{Je.ml.forecast({jobId:e,duration:t}).then((e=>{a(e)})).catch((e=>{i(e)}))}))},getForecastRequestStats:function(e,t){return new Promise(((a,i)=>{const n={success:!0,stats:{}},s=[{query_string:{query:"result_type:model_forecast_request_stats",analyze_wildcard:!0}},{term:{job_id:e.job_id}},{term:{forecast_id:t}}];Je.ml.results.anomalySearch({size:1,body:{query:{bool:{filter:s}}}},[e.job_id]).then((e=>{e.hits.total.value>0&&(n.stats=e.hits.hits[0]._source),a(n)})).catch((e=>{i(e)}))}))}};class forecasts_table_ForecastsTableUI extends n.Component{constructor(e){super(e),this.state={isLoading:0!==e.job.data_counts.processed_record_count,forecasts:[]}}componentDidMount(){const e=this.props.job.data_counts;e.processed_record_count>0&&Di.getForecastsSummary(this.props.job,null,e.earliest_record_timestamp,500).then((e=>{this.setState({isLoading:!1,forecasts:e.forecasts})})).catch((e=>{console.log("Error loading list of forecasts for jobs list:",e),this.setState({isLoading:!1,errorMessage:u.i18n.translate("xpack.ml.jobsList.jobDetails.forecastsTable.loadingErrorMessage",{defaultMessage:"Error loading the list of forecasts run on this job"}),forecasts:[]})}))}async openSingleMetricView(e){const{services:{application:{navigateToUrl:t},share:a}}=this.props.kibana,i=this.props.job.data_counts,n=i.earliest_record_timestamp,s=Object(Gt.j)(i.latest_record_timestamp,i.latest_bucket_timestamp),o=new Date(i.earliest_record_timestamp).toISOString(),r=void 0!==e?new Date(e.forecast_end_timestamp).toISOString():new Date(s).toISOString();let l={};if(void 0!==e){const t=e.forecast_end_timestamp-e.forecast_start_timestamp,a=Math.max(e.forecast_start_timestamp-t,n);l={forecastId:e.forecast_id,zoom:{from:new Date(a).toISOString(),to:new Date(e.forecast_end_timestamp).toISOString()}}}const c=a.url.locators.get(Fe.a),d=await c.getUrl({page:Fe.b.SINGLE_METRIC_VIEWER,pageState:{timeRange:{from:o,to:r,mode:"absolute"},refreshInterval:{display:"Off",pause:!0,value:0},jobIds:[this.props.job.job_id],query:{query_string:{analyze_wildcard:!0,query:"*"}},...l}},{absolute:!0});Object(Qt.a)("timeseriesexplorer",this.props.job.job_id,d),await t(d)}render(){if(!0===this.state.isLoading)return Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceAround"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiLoadingSpinner,{size:"l"})));if(void 0!==this.state.errorMessage)return Object(h.jsx)(d.EuiCallOut,{title:this.state.errorMessage,color:"danger",iconType:"cross"});const e=this.state.forecasts;if(0===e.length)return Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.jobDetails.forecastsTable.noForecastsTitle",defaultMessage:"No forecasts have been run for this job"}),iconType:"iInCircle",role:"alert"},Object(Gt.r)(this.props.job)&&Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.jobDetails.forecastsTable.noForecastsDescription",defaultMessage:"To run a forecast, open the {singleMetricViewerLink}",values:{singleMetricViewerLink:Object(h.jsx)(d.EuiLink,{onClick:()=>this.openSingleMetricView()},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.jobDetails.forecastsTable.noForecastsDescription.linkText",defaultMessage:"Single Metric Viewer"}))}})));const t=[{field:"forecast_create_timestamp",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.forecastsTable.createdLabel",{defaultMessage:"Created"}),dataType:"date",render:ft.e,textOnly:!0,sortable:!0,scope:"row"},{field:"forecast_start_timestamp",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.forecastsTable.fromLabel",{defaultMessage:"From"}),dataType:"date",render:ft.e,textOnly:!0,sortable:!0},{field:"forecast_end_timestamp",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.forecastsTable.toLabel",{defaultMessage:"To"}),dataType:"date",render:ft.e,textOnly:!0,sortable:!0},{field:"forecast_status",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.forecastsTable.statusLabel",{defaultMessage:"Status"}),sortable:!0},{field:"forecast_memory_bytes",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.forecastsTable.memorySizeLabel",{defaultMessage:"Memory size"}),render:e=>Object(Fi.formatNumber)(e,"0b"),sortable:!0},{field:"processing_time_ms",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.forecastsTable.processingTimeLabel",{defaultMessage:"Processing time"}),render:e=>u.i18n.translate("xpack.ml.jobsList.jobDetails.forecastsTable.msTimeUnitLabel",{defaultMessage:"{ms} ms",values:{ms:e}}),sortable:!0},{field:"forecast_expiry_timestamp",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.forecastsTable.expiresLabel",{defaultMessage:"Expires"}),render:ft.e,textOnly:!0,sortable:!0},{field:"forecast_messages",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.forecastsTable.messagesLabel",{defaultMessage:"Messages"}),sortable:!1,render:e=>Object(h.jsx)("div",null,e.map(((e,t)=>Object(h.jsx)("p",{key:t},e)))),textOnly:!0},{name:u.i18n.translate("xpack.ml.jobsList.jobDetails.forecastsTable.viewLabel",{defaultMessage:"View"}),width:"60px",render:e=>{const t=u.i18n.translate("xpack.ml.jobsList.jobDetails.forecastsTable.viewAriaLabel",{defaultMessage:"View forecast created at {createdDate}",values:{createdDate:Object(ft.e)(e.forecast_create_timestamp)}});return Object(h.jsx)(d.EuiButtonIcon,{onClick:()=>this.openSingleMetricView(e),isDisabled:void 0!==this.props.job.blocked||e.forecast_status!==Ye.b.FINISHED,iconType:"visLine","aria-label":t})}}];return Object(h.jsx)(d.EuiInMemoryTable,{compressed:!0,items:e,columns:t,pagination:{pageSizeOptions:[5,10,25]},sorting:!0})}}const Ai=Object(sa.withKibana)(forecasts_table_ForecastsTableUI),Li=({item:e})=>{const{euiTheme:t}=Object(d.useEuiTheme)(),a=t.size.m;return Object(h.jsx)(d.EuiTableRow,null,""!==e[0]&&Object(h.jsx)(d.EuiTableRowCell,null,Object(h.jsx)("span",{css:Object(h.css)({fontSize:a,fontWeight:"bold"},"","")},e[0])),Object(h.jsx)(d.EuiTableRowCell,null,Object(h.jsx)("span",{css:Object(h.css)({fontSize:a},"","")},e[1])))},Ri=({section:e})=>{const{euiTheme:t}=Object(d.useEuiTheme)();if(0===e.items.length)return Object(h.jsx)("div",null);const a=Object(h.css)({overflow:"auto",padding:`${t.size.xs} ${t.size.m}`,backgroundColor:t.colors.lightestShade,border:`1px solid ${t.colors.lightShade}`,borderRadius:t.border.radius.medium,margin:`${t.size.s} 0`,".euiTable":{backgroundColor:"transparent"},".euiTableRow:hover":{backgroundColor:"inherit"},".euiTableRow:first-child":{".euiTableRowCell":{borderTop:0}},".euiTableRow:last-child":{".euiTableRowCell":{borderBottom:0}}},"","");return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{direction:"column",gutterSize:"none"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h4",null,e.title))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},e.titleAction))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)("div",{css:a,"data-test-subj":`mlJobRowDetailsSection-${e.id}`},Object(h.jsx)(d.EuiTable,{compressed:!0},Object(h.jsx)(d.EuiTableBody,null,e.items.map(((e,t)=>Object(h.jsx)(Li,{item:e,key:t})))))))))},Ni=({sections:e,...t})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)("div",{"data-test-subj":t["data-test-subj"]},Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,e.filter((e=>"left"===e.position)).map(((e,t)=>Object(h.jsx)(Ri,{section:e,key:t})))),Object(h.jsx)(d.EuiFlexItem,null,e.filter((e=>"right"===e.position)).map(((e,t)=>Object(h.jsx)(Ri,{section:e,key:t})))))));class job_details_JobDetailsUI extends n.Component{constructor(e){super(e),this.state={datafeedChartFlyoutVisible:!1,modelSnapshot:null,revertSnapshotFlyoutVisible:!1},this.props.addYourself&&this.props.addYourself(e.jobId,(e=>this.updateJob(e)))}componentWillUnmount(){this.props.removeYourself(this.props.jobId)}updateJob(e){this.setState({job:e})}render(){var e;const t=null!==(e=this.state.job)&&void 0!==e?e:this.props.job,{services:{http:{basePath:a}}}=this.props.kibana;if(void 0===t)return Object(h.jsx)("div",{className:"job-loading-spinner","data-test-subj":"mlJobDetails loading"},Object(h.jsx)(d.EuiLoadingSpinner,{size:"l"}));{const{refreshJobList:e,showClearButton:i}=this.props,{general:o,customUrl:r,node:l,calendars:c,detectors:p,influencers:m,analysisConfig:b,analysisLimits:f,dataDescription:j,customSettings:x,jobTags:v,datafeed:y,counts:O,modelSizeStats:E,jobTimingStats:w,datafeedTimingStats:M,alertRules:S}=function(e,t,a){var i,n;if(0===Object.keys(e).length)return{};const s={id:"general",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.generalTitle",{defaultMessage:"General"}),position:"left",items:Nt(e,!0).map(Rt)},{job_tags:o,custom_urls:r,...l}=null!==(i=e.custom_settings)&&void 0!==i?i:{},c={id:"customUrl",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.customUrlsTitle",{defaultMessage:"Custom URLs"}),position:"right",items:r?r.map((e=>[e.url_name,e.url_value,e.time_range])):[]},p={id:"analysisConfig",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.customSettingsTitle",{defaultMessage:"Custom settings"}),position:"right",items:l?Nt(l,!0,!0).map(Rt):[]},m={id:"analysisConfig",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.jobTagsTitle",{defaultMessage:"Job tags"}),position:"right",items:o?Nt(o):[]},b={id:"node",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.nodeTitle",{defaultMessage:"Node"}),position:"right",items:[]};e.node&&b.items.push(["name",e.node.name]);const f={id:"calendars",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.calendarsTitle",{defaultMessage:"Calendars"}),position:"right",items:[]};if(e.calendars){f.items=e.calendars.map((e=>["",Object(h.jsx)(d.EuiLink,{href:t.prepend(`/app/ml/settings/calendars_list/edit_calendar/${e}?_g=()`)},e)]));const a=s.items.findIndex((e=>"calendars"===e[0]));a>=0&&s.items.splice(a,1)}const g={id:"alertRules",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.alertRulesTitle",{defaultMessage:"Alert rules"}),position:"right",items:(null!==(n=e.alerting_rules)&&void 0!==n?n:[]).map((e=>["",Object(h.jsx)(Vt,{initialAlert:e,onSave:a})]))};if(e.alerting_rules){const e=s.items.findIndex((e=>"alerting_rules"===e[0]));e>=0&&s.items.splice(e,1)}const j={id:"detectors",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.detectorsTitle",{defaultMessage:"Detectors"}),position:"left",items:[]};e.analysis_config&&e.analysis_config.detectors&&j.items.push(...e.analysis_config.detectors.map((e=>{const t=Object(We.b)(e);return[t,t!==e.detector_description?e.detector_description:""]})));const x={id:"influencers",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.influencersTitle",{defaultMessage:"Influencers"}),position:"left",items:e.analysis_config.influencers.map((e=>["",e]))},v={id:"analysisConfig",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.analysisConfigTitle",{defaultMessage:"Analysis config"}),position:"left",items:Nt(e.analysis_config)},y={id:"analysisLimits",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.analysisLimitsTitle",{defaultMessage:"Analysis limits"}),position:"left",items:Nt(e.analysis_limits)},O={id:"dataDescription",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.dataDescriptionTitle",{defaultMessage:"Data description"}),position:"right",items:Nt(e.data_description)},E={id:"datafeed",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.datafeedTitle",{defaultMessage:"Datafeed"}),position:"left",items:Nt(e.datafeed_config||{},!0,!0)};if(e.node&&E.items.push(["node",JSON.stringify(e.node)]),e.datafeed_config&&e.datafeed_config.timing_stats){const e=E.items.findIndex((e=>"timing_stats"===e[0]));e>=0&&E.items.splice(e,1)}return{general:s,customUrl:c,node:b,calendars:f,detectors:j,influencers:x,analysisConfig:v,analysisLimits:y,dataDescription:O,customSettings:p,jobTags:m,datafeed:E,counts:{id:"counts",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.countsTitle",{defaultMessage:"Counts"}),position:"left",items:Nt(e.data_counts).map(Rt)},modelSizeStats:{id:"modelSizeStats",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.modelSizeStatsTitle",{defaultMessage:"Model size stats"}),position:"right",items:Nt(e.model_size_stats).map(Rt)},jobTimingStats:{id:"jobTimingStats",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.jobTimingStatsTitle",{defaultMessage:"Job timing stats"}),position:"left",items:Nt(e.timing_stats).map(Rt)},datafeedTimingStats:{id:"datafeedTimingStats",title:u.i18n.translate("xpack.ml.jobsList.jobDetails.datafeedTimingStatsTitle",{defaultMessage:"Timing stats"}),position:"right",items:e.datafeed_config&&e.datafeed_config.timing_stats?Nt(e.datafeed_config.timing_stats).filter((e=>"total_search_time_ms"!==e[0])).map(Rt):[]},alertRules:g}}(t,a,e);void 0===t.blocked&&(y.titleAction=Object(h.jsx)(d.EuiButtonEmpty,{onClick:()=>this.setState({datafeedChartFlyoutVisible:!0}),iconType:"visAreaStacked",size:"s"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobDetails.tabs.datafeed.viewCountsButtonText",defaultMessage:"View datafeed counts"})));const _=[{id:"job-settings","data-test-subj":"mlJobListTab-job-settings",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.tabs.jobSettingsLabel",{defaultMessage:"Job settings"}),content:Object(h.jsx)(Ni,{"data-test-subj":"mlJobDetails-job-settings",sections:[o,x,r,v,l,c,S]}),time:t.open_time},{id:"job-config","data-test-subj":"mlJobListTab-job-config",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.tabs.jobConfigLabel",{defaultMessage:"Job config"}),content:Object(h.jsx)(Ni,{"data-test-subj":"mlJobDetails-job-config",sections:[p,m,b,f,j]})},{id:"datafeed","data-test-subj":"mlJobListTab-datafeed",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.tabs.datafeedLabel",{defaultMessage:"Datafeed"}),content:Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Ni,{"data-test-subj":"mlJobDetails-datafeed",sections:[y,M]}),this.props.jobId&&this.state.datafeedChartFlyoutVisible?Object(h.jsx)(fi,{onClose:()=>{this.setState({datafeedChartFlyoutVisible:!1})},onModelSnapshotAnnotationClick:e=>{this.setState({modelSnapshot:e,revertSnapshotFlyoutVisible:!0,datafeedChartFlyoutVisible:!1})},end:t.data_counts.latest_bucket_timestamp,jobId:this.props.jobId}):null,!0===this.state.revertSnapshotFlyoutVisible&&null!==this.state.modelSnapshot?Object(h.jsx)(Ka,{snapshot:this.state.modelSnapshot,snapshots:[this.state.modelSnapshot],job:t,closeFlyout:()=>{this.setState({revertSnapshotFlyoutVisible:!1})},refresh:e}):null)},{id:"counts","data-test-subj":"mlJobListTab-counts",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.tabs.countsLabel",{defaultMessage:"Counts"}),content:Object(h.jsx)(Ni,{"data-test-subj":"mlJobDetails-counts",sections:[O,E,w]})},{id:"json","data-test-subj":"mlJobListTab-json",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.tabs.jsonLabel",{defaultMessage:"JSON"}),content:Object(h.jsx)(Ut,{job:t})},{id:"job-messages","data-test-subj":"mlJobListTab-job-messages",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.tabs.jobMessagesLabel",{defaultMessage:"Job messages"}),content:Object(h.jsx)(ni,{jobId:t.job_id,refreshJobList:e,showClearButton:i})}];return y.items.length&&_.push({id:"datafeed-preview",disabled:void 0!==t.blocked,"data-test-subj":"mlJobListTab-datafeed-preview",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.tabs.datafeedPreviewLabel",{defaultMessage:"Datafeed preview"}),content:Object(h.jsx)(qt,{job:t})},{id:"forecasts",disabled:void 0!==t.blocked,"data-test-subj":"mlJobListTab-forecasts",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.tabs.forecastsLabel",{defaultMessage:"Forecasts"}),content:Object(h.jsx)(Ai,{job:t})}),_.push({id:"annotations",disabled:void 0!==t.blocked,"data-test-subj":"mlJobListTab-annotations",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.tabs.annotationsLabel",{defaultMessage:"Annotations"}),content:Object(h.jsx)(n.Fragment,null,Object(h.jsx)(vi,{jobs:[t],refreshJobList:e}),Object(h.jsx)(Mi,null))}),_.push({id:"modelSnapshots",disabled:void 0!==t.blocked,"data-test-subj":"mlJobListTab-modelSnapshots",name:u.i18n.translate("xpack.ml.jobsList.jobDetails.tabs.modelSnapshotsLabel",{defaultMessage:"Model snapshots"}),content:Object(h.jsx)(n.Fragment,null,Object(h.jsx)(Ci,{job:t,refreshJobList:e}))}),Object(h.jsx)("div",{className:"tab-contents","data-test-subj":`mlJobListRowDetails details-${t.job_id}`},Object(h.jsx)(d.EuiTabbedContent,{tabs:_,initialSelectedTab:_[0],onTabClick:()=>{}}))}}}const Pi=Object(sa.withKibana)(job_details_JobDetailsUI),zi=({queryText:e,setFilters:t})=>{const[a,i]=Object(n.useState)(null),{services:{mlServices:{mlApiServices:s}}}=Object(Te.d)(),o=Object(n.useCallback)((async()=>{try{return(await s.jobs.groups()).map((e=>({value:e.id,view:Object(h.jsx)("div",{className:"group-item"},Object(h.jsx)(Tt.a,{name:e.id})," ",Object(h.jsx)("span",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.jobFilterBar.jobGroupTitle",defaultMessage:"({jobsCount, plural, one {# job} other {# jobs}})",values:{jobsCount:e.jobIds.length}})))})))}catch(e){return[]}}),[]),r=Object(n.useMemo)((()=>d.EuiSearchBar.Query.parse(null!=e?e:"")),[e]);Object(n.useEffect)((()=>{void 0!==e&&t(r)}),[e]);const l=Object(n.useMemo)((()=>[{type:"field_value_toggle_group",field:"job_state",items:[{value:"opened",name:u.i18n.translate("xpack.ml.jobsList.jobFilterBar.openedLabel",{defaultMessage:"Opened"})},{value:"closed",name:u.i18n.translate("xpack.ml.jobsList.jobFilterBar.closedLabel",{defaultMessage:"Closed"})},{value:"failed",name:u.i18n.translate("xpack.ml.jobsList.jobFilterBar.failedLabel",{defaultMessage:"Failed"})}]},{type:"field_value_toggle_group",field:"datafeed_state",items:[{value:"started",name:u.i18n.translate("xpack.ml.jobsList.jobFilterBar.startedLabel",{defaultMessage:"Started"})},{value:"stopped",name:u.i18n.translate("xpack.ml.jobsList.jobFilterBar.stoppedLabel",{defaultMessage:"Stopped"})}]},{type:"field_value_selection",field:"groups",name:u.i18n.translate("xpack.ml.jobsList.jobFilterBar.groupLabel",{defaultMessage:"Group"}),multiSelect:"or",cache:1e4,options:()=>o()}]),[]),c=Object(n.useMemo)((()=>null===a?"":u.i18n.translate("xpack.ml.jobsList.jobFilterBar.invalidSearchErrorMessage",{defaultMessage:"Invalid search: {errorMessage}",values:{errorMessage:a.message}})),[a]);return Object(h.jsx)(d.EuiFlexGroup,{direction:"column"},Object(h.jsx)(d.EuiFlexItem,{"data-test-subj":"mlJobListSearchBar",grow:!1},Object(h.jsx)(d.EuiSearchBar,{box:{incremental:!0},query:r,filters:l,onChange:({query:e,error:a})=>{a?i(a):(t(e),i(null))}}),Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,isInvalid:null!==a,error:c,style:{maxHeight:0}},Object(h.jsx)(n.Fragment,null))))};var Bi=a(155);class tabs_job_details_JobDetails extends n.Component{constructor(e){super(e),Ve()(this,"onDescriptionChange",(e=>{this.setJobDetails({jobDescription:e.target.value})})),Ve()(this,"onMmlChange",(e=>{this.setJobDetails({jobModelMemoryLimit:e.target.value})})),Ve()(this,"onModelSnapshotRetentionDaysChange",(e=>{const t=Math.floor(+e.target.value);this.setJobDetails({jobModelSnapshotRetentionDays:t,...this.state.dailyModelSnapshotRetentionAfterDays>t?{jobDailyModelSnapshotRetentionAfterDays:t}:{}})})),Ve()(this,"onDailyModelSnapshotRetentionAfterDaysChange",(e=>{const t=Math.floor(+e.target.value);t<=this.state.modelSnapshotRetentionDays&&this.setJobDetails({jobDailyModelSnapshotRetentionAfterDays:t})})),Ve()(this,"onGroupsChange",(e=>{this.setJobDetails({jobGroups:e.map((e=>e.label))})})),Ve()(this,"onCreateGroup",((e,t)=>{const a=e.trim().toLowerCase();if(!a)return;const i={label:e},n=this.state.groups;-1===t.findIndex((e=>e.label.trim().toLowerCase()===a))&&n.push(i);const s=this.state.selectedGroups.concat(i);this.setState({groups:n},(()=>this.onGroupsChange(s)))})),this.state={description:"",groups:[],selectedGroups:[],mml:"",mmlValidationError:"",groupsValidationError:"",modelSnapshotRetentionDays:1,dailyModelSnapshotRetentionAfterDays:1},this.setJobDetails=e.setJobDetails}componentDidMount(){Je.ml.jobs.groups().then((e=>{const t=e.map((e=>({label:e.id,color:Object(Bi.a)(e.id)})));this.setState({groups:t})})).catch((e=>{console.error("Could not load groups",e)}))}static getDerivedStateFromProps(e){const t=void 0!==e.jobGroups?e.jobGroups.map((e=>({label:e,color:Object(Bi.a)(e)}))):[],{datafeedRunning:a,jobClosed:i}=e;let n=null;return i||(n=Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.jobDetails.modelMemoryLimitJobOpenLabelHelp",defaultMessage:"Model memory limit cannot be edited while the job is open."})),a&&(n=Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.jobDetails.modelMemoryLimitLabelHelp",defaultMessage:"Model memory limit cannot be edited while the datafeed is running."})),{description:e.jobDescription,selectedGroups:t,mml:e.jobModelMemoryLimit,mmlHelpText:n,mmlValidationError:e.jobModelMemoryLimitValidationError,groupsValidationError:e.jobGroupsValidationError,modelSnapshotRetentionDays:e.jobModelSnapshotRetentionDays,dailyModelSnapshotRetentionAfterDays:e.jobDailyModelSnapshotRetentionAfterDays}}render(){const{description:e,selectedGroups:t,mml:a,groups:i,mmlValidationError:n,groupsValidationError:o,modelSnapshotRetentionDays:r,dailyModelSnapshotRetentionAfterDays:l,mmlHelpText:c}=this.state,{datafeedRunning:p,jobClosed:m}=this.props;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiForm,null,Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.jobDetails.jobDescriptionLabel",defaultMessage:"Job description"})},Object(h.jsx)(d.EuiFieldText,{value:e,onChange:this.onDescriptionChange})),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.jobDetails.jobGroupsLabel",defaultMessage:"Job groups"}),isInvalid:""!==o,error:o},Object(h.jsx)(d.EuiComboBox,{placeholder:u.i18n.translate("xpack.ml.jobsList.editJobFlyout.jobDetails.jobGroupsPlaceholder",{defaultMessage:"Select or create groups"}),options:i,selectedOptions:t,onChange:this.onGroupsChange,onCreateOption:this.onCreateGroup,isClearable:!0,isInvalid:""!==o,error:o})),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.jobDetails.modelMemoryLimitLabel",defaultMessage:"Model memory limit"}),helpText:c,isInvalid:""!==n,error:n},Object(h.jsx)(d.EuiFieldText,{value:a,onChange:this.onMmlChange,isInvalid:""!==n,error:n,disabled:p||!m})),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.jobDetails.modelSnapshotRetentionDaysLabel",defaultMessage:"Model snapshot retention days"})},Object(h.jsx)(d.EuiFieldNumber,{min:0,value:r,onChange:this.onModelSnapshotRetentionDaysChange})),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.jobDetails.dailyModelSnapshotRetentionAfterDaysLabel",defaultMessage:"Daily model snapshot retention after days"})},Object(h.jsx)(d.EuiFieldNumber,{min:0,max:r,value:l,onChange:this.onDailyModelSnapshotRetentionAfterDaysChange}))))}}class detectors_Detectors extends n.Component{constructor(e){super(e),Ve()(this,"onDescriptionChange",((e,t)=>{const a=this.state.detectorDescriptions;a[t]=e.target.value,this.setDetectorDescriptions({jobDetectorDescriptions:a})})),this.detectors=Ge.a.getJobGroups().map((e=>({label:e.id}))),this.state={detectors:[],detectorDescriptions:[]},this.setDetectorDescriptions=e.setDetectorDescriptions}static getDerivedStateFromProps(e){return{detectors:e.jobDetectors,detectorDescriptions:e.jobDetectorDescriptions}}render(){const{detectors:e,detectorDescriptions:t}=this.state;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.detectors.title",defaultMessage:"Edit detector descriptions"}))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiForm,null,t.map(((t,a)=>Object(h.jsx)(d.EuiFormRow,{label:Object(We.b)(e[a]),key:a},Object(h.jsx)(d.EuiFieldText,{value:t,onChange:e=>this.onDescriptionChange(e,a)}))))))}}function Vi(e,t){const a=void 0!==e?Object(Ke.a)(e).asSeconds():"";return{queryDelay:"60s",frequency:Object(Gt.f)(a)+"s",scrollSize:t.datafeeds.scroll_size}}class datafeed_Datafeed extends n.Component{constructor(e){super(e),Ve()(this,"onQueryChange",(e=>{this.setDatafeed({datafeedQuery:e})})),Ve()(this,"onQueryDelayChange",(e=>{this.setDatafeed({datafeedQueryDelay:e.target.value})})),Ve()(this,"onFrequencyChange",(e=>{this.setDatafeed({datafeedFrequency:e.target.value})})),Ve()(this,"onScrollSizeChange",(e=>{this.setDatafeed({datafeedScrollSize:+e.target.value})})),this.state={query:"",queryDelay:"",frequency:"",scrollSize:"",defaults:{queryDelay:"",frequency:"",scrollSize:0},jobDefaults:Object(ie.c)()},this.setDatafeed=e.setDatafeed}static getDerivedStateFromProps(e,t){return{query:e.datafeedQuery,queryDelay:e.datafeedQueryDelay,frequency:e.datafeedFrequency,scrollSize:e.datafeedScrollSize,defaults:Vi(e.jobBucketSpan,t.jobDefaults)}}render(){const{query:e,queryDelay:t,frequency:a,scrollSize:i,defaults:n}=this.state,{datafeedRunning:o}=this.props;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),o&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiCallOut,{color:"warning"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.datafeed.readOnlyCalloutText",defaultMessage:"Datafeed settings cannot be edited while the datafeed is running. Please stop the job if you wish to edit these settings."})),Object(h.jsx)(d.EuiSpacer,{size:"l"})),Object(h.jsx)(d.EuiForm,null,Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.datafeed.queryLabel",defaultMessage:"Query"}),style:{maxWidth:"inherit"}},Object(h.jsx)(Jt.a,{mode:Jt.b.XJSON,value:e,onChange:this.onQueryChange,height:"200px",readOnly:o})),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.datafeed.queryDelayLabel",defaultMessage:"Query delay"})},Object(h.jsx)(d.EuiFieldText,{value:t,placeholder:n.queryDelay,onChange:this.onQueryDelayChange,disabled:o})),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.datafeed.frequencyLabel",defaultMessage:"Frequency"})},Object(h.jsx)(d.EuiFieldText,{value:a,placeholder:n.frequency,onChange:this.onFrequencyChange,disabled:o})),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.datafeed.scrollSizeLabel",defaultMessage:"Scroll size"})},Object(h.jsx)(d.EuiFieldNumber,{value:i,placeholder:n.scrollSize,onChange:this.onScrollSizeChange,disabled:o}))))}}var Ji=a(291),Ui=a(147);function Gi(e){const t={groups:e},a=Object(Gt.w)(t),{valid:i}=a,n={valid:i,message:""};return Object(Ui.b)(a,{groupIds:n}),n}var qi=a(74),$i=a(359),Wi=a(158);const{collapseLiteralStrings:Hi}=qi.XJson;class edit_job_flyout_EditJobFlyoutUI extends n.Component{constructor(e){super(e),Ve()(this,"_initialJobFormState",null),Ve()(this,"closeFlyout",((e=!1)=>{!this.containsUnsavedChanges()||e?(this.setState({isConfirmationModalVisible:!1}),this.setState({isFlyoutVisible:!1})):this.setState({isConfirmationModalVisible:!0})})),Ve()(this,"showFlyout",(e=>{const t=e.hasDatafeed;tt(e.id).then((e=>{this.extractJob(e,t),this.setState({job:e,isFlyoutVisible:!0})})).catch((e=>{console.error(e)}))})),Ve()(this,"setJobDetails",(e=>{let{jobModelMemoryLimitValidationError:t,jobGroupsValidationError:a}=this.state;void 0!==e.jobModelMemoryLimit&&(t=function(e){const t=Object(ie.d)(),a={analysis_limits:{model_memory_limit:e}};let i=Object(Gt.y)(e),{valid:n}=i;n&&(i=Object(Gt.x)(a,t),n=i.valid);const s={valid:n,message:""};return Object(Ui.b)(i,{modelMemoryLimit:s}),s}(e.jobModelMemoryLimit).message),void 0!==e.jobGroups&&(a=Gi(e.jobGroups).message,""===a&&Je.ml.jobs.jobsExist(e.jobGroups,!0).then((e=>{!1==(!1===Object.values(e).some((e=>!0===e.exists&&!1===e.isGroup)))&&this.setState({jobGroupsValidationError:u.i18n.translate("xpack.ml.jobsList.editJobFlyout.groupsAndJobsHasSameIdErrorMessage",{defaultMessage:"A job with this ID already exists. Groups and jobs cannot use the same ID."}),isValidJobDetails:!1})})));const i=""===t&&""===a;this.setState({...e,jobModelMemoryLimitValidationError:t,jobGroupsValidationError:a,isValidJobDetails:i})})),Ve()(this,"setDetectorDescriptions",(e=>{this.setState({...e})})),Ve()(this,"setDatafeed",(e=>{this.setState({...e})})),Ve()(this,"setCustomUrls",(e=>{const t=Object($i.b)(e);this.setState({jobCustomUrls:e,isValidJobCustomUrls:t})})),Ve()(this,"save",(()=>{const e={description:this.state.jobDescription,groups:this.state.jobGroups,mml:this.state.jobModelMemoryLimit,modelSnapshotRetentionDays:this.state.jobModelSnapshotRetentionDays,dailyModelSnapshotRetentionAfterDays:this.state.jobDailyModelSnapshotRetentionAfterDays,detectorDescriptions:this.state.jobDetectorDescriptions,datafeedQuery:Hi(this.state.datafeedQuery),datafeedQueryDelay:this.state.datafeedQueryDelay,datafeedFrequency:this.state.datafeedFrequency,datafeedScrollSize:this.state.datafeedScrollSize,customUrls:this.state.jobCustomUrls},{toasts:t}=this.props.kibana.services.notifications,a=Object(qe.b)(t);Object(Ji.b)(this.state.job,e).then((()=>{t.addSuccess(u.i18n.translate("xpack.ml.jobsList.editJobFlyout.changesSavedNotificationMessage",{defaultMessage:"Changes to {jobId} saved",values:{jobId:this.state.job.job_id}})),this.refreshJobs(),this.closeFlyout(!0)})).catch((e=>{console.error(e),a.displayErrorToast(e,u.i18n.translate("xpack.ml.jobsList.editJobFlyout.changesNotSavedNotificationMessage",{defaultMessage:"Could not save changes to {jobId}",values:{jobId:this.state.job.job_id}}))}))})),this.state={job:{},hasDatafeed:!1,datafeedRunning:!1,isFlyoutVisible:!1,isConfirmationModalVisible:!1,jobDescription:"",jobGroups:[],jobModelMemoryLimit:"",jobModelSnapshotRetentionDays:10,jobDailyModelSnapshotRetentionAfterDays:10,jobDetectors:[],jobDetectorDescriptions:[],jobCustomUrls:[],datafeedQuery:"",datafeedQueryDelay:"",datafeedFrequency:"",datafeedScrollSize:"",jobModelMemoryLimitValidationError:"",jobGroupsValidationError:"",isValidJobDetails:!0,isValidJobCustomUrls:!0},this.refreshJobs=this.props.refreshJobs}componentDidMount(){"function"==typeof this.props.setShowFunction&&this.props.setShowFunction(this.showFlyout)}componentWillUnmount(){"function"==typeof this.props.unsetShowFunction&&this.props.unsetShowFunction()}containsUnsavedChanges(){return!Object(Ue.isEqual)(this._initialJobFormState,Object(Ue.pick)(this.state,["jobDescription","jobGroups","jobModelMemoryLimit","jobModelSnapshotRetentionDays","jobDailyModelSnapshotRetentionAfterDays","jobCustomUrls","jobDetectors","jobDetectorDescriptions","jobBucketSpan","datafeedQuery","datafeedQueryDelay","datafeedFrequency","datafeedScrollSize"]))}extractInitialJobFormState(e,t){const a=e.analysis_limits&&e.analysis_limits.model_memory_limit?e.analysis_limits.model_memory_limit:"",i=void 0!==e.model_snapshot_retention_days?e.model_snapshot_retention_days:10,n=void 0!==e.daily_model_snapshot_retention_after_days?e.daily_model_snapshot_retention_after_days:i,s=e.analysis_config&&e.analysis_config.detectors?[...e.analysis_config.detectors]:[],o=e.analysis_config?e.analysis_config.bucket_span:"",r={...e.datafeed_config},l=void 0!==r.frequency?r.frequency:"",c=e.custom_settings&&e.custom_settings.custom_urls?[...e.custom_settings.custom_urls]:[];this._initialJobFormState=Object.freeze({jobDescription:e.description,jobGroups:void 0!==e.groups?e.groups:[],jobModelMemoryLimit:a,jobModelSnapshotRetentionDays:i,jobDailyModelSnapshotRetentionAfterDays:n,jobDetectors:s,jobDetectorDescriptions:s.map((e=>e.detector_description)),jobBucketSpan:o,jobCustomUrls:c,datafeedQuery:t?JSON.stringify(r.query,null,2):"",datafeedQueryDelay:t?r.query_delay:"",datafeedFrequency:t?l:"",datafeedScrollSize:t?+r.scroll_size:null})}extractJob(e,t){this.extractInitialJobFormState(e,t);const a=t&&e.datafeed_config.state!==Ye.a.STOPPED,i=e.state===Ye.c.CLOSED;this.setState({job:e,hasDatafeed:t,datafeedRunning:a,jobClosed:i,jobModelMemoryLimitValidationError:"",jobGroupsValidationError:"",...Object(Ue.cloneDeep)(this._initialJobFormState)})}render(){let e,t;if(this.state.isFlyoutVisible){const{job:t,jobDescription:a,jobGroups:i,jobModelMemoryLimit:n,jobModelSnapshotRetentionDays:o,jobDailyModelSnapshotRetentionAfterDays:r,jobDetectors:l,jobDetectorDescriptions:c,jobBucketSpan:p,jobCustomUrls:m,datafeedQuery:b,datafeedQueryDelay:f,datafeedFrequency:j,datafeedScrollSize:x,jobGroupsValidationError:v,jobModelMemoryLimitValidationError:y,isValidJobDetails:O,isValidJobCustomUrls:E,datafeedRunning:w,jobClosed:M}=this.state,S=[{id:"job-details","data-test-subj":"mlEditJobFlyout-jobDetails",name:u.i18n.translate("xpack.ml.jobsList.editJobFlyout.jobDetailsTitle",{defaultMessage:"Job details"}),content:Object(h.jsx)(tabs_job_details_JobDetails,{jobClosed:M,datafeedRunning:w,jobDescription:a,jobGroups:i,jobModelMemoryLimit:n,jobModelSnapshotRetentionDays:o,jobDailyModelSnapshotRetentionAfterDays:r,setJobDetails:this.setJobDetails,jobGroupsValidationError:v,jobModelMemoryLimitValidationError:y})},{id:"detectors","data-test-subj":"mlEditJobFlyout-detectors",name:u.i18n.translate("xpack.ml.jobsList.editJobFlyout.detectorsTitle",{defaultMessage:"Detectors"}),content:Object(h.jsx)(detectors_Detectors,{jobDetectors:l,jobDetectorDescriptions:c,setDetectorDescriptions:this.setDetectorDescriptions})},{id:"datafeed","data-test-subj":"mlEditJobFlyout-datafeed",name:u.i18n.translate("xpack.ml.jobsList.editJobFlyout.datafeedTitle",{defaultMessage:"Datafeed"}),content:Object(h.jsx)(datafeed_Datafeed,{datafeedQuery:b,datafeedQueryDelay:f,datafeedFrequency:j,datafeedScrollSize:x,jobBucketSpan:p,setDatafeed:this.setDatafeed,datafeedRunning:w})},{id:"custom-urls","data-test-subj":"mlEditJobFlyout-customUrls",name:u.i18n.translate("xpack.ml.jobsList.editJobFlyout.customUrlsTitle",{defaultMessage:"Custom URLs"}),content:Object(h.jsx)($i.a,{job:t,jobCustomUrls:m,setCustomUrls:this.setCustomUrls})}];e=Object(h.jsx)(d.EuiFlyout,{onClose:()=>{this.closeFlyout()},size:"m","data-test-subj":"mlJobEditFlyout"},Object(h.jsx)(d.EuiFlyoutHeader,null,Object(h.jsx)(d.EuiTitle,null,Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.pageTitle",defaultMessage:"Edit {jobId}",values:{jobId:t.job_id}}))),yt(t)?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(Wi.a,{jobsCount:1,action:u.i18n.translate("xpack.ml.jobsList.editJobModal.editManagedJobDescription",{defaultMessage:"editing"})})):null),Object(h.jsx)(d.EuiFlyoutBody,null,Object(h.jsx)(d.EuiTabbedContent,{tabs:S,initialSelectedTab:S[0],onTabClick:()=>{}})),Object(h.jsx)(d.EuiFlyoutFooter,null,Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{iconType:"cross",onClick:()=>{this.closeFlyout()},flush:"left","data-test-subj":"mlEditJobFlyoutCloseButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.closeButtonLabel",defaultMessage:"Close"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:this.save,fill:!0,isDisabled:!1===O||!1===E,"data-test-subj":"mlEditJobFlyoutSaveButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.saveButtonLabel",defaultMessage:"Save"}))))))}return this.state.isConfirmationModalVisible&&(t=Object(h.jsx)(d.EuiConfirmModal,{title:u.i18n.translate("xpack.ml.jobsList.editJobFlyout.unsavedChangesDialogTitle",{defaultMessage:"Save changes before leaving?"}),onCancel:()=>this.closeFlyout(!0),onConfirm:()=>this.save(),cancelButtonText:u.i18n.translate("xpack.ml.jobsList.editJobFlyout.leaveAnywayButtonLabel",{defaultMessage:"Leave anyway"}),confirmButtonText:u.i18n.translate("xpack.ml.jobsList.editJobFlyout.saveChangesButtonLabel",{defaultMessage:"Save changes"}),defaultFocusedButton:"confirm"},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.unsavedChangesDialogMessage",defaultMessage:"If you don't save, your changes will be lost."})))),Object(h.jsx)("div",null,e,t)}}const Yi=Object(sa.withKibana)(edit_job_flyout_EditJobFlyoutUI);var Xi=a(222);const Qi=({setShowFunction:e,unsetShowFunction:t,refreshJobs:a})=>{const[i,o]=Object(n.useState)(!1),[r,l]=Object(n.useState)(!1),[c,p]=Object(n.useState)([]),[m,b]=Object(n.useState)(!1),[f,j]=Object(n.useState)(!1),[x,v]=Object(n.useState)(!1);Object(n.useEffect)((()=>("function"==typeof e&&e(y),()=>{"function"==typeof t&&t()})),[]);const y=Object(n.useCallback)((e=>{p(e.map((({id:e})=>e))),j(e.some((e=>yt(e)))),l(!0),o(!1),v(!1)}),[]),O=Object(n.useCallback)((()=>{l(!1),b(!1)}),[]),E=Object(n.useCallback)((()=>{o(!0),function(e,t,a=(()=>{})){const i=e.map((e=>e.id));Ge.a.deleteJobs(i,t).then((e=>{lt(e,Ye.c.DELETED),a()})).catch((e=>{Object(qe.a)().displayErrorToast(e,u.i18n.translate("xpack.ml.jobsList.deleteJobErrorMessage",{defaultMessage:"Jobs failed to delete"})),a()}))}(c.map((e=>({id:e}))),x),setTimeout((()=>{O(),a()}),2e3)}),[c,x,O,a]);return!1===r||0===c.length?null:m?Object(h.jsx)(d.EuiModal,{"data-test-subj":"mlDeleteJobConfirmModal",onClose:O},Object(h.jsx)(d.EuiModalHeader,null,Object(h.jsx)(d.EuiModalHeaderTitle,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.deleteJobModal.deleteJobsTitle",defaultMessage:"Delete {jobsCount, plural, one {{jobId}} other {# jobs}}?",values:{jobsCount:c.length,jobId:c[0]}}))),Object(h.jsx)(d.EuiModalBody,null,Object(h.jsx)("p",null,!0===i?Object(h.jsx)("div",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.deleteJobModal.deletingJobsStatusLabel",defaultMessage:"Deleting jobs"}),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)("div",{style:{textAlign:"center"}},Object(h.jsx)(d.EuiLoadingSpinner,{size:"l"}))):Object(h.jsx)(s.a.Fragment,null,f?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Wi.a,{jobsCount:c.length,action:u.i18n.translate("xpack.ml.jobsList.deleteJobModal.deleteAction",{defaultMessage:"deleting"})}),Object(h.jsx)(d.EuiSpacer,null)):null,Object(h.jsx)(d.EuiText,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.deleteJobModal.deleteMultipleJobsDescription",defaultMessage:"Deleting {jobsCount, plural, one {a job} other {multiple jobs}} can be time consuming. {jobsCount, plural, one {It} other {They}} will be deleted in the background and may not disappear from the jobs list instantly.",values:{jobsCount:c.length}}),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiSwitch,{label:u.i18n.translate("xpack.ml.jobsList.deleteJobModal.deleteUserAnnotations",{defaultMessage:"Delete annotations."}),checked:x,onChange:e=>v(e.target.checked),"data-test-subj":"mlDeleteJobConfirmModalDeleteAnnotationsSwitch"}))))),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiModalFooter,null,Object(h.jsx)(d.EuiButtonEmpty,{onClick:O,disabled:i},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.deleteJobModal.cancelButtonLabel",defaultMessage:"Cancel"})),Object(h.jsx)(d.EuiButton,{onClick:E,fill:!0,disabled:i,color:"danger","data-test-subj":"mlDeleteJobConfirmModalButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.deleteJobModal.deleteButtonLabel",defaultMessage:"Delete"}))))):Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Xi.a,{ids:c,mlSavedObjectType:"anomaly-detector",canDeleteCallback:()=>{b(!0)},onCloseCallback:O,refreshJobsCallback:a,hasManagedJob:f}))},Ki=({jobs:e})=>{const t=Object(n.useMemo)((()=>e.filter((e=>e.jobState!==Ye.c.CLOSED)).length),[e]);return 0===t?null:Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.resetJobModal.openJobsWarningCallout.title",defaultMessage:"{openJobsCount, plural, one {# job is} other {# jobs are}} not closed",values:{openJobsCount:t}}),color:"warning"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.resetJobModal.openJobsWarningCallout.description1",defaultMessage:"{openJobsCount, plural, one {This job} other {These jobs}} must be closed before {openJobsCount, plural, one {it} other {they}} can be reset. ",values:{openJobsCount:t}}),Object(h.jsx)("br",null),Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.resetJobModal.openJobsWarningCallout.description2",defaultMessage:"{openJobsCount, plural, one {This job} other {These jobs}} will not be reset when clicking the Reset button below.",values:{openJobsCount:t}})),Object(h.jsx)(d.EuiSpacer,{size:"m"}))},Zi=({setShowFunction:e,unsetShowFunction:t,refreshJobs:a})=>{const[i,o]=Object(n.useState)(!1),[r,l]=Object(n.useState)(!1),[c,p]=Object(n.useState)([]),[m,b]=Object(n.useState)([]),[f,j]=Object(n.useState)(!1),[x,v]=Object(n.useState)(!1);Object(n.useEffect)((()=>("function"==typeof e&&e(y),()=>{"function"==typeof t&&t()})),[]);const y=Object(n.useCallback)((e=>{p(e.map((({id:e})=>e))),b(e),j(e.some((e=>yt(e)))),l(!0),o(!1),v(!1)}),[]),O=Object(n.useCallback)((()=>{l(!1)}),[]),E=Object(n.useCallback)((async()=>{o(!0),await function(e,t,a=(()=>{})){Ge.a.resetJobs(e,t).then((e=>{lt(e,Xe.RESET),a()})).catch((e=>{Object(qe.a)().displayErrorToast(e,u.i18n.translate("xpack.ml.jobsList.resetJobErrorMessage",{defaultMessage:"Jobs failed to reset"})),a()}))}(c,x),O(),setTimeout((()=>{a()}),1e3)}),[O,x,c,a]);return!1===r||0===c.length?null:Object(h.jsx)(d.EuiModal,{"data-test-subj":"mlResetJobConfirmModal",onClose:O},Object(h.jsx)(d.EuiModalHeader,null,Object(h.jsx)(d.EuiModalHeaderTitle,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.resetJobModal.resetJobsTitle",defaultMessage:"Reset {jobsCount, plural, one {{jobId}} other {# jobs}}?",values:{jobsCount:c.length,jobId:c[0]}}))),Object(h.jsx)(d.EuiModalBody,null,Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Ki,{jobs:m}),!0===f?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Wi.a,{jobsCount:c.length,action:u.i18n.translate("xpack.ml.jobsList.startDatafeedsModal.resetManagedDatafeedsDescription",{defaultMessage:"resetting"})}),Object(h.jsx)(d.EuiSpacer,null)):null,Object(h.jsx)(d.EuiText,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.resetJobModal.resetMultipleJobsDescription",defaultMessage:"Resetting {jobsCount, plural, one {a job} other {multiple jobs}} can be time consuming. {jobsCount, plural, one {It} other {They}} will be reset in the background and may not be updated in the jobs list instantly.",values:{jobsCount:c.length}}),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiSwitch,{label:u.i18n.translate("xpack.ml.jobsList.resetJobModal.deleteUserAnnotations",{defaultMessage:"Delete annotations."}),checked:x,onChange:e=>v(e.target.checked)})))),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiModalFooter,null,Object(h.jsx)(d.EuiButtonEmpty,{onClick:O,disabled:i},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.resetJobModal.cancelButtonLabel",defaultMessage:"Cancel"})),Object(h.jsx)(d.EuiButton,{onClick:E,fill:!0,disabled:i,color:"danger","data-test-subj":"mlResetJobConfirmModalButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.resetJobModal.resetButtonLabel",defaultMessage:"Reset"})))))};a(420);class time_range_selector_TimeRangeSelector extends n.Component{constructor(e){super(e),Ve()(this,"setStartTab",(e=>{switch(this.setState({startTab:e}),e){case 0:this.setStartTime(void 0);break;case 1:this.setStartTime(this.now);break;case 2:this.setStartTime(this.twoWeeksAgo)}})),Ve()(this,"setEndTab",(e=>{switch(this.setState({endTab:e}),e){case 0:this.setEndTime(void 0);break;case 1:this.setEndTime(this.now)}})),Ve()(this,"setStartTime",(e=>{this.props.setStartTime(e)})),Ve()(this,"setEndTime",(e=>{this.props.setEndTime(e)})),this.state={startTab:0,endTab:1},this.latestTimestamp=this.props.startTime,this.now=this.props.now,this.twoWeeksAgo=bt()(this.now).subtract(2,"weeks").startOf("day")}getTabItems(){const e={start:bt.a.isMoment(this.props.startTime)?this.props.startTime:this.latestTimestamp,end:bt.a.isMoment(this.props.endTime)?this.props.endTime:this.now},t=this.latestTimestamp.format(ft.a),a=!0==this.latestTimestamp.valueOf()>0?[Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.continueFromStartTimeLabel",defaultMessage:"Continue from {formattedLatestStartTime}",values:{formattedLatestStartTime:t}}),Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.continueFromNowLabel",defaultMessage:"Continue from now"}),Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.continueFromSpecifiedTimeLabel",defaultMessage:"Continue from specified time"})]:[Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.startAtBeginningOfDataLabel",defaultMessage:"Start at beginning of data"}),Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.startFromNowLabel",defaultMessage:"Start from now"}),Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.specifyStartTimeLabel",defaultMessage:"Specify start time"})];return{startItems:[{index:0,label:a[0]},{index:1,label:a[1]},{index:2,label:a[2],body:Object(h.jsx)(tn,{date:e.start,onChange:this.setStartTime,maxDate:e.end,setIsValid:this.props.setTimeRangeValid,tab:this.state.startTab})}],endItems:[{index:0,label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.noEndTimeLabel",defaultMessage:"No end time (Real-time search)"})},{index:1,label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.specifyEndTimeLabel",defaultMessage:"Specify end time"}),body:Object(h.jsx)(tn,{date:e.end,onChange:this.setEndTime,minDate:e.start,setIsValid:this.props.setTimeRangeValid,tab:this.state.endTab})}]}}render(){const{startItems:e,endItems:t}=this.getTabItems();return Object(h.jsx)("div",{className:"time-range-selector"},!0===this.props.hasManagedJob&&0!==this.state.endTab?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Wi.a,{jobsCount:this.props.jobsCount,message:u.i18n.translate("xpack.ml.jobsList.startDatafeedsModal.startManagedDatafeedsDescription",{defaultMessage:"{jobsCount, plural, one {This job} other {At least one of these jobs}} is preconfigured by Elastic; starting {jobsCount, plural, one {it} other {them}} with a specific end time might impact other parts of the product.",values:{jobsCount:this.props.jobsCount}})}),Object(h.jsx)(d.EuiSpacer,null)):null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(en,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.searchStartTimeTitle",defaultMessage:"Search start time"}),items:e,switchState:this.state.startTab,switchFunc:this.setStartTab})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(en,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.searchEndTimeTitle",defaultMessage:"Search end time"}),items:t,switchState:this.state.endTab,switchFunc:this.setEndTab}))))}}function en({title:e,items:t,switchState:a,switchFunc:i}){return Object(h.jsx)("div",{className:"time-range-section"},Object(h.jsx)("div",{className:"time-range-section-title"},e),Object(h.jsx)("ul",{className:"tab-stack"},t.map(((e,t)=>{let n="";return a===e.index&&(n+="active "),void 0!==e.body&&(n+="has-body "),Object(h.jsx)("li",{key:t,className:n},Object(h.jsx)("a",{onClick:()=>i(e.index),onKeyUp:()=>{}},e.label),void 0!==e.body&&Object(h.jsx)("div",{className:"body"},e.body))}))))}const tn=({date:e,onChange:t,minDate:a,setIsValid:i,tab:o})=>{const[r,l]=Object(n.useState)(e.format(ft.a)),[c,p]=Object(n.useState)(o);return Object(n.useEffect)((()=>{c!==o&&(l(e.format(ft.a)),p(o))}),[o]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFieldText,{value:r,onChange:function(e){const a=e.target.value;l(a);const n=bt()(a);n.isValid()?(i(!0),t(n)):i(!1)},placeholder:ft.a,"aria-label":u.i18n.translate('xpack.ml.jobsList.startDatafeedModal.enterDateText"',{defaultMessage:"Enter date"})}),Object(h.jsx)(d.EuiDatePicker,{selected:e,onChange:function(e){l(e.format(ft.a)),i(!0),t(e)},minDate:a,inline:!0,showTimeSelect:!0}))};class start_datafeed_modal_StartDatafeedModal extends n.Component{constructor(e){super(e),Ve()(this,"setStartTime",(e=>{this.setState({startTime:e})})),Ve()(this,"setEndTime",(e=>{this.setState({endTime:e})})),Ve()(this,"setCreateAlert",(e=>{this.setState({createAlert:e.target.checked})})),Ve()(this,"closeModal",(()=>{this.setState({isModalVisible:!1})})),Ve()(this,"setTimeRangeValid",(e=>{this.setState({timeRangeValid:e})})),Ve()(this,"showModal",((e,t)=>{const a=bt()(),i=a,n=function(e){const t=e.map((e=>e.earliestStartTimestampMs||0));return bt()(Math.min(...t))}(e),s=e.length>0;this.setState({jobs:e,isModalVisible:!0,startTime:void 0,endTime:i,initialSpecifiedStartTime:n,showCreateAlertFlyout:t,allowCreateAlert:s,createAlert:!1,now:a,hasManagedJob:e.some((e=>yt(e)))})})),Ve()(this,"save",(()=>{const{jobs:e}=this.state,t=bt.a.isMoment(this.state.startTime)?this.state.startTime.valueOf():this.state.startTime,a=bt.a.isMoment(this.state.endTime)?this.state.endTime.valueOf():this.state.endTime;!function(e,t,a,i=(()=>{})){const n=e.filter((e=>e.hasDatafeed)).map((e=>e.datafeedId));Ge.a.forceStartDatafeeds(n,t,a).then((e=>{lt(e,Ye.a.STARTED),i()})).catch((e=>{Object($e.h)().addDanger(u.i18n.translate("xpack.ml.jobsList.startJobErrorMessage",{defaultMessage:"Jobs failed to start"}),e),i()}))}(e,t,a,(()=>{this.state.createAlert&&e.length>0&&this.getShowCreateAlertFlyoutFunction()(e.map((e=>e.id))),this.refreshJobs()})),this.closeModal()}));const t=bt()();this.state={jobs:this.props.jobs,isModalVisible:!1,startTime:t,endTime:t,createAlert:!1,allowCreateAlert:!1,initialSpecifiedStartTime:t,now:t,timeRangeValid:!0,hasManagedJob:!1},this.initialSpecifiedStartTime=t,this.refreshJobs=this.props.refreshJobs,this.getShowCreateAlertFlyoutFunction=this.props.getShowCreateAlertFlyoutFunction}componentDidMount(){"function"==typeof this.props.setShowFunction&&this.props.setShowFunction(this.showModal)}componentWillUnmount(){"function"==typeof this.props.unsetShowFunction&&this.props.unsetShowFunction()}render(){const{jobs:e,initialSpecifiedStartTime:t,startTime:a,endTime:i,createAlert:n,now:s,timeRangeValid:o}=this.state,r=void 0!==e?e.filter((e=>e.hasDatafeed)):[],l=!1===o||void 0!==a&&a===i;let c;return this.state.isModalVisible&&(c=Object(h.jsx)(d.EuiModal,{onClose:this.closeModal,style:{minWidth:"850px"},maxWidth:!1,"data-test-subj":"mlStartDatafeedModal"},Object(h.jsx)(d.EuiModalHeader,null,Object(h.jsx)(d.EuiModalHeaderTitle,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.startJobsTitle",defaultMessage:"Start {jobsCount, plural, one {{jobId}} other {# jobs}}",values:{jobsCount:r.length,jobId:r[0].id}}))),Object(h.jsx)(d.EuiModalBody,null,Object(h.jsx)(time_range_selector_TimeRangeSelector,{startTime:void 0===a?t:a,endTime:i,setStartTime:this.setStartTime,setEndTime:this.setEndTime,now:s,setTimeRangeValid:this.setTimeRangeValid,hasManagedJob:this.state.hasManagedJob,jobsCount:r.length}),void 0===this.state.endTime&&Object(h.jsx)("div",{className:"create-watch"},Object(h.jsx)(d.EuiHorizontalRule,null),Object(h.jsx)(d.EuiCheckbox,{id:"createAlert",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.createAlertDescription",defaultMessage:"Create alert rule after datafeed has started"}),checked:n,onChange:this.setCreateAlert}))),Object(h.jsx)(d.EuiModalFooter,null,Object(h.jsx)(d.EuiButtonEmpty,{onClick:this.closeModal,"data-test-subj":"mlStartDatafeedModalCancelButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.cancelButtonLabel",defaultMessage:"Cancel"})),Object(h.jsx)(d.EuiButton,{onClick:this.save,isDisabled:l,fill:!0,"data-test-subj":"mlStartDatafeedModalStartButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedModal.startButtonLabel",defaultMessage:"Start"}))))),Object(h.jsx)("div",null,c)}}class actions_menu_MultiJobActionsMenuUI extends n.Component{constructor(e){super(e),Ve()(this,"onButtonClick",(()=>{this.setState((e=>({isOpen:!e.isOpen})))})),Ve()(this,"closePopover",(()=>{this.setState({isOpen:!1})})),this.state={isOpen:!1},this.canDeleteJob=Object(Se.d)("canDeleteJob"),this.canStartStopDatafeed=Object(Se.d)("canStartStopDatafeed")&&Object(vt.e)(),this.canCloseJob=Object(Se.d)("canCloseJob")&&Object(vt.e)(),this.canResetJob=Object(Se.d)("canResetJob")&&Object(vt.e)(),this.canCreateMlAlerts=Object(Se.d)("canCreateMlAlerts")}render(){const e=this.props.jobs.some((e=>void 0!==e.blocked)),t=Object(h.jsx)(d.EuiButtonIcon,{size:"s",onClick:this.onButtonClick,iconType:"gear","aria-label":u.i18n.translate("xpack.ml.jobsList.multiJobActionsMenu.managementActionsAriaLabel",{defaultMessage:"Management actions"}),color:"text",disabled:e||!1===this.canDeleteJob&&!1===this.canStartStopDatafeed,"data-test-subj":"mlADJobListMultiSelectManagementActionsButton"}),a=[Object(h.jsx)(d.EuiContextMenuItem,{key:"delete",icon:"trash",disabled:!1===this.canDeleteJob,onClick:()=>{this.props.showDeleteJobModal(this.props.jobs),this.closePopover()},"data-test-subj":"mlADJobListMultiSelectDeleteJobActionButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.multiJobsActions.deleteJobsLabel",defaultMessage:"Delete {jobsCount, plural, one {job} other {jobs}}",values:{jobsCount:this.props.jobs.length}}))];return st(this.props.jobs)&&a.push(Object(h.jsx)(d.EuiContextMenuItem,{key:"close job",icon:"cross",disabled:!1===this.canCloseJob,onClick:()=>{this.props.jobs.some((e=>yt(e)))?this.props.showCloseJobsConfirmModal(this.props.jobs):ct(this.props.jobs),this.closePopover()},"data-test-subj":"mlADJobListMultiSelectCloseJobActionButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.multiJobsActions.closeJobsLabel",defaultMessage:"Close {jobsCount, plural, one {job} other {jobs}}",values:{jobsCount:this.props.jobs.length}}))),ot(this.props.jobs)&&a.push(Object(h.jsx)(d.EuiContextMenuItem,{key:"reset job",icon:"refresh",disabled:!1===this.canCloseJob,onClick:()=>{this.props.showResetJobModal(this.props.jobs),this.closePopover()},"data-test-subj":"mlADJobListMultiSelectResetJobActionButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.multiJobsActions.resetJobsLabel",defaultMessage:"Reset {jobsCount, plural, one {job} other {jobs}}",values:{jobsCount:this.props.jobs.length}}))),nt(this.props.jobs)&&a.push(Object(h.jsx)(d.EuiContextMenuItem,{key:"stop datafeed",icon:"stop",disabled:!1===this.canStartStopDatafeed,onClick:()=>{this.props.jobs.some((e=>yt(e)))?this.props.showStopDatafeedsConfirmModal(this.props.jobs):rt(this.props.jobs,this.props.refreshJobs),this.closePopover()},"data-test-subj":"mlADJobListMultiSelectStopDatafeedActionButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.multiJobsActions.stopDatafeedsLabel",defaultMessage:"Stop {jobsCount, plural, one {datafeed} other {datafeeds}}",values:{jobsCount:this.props.jobs.length}}))),it(this.props.jobs)&&a.push(Object(h.jsx)(d.EuiContextMenuItem,{key:"start datafeed",icon:"play",disabled:!1===this.canStartStopDatafeed,onClick:()=>{this.props.showStartDatafeedModal(this.props.jobs),this.closePopover()},"data-test-subj":"mlADJobListMultiSelectStartDatafeedActionButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.multiJobsActions.startDatafeedsLabel",defaultMessage:"Start {jobsCount, plural, one {datafeed} other {datafeeds}}",values:{jobsCount:this.props.jobs.length}}))),this.canCreateMlAlerts&&1===this.props.jobs.length&&a.push(Object(h.jsx)(d.EuiContextMenuItem,{key:"create alert",icon:"bell",disabled:!1,onClick:()=>{this.props.showCreateAlertFlyout(this.props.jobs.map((({id:e})=>e))),this.closePopover()},"data-test-subj":"mlADJobListMultiSelectCreateAlertActionButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.multiJobsActions.createAlertsLabel",defaultMessage:"Create alert rule"}))),Object(h.jsx)(d.EuiPopover,{button:t,isOpen:this.state.isOpen,closePopover:this.closePopover,panelPaddingSize:"none",anchorPosition:"downCenter"},Object(h.jsx)(d.EuiContextMenuPanel,{items:a.reverse()}))}}const an=actions_menu_MultiJobActionsMenuUI;function nn({group:e,selectedGroups:t}){return void 0!==t[e.id]?t[e.id].partial?Object(h.jsx)("div",{className:"check selected"},Object(h.jsx)("span",null,"—")):Object(h.jsx)("div",{className:"check selected"},Object(h.jsx)(d.EuiIcon,{type:"check"})):Object(h.jsx)("div",{className:"check"})}class group_list_GroupList extends n.Component{constructor(e){super(e),Ve()(this,"selectGroup",(e=>{this.props.selectGroup(e)})),Ve()(this,"moveUp",((e,t)=>{e.preventDefault(),t<0||t>0&&this.selectItems[t-1].focus()})),Ve()(this,"moveDown",((e,t)=>{e.preventDefault(),t{switch(e.key){case d.keys.ENTER:case d.keys.SPACE:this.selectGroup(t);break;case d.keys.ARROW_DOWN:this.moveDown(e,a);break;case d.keys.ARROW_UP:this.moveUp(e,a)}})),Ve()(this,"setRef",((e,t)=>{this.selectItems[t]=e})),this.state={groups:[]},this.selectItems=[]}render(){const{selectedGroups:e,groups:t}=this.props;return Object(h.jsx)(d.EuiFlexGroup,{direction:"column",gutterSize:"m"},t.map(((t,a)=>Object(h.jsx)("div",{tabIndex:"0",onKeyDown:e=>this.handleKeyDown(e,t,a),key:t.id,className:"group-item",onClick:()=>this.selectGroup(t),ref:e=>this.setRef(e,a)},Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Tt.a,{name:t.id})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(nn,{group:t,selectedGroups:e})))))))}}class new_group_input_NewGroupInput extends n.Component{constructor(e){super(e),Ve()(this,"changeTempNewGroup",(e=>{const t=e.target.value;let a="";a=""===t?"":this.props.allJobIds.includes(t)?u.i18n.translate("xpack.ml.jobsList.multiJobActions.groupSelector.groupsAndJobsCanNotUseSameIdErrorMessage",{defaultMessage:"A job with this ID already exists. Groups and jobs cannot use the same ID."}):Gi([t]).message,this.setState({tempNewGroupName:t,groupsValidationError:a})})),Ve()(this,"newGroupKeyPress",(e=>{e.key===d.keys.ENTER&&""===this.state.groupsValidationError&&""!==this.state.tempNewGroupName&&this.addNewGroup()})),Ve()(this,"addNewGroup",(()=>{this.props.addNewGroup(this.state.tempNewGroupName),this.setState({tempNewGroupName:""})})),this.state={tempNewGroupName:"",groupsValidationError:""}}render(){const{tempNewGroupName:e,groupsValidationError:t}=this.state;return Object(h.jsx)("div",null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"s",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{display:"rowCompressed",isInvalid:""!==t,error:t,className:"new-group-input"},Object(h.jsx)(d.EuiFieldText,{compressed:!0,placeholder:u.i18n.translate("xpack.ml.jobsList.multiJobActions.groupSelector.addNewGroupPlaceholder",{defaultMessage:"Add new group"}),value:e,onChange:this.changeTempNewGroup,onKeyDown:this.newGroupKeyPress,isInvalid:""!==t,error:t}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFormRow,{className:"new-group-input"},Object(h.jsx)(d.EuiButtonIcon,{onClick:this.addNewGroup,iconType:"plusInCircle","aria-label":u.i18n.translate("xpack.ml.jobsList.multiJobActions.groupSelector.addButtonAriaLabel",{defaultMessage:"Add"}),disabled:""===e||""!==t})))))}}function sn(e,t){const a=e.map((e=>e.id)),i={};return e.forEach((e=>{e.groups.forEach((e=>{void 0===i[e]&&(i[e]=0),i[e]++}))})),t.reduce(((e,t)=>(t.jobIds.some((e=>a.includes(e)))&&(e[t.id]={partial:i[t.id]!==a.length}),e)),{})}class group_selector_GroupSelector extends n.Component{constructor(e){super(e),Ve()(this,"togglePopover",(()=>{this.state.isPopoverOpen?this.closePopover():Je.ml.jobs.groups().then((e=>{const t=sn(this.props.jobs,e);this.setState({isPopoverOpen:!0,edited:!1,selectedGroups:t,groups:e})})).catch((e=>{console.error(e)}))})),Ve()(this,"closePopover",(()=>{this.setState({edited:!1,isPopoverOpen:!1})})),Ve()(this,"selectGroup",(e=>{const t=Object(Ue.cloneDeep)(this.state.selectedGroups);void 0===t[e.id]?t[e.id]={partial:!1}:!0===t[e.id].partial?t[e.id].partial=!1:delete t[e.id],this.setState({selectedGroups:t,edited:!0})})),Ve()(this,"applyChanges",(()=>{const{selectedGroups:e}=this.state,{jobs:t}=this.props,a=t.map((e=>({id:e.id,oldGroups:e.groups,newGroups:[]})));for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];a.forEach((e=>{(!1===i.partial||!0===i.partial&&e.oldGroups.includes(t))&&e.newGroups.push(t)}))}const i=a.map((e=>({jobId:e.id,groups:e.newGroups})));Je.ml.jobs.updateGroups(i).then((e=>{let t=!0;for(const a in e)e.hasOwnProperty(a)&&!1===e[a].success&&(Object(qe.a)().displayErrorToast(e[a].error),t=!1);t?(this.refreshJobs(),this.closePopover()):console.error(e)})).catch((e=>{Object(qe.a)().displayErrorToast(e),console.error(e)}))})),Ve()(this,"addNewGroup",(e=>{const t={id:e,calendarIds:[],jobIds:[]},a=this.state.groups;!1===a.some((e=>e.id===t.id))&&a.push(t),this.setState({groups:a})})),this.state={isPopoverOpen:!1,groups:[],selectedGroups:{},edited:!1},this.refreshJobs=this.props.refreshJobs,this.canUpdateJob=Object(Se.d)("canUpdateJob")}static getDerivedStateFromProps(e,t){return!1===t.edited?{selectedGroups:sn(e.jobs,t.groups)}:{}}render(){const{groups:e,selectedGroups:t,edited:a}=this.state,i=Object(h.jsx)(d.EuiToolTip,{position:"bottom",content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.multiJobActions.groupSelector.editJobGroupsButtonTooltip",defaultMessage:"Edit job groups"})},Object(h.jsx)(d.EuiButtonIcon,{iconType:"indexEdit","aria-label":u.i18n.translate("xpack.ml.jobsList.multiJobActions.groupSelector.editJobGroupsButtonAriaLabel",{defaultMessage:"Edit job groups"}),onClick:()=>this.togglePopover(),disabled:!1===this.canUpdateJob,"data-test-subj":"mlADJobListMultiSelectEditJobGroupsButton"}));return Object(h.jsx)(d.EuiPopover,{id:"trapFocus",ownFocus:!0,button:i,isOpen:this.state.isPopoverOpen,closePopover:()=>this.closePopover()},Object(h.jsx)("div",null,Object(h.jsx)(d.EuiPopoverTitle,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.multiJobActions.groupSelector.applyGroupsToJobTitle",defaultMessage:"Apply groups to {jobsCount, plural, one {job} other {jobs}}",values:{jobsCount:this.props.jobs.length}})),Object(h.jsx)(group_list_GroupList,{groups:e,selectedGroups:t,selectGroup:this.selectGroup}),Object(h.jsx)(d.EuiHorizontalRule,{margin:"xs"}),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(new_group_input_NewGroupInput,{addNewGroup:this.addNewGroup,allJobIds:this.props.allJobIds}),Object(h.jsx)(d.EuiHorizontalRule,{margin:"m"}),Object(h.jsx)("div",null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{size:"s",onClick:this.applyChanges,isDisabled:!1===a},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.multiJobActions.groupSelector.applyButtonLabel",defaultMessage:"Apply"})))))))}}const on={name:"1tntaqb",styles:"height:20px;width:1px;display:inline-block;vertical-align:middle;margin:0 5px"};class multi_job_actions_MultiJobActions extends n.Component{constructor(e){super(e),this.state={}}render(){const e=this.props.selectedJobs.length>0;return Object(h.jsx)("div",{"data-test-subj":"mlADJobListMultiSelectActionsArea "+(e?"active":"inactive")},e?Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs",alignItems:"center",wrap:!1,direction:"row",responsive:!1},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h3",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.multiJobsActions.jobsSelectedLabel",defaultMessage:"{selectedJobsCount, plural, one {# job} other {# jobs}} selected",values:{selectedJobsCount:this.props.selectedJobs.length}})))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)("div",{css:on})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(_t,{jobs:this.props.selectedJobs})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(group_selector_GroupSelector,{jobs:this.props.selectedJobs,allJobIds:this.props.allJobIds,refreshJobs:this.props.refreshJobs})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(an,{jobs:this.props.selectedJobs,showCloseJobsConfirmModal:this.props.showCloseJobsConfirmModal,showStartDatafeedModal:this.props.showStartDatafeedModal,showDeleteJobModal:this.props.showDeleteJobModal,showResetJobModal:this.props.showResetJobModal,showStopDatafeedsConfirmModal:this.props.showStopDatafeedsConfirmModal,refreshJobs:this.props.refreshJobs,showCreateAlertFlyout:this.props.showCreateAlertFlyout}))):null)}}var rn=a(33);function ln(){const e=Object(Se.f)("canCreateJob")&&Object(vt.e)(),t=Object(rn.a)(Fe.b.ANOMALY_DETECTION_CREATE_JOB_SELECT_INDEX);return Object(h.jsx)(d.EuiButton,{"data-test-subj":"mlCreateNewJobButton",onClick:t,size:"s",disabled:!1===e,fill:!0,iconType:"plusInCircle"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.createNewJobButtonLabel",defaultMessage:"Create job"}))}var cn=a(217);const dn=({jobsSummaryList:e})=>{const t=function(e){const t={activeNodes:{label:u.i18n.translate("xpack.ml.jobsList.statsBar.activeMLNodesLabel",{defaultMessage:"Active ML nodes"}),value:0,show:!0},total:{label:u.i18n.translate("xpack.ml.jobsList.statsBar.totalJobsLabel",{defaultMessage:"Total jobs"}),value:0,show:!0},open:{label:u.i18n.translate("xpack.ml.jobsList.statsBar.openJobsLabel",{defaultMessage:"Open jobs"}),value:0,show:!0},closed:{label:u.i18n.translate("xpack.ml.jobsList.statsBar.closedJobsLabel",{defaultMessage:"Closed jobs"}),value:0,show:!0},failed:{label:u.i18n.translate("xpack.ml.jobsList.statsBar.failedJobsLabel",{defaultMessage:"Failed jobs"}),value:0,show:!1},activeDatafeeds:{label:u.i18n.translate("xpack.ml.jobsList.statsBar.activeDatafeedsLabel",{defaultMessage:"Active datafeeds"}),value:0,show:!0}};if(void 0===e)return t;const a={};let i=0;return e.forEach((e=>{e.jobState===Ye.c.OPENED?t.open.value++:e.jobState===Ye.c.CLOSED?t.closed.value++:e.jobState===Ye.c.FAILED&&i++,e.hasDatafeed&&e.datafeedState===Ye.a.STARTED&&t.activeDatafeeds.value++,void 0!==e.nodeName&&(a[e.nodeName]={})})),t.total.value=e.length,i?(t.failed.value=i,t.failed.show=!0):t.failed.show=!1,t.activeNodes.value=Object.keys(a).length,t}(e);return Object(h.jsx)(cn.a,{stats:t,dataTestSub:"mlJobStatsBar"})};var un=a(36),pn=a(171),mn=a(154),bn=a(194);const fn=({setShowFunction:e,unsetShowFunction:t,refreshJobs:a})=>{const[i,o]=Object(n.useState)(!1),[r,l]=Object(n.useState)(!0),[c,p]=Object(n.useState)([]),m=Object(n.useMemo)((()=>c.map((({id:e})=>e))),[c]);Object(n.useEffect)((()=>("function"==typeof e&&e(b),()=>{"function"==typeof t&&t()})),[]);const b=Object(n.useCallback)((e=>{p(e),e.some((e=>yt(e)))&&(o(!0),l(!0))}),[]),f=Object(n.useCallback)((()=>{o(!1),l(!1)}),[]);if(!1===i)return null;if(r){const e=Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.stopDatafeedsModal.stopDatafeedsTitle",defaultMessage:"Stop datafeed for {jobsCount, plural, one {{jobId}} other {# jobs}}?",values:{jobsCount:m.length,jobId:m[0]}});return Object(h.jsx)(d.EuiModal,{"data-test-subj":"mlStopDatafeedsConfirmModal",onClose:f},Object(h.jsx)(d.EuiModalHeader,null,Object(h.jsx)(d.EuiModalHeaderTitle,null,e)),Object(h.jsx)(d.EuiModalBody,null,Object(h.jsx)(Wi.a,{jobsCount:m.length,action:u.i18n.translate("xpack.ml.jobsList.stopDatafeedsModal.stopManagedDatafeedsDescription",{defaultMessage:"stopping"})})),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiModalFooter,null,Object(h.jsx)(d.EuiButtonEmpty,{onClick:f},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.stopDatafeedsConfirmModal.cancelButtonLabel",defaultMessage:"Cancel"})),Object(h.jsx)(d.EuiButton,{onClick:()=>{rt(c,a),f()},fill:!0,color:"danger","data-test-subj":"mlStopDatafeedsConfirmModalButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.stopDatafeedsConfirmModal.stopButtonLabel",defaultMessage:"Stop {jobsCount, plural, one {datafeed} other {datafeeds}}",values:{jobsCount:m.length}})))))}return Object(h.jsx)(s.a.Fragment,null)},gn=({setShowFunction:e,unsetShowFunction:t,refreshJobs:a})=>{const[i,o]=Object(n.useState)(!1),[r,l]=Object(n.useState)(!0),[c,p]=Object(n.useState)([]),m=Object(n.useMemo)((()=>c.map((({id:e})=>e))),[c]);Object(n.useEffect)((()=>("function"==typeof e&&e(b),()=>{"function"==typeof t&&t()})),[]);const b=Object(n.useCallback)((e=>{p(e),e.some((e=>yt(e)))&&(o(!0),l(!0))}),[]),f=Object(n.useCallback)((()=>{o(!1),l(!1)}),[]);if(!1===i)return null;if(r){const e=Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedsModal.closeDatafeedsTitle",defaultMessage:"Close {jobsCount, plural, one {{jobId}} other {# jobs}}?",values:{jobsCount:m.length,jobId:m[0]}});return Object(h.jsx)(d.EuiModal,{"data-test-subj":"mlCloseJobsConfirmModal",onClose:f},Object(h.jsx)(d.EuiModalHeader,null,Object(h.jsx)(d.EuiModalHeaderTitle,null,e)),Object(h.jsx)(d.EuiModalBody,null,Object(h.jsx)(Wi.a,{jobsCount:m.length,action:u.i18n.translate("xpack.ml.jobsList.closeJobsModal.closeManagedDatafeedsDescription",{defaultMessage:"closing"})})),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiModalFooter,null,Object(h.jsx)(d.EuiButtonEmpty,{onClick:f},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedsConfirmModal.cancelButtonLabel",defaultMessage:"Cancel"})),Object(h.jsx)(d.EuiButton,{onClick:()=>{ct(c,a),f()},fill:!0,color:"danger","data-test-subj":"mlCloseJobsConfirmModalButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.startDatafeedsConfirmModal.closeButtonLabel",defaultMessage:"Close {jobsCount, plural, one {job} other {jobs}}",values:{jobsCount:m.length}})))))}return Object(h.jsx)(s.a.Fragment,null)};var hn=a(275);let jn=null;var xn={name:"hz1qxh",styles:"align-items:center;min-height:60px"};class jobs_list_view_JobsListView extends n.Component{constructor(e){super(e),Ve()(this,"toggleRow",(e=>{if(this.state.itemIdToExpandedRowMap[e]){const t={...this.state.itemIdToExpandedRowMap};delete t[e],this.setState({itemIdToExpandedRowMap:t})}else{const t=this.state.jobsSummaryList.filter((t=>t.id===e)),a=t.length>0&&void 0!==t[0].auditMessage;let i={...this.state.itemIdToExpandedRowMap};void 0!==this.state.fullJobsList[e]?i[e]=Object(h.jsx)(Pi,{jobId:e,job:this.state.fullJobsList[e],addYourself:this.addUpdateFunction,removeYourself:this.removeUpdateFunction,refreshJobList:this.onRefreshClick,showClearButton:a}):i[e]=Object(h.jsx)(Pi,{jobId:e,addYourself:this.addUpdateFunction,removeYourself:this.removeUpdateFunction,refreshJobList:this.onRefreshClick,showClearButton:a}),this.setState({itemIdToExpandedRowMap:i},(()=>{tt(e).then((t=>{const n={...this.state.fullJobsList};n[e]=t,this.setState({fullJobsList:n},(()=>{i={...this.state.itemIdToExpandedRowMap},void 0!==i[e]&&(i[e]=Object(h.jsx)(Pi,{jobId:e,job:t,addYourself:this.addUpdateFunction,removeYourself:this.removeUpdateFunction,refreshJobList:this.onRefreshClick,showClearButton:a})),this.setState({itemIdToExpandedRowMap:i},(()=>{this.updateFunctions[e](t)}))}))})).catch((e=>{console.error(e)}))}))}})),Ve()(this,"addUpdateFunction",((e,t)=>{this.updateFunctions[e]=t})),Ve()(this,"removeUpdateFunction",(e=>{delete this.updateFunctions[e]})),Ve()(this,"setShowEditJobFlyoutFunction",(e=>{this.showEditJobFlyout=e})),Ve()(this,"unsetShowEditJobFlyoutFunction",(()=>{this.showEditJobFlyout=()=>{}})),Ve()(this,"setShowDatafeedChartFlyoutFunction",(e=>{this.showDatafeedChartFlyout=e})),Ve()(this,"unsetShowDatafeedChartFlyoutFunction",(()=>{this.showDatafeedChartFlyout=()=>{}})),Ve()(this,"setShowStopDatafeedsConfirmModalFunction",(e=>{this.showStopDatafeedsConfirmModal=e})),Ve()(this,"unsetShowStopDatafeedsConfirmModalFunction",(()=>{this.showStopDatafeedsConfirmModal=()=>{}})),Ve()(this,"setShowCloseJobsConfirmModalFunction",(e=>{this.showCloseJobsConfirmModal=e})),Ve()(this,"unsetShowCloseJobsConfirmModalFunction",(()=>{this.showCloseJobsConfirmModal=()=>{}})),Ve()(this,"setShowDeleteJobModalFunction",(e=>{this.showDeleteJobModal=e})),Ve()(this,"unsetShowDeleteJobModalFunction",(()=>{this.showDeleteJobModal=()=>{}})),Ve()(this,"setShowResetJobModalFunction",(e=>{this.showResetJobModal=e})),Ve()(this,"unsetShowResetJobModalFunction",(()=>{this.showResetJobModal=()=>{}})),Ve()(this,"setShowStartDatafeedModalFunction",(e=>{this.showStartDatafeedModal=e})),Ve()(this,"unsetShowStartDatafeedModalFunction",(()=>{this.showStartDatafeedModal=()=>{}})),Ve()(this,"setShowCreateAlertFlyoutFunction",(e=>{this.showCreateAlertFlyout=e})),Ve()(this,"unsetShowCreateAlertFlyoutFunction",(()=>{this.showCreateAlertFlyout=()=>{}})),Ve()(this,"getShowCreateAlertFlyoutFunction",(()=>this.showCreateAlertFlyout)),Ve()(this,"selectJobChange",(e=>{this.setState({selectedJobs:e})})),Ve()(this,"setFilters",(async e=>{if(null===e)return void this.setState({filteredJobsSummaryList:this.state.jobsSummaryList,filterClauses:[]},(()=>{this.refreshSelectedJobs()}));this.props.onJobsViewStateUpdate({queryText:null==e?void 0:e.text},!1===this._isFiltersSet);const t=e&&e.ast&&e.ast.clauses||[];if(0===t.length)return void this.setState({filteredJobsSummaryList:this.state.jobsSummaryList,filterClauses:t},(()=>{this.refreshSelectedJobs()}));const a=dt(this.state.jobsSummaryList,t);this.setState({filteredJobsSummaryList:a,filterClauses:t},(()=>{this.refreshSelectedJobs()})),this._isFiltersSet=!0})),Ve()(this,"onRefreshClick",(()=>{this.setState({isRefreshing:!0}),this.refreshJobSummaryList()})),Ve()(this,"isDoneRefreshing",(()=>{this.setState({isRefreshing:!1})})),this.state={isRefreshing:!1,loading:null,jobsSummaryList:[],filteredJobsSummaryList:[],fullJobsList:{},selectedJobs:[],itemIdToExpandedRowMap:{},filterClauses:[],blockingJobIds:[],jobsAwaitingNodeCount:0},this.updateFunctions={},this.showEditJobFlyout=()=>{},this.showDatafeedChartFlyout=()=>{},this.showStopDatafeedsConfirmModal=()=>{},this.showCloseJobsConfirmModal=()=>{},this.showDeleteJobModal=()=>{},this.showResetJobModal=()=>{},this.showStartDatafeedModal=()=>{},this.showCreateAlertFlyout=()=>{},this._isMounted=!1,this._isFiltersSet=!1}componentDidMount(){this._isMounted=!0,this.refreshJobSummaryList(),this.openAutoStartDatafeedModal()}componentDidUpdate(e){e.lastRefresh!==this.props.lastRefresh&&(this.setState({isRefreshing:!0}),this.refreshJobSummaryList())}componentWillUnmount(){jn=null,this._isMounted=!1}openAutoStartDatafeedModal(){const e=function(){const e=Ge.a.tempJobCloningObjects.job,t=Ge.a.tempJobCloningObjects.datafeed;if(void 0!==e){Ge.a.tempJobCloningObjects.job=void 0,Ge.a.tempJobCloningObjects.datafeed=void 0,Ge.a.tempJobCloningObjects.createdBy=void 0;const a=Object(et.a)(t),i=a?t.datafeed_id:"";return{id:e.job_id,hasDatafeed:a,latestTimestampSortValue:0,datafeedId:i}}}();void 0!==e&&this.showStartDatafeedModal([e])}refreshSelectedJobs(){var e;const t=this.state.selectedJobs.map((e=>e.id)),a=(null!==(e=this.state.filteredJobsSummaryList)&&void 0!==e?e:[]).map((e=>e.id)),i=this.state.jobsSummaryList.filter((e=>t.find((t=>t===e.id)))).filter((e=>a.find((t=>t===e.id))));this.setState({selectedJobs:i})}async refreshJobSummaryList(){if(!1===this._isMounted)return;null===this.state.loading&&this.setState({loading:!0});const e=Object.keys(this.state.itemIdToExpandedRowMap);try{let t=0;const a=await Je.ml.jobs.jobsSummary(e),i={},n=a.map((e=>(void 0!==e.fullJob&&(i[e.id]=e.fullJob,delete e.fullJob),e.latestTimestampSortValue=e.latestTimestampMs||0,!0===e.awaitingNodeAssignment&&t++,e))),s=dt(n,this.state.filterClauses);this.setState({jobsSummaryList:n,filteredJobsSummaryList:s,fullJobsList:i,loading:!1,jobsAwaitingNodeCount:t},(()=>{this.refreshSelectedJobs()})),Object.keys(this.updateFunctions).forEach((e=>{this.updateFunctions[e](i[e])})),this.isDoneRefreshing(),n.some((e=>void 0!==e.blocked))&&this.checkBlockingJobTasks(!0)}catch(e){console.error(e),this.setState({loading:!1})}}async checkBlockingJobTasks(e=!1){if(!1===this._isMounted)return;const{jobs:t}=await Je.ml.jobs.blockingJobTasks(),a=t.map((e=>Object.keys(e)[0])).sort(),i=a.join()!==this.state.blockingJobIds.join();this.setState({blockingJobIds:a}),(i||e)&&this.refreshJobSummaryList(),a.length>0&&null===jn&&(jn=setTimeout((()=>{jn=null,this.checkBlockingJobTasks()}),2e3))}renderJobsListComponents(){const{isRefreshing:e,loading:t,jobsSummaryList:a,jobsAwaitingNodeCount:i}=this.state,n=a.map((e=>e.id)),o=!t&&0===n.length;return Object(h.jsx)("div",{"data-test-subj":"ml-jobs-list"},Object(h.jsx)(un.b,null),Object(h.jsx)(pn.a,{jobCount:i}),Object(h.jsx)(mn.a,{onCloseFlyout:this.onRefreshClick,forceRefresh:t||e}),Object(h.jsx)(bn.a,null),Object(h.jsx)(s.a.Fragment,null,o?Object(h.jsx)(hn.a,null):null,n.length>0?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(dn,{jobsSummaryList:a})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(ln,null))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)("div",null,Object(h.jsx)(d.EuiFlexGroup,{css:xn,gutterSize:"none"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(multi_job_actions_MultiJobActions,{selectedJobs:this.state.selectedJobs,allJobIds:n,showCloseJobsConfirmModal:this.showCloseJobsConfirmModal,showStartDatafeedModal:this.showStartDatafeedModal,showDeleteJobModal:this.showDeleteJobModal,showResetJobModal:this.showResetJobModal,showCreateAlertFlyout:this.showCreateAlertFlyout,showStopDatafeedsConfirmModal:this.showStopDatafeedsConfirmModal,refreshJobs:()=>this.refreshJobSummaryList()})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(zi,{setFilters:this.setFilters,queryText:this.props.jobsViewState.queryText}))),Object(h.jsx)(jobs_list_JobsList,{jobsSummaryList:this.state.filteredJobsSummaryList,fullJobsList:this.state.fullJobsList,itemIdToExpandedRowMap:this.state.itemIdToExpandedRowMap,toggleRow:this.toggleRow,selectJobChange:this.selectJobChange,showEditJobFlyout:this.showEditJobFlyout,showDatafeedChartFlyout:this.showDatafeedChartFlyout,showDeleteJobModal:this.showDeleteJobModal,showResetJobModal:this.showResetJobModal,showCloseJobsConfirmModal:this.showCloseJobsConfirmModal,showStartDatafeedModal:this.showStartDatafeedModal,showStopDatafeedsConfirmModal:this.showStopDatafeedsConfirmModal,refreshJobs:()=>this.refreshJobSummaryList(),jobsViewState:this.props.jobsViewState,onJobsViewStateUpdate:this.props.onJobsViewStateUpdate,selectedJobsCount:this.state.selectedJobs.length,showCreateAlertFlyout:this.showCreateAlertFlyout,loading:t}))):null,Object(h.jsx)(Yi,{setShowFunction:this.setShowEditJobFlyoutFunction,unsetShowFunction:this.unsetShowEditJobFlyoutFunction,refreshJobs:()=>this.refreshJobSummaryList(),allJobIds:n}),Object(h.jsx)(gi,{setShowFunction:this.setShowDatafeedChartFlyoutFunction,unsetShowFunction:this.unsetShowDatafeedChartFlyoutFunction,refreshJobs:()=>this.refreshJobSummaryList()}),Object(h.jsx)(fn,{setShowFunction:this.setShowStopDatafeedsConfirmModalFunction,unsetShowFunction:this.unsetShowStopDatafeedsConfirmModalFunction,refreshJobs:()=>this.refreshJobSummaryList(),allJobIds:n}),Object(h.jsx)(gn,{setShowFunction:this.setShowCloseJobsConfirmModalFunction,unsetShowFunction:this.unsetShowCloseJobsConfirmModalFunction,refreshJobs:()=>this.refreshJobSummaryList()}),Object(h.jsx)(Qi,{setShowFunction:this.setShowDeleteJobModalFunction,unsetShowFunction:this.unsetShowDeleteJobModalFunction,refreshJobs:()=>this.refreshJobSummaryList()}),Object(h.jsx)(Zi,{setShowFunction:this.setShowResetJobModalFunction,unsetShowFunction:this.unsetShowResetJobModalFunction,refreshJobs:()=>this.refreshJobSummaryList()}),Object(h.jsx)(start_datafeed_modal_StartDatafeedModal,{setShowFunction:this.setShowStartDatafeedModalFunction,unsetShowFunction:this.unsetShowDeleteJobModalFunction,getShowCreateAlertFlyoutFunction:this.getShowCreateAlertFlyoutFunction,refreshJobs:()=>this.refreshJobSummaryList()}),Object(h.jsx)(Bt,{setShowFunction:this.setShowCreateAlertFlyoutFunction,unsetShowFunction:this.unsetShowCreateAlertFlyoutFunction,onSave:this.onRefreshClick})))}render(){return Object(h.jsx)("div",null,this.renderJobsListComponents())}}var vn=a(111),yn=a(135),On=a(281);const En=({children:e})=>{const{services:t}=Object(Te.d)(),{theme:a,i18n:i}=t,{setHeaderActionMenu:s}=Object(n.useContext)(On.b),r=Object(n.useMemo)((()=>Object(o.c)()),[]);return Object(n.useEffect)((()=>{if(s)return s((e=>Object(yn.a)(Object(h.jsx)(sa.KibanaContextProvider,{services:t},Object(h.jsx)(o.b,{node:r})),{theme:a,i18n:i})(e))),()=>{r.unmount(),s(void 0)}}),[r,s,t.theme.theme$]),Object(h.jsx)(o.a,{node:r},e)},wn=()=>{const e=Object(Te.h)(),t=Object(Te.g)();return Object(h.jsx)(d.EuiButtonEmpty,{onClick:async()=>{if(!t)return;const a=await t.getUrl({page:Fe.b.SETTINGS});e(a)},iconType:"gear"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.navMenu.settingsTabLinkText",defaultMessage:"Settings"}))},Mn=({isMlEnabledInSpace:e,lastRefresh:t})=>{const[a,i]=Object(ze.c)(Fe.b.ANOMALY_DETECTION_JOBS_MANAGE,{pageIndex:0,pageSize:10,sortField:"id",sortDirection:"asc"}),{services:{docLinks:n}}=Object(Te.d)(),o=n.links.ml.anomalyDetection;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.jobsList.title",defaultMessage:"Anomaly Detection Jobs"})),Object(h.jsx)(En,null,Object(h.jsx)(wn,null)),Object(h.jsx)(jobs_list_view_JobsListView,{isMlEnabledInSpace:e,lastRefresh:t,jobsViewState:a,onJobsViewStateUpdate:i}),Object(h.jsx)(_e.a,{docLink:o}))},Sn=()=>({getMlNodeCount:vt.b,loadMlServerInfo:ie.g}),_n=(e,t)=>({id:"anomaly_detection",title:u.i18n.translate("xpack.ml.anomalyDetection.jobs.docTitle",{defaultMessage:"Anomaly Detection Jobs"}),path:Object(Ee.c)(te.a.ANOMALY_DETECTION_JOBS_MANAGE),render:()=>Object(h.jsx)(Tn,null),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("ANOMALY_DETECTION_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.anomalyDetection.jobsManagementLabel",{defaultMessage:"Jobs"})}],"data-test-subj":"mlPageJobManagement",enableDatePicker:!0}),Tn=()=>{var e,t,a;const{context:i}=Ie("full",["canGetJobs"],Sn()),s=Object(ee.i)({timeRangeSelector:!1,autoRefreshSelector:!0}),o=Object(ee.g)(),r=C()(ee.f),l=null!==(e=null==r?void 0:r.lastRefresh)&&void 0!==e?e:0,c=null!==(t=o.value)&&void 0!==t?t:0,d=null===(a=o.pause)||void 0===a||a;Object(n.useEffect)((()=>{const e=0===c||!0===d?{pause:!1,value:3e4}:{pause:d,value:c};s.setRefreshInterval(e)}),[]);const u=Object(n.useMemo)((()=>new ea.a),[]);return Object(h.jsx)(Ee.b,{context:i},Object(h.jsx)(oa.Provider,{value:u},Object(h.jsx)(Mn,{lastRefresh:l})))};var Cn=a(80);const kn=({nextStepPath:e})=>{const{contentManagement:t,uiSettings:a}=Object(Te.d)().services,i=Object(Te.h)();return Object(h.jsx)("div",{"data-test-subj":"mlPageSourceSelection"},Object(h.jsx)(d.EuiPageBody,{restrictWidth:1200},Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.selectDataViewOrSavedSearch",defaultMessage:"Select data view or saved search"})),Object(h.jsx)(d.EuiPageContent_Deprecated,{hasShadow:!1,hasBorder:!0},Object(h.jsx)(Cn.SavedObjectFinder,{key:"searchSavedObjectFinder",onChoose:(t,a)=>{i(`${e}?${"index-pattern"===a?"index":"savedSearchId"}=${encodeURIComponent(t)}`)},showFilter:!0,noItemsMessage:u.i18n.translate("xpack.ml.newJob.wizard.searchSelection.notFoundLabel",{defaultMessage:"No matching data views or saved searches found."}),savedObjectMetaData:[{type:"search",getIconForSavedObject:()=>"search",name:u.i18n.translate("xpack.ml.newJob.wizard.searchSelection.savedObjectType.search",{defaultMessage:"Saved search"})},{type:"index-pattern",getIconForSavedObject:()=>"indexPatternApp",name:u.i18n.translate("xpack.ml.newJob.wizard.searchSelection.savedObjectType.dataView",{defaultMessage:"Data view"})}],fixedPageSize:20,services:{contentClient:t.client,uiSettings:a}}))))};var Fn;!function(e){e[e.NEW_JOB=0]="NEW_JOB",e[e.DATAVISUALIZER=1]="DATAVISUALIZER"}(Fn||(Fn={}));const In=(e,t)=>[Oe("ML_BREADCRUMB",e,t),Oe("ANOMALY_DETECTION_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.jobsBreadcrumbs.createJobLabel",{defaultMessage:"Create job"})}],Dn=(e,t)=>[Oe("ML_BREADCRUMB",e,t),Oe("DATA_VISUALIZER_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.jobsBreadcrumbs.selectDateViewLabel",{defaultMessage:"Select Data View"})}],An=(e,t)=>[Oe("ML_BREADCRUMB",e,t),Oe("AIOPS_BREADCRUMB_LOG_RATE_ANALYSIS",e,t),Oe("LOG_RATE_ANALYSIS",e,t),{text:u.i18n.translate("xpack.ml.aiopsBreadcrumbs.selectDataViewLabel",{defaultMessage:"Select Data View"})}],Ln=(e,t)=>[Oe("ML_BREADCRUMB",e,t),Oe("AIOPS_BREADCRUMB_LOG_PATTERN_ANALYSIS",e,t),Oe("LOG_PATTERN_ANALYSIS",e,t),{text:u.i18n.translate("xpack.ml.aiopsBreadcrumbs.selectDataViewLabel",{defaultMessage:"Select Data View"})}],Rn=(e,t)=>[Oe("ML_BREADCRUMB",e,t),Oe("AIOPS_BREADCRUMB_CHANGE_POINT_DETECTION",e,t),Oe("CHANGE_POINT_DETECTION",e,t),{text:u.i18n.translate("xpack.ml.aiopsBreadcrumbs.selectDataViewLabel",{defaultMessage:"Select Data View"})}],Nn=(e,t)=>({path:Object(Ee.c)(te.a.ANOMALY_DETECTION_CREATE_JOB_SELECT_INDEX),render:(e,t)=>Object(h.jsx)(Gn,m()({},e,{nextStepPath:Object(Ee.c)(te.a.ANOMALY_DETECTION_CREATE_JOB_SELECT_TYPE),deps:t,mode:Fn.NEW_JOB})),breadcrumbs:In(e,t)}),Pn=(e,t)=>({id:"data_view_datavisualizer",path:Object(Ee.c)(te.a.DATA_VISUALIZER_INDEX_SELECT),title:u.i18n.translate("xpack.ml.selectDataViewLabel",{defaultMessage:"Select Data View"}),render:(e,t)=>Object(h.jsx)(Gn,m()({},e,{nextStepPath:Object(Ee.c)(te.a.DATA_VISUALIZER_INDEX_VIEWER),deps:t,mode:Fn.DATAVISUALIZER})),breadcrumbs:Dn(e,t)}),zn=(e,t)=>({id:"data_view_log_rate_analysis",path:Object(Ee.c)(te.a.AIOPS_LOG_RATE_ANALYSIS_INDEX_SELECT),title:u.i18n.translate("xpack.ml.selectDataViewLabel",{defaultMessage:"Select Data View"}),render:(e,t)=>Object(h.jsx)(Gn,m()({},e,{nextStepPath:Object(Ee.c)(te.a.AIOPS_LOG_RATE_ANALYSIS),deps:t,mode:Fn.DATAVISUALIZER})),breadcrumbs:An(e,t)}),Bn=()=>({path:Object(Ee.c)(te.a.AIOPS_EXPLAIN_LOG_RATE_SPIKES_INDEX_SELECT),render:()=>Object(h.jsx)(r.Redirect,{to:Object(Ee.c)(te.a.AIOPS_LOG_RATE_ANALYSIS_INDEX_SELECT)}),breadcrumbs:[]}),Vn=(e,t)=>({id:"data_view_log_categorization",path:Object(Ee.c)(te.a.AIOPS_LOG_CATEGORIZATION_INDEX_SELECT),title:u.i18n.translate("xpack.ml.selectDataViewLabel",{defaultMessage:"Select Data View"}),render:(e,t)=>Object(h.jsx)(Gn,m()({},e,{nextStepPath:Object(Ee.c)(te.a.AIOPS_LOG_CATEGORIZATION),deps:t,mode:Fn.DATAVISUALIZER})),breadcrumbs:Ln(e,t)}),Jn=(e,t)=>({id:"data_view_change_point_detection",path:Object(Ee.c)(te.a.AIOPS_CHANGE_POINT_DETECTION_INDEX_SELECT),title:u.i18n.translate("xpack.ml.selectDataViewLabel",{defaultMessage:"Select Data View"}),render:(e,t)=>Object(h.jsx)(Gn,m()({},e,{nextStepPath:Object(Ee.c)(te.a.AIOPS_CHANGE_POINT_DETECTION),deps:t,mode:Fn.DATAVISUALIZER})),breadcrumbs:Rn(e,t)}),Un=(e,t)=>({id:"data_view_data_comparison",path:Object(Ee.c)(te.a.DATA_COMPARISON_INDEX_SELECT),title:u.i18n.translate("xpack.ml.selectDataViewLabel",{defaultMessage:"Select Data View"}),render:(e,t)=>Object(h.jsx)(Gn,m()({},e,{nextStepPath:Object(Ee.c)(te.a.DATA_COMPARISON),deps:t,mode:Fn.NEW_JOB})),breadcrumbs:Dn(e,t)}),Gn=({nextStepPath:e,mode:t})=>{const{services:{http:{basePath:a},application:{navigateToUrl:i},data:{dataViews:n}}}=Object(Te.d)(),s={...Sn(),preConfiguredJobRedirect:()=>async function(e,t,a){const{createdBy:i,job:n,datafeed:s}=Ge.a.tempJobCloningObjects;if(!n||!s)return Promise.resolve();{const n=await async function(e,t){var a;if(null===t)throw new Error("Data views are not initialized!");const[i]=await(null==t?void 0:t.find(e.indices.join(",")));return i?null!==(a=i.id)&&void 0!==a?a:i.title:null}(s,e);if(null===n)return Promise.resolve();try{const e=await async function(e,t){let a="";switch(e){case ja.a.SINGLE_METRIC:case ja.a.SINGLE_METRIC_FROM_LENS:a=ja.f.SINGLE_METRIC;break;case ja.a.MULTI_METRIC:case ja.a.MULTI_METRIC_FROM_LENS:a=ja.f.MULTI_METRIC;break;case ja.a.POPULATION:a=ja.f.POPULATION;break;case ja.a.CATEGORIZATION:a=ja.f.CATEGORIZATION;break;case ja.a.RARE:a=ja.f.RARE;break;case ja.a.GEO:a=ja.f.GEO;break;default:a=ja.f.ADVANCED}return`jobs/new_job/${a}?index=${t}&_g=()`}(i,n);return await a(`${t}/app/ml/${e}`),Promise.reject()}catch(e){return Promise.resolve()}}}(n,a.get(),i)},{context:o}=Ie(t===Fn.NEW_JOB?"full":"basic",t===Fn.NEW_JOB?["canCreateJob"]:[],t===Fn.NEW_JOB?s:{});return Object(h.jsx)(Ee.b,{context:o},Object(h.jsx)(kn,{nextStepPath:e}))};var qn=a(18),$n=a(144);const Wn=s.a.createContext({}),Hn=({children:e})=>{const[t,a]=Object(n.useState)(),[i,s]=Object(n.useState)(),o=Object(r.useLocation)(),{services:{data:{dataViews:l},savedSearch:c,uiSettings:p}}=Object(Te.d)(),{index:m,savedSearchId:b}=Object(qn.parse)(o.search,{sort:!1}),f=Object(n.useCallback)((e=>Object(He.a)({savedSearchService:c,dataViewsService:l})(e)),[c,l]),j=Object(n.useCallback)((async()=>{if(""===m)throw new Error(u.i18n.translate("xpack.ml.useResolver.errorIndexPatternIdEmptyString",{defaultMessage:"dataViewId must not be empty string."}));let e={savedSearch:null,dataView:null};void 0!==b?e=await f(b):void 0!==m&&(e.dataView=await l.get(m));const{savedSearch:t,dataView:a}=e,{combinedQuery:i}=Object($n.b)(p,null!==a?a:void 0,t);return{combinedQuery:i,selectedDataView:a,selectedSavedSearch:t}}),[m,b,p,l,f]);return Object(n.useEffect)((()=>{j().then((e=>{a(e)})).catch((e=>{s(e)}))}),[j]),t||i?i?Object(h.jsx)(d.EuiEmptyPrompt,{iconType:"error",color:"danger",title:Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataSourceContext.errorTitle",defaultMessage:"Unable to fetch data view or saved search"})),body:Object(h.jsx)("p",null,i.message)}):Object(h.jsx)(Wn.Provider,{value:t},e):null},Yn=()=>Object(n.useContext)(Wn),Xn=({icon:e,iconAreaLabel:t,title:a,description:i,onClick:n,href:s,isDisabled:o,"data-test-subj":r})=>{const l={...s?{href:s}:{},...n?{onClick:n}:{}};return Object(h.jsx)(d.EuiPanel,{style:{cursor:o?"not-allowed":void 0},hasShadow:!1,hasBorder:!0},Object(h.jsx)(d.EuiLink,m()({style:{display:"block",pointerEvents:o?"none":void 0,background:"transparent",outline:"none"},"data-test-subj":r,color:"subdued"},l),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"l",responsive:!0},Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{paddingTop:"8px"}},"string"==typeof e?Object(h.jsx)(d.EuiIcon,{size:"xl",type:e,"aria-label":t}):e),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h3",null,a)),Object(h.jsx)(d.EuiText,{color:"subdued"},Object(h.jsx)("p",null,i))))))},Qn=({config:e,indexPattern:t,savedSearch:a})=>{const{services:{http:{basePath:i}}}=Object(Te.d)(),n=null===a?`index=${t.id}`:`savedSearchId=${a.id}`,s=`${i.get()}/app/ml/jobs/new_job/recognize?id=${e.id}&${n}`;let o=null;return o=e.logo&&e.logo.icon?Object(h.jsx)(d.EuiIcon,{type:e.logo.icon,size:"xl"}):e.logo&&e.logo.src?Object(h.jsx)("img",{alt:"",src:e.logo.src}):Object(h.jsx)("h3",{className:"euiTitle euiTitle--small"},e.id),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Xn,{"data-test-subj":`mlRecognizerCard ${e.id}`,href:s,title:e.title,description:e.description,icon:o}))};class data_recognizer_DataRecognizer extends n.Component{constructor(e){super(e),this.state={results:[]},this.indexPattern=e.indexPattern,this.savedSearch=e.savedSearch,this.className=e.className,this.results=e.results}componentDidMount(){Je.ml.recognizeIndex({indexPatternTitle:this.indexPattern.title}).then((e=>{e.sort(((e,t)=>e.title.localeCompare(t.title)));const t=e.map((e=>Object(h.jsx)(Qn,{key:e.id,config:e,indexPattern:this.indexPattern,savedSearch:this.savedSearch})));"object"==typeof this.results&&(this.results.count=t.length,"function"==typeof this.results.onChange&&this.results.onChange()),this.setState({results:t})})).catch((e=>{console.error("Error attempting to recognize index",e)}))}render(){return Object(h.jsx)(s.a.Fragment,null,this.state.results)}}const Kn=Object(h.jsx)("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Object(h.jsx)("path",{d:"M16 32C7.16344 32 0 24.8366 0 16C0 7.16344 7.16344 0 16 0C24.8366 0 32 7.16344 32 16H30C30 8.26801 23.732 2 16 2C8.26801 2 2 8.26801 2 16C2 23.732 8.26801 30 16 30V32Z",fill:"#343741"}),Object(h.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M17 15H23V17H17V23H15V17H9V15H15V9H17V15ZM32 30V32H20V30H32ZM32 22L20 22V24L32 24V22ZM32 26V28H20V26H32Z",fill:"#017D73"})),Zn=Object(h.jsx)("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Object(h.jsx)("path",{d:"M16 32C7.16344 32 0 24.8366 0 16C0 7.16344 7.16344 0 16 0C24.8366 0 32 7.16344 32 16H30C30 8.26801 23.732 2 16 2C8.26801 2 2 8.26801 2 16C2 23.732 8.26801 30 16 30V32Z",fill:"#343741"}),Object(h.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M17 15H23V17H17V23H15V17H9V15H15V9H17V15ZM32 30V32H20V30H32ZM32 22L20 22V24L32 24V22ZM32 26V28H20V26H32Z",fill:"#017D73"})),es=Object(h.jsx)("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Object(h.jsx)("g",{clipPath:"url(#clip0_180_356)"},Object(h.jsx)("path",{d:"M16 32C7.16344 32 0 24.8366 0 16C0 7.16344 7.16344 0 16 0C24.8366 0 32 7.16344 32 16H30C30 8.26801 23.732 2 16 2C8.26801 2 2 8.26801 2 16C2 23.732 8.26801 30 16 30V32Z",fill:"#343741"}),Object(h.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M23 15H17V9H15V15H9V17H15V23H17V17H23V15ZM22 24.1957C22 27.3292 25.4265 32 27 32C28.5735 32 32 27.3292 32 24.1957C32 24.1624 31.9997 24.1292 31.9991 24.096C31.9997 24.0641 32 24.0321 32 24C32 21.2386 29.7614 19 27 19C24.2386 19 22 21.2386 22 24C22 24.0321 22.0003 24.0641 22.0009 24.096C22.0003 24.1292 22 24.1624 22 24.1957ZM27 26C28.1046 26 29 25.1046 29 24C29 22.8954 28.1046 22 27 22C25.8954 22 25 22.8954 25 24C25 25.1046 25.8954 26 27 26Z",fill:"#007E77"})),Object(h.jsx)("defs",null,Object(h.jsx)("clipPath",{id:"clip0_180_356"},Object(h.jsx)("rect",{width:"32",height:"32",fill:"white"})))),ts=()=>{var e,t;const{services:{share:a}}=Object(Te.d)(),i=Yn(),o=Object(Te.h)(),r=Object(rn.a)(Fe.b.ANOMALY_DETECTION_CREATE_JOB_SELECT_INDEX),[l,c]=Object(n.useState)(0),{selectedDataView:p,selectedSavedSearch:m}=i,b=Object(He.g)(p),f=Object(n.useMemo)((()=>[...p.fields.getByType(ma.a.GEO_POINT),...p.fields.getByType(ma.a.GEO_SHAPE)].length>0),[p]),j=!b&&m?u.i18n.translate("xpack.ml.newJob.wizard.jobType.dataViewFromSavedSearchNotTimeBasedMessage",{defaultMessage:"{savedSearchTitle} uses data view {dataViewName} which is not time based",values:{savedSearchTitle:null!==(e=m.title)&&void 0!==e?e:"",dataViewName:p.getName()}}):u.i18n.translate("xpack.ml.newJob.wizard.jobType.dataViewNotTimeBasedMessage",{defaultMessage:"Data view {dataViewName} is not time based",values:{dataViewName:p.getName()}}),x=m?u.i18n.translate("xpack.ml.newJob.wizard.jobType.savedSearchPageTitleLabel",{defaultMessage:"saved search {savedSearchTitle}",values:{savedSearchTitle:null!==(t=m.title)&&void 0!==t?t:""}}):u.i18n.translate("xpack.ml.newJob.wizard.jobType.dataViewPageTitleLabel",{defaultMessage:"data view {dataViewName}",values:{dataViewName:p.getName()}}),v={count:0,onChange(){c(v.count)}},y=()=>m?`?savedSearchId=${m.id}`:`?index=${p.id}`,O=[{onClick:()=>o(`/jobs/new_job/single_metric${y()}`),icon:{type:"createSingleMetricJob",ariaLabel:u.i18n.translate("xpack.ml.newJob.wizard.jobType.singleMetricAriaLabel",{defaultMessage:"Single metric job"})},title:u.i18n.translate("xpack.ml.newJob.wizard.jobType.singleMetricTitle",{defaultMessage:"Single metric"}),description:u.i18n.translate("xpack.ml.newJob.wizard.jobType.singleMetricDescription",{defaultMessage:"Detect anomalies in a single time series."}),id:"mlJobTypeLinkSingleMetricJob"},{onClick:()=>o(`/jobs/new_job/multi_metric${y()}`),icon:{type:"createMultiMetricJob",ariaLabel:u.i18n.translate("xpack.ml.newJob.wizard.jobType.multiMetricAriaLabel",{defaultMessage:"Multi-metric job"})},title:u.i18n.translate("xpack.ml.newJob.wizard.jobType.multiMetricTitle",{defaultMessage:"Multi-metric"}),description:u.i18n.translate("xpack.ml.newJob.wizard.jobType.multiMetricDescription",{defaultMessage:"Detect anomalies with one or more metrics and optionally split the analysis."}),id:"mlJobTypeLinkMultiMetricJob"},{onClick:()=>o(`/jobs/new_job/population${y()}`),icon:{type:"createPopulationJob",ariaLabel:u.i18n.translate("xpack.ml.newJob.wizard.jobType.populationAriaLabel",{defaultMessage:"Population job"})},title:u.i18n.translate("xpack.ml.newJob.wizard.jobType.populationTitle",{defaultMessage:"Population"}),description:u.i18n.translate("xpack.ml.newJob.wizard.jobType.populationDescription",{defaultMessage:"Detect unusual activity in a population. Recommended for high cardinality data."}),id:"mlJobTypeLinkPopulationJob"},{onClick:()=>o(`/jobs/new_job/advanced${y()}`),icon:{type:"createAdvancedJob",ariaLabel:u.i18n.translate("xpack.ml.newJob.wizard.jobType.advancedAriaLabel",{defaultMessage:"Advanced job"})},title:u.i18n.translate("xpack.ml.newJob.wizard.jobType.advancedTitle",{defaultMessage:"Advanced"}),description:u.i18n.translate("xpack.ml.newJob.wizard.jobType.advancedDescription",{defaultMessage:"Use the full range of options to create a job for more advanced use cases."}),id:"mlJobTypeLinkAdvancedJob"},{onClick:()=>o(`/jobs/new_job/categorization${y()}`),icon:{type:Kn,ariaLabel:u.i18n.translate("xpack.ml.newJob.wizard.jobType.categorizationAriaLabel",{defaultMessage:"Categorization job"})},title:u.i18n.translate("xpack.ml.newJob.wizard.jobType.categorizationTitle",{defaultMessage:"Categorization"}),description:u.i18n.translate("xpack.ml.newJob.wizard.jobType.categorizationDescription",{defaultMessage:"Group log messages into categories and detect anomalies within them."}),id:"mlJobTypeLinkCategorizationJob"},{onClick:()=>o(`/jobs/new_job/rare${y()}`),icon:{type:Zn,ariaLabel:u.i18n.translate("xpack.ml.newJob.wizard.jobType.rareAriaLabel",{defaultMessage:"Rare job"})},title:u.i18n.translate("xpack.ml.newJob.wizard.jobType.rareTitle",{defaultMessage:"Rare"}),description:u.i18n.translate("xpack.ml.newJob.wizard.jobType.rareDescription",{defaultMessage:"Detect rare values in time series data."}),id:"mlJobTypeLinkrareJob"}];return f&&O.push({onClick:()=>o(`/jobs/new_job/geo${y()}`),icon:{type:es,ariaLabel:u.i18n.translate("xpack.ml.newJob.wizard.jobType.geoAriaLabel",{defaultMessage:"Geo job"})},title:u.i18n.translate("xpack.ml.newJob.wizard.jobType.geoTitle",{defaultMessage:"Geo"}),description:u.i18n.translate("xpack.ml.newJob.wizard.jobType.geoDescription",{defaultMessage:"Detect anomalies in the geographic location of the data."}),id:"mlJobTypeLinkGeoJob"}),Object(h.jsx)("div",{"data-test-subj":"mlPageJobTypeSelection"},Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobType.createJobFromTitle",defaultMessage:"Create a job from the {pageTitleLabel}",values:{pageTitleLabel:x}})),!1===b&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiCallOut,{title:j,color:"warning",iconType:"warning"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobType.howToRunAnomalyDetectionDescription",defaultMessage:"Anomaly detection can only be run over indices which are time based."}),Object(h.jsx)("br",null),Object(h.jsx)(d.EuiLink,{onClick:r},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobType.selectDifferentIndexLinkText",defaultMessage:"Select a different data view or saved search"}))),Object(h.jsx)(d.EuiSpacer,{size:"xxl"})),Object(h.jsx)("div",{hidden:0===l},Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobType.useSuppliedConfigurationTitle",defaultMessage:"Use preconfigured jobs"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiText,null,Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobType.useSuppliedConfigurationDescription",defaultMessage:"The fields in your data match known configurations. Create a set of preconfigured jobs."}))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiFlexGrid,{gutterSize:"l",columns:4},Object(h.jsx)(data_recognizer_DataRecognizer,{indexPattern:p,savedSearch:m,results:v})),Object(h.jsx)(d.EuiSpacer,{size:"xxl"})),Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobType.useWizardTitle",defaultMessage:"Use a wizard"}))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiFlexGrid,{gutterSize:"l",columns:4},O.map((({onClick:e,icon:t,title:a,description:i,id:n})=>Object(h.jsx)(d.EuiFlexItem,{key:n},Object(h.jsx)(Xn,{"data-test-subj":n,onClick:e,icon:t.type,iconAreaLabel:t.ariaLabel,title:a,description:i,isDisabled:!b}))))),Object(h.jsx)(d.EuiSpacer,{size:"xxl"}),Object(h.jsx)(d.EuiText,null,Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h3",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobType.learnMoreAboutDataTitle",defaultMessage:"Learn more about your data"}))),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobType.learnMoreAboutDataDescription",defaultMessage:"If you're not sure what type of job to create, first explore the fields and metrics in your data."}))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiFlexGrid,{gutterSize:"l",columns:4},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Xn,{icon:"dataVisualizer",iconAreaLabel:u.i18n.translate("xpack.ml.newJob.wizard.jobType.dataVisualizerAriaLabel",{defaultMessage:"Data Visualizer"}),title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobType.dataVisualizerTitle",defaultMessage:"Data Visualizer"}),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobType.dataVisualizerDescription",defaultMessage:"Learn more about the characteristics of your data and identify the fields for analysis with machine learning."}),onClick:async()=>{var e;const t=m?null!==(e=m.title)&&void 0!==e?e:"":p.getName(),i=a.url.locators.get(Fe.a),n=await i.getUrl({page:Fe.b.DATA_VISUALIZER_INDEX_VIEWER,pageState:{...null!=m&&m.id?{savedSearchId:m.id}:{index:p.id}}},{absolute:!0});Object(Qt.a)(Fe.b.DATA_VISUALIZER_INDEX_VIEWER,t,n),o(`/jobs/new_job/datavisualizer${y()}`)}}))))},as=(e,t)=>({path:Object(Ee.c)(te.a.ANOMALY_DETECTION_CREATE_JOB_SELECT_TYPE),render:()=>Object(h.jsx)(is,null),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("ANOMALY_DETECTION_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.jobsBreadcrumbs.selectJobType",{defaultMessage:"Create job"}),href:""}]}),is=()=>{const{context:e}=Ie("full",["canGetJobs"],Sn());return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(Hn,null,Object(h.jsx)(ts,null)))},ns=()=>({path:Object(Ee.c)(te.a.ANOMALY_DETECTION_CREATE_JOB),render:()=>Object(h.jsx)(ss,null),breadcrumbs:[]}),ss=()=>Object(h.jsx)(r.Redirect,{to:Object(Ee.c)(te.a.ANOMALY_DETECTION_CREATE_JOB_SELECT_INDEX)});var os=a(200);let rs;!function(e){e[e.ERROR=0]="ERROR",e[e.WARNING=1]="WARNING"}(rs||(rs={}));const ls=u.i18n.translate("xpack.ml.newJob.wizard.validateJob.asyncJobNameAlreadyExists",{defaultMessage:"Job ID already exists. A job ID cannot be the same as an existing job or group."}),cs=u.i18n.translate("xpack.ml.newJob.wizard.validateJob.asyncGroupNameAlreadyExists",{defaultMessage:"Group ID already exists. A group ID cannot be the same as an existing group or job."});function ds(e){return e.pipe(Object(Ii.map)((e=>e.jobId)),Object(Ii.distinctUntilChanged)(((e,t)=>e===t)),Object(Ii.switchMap)((e=>Je.ml.jobs.jobsExist$([e],!0))),Object(Ii.map)((e=>{const t=Object.values(e),a=!1===(null==t?void 0:t[0].exists);return{jobIdExists:{valid:a,...a?{}:{message:ls}}}})))}function us(e){return e.pipe(Object(Ii.map)((e=>e.groups)),Object(Ii.distinctUntilChanged)(((e,t)=>JSON.stringify(e)===JSON.stringify(t))),Object(Ii.switchMap)((e=>Je.ml.jobs.jobsExist$(e,!0))),Object(Ii.map)((e=>{const t=!1===Object.values(e).some((e=>!0===e.exists&&!1===e.isGroup));return{groupIdsExist:{valid:t,...t?{}:{message:cs}}}})))}class job_validator_JobValidator{constructor(e){var t;Ve()(this,"_jobCreator",void 0),Ve()(this,"_validationSummary",void 0),Ve()(this,"_lastJobConfig",void 0),Ve()(this,"_lastDatafeedConfig",void 0),Ve()(this,"_validateTimeout",null),Ve()(this,"_asyncValidators$",[]),Ve()(this,"_asyncValidatorsResult$",void 0),Ve()(this,"_basicValidations",{jobId:{valid:!0},groupIds:{valid:!0},modelMemoryLimit:{valid:!0},bucketSpan:{valid:!0},duplicateDetectors:{valid:!0},query:{valid:!0},queryDelay:{valid:!0},frequency:{valid:!0},scrollSize:{valid:!0},categorizerMissingPerPartition:{valid:!0},categorizerVaryingPerPartitionField:{valid:!0},summaryCountField:{valid:!0}}),Ve()(this,"_advancedValidations",{categorizationFieldValid:{valid:!0}}),Ve()(this,"_validating",!1),Ve()(this,"_basicValidationResult$",new c.ReplaySubject(2)),Ve()(this,"_jobCreatorSubject$",new c.Subject),Ve()(this,"validationResult$",void 0),Ve()(this,"latestValidationResult",this._basicValidations),this._jobCreator=e,this._lastJobConfig=this._jobCreator.formattedJobJson,this._lastDatafeedConfig=this._jobCreator.formattedDatafeedJson,this._validationSummary={basic:!1,advanced:!1},this._asyncValidators$=[(t=this._jobCreatorSubject$,Object(c.combineLatest)([t.pipe(Object(Ii.pluck)("modelPlot")),t.pipe(Object(Ii.filter)((e=>null==e?void 0:e.modelPlot)),Object(Ii.map)((e=>({jobCreator:e,analysisConfigString:JSON.stringify(e.jobConfig.analysis_config,null,2)}))),Object(Ii.distinctUntilChanged)(((e,t)=>e.analysisConfigString===t.analysisConfigString)),Object(Ii.switchMap)((({jobCreator:e})=>Je.ml.validateCardinality$({...e.jobConfig,datafeed_config:e.datafeedConfig}).pipe(Object(Ii.map)((e=>{for(const t of e)if(void 0!==t.modelPlotCardinality)return{highCardinality:{value:t.modelPlotCardinality,severity:rs.WARNING}};return null}))))),Object(Ii.startWith)(null))]).pipe(Object(Ii.map)((([e,t])=>e?t:null)))),ds(this._jobCreatorSubject$),us(this._jobCreatorSubject$)],this._asyncValidatorsResult$=Object(c.combineLatest)(this._asyncValidators$).pipe(Object(Ii.map)((e=>e.reduce(((e,t)=>({...e,...t||{}})),{}))),Object(Ii.startWith)({})),this.validationResult$=Object(c.combineLatest)([this._basicValidationResult$,this._asyncValidatorsResult$]).pipe(Object(Ii.map)((([e,t])=>({...e,...t}))),Object(Ii.tap)((e=>{this.latestValidationResult=e})))}validate(e,t=!1){this._validating=!0;const a=this._jobCreator.formattedJobJson,i=this._jobCreator.formattedDatafeedJson;this._runAdvancedValidation(),t||a!==this._lastJobConfig||i!==this._lastDatafeedConfig?(null!==this._validateTimeout&&clearTimeout(this._validateTimeout),this._lastJobConfig=a,this._lastDatafeedConfig=i,this._validateTimeout=setTimeout((()=>{this._runBasicValidation(),this._jobCreatorSubject$.next(this._jobCreator),this._validating=!1,this._validateTimeout=null,e()}),500)):this._validating=null!==this._validateTimeout,e()}_resetBasicValidations(){this._validationSummary.basic=!0,Object.values(this._basicValidations).forEach((e=>{e.valid=!0,delete e.message}))}_runBasicValidation(){this._resetBasicValidations();const e=this._jobCreator.jobConfig,t=this._jobCreator.datafeedConfig,a=Object(ie.d)(),i=Object(Gt.e)(e,void 0,a);Object(Ui.b)(i,this._basicValidations,e,t);const n=Object(Gt.c)(t);Object(Ui.b)(n,this._basicValidations,e,t);const s=Object(Gt.d)(e,t);Object(Ui.b)(s,this._basicValidations,e,t),this._validationSummary.basic=this._isOverallBasicValid(),this._basicValidationResult$.next(this._basicValidations)}_runAdvancedValidation(){Aa(this._jobCreator)&&(this._advancedValidations.categorizationFieldValid.valid=this._jobCreator.overallValidStatus!==Sa.INVALID)}_isOverallBasicValid(){return!1===Object.values(this._basicValidations).some((e=>!1===e.valid))}get validationSummary(){return this._validationSummary}get bucketSpan(){return this._basicValidations.bucketSpan}get summaryCountField(){return this._basicValidations.summaryCountField}get duplicateDetectors(){return this._basicValidations.duplicateDetectors}get jobId(){return this._basicValidations.jobId}get groupIds(){return this._basicValidations.groupIds}get modelMemoryLimit(){return this._basicValidations.modelMemoryLimit}get query(){return this._basicValidations.query}get queryDelay(){return this._basicValidations.queryDelay}get frequency(){return this._basicValidations.frequency}get scrollSize(){return this._basicValidations.scrollSize}set advancedValid(e){this._validationSummary.advanced=e}get validating(){return this._validating}get categorizationField(){return this._advancedValidations.categorizationFieldValid.valid}set categorizationField(e){this._advancedValidations.categorizationFieldValid.valid=e}get categorizerMissingPerPartition(){return this._basicValidations.categorizerMissingPerPartition}get categorizerVaryingPerPartitionField(){return this._basicValidations.categorizerVaryingPerPartitionField}get isPickFieldsStepValid(){return this._jobCreator.detectors.length>0&&(this._jobCreator.type!==ja.f.ADVANCED||this._jobCreator.type===ja.f.ADVANCED&&this.modelMemoryLimit.valid)&&this.bucketSpan.valid&&this.duplicateDetectors.valid&&this.categorizerMissingPerPartition.valid&&this.categorizerVaryingPerPartitionField.valid&&this.summaryCountField.valid&&!this.validating&&(this._jobCreator.type!==ja.f.CATEGORIZATION||this._jobCreator.type===ja.f.CATEGORIZATION&&this.categorizationField)}get isModelMemoryEstimationPayloadValid(){return this._jobCreator.detectors.length>0&&this.bucketSpan.valid&&this.duplicateDetectors.valid&&(this._jobCreator.type!==ja.f.CATEGORIZATION||this._jobCreator.type===ja.f.CATEGORIZATION&&this.categorizationField)}}let ps;!function(e){e[e.TIME_RANGE=0]="TIME_RANGE",e[e.ADVANCED_CONFIGURE_DATAFEED=1]="ADVANCED_CONFIGURE_DATAFEED",e[e.PICK_FIELDS=2]="PICK_FIELDS",e[e.JOB_DETAILS=3]="JOB_DETAILS",e[e.VALIDATION=4]="VALIDATION",e[e.SUMMARY=5]="SUMMARY"}(ps||(ps={}));const ms=Object(n.createContext)({jobCreatorUpdated:0,jobCreatorUpdate:()=>{},jobCreator:{},chartLoader:{},mapLoader:{},resultsLoader:{},chartInterval:{},jobValidator:{},jobValidatorUpdated:0,fields:[],aggs:[],existingJobsAndGroups:{}});var bs=a(118),fs=a(161),gs=a(149);const hs=({previous:e,previousActive:t=!0,next:a,nextActive:i=!0,children:s})=>Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiHorizontalRule,null),Object(h.jsx)(d.EuiFlexGroup,null,e&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(js,{previous:e,previousActive:t})),a&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(xs,{next:a,nextActive:i})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},s),Object(h.jsx)(d.EuiFlexItem,null))),js=({previous:e,previousActive:t=!0})=>Object(h.jsx)(d.EuiButtonEmpty,{disabled:!t,onClick:e,iconType:"arrowLeft",iconSide:"left","data-test-subj":"mlJobWizardNavButtonPrevious"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.previousStepButton",defaultMessage:"Previous"})),xs=({next:e,nextActive:t=!0})=>Object(h.jsx)(d.EuiButton,{fill:!0,disabled:!t,onClick:e,iconSide:"right",iconType:"arrowRight","data-test-subj":"mlJobWizardNavButtonNext"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.nextStepButton",defaultMessage:"Next"})),vs=Object(n.memo)((({children:e,validation:t})=>{const a=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.jobGroupSelect.title",{defaultMessage:"Groups"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,a),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.jobGroupSelect.description",defaultMessage:" Optional grouping for jobs. New groups can be created or picked from the list of existing groups."})},Object(h.jsx)(d.EuiFormRow,{error:t.message,isInvalid:!1===t.valid},Object(h.jsx)(s.a.Fragment,null,e)))})),ys=Object(n.memo)((({existingGroups:e,selectedGroups:t,onChange:a,validation:i})=>{const n=e.map((e=>({label:e,color:Object(Bi.a)(e)}))),s=t.map((e=>({label:e,color:Object(Bi.a)(e)})));function o(e){a(e.map((e=>e.label)))}return Object(h.jsx)(vs,{validation:i},Object(h.jsx)(d.EuiComboBox,{placeholder:u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.jobGroupSelect.placeholder",{defaultMessage:"Select or create groups"}),options:n,selectedOptions:s,onChange:o,onCreateOption:function(e,t){const a=e.trim().toLowerCase();if(!a)return;const i={label:e,color:Object(Bi.a)(e)};-1===t.findIndex((e=>e.label.trim().toLowerCase()===a))&&n.push(i),o([...s,i])},isClearable:!0,isInvalid:!i.valid,"data-test-subj":"mlJobWizardComboBoxJobGroups"}))})),Os=({setTimeRange:e,timeRange:t})=>{const{services:{uiSettings:a}}=Object(Te.d)(),i=a.get("dateFormat"),[s,o]=Object(n.useState)(bt()(t.start)),[r,l]=Object(n.useState)(bt()(t.end));return Object(n.useEffect)((()=>{void 0!==s&&void 0!==r&&e({start:s.valueOf(),end:r.valueOf()})}),[s,r,e]),Object(n.useEffect)((()=>{o(bt()(t.start)),l(bt()(t.end))}),[JSON.stringify(t)]),Object(h.jsx)(n.Fragment,null,Object(h.jsx)("div",{style:{minWidth:"512px"},"data-test-subj":"mlJobWizardDateRange"},Object(h.jsx)(d.EuiDatePickerRange,{fullWidth:!0,startDateControl:Object(h.jsx)(d.EuiDatePicker,{selected:s,onChange:function(e){o(e||void 0)},startDate:s,endDate:r,"aria-label":u.i18n.translate("xpack.ml.newJob.wizard.timeRangeStep.timeRangePicker.startDateLabel",{defaultMessage:"Start date"}),showTimeSelect:!0,dateFormat:i,maxDate:r}),endDateControl:Object(h.jsx)(d.EuiDatePicker,{selected:r,onChange:function(e){l(e||void 0)},startDate:s,endDate:r,"aria-label":u.i18n.translate("xpack.ml.newJob.wizard.timeRangeStep.timeRangePicker.endDateLabel",{defaultMessage:"End date"}),showTimeSelect:!0,dateFormat:i,minDate:s})})))};var Es=a(146);const ws=({setCurrentStep:e,isCurrentStep:t})=>{const a=Object(ee.i)(),{services:i}=Object(Te.d)(),s=Yn(),{jobCreator:o,jobCreatorUpdate:r,jobCreatorUpdated:l,chartLoader:c,chartInterval:p}=Object(n.useContext)(ms),[m,b]=Object(n.useState)({start:o.start,end:o.end}),[f,g]=Object(n.useState)([]),[j,x]=Object(n.useState)(!1),[v,y]=Object(gs.b)(Es.d,ee.c.EXCLUDE);return Object(n.useEffect)((()=>{const{start:e,end:t}=m;o.setTimeRange(e,t),p.setBounds({min:bt()(e),max:bt()(t)});const{timefilter:a}=i.data.query.timefilter;a.setTime({from:bt()(e).toISOString(),to:bt()(t).toISOString()}),r(),async function(){x(!0);try{var e;const t=await c.loadEventRateChart(o.start,o.end,p.getInterval().asMilliseconds(),null!==(e=o.runtimeMappings)&&void 0!==e?e:void 0,o.datafeedConfig.indices_options);g(t)}catch(e){g([])}x(!1)}()}),[o,p,m.start,m.end,r,i.data.query.timefilter]),Object(n.useEffect)((()=>{b({start:o.start,end:o.end})}),[o,l]),Object(h.jsx)(n.Fragment,null,t&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Os,{setTimeRange:b,timeRange:m})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(ee.d,{frozenDataPreference:v,setFrozenDataPreference:y,dataView:s.selectedDataView,query:s.combinedQuery,disabled:!1,callback:function(e){if(null!==e.start&&null!==e.end)b({start:e.start.epoch,end:e.end.epoch});else{const{toasts:e}=i.notifications;e.addDanger(u.i18n.translate("xpack.ml.newJob.wizard.timeRangeStep.fullTimeRangeError",{defaultMessage:"An error occurred obtaining the time range for the index"}))}},timefilter:a,apiPath:`${ke.c}/fields_service/time_field_range`})),Object(h.jsx)(d.EuiFlexItem,null)),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(Wa,{eventRateChartData:f,height:"300px",width:"100%",showAxis:!0,loading:j}),Object(h.jsx)(hs,{next:()=>e(o.type===ja.f.ADVANCED?ps.ADVANCED_CONFIGURE_DATAFEED:ps.PICK_FIELDS),nextActive:!0})))};var Ms=a(188),Ss=a(130);const _s=({fields:e,changeHandler:t,selectedOptions:a,removeOptions:i})=>{const{jobValidator:s,jobValidatorUpdated:o}=Object(n.useContext)(ms),[r,l]=Object(n.useState)(s.duplicateDetectors),c=i.map(Ts),{handleFieldStatsButtonClick:u,populatedFields:p}=Object(Ss.a)(),m=Object(n.useMemo)((()=>e.map((e=>{const t={isGroupLabelOption:!0,key:e.name,label:Object(h.jsx)(Ms.a,{hideTrigger:e.id===la.c,isEmpty:e.id!==la.c&&!(null!=p&&p.has(e.name)),field:e,label:e.name,onButtonClick:u}),options:[]};return void 0!==e.aggs&&(t.options=e.aggs.filter((e=>null!==e.dslName)).map((t=>({label:`${t.title}(${e.name})`,agg:t,field:e}))).filter((e=>!1===c.includes(e.label)))),t}))),[u,e,c,null==p?void 0:p.size]);return Object(n.useEffect)((()=>{l(s.duplicateDetectors)}),[o]),Object(h.jsx)(d.EuiFormRow,{error:r.message,isInvalid:!1===r.valid,"data-test-subj":"mlJobWizardAggSelection"},Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:m,selectedOptions:a,onChange:t,isClearable:!1,isInvalid:!1===r.valid}))};function Ts(e){return`${e.agg.title}(${e.field.name})`}const Cs={...Ba,area:{...Ba.area,visible:!0},line:{...Ba.line,strokeWidth:1,opacity:.4}},ks=({modelData:e})=>{const{MODEL_COLOR:t}=Pa(),a=void 0===e?[]:e;return Object(h.jsx)(ra.AreaSeries,{id:"model",xScaleType:ra.ScaleType.Time,yScaleType:ra.ScaleType.Linear,xAccessor:"time",yAccessors:["modelUpper"],y0Accessors:["modelLower"],data:a,curve:ra.CurveType.CURVE_MONOTONE_X,areaSeriesStyle:Cs,color:t})},Fs={...Ba},Is=({chartData:e})=>{const{LINE_COLOR:t}=Pa();return Object(h.jsx)(ra.LineSeries,{id:"line",xScaleType:ra.ScaleType.Time,yScaleType:ra.ScaleType.Linear,xAccessor:"time",yAccessors:["value"],data:e,curve:ra.CurveType.CURVE_MONOTONE_X,lineSeriesStyle:Fs,color:t})},Ds={...Ba,line:{...Ba.line,visible:!1},point:{...Ba.point,visible:!0}},As=({chartData:e})=>{const{LINE_COLOR:t}=Pa();return Object(h.jsx)(ra.LineSeries,{id:"scatter",xScaleType:ra.ScaleType.Time,yScaleType:ra.ScaleType.Linear,xAccessor:"time",yAccessors:["value"],data:e,curve:ra.CurveType.CURVE_MONOTONE_X,lineSeriesStyle:Ds,color:t})};let Ls;!function(e){e[e.LINE=0]="LINE",e[e.SCATTER=1]="SCATTER"}(Ls||(Ls={}));const Rs=({chartType:e,chartData:t=[],modelData:a,anomalyData:i,height:n,width:s,loading:o=!1})=>{const r=e===Ls.SCATTER?function(e){return e.reduce(((e,t)=>(e.push(...t.values.map((e=>({time:t.time,value:e.value})))),e)),[])}(t):t,l=0===(c=r).length?{min:0,max:0}:{min:c[0].time,max:c[c.length-1].time};var c;return Object(h.jsx)("div",{style:{width:s,height:n},"data-test-subj":`mlAnomalyChart ${Ls[e]}`},Object(h.jsx)(Ja.a,{height:n,hasData:r.length>0,loading:o},Object(h.jsx)(ra.Chart,null,Object(h.jsx)(ra.Tooltip,{type:ra.TooltipType.None}),Object(h.jsx)(ra.Settings,{xDomain:l}),Object(h.jsx)(pa,{chartData:r}),Object(h.jsx)(Ga,{anomalyData:i}),Object(h.jsx)(ks,{modelData:a}),e===Ls.LINE&&Object(h.jsx)(Is,{chartData:r}),e===Ls.SCATTER&&Object(h.jsx)(As,{chartData:r}))))},Ns=0,Ps=({setIsValid:e})=>{const{jobCreator:t,jobCreatorUpdate:a,jobCreatorUpdated:i,chartLoader:s,chartInterval:o}=Object(n.useContext)(ms),r=t,l=Object(n.useMemo)((()=>Object(fa.e)([...bs.a.fields,...r.runtimeFields])),[]),[c,d]=Object(n.useState)(null!==r.aggFieldPair?[{label:Ts(r.aggFieldPair)}]:[]),[u,p]=Object(n.useState)(r.aggFieldPair),[m,b]=Object(n.useState)({}),[f,g]=Object(n.useState)(!1),[j,x]=Object(n.useState)(r.start),[v,y]=Object(n.useState)(r.end),[O,E]=Object(n.useState)(r.bucketSpanMs);async function w(){if(null!==u){g(!0);try{const e=Va(r,o),t=await s.loadLineCharts(r.start,r.end,[u],null,null,e.intervalMs,r.runtimeMappings,r.datafeedConfig.indices_options);void 0!==t[Ns]&&b(t)}catch(e){Object(qe.a)().displayErrorToast(e),b({})}g(!1)}}return Object(n.useEffect)((()=>{null!==u&&(r.setDetector(u.agg,u.field),a(),w(),e(null!==u))}),[r,u]),Object(n.useEffect)((()=>{r.start===j&&r.end===v||(x(r.start),y(r.end),w()),r.bucketSpanMs!==O&&(E(r.bucketSpanMs),w())}),[r,i]),Object(h.jsx)(n.Fragment,null,Object(h.jsx)(_s,{fields:l,changeHandler:function(e){if(d(e),e.length){const t=e[0];p(void 0!==t?{agg:t.agg,field:t.field}:null)}},selectedOptions:c,removeOptions:[]}),(void 0!==m[Ns]||!0===f)&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(Rs,{chartType:Ls.LINE,chartData:m[Ns],modelData:[],anomalyData:[],height:"300px",width:"100%",loading:f})))},zs=0,Bs=()=>{const{jobCreator:e,chartLoader:t,resultsLoader:a,chartInterval:i}=Object(n.useContext)(ms),s=e,[o,r]=Object(n.useState)({}),[l,c]=Object(n.useState)(!1),[d,u]=Object(n.useState)([]),[p,m]=Object(n.useState)([]);function b(e){const t=e.model[zs];void 0!==t&&u(t);const a=e.anomalies[zs];void 0!==a&&m(a)}return Object(n.useEffect)((()=>{const e=a.subscribeToResults(b);return async function(){if(null!==s.aggFieldPair){c(!0);try{const e=Va(s,i),a=await t.loadLineCharts(s.start,s.end,[s.aggFieldPair],null,null,e.intervalMs,s.runtimeMappings,s.datafeedConfig.indices_options);void 0!==a[zs]&&r(a)}catch(e){Object(qe.a)().displayErrorToast(e),r({})}c(!1)}}(),()=>{e.unsubscribe()}}),[a]),Object(h.jsx)(n.Fragment,null,(void 0!==o[zs]||!0===l)&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(Rs,{chartType:Ls.LINE,chartData:o[zs],modelData:d,anomalyData:p,height:"300px",width:"100%",loading:l})))},Vs=({bucketSpan:e,setBucketSpan:t,isInvalid:a,disabled:i})=>Object(h.jsx)(d.EuiFieldText,{disabled:i,placeholder:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.bucketSpan.placeholder",{defaultMessage:"Bucket span"}),value:e,onChange:e=>t(e.target.value),isInvalid:a,"data-test-subj":"mlJobWizardInputBucketSpan"}),Js=Object(n.memo)((({children:e,validation:t})=>{const a=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.bucketSpan.title",{defaultMessage:"Bucket span"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,a),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.bucketSpan.description",defaultMessage:"The interval for time series analysis, typically 15m–1h."})},Object(h.jsx)(d.EuiFormRow,{error:t.message,isInvalid:!1===t.valid},Object(h.jsx)(s.a.Fragment,null,e)))}));let Us;!function(e){e[e.NOT_RUNNING=0]="NOT_RUNNING",e[e.RUNNING=1]="RUNNING"}(Us||(Us={}));const Gs=({setEstimating:e})=>{const{jobCreator:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),{status:i,estimateBucketSpan:s}=function(){var e;const{jobCreator:t,jobCreatorUpdate:a}=Object(n.useContext)(ms),i=Yn(),[s,o]=Object(n.useState)(Us.NOT_RUNNING),r={aggTypes:t.aggregations.map((e=>e.dslName)),duration:{start:t.start,end:t.end},fields:t.fields.map((e=>e.id===la.c?null:e.id)),index:i.selectedDataView.title,query:i.combinedQuery,splitField:void 0,timeField:i.selectedDataView.timeFieldName,runtimeMappings:null!==(e=t.runtimeMappings)&&void 0!==e?e:void 0,indicesOptions:t.datafeedConfig.indices_options};if(Fa(t)&&null!==t.splitField)r.splitField=t.splitField.id;else if(Ia(t)&&null!==t.populationField)r.splitField=t.populationField.id;else if(La(t)){var l;r.fields=[null],t.populationField?r.splitField=t.populationField.id:r.splitField=null===(l=t.rareField)||void 0===l?void 0:l.id}else Da(t)&&t.richDetectors.some((e=>null!==e.partitionField?(r.splitField=e.partitionField.id,!0):null!==e.overField?(r.splitField=e.overField.id,!0):null!==e.byField?(r.splitField=e.byField.id,!0):void 0));return{status:s,estimateBucketSpan:async function(){o(Us.RUNNING);const{name:e,error:i,message:n}=await Je.ml.estimateBucketSpan(r);if(o(Us.NOT_RUNNING),!0===i){const e=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.bucketSpanEstimator.errorTitle",{defaultMessage:"Bucket span could not be estimated"});Object(qe.a)().displayWarningToast({title:e,text:n})}else t.bucketSpan=e,a()}}}(),[o,r]=Object(n.useState)(0===t.detectors.length),[l,c]=Object(n.useState)(p());function p(){return Da(t)&&t.detectors.some((e=>{if(e.partition_field_name===la.e||e.over_field_name===la.e||e.by_field_name===la.e)return!0}))}return Object(n.useEffect)((()=>{e(i===Us.RUNNING)}),[i]),Object(n.useEffect)((()=>{r(0===t.detectors.length),c(p())}),[a]),Object(h.jsx)(d.EuiButton,{disabled:i===Us.RUNNING||!0===o||!0===l,onClick:s},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.bucketSpanEstimatorButton",defaultMessage:"Estimate bucket span"}))},qs=({setIsValid:e,hideEstimateButton:t=!1})=>{const{jobCreator:a,jobCreatorUpdate:i,jobCreatorUpdated:s,jobValidator:o,jobValidatorUpdated:r}=Object(n.useContext)(ms),[l,c]=Object(n.useState)(a.bucketSpan),[u,p]=Object(n.useState)(o.bucketSpan),[m,b]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{a.bucketSpan=l,i()}),[l]),Object(n.useEffect)((()=>{c(a.bucketSpan)}),[s]),Object(n.useEffect)((()=>{p(o.bucketSpan)}),[r]),Object(n.useEffect)((()=>{e(!1===m)}),[m]),Object(h.jsx)(Js,{validation:u},Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Vs,{setBucketSpan:c,bucketSpan:l,isInvalid:!1===u.valid,disabled:m})),!1===t&&Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Gs,{setEstimating:b}))))},$s=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.sparseData.title",{defaultMessage:"Sparse data"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.sparseData.description",defaultMessage:"Ignore empty buckets from being considered anomalous. Available for count and sum analysis."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),Ws=()=>{const{jobCreator:e,jobCreatorUpdated:t,jobCreatorUpdate:a}=Object(n.useContext)(ms),[i,s]=Object(n.useState)(e.sparseData),[o,r]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{e.sparseData=i,a()}),[i]),Object(n.useEffect)((()=>{const t=[la.b.COUNT,la.b.SUM],a=e.aggregations.some((e=>null!==e.dslName&&t.includes(e.dslName)));r(a),!1===a&&!0===i&&s(!1)}),[t]),Object(h.jsx)($s,null,Object(h.jsx)(d.EuiSwitch,{name:"switch",disabled:!1===o,checked:i,onChange:function(){s(!i)},"data-test-subj":"mlJobWizardSwitchSparseData",label:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.sparseData.title",{defaultMessage:"Sparse data"})}))},Hs=({setIsValid:e})=>{const{jobCreator:t}=Object(n.useContext)(ms),a=Object(Te.h)();return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(qs,{setIsValid:e})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Ws,null))),Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{onClick:()=>{Object(xa.e)(t,a)},"data-test-subj":"mlJobWizardButtonConvertToMultiMetric"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.singleMetricView.convertToMultiMetricButton",defaultMessage:"Convert to multi-metric job"})))))},Ys=({isActive:e,setCanProceed:t})=>{const[a,i]=Object(n.useState)(!1),[s,o]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{"function"==typeof t&&t(a&&s)}),[a,s]),Object(h.jsx)(n.Fragment,null,!1===e?Object(h.jsx)(Bs,null):Object(h.jsx)(n.Fragment,null,Object(h.jsx)(Ps,{setIsValid:i}),a&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiHorizontalRule,{margin:"l"}),Object(h.jsx)(Hs,{setIsValid:o}))))},Xs=({fields:e,detectorChangeHandler:t,selectedOptions:a,maxWidth:i,removeOptions:n})=>Object(h.jsx)(d.EuiFlexGroup,{style:{maxWidth:void 0!==i?i:560}},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.multiMetricView.addMetric",{defaultMessage:"Add metric"})},Object(h.jsx)(_s,{fields:e,changeHandler:t,selectedOptions:a,removeOptions:n}))));a(426);const Qs=Object(n.memo)((({fieldValues:e,splitField:t,children:a,numberOfDetectors:i,jobType:o,animate:r=!1})=>{const l=[];return Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,{"data-test-subj":"mlDataSplit"},(0===e.length||0===i)&&Object(h.jsx)(s.a.Fragment,null,a),e.length>0&&i>0&&null!==t&&Object(h.jsx)(n.Fragment,null,(o===ja.f.MULTI_METRIC||o===ja.f.GEO)&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)("div",{style:{fontSize:"small"},"data-test-subj":`mlDataSplitTitle ${t.name}`},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.splitCards.dataSplitBy",defaultMessage:"Data split by {field}",values:{field:t.name}})),Object(h.jsx)(d.EuiSpacer,{size:"m"})),function(){l.length=0;const t=[...e];t.shift();let a=5;const i=t.map(((e,t)=>a+=10-t)).reverse();return!0===r&&setTimeout((()=>{l.forEach((e=>e.panel.style.marginBottom=`${e.marginBottom}px`))}),100),t.map(((e,a)=>{const n=(a+1)*(10/t.length*1.6)-100,s=i[a],o={height:"100px",marginBottom:"-100px",marginLeft:`${s}px`,marginRight:`${s}px`,...r?{transition:"margin 0.5s"}:{}};return Object(h.jsx)("div",{key:e,ref:e=>function(e,t){null!==e&&(!1===r&&(e.style.marginBottom=`${t}px`),l.push({panel:e,marginBottom:t}))}(e,n),style:o},Object(h.jsx)(d.EuiPanel,{paddingSize:"m",className:"mlPickFields__splitCard","data-test-subj":"mlSplitCard back"},Object(h.jsx)("div",{style:{fontWeight:"bold",fontSize:"small"},"data-test-subj":"mlSplitCardTitle"},e)))}))}(),Object(h.jsx)(d.EuiPanel,{paddingSize:"m",className:"mlPickFields__splitCard","data-test-subj":"mlSplitCard front"},Object(h.jsx)("div",{style:{fontWeight:"bold",fontSize:"small"},"data-test-subj":"mlSplitCardTitle"},e[0]),Object(h.jsx)(d.EuiHorizontalRule,{margin:"s"}),Object(h.jsx)(s.a.Fragment,null,a)))))})),Ks=1e3;function Zs(){const[e,t]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{setTimeout((()=>{t(!0)}),Ks)}),[]),e}const eo=({index:e,agg:t,field:a,byField:i,deleteDetector:n,children:s})=>{const o=!1===s&&void 0!==i?i.field:null;return Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"s",justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)("span",{style:{fontSize:"small"},"data-test-subj":"mlDetectorTitle"},function(e,t,a){const i=`${e.title}(${t.name})`;return null===a?i:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.detectorTitle.placeholder",{defaultMessage:"{title} split by {field}",values:{title:i,field:a.name}})}(t,a,o))),!1!==s&&Object(h.jsx)(d.EuiFlexItem,{style:{width:"100%",maxWidth:"400px"}},s),Object(h.jsx)(d.EuiFlexItem,{grow:!1},void 0!==n&&Object(h.jsx)(d.EuiButtonIcon,{color:"danger",onClick:()=>n(e),iconType:"cross",size:"s","aria-label":"Next"})))},to=({aggFieldPairList:e,chartSettings:t,splitField:a,fieldValues:i,lineChartsData:s,modelData:o,anomalyData:r,deleteDetector:l,jobType:c,loading:u=!1})=>{const p=Zs();return Object(h.jsx)(Qs,{fieldValues:i,splitField:a,numberOfDetectors:e.length,jobType:c,animate:p},Object(h.jsx)(d.EuiFlexGrid,{columns:t.cols},e.map(((a,i)=>Object(h.jsx)(d.EuiFlexItem,{key:i,"data-test-subj":`mlDetector ${i}`},Object(h.jsx)(n.Fragment,null,Object(h.jsx)(eo,{index:i,agg:e[i].agg,field:e[i].field,deleteDetector:l}),Object(h.jsx)(Rs,{chartType:Ls.LINE,chartData:s[i],modelData:o[i],anomalyData:r[i],height:t.height,width:t.width,loading:u})))))))},ao=({setIsValid:e})=>{const{jobCreator:t,jobCreatorUpdate:a,jobCreatorUpdated:i,chartLoader:s,chartInterval:o}=Object(n.useContext)(ms),r=t,l=Object(n.useMemo)((()=>Object(fa.e)([...bs.a.fields,...r.runtimeFields])),[]),[c,d]=Object(n.useState)([]),[u,p]=Object(n.useState)(r.aggFieldPairs),[m,b]=Object(n.useState)({}),[f,g]=Object(n.useState)(!1),[j,x]=Object(n.useState)(r.start),[v,y]=Object(n.useState)(r.end),[O,E]=Object(n.useState)(r.bucketSpanMs),[w,M]=Object(n.useState)(za),[S,_]=Object(n.useState)(r.splitField),[T,C]=Object(n.useState)([]),[k,F]=Object(n.useState)(!1);async function I(){if(k&&u.length>0&&(null===S||null!==S&&T.length>0)){g(!0);try{const e=Va(r,o);M(e);const t=await s.loadLineCharts(r.start,r.end,u,r.splitField,T.length>0?T[0]:null,e.intervalMs,r.runtimeMappings,r.datafeedConfig.indices_options);b(t)}catch(e){Object(qe.a)().displayErrorToast(e),b([])}g(!1)}}return Object(n.useEffect)((()=>{F(!0)}),[]),Object(n.useEffect)((()=>{r.removeAllDetectors(),u.forEach((e=>{r.addDetector(e.agg,e.field)})),a(),I(),e(u.length>0)}),[u.length]),Object(n.useEffect)((()=>{r.start===j&&r.end===v||(x(r.start),y(r.end),I()),r.bucketSpanMs!==O&&(E(r.bucketSpanMs),I()),_(r.splitField)}),[i]),Object(n.useEffect)((()=>{null!==S?s.loadFieldExampleValues(S,r.runtimeMappings,r.datafeedConfig.indices_options).then(C).catch((e=>{Object(qe.a)().displayErrorToast(e)})):C([])}),[S]),Object(n.useEffect)((()=>{I()}),[T]),Object(h.jsx)(n.Fragment,null,Object(h.jsx)(to,{aggFieldPairList:u,chartSettings:w,splitField:S,fieldValues:T,lineChartsData:m,modelData:[],anomalyData:[],deleteDetector:function(e){u.splice(e,1),p([...u])},jobType:r.type,loading:f}),Object(h.jsx)(Xs,{fields:l,detectorChangeHandler:function(e){!function(e){if(null!==e&&e.length){const t=e[0];if(void 0!==t){const e={agg:t.agg,field:t.field};p([...u,e]),d([])}else p([])}}(e)},selectedOptions:c,removeOptions:u}))},io=()=>{const{jobCreator:e,chartLoader:t,resultsLoader:a,chartInterval:i}=Object(n.useContext)(ms),s=e,[o,r]=Object(n.useState)({}),[l,c]=Object(n.useState)(!1),[d,u]=Object(n.useState)([]),[p,m]=Object(n.useState)([]),[b,f]=Object(n.useState)(za),[g,j]=Object(n.useState)([]);function x(e){u(e.model),m(e.anomalies)}function v(){return s.aggFieldPairs.length>0&&(null===s.splitField||null!==s.splitField&&g.length>0)}return Object(n.useEffect)((()=>{const e=a.subscribeToResults(x);return(async()=>{if(null!==s.splitField)try{const e=await t.loadFieldExampleValues(s.splitField,s.runtimeMappings,s.datafeedConfig.indices_options);j(e)}catch(e){Object(qe.a)().displayErrorToast(e)}})(),()=>{e.unsubscribe()}}),[t,a,s]),Object(n.useEffect)((()=>{v()&&async function(){if(v()){c(!0);try{const e=Va(s,i);f(e);const a=await t.loadLineCharts(s.start,s.end,s.aggFieldPairs,s.splitField,g.length>0?g[0]:null,e.intervalMs,s.runtimeMappings,s.datafeedConfig.indices_options);r(a)}catch(e){Object(qe.a)().displayErrorToast(e),r({})}c(!1)}}()}),[g]),Object(h.jsx)(n.Fragment,null,Object.keys(o).length&&Object(h.jsx)(to,{aggFieldPairList:s.aggFieldPairs,chartSettings:b,splitField:s.splitField,fieldValues:g,lineChartsData:o,modelData:d,anomalyData:p,deleteDetector:void 0,jobType:s.type,loading:l}))},no=({fields:e,changeHandler:t,selectedField:a,isClearable:i,testSubject:n,placeholder:s})=>{const{renderOption:o,optionCss:r}=Object(Ss.a)(),l=e.map((e=>({label:e.name,field:e,css:r}))),c=[];return null!==a&&c.push({label:a.name,field:a}),Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:l,selectedOptions:c,onChange:function(e){const a=e[0];t(void 0!==a?a.field:null)},isClearable:i,placeholder:s,"data-test-subj":n,renderOption:o})},so=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.splitField.title",{defaultMessage:"Split field"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.splitField.description",defaultMessage:"A field to split analysis by. Each value of this field will be modeled independently."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),oo=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),i=e,s=Object(n.useMemo)((()=>Object(fa.c)(i.runtimeFields)),[]),o=function(e,t,a){const[i,s]=Object(n.useState)(e);return Object(n.useEffect)((()=>{if(Fa(t))s(e);else{const a=t.rareField,i=t.populationField;s(null!==a||null!==i?e.filter((({name:e})=>e!==(null==a?void 0:a.name)&&e!==(null==i?void 0:i.name))):e)}}),[a]),i}(Object(n.useMemo)((()=>[...bs.a.categoryFields,...s].sort(((e,t)=>e.name.localeCompare(t.name)))),[]),i,a),[r,l]=Object(n.useState)(i.splitField);return Object(n.useEffect)((()=>{i.setSplitField(r),null!==r&&!1===i.influencers.includes(r.name)&&i.addInfluencer(r.name),t()}),[r]),Object(n.useEffect)((()=>{l(i.splitField)}),[a]),Object(h.jsx)(so,null,Object(h.jsx)(no,{fields:o,changeHandler:l,selectedField:r,isClearable:!0,testSubject:"mlSplitFieldSelect"}))},ro=({fields:e,changeHandler:t,selectedInfluencers:a})=>{const{jobCreator:i}=Object(n.useContext)(ms),{renderOption:s,optionCss:o}=Object(Ss.a)(),r=[...Object(xa.g)(e,i.additionalFields),...Object(xa.h)(i.categorizationFieldName)].map((e=>({...e,css:o}))),l=a.map((e=>({label:e})));return Object(h.jsx)(d.EuiComboBox,{options:r,selectedOptions:l,onChange:function(e){t(e.map((e=>e.label)))},isClearable:!1,"data-test-subj":"mlInfluencerSelect",renderOption:s})},lo=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.influencers.title",{defaultMessage:"Influencers"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.influencers.description",defaultMessage:"Categorical fields that influence the results. Who/what might you 'blame' for an anomaly? 1-3 influencers are recommended."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),co=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),i=e,{fields:s}=bs.a,[o,r]=Object(n.useState)([...i.influencers]);return Object(n.useEffect)((()=>{i.removeAllInfluencers(),o.forEach((e=>i.addInfluencer(e))),t()}),[o.join()]),Object(n.useEffect)((()=>{r([...i.influencers])}),[a]),Object(h.jsx)(lo,null,Object(h.jsx)(ro,{fields:s,changeHandler:r,selectedInfluencers:o}))},uo=({setIsValid:e})=>Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(oo,null)),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(co,null))),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(qs,{setIsValid:e})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Ws,null)))),po=({isActive:e,setCanProceed:t})=>{const[a,i]=Object(n.useState)(!1),[s,o]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{"function"==typeof t&&t(a&&s)}),[a,s]),Object(h.jsx)(n.Fragment,null,!1===e?Object(h.jsx)(io,null):Object(h.jsx)(n.Fragment,null,Object(h.jsx)(ao,{setIsValid:i}),a&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiHorizontalRule,{margin:"l"}),Object(h.jsx)(uo,{setIsValid:o}))))},mo=({fields:e,detectorChangeHandler:t,selectedOptions:a,maxWidth:i,removeOptions:n})=>Object(h.jsx)(d.EuiFlexGroup,{style:{maxWidth:void 0!==i?i:560}},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.populationView.addMetric",{defaultMessage:"Add metric"})},Object(h.jsx)(_s,{fields:e,changeHandler:t,selectedOptions:a,removeOptions:n})))),bo=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.populationField.title",{defaultMessage:"Population field"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.populationField.description",defaultMessage:"All values in the selected field will be modeled together as a population."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),fo=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),i=e,s=Object(n.useMemo)((()=>Object(fa.c)(i.runtimeFields)),[]),o=function(e,t,a){const[i,s]=Object(n.useState)(e);return Object(n.useEffect)((()=>{if(Ia(t))s(e);else{const a=t.rareField,i=t.splitField;s(null!==a||null!==i?e.filter((({name:e})=>e!==(null==a?void 0:a.name)&&e!==(null==i?void 0:i.name))):e)}}),[a]),i}(Object(n.useMemo)((()=>[...bs.a.categoryFields,...s].sort(((e,t)=>e.name.localeCompare(t.name)))),[]),i,a),[r,l]=Object(n.useState)(i.populationField);return Object(n.useEffect)((()=>{i.setPopulationField(r),null!==r&&!1===i.influencers.includes(r.name)&&i.addInfluencer(r.name),t()}),[r]),Object(n.useEffect)((()=>{l(i.populationField)}),[a]),Object(h.jsx)(bo,null,Object(h.jsx)(no,{fields:o,changeHandler:l,selectedField:r,isClearable:!1,testSubject:"mlPopulationSplitFieldSelect"}))},go=({detectorIndex:e})=>{const{jobCreator:t,jobCreatorUpdate:a,jobCreatorUpdated:i}=Object(n.useContext)(ms),s=t,o=Object(n.useMemo)((()=>Object(fa.c)(s.runtimeFields)),[]),r=Object(n.useMemo)((()=>[...bs.a.categoryFields,...o].sort(((e,t)=>e.name.localeCompare(t.name)))),[]),[l,c]=Object(n.useState)(s.getByField(e)),d=function(e,t,a){const[i,s]=Object(n.useState)(e);return Object(n.useEffect)((()=>{const a=t.populationField;s(null!==a?e.filter((({name:e})=>e!==a.name)):e)}),[a]),i}(r,s,i);return Object(n.useEffect)((()=>{s.setByField(l,e),null!==l&&!1===s.influencers.includes(l.name)&&s.addInfluencer(l.name),a()}),[l]),Object(n.useEffect)((()=>{const t=s.getByField(e);c(t)}),[i]),Object(h.jsx)(no,{fields:d,changeHandler:c,selectedField:l,isClearable:!0,testSubject:"mlByFieldSelect",placeholder:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.populationField.placeholder",{defaultMessage:"Split data"})})},ho=({aggFieldPairList:e,chartSettings:t,splitField:a,lineChartsData:i,modelData:s,anomalyData:o,deleteDetector:r,jobType:l,fieldValuesPerDetector:c,loading:u=!1})=>{const p=Zs();return Object(h.jsx)(d.EuiFlexGrid,{columns:t.cols},e.map(((m,b)=>Object(h.jsx)(d.EuiFlexItem,{key:b,"data-test-subj":`mlDetector ${b}`},Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(eo,{index:b,agg:e[b].agg,field:e[b].field,byField:e[b].by,deleteDetector:r},void 0!==r&&Object(h.jsx)(go,{detectorIndex:b})),l===ja.f.POPULATION&&Object(h.jsx)(d.EuiSpacer,{size:"s"}))),Object(h.jsx)(Qs,{fieldValues:c[b]||[],splitField:a,numberOfDetectors:e.length,jobType:l,animate:p},Object(h.jsx)(Rs,{chartType:Ls.SCATTER,chartData:i[b],modelData:s[b],anomalyData:o[b],height:t.height,width:t.width,loading:u})))))))},jo=({setIsValid:e})=>{const{jobCreator:t,jobCreatorUpdate:a,jobCreatorUpdated:i,chartLoader:s,chartInterval:o}=Object(n.useContext)(ms),r=t,l=Object(n.useMemo)((()=>Object(fa.e)([...bs.a.fields,...r.runtimeFields])),[]),[c,u]=Object(n.useState)([]),[p,m]=Object(n.useState)(r.aggFieldPairs),[b,f]=Object(n.useState)({}),[g,j]=Object(n.useState)(!1),[x,v]=Object(n.useState)(r.start),[y,O]=Object(n.useState)(r.end),[E,w]=Object(n.useState)(r.bucketSpanMs),[M,S]=Object(n.useState)(za),[_,T]=Object(n.useState)(r.populationField),[C,k]=Object(n.useState)({}),[F,I]=Object(n.useReducer)((e=>e+1),0),[D,A]=Object(n.useState)(!1),L=()=>I(0);async function R(){if(function(){let e=p.length>0;return p.forEach((t=>{void 0!==t.by&&null!==t.by.field&&(e=e&&null!==t.by.value)})),e}()){j(!0);try{const e=Va(r,o);S(e);const t=await s.loadPopulationCharts(r.start,r.end,p,r.populationField,e.intervalMs,r.runtimeMappings,r.datafeedConfig.indices_options);f(t)}catch(e){Object(qe.a)().displayErrorToast(e),f([])}j(!1)}}return Object(n.useEffect)((()=>{A(!0)}),[]),Object(n.useEffect)((()=>{r.removeAllDetectors(),p.forEach(((e,t)=>{r.addDetector(e.agg,e.field),void 0!==e.by&&r.setByField(e.by.field,t)})),a(),R(),e(p.length>0)}),[p.length]),Object(n.useEffect)((()=>{R()}),[JSON.stringify(C),_,D]),Object(n.useEffect)((()=>{r.start===x&&r.end===y||(v(r.start),O(r.end),R()),r.bucketSpanMs!==E&&(w(r.bucketSpanMs),R()),T(r.populationField);let e=!1;const t=[...p];t.forEach(((t,a)=>{const i=r.getByField(a);void 0!==t.by&&t.by.field!==i&&(t.by.field=i,e=!0)})),e&&(m(t),L())}),[i]),Object(n.useEffect)((()=>{!async function(){const e=[];p.forEach(((t,a)=>{void 0!==t.by&&null!==t.by.field&&e.push((async(e,t)=>({index:e,fields:await s.loadFieldExampleValues(t,r.runtimeMappings,r.datafeedConfig.indices_options)}))(a,t.by.field))}));const t=(await Promise.all(e)).reduce(((e,t)=>(e[t.index]=t.fields,e)),{}),a=p.map(((e,a)=>({...e,...void 0===e.by||null===e.by.field?{}:{by:{...e.by,value:t[a][0]}}})));m([...a]),k(t)}()}),[_,F]),Object(h.jsx)(n.Fragment,null,Object(h.jsx)(fo,null),null!==_&&Object(h.jsx)(d.EuiHorizontalRule,{margin:"l"}),null!==_&&Object(h.jsx)(ho,{aggFieldPairList:p,chartSettings:M,splitField:_,lineChartsData:b,modelData:[],anomalyData:[],deleteDetector:function(e){p.splice(e,1),m([...p]),L()},jobType:r.type,fieldValuesPerDetector:C,loading:g}),null!==_&&Object(h.jsx)(mo,{fields:l,detectorChangeHandler:function(e){!function(e){if(null!==e&&e.length){const t=e[0];if(void 0!==t){const e={agg:t.agg,field:t.field,by:{field:null,value:null}};m([...p,e]),u([])}else m([])}}(e)},selectedOptions:c,removeOptions:[]}))},xo=()=>{const{jobCreator:e,chartLoader:t,resultsLoader:a,chartInterval:i}=Object(n.useContext)(ms),s=e,[o,r]=Object(n.useState)(s.aggFieldPairs),[l,c]=Object(n.useState)({}),[u,p]=Object(n.useState)(!1),[m,b]=Object(n.useState)([]),[f,j]=Object(n.useState)([]),[x,v]=Object(n.useState)(za),[y,O]=Object(n.useState)({});function E(e){b(e.model),j(e.anomalies)}function w(){let e=o.length>0;return o.forEach((t=>{void 0!==t.by&&null!==t.by.field&&(e=e&&null!==t.by.value)})),e}return Object(n.useEffect)((()=>{const e=a.subscribeToResults(E);return()=>{e.unsubscribe()}}),[]),Object(n.useEffect)((()=>{w()&&async function(){if(w()){p(!0);try{const e=Va(s,i);v(e);const a=await t.loadPopulationCharts(s.start,s.end,o,s.populationField,e.intervalMs,s.runtimeMappings,s.datafeedConfig.indices_options);c(a)}catch(e){Object(qe.a)().displayErrorToast(e),c({})}p(!1)}}()}),[JSON.stringify(y),s.populationField]),Object(n.useEffect)((()=>{!async function(){const e=[];o.forEach(((a,i)=>{void 0!==a.by&&null!==a.by.field&&e.push((async(e,a)=>({index:e,fields:await t.loadFieldExampleValues(a,s.runtimeMappings,s.datafeedConfig.indices_options)}))(i,a.by.field))}));const a=(await Promise.all(e)).reduce(((e,t)=>(e[t.index]=t.fields,e)),{}),i=o.map(((e,t)=>({...e,...void 0===e.by||null===e.by.field?{}:{by:{...e.by,value:a[t][0]}}})));r([...i]),O(a)}()}),[s.populationField]),Object(h.jsx)(n.Fragment,null,null!==s.populationField&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.populationView.splitFieldTitle",defaultMessage:"Population split by {field}",values:{field:s.populationField.name}}),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(ho,{aggFieldPairList:s.aggFieldPairs,chartSettings:x,splitField:s.populationField,lineChartsData:l,modelData:m,anomalyData:f,jobType:s.type,fieldValuesPerDetector:y,loading:u})))},vo=({setIsValid:e})=>Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(qs,{setIsValid:e})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(co,null)))),yo=({isActive:e,setCanProceed:t})=>{const[a,i]=Object(n.useState)(!1),[s,o]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{"function"==typeof t&&t(a&&s)}),[a,s]),Object(h.jsx)(n.Fragment,null,!1===e?Object(h.jsx)(xo,null):Object(h.jsx)(n.Fragment,null,Object(h.jsx)(jo,{setIsValid:i}),a&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiHorizontalRule,{margin:"l"}),Object(h.jsx)(vo,{setIsValid:o}))))},Oo=({onCreateClick:e,closeModal:t,saveEnabled:a,children:i})=>Object(h.jsx)(d.EuiModal,{onClose:t,maxWidth:1200,"data-test-subj":"mlCreateDetectorModal"},Object(h.jsx)(d.EuiModalHeader,null,Object(h.jsx)(d.EuiModalHeaderTitle,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.title",defaultMessage:"Create detector"}))),Object(h.jsx)(d.EuiModalBody,null,i),Object(h.jsx)(d.EuiModalFooter,null,Object(h.jsx)(d.EuiButtonEmpty,{onClick:t,"data-test-subj":"mlCreateDetectorModalCancelButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.cancelButton",defaultMessage:"Cancel"})),Object(h.jsx)(d.EuiButton,{onClick:e,isDisabled:!1===a,fill:!0,"data-test-subj":"mlCreateDetectorModalSaveButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.saveButton",defaultMessage:"Save"}))));var Eo={name:"1btojeg",styles:"max-height:40vh"},wo={name:"3s4yqf",styles:"width:400px"};const Mo=Object(n.memo)((()=>{const{services:{docLinks:e}}=Object(Te.d)(),[t,a]=Object(n.useState)(!1),i=Object(h.jsx)(d.EuiButtonIcon,{onClick:()=>a((e=>!e)),iconType:"help"}),s=[{field:"function",name:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.function",{defaultMessage:"Function"}),width:"150px"},{field:"description",name:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.description",{defaultMessage:"Description"})}],o=[{function:"count, high_count, low_count",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.count",{defaultMessage:"Detect anomalies when the number of events in a bucket is anomalous."})},{function:"non_zero_count, high_non_zero_count, low_non_zero_count",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.nonZeroCount",{defaultMessage:"Detect anomalies when the number of events in a bucket is anomalous, but ignore cases where the bucket count is zero."})},{function:"distinct_count, high_distinct_count, low_distinct_count",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.distinctCount",{defaultMessage:"Detect anomalies where the number of distinct values in one field is unusual."})},{function:"lat_long",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.latLong",{defaultMessage:"Detect anomalies in the geographic location of the input data."})},{function:"info_content, high_info_content, low_info_content",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.infoContent",{defaultMessage:"Detect anomalies in the amount of information that is contained in strings in a bucket."})},{function:"min",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.min",{defaultMessage:"Detect anomalies in the arithmetic minimum of a value, which is calculated for each bucket."})},{function:"max",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.max",{defaultMessage:"Detect anomalies in the arithmetic maximum of a value, which is calculated for each bucket."})},{function:"median, high_median, low_median",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.median",{defaultMessage:"Detect anomalies in the statistical median of a value, which is calculated for each bucket."})},{function:"mean, high_mean, low_mean",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.mean",{defaultMessage:"Detect anomalies in the arithmetic mean of a value, which is calculated for each bucket."})},{function:"metric",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.metric",{defaultMessage:"Combine min, max, and mean functions. Use it as a shorthand for a combined analysis. This is the default function."})},{function:"varp, high_varp, low_varp",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.varp",{defaultMessage:"Detect anomalies in the variance of a value which is a measure of the variability and spread in the data."})},{function:"rare",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.rare",{defaultMessage:"Detect anomalies according to the number of distinct rare values."})},{function:"freq_rare",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.freqRare",{defaultMessage:"Detect anomalies according to the number of times (frequency) rare values occur."})},{function:"sum, high_sum, low_sum",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.sum",{defaultMessage:"Detect anomalies where the sum of a field in a bucket is anomalous."})},{function:"non_null_sum, high_non_null_sum, low_non_null_sum",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.nonNullSum",{defaultMessage:"These functions are useful if your data is sparse. Buckets without values are ignored and buckets with a zero value are analyzed."})},{function:"time_of_day, time_of_week",description:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.functionHelp.time",{defaultMessage:"Detect events that happen at unusual times, either of the day or of the week."})}];return Object(h.jsx)(d.EuiPopover,{anchorPosition:"rightUp",button:i,isOpen:t,display:"inlineBlock",panelPaddingSize:"none",closePopover:()=>a(!1),initialFocus:"#mlAdFunctionsHelpTableId"},Object(h.jsx)(d.EuiPopoverTitle,{paddingSize:"s"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomalyDetection.functions.popoverTitle",defaultMessage:"Function reference"})),Object(h.jsx)(d.EuiPanel,{className:"eui-yScroll",css:Eo,color:"transparent",paddingSize:"s"},Object(h.jsx)(d.EuiBasicTable,{id:"mlAdFunctionsHelpTableId",css:wo,tableCaption:u.i18n.translate("xpack.ml.anomalyDetection.functions.tableTitle",{defaultMessage:"Description of functions"}),items:o,compressed:!0,columns:s,responsive:!1})),Object(h.jsx)(d.EuiPanel,{color:"transparent",paddingSize:"s"},Object(h.jsx)(d.EuiText,{color:"subdued",size:"xs"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomalyDetection.functions.learnMoreText",defaultMessage:"Learn more about {link}",values:{link:Object(h.jsx)(d.EuiLink,{href:e.links.ml.anomalyDetectionFunctions,target:"_blank",external:!0},u.i18n.translate("xpack.ml.anomalyDetection.functions.learnMoreLink",{defaultMessage:"functions"}))}}))))})),So=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.aggSelect.title",{defaultMessage:"Function"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"none"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)("h3",null,t)),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Mo,null))),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.aggSelect.description",defaultMessage:"Analysis functions to be performed. For example, sum, count."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),_o=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.fieldSelect.title",{defaultMessage:"Field"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.fieldSelect.description",defaultMessage:"Required for functions: sum, mean, median, max, min, info_content, distinct_count, lat_long."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),To=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.byFieldSelect.title",{defaultMessage:"By field"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.byFieldSelect.description",defaultMessage:"Required for individual analysis where anomalies are detected compared to an entity's own past behavior."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),Co=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.overFieldSelect.title",{defaultMessage:"Over field"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.overFieldSelect.description",defaultMessage:"Required for population analysis where anomalies are detected compared to the behavior of the population."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),ko=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.partitionFieldSelect.title",{defaultMessage:"Partition field"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.partitionFieldSelect.description",defaultMessage:"Allows segmentation of modeling into logical groups."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),Fo=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.excludeFrequent.title",{defaultMessage:"Exclude frequent"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.excludeFrequent.description",defaultMessage:"If set, it will automatically identify and exclude frequently occurring entities which may otherwise have dominated results."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),Io=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.description.title",{defaultMessage:"Description"});return Object(h.jsx)(d.EuiDescribedFormGroup,{fullWidth:!0,title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorModal.description.description",defaultMessage:"Override the default detector description with a meaningful description of what the detector is analyzing."})},Object(h.jsx)(d.EuiFormRow,{fullWidth:!0},Object(h.jsx)(s.a.Fragment,null,e)))})),Do={label:""},Ao=[{label:"all"},{label:"none"},{label:"by"},{label:"over"}],Lo=({payload:e,fields:t,aggs:a,detectorChangeHandler:i,closeModal:s})=>{const{jobCreator:o}=Object(n.useContext)(ms),r=o,[l,c]=Object(n.useState)(e.detector),[u,p]=Object(n.useState)(Ro(l.agg)),[m,b]=Object(n.useState)(No(l.field)),[f,g]=Object(n.useState)(No(l.byField)),[j,x]=Object(n.useState)(No(l.overField)),[v,y]=Object(n.useState)(No(l.partitionField)),[O,E]=Object(n.useState)(null===(q=l.excludeFrequent)?Do:{label:q}),[w,M]=Object(n.useState)(l.description||""),[S,_]=Object(n.useState)(!0),[T,C]=Object(n.useState)(!0),[k,F]=Object(n.useState)(!0),{descriptionPlaceholder:I,setDescriptionPlaceholder:D}=function(e){const[t,a]=Object(n.useState)(Bo(e));return{descriptionPlaceholder:t,setDescriptionPlaceholder:function(e){a(Bo(e))}}}(l),[A,L]=Object(n.useState)([]),R=r.additionalFields.length>0,{renderOption:N,optionCss:P}=Object(Ss.a)(),z=a.filter((e=>function(e,t){return void 0!==e.fields&&(t||e.fields.length)}(e,R))).map(Ro).map((e=>({...e,css:P}))),{currentFieldOptions:B,setCurrentFieldOptions:V}=function(e,t,a){const[i,s]=Object(n.useState)(zo(e,t));return{currentFieldOptions:i.filter((({label:e})=>!1===a.includes(e))),setCurrentFieldOptions:e=>s(zo(e,t))}}(l.agg,Object(fa.c)(r.additionalFields,!1),A),J=[...[...Object(xa.g)(t,r.additionalFields)].sort(Jo).map((e=>({...e,css:P}))),...Object(xa.h)(r.categorizationFieldName)].sort(Jo).filter((({label:e})=>!1===A.includes(e))).map((e=>({...e,css:P}))),U=t.find((e=>e.id===la.c)),G=e=>t=>{e(t[0]||Do)};var q;function $(e){return a.find((t=>t.id===e))||null}function W(e){return e===la.H.id?la.H:t.find((t=>t.id===e))||r.additionalFields.find((t=>t.id===e))||null}return Object(n.useEffect)((()=>{const e=$(u.label);let t=W(m.label);const a=W(f.label),i=W(j.label),n=W(v.label);null!==e?(V(e),Po(e)&&void 0!==U?(_(!0),b(Do),F(!1),t=U):(_(null!==t),F(!0)),C(null!==a||null!==i)):(_(!1),F(!1)),L([...t?[t.name]:[],...a?[a.name]:[],...i?[i.name]:[],...n?[n.name]:[]]);const s={agg:e,field:t,byField:a,overField:i,partitionField:n,excludeFrequent:""!==O.label?O.label:null,description:""!==w?w:null,customRules:null,useNull:null};c(s),D(s)}),[u,m,f,j,v,O,w]),Object(n.useEffect)((()=>{const e=$(u.label);if(_(""!==u.label),null!==e){F(!1===Po(e));const t=W(f.label),a=W(j.label);C(null!==t||null!==a)}}),[]),Object(n.useEffect)((()=>{!1===T&&E(Do)}),[T]),Object(h.jsx)(Oo,{onCreateClick:function(){i(l,e.index)},closeModal:s,saveEnabled:S&&(!1===k||!0===k&&""!==m.label)},Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,{"data-test-subj":"mlAdvancedFunctionSelect"},Object(h.jsx)(So,null,Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:z,selectedOptions:Vo(u),onChange:G(p),isClearable:!0,renderOption:N}))),Object(h.jsx)(d.EuiFlexItem,{"data-test-subj":"mlAdvancedFieldSelect"},Object(h.jsx)(_o,null,Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:B,selectedOptions:Vo(m),onChange:G(b),isClearable:!0,isDisabled:!1===k,renderOption:N})))),Object(h.jsx)(d.EuiHorizontalRule,{margin:"l"}),Object(h.jsx)(d.EuiFlexGrid,{columns:2},Object(h.jsx)(d.EuiFlexItem,{"data-test-subj":"mlAdvancedByFieldSelect"},Object(h.jsx)(To,null,Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:J,selectedOptions:Vo(f),onChange:G(g),isClearable:!0,isDisabled:!1===S,renderOption:N}))),Object(h.jsx)(d.EuiFlexItem,{"data-test-subj":"mlAdvancedOverFieldSelect"},Object(h.jsx)(Co,null,Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:J,selectedOptions:Vo(j),onChange:G(x),isClearable:!0,isDisabled:!1===S,renderOption:N}))),Object(h.jsx)(d.EuiFlexItem,{"data-test-subj":"mlAdvancedPartitionFieldSelect"},Object(h.jsx)(ko,null,Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:J,selectedOptions:Vo(v),onChange:G(y),isClearable:!0,isDisabled:!1===S,renderOption:N}))),Object(h.jsx)(d.EuiFlexItem,{"data-test-subj":"mlAdvancedExcludeFrequentSelect"},Object(h.jsx)(Fo,null,Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:Ao,selectedOptions:Vo(O),onChange:G(E),isClearable:!0,isDisabled:!1===S||!1===T,renderOption:N})))),Object(h.jsx)(d.EuiHorizontalRule,{margin:"l"}),Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Io,null,Object(h.jsx)(d.EuiTextArea,{rows:2,fullWidth:!0,placeholder:I,value:w,onChange:e=>M(e.target.value),"data-test-subj":"mlAdvancedDetectorDescriptionInput"}))))))};function Ro(e){return null===e?Do:{label:e.id}}function No(e){return null===e?Do:{label:e.name}}function Po(e){return e.fields&&1===e.fields.length&&e.fields[0].id===la.c}function zo(e,t){return Object(xa.g)(null!==e&&void 0!==e.fields?e.fields:[],t)}function Bo(e){if(null===e.agg||null===e.field)return"";const t=Object(ga.a)(e.agg,e.field);return t.by_field_name=e.byField?e.byField.id:void 0,t.over_field_name=e.overField?e.overField.id:void 0,t.partition_field_name=e.partitionField?e.partitionField.id:void 0,t.exclude_frequent=e.excludeFrequent?e.excludeFrequent:void 0,Object(We.b)(t)}function Vo(e){return void 0===e||""===e.label?[]:[e]}function Jo(e,t){return e.label.localeCompare(t.label)}const Uo=({payload:e,fields:t,aggs:a,detectorChangeHandler:i,closeModal:s,showModal:o})=>Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{style:{maxWidth:560}},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(d.EuiButton,{onClick:o,"data-test-subj":"mlAddDetectorButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.addDetectorButton",defaultMessage:"Add detector"}))))),null!==e&&Object(h.jsx)(Lo,{payload:e,fields:t,aggs:a,detectorChangeHandler:i,closeModal:s})),Go=({isActive:e,onEditJob:t,onDeleteJob:a})=>{const{jobCreator:i,jobCreatorUpdated:o,jobValidator:r,jobValidatorUpdated:l}=Object(n.useContext)(ms),c=i,[p,m]=Object(n.useState)(c.detectors),[b,f]=Object(n.useState)(r.duplicateDetectors);Object(n.useEffect)((()=>{m(c.detectors)}),[o]),Object(n.useEffect)((()=>{r.duplicateDetectors.valid||f(r.duplicateDetectors),r.categorizerVaryingPerPartitionField.valid||f(r.categorizerVaryingPerPartitionField),r.categorizerMissingPerPartition.valid||f(r.categorizerMissingPerPartition)}),[l]);const j=({index:e})=>Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiButtonIcon,{color:"primary",onClick:()=>t(e),iconType:"pencil","aria-label":u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorList.editButton",{defaultMessage:"Edit"}),"data-test-subj":"mlAdvancedDetectorEditButton"})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiButtonIcon,{color:"danger",onClick:()=>a(e),iconType:"trash","aria-label":u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorList.deleteButton",{defaultMessage:"Delete"}),"data-test-subj":"mlAdvancedDetectorDeleteButton"})));return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h3",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.advancedDetectorList.title",defaultMessage:"Detectors"}))),Object(h.jsx)(qo,{show:0===p.length}),Object(h.jsx)(d.EuiFlexGrid,{columns:3},p.map(((t,a)=>Object(h.jsx)(d.EuiFlexItem,{key:a,"data-test-subj":`mlAdvancedDetector ${a}`},Object(h.jsx)(d.EuiPanel,{paddingSize:"m"},Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,void 0!==t.detector_description?Object(h.jsx)("div",{style:{fontWeight:"bold"},"data-test-subj":"mlDetectorDescription"},t.detector_description):Object(h.jsx)(Wo,{detector:t})),e&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(j,{index:a}))),void 0!==t.detector_description&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiHorizontalRule,{margin:"s"}),Object(h.jsx)(Wo,{detector:t}))))))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)($o,{validation:b}),Object(h.jsx)(d.EuiSpacer,{size:"m"}))},qo=({show:e})=>!1===e?null:Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.noDetectorsCallout.title",{defaultMessage:"No detectors"}),iconType:"warning","data-test-subj":"mlAdvancedNoDetectorsMessage"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.noDetectorsCallout.message",defaultMessage:"At least one detector is needed to create a job."}))),$o=({validation:e})=>!0===e.valid?null:Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFormRow,{error:e.message,isInvalid:!1===e.valid},Object(h.jsx)(s.a.Fragment,null))),Wo=({detector:e})=>Object(h.jsx)("div",{"data-test-subj":"mlDetectorIdentifier"},Object(We.b)(e)),Ho={agg:null,field:null,byField:null,overField:null,partitionField:null,excludeFrequent:null,description:null,customRules:null,useNull:null},Yo=({setIsValid:e})=>{const{jobCreator:t,jobCreatorUpdate:a,jobCreatorUpdated:i}=Object(n.useContext)(ms),s=t,{fields:o,aggs:r}=bs.a,[l,c]=Object(n.useState)(null);return Object(n.useEffect)((()=>{e(s.detectors.length>0)}),[i]),Object(h.jsx)(n.Fragment,null,Object(h.jsx)(Go,{isActive:!0,onEditJob:function(e){const t=s.richDetectors[e];void 0!==t&&c({detector:t,index:e})},onDeleteJob:function(e){s.removeDetector(e),a()}}),Object(h.jsx)(Uo,{payload:l,fields:o,aggs:r,detectorChangeHandler:function(e,t){void 0===t?s.addDetector(e.agg,e.field,e.byField,e.overField,e.partitionField,e.excludeFrequent,e.description,e.useNull):s.editDetector(e.agg,e.field,e.byField,e.overField,e.partitionField,e.excludeFrequent,e.description,t,e.useNull),a(),c(null)},showModal:function(){c({detector:Ho})},closeModal:function(){c(null)}}))},Xo=()=>Object(h.jsx)(Go,{isActive:!1,onEditJob:()=>{},onDeleteJob:()=>{}}),Qo=Object(n.memo)((({children:e,validation:t})=>{const a=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.modelMemoryLimit.title",{defaultMessage:"Model memory limit"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,a),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.modelMemoryLimit.description",defaultMessage:"An approximate upper limit for the amount of memory that can be used by the analytical models."})},Object(h.jsx)(d.EuiFormRow,{error:t.message,isInvalid:!1===t.valid},Object(h.jsx)(s.a.Fragment,null,e)))})),Ko=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a,jobValidator:i,jobValidatorUpdated:s}=Object(n.useContext)(ms),[o,r]=Object(n.useState)(i.modelMemoryLimit),[l,c]=Object(n.useState)(null===e.modelMemoryLimit?"":e.modelMemoryLimit),{anomaly_detectors:u}=Object(ie.c)(),{model_memory_limit:p}=u;return Object(n.useEffect)((()=>{e.modelMemoryLimit=""===l?null:l,t()}),[l]),Object(n.useEffect)((()=>{c(null===e.modelMemoryLimit?"":e.modelMemoryLimit)}),[a]),Object(n.useEffect)((()=>{r(i.modelMemoryLimit)}),[s]),Object(h.jsx)(Qo,{validation:o},Object(h.jsx)(d.EuiFieldText,{value:l,placeholder:p,onChange:e=>c(e.target.value),isInvalid:!1===o.valid,"data-test-subj":"mlJobWizardInputModelMemoryLimit"}))},Zo=({setIsValid:e})=>Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(qs,{setIsValid:e})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(co,null))),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Ko,null)),Object(h.jsx)(d.EuiFlexItem,null))),er=({fields:e,changeHandler:t,selectedField:a})=>{const{jobCreator:i}=Object(n.useContext)(ms),{renderOption:s,optionCss:o}=Object(Ss.a)(),r=[...Object(xa.f)(i.aggregationFields.length>0),...Object(xa.g)(e,i.additionalFields)].map((e=>({...e,css:o}))),l=[];return null!==a&&l.push({label:a}),Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:r,selectedOptions:l,onChange:function(e){const a=e[0];t(void 0!==a?a.label:null)},isClearable:!0,"data-test-subj":"mlSummaryCountFieldNameSelect",renderOption:s})},tr=Object(n.memo)((({children:e,validation:t})=>{const a=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.summaryCountField.title",{defaultMessage:"Summary count field"}),{services:{docLinks:i}}=Object(Te.d)(),n=i.links.ml.aggregations;return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,a),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.summaryCountField.description",defaultMessage:"If the input data is {aggregated}, specify the field that contains the document count.",values:{aggregated:Object(h.jsx)(d.EuiLink,{href:n,target:"_blank"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.summaryCountField.aggregatedText",defaultMessage:"aggregated"}))}})},Object(h.jsx)(d.EuiFormRow,{error:t.message,isInvalid:!1===t.valid},Object(h.jsx)(s.a.Fragment,null,e)))})),ar=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a,jobValidator:i,jobValidatorUpdated:s}=Object(n.useContext)(ms),o=e,{fields:r}=bs.a,[l,c]=Object(n.useState)(o.summaryCountFieldName),[d,u]=Object(n.useState)(i.summaryCountField);return Object(n.useEffect)((()=>{u(i.summaryCountField)}),[s]),Object(n.useEffect)((()=>{o.summaryCountFieldName=l,t()}),[l]),Object(n.useEffect)((()=>{c(o.summaryCountFieldName)}),[a]),Object(h.jsx)(tr,{validation:d},Object(h.jsx)(er,{fields:r,changeHandler:c,selectedField:l}))},ir=({fields:e,changeHandler:t,selectedField:a})=>{const{jobCreator:i,jobCreatorUpdated:s}=Object(n.useContext)(ms),{renderOption:o,optionCss:r}=Object(Ss.a)(),l=Object(n.useMemo)((()=>[...Object(xa.g)(e,i.additionalFields)].map((e=>({...e,css:r})))),[e,s,r]),c=Object(n.useMemo)((()=>{const e=[];return null!==a&&e.push({label:a}),e}),[a]),u=Object(n.useCallback)((e=>{var a;return t(null!==(a=e[0]&&e[0].label)&&void 0!==a?a:null)}),[t]);return Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:l,selectedOptions:c,onChange:u,isClearable:!0,"data-test-subj":"mlCategorizationFieldNameSelect",renderOption:o})},nr=Object(n.memo)((({children:e,isOptional:t})=>{const a=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.categorizationField.title",{defaultMessage:"Categorization field"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,a),description:Object(h.jsx)(s.a.Fragment,null,t?Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.categorizationFieldOptional.description",defaultMessage:"Optional, for use if analyzing unstructured log data. Using text data types is recommended."}):Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.categorizationField.description",defaultMessage:"Specifies which field will be categorized. Using text data types is recommended. Categorization works best on machine written log messages, typically logging written by a developer for the purpose of system troubleshooting."}))},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),sr=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),i=e,{catFields:s}=bs.a,[o,r]=Object(n.useState)(i.categorizationFieldName),l=Aa(i);return Object(n.useEffect)((()=>{i.categorizationFieldName!==o&&(i.categorizationFieldName=o,t())}),[o]),Object(n.useEffect)((()=>{r(i.categorizationFieldName)}),[a]),Object(h.jsx)(nr,{isOptional:!1===l},Object(h.jsx)(ir,{fields:s,changeHandler:r,selectedField:o}))},or=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.perPartitionCategorization.enable.title",{defaultMessage:"Per-partition categorization"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.perPartitionCategorization.enable.description",defaultMessage:"Determine categories independently for each value of the partition field."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),rr=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),i=e,[s,o]=Object(n.useState)(i.perPartitionCategorization),r=Object(n.useCallback)((()=>o(!s)),[s]);return Object(n.useEffect)((()=>{o(i.perPartitionCategorization)}),[a]),Object(n.useEffect)((()=>{!1===s&&(i.perPartitionStopOnWarn=!1),i.perPartitionCategorization=s,t()}),[s]),Object(h.jsx)(d.EuiSwitch,{name:"categorizationPerPartitionSwitch",disabled:!1,checked:s,onChange:r,"data-test-subj":"mlJobWizardSwitchCategorizationPerPartition",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.perPartitionCategorizationSwitchLabel",defaultMessage:"Enable per-partition categorization"})})},lr=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),i=e,[s,o]=Object(n.useState)(i.perPartitionStopOnWarn),r=Object(n.useCallback)((()=>o(!s)),[s]);return Object(n.useEffect)((()=>{i.perPartitionStopOnWarn=s,t()}),[s]),Object(n.useEffect)((()=>{o(i.perPartitionStopOnWarn)}),[a]),Object(h.jsx)(d.EuiSwitch,{name:"categorizationPerPartitionStopOnWarnSwitch",disabled:!1,checked:s,onChange:r,"data-test-subj":"mlJobWizardSwitchCategorizationPerPartitionStopOnWarn",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.perPartitionCategorizationtopOnWarnSwitchLabel",defaultMessage:"Stop on warn"})})},cr=({fields:e,changeHandler:t,selectedField:a})=>{const{jobCreator:i,jobCreatorUpdated:s}=Object(n.useContext)(ms),{renderOption:o,optionCss:r}=Object(Ss.a)(),l=Object(n.useMemo)((()=>[...Object(xa.g)(e,i.additionalFields)].map((e=>({...e,css:r})))),[e,s]),c=Object(n.useMemo)((()=>{const e=[];return null!==a&&e.push({label:a}),e}),[a]),u=Object(n.useCallback)((e=>{var a;return t(null!==(a=e[0]&&e[0].label)&&void 0!==a?a:null)}),[t]);return Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:l,selectedOptions:c,onChange:u,isClearable:!0,"data-test-subj":"mlJobWizardCategorizationPerPartitionFieldNameSelect",renderOption:o})},dr=({setEnablePerPartitionCategorization:e})=>{const{jobCreator:t,jobCreatorUpdate:a,jobCreatorUpdated:i}=Object(n.useContext)(ms),s=t,[o,r]=Object(n.useState)(s.categorizationPerPartitionField),{categoryFields:l}=bs.a,c=Object(n.useMemo)((()=>l.filter((e=>e.id!==s.categorizationFieldName))),[l,i]);return Object(n.useEffect)((()=>{s.categorizationPerPartitionField=o,a()}),[o]),Object(n.useEffect)((()=>{s.perPartitionCategorization&&null===s.categorizationPerPartitionField&&c.length>0&&(s.categorizationPerPartitionField=c[0].id),r(s.categorizationPerPartitionField),e(s.perPartitionCategorization)}),[i]),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.extraStep.categorizationJob.categorizationPerPartitionFieldLabel",defaultMessage:"Partition field"})},Object(h.jsx)(cr,{fields:c,changeHandler:r,selectedField:o||""}))},ur=()=>{const{jobCreator:e,jobCreatorUpdated:t}=Object(n.useContext)(ms),a=e,[i,o]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{o(a.perPartitionCategorization)}),[t]),Object(h.jsx)(or,null,Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(rr,null)),i&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.extraStep.categorizationJob.stopOnWarnLabel",defaultMessage:"Stop on warn"})},Object(h.jsx)(lr,null))),Aa(a)&&i&&Object(h.jsx)(dr,{setEnablePerPartitionCategorization:o}))},pr=()=>{const{jobCreator:e}=Object(n.useContext)(ms),t=Da(e)&&null!==e.categorizationFieldName;return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(sr,null),t&&Object(h.jsx)(ur,null)),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(ar,null))))},mr=({isActive:e,setCanProceed:t})=>{const[a,i]=Object(n.useState)(!1),[s,o]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{"function"==typeof t&&t(a&&s)}),[a,s]),Object(h.jsx)(n.Fragment,null,!1===e?Object(h.jsx)(Xo,null):Object(h.jsx)(n.Fragment,null,Object(h.jsx)(pr,null),Object(h.jsx)(d.EuiHorizontalRule,{margin:"l"}),Object(h.jsx)(Yo,{setIsValid:i}),Object(h.jsx)(d.EuiHorizontalRule,{margin:"l"}),Object(h.jsx)(Zo,{setIsValid:o})))},br=({onClick:e,isSelected:t})=>Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiCard,{"data-test-subj":"mlJobWizardCategorizationDetectorCountCard"+(t?" selected":""),title:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.categorizationDetectorSelect.countCard.title",{defaultMessage:"Count"}),description:Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.categorizationDetectorSelect.countCard.description",defaultMessage:"Look for anomalies in the event rate of a category."})),selectable:{onClick:e,isSelected:t}})),fr=({onClick:e,isSelected:t})=>Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiCard,{"data-test-subj":"mlJobWizardCategorizationDetectorRareCard"+(t?" selected":""),title:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.categorizationDetectorSelect.rareCard.title",{defaultMessage:"Rare"}),description:Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.categorizationDetectorSelect.rareCard.description",defaultMessage:"Look for categories that occur rarely in time."})),selectable:{onClick:e,isSelected:t}})),gr=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),i=e,[o,r]=Object(n.useState)(i.selectedDetectorType);return Object(n.useEffect)((()=>{o!==i.selectedDetectorType&&(i.setDetectorType(o),t())}),[o]),Object(n.useEffect)((()=>{r(i.selectedDetectorType)}),[a]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h3",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.categorizationDetectorSelect.title",defaultMessage:"Categorization detector"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"l",style:{maxWidth:"824px"}},Object(h.jsx)(br,{onClick:function(){r(la.n.COUNT)},isSelected:o===la.n.COUNT}),Object(h.jsx)(fr,{onClick:function(){r(la.n.RARE)},isSelected:o===la.n.RARE})))},hr=({fieldExamples:e})=>{if(null===e||0===e.length)return null;const t=[{field:"example",name:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.categorizationFieldExamples.title",{defaultMessage:"Examples"}),render:e=>Object(h.jsx)(d.EuiCodeBlock,{fontSize:"s",paddingSize:"none",transparentBackground:!0,style:{maxHeight:"200px"}},e)}],a=e.map(((e,t)=>{const a=[];let i=0,n="",s=0;for(;sObject(h.jsx)("span",{style:{backgroundColor:"#b0ccf7"}},e),xr=()=>{const{jobCreator:e,jobCreatorUpdate:t}=Object(n.useContext)(ms),a=e,[i,s]=Object(n.useState)(!1),[o,r]=Object(n.useState)(!1),[l,c]=Object(n.useState)(JSON.stringify(a.categorizationAnalyzer,null,2));function p(e){c(e);const t=Object(Ma.c)(e);r(t)}return Object(n.useEffect)((()=>{!0===i&&c(JSON.stringify(a.categorizationAnalyzer,null,2))}),[i]),Object(h.jsx)(n.Fragment,null,Object(h.jsx)(vr,{onClick:function(){r(!1),s(!i)}}),!0===i&&Object(h.jsx)(d.EuiFlyout,{onClose:()=>s(!1),hideCloseButton:!0,size:"m"},Object(h.jsx)(d.EuiFlyoutBody,null,Object(h.jsx)(yr,{onChange:p,title:u.i18n.translate("xpack.ml.newJob.wizard.categorizationAnalyzerFlyout.title",{defaultMessage:"Edit categorization analyzer JSON"}),value:l})),Object(h.jsx)(d.EuiFlyoutFooter,null,Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{iconType:"cross",onClick:()=>s(!1),flush:"left"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.categorizationAnalyzerFlyout.closeButton",defaultMessage:"Close"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!0}),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{onClick:function(){const{anomaly_detectors:e}=Object(ie.c)();p(JSON.stringify(e.categorization_analyzer,null,2))}},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.categorizationAnalyzerFlyout.useDefaultButton",defaultMessage:"Use default ML analyzer"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:function(){a.categorizationAnalyzer=JSON.parse(l),t(),s(!1)},fill:!0,isDisabled:!1===o},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.categorizationAnalyzerFlyout.saveButton",defaultMessage:"Save"})))))))},vr=({onClick:e})=>Object(h.jsx)(d.EuiButtonEmpty,{onClick:e,flush:"left","data-test-subj":"mlJobWizardButtonPreviewJobJson"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.editCategorizationAnalyzerFlyoutButton",defaultMessage:"Edit categorization analyzer"})),yr=({title:e,value:t,onChange:a})=>Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h5",null,e)),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(Jt.a,{value:t,height:"800px",readOnly:!1,onChange:a})),Or=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.allChecksButton",{defaultMessage:"View all checks performed"}),Er=({overallValidStatus:e,validationChecks:t,categorizationAnalyzer:a})=>{const i=Object(h.jsx)(wr,{categorizationAnalyzer:a});let n="success",s=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.categorizationFieldCalloutTitle.valid",{defaultMessage:"Selected category field is valid"});return e===Sa.INVALID?(n="danger",s=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.categorizationFieldCalloutTitle.invalid",{defaultMessage:"Selected category field is invalid"})):e===Sa.PARTIALLY_VALID&&(n="warning",s=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.categorizationFieldCalloutTitle.possiblyInvalid",{defaultMessage:"Selected category field is possibly invalid"})),Object(h.jsx)(d.EuiCallOut,{color:n,title:s,"data-test-subj":`mlJobWizardCategorizationExamplesCallout ${e}`},t.map(((e,t)=>Object(h.jsx)("div",{key:t},e.message))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),i,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiAccordion,{id:"all-checks",buttonContent:Or},Object(h.jsx)(Mr,{validationChecks:t})))},wr=({categorizationAnalyzer:e})=>{let t=null;return void 0!==(null==e?void 0:e.tokenizer)&&"string"==typeof e.tokenizer?t=e.tokenizer:void 0!==(null==e?void 0:e.analyzer)&&(t=e.analyzer),Object(h.jsx)(s.a.Fragment,null,null!==t?Object(h.jsx)("div",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.categorizationFieldAnalyzer",defaultMessage:"Analyzer used: {analyzer}",values:{analyzer:t}})):null,Object(h.jsx)("div",null,Object(h.jsx)(xr,null)))},Mr=({validationChecks:e})=>{const t=Object.keys(Ta).map(((t,a)=>{const i=e.find((e=>e.id===a));return void 0!==i&&(null==i?void 0:i.valid)!==Sa.VALID?{iconType:"cross",label:i.message,size:"s"}:{iconType:"check",label:Ta[a],size:"s"}}));return Object(h.jsx)(d.EuiListGroup,{listItems:t,maxWidth:!1})},Sr=()=>Object(h.jsx)(d.EuiCallOut,{color:"warning",title:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.invalidCssVersionCallout.title",{defaultMessage:"The data view appears to be cross-cluster"})},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.invalidCssVersionCallout.mesage",defaultMessage:"No example categories could be found, this could be due to one of the clusters being an unsupported version."})),_r=({setIsValid:e})=>{const{jobCreator:t,jobCreatorUpdate:a,jobCreatorUpdated:i}=Object(n.useContext)(ms),o=t,[r,l]=Object(n.useState)(!1),[c,u]=Object(n.useState)(!1),[p,m]=Object(n.useState)(o.start),[b,f]=Object(n.useState)(o.end),[g,j]=Object(n.useState)(JSON.stringify(o.categorizationAnalyzer)),[x,v]=Object(n.useState)(null),[y,O]=Object(n.useState)(Sa.INVALID),[E,w]=Object(n.useState)([]),[M,S]=Object(n.useState)(o.categorizationFieldName);async function _(){if(null!==M){l(!0);try{const{examples:e,overallValidStatus:t,validationChecks:a,ccsVersionFailure:i}=await o.loadCategorizationFieldExamples();v(e),O(t),w(a),u(i),l(!1)}catch(e){l(!1),v(null),w([]),O(Sa.INVALID),Object(qe.a)().displayErrorToast(e),u(!1)}}else v(null),w([]),O(Sa.INVALID),u(!1);e(null!==M)}return Object(n.useEffect)((()=>{o.categorizationFieldName!==M&&(o.categorizationFieldName=M,a()),_()}),[M]),Object(n.useEffect)((()=>{let e=!1;o.start===p&&o.end===b||(m(o.start),f(o.end),e=!0);const t=JSON.stringify(o.categorizationAnalyzer);t!==g&&(j(t),e=!0),e&&_(),o.categorizationFieldName!==M&&S(o.categorizationFieldName)}),[i]),Object(n.useEffect)((()=>{a()}),[y]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(gr,null),Object(h.jsx)(d.EuiHorizontalRule,null),Object(h.jsx)(sr,null),!0===r&&Object(h.jsx)(Ja.a,{hasData:!1,loading:!0},Object(h.jsx)("div",null)),!1===c&&null!==x&&!1===r&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Er,{overallValidStatus:y,validationChecks:E,categorizationAnalyzer:o.categorizationAnalyzer}),Object(h.jsx)(hr,{fieldExamples:x})),!0===c&&Object(h.jsx)(Sr,null),Object(h.jsx)(d.EuiHorizontalRule,null),Object(h.jsx)(ur,null))},Tr=()=>{const{displayErrorToast:e}=Object(qe.c)(),{jobCreator:t,resultsLoader:a}=Object(n.useContext)(ms),i=t,[o,r]=Object(n.useState)([]),[l,c]=Object(n.useState)(0);function u(t){!async function(){try{const e=await Je.ml.jobs.topCategories(i.jobId,ja.g);r(e.categories.map((e=>{var t;return{count:e.count,example:null!==(t=e.category.examples)&&void 0!==t&&t.length?e.category.examples[0]:""}}))),c(e.total)}catch(t){404!==Object(ei.c)(t).statusCode&&e(t)}}()}Object(n.useEffect)((()=>{const e=a.subscribeToResults(u);return()=>{e.unsubscribe()}}),[]);const p=[...i.modelPlot?[{field:"count",name:"count",width:"100px",render:e=>Object(h.jsx)(d.EuiText,{size:"s"},Object(h.jsx)("code",null,e))}]:[],{field:"example",name:"Example",render:e=>Object(h.jsx)(d.EuiText,{size:"s"},Object(h.jsx)("code",null,e))}];return Object(h.jsx)(s.a.Fragment,null,l>0&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)("div",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.categorizationTotalCategories",defaultMessage:"Total categories: {totalCategories}",values:{totalCategories:l}})),Object(h.jsx)(d.EuiBasicTable,{columns:p,items:o})))},Cr=()=>{const{jobCreator:e,resultsLoader:t}=Object(n.useContext)(ms),a=e,[i,o]=Object(n.useState)([]),[r,l]=Object(n.useState)(),p=Object(n.useMemo)((()=>[{field:"partitionName",name:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.stoppedPartitionsPreviewColumnName",{defaultMessage:"Stopped partition names"}),render:e=>Object(h.jsx)(d.EuiText,{size:"s"},Object(h.jsx)("code",null,e))}]),[]),m=Object(n.useCallback)((async()=>{try{const{jobs:e}=await Je.ml.results.getCategoryStoppedPartitions([a.jobId]);if(!Array.isArray(e)&&Array.isArray(e[a.jobId])&&e[a.jobId].length>0)return e[a.jobId]}catch(e){const t=Object(ei.c)(e);404!==t.statusCode&&l(t.message)}}),[a.jobId]);return Object(n.useEffect)((()=>{if(a.perPartitionCategorization&&a.perPartitionStopOnWarn){const e=t.results$.pipe(Object(Ii.switchMap)((()=>Object(c.from)(m()))),Object(Ii.tap)((e=>{Array.isArray(e)&&o(e.slice(0,5).map((e=>({partitionName:e}))))})),Object(Ii.takeWhile)((e=>!e||Array.isArray(e)&&e.length<=5))).subscribe();return()=>e.unsubscribe()}}),[]),Object(h.jsx)(s.a.Fragment,null,r&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiCallOut,{color:"danger",size:"s",title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.stoppedPartitionsErrorCallout",defaultMessage:"An error occurred while fetching list of stopped partitions."})})),Array.isArray(i)&&i.length>0&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)("div",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.categorizationStoppedPartitionsTitle",defaultMessage:"Stopped partitions"})),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiCallOut,{color:"warning",size:"s",title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.stoppedPartitionsExistCallout",defaultMessage:"Per-partition categorization and stop_on_warn settings are enabled. Some partitions in job '{jobId}' are unsuitable for categorization and have been excluded from further categorization or anomaly detection analysis.",values:{jobId:a.jobId}})}),Object(h.jsx)(d.EuiBasicTable,{columns:p,items:i})))},kr=0,Fr=()=>{const{jobCreator:e,chartLoader:t,resultsLoader:a,chartInterval:i}=Object(n.useContext)(ms),o=e,[r,l]=Object(n.useState)(!1),[c,d]=Object(n.useState)([]),[u,p]=Object(n.useState)([]),[m,b]=Object(n.useState)(!1);function f(e){const t=e.anomalies[kr];void 0!==t&&d(t)}function g(e){b(e>0)}return Object(n.useEffect)((()=>{const e=a.subscribeToResults(f);return o.subscribeToProgress(g),async function(){l(!0);try{var e;const a=await t.loadEventRateChart(o.start,o.end,i.getInterval().asMilliseconds(),null!==(e=o.runtimeMappings)&&void 0!==e?e:void 0,o.datafeedConfig.indices_options);p(a)}catch(e){p([])}l(!1)}(),()=>{e.unsubscribe()}}),[]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Wa,{eventRateChartData:u,anomalyData:c,height:"300px",width:"100%",showAxis:!0,loading:r,fadeChart:m}),Object(h.jsx)(Tr,null),Object(h.jsx)(Cr,null))},Ir=({setIsValid:e})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(qs,{setIsValid:e,hideEstimateButton:!0})))),Dr=({isActive:e,setCanProceed:t})=>{const[a,i]=Object(n.useState)(!1),[o,r]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{"function"==typeof t&&t(a&&o)}),[a,o]),!1===e?Object(h.jsx)(Fr,null):Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(_r,{setIsValid:i}),a&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiHorizontalRule,{margin:"l"}),Object(h.jsx)(Ir,{setIsValid:r})))},Ar=({fields:e,changeHandler:t,selectedField:a,testSubject:i,placeholder:n})=>{const{renderOption:s,optionCss:o}=Object(Ss.a)(),r=e.map((e=>({label:e.name,field:e,css:o}))),l=[];return null!==a&&l.push({label:a.name,field:a}),Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:r,selectedOptions:l,onChange:function(e){const a=e[0];t(void 0!==a?a.field:null)},placeholder:n,"data-test-subj":i,isClearable:!1,renderOption:s})},Lr=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.splitRareField.title",{defaultMessage:"Rare field"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.rareField.description",defaultMessage:"A field in which to detect rare values."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),Rr=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),i=e,s=Object(n.useMemo)((()=>Object(fa.c)(i.runtimeFields)),[]),o=function(e,t,a){const[i,s]=Object(n.useState)(e);return Object(n.useEffect)((()=>{const a=t.populationField,i=t.splitField;s(null!==a||null!==i?e.filter((({name:e})=>e!==(null==a?void 0:a.name)&&e!==(null==i?void 0:i.name))):e)}),[a]),i}(Object(n.useMemo)((()=>[...bs.a.categoryFields,...s].sort(((e,t)=>e.name.localeCompare(t.name)))),[]),i,a),[r,l]=Object(n.useState)(i.rareField);return Object(n.useEffect)((()=>{i.setRareField(r),null!==r&&!1===i.influencers.includes(r.name)&&i.addInfluencer(r.name),t()}),[r]),Object(n.useEffect)((()=>{l(i.rareField)}),[a]),Object(h.jsx)(Lr,null,Object(h.jsx)(Ar,{fields:o,changeHandler:l,selectedField:r,testSubject:"mlRareFieldSelect"}))},Nr=({onClick:e,isSelected:t})=>Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiCard,{"data-test-subj":"mlJobWizardCategorizationDetectorRareCard"+(t?" selected":""),title:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.rareDetectorSelect.rareCard.title",{defaultMessage:"Rare"}),description:Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.rareDetectorSelect.rareCard.description",defaultMessage:"Find rare values over time."})),selectable:{onClick:e,isSelected:t}})),Pr=({onClick:e,isSelected:t})=>Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiCard,{"data-test-subj":"mlJobWizardCategorizationDetectorRareCard"+(t?" selected":""),title:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.rareDetectorSelect.rarePopulationCard.title",{defaultMessage:"Rare in population"}),description:Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.rareDetectorSelect.rarePopulationCard.description",defaultMessage:"Find members of a population that have rare values over time."})),selectable:{onClick:e,isSelected:t}})),zr=({onClick:e,isSelected:t})=>Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiCard,{"data-test-subj":"mlJobWizardCategorizationDetectorRareCard"+(t?" selected":""),title:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.rareDetectorSelect.freqRareCard.title",{defaultMessage:"Frequently rare in population"}),description:Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.rareDetectorSelect.freqRareCard.description",defaultMessage:"Find members of a population that frequently have rare values."})),selectable:{onClick:e,isSelected:t}})),Br=({onChange:e})=>{const{jobCreator:t,jobCreatorUpdate:a}=Object(n.useContext)(ms),i=t,[o,r]=Object(n.useState)(null);return Object(n.useEffect)((()=>{null!==i.rareField?null===i.populationField?r($r.RARE):r(i.frequentlyRare?$r.FREQ_RARE_POPULATION:$r.RARE_POPULATION):r($r.RARE)}),[]),Object(n.useEffect)((()=>{null!==o&&(e(o),o===$r.RARE&&null!==i.populationField&&i.removePopulationField(),i.frequentlyRare=o===$r.FREQ_RARE_POPULATION,a())}),[o]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h3",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.rareDetectorSelect.title",defaultMessage:"Rare detector"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"l",style:{maxWidth:"824px"}},Object(h.jsx)(Nr,{onClick:function(){r($r.RARE)},isSelected:o===$r.RARE}),Object(h.jsx)(Pr,{onClick:function(){r($r.RARE_POPULATION)},isSelected:o===$r.RARE_POPULATION}),Object(h.jsx)(zr,{onClick:function(){r($r.FREQ_RARE_POPULATION)},isSelected:o===$r.FREQ_RARE_POPULATION})))},Vr=({detectorType:e})=>{const{jobCreator:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),i=t,[s,o]=Object(n.useState)(null);return Object(n.useEffect)((()=>{const t=function(e,t){var a,i;if(null===e.rareField)return null;const n=e.rareField.id,s=null===(a=e.populationField)||void 0===a?void 0:a.id,o=null===(i=e.splitField)||void 0===i?void 0:i.id,r=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.rareField.plainText.rareSummary",{defaultMessage:"Detects rare {rareFieldName} values.",values:{rareFieldName:n}}),l=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.rareField.plainText.rareSplitSummary",{defaultMessage:"For each {splitFieldName}, detects rare {rareFieldName} values.",values:{splitFieldName:o,rareFieldName:n}}),c=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.rareField.plainText.freqRarePopulationSummary",{defaultMessage:"Detects {populationFieldName} values that frequently have rare {rareFieldName} values relative to the population.",values:{populationFieldName:s,rareFieldName:n}}),d=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.rareField.plainText.freqRareSplitPopulationSummary",{defaultMessage:"For each {splitFieldName}, detects {populationFieldName} values that frequently have rare {rareFieldName} values relative to the population.",values:{splitFieldName:o,populationFieldName:s,rareFieldName:n}}),p=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.rareField.plainText.rarePopulationSummary",{defaultMessage:"Detects {populationFieldName} values that have rare {rareFieldName} values relative to the population.",values:{populationFieldName:s,rareFieldName:n}}),m=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.rareField.plainText.rareSplitPopulationSummary",{defaultMessage:"For each {splitFieldName}, detects {populationFieldName} values that have rare {rareFieldName} values relative to the population.",values:{splitFieldName:o,populationFieldName:s,rareFieldName:n}});return t===$r.RARE?void 0!==o?l:r:t===$r.FREQ_RARE_POPULATION?void 0!==o?d:c:t===$r.RARE_POPULATION?void 0!==o?m:p:null}(i,e);o(t)}),[a]),null===s?null:Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.rareField.plainText.calloutTitle",{defaultMessage:"Job summary"})},Object(h.jsx)("ul",null,Object(h.jsx)("li",null,s)))},Jr=({setIsValid:e,rareDetectorType:t,setRareDetectorType:a})=>{const{jobCreator:i,jobCreatorUpdated:o}=Object(n.useContext)(ms),r=i,[l,c]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{let a=!1;null!==r.rareField&&(t===$r.RARE||null!==r.populationField)&&(a=!0),e(a),c(a)}),[o]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Br,{onChange:a}),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiHorizontalRule,null),Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Rr,null)),Object(h.jsx)(d.EuiFlexItem,null,t!==$r.RARE&&Object(h.jsx)(fo,null))),l&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(Vr,{detectorType:t}))))},Ur=0,Gr=()=>{const{jobCreator:e,chartLoader:t,resultsLoader:a,chartInterval:i,jobCreatorUpdated:o}=Object(n.useContext)(ms),r=e,[l,c]=Object(n.useState)(!1),[u,p]=Object(n.useState)([]),[m,b]=Object(n.useState)([]),[f,g]=Object(n.useState)(!1),j=Object(n.useMemo)((()=>null!==r.rareField?null===r.populationField?$r.RARE:r.frequentlyRare?$r.FREQ_RARE_POPULATION:$r.RARE_POPULATION:$r.RARE),[o]);function x(e){const t=e.anomalies[Ur];void 0!==t&&p(t)}function v(e){g(e>0)}return Object(n.useEffect)((()=>{const e=a.subscribeToResults(x);return r.subscribeToProgress(v),async function(){c(!0);try{var e;const a=await t.loadEventRateChart(r.start,r.end,i.getInterval().asMilliseconds(),null!==(e=r.runtimeMappings)&&void 0!==e?e:void 0,r.datafeedConfig.indices_options);b(a)}catch(e){b([])}c(!1)}(),()=>{e.unsubscribe()}}),[]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Vr,{detectorType:j}),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(Wa,{eventRateChartData:m,anomalyData:u,height:"300px",width:"100%",showAxis:!0,loading:l,fadeChart:f}))},qr=({setIsValid:e})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(oo,null)),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(co,null))),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(qs,{setIsValid:e})),Object(h.jsx)(d.EuiFlexItem,null)));let $r;!function(e){e[e.RARE=0]="RARE",e[e.RARE_POPULATION=1]="RARE_POPULATION",e[e.FREQ_RARE_POPULATION=2]="FREQ_RARE_POPULATION"}($r||($r={}));const Wr=({isActive:e,setCanProceed:t})=>{const[a,i]=Object(n.useState)(!1),[o,r]=Object(n.useState)(!1),[l,c]=Object(n.useState)($r.RARE);return Object(n.useEffect)((()=>{"function"==typeof t&&t(a&&o)}),[a,o]),!1===e?Object(h.jsx)(Gr,null):Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Jr,{setIsValid:i,rareDetectorType:l,setRareDetectorType:c}),a&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiHorizontalRule,{margin:"l"}),Object(h.jsx)(qr,{setIsValid:r})))},Hr=({fields:e,changeHandler:t,selectedField:a})=>{const{renderOption:i,optionCss:s}=Object(Ss.a)(),o=Object(n.useMemo)((()=>e.map((e=>({label:e.name,field:e,css:s})))),[e,s]),r=Object(n.useMemo)((()=>{const e=[];return null!==a&&e.push({label:a.name,field:a}),e}),[a]),l=Object(n.useCallback)((e=>{const a=e[0];t(void 0!==a?a.field:null)}),[t]);return Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:o,selectedOptions:r,onChange:l,isClearable:!0,"data-test-subj":"mlGeoFieldNameSelect",renderOption:i})},Yr=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.pickFieldsStep.geoField.title",{defaultMessage:"Geo field"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.pickFieldsStep.geoField.description",defaultMessage:"A geo field to detect anomalies in the geographic location of the input data."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),Xr=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),i=e,{geoFields:s}=bs.a,[o,r]=Object(n.useState)(i.geoField);return Object(n.useEffect)((()=>{i.setGeoField(o),t()}),[o]),Object(n.useEffect)((()=>{i.geoField&&r(i.geoField)}),[a]),Object(h.jsx)(Yr,null,Object(h.jsx)(Hr,{fields:s,changeHandler:r,selectedField:o}))};var Qr=a(277);const Kr=({geoField:e,splitField:t,fieldValues:a,geoAgg:i,layerList:n})=>{const o=Zs();return Object(h.jsx)(Qs,{fieldValues:a,splitField:t,numberOfDetectors:a.length,jobType:ja.f.GEO,animate:o},Object(h.jsx)(d.EuiFlexGrid,{columns:1},Object(h.jsx)(d.EuiFlexItem,{"data-test-subj":"mlGeoMap",grow:!1},Object(h.jsx)(s.a.Fragment,null,i&&e?Object(h.jsx)(eo,{index:0,agg:i,field:e}):null,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)("span",{"data-test-subj":"mlGeoJobWizardMap",style:{width:"100%",height:400}},Object(h.jsx)(Qr.a,{layerList:n}))))))},Zr=({setIsValid:e})=>{const{jobCreator:t,jobCreatorUpdated:a,chartLoader:i}=Object(n.useContext)(ms),o=t,[r,l]=Object(n.useState)([]),[c,p]=Object(n.useState)([]),{services:{data:m,notifications:b}}=Object(Te.d)(),{mapLoader:f}=Object(n.useContext)(ms);return Object(n.useEffect)((()=>{let t=!1;null!==o.geoField&&(t=!0),e(t)}),[a]),Object(n.useEffect)((()=>{null!==o.splitField?i.loadFieldExampleValues(o.splitField,o.runtimeMappings,o.datafeedConfig.indices_options).then(l).catch((e=>{b.addDanger({title:u.i18n.translate("xpack.ml.newJob.geoWizard.fieldValuesFetchErrorTitle",{defaultMessage:"Error fetching field example values: {error}",values:{error:e}})})})):l([])}),[o.splitField]),Object(n.useEffect)((()=>{!async function(){if(o.geoField){var e;const{filter:t,query:a}=null!==(e=o.savedSearchQuery)&&void 0!==e?e:{},i=[...m.query.filterManager.getFilters(),...null!=t?t:[]],n=await f.getMapLayersForGeoJob(o.geoField,o.splitField,r,i,a);p(n)}}()}),[o.geoField,o.splitField,r]),Object(h.jsx)(s.a.Fragment,null,null!==o.geoField&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Kr,{geoField:o.geoField,splitField:o.splitField,fieldValues:r,geoAgg:o.geoAgg,layerList:c}),Object(h.jsx)(d.EuiSpacer,null)),Object(h.jsx)(Xr,null))},el=()=>{const[e,t]=Object(n.useState)([]),[a,i]=Object(n.useState)([]),{jobCreator:s,chartLoader:o,mapLoader:r}=Object(n.useContext)(ms),l=s,c=l.geoField,d=l.splitField,{services:{data:p,notifications:m}}=Object(Te.d)();return Object(n.useEffect)((()=>{null!==d?o.loadFieldExampleValues(d,l.runtimeMappings,l.datafeedConfig.indices_options).then(i).catch((e=>{m.toasts.addDanger({title:u.i18n.translate("xpack.ml.newJob.geoWizard.fieldValuesFetchErrorTitle",{defaultMessage:"Error fetching field example values: {error}",values:{error:e}})})})):i([])}),[]),Object(n.useEffect)((()=>{!async function(){if(c){var e;const{filter:i,query:n}=null!==(e=l.savedSearchQuery)&&void 0!==e?e:{},s=[...p.query.filterManager.getFilters(),...null!=i?i:[]],o=await r.getMapLayersForGeoJob(c,d,a,s,n);t(o)}}()}),[a]),null===l.geoField?null:Object(h.jsx)(Kr,{geoField:l.geoField,splitField:l.splitField,fieldValues:a,geoAgg:l.geoAgg,layerList:e})},tl=({setIsValid:e})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(oo,null)),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(co,null))),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(qs,{setIsValid:e,hideEstimateButton:!0})),Object(h.jsx)(d.EuiFlexItem,null))),al=({isActive:e,setCanProceed:t})=>{const[a,i]=Object(n.useState)(!1),[s,o]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{"function"==typeof t&&t(a&&s)}),[a,s]),Object(h.jsx)(n.Fragment,null,!1===e?Object(h.jsx)(el,null):Object(h.jsx)(n.Fragment,null,Object(h.jsx)(Zr,{setIsValid:i}),a&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiHorizontalRule,{margin:"l"}),Object(h.jsx)(tl,{setIsValid:o}))))},il=({combinedJob:e,heightOffset:t=0})=>{const{jobs:{datafeedPreview:a}}=Object(Te.c)(),i=Object(n.useMemo)((()=>window.innerHeight-230-t+"px"),[t]),[s,o]=Object(n.useState)(!1),[r,l]=Object(n.useState)(""),[c,p]=Object(n.useState)(!1),[m,b]=Object(n.useState)("");Object(n.useEffect)((()=>{try{null!==e&&(""===m?f():p(JSON.stringify(e)!==m))}catch(e){}}),[e]);const f=Object(n.useCallback)((async()=>{if(l(""),null!==e)if(o(!0),b(JSON.stringify(e)),e.datafeed_config&&e.datafeed_config.indices.length){try{const{datafeed_config:t,...i}=e;if(0===i.analysis_config.detectors.length)l(u.i18n.translate("xpack.ml.newJob.wizard.datafeedPreviewFlyout.noDetectors",{defaultMessage:"No detectors configured"}));else{const e=await a(void 0,i,t);l(JSON.stringify(e,null,2))}}catch(e){l(JSON.stringify(e,null,2))}o(!1),p(!1)}else{const e=u.i18n.translate("xpack.ml.newJob.wizard.datafeedPreviewFlyout.datafeedDoesNotExistLabel",{defaultMessage:"Datafeed does not exist"});l(e)}}),[e]);return Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h5",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedPreviewFlyout.title",defaultMessage:"Datafeed preview"})))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},c&&Object(h.jsx)(d.EuiButton,{size:"s",onClick:f,iconType:"refresh"},"Refresh"))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),!0===s?Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceAround"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiSpacer,{size:"xxl"}),Object(h.jsx)(d.EuiLoadingSpinner,{size:"l"}))):Object(h.jsx)(Jt.a,{value:r,height:i,readOnly:!0}))};let nl;!function(e){e[e.HIDDEN=0]="HIDDEN",e[e.READONLY=1]="READONLY",e[e.EDITABLE=2]="EDITABLE"}(nl||(nl={}));const{collapseLiteralStrings:sl}=qi.XJson;let ol;!function(e){e[e.HIDDEN=0]="HIDDEN",e[e.READONLY=1]="READONLY",e[e.EDITABLE=2]="EDITABLE"}(ol||(ol={}));const rl=Object(Ue.memoize)((async(e,t,a)=>e.getSchemaDefinition({path:t,method:a})),((e,t,a)=>t+a)),ll=({isDisabled:e,jobEditorMode:t,datafeedEditorMode:a})=>{const{jobCreator:i,jobCreatorUpdate:o,jobCreatorUpdated:r}=Object(n.useContext)(ms),{displayErrorToast:l}=Object(qe.c)(),[c,p]=Object(n.useState)(!1),[m,b]=Object(n.useState)(!1),{jsonSchema:f}=Object(Te.c)(),[j,x]=Object(n.useState)(i.formattedJobJson),[v,y]=Object(n.useState)(i.formattedDatafeedJson),[O,E]=Object(n.useState)(!1),[w,M]=Object(n.useState)(null),[S,_]=Object(n.useState)(),[T,C]=Object(n.useState)();Object(n.useEffect)((()=>{x(i.formattedJobJson),y(i.formattedDatafeedJson)}),[r]),Object(n.useEffect)((()=>{!0===c?(x(i.formattedJobJson),y(i.formattedDatafeedJson),M({...JSON.parse(i.formattedJobJson),datafeed_config:JSON.parse(i.formattedDatafeedJson)}),b(!1)):M(null)}),[c]),Object(n.useEffect)((function(){rl(f,"/_ml/anomaly_detectors/{job_id}","put").then((e=>{_(e)})).catch((e=>{console.error(e)})),rl(f,"/_ml/datafeeds/{datafeed_id}","put").then((e=>{C(e)})).catch((e=>{console.error(e)}))}),[f]);const k=t===ol.EDITABLE||a===ol.EDITABLE,F=t===ol.READONLY&&a===ol.READONLY;return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(cl,{onClick:function(){E(!1),p(!c)},isDisabled:e,editJsonMode:k}),!0===c&&!1===e&&Object(h.jsx)(d.EuiFlyout,{onClose:()=>p(!1),hideCloseButton:!0,size:"l"},Object(h.jsx)(d.EuiFlyoutBody,null,Object(h.jsx)(d.EuiFlexGroup,null,t!==ol.HIDDEN?Object(h.jsx)(dl,{editJson:t===ol.EDITABLE,onChange:function(e){x(e);const t=Object(Ma.c)(e);M(t?{...JSON.parse(e),datafeed_config:JSON.parse(v)}:null),E(t)},title:u.i18n.translate("xpack.ml.newJob.wizard.jsonFlyout.job.title",{defaultMessage:"Job configuration JSON"}),value:j,heightOffset:m?100:0,schema:S}):null,a!==ol.HIDDEN?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(dl,{editJson:a===ol.EDITABLE,onChange:function(e){y(e);const t=sl(e);let a=Object(Ma.c)(t);if(a){const e=JSON.parse(t),n=i.indices.sort();a=n.length===e.indices.length&&n.every(((t,a)=>t===e.indices[a])),b(!1===a),M({...JSON.parse(j),datafeed_config:e})}else b(!1),M(null);E(a)},title:u.i18n.translate("xpack.ml.newJob.wizard.jsonFlyout.datafeed.title",{defaultMessage:"Datafeed configuration JSON"}),value:v,heightOffset:m?100:0,schema:T}),a===ol.EDITABLE&&Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(il,{combinedJob:w,heightOffset:m?100:0}))):null),m&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiCallOut,{color:"warning",size:"s",title:u.i18n.translate("xpack.ml.newJob.wizard.jsonFlyout.indicesChange.calloutTitle",{defaultMessage:"Indices have changed"})},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jsonFlyout.indicesChange.calloutText",defaultMessage:"You cannot alter the indices being used by the datafeed here. To select a different data view or saved search, go to step 1 of the wizard and select the Change data view option."})))),Object(h.jsx)(d.EuiFlyoutFooter,null,Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{iconType:"cross",onClick:()=>p(!1),flush:"left"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jsonFlyout.closeButton",defaultMessage:"Close"}))),!1===F&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:async function(){const e=JSON.parse(j),t=JSON.parse(sl(v));if(i.cloneFromExistingJob(e,t),Da(i))try{await i.autoSetTimeRange()}catch(e){const t=u.i18n.translate("xpack.ml.newJob.wizard.jsonFlyout.autoSetJobCreatorTimeRange.error",{defaultMessage:"Error retrieving beginning and end times of index"});l(e,t)}o(),p(!1)},fill:!0,isDisabled:!1===O},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jsonFlyout.saveButton",defaultMessage:"Save"})))))))},cl=({isDisabled:e,onClick:t,editJsonMode:a})=>{const i=u.i18n.translate("xpack.ml.newJob.wizard.previewJsonButton",{defaultMessage:"Preview JSON"}),n=u.i18n.translate("xpack.ml.newJob.wizard.editJsonButton",{defaultMessage:"Edit JSON"});return Object(h.jsx)(d.EuiButtonEmpty,{onClick:t,isDisabled:e,"data-test-subj":"mlJobWizardButtonPreviewJobJson"},a?n:i)},dl=({title:e,value:t,editJson:a,onChange:i,heightOffset:s=0,schema:o})=>{const r=Object(n.useMemo)((()=>window.innerHeight-230-s+"px"),[s]);return Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h5",null,e)),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(Jt.a,{value:t,height:r,mode:Jt.b.JSON,readOnly:!1===a,onChange:i,schema:o}))},ul=({setCurrentStep:e,isCurrentStep:t})=>{const{jobCreator:a,jobValidator:i,jobValidatorUpdated:s}=Object(n.useContext)(ms),[o,r]=Object(n.useState)(!1),[l,c]=Object(n.useState)(!1),{setIsFlyoutVisible:d,setFieldName:u}=Object(fs.g)();return Object(n.useEffect)((()=>(r(l&&i.isPickFieldsStepValid),()=>{d(!1),u(void 0)})),[i,s,l,d,u]),Object(h.jsx)(n.Fragment,null,t&&Object(h.jsx)(n.Fragment,null,ka(a)&&Object(h.jsx)(Ys,{isActive:t,setCanProceed:c}),Fa(a)&&Object(h.jsx)(po,{isActive:t,setCanProceed:c}),Ia(a)&&Object(h.jsx)(yo,{isActive:t,setCanProceed:c}),Da(a)&&Object(h.jsx)(mr,{isActive:t,setCanProceed:c}),Aa(a)&&Object(h.jsx)(Dr,{isActive:t,setCanProceed:c}),La(a)&&Object(h.jsx)(Wr,{isActive:t,setCanProceed:c}),Ra(a)&&Object(h.jsx)(al,{isActive:t,setCanProceed:c}),Object(h.jsx)(hs,{previous:()=>e(Da(a)?ps.ADVANCED_CONFIGURE_DATAFEED:ps.TIME_RANGE),next:()=>e(ps.JOB_DETAILS),nextActive:o},Da(a)&&Object(h.jsx)(ll,{isDisabled:!1,jobEditorMode:ol.EDITABLE,datafeedEditorMode:ol.EDITABLE}))))},pl=Object(n.memo)((({children:e,validation:t})=>{const a=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.jobId.title",{defaultMessage:"Job ID"}),i=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.jobId.description",{defaultMessage:'A unique identifier for the job. Spaces and the characters / ? , " < > | * are not allowed'});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,a),description:i},Object(h.jsx)(d.EuiFormRow,{error:t.message,isInvalid:!1===t.valid},Object(h.jsx)(s.a.Fragment,null,e)))})),ml=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobValidator:a,jobValidatorUpdated:i}=Object(n.useContext)(ms),[s,o]=Object(n.useState)(e.jobId),r=Object(n.useMemo)((()=>{var e,t,i;return{valid:!0==(""===s)||!0===a.jobId.valid&&!0===(null===(e=a.latestValidationResult.jobIdExists)||void 0===e?void 0:e.valid),message:null!==(t=a.jobId.message)&&void 0!==t?t:null===(i=a.latestValidationResult.jobIdExists)||void 0===i?void 0:i.message}}),[i]);return Object(n.useEffect)((()=>{e.jobId=s,t()}),[s]),Object(h.jsx)(pl,{validation:r},Object(h.jsx)(d.EuiFieldText,{value:s,onChange:e=>o(e.target.value),isInvalid:!1===r.valid,"data-test-subj":"mlJobWizardInputJobId"}))},bl=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.jobDescription.title",{defaultMessage:"Job description"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.jobDescription.description",defaultMessage:"Optional descriptive text."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),fl=()=>{const{jobCreator:e,jobCreatorUpdate:t}=Object(n.useContext)(ms),[a,i]=Object(n.useState)(e.description);return Object(n.useEffect)((()=>{e.description=a,t()}),[a]),Object(h.jsx)(bl,null,Object(h.jsx)(d.EuiTextArea,{value:a,onChange:e=>i(e.target.value),"data-test-subj":"mlJobWizardInputJobDescription"}))},gl=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobValidator:a,jobValidatorUpdated:i}=Object(n.useContext)(ms),{existingJobsAndGroups:s}=Object(n.useContext)(ms),[o,r]=Object(n.useState)(e.groups),l=Object(n.useMemo)((()=>{var e,t,i;return{valid:!0===a.groupIds.valid&&!0===(null===(e=a.latestValidationResult.groupIdsExist)||void 0===e?void 0:e.valid),message:null!==(t=a.groupIds.message)&&void 0!==t?t:null===(i=a.latestValidationResult.groupIdsExist)||void 0===i?void 0:i.message}}),[i]);Object(n.useEffect)((()=>{e.groups=o,t()}),[o.join()]);const c=s.groupIds.map((e=>({label:e,color:Object(Bi.a)(e)}))),p=o.map((e=>({label:e,color:Object(Bi.a)(e)})));return Object(h.jsx)(vs,{validation:l},Object(h.jsx)(d.EuiComboBox,{placeholder:u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.jobGroupSelect.placeholder",{defaultMessage:"Select or create groups"}),options:c,selectedOptions:p,onChange:function(e){r(e.map((e=>e.label)))},onCreateOption:function(e,t){const a=e.trim().toLowerCase();if(!a)return;const i={label:e,color:Object(Bi.a)(e)};-1===t.findIndex((e=>e.label.trim().toLowerCase()===a))&&c.push(i),r([...p,i].map((e=>e.label)))},isClearable:!0,isInvalid:!1===l.valid,"data-test-subj":"mlJobWizardComboBoxJobGroups"}))},hl=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.enableModelPlot.title",{defaultMessage:"Enable model plot"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.enableModelPlot.description",defaultMessage:"Store additional model information used for plotting model bounds. This adds overhead to the system performance. Not recommended for high cardinality data."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),jl=()=>{const{jobCreator:e,jobValidator:t,jobValidatorUpdated:a}=Object(n.useContext)(ms),[i,s]=Object(n.useState)(null);return Object(n.useEffect)((()=>{var e,a,i;const n=null!==(e=null===(a=t.latestValidationResult)||void 0===a||null===(i=a.highCardinality)||void 0===i?void 0:i.value)&&void 0!==e?e:null;s(n)}),[a]),e.modelPlot&&null!==i?Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.mmlWarning.title",defaultMessage:"Proceed with caution!"}),color:"warning",iconType:"help"},Object(h.jsx)(d.EuiText,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.mmlWarning.message",defaultMessage:"Creating model plots is resource intensive and not recommended where the cardinality of the selected fields is greater than 100. Estimated cardinality for this job is {highCardinality}. If you enable model plot with this configuration we recommend you use a dedicated results index.",values:{highCardinality:i}}))):null},xl=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),[i,o]=Object(n.useState)(e.modelPlot),[r,l]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{e.modelPlot=i,t()}),[i]),Object(n.useEffect)((()=>{const t=[la.n.RARE],a=Aa(e)&&e.aggregations.some((e=>t.includes(e.id)));l(!1===a)}),[a]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(hl,null,Object(h.jsx)(d.EuiSwitch,{name:"switch",disabled:!1===r,checked:i,onChange:function(){o(!i)},"data-test-subj":"mlJobWizardSwitchModelPlot",label:u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.enableModelPlot.title",{defaultMessage:"Enable model plot"})})),Object(h.jsx)(jl,null))},vl=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.enableModelPlotAnnotations.title",{defaultMessage:"Enable model change annotations"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.enableModelPlotAnnotations.description",defaultMessage:"Generate annotations when the model changes significantly. For example, when step changes, periodicity or trends are detected."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),yl=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),[i,o]=Object(n.useState)(e.modelChangeAnnotations),[r,l]=Object(n.useState)(e.modelPlot&&!e.modelChangeAnnotations);return Object(n.useEffect)((()=>{e.modelChangeAnnotations=i,t()}),[i]),Object(n.useEffect)((()=>{l(e.modelPlot&&!i)}),[a,i]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vl,null,Object(h.jsx)(d.EuiSwitch,{name:"switch",checked:i,onChange:function(){o(!i)},"data-test-subj":"mlJobWizardSwitchAnnotations",label:u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.enableModelPlotAnnotations.title",{defaultMessage:"Enable model change annotations"})})),r&&Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.annotationsSwitchCallout.title",defaultMessage:"If you enable model plot with this configuration, we recommend you also enable annotations."}),color:"primary",iconType:"help"}))},Ol=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.useDedicatedIndex.title",{defaultMessage:"Use dedicated index"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.useDedicatedIndex.description",defaultMessage:"Store results in a separate index for this job."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),El=()=>{const{jobCreator:e,jobCreatorUpdate:t}=Object(n.useContext)(ms),[a,i]=Object(n.useState)(e.useDedicatedIndex);return Object(n.useEffect)((()=>{e.useDedicatedIndex=a,t()}),[a]),Object(h.jsx)(Ol,null,Object(h.jsx)(d.EuiSwitch,{name:"switch",checked:a,onChange:function(){i(!a)},"data-test-subj":"mlJobWizardSwitchUseDedicatedIndex",label:u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.useDedicatedIndex.title",{defaultMessage:"Use dedicated index"})}))},wl=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.ignoreUnavailable.title",{defaultMessage:"Ignore unavailable indices"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.ignoreUnavailable.description",defaultMessage:"Sets the Elasticsearch {ignoreUnavailable} option on all searches done by the datafeed.",values:{ignoreUnavailable:Object(h.jsx)(d.EuiCode,{language:"JSON",transparentBackground:!0},"ignore_unavailable")}})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),Ml=()=>{const{jobCreator:e,jobCreatorUpdate:t}=Object(n.useContext)(ms),[a,i]=Object(n.useState)(e.ignoreUnavailable);return Object(n.useEffect)((()=>{e.ignoreUnavailable=a,t()}),[a]),Object(h.jsx)(wl,null,Object(h.jsx)(d.EuiSwitch,{name:"ignoreUnavailableSwitch",checked:a,onChange:function(){i(!a)},"data-test-subj":"mlJobWizardSwitchIgnoreUnavailableIndex",label:u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.advancedSection.ignoreUnavailable.title",{defaultMessage:"Ignore unavailable indices"})}))},Sl=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.advancedSectionButton",{defaultMessage:"Advanced"}),_l=({advancedExpanded:e,setAdvancedExpanded:t})=>{const{jobCreator:a}=Object(n.useContext)(ms);return a.type===ja.f.ADVANCED?Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiHorizontalRule,{margin:"xl"}),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(xl,null)),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(El,null))),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(yl,null)),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Ml,null)))):Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"xl"}),Object(h.jsx)(d.EuiAccordion,{id:"advanced-section",buttonContent:Sl,onToggle:t,initialIsOpen:e,"data-test-subj":"mlJobWizardToggleAdvancedSection"},Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl",style:{marginLeft:"0px",marginRight:"0px"},"data-test-subj":"mlJobWizardAdvancedSection"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(xl,null)),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(El,null))),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl",style:{marginLeft:"0px",marginRight:"0px"},"data-test-subj":"mlJobWizardAdvancedSection"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(yl,null)),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Ml,null))),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl",style:{marginLeft:"0px",marginRight:"0px"},"data-test-subj":"mlJobWizardAdvancedSection"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Ko,null)),Object(h.jsx)(d.EuiFlexItem,null))))},Tl=Object(n.memo)((({children:e})=>{const{services:{docLinks:t}}=Object(Te.d)(),a=t.links.ml.calendars,i=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.additionalSection.calendarsSelection.title",{defaultMessage:"Calendars"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,i),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.additionalSection.calendarsSelection.description",defaultMessage:"A list of scheduled events you want to ignore, such as planned system outages or public holidays. {learnMoreLink}",values:{learnMoreLink:Object(h.jsx)(d.EuiLink,{href:a,target:"_blank"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.additionalSection.calendarsSelection.learnMoreLinkText",defaultMessage:"Learn more"}))}})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))}));var Cl=a(201);const kl=()=>{const{services:{application:{getUrlForApp:e}}}=Object(Te.d)(),{jobCreator:t,jobCreatorUpdate:a}=Object(n.useContext)(ms),[i,s]=Object(n.useState)(t.calendars),[o,r]=Object(n.useState)([]),[l,c]=Object(n.useState)([]),[p,b]=Object(n.useState)(!1);async function f(){b(!0);const e=(await Je.ml.calendars()).filter((e=>!1===e.job_ids.includes(Cl.a)));c(e.map((e=>({label:e.calendar_id,value:e})))),r(i.map((e=>({label:e.calendar_id,value:e})))),b(!1)}Object(n.useEffect)((()=>{f()}),[]),Object(n.useEffect)((()=>{t.calendars=i,a()}),[i.join()]);const j={async:!0,options:l,selectedOptions:o,isLoading:p,onChange:e=>{r(e),s(e.map((e=>e.value)))}},x=e(ke.f,{path:Fe.b.CALENDARS_MANAGE});return Object(h.jsx)(Tl,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiComboBox,m()({},j,{"data-test-subj":"mlJobWizardComboBoxCalendars"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiToolTip,{position:"right",content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.additionalSection.calendarsSelection.refreshCalendarsButtonLabel",defaultMessage:"Refresh calendars"})},Object(h.jsx)(d.EuiButtonIcon,{iconType:"refresh",color:"primary","aria-label":u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.additionalSection.calendarsSelection.refreshCalendarsButtonLabel",{defaultMessage:"Refresh calendars"}),onClick:f})))),Object(h.jsx)(d.EuiSpacer,{size:"xs"}),Object(h.jsx)(d.EuiText,{size:"s"},Object(h.jsx)(d.EuiLink,{href:x,target:"_blank",external:!0},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.additionalSection.calendarsSelection.manageCalendarsButtonLabel",defaultMessage:"Manage calendars"}))))};var Fl=a(199),Il=a(352),Dl={name:"nmbbfz",styles:"> .euiFlexGroup{> .euiFlexItem{&:last-child{flex-basis:50%;}}}"};const Al=Object(n.memo)((({children:e})=>{const{services:{docLinks:t}}=Object(Te.d)(),a=t.links.ml.customUrls,i=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.additionalSection.customUrls.title",{defaultMessage:"Custom URLs"}),n=Dl;return Object(h.jsx)(d.EuiDescribedFormGroup,{fullWidth:!0,css:n,title:Object(h.jsx)("h3",null,i),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.additionalSection.customUrlsSelection.description",defaultMessage:"Provide links from anomalies to Kibana dashboards, the Discovery page, or other web pages. {learnMoreLink}",values:{learnMoreLink:Object(h.jsx)(d.EuiLink,{href:a,target:"_blank"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.jobDetailsStep.additionalSection.customUrlsSelection.learnMoreLinkText",defaultMessage:"Learn more"}))}})},Object(h.jsx)(d.EuiFormRow,{fullWidth:!0},Object(h.jsx)(s.a.Fragment,null,e)))})),Ll=()=>{var e;const{jobCreator:t,jobCreatorUpdate:a}=Object(n.useContext)(ms),i={...t.jobConfig,datafeed_config:t.datafeedConfig},s=Object(Fl.a)();return Object(h.jsx)(Al,null,Object(h.jsx)(Il.a,{job:i,jobCustomUrls:null!==(e=t.customUrls)&&void 0!==e?e:[],setCustomUrls:e=>{t.customUrls=e,a()},editMode:"modal",dashboardService:s}))},Rl=u.i18n.translate("xpack.ml.newJob.wizard.jobDetailsStep.additionalSectionButton",{defaultMessage:"Additional settings"}),Nl=({additionalExpanded:e,setAdditionalExpanded:t})=>Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiAccordion,{id:"additional-section",buttonContent:Rl,onToggle:t,initialIsOpen:e,"data-test-subj":"mlJobWizardToggleAdditionalSettingsSection"},Object(h.jsx)("section",{"data-test-subj":"mlJobWizardAdditionalSettingsSection"},Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl",style:{marginLeft:"0px",marginRight:"0px"}},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Ll,null))),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl",style:{marginLeft:"0px",marginRight:"0px"}},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(kl,null)),Object(h.jsx)(d.EuiFlexItem,null))))),Pl=({setCurrentStep:e,isCurrentStep:t,advancedExpanded:a,setAdvancedExpanded:i,additionalExpanded:s,setAdditionalExpanded:o})=>{const{jobCreator:r,jobValidator:l,jobValidatorUpdated:c}=Object(n.useContext)(ms),[u,p]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{var e,t;const a=l.jobId.valid&&l.modelMemoryLimit.valid&&l.groupIds.valid&&!0===(null===(e=l.latestValidationResult.jobIdExists)||void 0===e?void 0:e.valid)&&!0===(null===(t=l.latestValidationResult.groupIdsExist)||void 0===t?void 0:t.valid)&&!1===l.validating;p(a)}),[c]),Object(h.jsx)(n.Fragment,null,t&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(ml,null),Object(h.jsx)(gl,null)),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(fl,null))),Object(h.jsx)(Nl,{additionalExpanded:s,setAdditionalExpanded:o}),Object(h.jsx)(_l,{advancedExpanded:a,setAdvancedExpanded:i}),Object(h.jsx)(hs,{previous:()=>e(ps.PICK_FIELDS),next:()=>e(ps.VALIDATION),nextActive:u},Da(r)&&Object(h.jsx)(ll,{isDisabled:!1,jobEditorMode:ol.EDITABLE,datafeedEditorMode:ol.EDITABLE}))))};var zl=a(159),Bl=a.n(zl),Vl=a(42),Jl=a(19);const Ul=Object(Ue.once)((e=>({categorizer_detector_missing_per_partition_field:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.categorizerMissingPerPartitionFieldHeading",{defaultMessage:"Per-partition categorization"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.categorizerMissingPerPartitionFieldMessage",{defaultMessage:'Partition field must be set for detectors that reference "mlcategory" when per-partition categorization is enabled.'}),url:null==e?void 0:e.links.ml.anomalyDetectionConfiguringCategories},categorizer_varying_per_partition_fields:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.categorizerVaryingPerPartitionFieldNamesHeading",{defaultMessage:"Per-partition categorization"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.categorizerVaryingPerPartitionFieldNamesMessage",{defaultMessage:'Detectors with keyword "mlcategory " cannot have different partition_field_name when per-partition categorization is enabled. Found [{fields}].',values:{fields:'"{{fields}}"'}}),url:null==e?void 0:e.links.ml.anomalyDetectionConfiguringCategories},field_not_aggregatable:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.fieldNotAggregatableHeading",{defaultMessage:"Detector field"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.fieldNotAggregatableMessage",{defaultMessage:"{fieldName} is not an aggregatable field.",values:{fieldName:'"{{fieldName}}"'}}),url:null==e?void 0:e.links.ml.aggregrations},fields_not_aggregatable:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.fieldsNotAggregatableHeading",{defaultMessage:"Detector fields"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.fieldsNotAggregatableMessage",{defaultMessage:"One of the detector fields is not an aggregatable field."}),url:null==e?void 0:e.links.ml.aggregrations},cardinality_no_results:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.cardinalityNoResultsHeading",{defaultMessage:"Field cardinality"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.cardinalityNoResultsMessage",{defaultMessage:"Cardinality checks could not be run. The query to validate fields didn't return any documents."})},cardinality_field_not_exists:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.cardinalityFieldNotExistsHeading",{defaultMessage:"Field cardinality"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.cardinalityFieldNotExistsMessage",{defaultMessage:"Cardinality checks could not be run for field {fieldName}. The query to validate the field didn't return any documents.",values:{fieldName:'"{{fieldName}}"'}}),url:null==e?void 0:e.links.ml.aggregrations},cardinality_by_field:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.cardinalityByFieldHeading",{defaultMessage:"Field cardinality"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.cardinalityByFieldMessage",{defaultMessage:"Cardinality of {fieldName} is above 1000 and might result in high memory usage.",values:{fieldName:'by_field "{{fieldName}}"'}}),url:null==e?void 0:e.links.ml.anomalyDetectionCardinality},cardinality_over_field_low:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.cardinalityOverFieldLowHeading",{defaultMessage:"Over field cardinality"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.cardinalityOverFieldLowMessage",{defaultMessage:"Cardinality of {fieldName} is below 10 and might not be suitable for population analysis.",values:{fieldName:'over_field "{{fieldName}}"'}}),url:null==e?void 0:e.links.ml.anomalyDetectionCardinality},cardinality_over_field_high:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.cardinalityOverFieldHighHeading",{defaultMessage:"Over field cardinality"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.cardinalityOverFieldHighMessage",{defaultMessage:"Cardinality of {fieldName} is above 1000000 and might result in high memory usage.",values:{fieldName:'over_field "{{fieldName}}"'}}),url:null==e?void 0:e.links.ml.anomalyDetectionCardinality},cardinality_partition_field:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.cardinalityPartitionFieldHeading",{defaultMessage:"Partition field cardinality"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.cardinalityPartitionFieldMessage",{defaultMessage:"Cardinality of {fieldName} is above 1000 and might result in high memory usage.",values:{fieldName:'partition_field "{{fieldName}}"'}}),url:null==e?void 0:e.links.ml.anomalyDetectionCardinality},cardinality_model_plot_high:{status:Vl.c.WARNING,text:u.i18n.translate("xpack.ml.models.jobValidation.messages.cardinalityModelPlotHighMessage",{defaultMessage:"The estimated cardinality of {modelPlotCardinality} of fields relevant to creating model plots might result in resource intensive jobs.",values:{modelPlotCardinality:"{{modelPlotCardinality}}"}})},categorization_filters_valid:{status:Vl.c.SUCCESS,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.categorizationFiltersValidHeading",{defaultMessage:"Categorization filters"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.categorizationFiltersValidMessage",{defaultMessage:"All checks passed."}),url:null==e?void 0:e.links.ml.anomalyDetectionConfiguringCategories},categorization_filters_invalid:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.categorizationFiltersInvalidHeading",{defaultMessage:"Categorization filters"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.categorizationFiltersInvalidMessage",{defaultMessage:"Configuration is invalid. Make sure filters are valid regular expressions and {categorizationFieldName} is set.",values:{categorizationFieldName:'"categorization_field_name"'}}),url:null==e?void 0:e.links.ml.anomalyDetectionJobResourceAnalysisConfig},bucket_span_empty:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.bucketSpanEmptyHeading",{defaultMessage:"Bucket span"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.bucketSpanEmptyMessage",{defaultMessage:"The bucket span field must be specified."}),url:null==e?void 0:e.links.ml.anomalyDetectionJobResourceAnalysisConfig},bucket_span_estimation_mismatch:{status:Vl.c.INFO,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.bucketSpanEstimationMismatchHeading",{defaultMessage:"Bucket span"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.bucketSpanEstimationMismatchMessage",{defaultMessage:"Current bucket span is {currentBucketSpan}, but bucket span estimation returned {estimateBucketSpan}.",values:{currentBucketSpan:'"{{currentBucketSpan}}"',estimateBucketSpan:'"{{estimateBucketSpan}}"'}}),url:null==e?void 0:e.links.ml.anomalyDetectionBucketSpan},bucket_span_high:{status:Vl.c.INFO,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.bucketSpanHighHeading",{defaultMessage:"Bucket span"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.bucketSpanHighMessage",{defaultMessage:"Bucket span is 1 day or more. Be aware that days are considered as UTC days, not local days."}),url:null==e?void 0:e.links.ml.anomalyDetectionBucketSpan},bucket_span_valid:{status:Vl.c.SUCCESS,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.bucketSpanValidHeading",{defaultMessage:"Bucket span"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.bucketSpanValidMessage",{defaultMessage:"Format of {bucketSpan} is valid.",values:{bucketSpan:'"{{bucketSpan}}"'}}),url:null==e?void 0:e.links.ml.anomalyDetectionJobResourceAnalysisConfig},bucket_span_invalid:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.bucketSpanInvalidHeading",{defaultMessage:"Bucket span"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.bucketSpanInvalidMessage",{defaultMessage:"The specified bucket span is not a valid time interval format e.g. 10m, 1h. It also needs to be higher than zero."}),url:null==e?void 0:e.links.ml.anomalyDetectionJobResourceAnalysisConfig},detectors_duplicates:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.detectorsDuplicatesHeading",{defaultMessage:"Detector duplicates"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.detectorsDuplicatesMessage",{defaultMessage:"Duplicate detectors were found. Detectors having the same combined configuration for {functionParam}, {fieldNameParam}, {byFieldNameParam}, {overFieldNameParam} and {partitionFieldNameParam} are not allowed within the same job.",values:{functionParam:"'function'",fieldNameParam:"'field_name'",byFieldNameParam:"'by_field_name'",overFieldNameParam:"'over_field_name'",partitionFieldNameParam:"'partition_field_name'"}}),url:null==e?void 0:e.links.ml.anomalyDetectionDetectors},detectors_empty:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.detectorsEmptyHeading",{defaultMessage:"Detectors"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.detectorsEmptyMessage",{defaultMessage:"No detectors were found. At least one detector must be specified."}),url:null==e?void 0:e.links.ml.anomalyDetectionDetectors},detectors_function_empty:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.detectorsFunctionEmptyHeading",{defaultMessage:"Detector functions"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.detectorsFunctionEmptyMessage",{defaultMessage:"One of the detector functions is empty."}),url:null==e?void 0:e.links.ml.anomalyDetectionDetectors},detectors_function_not_empty:{status:Vl.c.SUCCESS,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.detectorsFunctionNotEmptyHeading",{defaultMessage:"Detector functions"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.detectorsFunctionNotEmptyMessage",{defaultMessage:"Presence of detector functions validated in all detectors."}),url:null==e?void 0:e.links.ml.anomalyDetectionDetectors},index_fields_invalid:{status:Vl.c.ERROR,text:u.i18n.translate("xpack.ml.models.jobValidation.messages.indexFieldsInvalidMessage",{defaultMessage:"Could not load fields from index."})},index_fields_valid:{status:Vl.c.SUCCESS,text:u.i18n.translate("xpack.ml.models.jobValidation.messages.indexFieldsValidMessage",{defaultMessage:"Index fields are present in the datafeed."})},influencer_high:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.influencerHighHeading",{defaultMessage:"Influencers"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.influencerHighMessage",{defaultMessage:"The job configuration includes more than 3 influencers. Consider using fewer influencers or creating multiple jobs."}),url:null==e?void 0:e.links.ml.anomalyDetectionInfluencers},influencer_low:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.influencerLowHeading",{defaultMessage:"Influencers"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.influencerLowMessage",{defaultMessage:"No influencers have been configured. Picking an influencer is strongly recommended."}),url:null==e?void 0:e.links.ml.anomalyDetectionInfluencers},influencer_low_suggestion:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.influencerLowSuggestionHeading",{defaultMessage:"Influencers"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.influencerLowSuggestionMessage",{defaultMessage:"No influencers have been configured. Consider using {influencerSuggestion} as an influencer.",values:{influencerSuggestion:"{{influencerSuggestion}}"}}),url:null==e?void 0:e.links.ml.anomalyDetectionInfluencers},influencer_low_suggestions:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.influencerLowSuggestionsHeading",{defaultMessage:"Influencers"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.influencerLowSuggestionsMessage",{defaultMessage:"No influencers have been configured. Consider using one or more of {influencerSuggestion}.",values:{influencerSuggestion:"{{influencerSuggestion}}"}}),url:null==e?void 0:e.links.ml.anomalyDetectionInfluencers},job_id_empty:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobIdEmptyHeading",{defaultMessage:"Job ID"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobIdEmptyMessage",{defaultMessage:"Field must not be empty."}),url:null==e?void 0:e.links.ml.anomalyDetectionJobResource},job_id_invalid:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobIdInvalidHeading",{defaultMessage:"Job ID"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobIdInvalidMessage",{defaultMessage:"Job ID is invalid. It can contain lowercase alphanumeric (a-z and 0-9) characters, hyphens or underscores and must start and end with an alphanumeric character."}),url:null==e?void 0:e.links.ml.anomalyDetectionJobResource},job_id_invalid_max_length:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobIdInvalidMaxLengthErrorHeading",{defaultMessage:"Job ID"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobIdInvalidMaxLengthErrorMessage",{defaultMessage:"Job ID must be no more than {maxLength, plural, one {# character} other {# characters}} long.",values:{maxLength:Vl.b}}),url:null==e?void 0:e.links.ml.anomalyDetectionJobResource},job_id_valid:{status:Vl.c.SUCCESS,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobIdValidHeading",{defaultMessage:"Job ID format is valid"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobIdValidMessage",{defaultMessage:"Lowercase alphanumeric (a-z and 0-9) characters, hyphens or underscores, starts and ends with an alphanumeric character, and is no more than {maxLength, plural, one {# character} other {# characters}} long.",values:{maxLength:Vl.b}}),url:null==e?void 0:e.links.ml.anomalyDetectionJobResource},job_group_id_invalid:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobGroupIdInvalidHeading",{defaultMessage:"Group name"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobGroupIdInvalidMessage",{defaultMessage:"One of the job group names is invalid. They can contain lowercase alphanumeric (a-z and 0-9) characters, hyphens or underscores and must start and end with an alphanumeric character."}),url:null==e?void 0:e.links.ml.anomalyDetectionJobResource},job_group_id_invalid_max_length:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobGroupIdInvalidMaxLengthErrorHeading",{defaultMessage:"Group name"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobGroupIdInvalidMaxLengthErrorMessage",{defaultMessage:"Job group name must be no more than {maxLength, plural, one {# character} other {# characters}} long.",values:{maxLength:Vl.b}}),url:null==e?void 0:e.links.ml.anomalyDetectionJobResource},job_group_id_valid:{status:Vl.c.SUCCESS,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobGroupIdValidHeading",{defaultMessage:"Job group id formats are valid"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.jobGroupIdValidMessage",{defaultMessage:"Lowercase alphanumeric (a-z and 0-9) characters, hyphens or underscores, starts and ends with an alphanumeric character, and is no more than {maxLength, plural, one {# character} other {# characters}} long.",values:{maxLength:Vl.b}}),url:null==e?void 0:e.links.ml.anomalyDetectionJobResource},missing_summary_count_field_name:{status:Vl.c.ERROR,text:u.i18n.translate("xpack.ml.models.jobValidation.messages.missingSummaryCountFieldNameMessage",{defaultMessage:"A job configured with a datafeed with aggregations must set summary_count_field_name; use doc_count or suitable alternative."})},skipped_extended_tests:{status:Vl.c.WARNING,text:u.i18n.translate("xpack.ml.models.jobValidation.messages.skippedExtendedTestsMessage",{defaultMessage:"Skipped additional checks because the basic requirements of the job configuration were not met."})},success_cardinality:{status:Vl.c.SUCCESS,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.successCardinalityHeading",{defaultMessage:"Cardinality"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.successCardinalityMessage",{defaultMessage:"Cardinality of detector fields is within recommended bounds."}),url:null==e?void 0:e.links.ml.anomalyDetectionCardinality},success_bucket_span:{status:Vl.c.SUCCESS,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.successBucketSpanHeading",{defaultMessage:"Bucket span"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.successBucketSpanMessage",{defaultMessage:"Format of {bucketSpan} is valid and passed validation checks.",values:{bucketSpan:'"{{bucketSpan}}"'}}),url:null==e?void 0:e.links.ml.anomalyDetectionBucketSpan},success_influencers:{status:Vl.c.SUCCESS,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.successInfluencersHeading",{defaultMessage:"Influencer configuration"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.successInfluencersMessage",{defaultMessage:"Passed the validation checks."}),url:null==e?void 0:e.links.ml.anomalyDetectionInfluencers},estimated_mml_greater_than_max_mml:{status:Vl.c.WARNING,text:u.i18n.translate("xpack.ml.models.jobValidation.messages.estimatedMmlGreaterThanMaxMmlMessage",{defaultMessage:"The estimated model memory limit is greater than the max model memory limit configured for this cluster."})},mml_greater_than_effective_max_mml:{status:Vl.c.WARNING,text:u.i18n.translate("xpack.ml.models.jobValidation.messages.mmlGreaterThanEffectiveMaxMmlMessage",{defaultMessage:"Job will not be able to run in the current cluster because model memory limit is higher than {effectiveMaxModelMemoryLimit}.",values:{effectiveMaxModelMemoryLimit:"{{effectiveMaxModelMemoryLimit}}"}})},mml_greater_than_max_mml:{status:Vl.c.ERROR,text:u.i18n.translate("xpack.ml.models.jobValidation.messages.mmlGreaterThanMaxMmlMessage",{defaultMessage:"The model memory limit is greater than the max model memory limit configured for this cluster."})},mml_value_invalid:{status:Vl.c.ERROR,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.mmlValueInvalidHeading",{defaultMessage:"Model memory limit"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.mmlValueInvalidMessage",{defaultMessage:"{mml} is not a valid value for model memory limit. The value needs to be at least 1MB and should be specified in bytes e.g. 10MB.",values:{mml:"{{mml}}"}}),url:null==e?void 0:e.links.ml.anomalyDetectionModelMemoryLimits},half_estimated_mml_greater_than_mml:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.halfEstimatedMmlGreaterThanMmlHeading",{defaultMessage:"Model memory limit"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.halfEstimatedMmlGreaterThanMmlMessage",{defaultMessage:"The specified model memory limit is less than half of the estimated model memory limit and will likely hit the hard limit."}),url:null==e?void 0:e.links.ml.anomalyDetectionModelMemoryLimits},estimated_mml_greater_than_mml:{status:Vl.c.INFO,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.halfEstimatedMmlGreaterThanMmlHeading",{defaultMessage:"Model memory limit"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.estimatedMmlGreaterThanMmlMessage",{defaultMessage:"The estimated model memory limit is greater than the model memory limit you have configured."}),url:null==e?void 0:e.links.ml.anomalyDetectionModelMemoryLimits},success_mml:{status:Vl.c.SUCCESS,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.successMmlHeading",{defaultMessage:"Model memory limit"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.successMmlMessage",{defaultMessage:"Valid and within the estimated model memory limit."}),url:null==e?void 0:e.links.ml.anomalyDetectionModelMemoryLimits},success_time_range:{status:Vl.c.SUCCESS,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.successTimeRangeHeading",{defaultMessage:"Time range"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.successTimeRangeMessage",{defaultMessage:"Valid and long enough to model patterns in the data."})},time_field_invalid:{status:Vl.c.ERROR,text:u.i18n.translate("xpack.ml.models.jobValidation.messages.timeFieldInvalidMessage",{defaultMessage:"{timeField} cannot be used as the time field because it is not a field of type 'date' or 'date_nanos'.",values:{timeField:"'{{timeField}}'"}})},time_range_short:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.timeRangeShortHeading",{defaultMessage:"Time range"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.timeRangeShortMessage",{defaultMessage:"The selected or available time range might be too short. The recommended minimum time range should be at least {minTimeSpanReadable} and {bucketSpanCompareFactor} times the bucket span.",values:{minTimeSpanReadable:"{{minTimeSpanReadable}}",bucketSpanCompareFactor:"{{bucketSpanCompareFactor}}"}})},time_range_before_epoch:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.timeRangeBeforeEpochHeading",{defaultMessage:"Time range"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.timeRangeBeforeEpochMessage",{defaultMessage:"The selected or available time range contains data with timestamps before the UNIX epoch beginning. Timestamps before 01/01/1970 00:00:00 (UTC) are not supported for machine learning jobs."})},datafeed_preview_no_documents:{status:Vl.c.WARNING,heading:u.i18n.translate("xpack.ml.models.jobValidation.messages.datafeedPreviewNoDocumentsHeading",{defaultMessage:"Datafeed preview"}),text:u.i18n.translate("xpack.ml.models.jobValidation.messages.datafeedPreviewNoDocumentsMessage",{defaultMessage:"Running the datafeed preview over the current job configuration produces no results. If the index contains no documents this warning can be ignored, otherwise the job may be misconfigured."})},datafeed_preview_failed:{status:Vl.c.ERROR,text:u.i18n.translate("xpack.ml.models.jobValidation.messages.datafeedPreviewFailedMessage",{defaultMessage:"The datafeed preview failed. This may be due to an error in the job or datafeed configurations."})}}))),Gl=e=>{switch(e){case Vl.c.INFO:return"primary";case Vl.c.ERROR:return"danger";default:return e}},ql=e=>{switch(e){case Vl.c.INFO:return"iInCircle";case Vl.c.ERROR:return"cross";case Vl.c.SUCCESS:return"check";case Vl.c.WARNING:return"warning";default:return e}},$l=({url:e})=>Object(h.jsx)(d.EuiLink,{href:e,target:"_BLANK"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.validateJob.learnMoreLinkText",defaultMessage:"Learn more"})),Wl=({text:e,url:t})=>Object(h.jsx)(s.a.Fragment,null,e," ",t&&Object(h.jsx)($l,{url:t})),Hl=({heading:e,status:t,text:a,url:i})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiCallOut,{"data-test-subj":"mlValidationCallout",color:Gl(t),size:"s",title:e||Object(h.jsx)(Wl,{text:a,url:i}),iconType:t?ql(t):"questionInCircle"},e&&Object(h.jsx)(Wl,{text:a,url:i})),Object(h.jsx)(d.EuiSpacer,{size:"m"})),Yl="questionInCircle",Xl=()=>({ui:{iconType:Yl,isLoading:!0,isModalVisible:!1},data:{messages:[],success:!1},title:""}),Ql=({messages:e,idFilterList:t})=>{const a=e.filter((e=>!1===t.includes(e.id))).map(((e,t)=>Object(h.jsx)(Hl,m()({key:`${e.id}_${t}`},e)))),i=Object(h.jsx)(Hl,{text:u.i18n.translate("xpack.ml.validateJob.allPassed",{defaultMessage:"All validation checks passed successfully"}),status:Vl.c.SUCCESS});return Object(h.jsx)(s.a.Fragment,null,a.length?a:i)},Kl=()=>Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceAround",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiLoadingSpinner,{size:"xl"}))),Zl=({close:e,title:t,children:a})=>Object(h.jsx)(d.EuiModal,{onClose:e,style:{width:"800px"}},Object(h.jsx)(d.EuiModalHeader,null,Object(h.jsx)(d.EuiModalHeaderTitle,null,t)),Object(h.jsx)(d.EuiModalBody,null,a),Object(h.jsx)(d.EuiModalFooter,null,Object(h.jsx)(d.EuiButton,{onClick:e,size:"s",fill:!0},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.validateJob.modal.closeButtonLabel",defaultMessage:"Close"}))));Zl.propType={close:Bl.a.func.isRequired,title:Bl.a.string};class validate_job_view_ValidateJobUI extends n.Component{constructor(e){super(e),Ve()(this,"closeModal",(()=>{const e=Xl();e.ui.iconType=this.state.ui.iconType,this.setState(e)})),Ve()(this,"validate",(()=>{const e=this.props.getJobConfig(),t=this.props.getDuration,a="function"==typeof t?t():void 0,i=this.props.fields;if("object"==typeof e)if("object"==typeof a&&null!==a.start&&null!==a.end){let t=!0;this.props.ml.validateJob({duration:a,fields:i,job:e}).then((a=>{const i=((e,t)=>{const a=Ul(t);return e.map((e=>{const t=e.id,i=a[t];return void 0!==i?(void 0!==i.heading&&(e.heading=Object(Jl.c)(i.heading,e)),e.text=Object(Jl.c)(i.text,e),void 0!==i.url&&(e.url=i.url),e.status=i.status):e.text=u.i18n.translate("xpack.ml.models.jobValidation.unknownMessageIdErrorMessage",{defaultMessage:"{messageId} (unknown message id)",values:{messageId:t}}),e}))})(a,Object($e.d)());t=!1,i.some((e=>e.status===Vl.c.ERROR))&&i.push({id:"job_validation_includes_error",text:u.i18n.translate("xpack.ml.validateJob.jobValidationIncludesErrorText",{defaultMessage:"Job validation has failed, but you can still continue and create the job. Please be aware the job may encounter problems when running."}),status:Vl.c.WARNING}),this.setState({...this.state,ui:{...this.state.ui,iconType:ql(Object(Ma.b)(i)),isLoading:!1,isModalVisible:!0},data:{messages:i,success:!0},title:e.job_id}),"function"==typeof this.props.setIsValid&&this.props.setIsValid(!0)})).catch((e=>{const{toasts:t}=this.props.kibana.services.notifications;Object(qe.b)(t).displayErrorToast(e,u.i18n.translate("xpack.ml.jobService.validateJobErrorTitle",{defaultMessage:"Job Validation Error"}))})),setTimeout((()=>{t&&this.setState({...this.state,ui:{...this.state.ui,isLoading:!0,isModalVisible:!1}})}),250)}else this.setState({...this.state,ui:{...this.state.ui,iconType:ql(Vl.c.WARNING),isLoading:!1,isModalVisible:!0},data:{messages:[{id:"job_validation_skipped",text:u.i18n.translate("xpack.ml.validateJob.jobValidationSkippedText",{defaultMessage:"Job validation could not be run because of insufficient sample data. Please be aware the job may encounter problems when running."}),status:Vl.c.WARNING}],success:!0},title:e.job_id}),"function"==typeof this.props.setIsValid&&this.props.setIsValid(!0)})),this.state=Xl()}componentDidMount(){!0===this.props.embedded&&this.validate()}render(){const e=Object($e.d)().links.ml.anomalyDetectionJobTips,t=!1!==this.props.fill,a=!0===this.props.isCurrentJobConfig,i=!0===this.props.isDisabled,s=!0===this.props.embedded,o=this.props.idFilterList||[],r=this.state.ui.isLoading;return Object(h.jsx)(n.Fragment,null,!1===s?Object(h.jsx)("div",null,Object(h.jsx)(d.EuiButton,{onClick:this.validate,size:"s",fill:t,iconType:a?this.state.ui.iconType:Yl,iconSide:"right",isDisabled:i,isLoading:r},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.validateJob.validateJobButtonLabel",defaultMessage:"Validate Job"})),!i&&this.state.ui.isModalVisible&&Object(h.jsx)(Zl,{close:this.closeModal,title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.validateJob.modal.validateJobTitle",defaultMessage:"Validate job {title}",values:{title:this.state.title}})},r?Object(h.jsx)(Kl,null):Object(h.jsx)(Ql,{messages:this.state.data.messages,idFilterList:o}),Object(h.jsx)(d.EuiText,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.validateJob.modal.jobValidationDescriptionText",defaultMessage:"Job validation performs certain checks against job configurations and underlying source data and provides specific advice on how to adjust settings that are more likely to produce insightful results."})),Object(h.jsx)(d.EuiText,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.validateJob.modal.linkToJobTipsText",defaultMessage:"For more information, see {mlJobTipsLink}.",values:{mlJobTipsLink:Object(h.jsx)(d.EuiLink,{href:e,target:"_blank"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.validateJob.modal.linkToJobTipsText.mlJobTipsLinkText",defaultMessage:"Machine Learning Job Tips"}))}})))):Object(h.jsx)(n.Fragment,null,r?Object(h.jsx)(Kl,null):Object(h.jsx)(Ql,{messages:this.state.data.messages,idFilterList:o})))}}const ec=Object(sa.withKibana)(validate_job_view_ValidateJobUI),tc=({nextActive:e,setCurrentStep:t})=>e?null:Object(h.jsx)(d.EuiButtonEmpty,{onClick:()=>t(ps.SUMMARY),iconType:"arrowRight",iconSide:"right","data-test-subj":"mlJobWizardNavButtonPrevious"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.shopValidationButton",defaultMessage:"Skip validation"})),ac=["job_id_valid","job_group_id_valid","detectors_function_not_empty","success_bucket_span"],ic=({setCurrentStep:e,isCurrentStep:t})=>{const{jobCreator:a,jobCreatorUpdate:i,jobValidator:s}=Object(n.useContext)(ms),[o,r]=Object(n.useState)(!1);return a.type===ja.f.ADVANCED&&ac.push("time_range_short","success_time_range"),Object(n.useEffect)((()=>{s.validate((()=>{}),!0),i()}),[]),Object(h.jsx)(n.Fragment,null,t&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(ec,{getJobConfig:function(){return{...a.jobConfig,datafeed_config:a.datafeedConfig}},getDuration:function(){return{start:a.start,end:a.end}},ml:Je.ml,embedded:!0,setIsValid:function(e){s.advancedValid=e,r(e)},idFilterList:ac}),Object(h.jsx)(hs,{previous:()=>e(ps.JOB_DETAILS),next:()=>e(ps.SUMMARY),nextActive:o},Object(h.jsx)(tc,{nextActive:o,setCurrentStep:e}))),!1===t&&Object(h.jsx)(n.Fragment,null))},nc=u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.trueLabel",{defaultMessage:"True"}),sc=u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.falseLabel",{defaultMessage:"False"}),oc=u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.defaultString",{defaultMessage:"default"}),rc=()=>Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h3",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.summaryStep.jobConfig.title",defaultMessage:"Job configuration"}))),lc=()=>Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h3",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.summaryStep.datafeedConfig.title",defaultMessage:"Datafeed configuration"}))),cc=({children:e})=>Object(h.jsx)("span",{style:{fontStyle:"italic"}},e),dc=()=>{const{jobCreator:e}=Object(n.useContext)(ms),{services:{uiSettings:t}}=Object(Te.d)(),a=t.get("dateFormat"),{anomaly_detectors:i}=Object(ie.c)(),s=Da(e),o=i.model_memory_limit||"",r=null!==e.modelMemoryLimit?e.modelMemoryLimit:Object(h.jsx)(cc,null,`${o} (${oc})`),l=[{title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.jobDetails.jobDetails.title",{defaultMessage:"Job ID"}),description:e.jobId},{title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.jobDetails.jobDescription.title",{defaultMessage:"Job description"}),description:e.description.length>0?e.description:Object(h.jsx)(cc,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.summaryStep.jobDetails.jobDescription.placeholder",defaultMessage:"No description provided"}))},{title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.jobDetails.groups.title",{defaultMessage:"Groups"}),description:e.groups.length>0?e.groups.join(", "):Object(h.jsx)(cc,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.summaryStep.jobDetails.groups.placeholder",defaultMessage:"No groups selected"}))}],c=[{title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.jobDetails.bucketSpan.title",{defaultMessage:"Bucket span"}),description:e.bucketSpan}];Fa(e)&&c.push({title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.jobDetails.splitField.title",{defaultMessage:"Split field"}),description:Fa(e)&&null!==e.splitField?e.splitField.name:Object(h.jsx)(cc,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.summaryStep.jobDetails.splitField.placeholder",defaultMessage:"No split field selected"}))}),Ia(e)&&c.push({title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.jobDetails.populationField.title",{defaultMessage:"Population field"}),description:Ia(e)&&null!==e.populationField?e.populationField.name:Object(h.jsx)("span",{style:{fontStyle:null!==e.populationField?"inherit":"italic"}},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.summaryStep.jobDetails.populationField.placeholder",defaultMessage:"No population field selected"}))}),s&&null!==e.categorizationFieldName&&c.push({title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.jobDetails.categorizationField.title",{defaultMessage:"Categorization field"}),description:e.categorizationFieldName}),s&&null!==e.summaryCountFieldName&&c.push({title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.jobDetails.summaryCountField.title",{defaultMessage:"Summary count field"}),description:e.summaryCountFieldName}),c.push({title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.jobDetails.influencers.title",{defaultMessage:"Influencers"}),description:e.influencers.length>0?e.influencers.join(", "):Object(h.jsx)(cc,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.summaryStep.jobDetails.influencers.placeholder",defaultMessage:"No influencers selected"}))});const p=[{title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.jobDetails.enableModelPlot.title",{defaultMessage:"Enable model plot"}),description:e.modelPlot?nc:sc},{title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.jobDetails.useDedicatedIndex.title",{defaultMessage:"Use dedicated index"}),description:e.useDedicatedIndex?nc:sc},{title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.jobDetails.modelMemoryLimit.title",{defaultMessage:"Model memory limit"}),description:r}],m=[{title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.timeRange.start.title",{defaultMessage:"Start"}),description:bt()(e.start).format(a)},{title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.timeRange.end.title",{defaultMessage:"End"}),description:bt()(e.end).format(a)}];return Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:l})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:c})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:p})),!1===s&&Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:m})))},uc=()=>{const{jobCreator:e}=Object(n.useContext)(ms),{datafeeds:t}=Object(ie.c)(),a=JSON.stringify(e.query,null,2),i=Object(Gt.f)(e.bucketSpanMs/1e3),s=t.scroll_size||"",o=e.queryDelay||Object(h.jsx)(cc,null,`${ja.d} (${oc})`),r=e.frequency||Object(h.jsx)(cc,null,`${i}s (${oc})`),l=null!==e.scrollSize?`${e.scrollSize}`:Object(h.jsx)(cc,null,`${s} (${oc})`),c=[{title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.datafeedDetails.timeField.title",{defaultMessage:"Time field"}),description:e.timeFieldName},{title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.datafeedDetails.queryDelay.title",{defaultMessage:"Query delay"}),description:o},{title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.datafeedDetails.frequency.title",{defaultMessage:"Frequency"}),description:r},{title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.datafeedDetails.scrollSize.title",{defaultMessage:"Scroll size"}),description:l}],p=u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.datafeedDetails.query.title",{defaultMessage:"Elasticsearch query"});return Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:p,fullWidth:!0},Object(h.jsx)(Jt.a,{value:a,height:"200px",readOnly:!0}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:c})))},pc=()=>{const{jobCreator:e}=Object(n.useContext)(ms);return Object(h.jsx)(n.Fragment,null,e.type===ja.f.SINGLE_METRIC&&Object(h.jsx)(Ys,{isActive:!1}),e.type===ja.f.MULTI_METRIC&&Object(h.jsx)(po,{isActive:!1}),e.type===ja.f.POPULATION&&Object(h.jsx)(yo,{isActive:!1}),e.type===ja.f.ADVANCED&&Object(h.jsx)(mr,{isActive:!1}),e.type===ja.f.CATEGORIZATION&&Object(h.jsx)(Dr,{isActive:!1}),e.type===ja.f.RARE&&Object(h.jsx)(Wr,{isActive:!1}),e.type===ja.f.GEO&&Object(h.jsx)(al,{isActive:!1}))},mc=({progress:e})=>e>0&&e<100?Object(h.jsx)(d.EuiProgress,{value:e,color:"primary",size:"xs",max:100}):null,bc=({jobRunner:e})=>{const{services:{notifications:t}}=Object(Te.d)(),{jobCreator:a}=Object(n.useContext)(ms),[i,s]=Object(n.useState)(Ye.a.STOPPED),[o,r]=Object(n.useState)(!1);return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{isDisabled:i===Ye.a.STARTING||i===Ye.a.STARTED,onClick:async function(){const{toasts:i}=t;if(s(Ye.a.STARTING),null!==e)try{const t=await e.startDatafeedInRealTime(!0);s(!0===t?Ye.a.STARTED:Ye.a.STOPPED),i.addSuccess({title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.postSaveOptions.startJobInRealTimeSuccess",{defaultMessage:"Job {jobId} started",values:{jobId:a.jobId}})})}catch(e){s(Ye.a.STOPPED),i.addDanger({title:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.postSaveOptions.startJobInRealTimeError",{defaultMessage:"Error starting job"}),text:Object(ei.b)(e)})}},"data-test-subj":"mlJobWizardButtonRunInRealTime"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.summaryStep.postSaveOptions.startJobInRealTime",defaultMessage:"Start job running in real time"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{isDisabled:i===Ye.a.STOPPED||i===Ye.a.STARTING,onClick:r.bind(null,!0),"data-test-subj":"mlJobWizardButtonCreateAlert"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.summaryStep.postSaveOptions.createAlert",defaultMessage:"Create alert rule"}))),i===Ye.a.STARTED&&o&&Object(h.jsx)(zt,{jobIds:[a.jobId],onCloseFlyout:r.bind(null,!1)}))},fc=({startDatafeed:e,setStartDatafeed:t,disabled:a=!1})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiFormRow,{helpText:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.startDatafeedCheckboxHelpText",{defaultMessage:"If unselected, job can be started later from the jobs list."})},Object(h.jsx)(d.EuiSwitch,{"data-test-subj":"mlJobWizardStartDatafeedCheckbox",label:u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.startDatafeedCheckbox",{defaultMessage:"Start immediately"}),checked:e,onChange:e=>t(e.target.checked),disabled:a}))),gc=({setCurrentStep:e,isCurrentStep:t})=>{const{services:{notifications:a,http:{basePath:i}}}=Object(Te.d)(),s=Object(Te.h)(),{jobCreator:o,jobValidator:r,jobValidatorUpdated:l,resultsLoader:c}=Object(n.useContext)(ms),[p,m]=Object(n.useState)(c.progress),[b,f]=Object(n.useState)(!1),[j,x]=Object(n.useState)(r.validationSummary.basic),[v,y]=Object(n.useState)(null),[O,E]=Object(n.useState)(!0),[w,M]=Object(n.useState)(!1),S=Da(o),_=S?ol.EDITABLE:ol.READONLY;async function T(e=!0){try{await o.createJob(),await o.createDatafeed(),Object(xa.a)(e?o:null,s)}catch(e){C(e)}}function C(e){const{displayErrorToast:t}=Object(qe.b)(a.toasts);t(e,u.i18n.translate("xpack.ml.newJob.wizard.summaryStep.createJobError",{defaultMessage:"Job creation error"})),f(!1)}return Object(n.useEffect)((()=>{o.subscribeToProgress(m)}),[]),Object(n.useEffect)((()=>{let e=null;return null!==v&&(e=v.subscribeToJobAssignment((e=>M(!e)))),()=>{var t;null!==e&&(null===(t=e)||void 0===t||t.unsubscribe())}}),[v]),Object(n.useEffect)((()=>{x(r.validationSummary.basic)}),[l]),Object(h.jsx)(n.Fragment,null,t&&Object(h.jsx)(n.Fragment,null,S&&Object(h.jsx)(rc,null),Object(h.jsx)(pc,null),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(mc,{progress:p}),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(dc,null),!1===S&&Object(h.jsx)(fc,{startDatafeed:O,setStartDatafeed:E,disabled:b}),S&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiHorizontalRule,null),Object(h.jsx)(lc,null),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(uc,null)),Object(h.jsx)(d.EuiHorizontalRule,null),w&&Object(h.jsx)(pn.b,{jobType:"anomaly-detector"}),Object(h.jsx)(d.EuiFlexGroup,null,p<100&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(js,{previous:()=>e(ps.VALIDATION),previousActive:!1===b&&!0===j})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:async function(){f(!0),S?await T():!0===O?await async function(){try{const e=await o.createAndStartJob();y(e)}catch(e){C(e)}}():await T(!1)},isDisabled:!0===b||!1===j,"data-test-subj":"mlJobWizardButtonCreateJob",fill:!0},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.summaryStep.createJobButton",defaultMessage:"Create job"})))),!1===b&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(ll,{isDisabled:p>0,jobEditorMode:_,datafeedEditorMode:_})),!1===S&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{onClick:()=>{Object(xa.d)(o,s)},"data-test-subj":"mlJobWizardButtonConvertToAdvancedJob"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.summaryStep.convertToAdvancedButton",defaultMessage:"Convert to advanced job"})))),p>0&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:function(){const e=Ge.a.createResultsUrl([o.jobId],o.start,o.end,!0===ka(o)?"timeseriesexplorer":"explorer");s(`${i.get()}/app/ml/${e}`)},"data-test-subj":"mlJobWizardButtonViewResults"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.summaryStep.viewResultsButton",defaultMessage:"View results"})))),100===p&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:function(){Object(xa.m)(o,s)},"data-test-subj":"mlJobWizardButtonResetJob"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.summaryStep.resetJobButton",defaultMessage:"Reset job"}))),Object(h.jsx)(bc,{jobRunner:v})))))},hc=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.query.title",{defaultMessage:"Elasticsearch query"});return Object(h.jsx)(d.EuiFormRow,{label:t,describedByIds:["description"],fullWidth:!0},Object(h.jsx)(s.a.Fragment,null,e))})),jc=({setIsValidQuery:e})=>{const{jobCreator:t,jobCreatorUpdate:a,jobCreatorUpdated:i}=Object(n.useContext)(ms),s=t,[o,r]=Object(n.useState)(JSON.stringify(s.query,null,2));return Object(n.useEffect)((()=>{const t=Object(Ma.c)(o);e(t),t&&(s.query=JSON.parse(o),a())}),[o]),Object(n.useEffect)((()=>{if(Object(Ma.c)(o)){const e=JSON.parse(o),t=JSON.stringify(e,null,2),a=JSON.stringify(s.query,null,2);t!==a&&r(a)}}),[i]),Object(n.useEffect)((()=>{const t=Object(Ma.c)(o);e(t)}),[]),Object(h.jsx)(hc,null,Object(h.jsx)(Jt.a,{value:o,height:"400px",readOnly:!1,onChange:function(e){r(e)}}))},xc=Object(n.memo)((({children:e,validation:t})=>{const a=u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.queryDelay.title",{defaultMessage:"Query delay"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,a),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.queryDelay.description",defaultMessage:"Time delay in seconds, between current time and latest input data time."})},Object(h.jsx)(d.EuiFormRow,{error:t.message,isInvalid:!1===t.valid},Object(h.jsx)(s.a.Fragment,null,e)))}));function vc(e){const[t,a]=Object(n.useState)(i(e));function i(e){return null===e?"":e}return{value:t,setValue:function(e){a(i(e))}}}const yc=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobValidator:a,jobValidatorUpdated:i}=Object(n.useContext)(ms),[s,o]=Object(n.useState)(a.queryDelay),{value:r,setValue:l}=vc(e.queryDelay);return Object(n.useEffect)((()=>{e.queryDelay=""===r?null:r,t()}),[r]),Object(n.useEffect)((()=>{l(null===e.queryDelay?"":e.queryDelay)}),[t]),Object(n.useEffect)((()=>{o(a.queryDelay)}),[i]),Object(h.jsx)(xc,{validation:s},Object(h.jsx)(d.EuiFieldText,{value:r,placeholder:ja.d,onChange:e=>l(e.target.value),isInvalid:!1===s.valid,"data-test-subj":"mlJobWizardInputQueryDelay"}))},Oc=Object(n.memo)((({children:e,validation:t})=>{const a=u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.frequency.title",{defaultMessage:"Frequency"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,a),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.frequency.description",defaultMessage:"The interval between searches."})},Object(h.jsx)(d.EuiFormRow,{error:t.message,isInvalid:!1===t.valid},Object(h.jsx)(s.a.Fragment,null,e)))})),Ec=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a,jobValidator:i,jobValidatorUpdated:s}=Object(n.useContext)(ms),[o,r]=Object(n.useState)(i.frequency),{value:l,setValue:c}=vc(e.frequency),[u,p]=Object(n.useState)(m());function m(){return`${Object(Gt.f)(e.bucketSpanMs/1e3)}s`}return Object(n.useEffect)((()=>{e.frequency=""===l?null:l,t()}),[l]),Object(n.useEffect)((()=>{c(e.frequency);const t=m();p(t)}),[a]),Object(n.useEffect)((()=>{r(i.frequency)}),[s]),Object(h.jsx)(Oc,{validation:o},Object(h.jsx)(d.EuiFieldText,{value:l,placeholder:u,onChange:e=>c(e.target.value),isInvalid:!1===o.valid,"data-test-subj":"mlJobWizardInputFrequency"}))},wc=Object(n.memo)((({children:e,validation:t})=>{const a=u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.scrollSize.title",{defaultMessage:"Scroll size"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,a),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.scrollSize.description",defaultMessage:"The maximum number of documents to return in each search request."})},Object(h.jsx)(d.EuiFormRow,{error:t.message,isInvalid:!1===t.valid},Object(h.jsx)(s.a.Fragment,null,e)))})),Mc=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobValidator:a,jobValidatorUpdated:i}=Object(n.useContext)(ms),[s,o]=Object(n.useState)(a.scrollSize),[r,l]=Object(n.useState)(null===e.scrollSize?"":`${e.scrollSize}`),{datafeeds:c}=Object(ie.c)(),u=void 0!==c.scroll_size?`${c.scroll_size}`:"";return Object(n.useEffect)((()=>{e.scrollSize=""===r?null:+r,t()}),[r]),Object(n.useEffect)((()=>{l(null===e.scrollSize?"":`${e.scrollSize}`)}),[t]),Object(n.useEffect)((()=>{o(a.scrollSize)}),[i]),Object(h.jsx)(wc,{validation:s},Object(h.jsx)(d.EuiFieldNumber,{min:0,placeholder:u,value:""===r?r:+r,onChange:e=>l(e.target.value),isInvalid:!1===s.valid,"data-test-subj":"mlJobWizardInputScrollSize"}))},Sc=()=>{const{jobCreator:e,jobCreatorUpdate:t}=Object(n.useContext)(ms),[a,i]=Object(n.useState)(!1),[o]=Object(n.useState)(JSON.stringify(Object($n.c)(),null,2)),r=()=>i(!1);return Object(h.jsx)(s.a.Fragment,null,a&&Object(h.jsx)(d.EuiConfirmModal,{title:u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.resetQueryConfirm.title",{defaultMessage:"Reset datafeed query"}),onCancel:r,onConfirm:function(){e.query=Object($n.c)(),t(),r()},cancelButtonText:u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.resetQueryConfirm.cancel",{defaultMessage:"Cancel"}),confirmButtonText:u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.resetQueryConfirm.confirm",{defaultMessage:"Confirm"}),defaultFocusedButton:"confirm"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.resetQueryConfirm.description",defaultMessage:"Set the datafeed query to be the default."}),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiCodeBlock,{language:"js",fontSize:"m",paddingSize:"s"},o)),Object(h.jsx)(d.EuiButtonEmpty,{size:"s",onClick:()=>i(!0)},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.resetQueryButton",defaultMessage:"Reset datafeed query to default"})))},_c=({fields:e,changeHandler:t,selectedField:a})=>{const{jobCreator:i}=Object(n.useContext)(ms),s=Object(xa.g)(e,i.additionalFields),o=[];return null!==a&&o.push({label:a}),Object(h.jsx)(d.EuiComboBox,{singleSelection:{asPlainText:!0},options:s,selectedOptions:o,onChange:function(e){const a=e[0];void 0!==a&&t(a.label)},isClearable:!1,"data-test-subj":"mlTimeFieldNameSelect"})},Tc=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.timeField.title",{defaultMessage:"Time field"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.timeField.description",defaultMessage:"The default time field for the data view is automatically selected, but can be overridden."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))})),Cc=()=>{const{jobCreator:e,jobCreatorUpdate:t,jobCreatorUpdated:a}=Object(n.useContext)(ms),i=e,{dateFields:s}=bs.a,[o,r]=Object(n.useState)(i.timeFieldName);return Object(n.useEffect)((()=>{i.timeFieldName=o,t()}),[o]),Object(n.useEffect)((()=>{r(i.timeFieldName)}),[a]),Object(h.jsx)(Tc,null,Object(h.jsx)(_c,{fields:s,changeHandler:r,selectedField:o}))},kc=Object(n.memo)((({children:e})=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.dataView.title",{defaultMessage:"Data view"});return Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h3",null,t),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.dataView.description",defaultMessage:"The data view that is currently used for this job."})},Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(s.a.Fragment,null,e)))}));var Fc;!function(e){e[e.PICK_DATA_VIEW=0]="PICK_DATA_VIEW",e[e.VALIDATE=1]="VALIDATE"}(Fc||(Fc={}));const Ic=({onClose:e})=>{const{services:{data:{dataViews:t},contentManagement:a,uiSettings:i}}=Object(Te.d)(),o=Object(Te.h)(),{validateDatafeedPreview:r}=Object(Te.c)(),{jobCreator:l}=Object(n.useContext)(ms),c=l,[p,m]=Object(n.useState)(!1),[b,f]=Object(n.useState)(Fc.PICK_DATA_VIEW),[j,x]=Object(n.useState)(""),[v,y]=Object(n.useState)(""),[O,E]=Object(n.useState)(null);Object(n.useEffect)((function(){x(c.indexPatternTitle)}),[]),Object(n.useEffect)((function(){b===Fc.PICK_DATA_VIEW&&E(null)}),[b]);const w=Object(n.useCallback)((async e=>{m(!0);const{title:a}=await t.get(e);y(a);const i=a.split(",");if(c.detectors.length){const e={...c.datafeedConfig,indices:i},t=await r({job:{...c.jobConfig,datafeed_config:e}});E(t)}m(!1)}),[t,r,c]),M=Object(n.useCallback)((()=>{const e=v.split(",");c.indices=e,Object(xa.l)(c,o)}),[c,v,o]);return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiModal,{onClose:e,"data-test-subj":"mlJobMgmtImportJobsFlyout"},Object(h.jsx)(d.EuiModalHeader,null,Object(h.jsx)(d.EuiModalHeaderTitle,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.dataView.step0.title",defaultMessage:"Change data view"}))),Object(h.jsx)(d.EuiModalBody,null,b===Fc.PICK_DATA_VIEW&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.dataView.step1.title",defaultMessage:"Select new data view for the job"}),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(Cn.SavedObjectFinder,{key:"searchSavedObjectFinder",onChoose:function(e){!1===p&&(f(Fc.VALIDATE),w(e))},showFilter:!0,noItemsMessage:u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.dataView.step1.noMatchingError",{defaultMessage:"No matching indices or saved searches found."}),savedObjectMetaData:[{type:"index-pattern",getIconForSavedObject:()=>"indexPatternApp",name:u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.dataView.step1.dataView",{defaultMessage:"Data view"})}],fixedPageSize:8,services:{contentClient:a.client,uiSettings:i}})),b===Fc.VALIDATE&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.dataView.step2.title",defaultMessage:"Changing {dv1} for {dv2}",values:{dv1:j,dv2:v}}),Object(h.jsx)(d.EuiSpacer,{size:"s"}),!0===p?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiLoadingSpinner,null),Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.dataView.step2.validatingText",defaultMessage:"Checking data view and job compatibility"})):Object(h.jsx)(Dc,{validationResponse:O,dataViewTitle:v}),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{onClick:f.bind(null,Fc.PICK_DATA_VIEW),isDisabled:p,flush:"left"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.dataView.step2.backButton",defaultMessage:"Back"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:()=>M(),isDisabled:p,"data-test-subj":"mlJobsImportButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.dataView.step2.ApplyButton",defaultMessage:"Apply"}))))))))},Dc=({validationResponse:e,dataViewTitle:t})=>null===e?Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.dataView.validation.noDetectors.title",{defaultMessage:"Data view valid"}),color:"primary"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.dataView.validation.noDetectors.message",defaultMessage:"No detectors have been configured; this data view can be applied to the job."})):!0===e.valid?!0===e.documentsFound?Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.dataView.validation.valid.title",{defaultMessage:"Data view valid"}),color:"primary"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.dataView.validation.valid.message",defaultMessage:"This data view can be applied to this job."})):Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.dataView.validation.possiblyInvalid.title",{defaultMessage:"Data view possibly invalid"}),color:"warning"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.dataView.validation.possiblyInvalid.message",defaultMessage:"This data view produced no results when previewing the datafeed. There may be no documents in {dataViewTitle}.",values:{dataViewTitle:t}})):Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.newJob.wizard.datafeedStep.dataView.validation.invalid.title",{defaultMessage:"Data view invalid"}),color:"danger"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.dataView.validation.invalid.message",defaultMessage:"This data view produced an error when attempting to preview the datafeed. The fields selected for this job might not exist in {dataViewTitle}.",values:{dataViewTitle:t}}),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.dataView.validation.invalid.reason",defaultMessage:"Reason:"}),Object(h.jsx)(d.EuiSpacer,{size:"s"}),e.error?Object(ei.b)(e.error):null),Ac=({isDisabled:e})=>{const[t,a]=Object(n.useState)(!1);return Object(h.jsx)(s.a.Fragment,null,t&&Object(h.jsx)(Ic,{onClose:a.bind(null,!1)}),Object(h.jsx)(kc,null,Object(h.jsx)(d.EuiButtonEmpty,{onClick:a.bind(null,!0),isDisabled:e,"data-test-subj":"mlJobsImportButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.datafeedStep.dataView.changeDataView.button",defaultMessage:"Change data view"}))))},Lc=({setCurrentStep:e,isCurrentStep:t})=>{const{jobValidator:a,jobValidatorUpdated:i}=Object(n.useContext)(ms),[s,o]=Object(n.useState)(!1),[r,l]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{const e=r&&a.queryDelay.valid&&a.frequency.valid&&a.scrollSize.valid&&!1===a.validating;o(e)}),[i,r]),Object(h.jsx)(n.Fragment,null,t&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,{"data-test-subj":"mlAdvancedDatafeedQueryEditor"},Object(h.jsx)(jc,{setIsValidQuery:l})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(yc,null),Object(h.jsx)(Ec,null),Object(h.jsx)(Mc,null),Object(h.jsx)(Cc,null),Object(h.jsx)(Ac,{isDisabled:!1}))),Object(h.jsx)(Sc,null),Object(h.jsx)(hs,{next:()=>e(ps.PICK_FIELDS),nextActive:s},Object(h.jsx)(ll,{isDisabled:!1,jobEditorMode:ol.EDITABLE,datafeedEditorMode:ol.EDITABLE}))))},Rc=({currentStep:e,setCurrentStep:t})=>{const a=Yn(),{services:i}=Object(Te.d)(),o=Object(n.useMemo)((()=>{const{uiSettings:e,data:t,fieldFormats:a,charts:n}=i;return{uiSettings:e,dataViews:t.dataViews,data:t,fieldFormats:a,charts:n}}),[i]),{jobCreator:r,jobCreatorUpdated:l}=Object(n.useContext)(ms),[c,p]=Object(n.useState)(null==r?void 0:r.start),[m,b]=Object(n.useState)(null==r?void 0:r.end);Object(n.useEffect)((()=>{(r&&r.start!==c||r.end!==m)&&(p(r.start),b(r.end))}),[l]);const f=Object(n.useMemo)((()=>c&&m?{from:c,to:m}:void 0),[c,m]),[j,x]=Object(n.useState)(!1),[v,y]=Object(n.useState)(!1);return Object(h.jsx)(n.Fragment,null,e===ps.TIME_RANGE&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(Nc,{"data-test-subj":"mlJobWizardStepTitleTimeRange"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.stepComponentWrapper.timeRangeTitle",defaultMessage:"Time range"})),Object(h.jsx)(ws,{isCurrentStep:e===ps.TIME_RANGE,setCurrentStep:t})),e===ps.ADVANCED_CONFIGURE_DATAFEED&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(Nc,{"data-test-subj":"mlJobWizardStepTitleConfigureDatafeed"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.stepComponentWrapper.configureDatafeedTitle",defaultMessage:"Configure datafeed"})),Object(h.jsx)(Lc,{isCurrentStep:e===ps.ADVANCED_CONFIGURE_DATAFEED,setCurrentStep:t})),e===ps.PICK_FIELDS&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(fs.d,{dataView:a.selectedDataView,fieldStatsServices:o,timeRangeMs:f,dslQuery:r.query},Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Nc,{"data-test-subj":"mlJobWizardStepTitlePickFields"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.stepComponentWrapper.pickFieldsTitle",defaultMessage:"Choose fields"})))),Object(h.jsx)(ul,{isCurrentStep:e===ps.PICK_FIELDS,setCurrentStep:t})))),e===ps.JOB_DETAILS&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(Nc,{"data-test-subj":"mlJobWizardStepTitleJobDetails"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.stepComponentWrapper.jobDetailsTitle",defaultMessage:"Job details"})),Object(h.jsx)(Pl,{isCurrentStep:e===ps.JOB_DETAILS,setCurrentStep:t,advancedExpanded:j,setAdvancedExpanded:x,additionalExpanded:v,setAdditionalExpanded:y})),e===ps.VALIDATION&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(Nc,{"data-test-subj":"mlJobWizardStepTitleValidation"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.wizard.stepComponentWrapper.validationTitle",defaultMessage:"Validation"})),Object(h.jsx)(ic,{isCurrentStep:e===ps.VALIDATION,setCurrentStep:t})),e===ps.SUMMARY&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(Nc,{"data-test-subj":"mlJobWizardStepTitleSummary"},a.selectedSavedSearch?u.i18n.translate("xpack.ml.newJob.wizard.stepComponentWrapper.summaryTitleSavedSearch",{defaultMessage:"New job from saved search {title}",values:{title:null!==(O=a.selectedSavedSearch.title)&&void 0!==O?O:""}}):void 0!==a.selectedDataView.id?u.i18n.translate("xpack.ml.newJob.wizard.stepComponentWrapper.summaryTitleDataView",{defaultMessage:"New job from data view {dataViewName}",values:{dataViewName:a.selectedDataView.getName()}}):""),Object(h.jsx)(gc,{isCurrentStep:e===ps.SUMMARY,setCurrentStep:t})));var O},Nc=({"data-test-subj":e,children:t})=>Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h2",{"data-test-subj":e},t)),Object(h.jsx)(d.EuiSpacer,null)),Pc=({currentStep:e,highestStep:t,setCurrentStep:a,disableSteps:i,jobType:n})=>{const s=[{title:u.i18n.translate("xpack.ml.newJob.wizard.step.timeRangeTitle",{defaultMessage:"Time range"}),...o(ps.TIME_RANGE)},{title:u.i18n.translate("xpack.ml.newJob.wizard.step.pickFieldsTitle",{defaultMessage:"Choose fields"}),...o(ps.PICK_FIELDS)},{title:u.i18n.translate("xpack.ml.newJob.wizard.step.jobDetailsTitle",{defaultMessage:"Job details"}),...o(ps.JOB_DETAILS)},{title:u.i18n.translate("xpack.ml.newJob.wizard.step.validationTitle",{defaultMessage:"Validation"}),...o(ps.VALIDATION)},{title:u.i18n.translate("xpack.ml.newJob.wizard.step.summaryTitle",{defaultMessage:"Summary"}),...o(ps.SUMMARY)}];function o(n){return{onClick:()=>function(e){e<=t&&a(e)}(n),status:e===n?"selected":e>n?"complete":"incomplete",disabled:i||t{const[d,p]=Object(n.useState)(0),m=Object(n.useCallback)((()=>{p((e=>e+1))}),[]),[b,f]=Object(n.useState)(0),g=Object(n.useCallback)((()=>{f((e=>e+1))}),[]),j={jobCreatorUpdated:d,jobCreatorUpdate:m,jobCreator:e,chartLoader:t,mapLoader:a,resultsLoader:i,chartInterval:s,jobValidator:o,jobValidatorUpdated:b,fields:bs.a.fields,aggs:bs.a.aggs,existingJobsAndGroups:r},x=e.type===ja.f.ADVANCED?ps.ADVANCED_CONFIGURE_DATAFEED:ps.TIME_RANGE,[v,y]=Object(n.useState)(x),[O,E]=Object(n.useState)(x),[w,M]=Object(n.useState)(!1),[S,_]=Object(n.useState)(i.progress),[T,C]=Object(n.useState)(Bc(e.jobConfig,e.datafeedConfig));return Object(n.useEffect)((()=>{const e=o.validationResult$.subscribe((()=>{g()}));return()=>e.unsubscribe()}),[o]),Object(n.useEffect)((()=>{o.validate((()=>{g()}));const t=Bc(e.jobConfig,e.datafeedConfig);t!==T&&(E(v),C(t))}),[d]),Object(n.useEffect)((()=>{e.subscribeToProgress(_),y(l)}),[]),Object(n.useEffect)((()=>{M(S>0)}),[S]),Object(n.useEffect)((()=>{v>=O&&E(v)}),[v]),((e,t,a,i)=>{const{services:{notifications:s}}=Object(Te.d)(),o=Object(n.useMemo)((()=>((e,t)=>{const a=new c.Subject,i=new c.Subject;return{get error$(){return i.asObservable()},get updates$(){return Object(c.combineLatest)([e.wizardInitialized$.pipe(Object(Ii.skipWhile)((e=>!1===e))),a]).pipe(Object(Ii.map)((([,e])=>e)),Object(Ii.debounceTime)(600),Object(Ii.map)(Ue.cloneDeep),Object(Ii.distinctUntilChanged)(Ue.isEqual),Object(Ii.filter)((()=>t.isModelMemoryEstimationPayloadValid)),Object(Ii.switchMap)((e=>Je.ml.calculateModelMemoryLimit$(e).pipe(Object(Ii.pluck)("modelMemoryLimit"),Object(Ii.catchError)((e=>(console.error("Model memory limit could not be calculated",e.body),i.next(e),Object(c.of)(ja.c))))))))},update(e){a.next(e)}}})(e,t)),[e,t]);Object(n.useEffect)((()=>{const t=new c.Subscription;return t.add(o.updates$.pipe(Object(Ii.startWith)(e.modelMemoryLimit),Object(Ii.pairwise)()).subscribe((([t,i])=>{null!==e.modelMemoryLimit&&e.modelMemoryLimit!==t||(e.modelMemoryLimit=i,a())}))),t.add(o.error$.subscribe((e=>{s.toasts.addWarning({title:u.i18n.translate("xpack.ml.newJob.wizard.estimateModelMemoryError",{defaultMessage:"Model memory limit could not be calculated"}),text:Object(ei.b)(e)})}))),()=>{t.unsubscribe()}}),[o]),Object(n.useEffect)((()=>{o.update({datafeedConfig:e.datafeedConfig,analysisConfig:e.jobConfig.analysis_config,indexPattern:e.indexPatternTitle,query:e.datafeedConfig.query,timeFieldName:e.jobConfig.data_description.time_field,earliestMs:e.start,latestMs:e.end})}),[e,i])})(e,o,m,d),Object(h.jsx)(ms.Provider,{value:j},Object(h.jsx)(Pc,{currentStep:v,highestStep:O,setCurrentStep:y,disableSteps:w,jobType:e.type}),Object(h.jsx)(Rc,{currentStep:v,setCurrentStep:y}))};function Bc(e,t){return JSON.stringify(e)+JSON.stringify(t)}function Vc(e,t,a,i,n,s){return new Promise(((o,r)=>{Je.ml.esSearch({index:e,size:0,body:{query:i,aggs:{catFields:{terms:{field:t,size:a}}},...void 0!==n?{runtime_mappings:n}:{}},...null!=s?s:{}}).then((e=>{const t=Object(Ue.get)(e,["aggregations","catFields","buckets"],[]);o({success:!0,results:t.map((e=>e.key))})})).catch((e=>{r(e)}))}))}const Jc=(e,t)=>Object(Ue.isEqual)(e,t);class chart_loader_ChartLoader{constructor(e,t){Ve()(this,"_dataView",void 0),Ve()(this,"_timeFieldName",""),Ve()(this,"_query",{}),Ve()(this,"_newJobLineChart",Yt()(Je.ml.jobs.newJobLineChart,Jc)),Ve()(this,"_newJobPopulationsChart",Yt()(Je.ml.jobs.newJobPopulationsChart,Jc)),Ve()(this,"_getEventRateData",Yt()(ca.mlResultsService.getEventRateData,Jc)),Ve()(this,"_getCategoryFields",Yt()(Vc,Jc)),this._dataView=e,this._query=t,"string"==typeof e.timeFieldName&&(this._timeFieldName=e.timeFieldName)}async loadLineCharts(e,t,a,i,n,s,o,r){if(""!==this._timeFieldName){if(!1===Object(xa.b)(a))return{};const l=null!==i?i.name:null,c=a.map(Uc);return(await this._newJobLineChart(this._dataView.getIndexPattern(),this._timeFieldName,e,t,s,this._query,c,l,n,null!=o?o:void 0,r)).results}return{}}async loadPopulationCharts(e,t,a,i,n,s,o){if(""!==this._timeFieldName){if(!1===Object(xa.b)(a))return{};const r=null!==i?i.name:"",l=a.map(Uc);return(await this._newJobPopulationsChart(this._dataView.getIndexPattern(),this._timeFieldName,e,t,n,this._query,l,r,null!=s?s:void 0,o)).results}return{}}async loadEventRateChart(e,t,a,i,n){if(""!==this._timeFieldName){const s=await this._getEventRateData(this._dataView.getIndexPattern(),this._query,this._timeFieldName,e,t,3*a,i,n);if(void 0!==s.error)throw s.error;return Object.entries(s.results).map((([e,t])=>({time:+e,value:t})))}return[]}async loadFieldExampleValues(e,t,a){const{results:i}=await this._getCategoryFields(this._dataView.getIndexPattern(),e.name,10,this._query,null!=t?t:void 0,a);return i}}function Uc(e){const t=void 0!==e.by&&null!==e.by.field&&null!==e.by.value?{field:e.by.field.id,value:e.by.value}:{field:null,value:null};return{agg:e.agg.dslName||"",field:e.field.id,by:t}}const Gc=(e,t)=>Object(Ue.isEqual)(e,t);class map_loader_MapLoader extends chart_loader_ChartLoader{constructor(e,t,a){super(e,t),Ve()(this,"_getMapData",void 0),this._getMapData=a?Yt()(a.createLayerDescriptors.createESSearchSourceLayerDescriptor,Gc):null}async getMapLayersForGeoJob(e,t,a,i,n){const s=[];if(void 0!==this._dataView.id&&e){const{query:o}=null!=n?n:{},r=a.length&&t?`${t.name}:${a[0]} ${o?`and ${o}`:""}`:`${o||""}`,l={indexPatternId:this._dataView.id,geoFieldName:e.name,geoFieldType:e.type,filters:null!=i?i:[],query:{query:r,language:"kuery"}},c=this._getMapData?await this._getMapData(l):null;c&&s.push(c)}return s}}const qc=({existingJobsAndGroups:e,jobType:t})=>{const a=Object(ee.i)(),i=Yn(),{services:{maps:s}}=Object(Te.d)(),o=Object(os.a)(),r=Object(n.useMemo)((()=>(e=>(t,a,i)=>{let n;switch(e){case ja.f.SINGLE_METRIC:n=single_metric_job_creator_SingleMetricJobCreator;break;case ja.f.MULTI_METRIC:n=multi_metric_job_creator_MultiMetricJobCreator;break;case ja.f.POPULATION:n=population_job_creator_PopulationJobCreator;break;case ja.f.ADVANCED:n=advanced_job_creator_AdvancedJobCreator;break;case ja.f.CATEGORIZATION:n=categorization_job_creator_CategorizationJobCreator;break;case ja.f.RARE:n=rare_job_creator_RareJobCreator;break;case ja.f.GEO:n=geo_job_creator_GeoJobCreator;break;default:n=single_metric_job_creator_SingleMetricJobCreator}return new n(t,a,i)})(t)(i.selectedDataView,i.selectedSavedSearch,i.combinedQuery)),[t]),l=Object(n.useMemo)((()=>new job_validator_JobValidator(r)),[r]),{displayErrorToast:c}=Object(qe.c)(),{from:p,to:m}=Object(ee.e)(a);r.setTimeRange(p,m);let b=t===ja.f.ADVANCED?ps.ADVANCED_CONFIGURE_DATAFEED:ps.TIME_RANGE,f=Ge.a.tempJobCloningObjects.autoSetTimeRange;if(Ge.a.tempJobCloningObjects.autoSetTimeRange=!1,void 0!==Ge.a.tempJobCloningObjects.job&&void 0!==Ge.a.tempJobCloningObjects.datafeed){const e=Ge.a.tempJobCloningObjects.job,a=Ge.a.cloneDatafeed(Ge.a.tempJobCloningObjects.datafeed);j(),r.cloneFromExistingJob(e,a),!1===Ge.a.tempJobCloningObjects.skipTimeRangeStep?r.jobId="":t!==ja.f.ADVANCED&&(b=ps.PICK_FIELDS),Ge.a.tempJobCloningObjects.skipTimeRangeStep=!1,Ge.a.tempJobCloningObjects.job=void 0,Ge.a.tempJobCloningObjects.datafeed=void 0,Ge.a.tempJobCloningObjects.createdBy=void 0,void 0!==Ge.a.tempJobCloningObjects.start&&void 0!==Ge.a.tempJobCloningObjects.end?(r.setTimeRange(Ge.a.tempJobCloningObjects.start,Ge.a.tempJobCloningObjects.end),Ge.a.tempJobCloningObjects.start=void 0,Ge.a.tempJobCloningObjects.end=void 0):f=f||Da(r),Ge.a.tempJobCloningObjects.calendars&&(r.calendars=Ge.a.tempJobCloningObjects.calendars,Ge.a.tempJobCloningObjects.calendars=void 0)}else if(r.bucketSpan=ja.b,r.type!==ja.f.POPULATION&&r.type!==ja.f.ADVANCED&&r.type!==ja.f.CATEGORIZATION&&(r.modelMemoryLimit=ja.c),r.type===ja.f.SINGLE_METRIC&&(r.modelPlot=!0,r.modelChangeAnnotations=!0),null!==i.selectedSavedSearch&&(r.createdBy=null),f=Da(r),j(),Aa(r)){const{catFields:e}=bs.a;1===e.length&&(r.categorizationFieldName=e[0].name)}function j(){if(Aa(r)){const e=bs.a.getAggById("count"),t=bs.a.getAggById("rare"),a=bs.a.getFieldById(la.c);r.setDefaultDetectorProperties(e,t,a);const{anomaly_detectors:i}=Object(ie.c)();r.categorizationAnalyzer=i.categorization_analyzer}else if(La(r)){const e=bs.a.getAggById("rare"),t=bs.a.getAggById("freq_rare");r.setDefaultDetectorProperties(e,t)}else if(Ra(r)){const e=bs.a.getAggById("lat_long");r.setDefaultDetectorProperties(e)}}f&&r.autoSetTimeRange().catch((e=>{const t=u.i18n.translate("xpack.ml.newJob.wizard.autoSetJobCreatorTimeRange.error",{defaultMessage:"Error retrieving beginning and end times of index"});c(e,t)})),o.setBarTarget(600),o.setMaxBars(1200),o.setInterval("auto");const x=Object(n.useMemo)((()=>new chart_loader_ChartLoader(i.selectedDataView,r.query)),[i.selectedDataView,r.query]),v=Object(n.useMemo)((()=>new map_loader_MapLoader(i.selectedDataView,r.query,s)),[i.selectedDataView,r.query,s]),y=Object(n.useMemo)((()=>new results_loader_ResultsLoader(r,o,x)),[r,o,x]);Object(n.useEffect)((()=>()=>{r.forceStopRefreshPolls()}));const O=Object(xa.i)(r);return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)("div",{"data-test-subj":`mlPageJobWizardHeader-${r.type}`},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.page.createJob",defaultMessage:"Create job"}),":"," ",O)),Object(h.jsx)("div",{style:{backgroundColor:"inherit"},"data-test-subj":`mlPageJobWizard ${t}`},Object(h.jsx)(d.EuiPageContentHeader_Deprecated,null,Object(h.jsx)(d.EuiPageContentHeaderSection_Deprecated,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.page.createJob.dataViewName",defaultMessage:"Using data view {dataViewName}",values:{dataViewName:r.indexPatternDisplayName}}))),Object(h.jsx)(zc,{jobCreator:r,chartLoader:x,mapLoader:v,resultsLoader:y,chartInterval:o,jobValidator:l,existingJobsAndGroups:e,firstWizardStep:b})))};var $c=a(151);const Wc="anomaly-detector";function Hc(e,t,a,i,n){return new Promise((async(s,o)=>{try{const r=n===Wc?bs.a:$c.a;if(void 0!==e){const t=await a.get(e);await r.initializeFromDataVIew(t),s(r.newJobCaps)}else if(void 0!==t){const{dataView:e}=await Object(He.a)({savedSearchService:i,dataViewsService:a})(t);if(null===e)return console.error("Cannot retrieve data view from saved search"),void o();await r.initializeFromDataVIew(e),s(r.newJobCaps)}else o()}catch(e){o(e)}}))}const Yc=(e,t)=>[Oe("ML_BREADCRUMB",e,t),Oe("ANOMALY_DETECTION_BREADCRUMB",e,t),Oe("CREATE_JOB_BREADCRUMB",e,t)],Xc=(e,t)=>[...Yc(e,t),{text:u.i18n.translate("xpack.ml.jobsBreadcrumbs.singleMetricLabel",{defaultMessage:"Single metric"}),href:""}],Qc=(e,t)=>[...Yc(e,t),{text:u.i18n.translate("xpack.ml.jobsBreadcrumbs.multiMetricLabel",{defaultMessage:"Multi-metric"}),href:""}],Kc=(e,t)=>[...Yc(e,t),{text:u.i18n.translate("xpack.ml.jobsBreadcrumbs.populationLabel",{defaultMessage:"Population"}),href:""}],Zc=(e,t)=>[...Yc(e,t),{text:u.i18n.translate("xpack.ml.jobsBreadcrumbs.advancedConfigurationLabel",{defaultMessage:"Advanced configuration"}),href:""}],ed=(e,t)=>[...Yc(e,t),{text:u.i18n.translate("xpack.ml.jobsBreadcrumbs.categorizationLabel",{defaultMessage:"Categorization"}),href:""}],td=(e,t)=>[...Yc(e,t),{text:u.i18n.translate("xpack.ml.jobsBreadcrumbs.rareLabel",{defaultMessage:"Rare"}),href:""}],ad=(e,t)=>[...Yc(e,t),{text:u.i18n.translate("xpack.ml.jobsBreadcrumbs.geoLabel",{defaultMessage:"Geo"}),href:""}],id=(e,t)=>({path:Object(Ee.c)(Fe.b.ANOMALY_DETECTION_CREATE_JOB_SINGLE_METRIC),render:(e,t)=>Object(h.jsx)(pd,m()({},e,{jobType:ja.f.SINGLE_METRIC,deps:t})),breadcrumbs:Xc(e,t)}),nd=(e,t)=>({path:Object(Ee.c)(Fe.b.ANOMALY_DETECTION_CREATE_JOB_MULTI_METRIC),render:(e,t)=>Object(h.jsx)(pd,m()({},e,{jobType:ja.f.MULTI_METRIC,deps:t})),breadcrumbs:Qc(e,t)}),sd=()=>({path:Object(Ee.c)(Fe.b.ANOMALY_DETECTION_CREATE_JOB_CONVERT_TO_MULTI_METRIC),render:e=>Object(h.jsx)(r.Redirect,{to:Object(Ee.c)(Fe.b.ANOMALY_DETECTION_CREATE_JOB_MULTI_METRIC,e.location.search)}),breadcrumbs:[]}),od=(e,t)=>({path:Object(Ee.c)(Fe.b.ANOMALY_DETECTION_CREATE_JOB_POPULATION),render:(e,t)=>Object(h.jsx)(pd,m()({},e,{jobType:ja.f.POPULATION,deps:t})),breadcrumbs:Kc(e,t)}),rd=(e,t)=>({path:Object(Ee.c)(Fe.b.ANOMALY_DETECTION_CREATE_JOB_ADVANCED),render:(e,t)=>Object(h.jsx)(pd,m()({},e,{jobType:ja.f.ADVANCED,deps:t})),breadcrumbs:Zc(e,t)}),ld=()=>({path:Object(Ee.c)(Fe.b.ANOMALY_DETECTION_CREATE_JOB_CONVERT_TO_ADVANCED),render:e=>Object(h.jsx)(r.Redirect,{to:Object(Ee.c)(Fe.b.ANOMALY_DETECTION_CREATE_JOB_ADVANCED,e.location.search)}),breadcrumbs:[]}),cd=(e,t)=>({path:Object(Ee.c)(Fe.b.ANOMALY_DETECTION_CREATE_JOB_CATEGORIZATION),render:(e,t)=>Object(h.jsx)(pd,m()({},e,{jobType:ja.f.CATEGORIZATION,deps:t})),breadcrumbs:ed(e,t)}),dd=(e,t)=>({path:Object(Ee.c)(Fe.b.ANOMALY_DETECTION_CREATE_JOB_RARE),render:(e,t)=>Object(h.jsx)(pd,m()({},e,{jobType:ja.f.RARE,deps:t})),breadcrumbs:td(e,t)}),ud=(e,t)=>({path:Object(Ee.c)(Fe.b.ANOMALY_DETECTION_CREATE_JOB_GEO),render:(e,t)=>Object(h.jsx)(pd,m()({},e,{jobType:ja.f.GEO,deps:t})),breadcrumbs:ad(e,t)}),pd=({location:e,jobType:t})=>{const a=Object(rn.a)(Fe.b.ANOMALY_DETECTION_JOBS_MANAGE),{index:i,savedSearchId:n}=Object(qn.parse)(e.search,{sort:!1}),{services:{data:{dataViews:s},savedSearch:o}}=Object(Te.d)(),{context:r,results:l}=Ie("full",["canGetJobs","canCreateJob"],{...Sn(),privileges:()=>Object(Se.b)(a),jobCaps:()=>Hc(i,n,s,o,Wc),existingJobsAndGroups:Ge.a.getJobAndGroupIds});return Object(h.jsx)(Ee.b,{context:r},Object(h.jsx)(Hn,null,l?Object(h.jsx)(qc,{jobType:t,existingJobsAndGroups:l.existingJobsAndGroups}):null))},md=Object(n.memo)((({saveState:e,resultsUrl:t,onReset:a})=>e===Od.NOT_SAVED?null:Object(h.jsx)(s.a.Fragment,null,e===Od.SAVED&&Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.jobsCreatedTitle",defaultMessage:"Jobs created"}),color:"success",iconType:"checkInCircleFilled"}),e===Od.FAILED&&Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.simple.recognize.jobsCreationFailedTitle",defaultMessage:"Jobs creation failed"}),color:"danger",iconType:"warning"}),e===Od.PARTIAL_FAILURE&&Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.someJobsCreationFailedTitle",defaultMessage:"Some jobs failed to be created"}),color:"warning",iconType:"warning"}),Object(h.jsx)(d.EuiSpacer,{size:"l"}),Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"flexEnd",alignItems:"center"},e!==Od.SAVING&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{color:"primary",fill:!1,"aria-label":u.i18n.translate("xpack.ml.newJob.recognize.jobsCreationFailed.resetButtonAriaLabel",{defaultMessage:"Reset"}),onClick:a},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.someJobsCreationFailed.resetButtonLabel",defaultMessage:"Reset"}))),(e===Od.SAVED||e===Od.PARTIAL_FAILURE)&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{color:"primary",fill:!0,href:t,"aria-label":u.i18n.translate("xpack.ml.newJob.recognize.viewResultsAriaLabel",{defaultMessage:"View results"})},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.viewResultsLinkText",defaultMessage:"View results"}))))))),bd=Object(n.memo)((({objectType:e,kibanaObjects:t,isSaving:a})=>{const i={dashboard:u.i18n.translate("xpack.ml.newJob.recognize.dashboardsLabel",{defaultMessage:"Dashboards"}),search:u.i18n.translate("xpack.ml.newJob.recognize.searchesLabel",{defaultMessage:"Searches"}),visualization:u.i18n.translate("xpack.ml.newJob.recognize.visualizationsLabel",{defaultMessage:"Visualizations"})};return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h4",null,i[e])),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)("ul",null,t.map((({id:e,title:i,success:n,exists:s,error:o},r)=>Object(h.jsx)("li",{key:e},Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"s",color:s?"subdued":"success"},i),!1===n&&void 0!==o&&Object(h.jsx)(d.EuiText,{size:"xs",color:"danger"},Object(ei.b)(o))),s&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"xs",color:"default"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.alreadyExistsLabel",defaultMessage:"(already exists)"}))))),!s&&Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{width:"60px"}},Object(h.jsx)(d.EuiText,{textAlign:"center"},a?Object(h.jsx)(d.EuiLoadingSpinner,{size:"m"}):null,void 0!==n?Object(h.jsx)(d.EuiIcon,{type:n?"check":"cross",color:n?"success":"danger","aria-label":n?u.i18n.translate("xpack.ml.newJob.recognize.results.savedAriaLabel",{defaultMessage:"Saved"}):u.i18n.translate("xpack.ml.newJob.recognize.results.saveFailedAriaLabel",{defaultMessage:"Save failed"})}):null))),(1===t.length||r{const{id:s,config:{description:o,groups:r},datafeedResult:l,setupResult:c}=e,p=t&&t.groups||r;return Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",gutterSize:"s",justifyContent:"spaceBetween",responsive:!1},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"s",color:"success"},i,s)),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiToolTip,{position:"right",content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.job.overrideJobConfigurationLabel",defaultMessage:"Override job configuration"})},Object(h.jsx)(d.EuiButtonIcon,{"aria-label":u.i18n.translate("xpack.ml.newJob.recognize.job.overrideJobConfigurationLabel",{defaultMessage:"Override job configuration"}),iconType:"pencil",onClick:()=>n(e)})))),Object(h.jsx)(d.EuiText,{size:"s",color:"subdued"},o),Object(h.jsx)(d.EuiFlexGroup,{wrap:!0,responsive:!1,gutterSize:"xs"},(null!=p?p:[]).map((e=>Object(h.jsx)(d.EuiFlexItem,{grow:!1,key:e},Object(h.jsx)(d.EuiBadge,{color:Object(Bi.a)(e)},e))))),c&&c.error&&Object(h.jsx)(d.EuiText,{size:"xs",color:"danger"},Object(ei.b)(c.error)),l&&l.error&&Object(h.jsx)(d.EuiText,{size:"xs",color:"danger"},Object(ei.b)(l.error))),Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{width:xd}},a&&Object(h.jsx)(d.EuiLoadingSpinner,{size:"m"}),c&&l&&Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"s",wrap:!1,responsive:!1,justifyContent:"spaceAround"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiIcon,{type:c.success?"check":"cross",color:c.success?"success":"danger",size:"m","aria-label":c.success?u.i18n.translate("xpack.ml.newJob.recognize.job.savedAriaLabel",{defaultMessage:"Saved"}):u.i18n.translate("xpack.ml.newJob.recognize.job.saveFailedAriaLabel",{defaultMessage:"Save failed"})})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiIcon,{type:l.success?"check":"cross",color:l.success?"success":"danger",size:"m","aria-label":c.success?u.i18n.translate("xpack.ml.newJob.recognize.datafeed.savedAriaLabel",{defaultMessage:"Saved"}):u.i18n.translate("xpack.ml.newJob.recognize.datafeed.saveFailedAriaLabel",{defaultMessage:"Save failed"})})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiIcon,{type:gd(l).type,color:gd(l).color,size:"m","aria-label":c.success?u.i18n.translate("xpack.ml.newJob.recognize.running.startedAriaLabel",{defaultMessage:"Started"}):u.i18n.translate("xpack.ml.newJob.recognize.running.startFailedAriaLabel",{defaultMessage:"Start failed"})})))))}));function gd({awaitingMlNodeAllocation:e,success:t}){return!0===e?{type:"warning",color:"warning"}:t?{type:"check",color:"success"}:{type:"cross",color:"danger"}}var hd=a(31);const jd=({job:e,jobOverride:t,existingGroupIds:a,onClose:i})=>{var s;const[o,r]=function(e){const[t,a]=Object(n.useState)(e);return[t,e=>{a({...t,...e})}]}({jobGroups:t&&t.groups||e.config.groups}),[l,c]=Object(n.useState)({}),u=Object(hd.a)((e=>Object(Gt.l)(e)?null:{pattern:!0}),Object(hd.c)(Vl.b));return Object(n.useEffect)((()=>{(()=>{var e;const t=(null!==(e=o.jobGroups)&&void 0!==e?e:[]).map((e=>u(e))).filter((e=>null!==e));c({jobGroups:t,formValid:0===t.length})})()}),[o.jobGroups]),Object(h.jsx)(d.EuiFlyout,{onClose:()=>i(null)},Object(h.jsx)(d.EuiFlyoutHeader,{hasBorder:!0},Object(h.jsx)(d.EuiTitle,{size:"m"},Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.overrideConfigurationHeader",defaultMessage:"Override configuration for {jobID}",values:{jobID:e.id}})))),Object(h.jsx)(d.EuiFlyoutBody,null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiForm,null,Object(h.jsx)(d.EuiFormRow,{fullWidth:!0},Object(h.jsx)(ys,{existingGroups:a,selectedGroups:null!==(s=o.jobGroups)&&void 0!==s?s:[],onChange:e=>{r({jobGroups:e})},validation:{valid:!l.jobGroups||0===l.jobGroups.length,message:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.jobGroupAllowedCharactersDescription",defaultMessage:"Job group names can contain lowercase alphanumeric (a-z and 0-9), hyphens or underscores; must start and end with an alphanumeric character"})}}))),Object(h.jsx)(d.EuiSpacer,null)),Object(h.jsx)(d.EuiFlyoutFooter,null,Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{iconType:"cross",onClick:()=>i(null),flush:"left"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.cancelJobOverrideLabel",defaultMessage:"Close"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:()=>(()=>{const t={job_id:e.id,groups:o.jobGroups};i(t)})(),fill:!0,disabled:!l.formValid},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.saveJobOverrideLabel",defaultMessage:"Save"}))))))},xd="200px",vd=({jobs:e,jobPrefix:t,jobOverrides:a,saveState:i,existingGroupIds:o,onJobOverridesChange:r})=>{const l=i===Od.SAVING,[c,u]=Object(n.useState)(null),p=e=>a[e.id],m=null!==c?Object(h.jsx)(jd,{job:c,jobOverride:p(c),onClose:e=>{u(null),null!==e&&r(e)},existingGroupIds:o}):null;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.jobsTitle",defaultMessage:"Jobs"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),i!==Od.SAVING&&i!==Od.NOT_SAVED&&Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"flexEnd",responsive:!1,gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,{style:{width:xd},grow:!1},Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceAround",responsive:!1,gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,{grow:1},Object(h.jsx)(d.EuiText,{size:"s",textAlign:"center"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.jobLabel",defaultMessage:"Job"}))),Object(h.jsx)(d.EuiFlexItem,{grow:1},Object(h.jsx)(d.EuiText,{size:"s",textAlign:"center"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.datafeedLabel",defaultMessage:"Datafeed"}))),Object(h.jsx)(d.EuiFlexItem,{grow:1},Object(h.jsx)(d.EuiText,{size:"s",textAlign:"center"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.runningLabel",defaultMessage:"Running"})))))),Object(h.jsx)("ul",null,e.map(((a,i)=>Object(h.jsx)("li",{key:a.id},Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(fd,{jobPrefix:t,job:a,jobOverride:p(a),isSaving:l,onEditRequest:()=>u(a)}))),i{const o=Object(ee.i)(),{from:r,to:l}=Object(ee.e)(o),{selectedDataView:c}=Yn(),p=Object(n.useMemo)((()=>Object(hd.a)(Object(hd.e)(/^([a-z0-9]+[a-z0-9\-_]*)?$/),Object(hd.c)(Vl.b-Math.max(...i.map((({id:e})=>e.length)))))),[i]),[m,b]=Object(n.useState)(""),[f,j]=Object(n.useState)(!0),[x,v]=Object(n.useState)(!0),[y,O]=Object(n.useState)({start:r,end:l}),[E,w]=Object(n.useState)(!1),[M,S]=Object(n.useState)({}),_=Object(n.useCallback)((()=>{const e=p(m);S({jobPrefix:e,formValid:!e})}),[m,p]);return Object(n.useEffect)((()=>{_(),t(m)}),[_,m,t]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiForm,null,Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.jobIdPrefixLabel",defaultMessage:"Job ID prefix"})),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.tooltips.newJobRecognizerJobPrefixTooltip",defaultMessage:"The prefix is added to the beginning of each job ID."})},Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.jobIdPrefixLabel",defaultMessage:"Job ID prefix"}),isInvalid:!!M.jobPrefix,error:Object(h.jsx)(s.a.Fragment,null,M.jobPrefix&&M.jobPrefix.maxLength?Object(h.jsx)("div",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.jobPrefixInvalidMaxLengthErrorMessage",defaultMessage:"Job ID prefix must be no more than {maxLength, plural, one {# character} other {# characters}} long.",values:{maxLength:M.jobPrefix.maxLength.requiredLength}})):null,M.jobPrefix&&M.jobPrefix.pattern&&Object(h.jsx)("div",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.jobLabelAllowedCharactersDescription",defaultMessage:"Job label can contain lowercase alphanumeric (a-z and 0-9), hyphens or underscores; must start and end with an alphanumeric character"})))},Object(h.jsx)(d.EuiFieldText,{name:"jobPrefix",value:m,onChange:({target:{value:e}})=>b(e),isInvalid:!!M.jobPrefix,"data-test-subj":"mlJobRecognizerWizardInputJobIdPrefix"}))),Object(h.jsx)(d.EuiSpacer,{size:"l"}),Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(d.EuiSwitch,{id:"startDataFeed",name:"startDataFeed",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.startDatafeedAfterSaveLabel",defaultMessage:"Start datafeed after save"}),checked:f,onChange:({target:{checked:e}})=>{j(e)}})),Object(h.jsx)(d.EuiFormRow,null,Object(h.jsx)(d.EuiSwitch,{id:"useFullData",name:"useFullData",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.useFullDataLabel",defaultMessage:"Use full {dataViewIndexPattern} data",values:{dataViewIndexPattern:c.getIndexPattern()}}),checked:x,onChange:({target:{checked:e}})=>{v(e)}})),!x&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(Os,{setTimeRange:O,timeRange:y})),Object(h.jsx)(d.EuiSpacer,{size:"l"}),Object(h.jsx)(d.EuiAccordion,{id:"advancedOptions","aria-label":u.i18n.translate("xpack.ml.newJob.recognize.advancedSettingsAriaLabel",{defaultMessage:"Advanced settings"}),buttonContent:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.advancedLabel",defaultMessage:"Advanced"}),paddingSize:"l","data-test-subj":"mlJobWizardToggleAdvancedSection"},Object(h.jsx)(d.EuiDescribedFormGroup,{title:Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.useDedicatedIndexLabel",defaultMessage:"Use dedicated index"})),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.tooltips.newJobDedicatedIndexTooltip",defaultMessage:"Store results in a separate index for this job."})},Object(h.jsx)(d.EuiFormRow,{describedByIds:["ml_aria_label_new_job_dedicated_index"],"data-test-subj":"mlJobWizardAdvancedSection"},Object(h.jsx)(d.EuiSwitch,{id:"useDedicatedIndex",name:"useDedicatedIndex",checked:E,onChange:({target:{checked:e}})=>{w(e)},label:u.i18n.translate("xpack.ml.newJob.recognize.useDedicatedIndexLabel",{defaultMessage:"Use dedicated index"})})))),Object(h.jsx)(d.EuiSpacer,{size:"l"})),Object(h.jsx)(d.EuiTextAlign,{textAlign:"right"},Object(h.jsx)(d.EuiButton,{fill:!0,type:"submit",isLoading:a===Od.SAVING,disabled:!M.formValid||a===Od.SAVING,onClick:()=>{e({jobPrefix:m,startDatafeedAfterSave:f,useFullIndexData:x,timeRange:y,useDedicatedIndex:E})},"aria-label":u.i18n.translate("xpack.ml.newJob.recognize.createJobButtonAriaLabel",{defaultMessage:"Create job"})},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.createJobButtonLabel",defaultMessage:"Create {numberOfJobs, plural, zero {job} one {job} other {jobs}}",values:{numberOfJobs:i.length}}))))};let Od;!function(e){e[e.NOT_SAVED=0]="NOT_SAVED",e[e.SAVING=1]="SAVING",e[e.SAVED=2]="SAVED",e[e.FAILED=3]="FAILED",e[e.PARTIAL_FAILURE=4]="PARTIAL_FAILURE"}(Od||(Od={}));const Ed=({moduleId:e,existingGroupIds:t})=>{var a;const{services:{notifications:i,mlServices:{mlApiServices:{getTimeFieldRange:o,setupDataRecognizerConfig:r,getDataRecognizerModule:l}}}}=Object(Te.d)(),c=Object(Te.g)(),[p,m]=Object(n.useState)(""),[b,f]=Object(n.useState)([]),[j,x]=Object(n.useState)({}),[v,y]=Object(n.useState)({}),[O,E]=Object(n.useState)(Od.NOT_SAVED),[w,M]=Object(n.useState)(""),[S,_]=Object(n.useState)(t),[T,C]=Object(n.useState)(0),{selectedSavedSearch:k,selectedDataView:F,combinedQuery:I}=Yn(),D=k?u.i18n.translate("xpack.ml.newJob.recognize.savedSearchPageTitle",{defaultMessage:"saved search {savedSearchTitle}",values:{savedSearchTitle:null!==(a=k.title)&&void 0!==a?a:""}}):u.i18n.translate("xpack.ml.newJob.recognize.dataViewPageTitle",{defaultMessage:"data view {dataViewName}",values:{dataViewName:F.getName()}}),A=null!==k,L=null===k?void 0:I,R=Object(n.useCallback)((async()=>{try{const t=await l({moduleId:e});f(t.jobs),E(Od.NOT_SAVED);const a=[...t.jobs.map((e=>e.config.groups||[]))].flat(),i=[...new Set([...S,...a])].sort();Object(Ue.isEqual)(i,S)||_(i)}catch(e){console.error(e)}}),[S,l,e]),N=Object(n.useCallback)((async(e,t)=>{if(e){const e=F.getComputedFields().runtimeFields,{start:t,end:a}=await o({index:F.getIndexPattern(),timeFieldName:F.timeFieldName,query:Object(ba.c)(I),...Object(et.a)(e)?{runtimeMappings:e}:{}});return{start:t,end:a}}return Promise.resolve(t)}),[I,F,o]);Object(n.useEffect)((()=>{R()}),[R]);const P=Object(n.useCallback)((async t=>{E(Od.SAVING);const{jobPrefix:a,startDatafeedAfterSave:n,useDedicatedIndex:s,useFullIndexData:o,timeRange:l}=t,d=await N(o,l);try{let t=Object.values(j);t=t.length>0?t:null;const i=await r({moduleId:e,prefix:a,query:L,indexPatternName:F.getIndexPattern(),useDedicatedIndex:s,startDatafeed:n,...null!==t?{jobOverrides:t}:{},...d}),{datafeeds:o,jobs:l,kibana:u}=i;if(f(b.map((e=>({...e,datafeedResult:o.find((({id:t})=>t.endsWith(e.id))),setupResult:l.find((({id:t})=>t===a+e.id))})))),y(Object(Ue.merge)(v,u)),c){const e=await c.getUrl({page:Fe.b.ANOMALY_EXPLORER,pageState:{jobIds:l.filter((({success:e})=>e)).map((({id:e})=>e)),timeRange:{from:bt()(d.start).format(ft.a),to:bt()(d.end).format(ft.a),mode:"absolute"}}});M(e)}const p=l.reduce(((e,{success:t})=>t?e:e+1),0),m=o.reduce(((e,{awaitingMlNodeAllocation:t})=>!0===t?e+1:e),0);C(m),E(0===p?Od.SAVED:p===b.length?Od.FAILED:Od.PARTIAL_FAILURE)}catch(t){E(Od.FAILED),console.error("Error setting up module",t);const{toasts:a}=i;a.addDanger({title:u.i18n.translate("xpack.ml.newJob.recognize.moduleSetupFailedWarningTitle",{defaultMessage:"Error setting up module {moduleId}",values:{moduleId:e}}),text:u.i18n.translate("xpack.ml.newJob.recognize.moduleSetupFailedWarningDescription",{defaultMessage:"An error occurred trying to create the {count, plural, one {job} other {jobs}} in the module.",values:{count:b.length}})})}}),[F,N,j,b,v,c,e,i,r,L]),z=[Od.NOT_SAVED,Od.SAVING].includes(O);return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.newJobFromTitle",defaultMessage:"New job from {pageTitle}",values:{pageTitle:D}})),A&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.searchWillBeOverwrittenLabel",defaultMessage:"Search will be overwritten"}),color:"warning",iconType:"warning"},Object(h.jsx)(d.EuiText,{size:"s"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.usingSavedSearchDescription",defaultMessage:"Using a saved search will mean the query used in the datafeeds will be different from the default ones we supply in the {moduleId} module.",values:{moduleId:e}}))),Object(h.jsx)(d.EuiSpacer,{size:"l"})),T>0&&Object(h.jsx)(pn.a,{jobCount:T}),Object(h.jsx)(d.EuiFlexGroup,{wrap:!0,gutterSize:"m","data-test-subj":"mlPageJobWizard recognizer"},Object(h.jsx)(d.EuiFlexItem,{grow:1},Object(h.jsx)(d.EuiPanel,{grow:!1,hasShadow:!1,hasBorder:!0},Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.newJob.recognize.jobSettingsTitle",defaultMessage:"Job settings"}))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),z&&Object(h.jsx)(yd,{onSubmit:P,onJobPrefixChange:m,saveState:O,jobs:b}),Object(h.jsx)(md,{saveState:O,resultsUrl:w,onReset:R}))),Object(h.jsx)(d.EuiFlexItem,{grow:2},Object(h.jsx)(d.EuiPanel,{grow:!1,hasShadow:!1,hasBorder:!0},Object(h.jsx)(vd,{jobs:b,jobPrefix:p,saveState:O,existingGroupIds:S,jobOverrides:j,onJobOverridesChange:e=>{if(x({...j,[e.job_id]:e}),void 0!==e.groups){const t=[...new Set([...S,...e.groups])];_(t)}}})),Object.keys(v).length>0&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiPanel,{grow:!1,hasShadow:!1,hasBorder:!0},Object.keys(v).map(((e,t)=>Object(h.jsx)(n.Fragment,{key:e},Object(h.jsx)(bd,{objectType:e,kibanaObjects:v[e],isSaving:O===Od.SAVING}),t({path:Object(Ee.c)(te.a.ANOMALY_DETECTION_CREATE_JOB_RECOGNIZER),render:(e,t)=>Object(h.jsx)(Sd,m()({},e,{deps:t})),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("ANOMALY_DETECTION_BREADCRUMB",e,t),Oe("CREATE_JOB_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.jobsBreadcrumbs.selectIndexOrSearchLabelRecognize",{defaultMessage:"Recognized index"}),href:""}]}),Md=()=>({path:Object(Ee.c)(te.a.ANOMALY_DETECTION_MODULES_VIEW_OR_CREATE),render:(e,t)=>Object(h.jsx)(_d,m()({},e,{deps:t})),breadcrumbs:[]}),Sd=({location:e})=>{const{id:t}=Object(qn.parse)(e.search,{sort:!1}),{context:a,results:i}=Ie("full",["canGetJobs"],{...Sn(),existingJobsAndGroups:Ge.a.getJobAndGroupIds});return Object(h.jsx)(Ee.b,{context:a},Object(h.jsx)(Hn,null,i?Object(h.jsx)(Ed,{moduleId:t,existingGroupIds:i.existingJobsAndGroups.groupIds}):null))},_d=({location:e})=>{const{services:{notifications:{toasts:t},mlServices:{mlApiServices:a}}}=Object(Te.d)(),{id:i,index:n}=Object(qn.parse)(e.search,{sort:!1}),{createLinkWithUserDefaults:s}=St(),o=Object(Te.h)();return Ie("full",["canCreateJob"],{checkViewOrCreateJobs:function(){return new Promise(((e,r)=>{a.dataRecognizerModuleJobsExist({moduleId:i}).then((async e=>{if(!0===e.jobsExist){const t=s("explorer",e.jobs);await o(t),r()}else await o(`/jobs/new_job/recognize?id=${i}&index=${n}`),r()})).catch((async e=>{console.error(`Error checking whether jobs in module ${i} exists`,e),t.addWarning({title:u.i18n.translate("xpack.ml.newJob.recognize.moduleCheckJobsExistWarningTitle",{defaultMessage:"Error checking module {moduleId}",values:{moduleId:i}}),text:u.i18n.translate("xpack.ml.newJob.recognize.moduleCheckJobsExistWarningDescription",{defaultMessage:"An error occurred trying to check whether the jobs in the module have been created."})}),await o("/jobs"),r()}))}))}}),null};var Td=a(270);const Cd=()=>({path:Object(Ee.c)(te.a.ANOMALY_DETECTION_CREATE_JOB_FROM_LENS),render:(e,t)=>Object(h.jsx)(kd,m()({},e,{deps:t})),breadcrumbs:[]}),kd=({location:e})=>{const{vis:t,from:a,to:i,query:n,filters:s,layerIndex:o}=Object(qn.parse)(e.search,{sort:!1}),{services:{data:{query:{timefilter:{timefilter:l}}},dashboard:c,uiSettings:d,mlServices:{mlApiServices:u},lens:p}}=Object(Te.d)(),{context:m}=Ie("full",["canCreateJob"],{redirect:()=>Object(Td.resolver)({lens:p,mlApiServices:u,timeFilter:l,kibanaConfig:d,dashboardService:c},t,a,i,n,s,o)});return Object(h.jsx)(Ee.b,{context:m},Object(h.jsx)(r.Redirect,{to:Object(Ee.c)(te.a.ANOMALY_DETECTION_CREATE_JOB)}))};var Fd=a(216);const Id=()=>({path:Object(Ee.c)(te.a.ANOMALY_DETECTION_CREATE_JOB_FROM_MAP),render:(e,t)=>Object(h.jsx)(Dd,m()({},e,{deps:t})),breadcrumbs:[]}),Dd=({location:e})=>{const{dashboard:t,dataViewId:a,embeddable:i,geoField:n,splitField:s,from:o,to:l,layer:c}=Object(qn.parse)(e.search,{sort:!1}),{services:{data:{query:{timefilter:{timefilter:d}}},dashboard:u,uiSettings:p,mlServices:{mlApiServices:m}}}=Object(Te.d)(),{context:b}=Ie("full",["canCreateJob"],{redirect:()=>Object(Fd.resolver)({mlApiServices:m,timeFilter:d,kibanaConfig:p,dashboardService:u},t,a,i,n,s,o,l,c)});return Object(h.jsx)(Ee.b,{context:b},Object(h.jsx)(r.Redirect,{to:Object(Ee.c)(te.a.ANOMALY_DETECTION_CREATE_JOB)}))};var Ad=a(172);const Ld=()=>{Object(ee.i)({timeRangeSelector:!1,autoRefreshSelector:!1});const{services:{licenseManagement:e,http:{basePath:t},docLinks:a,dataVisualizer:i}}=Object(Te.d)(),o=a.links.ml.guide,r=Object(Te.h)(),l=void 0!==e&&!0===e.enabled&&!1===Object(Ad.b)();if(void 0===i)return console.error("File data visualizer plugin not available"),null;const c=i.getMaxBytesFormatted();return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)("div",{"data-test-subj":"mlPageDataVisualizerSelector"},Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.datavisualizer.selector.dataVisualizerTitle",defaultMessage:"Data Visualizer"})),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{color:"subdued"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.datavisualizer.selector.dataVisualizerDescription",defaultMessage:"The Machine Learning Data Visualizer tool helps you understand your data, by analyzing the metrics and fields in a log file or an existing Elasticsearch index."})))),Object(h.jsx)(d.EuiSpacer,{size:"xl"}),Object(h.jsx)(d.EuiFlexGrid,{gutterSize:"xl",columns:2,style:{maxWidth:"1000px"}},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiCard,{hasBorder:!0,icon:Object(h.jsx)(d.EuiIcon,{size:"xxl",type:"addDataApp"}),title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.datavisualizer.selector.importDataTitle",defaultMessage:"Visualize data from a file"}),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.datavisualizer.selector.importDataDescription",defaultMessage:"Import data from a log file. You can upload files up to {maxFileSize}.",values:{maxFileSize:c}}),footer:Object(h.jsx)(d.EuiButton,{target:"_self",onClick:()=>r("/filedatavisualizer"),"data-test-subj":"mlDataVisualizerUploadFileButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.datavisualizer.selector.uploadFileButtonLabel",defaultMessage:"Select file"})),"data-test-subj":"mlDataVisualizerCardImportData"})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiCard,{hasBorder:!0,icon:Object(h.jsx)(d.EuiIcon,{size:"xxl",type:"dataVisualizer"}),title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.datavisualizer.selector.selectDataViewTitle",defaultMessage:"Visualize data from a data view"}),description:"",footer:Object(h.jsx)(d.EuiButton,{target:"_self",onClick:()=>r("/datavisualizer_index_select"),"data-test-subj":"mlDataVisualizerSelectIndexButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.datavisualizer.selector.selectDataViewButtonLabel",defaultMessage:"Select data view"})),"data-test-subj":"mlDataVisualizerCardIndexData"}))),!0===l&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"xxl"}),Object(h.jsx)(d.EuiSpacer,{size:"xxl"}),Object(h.jsx)(d.EuiFlexGrid,{gutterSize:"xl",columns:2,style:{maxWidth:"1000px"}},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiCard,{hasBorder:!0,title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.datavisualizer.selector.startTrialTitle",defaultMessage:"Start trial"}),description:Object(h.jsx)("span",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.datavisualizer.startTrial.fullMLFeaturesDescription",defaultMessage:"To experience the full Machine Learning features that a {subscriptionsLink} offers, start a 30-day trial.",values:{subscriptionsLink:Object(h.jsx)(d.EuiLink,{href:"https://www.elastic.co/subscriptions",target:"_blank"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.datavisualizer.startTrial.subscriptionsLinkText",defaultMessage:"Platinum or Enterprise subscription"}))}})),footer:Object(h.jsx)(d.EuiButton,{target:"_blank",href:`${t.get()}/app/management/stack/license_management/home`,"data-test-subj":"mlDataVisualizerStartTrialButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.datavisualizer.selector.startTrialButtonLabel",defaultMessage:"Start trial"})),"data-test-subj":"mlDataVisualizerCardStartTrial"}))))),Object(h.jsx)(_e.a,{docLink:o}))},Rd=(e,t)=>({id:"datavisualizer",path:Object(Ee.c)(te.a.DATA_VISUALIZER),title:u.i18n.translate("xpack.ml.dataVisualizer.docTitle",{defaultMessage:"Data Visualizer"}),render:()=>Object(h.jsx)(Nd,null),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("DATA_VISUALIZER_BREADCRUMB")]}),Nd=()=>{const{context:e}=Ie("basic",["canFindFileStructure"]);return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(Ld,null))},Pd=()=>{Object(ee.i)({timeRangeSelector:!1,autoRefreshSelector:!1});const{services:{docLinks:e,dataVisualizer:t,data:{dataViews:{get:a}},mlServices:{mlApiServices:{recognizeIndex:i}}}}=Object(Te.d)(),o=Object(Te.g)(),r=!Object(Ad.b)();Object(vt.b)();const[l,c]=Object(n.useState)(null);Object(n.useEffect)((()=>{if(void 0!==t){const{getIndexDataVisualizerComponent:e}=t;e().then(c)}}),[]);const d=async({dataViewId:e,dataViewTitle:t,globalState:i})=>[{id:"create_ml_ad_job",title:u.i18n.translate("xpack.ml.indexDatavisualizer.actionsPanel.anomalyDetectionTitle",{defaultMessage:"Advanced anomaly detection"}),description:u.i18n.translate("xpack.ml.indexDatavisualizer.actionsPanel.anomalyDetectionDescription",{defaultMessage:"Create a job with the full range of options for more advanced use cases."}),icon:"createAdvancedJob",type:"file",getUrl:async()=>await o.getUrl({page:Fe.b.ANOMALY_DETECTION_CREATE_JOB_ADVANCED,pageState:{index:e,globalState:i}}),canDisplay:async()=>{try{const{timeFieldName:t}=await a(e);return Object(Ad.b)()&&void 0!==t&&Object(Se.d)("canCreateJob")&&Object(vt.e)()}catch(e){return!1}},"data-test-subj":"dataVisualizerCreateAdvancedJobCard"},{id:"create_ml_dfa_job",title:u.i18n.translate("xpack.ml.indexDatavisualizer.actionsPanel.dataframeTitle",{defaultMessage:"Data frame analytics"}),description:u.i18n.translate("xpack.ml.indexDatavisualizer.actionsPanel.dataframeDescription",{defaultMessage:"Create outlier detection, regression, or classification analytics."}),icon:"classificationJob",type:"file",getUrl:async()=>await o.getUrl({page:Fe.b.DATA_FRAME_ANALYTICS_CREATE_JOB,pageState:{index:e,globalState:i}}),canDisplay:async()=>Object(Ad.b)()&&Object(Se.d)("canCreateDataFrameAnalytics")&&Object(vt.e)(),"data-test-subj":"dataVisualizerCreateDataFrameAnalyticsCard"}],p=async e=>{const{dataViewId:t,dataViewTitle:n}=e;try{const e=await i({indexPatternTitle:n});return null==e?void 0:e.map((e=>{var i,n;return{id:e.id,title:e.title,description:e.description,icon:null!==(i=null===(n=e.logo)||void 0===n?void 0:n.icon)&&void 0!==i?i:"",type:"index",getUrl:async()=>await o.getUrl({page:Fe.b.ANOMALY_DETECTION_CREATE_JOB_RECOGNIZER,pageState:{id:e.id,index:t}}),canDisplay:async()=>{try{const{timeFieldName:e}=await a(t);return Object(Ad.b)()&&void 0!==e&&Object(Se.d)("canCreateJob")&&Object(vt.e)()}catch(e){return!1}},"data-test-subj":e.id}}))}catch(e){return console.error("Platinum, Enterprise or trial license needed"),[]}},m=Object(n.useMemo)((()=>r?[]:[p,d]),[o,r]);return l?Object(h.jsx)(n.Fragment,null,null!==l?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataVisualizer.pageHeader",defaultMessage:"Data Visualizer"})),Object(h.jsx)(l,{getAdditionalLinks:m})):null,Object(h.jsx)(_e.a,{docLink:e.links.ml.guide})):Object(h.jsx)(n.Fragment,null)},zd=(e,t)=>({id:"data_view_datavisualizer",path:Object(Ee.c)(te.a.DATA_VISUALIZER_INDEX_VIEWER),title:u.i18n.translate("xpack.ml.dataVisualizer.dataView.docTitle",{defaultMessage:"Index Data Visualizer"}),render:()=>Object(h.jsx)(Bd,null),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("DATA_VISUALIZER_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.dataFrameAnalyticsBreadcrumbs.dataViewLabel",{defaultMessage:"Data View"})}]}),Bd=()=>{const{context:e}=Ie("basic",[]);return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(Hn,null,Object(h.jsx)(Pd,null)))},Vd=()=>{Object(ee.i)({timeRangeSelector:!1,autoRefreshSelector:!1});const{services:{docLinks:e,dataVisualizer:t,data:{dataViews:{get:a}}}}=Object(Te.d)(),i=Object(Te.g)();Object(vt.b)();const[o,r]=Object(n.useState)(null),l=Object(n.useMemo)((()=>[async({dataViewId:e,globalState:t})=>[{id:"create_ml_job",title:u.i18n.translate("xpack.ml.fileDatavisualizer.actionsPanel.anomalyDetectionTitle",{defaultMessage:"Create ML job"}),description:"",icon:"machineLearningApp",type:"file",getUrl:async()=>await i.getUrl({page:Fe.b.ANOMALY_DETECTION_CREATE_JOB_SELECT_TYPE,pageState:{index:e,globalState:t}}),canDisplay:async()=>{try{const{timeFieldName:t}=await a(e);return Object(Ad.b)()&&void 0!==t&&Object(Se.d)("canCreateJob")&&Object(vt.e)()}catch(e){return!1}}},{id:"open_in_data_viz",title:u.i18n.translate("xpack.ml.fileDatavisualizer.actionsPanel.dataframeTitle",{defaultMessage:"Open in Data Visualizer"}),description:"",icon:"dataVisualizer",type:"file",getUrl:async()=>await i.getUrl({page:Fe.b.DATA_VISUALIZER_INDEX_VIEWER,pageState:{index:e,globalState:t}}),canDisplay:async()=>""!==e}]]),[i]);return Object(n.useEffect)((()=>{if(void 0!==t){Object(vt.b)();const{getFileDataVisualizerComponent:e}=t;e().then(r)}}),[]),Object(h.jsx)(n.Fragment,null,null!==o?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataVisualizer.pageHeader",defaultMessage:"Data Visualizer"})),Object(h.jsx)(o,{getAdditionalLinks:l})):null,Object(h.jsx)(_e.a,{docLink:e.links.ml.guide}))},Jd=(e,t)=>({id:"filedatavisualizer",path:Object(Ee.c)(te.a.DATA_VISUALIZER_FILE),title:u.i18n.translate("xpack.ml.dataVisualizer.file.docTitle",{defaultMessage:"File Data Visualizer"}),render:()=>Object(h.jsx)(Ud,null),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("DATA_VISUALIZER_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.dataVisualizer.fileBasedLabel",{defaultMessage:"File"})}]}),Ud=()=>{const{context:e}=Ie("basic",["canFindFileStructure"]);return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(Vd,null))},Gd=Object(n.createContext)({canGetFilters:!1,canCreateFilter:!1,canGetCalendars:!1,canCreateCalendar:!1}),qd=()=>{const[e,t]=Object(n.useState)(0),[a,i]=Object(n.useState)(0),{canGetFilters:s,canCreateFilter:o,canGetCalendars:r,canCreateCalendar:l}=Object(n.useContext)(Gd),{toasts:c}=Object(Te.i)(),p=Object(rn.a)(Fe.b.CALENDARS_MANAGE),m=Object(rn.a)(Fe.b.CALENDARS_NEW),b=Object(rn.a)(Fe.b.FILTER_LISTS_MANAGE),f=Object(rn.a)(Fe.b.FILTER_LISTS_NEW);return Object(n.useEffect)((()=>{!async function(){if(!0===r)try{const e=await Je.ml.calendars();t(e.length)}catch(e){c.addDanger(u.i18n.translate("xpack.ml.settings.anomalyDetection.loadingCalendarsCountErrorMessage",{defaultMessage:"An error occurred obtaining the count of calendars"}))}if(!0===s)try{const e=await Je.ml.filters.filtersStats();i(e.length)}catch(e){c.addDanger(u.i18n.translate("xpack.ml.settings.anomalyDetection.loadingFilterListCountErrorMessage",{defaultMessage:"An error occurred obtaining the count of filter lists"}))}}()}),[]),Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiPageContentHeader_Deprecated,null,Object(h.jsx)(d.EuiTitle,null,Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.anomalyDetection.anomalyDetectionTitle",defaultMessage:"Anomaly Detection"})))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,{grow:5},Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h3",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.anomalyDetection.calendarsTitle",defaultMessage:"Calendars"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiText,{size:"s"},Object(h.jsx)(d.EuiTextColor,{color:"subdued"},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.anomalyDetection.calendarsText",defaultMessage:"Calendars contain a list of scheduled events for which you do not want to generate anomalies, such as planned system outages or public holidays."})))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center"},r&&Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{display:"block"}},Object(h.jsx)(d.EuiText,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.anomalyDetection.calendarsSummaryCount",defaultMessage:"You have {calendarsCountBadge} {calendarsCount, plural, one {calendar} other {calendars}}",values:{calendarsCountBadge:Object(h.jsx)(d.EuiBadge,null,e),calendarsCount:e}}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{"data-test-subj":"mlCalendarsMngButton",flush:"left",color:"primary",onClick:p,isDisabled:!1===r},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.anomalyDetection.manageCalendarsLink",defaultMessage:"Manage"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{"data-test-subj":"mlCalendarsCreateButton",flush:"left",color:"primary",onClick:m,isDisabled:!1===l},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.anomalyDetection.createCalendarLink",defaultMessage:"Create"}))))),Object(h.jsx)(d.EuiFlexItem,{grow:5},Object(h.jsx)(d.EuiTitle,{size:"s"},Object(h.jsx)("h3",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.anomalyDetection.filterListsTitle",defaultMessage:"Filter Lists"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiText,{size:"s"},Object(h.jsx)(d.EuiTextColor,{color:"subdued"},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.anomalyDetection.filterListsText",defaultMessage:"Filter lists contain values that you can use to include or exclude events from the machine learning analysis."})))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center"},s&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.anomalyDetection.filterListsSummaryCount",defaultMessage:"You have {filterListsCountBadge} {filterListsCount, plural, one {filter list} other {filter lists}}",values:{filterListsCountBadge:Object(h.jsx)(d.EuiBadge,null,a),filterListsCount:a}}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{"data-test-subj":"mlFilterListsMngButton",flush:"left",color:"primary",onClick:b,isDisabled:!1===s},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.anomalyDetection.manageFilterListsLink",defaultMessage:"Manage"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{"data-test-subj":"mlFilterListsCreateButton",color:"primary",onClick:f,isDisabled:!1===o},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.anomalyDetection.createFilterListsLink",defaultMessage:"Create"})))))))},$d=()=>{const{services:{docLinks:e}}=Object(Te.d)(),t=e.links.ml.guide;return Object(h.jsx)(n.Fragment,null,Object(h.jsx)("div",{"data-test-subj":"mlPageSettings"},Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.title",defaultMessage:"Settings"})),Object(h.jsx)(qd,null)),Object(h.jsx)(_e.a,{docLink:t}))},Wd=(e,t)=>({id:"settings",path:Object(Ee.c)(te.a.SETTINGS),title:u.i18n.translate("xpack.ml.settings.docTitle",{defaultMessage:"Settings"}),render:()=>Object(h.jsx)(Hd,null),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("ANOMALY_DETECTION_BREADCRUMB",e,t),Oe("SETTINGS_BREADCRUMB")]}),Hd=()=>{const{context:e}=Ie("full",["canGetJobs"],{getMlNodeCount:vt.b});Object(ee.i)({timeRangeSelector:!1,autoRefreshSelector:!1});const[t,a,i,n]=Object(Se.f)(["canGetFilters","canCreateFilter","canGetCalendars","canCreateCalendar"]);return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(Gd.Provider,{value:{canGetFilters:t,canCreateFilter:a,canGetCalendars:i,canCreateCalendar:n}},Object(h.jsx)($d,null)))};function Yd(){return Math.random().toString(36).substr(2,9)}function Xd({onClick:e,testSubj:t,disabled:a}){return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiButtonEmpty,{size:"xs",color:"danger",onClick:e,isDisabled:a,"data-test-subj":t},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.eventsTable.deleteButtonLabel",defaultMessage:"Delete"})))}const Qd=({canCreateCalendar:e,canDeleteCalendar:t,eventsList:a,onDeleteClick:i,showSearchBar:s,showImportModal:o,showNewEventModal:r,loading:l,saving:c})=>{const p=[{field:"description",name:u.i18n.translate("xpack.ml.calendarsEdit.eventsTable.descriptionColumnName",{defaultMessage:"Description"}),sortable:!0,truncateText:!0,scope:"row"},{field:"start_time",name:u.i18n.translate("xpack.ml.calendarsEdit.eventsTable.startColumnName",{defaultMessage:"Start"}),sortable:!0,render:e=>bt()(e).format(ft.a)},{field:"end_time",name:u.i18n.translate("xpack.ml.calendarsEdit.eventsTable.endColumnName",{defaultMessage:"End"}),sortable:!0,render:e=>bt()(e).format(ft.a)},{field:"",name:"",render:e=>Object(h.jsx)(Xd,{testSubj:"mlCalendarEventDeleteButton",disabled:!1===t||!0===c||!0===l,onClick:()=>{i(e.event_id)}})}],m={toolsRight:[Object(h.jsx)(d.EuiButton,{isDisabled:!1===e||!0===c||!0===l,key:"ml_new_event","data-test-subj":"mlCalendarNewEventButton",size:"s",iconType:"plusInCircle",onClick:r},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.eventsTable.newEventButtonLabel",defaultMessage:"New event"})),Object(h.jsx)(d.EuiButton,{isDisabled:!1===e||!0===c||!0===l,key:"ml_import_event","data-test-subj":"mlCalendarImportEventsButton",size:"s",iconType:"importAction",onClick:o},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.eventsTable.importEventsButtonLabel",defaultMessage:"Import events"}))],box:{incremental:!0},filters:[]};return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiInMemoryTable,{items:a,itemId:"event_id",columns:p,pagination:{initialPageSize:5,pageSizeOptions:[5,10]},sorting:{sort:{field:"description",direction:"asc"}},search:s?m:void 0,"data-test-subj":"mlCalendarEventsTable",rowProps:e=>({"data-test-subj":`mlCalendarEventListRow row-${e.description}`})}))};function Kd({calendarId:e,description:t}){return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)("span",{"data-test-subj":"mlCalendarTitle"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.calendarForm.calendarTitle",defaultMessage:"Calendar {calendarId}",values:{calendarId:e}}))),t?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiText,{"data-test-subj":"mlCalendarDescriptionText"},Object(h.jsx)("p",null,t)),Object(h.jsx)(d.EuiSpacer,{size:"l"})):null)}Qd.defaultProps={showSearchBar:!1,canCreateCalendar:!0,canDeleteCalendar:!0};const Zd=({calendarId:e,canCreateCalendar:t,canDeleteCalendar:a,description:i,eventsList:o,groupIds:r,isEdit:l,isNewCalendarIdValid:c,jobIds:p,onCalendarIdChange:m,onCreate:b,onCreateGroupOption:f,onDescriptionChange:j,onEdit:x,onEventDelete:v,onGroupSelection:y,showImportModal:O,onJobSelection:E,saving:w,loading:M,selectedGroupOptions:S,selectedJobOptions:_,showNewEventModal:T,isGlobalCalendar:C,onGlobalCalendarChange:k})=>{const F=u.i18n.translate("xpack.ml.calendarsEdit.calendarForm.allowedCharactersDescription",{defaultMessage:"Use lowercase alphanumerics (a-z and 0-9), hyphens or underscores; must start and end with an alphanumeric character"}),I=!0!==c||l?void 0:F,D=!1!==c||l?void 0:[F],A=!1===t||w||!c||""===e||!0===M,L=Object(rn.a)(Fe.b.CALENDARS_MANAGE);return Object(h.jsx)(d.EuiForm,{"data-test-subj":"mlCalendarForm"+(!0===l?"Edit":"New")},!0===l?Object(h.jsx)(Kd,{calendarId:e,description:i}):Object(h.jsx)(n.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.calendarForm.createCalendarTitle",defaultMessage:"Create new calendar"})),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.calendarForm.calendarIdLabel",defaultMessage:"Calendar ID"}),helpText:I,error:D,isInvalid:!c},Object(h.jsx)(d.EuiFieldText,{name:"calendarId",value:e,onChange:m,disabled:!0===l||!0===w||!0===M,"data-test-subj":"mlCalendarIdInput"})),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.calendarForm.descriptionLabel",defaultMessage:"Description"})},Object(h.jsx)(d.EuiFieldText,{name:"description",value:i,onChange:j,disabled:!0===l||!0===w||!0===M,"data-test-subj":"mlCalendarDescriptionInput"})),Object(h.jsx)(d.EuiSpacer,{size:"m"})),Object(h.jsx)(d.EuiSwitch,{name:"switch",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.calendarForm.allJobsLabel",defaultMessage:"Apply calendar to all jobs"}),checked:C,onChange:k,disabled:!0===w||!1===t||!0===M,"data-test-subj":"mlCalendarApplyToAllJobsSwitch"}),!1===C&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.calendarForm.jobsLabel",defaultMessage:"Jobs"})},Object(h.jsx)(d.EuiComboBox,{options:p,selectedOptions:_,onChange:E,isDisabled:!0===w||!1===t||!0===M,"data-test-subj":"mlCalendarJobSelection"})),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.calendarForm.groupsLabel",defaultMessage:"Groups"})},Object(h.jsx)(d.EuiComboBox,{onCreateOption:f,options:r,selectedOptions:S,onChange:y,isDisabled:!0===w||!1===t||!0===M,"data-test-subj":"mlCalendarJobGroupSelection"}))),Object(h.jsx)(d.EuiSpacer,{size:"xl"}),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.calendarForm.eventsLabel",defaultMessage:"Events"}),fullWidth:!0},Object(h.jsx)(Qd,{canCreateCalendar:t,canDeleteCalendar:a,eventsList:o,onDeleteClick:v,showImportModal:O,showNewEventModal:T,loading:M,saving:w,showSearchBar:!0})),Object(h.jsx)(d.EuiSpacer,{size:"l"}),Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"flexEnd"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{isDisabled:w,onClick:L},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.calendarForm.cancelButtonLabel",defaultMessage:"Cancel"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{"data-test-subj":"mlSaveCalendarButton",fill:!0,onClick:l?x:b,isDisabled:A},w?Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.calendarForm.savingButtonLabel",defaultMessage:"Saving…"}):Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.calendarForm.saveButtonLabel",defaultMessage:"Save"})))))};class new_event_modal_NewEventModal extends n.Component{constructor(e){super(e),Ve()(this,"onDescriptionChange",(e=>{this.setState({description:e.target.value})})),Ve()(this,"handleAddEvent",(()=>{const{description:e,startDate:t,endDate:a}=this.state,i=Yd(),n={description:e,start_time:t.valueOf(),end_time:a.valueOf(),event_id:i};this.props.addEvent(n)})),Ve()(this,"handleChangeStart",(e=>{let t=null,a=this.state.endDate;const i=bt()(e),n=bt()(e);t=i.startOf("day"),t>a&&(a=n.startOf("day").add(1,"days")),this.setState({startDate:t,endDate:a,startDateString:t.format(ft.a),endDateString:a.format(ft.a)})})),Ve()(this,"handleChangeEnd",(e=>{let t=this.state.startDate,a=null;const i=bt()(e);a=bt()(e).startOf("day"),t>a&&(t=i.startOf("day").subtract(1,"days")),this.setState({startDate:t,endDate:a,startDateString:t.format(ft.a),endDateString:a.format(ft.a)})})),Ve()(this,"handleTimeStartChange",(e=>{const t=e.target.value;let a=!1;19===t.length?a=bt()(t).isValid(ft.a,!0):this.setState({startDateString:t}),a&&this.setState({startDateString:t,startDate:bt()(t)})})),Ve()(this,"handleTimeEndChange",(e=>{const t=e.target.value;let a=!1;19===t.length?a=bt()(t).isValid(ft.a,!0):this.setState({endDateString:t}),a&&this.setState({endDateString:t,endDate:bt()(t)})})),Ve()(this,"renderRangedDatePicker",(()=>{const{startDate:e,endDate:t,startDateString:a,endDateString:i}=this.state,s=Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.newEventModal.fromLabel",defaultMessage:"From:"}),helpText:ft.a},Object(h.jsx)(d.EuiFieldText,{name:"startTime",onChange:this.handleTimeStartChange,placeholder:ft.a,value:a}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.newEventModal.toLabel",defaultMessage:"To:"}),helpText:ft.a},Object(h.jsx)(d.EuiFieldText,{name:"endTime",onChange:this.handleTimeEndChange,placeholder:ft.a,value:i})))));return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"s"}),s,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFormRow,{fullWidth:!0},Object(h.jsx)(d.EuiDatePickerRange,{inline:!0,css:Object(h.css)("@media (min-width: ",553,"px){inline-size:",553,"px;max-inline-size:100%;}",""),startDateControl:Object(h.jsx)(d.EuiDatePicker,{selected:e,onChange:this.handleChangeStart,startDate:e,endDate:t,isInvalid:e>t,"aria-label":u.i18n.translate("xpack.ml.calendarsEdit.newEventModal.startDateAriaLabel",{defaultMessage:"Start date"}),timeFormat:ft.a,dateFormat:ft.a}),endDateControl:Object(h.jsx)(d.EuiDatePicker,{selected:t,onChange:this.handleChangeEnd,startDate:e,endDate:t,isInvalid:e>t,"aria-label":u.i18n.translate("xpack.ml.calendarsEdit.newEventModal.endDateAriaLabel",{defaultMessage:"End date"}),timeFormat:ft.a,dateFormat:ft.a})})))}));const t=bt()().startOf("day"),a=bt()().startOf("day").add(1,"days");this.state={startDate:t,endDate:a,description:"",startDateString:t.format(ft.a),endDateString:a.format(ft.a)}}render(){const{closeModal:e}=this.props,{description:t}=this.state;return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiModal,{onClose:e,initialFocus:"[name=eventDescription]",maxWidth:!1,"data-test-subj":"mlCalendarEventForm"},Object(h.jsx)(d.EuiModalHeader,null,Object(h.jsx)(d.EuiModalHeaderTitle,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.newEventModal.createNewEventTitle",defaultMessage:"Create new event"}))),Object(h.jsx)(d.EuiModalBody,null,Object(h.jsx)(d.EuiForm,null,Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.newEventModal.descriptionLabel",defaultMessage:"Description"}),fullWidth:!0},Object(h.jsx)(d.EuiFieldText,{name:"eventDescription",onChange:this.onDescriptionChange,isInvalid:!t,fullWidth:!0,"data-test-subj":"mlCalendarEventDescriptionInput"})),Object(h.jsx)(d.EuiSpacer,{size:"m"}),this.renderRangedDatePicker())),Object(h.jsx)(d.EuiModalFooter,null,Object(h.jsx)(d.EuiButtonEmpty,{onClick:e,"data-test-subj":"mlCalendarCancelEventButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.newEventModal.cancelButtonLabel",defaultMessage:"Cancel"})),Object(h.jsx)(d.EuiButton,{onClick:this.handleAddEvent,fill:!0,disabled:!t,"data-test-subj":"mlCalendarAddEventButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.newEventModal.addButtonLabel",defaultMessage:"Add"})))))}}function eu({events:e,showRecurringWarning:t,includePastEvents:a,onCheckboxToggle:i,onEventDelete:s}){return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiText,null,Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.importedEvents.eventsToImportTitle",defaultMessage:"Events to import: {eventsCount}",values:{eventsCount:e.length}})),t&&Object(h.jsx)(d.EuiText,{color:"danger"},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.importedEvents.recurringEventsNotSupportedDescription",defaultMessage:"Recurring events not supported. Only the first event will be imported."}))))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Qd,{eventsList:e,onDeleteClick:s})),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiCheckbox,{id:"ml-include-past-events",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.importedEvents.includePastEventsLabel",defaultMessage:"Include past events"}),checked:a,onChange:i})))}var tu=a(292),au=a.n(tu);function iu(e){const t=bt()().valueOf();return e.filter((e=>e.start_time>t))}class import_modal_ImportModal extends n.Component{constructor(e){super(e),Ve()(this,"handleImport",(async e=>{const t=e[0],a=u.i18n.translate("xpack.ml.calendarsEdit.importModal.couldNotParseICSFileErrorMessage",{defaultMessage:"Could not parse ICS file."});let i=[];if(t&&t.size<=1e8){this.setState({fileLoading:!0,fileLoaded:!0});try{n=(await(s=t,new Promise(((e,t)=>{if(s&&s.size){const a=new FileReader;a.readAsText(s),a.onload=()=>{const i=a.result;""===i?t():e({data:i})}}else t()})))).data,i=function(e){const t=e.events(),a=[];return t.forEach((e=>{if("VEVENT"===e.element){const t=e.properties.SUMMARY,i=e.properties.DTSTART,n=e.properties.DTEND,s=void 0!==e.properties.RRULE;if(t&&i&&n&&t.length&&i.length&&n.length){const e=Yd();a.push({event_id:e,description:t[0].value,start_time:i[0].value.valueOf(),end_time:n[0].value.valueOf(),asterisk:s})}}})),a}(au.a.parse_calendar(n+"\n")),this.setState({allImportedEvents:i,selectedEvents:iu(i),fileLoading:!1,errorMessage:null,includePastEvents:!1})}catch(e){console.log(a,e),this.setState({errorMessage:a,fileLoading:!1})}}else t&&t.size>1e8?this.setState({fileLoading:!1,errorMessage:a}):this.setState({fileLoading:!1,errorMessage:null});var n,s})),Ve()(this,"onEventDelete",(e=>{this.setState((t=>({allImportedEvents:t.allImportedEvents.filter((t=>t.event_id!==e)),selectedEvents:t.selectedEvents.filter((t=>t.event_id!==e))})))})),Ve()(this,"onCheckboxToggle",(e=>{this.setState({includePastEvents:e.target.checked})})),Ve()(this,"handleEventsAdd",(()=>{const{allImportedEvents:e,selectedEvents:t,includePastEvents:a}=this.state,i=(a?e:t).map((e=>({description:e.description,start_time:e.start_time,end_time:e.end_time,event_id:e.event_id})));this.props.addImportedEvents(i)})),Ve()(this,"renderCallout",(()=>Object(h.jsx)(d.EuiCallOut,{color:"danger"},Object(h.jsx)("p",null,this.state.errorMessage)))),this.state={includePastEvents:!1,allImportedEvents:[],selectedEvents:[],fileLoading:!1,fileLoaded:!1,errorMessage:null}}render(){const{closeImportModal:e}=this.props,{fileLoading:t,fileLoaded:a,allImportedEvents:i,selectedEvents:s,errorMessage:o,includePastEvents:r}=this.state;let l,c=!1;return l=r?i:s,void 0!==l.find((e=>e.asterisk))&&(c=!0),Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiModal,{onClose:e,maxWidth:!0},Object(h.jsx)(d.EuiModalHeader,null,Object(h.jsx)(d.EuiFlexGroup,{direction:"column",gutterSize:"none"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiModalHeaderTitle,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.eventsTable.importEventsTitle",defaultMessage:"Import events"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.eventsTable.importEventsDescription",defaultMessage:"Import events from an ICS file."}))))),Object(h.jsx)(d.EuiModalBody,null,Object(h.jsx)(d.EuiFlexGroup,{direction:"column"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFilePicker,{compressed:!0,initialPromptText:u.i18n.translate("xpack.ml.calendarsEdit.importModal.selectOrDragAndDropFilePromptText",{defaultMessage:"Select or drag and drop a file"}),onChange:this.handleImport,disabled:t})),null!==o&&this.renderCallout(),i.length>0&&Object(h.jsx)(eu,{events:l,showRecurringWarning:c,includePastEvents:r,onCheckboxToggle:this.onCheckboxToggle,onEventDelete:this.onEventDelete}))),Object(h.jsx)(d.EuiModalFooter,null,Object(h.jsx)(d.EuiButtonEmpty,{onClick:e},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.eventsTable.cancelButtonLabel",defaultMessage:"Cancel"})),Object(h.jsx)(d.EuiButton,{onClick:this.handleEventsAdd,fill:!0,disabled:!1===a||null!==o},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsEdit.eventsTable.importButtonLabel",defaultMessage:"Import"})))))}}class new_calendar_NewCalendarUI extends n.Component{constructor(e){super(e),Ve()(this,"returnToCalendarsManagementPage",(async()=>{const{services:{http:{basePath:e},application:{navigateToUrl:t}}}=this.props.kibana;await t(`${e.get()}/app/ml/${Fe.b.CALENDARS_MANAGE}`,!0)})),Ve()(this,"isDuplicateId",(()=>{const{calendars:e,formCalendarId:t}=this.state;for(let a=0;a{const{formCalendarId:e}=this.state;if(this.isDuplicateId()){const{toasts:t}=this.props.kibana.services.notifications;t.addDanger(u.i18n.translate("xpack.ml.calendarsEdit.canNotCreateCalendarWithExistingIdErrorMessag",{defaultMessage:"Cannot create calendar with id [{formCalendarId}] as it already exists.",values:{formCalendarId:e}}))}else{const e=this.setUpCalendarForApi();this.setState({saving:!0});try{await Je.ml.addCalendar(e),await this.returnToCalendarsManagementPage()}catch(t){console.log("Error saving calendar",t),this.setState({saving:!1});const{toasts:a}=this.props.kibana.services.notifications;a.addDanger(u.i18n.translate("xpack.ml.calendarsEdit.errorWithCreatingCalendarErrorMessage",{defaultMessage:"An error occurred creating calendar {calendarId}",values:{calendarId:e.calendarId}}))}}})),Ve()(this,"onEdit",(async()=>{const e=this.setUpCalendarForApi();this.setState({saving:!0});try{await Je.ml.updateCalendar(e),await this.returnToCalendarsManagementPage()}catch(t){console.log("Error saving calendar",t),this.setState({saving:!1});const{toasts:a}=this.props.kibana.services.notifications;a.addDanger(u.i18n.translate("xpack.ml.calendarsEdit.errorWithUpdatingCalendarErrorMessage",{defaultMessage:"An error occurred saving calendar {calendarId}. Try refreshing the page.",values:{calendarId:e.calendarId}}))}})),Ve()(this,"setUpCalendarForApi",(()=>{const{formCalendarId:e,description:t,events:a,selectedGroupOptions:i,selectedJobOptions:n,isGlobalCalendar:s}=this.state,o=s?[Cl.a]:[...n.map((e=>e.label)),...i.map((e=>e.label))];return{calendarId:e,description:t,events:a.map((e=>({description:e.description,start_time:e.start_time,end_time:e.end_time}))),job_ids:o}})),Ve()(this,"onCreateGroupOption",(e=>{const t={label:e};this.setState((e=>({selectedGroupOptions:e.selectedGroupOptions.concat(t)})))})),Ve()(this,"onGlobalCalendarChange",(({currentTarget:e})=>{this.setState({isGlobalCalendar:e.checked})})),Ve()(this,"onJobSelection",(e=>{this.setState({selectedJobOptions:e})})),Ve()(this,"onGroupSelection",(e=>{this.setState({selectedGroupOptions:e})})),Ve()(this,"onCalendarIdChange",(e=>{const t=function(e){let t=!0;return(""===e||void 0===e||!1===Object(Gt.l)(e))&&(t=!1),t}(e.target.value);this.setState({formCalendarId:e.target.value,isNewCalendarIdValid:t})})),Ve()(this,"onDescriptionChange",(e=>{this.setState({description:e.target.value})})),Ve()(this,"showImportModal",(()=>{this.setState((e=>({isImportModalVisible:!e.isImportModalVisible})))})),Ve()(this,"closeImportModal",(()=>{this.setState({isImportModalVisible:!1})})),Ve()(this,"onEventDelete",(e=>{this.setState((t=>({events:t.events.filter((t=>t.event_id!==e))})))})),Ve()(this,"closeNewEventModal",(()=>{this.setState({isNewEventModalVisible:!1})})),Ve()(this,"showNewEventModal",(()=>{this.setState({isNewEventModalVisible:!0})})),Ve()(this,"addEvent",(e=>{this.setState((t=>({events:[...t.events,e],isNewEventModalVisible:!1})))})),Ve()(this,"addImportedEvents",(e=>{this.setState((t=>({events:[...t.events,...e],isImportModalVisible:!1})))})),this.state={isNewEventModalVisible:!1,isImportModalVisible:!1,isNewCalendarIdValid:null,loading:!0,jobIds:[],jobIdOptions:[],groupIds:[],groupIdOptions:[],calendars:[],formCalendarId:"",description:"",selectedJobOptions:[],selectedGroupOptions:[],events:[],saving:!1,selectedCalendar:void 0,isGlobalCalendar:!1}}componentDidMount(){this.formSetup()}async formSetup(){try{const{jobIds:e,groupIds:t,calendars:a}=await new Promise((async(e,t)=>{try{const[t,a,i]=await Promise.all([new Promise(((e,t)=>{Je.ml.jobs.jobsSummary().then((t=>{e(t.map((e=>e.id)))})).catch((e=>{const a=u.i18n.translate("xpack.ml.calendarsEdit.errorWithFetchingJobSummariesErrorMessage",{defaultMessage:"Error fetching job summaries: {err}",values:{err:e}});console.log(a),t(a)}))})),new Promise(((e,t)=>{Je.ml.jobs.groups().then((t=>{e(t.map((e=>e.id)))})).catch((e=>{const a=u.i18n.translate("xpack.ml.calendarsEdit.errorWithLoadingGroupsErrorMessage",{defaultMessage:"Error loading groups: {err}",values:{err:e}});console.log(a),t(a)}))})),new Promise(((e,t)=>{Je.ml.calendars().then((t=>{e(t)})).catch((e=>{const a=u.i18n.translate("xpack.ml.calendarsEdit.errorWithLoadingCalendarsErrorMessage",{defaultMessage:"Error loading calendars: {err}",values:{err:e}});console.log(a),t(a)}))}))]);e({jobIds:t,groupIds:a,calendars:i})}catch(e){console.log(e),t(e)}})),i=e.map((e=>({label:e}))),n=t.map((e=>({label:e}))),s=[],o=[];let r,l=[],c="",d=!1;void 0!==this.props.calendarId&&(r=a.find((e=>e.calendar_id===this.props.calendarId)),r&&(c=r.calendar_id,l=r.events,r.job_ids.includes(Cl.a)?d=!0:r.job_ids.forEach((a=>{e.find((e=>e===a))?s.push({label:a}):t.find((e=>e===a))&&o.push({label:a})})))),this.setState({events:l,formCalendarId:c,jobIds:e,jobIdOptions:i,groupIds:t,groupIdOptions:n,calendars:a,loading:!1,selectedJobOptions:s,selectedGroupOptions:o,selectedCalendar:r,isGlobalCalendar:d})}catch(e){console.log(e),this.setState({loading:!1});const{toasts:t}=this.props.kibana.services.notifications;t.addDanger(u.i18n.translate("xpack.ml.calendarsEdit.errorWithLoadingCalendarFromDataErrorMessage",{defaultMessage:"An error occurred loading calendar form data. Try refreshing the page."}))}}render(){const{events:e,isNewEventModalVisible:t,isImportModalVisible:a,isNewCalendarIdValid:i,formCalendarId:s,description:o,groupIdOptions:r,jobIdOptions:l,saving:c,loading:u,selectedCalendar:p,selectedJobOptions:m,selectedGroupOptions:b,isGlobalCalendar:f}=this.state,g=Object($e.d)().links.ml.calendars;let j="";return t?j=Object(h.jsx)(new_event_modal_NewEventModal,{addEvent:this.addEvent,closeModal:this.closeNewEventModal}):a&&(j=Object(h.jsx)(import_modal_ImportModal,{addImportedEvents:this.addImportedEvents,closeImportModal:this.closeImportModal})),Object(h.jsx)(n.Fragment,null,Object(h.jsx)("div",{"data-test-subj":"mlPageCalendarEdit"},Object(h.jsx)(d.EuiPageBody,null,Object(h.jsx)(Zd,{calendarId:p?p.calendar_id:s,canCreateCalendar:this.props.canCreateCalendar,canDeleteCalendar:this.props.canDeleteCalendar,description:p?p.description:o,eventsList:e,groupIds:r,isEdit:void 0!==p,isNewCalendarIdValid:!(!p&&null!==i)||i,jobIds:l,onCalendarIdChange:this.onCalendarIdChange,onCreate:this.onCreate,onDescriptionChange:this.onDescriptionChange,onEdit:this.onEdit,onEventDelete:this.onEventDelete,onGroupSelection:this.onGroupSelection,showImportModal:this.showImportModal,onJobSelection:this.onJobSelection,saving:c,loading:u,selectedGroupOptions:b,selectedJobOptions:m,onCreateGroupOption:this.onCreateGroupOption,showNewEventModal:this.showNewEventModal,isGlobalCalendar:f,onGlobalCalendarChange:this.onGlobalCalendarChange}),j)),Object(h.jsx)(_e.a,{docLink:g}))}}const nu=Object(sa.withKibana)(new_calendar_NewCalendarUI),su=Object(sa.withKibana)((function({totalCount:e,refreshCalendars:t,kibana:a}){const i=a.services.docLinks.links.ml.calendars;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.calendars.listHeader.calendarsTitle",defaultMessage:"Calendars"})),Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween",alignItems:"baseline"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{alignItems:"baseline",gutterSize:"m",responsive:!1},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiTextColor,{color:"subdued"},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.calendars.listHeader.calendarsListTotalCount",defaultMessage:"{totalCount} in total",values:{totalCount:e}})))))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{alignItems:"baseline",gutterSize:"m",responsive:!1},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{size:"s",iconType:"refresh",onClick:t,"data-test-subj":"mlCalendarListRefreshButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.calendars.listHeader.refreshButtonLabel",defaultMessage:"Refresh"})))))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiText,null,Object(h.jsx)("p",null,Object(h.jsx)(d.EuiTextColor,{color:"subdued"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.calendars.listHeader.calendarsDescription",defaultMessage:"Calendars contain a list of scheduled events for which you do not want to generate anomalies, such as planned system outages or public holidays. The same calendar can be assigned to multiple jobs.{br}{learnMoreLink}",values:{br:Object(h.jsx)("br",null),learnMoreLink:Object(h.jsx)(d.EuiLink,{href:i,target:"_blank"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.calendars.listHeader.calendarsDescription.learnMoreLinkText",defaultMessage:"Learn more"}))}})))),Object(h.jsx)(d.EuiSpacer,{size:"m"}))})),ou=({calendarsList:e,onDeleteClick:t,setSelectedCalendarList:a,loading:i,canCreateCalendar:n,canDeleteCalendar:s,mlNodesAvailable:o,itemsSelected:l})=>{const c=Object(rn.a)(Fe.b.CALENDARS_NEW),p=[{field:"calendar_id",name:u.i18n.translate("xpack.ml.calendarsList.table.idColumnName",{defaultMessage:"ID"}),sortable:!0,truncateText:!0,scope:"row",render:e=>Object(h.jsx)(r.Link,{to:`/${Fe.b.CALENDARS_EDIT}/${e}`,"data-test-subj":"mlEditCalendarLink"},e),"data-test-subj":"mlCalendarListColumnId"},{field:"job_ids_string",name:u.i18n.translate("xpack.ml.calendarsList.table.jobsColumnName",{defaultMessage:"Jobs"}),sortable:!0,truncateText:!0,render:e=>e===Cl.a?Object(h.jsx)("span",{style:{fontStyle:"italic"}},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsList.table.allJobsLabel",defaultMessage:"Applies to all jobs"})):e,"data-test-subj":"mlCalendarListColumnJobs"},{field:"events_length",name:u.i18n.translate("xpack.ml.calendarsList.table.eventsColumnName",{defaultMessage:"Events"}),sortable:!0,render:e=>u.i18n.translate("xpack.ml.calendarsList.table.eventsCountLabel",{defaultMessage:"{eventsLength, plural, one {# event} other {# events}}",values:{eventsLength:e}}),"data-test-subj":"mlCalendarListColumnEvents"}],m={onSelectionChange:e=>a(e)},b={toolsRight:[Object(h.jsx)(d.EuiButton,{size:"s","data-test-subj":"mlCalendarButtonCreate",key:"new_calendar_button",onClick:c,isDisabled:!1===n||!1===o},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsList.table.newButtonLabel",defaultMessage:"New"})),Object(h.jsx)(d.EuiButton,{size:"s",color:"danger",iconType:"trash",onClick:t,isDisabled:!1===s||!1===o||!1===l,"data-test-subj":"mlCalendarButtonDelete",key:"delete_calendar_button"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.calendarsList.table.deleteButtonLabel",defaultMessage:"Delete"}))],box:{incremental:!0},filters:[]};return Object(h.jsx)("div",{"data-test-subj":"mlCalendarTableContainer"},Object(h.jsx)(d.EuiInMemoryTable,{items:e,itemId:"calendar_id",columns:p,search:b,pagination:{initialPageSize:20,pageSizeOptions:[10,20]},sorting:{sort:{field:"calendar_id",direction:"asc"}},loading:i,selection:m,isSelectable:!0,"data-test-subj":i?"mlCalendarTable loading":"mlCalendarTable loaded",rowProps:e=>({"data-test-subj":`mlCalendarListRow row-${e.calendar_id}`})}))};class calendars_list_CalendarsListUI extends n.Component{constructor(e){super(e),Ve()(this,"loadCalendars",(async()=>{this.setState({loading:!0});try{const e=await Je.ml.calendars();this.setState({calendars:e,loading:!1,isDestroyModalVisible:!1})}catch(e){console.log(e),this.setState({loading:!1});const{toasts:t}=this.props.kibana.services.notifications;t.addDanger(u.i18n.translate("xpack.ml.calendarsList.errorWithLoadingListOfCalendarsErrorMessage",{defaultMessage:"An error occurred loading the list of calendars."}))}})),Ve()(this,"closeDestroyModal",(()=>{this.setState({isDestroyModalVisible:!1,calendarId:null})})),Ve()(this,"showDestroyModal",(()=>{this.setState({isDestroyModalVisible:!0})})),Ve()(this,"setSelectedCalendarList",(e=>{this.setState({selectedForDeletion:e})})),Ve()(this,"deleteCalendars",(()=>{const{selectedForDeletion:e}=this.state;this.closeDestroyModal(),async function(e,t){if(void 0===e||0===e.length)return;const a=Object($e.h)(),i=e.length>1?u.i18n.translate("xpack.ml.calendarsList.deleteCalendars.calendarsLabel",{defaultMessage:"{calendarsToDeleteCount} calendars",values:{calendarsToDeleteCount:e.length}}):`${e[0].calendar_id}`;a.add(u.i18n.translate("xpack.ml.calendarsList.deleteCalendars.deletingCalendarsNotificationMessage",{defaultMessage:"Deleting {messageId}",values:{messageId:i}}));for(const t of e){const e=t.calendar_id;try{await Je.ml.deleteCalendar({calendarId:e})}catch(e){console.log("Error deleting calendar:",e),a.addDanger({title:u.i18n.translate("xpack.ml.calendarsList.deleteCalendars.deletingCalendarErrorMessage",{defaultMessage:"An error occurred deleting calendar {calendarId}",values:{calendarId:t.calendar_id}}),text:Object(ei.b)(e)})}}a.addSuccess(u.i18n.translate("xpack.ml.calendarsList.deleteCalendars.deletingCalendarSuccessNotificationMessage",{defaultMessage:"{messageId} deleted",values:{messageId:i}})),t()}(e,this.loadCalendars)})),Ve()(this,"addRequiredFieldsToList",((e=[])=>{for(let t=0;te.calendar_id)).join(", ")}}),onCancel:this.closeDestroyModal,onConfirm:this.deleteCalendars,cancelButtonText:u.i18n.translate("xpack.ml.calendarsList.deleteCalendarsModal.cancelButtonLabel",{defaultMessage:"Cancel"}),confirmButtonText:u.i18n.translate("xpack.ml.calendarsList.deleteCalendarsModal.deleteButtonLabel",{defaultMessage:"Delete"}),buttonColor:"danger",defaultFocusedButton:d.EUI_MODAL_CONFIRM_BUTTON})),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)("div",{"data-test-subj":"mlPageCalendarManagement"},Object(h.jsx)(su,{totalCount:e.length,refreshCalendars:this.loadCalendars}),Object(h.jsx)(ou,{loading:a,calendarsList:this.addRequiredFieldsToList(e),onDeleteClick:this.showDestroyModal,canCreateCalendar:n,canDeleteCalendar:o,mlNodesAvailable:i,setSelectedCalendarList:this.setSelectedCalendarList,itemsSelected:t.length>0}),r),Object(h.jsx)(_e.a,{docLink:l}))}}const ru=Object(sa.withKibana)(calendars_list_CalendarsListUI),lu=(e,t)=>({path:Object(Ee.c)(te.a.CALENDARS_MANAGE),title:u.i18n.translate("xpack.ml.settings.calendarList.docTitle",{defaultMessage:"Calendars"}),render:(e,t)=>Object(h.jsx)(cu,m()({},e,{deps:t})),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("ANOMALY_DETECTION_BREADCRUMB",e,t),Oe("SETTINGS_BREADCRUMB",e,t),Oe("CALENDAR_MANAGEMENT_BREADCRUMB")]}),cu=()=>{const{context:e}=Ie("full",["canGetCalendars"],{getMlNodeCount:vt.b});Object(ee.i)({timeRangeSelector:!1,autoRefreshSelector:!1});const[t,a]=Object(Se.f)(["canCreateCalendar","canDeleteCalendar"]);return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(ru,{canCreateCalendar:t,canDeleteCalendar:a}))};var du;!function(e){e[e.NEW=0]="NEW",e[e.EDIT=1]="EDIT"}(du||(du={}));const uu=(e,t)=>({path:Object(Ee.c)(Fe.b.CALENDARS_NEW),title:u.i18n.translate("xpack.ml.settings.createCalendar.docTitle",{defaultMessage:"Create Calendar"}),render:(e,t)=>Object(h.jsx)(mu,m()({},e,{deps:t,mode:du.NEW})),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("ANOMALY_DETECTION_BREADCRUMB",e,t),Oe("SETTINGS_BREADCRUMB",e,t),Oe("CALENDAR_MANAGEMENT_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.settings.breadcrumbs.calendarManagement.createLabel",{defaultMessage:"Create"})}]}),pu=(e,t)=>({path:Object(Ee.c)(Fe.b.CALENDARS_EDIT,"/:calendarId"),title:u.i18n.translate("xpack.ml.settings.editCalendar.docTitle",{defaultMessage:"Edit Calendar"}),render:(e,t)=>Object(h.jsx)(mu,m()({},e,{deps:t,mode:du.EDIT})),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("SETTINGS_BREADCRUMB",e,t),Oe("CALENDAR_MANAGEMENT_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.settings.breadcrumbs.calendarManagement.editLabel",{defaultMessage:"Edit"})}]}),mu=({location:e,mode:t})=>{let a;if(t===du.EDIT){const t=e.pathname.match(/.+\/(.+)$/);a=t&&t.length>1?t[1]:void 0}const{context:i}=Ie("full",["canGetJobs"],{getMlNodeCount:ae.a});Object(ee.i)({timeRangeSelector:!1,autoRefreshSelector:!1});const[n,s]=Object(Se.f)(["canCreateCalendar","canDeleteCalendar"]);return Object(h.jsx)(Ee.b,{context:i},Object(h.jsx)(nu,{calendarId:a,canCreateCalendar:n,canDeleteCalendar:s}))};class edit_description_popover_EditDescriptionPopover extends n.Component{constructor(e){super(e),Ve()(this,"onChange",(e=>{this.setState({value:e.target.value})})),Ve()(this,"onButtonClick",(()=>{!1===this.state.isPopoverOpen?this.setState({isPopoverOpen:!this.state.isPopoverOpen,value:this.props.description}):this.closePopover()})),Ve()(this,"closePopover",(()=>{!0===this.state.isPopoverOpen&&(this.setState({isPopoverOpen:!1}),this.props.updateDescription(this.state.value))})),this.state={isPopoverOpen:!1,value:e.description}}render(){const{isPopoverOpen:e,value:t}=this.state,a=Object(h.jsx)(d.EuiButtonIcon,{size:"s",color:"primary",onClick:this.onButtonClick,iconType:"pencil","aria-label":u.i18n.translate("xpack.ml.settings.filterLists.editDescriptionPopover.editDescriptionAriaLabel",{defaultMessage:"Edit description"}),isDisabled:!1===this.props.canCreateFilter,"data-test-subj":"mlFilterListEditDescriptionButton"});return Object(h.jsx)("div",null,Object(h.jsx)(d.EuiPopover,{id:"filter_list_description_popover",ownFocus:!0,button:a,isOpen:e,closePopover:this.closePopover,initialFocus:"#filter_list_edit_description_row"},Object(h.jsx)("div",{style:{width:"300px"}},Object(h.jsx)(d.EuiForm,null,Object(h.jsx)(d.EuiFormRow,{id:"filter_list_edit_description_row",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.editDescriptionPopover.filterListDescriptionAriaLabel",defaultMessage:"Filter list description"})},Object(h.jsx)(d.EuiFieldText,{name:"filter_list_description",value:t,onChange:this.onChange,"data-test-subj":"mlFilterListDescriptionInput"}))))))}}Ve()(edit_description_popover_EditDescriptionPopover,"displayName","EditDescriptionPopover");class filter_list_usage_popover_FilterListUsagePopover extends n.Component{constructor(e){super(e),Ve()(this,"onButtonClick",(()=>{this.setState({isPopoverOpen:!this.state.isPopoverOpen})})),Ve()(this,"closePopover",(()=>{this.setState({isPopoverOpen:!1})})),this.state={isPopoverOpen:!1}}render(){const{entityType:e,entityValues:t}=this.props,a=`${t.length} ${e}${1!==t.length?"s":""}`,i=t.map((e=>Object(h.jsx)("li",{key:e},e))),n=Object(h.jsx)(d.EuiButtonEmpty,{size:"s",color:"primary",onClick:this.onButtonClick},a);return Object(h.jsx)("div",null,Object(h.jsx)(d.EuiPopover,{id:`${e}_filter_list_usage`,panelClassName:"ml-filter-list-usage-popover",ownFocus:!0,button:n,isOpen:this.state.isPopoverOpen,closePopover:this.closePopover},Object(h.jsx)("ul",null,i)))}}const bu=({canCreateFilter:e,filterId:t,totalItemCount:a,description:i,updateDescription:n,newFilterId:o,isNewFilterIdInvalid:r,updateNewFilterId:l,usedBy:c})=>{const p=void 0!==t?Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.editFilterHeader.filterListTitle",defaultMessage:"Filter list {filterId}",values:{filterId:t}}):Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.editFilterHeader.createFilterListTitle",defaultMessage:"Create new filter list"});let m,b,f;if(void 0===t){const e=u.i18n.translate("xpack.ml.settings.filterLists.editFilterHeader.allowedCharactersDescription",{defaultMessage:"Use lowercase alphanumerics (a-z and 0-9), hyphens or underscores; must start and end with an alphanumeric character"}),t=!1===r?e:void 0,a=!0===r?[e]:void 0;m=Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.editFilterHeader.filterListIdAriaLabel",defaultMessage:"Filter list ID"}),helpText:t,error:a,isInvalid:r},Object(h.jsx)(d.EuiFieldText,{name:"new_filter_id",value:o,isInvalid:r,onChange:e=>l(e.target.value),"data-test-subj":"mlNewFilterListIdInput"}))}return b=void 0!==i&&i.length>0?Object(h.jsx)(d.EuiText,{"data-test-subj":"mlNewFilterListDescriptionText"},Object(h.jsx)("p",null,i)):Object(h.jsx)(d.EuiText,null,Object(h.jsx)(d.EuiTextColor,{color:"subdued"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.editFilterList.addDescriptionText",defaultMessage:"Add a description"}))),void 0!==t&&(f=void 0!==c&&c.jobs.length>0?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)("div",{className:"ml-filter-list-usage"},Object(h.jsx)(d.EuiText,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.editFilterList.filterIsUsedInJobsDescription",defaultMessage:"This filter list is used in"})),Object(h.jsx)(filter_list_usage_popover_FilterListUsagePopover,{entityType:"detector",entityValues:c.detectors}),Object(h.jsx)(d.EuiText,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.editFilterList.acrossText",defaultMessage:"across"})),Object(h.jsx)(filter_list_usage_popover_FilterListUsagePopover,{entityType:"job",entityValues:c.jobs})),Object(h.jsx)(d.EuiSpacer,{size:"s"})):Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiText,null,Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.editFilterList.filterIsNotUsedInJobsDescription",defaultMessage:"This filter list is not used by any jobs."}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}))),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,p),Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween",alignItems:"baseline"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{alignItems:"baseline",gutterSize:"m",responsive:!1},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiTextColor,{color:"subdued"},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.editFilterList.totalItemsDescription",defaultMessage:"{totalItemCount, plural, one {# item} other {# items}} in total",values:{totalItemCount:a}}))))))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),m,Object(h.jsx)(d.EuiFlexGroup,{alignItems:"baseline",gutterSize:"s",responsive:!1},Object(h.jsx)(d.EuiFlexItem,{grow:!1},b),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(edit_description_popover_EditDescriptionPopover,{canCreateFilter:e,description:i,updateDescription:n}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),f)};bu.displayName="EditFilterListHeader";class add_item_popover_AddItemPopover extends n.Component{constructor(e){super(e),Ve()(this,"onItemsTextChange",(e=>{this.setState({itemsText:e.target.value})})),Ve()(this,"onButtonClick",(()=>{this.setState({isPopoverOpen:!this.state.isPopoverOpen})})),Ve()(this,"closePopover",(()=>{this.setState({isPopoverOpen:!1})})),Ve()(this,"onAddButtonClick",(()=>{const e=this.state.itemsText.split("\n"),t=[];e.forEach((e=>{-1===t.indexOf(e)&&e.length>0&&t.push(e)})),this.props.addItems(t),this.setState({isPopoverOpen:!1,itemsText:""})})),this.state={isPopoverOpen:!1,itemsText:""}}render(){const e=Object(h.jsx)(d.EuiButton,{size:"s",color:"primary",iconType:"arrowDown",iconSide:"right",onClick:this.onButtonClick,isDisabled:!1===this.props.canCreateFilter,"data-test-subj":"mlFilterListOpenNewItemsPopoverButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.addItemPopover.addItemButtonLabel",defaultMessage:"Add item"}));return Object(h.jsx)("div",null,Object(h.jsx)(d.EuiPopover,{id:"add_item_popover",panelClassName:"ml-add-filter-item-popover",ownFocus:!0,button:e,isOpen:this.state.isPopoverOpen,closePopover:this.closePopover,initialFocus:"#filter_list_add_item_input_row"},Object(h.jsx)(d.EuiForm,null,Object(h.jsx)(d.EuiFormRow,{id:"filter_list_add_item_input_row",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.addItemPopover.itemsLabel",defaultMessage:"Items"})},Object(h.jsx)(d.EuiTextArea,{value:this.state.itemsText,onChange:this.onItemsTextChange,"data-test-subj":"mlFilterListAddItemTextArea"}))),Object(h.jsx)(d.EuiText,{size:"xs"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.addItemPopover.enterItemPerLineDescription",defaultMessage:"Enter one item per line"})),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"flexEnd"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:this.onAddButtonClick,disabled:0===this.state.itemsText.length,"data-test-subj":"mlFilterListAddItemsButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.addItemPopover.addButtonLabel",defaultMessage:"Add"}))))))}}function fu({canCreateFilter:e,canDeleteFilter:t,onSearchChange:a,addItems:i,deleteSelectedItems:n,selectedItemCount:o}){const r=function(e,t,a,i,n){return[Object(h.jsx)(add_item_popover_AddItemPopover,{addItems:a,canCreateFilter:e,key:"add_item_btn"}),Object(h.jsx)(d.EuiButton,{color:"danger",size:"s",disabled:0===n||!1===t,onClick:i,key:"delete_item_btn","data-test-subj":"mlFilterListDeleteItemButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.toolbar.deleteItemButtonLabel",defaultMessage:"Delete item"}))]}(e,t,i,n,o);return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",gutterSize:"xl"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiSearchBar,{toolsRight:r,onChange:a,filters:[]}))))}function gu(e,t){return e===t?"check":"empty"}Ve()(add_item_popover_AddItemPopover,"displayName","AddItemPopover");class items_grid_pagination_ItemsGridPagination extends n.Component{constructor(e){super(e),Ve()(this,"onButtonClick",(()=>{this.setState({isPopoverOpen:!this.state.isPopoverOpen})})),Ve()(this,"closePopover",(()=>{this.setState({isPopoverOpen:!1})})),Ve()(this,"onPageClick",(e=>{this.props.setActivePage(e)})),Ve()(this,"onChangeItemsPerPage",(e=>{this.closePopover(),this.props.setItemsPerPage(e)})),this.state={isPopoverOpen:!1}}render(){const{itemCount:e,itemsPerPage:t,itemsPerPageOptions:a,activePage:i}=this.props,n=Object(h.jsx)(d.EuiButtonEmpty,{size:"s",color:"text",iconType:"arrowDown",iconSide:"right",onClick:this.onButtonClick},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.itemsGrid.itemsPerPageButtonLabel",defaultMessage:"Items per page: {itemsPerPage}",values:{itemsPerPage:t}})),s=Math.ceil(e/t),o=a.map((e=>Object(h.jsx)(d.EuiContextMenuItem,{key:`${e} items`,icon:gu(e,t),onClick:()=>{this.onChangeItemsPerPage(e)}},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.itemsGrid.itemsCountLabel",defaultMessage:"{pageSize} items",values:{pageSize:e}}))));return Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiPopover,{id:"customizablePagination",button:n,isOpen:this.state.isPopoverOpen,closePopover:this.closePopover,panelPaddingSize:"none"},Object(h.jsx)(d.EuiContextMenuPanel,{items:o,className:"ml-items-grid-page-size-menu"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiPagination,{pageCount:s,activePage:i,onPageClick:this.onPageClick})))}}function hu({numberColumns:e,totalItemCount:t,items:a,selectedItems:i,itemsPerPage:n,itemsPerPageOptions:s,setItemsPerPage:o,setItemSelected:r,activePage:l,setActivePage:c}){if(void 0===a||0===a.length)return Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceAround"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,null,Object(h.jsx)("h4",null,0===t?Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.itemsGrid.noItemsAddedTitle",defaultMessage:"No items have been added"}):Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.itemsGrid.noMatchingItemsTitle",defaultMessage:"No matching items"})))));const u=l*n,p=a.slice(u,u+n).map(((e,t)=>Object(h.jsx)(d.EuiFlexItem,{key:`ml_grid_item_${t}`,"data-test-subj":`mlGridItem ${e}`},Object(h.jsx)(d.EuiCheckbox,{id:`ml_grid_item_${t}`,label:e,checked:i.indexOf(e)>=0,onChange:t=>{r(e,t.target.checked)},"data-test-subj":"mlGridItemCheckbox"}))));return Object(h.jsx)("div",null,Object(h.jsx)(d.EuiFlexGrid,{columns:e,className:"eui-textBreakWord",gutterSize:"m"},p),Object(h.jsx)(items_grid_pagination_ItemsGridPagination,{itemCount:a.length,itemsPerPage:n,itemsPerPageOptions:s,setItemsPerPage:o,activePage:l,setActivePage:c}))}function ju(e,t){if(void 0===t)return[];if(void 0===e)return[...t];const a=t.map((e=>({value:e})));return d.EuiSearchBar.Query.execute(e,a,{defaultFields:["value"]}).map((e=>e.value))}function xu(e,t,a){let i=e;return t*e>a&&(i=Math.max(Math.ceil(a/t)-1,0)),i}hu.defaultProps={numberColumns:4,itemsPerPage:50,itemsPerPageOptions:[50,100,500,1e3]};class edit_filter_list_EditFilterListUI extends n.Component{constructor(e){super(e),Ve()(this,"returnToFiltersList",(async()=>{const{services:{http:{basePath:e},application:{navigateToUrl:t}}}=this.props.kibana;await t(`${e.get()}/app/ml/${Fe.b.FILTER_LISTS_MANAGE}`,!0)})),Ve()(this,"loadFilterList",(e=>{Je.ml.filters.filters({filterId:e}).then((e=>{this.setLoadedFilterState(e)})).catch((t=>{console.log(`Error loading filter ${e}:`,t);const{toasts:a}=this.props.kibana.services.notifications;a.addDanger(u.i18n.translate("xpack.ml.settings.filterLists.editFilterList.loadingDetailsOfFilterErrorMessage",{defaultMessage:"An error occurred loading details of filter {filterId}",values:{filterId:e}}))}))})),Ve()(this,"setLoadedFilterState",(e=>{this.setState((t=>{const{itemsPerPage:a,searchQuery:i}=t,n=ju(i,e.items),s=xu(t.activePage,a,n.length);return{description:e.description,items:void 0!==e.items?[...e.items]:[],matchingItems:n,selectedItems:[],loadedFilter:e,isNewFilterIdInvalid:!1,activePage:s,searchQuery:i,saveInProgress:!1}}))})),Ve()(this,"updateNewFilterId",(e=>{var t;this.setState({newFilterId:e,isNewFilterIdInvalid:(t=e,!(void 0!==t&&t.length>0&&Object(Gt.l)(t)))})})),Ve()(this,"updateDescription",(e=>{this.setState({description:e})})),Ve()(this,"addItems",(e=>{this.setState((t=>{const{itemsPerPage:a,searchQuery:i}=t,n=[...t.items],s=[];if(e.forEach((e=>{-1===n.indexOf(e)?n.push(e):s.push(e)})),n.sort(((e,t)=>e.localeCompare(t))),s.length>0){const{toasts:e}=this.props.kibana.services.notifications;e.addWarning(u.i18n.translate("xpack.ml.settings.filterLists.editFilterList.duplicatedItemsInFilterListWarningMessage",{defaultMessage:"The following items were already in the filter list: {alreadyInFilter}",values:{alreadyInFilter:s}}))}const o=ju(i,n),r=xu(t.activePage,a,o.length);return{items:n,matchingItems:o,activePage:r,searchQuery:i}}))})),Ve()(this,"deleteSelectedItems",(()=>{this.setState((e=>{const{selectedItems:t,itemsPerPage:a,searchQuery:i}=e,n=[...e.items];t.forEach((e=>{const t=n.indexOf(e);-1!==t&&n.splice(t,1)}));const s=ju(i,n),o=xu(e.activePage,a,s.length);return{items:n,matchingItems:s,selectedItems:[],activePage:o,searchQuery:i}}))})),Ve()(this,"onSearchChange",(({query:e})=>{this.setState((t=>{const{items:a,itemsPerPage:i}=t,n=ju(e,a);return{matchingItems:n,activePage:xu(t.activePage,i,n.length),searchQuery:e}}))})),Ve()(this,"setItemSelected",((e,t)=>{this.setState((a=>{const i=[...a.selectedItems],n=i.indexOf(e);return!0===t&&-1===n?i.push(e):!1===t&&-1!==n&&i.splice(n,1),{selectedItems:i}}))})),Ve()(this,"setActivePage",(e=>{this.setState({activePage:e})})),Ve()(this,"setItemsPerPage",(e=>{this.setState({itemsPerPage:e,activePage:0})})),Ve()(this,"save",(()=>{this.setState({saveInProgress:!0});const{loadedFilter:e,newFilterId:t,description:a,items:i}=this.state,n=void 0!==this.props.filterId?this.props.filterId:t;(function(e,t,a,i){return new Promise(((n,s)=>{void 0===i||void 0===i.filter_id?function(e,t,a){const i=u.i18n.translate("xpack.ml.settings.filterLists.filterWithIdExistsErrorMessage",{defaultMessage:"A filter with id {filterId} already exists",values:{filterId:e}});return new Promise(((n,s)=>{Je.ml.filters.filtersStats().then((o=>{-1===o.map((e=>e.filter_id)).indexOf(e)?Je.ml.filters.addFilter(e,t,a).then((e=>{n(e)})).catch((e=>{s(e)})):(Object($e.h)().addDanger(i),s(new Error(i)))})).catch((e=>{s(e)}))}))}(e,t,a).then((e=>{n(e)})).catch((e=>{s(e)})):function(e,t,a){return new Promise(((i,n)=>{const s=e.items,o=a.filter((e=>!1===s.includes(e))),r=s.filter((e=>!1===a.includes(e)));Je.ml.filters.updateFilter(e.filter_id,t,o,r).then((e=>{i(e)})).catch((e=>{n(e)}))}))}(i,t,a).then((e=>{n(e)})).catch((e=>{s(e)}))}))})(n,a,i,e).then((e=>{this.setLoadedFilterState(e),this.returnToFiltersList()})).catch((e=>{console.log(`Error saving filter ${n}:`,e);const{toasts:t}=this.props.kibana.services.notifications;t.addDanger(u.i18n.translate("xpack.ml.settings.filterLists.editFilterList.savingFilterErrorMessage",{defaultMessage:"An error occurred saving filter {filterId}",values:{filterId:n}})),this.setState({saveInProgress:!1})}))})),this.state={description:"",items:[],matchingItems:[],selectedItems:[],loadedFilter:{},newFilterId:"",isNewFilterIdInvalid:!0,activePage:0,itemsPerPage:50,saveInProgress:!1}}componentDidMount(){const e=this.props.filterId;void 0!==e?this.loadFilterList(e):this.setState({newFilterId:""})}render(){const{loadedFilter:e,newFilterId:t,isNewFilterIdInvalid:a,description:i,items:n,matchingItems:o,selectedItems:r,itemsPerPage:l,activePage:c,saveInProgress:u}=this.state,{canCreateFilter:p,canDeleteFilter:m}=this.props,b=void 0!==n?n.length:0,f=Object($e.d)().links.ml.customRules;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)("div",{"data-test-subj":"mlPageFilterListEdit"},Object(h.jsx)(bu,{canCreateFilter:p,filterId:this.props.filterId,newFilterId:t,isNewFilterIdInvalid:a,updateNewFilterId:this.updateNewFilterId,description:i,updateDescription:this.updateDescription,totalItemCount:b,usedBy:e.used_by}),Object(h.jsx)(fu,{canCreateFilter:p,canDeleteFilter:m,onSearchChange:this.onSearchChange,addItems:this.addItems,deleteSelectedItems:this.deleteSelectedItems,selectedItemCount:r.length}),Object(h.jsx)(d.EuiSpacer,{size:"xl"}),Object(h.jsx)(hu,{totalItemCount:b,items:o,selectedItems:r,itemsPerPage:l,setItemsPerPage:this.setItemsPerPage,setItemSelected:this.setItemSelected,activePage:c,setActivePage:this.setActivePage}),Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"flexEnd"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{"data-test-subj":"mlFilterListCancelButton",onClick:()=>this.returnToFiltersList()},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.editFilterList.cancelButtonLabel",defaultMessage:"Cancel"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:this.save,disabled:!0===u||!0===a||!1===p,fill:!0,"data-test-subj":"mlFilterListSaveButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.editFilterList.saveButtonLabel",defaultMessage:"Save"}))))),Object(h.jsx)(_e.a,{docLink:f}))}}Ve()(edit_filter_list_EditFilterListUI,"displayName","EditFilterList");const vu=Object(sa.withKibana)(edit_filter_list_EditFilterListUI),yu=Object(sa.withKibana)((function({totalCount:e,refreshFilterLists:t,kibana:a}){const i=a.services.docLinks.links.ml.customRules;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.listHeader.filterListsTitle",defaultMessage:"Filter Lists"})),Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween",alignItems:"baseline"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{alignItems:"baseline",gutterSize:"m",responsive:!1},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiTextColor,{color:"subdued"},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.listHeader.filterListsDescription",defaultMessage:"{totalCount} in total",values:{totalCount:e}})))))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{alignItems:"baseline",gutterSize:"m",responsive:!1},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{size:"s",iconType:"refresh",onClick:()=>t(),"data-test-subj":"mlFilterListRefreshButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.listHeader.refreshButtonLabel",defaultMessage:"Refresh"})))))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiText,null,Object(h.jsx)("p",null,Object(h.jsx)(d.EuiTextColor,{color:"subdued"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.listHeader.filterListsContainsNotAllowedValuesDescription",defaultMessage:"Filter lists contain values that you can use to include or exclude events from the machine learning analysis.\nYou can use the same filter list in multiple jobs.{br}{learnMoreLink}",values:{br:Object(h.jsx)("br",null),learnMoreLink:Object(h.jsx)(d.EuiLink,{href:i,target:"_blank"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.listHeader.filterListsContainsNotAllowedValuesDescription.learnMoreLinkText",defaultMessage:"Learn more"}))}})))),Object(h.jsx)(d.EuiSpacer,{size:"m"}))}));class delete_filter_list_modal_DeleteFilterListModal extends n.Component{constructor(e){super(e),Ve()(this,"closeModal",(()=>{this.setState({isModalVisible:!1})})),Ve()(this,"showModal",(()=>{this.setState({isModalVisible:!0})})),Ve()(this,"onConfirmDelete",(()=>{this.doDelete()})),this.state={isModalVisible:!1}}async doDelete(){const{selectedFilterLists:e,refreshFilterLists:t}=this.props;await async function(e){if(void 0===e||0===e.length)return;const t=Object($e.h)();t.add(u.i18n.translate("xpack.ml.settings.filterLists.deleteFilterLists.deletingNotificationMessage",{defaultMessage:"Deleting {filterListsToDeleteLength, plural, one {{filterListToDeleteId}} other {# filter lists}}",values:{filterListsToDeleteLength:e.length,filterListToDeleteId:!!e.length&&e[0].filter_id}}));for(const a of e){const e=a.filter_id;try{await Je.ml.filters.deleteFilter(e)}catch(e){console.log("Error deleting filter list:",e),t.addDanger(u.i18n.translate("xpack.ml.settings.filterLists.deleteFilterLists.deletingErrorMessage",{defaultMessage:"An error occurred deleting filter list {filterListId}{respMessage}",values:{filterListId:a.filter_id,respMessage:e.message?` : ${e.message}`:""}}))}}t.addSuccess(u.i18n.translate("xpack.ml.settings.filterLists.deleteFilterLists.filtersSuccessfullyDeletedNotificationMessage",{defaultMessage:"{filterListsToDeleteLength, plural, one {{filterListToDeleteId}} other {# filter lists}} deleted",values:{filterListsToDeleteLength:e.length,filterListToDeleteId:!!e.length&&e[0].filter_id}}))}(e),t(),this.closeModal()}render(){const{selectedFilterLists:e,canDeleteFilter:t}=this.props;let a;return this.state.isModalVisible&&(a=Object(h.jsx)(d.EuiConfirmModal,{title:u.i18n.translate("xpack.ml.settings.filterLists.deleteFilterListModal.modalTitle",{defaultMessage:"Delete {selectedFilterListsLength, plural, one {{selectedFilterId}} other {# filter lists}}?",values:{selectedFilterListsLength:e.length,selectedFilterId:!!e.length&&e[0].filter_id}}),className:"eui-textBreakWord",onCancel:this.closeModal,onConfirm:this.onConfirmDelete,cancelButtonText:u.i18n.translate("xpack.ml.settings.filterLists.deleteFilterListModal.cancelButtonLabel",{defaultMessage:"Cancel"}),confirmButtonText:u.i18n.translate("xpack.ml.settings.filterLists.deleteFilterListModal.confirmButtonLabel",{defaultMessage:"Delete"}),buttonColor:"danger",defaultFocusedButton:d.EUI_MODAL_CONFIRM_BUTTON,"data-test-subj":"mlFilterListDeleteConfirmation"})),Object(h.jsx)("div",null,Object(h.jsx)(d.EuiButton,{key:"delete_filter_list",iconType:"trash",color:"danger",onClick:this.showModal,isDisabled:void 0===e||0===e.length||!1===t,"data-test-subj":"mlFilterListsDeleteButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.deleteFilterListModal.deleteButtonLabel",defaultMessage:"Delete"})),a)}}function Ou({usedBy:e}){let t;return t=void 0!==e&&e.jobs.length>0?Object(h.jsx)(d.EuiIcon,{type:"check","aria-label":u.i18n.translate("xpack.ml.settings.filterLists.table.inUseAriaLabel",{defaultMessage:"In use"}),"data-test-subj":"mlFilterListUsedByIcon inUse"}):Object(h.jsx)(d.EuiIcon,{type:"cross","aria-label":u.i18n.translate("xpack.ml.settings.filterLists.table.notInUseAriaLabel",{defaultMessage:"Not in use"}),"data-test-subj":"mlFilterListUsedByIcon notInUse"}),t}function Eu({canCreateFilter:e}){const t=Object(rn.a)(Fe.b.FILTER_LISTS_NEW);return Object(h.jsx)(d.EuiButton,{key:"new_filter_list",onClick:t,isDisabled:!1===e,"data-test-subj":"mlFilterListsButtonCreate"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.table.newButtonLabel",defaultMessage:"New"}))}function wu(e,t,a,i){return[Object(h.jsx)(Eu,{key:"new_filter_list",canCreateFilter:e}),Object(h.jsx)(delete_filter_list_modal_DeleteFilterListModal,{key:"delete_filter_list",canDeleteFilter:t,selectedFilterLists:a,refreshFilterLists:i})]}function Mu({canCreateFilter:e,canDeleteFilter:t,filterLists:a,selectedFilterLists:i,setSelectedFilterLists:n,refreshFilterLists:o}){const l={toolsRight:wu(e,t,i,o),box:{incremental:!0},filters:[]},c={selectable:e=>void 0===e.used_by||0===e.used_by.jobs.length,selectableMessage:()=>{},onSelectionChange:e=>n(e)};return Object(h.jsx)(s.a.Fragment,null,void 0===a||0===a.length?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{alignItems:"flexEnd",justifyContent:"flexEnd"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Eu,null))),Object(h.jsx)(d.EuiSpacer,{size:"l"}),Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceAround"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,null,Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.settings.filterLists.table.noFiltersCreatedTitle",defaultMessage:"No filters have been created"})))))):Object(h.jsx)("div",{"data-test-subj":"mlFilterListTableContainer"},Object(h.jsx)(d.EuiInMemoryTable,{className:"ml-filter-lists-table",items:a,itemId:"filter_id",columns:[{field:"filter_id",name:u.i18n.translate("xpack.ml.settings.filterLists.table.idColumnName",{defaultMessage:"ID"}),render:e=>Object(h.jsx)(r.Link,{to:`/${Fe.b.FILTER_LISTS_EDIT}/${e}`,"data-test-subj":"mlEditFilterListLink"},e),sortable:!0,scope:"row","data-test-subj":"mlFilterListColumnId"},{field:"description",name:u.i18n.translate("xpack.ml.settings.filterLists.table.descriptionColumnName",{defaultMessage:"Description"}),sortable:!0,"data-test-subj":"mlFilterListColumnDescription"},{field:"item_count",name:u.i18n.translate("xpack.ml.settings.filterLists.table.itemCountColumnName",{defaultMessage:"Item count"}),sortable:!0,"data-test-subj":"mlFilterListColumnItemCount"},{field:"used_by",name:u.i18n.translate("xpack.ml.settings.filterLists.table.inUseColumnName",{defaultMessage:"In use"}),render:e=>Object(h.jsx)(Ou,{usedBy:e}),sortable:!0,"data-test-subj":"mlFilterListColumnInUse"}],search:l,pagination:!0,sorting:{sort:{field:"filter_id",direction:"asc"}},selection:c,isSelectable:!0,"data-test-subj":"mlFilterListsTable",rowProps:e=>({"data-test-subj":`mlFilterListRow row-${e.filter_id}`})})))}Ve()(delete_filter_list_modal_DeleteFilterListModal,"displayName","DeleteFilterListModal"),Ou.propTypes={usedBy:Bl.a.object},Ou.displayName="UsedByIcon";class filter_lists_FilterListsUI extends n.Component{constructor(e){super(e),Ve()(this,"setFilterLists",(e=>{this.setState((t=>{const a=e.map((e=>e.filter_id)),i=t.selectedFilterLists.filter((e=>-1!==a.indexOf(e.filter_id)));return{filterLists:e,selectedFilterLists:i}}))})),Ve()(this,"setSelectedFilterLists",(e=>{this.setState({selectedFilterLists:e})})),Ve()(this,"refreshFilterLists",(()=>{Je.ml.filters.filtersStats().then((e=>{this.setFilterLists(e)})).catch((e=>{console.log("Error loading list of filters:",e);const{toasts:t}=this.props.kibana.services.notifications;t.addDanger(u.i18n.translate("xpack.ml.settings.filterLists.filterLists.loadingFilterListsErrorMessage",{defaultMessage:"An error occurred loading the filter lists"}))}))})),this.state={filterLists:[],selectedFilterLists:[]}}componentDidMount(){this.refreshFilterLists()}render(){const{filterLists:e,selectedFilterLists:t}=this.state,{canCreateFilter:a,canDeleteFilter:i}=this.props,n=Object($e.d)().links.ml.customRules;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)("div",{"data-test-subj":"mlPageFilterListManagement"},Object(h.jsx)(yu,{totalCount:e.length,refreshFilterLists:this.refreshFilterLists}),Object(h.jsx)(Mu,{canCreateFilter:a,canDeleteFilter:i,filterLists:e,selectedFilterLists:t,setSelectedFilterLists:this.setSelectedFilterLists,refreshFilterLists:this.refreshFilterLists})),Object(h.jsx)(_e.a,{docLink:n}))}}Ve()(filter_lists_FilterListsUI,"displayName","FilterLists");const Su=Object(sa.withKibana)(filter_lists_FilterListsUI),_u=(e,t)=>({path:Object(Ee.c)(te.a.FILTER_LISTS_MANAGE),title:u.i18n.translate("xpack.ml.settings.filterList.docTitle",{defaultMessage:"Filters"}),render:()=>Object(h.jsx)(Tu,null),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("ANOMALY_DETECTION_BREADCRUMB",e,t),Oe("SETTINGS_BREADCRUMB",e,t),Oe("FILTER_LISTS_BREADCRUMB")]}),Tu=()=>{const{context:e}=Ie("full",["canGetFilters"],{getMlNodeCount:vt.b});Object(ee.i)({timeRangeSelector:!1,autoRefreshSelector:!1});const[t,a]=Object(Se.f)(["canCreateFilter","canDeleteFilter"]);return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(Su,{canCreateFilter:t,canDeleteFilter:a}))};var Cu;!function(e){e[e.NEW=0]="NEW",e[e.EDIT=1]="EDIT"}(Cu||(Cu={}));const ku=(e,t)=>({path:Object(Ee.c)(Fe.b.FILTER_LISTS_NEW),title:u.i18n.translate("xpack.ml.settings.createFilter.docTitle",{defaultMessage:"Create Filter"}),render:(e,t)=>Object(h.jsx)(Iu,m()({},e,{mode:Cu.NEW,deps:t})),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("ANOMALY_DETECTION_BREADCRUMB",e,t),Oe("SETTINGS_BREADCRUMB",e,t),Oe("FILTER_LISTS_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.settings.breadcrumbs.filterLists.createLabel",{defaultMessage:"Create"})}]}),Fu=(e,t)=>({path:Object(Ee.c)(Fe.b.FILTER_LISTS_EDIT,"/:filterId"),title:u.i18n.translate("xpack.ml.settings.editFilter.docTitle",{defaultMessage:"Edit Filter"}),render:(e,t)=>Object(h.jsx)(Iu,m()({},e,{mode:Cu.EDIT,deps:t})),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("SETTINGS_BREADCRUMB",e,t),Oe("FILTER_LISTS_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.settings.breadcrumbs.filterLists.editLabel",{defaultMessage:"Edit"})}]}),Iu=({location:e,mode:t})=>{let a;if(t===Cu.EDIT){const t=e.pathname.match(/.+\/(.+)$/);a=t&&t.length>1?t[1]:void 0}const{context:i}=Ie("full",["canGetFilters","canCreateFilter"],{getMlNodeCount:vt.b});Object(ee.i)({timeRangeSelector:!1,autoRefreshSelector:!1});const[n,s]=Object(Se.f)(["canCreateFilter","canDeleteFilter"]);return Object(h.jsx)(Ee.b,{context:i},Object(h.jsx)(vu,{filterId:a,canCreateFilter:n,canDeleteFilter:s}))};var Du=a(99),Au=a(119),Lu=a(125),Ru=a(189),Nu=a(267),Pu=a(73),zu=a.n(Pu);a(434);const Bu=({overallDetails:e})=>Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",wrap:!0,"data-test-subj":e.dataTestSubj},e.items.map((e=>"badge"===e.title?Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiBetaBadge,{label:e.description,color:"subdued",title:e.title})):Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionListDescription,{className:"descriptionListTitle"},Object(h.jsx)(d.EuiText,{size:"xs"},e.title))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiDescriptionListTitle,{className:"descriptionListDescription"},Object(h.jsx)(d.EuiText,{size:"s"},Object(h.jsx)("h5",null,e.description))))))))),Vu=({section:e})=>Object(h.jsx)(d.EuiFlexGroup,{direction:"column",gutterSize:"s","data-test-subj":e.dataTestSubj},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("span",null,e.title))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,null,e.items.map((e=>Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionListDescription,{className:"descriptionListTitle"},Object(h.jsx)(d.EuiText,{size:"xs"},e.title)),Object(h.jsx)(d.EuiDescriptionListTitle,{className:"descriptionListDescription"},Object(h.jsx)(d.EuiText,{size:"xs"},Object(h.jsx)("h5",null,e.description))))))))),Ju=({section:e})=>{if(null!=e&&e.items&&0===e.items.length)return null;const t=[{field:"title",name:""},{field:"description",name:"",render:e=>Object(h.jsx)(s.a.Fragment,null,e)}];return Object(h.jsx)("div",{"data-test-subj":e.dataTestSubj},Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("span",null,e.title)),Object(h.jsx)(d.EuiBasicTable,{compressed:!0,items:e.items,columns:t,tableCaption:e.title,tableLayout:"auto",className:"mlExpandedRowDetailsSection","data-test-subj":`${e.dataTestSubj}-table`}))},Uu=({analysisStats:e,dataCounts:t,memoryUsage:a,overallDetails:i,progress:n,dataTestSubj:o})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiFlexGroup,{direction:"column",className:"mlExpandedRowDetails","data-test-subj":o,gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Bu,{overallDetails:i})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Vu,{section:t})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Vu,{section:a})))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiHorizontalRule,{margin:"xs"})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,{grow:1,"data-test-subj":n.dataTestSubj},Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("span",null,n.title)),Object(h.jsx)(d.EuiSpacer,{size:"xs"}),n.items.map((e=>Object(h.jsx)(s.a.Fragment,null,e.description,Object(h.jsx)(d.EuiSpacer,{size:"s"}))))),Object(h.jsx)(d.EuiFlexItem,{grow:3},Object(h.jsx)(d.EuiSpacer,{size:"s"}),e?Object(h.jsx)(Ju,{section:e}):null))))),Gu=({json:e,dataTestSubj:t})=>Object(h.jsx)(d.EuiFlexGroup,{"data-test-subj":t},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiCodeBlock,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analyticsList.analyticsDetails.expandedRowJsonPane",{defaultMessage:"JSON of data frame analytics configuration"}),style:{width:"100%"},language:"json",fontSize:"s",paddingSize:"s",overflowHeight:300,isCopyable:!0,"data-test-subj":"mlAnalyticsDetailsJsonPreview"},JSON.stringify(e,null,2))),Object(h.jsx)(d.EuiFlexItem,{grow:!1}," "));a(439);const qu=({analyticsId:e,dataTestSubj:t})=>{const[a,i]=Object(n.useState)([]),[s,o]=Object(n.useState)(!1),[r,l]=Object(n.useState)(""),c=Object(qe.c)(),d=Object(n.useCallback)((async()=>{try{o(!0);const t=await Je.ml.dataFrameAnalytics.getAnalyticsAuditMessages(e);o(!1),i(t)}catch(e){o(!1),c.displayErrorToast(e,u.i18n.translate("xpack.ml.dfAnalyticsList.analyticsDetails.messagesPane.errorToastMessageTitle",{defaultMessage:"Error loading job messages"})),l(u.i18n.translate("xpack.ml.dfAnalyticsList.analyticsDetails.messagesPane.errorMessage",{defaultMessage:"Messages could not be loaded"}))}}),[]);return Object(n.useEffect)((()=>{d()}),[]),Object(Au.n)({onRefresh:d}),Object(h.jsx)("div",{className:"mlExpandedRowJobMessages","data-test-subj":t},Object(h.jsx)(ii,{messages:a,loading:s,error:r,refreshMessage:d}))};function $u(e){return"object"==typeof e?JSON.stringify(e):e.toString()}const Wu=({item:e})=>{var t,a,i;const n=Object(Du.s)(e.config.analysis),s={...e.stats},o=s.analysis_stats?s.analysis_stats[`${n}_stats`]:void 0;null!==(t=e.config)&&void 0!==t&&t.description&&(s.description=e.config.description),delete s.progress;const r={title:u.i18n.translate("xpack.ml.dataframe.analyticsList.expandedRow.tabs.jobSettings.dataCounts",{defaultMessage:"Data counts"}),items:[{title:u.i18n.translate("xpack.ml.dataframe.analyticsList.expandedRow.tabs.jobSettings.trainingDocsCount",{defaultMessage:"Training docs"}),description:s.data_counts.training_docs_count},{title:u.i18n.translate("xpack.ml.dataframe.analyticsList.expandedRow.tabs.jobSettings.testDocsCount",{defaultMessage:"Test docs"}),description:s.data_counts.test_docs_count},{title:u.i18n.translate("xpack.ml.dataframe.analyticsList.expandedRow.tabs.jobSettings.skippedDocsCount",{defaultMessage:"Skipped docs"}),description:s.data_counts.skipped_docs_count}],dataTestSubj:"mlAnalyticsTableRowDetailsSection counts"},l={title:u.i18n.translate("xpack.ml.dataframe.analyticsList.expandedRow.tabs.jobSettings.memoryUsage",{defaultMessage:"Memory usage"}),items:[{title:u.i18n.translate("xpack.ml.dataframe.analyticsList.expandedRow.tabs.jobSettings.timestamp",{defaultMessage:"Timestamp"}),description:Object(ft.d)(1e3*zu()(s.memory_usage.timestamp).unix())},{title:u.i18n.translate("xpack.ml.dataframe.analyticsList.expandedRow.tabs.jobSettings.peakUsageBytes",{defaultMessage:"Peak usage bytes"}),description:s.memory_usage.peak_usage_bytes},{title:"Status",description:s.memory_usage.status}],dataTestSubj:"mlAnalyticsTableRowDetailsSection stats"},{currentPhase:c,totalPhases:p}=Object(Lu.c)(e.stats),m={title:u.i18n.translate("xpack.ml.dataframe.analyticsList.expandedRow.tabs.jobSettings.progressTitle",{defaultMessage:"Phase {phase}",values:{phase:`${c}/${p}`}}),items:[...e.stats.progress.map((e=>({title:e.phase,description:Object(h.jsx)(d.EuiProgress,{label:e.phase,valueText:!0,value:e.progress_percent,max:100,color:"success",size:"s"})})))],dataTestSubj:"mlAnalyticsTableRowDetailsSection progress"},b={title:u.i18n.translate("xpack.ml.dataframe.analyticsList.expandedRow.tabs.jobSettings.stats",{defaultMessage:"Overall"}),items:[{title:"badge",description:s.state},{title:"Create time",description:Object(ft.d)(1e3*zu()(e.config.create_time).unix())},{title:u.i18n.translate("xpack.ml.dataframe.analyticsList.expandedRow.tabs.jobSettings.modelMemoryLimit",{defaultMessage:"Model memory limit"}),description:null!==(a=e.config.model_memory_limit)&&void 0!==a?a:""},{title:u.i18n.translate("xpack.ml.dataframe.analyticsList.expandedRow.tabs.jobSettings.version",{defaultMessage:"Version"}),description:null!==(i=e.config.version)&&void 0!==i?i:""}],dataTestSubj:"mlAnalyticsTableRowDetailsSection state"},f=o?{title:u.i18n.translate("xpack.ml.dataframe.analyticsList.expandedRow.tabs.jobSettings.analysisStats",{defaultMessage:"Analysis stats"}),items:[{title:"timestamp",description:Object(ft.d)(1e3*zu()(o.timestamp).unix())},{title:"timing_stats",description:$u(o.timing_stats)},...Object.entries(o.parameters||o.hyperparameters||{}).map((([e,t])=>({title:e.toString(),description:$u(t)})))],dataTestSubj:"mlAnalyticsTableRowDetailsSection analysisStats"}:void 0,g=[{id:"ml-analytics-job-details",name:u.i18n.translate("xpack.ml.dataframe.analyticsList.expandedRow.tabs.jobSettingsLabel",{defaultMessage:"Details"}),content:Object(h.jsx)(Uu,{overallDetails:b,dataCounts:r,memoryUsage:l,analysisStats:f,progress:m,dataTestSubj:`mlAnalyticsTableRowDetailsTabContent job-details ${e.config.id}`}),"data-test-subj":`mlAnalyticsTableRowDetailsTab job-details ${e.config.id}`},{id:"ml-analytics-job-json",name:"JSON",content:Object(h.jsx)(Gu,{json:e.config,dataTestSubj:`mlAnalyticsTableRowDetailsTabContent json ${e.config.id}`}),"data-test-subj":`mlAnalyticsTableRowDetailsTab json ${e.config.id}`},{id:"ml-analytics-job-messages",name:u.i18n.translate("xpack.ml.dataframe.analyticsList.analyticsDetails.tabs.analyticsMessagesLabel",{defaultMessage:"Messages"}),content:Object(h.jsx)(qu,{analyticsId:e.id,dataTestSubj:`mlAnalyticsTableRowDetailsTabContent job-messages ${e.config.id}`}),"data-test-subj":`mlAnalyticsTableRowDetailsTab job-messages ${e.config.id}`}];return Object(h.jsx)(d.EuiTabbedContent,{size:"s",tabs:g,initialSelectedTab:g[0],onTabClick:()=>{},expand:!1,style:{width:"100%"},"data-test-subj":`mlAnalyticsTableRowDetails-${e.config.id}`})},Hu=({isDisabled:e,navigateToSourceSelection:t})=>{const a=Object(h.jsx)(d.EuiButton,{disabled:e,fill:!0,onClick:()=>{t()},iconType:"plusInCircle",size:"s","data-test-subj":"mlAnalyticsButtonCreate"},u.i18n.translate("xpack.ml.dataframe.analyticsList.createDataFrameAnalyticsButton",{defaultMessage:"Create job"}));return e?Object(h.jsx)(d.EuiToolTip,{position:"top",content:Object(Se.e)("canCreateDataFrameAnalytics")},a):a};var Yu=a(221),Xu=a(205),Qu=a(141);const Ku=[{type:"field_value_selection",field:"job_type",name:u.i18n.translate("xpack.ml.dataframe.analyticsList.typeFilter",{defaultMessage:"Type"}),multiSelect:"or",options:Object.values(Du.b).map((e=>({value:e,name:e,view:Object(Nu.b)(e)})))},{type:"field_value_selection",field:"state",name:u.i18n.translate("xpack.ml.dataframe.analyticsList.statusFilter",{defaultMessage:"Status"}),multiSelect:"or",options:Object.values(Du.d).map((e=>({value:e,name:e,view:Object(Nu.c)(e)})))}],Zu=({isMlEnabledInSpace:e=!0,blockRefresh:t=!1,pageState:a,updatePageState:i})=>{var s;const o=Object(Te.h)(),r=null!==(s=a.queryText)&&void 0!==s?s:"",l=Object(n.useCallback)((e=>{i({queryText:e})}),[i]),[c,p]=Object(n.useState)(!1),[m,b]=Object(n.useState)(!1),[f,g]=Object(n.useState)([]),[j,x]=Object(n.useState)(),[v,y]=Object(n.useState)([]),[O,E]=Object(n.useState)(void 0),[w,M]=Object(n.useState)([]),[S,_]=Object(n.useState)(void 0),[T,C]=Object(n.useState)(0),k=Object(Qu.a)(),[F,I]=Object(Se.f)(["canCreateDataFrameAnalytics","canStartStopDataFrameAnalytics"]),D=!F||!I,A=Object(Ru.d)(y,E,_,p,C,t),L=Object(n.useCallback)((e=>{if(e.length){const t=function(e,t){if(0===t.length)return e;const a=e.reduce(((e,t)=>(e[t.id]={job:t,count:0},e)),{});return t.forEach((t=>{const i="must"===t.match;let n=[];n="term"===t.type?!0===i?e.filter((e=>{var a,n;return Object(We.g)(e.id,t.value)===i||Object(We.g)(e.config.description,t.value)===i||Object(We.g)(null===(a=e.stats)||void 0===a||null===(n=a.memory_usage)||void 0===n?void 0:n.status,t.value)===i})):e.filter((e=>{var a,n;return Object(We.g)(e.id,t.value)===i&&Object(We.g)(e.config.description,t.value)===i&&Object(We.g)(null===(a=e.stats)||void 0===a||null===(n=a.memory_usage)||void 0===n?void 0:n.status,t.value)===i})):Array.isArray(t.value)?e.filter((e=>t.value.includes(e[t.field]))):e.filter((e=>e[t.field]===t.value)),n.forEach((e=>a[e.id].count++))})),Object.values(a).filter((e=>(e&&e.count)>=t.length)).map((e=>e.job))}(v,e);g(t)}else g(v)}),[v]);Object(n.useEffect)((()=>{(()=>{if(""!==r){const e=d.EuiSearchBar.Query.parse(r);let t=[];e&&void 0!==e.ast&&void 0!==e.ast.clauses&&(t=e.ast.clauses),L(t)}else L([])})()}),[r]);const R=Object(n.useCallback)((()=>A(!0)),[]),{refresh:N}=Object(Au.n)({isLoading:b,onRefresh:R});Object(n.useEffect)((function(){R()}),[k]);const{columns:P,modals:z}=Object(Nu.e)(w,M,e,N),{onTableChange:B,pagination:V,sorting:J}=Object(Xu.a)(f.length,a,i),U=Object(n.useCallback)((async()=>{await o(Fe.b.DATA_FRAME_ANALYTICS_SOURCE_SELECTION)}),[]);if(!c)return null;if(void 0!==S)return Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.dataFrame.analyticsList.errorPromptTitle",{defaultMessage:"An error occurred getting the data frame analytics list."}),color:"danger",iconType:"warning"},Object(h.jsx)("pre",null,JSON.stringify(S)));if(0===v.length)return Object(h.jsx)("div",{"data-test-subj":"mlAnalyticsJobList"},Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(Yu.a,null));const G=(q=v,w.reduce(((e,t)=>{const a=q.find((e=>e.config.id===t));return void 0!==a&&(e[t]=Object(h.jsx)(Wu,{item:a})),e}),{}));var q;const $=O&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(cn.a,{stats:O,dataTestSub:"mlAnalyticsStatsBar"})),W={query:r,onChange:e=>{null===e.error?(x(void 0),l(e.queryText)):x(e.error.message)},box:{incremental:!0},filters:Ku};return Object(h.jsx)("div",{"data-test-subj":"mlAnalyticsJobList"},z,Object(h.jsx)(pn.a,{jobCount:T}),Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},$,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Hu,{isDisabled:D,navigateToSourceSelection:U}))))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)("div",{"data-test-subj":"mlAnalyticsTableContainer"},Object(h.jsx)(d.EuiInMemoryTable,{allowNeutralSort:!1,columns:P,hasActions:!1,isExpandable:!0,itemIdToExpandedRowMap:G,isSelectable:!1,items:v,itemId:Lu.b.id,loading:m,onTableChange:B,pagination:V,sorting:J,search:W,"data-test-subj":m?"mlAnalyticsTable loading":"mlAnalyticsTable loaded",rowProps:e=>({"data-test-subj":`mlAnalyticsTableRow row-${e.id}`}),error:j})))};var ep=a(268);const tp=()=>{var e,t;const[a,i]=Object(n.useState)(!1),[o]=Object(ze.d)("_g"),[l,c]=Object(ze.c)(Fe.b.DATA_FRAME_ANALYTICS_JOBS_MANAGE,{pageIndex:0,pageSize:10,sortField:Lu.b.id,sortDirection:"asc"});(e=>{const{services:t}=Object(Te.d)(),[a]=Object(ze.d)("_g"),{timefilter:i}=t.data.query.timefilter,{refresh:s}=Object(Au.n)();Object(n.useEffect)((()=>{let t=null;const n=i.getRefreshIntervalUpdate$().subscribe(o);function o(){const{value:a,pause:n}=i.getRefreshInterval();n?r():function(a){if(r(),a>=Pe){e(!1);const i=window.setInterval((()=>{s()}),a);t=i}}(a),s()}function r(){e(!0),null!==t&&window.clearInterval(t)}return i.disableTimeRangeSelector(),i.enableAutoRefreshSelector(),function(){var e;const t=null!==(e=null==a?void 0:a.refreshInterval)&&void 0!==e?e:i.getRefreshInterval(),{pause:n,value:s}=t;!0!==n&&0!==s||i.setRefreshInterval({pause:!1,value:3e4}),o()}(),()=>{n.unsubscribe(),r()}}),[])})(i);const[d,u]=Object(n.useState)(!1),{refresh:p}=Object(Au.n)({isLoading:u}),m=Object(r.useLocation)(),b=Object(n.useMemo)((()=>m.pathname.split("/").pop()),[m]),f=null==o||null===(e=o.ml)||void 0===e?void 0:e.jobId,j=null==o||null===(t=o.ml)||void 0===t?void 0:t.modelId,{services:{docLinks:x}}=Object(Te.d)(),v=x.links.ml.dataFrameAnalytics;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analyticsList.title",defaultMessage:"Data Frame Analytics Jobs"})),Object(h.jsx)(un.b,null),Object(h.jsx)(mn.a,{onCloseFlyout:p,forceRefresh:d}),Object(h.jsx)(bn.a,null),"map"===b&&(f||j)&&Object(h.jsx)(ep.a,{analyticsId:f,modelId:j}),"data_frame_analytics"===b&&Object(h.jsx)(Zu,{blockRefresh:a,pageState:l,updatePageState:c}),Object(h.jsx)(_e.a,{docLink:v}))},ap=(e,t)=>({id:"data_frame_analytics",path:Object(Ee.c)(te.a.DATA_FRAME_ANALYTICS_JOBS_MANAGE),title:u.i18n.translate("xpack.ml.dataFrameAnalytics.jobs.docTitle",{defaultMessage:"Data Frame Analytics Jobs"}),render:()=>Object(h.jsx)(ip,null),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("DATA_FRAME_ANALYTICS_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.dataFrameAnalyticsBreadcrumbs.jobsManagementLabel",{defaultMessage:"Jobs"})}],"data-test-subj":"mlPageDataFrameAnalytics",enableDatePicker:!0}),ip=()=>{const{context:e}=Ie("full",["canGetDataFrameAnalytics"],Sn());return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(tp,null))};var np=a(131),sp=a.n(np);const op=({colorRange:e,justifyTicks:t=!1,showTicks:a=!0,title:i,width:s=250})=>{const o=Object(n.useRef)(null),r=sp.a.range(11).map((t=>({offset:t/10*100,stopColor:e(t/10)})));return Object(n.useEffect)((()=>{if(null===o.current)return;const e=s,i=t||!a?1:4,n=e-i-1;sp.a.select(o.current).selectAll("*").remove();const l=sp.a.select(o.current).classed("mlColorRangeLegend",!0).attr("width",e).attr("height",32).append("g").attr("transform","translate("+i+",2)"),c=l.append("defs").append("linearGradient").attr("id","mlColorRangeGradient").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%").attr("spreadMethod","pad");r.forEach((function(e){c.append("stop").attr("offset",`${e.offset}%`).attr("stop-color",e.stopColor).attr("stop-opacity",1)})),l.append("rect").attr("x1",0).attr("y1",0).attr("width",n).attr("height",10).style("fill","url(#mlColorRangeGradient)");const d=sp.a.scale.linear().domain([0,1]).range([0,n]),u=sp.a.format(""),p=sp.a.svg.axis().scale(d).orient("bottom").tickFormat(u).tickSize(14).ticks(n/40);if(l.append("g").attr("class","legend axis").attr("transform","translate(0, 0)").call(p),t||!a){const e=l.selectAll("text")[0];e.length>1&&(sp.a.select(e[0]).style("text-anchor","start"),sp.a.select(e[e.length-1]).style("text-anchor","end"))}a||l.selectAll(".axis line").style("display","none")}),[JSON.stringify(r),o.current]),void 0===i?Object(h.jsx)("svg",{ref:o}):Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"xs",color:"subdued"},Object(h.jsx)("p",null,i))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)("svg",{ref:o})))};let rp,lp;!function(e){e.LINEAR="linear",e.INFLUENCER="influencer",e.SQRT="sqrt"}(rp||(rp={})),rp.LINEAR,u.i18n.translate("xpack.ml.components.colorRangeLegend.linearScaleLabel",{defaultMessage:"Linear"}),rp.INFLUENCER,u.i18n.translate("xpack.ml.components.colorRangeLegend.influencerScaleLabel",{defaultMessage:"Influencer custom scale"}),rp.SQRT,u.i18n.translate("xpack.ml.components.colorRangeLegend.sqrtScaleLabel",{defaultMessage:"Sqrt"}),function(e){e.BLUE="blue",e.RED="red",e.RED_GREEN="red-green",e.GREEN_RED="green-red",e.YELLOW_GREEN_BLUE="yellow-green-blue"}(lp||(lp={})),lp.BLUE,u.i18n.translate("xpack.ml.components.colorRangeLegend.blueColorRangeLabel",{defaultMessage:"Blue"}),lp.RED,u.i18n.translate("xpack.ml.components.colorRangeLegend.redColorRangeLabel",{defaultMessage:"Red"}),lp.RED_GREEN,u.i18n.translate("xpack.ml.components.colorRangeLegend.redGreenColorRangeLabel",{defaultMessage:"Red - Green"}),lp.GREEN_RED,u.i18n.translate("xpack.ml.components.colorRangeLegend.greenRedColorRangeLabel",{defaultMessage:"Green - Red"}),lp.YELLOW_GREEN_BLUE,u.i18n.translate("xpack.ml.components.colorRangeLegend.yellowGreenBlueColorRangeLabel",{defaultMessage:"Yellow - Green - Blue"});const cp=["#FFFFDD","#AAF191","#80D385","#61B385","#3E9583","#217681","#285285","#1F2D86","#000086"],dp=sp.a.range(0,1,1/(cp.length-1));dp.push(1);const up={[lp.BLUE]:[0,1],[lp.RED]:[0,1],[lp.RED_GREEN]:[0,1],[lp.GREEN_RED]:[0,1],[lp.YELLOW_GREEN_BLUE]:dp},pp=(e=lp.BLUE,t=rp.LINEAR,a=1)=>{const{euiTheme:i}=Object(Te.a)(),n={[lp.BLUE]:[sp.a.rgb(i.euiColorEmptyShade).toString(),sp.a.rgb(i.euiColorVis1).toString()],[lp.RED]:[sp.a.rgb(i.euiColorEmptyShade).toString(),sp.a.rgb(i.euiColorDanger).toString()],[lp.RED_GREEN]:["red","green"],[lp.GREEN_RED]:["green","red"],[lp.YELLOW_GREEN_BLUE]:cp},s=sp.a.scale.linear().domain(up[e]).range(n[e]),o=(r=a,e=>r<=1?e:e<1/r?0:e<3/r?r/4*(e-1/r):e-3/r+.5);var r;const l={[rp.LINEAR]:s,[rp.INFLUENCER]:e=>s(o(e)),[rp.SQRT]:sp.a.scale.sqrt().domain(up[e]).range(n[e])};return l[t]},mp=(e,t,a,i="")=>Object(n.useMemo)((()=>{const n=[];return void 0===e||void 0===t?n:(t.length>1?n.push(...t.filter((t=>e.fields.some((e=>e.name===t&&"number"===e.type))))):n.push(...e.fields.filter((t=>"number"===t.type&&!e.metaFields.includes(t.name)&&!t.name.startsWith(`${i}.`)&&t.name!==Du.l)).map((e=>e.name))),Array.isArray(a)&&a.length>0?n.filter((e=>!a.includes(e))):n)}),[e,t,a]);var bp=a(34),fp=a.n(bp),gp=a(173),hp=a(162),jp=a(142);const xp=()=>Object(h.jsx)(d.EuiText,{textAlign:"center"},Object(h.jsx)(d.EuiSpacer,{size:"l"}),Object(h.jsx)(d.EuiLoadingSpinner,{size:"l"}),Object(h.jsx)(d.EuiSpacer,{size:"l"})),vp=s.a.lazy((()=>a.e(14).then(a.bind(null,667)))),yp=e=>Object(h.jsx)(d.EuiErrorBoundary,null,Object(h.jsx)(n.Suspense,{fallback:Object(h.jsx)(xp,null)},Object(h.jsx)(vp,e)));var Op=a(227);const Ep="outlier_score",wp="user_selection",Mp="single_point_click",Sp="#bbb",_p=(Object(d.euiPaletteNegative)(2)[1],Object(d.euiPaletteColorBlind)()[2],[Object(d.euiPaletteColorBlind)()[1],Object(d.euiPaletteColorBlind)()[2]]),Tp=Object(d.euiPaletteColorBlind)({rotations:2}),Cp=Object(d.euiPalettePositive)(5),kp="fields",Fp=(e,t,a,i,n,s,o,r,l)=>{const c=s?{selection:{[wp]:{type:"interval"},[Mp]:{type:"single"},mlOutlierScoreThreshold:{type:"single",fields:["cutoff"],bind:{input:"range",max:1,min:0,name:u.i18n.translate("xpack.ml.splomSpec.outlierScoreThresholdName",{defaultMessage:"Outlier score threshold: "}),step:.01},init:{cutoff:.99}}}}:{selection:{[wp]:{type:"interval"},[Mp]:{type:"single",empty:"none"}}};return{...e?{}:{data:{values:[...a]}},mark:{...s&&o?{type:"circle",strokeWidth:1.2,strokeOpacity:.75,fillOpacity:.1}:{type:"circle",opacity:.75,size:8}},...s?{transform:[{calculate:`datum${e?`.${kp}`:""}['${n}'] >= mlOutlierScoreThreshold.cutoff`,as:"is_outlier"}]}:{},encoding:{color:t?{value:Sp}:i,opacity:{condition:{selection:wp,value:.8},value:.5},...o?{stroke:i,opacity:{condition:{value:1,test:`(datum${e?`.${kp}`:""}['${n}'] >= mlOutlierScoreThreshold.cutoff)`},value:.5}}:{},...s?{order:{field:`${e?`${kp}.`:""}${n}`},size:{...o?{type:Op.a.QUANTITATIVE,field:`${e?`${kp}.`:""}${n}`,scale:{type:"linear",range:[8,200],domain:[0,1]}}:{condition:{value:40,test:`(datum${e?`.${kp}`:""}['${n}'] >= mlOutlierScoreThreshold.cutoff)`},value:8}}}:{},x:{type:Op.a.QUANTITATIVE,field:{repeat:"column"},scale:{zero:!1}},y:{type:Op.a.QUANTITATIVE,field:{repeat:"row"},scale:{zero:!1}},tooltip:[...void 0!==l?[{type:i.condition.type,field:`${e?`${kp}.`:""}${Ip(l)}`}]:[],...r.map((e=>({type:Op.a.QUANTITATIVE,field:e}))),...s?[{type:Op.a.QUANTITATIVE,field:`${e?`${kp}.`:""}${n}`,format:".3f"}]:[]]},...t?{}:c,...e?{}:{width:125},...e?{}:{height:125}}};function Ip(e,t=""){return`${t}${e.replace(/([\.|\[|\]])/g,"\\$1")}`}const Dp=(e,t,a,i,n,s,o,r,l)=>{const c=t,d=i.map((t=>Ip(t,e?"fields.":""))),u=void 0!==s,p=`${s}\\.${Ep}`,m=((e,t,a,i,n)=>"string"==typeof a?{condition:{selection:wp,field:Ip(null!=="is_outlier"?"is_outlier":"00FF00"),type:Op.a.NOMINAL,scale:{range:_p}},value:Sp}:void 0!==i&&void 0!==n?{condition:{selection:wp,field:`${e?`${kp}.`:""}${Ip(null!=i?i:"00FF00")}${e?"[0]":""}`,type:n,scale:{range:n===Op.a.NOMINAL?Tp:Cp}},value:Sp}:{condition:[{selection:wp},{selection:Mp}],value:Sp})(e,0,s&&p,o,r),b={$schema:"https://vega.github.io/schema/vega-lite/v4.17.0.json",background:"transparent",view:{fill:"transparent",stroke:n.euiColorLightestShade},padding:10,config:{axis:{domainColor:n.euiColorLightShade,gridColor:n.euiColorLightestShade,tickColor:n.euiColorLightestShade,labelColor:n.euiTextSubduedColor,titleColor:n.euiTextSubduedColor},legend:{orient:"right",labelColor:n.euiTextSubduedColor,titleColor:n.euiTextSubduedColor}},repeat:{column:d,row:d.slice().reverse()},spec:{layer:[Fp(e,!1,c,m,p,u,!!l,d,o)]}};return a.length&&b.spec.layer.unshift(Fp(e,!0,a,m,p,u,!!l,d,o)),b};a(582);const Ap=u.i18n.translate("xpack.ml.splom.toggleOn",{defaultMessage:"On"}),Lp=u.i18n.translate("xpack.ml.splom.toggleOff",{defaultMessage:"Off"}),Rp=[100,1e3,1e4].map((e=>({value:e,text:""+e}))),Np=({label:e,tooltip:t})=>Object(h.jsx)(s.a.Fragment,null,e,Object(h.jsx)(d.EuiIconTip,{content:t,iconProps:{className:"eui-alignTop"},size:"s"}));function Pp(e,t){var a;return null!==(a=e.map((e=>{var a;return Object(jp.j)(null!==(a=e.fields)&&void 0!==a?a:{},(e=>e.startsWith(`${t}.feature_importance`)))})).filter((e=>!Object.keys(e).some((t=>Array.isArray(e[t]))))))&&void 0!==a?a:[]}const zp=({fields:e,index:t,resultsField:a,color:i,legendType:o,searchQuery:r,runtimeMappings:l,indexPattern:c,query:p})=>{const{esSearch:m}=Object(Te.c)(),b=Object(Te.d)(),{services:{application:f,data:g}}=b,[j,x]=Object(n.useState)(!1),[v,y]=Object(n.useState)([]);Object(n.useEffect)((()=>{const t=e.length>4?e.slice(0,4):e;y(t)}),[e]);const[O,E]=Object(n.useState)(1e3),[w,M]=Object(n.useState)(!1),[S,_]=Object(n.useState)(!1),[T,C]=Object(n.useState)(),{euiTheme:k}=Object(Te.a)(),F=Object(n.useMemo)((()=>e.map((e=>({label:e})))),[e]),I=Object(n.useCallback)((()=>{const{columns:e}=T,n=void 0!==a?`${a}.${Ep}`:void 0,s=Dp(!0,[],[],e,k,a,i,o,j);s.$schema="https://vega.github.io/schema/vega-lite/v5.json",s.title=`Scatterplot matrix for ${t}`;const r=[...e,...n?[n]:[],...i?[i]:[]];return s.data={url:{"%context%":!0,...null!=c&&c.timeFieldName?{"%timefield%":`${null==c?void 0:c.timeFieldName}`}:{},index:t,body:{fields:r,size:O,_source:!1}},format:{property:"hits.hits"}},{path:`/create?type=vega&_g=${encodeURIComponent(fp.a.encode({filters:g.query.filterManager.getFilters(),refreshInterval:g.query.timefilter.timefilter.getRefreshInterval(),time:g.query.timefilter.timefilter.getTime()}))}&_a=${encodeURIComponent(fp.a.encode({filters:[],linked:!1,query:p,uiState:{},vis:{aggs:[],params:{spec:JSON.stringify(s,null,2)}}}))}`}}),[T]);Object(n.useEffect)((()=>{if(0===v.length)return C({columns:[],items:[],backgroundItems:[],messages:[]}),void _(!1);const e={didCancel:!1};return async function(e){_(!0);const n=[];try{const o=`${a}.${Ep}`,d=void 0!==a,p=[...v,...void 0!==i?[i]:[],...d?[o]:[]],b=w?{function_score:{query:r,random_score:{seed:10,field:"_seq_no"}}}:r;let f;r&&(r.match_all&&Object.keys(r.match_all).length>0||r.bool&&Object.keys(r.bool).length>0)&&(f=w?{function_score:{query:{bool:{must_not:[r]}},random_score:{seed:10,field:"_seq_no"}}}:{bool:{must_not:[r]}});const g=c&&Object(hp.a)(c,l),h={fields:p,_source:!1,query:b,from:0,size:O,...Object(hp.c)(g)?{runtime_mappings:g}:{}},j=[m({index:t,body:h})];f&&j.push(m({index:t,body:{...h,query:f}}));const[x,y]=await Promise.all(j);if(!e.didCancel){var s;const e=Pp(x.hits.hits,a),t=Pp(null!==(s=null==y?void 0:y.hits.hits)&&void 0!==s?s:[],a),i=x.hits.hits.length,o=i-e.length;i===o?n.push(u.i18n.translate("xpack.ml.splom.allDocsFilteredWarningMessage",{defaultMessage:"All fetched documents included fields with arrays of values and cannot be visualized."})):x.hits.hits.length!==e.length&&n.push(u.i18n.translate("xpack.ml.splom.arrayFieldsWarningMessage",{defaultMessage:"{filteredDocsCount} out of {originalDocsCount} fetched documents include fields with arrays of values and cannot be visualized.",values:{originalDocsCount:i,filteredDocsCount:o}})),C({columns:v,items:e,backgroundItems:t,messages:n}),_(!1)}}catch(e){_(!1),C({columns:[],items:[],backgroundItems:[],messages:[Object(ei.b)(e)]})}}(e),()=>{e.didCancel=!0}}),[O,JSON.stringify({fields:v,searchQuery:r}),t,w,a]);const D=Object(n.useMemo)((()=>{if(void 0===T)return;const{items:e,backgroundItems:t,columns:n}=T;return Dp(!1,e,t,n,k,a,i,o,j)}),[a,T,i,o,j]);return Object(h.jsx)(s.a.Fragment,null,void 0===T||void 0===D?Object(h.jsx)(xp,null):Object(h.jsx)("div",{"data-test-subj":"mlScatterplotMatrix "+(S?"loading":"loaded")},Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(Np,{label:u.i18n.translate("xpack.ml.splom.fieldSelectionLabel",{defaultMessage:"Fields"}),tooltip:u.i18n.translate("xpack.ml.splom.fieldSelectionInfoTooltip",{defaultMessage:"Pick fields to explore their relationships."})}),display:"rowCompressed",fullWidth:!0},Object(h.jsx)(d.EuiComboBox,{compressed:!0,fullWidth:!0,placeholder:u.i18n.translate("xpack.ml.splom.fieldSelectionPlaceholder",{defaultMessage:"Select fields"}),options:F,selectedOptions:v.map((e=>({label:e}))),onChange:e=>{y(e.map((e=>e.label)))},isClearable:!0,"data-test-subj":"mlScatterplotMatrixFieldsComboBox"}))),Object(h.jsx)(d.EuiFlexItem,{style:{width:"200px"},grow:!1},Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(Np,{label:u.i18n.translate("xpack.ml.splom.sampleSizeLabel",{defaultMessage:"Sample size"}),tooltip:u.i18n.translate("xpack.ml.splom.sampleSizeInfoTooltip",{defaultMessage:"Amount of documents to display in the scatterplot matrix."})}),display:"rowCompressed",fullWidth:!0},Object(h.jsx)(d.EuiSelect,{"data-test-subj":"mlScatterplotMatrixSampleSizeSelect",compressed:!0,options:Rp,value:O,onChange:e=>{E(Math.min(Math.max(parseInt(e.target.value,10),1),1e4))}}))),Object(h.jsx)(d.EuiFlexItem,{style:{width:"120px"},grow:!1},Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(Np,{label:u.i18n.translate("xpack.ml.splom.randomScoringLabel",{defaultMessage:"Random scoring"}),tooltip:u.i18n.translate("xpack.ml.splom.randomScoringInfoTooltip",{defaultMessage:"Uses a function score query to get randomly selected documents as the sample."})}),display:"rowCompressed",fullWidth:!0},Object(h.jsx)(d.EuiSwitch,{"data-test-subj":"mlScatterplotMatrixRandomizeQuerySwitch",name:"mlScatterplotMatrixRandomizeQuery",label:w?Ap:Lp,checked:w,onChange:()=>{M(!w)},disabled:S}))),void 0!==a&&void 0===o&&Object(h.jsx)(d.EuiFlexItem,{style:{width:"120px"},grow:!1},Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(Np,{label:u.i18n.translate("xpack.ml.splom.dynamicSizeLabel",{defaultMessage:"Dynamic size"}),tooltip:u.i18n.translate("xpack.ml.splom.dynamicSizeInfoTooltip",{defaultMessage:"Scales the size of each point by its outlier score."})}),display:"rowCompressed",fullWidth:!0},Object(h.jsx)(d.EuiSwitch,{name:"mlScatterplotMatrixDynamicSize",label:j?Ap:Lp,checked:j,onChange:()=>{x(!j)},disabled:S}))),T?Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiLink,{onClick:async()=>{const e=I();await f.navigateToApp("visualize#",{path:e.path,openInNewTab:!1})},"data-test-subj":"mlSplomExploreInCustomVisualizationLink"},Object(h.jsx)(d.EuiIconTip,{content:u.i18n.translate("xpack.ml.splom.exploreInCustomVisualizationLabel",{defaultMessage:"Explore scatterplot charts in Vega based custom visualization"}),type:"visVega",size:"l"}))):null),T.messages.length>0&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiCallOut,{color:"warning"},T.messages.map((e=>Object(h.jsx)("span",{key:Object(gp.a)(e)},e,Object(h.jsx)("br",null)))))),T.items.length>0&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(yp,{vegaSpec:D}),T.backgroundItems.length?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,helpText:u.i18n.translate("xpack.ml.splom.backgroundLayerHelpText",{defaultMessage:"If the data points match your filter, they're shown in color; otherwise, they're blurred gray."})},Object(h.jsx)(s.a.Fragment,null))):null)))};function Bp(e){return{queryText:"",queryLanguage:ba.b.KUERY,pageIndex:0,pageSize:25,analysis:!1,evaluation:!0,feature_importance:!0,results:!0,splom:!0,...Object(et.a)(e)?e:{}}}function Vp(e){return Object(ze.c)(Fe.b.DATA_FRAME_ANALYTICS_EXPLORATION,Bp(e))}a(338);const Jp="header_items_loading",Up=({headerItems:e,content:t,isExpanded:a,contentPadding:i=!1,dataTestId:s,title:o,docsLink:r,urlStateKey:l})=>{const c=Object(n.useMemo)((()=>void 0!==a?{[l]:a}:void 0),[l,a]),[u,p]=Vp(c),m=void 0!==a&&u[l]===Bp(c)[l]?a:u[l],b=Object(n.useCallback)((()=>{p({[l]:!m})}),[m,p,l]);return Object(h.jsx)(d.EuiPanel,{paddingSize:"none","data-test-subj":`mlDFExpandableSection-${s}`,hasShadow:!1,hasBorder:!0},Object(h.jsx)("div",{className:"mlExpandableSection"},Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween",gutterSize:"none",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"l"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{onClick:b,iconType:m?"arrowDown":"arrowRight",iconSide:"left",flush:"left","data-test-subj":`mlDFExpandableSection-${s}-toggle-button`},Object(h.jsx)(d.EuiText,{size:"m",color:"default",style:{fontWeight:"bold"}},Object(h.jsx)("p",null,o)))),e===Jp&&Object(h.jsx)(d.EuiSkeletonText,{lines:1}),(f=e,Array.isArray(f)?e.map((({label:e,value:t,id:a})=>Object(h.jsx)(d.EuiFlexItem,{grow:!1,key:a,"data-test-subj":`mlDFExpandableSectionItem-${s}-${a}`},void 0!==e&&void 0!==t?Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"xs",textAlign:"center"},Object(h.jsx)("p",null,e))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiBadge,null,t))):null,void 0===e?Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"xs",color:"subdued",textAlign:"center"},t))):null))):null))),void 0!==r&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},r))),m&&Object(h.jsx)("div",{className:i?"mlExpandableSection-contentPadding":"","data-test-subj":`mlDFExpandableSection-${s}-content`},t));var f};var Gp=a(175);const qp=({jobId:e})=>{const[t,a]=Object(n.useState)();Object(n.useEffect)((()=>{(async()=>{const t=await Je.ml.dataFrameAnalytics.getDataFrameAnalytics(e),i=await Je.ml.dataFrameAnalytics.getDataFrameAnalyticsStats(e),n=t.data_frame_analytics[0],s=Object(Gp.b)(i)?i.data_frame_analytics[0]:void 0;if(void 0===s)return;const o={checkpointing:{},config:n,id:n.id,job_type:Object(Du.s)(n.analysis),mode:Lu.a.BATCH,state:s.state,stats:s};a(o)})()}),[e]);const i=(e=>{if(void 0===e)return Jp;const t=Array.isArray(e.config.source.index)?e.config.source.index.join():e.config.source.index;return[{id:"analysisTypeLabel",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.analysisTypeLabel",defaultMessage:"Type"}),value:e.job_type},{id:"analysisSourceIndexLabel",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.analysisSourceIndexLabel",defaultMessage:"Source index"}),value:t},{id:"analysisDestinationIndexLabel",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.analysisDestinationIndexLabel",defaultMessage:"Destination index"}),value:e.config.dest.index}]})(t),o=Object(h.jsx)(s.a.Fragment,null,void 0===t&&Object(h.jsx)(d.EuiText,{textAlign:"center"},Object(h.jsx)(d.EuiSpacer,{size:"l"}),Object(h.jsx)(d.EuiLoadingSpinner,{size:"l"}),Object(h.jsx)(d.EuiSpacer,{size:"l"})),void 0!==t&&Object(h.jsx)(Wu,{item:t}));return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Up,{dataTestId:"analysis",content:o,headerItems:i,urlStateKey:"analysis",title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.analysisSectionTitle",defaultMessage:"Analysis"})}),Object(h.jsx)(d.EuiSpacer,{size:"m"}))};var $p=a(67),Wp=a(157);const Hp=({destIndex:e,color:t})=>{const{services:{http:{basePath:a},application:{capabilities:i}}}=Object(Te.d)(),o=Object(n.useMemo)((()=>!0===i.savedObjectsManagement.edit||!0===i.indexPatterns.save),[i]);return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiText,{size:"xs",color:null!=t?t:"warning"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.dataViewPromptMessage",defaultMessage:"No data view exists for index {destIndex}. ",values:{destIndex:null!=e?e:""}}),!0===o?Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.dataViewPromptLink",defaultMessage:"{linkToDataViewManagement}{destIndex}.",values:{destIndex:e?` for ${e}`:"",linkToDataViewManagement:Object(h.jsx)(d.EuiLink,{href:`${a.get()}/app/management/kibana/dataViews/create`,target:"_blank"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.dataViewPromptLinkText",defaultMessage:"Create a data view"}))}}):null))},Yp=u.i18n.translate("xpack.ml.dataframe.analytics.explorationResults.documentsShownHelpText",{defaultMessage:"Showing documents for which predictions exist"}),Xp=u.i18n.translate("xpack.ml.dataframe.analytics.explorationResults.firstDocumentsShownHelpText",{defaultMessage:"Showing first {searchSize} documents for which predictions exist",values:{searchSize:Au.b}}),Qp=({colorRange:e,indexData:t,indexPattern:a,jobConfig:i,needsDestIndexPattern:o,resultsField:r,searchQuery:l})=>{var c;const{services:{application:p,share:b,data:f,http:{basePath:j}}}=Object(Te.d)(),x=null==a?void 0:a.id,v=Object(n.useMemo)((()=>b.url.locators.get("DISCOVER_APP_LOCATOR")),[b.url.locators]),y=Object(n.useMemo)((()=>{var e;return null!==(e=p.capabilities.discover)&&void 0!==e&&e.show?v?x?void 0:u.i18n.translate("xpack.ml.dataframe.analytics.exploration.dataGridActions.autoGeneratedDiscoverLinkErrorMessage",{defaultMessage:"Unable to link to Discover; no data view exists for this index"}):u.i18n.translate("xpack.ml.dataframe.analytics.exploration.dataGridActions.discoverLocatorMissingErrorMessage",{defaultMessage:"No locator for Discover detected"}):u.i18n.translate("xpack.ml.dataframe.analytics.exploration.dataGridActions.discoverNotEnabledErrorMessage",{defaultMessage:"Discover is not enabled"})}),[null===(c=p.capabilities.discover)||void 0===c?void 0:c.show,x,v]),{columnsWithCharts:O,status:E,tableItems:w}=t,M=((e,t,a,i,n,s)=>e.length>0&&(a.length>0||t===jp.b.LOADED)?[{id:"explorationTableTotalDocs",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.explorationTableTotalDocsLabel",defaultMessage:"Total docs"}),value:`${n===ba.a.GTE?">":""}${i}`},...void 0!==s?[{id:"colorRangeLegend",value:Object(h.jsx)(op,{colorRange:s,title:u.i18n.translate("xpack.ml.dataframe.analytics.exploration.colorRangeLegendTitle",{defaultMessage:"Feature influence score"})})}]:[]]:Jp)(O,E,w,t.rowCount,t.rowCountRelation,e),S=i&&i.analysis?Object(Du.s)(i.analysis):void 0,_=Object(n.useCallback)((async e=>{const a=w[e];if(void 0!==v)return await v.getRedirectUrl({indexPatternId:x,timeRange:f.query.timefilter.timefilter.getTime(),filters:f.query.filterManager.getFilters(),query:{language:ba.b.KUERY,query:t.visibleColumns.filter((e=>void 0!==a[e]&&("string"==typeof a[e]||"number"==typeof a[e])&&!e.includes(r))).map((e=>`${Object($p.escapeKuery)(e)}:${Object($p.escapeKuery)(String(a[e]))}`)).join(" and ")}})}),[null==t?void 0:t.visibleColumns,v,x,r,w,f]),T=[{id:"actions",width:60,headerCellRender:()=>Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.dataGridActions.columnTitle",defaultMessage:"Actions"}),rowCellRender:function({rowIndex:e}){const t=w[e],[s,o]=Object(n.useState)(!1),r=()=>o(!1),l=[Object(h.jsx)(d.EuiContextMenuItem,{icon:"discoverApp",key:"custom_discover_url",disabled:void 0!==y,onClick:async()=>{const t=await _(e);t&&p.navigateToUrl(t)}},y?Object(h.jsx)(d.EuiToolTip,{content:y},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.dataGridActions.viewInDiscover",defaultMessage:"View in Discover"})):Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.dataGridActions.viewInDiscover",defaultMessage:"View in Discover"}))];return i&&i._meta&&Array.isArray(i._meta.custom_urls)&&(null==i||i._meta.custom_urls.forEach(((e,i)=>{l.push(Object(h.jsx)(d.EuiContextMenuItem,{key:`custom_url_${i}`,icon:"popout",onClick:()=>{r(),((e,t)=>{const i=void 0!==t.time_range?Object(Ke.a)(t.time_range):null;let n;if(null!==i){const s=Object(Ue.cloneDeep)(e),o=s[a.timeFieldName],r=t.url_value;if(r.includes("$earliest$")){const e=bt()(o);e.subtract(i),s.earliest=e.toISOString()}if(r.includes("$latest$")){const e=bt()(o);e.add(i),s.latest=e.toISOString()}n=Object(We.f)(t.url_value,s,!0)}else n=Object(Wp.e)(t,e,f.query.timefilter.timefilter.getTime());Object(Wp.d)(n,t,j.get())})(t,e)},"data-test-subj":`mlExplorationDataGridRowActionCustomUrlButton_${i}`},e.url_name))}))),Object(h.jsx)(d.EuiPopover,{isOpen:s,panelPaddingSize:"none",anchorPosition:"upCenter",button:Object(h.jsx)(d.EuiButtonIcon,{"aria-label":"Show actions",iconType:"gear",color:"text",onClick:()=>o(!s)}),closePopover:r},Object(h.jsx)(d.EuiContextMenuPanel,{items:l,size:"s"}))}}],C=Object(n.useMemo)((()=>Object(Au.m)({analysisType:S,baseline:t.baseline,data:t.tableItems,pagination:t.pagination,predictionFieldName:t.predictionFieldName,resultsField:t.resultsField})),[S,t.baseline,t.tableItems,t.pagination,t.predictionFieldName,t.resultsField]),k=Object(h.jsx)(s.a.Fragment,null,void 0!==i&&o&&Object(h.jsx)("div",{className:"mlExpandableSection-contentPadding"},Object(h.jsx)(Hp,{destIndex:i.dest.index})),void 0!==i&&(Object(Du.E)(i.analysis)||Object(Du.z)(i.analysis))&&Object(h.jsx)(d.EuiText,{size:"xs",color:"subdued",className:"mlExpandableSection-contentPadding"},w.length===Au.b?Xp:Yp),(O.length>0||l!==Au.c)&&void 0!==a&&Object(h.jsx)(s.a.Fragment,null,O.length>0&&(w.length>0||E===jp.b.LOADED)&&Object(h.jsx)(jp.a,m()({},t,{trailingControlColumns:t.visibleColumns.length?T:void 0,dataTestSubj:"mlExplorationDataGrid",renderCellPopover:C,toastNotifications:Object($e.h)()}))));return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Up,{urlStateKey:"results",dataTestId:"results",content:k,headerItems:M,title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.explorationTableTitle",defaultMessage:"Results"})}),Object(h.jsx)(d.EuiSpacer,{size:"m"}))},Kp=e=>{const t=Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiHorizontalRule,{size:"full",margin:"none"}),Object(h.jsx)("div",{className:"mlExpandableSection-contentPadding"},Object(h.jsx)(zp,e)));return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Up,{dataTestId:"splom",urlStateKey:"splom",content:t,headerItems:void 0,isExpanded:!0,title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.splomSectionTitle",defaultMessage:"Scatterplot matrix"})}),Object(h.jsx)(d.EuiSpacer,{size:"m"}))};var Zp=a(86),em=a(124);const tm=({indexPattern:e,setSearchQuery:t,filters:a,query:i})=>{const[s,o]=Object(n.useState)(i),[r,l]=Object(n.useState)({}),[c,p]=Object(n.useState)(void 0),{services:m}=Object(Te.d)(),{unifiedSearch:b,data:f,storage:g,appName:j,notifications:x,http:v,docLinks:y,uiSettings:O,dataViews:E}=m,w=Object(n.useMemo)((()=>new RegExp(`${null==a?void 0:a.columnId}\\s*:\\s*(true|false)`,"g")),[null==a?void 0:a.columnId]);Object(n.useEffect)((function(){if(void 0!==a){const e=i.query.match(w);let t;null!==e&&e[0].includes("true")?t=Object.keys(a.key).find((e=>!0===a.key[e])):null!==e&&e[0].includes("false")&&(t=Object.keys(a.key).find((e=>!1===a.key[e]))),t&&l({[t]:!0})}}),[]),Object(n.useEffect)((()=>{try{let a={};switch(i.language){case ba.b.KUERY:a=Object($p.toElasticsearchQuery)(Object($p.fromKueryExpression)(i.query),e);break;case ba.b.LUCENE:a=Object($p.luceneStringToDsl)(i.query);break;default:return void p({query:i.query,message:u.i18n.translate("xpack.ml.queryBar.queryLanguageNotSupported",{defaultMessage:"Query language is not supported"})})}t({queryString:i.query,query:a,language:i.language})}catch(e){p({query:i.query,message:e.message})}}),[i.query]);const M=(e,a)=>{void 0===a&&l({}),t({queryString:e.query,language:e.language})},S=Object(Ue.debounce)(((e,t)=>{let i="";const n=null==a?void 0:a.key[e],r=`${null==a?void 0:a.columnId}:${n}`;!1===t[e]?i=""!==s.query?Object(em.q)(s.query,null==a?void 0:a.columnId,String(n)):"":!0===t[e]&&(i=""===s.query?r:null!==s.query.match(w)?s.query.replace(w,r):`${s.query} and ${r}`);const l={...s,query:i};o(l),M(l,!0)}),200);return Object(h.jsx)(d.EuiInputPopover,{style:{maxWidth:"100%"},closePopover:()=>p(void 0),input:Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Zp.QueryStringInput,{bubbleSubmitEvent:!1,query:s,indexPatterns:[e],onChange:e=>o(e),onSubmit:M,placeholder:s.language===ba.b.KUERY?u.i18n.translate("xpack.ml.stepDefineForm.queryPlaceholderKql",{defaultMessage:"Search for e.g. {example}",values:{example:'method : "GET" or status : "404"'}}):u.i18n.translate("xpack.ml.stepDefineForm.queryPlaceholderLucene",{defaultMessage:"Search for e.g. {example}",values:{example:"method:GET OR status:404"}}),disableAutoFocus:!0,dataTestSubj:"mlDFAnalyticsQueryInput",languageSwitcherPopoverAnchorPosition:"rightDown",appName:j,deps:{unifiedSearch:b,notifications:x,http:v,docLinks:y,uiSettings:O,data:f,storage:g,dataViews:E}})),a&&a.options&&Object(h.jsx)(d.EuiFlexItem,{grow:!1,"data-test-subj":"mlDFAnalyticsExplorationQueryBarFilterButtons"},Object(h.jsx)(d.EuiButtonGroup,{legend:u.i18n.translate("xpack.ml.dataframe.analytics.explorationQueryBar.buttonGroupLegend",{defaultMessage:"Analytics query bar filter buttons"}),options:a.options,type:"multi",idToSelectedMap:r,onChange:e=>{const t={[e]:!r[e]};l(t),S(e,t)}}))),isOpen:(null==c?void 0:c.query)===s.query&&""!==(null==c?void 0:c.message)},Object(h.jsx)(d.EuiCode,null,u.i18n.translate("xpack.ml.stepDefineForm.invalidQuery",{defaultMessage:"Invalid Query"}),": ",null==c?void 0:c.message.split("\n")[0]))},am=e=>`${e.dest.results_field}.${Du.o}`,im=(e,t=[])=>t.reduce(((t,a)=>Array.isArray(a[`${e}.${Du.i}`])?Math.max(t,a[`${e}.${Du.i}`].length):t),0);var nm=a(170);class data_loader_DataLoader{constructor(e,t){Ve()(this,"_indexPattern",void 0),Ve()(this,"_runtimeMappings",void 0),Ve()(this,"_indexPatternTitle",""),Ve()(this,"_maxExamples",10),this._indexPattern=e,this._runtimeMappings=this._indexPattern.getComputedFields().runtimeFields,this._indexPatternTitle=e.title}async loadFieldHistograms(e,t,a=nm.a,i){return await Je.ml.getVisualizerFieldHistograms({indexPattern:this._indexPatternTitle,query:t,fields:e,samplerShardSize:a,runtimeMappings:i||this._runtimeMappings})}set maxExamples(e){this._maxExamples=e}get maxExamples(){return this._maxExamples}isDisplayField(e){return!la.s.includes(e)}}var sm=a(591),om=a.n(sm);const rm=(e,t=jp.c,a)=>{const[i,s]=Vp(),o=Object(jp.m)(e,25,t,a);return o.pagination=Object(n.useMemo)((()=>({pageSize:i.pageSize,pageIndex:i.pageIndex})),[i.pageSize,i.pageIndex]),o.setPagination=Object(n.useCallback)((e=>{s({...e})}),[s]),o.onChangePage=Object(n.useCallback)((e=>{s({pageIndex:e})}),[s]),o.onChangeItemsPerPage=Object(n.useCallback)((e=>{s({pageSize:e})}),[s]),o.resetPagination=Object(n.useCallback)((()=>{const e=Bp();s({pageSize:e.pageSize,pageIndex:e.pageIndex})}),[s]),om()((function(){o.resetPagination()}),[i.queryText]),o},lm=s.a.memo((({jobId:e})=>{var t,a,i;const{indexPattern:o,indexPatternErrorMessage:r,jobConfig:l,needsDestIndexPattern:c}=Object(Au.o)(e),[p,m]=Vp(),[b,f]=Object(n.useState)(Au.c),g=((e,t,a)=>{var i;const s=void 0!==e&&e.title===(null==t?void 0:t.source.index[0]),o=Object(n.useMemo)((()=>{const a=[];if(void 0!==t&&void 0!==e){const e=t.dest.results_field,{fieldTypes:i}=Object(Au.g)(t,s);a.push(...Object(jp.f)(i,e).sort(((e,a)=>Object(Du.H)(e.id,a.id,t))))}return a}),[t,e]),r=rm(o,8,(e=>!e.includes(`.${Du.i}.`)&&e!==Du.k&&e!==Du.l));Object(n.useEffect)((()=>{void 0!==t&&r.setSortingColumns([{id:am(t),direction:"desc"}])}),[t&&t.id]),Object(n.useEffect)((()=>{const e={didCancel:!1};return Object(Au.f)(t,r,a,e),()=>{e.didCancel=!0}}),[t&&t.id,r.pagination,a,r.sortingColumns]);const l=Object(n.useMemo)((()=>void 0!==e?new data_loader_DataLoader(e,Object($e.h)()):void 0),[e]);Object(n.useEffect)((()=>{r.chartsVisible&&async function(){try{if(void 0!==t&&void 0!==l){const e=await l.loadFieldHistograms(o.filter((e=>r.visibleColumns.includes(e.id))).map((e=>({fieldName:e.id,type:Object(jp.h)(e.schema)}))),a);r.setColumnCharts(e)}}catch(e){Object(jp.l)(e,Object($e.h)())}}()}),[r.chartsVisible,null==t?void 0:t.dest.index,JSON.stringify([a,[...r.visibleColumns].sort()])]);const c=pp(lp.BLUE,rp.INFLUENCER,void 0!==t?im(t.dest.results_field,r.tableItems):1),d=Object(jp.n)(e,r.pagination,r.tableItems,null!==(i=null==t?void 0:t.dest.results_field)&&void 0!==i?i:Du.f,((e,a,i,s)=>{var o;let r;const l=i[`${null!==(o=null==t?void 0:t.dest.results_field)&&void 0!==o?o:""}.${Du.i}`];if(Array.isArray(l)){const t=l.find((t=>e===t.feature_name[0]));t&&(r=c(t.influence[0]))}Object(n.useEffect)((()=>{r&&s({style:{backgroundColor:String(r)}})}),[r,s])}));return{...r,renderCellValue:d}})(o,l,b),j=Object(n.useCallback)((e=>{e.query&&f(e.query),e.queryString!==p.queryText&&m({queryText:e.queryString,queryLanguage:e.language})}),[p,m]),x={query:p.queryText,language:p.queryLanguage},{columnsWithCharts:v,tableItems:y}=g,O=null!==(t=null==l?void 0:l.dest.results_field)&&void 0!==t?t:"",E=im(O,y),w=pp(lp.BLUE,rp.INFLUENCER,E),M=Object(Du.D)(null==l?void 0:l.analysis)&&!0===(null==l?void 0:l.analysis.outlier_detection.compute_feature_influence),S=!c&&Object(Du.D)(null==l?void 0:l.analysis)&&!0===(null==l?void 0:l.analysis.outlier_detection.compute_feature_influence)&&-1===v.findIndex((e=>e.id===`${O}.${Du.i}`)),_=mp(o,null==l||null===(a=l.analyzed_fields)||void 0===a?void 0:a.includes,null==l||null===(i=l.analyzed_fields)||void 0===i?void 0:i.excludes,O),T=Object(Au.e)(l);return void 0!==r?Object(h.jsx)(d.EuiPanel,{grow:!1,hasShadow:!1,hasBorder:!0},Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.dataframe.analytics.exploration.indexError",{defaultMessage:"An error occurred loading the index data."}),color:"danger",iconType:"cross"},Object(h.jsx)("p",null,r,c?Object(h.jsx)(Hp,{destIndex:T,color:"text"}):null))):Object(h.jsx)(s.a.Fragment,null,void 0!==(null==l?void 0:l.description)&&""!==(null==l?void 0:l.description)&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiText,null,null==l?void 0:l.description),Object(h.jsx)(d.EuiSpacer,{size:"m"})),(v.length>0||b!==Au.c)&&void 0!==o&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(tm,{indexPattern:o,setSearchQuery:j,query:x}),Object(h.jsx)(d.EuiSpacer,{size:"m"})),"string"==typeof(null==l?void 0:l.id)&&Object(h.jsx)(qp,{jobId:null==l?void 0:l.id}),"string"==typeof(null==l?void 0:l.id)&&_.length>1&&Object(h.jsx)(Kp,{fields:_,index:null==l?void 0:l.dest.index,resultsField:null==l?void 0:l.dest.results_field,searchQuery:b,query:x}),S&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiCallOut,{size:"s",title:u.i18n.translate("xpack.ml.dataframe.analytics.outlierExploration.legacyFeatureInfluenceFormatCalloutTitle",{defaultMessage:"Color coded table cells based on feature influence are not available because the results index uses an unsupported legacy format. Please clone and rerun the job."}),iconType:"pin"}),Object(h.jsx)(d.EuiSpacer,{size:"m"})),Object(h.jsx)(Qp,{colorRange:M&&!S?w:void 0,indexData:g,indexPattern:o,jobConfig:l,needsDestIndexPattern:c,searchQuery:b}))}));var cm=a(45);const dm=s.a.memo((({indexPattern:e,jobConfig:t,needsDestIndexPattern:a,searchQuery:i})=>{const{services:{mlServices:{mlApiServices:s}}}=Object(Te.d)(),o=((e,t,a,i,s)=>{var o;const[r,l]=Object(n.useState)(),c=Object(cm.b)(),d=void 0!==e&&e.title===(null==t?void 0:t.source.index[0]),p=[];if(void 0!==t){const e=t.dest.results_field,{fieldTypes:a}=Object(Au.g)(t,d);p.push(...Object(jp.f)(a,e).sort(((e,a)=>Object(Du.H)(e.id,a.id,t))))}const m=rm(p,8,(e=>!e.includes(`.${Du.h}.`)&&!e.includes(`.${Du.p}.`)&&e!==Du.k));Object(n.useEffect)((()=>{const e={didCancel:!1};return Object(Au.f)(t,m,a,e),()=>{e.didCancel=!0}}),[t&&t.id,m.pagination,a,m.sortingColumns]);const b=Object(n.useMemo)((()=>void 0!==e?new data_loader_DataLoader(e,i):void 0),[e]);Object(n.useEffect)((()=>{m.chartsVisible&&async function(){try{if(void 0!==t&&void 0!==b){const e=await b.loadFieldHistograms(p.filter((e=>m.visibleColumns.includes(e.id))).map((e=>({fieldName:e.id,type:Object(jp.h)(e.schema)}))),a);m.setColumnCharts(e)}}catch(e){Object(jp.l)(e,i)}}()}),[m.chartsVisible,null==t?void 0:t.dest.index,JSON.stringify([a,m.visibleColumns])]);const f=Object(n.useMemo)((()=>{var e;if(t)return null!==(e=Object(Du.x)(t.analysis))&&void 0!==e?e:Object(Du.t)(t.analysis)}),[t]),g=Object(n.useCallback)((async()=>{try{if(void 0!==t&&void 0!==t.analysis&&(Object(Du.E)(t.analysis)||Object(Du.z)(t.analysis))){var e;const i=t.id,n=(await c.getTrainedModels(`${i}*`,{include:"feature_importance_baseline"})).find((e=>{var t,a;return(null===(t=e.metadata)||void 0===t||null===(a=t.analytics_config)||void 0===a?void 0:a.id)===i}));var a;void 0!==(null==n||null===(e=n.metadata)||void 0===e?void 0:e.feature_importance_baseline)&&l(null==n||null===(a=n.metadata)||void 0===a?void 0:a.feature_importance_baseline)}}catch(e){const t=Object(ei.b)(e);i.addDanger({title:u.i18n.translate("xpack.ml.dataframe.analytics.explorationResults.baselineErrorMessageToast",{defaultMessage:"An error occurred getting feature importance baseline"}),text:t})}}),[s,t]);Object(n.useEffect)((()=>{g()}),[t]);const h=null!==(o=null==t?void 0:t.dest.results_field)&&void 0!==o?o:Du.f,j=Object(jp.n)(e,m.pagination,m.tableItems,h);return{...m,renderCellValue:j,baseline:r,predictionFieldName:f,resultsField:h}})(e,t,i,Object($e.h)(),s);return void 0===t||void 0===o?null:Object(h.jsx)("div",{"data-test-subj":"mlDFAnalyticsExplorationTablePanel"},Object(h.jsx)(Qp,{indexData:o,indexPattern:e,resultsField:null==t?void 0:t.dest.results_field,jobConfig:t,needsDestIndexPattern:a,searchQuery:i}))})),um=u.i18n.translate("xpack.ml.dataframe.analytics.jobConfig.errorTitle",{defaultMessage:"Unable to fetch results. An error occurred loading the job configuration data."}),pm=u.i18n.translate("xpack.ml.dataframe.analytics.jobCaps.errorTitle",{defaultMessage:"Unable to fetch results. An error occurred loading the index's field data."}),mm=({jobCapsServiceErrorMessage:e,jobConfigErrorMessage:t,title:a})=>{const{services:{application:{getUrlForApp:i}}}=Object(Te.d)(),s="string"==typeof e&&e.includes("locate that index-pattern")&&e.includes("click here to re-create"),o=Object(h.jsx)("p",null,t||e),r=Object(n.useMemo)((()=>i("management",{path:"kibana/indexPatterns"})),[]),l=s?Object(h.jsx)(d.EuiLink,{href:r,target:"_blank"},o):o;return Object(h.jsx)(d.EuiPanel,{grow:!1},Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiCallOut,{title:t?um:pm,color:"danger",iconType:"cross"},l))},bm=()=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiPanel,{className:"eui-textCenter"},Object(h.jsx)(d.EuiLoadingSpinner,{size:"xl"})),Object(h.jsx)(d.EuiSpacer,{size:"m"}));function fm(e){return{options:[{id:"training",label:u.i18n.translate("xpack.ml.dataframe.analytics.explorationResults.trainingSubsetLabel",{defaultMessage:"Training"})},{id:"testing",label:u.i18n.translate("xpack.ml.dataframe.analytics.explorationResults.testingSubsetLabel",{defaultMessage:"Testing"})}],columnId:`${e}.is_training`,key:{training:!0,testing:!1}}}const gm=({jobId:e,title:t,EvaluatePanel:a,FeatureImportanceSummaryPanel:i})=>{var o,r,l;const{indexPattern:c,indexPatternErrorMessage:p,isInitialized:m,isLoadingJobConfig:b,jobCapsServiceErrorMessage:f,jobConfig:g,jobConfigErrorMessage:j,jobStatus:x,needsDestIndexPattern:v,totalFeatureImportance:y}=Object(Au.o)(e),[O,E]=Vp(),[w,M]=Object(n.useState)(Au.c),S=Object(n.useCallback)((e=>{e.query&&M(e.query),e.queryString!==O.queryText&&E({queryText:e.queryString,queryLanguage:e.language})}),[O,E]),_={query:O.queryText,language:O.queryLanguage},T=null!==(o=null==g?void 0:g.dest.results_field)&&void 0!==o?o:"",C=Object(Au.e)(g),k=mp(c,null==g||null===(r=g.analyzed_fields)||void 0===r?void 0:r.includes,null==g||null===(l=g.analyzed_fields)||void 0===l?void 0:l.excludes,T);if(void 0!==p)return Object(h.jsx)(d.EuiPanel,{grow:!1},Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.dataframe.analytics.exploration.indexError",{defaultMessage:"An error occurred loading the index data."}),color:"danger",iconType:"cross"},Object(h.jsx)("p",null,p,v?Object(h.jsx)(Hp,{destIndex:C,color:"text"}):null)));if(void 0!==j||void 0!==f)return Object(h.jsx)(mm,{jobCapsServiceErrorMessage:f,jobConfigErrorMessage:j,title:t});const F=g&&g.analysis?Object(Du.s)(null==g?void 0:g.analysis):void 0;return Object(h.jsx)(s.a.Fragment,null,void 0!==(null==g?void 0:g.description)&&""!==(null==g?void 0:g.description)&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiText,null,null==g?void 0:g.description),Object(h.jsx)(d.EuiSpacer,{size:"m"})),void 0!==c&&g&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{direction:"column"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(tm,{indexPattern:c,setSearchQuery:S,query:_,filters:fm(g.dest.results_field)}))))),Object(h.jsx)(d.EuiSpacer,{size:"m"})),!0===b&&void 0===g&&Object(h.jsx)(bm,null),!1===b&&void 0!==g&&!0===m&&Object(h.jsx)(qp,{jobId:g.id}),!0===b&&void 0===g&&Object(h.jsx)(bm,null),!1===b&&void 0!==g&&!0===m&&Object(h.jsx)(a,{jobConfig:g,jobStatus:x,searchQuery:w}),!0===b&&void 0!==g&&void 0===y&&Object(h.jsx)(bm,null),!1===b&&void 0!==g&&void 0!==y&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(i,{totalFeatureImportance:y,jobConfig:g})),Object(h.jsx)(d.EuiSpacer,{size:"m"}),!0===b&&void 0===g&&Object(h.jsx)(bm,null),!1===b&&void 0!==g&&!0===m&&"string"==typeof(null==g?void 0:g.id)&&k.length>1&&void 0!==(null==g?void 0:g.analysis)&&Object(h.jsx)(Kp,{fields:k,index:null==g?void 0:g.dest.index,indexPattern:c,color:F===Du.b.REGRESSION||F===Du.b.CLASSIFICATION?Object(Du.u)(g.analysis):void 0,legendType:Object(Au.h)(F),searchQuery:w}),!0===b&&void 0===g&&Object(h.jsx)(bm,null),!1===b&&void 0!==g&&void 0!==c&&!0===m&&Object(h.jsx)(dm,{indexPattern:c,jobConfig:g,jobStatus:x,needsDestIndexPattern:v,searchQuery:w}))};var hm=a(122);const jm={[hm.c.MSE]:u.i18n.translate("xpack.ml.dataframe.analytics.regressionExploration.meanSquaredErrorText",{defaultMessage:"Mean squared error"}),[hm.c.MSLE]:u.i18n.translate("xpack.ml.dataframe.analytics.regressionExploration.msleText",{defaultMessage:"Mean squared logarithmic error"}),[hm.c.R_SQUARED]:u.i18n.translate("xpack.ml.dataframe.analytics.regressionExploration.rSquaredText",{defaultMessage:"R squared"}),[hm.c.HUBER]:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.regressionExploration.huberText",defaultMessage:"{wikiLink}",values:{wikiLink:Object(h.jsx)(d.EuiLink,{href:"https://en.wikipedia.org/wiki/Huber_loss#Pseudo-Huber_loss_function",target:"_blank",external:!0},u.i18n.translate("xpack.ml.dataframe.analytics.regressionExploration.huberLinkText",{defaultMessage:"Pseudo Huber loss function"}))}})},xm={[hm.c.MSE]:u.i18n.translate("xpack.ml.dataframe.analytics.regressionExploration.meanSquaredErrorTooltipContent",{defaultMessage:"Measures how well the regression analysis model is performing. Mean squared sum of the difference between true and predicted values."}),[hm.c.MSLE]:u.i18n.translate("xpack.ml.dataframe.analytics.regressionExploration.msleTooltipContent",{defaultMessage:"Average squared difference between the logarithm of the predicted values and the logarithm of the actual (ground truth) value."}),[hm.c.R_SQUARED]:u.i18n.translate("xpack.ml.dataframe.analytics.regressionExploration.rSquaredTooltipContent",{defaultMessage:"Represents the goodness of fit. Measures how well the observed outcomes are replicated by the model."})},vm=({isLoading:e,statType:t,title:a,dataTestSubj:i})=>Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs","data-test-subj":i},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiStat,{reverse:!0,isLoading:e,title:a,description:jm[t],titleSize:"xxs"})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},t!==hm.c.HUBER&&Object(h.jsx)(d.EuiIconTip,{anchorClassName:"mlDataFrameAnalyticsRegression__evaluateStat",content:xm[t]}))),ym={mse:hm.a,msle:hm.a,huber:hm.a,rSquared:hm.a},Om={...ym,error:null},Em=({jobConfig:e,jobStatus:t,searchQuery:a})=>{var i;const{services:{docLinks:o}}=Object(Te.d)(),r=o.links.ml.regressionEvaluation,[l,c]=Object(n.useState)(Om),[p,m]=Object(n.useState)(Om),[b,f]=Object(n.useState)(!1),[j,x]=Object(n.useState)(!1),[v,y]=Object(n.useState)(void 0),[O,E]=Object(n.useState)(null),[w,M]=Object(n.useState)(null),S=e.dest.index,_=Object(Du.u)(e.analysis),T=Object(Du.x)(e.analysis),C=null!==(i=e.dest.results_field)&&void 0!==i?i:"ml";return Object(n.useEffect)((()=>{let t;const i=Object(hm.j)(a)&&(a.bool.should||a.bool.filter);if(void 0!==i&&!1!==i)for(let e=0;e{(async(e=!0)=>{x(!0);const t=await Object(Au.k)({isTraining:!1,index:S,dependentVariable:_,resultsField:C,predictionFieldName:T,searchQuery:a,ignoreDefaultQuery:e,jobType:Du.b.REGRESSION});if(!0===t.success&&t.eval&&Object(hm.i)(t.eval)){const{mse:e,msle:a,huber:i,r_squared:n}=Object(Au.i)(t.eval);m({mse:e,msle:a,huber:i,rSquared:n,error:null}),x(!1)}else x(!1),m({...ym,error:t.error})})(!1);const t=await Object(Au.j)({ignoreDefaultQuery:!1,isTraining:!1,searchQuery:a,resultsField:C,destIndex:e.dest.index});!0===t.success?M(t.docsCount):M(null),(async(e=!0)=>{f(!0);const t=await Object(Au.k)({isTraining:!0,index:S,dependentVariable:_,resultsField:C,predictionFieldName:T,searchQuery:a,ignoreDefaultQuery:e,jobType:Du.b.REGRESSION});if(!0===t.success&&t.eval&&Object(hm.i)(t.eval)){const{mse:e,msle:a,huber:i,r_squared:n}=Object(Au.i)(t.eval);c({mse:e,msle:a,huber:i,rSquared:n,error:null}),f(!1)}else f(!1),c({...ym,error:t.error})})(!1);const i=await Object(Au.j)({ignoreDefaultQuery:!1,isTraining:!0,searchQuery:a,resultsField:C,destIndex:e.dest.index});!0===i.success?E(i.docsCount):E(null)})()}),[JSON.stringify(a)]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Up,{urlStateKey:"evaluation",dataTestId:"RegressionEvaluation",title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.regressionExploration.evaluateSectionTitle",defaultMessage:"Model evaluation"}),docsLink:Object(h.jsx)(d.EuiButtonEmpty,{target:"_blank",iconType:"help",iconSide:"left",size:"xs",color:"primary",href:r},Object(h.jsx)(d.EuiText,{size:"xs",color:"primary"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.regressionExploration.regressionDocsLink",defaultMessage:"Regression evaluation docs "}))),headerItems:void 0!==t?[{id:"jobStatus",label:u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.evaluateJobStatusLabel",{defaultMessage:"Job status"}),value:t}]:[],contentPadding:!0,content:Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiTitle,{size:"xxs"},Object(h.jsx)("span",null,u.i18n.translate("xpack.ml.dataframe.analytics.regressionExploration.generalizationErrorTitle",{defaultMessage:"Generalization error"}))),null!==w&&Object(h.jsx)(d.EuiText,{size:"xs",color:"subdued"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.regressionExploration.generalizationDocsCount",defaultMessage:"{docsCount, plural, one {# doc} other {# docs}} evaluated",values:{docsCount:w}}),!0===v&&0===w&&Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.regressionExploration.generalizationFilterText",defaultMessage:". Filtering for training data."})),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiFlexGroup,{direction:"column",gutterSize:"none"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,{direction:"column",gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(vm,{dataTestSubj:"mlDFAnalyticsRegressionGenMSEstat",isLoading:j,title:p.mse,statType:hm.c.MSE})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(vm,{dataTestSubj:"mlDFAnalyticsRegressionGenRSquaredStat",isLoading:j,title:p.rSquared,statType:hm.c.R_SQUARED})))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(vm,{dataTestSubj:"mlDFAnalyticsRegressionGenMsleStat",isLoading:j,title:p.msle,statType:hm.c.MSLE})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(vm,{dataTestSubj:"mlDFAnalyticsRegressionGenHuberStat",isLoading:j,title:p.huber,statType:hm.c.HUBER})))))),null!==p.error&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"xs",color:"danger"},!0===v&&0===w&&p.error.includes("No documents found")?u.i18n.translate("xpack.ml.dataframe.analytics.regressionExploration.evaluateNoTestingDocsError",{defaultMessage:"No testing documents found"}):p.error)))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiTitle,{size:"xxs"},Object(h.jsx)("span",null,u.i18n.translate("xpack.ml.dataframe.analytics.regressionExploration.trainingErrorTitle",{defaultMessage:"Training error"}))),null!==O&&Object(h.jsx)(d.EuiText,{size:"xs",color:"subdued"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.regressionExploration.trainingDocsCount",defaultMessage:"{docsCount, plural, one {# doc} other {# docs}} evaluated",values:{docsCount:O}}),!1===v&&0===O&&Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.regressionExploration.trainingFilterText",defaultMessage:". Filtering for testing data."})),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiFlexGroup,{direction:"column",gutterSize:"none"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,{direction:"column",gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(vm,{dataTestSubj:"mlDFAnalyticsRegressionTrainingMSEstat",isLoading:b,title:l.mse,statType:hm.c.MSE})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(vm,{dataTestSubj:"mlDFAnalyticsRegressionTrainingRSquaredStat",isLoading:b,title:l.rSquared,statType:hm.c.R_SQUARED})))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(vm,{dataTestSubj:"mlDFAnalyticsRegressionTrainingMsleStat",isLoading:b,title:l.msle,statType:hm.c.MSLE})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(vm,{dataTestSubj:"mlDFAnalyticsRegressionTrainingHuberStat",isLoading:b,title:l.huber,statType:hm.c.HUBER})))))),null!==l.error&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"xs",color:"danger"},!1===v&&0===O&&l.error.includes("No documents found")?u.i18n.translate("xpack.ml.dataframe.analytics.regressionExploration.evaluateNoTrainingDocsError",{defaultMessage:"No training documents found"}):l.error)))))}),Object(h.jsx)(d.EuiSpacer,{size:"m"}))},{euiColorMediumShade:wm}=ti.euiLightVars,Mm={axes:{axisLine:{stroke:wm},tickLabel:{fontSize:12,fill:wm},tickLine:{stroke:wm},gridLine:{horizontal:{dash:[1,2]},vertical:{strokeWidth:0}}},legend:{spacingBuffer:100}},Sm=u.i18n.translate("xpack.ml.dataframe.analytics.exploration.featureImportanceSummaryTooltipContent",{defaultMessage:"Total feature importance values indicate how significantly a field affects the predictions across all the training data."}),_m=e=>e.classes.reduce(((e,t)=>e+t.importance.mean_magnitude),0),Tm=({totalFeatureImportance:e,jobConfig:t})=>{const{services:{docLinks:a}}=Object(Te.d)(),[i,o,r,l]=Object(n.useMemo)((()=>{let t=[],a={xAccessor:"featureName",yAccessors:["meanImportance"],name:u.i18n.translate("xpack.ml.dataframe.analytics.exploration.featureImportanceYSeriesName",{defaultMessage:"magnitude"})},i="";if(e.length<1)return[t,a,void 0,void 0];Object(Du.B)(e[0])&&(2===e[0].classes.length&&(i="binary_classification",t=e.map((e=>({featureName:e.feature_name,meanImportance:e.classes[0].importance.mean_magnitude}))).sort(((e,t)=>t.meanImportance-e.meanImportance))),e[0].classes.length>2&&(i="multiclass_classification",e.sort(((e,t)=>_m(t)-_m(e))).forEach((e=>{const a=e.classes.sort(((e,t)=>t.importance.mean_magnitude-e.importance.mean_magnitude));t.push(...a.map((t=>({featureName:e.feature_name,meanImportance:t.importance.mean_magnitude,className:t.class_name}))))})),a={xAccessor:"featureName",yAccessors:["meanImportance"],splitSeriesAccessors:["className"],stackAccessors:["featureName"]})),Object(Du.G)(e[0])&&(i="regression",t=e.map((e=>({featureName:e.feature_name,meanImportance:e.importance.mean_magnitude}))).sort(((e,t)=>t.meanImportance-e.meanImportance)));const n="multiclass_classification"===i,s=e.length*(e.length<5?40:20)+50;return[t,a,n,s]}),[e]),c=a.links.ml.featureImportance,p=Object(n.useCallback)((e=>Number(e.toPrecision(3)).toString()),[]),b=Object(n.useMemo)((()=>{if(0===e.length&&(null!=t&&t.analysis&&Object(Du.E)(null==t?void 0:t.analysis)||Object(Du.z)(null==t?void 0:t.analysis))){const e=Object(Du.s)(t.analysis);return"unknown"!==e&&0===t.analysis[e].num_top_feature_importance_values?Object(h.jsx)(d.EuiCallOut,{"data-test-subj":"mlTotalFeatureImportanceNotCalculatedCallout",size:"s",title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.totalFeatureImportanceNotCalculatedCalloutMessage",defaultMessage:"Feature importance was not calculated because num_top_feature_importance values is set to 0."})}):Object(h.jsx)(d.EuiCallOut,{"data-test-subj":"mlNoTotalFeatureImportanceCallout",size:"s",title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.noTotalFeatureImportanceCalloutMessage",defaultMessage:"Total feature importance data is not available; the data set is uniform and the features have no significant impact on the prediction."})})}}),[e,t]);return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Up,{urlStateKey:"feature_importance",isExpanded:void 0===b,dataTestId:"FeatureImportanceSummary",title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.featureImportanceSummaryTitle",defaultMessage:"Total feature importance"}),docsLink:Object(h.jsx)(d.EuiButtonEmpty,{target:"_blank",iconType:"help",iconSide:"left",size:"xs",color:"primary",href:c},Object(h.jsx)(d.EuiText,{size:"xs",color:"primary"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.exploration.featureImportanceDocsLink",defaultMessage:"Feature importance docs"}))),headerItems:[{id:"FeatureImportanceSummary",value:Sm}],content:b||Object(h.jsx)("div",{"data-test-subj":"mlTotalFeatureImportanceChart"},Object(h.jsx)(ra.Chart,{size:{width:"100%",height:l}},Object(h.jsx)(ra.Settings,{rotation:90,theme:Mm,showLegend:r}),Object(h.jsx)(ra.Axis,{id:"x-axis",title:u.i18n.translate("xpack.ml.dataframe.analytics.exploration.featureImportanceXAxisTitle",{defaultMessage:"Feature importance average magnitude"}),position:ra.Position.Bottom,tickFormat:p}),Object(h.jsx)(ra.Axis,{id:"y-axis",title:"",position:ra.Position.Left}),Object(h.jsx)(ra.BarSeries,m()({id:"magnitude",xScaleType:ra.ScaleType.Ordinal,yScaleType:ra.ScaleType.Linear,data:i},o))))}),Object(h.jsx)(d.EuiSpacer,{size:"m"}))},Cm=({jobId:e})=>Object(h.jsx)(gm,{jobId:e,title:u.i18n.translate("xpack.ml.dataframe.analytics.regressionExploration.tableJobIdTitle",{defaultMessage:"Destination index for regression job ID {jobId}",values:{jobId:e}}),EvaluatePanel:Em,FeatureImportanceSummaryPanel:Tm});a(593);const km=({error:e})=>{let t=Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.dataframe.analytics.errorCallout.generalErrorTitle",{defaultMessage:"An error occurred loading the data."}),color:"danger",iconType:"cross"},Object(h.jsx)("p",null,e));return"string"==typeof e&&e.includes("index_not_found")?t=Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.dataframe.analytics.errorCallout.evaluateErrorTitle",{defaultMessage:"An error occurred loading the data."}),color:"danger",iconType:"cross"},Object(h.jsx)("p",null,u.i18n.translate("xpack.ml.dataframe.analytics.errorCallout.noIndexCalloutBody",{defaultMessage:"The query for the index returned no results. Please make sure the destination index exists and contains documents."}))):"string"==typeof e&&e.includes("No documents found")?t=Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.dataframe.analytics.errorCallout.noDataCalloutTitle",{defaultMessage:"Empty index query result."}),color:"primary"},Object(h.jsx)("p",null,u.i18n.translate("xpack.ml.dataframe.analytics.errorCallout.noDataCalloutBody",{defaultMessage:"The query for the index returned no results. Please make sure the job has completed and the index contains documents."}))):"string"==typeof e&&e.includes("userProvidedQueryBuilder")&&(t=Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.dataframe.analytics.errorCallout.queryParsingErrorTitle",{defaultMessage:"Unable to parse query."}),color:"primary"},Object(h.jsx)("p",null,u.i18n.translate("xpack.ml.dataframe.analytics.errorCallout.queryParsingErrorBody",{defaultMessage:"The query syntax is invalid and returned no results. Please check the query syntax and try again."})))),Object(h.jsx)(n.Fragment,null,t)},Fm=({isLoading:e,title:t,description:a,dataTestSubj:i,tooltipContent:n})=>Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs","data-test-subj":i},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiStat,{reverse:!0,isLoading:e,title:null!==t?Math.round(1e3*t)/1e3:hm.a,description:a,titleSize:"xs"})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiIconTip,{anchorClassName:"mlDataFrameAnalyticsRegression__evaluateStat",content:n}))),Im=[{field:"className",name:u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.recallAndAccuracyClassColumn",{defaultMessage:"Class"}),sortable:!0,truncateText:!0},{field:"accuracy",name:u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.recallAndAccuracyAccuracyColumn",{defaultMessage:"Accuracy"}),render:e=>Math.round(1e3*e)/1e3},{field:"recall",name:u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.recallAndAccuracyRecallColumn",{defaultMessage:"Recall"}),render:e=>Math.round(1e3*e)/1e3}],Dm=({evaluationMetricsItems:e})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiAccordion,{id:"recall-and-accuracy",buttonContent:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.classificationExploration.evaluateSectionRecallAndAccuracy",defaultMessage:"Per class recall and accuracy"})},Object(h.jsx)(d.EuiPanel,null,Object(h.jsx)(d.EuiInMemoryTable,{items:e,columns:Im,pagination:!0,sorting:!0})))),Am=Object(d.euiPaletteGray)(1)[0],Lm="baseline",Rm=300,Nm=(e,t,a,i)=>{t.push({tpr:0,fpr:0,threshold:1,class_name:Lm}),t.push({tpr:1,fpr:1,threshold:1,class_name:Lm});const n=function(e){const t=[...e,Lm].sort().indexOf(Lm),a=Object(d.euiPaletteColorBlind)({rotations:2}).slice(0,e.length);return a.splice(t,0,Am),a}(e);return{$schema:"https://vega.github.io/schema/vega-lite/v4.8.1.json",background:"transparent",padding:{left:45,top:0,right:0,bottom:0},config:{legend:{orient:"right",labelColor:i.euiTextSubduedColor,titleColor:i.euiTextSubduedColor},view:{continuousHeight:Rm,continuousWidth:Rm}},data:{name:"roc-curve-data"},datasets:{"roc-curve-data":t},encoding:{color:{field:"class_name",type:Op.a.NOMINAL,scale:{range:n},legend:{title:a}},size:{value:2},strokeDash:{condition:{test:`(datum.class_name === '${Lm}')`,value:[5,5]},value:[0]},x:{field:"fpr",sort:null,title:u.i18n.translate("xpack.ml.dataframe.analytics.rocChartSpec.xAxisTitle",{defaultMessage:"False Positive Rate (FPR)"}),type:"quantitative",axis:{tickColor:Am,labelColor:i.euiTextSubduedColor,domainColor:Am,titleColor:i.euiTextSubduedColor}},y:{field:"tpr",title:u.i18n.translate("xpack.ml.dataframe.analytics.rocChartSpec.yAxisTitle",{defaultMessage:"True Positive Rate (TPR) (a.k.a Recall)"}),type:"quantitative",axis:{tickColor:Am,labelColor:i.euiTextSubduedColor,domainColor:Am,titleColor:i.euiTextSubduedColor}},tooltip:[{type:Op.a.NOMINAL,field:"class_name"},{type:Op.a.QUANTITATIVE,field:"fpr"},{type:Op.a.QUANTITATIVE,field:"tpr"}]},height:Rm,width:Rm,mark:{type:"line",strokeCap:"round",strokeJoin:"round"}}},Pm="actual_class",zm="other";function Bm(e,t){return[{id:"actions",width:60,headerCellRender:()=>Object(h.jsx)("span",null,`${e} more`),rowCellRender:function(){const[e,a]=Object(n.useState)(!1);return Object(h.jsx)(d.EuiPopover,{isOpen:e,anchorPosition:"upCenter",button:Object(h.jsx)(d.EuiButtonIcon,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.showActions",{defaultMessage:"Show actions"}),iconType:"boxesHorizontal",color:"text",onClick:()=>a(!e)}),closePopover:()=>a(!1),ownFocus:!0},Object(h.jsx)(d.EuiButtonEmpty,{onClick:()=>t(!0)},Object(h.jsx)(d.EuiText,{size:"s",grow:!1,textAlign:"center"},u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.showAllColumns",{defaultMessage:"Show all columns"}))))}}]}function Vm(e,t){let a;const i=Object(hm.j)(e)&&(e.bool.should||e.bool.filter);if(void 0!==i&&!1!==i)for(let e=0;eObject(h.jsx)(d.EuiButtonIcon,{className:"mlHelpPopover__buttonIcon",size:"s",iconType:"help","aria-label":u.i18n.translate("xpack.ml.helpPopover.ariaLabel",{defaultMessage:"Help"}),onClick:e}),Gm=({anchorPosition:e,children:t,title:a})=>{const[i,s]=Object(n.useState)(!1);return Object(h.jsx)(d.EuiPopover,{anchorPosition:e,button:Object(h.jsx)(Um,{onClick:s.bind(null,!i)}),className:"mlHelpPopover",closePopover:s.bind(null,!1),isOpen:i,ownFocus:!0,panelClassName:"mlHelpPopover__panel",panelPaddingSize:"none"},a&&Object(h.jsx)(d.EuiPopoverTitle,{paddingSize:"s"},a),Object(h.jsx)(d.EuiText,{className:"mlHelpPopover__content",size:"s"},t))},qm=()=>Object(h.jsx)(Gm,{anchorPosition:"upCenter",title:u.i18n.translate("xpack.ml.dataframe.analytics.confusionMatrixPopoverTitle",{defaultMessage:"Normalized confusion matrix"})},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.confusionMatrixBasicExplanation",defaultMessage:"The multiclass confusion matrix provides a summary of the performance of the classification analysis. It contains the proportion of the data points that the analysis classified correctly with their actual class as well as the proportion of the misclassified data points."})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.confusionMatrixAxisExplanation",defaultMessage:"The matrix contains the actual labels on the left side while the predicted labels are on the top. The proportion of correct and incorrect predictions is broken down for each class. This enables you to examine how the classification analysis confused the different classes while it made its predictions. If you want to see the exact number of occurrences, select a cell in the matrix and click the appearing icon."})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.confusionMatrixShadeExplanation",defaultMessage:"As the number of classes in the classification analysis increases, the confusion matrix also increases in complexity. For an easier overview, darker cells indicate higher percentage of the predictions."})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.confusionMatrixColumnExplanation",defaultMessage:"The Columns selector enables you to toggle between showing or hiding some of the columns or all of them."}))),$m=()=>Object(h.jsx)(Gm,{anchorPosition:"upCenter",title:u.i18n.translate("xpack.ml.dataframe.analytics.rocCurvePopoverTitle",{defaultMessage:"Receiver operating characteristic (ROC) curve"})},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.rocCurveBasicExplanation",defaultMessage:"The ROC curve is a plot that represents the performance of the classification process at different predicted probability thresholds."})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.rocCurveCompute",defaultMessage:"It compares the true positive rate (y-axis) for a specific class against the false positive rate (x-axis) at the different threshold levels to create the curve."})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.rocCurveAuc",defaultMessage:"From this plot, the area under the curve (AUC) value can be computed, which is a number between 0 and 1. The closer to 1, the better the algorithm performance."})));var Wm;!function(e){e.TRAINING="training",e.TESTING="testing",e.ENTIRE="entire"}(Wm||(Wm={}));const Hm=u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.confusionMatrixEntireHelpText",{defaultMessage:"Normalized confusion matrix for entire dataset"}),Ym=u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.confusionMatrixTestingHelpText",{defaultMessage:"Normalized confusion matrix for testing dataset"}),Xm=u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.confusionMatrixTrainingHelpText",{defaultMessage:"Normalized confusion matrix for training dataset"}),Qm=u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.evaluationQualityMetricsHelpText",{defaultMessage:"Evaluation quality metrics"});function Km(e){let t=Hm;return e===Wm.TESTING?t=Ym:e===Wm.TRAINING&&(t=Xm),t}const Zm=({jobConfig:e,jobStatus:t,searchQuery:a})=>{const{services:{docLinks:i}}=Object(Te.d)(),{euiTheme:o}=Object(Te.a)(),[r,l]=Object(n.useState)([]),[c,p]=Object(n.useState)([]),[m,b]=Object(n.useState)(!1),[f,j]=Object(n.useState)(Wm.ENTIRE),[x,v]=Object(n.useState)((()=>r.map((({id:e})=>e)))),y=Vm(a,e.dest.results_field),{avgRecall:O,confusionMatrixData:E,docsCount:w,error:M,isLoading:S,overallAccuracy:_,evaluationMetricsItems:T}=((e,t)=>{const[a,i]=Object(n.useState)([]),[s,o]=Object(n.useState)(null),[r,l]=Object(n.useState)(null),[c,d]=Object(n.useState)([]),[u,p]=Object(n.useState)(!1),[m,b]=Object(n.useState)(null),[f,g]=Object(n.useState)(null);return Object(n.useEffect)((()=>{!async function(){p(!0);let a=!1;const n=Object(Du.u)(e.analysis),s=e.dest.results_field,r=Vm(t,s);try{a=$c.a.isKeywordAndTextType(n)}catch(e){console.error("Unable to load new field types",e)}const c=await Object(Au.k)({isTraining:r,index:e.dest.index,dependentVariable:n,resultsField:s,predictionFieldName:Object(Du.x)(e.analysis),searchQuery:t,jobType:Du.b.CLASSIFICATION,requiresKeyword:a}),u=await Object(Au.j)({isTraining:r,searchQuery:t,resultsField:s,destIndex:e.dest.index});if(!0===c.success&&c.eval&&Object(hm.h)(c.eval)){var m,f,h,j,x,v,y,O,E,w;const e=null===(m=c.eval)||void 0===m||null===(f=m.classification)||void 0===f||null===(h=f.multiclass_confusion_matrix)||void 0===h?void 0:h.confusion_matrix;g(null),i(e||[]),l((null===(j=c.eval)||void 0===j||null===(x=j.classification)||void 0===x||null===(v=x.recall)||void 0===v?void 0:v.avg_recall)||null),o((null===(y=c.eval)||void 0===y||null===(O=y.classification)||void 0===O||null===(E=O.accuracy)||void 0===E?void 0:E.overall_accuracy)||null),d(function(e){var t,a;if(void 0===e)return[];const i=(null===(t=e.accuracy)||void 0===t?void 0:t.classes)||[],n=(null===(a=e.recall)||void 0===a?void 0:a.classes)||[],s=i.reduce(((e,t)=>(e[t.class_name]={className:t.class_name,accuracy:t.value},e)),{});return n.forEach((e=>{void 0!==s[e.class_name]?s[e.class_name]={recall:e.value,...s[e.class_name]}:s[e.class_name]={className:e.class_name,recall:e.value}})),Object.values(s)}(null===(w=c.eval)||void 0===w?void 0:w.classification)),p(!1)}else p(!1),i([]),g(c.error);!0===u.success?b(u.docsCount):b(null)}()}),[JSON.stringify([e,t])]),{avgRecall:r,confusionMatrixData:a,docsCount:m,error:f,isLoading:u,overallAccuracy:s,evaluationMetricsItems:c}})(e,a);Object(n.useEffect)((()=>{j(void 0===y?Wm.ENTIRE:y&&!0===y?Wm.TRAINING:Wm.TESTING)}),[y]),Object(n.useEffect)((()=>{if(E.length>0){const{columns:e,columnData:t}=function(e){const t=[],a=[{id:Pm,display:Object(h.jsx)("span",null),initialWidth:165}];let i=!1;for(const n of e){const e=n.other_predicted_class_doc_count;e>0&&(i=!0);const s={actual_class:n.actual_class,actual_class_doc_count:n.actual_class_doc_count,other:e,predicted_classes_count:{}},o=n.predicted_classes||[];a.push({id:n.actual_class,initialWidth:165});for(let e=0;ee.map((({id:e})=>e)))),l(e),p(t)}}),[E]);const{rocCurveData:C,classificationClasses:k,error:F,isLoading:I}=((e,t,a)=>{const i=a.filter((e=>e!==Pm&&e!==zm));i.length<=2&&i.splice(1);const[s,o]=Object(n.useState)([]),[r,l]=Object(n.useState)(!1),[c,d]=Object(n.useState)(null);return Object(n.useEffect)((()=>{!async function(){l(!0);const a=Object(Du.u)(e.analysis),n=e.dest.results_field,s=[];let r=!1;const c=[];try{r=$c.a.isKeywordAndTextType(a)}catch(e){console.error("Unable to load new field types",e)}for(let o=0;o2?i[o]:"ROC",a=((null===(b=d.eval)||void 0===b||null===(f=b.classification)||void 0===f||null===(g=f.auc_roc)||void 0===g?void 0:g.curve)||[]).map((a=>({class_name:`${t} (AUC: ${Math.round(e*Jm)/Jm})`,...a})));s.push(...a)}else null!==d.error&&c.push(d.error)}d(c.length>0?c:null),o(s),l(!1)}()}),[JSON.stringify([e,t,a])]),{rocCurveData:s,classificationClasses:i.length>2?i:["ROC"],error:c,isLoading:r}})(e,a,r.map((e=>e.id))),D=i.links.ml.classificationEvaluation,A=c.length>6,L=c.length-6,R=!0===A&&!1===m?r.slice(0,7):r,N=!0===A&&!1===m?6:c.length;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Up,{urlStateKey:"evaluation",dataTestId:"ClassificationEvaluation",title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.classificationExploration.evaluateSectionTitle",defaultMessage:"Model evaluation"}),docsLink:Object(h.jsx)(d.EuiButtonEmpty,{target:"_blank",iconType:"help",iconSide:"left",size:"xs",color:"primary",href:D},Object(h.jsx)(d.EuiText,{size:"xs",color:"primary"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.classificationExploration.classificationDocsLink",defaultMessage:"Classification evaluation docs "}))),headerItems:S?Jp:[...void 0!==t?[{id:"jobStatus",label:u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.evaluateJobStatusLabel",{defaultMessage:"Job status"}),value:t}]:[],...null!==w?[{id:"docsEvaluated",label:u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.generalizationDocsCount",{defaultMessage:"{docsCount, plural, one {doc} other {docs}} evaluated",values:{docsCount:w}}),value:w}]:[]],contentPadding:!0,content:Object(h.jsx)(s.a.Fragment,null,S?null:Object(h.jsx)(s.a.Fragment,null,null!==M&&Object(h.jsx)(km,{error:M}),null===M&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"none",alignItems:"center"},Object(h.jsx)(d.EuiTitle,{size:"xxs"},Object(h.jsx)("span",null,Km(f))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(qm,null))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)("div",{className:"mlDataFrameAnalyticsClassification__evaluateSectionContent"},Object(h.jsx)("div",{className:"mlDataFrameAnalyticsClassification__actualLabel"},Object(h.jsx)(d.EuiText,{size:"xs",color:"subdued"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.classificationExploration.confusionMatrixActualLabel",defaultMessage:"Actual class"}))),Object(h.jsx)("div",{className:"mlDataFrameAnalyticsClassification__dataGridMinWidth"},r.length>0&&c.length>0&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)("div",null,Object(h.jsx)(d.EuiText,{size:"xs",color:"subdued"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.classificationExploration.confusionMatrixPredictedLabel",defaultMessage:"Predicted class"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiDataGrid,{"data-test-subj":"mlDFAnalyticsClassificationExplorationConfusionMatrix","aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.confusionMatrixLabel",{defaultMessage:"Classification confusion matrix"}),columns:R,columnVisibility:{visibleColumns:x,setVisibleColumns:v},rowCount:N,renderCellValue:({rowIndex:e,columnId:t,setCellProps:a,schema:i,isDetails:s})=>{const o=t===Pm?c[e][t]:c[e].predicted_classes_count[t],r=c[e]&&c[e].actual_class_doc_count;let l="0%";if(t!==Pm&&r&&"number"==typeof o){let e=o/r;e=Math.round(100*e)/100,l=`${Math.round(100*e)}%`}Object(n.useEffect)((()=>{t!==Pm&&a({style:{backgroundColor:`rgba(0, 179, 164, ${l})`}})}),[e,t,a]);let d=t===Pm?o:l;if(s&&"numeric"===i){const a=c[e];void 0!==a&&t!==Pm&&(d=`${a.predicted_classes_count[t]} / ${a.actual_class_doc_count} * 100 = ${d}`)}return Object(h.jsx)("span",null,d)},inMemory:{level:"sorting"},toolbarVisibility:{showColumnSelector:!0,showDisplaySelector:!1,showFullScreenSelector:!1,showSortSelector:!1},gridStyle:{border:"all",fontSize:"s",cellPadding:"s",stripes:!1,rowHover:"none",header:"shade"},trailingControlColumns:!0===A&&!1===m?Bm(L,b):void 0})))))),Object(h.jsx)(d.EuiSpacer,{size:"xl"}),Object(h.jsx)(d.EuiTitle,{size:"xxs"},Object(h.jsx)("span",null,Qm)),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFlexGroup,{direction:"column",justifyContent:"center",className:"mlDataFrameAnalyticsClassification__evaluationMetrics"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"l"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Fm,{dataTestSubj:"mlDFAEvaluateSectionOverallAccuracyStat",title:_,isLoading:S,description:u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.evaluateSectionOverallAccuracyStat",{defaultMessage:"Overall accuracy"}),tooltipContent:u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.evaluateSectionOverallAccuracyTooltip",{defaultMessage:"The ratio of the number of correct class predictions to the total number of predictions."})})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Fm,{dataTestSubj:"mlDFAEvaluateSectionAvgRecallStat",title:O,isLoading:S,description:u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.evaluateSectionMeanRecallStat",{defaultMessage:"Mean recall"}),tooltipContent:u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.evaluateSectionAvgRecallTooltip",{defaultMessage:"Mean recall shows how many of the data points that are actual class members were identified correctly as class members."})})))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Dm,{evaluationMetricsItems:T}))),Object(h.jsx)(d.EuiSpacer,{size:"l"}),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"none",alignItems:"center"},Object(h.jsx)(d.EuiTitle,{size:"xxs"},Object(h.jsx)("span",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.classificationExploration.evaluateSectionRocTitle",defaultMessage:"Receiver operating characteristic (ROC) curve"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)($m,null))),Array.isArray(F)&&Object(h.jsx)(km,{error:Object(h.jsx)(s.a.Fragment,null,F.map((e=>Object(h.jsx)(s.a.Fragment,null,e,Object(h.jsx)("br",null)))))}),!I&&null===F&&C.length>0&&Object(h.jsx)("div",{className:"mlDataFrameAnalyticsClassification__evaluateSectionContent","data-test-subj":"mlDFAnalyticsClassificationExplorationRocCurveChart"},Object(h.jsx)(yp,{vegaSpec:Nm(k,C,Object(Du.u)(e.analysis),o)})),I&&Object(h.jsx)(xp,null))}),Object(h.jsx)(d.EuiSpacer,{size:"m"}))},eb=({jobId:e})=>Object(h.jsx)("div",{className:"mlDataFrameAnalyticsClassification"},Object(h.jsx)(gm,{jobId:e,title:u.i18n.translate("xpack.ml.dataframe.analytics.classificationExploration.tableJobIdTitle",{defaultMessage:"Destination index for classification job ID {jobId}",values:{jobId:e}}),EvaluatePanel:Zm,FeatureImportanceSummaryPanel:Tm}));var tb=a(128),ab=a(266);function ib(e){return e.dest&&e.analysis&&e.id}const nb=[{field:"id",name:u.i18n.translate("xpack.ml.analyticsSelector.id",{defaultMessage:"ID"}),sortable:e=>e.id,truncateText:!0,"data-test-subj":"mlAnalyticsSelectorTableColumnId",scope:"row"},{field:"description",name:u.i18n.translate("xpack.ml.analyticsSelector.description",{defaultMessage:"Description"}),sortable:!0,truncateText:!0,"data-test-subj":"mlAnalyticsSelectorColumnJobDescription"},{field:"source.index",name:u.i18n.translate("xpack.ml.analyticsSelector.sourceIndex",{defaultMessage:"Source index"}),sortable:!0,truncateText:!0,"data-test-subj":"mlAnalyticsSelectorColumnSourceIndex"},{field:"dest.index",name:u.i18n.translate("xpack.ml.analyticsSelector.destinationIndex",{defaultMessage:"Destination index"}),sortable:!0,truncateText:!0,"data-test-subj":"mlAnalyticsSelectorColumnDestIndex"}],sb=[{field:ab.b.id,name:u.i18n.translate("xpack.ml.analyticsSelector.modelsList.modelIdHeader",{defaultMessage:"ID"}),sortable:!0,truncateText:!1,"data-test-subj":"mlAnalyticsSelectorColumnId"},{field:ab.b.description,width:"350px",name:u.i18n.translate("xpack.ml.analyticsSelector.modelsList.modelDescriptionHeader",{defaultMessage:"Description"}),sortable:!1,truncateText:!1,"data-test-subj":"mlAnalyticsSelectorColumnDescription"}];function ob({setAnalyticsId:e,jobsOnly:t=!1,setIsIdSelectorFlyoutVisible:a}){const[i,s]=Object(n.useState)(),[o,r]=Object(n.useState)([]),[l,c]=Object(n.useState)([]),[p,m]=Object(n.useState)(!1),{displayErrorToast:b}=Object(qe.c)(),f=Object(cm.b)(),{dataFrameAnalytics:{getDataFrameAnalytics:j}}=Object(Te.c)();function x(){a(!1)}Object(n.useEffect)((()=>{!async function(){m(!0);try{const{data_frame_analytics:e}=await j();r(e)}catch(e){console.error("Error fetching analytics",e),b(e,u.i18n.translate("xpack.ml.analyticsSelector.analyticsFetchErrorMessage",{defaultMessage:"An error occurred fetching analytics jobs. Refresh and try again."}))}m(!1)}(),!1===t&&async function(){m(!0);try{const e=await f.getTrainedModels();c(e)}catch(e){console.error("Error fetching trained models",e),b(e,u.i18n.translate("xpack.ml.analyticsSelector.trainedModelsFetchErrorMessage",{defaultMessage:"An error occurred fetching trained models. Refresh and try again."}))}m(!1)}()}),[]);const v=Object(n.useCallback)((()=>{void 0!==i&&e(i),x()}),[null==i?void 0:i.model_id,null==i?void 0:i.job_id]),y={initialPageSize:20,pageSizeOptions:[5,10,20,50]},O={selectable:e=>{const t=ib(e),a=t?e.id:e.model_id,n=!t&&e.tags.includes(tb.a);return(void 0===i||(null==i?void 0:i.job_id)===a||(null==i?void 0:i.model_id)===a)&&!n},onSelectionChange:e=>{var t,a;const i=e[0];if(!i)return void s(void 0);const n=ib(i),o=n?i.analysis:i.inference_config,r=o?Object.keys(o)[0]:void 0;s({model_id:n?void 0:i.model_id,job_id:n?i.id:null===(t=i.metadata)||void 0===t||null===(a=t.analytics_config)||void 0===a?void 0:a.id,analysis_type:r})}},E=[{id:"Jobs",name:u.i18n.translate("xpack.ml.analyticsSelector.jobsTab",{defaultMessage:"Jobs"}),content:Object(h.jsx)(d.EuiInMemoryTable,{items:o,itemId:"id",loading:p,columns:nb,pagination:y,sorting:!0,selection:O,isSelectable:!0})}];return!1===t&&E.push({id:"Models",name:u.i18n.translate("xpack.ml.analyticsSelector.modelsTab",{defaultMessage:"Models"}),content:Object(h.jsx)(d.EuiInMemoryTable,{items:l,itemId:"model_id",loading:p,columns:sb,pagination:y,sorting:!0,selection:O,isSelectable:!0})}),Object(h.jsx)(d.EuiFlyout,{onClose:x,"data-test-subj":"mlFlyoutJobSelector","aria-labelledby":"jobSelectorFlyout"},Object(h.jsx)(d.EuiFlyoutHeader,{hasBorder:!0},Object(h.jsx)(d.EuiTitle,{size:"m"},Object(h.jsx)("h2",{id:"flyoutTitle"},u.i18n.translate("xpack.ml.analyticsSelector.flyoutTitle",{defaultMessage:"Analytics selection"})))),Object(h.jsx)(d.EuiFlyoutBody,{"data-test-subj":"mlJobSelectorFlyoutBody"},Object(h.jsx)(d.EuiTabbedContent,{size:"s",tabs:E,initialSelectedTab:E[0]})),Object(h.jsx)(d.EuiFlyoutFooter,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:v,fill:!0,isDisabled:void 0===i,"data-test-subj":"mlFlyoutAnalyticsSelectorButtonApply"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.analyticsSelector.applyFlyoutButton",defaultMessage:"Apply"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{iconType:"cross",onClick:x,"data-test-subj":"mlFlyoutAnalyticsSelectorButtonClose"},u.i18n.translate("xpack.ml.analyticsSelector.closeFlyoutButton",{defaultMessage:"Close"}))))))}const rb=({setIsIdSelectorFlyoutVisible:e,selectedId:t})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},t?Object(h.jsx)(d.EuiBadge,{key:`${t}-id`,"data-test-subj":`mlAnalyticsIdSelectionBadge ${t}`,color:"hollow"},t):null,t?null:Object(h.jsx)(d.EuiText,{size:"xs"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.noIdsSelectedLabel",defaultMessage:"No Analytics ID selected"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{size:"xs",iconType:"pencil",onClick:e.bind(null,!0),"data-test-subj":"mlButtonEditAnalyticsIdSelection"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.editSelection",defaultMessage:"Edit selection"})))),Object(h.jsx)(d.EuiHorizontalRule,null)),lb=({jobId:e,analysisType:t})=>{const[a,i]=Object(n.useState)(),[o,r]=Object(n.useState)(!e),[l,c]=Object(n.useState)(!0),{services:{docLinks:u}}=Object(Te.d)(),{dataFrameAnalytics:{getDataFrameAnalytics:p}}=Object(Te.c)(),m=u.links.ml.dataFrameAnalytics,b=null!=e?e:null==a?void 0:a.job_id,[f,j]=Object(n.useState)(t||(null==a?void 0:a.analysis_type)),[,x]=Object(ze.d)("_g");return Object(n.useEffect)((function(){(f!==t||null!=a&&a.analysis_type)&&j(t||(null==a?void 0:a.analysis_type))}),[a,t,f]),Object(n.useEffect)((function(){(async()=>{try{const{count:e}=await p(void 0,void 0,0);c(e>0)}catch(e){console.error("Error checking analytics jobs exist",e)}})()}),[]),Object(n.useEffect)((function(){void 0!==a&&x({ml:{...a.analysis_type?{analysisType:a.analysis_type}:{},...a.job_id?{jobId:a.job_id}:{}}})}),[null==a?void 0:a.job_id,null==a?void 0:a.model_id]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(rb,{setIsIdSelectorFlyoutVisible:r,selectedId:b}),o?Object(h.jsx)(ob,{setAnalyticsId:i,setIsIdSelectorFlyoutVisible:r}):null,void 0!==b&&Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analyticsExploration.titleWithId",defaultMessage:"Explore results for job ID {id}",values:{id:b}})),void 0===b&&Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analyticsExploration.title",defaultMessage:"Explore results"})),Object(h.jsx)(mn.a,{onCloseFlyout:()=>{j(void 0)}}),b&&f?Object(h.jsx)("div",{"data-test-subj":"mlPageDataFrameAnalyticsExploration"},f===Du.b.OUTLIER_DETECTION&&Object(h.jsx)(lm,{jobId:b}),f===Du.b.REGRESSION&&Object(h.jsx)(Cm,{jobId:b}),f===Du.b.CLASSIFICATION&&Object(h.jsx)(eb,{jobId:b})):!1===l?Object(h.jsx)(Yu.a,null):Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiEmptyPrompt,{iconType:"warning",title:Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.noJobSelectedLabel",defaultMessage:"No Analytics ID selected"})),"data-test-subj":"mlNoAnalyticsFound"})),Object(h.jsx)(_e.a,{docLink:m}))},cb=(e,t)=>({path:Object(Ee.c)(te.a.DATA_FRAME_ANALYTICS_EXPLORATION),render:()=>Object(h.jsx)(db,null),title:u.i18n.translate("xpack.ml.dataFrameAnalytics.exploration.docTitle",{defaultMessage:"Results Explorer"}),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("DATA_FRAME_ANALYTICS_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.dataFrameAnalyticsBreadcrumbs.dataFrameExplorationLabel",{defaultMessage:"Results Explorer"})}]}),db=()=>{const{context:e}=Ie("full",["canGetDataFrameAnalytics"],Sn()),[t]=Object(ze.d)("_g"),a=null==t?void 0:t.ml.jobId,i=null==t?void 0:t.ml.analysisType;return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(lb,{jobId:a,analysisType:i}))};var ub=a(364);const pb=({messages:e})=>Object(h.jsx)(s.a.Fragment,null,e.map(((e,t)=>Object(h.jsx)(n.Fragment,{key:t},Object(h.jsx)(d.EuiCallOut,{"data-test-subj":`analyticsWizardCreationCallout_${t}`,title:e.message,color:void 0!==e.error?"danger":"primary",iconType:void 0!==e.error?"error":"checkInCircleFilled",size:"s"},void 0!==e.error&&Object(h.jsx)(d.EuiCodeBlock,{language:"json",fontSize:"s",paddingSize:"s",isCopyable:!0},e.error)),Object(h.jsx)(d.EuiSpacer,{size:"s"})))));var mb=a(140);const bb=async e=>{const t=Object(mb.f)(e);let a="",i="",n=!0,s="",o=[],r=!1;try{var l;delete t.dest,delete t.model_memory_limit,delete t.analyzed_fields;const e=await Je.ml.dataFrameAnalytics.explainDataFrameAnalytics(t);s=null===(l=e.memory_estimation)||void 0===l?void 0:l.expected_memory_without_disk,o=e.field_selection||[]}catch(e){const t=Object(ei.c)(e);n=!1,a=t.message,t.causedBy&&(i=t.causedBy)}return a.includes("status_exception")&&a.includes("Unable to estimate memory usage as no documents")&&(r=!0),{success:n,expectedMemory:s,fieldSelection:o,errorMessage:a,errorReason:i,noDocsContainMappedFields:r}},fb=()=>{const e=Object(Te.f)({page:Fe.b.DATA_FRAME_ANALYTICS_JOBS_MANAGE});return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiCard,{className:"dfAnalyticsCreationWizard__card",icon:Object(h.jsx)(d.EuiIcon,{size:"xxl",type:"list"}),title:u.i18n.translate("xpack.ml.dataframe.analytics.create.analyticsListCardTitle",{defaultMessage:"Data Frame Analytics"}),description:u.i18n.translate("xpack.ml.dataframe.analytics.create.analyticsListCardDescription",{defaultMessage:"Return to the analytics management page."}),href:e,"data-test-subj":"analyticsWizardCardManagement"}))},gb=({jobId:e,analysisType:t})=>{const a=Object(Te.f)({page:Fe.b.DATA_FRAME_ANALYTICS_EXPLORATION,pageState:{jobId:e,analysisType:t}});return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiCard,{className:"dfAnalyticsCreationWizard__card",icon:Object(h.jsx)(d.EuiIcon,{size:"xxl",type:"visTable"}),title:u.i18n.translate("xpack.ml.dataframe.analytics.create.viewResultsCardTitle",{defaultMessage:"View Results"}),description:u.i18n.translate("xpack.ml.dataframe.analytics.create.viewResultsCardDescription",{defaultMessage:"View results for the analytics job."}),href:a,"data-test-subj":"analyticsWizardViewResultsCard"}))},hb=({currentProgress:e,failedJobMessage:t})=>void 0===e?null:Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,null),void 0!==t&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiCallOut,{"data-test-subj":"analyticsWizardProgressCallout",title:u.i18n.translate("xpack.ml.dataframe.analytics.create.analyticsProgressCalloutTitle",{defaultMessage:"Job failed"}),color:"danger",iconType:"error",size:"s"},Object(h.jsx)("p",null,t)),Object(h.jsx)(d.EuiSpacer,{size:"s"})),Object(h.jsx)(d.EuiText,{size:"m"},Object(h.jsx)("strong",null,u.i18n.translate("xpack.ml.dataframe.analytics.create.analyticsProgressTitle",{defaultMessage:"Progress"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"s"},Object(h.jsx)("strong",null,u.i18n.translate("xpack.ml.dataframe.analytics.create.analyticsProgressPhaseTitle",{defaultMessage:"Phase"})," ",e.currentPhase,"/",e.totalPhases))),Object(h.jsx)(d.EuiFlexItem,{style:{width:"400px"},grow:!1},Object(h.jsx)(d.EuiProgress,{value:e.progress,max:100,color:"primary",size:"l","data-test-subj":"mlAnalyticsCreationWizardProgress"})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"s"},`${e.progress}%`)))),jb=({jobId:e,jobType:t,showProgress:a})=>{const[i,o]=Object(n.useState)(!1),[r,l]=Object(n.useState)(void 0),[c,p]=Object(n.useState)(!1),[m,b]=Object(n.useState)(void 0),[f,g]=Object(n.useState)(!1),{services:{notifications:j}}=Object(Te.d)();return Object(n.useEffect)((()=>{o(!0)}),[]),Object(n.useEffect)((()=>{if(!1===a)return;const t=setInterval((async()=>{try{const a=await Je.ml.dataFrameAnalytics.getDataFrameAnalyticsStats(e),i=Object(Gp.b)(a)?a.data_frame_analytics[0]:void 0;if(g((null==i?void 0:i.state)===Du.d.STARTING&&void 0===(null==i?void 0:i.node)),void 0!==i){const a=Object(Lu.c)(i);i.state===Du.d.FAILED&&(clearInterval(t),l(i.failure_reason||u.i18n.translate("xpack.ml.dataframe.analytics.create.analyticsProgressCalloutMessage",{defaultMessage:"Analytics job {jobId} has failed.",values:{jobId:e}}))),b(a),(a.currentPhase===a.totalPhases&&100===a.progress||i.state===Du.d.STOPPED&&(1!==a.currentPhase||0!==a.progress))&&(clearInterval(t),p(a.currentPhase===a.totalPhases&&100===a.progress))}else clearInterval(t)}catch(a){j.toasts.addDanger(u.i18n.translate("xpack.ml.dataframe.analytics.create.analyticsProgressErrorMessage",{defaultMessage:"An error occurred getting progress stats for analytics job {jobId}",values:{jobId:e}})),clearInterval(t)}}),1e3);return()=>clearInterval(t)}),[i]),Object(h.jsx)(s.a.Fragment,null,f&&Object(h.jsx)(pn.b,{jobType:"data-frame-analytics"}),Object(h.jsx)(d.EuiFlexGroup,{direction:"column"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},a&&Object(h.jsx)(hb,{currentProgress:m,failedJobMessage:r})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiHorizontalRule,null),Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(fb,null)),!0===c?Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(gb,{jobId:e,analysisType:t})):null))))},xb=({actions:e,state:t,step:a})=>{const{services:{application:{capabilities:i}}}=Object(Te.d)(),s=Object(n.useMemo)((()=>!0===i.savedObjectsManagement.edit||!0===i.indexPatterns.save),[i]),{createAnalyticsJob:o,setFormState:r,startAnalyticsJob:l}=e,{isAdvancedEditorValidJson:c,isJobCreated:p,isJobStarted:m,isValid:b,requestMessages:f}=t,{createIndexPattern:g,destinationIndex:j,destinationIndexPatternTitleExists:x,jobId:v,jobType:y}=t.form,[O,E]=Object(n.useState)(!0),[w,M]=Object(n.useState)(!1),[S,_]=Object(n.useState)(!1);return Object(n.useEffect)((()=>{!1===s&&r({createIndexPattern:!1})}),[i]),a!==Hf.CREATE?null:Object(h.jsx)("div",{"data-test-subj":"mlAnalyticsCreateJobWizardCreateStep active"},!p&&!m&&Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"m",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{direction:"column",gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFormRow,{helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.startCheckboxHelpText",{defaultMessage:"If unselected, job can be started later by returning to the jobs list."})},Object(h.jsx)(d.EuiCheckbox,{"data-test-subj":"mlAnalyticsCreateJobWizardStartJobCheckbox",id:"dataframe-create-start-checkbox",label:u.i18n.translate("xpack.ml.dataframe.analytics.create.wizardStartCheckbox",{defaultMessage:"Start immediately"}),checked:O,onChange:e=>{E(e.target.checked),!1===e.target.checked&&r({createIndexPattern:!1})}}))),O?Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,isInvalid:g&&x||!1===g||!1===s,error:[...!1===s?[Object(h.jsx)(d.EuiText,{size:"xs",color:"warning"},u.i18n.translate("xpack.ml.dataframe.analytics.create.dataViewPermissionWarning",{defaultMessage:"You need permission to create data views."}))]:[],...g&&x?[u.i18n.translate("xpack.ml.dataframe.analytics.create.dataViewExistsError",{defaultMessage:"A data view with the title {title} already exists.",values:{title:j}})]:[],...g||x?[]:[Object(h.jsx)(d.EuiText,{size:"xs",color:"warning"},u.i18n.translate("xpack.ml.dataframe.analytics.create.shouldCreateDataViewMessage",{defaultMessage:"You may not be able to view job results if a data view is not created for the destination index."}))]]},Object(h.jsx)(d.EuiCheckbox,{disabled:p||!1===s,name:"mlDataFrameAnalyticsCreateIndexPattern",id:"dataframe-create-data-view-checkbox",label:u.i18n.translate("xpack.ml.dataframe.analytics.create.createDataViewLabel",{defaultMessage:"Create data view"}),checked:!0===g,onChange:()=>r({createIndexPattern:!g}),"data-test-subj":"mlAnalyticsCreateJobWizardCreateIndexPatternCheckbox"}))):null)),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{className:"mlAnalyticsCreateWizard__footerButton",disabled:!b||!c||!0===x&&!0===g,onClick:async()=>{M(!0);const e=await o();!1===e&&M(!1),O&&!0===e&&(_(!0),l())},fill:!0,isLoading:w,"data-test-subj":"mlAnalyticsCreateJobWizardCreateButton"},u.i18n.translate("xpack.ml.dataframe.analytics.create.wizardCreateButton",{defaultMessage:"Create"})))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(pb,{messages:f}),!0===p?Object(h.jsx)(jb,{jobId:v,jobType:y,showProgress:S}):null)},vb=e=>{const{actions:t,state:a}=e,{setAdvancedEditorRawString:i,setFormState:s}=t,{advancedEditorMessages:o,advancedEditorRawString:r,isJobCreated:l}=a,{jobId:c,jobIdEmpty:p,jobIdExists:b,jobIdValid:f}=a.form,g=Object(n.useRef)(null),{toasts:j}=Object(Te.i)(),x=Object(n.useMemo)((()=>Object(Ue.debounce)((async()=>{try{const e=await Je.ml.dataFrameAnalytics.jobsExist([c],!0);s({jobIdExists:e[c].exists})}catch(e){j.addDanger(u.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditor.errorCheckingJobIdExists",{defaultMessage:"The following error occurred checking if job id exists: {error}",values:{error:Object(ei.b)(e)}}))}}),400)),[c]);return Object(n.useEffect)((()=>{if(null===g.current)return;const e=document.createEvent("MouseEvents");e.initEvent("mouseup",!0,!0),g.current.dispatchEvent(e)}),[]),Object(n.useEffect)((()=>(!0===f?x():"string"==typeof c&&""===c.trim()&&!0===b&&s({jobIdExists:!1}),()=>{x.cancel()})),[c]),Object(h.jsx)(d.EuiForm,{className:"mlDataFrameAnalyticsCreateForm"},Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditor.jobIdLabel",{defaultMessage:"Analytics job ID"}),isInvalid:!p&&!f||b,error:[...p||f?[]:[u.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditor.jobIdInvalidError",{defaultMessage:"Must contain lowercase alphanumeric characters (a-z and 0-9), hyphens, and underscores only and must start and end with alphanumeric characters."})],...b?[u.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditor.jobIdExistsError",{defaultMessage:"An analytics job with this ID already exists."})]:[]]},Object(h.jsx)(d.EuiFieldText,{inputRef:e=>{e&&(g.current=e)},disabled:l,placeholder:"analytics job ID",value:c,onChange:e=>s({jobId:e.target.value}),"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditor.jobIdInputAriaLabel",{defaultMessage:"Choose a unique analytics job ID."}),isInvalid:!p&&!f||b})),Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditor.configRequestBody",{defaultMessage:"Configuration request body"}),style:{maxWidth:"100%"}},Object(h.jsx)(sa.CodeEditor,{languageId:"json",height:500,languageConfiguration:{autoClosingPairs:[{open:"{",close:"}"}]},value:r,onChange:e=>{i(e)},options:{ariaLabel:u.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditor.codeEditorAriaLabel",{defaultMessage:"Advanced analytics job editor"}),automaticLayout:!0,readOnly:l,fontSize:12,scrollBeyondLastLine:!1,quickSuggestions:!0,minimap:{enabled:!1},wordWrap:"on",wrappingIndent:"indent"}})),Object(h.jsx)(d.EuiSpacer,null),o.map(((e,t)=>Object(h.jsx)(n.Fragment,{key:t},Object(h.jsx)(d.EuiCallOut,{title:""!==e.message?e.message:e.error,color:void 0!==e.error?"danger":"primary",iconType:void 0!==e.error?"error":"checkInCircleFilled",size:"s"},""!==e.message&&void 0!==e.error?Object(h.jsx)("p",null,e.error):null),Object(h.jsx)(d.EuiSpacer,null)))),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(xb,m()({},e,{step:Hf.CREATE})))},yb=({setCurrentStep:e,state:t})=>{const{selectedDataView:a}=Yn(),{form:i,isJobCreated:s}=t,{dependentVariable:o,includes:r,jobConfigQueryString:l,jobType:c,trainingPercent:p}=i,m=c===Du.b.REGRESSION||c===Du.b.CLASSIFICATION,b=[{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.sourceIndex",{defaultMessage:"Source index"}),description:a.title||mb.c},{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.Query",{defaultMessage:"Query"}),description:l||mb.c}],f=[{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.jobType",{defaultMessage:"Job type"}),description:c}],g=[{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.includedFields",{defaultMessage:"Included fields"}),description:r.length>5?u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.includedFieldsAndMoreDescription",{defaultMessage:"{includedFields} ... (and {extraCount} more)",values:{extraCount:r.length-5,includedFields:r.slice(0,5).join(", ")}}):r.join(", ")}];return m&&(f.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.trainingPercent",{defaultMessage:"Training percent"}),description:`${p}`}),g.unshift({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.dependentVariable",{defaultMessage:"Dependent variable"}),description:o})),Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{style:{width:"70%"},justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:b})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:f})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:g}))),Object(h.jsx)(d.EuiSpacer,null),!s&&Object(h.jsx)(d.EuiButtonEmpty,{iconType:"pencil",size:"s",onClick:()=>{e(Hf.CONFIGURATION)}},u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.editButtonText",{defaultMessage:"Edit"})))};var Ob=a(226);const Eb=new Set(["ip","keyword"]),wb=(e,t,a)=>{if(e===la.c)return!1;const i=Du.c.has(t),n=i||Eb.has(t)||t===ma.a.BOOLEAN;return a===Du.b.REGRESSION?i||Du.g.has(t):a===Du.b.CLASSIFICATION?n:void 0},Mb=(e,t,a)=>{let i,n,s,o;return a===Du.b.CLASSIFICATION&&(e.includes("must have at most")||e.includes("must have at least"))?i=e:e.includes("status_exception")&&e.includes("unsupported type")?n=e:e.includes("status_exception")&&e.includes("Unable to estimate memory usage as no documents")?s=u.i18n.translate("xpack.ml.dataframe.analytics.create.allDocsMissingFieldsErrorMessage",{defaultMessage:"Unable to estimate memory usage. There are mapped fields for source index [{index}] that do not exist in any indexed documents. You will have to switch to the JSON editor for explicit field selection and include only fields that exist in indexed documents.",values:{index:t}}):o={title:u.i18n.translate("xpack.ml.dataframe.analytics.create.unableToFetchExplainDataMessage",{defaultMessage:"An error occurred fetching analysis fields data."}),text:e},{maxDistinctValuesErrorMessage:i,unsupportedFieldsErrorMessage:n,toastNotificationDanger:o,toastNotificationWarning:s}},Sb=u.i18n.translate("xpack.ml.dataframe.analytics.creation.continueButtonText",{defaultMessage:"Continue"}),_b=({isDisabled:e,onClick:t})=>Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{"data-test-subj":"mlAnalyticsCreateJobWizardContinueButton",isDisabled:e,size:"s",onClick:t},Sb))),Tb={[Du.b.OUTLIER_DETECTION]:{helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.outlierDetectionHelpText",{defaultMessage:"Identify unusual data points in the data set."}),icon:"outlierDetectionJob",title:u.i18n.translate("xpack.ml.dataframe.analytics.create.outlierDetectionTitle",{defaultMessage:"Outlier detection"})},[Du.b.REGRESSION]:{helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.regressionHelpText",{defaultMessage:"Predict numerical values in the data set."}),icon:"regressionJob",title:u.i18n.translate("xpack.ml.dataframe.analytics.create.regressionTitle",{defaultMessage:"Regression"})},[Du.b.CLASSIFICATION]:{helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.classificationHelpText",{defaultMessage:"Predict classes of data points in the data set."}),icon:"classificationJob",title:u.i18n.translate("xpack.ml.dataframe.analytics.create.classificationTitle",{defaultMessage:"Classification"})}},Cb=({type:e,setFormState:t})=>{const[a,i]=Object(n.useState)({});return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"m","data-test-subj":"mlAnalyticsCreateJobWizardJobTypeSelect"},Object.keys(Tb).map((n=>Object(h.jsx)(d.EuiFlexItem,{key:n,grow:1},Object(h.jsx)(d.EuiCard,{icon:Object(h.jsx)(d.EuiIcon,{size:"xl",type:Tb[n].icon}),title:Tb[n].title,description:Tb[n].helpText,"data-test-subj":`mlAnalyticsCreation-${n}-option${e===n?" selectedJobType":""}`,selectable:{onClick:()=>{!0!==a[n]&&(t({previousJobType:e,jobType:n,requiredFieldsError:void 0}),i({[n]:!a[n]}))},isSelected:!0===a[n]||e===n}}))))),Object(h.jsx)(d.EuiSpacer,{size:"m"}))},kb={[Du.b.CLASSIFICATION]:({name:e,type:t})=>!la.s.includes(e)&&e!==la.c&&(Du.c.has(t)||Eb.has(t)||t===ma.a.BOOLEAN),[Du.b.REGRESSION]:({name:e,type:t})=>!la.s.includes(e)&&e!==la.c&&(Du.c.has(t)||Du.g.has(t)),[Du.b.OUTLIER_DETECTION]:({name:e,type:t})=>!la.s.includes(e)&&e!==la.c&&(Du.c.has(t)||Du.g.has(t))},Fb={[Du.b.CLASSIFICATION]:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.create.sourceObjectClassificationHelpText",defaultMessage:"This data view does not contain any supported fields. Classification jobs require categorical, numeric, or boolean fields."}),[Du.b.REGRESSION]:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.create.sourceObjectRegressionHelpText",defaultMessage:"This data view does not contain any supported fields. Regression jobs require numeric fields."}),[Du.b.OUTLIER_DETECTION]:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.create.sourceObjectHelpText",defaultMessage:"This data view does not contain any numeric type fields. The analytics job may not be able to come up with any outliers."})},Ib=({jobType:e})=>{const[t,a]=Object(n.useState)(!0),[i,s]=Object(n.useState)(!1),{fields:o}=$c.a;return Object(n.useEffect)((()=>{void 0!==e&&(()=>{if(o&&void 0!==e)try{const t=o.some(kb[e]);a(t),s(!1)}catch(e){s(!0)}})()}),[e]),!0===t?null:!0===i?Object(h.jsx)(n.Fragment,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.create.sourceIndexFieldsCheckError",defaultMessage:"There was a problem checking for supported fields for job type. Please refresh the page and try again."}),Object(h.jsx)(d.EuiSpacer,{size:"s"})):Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiText,{size:"xs",color:"danger"},void 0!==e&&Fb[e]),Object(h.jsx)(d.EuiSpacer,{size:"s"}))};var Db=a(362);const Ab=u.i18n.translate("xpack.ml.dataframe.analytics.create.analysisFieldsTable.minimumFieldsMessage",{defaultMessage:"At least one field must be selected."}),Lb=e=>!0===e.is_required||e.reason&&e.reason.includes("unsupported type"),Rb=s.a.memo((({dependentVariable:e,includes:t,isJobTypeWithDepVar:a,setFormState:i,minimumFieldsRequiredMessage:o,setMinimumFieldsRequiredMessage:r,tableItems:l,unsupportedFieldsError:c,setUnsupportedFieldsError:p})=>{const[m,b]=Object(n.useState)(),[f,j]=Object(n.useState)({pageIndex:0,itemsPerPage:5}),{handleFieldStatsButtonClick:x}=Object(Ss.a)(),v=[{id:"checkbox",isCheckbox:!0,textOnly:!1,width:"32px"},{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.analysisFieldsTable.fieldNameColumn",{defaultMessage:"Field name"}),id:"name",render:({name:e,mapping_types:t})=>{const a={id:e,type:Array.isArray(t)&&t.length>0?t[0]:"number"};return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Ms.a,{field:a,label:e,onButtonClick:x}))},isSortable:!0,alignment:Xt.LEFT_ALIGNMENT},{id:"mapping_types",label:u.i18n.translate("xpack.ml.dataframe.analytics.create.analyticsTable.mappingColumn",{defaultMessage:"Mapping"}),isSortable:!1,alignment:Xt.LEFT_ALIGNMENT},{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.analyticsTable.isIncludedColumn",{defaultMessage:"Is included"}),id:"is_included",alignment:Xt.LEFT_ALIGNMENT,isSortable:!0,render:({is_included:e})=>e?"Yes":"No"},{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.analyticsTable.isRequiredColumn",{defaultMessage:"Is required"}),id:"is_required",alignment:Xt.LEFT_ALIGNMENT,isSortable:!0,render:({is_required:e})=>e?"Yes":"No"},{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.analyticsTable.reasonColumn",{defaultMessage:"Reason"}),id:"reason",alignment:Xt.LEFT_ALIGNMENT,isSortable:!1}];Object(n.useEffect)((()=>{if(0===t.length&&l.length>0){const e=[];l.forEach((t=>{!0===t.is_included&&e.push(t.name)})),i({includes:e})}else t.length>0&&i({includes:e&&t.includes(e)||!a?t:[...t,e]});r(void 0)}),[l]),Object(n.useEffect)((()=>{let e=[];e=[{name:"name",getValue:e=>e.name.toLowerCase(),isAscending:!0},{name:"is_included",getValue:e=>e.is_included,isAscending:!0},{name:"is_required",getValue:e=>e.is_required,isAscending:!0}];const t=new Xt.SortableProperties(e,"name");b(t)}),[]);const y=[{type:"field_value_toggle_group",field:"is_included",items:[{value:!0,name:u.i18n.translate("xpack.ml.dataframe.analytics.create.isIncludedOption",{defaultMessage:"Is included"})},{value:!1,name:u.i18n.translate("xpack.ml.dataframe.analytics.create.isNotIncludedOption",{defaultMessage:"Is not included"})}]}];return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFormRow,{"data-test-subj":"mlAnalyticsCreateJobWizardIncludesTable",label:u.i18n.translate("xpack.ml.dataframe.analytics.create.includedFieldsLabel",{defaultMessage:"Included fields"}),fullWidth:!0,isInvalid:void 0!==o||void 0!==c,error:[...void 0!==o?[o]:[],...void 0!==c?[u.i18n.translate("xpack.ml.dataframe.analytics.create.unsupportedFieldsError",{defaultMessage:"Invalid. {message}",values:{message:c}})]:[]]},Object(h.jsx)(n.Fragment,null)),l.length>0&&void 0===o&&Object(h.jsx)(d.EuiText,{size:"xs"},u.i18n.translate("xpack.ml.dataframe.analytics.create.includedFieldsCount",{defaultMessage:"{numFields, plural, one {# field} other {# fields}} included in the analysis",values:{numFields:t.length}})),0===l.length&&Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.calloutTitle",{defaultMessage:"Analysis fields not available"})},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.create.calloutMessage",defaultMessage:"Additional data required to load analysis fields."})),l.length>0&&Object(h.jsx)(d.EuiPanel,{paddingSize:"m","data-test-subj":"mlAnalyticsCreateJobWizardIncludesSelect"},Object(h.jsx)(Db.a,{currentPage:f.pageIndex,"data-test-subj":"mlAnalyticsCreationAnalysisFieldsTable",checkboxDisabledCheck:Lb,columns:v,filters:y,items:l,itemsPerPage:f.itemsPerPage,onTableChange:t=>{a&&void 0!==e&&""!==e&&0===t.length&&(t=[e]),0===t.length?(r(Ab),p(void 0)):(r(void 0),i({includes:t}))},selectedIds:t,setCurrentPaginationData:j,singleSelection:!1,sortableProperties:m,tableItemId:"name"})),Object(h.jsx)(d.EuiSpacer,null))}),((e,t)=>e.dependentVariable===t.dependentVariable&&Object(Ue.isEqual)(e.includes,t.includes)&&Object(Ue.isEqual)(e.tableItems,t.tableItems)&&e.unsupportedFieldsError===t.unsupportedFieldsError));function Nb(e){return Object.keys(e).map((t=>{let a=e[t];Array.isArray(a)&&(a=a[0]);const i=Object(jp.d)(a.type);return{id:t,schema:i,isExpandable:"boolean"!==i,isRuntimeFieldColumn:!0}}))}function Pb(e,t){const{fields:a}=e;return a.filter((e=>t.includes(e.name))).map((e=>{const t=Object(jp.d)(e.type)||Object(jp.e)(e);return{id:e.name,schema:t,isExpandable:"boolean"!==t,isRuntimeFieldColumn:!1}}))}var zb=a(211),Bb=a.n(zb);const{TextHighlightRules:Vb}=Bb.a.acequire("ace/mode/text_highlight_rules"),Jb=Bb.a.acequire("ace/lib/oop"),Ub=function(){const e=this.createKeywordMapper({keyword:["describe|between|in|like|not|and|or|desc|select|from|where|having|group|by|orderasc|desc|pivot|for|in|as|show|columns|include|frozen|tables|escape|limit|rlike|all|distinct|is","avg|count|first|first_value|last|last_value|max|min|sum|kurtosis|mad|percentile|percentile_rank|skewness|stddev_pop|sum_of_squares|var_pop|histogram|case|coalesce|greatest|ifnull|iif|isnull|least|nullif|nvl|curdate|current_date|current_time|current_timestamp|curtime|dateadd|datediff|datepart|datetrunc|date_add|date_diff|date_part|date_trunc|day|dayname|dayofmonth|dayofweek|dayofyear|day_name|day_of_month|day_of_week|day_of_year|dom|dow|doy|hour|hour_of_day|idow|isodayofweek|isodow|isoweek|isoweekofyear|iso_day_of_week|iso_week_of_year|iw|iwoy|minute|minute_of_day|minute_of_hour|month|monthname|month_name|month_of_year|now|quarter|second|second_of_minute|timestampadd|timestampdiff|timestamp_add|timestamp_diff|today|week|week_of_year|year|abs|acos|asin|atan|atan2|cbrt|ceil|ceiling|cos|cosh|cot|degrees|e|exp|expm1|floor|log|log10|mod|pi|power|radians|rand|random|round|sign|signum|sin|sinh|sqrt|tan|truncate|ascii|bit_length|char|character_length|char_length|concat|insert|lcase|left|length|locate|ltrim|octet_length|position|repeat|replace|right|rtrim|space|substring|ucase|cast|convert|database|user|st_astext|st_aswkt|st_distance|st_geometrytype|st_geomfromtext|st_wkttosql|st_x|st_y|st_z|score","true|false","null|boolean|byte|short|integer|long|double|float|half_float|scaled_float|keyword|text|binary|date|ip|object|nested|time|interval_year|interval_month|interval_day|interval_hour|interval_minute|interval_second|interval_year_to_monthinteval_day_to_hour|interval_day_to_minute|interval_day_to_second|interval_hour_to_minute|interval_hour_to_secondinterval_minute_to_second|geo_point|geo_shape|shape"].join("|")},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"comment",start:"/\\*",end:"\\*/"},{token:"string",regex:'".*?"'},{token:"constant",regex:"'.*?'"},{token:"string",regex:"`.*?`"},{token:"entity.name.function",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"⇐|<⇒|\\*|\\.|\\:\\:|\\+|\\-|\\/|\\/\\/|%|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]},this.normalizeRules()};Jb.inherits(Ub,Vb);const Gb=Bb.a.acequire("ace/lib/oop"),{TextHighlightRules:qb}=Bb.a.acequire("ace/mode/text_highlight_rules"),$b="def|int|long|byte|String|float|double|char|null|if|else|while|do|for|continue|break|new|try|catch|throw|this|instanceof|return|ctx";function Wb(){this.name="ScriptHighlightRules",this.$rules={start:[{token:"script.comment",regex:"\\/\\/.*$"},{token:"script.string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"script.string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"script.constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"script.constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"script.constant.language.boolean",regex:"(?:true|false)\\b"},{token:"script.keyword",regex:$b},{token:"script.text",regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"script.keyword.operator",regex:"\\?\\.|\\*\\.|=~|==~|!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|->|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|typeof|void)"},{token:"script.lparen",regex:"[[({]"},{token:"script.rparen",regex:"[\\])}]"},{token:"script.text",regex:"\\s+"}]}}Gb.inherits(Wb,qb),a(603);const{JsonHighlightRules:Hb}=Bb.a.acequire("ace/mode/json_highlight_rules"),Yb=Bb.a.acequire("ace/lib/oop"),Xb=function(e){const t={},a=[{token:["variable","whitespace","ace.punctuation.colon","whitespace","punctuation.start_triple_quote"],regex:'("(?:[^"]*_)?script"|"inline"|"source")(\\s*?)(:)(\\s*?)(""")',next:"script-start",merge:!1,push:!0},{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"punctuation.start_triple_quote",regex:'"""',next:"string_literal",merge:!1,push:!0},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",merge:!1,regex:"{",next:e=e||"json",push:!0},{token:"paren.lparen",merge:!1,regex:"[[(]"},{token:"paren.rparen",merge:!1,regex:"[\\])]"},{token:"paren.rparen",regex:"}",merge:!1,next:"pop"},{token:"punctuation.comma",regex:","},{token:"punctuation.colon",regex:":"},{token:"whitespace",regex:"\\s+"},{token:"text",regex:".+?"}];return t[e]=a,t[e+"-sql"]=[{token:["variable","whitespace","ace.punctuation.colon","whitespace","punctuation.start_triple_quote"],regex:'("query")(\\s*?)(:)(\\s*?)(""")',next:"sql-start",merge:!1,push:!0}].concat(a),t.string_literal=[{token:"punctuation.end_triple_quote",regex:'"""',next:"pop"},{token:"multi_string",regex:"."}],t};function Qb(){this.$rules={...Xb("start")},this.embedRules(Wb,"script-",[{token:"punctuation.end_triple_quote",regex:'"""',next:"pop"}]),this.embedRules(Ub,"sql-",[{token:"punctuation.end_triple_quote",regex:'"""',next:"pop"}])}Yb.inherits(Qb,Hb);const Kb={id:"ace/mode/json_worker",src:'/*\n * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one\n * or more contributor license agreements. Licensed under the Elastic License\n * 2.0 and the Server Side Public License, v 1; you may not use this file except\n * in compliance with, at your election, the Elastic License 2.0 or the Server\n * Side Public License, v 1.\n */\n\n/* @notice\n *\n * This product includes code that is based on Ace editor, which was available\n * under a "BSD" license.\n *\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* eslint-disable prettier/prettier,no-var,eqeqeq,no-use-before-define,block-scoped-var,no-undef,\n guard-for-in,one-var,strict,no-redeclare,no-sequences,no-proto,new-cap,no-nested-ternary,no-unused-vars,\n prefer-const,no-empty,no-extend-native,camelcase */\n/*\n This file is loaded up as a blob by Brace to hand to Ace to load as Jsonp\n (hence the redefining of everything). It is based on the json\n mode from the brace distro.\n\n It is very likely that this file will be removed in future but for now it enables\n extended JSON parsing, like e.g. """{}""" (triple quotes)\n*/\n// @internal\n// @ts-nocheck\n"no use strict";\n! function(window) {\n function resolveModuleId(id, paths) {\n for (var testPath = id, tail = ""; testPath;) {\n var alias = paths[testPath];\n if ("string" == typeof alias) return alias + tail;\n if (alias) return alias.location.replace(/\\/*$/, "/") + (tail || alias.main || alias.name);\n if (alias === !1) return "";\n var i = testPath.lastIndexOf("/");\n if (-1 === i) break;\n tail = testPath.substr(i) + tail, testPath = testPath.slice(0, i)\n }\n return id\n }\n if (!(void 0 !== window.window && window.document || window.acequire && window.define)) {\n window.console || (window.console = function() {\n var msgs = Array.prototype.slice.call(arguments, 0);\n postMessage({\n type: "log",\n data: msgs\n })\n }, window.console.error = window.console.warn = window.console.log = window.console.trace = window.console), window.window = window, window.ace = window, window.onerror = function(message, file, line, col, err) {\n postMessage({\n type: "error",\n data: {\n message: message,\n data: err.data,\n file: file,\n line: line,\n col: col,\n stack: err.stack\n }\n })\n }, window.normalizeModule = function(parentId, moduleName) {\n if (-1 !== moduleName.indexOf("!")) {\n var chunks = moduleName.split("!");\n return window.normalizeModule(parentId, chunks[0]) + "!" + window.normalizeModule(parentId, chunks[1])\n }\n if ("." == moduleName.charAt(0)) {\n var base = parentId.split("/").slice(0, -1).join("/");\n for (moduleName = (base ? base + "/" : "") + moduleName; - 1 !== moduleName.indexOf(".") && previous != moduleName;) {\n var previous = moduleName;\n moduleName = moduleName.replace(/^\\.\\//, "").replace(/\\/\\.\\//, "/").replace(/[^\\/]+\\/\\.\\.\\//, "")\n }\n }\n return moduleName\n }, window.acequire = function acequire(parentId, id) {\n if (id || (id = parentId, parentId = null), !id.charAt) throw Error("worker.js acequire() accepts only (parentId, id) as arguments");\n id = window.normalizeModule(parentId, id);\n var module = window.acequire.modules[id];\n if (module) return module.initialized || (module.initialized = !0, module.exports = module.factory().exports), module.exports;\n if (!window.acequire.tlns) return console.log("unable to load " + id);\n var path = resolveModuleId(id, window.acequire.tlns);\n return ".js" != path.slice(-3) && (path += ".js"), window.acequire.id = id, window.acequire.modules[id] = {}, importScripts(path), window.acequire(parentId, id)\n }, window.acequire.modules = {}, window.acequire.tlns = {}, window.define = function(id, deps, factory) {\n if (2 == arguments.length ? (factory = deps, "string" != typeof id && (deps = id, id = window.acequire.id)) : 1 == arguments.length && (factory = id, deps = [], id = window.acequire.id), "function" != typeof factory) return window.acequire.modules[id] = {\n exports: factory,\n initialized: !0\n }, void 0;\n deps.length || (deps = ["require", "exports", "module"]);\n var req = function(childId) {\n return window.acequire(id, childId)\n };\n window.acequire.modules[id] = {\n exports: {},\n factory: function() {\n var module = this,\n returnExports = factory.apply(this, deps.map(function(dep) {\n switch (dep) {\n case "require":\n return req;\n case "exports":\n return module.exports;\n case "module":\n return module;\n default:\n return req(dep)\n }\n }));\n return returnExports && (module.exports = returnExports), module\n }\n }\n }, window.define.amd = {}, acequire.tlns = {}, window.initBaseUrls = function(topLevelNamespaces) {\n for (var i in topLevelNamespaces) acequire.tlns[i] = topLevelNamespaces[i]\n }, window.initSender = function() {\n var EventEmitter = window.acequire("ace/lib/event_emitter").EventEmitter,\n oop = window.acequire("ace/lib/oop"),\n Sender = function() {};\n return function() {\n oop.implement(this, EventEmitter), this.callback = function(data, callbackId) {\n postMessage({\n type: "call",\n id: callbackId,\n data: data\n })\n }, this.emit = function(name, data) {\n postMessage({\n type: "event",\n name: name,\n data: data\n })\n }\n }.call(Sender.prototype), new Sender\n };\n var main = window.main = null,\n sender = window.sender = null;\n window.onmessage = function(e) {\n var msg = e.data;\n if (msg.event && sender) sender._signal(msg.event, msg.data);\n else if (msg.command)\n if (main[msg.command]) main[msg.command].apply(main, msg.args);\n else {\n if (!window[msg.command]) throw Error("Unknown command:" + msg.command);\n window[msg.command].apply(window, msg.args)\n }\n else if (msg.init) {\n window.initBaseUrls(msg.tlns), acequire("ace/lib/es5-shim"), sender = window.sender = window.initSender();\n var clazz = acequire(msg.module)[msg.classname];\n main = window.main = new clazz(sender)\n }\n }\n }\n}(this), ace.define("ace/lib/oop", ["require", "exports", "module"], function(acequire, exports) {\n "use strict";\n exports.inherits = function(ctor, superCtor) {\n ctor.super_ = superCtor, ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n })\n }, exports.mixin = function(obj, mixin) {\n for (var key in mixin) obj[key] = mixin[key];\n return obj\n }, exports.implement = function(proto, mixin) {\n exports.mixin(proto, mixin)\n }\n}), ace.define("ace/range", ["require", "exports", "module"], function(acequire, exports) {\n "use strict";\n var comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column\n },\n Range = function(startRow, startColumn, endRow, endColumn) {\n this.start = {\n row: startRow,\n column: startColumn\n }, this.end = {\n row: endRow,\n column: endColumn\n }\n };\n (function() {\n this.isEqual = function(range) {\n return this.start.row === range.start.row && this.end.row === range.end.row && this.start.column === range.start.column && this.end.column === range.end.column\n }, this.toString = function() {\n return "Range: [" + this.start.row + "/" + this.start.column + "] -> [" + this.end.row + "/" + this.end.column + "]"\n }, this.contains = function(row, column) {\n return 0 == this.compare(row, column)\n }, this.compareRange = function(range) {\n var cmp, end = range.end,\n start = range.start;\n return cmp = this.compare(end.row, end.column), 1 == cmp ? (cmp = this.compare(start.row, start.column), 1 == cmp ? 2 : 0 == cmp ? 1 : 0) : -1 == cmp ? -2 : (cmp = this.compare(start.row, start.column), -1 == cmp ? -1 : 1 == cmp ? 42 : 0)\n }, this.comparePoint = function(p) {\n return this.compare(p.row, p.column)\n }, this.containsRange = function(range) {\n return 0 == this.comparePoint(range.start) && 0 == this.comparePoint(range.end)\n }, this.intersects = function(range) {\n var cmp = this.compareRange(range);\n return -1 == cmp || 0 == cmp || 1 == cmp\n }, this.isEnd = function(row, column) {\n return this.end.row == row && this.end.column == column\n }, this.isStart = function(row, column) {\n return this.start.row == row && this.start.column == column\n }, this.setStart = function(row, column) {\n "object" == typeof row ? (this.start.column = row.column, this.start.row = row.row) : (this.start.row = row, this.start.column = column)\n }, this.setEnd = function(row, column) {\n "object" == typeof row ? (this.end.column = row.column, this.end.row = row.row) : (this.end.row = row, this.end.column = column)\n }, this.inside = function(row, column) {\n return 0 == this.compare(row, column) ? this.isEnd(row, column) || this.isStart(row, column) ? !1 : !0 : !1\n }, this.insideStart = function(row, column) {\n return 0 == this.compare(row, column) ? this.isEnd(row, column) ? !1 : !0 : !1\n }, this.insideEnd = function(row, column) {\n return 0 == this.compare(row, column) ? this.isStart(row, column) ? !1 : !0 : !1\n }, this.compare = function(row, column) {\n return this.isMultiLine() || row !== this.start.row ? this.start.row > row ? -1 : row > this.end.row ? 1 : this.start.row === row ? column >= this.start.column ? 0 : -1 : this.end.row === row ? this.end.column >= column ? 0 : 1 : 0 : this.start.column > column ? -1 : column > this.end.column ? 1 : 0\n }, this.compareStart = function(row, column) {\n return this.start.row == row && this.start.column == column ? -1 : this.compare(row, column)\n }, this.compareEnd = function(row, column) {\n return this.end.row == row && this.end.column == column ? 1 : this.compare(row, column)\n }, this.compareInside = function(row, column) {\n return this.end.row == row && this.end.column == column ? 1 : this.start.row == row && this.start.column == column ? -1 : this.compare(row, column)\n }, this.clipRows = function(firstRow, lastRow) {\n if (this.end.row > lastRow) var end = {\n row: lastRow + 1,\n column: 0\n };\n else if (firstRow > this.end.row) var end = {\n row: firstRow,\n column: 0\n };\n if (this.start.row > lastRow) var start = {\n row: lastRow + 1,\n column: 0\n };\n else if (firstRow > this.start.row) var start = {\n row: firstRow,\n column: 0\n };\n return Range.fromPoints(start || this.start, end || this.end)\n }, this.extend = function(row, column) {\n var cmp = this.compare(row, column);\n if (0 == cmp) return this;\n if (-1 == cmp) var start = {\n row: row,\n column: column\n };\n else var end = {\n row: row,\n column: column\n };\n return Range.fromPoints(start || this.start, end || this.end)\n }, this.isEmpty = function() {\n return this.start.row === this.end.row && this.start.column === this.end.column\n }, this.isMultiLine = function() {\n return this.start.row !== this.end.row\n }, this.clone = function() {\n return Range.fromPoints(this.start, this.end)\n }, this.collapseRows = function() {\n return 0 == this.end.column ? new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0) : new Range(this.start.row, 0, this.end.row, 0)\n }, this.toScreenRange = function(session) {\n var screenPosStart = session.documentToScreenPosition(this.start),\n screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column)\n }, this.moveBy = function(row, column) {\n this.start.row += row, this.start.column += column, this.end.row += row, this.end.column += column\n }\n }).call(Range.prototype), Range.fromPoints = function(start, end) {\n return new Range(start.row, start.column, end.row, end.column)\n }, Range.comparePoints = comparePoints, Range.comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column\n }, exports.Range = Range\n}), ace.define("ace/apply_delta", ["require", "exports", "module"], function(acequire, exports) {\n "use strict";\n exports.applyDelta = function(docLines, delta) {\n var row = delta.start.row,\n startColumn = delta.start.column,\n line = docLines[row] || "";\n switch (delta.action) {\n case "insert":\n var lines = delta.lines;\n if (1 === lines.length) docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args), docLines[row] = line.substring(0, startColumn) + docLines[row], docLines[row + delta.lines.length - 1] += line.substring(startColumn)\n }\n break;\n case "remove":\n var endColumn = delta.end.column,\n endRow = delta.end.row;\n row === endRow ? docLines[row] = line.substring(0, startColumn) + line.substring(endColumn) : docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn))\n }\n }\n}), ace.define("ace/lib/event_emitter", ["require", "exports", "module"], function(acequire, exports) {\n "use strict";\n var EventEmitter = {},\n stopPropagation = function() {\n this.propagationStopped = !0\n },\n preventDefault = function() {\n this.defaultPrevented = !0\n };\n EventEmitter._emit = EventEmitter._dispatchEvent = function(eventName, e) {\n this._eventRegistry || (this._eventRegistry = {}), this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [],\n defaultHandler = this._defaultHandlers[eventName];\n if (listeners.length || defaultHandler) {\n "object" == typeof e && e || (e = {}), e.type || (e.type = eventName), e.stopPropagation || (e.stopPropagation = stopPropagation), e.preventDefault || (e.preventDefault = preventDefault), listeners = listeners.slice();\n for (var i = 0; listeners.length > i && (listeners[i](e, this), !e.propagationStopped); i++);\n return defaultHandler && !e.defaultPrevented ? defaultHandler(e, this) : void 0\n }\n }, EventEmitter._signal = function(eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (listeners) {\n listeners = listeners.slice();\n for (var i = 0; listeners.length > i; i++) listeners[i](e, this)\n }\n }, EventEmitter.once = function(eventName, callback) {\n var _self = this;\n callback && this.addEventListener(eventName, function newCallback() {\n _self.removeEventListener(eventName, newCallback), callback.apply(null, arguments)\n })\n }, EventEmitter.setDefaultHandler = function(eventName, callback) {\n var handlers = this._defaultHandlers;\n if (handlers || (handlers = this._defaultHandlers = {\n _disabled_: {}\n }), handlers[eventName]) {\n var old = handlers[eventName],\n disabled = handlers._disabled_[eventName];\n disabled || (handlers._disabled_[eventName] = disabled = []), disabled.push(old);\n var i = disabled.indexOf(callback); - 1 != i && disabled.splice(i, 1)\n }\n handlers[eventName] = callback\n }, EventEmitter.removeDefaultHandler = function(eventName, callback) {\n var handlers = this._defaultHandlers;\n if (handlers) {\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) handlers[eventName], disabled && this.setDefaultHandler(eventName, disabled.pop());\n else if (disabled) {\n var i = disabled.indexOf(callback); - 1 != i && disabled.splice(i, 1)\n }\n }\n }, EventEmitter.on = EventEmitter.addEventListener = function(eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n return listeners || (listeners = this._eventRegistry[eventName] = []), -1 == listeners.indexOf(callback) && listeners[capturing ? "unshift" : "push"](callback), callback\n }, EventEmitter.off = EventEmitter.removeListener = EventEmitter.removeEventListener = function(eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (listeners) {\n var index = listeners.indexOf(callback); - 1 !== index && listeners.splice(index, 1)\n }\n }, EventEmitter.removeAllListeners = function(eventName) {\n this._eventRegistry && (this._eventRegistry[eventName] = [])\n }, exports.EventEmitter = EventEmitter\n}), ace.define("ace/anchor", ["require", "exports", "module", "ace/lib/oop", "ace/lib/event_emitter"], function(acequire, exports) {\n "use strict";\n var oop = acequire("./lib/oop"),\n EventEmitter = acequire("./lib/event_emitter").EventEmitter,\n Anchor = exports.Anchor = function(doc, row, column) {\n this.$onChange = this.onChange.bind(this), this.attach(doc), column === void 0 ? this.setPosition(row.row, row.column) : this.setPosition(row, column)\n };\n (function() {\n function $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return point1.row < point2.row || point1.row == point2.row && bColIsAfter\n }\n\n function $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = "insert" == delta.action,\n deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row),\n deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column),\n deltaStart = delta.start,\n deltaEnd = deltaIsInsert ? deltaStart : delta.end;\n return $pointsInOrder(point, deltaStart, moveIfEqual) ? {\n row: point.row,\n column: point.column\n } : $pointsInOrder(deltaEnd, point, !moveIfEqual) ? {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n } : {\n row: deltaStart.row,\n column: deltaStart.column\n }\n }\n oop.implement(this, EventEmitter), this.getPosition = function() {\n return this.$clipPositionToDocument(this.row, this.column)\n }, this.getDocument = function() {\n return this.document\n }, this.$insertRight = !1, this.onChange = function(delta) {\n if (!(delta.start.row == delta.end.row && delta.start.row != this.row || delta.start.row > this.row)) {\n var point = $getTransformedPoint(delta, {\n row: this.row,\n column: this.column\n }, this.$insertRight);\n this.setPosition(point.row, point.column, !0)\n }\n }, this.setPosition = function(row, column, noClip) {\n var pos;\n if (pos = noClip ? {\n row: row,\n column: column\n } : this.$clipPositionToDocument(row, column), this.row != pos.row || this.column != pos.column) {\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row, this.column = pos.column, this._signal("change", {\n old: old,\n value: pos\n })\n }\n }, this.detach = function() {\n this.document.removeEventListener("change", this.$onChange)\n }, this.attach = function(doc) {\n this.document = doc || this.document, this.document.on("change", this.$onChange)\n }, this.$clipPositionToDocument = function(row, column) {\n var pos = {};\n return row >= this.document.getLength() ? (pos.row = Math.max(0, this.document.getLength() - 1), pos.column = this.document.getLine(pos.row).length) : 0 > row ? (pos.row = 0, pos.column = 0) : (pos.row = row, pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column))), 0 > column && (pos.column = 0), pos\n }\n }).call(Anchor.prototype)\n}), ace.define("ace/document", ["require", "exports", "module", "ace/lib/oop", "ace/apply_delta", "ace/lib/event_emitter", "ace/range", "ace/anchor"], function(acequire, exports) {\n "use strict";\n var oop = acequire("./lib/oop"),\n applyDelta = acequire("./apply_delta").applyDelta,\n EventEmitter = acequire("./lib/event_emitter").EventEmitter,\n Range = acequire("./range").Range,\n Anchor = acequire("./anchor").Anchor,\n Document = function(textOrLines) {\n this.$lines = [""], 0 === textOrLines.length ? this.$lines = [""] : Array.isArray(textOrLines) ? this.insertMergedLines({\n row: 0,\n column: 0\n }, textOrLines) : this.insert({\n row: 0,\n column: 0\n }, textOrLines)\n };\n (function() {\n oop.implement(this, EventEmitter), this.setValue = function(text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length)), this.insert({\n row: 0,\n column: 0\n }, text)\n }, this.getValue = function() {\n return this.getAllLines().join(this.getNewLineCharacter())\n }, this.createAnchor = function(row, column) {\n return new Anchor(this, row, column)\n }, this.$split = 0 === "aaa".split(/a/).length ? function(text) {\n return text.replace(/\\r\\n|\\r/g, "\\n").split("\\n")\n } : function(text) {\n return text.split(/\\r\\n|\\r|\\n/)\n }, this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : "\\n", this._signal("changeNewLineMode")\n }, this.getNewLineCharacter = function() {\n switch (this.$newLineMode) {\n case "windows":\n return "\\r\\n";\n case "unix":\n return "\\n";\n default:\n return this.$autoNewLine || "\\n"\n }\n }, this.$autoNewLine = "", this.$newLineMode = "auto", this.setNewLineMode = function(newLineMode) {\n this.$newLineMode !== newLineMode && (this.$newLineMode = newLineMode, this._signal("changeNewLineMode"))\n }, this.getNewLineMode = function() {\n return this.$newLineMode\n }, this.isNewLine = function(text) {\n return "\\r\\n" == text || "\\r" == text || "\\n" == text\n }, this.getLine = function(row) {\n return this.$lines[row] || ""\n }, this.getLines = function(firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1)\n }, this.getAllLines = function() {\n return this.getLines(0, this.getLength())\n }, this.getLength = function() {\n return this.$lines.length\n }, this.getTextRange = function(range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter())\n }, this.getLinesForRange = function(range) {\n var lines;\n if (range.start.row === range.end.row) lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n else {\n lines = this.getLines(range.start.row, range.end.row), lines[0] = (lines[0] || "").substring(range.start.column);\n var l = lines.length - 1;\n range.end.row - range.start.row == l && (lines[l] = lines[l].substring(0, range.end.column))\n }\n return lines\n }, this.insertLines = function(row, lines) {\n return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."), this.insertFullLines(row, lines)\n }, this.removeLines = function(firstRow, lastRow) {\n return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."), this.removeFullLines(firstRow, lastRow)\n }, this.insertNewLine = function(position) {\n return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."), this.insertMergedLines(position, ["", ""])\n }, this.insert = function(position, text) {\n return 1 >= this.getLength() && this.$detectNewLine(text), this.insertMergedLines(position, this.$split(text))\n }, this.insertInLine = function(position, text) {\n var start = this.clippedPos(position.row, position.column),\n end = this.pos(position.row, position.column + text.length);\n return this.applyDelta({\n start: start,\n end: end,\n action: "insert",\n lines: [text]\n }, !0), this.clonePos(end)\n }, this.clippedPos = function(row, column) {\n var length = this.getLength();\n void 0 === row ? row = length : 0 > row ? row = 0 : row >= length && (row = length - 1, column = void 0);\n var line = this.getLine(row);\n return void 0 == column && (column = line.length), column = Math.min(Math.max(column, 0), line.length), {\n row: row,\n column: column\n }\n }, this.clonePos = function(pos) {\n return {\n row: pos.row,\n column: pos.column\n }\n }, this.pos = function(row, column) {\n return {\n row: row,\n column: column\n }\n }, this.$clipPosition = function(position) {\n var length = this.getLength();\n return position.row >= length ? (position.row = Math.max(0, length - 1), position.column = this.getLine(length - 1).length) : (position.row = Math.max(0, position.row), position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length)), position\n }, this.insertFullLines = function(row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n this.getLength() > row ? (lines = lines.concat([""]), column = 0) : (lines = [""].concat(lines), row--, column = this.$lines[row].length), this.insertMergedLines({\n row: row,\n column: column\n }, lines)\n }, this.insertMergedLines = function(position, lines) {\n var start = this.clippedPos(position.row, position.column),\n end = {\n row: start.row + lines.length - 1,\n column: (1 == lines.length ? start.column : 0) + lines[lines.length - 1].length\n };\n return this.applyDelta({\n start: start,\n end: end,\n action: "insert",\n lines: lines\n }), this.clonePos(end)\n }, this.remove = function(range) {\n var start = this.clippedPos(range.start.row, range.start.column),\n end = this.clippedPos(range.end.row, range.end.column);\n return this.applyDelta({\n start: start,\n end: end,\n action: "remove",\n lines: this.getLinesForRange({\n start: start,\n end: end\n })\n }), this.clonePos(start)\n }, this.removeInLine = function(row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn),\n end = this.clippedPos(row, endColumn);\n return this.applyDelta({\n start: start,\n end: end,\n action: "remove",\n lines: this.getLinesForRange({\n start: start,\n end: end\n })\n }, !0), this.clonePos(start)\n }, this.removeFullLines = function(firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1), lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0,\n deleteLastNewLine = this.getLength() - 1 > lastRow,\n startRow = deleteFirstNewLine ? firstRow - 1 : firstRow,\n startCol = deleteFirstNewLine ? this.getLine(startRow).length : 0,\n endRow = deleteLastNewLine ? lastRow + 1 : lastRow,\n endCol = deleteLastNewLine ? 0 : this.getLine(endRow).length,\n range = new Range(startRow, startCol, endRow, endCol),\n deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n return this.applyDelta({\n start: range.start,\n end: range.end,\n action: "remove",\n lines: this.getLinesForRange(range)\n }), deletedLines\n }, this.removeNewLine = function(row) {\n this.getLength() - 1 > row && row >= 0 && this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: "remove",\n lines: ["", ""]\n })\n }, this.replace = function(range, text) {\n if (range instanceof Range || (range = Range.fromPoints(range.start, range.end)), 0 === text.length && range.isEmpty()) return range.start;\n if (text == this.getTextRange(range)) return range.end;\n this.remove(range);\n var end;\n return end = text ? this.insert(range.start, text) : range.start\n }, this.applyDeltas = function(deltas) {\n for (var i = 0; deltas.length > i; i++) this.applyDelta(deltas[i])\n }, this.revertDeltas = function(deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) this.revertDelta(deltas[i])\n }, this.applyDelta = function(delta, doNotValidate) {\n var isInsert = "insert" == delta.action;\n (isInsert ? 1 >= delta.lines.length && !delta.lines[0] : !Range.comparePoints(delta.start, delta.end)) || (isInsert && delta.lines.length > 2e4 && this.$splitAndapplyLargeDelta(delta, 2e4), applyDelta(this.$lines, delta, doNotValidate), this._signal("change", delta))\n }, this.$splitAndapplyLargeDelta = function(delta, MAX) {\n for (var lines = delta.lines, l = lines.length, row = delta.start.row, column = delta.start.column, from = 0, to = 0;;) {\n from = to, to += MAX - 1;\n var chunk = lines.slice(from, to);\n if (to > l) {\n delta.lines = chunk, delta.start.row = row + from, delta.start.column = column;\n break\n }\n chunk.push(""), this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, !0)\n }\n }, this.revertDelta = function(delta) {\n this.applyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: "insert" == delta.action ? "remove" : "insert",\n lines: delta.lines.slice()\n })\n }, this.indexToPosition = function(index, startRow) {\n for (var lines = this.$lines || this.getAllLines(), newlineLength = this.getNewLineCharacter().length, i = startRow || 0, l = lines.length; l > i; i++)\n if (index -= lines[i].length + newlineLength, 0 > index) return {\n row: i,\n column: index + lines[i].length + newlineLength\n };\n return {\n row: l - 1,\n column: lines[l - 1].length\n }\n }, this.positionToIndex = function(pos, startRow) {\n for (var lines = this.$lines || this.getAllLines(), newlineLength = this.getNewLineCharacter().length, index = 0, row = Math.min(pos.row, lines.length), i = startRow || 0; row > i; ++i) index += lines[i].length + newlineLength;\n return index + pos.column\n }\n }).call(Document.prototype), exports.Document = Document\n}), ace.define("ace/lib/lang", ["require", "exports", "module"], function(acequire, exports) {\n "use strict";\n exports.last = function(a) {\n return a[a.length - 1]\n }, exports.stringReverse = function(string) {\n return string.split("").reverse().join("")\n }, exports.stringRepeat = function(string, count) {\n for (var result = ""; count > 0;) 1 & count && (result += string), (count >>= 1) && (string += string);\n return result\n };\n var trimBeginRegexp = /^\\s\\s*/,\n trimEndRegexp = /\\s\\s*$/;\n exports.stringTrimLeft = function(string) {\n return string.replace(trimBeginRegexp, "")\n }, exports.stringTrimRight = function(string) {\n return string.replace(trimEndRegexp, "")\n }, exports.copyObject = function(obj) {\n var copy = {};\n for (var key in obj) copy[key] = obj[key];\n return copy\n }, exports.copyArray = function(array) {\n for (var copy = [], i = 0, l = array.length; l > i; i++) copy[i] = array[i] && "object" == typeof array[i] ? this.copyObject(array[i]) : array[i];\n return copy\n }, exports.deepCopy = function deepCopy(obj) {\n if ("object" != typeof obj || !obj) return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; obj.length > key; key++) copy[key] = deepCopy(obj[key]);\n return copy\n }\n if ("[object Object]" !== Object.prototype.toString.call(obj)) return obj;\n copy = {};\n for (var key in obj) copy[key] = deepCopy(obj[key]);\n return copy\n }, exports.arrayToMap = function(arr) {\n for (var map = {}, i = 0; arr.length > i; i++) map[arr[i]] = 1;\n return map\n }, exports.createMap = function(props) {\n var map = Object.create(null);\n for (var i in props) map[i] = props[i];\n return map\n }, exports.arrayRemove = function(array, value) {\n for (var i = 0; array.length >= i; i++) value === array[i] && array.splice(i, 1)\n }, exports.escapeRegExp = function(str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, "\\\\$1")\n }, exports.escapeHTML = function(str) {\n return str.replace(/&/g, "&").replace(/"/g, """).replace(/\'/g, "'").replace(/ i; i += 2) {\n if (Array.isArray(data[i + 1])) var d = {\n action: "insert",\n start: data[i],\n lines: data[i + 1]\n };\n else var d = {\n action: "remove",\n start: data[i],\n end: data[i + 1]\n };\n doc.applyDelta(d, !0)\n }\n return _self.$timeout ? deferredUpdate.schedule(_self.$timeout) : (_self.onUpdate(), void 0)\n })\n };\n (function() {\n this.$timeout = 500, this.setTimeout = function(timeout) {\n this.$timeout = timeout\n }, this.setValue = function(value) {\n this.doc.setValue(value), this.deferredUpdate.schedule(this.$timeout)\n }, this.getValue = function(callbackId) {\n this.sender.callback(this.doc.getValue(), callbackId)\n }, this.onUpdate = function() {}, this.isPending = function() {\n return this.deferredUpdate.isPending()\n }\n }).call(Mirror.prototype)\n}), ace.define("ace/mode/json/json_parse", ["require", "exports", "module"], function() {\n "use strict";\n var at, ch, text, value, escapee = {\n \'"\': \'"\',\n "\\\\": "\\\\",\n "/": "/",\n b: "\\b",\n f: "\\f",\n n: "\\n",\n r: "\\r",\n t: "\t"\n },\n error = function(m) {\n throw {\n name: "SyntaxError",\n message: m,\n at: at,\n text: text\n }\n },\n reset = function (newAt) {\n ch = text.charAt(newAt);\n at = newAt + 1;\n },\n next = function(c) {\n return c && c !== ch && error("Expected \'" + c + "\' instead of \'" + ch + "\'"), ch = text.charAt(at), at += 1, ch\n },\n nextUpTo = function (upTo, errorMessage) {\n let currentAt = at,\n i = text.indexOf(upTo, currentAt);\n if (i < 0) {\n error(errorMessage || \'Expected \\\'\' + upTo + \'\\\'\');\n }\n reset(i + upTo.length);\n return text.substring(currentAt, i);\n },\n peek = function (c) {\n return text.substr(at, c.length) === c; // nocommit - double check\n },\n number = function() {\n var number, string = "";\n for ("-" === ch && (string = "-", next("-")); ch >= "0" && "9" >= ch;) string += ch, next();\n if ("." === ch)\n for (string += "."; next() && ch >= "0" && "9" >= ch;) string += ch;\n if ("e" === ch || "E" === ch)\n for (string += ch, next(), ("-" === ch || "+" === ch) && (string += ch, next()); ch >= "0" && "9" >= ch;) string += ch, next();\n return number = +string, isNaN(number) ? (error("Bad number"), void 0) : number\n },\n string = function() {\n var hex, i, uffff, string = "";\n if (\'"\' === ch) {\n if (peek(\'""\')) {\n // literal\n next(\'"\');\n next(\'"\');\n return nextUpTo(\'"""\', \'failed to find closing \\\'"""\\\'\');\n } else {\n for (; next();) {\n if (\'"\' === ch) return next(), string;\n if ("\\\\" === ch)\n if (next(), "u" === ch) {\n for (uffff = 0, i = 0; 4 > i && (hex = parseInt(next(), 16), isFinite(hex)); i += 1) uffff = 16 * uffff + hex;\n string += String.fromCharCode(uffff)\n } else {\n if ("string" != typeof escapee[ch]) break;\n string += escapee[ch]\n }\n else string += ch\n }\n }\n }\n error("Bad string")\n },\n white = function() {\n for (; ch && " " >= ch;) next()\n },\n word = function() {\n switch (ch) {\n case "t":\n return next("t"), next("r"), next("u"), next("e"), !0;\n case "f":\n return next("f"), next("a"), next("l"), next("s"), next("e"), !1;\n case "n":\n return next("n"), next("u"), next("l"), next("l"), null\n }\n error("Unexpected \'" + ch + "\'")\n },\n array = function() {\n var array = [];\n if ("[" === ch) {\n if (next("["), white(), "]" === ch) return next("]"), array;\n for (; ch;) {\n if (array.push(value()), white(), "]" === ch) return next("]"), array;\n next(","), white()\n }\n }\n error("Bad array")\n },\n object = function() {\n var key, object = {};\n if ("{" === ch) {\n if (next("{"), white(), "}" === ch) return next("}"), object;\n for (; ch;) {\n if (key = string(), white(), next(":"), Object.hasOwnProperty.call(object, key) && error(\'Duplicate key "\' + key + \'"\'), object[key] = value(), white(), "}" === ch) return next("}"), object;\n next(","), white()\n }\n }\n error("Bad object")\n };\n return value = function() {\n switch (white(), ch) {\n case "{":\n return object();\n case "[":\n return array();\n case \'"\':\n return string();\n case "-":\n return number();\n default:\n return ch >= "0" && "9" >= ch ? number() : word()\n }\n },\n function(source, reviver) {\n var result;\n return text = source, at = 0, ch = " ", result = value(), white(), ch && error("Syntax error"), "function" == typeof reviver ? function walk(holder, key) {\n var k, v, value = holder[key];\n if (value && "object" == typeof value)\n for (k in value) Object.hasOwnProperty.call(value, k) && (v = walk(value, k), void 0 !== v ? value[k] = v : delete value[k]);\n return reviver.call(holder, key, value)\n }({\n "": result\n }, "") : result\n }\n}), ace.define("ace/mode/json_worker", ["require", "exports", "module", "ace/lib/oop", "ace/worker/mirror", "ace/mode/json/json_parse"], function(acequire, exports) {\n "use strict";\n var oop = acequire("../lib/oop"),\n Mirror = acequire("../worker/mirror").Mirror,\n parse = acequire("./json/json_parse"),\n JsonWorker = exports.JsonWorker = function(sender) {\n Mirror.call(this, sender), this.setTimeout(200)\n };\n oop.inherits(JsonWorker, Mirror),\n function() {\n this.onUpdate = function() {\n var value = this.doc.getValue(),\n errors = [];\n try {\n value && parse(value)\n } catch (e) {\n var pos = this.doc.indexToPosition(e.at - 1);\n errors.push({\n row: pos.row,\n column: pos.column,\n text: e.message,\n type: "error"\n })\n }\n this.sender.emit("annotate", errors)\n }\n }.call(JsonWorker.prototype)\n}), ace.define("ace/lib/es5-shim", ["require", "exports", "module"], function() {\n function Empty() {}\n\n function doesDefinePropertyWork(object) {\n try {\n return Object.defineProperty(object, "sentinel", {}), "sentinel" in object\n } catch (exception) {}\n }\n\n function toInteger(n) {\n return n = +n, n !== n ? n = 0 : 0 !== n && n !== 1 / 0 && n !== -(1 / 0) && (n = (n > 0 || -1) * Math.floor(Math.abs(n))), n\n }\n Function.prototype.bind || (Function.prototype.bind = function(that) {\n var target = this;\n if ("function" != typeof target) throw new TypeError("Function.prototype.bind called on incompatible " + target);\n var args = slice.call(arguments, 1),\n bound = function() {\n if (this instanceof bound) {\n var result = target.apply(this, args.concat(slice.call(arguments)));\n return Object(result) === result ? result : this\n }\n return target.apply(that, args.concat(slice.call(arguments)))\n };\n return target.prototype && (Empty.prototype = target.prototype, bound.prototype = new Empty, Empty.prototype = null), bound\n });\n var defineGetter, defineSetter, lookupGetter, lookupSetter, supportsAccessors, call = Function.prototype.call,\n prototypeOfArray = Array.prototype,\n prototypeOfObject = Object.prototype,\n slice = prototypeOfArray.slice,\n _toString = call.bind(prototypeOfObject.toString),\n owns = call.bind(prototypeOfObject.hasOwnProperty);\n if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__")) && (defineGetter = call.bind(prototypeOfObject.__defineGetter__), defineSetter = call.bind(prototypeOfObject.__defineSetter__), lookupGetter = call.bind(prototypeOfObject.__lookupGetter__), lookupSetter = call.bind(prototypeOfObject.__lookupSetter__)), 2 != [1, 2].splice(0).length)\n if (function() {\n function makeArray(l) {\n var a = Array(l + 2);\n return a[0] = a[1] = 0, a\n }\n var lengthBefore, array = [];\n return array.splice.apply(array, makeArray(20)), array.splice.apply(array, makeArray(26)), lengthBefore = array.length, array.splice(5, 0, "XXX"), lengthBefore + 1 == array.length, lengthBefore + 1 == array.length ? !0 : void 0\n }()) {\n var array_splice = Array.prototype.splice;\n Array.prototype.splice = function(start, deleteCount) {\n return arguments.length ? array_splice.apply(this, [void 0 === start ? 0 : start, void 0 === deleteCount ? this.length - start : deleteCount].concat(slice.call(arguments, 2))) : []\n }\n } else Array.prototype.splice = function(pos, removeCount) {\n var length = this.length;\n pos > 0 ? pos > length && (pos = length) : void 0 == pos ? pos = 0 : 0 > pos && (pos = Math.max(length + pos, 0)), length > pos + removeCount || (removeCount = length - pos);\n var removed = this.slice(pos, pos + removeCount),\n insert = slice.call(arguments, 2),\n add = insert.length;\n if (pos === length) add && this.push.apply(this, insert);\n else {\n var remove = Math.min(removeCount, length - pos),\n tailOldPos = pos + remove,\n tailNewPos = tailOldPos + add - remove,\n tailCount = length - tailOldPos,\n lengthAfterRemove = length - remove;\n if (tailOldPos > tailNewPos)\n for (var i = 0; tailCount > i; ++i) this[tailNewPos + i] = this[tailOldPos + i];\n else if (tailNewPos > tailOldPos)\n for (i = tailCount; i--;) this[tailNewPos + i] = this[tailOldPos + i];\n if (add && pos === lengthAfterRemove) this.length = lengthAfterRemove, this.push.apply(this, insert);\n else\n for (this.length = lengthAfterRemove + add, i = 0; add > i; ++i) this[pos + i] = insert[i]\n }\n return removed\n };\n Array.isArray || (Array.isArray = function(obj) {\n return "[object Array]" == _toString(obj)\n });\n var boxedString = Object("a"),\n splitString = "a" != boxedString[0] || !(0 in boxedString);\n if (Array.prototype.forEach || (Array.prototype.forEach = function(fun) {\n var object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n if ("[object Function]" != _toString(fun)) throw new TypeError;\n for (; length > ++i;) i in self && fun.call(thisp, self[i], i, object)\n }), Array.prototype.map || (Array.prototype.map = function(fun) {\n var object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n length = self.length >>> 0,\n result = Array(length),\n thisp = arguments[1];\n if ("[object Function]" != _toString(fun)) throw new TypeError(fun + " is not a function");\n for (var i = 0; length > i; i++) i in self && (result[i] = fun.call(thisp, self[i], i, object));\n return result\n }), Array.prototype.filter || (Array.prototype.filter = function(fun) {\n var value, object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n length = self.length >>> 0,\n result = [],\n thisp = arguments[1];\n if ("[object Function]" != _toString(fun)) throw new TypeError(fun + " is not a function");\n for (var i = 0; length > i; i++) i in self && (value = self[i], fun.call(thisp, value, i, object) && result.push(value));\n return result\n }), Array.prototype.every || (Array.prototype.every = function(fun) {\n var object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if ("[object Function]" != _toString(fun)) throw new TypeError(fun + " is not a function");\n for (var i = 0; length > i; i++)\n if (i in self && !fun.call(thisp, self[i], i, object)) return !1;\n return !0\n }), Array.prototype.some || (Array.prototype.some = function(fun) {\n var object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if ("[object Function]" != _toString(fun)) throw new TypeError(fun + " is not a function");\n for (var i = 0; length > i; i++)\n if (i in self && fun.call(thisp, self[i], i, object)) return !0;\n return !1\n }), Array.prototype.reduce || (Array.prototype.reduce = function(fun) {\n var object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n length = self.length >>> 0;\n if ("[object Function]" != _toString(fun)) throw new TypeError(fun + " is not a function");\n if (!length && 1 == arguments.length) throw new TypeError("reduce of empty array with no initial value");\n var result, i = 0;\n if (arguments.length >= 2) result = arguments[1];\n else\n for (;;) {\n if (i in self) {\n result = self[i++];\n break\n }\n if (++i >= length) throw new TypeError("reduce of empty array with no initial value")\n }\n for (; length > i; i++) i in self && (result = fun.call(void 0, result, self[i], i, object));\n return result\n }), Array.prototype.reduceRight || (Array.prototype.reduceRight = function(fun) {\n var object = toObject(this),\n self = splitString && "[object String]" == _toString(this) ? this.split("") : object,\n length = self.length >>> 0;\n if ("[object Function]" != _toString(fun)) throw new TypeError(fun + " is not a function");\n if (!length && 1 == arguments.length) throw new TypeError("reduceRight of empty array with no initial value");\n var result, i = length - 1;\n if (arguments.length >= 2) result = arguments[1];\n else\n for (;;) {\n if (i in self) {\n result = self[i--];\n break\n }\n if (0 > --i) throw new TypeError("reduceRight of empty array with no initial value")\n }\n do i in this && (result = fun.call(void 0, result, self[i], i, object)); while (i--);\n return result\n }), Array.prototype.indexOf && -1 == [0, 1].indexOf(1, 2) || (Array.prototype.indexOf = function(sought) {\n var self = splitString && "[object String]" == _toString(this) ? this.split("") : toObject(this),\n length = self.length >>> 0;\n if (!length) return -1;\n var i = 0;\n for (arguments.length > 1 && (i = toInteger(arguments[1])), i = i >= 0 ? i : Math.max(0, length + i); length > i; i++)\n if (i in self && self[i] === sought) return i;\n return -1\n }), Array.prototype.lastIndexOf && -1 == [0, 1].lastIndexOf(0, -3) || (Array.prototype.lastIndexOf = function(sought) {\n var self = splitString && "[object String]" == _toString(this) ? this.split("") : toObject(this),\n length = self.length >>> 0;\n if (!length) return -1;\n var i = length - 1;\n for (arguments.length > 1 && (i = Math.min(i, toInteger(arguments[1]))), i = i >= 0 ? i : length - Math.abs(i); i >= 0; i--)\n if (i in self && sought === self[i]) return i;\n return -1\n }), Object.getPrototypeOf || (Object.getPrototypeOf = function(object) {\n return object.__proto__ || (object.constructor ? object.constructor.prototype : prototypeOfObject)\n }), !Object.getOwnPropertyDescriptor) {\n var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a non-object: ";\n Object.getOwnPropertyDescriptor = function(object, property) {\n if ("object" != typeof object && "function" != typeof object || null === object) throw new TypeError(ERR_NON_OBJECT + object);\n if (owns(object, property)) {\n var descriptor, getter, setter;\n if (descriptor = {\n enumerable: !0,\n configurable: !0\n }, supportsAccessors) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n var getter = lookupGetter(object, property),\n setter = lookupSetter(object, property);\n if (object.__proto__ = prototype, getter || setter) return getter && (descriptor.get = getter), setter && (descriptor.set = setter), descriptor\n }\n return descriptor.value = object[property], descriptor\n }\n }\n }\n if (Object.getOwnPropertyNames || (Object.getOwnPropertyNames = function(object) {\n return Object.keys(object)\n }), !Object.create) {\n var createEmpty;\n createEmpty = null === Object.prototype.__proto__ ? function() {\n return {\n __proto__: null\n }\n } : function() {\n var empty = {};\n for (var i in empty) empty[i] = null;\n return empty.constructor = empty.hasOwnProperty = empty.propertyIsEnumerable = empty.isPrototypeOf = empty.toLocaleString = empty.toString = empty.valueOf = empty.__proto__ = null, empty\n }, Object.create = function(prototype, properties) {\n var object;\n if (null === prototype) object = createEmpty();\n else {\n if ("object" != typeof prototype) throw new TypeError("typeof prototype[" + typeof prototype + "] != \'object\'");\n var Type = function() {};\n Type.prototype = prototype, object = new Type, object.__proto__ = prototype\n }\n return void 0 !== properties && Object.defineProperties(object, properties), object\n }\n }\n if (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({}),\n definePropertyWorksOnDom = "undefined" == typeof document || doesDefinePropertyWork(document.createElement("div"));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) var definePropertyFallback = Object.defineProperty\n }\n if (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: ",\n ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: ",\n ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined on this javascript engine";\n Object.defineProperty = function(object, property, descriptor) {\n if ("object" != typeof object && "function" != typeof object || null === object) throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n if ("object" != typeof descriptor && "function" != typeof descriptor || null === descriptor) throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n if (definePropertyFallback) try {\n return definePropertyFallback.call(Object, object, property, descriptor)\n } catch (exception) {}\n if (owns(descriptor, "value"))\n if (supportsAccessors && (lookupGetter(object, property) || lookupSetter(object, property))) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject, delete object[property], object[property] = descriptor.value, object.__proto__ = prototype\n } else object[property] = descriptor.value;\n else {\n if (!supportsAccessors) throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n owns(descriptor, "get") && defineGetter(object, property, descriptor.get), owns(descriptor, "set") && defineSetter(object, property, descriptor.set)\n }\n return object\n }\n }\n Object.defineProperties || (Object.defineProperties = function(object, properties) {\n for (var property in properties) owns(properties, property) && Object.defineProperty(object, property, properties[property]);\n return object\n }), Object.seal || (Object.seal = function(object) {\n return object\n }), Object.freeze || (Object.freeze = function(object) {\n return object\n });\n try {\n Object.freeze(function() {})\n } catch (exception) {\n Object.freeze = function(freezeObject) {\n return function(object) {\n return "function" == typeof object ? object : freezeObject(object)\n }\n }(Object.freeze)\n }\n if (Object.preventExtensions || (Object.preventExtensions = function(object) {\n return object\n }), Object.isSealed || (Object.isSealed = function() {\n return !1\n }), Object.isFrozen || (Object.isFrozen = function() {\n return !1\n }), Object.isExtensible || (Object.isExtensible = function(object) {\n if (Object(object) === object) throw new TypeError;\n for (var name = ""; owns(object, name);) name += "?";\n object[name] = !0;\n var returnValue = owns(object, name);\n return delete object[name], returnValue\n }), !Object.keys) {\n var hasDontEnumBug = !0,\n dontEnums = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"],\n dontEnumsLength = dontEnums.length;\n for (var key in {\n toString: null\n }) hasDontEnumBug = !1;\n Object.keys = function(object) {\n if ("object" != typeof object && "function" != typeof object || null === object) throw new TypeError("Object.keys called on a non-object");\n var keys = [];\n for (var name in object) owns(object, name) && keys.push(name);\n if (hasDontEnumBug)\n for (var i = 0, ii = dontEnumsLength; ii > i; i++) {\n var dontEnum = dontEnums[i];\n owns(object, dontEnum) && keys.push(dontEnum)\n }\n return keys\n }\n }\n Date.now || (Date.now = function() {\n return (new Date).getTime()\n });\n var ws = "\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";\n if (!String.prototype.trim || ws.trim()) {\n ws = "[" + ws + "]";\n var trimBeginRegexp = RegExp("^" + ws + ws + "*"),\n trimEndRegexp = RegExp(ws + ws + "*$");\n String.prototype.trim = function() {\n return (this + "").replace(trimBeginRegexp, "").replace(trimEndRegexp, "")\n }\n }\n var toObject = function(o) {\n if (null == o) throw new TypeError("can\'t convert " + o + " to object");\n return Object(o)\n }\n});\n'},{WorkerClient:Zb}=Bb.a.acequire("ace/worker/worker_client"),ef=Bb.a.acequire("ace/lib/oop"),{Mode:tf}=Bb.a.acequire("ace/mode/json"),{Tokenizer:af}=Bb.a.acequire("ace/tokenizer"),{MatchingBraceOutdent:nf}=Bb.a.acequire("ace/mode/matching_brace_outdent"),{CstyleBehaviour:sf}=Bb.a.acequire("ace/mode/behaviour/cstyle"),{FoldMode:of}=Bb.a.acequire("ace/mode/folding/cstyle"),rf=function(){const e=new Qb;e.normalizeRules(),this.$tokenizer=new af(e.getRules()),this.$outdent=new nf,this.$behaviour=new sf,this.foldingRules=new of};ef.inherits(rf,tf),rf.prototype.createWorker=function(e){const t=new Zb(["ace"],Kb,"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t};const lf=Object(n.memo)((({convertToJson:e,xJsonMode:t,setAdvancedRuntimeMappingsConfig:a,setIsRuntimeMappingsEditorApplyButtonEnabled:i,advancedEditorRuntimeMappingsLastApplied:n,advancedRuntimeMappingsConfig:s})=>Object(h.jsx)("div",{"data-test-subj":"mlDataFrameAnalyticsAdvancedRuntimeMappingsEditor"},Object(h.jsx)(sa.CodeEditor,{height:250,languageId:"json",onChange:t=>{if(a(t),n!==t)if(""!==t)try{const a=JSON.parse(e(t));i(Object(hp.c)(a))}catch(e){i(!1)}else i(!0);else i(!1)},options:{ariaLabel:u.i18n.translate("xpack.ml.dataframe.analytics.createWizard.runtimeMappings.advancedEditorAriaLabel",{defaultMessage:"Advanced runtime editor"}),automaticLayout:!0,fontSize:12,scrollBeyondLastLine:!1,quickSuggestions:!0,minimap:{enabled:!1},wordWrap:"on",wrappingIndent:"indent"},value:s}))),((e,t)=>Object(Ue.isEqual)(cf(e),cf(t))));function cf(e){return[e.advancedEditorRuntimeMappingsLastApplied,e.advancedRuntimeMappingsConfig]}const df=u.i18n.translate("xpack.ml.dataframe.analytics.createWizard.runtimeEditorSwitchModalTitle",{defaultMessage:"Edits will be lost"}),uf=u.i18n.translate("xpack.ml.dataframe.analytics.createWizard.runtimeEditorSwitchModalCancelButtonText",{defaultMessage:"Cancel"}),pf=u.i18n.translate("xpack.ml.dataframe.analytics.createWizard.runtimeEditorSwitchModalConfirmButtonText",{defaultMessage:"Close editor"}),mf=u.i18n.translate("xpack.ml.dataframe.analytics.createWizard.runtimeEditorSwitchModalBodyText",{defaultMessage:"The changes in the editor haven't been applied yet. By closing the editor you will lose your edits."}),bf=({onCancel:e,onConfirm:t})=>Object(h.jsx)(d.EuiConfirmModal,{title:df,onCancel:e,onConfirm:t,cancelButtonText:uf,confirmButtonText:pf,buttonColor:"danger",defaultFocusedButton:"confirm"},Object(h.jsx)("p",null,mf)),ff="220px",gf=u.i18n.translate("xpack.ml.dataframe.analytics.createWizard.indexPreview.copyRuntimeMappingsClipboardTooltip",{defaultMessage:"Copy Dev Console statement of the runtime fields to the clipboard."}),hf=u.i18n.translate("xpack.ml.dataframe.analytics.createWizard.advancedSourceEditorApplyButtonText",{defaultMessage:"Apply changes"}),jf=u.i18n.translate("xpack.ml.dataframe.analytics.createWizard.advancedRuntimeFieldsEditorHelpText",{defaultMessage:"The advanced editor allows you to edit the runtime fields of the source."}),xf=u.i18n.translate("xpack.ml.dataframe.analytics.createWizard.advancedEditorRuntimeFieldsSwitchLabel",{defaultMessage:"Edit runtime fields"}),vf=u.i18n.translate("xpack.ml.dataframe.analytics.createWizard.runtimeFieldsLabel",{defaultMessage:"Runtime fields"}),{useXJsonMode:yf}=qi.XJson,Of=new rf,Ef=({actions:e,state:t})=>{const[a,i]=Object(n.useState)(!1),[o,r]=Object(n.useState)(!1),[l,c]=Object(n.useState)(!1),[u,p]=Object(n.useState)(),{setFormState:m}=e,{jobType:b,previousRuntimeMapping:f,runtimeMappings:j}=t.form,{convertToJson:x,setXJson:v,xJson:y}=yf(j||""),{selectedDataView:O}=Yn(),E=(e=!1)=>{!0===e&&(m({runtimeMappingsUpdated:!1}),v(null!=u?u:"")),i(!a),c(Object(hp.c)(j))};return Object(n.useEffect)((function(){const e=Object(hp.a)(O,j),t=JSON.stringify(e,null,2);e&&(v(t),p(t),m({runtimeMappings:e}))}),[]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,label:vf},Object(h.jsx)(d.EuiFlexGroup,{alignItems:"baseline",justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!0},Object(et.a)(j)?Object(h.jsx)(d.EuiText,{size:"s",grow:!1},Object.keys(j).join(",")):Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.createWizard.noRuntimeFieldLabel",defaultMessage:"No runtime field"}),a&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(lf,{advancedEditorRuntimeMappingsLastApplied:u,advancedRuntimeMappingsConfig:y,setIsRuntimeMappingsEditorApplyButtonEnabled:c,setAdvancedRuntimeMappingsConfig:v,convertToJson:x,xJsonMode:Of}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{width:ff}},Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs",direction:"column",justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiSwitch,{disabled:void 0===b,label:xf,checked:a,onChange:()=>{a&&y!==u?r(!0):E()},"data-test-subj":"mlDataFrameAnalyticsRuntimeMappingsEditorSwitch"}),o&&Object(h.jsx)(bf,{onCancel:()=>r(!1),onConfirm:()=>{r(!1),E(!0)}})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiCopy,{beforeMessage:gf,textToCopy:null!=y?y:""},(e=>Object(h.jsx)(d.EuiButtonIcon,{onClick:e,iconType:"copyClipboard","aria-label":gf})))))),a&&Object(h.jsx)(d.EuiFlexItem,{style:{width:ff}},Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiText,{size:"xs"},jf),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiButton,{style:{width:"fit-content"},size:"s",fill:!0,onClick:()=>{const e=""===y,t=e?void 0:JSON.parse(y),a=e?"":JSON.stringify(t,null,2);m({runtimeMappings:t,runtimeMappingsUpdated:!0,previousRuntimeMapping:void 0===f&&void 0===j?t:j}),v(a),p(a),c(!1)},disabled:!l,"data-test-subj":"mlDataFrameAnalyticsRuntimeMappingsApplyButton"},hf)))))),Object(h.jsx)(d.EuiSpacer,{size:"s"}))},wf="runtime_mapping",Mf=u.i18n.translate("xpack.ml.dataframe.analytics.createWizard.requiredFieldsErrorMessage",{defaultMessage:"At least one field must be included in the analysis in addition to the dependent variable."});function Sf(e,t){const a=[];return Object.keys(t).forEach((i=>{const n=t[i];Object(hp.b)(n)&&wb(i,n.type,e)&&a.push({label:i,field:{id:i,type:n.type}})})),a}const _f=({actions:e,isClone:t,state:a,setCurrentStep:i})=>{const{selectedDataView:o,selectedSavedSearch:r}=Yn(),{savedSearchQuery:l,savedSearchQueryStr:c}=function(){const[e,t]=Object(n.useState)(void 0),[a,i]=Object(n.useState)(void 0),{services:{uiSettings:s}}=Object(Te.d)(),{selectedDataView:o,selectedSavedSearch:r}=Yn();return Object(n.useEffect)((()=>{(()=>{let e,a={};if(r){var n;const l=r.searchSource.getField("query"),c=null!==(n=r.searchSource.getField("filter"))&&void 0!==n?n:[],d=l.language;if(e=l.query,d===ba.b.KUERY){const t=Object($p.fromKueryExpression)(e);a=Object($p.toElasticsearchQuery)(t,o);const i=Object($p.buildQueryFromFilters)(c,o);void 0===a.bool&&(a.bool={},void 0!==a.match_all&&(a.bool.should={match_all:a.match_all},delete a.match_all)),!1===Array.isArray(a.bool.filter)&&(a.bool.filter=void 0===a.bool.filter?[]:[a.bool.filter]),!1===Array.isArray(a.bool.must_not)&&(a.bool.must_not=void 0===a.bool.must_not?[]:[a.bool.must_not]),a.bool.filter=[...a.bool.filter,...i.filter],a.bool.must_not=[...a.bool.must_not,...i.must_not]}else a=Object($p.buildEsQuery)(o,[l],c),Object($p.decorateQuery)(a,s.get("query:queryString:options"));t(a),i(e)}else t(null),i(null)})()}),[]),{savedSearchQuery:e,savedSearchQueryStr:a}}(),[p,m]=Object(n.useState)(!1),[b,f]=Object(n.useState)(!1),[g,j]=Object(n.useState)(!1),[x,v]=Object(n.useState)([]),[y,O]=Object(n.useState)([]),[E,w]=Object(n.useState)(!1),[M,S]=Object(n.useState)(),[_,T]=Object(n.useState)(),[C,k]=Object(n.useState)(!1),[F,I]=Object(n.useState)(),{setEstimatedModelMemoryLimit:D,setFormState:A}=e,{cloneJob:L,estimatedModelMemoryLimit:R,form:N,isJobCreated:P,requestMessages:z}=a,B=Object(n.useRef)(!0),{dependentVariable:V,includes:J,jobConfigQuery:U,jobConfigQueryLanguage:G,jobConfigQueryString:q,jobType:$,modelMemoryLimit:W,previousJobType:H,requiredFieldsError:Y,runtimeMappings:X,previousRuntimeMapping:Q,runtimeMappingsUpdated:K,sourceIndex:Z,trainingPercent:ee,useEstimatedMml:te}=N,ae=$===Du.b.REGRESSION||$===Du.b.CLASSIFICATION,ie=ae&&""===V,ne=void 0!==$,se=ae&&""!==V||$===Du.b.OUTLIER_DETECTION,[oe,re]=Object(n.useState)({query:null!=q?q:"",language:null!=G?G:ba.b.KUERY}),le=Object($e.h)(),ce=((e,t,a,i)=>{const[s,o]=Object(n.useState)(),[r,l]=Object(n.useState)();Object(n.useEffect)((()=>{!async function(){f(""),h(jp.b.LOADING);const t={index:e.title,body:{fields:["*"],_source:!1,query:{function_score:{query:{match_all:{}},random_score:{}}},size:500}};try{const a=(await Je.ml.esSearch(t)).hits.hits.map((e=>{var t;return Object(jp.j)(null!==(t=e.fields)&&void 0!==t?t:{})})),i=Object(jp.i)(e),n=[...new Set(a.map(Object.keys).flat(1))].filter((e=>i.includes(e))).sort();h(jp.b.LOADED),o(n)}catch(e){f(Object(ei.b)(e)),h(jp.b.ERROR)}}()}),[]);const c=Object(n.useMemo)((()=>Object(hp.a)(e,i)),[e,i]),[d,u]=Object(n.useState)([]);Object(n.useEffect)((()=>{Array.isArray(s)&&u([...Pb(e,s),...c?Nb(c):[]])}),[e,s,c]);const p=Object(jp.m)(d),{pagination:m,resetPagination:b,setErrorMessage:f,setRowCountInfo:g,setStatus:h,setTableItems:j,sortingColumns:x,tableItems:v}=p;Object(n.useEffect)((()=>{b()}),[JSON.stringify(t)]),Object(n.useEffect)((()=>{void 0!==s&&void 0!==t&&async function(){var a;f(""),h(jp.b.LOADING);const i=null===(a=e.getTimeField())||void 0===a?void 0:a.name,n=x.reduce(((e,t)=>(e[t.id]={order:t.direction},e)),{}),o={index:e.title,body:{query:t,from:m.pageIndex*m.pageSize,size:m.pageSize,fields:[...null!=s?s:[],...Object(hp.c)(c)?Object.keys(c):[]],_source:!1,...Object.keys(n).length>0?{sort:n}:{},...Object(hp.c)(c)?{runtime_mappings:c}:{},...i?{aggs:{earliest:{min:{field:i}},latest:{max:{field:i}}}}:{}}};try{const e=await Je.ml.esSearch(o);e.aggregations&&Object(et.a)(e.aggregations.earliest,["value"])&&Object(et.a)(e.aggregations.latest,["value"])&&l({from:e.aggregations.earliest.value,to:e.aggregations.latest.value});const t=e.hits.hits.map((e=>{var t;return Object(jp.j)(null!==(t=e.fields)&&void 0!==t?t:{})}));g({rowCount:"number"==typeof e.hits.total?e.hits.total:e.hits.total.value,rowCountRelation:"number"==typeof e.hits.total?"eq":e.hits.total.relation}),j(t),h(jp.b.LOADED)}catch(e){f(Object(ei.b)(e)),h(jp.b.ERROR)}}()}),[e.title,s,JSON.stringify([t,m,x,c])]);const y=Object(n.useMemo)((()=>new data_loader_DataLoader(e,a)),[e]);Object(n.useEffect)((()=>{p.chartsVisible&&void 0!==t&&async function(e){try{const t=await y.loadFieldHistograms(d.filter((e=>p.visibleColumns.includes(e.id))).map((e=>({fieldName:e.id,type:Object(jp.h)(e.schema)}))),e,nm.a,c);p.setColumnCharts(t)}catch(e){Object(jp.l)(e,a)}}(t)}),[p.chartsVisible,e.title,JSON.stringify([t,p.visibleColumns,i])]);const O=Object(jp.n)(e,m,v);return{...p,indexPatternFields:s,renderCellValue:O,timeRangeMs:r}})(o,function(e,t){if(void 0!==e)return null!==e?e:t}(l,U),le,X),de={...ce,dataTestSubj:"mlAnalyticsCreationDataGrid",toastNotifications:le},ue=ie||void 0===$||void 0!==M||void 0!==F||void 0!==Y||void 0!==_||E,pe=Object(Ue.debounce)((async()=>{w(!0);const e=H!==$,t=!(B.current&&W||!0!==te),a=!B.current||!W||""===R;B.current&&(B.current=!1);const i=ae&&J.length>0&&!1===J.includes(V),n=i&&X&&Object.keys(X).includes(V);let s=N;(n||i)&&(s=Object(Ue.cloneDeep)(N),s.includes=[...J,V]);const{success:o,expectedMemory:r,fieldSelection:l,errorMessage:c,noDocsContainMappedFields:d}=await bb(s);if(o){a&&D(r);const o=l.some((e=>!0===e.is_included&&!1===e.is_required)),c={...t?{modelMemoryLimit:r}:{},...n||i?{includes:s.includes}:{},requiredFieldsError:o?void 0:Mf};e&&(m(!1),S(void 0),T(void 0),k(!1),O(l||[])),A(c),w(!1)}else{const{maxDistinctValuesErrorMessage:e,unsupportedFieldsErrorMessage:a,toastNotificationDanger:i,toastNotificationWarning:n}=Mb(c,Z,$);i&&le.addDanger(i),n&&le.addWarning(n);const s=void 0!==$?mb.a[$]:mb.a.outlier_detection;D(s),m(!0),S(e),T(a),k(d),w(!1),A({...t?{modelMemoryLimit:s}:{}})}}),300);Object(n.useEffect)((()=>{A({sourceIndex:o.title})}),[]);const me=Object(n.useMemo)((()=>void 0!==(null==ce?void 0:ce.indexPatternFields)?ce.indexPatternFields.map((e=>({name:e,is_included:!1,is_required:!1}))):[]),[`${null==ce?void 0:ce.indexPatternFields}`]);Object(n.useEffect)((()=>{"string"==typeof c&&A({jobConfigQuery:l,jobConfigQueryString:c})}),[JSON.stringify(l),c]),Object(n.useEffect)((()=>{if(ae){const e=Object(hp.a)(o);let t;e&&(t=Sf($,e)),(async(e,t=[])=>{f(!0),S(void 0);try{if(void 0!==o){const a=[];let i=e.dependentVariable;const{fields:n}=$c.a;let s=!0;for(const t of n)wb(t.id,t.type,$)&&(a.push({label:t.id,field:t}),e.dependentVariable===t.id&&(s=!1));Object(hp.c)(e.runtimeMappings)&&Object.keys(e.runtimeMappings).includes(N.dependentVariable)&&(s=!1,a.push({label:N.dependentVariable,key:`runtime_mapping_${N.dependentVariable}`})),s&&(i=""),v([...t,...a]),f(!1),j(!1),A({dependentVariable:i})}}catch(e){f(!1),j(!0)}})(N,t)}}),[$]);const be=Object(n.useCallback)((async()=>{if(K){let e=!1;if(ae){const t=x.filter((t=>{var a,i;return t.label===V&&null!==(a=t.key)&&void 0!==a&&a.includes(wf)&&(e=!0),!(null!==(i=t.key)&&void 0!==i&&i.includes(wf))}));if(void 0===X&&!0===K)v(t);else if(X){const e=Sf($,X);v([...t,...e])}}const t=J.filter((e=>!(Q&&Q[e])));if(e&&(A({dependentVariable:"",includes:t}),O(y.filter((({name:e})=>!(Q&&Q[e]))))),!e&&ne&&se){const e=Object(Ue.cloneDeep)(N),a=ae&&X&&Object.keys(X).includes(V)&&e.includes.length>0&&!1===e.includes.includes(V);e.includes=a?[...t,V]:t;const{success:i,fieldSelection:n,errorMessage:s,noDocsContainMappedFields:o}=await bb(e);if(i){const e=n.some((e=>!0===e.is_included&&!1===e.is_required));let a;Object(hp.c)(X)&&(a=n.map((e=>{var a;return void 0!==X[e.name]&&!1===e.is_included&&null!==(a=e.reason)&&void 0!==a&&a.includes("field not in includes list")&&(t.push(e.name),e.is_included=!0),e}))),O(a||n),S(void 0),T(void 0),k(o),A({includes:t,requiredFieldsError:e?void 0:Mf})}else{const{maxDistinctValuesErrorMessage:e,unsupportedFieldsErrorMessage:t,toastNotificationDanger:a,toastNotificationWarning:i}=Mb(s,Z,$);a&&le.addDanger(a),i&&le.addWarning(i),S(e),T(t),k(o)}}}}),[JSON.stringify(X)]);Object(n.useEffect)((()=>{be()}),[JSON.stringify(X)]),Object(n.useEffect)((()=>(ne&&se&&pe(),()=>{pe.cancel()})),[$,V,ee,JSON.stringify(J),q]);const fe=Object(n.useMemo)((()=>({color:ae?V:void 0,fields:y.filter((e=>"numerical"===e.feature_type&&e.is_included)).map((e=>e.name)),index:o.title,legendType:Object(Ob.a)($),searchQuery:U,runtimeMappings:X,indexPattern:o})),[o.title,V,y,ae,U,$]),ge=Object(n.useMemo)((()=>($===Du.b.OUTLIER_DETECTION||ae&&!ie)&&fe.fields.length>1),[ie,$,fe.fields.length]),{services:he}=Object(Te.d)(),je=Object(n.useMemo)((()=>{const{uiSettings:e,data:t,fieldFormats:a,charts:i}=he;return{uiSettings:e,dataViews:t.dataViews,data:t,fieldFormats:a,charts:i}}),[he]);if(void 0===l)return null;const xe=y.length>0&&!C?y:me;return Object(h.jsx)(fs.d,{dataView:o,fieldStatsServices:je,timeRangeMs:ce.timeRangeMs,dslQuery:U},Object(h.jsx)(n.Fragment,null,Object(h.jsx)(pb,{messages:z}),Object(h.jsx)(Ib,{jobType:$}),Object(h.jsx)(Cb,{type:$,setFormState:A}),null===l&&Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.sourceQueryLabel",{defaultMessage:"Query"}),fullWidth:!0},Object(h.jsx)(tm,{indexPattern:o,setSearchQuery:e=>{e.query&&A({jobConfigQuery:e.query,jobConfigQueryLanguage:e.language,jobConfigQueryString:e.queryString}),re({query:e.queryString,language:e.language})},query:oe})),(t&&L||!t)&&Object(h.jsx)(Ef,{actions:e,state:a}),Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(n.Fragment,null,null!==l&&Object(h.jsx)(d.EuiText,null,u.i18n.translate("xpack.ml.dataframe.analytics.create.savedSearchLabel",{defaultMessage:"Saved search"})),Object(h.jsx)(d.EuiBadge,{color:"hollow"},null!==r?r.title:o.getName())),fullWidth:!0},Object(h.jsx)(jp.a,de)),ae&&Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,label:u.i18n.translate("xpack.ml.dataframe.analytics.create.dependentVariableLabel",{defaultMessage:"Dependent variable"}),helpText:0===x.length&&!1===g&&o&&u.i18n.translate("xpack.ml.dataframe.analytics.create.dependentVariableOptionsNoNumericalFields",{defaultMessage:"No numeric type fields were found for this data view."}),isInvalid:void 0!==M,error:[...!0===g?[Object(h.jsx)(n.Fragment,null,u.i18n.translate("xpack.ml.dataframe.analytics.create.dependentVariableOptionsFetchError",{defaultMessage:"There was a problem fetching fields. Please refresh the page and try again."}))]:[],...!0===p&&void 0!==M?[Object(h.jsx)(n.Fragment,null,u.i18n.translate("xpack.ml.dataframe.analytics.create.dependentVariableMaxDistictValuesError",{defaultMessage:"Invalid. {message}",values:{message:M}}))]:[]]},Object(h.jsx)(fs.a,{fullWidth:!0,"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.dependentVariableInputAriaLabel",{defaultMessage:"Enter field to be used as dependent variable."}),placeholder:$===Du.b.REGRESSION?u.i18n.translate("xpack.ml.dataframe.analytics.create.dependentVariableRegressionPlaceholder",{defaultMessage:"Select the numeric field that you want to predict."}):u.i18n.translate("xpack.ml.dataframe.analytics.create.dependentVariableClassificationPlaceholder",{defaultMessage:"Select the numeric, categorical, or boolean field that you want to predict."}),isDisabled:P,isLoading:b,singleSelection:!0,options:x,selectedOptions:V?[{label:V}]:[],onChange:e=>{A({dependentVariable:e[0].label||""})},isClearable:!1,isInvalid:""===V,"data-test-subj":"mlAnalyticsCreateJobWizardDependentVariableSelect"+(b?" loading":" loaded")}))),Object(h.jsx)(Rb,{dependentVariable:V,includes:J,isJobTypeWithDepVar:ae,minimumFieldsRequiredMessage:F,setMinimumFieldsRequiredMessage:I,tableItems:B.current?y:xe,unsupportedFieldsError:_,setUnsupportedFieldsError:T,setFormState:A}),Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,isInvalid:void 0!==Y,error:u.i18n.translate("xpack.ml.dataframe.analytics.create.requiredFieldsError",{defaultMessage:"Invalid. {message}",values:{message:Y}})},Object(h.jsx)(n.Fragment,null)),Object(h.jsx)(d.EuiSpacer,null),ge&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFormRow,{"data-test-subj":"mlAnalyticsCreateJobWizardScatterplotMatrixFormRow",label:u.i18n.translate("xpack.ml.dataframe.analytics.create.scatterplotMatrixLabel",{defaultMessage:"Scatterplot matrix"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.scatterplotMatrixLabelHelpText",{defaultMessage:"Visualizes the relationships between pairs of selected included fields."}),fullWidth:!0},Object(h.jsx)(n.Fragment,null)),Object(h.jsx)(d.EuiPanel,{paddingSize:"m","data-test-subj":"mlAnalyticsCreateJobWizardScatterplotMatrixPanel"},Object(h.jsx)(zp,fe)),Object(h.jsx)(d.EuiSpacer,null)),ae&&Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,label:u.i18n.translate("xpack.ml.dataframe.analytics.create.trainingPercentLabel",{defaultMessage:"Training percent"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.trainingPercentHelpText",{defaultMessage:"Defines the percentage of eligible documents that will be used for training."})},Object(h.jsx)(d.EuiRange,{fullWidth:!0,min:Du.r,max:Du.q,step:1,showLabels:!0,showRange:!0,showValue:!0,value:ee,onChange:e=>A({trainingPercent:+e.target.value}),"data-test-subj":"mlAnalyticsCreateJobWizardTrainingPercentSlider"})),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(_b,{isDisabled:ue,onClick:()=>{i(Hf.ADVANCED)}})))},Tf=({actions:e,state:t,setCurrentStep:a,step:i,stepActivated:n,isClone:s})=>{const o=i===Hf.CONFIGURATION,r=i!==Hf.CONFIGURATION&&!0===n,l=`mlAnalyticsCreateJobWizardConfigurationStep${o?" active":""}${r?" summary":""}`;return Object(h.jsx)(d.EuiForm,{className:"mlDataFrameAnalyticsCreateForm","data-test-subj":l},o&&Object(h.jsx)(_f,{actions:e,isClone:s,state:t,setCurrentStep:a}),r&&Object(h.jsx)(yb,{setCurrentStep:a,state:t}))},Cf=({actions:e,state:t,advancedParamErrors:a})=>{const{setFormState:i}=e,{alpha:s,downsampleFactor:o,eta:r,etaGrowthRatePerTree:l,featureBagFraction:c,gamma:p,lambda:m,maxOptimizationRoundsPerHyperparameter:b,maxTrees:f,softTreeDepthLimit:g,softTreeDepthTolerance:j}=t.form;return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.lambdaLabel",{defaultMessage:"Lambda"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.lambdaHelpText",{defaultMessage:"A multiplier of the leaf weights in loss calculations. Must be a nonnegative value."}),isInvalid:void 0!==a[Du.a.LAMBDA],error:a[Du.a.LAMBDA]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.lambdaInputAriaLabel",{defaultMessage:"A multiplier of leaf weights in loss calculations."}),"data-test-subj":"mlAnalyticsCreateJobFlyoutLambdaInput",onChange:e=>i({lambda:""===e.target.value?void 0:+e.target.value}),step:.001,min:0,value:Lf(m)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.maxTreesLabel",{defaultMessage:"Max trees"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.maxTreesText",{defaultMessage:"The maximum number of decision trees in the forest."}),isInvalid:void 0!==a[Du.a.MAX_TREES],error:a[Du.a.MAX_TREES]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.maxTreesInputAriaLabel",{defaultMessage:"The maximum number of decision trees in the forest."}),"data-test-subj":"mlAnalyticsCreateJobFlyoutMaxTreesInput",onChange:e=>i({maxTrees:""===e.target.value?void 0:+e.target.value}),isInvalid:void 0!==f&&!Number.isInteger(f),step:1,min:1,max:2e3,value:Lf(f)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.gammaLabel",{defaultMessage:"Gamma"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.gammaText",{defaultMessage:"A multiplier of the tree size in loss calcuations. Must be nonnegative value."}),isInvalid:void 0!==a[Du.a.GAMMA],error:a[Du.a.GAMMA]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.gammaInputAriaLabel",{defaultMessage:"A multiplier of the tree size in loss calculations."}),"data-test-subj":"mlAnalyticsCreateJobWizardGammaInput",onChange:e=>i({gamma:""===e.target.value?void 0:+e.target.value}),step:.001,min:0,value:Lf(p)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.etaLabel",{defaultMessage:"Eta"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.etaText",{defaultMessage:"The shrinkage applied to the weights. Must be between 0.001 and 1."}),isInvalid:void 0!==a[Du.a.ETA],error:a[Du.a.ETA]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.etaInputAriaLabel",{defaultMessage:"The shrinkage applied to the weights."}),"data-test-subj":"mlAnalyticsCreateJobWizardEtaInput",onChange:e=>i({eta:""===e.target.value?void 0:+e.target.value}),step:.001,min:.001,max:1,value:Lf(r)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.featureBagFractionLabel",{defaultMessage:"Feature bag fraction"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.featureBagFractionText",{defaultMessage:"The fraction of features used when selecting a random bag for each candidate split."}),isInvalid:void 0!==a[Du.a.FEATURE_BAG_FRACTION],error:a[Du.a.FEATURE_BAG_FRACTION]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.featureBagFractionInputAriaLabel",{defaultMessage:"The fraction of features used when selecting a random bag for each candidate split"}),"data-test-subj":"mlAnalyticsCreateJobWizardFeatureBagFractionInput",onChange:e=>i({featureBagFraction:""===e.target.value?void 0:+e.target.value}),isInvalid:void 0!==c&&(c>1||c<=0),step:.001,max:1,value:Lf(c)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.alphaLabel",{defaultMessage:"Alpha"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.alphaText",{defaultMessage:"A multiplier of the tree depth in loss calculations. Must be greater than or equal to 0."}),isInvalid:void 0!==a[Du.a.ALPHA],error:a[Du.a.ALPHA]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.alphaInputAriaLabel",{defaultMessage:"A multiplier of the tree depth in loss calculations."}),"data-test-subj":"mlAnalyticsCreateJobWizardAlphaInput",onChange:e=>i({alpha:""===e.target.value?void 0:+e.target.value}),step:.001,min:0,value:Lf(s)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.downsampleFactorLabel",{defaultMessage:"Downsample factor"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.downsampleFactorText",{defaultMessage:"The fraction of data used to compute derivatives of the loss function for tree training. Must be between 0 and 1."}),isInvalid:void 0!==a[Du.a.DOWNSAMPLE_FACTOR],error:a[Du.a.DOWNSAMPLE_FACTOR]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.downsampleFactorInputAriaLabel",{defaultMessage:"The fraction of data used to compute derivatives of the loss function for tree training."}),"data-test-subj":"mlAnalyticsCreateJobWizardDownsampleFactorInput",onChange:e=>i({downsampleFactor:""===e.target.value?void 0:+e.target.value}),step:.001,min:0,max:1,value:Lf(o)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.etaGrowthRatePerTreeLabel",{defaultMessage:"Eta growth rate per tree"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.etaGrowthRatePerTreeText",{defaultMessage:"The rate at which eta increases for each new tree that is added to the forest. Must be between 0.5 and 2."}),isInvalid:void 0!==a[Du.a.ETA_GROWTH_RATE_PER_TREE],error:a[Du.a.ETA_GROWTH_RATE_PER_TREE]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.etaGrowthRatePerTreeInputAriaLabel",{defaultMessage:"The rate at which eta increases for each new tree that is added to the forest."}),"data-test-subj":"mlAnalyticsCreateJobWizardEtaGrowthRatePerTreeInput",onChange:e=>i({etaGrowthRatePerTree:""===e.target.value?void 0:+e.target.value}),step:.001,min:.5,max:2,value:Lf(l)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.maxOptimizationRoundsPerHyperparameterLabel",{defaultMessage:"Max optimization rounds per hyperparameter"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.maxOptimizationRoundsPerHyperparameterText",{defaultMessage:"The maximum number of optimization rounds for each undefined hyperparameter."}),isInvalid:void 0!==a[Du.a.MAX_OPTIMIZATION_ROUNDS_PER_HYPERPARAMETER],error:a[Du.a.MAX_OPTIMIZATION_ROUNDS_PER_HYPERPARAMETER]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.maxOptimizationRoundsPerHyperparameterInputAriaLabel",{defaultMessage:"The maximum number of optimization rounds for each undefined hyperparameter. Must be an integer between 0 and 20."}),"data-test-subj":"mlAnalyticsCreateJobWizardMaxOptimizationRoundsPerHyperparameterInput",onChange:e=>i({maxOptimizationRoundsPerHyperparameter:""===e.target.value?void 0:+e.target.value}),min:0,max:20,step:1,value:Lf(b)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.softTreeDepthLimitLabel",{defaultMessage:"Soft tree depth limit"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.softTreeDepthLimitText",{defaultMessage:"Decision trees that exceed this depth are penalized in loss calculations. Must be greater than or equal to 0. "}),isInvalid:void 0!==a[Du.a.SOFT_TREE_DEPTH_LIMIT],error:a[Du.a.SOFT_TREE_DEPTH_LIMIT]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.softTreeDepthLimitInputAriaLabel",{defaultMessage:"Decision trees that exceed this depth are penalized in loss calculations."}),"data-test-subj":"mlAnalyticsCreateJobWizardSoftTreeDepthLimitInput",onChange:e=>i({softTreeDepthLimit:""===e.target.value?void 0:+e.target.value}),step:.001,min:0,value:Lf(g)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.softTreeDepthToleranceLabel",{defaultMessage:"Soft tree depth tolerance"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.softTreeDepthToleranceText",{defaultMessage:"Control how quickly the loss increases when tree depths exceed soft limits. The smaller the value, the faster the loss increases. Must be greater than or equal to 0.01. "}),isInvalid:void 0!==a[Du.a.SOFT_TREE_DEPTH_TOLERANCE],error:a[Du.a.SOFT_TREE_DEPTH_TOLERANCE]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.softTreeDepthToleranceInputAriaLabel",{defaultMessage:"Decision trees that exceed this depth are penalized in loss calculations."}),"data-test-subj":"mlAnalyticsCreateJobWizardSoftTreeDepthToleranceInput",onChange:e=>i({softTreeDepthTolerance:""===e.target.value?void 0:+e.target.value}),step:.001,min:.01,value:Lf(j)}))))};var kf=a(295);const Ff=({actions:e,state:t,advancedParamErrors:a})=>{const{setFormState:i}=e,{method:s,nNeighbors:o,outlierFraction:r,standardizationEnabled:l}=t.form;return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.methodLabel",{defaultMessage:"Method"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.methodHelpText",{defaultMessage:"Set the method that outlier detection uses. If not set, uses an ensemble of different methods, normalizes and combines their individual outlier scores to obtain the overall outlier score. It is recommended to use the ensemble method."}),isInvalid:void 0!==a[Du.a.METHOD],error:a[Du.a.METHOD]},Object(h.jsx)(d.EuiSelect,{options:Object.values(Du.n).map((e=>({value:e,text:e}))),value:s,hasNoInitialSelection:!0,onChange:e=>{i({method:e.target.value})},"data-test-subj":"mlAnalyticsCreateJobWizardMethodInput"}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.nNeighborsLabel",{defaultMessage:"N neighbors"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.nNeighborsHelpText",{defaultMessage:"The value for how many nearest neighbors each method of outlier detection uses to calculate its outlier score. When not set, different values are used for different ensemble members. Must be a positive integer."}),isInvalid:void 0!==a[Du.a.N_NEIGHBORS],error:a[Du.a.N_NEIGHBORS]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.nNeighborsInputAriaLabel",{defaultMessage:"The value for how many nearest neighbors each method of outlier detection uses to calculate its outlier score."}),"data-test-subj":"mlAnalyticsCreateJobWizardnNeighborsInput",onChange:e=>i({nNeighbors:""===e.target.value?void 0:+e.target.value}),step:1,min:1,value:Lf(o)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.outlierFractionLabel",{defaultMessage:"Outlier fraction"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.outlierFractionHelpText",{defaultMessage:"Set the proportion of the data set that is assumed to be outlying prior to outlier detection."}),isInvalid:void 0!==a[Du.a.OUTLIER_FRACTION],error:a[Du.a.OUTLIER_FRACTION]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.outlierFractionInputAriaLabel",{defaultMessage:"Sets the proportion of the data set that is assumed to be outlying prior to outlier detection."}),"data-test-subj":"mlAnalyticsCreateJobWizardoutlierFractionInput",onChange:e=>i({outlierFraction:""===e.target.value?void 0:+e.target.value}),step:.001,min:0,max:1,value:Lf(r)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.standardizationEnabledLabel",{defaultMessage:"Standardization enabled"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.standardizationEnabledHelpText",{defaultMessage:"If true, the following operation is performed on the columns before computing outlier scores: (x_i - mean(x_i)) / sd(x_i)."})},Object(h.jsx)(d.EuiSelect,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.standardizationEnabledInputAriaLabel",{defaultMessage:"Sets standardization enabled setting."}),"data-test-subj":"mlAnalyticsCreateJobWizardStandardizationEnabledInput",options:[{value:"true",text:u.i18n.translate("xpack.ml.dataframe.analytics.create.standardizationEnabledTrueValue",{defaultMessage:"True"})},{value:"false",text:u.i18n.translate("xpack.ml.dataframe.analytics.create.standardizationEnabledFalseValue",{defaultMessage:"False"})}],value:l,hasNoInitialSelection:!0,onChange:e=>{i({standardizationEnabled:e.target.value})}}))))},If={label:u.i18n.translate("xpack.ml.dataframe.analytics.create.allClassesLabel",{defaultMessage:"All classes"}),value:-1},Df=Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.create.numTopClassTypeWarning",defaultMessage:"Value must be an integer of -1 or greater, where -1 indicates all classes."});function Af(e){return-1===e?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.create.numTopClassesHelpText",defaultMessage:"The number of categories for which the predicted probabilities are reported."})," ",Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.create.allClassesMessage",defaultMessage:"If you have a large number of classes there could be a significant effect on the size of your destination index."})):Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.create.numTopClassesHelpText",defaultMessage:"The number of categories for which the predicted probabilities are reported."})}function Lf(e){return void 0===e?"":+e}const Rf=({actions:e,state:t,setCurrentStep:a})=>{var i;const[o,r]=Object(n.useState)({}),[l,c]=Object(n.useState)(!1),{services:{docLinks:p}}=Object(Te.d)(),m=p.links.ml.classificationAucRoc,{setEstimatedModelMemoryLimit:b,setFormState:f}=e,{form:j,isJobCreated:x,estimatedModelMemoryLimit:v}=t,{alpha:y,computeFeatureInfluence:O,downsampleFactor:E,eta:w,etaGrowthRatePerTree:M,featureBagFraction:S,featureInfluenceThreshold:_,gamma:T,jobType:C,lambda:k,maxNumThreads:F,maxOptimizationRoundsPerHyperparameter:I,maxTrees:D,method:A,modelMemoryLimit:L,modelMemoryLimitValidationResult:R,nNeighbors:N,numTopClasses:P,numTopFeatureImportanceValues:z,numTopFeatureImportanceValuesValid:B,outlierFraction:V,predictionFieldName:J,randomizeSeed:U,softTreeDepthLimit:G,softTreeDepthTolerance:q,useEstimatedMml:$}=j,[W,H]=Object(n.useState)([If]),[Y,X]=Object(n.useState)(function(e){const t=[];return-1===e?t.push(If):void 0!==e&&t.push({label:`${e}`}),t}(P)),Q=Y[0]&&(null!==(i=Y[0].value)&&void 0!==i?i:Number(Y[0].label)),K=void 0!==(Z=Q)&&(isNaN(Z)||Z<-1||Z-Math.floor(Z)!=0);var Z;const ee=Object(n.useMemo)((()=>Object(kf.a)(R)),[R]),te=C===Du.b.REGRESSION||C===Du.b.CLASSIFICATION,ae=null!==R&&(void 0!==R.invalidUnits||!0===R.required),ie=K||ae||Object.keys(o).length>0||!0===l||0===F;Object(n.useEffect)((()=>{c(!0),async function(){const{success:e,errorMessage:t,errorReason:a,expectedMemory:i}=await bb(j),n={};e?L!==i&&(b(i),!0===$&&f({modelMemoryLimit:i})):Object.values(Du.a).forEach((e=>{t.includes(`[${e}]`)?n[e]=t:null!=a&&a.includes(`[${e}]`)&&(n[e]=a)})),c(!1),r(n)}()}),[y,E,w,M,S,_,T,k,F,I,D,A,N,P,z,V,U,G,q]);const ne=Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.computeFeatureInfluenceLabel",{defaultMessage:"Compute feature influence"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.computeFeatureInfluenceLabelHelpText",{defaultMessage:"Specify whether the feature influence calculation is enabled. Defaults to true."})},Object(h.jsx)(d.EuiSelect,{"data-test-subj":"mlAnalyticsCreateJobWizardComputeFeatureInfluenceLabelInput",options:[{value:"true",text:u.i18n.translate("xpack.ml.dataframe.analytics.create.computeFeatureInfluenceTrueValue",{defaultMessage:"True"})},{value:"false",text:u.i18n.translate("xpack.ml.dataframe.analytics.create.computeFeatureInfluenceFalseValue",{defaultMessage:"False"})}],value:O,hasNoInitialSelection:!1,onChange:e=>{f({computeFeatureInfluence:e.target.value})}}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.featureInfluenceThresholdLabel",{defaultMessage:"Feature influence threshold"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.featureInfluenceThresholdHelpText",{defaultMessage:"The minimum outlier score that a document needs to have in order to calculate its feature influence score. Value range: 0-1. Defaults to 0.1."}),isInvalid:void 0!==o[Du.a.FEATURE_INFLUENCE_THRESHOLD],error:o[Du.a.FEATURE_INFLUENCE_THRESHOLD]},Object(h.jsx)(d.EuiFieldNumber,{onChange:e=>f({featureInfluenceThreshold:""===e.target.value?void 0:+e.target.value}),"data-test-subj":"mlAnalyticsCreateJobWizardFeatureInfluenceThresholdInput",min:0,max:1,step:.001,value:Lf(_)})))),se=Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.numTopFeatureImportanceValuesLabel",{defaultMessage:"Feature importance values"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.numTopFeatureImportanceValuesHelpText",{defaultMessage:"Specify the maximum number of feature importance values per document to return."}),isInvalid:!1===B,error:[...!1===B?[Object(h.jsx)(n.Fragment,null,u.i18n.translate("xpack.ml.dataframe.analytics.create.numTopFeatureImportanceValuesErrorText",{defaultMessage:"Invalid maximum number of feature importance values."}))]:[]]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.numTopFeatureImportanceValuesInputAriaLabel",{defaultMessage:"Maximum number of feature importance values per document."}),"data-test-subj":"mlAnalyticsCreateJobFlyoutnumTopFeatureImportanceValuesInput",isInvalid:!1===B,min:Du.m,onChange:e=>f({numTopFeatureImportanceValues:""===e.target.value?void 0:+e.target.value}),step:1,value:Lf(z)}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.predictionFieldNameLabel",{defaultMessage:"Prediction field name"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.predictionFieldNameHelpText",{defaultMessage:"Define the name of the prediction field in the results. The default is _prediction."})},Object(h.jsx)(d.EuiFieldText,{disabled:x,value:J,onChange:e=>f({predictionFieldName:e.target.value}),"data-test-subj":"mlAnalyticsCreateJobWizardPredictionFieldNameInput"}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.randomizeSeedLabel",{defaultMessage:"Randomize seed"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.randomizeSeedText",{defaultMessage:"The seed for the random generator used to pick training data."}),isInvalid:void 0!==o[Du.a.RANDOMIZE_SEED],error:o[Du.a.RANDOMIZE_SEED]},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.randomizeSeedInputAriaLabel",{defaultMessage:"The seed for the random generator used to pick training data."}),"data-test-subj":"mlAnalyticsCreateJobWizardRandomizeSeedInput",onChange:e=>f({randomizeSeed:""===e.target.value?void 0:+e.target.value}),isInvalid:void 0!==U&&"number"!=typeof U,value:Lf(U),step:1}))));return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h3",null,u.i18n.translate("xpack.ml.dataframe.analytics.create.advancedConfigSectionTitle",{defaultMessage:"Advanced configuration"}))),Object(h.jsx)(d.EuiFlexGrid,{columns:3},C===Du.b.OUTLIER_DETECTION&&ne,te&&se,C===Du.b.CLASSIFICATION&&Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.numTopClassesLabel",{defaultMessage:"Top classes"}),helpText:Af(Q),isInvalid:0===Q||K,error:[...0===Q?[(oe=m,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.create.zeroClassesMessage",defaultMessage:"To evaluate the {wikiLink}, select all classes or a value greater than the total number of categories.",values:{wikiLink:Object(h.jsx)(d.EuiLink,{href:oe,target:"_blank",external:!0},u.i18n.translate("xpack.ml.dataframe.analytics.create.aucRocLabel",{defaultMessage:"AUC ROC"}))}}))]:[],...K?[Df]:[]]},Object(h.jsx)(d.EuiComboBox,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.numTopClassesInputAriaLabel",{defaultMessage:"The number of categories for which the predicted probabilities are reported"}),singleSelection:!0,options:W,selectedOptions:Y,onCreateOption:(e,t=[])=>{const a=e.trim().toLowerCase();if(""===a)return;const i={label:e};-1===t.findIndex((e=>e.label.trim().toLowerCase()===a))&&H([...W,i]),X([i])},onChange:e=>{X(e)},isClearable:!0,isInvalid:void 0!==Q&&Q<-1,"data-test-subj":"mlAnalyticsCreateJobWizardnumTopClassesInput"}))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.modelMemoryLimitLabel",{defaultMessage:"Model memory limit"}),isInvalid:null!==R,error:ee,helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.modelMemoryLimitHelpText",{defaultMessage:"The approximate maximum amount of memory resources that are permitted for analytical processing."})},Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFieldText,{placeholder:void 0!==C?mb.a[C]:mb.a.outlier_detection,disabled:x||$,value:$?v:L||"",onChange:e=>f({modelMemoryLimit:e.target.value}),isInvalid:null!==R,"data-test-subj":"mlAnalyticsCreateJobWizardModelMemoryInput"}),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiSwitch,{disabled:x,name:"mlDataFrameAnalyticsUseEstimatedMml",label:u.i18n.translate("xpack.ml.dataframe.analytics.create.useEstimatedMmlLabel",{defaultMessage:"Use estimated model memory limit"}),checked:!0===$,onChange:()=>f({useEstimatedMml:!$}),"data-test-subj":"mlAnalyticsCreateJobWizardUseEstimatedMml"})))),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.dataframe.analytics.create.maxNumThreadsLabel",{defaultMessage:"Maximum number of threads"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.maxNumThreadsHelpText",{defaultMessage:"The maximum number of threads to be used by the analysis. The default value is 1."}),isInvalid:0===F,error:0===F&&u.i18n.translate("xpack.ml.dataframe.analytics.create.maxNumThreadsError",{defaultMessage:"The minimum value is 1."})},Object(h.jsx)(d.EuiFieldNumber,{"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.maxNumThreadsInputAriaLabel",{defaultMessage:"The maximum number of threads to be used by the analysis."}),"data-test-subj":"mlAnalyticsCreateJobWizardMaxNumThreadsInput",min:1,onChange:e=>f({maxNumThreads:""===e.target.value?void 0:+e.target.value}),step:1,value:Lf(F)})))),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiAccordion,{id:"hyper-parameters",buttonContent:Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h3",null,u.i18n.translate("xpack.ml.dataframe.analytics.create.hyperParametersSectionTitle",{defaultMessage:"Hyperparameters"}))),initialIsOpen:!1,"data-test-subj":"mlAnalyticsCreateJobWizardHyperParametersSection"},Object(h.jsx)(d.EuiFlexGrid,{columns:3},C===Du.b.OUTLIER_DETECTION&&Object(h.jsx)(Ff,{actions:e,state:t,advancedParamErrors:o}),te&&Object(h.jsx)(Cf,{actions:e,state:t,advancedParamErrors:o}))),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(_b,{isDisabled:ie,onClick:()=>{f({numTopClasses:!1===K?Q:void 0}),a(Hf.DETAILS)}}));var oe};function Nf(e){return"number"==typeof e?`${e}`:mb.c}const Pf=({setCurrentStep:e,state:t})=>{const{form:a,isJobCreated:i}=t,{computeFeatureInfluence:s,dependentVariable:o,eta:r,featureBagFraction:l,featureInfluenceThreshold:c,gamma:p,jobType:m,lambda:b,method:f,maxNumThreads:g,maxTrees:j,modelMemoryLimit:x,nNeighbors:v,numTopClasses:y,numTopFeatureImportanceValues:O,outlierFraction:E,predictionFieldName:w,randomizeSeed:M,standardizationEnabled:S}=a,_=m===Du.b.REGRESSION||m===Du.b.CLASSIFICATION,T=[],C=[],k=[],F=[],I=[],D=[];return m===Du.b.OUTLIER_DETECTION&&(T.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.computeFeatureInfluence",{defaultMessage:"Compute feature influence"}),description:s}),C.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.featureInfluenceThreshold",{defaultMessage:"Feature influence threshold"}),description:Nf(c)}),k.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.modelMemoryLimit",{defaultMessage:"Model memory limit"}),description:`${x}`}),F.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.nNeighbors",{defaultMessage:"N neighbors"}),description:Nf(v)},{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.outlierFraction",{defaultMessage:"Outlier fraction"}),description:Nf(E)}),I.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.method",{defaultMessage:"Method"}),description:void 0!==f?f:mb.c}),D.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.standardizationEnabled",{defaultMessage:"Standardization enabled"}),description:`${S}`})),_&&(T.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.numTopFeatureImportanceValues",{defaultMessage:"Top feature importance values"}),description:`${O}`}),F.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.lambdaFields",{defaultMessage:"Lambda"}),description:Nf(b)},{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.eta",{defaultMessage:"Eta"}),description:Nf(r)}),C.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.predictionFieldName",{defaultMessage:"Prediction field name"}),description:w||`${o}_prediction`},{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.randomizedSeed",{defaultMessage:"Randomized seed"}),description:Nf(M)}),I.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.maxTreesFields",{defaultMessage:"Max trees"}),description:Nf(j)},{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.featureBagFraction",{defaultMessage:"Feature bag fraction"}),description:Nf(l)}),k.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.modelMemoryLimit",{defaultMessage:"Model memory limit"}),description:`${x}`}),D.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.gamma",{defaultMessage:"Gamma"}),description:Nf(p)})),m===Du.b.CLASSIFICATION&&k.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.numTopClasses",{defaultMessage:"Top classes"}),description:-1===y?u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.allClasses",{defaultMessage:"All classes"}):Nf(y)}),void 0!==g&&T.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.maxNumThreads",{defaultMessage:"Maximum number of threads"}),description:`${g}`}),Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h3",null,u.i18n.translate("xpack.ml.dataframe.analytics.create.advancedConfigDetailsTitle",{defaultMessage:"Advanced configuration"}))),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiFlexGroup,{style:{width:"70%"},justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:T})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:C})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:k}))),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h3",null,u.i18n.translate("xpack.ml.dataframe.analytics.create.hyperParametersDetailsTitle",{defaultMessage:"Hyperparameters"}))),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiFlexGroup,{style:{width:"70%"},justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:F})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:I})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:D}))),Object(h.jsx)(d.EuiSpacer,null),!i&&Object(h.jsx)(d.EuiButtonEmpty,{iconType:"pencil",size:"s",onClick:()=>{e(Hf.ADVANCED)}},u.i18n.translate("xpack.ml.dataframe.analytics.create.advancedDetails.editButtonText",{defaultMessage:"Edit"})))},zf=({actions:e,state:t,step:a,setCurrentStep:i,stepActivated:n})=>{const s=a===Hf.ADVANCED,o=a!==Hf.ADVANCED&&!0===n,r=`mlAnalyticsCreateJobWizardAdvancedStep${s?" active":""}${o?" summary":""}`;return Object(h.jsx)(d.EuiForm,{"data-test-subj":r},s&&Object(h.jsx)(Rf,{actions:e,state:t,setCurrentStep:i}),o&&Object(h.jsx)(Pf,{setCurrentStep:i,state:t}))},Bf=({setCurrentStep:e,state:t})=>{const{form:a,isJobCreated:i}=t,{description:s,jobId:o,destinationIndex:r,resultsField:l}=a,c=[{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.jobId",{defaultMessage:"Job ID"}),description:o}];void 0!==l&&"string"==typeof l&&""!==l.trim()&&c.push({title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.resultsField",{defaultMessage:"Results field"}),description:l});const p=[{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.jobDescription",{defaultMessage:"Job description"}),description:s}],m=[{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.configDetails.destIndex",{defaultMessage:"Destination index"}),description:r||""}];return Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{style:{width:"70%"},justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:c})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{style:{wordBreak:"break-word"},compressed:!0,listItems:p})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:m}))),Object(h.jsx)(d.EuiSpacer,null),!i&&Object(h.jsx)(d.EuiButtonEmpty,{iconType:"pencil",size:"s",onClick:()=>{e(Hf.DETAILS)}},u.i18n.translate("xpack.ml.dataframe.analytics.create.detailsDetails.editButtonText",{defaultMessage:"Edit"})))},Vf=({dataViewAvailableTimeFields:e,dataViewTimeField:t,onTimeFieldChanged:a})=>{const i={text:u.i18n.translate("xpack.ml.dataframe.analytics.create.detailsStep.noTimeFieldOptionLabel",{defaultMessage:"I don't want to use the time field option"}),value:void 0};return Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.create.detailsStep.dataViewTimeFieldLabel",defaultMessage:"Time field for Kibana data view"}),helpText:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.create.detailsStep.dataViewTimeFieldHelpText",defaultMessage:"Select a primary time field for use with the global time filter."})},Object(h.jsx)(d.EuiSelect,{options:[...e.map((e=>({text:e}))),{disabled:!0,text:"───",value:""},i],value:t,onChange:a,"data-test-subj":"mlDataFrameAnalyticsCreateDataViewTimeFieldSelect"}))},Jf=u.i18n.translate("xpack.ml.dataframe.analytics.create.destinationIndexHelpText",{defaultMessage:"An index with this name already exists. Be aware that running this analytics job will modify this destination index."}),Uf=({actions:e,state:t,setCurrentStep:a})=>{const{services:{docLinks:i,notifications:s}}=Object(Te.d)(),{selectedDataView:o}=Yn(),r=i.links.apis.createIndex,{setFormState:l}=e,{form:c,cloneJob:p,hasSwitchedToEditor:m,isJobCreated:b}=t,{description:f,destinationIndex:g,destinationIndexNameEmpty:j,destinationIndexNameExists:x,destinationIndexNameValid:v,jobId:y,jobIdEmpty:O,jobIdExists:E,jobIdInvalidMaxLength:w,jobIdValid:M,resultsField:S,timeFieldName:_}=c,[T,C]=Object(n.useState)(void 0===p&&!1===m),[k,F]=Object(n.useState)(void 0===p&&!1===m&&void 0===S||void 0!==p&&"ml"===S),[I,D]=Object(n.useState)([]),A=Object(n.useCallback)((e=>{const t=e.target.value;if(""===t)return;const a=I.find((e=>e===t));l({timeFieldName:a})}),[I,l]);Object(n.useEffect)((()=>{void 0!==o&&l({timeFieldName:o.timeFieldName})}),[]),Object(n.useEffect)((()=>{if(void 0!==o){const e=o.fields.filter((e=>"date"===e.type)).map((e=>e.name));D(e)}}),[o,l]);const L=Object(n.useRef)(null),R=!0===O||!0===E||!1===M||!0===j||!1===v,N=Object(Ue.debounce)((async()=>{try{const e=await Je.ml.checkIndicesExists({indices:[g]});l({destinationIndexNameExists:e[g].exists})}catch(e){s.toasts.addDanger(u.i18n.translate("xpack.ml.dataframe.analytics.create.errorCheckingIndexExists",{defaultMessage:"The following error occurred getting the existing index names: {error}",values:{error:Object(ei.b)(e)}}))}}),400),P=Object(n.useMemo)((()=>Object(Ue.debounce)((async()=>{try{const e=await Je.ml.dataFrameAnalytics.jobsExist([y],!0);l({jobIdExists:e[y].exists})}catch(e){s.toasts.addDanger(u.i18n.translate("xpack.ml.dataframe.analytics.create.errorCheckingJobIdExists",{defaultMessage:"The following error occurred checking if job id exists: {error}",values:{error:Object(ei.b)(e)}}))}}),400)),[y]);return Object(n.useEffect)((()=>(!0===M?P():"string"==typeof y&&""===y.trim()&&!0===E&&l({jobIdExists:!1}),()=>{P.cancel()})),[y]),Object(n.useEffect)((()=>(!0===v?N():"string"==typeof g&&""===g.trim()&&!0===x&&l({destinationIndexNameExists:!1}),()=>{N.cancel()})),[g]),Object(n.useEffect)((()=>{!0===T&&!O&&M?l({destinationIndex:y}):!1===T&&!1===m&&l({destinationIndex:""})}),[T,y]),Object(h.jsx)(n.Fragment,null,Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,label:u.i18n.translate("xpack.ml.dataframe.analytics.create.jobIdLabel",{defaultMessage:"Job ID"}),isInvalid:!O&&!M||E||w,error:[...O||M?[]:[u.i18n.translate("xpack.ml.dataframe.analytics.create.jobIdInvalidError",{defaultMessage:"Must contain lowercase alphanumeric characters (a-z and 0-9), hyphens, and underscores only and must start and end with alphanumeric characters."})],...E?[u.i18n.translate("xpack.ml.dataframe.analytics.create.jobIdExistsError",{defaultMessage:"An analytics job with this ID already exists."})]:[],...w?[u.i18n.translate("xpack.ml.dataframe.analytics.create.jobIdInvalidMaxLengthErrorMessage",{defaultMessage:"Job ID must be no more than {maxLength, plural, one {# character} other {# characters}} long.",values:{maxLength:Vl.b}})]:[]]},Object(h.jsx)(d.EuiFieldText,{fullWidth:!0,inputRef:e=>{e&&(L.current=e)},disabled:b,placeholder:u.i18n.translate("xpack.ml.dataframe.analytics.create.jobIdPlaceholder",{defaultMessage:"Job ID"}),value:y,onChange:e=>l({jobId:e.target.value}),"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.jobIdInputAriaLabel",{defaultMessage:"Choose a unique analytics job ID."}),isInvalid:!O&&!M||E||O,"data-test-subj":"mlAnalyticsCreateJobFlyoutJobIdInput"})),Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,label:u.i18n.translate("xpack.ml.dataframe.analytics.create.jobDescription.label",{defaultMessage:"Job description"})},Object(h.jsx)(d.EuiTextArea,{fullWidth:!0,value:f,placeholder:u.i18n.translate("xpack.ml.dataframe.analytics.create.jobDescription.helpText",{defaultMessage:"Optional descriptive text"}),rows:2,onChange:e=>{const t=e.target.value;l({description:t})},"data-test-subj":"mlDFAnalyticsJobCreationJobDescription"})),Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,helpText:!0===T&&x&&Jf},Object(h.jsx)(d.EuiSwitch,{disabled:b,name:"mlDataFrameAnalyticsDestIndexSameAsId",label:u.i18n.translate("xpack.ml.dataframe.analytics.create.DestIndexSameAsIdLabel",{defaultMessage:"Destination index same as job ID"}),checked:!0===T,onChange:()=>C(!T),"data-test-subj":"mlAnalyticsCreateJobWizardDestIndexSameAsIdSwitch"})),!1===T&&Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,label:u.i18n.translate("xpack.ml.dataframe.analytics.create.destinationIndexLabel",{defaultMessage:"Destination index"}),isInvalid:j||!j&&!v,helpText:x&&Jf,error:!j&&!v&&[Object(h.jsx)(n.Fragment,null,u.i18n.translate("xpack.ml.dataframe.analytics.create.destinationIndexInvalidError",{defaultMessage:"Invalid destination index name."}),Object(h.jsx)("br",null),Object(h.jsx)(d.EuiLink,{href:r,target:"_blank"},u.i18n.translate("xpack.ml.dataframe.stepDetailsForm.destinationIndexInvalidErrorLink",{defaultMessage:"Learn more about index name limitations."})))]},Object(h.jsx)(d.EuiFieldText,{fullWidth:!0,disabled:b,placeholder:"destination index",value:g,onChange:e=>l({destinationIndex:e.target.value}),"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.destinationIndexInputAriaLabel",{defaultMessage:"Choose a unique destination index name."}),isInvalid:!j&&!v,"data-test-subj":"mlAnalyticsCreateJobFlyoutDestinationIndexInput"})),Object(h.jsx)(d.EuiFormRow,{fullWidth:!0},Object(h.jsx)(d.EuiSwitch,{disabled:b,name:"mlDataFrameAnalyticsUseResultsFieldDefault",label:u.i18n.translate("xpack.ml.dataframe.analytics.create.UseResultsFieldDefaultLabel",{defaultMessage:'Use results field default value: "{defaultValue}"',values:{defaultValue:"ml"}}),checked:!0===k,onChange:()=>{1==!k&&l({resultsField:void 0}),F(!k)},"data-test-subj":"mlAnalyticsCreateJobWizardUseResultsFieldDefault"})),!1===k&&Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,label:u.i18n.translate("xpack.ml.dataframe.analytics.create.resultsFieldLabel",{defaultMessage:"Results field"}),helpText:u.i18n.translate("xpack.ml.dataframe.analytics.create.resultsFieldHelpText",{defaultMessage:"Define the name of the field in which to store the results of the analysis. Defaults to ml."})},Object(h.jsx)(d.EuiFieldText,{disabled:b,placeholder:"Results field",value:S,onChange:e=>l({resultsField:e.target.value}),"aria-label":u.i18n.translate("xpack.ml.dataframe.analytics.create.resultsFieldInputAriaLabel",{defaultMessage:"The name of the field in which to store the results of the analysis."}),"data-test-subj":"mlAnalyticsCreateJobWizardResultsFieldInput"})),v&&I.length>0?Object(h.jsx)(Vf,{dataViewAvailableTimeFields:I,dataViewTimeField:_,onTimeFieldChanged:A}):null,Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(_b,{isDisabled:R,onClick:()=>{a(Hf.VALIDATION)}}))},Gf=({actions:e,state:t,setCurrentStep:a,step:i,stepActivated:n})=>{const s=i===Hf.DETAILS,o=i!==Hf.DETAILS&&!0===n,r=`mlAnalyticsCreateJobWizardDetailsStep${s?" active":""}${o?" summary":""}`;return Object(h.jsx)(d.EuiForm,{className:"mlDataFrameAnalyticsCreateForm","data-test-subj":r},s&&Object(h.jsx)(Uf,{actions:e,state:t,setCurrentStep:a}),o&&Object(h.jsx)(Bf,{setCurrentStep:a,state:t}))},qf=({checksInProgress:e,validationMessages:t,setCurrentStep:a})=>{const i=t.map(((e,t)=>Object(h.jsx)(Hl,m()({key:`${e.id}_${t}`},e))));return Object(h.jsx)(s.a.Fragment,null,e&&Object(h.jsx)(d.EuiLoadingSpinner,{size:"xl"}),!e&&Object(h.jsx)(s.a.Fragment,null,i,Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(_b,{isDisabled:!1,onClick:()=>{a(Hf.CREATE)}})))},$f=({setCurrentStep:e,state:t,validationSummary:a})=>{const{isJobCreated:i}=t,n=[{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.validatioinDetails.successfulChecks",{defaultMessage:"Successful checks"}),description:Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"s"},a.success)),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiIcon,{type:"check"}))))}],o=[{title:u.i18n.translate("xpack.ml.dataframe.analytics.create.validatioinDetails.warnings",{defaultMessage:"Warnings"}),description:Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"s"},a.warning)),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiIcon,{type:"warning"}))))}];return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{style:{width:"70%"}},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{compressed:!0,listItems:n})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiDescriptionList,{style:{wordBreak:"break-word"},compressed:!0,listItems:o}))),Object(h.jsx)(d.EuiSpacer,null),!i&&Object(h.jsx)(d.EuiButtonEmpty,{size:"s",onClick:()=>{e(Hf.VALIDATION)}},u.i18n.translate("xpack.ml.dataframe.analytics.create.validationDetails.viewButtonText",{defaultMessage:"View"})))},Wf=({state:e,setCurrentStep:t,step:a,stepActivated:i})=>{const[s,o]=Object(n.useState)(!1),[r,l]=Object(n.useState)([]),[c,p]=Object(n.useState)(),{form:m,jobConfig:b,isAdvancedEditorEnabled:f}=e,{dependentVariable:g,jobType:j,trainingPercent:x,numTopFeatureImportanceValues:v,numTopClasses:y,includes:O}=m,E=a===Hf.VALIDATION,w=a!==Hf.VALIDATION&&!0===i,{dataFrameAnalytics:{validateDataFrameAnalytics:M}}=Object(Te.c)(),S=`mlAnalyticsCreateJobWizardValidationStepWrapper${E?" active":""}${w?" summary":""}`,_=Object(Ue.debounce)((async()=>{o(!0);try{const e=f?b:Object(mb.f)(m),t=await M(e);l(t),p(void 0),o(!1)}catch(e){p({heading:u.i18n.translate("xpack.ml.dataframe.analytics.validation.validationFetchErrorMessage",{defaultMessage:"Error validating job"}),id:"error",status:Vl.c.ERROR,text:Object(ei.b)(e)}),o(!1)}}),500);Object(n.useEffect)((function(){void 0===j||!E&&!0!==i||_()}),[E,g,x,v,y,O]),void 0!==c&&r.push(c);const T=Object(n.useMemo)((()=>r.reduce(((e,t)=>((null==t?void 0:t.status)===Vl.c.WARNING?e.warning+=1:(null==t?void 0:t.status)===Vl.c.SUCCESS&&(e.success+=1),e)),{warning:0,success:0})),[r]);return Object(h.jsx)(d.EuiForm,{className:"mlDataFrameAnalyticsCreateForm","data-test-subj":S},E&&Object(h.jsx)(qf,{checksInProgress:s,validationMessages:r,setCurrentStep:t}),w&&Object(h.jsx)($f,{setCurrentStep:t,state:e,validationSummary:T}))};let Hf;!function(e){e[e.CONFIGURATION=0]="CONFIGURATION",e[e.ADVANCED=1]="ADVANCED",e[e.DETAILS=2]="DETAILS",e[e.VALIDATION=3]="VALIDATION",e[e.CREATE=4]="CREATE"}(Hf||(Hf={}));const Yf=({jobId:e})=>{const[t,a]=Object(n.useState)(Hf.CONFIGURATION),[i,s]=Object(n.useState)([!0,!1,!1,!1,!1]),{selectedDataView:o}=Yn(),r=Object(ub.b)(),{state:l}=r,{isAdvancedEditorEnabled:c,disableSwitchToForm:p,isJobCreated:b}=l,{jobType:f}=l.form,{initiateWizard:j,setJobClone:x,switchToAdvancedEditor:v,switchToForm:y}=r.actions;Object(n.useEffect)((()=>{j(),o&&async function(){if(void 0!==e){const t=await Je.ml.dataFrameAnalytics.getDataFrameAnalytics(e,!0);if(Array.isArray(t.data_frame_analytics)&&t.data_frame_analytics.length>0){const e=t.data_frame_analytics[0];await x(e)}}}()}),[]),Object(n.useEffect)((()=>{!1===i[t]&&(i.splice(t,1,!0),s(i))}),[t]);const O=[{title:u.i18n.translate("xpack.ml.dataframe.analytics.creation.configurationStepTitle",{defaultMessage:"Configuration"}),children:Object(h.jsx)(Tf,m()({},r,{isClone:void 0!==e,setCurrentStep:a,step:t,stepActivated:i[Hf.CONFIGURATION]})),status:t>=Hf.CONFIGURATION?void 0:"incomplete"},{title:u.i18n.translate("xpack.ml.dataframe.analytics.creation.advancedStepTitle",{defaultMessage:"Additional options"}),children:Object(h.jsx)(zf,m()({},r,{setCurrentStep:a,step:t,stepActivated:i[Hf.ADVANCED]})),status:t>=Hf.ADVANCED?void 0:"incomplete"},{title:u.i18n.translate("xpack.ml.dataframe.analytics.creation.detailsStepTitle",{defaultMessage:"Job details"}),children:Object(h.jsx)(Gf,m()({},r,{setCurrentStep:a,step:t,stepActivated:i[Hf.DETAILS]})),status:t>=Hf.DETAILS?void 0:"incomplete"},{title:u.i18n.translate("xpack.ml.dataframe.analytics.creation.validationStepTitle",{defaultMessage:"Validation"}),children:Object(h.jsx)(Wf,m()({},r,{setCurrentStep:a,step:t,stepActivated:i[Hf.VALIDATION]})),status:t>=Hf.VALIDATION?void 0:"incomplete"},{title:u.i18n.translate("xpack.ml.dataframe.analytics.creation.createStepTitle",{defaultMessage:"Create"}),children:Object(h.jsx)(xb,m()({},r,{step:t})),status:t>=Hf.CREATE?void 0:"incomplete"}];return Object(h.jsx)("div",{"data-test-subj":"mlAnalyticsCreationContainer"},Object(h.jsx)(vn.a,null,Object(h.jsx)("span",{"data-test-subj":"mlDataFrameAnalyticsWizardHeaderTitle"},void 0===e&&Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.creationPageTitle",defaultMessage:"Create job"}),void 0!==e&&Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.clone.creationPageTitle",defaultMessage:"Clone job from {jobId}",values:{jobId:e}}))),Object(h.jsx)(d.EuiPageBody,{restrictWidth:1200},Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFlexGroup,{direction:"column",gutterSize:"none"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analytics.creationPageSourceIndexTitle",defaultMessage:"Source data view: {dataViewTitle}",values:{dataViewTitle:o.title}}))))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFormRow,{helpText:p&&u.i18n.translate("xpack.ml.dataframe.analytics.create.jsonEditorDisabledSwitchText",{defaultMessage:"Configuration contains advanced fields not supported by the form. You cannot switch back to the form."})},Object(h.jsx)(d.EuiSwitch,{disabled:void 0===f||p||b,label:u.i18n.translate("xpack.ml.dataframe.analytics.create.switchToJsonEditorSwitch",{defaultMessage:"Switch to json editor"}),checked:c,onChange:e=>{!0===e.target.checked?v():y()},"data-test-subj":"mlAnalyticsCreateJobWizardAdvancedEditorSwitch"})))),Object(h.jsx)(d.EuiSpacer,null),!0===c&&Object(h.jsx)(vb,r),!1===c&&Object(h.jsx)(d.EuiSteps,{"data-test-subj":"mlAnalyticsCreateJobWizardSteps",steps:O})))},Xf=(e,t)=>({path:Object(Ee.c)(te.a.DATA_FRAME_ANALYTICS_CREATE_JOB),render:(e,t)=>Object(h.jsx)(Qf,m()({},e,{deps:t})),title:u.i18n.translate("xpack.ml.dataFrameAnalytics.createJob.docTitle",{defaultMessage:"Create Job"}),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("DATA_FRAME_ANALYTICS_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.dataFrameAnalyticsBreadcrumbs.dataFrameCreationLabel",{defaultMessage:"Create Job"})}]}),Qf=({location:e})=>{const{index:t,jobId:a,savedSearchId:i}=Object(qn.parse)(e.search,{sort:!1}),{services:{data:{dataViews:n},savedSearch:s}}=Object(Te.d)(),{context:o}=Ie("full",["canGetDataFrameAnalytics","canCreateDataFrameAnalytics"],{...Sn(),analyticsFields:()=>Hc(t,i,n,s,"data-frame-analytics")});return Object(h.jsx)(Ee.b,{context:o},Object(h.jsx)(Hn,null,Object(h.jsx)(Yf,{jobId:a})))},Kf=()=>{var e,t;const[a,i]=Object(ze.d)("_g"),o=null==a||null===(e=a.ml)||void 0===e?void 0:e.jobId,r=null==a||null===(t=a.ml)||void 0===t?void 0:t.modelId,[l,c]=Object(n.useState)(!1),[u,p]=Object(n.useState)(!o&&!r),[m,b]=Object(n.useState)(!0),{refresh:f}=Object(Au.n)({isLoading:c}),j=Object(n.useCallback)((e=>{i({ml:{...e.job_id&&!e.model_id?{jobId:e.job_id}:{},...e.model_id?{modelId:e.model_id}:{}}})}),[i]),{services:{docLinks:x}}=Object(Te.d)(),{dataFrameAnalytics:{getDataFrameAnalytics:v}}=Object(Te.c)(),y=x.links.ml.dataFrameAnalytics;return Object(n.useEffect)((function(){(async()=>{try{const{count:e}=await v(void 0,void 0,0);b(e>0)}catch(e){console.error("Error checking analytics jobs exist",e)}})()}),[]),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(rb,{setIsIdSelectorFlyoutVisible:p,selectedId:null!=o?o:r}),u?Object(h.jsx)(ob,{setAnalyticsId:j,setIsIdSelectorFlyoutVisible:p}):null,void 0===o&&void 0===r?Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{"data-test-subj":"mlPageDataFrameAnalyticsMapTitle",id:"xpack.ml.dataframe.analyticsMap.title",defaultMessage:"Map for Analytics"})):null,void 0!==o&&void 0===r?Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{"data-test-subj":"mlPageDataFrameAnalyticsMapTitle",id:"xpack.ml.dataframe.analyticsMap.analyticsIdTitle",defaultMessage:"Map for job ID {jobId}",values:{jobId:o}})):null,void 0!==r&&void 0===o?Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{"data-test-subj":"mlPageDataFrameAnalyticsMapTitle",id:"xpack.ml.dataframe.analyticsMap.modelIdTitle",defaultMessage:"Map for trained model ID {modelId}",values:{modelId:r}})):null,Object(h.jsx)(un.b,null),Object(h.jsx)(mn.a,{onCloseFlyout:f}),Object(h.jsx)(bn.a,null),o||r?Object(h.jsx)(ep.a,{key:`${null!=o?o:r}-id`,analyticsId:o,modelId:r,forceRefresh:l}):!1===m?Object(h.jsx)(Yu.a,null):Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiEmptyPrompt,{iconType:"warning",title:Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.noJobSelectedLabel",defaultMessage:"No Analytics ID selected"})),"data-test-subj":"mlNoAnalyticsFound"})),Object(h.jsx)(_e.a,{docLink:y}))},Zf=(e,t)=>({path:Object(Ee.c)(te.a.DATA_FRAME_ANALYTICS_MAP),render:()=>Object(h.jsx)(eg,null),title:u.i18n.translate("xpack.ml.dataFrameAnalytics.analyticsMap.docTitle",{defaultMessage:"Analytics Map"}),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("DATA_FRAME_ANALYTICS_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.dataFrameAnalyticsBreadcrumbs.analyticsMapLabel",{defaultMessage:"Analytics Map"})}],enableDatePicker:!0,"data-test-subj":"mlPageAnalyticsMap"}),eg=()=>{const{context:e}=Ie("full",["canGetDataFrameAnalytics"],Sn());return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(Kf,null))};var tg=a(54);const ag=()=>{const{services:{savedSearch:e,data:{dataViews:t},contentManagement:a,uiSettings:i}}=Object(Te.d)(),o=Object(Te.h)(),[r,l]=Object(n.useState)(!1),[c,p]=Object(n.useState)(),m=Object(qe.c)();return Object(h.jsx)("div",{"data-test-subj":"mlDFAPageSourceSelection"},Object(h.jsx)(d.EuiPageBody,{restrictWidth:1200},Object(h.jsx)(d.EuiPageContent_Deprecated,{hasShadow:!1,hasBorder:!0},r&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiCallOut,{"data-test-subj":"analyticsCreateSourceIndexModalCcsErrorCallOut",title:u.i18n.translate("xpack.ml.dataFrame.analytics.create.searchSelection.CcsErrorCallOutTitle",{defaultMessage:"Data views using cross-cluster search are not supported."}),color:"danger"},"string"==typeof c&&Object(h.jsx)("p",null,c)),Object(h.jsx)(d.EuiSpacer,{size:"m"})),Object(h.jsx)(Cn.SavedObjectFinder,{key:"searchSavedObjectFinder",onChoose:async(a,i,n,s)=>{let r="";if("index-pattern"===i)r=Object(tg.a)(s,"attributes.title");else if("search"===i)try{var c,d;r=null!==(c=null===(d=(await Object(He.a)({savedSearchService:e,dataViewsService:t})(a)).dataView)||void 0===d?void 0:d.title)&&void 0!==c?c:""}catch(e){return void m.displayErrorToast(e,u.i18n.translate("xpack.ml.dataFrame.analytics.create.searchSelection.errorGettingDataViewTitle",{defaultMessage:"Error loading data view used by the saved search"}))}if(Object(He.f)(r))return l(!0),void p("search"===i?u.i18n.translate("xpack.ml.dataFrame.analytics.create.searchSelection.CcsErrorCallOutBody",{defaultMessage:"The saved search '{savedSearchTitle}' uses the data view '{dataViewName}'.",values:{savedSearchTitle:Object(tg.a)(s,"attributes.title"),dataViewName:r}}):void 0);await o(`/data_frame_analytics/new_job?${"index-pattern"===i?"index":"savedSearchId"}=${encodeURIComponent(a)}`)},showFilter:!0,noItemsMessage:u.i18n.translate("xpack.ml.dataFrame.analytics.create.searchSelection.notFoundLabel",{defaultMessage:"No matching indices or saved searches found."}),savedObjectMetaData:[{type:"search",getIconForSavedObject:()=>"search",name:u.i18n.translate("xpack.ml.dataFrame.analytics.create.searchSelection.savedObjectType.search",{defaultMessage:"Saved search"})},{type:"index-pattern",getIconForSavedObject:()=>"indexPatternApp",name:u.i18n.translate("xpack.ml.dataFrame.analytics.create.searchSelection.savedObjectType.indexPattern",{defaultMessage:"Data view"})}],fixedPageSize:20,services:{contentClient:a.client,uiSettings:i}}))))},ig=()=>{const{services:{docLinks:e}}=Object(Te.d)(),t=e.links.ml.dataFrameAnalytics;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataframe.analyticsSourceSelection.title",defaultMessage:"New analytics job / Choose a source data view"})),Object(h.jsx)(ag,null),Object(h.jsx)(_e.a,{docLink:t}))},ng=(e,t)=>({path:Object(Ee.c)(te.a.DATA_FRAME_ANALYTICS_SOURCE_SELECTION),render:()=>Object(h.jsx)(sg,null),title:u.i18n.translate("xpack.ml.dataFrameAnalytics.sourceSelection.docTitle",{defaultMessage:"Source Selection"}),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("DATA_FRAME_ANALYTICS_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.dataFrameAnalyticsBreadcrumbs.dataFrameSourceSelectionLabel",{defaultMessage:"Source Selection"})}]}),sg=()=>{const{context:e}=Ie("full",["canGetDataFrameAnalytics"],Sn());return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(ig,null))};var og=a(82),rg=a(195);const lg=()=>{const{services:e}=Object(Te.d)(),{selectedDataView:t,selectedSavedSearch:a}=Yn();return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(d.EuiFlexGroup,{responsive:!1,wrap:!1,alignItems:"center",gutterSize:"m"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.logRateAnalysis.pageHeader",defaultMessage:"Log rate analysis"})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(rg.a,null)))),t&&Object(h.jsx)(og.LogRateAnalysis,{stickyHistogram:!1,dataView:t,savedSearch:a,appDependencies:Object(Ue.pick)(e,["application","data","executionContext","charts","fieldFormats","http","notifications","share","storage","uiSettings","unifiedSearch","theme","lens","i18n"])}),Object(h.jsx)(_e.a,{docLink:e.docLinks.links.ml.guide}))},cg=(e,t)=>({id:"log_rate_analysis",path:Object(Ee.c)(te.a.AIOPS_LOG_RATE_ANALYSIS),title:u.i18n.translate("xpack.ml.aiops.logRateAnalysis.docTitle",{defaultMessage:"Log rate analysis"}),render:()=>Object(h.jsx)(pg,null),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("AIOPS_BREADCRUMB_LOG_RATE_ANALYSIS",e,t),{text:u.i18n.translate("xpack.ml.aiopsBreadcrumbs.logRateAnalysisLabel",{defaultMessage:"Log rate analysis"})}]}),dg=()=>({path:Object(Ee.c)(te.a.AIOPS_EXPLAIN_LOG_RATE_SPIKES),render:()=>Object(h.jsx)(ug,null),breadcrumbs:[]}),ug=()=>{const e=Object(r.useLocation)();return Object(h.jsx)(r.Redirect,{to:{pathname:Object(Ee.c)(te.a.AIOPS_LOG_RATE_ANALYSIS),search:`${e.search}`}})},pg=()=>{const{context:e}=Ie("full",["canUseAiops"]);return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(Hn,null,Object(h.jsx)(lg,null)))},mg=()=>{const{services:e}=Object(Te.d)(),{selectedDataView:t,selectedSavedSearch:a}=Yn();return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(d.EuiFlexGroup,{responsive:!1,wrap:!1,alignItems:"center",gutterSize:"m"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.logCategorization.pageHeader",defaultMessage:"Log pattern analysis"})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(rg.a,null)))),t&&Object(h.jsx)(og.LogCategorization,{dataView:t,savedSearch:a,appDependencies:Object(Ue.pick)(e,["application","data","executionContext","charts","fieldFormats","http","notifications","share","storage","uiSettings","unifiedSearch","theme","lens","i18n"])}),Object(h.jsx)(_e.a,{docLink:e.docLinks.links.ml.guide}))},bg=(e,t)=>({id:"log_categorization",path:Object(Ee.c)(te.a.AIOPS_LOG_CATEGORIZATION),title:u.i18n.translate("xpack.ml.aiops.logCategorization.docTitle",{defaultMessage:"Log Pattern Analysis"}),render:()=>Object(h.jsx)(fg,null),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("AIOPS_BREADCRUMB_LOG_PATTERN_ANALYSIS",e,t),{text:u.i18n.translate("xpack.ml.aiops.logCategorization.docTitle",{defaultMessage:"Log Pattern Analysis"})}]}),fg=()=>{const{context:e}=Ie("full",["canUseAiops"]);return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(Hn,null,Object(h.jsx)(mg,null)))};var gg=a(87);const hg=()=>{const{services:e}=Object(Te.d)(),{selectedDataView:t,selectedSavedSearch:a}=Yn();return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(d.EuiFlexGroup,{responsive:!1,wrap:!1,alignItems:"center",gutterSize:"m"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.changePointDetection.pageHeader",defaultMessage:"Change point detection"})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(rg.a,null)))),t?Object(h.jsx)(og.ChangePointDetection,{dataView:t,savedSearch:a,appDependencies:{...Object(Ue.pick)(e,["application","data","executionContext","charts","fieldFormats","http","notifications","share","storage","uiSettings","unifiedSearch","theme","lens","presentationUtil","embeddable","cases","i18n"]),fieldStats:{useFieldStatsTrigger:fs.h,FieldStatsFlyoutProvider:fs.d}}}):null,Object(h.jsx)(_e.a,{docLink:e.docLinks.links.aggs.change_point,appName:u.i18n.translate("xpack.ml.changePointDetection.pageHeader",{defaultMessage:"Change point detection"})}))},jg=(e,t)=>({id:"change_point_detection",path:Object(Ee.c)(te.a.AIOPS_CHANGE_POINT_DETECTION),title:u.i18n.translate("xpack.ml.aiops.changePointDetection.docTitle",{defaultMessage:"Change point detection"}),render:()=>Object(h.jsx)(xg,null),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("AIOPS_BREADCRUMB_CHANGE_POINT_DETECTION",e,t),{text:u.i18n.translate("xpack.ml.aiopsBreadcrumbs.changePointDetectionLabel",{defaultMessage:"Change point detection"})}],disabled:!gg.CHANGE_POINT_DETECTION_ENABLED}),xg=()=>{const{context:e}=Ie("full",["canUseAiops"]);return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(Hn,null,Object(h.jsx)(hg,null)))};var vg=a(624),yg=a.n(vg);function Og(e){const t=e.analysis_config.detectors,a=[];return t.forEach(((t,i)=>{Object(Gt.q)(e,i)&&a.push({index:i,detector_description:t.detector_description,function:t.function})})),a}var Eg=a(3);const wg=()=>Object(h.jsx)(Gm,{anchorPosition:"upCenter",title:u.i18n.translate("xpack.ml.timeSeriesExplorer.popoverTitle",{defaultMessage:"Single time series analysis"})},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.popoverBasicExplanation",defaultMessage:"This chart illustrates the actual data values over time for a specific detector. You can examine an event by sliding the time selector and changing its length. For the most accurate view, set the zoom size to auto."})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.popoverAnomalyExplanation",defaultMessage:"An anomaly score is calculated for each bucket time interval, with a value from 0 to 100. Anomalous events are highlighted in colors that indicate their severity. If an anomaly is depicted with a cross symbol instead of a dot, it has a moderate, significant, or high multi-bucket impact. This extra analysis can catch anomalies even when they fall within the bounds of expected behavior."})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.popoverForecastExplanation",defaultMessage:"If you create a forecast, predicted data values are added to the chart. A shaded area around these values represents the confidence level; as you forecast further into the future, the confidence level generally decreases."})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.popoverAnnotationsExplanation",defaultMessage:"You can also optionally annotate your job results by drag-selecting a period of time in the chart and adding a description. Some annotations are generated automatically to indicate noteworthy occurrences."})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.popoverModelPlotExplanation",defaultMessage:"If model plot is enabled, you can optionally show model bounds, which are represented by a shaded area in the chart. As the job analyzes more data, it learns to more closely predict the expected patterns of behavior."})));var Mg=a(224);function Sg({actual:e,typical:t}){const{iconType:a,message:i}=Object(Mg.a)(e,t);return Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"s",alignItems:"center"},void 0!==a&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiIcon,{type:a,size:"s"})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"xs"},i)))}function _g({detectorDescription:e,numberOfRules:t}){let a;return void 0!==t&&t>0&&(a=Object(h.jsx)(d.EuiToolTip,{content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.detectorCell.rulesConfiguredTooltip",defaultMessage:"rules have been configured for this detector"})},Object(h.jsx)(d.EuiIcon,{type:"controlsHorizontal",className:"detector-rules-icon"}))),Object(h.jsx)(s.a.Fragment,null,e,a)}var Tg=a(193);function Cg({entityName:e,entityValue:t,filter:a}){if(void 0!==a)return Object(h.jsx)(d.EuiToolTip,{content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.entityCell.addFilterTooltip",defaultMessage:"Add filter"})},Object(h.jsx)(d.EuiButtonIcon,{size:"s","data-test-subj":`mlAnomaliesTableEntityCellAddFilterButton-${t}`,className:"filter-button",onClick:Object(ai.a)((()=>{a(e,t,la.m.ADD)})),iconType:"plusInCircle","aria-label":u.i18n.translate("xpack.ml.anomaliesTable.entityCell.addFilterAriaLabel",{defaultMessage:"Add filter"})}))}function kg({entityName:e,entityValue:t,filter:a}){if(void 0!==a)return Object(h.jsx)(d.EuiToolTip,{content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.entityCell.removeFilterTooltip",defaultMessage:"Remove filter"})},Object(h.jsx)(d.EuiButtonIcon,{size:"s","data-test-subj":`mlAnomaliesTableEntityCellRemoveFilterButton-${t}`,className:"filter-button",onClick:Object(ai.a)((()=>{a(e,t,la.m.REMOVE)})),iconType:"minusInCircle","aria-label":u.i18n.translate("xpack.ml.anomaliesTable.entityCell.removeFilterAriaLabel",{defaultMessage:"Remove filter"})}))}const Fg=({entityName:e,entityValue:t,filter:a,wrapText:i=!1})=>{let n=""===t?Object(h.jsx)("i",null,Tg.a):t;e===la.e&&(n=`${la.e} ${n}`);const o=i?"field-value-long":"field-value-short",r=void 0!==a&&void 0!==e&&void 0!==t;return!0===i?Object(h.jsx)("div",null,Object(h.jsx)("span",{className:o},n),r&&Object(h.jsx)(s.a.Fragment,null,Cg({entityName:e,entityValue:t,filter:a}),kg({entityName:e,entityValue:t,filter:a}))):Object(h.jsx)(d.EuiFlexGroup,{direction:"row",alignItems:"center",gutterSize:"none"},Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{maxWidth:"100%"}},Object(h.jsx)(d.EuiText,{size:"xs",className:o},n)),r&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFlexGroup,{direction:"row",alignItems:"center",gutterSize:"none"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Cg({entityName:e,entityValue:t,filter:a})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},kg({entityName:e,entityValue:t,filter:a})))))};class influencers_cell_InfluencersCell extends n.Component{constructor(e){super(e),this.state={showAll:!1}}toggleAllInfluencers(){this.setState({showAll:!this.state.showAll})}renderInfluencers(e){const t=!1===this.state.showAll?this.props.limit:e.length,a=e.slice(0,t),{influencerFilter:i}=this.props;let n=Math.max(e.length-t,0);1===n&&(a.push(e[this.props.limit]),n=0);const o=a.map(((e,t)=>Object(h.jsx)("div",{key:t},e.influencerFieldName,": ",e.influencerFieldValue,void 0!==i&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiToolTip,{content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.influencersCell.addFilterTooltip",defaultMessage:"Add filter"})},Object(h.jsx)(d.EuiButtonIcon,{size:"s",className:"filter-button",onClick:Object(ai.a)((()=>{i(e.influencerFieldName,e.influencerFieldValue,"+")})),iconType:"plusInCircle","aria-label":u.i18n.translate("xpack.ml.anomaliesTable.influencersCell.addFilterAriaLabel",{defaultMessage:"Add filter"})})),Object(h.jsx)(d.EuiToolTip,{content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.influencersCell.removeFilterTooltip",defaultMessage:"Remove filter"})},Object(h.jsx)(d.EuiButtonIcon,{size:"s",className:"filter-button",onClick:Object(ai.a)((()=>{i(e.influencerFieldName,e.influencerFieldValue,"-")})),iconType:"minusInCircle","aria-label":u.i18n.translate("xpack.ml.anomaliesTable.influencersCell.removeFilterAriaLabel",{defaultMessage:"Remove filter"})}))))));return Object(h.jsx)(s.a.Fragment,null,o,this.renderOthers(e.length,n))}renderOthers(e,t){return t>0?Object(h.jsx)("div",null,Object(h.jsx)(d.EuiLink,{onClick:()=>this.toggleAllInfluencers()},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.influencersCell.moreInfluencersLinkText",defaultMessage:"and {othersCount} more",values:{othersCount:t}}))):e>this.props.limit+1?Object(h.jsx)("div",null,Object(h.jsx)(d.EuiLink,{onClick:()=>this.toggleAllInfluencers()},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.influencersCell.showLessInfluencersLinkText",defaultMessage:"show less"}))):void 0}render(){const e=this.props.influencers||[],t=[];return e.forEach((e=>{Object(Ue.each)(e,((e,a)=>{t.push({influencerFieldName:a,influencerFieldValue:e})}))})),Object(h.jsx)("div",null,this.renderInfluencers(t),this.renderOthers(t))}}var Ig=a(68),Dg=a(83),Ag=a(165);const Lg=e=>{const[t,a]=Object(n.useState)(),[i,s]=Object(n.useState)(),o=Object(la.D)(e.anomaly),r=e.onItemClick,l=Object(Te.d)(),{services:{data:c,share:p,application:m}}=l,b=Object(n.useMemo)((()=>Ge.a.getJob(e.anomaly.jobId)),[e.anomaly.jobId]);Object(n.useEffect)((()=>{let t=!1;const i=p.url.locators.get("DISCOVER_APP_LOCATOR");if(!i){const e=u.i18n.translate("xpack.ml.anomaliesTable.linksMenu.discoverLocatorMissingErrorMessage",{defaultMessage:"No locator for Discover detected"});return void(t||s(e))}const n=async()=>{const e=b.datafeed_config.indices[0],a=await Object(He.c)(e);if(!a&&!t){const t=u.i18n.translate("xpack.ml.anomaliesTable.linksMenu.autoGeneratedDiscoverLinkErrorMessage",{defaultMessage:"Unable to link to Discover; no data view exists for index '{index}'",values:{index:e}});s(t)}return a};return o?n():(async()=>{const s=e.interval,o=await n(),r=e.anomaly.source,l=bt()(r.timestamp).startOf(s);"hour"===s&&l.subtract(1,"h");const c=bt()(r.timestamp).add(r.bucket_span,"s");!0===e.isAggregatedData&&("hour"===s&&c.add(1,"h"),c.subtract(1,"ms").endOf(s));const d=Object(ft.e)(1e3*l.unix()),u=Object(ft.e)(1e3*c.unix());let p="";r.influencers&&(p=r.influencers.map((e=>{var t;return`"${e.influencer_field_name}":"${null!==(t=e.influencer_field_values[0])&&void 0!==t?t:""}"`})).join(" AND "));const m=await i.getRedirectUrl({indexPatternId:o,timeRange:{from:d,to:u,mode:"absolute"},query:{language:"kuery",query:p},filters:null===o?[]:Object(Gt.i)(b.datafeed_config.query,o,b.job_id)});t||a(m)})(),()=>{t=!0}}),[JSON.stringify(e.anomaly)]);const f=async()=>{const t=p.url.locators.get(Fe.a),a=e.anomaly.source,i=e.bounds;if(!t)return void console.error("Unable to detect locator for ML or bounds");if(!i||!i.min||!i.max)return void console.error("Invalid bounds");const n=i.min.toISOString(),s=i.max.toISOString(),o=bt()(a.timestamp),r=o.subtract(50*a.bucket_span,"s").toISOString(),l=o.add(100*a.bucket_span,"s").toISOString(),c={};void 0!==a.partition_field_name&&void 0!==a.partition_field_value&&(c[a.partition_field_name]=a.partition_field_value),void 0!==a.over_field_name&&void 0!==a.over_field_value&&(c[a.over_field_name]=a.over_field_value),void 0!==a.by_field_name&&void 0!==a.by_field_value&&(c[a.by_field_name]=a.by_field_value);const d=await t.getUrl({page:Fe.b.SINGLE_METRIC_VIEWER,pageState:{jobIds:[a.job_id],refreshInterval:{display:"Off",pause:!0,value:0},timeRange:{from:n,to:s,mode:"absolute"},zoom:{from:r,to:l},detectorIndex:a.detector_index,entities:c,query_string:{analyze_wildcard:!0,query:"*"}}},{absolute:!0});window.open(d,"_blank")},j=()=>{const t=e.anomaly.entityValue,a=e.anomaly.source;if(void 0===b){console.log(`viewExamples(): no job found with ID: ${e.anomaly.jobId}`);const{toasts:t}=l.services.notifications;return void t.addDanger(u.i18n.translate("xpack.ml.anomaliesTable.linksMenu.unableToViewExamplesErrorMessage",{defaultMessage:"Unable to view examples as no details could be found for job ID {jobId}",values:{jobId:e.anomaly.jobId}}))}const i=b.analysis_config.categorization_field_name,n=b.datafeed_config.indices;let s=0;!function e(t){(function(e,t){return new Promise(((a,i)=>{""!==e?Je.ml.getFieldCaps({index:e,fields:[t]}).then((e=>{let t="";Object(Ue.each)(e.fields,(e=>{Object(Ue.each)(e,(e=>{""===t&&(t=e.type)}))})),a(t)})).catch((e=>{i(e)})):i()}))})(t,i).then((t=>{""!==t?r(n.join(),t):(s++,s{o()}))}(n[s]);const o=()=>{console.log(`viewExamples(): error finding type of field ${i} in indices:`,n);const{toasts:e}=l.services.notifications;e.addDanger(u.i18n.translate("xpack.ml.anomaliesTable.linksMenu.noMappingCouldBeFoundErrorMessage",{defaultMessage:"Unable to view examples of documents with mlcategory {categoryId} as no mapping could be found for the categorization field {categorizationFieldName}",values:{categoryId:t,categorizationFieldName:i}}))},r=(e,n)=>{Je.ml.results.getCategoryDefinition(a.job_id,t).then((async t=>{const s=await Object(He.c)(e);if(!s)return;let o=null;if(n===ma.a.KEYWORD)t.regex&&(o={language:ba.b.LUCENE,query:`${i}:/${t.regex}/`});else if(t.terms){const e=Object(em.b)(t.terms);o={language:ba.b.KUERY,query:`${i}:"`+e.split(" ").join(`" and ${i}:"`)+'"'}}const r=bt()(a.timestamp),c=r.toISOString(),d=r.add(a.bucket_span,"s").toISOString(),u=fp.a.encode({refreshInterval:{display:"Off",pause:!0,value:0},time:{from:c,to:d,mode:"absolute"}}),p={index:s,filters:Object(Gt.i)(b.datafeed_config.query,s,b.job_id),...null!==o?{query:o}:{}},m=fp.a.encode(p),{basePath:f}=l.services.http;let g=f.get();g+="/app/discover#/",g+="?_g="+u,g+="&_a="+encodeURIComponent(m),window.open(g,"_blank")})).catch((e=>{console.log("viewExamples(): error loading categoryDefinition:",e);const{toasts:a}=l.services.notifications;a.addDanger(u.i18n.translate("xpack.ml.anomaliesTable.linksMenu.loadingDetailsErrorMessage",{defaultMessage:"Unable to view examples as an error occurred loading details on category ID {categoryId}",values:{categoryId:t}}))}))}},{anomaly:x,showViewSeriesLink:v}=e,y=Object(Se.f)("canUpdateJob"),O=Object(la.G)(x.source)&&y,E=Object(n.useMemo)((()=>{var a,n,s;const y=[];if(void 0!==x.customUrls&&x.customUrls.forEach(((t,a)=>{y.push(Object(h.jsx)(d.EuiContextMenuItem,{key:`custom_url_${a}`,icon:"popout",onClick:()=>{r(),(t=>{const{anomaly:a,interval:i,isAggregatedData:n}=e;console.log("Anomalies Table - open customUrl for record:",a);const s=Object(Ue.cloneDeep)(a.source),o=s.timestamp,r=t.url_value,c=void 0!==t.time_range?Object(Ke.a)(t.time_range):null,d=l.services.http.basePath.get();if(r.includes("$earliest$")){let e=bt()(o);null!==c?e.subtract(c):(e=bt()(o).startOf(i),"hour"===i&&e.subtract(1,"h")),s.earliest=e.toISOString()}if(r.includes("$latest$")){const e=bt()(o).add(s.bucket_span,"s");null!==c?e.add(c):!0===n&&("hour"===i&&e.add(1,"h"),e.subtract(1,"ms").endOf(i)),s.latest=e.toISOString()}if((r.includes("$mlcategoryterms$")||r.includes("$mlcategoryregex$"))&&void 0!==s.mlcategory){const e=s.job_id,a=s.mlcategory[0];Je.ml.results.getCategoryDefinition(e,a).then((e=>{const a=e.terms.split(" ").map((e=>`+${e}`));s.mlcategoryterms=a.join(" "),s.mlcategoryregex=e.regex;const i=Object(We.f)(t.url_value,s,!0);Object(Wp.d)(i,t,d)})).catch((e=>{console.log("openCustomUrl(): error loading categoryDefinition:",e);const{toasts:t}=l.services.notifications;t.addDanger(u.i18n.translate("xpack.ml.anomaliesTable.linksMenu.unableToOpenLinkErrorMessage",{defaultMessage:"Unable to open link as an error occurred loading details on category ID {categoryId}",values:{categoryId:a}}))}))}else{const e=Object(Wp.a)(t,s);Object(Wp.d)(e,t,d)}})(t)},"data-test-subj":`mlAnomaliesListRowActionCustomUrlButton_${a}`},t.url_name))})),null!==(a=m.capabilities.discover)&&void 0!==a&&a.show&&!o){const e=void 0===i&&void 0===t;y.push(Object(h.jsx)(d.EuiContextMenuItem,{key:"auto_raw_data_url",icon:"discoverApp",disabled:void 0!==i||e,href:t,"data-test-subj":"mlAnomaliesListRowAction_viewInDiscoverButton"},i?Object(h.jsx)(d.EuiToolTip,{content:i},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.linksMenu.viewInDiscover",defaultMessage:"View in Discover"})):Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.linksMenu.viewInDiscover",defaultMessage:"View in Discover"}),e?Object(h.jsx)(d.EuiProgress,{size:"xs",color:"accent"}):null))}return!0===v&&x.isTimeSeriesViewRecord&&y.push(Object(h.jsx)(d.EuiContextMenuItem,{key:"view_series",icon:"visLine",onClick:()=>{r(),f()},"data-test-subj":"mlAnomaliesListRowActionViewSeriesButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.linksMenu.viewSeriesLabel",defaultMessage:"View series"}))),null!==(n=m.capabilities.maps)&&void 0!==n&&n.show&&(!0===x.isGeoRecord?y.push(Object(h.jsx)(d.EuiContextMenuItem,{key:"view_in_maps",icon:"gisApp",onClick:async()=>{const e=await(async e=>{const t=b.datafeed_config.indices[0],a=await Object(He.c)(t),i=Object(Ag.c)(e.jobId),n=bt()(e.source.timestamp).tz(Object(em.f)()),s=n.toISOString(),o=n.add(e.source.bucket_span,"seconds").subtract(1,"ms").toISOString(),r=c.query.timefilter.timefilter.getTime();r.from=s,r.to=o;const l=p.url.locators.get(Dg.MAPS_APP_LOCATOR);return await(null==l?void 0:l.getLocation({initialLayers:i,timeRange:r,...e.entityName&&e.entityValue?{query:{language:ba.b.KUERY,query:Object(We.d)(e.entityName,e.entityValue)}}:{},filters:null===a?[]:Object(Gt.i)(b.datafeed_config.query,a,b.job_id)}))})(x);await m.navigateToApp(Ig.APP_ID,{path:null==e?void 0:e.path})},"data-test-subj":"mlAnomaliesListRowActionViewInMapsButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.linksMenu.viewInMapsLabel",defaultMessage:"View in Maps"}))):e.sourceIndicesWithGeoFields&&e.sourceIndicesWithGeoFields[x.jobId]&&y.push(Object(h.jsx)(d.EuiContextMenuItem,{key:"view_in_maps",icon:"gisApp",onClick:async()=>{const t=await(async(e,t)=>{const a=b.datafeed_config.indices[0],i=await Object(He.c)(a),n=Object(Ag.d)(t[e.jobId]),s=bt()(e.source.timestamp).tz(Object(em.f)()),o=s.subtract(e.source.bucket_span,"seconds").toISOString(),r=s.add(3*e.source.bucket_span,"seconds").subtract(1,"ms").toISOString(),l=c.query.timefilter.timefilter.getTime();l.from=o,l.to=r;const d=function(e=[],t){return e.reduce(((e,a)=>(Object.entries(a).filter((([e])=>e!==t)).forEach((([t,a])=>e.push(`${t}: ${a}`))),e)),[]).join(" or ")}(e.influencers,e.entityName),u=p.url.locators.get(Dg.MAPS_APP_LOCATOR),m=null===i?[]:Object(Gt.i)(b.datafeed_config.query,i,b.job_id);return await(null==u?void 0:u.getLocation({initialLayers:n,timeRange:l,filters:m.length>0?m:c.query.filterManager.getFilters(),...e.entityName&&e.entityValue?{query:{language:ba.b.KUERY,query:`${Object(We.d)(e.entityName,e.entityValue)}${""!==d?` and (${d})`:""}`}}:{}}))})(x,e.sourceIndicesWithGeoFields);await m.navigateToApp(Ig.APP_ID,{path:null==t?void 0:t.path})},"data-test-subj":"mlAnomaliesListRowActionViewSourceIndexInMapsButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.linksMenu.viewSourceIndexInMapsLabel",defaultMessage:"View source index in Maps"})))),null!==(s=m.capabilities.discover)&&void 0!==s&&s.show&&o&&y.push(Object(h.jsx)(d.EuiContextMenuItem,{key:"view_examples",icon:"popout",onClick:()=>{r(),j()},"data-test-subj":"mlAnomaliesListRowActionViewExamplesButton",disabled:void 0!==i},void 0!==i?Object(h.jsx)(d.EuiToolTip,{content:i},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.linksMenu.viewExamplesLabel",defaultMessage:"View examples"})):Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.linksMenu.viewExamplesLabel",defaultMessage:"View examples"}))),O&&y.push(Object(h.jsx)(d.EuiContextMenuItem,{key:"create_rule",icon:"controlsHorizontal",onClick:()=>{r(),e.showRuleEditorFlyout(x)},"data-test-subj":"mlAnomaliesListRowActionConfigureRulesButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.linksMenu.configureRulesLabel",defaultMessage:"Configure job rules"}))),y}),[t,i,j,f,O,o]);return Object(h.jsx)(d.EuiContextMenuPanel,{items:E,"data-test-subj":"mlAnomaliesListRowActionsMenu"})},Rg=e=>{const[t,a]=Object(n.useState)(!1),i=a.bind(null,!t),s=a.bind(null,!1),o=Object(h.jsx)(d.EuiButtonIcon,{size:"s",color:"text",onClick:i,iconType:"gear","aria-label":u.i18n.translate("xpack.ml.anomaliesTable.linksMenu.selectActionAriaLabel",{defaultMessage:"Select action for anomaly at {time}",values:{time:Object(ft.d)(e.anomaly.time)}}),"data-test-subj":"mlAnomaliesListRowActionsButton"});return Object(h.jsx)("div",null,Object(h.jsx)(d.EuiPopover,{button:o,isOpen:t,closePopover:s,panelPaddingSize:"none",anchorPosition:"downLeft"},Object(h.jsx)(Lg,m()({},e,{onItemClick:s}))))};var Ng=a(166),Pg=a(145);const zg=5,Bg={DETAILS:0,CATEGORY_EXAMPLES:1},Vg=500,Jg=Object(n.memo)((({score:e,isMultiBucketAnomaly:t})=>{const a=Object(la.y)(e),i=Object(la.A)(e);return t?Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs",alignItems:"center",responsive:!1},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)("svg",{width:"16",height:"16",viewBox:"-2 -2 20 20",fill:i},Object(h.jsx)("path",{d:"M-6.708203932499369,-2.23606797749979H-2.23606797749979V-6.708203932499369H2.23606797749979V-2.23606797749979H6.708203932499369V2.23606797749979H2.23606797749979V6.708203932499369H-2.23606797749979V2.23606797749979H-6.708203932499369Z",transform:"translate(8,8)"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},a)):Object(h.jsx)(d.EuiHealth,{color:i},a)}));function Ug(e,t,a){return Object(la.G)(e.source)&&Object(Se.d)("canUpdateJob")||t&&e.isTimeSeriesViewRecord||"mlcategory"===e.entityName||void 0!==e.customUrls||e.detector.includes(la.n.LAT_LONG)||e.sourceIndices&&e.sourceIndices((t=>void 0!==a[e.jobId][t]))}function Gg(e,t,a){return Object(h.jsx)(Fg,{entityName:e,entityValue:t,filter:a})}var qg={name:"educr3",styles:"width:180px"};const $g=({anomaly:e,filter:t,modelPlotEnabled:a})=>{const i=e.source;let n=[];const o=i.causes||[];let r,l;1===o.length?void 0!==o[0].by_field_name&&(r=o[0].by_field_name,l=o[0].by_field_value):n=o.map((e=>({typical:e.typical,actual:e.actual,probability:e.probability,entityName:e.by_field_name?e.by_field_name:e.over_field_name,entityValue:e.by_field_value?e.by_field_value:e.over_field_value})));const c=[];void 0!==i.partition_field_value&&void 0!==i.partition_field_name&&c.push({title:i.partition_field_name,description:Gg(i.partition_field_name,String(i.partition_field_value),t)}),void 0!==i.by_field_value&&void 0!==i.by_field_name&&c.push({title:i.by_field_name,description:Gg(i.by_field_name,i.by_field_value,t)}),void 0!==r&&void 0!==l&&c.push({title:r,description:Gg(r,l,t)}),void 0!==i.over_field_value&&void 0!==i.over_field_name&&c.push({title:i.over_field_name,description:Gg(i.over_field_name,i.over_field_value,t)});const p=i.timestamp;let m=`${Object(ft.d)(p)}`;if(void 0!==i.bucket_span){const e=p+1e3*i.bucket_span;m=u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyTimeRangeLabel",{defaultMessage:"{anomalyTime} to {anomalyEndTime}",values:{anomalyTime:Object(ft.d)(p),anomalyEndTime:Object(ft.d)(e)}})}c.push({title:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.timeTitle",{defaultMessage:"Time"}),description:m}),c.push({title:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.functionTitle",{defaultMessage:"Function"}),description:i.function!==la.n.METRIC?i.function:i.function_description}),void 0!==i.field_name&&c.push({title:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.fieldNameTitle",{defaultMessage:"Field name"}),description:i.field_name});const b=i.function_description||"";var f,g,j,x;return void 0!==e.actual&&!0===Object(la.K)(b)&&c.push({title:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.actualTitle",{defaultMessage:"Actual"}),description:Object(Pg.b)(e.actual,i.function,void 0,i)}),void 0!==e.typical&&!0===Object(la.L)(b)&&(c.push({title:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.typicalTitle",{defaultMessage:"Typical"}),description:Object(Pg.b)(e.typical,i.function,void 0,i)}),!1===a&&void 0!==(null===(f=e.source.anomaly_score_explanation)||void 0===f?void 0:f.lower_confidence_bound)&&void 0!==(null===(g=e.source.anomaly_score_explanation)||void 0===g?void 0:g.upper_confidence_bound)&&(c.push({title:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.upperBoundsTitle",{defaultMessage:"Upper bound"}),description:Object(Pg.b)(null===(j=e.source.anomaly_score_explanation)||void 0===j?void 0:j.upper_confidence_bound,i.function,void 0,i)}),c.push({title:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.lowerBoundsTitle",{defaultMessage:"Lower bound"}),description:Object(Pg.b)(null===(x=e.source.anomaly_score_explanation)||void 0===x?void 0:x.lower_confidence_bound,i.function,void 0,i)}))),c.push({title:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.jobIdTitle",{defaultMessage:"Job ID"}),description:e.jobId}),c.push({title:Object(h.jsx)(d.EuiToolTip,{position:"left",content:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.recordScoreTooltip",{defaultMessage:"A normalized score between 0-100, which indicates the relative significance of the anomaly record result. This value might change as new data is analyzed."})},Object(h.jsx)("span",null,u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.recordScoreTitle",{defaultMessage:"Record score"}),Object(h.jsx)(d.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),description:Math.floor(1e3*i.record_score)/1e3}),c.push({title:Object(h.jsx)(d.EuiToolTip,{position:"left",content:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.initialRecordScoreTooltip",{defaultMessage:"A normalized score between 0-100, which indicates the relative significance of the anomaly record when the bucket was initially processed."})},Object(h.jsx)("span",null,u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.initialRecordScoreTitle",{defaultMessage:"Initial record score"}),Object(h.jsx)(d.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),description:Math.floor(1e3*i.initial_record_score)/1e3}),c.push({title:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.probabilityTitle",{defaultMessage:"Probability"}),description:void 0!==i.probability?Number.parseFloat(i.probability).toPrecision(3):""}),n.length>1&&n.forEach(((e,t)=>{const a=0===t?u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.causeValuesTitle",{defaultMessage:"{causeEntityName} values",values:{causeEntityName:e.entityName}}):"",n=u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.causeValuesDescription",{defaultMessage:"{causeEntityValue} (actual {actualValue}, typical {typicalValue}, probability {probabilityValue})",values:{causeEntityValue:e.entityValue,actualValue:Object(Pg.b)(e.actual,i.function),typicalValue:Object(Pg.b)(e.typical,i.function),probabilityValue:e.probability}});c.push({title:a,description:n})})),Object(h.jsx)(s.a.Fragment,null,c.map((({title:e,description:t})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"none"},Object(h.jsx)(d.EuiFlexItem,{css:qg,grow:!1},e),Object(h.jsx)(d.EuiFlexItem,null,t)),Object(h.jsx)(d.EuiSpacer,{size:"xs"})))))};var Wg={name:"1q4vxyr",styles:"margin-left:8px"},Hg={name:"1v1nmsf",styles:"width:220px"};const Yg=({anomaly:e})=>{const{services:{docLinks:t}}=Object(Te.d)(),a=t.links.ml.anomalyDetectionScoreExplanation,i=e.source.anomaly_score_explanation;if(void 0===i)return null;const n=Math.floor(1e3*e.source.initial_record_score)/1e3,o=Math.floor(1e3*e.source.record_score)/1e3,r=n-o,l=u.i18n.translate("xpack.ml.anomaliesTable.anomalyExplanationDetails.yes",{defaultMessage:"Yes"}),c=u.i18n.translate("xpack.ml.anomaliesTable.anomalyExplanationDetails.no",{defaultMessage:"No"}),p=[],m=function(e){if(void 0===e||void 0===e.anomaly_length||void 0===e.anomaly_type)return null;const t=u.i18n.translate("xpack.ml.anomaliesTable.anomalyExplanationDetails.anomalyType.dip",{defaultMessage:"Dip over {anomalyLength, plural, one {# bucket} other {# buckets}}",values:{anomalyLength:e.anomaly_length}}),a=u.i18n.translate("xpack.ml.anomaliesTable.anomalyExplanationDetails.anomalyType.spike",{defaultMessage:"Spike over {anomalyLength, plural, one {# bucket} other {# buckets}}",values:{anomalyLength:e.anomaly_length}});return"dip"===e.anomaly_type?t:a}(i);null!==m&&p.push({title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.anomalyType",defaultMessage:"Anomaly type"}),description:Object(h.jsx)(s.a.Fragment,null,m)}),r>10&&p.push({title:Object(h.jsx)(d.EuiToolTip,{position:"left",content:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.recordScoreTooltip",{defaultMessage:"The initial record score has been reduced based on the analysis of subsequent data."})},Object(h.jsx)("span",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.recordScore",defaultMessage:"Record score reduction"}),Object(h.jsx)(d.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),description:Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Qg,{score:n})),Object(h.jsx)(d.EuiFlexItem,{grow:!1}," -> "),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Qg,{score:o})))});const b=[];return void 0!==i.anomaly_characteristics_impact&&b.push({title:Object(h.jsx)(d.EuiToolTip,{position:"left",content:Zg(i.anomaly_characteristics_impact,"anomaly_characteristics")},Object(h.jsx)("span",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.anomalyCharacteristics",defaultMessage:"Anomaly characteristics impact"}),Object(h.jsx)(d.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),description:Object(h.jsx)(eh,{score:i.anomaly_characteristics_impact})}),void 0!==i.single_bucket_impact&&b.push({title:Object(h.jsx)(d.EuiToolTip,{position:"left",content:Zg(i.single_bucket_impact,"single_bucket")},Object(h.jsx)("span",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.singleBucket",defaultMessage:"Single bucket impact"}),Object(h.jsx)(d.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),description:Object(h.jsx)(eh,{score:i.single_bucket_impact})}),void 0!==i.multi_bucket_impact&&b.push({title:Object(h.jsx)(d.EuiToolTip,{position:"left",content:Zg(i.multi_bucket_impact,"multi_bucket")},Object(h.jsx)("span",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.multiBucket",defaultMessage:"Multi bucket impact"}),Object(h.jsx)(d.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),description:Object(h.jsx)(eh,{score:i.multi_bucket_impact})}),void 0!==i.high_variance_penalty&&b.push({title:Object(h.jsx)(d.EuiToolTip,{position:"left",content:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.highVarianceTooltip",{defaultMessage:"Indicates reduction of anomaly score for the bucket with large confidence intervals. If a bucket has large confidence intervals, the score is reduced."})},Object(h.jsx)("span",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.highVariance",defaultMessage:"High variance interval"}),Object(h.jsx)(d.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),description:i.high_variance_penalty?l:c}),void 0!==i.multimodal_distribution&&b.push({title:Object(h.jsx)(d.EuiToolTip,{position:"left",content:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.multimodalTooltip",{defaultMessage:"Indicates whether the prior distribution of the time series is multi-modal or has a single mode."})},Object(h.jsx)("span",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.multimodal",defaultMessage:"Multi-modal distribution"}),Object(h.jsx)(d.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),description:i.multimodal_distribution?l:c}),void 0!==i.incomplete_bucket_penalty&&b.push({title:Object(h.jsx)(d.EuiToolTip,{position:"left",content:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.incompleteBucketTooltip",{defaultMessage:"If the bucket contains fewer samples than expected, the score is reduced."})},Object(h.jsx)("span",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.incompleteBucket",defaultMessage:"Incomplete bucket"}),Object(h.jsx)(d.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),description:i.incomplete_bucket_penalty?l:c}),Object(h.jsx)("div",null,Object(h.jsx)(d.EuiText,{size:"xs"},Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationTitle",defaultMessage:"Anomaly explanation {learnMoreLink}",values:{learnMoreLink:Object(h.jsx)(d.EuiLink,{href:a,target:"_blank",css:Wg},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanation.learnMoreLinkText",defaultMessage:"Learn more"}))}}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),p.map((({title:e,description:t})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"none"},Object(h.jsx)(d.EuiFlexItem,{style:{width:"220px"},grow:!1},e),Object(h.jsx)(d.EuiFlexItem,null,t)),Object(h.jsx)(d.EuiSpacer,{size:"xs"})))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),b.length?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiText,{size:"xs"},Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.impactOnScoreTitle",defaultMessage:"Impact on initial score"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),b.map((({title:e,description:t})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"none"},Object(h.jsx)(d.EuiFlexItem,{css:Hg,grow:!1},e),Object(h.jsx)(d.EuiFlexItem,null,t)),Object(h.jsx)(d.EuiSpacer,{size:"xs"}))))):null)};var Xg={name:"163mag1",styles:"border-bottom:2px solid"};const Qg=({score:e})=>Object(h.jsx)("div",{css:Xg,style:{borderBottomColor:Object(la.A)(e)}},e),Kg={anomaly_characteristics:{low:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.anomalyCharacteristicsTooltip.low",{defaultMessage:"Moderate impact from the duration and magnitude of the detected anomaly relative to the historical average."}),medium:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.anomalyCharacteristicsTooltip.medium",{defaultMessage:"Medium impact from the duration and magnitude of the detected anomaly relative to the historical average."}),high:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.anomalyCharacteristicsTooltip.high",{defaultMessage:"High impact from the duration and magnitude of the detected anomaly relative to the historical average."})},single_bucket:{low:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.singleBucketTooltip.low",{defaultMessage:"The difference between actual and typical values in this bucket has a moderate impact."}),medium:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.singleBucketTooltip.medium",{defaultMessage:"The difference between actual and typical values in this bucket has a significant impact."}),high:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.singleBucketTooltip.high",{defaultMessage:"The difference between actual and typical values in this bucket has a high impact."})},multi_bucket:{low:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.multiBucketTooltip.low",{defaultMessage:"The differences between actual and typical values in the past 12 buckets have a moderate impact."}),medium:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.multiBucketTooltip.medium",{defaultMessage:"The differences between actual and typical values in the past 12 buckets have a significant impact."}),high:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyExplanationDetails.multiBucketTooltip.high",{defaultMessage:"The differences between actual and typical values in the past 12 buckets have a high impact."})}};function Zg(e,t){const a=Object(la.w)(e);return a<3?Kg[t].low:a>3?Kg[t].high:Kg[t].medium}const eh=({score:e})=>{const{euiTheme:{colors:t}}=Object(d.useEuiTheme)(),a=Object(la.w)(e),i="10px",n=t.lightShade,s=t.primary;return Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs"},Array(5).fill(null).map(((e,t)=>Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)("div",{css:Object(h.css)({height:i,width:i,borderRadius:"2px"},"",""),style:{backgroundColor:a>t?s:n}})))))},th=({anomaly:e,examples:t,definition:a,isAggregatedData:i,filter:n,influencersLimit:s,influencerFilter:o,tabIndex:r,job:l})=>{if(void 0!==t&&t.length>0){const c=[{id:"Details",name:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.detailsTitle",{defaultMessage:"Details"}),content:Object(h.jsx)(ah,{anomaly:e,filter:n,influencerFilter:o,influencersLimit:s,isAggregatedData:i,job:l})},{id:"category-examples",name:u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.categoryExamplesTitle",{defaultMessage:"Category examples"}),content:Object(h.jsx)(oh,{examples:t,definition:a})}];return Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiTabbedContent,{tabs:c,size:"s",initialSelectedTab:c[r],onTabClick:()=>{}})))}return Object(h.jsx)(ah,{anomaly:e,filter:n,influencerFilter:o,influencersLimit:s,isAggregatedData:i,job:l})},ah=({anomaly:e,isAggregatedData:t,filter:a,influencersLimit:i,influencerFilter:s,job:o})=>{const{euiTheme:{colors:r}}=Object(d.useEuiTheme)(),l=Object(n.useMemo)((()=>Object(et.a)(e.source.anomaly_score_explanation)?{borderRight:`1px solid ${r.lightShade}`}:{}),[r,e]);return Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)("div",{className:"ml-anomalies-table-details","data-test-subj":"mlAnomaliesListRowDetails"},Object(h.jsx)(ih,{anomaly:e}),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"l"},Object(h.jsx)(d.EuiFlexItem,{css:l},Object(h.jsx)(nh,{anomaly:e,isAggregatedData:t,filter:a,job:o}),Object(h.jsx)(sh,{anomaly:e,influencerFilter:s,influencersLimit:i})),Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(Yg,{anomaly:e}))))))},ih=({anomaly:e})=>{const t=e.source;let a,i=u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.anomalyInLabel",{defaultMessage:"{anomalySeverity} anomaly in {anomalyDetector}",values:{anomalySeverity:Object(Ue.capitalize)(Object(la.z)(e.severity).label),anomalyDetector:e.detector}});return void 0!==e.entityName&&(i+=u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.foundForLabel",{defaultMessage:" found for {anomalyEntityName} {anomalyEntityValue}",values:{anomalyEntityName:e.entityName,anomalyEntityValue:e.entityValue}})),void 0!==t.partition_field_name&&t.partition_field_name!==e.entityName&&(i+=u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.detectedInLabel",{defaultMessage:" detected in {sourcePartitionFieldName} {sourcePartitionFieldValue}",values:{sourcePartitionFieldName:t.partition_field_name,sourcePartitionFieldValue:t.partition_field_value}})),void 0!==t.correlated_by_field_value&&(a=u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.multivariateDescription",{defaultMessage:"multivariate correlations found in {sourceByFieldName}; {sourceByFieldValue} is considered anomalous given {sourceCorrelatedByFieldValue}",values:{sourceByFieldName:t.by_field_name,sourceByFieldValue:t.by_field_value,sourceCorrelatedByFieldValue:t.correlated_by_field_value}})),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiText,{size:"xs"},Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.descriptionTitle",defaultMessage:"Description"})),i),void 0!==a&&Object(h.jsx)(d.EuiText,{size:"xs"},a))},nh=({anomaly:e,isAggregatedData:t,filter:a,job:i})=>{var n,o;const r=null!==(n=null===(o=e.source)||void 0===o?void 0:o.is_interim)&&void 0!==n&&n;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiText,{size:"xs"},!0===t?Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.detailsOnHighestSeverityAnomalyTitle",defaultMessage:"Details on highest severity anomaly"})):Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.anomalyDetailsTitle",defaultMessage:"Anomaly details"})),!0===r&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiIcon,{type:"warning"}),Object(h.jsx)("span",{className:"interim-result"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.interimResultLabel",defaultMessage:"Interim result"})))),Object(h.jsx)(d.EuiSpacer,{size:"xs"}),Object(h.jsx)($g,{anomaly:e,filter:a,modelPlotEnabled:i.modelPlotEnabled}))},sh=({anomaly:e,influencersLimit:t,influencerFilter:a})=>{const[i,o]=Object(n.useState)(!1),r=o.bind(null,(e=>!e)),l=e.influencers;let c=[],u=0,p=0;return void 0!==l&&(p=!0===i?l.length:Math.min(t,l.length),u=Math.max(l.length-p,0),1===u&&(p++,u=0),c=function(e,t,a){const i=[];for(let n=0;n{const s=e[n][a];i.push({title:a,description:Gg(a,s,t)})}));return i}(l,a,p)),c.length>0?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiText,{size:"xs"},Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.influencersTitle",defaultMessage:"Influencers"}))),c.map((({title:e,description:t})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"none"},Object(h.jsx)(d.EuiFlexItem,{style:{width:"180px"},grow:!1},e),Object(h.jsx)(d.EuiFlexItem,null,t)),Object(h.jsx)(d.EuiSpacer,{size:"xs"})))),u>0&&Object(h.jsx)(d.EuiLink,{onClick:()=>r()},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.anomalyDescriptionListMoreLinkText",defaultMessage:"and {othersCount} more",values:{othersCount:u}})),p>t+1&&Object(h.jsx)(d.EuiLink,{onClick:()=>r()},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.anomalyDescriptionShowLessLinkText",defaultMessage:"Show less"}))):null},oh=({definition:e,examples:t})=>Object(h.jsx)(d.EuiFlexGroup,{direction:"column",justifyContent:"center",gutterSize:"m",className:"mlAnomalyCategoryExamples"},void 0!==e&&e.terms&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexItem,{key:"example-terms"},Object(h.jsx)(d.EuiText,{size:"xs"},Object(h.jsx)("h4",{className:"mlAnomalyCategoryExamples__header"},u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.termsTitle",{defaultMessage:"Terms"}))," ",Object(h.jsx)(d.EuiIconTip,{"aria-label":u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.termsDescriptionAriaLabel",{defaultMessage:"Description"}),type:"questionInCircle",color:"subdued",size:"s",content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.termsDescriptionTooltip",defaultMessage:"A space separated list of the common tokens that are matched in values of the category (may have been truncated to a max character limit of {maxChars})",values:{maxChars:Vg}})})),Object(h.jsx)(d.EuiText,{size:"xs"},e.terms)),Object(h.jsx)(d.EuiSpacer,{size:"xs"})),void 0!==e&&e.regex&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexItem,{key:"example-regex"},Object(h.jsx)(d.EuiText,{size:"xs"},Object(h.jsx)("h4",{className:"mlAnomalyCategoryExamples__header"},u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.regexTitle",{defaultMessage:"Regex"}))," ",Object(h.jsx)(d.EuiIconTip,{"aria-label":u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.regexDescriptionAriaLabel",{defaultMessage:"Description"}),type:"questionInCircle",color:"subdued",size:"s",content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.anomalyDetails.regexDescriptionTooltip",defaultMessage:"The regular expression that is used to search for values that match the category (may have been truncated to a max character limit of {maxChars})",values:{maxChars:Vg}})})),Object(h.jsx)(d.EuiText,{size:"xs"},e.regex)),Object(h.jsx)(d.EuiSpacer,{size:"xs"})),t.map(((t,a)=>Object(h.jsx)(d.EuiFlexItem,{key:`example${a}`},0===a&&void 0!==e&&Object(h.jsx)(d.EuiText,{size:"s"},Object(h.jsx)("h4",null,u.i18n.translate("xpack.ml.anomaliesTable.anomalyDetails.examplesTitle",{defaultMessage:"Examples"}))),Object(h.jsx)("span",{className:"mlAnomalyCategoryExamples__item"},t)))));function rh({job:e,detector:t,anomaly:a}){const i=[{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.detectorDescriptionList.jobIdTitle",defaultMessage:"Job ID"}),description:e.job_id},{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.detectorDescriptionList.detectorTitle",defaultMessage:"Detector"}),description:t.detector_description}];if(void 0!==a.actual){const e=Object(Pg.b)(a.actual,a.source.function),t=Object(Pg.b)(a.typical,a.source.function);i.push({title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.detectorDescriptionList.selectedAnomalyTitle",defaultMessage:"Selected anomaly"}),description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.detectorDescriptionList.selectedAnomalyDescription",defaultMessage:"actual {actual}, typical {typical}",values:{actual:e,typical:t}})})}return Object(h.jsx)(d.EuiDescriptionList,{className:"rule-detector-description-list",type:"column",listItems:i})}function lh({actions:e,onSkipResultChange:t,onSkipModelUpdateChange:a}){return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiText,null,Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.actionsSection.chooseActionsDescription",defaultMessage:"Choose the actions to take when the job rule matches an anomaly."}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",gutterSize:"s",responsive:!1},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiCheckbox,{id:"skip_result_cb",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.actionsSection.skipResultLabel",defaultMessage:"Skip result (recommended)"}),checked:e.indexOf(la.h.SKIP_RESULT)>-1,onChange:t})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiIconTip,{content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.actionsSection.resultWillNotBeCreatedTooltip",defaultMessage:"The result will not be created."}),size:"s",position:"right"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",gutterSize:"s",responsive:!1},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiCheckbox,{id:"skip_model_update_cb",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.actionsSection.skipModelUpdateLabel",defaultMessage:"Skip model update"}),checked:e.indexOf(la.h.SKIP_MODEL_UPDATE)>-1,onChange:a})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiIconTip,{content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.actionsSection.valueWillNotBeUsedToUpdateModelTooltip",defaultMessage:"The value for that series will not be used to update the model."}),size:"s",position:"right"}))))}function ch(){return{applies_to:la.i.ACTUAL,operator:la.l.LESS_THAN,value:1}}function dh(){return{actions:[la.h.SKIP_RESULT],conditions:[]}}function uh(e){let t=!1;if(e.actions.length>0){const a=e.conditions;if(void 0!==a&&a.length>0)t=!0;else{const a=e.scope;void 0!==a&&(t=Object.keys(a).some((e=>!0===a[e].enabled)))}}return t}function ph(e,t,a){const i=e.job_id,n={detectors:[{detector_index:t,custom_rules:a}]};let s={};return void 0!==e.custom_settings&&(s={...e.custom_settings},Object(Gt.t)(s),n.custom_settings=s),new Promise(((e,t)=>{Je.ml.updateJob({jobId:i,job:n}).then((()=>{Ge.a.refreshJob(i).then((()=>{e({success:!0})})).catch((e=>{t(e)}))})).catch((e=>{t(e)}))}))}function mh(e){const{actions:t,conditions:a,scope:i}=e;let n="",s="",o="";return t.forEach(((e,t)=>{switch(t>0&&(n+=" AND "),e){case la.h.SKIP_RESULT:n+=u.i18n.translate("xpack.ml.ruleEditor.ruleDescription.resultActionTypeText",{defaultMessage:"result",description:"Part of composite text: xpack.ml.ruleEditor.ruleDescription.[actionName]ActionTypeText +xpack.ml.ruleEditor.ruleDescription.conditionsText + xpack.ml.ruleEditor.ruleDescription.filtersText"});break;case la.h.SKIP_MODEL_UPDATE:n+=u.i18n.translate("xpack.ml.ruleEditor.ruleDescription.modelUpdateActionTypeText",{defaultMessage:"model update",description:"Part of composite text: xpack.ml.ruleEditor.ruleDescription.[actionName]ActionTypeText + xpack.ml.ruleEditor.ruleDescription.conditionsText + xpack.ml.ruleEditor.ruleDescription.filtersText"})}})),void 0!==a&&a.forEach(((e,t)=>{t>0&&(s+=" AND "),s+=u.i18n.translate("xpack.ml.ruleEditor.ruleDescription.conditionsText",{defaultMessage:"{appliesTo} is {operator} {value}",values:{appliesTo:fh(e.applies_to),operator:gh(e.operator),value:e.value},description:"Part of composite text: xpack.ml.ruleEditor.ruleDescription.[actionName]ActionTypeText + xpack.ml.ruleEditor.ruleDescription.conditionsText + xpack.ml.ruleEditor.ruleDescription.filtersText"})})),void 0!==i&&(void 0!==a&&a.length>0&&(o+=" AND "),Object.keys(i).forEach(((e,t)=>{t>0&&(o+=" AND ");const a=i[e];o+=u.i18n.translate("xpack.ml.ruleEditor.ruleDescription.filtersText",{defaultMessage:"{fieldName} is {filterType} {filterId}",values:{fieldName:e,filterType:bh(a.filter_type),filterId:a.filter_id},description:"Part of composite text: xpack.ml.ruleEditor.ruleDescription.[actionName]ActionTypeText + xpack.ml.ruleEditor.ruleDescription.conditionsText + xpack.ml.ruleEditor.ruleDescription.filtersText"})}))),u.i18n.translate("xpack.ml.ruleEditor.ruleDescription",{defaultMessage:"skip {actions} when {conditions}{filters}",values:{actions:n,conditions:s,filters:o},description:"Composite text: xpack.ml.ruleEditor.ruleDescription.[actionName]ActionTypeText + xpack.ml.ruleEditor.ruleDescription.conditionsText + xpack.ml.ruleEditor.ruleDescription.filtersText. (Example: skip model update when actual is less than 1 AND ip is in xxx)"})}function bh(e){switch(e){case la.k.INCLUDE:return u.i18n.translate("xpack.ml.ruleEditor.includeFilterTypeText",{defaultMessage:"in"});case la.k.EXCLUDE:return u.i18n.translate("xpack.ml.ruleEditor.excludeFilterTypeText",{defaultMessage:"not in"});default:return void 0!==e?e:""}}function fh(e){switch(e){case la.i.ACTUAL:return u.i18n.translate("xpack.ml.ruleEditor.actualAppliesTypeText",{defaultMessage:"actual"});case la.i.TYPICAL:return u.i18n.translate("xpack.ml.ruleEditor.typicalAppliesTypeText",{defaultMessage:"typical"});case la.i.DIFF_FROM_TYPICAL:return u.i18n.translate("xpack.ml.ruleEditor.diffFromTypicalAppliesTypeText",{defaultMessage:"diff from typical"});default:return void 0!==e?e:""}}function gh(e){switch(e){case la.l.LESS_THAN:return u.i18n.translate("xpack.ml.ruleEditor.lessThanOperatorTypeText",{defaultMessage:"less than"});case la.l.LESS_THAN_OR_EQUAL:return u.i18n.translate("xpack.ml.ruleEditor.lessThanOrEqualToOperatorTypeText",{defaultMessage:"less than or equal to"});case la.l.GREATER_THAN:return u.i18n.translate("xpack.ml.ruleEditor.greaterThanOperatorTypeText",{defaultMessage:"greater than"});case la.l.GREATER_THAN_OR_EQUAL:return u.i18n.translate("xpack.ml.ruleEditor.greaterThanOrEqualToOperatorTypeText",{defaultMessage:"greater than or equal to"});default:return void 0!==e?e:""}}class condition_expression_ConditionExpression extends n.Component{constructor(e){super(e),Ve()(this,"openAppliesTo",(()=>{this.setState({isAppliesToOpen:!0,isOperatorValueOpen:!1})})),Ve()(this,"closeAppliesTo",(()=>{this.setState({isAppliesToOpen:!1})})),Ve()(this,"openOperatorValue",(()=>{this.setState({isAppliesToOpen:!1,isOperatorValueOpen:!0})})),Ve()(this,"closeOperatorValue",(()=>{this.setState({isOperatorValueOpen:!1})})),Ve()(this,"changeAppliesTo",(e=>{const{index:t,operator:a,value:i,updateCondition:n}=this.props;n(t,e.target.value,a,i)})),Ve()(this,"changeOperator",(e=>{const{index:t,appliesTo:a,value:i,updateCondition:n}=this.props;n(t,a,e.target.value,i)})),Ve()(this,"changeValue",(e=>{const{index:t,appliesTo:a,operator:i,updateCondition:n}=this.props;n(t,a,i,+e.target.value)})),this.state={isAppliesToOpen:!1,isOperatorValueOpen:!1}}renderAppliesToPopover(){return Object(h.jsx)("div",null,Object(h.jsx)(d.EuiPopoverTitle,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.conditionExpression.appliesToPopoverTitle",defaultMessage:"When"})),Object(h.jsx)("div",{className:"euiExpression",style:{width:200}},Object(h.jsx)(d.EuiSelect,{value:this.props.appliesTo,onChange:this.changeAppliesTo,options:[{value:la.i.ACTUAL,text:fh(la.i.ACTUAL)},{value:la.i.TYPICAL,text:fh(la.i.TYPICAL)},{value:la.i.DIFF_FROM_TYPICAL,text:fh(la.i.DIFF_FROM_TYPICAL)}]})))}renderOperatorValuePopover(){return Object(h.jsx)("div",null,Object(h.jsx)(d.EuiPopoverTitle,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.conditionExpression.operatorValuePopoverTitle",defaultMessage:"Is"})),Object(h.jsx)("div",{className:"euiExpression"},Object(h.jsx)(d.EuiFlexGroup,{style:{maxWidth:450}},Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{width:250}},Object(h.jsx)(d.EuiSelect,{value:this.props.operator,onChange:this.changeOperator,options:[{value:la.l.LESS_THAN,text:gh(la.l.LESS_THAN)},{value:la.l.LESS_THAN_OR_EQUAL,text:gh(la.l.LESS_THAN_OR_EQUAL)},{value:la.l.GREATER_THAN,text:gh(la.l.GREATER_THAN)},{value:la.l.GREATER_THAN_OR_EQUAL,text:gh(la.l.GREATER_THAN_OR_EQUAL)}]})),Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{width:200}},Object(h.jsx)(d.EuiFieldNumber,{value:+this.props.value,onChange:this.changeValue})))))}render(){const{index:e,appliesTo:t,operator:a,value:i,deleteCondition:n}=this.props;return Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"m"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiPopover,{id:"appliesToPopover",button:Object(h.jsx)(d.EuiExpression,{description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.conditionExpression.appliesToButtonLabel",defaultMessage:"when"}),value:fh(t),isActive:this.state.isAppliesToOpen,onClick:this.openAppliesTo}),isOpen:this.state.isAppliesToOpen,closePopover:this.closeAppliesTo,panelPaddingSize:"s",ownFocus:!0,anchorPosition:"downLeft"},this.renderAppliesToPopover())),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiPopover,{id:"operatorValuePopover",button:Object(h.jsx)(d.EuiExpression,{description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.conditionExpression.operatorValueButtonLabel",defaultMessage:"is {operator}",values:{operator:gh(a)}}),value:`${i}`,isActive:this.state.isOperatorValueOpen,onClick:this.openOperatorValue}),isOpen:this.state.isOperatorValueOpen,closePopover:this.closeOperatorValue,panelPaddingSize:"s",ownFocus:!0,withTitle:!0,anchorPosition:"downLeft"},this.renderOperatorValuePopover())),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonIcon,{size:"s",color:"danger",onClick:()=>n(e),iconType:"trash","aria-label":u.i18n.translate("xpack.ml.ruleEditor.conditionExpression.deleteConditionButtonAriaLabel",{defaultMessage:"Delete condition"})})))}}function hh({isEnabled:e,conditions:t,addCondition:a,updateCondition:i,deleteCondition:n}){if(!1===e)return null;let o=[];return void 0!==t&&(o=t.map(((e,t)=>Object(h.jsx)(condition_expression_ConditionExpression,{key:t,index:t,appliesTo:e.applies_to,operator:e.operator,value:e.value,updateCondition:i,deleteCondition:n})))),Object(h.jsx)(s.a.Fragment,null,o,Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiButtonEmpty,{onClick:()=>a()},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.conditionsSection.addNewConditionButtonLabel",defaultMessage:"Add new condition"})))}function jh(e){return e.map((e=>({value:e,text:e})))}class scope_expression_ScopeExpression extends n.Component{constructor(e){super(e),Ve()(this,"openFilterList",(()=>{this.setState({isFilterListOpen:!0})})),Ve()(this,"closeFilterList",(()=>{this.setState({isFilterListOpen:!1})})),Ve()(this,"onChangeFilterType",(e=>{const{fieldName:t,filterId:a,enabled:i,updateScope:n}=this.props;n(t,a,e.target.value,i)})),Ve()(this,"onChangeFilterId",(e=>{const{fieldName:t,filterType:a,enabled:i,updateScope:n}=this.props;n(t,e.target.value,a,i)})),Ve()(this,"onEnableChange",(e=>{const{fieldName:t,filterId:a,filterType:i,updateScope:n}=this.props;n(t,a,i,e.target.checked)})),this.state={isFilterListOpen:!1}}renderFilterListPopover(){const{filterId:e,filterType:t,filterListIds:a}=this.props;return Object(h.jsx)("div",null,Object(h.jsx)(d.EuiPopoverTitle,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.scopeExpression.scopeFilterTypePopoverTitle",defaultMessage:"Is"})),Object(h.jsx)("div",{className:"euiExpression"},Object(h.jsx)(d.EuiFlexGroup,{style:{maxWidth:450}},Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{width:150}},Object(h.jsx)(d.EuiSelect,{value:t,onChange:this.onChangeFilterType,options:[{value:la.k.INCLUDE,text:bh(la.k.INCLUDE)},{value:la.k.EXCLUDE,text:bh(la.k.EXCLUDE)}]})),Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{width:300}},Object(h.jsx)(d.EuiSelect,{value:e,onChange:this.onChangeFilterId,options:jh(a)})))))}render(){const{fieldName:e,filterId:t,filterType:a,enabled:i,filterListIds:n}=this.props;return Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"m"},Object(h.jsx)(d.EuiFlexItem,{grow:!1,className:"scope-field-checkbox"},Object(h.jsx)(d.EuiCheckbox,{id:`scope_cb_${e}`,checked:i,onChange:this.onEnableChange})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiExpression,{className:"scope-field-button",description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.scopeExpression.scopeFieldWhenLabel",defaultMessage:"when"}),value:e,isActive:!1,onClick:e=>e.preventDefault()})),void 0!==n&&n.length>0&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiPopover,{id:"operatorValuePopover",button:Object(h.jsx)(d.EuiExpression,{description:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.scopeExpression.scopeFilterTypeButtonLabel",defaultMessage:"is {filterType}",values:{filterType:bh(a)}}),value:t||"",isActive:this.state.isFilterListOpen,onClick:this.openFilterList}),isOpen:this.state.isFilterListOpen,closePopover:this.closeFilterList,panelPaddingSize:"s",ownFocus:!0,anchorPosition:"downLeft"},this.renderFilterListPopover())))}}function xh(){const e=Object(Te.g)(),t=Object(Te.h)();return Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.scopeSection.noFilterListsConfiguredTitle",defaultMessage:"No filter lists configured"}),iconType:"gear"},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.scopeSection.createFilterListsDescription",defaultMessage:"To configure scope, you must first use the {filterListsLink} settings page to create the list of values you want to include or exclude in the job rule.",values:{filterListsLink:Object(h.jsx)(d.EuiLink,{onClick:async()=>{const a=await e.getUrl({page:Fe.b.FILTER_LISTS_MANAGE});await t(a,!0)}},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.scopeSection.createFilterListsDescription.filterListsLinkText",defaultMessage:"Filter Lists"}))}})))}function vh(){return Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.scopeSection.noPermissionToViewFilterListsTitle",defaultMessage:"You do not have permission to view filter lists"}),iconType:"gear"})}function yh({isEnabled:e,onEnabledChange:t,partitioningFieldNames:a,filterListIds:i,scope:n,updateScope:o}){const r=Object(Se.d)("canGetFilters");if(null===a||0===a.length)return null;let l;return l=i.length>0?a.map(((e,t)=>{let a;return a=void 0!==n&&void 0!==n[e]?n[e]:function(e){const t={filter_type:la.k.INCLUDE,enabled:!1};return void 0!==e&&e.length>0&&(t.filter_id=e[0]),t}(i),Object(h.jsx)(scope_expression_ScopeExpression,{key:t,fieldName:e,filterId:a.filter_id,filterType:a.filter_type,enabled:a.enabled,filterListIds:i,updateScope:o})})):!1===r?Object(h.jsx)(vh,null):Object(h.jsx)(xh,null),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiTitle,null,Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.scopeSection.scopeTitle",defaultMessage:"Scope"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiCheckbox,{id:"enable_scope_checkbox",label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.scopeSection.addFilterListLabel",defaultMessage:"Add a filter list to limit where the job rule applies."}),checked:e,onChange:t}),Object(h.jsx)(d.EuiSpacer,{size:"s"}),e&&Object(h.jsx)(s.a.Fragment,null,l),Object(h.jsx)(d.EuiSpacer,{size:"xxl"}))}function Oh({fieldValue:e,filterId:t,addItemToFilterList:a}){return Object(h.jsx)(d.EuiLink,{onClick:()=>a(e,t,!0)},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.addValueToFilterListLinkText",defaultMessage:"Add {fieldValue} to {filterId}",values:{fieldValue:e,filterId:t}}))}class delete_rule_modal_DeleteRuleModal extends n.Component{constructor(e){super(e),Ve()(this,"deleteRule",(()=>{const{ruleIndex:e,deleteRuleAtIndex:t}=this.props;t(e),this.closeModal()})),Ve()(this,"closeModal",(()=>{this.setState({isModalVisible:!1})})),Ve()(this,"showModal",(()=>{this.setState({isModalVisible:!0})})),this.state={isModalVisible:!1}}render(){let e;return this.state.isModalVisible&&(e=Object(h.jsx)(d.EuiConfirmModal,{title:u.i18n.translate("xpack.ml.ruleEditor.deleteRuleModal.deleteRuleTitle",{defaultMessage:"Delete rule?"}),onCancel:this.closeModal,onConfirm:this.deleteRule,buttonColor:"danger",cancelButtonText:u.i18n.translate("xpack.ml.ruleEditor.deleteRuleModal.cancelButtonLabel",{defaultMessage:"Cancel"}),confirmButtonText:u.i18n.translate("xpack.ml.ruleEditor.deleteRuleModal.deleteButtonLabel",{defaultMessage:"Delete"}),defaultFocusedButton:d.EUI_MODAL_CONFIRM_BUTTON})),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiLink,{color:"danger",onClick:()=>this.showModal()},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.deleteRuleModal.deleteRuleLinkText",defaultMessage:"Delete rule"})),e)}}class edit_condition_link_EditConditionLink extends n.Component{constructor(e){super(e),Ve()(this,"onChangeValue",(e=>{const t=e.target.value;this.setState({value:""!==t?+t:""})})),Ve()(this,"onUpdateClick",(()=>{const{conditionIndex:e,updateConditionValue:t}=this.props;t(e,this.state.value)}));let t="";const a=this.props.anomaly,i=function(e,t){let a,i;const n=e.actual;void 0!==n&&(a=Array.isArray(n)?n[0]:n);const s=e.typical;switch(void 0!==s&&(i=Array.isArray(s)?s[0]:s),t){case la.i.ACTUAL:return a;case la.i.TYPICAL:return i;case la.i.DIFF_FROM_TYPICAL:if(void 0!==n&&void 0!==s)return Math.abs(a-i)}}(a,e.appliesTo);void 0!==i&&(t=+Object(Pg.b)(i,a.source.function)),this.state={value:t}}render(){const e=this.state.value;return Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"s"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.editConditionLink.updateRuleConditionFromText",defaultMessage:"Update rule condition from {conditionValue} to",values:{conditionValue:this.props.conditionValue}}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1,className:"condition-edit-value-field"},Object(h.jsx)(d.EuiFieldNumber,{placeholder:u.i18n.translate("xpack.ml.ruleEditor.editConditionLink.enterValuePlaceholder",{defaultMessage:"Enter value"}),compressed:!0,value:e,onChange:this.onChangeValue,"aria-label":u.i18n.translate("xpack.ml.ruleEditor.editConditionLink.enterNumericValueForConditionAriaLabel",{defaultMessage:"Enter numeric value for condition"})})),""!==e&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiLink,{size:"s",onClick:()=>this.onUpdateClick()},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.editConditionLink.updateLinkText",defaultMessage:"Update"}))))}}class rule_action_panel_RuleActionPanel extends n.Component{constructor(e){super(e),Ve()(this,"getEditRuleLink",(()=>{const{ruleIndex:e,setEditRuleIndex:t}=this.props;return Object(h.jsx)(d.EuiLink,{onClick:()=>t(e)},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleActionPanel.editRuleLinkText",defaultMessage:"Edit rule"}))})),Ve()(this,"getDeleteRuleLink",(()=>{const{ruleIndex:e,deleteRuleAtIndex:t}=this.props;return Object(h.jsx)(delete_rule_modal_DeleteRuleModal,{ruleIndex:e,deleteRuleAtIndex:t})})),Ve()(this,"getQuickEditConditionLink",(()=>{const e=this.rule.conditions;let t=null;return void 0!==this.rule.conditions&&1===e.length&&(t=Object(h.jsx)(edit_condition_link_EditConditionLink,{conditionIndex:0,conditionValue:e[0].value,appliesTo:e[0].applies_to,anomaly:this.props.anomaly,updateConditionValue:this.updateConditionValue})),t})),Ve()(this,"getQuickAddToFilterListLink",(()=>{const{anomaly:e,addItemToFilterList:t}=this.props,a=this.rule.scope,i=Object.keys(a)[0],n=e.source[i],s=a[i].filter_id;return Object(h.jsx)(Oh,{fieldValue:n[0],filterId:s,addItemToFilterList:t})})),Ve()(this,"updateConditionValue",((e,t)=>{const{job:a,anomaly:i,ruleIndex:n,updateRuleAtIndex:s}=this.props,o=a.analysis_config.detectors[i.detectorIndex],r=Object(Ue.cloneDeep)(o.custom_rules[n]),l=r.conditions;e0){const i=e[t].filter_id;Je.ml.filters.filters({filterId:i}).then((e=>{-1===e.items.indexOf(a[0])&&this.setState({showAddToFilterListLink:!0})})).catch((e=>{console.log(`Error loading filter ${i}:`,e)}))}}}render(){if(void 0===this.rule)return null;const e=[{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleActionPanel.ruleTitle",defaultMessage:"Rule"}),description:mh(this.rule,this.props.anomaly)},{title:"",description:this.getEditRuleLink()},{title:"",description:this.getDeleteRuleLink()}],t=this.getQuickEditConditionLink();if(null!==t&&e.splice(1,0,{title:"",description:t}),!0===this.state.showAddToFilterListLink){const t=this.getQuickAddToFilterListLink();e.splice(e.length-2,0,{title:"",description:t})}return e[1].title=Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleActionPanel.actionsTitle",defaultMessage:"Actions"}),Object(h.jsx)(d.EuiPanel,{paddingSize:"m",className:"select-rule-action-panel"},Object(h.jsx)(d.EuiDescriptionList,{type:"column",listItems:e}))}}function Eh({job:e,anomaly:t,setEditRuleIndex:a,updateRuleAtIndex:i,deleteRuleAtIndex:n,addItemToFilterList:o}){const r=t.detectorIndex,l=e.analysis_config.detectors[r],c=l.custom_rules||[];let u;return c.length>0&&(u=c.map(((r,l)=>Object(h.jsx)(s.a.Fragment,{key:`rule_panel_${l}_${c.length}`},Object(h.jsx)(rule_action_panel_RuleActionPanel,{job:e,ruleIndex:l,anomaly:t,setEditRuleIndex:a,updateRuleAtIndex:i,deleteRuleAtIndex:n,addItemToFilterList:o}),Object(h.jsx)(d.EuiSpacer,{size:"l"}))))),Object(h.jsx)("div",{className:"select-rule-action"},c.length>0&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(rh,{job:e,detector:l,anomaly:t}),Object(h.jsx)(d.EuiSpacer,{size:"m"}),u,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiText,{style:{display:"inline"}},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.selectRuleAction.orText",defaultMessage:"Or "}))),Object(h.jsx)(d.EuiLink,{onClick:()=>a(c.length)},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.selectRuleAction.createRuleLinkText",defaultMessage:"create a rule"})))}class rule_editor_flyout_RuleEditorFlyoutUI extends n.Component{constructor(e){super(e),Ve()(this,"showFlyout",(e=>{let t=-1;const a=Ge.a.getJob(e.jobId);if(void 0===a){const{toasts:t}=this.props.kibana.services.notifications;return t.addDanger(u.i18n.translate("xpack.ml.ruleEditor.ruleEditorFlyout.unableToConfigureRulesNotificationMesssage",{defaultMessage:"Unable to configure job rules as an error occurred obtaining details for job ID {jobId}",values:{jobId:e.jobId}})),void this.setState({job:a,isFlyoutVisible:!1})}this.partitioningFieldNames=Object(Gt.k)(a,e.detectorIndex);const i=e.detectorIndex;void 0===a.analysis_config.detectors[i].custom_rules&&(t=0);let n=!1;0===t&&(n=0===this.partitioningFieldNames.length),this.setState({anomaly:e,job:a,ruleIndex:t,isConditionsEnabled:n,isScopeEnabled:!1,isFlyoutVisible:!0}),this.partitioningFieldNames.length>0&&this.canGetFilters&&Je.ml.filters.filters().then((e=>{const t=e.map((e=>e.filter_id));this.setState({filterListIds:t})})).catch((e=>{console.log("Error loading list of filters:",e);const{toasts:t}=this.props.kibana.services.notifications;t.addDanger(u.i18n.translate("xpack.ml.ruleEditor.ruleEditorFlyout.errorWithLoadingFilterListsNotificationMesssage",{defaultMessage:"Error loading the filter lists used in the job rule scope"}))}))})),Ve()(this,"closeFlyout",(()=>{this.setState({isFlyoutVisible:!1})})),Ve()(this,"setEditRuleIndex",(e=>{const t=this.state.anomaly.detectorIndex,a=this.state.job.analysis_config.detectors[t].custom_rules,i=void 0===a||e>=a.length?dh():a[e],n=0===this.partitioningFieldNames.length||void 0!==i.conditions&&i.conditions.length>0,s=void 0!==i.scope&&Object.keys(i.scope).length>0;!0===s&&Object.keys(i.scope).forEach((e=>{i.scope[e].enabled=!0})),this.setState({ruleIndex:e,rule:i,isConditionsEnabled:n,isScopeEnabled:s})})),Ve()(this,"onSkipResultChange",(e=>{const t=e.target.checked;this.setState((e=>{const a=[...e.rule.actions],i=a.indexOf(la.h.SKIP_RESULT);return-1===i&&t?a.push(la.h.SKIP_RESULT):i>-1&&!t&&a.splice(i,1),{rule:{...e.rule,actions:a}}}))})),Ve()(this,"onSkipModelUpdateChange",(e=>{const t=e.target.checked;this.setState((e=>{const a=[...e.rule.actions],i=a.indexOf(la.h.SKIP_MODEL_UPDATE);return-1===i&&t?a.push(la.h.SKIP_MODEL_UPDATE):i>-1&&!t&&a.splice(i,1),{rule:{...e.rule,actions:a}}}))})),Ve()(this,"onConditionsEnabledChange",(e=>{const t=e.target.checked;this.setState((e=>{let a;return a=!1===t?[]:[ch()],{rule:{...e.rule,conditions:a},isConditionsEnabled:t}}))})),Ve()(this,"addCondition",(()=>{this.setState((e=>{const t=[...e.rule.conditions];return t.push(ch()),{rule:{...e.rule,conditions:t}}}))})),Ve()(this,"updateCondition",((e,t,a,i)=>{this.setState((n=>{const s=[...n.rule.conditions];return e{this.setState((t=>{const a=[...t.rule.conditions];return e{const t=e.target.checked;this.setState((e=>{const a={...e.rule};return!1===t&&delete a.scope,{rule:a,isScopeEnabled:t}}))})),Ve()(this,"updateScope",((e,t,a,i)=>{this.setState((n=>{let s={...n.rule.scope};return void 0===s&&(s={}),s[e]={filter_id:t,filter_type:a,enabled:i},{rule:{...n.rule,scope:s}}}))})),Ve()(this,"saveEdit",(()=>{const{rule:e,ruleIndex:t}=this.state;this.updateRuleAtIndex(t,e)})),Ve()(this,"updateRuleAtIndex",((e,t)=>{const{toasts:a}=this.props.kibana.services.notifications,{job:i,anomaly:n}=this.state,s=i.job_id;(function(e,t,a,i){const n=e.analysis_config.detectors[t],s=Object(Ue.cloneDeep)(i),o=s.scope;void 0!==o&&Object.keys(o).forEach((e=>{!1===o[e].enabled?delete o[e]:delete o[e].enabled}));let r=[];return void 0===n.custom_rules?r=[s]:(r=Object(Ue.cloneDeep)(n.custom_rules),a{e.success?(a.add({title:u.i18n.translate("xpack.ml.ruleEditor.ruleEditorFlyout.changesToJobDetectorRulesSavedNotificationMessageTitle",{defaultMessage:"Changes to {jobId} detector rules saved",values:{jobId:s}}),color:"success",iconType:"check",text:u.i18n.translate("xpack.ml.ruleEditor.ruleEditorFlyout.changesToJobDetectorRulesSavedNotificationMessageDescription",{defaultMessage:"Note that changes will take effect for new results only."})}),this.closeFlyout()):a.addDanger(u.i18n.translate("xpack.ml.ruleEditor.ruleEditorFlyout.errorWithSavingChangesToJobDetectorRulesNotificationMessage",{defaultMessage:"Error saving changes to {jobId} detector rules",values:{jobId:s}}))})).catch((e=>{console.error(e),a.addDanger(u.i18n.translate("xpack.ml.ruleEditor.ruleEditorFlyout.errorWithSavingChangesToJobDetectorRulesNotificationMessage",{defaultMessage:"Error saving changes to {jobId} detector rules",values:{jobId:s}}))}))})),Ve()(this,"deleteRuleAtIndex",(e=>{const{toasts:t}=this.props.kibana.services.notifications,{job:a,anomaly:i}=this.state,n=a.job_id,s=i.detectorIndex;(function(e,t,a){const i=e.analysis_config.detectors[t];let n=[];return void 0!==i.custom_rules&&a{if(e.success){t.addSuccess(u.i18n.translate("xpack.ml.ruleEditor.ruleEditorFlyout.ruleDeletedFromJobDetectorNotificationMessage",{defaultMessage:"Rule deleted from {jobId} detector",values:{jobId:n}}));const e=Ge.a.getJob(i.jobId);e.analysis_config.detectors[s].custom_rules?this.setState({job:{...e}}):this.closeFlyout()}else t.addDanger(u.i18n.translate("xpack.ml.ruleEditor.ruleEditorFlyout.errorWithDeletingRuleFromJobDetectorNotificationMessage",{defaultMessage:"Error deleting rule from {jobId} detector",values:{jobId:n}}))})).catch((e=>{console.error(e);let a=u.i18n.translate("xpack.ml.ruleEditor.ruleEditorFlyout.errorWithDeletingRuleFromJobDetectorNotificationMessage",{defaultMessage:"Error deleting rule from {jobId} detector",values:{jobId:n}});e.error&&(a+=` : ${Object(ei.b)(e.error)}`),t.addDanger(a)}))})),Ve()(this,"addItemToFilterList",((e,t,a)=>{const{toasts:i}=this.props.kibana.services.notifications;(function(e,t){return new Promise(((a,i)=>{Je.ml.filters.updateFilter(t,void 0,[e],void 0).then((e=>{a(e)})).catch((e=>{i(e)}))}))})(e,t).then((()=>{!0===a&&(i.add({title:u.i18n.translate("xpack.ml.ruleEditor.ruleEditorFlyout.addedItemToFilterListNotificationMessageTitle",{defaultMessage:"Added {item} to {filterId}",values:{item:e,filterId:t}}),color:"success",iconType:"check",text:u.i18n.translate("xpack.ml.ruleEditor.ruleEditorFlyout.addedItemToFilterListNotificationMessageDescription",{defaultMessage:"Note that changes will take effect for new results only."})}),this.closeFlyout())})).catch((a=>{console.log(`Error adding ${e} to filter ${t}:`,a),i.addDanger(u.i18n.translate("xpack.ml.ruleEditor.ruleEditorFlyout.errorWithAddingItemToFilterListNotificationMessage",{defaultMessage:"An error occurred adding {item} to filter {filterId}",values:{item:e,filterId:t}}))}))})),this.state={anomaly:{},job:{},ruleIndex:-1,rule:dh(),skipModelUpdate:!1,isConditionsEnabled:!1,isScopeEnabled:!1,filterListIds:[],isFlyoutVisible:!1},this.partitioningFieldNames=[],this.canGetFilters=Object(Se.d)("canGetFilters")}componentDidMount(){"function"==typeof this.props.setShowFunction&&this.props.setShowFunction(this.showFlyout)}componentWillUnmount(){"function"==typeof this.props.unsetShowFunction&&this.props.unsetShowFunction()}render(){const e=this.props.kibana.services.docLinks.links.ml.customRules,{isFlyoutVisible:t,job:a,anomaly:i,ruleIndex:n,rule:o,filterListIds:r,isConditionsEnabled:l,isScopeEnabled:c}=this.state;if(!1===t)return null;let p;if(-1===n)p=Object(h.jsx)(d.EuiFlyout,{className:"ml-rule-editor-flyout",onClose:this.closeFlyout,"aria-labelledby":"flyoutTitle"},Object(h.jsx)(d.EuiFlyoutHeader,{hasBorder:!0},Object(h.jsx)(d.EuiTitle,{size:"m"},Object(h.jsx)("h1",{id:"flyoutTitle"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.editRulesTitle",defaultMessage:"Edit job rules"})))),Object(h.jsx)(d.EuiFlyoutBody,null,Object(h.jsx)(Eh,{job:a,anomaly:i,setEditRuleIndex:this.setEditRuleIndex,updateRuleAtIndex:this.updateRuleAtIndex,deleteRuleAtIndex:this.deleteRuleAtIndex,addItemToFilterList:this.addItemToFilterList})),Object(h.jsx)(d.EuiFlyoutFooter,null,Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{iconType:"cross",onClick:this.closeFlyout,flush:"left"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.closeButtonLabel",defaultMessage:"Close"}))))));else{const t=i.detectorIndex,s=a.analysis_config.detectors[t],m=s.custom_rules,b=void 0===m||n>=m.length,f=this.partitioningFieldNames&&this.partitioningFieldNames.length>0,j=-1===la.j.indexOf(i.source.function),x=u.i18n.translate("xpack.ml.ruleEditor.ruleEditorFlyout.conditionsDescription",{defaultMessage:"Add numeric conditions for when the job rule applies. Multiple conditions are combined using AND."});p=Object(h.jsx)(d.EuiFlyout,{className:"ml-rule-editor-flyout",onClose:this.closeFlyout,"aria-labelledby":"flyoutTitle"},Object(h.jsx)(d.EuiFlyoutHeader,{hasBorder:!0},Object(h.jsx)(d.EuiTitle,{size:"m"},Object(h.jsx)("h1",{id:"flyoutTitle"},!0===b?Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.createRuleTitle",defaultMessage:"Create job rule"}):Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.editRuleTitle",defaultMessage:"Edit job rule"})))),Object(h.jsx)(d.EuiFlyoutBody,null,Object(h.jsx)(rh,{job:a,detector:s,anomaly:i}),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiText,null,Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.rulesDescription",defaultMessage:"Job rules instruct anomaly detectors to change their behavior based on domain-specific knowledge that you provide. When you create a job rule, you can specify conditions, scope, and actions. When the conditions of a job rule are satisfied, its actions are triggered. {learnMoreLink}",values:{learnMoreLink:Object(h.jsx)(d.EuiLink,{href:e,target:"_blank"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.rulesDescription.learnMoreLinkText",defaultMessage:"Learn more"}))}}))),Object(h.jsx)(d.EuiSpacer,null),Object(h.jsx)(d.EuiTitle,null,Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.actionTitle",defaultMessage:"Action"}))),Object(h.jsx)(lh,{actions:o.actions,onSkipResultChange:this.onSkipResultChange,onSkipModelUpdateChange:this.onSkipModelUpdateChange}),Object(h.jsx)(d.EuiSpacer,{size:"xl"}),Object(h.jsx)(d.EuiTitle,null,Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.conditionsTitle",defaultMessage:"Conditions"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),!0===j?Object(h.jsx)(d.EuiCheckbox,{id:"enable_conditions_checkbox",className:"scope-enable-checkbox",label:x,checked:l,onChange:this.onConditionsEnabledChange,disabled:!j||!f}):Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.conditionsNotSupportedTitle",defaultMessage:"Conditions are not supported for detectors using the {functionName} function",values:{functionName:i.source.function}}),iconType:"iInCircle"}),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(hh,{isEnabled:l,conditions:o.conditions,addCondition:this.addCondition,updateCondition:this.updateCondition,deleteCondition:this.deleteCondition}),Object(h.jsx)(d.EuiSpacer,{size:"xl"}),Object(h.jsx)(yh,{isEnabled:c,onEnabledChange:this.onScopeEnabledChange,partitioningFieldNames:this.partitioningFieldNames,filterListIds:r,scope:o.scope,updateScope:this.updateScope}),Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.rerunJobTitle",defaultMessage:"Rerun job"}),color:"warning",iconType:"help"},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.whenChangesTakeEffectDescription",defaultMessage:"Changes to job rules take effect for new results only."})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.howToApplyChangesToExistingResultsDescription",defaultMessage:"To apply these changes to existing results you must clone and rerun the job. Note rerunning the job may take some time and should only be done once you have completed all your changes to the rules for this job."})))),Object(h.jsx)(d.EuiFlyoutFooter,null,Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButtonEmpty,{iconType:"cross",onClick:this.closeFlyout,flush:"left"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.closeButtonLabel",defaultMessage:"Close"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiButton,{onClick:this.saveEdit,isDisabled:!uh(o),fill:!0},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.ruleEditor.ruleEditorFlyout.saveButtonLabel",defaultMessage:"Save"}))))))}return Object(h.jsx)(s.a.Fragment,null,p)}}const wh=Object(sa.withKibana)(rule_editor_flyout_RuleEditorFlyoutUI);class anomalies_table_AnomaliesTableInternal extends n.Component{constructor(e){super(e),Ve()(this,"isShowingAggregatedData",(()=>"second"!==this.props.tableData.interval)),Ve()(this,"toggleRow",(async(e,t=Bg.DETAILS)=>{const a={...this.state.itemIdToExpandedRowMap};if(a[e.rowId])delete a[e.rowId];else{const i="mlcategory"===e.entityName?Object(Ue.get)(this.props.tableData,["examplesByJobId",e.jobId,e.entityValue]):void 0;let n;if(void 0!==i)try{n=await Je.ml.results.getCategoryDefinition(e.jobId,e.source.mlcategory[0]),n.terms&&n.terms.length>Vg&&(n.terms=`${n.terms.substring(0,Vg)}...`),n.regex&&n.regex.length>Vg&&(n.terms=`${n.regex.substring(0,Vg)}...`)}catch(e){console.log("Error fetching category definition for row item.",e)}const s=this.props.selectedJobs.find((({id:t})=>t===e.jobId));a[e.rowId]=Object(h.jsx)(th,{tabIndex:t,anomaly:e,examples:i,definition:n,isAggregatedData:this.isShowingAggregatedData(),filter:this.props.filter,influencerFilter:this.props.influencerFilter,influencersLimit:zg,job:s})}this.setState({itemIdToExpandedRowMap:a})})),Ve()(this,"onMouseOverRow",(e=>{void 0!==this.mouseOverRecord?this.mouseOverRecord.rowId!==e.rowId&&(Kt.rowMouseleave$.next({record:this.mouseOverRecord}),Kt.rowMouseenter$.next({record:e})):Kt.rowMouseenter$.next({record:e}),this.mouseOverRecord=e})),Ve()(this,"onMouseLeaveRow",(()=>{void 0!==this.mouseOverRecord&&(Kt.rowMouseleave$.next({record:this.mouseOverRecord}),this.mouseOverRecord=void 0)})),Ve()(this,"setShowRuleEditorFlyoutFunction",(e=>{this.setState({showRuleEditorFlyout:e})})),Ve()(this,"unsetShowRuleEditorFlyoutFunction",(()=>{this.setState({showRuleEditorFlyout:()=>{}})})),Ve()(this,"onTableChange",(({page:e,sort:t})=>{const{tableState:a,updateTableState:i}=this.props;i({pageIndex:e&&void 0!==e.index?e.index:a.pageIndex,pageSize:e&&void 0!==e.size?e.size:a.pageSize,sortField:t&&void 0!==t.field&&"string"==typeof t.field?t.field:a.sortField,sortDirection:t&&void 0!==t.direction?t.direction:a.sortDirection})})),this.state={itemIdToExpandedRowMap:{},showRuleEditorFlyout:()=>{}}}static getDerivedStateFromProps(e,t){const a=t.itemIdToExpandedRowMap;return void 0!==Object.keys(a).find((t=>void 0===e.tableData.anomalies.find((e=>e.rowId===t))))?{itemIdToExpandedRowMap:{}}:null}render(){const{bounds:e,tableData:t,filter:a,influencerFilter:i,tableState:n}=this.props;if(void 0===t||void 0===t.anomalies||0===t.anomalies.length)return Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceAround"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,null,Object(h.jsx)("h4",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.noMatchingAnomaliesFoundTitle",defaultMessage:"No matching anomalies found"})))));const o=function(e,t,a,i,n,s,o,r,l,c,p,m,b){const f=[{name:Object(h.jsx)(d.EuiScreenReaderOnly,null,Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomaliesTable.showDetailsColumn.screenReaderDescription",defaultMessage:"This column contains clickable controls for showing more details on each anomaly"}))),render:e=>Object(h.jsx)(d.EuiButtonIcon,{onClick:()=>c(e),iconType:l[e.rowId]?"arrowDown":"arrowRight","aria-label":l[e.rowId]?u.i18n.translate("xpack.ml.anomaliesTable.hideDetailsAriaLabel",{defaultMessage:"Hide details"}):u.i18n.translate("xpack.ml.anomaliesTable.showDetailsAriaLabel",{defaultMessage:"Show details"}),"data-row-id":e.rowId,"data-test-subj":"mlAnomaliesListRowDetailsToggle"})},{field:"time","data-test-subj":"mlAnomaliesListColumnTime",name:u.i18n.translate("xpack.ml.anomaliesTable.timeColumnName",{defaultMessage:"Time"}),dataType:"date",scope:"row",render:e=>function(e,t){return"hour"===t?Object(ft.c)(e):"second"===t?Object(ft.d)(e):Object(ft.b)(e)}(e,n),textOnly:!0,sortable:!0},{field:"severity","data-test-subj":"mlAnomaliesListColumnSeverity",name:Object(h.jsx)(d.EuiToolTip,{content:u.i18n.translate("xpack.ml.overview.anomalyDetection.tableSeverityTooltip",{defaultMessage:"A normalized score between 0-100, which indicates the relative significance of the anomaly record results."})},Object(h.jsx)("span",null,u.i18n.translate("xpack.ml.anomaliesTable.severityColumnName",{defaultMessage:"Severity"}),Object(h.jsx)(d.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),render:(e,t)=>Object(h.jsx)(Jg,{score:e,isMultiBucketAnomaly:Object(la.F)(t.source)}),sortable:!0},{field:"detector","data-test-subj":"mlAnomaliesListColumnDetector",name:u.i18n.translate("xpack.ml.anomaliesTable.detectorColumnName",{defaultMessage:"Detector"}),render:(e,t)=>Object(h.jsx)(_g,{detectorDescription:e,numberOfRules:t.rulesLength}),textOnly:!0,sortable:!0}];return e.some((e=>void 0!==e.entityValue))&&f.push({field:"entityValue","data-test-subj":"mlAnomaliesListColumnFoundFor",name:u.i18n.translate("xpack.ml.anomaliesTable.entityValueColumnName",{defaultMessage:"Found for"}),render:(e,t)=>Object(h.jsx)(Fg,{entityName:t.entityName,entityValue:e,filter:p,wrapText:!0}),textOnly:!0,sortable:!0}),e.some((e=>void 0!==e.influencers))&&f.push({field:"influencers","data-test-subj":"mlAnomaliesListColumnInfluencers",name:u.i18n.translate("xpack.ml.anomaliesTable.influencersColumnName",{defaultMessage:"Influenced by"}),render:e=>Object(h.jsx)(influencers_cell_InfluencersCell,{limit:zg,influencers:e,influencerFilter:m}),textOnly:!0,sortable:!0}),e.some((e=>void 0!==e.actual))&&f.push({field:"actualSort","data-test-subj":"mlAnomaliesListColumnActual",name:Object(h.jsx)(d.EuiToolTip,{content:u.i18n.translate("xpack.ml.overview.anomalyDetection.tableActualTooltip",{defaultMessage:"The actual values in the anomaly record results."})},Object(h.jsx)("span",null,u.i18n.translate("xpack.ml.anomaliesTable.actualSortColumnName",{defaultMessage:"Actual"}),Object(h.jsx)(d.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),render:(e,t)=>{const a=Ng.a.getFieldFormat(t.jobId,t.source.detector_index);return Object(Pg.b)(t.actual,t.source.function,a,t.source)},sortable:!0,className:"eui-textBreakNormal"}),e.some((e=>void 0!==e.typical))&&(f.push({field:"typicalSort","data-test-subj":"mlAnomaliesListColumnTypical",name:Object(h.jsx)(d.EuiToolTip,{content:u.i18n.translate("xpack.ml.overview.anomalyDetection.tableTypicalTooltip",{defaultMessage:"The typical values in the anomaly record results."})},Object(h.jsx)("span",null,u.i18n.translate("xpack.ml.anomaliesTable.typicalSortColumnName",{defaultMessage:"Typical"}),Object(h.jsx)(d.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),render:(e,t)=>{const a=Ng.a.getFieldFormat(t.jobId,t.source.detector_index);return Object(Pg.b)(t.typical,t.source.function,a,t.source)},sortable:!0,className:"eui-textBreakNormal"}),!0===e.some((e=>{const t=e.source.function;return"time_of_day"!==t&&"time_of_week"!==t}))&&f.push({field:"metricDescriptionSort","data-test-subj":"mlAnomaliesListColumnDescription",name:u.i18n.translate("xpack.ml.anomaliesTable.metricDescriptionSortColumnName",{defaultMessage:"Description"}),render:(e,t)=>Object(h.jsx)(Sg,{actual:t.actual,typical:t.typical}),textOnly:!0,sortable:!0})),t&&t.length>1&&f.push({field:"jobId","data-test-subj":"mlAnomaliesListColumnJobID",name:u.i18n.translate("xpack.ml.anomaliesTable.jobIdColumnName",{defaultMessage:"Job ID"}),sortable:!0}),!0===e.some((e=>"mlcategory"===e.entityName))&&f.push({"data-test-subj":"mlAnomaliesListColumnCategoryExamples",name:u.i18n.translate("xpack.ml.anomaliesTable.categoryExamplesColumnName",{defaultMessage:"Category examples"}),truncateText:!0,render:e=>{const t=Object(Ue.get)(a,[e.jobId,e.entityValue],[]);return Object(h.jsx)(d.EuiLink,{className:"mlAnomalyCategoryExamples__link",onClick:()=>c(e,Bg.CATEGORY_EXAMPLES)},t.map(((e,t)=>Object(h.jsx)("span",{key:`example${t}`,className:"category-example"},e))))},width:"13%"}),!0===e.some((e=>Ug(e,o,b)))&&f.push({"data-test-subj":"mlAnomaliesListColumnAction",name:u.i18n.translate("xpack.ml.anomaliesTable.actionsColumnName",{defaultMessage:"Actions"}),render:e=>!0===Ug(e,o,b)?Object(h.jsx)(Rg,{anomaly:e,bounds:s,showViewSeriesLink:o,isAggregatedData:i,interval:n,showRuleEditorFlyout:r,sourceIndicesWithGeoFields:b}):null}),f}(t.anomalies,t.jobIds,t.examplesByJobId,this.isShowingAggregatedData(),t.interval,e,t.showViewSeriesLink,this.state.showRuleEditorFlyout,this.state.itemIdToExpandedRowMap,this.toggleRow,a,i,this.props.sourceIndicesWithGeoFields),r=o.some((e=>!0===e.truncateText))?"fixed":"auto",l={sort:{field:n.sortField,direction:n.sortDirection}},c={pageIndex:n.pageIndex,pageSize:n.pageSize,totalItemCount:t.anomalies.length,pageSizeOptions:[10,25,100]};return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(wh,{setShowFunction:this.setShowRuleEditorFlyoutFunction,unsetShowFunction:this.unsetShowRuleEditorFlyoutFunction}),Object(h.jsx)(d.EuiInMemoryTable,{className:"ml-anomalies-table eui-textBreakWord",items:t.anomalies,columns:o,tableLayout:r,pagination:c,sorting:l,itemId:"rowId",itemIdToExpandedRowMap:this.state.itemIdToExpandedRowMap,compressed:!0,rowProps:e=>({onMouseOver:()=>this.onMouseOverRow(e),onMouseLeave:()=>this.onMouseLeaveRow(),"data-test-subj":`mlAnomaliesListRow row-${e.rowId}`}),"data-test-subj":"mlAnomaliesTable",onTableChange:this.onTableChange}))}}const Mh=e=>{const[t,a]=Object(ze.c)("mlAnomaliesTable",{pageIndex:0,pageSize:25,sortField:"severity",sortDirection:"desc"});return Object(h.jsx)(anomalies_table_AnomaliesTableInternal,m()({},e,{tableState:t,updateTableState:a}))},Sh={ERROR:"error",INFO:"info",SUCCESS:"success",WARNING:"warning"};function _h({message:e,status:t,...a}){return Object(h.jsx)(d.EuiCallOut,m()({size:"s"},function(e,t){switch(t){case Sh.ERROR:return{title:e,iconType:"cross",color:"danger"};case Sh.WARNING:return{title:e,iconType:"warning",color:"warning"};case Sh.SUCCESS:return{title:e,iconType:"check",color:"success"};case Sh.INFO:return{title:e,iconType:"iInCircle",color:"primary"}}}(e,t),a))}function Th(e){return[{field:"forecast_create_timestamp",name:u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastsList.createdColumnName",{defaultMessage:"Created"}),dataType:"date",render:e=>Object(ft.d)(e),sortable:!0},{field:"forecast_start_timestamp",name:u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastsList.fromColumnName",{defaultMessage:"From"}),dataType:"date",render:e=>Object(ft.d)(e),sortable:!0},{field:"forecast_end_timestamp",name:u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastsList.toColumnName",{defaultMessage:"To"}),dataType:"date",render:e=>Object(ft.d)(e),sortable:!0},{name:u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastsList.viewColumnName",{defaultMessage:"View"}),width:"60px",render:t=>{const a=u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastsList.viewForecastAriaLabel",{defaultMessage:"View forecast created at {createdDate}",values:{createdDate:Object(ft.d)(t.forecast_create_timestamp)}});return Object(h.jsx)(d.EuiButtonIcon,{onClick:()=>e(t.forecast_id),iconType:"visLine","aria-label":a})}}]}function Ch({forecasts:e,viewForecast:t}){return Object(h.jsx)(d.EuiText,null,Object(h.jsx)("h3",{"aria-describedby":"ml_aria_description_forecasting_modal_view_list",style:{display:"inline",paddingRight:"5px"}},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.forecastsList.previousForecastsTitle",defaultMessage:"Previous forecasts"})),Object(h.jsx)(d.EuiToolTip,{position:"right",content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.forecastsList.listsOfFiveRecentlyRunForecastsTooltip",defaultMessage:"Lists a maximum of five of the most recently run forecasts."})},Object(h.jsx)(d.EuiIcon,{type:"questionInCircle",size:"s"})),Object(h.jsx)(d.EuiInMemoryTable,{items:e,columns:Th(t),pagination:!1,"data-test-subj":"mlModalForecastTable",rowProps:e=>({"data-test-subj":`mlForecastsListRow row-${e.rowId}`})}))}Ch.propType={forecasts:Bl.a.array,viewForecast:Bl.a.func.isRequired};const kh={UNSET:-1,WAITING:0,DONE:1,ERROR:-10};function Fh({state:e}){return e===kh.WAITING?Object(h.jsx)(d.EuiLoadingSpinner,{size:"m"}):e===kh.DONE?Object(h.jsx)(d.EuiIcon,{type:"check",size:"m",color:"primary"}):e===kh.ERROR?Object(h.jsx)(d.EuiIcon,{type:"cross",size:"m",color:"danger"}):void 0}function Ih({forecastProgress:e,jobOpeningState:t,jobClosingState:a}){return Object(h.jsx)("div",null,t!==kh.UNSET&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"s",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"m"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.forecastingModal.openingJobTitle",defaultMessage:"Opening job…"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Fh,{state:t}))),Object(h.jsx)(d.EuiSpacer,{size:"s"})),e!==kh.UNSET&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"s",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"m"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.forecastingModal.runningForecastTitle",defaultMessage:"Running forecast…"}))),e>=0&&Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiToolTip,{position:"top",content:e+"%"},Object(h.jsx)(d.EuiProgress,{size:"l",value:e,max:100}))),e===kh.ERROR&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Fh,{state:kh.ERROR}))),Object(h.jsx)(d.EuiSpacer,{size:"s"})),a!==kh.UNSET&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"s",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"m"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.forecastingModal.closingJobTitle",defaultMessage:"Closing job…"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Fh,{state:a})))))}function Dh({job:e,newForecastDuration:t,isNewForecastDurationValid:a,newForecastDurationErrors:i,onNewForecastDurationChange:n,runForecast:s,isForecastRequested:o,forecastProgress:r,jobOpeningState:l,jobClosingState:c}){const p=function(e,t){return!1===Object(vt.a)()?{isDisabled:!0,isDisabledToolTipText:u.i18n.translate("xpack.ml.timeSeriesExplorer.runControls.noMLNodesAvailableTooltip",{defaultMessage:"There are no ML nodes available."})}:!1===Object(Se.d)("canForecastJob")?{isDisabled:!0,isDisabledToolTipText:Object(Se.e)("canForecastJob")}:e.state!==Ye.c.OPENED&&e.state!==Ye.c.CLOSED?{isDisabled:!0,isDisabledToolTipText:u.i18n.translate("xpack.ml.timeSeriesExplorer.runControls.forecastsCanNotBeRunOnJobsTooltip",{defaultMessage:"Forecasts cannot be run on {jobState} jobs",values:{jobState:e.state}})}:{isDisabled:t}}(e,o),m=Object(h.jsx)(d.EuiFieldText,{name:"forecastDuration",value:t,disabled:p.isDisabled,isInvalid:!a,onChange:n,fullWidth:!0}),b=Object(h.jsx)(d.EuiButton,{onClick:s,isDisabled:p.isDisabled||!a,"data-test-subj":"mlModalForecastButtonRun"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.runControls.runButtonLabel",defaultMessage:"Run"}));return Object(h.jsx)("div",null,Object(h.jsx)(d.EuiText,null,Object(h.jsx)("h3",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.runControls.runNewForecastTitle",defaultMessage:"Run a new forecast"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiForm,null,Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,null,Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.runControls.durationLabel",defaultMessage:"Duration"}),fullWidth:!0,isInvalid:!a,error:i,helpText:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.runControls.forecastMaximumLengthHelpText",defaultMessage:"Length of forecast, up to a maximum of {maximumForecastDurationDays} days. Use s for seconds, m for minutes, h for hours, d for days, w for weeks.",values:{maximumForecastDurationDays:Lh}})},void 0===p.isDisabledToolTipText?m:Object(h.jsx)(d.EuiToolTip,{position:"right",content:p.isDisabledToolTipText},m))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFormRow,{hasEmptyLabelSpace:!0},void 0===p.isDisabledToolTipText?b:Object(h.jsx)(d.EuiToolTip,{position:"left",content:p.isDisabledToolTipText},b))))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),!0===o&&Object(h.jsx)(Ih,{forecastProgress:r,jobOpeningState:l,jobClosingState:c}))}function Ah(e){return Object(h.jsx)(d.EuiModal,{onClose:e.close,maxWidth:860,"data-test-subj":"mlModalForecast"},Object(h.jsx)(d.EuiModalHeader,null,Object(h.jsx)(d.EuiModalHeaderTitle,null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.forecastingModal.forecastingTitle",defaultMessage:"Forecasting"}))),Object(h.jsx)(d.EuiModalBody,null,e.messages.map(((e,t)=>Object(h.jsx)(s.a.Fragment,{key:t},Object(h.jsx)(_h,e),Object(h.jsx)(d.EuiSpacer,{size:"m"})))),e.forecasts.length>0&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Ch,{forecasts:e.forecasts,viewForecast:e.viewForecast}),Object(h.jsx)(d.EuiSpacer,null)),Object(h.jsx)(Dh,e)),Object(h.jsx)(d.EuiModalFooter,null,Object(h.jsx)(d.EuiButtonEmpty,{onClick:e.close,size:"s","data-test-subj":"mlModalForecastButtonClose"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.forecastingModal.closeButtonLabel",defaultMessage:"Close"}))))}Ih.propType={forecastProgress:Bl.a.number,jobOpeningState:Bl.a.number,jobClosingState:Bl.a.number},Dh.propType={job:Bl.a.object,newForecastDuration:Bl.a.string,isNewForecastDurationValid:Bl.a.bool,newForecastDurationErrors:Bl.a.array,onNewForecastDurationChange:Bl.a.func.isRequired,runForecast:Bl.a.func.isRequired,isForecastRequested:Bl.a.bool,forecastProgress:Bl.a.number,jobOpeningState:Bl.a.number,jobClosingState:Bl.a.number},Ah.propType={job:Bl.a.object,forecasts:Bl.a.array,close:Bl.a.func.isRequired,viewForecast:Bl.a.func.isRequired,runForecast:Bl.a.func.isRequired,newForecastDuration:Bl.a.string,isNewForecastDurationValid:Bl.a.bool,newForecastDurationErrors:Bl.a.array,onNewForecastDurationChange:Bl.a.func.isRequired,isForecastRequested:Bl.a.bool,forecastProgress:Bl.a.number,jobOpeningState:Bl.a.number,jobClosingState:Bl.a.number,messages:Bl.a.array};const Lh=3650,Rh="6.1.0",Nh=864e5*Lh,Ph=12e4;function zh(){return{isModalVisible:!1,previousForecasts:[],isForecastRequested:!1,forecastProgress:kh.UNSET,jobOpeningState:kh.UNSET,jobClosingState:kh.UNSET,newForecastDuration:"1d",isNewForecastDurationValid:!0,newForecastDurationErrors:[],messages:[]}}class forecasting_modal_ForecastingModalUI extends n.Component{constructor(e){super(e),Ve()(this,"addMessage",((e,t,a=!1)=>{const i={message:e,status:t};this.setState((e=>({messages:a?[i]:[...e.messages,i]})))})),Ve()(this,"viewForecast",(e=>{this.props.setForecastId(e),this.closeModal()})),Ve()(this,"onNewForecastDurationChange",(e=>{const t=[];let a=!0;const i=Object(Ke.a)(e.target.value);null===i?(a=!1,t.push(u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.invalidDurationFormatErrorMessage",{defaultMessage:"Invalid duration format"}))):i.asMilliseconds()>Nh?(a=!1,t.push(u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.forecastDurationMustNotBeGreaterThanMaximumErrorMessage",{defaultMessage:"Forecast duration must not be greater than {maximumForecastDurationDays} days",values:{maximumForecastDurationDays:Lh}}))):0===i.asMilliseconds()&&(a=!1,t.push(u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.forecastDurationMustNotBeZeroErrorMessage",{defaultMessage:"Forecast duration must not be zero"}))),this.setState({newForecastDuration:e.target.value,isNewForecastDurationValid:a,newForecastDurationErrors:t})})),Ve()(this,"checkJobStateAndRunForecast",(()=>{this.setState({isForecastRequested:!0,messages:[]}),this.props.job.state===Ye.c.CLOSED?this.openJobAndRunForecast():this.runForecast(!1)})),Ve()(this,"openJobAndRunForecast",(()=>{this.setState({jobOpeningState:kh.WAITING}),Ge.a.openJob(this.props.job.job_id).then((()=>{this.setState({jobOpeningState:kh.DONE}),this.runForecast(!0)})).catch((e=>{console.log("Time series forecast modal - could not open job:",e),this.addMessage(u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.errorWithOpeningJobBeforeRunningForecastErrorMessage",{defaultMessage:"Error opening job before running forecast"}),Sh.ERROR),this.setState({jobOpeningState:kh.ERROR})}))})),Ve()(this,"runForecastErrorHandler",((e,t)=>{this.setState({forecastProgress:kh.ERROR}),console.log("Time series forecast modal - error running forecast:",e);const a=e?Object(ei.b)(e):void 0;a&&a.length>0?this.addMessage(u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.errorRunningForecastMessage",{defaultMessage:"An error has occurred running the forecast: {errorMessage}",values:{errorMessage:a}}),Sh.ERROR,!0):this.addMessage(u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.unexpectedResponseFromRunningForecastErrorMessage",{defaultMessage:"Unexpected response from running forecast. The request may have failed."}),Sh.ERROR,!0),!0===t&&(this.setState({jobClosingState:kh.WAITING}),Ge.a.closeJob(this.props.job.job_id).then((()=>{this.setState({jobClosingState:kh.DONE})})).catch((e=>{console.log("Time series forecast modal - could not close job:",e),this.addMessage(u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.errorWithClosingJobErrorMessage",{defaultMessage:"Error closing job"}),Sh.ERROR),this.setState({jobClosingState:kh.ERROR})})))})),Ve()(this,"runForecast",(e=>{this.setState({forecastProgress:0});const t=Object(Ke.a)(this.state.newForecastDuration).asSeconds();Di.runForecast(this.props.job.job_id,`${t}s`).then((t=>{void 0!==t.forecast_id?this.waitForForecastResults(t.forecast_id,e):this.runForecastErrorHandler(t,e)})).catch((t=>this.runForecastErrorHandler(t,e)))})),Ve()(this,"waitForForecastResults",((e,t)=>{let a=0,i=0;this.forecastChecker=setInterval((()=>{Di.getForecastRequestStats(this.props.job,e).then((n=>{const s=Object(Ue.get)(n,["stats","forecast_progress"],a),o=Object(Ue.get)(n,["stats","forecast_status"]);s>a&&this.setState({forecastProgress:Math.round(100*s)});let r=Object(Ue.get)(n,["stats","forecast_messages"],[]);r=r.map((e=>({message:e,status:Sh.WARNING}))),this.setState({messages:r}),o===Ye.b.FINISHED?(clearInterval(this.forecastChecker),!0===t?(this.setState({jobClosingState:kh.WAITING}),Ge.a.closeJob(this.props.job.job_id).then((()=>{this.setState({jobClosingState:kh.DONE}),this.props.setForecastId(e),this.closeAfterRunningForecast()})).catch((t=>{console.log("Time series forecast modal - could not close job:",t),this.addMessage(u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.errorWithClosingJobAfterRunningForecastErrorMessage",{defaultMessage:"Error closing job after running forecast"}),Sh.ERROR),this.setState({jobClosingState:kh.ERROR}),this.props.setForecastId(e)}))):(this.props.setForecastId(e),this.closeAfterRunningForecast())):s===a?(i+=250,i>Ph&&(console.log("Forecast request has not progressed for 120000ms. Cancelling check."),this.addMessage(u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.noProgressReportedForNewForecastErrorMessage",{defaultMessage:"No progress reported for the new forecast for {WarnNoProgressMs}ms.An error may have occurred whilst running the forecast.",values:{WarnNoProgressMs:Ph}}),Sh.ERROR),this.props.setForecastId(e),this.setState({forecastProgress:kh.ERROR}),clearInterval(this.forecastChecker))):(s>a&&(a=s),i=0)})).catch((e=>{console.log("Time series forecast modal - error loading stats of forecast from elasticsearch:",e),this.addMessage(u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.errorWithLoadingStatsOfRunningForecastErrorMessage",{defaultMessage:"Error loading stats of running forecast."}),Sh.ERROR),this.setState({forecastProgress:kh.ERROR}),clearInterval(this.forecastChecker)}))}),250)})),Ve()(this,"openModal",(()=>{const e=this.props.job;if("object"==typeof e){const{timefilter:t}=this.props.kibana.services.data.query.timefilter,a=t.getActiveBounds(),i={term:{forecast_status:Ye.b.FINISHED}};Di.getForecastsSummary(e,i,a.min.valueOf(),5).then((e=>{this.setState({previousForecasts:e.forecasts})})).catch((e=>{console.log("Time series forecast modal - error obtaining forecasts summary:",e),this.addMessage(u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.errorWithObtainingListOfPreviousForecastsErrorMessage",{defaultMessage:"Error obtaining list of previous forecasts"}),Sh.ERROR)}));const n=this.props.entities.map((e=>e.fieldName));n.length>0&&Je.ml.getCardinalityOfFields({index:e.datafeed_config.indices,fieldNames:n,query:e.datafeed_config.query,timeFieldName:e.data_description.time_field,earliestMs:e.data_counts.earliest_record_timestamp,latestMs:e.data_counts.latest_record_timestamp}).then((e=>{let t=1;Object.values(e).forEach((e=>{t*=e})),t>100&&this.addMessage(u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.dataContainsMorePartitionsMessage",{defaultMessage:"Note that this data contains more than {warnNumPartitions} partitions so running a forecast may take a long time and consume a high amount of resource",values:{warnNumPartitions:100}}),Sh.WARNING)})).catch((e=>{console.log("Time series forecast modal - error obtaining cardinality of fields:",e)})),this.setState({isModalVisible:!0})}})),Ve()(this,"closeAfterRunningForecast",(()=>{0===this.state.messages.length&&setTimeout((()=>{this.closeModal()}),1e3)})),Ve()(this,"closeModal",(()=>{null!==this.forecastChecker&&clearInterval(this.forecastChecker),this.setState(zh())})),this.state=zh(),this.forecastChecker=null}render(){let e=!1,t=null;const{job:a}=this.props;void 0!==a&&(void 0!==a.analysis_config.detectors[this.props.detectorIndex].over_field_name?(e=!0,t=u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.forecastingNotAvailableForPopulationDetectorsMessage",{defaultMessage:"Forecasting is not available for population detectors with an over field"})):!1===Object(Gt.m)(a,Rh)&&(e=!0,t=u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastingModal.forecastingOnlyAvailableForJobsCreatedInSpecifiedVersionMessage",{defaultMessage:"Forecasting is only available for jobs created in version {minVersion} or later",values:{minVersion:Rh}})));const i=Object(h.jsx)(d.EuiButton,{onClick:this.openModal,isDisabled:e,"data-test-subj":"mlSingleMetricViewerButtonForecast"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.forecastingModal.forecastButtonLabel",defaultMessage:"Forecast"}));return Object(h.jsx)("div",null,e?Object(h.jsx)(d.EuiToolTip,{position:"left",content:t},i):i,this.state.isModalVisible&&Object(h.jsx)(Ah,{job:this.props.job,forecasts:this.state.previousForecasts,close:this.closeModal,viewForecast:this.viewForecast,runForecast:this.checkJobStateAndRunForecast,newForecastDuration:this.state.newForecastDuration,onNewForecastDurationChange:this.onNewForecastDurationChange,isNewForecastDurationValid:this.state.isNewForecastDurationValid,newForecastDurationErrors:this.state.newForecastDurationErrors,isForecastRequested:this.state.isForecastRequested,forecastProgress:this.state.forecastProgress,jobOpeningState:this.state.jobOpeningState,jobClosingState:this.state.jobClosingState,messages:this.state.messages}))}}const Bh=Object(sa.withKibana)(forecasting_modal_ForecastingModalUI);var Vh=a(245);const Jh=[{value:"auto",text:u.i18n.translate("xpack.ml.controls.selectInterval.autoLabel",{defaultMessage:"Auto"})},{value:"hour",text:u.i18n.translate("xpack.ml.controls.selectInterval.hourLabel",{defaultMessage:"1 hour"})},{value:"day",text:u.i18n.translate("xpack.ml.controls.selectInterval.dayLabel",{defaultMessage:"1 day"})},{value:"second",text:u.i18n.translate("xpack.ml.controls.selectInterval.showAllLabel",{defaultMessage:"Show all"})}];function Uh(e){const t=Jh.find((t=>t.value===e));let a={display:Jh[0].text,val:Jh[0].value};return void 0!==t&&(a={display:t.text,val:t.value}),a}const Gh=Uh("auto"),qh=()=>{const[e,t]=Object(ze.c)("mlSelectInterval",Gh);return[e,t]},$h=()=>{const[e,t]=qh();return Object(h.jsx)(Wh,{interval:e,onChange:t})},Wh=({interval:e,onChange:t})=>Object(h.jsx)(d.EuiSelect,{"data-test-subj":"mlAnomalyIntervalControls",prepend:u.i18n.translate("xpack.ml.controls.selectInterval.intervalLabel",{defaultMessage:"Interval"}),append:Object(h.jsx)(d.EuiToolTip,{content:u.i18n.translate("xpack.ml.controls.selectInterval.intervalTooltip",{defaultMessage:"Show only the highest severity anomaly for each interval (such as hour or day) or show all anomalies in the selected time period."})},Object(h.jsx)(d.EuiIcon,{type:"questionInCircle",color:"subdued"})),compressed:!0,options:Jh,value:e.val,onChange:e=>{t(Uh(e.target.value))},"aria-label":u.i18n.translate("xpack.ml.controls.selectInterval.ariaLabel",{defaultMessage:"Select interval"})});var Hh=a(153);const Yh=({dataNotChartable:e,entities:t})=>Object(h.jsx)(d.EuiEmptyPrompt,{iconType:"iInCircle",title:Object(h.jsx)("h2",null,u.i18n.translate("xpack.ml.timeSeriesExplorer.noResultsFoundLabel",{defaultMessage:"No results found"})),body:e?Object(h.jsx)("p",null,u.i18n.translate("xpack.ml.timeSeriesExplorer.dataNotChartableDescription",{defaultMessage:"Model plot is not collected for the selected {entityCount, plural, one {entity} other {entities}}\nand the source data cannot be plotted for this detector.",values:{entityCount:t.length}})):Object(h.jsx)("p",null,u.i18n.translate("xpack.ml.timeSeriesExplorer.tryWideningTheTimeSelectionDescription",{defaultMessage:"Try widening the time selection or moving further back in time."}))}),Xh=({viewId:e,selectedJobs:t})=>{const a=Object(n.useRef)(!1),i=Object(Te.g)(),s=Object(Te.h)(),o=0===(null!=t?t:[]).filter((e=>e.isSingleMetricViewerJob)).length,r=Object(n.useMemo)((()=>{var a;return[{id:"timeseriesexplorer",label:"explorer"===e&&o?u.i18n.translate("xpack.ml.anomalyResultsViewSelector.singleMetricViewerDisabledLabel",{defaultMessage:"Selected {jobsCount, plural, one {job is} other {jobs are}} not viewable in the Single Metric Viewer",values:{jobsCount:null!==(a=null==t?void 0:t.length)&&void 0!==a?a:0}}):u.i18n.translate("xpack.ml.anomalyResultsViewSelector.singleMetricViewerLabel",{defaultMessage:"View results in the Single Metric Viewer"}),iconType:"visLine",value:Fe.b.SINGLE_METRIC_VIEWER,"data-test-subj":"mlAnomalyResultsViewSelectorSingleMetricViewer",isDisabled:"explorer"===e&&o},{id:"explorer",label:u.i18n.translate("xpack.ml.anomalyResultsViewSelector.anomalyExplorerLabel",{defaultMessage:"View results in the Anomaly Explorer"}),iconType:"visTable",value:Fe.b.ANOMALY_EXPLORER,"data-test-subj":"mlAnomalyResultsViewSelectorExplorer"}]}),[o,null==t?void 0:t.length]),[l]=Object(ze.d)("_g");return Object(n.useEffect)((()=>(a.current=!0,()=>{a.current=!1})),[]),Object(h.jsx)(d.EuiButtonGroup,{legend:u.i18n.translate("xpack.ml.anomalyResultsViewSelector.buttonGroupLegend",{defaultMessage:"Anomaly results view selector"}),name:"anomalyResultsViewSelector","data-test-subj":"mlAnomalyResultsViewSelector",options:r,idSelected:e,onChange:e=>(async e=>{if(a.current){const t=await i.getUrl({page:e,pageState:{globalState:l}});await s(t)}})(e),isIconOnly:!0})};var Qh=a(191),Kh=a(276);const Zh=({children:e,dateFormatTz:t,resizeRef:a,noSingleMetricJobsFound:i})=>{const{services:{docLinks:n}}=Object(Te.d)(),o=n.links.ml.anomalyDetection;return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)("div",{className:"ml-time-series-explorer",ref:a,"data-test-subj":"mlPageSingleMetricViewer"},Object(h.jsx)(vn.a,null,Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Xh,{viewId:"timeseriesexplorer"})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Kh.a,{title:u.i18n.translate("xpack.ml.timeSeriesExplorer.pageTitle",{defaultMessage:"Single Metric Viewer"})})))),i?null:Object(h.jsx)(Qh.a,{dateFormatTz:t,singleSelection:!0,timeseriesOnly:!0}),e,Object(h.jsx)(_e.a,{docLink:o})))},ej="CLEAR",tj="SET_DETECTOR_INDEX",aj="SET_ENTITIES",ij="SET_FORECAST_ID",nj="SET_ZOOM",sj="SET_FUNCTION_DESCRIPTION",oj=500,rj=10,lj="timestamp";function cj(e,t){const a=e.analysis_config,i=a.detectors[t],n={jobId:e.job_id,detectorIndex:t,metricFunction:i.function===la.n.LAT_LONG?la.n.LAT_LONG:Object(Gt.s)(i.function),timeField:e.data_description.time_field,interval:e.analysis_config.bucket_span,datafeedConfig:e.datafeed_config,summaryCountFieldName:e.analysis_config.summary_count_field_name};void 0!==i.field_name&&(n.metricFieldName=i.field_name);const s=a.summary_count_field_name;if(n.metricFunction===la.b.COUNT&&void 0!==s&&s!==la.a&&s!==la.u){let t;const a=Object(Ue.get)(e.datafeed_config,"aggregations")||Object(Ue.get)(e.datafeed_config,"aggs");void 0!==a&&Object.values(a).length>0&&(t=Object(Ue.get)(Object.values(a)[0],["aggregations",s,la.b.CARDINALITY,"field"])||Object(Ue.get)(Object.values(a)[0],["aggs",s,la.b.CARDINALITY,"field"])),i.function!==la.n.NON_ZERO_COUNT&&i.function!==la.n.LOW_NON_ZERO_COUNT&&i.function!==la.n.HIGH_NON_ZERO_COUNT&&i.function!==la.n.COUNT&&i.function!==la.n.HIGH_COUNT&&i.function!==la.n.LOW_COUNT||void 0===t?(n.metricFunction=la.b.SUM,n.metricFieldName=s):(n.metricFunction=la.b.CARDINALITY,n.metricFieldName=void 0)}return n}const dj={getMetricData:function(e,t,a,i,n,s,o){if(Object(Gt.n)(e,t)&&Object(Gt.o)(e,t,a)){const o=[],r=e.analysis_config.detectors[t];if(void 0!==r.partition_field_name){const e=Object(Ue.find)(a,{fieldName:r.partition_field_name});void 0!==e&&o.push({fieldName:"partition_field_name",fieldValue:e.fieldName},{fieldName:"partition_field_value",fieldValue:e.fieldValue})}if(void 0!==r.over_field_name){const e=Object(Ue.find)(a,{fieldName:r.over_field_name});void 0!==e&&o.push({fieldName:"over_field_name",fieldValue:e.fieldName},{fieldName:"over_field_value",fieldValue:e.fieldValue})}if(void 0!==r.by_field_name){const e=Object(Ue.find)(a,{fieldName:r.by_field_name});void 0!==e&&o.push({fieldName:"by_field_name",fieldValue:e.fieldName},{fieldName:"by_field_value",fieldValue:e.fieldValue})}return ca.mlResultsService.getModelPlotOutput(e.job_id,t,o,i,n,s)}{const r={success:!0,results:{}},l=cj(e,t);return ca.mlResultsService.getMetricData(l.datafeedConfig.indices.join(","),a,l.datafeedConfig.query,null!=o?o:l.metricFunction,l.metricFieldName,l.summaryCountFieldName,l.timeField,i,n,s,null==l?void 0:l.datafeedConfig).pipe(Object(Ii.map)((e=>(Object(Ue.each)(e.results,((e,t)=>{r.results[t]={actual:e}})),r))))}},getChartDetails:function(e,t,a,i,n){return new Promise(((s,o)=>{const r={success:!0,results:{functionLabel:"",entityData:{entities:[]}}},l=cj(e,t);let c=l.metricFunction;void 0!==l.metricFieldName&&(c+=" ",c+=l.metricFieldName),r.results.functionLabel=c;const d=Object(Ue.filter)(a,(e=>null===e.fieldValue));if(0===d.length)r.results.entityData.count=1,r.results.entityData.entities=a,s(r);else{const e=d.map((e=>e.fieldName));Je.ml.getCardinalityOfFields({index:l.datafeedConfig.indices.join(","),fieldNames:e,query:l.datafeedConfig.query,timeFieldName:l.timeField,earliestMs:i,latestMs:n}).then((e=>{Object(Ue.each)(d,(t=>{r.results.entityData.entities.push({fieldName:t.fieldName,cardinality:Object(Ue.get)(e,t.fieldName,0)})})),s(r)})).catch((e=>{o(e)}))}}))}};function uj(e){return e.filter(Gt.r).map((e=>{const t=Object(Ke.a)(e.analysis_config.bucket_span);return{id:e.job_id,selected:!1,bucketSpanSeconds:t.asSeconds()}}))}function pj(e,t){const a=[];return!0===t?Object(Ue.each)(e,((e,t)=>{a.push({date:new Date(+t),lower:e.modelLower,value:e.actual,upper:e.modelUpper})})):Object(Ue.each)(e,((e,t)=>{a.push({date:new Date(+t),value:e.actual})})),a}function mj(e){const t=[];return Object(Ue.each)(e,((e,a)=>{t.push({date:new Date(+a),isForecast:!0,lower:e.forecastLower,value:e.prediction,upper:e.forecastUpper})})),t}function bj(e,t,a){let i;if(void 0===e)return i;for(let a=0;aObject(c.of)({annotations:{},totalCount:0,error:Object(ei.b)(e),success:!1})))),void 0!==i?(()=>{let e;const l=r.analysis_config.detectors[t],c=Object(Gt.s)(l.function);return n||"sum"!==c&&"count"!==c||(e={avg:"sum",max:"sum",min:"sum"}),Di.getForecastData(r,t,i,s,o.min.valueOf(),o.max.valueOf(),a.asMilliseconds(),e)})():Object(c.of)(null)]).pipe(Object(Ii.map)((([e,t,i,s,o])=>{const c=t.records.sort(((e,t)=>e[lj]-t[lj])).reverse(),d=i.events[r.job_id];let u=pj(e.results,n);u=function(e,t,a,i,n){const s=[],o=a.asMilliseconds();let r;return void 0!==e&&e.length>0&&(r=e[e.length-1].date.getTime()),t.forEach((t=>{const i=t[lj];if(void 0===bj(e,i,a)){const e=Math.floor(i/o)*o;-1===s.indexOf(e)&&e!==r&&s.push(e)}})),s.sort(((e,t)=>e-t)),s.forEach((t=>{const a={date:new Date(t),value:null};!0===i&&(a.upper=null,a.lower=null),e.push(a)})),t.forEach((t=>{const i=t[lj];if(t.function===la.n.METRIC&&t.function_description!==n)return;const s=bj(e,i,a);if(void 0!==s){const e=t.record_score,a=s.anomalyScore;if(void 0===a||a0&&(s.byFieldName=t.by_field_name,s.numberOfCauses=e.length,1===e.length)){const e=t.causes[0];s.actual=e.actual,s.typical=e.typical,null===s.value&&(s.value=e.actual)}}void 0!==t.anomaly_score_explanation&&void 0!==t.anomaly_score_explanation.multi_bucket_impact&&(s.multiBucketImpact=t.anomaly_score_explanation.multi_bucket_impact),s.isMultiBucketAnomaly=Object(la.F)(t)}}})),e}(u,c,a,n,l),u=function(e,t,a){if(void 0!==t){const i=[],n=a.asMilliseconds();let s;void 0!==e&&e.length>0&&(s=e[e.length-1].date.getTime());let o=!1;Object(Ue.each)(t,((t,a)=>{const r=function(e,t){let a;if(void 0===e)return a;for(let i=0;ie.date.getTime()-t.date.getTime()))}return e}(u,d,a);const p={scheduledEvents:d,anomalyRecords:c,focusChartData:u};var m;return s&&(void 0!==s.error?(p.focusAnnotationError=s.error,p.focusAnnotationData=[]):p.focusAnnotationData=(null!==(m=s.annotations[r.job_id])&&void 0!==m?m:[]).sort(((e,t)=>e.timestamp-t.timestamp)).map(((e,t)=>(e.key=(t+1).toString(),e)))),o&&(p.focusForecastData=mj(o.results),p.showForecastCheckbox=p.focusForecastData.length>0),p})))}function hj(e,t,a){const i=Ge.a.getJob(a),n=[];if(void 0===i)return n;const s=e,o=i.analysis_config.detectors[s],r=t,l=null==o?void 0:o.partition_field_name,c=null==o?void 0:o.over_field_name,d=null==o?void 0:o.by_field_name;if(void 0!==l){var u;const e=null!==(u=null==r?void 0:r[l])&&void 0!==u?u:null;n.push({fieldType:"partition_field",fieldName:l,fieldValue:e})}if(void 0!==c){var p;const e=null!==(p=null==r?void 0:r[c])&&void 0!==p?p:null;n.push({fieldType:"over_field",fieldName:c,fieldValue:e})}if(void 0!==d&&void 0===c){var m;const e=null!==(m=null==r?void 0:r[d])&&void 0!==m?m:null;n.push({fieldType:"by_field",fieldName:d,fieldValue:e})}return n}function jj(e,t){const a=Og(e);if(Array.isArray(a)&&a.length>=t){const a=e.analysis_config.detectors[t];if((null==a?void 0:a.function)===la.n.METRIC)return!0}return!1}const xj=[{value:"mean",text:u.i18n.translate("xpack.ml.timeSeriesExplorer.plotByAvgOptionLabel",{defaultMessage:"mean"})},{value:"min",text:u.i18n.translate("xpack.ml.timeSeriesExplorer.plotByMinOptionLabel",{defaultMessage:"min"})},{value:"max",text:u.i18n.translate("xpack.ml.timeSeriesExplorer.plotByMaxOptionLabel",{defaultMessage:"max"})}],vj=({functionDescription:e,setFunctionDescription:t,selectedDetectorIndex:a,selectedJobId:i,selectedEntities:s,entityControlsCount:o})=>{const r=Object(qe.c)(),l=Object(n.useCallback)((async(e,a,i,n)=>{const s=await(async({selectedDetectorIndex:e,selectedEntities:t,selectedJobId:a,selectedJob:i},n)=>{if(!jj(i,e))return;const s=[{fieldName:"detector_index",fieldValue:e},...hj(e,t,a).filter((e=>null!==e.fieldValue))];try{const e=await Object(c.lastValueFrom)(ca.mlResultsService.getRecordsForCriteria([i.job_id],s,0,null,null,1));if(Array.isArray(null==e?void 0:e.records)&&1===e.records.length){const t=e.records[0];return null==t?void 0:t.function_description}return la.b.AVG}catch(e){n.displayErrorToast(e,u.i18n.translate("xpack.ml.timeSeriesExplorer.highestAnomalyScoreErrorToastTitle",{defaultMessage:"An error occurred getting record with the highest anomaly score"}))}})({selectedDetectorIndex:e,selectedEntities:a,selectedJobId:i,selectedJob:n},r);t(s)}),[t,r]);return Object(n.useEffect)((()=>{if(void 0!==e)return;const t=Ge.a.getJob(i);if((0===o||o>0&&void 0!==s)&&void 0===e&&jj(t,a)){const e=t.analysis_config.detectors[a];(null==e?void 0:e.function)===la.n.METRIC&&l(a,s,i,t)}}),[t,a,s,i,e,o]),void 0===e?null:Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFormRow,{label:u.i18n.translate("xpack.ml.timeSeriesExplorer.metricPlotByOption",{defaultMessage:"Function"})},Object(h.jsx)(d.EuiSelect,{options:xj,value:e,onChange:e=>t(e.target.value),"aria-label":u.i18n.translate("xpack.ml.timeSeriesExplorer.metricPlotByOptionLabel",{defaultMessage:"Pick function to plot by (min, max, or average) if metric function"})})))},yj=({bounds:e,selectedDetectorIndex:t,selectedJobId:a,appStateHandler:i,children:s,selectedEntities:o,functionDescription:r,setFunctionDescription:l})=>{var u;const{services:{mlServices:{mlApiServices:{results:p}}}}=Object(Te.d)(),m=Object(n.useMemo)((()=>Ge.a.getJob(a)),[a]),b=!(null===(u=m.model_plot_config)||void 0===u||!u.enabled),[f,j]=Object(n.useState)(!1),[x,v]=Object(n.useState)({}),y=Object(n.useMemo)((()=>Og(m)),[m]),O=Object(n.useMemo)((()=>hj(t,o,a)),[t,o,a]),[E,w]=Object(gs.b)(Es.c),M=Object(n.useMemo)((()=>{return{...(e=O.map((e=>e.fieldType)),t=!E||Object.values(E).some((e=>!(null==e||!e.anomalousOnly))),a=!E||Object.values(E).some((e=>!(null==e||!e.applyTimeRange))),e.reduce(((e,i)=>(e[i]={applyTimeRange:a,anomalousOnly:t,sort:{by:"anomaly_score",order:"desc"}},e)),{})),...E||{}};var e,t,a}),[O,E]),S=async(a={})=>{j(!0);const i=t,n=M?Object.fromEntries(Object.entries(M).filter((([e])=>O.some((t=>t.fieldType===e))))):void 0,{partition_field:s,over_field:o,by_field:r}=await Object(c.lastValueFrom)(p.fetchPartitionFieldsValues(m.job_id,a,[{fieldName:"detector_index",fieldValue:i}],e.min.valueOf(),e.max.valueOf(),n)),l={};O.forEach((e=>{let t;(null==s?void 0:s.name)===e.fieldName&&(t=s.values),(null==o?void 0:o.name)===e.fieldName&&(t=o.values),(null==r?void 0:r.name)===e.fieldName&&(t=r.values),l[e.fieldName]=t})),j(!1),v(l)};Object(n.useEffect)((()=>{S()}),[a,t,JSON.stringify(o),M]);const _=Object(Ue.debounce)((async(e,t)=>{await S({[e.fieldType]:t})}),500),T=(e,t)=>{const a={...O.reduce(((e,t)=>(e[t.fieldName]=t.fieldValue,e)),{}),[e.fieldName]:t};i(aj,a)},C=Object(n.useCallback)((e=>{const t=e.target.value;void 0!==t&&i(tj,+t)}),[i]),k=y.map((e=>({value:e.index,text:e.detector_description}))),F=Object(n.useCallback)(((e,t)=>{var a,i;const n={...M[e]?M[e]:{},...t},s={...M};if((null===(a=M[e])||void 0===a?void 0:a.anomalousOnly)!==n.anomalousOnly)for(const e in s)s.hasOwnProperty(e)&&(s[e].anomalousOnly=n.anomalousOnly);if((null===(i=M[e])||void 0===i?void 0:i.applyTimeRange)!==n.applyTimeRange)for(const e in s)s.hasOwnProperty(e)&&(s[e].applyTimeRange=n.applyTimeRange);w({...s,[e]:n})}),[M,w]);let I=!1;return Object(h.jsx)("div",{"data-test-subj":"mlSingleMetricViewerSeriesControls"},Object(h.jsx)(d.EuiFlexGroup,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.detectorLabel",defaultMessage:"Detector"})},Object(h.jsx)(d.EuiSelect,{onChange:C,value:t,options:k,"data-test-subj":"mlSingleMetricViewerDetectorSelect"}))),O.map((e=>{const t=`${e.fieldName}`,a=!I&&null===e.fieldValue;return I=!I&&a,Object(h.jsx)(Tg.b,{entity:e,entityFieldValueChanged:T,isLoading:f,onSearchChange:_,config:M[e.fieldType],onConfigChange:F,forceSelection:a,key:t,options:(i=x[e.fieldName],Array.isArray(i)?i.map((e=>({label:""===e.value?Tg.a:e.value,value:e}))):[]),isModelPlotEnabled:b});var i})),Object(h.jsx)(vj,{selectedJobId:a,selectedDetectorIndex:t,selectedEntities:o,functionDescription:r,setFunctionDescription:l,entityControlsCount:O.length}),s))};var Oj=a(246),Ej=a(185);function wj(e,t,a,i){this.contextGroup=e,this.data=t,this.drawBounds=a,this.swimlaneHeight=i,this.mask=this.contextGroup.append("g").attr("class","mask"),this.leftGroup=this.mask.append("g").attr("class","left-mask"),this.rightGroup=this.mask.append("g").attr("class","right-mask"),this.leftPolygon=this.leftGroup.append("polygon"),this.rightPolygon=this.rightGroup.append("polygon"),!0===this.drawBounds&&(this.leftGroup.append("path").attr("class","left area bounds"),this.rightGroup.append("path").attr("class","right area bounds")),this.leftGroup.append("path").attr("class","left values-line"),this.rightGroup.append("path").attr("class","right values-line"),this._x=null,this._y=null}wj.prototype.style=function(e,t){return this.leftGroup.style(e,t),this.rightGroup.style(e,t),this},wj.prototype.x=function(e){return null==e?this._x:(this._x=e,this)},wj.prototype.y=function(e){return null==e?this._y:(this._y=e,this)},wj.prototype.redraw=function(){const e=this._y.domain(),t=e[0],a=e[1],i=this._x.domain(),n=i[0],s=i[1],o=this,r=this.data.filter((function(e){return e.dateo.to}));if(!0===this.drawBounds){const e=sp.a.svg.area().x((function(e){return o._x(e.date)||1})).y0((function(e){return o._y(Math.min(a,Math.max(e.lower,t)))})).y1((function(e){return o._y(Math.max(t,Math.min(e.upper,a)))})).defined((e=>null!==e.lower&&null!==e.upper));this.leftGroup.select(".left.area.bounds").attr("d",e(r)),this.rightGroup.select(".right.area.bounds").attr("d",e(l))}const c=sp.a.svg.line().x((function(e){return o._x(e.date)})).y((function(e){return o._y(e.value)})).defined((e=>null!==e.value));this.leftGroup.select(".left.values-line").attr("d",c(r)),Object(Ej.f)(r,this.leftGroup,c,1),this.rightGroup.select(".right.values-line").attr("d",c(l)),Object(Ej.f)(l,this.rightGroup,c,1);const d=this._x(n),u=this._y(t)+this.swimlaneHeight,p=this._x(this.from),m=this._x(this.to),b=this._y(t)+this.swimlaneHeight,f=this._x(s);return this.leftPolygon.attr("points",d+","+u+" "+p+","+u+" "+p+",0 "+d+",0"),this.rightPolygon.attr("points",m+","+b+" "+f+","+b+" "+f+",0 "+m+",0"),this},wj.prototype.reveal=function(e){return this.from=e[0],this.to=e[1],this.redraw(),this};const Mj="mlAnnotationMask";function Sj(){const{annotationUpdatesService:e}=this.props,t=this.focusXScale,a=sp.a.svg.brush().x(t).on("brushend",function(){const{selectedJob:t}=this.props,i=a.extent(),n=i[0].getTime(),s=i[1].getTime();if(n===s)return void e.setValue(null);const o={timestamp:n,end_timestamp:s,annotation:"",job_id:t.job_id,type:ta.ANNOTATION};e.setValue(o)}.bind(this));return a}function _j(e){const t={};return e.forEach(((a,i)=>{if(void 0!==a.key){const n=e.filter(((e,t)=>tvoid 0===a.end_timestamp||void 0===i.end_timestamp||void 0===i.key||i.timestampa.end_timestamp&&i.end_timestamp>a.end_timestamp?e:t[i.key]+1),0)}})),t}function Tj(e){sp.a.selectAll(".mlAnnotation").each((function(t){const a=sp.a.select(this);t._id===e._id?a.selectAll(".mlAnnotationRect").classed("mlAnnotationRect-isHighlight",!0):(a.selectAll(".mlAnnotationTextRect").classed("mlAnnotationTextRect-isBlur",!0),a.selectAll(".mlAnnotationText").classed("mlAnnotationText-isBlur",!0),a.selectAll(".mlAnnotationRect").classed("mlAnnotationRect-isBlur",!0))}))}function Cj(){sp.a.selectAll(".mlAnnotation").each((function(){const e=sp.a.select(this);e.selectAll(".mlAnnotationTextRect").classed("mlAnnotationTextRect-isBlur",!1),e.selectAll(".mlAnnotationRect").classed("mlAnnotationRect-isHighlight",!1).classed("mlAnnotationRect-isBlur",!1),e.selectAll(".mlAnnotationText").classed("mlAnnotationText-isBlur",!1)}))}const kj=335,Fj=25,Ij=Ej.a+4,Dj={top:10,right:10,bottom:15,left:40},Aj=[{duration:bt.a.duration(1,"h"),label:"1h"},{duration:bt.a.duration(12,"h"),label:"12h"},{duration:bt.a.duration(1,"d"),label:"1d"},{duration:bt.a.duration(1,"w"),label:"1w"},{duration:bt.a.duration(2,"w"),label:"2w"},{duration:bt.a.duration(1,"M"),label:"1M"}],Lj=sp.a.scale.threshold().domain([3,25,50,75,100]).range(["#d2e9f7","#8bc8fb","#ffdd00","#ff7e00","#fe5050"]),Rj=sp.a.scale.threshold().domain([3,25,50,75,100]).range(["#dce7ed","#b0c5d6","#b1a34e","#b17f4e","#c88686"]);class timeseries_chart_TimeseriesChartIntl extends n.Component{constructor(...e){super(...e),Ve()(this,"rowMouseenterSubscriber",null),Ve()(this,"rowMouseleaveSubscriber",null),Ve()(this,"contextChartInitialized",!1),Ve()(this,"drawContextBrush",(e=>{const{contextChartSelected:t}=this.props,a=this.brush,i=this.contextXScale,n=this.mask;a.x(i).on("brush",c).on("brushend",(function(){const n=a.empty()?i.domain():a.extent(),s=n[0].getTime(),o=n[1].getTime();void 0!==d.selectedBounds&&d.selectedBounds.min.valueOf()===s&&d.selectedBounds.max.valueOf()===o||(e.selectAll(".swimlane-cell").style("fill",(e=>{const t=e.date.getTime();return to?Rj(e.score):Lj(e.score)})),d.selectedBounds={min:bt()(s),max:bt()(o)},t({from:n[0],to:n[1]}))})),e.append("g").attr("class","x brush").call(a).selectAll("rect").attr("y",-1).attr("height",91).attr("width",this.vizWidth);const s=a.extent();e.selectAll(".w rect").attr("x",-10).attr("width",10),e.selectAll(".e rect").attr("transform",null).attr("width",10);const o=e.append("rect").attr("class","top-border").attr("y",-2).attr("height",3),r=e.append("foreignObject").attr("width",10).attr("height",90).attr("class","brush-handle").attr("x",i(s[0])-10).html('\n
\n \n \n \n
'),l=e.append("foreignObject").attr("width",10).attr("height",90).attr("class","brush-handle").attr("x",i(s[1])+0).html('\n
\n \n \n \n
');function c(){const e=a.extent();n.reveal(e),r.attr("x",i(e[0])-10),l.attr("x",i(e[1])+0),o.attr("x",i(e[0])+1);const t=Math.max(0,i(e[1])-i(e[0])-2);o.attr("width",t);const s=a.empty();sp.a.selectAll(".brush-handle").style("visibility",s?"hidden":"visible")}c();const d=this})),Ve()(this,"drawSwimlane",((e,t,a)=>{const{contextAggregationInterval:i,swimlaneData:n}=this.props,s=n;if(void 0===s)return;const o=this.calculateContextXAxisDomain(),r=sp.a.time.scale().range([0,t]).domain(o),l=sp.a.scale.linear().range([a,0]).domain([0,a]),c=sp.a.svg.axis().scale(r).orient("bottom").innerTickSize(-a).outerTickSize(0),d=sp.a.svg.axis().scale(l).orient("left").tickValues(l.domain()).innerTickSize(-t).outerTickSize(0),u=e.append("g");u.append("g").attr("class","x axis").attr("transform","translate(0,"+a+")").call(c),u.append("g").attr("class","y axis").call(d);const p=o[0].getTime();let m=t/((o[1].getTime()-p)/i.asMilliseconds());m<1&&(m=1),e.append("g").attr("class","swimlane-cells").selectAll("rect").data(s).enter().append("rect").attr("x",(e=>r(e.date))).attr("y",0).attr("rx",0).attr("ry",0).attr("class",(e=>e.score>0?"swimlane-cell":"swimlane-cell-hidden")).attr("width",m).attr("height",a).style("fill",(e=>Lj(e.score)))})),Ve()(this,"calculateContextXAxisDomain",(()=>{const{bounds:e,contextAggregationInterval:t,swimlaneData:a}=this.props;let i=e.min.valueOf();void 0!==a&&a.length>0&&(i=Math.min(a[0].date.getTime(),e.min.valueOf()));const n=t.asMilliseconds(),s=Math.floor(i/n)*n,o=Math.ceil(e.max.valueOf()/n)*n;return[new Date(s),new Date(o)]})),Ve()(this,"setContextBrushExtent",((e,t)=>{const a=this.brush,i=a.extent(),n=[e,t];a.extent(n),a(sp.a.select(".brush")),n[0].getTime()===i[0].getTime()&&n[1].getTime()===i[1].getTime()||a.event(sp.a.select(".brush"))}))}componentWillUnmount(){sp.a.select(this.rootNode).html(""),null!==this.rowMouseenterSubscriber&&this.rowMouseenterSubscriber.unsubscribe(),null!==this.rowMouseleaveSubscriber&&this.rowMouseleaveSubscriber.unsubscribe()}componentDidMount(){const{svgWidth:e}=this.props;this.vizWidth=e-Dj.left-Dj.right;const t=this.vizWidth;this.focusXScale=sp.a.time.scale().range([0,t]),this.focusYScale=sp.a.scale.linear().range([kj,25]);const a=this.focusXScale,i=this.focusYScale;this.focusXAxis=sp.a.svg.axis().scale(a).orient("bottom").innerTickSize(-310).outerTickSize(0).tickPadding(10),this.focusYAxis=sp.a.svg.axis().scale(i).orient("left").innerTickSize(-t).outerTickSize(0).tickPadding(10),this.focusValuesLine=sp.a.svg.line().x((function(e){return a(e.date)})).y((function(e){return i(e.value)})).defined((e=>null!==e.value)),this.focusBoundedArea=sp.a.svg.area().x((function(e){return a(e.date)||1})).y0((function(e){return i(e.upper)})).y1((function(e){return i(e.lower)})).defined((e=>null!==e.lower&&null!==e.upper)),this.contextXScale=sp.a.time.scale().range([0,t]),this.contextYScale=sp.a.scale.linear().range([60,3]),this.fieldFormat=void 0,this.annotateBrush=Sj.call(this),this.brush=sp.a.svg.brush(),this.mask=void 0;const n=this.highlightFocusChartAnomaly.bind(this),s=Tj.bind(this),o=this.unhighlightFocusChartAnomaly.bind(this),r=Cj.bind(this);this.rowMouseenterSubscriber=Kt.rowMouseenter$.subscribe((function({record:e,type:t="anomaly"}){"anomaly"===t?n(e):"annotation"===t&&s(e)})),this.rowMouseleaveSubscriber=Kt.rowMouseleave$.subscribe((function({record:e,type:t="anomaly"}){"anomaly"===t?o(e):r(e)})),this.renderChart(),this.drawContextChartSelection(),this.renderFocusChart()}componentDidUpdate(e){!1!==this.props.renderFocusChartOnly&&e.svgWidth===this.props.svgWidth&&e.showAnnotations===this.props.showAnnotations&&e.annotationData===this.props.annotationData||(this.renderChart(),this.drawContextChartSelection()),this.renderFocusChart(),null===this.props.annotation&&sp.a.select(this.rootNode).select("g.mlAnnotationBrush").call(this.annotateBrush.extent([0,0]))}renderChart(){const{contextChartData:e,contextForecastData:t,detectorIndex:a,modelPlotEnabled:i,selectedJob:n,svgWidth:s,showAnnotations:o}=this.props,r=this.createFocusChart.bind(this),l=this.drawContextElements.bind(this),c=this.focusXScale,d=this.focusYAxis,u=this.focusYScale,p=function(e){return 425+(e?Ij:0)+Fj+Dj.top+Dj.bottom}(o),m=sp.a.select(this.rootNode);if(m.selectAll("*").remove(),void 0===n)return;if(this.fieldFormat=Ng.a.getFieldFormat(n.job_id,a),void 0===e)return;const b=this.fieldFormat,f=m.append("svg").attr("width",s).attr("height",p);let g,h;if(!0===i||void 0!==t&&t.length>0){const a=void 0===t?e:e.concat(t);g=sp.a.min(a,(e=>Math.min(e.value,e.lower))),h=sp.a.max(a,(e=>Math.max(e.value,e.upper)))}else g=sp.a.min(e,(e=>e.value)),h=sp.a.max(e,(e=>e.value));const j=h>0?Math.pow(10,Math.ceil(Math.log10(Math.abs(h)))):h,x=g>=0?g:-1*Math.pow(10,Math.ceil(Math.log10(Math.abs(g))));u.domain([x,j]);let v=0;f.append("g").attr("class","temp-axis-label tick").selectAll("text.temp.axis").data(u.ticks()).enter().append("text").text((e=>void 0!==b?b.convert(e,"text"):u.tickFormat()(e))).each((function(){v=Math.max(this.getBBox().width+d.tickPadding(),v)})).remove(),sp.a.select(".temp-axis-label").remove(),Dj.left=Math.max(v,40),this.vizWidth=Math.max(s-Dj.left-Dj.right,0),c.range([0,this.vizWidth]),d.innerTickSize(-this.vizWidth);const y=f.append("g").attr("class","focus-chart").attr("transform","translate("+Dj.left+","+Dj.top+")"),O=f.append("g").attr("class","context-chart").attr("transform","translate("+Dj.left+","+(kj+Dj.top+Fj)+")");f.append("defs").append("mask").attr("id",Mj).append("rect").attr("x",0).attr("y",0).attr("width",this.vizWidth).attr("height",kj).style("fill","white"),r(y,this.vizWidth,kj),l(O,this.vizWidth,60,30,Ij)}drawContextChartSelection(){const{contextChartData:e,contextForecastData:t,zoomFrom:a,zoomTo:i}=this.props;if(void 0===e)return;let n,s;const o=this.contextXScale.domain()[0].getTime(),r=this.contextXScale.domain()[1].getTime();let l=e;if(void 0!==t&&(l=l.concat(t)),n=a?a.getTime():Object(Ue.reduce)(l,((e,t)=>Math.min(e,t.date.getTime())),new Date(2099,12,31).getTime()),n=Math.max(n,o),s=i?i.getTime():Object(Ue.reduce)(l,((e,t)=>Math.max(e,t.date.getTime())),0),s=Math.min(s,r),n!==o||s!==r){this.setContextBrushExtent(new Date(n),new Date(s));const e={min:bt()(new Date(n)),max:bt()(n)};this.selectedBounds=e}else{const e=this.contextXScale.domain(),t={min:bt()(new Date(e[0])),max:bt()(e[1])};Object(Ue.isEqual)(t,this.selectedBounds)||(this.selectedBounds=t,this.setContextBrushExtent(new Date(e[0]),new Date(e[1])))}}createFocusChart(e,t,a){const{contextForecastData:i}=this.props,n=e.append("g").attr("class","focus-zoom");n.append("rect").attr("x",0).attr("y",0).attr("width",t).attr("height",25).attr("class","chart-border"),this.createZoomInfoElements(n,t);const s=this.annotateBrush.bind(this);let o=0,r=0;null!==this.props.annotation&&(o=this.focusXScale(this.props.annotation.timestamp),r=function(e,t){const a=t(e.timestamp)+1,i=void 0!==e.end_timestamp?t(e.end_timestamp)-1:a+8;return Math.max(8,i-a)}(this.props.annotation,this.focusXScale)),e.append("g").attr("class","mlAnnotationBrush").call(s).selectAll("rect").attr("x",o).attr("y",25).attr("width",r).attr("height",310),e.append("g").classed("mlAnnotations",!0),e.append("rect").attr("x",0).attr("y",25).attr("width",t).attr("height",310).attr("class","chart-border");const l=e.append("g").attr("class","x-axis-background");l.append("rect").attr("x",0).attr("y",a).attr("width",t).attr("height",Fj),l.append("line").attr("x1",0).attr("y1",a).attr("x2",0).attr("y2",a+Fj),l.append("line").attr("x1",t).attr("y1",a).attr("x2",t).attr("y2",a+Fj),l.append("line").attr("x1",0).attr("y1",a+Fj).attr("x2",t).attr("y2",a+Fj);const c=e.append("g");c.append("g").attr("class","x axis").attr("transform","translate(0,"+a+")"),c.append("g").attr("class","y axis"),e.append("path").attr("class","area bounds"),e.append("path").attr("class","values-line"),e.append("g").attr("class","focus-chart-markers"),i&&(e.append("path").attr("class","area forecast").attr("data-test-subj","mlForecastArea"),e.append("path").attr("class","values-line forecast").attr("data-test-subj","mlForecastValuesline"),e.append("g").attr("class","focus-chart-markers forecast").attr("data-test-subj","mlForecastMarkers")),e.append("rect").attr("x",0).attr("y",0).attr("width",t).attr("height",a+24).attr("class","chart-border chart-border-highlight")}renderFocusChart(){const{focusAggregationInterval:e,focusAnnotationData:t,focusChartData:a,focusForecastData:i,modelPlotEnabled:n,selectedJob:s,showAnnotations:o,showForecast:r,showModelBounds:l,zoomFromFocusLoaded:c,zoomToFocusLoaded:d}=this.props,p=Array.isArray(t)?t:[];if(void 0===a)return;const m=a,b=this.contextYScale,f=this.showFocusChartTooltip.bind(this),g=this.props.tooltipService.hide.bind(this.props.tooltipService),h=sp.a.select(".focus-chart"),j=e.expression,x=s.analysis_config.bucket_span;if(sp.a.select(this.rootNode).select(".zoom-aggregation-interval").text(u.i18n.translate("xpack.ml.timeSeriesExplorer.timeSeriesChart.zoomAggregationIntervalLabel",{defaultMessage:"(aggregation interval: {focusAggInt}, bucket span: {bucketSpan})",values:{focusAggInt:j,bucketSpan:x}})),void 0===c||void 0===d)return;const v={min:bt()(c.getTime()),max:bt()(d.getTime())},y=e.asMilliseconds(),O=bt()(Math.floor(v.min.valueOf()/y)*y),E=bt()(Math.ceil(v.max.valueOf()/y)*y);if(this.focusXScale.domain([O.toDate(),E.toDate()]),a.length>0||void 0!==i&&i.length>0){void 0!==this.fieldFormat?this.focusYAxis.tickFormat((e=>this.fieldFormat.convert(e,"text"))):this.focusYAxis.tickFormat(null);let e=0,t=0,a=m;if(r&&void 0!==i&&i.length>0&&(a=m.concat(i)),e=sp.a.min(a,(e=>{let t=e.value;return null===t&&void 0!==e.anomalyScore&&void 0!==e.actual&&(t=Array.isArray(e.actual)?e.actual[0]:e.actual),void 0!==e.lower?null!=t?Math.min(t,e.lower):e.lower:t||0})),t=sp.a.max(a,(e=>{let t=e.value;return null===t&&void 0!==e.anomalyScore&&void 0!==e.actual&&(t=Array.isArray(e.actual)?e.actual[0]:e.actual),void 0!==e.upper?Math.max(t,e.upper):t||0})),t===e&&(this.contextYScale.domain()[0]!==b.domain()[1]&&e>=b.domain()[0]&&t<=b.domain()[1]?(e=b.domain()[0],t=b.domain()[1]):(e-=.05*e,t+=.05*t)),o&&p&&p.length>0){const a=_j(p),i=sp.a.max(Object.keys(a).map((e=>a[e])));t+=Math.abs(t-e)*((i+1)/5)}this.focusYScale.domain([e,t])}else this.focusYScale.domain([0,10]),this.focusYAxis.tickFormat("");const w=Object(Na.c)();w.setInterval("auto"),w.setBounds(v);const M=w.getScaledDateFormat();h.select(".x.axis").call(this.focusXAxis.ticks(Object(Ej.m)(this.vizWidth),M).tickFormat((e=>bt()(e).format(M)))),h.select(".y.axis").call(this.focusYAxis),Object(Ej.g)(h.select(".x.axis"),this.vizWidth),!0===n&&h.select(".area.bounds").attr("d",this.focusBoundedArea(m)).classed("hidden",!l),function(e,t,a,i,n,s,o,r,l){const c={};t.forEach((e=>{if(void 0!==e.key){const t=(e.end_timestamp||0)-e.timestamp;c[e.key]=t}})),t.sort(((e,t)=>void 0===e.key||void 0===t.key?0:c[t.key]-c[e.key]));const d=_j(t),u=function(e){o(e,this)},p=e=>{l.setValue(null),l.setValue(e)},m=e.select(".mlAnnotations").selectAll("g.mlAnnotation").data(t||[],(e=>e._id||""));m.enter().append("g").classed("mlAnnotation",!0);const b=m.selectAll(".mlAnnotationRect").data((e=>[e]));b.enter().append("rect").classed("mlAnnotationRect",!0).attr("mask",`url(#${Mj})`).on("mouseover",u).on("mouseout",r).on("click",p),b.attr("x",(e=>{const t=bt()(e.timestamp);return Math.max(n(t),0)})).attr("y",(e=>26+28*(void 0!==e.key?d[e.key]:1))).attr("height",(e=>308-28*(void 0!==e.key?d[e.key]:1))).attr("width",(e=>{const t=n(bt()(e.timestamp))+1,a=void 0!==e.end_timestamp?n(bt()(e.end_timestamp))-1:t+8;return Math.max(8,a-t)})),b.exit().remove();const f=m.selectAll(".mlAnnotationTextRect").data((e=>[e])),g=m.selectAll(".mlAnnotationText").data((e=>[e]));function h(e){const t=n.domain()[0],a=n.domain()[1],i=bt()(e),s=Math.max(n(t),n(i));return Math.min(n(a)-32,s)}f.enter().append("rect").classed("mlAnnotationTextRect",!0).attr("width",24).attr("height",20).on("mouseover",u).on("mouseout",r).on("click",p),g.enter().append("text").classed("mlAnnotationText",!0).on("mouseover",u).on("mouseout",r).on("click",p),g.attr("x",(e=>h(e.timestamp)+17)).attr("y",(e=>44+28*(void 0!==e.key?d[e.key]:1))).text((e=>e.key)),f.attr("x",(e=>h(e.timestamp)+5)).attr("y",(e=>30+28*(void 0!==e.key?d[e.key]:1))),f.exit().remove(),g.exit().remove(),m.classed("mlAnnotationHidden",!s),m.exit().remove()}(h,p,0,0,this.focusXScale,o,f,g,this.props.annotationUpdatesService),h.select(".mlAnnotationBrush").style("display",o?null:"none"),h.select(".values-line").attr("d",this.focusValuesLine(m)),Object(Ej.f)(m,h,this.focusValuesLine);const S=sp.a.select(".focus-chart-markers").selectAll(".metric-value").data(m.filter((e=>(null!==e.value||"number"==typeof e.anomalyScore)&&!Object(Ej.o)(e))));S.exit().remove(),S.enter().append("circle").attr("r",Ej.b).on("mouseover",(function(e){f(e,this)})).on("mouseout",(()=>this.props.tooltipService.hide())),S.attr("cx",(e=>this.focusXScale(e.date))).attr("cy",(e=>this.focusYScale(e.value))).attr("class",(e=>{let t="metric-value";return void 0!==e.anomalyScore&&(t+=` anomaly-marker ${Object(la.C)(e.anomalyScore).id}`),t}));const _=sp.a.select(".focus-chart-markers").selectAll(".multi-bucket").data(m.filter((e=>null!==e.anomalyScore&&!0===Object(Ej.o)(e))));_.exit().remove(),_.enter().append("path").attr("d",sp.a.svg.symbol().size(Ej.c).type("cross")).on("mouseover",(function(e){f(e,this)})).on("mouseout",(()=>this.props.tooltipService.hide())),_.attr("transform",(e=>`translate(${this.focusXScale(e.date)}, ${this.focusYScale(e.value)})`)).attr("class",(e=>`anomaly-marker multi-bucket ${Object(la.C)(e.anomalyScore).id}`));const T=sp.a.select(".focus-chart-markers").selectAll(".scheduled-event-marker").data(m.filter((e=>void 0!==e.scheduledEvents)));if(T.exit().remove(),T.enter().append("rect").on("mouseover",(function(e){f(e,this)})).on("mouseout",(()=>g())).attr("width",2*Ej.b).attr("height",Ej.d).attr("class","scheduled-event-marker").attr("rx",1).attr("ry",1),T.attr("x",(e=>this.focusXScale(e.date)-Ej.b)).attr("y",(e=>{const t=this.focusYScale(e.value);return isNaN(t)?-338:t-3})),void 0!==i){h.select(".area.forecast").attr("d",this.focusBoundedArea(i)).classed("hidden",!r),h.select(".values-line.forecast").attr("d",this.focusValuesLine(i)).classed("hidden",!r);const e=sp.a.select(".focus-chart-markers.forecast").selectAll(".metric-value").data(i);e.exit().remove(),e.enter().append("circle").attr("r",Ej.b).on("mouseover",(function(e){f(e,this)})).on("mouseout",(()=>this.props.tooltipService.hide())),e.attr("cx",(e=>this.focusXScale(e.date))).attr("cy",(e=>this.focusYScale(e.value))).attr("class","metric-value").classed("hidden",!r)}}createZoomInfoElements(e,t){const{autoZoomDuration:a,bounds:i,modelPlotEnabled:n}=this.props,s=this.setZoomInterval.bind(this),o=i.max.unix()-i.min.unix(),r=10/this.vizWidth*o;let l=10;const c=e.append("text").attr("x",l).attr("y",17).attr("class","zoom-info-text").text(u.i18n.translate("xpack.ml.timeSeriesExplorer.timeSeriesChart.zoomLabel",{defaultMessage:"Zoom:"})),d=[{durationMs:a,label:"auto"}];if(Object(Ue.each)(Aj,(e=>{e.duration.asSeconds()>r&&e.duration.asSeconds(){const a=e.append("a").attr("data-ms",t.durationMs).attr("href","").append("text").attr("x",l).attr("y",17).attr("class","zoom-info-text").text(t.label);l+=a.node().getBBox().width+4})),e.append("text").attr("x",l+6).attr("y",17).attr("class","zoom-info-text zoom-aggregation-interval").text(u.i18n.translate("xpack.ml.timeSeriesExplorer.timeSeriesChart.zoomGroupAggregationIntervalLabel",{defaultMessage:"(aggregation interval: , bucket span: )"})),!1===n){const a=e.append("text").attr("x",300).attr("y",17).attr("class","zoom-info-text").text(u.i18n.translate("xpack.ml.timeSeriesExplorer.timeSeriesChart.modelBoundsNotAvailableLabel",{defaultMessage:"Model bounds are not available"}));a.attr("x",t-(a.node().getBBox().width+10))}sp.a.select(this.rootNode).selectAll(".focus-zoom a").on("click",(function(){sp.a.event.preventDefault(),s(sp.a.select(this).attr("data-ms"))}))}drawContextElements(e,t,a,i){const{bounds:n,contextChartData:s,contextForecastData:o,modelPlotEnabled:r,annotationData:l}=this.props,c=s,d=Array.isArray(l)?[...l].sort(((e,t)=>e.timestamp-t.timestamp)):[];let u=[];if(d.length>0){u=[{start:d[0].timestamp,end:d[0].end_timestamp,annotations:[d[0]]}];let e=d[0].end_timestamp;for(let t=1;t{var t,a;const i=null!==(t=e.lower)&&void 0!==t?t:Number.MAX_VALUE,n=null!==(a=e.upper)&&void 0!==a?a:Number.MIN_VALUE;f.min=Math.min(e.value,i,f.min),f.max=Math.max(e.value,n,f.max)}));let g=f.min,h=f.max;const j={min:g,max:h};if(!0===r||void 0!==o&&o.length>0){const e={min:Number.MAX_VALUE,max:Number.MIN_VALUE};Object(Ue.each)(b,(t=>{e.min=Math.min(t.lower,e.min),e.max=Math.max(t.upper,e.max)})),g=Math.min(g,e.min),h=Math.max(h,e.max),f.max-f.min<.5*(h-g)&&(f.min>g&&(j.min=f.min-.5*(f.max-f.min)),f.maxbt()(e).format(O)));e.datum(c);const w=sp.a.svg.area().x((e=>this.contextXScale(e.date))).y0((e=>this.contextYScale(Math.min(j.max,Math.max(e.lower,j.min))))).y1((e=>this.contextYScale(Math.max(j.min,Math.min(e.upper,j.max))))).defined((e=>null!==e.lower&&null!==e.upper));!0===r&&e.append("path").datum(c).attr("class","area bounds").attr("d",w);const M=sp.a.svg.line().x((e=>this.contextXScale(e.date))).y((e=>this.contextYScale(e.value))).defined((e=>null!==e.value));e.append("path").datum(c).attr("class","values-line").attr("d",M),Object(Ej.f)(c,e,M,1),e.append("g").classed("mlContextAnnotations",!0);const[S,_]=this.contextXScale.range(),T=e.select(".mlContextAnnotations").selectAll("g.mlContextAnnotation").data(u,(e=>`${e.start}-${e.end}`||""));T.enter().append("g").classed("mlContextAnnotation",!0);const C=T.selectAll(".mlContextAnnotationRect").data((e=>[e]));C.enter().append("rect").on("mouseover",(function(e){p(1===e.annotations.length?e.annotations[0]:e,this)})).on("mouseout",(()=>m())).classed("mlContextAnnotationRect",!0),C.attr("x",(e=>{const t=bt()(e.start);let a=this.contextXScale(t);return a-Ej.a<=S&&(a=0),a+Ej.a>=_&&(a=_-Ej.a),a})).attr("y",a+i+2).attr("height",Ej.a).attr("width",(e=>{const t=Math.max(this.contextXScale(bt()(e.start))+1,S),a=Math.min(_,void 0!==e.end?this.contextXScale(bt()(e.end))-1:t+8);return Math.max(8,a-t)})),C.exit().remove(),void 0!==o&&(e.append("path").datum(o).attr("class","area forecast").attr("d",w),e.append("path").datum(o).attr("class","values-line forecast").attr("d",M));const k=e.append("g").attr("class","swimlane").attr("transform","translate(0,"+a+")");this.drawSwimlane(k,t,i),this.mask=new wj(e,s,r,i).x(this.contextXScale).y(this.contextYScale),e.append("g").attr("class","x axis context-chart-axis").call(E),e.selectAll(".x.context-chart-axis text").attr("dy",a-5),Object(Ej.g)(e.selectAll(".x.context-chart-axis"),t),this.drawContextBrush(e)}setZoomInterval(e){const{bounds:t,zoomTo:a}=this.props,i=t.min.valueOf(),n=t.max.valueOf(),s=+e;let o=a.getTime(),r=o-s;r{o.push({label:u.i18n.translate("xpack.ml.timeSeriesExplorer.timeSeriesChart.scheduledEventsLabel",{defaultMessage:"scheduled event{counter}",values:{counter:e.scheduledEvents.length>1?` #${a+1}`:""}}),value:t,seriesIdentifier:{key:s},valueAccessor:`scheduled_events_${a+1}`})})),void 0!==e.annotation){o.length=0,o.push({label:e.annotation});let t=bt()(e.timestamp).format("MMMM Do YYYY, HH:mm");void 0!==e.end_timestamp&&(t+=` - ${bt()(e.end_timestamp).format("MMMM Do YYYY, HH:mm")}`),o.push({label:t,seriesIdentifier:{key:s},valueAccessor:"timespan"})}(null===(a=e.annotations)||void 0===a?void 0:a.length)>1&&e.annotations.forEach((e=>{var t;let a=bt()(e.timestamp).format("MMMM Do YYYY, HH:mm");void 0!==e.end_timestamp&&(a+=` - ${bt()(e.end_timestamp).format("HH:mm")}`),o.push({label:a,value:`${e.annotation}`,seriesIdentifier:{key:"anomaly_timeline",specId:null!==(t=e._id)&&void 0!==t?t:`${e.annotation}-${e.timestamp}-label`},valueAccessor:"annotation"})}));let r=2*Ej.b;if("rect"===t.tagName.toLowerCase()){const e=Number(t.getAttribute("x"));e<0&&(r=Math.abs(e))}this.props.tooltipService.show(o,t,{x:r,y:0})}highlightFocusChartAnomaly(e){const{focusChartData:t,focusAggregationInterval:a}=this.props,i=this.focusXScale,n=this.focusYScale,s=this.showFocusChartTooltip.bind(this),o=bj(t,e.source.timestamp,a);if(void 0!==o){const e=sp.a.select(".focus-chart-markers").selectAll(".focus-chart-highlighted-marker").data([o]);!0===Object(Ej.o)(o)?e.enter().append("path").attr("d",sp.a.svg.symbol().size(Ej.c).type("cross")).attr("transform",(e=>`translate(${i(e.date)}, ${n(e.value)})`)).attr("class",(e=>`anomaly-marker multi-bucket ${Object(la.C)(e.anomalyScore).id} highlighted`)):e.enter().append("circle").attr("r",Ej.b).attr("cx",(e=>i(e.date))).attr("cy",(e=>n(e.value))).attr("class",(e=>`anomaly-marker metric-value ${Object(la.C)(e.anomalyScore).id} highlighted`));const t=sp.a.select(this.rootNode).selectAll(".focus-chart-markers .anomaly-marker.highlighted");t.length&&s(o,t[0][0])}}unhighlightFocusChartAnomaly(){sp.a.select(".focus-chart-markers").selectAll(".anomaly-marker.highlighted").remove(),this.props.tooltipService.hide()}shouldComponentUpdate(){return!0}setRef(e){this.rootNode=e}render(){return Object(h.jsx)("div",{className:"ml-timeseries-chart-react",ref:this.setRef.bind(this)})}}const Nj=e=>{const t=Object(n.useContext)(oa),a=C()(t.isAnnotationInitialized$());return void 0===a?null:Object(h.jsx)(timeseries_chart_TimeseriesChartIntl,m()({annotation:a},e,{annotationUpdatesService:t}))},Pj=({bounds:e,detectorIndex:t,renderFocusChartOnly:a,selectedJob:i,selectedEntities:s,showAnnotations:o,showForecast:r,showModelBounds:l,chartProps:c,lastRefresh:d,contextAggregationInterval:p})=>{const{toasts:b}=Object(Te.i)(),{services:{mlServices:{mlApiServices:f}}}=Object(Te.d)(),g=Object(n.useContext)(oa),[j,x]=Object(n.useState)([]),v=Object(n.useCallback)((e=>{b.addDanger({title:u.i18n.translate("xpack.ml.timeSeriesExplorer.mlSingleMetricViewerChart.annotationsErrorTitle",{defaultMessage:"An error occurred fetching annotations"}),...e?{text:Object(ei.b)(e)}:{}})}),[]);return Object(n.useEffect)((()=>{let a=!1;const n=hj(t,s,i.job_id),o=Array.isArray(n)?n.filter((e=>null!==e.fieldValue)):void 0,r=Object(Na.b)(e,p,!1);return(async e=>{try{const i=await f.annotations.getAnnotations({jobIds:[e],earliestMs:r.min.valueOf(),latestMs:r.max.valueOf(),maxAnnotations:Zt.a,detectorIndex:t,entities:o});a||Array.isArray(i.annotations[e])&&x(i.annotations[e])}catch(e){v(e)}})(i.job_id),()=>{a=!0}}),[i.job_id,t,d,s,e,p]),Object(h.jsx)("div",{className:"ml-timeseries-chart","data-test-subj":"mlSingleMetricViewerChart"},Object(h.jsx)(Oj.a,null,(n=>Object(h.jsx)(Nj,m()({},c,{annotationUpdatesService:g,annotationData:j,bounds:e,detectorIndex:t,renderFocusChartOnly:a,selectedJob:i,showAnnotations:o,showForecast:r,showModelBounds:l,tooltipService:n})))))},zj=({errorMsg:e})=>Object(h.jsx)(d.EuiEmptyPrompt,{iconType:"warning",title:Object(h.jsx)("h2",null,e)}),Bj=({viewBySwimlaneFieldName:e,showFilterMessage:t=!1})=>!1===t?Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.noInfluencersFoundTitle",defaultMessage:"No {viewBySwimlaneFieldName} influencers found",values:{viewBySwimlaneFieldName:e}}):Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.noInfluencersFoundTitleFilterMessage",defaultMessage:"No {viewBySwimlaneFieldName} influencers found for specified filter",values:{viewBySwimlaneFieldName:e}}),Vj=()=>Object(h.jsx)(d.EuiEmptyPrompt,{iconType:"warning",title:Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.noJobSelectedLabel",defaultMessage:"No jobs selected"})),"data-test-subj":"mlNoJobsFound"}),Jj=({hasResults:e,selectedJobsRunning:t})=>{const a=!0===e,i=!1===e;return Object(h.jsx)(d.EuiEmptyPrompt,{iconType:"iInCircle",title:Object(h.jsx)("h2",null,a&&Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.noAnomaliesFoundLabel",defaultMessage:"No anomalies found"}),i&&Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.noResultsFoundLabel",defaultMessage:"No results found"})),body:Object(h.jsx)(s.a.Fragment,null,t&&i&&Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.selectedJobsRunningLabel",defaultMessage:"One or more selected jobs are still running and results may not be available yet."})),!t&&Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.tryWideningTimeSelectionLabel",defaultMessage:"Try widening the time selection or moving further back in time"})))})},Uj=u.i18n.translate("xpack.ml.timeSeriesExplorer.allPartitionValuesLabel",{defaultMessage:"all"});class timeseriesexplorer_TimeSeriesExplorer extends s.a.Component{constructor(...e){super(...e),Ve()(this,"state",{chartDetails:void 0,contextAggregationInterval:void 0,contextChartData:void 0,contextForecastData:void 0,dataNotChartable:!1,entitiesLoading:!1,entityValues:{},focusAnnotationData:[],focusAggregationInterval:{},focusChartData:void 0,focusForecastData:void 0,fullRefresh:!0,hasResults:!1,loadCounter:0,loading:!1,modelPlotEnabled:!1,showAnnotations:!0,showAnnotationsCheckbox:!0,showForecast:!0,showForecastCheckbox:!1,showModelBounds:!0,showModelBoundsCheckbox:!1,svgWidth:0,tableData:void 0,zoomFrom:void 0,zoomTo:void 0,zoomFromFocusLoaded:void 0,zoomToFocusLoaded:void 0,chartDataError:void 0,sourceIndicesWithGeoFields:{}}),Ve()(this,"subscriptions",new c.Subscription),Ve()(this,"resizeRef",Object(n.createRef)()),Ve()(this,"resizeChecker",void 0),Ve()(this,"resizeHandler",(()=>{this.setState({svgWidth:null!==this.resizeRef.current?this.resizeRef.current.offsetWidth-34:0})})),Ve()(this,"unmounted",!1),Ve()(this,"contextChart$",new c.Subject),Ve()(this,"getFieldNamesWithEmptyValues",(()=>this.getControlsForDetector().filter((({fieldValue:e})=>null===e)).map((({fieldName:e})=>e)))),Ve()(this,"arePartitioningFieldsProvided",(()=>0===this.getFieldNamesWithEmptyValues().length)),Ve()(this,"toggleShowAnnotationsHandler",(()=>{this.setState((e=>({showAnnotations:!e.showAnnotations})))})),Ve()(this,"toggleShowForecastHandler",(()=>{this.setState((e=>({showForecast:!e.showForecast})))})),Ve()(this,"toggleShowModelBoundsHandler",(()=>{this.setState({showModelBounds:!this.state.showModelBounds})})),Ve()(this,"setFunctionDescription",(e=>{this.props.appStateHandler(sj,e)})),Ve()(this,"previousChartProps",{}),Ve()(this,"previousShowAnnotations",void 0),Ve()(this,"previousShowForecast",void 0),Ve()(this,"previousShowModelBounds",void 0),Ve()(this,"tableFilter",((e,t,a)=>{const i=this.getControlsForDetector(),n=i.find((({fieldName:t})=>t===e));if(void 0===n)return;const{appStateHandler:s}=this.props;let o="";if("+"===a&&n.fieldValue!==t)o=t;else{if("-"!==a||n.fieldValue!==t)return;o=null}const r={...i.reduce(((e,t)=>(e[t.fieldName]=t.fieldValue,e)),{}),[n.fieldName]:o};s(aj,r)})),Ve()(this,"contextChartSelectedInitCallDone",!1),Ve()(this,"contextChartSelected",(e=>{const t={from:e.from.toISOString(),to:e.to.toISOString()};Object(Ue.isEqual)(this.props.zoom,t)&&void 0!==this.state.focusChartData&&this.props.previousRefresh===this.props.lastRefresh||(this.contextChart$.next(e),this.props.appStateHandler(nj,t))})),Ve()(this,"loadAnomaliesTableData",((e,t)=>{const{dateFormatTz:a,selectedDetectorIndex:i,selectedJobId:n,tableInterval:s,tableSeverity:o,functionDescription:r}=this.props,l=Ge.a.getJob(n),c=this.getControlsForDetector();return Je.ml.results.getAnomaliesTableData([l.job_id],this.getCriteriaFields(i,c),[],s,o,e,t,a,Zt.b,void 0,void 0,r).pipe(Object(Ii.map)((e=>{const t=e.anomalies,a=Ge.a.detectorsByJob;return t.forEach((e=>{const t=e.jobId,i=Object(Ue.get)(a,[t,e.detectorIndex]);e.detector=Object(Ue.get)(i,["detector_description"],e.source.function_description);const n=i.custom_rules;void 0!==n&&(e.rulesLength=n.length),Object(Ue.has)(Ge.a.customUrlsByJob,t)&&(e.customUrls=Ge.a.customUrlsByJob[t])})),{tableData:{anomalies:t,interval:e.interval,examplesByJobId:e.examplesByJobId,showViewSeriesLink:!1}}})))})),Ve()(this,"setForecastId",(e=>{this.props.appStateHandler(ij,e)})),Ve()(this,"displayErrorToastMessages",((e,t)=>{this.props.toastNotificationService&&this.props.toastNotificationService.displayErrorToast(e,t,2e3),this.setState({loading:!1,chartDataError:t})})),Ve()(this,"loadSingleMetricData",((e=!0)=>{const{autoZoomDuration:t,bounds:a,selectedDetectorIndex:i,selectedForecastId:n,selectedJobId:s,zoom:o,functionDescription:r}=this.props,{loadCounter:l}=this.state,c=Ge.a.getJob(s);if(void 0===c)return;if(jj(c,i)&&void 0===r)return;const d=la.v.toES(r);this.contextChartSelectedInitCallDone=!1;const p=this.getControlsForDetector();this.setState({fullRefresh:e,loadCounter:l+1,loading:!0,chartDataError:void 0,...e?{chartDetails:void 0,contextChartData:void 0,contextForecastData:void 0,focusChartData:void 0,focusForecastData:void 0,modelPlotEnabled:Object(Gt.n)(c,i)&&Object(Gt.o)(c,i,p),hasResults:!1,dataNotChartable:!1}:{}},(()=>{const{loadCounter:e,modelPlotEnabled:r}=this.state,l=uj(Ge.a.jobs),c=Ge.a.getJob(s),m=i;let b=3;const f={},g=i=>{if(b--,0===b&&i===e){if(f.hasResults=Array.isArray(f.contextChartData)&&f.contextChartData.length>0||Array.isArray(f.contextForecastData)&&f.contextForecastData.length>0,f.loading=!1,f.contextChartData.length&&!0===this.arePartitioningFieldsProvided()){let e=function(e,t,a){if(void 0!==e){const i=zu()(e.from,"YYYY-MM-DDTHH:mm:ss.SSSZ",!0),n=zu()(e.to,"YYYY-MM-DDTHH:mm:ss.SSSZ",!0),s=Object(Na.b)(a,t,!0),o=s.min,r=s.max;if(i.isValid()&&n.isValid&&n.isAfter(i)&&i.isBetween(o,r,null,"[]")&&n.isBetween(o,r,null,"[]"))return[i.toDate(),n.toDate()]}}(o,f.contextAggregationInterval,a);void 0!==e&&this.previousSelectedForecastId===this.props.selectedForecastId||(e=function(e,t,a,i){const n=void 0!==i&&i.length>0,s=!1===n?a:a.concat(i),o=s[0].date,r=s[s.length-1].date;let l,c;if(!0===n){const t=i[0].date,a=i[i.length-1].date;c=Math.min(t.getTime()+e/2,a.getTime()),l=Math.max(c-e,o.getTime())}else c=r.getTime()+t.asMilliseconds(),l=Math.max(o.getTime(),c-e);return[new Date(l),new Date(c)]}(t,f.contextAggregationInterval,f.contextChartData,f.contextForecastData),this.previousSelectedForecastId=this.props.selectedForecastId),this.contextChartSelected({from:e[0],to:e[1]})}this.setState(f)}},h=p.filter((e=>null!==e.fieldValue));if(!1===r&&!1===Object(Gt.p)(c,m)&&h.length>0)return f.hasResults=!1,f.loading=!1,f.dataNotChartable=!0,void this.setState(f);f.contextAggregationInterval=fj(a,oj,l,c);const j=Object(Na.b)(a,f.contextAggregationInterval,!1),x=e;if(dj.getMetricData(c,m,h,j.min.valueOf(),j.max.valueOf(),f.contextAggregationInterval.asMilliseconds(),d).toPromise().then((e=>{const t=pj(e.results,r);f.contextChartData=t,g(x)})).catch((e=>{const t=u.i18n.translate("xpack.ml.timeSeriesExplorer.metricDataErrorMessage",{defaultMessage:"Error getting metric data"});this.displayErrorToastMessages(e,t)})),ca.mlResultsService.getRecordMaxScoreByTime(c.job_id,this.getCriteriaFields(m,p),j.min.valueOf(),j.max.valueOf(),f.contextAggregationInterval.asMilliseconds(),d).then((e=>{const t=function(e){const t=[];return Object(Ue.each)(e,((e,a)=>{t.push({date:new Date(+a),score:e.score})})),t}(e.results);f.swimlaneData=t,g(x)})).catch((e=>{const t=u.i18n.translate("xpack.ml.timeSeriesExplorer.bucketAnomalyScoresErrorMessage",{defaultMessage:"Error getting bucket anomaly scores"});this.displayErrorToastMessages(e,t)})),dj.getChartDetails(c,m,p,j.min.valueOf(),j.max.valueOf()).then((e=>{f.chartDetails=e.results,g(x)})).catch((e=>{this.displayErrorToastMessages(e,u.i18n.translate("xpack.ml.timeSeriesExplorer.entityCountsErrorMessage",{defaultMessage:"Error getting entity counts"}))})),void 0!==n){let e;b++;const t=c.analysis_config.detectors[m],a=Object(Gt.s)(t.function);!1!==r||"sum"!==a&&"count"!==a||(e={avg:"sum",max:"sum",min:"sum"}),Di.getForecastData(c,m,n,h,j.min.valueOf(),j.max.valueOf(),f.contextAggregationInterval.asMilliseconds(),e).toPromise().then((e=>{f.contextForecastData=mj(e.results),g(x)})).catch((e=>{this.displayErrorToastMessages(e,u.i18n.translate("xpack.ml.timeSeriesExplorer.forecastDataErrorMessage",{defaultMessage:"Error loading forecast data for forecast ID {forecastId}",values:{forecastId:n}}))}))}}))})),Ve()(this,"getControlsForDetector",(()=>{const{selectedDetectorIndex:e,selectedEntities:t,selectedJobId:a}=this.props;return hj(e,t,a)}))}getFocusAggregationInterval(e){const{selectedJobId:t}=this.props,a=uj(Ge.a.jobs),i=Ge.a.getJob(t);return fj({min:zu()(e.from),max:zu()(e.to)},oj,a,i)}getFocusData(e){const{selectedJobId:t,selectedForecastId:a,selectedDetectorIndex:i,functionDescription:n}=this.props,{modelPlotEnabled:s}=this.state,o=Ge.a.getJob(t);if(jj(o,i)&&void 0===n)return;const r=this.getControlsForDetector(),l={min:zu()(e.from),max:zu()(e.to)},c=this.getFocusAggregationInterval(e),d=Object(Na.b)(l,c,!1);return gj(this.getCriteriaFields(i,r),i,c,a,s,r.filter((e=>null!==e.fieldValue)),d,o,n)}getCriteriaFields(e,t){return[{fieldName:"detector_index",fieldValue:e},...t.filter((e=>null!==e.fieldValue))]}loadForJobId(e){const{appStateHandler:t,selectedDetectorIndex:a}=this.props,i=Ge.a.getJob(e);if(void 0===i)return;const n=Og(i);let s=void 0!==a?a:n[0].index;if(void 0===Object(Ue.find)(n,{index:s})){const e=u.i18n.translate("xpack.ml.timeSeriesExplorer.requestedDetectorIndexNotValidWarningMessage",{defaultMessage:"Requested detector index {detectorIndex} is not valid for job {jobId}",values:{detectorIndex:s,jobId:i.job_id}});this.props.toastNotificationService&&this.props.toastNotificationService.displayWarningToast(e),s=n[0].index}s!==a&&t(tj,s),Ng.a.populateFormats([e])}componentDidMount(){const{invalidTimeRangeError:e}=this.props;e&&this.props.toastNotificationService&&this.props.toastNotificationService.displayWarningToast(u.i18n.translate("xpack.ml.timeSeriesExplorer.invalidTimeRangeInUrlCallout",{defaultMessage:"The time filter was changed to the full range for this job due to an invalid default time filter. Check the advanced settings for {field}.",values:{field:Mt}})),this.resizeChecker=new Eg.ResizeChecker(this.resizeRef.current),this.resizeChecker.on("resize",(()=>{this.resizeHandler()})),this.resizeHandler(),this.subscriptions.add(this.contextChart$.pipe(Object(Ii.tap)((e=>{this.setState({zoomFrom:e.from,zoomTo:e.to})})),Object(Ii.debounceTime)(500),Object(Ii.tap)((e=>{const{contextChartData:t,contextForecastData:a,focusChartData:i,zoomFromFocusLoaded:n,zoomToFocusLoaded:s}=this.state;(void 0!==t&&0!==t.length||void 0!==a&&0!==a.length)&&(!1===this.contextChartSelectedInitCallDone&&void 0===i||n.getTime()!==e.from.getTime()||s.getTime()!==e.to.getTime())&&(this.contextChartSelectedInitCallDone=!0,this.setState({loading:!0,fullRefresh:!1}))})),Object(Ii.switchMap)((e=>{const{selectedJobId:t}=this.props,a=uj(Ge.a.jobs),i=Ge.a.getJob(t),n={min:zu()(e.from),max:zu()(e.to)},s=fj(n,oj,a,i),o=Object(Na.b)(n,s,!1);return Object(c.forkJoin)([this.getFocusData(e),this.loadAnomaliesTableData(o.min.valueOf(),o.max.valueOf())])})),Object(Ii.withLatestFrom)(this.contextChart$)).subscribe((([[e,t],a])=>{const{modelPlotEnabled:i}=this.state;this.setState({focusAggregationInterval:this.getFocusAggregationInterval({from:a.from,to:a.to}),loading:!1,showModelBoundsCheckbox:i&&e.focusChartData.length>0,zoomFromFocusLoaded:a.from,zoomToFocusLoaded:a.to,...e,...t})}))),this.componentDidUpdate()}componentDidUpdate(e){if(void 0===e||e.selectedJobId!==this.props.selectedJobId){const e=Ge.a.getJob(this.props.selectedJobId);this.contextChartSelectedInitCallDone=!1,Object(em.e)([e],this.props.dataViewsService).then((({getSourceIndicesWithGeoFieldsResp:e})=>this.setState({fullRefresh:!1,loading:!0,sourceIndicesWithGeoFields:e},(()=>{this.loadForJobId(this.props.selectedJobId)})))).catch(console.error)}if(void 0!==e&&e.selectedForecastId===this.props.selectedForecastId||void 0!==this.props.selectedForecastId&&(this.setState({showForecast:!0}),void 0!==e&&(this.previousSelectedForecastId=e.selectedForecastId)),void 0===e||!Object(Ue.isEqual)(e.bounds,this.props.bounds)||!Object(Ue.isEqual)(e.lastRefresh,this.props.lastRefresh)&&0!==e.lastRefresh||!Object(Ue.isEqual)(e.selectedDetectorIndex,this.props.selectedDetectorIndex)||!Object(Ue.isEqual)(e.selectedEntities,this.props.selectedEntities)||e.selectedForecastId!==this.props.selectedForecastId||e.selectedJobId!==this.props.selectedJobId||e.functionDescription!==this.props.functionDescription){const t=void 0===e||!Object(Ue.isEqual)(e.bounds,this.props.bounds)||!Object(Ue.isEqual)(e.selectedDetectorIndex,this.props.selectedDetectorIndex)||!Object(Ue.isEqual)(e.selectedEntities,this.props.selectedEntities)||e.selectedForecastId!==this.props.selectedForecastId||e.selectedJobId!==this.props.selectedJobId||e.functionDescription!==this.props.functionDescription;this.loadSingleMetricData(t)}if(void 0===e)return;e.tableInterval===this.props.tableInterval&&e.tableSeverity===this.props.tableSeverity||(()=>{const{zoomFrom:e,zoomTo:t}=this.state;void 0!==e&&void 0!==t&&this.loadAnomaliesTableData(e.getTime(),t.getTime()).subscribe((e=>this.setState(e)))})()}componentWillUnmount(){this.subscriptions.unsubscribe(),this.resizeChecker.destroy(),this.unmounted=!0}render(){const{autoZoomDuration:e,bounds:t,dateFormatTz:a,lastRefresh:i,selectedDetectorIndex:o,selectedJobId:r}=this.props,{chartDetails:l,contextAggregationInterval:c,contextChartData:p,contextForecastData:m,dataNotChartable:b,focusAggregationInterval:f,focusAnnotationError:j,focusAnnotationData:x,focusChartData:v,focusForecastData:y,fullRefresh:O,hasResults:E,loading:w,modelPlotEnabled:M,showAnnotations:S,showAnnotationsCheckbox:_,showForecast:T,showForecastCheckbox:C,showModelBounds:k,showModelBoundsCheckbox:F,svgWidth:I,swimlaneData:D,tableData:A,zoomFrom:L,zoomTo:R,zoomFromFocusLoaded:N,zoomToFocusLoaded:P,chartDataError:z,sourceIndicesWithGeoFields:B}=this.state,V={modelPlotEnabled:M,contextChartData:p,contextChartSelected:this.contextChartSelected,contextForecastData:m,contextAggregationInterval:c,swimlaneData:D,focusAnnotationData:x,focusChartData:v,focusForecastData:y,focusAggregationInterval:f,svgWidth:I,zoomFrom:L,zoomTo:R,zoomFromFocusLoaded:N,zoomToFocusLoaded:P,autoZoomDuration:e},J=uj(Ge.a.jobs);if(void 0===o||void 0===Ge.a.getJob(r))return Object(h.jsx)(Zh,{dateFormatTz:a,resizeRef:this.resizeRef},Object(h.jsx)(Vj,null));const U=Ge.a.getJob(r),G=this.getControlsForDetector(),q=this.getFieldNamesWithEmptyValues(),$=this.arePartitioningFieldsProvided(),W=Og(U);let H=!0;return Object(Ue.isEqual)(this.previousChartProps.focusForecastData,V.focusForecastData)&&Object(Ue.isEqual)(this.previousChartProps.focusChartData,V.focusChartData)&&Object(Ue.isEqual)(this.previousChartProps.focusAnnotationData,V.focusAnnotationData)&&this.previousShowForecast===T&&this.previousShowModelBounds===k&&this.props.previousRefresh===i&&(H=!1),this.previousChartProps=V,this.previousShowForecast=T,this.previousShowModelBounds=k,Object(h.jsx)(Zh,{dateFormatTz:a,resizeRef:this.resizeRef},q.length>0&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiCallOut,{title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.singleMetricRequiredMessage",defaultMessage:"To view a single metric, select {missingValuesCount, plural, one {a value for {fieldName1}} other {values for {fieldName1} and {fieldName2}}}.",values:{missingValuesCount:q.length,fieldName1:q[0],fieldName2:q[1]}}),iconType:"help",size:"s"}),Object(h.jsx)(d.EuiSpacer,{size:"m"})),Object(h.jsx)(yj,{selectedJobId:r,appStateHandler:this.props.appStateHandler,selectedDetectorIndex:o,selectedEntities:this.props.selectedEntities,bounds:t,functionDescription:this.props.functionDescription,setFunctionDescription:this.setFunctionDescription},$&&Object(h.jsx)(d.EuiFlexItem,{style:{textAlign:"right"}},Object(h.jsx)(d.EuiFormRow,{hasEmptyLabelSpace:!0,style:{maxWidth:"100%"}},Object(h.jsx)(Bh,{job:U,detectorIndex:o,entities:G,setForecastId:this.setForecastId,className:"forecast-controls"})))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),O&&!0===w&&Object(h.jsx)(Vh.a,{label:u.i18n.translate("xpack.ml.timeSeriesExplorer.loadingLabel",{defaultMessage:"Loading"})}),!1===w&&void 0!==z&&Object(h.jsx)(zj,{errorMsg:z}),$&&J.length>0&&(!1===O||!1===w)&&!1===E&&void 0===z&&Object(h.jsx)(Yh,{dataNotChartable:b,entities:G}),$&&J.length>0&&(!1===O||!1===w)&&!0===E&&Object(h.jsx)("div",null,Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h2",null,Object(h.jsx)("span",null,u.i18n.translate("xpack.ml.timeSeriesExplorer.singleTimeSeriesAnalysisTitle",{defaultMessage:"Single time series analysis of {functionLabel}",values:{functionLabel:l.functionLabel}}))," ",1===l.entityData.count&&Object(h.jsx)(d.EuiTextColor,{color:"success",size:"s",component:"span"},l.entityData.entities.length>0&&"(",l.entityData.entities.map((e=>`${e.fieldName}: ${e.fieldValue}`)).join(", "),l.entityData.entities.length>0&&")"),1!==l.entityData.count&&Object(h.jsx)(d.EuiTextColor,{color:"success",size:"s",component:"span"},l.entityData.entities.map(((e,t)=>Object(h.jsx)(n.Fragment,{key:e.fieldName},u.i18n.translate("xpack.ml.timeSeriesExplorer.countDataInChartDetailsDescription",{defaultMessage:"{openBrace}{cardinalityValue} distinct {fieldName} {cardinality, plural, one {} other { values}}{closeBrace}",values:{openBrace:0===t?"(":"",closeBrace:t===l.entityData.entities.length-1?")":"",cardinalityValue:0===e.cardinality?Uj:e.cardinality,cardinality:e.cardinality,fieldName:e.fieldName}}),t!==l.entityData.entities.length-1?", ":""))))))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(wg,null))),Object(h.jsx)(d.EuiFlexGroup,{style:{float:"right"}},F&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiCheckbox,{id:"toggleModelBoundsCheckbox",label:u.i18n.translate("xpack.ml.timeSeriesExplorer.showModelBoundsLabel",{defaultMessage:"show model bounds"}),checked:k,onChange:this.toggleShowModelBoundsHandler})),_&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiCheckbox,{id:"toggleAnnotationsCheckbox",label:u.i18n.translate("xpack.ml.timeSeriesExplorer.annotationsLabel",{defaultMessage:"annotations"}),checked:S,onChange:this.toggleShowAnnotationsHandler})),C&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiCheckbox,{id:"toggleShowForecastCheckbox",label:Object(h.jsx)("span",{"data-test-subj":"mlForecastCheckbox"},u.i18n.translate("xpack.ml.timeSeriesExplorer.showForecastLabel",{defaultMessage:"show forecast"})),checked:T,onChange:this.toggleShowForecastHandler}))),Object(h.jsx)(Pj,{chartProps:V,contextAggregationInterval:c,bounds:t,detectorIndex:o,renderFocusChartOnly:H,selectedJob:U,selectedEntities:this.props.selectedEntities,showAnnotations:S,showForecast:T,showModelBounds:k,lastRefresh:i}),void 0!==j&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiTitle,{"data-test-subj":"mlAnomalyExplorerAnnotations error",size:"xs"},Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.annotationsErrorTitle",defaultMessage:"Annotations"}))),Object(h.jsx)(d.EuiPanel,null,Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.timeSeriesExplorer.annotationsErrorCallOutTitle",{defaultMessage:"An error occurred loading annotations:"}),color:"danger",iconType:"warning"},Object(h.jsx)("p",null,j))),Object(h.jsx)(d.EuiSpacer,{size:"m"})),x&&x.length>0&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiAccordion,{id:"mlAnnotationsAccordion",buttonContent:Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.annotationsTitle",defaultMessage:"Annotations {badge}",values:{badge:Object(h.jsx)(d.EuiBadge,{color:"hollow"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.annotationsTitleTotalCount",defaultMessage:"Total: {count}",values:{count:x.length}}))}}))),"data-test-subj":"mlAnomalyExplorerAnnotations loaded"},Object(h.jsx)(vi,{chartDetails:l,detectorIndex:o,detectors:W,jobIds:[this.props.selectedJobId],annotations:x,isSingleMetricViewerLinkVisible:!1,isNumberBadgeVisible:!0})),Object(h.jsx)(d.EuiSpacer,{size:"m"})),Object(h.jsx)(Mi,{chartDetails:l,detectorIndex:o,detectors:W}),Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.anomaliesTitle",defaultMessage:"Anomalies"}))),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFlexGroup,{direction:"row",gutterSize:"l",responsive:!0},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Hh.a,null)),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)($h,null))),Object(h.jsx)(d.EuiSpacer,{size:"m"})),$&&J.length>0&&!0===E&&Object(h.jsx)(Mh,{bounds:t,tableData:A,filter:this.tableFilter,sourceIndicesWithGeoFields:B,selectedJobs:[{id:U.job_id,modelPlotEnabled:M}]}))}}const Gj=()=>{const e=Object(Te.f)({page:Fe.b.ANOMALY_DETECTION_CREATE_JOB}),t=!Object(Se.f)("canCreateJob")||!Object(ae.c)();return Object(h.jsx)(d.EuiEmptyPrompt,{"data-test-subj":"mlNoSingleMetricJobsFound",iconType:"warning",title:Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.noSingleMetricJobsFoundLabel",defaultMessage:"No single metric jobs found"})),actions:Object(h.jsx)(d.EuiButton,{color:"primary",fill:!0,href:e,disabled:t},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.timeSeriesExplorer.createNewSingleMetricJobLinkText",defaultMessage:"Create new single metric job"}))})};var qj=a(251);function $j(){const{overlays:e,services:t}=Object(Te.d)(),a=Object(n.useRef)();return Object(n.useEffect)((function(){return()=>{a.current&&a.current.close()}}),[]),Object(n.useCallback)(((i={singleSelection:!1,withTimeRangeSelector:!0,timeseriesOnly:!1})=>{const{uiSettings:n}=t,s=n.get("dateFormat:tz"),o="Browser"!==s?s:bt.a.tz.guess(),r={groupsMap:Object(Qh.b)([]),jobsMap:{}};return new Promise((async(n,s)=>{try{a.current=e.openFlyout(Object(h.jsx)(sa.KibanaContextProvider,{services:t},Object(h.jsx)(qj.a,{selectedIds:[],withTimeRangeSelector:i.withTimeRangeSelector,dateFormatTz:o,singleSelection:!!i.singleSelection,timeseriesOnly:!!i.timeseriesOnly,onFlyoutClose:()=>{s(),a.current.close()},onSelectionConfirmed:e=>{n(e),a.current.close()},maps:r})))}catch(e){s(e)}}))}),[e,t])}const Wj=(e,t)=>({id:"timeseriesexplorer",path:Object(Ee.c)(te.a.SINGLE_METRIC_VIEWER),title:u.i18n.translate("xpack.ml.anomalyDetection.singleMetricViewerLabel",{defaultMessage:"Single Metric Viewer"}),render:(e,t)=>Object(h.jsx)(Hj,m()({},e,{deps:t})),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("ANOMALY_DETECTION_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.anomalyDetection.singleMetricViewerLabel",{defaultMessage:"Single Metric Viewer"})}],enableDatePicker:!0}),Hj=({deps:e})=>{const t=Object(Te.c)(),a=Object(Te.j)(),{context:i,results:s}=Ie("full",["canGetJobs"],{...Sn(),jobs:Ge.a.loadJobsWrapper,jobsWithTimeRange:()=>t.jobs.jobsWithTimerange(Object(em.f)())}),o=Object(n.useMemo)((()=>new ea.a),[]);return Object(h.jsx)(Ee.b,{context:i},Object(h.jsx)(oa.Provider,{value:o},s?Object(h.jsx)(Yj,{config:a,jobsWithTimeRange:s.jobsWithTimeRange.jobs}):null))},Yj=({config:e,jobsWithTimeRange:t})=>{var a,i,s,o,r,l,c,d,p,m,b,f,g,j,x,v,y;const{services:{data:{dataViews:O}}}=Object(Te.d)(),{toasts:E}=Object(Te.i)(),w=Object(qe.c)(),[M,S]=Object(ze.c)(Fe.b.SINGLE_METRIC_VIEWER),[_,T]=Object(ze.d)("_g"),[C,k]=Object(n.useState)(),F=Object(ee.i)({timeRangeSelector:!0,autoRefreshSelector:!0}),[I,D]=Object(n.useState)(!1),A=Object(Qu.a)(),L=yg()(null!==(a=null==A?void 0:A.lastRefresh)&&void 0!==a?a:0),[R,N]=Object(n.useState)(void 0);Object(n.useEffect)((()=>{if(void 0!==(null==_?void 0:_.time)){"invalid"===_.time.mode&&D(!0);const e=F.getBounds();void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max)&&N(F.getBounds())}}),[null==_||null===(i=_.time)||void 0===i?void 0:i.from,null==_||null===(s=_.time)||void 0===s?void 0:s.to,null==_||null===(o=_.time)||void 0===o?void 0:o.ts]);const P=null==_||null===(r=_.ml)||void 0===r?void 0:r.jobIds;Array.isArray(P)&&P.sort();const z=yg()(P),B=!Object(Ue.isEqual)(z,P),V=B||null==M||null===(l=M.mlTimeSeriesExplorer)||void 0===l?void 0:l.entities,J=B||null==M||null===(c=M.mlTimeSeriesExplorer)||void 0===c?void 0:c.forecastId,U=B||null==M||null===(d=M.mlTimeSeriesExplorer)||void 0===d?void 0:d.functionDescription,G=B||null==M||null===(p=M.mlTimeSeriesExplorer)||void 0===p?void 0:p.zoom,q=void 0!==C?Ge.a.getJob(C):void 0,$=uj(Ge.a.jobs),W=q&&null!==(m=null===(b=Og(q)[0])||void 0===b?void 0:b.index)&&void 0!==m?m:0,H=B?W:null!==(f=null==M||null===(g=M.mlTimeSeriesExplorer)||void 0===g?void 0:g.detectorIndex)&&void 0!==f?f:W;let Y;void 0!==C&&void 0!==q&&(Y=function(e,t){const a=Object(Ue.find)(e,{id:t.job_id}).bucketSpanSeconds;let i=1e3*a*499;const n=Math.floor(550),s=Object(Na.c)();s.setInterval("auto"),s.setBarTarget(Math.floor(oj)),s.setMaxBars(n);const o=(new Date).getTime(),r=zu()(o),l=zu()(o-i);s.setBounds({min:l,max:r});const c=s.getIntervalToNearestMultiple(a).asSeconds();return c!==a&&(i*=a/c),i}($,q));const X=Object(n.useCallback)(((e,t)=>{var a;const i=void 0===(null==M||null===(a=M.mlTimeSeriesExplorer)||void 0===a?void 0:a.zoom),n=void 0!==(null==M?void 0:M.mlTimeSeriesExplorer)?{...M.mlTimeSeriesExplorer}:{};switch(e){case ej:delete n.detectorIndex,delete n.entities,delete n.forecastId,delete n.zoom,delete n.functionDescription;break;case tj:n.detectorIndex=t,delete n.functionDescription;break;case aj:n.entities=t,delete n.functionDescription;break;case ij:n.forecastId=t,delete n.zoom;break;case nj:n.zoom=t;break;case"UNSET_ZOOM":delete n.zoom;break;case sj:n.functionDescription=t}S({mlTimeSeriesExplorer:n},i)}),[JSON.stringify(null==M?void 0:M.mlTimeSeriesExplorer),S]),Q=$j();Object(n.useEffect)((()=>{void 0!==P&&void 0!==z&&X(ej);const e=function(e,t,a,i,n){const s=uj(Ge.a.jobs),o=s.map((e=>e.id)),r=Object(Ue.difference)(t,o),l=Object(Ue.without)(t,...r);if(1===r.length){const t=r[0],a=e.find((e=>e.id===t));if(void 0!==a&&void 0!==a.isNotSingleMetricViewerJobMessage){const e=u.i18n.translate("xpack.ml.timeSeriesExplorer.canNotViewRequestedJobsWarningWithReasonMessage",{defaultMessage:"You can't view {selectedJobId} in this dashboard because {reason}.",values:{selectedJobId:t,reason:a.isNotSingleMetricViewerJobMessage}});i.addWarning({title:e,"data-test-subj":"mlTimeSeriesExplorerDisabledJobReasonWarningToast"})}}if(r.length>1){let e=u.i18n.translate("xpack.ml.timeSeriesExplorer.canNotViewRequestedJobsWarningMessage",{defaultMessage:"You can't view requested {invalidIdsCount, plural, one {job} other {jobs}} {invalidIds} in this dashboard",values:{invalidIdsCount:r.length,invalidIds:r.join(", ")}});0===l.length&&o.length>0&&(e+=u.i18n.translate("xpack.ml.timeSeriesExplorer.autoSelectingFirstJobText",{defaultMessage:", auto selecting first job"})),i.addWarning(e)}return l.length>1?(i.addWarning(u.i18n.translate("xpack.ml.timeSeriesExplorer.youCanViewOneJobAtTimeWarningMessage",{defaultMessage:"You can only view one job at a time in this dashboard"})),a("ml",{jobIds:[l[0]]}),!0):r.length>0&&l.length>0?(a("ml",{jobIds:[l[0]]}),!0):1===l.length?l[0]:0===l.length&&s.length>0&&(n({singleSelection:!0,timeseriesOnly:!0}).then((({jobIds:e,time:t})=>{a({ml:{jobIds:e},...void 0!==t?{time:t}:{}})})).catch((e=>{})),!0)}(t,P,T,E,Q);"string"==typeof e&&k(e)}),[JSON.stringify(P)]);const K=null==R||null===(j=R.min)||void 0===j?void 0:j.valueOf(),Z=null==R||null===(x=R.max)||void 0===x?void 0:x.valueOf(),[te,ae]=Object(n.useState)(null==M||null===(v=M.mlTimeSeriesExplorer)||void 0===v?void 0:v.forecastId);Object(n.useEffect)((()=>{void 0!==Y&&void 0!==K&&void 0!==Z&&void 0!==q&&void 0!==J&&(te!==J&&ae(void 0),Di.getForecastDateRange(q,J).then((e=>{if(void 0===Y)return;const t=bt()(e.earliest||K),a=bt()(e.latest||Z);if(t.isBefore(bt()(K))||a.isAfter(bt()(Z))){const e=Math.min(t.valueOf(),K),i=Math.max(a.valueOf(),Z);T("time",{from:bt()(e).toISOString(),to:bt()(i).toISOString()})}ae(J)})).catch((e=>{console.error("Time series explorer - error loading time range of forecast from elasticsearch:",e)})))}),[J]);const[ie]=qh(),[ne]=Object(Hh.d)(),se=e.get("dateFormat:tz"),oe="Browser"!==se?se:bt.a.tz.guess();if(0===$.length)return Object(h.jsx)(Zh,{dateFormatTz:oe,noSingleMetricJobsFound:!0},Object(h.jsx)(Gj,null));if(!R)return Object(h.jsx)(Zh,{dateFormatTz:oe},Object(h.jsx)(Yh,null));const re="string"==typeof J&&void 0===te?void 0:G;return Object(h.jsx)(timeseriesexplorer_TimeSeriesExplorer,{dataViewsService:O,toastNotificationService:w,appStateHandler:X,autoZoomDuration:Y,bounds:R,dateFormatTz:oe,lastRefresh:null!==(y=null==A?void 0:A.lastRefresh)&&void 0!==y?y:0,previousRefresh:L,selectedJobId:C,selectedDetectorIndex:H,selectedEntities:V,selectedForecastId:te,tableInterval:ie.val,tableSeverity:ne.val,timefilter:F,zoom:re,invalidTimeRangeError:I,functionDescription:U})};var Xj=a(93),Qj=a(22);const Kj=({influencerFieldName:e,influencerFilter:t,valueData:a})=>{const i=Math.floor(a.maxAnomalyScore),n=Object(la.y)(a.maxAnomalyScore),o=Object(la.z)(i),r=Math.floor(a.sumAnomalyScore),l=Object(la.y)(a.sumAnomalyScore),c={width:`${0!==i?i:1}%`},u=function(e,t){return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.influencersList.maxAnomalyScoreTooltipDescription",defaultMessage:"Maximum anomaly score: {maxScoreLabel}",values:{maxScoreLabel:e}})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.influencersList.totalAnomalyScoreTooltipDescription",defaultMessage:"Total anomaly score: {totalScoreLabel}",values:{totalScoreLabel:t}})))}(n,l);return Object(h.jsx)("div",{"data-test-subj":`mlInfluencerEntry field-${e}`},Object(h.jsx)("div",{className:"field-label","data-test-subj":"mlInfluencerEntryFieldLabel"},Object(h.jsx)(Fg,{entityName:e,entityValue:a.influencerFieldValue,filter:t})),Object(h.jsx)("div",{className:`progress ${o.id}`},Object(h.jsx)("div",{className:"progress-bar-holder"},Object(h.jsx)("div",{className:"progress-bar",style:c})),Object(h.jsx)("div",{className:"score-label"},Object(h.jsx)(d.EuiToolTip,{position:"right",className:"ml-influencers-list-tooltip",title:`${e}: ${a.influencerFieldValue}`,content:u},Object(h.jsx)("span",null,n)))),Object(h.jsx)("div",{className:"total-score-label"},Object(h.jsx)(d.EuiToolTip,{position:"right",className:"ml-influencers-list-tooltip",title:`${e}: ${a.influencerFieldValue}`,content:u},Object(h.jsx)("span",null,r>0?function(e,t=3){return Math.abs(e){const i=a.map((a=>Object(h.jsx)(Kj,{key:a.influencerFieldValue,influencerFieldName:e,influencerFilter:t,valueData:a})));return Object(h.jsx)(s.a.Fragment,{key:e},Object(h.jsx)(d.EuiTitle,{size:"xxs","data-test-subj":`mlInfluencerFieldName ${e}`},Object(h.jsx)("h3",null,e)),Object(h.jsx)(d.EuiSpacer,{size:"xs"}),i,Object(h.jsx)(d.EuiSpacer,{size:"m"}))},ex=({influencers:e,influencerFilter:t})=>{if(void 0===e||0===Object.keys(e).length)return Object(h.jsx)(d.EuiFlexGroup,{justifyContent:"spaceAround",className:"ml-influencers-list"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiSpacer,{size:"xxl"}),Object(h.jsx)(d.EuiTitle,{size:"xxs",className:"influencer-title"},Object(h.jsx)("h3",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.influencersList.noInfluencersFoundTitle",defaultMessage:"No influencers found"})))));const a=Object.keys(e).map((a=>Object(h.jsx)(Zj,{key:a,influencerFieldName:a,influencerFilter:t,fieldValues:e[a]})));return Object(h.jsx)("div",{className:"ml-influencers-list"},a)};var tx=a(117);class state_service_StateService{constructor(){Ve()(this,"subscriptions$",new c.Subscription)}_init(){this.subscriptions$=this._initSubscriptions()}destroy(){this.subscriptions$.unsubscribe()}}class anomaly_timeline_state_service_AnomalyTimelineStateService extends state_service_StateService{constructor(e,t,a,i){super(),Ve()(this,"_explorerURLStateCallback",void 0),Ve()(this,"_overallSwimLaneData$",new c.BehaviorSubject(null)),Ve()(this,"_viewBySwimLaneData$",new c.BehaviorSubject(void 0)),Ve()(this,"_swimLaneUrlState$",new c.BehaviorSubject(null)),Ve()(this,"_containerWidth$",new c.BehaviorSubject(0)),Ve()(this,"_selectedCells$",new c.BehaviorSubject(void 0)),Ve()(this,"_swimLaneSeverity$",new c.BehaviorSubject(0)),Ve()(this,"_swimLanePagination$",new c.BehaviorSubject({viewByFromPage:1,viewByPerPage:10})),Ve()(this,"_swimLaneCardinality$",new c.BehaviorSubject(void 0)),Ve()(this,"_viewBySwimlaneFieldName$",new c.BehaviorSubject(void 0)),Ve()(this,"_viewBySwimLaneOptions$",new c.BehaviorSubject([])),Ve()(this,"_topFieldValues$",new c.BehaviorSubject([])),Ve()(this,"_isOverallSwimLaneLoading$",new c.BehaviorSubject(!0)),Ve()(this,"_isViewBySwimLaneLoading$",new c.BehaviorSubject(!0)),Ve()(this,"_swimLaneBucketInterval$",new c.BehaviorSubject(null)),Ve()(this,"_timeBounds$",void 0),Ve()(this,"_refreshSubject$",void 0),this.anomalyExplorerUrlStateService=e,this.anomalyExplorerCommonStateService=t,this.anomalyTimelineService=a,this.timefilter=i,this._timeBounds$=this.timefilter.getTimeUpdate$().pipe(Object(Ii.startWith)(null),Object(Ii.map)((()=>this.timefilter.getBounds()))),this._refreshSubject$=ee.f.pipe(Object(Ii.startWith)({lastRefresh:0})),this._explorerURLStateCallback=(e,t)=>{const a=this.anomalyExplorerUrlStateService.getPageUrlState(),i=null==a?void 0:a.mlExplorerSwimlane,n=t?e:{...i,...e};return this.anomalyExplorerUrlStateService.updateUrlState({...a,mlExplorerSwimlane:n})},this._init()}_initSubscriptions(){const e=new c.Subscription;return e.add(this.anomalyExplorerUrlStateService.getPageUrlState$().pipe(Object(Ii.map)((e=>null==e?void 0:e.mlExplorerSwimlane)),Object(Ii.distinctUntilChanged)(Ue.isEqual)).subscribe(this._swimLaneUrlState$)),e.add(this._initViewByData()),e.add(this._swimLaneUrlState$.pipe(Object(Ii.map)((e=>{var t;return null!==(t=null==e?void 0:e.severity)&&void 0!==t?t:0})),Object(Ii.distinctUntilChanged)()).subscribe(this._swimLaneSeverity$)),e.add(this._initSwimLanePagination()),e.add(this._initOverallSwimLaneData()),e.add(this._initTopFieldValues()),e.add(this._initViewBySwimLaneData()),e.add(Object(c.combineLatest)([this.anomalyExplorerCommonStateService.getSelectedJobs$(),this.getContainerWidth$(),this._timeBounds$]).subscribe((([e,t])=>{this._swimLaneBucketInterval$.next(this.anomalyTimelineService.getSwimlaneBucketInterval(e,t))}))),e.add(this._initSelectedCells()),e}_initViewByData(){return Object(c.combineLatest)([this._swimLaneUrlState$.pipe(Object(Ii.map)((e=>null==e?void 0:e.viewByFieldName)),Object(Ii.distinctUntilChanged)()),this.anomalyExplorerCommonStateService.getSelectedJobs$(),this.anomalyExplorerCommonStateService.getFilterSettings$(),this._selectedCells$]).subscribe((([e,t,a,i])=>{const{viewBySwimlaneFieldName:n,viewBySwimlaneOptions:s}=this._getViewBySwimlaneOptions(e,a.filterActive,a.filteredFields,!1,i,t);this._viewBySwimlaneFieldName$.next(n),this._viewBySwimLaneOptions$.next(s)}))}_initSwimLanePagination(){return Object(c.combineLatest)([this._swimLaneUrlState$.pipe(Object(Ii.map)((e=>{var t,a;return{viewByFromPage:null!==(t=null==e?void 0:e.viewByFromPage)&&void 0!==t?t:1,viewByPerPage:null!==(a=null==e?void 0:e.viewByPerPage)&&void 0!==a?a:10}})),Object(Ii.distinctUntilChanged)(Ue.isEqual)),this.anomalyExplorerCommonStateService.getInfluencerFilterQuery$(),this._timeBounds$]).subscribe((([e,t])=>{let a=e;t&&(a={viewByPerPage:e.viewByPerPage,viewByFromPage:1}),this._swimLanePagination$.next(a)}))}_initOverallSwimLaneData(){return Object(c.combineLatest)([this.anomalyExplorerCommonStateService.getSelectedJobs$(),this._swimLaneSeverity$,this.getSwimLaneBucketInterval$(),this._timeBounds$,this._refreshSubject$]).pipe(Object(Ii.tap)((()=>{this._isOverallSwimLaneLoading$.next(!0)})),Object(Ii.switchMap)((([e,t,a])=>Object(c.from)(this.anomalyTimelineService.loadOverallData(e,void 0,a,t))))).subscribe((e=>{this._overallSwimLaneData$.next(e),this._isOverallSwimLaneLoading$.next(!1)}))}_initTopFieldValues(){return Object(c.combineLatest)([this.anomalyExplorerCommonStateService.getSelectedJobs$(),this.anomalyExplorerCommonStateService.getInfluencerFilterQuery$(),this.getViewBySwimlaneFieldName$(),this.getSwimLanePagination$(),this.getSwimLaneCardinality$(),this.getSelectedCells$(),this.getSwimLaneBucketInterval$(),this._timeBounds$,this._refreshSubject$]).pipe(Object(Ii.switchMap)((([e,t,a,i,n,s,o])=>{if(null==s||!s.showTopFieldValues)return Object(c.of)([]);const r=Object(em.i)(s,a),l=Object(em.k)(s,this.timefilter.getBounds());return Object(c.from)(this.anomalyTimelineService.loadViewByTopFieldValuesForSelectedTime(l.earliestMs,l.latestMs,e,a,tx.a,i.viewByPerPage,i.viewByFromPage,o,r,t))}))).subscribe(this._topFieldValues$)}_initViewBySwimLaneData(){return Object(c.combineLatest)([this._overallSwimLaneData$.pipe(Object(Ii.skipWhile)((e=>!e))),this.anomalyExplorerCommonStateService.getSelectedJobs$(),this.anomalyExplorerCommonStateService.getInfluencerFilterQuery$(),this._swimLaneSeverity$,this.getSwimLaneBucketInterval$(),this.getViewBySwimlaneFieldName$(),this.getSwimLanePagination$(),this._topFieldValues$.pipe(Object(Ii.distinctUntilChanged)(Ue.isEqual)),this._timeBounds$,this._refreshSubject$]).pipe(Object(Ii.tap)((()=>{this._isViewBySwimLaneLoading$.next(!0)})),Object(Ii.switchMap)((([e,t,a,i,n,s,o,r])=>Object(c.from)(this.anomalyTimelineService.loadViewBySwimlane(r,{earliest:e.earliest,latest:e.latest},t,s,tx.a,o.viewByPerPage,o.viewByFromPage,void 0,a,n,i))))).subscribe((e=>{this._viewBySwimLaneData$.next(e),this._isViewBySwimLaneLoading$.next(!1),this._swimLaneCardinality$.next(null==e?void 0:e.cardinality)}))}_initSelectedCells(){return Object(c.combineLatest)([this._viewBySwimlaneFieldName$,this._swimLaneUrlState$,this.getSwimLaneBucketInterval$(),this._timeBounds$]).pipe(Object(Ii.map)((([e,t,a])=>{var i,n;if(null==t||!t.selectedType)return null;let s=null!==(i=t.selectedTimes)&&void 0!==i?i:t.selectedTime;"number"==typeof s&&(s=[s,s+a.asSeconds()]);let o=null!==(n=t.selectedLanes)&&void 0!==n?n:t.selectedLane;return"string"==typeof o&&(o=[o]),s=this._getAdjustedTimeSelection(s,this.timefilter.getBounds()),s?{type:t.selectedType,lanes:o,times:s,showTopFieldValues:t.showTopFieldValues,viewByFieldName:e}:null})),Object(Ii.distinctUntilChanged)(Ue.isEqual)).subscribe(this._selectedCells$)}_getAdjustedTimeSelection(e,t){const[a,i]=e,n=this.getSwimLaneBucketInterval().asSeconds(),s=t.min.unix()-n,o=t.max.unix()+n,r=Math.max(a,s),l=Math.min(i,o);if(!(s>l||oe.id)))&&void 0!==o?o:[],l=Object(Ue.sortBy)(Object(Ue.uniq)(Ge.a.jobs.reduce(((e,t)=>r.some((e=>e===t.job_id))?e.concat(t.analysis_config.influencers||[]):e),[])),(e=>e.toLowerCase()));l.push(tx.j);let c,d=l;if(-1!==d.indexOf(e))c=e;else if(r.length>1)c=tx.j;else if(Ge.a.jobs.length>0&&r.length>0){var u;const e=Ge.a.jobs.find((e=>e.job_id===r[0])),t=null!==(u=null==e?void 0:e.analysis_config.influencers)&&void 0!==u?u:[];null==e||e.analysis_config.detectors.forEach((e=>void 0!==e.partition_field_name&&-1!==t.indexOf(e.partition_field_name)?(c=e.partition_field_name,!1):void 0!==e.over_field_name&&-1!==t.indexOf(e.over_field_name)?(c=e.over_field_name,!1):void 0!==e.by_field_name&&void 0===e.over_field_name&&-1!==t.indexOf(e.by_field_name)?(c=e.by_field_name,!1):void 0)),void 0===c&&(c=t.length>0?t[0]:d.length>0?d[0]:void 0)}if(!0!==t||!0!==i||n){if(!0===t&&Array.isArray(d)&&Array.isArray(a)){const e=d.filter((e=>a.includes(e)||e===tx.j||n&&n.viewByFieldName===e));e.length>1&&(d=e,d.includes(c)||(c=d[0]))}}else d=[tx.j];return{viewBySwimlaneFieldName:c,viewBySwimlaneOptions:d}}getOverallSwimLaneData$(){return this._overallSwimLaneData$.asObservable()}getViewBySwimLaneData$(){return this._viewBySwimLaneData$.asObservable()}getContainerWidth$(){return this._containerWidth$.pipe(Object(Ii.debounceTime)(500),Object(Ii.distinctUntilChanged)(((e,t)=>Math.abs(e-t)<20)))}getContainerWidth(){return this._containerWidth$.getValue()}getSelectedCells$(){return this._selectedCells$.asObservable()}getSelectedCells(){return this._selectedCells$.getValue()}getSwimLaneSeverity$(){return this._swimLaneSeverity$.asObservable()}getSwimLaneSeverity(){return this._swimLaneSeverity$.getValue()}getSwimLanePagination$(){return this._swimLanePagination$.asObservable()}getSwimLanePagination(){return this._swimLanePagination$.getValue()}setSwimLanePagination(e){const t=e;t.viewByPerPage&&(t.viewByFromPage=1),this._explorerURLStateCallback(t)}getSwimLaneCardinality$(){return this._swimLaneCardinality$.pipe(Object(Ii.distinctUntilChanged)())}getViewBySwimlaneFieldName$(){return this._viewBySwimlaneFieldName$.pipe(Object(Ii.distinctUntilChanged)())}getViewBySwimLaneOptions$(){return this._viewBySwimLaneOptions$.asObservable()}getViewBySwimLaneOptions(){return this._viewBySwimLaneOptions$.getValue()}isOverallSwimLaneLoading$(){return this._isOverallSwimLaneLoading$.asObservable()}isViewBySwimLaneLoading$(){return this._isViewBySwimLaneLoading$.asObservable()}setContainerWidth(e){this._containerWidth$.next(e)}setSeverity(e){this._explorerURLStateCallback({severity:e,viewByFromPage:1})}setSelectedCells(e){const t={...this._swimLaneUrlState$.getValue()};if(void 0!==e){var a,i;e.showTopFieldValues=!1;const n=null===(a=this._selectedCells$.getValue())||void 0===a?void 0:a.type,s=null===(i=this._selectedCells$.getValue())||void 0===i?void 0:i.showTopFieldValues,o=null==e?void 0:e.type;(n===tx.h.OVERALL&&o===tx.h.VIEW_BY||o===tx.h.OVERALL||!0===s)&&(e.showTopFieldValues=!0),t.selectedType=e.type,t.selectedLanes=e.lanes,t.selectedTimes=e.times,t.showTopFieldValues=e.showTopFieldValues,this._explorerURLStateCallback(t)}else delete t.selectedType,delete t.selectedLanes,delete t.selectedTimes,delete t.showTopFieldValues,this._explorerURLStateCallback(t,!0)}setViewBySwimLaneFieldName(e){this._explorerURLStateCallback({viewByFromPage:1,viewByPerPage:this._swimLanePagination$.getValue().viewByPerPage,viewByFieldName:e},!0)}getSwimLaneBucketInterval$(){return this._swimLaneBucketInterval$.pipe(Object(Ii.filter)((e=>!!e)),Object(Ii.distinctUntilChanged)(((e,t)=>e.asSeconds()===t.asSeconds())))}getSwimLaneBucketInterval(){return this._swimLaneBucketInterval$.getValue()}}class anomaly_explorer_common_state_AnomalyExplorerCommonStateService extends state_service_StateService{_getDefaultFilterSettings(){return{filterActive:!1,filteredFields:[],queryString:"",influencersFilterQuery:void 0}}constructor(e){super(),Ve()(this,"_selectedJobs$",new c.BehaviorSubject(void 0)),Ve()(this,"_filterSettings$",new c.BehaviorSubject(this._getDefaultFilterSettings())),Ve()(this,"_smvJobs$",this.getSelectedJobs$().pipe(Object(Ii.map)((e=>e.filter((e=>e.isSingleMetricViewerJob)))),Object(Ii.shareReplay)(1))),this.anomalyExplorerUrlStateService=e,this._init()}_initSubscriptions(){return this.anomalyExplorerUrlStateService.getPageUrlState$().pipe(Object(Ii.map)((e=>null==e?void 0:e.mlExplorerFilter)),Object(Ii.distinctUntilChanged)(Ue.isEqual)).subscribe((e=>{const t={...this._getDefaultFilterSettings(),...e};this._filterSettings$.next(t)}))}setSelectedJobs(e){this._selectedJobs$.next(e)}getSelectedJobs$(){return this._selectedJobs$.pipe(Object(Ii.filter)((e=>Array.isArray(e)&&e.length>0)),Object(Ii.distinctUntilChanged)(Ue.isEqual),Object(Ii.shareReplay)(1))}getSingleMetricJobs$(){return this._smvJobs$}getSelectedJobs(){return this._selectedJobs$.getValue()}getInfluencerFilterQuery$(){return this._filterSettings$.pipe(Object(Ii.map)((e=>null==e?void 0:e.influencersFilterQuery)),Object(Ii.distinctUntilChanged)(Ue.isEqual))}getFilterSettings$(){return this._filterSettings$.asObservable()}getFilterSettings(){return this._filterSettings$.getValue()}setFilterSettings(e){this.anomalyExplorerUrlStateService.updateUrlState({mlExplorerFilter:{influencersFilterQuery:e.filterQuery,filterActive:!0,filteredFields:e.filteredFields,queryString:e.queryString}})}clearFilterSettings(){this.anomalyExplorerUrlStateService.updateUrlState({mlExplorerFilter:{}})}}var ax=a(213);class anomaly_charts_state_service_AnomalyChartsStateService extends state_service_StateService{constructor(e,t,a,i,n){super(),Ve()(this,"_isChartsDataLoading$",new c.BehaviorSubject(!1)),Ve()(this,"_chartsData$",new c.BehaviorSubject({chartsPerRow:1,errorMessages:void 0,seriesToPlot:[],tooManyBuckets:!1,timeFieldName:"timestamp"})),Ve()(this,"_showCharts$",new c.BehaviorSubject(!0)),this._anomalyExplorerCommonStateService=e,this._anomalyTimelineStateServices=t,this._anomalyExplorerChartsService=a,this._anomalyExplorerUrlStateService=i,this._tableSeverityState=n,this._init()}_initSubscriptions(){const e=new c.Subscription;return e.add(this._anomalyExplorerUrlStateService.getPageUrlState$().pipe(Object(Ii.map)((e=>{var t;return null===(t=null==e?void 0:e.mlShowCharts)||void 0===t||t})),Object(Ii.distinctUntilChanged)()).subscribe(this._showCharts$)),e.add(this.initChartDataSubscription()),e}initChartDataSubscription(){return Object(c.combineLatest)([this._anomalyExplorerCommonStateService.getSelectedJobs$(),this._anomalyExplorerCommonStateService.getInfluencerFilterQuery$(),this._anomalyTimelineStateServices.getContainerWidth$().pipe(Object(Ii.skipWhile)((e=>0===e))),this._anomalyTimelineStateServices.getSelectedCells$(),this._anomalyTimelineStateServices.getViewBySwimlaneFieldName$(),this._tableSeverityState.getPageUrlState$()]).pipe(Object(Ii.switchMap)((([e,t,a,i,n,s])=>{if(!i)return Object(c.of)({chartsPerRow:1,errorMessages:void 0,seriesToPlot:[],tooManyBuckets:!1,timeFieldName:"timestamp"});const o=Object(em.j)(i,e);this._isChartsDataLoading$.next(!0);const r=Object(em.i)(i,n);return this._anomalyExplorerChartsService.getAnomalyData$(o,a,1e3*(null==i?void 0:i.times[0]),1e3*(null==i?void 0:i.times[1]),t,r,s.val,6)}))).subscribe((e=>{this._chartsData$.next(e),this._isChartsDataLoading$.next(!1)}))}getChartsData$(){return this._chartsData$.asObservable()}getChartsData(){return this._chartsData$.getValue()}getShowCharts$(){return this._showCharts$.asObservable()}getShowCharts(){return this._showCharts$.getValue()}setShowCharts(e){this._anomalyExplorerUrlStateService.updateUrlState({mlShowCharts:e})}}var ix=a(186);const nx=s.a.createContext(void 0);function sx(){const e=Object(n.useContext)(nx);if(void 0===e)throw new Error("AnomalyExplorerContext has not been initialized.");return e}const ox=({children:e})=>{const[,,t]=function(){const[e]=Object(ze.c)("mlExplorerSwimlane");return Object(ze.c)(Fe.b.ANOMALY_EXPLORER,{mlExplorerSwimlane:e,mlExplorerFilter:{}})}(),a=Object(ee.i)(),{services:{mlServices:{mlApiServices:i},uiSettings:s}}=Object(Te.d)(),[,,o]=Object(Hh.d)(),r=Object(n.useMemo)((()=>Object(ca.mlResultsServiceProvider)(i)),[]),[l,c]=Object(n.useState)(void 0);return Object(n.useEffect)((()=>{const e=new ax.AnomalyTimelineService(a,s,r),n=new anomaly_explorer_common_state_AnomalyExplorerCommonStateService(t),l=new anomaly_timeline_state_service_AnomalyTimelineStateService(t,n,e,a),d=new ix.a(a,i,r),u=new anomaly_charts_state_service_AnomalyChartsStateService(n,l,d,t,o);return c({anomalyExplorerChartsService:d,anomalyExplorerCommonStateService:n,anomalyTimelineService:e,anomalyTimelineStateService:l,chartsStateService:u}),()=>{n.destroy(),l.destroy(),u.destroy()}}),[]),void 0===l?null:Object(h.jsx)(nx.Provider,{value:l},e)},rx=()=>{const{chartsStateService:e}=sx(),t=C()(e.getShowCharts$(),e.getShowCharts()),a=Object(n.useCallback)((t=>{e.setShowCharts(t.target.checked)}),[]),i=Object(n.useMemo)((()=>Object(d.htmlIdGenerator)()()),[]);return Object(h.jsx)(d.EuiCheckbox,{id:i,label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.controls.checkboxShowCharts.showChartsCheckboxLabel",defaultMessage:"Show charts"}),checked:t,onChange:a})},lx=ba.b.KUERY;function cx({inputString:e,queryLanguage:t,indexPattern:a}){var i;let n={};const s=[],o=Object($p.fromKueryExpression)(e),r=o&&"and"===o.function;return o&&Array.isArray(o.arguments)&&o.arguments.forEach((e=>{void 0!==e.arguments?e.arguments.forEach((e=>{"string"==typeof e.value&&s.push(e.value)})):"string"==typeof e.value&&s.push(e.value)})),t===ba.b.KUERY?n=Object($p.toElasticsearchQuery)(Object($p.fromKueryExpression)(e),a):t===ba.b.LUCENE&&(n=Object($p.luceneStringToDsl)(e)),{clearSettings:Boolean((null===(i=n)||void 0===i?void 0:i.match_all)&&0===Object.keys(n.match_all).length),settings:{filterQuery:n,queryString:e,tableQueryString:e,isAndOperator:r,filteredFields:s}}}function dx({queryString:e,searchInput:t}){var a;return{language:null!==(a=null==t?void 0:t.language)&&void 0!==a?a:lx,query:null!=e?e:""}}var ux={name:"qhxz92",styles:"max-width:100%"};const px=({filterActive:e,filterPlaceHolder:t,indexPattern:a,queryString:i,updateLanguage:s,dataViews:o=[]})=>{const{anomalyExplorerCommonStateService:r}=sx(),{services:l}=Object(Te.d)(),{unifiedSearch:c,data:p,storage:m,appName:b,notifications:f,http:g,docLinks:j,uiSettings:x,dataViews:v}=l,[y,O]=Object(n.useState)(dx({queryString:i})),[E,w]=Object(n.useState)(void 0);return Object(n.useEffect)((function(){O(dx({queryString:i,searchInput:y}))}),[i,y.language]),Object(h.jsx)(d.EuiInputPopover,{css:ux,closePopover:w.bind(null,void 0),input:Object(h.jsx)(Zp.QueryStringInput,{bubbleSubmitEvent:!1,query:y,indexPatterns:null!=o?o:[],onChange:e=>{y.language!==e.language&&s(e.language),O(e)},onSubmit:e=>{try{const{clearSettings:t,settings:i}=cx({inputString:e.query,queryLanguage:e.language,indexPattern:a});!0===t?r.clearFilterSettings():r.setFilterSettings(i)}catch(t){console.log("Invalid query syntax in search bar",t),w({query:e.query,message:t.message})}},placeholder:t,disableAutoFocus:!0,dataTestSubj:"explorerQueryInput",languageSwitcherPopoverAnchorPosition:"rightDown",appName:b,deps:{unifiedSearch:c,notifications:f,http:g,docLinks:j,uiSettings:x,data:p,storage:m,dataViews:v}}),isOpen:(null==E?void 0:E.query)===y.query&&""!==(null==E?void 0:E.message)},Object(h.jsx)(d.EuiCode,null,u.i18n.translate("xpack.ml.explorer.invalidKuerySyntaxErrorMessageQueryBar",{defaultMessage:"Invalid query"}),": ",null==E?void 0:E.message.split("\n")[0]))};var mx=a(160),bx=a.n(mx),fx=a(94),gx=a(8);const hx=e=>{const{services:{cases:t}}=Object(gx.a)(),a=null==t?void 0:t.hooks.useCasesAddToExistingCaseModal();return Object(n.useCallback)((t=>{const i={...t,id:Object(gp.a)(JSON.stringify(t)).toString()};if(!a)throw new Error("Cases modal is not available");a.open({getAttachments:()=>[{type:fx.AttachmentType.persistableState,persistableStateAttachmentTypeId:e,persistableStateAttachmentState:JSON.parse(JSON.stringify(i))}]})}),[e])};var jx=a(59),xx=a(272),vx=a(123);const yx=()=>{const{notifications:{toasts:e}}=Object(Te.d)(),t=Object(Fl.a)(),[a,i]=Object(n.useState)(!1);Object(n.useEffect)((()=>(l(),()=>{l.cancel()})),[]);const s=Object(n.useMemo)((()=>({onChange:({queryText:e})=>{i(!0),l(e)},box:{incremental:!0,"data-test-subj":"mlDashboardsSearchBox"}})),[]),[o,r]=Object(n.useState)([]),l=Object(n.useCallback)(Object(Ue.debounce)((async a=>{try{const e=(await t.fetchDashboards(a)).map((e=>({id:e.id,title:e.attributes.title,description:e.attributes.description,attributes:e.attributes})));r(e)}catch(t){e.danger({body:t})}i(!1)}),500),[]);return{dashboardItems:o,search:s,isLoading:a}},Ox=({onClose:e,dashboardItems:t,isLoading:a,search:i,addToDashboardAndEditCallback:n,title:s,disabled:o,children:r})=>{const l=[{field:"title",name:u.i18n.translate("xpack.ml.explorer.dashboardsTable.titleColumnHeader",{defaultMessage:"Title"}),sortable:!0,truncateText:!0},{field:"description",name:u.i18n.translate("xpack.ml.explorer.dashboardsTable.descriptionColumnHeader",{defaultMessage:"Description"}),truncateText:!0},{field:"description",name:u.i18n.translate("xpack.ml.explorer.dashboardsTable.actionsHeader",{defaultMessage:"Actions"}),width:"80px",actions:[{name:u.i18n.translate("xpack.ml.explorer.dashboardsTable.editActionName",{defaultMessage:"Add to dashboard"}),description:u.i18n.translate("xpack.ml.explorer.dashboardsTable.editActionName",{defaultMessage:"Add to dashboard"}),icon:"documentEdit",type:"icon",enabled:()=>!o,onClick:async e=>{await n(e)},"data-test-subj":"mlEmbeddableAddAndEditDashboard"}]}];return Object(h.jsx)(d.EuiModal,{onClose:e.bind(null,void 0),"data-test-subj":"mlAddToDashboardModal"},Object(h.jsx)(d.EuiModalHeader,null,Object(h.jsx)(d.EuiModalHeaderTitle,null,s)),Object(h.jsx)(d.EuiModalBody,null,r,Object(h.jsx)(d.EuiFormRow,{fullWidth:!0,label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.addToDashboard.selectDashboardsLabel",defaultMessage:"Select dashboards:"}),"data-test-subj":"mlDashboardSelectionContainer"},Object(h.jsx)(d.EuiInMemoryTable,{itemId:"id",isSelectable:!1,hasActions:!0,items:t,loading:a,columns:l,search:i,pagination:!0,sorting:!0,"data-test-subj":"mlDashboardSelectionTable"+(a?" loading":" loaded"),rowProps:e=>({"data-test-subj":`mlDashboardSelectionTableRow row-${e.id}`})}))),Object(h.jsx)(d.EuiModalFooter,null,Object(h.jsx)(d.EuiButtonEmpty,{onClick:e.bind(null,void 0)},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.addToDashboard.cancelButtonLabel",defaultMessage:"Cancel"}))))};var Ex=a(78);function wx(e,t){const{services:{embeddable:a}}=Object(Te.d)(),i=Object(Fl.a)();return{addToDashboardAndEditCallback:Object(n.useCallback)((async n=>{const s=a.getStateTransfer(),o=n.id,r=await i.getDashboardEditUrl(o);await s.navigateToWithEmbeddablePackage(Ex.DASHBOARD_APP_ID,{path:r,state:{type:e,input:t()}})}),[t])}}const Mx=({onClose:e,jobIds:t,viewBy:a,queryString:i})=>{const{dashboardItems:o,isLoading:r,search:l}=yx(),[c,p]=Object(n.useState)(tx.h.OVERALL),m=Object(n.useCallback)((()=>{const e=function(e,t){return{title:Object(xx.getDefaultSwimlanePanelTitle)(e).concat(t?`- ${t}`:""),id:Object(d.htmlIdGenerator)()()}}(t,i);return{...e,jobIds:t,swimlaneType:c,...c===tx.h.VIEW_BY?{viewBy:a}:{},...void 0!==i?{query:{query:i,language:ba.b.KUERY}}:{}}}),[c]),{addToDashboardAndEditCallback:b}=wx(vx.b,m),f=[{id:tx.h.OVERALL,label:u.i18n.translate("xpack.ml.explorer.overallLabel",{defaultMessage:"Overall"})},{id:tx.h.VIEW_BY,label:u.i18n.translate("xpack.ml.explorer.viewByFieldLabel",{defaultMessage:"View by {viewByField}",values:{viewByField:a}})}],j=Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFormRow,{label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.addToDashboard.swimlanes.selectSwimlanesLabel",defaultMessage:"Select swim lane view:"})},Object(h.jsx)(d.EuiRadioGroup,{options:f,idSelected:c,onChange:e=>{p(e)},"data-test-subj":"mlAddToDashboardSwimlaneTypeSelector"})),Object(h.jsx)(d.EuiSpacer,{size:"m"})),x=Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.addToDashboard.swimlanes.dashboardsTitle",defaultMessage:"Add swim lane to a dashboard"});return Object(h.jsx)(Ox,{onClose:e,dashboardItems:o,isLoading:r,search:l,addToDashboardAndEditCallback:b,disabled:!1,title:x},j)};var Sx=a(192);const _x=()=>Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomalySwimLane.noOverallDataMessage",defaultMessage:"No anomalies found in the overall bucket results for this time range"});var Tx=a(273);const Cx=()=>Object(h.jsx)(Gm,{anchorPosition:"upCenter",title:u.i18n.translate("xpack.ml.explorer.anomalyTimelinePopoverTitle",{defaultMessage:"Anomaly timelines"})},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.anomalyTimelinePopoverBasicExplanation",defaultMessage:"Swim lanes provide an overview of the buckets of data that have been analyzed within the selected time period. You can view an overall swim lane or view them by job or influencer."})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.anomalyTimelinePopoverScoreExplanation",defaultMessage:"Each block in a swim lane is colored according to its anomaly score, which is a value from 0 to 100. The blocks with high scores are shown in red and low scores are indicated in blue."})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.anomalyTimelinePopoverAdvancedExplanation",defaultMessage:"The anomaly scores that you see in each section of the Anomaly Explorer might differ slightly. This disparity occurs because for each job there are bucket results, overall bucket results, influencer results, and record results. Anomaly scores are generated for each type of result. The overall swim lane shows the maximum overall bucket score for each block. When you view a swim lane by job, it shows the maximum bucket score in each block. When you view by influencer, it shows the maximum influencer score in each block."})),Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.anomalyTimelinePopoverSelectionExplanation",defaultMessage:"When you select one or more blocks in the swim lanes, the list of anomalies and top influencers is likewise filtered to provide information relative to that selection."})));var kx=a(252),Fx={name:"1np9cuq",styles:"margin-left:auto !important;align-self:baseline"},Ix={name:"vavmm1",styles:"max-width:500px"};const Dx=s.a.memo((({explorerState:e})=>{var t,a,i;const{services:{application:{capabilities:o},charts:r,cases:l}}=Object(Te.d)(),c=Object(ee.h)(!0),p=null==l?void 0:l.hooks.useCasesAddToExistingCaseModal(),{anomalyExplorerCommonStateService:m,anomalyTimelineStateService:b}=sx(),f=b.setSelectedCells.bind(b),[j,x]=Object(n.useState)(!1),[v,y]=Object(n.useState)(!1),O=null!==(t=null===(a=o.dashboard)||void 0===a?void 0:a.createNew)&&void 0!==t&&t,E=Object(os.a)(),{overallAnnotations:w}=e,{filterActive:M,queryString:S}=C()(m.getFilterSettings$(),m.getFilterSettings()),_=C()(b.getSwimLaneCardinality$()),T=C()(m.getSelectedJobs$(),m.getSelectedJobs()),k=C()(b.isOverallSwimLaneLoading$(),!0),F=C()(b.getContainerWidth$(),b.getContainerWidth()),I=C()(b.isViewBySwimLaneLoading$(),!0),D=C()(b.getOverallSwimLaneData$()),A=C()(b.getViewBySwimLaneData$()),L=C()(b.getSelectedCells$(),b.getSelectedCells()),R=C()(b.getSwimLaneSeverity$()),N=C()(b.getViewBySwimlaneFieldName$()),P=C()(b.getViewBySwimLaneOptions$(),b.getViewBySwimLaneOptions()),{viewByPerPage:z,viewByFromPage:B}=C()(b.getSwimLanePagination$(),b.getSwimLanePagination()),[V,J]=Object(n.useState)(b.getSwimLaneSeverity()),U=function(e){if(void 0!==(null==e?void 0:e.times))return{earliestMs:1e3*e.times[0],latestMs:1e3*e.times[1]-1}}(L),G=U?`${Object(ft.c)(U.earliestMs)} - ${Object(ft.c)(U.latestMs)}`:null;bx()((()=>{V!==R&&b.setSeverity(V)}),500,[V,R]);const q=hx(jx.ANOMALY_SWIMLANE_EMBEDDABLE_TYPE),$=Object(n.useCallback)((e=>{q({swimlaneType:e,...e===tx.h.VIEW_BY?{viewBy:N}:{},jobIds:null==T?void 0:T.map((e=>e.id)),timeRange:c,...Object(Qj.a)(S)&&""!==S?{query:{query:S,language:ba.b.KUERY}}:{}})}),[q,T,c,N,S]),W=Object(n.useMemo)((()=>w.annotationsData),[w]),H=Object(n.useCallback)((e=>()=>{x(!1),e()}),[x]),Y=Object(n.useMemo)((()=>{const e=[],t=[{id:0,items:e}];O&&e.push({name:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.addToDashboardLabel",defaultMessage:"Add to dashboard"}),onClick:H(y.bind(null,!0)),"data-test-subj":"mlAnomalyTimelinePanelAddToDashboardButton"});const a=null==l?void 0:l.helpers.canUseCases();return(null!=a&&a.create||null!=a&&a.update)&&p&&(e.push({panel:1,name:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.attachToCaseLabel",defaultMessage:"Add to case"}),"data-test-subj":"mlAnomalyTimelinePanelAttachToCaseButton"}),t.push({id:1,initialFocusedItemIndex:0,title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.attachToCaseLabel",defaultMessage:"Add to case"}),items:[{name:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.attachOverallSwimLane",defaultMessage:"Overall"}),onClick:H($.bind(null,"overall")),"data-test-subj":"mlAnomalyTimelinePanelAttachOverallButton"},{name:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.attachViewBySwimLane",defaultMessage:"View by {viewByField}",values:{viewByField:N}}),onClick:H($.bind(null,"viewBy")),"data-test-subj":"mlAnomalyTimelinePanelAttachViewByButton"}]})),t}),[O,$,N]),X=Object(n.useMemo)((()=>{if(L)return L.type===tx.h.OVERALL?L:{type:tx.h.OVERALL,lanes:[tx.g],times:L.times}}),[L]),Q=Object(n.useMemo)((()=>ax.AnomalyTimelineService.isOverallSwimlaneData(D)?{min:1e3*D.earliest,max:1e3*D.latest,minInterval:1e3*D.interval}:void 0),[D]),K=Object(n.useCallback)((e=>{b.setContainerWidth(e)}),[]);return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiPanel,{paddingSize:"m",hasShadow:!1,hasBorder:!0},Object(h.jsx)(d.EuiFlexGroup,{direction:"row",gutterSize:"xs",responsive:!1,alignItems:"baseline"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.anomalyTimelineTitle",defaultMessage:"Anomaly timeline"})))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Cx,null)),Y[0].items.length>0?Object(h.jsx)(d.EuiFlexItem,{grow:!1,css:Fx},Object(h.jsx)(d.EuiPopover,{button:Object(h.jsx)(d.EuiButtonIcon,{size:"s","aria-label":u.i18n.translate("xpack.ml.explorer.swimlaneActions",{defaultMessage:"Actions"}),color:"text",iconType:"boxesHorizontal",onClick:x.bind(null,!j),"data-test-subj":"mlAnomalyTimelinePanelMenu"}),isOpen:j,closePopover:x.bind(null,!1),panelPaddingSize:"none",anchorPosition:"downLeft"},Object(h.jsx)(d.EuiContextMenu,{initialPanelId:0,panels:Y}))):null),Object(h.jsx)(d.EuiSpacer,{size:"s"}),Object(h.jsx)(d.EuiFlexGroup,{direction:"row",gutterSize:"m",responsive:!1,alignItems:"baseline"},P.length>0&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiSelect,{prepend:u.i18n.translate("xpack.ml.explorer.viewByLabel",{defaultMessage:"View by"}),compressed:!0,id:"selectViewBy",options:(Z=P,Z.map((e=>({value:e,text:e})))),value:N,onChange:e=>{b.setViewBySwimLaneFieldName(e.target.value)}}))),Object(h.jsx)(d.EuiFlexItem,{grow:!0,css:Ix},Object(h.jsx)(Tx.a,{value:null!=V?V:0,onChange:Object(n.useCallback)((e=>{J(e)}),[])}))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiFlexGroup,{direction:"row",gutterSize:"m",responsive:!1,alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiText,{size:"xs",color:"subdued"},G&&Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.sortedByMaxAnomalyScoreForTimeFormattedLabel",defaultMessage:"(Sorted by max anomaly score for {viewByLoadedForTimeFormatted})",values:{viewByLoadedForTimeFormatted:G}}),Object(Qj.a)(G)?null:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.sortedByMaxAnomalyScoreLabel",defaultMessage:"(Sorted by max anomaly score)"}),!0===M&&N===tx.j&&Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.jobScoreAcrossAllInfluencersLabel",defaultMessage:"(Job score across all influencers)"}))),Object(h.jsx)(d.EuiFlexItem,{grow:!1,css:Object(h.css)({visibility:L?"visible":"hidden"},"","")},Object(h.jsx)(d.EuiButtonEmpty,{size:"xs",onClick:f.bind(b,void 0),"data-test-subj":"mlAnomalyTimelineClearSelection"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.clearSelectionLabel",defaultMessage:"Clear selection"})))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Q&&Array.isArray(W)&&W.length>0?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(Oj.a,null,(e=>Object(h.jsx)(kx.a,{chartWidth:F,domain:Q,annotationsData:W,tooltipService:e}))),Object(h.jsx)(d.EuiSpacer,{size:"m"})):null,Object(h.jsx)(Sx.b,{id:"overall","data-test-subj":"mlAnomalyExplorerSwimlaneOverall",filterActive:M,timeBuckets:E,swimlaneData:D,swimlaneType:tx.h.OVERALL,selection:X,onCellsSelection:f,onResize:K,isLoading:k,noDataWarning:Object(h.jsx)(d.EuiText,{textAlign:"center"},Object(h.jsx)("h5",null,Object(h.jsx)(_x,null))),showTimeline:!1,showLegend:!1,yAxisWidth:kx.c,chartsService:r}),Object(h.jsx)(d.EuiSpacer,{size:"m"}),P.length>0&&Object(h.jsx)(Sx.b,{id:"view_by","data-test-subj":"mlAnomalyExplorerSwimlaneViewBy",filterActive:M,timeBuckets:E,showLegend:!1,swimlaneData:A,swimlaneType:tx.h.VIEW_BY,selection:L,onCellsSelection:f,onResize:K,fromPage:B,perPage:z,swimlaneLimit:_,chartsService:r,onPaginationChange:({perPage:e,fromPage:t})=>{e&&b.setSwimLanePagination({viewByPerPage:e}),t&&b.setSwimLanePagination({viewByFromPage:t})},isLoading:k||I,yAxisWidth:kx.c,noDataWarning:Object(h.jsx)(d.EuiText,{textAlign:"center"},Object(h.jsx)("h5",null,"string"==typeof N?N===tx.j?Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.noResultForSelectedJobsMessage",defaultMessage:"No results found for selected {jobsCount, plural, one {job} other {jobs}}",values:{jobsCount:null!==(i=null==T?void 0:T.length)&&void 0!==i?i:1}}):Object(h.jsx)(Bj,{viewBySwimlaneFieldName:N,showFilterMessage:!0===M}):null))})),v&&T&&Object(h.jsx)(Mx,{onClose:async e=>{y(!1),e&&await e()},jobIds:T.map((({id:e})=>e)),viewBy:N,queryString:S}));var Z}),((e,t)=>Object(Ue.isEqual)(e.explorerState,t.explorerState)));var Ax=a(351);function Lx(e,t){const a={};for(let i=0;ia[s].max_severity&&(a[s].max_severity=Math.floor(n.severity))))}return Object.values(a)}const Rx=({anomalies:e,jobIds:t})=>{const[a,i]=Object(n.useState)(),{services:{maps:o}}=Object(Te.d)(),r=Object(n.useCallback)((async()=>{if(!o)return;const a=await Promise.all(t.map((async t=>{const a=new Set;let i;for(let n=0;n0&&r()}),[...t]);const l=Object(n.useMemo)((()=>null!=a&&a.length?a.map((t=>((e,{layerId:t,field:a,jobId:i})=>({id:Object(d.htmlIdGenerator)()(),label:u.i18n.translate("xpack.ml.explorer.anomaliesMap.anomaliesCount",{defaultMessage:"Anomalies count: {jobId}",values:{jobId:i}}),joins:[{leftField:a,right:{id:"anomaly_count",type:Ig.SOURCE_TYPES.TABLE_SOURCE,__rows:Lx(e,i),__columns:[{name:"entityValue",type:"string"},{name:"count",type:"number"},{name:"max_severity",type:"number"}],term:"entityValue"}}],sourceDescriptor:{type:"EMS_FILE",id:t},style:{type:"VECTOR",properties:{icon:{type:Ig.STYLE_TYPE.STATIC,options:{value:"marker"}},fillColor:{type:Ig.STYLE_TYPE.DYNAMIC,options:{color:"Blue to Red",colorCategory:"palette_0",fieldMetaOptions:{isEnabled:!0,sigma:3},type:Ig.COLOR_MAP_TYPE.ORDINAL,field:{name:"count",origin:Ig.FIELD_ORIGIN.JOIN},useCustomColorRamp:!1}},lineColor:{type:Ig.STYLE_TYPE.DYNAMIC,options:{fieldMetaOptions:{isEnabled:!0}}},lineWidth:{type:Ig.STYLE_TYPE.STATIC,options:{size:1}}},isTimeAware:!0},visible:!1,type:Ig.LAYER_TYPE.GEOJSON_VECTOR}))(e,t)),[]):[]),[a,e]),c=l.filter((e=>{var t,a;return(Array.isArray(e.joins)?null===(t=e.joins[0])||void 0===t||null===(a=t.right)||void 0===a?void 0:a.__rows:[]).length}));return c.length>0&&(c[0].visible=!0),0===(null==a?void 0:a.length)||0===c.length?null:Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiPanel,{"data-test-subj":"mlAnomaliesMapContainer",hasShadow:!1,hasBorder:!0},Object(h.jsx)(d.EuiAccordion,{id:"mlAnomalyExplorerAnomaliesMapAccordionId",initialIsOpen:!0,buttonContent:Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.mapTitle",defaultMessage:"Anomaly count by location {infoTooltip}",values:{infoTooltip:Object(h.jsx)(d.EuiIconTip,{content:"Map colors indicate the number of anomalies in each area.",position:"top",type:"iInCircle"})}})))},Object(h.jsx)("div",{"data-test-subj":"mlAnomalyExplorerAnomaliesMap",style:{width:"100%",height:300}},Object(h.jsx)(Qr.a,{layerList:l})))),Object(h.jsx)(d.EuiSpacer,{size:"m"}))};var Nx=a(274),Px=a(346);const zx=({onClose:e,jobIds:t})=>{const[a]=Object(Hh.d)(),[i,s]=Object(n.useState)(ix.b),{anomalyExplorerCommonStateService:o,anomalyTimelineStateService:r}=sx(),{queryString:l}=C()(o.getFilterSettings$(),o.getFilterSettings()),c=C()(r.getSelectedCells$(),r.getSelectedCells()),u=Object(n.useCallback)((()=>{const e=Object(em.i)(c,null==c?void 0:c.viewByFieldName),n=null!=e?e:[],s=function(e,t){return{id:Object(d.htmlIdGenerator)()(),title:Object(Nx.getDefaultExplorerChartsPanelTitle)(e).concat(t?`- ${t}`:"")}}(t,l),o=n.map((e=>Object(We.d)(e.fieldName,e.fieldValue))).join(" or ");return{...s,jobIds:t,maxSeriesToPlot:null!=i?i:ix.b,severityThreshold:a.val,...Object(Qj.a)(l)&&""!==l||void 0!==o&&""!==o?{query:{query:""===l?o:l,language:ba.b.KUERY}}:{}}}),[t,i,a,l,c]),{dashboardItems:p,isLoading:m,search:b}=yx(),{addToDashboardAndEditCallback:f}=wx(vx.a,u),j=Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.addToDashboard.anomalyCharts.dashboardsTitle",defaultMessage:"Add anomaly charts to dashboards"}),x=i>=1&&i<=Px.b,v=Object(h.jsx)(d.EuiFormRow,{isInvalid:!x,error:x?void 0:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.anomalyChartsEmbeddable.maxSeriesToPlotError",defaultMessage:"Maximum number of series to plot must be between 1 and 50."}),label:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.addToDashboard.anomalyCharts.maxSeriesToPlotLabel",defaultMessage:"Maximum number of series to plot"})},Object(h.jsx)(d.EuiFieldNumber,{"data-test-subj":"mlAnomalyChartsInitializerMaxSeries",id:"selectMaxSeriesToPlot",name:"selectMaxSeriesToPlot",value:i,onChange:e=>s(parseInt(e.target.value,10)),min:1,max:Px.b}));return Object(h.jsx)(Ox,{onClose:e,dashboardItems:p,isLoading:m,search:b,addToDashboardAndEditCallback:f,disabled:!x,title:j},v)};var Bx={name:"1ktfjpo",styles:"margin-left:auto;align-self:baseline"};const Vx=({selectedJobs:e,selectedCells:t,bounds:a,interval:i,chartsCount:o})=>{var r,l;const{services:{application:{capabilities:c},cases:p}}=Object(Te.d)(),m=Object(ee.h)(!0),[b,f]=Object(n.useState)(!1),[j,x]=Object(n.useState)(!1),v=Object(n.useCallback)((e=>{f(!1),e()}),[f]),y=hx(vx.a),O=null!==(r=null===(l=c.dashboard)||void 0===l?void 0:l.createNew)&&void 0!==r&&r,E=null==p?void 0:p.helpers.canUseCases(),{anomalyExplorerCommonStateService:w,chartsStateService:M}=sx(),{queryString:S}=C()(w.getFilterSettings$(),w.getFilterSettings()),_=C()(M.getChartsData$(),M.getChartsData()),T=Object(n.useMemo)((()=>{if(_.seriesToPlot.length>0)return{from:Object(d.formatDate)(_.seriesToPlot[0].plotEarliest,"MMM D, YYYY @ HH:mm:ss.SSS"),to:Object(d.formatDate)(_.seriesToPlot[0].plotLatest,"MMM D, YYYY @ HH:mm:ss.SSS")};if(t&&void 0!==i&&void 0!==a){const{earliestMs:e,latestMs:i}=Object(em.k)(t,a);return{from:Object(d.formatDate)(e,"MMM D, YYYY @ HH:mm:ss.SSS"),to:Object(d.formatDate)(i,"MMM D, YYYY @ HH:mm:ss.SSS"),mode:"absolute"}}return m}),[_.seriesToPlot,m,t,a,i]),k=Object(n.useMemo)((()=>{const a=[];if(O&&a.push(Object(h.jsx)(d.EuiContextMenuItem,{key:"addToDashboard",onClick:v.bind(null,x.bind(null,!0)),"data-test-subj":"mlAnomalyAddChartsToDashboardButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.anomalies.addToDashboardLabel",defaultMessage:"Add to dashboard"}))),null!=E&&E.create||null!=E&&E.update){const i=Object(em.i)(t,null==t?void 0:t.viewByFieldName),n=Array.isArray(i)?i.map((e=>Object(We.d)(e.fieldName,e.fieldValue))).join(" or "):"";a.push(Object(h.jsx)(d.EuiContextMenuItem,{key:"attachToCase",onClick:v.bind(null,y.bind(null,{jobIds:null==e?void 0:e.map((e=>e.id)),timeRange:T,maxSeriesToPlot:ix.b,...Object(Qj.a)(S)&&""!==S||""!==n?{query:{query:""===S?n:S,language:ba.b.KUERY}}:{}})),"data-test-subj":"mlAnomalyAttachChartsToCasesButton"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.attachToCaseLabel",defaultMessage:"Add to case"})))}return a}),[O,m,v,e,t,S,T]),F=e.map((({id:e})=>e));return Object(h.jsx)(s.a.Fragment,null,k.length>0&&o>0?Object(h.jsx)(d.EuiFlexItem,{grow:!1,css:Bx},Object(h.jsx)(d.EuiPopover,{button:Object(h.jsx)(d.EuiButtonIcon,{size:"s","aria-label":u.i18n.translate("xpack.ml.explorer.anomalies.actionsAriaLabel",{defaultMessage:"Actions"}),color:"text",iconType:"boxesHorizontal",onClick:f.bind(null,!b),"data-test-subj":"mlExplorerAnomalyPanelMenu",disabled:o<1}),isOpen:b,closePopover:f.bind(null,!1),panelPaddingSize:"none",anchorPosition:"downLeft"},Object(h.jsx)(d.EuiPopoverTitle,{paddingSize:"s"},u.i18n.translate("xpack.ml.explorer.anomalies.actionsPopoverLabel",{defaultMessage:"Anomaly charts"})),Object(h.jsx)(d.EuiContextMenuPanel,{items:k}))):null,j&&e?Object(h.jsx)(zx,{onClose:async()=>{x(!1)},jobIds:F}):null)},Jx=({children:e,jobSelectorProps:t,noInfluencersConfigured:a,influencers:i,filterActive:n,filterPlaceHolder:o,indexPattern:r,dataViews:l,queryString:c,updateLanguage:u})=>Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiPageHeader,null,Object(h.jsx)(d.EuiPageHeaderSection,{style:{width:"100%"}},Object(h.jsx)(Qh.a,t),r&&u?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(px,{filterActive:!!n,filterPlaceHolder:o,indexPattern:r,dataViews:l,queryString:c,updateLanguage:u}),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiHorizontalRule,{margin:"none"})):null)),e),Ux=({invalidTimeRangeError:e,showCharts:t,severity:a,stoppedPartitions:i,selectedJobsRunning:o,timefilter:r,timeBuckets:l,selectedCells:c,swimLaneSeverity:p,explorerState:b,overallSwimlaneData:f})=>{var j,x;const v=Object(d.useIsWithinBreakpoints)(["xs","s"]),[y,O]=Object(gs.b)(Es.a,{topInfluencers:{isCollapsed:!1,size:20},mainPage:{size:80}}),E=Object(n.useRef)(null),w=Object(n.useRef)(),M=Object(n.useRef)(!1);Object(n.useEffect)((function(){!M.current&&w.current&&E.current&&(M.current=!0,y.topInfluencers.isCollapsed&&setTimeout((()=>{w.current&&w.current()}),0))}),[w.current,M,E.current,y]);const S=Object(n.useCallback)((e=>{O({mainPage:{size:e.mainPage},topInfluencers:{...y.topInfluencers,size:e.topInfluencers}})}),[y]),_=Object(n.useCallback)((()=>{M.current=!0;const e=y.topInfluencers.isCollapsed;O(e?{mainPage:{size:80},topInfluencers:{size:20,isCollapsed:!e}}:{mainPage:y.mainPage,topInfluencers:{...y.topInfluencers,isCollapsed:!e}})}),[y]),{displayWarningToast:T,displayDangerToast:k}=Object(qe.c)(),{anomalyTimelineStateService:F,anomalyExplorerCommonStateService:I,chartsStateService:D}=sx(),A=Object(n.useMemo)((()=>Object(d.htmlIdGenerator)()),[]),[L,R]=Object(n.useState)(lx),[N,P]=Object(n.useState)({}),[z,B]=Object(n.useState)(),V=C()(I.getFilterSettings$(),I.getFilterSettings()),J=C()(I.getSelectedJobs$(),I.getSelectedJobs()),U=Object(n.useCallback)(((e,t,a)=>{const{filterActive:i,queryString:n}=V,s=b.indexPattern;let o="";const r=Object(em.c)(e),l=Object(em.b)(t);if(a===tx.d.ADD){const a=Object(em.h)(e,t);if(null!==n.match(a))return;o=`${n?`${n} and `:""}${r}:"${l}"`}else if(a===tx.d.REMOVE){if(!1===i)return;o=Object(em.q)(n,r,l)}try{const{clearSettings:e,settings:t}=cx({inputString:`${o}`,queryLanguage:L,indexPattern:s});!0===e?I.clearFilterSettings():I.setFilterSettings(t)}catch(e){console.log("Invalid query syntax from table",e),k(u.i18n.translate("xpack.ml.explorer.invalidKuerySyntaxErrorMessageFromTable",{defaultMessage:"Invalid syntax in query bar. The input must be valid Kibana Query Language (KQL)"}))}}),[b,L,V]);Object(n.useEffect)((()=>{e&&T(u.i18n.translate("xpack.ml.explorer.invalidTimeRangeInUrlCallout",{defaultMessage:"The time filter was changed to the full range due to an invalid default time filter. Check the advanced settings for {field}.",values:{field:Mt}}))}),[]);const{services:{charts:G,data:{dataViews:q}}}=Object(Te.d)(),{euiTheme:$}=Object(d.useEuiTheme)(),W=Object(Te.g)(),{annotations:H,filterPlaceHolder:Y,indexPattern:X,influencers:Q,loading:K,noInfluencersConfigured:Z,tableData:ee}=b,te=C()(D.getChartsData$(),D.getChartsData()),{filterActive:ae,queryString:ie}=V,ne=C()(F.isOverallSwimLaneLoading$(),!0),se=C()(F.isViewBySwimLaneLoading$(),!0),oe=K||ne||se,re=C()(F.getSwimLaneBucketInterval$(),F.getSwimLaneBucketInterval()),{annotationsData:le,totalCount:ce,error:de}=H,ue=Array.isArray(le)?le.length:0,pe=(null!=ce?ce:0)>ue?Object(h.jsx)(d.EuiBadge,{color:"hollow"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.annotationsOutOfTotalCountTitle",defaultMessage:"First {visibleCount} out of a total of {totalCount}",values:{visibleCount:ue,totalCount:ce}})):Object(h.jsx)(d.EuiBadge,{color:"hollow"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.annotationsTitleTotalCount",defaultMessage:"Total: {count}",values:{count:ue}})),me={dateFormatTz:Object(em.f)()},be=!J||0===J.length,fe=!(null==f||!f.points)&&f.points.length>0,ge=fe&&f.points.some((e=>e.value>0))||(null===(j=ee.anomalies)||void 0===j?void 0:j.length)>0,he=Object(Qj.a)(p),je=Array.isArray(J)?J.map((e=>e.id)):[];if(Object(n.useEffect)((()=>{be||Object(em.e)(J,q).then((({sourceIndicesWithGeoFieldsMap:e,dataViews:t})=>{P(e),B(t)})).catch(console.error)}),[JSON.stringify(je)]),be&&!K)return Object(h.jsx)(Jx,{dataViews:z,jobSelectorProps:me},Object(h.jsx)(Vj,null));if(!ge&&!oe&&!he)return Object(h.jsx)(Jx,{dataViews:z,jobSelectorProps:me},Object(h.jsx)(Jj,{hasResults:fe,selectedJobsRunning:o}));const xe=r.getActiveBounds(),ve=Object(h.jsx)("div",null,i&&Object(h.jsx)(d.EuiCallOut,{size:"s",title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.stoppedPartitionsExistCallout",defaultMessage:"There may be fewer results than there could have been because stop_on_warn is turned on. Both categorization and subsequent anomaly detection have stopped for some partitions in {jobsWithStoppedPartitions, plural, one {job} other {jobs}} [{stoppedPartitions}] where the categorization status has changed to warn.",values:{jobsWithStoppedPartitions:i.length,stoppedPartitions:i.join(", ")}})}),Object(h.jsx)(Dx,{explorerState:b}),Object(h.jsx)(d.EuiSpacer,{size:"m"}),void 0!==de&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiTitle,{"data-test-subj":"mlAnomalyExplorerAnnotationsPanel error",size:"xs"},Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.annotationsErrorTitle",defaultMessage:"Annotations"}))),Object(h.jsx)(d.EuiPanel,null,Object(h.jsx)(d.EuiCallOut,{title:u.i18n.translate("xpack.ml.explorer.annotationsErrorCallOutTitle",{defaultMessage:"An error occurred loading annotations:"}),color:"danger",iconType:"warning"},Object(h.jsx)("p",null,de))),Object(h.jsx)(d.EuiSpacer,{size:"m"})),!1===K&&null!==(x=ee.anomalies)&&void 0!==x&&x.length?Object(h.jsx)(Rx,{anomalies:ee.anomalies,jobIds:je}):null,ue>0&&Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiPanel,{"data-test-subj":"mlAnomalyExplorerAnnotationsPanel loaded",hasBorder:!0,hasShadow:!1},Object(h.jsx)(d.EuiAccordion,{id:A(),buttonContent:Object(h.jsx)(d.EuiTitle,{"data-test-subj":"mlAnomalyExplorerAnnotationsPanelButton",size:"xs"},Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.annotationsTitle",defaultMessage:"Annotations {badge}",values:{badge:pe}})))},Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(vi,{annotations:le,drillDown:!0,numberBadge:!1})))),Object(h.jsx)(Mi,null),Object(h.jsx)(d.EuiSpacer,{size:"m"})),!1===K&&Object(h.jsx)(d.EuiPanel,{hasBorder:!0,hasShadow:!1},Object(h.jsx)(d.EuiFlexGroup,{direction:"row",gutterSize:"m",responsive:!1,alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.anomaliesTitle",defaultMessage:"Anomalies"})))),Object(h.jsx)(d.EuiFlexItem,{grow:!1,style:{marginLeft:"auto",alignSelf:"baseline"}},Object(h.jsx)(Vx,{selectedJobs:J,selectedCells:c,bounds:xe,interval:re?re.asSeconds():void 0,chartsCount:te.seriesToPlot.length}))),Object(h.jsx)(d.EuiFlexGroup,{direction:"row",gutterSize:"l",responsive:!0,alignItems:"center"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Hh.a,null)),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)($h,null)),te.seriesToPlot.length>0&&void 0!==c&&Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(rx,null))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),t?Object(h.jsx)(Ax.a,m()({},te,{severity:a,timefilter:r,mlLocator:W,timeBuckets:l,onSelectEntity:U,chartsService:G})):null,Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(Mh,{bounds:xe,tableData:ee,influencerFilter:U,sourceIndicesWithGeoFields:N,selectedJobs:J})));return Object(h.jsx)(Jx,{dataViews:z,jobSelectorProps:me,noInfluencersConfigured:Z,influencers:Q,filterActive:ae,filterPlaceHolder:Y,indexPattern:X,queryString:ie,updateLanguage:R},Object(h.jsx)(d.EuiSpacer,{size:"m"}),Z?Object(h.jsx)(d.EuiFlexGroup,{gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiIconTip,{content:u.i18n.translate("xpack.ml.explorer.noConfiguredInfluencersTooltip",{defaultMessage:"The Top Influencers list is hidden because no influencers have been configured for the selected jobs."}),position:"right",type:"iInCircle"})),Object(h.jsx)(d.EuiFlexItem,null,ve)):Object(h.jsx)("div",null,Object(h.jsx)(d.EuiResizableContainer,{direction:v?"vertical":"horizontal",onPanelWidthChange:S},((e,t,a)=>(w.current=()=>a.togglePanel("topInfluencers",{direction:"left"}),Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(e,{panelRef:E,id:"topInfluencers",mode:["collapsible",{"data-test-subj":"mlTopInfluencersToggle",position:"top"}],minSize:"200px",initialSize:20,paddingSize:"none",onToggleCollapsed:_},Object(h.jsx)("div",{"data-test-subj":"mlAnomalyExplorerInfluencerList",css:Object(h.css)("padding:calc(",$.size.base," + ",$.border.width.thin,") ",$.size.l," ",$.size.l," 0;","")},Object(h.jsx)(d.EuiFlexGroup,{direction:"row",gutterSize:"xs",responsive:!1,alignItems:"baseline"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiTitle,{size:"xs"},Object(h.jsx)("h2",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.topInfuencersTitle",defaultMessage:"Top influencers"})))),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Gm,{anchorPosition:"upCenter",title:u.i18n.translate("xpack.ml.explorer.topInfluencersPopoverTitle",{defaultMessage:"Top influencers"})},Object(h.jsx)("p",null,Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.explorer.topInfluencersTooltip",defaultMessage:"View the relative impact of the top influencers in the selected time period and add them as filters on the results. Each influencer has a maximum anomaly score between 0-100 and a total anomaly score for that period."}))))),Object(h.jsx)(d.EuiSpacer,{size:"m"}),Object(h.jsx)(d.EuiSkeletonText,{lines:10,isLoading:K},Object(h.jsx)(ex,{influencers:Q,influencerFilter:U})))),Object(h.jsx)(t,null),Object(h.jsx)(e,{id:"mainPage",mode:"main",minSize:"70%",initialSize:80,paddingSize:"none"},ve)))))))},Gx=(e,t)=>Object(Ue.isEqual)(e,t),qx=(e,t)=>Yt()(((e,t=null)=>function(a,...i){return e.apply(t,i)})(e,t),Gx),$x=qx(em.o),Wx=qx(em.l),Hx=qx(em.n),Yx=qx(em.p),Xx=qx(em.m);var Qx=a(212),Kx=a(340);function Zx(){return{overallAnnotations:{error:void 0,annotationsData:[]},annotations:{error:void 0,annotationsData:[]},anomalyChartsDataLoading:!0,chartsData:{chartsPerRow:1,errorMessages:void 0,seriesToPlot:[],tooManyBuckets:!1,timeFieldName:"timestamp"},fieldFormatsLoading:!1,filterPlaceHolder:void 0,indexPattern:{title:Kx.a,fields:[]},influencers:{},isAndOperator:!1,loading:!0,maskAll:!1,noInfluencersConfigured:!0,queryString:"",selectedJobs:null,tableData:{anomalies:[],examplesByJobId:[""],interval:0,jobIds:[],showViewSeriesLink:!1},tableQueryString:""}}const ev=e=>{const{influencers:t,noInfluencersConfigured:a}=e;if(void 0!==t&&!a)for(const e in t)if(t[e][0]&&t[e][0].influencerFieldValue)return{filterPlaceHolder:u.i18n.translate("xpack.ml.explorer.kueryBar.filterPlaceholder",{defaultMessage:"Filter by influencer fields… ({queryExample})",values:{queryExample:`${e} : ${t[e][0].influencerFieldValue}`}})};return{}},tv=new c.Subject,av={state$:tv.pipe(Object(Ii.flatMap)((e=>Object(c.isObservable)(e)?e:Object(c.from)([e]))),Object(Ii.distinctUntilChanged)(Ue.isEqual)).pipe(Object(Ii.scan)(((e,t)=>{const{type:a,payload:i}=t;let n;switch(a){case tx.c.CLEAR_EXPLORER_DATA:n=Zx();break;case tx.c.CLEAR_INFLUENCER_FILTER_SETTINGS:n=function(e){return{...e,isAndOperator:!1,maskAll:!1,queryString:"",tableQueryString:"",...Object(em.d)()}}(e);break;case tx.c.CLEAR_JOBS:n={...e,...Object(em.d)(),loading:!1,selectedJobs:[]};break;case tx.c.JOB_SELECTION_CHANGE:n=((e,t)=>{const{selectedJobs:a}=t,i={...e,noInfluencersConfigured:0===Object(em.g)(a).length,selectedJobs:a};if(!0===i.noInfluencersConfigured){const e={filterActive:!1,filteredFields:[],influencersFilterQuery:void 0,maskAll:!1,queryString:"",tableQueryString:""};Object.assign(i,e)}else i.indexPattern=Object(Qx.a)(a);return i.loading=!0,i})(e,i);break;case tx.c.SET_CHARTS_DATA_LOADING:n={...e,anomalyChartsDataLoading:!0,chartsData:{chartsPerRow:1,errorMessages:void 0,seriesToPlot:[],tooManyBuckets:!1,timeFieldName:"timestamp"}};break;case tx.c.SET_EXPLORER_DATA:n={...e,...i};break;default:n=e}return null===n.selectedJobs?n:{...n,...ev(n)}}),Zx()),Object(Ii.shareReplay)(1)),clearExplorerData:()=>{tv.next({type:tx.c.CLEAR_EXPLORER_DATA})},clearInfluencerFilterSettings:()=>{tv.next({type:tx.c.CLEAR_INFLUENCER_FILTER_SETTINGS})},clearJobs:()=>{tv.next({type:tx.c.CLEAR_JOBS})},updateJobSelection:e=>{tv.next(function(e){return Object(c.from)(Ng.a.populateFormats(e)).pipe(Object(Ii.map)((t=>{if(t.error)return null;const a=Object(em.a)(Ge.a.jobs).map((t=>(t.selected=e.some((e=>t.id===e)),t))).filter((e=>e.selected));return{type:tx.c.JOB_SELECTION_CHANGE,payload:{loading:!1,selectedJobs:a}}})))}(e))},setExplorerData:e=>{tv.next((e=>({type:tx.c.SET_EXPLORER_DATA,payload:e}))(e))},setChartsDataLoading:()=>{tv.next({type:tx.c.SET_CHARTS_DATA_LOADING})}},iv=(e,t)=>({id:"explorer",path:Object(Ee.c)(te.a.ANOMALY_EXPLORER),title:u.i18n.translate("xpack.ml.anomalyDetection.anomalyExplorer.docTitle",{defaultMessage:"Anomaly Explorer"}),render:(e,t)=>Object(h.jsx)(nv,m()({},e,{deps:t})),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("ANOMALY_DETECTION_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.anomalyDetection.anomalyExplorerLabel",{defaultMessage:"Anomaly Explorer"})}],enableDatePicker:!0,"data-test-subj":"mlPageAnomalyExplorer"}),nv=()=>{const{services:{mlServices:{mlApiServices:e}}}=Object(Te.d)(),{context:t,results:a}=Ie("full",["canGetJobs"],{...Sn(),jobs:Ge.a.loadJobsWrapper,jobsWithTimeRange:()=>e.jobs.jobsWithTimerange(Object(em.f)())}),i=Object(n.useMemo)((()=>new ea.a),[]);return Object(h.jsx)(Ee.b,{context:t},Object(h.jsx)(oa.Provider,{value:i},Object(h.jsx)(ox,null,a?Object(h.jsx)(sv,{jobsWithTimeRange:a.jobsWithTimeRange.jobs}):null)))},sv=({jobsWithTimeRange:e})=>{var t,a,i,o,r;const{services:{cases:l}}=Object(Te.d)(),[p]=Object(ze.d)("_g"),[m,b]=Object(n.useState)(),[f,g]=Object(n.useState)(!1),j=Object(os.a)(),x=Object(ee.i)({timeRangeSelector:!0,autoRefreshSelector:!0}),{jobIds:v}=(e=>{var t,a;const[i,s]=Object(ze.d)("_g"),{toasts:o}=Object(Te.i)(),r=$j(),l=Object(n.useMemo)((()=>{var e;const t=(null==i||null===(e=i.ml)||void 0===e?void 0:e.jobIds)||[];return("string"==typeof t?[t]:t).map((e=>String(e)))}),[null==i||null===(t=i.ml)||void 0===t?void 0:t.jobIds]),c=Object(n.useMemo)((()=>function(e,t){return t.filter((t=>!1===e.some((e=>e.job_id===t))&&"*"!==t))}(e,l)),[l]),d=Object(n.useMemo)((()=>{const e=Object(Ue.difference)(l,c);return e.sort(),e}),[l,c]),p=Object(n.useMemo)((()=>{var e,t;const a=null!==(e=null==i||null===(t=i.ml)||void 0===t?void 0:t.groups)&&void 0!==e?e:[];return{jobIds:d,selectedGroups:a}}),[d,null==i||null===(a=i.ml)||void 0===a?void 0:a.groups]);return Object(n.useEffect)((()=>{c.length>0&&o.addWarning(u.i18n.translate("xpack.ml.jobSelect.requestedJobsDoesNotExistWarningMessage",{defaultMessage:"Requested\n{invalidIdsLength, plural, one {job {invalidIds} does not exist} other {jobs {invalidIds} do not exist}}",values:{invalidIdsLength:c.length,invalidIds:c.join()}}))}),[c]),Object(n.useEffect)((()=>{0===d.length&&e.length>0&&r({singleSelection:!1}).then((({jobIds:e,time:t})=>{const a=(null==i?void 0:i.ml)||{};a.jobIds=e,s({ml:a,...void 0!==t?{time:t}:{}})})).catch((()=>{}))}),[e,d,s,null==i?void 0:i.ml]),p})(e),y=e.some((e=>v.includes(e.id)&&!0===e.isRunning)),O=C()(av.state$),E=sx(),w=Object(Qu.a)(),M=null!==(t=null==w?void 0:w.lastRefresh)&&void 0!==t?t:0;Object(n.useEffect)((()=>{void 0!==(null==p?void 0:p.time)&&"invalid"===p.time.mode&&g(!0)}),[null==p||null===(a=p.time)||void 0===a?void 0:a.from,null==p||null===(i=p.time)||void 0===i?void 0:i.to,null==p||null===(o=p.time)||void 0===o?void 0:o.ts]);const S=Object(n.useCallback)((async e=>{try{const t=await Je.ml.results.getCategoryStoppedPartitions(e,la.o);t&&Array.isArray(t.jobs)&&t.jobs.length>0?b(t.jobs):b(void 0)}catch(e){console.error(e)}}),[]);Object(n.useEffect)((function(){v.length>0?(av.updateJobSelection(v),S(v)):av.clearJobs()}),[JSON.stringify(v)]),Object(n.useEffect)((()=>()=>{av.clearExplorerData()}),[]);const[_,T]=(()=>{const e=Object(ee.i)(),{services:{mlServices:{mlApiServices:t}}}=Object(Te.d)(),{anomalyExplorerChartsService:a}=sx(),i=Object(n.useMemo)((()=>((e,t,a)=>i=>{if(void 0===(n=i)||void 0===n.selectedJobs||null===n.selectedJobs||void 0===n.viewBySwimlaneFieldName)return Object(c.of)({});var n;const{lastRefresh:s,influencersFilterQuery:o,noInfluencersConfigured:r,selectedCells:l,selectedJobs:d,tableInterval:u,tableSeverity:p,viewBySwimlaneFieldName:m}=i,b=Object(em.i)(l,m),f=Object(em.j)(l,d),g=a.getBounds(),h=Object(em.k)(l,g),j=Object(em.f)();return Object(c.forkJoin)({overallAnnotations:$x(s,d,g),annotationsData:Wx(s,l,d,g),anomalyChartRecords:t.loadDataForCharts$(f,h.earliestMs,h.latestMs,b,l,o),influencers:0===b.length?Yx(s,e,f,h.earliestMs,h.latestMs,[],r,o):Promise.resolve({}),tableData:Xx(s,l,d,j,g,m,u,p,o)}).pipe(Object(Ii.switchMap)((({overallAnnotations:t,anomalyChartRecords:a,influencers:i,annotationsData:n,tableData:l})=>Object(c.forkJoin)({filteredTopInfluencers:(b.length>0||void 0!==o)&&void 0!==a&&a.length>0?Hx(s,e,f,h.earliestMs,h.latestMs,a,b,r,o):Promise.resolve(i)}).pipe(Object(Ii.map)((({filteredTopInfluencers:e})=>({overallAnnotations:t,annotations:n,influencers:e,loading:!1,anomalyChartsDataLoading:!1,tableData:l})))))))})(Object(ca.mlResultsServiceProvider)(t),a,e)),[]),s=Object(n.useMemo)((()=>new c.Subject),[]),o=Object(n.useMemo)((()=>s.pipe(Object(Ii.switchMap)(i))),[]);return[C()(o),Object(n.useCallback)((e=>{s.next(e)}),[])]})();Object(n.useEffect)((()=>{void 0!==_&&Object.keys(_).length>0&&av.setExplorerData(_)}),[_]);const[k]=qh(),[F]=Object(Hh.d)(),I=C()(E.chartsStateService.getShowCharts$(),E.chartsStateService.getShowCharts()),D=C()(E.anomalyTimelineStateService.getSelectedCells$(),E.anomalyTimelineStateService.getSelectedCells()),A=C()(E.anomalyTimelineStateService.getViewBySwimlaneFieldName$()),L=C()(E.anomalyTimelineStateService.getSwimLaneSeverity$(),E.anomalyTimelineStateService.getSwimLaneSeverity()),R=C()(E.anomalyExplorerCommonStateService.getInfluencerFilterQuery$()),N=void 0!==O?{lastRefresh:M,influencersFilterQuery:R,noInfluencersConfigured:O.noInfluencersConfigured,selectedCells:D,selectedJobs:O.selectedJobs,tableInterval:k.val,tableSeverity:F.val,viewBySwimlaneFieldName:A}:void 0;Object(n.useEffect)((function(){E.anomalyExplorerCommonStateService.setSelectedJobs(null==N?void 0:N.selectedJobs)}),[N]),Object(n.useEffect)((()=>{N&&void 0!==(null==N?void 0:N.selectedCells)&&T(N)}),[JSON.stringify(N)]);const P=C()(E.anomalyTimelineStateService.getOverallSwimLaneData$(),null);if(void 0===O||void 0===w)return null;const z=null!==(r=null==l?void 0:l.ui.getCasesContext())&&void 0!==r?r:s.a.Fragment,B=null==l?void 0:l.helpers.canUseCases();return Object(h.jsx)("div",{className:"ml-explorer"},Object(h.jsx)(vn.a,null,Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Xh,{viewId:"explorer",selectedJobs:O.selectedJobs})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(Kh.a,{title:u.i18n.translate("xpack.ml.explorer.pageTitle",{defaultMessage:"Anomaly Explorer"})})))),Object(h.jsx)(Xj.EuiThemeProvider,null,Object(h.jsx)(z,{owner:[],permissions:B},0===e.length?Object(h.jsx)(hn.a,null):Object(h.jsx)(Ux,{explorerState:O,overallSwimlaneData:P,showCharts:I,severity:F.val,stoppedPartitions:m,invalidTimeRangeError:f,selectedJobsRunning:y,timeBuckets:j,timefilter:x,selectedCells:D,swimLaneSeverity:L}))))},ov=(e,t)=>({id:"trained_models",path:Object(Ee.c)(te.a.TRAINED_MODELS_MANAGE),title:u.i18n.translate("xpack.ml.modelManagement.trainedModels.docTitle",{defaultMessage:"Trained Models"}),render:()=>Object(h.jsx)(rv,null),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),Oe("TRAINED_MODELS",e,t),{text:u.i18n.translate("xpack.ml.trainedModelsBreadcrumbs.trainedModelsLabel",{defaultMessage:"Trained Models"})}],enableDatePicker:!0,"data-test-subj":"mlPageModelManagement"}),rv=()=>{const{context:e}=Ie("full",["canGetTrainedModels"],Sn());return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(vn.a,null,Object(h.jsx)(d.EuiFlexGroup,{responsive:!1,wrap:!1,alignItems:"center",gutterSize:"m"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.modelManagement.trainedModelsHeader",defaultMessage:"Trained Models"})))),Object(h.jsx)(ab.a,null))},lv=()=>{const{services:{dataVisualizer:e}}=Object(Te.d)(),[t,a]=Object(n.useState)(null);Object(n.useEffect)((()=>{if(void 0!==e){const{getDataComparisonComponent:t}=e;t().then(a)}}),[e]);const{selectedDataView:i,selectedSavedSearch:o}=Yn();return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(d.EuiFlexGroup,{responsive:!1,wrap:!1,alignItems:"center",gutterSize:"m"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.dataComparisonWithDocCount.pageHeader",defaultMessage:"Data comparison"})),Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(rg.a,null)))),i&&t?Object(h.jsx)(t,{dataView:i,savedSearch:o}):null)},cv=(e,t)=>({id:"data_comparison",path:Object(Ee.c)(te.a.DATA_COMPARISON),title:u.i18n.translate("xpack.ml.dataVisualizer.dataComparison.docTitle",{defaultMessage:"Data Comparison"}),render:(e,t)=>Object(h.jsx)(dv,m()({},e,{deps:t})),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),{text:ce.text,...e?{href:`${t}/app/ml${xe.href}`,onClick:ye(xe.href,e)}:{}},{text:u.i18n.translate("xpack.ml.trainedModelsBreadcrumbs.dataComparisonLabel",{defaultMessage:"Data Comparison"})}],"data-test-subj":"mlPageDataComparison"}),dv=()=>{const{context:e}=Ie("full",[],Sn());return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(Hn,null,Object(h.jsx)(lv,null)))},uv=s.a.lazy((()=>a.e(30).then(a.bind(null,680)))),pv=(e,t)=>({id:"notifications",path:Object(Ee.c)(te.a.NOTIFICATIONS),title:u.i18n.translate("xpack.ml.notifications.notificationsLabel",{defaultMessage:"Notifications"}),enableDatePicker:!0,render:()=>Object(h.jsx)(mv,null),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.overview.notificationsLabel",{defaultMessage:"Notifications"})}],"data-test-subj":"mlPageNotifications"}),mv=()=>{const{context:e}=Ie("full",["canGetMlInfo"],{getMlNodeCount:ae.a,loadMlServerInfo:ie.g});return Object(ee.i)({timeRangeSelector:!1,autoRefreshSelector:!1}),Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(n.Suspense,{fallback:null},Object(h.jsx)(uv,null)))};var bv,fv=a(355),gv=a(358);!function(e){e[e.NODES=0]="NODES",e[e.MEMORY_USAGE=1]="MEMORY_USAGE"}(bv||(bv={}));const hv=()=>{const[e,t]=Object(n.useState)(bv.NODES);Object(ee.i)({timeRangeSelector:!1,autoRefreshSelector:!0});const[a,i,o]=Object(Se.f)(["isADEnabled","isDFAEnabled","isNLPEnabled"]),r=Object(n.useCallback)((()=>{ee.f.next({lastRefresh:Date.now()})}),[]);return Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(vn.a,null,Object(h.jsx)(d.EuiFlexGroup,{responsive:!1,wrap:!1,alignItems:"center",gutterSize:"m"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.memoryUsage.memoryUsageHeader",defaultMessage:"Memory Usage"})))),Object(h.jsx)(mn.a,{onCloseFlyout:r}),a&&i&&o?Object(h.jsx)(s.a.Fragment,null,Object(h.jsx)(d.EuiTabs,null,Object(h.jsx)(d.EuiTab,{isSelected:e===bv.NODES,onClick:()=>t(bv.NODES)},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.memoryUsage.nodesTab",defaultMessage:"Nodes"})),Object(h.jsx)(d.EuiTab,{isSelected:e===bv.MEMORY_USAGE,onClick:()=>t(bv.MEMORY_USAGE)},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.memoryUsage.memoryTab",defaultMessage:"Memory usage"}))),e===bv.NODES?Object(h.jsx)(fv.a,null):Object(h.jsx)(gv.b,null)):Object(h.jsx)(gv.a,null))},jv=(e,t)=>({path:Object(Ee.c)(te.a.MEMORY_USAGE),render:()=>Object(h.jsx)(xv,null),title:u.i18n.translate("xpack.ml.modelManagement.memoryUsage.docTitle",{defaultMessage:"Memory Usage"}),breadcrumbs:[Oe("ML_BREADCRUMB",e,t),{text:u.i18n.translate("xpack.ml.trainedModelsBreadcrumbs.nodeOverviewLabel",{defaultMessage:"Memory Usage"})}],enableDatePicker:!0}),xv=()=>{const{context:e}=Ie("full",["canGetJobs","canGetDataFrameAnalytics","canGetTrainedModels"],Sn());return Object(h.jsx)(Ee.b,{context:e},Object(h.jsx)(hv,null))};var vv=a(96);const yv=({path:e,children:t})=>Object(h.jsx)(vv.TrackApplicationView,{viewId:e},t);var Ov=a(230),Ev=a(43),wv=a(44),Mv=a(271),Sv={name:"4zleql",styles:"display:block"};const _v=()=>{var e,t;const{notificationsCounts:a,latestRequestedAt:i}=Object(Mv.b)(),n=Object(wv.a)(Ev.FIELD_FORMAT_IDS.DATE),s=(null!==(e=null==a?void 0:a.error)&&void 0!==e?e:0)+(null!==(t=null==a?void 0:a.warning)&&void 0!==t?t:0),o=a&&Object.values(a).some((e=>e>0));return Object(h.jsx)(d.EuiFlexGroup,{alignItems:"center",gutterSize:"s"},Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.navMenu.notificationsTabLinkText",defaultMessage:"Notifications"})),s?Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiToolTip,{position:"right",content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.notificationsIndicator.errorsAndWarningLabel",defaultMessage:"There {count, plural, one {is # notification} other {are # notifications}} with error or warning level since {lastCheckedAt}",values:{count:s,lastCheckedAt:n(i)}})},Object(h.jsx)(d.EuiNotificationBadge,{"aria-label":u.i18n.translate("xpack.ml.notificationsIndicator.unreadErrors",{defaultMessage:"Unread errors or warnings indicator."}),"data-test-subj":"mlNotificationErrorsIndicator"},s))):null,!s&&o?Object(h.jsx)(d.EuiFlexItem,{grow:!1},Object(h.jsx)(d.EuiToolTip,{position:"right",content:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.notificationsIndicator.unreadLabel",defaultMessage:"You have unread notifications since {lastCheckedAt}",values:{lastCheckedAt:n(i)}})},Object(h.jsx)(d.EuiHealth,{css:Sv,color:"primary",role:"img","aria-label":u.i18n.translate("xpack.ml.notificationsIndicator.unreadIcon",{defaultMessage:"Unread notifications indicator."}),"data-test-subj":"mlNotificationsIndicator"}))):null)},Tv=Object(n.createContext)({setHeaderActionMenu:()=>{},headerPortal:Object(o.c)(),isHeaderMounted:!1,setIsHeaderMounted:()=>{}}),Cv=s.a.memo((({pageDeps:e})=>{const t=Object(Te.h)(),{services:{http:{basePath:a},mlServices:{httpService:s}}}=Object(Te.d)(),l=Object(n.useMemo)((()=>Object(o.c)()),[]),[p,m]=Object(n.useState)(!1),[b,f]=Object(n.useState)(!1),[j,x,v]=Object(Se.f)(["isADEnabled","isDFAEnabled","isNLPEnabled"]),y=Object(n.useMemo)((()=>j&&x&&v),[j,x,v]);Object(n.useEffect)((()=>{const e=new c.Subscription;return e.add(s.getLoadingCount$.subscribe((e=>{f(0!==e)}))),function(){e.unsubscribe()}}),[]);const O=Object(n.useMemo)((()=>Object.values(i).map((e=>e(t,a.get()))).filter((e=>!e.disabled))),[]),E=(e=>{var t;const{pathname:a}=Object(r.useLocation)(),{services:{executionContext:i,overlays:s,theme:o,i18n:l}}=Object(Te.d)(),c=Object(r.useRouteMatch)("/settings/calendars_list/edit_calendar/:calendarId"),u=Object(r.useRouteMatch)("/settings/filter_lists/edit_filter_list/:filterId"),p=Object(n.useMemo)((()=>Object(Ue.keyBy)(e,"path")),[]),m=Object(n.useMemo)((()=>{if(c)return p[c.path];if(u)return p[u.path];const e=a.replace(/\/$/,"");return p[e]}),[a]),b=Object(n.useRef)();return Object(n.useEffect)((function(){!m&&a&&(b.current=s.banners.replace(b.current,Object(yn.a)(Object(h.jsx)(d.EuiCallOut,{color:"warning",iconType:"iInCircle",title:Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.notFoundPage.title",defaultMessage:"Page Not Found"}),"data-test-subj":"mlPageNotFoundBanner"},Object(h.jsx)("p",{"data-test-subj":"mlPageNotFoundBannerText"},Object(h.jsx)(g.FormattedMessage,{id:"xpack.ml.notFoundPage.bannerText",defaultMessage:"The Machine Learning application doesn't recognize this route: {route}. You've been redirected to the Overview page.",values:{route:a}}))),{theme:o,i18n:l})),setTimeout((()=>{b.current&&s.banners.remove(b.current)}),15e3))}),[m,s,o,a,l]),Object(sa.useExecutionContext)(i,{name:ke.f,type:"application",page:null!==(t=null==m?void 0:m.path)&&void 0!==t?t:"/overview",id:null==m?void 0:m.path}),null!=m?m:p["/overview"]})(O),w=Object(n.useMemo)((()=>[...E.enableDatePicker?[Object(h.jsx)(ee.b,{isLoading:b,width:"full"})]:[]]),[E.enableDatePicker,b]);(e=>{const t=null==e?void 0:e.title,{services:{chrome:{docTitle:a}}}=Object(Te.d)(),i=Object(n.useCallback)((e=>{a.change([e,ke.a])}),[a]);Object(n.useEffect)((()=>{t&&i(t)}),[i,t])})(E),Object(n.useEffect)((()=>{const e=document.querySelector('[data-test-subj="mlApp"]');if(e&&"string"==typeof(null==E?void 0:E["data-test-subj"])){const t=e.querySelector("main");t&&t.setAttribute("data-test-subj",null==E?void 0:E["data-test-subj"])}}),[E]);const M=function(e){const t=Object(Te.g)(),a=Object(Te.h)(),i=!Object(Ad.b)(),s=Object(Se.f)("canViewMlNodes"),[o]=Object(ze.d)("_g"),r=Object(n.useMemo)((()=>void 0!==(null==o?void 0:o.refreshInterval)?{globalState:{refreshInterval:o.refreshInterval}}:void 0),[null==o?void 0:o.refreshInterval]),l=Object(n.useCallback)((async e=>{const i=await t.getUrl({page:e,pageState:r});await a(i,!1)}),[r]),c=Object(n.useMemo)((()=>{const e=i,t=[{id:"main_section",name:"",items:[{id:"overview",pathId:Fe.b.OVERVIEW,name:u.i18n.translate("xpack.ml.navMenu.overviewTabLinkText",{defaultMessage:"Overview"}),disabled:e,testSubj:"mlMainTab overview"},{id:"notifications",pathId:Fe.b.NOTIFICATIONS,name:e?u.i18n.translate("xpack.ml.navMenu.notificationsTabLinkText",{defaultMessage:"Notifications"}):Object(h.jsx)(_v,null),disabled:e,testSubj:"mlMainTab notifications"},{id:"memory_usage",pathId:Fe.b.MEMORY_USAGE,name:u.i18n.translate("xpack.ml.navMenu.memoryUsageText",{defaultMessage:"Memory Usage"}),disabled:e||!s,testSubj:"mlMainTab nodesOverview"}]},{id:"anomaly_detection_section",name:u.i18n.translate("xpack.ml.navMenu.anomalyDetectionTabLinkText",{defaultMessage:"Anomaly Detection"}),disabled:e,items:[{id:"anomaly_detection",name:u.i18n.translate("xpack.ml.navMenu.anomalyDetection.jobsManagementText",{defaultMessage:"Jobs"}),disabled:e,pathId:Fe.b.ANOMALY_DETECTION_JOBS_MANAGE,testSubj:"mlMainTab anomalyDetection"},{id:"anomaly_explorer",name:u.i18n.translate("xpack.ml.navMenu.anomalyDetection.anomalyExplorerText",{defaultMessage:"Anomaly Explorer"}),disabled:e,pathId:Fe.b.ANOMALY_EXPLORER,testSubj:"mlMainTab anomalyExplorer"},{id:"single_metric_viewer",name:u.i18n.translate("xpack.ml.navMenu.anomalyDetection.singleMetricViewerText",{defaultMessage:"Single Metric Viewer"}),pathId:Fe.b.SINGLE_METRIC_VIEWER,disabled:e,testSubj:"mlMainTab singleMetricViewer"},{id:"settings",pathId:Fe.b.SETTINGS,name:u.i18n.translate("xpack.ml.navMenu.settingsTabLinkText",{defaultMessage:"Settings"}),disabled:e,testSubj:"mlMainTab settings",highlightNestedRoutes:!0}]},{id:"data_frame_analytics_section",name:u.i18n.translate("xpack.ml.navMenu.dataFrameAnalyticsTabLinkText",{defaultMessage:"Data Frame Analytics"}),disabled:e,items:[{id:"data_frame_analytics_jobs",pathId:Fe.b.DATA_FRAME_ANALYTICS_JOBS_MANAGE,name:u.i18n.translate("xpack.ml.navMenu.dataFrameAnalytics.jobsManagementText",{defaultMessage:"Jobs"}),disabled:e,testSubj:"mlMainTab dataFrameAnalytics"},{id:"data_frame_analytics_results_explorer",pathId:Fe.b.DATA_FRAME_ANALYTICS_EXPLORATION,name:u.i18n.translate("xpack.ml.navMenu.dataFrameAnalytics.resultsExplorerText",{defaultMessage:"Results Explorer"}),disabled:e,testSubj:"mlMainTab dataFrameAnalyticsResultsExplorer"},{id:"data_frame_analytics_job_map",pathId:Fe.b.DATA_FRAME_ANALYTICS_MAP,name:u.i18n.translate("xpack.ml.navMenu.dataFrameAnalytics.analyticsMapText",{defaultMessage:"Analytics Map"}),disabled:e,testSubj:"mlMainTab dataFrameAnalyticsMap"}]},{id:"model_management",name:u.i18n.translate("xpack.ml.navMenu.modelManagementText",{defaultMessage:"Model Management"}),disabled:e,items:[{id:"trained_models",pathId:Fe.b.TRAINED_MODELS_MANAGE,name:u.i18n.translate("xpack.ml.navMenu.trainedModelsText",{defaultMessage:"Trained Models"}),disabled:e,testSubj:"mlMainTab trainedModels"}]},{id:"datavisualizer",name:u.i18n.translate("xpack.ml.navMenu.dataVisualizerTabLinkText",{defaultMessage:"Data Visualizer"}),disabled:!1,pathId:Fe.b.DATA_VISUALIZER,testSubj:"mlMainTab dataVisualizer",items:[{id:"filedatavisualizer",pathId:Fe.b.DATA_VISUALIZER_FILE,name:u.i18n.translate("xpack.ml.navMenu.fileDataVisualizerLinkText",{defaultMessage:"File"}),disabled:!1,testSubj:"mlMainTab fileDataVisualizer"},{id:"data_view_datavisualizer",pathId:Fe.b.DATA_VISUALIZER_INDEX_SELECT,name:u.i18n.translate("xpack.ml.navMenu.dataViewDataVisualizerLinkText",{defaultMessage:"Data View"}),disabled:!1,testSubj:"mlMainTab indexDataVisualizer"},{id:"data_comparison",pathId:Fe.b.DATA_COMPARISON_INDEX_SELECT,name:u.i18n.translate("xpack.ml.navMenu.dataComparisonText",{defaultMessage:"Data Comparison"}),disabled:e,testSubj:"mlMainTab dataComparison"}]}];return t.push({id:"aiops_section",name:u.i18n.translate("xpack.ml.navMenu.aiopsTabLinkText",{defaultMessage:"AIOps Labs"}),disabled:e,items:[{id:"logRateAnalysis",pathId:Fe.b.AIOPS_LOG_RATE_ANALYSIS_INDEX_SELECT,name:u.i18n.translate("xpack.ml.navMenu.logRateAnalysisLinkText",{defaultMessage:"Log Rate Analysis"}),disabled:e,testSubj:"mlMainTab logRateAnalysis",relatedRouteIds:["log_rate_analysis"]},{id:"logCategorization",pathId:Fe.b.AIOPS_LOG_CATEGORIZATION_INDEX_SELECT,name:u.i18n.translate("xpack.ml.navMenu.logCategorizationLinkText",{defaultMessage:"Log Pattern Analysis"}),disabled:e,testSubj:"mlMainTab logCategorization",relatedRouteIds:["log_categorization"]},...gg.CHANGE_POINT_DETECTION_ENABLED?[{id:"changePointDetection",pathId:Fe.b.AIOPS_CHANGE_POINT_DETECTION_INDEX_SELECT,name:u.i18n.translate("xpack.ml.navMenu.changePointDetectionLinkText",{defaultMessage:"Change Point Detection"}),disabled:e,testSubj:"mlMainTab changePointDetection",relatedRouteIds:["change_point_detection"]}]:[]]}),t}),[i,s]),d=Object(n.useCallback)((t=>{const{id:a,disabled:i,items:n,onClick:s,pathId:o,name:r,testSubj:c,highlightNestedRoutes:u,relatedRouteIds:p}=t,m=null!=s?s:o?l.bind(null,o):void 0,b=`/${o}`===(null==e?void 0:e.path)||!!u&&(null==e?void 0:e.path.includes(`${o}/`))||Array.isArray(p)&&p.includes(null==e?void 0:e.id);return{id:a,name:r,isSelected:b,disabled:i,...m?{onClick:m}:{},"data-test-subj":c+(b?" selected":""),items:n?n.map(d):void 0,forceOpen:!0}}),[e,l]);return Object(n.useMemo)((()=>c.map(d)),[c,d])}(E);return Object(h.jsx)(Tv.Provider,{value:{setHeaderActionMenu:e.setHeaderActionMenu,headerPortal:l,setIsHeaderMounted:m,isHeaderMounted:p}},Object(h.jsx)(Z,{className:"ml-app","data-test-subj":"mlApp",restrictWidth:!1,solutionNav:y?{name:u.i18n.translate("xpack.ml.plugin.title",{defaultMessage:"Machine Learning"}),icon:"machineLearningApp",items:M}:void 0,pageHeader:{pageTitle:Object(h.jsx)(Ov.b,null),rightSideItems:w,restrictWidth:!1}},Object(h.jsx)(kv,{headerPortal:l,setIsHeaderMounted:m,pageDeps:e,routeList:O})))})),kv=s.a.memo((({pageDeps:e,routeList:t})=>{const{services:{application:a}}=Object(Te.d)();return Object(h.jsx)(R,{coreStart:{application:a}},Object(h.jsx)(d.EuiPageSection,{restrictWidth:!1},Object(h.jsx)(l.c,null,t.map((t=>Object(h.jsx)(l.a,{key:t.path,path:t.path,exact:!0,render:a=>(window.setTimeout((()=>{e.setBreadcrumbs(t.breadcrumbs)})),Object(h.jsx)(yv,{path:t.path},t.render(a,e)))}))),Object(h.jsx)(r.Redirect,{to:"/overview"}))))}))},,function(e,t,a){"use strict";a.r(t),a.d(t,"resolver",(function(){return g})),a.d(t,"QuickGeoJobCreator",(function(){return quick_create_job_QuickGeoJobCreator})),a.d(t,"getJobsItemsFromEmbeddable",(function(){return m})),a.d(t,"isCompatibleMapVisualization",(function(){return p})),a.d(t,"redirectToGeoJobWizard",(function(){return u})),a.d(t,"VisualizationExtractor",(function(){return visualization_extractor_VisualizationExtractor}));var i=a(34),n=a.n(i),s=a(6),o=a(13),r=a(105),l=a(132),c=a(113),d=a(1);async function u(e,t,a,i,n,s){const{query:o,filters:r,to:l,from:c}=await m(e),u=await e.getQuery(),p=await e.getFilters(),b=s.url.locators.get(d.a),f={dashboard:{query:o,filters:r},dataViewId:t,embeddable:{query:u,filters:p},geoField:a,splitField:n,from:c,to:l,...i?{layer:{query:i}}:{}},g=await(null==b?void 0:b.getUrl({page:d.b.ANOMALY_DETECTION_CREATE_JOB_FROM_MAP,pageState:f}));window.open(g,"_blank")}function p(e){return e.getLayerList().some((e=>{const t=e.getGeoFieldNames().length?e.getGeoFieldNames()[0]:void 0,a=e.getIndexPatternIds().length?e.getIndexPatternIds()[0]:void 0;return t&&a}))}async function m(e){var t;const{filters:a,timeRange:i,...n}=e.getInput(),o=void 0===n.query?{query:"",language:"kuery"}:n.query;if(void 0===i)throw Error(s.i18n.translate("xpack.ml.newJob.fromGeo.createJob.error.noTimeRange",{defaultMessage:"Time range not specified."}));const{to:r,from:l}=i;return{from:l,to:r,query:o,filters:a,dashboard:"dashboard"===(null===(t=e.parent)||void 0===t?void 0:t.type)?e.parent:void 0}}var b=a(218),f=a(144);class quick_create_job_QuickGeoJobCreator extends b.a{constructor(e,t,a,i){super(e,t,a,i)}async createAndSaveGeoJob({jobId:e,bucketSpan:t,embeddable:a,startJob:i,runInRealTime:n,dataViewId:s,sourceDataView:o,geoField:l,splitField:c,layerLevelQuery:d}){var u,p;const{query:b,filters:g,to:h,from:j,dashboard:x}=await m(a),v=null!==(u=await a.getQuery())&&void 0!==u?u:Object(f.d)(),y=null!==(p=await a.getFilters())&&void 0!==p?p:[];if(void 0===b||void 0===g)throw new Error("Cannot create job, query and filters are undefined");const{jobConfig:O,datafeedConfig:E,start:w,end:M}=await this.createGeoJob({dataViewId:s,sourceDataView:o,from:j,to:h,query:b,filters:g,embeddableQuery:v,embeddableFilters:y,layerLevelQuery:d,geoField:l,splitField:c,bucketSpan:t});return await this.putJobAndDataFeed({jobId:e,datafeedConfig:E,jobConfig:O,createdByLabel:r.a.GEO,dashboard:x,start:w,end:M,startJob:i,runInRealTime:n})}async createAndStashGeoJob(e,t,a,i,n,s,o,l,d=null,u){try{const{jobConfig:p,datafeedConfig:m,start:b,end:f,includeTimeRange:g}=await this.createGeoJob({dataViewId:e,from:t,to:a,query:i,filters:n,embeddableQuery:s,embeddableFilters:o,geoField:l,splitField:d,layerLevelQuery:u});Object(c.n)({jobConfig:p,datafeedConfig:m,createdBy:r.a.GEO,start:b,end:f},!0,g,!g)}catch(e){console.error(e)}}async createGeoJob({dataViewId:e,sourceDataView:t,from:a,to:i,query:n,filters:o,embeddableQuery:r,embeddableFilters:l,layerLevelQuery:c,geoField:d,splitField:u,bucketSpan:p}){const{jobConfig:m,datafeedConfig:b,jobType:f}=await this.createGeoJobFromMapEmbeddable({sourceDataView:t,dataViewId:e,dashboard:{query:n,filters:o},embeddable:{query:r,filters:l},layerLevelQuery:c,geoField:d,splitField:u,...p?{bucketSpan:p}:{}});let g,h,j=!0;try{const{min:e,max:t}=this.timeFilter.calculateBounds({to:i,from:a});if(g=null==e?void 0:e.valueOf(),h=null==t?void 0:t.valueOf(),void 0===g||void 0===h||isNaN(g)||isNaN(h))throw Error(s.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.timeRange",{defaultMessage:"Incompatible time range"}))}catch(e){console.error(e),j=!1,g=void 0,h=void 0}return{jobConfig:m,datafeedConfig:b,jobType:f,start:g,end:h,includeTimeRange:j}}async createGeoJobFromMapEmbeddable({sourceDataView:e,dataViewId:t,dashboard:a,embeddable:i,layerLevelQuery:n,bucketSpan:s,geoField:c,splitField:d}){const u=e||await Object(o.c)().get(t,!0),p=Object(l.c)(),m=Object(l.b)(u.getIndexPattern()),b=this.combineQueriesAndFilters(a,i,u,n?{query:n,filters:[]}:void 0);return m.query=b,p.analysis_config.detectors=[{function:"lat_long",field_name:c,...d?{partition_field_name:d}:{}}],p.data_description.time_field=u.timeFieldName,p.analysis_config.bucket_span=null!=s?s:r.b,d&&(p.analysis_config.influencers=[d]),{jobConfig:p,datafeedConfig:m,jobType:r.f.GEO}}}async function g(e,t,a,i,s,o,r,l,c){var d;const{kibanaConfig:u,timeFilter:p,dashboardService:m,mlApiServices:b}=e;let g,h,j,x,v,y,O;try{v=n.a.decode(a)}catch(e){v=""}try{g=n.a.decode(t)}catch(e){g={query:Object(f.d)(),filters:[]}}try{h=n.a.decode(i)}catch(e){h={query:Object(f.d)(),filters:[]}}if(c)try{j=n.a.decode(c)}catch(e){j={query:Object(f.d)(),filters:[]}}try{x=n.a.decode(o)}catch(e){x=null}try{y=n.a.decode(r)}catch(e){y=""}try{O=n.a.decode(l)}catch(e){O=""}const E=new quick_create_job_QuickGeoJobCreator(u,p,m,b);await E.createAndStashGeoJob(v,y,O,g.query,g.filters,h.query,h.filters,s,x,null===(d=j)||void 0===d?void 0:d.query)}var h=a(81),j=a(126);class visualization_extractor_VisualizationExtractor{constructor(){}async getResultLayersFromEmbeddable(e){var t,a;const i=[],n=null!==(t=null===(a=e.getRoot())||void 0===a?void 0:a.getAllDataViews())&&void 0!==t?t:[],s={};return await Object(h.asyncForEach)(e.getLayerList(),(async e=>{const t=e.getGeoFieldNames().length?e.getGeoFieldNames()[0]:void 0,a=e.getIndexPatternIds().length?e.getIndexPatternIds()[0]:void 0,o=await e.getDisplayName(),r=await e.getId(),l=await e.getQuery();if(t&&a&&void 0===s[t]){s[t]=!0;const e=n.find((e=>e.id===a));i.push({layerId:r,layerDisplayName:o,geoField:t,dataViewId:a,dataView:e,query:l,...e?{splitFieldOptions:await this.getSplitFieldOptions(e)}:{splitFieldOptions:[]}})}})),i}async getSplitFieldOptions(e){var t;return(null!==(t=e.fields.getAll().sort(((e,t)=>e.name.localeCompare(t.name))))&&void 0!==t?t:[]).filter((e=>j.a.some((t=>{var a;return null===(a=e.esTypes)||void 0===a?void 0:a.includes(t)})))).map((e=>({label:e.name,field:e.name})))}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var i=a(4),n=(a(2),a(28));const s=({stat:e})=>{const{euiTheme:t}=Object(n.useEuiTheme)();return Object(i.jsx)("span",{css:Object(i.css)({marginRight:t.size.s},"","")},Object(i.jsx)("span",null,e.label),":"," ",Object(i.jsx)("strong",{"data-test-subj":e["data-test-subj"]},e.value))},o=({stats:e,dataTestSub:t})=>{const{euiTheme:a}=Object(n.useEuiTheme)(),o=Object.keys(e).map((t=>e[t]));return Object(i.jsx)("div",{css:Object(i.css)({padding:a.size.m,backgroundColor:a.colors.lightestShade},"",""),"data-test-subj":t},o.filter((e=>e.show)).map((e=>Object(i.jsx)(s,{key:e.label,stat:e}))))}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var i=a(100),n=a.n(i),s=(a(2),a(28)),o=a(6),r=a(155),l=a(4);const c=({icon:e,id:t,isGroup:a=!1,numJobs:i,removeId:c})=>{let d,u={color:a?Object(r.a)(t):"hollow"};return!0===e&&c&&(u={...u,iconType:"cross",iconSide:"right",onClick:()=>c(t),onClickAriaLabel:"Remove id"}),void 0!==i&&(d=o.i18n.translate("xpack.ml.jobSelector.selectedGroupJobs",{defaultMessage:"({jobsCount, plural, one {# job} other {# jobs}})",values:{jobsCount:i}})),Object(l.jsx)(s.EuiBadge,n()({key:`${t}-id`,"data-test-subj":`mlJobSelectionBadge ${t}`},u),`${t}${d||""}`)}},function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a(2);var i=a(28),n=a(155),s=a(4);const o=({name:e})=>Object(s.jsx)(i.EuiBadge,{key:`${e}-id`,"data-test-subj":"mlJobGroup",color:Object(n.a)(e)},e)},function(e,t,a){"use strict";a.d(t,"a",(function(){return f}));var i=a(2),n=a.n(i),s=a(28),o=a(6),r=a(15),l=a(444),c=a.n(l),d=a(32),u=a(9),p=a(1),m=a(102),b=a(4);const f=()=>{const{services:{docLinks:e}}=Object(u.d)(),[t,a]=Object(m.f)(["canCreateDataFrameAnalytics","canStartStopDataFrameAnalytics"]),i=!Object(d.c)()||!t||!a,l=Object(u.h)();return Object(b.jsx)(s.EuiEmptyPrompt,{layout:"horizontal",hasBorder:!1,hasShadow:!1,icon:Object(b.jsx)(s.EuiImage,{size:"fullWidth",src:c.a,alt:o.i18n.translate("xpack.ml.dataFrame.analyticsList.emptyPromptTitle",{defaultMessage:"Analyze your data with data frame analytics"})}),title:Object(b.jsx)("h2",null,Object(b.jsx)(r.FormattedMessage,{id:"xpack.ml.dataFrame.analyticsList.emptyPromptTitle",defaultMessage:"Analyze your data with data frame analytics"})),body:Object(b.jsx)(n.a.Fragment,null,Object(b.jsx)("p",null,Object(b.jsx)(r.FormattedMessage,{id:"xpack.ml.overview.analyticsList.emptyPromptText",defaultMessage:"Train outlier detection, regression, or classification machine learning models using data frame analytics."}))),actions:[Object(b.jsx)(s.EuiButton,{onClick:async()=>{await l(p.b.DATA_FRAME_ANALYTICS_SOURCE_SELECTION)},isDisabled:i,color:"primary","data-test-subj":"mlAnalyticsCreateFirstButton"},o.i18n.translate("xpack.ml.dataFrame.analyticsList.emptyPromptButtonText",{defaultMessage:"Create data frame analytics job"})),Object(b.jsx)(s.EuiLink,{href:e.links.ml.dataFrameAnalytics,target:"_blank",external:!0},Object(b.jsx)(r.FormattedMessage,{id:"xpack.ml.common.readDocumentationLink",defaultMessage:"Read documentation"}))],"data-test-subj":"mlNoDataFrameAnalyticsFound"})}},function(e,t,a){"use strict";a.d(t,"a",(function(){return b}));var i=a(2),n=a.n(i),s=a(15),o=a(6),r=a(28),l=a(9),c=a(101),d=a(158),u=a(4);const p=o.i18n.translate("xpack.ml.deleteSpaceAwareItemCheckModal.shouldUnTagLabel.job",{defaultMessage:"Remove job from current space"}),m=o.i18n.translate("xpack.ml.deleteSpaceAwareItemCheckModal.shouldUnTagLabel.model",{defaultMessage:"Remove model from current space"}),b=({canDeleteCallback:e,onCloseCallback:t,refreshJobsCallback:a,mlSavedObjectType:b,ids:f,setDidUntag:g,hasManagedJob:h})=>{const[j,x]=Object(i.useState)(),[v,y]=Object(i.useState)(),[O,E]=Object(i.useState)(!1),[w,M]=Object(i.useState)(!1),[S,_]=Object(i.useState)(!1),[T,C]=Object(i.useState)(),{savedObjects:{canDeleteMLSpaceAwareItems:k,removeItemFromCurrentSpace:F}}=Object(l.c)(),{displayErrorToast:I,displaySuccessToast:D}=Object(c.c)();Object(i.useEffect)((()=>{_(!0),k(b,f).then((t=>{const a=function(e){const t=Object.keys(e),{canDelete:a,canRemoveFromSpace:i}=e[t[0]];let n=!0;return t.length>1&&(n=t.every((t=>e[t].canDelete===a&&e[t].canRemoveFromSpace===i))),{canDelete:a,canRemoveFromSpace:i,canTakeAnyAction:n}}(t),{canDelete:i,canRemoveFromSpace:l,canTakeAnyAction:c}=a;if(c&&i&&!l)return void e();C(a);const{buttonText:p,modalText:m}=function(e,t,a,i){const{canDelete:l,canRemoveFromSpace:c,canTakeAnyAction:p}=a;if(!1===p)return{buttonText:Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.buttonTextNoAction",defaultMessage:"Close"}),modalText:Object(u.jsx)(r.EuiText,null,Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.modalTextNoAction",defaultMessage:"{ids} have different space permissions. ",values:{ids:e.join(", ")}}),"trained-model"===t?Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.modalTextNoAction.model",defaultMessage:"When you delete multiple models, they must have the same permissions. Deselect the models and try deleting each model individually."}):Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.modalTextNoAction.job",defaultMessage:"When you delete multiple jobs, they must have the same permissions. Deselect the jobs and try deleting each job individually."}))};const m={buttonText:Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.buttonTextClose",defaultMessage:"Close"}),modalText:Object(u.jsx)(r.EuiText,null,Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.modalTextClose",defaultMessage:"{ids} cannot be deleted and cannot be removed from the current space. ",values:{ids:e.join(", ")}}),"trained-model"===t?Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.modalTextClose.model",defaultMessage:"This model is assigned to the * space and you do not have access to all spaces."}):Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.modalTextClose.job",defaultMessage:"This job is assigned to the * space and you do not have access to all spaces."}))};return l?{buttonText:"trained-model"===t?Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.buttonTextCanDelete.model",defaultMessage:"Continue to delete {length, plural, one {# model} other {# models}}",values:{length:e.length}}):Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.buttonTextCanDelete.job",defaultMessage:"Continue to delete {length, plural, one {# job} other {# jobs}}",values:{length:e.length}}),modalText:Object(u.jsx)(n.a.Fragment,null,i?Object(u.jsx)(n.a.Fragment,null,Object(u.jsx)(d.a,{jobsCount:e.length,action:o.i18n.translate("xpack.ml.jobsList.deleteJobCheckModal.removeOrDeleteAction",{defaultMessage:"removing or deleting"})}),Object(u.jsx)(r.EuiSpacer,{size:"s"})):null,Object(u.jsx)(r.EuiText,null,Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.modalTextCanDelete",defaultMessage:"{ids} can be deleted.",values:{ids:e.join(", ")}})))}:c?{buttonText:Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.buttonTextCanUnTagConfirm",defaultMessage:"Remove from current space"}),modalText:Object(u.jsx)(n.a.Fragment,null,i?Object(u.jsx)(n.a.Fragment,null,Object(u.jsx)(d.a,{jobsCount:e.length,action:o.i18n.translate("xpack.ml.jobsList.deleteJobCheckModal.removeAction",{defaultMessage:"removing"})}),Object(u.jsx)(r.EuiSpacer,{size:"s"})):null,Object(u.jsx)(r.EuiText,null,Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.modalTextCanUnTag",defaultMessage:"{ids} cannot be deleted but can be removed from the current space.",values:{ids:e.join(", ")}})))}:m}(f,b,a,h);x(p),y(m),_(!1)})),"function"==typeof g&&g(!1)}),[h]);const A=async()=>{M(!0);const e=await F(b,f);M(!1),"function"==typeof g&&g(!0),Object.entries(e).forEach((([e,{success:t,error:a}])=>{if(!1===t){const t=o.i18n.translate("xpack.ml.deleteSpaceAwareItemCheckModal.unTagErrorTitle",{defaultMessage:"Error updating {id}",values:{id:e}});I(a,t)}else{E(!0);const t=o.i18n.translate("xpack.ml.deleteSpaceAwareItemCheckModal.unTagSuccessTitle",{defaultMessage:"Successfully updated {id}",values:{id:e}});D(t)}})),t(),"function"==typeof a&&a()};return Object(u.jsx)(r.EuiModal,{onClose:t,"data-test-subj":"mlDeleteSpaceAwareItemCheckModalOverlay"},Object(u.jsx)(n.a.Fragment,null,Object(u.jsx)(r.EuiModalHeader,null,Object(u.jsx)(r.EuiModalHeaderTitle,null,Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.modalTitle",defaultMessage:"Checking space permissions"}))),!1===S?Object(u.jsx)(n.a.Fragment,null,Object(u.jsx)(r.EuiModalBody,null,v),Object(u.jsx)(r.EuiModalFooter,null,Object(u.jsx)(r.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(u.jsx)(r.EuiFlexItem,{grow:!1},!O&&(null==T?void 0:T.canTakeAnyAction)&&(null==T?void 0:T.canRemoveFromSpace)&&(null==T?void 0:T.canDelete)&&Object(u.jsx)(r.EuiButtonEmpty,{isLoading:w,color:"primary",size:"s",onClick:A},"trained-model"===b?m:p)),Object(u.jsx)(r.EuiFlexItem,{grow:!1},Object(u.jsx)(r.EuiButton,{size:"s",onClick:null==T||!T.canTakeAnyAction||null==T||!T.canRemoveFromSpace||null!=T&&T.canDelete?async()=>{null!=T&&T.canTakeAnyAction&&null!=T&&T.canDelete?e():t()}:A,fill:!0},j))))):Object(u.jsx)(r.EuiModalBody,null,Object(u.jsx)(r.EuiText,null,Object(u.jsx)(s.FormattedMessage,{id:"xpack.ml.deleteSpaceAwareItemCheckModal.modalDesc",defaultMessage:"Checking to see whether the {jobCount, plural, one {job} other {jobs}} can be deleted.",values:{jobCount:f.length}})),Object(u.jsx)(r.EuiSpacer,{size:"s"}))))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var i=a(2),n=a(28),s=a(4);const o=({hasData:e,loading:t=!1,height:a,children:o})=>{const r=!0===t?!0===e?.3:0:1;return Object(s.jsx)(i.Fragment,null,Object(s.jsx)("div",{style:{height:"100%",opacity:r,transition:"opacity 0.2s"}},t&&!e?null:o),!0===t&&Object(s.jsx)(n.EuiFlexGroup,{justifyContent:"spaceAround",alignItems:"center",style:void 0!==a?{height:a,marginTop:`-${a}`}:{}},Object(s.jsx)(n.EuiFlexItem,{grow:!1},Object(s.jsx)(n.EuiLoadingSpinner,{size:"xl"}))))}},,,,,function(e,t,a){"use strict";a.d(t,"c",(function(){return p})),a.d(t,"a",(function(){return d})),a.d(t,"b",(function(){return u}));var i,n=a(2),s=a(71),o=(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])},i(e,t)},function(e,t){function a(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(a.prototype=t.prototype,new a)}),r="html",l="svg",c=function(e,t){var a,i,n,s={};if(e===r)n=document.createElement("div");else{if(e!==l)throw new Error('Invalid element type "'+e+'" for createPortalNode: must be "html" or "svg".');n=document.createElementNS("http://www.w3.org/2000/svg","g")}if(t&&"object"==typeof t)for(var o=0,c=Object.entries(t.attributes);o.");t.replaceChild(m.element,n),a=t,i=n}},unmount:function(e){e&&e!==i||a&&i&&(a.replaceChild(i,m.element),a=void 0,i=void 0)}};return m},d=function(e){function t(t){var a=e.call(this,t)||this;return a.addPropsChannel=function(){Object.assign(a.props.node,{setPortalProps:function(e){a.setState({nodeProps:e})}})},a.state={nodeProps:a.props.node.getInitialPortalProps()},a}return o(t,e),t.prototype.componentDidMount=function(){this.addPropsChannel()},t.prototype.componentDidUpdate=function(){this.addPropsChannel()},t.prototype.render=function(){var e=this,t=this.props,a=t.children,i=t.node;return s.createPortal(n.Children.map(a,(function(t){return n.isValidElement(t)?n.cloneElement(t,e.state.nodeProps):t})),i.element)},t}(n.PureComponent),u=function(e){function t(t){var a=e.call(this,t)||this;return a.placeholderNode=n.createRef(),a.passPropsThroughPortal(),a}return o(t,e),t.prototype.passPropsThroughPortal=function(){var e=Object.assign({},this.props,{node:void 0});this.props.node.setPortalProps(e)},t.prototype.componentDidMount=function(){var e=this.props.node;this.currentPortalNode=e;var t=this.placeholderNode.current,a=t.parentNode;e.mount(a,t),this.passPropsThroughPortal()},t.prototype.componentDidUpdate=function(){var e=this.props.node;this.currentPortalNode&&e!==this.currentPortalNode&&(this.currentPortalNode.unmount(this.placeholderNode.current),this.currentPortalNode=e);var t=this.placeholderNode.current,a=t.parentNode;e.mount(a,t),this.passPropsThroughPortal()},t.prototype.componentWillUnmount=function(){this.props.node.unmount(this.placeholderNode.current)},t.prototype.render=function(){return n.createElement("div",{ref:this.placeholderNode})},t}(n.PureComponent),p=c.bind(null,r);c.bind(null,l)},,function(e,t,a){"use strict";a.d(t,"a",(function(){return l})),a.d(t,"b",(function(){return c}));var i=a(2),n=a(228),s=a(28),o=a(214),r=a(4);const l=({children:e})=>{const{headerPortal:t,setIsHeaderMounted:a}=Object(i.useContext)(o.b);return Object(i.useEffect)((()=>(a(!0),()=>{a(!1)})),[]),Object(r.jsx)(n.a,{node:t},e)},c=()=>{const{headerPortal:e,isHeaderMounted:t}=Object(i.useContext)(o.b);return t?Object(r.jsx)(n.b,{node:e}):Object(r.jsx)(s.EuiSkeletonText,{lines:1})}},function(e,t,a){e.exports=a(56)(2943)},function(e,t,a){"use strict";(function(t){var i=a(431); /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */function n(e,t){if(e===t)return 0;for(var a=e.length,i=t.length,n=0,s=Math.min(a,i);n=0;c--)if(d[c]!==u[c])return!1;for(c=d.length-1;c>=0;c--)if(!x(e[r=d[c]],t[r],a,i))return!1;return!0}(e,t,a,i))}return a?e===t:e==t}function v(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function y(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function O(e,t,a,i){var n;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof a&&(i=a,a=null),n=function(e){var t;try{e()}catch(e){t=e}return t}(t),i=(a&&a.name?" ("+a.name+").":".")+(i?" "+i:"."),e&&!n&&h(n,a,"Missing expected exception"+i);var s="string"==typeof i,r=!e&&n&&!a;if((!e&&o.isError(n)&&s&&y(n,a)||r)&&h(n,a,"Got unwanted exception"+i),e&&n&&a&&!y(n,a)||!e&&n)throw n}p.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return f(g(e.actual),128)+" "+e.operator+" "+f(g(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||h;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var a=new Error;if(a.stack){var i=a.stack,n=b(t),s=i.indexOf("\n"+n);if(s>=0){var o=i.indexOf("\n",s+1);i=i.substring(o+1)}this.stack=i}}},o.inherits(p.AssertionError,Error),p.fail=h,p.ok=j,p.equal=function(e,t,a){e!=t&&h(e,t,a,"==",p.equal)},p.notEqual=function(e,t,a){e==t&&h(e,t,a,"!=",p.notEqual)},p.deepEqual=function(e,t,a){x(e,t,!1)||h(e,t,a,"deepEqual",p.deepEqual)},p.deepStrictEqual=function(e,t,a){x(e,t,!0)||h(e,t,a,"deepStrictEqual",p.deepStrictEqual)},p.notDeepEqual=function(e,t,a){x(e,t,!1)&&h(e,t,a,"notDeepEqual",p.notDeepEqual)},p.notDeepStrictEqual=function e(t,a,i){x(t,a,!0)&&h(t,a,i,"notDeepStrictEqual",e)},p.strictEqual=function(e,t,a){e!==t&&h(e,t,a,"===",p.strictEqual)},p.notStrictEqual=function(e,t,a){e===t&&h(e,t,a,"!==",p.notStrictEqual)},p.throws=function(e,t,a){O(!0,e,t,a)},p.doesNotThrow=function(e,t,a){O(!1,e,t,a)},p.ifError=function(e){if(e)throw e},p.strict=i((function e(t,a){t||h(t,!0,a,"==",e)}),p,{equal:p.strictEqual,deepEqual:p.deepStrictEqual,notEqual:p.notStrictEqual,notDeepEqual:p.notDeepStrictEqual}),p.strict.strict=p.strict;var E=Object.keys||function(e){var t=[];for(var a in e)r.call(e,a)&&t.push(a);return t}}).call(this,a(177))},function(e,t,a){"use strict";var i=a(134);e.exports=r;var n="\0",s="\0",o="";function r(e){this._isDirected=!i.has(e,"directed")||e.directed,this._isMultigraph=!!i.has(e,"multigraph")&&e.multigraph,this._isCompound=!!i.has(e,"compound")&&e.compound,this._label=void 0,this._defaultNodeLabelFn=i.constant(void 0),this._defaultEdgeLabelFn=i.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[s]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function l(e,t){e[t]?e[t]++:e[t]=1}function c(e,t){--e[t]||delete e[t]}function d(e,t,a,s){var r=""+t,l=""+a;if(!e&&r>l){var c=r;r=l,l=c}return r+o+l+o+(i.isUndefined(s)?n:s)}function u(e,t){return d(e,t.v,t.w,t.name)}r.prototype._nodeCount=0,r.prototype._edgeCount=0,r.prototype.isDirected=function(){return this._isDirected},r.prototype.isMultigraph=function(){return this._isMultigraph},r.prototype.isCompound=function(){return this._isCompound},r.prototype.setGraph=function(e){return this._label=e,this},r.prototype.graph=function(){return this._label},r.prototype.setDefaultNodeLabel=function(e){return i.isFunction(e)||(e=i.constant(e)),this._defaultNodeLabelFn=e,this},r.prototype.nodeCount=function(){return this._nodeCount},r.prototype.nodes=function(){return i.keys(this._nodes)},r.prototype.sources=function(){var e=this;return i.filter(this.nodes(),(function(t){return i.isEmpty(e._in[t])}))},r.prototype.sinks=function(){var e=this;return i.filter(this.nodes(),(function(t){return i.isEmpty(e._out[t])}))},r.prototype.setNodes=function(e,t){var a=arguments,n=this;return i.each(e,(function(e){a.length>1?n.setNode(e,t):n.setNode(e)})),this},r.prototype.setNode=function(e,t){return i.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=s,this._children[e]={},this._children[s][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)},r.prototype.node=function(e){return this._nodes[e]},r.prototype.hasNode=function(e){return i.has(this._nodes,e)},r.prototype.removeNode=function(e){var t=this;if(i.has(this._nodes,e)){var a=function(e){t.removeEdge(t._edgeObjs[e])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],i.each(this.children(e),(function(e){t.setParent(e)})),delete this._children[e]),i.each(i.keys(this._in[e]),a),delete this._in[e],delete this._preds[e],i.each(i.keys(this._out[e]),a),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this},r.prototype.setParent=function(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(i.isUndefined(t))t=s;else{for(var a=t+="";!i.isUndefined(a);a=this.parent(a))if(a===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this},r.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]},r.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==s)return t}},r.prototype.children=function(e){if(i.isUndefined(e)&&(e=s),this._isCompound){var t=this._children[e];if(t)return i.keys(t)}else{if(e===s)return this.nodes();if(this.hasNode(e))return[]}},r.prototype.predecessors=function(e){var t=this._preds[e];if(t)return i.keys(t)},r.prototype.successors=function(e){var t=this._sucs[e];if(t)return i.keys(t)},r.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return i.union(t,this.successors(e))},r.prototype.isLeaf=function(e){return 0===(this.isDirected()?this.successors(e):this.neighbors(e)).length},r.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var a=this;i.each(this._nodes,(function(a,i){e(i)&&t.setNode(i,a)})),i.each(this._edgeObjs,(function(e){t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,a.edge(e))}));var n={};function s(e){var i=a.parent(e);return void 0===i||t.hasNode(i)?(n[e]=i,i):i in n?n[i]:s(i)}return this._isCompound&&i.each(t.nodes(),(function(e){t.setParent(e,s(e))})),t},r.prototype.setDefaultEdgeLabel=function(e){return i.isFunction(e)||(e=i.constant(e)),this._defaultEdgeLabelFn=e,this},r.prototype.edgeCount=function(){return this._edgeCount},r.prototype.edges=function(){return i.values(this._edgeObjs)},r.prototype.setPath=function(e,t){var a=this,n=arguments;return i.reduce(e,(function(e,i){return n.length>1?a.setEdge(e,i,t):a.setEdge(e,i),i})),this},r.prototype.setEdge=function(){var e,t,a,n,s=!1,o=arguments[0];"object"==typeof o&&null!==o&&"v"in o?(e=o.v,t=o.w,a=o.name,2===arguments.length&&(n=arguments[1],s=!0)):(e=o,t=arguments[1],a=arguments[3],arguments.length>2&&(n=arguments[2],s=!0)),e=""+e,t=""+t,i.isUndefined(a)||(a=""+a);var r=d(this._isDirected,e,t,a);if(i.has(this._edgeLabels,r))return s&&(this._edgeLabels[r]=n),this;if(!i.isUndefined(a)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[r]=s?n:this._defaultEdgeLabelFn(e,t,a);var c=function(e,t,a,i){var n=""+t,s=""+a;if(!e&&n>s){var o=n;n=s,s=o}var r={v:n,w:s};return i&&(r.name=i),r}(this._isDirected,e,t,a);return e=c.v,t=c.w,Object.freeze(c),this._edgeObjs[r]=c,l(this._preds[t],e),l(this._sucs[e],t),this._in[t][r]=c,this._out[e][r]=c,this._edgeCount++,this},r.prototype.edge=function(e,t,a){var i=1===arguments.length?u(this._isDirected,arguments[0]):d(this._isDirected,e,t,a);return this._edgeLabels[i]},r.prototype.hasEdge=function(e,t,a){var n=1===arguments.length?u(this._isDirected,arguments[0]):d(this._isDirected,e,t,a);return i.has(this._edgeLabels,n)},r.prototype.removeEdge=function(e,t,a){var i=1===arguments.length?u(this._isDirected,arguments[0]):d(this._isDirected,e,t,a),n=this._edgeObjs[i];return n&&(e=n.v,t=n.w,delete this._edgeLabels[i],delete this._edgeObjs[i],c(this._preds[t],e),c(this._sucs[e],t),delete this._in[t][i],delete this._out[e][i],this._edgeCount--),this},r.prototype.inEdges=function(e,t){var a=this._in[e];if(a){var n=i.values(a);return t?i.filter(n,(function(e){return e.v===t})):n}},r.prototype.outEdges=function(e,t){var a=this._out[e];if(a){var n=i.values(a);return t?i.filter(n,(function(e){return e.w===t})):n}},r.prototype.nodeEdges=function(e,t){var a=this.inEdges(e,t);if(a)return a.concat(this.outEdges(e,t))}},function(e,t,a){var i=a(235),n=a(182);e.exports=function(e,t){return e&&i(e,t,n)}},function(e,t,a){var i=a(456)();e.exports=i},function(e,t,a){e.exports=a(56)(1234)},function(e,t,a){e.exports=a(56)(1608)},function(e,t,a){e.exports=a(56)(1652)},function(e,t,a){e.exports=a(56)(1216)},function(e,t,a){e.exports=a(56)(1610)},function(e,t,a){e.exports=a(56)(938)},function(e,t,a){e.exports=a(56)(1653)},function(e,t,a){e.exports=a(56)(3685)},function(e,t,a){var i=a(332);e.exports=function(e,t,a){for(var n=-1,s=e.length;++n{const[u,p]=Object(i.useState)(!0);return Object(s.jsx)(n.b,{selectedIds:e,withTimeRangeSelector:t,dateFormatTz:a,singleSelection:o,timeseriesOnly:r,onFlyoutClose:l,onSelectionConfirmed:c,onTimeRangeConfigChange:p,applyTimeRangeConfig:u,maps:d})}},,,function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(2);t.default=function(e,t){void 0===t&&(t=0);var a=i.useRef(!1),n=i.useRef(),s=i.useRef(e),o=i.useCallback((function(){return a.current}),[]),r=i.useCallback((function(){a.current=!1,n.current&&clearTimeout(n.current),n.current=setTimeout((function(){a.current=!0,s.current()}),t)}),[t]),l=i.useCallback((function(){a.current=null,n.current&&clearTimeout(n.current)}),[]);return i.useEffect((function(){s.current=e}),[e]),i.useEffect((function(){return r(),l}),[t]),[o,l,r]}},,,,,,,,,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return Et})),a.d(t,"b",(function(){return St})),a.d(t,"c",(function(){return Mt}));var i=a(2),n=a.n(i),s=a(28),o=a(7),r=a(6),l=a(15),c=a(43),d=a(20),u=a(40),p=a(109),m=a(128),b=a(22),f=a(152),g=a(195),h=a(99),j=a(45),x=a(135),v=a(4);const y=({model:e,onConfirm:t,onCancel:a})=>{const[o,c]=Object(i.useState)({}),u=Object(i.useMemo)((()=>e.deployment_ids.map((e=>({id:e,label:e})))),[e.deployment_ids]),p=Object(i.useCallback)((e=>{c((t=>({...t,[e]:!t[e]})))}),[]),m=Object(i.useMemo)((()=>e.deployment_ids.length>1?Object.keys(o).filter((e=>o[e])):e.deployment_ids),[e.deployment_ids,o]),f=Object(i.useMemo)((()=>Object(d.a)(e.pipelines)?Object.entries(e.pipelines).reduce(((e,[t,a])=>{var i;return(null!==(i=null==a?void 0:a.processors)&&void 0!==i?i:[]).map((e=>{var t;return null==e||null===(t=e.inference)||void 0===t?void 0:t.model_id})).filter(b.a).forEach((a=>{e[a]?e[a].push(t):e[a]=[t]})),e}),{}):{}),[e.pipelines]),g=Object(i.useMemo)((()=>1===e.deployment_ids.length&&Object(d.a)(e.pipelines)?Object.keys(e.pipelines):[...new Set(Object.entries(f).filter((([e])=>m.includes(e))).flatMap((([,e])=>e)))].sort()),[e,f,m]);return Object(v.jsx)(s.EuiConfirmModal,{title:r.i18n.translate("xpack.ml.trainedModels.modelsList.forceStopDialog.title",{defaultMessage:"Stop {deploymentCount, plural, one {deployment} other {deployments}} of model {modelId}?",values:{modelId:e.model_id,deploymentCount:e.deployment_ids.length}}),onCancel:a,onConfirm:t.bind(null,m),cancelButtonText:r.i18n.translate("xpack.ml.trainedModels.modelsList.forceStopDialog.cancelText",{defaultMessage:"Cancel"}),confirmButtonText:r.i18n.translate("xpack.ml.trainedModels.modelsList.forceStopDialog.confirmText",{defaultMessage:"Stop"}),buttonColor:"danger",confirmButtonDisabled:e.deployment_ids.length>1&&0===m.length},e.deployment_ids.length>1?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiCheckboxGroup,{legend:{display:"visible",children:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.forceStopDialog.selectDeploymentsLegend",defaultMessage:"Select deployments to stop"})},options:u,idToSelectedMap:o,onChange:p}),Object(v.jsx)(s.EuiSpacer,{size:"m"})):null,g.length>0?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiCallOut,{title:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.forceStopDialog.pipelinesWarning",defaultMessage:"You won't be able to use these ingest pipelines until you restart the model:"}),color:"warning",iconType:"warning"},Object(v.jsx)("div",null,Object(v.jsx)("ul",null,g.map((e=>Object(v.jsx)("li",{key:e},e))))))):null)};var O=a(101),E=a(170),w=a(17),M=a(31);const S=({config:e,onConfigChange:t,errors:a,isUpdate:n,deploymentsParams:o})=>{var c;const d=e.numOfAllocations,u=e.threadsPerAllocations,p=Object(i.useMemo)((()=>e.deploymentId),[]),m=Object(i.useMemo)((()=>new Array(5).fill(null).map(((e,t)=>{const a=Math.pow(2,t),i=a.toString();return{id:i,label:i,value:a}}))),[]),b="low"===e.priority;return Object(v.jsx)(s.EuiForm,{component:"form",id:"startDeploymentForm"},Object(v.jsx)(s.EuiDescribedFormGroup,{titleSize:"xxs",title:Object(v.jsx)("h3",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.deploymentIdLabel",defaultMessage:"Deployment ID"})),description:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.deploymentIdHelp",defaultMessage:"Specify unique identifier for the model deployment."})},Object(v.jsx)(s.EuiFormRow,{label:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.deploymentIdLabel",defaultMessage:"Deployment ID"}),hasChildLabel:!1,isInvalid:!!a.deploymentId,error:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.deploymentIdError",defaultMessage:"Deployment with this ID already exists."})},n?Object(v.jsx)(s.EuiSelect,{fullWidth:!0,options:Object.keys(o).map((e=>({text:e,value:e}))),value:e.deploymentId,onChange:a=>{const i=a.target.value;t({...e,deploymentId:i,numOfAllocations:o[i].numOfAllocations})},"data-test-subj":"mlModelsStartDeploymentModalDeploymentSelectId"}):Object(v.jsx)(s.EuiFieldText,{placeholder:p,isInvalid:!!a.deploymentId,value:null!==(c=e.deploymentId)&&void 0!==c?c:"",onChange:a=>{t({...e,deploymentId:a.target.value})},"data-test-subj":"mlModelsStartDeploymentModalDeploymentId"}))),void 0!==e.priority?Object(v.jsx)(s.EuiDescribedFormGroup,{titleSize:"xxs",title:Object(v.jsx)("h3",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.priorityLabel",defaultMessage:"Priority"})),description:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.priorityHelp",defaultMessage:"Select low priority for demonstrations where each model will be very lightly used."})},Object(v.jsx)(s.EuiFormRow,{label:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.priorityLabel",defaultMessage:"Priority"}),hasChildLabel:!1},Object(v.jsx)(s.EuiButtonGroup,{legend:r.i18n.translate("xpack.ml.trainedModels.modelsList.startDeployment.priorityLegend",{defaultMessage:"Priority selector"}),name:"priority",isFullWidth:!0,idSelected:e.priority,onChange:a=>{t({...e,priority:a})},options:[{id:"low",value:"low",label:r.i18n.translate("xpack.ml.trainedModels.modelsList.startDeployment.lowPriorityLabel",{defaultMessage:"low"})},{id:"normal",value:"normal",label:r.i18n.translate("xpack.ml.trainedModels.modelsList.startDeployment.normalPriorityLabel",{defaultMessage:"normal"})}],"data-test-subj":"mlModelsStartDeploymentModalPriority"}))):null,Object(v.jsx)(s.EuiDescribedFormGroup,{titleSize:"xxs",title:Object(v.jsx)("h3",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.numbersOfAllocationsLabel",defaultMessage:"Number of allocations"})),description:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.numbersOfAllocationsHelp",defaultMessage:"Increase to improve document ingest throughput."})},Object(v.jsx)(s.EuiFormRow,{label:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.numbersOfAllocationsLabel",defaultMessage:"Number of allocations"}),hasChildLabel:!1,isDisabled:b},Object(v.jsx)(s.EuiFieldNumber,{disabled:b,fullWidth:!0,min:1,step:1,name:"numOfAllocations",value:b?1:d,onChange:a=>{t({...e,numOfAllocations:Number(a.target.value)})},"data-test-subj":"mlModelsStartDeploymentModalNumOfAllocations"}))),void 0!==u?Object(v.jsx)(s.EuiDescribedFormGroup,{titleSize:"xxs",title:Object(v.jsx)("h3",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.threadsPerAllocationLabel",defaultMessage:"Threads per allocation"})),description:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.threadsPerAllocationHelp",defaultMessage:"Increase to improve inference latency."})},Object(v.jsx)(s.EuiFormRow,{label:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.threadsPerAllocationLabel",defaultMessage:"Threads per allocation"}),hasChildLabel:!1,isDisabled:b},Object(v.jsx)(s.EuiButtonGroup,{isDisabled:b,legend:r.i18n.translate("xpack.ml.trainedModels.modelsList.startDeployment.threadsPerAllocationLegend",{defaultMessage:"Threads per allocation selector"}),name:"threadsPerAllocation",isFullWidth:!0,idSelected:b?"1":m.find((e=>e.value===u)).id,onChange:a=>{const i=m.find((e=>e.id===a)).value;t({...e,threadsPerAllocations:i})},options:m,"data-test-subj":"mlModelsStartDeploymentModalThreadsPerAllocation"}))):null)};var _={name:"zdrr8d",styles:"align-self:center;margin-right:auto"};const T=({model:e,onConfigChange:t,onClose:a,startModelDeploymentDocUrl:n,initialParams:o,modelAndDeploymentIds:r})=>{var c,d;const u=!!o,[p,m]=Object(i.useState)(null!=o?o:{numOfAllocations:1,threadsPerAllocations:1,priority:Object(w.f)()?"low":"normal",deploymentId:e.model_id}),b=Object(i.useMemo)((()=>{if(u)return()=>null;const t=[...null!=r?r:[]];return t.splice(null==t?void 0:t.indexOf(e.model_id),1),Object(M.b)([...e.deployment_ids,...t,...e.deployment_ids.includes(e.model_id)?[""]:[]])}),[r,e.deployment_ids,e.model_id,u]),f=Object(M.a)(Object(M.f)(),Object(E.c)({min:1,integerOnly:!0}))(p.numOfAllocations),g=b(null!==(c=p.deploymentId)&&void 0!==c?c:""),h={...f?{numOfAllocations:f}:{},...g?{deploymentId:g}:{}};return Object(v.jsx)(s.EuiModal,{onClose:a,initialFocus:"[name=numOfAllocations]",maxWidth:!1,"data-test-subj":"mlModelsStartDeploymentModal"},Object(v.jsx)(s.EuiModalHeader,null,Object(v.jsx)(s.EuiModalHeaderTitle,{size:"s"},u?Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.updateDeployment.modalTitle",defaultMessage:"Update {modelId} deployment",values:{modelId:e.model_id}}):Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.modalTitle",defaultMessage:"Start {modelId} deployment",values:{modelId:e.model_id}}))),Object(v.jsx)(s.EuiModalBody,null,Object(v.jsx)(s.EuiCallOut,{size:"s",title:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.maxNumOfProcessorsWarning",defaultMessage:"The product of the number of allocations and threads per allocation should be less than the total number of processors on your ML nodes."}),iconType:"iInCircle",color:"primary"}),Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)(S,{config:p,onConfigChange:m,errors:h,isUpdate:u,deploymentsParams:null===(d=e.stats)||void 0===d?void 0:d.deployment_stats.reduce(((e,t)=>(e[t.deployment_id]={numOfAllocations:t.number_of_allocations},e)),{})}),Object(v.jsx)(s.EuiSpacer,{size:"m"})),Object(v.jsx)(s.EuiModalFooter,null,Object(v.jsx)(s.EuiLink,{href:n,external:!0,target:"_blank",css:_},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.docLinkTitle",defaultMessage:"Learn more"})),Object(v.jsx)(s.EuiButtonEmpty,{onClick:a},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.cancelButton",defaultMessage:"Cancel"})),Object(v.jsx)(s.EuiButton,{type:"submit",form:"startDeploymentForm",onClick:t.bind(null,p),fill:!0,disabled:Object.keys(h).length>0,"data-test-subj":"mlModelsStartDeploymentModalStartButton"},u?Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.updateButton",defaultMessage:"Update"}):Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.startDeployment.startButton",defaultMessage:"Start"}))))};var C=a(9),k=a(1),F=a(5),I=a.n(F),D=a(10),A=a(11);const L=({taskLabel:e,info:t})=>0===t.length?null:Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiCallOut,{title:e},t.map((e=>Object(v.jsx)(s.EuiText,{size:"s"},e)))),Object(v.jsx)(s.EuiSpacer,null));let R,N;!function(e){e[e.STOPPED=0]="STOPPED",e[e.RUNNING=1]="RUNNING",e[e.FINISHED=2]="FINISHED",e[e.FINISHED_WITH_ERRORS=3]="FINISHED_WITH_ERRORS"}(R||(R={})),function(e){e[e.TEXT=0]="TEXT",e[e.INDEX=1]="INDEX"}(N||(N={}));class inference_base_InferenceBase{constructor(e,t,a,i){var n,s;I()(this,"modelInputField",void 0),I()(this,"_deploymentId",null),I()(this,"inputText$",new D.BehaviorSubject([])),I()(this,"inputField$",new D.BehaviorSubject("")),I()(this,"inferenceResult$",new D.BehaviorSubject(null)),I()(this,"inferenceError$",new D.BehaviorSubject(null)),I()(this,"runningState$",new D.BehaviorSubject(R.STOPPED)),I()(this,"isValid$",new D.BehaviorSubject(!1)),I()(this,"pipeline$",new D.BehaviorSubject({})),I()(this,"info",[]),I()(this,"subscriptions$",new D.Subscription),this.trainedModelsApi=e,this.model=t,this.inputType=a,this.deploymentId=i,this.modelInputField=null!==(n=null===(s=t.input)||void 0===s?void 0:s.field_names[0])&&void 0!==n?n:"text_field",this.inputField$.next(this.modelInputField)}destroy(){this.subscriptions$.unsubscribe()}initialize(e,t){this.initializeValidators(e),this.initializePipeline(t)}initializeValidators(e){const t=[this.inputText$.pipe(Object(A.map)((e=>e.some((e=>""!==e))))),...e||[]];this.subscriptions$.add(Object(D.combineLatest)(t).pipe(Object(A.map)((e=>e.every((e=>!!e))))).subscribe(this.isValid$))}initializePipeline(e){const t=[this.inputField$.asObservable(),...e||[]];this.subscriptions$.add(Object(D.combineLatest)(t).subscribe((()=>{this.pipeline$.next(this.generatePipeline())})))}setStopped(){this.inferenceError$.next(null),this.runningState$.next(R.STOPPED)}setRunning(){this.inferenceError$.next(null),this.runningState$.next(R.RUNNING)}setFinished(){this.runningState$.next(R.FINISHED)}setFinishedWithErrors(e){this.inferenceError$.next(e),this.runningState$.next(R.FINISHED_WITH_ERRORS)}getInfoComponent(){return e=this.inferenceTypeLabel,t=this.info,Object(v.jsx)(L,{taskLabel:e,info:t});var e,t}getInputType(){return this.inputType}reset(){this.inputText$.next([]),this.inferenceResult$.next(null),this.inferenceError$.next(null),this.runningState$.next(R.STOPPED)}setInputField(e){this.inputField$.next(void 0===e?this.modelInputField:e)}getInputField(){return this.inputField$.getValue()}getInputField$(){return this.inputField$.asObservable()}setInputText(e){this.inputText$.next(e)}getInputText$(){return this.inputText$.asObservable()}getInputText(){return this.inputText$.getValue()}getInferenceResult$(){return this.inferenceResult$.asObservable()}getInferenceResult(){return this.inferenceResult$.getValue()}getInferenceError$(){return this.inferenceError$.asObservable()}getInferenceError(){return this.inferenceError$.getValue()}getRunningState$(){return this.runningState$.asObservable()}getRunningState(){return this.runningState$.getValue()}getIsValid$(){return this.isValid$.asObservable()}getIsValid(){return this.isValid$.getValue()}async infer(){return this.inputType===N.TEXT?this.inferText():this.inferIndex()}generatePipeline(){return{processors:this.getProcessors()}}getPipeline$(){return this.pipeline$.asObservable()}getPipeline(){return this.pipeline$.getValue()}getBasicProcessors(e){var t;return[{inference:{model_id:null!==(t=this.deploymentId)&&void 0!==t?t:this.model.model_id,target_field:this.inferenceType,field_map:{[this.inputField$.getValue()]:this.modelInputField},...e&&Object.keys(e).length?{inference_config:this.getInferenceConfig(e)}:{}}}]}getInferenceConfig(e){return{[this.inferenceType]:{...e}}}async runInfer(e,t){try{this.setRunning();const a=this.inputText$.getValue()[0],i=e(),n=t(await this.trainedModelsApi.inferTrainedModel(this.model.model_id,this.deploymentId,{docs:this.getInferDocs(),...i?{inference_config:i}:{}},"30s"),a);return this.inferenceResult$.next([n]),this.setFinished(),[n]}catch(e){throw this.setFinishedWithErrors(e),e}}async runPipelineSimulate(e){try{this.setRunning();const{docs:t}=await this.trainedModelsApi.trainedModelPipelineSimulate(this.getPipeline(),this.getPipelineDocs()),a=t.map((t=>e(this.getDocFromResponse(t))));return this.inferenceResult$.next(a),this.setFinished(),a}catch(e){throw this.setFinishedWithErrors(e),e}}getInferDocs(){return[{[this.inputField$.getValue()]:this.inputText$.getValue()[0]}]}getPipelineDocs(){return this.inputText$.getValue().map((e=>({_source:{[this.inputField$.getValue()]:e}})))}getDefaultInferenceConfig(){return this.model.inference_config[this.inferenceType]}getNumTopClassesConfig(e=5){var t;const a=this.getDefaultInferenceConfig();return a&&"num_top_classes"in a&&null!==(t=null==a?void 0:a.num_top_classes)&&void 0!==t&&t?{}:{num_top_classes:e}}getDocFromResponse({doc:e,error:t}){if(void 0===e){if(t)throw this.setFinishedWithErrors(t),Error(t.reason);throw Error(r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.pipelineSimulate.unknownError",{defaultMessage:"Error simulating ingest pipeline"}))}return e}}var P=a(29),z=a.n(P);const B=({placeholder:e,inferrer:t})=>{const[a,n]=Object(i.useState)("");Object(i.useEffect)((()=>{t.setInputText([a])}),[a,t]);const o=z()(t.getRunningState$(),t.getRunningState());return Object(v.jsx)(s.EuiFormRow,{label:r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.generalTextInput.inputTitle",{defaultMessage:"Input text"}),fullWidth:!0},Object(v.jsx)(s.EuiTextArea,{placeholder:null!=e?e:r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.generalTextInput.inputText",{defaultMessage:"Input text"}),value:a,disabled:o===R.RUNNING,fullWidth:!0,onChange:e=>{n(e.target.value)},"data-test-subj":"mlTestModelInputText"}))},V=(e,t)=>Object(v.jsx)(B,{placeholder:t,inferrer:e}),J="2px",U={PER:{label:"Person",icon:"user",color:"euiColorVis5_behindText",borderColor:"euiColorVis5"},LOC:{label:"Location",icon:"visMapCoordinate",color:"euiColorVis1_behindText",borderColor:"euiColorVis1"},ORG:{label:"Organization",icon:"home",color:"euiColorVis0_behindText",borderColor:"euiColorVis0"},MISC:{label:"Miscellaneous",icon:"questionInCircle",color:"euiColorVis7_behindText",borderColor:"euiColorVis7"}},G={label:"",icon:"questionInCircle",color:"euiColorVis5_behindText",borderColor:"euiColorVis5"},q=({inferrer:e})=>{const t=z()(e.getInferenceResult$(),e.getInferenceResult());return t?e.getInputType()===N.INDEX?Object(v.jsx)(n.a.Fragment,null,t.map((e=>Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)($,{result:e}),Object(v.jsx)(s.EuiHorizontalRule,null))))):Object(v.jsx)($,{result:t[0]}):null},$=({result:e})=>{const{euiTheme:t}=Object(C.a)(),a=[];return e.response.forEach((({value:e,entity:i})=>{if(null===i){const t=e.split(/(\n)/).map((e=>"\n"===e?Object(v.jsx)("br",null):Object(v.jsx)("span",null,e)));a.push(...t)}else a.push(Object(v.jsx)(s.EuiToolTip,{position:"top",content:Object(v.jsx)("div",null,Object(v.jsx)("div",null,Object(v.jsx)(s.EuiIcon,{size:"m",type:H(i.class_name),style:{marginRight:J,verticalAlign:"text-top"}}),e),Object(v.jsx)(s.EuiHorizontalRule,{margin:"none"}),Object(v.jsx)("div",{style:{fontSize:t.euiFontSizeXS,marginTop:J}},Object(v.jsx)("div",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.testModelsFlyout.ner.output.typeTitle",defaultMessage:"Type"}),": ",Y(i.class_name)),Object(v.jsx)("div",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.testModelsFlyout.ner.output.probabilityTitle",defaultMessage:"Probability"}),": ",Number(i.class_probability).toPrecision(3))))},Object(v.jsx)(W,{entity:i},e)))})),Object(v.jsx)("div",{style:{lineHeight:"24px"}},a)},W=({entity:e,children:t})=>{const{euiTheme:a}=Object(C.a)();return Object(v.jsx)(s.EuiBadge,{color:X(a,e.class_name),style:{marginRight:J,marginTop:`-${J}`,border:`1px solid ${X(a,e.class_name,!0)}`,fontSize:a.euiFontSizeXS,padding:"0px 6px",pointerEvents:"none"}},Object(v.jsx)(s.EuiFlexGroup,{gutterSize:"none"},Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(s.EuiIcon,{size:"s",type:H(e.class_name),style:{marginRight:J,marginTop:J}})),Object(v.jsx)(s.EuiFlexItem,null,t)))};function H(e){var t;const a=U[e];return null!==(t=null==a?void 0:a.icon)&&void 0!==t?t:G.icon}function Y(e){var t;const a=U[e];return null!==(t=null==a?void 0:a.label)&&void 0!==t?t:e}function X(e,t,a=!1){var i;const n=U[t];let s=null!==(i=null==n?void 0:n.color)&&void 0!==i?i:G.color;var o;return a&&(s=null!==(o=null==n?void 0:n.borderColor)&&void 0!==o?o:G.borderColor),e[s]}class ner_inference_NerInference extends inference_base_InferenceBase{constructor(e,t,a,i){super(e,t,a,i),I()(this,"inferenceType",m.d.NER),I()(this,"inferenceTypeLabel",r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.ner.label",{defaultMessage:"Named entity recognition"})),I()(this,"info",[r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.ner.info1",{defaultMessage:"Test how well the model identifies named entities in your input text."})]),this.initialize()}async inferText(){return this.runInfer((()=>{}),((e,t)=>({response:Q(e),rawResponse:e,inputText:t})))}async inferIndex(){return this.runPipelineSimulate((e=>({response:Q({inference_results:[e._source[this.inferenceType]]}),rawResponse:e._source[this.inferenceType],inputText:e._source[this.getInputField()]})))}getProcessors(){return this.getBasicProcessors()}getInputComponent(){if(this.inputType===N.TEXT){const e=r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.ner.inputText",{defaultMessage:"Enter a phrase to test"});return V(this,e)}return null}getOutputComponent(){return this,Object(v.jsx)(q,{inferrer:this})}}function Q(e){const[{predicted_value:t,entities:a}]=e.inference_results,i=/(\[.*?\])\((.*?)&(.*?)\)/;if(void 0===t||void 0===a)return[];const n=t.split(/(\[.*?\]\(.*?&.*?\))/);let s=0;return n.map((e=>{const t=e.match(i);if(t){const e=t[3],i=a[s];return e!==i.entity&&e.replaceAll("+"," ")!==i.entity&&console.error("mismatch entity",i),s++,{value:i.entity,entity:i}}return{value:e,entity:null}}))}const K=({inferrer:e})=>{const t=z()(e.getQuestionText$(),e.getQuestionText()),a=z()(e.getRunningState$(),e.getRunningState());return Object(v.jsx)(s.EuiFormRow,{fullWidth:!0,label:r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.questionAnswering.questionInput",{defaultMessage:"Question"})},Object(v.jsx)(s.EuiFieldText,{value:t,disabled:a===R.RUNNING,fullWidth:!0,onChange:t=>{e.setQuestionText(t.target.value)}}))},Z=200,ee=({inferrer:e})=>{const t=z()(e.getInferenceResult$(),e.getInferenceResult());return t?Object(v.jsx)(n.a.Fragment,null,t.map((({response:e,inputText:t})=>Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(n.a.Fragment,null,function(e,t){const a=t.slice(0,e.startOffset),i=t.slice(e.endOffset,t.length),n=a.length>Z?`...${a.slice(a.length-Z,a.length)}`:a,s=i.length>Z?`${i.slice(0,Z)}...`:i;return Object(v.jsx)("div",{style:{lineHeight:"24px"}},n,Object(v.jsx)(te,null,e.value),s)}(e[0],t)),Object(v.jsx)(s.EuiHorizontalRule,null))))):null},te=({children:e})=>{const{euiTheme:t}=Object(C.a)();return Object(v.jsx)(s.EuiBadge,{color:t.euiColorVis5_behindText,style:{marginRight:"2px",marginTop:"-2px",border:`1px solid ${t.euiColorVis5}`,fontSize:t.euiFontSizeXS,padding:"0px 6px",pointerEvents:"none"}},e)};class question_answering_inference_QuestionAnsweringInference extends inference_base_InferenceBase{constructor(e,t,a,i){super(e,t,a,i),I()(this,"inferenceType",m.d.QUESTION_ANSWERING),I()(this,"inferenceTypeLabel",r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.questionAnswer.label",{defaultMessage:"Question answering"})),I()(this,"info",[r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.questionAnswer.info1",{defaultMessage:"Provide a question and test how well the model extracts an answer from your input text."})]),I()(this,"questionText$",new D.BehaviorSubject("")),this.initialize([this.questionText$.pipe(Object(A.map)((e=>""!==e)))],[this.questionText$])}async inferText(){return this.runInfer((()=>{const e=this.questionText$.value;return this.getInferenceConfig({...this.getNumTopClassesConfig(),question:e})}),((e,t)=>ae(e,t)))}async inferIndex(){return this.runPipelineSimulate((e=>ae({inference_results:[e._source[this.inferenceType]]},e._source[this.getInputField()])))}getProcessors(){const e=this.questionText$.value;return this.getBasicProcessors({...this.getNumTopClassesConfig(),question:e})}setQuestionText(e){this.questionText$.next(e)}getQuestionText$(){return this.questionText$.asObservable()}getQuestionText(){return this.questionText$.getValue()}getInputComponent(){return e=this,t=r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.questionAnswer.inputText",{defaultMessage:"Enter unstructured text phrases related to the answers you're seeking"}),Object(v.jsx)(n.a.Fragment,null,e.getInputType()===N.TEXT?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(B,{placeholder:t,inferrer:e}),Object(v.jsx)(s.EuiSpacer,null)):null,Object(v.jsx)(K,{inferrer:e}));var e,t}getOutputComponent(){return this,Object(v.jsx)(ee,{inferrer:this})}}function ae(e,t){const{inference_results:[a]}=e;let i=[{value:a.predicted_value,predictionProbability:a.prediction_probability,startOffset:a.start_offset,endOffset:a.end_offset}];return void 0!==a.top_classes&&(i=a.top_classes.map((e=>({value:e.answer,predictionProbability:e.score,startOffset:e.start_offset,endOffset:e.end_offset})))),{response:i,rawResponse:e,inputText:t}}const ie=3;function ne(e,t,a){const{inference_results:[i]}=e;return{response:se(i,t),rawResponse:e,inputText:a}}function se(e,t){var a,i,n;const s=null!==(a=null===(i=t.inference_config)||void 0===i||null===(n=i.text_classification)||void 0===n?void 0:n.classification_labels)&&void 0!==a?a:[];let o=[{value:e.predicted_value,predictionProbability:e.prediction_probability}];return void 0!==e.top_classes?o=e.top_classes.map((e=>({value:e.class_name,predictionProbability:e.class_probability}))):2===s.length&&(o=s.map((t=>({value:t,predictionProbability:e.predicted_value===t?e.prediction_probability:1-e.prediction_probability})))),o.map((({value:e,predictionProbability:t})=>({value:e,predictionProbability:Number(t.toPrecision(ie))}))).sort(((e,t)=>e.predictionProbability-t.predictionProbability)).reverse()}const oe=e=>Object(v.jsx)(re,{inferrer:e}),re=({inferrer:e})=>{const t=z()(e.getInferenceResult$(),e.getInferenceResult());return t?Object(v.jsx)(n.a.Fragment,null,t.map((({response:e,inputText:t})=>Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(le,{response:e,inputText:t}),Object(v.jsx)(s.EuiHorizontalRule,null))))):null},le=({response:e,inputText:t})=>Object(v.jsx)(n.a.Fragment,null,void 0!==t?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiTitle,{size:"xxs"},Object(v.jsx)("span",null,t)),Object(v.jsx)(s.EuiSpacer,null)):null,e.map((({value:e,predictionProbability:t})=>Object(v.jsx)(i.Fragment,{key:e},Object(v.jsx)(s.EuiProgress,{value:100*t,max:100,size:"m"}),Object(v.jsx)(s.EuiSpacer,{size:"s"}),Object(v.jsx)(s.EuiFlexGroup,null,Object(v.jsx)(s.EuiFlexItem,{"data-test-subj":"mlTestModelLangIdentInputValue"},e),Object(v.jsx)(s.EuiFlexItem,{"data-test-subj":"mlTestModelLangIdentInputProbability",grow:!1},t)),Object(v.jsx)(s.EuiSpacer,null)))));class text_classification_inference_TextClassificationInference extends inference_base_InferenceBase{constructor(e,t,a,i){super(e,t,a,i),I()(this,"inferenceType",m.d.TEXT_CLASSIFICATION),I()(this,"inferenceTypeLabel",r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textClassification.label",{defaultMessage:"Text classification"})),I()(this,"info",[r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textClassification.info1",{defaultMessage:"Test how well the model classifies your input text."})]),this.initialize()}async inferText(){return this.runInfer((()=>this.getInferenceConfig(this.getNumTopClassesConfig())),((e,t)=>ne(e,this.model,t)))}async inferIndex(){return this.runPipelineSimulate((e=>({response:se(e._source[this.inferenceType],this.model),rawResponse:e._source[this.inferenceType],inputText:e._source[this.getInputField()]})))}getProcessors(){return this.getBasicProcessors(this.getNumTopClassesConfig())}getInputComponent(){if(this.inputType===N.TEXT){const e=r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textClassification.inputText",{defaultMessage:"Enter a phrase to test"});return V(this,e)}return null}getOutputComponent(){return oe(this)}}const ce=({inferrer:e})=>{const t=z()(e.getRunningState$(),e.getRunningState()),a=z()(e.getLabelsText$(),e.getLabelsText()),i=z()(e.getMultiLabel$(),e.getMultiLabel());return Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiFormRow,{fullWidth:!0,label:r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textClassification.classNamesInput",{defaultMessage:"Class labels"}),helpText:r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textClassification.classNamesHelpText",{defaultMessage:"Separate the labels with commas"})},Object(v.jsx)(s.EuiFieldText,{value:a,disabled:t===R.RUNNING,fullWidth:!0,onChange:t=>e.setLabelsText(t.target.value)})),Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)(s.EuiFormRow,{fullWidth:!0,helpText:r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textClassification.multiLabelHelpText",{defaultMessage:"Enable the input text to match more than one label."})},Object(v.jsx)(s.EuiSwitch,{label:r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textClassification.multiLabelSwitch",{defaultMessage:"Multi label"}),checked:i,onChange:t=>e.setMultiLabel(t.target.checked)})))};class zero_shot_classification_inference_ZeroShotClassificationInference extends inference_base_InferenceBase{constructor(e,t,a,i){super(e,t,a,i),I()(this,"inferenceType",m.d.ZERO_SHOT_CLASSIFICATION),I()(this,"inferenceTypeLabel",r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.zeroShotClassification.label",{defaultMessage:"Zero shot classification"})),I()(this,"info",[r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.zeroShotClassification.info1",{defaultMessage:"Provide a set of labels and test how well the model classifies your input text."})]),I()(this,"labelsText$",new D.BehaviorSubject("")),I()(this,"multiLabel$",new D.BehaviorSubject(!1)),this.initialize([this.labelsText$.pipe(Object(A.map)((e=>""!==e)))],[this.labelsText$,this.multiLabel$])}async inferText(){return this.runInfer((()=>{const e=this.labelsText$.getValue(),t=this.multiLabel$.getValue(),a=null==e?void 0:e.split(",").map((e=>e.trim()));return this.getInferenceConfig({labels:a,multi_label:t})}),((e,t)=>ne(e,this.model,t)))}async inferIndex(){return this.runPipelineSimulate((e=>({response:se(e._source[this.inferenceType],this.model),rawResponse:e._source[this.inferenceType],inputText:e._source[this.getInputField()]})))}getInputLabels(){const e=this.labelsText$.getValue();return null==e?void 0:e.split(",").map((e=>e.trim()))}getProcessors(){const e=this.getInputLabels(),t=this.multiLabel$.getValue();return this.getBasicProcessors({labels:e,multi_label:t})}setLabelsText(e){this.labelsText$.next(e)}getLabelsText$(){return this.labelsText$.asObservable()}getLabelsText(){return this.labelsText$.getValue()}setMultiLabel(e){this.multiLabel$.next(e)}getMultiLabel$(){return this.multiLabel$.asObservable()}getMultiLabel(){return this.multiLabel$.getValue()}getInputComponent(){return e=this,t=r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.zeroShotClassification.inputText",{defaultMessage:"Enter a phrase to test"}),Object(v.jsx)(n.a.Fragment,null,e.getInputType()===N.TEXT?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(B,{placeholder:t,inferrer:e}),Object(v.jsx)(s.EuiSpacer,null)):null,Object(v.jsx)(ce,{inferrer:e}));var e,t}getOutputComponent(){return oe(this)}}const de=({inferrer:e})=>{const t=z()(e.getInferenceResult$(),e.getInferenceResult());return t?Object(v.jsx)(n.a.Fragment,null,t.map((t=>Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(le,{response:t.response,inputText:e.predictedValue(t)}),Object(v.jsx)(s.EuiHorizontalRule,null))))):null};class fill_mask_inference_FillMaskInference extends inference_base_InferenceBase{constructor(e,t,a,i){var n,s;super(e,t,a,i),I()(this,"inferenceType",m.d.FILL_MASK),I()(this,"inferenceTypeLabel",r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.fillMask.label",{defaultMessage:"Fill mask"})),I()(this,"info",[r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.fillMask.info1",{defaultMessage:"Test how well the model predicts a missing word in a phrase."})]),I()(this,"maskToken","[MASK]");const o=null===(n=t.inference_config)||void 0===n||null===(s=n[this.inferenceType])||void 0===s?void 0:s.mask_token;o&&(this.maskToken=o),this.initialize([this.inputText$.pipe(Object(A.map)((e=>e.every((e=>e.includes(this.maskToken))))))])}async inferText(){return this.runInfer((()=>this.getInferenceConfig(this.getNumTopClassesConfig())),((e,t)=>ne(e,this.model,t)))}async inferIndex(){return this.runPipelineSimulate((e=>({response:se(e._source[this.inferenceType],this.model),rawResponse:e._source[this.inferenceType],inputText:e._source[this.getInputField()]})))}getProcessors(){return this.getBasicProcessors(this.getNumTopClassesConfig())}predictedValue(e){var t;const{response:a,inputText:i}=e;return null!==(t=a[0])&&void 0!==t&&t.value?i.replace(this.maskToken,a[0].value):i}getInputComponent(){if(this.inputType===N.TEXT){const e=r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.fillMask.inputText",{defaultMessage:"Enter a phrase to test. Use {maskToken} as a placeholder for the missing words.",values:{maskToken:this.maskToken}});return V(this,e)}return null}getOutputComponent(){return this,Object(v.jsx)(de,{inferrer:this})}}const ue={af:"Afrikaans",hr:"Croatian",pa:"Punjabi",am:"Amharic",ht:"Haitian",pl:"Polish",ar:"Arabic",hu:"Hungarian",ps:"Pashto",az:"Azerbaijani",hy:"Armenian",pt:"Portuguese",be:"Belarusian",id:"Indonesian",ro:"Romanian",bg:"Bulgarian",ig:"Igbo",ru:"Russian","bg-Latn":"Bulgarian",is:"Icelandic","ru-Latn":"Russian",bn:"Bengali",it:"Italian",sd:"Sindhi",bs:"Bosnian",iw:"Hebrew",si:"Sinhala",ca:"Catalan",ja:"Japanese",sk:"Slovak",ceb:"Cebuano","ja-Latn":"Japanese",sl:"Slovenian",co:"Corsican",jv:"Javanese",sm:"Samoan",cs:"Czech",ka:"Georgian",sn:"Shona",cy:"Welsh",kk:"Kazakh",so:"Somali",da:"Danish",km:"Central Khmer",sq:"Albanian",de:"German",kn:"Kannada",sr:"Serbian",el:"Greek,modern",ko:"Korean",st:"Southern Sotho","el-Latn":"Greek,modern",ku:"Kurdish",su:"Sundanese",en:"English",ky:"Kirghiz",sv:"Swedish",eo:"Esperanto",la:"Latin",sw:"Swahili",es:"Spanish,Castilian",lb:"Luxembourgish",ta:"Tamil",et:"Estonian",lo:"Lao",te:"Telugu",eu:"Basque",lt:"Lithuanian",tg:"Tajik",fa:"Persian",lv:"Latvian",th:"Thai",fi:"Finnish",mg:"Malagasy",tr:"Turkish",fil:"Filipino",mi:"Maori",uk:"Ukrainian",fr:"French",mk:"Macedonian",ur:"Urdu",fy:"Western Frisian",ml:"Malayalam",uz:"Uzbek",ga:"Irish",mn:"Mongolian",vi:"Vietnamese",gd:"Gaelic",mr:"Marathi",xh:"Xhosa",gl:"Galician",ms:"Malay",yi:"Yiddish",gu:"Gujarati",mt:"Maltese",yo:"Yoruba",ha:"Hausa",my:"Burmese",zh:"Chinese",haw:"Hawaiian",ne:"Nepali","zh-Latn":"Chinese",hi:"Hindi",nl:"Dutch,Flemish",zu:"Zulu","hi-Latn":"Hindi",no:"Norwegian",hmn:"Hmong",ny:"Chichewa",zxx:"unknown"},pe=({inferrer:e})=>{const t=z()(e.getInferenceResult$(),e.getInferenceResult());return t?Object(v.jsx)(n.a.Fragment,null,t.map((({response:e,inputText:t})=>Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(me,{response:e,inputText:t}),Object(v.jsx)(s.EuiHorizontalRule,null))))):null},me=({response:e,inputText:t})=>{const a=e[0].value,i=null!==(o=ue[a])&&void 0!==o?o:"unknown";var o;const l="unknown"!==i?r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.langIdent.output.title",{defaultMessage:"This looks like {lang}",values:{lang:i}}):r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.langIdent.output.titleUnknown",{defaultMessage:"Language code unknown: {langCode}",values:{langCode:a}});return Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiText,{size:"s","data-test-subj":"mlTestModelLangIdentInputText"},t),Object(v.jsx)(s.EuiSpacer,{size:"s"}),Object(v.jsx)(s.EuiTitle,{size:"xxs"},Object(v.jsx)("h4",{"data-test-subj":"mlTestModelLangIdentTitle"},l)),Object(v.jsx)(s.EuiSpacer,null),Object(v.jsx)(le,{response:e}))};class lang_ident_inference_LangIdentInference extends inference_base_InferenceBase{constructor(e,t,a,i){super(e,t,a,i),I()(this,"inferenceType","classification"),I()(this,"inferenceTypeLabel",r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.langIdent.label",{defaultMessage:"Language identification"})),I()(this,"info",[r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.langIdent.info1",{defaultMessage:"Test how well the model identifies the language of your text. The model is more accurate with longer text."})]),this.initialize()}async inferText(){try{return await this.runInfer((()=>this.getInferenceConfig(this.getNumTopClassesConfig())),((e,t)=>ne(e,this.model,t)))}catch(e){throw this.setFinishedWithErrors(e),e}}async inferIndex(){try{return await this.runPipelineSimulate((e=>({response:se(e._source[this.inferenceType],this.model),rawResponse:e._source[this.inferenceType],inputText:e._source[this.getInputField()]})))}catch(e){throw this.setFinishedWithErrors(e),e}}getProcessors(){return this.getBasicProcessors(this.getNumTopClassesConfig())}getInputComponent(){if(this.inputType===N.TEXT){const e=r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.langIdent.inputText",{defaultMessage:"Enter a phrase to test"});return V(this,e)}return null}getOutputComponent(){return this,Object(v.jsx)(pe,{inferrer:this})}}const be=({inferrer:e})=>{const t=z()(e.getInferenceResult$(),e.getInferenceResult());return t?Object(v.jsx)(n.a.Fragment,null,t.map((({response:e,inputText:t})=>Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(fe,{value:e.predictedValue.toString(),inputText:t}),Object(v.jsx)(s.EuiHorizontalRule,null))))):null},fe=({value:e,inputText:t})=>Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiText,{size:"s"},t),Object(v.jsx)(s.EuiSpacer,{size:"s"}),Object(v.jsx)(s.EuiTextArea,{value:e,fullWidth:!0,style:{height:300}}),Object(v.jsx)(s.EuiCopy,{textToCopy:e},(e=>Object(v.jsx)(s.EuiButton,{size:"s",onClick:e},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.testModelsFlyout.textEmbedding.copyButton",defaultMessage:"Copy to clipboard"})))));class text_embedding_inference_TextEmbeddingInference extends inference_base_InferenceBase{constructor(e,t,a,i){super(e,t,a,i),I()(this,"inferenceType",m.d.TEXT_EMBEDDING),I()(this,"inferenceTypeLabel",r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textEmbedding.label",{defaultMessage:"Text embedding"})),I()(this,"info",[r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textEmbedding.info1",{defaultMessage:"Test how well the model generates embeddings for your text."})]),this.initialize()}async inferText(){return this.runInfer((()=>{}),((e,t)=>function(e,t){return{response:{predictedValue:e.inference_results[0].predicted_value},rawResponse:e,inputText:t}}(e,t)))}async inferIndex(){return this.runPipelineSimulate((e=>{const t=e._source[this.getInputField()];return function(e,t){const a=e.predicted_value;return{response:{predictedValue:a},rawResponse:{inference_results:[{predicted_value:a}]},inputText:t}}(e._source[this.inferenceType],t)}))}getProcessors(){return this.getBasicProcessors()}getInputComponent(){if(this.inputType===N.TEXT){const e=r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textEmbedding.inputText",{defaultMessage:"Enter a phrase to test"});return V(this,e)}return null}getOutputComponent(){return this,Object(v.jsx)(be,{inferrer:this})}}var ge=a(107);const he=({errorText:e})=>null===e?null:Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiCallOut,{title:r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.inferenceError",{defaultMessage:"An error occurred"}),color:"danger",iconType:"cross"},Object(v.jsx)("p",null,e))),je=({text:e})=>{const t=e.split(/\r\n|\r|\n/).length+1,a=t>4&&t<=10?t:4;return Object(v.jsx)(s.EuiSkeletonText,{"data-test-subj":"mlTestModelLoadingContent",lines:a})};var xe=a(150);const ve=({inferrer:e})=>{var t;const a=z()(e.getInferenceError$(),e.getInferenceError()),i=z()(e.getRunningState$(),e.getRunningState()),s=z()(e.getInferenceResult$(),e.getInferenceResult());if(i===R.FINISHED_WITH_ERRORS&&!a||i===R.FINISHED&&!s)return null;const o=[];if(s)for(const{rawResponse:e}of s)o.push(e);const r=i===R.FINISHED_WITH_ERRORS?JSON.stringify(null!==(t=null==a?void 0:a.body)&&void 0!==t?t:a,null,2):JSON.stringify(e.getInputType()===N.TEXT?o[0]:o,null,2);return Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(xe.a,{"data-test-subj":"mlTestModelRawOutput",value:null!=r?r:"",readOnly:!0}))};var ye;!function(e){e[e.TEXT=0]="TEXT",e[e.RAW=1]="RAW"}(ye||(ye={}));const Oe=({inferrer:e})=>{const[t,a]=Object(i.useState)(ye.TEXT),[o,r]=Object(i.useState)(null),c=z()(e.getIsValid$(),e.getIsValid()),d=z()(e.getRunningState$(),e.getRunningState()),u=Object(i.useMemo)((()=>e.getInputComponent()),[e]),p=Object(i.useMemo)((()=>e.getOutputComponent()),[e]),m=Object(i.useMemo)((()=>e.getInfoComponent()),[e]),b=Object(i.useCallback)((async t=>{t.preventDefault(),r(null);try{await e.infer()}catch(e){r(Object(ge.b)(e))}}),[e]);return Object(v.jsx)(s.EuiForm,{component:"form",onSubmit:b},Object(v.jsx)(n.a.Fragment,null,m),Object(v.jsx)(n.a.Fragment,null,u),Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)("div",null,Object(v.jsx)(s.EuiButton,{disabled:d===R.RUNNING||!1===c,fullWidth:!1,"data-test-subj":"mlTestModelTestButton",type:"submit"},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.testModelsFlyout.inferenceInputForm.runButton",defaultMessage:"Test"}))),d!==R.STOPPED?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)(s.EuiTabs,{size:"s"},Object(v.jsx)(s.EuiTab,{isSelected:t===ye.TEXT,onClick:a.bind(null,ye.TEXT)},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.testModelsFlyout.inferenceInputForm.markupTab",defaultMessage:"Output"})),Object(v.jsx)(s.EuiTab,{isSelected:t===ye.RAW,onClick:a.bind(null,ye.RAW)},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.testModelsFlyout.inferenceInputForm.rawOutput",defaultMessage:"Raw output"}))),Object(v.jsx)(s.EuiSpacer,{size:"m"}),t===ye.TEXT?Object(v.jsx)(n.a.Fragment,null,d===R.RUNNING?Object(v.jsx)(je,{text:""}):null,null!==o||d===R.FINISHED_WITH_ERRORS?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(he,{errorText:o}),Object(v.jsx)(s.EuiSpacer,null)):null,d===R.FINISHED?Object(v.jsx)("div",{"data-test-subj":"mlTestModelOutput"},p):null):Object(v.jsx)(ve,{inferrer:e})):null)},Ee=({inferrer:e,data:t})=>{const{dataViewListItems:a,fieldNames:o,selectedDataViewId:l,setSelectedDataViewId:c,selectedField:d,setSelectedField:u}=t,p=z()(e.getRunningState$(),e.getRunningState()),m=z()(e.getPipeline$(),e.getPipeline()),b=Object(i.useMemo)((()=>e.getInputComponent()),[e]);return Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiFormRow,{label:"Index",fullWidth:!0},Object(v.jsx)(s.EuiSelect,{options:a,value:l,onChange:e=>c(e.target.value),hasNoInitialSelection:!0,disabled:p===R.RUNNING,fullWidth:!0})),Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)(s.EuiFormRow,{label:r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.indexInput.fieldInput",{defaultMessage:"Field"}),fullWidth:!0},Object(v.jsx)(s.EuiSelect,{options:o,value:d,onChange:e=>u(e.target.value),hasNoInitialSelection:!0,disabled:p===R.RUNNING,fullWidth:!0})),Object(v.jsx)(n.a.Fragment,null,b),Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)(s.EuiAccordion,{id:"simpleAccordionId",buttonContent:r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.indexInput.viewPipeline",{defaultMessage:"View pipeline"})},Object(v.jsx)(s.EuiCodeBlock,{language:"json",fontSize:"s",paddingSize:"s",lineNumbers:!0,isCopyable:!0},JSON.stringify(m,null,2))))},we=({inferrer:e})=>{const t=function({inferrer:e}){const{services:{data:{dataViews:t,search:{search:a}}}}=Object(C.d)(),[n,s]=Object(i.useState)([]),[o,r]=Object(i.useState)(void 0),[l,c]=Object(i.useState)(null),[u,p]=Object(i.useState)([]),m=z()(e.getInputField$(),e.getInputField()),b=Object(i.useCallback)((t=>e.setInputField(t)),[e]);Object(i.useEffect)((function(){t.getIdsWithTitle().then((e=>{s(e.sort(((e,t)=>e.title.localeCompare(t.title))).map((({id:e,title:t})=>({text:t,value:e}))))}))}),[t]),Object(i.useEffect)((function(){e.reset(),p([]),void 0!==o&&t.get(o).then((e=>c(e)))}),[o,t,e]);const f=Object(i.useCallback)((()=>{e.setInputText([]),void 0!==m&&null!==l&&Object(D.firstValueFrom)(a({params:{index:l.getIndexPattern(),body:{fields:[m],query:{function_score:{functions:[{random_score:{}}]}}}}})).then((t=>{const a=t.rawResponse.hits.hits.filter((({fields:e})=>Object(d.a)(e,[m]))).map((({fields:e})=>e[m][0]));e.setInputText(a)}))}),[e,l,a,m]);return Object(i.useEffect)((function(){if(null!==l){const t=l.fields.filter((({displayName:e,esTypes:t})=>t&&t.includes("text")&&!["_id","_index"].includes(e))).sort(((e,t)=>e.displayName.localeCompare(t.displayName))).map((({displayName:e})=>({value:e,text:e})));p(t);const a=1===t.length?t[0].value:void 0;e.setInputField(a)}}),[l,e]),Object(i.useEffect)((function(){f()}),[m]),{fieldNames:u,dataViewListItems:n,reloadExamples:function(){e.reset(),f()},selectedDataViewId:o,setSelectedDataViewId:r,selectedField:m,setSelectedField:b}}({inferrer:e}),{reloadExamples:a,selectedField:o}=t,[r,c]=Object(i.useState)(null),u=z()(e.getRunningState$(),e.getRunningState()),p=z()(e.getInputText$(),e.getInputText()),m=z()(e.getIsValid$(),e.getIsValid()),b=Object(i.useMemo)((()=>e.getOutputComponent()),[e]),f=Object(i.useMemo)((()=>e.getInfoComponent()),[e]),g=Object(i.useCallback)((async t=>{t.preventDefault(),c(null);try{await e.infer()}catch(e){c(Object(ge.b)(e))}}),[e]);return Object(v.jsx)(s.EuiForm,{component:"form",onSubmit:g},Object(v.jsx)(n.a.Fragment,null,f),Object(v.jsx)(Ee,{inferrer:e,data:t}),Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)(s.EuiFlexGroup,null,Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(s.EuiButton,{disabled:u===R.RUNNING||!1===m,fullWidth:!1,"data-test-subj":"mlTestModelTestButton",type:"submit"},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.testModelsFlyout.inferenceInputForm.runButton",defaultMessage:"Test"}))),Object(v.jsx)(s.EuiFlexItem,{grow:!1},u===R.RUNNING?Object(v.jsx)(s.EuiLoadingSpinner,{size:"xl"}):null),Object(v.jsx)(s.EuiFlexItem,null),Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(s.EuiButtonEmpty,{onClick:a,disabled:u===R.RUNNING||void 0===o},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.testModelsFlyout.inferenceInputForm.reloadButton",defaultMessage:"Reload examples"})))),Object(v.jsx)(s.EuiSpacer,{size:"m"}),null!==r||u===R.FINISHED_WITH_ERRORS?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(he,{errorText:r}),Object(v.jsx)(s.EuiSpacer,null)):null,u!==R.FINISHED?p.map((e=>Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiText,{size:"s"},e),Object(v.jsx)(s.EuiHorizontalRule,null)))):null,u===R.FINISHED?Object(v.jsx)(n.a.Fragment,null,b):null)},Me=({inferrer:e,inputType:t})=>t===N.TEXT?Object(v.jsx)(Oe,{inferrer:e}):Object(v.jsx)(we,{inferrer:e});var Se=a(365);const _e=({inferrer:e})=>{const t=z()(e.getInferenceResult$(),e.getInferenceResult());return t?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiCallOut,{color:"primary"},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.testModelsFlyout.textExpansion.output.info",defaultMessage:"The numbers below represent relevance scores for documents randomly selected from the index concerning the supplied query. Evaluating model recall is simpler when using a query related to the documents."})),Object(v.jsx)(s.EuiSpacer,{size:"m"}),t.sort(((e,t)=>t.response.score-e.response.score)).map((({response:e,inputText:t})=>Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(Te,{response:e}),Object(v.jsx)(s.EuiHorizontalRule,null))))):null},Te=({response:e})=>{const t=Ce(e);return Object(v.jsx)(n.a.Fragment,null,void 0!==e.text?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiStat,{title:Object(Se.a)(e.score,3),textAlign:"left",titleColor:t.color,description:Object(v.jsx)(s.EuiTextColor,{color:t.color},Object(v.jsx)("span",null,null!==t.icon?Object(v.jsx)(s.EuiIcon,{type:t.icon,color:t.color}):null,t.text))}),Object(v.jsx)(s.EuiSpacer,{size:"s"}),Object(v.jsx)("span",{css:Object(v.css)({color:t.textColor},"","")},e.text),Object(v.jsx)(s.EuiSpacer,{size:"s"})):null)},Ce=e=>{const{euiTheme:{euiColorMediumShade:t,euiTextSubduedColor:a,euiTextColor:i}}=Object(C.a)();return e.score>=5?{color:"success",textColor:i,icon:"check",text:r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textExpansion.output.goodMatch",{defaultMessage:"Good match"})}:e.score>0?{color:a,textColor:i,text:null,icon:null}:{color:t,textColor:t,text:null,icon:null}},ke=({inferrer:e})=>{const t=z()(e.getQueryText$(),e.getQueryText()),a=z()(e.getRunningState$(),e.getRunningState());return Object(v.jsx)(s.EuiFormRow,{fullWidth:!0,label:r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textExpansion.queryInput",{defaultMessage:"Search query"})},Object(v.jsx)(s.EuiFieldText,{value:t,disabled:a===R.RUNNING,fullWidth:!0,onChange:t=>{e.setQueryText(t.target.value)}}))};class text_expansion_inference_TextExpansionInference extends inference_base_InferenceBase{constructor(e,t,a,i){super(e,t,a,i),I()(this,"inferenceType",m.d.TEXT_EXPANSION),I()(this,"inferenceTypeLabel",r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textExpansion.label",{defaultMessage:"Text expansion"})),I()(this,"info",[r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textExpansion.info",{defaultMessage:"Expand your search to include relevant terms in the results that are not present in the query."})]),I()(this,"queryText$",new D.BehaviorSubject("")),I()(this,"queryResults",{}),this.initialize([this.queryText$.pipe(Object(A.map)((e=>""!==e)))],[this.queryText$])}async inferText(){return this.runInfer((()=>{}),((e,t)=>({response:Fe(e,"",this.queryResults),rawResponse:e,inputText:t})))}async inferIndex(){var e,t;const{docs:a}=await this.trainedModelsApi.trainedModelPipelineSimulate(this.getPipeline(),[{_source:{text_field:this.getQueryText()}}]);if(0===a.length)throw new Error(r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textExpansion.noDocsError",{defaultMessage:"No docs loaded"}));return this.queryResults=null!==(e=null===(t=a[0].doc)||void 0===t?void 0:t._source[this.inferenceType].predicted_value)&&void 0!==e?e:{},this.runPipelineSimulate((e=>({response:Fe({inference_results:[e._source[this.inferenceType]]},e._source[this.getInputField()],this.queryResults),rawResponse:e._source[this.inferenceType],inputText:e._source[this.getInputField()]})))}getProcessors(){return this.getBasicProcessors()}setQueryText(e){this.queryText$.next(e)}getQueryText$(){return this.queryText$.asObservable()}getQueryText(){return this.queryText$.getValue()}getInputComponent(){return e=this,t=r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textExpansion.inputText",{defaultMessage:"Enter a phrase to test"}),Object(v.jsx)(n.a.Fragment,null,e.getInputType()===N.TEXT?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(B,{placeholder:t,inferrer:e}),Object(v.jsx)(s.EuiSpacer,null)):null,Object(v.jsx)(ke,{inferrer:e}));var e,t}getOutputComponent(){return this,Object(v.jsx)(_e,{inferrer:this})}}function Fe(e,t,a){const[{predicted_value:i}]=e.inference_results;if(void 0===i)throw new Error(r.i18n.translate("xpack.ml.trainedModels.testModelsFlyout.textExpansion.noPredictionError",{defaultMessage:"No results found"}));const n=Object.entries(i).map((([e,t])=>({token:e,value:t})));let s=0;const o=n.map((({token:e,value:t})=>{var i;const n=t*(null!==(i=a[e])&&void 0!==i?i:0);return s+=n,{token:e,value:n}}));return{text:t,score:s,originalTokenWeights:n,adjustedTokenWeights:o}}const Ie=({model:e,inputType:t,deploymentId:a})=>{const{trainedModels:n}=Object(C.c)(),s=Object(i.useMemo)((()=>{var i;if(e.model_type===m.e.PYTORCH)switch(Object.keys(null!==(i=e.inference_config)&&void 0!==i?i:{})[0]){case m.d.NER:return new ner_inference_NerInference(n,e,t,a);case m.d.TEXT_CLASSIFICATION:return new text_classification_inference_TextClassificationInference(n,e,t,a);case m.d.ZERO_SHOT_CLASSIFICATION:return new zero_shot_classification_inference_ZeroShotClassificationInference(n,e,t,a);case m.d.TEXT_EMBEDDING:return new text_embedding_inference_TextEmbeddingInference(n,e,t,a);case m.d.FILL_MASK:return new fill_mask_inference_FillMaskInference(n,e,t,a);case m.d.QUESTION_ANSWERING:return new question_answering_inference_QuestionAnsweringInference(n,e,t,a);case m.d.TEXT_EXPANSION:return new text_expansion_inference_TextExpansionInference(n,e,t,a)}else if(e.model_type===m.e.LANG_IDENT)return new lang_ident_inference_LangIdentInference(n,e,t,a)}),[t,e,n,a]);return Object(i.useEffect)((()=>()=>{null==s||s.destroy()}),[s]),void 0!==s?Object(v.jsx)(Me,{inferrer:s,inputType:t}):null},De=({model:e,onClose:t})=>{const[a,o]=Object(i.useState)(e.deployment_ids[0]),r=Object(s.useEuiPaddingSize)("m"),[c,d]=Object(i.useState)(N.TEXT),u=Object(i.useMemo)((()=>{var t;return(null!==(t=e.type)&&void 0!==t?t:[]).includes(m.d.TEXT_EXPANSION)?N.INDEX:void 0}),[e]);return Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiFlyout,{maxWidth:600,onClose:t,"data-test-subj":"mlTestModelsFlyout"},Object(v.jsx)(s.EuiFlyoutHeader,{hasBorder:!0},Object(v.jsx)(s.EuiTitle,{size:"m"},Object(v.jsx)("h2",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.testModelsFlyout.headerLabel",defaultMessage:"Test trained model"}))),Object(v.jsx)(s.EuiSpacer,{size:"s"}),Object(v.jsx)(s.EuiTitle,{size:"xs"},Object(v.jsx)("h4",null,e.model_id))),Object(v.jsx)(s.EuiFlyoutBody,null,e.deployment_ids.length>1?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiFormRow,{fullWidth:!0,label:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.testModelsFlyout.deploymentIdLabel",defaultMessage:"Deployment ID"})},Object(v.jsx)(s.EuiSelect,{fullWidth:!0,options:e.deployment_ids.map((e=>({text:e,value:e}))),value:a,onChange:e=>{o(e.target.value)}})),Object(v.jsx)(s.EuiSpacer,{size:"l"})):null,void 0===u?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiTabs,{size:"m",css:Object(v.css)({marginTop:`-${r}`},"","")},Object(v.jsx)(s.EuiTab,{isSelected:c===N.TEXT,onClick:()=>d(N.TEXT)},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.testModelsFlyout.textTab",defaultMessage:"Test using text"})),Object(v.jsx)(s.EuiTab,{isSelected:c===N.INDEX,onClick:()=>d(N.INDEX)},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.testModelsFlyout.indexTab",defaultMessage:"Test using existing index"}))),Object(v.jsx)(s.EuiSpacer,{size:"m"})):null,Object(v.jsx)(Ie,{model:e,inputType:null!=u?u:c,deploymentId:null!=a?a:e.model_id}))))},Ae=Object.values(m.d);function Le(e,t=!1){var a,i,n;return!(e.model_type!==m.e.PYTORCH||!Ae.includes(Object.keys(null!==(a=e.inference_config)&&void 0!==a?a:{})[0])||!(!1===t||null!==(i=e.stats)&&void 0!==i&&null!==(n=i.deployment_stats)&&void 0!==n&&n.some((e=>e.state===m.c.STARTED))))||e.model_type===m.e.LANG_IDENT}var Re=a(217),Ne=a(222);const Pe=({models:e,onClose:t})=>{const a=Object(j.b)(),{displayErrorToast:n,displaySuccessToast:o}=Object(O.c)(),[c,u]=Object(i.useState)(!1),[p,m]=Object(i.useState)(!1),b=e.map((e=>e.model_id)),f=e.filter((e=>Object(d.a)(e.pipelines))),g=f.reduce(((e,t)=>e+Object.keys(t.pipelines).length),0),h=Object(i.useCallback)((async()=>{try{await Promise.all(b.map((e=>a.deleteTrainedModel(e,{with_pipelines:p,force:g>0})))),o(r.i18n.translate("xpack.ml.trainedModels.modelsList.successfullyDeletedMessage",{defaultMessage:"{modelsCount, plural, one {Model {modelIds}} other {# models}} {modelsCount, plural, one {has} other {have}} been successfully deleted",values:{modelsCount:b.length,modelIds:b.join(", ")}}))}catch(e){n(e,r.i18n.translate("xpack.ml.trainedModels.modelsList.fetchDeletionErrorMessage",{defaultMessage:"{modelsCount, plural, one {Model} other {Models}} deletion failed",values:{modelsCount:b.length}}))}t(!0)}),[b,a,p,g]);return c?Object(v.jsx)(s.EuiModal,{onClose:t.bind(null,!1),initialFocus:"[name=cancelModelDeletion]","data-test-subj":"mlModelsDeleteModal"},Object(v.jsx)(s.EuiModalHeader,null,Object(v.jsx)(s.EuiModalHeaderTitle,null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.deleteModal.header",defaultMessage:"Delete {modelsCount, plural, one {{modelId}} other {# models}}?",values:{modelId:b[0],modelsCount:b.length}}))),f.length>0?Object(v.jsx)(s.EuiModalBody,null,Object(v.jsx)(s.EuiCallOut,{title:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.deleteModal.pipelinesWarningHeader",defaultMessage:"{modelsCount, plural, one {{modelId} has} other {# models have}} associated pipelines.",values:{modelsCount:f.length,modelId:f[0].model_id}}),color:"warning",iconType:"warning"},Object(v.jsx)("div",null,Object(v.jsx)("p",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.deleteModal.warningMessage",defaultMessage:"Deleting the trained model and its associated {pipelinesCount, plural, one {pipeline} other {pipelines}} will permanently remove these resources. Any process configured to send data to the {pipelinesCount, plural, one {pipeline} other {pipelines}} will no longer be able to do so once you delete the {pipelinesCount, plural, one {pipeline} other {pipelines}}. Deleting only the trained model will cause failures in the {pipelinesCount, plural, one {pipeline} other {pipelines}} that {pipelinesCount, plural, one {depends} other {depend}} on the model.",values:{pipelinesCount:g}})),Object(v.jsx)(s.EuiCheckbox,{id:"delete-model-pipelines",label:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.deleteModal.approvePipelinesDeletionLabel",defaultMessage:"Delete {pipelinesCount, plural, one {pipeline} other {pipelines}}",values:{pipelinesCount:g}}),checked:p,onChange:m.bind(null,(e=>!e)),"data-test-subj":"mlModelsDeleteModalDeletePipelinesCheckbox"})),Object(v.jsx)("ul",null,f.flatMap((e=>Object.keys(e.pipelines).map((e=>Object(v.jsx)("li",{key:e},e)))))))):null,Object(v.jsx)(s.EuiModalFooter,null,Object(v.jsx)(s.EuiButtonEmpty,{onClick:t.bind(null,!1),name:"cancelModelDeletion"},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.deleteModal.cancelButtonLabel",defaultMessage:"Cancel"})),Object(v.jsx)(s.EuiButton,{onClick:h.bind(null),fill:!0,color:"danger","data-test-subj":"mlModelsDeleteModalConfirmButton"},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.deleteModal.deleteButtonLabel",defaultMessage:"Delete"})))):Object(v.jsx)(Ne.a,{ids:b,mlSavedObjectType:"trained-model",canDeleteCallback:u.bind(null,!0),onCloseCallback:t.bind(null,!0),refreshJobsCallback:()=>{},hasManagedJob:!1})};var ze=a(354),Be=a(205),Ve=a(44),Je=a(141),Ue=a(154);const Ge={DETAILS:"Details",CONFIGURE_PROCESSOR:"Configure processor",ON_FAILURE:"Failure handling",TEST:"Test",CREATE:"create"},qe=r.i18n.translate("xpack.ml.trainedModels.actions.cancelButtonLabel",{defaultMessage:"Cancel"}),$e=r.i18n.translate("xpack.ml.trainedModels.actions.clearButtonLabel",{defaultMessage:"Clear"}),We=r.i18n.translate("xpack.ml.trainedModels.actions.closeButtonLabel",{defaultMessage:"Close"}),He=r.i18n.translate("xpack.ml.trainedModels.actions.backButtonLabel",{defaultMessage:"Back"}),Ye=r.i18n.translate("xpack.ml.trainedModels.actions.continueButtonLabel",{defaultMessage:"Continue"}),Xe=r.i18n.translate("xpack.ml.trainedModels.actions.create.advancedDetails.editButtonText",{defaultMessage:"Edit"}),Qe=r.i18n.translate("xpack.ml.trainedModels.actions.create.advancedDetails.createFieldMapText",{defaultMessage:"Create field map"}),Ke=r.i18n.translate("xpack.ml.trainedModels.actions.create.advancedDetails.cancelEditButtonText",{defaultMessage:"Cancel"}),Ze=({isDetailsStepValid:e,isConfigureProcessorStepValid:t,creatingPipeline:a,pipelineCreated:n,onClose:o,onCreate:l,step:c,setStep:d})=>{const{nextStep:u,previousStep:p,isContinueButtonEnabled:m}=Object(i.useMemo)((()=>function(e,t,a){let i,n,s=!1;switch(e){case Ge.DETAILS:i=Ge.CONFIGURE_PROCESSOR,s=t;break;case Ge.CONFIGURE_PROCESSOR:i=Ge.ON_FAILURE,n=Ge.DETAILS,s=a;break;case Ge.ON_FAILURE:i=Ge.TEST,n=Ge.CONFIGURE_PROCESSOR,s=a;break;case Ge.TEST:i=Ge.CREATE,n=Ge.ON_FAILURE,s=!0;break;case Ge.CREATE:n=Ge.TEST,s=!0}return{nextStep:i,previousStep:n,isContinueButtonEnabled:s}}(c,e,t)),[e,t,c]);return Object(v.jsx)(s.EuiFlexGroup,null,Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(s.EuiButtonEmpty,{onClick:o},n?We:qe)),Object(v.jsx)(s.EuiFlexItem,null),Object(v.jsx)(s.EuiFlexItem,{grow:!1},void 0!==p&&!1===n?Object(v.jsx)(s.EuiButtonEmpty,{flush:"both",iconType:"arrowLeft",onClick:()=>d(p)},He):null),Object(v.jsx)(s.EuiFlexItem,{grow:!1},void 0!==u?Object(v.jsx)(s.EuiButton,{iconType:"arrowRight",iconSide:"right",onClick:()=>d(u),disabled:!m,fill:!0},Ye):Object(v.jsx)(s.EuiButton,{color:"success",disabled:!m||a||n,fill:!0,onClick:l,isLoading:a},r.i18n.translate("xpack.ml.trainedModels.content.indices.addInferencePipelineModal.footer.create",{defaultMessage:"Create pipeline"}))))},et=Object.values(Ge),tt=Object(i.memo)((({step:e,setStep:t,isDetailsStepValid:a,isConfigureProcessorStepValid:i})=>{const n=et.findIndex((t=>t===e)),o=[{onClick:()=>t(Ge.DETAILS),status:a?"complete":"incomplete",title:r.i18n.translate("xpack.ml.inferencePipeline.content.indices.transforms.addInferencePipelineModal.steps.details.title",{defaultMessage:"Details"})},{onClick:()=>{a&&t(Ge.CONFIGURE_PROCESSOR)},status:a&&i&&n>1?"complete":"incomplete",title:r.i18n.translate("xpack.ml.inferencePipeline.content.indices.transforms.addInferencePipelineModal.steps.configureProcessor.title",{defaultMessage:"Configure processor"})},{onClick:()=>{a&&t(Ge.ON_FAILURE)},status:n>2?"complete":"incomplete",title:r.i18n.translate("xpack.ml.inferencePipeline.content.indices.transforms.addInferencePipelineModal.steps.handleFailures.title",{defaultMessage:"Handle failures"})},{onClick:()=>{i&&a&&t(Ge.TEST)},status:n>3?"complete":"incomplete",title:r.i18n.translate("xpack.ml.trainedModels.content.indices.transforms.addInferencePipelineModal.steps.test.title",{defaultMessage:"Test (Optional)"})},{onClick:()=>{i&&t(Ge.CREATE)},status:a&&i?"incomplete":"disabled",title:r.i18n.translate("xpack.ml.inferencePipeline.content.indices.transforms.addInferencePipelineModal.steps.create.title",{defaultMessage:"Create"})}];switch(e){case Ge.DETAILS:o[0].status="current";break;case Ge.CONFIGURE_PROCESSOR:o[1].status="current";break;case Ge.ON_FAILURE:o[2].status="current";break;case Ge.TEST:o[3].status="current";break;case Ge.CREATE:o[4].status="current"}return Object(v.jsx)(s.EuiStepsHorizontal,{steps:o})})),at=e=>{var t,a;const i=null===(t=e.metadata)||void 0===t||null===(a=t.analytics_config)||void 0===a?void 0:a.analysis;return void 0!==i?Object(h.s)(i):void 0},it=Object(i.memo)((({handlePipelineConfigUpdate:e,modelId:t,pipelineName:a,pipelineNameError:i,pipelineDescription:n,targetField:o,targetFieldError:c})=>{const{services:{docLinks:{links:d}}}=Object(C.d)(),u=(t,a)=>{e({[a]:t})};return Object(v.jsx)(s.EuiFlexGroup,null,Object(v.jsx)(s.EuiFlexItem,{grow:3},Object(v.jsx)(s.EuiTitle,{size:"s"},Object(v.jsx)("h4",null,r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.title",{defaultMessage:"Create a pipeline"}))),Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)(s.EuiText,{color:"subdued",size:"s"},Object(v.jsx)("p",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.description",defaultMessage:"Build a {pipeline} to use the trained data frame analytics model - {modelId} - for inference.",values:{modelId:Object(v.jsx)(s.EuiCode,null,t),pipeline:Object(v.jsx)(s.EuiLink,{external:!0,target:"_blank",href:d.ingest.pipelines},"pipeline")}})),Object(v.jsx)("p",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.descriptionUsePipelines",defaultMessage:"Use {pipelineSimulateLink} or {reindexLink} to pass data into this pipeline. Predictions are stored in the Target field.",values:{reindexLink:Object(v.jsx)(s.EuiLink,{external:!0,target:"_blank",href:d.upgradeAssistant.reindexWithPipeline},"_reindex API"),pipelineSimulateLink:Object(v.jsx)(s.EuiLink,{external:!0,target:"_blank",href:d.apis.simulatePipeline},"pipeline/_simulate")}})))),Object(v.jsx)(s.EuiFlexItem,{grow:7},Object(v.jsx)(s.EuiPanel,{hasBorder:!1,hasShadow:!1},Object(v.jsx)(s.EuiForm,{component:"form"},Object(v.jsx)(s.EuiFormRow,{fullWidth:!0,label:r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.nameLabel",{defaultMessage:"Name"}),helpText:!i&&Object(v.jsx)(s.EuiText,{size:"xs"},r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.name.helpText",{defaultMessage:"Pipeline names are unique within a deployment and can only contain letters, numbers, underscores, and hyphens."})),error:i,isInvalid:void 0!==i},Object(v.jsx)(s.EuiFieldText,{fullWidth:!0,placeholder:r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.namePlaceholder",{defaultMessage:"Enter a unique name for this pipeline"}),value:a,onChange:e=>u(e.target.value,"pipelineName")})),Object(v.jsx)(s.EuiFormRow,{fullWidth:!0,label:r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.descriptionLabel",{defaultMessage:"Description"}),helpText:Object(v.jsx)(s.EuiText,{size:"xs"},r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.description.helpText",{defaultMessage:"A description of what this pipeline does."}))},Object(v.jsx)(s.EuiTextArea,{compressed:!0,fullWidth:!0,placeholder:r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.descriptionPlaceholder",{defaultMessage:"Add a description of what this pipeline does."}),value:n,onChange:e=>u(e.target.value,"pipelineDescription")})),Object(v.jsx)(s.EuiFormRow,{fullWidth:!0,label:r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.targetFieldLabel",{defaultMessage:"Target field (optional)"}),helpText:!c&&Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.targetFieldHelpText",defaultMessage:"Field used to contain inference processor results. Defaults to {targetField}.",values:{targetField:Object(v.jsx)(s.EuiCode,null,"ml.inference.")}}),error:c,isInvalid:void 0!==c},Object(v.jsx)(s.EuiFieldText,{fullWidth:!0,value:o,onChange:e=>u(e.target.value,"targetField")}))))))}));var nt=a(21);const st=r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.invalidPipelineName",{defaultMessage:"Name must only contain letters, numbers, underscores, and hyphens."}),ot=r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.emptyValueError",{defaultMessage:"Field is required."}),rt=r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.noEmptyInferenceConfigObjectError",{defaultMessage:"Inference configuration cannot be an empty object."}),lt=r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.configure.pipelineNameExistsError",{defaultMessage:"Name already used by another pipeline."}),ct=r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.emptyValueError",{defaultMessage:"Field map must include fields expected by the model."}),dt=r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.incorrectModelTypeError",{defaultMessage:"Inference configuration inference type must match model type."}),ut=/^[\w\-]+$/;var pt=a(139);const mt=({onClick:e,disabled:t})=>Object(v.jsx)(s.EuiButtonEmpty,{size:"xs",onClick:e,disabled:t},r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.saveChangesButton",{defaultMessage:"Save changes"})),bt=Object(i.memo)((({handleAdvancedConfigUpdate:e,condition:t,tag:a})=>{var n,o;const[c,d]=Object(i.useState)(t||a?{condition:t,tag:a}:void 0),{services:{docLinks:{links:u}}}=Object(C.d)(),p=e=>{d({...c,...e})},m=Object(i.useMemo)((()=>Object(s.htmlIdGenerator)()()),[]),b=Object(i.useMemo)((()=>(null==c?void 0:c.tag)!==a||(null==c?void 0:c.condition)!==t),[c,a,t]);return Object(v.jsx)(s.EuiAccordion,{id:m,buttonContent:Object(v.jsx)(s.EuiFlexGroup,{gutterSize:"xs"},Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.additionalSettingsLabel",defaultMessage:"Additional settings"})),Object(v.jsx)(s.EuiFlexItem,{grow:!1},b?Object(v.jsx)(mt,{onClick:()=>{e({...c})},disabled:void 0===c}):null))},Object(v.jsx)(s.EuiPanel,{color:"subdued"},Object(v.jsx)(s.EuiFlexGroup,null,Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiFormRow,{fullWidth:!0,label:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.conditionLabel",defaultMessage:"Condition (optional)"}),helpText:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.conditionHelpText",defaultMessage:"This condition must be written as a {painlessDocs} script. If provided, this inference processor only runs when condition is true.",values:{painlessDocs:Object(v.jsx)(s.EuiLink,{external:!0,target:"_blank",href:u.scriptedFields.painlessWalkthrough},"Painless")}})},Object(v.jsx)(s.EuiTextArea,{"aria-label":r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.conditionAriaLabel",{defaultMessage:"Optional condition for running the processor"}),value:null!==(n=null==c?void 0:c.condition)&&void 0!==n?n:"",onChange:e=>p({condition:e.target.value})}))),Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiFlexGroup,{direction:"column"},Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiFormRow,{fullWidth:!0,label:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.TagLabel",defaultMessage:"Tag (optional)"}),helpText:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.tagHelpText",defaultMessage:"Identifier for the processor. Useful for debugging and metrics."})},Object(v.jsx)(s.EuiFieldText,{value:null!==(o=null==c?void 0:c.tag)&&void 0!==o?o:"",onChange:e=>p({tag:e.target.value}),"aria-label":r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.tagAriaLabel",{defaultMessage:"Optional tag identifier for the processor"})}))))))))})),ft=Object(i.memo)((({condition:e,fieldMap:t,handleAdvancedConfigUpdate:a,inferenceConfig:o,modelInputFields:c,modelInferenceConfig:d,modelType:u,setHasUnsavedChanges:p,tag:m})=>{const{services:{docLinks:{links:b}}}=Object(C.d)(),[f,g]=Object(i.useState)(!1),[h,j]=Object(i.useState)(!1),[x,y]=Object(i.useState)(!1),[O,E]=Object(i.useState)(JSON.stringify(o,null,2)),[w,M]=Object(i.useState)(),[S,_]=Object(i.useState)(),[T,k]=Object(i.useState)(t?JSON.stringify(t,null,2):JSON.stringify({field_map:{incoming_field:"field_the_model_expects"}},null,2)),[F,I]=Object(i.useState)(!0),[D,A]=Object(i.useState)(!0);return Object(v.jsx)(s.EuiFlexGroup,{direction:"column"},Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiFlexGroup,null,Object(v.jsx)(s.EuiFlexItem,{grow:3},Object(v.jsx)(s.EuiTitle,{size:"s"},Object(v.jsx)("h4",null,r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.inferenceConfigurationTitle",{defaultMessage:"Inference configuration"}))),Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)(s.EuiText,{color:"subdued",size:"s"},Object(v.jsx)("p",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.description",defaultMessage:"The inference type and its options. Unless otherwise specified, the default configuration options are used. {inferenceDocsLink}.",values:{inferenceDocsLink:Object(v.jsx)(s.EuiLink,{external:!0,target:"_blank",href:b.ingest.inference},"Learn more.")}})))),Object(v.jsx)(s.EuiFlexItem,{grow:7},Object(v.jsx)(s.EuiFormRow,{fullWidth:!0,labelAppend:Object(v.jsx)(s.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(s.EuiButtonEmpty,{iconType:"pencil",size:"xs",onClick:()=>{0==!h&&(M(void 0),I(!0)),j(!h)}},h?Ke:Xe)),Object(v.jsx)(s.EuiFlexItem,{grow:!1},h?Object(v.jsx)(mt,{onClick:()=>{const e=((e,t)=>{const a=Object.keys(null!=e?e:{});let i;return e&&0===Object.keys(e).length?(i=rt,i):e&&a.length>0?(t===a[0]||(i=dt),i):i})(JSON.parse(O),u);void 0===e?(a({inferenceConfig:JSON.parse(O)}),p(!1),j(!1),M(void 0)):(p(!0),I(!1),M(e))},disabled:!1===F}):null),Object(v.jsx)(s.EuiFlexItem,{grow:!1},h?Object(v.jsx)(s.EuiButtonEmpty,{size:"xs",onClick:()=>{E(JSON.stringify(d,null,2)),I(!0),M(void 0)}},r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.resetInferenceConfigButton",{defaultMessage:"Reset"})):null)),error:w,isInvalid:void 0!==w||void 0!==w},h?Object(v.jsx)(nt.CodeEditor,{height:300,languageId:"json",options:{automaticLayout:!0,lineNumbers:"off",tabSize:2},value:O,onChange:e=>{E(e);const t=Object(pt.c)(e);I(t)}}):Object(v.jsx)(s.EuiCodeBlock,{isCopyable:!0},JSON.stringify(o,null,2)))))),Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiFlexGroup,null,Object(v.jsx)(s.EuiFlexItem,{grow:3},Object(v.jsx)(s.EuiTitle,{size:"s"},Object(v.jsx)("h4",null,r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.fieldMapTitle",{defaultMessage:"Fields"}))),Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)(s.EuiText,{color:"subdued",size:"s"},Object(v.jsx)("p",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.fieldMapDescriptionTwo",defaultMessage:"The model expects certain input fields. {fieldsList}",values:{fieldsList:Object(v.jsx)(s.EuiPopover,{button:Object(v.jsx)(s.EuiLink,{onClick:()=>g(!f)},"You can review them here."),isOpen:f,closePopover:()=>g(!1),anchorPosition:"downLeft"},Object(v.jsx)(s.EuiCodeBlock,{isCopyable:!0},JSON.stringify(c,null,2)))}})),Object(v.jsx)("p",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.fieldMapExtendedDescription",defaultMessage:"If the fields for the incoming data differ, a {fieldMap} must be created to map the input document field name to the name of the field that the model expects. It must be in JSON format. {inferenceDocsLink}",values:{fieldMap:Object(v.jsx)(s.EuiCode,null,"field_map"),inferenceDocsLink:Object(v.jsx)(s.EuiLink,{external:!0,target:"_blank",href:b.ingest.inference},"Learn more.")}})))),Object(v.jsx)(s.EuiFlexItem,{grow:7},Object(v.jsx)(s.EuiFormRow,{fullWidth:!0,labelAppend:Object(v.jsx)(s.EuiFlexGroup,{gutterSize:"xs",justifyContent:"flexStart"},Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(s.EuiButtonEmpty,{iconType:"pencil",size:"xs",onClick:()=>{const e=!x;!1===e&&(_(void 0),A(!0),p(!1)),y(e)}},x?Ke:void 0!==t?Xe:Qe)),x?Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(mt,{onClick:()=>{var e;const t=((e,t)=>{var a;let i;const n=Object.values(null!==(a=null==t?void 0:t.field_map)&&void 0!==a?a:{});if(t&&n.length>0){if(n.some((t=>e.includes(t))))return i;i=ct}return i})(null!==(e=c.field_names)&&void 0!==e?e:[],JSON.parse(T));void 0===t?(a({fieldMap:JSON.parse(T)}),p(!1),y(!1),_(void 0)):(p(!0),A(!1),_(t))},disabled:!1===D})):null,x?Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(s.EuiButtonEmpty,{size:"xs",onClick:()=>{k("{}"),A(!0),_(void 0)}},$e)):null),error:S,isInvalid:void 0!==S},Object(v.jsx)(n.a.Fragment,null,x?null:Object(v.jsx)(s.EuiCodeBlock,{isCopyable:!0,overflowHeight:350},JSON.stringify(null!=t?t:{},null,2)),x?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiSpacer,{size:"s"}),Object(v.jsx)(nt.CodeEditor,{height:300,languageId:"json",options:{automaticLayout:!0,lineNumbers:"off",tabSize:2},value:T,onChange:e=>{k(e);const t=Object(pt.c)(e);A(t)}})):null))))),Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(bt,{handleAdvancedConfigUpdate:a,condition:e,tag:m})))}));var gt={name:"1gfe5of",styles:"height:350px"};const ht=Object(i.memo)((({handleAdvancedConfigUpdate:e,ignoreFailure:t,onFailure:a,takeActionOnFailure:o})=>{const{services:{docLinks:{links:c}}}=Object(C.d)(),[d,u]=Object(i.useState)(!1),[p,m]=Object(i.useState)(!1),[b,f]=Object(i.useState)(JSON.stringify(a,null,2));return Object(v.jsx)(s.EuiFlexGroup,{direction:"column"},Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiFlexGroup,null,Object(v.jsx)(s.EuiFlexItem,{grow:3},Object(v.jsx)(s.EuiTitle,{size:"s"},Object(v.jsx)("h4",null,r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.onFailureTitle",{defaultMessage:"Ingesting problematic documents"}))),Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)(s.EuiText,{color:"subdued",size:"s"},Object(v.jsx)("p",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.handleFailuresExplanation",defaultMessage:"If the model fails to produce a prediction, the document will be ingested without the prediction."})),Object(v.jsx)("p",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.handleFailuresDescription",defaultMessage:"By default, pipeline processing stops on failure. To run the pipeline's remaining processors despite the failure, {ignoreFailure} is set to true. {inferenceDocsLink}.",values:{ignoreFailure:Object(v.jsx)(s.EuiCode,null,"ignore_failure"),inferenceDocsLink:Object(v.jsx)(s.EuiLink,{external:!0,target:"_blank",href:c.ingest.pipelineFailure},"Learn more.")}})),Object(v.jsx)("p",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.onFailureDescription",defaultMessage:"The {onFailure} configuration shown will be used as a default. It is used to specify a list of processors to run immediately after the inference processor failure and provides information on why the failure occurred. {onFailureDocsLink}",values:{onFailure:Object(v.jsx)(s.EuiCode,null,"on_failure"),onFailureDocsLink:Object(v.jsx)(s.EuiLink,{external:!0,target:"_blank",href:c.ingest.pipelineFailure},"Learn more.")}})))),Object(v.jsx)(s.EuiFlexItem,{grow:7},Object(v.jsx)(s.EuiFlexGroup,{direction:"column"},Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiFlexGroup,{direction:"column",gutterSize:"s"},Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(s.EuiFormRow,{fullWidth:!0},Object(v.jsx)(s.EuiSwitch,{label:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.ignoreFailureLabel",defaultMessage:"Ignore failure and run the pipeline's remaining processors"}),checked:t,onChange:t=>{const a=t.target.checked;e({ignoreFailure:a,...!0===a?{takeActionOnFailure:!1,onFailure:void 0}:{}})}}))),Object(v.jsx)(s.EuiFlexItem,{grow:!1},!1===t?Object(v.jsx)(s.EuiFormRow,null,Object(v.jsx)(s.EuiSwitch,{label:Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.noActionOnFailureLabel",defaultMessage:"Take action on failure"})),checked:o,onChange:t=>{return a=t.target.checked,e({takeActionOnFailure:a,onFailure:!1===a?void 0:[{set:{description:"Index document to 'failed-'",field:"_index",value:"failed-{{{ _index }}}"}},{set:{field:"event.timestamp",value:"{{{ _ingest.timestamp }}}"}},{set:{field:"event.failure.message",value:"{{{ _ingest.on_failure_message }}}"}},{set:{field:"event.failure.processor_type",value:"{{{ _ingest.on_failure_processor_type }}}"}},{set:{field:"event.failure.processor_tag",value:"{{{ _ingest.on_failure_processor_tag }}}"}},{set:{field:"event.failure.pipeline",value:"{{{ _ingest.on_failure_pipeline }}}"}}]}),void(!1===a&&(u(!1),m(!0)));var a}})):null))),Object(v.jsx)(s.EuiFlexItem,{grow:!1},!0===o&&!1===t?Object(v.jsx)(s.EuiFormRow,{fullWidth:!0,label:Object(v.jsx)(s.EuiText,{size:"s"},Object(v.jsx)("strong",null,r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.onFailureHeadingLabel",{defaultMessage:"Actions to take on failure"}))),labelAppend:Object(v.jsx)(s.EuiFlexGroup,{gutterSize:"xs",justifyContent:"flexEnd"},Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(s.EuiButtonEmpty,{iconType:"pencil",size:"xs",onClick:()=>{u(!d)}},d?Ke:Xe)),Object(v.jsx)(s.EuiFlexItem,{grow:!1},d?Object(v.jsx)(mt,{onClick:()=>{e({onFailure:JSON.parse(b)}),u(!1)},disabled:!1===p}):null),Object(v.jsx)(s.EuiFlexItem,{grow:!1},d?Object(v.jsx)(s.EuiButtonEmpty,{size:"xs",onClick:()=>{f(JSON.stringify([{set:{description:"Index document to 'failed-'",field:"_index",value:"failed-{{{ _index }}}"}},{set:{field:"event.timestamp",value:"{{{ _ingest.timestamp }}}"}},{set:{field:"event.failure.message",value:"{{{ _ingest.on_failure_message }}}"}},{set:{field:"event.failure.processor_type",value:"{{{ _ingest.on_failure_processor_type }}}"}},{set:{field:"event.failure.processor_tag",value:"{{{ _ingest.on_failure_processor_tag }}}"}},{set:{field:"event.failure.pipeline",value:"{{{ _ingest.on_failure_pipeline }}}"}}],null,2)),m(!0)}},r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.resetOnFailureButton",{defaultMessage:"Reset"})):null)),helpText:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.advanced.onFailureHelpText",defaultMessage:"In case of failure, this configuration stores the document, provides the timestamp at which ingest failed, and the context for the failure."})},Object(v.jsx)(n.a.Fragment,null,d?null:Object(v.jsx)(s.EuiCodeBlock,{isCopyable:!0,overflowHeight:350,css:gt},JSON.stringify(a,null,2)),d?Object(v.jsx)(nt.CodeEditor,{height:300,languageId:"json",options:{automaticLayout:!0,lineNumbers:"off",tabSize:2},value:b,onChange:e=>{f(e);const t=Object(pt.c)(e);m(t)}}):null)):null))))))}));var jt=a(35);function xt(e){const{condition:t,fieldMap:a,ignoreFailure:i,inferenceConfig:n,modelId:s,onFailure:o,pipelineDescription:r,tag:l,targetField:c}=e;return{description:r,processors:[{inference:{model_id:s,ignore_failure:i,...c&&""!==c?{target_field:c}:{},...a&&Object.keys(a).length>0?{field_map:a}:{},...n&&Object.keys(n).length>0?{inference_config:n}:{},...t&&""!==t?{if:t}:{},...l&&""!==l?{tag:l}:{},...o&&Object.keys(o).length>0?{on_failure:o}:{}}}]}}const vt=Object(i.memo)((({state:e,sourceIndex:t})=>{const[a,o]=Object(i.useState)(),[c,d]=Object(i.useState)(),[u,p]=Object(i.useState)(""),[m,b]=Object(i.useState)(!0),{esSearch:f,trainedModels:{trainedModelPipelineSimulate:g}}=Object(C.c)(),{notifications:{toasts:h}}=Object(C.d)(),j=Object(s.useIsWithinMaxBreakpoint)("s"),x=e=>{p(e);const t=Object(pt.c)(e);b(t)},y=Object(i.useCallback)((async()=>{let e,a=[];try{e=await f({index:t,body:{size:1}}),e&&e.hits.total.value>0&&(a=e.hits.hits)}catch(e){console.error(e)}p(JSON.stringify(a,null,2)),b(!0)}),[t,f]);return Object(i.useEffect)((function(){t&&y()}),[t,y]),Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiFlexGroup,{direction:"column",gutterSize:"xs"},Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiTitle,{size:"s"},Object(v.jsx)("h4",null,r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.test.title",{defaultMessage:"Test the pipeline results"})))),Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiText,{color:"subdued",size:"s"},Object(v.jsx)("p",null,Object(v.jsx)("strong",null,r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.test.optionalCallout",{defaultMessage:"This is an optional step."}))," ",Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.test.description",defaultMessage:"Run a simulation of the pipeline to confirm it produces the anticipated results."})," ",e.targetField&&Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.test.targetFieldHint",defaultMessage:"Check for the target field {targetField} for the prediction in the Result tab.",values:{targetField:Object(v.jsx)(s.EuiCode,null,e.targetField)}}))))),Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)(s.EuiPanel,{hasBorder:!1,hasShadow:!1},Object(v.jsx)(s.EuiFlexGroup,{direction:"column",gutterSize:"xs"},Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiFlexGroup,{gutterSize:"s",alignItems:"center"},Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)("div",null,Object(v.jsx)(s.EuiButton,{onClick:async()=>{try{const t=xt(e),a=await g(t,JSON.parse(u));o(a)}catch(e){console.error(e);const t=Object(ge.c)(e);d(e),h.danger({title:r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.test.errorSimulatingPipeline",{defaultMessage:"Unable to simulate pipeline."}),body:t.message,toastLifeTimeMs:5e3})}},disabled:""===u||!m},r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.test.runButton",{defaultMessage:"Simulate pipeline"})))),Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(s.EuiButtonEmpty,{size:"xs",onClick:()=>{o(void 0),d(void 0)},disabled:void 0===a},r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.test.clearResultsButton",{defaultMessage:"Clear results"}))),Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(s.EuiButtonEmpty,{size:"xs",onClick:y,disabled:""===u},r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.test.resetSampleDocsButton",{defaultMessage:"Reset sample docs"})))),Object(v.jsx)(s.EuiSpacer,{size:"m"})),Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiFlexGroup,null,Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiText,null,Object(v.jsx)("h5",null,r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.test.subtitle.documents",{defaultMessage:"Raw document"})))),Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiText,null,Object(v.jsx)("h5",null,r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.test.subtitle.result",{defaultMessage:"Result"})))))),Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiResizableContainer,{direction:j?"vertical":"horizontal",css:Object(v.css)("min-height:calc(",jt.euiThemeVars.euiSizeXL," * 10);","")},((e,t)=>Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(e,{grow:!0,hasBorder:!0,initialSize:50,paddingSize:"xs"},Object(v.jsx)(nt.CodeEditor,{languageId:"json",options:{automaticLayout:!0,lineNumbers:"off",tabSize:2},value:u,onChange:x})),Object(v.jsx)(t,null),Object(v.jsx)(e,{grow:!1,hasBorder:!0,initialSize:50,paddingSize:"xs"},Object(v.jsx)(s.EuiCodeBlock,{language:"json",isCopyable:!0,className:"reviewCodeBlock"},c?JSON.stringify(c,null,2):a?JSON.stringify(a,null,2):"{}")))))),Object(v.jsx)(s.EuiSpacer,null))))})),yt=({inferencePipeline:e,modelType:t,pipelineName:a,pipelineCreated:o,pipelineError:c})=>{var d,u;const{services:{application:p,docLinks:{links:m}}}=Object(C.d)(),b="regression"===t?m.ingest.inferenceRegression:m.ingest.inferenceClassification,f=Object(i.useMemo)((()=>Object(s.htmlIdGenerator)()()),[]),g=Object(i.useMemo)((()=>Object(v.jsx)(s.EuiCodeBlock,{language:"json",isCopyable:!0,overflowHeight:"400px"},JSON.stringify(null!=e?e:{},null,2))),[e]);return Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiFlexGroup,{direction:"column",gutterSize:"s"},Object(v.jsx)(s.EuiFlexItem,{grow:3},!1===o?Object(v.jsx)(s.EuiTitle,{size:"s"},Object(v.jsx)("h4",null,r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.review.title",{defaultMessage:"Review the pipeline configuration for '{pipelineName}'",values:{pipelineName:a}}))):null,Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiSpacer,{size:"s"}),!0===o&&void 0===c?Object(v.jsx)(s.EuiCallOut,{title:r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.create.successMessage",{defaultMessage:"'{pipelineName}' has been created successfully.",values:{pipelineName:a}}),color:"success",iconType:"check"},Object(v.jsx)("p",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.create.reIndexingMessage",defaultMessage:"You can use this pipeline to infer against new data or infer against existing data by {reindexLink} with the pipeline.",values:{reindexLink:Object(v.jsx)(s.EuiLink,{href:m.upgradeAssistant.reindexWithPipeline,target:"_blank",external:!0},"reindexing")}}),null!==(d=p.capabilities.management)&&void 0!==d&&null!==(u=d.ingest)&&void 0!==u&&u.ingest_pipelines?Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.create.ingestPipelinesManagementMessage",defaultMessage:" Navigate to {pipelineManagementLink} to view and manage pipelines.",values:{pipelineManagementLink:Object(v.jsx)(s.EuiLink,{onClick:async()=>{await p.navigateToApp("management",{path:`/ingest/ingest_pipelines/?pipeline=${a}`,openInNewTab:!0})},target:"_blank",external:!0},"Ingest Pipelines")}}):null)):null,void 0!==c?Object(v.jsx)(s.EuiCallOut,{title:r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.create.failureMessage",{defaultMessage:"Unable to create '{pipelineName}'.",values:{pipelineName:a}}),color:"danger",iconType:"error"},Object(v.jsx)("p",null,c),Object(v.jsx)("p",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.create.docLinkInErrorMessage",defaultMessage:"Learn more about {ingestPipelineConfigLink} and {inferencePipelineConfigLink} configuration.",values:{ingestPipelineConfigLink:Object(v.jsx)(s.EuiLink,{href:m.ingest.pipelines,external:!0,target:"_blank"},"ingest pipeline"),inferencePipelineConfigLink:Object(v.jsx)(s.EuiLink,{href:t?b:m.ingest.inference,external:!0,target:"_blank"},"inference processor")}}))):null)),Object(v.jsx)(s.EuiFlexItem,{grow:7},Object(v.jsx)(s.EuiText,{color:"subdued",size:"s"},Object(v.jsx)("p",null,o?null:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.review.description",defaultMessage:"This pipeline will be created with the configuration below."})))),Object(v.jsx)(s.EuiFlexItem,{grow:!0},o?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)(s.EuiAccordion,{id:f,buttonContent:Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.steps.review.viewConfig",defaultMessage:"View configuration"})},g)):[g])))},Ot=({onClose:e,model:t})=>{var a;const n=Object(i.useMemo)((()=>(e=>{var t;const a=at(e);let i;return void 0!==a&&(i=e.inference_config?`ml.inference.${e.inference_config[a].results_field}`:void 0),{condition:void 0,creatingPipeline:!1,error:!1,fieldMap:void 0,ignoreFailure:!1,inferenceConfig:e.inference_config,modelId:e.model_id,onFailure:[{set:{description:"Index document to 'failed-'",field:"_index",value:"failed-{{{ _index }}}"}},{set:{field:"event.timestamp",value:"{{{ _ingest.timestamp }}}"}},{set:{field:"event.failure.message",value:"{{{ _ingest.on_failure_message }}}"}},{set:{field:"event.failure.processor_type",value:"{{{ _ingest.on_failure_processor_type }}}"}},{set:{field:"event.failure.processor_tag",value:"{{{ _ingest.on_failure_processor_tag }}}"}},{set:{field:"event.failure.pipeline",value:"{{{ _ingest.on_failure_pipeline }}}"}}],pipelineDescription:`Uses the pre-trained data frame analytics model ${e.model_id} to infer against the data that is being ingested in the pipeline`,pipelineName:`ml-inference-${e.model_id}`,pipelineCreated:!1,tag:void 0,takeActionOnFailure:!0,targetField:null!==(t=i)&&void 0!==t?t:""}})(t)),[t.model_id]),[o,l]=Object(i.useState)(n),[c,d]=Object(i.useState)(Ge.DETAILS),[u,p]=Object(i.useState)(!1),{trainedModels:{createInferencePipeline:m}}=Object(C.c)(),b=at(t),f=(()=>{const[e,t]=Object(i.useState)([]),{notifications:{toasts:a}}=Object(C.d)(),{trainedModels:{getAllIngestPipelines:n}}=Object(C.c)();return Object(i.useEffect)((()=>{!async function(){let e=[];try{const a=await n();e=Object.keys(a),t(e)}catch(e){a.danger({title:r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.fetchIngestPipelinesError",{defaultMessage:"Unable to fetch ingest pipelines."}),body:e.message,toastLifeTimeMs:5e3})}}()}),[n,a]),e})(),g=e=>{l({...o,...e})},{pipelineName:h,targetField:j}=Object(i.useMemo)((()=>((e,t)=>{const a={};var i;return 0===e.trim().length||""===e?a.pipelineName=ot:(i=e).length>0&&ut.test(i)||(a.pipelineName=st),void 0!==t.find((t=>t===e))&&(a.pipelineName=lt),a})(o.pipelineName,f)),[f,o.pipelineName]),x=Object(i.useMemo)((()=>{var e,a,i;return Array.isArray(null===(e=t.metadata)||void 0===e?void 0:e.analytics_config.source.index)?null===(a=t.metadata)||void 0===a?void 0:a.analytics_config.source.index.join():null===(i=t.metadata)||void 0===i?void 0:i.analytics_config.source.index}),[null==t?void 0:t.model_id]);return Object(v.jsx)(s.EuiFlyout,{onClose:e,className:"mlTrainedModelsInferencePipelineFlyout",size:"l"},Object(v.jsx)(s.EuiFlyoutHeader,null,Object(v.jsx)(s.EuiTitle,{size:"m"},Object(v.jsx)("h3",null,r.i18n.translate("xpack.ml.trainedModels.content.indices.pipelines.addInferencePipelineModal.title",{defaultMessage:"Deploy analytics model"})))),Object(v.jsx)(s.EuiFlyoutBody,null,Object(v.jsx)(tt,{step:c,setStep:d,isDetailsStepValid:void 0===h&&void 0===j,isConfigureProcessorStepValid:!1===u}),Object(v.jsx)(s.EuiSpacer,{size:"m"}),c===Ge.DETAILS&&Object(v.jsx)(it,{handlePipelineConfigUpdate:g,pipelineName:o.pipelineName,pipelineNameError:h,pipelineDescription:o.pipelineDescription,modelId:t.model_id,targetField:o.targetField,targetFieldError:j}),c===Ge.CONFIGURE_PROCESSOR&&t&&Object(v.jsx)(ft,{condition:o.condition,fieldMap:o.fieldMap,handleAdvancedConfigUpdate:g,inferenceConfig:o.inferenceConfig,modelInferenceConfig:t.inference_config,modelInputFields:null!==(a=t.input)&&void 0!==a?a:[],modelType:b,setHasUnsavedChanges:p,tag:o.tag}),c===Ge.ON_FAILURE&&Object(v.jsx)(ht,{ignoreFailure:o.ignoreFailure,takeActionOnFailure:o.takeActionOnFailure,handleAdvancedConfigUpdate:g,onFailure:o.onFailure}),c===Ge.TEST&&Object(v.jsx)(vt,{sourceIndex:x,state:o}),c===Ge.CREATE&&Object(v.jsx)(yt,{inferencePipeline:xt(o),modelType:b,pipelineName:o.pipelineName,pipelineCreated:o.pipelineCreated,pipelineError:o.pipelineError})),Object(v.jsx)(s.EuiFlyoutFooter,{className:"mlTrainedModelsInferencePipelineFlyoutFooter"},Object(v.jsx)(Ze,{onClose:e,onCreate:async()=>{l({...o,creatingPipeline:!0});try{await m(o.pipelineName,xt(o)),l({...o,pipelineCreated:!0,creatingPipeline:!1,pipelineError:void 0})}catch(t){var e;console.error(t);const a=Object(ge.c)(t);l({...o,creatingPipeline:!1,pipelineError:null!==(e=a.message)&&void 0!==e?e:t.message})}},step:c,setStep:d,isDetailsStepValid:void 0===h&&void 0===j,isConfigureProcessorStepValid:!1===u,pipelineCreated:o.pipelineCreated,creatingPipeline:o.creatingPipeline})))},Et=({pageState:e,updatePageState:t})=>{var a;const{services:{application:{capabilities:E}}}=Object(C.d)();Object(p.i)({timeRangeSelector:!1,autoRefreshSelector:!0});const w=Object(Ve.a)(c.FIELD_FORMAT_IDS.DATE),[M,S]=Object(u.c)(k.b.TRAINED_MODELS_MANAGE,{pageIndex:0,pageSize:10,sortField:St.id,sortDirection:"asc"}),[_,F]=e&&t?[e,t]:[M,S],I=Object(Je.a)(),D=null!==(a=_.queryText)&&void 0!==a?a:"",A=E.ml.canDeleteTrainedModels,L=Object(j.b)(),{displayErrorToast:R}=Object(O.c)(),[N,P]=Object(i.useState)(!1),[z,B]=Object(i.useState)(!1),[V,J]=Object(i.useState)([]),[U,G]=Object(i.useState)([]),[q,$]=Object(i.useState)([]),[W,H]=Object(i.useState)(),[Y,X]=Object(i.useState)({}),[Q,K]=Object(i.useState)(null),Z=Object(i.useCallback)((e=>e.tags.includes(m.a)),[]),ee=Object(i.useCallback)((e=>e.tags.includes(f.e)),[]),te=Object(i.useCallback)((async e=>{try{var t;return!(null===(t=(await L.getTrainedModels(e,{include:"definition_status"}))[0])||void 0===t||!t.fully_defined)}catch(e){R(e,r.i18n.translate("xpack.ml.trainedModels.modelsList.downloadStatusCheckErrorMessage",{defaultMessage:"Failed to check download status"}))}return!1}),[L,R]),ae=Object(i.useCallback)((async()=>{B(!0);try{const e=await L.getTrainedModels(void 0,{with_pipelines:!0}),t=[],a=[];for(const i of e){const e={...i,..."object"==typeof i.inference_config?{type:[i.model_type,...Object.keys(i.inference_config),...Z(i)?[m.b]:[],...ee(i)?[f.f]:[]]}:{}};t.push(e),Y[i.model_id]&&a.push(e)}await ne(t),J(t),a.length>0&&(await ne(a),X(a.reduce(((e,t)=>(e[t.model_id]=Object(v.jsx)(ze.a,{item:t}),e)),{})))}catch(e){R(e,r.i18n.translate("xpack.ml.trainedModels.modelsList.fetchFailedErrorMessage",{defaultMessage:"Models fetch failed"}))}P(!0),B(!1)}),[Y]);Object(i.useEffect)((function(){I&&ae()}),[I]);const ie=Object(i.useMemo)((()=>({total:{show:!0,value:V.length,label:r.i18n.translate("xpack.ml.trainedModels.modelsList.totalAmountLabel",{defaultMessage:"Total trained models"})}})),[V]),ne=Object(i.useCallback)((async e=>{try{if(e){const{trained_model_stats:t}=await L.getTrainedModelStats(),a=Object(o.groupBy)(t,"model_id");e.forEach((e=>{var t,i;const n=a[e.model_id];e.stats={...null!==(t=e.stats)&&void 0!==t?t:{},...n[0],deployment_stats:n.map((e=>e.deployment_stats)).filter(b.a)},e.deployment_ids=n.map((e=>{var t;return null===(t=e.deployment_stats)||void 0===t?void 0:t.deployment_id})).filter(b.a),e.state=null!==(i=e.stats.deployment_stats)&&void 0!==i&&i.some((e=>e.state===m.c.STARTED))?m.c.STARTED:null}));const i=e.filter((e=>f.d.hasOwnProperty(e.model_id)));if(i.length>0)for(const e of i){if(e.state===f.g.STARTED)continue;const t=await te(e.model_id);e.state=t?f.g.DOWNLOADED:f.g.DOWNLOADING}}return!0}catch(e){return R(e,r.i18n.translate("xpack.ml.trainedModels.modelsList.fetchModelStatsErrorMessage",{defaultMessage:"Fetch model stats failed"})),!1}}),[]),se=Object(i.useMemo)((()=>[...V.reduce(((e,t)=>{const a=t.inference_config&&Object.keys(t.inference_config)[0];return a&&e.add(a),e.add(t.model_type),e}),new Set)].sort(((e,t)=>e.localeCompare(t))).map((e=>({value:e,name:e})))),[V]),oe=Object(i.useMemo)((()=>[...new Set([...V.flatMap((e=>e.deployment_ids)),...V.map((e=>e.model_id))])]),[V]),re=function({onTestAction:e,onModelsDeleteRequest:t,onModelDeployRequest:a,onLoading:o,isLoading:l,fetchModels:c,modelAndDeploymentIds:u}){const{services:{application:{navigateToUrl:p,capabilities:b},overlays:g,theme:E,i18n:w,docLinks:M,mlServices:{mlApiServices:S}}}=Object(C.d)(),[_,F]=Object(i.useState)(!1),I=M.links.ml.startTrainedModelsDeployment,D=Object(C.h)(),{displayErrorToast:A,displaySuccessToast:L}=Object(O.c)(),R=Object(C.g)(),N=Object(j.b)(),P=b.ml.canStartStopTrainedModels,z=b.ml.canTestTrainedModels,B=b.ml.canDeleteTrainedModels;Object(i.useEffect)((()=>{let e=!0;return S.hasPrivileges({cluster:["manage_ingest_pipelines"]}).then((t=>{var a;const i=null===(a=t.cluster)||void 0===a?void 0:a.manage_ingest_pipelines;e&&F(i)})),()=>{e=!1}}),[S]);const V=Object(i.useMemo)((()=>((e,t,a)=>async i=>new Promise((async(n,s)=>{try{const o=e.openModal(Object(x.a)(Object(v.jsx)(y,{model:i,onCancel:()=>{o.close(),s()},onConfirm:e=>{o.close(),n(e)}}),{theme:t,i18n:a}))}catch(e){s()}})))(g,E,w)),[w,g,E]),J=Object(i.useMemo)((()=>((e,t,a,i)=>(n,s,o)=>new Promise((async r=>{try{const l=e.openModal(Object(x.a)(Object(v.jsx)(T,{startModelDeploymentDocUrl:i,initialParams:s,modelAndDeploymentIds:o,model:n,onConfigChange:e=>{l.close();const t={...e};"low"===t.priority&&(t.numOfAllocations=1,t.threadsPerAllocations=1),r(t)},onClose:()=>{l.close(),r()}}),{theme:t,i18n:a}))}catch(e){r()}})))(g,E,w,I)),[g,E,w,I]),U=Object(i.useCallback)((e=>e.tags.includes(m.a)),[]);return Object(i.useMemo)((()=>[{name:r.i18n.translate("xpack.ml.trainedModels.modelsList.viewTrainingDataActionLabel",{defaultMessage:"View training data"}),description:r.i18n.translate("xpack.ml.trainedModels.modelsList.viewTrainingDataActionLabel",{defaultMessage:"View training data"}),icon:"visTable",type:"icon",available:e=>{var t,a;return!(null===(t=e.metadata)||void 0===t||null===(a=t.analytics_config)||void 0===a||!a.id)},onClick:async e=>{var t,a,i,n;if(void 0===(null===(t=e.metadata)||void 0===t?void 0:t.analytics_config))return;const s=Object(h.s)(null===(a=e.metadata)||void 0===a?void 0:a.analytics_config.analysis),o=await R.getUrl({page:k.b.DATA_FRAME_ANALYTICS_EXPLORATION,pageState:{jobId:null===(i=e.metadata)||void 0===i?void 0:i.analytics_config.id,analysisType:s,..."classification"===s||"regression"===s?{queryText:`${null===(n=e.metadata)||void 0===n?void 0:n.analytics_config.dest.results_field}.is_training : true`}:{}}});await p(o)},isPrimary:!0},{name:r.i18n.translate("xpack.ml.inference.modelsList.analyticsMapActionLabel",{defaultMessage:"Analytics map"}),description:r.i18n.translate("xpack.ml.inference.modelsList.analyticsMapActionLabel",{defaultMessage:"Analytics map"}),icon:"graphApp",type:"icon",isPrimary:!0,available:e=>{var t,a;return!(null===(t=e.metadata)||void 0===t||null===(a=t.analytics_config)||void 0===a||!a.id)},onClick:async e=>{const t=await R.getUrl({page:k.b.DATA_FRAME_ANALYTICS_MAP,pageState:{modelId:e.model_id}});await D(t,!1)}},{name:r.i18n.translate("xpack.ml.inference.modelsList.startModelDeploymentActionLabel",{defaultMessage:"Start deployment"}),description:r.i18n.translate("xpack.ml.inference.modelsList.startModelDeploymentActionLabel",{defaultMessage:"Start deployment"}),"data-test-subj":"mlModelsTableRowStartDeploymentAction",icon:"play",type:"icon",isPrimary:!0,enabled:e=>P&&!l&&e.state!==f.g.DOWNLOADING,available:e=>e.model_type===m.e.PYTORCH,onClick:async e=>{const t=await J(e,void 0,u);if(t)try{o(!0),await N.startModelAllocation(e.model_id,{number_of_allocations:t.numOfAllocations,threads_per_allocation:t.threadsPerAllocations,priority:t.priority,deployment_id:t.deploymentId?t.deploymentId:e.model_id}),L(r.i18n.translate("xpack.ml.trainedModels.modelsList.startSuccess",{defaultMessage:'Deployment for "{modelId}" has been started successfully.',values:{modelId:e.model_id}})),await c()}catch(t){A(t,r.i18n.translate("xpack.ml.trainedModels.modelsList.startFailed",{defaultMessage:'Failed to start "{modelId}"',values:{modelId:e.model_id}})),o(!1)}}},{name:r.i18n.translate("xpack.ml.inference.modelsList.updateModelDeploymentActionLabel",{defaultMessage:"Update deployment"}),description:r.i18n.translate("xpack.ml.inference.modelsList.updateModelDeploymentActionLabel",{defaultMessage:"Update deployment"}),"data-test-subj":"mlModelsTableRowUpdateDeploymentAction",icon:"documentEdit",type:"icon",isPrimary:!1,available:e=>{var t,a;return e.model_type===m.e.PYTORCH&&P&&!l&&!(null===(t=e.stats)||void 0===t||null===(a=t.deployment_stats)||void 0===a||!a.some((e=>e.state===m.c.STARTED)))},onClick:async e=>{const t=e.deployment_ids[0],a=await J(e,{deploymentId:t,numOfAllocations:e.stats.deployment_stats.find((e=>e.deployment_id===t)).number_of_allocations});if(a)try{o(!0),await N.updateModelDeployment(e.model_id,a.deploymentId,{number_of_allocations:a.numOfAllocations}),L(r.i18n.translate("xpack.ml.trainedModels.modelsList.updateSuccess",{defaultMessage:'Deployment for "{modelId}" has been updated successfully.',values:{modelId:e.model_id}})),await c()}catch(t){A(t,r.i18n.translate("xpack.ml.trainedModels.modelsList.updateFailed",{defaultMessage:'Failed to update "{modelId}"',values:{modelId:e.model_id}})),o(!1)}}},{name:r.i18n.translate("xpack.ml.inference.modelsList.stopModelDeploymentActionLabel",{defaultMessage:"Stop deployment"}),description:r.i18n.translate("xpack.ml.inference.modelsList.stopModelDeploymentActionLabel",{defaultMessage:"Stop deployment"}),"data-test-subj":"mlModelsTableRowStopDeploymentAction",icon:"stop",type:"icon",isPrimary:!0,available:e=>e.model_type===m.e.PYTORCH,enabled:e=>P&&!l&&e.deployment_ids.length>0,onClick:async e=>{const t=Object(d.a)(e.pipelines),a=e.deployment_ids.length>1;let i=e.deployment_ids;if(t||a)try{i=await V(e)}catch(e){return}try{o(!0);const a=await N.stopModelAllocation(e.model_id,i,{force:t});L(r.i18n.translate("xpack.ml.trainedModels.modelsList.stopSuccess",{defaultMessage:'{numberOfDeployments, plural, one {Deployment} other {Deployments}} for "{modelId}" has been stopped successfully.',values:{modelId:e.model_id,numberOfDeployments:i.length}})),Object.values(a).some((e=>void 0!==e.error))&&Object.entries(a).forEach((([e,t])=>{void 0!==t.error&&A(t.error,r.i18n.translate("xpack.ml.trainedModels.modelsList.stopDeploymentWarning",{defaultMessage:'Failed to stop "{deploymentId}"',values:{deploymentId:e}}))}))}catch(t){A(t,r.i18n.translate("xpack.ml.trainedModels.modelsList.stopFailed",{defaultMessage:'Failed to stop "{modelId}"',values:{modelId:e.model_id}})),o(!1)}await c()}},{name:r.i18n.translate("xpack.ml.inference.modelsList.downloadModelActionLabel",{defaultMessage:"Download model"}),description:r.i18n.translate("xpack.ml.inference.modelsList.downloadModelActionLabel",{defaultMessage:"Download model"}),"data-test-subj":"mlModelsTableRowDownloadModelAction",icon:"download",type:"icon",isPrimary:!0,available:e=>e.tags.includes(f.e),enabled:e=>!e.state&&!l,onClick:async e=>{try{o(!0),await N.putTrainedModelConfig(e.model_id,e.putModelConfig),L(r.i18n.translate("xpack.ml.trainedModels.modelsList.downloadSuccess",{defaultMessage:'"{modelId}" model download has been started successfully.',values:{modelId:e.model_id}})),await c()}catch(t){A(t,r.i18n.translate("xpack.ml.trainedModels.modelsList.downloadFailed",{defaultMessage:'Failed to download "{modelId}"',values:{modelId:e.model_id}})),o(!1)}}},{name:e=>{const t=e.state===f.g.STARTED;return Object(v.jsx)(s.EuiToolTip,{position:"left",content:t?r.i18n.translate("xpack.ml.trainedModels.modelsList.deleteDisabledWithDeploymentsTooltip",{defaultMessage:"Model has started deployments"}):null},Object(v.jsx)(n.a.Fragment,null,r.i18n.translate("xpack.ml.trainedModels.modelsList.deployModelActionLabel",{defaultMessage:"Deploy model"})))},description:r.i18n.translate("xpack.ml.trainedModels.modelsList.deployModelActionLabel",{defaultMessage:"Deploy model"}),"data-test-subj":"mlModelsTableRowDeployAction",icon:"continuityAbove",type:"icon",isPrimary:!1,onClick:e=>{a(e)},available:e=>{var t;return void 0!==(null===(t=e.metadata)||void 0===t?void 0:t.analytics_config)&&!U(e)&&!e.putModelConfig&&_},enabled:e=>e.state!==f.g.STARTED},{name:e=>{const t=e.state===f.g.STARTED;return Object(v.jsx)(s.EuiToolTip,{position:"left",content:t?r.i18n.translate("xpack.ml.trainedModels.modelsList.deleteDisabledWithDeploymentsTooltip",{defaultMessage:"Model has started deployments"}):null},Object(v.jsx)(n.a.Fragment,null,r.i18n.translate("xpack.ml.trainedModels.modelsList.deleteModelActionLabel",{defaultMessage:"Delete model"})))},description:r.i18n.translate("xpack.ml.trainedModels.modelsList.deleteModelActionLabel",{defaultMessage:"Delete model"}),"data-test-subj":"mlModelsTableRowDeleteAction",icon:"trash",type:"icon",color:"danger",isPrimary:!1,onClick:e=>{t([e])},available:e=>{var t;const a=0===Object.keys(null!==(t=e.pipelines)&&void 0!==t?t:{}).length;return B&&!U(e)&&!e.putModelConfig&&(a||_)},enabled:e=>e.state!==f.g.STARTED},{name:r.i18n.translate("xpack.ml.inference.modelsList.testModelActionLabel",{defaultMessage:"Test model"}),description:r.i18n.translate("xpack.ml.inference.modelsList.testModelActionLabel",{defaultMessage:"Test model"}),"data-test-subj":"mlModelsTableRowTestAction",icon:"inputOutput",type:"icon",isPrimary:!0,available:Le,onClick:t=>e(t),enabled:e=>z&&Le(e,!0)&&!l}]),[R,p,D,P,l,J,u,o,N,L,c,A,V,t,a,B,U,e,z,_])}({isLoading:z,fetchModels:ae,onTestAction:K,onModelsDeleteRequest:$,onModelDeployRequest:H,onLoading:B,modelAndDeploymentIds:oe}),le=async e=>{const t={...Y};t[e.model_id]?delete t[e.model_id]:(await ne([e]),t[e.model_id]=Object(v.jsx)(ze.a,{item:e})),X(t)},ce=[{align:"left",width:"40px",isExpander:!0,render:e=>e.stats?Object(v.jsx)(s.EuiButtonIcon,{onClick:le.bind(null,e),"aria-label":Y[e.model_id]?r.i18n.translate("xpack.ml.trainedModels.modelsList.collapseRow",{defaultMessage:"Collapse"}):r.i18n.translate("xpack.ml.trainedModels.modelsList.expandRow",{defaultMessage:"Expand"}),iconType:Y[e.model_id]?"arrowDown":"arrowRight"}):null,"data-test-subj":"mlModelsTableRowDetailsToggle"},{field:St.id,name:r.i18n.translate("xpack.ml.trainedModels.modelsList.modelIdHeader",{defaultMessage:"ID"}),sortable:!0,truncateText:!1,"data-test-subj":"mlModelsTableColumnId"},{field:St.description,width:"350px",name:r.i18n.translate("xpack.ml.trainedModels.modelsList.modelDescriptionHeader",{defaultMessage:"Description"}),sortable:!1,truncateText:!1,"data-test-subj":"mlModelsTableColumnDescription",render:e=>{if(!e)return null;const t=e.includes("(Tech Preview)");return Object(v.jsx)(n.a.Fragment,null,e.replace("(Tech Preview)",""),t?Object(v.jsx)(g.a,{compressed:!0}):null)}},{field:St.type,name:r.i18n.translate("xpack.ml.trainedModels.modelsList.typeHeader",{defaultMessage:"Type"}),sortable:!0,truncateText:!0,align:"left",render:e=>Object(v.jsx)(s.EuiFlexGroup,{gutterSize:"xs",wrap:!0},e.map((e=>Object(v.jsx)(s.EuiFlexItem,{key:e,grow:!1},Object(v.jsx)(s.EuiBadge,{color:"hollow","data-test-subj":"mlModelType"},e))))),"data-test-subj":"mlModelsTableColumnType"},{field:"state",name:r.i18n.translate("xpack.ml.trainedModels.modelsList.stateHeader",{defaultMessage:"State"}),align:"left",truncateText:!1,render:e=>e?Object(v.jsx)(s.EuiBadge,{color:"hollow"},e):null,"data-test-subj":"mlModelsTableColumnDeploymentState"},{field:St.createdAt,name:r.i18n.translate("xpack.ml.trainedModels.modelsList.createdAtHeader",{defaultMessage:"Created at"}),dataType:"date",render:e=>w(e),sortable:!0,"data-test-subj":"mlModelsTableColumnCreatedAt"},{name:r.i18n.translate("xpack.ml.trainedModels.modelsList.actionsHeader",{defaultMessage:"Actions"}),actions:re,"data-test-subj":"mlModelsTableColumnActions"}],de=se&&se.length>0?[{type:"field_value_selection",field:"type",name:r.i18n.translate("xpack.ml.dataframe.analyticsList.typeFilter",{defaultMessage:"Type"}),multiSelect:"or",options:se}]:[],ue=Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(s.EuiFlexGroup,{justifyContent:"spaceBetween",alignItems:"center"},Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(s.EuiTitle,{size:"s"},Object(v.jsx)("h5",null,Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.selectedModelsMessage",defaultMessage:"{modelsCount, plural, one{# model} other {# models}} selected",values:{modelsCount:U.length}})))),Object(v.jsx)(s.EuiFlexItem,null,Object(v.jsx)(s.EuiButton,{color:"danger",onClick:$.bind(null,U)},Object(v.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.deleteModelsButtonLabel",defaultMessage:"Delete"}))))),pe=A?{selectableMessage:(e,t)=>e?r.i18n.translate("xpack.ml.trainedModels.modelsList.selectableMessage",{defaultMessage:"Select a model"}):Object(d.a)(t.pipelines)?r.i18n.translate("xpack.ml.trainedModels.modelsList.disableSelectableMessage",{defaultMessage:"Model has associated pipelines"}):Z(t)?r.i18n.translate("xpack.ml.trainedModels.modelsList.builtInModelMessage",{defaultMessage:"Built-in model"}):"",selectable:e=>!(Object(d.a)(e.pipelines)||Z(e)||ee(e)&&!e.state),onSelectionChange:e=>{G(e)}}:void 0,{onTableChange:me,pagination:be,sorting:fe}=Object(Be.a)(V.length,_,F),ge={query:D,onChange:e=>null===e.error&&(F({queryText:e.queryText,pageIndex:0}),!0),box:{incremental:!0},...se&&se.length>0?{filters:de}:{},...U.length>0?{toolsLeft:ue}:{}},he=Object(i.useMemo)((()=>{const e=new Set(V.map((e=>e.model_id))),t=Object.entries(f.d).filter((([t])=>!e.has(t))).map((([e,t])=>({model_id:e,type:[f.f],tags:[f.e],putModelConfig:t.config,description:t.description})));return[...V,...t]}),[V]);return N?Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(Ue.a,{onCloseFlyout:ae,forceRefresh:z}),Object(v.jsx)(s.EuiFlexGroup,{justifyContent:"spaceBetween"},ie&&Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(s.EuiFlexItem,{grow:!1},Object(v.jsx)(Re.a,{stats:ie,dataTestSub:"mlInferenceModelsStatsBar"})))),Object(v.jsx)(s.EuiSpacer,{size:"m"}),Object(v.jsx)("div",{"data-test-subj":"mlModelsTableContainer"},Object(v.jsx)(s.EuiInMemoryTable,{allowNeutralSort:!1,columns:ce,hasActions:!0,isExpandable:!0,itemIdToExpandedRowMap:Y,isSelectable:!1,items:he,itemId:St.id,loading:z,search:ge,selection:pe,rowProps:e=>({"data-test-subj":`mlModelsTableRow row-${e.model_id}`}),pagination:be,onTableChange:me,sorting:fe,"data-test-subj":z?"mlModelsTable loading":"mlModelsTable loaded"})),q.length>0&&Object(v.jsx)(Pe,{onClose:e=>{$([]),e&&ae()},models:q}),null===Q?null:Object(v.jsx)(De,{model:Q,onClose:K.bind(null,null)}),void 0!==W?Object(v.jsx)(Ot,{onClose:H.bind(null,void 0),model:W}):null):null};var wt={name:"1gz2b5f",styles:"overflow:hidden;text-overflow:ellipsis"};const Mt=({id:e})=>{const t=Object(C.f)({page:k.b.TRAINED_MODELS_MANAGE,pageState:{modelId:e}});return Object(v.jsx)(s.EuiLink,{href:t,css:wt,title:e},e)},St={id:"model_id",description:"description",createdAt:"create_time",type:"type",modelType:"model_type"}},function(e,t,a){"use strict";a.d(t,"c",(function(){return J})),a.d(t,"b",(function(){return U})),a.d(t,"d",(function(){return G})),a.d(t,"a",(function(){return $})),a.d(t,"e",(function(){return W}));var i=a(2),n=a.n(i),s=a(6),o=a(15),r=a(28),l=a(99),c=a(125),d=a(102),u=a(222),p=a(363),m=a(356),b=a(9),f=a(12),g=a(101),h=a(31),j=a(122),x=a(359),v=a(4);let y;const O=({closeFlyout:e,item:t})=>{const{id:a,config:o}=t,{state:c}=t.stats,d=void 0!==o.allow_lazy_start?String(o.allow_lazy_start):"",[u,p]=Object(i.useState)(d),[m,O]=Object(i.useState)(o.description||""),[E,w]=Object(i.useState)(o.model_memory_limit),[M,S]=Object(i.useState)(),[_,T]=Object(i.useState)(o.max_num_threads),[C,k]=Object(i.useState)("job-details"),[F,I]=Object(i.useState)([]),[D,A]=Object(i.useState)(),{services:{notifications:L}}=Object(b.d)(),{refresh:R}=Object(j.n)(),N=Object(b.c)(),{dataFrameAnalytics:{getDataFrameAnalytics:P}}=N,z=Object(g.c)(),B=void 0!==M||0===_;Object(i.useEffect)((()=>{if(void 0===y&&(y=Object(h.d)()),""!==E){const e=y(E);null!==e&&e.invalidUnits?S(s.i18n.translate("xpack.ml.dataframe.analytics.create.modelMemoryUnitsInvalidError",{defaultMessage:"Model memory limit data unit unrecognized. It must be {str}",values:{str:e.invalidUnits.allowedUnits}})):S(void 0)}else S(s.i18n.translate("xpack.ml.dataframe.analytics.create.modelMemoryEmptyError",{defaultMessage:"Model memory limit must not be empty"}))}),[E]),Object(i.useEffect)((function(){P(a).then((e=>{if(e.data_frame_analytics.length){var t;const a=e.data_frame_analytics[0];A(a),null!==(t=a._meta)&&void 0!==t&&t.custom_urls&&I(a._meta.custom_urls)}}))}),[a,P]);const V=async t=>{try{await f.ml.dataFrameAnalytics.updateDataFrameAnalytics(a,t),L.toasts.addSuccess(s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyoutSuccessMessage",{defaultMessage:"Analytics job {jobId} has been updated.",values:{jobId:a}})),R(),e()}catch(e){console.error(e),z.displayErrorToast(e,s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyoutErrorMessage",{defaultMessage:"Could not save changes to analytics job {jobId}",values:{jobId:a}}))}},J=Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(r.EuiSpacer,null),Object(v.jsx)(r.EuiForm,null,Object(v.jsx)(r.EuiFormRow,{label:s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyout.allowLazyStartLabel",{defaultMessage:"Allow lazy start"})},Object(v.jsx)(r.EuiSelect,{"aria-label":s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyout.allowLazyStartAriaLabel",{defaultMessage:"Update allow lazy start."}),"data-test-subj":"mlAnalyticsEditFlyoutAllowLazyStartInput",options:[{value:"true",text:s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyout.allowLazyStartTrueValue",{defaultMessage:"True"})},{value:"false",text:s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyout.allowLazyStartFalseValue",{defaultMessage:"False"})}],value:u,onChange:e=>p(e.target.value)})),Object(v.jsx)(r.EuiFormRow,{label:s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyout.descriptionLabel",{defaultMessage:"Description"})},Object(v.jsx)(r.EuiFieldText,{"data-test-subj":"mlAnalyticsEditFlyoutDescriptionInput",value:m,onChange:e=>O(e.target.value),"aria-label":s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyout.descriptionAriaLabel",{defaultMessage:"Update the job description."})})),Object(v.jsx)(r.EuiFormRow,{helpText:c!==l.d.STOPPED&&s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyout.modelMemoryHelpText",{defaultMessage:"Model memory limit cannot be edited until the job has stopped."}),label:s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyout.modelMemoryLimitLabel",{defaultMessage:"Model memory limit"}),isInvalid:void 0!==M,error:M},Object(v.jsx)(r.EuiFieldText,{"data-test-subj":"mlAnalyticsEditFlyoutmodelMemoryLimitInput",isInvalid:void 0!==M,readOnly:c!==l.d.STOPPED,value:E,onChange:e=>w(e.target.value),"aria-label":s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyout.modelMemoryLimitAriaLabel",{defaultMessage:"Update the model memory limit."})})),Object(v.jsx)(r.EuiFormRow,{helpText:c!==l.d.STOPPED&&s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyout.maxNumThreadsHelpText",{defaultMessage:"Maximum number of threads cannot be edited until the job has stopped."}),label:s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyout.maxNumThreadsLabel",{defaultMessage:"Maximum number of threads"}),isInvalid:0===_,error:0===_&&s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyout.maxNumThreadsError",{defaultMessage:"The minimum value is 1."})},Object(v.jsx)(r.EuiFieldNumber,{"aria-label":s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyout.maxNumThreadsAriaLabel",{defaultMessage:"Update the maximum number of threads to be used by the analysis."}),"data-test-subj":"mlAnalyticsEditFlyoutMaxNumThreadsLimitInput",onChange:e=>T(""===e.target.value?void 0:+e.target.value),step:1,min:1,readOnly:c!==l.d.STOPPED,value:_})))),U=[{id:"job-details","data-test-subj":"mlEditAnalyticsJobFlyout-jobDetails",name:s.i18n.translate("xpack.ml.dataframe.analyticsList.editJobFlyout.jobDetailsTitle",{defaultMessage:"Job details"}),content:J},{id:"custom-urls","data-test-subj":"mlEditAnalyticsJobFlyout-customUrls",name:s.i18n.translate("xpack.ml.dataframe.analyticsList.editJobFlyout.customUrlsTitle",{defaultMessage:"Custom URLs"}),content:Object(v.jsx)(x.a,{job:D,jobCustomUrls:F,setCustomUrls:I})}],G=Object(i.useMemo)((()=>Object(x.b)(F)),[F]);return Object(v.jsx)(r.EuiFlyout,{onClose:e,hideCloseButton:!0,"aria-labelledby":"analyticsEditFlyoutTitle","data-test-subj":"mlAnalyticsEditFlyout"},Object(v.jsx)(r.EuiFlyoutHeader,{hasBorder:!0},Object(v.jsx)(r.EuiTitle,{size:"m"},Object(v.jsx)("h2",{id:"analyticsEditFlyoutTitle"},s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyoutTitle",{defaultMessage:"Edit {jobId}",values:{jobId:a}})))),Object(v.jsx)(r.EuiFlyoutBody,null,Object(v.jsx)(r.EuiTabbedContent,{tabs:U,initialSelectedTab:U[0],onTabClick:({id:e})=>{k(e)}})),Object(v.jsx)(r.EuiFlyoutFooter,null,Object(v.jsx)(r.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(r.EuiButtonEmpty,{"data-test-subj":"mlAnalyticsEditFlyoutCancelButton",iconType:"cross",onClick:e,flush:"left"},s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyoutCancelButtonText",{defaultMessage:"Cancel"}))),Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(r.EuiButton,{"data-test-subj":"mlAnalyticsEditFlyoutUpdateButton",onClick:async()=>{if("job-details"===C){const e=Object.assign({allow_lazy_start:u,description:m},E&&{model_memory_limit:E},_&&{max_num_threads:_});await V(e)}else if("custom-urls"===C){var e;const t=null!==(e=null==D?void 0:D._meta)&&void 0!==e?e:{};delete t.custom_urls;const a={_meta:{...t,custom_urls:F}};await V(a)}},fill:!0,isDisabled:B||!1===G},s.i18n.translate("xpack.ml.dataframe.analyticsList.editFlyoutUpdateButtonText",{defaultMessage:"Update"}))))))},E=s.i18n.translate("xpack.ml.dataframe.analyticsList.editActionNameText",{defaultMessage:"Edit"}),w=({isDisabled:e})=>e?Object(v.jsx)(r.EuiToolTip,{position:"top",content:s.i18n.translate("xpack.ml.dataframe.analyticsList.editActionPermissionTooltip",{defaultMessage:"You do not have permission to edit analytics jobs."})},Object(v.jsx)(n.a.Fragment,null,E)):Object(v.jsx)(n.a.Fragment,null,E);var M=a(189);const S=s.i18n.translate("xpack.ml.dataframe.analyticsList.startActionNameText",{defaultMessage:"Start"}),_=({canStartStopDataFrameAnalytics:e,isDisabled:t,item:a})=>t?Object(v.jsx)(r.EuiToolTip,{position:"top",content:e?s.i18n.translate("xpack.ml.dataframe.analyticsList.completeBatchAnalyticsToolTip",{defaultMessage:"{analyticsId} is a completed analytics job and cannot be restarted.",values:{analyticsId:a.config.id}}):Object(d.e)("canStartStopDataFrameAnalytics")},Object(v.jsx)(n.a.Fragment,null,S)):Object(v.jsx)(n.a.Fragment,null,S),T=({closeModal:e,item:t,startAndCloseModal:a})=>Object(v.jsx)(n.a.Fragment,null,void 0!==t&&Object(v.jsx)(r.EuiConfirmModal,{title:s.i18n.translate("xpack.ml.dataframe.analyticsList.startModalTitle",{defaultMessage:"Start {analyticsId}?",values:{analyticsId:t.config.id}}),onCancel:e,onConfirm:a,cancelButtonText:s.i18n.translate("xpack.ml.dataframe.analyticsList.startModalCancelButton",{defaultMessage:"Cancel"}),confirmButtonText:s.i18n.translate("xpack.ml.dataframe.analyticsList.startModalStartButton",{defaultMessage:"Start"}),defaultFocusedButton:r.EUI_MODAL_CONFIRM_BUTTON,buttonColor:"primary"},Object(v.jsx)("p",null,s.i18n.translate("xpack.ml.dataframe.analyticsList.startModalBody",{defaultMessage:"A data frame analytics job increases search and indexing load in your cluster. If excessive load occurs, stop the job."})))),C=s.i18n.translate("xpack.ml.dataframe.analyticsList.stopActionNameText",{defaultMessage:"Stop"}),k=({isDisabled:e})=>e?Object(v.jsx)(r.EuiToolTip,{position:"top",content:Object(d.e)("canStartStopDataFrameAnalytics")},Object(v.jsx)(n.a.Fragment,null,C)):Object(v.jsx)(n.a.Fragment,null,C),F=({closeModal:e,item:t,forceStopAndCloseModal:a})=>Object(v.jsx)(n.a.Fragment,null,void 0!==t&&Object(v.jsx)(r.EuiConfirmModal,{title:s.i18n.translate("xpack.ml.dataframe.analyticsList.forceStopModalTitle",{defaultMessage:"Force this job to stop?"}),onCancel:e,onConfirm:a,cancelButtonText:s.i18n.translate("xpack.ml.dataframe.analyticsList.forceStopModalCancelButton",{defaultMessage:"Cancel"}),confirmButtonText:s.i18n.translate("xpack.ml.dataframe.analyticsList.forceStopModalStartButton",{defaultMessage:"Stop"}),defaultFocusedButton:r.EUI_MODAL_CONFIRM_BUTTON,buttonColor:"primary"},Object(v.jsx)("p",null,Object(v.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsList.forceStopModalBody",defaultMessage:"{analyticsId} is in a failed state. You must stop the job and fix the failure.",values:{analyticsId:t.config.id}}))));var I=a(204);const D=s.i18n.translate("xpack.ml.dataframe.analyticsList.viewActionName",{defaultMessage:"View"}),A=({item:e})=>{const{disabled:t,tooltipContent:a}=Object(I.a)(e);return t?Object(v.jsx)(r.EuiToolTip,{position:"top",content:a},Object(v.jsx)(n.a.Fragment,null,D)):Object(v.jsx)(n.a.Fragment,null,D)};var L=a(1);const R=s.i18n.translate("xpack.ml.dataframe.analyticsList.mapActionName",{defaultMessage:"Map"}),N=({item:e})=>{if(!Object(l.E)(e.config.analysis)&&!Object(l.D)(e.config.analysis)&&!Object(l.z)(e.config.analysis)){const e=s.i18n.translate("xpack.ml.dataframe.analyticsList.mapActionDisabledTooltipContent",{defaultMessage:"Unknown analysis type."});return Object(v.jsx)(r.EuiToolTip,{position:"top",content:e},Object(v.jsx)(n.a.Fragment,null,R))}return Object(v.jsx)(n.a.Fragment,null,R)};var P=a(7),z=a(40);const B=()=>{var e;const[t,a,s]=Object(d.f)(["canCreateDataFrameAnalytics","canDeleteDataFrameAnalytics","canStartStopDataFrameAnalytics"]),o=(()=>{const e=Object(b.g)(),t=Object(b.h)(),a=Object(i.useCallback)((a=>{const i=Object(l.s)(a.config.analysis);(async(a,i)=>{const n=await e.getUrl({page:L.b.DATA_FRAME_ANALYTICS_EXPLORATION,pageState:{jobId:a,analysisType:i}});await t(n,!1)})(a.id,i)}),[]);return{action:Object(i.useMemo)((()=>({isPrimary:!0,name:e=>Object(v.jsx)(A,{item:e}),enabled:e=>!Object(I.a)(e).disabled,description:D,icon:"visTable",type:"icon",onClick:a,"data-test-subj":"mlAnalyticsJobViewButton"})),[a])}})(),r=(()=>{const e=Object(b.g)(),t=Object(b.h)(),[a]=Object(z.d)("_g"),n=Object(i.useCallback)((async i=>{const n=Object(P.cloneDeep)(a||{});delete n.ml;const s=await e.getUrl({page:L.b.DATA_FRAME_ANALYTICS_MAP,pageState:{jobId:i.id,globalState:n}});await t(s,!1)}),[a]);return{action:Object(i.useMemo)((()=>({isPrimary:!0,name:e=>Object(v.jsx)(N,{item:e}),enabled:e=>!Object(I.a)(e).disabled,description:R,icon:"graphApp",type:"icon",onClick:n,"data-test-subj":"mlAnalyticsJobMapButton"})),[n])}})(),f=Object(p.c)(t),h=Object(m.b)(a),x=(e=>{const[t,a]=Object(i.useState)(),[n,s]=Object(i.useState)(!1),o=e=>{a(e),s(!0)};return{action:Object(i.useMemo)((()=>({name:()=>Object(v.jsx)(w,{isDisabled:!e}),enabled:()=>e,description:E,icon:"pencil",type:"icon",onClick:e=>o(e),"data-test-subj":"mlAnalyticsJobEditButton"})),[e]),isFlyoutVisible:n,item:t,closeFlyout:()=>s(!1),openFlyout:o}})(s),y=(e=>{const[t,a]=Object(i.useState)(!1),[n,s]=Object(i.useState)(),o=Object(g.c)(),r=e=>{s(e),a(!0)},l=t=>{if(!Object(c.f)(t.stats.state)){const a=Object(c.d)(t.stats);return e&&!a}return e};return{action:Object(i.useMemo)((()=>({name:t=>Object(v.jsx)(_,{isDisabled:!l(t),item:t,canStartStopDataFrameAnalytics:e}),available:e=>!Object(c.f)(e.stats.state)&&!Object(c.e)(e.stats.state),enabled:l,description:S,icon:"play",type:"icon",onClick:r,"data-test-subj":"mlAnalyticsJobStartButton"})),[]),closeModal:()=>a(!1),isModalVisible:t,item:n,openModal:r,startAndCloseModal:()=>{void 0!==n&&(a(!1),Object(M.e)(n,o))}}})(s),B=(e=>{const[t,a]=Object(i.useState)(!1),[n,s]=Object(i.useState)(),o=e=>{s(e),a(!0)},r=Object(i.useCallback)((t=>{e&&(Object(c.e)(t.stats.state)?o(t):Object(M.f)(t))}),[M.f]);return{action:Object(i.useMemo)((()=>({name:()=>Object(v.jsx)(k,{isDisabled:!e}),available:e=>Object(c.f)(e.stats.state)||Object(c.e)(e.stats.state),enabled:()=>e,description:C,icon:"stop",type:"icon",onClick:r,"data-test-subj":"mlAnalyticsJobStopButton"})),[r]),closeModal:()=>a(!1),isModalVisible:t,item:n,openModal:o,forceStopAndCloseModal:()=>{void 0!==n&&(a(!1),Object(M.f)(n))}}})(s),{refresh:V}=Object(j.n)(),J=[o.action,r.action],U=Object(v.jsx)(n.a.Fragment,null,y.isModalVisible&&Object(v.jsx)(T,y),B.isModalVisible&&Object(v.jsx)(F,B),h.isDeleteJobCheckModalVisible&&(null==h||null===(e=h.item)||void 0===e?void 0:e.config)&&Object(v.jsx)(u.a,{onCloseCallback:h.closeDeleteJobCheckModal,canDeleteCallback:()=>{h.openModal(h.item),h.closeDeleteJobCheckModal()},refreshJobsCallback:V,mlSavedObjectType:h.jobType,ids:[h.item.config.id]}),h.isModalVisible&&Object(v.jsx)(m.a,h),(e=>!0===e.isFlyoutVisible&&void 0!==e.item)(x)&&Object(v.jsx)(O,x));return J.push(y.action,B.action,x.action,f.action,h.action),{actions:J,modals:U}};var V;!function(e){e.analyzing="primary",e.failed="danger",e.reindexing="primary",e.started="primary",e.starting="primary",e.stopped="hollow",e.stopping="hollow"}(V||(V={}));const J=(e,t)=>{const a=V[e];return Object(c.e)(e)&&void 0!==t?Object(v.jsx)(r.EuiToolTip,{content:t},Object(v.jsx)(r.EuiBadge,{className:"mlTaskStateBadge",color:a},e)):Object(v.jsx)(r.EuiBadge,{className:"mlTaskStateBadge",color:a},e)},U=e=>Object(v.jsx)(r.EuiBadge,{className:"mlTaskStateBadge",color:"hollow"},e),G={name:s.i18n.translate("xpack.ml.dataframe.analyticsList.progress",{defaultMessage:"Progress"}),truncateText:!0,render(e){const{currentPhase:t,progress:a,totalPhases:n}=Object(c.c)(e.stats);return Object(v.jsx)(r.EuiFlexGroup,{alignItems:"center",gutterSize:"xs"},Object(v.jsx)(i.Fragment,null,Object(v.jsx)(r.EuiFlexItem,{style:{width:"60px"},grow:!1},Object(v.jsx)(r.EuiText,{size:"xs"},"Phase ",t,"/",n)),Object(v.jsx)(r.EuiFlexItem,{style:{width:"40px"},grow:!1},Object(v.jsx)(r.EuiToolTip,{content:s.i18n.translate("xpack.ml.dataframe.analyticsList.progressOfPhase",{defaultMessage:"Progress of phase {currentPhase}: {progress}%",values:{currentPhase:t,progress:a}})},Object(v.jsx)(r.EuiProgress,{value:a,max:100,color:"primary",size:"m","data-test-subj":"mlAnalyticsTableProgress"})))),!1)},width:"130px","data-test-subj":"mlAnalyticsTableColumnProgress"};var q={name:"1gz2b5f",styles:"overflow:hidden;text-overflow:ellipsis"};const $=({jobId:e})=>{const t=Object(b.f)({page:L.b.DATA_FRAME_ANALYTICS_JOBS_MANAGE,pageState:{jobId:e}});return Object(v.jsx)(r.EuiLink,{href:t,css:q,title:e},e)},W=(e,t,a=!0,i=(()=>{}))=>{const{actions:n,modals:d}=B();return{columns:[{name:Object(v.jsx)(r.EuiScreenReaderOnly,null,Object(v.jsx)("p",null,Object(v.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsList.showDetailsColumn.screenReaderDescription",defaultMessage:"This column contains clickable controls for showing more details on each job"}))),align:r.RIGHT_ALIGNMENT,width:"40px",isExpander:!0,render:a=>Object(v.jsx)(r.EuiButtonIcon,{onClick:()=>function(a){const i=e.indexOf(a.config.id);-1!==i?(e.splice(i,1),t([...e])):e.push(a.config.id),t([...e])}(a),"aria-label":e.includes(a.config.id)?s.i18n.translate("xpack.ml.dataframe.analyticsList.rowCollapse",{defaultMessage:"Hide details for {analyticsId}",values:{analyticsId:a.config.id}}):s.i18n.translate("xpack.ml.dataframe.analyticsList.rowExpand",{defaultMessage:"Show details for {analyticsId}",values:{analyticsId:a.config.id}}),iconType:e.includes(a.config.id)?"arrowDown":"arrowRight"}),"data-test-subj":"mlAnalyticsTableRowDetailsToggle"},{field:c.b.id,name:s.i18n.translate("xpack.ml.dataframe.analyticsList.id",{defaultMessage:"ID"}),sortable:e=>e.id,truncateText:!0,"data-test-subj":"mlAnalyticsTableColumnId",scope:"row"},{field:c.b.description,name:s.i18n.translate("xpack.ml.dataframe.analyticsList.description",{defaultMessage:"Description"}),sortable:!0,truncateText:!0,"data-test-subj":"mlAnalyticsTableColumnJobDescription"},{field:c.b.memoryStatus,name:s.i18n.translate("xpack.ml.dataframe.analyticsList.memoryStatus",{defaultMessage:"Memory status"}),truncateText:!0,"data-test-subj":"mlAnalyticsTableColumnJobMemoryStatus"},{field:c.b.configSourceIndex,name:s.i18n.translate("xpack.ml.dataframe.analyticsList.sourceIndex",{defaultMessage:"Source index"}),sortable:!0,truncateText:!0,"data-test-subj":"mlAnalyticsTableColumnSourceIndex"},{field:c.b.configDestIndex,name:s.i18n.translate("xpack.ml.dataframe.analyticsList.destinationIndex",{defaultMessage:"Destination index"}),sortable:!0,truncateText:!0,"data-test-subj":"mlAnalyticsTableColumnDestIndex"},{name:s.i18n.translate("xpack.ml.dataframe.analyticsList.type",{defaultMessage:"Type"}),sortable:e=>Object(l.s)(e.config.analysis),truncateText:!0,render:e=>U(Object(l.s)(e.config.analysis)),width:"150px","data-test-subj":"mlAnalyticsTableColumnType"},{name:s.i18n.translate("xpack.ml.dataframe.analyticsList.status",{defaultMessage:"Status"}),sortable:e=>e.stats.state,truncateText:!0,render:e=>J(e.stats.state,e.stats.failure_reason),width:"100px","data-test-subj":"mlAnalyticsTableColumnStatus"},G,{name:s.i18n.translate("xpack.ml.dataframe.analyticsList.tableActionLabel",{defaultMessage:"Actions"}),actions:n,width:"150px","data-test-subj":"mlAnalyticsTableColumnActions"}],modals:d}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return H}));var i=a(2),n=a.n(i),s=a(6),o=a(15),r=a(28),l=a(99),c=a(9),d=a(4),u=a(445),p=a.n(u),m=a(451),b=a.n(m),f=a(576),g=a.n(f),h=a(577),j=a.n(h),x=a(578),v=a.n(x);const y="#C5CCD7",O="ellipse",E="rectangle",w="diamond",M="triangle",S="round-rectangle",_=e=>({autoungrabify:!0,boxSelectionEnabled:!1,maxZoom:3,minZoom:.2,style:[{selector:"node",style:{"background-color":t=>t.data("isRoot")?e.euiColorWarning:e.euiColorGhost,"background-height":"60%","background-width":"60%","border-color":t=>function(e,t){if(e.selected())return t.euiColorPrimary;switch(e.data("type")){case l.j.ANALYTICS:return t.euiColorSuccess;case l.j.TRANSFORM:return t.euiColorVis1;case l.j.INDEX:return t.euiColorVis2;case l.j.TRAINED_MODEL:return t.euiColorVis3;case l.j.INGEST_PIPELINE:return t.euiColorVis7;default:return t.euiColorMediumShade}}(t,e),"border-style":"solid","background-image":e=>function(e){switch(e.data("analysisType")){case l.b.OUTLIER_DETECTION:return j.a;case l.b.CLASSIFICATION:return g.a;case l.b.REGRESSION:return v.a;default:return}}(e),"border-width":e=>e.selected()?4:3,color:e.euiTextColor,"font-family":"Inter UI, Segoe UI, Helvetica, Arial, sans-serif","font-size":e.euiFontSizeXS,"min-zoomed-font-size":parseInt(e.euiSizeL,10),label:"data(label)",shape:e=>function(e,t){switch(e.data("type")){case l.j.ANALYTICS:return O;case l.j.TRANSFORM:return E;case l.j.INDEX:return w;case l.j.TRAINED_MODEL:return M;case l.j.INGEST_PIPELINE:return S;default:return O}}(e),"text-background-color":e.euiColorLightestShade,"text-background-opacity":0,"text-background-padding":e.euiSizeXS,"text-background-shape":"roundrectangle","text-margin-y":parseInt(e.euiSizeS,10),"text-max-width":"200px","text-valign":"bottom","text-wrap":"wrap"}},{selector:"edge",style:{"curve-style":"taxi","taxi-direction":"rightward","line-color":y,"overlay-opacity":0,"target-arrow-color":y,"target-arrow-shape":"triangle","target-distance-from-node":e.euiSizeXS,width:1,"source-arrow-shape":"none"}}]});p.a.use(b.a);const T=Object(i.createContext)(void 0);function C({children:e,elements:t,theme:a,height:n,itemsDeleted:s,resetCy:o,style:r,width:l}){const c=Object(i.useMemo)((()=>({..._(a),elements:t})),[a,t]),[u,m]=function(e){const[t,a]=Object(i.useState)(),n=Object(i.useRef)(null);return Object(i.useEffect)((()=>{t?t.style(e.style):a(p()({...e,container:n.current}))}),[e,t]),Object(i.useEffect)((function(){return()=>{t&&t.destroy()}}),[t]),[n,t]}(c),b=Object(i.useMemo)((()=>({...r,height:n,width:l})),[r,n,l]),f=Object(i.useCallback)((e=>{m&&n>0&&setTimeout((()=>m.layout(function(e,t){return{name:"dagre",rankDir:"LR",fit:!0,padding:20,spacingFactor:.95,boundingBox:{x1:0,y1:0,w:e,h:t}}}(l,n)).run()),150)}),[m,n,l]);return Object(i.useEffect)((()=>(m&&m.on("data",f),()=>{m&&m.removeListener("data",void 0,f)})),[m,t,n,l]),Object(i.useEffect)((()=>{m&&(!1===s||m.elements().remove(),m.add(t),m.trigger("data"))}),[m,t]),Object(i.useEffect)((()=>{m&&(m.reset(),m.fit())}),[m,o,l,n]),Object(d.jsx)(T.Provider,{value:m},Object(d.jsx)("div",{ref:u,css:Object(d.css)(b,";",""),"data-test-subj":"mlPageDataFrameAnalyticsMapCytoscape"},e))}var k=a(73),F=a.n(k),I=a(110),D=a(1),A=a(102),L=a(129),R=a(163),N=a(356),P=a(222);function z(e){return Object.entries(e).map((([e,t])=>{let a;return a="create_time"===e?Object(I.d)(1e3*F()(t).unix()):"object"==typeof t?Object(d.jsx)(r.EuiCodeBlock,{language:"json",fontSize:"s",paddingSize:"s"},JSON.stringify(t,null,2)):t,{title:e,description:a}}))}const B=n.a.memo((({details:e,getNodeData:t,modelId:a,refreshJobsCallback:n,updateElements:u})=>{var p,m;const[b,f]=Object(i.useState)(!1),[g,h]=Object(i.useState)(),[j,x]=Object(i.useState)(!1),[v,y]=Object(i.useState)(!1),O=Object(A.f)("canCreateDataFrameAnalytics"),E=Object(A.f)("canDeleteDataFrameAnalytics"),w=Object(N.b)(E),{closeDeleteJobCheckModal:M,deleteItem:S,deleteTargetIndex:_,isModalVisible:C,isDeleteJobCheckModalVisible:k,item:F,jobType:I,openModal:B,openDeleteJobCheckModal:V}=w,{services:{share:J,application:{navigateToUrl:U,capabilities:G}}}=Object(c.d)(),q=!0===(null===(p=G.management)||void 0===p||null===(m=p.ingest)||void 0===m?void 0:m.ingest_pipelines),{toasts:$}=Object(c.i)(),W=Object(c.g)(),H=Object(c.h)(),Y=Object(R.e)(),X=Object(i.useContext)(T),Q=Object(i.useCallback)((()=>{X&&X.elements().unselect(),f(!1),h(void 0)}),[X,h]),K=null==g?void 0:g.data("id"),Z=null==g?void 0:g.data("label"),ee=null==g?void 0:g.data("type"),te=Object(i.useCallback)((async()=>{const e=await Object(L.c)(Z);if(null!==e){const t=await W.getUrl({page:D.b.DATA_FRAME_ANALYTICS_CREATE_JOB,pageState:{index:e}});await H(t)}else $.addDanger(s.i18n.translate("xpack.ml.dataframe.analyticsMap.flyout.dataViewMissingMessage",{defaultMessage:"To create a job from this index please create a data view for {indexTitle}.",values:{indexTitle:Z}}))}),[Z]),ae=Object(i.useCallback)((async()=>{const e=J.url.locators.get("INGEST_PIPELINES_APP_LOCATOR");if(e&&null!==Z){const t=await e.getUrl({page:"pipeline_list"});await U(`${t}/?pipeline=${Z}`)}}),[J.url.locators,Z]),ie=Object(i.useCallback)((async()=>{var t;Y({config:e[K],stats:null===(t=e[K])||void 0===t?void 0:t.stats})}),[K]);if(Object(i.useEffect)((()=>{const e=e=>{h(e.target),f(!0)};return X&&(X.on("select","node",e),X.on("unselect","node",Q)),()=>{X&&(X.removeListener("select","node",e),X.removeListener("unselect","node",Q))}}),[X,Q]),Object(i.useEffect)((function(){if(!1===C&&!0===S||!0===v){let t;!0!==_&&!0!==v||(t=`${e[K].dest.index}-${l.j.INDEX}`),u(K,Z,t),f(!1)}}),[C,S,v]),!1===b)return null;const ne=Object(d.jsx)(r.EuiButton,{size:"s",iconType:"arrowDown",iconSide:"right",onClick:()=>{x(!j)}},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.flyout.nodeActionsButton",defaultMessage:"Node actions"})),se=[...ee===l.j.ANALYTICS?[Object(d.jsx)(r.EuiContextMenuItem,{key:`${K}-delete`,icon:"trash",disabled:!E,onClick:()=>{var t;V({config:e[K],stats:null===(t=e[K])||void 0===t?void 0:t.stats})}},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.flyout.deleteJobButton",defaultMessage:"Delete job"})),Object(d.jsx)(r.EuiContextMenuItem,{key:`${K}-clone`,icon:"copy",disabled:!O,onClick:ie},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.flyout.cloneJobButton",defaultMessage:"Clone job"}))]:[],...ee===l.j.INDEX?[Object(d.jsx)(r.EuiContextMenuItem,{disabled:!O,key:`${K}-create`,icon:"plusInCircle",onClick:te},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.flyout.createJobButton",defaultMessage:"Create job from this index"}))]:[],...a===Z||ee!==l.j.ANALYTICS&&ee!==l.j.INDEX?[]:[Object(d.jsx)(r.EuiContextMenuItem,{key:`${K}-fetch-related`,icon:"branch",onClick:()=>{t({id:Z,type:ee}),X&&X.elements().unselect(),f(!1),x(!1)}},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.flyout.fetchRelatedNodesButton",defaultMessage:"Fetch related nodes"}))],...a!==Z&&ee===l.j.INGEST_PIPELINE&&q?[Object(d.jsx)(r.EuiContextMenuItem,{key:`${K}-view-pipeline`,icon:"pipelineApp",onClick:ae},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.flyout.viewIngestPipelineButton",defaultMessage:"View ingest pipeline"}))]:[]];return Object(d.jsx)(r.EuiPortal,null,Object(d.jsx)(r.EuiFlyout,{ownFocus:!0,size:"m",onClose:Q,"data-test-subj":"mlAnalyticsJobMapFlyout"},Object(d.jsx)(r.EuiFlyoutHeader,null,Object(d.jsx)(r.EuiFlexGroup,{direction:"column",gutterSize:"xs"},Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiTitle,{size:"s"},Object(d.jsx)("h3",{"data-test-subj":"mlDataFrameAnalyticsNodeDetailsTitle"},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.flyoutHeaderTitle",defaultMessage:"Details for {type} {id}",values:{id:Z,type:ee}})))))),Object(d.jsx)(r.EuiFlyoutBody,null,Object(d.jsx)(r.EuiFlexGroup,{direction:"column",gutterSize:"s"},Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiDescriptionList,{compressed:!0,type:"column",listItems:z("index-pattern"===ee?e[K][Z]:e[K])})))),Object(d.jsx)(r.EuiFlyoutFooter,null,ee!==l.j.TRAINED_MODEL&&se.length>0?Object(d.jsx)(r.EuiPopover,{button:ne,isOpen:j,closePopover:()=>{x(!1)},panelPaddingSize:"s",anchorPosition:"downLeft"},Object(d.jsx)(r.EuiContextMenuPanel,{items:se})):null)),k&&F&&Object(d.jsx)(P.a,{mlSavedObjectType:I,ids:[F.config.id],onCloseCallback:M,canDeleteCallback:()=>{B(w.item),M()},refreshJobsCallback:n,setDidUntag:y}),C&&Object(d.jsx)(N.a,w))})),V=({theme:e})=>{const[t,a]=Object(i.useState)(!1);return Object(d.jsx)(r.EuiFlexGroup,{className:"mlJobMapLegend__container",alignItems:"center","data-test-subj":"mlPageDataFrameAnalyticsMapLegend"},Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)("span",{className:"mlJobMapLegend__sourceNode"})),Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiText,{size:"xs",color:"subdued"},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.legend.rootNodeLabel",defaultMessage:"source node"}))))),Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)("span",{className:"mlJobMapLegend__indexPattern"})),Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiText,{size:"xs",color:"subdued"},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.legend.indexLabel",defaultMessage:"index"}))))),Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)("span",{className:"mlJobMapLegend__ingestPipeline"})),Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiText,{size:"xs",color:"subdued"},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.legend.ingestPipelineLabel",defaultMessage:"ingest pipeline"}))))),Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)("span",{className:"mlJobMapLegend__transform"})),Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiText,{size:"xs",color:"subdued"},l.j.TRANSFORM)))),Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)("span",{style:{display:"inline-block",width:"0px",height:"0px",borderLeft:`${e.euiSizeS} solid ${e.euiPageBackgroundColor}`,borderRight:`${e.euiSizeS} solid ${e.euiPageBackgroundColor}`,borderBottom:`${e.euiSizeM} solid ${e.euiColorVis3}`}})),Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiText,{size:"xs",color:"subdued"},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.legend.trainedModelLabel",defaultMessage:"trained model"}))))),Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)("span",{className:"mlJobMapLegend__analytics"})),Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiText,{size:"xs",color:"subdued"},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsMap.legend.analyticsJobLabel",defaultMessage:"analytics jobs"}))),Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiPopover,{ownFocus:!0,button:Object(d.jsx)(r.EuiButtonIcon,{iconSize:"s",onClick:()=>a(!t),iconType:t?"arrowUp":"arrowDown","aria-label":s.i18n.translate("xpack.ml.dataframe.analyticsMap.legend.showJobTypesAriaLabel",{defaultMessage:"Show job types"})}),isOpen:t,closePopover:()=>a(!1)},Object(d.jsx)(n.a.Fragment,null,Object(d.jsx)(r.EuiListGroup,{flush:!0},Object(d.jsx)(r.EuiListGroupItem,{iconType:"outlierDetectionJob",label:"Outlier detection",size:"xs"}),Object(d.jsx)(r.EuiListGroupItem,{iconType:"regressionJob",label:"Regression",size:"xs"}),Object(d.jsx)(r.EuiListGroupItem,{iconType:"classificationJob",label:"Classification",size:"xs"}))))))))))};var J=a(141),U=a(579),G=a.n(U),q=a(81),$=a(7),W=a(12);const H=({defaultHeight:e,analyticsId:t,modelId:a,forceRefresh:n})=>{const[u,p]=Object(i.useState)(!1),[m,b]=Object(i.useState)(!1),{elements:f,error:g,fetchAndSetElementsWrapper:h,message:j,nodeDetails:x,setElements:v,setError:y}=(()=>{const[e,t]=Object(i.useState)(!1),[a,n]=Object(i.useState)([]),[o,r]=Object(i.useState)(),[c,d]=Object(i.useState)(),[u,p]=Object(i.useState)({}),m=Object(i.useRef)({}),b=async(e,i,o)=>{t(!0),i&&void 0===u[e]&&p({...u,[e]:o});const l=await W.ml.dataFrameAnalytics.getDataFrameAnalyticsMap(e,i,o),{elements:c,details:b,error:f}=l;if(null!==f&&(t(!1),r(f)),0===(null==c?void 0:c.length)&&d(s.i18n.translate("xpack.ml.dataframe.analyticsMap.emptyResponseMessage",{defaultMessage:"No related analytics jobs found for {id}.",values:{id:e}})),(null==c?void 0:c.length)>0)if(!1===i)n(c),m.current=b;else{const e=Object($.uniqWith)([...c,...a],$.isEqual);n(e),m.current={...b,...m.current}}t(!1)};return{elements:a,error:o,fetchAndSetElementsWrapper:async e=>{const{analyticsId:t,id:a,modelId:i,type:n}=null!=e?e:{},s=void 0!==a;let o;o=void 0!==a?a:void 0!==i?i:t,await b(o,s,void 0!==i&&!1===s?l.j.TRAINED_MODEL:n),Object.keys(u).length&&await Object(q.asyncForEach)(Object.keys(u),(async e=>{await b(e,!0,u[e])}))},isLoading:e,message:c,nodeDetails:m.current,setElements:n,setError:r}})(),{services:{notifications:O,application:{navigateToUrl:E}}}=Object(c.d)(),w=Object(c.g)(),{euiTheme:M}=Object(c.a)(),S=Object(J.a)();Object(i.useEffect)((()=>{h({analyticsId:t,modelId:a})}),[t,a]),Object(i.useEffect)((()=>{!0===n&&h({analyticsId:t,modelId:a})}),[n]),Object(i.useEffect)((()=>{void 0!==j&&O.toasts.add(j)}),[j]),Object(i.useEffect)((function(){S&&h({analyticsId:t,modelId:a})}),[S]),void 0!==g&&(O.toasts.addDanger(s.i18n.translate("xpack.ml.dataframe.analyticsMap.fetchDataErrorMessage",{defaultMessage:"Unable to fetch some data. An error occurred: {error}",values:{error:JSON.stringify(g)}})),y(void 0));const{ref:_,width:T,height:k}=function(){const e=Object(i.useRef)(null),t=G()().height;if(!e.current)return{ref:e,width:0,height:0};const{top:a,width:n}=e.current.getBoundingClientRect();return{ref:e,width:n,height:t-a}}(),F=null!=e?e:k;return Object(d.jsx)("div",{"data-test-subj":"mlPageDataFrameAnalyticsMap"},Object(d.jsx)(r.EuiSpacer,{size:"m"}),Object(d.jsx)(r.EuiFlexGroup,{direction:"row",gutterSize:"none",justifyContent:"spaceBetween"},Object(d.jsx)(r.EuiFlexItem,null,Object(d.jsx)(V,{theme:M})),Object(d.jsx)(r.EuiFlexItem,{grow:!1},Object(d.jsx)(r.EuiButtonEmpty,{size:"xs","data-test-subj":"mlAnalyticsResetGraphButton",onClick:()=>b(!m)},Object(d.jsx)(o.FormattedMessage,{id:"xpack.ml.dataframe.analyticsList.resetMapButtonLabel",defaultMessage:"Reset"})))),Object(d.jsx)("div",{style:{height:F-parseInt(M.euiSizeL,10)-20},ref:_},Object(d.jsx)(C,{theme:M,height:F-20,elements:f,width:T,style:(I=M,{background:`linear-gradient(\n 90deg,\n ${I.euiPageBackgroundColor}\n calc(${I.euiSizeL} - calc(${I.euiSizeXS} / 2)),\n transparent 1%\n)\ncenter,\nlinear-gradient(\n ${I.euiPageBackgroundColor}\n calc(${I.euiSizeL} - calc(${I.euiSizeXS} / 2)),\n transparent 1%\n)\ncenter,\n${I.euiColorLightShade}`,backgroundSize:`${I.euiSizeL} ${I.euiSizeL}`,marginTop:0}),itemsDeleted:u,resetCy:m},Object(d.jsx)(B,{details:x,getNodeData:h,modelId:a,updateElements:(e,a,i)=>{if(a===t)(async()=>{const e=await w.getUrl({page:D.b.DATA_FRAME_ANALYTICS_JOBS_MANAGE});await E(e)})();else{const t=f.filter((t=>{let n=t.data.id!==e&&t.data.target!==e&&t.data.source!==e;var s,o,r;return void 0!==t.data.id&&t.data.type===l.j.TRAINED_MODEL&&(n=n&&(null===(s=x[t.data.id])||void 0===s||null===(o=s.metadata)||void 0===o||null===(r=o.analytics_config)||void 0===r?void 0:r.id)!==a),void 0!==i?n&&t.data.id!==i&&t.data.target!==i&&t.data.source!==i:n}));p(!0),v(t)}},refreshJobsCallback:()=>h({analyticsId:t,modelId:a})}))));var I}},function(e,t,a){"use strict";a.d(t,"a",(function(){return m})),a.d(t,"b",(function(){return g})),a.d(t,"c",(function(){return j}));var i=a(100),n=a.n(i),s=a(2),o=a.n(s),r=a(24);const l={services:{}},c=Object(s.createContext)(l);var d=a(376),u=a.n(d),p=a(4);const m=({children:e,component:t,render:a,...i})=>{const l=Object(s.useMemo)((()=>{if(t)return e=>Object(p.jsx)(o.a.Fragment,null,Object(p.jsx)(b,null),Object(p.jsx)(t,e))}),[t]);if(l)return Object(p.jsx)(r.Route,n()({},i,{component:l}));if(a||"function"==typeof e){const t="function"==typeof e?e:a;return Object(p.jsx)(r.Route,n()({},i,{render:e=>Object(p.jsx)(o.a.Fragment,null,Object(p.jsx)(b,null),t(e))}))}return Object(p.jsx)(r.Route,i,Object(p.jsx)(b,null),e)},b=()=>{const{executionContext:e}=Object(s.useContext)(c).services,t=Object(r.useRouteMatch)();return function(e,t){u()((()=>(null==e||e.set(t),()=>{null==e||e.clear()})),[t])}(e,{type:"application",page:t.path,id:Object.keys(t.params).length>0?JSON.stringify(t.params):void 0}),null};var f=a(84);const g=({children:e,...t})=>Object(p.jsx)(r.Router,t,Object(p.jsx)(f.CompatRouter,null,e));var h=a(7);const j=({legacySwitch:e=!0,children:t})=>{const a=Object(r.useRouteMatch)();return e?Object(p.jsx)(r.Switch,null,t):Object(p.jsx)(f.Routes,null,s.Children.map(t,(e=>{if(o.a.isValidElement(e)&&e.type===m){var i;const n=Object(h.replace)(null==e?void 0:e.props.path,a.url+"/",""),s="function"==typeof(null==e?void 0:e.props.children)?null==e?void 0:e.props.children:null==e?void 0:e.props.render;return Object(p.jsx)(f.Route,{path:n,element:Object(p.jsx)(o.a.Fragment,null,Object(p.jsx)(b,null),(null==e||null===(i=e.props)||void 0===i?void 0:i.component)&&Object(p.jsx)(e.props.component,null)||s&&s()||t)})}return e})))}},,function(e,t,a){"use strict";a.d(t,"a",(function(){return g})),a.d(t,"b",(function(){return h}));var i=a(2),n=a.n(i),s=a(10),o=a(11),r=a(39),l=a.n(r),c=a(20),d=a(149),u=a(9),p=a(146),m=a(4);const b={info:0,error:0,warning:0},f=n.a.createContext({notificationsCounts:b,lastCheckedAt:null,latestRequestedAt:null,setLastCheckedAt:()=>{}}),g=({children:e})=>{const{services:{mlServices:{mlApiServices:t},application:{capabilities:a}}}=Object(u.d)(),n=a.ml.canGetJobs,r=a.ml.canGetDataFrameAnalytics,g=a.ml.canGetTrainedModels,h=n&&r&&g,[j,x]=Object(d.b)(p.e),v=function(e){const t=Object(i.useMemo)((()=>new s.BehaviorSubject(e)),[]);return Object(i.useEffect)((function(){t.next(e)}),[t,e]),Object(i.useMemo)((()=>t.asObservable()),[t])}(j),[y,O]=Object(i.useState)(null),[E,w]=Object(i.useState)(b);return Object(i.useEffect)((function(){if(!h)return;const e=Object(s.combineLatest)([v,Object(s.timer)(0,6e4)]).pipe(Object(o.map)((([e])=>null!=e?e:l()().subtract(7,"d").valueOf())),Object(o.tap)((e=>{O(e)})),Object(o.switchMap)((e=>t.notifications.countMessages$({lastCheckedAt:e}))),Object(o.retry)({delay:6e4})).subscribe((e=>{w(Object(c.a)(e)?e:b)}));return()=>{e.unsubscribe()}}),[h,v,t.notifications]),Object(m.jsx)(f.Provider,{value:{notificationsCounts:E,lastCheckedAt:j,setLastCheckedAt:x,latestRequestedAt:y}},e)};function h(){return Object(i.useContext)(f)}},function(e,t,a){"use strict";a.r(t),a.d(t,"getDefaultSwimlanePanelTitle",(function(){return j})),a.d(t,"AnomalySwimlaneEmbeddable",(function(){return anomaly_swimlane_embeddable_AnomalySwimlaneEmbeddable}));var i=a(5),n=a.n(i),s=a(2),o=a.n(s),r=a(71),l=a.n(r),c=a(6),d=a(10),u=a(21);const p=o.a.lazy((()=>a.e(16).then(a.bind(null,685))));var m=a(187),b=a(123),f=a(167),g=a(168),h=a(4);const j=e=>c.i18n.translate("xpack.ml.swimlaneEmbeddable.title",{defaultMessage:"ML anomaly swim lane for {jobIds}",values:{jobIds:e.join(", ")}});class anomaly_swimlane_embeddable_AnomalySwimlaneEmbeddable extends g.a{constructor(e,t,a){super(e,t[2].anomalyDetectorService,t[1].data.dataViews,a),n()(this,"node",void 0),n()(this,"reload$",new d.Subject),n()(this,"type",b.b),this.services=t}reportsEmbeddableLoad(){return!0}onLoading(){this.renderComplete.dispatchInProgress(),this.updateOutput({loading:!0,error:void 0})}onError(e){this.renderComplete.dispatchError(),this.updateOutput({loading:!1,error:{name:e.name,message:e.message}})}onRenderComplete(){this.renderComplete.dispatchComplete(),this.updateOutput({loading:!1,error:void 0})}render(e){super.render(e),this.node=e,this.node.setAttribute("data-shared-item","");const t=this.services[0].i18n.Context,a=this.services[0].theme.theme$;l.a.render(Object(h.jsx)(t,null,Object(h.jsx)(u.KibanaThemeProvider,{theme$:a},Object(h.jsx)(u.KibanaContextProvider,{services:{...this.services[0]}},Object(h.jsx)(s.Suspense,{fallback:Object(h.jsx)(f.a,null)},Object(h.jsx)(p,{id:this.input.id,embeddableContext:this,embeddableInput$:this.getInput$(),services:this.services,refresh:this.reload$.asObservable(),onInputChange:this.updateInput.bind(this),onOutputChange:this.updateOutput.bind(this),onRenderComplete:this.onRenderComplete.bind(this),onLoading:this.onLoading.bind(this),onError:this.onError.bind(this)}))))),e)}destroy(){super.destroy(),this.node&&l.a.unmountComponentAtNode(this.node)}reload(){this.reload$.next()}supportedTriggers(){return[m.a]}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var i=a(2),n=a.n(i),s=a(6),o=a(28),r=a(98),l=a(4);const c=n.a.memo((({value:e,onChange:t})=>{const a=[{min:r.g.LOW,max:r.g.MINOR,color:"#8BC8FB"},{min:r.g.MINOR,max:r.g.MAJOR,color:"#FDEC25"},{min:r.g.MAJOR,max:r.g.CRITICAL,color:"#FBA740"},{min:r.g.CRITICAL,max:100,color:"#FE5050"}],i=s.i18n.translate("xpack.ml.severitySelector.formControlLabel",{defaultMessage:"Severity"}),n=null!=e?e:r.g.LOW,c=new Array(5).fill(null).map(((e,t)=>{const a=25*t;return{value:a,label:a}}));return Object(l.jsx)(o.EuiFormRow,{fullWidth:!0},Object(l.jsx)(o.EuiFlexGroup,{gutterSize:"s"},Object(l.jsx)(o.EuiFlexItem,{grow:!1},Object(l.jsx)(o.EuiFieldNumber,{id:"severityControl",style:{width:"70px"},compressed:!0,prepend:i,value:n,onChange:e=>t(Number(e.target.value)),min:r.g.LOW,max:100})),Object(l.jsx)(o.EuiFlexItem,{grow:!0},Object(l.jsx)(o.EuiRange,{className:"mlSeverityControl",fullWidth:!0,min:r.g.LOW,max:100,value:n,onChange:e=>t(Number(e.currentTarget.value)),"aria-label":s.i18n.translate("xpack.ml.severitySelector.formControlAriaLabel",{defaultMessage:"Select severity threshold"}),showTicks:!0,ticks:c,showRange:!1,levels:a,"data-test-subj":"mlAnomalyAlertScoreSelection"}))))}))},function(e,t,a){"use strict";a.r(t),a.d(t,"getDefaultExplorerChartsPanelTitle",(function(){return h})),a.d(t,"AnomalyChartsEmbeddable",(function(){return anomaly_charts_embeddable_AnomalyChartsEmbeddable}));var i=a(5),n=a.n(i),s=a(2),o=a.n(s),r=a(71),l=a.n(r),c=a(6),d=a(10),u=a(21);const p=o.a.lazy((()=>Promise.all([a.e(1),a.e(15)]).then(a.bind(null,682))));var m=a(123),b=a(167),f=a(168),g=a(4);const h=e=>c.i18n.translate("xpack.ml.anomalyChartsEmbeddable.title",{defaultMessage:"ML anomaly charts for {jobIds}",values:{jobIds:e.join(", ")}});class anomaly_charts_embeddable_AnomalyChartsEmbeddable extends f.a{constructor(e,t,a){super(e,t[2].anomalyDetectorService,t[1].data.dataViews,a),n()(this,"node",void 0),n()(this,"reload$",new d.Subject),n()(this,"type",m.a),this.services=t}onLoading(){this.renderComplete.dispatchInProgress(),this.updateOutput({loading:!0,error:void 0})}onError(e){this.renderComplete.dispatchError(),this.updateOutput({loading:!1,error:{name:e.name,message:e.message}})}onRenderComplete(){this.renderComplete.dispatchComplete(),this.updateOutput({loading:!1,error:void 0})}render(e){super.render(e),this.node=e,this.node.setAttribute("data-shared-item","");const t=this.services[0].i18n.Context,a=this.services[0].theme.theme$;l.a.render(Object(g.jsx)(t,null,Object(g.jsx)(u.KibanaThemeProvider,{theme$:a},Object(g.jsx)(u.KibanaContextProvider,{services:{...this.services[0]}},Object(g.jsx)(s.Suspense,{fallback:Object(g.jsx)(b.a,null)},Object(g.jsx)(p,{id:this.input.id,embeddableContext:this,embeddableInput:this.getInput$(),services:this.services,refresh:this.reload$.asObservable(),onInputChange:this.updateInput.bind(this),onOutputChange:this.updateOutput.bind(this),onRenderComplete:this.onRenderComplete.bind(this),onLoading:this.onLoading.bind(this),onError:this.onError.bind(this)}))))),e)}destroy(){super.destroy(),this.node&&l.a.unmountComponentAtNode(this.node)}reload(){this.reload$.next()}supportedTriggers(){return[]}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return b}));var i=a(2),n=a.n(i),s=a(15),o=a(28),r=a(425),l=a.n(r),c=a(1),d=a(9),u=a(102),p=a(32),m=a(4);const b=()=>{const e=!Object(u.f)("canCreateJob")||!Object(p.c)(),{services:{docLinks:t}}=Object(d.d)(),a=Object(d.g)(),i=Object(d.h)();return Object(m.jsx)(o.EuiEmptyPrompt,{layout:"horizontal",hasBorder:!1,hasShadow:!1,icon:Object(m.jsx)(o.EuiImage,{size:"fullWidth",src:l.a,alt:"anomaly_detection"}),title:Object(m.jsx)("h2",null,Object(m.jsx)(s.FormattedMessage,{id:"xpack.ml.overview.anomalyDetection.createFirstJobMessage",defaultMessage:"Start detecting anomalies"})),body:Object(m.jsx)(n.a.Fragment,null,Object(m.jsx)("p",null,Object(m.jsx)(s.FormattedMessage,{id:"xpack.ml.overview.anomalyDetection.emptyPromptText",defaultMessage:"Anomaly detection enables you to find unusual behavior in time series data. Start automatically spotting the anomalies hiding in your data and resolve issues faster."}))),actions:[Object(m.jsx)(o.EuiButton,{color:"primary",onClick:async()=>{if(!a)return;const e=await a.getUrl({page:c.b.ANOMALY_DETECTION_CREATE_JOB_SELECT_INDEX});await i(e,!0)},isDisabled:e,"data-test-subj":"mlCreateNewJobButton"},Object(m.jsx)(s.FormattedMessage,{id:"xpack.ml.overview.anomalyDetection.createJobButtonText",defaultMessage:"Create anomaly detection job"})),Object(m.jsx)(o.EuiLink,{href:t.links.ml.anomalyDetection,target:"_blank",external:!0},Object(m.jsx)(s.FormattedMessage,{id:"xpack.ml.common.readDocumentationLink",defaultMessage:"Read documentation"}))],"data-test-subj":"mlAnomalyDetectionEmptyState"})}},function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var i=a(4);a(2);const n={name:"1v0pok0",styles:"min-width:300px"},s=({title:e})=>Object(i.jsx)("div",{css:n},e)},,,function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return s}));let i=!1;function n(e){i=e}function s(){return i}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isDeepEqual=t.off=t.on=t.isClient=void 0;var i=a(57).__importDefault(a(377));t.isClient="object"==typeof window,t.on=function(e){for(var t=[],a=1;a{const t=Object(s.g)(),[a,u]=Object(i.useState)("");return Object(i.useEffect)((()=>{let a=!1;return(async()=>{const i={};if(c(e)?i.groupIds=[e.groupId]:i.jobId=e.id,t){const e=await t.getUrl({page:o.b.ANOMALY_DETECTION_JOBS_MANAGE,pageState:i});a||u(e)}})(),()=>{a=!0}}),[e,t]),c(e)?Object(l.jsx)(n.EuiLink,{key:e.groupId,href:a},Object(l.jsx)(r.a,{name:e.groupId})):Object(l.jsx)(n.EuiLink,{key:e.id,href:a,css:d,title:e.id},e.id)}},,,,,function(e,t,a){"use strict";a.d(t,"b",(function(){return l})),a.d(t,"a",(function(){return c}));var i=a(7),n=a(17),s=a(106),o=a(13),r=a(12);function l(e,t,a){return new Promise(((a,i)=>{const n={...d(e,t),...u(e,t),...p(e,t),...m(e,t),...b(e,t),...f(e,t),...g(e,t)},o={...h(e,t)};void 0!==n.custom_settings&&(n.custom_settings=function(e,t){let a={};return void 0!==e.custom_settings&&(a={...e.custom_settings},void 0===e.custom_settings.created_by||void 0===e.detectors&&!Object.keys(t).length||Object(s.t)(a)),a}(n,o));const l=()=>{(function(e,t){return new Promise(((a,i)=>{if(Object.keys(e).length){const n=t.datafeed_config.datafeed_id;r.ml.updateDatafeed({datafeedId:n,datafeedConfig:e}).then((()=>{a()})).catch((e=>{i(e)}))}else a()}))})(o,e).then((()=>{a()})).catch((e=>{i(e)}))};Object.keys(n).length?r.ml.updateJob({jobId:e.job_id,job:n}).then((()=>{l()})).catch((e=>{i(e)})):l()}))}async function c(){const e=Object(o.c)();return(await e.getIdsWithTitle()).sort(((e,t)=>e.title.localeCompare(t.title)))}function d(e,t){const a=t.description;return t.description!==e.description?{description:a}:{}}function u(e,t){const a=t.groups;return void 0!==t.groups?0===Object(i.difference)(e.groups,a).length+Object(i.difference)(a,e.groups).length?{}:{groups:a}:{}}function p(e,t){const a=Object(n.d)(),i={};if(void 0!==e.analysis_limits.model_memory_limit){let{mml:n}=t;""===n&&(n=a.max_model_memory_limit),n!==e.analysis_limits.model_memory_limit&&(i.analysis_limits={model_memory_limit:n})}return i}function m(e,t){const a=t.modelSnapshotRetentionDays;return a!==e.model_snapshot_retention_days?{model_snapshot_retention_days:a}:{}}function b(e,t){const a=t.dailyModelSnapshotRetentionAfterDays;return a!==e.daily_model_snapshot_retention_after_days?{daily_model_snapshot_retention_after_days:a}:{}}function f(e,t){const a=[],i=t.detectorDescriptions.map(((e,t)=>({detector_index:t,description:e})));return e.analysis_config.detectors.forEach((e=>{i[e.detector_index].description!==e.detector_description&&a.push(i[e.detector_index])})),a.length?{detectors:a}:{}}function g(e,t){const a={};return t&&t.customUrls&&(a.custom_settings=e.custom_settings||{},a.custom_settings.custom_urls=t.customUrls),a}function h(e,t){const a={};if(void 0!==e.datafeed_config){const i=JSON.stringify(e.datafeed_config.query),n=JSON.parse(t.datafeedQuery);i!==JSON.stringify(n)&&(a.query=n),e.datafeed_config.query_delay!==t.datafeedQueryDelay&&(a.query_delay=t.datafeedQueryDelay),e.datafeed_config.frequency!==t.datafeedFrequency&&""!==t.datafeedFrequency&&(a.frequency=t.datafeedFrequency),e.datafeed_config.scroll_size!==t.datafeedScrollSize&&(a.scroll_size=t.datafeedScrollSize)}return a}},function(e,t,a){t.format_value=a(180).format_value,t.parse_value=a(180).parse_value,t.RRule=a(202).RRule,t.parse_calendar=a(293).parse_calendar,t.ParseError=a(293).ParseError,t.CalendarObject=a(133).CalendarObject,t.CalendarProperty=a(133).CalendarProperty,t.iCalendar=a(203).iCalendar,t.VEvent=a(432).VEvent,t.VTimezone=a(433).VTimezone,t.PRODID="-//Tri Tech Computers//node-icalendar//EN"},function(e,t,a){a(232);var i=a(181),n=a(180),s=a(133).CalendarObject,o=a(133).schema,r=a(133).properties,l=a(203).iCalendar,c=n.parse_value,d=(n.format_value,t.ParseError=function(){Error.apply(this,arguments)});function u(e,t){var a=e.calendar;return function i(n,l,d){if("BEGIN"==n){var p=(o[l]||{}).factory,m=void 0!==p?new p(a):new s(a,l);return u(m,(function(){return e.addComponent(m),i.apply(this,arguments)}))}if("END"==n)return t;var b=r[n]||{};return l=c(b.type,l,d,a,b.list),e.addProperty(n,l,d),i}}function p(e){var t,a,i={},n=PROP_NAME,s=0;function o(e){n=e,s=l+1}function r(){return e.substr(s,l-s)}for(var l=0,c=e.length;l("min"===a&&t.push(i.i18n.translate("xpack.ml.dataframe.analytics.create.modelMemoryUnitsMinError",{defaultMessage:"Model memory limit is lower than estimated value {mml}",values:{mml:e.min.minValue}})),"invalidUnits"===a&&t.push(i.i18n.translate("xpack.ml.dataframe.analytics.create.modelMemoryUnitsInvalidError",{defaultMessage:"Model memory limit data unit unrecognized. It must be {str}",values:{str:j}})),t)),[])}const y=e=>{var t;const{jobConfig:a}=e,i=null==a||null===(t=a.source)||void 0===t?void 0:t.index;return"string"==typeof i?i:Array.isArray(i)?i.join(","):""},O=(e,t)=>{let a=0===Object.keys(r.indexPatterns.validate(e)).length;return a&&("string"==typeof t&&(a=!t.includes(",")),Array.isArray(t)&&(a=!t.some((e=>null==e?void 0:e.includes(","))))),a},E=e=>"number"==typeof e&&e>=c.m&&Number.isInteger(e),w=e=>{var t,a,n,s,o,r;const{jobIdEmpty:l,jobIdValid:u,jobIdExists:p,jobType:b,createIndexPattern:f}=e.form,{jobConfig:g}=e;e.advancedEditorMessages=[];const h=y(e),j=""===h,v=null==g||null===(t=g.source)||void 0===t?void 0:t.index,w=O(h,v),M=null!==(a=null==g||null===(n=g.dest)||void 0===n?void 0:n.index)&&void 0!==a?a:"",S=""===M,_=Object(d.a)(M),T=void 0!==e.indexPatternsMap[M],C=(null==g||null===(s=g.analyzed_fields)||void 0===s?void 0:s.includes)||[],k="string"==typeof(null==g||null===(o=g.dest)||void 0===o?void 0:o.results_field)&&""===(null==g||null===(r=g.dest)||void 0===r?void 0:r.results_field.trim()),F=g.model_memory_limit,I=""===F||void 0===F;if(!I&&void 0!==F){const{valid:t}=Object(m.y)(F);e.form.modelMemoryLimitUnitValid=t}let D=!1,A=!0,L=!0,R=!0;if(void 0!==g.analysis||b!==c.b.CLASSIFICATION&&b!==c.b.REGRESSION||(D=!0),void 0!==g.analysis&&(Object(c.E)(g.analysis)||Object(c.z)(g.analysis))){const t=Object(c.u)(g.analysis)||"";D=""===t,!D&&Array.isArray(C)&&C.length>0&&!C.includes(t)&&(A=!1,e.advancedEditorMessages.push({error:i.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditorMessage.includesInvalid",{defaultMessage:"The dependent variable must be included."}),message:""}));const a=Object(c.y)(g.analysis);void 0!==a&&(isNaN(a)||"number"!=typeof a||ac.q)&&(L=!1,e.advancedEditorMessages.push({error:i.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditorMessage.trainingPercentInvalid",{defaultMessage:"The training percent must be a number between {min} and {max}.",values:{min:c.r,max:c.q}}),message:""}));const n=Object(c.w)(g.analysis);void 0!==n&&(R=E(n),!1===R&&e.advancedEditorMessages.push({error:i.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditorMessage.numTopFeatureImportanceValuesInvalid",{defaultMessage:"The value for num_top_feature_importance_values must be an integer of {min} or higher.",values:{min:0}}),message:""}))}return j?e.advancedEditorMessages.push({error:i.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditorMessage.sourceIndexNameEmpty",{defaultMessage:"The source index name must not be empty."}),message:""}):w||e.advancedEditorMessages.push({error:i.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditorMessage.sourceIndexNameValid",{defaultMessage:"Invalid source index name."}),message:""}),S?e.advancedEditorMessages.push({error:i.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditorMessage.destinationIndexNameEmpty",{defaultMessage:"The destination index name must not be empty."}),message:""}):T&&!f?e.advancedEditorMessages.push({error:i.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditorMessage.destinationIndexNameExistsWarn",{defaultMessage:"An index with this destination index name already exists. Be aware that running this analytics job will modify this destination index."}),message:""}):_||e.advancedEditorMessages.push({error:i.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditorMessage.destinationIndexNameValid",{defaultMessage:"Invalid destination index name."}),message:""}),k&&e.advancedEditorMessages.push({error:i.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditorMessage.resultsFieldEmptyString",{defaultMessage:"The results field must not be an empty string."}),message:""}),D&&e.advancedEditorMessages.push({error:i.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditorMessage.dependentVariableEmpty",{defaultMessage:"The dependent variable field must not be empty."}),message:""}),I&&e.advancedEditorMessages.push({error:i.i18n.translate("xpack.ml.dataframe.analytics.create.advancedEditorMessage.modelMemoryLimitEmpty",{defaultMessage:"The model memory limit field must not be empty."}),message:""}),e.form.modelMemoryLimitUnitValid||e.advancedEditorMessages.push({error:x,message:""}),e.form.destinationIndexPatternTitleExists=T,e.isValid=A&&L&&e.form.modelMemoryLimitUnitValid&&!l&&u&&!p&&!j&&w&&!S&&_&&!k&&!D&&!I&&(R||b===c.b.OUTLIER_DETECTION)&&(!T||!f),e},M=Object(n.memoize)((e=>Object(b.a)(Object(b.f)(),function(e){return t=>{if(!t||!e)return null;const a=o()(t.toUpperCase()).value();return o()(e.toUpperCase()).value()>a?{min:{minValue:e,actualValue:t}}:null}}(e),Object(b.d)()))),S=Object(n.memoize)(((e,t)=>M(e)(t)),((...e)=>e.join("_"))),_=e=>{const{jobIdEmpty:t,jobIdValid:a,jobIdExists:i,jobType:n,sourceIndexNameEmpty:s,sourceIndexNameValid:o,destinationIndexNameEmpty:r,destinationIndexNameValid:l,destinationIndexPatternTitleExists:d,createIndexPattern:u,dependentVariable:p,modelMemoryLimit:m,numTopFeatureImportanceValuesValid:b}=e.form,{estimatedModelMemoryLimit:f}=e,g=void 0===n,h=(n===c.b.REGRESSION||n===c.b.CLASSIFICATION)&&""===p,j=S(f,m),x=null!==j&&(void 0!==j.invalidUnits||!0===j.required);return e.form.modelMemoryLimitValidationResult=j,e.isValid=!g&&!x&&!t&&a&&!i&&!s&&o&&!r&&l&&!h&&(b||n===c.b.OUTLIER_DETECTION)&&(!d||!u),e};function T(e,t){var a;switch(t.type){case u.a.ADD_REQUEST_MESSAGE:const i=e.requestMessages;return i.push(t.requestMessage),{...e,requestMessages:i};case u.a.RESET_REQUEST_MESSAGES:return{...e,requestMessages:[]};case u.a.RESET_ADVANCED_EDITOR_MESSAGES:return{...e,advancedEditorMessages:[]};case u.a.RESET_FORM:return Object(p.e)();case u.a.SET_ADVANCED_EDITOR_RAW_STRING:let s,o=!1;try{s=JSON.parse(h(t.advancedEditorRawString));const a=e.form.runtimeMappings&&s.source.runtime_mappings&&!Object(n.isEqual)(e.form.runtimeMappings,s.source.runtime_mappings);o=Object(g.d)(s)||a}catch(a){return{...e,advancedEditorRawString:t.advancedEditorRawString,isAdvancedEditorValidJson:!1,disableSwitchToForm:!0,advancedEditorMessages:[]}}return{...w({...e,jobConfig:s}),advancedEditorRawString:t.advancedEditorRawString,isAdvancedEditorValidJson:!0,disableSwitchToForm:o};case u.a.SET_FORM_STATE:const l={...e.form,...t.payload};if(void 0!==t.payload.destinationIndex&&(l.destinationIndexNameEmpty=""===l.destinationIndex,l.destinationIndexNameValid=Object(d.a)(l.destinationIndex),l.destinationIndexPatternTitleExists=void 0!==e.indexPatternsMap[l.destinationIndex]),void 0!==t.payload.jobId&&(l.jobIdEmpty=""===l.jobId,l.jobIdValid=Object(m.l)(l.jobId),l.jobIdInvalidMaxLength=!!Object(b.c)(f.b)(l.jobId)),void 0!==t.payload.sourceIndex){l.sourceIndexNameEmpty=""===l.sourceIndex;const e=r.indexPatterns.validate(l.sourceIndex);l.sourceIndexNameValid=0===Object.keys(e).length}return void 0!==t.payload.numTopFeatureImportanceValues&&(l.numTopFeatureImportanceValuesValid=E(null==l?void 0:l.numTopFeatureImportanceValues)),e.isAdvancedEditorEnabled?w({...e,form:l}):_({...e,form:l});case u.a.SET_INDEX_PATTERN_TITLES:{const a={...e,...t.payload};return a.form.destinationIndexPatternTitleExists=void 0!==a.indexPatternsMap[a.form.destinationIndex],a}case u.a.SET_IS_JOB_CREATED:return{...e,isJobCreated:t.isJobCreated};case u.a.SET_IS_JOB_STARTED:return{...e,isJobStarted:t.isJobStarted};case u.a.SET_JOB_CONFIG:return w({...e,jobConfig:t.payload});case u.a.SWITCH_TO_ADVANCED_EDITOR:const c=Object(p.f)(e.form),j=Object(g.d)(c);return w({...e,advancedEditorRawString:JSON.stringify(c,null,2),isAdvancedEditorEnabled:!0,disableSwitchToForm:j,hasSwitchedToEditor:!0,jobConfig:c});case u.a.SWITCH_TO_FORM:const{jobConfig:x}=e,{jobId:v}=e.form,M=Object(p.d)(x,!1);"string"==typeof v&&""!==v.trim()&&(M.jobId=v),M.jobIdEmpty=""===v,M.jobIdValid=Object(m.l)(v),M.jobIdInvalidMaxLength=!!Object(b.c)(f.b)(v),M.destinationIndexNameEmpty=""===M.destinationIndex,M.destinationIndexNameValid=Object(d.a)(M.destinationIndex||""),M.destinationIndexPatternTitleExists=void 0!==e.indexPatternsMap[M.destinationIndex||""],void 0!==M.numTopFeatureImportanceValues&&(M.numTopFeatureImportanceValuesValid=E(M.numTopFeatureImportanceValues));const S=y(e),T=null==x||null===(a=x.source)||void 0===a?void 0:a.index,C=O(S,T);return M.sourceIndexNameValid=C,_({...e,form:M,isAdvancedEditorEnabled:!1,advancedEditorRawString:JSON.stringify(x,null,2),jobConfig:x});case u.a.SET_ESTIMATED_MODEL_MEMORY_LIMIT:return{...e,estimatedModelMemoryLimit:t.value};case u.a.SET_JOB_CLONE:return{...e,cloneJob:t.cloneJob}}return e}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));const i=window;function n(e){return"string"==typeof e&&e===e.toLowerCase()&&/^[^\*\\/\?"<>|\s,#:]+$/.test(e)&&/^[^-_\+]+$/.test(e.charAt(0))&&"."!==e&&".."!==e&&function(e){return!(i.TextEncoder&&new i.TextEncoder("utf-8").encode(e).length>255)&&e.length<=255}(e)}},function(e,t,a){e.exports=a(56)(3640)},function(e,t,a){e.exports=a(56)(3676)},function(e,t,a){e.exports=a(300)},function(e,t,a){var i=a(301),n=a(206),s=a(302),o=a(138);e.exports=function(e,t){return(o(e)?i:n)(e,s(t))}},function(e,t,a){e.exports=a(56)(3641)},function(e,t,a){e.exports=a(56)(3628)},function(e,t,a){var i=a(458),n=a(459),s=a(148),o=a(138);e.exports=function(e,t){return(o(e)?i:n)(e,s(t,3))}},function(e,t,a){e.exports=a(56)(1599)},function(e,t,a){e.exports=a(56)(3303)},function(e,t,a){var i=a(183);e.exports=function(e){return e==e&&!i(e)}},function(e,t){e.exports=function(e,t){return function(a){return null!=a&&a[e]===t&&(void 0!==t||e in Object(a))}}},function(e,t,a){var i=a(464),n=a(309);e.exports=function(e,t){return null!=e&&n(e,t,i)}},function(e,t,a){var i=a(236),n=a(237),s=a(138),o=a(310),r=a(465),l=a(207);e.exports=function(e,t,a){for(var c=-1,d=(t=i(t,e)).length,u=!1;++c0&&(s=l.removeMin(),(o=r[s]).distance!==Number.POSITIVE_INFINITY);)i(s).forEach(c);return r}(e,String(t),a||s,i||function(t){return e.outEdges(t)})};var s=i.constant(1)},function(e,t,a){var i=a(134);function n(){this._arr=[],this._keyIndices={}}e.exports=n,n.prototype.size=function(){return this._arr.length},n.prototype.keys=function(){return this._arr.map((function(e){return e.key}))},n.prototype.has=function(e){return i.has(this._keyIndices,e)},n.prototype.priority=function(e){var t=this._keyIndices[e];if(void 0!==t)return this._arr[t].priority},n.prototype.min=function(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key},n.prototype.add=function(e,t){var a=this._keyIndices;if(e=String(e),!i.has(a,e)){var n=this._arr,s=n.length;return a[e]=s,n.push({key:e,priority:t}),this._decrease(s),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key},n.prototype.decrease=function(e,t){var a=this._keyIndices[e];if(t>this._arr[a].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[a].priority+" New: "+t);this._arr[a].priority=t,this._decrease(a)},n.prototype._heapify=function(e){var t=this._arr,a=2*e,i=a+1,n=e;a>1].priority{const a=Object(l.a)(r.FIELD_FORMAT_IDS.BYTES),p=Object(l.a)(r.FIELD_FORMAT_IDS.DATE),m=Object(l.a)(r.FIELD_FORMAT_IDS.DURATION),b=Object(n.useEuiTheme)(),f=[{id:"deployment_id",field:"deployment_id",name:s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.deploymentIdHeader",{defaultMessage:"ID"}),width:"150px",sortable:!0,truncateText:!1,"data-test-subj":"mlAllocatedModelsTableDeploymentId"},{name:s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.modelRoutingStateHeader",{defaultMessage:"Routing state"}),width:"100px","data-test-subj":"mlAllocatedModelsTableRoutingState",render:e=>{const{routing_state:t,reason:a}=e.node.routing_state;return Object(i.jsx)(n.EuiToolTip,{content:a||""},Object(i.jsx)(n.EuiBadge,{color:a?"danger":"hollow"},t))}},{id:"node_name",field:"node.name",name:s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.nodeNameHeader",{defaultMessage:"Node name"}),width:"150px",sortable:!0,truncateText:!1,"data-test-subj":"mlAllocatedModelsTableNodeName"},{id:"model_id",field:"model_id",name:s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.modelNameHeader",{defaultMessage:"Name"}),width:"250px",sortable:!0,truncateText:!1,"data-test-subj":"mlAllocatedModelsTableName"},{name:s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.modelSizeHeader",{defaultMessage:"Size"}),width:"100px",truncateText:!0,"data-test-subj":"mlAllocatedModelsTableSize",render:e=>a(e.required_native_memory_bytes)},{name:Object(i.jsx)(n.EuiToolTip,{content:s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.allocationTooltip",{defaultMessage:"number_of_allocations times threads_per_allocation"})},Object(i.jsx)("span",null,s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.allocationHeader",{defaultMessage:"Allocation"}),Object(i.jsx)(n.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),width:"100px",truncateText:!1,"data-test-subj":"mlAllocatedModelsTableAllocation",render:e=>`${e.node.number_of_allocations} * ${e.node.threads_per_allocation}`},{name:Object(i.jsx)(n.EuiToolTip,{content:s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.throughputLastMinuteTooltip",{defaultMessage:"The number of requests processed in the last 1 minute."})},Object(i.jsx)("span",null,s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.throughputLastMinuteHeader",{defaultMessage:"Throughput"}),Object(i.jsx)(n.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"}))),field:"node.throughput_last_minute",width:"100px",truncateText:!1,"data-test-subj":"mlAllocatedModelsTableThroughput"},{name:Object(i.jsx)(n.EuiToolTip,{display:"block",title:Object(i.jsx)(o.FormattedMessage,{id:"xpack.ml.trainedModels.nodesList.modelsList.modelAvgInferenceTimeTooltipHeader",defaultMessage:"Average inference time"}),content:Object(i.jsx)(o.FormattedMessage,{id:"xpack.ml.trainedModels.nodesList.modelsList.modelAvgInferenceTimeTooltipMessage",defaultMessage:"If caching is enabled, fast cache hits are included when calculating the average inference time."})},Object(i.jsx)(n.EuiFlexGroup,{gutterSize:"xs"},Object(i.jsx)(n.EuiFlexItem,{grow:!1,css:c},Object(i.jsx)("span",{css:d},Object(i.jsx)(o.FormattedMessage,{id:"xpack.ml.trainedModels.nodesList.modelsList.modelAvgInferenceTimeHeader",defaultMessage:"Avg inference time"}))),Object(i.jsx)(n.EuiFlexItem,{grow:!1,css:Object(i.css)({minWidth:b.euiTheme.size.m},"","")},Object(i.jsx)(n.EuiIcon,{size:"s",color:"subdued",type:"questionInCircle",className:"eui-alignTop"})))),width:"100px",truncateText:!1,"data-test-subj":"mlAllocatedModelsTableAvgInferenceTime",render:e=>e.node.average_inference_time_ms?m(e.node.average_inference_time_ms):"-"},{name:s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.modelInferenceCountHeader",{defaultMessage:"Inference count"}),width:"100px","data-test-subj":"mlAllocatedModelsTableInferenceCount",render:e=>e.node.inference_count},{name:s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.modelStartTimeHeader",{defaultMessage:"Start time"}),width:"200px","data-test-subj":"mlAllocatedModelsTableStartedTime",render:e=>p(e.node.start_time)},{name:s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.modelLastAccessHeader",{defaultMessage:"Last access"}),width:"200px","data-test-subj":"mlAllocatedModelsTableInferenceCount",render:e=>e.node.last_access?p(e.node.last_access):"-"},{name:s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.modelNumberOfPendingRequestsHeader",{defaultMessage:"Pending requests"}),width:"100px","data-test-subj":"mlAllocatedModelsTableNumberOfPendingRequests",render:e=>e.node.number_of_pending_requests},{name:s.i18n.translate("xpack.ml.trainedModels.nodesList.modelsList.errorCountHeader",{defaultMessage:"Errors"}),width:"60px","data-test-subj":"mlAllocatedModelsTableErrorCount",render:e=>{var t;return null!==(t=e.node.error_count)&&void 0!==t?t:0}}].filter((e=>!t.includes(e.id)));return Object(i.jsx)(n.EuiInMemoryTable,{allowNeutralSort:!1,columns:f,hasActions:!1,isExpandable:!1,isSelectable:!1,items:e,itemId:"key",rowProps:e=>({"data-test-subj":`mlAllocatedModelTableRow row-${e.model_id}`}),onTableChange:()=>{},"data-test-subj":"mlNodesAllocatedModels",css:u})}},,,,,,,function(e,t,a){"use strict";a.d(t,"b",(function(){return l})),a.d(t,"a",(function(){return c}));var i=a(2),n=a(28),s=a(15),o=a(186),r=a(4);const l=50,c=({defaultTitle:e,initialInput:t,onCreate:a,onCancel:c})=>{var d;const[u,p]=Object(i.useState)(e),[m,b]=Object(i.useState)(null!==(d=null==t?void 0:t.maxSeriesToPlot)&&void 0!==d?d:o.b),f=u.length>0,g=m>=1&&m<=l,h=f&&g;return Object(r.jsx)(n.EuiModal,{initialFocus:"[name=panelTitle]",onClose:c,"data-test-subj":"mlAnomalyChartsEmbeddableInitializer"},Object(r.jsx)(n.EuiModalHeader,null,Object(r.jsx)(n.EuiModalHeaderTitle,null,Object(r.jsx)(s.FormattedMessage,{id:"xpack.ml.anomalyChartsEmbeddable.setupModal.title",defaultMessage:"Anomaly explorer charts configuration"}))),Object(r.jsx)(n.EuiModalBody,null,Object(r.jsx)(n.EuiForm,null,Object(r.jsx)(n.EuiFormRow,{label:Object(r.jsx)(s.FormattedMessage,{id:"xpack.ml.anomalyChartsEmbeddable.panelTitleLabel",defaultMessage:"Panel title"}),isInvalid:!f},Object(r.jsx)(n.EuiFieldText,{"data-test-subj":"panelTitleInput",id:"panelTitle",name:"panelTitle",value:u,onChange:e=>p(e.target.value),isInvalid:!f})),Object(r.jsx)(n.EuiFormRow,{isInvalid:!g,error:g?void 0:Object(r.jsx)(s.FormattedMessage,{id:"xpack.ml.anomalyChartsEmbeddable.maxSeriesToPlotError",defaultMessage:"Maximum number of series to plot must be between 1 and 50."}),label:Object(r.jsx)(s.FormattedMessage,{id:"xpack.ml.anomalyChartsEmbeddable.maxSeriesToPlotLabel",defaultMessage:"Maximum number of series to plot"})},Object(r.jsx)(n.EuiFieldNumber,{"data-test-subj":"mlAnomalyChartsInitializerMaxSeries",id:"selectMaxSeriesToPlot",name:"selectMaxSeriesToPlot",value:m,onChange:e=>b(parseInt(e.target.value,10)),min:1,max:l})))),Object(r.jsx)(n.EuiModalFooter,null,Object(r.jsx)(n.EuiButtonEmpty,{onClick:c,"data-test-subj":"mlAnomalyChartsInitializerCancelButton"},Object(r.jsx)(s.FormattedMessage,{id:"xpack.ml.anomalyChartsEmbeddable.setupModal.cancelButtonLabel",defaultMessage:"Cancel"})),Object(r.jsx)(n.EuiButton,{"data-test-subj":"mlAnomalyChartsInitializerConfirmButton",isDisabled:!h,onClick:a.bind(null,{panelTitle:u,maxSeriesToPlot:m}),fill:!0},Object(r.jsx)(s.FormattedMessage,{id:"xpack.ml.anomalyChartsEmbeddable.setupModal.confirmButtonLabel",defaultMessage:"Confirm configurations"}))))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));var i=a(28);function n(e){switch(e){case"anomaly-detector":return Object(i.euiPaletteWarm)(5)[1];case"data-frame-analytics":return Object(i.euiPalettePositive)(5)[2];case"trained-model":return Object(i.euiPaletteForTemperature)(5)[1];case"estimated-available-memory":return Object(i.euiPaletteGray)(5)[0];case"jvm-heap-size":return Object(i.euiPaletteComplementary)(5)[4];default:return Object(i.euiPaletteGray)(5)[4]}}},,,,,function(e,t,a){"use strict";a.d(t,"a",(function(){return $}));var i=a(5),n=a.n(i),s=a(2),o=a.n(s),r=a(28),l=a(15),c=a(6),d=a(21),u=a(99),p=a(40),m=a(9),b=a(157),f=a(39),g=a.n(f),h=a(7),j=a(34),x=a.n(j),v=a(414),y=a.n(v),O=a(3),E=a(78),w=a(67),M=a(22),S=a(126);const _={KIBANA_DASHBOARD:"KIBANA_DASHBOARD",KIBANA_DISCOVER:"KIBANA_DISCOVER",OTHER:"OTHER"},T={AUTO:"auto",INTERVAL:"interval"};var C=a(106),k=a(41),F=a(116),I=a(12),D=a(215);function A(e,t,a){var i,n;const s={queryFieldNames:[]};let o=_.OTHER;void 0!==t&&t.length>0?(o=_.KIBANA_DASHBOARD,s.dashboardId=t[0].id):void 0!==a&&a.length>0&&(o=_.KIBANA_DISCOVER);let r,l,c,d,p={};var m,b;if(Object(D.a)(e)&&void 0!==a&&a.length>0&&void 0!==e.datafeed_config&&void 0!==e.datafeed_config.indices&&e.datafeed_config.indices.length>0)r=e.datafeed_config.indices.join(),p=null!==(m=null===(b=e.datafeed_config)||void 0===b?void 0:b.query)&&void 0!==m?m:{},d=e.job_id;else if(Object(u.C)(e)&&void 0!==a&&a.length>0){var f,g;r=e.dest.index,l=e.source.index[0],p=null!==(f=null===(g=e.source)||void 0===g?void 0:g.query)&&void 0!==f?f:{},d=e.id}const h=null===(i=a.find((e=>e.title===r)))||void 0===i?void 0:i.id;var j;return void 0===h&&void 0!==l&&(c=null===(j=a.find((e=>e.title===l)))||void 0===j?void 0:j.id),s.discoverIndexPatternId=null!==(n=null!=h?h:c)&&void 0!==n?n:"",s.filters=null===h?[]:Object(C.i)(p,h,d),{label:"",type:o,timeRange:{type:T.AUTO,interval:""},kibanaSettings:s,otherUrlSettings:{urlValue:""}}}function L(e){return e.type!==T.INTERVAL||null!==Object(k.a)(e.interval)}function R(e,t){if(t.type===_.KIBANA_DASHBOARD)return async function(e,t){var a,i,n,s;const{dashboardId:o,queryFieldNames:r}=null!==(a=t.kibanaSettings)&&void 0!==a?a:{};if(!e)throw Error(`Missing dashboard service (got ${e})`);if(!Object(M.a)(o))throw Error(`DashboardId is invalid (got ${o})`);const l=await e.findDashboardsService(),c=await l.findByIds([o]);if(!c||0===c.length||"error"===c[0].status)throw Error(`Unable to find dashboard with id ${o} (got ${c})`);const d=c[0];let u,p=null==t||null===(i=t.kibanaSettings)||void 0===i?void 0:i.filters;const m=d.attributes.kibanaSavedObjectMeta.searchSourceJSON;if(void 0!==m){const e=JSON.parse(m);Array.isArray(e.filter)&&e.filter.length>0&&(p=e.filter),u=e.query}const b=P(null!=r?r:[]);void 0!==b&&(u=b);const{from:f,to:g}=N(t),h=await(null===(n=e.locator)||void 0===n?void 0:n.getLocation({dashboardId:o,timeRange:{from:f,to:g,mode:"absolute"},filters:p,query:u,useHash:!1})),j=null==h?void 0:h.state,x=Object(O.setStateToKbnUrl)("_a",Object(E.cleanEmptyKeys)({query:j.query,filters:null===(s=j.filters)||void 0===s?void 0:s.filter((e=>!Object(w.isFilterPinned)(e))),savedQuery:j.savedQuery}),{useHash:!1,storeInHashQuery:!0},null==h?void 0:h.path),v={url_name:t.label,url_value:decodeURIComponent(`dashboards${y.a.parse(x).hash}`),time_range:T.AUTO};return t.timeRange.type===T.INTERVAL&&(v.time_range=t.timeRange.interval),t.customTimeRange&&(v.is_custom_time_range=!0),v}(e,t);if(t.type===_.KIBANA_DISCOVER)return Promise.resolve(function(e){var t;const{discoverIndexPatternId:a,queryFieldNames:i,filters:n}=null!==(t=e.kibanaSettings)&&void 0!==t?t:{},{from:s,to:o}=N(e),r=x.a.encode({time:{from:s,to:o,mode:"absolute"}}),l={index:a,filters:n},c=P(null!=i?i:[]);void 0!==c&&(l.query=c);const d=`discover#/?_g=${r}&_a=${x.a.encode(l)}`,u={url_name:e.label,url_value:d,time_range:T.AUTO};return e.timeRange.type===T.INTERVAL&&(u.time_range=e.timeRange.interval),e.customTimeRange&&(u.is_custom_time_range=!0),u}(t));{var a,i;const e={url_name:t.label,url_value:null!==(a=null===(i=t.otherUrlSettings)||void 0===i?void 0:i.urlValue)&&void 0!==a?a:"",...t.customTimeRange?{is_custom_time_range:!0}:{}};return Promise.resolve(e)}}function N(e){var t,a;let i,n;return e.customTimeRange&&e.customTimeRange.start&&e.customTimeRange.end&&(i=e.customTimeRange.start.toISOString(),n=e.customTimeRange.end.toISOString()),{from:null!==(t=i)&&void 0!==t?t:"$earliest$",to:null!==(a=n)&&void 0!==a?a:"$latest$"}}function P(e){let t;if(void 0!==e&&e.length>0){let a="";e.forEach(((e,t)=>{t>0&&(a+=" and "),a+=`${Object(F.c)(e)}:"$${e}$"`})),t={language:"kuery",query:a}}return t}function z(e,t,a,i){return Object(u.C)(e)?async function(e,t,a,i){let n,s,o=t.url_value;try{var r,l;if(s=await I.ml.esSearch({index:e.dest.index,body:{size:1}}),s&&s.hits.total.value>0?n=s.hits.hits[0]._source:(s=await I.ml.esSearch({index:Array.isArray(e.source.index)?e.source.index.join(","):e.source.index,body:{size:1}}),n=null===(r=s)||void 0===r||null===(l=r.hits)||void 0===l?void 0:l.hits[0]._source),n){const e=void 0!==t.time_range?Object(k.a)(t.time_range):null;if(null!==e&&null!==a){const i=n[a],s=t.url_value;if(s.includes("$earliest$")){const t=g()(i);t.subtract(e),n.earliest=t.toISOString()}if(s.includes("$latest$")){const t=g()(i);t.add(e),n.latest=t.toISOString()}o=Object(F.f)(t.url_value,n,!0)}else o=Object(b.e)(t,n,i)}return o}catch(e){}return o}(e,t,a,i):async function(e,t){const a=Object(k.a)(e.analysis_config.bucket_span),i=null!==a?a.asSeconds():0;let n=t.url_value;const s={query:{bool:{must:[{term:{job_id:e.job_id}},{term:{result_type:"record"}}]}},size:1,_source:{excludes:[]},sort:[{record_score:{order:"desc"}}]};let o;try{o=await I.ml.results.anomalySearch({body:s},[e.job_id])}catch(e){}if(o&&o.hits.total.value>0){const e=o.hits.hits[0]._source;return n=Object(b.f)(t,i,e,"timestamp"),n}{let a=Object(h.cloneDeep)(e),{datafeed_config:s}=a;try{var r,l;const[{jobs:t},{datafeeds:i}]=await Promise.all([I.ml.getJobs({jobId:e.job_id}),I.ml.getDatafeeds({datafeedId:null!==(r=null===(l=e.datafeed_config)||void 0===l?void 0:l.datafeed_id)&&void 0!==r?r:""})]);s=i[0],a=t[0]}catch(e){}if(void 0===a||void 0===s)return n;void 0!==s.authorization&&delete s.authorization,s&&void 0!==a.datafeed_config&&delete a.datafeed_config;const o=await I.ml.jobs.datafeedPreview(void 0,a,s),c=e.data_description.time_field,d=o[0];return void 0!==d&&(n=Object(b.f)(t,i,d,c)),n}}(e,t)}var B=a(4);const V=({job:e,customUrls:t,onChange:a,dataViewListItems:i})=>{const{services:{http:n,notifications:d,data:{dataViews:f}}}=Object(m.d)(),[g,h]=Object(s.useState)(null),j=t.map(((s,m)=>{const j=s.url_name,x=[...t];x.splice(m,1);const v=!Object(b.b)(j,x),y=v?[c.i18n.translate("xpack.ml.customUrlEditorList.labelIsNotUniqueErrorMessage",{defaultMessage:"A unique label must be supplied"})]:[],O=s.time_range,E=!0===s.is_custom_time_range,w=!function(e){return void 0===e||0===e.length||e===T.AUTO||null!==Object(k.a)(e)}(O),M=w?[c.i18n.translate("xpack.ml.customUrlEditorList.invalidTimeRangeFormatErrorMessage",{defaultMessage:"Invalid format"})]:[];return Object(B.jsx)(o.a.Fragment,null,Object(B.jsx)(r.EuiFlexGroup,{key:`url_${m}`,"data-test-subj":`mlJobEditCustomUrlItem_${m}`},Object(B.jsx)(r.EuiFlexItem,{grow:!1},Object(B.jsx)(r.EuiFormRow,{label:Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.customUrlEditorList.labelLabel",defaultMessage:"Label"}),isInvalid:v,error:y,"data-test-subj":"mlJobEditCustomUrlItemLabel"},Object(B.jsx)(r.EuiFieldText,{value:j,isInvalid:v,onChange:e=>((e,i)=>{i{e&&e.focus()},fullWidth:!0,value:s.url_value,onChange:e=>((e,i)=>{i{h(null)},"data-test-subj":`mlJobEditCustomUrlTextarea_${m}`}):Object(B.jsx)(r.EuiFieldText,{fullWidth:!0,value:s.url_value,readOnly:!0,onFocus:()=>h(m),"data-test-subj":`mlJobEditCustomUrlInput_${m}`}))),!1===E?Object(B.jsx)(r.EuiFlexItem,{grow:!1},Object(B.jsx)(r.EuiFormRow,{label:Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.customUrlEditorList.timeRangeLabel",defaultMessage:"Time range"}),error:M,isInvalid:w},Object(B.jsx)(r.EuiFieldText,{value:s.time_range||"",isInvalid:w,placeholder:T.AUTO,onChange:e=>((e,i)=>{if(i0?t[i].time_range=n:delete t[i].time_range,a([...t])}})(e,m)}))):null,Object(B.jsx)(r.EuiFlexItem,{grow:!1},Object(B.jsx)(r.EuiFormRow,{hasEmptyLabelSpace:!0},Object(B.jsx)(r.EuiToolTip,{content:Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.customUrlEditorList.testCustomUrlTooltip",defaultMessage:"Test custom URL"})},Object(B.jsx)(r.EuiButtonIcon,{size:"s",color:"primary",onClick:()=>(async a=>{const s=t[a];let o=null;if(ae.title===a)))||void 0===r?void 0:r.id,t||(t=null==i||null===(l=i.find((e=>e.title===n)))||void 0===l?void 0:l.id)}else{var m;t=null===(m=Object(p.b)(s.url_value)._a)||void 0===m?void 0:m.index}if(t){var g;const e=await f.get(t);o=null!==(g=null==e?void 0:e.timeFieldName)&&void 0!==g?g:null}}if(a(e=>{e{const[i,n]=Object(s.useState)(!1),{services:{data:{query:{timefilter:{timefilter:d}}}}}=Object(m.d)(),u=Object(s.useMemo)((()=>null!=t?t:{start:g()(d.getAbsoluteTime().from),end:g()(d.getAbsoluteTime().to)}),[t,d]),{start:p,end:b}=u;return Object(B.jsx)(o.a.Fragment,null,Object(B.jsx)(r.EuiSwitch,{disabled:a,label:c.i18n.translate("xpack.ml.customUrlsEditor.addCustomTimeRangeSwitchLabel",{defaultMessage:"Add custom time range"}),checked:i,onChange:t=>{return a=t.target.checked,e(!1===a?void 0:u),void n(a);var a}}),i?Object(B.jsx)(o.a.Fragment,null,Object(B.jsx)(r.EuiSpacer,{size:"s"}),Object(B.jsx)(r.EuiFormRow,{label:Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.customUrlsEditor.customTimeRangeLabel",defaultMessage:"Custom time range"})},Object(B.jsx)(r.EuiDatePickerRange,{"data-test-subj":"mlCustomUrlsDateRange",isInvalid:p>b,startDateControl:Object(B.jsx)(r.EuiDatePicker,{selected:p,onChange:t=>{e({...u,start:t})},startDate:p,endDate:b,"aria-label":c.i18n.translate("xpack.ml.customUrlsEditor.customTimeRangeStartDate",{defaultMessage:"Start date"}),showTimeSelect:!0}),endDateControl:Object(B.jsx)(r.EuiDatePicker,{selected:b,onChange:t=>{e({...u,end:t})},startDate:p,endDate:b,"aria-label":c.i18n.translate("xpack.ml.customUrlsEditor.customTimeRangeEndDate",{defaultMessage:"End date"}),showTimeSelect:!0})}))):null)};const U=({setAddIntervalTimerange:e,addIntervalTimerange:t,disabled:a})=>Object(B.jsx)(o.a.Fragment,null,Object(B.jsx)(r.EuiSpacer,{size:"xs"}),Object(B.jsx)(r.EuiSwitch,{"data-test-subj":"mlJobCustomUrlIntervalTimeRangeSwitch",disabled:a,showLabel:!0,label:c.i18n.translate("xpack.ml.customUrlsEditor.addIntervalTimeRangeSwitchLabel",{defaultMessage:"Add interval time range"}),checked:t,onChange:t=>e(t.target.checked)})),G=({customUrl:e,setEditCustomUrl:t,savedCustomUrls:a,dashboards:i,dataViewListItems:n,showCustomTimeRangeSelector:d,job:p})=>{var f;const[g,h]=Object(s.useState)([]),[j,x]=Object(s.useState)(!1),[v,y]=Object(s.useState)(!1),{services:{data:{dataViews:O}}}=Object(m.d)(),E=Object(s.useRef)(!0);if(Object(s.useEffect)((()=>{void 0!==p&&async function(){var t;let a;const i=null==e||null===(t=e.kibanaSettings)||void 0===t?void 0:t.discoverIndexPatternId;try{a=await O.get(null!=i?i:"")}catch(e){a=void 0}a&&a.timeFieldName&&x(!0);const n=await function(e,t,a){return Object(D.a)(t)&&e?function(e){const t=e.analysis_config.influencers,a=e.analysis_config.detectors,i=[];return void 0!==t&&i.push(...t),a.forEach(((t,a)=>{Object(C.k)(e,a).forEach((e=>{-1===i.indexOf(e)&&i.push(e)}))})),i}(t):!Object(u.C)(t)&&e||void 0===a?[]:function(e,t){var a;const i=null!==(a=t.fields.getAll().sort(((e,t)=>e.name.localeCompare(t.name))))&&void 0!==a?a:[];let n=e=>S.a.some((t=>{var a;return null===(a=e.esTypes)||void 0===a?void 0:a.includes(t)}));if(Object(u.C)(e)){const t=e.dest.results_field;n=e=>S.a.some((t=>{var a;return null===(a=e.esTypes)||void 0===a?void 0:a.includes(t)}))&&!e.name.startsWith(null!=t?t:u.f)}return i.filter(n).map((e=>e.name))}(t,a)}(E.current,p,a);h(n),E.current&&(E.current=!1)}()}),[O,p,null==e||null===(f=e.kibanaSettings)||void 0===f?void 0:f.discoverIndexPatternId]),Object(s.useEffect)((()=>{!1===v&&t({...e,timeRange:{type:T.AUTO,interval:""}})}),[v,t]),void 0===e)return null;const{label:w,type:M,timeRange:k,kibanaSettings:F,otherUrlSettings:I}=e,A=i.map((e=>({value:e.id,text:e.attributes.title}))),R=n.map((({id:e,title:t})=>({value:e,text:t}))),N=g.map((e=>({label:e})));let P=[];void 0!==F&&void 0!==F.queryFieldNames&&(P=F.queryFieldNames.map((e=>({label:e}))));const z=Object.values(T).map((e=>({value:e,text:e}))),V=!Object(b.b)(w,a),G=V?[c.i18n.translate("xpack.ml.customUrlsEditor.invalidLabelErrorMessage",{defaultMessage:"A unique label must be supplied"})]:[],q=!L(k),$=q?[c.i18n.translate("xpack.ml.customUrlsList.invalidIntervalFormatErrorMessage",{defaultMessage:"Invalid interval format"})]:[];return Object(B.jsx)(o.a.Fragment,null,Object(B.jsx)(r.EuiTitle,{size:"xs"},Object(B.jsx)("h4",null,Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.customUrlsEditor.createNewCustomUrlTitle",defaultMessage:"Create new custom URL"}))),Object(B.jsx)(r.EuiSpacer,{size:"m"}),Object(B.jsx)(r.EuiForm,{className:"ml-edit-url-form","data-test-subj":"mlJobCustomUrlForm"},Object(B.jsx)(r.EuiFormRow,{label:Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.customUrlsEditor.labelLabel",defaultMessage:"Label"}),error:G,isInvalid:V,display:"rowCompressed"},Object(B.jsx)(r.EuiFieldText,{name:"label",value:w,onChange:a=>{t({...e,label:a.target.value})},isInvalid:V,compressed:!0,"data-test-subj":"mlJobCustomUrlLabelInput"})),Object(B.jsx)(r.EuiFormRow,{label:Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.customUrlsEditor.linkToLabel",defaultMessage:"Link to"}),display:"rowCompressed"},Object(B.jsx)(r.EuiRadioGroup,{options:[{id:_.KIBANA_DASHBOARD,label:c.i18n.translate("xpack.ml.customUrlEditor.kibanaDashboardLabel",{defaultMessage:"Kibana dashboard"})},{id:_.KIBANA_DISCOVER,label:c.i18n.translate("xpack.ml.customUrlEditor.discoverLabel",{defaultMessage:"Discover"})},{id:_.OTHER,label:c.i18n.translate("xpack.ml.customUrlEditor.otherLabel",{defaultMessage:"Other"})}],idSelected:M,onChange:a=>{t({...e,type:a})},className:"url-link-to-radio","data-test-subj":"mlJobCustomUrlLinkToTypeInput"})),M===_.KIBANA_DASHBOARD&&Object(B.jsx)(r.EuiFormRow,{label:Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.customUrlsEditor.dashboardNameLabel",defaultMessage:"Dashboard name"}),display:"rowCompressed"},Object(B.jsx)(r.EuiSelect,{options:A,value:null==F?void 0:F.dashboardId,onChange:a=>{const i=e.kibanaSettings;t({...e,kibanaSettings:{...i,dashboardId:a.target.value}})},"data-test-subj":"mlJobCustomUrlDashboardNameInput",compressed:!0})),M===_.KIBANA_DISCOVER&&Object(B.jsx)(r.EuiFormRow,{label:Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.customUrlsEditor.dataViewLabel",defaultMessage:"Data view"}),display:"rowCompressed"},Object(B.jsx)(r.EuiSelect,{options:R,value:null==F?void 0:F.discoverIndexPatternId,onChange:a=>{const i=e.kibanaSettings;t({...e,kibanaSettings:{...i,discoverIndexPatternId:a.target.value,queryFieldNames:[]}})},"data-test-subj":"mlJobCustomUrlDiscoverIndexPatternInput",compressed:!0})),(M===_.KIBANA_DASHBOARD||M===_.KIBANA_DISCOVER)&&N.length>0&&Object(B.jsx)(r.EuiFormRow,{label:Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.customUrlsEditor.queryEntitiesLabel",defaultMessage:"Query entities"})},Object(B.jsx)(r.EuiComboBox,{placeholder:c.i18n.translate("xpack.ml.customUrlsEditor.selectEntitiesPlaceholder",{defaultMessage:"Select entities"}),options:N,selectedOptions:P,onChange:a=>{const i=a.map((e=>e.label)),n=e.kibanaSettings;t({...e,kibanaSettings:{...n,queryFieldNames:i}})},isClearable:!0,"data-test-subj":"mlJobCustomUrlQueryEntitiesInput"})),(M===_.KIBANA_DASHBOARD||M===_.KIBANA_DISCOVER)&&j&&Object(B.jsx)(o.a.Fragment,null,Object(B.jsx)(r.EuiSpacer,{size:"m"}),Object(B.jsx)(r.EuiFlexGroup,null,Object(B.jsx)(r.EuiFlexItem,{grow:!1},Object(B.jsx)(r.EuiFormRow,{label:Object(B.jsx)(r.EuiFlexGroup,{gutterSize:"none",alignItems:"center"},Object(B.jsx)(r.EuiFlexItem,{grow:!1},Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.customUrlsEditor.timeRangeLabel",defaultMessage:"Time range"})),d?Object(B.jsx)(r.EuiFlexItem,{grow:!1},Object(B.jsx)(r.EuiIconTip,{content:c.i18n.translate("xpack.ml.customUrlsEditor.timeRangeTooltip",{defaultMessage:"If not set, time range defaults to global settings."}),position:"top",type:"iInCircle"})):null),className:"url-time-range",display:"rowCompressed"},d?Object(B.jsx)(U,{disabled:void 0!==(null==e?void 0:e.customTimeRange),setAddIntervalTimerange:y,addIntervalTimerange:v}):Object(B.jsx)(r.EuiSelect,{options:z,value:k.type,onChange:a=>{const i=e.timeRange;t({...e,timeRange:{...i,type:a.target.value}})},"data-test-subj":"mlJobCustomUrlTimeRangeInput",compressed:!0}))),Object(B.jsx)(r.EuiFlexItem,null,d&&v||!d&&k.type===T.INTERVAL?Object(B.jsx)(r.EuiFormRow,{label:Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.customUrlsEditor.intervalLabel",defaultMessage:"Interval"}),className:"url-time-range",error:$,isInvalid:q,display:"rowCompressed"},Object(B.jsx)(r.EuiFieldText,{value:k.interval,onChange:a=>{t({...e,timeRange:{type:T.INTERVAL,interval:a.target.value},customTimeRange:void 0})},isInvalid:q,"data-test-subj":"mlJobCustomUrlTimeRangeIntervalInput",compressed:!0})):null)),(M===_.KIBANA_DASHBOARD||M===_.KIBANA_DISCOVER)&&d&&j?Object(B.jsx)(o.a.Fragment,null,Object(B.jsx)(r.EuiSpacer,null),Object(B.jsx)(J,{disabled:v,onCustomTimeRangeChange:a=>{t({...e,customTimeRange:a,timeRange:{type:T.AUTO,interval:""}})},customTimeRange:null==e?void 0:e.customTimeRange})):null),M===_.OTHER&&Object(B.jsx)(r.EuiFormRow,{label:Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.customUrlsEditor.urlLabel",defaultMessage:"URL"}),display:"rowCompressed",fullWidth:!0},Object(B.jsx)(r.EuiTextArea,{fullWidth:!0,rows:2,value:null==I?void 0:I.urlValue,onChange:a=>{t({...e,otherUrlSettings:{urlValue:a.target.value}})},"data-test-subj":"mlJobCustomUrlOtherTypeUrlInput",compressed:!0}))))};var q=a(291);class custom_urls_CustomUrlsUI extends s.Component{constructor(e){super(e),n()(this,"editNewCustomUrl",(()=>{this.setState((e=>{const{dashboards:t,dataViewListItems:a}=e;return{editorOpen:!0,editorSettings:A(this.props.job,t,a)}}))})),n()(this,"setEditCustomUrl",(e=>{this.setState({editorSettings:e})})),n()(this,"addNewCustomUrl",(()=>{const{dashboard:e}=this.props.kibana.services;R(e,this.state.editorSettings).then((e=>{const t=[...this.state.customUrls,e];this.props.setCustomUrls(t),this.setState({editorOpen:!1})})).catch((e=>{console.error("Error building custom URL from settings:",e);const{toasts:t}=this.props.kibana.services.notifications;t.addDanger(c.i18n.translate("xpack.ml.jobsList.editJobFlyout.customUrls.addNewUrlErrorNotificationMessage",{defaultMessage:"An error occurred building the new custom URL from the supplied settings"}))}))})),n()(this,"onTestButtonClick",(()=>{var e,t,a;const{http:{basePath:i},notifications:{toasts:n},data:{dataViews:s},dashboard:o}=this.props.kibana.services,r=null===(e=this.state)||void 0===e||null===(t=e.editorSettings)||void 0===t||null===(a=t.kibanaSettings)||void 0===a?void 0:a.discoverIndexPatternId,l=this.props.job;s.get(null!=r?r:"").catch((e=>{console.error("Error obtaining data view:",e)})).then((e=>{var t;const a=null!==(t=null==e?void 0:e.timeFieldName)&&void 0!==t?t:null;R(o,this.state.editorSettings).then((e=>{z(l,e,a,this.props.currentTimeFilter).then((t=>{Object(b.d)(t,e,i.get())})).catch((e=>{console.error("Error obtaining URL for test:",e),n.addWarning(c.i18n.translate("xpack.ml.jobsList.editJobFlyout.customUrls.getTestUrlErrorNotificationMessage",{defaultMessage:"An error occurred obtaining the URL to test the configuration"}))}))}))})).catch((e=>{console.error("Error building custom URL from settings:",e),n.addWarning(c.i18n.translate("xpack.ml.jobsList.editJobFlyout.customUrls.buildUrlErrorNotificationMessage",{defaultMessage:"An error occurred building the custom URL for testing from the supplied settings"}))}))})),n()(this,"closeEditor",(()=>{this.setState({editorOpen:!1})})),this.state={customUrls:[],dashboards:[],dataViewListItems:[],editorOpen:!1,supportedFilterFields:[]}}static getDerivedStateFromProps(e){return{job:e.job,customUrls:e.jobCustomUrls}}componentDidMount(){const{toasts:e}=this.props.kibana.services.notifications,{dashboardService:t}=this.props;t.fetchDashboards().then((e=>{this.setState({dashboards:e})})).catch((t=>{console.error("Error loading list of dashboards:",t),e.addDanger(c.i18n.translate("xpack.ml.jobsList.editJobFlyout.customUrls.loadSavedDashboardsErrorNotificationMessage",{defaultMessage:"An error occurred loading the list of saved Kibana dashboards"}))})),Object(q.a)().then((e=>{this.setState({dataViewListItems:e})})).catch((t=>{console.error("Error loading list of dashboards:",t),e.addDanger(c.i18n.translate("xpack.ml.jobsList.editJobFlyout.customUrls.loadDataViewsErrorNotificationMessage",{defaultMessage:"An error occurred loading the list of saved data views"}))}))}renderEditor(){var e;const{customUrls:t,editorOpen:a,editorSettings:i,dashboards:n,dataViewListItems:s}=this.state,o=null!==(e=this.props.editMode)&&void 0!==e?e:"inline",d=Object(B.jsx)(G,{showCustomTimeRangeSelector:Object(u.C)(this.props.job),customUrl:i,setEditCustomUrl:this.setEditCustomUrl,savedCustomUrls:t,dashboards:n,dataViewListItems:s,job:this.props.job}),p=!a||void 0===i||function(e,t){let a=Object(b.b)(e.label,t);return!0===a&&(a=L(e.timeRange)),a}(i,t),m=Object(B.jsx)(r.EuiButton,{onClick:this.addNewCustomUrl,isDisabled:!p,"data-test-subj":"mlJobAddCustomUrl"},Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.customUrls.addButtonLabel",defaultMessage:"Add"})),f=Object(B.jsx)(r.EuiButtonEmpty,{iconType:"popout",iconSide:"right",onClick:this.onTestButtonClick,isDisabled:!p},Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.customUrls.testButtonLabel",defaultMessage:"Test"}));return"inline"===o?Object(B.jsx)(r.EuiPanel,{className:"edit-custom-url-panel"},Object(B.jsx)(r.EuiButtonIcon,{color:"text",onClick:this.closeEditor,iconType:"cross","aria-label":c.i18n.translate("xpack.ml.jobsList.editJobFlyout.customUrls.closeEditorAriaLabel",{defaultMessage:"Close custom URL editor"})}),d,Object(B.jsx)(r.EuiSpacer,{size:"m"}),Object(B.jsx)(r.EuiFlexGroup,null,Object(B.jsx)(r.EuiFlexItem,{grow:!1},m),Object(B.jsx)(r.EuiFlexItem,{grow:!1},f))):Object(B.jsx)(r.EuiModal,{onClose:this.closeEditor,initialFocus:"[name=label]",style:{width:500},"data-test-subj":"mlJobNewCustomUrlFormModal"},Object(B.jsx)(r.EuiModalHeader,null,Object(B.jsx)(r.EuiModalHeaderTitle,null,Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.customUrls.addCustomUrlButtonLabel",defaultMessage:"Add custom URL"}))),Object(B.jsx)(r.EuiModalBody,null,d),Object(B.jsx)(r.EuiModalFooter,null,f,m))}render(){const{customUrls:e,editorOpen:t}=this.state,{editMode:a="inline"}=this.props;return Object(B.jsx)(o.a.Fragment,null,Object(B.jsx)(r.EuiSpacer,{size:"m"}),(!t||"modal"===a)&&Object(B.jsx)(r.EuiButton,{size:"s",onClick:this.editNewCustomUrl,"data-test-subj":"mlJobOpenCustomUrlFormButton"},Object(B.jsx)(l.FormattedMessage,{id:"xpack.ml.jobsList.editJobFlyout.customUrls.addCustomUrlButtonLabel",defaultMessage:"Add custom URL"})),t&&this.renderEditor(),Object(B.jsx)(r.EuiSpacer,{size:"l"}),Object(B.jsx)(V,{job:this.props.job,customUrls:e,onChange:this.props.setCustomUrls,dataViewListItems:this.state.dataViewListItems}))}}const $=Object(d.withKibana)(custom_urls_CustomUrlsUI)},function(e,t,a){"use strict";a.d(t,"a",(function(){return S})),a.d(t,"b",(function(){return _}));var i=a(2),n=a.n(i),s=a(6),o=a(28),r=a(219),l=a(4);const c=({limit:e,maps:t,newSelection:a,onDeleteClick:i,onLinkClick:c,showAllBadges:d})=>{const u=[];for(let n=0;n=e&&!1===d);n++)u.push(Object(l.jsx)(o.EuiFlexItem,{grow:!1,key:a[n]},Object(l.jsx)(r.a,{id:a[n],icon:!0,isGroup:void 0!==t.groupsMap[a[n]],removeId:i})));return!1===d&&a.length>e?u.push(Object(l.jsx)(o.EuiLink,{key:"more-badges-link",onClick:c},Object(l.jsx)(o.EuiText,{grow:!1,size:"xs"},s.i18n.translate("xpack.ml.jobSelector.showFlyoutBadges",{defaultMessage:"And {overFlow} more",values:{overFlow:a.length-e}})))):!0===d&&a.length>e&&u.push(Object(l.jsx)(o.EuiLink,{key:"hide-badges-link",onClick:c},Object(l.jsx)(o.EuiText,{grow:!1,size:"xs"},s.i18n.translate("xpack.ml.jobSelector.hideFlyoutBadges",{defaultMessage:"Hide"})))),Object(l.jsx)(n.a.Fragment,null,u)};var d=a(362);function u({isRunning:e,timerange:t,ganttBarWidth:a}){const n={width:t.widthPx,marginLeft:t.fromPx},s="mlJobSelector__ganttBar"+(e?" mlJobSelector__ganttBarRunning":"");return Object(l.jsx)(o.EuiToolTip,{position:"top",content:t.label},Object(l.jsx)(i.Fragment,null,Object(l.jsx)("div",{className:"mlJobSelector__ganttBarBackEdge"},Object(l.jsx)("div",{className:"mlJobSelector__ganttBarDashed",style:{width:`${a}px`}})),Object(l.jsx)("div",{style:n,className:s})))}var p=a(15),m=a(77),b=a(9),f=a(1),g=a(0);const h=["job_id","groups"],j=["id"];function x({ganttBarWidth:e,groupsList:t,jobs:a,onSelection:n,selectedIds:c,singleSelection:x,timeseriesOnly:v,withTimeRangeSelector:y}){const[O,E]=Object(i.useState)(),[w,M]=Object(i.useState)("Jobs"),{services:{application:{navigateToApp:S}}}=Object(b.d)();Object(i.useEffect)((()=>{let e=[],t="job_id";"Jobs"===w||x?e=[{name:"job_id",getValue:e=>e.job_id.toLowerCase(),isAscending:!0},{name:"groups",getValue:e=>e.groups&&e.groups[0]?e.groups[0].toLowerCase():"",isAscending:!0}]:"Groups"===w&&(t="id",e=[{name:"id",getValue:e=>e.id.toLowerCase(),isAscending:!0}]);const a=new m.SortableProperties(e,t);E(a)}),[a,w]);const _=[{id:"Jobs",name:s.i18n.translate("xpack.ml.jobSelector.jobsTab",{defaultMessage:"Jobs"}),content:T()},{id:"Groups",name:s.i18n.translate("xpack.ml.jobSelector.groupsTab",{defaultMessage:"Groups"}),content:function(){const a=[{id:"checkbox",isCheckbox:!0,textOnly:!1,width:"32px"},{label:"group ID",id:"id",isSortable:!0,alignment:m.LEFT_ALIGNMENT,render:({id:e})=>Object(l.jsx)(r.a,{id:e,isGroup:!0})},{id:"jobs in group",label:"jobs in group",isSortable:!1,alignment:m.CENTER_ALIGNMENT,render:({jobIds:e=[]})=>e.length}];return y&&a.push({label:"time range",id:"timerange",alignment:m.LEFT_ALIGNMENT,render:({timeRange:t={}})=>Object(l.jsx)(u,{timerange:t,ganttBarWidth:e})}),Object(l.jsx)(d.a,{columns:a,filterDefaultFields:x?void 0:j,items:t,onTableChange:e=>n({selectionFromTable:e}),selectedIds:c,sortableProperties:O})}()}];function T(){const p=[{id:"checkbox",isCheckbox:!0,textOnly:!1,width:"32px"},{label:"job ID",id:"job_id",isSortable:!0,alignment:m.LEFT_ALIGNMENT},{id:"groups",label:"groups",isSortable:!0,alignment:m.LEFT_ALIGNMENT,render:({groups:e=[]})=>e.map((e=>Object(l.jsx)(r.a,{key:`${e}-key`,id:e,isGroup:!0})))}];y&&p.push({label:"time range",id:"timerange",alignment:m.LEFT_ALIGNMENT,render:({timeRange:t={},isRunning:a})=>Object(l.jsx)(u,{timerange:t,isRunning:a,ganttBarWidth:e})});const b=[{type:"field_value_selection",field:"groups",name:s.i18n.translate("xpack.ml.jobSelector.filterBar.groupLabel",{defaultMessage:"Group"}),loadingMessage:"Loading...",noOptionsMessage:"No groups found.",multiSelect:"or",cache:1e4,options:t.map((e=>({value:e.id,view:Object(l.jsx)(i.Fragment,null,Object(l.jsx)(o.EuiFlexGroup,{gutterSize:"s"},Object(l.jsx)(o.EuiFlexItem,{key:e.id,grow:!1},Object(l.jsx)(r.a,{id:e.id,isGroup:!0})),Object(l.jsx)(o.EuiFlexItem,{grow:!1},s.i18n.translate("xpack.ml.jobSelector.filterBar.jobGroupTitle",{defaultMessage:"({jobsCount, plural, one {# job} other {# jobs}})",values:{jobsCount:e.jobIds.length}}))))})))}];return Object(l.jsx)(d.a,{columns:p,filters:b,filterDefaultFields:x?void 0:h,items:a,onTableChange:e=>n({selectionFromTable:e}),radioDisabledCheck:e=>v&&!1===e.isSingleMetricViewerJob,selectedIds:c,singleSelection:x,sortableProperties:O,timeseriesOnly:v})}return Object(l.jsx)(i.Fragment,null,0===a.length&&Object(l.jsx)(o.EuiCallOut,{title:Object(l.jsx)(p.FormattedMessage,{id:"xpack.ml.jobSelector.noJobsFoundTitle",defaultMessage:"No anomaly detection jobs found"}),iconType:"iInCircle"},Object(l.jsx)(o.EuiText,{textAlign:"center"},Object(l.jsx)(o.EuiButton,{color:"primary",onClick:async()=>{await S(g.f,{path:f.b.ANOMALY_DETECTION_CREATE_JOB})}},Object(l.jsx)(p.FormattedMessage,{id:"xpack.ml.jobSelector.createJobButtonLabel",defaultMessage:"Create job"})))),0!==a.length&&!0===x&&T(),0!==a.length&&!x&&Object(l.jsx)(o.EuiTabbedContent,{size:"s",tabs:_,initialSelectedTab:_[0],onTabClick:e=>{M(e.id)}}))}var v=a(39),y=a.n(v),O=a(131),E=a.n(O);function w(e){const t={},a={};return e.forEach((e=>{void 0!==e.groups&&e.groups.forEach((i=>{void 0===t[i]?(t[i]={id:i,jobIds:[e.job_id],timeRange:{to:e.timeRange.to,toMoment:null,from:e.timeRange.from,fromMoment:null,fromPx:e.timeRange.fromPx,toPx:e.timeRange.toPx,widthPx:null}},a[i]=[e.job_id]):(t[i].jobIds.push(e.job_id),a[i].push(e.job_id),(null===t[i].timeRange.to||e.timeRange.to>t[i].timeRange.to)&&(t[i].timeRange.to=e.timeRange.to,t[i].timeRange.toMoment=e.timeRange.toMoment),(null===t[i].timeRange.from||e.timeRange.fromt[i].timeRange.toPx)&&(t[i].timeRange.toPx=e.timeRange.toPx),(null===t[i].timeRange.fromPx||e.timeRange.fromPx{const a=t[e];a.timeRange.widthPx=a.timeRange.toPx-a.timeRange.fromPx,a.timeRange.toMoment=y()(a.timeRange.to),a.timeRange.fromMoment=y()(a.timeRange.from);const i=a.timeRange.fromMoment.format("MMM Do YYYY, HH:mm"),n=a.timeRange.toMoment.format("MMM Do YYYY, HH:mm");a.timeRange.label=s.i18n.translate("xpack.ml.jobSelectList.groupTimeRangeLabel",{defaultMessage:"{fromString} to {toString}",values:{fromString:i,toString:n}})})),{groups:Object.keys(t).map((e=>t[e])),groupsMap:a}}function M(e,t,a){const i=e.filter((e=>void 0!==e.timeRange.to&&void 0!==e.timeRange.from)),n=Math.min(...i.map((e=>+e.timeRange.from))),o=Math.max(...i.map((e=>+e.timeRange.to))),r=E.a.scale.linear().domain([n,o]).range([1,a]);return e.forEach((e=>{if(void 0!==e.timeRange.to&&void 0!==e.timeRange.from){e.timeRange.fromPx=r(e.timeRange.from),e.timeRange.toPx=r(e.timeRange.to),e.timeRange.widthPx=e.timeRange.toPx-e.timeRange.fromPx,e.timeRange.widthPx<1&&(e.timeRange.widthPx=1),e.timeRange.toMoment=y()(e.timeRange.to).tz(t),e.timeRange.fromMoment=y()(e.timeRange.from).tz(t);const a=e.timeRange.fromMoment.format("MMM Do YYYY, HH:mm"),i=e.timeRange.toMoment.format("MMM Do YYYY, HH:mm");e.timeRange.label=s.i18n.translate("xpack.ml.jobSelector.jobTimeRangeLabel",{defaultMessage:"{fromString} to {toString}",values:{fromString:a,toString:i}})}else e.timeRange.widthPx=0,e.timeRange.fromPx=0,e.timeRange.toPx=0,e.timeRange.label=s.i18n.translate("xpack.ml.jobSelector.noResultsForJobLabel",{defaultMessage:"No results"})})),e}const S=10,_=({dateFormatTz:e,selectedIds:t=[],singleSelection:a,timeseriesOnly:r,onJobsFetched:d,onSelectionConfirmed:u,onFlyoutClose:p,maps:m,applyTimeRangeConfig:f,onTimeRangeConfigChange:g,withTimeRangeSelector:h=!0})=>{const{services:{notifications:j,mlServices:{mlApiServices:v}}}=Object(b.d)(),[O,_]=Object(i.useState)(t),[T,C]=Object(i.useState)(!0),[k,F]=Object(i.useState)(!1),[I,D]=Object(i.useState)([]),[A,L]=Object(i.useState)([]),[R,N]=Object(i.useState)(299),[P,z]=Object(i.useState)(m),B=Object(i.useRef)(null),V=Object(i.useCallback)((()=>{const e=[],t=[];O.forEach((a=>{void 0!==P.groupsMap[a]?(e.push(...P.groupsMap[a]),t.push({groupId:a,jobIds:P.groupsMap[a]})):e.push(a)}));const a=Array.from(new Set(e)),i=f?function(e,t){if(e.length>0){const a=[];if(e.forEach((e=>{t.includes(e.job_id)&&(void 0!==e.timeRange.from&&a.push(e.timeRange.from),void 0!==e.timeRange.to&&a.push(e.timeRange.to))})),a.length){const e=E.a.extent(a);return{from:y()(e[0]).toISOString(),to:y()(e[1]).toISOString()}}}}(I,a):void 0;u({newSelection:a,jobIds:a,groups:t,time:i})}),[u,O,P,f]);function J(e){_(O.filter((t=>t!==e)))}function U(){g&&g(!f)}function G(){_([])}function q({selectionFromTable:e}){_(e)}const $=Object(i.useCallback)((()=>{if(0===I.length||!B.current)return;const t=B.current.querySelectorAll("table thead th"),a=t[t.length-1].offsetWidth-16,i=M(I,e,a);D(i);const{groups:n}=w(i);L(n),N(a)}),[e,I]);return Object(i.useEffect)((()=>{!async function(){try{const t=await v.jobs.jobsWithTimerange(e),a=M(t.jobs,e,299),{groups:i,groupsMap:n}=w(a);D(a),L(i),z({groupsMap:n,jobsMap:t.jobsMap}),d&&d({groupsMap:n,jobsMap:t.jobsMap})}catch(e){console.error("Error fetching jobs with time range",e);const{toasts:t}=j;t.addDanger({title:s.i18n.translate("xpack.ml.jobSelector.jobFetchErrorMessage",{defaultMessage:"An error occurred fetching jobs. Refresh and try again."})})}C(!1)}()}),[]),Object(l.jsx)(n.a.Fragment,null,Object(l.jsx)(o.EuiFlyoutHeader,{hasBorder:!0},Object(l.jsx)(o.EuiTitle,{size:"m"},Object(l.jsx)("h2",{id:"flyoutTitle"},s.i18n.translate("xpack.ml.jobSelector.flyoutTitle",{defaultMessage:"Job selection"})))),Object(l.jsx)(o.EuiFlyoutBody,{className:"mlJobSelectorFlyoutBody","data-test-subj":"mlJobSelectorFlyoutBody"},Object(l.jsx)(o.EuiResizeObserver,{onResize:$},(e=>Object(l.jsx)("div",{ref:t=>{B.current=t,e(t)}},T?Object(l.jsx)(o.EuiProgress,{size:"xs",color:"accent"}):Object(l.jsx)(n.a.Fragment,null,Object(l.jsx)(o.EuiFlexGroup,{direction:"column",responsive:!1},Object(l.jsx)(o.EuiFlexItem,{grow:!1},Object(l.jsx)(o.EuiFlexGroup,{wrap:!0,responsive:!1,gutterSize:"xs",alignItems:"center"},Object(l.jsx)(c,{limit:S,maps:P,newSelection:O,onDeleteClick:J,onLinkClick:()=>F(!k),showAllBadges:k}))),Object(l.jsx)(o.EuiFlexItem,{grow:!1},Object(l.jsx)(o.EuiFlexGroup,{direction:"row",justifyContent:"spaceBetween",responsive:!1},Object(l.jsx)(o.EuiFlexItem,{grow:!1},!a&&O.length>0&&Object(l.jsx)(o.EuiButtonEmpty,{onClick:G,size:"xs","data-test-subj":"mlFlyoutJobSelectorButtonClearSelection"},s.i18n.translate("xpack.ml.jobSelector.clearAllFlyoutButton",{defaultMessage:"Clear all"}))),h&&void 0!==f&&Object(l.jsx)(o.EuiFlexItem,{grow:!1},Object(l.jsx)(o.EuiSwitch,{label:s.i18n.translate("xpack.ml.jobSelector.applyTimerangeSwitchLabel",{defaultMessage:"Apply time range"}),checked:f,onChange:U,"data-test-subj":"mlFlyoutJobSelectorSwitchApplyTimeRange"}))))),Object(l.jsx)(x,{jobs:I,ganttBarWidth:R,groupsList:A,onSelection:q,selectedIds:O,singleSelection:a,timeseriesOnly:r,withTimeRangeSelector:h})))))),Object(l.jsx)(o.EuiFlyoutFooter,null,Object(l.jsx)(o.EuiFlexGroup,null,Object(l.jsx)(o.EuiFlexItem,{grow:!1},Object(l.jsx)(o.EuiButton,{onClick:V,fill:!0,isDisabled:0===O.length,"data-test-subj":"mlFlyoutJobSelectorButtonApply"},s.i18n.translate("xpack.ml.jobSelector.applyFlyoutButton",{defaultMessage:"Apply"}))),Object(l.jsx)(o.EuiFlexItem,{grow:!1},Object(l.jsx)(o.EuiButtonEmpty,{iconType:"cross",onClick:p,"data-test-subj":"mlFlyoutJobSelectorButtonClose"},s.i18n.translate("xpack.ml.jobSelector.closeFlyoutButton",{defaultMessage:"Close"}))))))}},function(e,t,a){"use strict";a.d(t,"b",(function(){return O})),a.d(t,"a",(function(){return M}));var i=a(4),n=a(2),s=a.n(n),o=a(7),r=a(28),l=a(15),c=a(43),d=a(20),u=a(22),p=a(128),m=a(268),b=a(9),f=a(6),g=a(44);const h=({content:e})=>Object(i.jsx)(r.EuiToolTip,{position:"top",content:e},Object(i.jsx)(r.EuiIcon,{tabIndex:0,type:"questionInCircle",color:"subdued",className:"eui-alignTop",size:"s"})),j=({stats:e})=>{Object(g.a)(c.FIELD_FORMAT_IDS.DURATION);const t=e.map(((e,t)=>{const a=Object.keys(e)[0];return{...e[a],id:`${a}_${t}`}})),a=[{field:"type",name:f.i18n.translate("xpack.ml.trainedModels.modelsList.pipelines.processorStats.typeHeader",{defaultMessage:"Processor type"}),width:"100px",sortable:!0,truncateText:!1,render:e=>Object(i.jsx)(r.EuiBadge,{color:"hollow"},e),"data-test-subj":"mlProcessorStatsType"},{field:"stats.count",name:Object(i.jsx)(r.EuiFlexGroup,{gutterSize:"xs"},Object(i.jsx)(r.EuiFlexItem,{grow:!1},Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.pipelines.processorStats.countHeader",defaultMessage:"Count"})),Object(i.jsx)(r.EuiFlexItem,{grow:!1},Object(i.jsx)(h,{content:Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.pipelines.processorStats.countDescription",defaultMessage:"Total number of documents ingested during the lifetime of this node"})}))),width:"100px",truncateText:!0,"data-test-subj":"mlProcessorStatsCount"},{field:"stats.current",name:Object(i.jsx)(r.EuiFlexGroup,{gutterSize:"xs"},Object(i.jsx)(r.EuiFlexItem,{grow:!1},Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.pipelines.processorStats.currentHeader",defaultMessage:"Current"})),Object(i.jsx)(r.EuiFlexItem,{grow:!1},Object(i.jsx)(h,{content:Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.pipelines.processorStats.currentDescription",defaultMessage:"Total number of documents currently being ingested"})}))),width:"100px",truncateText:!1,"data-test-subj":"mlProcessorStatsCurrent"},{field:"stats.failed",name:Object(i.jsx)(r.EuiFlexGroup,{gutterSize:"xs"},Object(i.jsx)(r.EuiFlexItem,{grow:!1},Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.pipelines.processorStats.failedHeader",defaultMessage:"Failed"})),Object(i.jsx)(r.EuiFlexItem,{grow:!1},Object(i.jsx)(h,{content:Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.pipelines.processorStats.failedDescription",defaultMessage:"Total number of failed ingest operations during the lifetime of this node"})}))),width:"100px","data-test-subj":"mlProcessorStatsFailed"}];return Object(i.jsx)(r.EuiInMemoryTable,{allowNeutralSort:!1,columns:a,hasActions:!1,isExpandable:!1,isSelectable:!1,items:t,itemId:"id",rowProps:e=>({"data-test-subj":`mlProcessorStatsTableRow row-${e.id}`}),onTableChange:()=>{},"data-test-subj":"mlProcessorStatsTable"})},x=({pipelines:e,ingestStats:t})=>{var a;const{services:{share:n}}=Object(b.d)(),o=Object.keys(null!==(a=null!=e?e:null==t?void 0:t.pipelines)&&void 0!==a?a:{});return o.length?Object(i.jsx)(s.a.Fragment,null,o.map(((a,o)=>{var c,d;const u=o<=2,p=null==e?void 0:e[a];return Object(i.jsx)(s.a.Fragment,{key:a},Object(i.jsx)(r.EuiAccordion,{id:a,buttonContent:Object(i.jsx)(r.EuiTitle,{size:"xs"},Object(i.jsx)("h5",null,a)),extraAction:p?Object(i.jsx)(r.EuiButtonEmpty,{"data-test-subj":`mlTrainedModelPipelineEditButton_${a}`,onClick:()=>{const e=n.url.locators.get("INGEST_PIPELINES_APP_LOCATOR");e&&e.navigate({page:"pipeline_edit",pipelineId:a,absolute:!0})},iconType:"documentEdit",iconSide:"left"},Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.editPipelineLabel",defaultMessage:"Edit"})):void 0,paddingSize:"l",initialIsOpen:u},Object(i.jsx)(r.EuiFlexGrid,{columns:2},null!==(c=t.pipelines[a])&&void 0!==c&&c.processors?Object(i.jsx)(r.EuiFlexItem,{"data-test-subj":`mlTrainedModelPipelineIngestStats_${a}`},Object(i.jsx)(r.EuiPanel,null,Object(i.jsx)(r.EuiTitle,{size:"xxs"},Object(i.jsx)("h6",null,Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.ingestStatsTitle",defaultMessage:"Ingest stats"}))),Object(i.jsx)(j,{stats:null===(d=t.pipelines[a])||void 0===d?void 0:d.processors}))):null,p?Object(i.jsx)(r.EuiFlexItem,{"data-test-subj":`mlTrainedModelPipelineDefinition_${a}`},Object(i.jsx)(r.EuiPanel,null,Object(i.jsx)(r.EuiTitle,{size:"xxs"},Object(i.jsx)("h6",null,Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.processorsTitle",defaultMessage:"Definition"}))),Object(i.jsx)(r.EuiCodeBlock,{language:"json",fontSize:"m",paddingSize:"m",overflowHeight:300,isCopyable:!0},JSON.stringify(p,null,2)))):null)))}))):null};var v=a(339);const y=()=>{const e=Object(r.useEuiPaddingSize)("xs");return{badgeFormatter:function(t){if(0!==t.length)return Object(i.jsx)("div",null,t.map((t=>Object(i.jsx)("span",{css:Object(i.css)({marginRight:e},"",""),key:t},Object(i.jsx)(r.EuiBadge,{color:"hollow",css:Object(i.css)({marginRight:e},"","")},t)))))}}};function O(){const e=Object(g.a)(c.FIELD_FORMAT_IDS.BYTES),t=Object(g.a)(c.FIELD_FORMAT_IDS.DATE),{badgeFormatter:a}=y(),s=Object(n.useMemo)((()=>({tags:a,roles:a,create_time:t,timestamp:t,model_size_bytes:e,required_native_memory_bytes:e})),[]);return Object(n.useCallback)((e=>Object.entries(e).filter((([,e])=>Object(u.a)(e))).map((([e,t])=>e in s?{title:e,description:s[e](t)}:{title:e,description:"object"==typeof t?Object(i.jsx)(r.EuiCodeBlock,{language:"json",fontSize:"s",paddingSize:"s",overflowHeight:300,isCopyable:!1},JSON.stringify(t,null,2)):t.toString()}))),[s])}var E={name:"fhw977",styles:"height:300px"},w={name:"1d3w5wq",styles:"width:100%"};const M=({item:e})=>{const t=O(),{inference_config:a,stats:c,metadata:u,tags:b,version:f,estimated_operations:g,estimated_heap_memory_usage_bytes:h,default_field_map:j,license_level:y,pipelines:M,description:S}=e,_=Object(n.useMemo)((()=>{if(Object(d.a)(c.inference_stats)&&e.model_type!==p.e.PYTORCH)return c.inference_stats}),[c.inference_stats,e.model_type]),{analytics_config:T,...C}=null!=u?u:{},k=Object(n.useMemo)((()=>({description:S,tags:b,version:f,estimated_operations:g,estimated_heap_memory_usage_bytes:h,default_field_map:j,license_level:y})),[j,S,h,g,y,b,f]),F=Object(n.useMemo)((()=>{const e=c.deployment_stats,t=c.model_size_stats;return e&&t?e.flatMap((e=>e.nodes.map((a=>{const i=Object.values(a.node)[0].name;return{key:`${e.deployment_id}_${i}`,...e,...t,node:{...Object(o.pick)(a,["average_inference_time_ms","inference_count","routing_state","last_access","number_of_pending_requests","start_time","throughput_last_minute","number_of_allocations","threads_per_allocation","error_count"]),name:i}}})))):[]}),[c]),I=Object(n.useMemo)((()=>[{id:"details","data-test-subj":"mlTrainedModelDetails",name:Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.detailsTabLabel",defaultMessage:"Details"}),content:Object(i.jsx)("div",{"data-test-subj":"mlTrainedModelDetailsContent"},Object(i.jsx)(r.EuiSpacer,{size:"s"}),Object(i.jsx)(r.EuiFlexGrid,{columns:2,gutterSize:"m"},Object(i.jsx)(r.EuiFlexItem,null,Object(i.jsx)(r.EuiPanel,null,Object(i.jsx)(r.EuiTitle,{size:"xs"},Object(i.jsx)("h5",null,Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.detailsTitle",defaultMessage:"Details"}))),Object(i.jsx)(r.EuiSpacer,{size:"m"}),Object(i.jsx)(r.EuiDescriptionList,{compressed:!0,type:"column",listItems:t(k)}))),Object(d.a)(C)?Object(i.jsx)(r.EuiFlexItem,null,Object(i.jsx)(r.EuiPanel,null,Object(i.jsx)(r.EuiTitle,{size:"xs"},Object(i.jsx)("h5",null,Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.metadataTitle",defaultMessage:"Metadata"}))),Object(i.jsx)(r.EuiSpacer,{size:"m"}),Object(i.jsx)(r.EuiDescriptionList,{compressed:!0,type:"column",listItems:t(C)}))):null))},...a?[{id:"config","data-test-subj":"mlTrainedModelInferenceConfig",name:Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.configTabLabel",defaultMessage:"Config"}),content:Object(i.jsx)("div",{"data-test-subj":"mlTrainedModelInferenceConfigContent"},Object(i.jsx)(r.EuiSpacer,{size:"s"}),Object(i.jsx)(r.EuiFlexGrid,{columns:2,gutterSize:"m"},Object(i.jsx)(r.EuiFlexItem,null,Object(i.jsx)(r.EuiPanel,null,Object(i.jsx)(r.EuiTitle,{size:"xs"},Object(i.jsx)("h5",null,Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.inferenceConfigTitle",defaultMessage:"Inference configuration"}))),Object(i.jsx)(r.EuiSpacer,{size:"m"}),Object(i.jsx)(r.EuiDescriptionList,{compressed:!0,type:"column",listItems:t(a[Object.keys(a)[0]])}))),T&&Object(i.jsx)(r.EuiFlexItem,null,Object(i.jsx)(r.EuiPanel,null,Object(i.jsx)(r.EuiTitle,{size:"xs"},Object(i.jsx)("h5",null,Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.analyticsConfigTitle",defaultMessage:"Analytics configuration"}))),Object(i.jsx)(r.EuiSpacer,{size:"m"}),Object(i.jsx)(r.EuiDescriptionList,{compressed:!0,type:"column",listItems:t(T)})))))}]:[],...Object(d.a)(Object(o.omit)(c,["pipeline_count","ingest"]))?[{id:"stats","data-test-subj":"mlTrainedModelStats",name:Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.statsTabLabel",defaultMessage:"Stats"}),content:Object(i.jsx)("div",{"data-test-subj":"mlTrainedModelStatsContent"},Object(i.jsx)(r.EuiSpacer,{size:"s"}),null!=F&&F.length?Object(i.jsx)(s.a.Fragment,null,Object(i.jsx)(r.EuiPanel,null,Object(i.jsx)(r.EuiTitle,{size:"xs"},Object(i.jsx)("h5",null,Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.deploymentStatsTitle",defaultMessage:"Deployment stats"}))),Object(i.jsx)(r.EuiSpacer,{size:"m"}),Object(i.jsx)(v.a,{models:F,hideColumns:["model_id"]})),Object(i.jsx)(r.EuiSpacer,{size:"s"})):null,Object(i.jsx)(r.EuiFlexGrid,{columns:2,gutterSize:"m"},_?Object(i.jsx)(r.EuiFlexItem,null,Object(i.jsx)(r.EuiPanel,null,Object(i.jsx)(r.EuiTitle,{size:"xs"},Object(i.jsx)("h5",null,Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.inferenceStatsTitle",defaultMessage:"Inference stats"}))),Object(i.jsx)(r.EuiSpacer,{size:"m"}),Object(i.jsx)(r.EuiDescriptionList,{compressed:!0,type:"column",listItems:t(_)}))):null,Object(d.a)(c.model_size_stats)&&!Object(d.a)(_)?Object(i.jsx)(r.EuiFlexItem,null,Object(i.jsx)(r.EuiPanel,null,Object(i.jsx)(r.EuiTitle,{size:"xs"},Object(i.jsx)("h5",null,Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.modelSizeStatsTitle",defaultMessage:"Model size stats"}))),Object(i.jsx)(r.EuiSpacer,{size:"m"}),Object(i.jsx)(r.EuiDescriptionList,{compressed:!0,type:"column",listItems:t(c.model_size_stats)}))):null))}]:[],...Object(d.a)(M)&&Object.keys(M).length>0||c.ingest?[{id:"pipelines","data-test-subj":"mlTrainedModelPipelines",name:Object(i.jsx)(s.a.Fragment,null,Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.pipelinesTabLabel",defaultMessage:"Pipelines"}),Object(d.a)(M)?Object(i.jsx)(r.EuiNotificationBadge,null,Object.keys(M).length):null),content:Object(i.jsx)("div",{"data-test-subj":"mlTrainedModelPipelinesContent"},Object(i.jsx)(r.EuiSpacer,{size:"s"}),Object(i.jsx)(x,{pipelines:M,ingestStats:c.ingest}))}]:[],{id:"models_map","data-test-subj":"mlTrainedModelsMap",name:Object(i.jsx)(l.FormattedMessage,{id:"xpack.ml.trainedModels.modelsList.expandedRow.modelsMapLabel",defaultMessage:"Models map"}),content:Object(i.jsx)("div",{"data-test-subj":"mlTrainedModelDetailsContent"},Object(i.jsx)(r.EuiSpacer,{size:"s"}),Object(i.jsx)(r.EuiFlexItem,{css:E},Object(i.jsx)(m.a,{analyticsId:void 0,modelId:e.model_id,forceRefresh:!1,defaultHeight:200})))}]),[T,F,k,t,a,_,M,C,c,e.model_id]),D="started"===e.state?I.find((e=>"stats"===e.id)):I[0];return Object(i.jsx)(r.EuiTabbedContent,{size:"s",css:w,tabs:I,initialSelectedTab:D,autoFocus:"selected","data-test-subj":"mlTrainedModelRowDetails"})}},function(e,t,a){"use strict";a.d(t,"a",(function(){return k}));var i,n=a(100),s=a.n(n),o=a(2),r=a.n(o),l=a(28),c=a(6),d=a(7),u=a(43),p=a(40),m=a(217),b=a(1),f=a(45),g=a(205),h=a(15),j=a(4),x=a(354),v=a(339),y=a(44),O=a(358);!function(e){e[e.DETAILS=0]="DETAILS",e[e.MEMORY_USAGE=1]="MEMORY_USAGE"}(i||(i={}));var E={name:"1d3w5wq",styles:"width:100%"};const w=({item:e})=>{const t=Object(y.a)(u.FIELD_FORMAT_IDS.BYTES),[a,n]=Object(o.useState)(i.DETAILS),s=Object(x.b)(),{allocated_models:c,attributes:p,memory_overview:m,id:b,...f}=Object(d.cloneDeep)(e);return p["ml.machine_memory"]=t(p["ml.machine_memory"]),p["ml.max_jvm_size"]=t(p["ml.max_jvm_size"]),Object(j.jsx)("div",{css:E},Object(j.jsx)(l.EuiTabs,null,Object(j.jsx)(l.EuiTab,{isSelected:a===i.DETAILS,onClick:()=>n(i.DETAILS)},Object(j.jsx)(h.FormattedMessage,{id:"xpack.ml.trainedModels.nodesList.expandedRow.detailsTabTitle",defaultMessage:"Details"})),Object(j.jsx)(l.EuiTab,{isSelected:a===i.MEMORY_USAGE,onClick:()=>n(i.MEMORY_USAGE)},Object(j.jsx)(h.FormattedMessage,{id:"xpack.ml.trainedModels.nodesList.expandedRow.memoryTabTitle",defaultMessage:"Memory usage"}))),a===i.DETAILS?Object(j.jsx)(r.a.Fragment,null,Object(j.jsx)(l.EuiSpacer,{size:"s"}),Object(j.jsx)(l.EuiFlexGrid,{columns:2,gutterSize:"s"},Object(j.jsx)(l.EuiFlexItem,null,Object(j.jsx)(l.EuiPanel,{hasShadow:!1},Object(j.jsx)(l.EuiTitle,{size:"xs"},Object(j.jsx)("h5",null,Object(j.jsx)(h.FormattedMessage,{id:"xpack.ml.trainedModels.nodesList.expandedRow.detailsTitle",defaultMessage:"Details"}))),Object(j.jsx)(l.EuiSpacer,{size:"m"}),Object(j.jsx)(l.EuiDescriptionList,{compressed:!0,type:"column",listItems:s(f)}))),Object(j.jsx)(l.EuiFlexItem,null,Object(j.jsx)(l.EuiPanel,{hasShadow:!1},Object(j.jsx)(l.EuiTitle,{size:"xs"},Object(j.jsx)("h5",null,Object(j.jsx)(h.FormattedMessage,{id:"xpack.ml.trainedModels.nodesList.expandedRow.attributesTitle",defaultMessage:"Attributes"}))),Object(j.jsx)(l.EuiSpacer,{size:"m"}),Object(j.jsx)(l.EuiDescriptionList,{compressed:!0,type:"column",listItems:s(p)})))),c.length>0?Object(j.jsx)(r.a.Fragment,null,Object(j.jsx)(l.EuiSpacer,{size:"s"}),Object(j.jsx)(l.EuiPanel,{hasShadow:!1},Object(j.jsx)(l.EuiTitle,{size:"xs"},Object(j.jsx)("h5",null,Object(j.jsx)(h.FormattedMessage,{id:"xpack.ml.trainedModels.nodesList.expandedRow.allocatedModelsTitle",defaultMessage:"Allocated trained models"}))),Object(j.jsx)(l.EuiSpacer,{size:"m"}),Object(j.jsx)(v.a,{models:c}))):null):Object(j.jsx)(r.a.Fragment,null,Object(j.jsx)(O.a,{node:e.name})))};var M=a(66),S=a(347);const _=({memoryOverview:e})=>{const t=Object(y.a)(u.FIELD_FORMAT_IDS.BYTES),a=Object(o.useMemo)((()=>({jvm:{name:c.i18n.translate("xpack.ml.trainedModels.nodesList.jvmHeapSIze",{defaultMessage:"JVM heap size"}),color:Object(S.a)("jvm-heap-size")},trained_models:{name:c.i18n.translate("xpack.ml.trainedModels.nodesList.modelsMemoryUsage",{defaultMessage:"Trained models"}),color:Object(S.a)("trained-model")},anomaly_detection:{name:c.i18n.translate("xpack.ml.trainedModels.nodesList.adMemoryUsage",{defaultMessage:"Anomaly detection jobs"}),color:Object(S.a)("anomaly-detector")},dfa_training:{name:c.i18n.translate("xpack.ml.trainedModels.nodesList.dfaMemoryUsage",{defaultMessage:"Data frame analytics jobs"}),color:Object(S.a)("data-frame-analytics")},available:{name:c.i18n.translate("xpack.ml.trainedModels.nodesList.availableMemory",{defaultMessage:"Estimated available memory"}),color:Object(S.a)("estimated-available-memory")}})),[]),i=[{x:0,y:e.trained_models.total,g:a.trained_models.name},{x:0,y:e.anomaly_detection.total,g:a.anomaly_detection.name},{x:0,y:e.dfa_training.total,g:a.dfa_training.name},{x:0,y:e.machine_memory.total-e.machine_memory.jvm-e.trained_models.total-e.dfa_training.total-e.anomaly_detection.total,g:a.available.name},{x:0,y:e.machine_memory.jvm,g:a.jvm.name}];return Object(j.jsx)(M.Chart,{size:["100%",50]},Object(j.jsx)(M.Tooltip,{headerFormatter:({value:e})=>c.i18n.translate("xpack.ml.trainedModels.nodesList.memoryBreakdown",{defaultMessage:"Approximate memory breakdown"})}),Object(j.jsx)(M.Settings,{rotation:90}),Object(j.jsx)(M.Axis,{id:"ml_memory",position:M.Position.Bottom,hide:!0,tickFormat:e=>t(e)}),Object(j.jsx)(M.LineAnnotation,{id:"line_annotation",domainType:M.AnnotationDomainType.YDomain,dataValues:[{dataValue:e.ml_max_in_bytes,details:t(e.ml_max_in_bytes),header:c.i18n.translate("xpack.ml.trainedModels.nodesList.mlMaxMemory",{defaultMessage:"Maximum memory permitted for ML native processes"})}],marker:Object(j.jsx)(l.EuiIcon,{type:"arrowDown","aria-label":c.i18n.translate("xpack.ml.trainedModels.nodesList.mlMaxMemoryAriaLabel",{defaultMessage:"Maximum memory permitted for ML native processes {bytes}",values:{bytes:t(e.ml_max_in_bytes)}})}),markerPosition:M.Position.Top}),Object(j.jsx)(M.BarSeries,{id:"bars",xScaleType:M.ScaleType.Linear,yScaleType:M.ScaleType.Linear,xAccessor:"x",yAccessors:["y"],splitSeriesAccessors:["g"],stackAccessors:["x"],data:i,color:({specId:e,yAccessor:t,splitAccessors:i})=>{const n=i.get("g");return Object.values(a).find((e=>e.name===n)).color}}))};var T=a(101),C=a(141);const k=({compactView:e=!1})=>{var t;const a=Object(f.b)(),i=Object(C.a)(),{displayErrorToast:n}=Object(T.c)(),h=Object(y.a)(u.FIELD_FORMAT_IDS.BYTES),[x,v]=Object(o.useState)([]),[O,E]=Object(o.useState)(!0),[M,S]=Object(o.useState)({}),[k,F]=Object(p.c)(b.b.MEMORY_USAGE,{pageIndex:0,pageSize:10,sortField:"name",sortDirection:"asc"}),I=null!==(t=k.queryText)&&void 0!==t?t:"",D=Object(o.useCallback)((async()=>{try{const e=await a.getTrainedModelsNodesOverview();v(e.nodes),e.nodes.forEach((e=>{M[e.id]&&(M[e.id]=Object(j.jsx)(w,{item:e}))})),E(!1)}catch(e){n(e,c.i18n.translate("xpack.ml.trainedModels.nodesList.nodesFetchError",{defaultMessage:"Nodes fetch failed"})),E(!1)}}),[M]),A=e=>{const t=Object(d.cloneDeep)(M);t[e.id]?delete t[e.id]:t[e.id]=Object(j.jsx)(w,{item:e}),S(t)},L=[{align:"left",width:"40px",isExpander:!0,render:e=>Object(j.jsx)(l.EuiButtonIcon,{onClick:A.bind(null,e),"aria-label":M[e.id]?c.i18n.translate("xpack.ml.trainedModels.nodesList.collapseRow",{defaultMessage:"Collapse"}):c.i18n.translate("xpack.ml.trainedModels.nodesList.expandRow",{defaultMessage:"Expand"}),iconType:M[e.id]?"arrowDown":"arrowRight"}),"data-test-subj":"mlNodesTableRowDetailsToggle"},{field:"name",name:c.i18n.translate("xpack.ml.trainedModels.nodesList.nodeNameHeader",{defaultMessage:"Name"}),width:"200px",sortable:!0,truncateText:!0,"data-test-subj":"mlNodesTableColumnName"},{name:c.i18n.translate("xpack.ml.trainedModels.nodesList.nodeTotalMemoryHeader",{defaultMessage:"Total memory"}),width:"200px",truncateText:!0,"data-test-subj":"mlNodesTableColumnTotalMemory",render:e=>h(e.attributes["ml.machine_memory"])},{name:c.i18n.translate("xpack.ml.trainedModels.nodesList.nodeMemoryUsageHeader",{defaultMessage:"Memory usage"}),truncateText:!0,"data-test-subj":"mlNodesTableColumnMemoryUsage",render:e=>Object(j.jsx)(_,{memoryOverview:e.memory_overview})}],R=Object(o.useMemo)((()=>({total:{show:!0,value:x.length,label:c.i18n.translate("xpack.ml.trainedModels.nodesList.totalAmountLabel",{defaultMessage:"Total machine learning nodes"}),"data-test-subj":"mlTotalNodesCount"}})),[x]);let N=Object(g.a)(x.length,k,F);const P={query:I,onChange:e=>null===e.error&&(F({queryText:e.queryText,pageIndex:0}),!0),box:{incremental:!0}};return Object(o.useEffect)((function(){D()}),[i]),e&&(N={}),Object(j.jsx)("div",{"data-test-subj":"mlNodesOverviewPanel"},R&&!e?Object(j.jsx)(r.a.Fragment,null,Object(j.jsx)(l.EuiSpacer,{size:"m"}),Object(j.jsx)(l.EuiFlexGroup,{justifyContent:"spaceBetween"},R&&Object(j.jsx)(l.EuiFlexItem,{grow:!1},Object(j.jsx)(m.a,{stats:R,dataTestSub:"mlTrainedModelsNodesStatsBar"}))),Object(j.jsx)(l.EuiSpacer,{size:"m"})):null,Object(j.jsx)("div",{"data-test-subj":"mlNodesTableContainer"},Object(j.jsx)(l.EuiInMemoryTable,s()({allowNeutralSort:!1,columns:L,hasActions:!1,isExpandable:!0,itemIdToExpandedRowMap:M,isSelectable:!1,items:x,itemId:"id",loading:O,search:e?void 0:P},N,{rowProps:e=>({"data-test-subj":`mlNodesTableRow row-${e.id}`}),"data-test-subj":O?"mlNodesTable loading":"mlNodesTable loaded"}))))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return p})),a.d(t,"b",(function(){return h}));var i=a(2),n=a.n(i),s=a(6),o=a(28),r=a(102),l=a(125),c=a(4);const d=s.i18n.translate("xpack.ml.dataframe.analyticsList.deleteActionNameText",{defaultMessage:"Delete"}),u=({isDisabled:e,item:t})=>e?Object(c.jsx)(o.EuiToolTip,{position:"top",content:Object(l.f)(t.stats.state)?s.i18n.translate("xpack.ml.dataframe.analyticsList.deleteActionDisabledToolTipContent",{defaultMessage:"Stop the data frame analytics job in order to delete it."}):Object(r.e)("canStartStopDataFrameAnalytics")},Object(c.jsx)(n.a.Fragment,null,d)):Object(c.jsx)(n.a.Fragment,null,d),p=({closeModal:e,deleteAndCloseModal:t,deleteTargetIndex:a,deleteIndexPattern:i,indexPatternExists:n,isLoading:r,item:l,toggleDeleteIndex:d,toggleDeleteIndexPattern:u,userCanDeleteIndex:p,userCanDeleteDataView:m})=>{if(void 0===l)return null;const b=l.config.dest.index;return Object(c.jsx)(o.EuiConfirmModal,{"data-test-subj":"mlAnalyticsJobDeleteModal",title:s.i18n.translate("xpack.ml.dataframe.analyticsList.deleteModalTitle",{defaultMessage:"Delete {analyticsId}?",values:{analyticsId:l.config.id}}),onCancel:e,onConfirm:t,cancelButtonText:s.i18n.translate("xpack.ml.dataframe.analyticsList.deleteModalCancelButton",{defaultMessage:"Cancel"}),confirmButtonText:s.i18n.translate("xpack.ml.dataframe.analyticsList.deleteModalDeleteButton",{defaultMessage:"Delete"}),defaultFocusedButton:o.EUI_MODAL_CONFIRM_BUTTON,buttonColor:"danger",confirmButtonDisabled:r},Object(c.jsx)(o.EuiFlexGroup,{direction:"column",gutterSize:"none"},Object(c.jsx)(o.EuiFlexItem,null,p&&Object(c.jsx)(o.EuiSwitch,{"data-test-subj":"mlAnalyticsJobDeleteIndexSwitch",style:{paddingBottom:10},label:s.i18n.translate("xpack.ml.dataframe.analyticsList.deleteDestinationIndexTitle",{defaultMessage:"Delete destination index {indexName}",values:{indexName:b}}),checked:a,onChange:d})),Object(c.jsx)(o.EuiFlexItem,null,p&&n&&Object(c.jsx)(o.EuiSwitch,{"data-test-subj":"mlAnalyticsJobDeleteIndexPatternSwitch",label:s.i18n.translate("xpack.ml.dataframe.analyticsList.deleteTargetDataViewTitle",{defaultMessage:"Delete data view {dataView}",values:{dataView:b}}),checked:i,onChange:u,disabled:!1===m}))))};var m=a(107),b=a(9),f=a(101),g=a(189);const h=e=>{var t;const[a,n]=Object(i.useState)(),[o,r]=Object(i.useState)(!1),[p,h]=Object(i.useState)(!1),[j,x]=Object(i.useState)(!1),[v,y]=Object(i.useState)(!0),[O,E]=Object(i.useState)(!0),[w,M]=Object(i.useState)(!1),[S,_]=Object(i.useState)(!1),[T,C]=Object(i.useState)(!1),[k,F]=Object(i.useState)(!1),{data:{dataViews:I},application:{capabilities:D}}=Object(b.d)().services,A=null!==(t=null==a?void 0:a.config.dest.index)&&void 0!==t?t:"",L=Object(f.c)();Object(i.useEffect)((()=>{F(!0),(async()=>{try{const e=(await I.getIdsWithTitle()).find((({title:e})=>e===A));C(void 0!==e),F(!1)}catch(e){const t=Object(m.b)(e);F(!1),L.displayDangerToast(s.i18n.translate("xpack.ml.dataframe.analyticsList.errorWithCheckingIfDataViewExistsNotificationErrorMessage",{defaultMessage:"An error occurred checking if data view {dataView} exists: {error}",values:{dataView:A,error:t}}))}})(),(async()=>{try{await Object(g.a)(A,L)&&M(!0);const e=!0===D.savedObjectsManagement.delete||!0===D.indexPatterns.save;_(e),!1===e&&E(!1)}catch(e){const t=Object(m.b)(e);F(!1),L.displayDangerToast(s.i18n.translate("xpack.ml.dataframe.analyticsList.errorWithCheckingIfUserCanDeleteIndexNotificationErrorMessage",{defaultMessage:"An error occurred checking if user can delete {destinationIndex}: {error}",values:{destinationIndex:A,error:t}}))}})()}),[o]);const R=e=>{n(e),h(!0)};return{action:Object(i.useMemo)((()=>({name:t=>Object(c.jsx)(u,{isDisabled:Object(l.f)(t.stats.state)||!e,item:t}),enabled:t=>!Object(l.f)(t.stats.state)&&e,description:d,icon:"trash",type:"icon",onClick:e=>R(e),"data-test-subj":"mlAnalyticsJobDeleteButton"})),[]),closeDeleteJobCheckModal:()=>h(!1),closeModal:()=>r(!1),deleteAndCloseModal:()=>{x(!0),r(!1),void 0!==a&&(w&&v||w&&O?Object(g.c)(a.config,a.stats,v,T&&O,L):Object(g.b)(a.config,a.stats,L))},deleteTargetIndex:v,deleteIndexPattern:O,deleteItem:j,indexPatternExists:T,isDeleteJobCheckModalVisible:p,isModalVisible:o,isLoading:k,item:a,jobType:"data-frame-analytics",openModal:e=>{n(e),r(!0)},openDeleteJobCheckModal:R,toggleDeleteIndex:()=>y(!v),toggleDeleteIndexPattern:()=>E(!O),userCanDeleteIndex:w,userCanDeleteDataView:S}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return j}));var i=a(2),n=a.n(i),s=a(6),o=a(15),r=a(28),l=a(9),c=a(4);const d=({syncItems:e})=>null===e?null:Object(c.jsx)(n.a.Fragment,null,Object(c.jsx)(u,{syncItems:e}),Object(c.jsx)(r.EuiHorizontalRule,{margin:"l"}),Object(c.jsx)(p,{syncItems:e}),Object(c.jsx)(r.EuiHorizontalRule,{margin:"l"}),Object(c.jsx)(m,{syncItems:e}),Object(c.jsx)(r.EuiHorizontalRule,{margin:"l"}),Object(c.jsx)(b,{syncItems:e}),Object(c.jsx)(r.EuiHorizontalRule,{margin:"l"})),u=({syncItems:e})=>{const t=g(e.savedObjectsCreated),a=Object(c.jsx)(n.a.Fragment,null,Object(c.jsx)(r.EuiTitle,{size:"xs","data-test-subj":"mlJobMgmtSyncFlyoutMissingObjectsTitle"},Object(c.jsx)("h3",null,Object(c.jsx)(r.EuiTextColor,{color:t?"default":"subdued"},Object(c.jsx)(o.FormattedMessage,{id:"xpack.ml.management.syncSavedObjectsFlyout.savedObjectsCreated.title",defaultMessage:"Missing saved objects ({count})",values:{count:t}})))),Object(c.jsx)(r.EuiText,{size:"s"},Object(c.jsx)("p",null,Object(c.jsx)(r.EuiTextColor,{color:"subdued"},Object(c.jsx)(o.FormattedMessage,{id:"xpack.ml.management.syncSavedObjectsFlyout.savedObjectsCreated.description",defaultMessage:"If there are jobs that do not have accompanying saved objects, they will be created in the current space."})))));return Object(c.jsx)(f,{id:"savedObjectsCreated",title:a,results:e.savedObjectsCreated})},p=({syncItems:e})=>{const t=g(e.savedObjectsDeleted),a=Object(c.jsx)(n.a.Fragment,null,Object(c.jsx)(r.EuiTitle,{size:"xs","data-test-subj":"mlJobMgmtSyncFlyoutUnmatchedObjectsTitle"},Object(c.jsx)("h3",null,Object(c.jsx)(r.EuiTextColor,{color:t?"default":"subdued"},Object(c.jsx)(o.FormattedMessage,{id:"xpack.ml.management.syncSavedObjectsFlyout.savedObjectsDeleted.title",defaultMessage:"Unmatched saved objects ({count})",values:{count:t}})))),Object(c.jsx)(r.EuiText,{size:"s"},Object(c.jsx)("p",null,Object(c.jsx)(r.EuiTextColor,{color:"subdued"},Object(c.jsx)(o.FormattedMessage,{id:"xpack.ml.management.syncSavedObjectsFlyout.savedObjectsDeleted.description",defaultMessage:"If there are saved objects that do not have an accompanying job, they will be deleted."})))));return Object(c.jsx)(f,{id:"savedObjectsDeleted",title:a,results:e.savedObjectsDeleted})},m=({syncItems:e})=>{const t=g(e.datafeedsAdded),a=Object(c.jsx)(n.a.Fragment,null,Object(c.jsx)(r.EuiTitle,{size:"xs","data-test-subj":"mlJobMgmtSyncFlyoutObjectsMissingDatafeedTitle"},Object(c.jsx)("h3",null,Object(c.jsx)(r.EuiTextColor,{color:t?"default":"subdued"},Object(c.jsx)(o.FormattedMessage,{id:"xpack.ml.management.syncSavedObjectsFlyout.datafeedsAdded.title",defaultMessage:"Saved objects with missing datafeeds ({count})",values:{count:t}})))),Object(c.jsx)(r.EuiText,{size:"s"},Object(c.jsx)("p",null,Object(c.jsx)(r.EuiTextColor,{color:"subdued"},Object(c.jsx)(o.FormattedMessage,{id:"xpack.ml.management.syncSavedObjectsFlyout.datafeedsAdded.description",defaultMessage:"If there are saved objects that are missing the datafeed ID for anomaly detection jobs, the ID will be added."})))));return Object(c.jsx)(f,{id:"datafeedsAdded",title:a,results:e.datafeedsAdded})},b=({syncItems:e})=>{const t=g(e.datafeedsRemoved),a=Object(c.jsx)(n.a.Fragment,null,Object(c.jsx)(r.EuiTitle,{size:"xs","data-test-subj":"mlJobMgmtSyncFlyoutObjectsUnmatchedDatafeedTitle"},Object(c.jsx)("h3",null,Object(c.jsx)(r.EuiTextColor,{color:t?"default":"subdued"},Object(c.jsx)(o.FormattedMessage,{id:"xpack.ml.management.syncSavedObjectsFlyout.datafeedsRemoved.title",defaultMessage:"Saved objects with unmatched datafeed IDs ({count})",values:{count:t}})))),Object(c.jsx)(r.EuiText,{size:"s"},Object(c.jsx)("p",null,Object(c.jsx)(r.EuiTextColor,{color:"subdued"},Object(c.jsx)(o.FormattedMessage,{id:"xpack.ml.management.syncSavedObjectsFlyout.datafeedsRemoved.description",defaultMessage:"If there are saved objects that use a datafeed that does not exist, they will be deleted."})))));return Object(c.jsx)(f,{id:"datafeedsRemoved",title:a,results:e.datafeedsRemoved})},f=({id:e,title:t,results:a})=>Object(c.jsx)(r.EuiAccordion,{id:e,buttonContent:t,paddingSize:"l"},Object.entries(a).map((([e,t])=>Object(c.jsx)(i.Fragment,{key:e},Object(c.jsx)(r.EuiText,{size:"s"},Object(c.jsx)("h4",null,e),Object(c.jsx)("ul",null,Object.keys(t).map((e=>Object(c.jsx)("li",{key:e},e))))),Object(c.jsx)(r.EuiSpacer,{size:"s"})))));function g(e){return Object.values(e).flatMap((e=>Object.keys(e))).length}var h=a(101);const j=({onClose:e})=>{const{displayErrorToast:t,displaySuccessToast:a}=Object(h.c)(),[u,p]=Object(i.useState)(!1),[m,b]=Object(i.useState)(!1),[f,g]=Object(i.useState)(null),{savedObjects:{syncSavedObjects:j}}=Object(l.c)();async function x(e=!0){p(!0);try{const t=await j(e);g(t);const a=Object.values(t).reduce(((e,t)=>e+Object.keys(t).length),0);return b(a>0),p(!1),t}catch(e){t(e),p(!1)}return null}return Object(i.useEffect)((()=>{x()}),[]),Object(c.jsx)(n.a.Fragment,null,Object(c.jsx)(r.EuiFlyout,{maxWidth:600,onClose:e,"data-test-subj":"mlJobMgmtSyncFlyout"},Object(c.jsx)(r.EuiFlyoutHeader,{hasBorder:!0},Object(c.jsx)(r.EuiTitle,{size:"m"},Object(c.jsx)("h2",null,Object(c.jsx)(o.FormattedMessage,{id:"xpack.ml.management.syncSavedObjectsFlyout.headerLabel",defaultMessage:"Synchronize saved objects"})))),Object(c.jsx)(r.EuiFlyoutBody,null,Object(c.jsx)(r.EuiCallOut,{color:"primary"},Object(c.jsx)(r.EuiText,{size:"s"},Object(c.jsx)(o.FormattedMessage,{id:"xpack.ml.management.syncSavedObjectsFlyout.description",defaultMessage:"Synchronize the saved objects if they are out of sync with the machine learning jobs in Elasticsearch."}))),Object(c.jsx)(r.EuiSpacer,null),Object(c.jsx)(d,{syncItems:f})),Object(c.jsx)(r.EuiFlyoutFooter,null,Object(c.jsx)(r.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(c.jsx)(r.EuiFlexItem,{grow:!1},Object(c.jsx)(r.EuiButtonEmpty,{iconType:"cross",onClick:e,flush:"left","data-test-subj":"mlJobMgmtSyncFlyoutCloseButton"},Object(c.jsx)(o.FormattedMessage,{id:"xpack.ml.management.syncSavedObjectsFlyout.closeButton",defaultMessage:"Close"}))),Object(c.jsx)(r.EuiFlexItem,{grow:!1},Object(c.jsx)(r.EuiButton,{onClick:async function(){if(m){const e=await x(!1);if(await x(!0),null===e)return;const{successCount:i,errorCount:n}=function(e){let t=0,a=0;return Object.values(e).forEach((e=>{Object.values(e).forEach((e=>{Object.values(e).forEach((({success:e,error:i})=>{!0===e?t++:void 0!==i&&a++}))}))})),{successCount:t,errorCount:a}}(e);if(n>0){const a=s.i18n.translate("xpack.ml.management.syncSavedObjectsFlyout.sync.error",{defaultMessage:"Some jobs or trained models cannot be synchronized."});return void t(e,a)}a(s.i18n.translate("xpack.ml.management.syncSavedObjectsFlyout.sync.success",{defaultMessage:"{successCount} {successCount, plural, one {item} other {items}} synchronized",values:{successCount:i}}))}},fill:!0,isDisabled:!1===m||!0===u,"data-test-subj":"mlJobMgmtSyncFlyoutSyncButton"},Object(c.jsx)(o.FormattedMessage,{id:"xpack.ml.management.syncSavedObjectsFlyout.syncButton",defaultMessage:"Synchronize"})))))))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return O})),a.d(t,"b",(function(){return E}));var i=a(2),n=a.n(i),s=a(66),o=a(95),r=a(43),l=a(28),c=a(6),d=a(15),u=a(55),p=a(45),m=a(223),b=a(9),f=a(141),g=a(347),h=a(101),j=a(4);const x={[c.i18n.translate("xpack.ml.memoryUsage.treeMap.adLabel",{defaultMessage:"Anomaly detection jobs"})]:"anomaly-detector",[c.i18n.translate("xpack.ml.memoryUsage.treeMap.dfaLabel",{defaultMessage:"Data frame analytics jobs"})]:"data-frame-analytics",[c.i18n.translate("xpack.ml.memoryUsage.treeMap.modelsLabel",{defaultMessage:"Trained models"})]:"trained-model"},v=Object.entries(x).reduce(((e,[t,a])=>(e[a]=t,e)),{}),y=Object.entries(x).map((([e,t])=>({label:e,color:Object(g.a)(t)}))),O=({node:e,type:t,height:a})=>{const{services:{theme:n}}=Object(b.d)(),O=Object(u.b)(n),{theme:E,baseTheme:w}=Object(i.useMemo)((()=>O?{theme:o.EUI_CHARTS_THEME_DARK,baseTheme:s.DARK_THEME}:{theme:o.EUI_CHARTS_THEME_LIGHT,baseTheme:s.LIGHT_THEME}),[O]),M=Object(b.b)(r.FIELD_FORMAT_IDS.BYTES),{displayErrorToast:S}=Object(h.c)(),_=Object(f.a)(),T=null!=a?a:"400px",C=Object(p.b)(),[k,F]=Object(i.useState)([]),[I,D]=Object(i.useState)([]),[A,L]=Object(i.useState)(!1),[R,N]=Object(i.useState)(y),P=Object(i.useCallback)((e=>{const t=R.map((e=>x[e.label]));return e.filter((e=>t.includes(e.type)))}),[R]),z=Object(i.useCallback)((async()=>{L(!0);try{const a=await C.memoryUsage(t,e);F(a)}catch(e){S(e,c.i18n.translate("xpack.ml.memoryUsage.treeMap.fetchFailedErrorMessage",{defaultMessage:"Models memory usage fetch failed"}))}L(!1)}),[C,t,e,S]);return Object(i.useEffect)((function(){D(P(k))}),[R,k,P]),Object(i.useEffect)((function(){z()}),[z,_]),Object(j.jsx)("div",{style:{height:T},"data-test-subj":"mlJobTreeMap "+(I.length?"withData":"empty")},Object(j.jsx)(l.EuiSpacer,{size:"s"}),Object(j.jsx)(m.a,{height:T,hasData:I.length>0,loading:A},Object(j.jsx)(l.EuiComboBox,{fullWidth:!0,options:y,selectedOptions:R,onChange:N,isClearable:!1}),Object(j.jsx)(l.EuiSpacer,{size:"s"}),I.length?Object(j.jsx)(s.Chart,null,Object(j.jsx)(s.Settings,{baseTheme:w,theme:E.theme}),Object(j.jsx)(s.Partition,{id:"memoryUsageTreeMap",data:I,layout:s.PartitionLayout.treemap,valueAccessor:e=>e.size,valueFormatter:e=>M(e),layers:[{groupByRollup:e=>e.type,nodeLabel:e=>v[e],fillLabel:{valueFormatter:e=>M(e)},shape:{fillColor:e=>Object(g.a)(e)}},{groupByRollup:e=>e.id,nodeLabel:e=>`${e}`,fillLabel:{valueFont:{fontWeight:100}},shape:{fillColor:(e,t,a)=>{const i=a.parent.path[a.parent.path.length-1].value;return Object(g.a)(i)}}}]})):Object(j.jsx)(l.EuiEmptyPrompt,{titleSize:"xs",iconType:"warning","data-test-subj":"mlEmptyMemoryUsageTreeMap",title:Object(j.jsx)("h2",null,Object(j.jsx)(d.FormattedMessage,{id:"xpack.ml.memoryUsage.treeMap.emptyPrompt",defaultMessage:"No open jobs or trained models match the current selection. "}))})))},E=()=>Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(l.EuiSpacer,{size:"s"}),Object(j.jsx)(l.EuiCallOut,{color:"primary"},Object(j.jsx)(d.FormattedMessage,{id:"xpack.ml.memoryUsage.treeMap.infoCallout",defaultMessage:"Memory usage for active machine learning jobs and trained models."})),Object(j.jsx)(O,null))},function(e,t,a){"use strict";a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return p}));var i=a(100),n=a.n(i),s=(a(2),a(199)),o=a(9),r=a(352),l=a(4);const c=e=>{const{services:{data:{query:{timefilter:{timefilter:t}}}}}=Object(o.d)(),a=Object(s.a)();return Object(l.jsx)(r.a,n()({},e,{currentTimeFilter:t.getTime(),dashboardService:a}))};var d=a(98),u=a(157);function p(e){return void 0===e||0===e.length||!e.some(((t,a)=>{const i=t.url_name,n=[...e];n.splice(a,1);let s=Object(u.b)(i,n);if(!0===s&&Object(d.E)(t)){const e=t.time_range;s=Object(u.c)(e)}return!s}))}},,,function(e,t,a){"use strict";a.d(t,"a",(function(){return d}));var i=a(2),n=a(28),s=a(77),o=a(6),r=a(4);const l=20;function c(e){return null!==e?o.i18n.translate("xpack.ml.jobSelector.filterBar.invalidSearchErrorMessage",{defaultMessage:"Invalid search: {errorMessage}",values:{errorMessage:e.message}}):""}function d({checkboxDisabledCheck:e,columns:t,currentPage:a=0,filterDefaultFields:d,filters:u,items:p,itemsPerPage:m=l,onTableChange:b,radioDisabledCheck:f,selectedIds:g,setCurrentPaginationData:h,singleSelection:j,sortableProperties:x,tableItemId:v="id"}){const[y,O]=Object(i.useState)(N()),[E,w]=Object(i.useState)(p),[M,S]=Object(i.useState)(g),[_,T]=Object(i.useState)(""),[C,k]=Object(i.useState)(),[F,I]=Object(i.useState)({itemsPerPage:m,firstItemIndex:0,lastItemIndex:1}),[D,A]=Object(i.useState)(n.EuiSearchBar.Query.MATCH_ALL),[L,R]=Object(i.useState)(null);function N(){const e={all:!1};return g.forEach((t=>{e[t]=!0})),e}function P({isSelected:e,itemId:t}){const a=Object.getOwnPropertyNames(y),i=E.map((e=>e[v]));let n=a.filter((e=>!0===y[e]&&e!==t));"all"!==t?!0===e&&n.push(t):!1===e?n=n.filter((e=>!1===i.includes(e))):(n=[...n,...i],n=[...new Set(n)]),h&&h({pageIndex:C.getCurrentPageIndex(),itemsPerPage:F.itemsPerPage}),b(n)}function z({query:e,error:t}){if(t)R(t);else{const t=n.EuiSearchBar.Query.execute(e,p,{defaultFields:d});R(null),w(t),A(e)}}function B(e){return!0===y[e]}function V(){return-1===E.findIndex((e=>!B(e[v])))}Object(i.useEffect)((()=>{w(p),z({query:D})}),[p]),Object(i.useEffect)((()=>{O(N())}),[g]),Object(i.useEffect)((()=>{const e=new s.Pager(E.length,m,a);I({itemsPerPage:m,firstItemIndex:e.getFirstItemIndex(),lastItemIndex:e.getLastItemIndex()}),k(e)}),[E]);const J=Object(i.useMemo)((()=>Object(n.htmlIdGenerator)()()),[]);function U(e){const t=o.i18n.translate("xpack.ml.jobSelector.customTable.selectAllCheckboxLabel",{defaultMessage:"Select all"});return Object(r.jsx)(n.EuiCheckbox,{id:`${e?"mobile-":""}${J}`,label:e?t:null,checked:V(),onChange:q,type:e?null:"inList"})}function G(e){if(j){const t=M[0];O({...y,[t]:!1,[e]:!0}),function(e){b([e])}(e),S([e])}else{const t=!B(e);O({...y,[e]:t}),P({isSelected:t,itemId:e})}}function q(){const e=V()||!0===y.all,t={};E.forEach((a=>t[a[v]]=!e)),O(t),P({isSelected:!e,itemId:"all"})}return Object(r.jsx)(i.Fragment,null,Object(r.jsx)(n.EuiSpacer,{size:"s"}),Object(r.jsx)(n.EuiFlexGroup,{direction:"column"},Object(r.jsx)(n.EuiFlexItem,{grow:!1,"data-test-subj":"mlCustomSelectionTableSearchBar"},Object(r.jsx)(n.EuiSearchBar,{defaultQuery:D,box:{incremental:!0,placeholder:o.i18n.translate("xpack.ml.jobSelector.customTable.searchBarPlaceholder",{defaultMessage:"Search..."})},filters:u,onChange:z}),Object(r.jsx)(n.EuiFormRow,{fullWidth:!0,isInvalid:null!==L,error:c(L),style:{maxHeight:"0px"}},Object(r.jsx)(i.Fragment,null)))),Object(r.jsx)(n.EuiSpacer,{size:"m"}),Object(r.jsx)(n.EuiTableHeaderMobile,null,Object(r.jsx)(n.EuiFlexGroup,{responsive:!1,justifyContent:"spaceBetween",alignItems:"baseline"},Object(r.jsx)(n.EuiFlexItem,{grow:!1},U(!0)))),Object(r.jsx)(n.EuiTable,{"data-test-subj":"mlCustomSelectionTable"},Object(r.jsx)(n.EuiTableHeader,null,function(){const e=[];return t.forEach(((a,i)=>{a.isCheckbox&&!j?e.push(Object(r.jsx)(n.EuiTableHeaderCellCheckbox,{key:a.id,width:a.width},U())):e.push(Object(r.jsx)(n.EuiTableHeaderCell,{key:a.id,align:t[i].alignment,width:a.width,onSort:a.isSortable?()=>function(e){x.sortOn(e);const t=x.sortItems(E);w(t),T(e)}(a.id):void 0,isSorted:_===a.id,isSortAscending:!x||x.isAscendingByName(a.id),mobileOptions:a.mobileOptions},a.label))})),e.length?e:null}()),Object(r.jsx)(n.EuiTableBody,null,function(){const a=a=>{const i=t.map((t=>{const i=a[t.id];let s;return t.isCheckbox?Object(r.jsx)(n.EuiTableRowCellCheckbox,{key:t.id},!j&&Object(r.jsx)(n.EuiCheckbox,{disabled:void 0!==e?e(a):void 0,id:`${a[v]}-checkbox`,"data-test-subj":`${a[v]}-checkbox`,checked:B(a[v]),onChange:()=>G(a[v]),type:"inList"}),j&&Object(r.jsx)(n.EuiRadio,{id:a[v],"data-test-subj":`${a[v]}-radio-button`,checked:B(a[v]),onChange:()=>G(a[v]),disabled:void 0!==f?f(a):void 0})):(s=t.render?t.render(a):i,Object(r.jsx)(n.EuiTableRowCell,{key:t.id,align:t.alignment,truncateText:i&&i.truncateText,textOnly:!i||i.textOnly,mobileOptions:{header:t.label,...t.mobileOptions}},s))}));return Object(r.jsx)(n.EuiTableRow,{key:a[v],isSelected:B(a[v]),isSelectable:!0,hasActions:!0,"data-test-subj":`mlCustomSelectionTableRow row-${a[v]}`},i)},i=[];for(let e=F.firstItemIndex;e<=F.lastItemIndex;e++){const t=E[e];if(void 0===t)break;i.push(a(t))}return i}())),Object(r.jsx)(n.EuiSpacer,{size:"m"}),void 0!==C&&Object(r.jsx)(n.EuiTablePagination,{activePage:C.getCurrentPageIndex(),itemsPerPage:F.itemsPerPage,itemsPerPageOptions:[5,10,20,50],pageCount:C.getTotalPages(),onChangeItemsPerPage:function(e){C.setItemsPerPage(e),I({...F,itemsPerPage:e,firstItemIndex:C.getFirstItemIndex(),lastItemIndex:C.getLastItemIndex()})},onChangePage:e=>function(e){C.goToPageIndex(e),I({...F,firstItemIndex:C.getFirstItemIndex(),lastItemIndex:C.getLastItemIndex()})}(e)}))}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i.c})),a.d(t,"b",(function(){return i.d})),a.d(t,"c",(function(){return o}));var i=a(163),n=a(2),s=a(4);const o=e=>{const t=Object(i.e)(),a=Object(n.useCallback)((e=>{t(e)}),[]);return{action:Object(n.useMemo)((()=>({name:()=>Object(s.jsx)(i.a,{isDisabled:!e}),enabled:()=>e,description:i.b,icon:"copy",type:"icon",onClick:a,"data-test-subj":"mlAnalyticsJobCloneButton"})),[])}}},function(e,t,a){"use strict";a.d(t,"a",(function(){return i.b})),a.d(t,"b",(function(){return g}));var i=a(140),n=a(2),s=a(6),o=a(69),r=a(107),l=a(9),c=a(12),d=a(119),u=a(363),p=a(294),m=a(295);async function b(e){let t,a;try{t=await c.ml.checkIndicesExists({indices:[e]})}catch(e){a=Object(r.b)(e)}return{resp:t,errorMessage:a}}function f(e=1e3){return new Promise((t=>{setTimeout(t,e)}))}const g=()=>{const{services:{data:{dataViews:e}}}=Object(l.d)(),[t,a]=Object(n.useReducer)(m.b,Object(i.e)()),{refresh:g}=Object(d.n)(),{form:h,jobConfig:j,isAdvancedEditorEnabled:x}=t,{createIndexPattern:v,jobId:y}=h;let{destinationIndex:O}=h;const E=e=>a({type:p.a.ADD_REQUEST_MESSAGE,requestMessage:e}),w=e=>{a({type:p.a.SET_FORM_STATE,payload:e})},M=()=>{a({type:p.a.SWITCH_TO_ADVANCED_EDITOR})},S=e=>{a({type:p.a.SET_ESTIMATED_MODEL_MEMORY_LIMIT,value:null!=e?e:""})};return{state:t,actions:{closeModal:()=>a({type:p.a.CLOSE_MODAL}),createAnalyticsJob:async()=>{a({type:p.a.RESET_REQUEST_MESSAGES});const t=x?j:Object(i.f)(h);x&&(O=t.dest.index);try{return await c.ml.dataFrameAnalytics.createDataFrameAnalytics(y,t),E({message:s.i18n.translate("xpack.ml.dataframe.stepCreateForm.createDataFrameAnalyticsSuccessMessage",{defaultMessage:"Request to create data frame analytics {jobId} acknowledged.",values:{jobId:y}})}),!0,a({type:p.a.SET_IS_JOB_CREATED,isJobCreated:true}),v&&(async()=>{const t=O,a=await async function(e){let t=15,a=await b(e),i=a.resp&&a.resp[e]&&a.resp[e].exists;for(;t>1&&!i;)t--,await f(1e3),a=await b(e),i=a.resp&&a.resp[e]&&a.resp[e].exists;return i?{success:!0,indexExists:!0}:{success:!1,indexExists:!1,...void 0!==a.errorMessage?{errorMessage:a.errorMessage}:{}}}(O);if(!0===(null==a?void 0:a.success)){if(!0===(null==a?void 0:a.indexExists))try{await e.createAndSave({title:t,...h.timeFieldName?{timeFieldName:h.timeFieldName}:{}},!1,!0),E({message:s.i18n.translate("xpack.ml.dataframe.analytics.create.createDataViewSuccessMessage",{defaultMessage:"Kibana data view {dataViewName} created.",values:{dataViewName:t}})})}catch(e){e instanceof o.DuplicateDataViewError?E({error:s.i18n.translate("xpack.ml.dataframe.analytics.create.duplicateDataViewErrorMessageError",{defaultMessage:"The data view {dataViewName} already exists.",values:{dataViewName:t}}),message:s.i18n.translate("xpack.ml.dataframe.analytics.create.duplicateDataViewErrorMessage",{defaultMessage:"An error occurred creating the Kibana data view:"})}):E({error:Object(r.b)(e),message:s.i18n.translate("xpack.ml.dataframe.analytics.create.createDataViewErrorMessage",{defaultMessage:"An error occurred creating the Kibana data view:"})})}}else null!=a&&a.errorMessage?E({error:s.i18n.translate("xpack.ml.dataframe.analytics.create.errorCheckingDestinationIndexDataFrameAnalyticsJob",{defaultMessage:"{errorMessage}",values:{errorMessage:a.errorMessage}}),message:s.i18n.translate("xpack.ml.dataframe.analytics.create.errorOccurredCheckingDestinationIndexDataFrameAnalyticsJob",{defaultMessage:"An error occurred checking destination index exists."})}):E({error:s.i18n.translate("xpack.ml.dataframe.analytics.create.destinationIndexNotCreatedForDataFrameAnalyticsJob",{defaultMessage:"Destination index has not yet been created."}),message:s.i18n.translate("xpack.ml.dataframe.analytics.create.unableToCreateDataViewForDataFrameAnalyticsJob",{defaultMessage:"Unable to create data view."})})})(),g(),!0}catch(e){return E({error:Object(r.b)(e),message:s.i18n.translate("xpack.ml.dataframe.analytics.create.errorCreatingDataFrameAnalyticsJob",{defaultMessage:"An error occurred creating the data frame analytics job:"})}),!1}},initiateWizard:async()=>{await e.clearCache(),await(async()=>{try{const i={};(await e.getCache()||[]).forEach((e=>{var t;const a=null==e||null===(t=e.attributes)||void 0===t?void 0:t.title;if(void 0!==a){const t=(null==e?void 0:e.id)||"";i[a]={label:a,value:t}}})),t={indexPatternsMap:i},a({type:p.a.SET_INDEX_PATTERN_TITLES,payload:t})}catch(e){E({error:Object(r.b)(e),message:s.i18n.translate("xpack.ml.dataframe.analytics.create.errorGettingDataViewNames",{defaultMessage:"An error occurred getting the existing data view names:"})})}var t})()},resetAdvancedEditorMessages:()=>a({type:p.a.RESET_ADVANCED_EDITOR_MESSAGES}),setAdvancedEditorRawString:e=>a({type:p.a.SET_ADVANCED_EDITOR_RAW_STRING,advancedEditorRawString:e}),setFormState:w,setJobConfig:e=>{a({type:p.a.SET_JOB_CONFIG,payload:e})},startAnalyticsJob:async()=>{try{const e=await c.ml.dataFrameAnalytics.startDataFrameAnalytics(y);if(!0!==e.acknowledged)throw new Error(e);E({message:s.i18n.translate("xpack.ml.dataframe.analytics.create.startDataFrameAnalyticsSuccessMessage",{defaultMessage:"Request to start data frame analytics {jobId} acknowledged.",values:{jobId:y}})}),!0,a({type:p.a.SET_IS_JOB_STARTED,isJobStarted:true}),g()}catch(e){E({error:Object(r.b)(e),message:s.i18n.translate("xpack.ml.dataframe.analytics.create.errorStartingDataFrameAnalyticsJob",{defaultMessage:"An error occurred starting the data frame analytics job:"})})}},switchToAdvancedEditor:M,switchToForm:()=>{a({type:p.a.SWITCH_TO_FORM})},setEstimatedModelMemoryLimit:S,setJobClone:async e=>{a({type:p.a.RESET_FORM});const t=Object(u.a)(e);Object(u.b)(t)?(w(Object(i.d)(t)),M()):(w(Object(i.d)(t)),S(t.model_memory_limit)),a({type:p.a.SET_JOB_CLONE,cloneJob:e})}}}}},function(e,t,a){"use strict";function i(e,t=2){if(void 0===e)return"";if(e%1==0)return e;if(Math.abs(e)*{margin-top:4px}.ml-app .ml-anomalies-table tr td:first-child,.ml-app .ml-anomalies-table tr th:first-child{width:32px}.ml-app .ml-anomalies-table .euiTableCellContent .euiHealth{font-size:inherit}.ml-app .ml-anomalies-table .euiTableCellContent .detector-rules-icon{margin-left:4px;opacity:.5}.ml-app .ml-anomalies-table .euiContextMenuItem{min-width:150px}.ml-app .ml-anomalies-table .mlAnomalyCategoryExamples__header{display:inline}.ml-app .ml-anomalies-table .mlAnomalyCategoryExamples__link{width:100%}.ml-app .ml-anomalies-table .category-example{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ml-app .ml-anomalies-table .mlAnomalyCategoryExamples{padding:24px}.ml-app .ml-anomalies-table .mlAnomalyCategoryExamples__item{display:block;font-family:Roboto Mono,Consolas,Menlo,Courier,monospace;white-space:wrap}.ml-app .ml-anomalies-table .interim-result{font-style:italic}.ml-app .ml-anomalies-table .ml-anomalies-table-details{padding:12px}.ml-app .mlColorRangeLegend text{fill:#98a2b3;font-size:10px;font-size:.71429rem}.ml-app .mlColorRangeLegend .axis path{fill:none;stroke:none}.ml-app .mlColorRangeLegend .axis line{fill:none;stroke:#535966;shape-rendering:crispEdges}.ml-app .field-value-short{display:inline-block;max-width:100%;overflow:hidden!important;text-overflow:ellipsis!important;vertical-align:bottom;white-space:nowrap!important}.ml-app .field-value-long{overflow-wrap:break-word}.ml-app .filter-button{height:16px;opacity:.5;transform:translateY(-1px);width:16px}.ml-app .filter-button .euiIcon{height:12px;width:12px}.ml-app .filter-button:hover{opacity:1}.ml-app .ml-influencers-list{line-height:1.45}.ml-app .ml-influencers-list .field-label{font-size:12px;max-height:14px;max-width:calc(100% - 102px);text-align:left}.ml-app .ml-influencers-list .field-label .field-value{display:inline-block;max-width:100%;overflow:hidden!important;text-overflow:ellipsis!important;vertical-align:bottom;white-space:nowrap!important}.ml-app .ml-influencers-list .progress{background-color:initial;color:#98a2b3;display:inline-block;height:22px;margin-bottom:0;min-width:70px;width:calc(100% - 34px)}.ml-app .ml-influencers-list .progress .progress-bar-holder{width:calc(100% - 28px)}.ml-app .ml-influencers-list .progress .progress-bar{display:inline-block;height:2px;line-height:18px;margin-top:12px;text-align:right;transition:none}.ml-app .ml-influencers-list .progress.critical .progress-bar{background-color:#fe5050}.ml-app .ml-influencers-list .progress.critical .score-label{border-color:#fe5050}.ml-app .ml-influencers-list .progress.major .progress-bar{background-color:#fba740}.ml-app .ml-influencers-list .progress.major .score-label{border-color:#fba740}.ml-app .ml-influencers-list .progress.minor .progress-bar{background-color:#fdec25}.ml-app .ml-influencers-list .progress.minor .score-label{border-color:#fdec25}.ml-app .ml-influencers-list .progress.warning .progress-bar{background-color:#8bc8fb}.ml-app .ml-influencers-list .progress.warning .score-label{border-color:#8bc8fb}.ml-app .ml-influencers-list .score-label{display:inline;font-size:12px;line-height:14px;margin-left:4px;text-align:center;white-space:nowrap}.ml-app .ml-influencers-list .total-score-label{border:1px solid #343741;border-radius:6px;color:#98a2b3;display:inline-block;font-size:11px;line-height:14px;margin-top:4px;padding:2px;text-align:center;vertical-align:top;width:32px}.ml-app .ml-influencers-list-tooltip{word-break:break-all}.ml-app .mlJobSelectorFlyoutBody>.euiFlyoutBody__overflow{padding-top:8px}.ml-app .mlJobSelector__ganttBar{background-color:#79adda;border-radius:2px;height:12px}.ml-app .mlJobSelector__ganttBarBackEdge{border-left:1px solid #d6d6d6;border-right:1px solid #d6d6d6;height:16px;margin-bottom:-14px;padding-top:8px}.ml-app .mlJobSelector__ganttBarDashed{border-top:1px dashed #d6d6d6;height:1px}.ml-app .mlJobSelector__ganttBarRunning{animation:progress-bar-stripes 2s linear infinite;background-image:linear-gradient(45deg,#ffffff26 25%,#0000 0,#0000 50%,#ffffff26 0,#ffffff26 75%,#0000 0,#0000);background-size:40px 40px}.ml-app .ml-rule-editor-flyout{font-size:14px}.ml-app .ml-rule-editor-flyout .select-rule-action .rule-detector-description-list{padding-left:16px}.ml-app .ml-rule-editor-flyout .select-rule-action-panel{padding:8px 0}.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList .euiDescriptionList__title{flex-basis:15%;padding:0 16px}.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList .euiDescriptionList__description{flex-basis:85%}.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList .euiDescriptionList__description:nth-child(2),.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList .euiDescriptionList__title:first-child{border-bottom:1px solid #343741;color:#dfe5ef;font-weight:700;padding-bottom:12px}.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList .euiDescriptionList__description:nth-child(4),.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList .euiDescriptionList__title:nth-child(3){padding-top:8px}.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList.euiDescriptionList--column>*{margin-top:4px}.ml-app .ml-rule-editor-flyout .scope-enable-checkbox .euiCheckbox__input[disabled]~.euiCheckbox__label{color:inherit}.ml-app .ml-rule-editor-flyout .scope-field-checkbox{margin-right:2px}.ml-app .ml-rule-editor-flyout .scope-field-checkbox .euiCheckbox{margin-top:4px}.ml-app .ml-rule-editor-flyout .scope-field-button{border-bottom:none;pointer-events:none}.ml-app .ml-rule-editor-flyout .scope-edit-filter-link{font-size:12px;line-height:32px}.ml-app .ml-rule-editor-flyout .condition-edit-value-field{height:28px;margin:0 2px;width:170px}.ml-app .ml-rule-editor-flyout .condition-edit-value-field input{height:28px}.ml-app .ml-rule-editor-flyout .euiExpressionButton.disabled{pointer-events:none}.ml-app .ml-rule-editor-flyout .euiExpressionButton.disabled .euiExpressionButton__description,.ml-app .ml-rule-editor-flyout .euiExpressionButton.disabled .euiExpressionButton__value{color:#343741}.ml-app .ml-rule-editor-flyout .text-highlight{font-weight:700}.ml-app .euiDescriptionList.euiDescriptionList--column.rule-detector-description-list .euiDescriptionList__title{flex-basis:15%}.ml-app .euiDescriptionList.euiDescriptionList--column.rule-detector-description-list .euiDescriptionList__description{flex-basis:85%}.ml-app .euiDescriptionList.euiDescriptionList--column.rule-detector-description-list>*{margin-top:4px}',""]),e.exports=t},function(e,t,a){var i=a(103),n=a(375);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);i(n,{insert:"head",singleton:!1}),e.exports=n.locals||{}},function(e,t,a){(t=a(104)(!1)).push([e.i,'.ml-app .mlDataFrameAnalyticsRegression__evaluateStat{padding-top:24px}.ml-app .mlJobMapLegend__container{background-color:"#FFFFFF"}.ml-app .mlJobMapLegend__indexPattern{background-color:#fff;border:2px solid #d36086;display:"inline-block";height:12px;transform:rotate(45deg);width:12px}.ml-app .mlJobMapLegend__ingestPipeline{background-color:#fff;border:2px solid #da8b45;border-radius:4px;display:"inline-block";height:12px;width:12px}.ml-app .mlJobMapLegend__transform{background-color:#fff;border:2px solid #6092c0;display:"inline-block";height:12px;width:12px}.ml-app .mlJobMapLegend__analytics{background-color:#fff;border:2px solid #54b399;border-radius:50%;display:"inline-block";height:12px;width:12px}.ml-app .mlJobMapLegend__sourceNode{background-color:#fec514;border:1px solid #d3dae6;border-radius:6px;display:"inline-block";height:12px;width:12px}.ml-app .mlAnalyticsTable .euiTableRow-isExpandedRow .euiTableCellContent{animation:none!important}.ml-app .mlAnalyticsTable .euiTableRow-isExpandedRow .euiTableCellContent .euiTableCellContent__text{width:100%}.ml-app .mlAnalyticsTable .euiIcon[data-is-loaded]{animation:none!important}.ml-app .mlTaskModeBadge,.ml-app .mlTaskStateBadge{max-width:100px}.ml-app .dataFrameAnalyticsCreateSearchDialog{min-height:600px;width:720px}.ml-app .dfAnalyticsCreationWizard__card{width:300px}.ml-app .mlSwimLaneContainer .echLegendListContainer{height:34px!important}.ml-app .mlSwimLaneContainer .echLegendList{display:flex!important;flex-wrap:nowrap;justify-content:space-between!important;position:absolute;right:0}.ml-app .ml-explorer-chart-eui-icon-tip{max-width:none}.ml-app .ml-explorer-chart-label-badges{align-items:center;display:flex;margin-top:4px}.ml-app .ml-reset-font-weight{font-weight:400}.ml-app .ml-explorer-chart-container{overflow:hidden}.ml-app .ml-explorer-chart-container .ml-explorer-chart-svg{font-family:Inter UI,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:12px}.ml-app .ml-explorer-chart-container .ml-explorer-chart-svg .line-chart rect{fill:#fff;opacity:1}.ml-app .ml-explorer-chart-container .ml-explorer-chart-svg .line-chart rect.selected-interval{fill:#c8c8c81a;stroke:#69707d;stroke-width:2px;stroke-opacity:.8}.ml-app .ml-explorer-chart-container .ml-explorer-chart-svg .line-chart rect.scheduled-event-marker{stroke-width:1px;stroke:#69707d;fill:#d3dae6;pointer-events:none}.ml-app .ml-explorer-chart-container .axis line,.ml-app .ml-explorer-chart-container .axis path{fill:none;stroke:#d3dae6;shape-rendering:crispEdges}.ml-app .ml-explorer-chart-container .axis .tick line.ml-tick-emphasis{stroke:#0003}.ml-app .ml-explorer-chart-container .axis text{fill:#69707d}.ml-app .ml-explorer-chart-container .axis .tick line{stroke:#d3dae6;stroke-width:1px}.ml-app .ml-explorer-chart-container .values-line{fill:none;stroke:#07c;stroke-width:2}.ml-app .ml-explorer-chart-container .values-dots circle,.ml-app .ml-explorer-chart-container .values-dots-circle{fill:#07c;stroke-width:0}.ml-app .ml-explorer-chart-container .values-dots circle.values-dots-circle-blur{fill:#98a2b3}.ml-app .ml-explorer-chart-container .metric-value{fill:#0000;stroke:#07c;stroke-width:0;opacity:1}.ml-app .ml-explorer-chart-container .anomaly-marker{stroke-width:1px;stroke:#98a2b3}.ml-app .ml-explorer-chart-container .anomaly-marker:hover{stroke-width:6px;stroke:#07c}.ml-app .ml-explorer-chart-container .anomaly-marker.critical{fill:#fe5050}.ml-app .ml-explorer-chart-container .anomaly-marker.major{fill:#fba740}.ml-app .ml-explorer-chart-container .anomaly-marker.minor{fill:#fdec25}.ml-app .ml-explorer-chart-container .anomaly-marker.warning{fill:#8bc8fb}.ml-app .ml-explorer-chart-container .anomaly-marker.low{fill:#d2e9f7}.ml-app .ml-explorer-chart-container .anomaly-marker:hover,.ml-app .ml-explorer-chart-container .metric-value:hover{stroke-width:6px;stroke-opacity:.65}.ml-app .ml-explorer-chart{overflow:hidden}.ml-app .ml-explorer-chart-content-wrapper{height:215px}.ml-app .ml-explorer-chart-axis-emphasis{font-weight:700}.ml-app .ml-time-series-explorer{color:#69707d}.ml-app .ml-time-series-explorer .forecast-controls{float:right}.ml-app .ml-time-series-explorer .ml-timeseries-chart svg{font-family:Inter UI,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:12px}.ml-app .ml-time-series-explorer .ml-timeseries-chart .axis line,.ml-app .ml-time-series-explorer .ml-timeseries-chart .axis path{fill:none;stroke:#d3dae6;shape-rendering:crispEdges;pointer-events:none}.ml-app .ml-time-series-explorer .ml-timeseries-chart .axis text{fill:#343741}.ml-app .ml-time-series-explorer .ml-timeseries-chart .axis .tick line{stroke:#d3dae6}.ml-app .ml-time-series-explorer .ml-timeseries-chart .chart-border{stroke:#d3dae6;fill:none;stroke-width:1;shape-rendering:crispEdges}.ml-app .ml-time-series-explorer .ml-timeseries-chart .chart-border-highlight{stroke:#69707d;stroke-width:2}.ml-app .ml-time-series-explorer .ml-timeseries-chart .chart-border-highlight:hover{opacity:1}.ml-app .ml-time-series-explorer .ml-timeseries-chart .area{stroke-width:1}.ml-app .ml-time-series-explorer .ml-timeseries-chart .area.bounds{fill:#07c3;pointer-events:none}.ml-app .ml-time-series-explorer .ml-timeseries-chart .values-line{fill:none;stroke:#07c;stroke-width:2;pointer-events:none}.ml-app .ml-time-series-explorer .ml-timeseries-chart .values-line.forecast{stroke:#d6bf57;pointer-events:none}.ml-app .ml-time-series-explorer .ml-timeseries-chart .hidden{visibility:hidden}.ml-app .ml-time-series-explorer .ml-timeseries-chart .area.forecast{fill:#d6bf574d;pointer-events:none}.ml-app .ml-time-series-explorer .ml-timeseries-chart .metric-value{fill:#0000;stroke:#07c;stroke-width:0;opacity:1}.ml-app .ml-time-series-explorer .ml-timeseries-chart .anomaly-marker{stroke-width:1px;stroke:#98a2b3}.ml-app .ml-time-series-explorer .ml-timeseries-chart .anomaly-marker.critical{fill:#fe5050}.ml-app .ml-time-series-explorer .ml-timeseries-chart .anomaly-marker.major{fill:#fba740}.ml-app .ml-time-series-explorer .ml-timeseries-chart .anomaly-marker.minor{fill:#fdec25}.ml-app .ml-time-series-explorer .ml-timeseries-chart .anomaly-marker.warning{fill:#8bc8fb}.ml-app .ml-time-series-explorer .ml-timeseries-chart .anomaly-marker.low{fill:#d2e9f7}.ml-app .ml-time-series-explorer .ml-timeseries-chart .anomaly-marker.highlighted,.ml-app .ml-time-series-explorer .ml-timeseries-chart .anomaly-marker:hover,.ml-app .ml-time-series-explorer .ml-timeseries-chart .metric-value:hover{stroke-width:6px;stroke-opacity:.65;stroke:#07c}.ml-app .ml-time-series-explorer .ml-timeseries-chart rect.scheduled-event-marker{stroke-width:1px;stroke:#69707d;fill:#d3dae6}.ml-app .ml-time-series-explorer .ml-timeseries-chart .forecast .metric-value,.ml-app .ml-time-series-explorer .ml-timeseries-chart .forecast .metric-value:hover{stroke:#d6bf57}.ml-app .ml-time-series-explorer .ml-timeseries-chart .focus-chart .x-axis-background line{fill:none;shape-rendering:crispEdges;stroke:#f5f7fa}.ml-app .ml-time-series-explorer .ml-timeseries-chart .focus-chart .x-axis-background rect{fill:#f5f7fa}.ml-app .ml-time-series-explorer .ml-timeseries-chart .focus-chart .focus-zoom{fill:#69707d}.ml-app .ml-time-series-explorer .ml-timeseries-chart .focus-chart .focus-zoom a text{fill:#07c;cursor:pointer}.ml-app .ml-time-series-explorer .ml-timeseries-chart .focus-chart .focus-zoom a:active,.ml-app .ml-time-series-explorer .ml-timeseries-chart .focus-chart .focus-zoom a:focus,.ml-app .ml-time-series-explorer .ml-timeseries-chart .focus-chart .focus-zoom a:hover{text-decoration:underline}.ml-app .ml-time-series-explorer .ml-timeseries-chart .context-chart .x.axis path{display:none}.ml-app .ml-time-series-explorer .ml-timeseries-chart .context-chart .axis text{fill:#343741;font-size:10px}.ml-app .ml-time-series-explorer .ml-timeseries-chart .context-chart .values-line{stroke-width:1}.ml-app .ml-time-series-explorer .ml-timeseries-chart .context-chart .mask polygon{fill-opacity:.1}.ml-app .ml-time-series-explorer .ml-timeseries-chart .context-chart .mask .area.bounds{fill:#d3dae6}.ml-app .ml-time-series-explorer .ml-timeseries-chart .context-chart .mask .values-line{stroke-width:1;stroke:#98a2b3}.ml-app .ml-time-series-explorer .ml-timeseries-chart .swimlane .axis text,.ml-app .ml-time-series-explorer .ml-timeseries-chart .swimlane rect.swimlane-cell-hidden{display:none}.ml-app .ml-time-series-explorer .ml-timeseries-chart .brush .extent{fill-opacity:0;shape-rendering:crispEdges;stroke:#69707d;stroke-width:2;cursor:move}.ml-app .ml-time-series-explorer .ml-timeseries-chart .brush .extent:hover{opacity:1}.ml-app .ml-time-series-explorer .ml-timeseries-chart .top-border{fill:#fff}.ml-app .ml-time-series-explorer .ml-timeseries-chart foreignObject.brush-handle{padding-top:1px;pointer-events:none}.ml-app .ml-time-series-explorer .ml-timeseries-chart div.brush-handle-inner{fill:#69707d;background-color:#d3dae6;border:1px solid #69707d;cursor:ew-resize;font-size:14px;height:70px;margin-top:9px;text-align:center;width:10px}.ml-app .ml-time-series-explorer .ml-timeseries-chart div.brush-handle-inner-left{border-radius:6px 0 0 6px}.ml-app .ml-time-series-explorer .ml-timeseries-chart div.brush-handle-inner-right{border-radius:0 6px 6px 0}.ml-app .ml-time-series-explorer .ml-timeseries-chart rect.brush-handle{stroke-width:1;stroke:#69707d;fill:#d3dae6;pointer-events:none}.ml-app .ml-time-series-explorer .ml-timeseries-chart rect.brush-handle:hover{opacity:1}.ml-app .mlTimeSeriesExplorerProgress{background-color:#fff}.ml-app .mlTimeSeriesExplorerProgress::-moz-progress-bar,.ml-app .mlTimeSeriesExplorerProgress::-webkit-progress-bar{background-color:#fff}.ml-app .mlAnnotationBrush .extent{stroke:#d3dae6;stroke-width:2px;stroke-dasharray:2 2;fill:#f5f7fa;shape-rendering:geometricPrecision}.ml-app .mlAnnotationRect{stroke:#000;stroke-width:2px;stroke-opacity:.2;fill:#000;fill-opacity:.05;shape-rendering:geometricPrecision;transition:stroke-opacity .15s;transition:fill-opacity .15s}.ml-app .mlAnnotationRect-isHighlight{stroke-opacity:.4;fill-opacity:.1;transition:stroke-opacity .15s;transition:fill-opacity .15s}.ml-app .mlAnnotationRect-isBlur{stroke-opacity:.1;fill-opacity:.025;transition:stroke-opacity .15s;transition:fill-opacity .15s}.ml-app .mlAnnotationText{text-anchor:middle;fill:#000;font-family:Inter UI,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:12px;font-weight:500;transition:fill .15s;-webkit-user-select:none;user-select:none}.ml-app .mlAnnotationText-isBlur{fill:#98a2b3;transition:fill .15s}.ml-app .mlAnnotationTextRect{fill:#d3dae6;transition:fill .15s}.ml-app .mlAnnotationTextRect-isBlur{fill:#f5f7fa;transition:fill .15s}.ml-app .mlAnnotationHidden{display:none}.ml-app .mlContextAnnotationRect{stroke:#000;stroke-width:2px;stroke-opacity:.2;fill:#000;fill-opacity:.05;shape-rendering:geometricPrecision;transition:stroke-opacity .15s;transition:fill-opacity .15s}.ml-app .mlContextAnnotationRect-isBlur{stroke-opacity:.1;fill-opacity:.025;transition:stroke-opacity .15s;transition:fill-opacity .15s}.ml-app .euiDescriptionList.euiDescriptionList--column.ml-annotation-description-list .euiDescriptionList__title{flex-basis:30%}.ml-app .euiDescriptionList.euiDescriptionList--column.ml-annotation-description-list .euiDescriptionList__description{flex-basis:70%}.ml-app .euiDescriptionList.euiDescriptionList--column.ml-annotation-description-list>*{margin-top:4px}.ml-app .ml-anomalies-table tr td:first-child,.ml-app .ml-anomalies-table tr th:first-child{width:32px}.ml-app .ml-anomalies-table .euiTableCellContent .euiHealth{font-size:inherit}.ml-app .ml-anomalies-table .euiTableCellContent .detector-rules-icon{margin-left:4px;opacity:.5}.ml-app .ml-anomalies-table .euiContextMenuItem{min-width:150px}.ml-app .ml-anomalies-table .mlAnomalyCategoryExamples__header{display:inline}.ml-app .ml-anomalies-table .mlAnomalyCategoryExamples__link{width:100%}.ml-app .ml-anomalies-table .category-example{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ml-app .ml-anomalies-table .mlAnomalyCategoryExamples{padding:24px}.ml-app .ml-anomalies-table .mlAnomalyCategoryExamples__item{display:block;font-family:Roboto Mono,Consolas,Menlo,Courier,monospace;white-space:wrap}.ml-app .ml-anomalies-table .interim-result{font-style:italic}.ml-app .ml-anomalies-table .ml-anomalies-table-details{padding:12px}.ml-app .mlColorRangeLegend text{fill:#69707d;font-size:10px;font-size:.71429rem}.ml-app .mlColorRangeLegend .axis path{fill:none;stroke:none}.ml-app .mlColorRangeLegend .axis line{fill:none;stroke:#98a2b3;shape-rendering:crispEdges}.ml-app .field-value-short{display:inline-block;max-width:100%;overflow:hidden!important;text-overflow:ellipsis!important;vertical-align:bottom;white-space:nowrap!important}.ml-app .field-value-long{overflow-wrap:break-word}.ml-app .filter-button{height:16px;opacity:.5;transform:translateY(-1px);width:16px}.ml-app .filter-button .euiIcon{height:12px;width:12px}.ml-app .filter-button:hover{opacity:1}.ml-app .ml-influencers-list{line-height:1.45}.ml-app .ml-influencers-list .field-label{font-size:12px;max-height:14px;max-width:calc(100% - 102px);text-align:left}.ml-app .ml-influencers-list .field-label .field-value{display:inline-block;max-width:100%;overflow:hidden!important;text-overflow:ellipsis!important;vertical-align:bottom;white-space:nowrap!important}.ml-app .ml-influencers-list .progress{background-color:initial;color:#69707d;display:inline-block;height:22px;margin-bottom:0;min-width:70px;width:calc(100% - 34px)}.ml-app .ml-influencers-list .progress .progress-bar-holder{width:calc(100% - 28px)}.ml-app .ml-influencers-list .progress .progress-bar{display:inline-block;height:2px;line-height:18px;margin-top:12px;text-align:right;transition:none}.ml-app .ml-influencers-list .progress.critical .progress-bar{background-color:#fe5050}.ml-app .ml-influencers-list .progress.critical .score-label{border-color:#fe5050}.ml-app .ml-influencers-list .progress.major .progress-bar{background-color:#fba740}.ml-app .ml-influencers-list .progress.major .score-label{border-color:#fba740}.ml-app .ml-influencers-list .progress.minor .progress-bar{background-color:#fdec25}.ml-app .ml-influencers-list .progress.minor .score-label{border-color:#fdec25}.ml-app .ml-influencers-list .progress.warning .progress-bar{background-color:#8bc8fb}.ml-app .ml-influencers-list .progress.warning .score-label{border-color:#8bc8fb}.ml-app .ml-influencers-list .score-label{display:inline;font-size:12px;line-height:14px;margin-left:4px;text-align:center;white-space:nowrap}.ml-app .ml-influencers-list .total-score-label{border:1px solid #d3dae6;border-radius:6px;color:#69707d;display:inline-block;font-size:11px;line-height:14px;margin-top:4px;padding:2px;text-align:center;vertical-align:top;width:32px}.ml-app .ml-influencers-list-tooltip{word-break:break-all}.ml-app .mlJobSelectorFlyoutBody>.euiFlyoutBody__overflow{padding-top:8px}.ml-app .mlJobSelector__ganttBar{background-color:#79adda;border-radius:2px;height:12px}.ml-app .mlJobSelector__ganttBarBackEdge{border-left:1px solid #d6d6d6;border-right:1px solid #d6d6d6;height:16px;margin-bottom:-14px;padding-top:8px}.ml-app .mlJobSelector__ganttBarDashed{border-top:1px dashed #d6d6d6;height:1px}.ml-app .mlJobSelector__ganttBarRunning{animation:progress-bar-stripes 2s linear infinite;background-image:linear-gradient(45deg,#ffffff26 25%,#0000 0,#0000 50%,#ffffff26 0,#ffffff26 75%,#0000 0,#0000);background-size:40px 40px}.ml-app .ml-rule-editor-flyout{font-size:14px}.ml-app .ml-rule-editor-flyout .select-rule-action .rule-detector-description-list{padding-left:16px}.ml-app .ml-rule-editor-flyout .select-rule-action-panel{padding:8px 0}.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList .euiDescriptionList__title{flex-basis:15%;padding:0 16px}.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList .euiDescriptionList__description{flex-basis:85%}.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList .euiDescriptionList__description:nth-child(2),.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList .euiDescriptionList__title:first-child{border-bottom:1px solid #d3dae6;color:#1a1c21;font-weight:700;padding-bottom:12px}.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList .euiDescriptionList__description:nth-child(4),.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList .euiDescriptionList__title:nth-child(3){padding-top:8px}.ml-app .ml-rule-editor-flyout .select-rule-action-panel .euiDescriptionList.euiDescriptionList--column>*{margin-top:4px}.ml-app .ml-rule-editor-flyout .scope-enable-checkbox .euiCheckbox__input[disabled]~.euiCheckbox__label{color:inherit}.ml-app .ml-rule-editor-flyout .scope-field-checkbox{margin-right:2px}.ml-app .ml-rule-editor-flyout .scope-field-checkbox .euiCheckbox{margin-top:4px}.ml-app .ml-rule-editor-flyout .scope-field-button{border-bottom:none;pointer-events:none}.ml-app .ml-rule-editor-flyout .scope-edit-filter-link{font-size:12px;line-height:32px}.ml-app .ml-rule-editor-flyout .condition-edit-value-field{height:28px;margin:0 2px;width:170px}.ml-app .ml-rule-editor-flyout .condition-edit-value-field input{height:28px}.ml-app .ml-rule-editor-flyout .euiExpressionButton.disabled{pointer-events:none}.ml-app .ml-rule-editor-flyout .euiExpressionButton.disabled .euiExpressionButton__description,.ml-app .ml-rule-editor-flyout .euiExpressionButton.disabled .euiExpressionButton__value{color:#d3dae6}.ml-app .ml-rule-editor-flyout .text-highlight{font-weight:700}.ml-app .euiDescriptionList.euiDescriptionList--column.rule-detector-description-list .euiDescriptionList__title{flex-basis:15%}.ml-app .euiDescriptionList.euiDescriptionList--column.rule-detector-description-list .euiDescriptionList__description{flex-basis:85%}.ml-app .euiDescriptionList.euiDescriptionList--column.rule-detector-description-list>*{margin-top:4px}',""]),e.exports=t},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(57),n=a(280),s=i.__importDefault(a(378));t.default=function(e,t){s.default(e,t,n.isDeepEqual)}},function(e,t,a){"use strict";e.exports=function e(t,a){if(t===a)return!0;if(t&&a&&"object"==typeof t&&"object"==typeof a){if(t.constructor!==a.constructor)return!1;var i,n,s;if(Array.isArray(t)){if((i=t.length)!=a.length)return!1;for(n=i;0!=n--;)if(!e(t[n],a[n]))return!1;return!0}if(t.constructor===RegExp)return t.source===a.source&&t.flags===a.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===a.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===a.toString();if((i=(s=Object.keys(t)).length)!==Object.keys(a).length)return!1;for(n=i;0!=n--;)if(!Object.prototype.hasOwnProperty.call(a,s[n]))return!1;for(n=i;0!=n--;){var o=s[n];if(!("_owner"===o&&t.$$typeof||e(t[o],a[o])))return!1}return!0}return t!=t&&a!=a}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(2);t.default=function(e,t,a){var n=i.useRef(void 0);n.current&&a(t,n.current)||(n.current=t),i.useEffect(e,n.current)}},function(e,t,a){switch(window.__kbnThemeTag__){case"v8dark":return a(380);case"v8light":return a(382)}},function(e,t,a){var i=a(103),n=a(381);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);i(n,{insert:"head",singleton:!1}),e.exports=n.locals||{}},function(e,t,a){(t=a(104)(!1)).push([e.i,'.kbnSolutionNav__flyout{background-color:#141519}.kbnSolutionNav{background:linear-gradient(160deg,#3437414d,#3437414d 32px,#f000 0),linear-gradient(175deg,#3437414d,#3437414d 16px,#f000 0);display:flex;flex-direction:column;height:100%;overflow-x:hidden;overflow-y:auto;scrollbar-color:#98a2b380 #0000;scrollbar-width:thin}.kbnSolutionNav::-webkit-scrollbar{height:16px;width:16px}.kbnSolutionNav::-webkit-scrollbar-thumb{background-clip:content-box;background-color:#98a2b380;border:6px solid #0000;border-radius:16px}.kbnSolutionNav::-webkit-scrollbar-corner,.kbnSolutionNav::-webkit-scrollbar-track{background-color:#0000}.kbnSolutionNav:focus{outline:none}.kbnSolutionNav[tabindex="0"]:focus:focus-visible{outline-style:auto}@media only screen and (min-width:768px) and (max-width:991px){.kbnSolutionNav{padding:24px;width:248px}}@media only screen and (min-width:992px) and (max-width:1199px){.kbnSolutionNav{padding:24px;width:248px}}@media only screen and (min-width:1200px){.kbnSolutionNav{padding:24px;width:248px}}.kbnSolutionNav .kbnSolutionNav__avatar{margin-right:16px}.kbnSolutionNav--hidden{opacity:0;pointer-events:none}@media screen and (prefers-reduced-motion:no-preference){.kbnSolutionNav--hidden{transition:opacity .15s cubic-bezier(.694,.0482,.335,1)}}',""]),e.exports=t},function(e,t,a){var i=a(103),n=a(383);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);i(n,{insert:"head",singleton:!1}),e.exports=n.locals||{}},function(e,t,a){(t=a(104)(!1)).push([e.i,'.kbnSolutionNav__flyout{background-color:#fafbfd}.kbnSolutionNav{background:linear-gradient(160deg,#d3dae64d,#d3dae64d 32px,#f000 0),linear-gradient(175deg,#d3dae64d,#d3dae64d 16px,#f000 0);display:flex;flex-direction:column;height:100%;overflow-x:hidden;overflow-y:auto;scrollbar-color:#69707d80 #0000;scrollbar-width:thin}.kbnSolutionNav::-webkit-scrollbar{height:16px;width:16px}.kbnSolutionNav::-webkit-scrollbar-thumb{background-clip:content-box;background-color:#69707d80;border:6px solid #0000;border-radius:16px}.kbnSolutionNav::-webkit-scrollbar-corner,.kbnSolutionNav::-webkit-scrollbar-track{background-color:#0000}.kbnSolutionNav:focus{outline:none}.kbnSolutionNav[tabindex="0"]:focus:focus-visible{outline-style:auto}@media only screen and (min-width:768px) and (max-width:991px){.kbnSolutionNav{padding:24px;width:248px}}@media only screen and (min-width:992px) and (max-width:1199px){.kbnSolutionNav{padding:24px;width:248px}}@media only screen and (min-width:1200px){.kbnSolutionNav{padding:24px;width:248px}}.kbnSolutionNav .kbnSolutionNav__avatar{margin-right:16px}.kbnSolutionNav--hidden{opacity:0;pointer-events:none}@media screen and (prefers-reduced-motion:no-preference){.kbnSolutionNav--hidden{transition:opacity .15s cubic-bezier(.694,.0482,.335,1)}}',""]),e.exports=t},function(e,t,a){switch(window.__kbnThemeTag__){case"v8dark":return a(385);case"v8light":return a(387)}},function(e,t,a){var i=a(103),n=a(386);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);i(n,{insert:"head",singleton:!1}),e.exports=n.locals||{}},function(e,t,a){var i=a(104),n=a(282),s=a(283);t=i(!1);var o=n(s);t.push([e.i,".kbnSolutionAvatar{box-shadow:0 .7px 1.4px rgba(0,0,0,.175),0 1.9px 4px rgba(0,0,0,.125),0 4.5px 10px rgba(0,0,0,.125)}.kbnSolutionAvatar--xxl{background:#1d1e24 url("+o+") no-repeat;background-size:cover,125%;border-radius:100px;box-shadow:0 .9px 4px -1px #0003,0 2.6px 8px -1px #00000026,0 5.7px 12px -1px rgba(0,0,0,.125),0 15px 15px -1px #0000001a;display:inline-block;height:100px;line-height:100px;text-align:center;width:100px}",""]),e.exports=t},function(e,t,a){var i=a(103),n=a(388);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);i(n,{insert:"head",singleton:!1}),e.exports=n.locals||{}},function(e,t,a){var i=a(104),n=a(282),s=a(283);t=i(!1);var o=n(s);t.push([e.i,".kbnSolutionAvatar{box-shadow:0 .7px 1.4px #00000012,0 1.9px 4px #0000000d,0 4.5px 10px #0000000d}.kbnSolutionAvatar--xxl{background:#fff url("+o+") no-repeat;background-size:cover,125%;border-radius:100px;box-shadow:0 .9px 4px -1px #00000014,0 2.6px 8px -1px #0000000f,0 5.7px 12px -1px #0000000d,0 15px 15px -1px #0000000a;display:inline-block;height:100px;line-height:100px;text-align:center;width:100px}",""]),e.exports=t},function(e,t,a){switch(window.__kbnThemeTag__){case"v8dark":return a(390);case"v8light":return a(392)}},function(e,t,a){var i=a(103),n=a(391);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);i(n,{insert:"head",singleton:!1}),e.exports=n.locals||{}},function(e,t,a){(t=a(104)(!1)).push([e.i,".kbnSolutionNavCollapseButton{left:232px;opacity:0;position:absolute;top:24px;z-index:2}@media screen and (prefers-reduced-motion:no-preference){.kbnSolutionNavCollapseButton{transition:opacity .15s,left .15s,background .15s}}.kbnSolutionNavCollapseButton:focus,.kbnSolutionNavCollapseButton:hover{transition-delay:0s!important}.kbnSolutionNavCollapseButton:focus,.kbnSolutionNavCollapseButton:hover,.kbnSolutionNav__sidebar:hover .kbnSolutionNavCollapseButton{left:224px;opacity:1}.kbnSolutionNav__sidebar:hover .kbnSolutionNavCollapseButton{transition-delay:.7s}.kbnSolutionNavCollapseButton:not(.kbnSolutionNavCollapseButton-isCollapsed){background-color:#1d1e24!important}.kbnSolutionNavCollapseButton-isCollapsed{align-items:flex-start;border-radius:0;bottom:0;height:100%;left:0!important;opacity:1!important;padding-top:32px;right:auto;top:0;transition-delay:0s!important;width:40px}",""]),e.exports=t},function(e,t,a){var i=a(103),n=a(393);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);i(n,{insert:"head",singleton:!1}),e.exports=n.locals||{}},function(e,t,a){(t=a(104)(!1)).push([e.i,".kbnSolutionNavCollapseButton{left:232px;opacity:0;position:absolute;top:24px;z-index:2}@media screen and (prefers-reduced-motion:no-preference){.kbnSolutionNavCollapseButton{transition:opacity .15s,left .15s,background .15s}}.kbnSolutionNavCollapseButton:focus,.kbnSolutionNavCollapseButton:hover{transition-delay:0s!important}.kbnSolutionNavCollapseButton:focus,.kbnSolutionNavCollapseButton:hover,.kbnSolutionNav__sidebar:hover .kbnSolutionNavCollapseButton{left:224px;opacity:1}.kbnSolutionNav__sidebar:hover .kbnSolutionNavCollapseButton{transition-delay:.7s}.kbnSolutionNavCollapseButton:not(.kbnSolutionNavCollapseButton-isCollapsed){background-color:#fff!important}.kbnSolutionNavCollapseButton-isCollapsed{align-items:flex-start;border-radius:0;bottom:0;height:100%;left:0!important;opacity:1!important;padding-top:32px;right:auto;top:0;transition-delay:0s!important;width:40px}",""]),e.exports=t},function(e,t,a){"use strict";e.exports=a(395)},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(396);a(79),a(284),a(285);var n=i.default({key:"css"}),s=n.flush,o=n.hydrate,r=n.cx,l=n.merge,c=n.getRegisteredStyles,d=n.injectGlobal,u=n.keyframes,p=n.css,m=n.sheet,b=n.cache;t.cache=b,t.css=p,t.cx=r,t.flush=s,t.getRegisteredStyles=c,t.hydrate=o,t.injectGlobal=d,t.keyframes=u,t.merge=l,t.sheet=m},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(79),n=a(284),s=a(285);function o(e){return e&&e.__esModule?e:{default:e}}var r=o(i);function l(e,t){if(void 0===e.inserted[t.name])return e.insert("",t,e.sheet,!0)}function c(e,t,a){var i=[],n=s.getRegisteredStyles(e,i,a);return i.length<2?a:n+t(i)}var d=function e(t){for(var a="",i=0;i=4;++i,n-=4)t=1540483477*(65535&(t=255&e.charCodeAt(i)|(255&e.charCodeAt(++i))<<8|(255&e.charCodeAt(++i))<<16|(255&e.charCodeAt(++i))<<24))+(59797*(t>>>16)<<16),a=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&a)+(59797*(a>>>16)<<16);switch(n){case 3:a^=(255&e.charCodeAt(i+2))<<16;case 2:a^=(255&e.charCodeAt(i+1))<<8;case 1:a=1540483477*(65535&(a^=255&e.charCodeAt(i)))+(59797*(a>>>16)<<16)}return(((a=1540483477*(65535&(a^=a>>>13))+(59797*(a>>>16)<<16))^a>>>15)>>>0).toString(36)}},function(e,t,a){"use strict";e.exports=a(401)},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1}},function(e,t,a){"use strict";e.exports=a(403)},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=Object.create(null);return function(a){return void 0===t[a]&&(t[a]=e(a)),t[a]}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i="undefined"!=typeof document,n=function(e,t,a){var n=e.key+"-"+t.name;(!1===a||!1===i&&void 0!==e.compat)&&void 0===e.registered[n]&&(e.registered[n]=t.styles)};t.getRegisteredStyles=function(e,t,a){var i="";return a.split(" ").forEach((function(a){void 0!==e[a]?t.push(e[a]+";"):i+=a+" "})),i},t.insertStyles=function(e,t,a){n(e,t,a);var s=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var o="",r=t;do{var l=e.insert(t===r?"."+s:"",r,e.sheet,!0);i||void 0===l||(o+=l),r=r.next}while(void 0!==r);if(!i&&0!==o.length)return o}},t.registerStyles=n},function(e,t,a){e.exports=a.p+"baad30acfe492601d08a0e839c9bb3f5.svg"},,,,,,,,,function(e,t,a){"use strict";var i=a(415),n=a(416);function s(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=x,t.resolve=function(e,t){return x(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?x(e,!1,!0).resolveObject(t):t},t.format=function(e){return n.isString(e)&&(e=x(e)),e instanceof s?e.format():s.prototype.format.call(e)},t.Url=s;var o=/^([a-z0-9.+-]+:)/i,r=/:[0-9]*$/,l=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),d=["'"].concat(c),u=["%","/","?",";","#"].concat(d),p=["/","?","#"],m=/^[+a-z0-9A-Z_-]{0,63}$/,b=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,f={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},h={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},j=a(417);function x(e,t,a){if(e&&n.isObject(e)&&e instanceof s)return e;var i=new s;return i.parse(e,t,a),i}s.prototype.parse=function(e,t,a){if(!n.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var s=e.indexOf("?"),r=-1!==s&&s127?D+="x":D+=I[A];if(!D.match(m)){var R=k.slice(0,_),N=k.slice(_+1),P=I.match(b);P&&(R.push(P[1]),N.unshift(P[2])),N.length&&(x="/"+N.join(".")+x),this.hostname=R.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),C||(this.hostname=i.toASCII(this.hostname));var z=this.port?":"+this.port:"",B=this.hostname||"";this.host=B+z,this.href+=this.host,C&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==x[0]&&(x="/"+x))}if(!f[O])for(_=0,F=d.length;_0)&&a.host.split("@"))&&(a.auth=C.shift(),a.host=a.hostname=C.shift())),a.search=e.search,a.query=e.query,n.isNull(a.pathname)&&n.isNull(a.search)||(a.path=(a.pathname?a.pathname:"")+(a.search?a.search:"")),a.href=a.format(),a;if(!E.length)return a.pathname=null,a.search?a.path="/"+a.search:a.path=null,a.href=a.format(),a;for(var M=E.slice(-1)[0],S=(a.host||e.host||E.length>1)&&("."===M||".."===M)||""===M,_=0,T=E.length;T>=0;T--)"."===(M=E[T])?E.splice(T,1):".."===M?(E.splice(T,1),_++):_&&(E.splice(T,1),_--);if(!y&&!O)for(;_--;_)E.unshift("..");!y||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),S&&"/"!==E.join("/").substr(-1)&&E.push("");var C,k=""===E[0]||E[0]&&"/"===E[0].charAt(0);return w&&(a.hostname=a.host=k?"":E.length?E.shift():"",(C=!!(a.host&&a.host.indexOf("@")>0)&&a.host.split("@"))&&(a.auth=C.shift(),a.host=a.hostname=C.shift())),(y=y||a.host&&E.length)&&!k&&E.unshift(""),E.length?a.pathname=E.join("/"):(a.pathname=null,a.path=null),n.isNull(a.pathname)&&n.isNull(a.search)||(a.path=(a.pathname?a.pathname:"")+(a.search?a.search:"")),a.auth=e.auth||a.auth,a.slashes=a.slashes||e.slashes,a.href=a.format(),a},s.prototype.parseHost=function(){var e=this.host,t=r.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,a){e.exports=a(56)(2947)},function(e,t,a){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,a){"use strict";t.decode=t.parse=a(418),t.encode=t.stringify=a(419)},function(e,t,a){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,a,s){t=t||"&",a=a||"=";var o={};if("string"!=typeof e||0===e.length)return o;var r=/\+/g;e=e.split(t);var l=1e3;s&&"number"==typeof s.maxKeys&&(l=s.maxKeys);var c=e.length;l>0&&c>l&&(c=l);for(var d=0;d=0?(u=f.substr(0,g),p=f.substr(g+1)):(u=f,p=""),m=decodeURIComponent(u),b=decodeURIComponent(p),i(o,m)?n(o[m])?o[m].push(b):o[m]=[o[m],b]:o[m]=b}return o};var n=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,a){"use strict";var i=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,a,r){return t=t||"&",a=a||"=",null===e&&(e=void 0),"object"==typeof e?s(o(e),(function(o){var r=encodeURIComponent(i(o))+a;return n(e[o])?s(e[o],(function(e){return r+encodeURIComponent(i(e))})).join(t):r+encodeURIComponent(i(e[o]))})).join(t):r?encodeURIComponent(i(r))+a+encodeURIComponent(i(e)):""};var n=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function s(e,t){if(e.map)return e.map(t);for(var a=[],i=0;ili{display:block;float:none;margin-bottom:4px;position:relative}.time-range-selector .tab-stack>li>a{border-radius:4px;display:block;padding:8px 16px;position:relative}.time-range-selector .tab-stack>li>a:hover{background-color:#25262e}.time-range-selector .tab-stack>li .body{display:none}.time-range-selector .tab-stack>li.active>a{background-color:#36a2ef;color:#1d1e24}.time-range-selector .tab-stack>li.active .body{display:block}.time-range-selector .tab-stack>li.has-body.active>a{border-radius:6px 6px 0 0}.time-range-selector .tab-stack>li.has-body.active .react-datepicker{border-radius:0 0 6px 6px;border-top:none}.time-range-selector .time-range-section:last-child{border-right:none}",""]),e.exports=t},function(e,t,a){var i=a(103),n=a(424);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);i(n,{insert:"head",singleton:!1}),e.exports=n.locals||{}},function(e,t,a){(t=a(104)(!1)).push([e.i,".time-range-selector .time-range-section-title{font-weight:700;margin-bottom:8px}.time-range-selector .time-range-section{border-right:1px solid #d3dae6;flex:50%;padding:0 8px}.time-range-selector .tab-stack{list-style:none;margin-bottom:0;padding-left:0}.time-range-selector .tab-stack>li{display:block;float:none;margin-bottom:4px;position:relative}.time-range-selector .tab-stack>li>a{border-radius:4px;display:block;padding:8px 16px;position:relative}.time-range-selector .tab-stack>li>a:hover{background-color:#f5f7fa}.time-range-selector .tab-stack>li .body{display:none}.time-range-selector .tab-stack>li.active>a{background-color:#07c;color:#fff}.time-range-selector .tab-stack>li.active .body{display:block}.time-range-selector .tab-stack>li.has-body.active>a{border-radius:6px 6px 0 0}.time-range-selector .tab-stack>li.has-body.active .react-datepicker{border-radius:0 0 6px 6px;border-top:none}.time-range-selector .time-range-section:last-child{border-right:none}",""]),e.exports=t},function(e,t,a){e.exports=a.p+"7a4082435b3e1246960afd2e97c6c091.png"},function(e,t,a){switch(window.__kbnThemeTag__){case"v8dark":return a(427);case"v8light":return a(429)}},function(e,t,a){var i=a(103),n=a(428);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);i(n,{insert:"head",singleton:!1}),e.exports=n.locals||{}},function(e,t,a){(t=a(104)(!1)).push([e.i,".mlPickFields__splitCard{border:1px solid #343741;padding-top:4px}",""]),e.exports=t},function(e,t,a){var i=a(103),n=a(430);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);i(n,{insert:"head",singleton:!1}),e.exports=n.locals||{}},function(e,t,a){(t=a(104)(!1)).push([e.i,".mlPickFields__splitCard{border:1px solid #d3dae6;padding-top:4px}",""]),e.exports=t},function(e,t,a){e.exports=a(56)(1157)},function(e,t,a){"use strict";var i=a(181),n=a(133).CalendarObject,s=a(133).schema,o=a(203).iCalendar,r=a(202).RRule,l=t.VEvent=function(e,t){e instanceof o||null==e||(t=e,e=null),n.call(this,e,"VEVENT"),void 0!==t&&(this.addProperty("DTSTAMP",new Date),this.addProperty("UID",t))};i.inherits(l,n),l.prototype.setSummary=function(e){this.addProperty("SUMMARY",e)},l.prototype.setLocation=function(e){this.addProperty("LOCATION",e)},l.prototype.setDescription=function(e){this.addProperty("DESCRIPTION",e)},l.prototype.setDate=function(e,t){this.addProperty("DTSTART",e),t instanceof Date?this.addProperty("DTEND",t):this.addProperty("DURATION",t)},l.prototype.rrule=function(){var e=this.getPropertyValue("RRULE");if(!e)return null;for(var t,a=[],i=0;t=this.getPropertyValue("EXDATE",i++);)a.push.apply(a,t);return new r(e,{DTSTART:this.getPropertyValue("DTSTART"),DTEND:this.getPropertyValue("DTEND"),EXDATE:a})},l.prototype.inTimeRange=function(e,t){var a=this.rrule();if(a){var i=a.next(e);return null!==i&&(!t||i<=t)}var n=this.getPropertyValue("DTSTART"),s=this.getPropertyValue("DTEND");if(!s){var o=this.getPropertyValue("DURATION");if(0===o)return(!e||e<=n)&&(!t||t>n);s=o?new Date(n.valueOf()+1e3*this.getPropertyValue("DURATION")):new Date(n.valueOf()+864e5)}return(!e||en)},l.prototype.reply=function(e,t,a){var i=this.clone(!0);a=a||{},!0===t||void 0===t?t="ACCEPTED":!1===t&&(t="DECLINED"),i.setProperty("ATTENDEE",e,{PARTSTAT:t,CN:a.CN||e}),i.setProperty("DTSTAMP",new Date),i.setProperty("LAST-MODIFIED",new Date);var n=new o;return n.addProperty("METHOD","REPLY"),this.calendar&&n.addComponents(this.calendar.getComponents("VTIMEZONE")),n.addComponent(i),n},s.VEVENT={factory:l,valid_properties:[],required_properties:["DTSTAMP","UID"],valid_children:[],required_children:[]}},function(e,t,a){var i=a(232),n=a(181),s=a(133).CalendarObject,o=a(133).schema,r=a(202).RRule,l=t.VTimezone=function(e,t){s.call(this,e,"VTIMEZONE"),this.addProperty("TZID",t)};n.inherits(l,s),l.prototype.getRRule=function(e){var t=this.getComponents(e)[0];return t&&t.getPropertyValue("RRULE")?new r(t.getPropertyValue("RRULE"),t.getPropertyValue("DTSTART"),t.getPropertyValue("DTEND")):null},l.prototype.getOffsetForDate=function(e){if(!this.getComponents("DAYLIGHT").length)return this.getComponents("STANDARD")[0].getPropertyValue("TZOFFSETTO");i.equal(1,this.components.STANDARD.length),i.equal(1,this.components.DAYLIGHT.length);var t=this.getRRule("STANDARD"),a=this.getRRule("DAYLIGHT");return null===t||null===a?this.getComponents("STANDARD")[0].getPropertyValue("TZOFFSETTO"):(t=t.next(e),a=a.next(e),this.getComponents(at?1:0},U=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments,a=1;a1&&void 0!==arguments[1]?arguments[1]:K;!(t=e.next()).done;)a=(a<<5)+a+t.value|0;return a},ee=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K;return(t<<5)+t+e|0},te=function(e,t){var a={value:0,done:!1},i=0,n=e.length;return Z({next:function(){return i=0&&(e[i]!==t||(e.splice(i,1),a));i--);},Oe=function(e){e.splice(0,e.length)},Ee=function(e,t,a){return a&&(t=L(a,t)),e[t]},we=function(e,t,a,i){a&&(t=L(a,t)),e[t]=i},Me="undefined"!=typeof Map?Map:function(){function e(){r(this,e),this._obj={}}return c(e,[{key:"set",value:function(e,t){return this._obj[e]=t,this}},{key:"delete",value:function(e){return this._obj[e]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(e){return void 0!==this._obj[e]}},{key:"get",value:function(e){return this._obj[e]}}]),e}(),Se=function(){function e(t){if(r(this,e),this._obj=Object.create(null),this.size=0,null!=t){var a;a=null!=t.instanceString&&t.instanceString()===this.instanceString()?t.toArray():t;for(var i=0;i0;){var w=x.pop(),M=g(w),S=w.id();if(p[S]=M,M!==1/0)for(var _=w.neighborhood().intersect(b),T=0;T<_.length;T++){var C=_[T],k=C.id(),F=E(w,C),I=M+F.dist;I0)for(a.unshift(t);u[n];){var s=u[n];a.unshift(s.edge),a.unshift(s.node),n=(i=s.node).id()}return r.spawn(a)}}}},De={kruskal:function(e){e=e||function(e){return 1};for(var t=this.byGroup(),a=t.nodes,i=t.edges,n=a.length,s=new Array(n),o=a,r=function(e){for(var t=0;t0;){if(d=(c=g.pop()).id(),h.delete(d),O++,d===p){for(var E=[],w=n,M=p,S=x[M];E.unshift(w),null!=S&&E.unshift(S),null!=(w=j[M]);)S=x[M=w.id()];return{found:!0,distance:m[d],path:this.spawn(E),steps:O}}f[d]=!0;for(var _=c._private.edges,T=0;T<_.length;T++){var C=_[T];if(this.hasElementWithId(C.id())&&(!r||C.data("source")===d)){var k=C.source(),F=C.target(),I=k.id()!==d?k:F,D=I.id();if(this.hasElementWithId(D)&&!f[D]){var A=m[d]+l(C);y=D,h.has(y)?A_&&(m[S]=_,h[S]=M,x[S]=y),!n){var T=M*c+w;!n&&m[T]>_&&(m[T]=_,h[T]=w,x[T]=y)}}}for(var C=0;C1&&void 0!==arguments[1]?arguments[1]:s,i=[],n=h(e);;){if(null==n)return t.spawn();var o=g(n),l=o.edge,c=o.pred;if(i.unshift(n[0]),n.same(a)&&i.length>0)break;null!=l&&i.unshift(l),n=c}return r.spawn(i)},hasNegativeWeightCycle:b,negativeWeightCycles:[]}}},Be=Math.sqrt(2),Ve=function(e,t,a){0===a.length&&me("Karger-Stein must be run on a connected (sub)graph");for(var i=a[e],n=i[1],s=i[2],o=t[n],r=t[s],l=a,c=l.length-1;c>=0;c--){var d=l[c],u=d[1],p=d[2];(t[u]===o&&t[p]===r||t[u]===r&&t[p]===o)&&l.splice(c,1)}for(var m=0;mi;){var n=Math.floor(Math.random()*t.length);t=Ve(n,e,t),a--}return t},Ue={kargerStein:function(){var e=this.byGroup(),t=e.nodes,a=e.edges;a.unmergeBy((function(e){return e.isLoop()}));var i=t.length,n=a.length,s=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),o=Math.floor(i/Be);if(!(i<2)){for(var r=[],l=0;l0?1:e<0?-1:0},Xe=function(e,t){return Math.sqrt(Qe(e,t))},Qe=function(e,t){var a=t.x-e.x,i=t.y-e.y;return a*a+i*i},Ke=function(e){for(var t=e.length,a=0,i=0;i=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(null!=e.w&&null!=e.h&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},it=function(e,t,a){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,a),e.y2=Math.max(e.y2,a),e.h=e.y2-e.y1},nt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},st=function(e){var t,a,i,n,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===s.length)t=a=i=n=s[0];else if(2===s.length)t=i=s[0],n=a=s[1];else if(4===s.length){var o=d(s,4);t=o[0],a=o[1],i=o[2],n=o[3]}return e.x1-=n,e.x2+=a,e.y1-=t,e.y2+=i,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},ot=function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},rt=function(e,t){e.x1+=t.x,e.x2+=t.x,e.y1+=t.y,e.y2+=t.y},lt=function(e,t){return!(e.x1>t.x2||t.x1>e.x2||e.x2t.y2||t.y1>e.y2)},ct=function(e,t,a){return e.x1<=t&&t<=e.x2&&e.y1<=a&&a<=e.y2},dt=function(e,t){return ct(e,t.x1,t.y1)&&ct(e,t.x2,t.y2)},ut=function(e,t,a,i,n,s,o){var r,l=Ct(n,s),c=n/2,d=s/2,u=i-d-o;if((r=Et(e,t,a,i,a-c+l-o,u,a+c-l+o,u,!1)).length>0)return r;var p=a+c+o;if((r=Et(e,t,a,i,p,i-d+l-o,p,i+d-l+o,!1)).length>0)return r;var m=i+d+o;if((r=Et(e,t,a,i,a-c+l-o,m,a+c-l+o,m,!1)).length>0)return r;var b,f=a-c-o;if((r=Et(e,t,a,i,f,i-d+l-o,f,i+d-l+o,!1)).length>0)return r;var g=a-c+l,h=i-d+l;if((b=yt(e,t,a,i,g,h,l+o)).length>0&&b[0]<=g&&b[1]<=h)return[b[0],b[1]];var j=a+c-l,x=i-d+l;if((b=yt(e,t,a,i,j,x,l+o)).length>0&&b[0]>=j&&b[1]<=x)return[b[0],b[1]];var v=a+c-l,y=i+d-l;if((b=yt(e,t,a,i,v,y,l+o)).length>0&&b[0]>=v&&b[1]>=y)return[b[0],b[1]];var O=a-c+l,E=i+d-l;return(b=yt(e,t,a,i,O,E,l+o)).length>0&&b[0]<=O&&b[1]>=E?[b[0],b[1]]:[]},pt=function(e,t,a,i,n,s,o){var r=o,l=Math.min(a,n),c=Math.max(a,n),d=Math.min(i,s),u=Math.max(i,s);return l-r<=e&&e<=c+r&&d-r<=t&&t<=u+r},mt=function(e,t,a,i,n,s,o,r,l){var c=Math.min(a,o,n)-l,d=Math.max(a,o,n)+l,u=Math.min(i,r,s)-l,p=Math.max(i,r,s)+l;return!(ed||tp)},bt=function(e,t,a,i,n,s,o,r){var l,c,d,u,p,m,b,f,g,h,j,x,v,y=[];c=9*a*n-3*a*a-3*a*o-6*n*n+3*n*o+9*i*s-3*i*i-3*i*r-6*s*s+3*s*r,d=3*a*a-6*a*n+a*o-a*e+2*n*n+2*n*e-o*e+3*i*i-6*i*s+i*r-i*t+2*s*s+2*s*t-r*t,u=1*a*n-a*a+a*e-n*e+i*s-i*i+i*t-s*t,0===(l=1*a*a-4*a*n+2*a*o+4*n*n-4*n*o+o*o+i*i-4*i*s+2*i*r+4*s*s-4*s*r+r*r)&&(l=1e-5),f=-27*(u/=l)+(c/=l)*(9*(d/=l)-c*c*2),m=(b=(3*d-c*c)/9)*b*b+(f/=54)*f,(p=y)[1]=0,x=c/3,m>0?(h=(h=f+Math.sqrt(m))<0?-Math.pow(-h,1/3):Math.pow(h,1/3),j=(j=f-Math.sqrt(m))<0?-Math.pow(-j,1/3):Math.pow(j,1/3),p[0]=-x+h+j,x+=(h+j)/2,p[4]=p[2]=-x,x=Math.sqrt(3)*(-j+h)/2,p[3]=x,p[5]=-x):(p[5]=p[3]=0,0===m?(v=f<0?-Math.pow(-f,1/3):Math.pow(f,1/3),p[0]=2*v-x,p[4]=p[2]=-(v+x)):(g=(b=-b)*b*b,g=Math.acos(f/Math.sqrt(g)),v=2*Math.sqrt(b),p[0]=-x+v*Math.cos(g/3),p[2]=-x+v*Math.cos((g+2*Math.PI)/3),p[4]=-x+v*Math.cos((g+4*Math.PI)/3)));for(var O=[],E=0;E<6;E+=2)Math.abs(y[E+1])<1e-7&&y[E]>=0&&y[E]<=1&&O.push(y[E]);O.push(1),O.push(0);for(var w,M,S,_=-1,T=0;T=0?S<_&&(_=S):_=S;return _},ft=function(e,t,a,i,n,s){var o=[e-a,t-i],r=[n-a,s-i],l=r[0]*r[0]+r[1]*r[1],c=o[0]*o[0]+o[1]*o[1],d=o[0]*r[0]+o[1]*r[1],u=d*d/l;return d<0?c:u>l?(e-n)*(e-n)+(t-s)*(t-s):c-u},gt=function(e,t,a){for(var i,n,s,o,r=0,l=0;l=e&&e>=s||i<=e&&e<=s))continue;(e-i)/(s-i)*(o-n)+n>t&&r++}return r%2!=0},ht=function(e,t,a,i,n,s,o,r,l){var c,d=new Array(a.length);null!=r[0]?(c=Math.atan(r[1]/r[0]),r[0]<0?c+=Math.PI/2:c=-c-Math.PI/2):c=r;for(var u,p=Math.cos(-c),m=Math.sin(-c),b=0;b0){var f=xt(d,-l);u=jt(f)}else u=d;return gt(e,t,u)},jt=function(e){for(var t,a,i,n,s,o,r,l,c=new Array(e.length/2),d=0;d=0&&b<=1&&g.push(b),f>=0&&f<=1&&g.push(f),0===g.length)return[];var h=g[0]*r[0]+e,j=g[0]*r[1]+t;return g.length>1?g[0]==g[1]?[h,j]:[h,j,g[1]*r[0]+e,g[1]*r[1]+t]:[h,j]},Ot=function(e,t,a){return t<=e&&e<=a||a<=e&&e<=t?e:e<=t&&t<=a||a<=t&&t<=e?t:a},Et=function(e,t,a,i,n,s,o,r,l){var c=e-n,d=a-e,u=o-n,p=t-s,m=i-t,b=r-s,f=u*p-b*c,g=d*p-m*c,h=b*d-u*m;if(0!==h){var j=f/h,x=g/h,v=-.001;return v<=j&&j<=1.001&&v<=x&&x<=1.001||l?[e+j*d,t+j*m]:[]}return 0===f||0===g?Ot(e,a,o)===o?[o,r]:Ot(e,a,n)===n?[n,s]:Ot(n,o,a)===a?[a,i]:[]:[]},wt=function(e,t,a,i,n,s,o,r){var l,c,d,u,p,m,b=[],f=new Array(a.length),g=!0;if(null==s&&(g=!1),g){for(var h=0;h0){var j=xt(f,-r);c=jt(j)}else c=f}else c=a;for(var x=0;xd&&(d=t)},p=function(e){return c[e]},m=0;m0?y.edgesTo(v)[0]:v.edgesTo(y)[0];var O=i(x);v=v.id(),m[v]>m[h]+O&&(m[v]=m[h]+O,b.nodes.indexOf(v)<0?b.push(v):b.updateItem(v),d[v]=0,c[v]=[]),m[v]==m[h]+O&&(d[v]=d[v]+d[h],c[v].push(h))}else for(var E=0;E0;)for(var _=a.pop(),T=0;T0&&o.push(a[r]);0!==o.length&&n.push(i.collection(o))}return n}(d,l,t,i);return x=function(e){for(var t=0;t5&&void 0!==arguments[5]?arguments[5]:Yt,o=i,r=0;r=2?ta(e,t,a,0,Kt,Zt):ta(e,t,a,0,Qt)},squaredEuclidean:function(e,t,a){return ta(e,t,a,0,Kt)},manhattan:function(e,t,a){return ta(e,t,a,0,Qt)},max:function(e,t,a){return ta(e,t,a,-1/0,ea)}};function ia(e,t,a,i,n,s){var o;return o=x(e)?e:aa[e]||aa.euclidean,0===t&&x(e)?o(n,s):o(t,a,i,n,s)}aa["squared-euclidean"]=aa.squaredEuclidean,aa.squaredeuclidean=aa.squaredEuclidean;var na=ve({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),sa=function(e){return na(e)},oa=function(e,t,a,i,n){var s="kMedoids"!==n?function(e){return a[e]}:function(e){return i[e](a)},o=a,r=t;return ia(e,i.length,s,(function(e){return i[e](t)}),o,r)},ra=function(e,t,a){for(var i=a.length,n=new Array(i),s=new Array(i),o=new Array(t),r=null,l=0;la)return!1;return!0},ua=function(e,t,a){for(var i=0;in&&(n=t[l][c],s=c);o[s].push(e[l])}for(var d=0;d=n.threshold||"dendrogram"===n.mode&&1===e.length)return!1;var m,b=t[o],f=t[i[o]];m="dendrogram"===n.mode?{left:b,right:f,key:b.key}:{value:b.value.concat(f.value),key:b.key},e[b.index]=m,e.splice(f.index,1),t[b.key]=m;for(var g=0;ga[f.key][h.key]&&(s=a[f.key][h.key])):"max"===n.linkage?(s=a[b.key][h.key],a[b.key][h.key]o&&(s=l,o=t[n*e+l])}s>0&&i.push(s)}for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],n=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];arguments.length>3&&void 0!==arguments[3]&&!arguments[3]?(a0&&e.splice(0,t)):e=e.slice(t,a);for(var s=0,o=e.length-1;o>=0;o--){var r=e[o];n?isFinite(r)||(e[o]=-1/0,s++):e.splice(o,1)}i&&e.sort((function(e,t){return e-t}));var l=e.length,c=Math.floor(l/2);return l%2!=0?e[c+1+s]:(e[c-1+s]+e[c+s])/2}(e):"mean"===t?function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,i=0,n=0,s=t;s1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,i=1/0,n=t;n1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,i=-1/0,n=t;n=_?(T=_,_=k,C=F):k>T&&(T=k);for(var I=0;I0?1:0;w[E%c.minIterations*t+P]=z,N+=z}if(N>0&&(E>=c.minIterations-1||E==c.maxIterations-1)){for(var B=0,V=0;V0&&i.push(n);return i}(t,s,o),G=function(e,t,a){for(var i=Ta(e,t,a),n=0;nl&&(r=c,l=d)}a[n]=s[r]}return Ta(e,t,a)}(t,i,U),q={},$=0;$0:void 0}},clearQueue:function(){return function(){var e=this,t=void 0!==e.length?e:[e];if(!(this._private.cy||this).styleEnabled())return this;for(var a=0;a0&&this.spawn(i).updateStyle().emit("class"),t},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return null!=t&&t._private.classes.has(e)},toggleClass:function(e,t){v(e)||(e=e.match(/\S+/g)||[]);for(var a=this,i=void 0===t,n=[],s=0,o=a.length;s0&&this.spawn(n).updateStyle().emit("class"),a},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var a=this;if(null==t)t=250;else if(0===t)return a;return a.addClass(e),setTimeout((function(){a.removeClass(e)}),t),a}};qa.className=qa.classNames=qa.classes;var $a={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:N,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};$a.variable="(?:[\\w-]|(?:\\\\"+$a.metaChar+"))+",$a.value=$a.string+"|"+$a.number,$a.className=$a.variable,$a.id=$a.variable,function(){var e,t,a;for(e=$a.comparatorOp.split("|"),a=0;a=0||"="!==t&&($a.comparatorOp+="|\\!"+t)}();var Wa=20,Ha=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort((function(e,t){return function(e,t){return-1*J(e,t)}(e.selector,t.selector)})),Ya=function(){for(var e,t={},a=0;a0&&c.edgeCount>0)return fe("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(c.edgeCount>1)return fe("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;1===c.edgeCount&&fe("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},toString:function(){if(null!=this.toStringCache)return this.toStringCache;for(var e=function(e){return null==e?"":e},t=function(t){return j(t)?'"'+t+'"':e(t)},a=function(e){return" "+e+" "},i=function(n,s){return n.checks.reduce((function(o,r,l){return o+(s===n&&0===l?"$":"")+function(n,s){var o=n.type,r=n.value;switch(o){case 0:var l=e(r);return l.substring(0,l.length-1);case 3:var c=n.field,d=n.operator;return"["+c+a(e(d))+t(r)+"]";case 5:var u=n.operator,p=n.field;return"["+e(u)+p+"]";case 4:return"["+n.field+"]";case 6:var m=n.operator;return"[["+n.field+a(e(m))+t(r)+"]]";case 7:return r;case 8:return"#"+r;case 9:return"."+r;case 17:case 15:return i(n.parent,s)+a(">")+i(n.child,s);case 18:case 16:return i(n.ancestor,s)+" "+i(n.descendant,s);case 19:var b=i(n.left,s),f=i(n.subject,s),g=i(n.right,s);return b+(b.length>0?" ":"")+f+g;case Wa:return""}}(r,s)}),"")},n="",s=0;s1&&s=0&&(t=t.replace("!",""),d=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),c=!0),(o||l||c)&&(n=o||r?""+e:"",s=""+a),c&&(e=n=n.toLowerCase(),a=s=s.toLowerCase()),t){case"*=":i=n.indexOf(s)>=0;break;case"$=":i=n.indexOf(s,n.length-s.length)>=0;break;case"^=":i=0===n.indexOf(s);break;case"=":i=e===a;break;case">":u=!0,i=e>a;break;case">=":u=!0,i=e>=a;break;case"<":u=!0,i=e0;){var c=n.shift();t(c),s.add(c.id()),o&&i(n,s,c)}return e}function fi(e,t,a){if(a.isParent())for(var i=a._private.children,n=0;n1&&void 0!==arguments[1])||arguments[1],fi)},mi.forEachUp=function(e){return bi(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],gi)},mi.forEachUpAndDown=function(e){return bi(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],hi)},mi.ancestors=mi.parents,(di=ui={data:Ua.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Ua.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Ua.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Ua.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Ua.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Ua.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=di.data,di.removeAttr=di.removeData;var ji,xi,vi=ui,yi={};function Oi(e){return function(t){var a=this;if(void 0===t&&(t=!0),0!==a.length&&a.isNode()&&!a.removed()){for(var i=0,n=a[0],s=n._private.edges,o=0;ot})),minIndegree:Ei("indegree",(function(e,t){return et})),minOutdegree:Ei("outdegree",(function(e,t){return et}))}),U(yi,{totalDegree:function(e){for(var t=0,a=this.nodes(),i=0;i0,d=c;c&&(l=l[0]);var u=d?l.position():{x:0,y:0};return n={x:r.x-u.x,y:r.y-u.y},void 0===e?n:n[e]}for(var p=0;p0,g=f;f&&(b=b[0]);var h=g?b.position():{x:0,y:0};void 0!==t?m.position(e,t+h[e]):void 0!==n&&m.position({x:n.x+h.x,y:n.y+h.y})}}else if(!s)return;return this}},ji.modelPosition=ji.point=ji.position,ji.modelPositions=ji.points=ji.positions,ji.renderedPoint=ji.renderedPosition,ji.relativePoint=ji.relativePosition;var Si,_i,Ti=xi;Si=_i={},_i.renderedBoundingBox=function(e){var t=this.boundingBox(e),a=this.cy(),i=a.zoom(),n=a.pan(),s=t.x1*i+n.x,o=t.x2*i+n.x,r=t.y1*i+n.y,l=t.y2*i+n.y;return{x1:s,x2:o,y1:r,y2:l,w:o-s,h:l-r}},_i.dirtyCompoundBoundsCache=function(){var e=this.cy();return e.styleEnabled()&&e.hasCompoundNodes()?(this.forEachUp((function(e){if(e.isParent()){var t=e._private;t.compoundBoundsClean=!1,t.bbCache=null,e.emitAndNotify("bounds")}})),this):this},_i.updateCompoundBounds=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes())return this;if(!e&&t.batching())return this;function a(e){if(e.isParent()){var t=e._private,a=e.children(),i="include"===e.pstyle("compound-sizing-wrt-labels").value,n={width:{val:e.pstyle("min-width").pfValue,left:e.pstyle("min-width-bias-left"),right:e.pstyle("min-width-bias-right")},height:{val:e.pstyle("min-height").pfValue,top:e.pstyle("min-height-bias-top"),bottom:e.pstyle("min-height-bias-bottom")}},s=a.boundingBox({includeLabels:i,includeOverlays:!1,useCache:!1}),o=t.position;0!==s.w&&0!==s.h||((s={w:e.pstyle("width").pfValue,h:e.pstyle("height").pfValue}).x1=o.x-s.w/2,s.x2=o.x+s.w/2,s.y1=o.y-s.h/2,s.y2=o.y+s.h/2);var r=n.width.left.value;"px"===n.width.left.units&&n.width.val>0&&(r=100*r/n.width.val);var l=n.width.right.value;"px"===n.width.right.units&&n.width.val>0&&(l=100*l/n.width.val);var c=n.height.top.value;"px"===n.height.top.units&&n.height.val>0&&(c=100*c/n.height.val);var d=n.height.bottom.value;"px"===n.height.bottom.units&&n.height.val>0&&(d=100*d/n.height.val);var u=h(n.width.val-s.w,r,l),p=u.biasDiff,m=u.biasComplementDiff,b=h(n.height.val-s.h,c,d),f=b.biasDiff,g=b.biasComplementDiff;t.autoPadding=function(e,t,a,i){if("%"!==a.units)return"px"===a.units?a.pfValue:0;switch(i){case"width":return e>0?a.pfValue*e:0;case"height":return t>0?a.pfValue*t:0;case"average":return e>0&&t>0?a.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?a.pfValue*t:a.pfValue*e:0;case"max":return e>0&&t>0?e>t?a.pfValue*e:a.pfValue*t:0;default:return 0}}(s.w,s.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value),t.autoWidth=Math.max(s.w,n.width.val),o.x=(-p+s.x1+s.x2+m)/2,t.autoHeight=Math.max(s.h,n.height.val),o.y=(-f+s.y1+s.y2+g)/2}function h(e,t,a){var i=0,n=0,s=t+a;return e>0&&s>0&&(i=t/s*e,n=a/s*e),{biasDiff:i,biasComplementDiff:n}}}for(var i=0;ie.x2?i:e.x2,e.y1=ae.y2?n:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},Fi=function(e,t){return null==t?e:ki(e,t.x1,t.y1,t.x2,t.y2)},Ii=function(e,t,a){return Ee(e,t,a)},Di=function(e,t,a){if(!t.cy().headless()){var i,n,s=t._private,o=s.rstyle,r=o.arrowWidth/2;if("none"!==t.pstyle(a+"-arrow-shape").value){"source"===a?(i=o.srcX,n=o.srcY):"target"===a?(i=o.tgtX,n=o.tgtY):(i=o.midX,n=o.midY);var l=s.arrowBounds=s.arrowBounds||{},c=l[a]=l[a]||{};c.x1=i-r,c.y1=n-r,c.x2=i+r,c.y2=n+r,c.w=c.x2-c.x1,c.h=c.y2-c.y1,nt(c,1),ki(e,c.x1,c.y1,c.x2,c.y2)}}},Ai=function(e,t,a){if(!t.cy().headless()){var i;i=a?a+"-":"";var n=t._private,s=n.rstyle;if(t.pstyle(i+"label").strValue){var o,r,l,c,d=t.pstyle("text-halign"),u=t.pstyle("text-valign"),p=Ii(s,"labelWidth",a),m=Ii(s,"labelHeight",a),b=Ii(s,"labelX",a),f=Ii(s,"labelY",a),g=t.pstyle(i+"text-margin-x").pfValue,h=t.pstyle(i+"text-margin-y").pfValue,j=t.isEdge(),x=t.pstyle(i+"text-rotation"),v=t.pstyle("text-outline-width").pfValue,y=t.pstyle("text-border-width").pfValue/2,O=t.pstyle("text-background-padding").pfValue,E=m,w=p,M=w/2,S=E/2;if(j)o=b-M,r=b+M,l=f-S,c=f+S;else{switch(d.value){case"left":o=b-w,r=b;break;case"center":o=b-M,r=b+M;break;case"right":o=b,r=b+w}switch(u.value){case"top":l=f-E,c=f;break;case"center":l=f-S,c=f+S;break;case"bottom":l=f,c=f+E}}o+=g-Math.max(v,y)-O,r+=g+Math.max(v,y)+O,l+=h-Math.max(v,y)-O,c+=h+Math.max(v,y)+O;var _=a||"main",T=n.labelBounds,C=T[_]=T[_]||{};C.x1=o,C.y1=l,C.x2=r,C.y2=c,C.w=r-o,C.h=c-l,nt(C,1);var k=j&&"autorotate"===x.strValue,F=null!=x.pfValue&&0!==x.pfValue;if(k||F){var I=k?Ii(n.rstyle,"labelAngle",a):x.pfValue,D=Math.cos(I),A=Math.sin(I),L=(o+r)/2,R=(l+c)/2;if(!j){switch(d.value){case"left":L=r;break;case"right":L=o}switch(u.value){case"top":R=c;break;case"bottom":R=l}}var N=function(e,t){return{x:(e-=L)*D-(t-=R)*A+L,y:e*A+t*D+R}},P=N(o,l),z=N(o,c),B=N(r,l),V=N(r,c);o=Math.min(P.x,z.x,B.x,V.x),r=Math.max(P.x,z.x,B.x,V.x),l=Math.min(P.y,z.y,B.y,V.y),c=Math.max(P.y,z.y,B.y,V.y)}ki(e,o,l,r,c),ki(n.labelBounds.all,o,l,r,c)}return e}},Li=function(e){var t=0,a=function(e){return(e?1:0)<(i=M[1].x)){var S=a;a=i,i=S}if(n>(s=M[1].y)){var _=n;n=s,s=_}ki(p,a-y,n-y,i+y,s+y)}else{for(var T=g.bezierPts||g.linePts||[],C=0;C(i=I.x)){var D=a;a=i,i=D}if((n=F.y)>(s=I.y)){var A=n;n=s,s=A}ki(p,a-=y,n-=y,i+=y,s+=y)}}if(d&&t.includeEdges&&f&&(Di(p,e,"mid-source"),Di(p,e,"mid-target"),Di(p,e,"source"),Di(p,e,"target")),d&&"yes"===e.pstyle("ghost").value){var L=e.pstyle("ghost-offset-x").pfValue,R=e.pstyle("ghost-offset-y").pfValue;ki(p,p.x1+L,p.y1+R,p.x2+L,p.y2+R)}var N=m.bodyBounds=m.bodyBounds||{};ot(N,p),st(N,h),nt(N,1),d&&(a=p.x1,i=p.x2,n=p.y1,s=p.y2,ki(p,a-v,n-v,i+v,s+v));var P=m.overlayBounds=m.overlayBounds||{};ot(P,p),st(P,h),nt(P,1);var z=m.labelBounds=m.labelBounds||{};null!=z.all?((l=z.all).x1=1/0,l.y1=1/0,l.x2=-1/0,l.y2=-1/0,l.w=0,l.h=0):z.all=at(),d&&t.includeLabels&&(t.includeMainLabels&&Ai(p,e,null),f&&(t.includeSourceLabels&&Ai(p,e,"source"),t.includeTargetLabels&&Ai(p,e,"target")))}return p.x1=Ci(p.x1),p.y1=Ci(p.y1),p.x2=Ci(p.x2),p.y2=Ci(p.y2),p.w=Ci(p.x2-p.x1),p.h=Ci(p.y2-p.y1),p.w>0&&p.h>0&&x&&(st(p,h),nt(p,1)),p}(e,Pi),i.bbCache=a,i.bbCacheShift.x=i.bbCacheShift.y=0,i.bbCachePosKey=o):a=i.bbCache,!l&&(0!==i.bbCacheShift.x||0!==i.bbCacheShift.y)){var c=rt,d=i.bbCacheShift,u=function(e,t){null!=e&&c(e,t)};c(a,d);var p=i.bodyBounds,m=i.overlayBounds,b=i.labelBounds,f=i.arrowBounds;u(p,d),u(m,d),null!=f&&(u(f.source,d),u(f.target,d),u(f["mid-source"],d),u(f["mid-target"],d)),null!=b&&(u(b.main,d),u(b.all,d),u(b.source,d),u(b.target,d))}if(i.bbCacheShift.x=i.bbCacheShift.y=0,!s){var g=e.isNode();a=at(),(t.includeNodes&&g||t.includeEdges&&!g)&&(t.includeOverlays?Fi(a,i.overlayBounds):Fi(a,i.bodyBounds)),t.includeLabels&&(t.includeMainLabels&&(!n||t.includeSourceLabels&&t.includeTargetLabels)?Fi(a,i.labelBounds.all):(t.includeMainLabels&&Fi(a,i.labelBounds.main),t.includeSourceLabels&&Fi(a,i.labelBounds.source),t.includeTargetLabels&&Fi(a,i.labelBounds.target))),a.w=a.x2-a.x1,a.h=a.y2-a.y1}return a},Pi={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,useCache:!0},zi=Li(Pi),Bi=ve(Pi);_i.boundingBox=function(e){var t;if(1!==this.length||null==this[0]._private.bbCache||void 0!==e&&void 0!==e.useCache&&!0!==e.useCache){t=at();var a=Bi(e=e||Pi),i=this;if(i.cy().styleEnabled())for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:tn,t=arguments.length>1?arguments[1]:void 0,a=0;a=0;r--)o(r);return this},nn.removeAllListeners=function(){return this.removeListener("*")},nn.emit=nn.trigger=function(e,t,a){var i=this.listeners,n=i.length;return this.emitting++,v(t)||(t=[t]),function(e,t,a){if("event"!==h(a))if(y(a))t(e,on(e,a));else for(var i=v(a)?a:a.split(/\s+/),n=0;n1&&!i){var n=this.length-1,s=this[n],o=s._private.data.id;this[n]=void 0,this[e]=s,a.set(o,{ele:s,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,a=e._private.data.id,i=t.map.get(a);if(!i)return this;var n=i.index;return this.unmergeAt(n),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&j(e)){var a=e;e=t.mutableElements().filter(a)}for(var i=0;i=0;t--)e(this[t])&&this.unmergeAt(t);return this},map:function(e,t){for(var a=[],i=this,n=0;ni&&(i=r,a=o)}return{value:i,ele:a}},min:function(e,t){for(var a,i=1/0,n=this,s=0;s=0&&n1&&void 0!==arguments[1])||arguments[1],a=this[0],i=a.cy();if(i.styleEnabled()&&a){var n=a._private.style[e];return null!=n?n:t?i.style().getDefaultProperty(e):null}},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var a=t.pstyle(e);return void 0!==a.pfValue?a.pfValue:a.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled())return t?t.pstyle(e).units:void 0},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var a=this[0];return a?t.style().getRenderedStyle(a,e):void 0},style:function(e,t){var a=this.cy();if(!a.styleEnabled())return this;var i=a.style();if(y(e)){var n=e;i.applyBypass(this,n,!1),this.emitAndNotify("style")}else if(j(e)){if(void 0===t){var s=this[0];return s?i.getStylePropertyValue(s,e):void 0}i.applyBypass(this,e,t,!1),this.emitAndNotify("style")}else if(void 0===e){var o=this[0];return o?i.getRawStyle(o):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var a=t.style(),i=this;if(void 0===e)for(var n=0;n0&&t.push(d[0]),t.push(r[0])}return this.spawn(t,{unique:!0}).filter(e)}),"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),kn.neighbourhood=kn.neighborhood,kn.closedNeighbourhood=kn.closedNeighborhood,kn.openNeighbourhood=kn.openNeighborhood,U(kn,{source:pi((function(e){var t,a=this[0];return a&&(t=a._private.source||a.cy().collection()),t&&e?t.filter(e):t}),"source"),target:pi((function(e){var t,a=this[0];return a&&(t=a._private.target||a.cy().collection()),t&&e?t.filter(e):t}),"target"),sources:An({attr:"source"}),targets:An({attr:"target"})}),U(kn,{edgesWith:pi(Ln(),"edgesWith"),edgesTo:pi(Ln({thisIsSrc:!0}),"edgesTo")}),U(kn,{connectedEdges:pi((function(e){for(var t=[],a=0;a0);return s},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),kn.componentsOf=kn.components;var Nn={generate:function(e,t,a){for(var i=null!=a?a:he();e.hasElementWithId(i);)i=he();return i}},Pn=function(e,t,a){if(void 0!==e&&_(e)){var i=new Me,n=!1;if(t){if(t.length>0&&y(t[0])&&!M(t[0])){n=!0;for(var s=[],o=new _e,r=0,l=t.length;r0&&void 0!==arguments[0])||arguments[0],i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this,s=n.cy(),o=s._private,r=[],l=[],c=0,d=n.length;c0){for(var N=new Pn(s,e),P=0;P0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],a=this,i=[],n={},s=a._private.cy;function o(e){var a=n[e.id()];t&&e.removed()||a||(n[e.id()]=!0,e.isNode()?(i.push(e),function(e){for(var t=e._private.edges,a=0;a0&&(e?E.emitAndNotify("remove"):t&&E.emit("remove"));for(var w=0;w=s?function(t,i){for(var s=0;s0?n=l:i=l}while(Math.abs(s)>o&&++cu&&Math.abs(r.v)>u;);return s?function(e){return c[e*(c.length-1)|0]}:d}}(),Un=function(e,t,a,i){var n=Vn(e,t,a,i);return function(e,t,a){return e+(t-e)*n(a)}},Gn={linear:function(e,t,a){return e+(t-e)*a},ease:Un(.25,.1,.25,1),"ease-in":Un(.42,0,1,1),"ease-out":Un(0,0,.58,1),"ease-in-out":Un(.42,0,.58,1),"ease-in-sine":Un(.47,0,.745,.715),"ease-out-sine":Un(.39,.575,.565,1),"ease-in-out-sine":Un(.445,.05,.55,.95),"ease-in-quad":Un(.55,.085,.68,.53),"ease-out-quad":Un(.25,.46,.45,.94),"ease-in-out-quad":Un(.455,.03,.515,.955),"ease-in-cubic":Un(.55,.055,.675,.19),"ease-out-cubic":Un(.215,.61,.355,1),"ease-in-out-cubic":Un(.645,.045,.355,1),"ease-in-quart":Un(.895,.03,.685,.22),"ease-out-quart":Un(.165,.84,.44,1),"ease-in-out-quart":Un(.77,0,.175,1),"ease-in-quint":Un(.755,.05,.855,.06),"ease-out-quint":Un(.23,1,.32,1),"ease-in-out-quint":Un(.86,0,.07,1),"ease-in-expo":Un(.95,.05,.795,.035),"ease-out-expo":Un(.19,1,.22,1),"ease-in-out-expo":Un(1,0,0,1),"ease-in-circ":Un(.6,.04,.98,.335),"ease-out-circ":Un(.075,.82,.165,1),"ease-in-out-circ":Un(.785,.135,.15,.86),spring:function(e,t,a){if(0===a)return Gn.linear;var i=Jn(e,t,a);return function(e,t,a){return e+(t-e)*i(a)}},"cubic-bezier":Un};function qn(e,t,a,i,n){if(1===i)return a;var s=n(t,a,i);return null==e||((e.roundValue||e.color)&&(s=Math.round(s)),void 0!==e.min&&(s=Math.max(s,e.min)),void 0!==e.max&&(s=Math.min(s,e.max))),s}function $n(e,t){return null!=e.pfValue||null!=e.value?null==e.pfValue||null!=t&&"%"===t.type.units?e.value:e.pfValue:e}function Wn(e,t,a,i,n){var s=null!=n?n.type:null;a<0?a=0:a>1&&(a=1);var o=$n(e,n),r=$n(t,n);if(O(o)&&O(r))return qn(s,o,r,a,i);if(v(o)&&v(r)){for(var l=[],c=0;c0?("spring"===u&&p.push(o.duration),o.easingImpl=Gn[u].apply(null,p)):o.easingImpl=Gn[u]}var m,b=o.easingImpl;if(m=0===o.duration?1:(a-l)/o.duration,o.applying&&(m=o.progress),m<0?m=0:m>1&&(m=1),null==o.delay){var f=o.startPosition,g=o.position;if(g&&n&&!e.locked()){var h={};Yn(f.x,g.x)&&(h.x=Wn(f.x,g.x,m,b)),Yn(f.y,g.y)&&(h.y=Wn(f.y,g.y,m,b)),e.position(h)}var x=o.startPan,v=o.pan,y=s.pan,O=null!=v&&i;O&&(Yn(x.x,v.x)&&(y.x=Wn(x.x,v.x,m,b)),Yn(x.y,v.y)&&(y.y=Wn(x.y,v.y,m,b)),e.emit("pan"));var E=o.startZoom,w=o.zoom,M=null!=w&&i;M&&(Yn(E,w)&&(s.zoom=tt(s.minZoom,Wn(E,w,m,b),s.maxZoom)),e.emit("zoom")),(O||M)&&e.emit("viewport");var S=o.style;if(S&&S.length>0&&n){for(var _=0;_=0;t--)(0,e[t])();e.splice(0,e.length)},u=s.length-1;u>=0;u--){var p=s[u],m=p._private;m.stopped?(s.splice(u,1),m.hooked=!1,m.playing=!1,m.started=!1,d(m.frames)):(m.playing||m.applying)&&(m.playing&&m.applying&&(m.applying=!1),m.started||Xn(0,p,e),Hn(t,p,e,a),m.applying&&(m.applying=!1),d(m.frames),null!=m.step&&m.step(e),p.completed()&&(s.splice(u,1),m.hooked=!1,m.playing=!1,m.started=!1,d(m.completes)),r=!0)}return a||0!==s.length||0!==o.length||i.push(t),r}for(var s=!1,o=0;o0?t.notify("draw",a):t.notify("draw")),a.unmerge(i),t.emit("step")}var Kn={animate:Ua.animate(),animation:Ua.animation(),animated:Ua.animated(),clearQueue:Ua.clearQueue(),delay:Ua.delay(),delayAnimation:Ua.delayAnimation(),stop:Ua.stop(),addToAnimationPool:function(e){this.styleEnabled()&&this._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,e.styleEnabled()){var t=e.renderer();t&&t.beforeRender?t.beforeRender((function(t,a){Qn(a,e)}),t.beforeRenderPriorities.animations):function t(){e._private.animationsRunning&&X((function(a){Qn(a,e),t()}))}()}}},Zn={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,a){var i=t.qualifier;return null==i||e!==a.target&&M(a.target)&&i.matches(a.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,a){return null!=t.qualifier?a.target:e}},es=function(e){return j(e)?new ri(e):e},ts={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new an(Zn,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,a){return this.emitter().on(e,es(t),a),this},removeListener:function(e,t,a){return this.emitter().removeListener(e,es(t),a),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,a){return this.emitter().one(e,es(t),a),this},once:function(e,t,a){return this.emitter().one(e,es(t),a),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};Ua.eventAliasesOn(ts);var as={png:function(e){return e=e||{},this._private.renderer.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};as.jpeg=as.jpg;var is={layout:function(e){var t=this;if(null!=e)if(null!=e.name){var a,i=e.name,n=t.extension("layout",i);if(null!=n)return a=j(e.eles)?t.$(e.eles):null!=e.eles?e.eles:t.$(),new n(U({},e,{cy:t,eles:a}));me("No such layout `"+i+"` found. Did you forget to import it and `cytoscape.use()` it?")}else me("A `name` must be specified to make a layout");else me("Layout options must be specified to make a layout")}};is.createLayout=is.makeLayout=is.layout;var ns={notify:function(e,t){var a=this._private;if(this.batching()){a.batchNotifications=a.batchNotifications||{};var i=a.batchNotifications[e]=a.batchNotifications[e]||this.collection();null!=t&&i.merge(t)}else if(a.notificationsEnabled){var n=this.renderer();!this.destroyed()&&n&&n.notify(e,t)}},notifications:function(e){var t=this._private;return void 0===e?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(0===e.batchCount)return this;if(e.batchCount--,0===e.batchCount){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach((function(a){var i=e.batchNotifications[a];i.empty()?t.notify(a):t.notify(a,i)}))}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch((function(){for(var a=Object.keys(e),i=0;i0;)t.removeChild(t.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach((function(e){var t=e._private;t.rscratch={},t.rstyle={},t.animation.current=[],t.animation.queue=[]}))},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};os.invalidateDimensions=os.resize;var rs={collection:function(e,t){return j(e)?this.$(e):w(e)?e.collection():v(e)?new Pn(this,e,t):new Pn(this)},nodes:function(e){var t=this.$((function(e){return e.isNode()}));return e?t.filter(e):t},edges:function(e){var t=this.$((function(e){return e.isEdge()}));return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};rs.elements=rs.filter=rs.$;var ls={},cs="t";ls.apply=function(e){var t=this,a=t._private,i=a.cy.collection();a.newStyle&&(a.contextStyles={},a.propDiffs={},t.cleanElements(e,!0));for(var n=0;n0;if(p||u&&m){var b=void 0;p&&m||p?b=c.properties:m&&(b=c.mappedProperties);for(var f=0;f1&&(g=1),r.color){var y=n.valueMin[0],E=n.valueMax[0],w=n.valueMin[1],M=n.valueMax[1],S=n.valueMin[2],_=n.valueMax[2],T=null==n.valueMin[3]?1:n.valueMin[3],C=null==n.valueMax[3]?1:n.valueMax[3],k=[Math.round(y+(E-y)*g),Math.round(w+(M-w)*g),Math.round(S+(_-S)*g),Math.round(T+(C-T)*g)];a={bypass:n.bypass,name:n.name,value:k,strValue:"rgb("+k[0]+", "+k[1]+", "+k[2]+")"}}else{if(!r.number)return!1;var F=n.valueMin+(n.valueMax-n.valueMin)*g;a=this.parse(n.name,F,n.bypass,p)}if(!a)return f(),!1;a.mapping=n,n=a;break;case o.data:for(var I=n.field.split("."),D=u.data,A=0;A0&&s>0){for(var r={},l=!1,c=0;c0?e.delayAnimation(o).play().promise().then(t):t()})).then((function(){return e.animation({style:r,duration:s,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()})).then((function(){a.removeBypasses(e,n),e.emitAndNotify("style"),i.transitioning=!1}))}else i.transitioning&&(this.removeBypasses(e,n),e.emitAndNotify("style"),i.transitioning=!1)},ls.checkTrigger=function(e,t,a,i,n,s){var o=this.properties[t],r=n(o);null!=r&&r(a,i)&&s(o)},ls.checkZOrderTrigger=function(e,t,a,i){var n=this;this.checkTrigger(e,t,a,i,(function(e){return e.triggersZOrder}),(function(){n._private.cy.notify("zorder",e)}))},ls.checkBoundsTrigger=function(e,t,a,i){this.checkTrigger(e,t,a,i,(function(e){return e.triggersBounds}),(function(n){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache(),"bezier"!==e.pstyle("curve-style").value&&("curve-style"!==t||"bezier"!==a&&"bezier"!==i)||!n.triggersBoundsOfParallelBeziers||e.parallelEdges().forEach((function(e){e.isBundledBezier()&&e.dirtyBoundingBoxCache()}))}))},ls.checkTriggers=function(e,t,a,i){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,a,i),this.checkBoundsTrigger(e,t,a,i)};var ds={applyBypass:function(e,t,a,i){var n=[];if("*"===t||"**"===t){if(void 0!==a)for(var s=0;st.length?s.substr(t.length):""}function r(){a=a.length>i.length?a.substr(i.length):""}for(s=s.replace(/[/][*](\s|.)+?[*][/]/g,"");!s.match(/^\s*$/);){var l=s.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!l){fe("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+s);break}t=l[0];var c=l[1];if("core"!==c&&new ri(c).invalid)fe("Skipping parsing of block: Invalid selector found in string stylesheet: "+c),o();else{var d=l[2],u=!1;a=d;for(var p=[];!a.match(/^\s*$/);){var m=a.match(/^\s*(.+?)\s*:\s*(.+?)\s*;/);if(!m){fe("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+d),u=!0;break}i=m[0];var b=m[1],f=m[2];this.properties[b]?n.parse(b,f)?(p.push({name:b,val:f}),r()):(fe("Skipping property: Invalid property definition in: "+i),r()):(fe("Skipping property: Invalid property name in: "+i),r())}if(u){o();break}n.selector(c);for(var g=0;g=7&&"d"===t[0]&&(c=new RegExp(r.data.regex).exec(t))){if(a)return!1;var p=r.data;return{name:e,value:c,strValue:""+t,mapped:p,field:c[1],bypass:a}}if(t.length>=10&&"m"===t[0]&&(d=new RegExp(r.mapData.regex).exec(t))){if(a)return!1;if(u.multiple)return!1;var m=r.mapData;if(!u.color&&!u.number)return!1;var b=this.parse(e,d[4]);if(!b||b.mapped)return!1;var f=this.parse(e,d[5]);if(!f||f.mapped)return!1;if(b.pfValue===f.pfValue||b.strValue===f.strValue)return fe("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+b.strValue+"`"),this.parse(e,b.strValue);if(u.color){var g=b.value,h=f.value;if(!(g[0]!==h[0]||g[1]!==h[1]||g[2]!==h[2]||g[3]!==h[3]&&(null!=g[3]&&1!==g[3]||null!=h[3]&&1!==h[3])))return!1}return{name:e,value:d,strValue:""+t,mapped:m,field:d[1],fieldMin:parseFloat(d[2]),fieldMax:parseFloat(d[3]),valueMin:b.value,valueMax:f.value,bypass:a}}}if(u.multiple&&"multiple"!==i){var y;if(y=l?t.split(/\s+/):v(t)?t:[t],u.evenMultiple&&y.length%2!=0)return null;for(var E=[],w=[],M=[],S="",_=!1,T=0;T0?" ":"")+C.strValue}return u.validate&&!u.validate(E,w)?null:u.singleEnum&&_?1===E.length&&j(E[0])?{name:e,value:E[0],strValue:E[0],bypass:a}:null:{name:e,value:E,pfValue:M,strValue:S,bypass:a,units:w}}var k,F,I,A=function(){for(var i=0;iu.max||u.strictMax&&t===u.max))return null;var J={name:e,value:t,strValue:""+t+(L||""),units:L,bypass:a};return u.unitless||"px"!==L&&"em"!==L?J.pfValue=t:J.pfValue="px"!==L&&L?this.getEmSizeInPixels()*t:t,"ms"!==L&&"s"!==L||(J.pfValue="ms"===L?t:1e3*t),"deg"!==L&&"rad"!==L||(J.pfValue="rad"===L?t:(k=t,Math.PI*k/180)),"%"===L&&(J.pfValue=t/100),J}if(u.propList){var U=[],q=""+t;if("none"===q);else{for(var $=q.split(/\s*,\s*|\s+/),W=0;W<$.length;W++){var H=$[W].trim();n.properties[H]?U.push(H):fe("`"+H+"` is not a valid property name")}if(0===U.length)return null}return{name:e,value:U,strValue:0===U.length?"none":U.join(" "),bypass:a}}if(u.color){var Y=(v(I=t)?I:null)||function(e){return G[e.toLowerCase()]}(I)||function(e){if((4===e.length||7===e.length)&&"#"===e[0]){var t,a,i,n=16;return 4===e.length?(t=parseInt(e[1]+e[1],n),a=parseInt(e[2]+e[2],n),i=parseInt(e[3]+e[3],n)):(t=parseInt(e[1]+e[2],n),a=parseInt(e[3]+e[4],n),i=parseInt(e[5]+e[6],n)),[t,a,i]}}(I)||function(e){var t,a=new RegExp("^"+P+"$").exec(e);if(a){t=[];for(var i=[],n=1;n<=3;n++){var s=a[n];if("%"===s[s.length-1]&&(i[n]=!0),s=parseFloat(s),i[n]&&(s=s/100*255),s<0||s>255)return;t.push(Math.floor(s))}var o=i[1]||i[2]||i[3],r=i[1]&&i[2]&&i[3];if(o&&!r)return;var l=a[4];if(void 0!==l){if((l=parseFloat(l))<0||l>1)return;t.push(l)}}return t}(I)||function(e){var t,a,i,n,s,o,r,l;function c(e,t,a){return a<0&&(a+=1),a>1&&(a-=1),a<1/6?e+6*(t-e)*a:a<.5?t:a<2/3?e+(t-e)*(2/3-a)*6:e}var d=new RegExp("^"+B+"$").exec(e);if(d){if((a=parseInt(d[1]))<0?a=(360- -1*a%360)%360:a>360&&(a%=360),a/=360,(i=parseFloat(d[2]))<0||i>100)return;if(i/=100,(n=parseFloat(d[3]))<0||n>100)return;if(n/=100,void 0!==(s=d[4])&&((s=parseFloat(s))<0||s>1))return;if(0===i)o=r=l=Math.round(255*n);else{var u=n<.5?n*(1+i):n+i-n*i,p=2*n-u;o=Math.round(255*c(p,u,a+1/3)),r=Math.round(255*c(p,u,a)),l=Math.round(255*c(p,u,a-1/3))}t=[o,r,l,s]}return t}(I);return Y?{name:e,value:Y,pfValue:Y,strValue:"rgb("+Y[0]+","+Y[1]+","+Y[2]+")",bypass:a}:null}if(u.regex||u.regexes){if(u.enums){var X=A();if(X)return X}for(var Q=u.regexes?u.regexes:[u.regex],K=0;K0&&l>0&&!isNaN(a.w)&&!isNaN(a.h)&&a.w>0&&a.h>0)return{zoom:o=(o=(o=Math.min((r-2*t)/a.w,(l-2*t)/a.h))>this._private.maxZoom?this._private.maxZoom:o)=a.minZoom&&(a.maxZoom=t),this},minZoom:function(e){return void 0===e?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return void 0===e?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t,a,i=this._private,n=i.pan,s=i.zoom,o=!1;if(i.zoomingEnabled||(o=!0),O(e)?a=e:y(e)&&(a=e.level,null!=e.position?t=Ge(e.position,s,n):null!=e.renderedPosition&&(t=e.renderedPosition),null==t||i.panningEnabled||(o=!0)),a=(a=a>i.maxZoom?i.maxZoom:a)t.maxZoom||!t.zoomingEnabled?s=!0:(t.zoom=r,n.push("zoom"))}if(i&&(!s||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;O(l.x)&&(t.pan.x=l.x,o=!1),O(l.y)&&(t.pan.y=l.y,o=!1),o||n.push("pan")}return n.length>0&&(n.push("viewport"),this.emit(n.join(" ")),this.notify("viewport")),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(j(e)){var a=e;e=this.mutableElements().filter(a)}else w(e)||(e=this.mutableElements());if(0!==e.length){var i=e.boundingBox(),n=this.width(),s=this.height();return{x:(n-(t=void 0===t?this._private.zoom:t)*(i.x1+i.x2))/2,y:(s-t*(i.y1+i.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,a=this._private,i=a.container;return a.sizeCache=a.sizeCache||(i?(e=u.getComputedStyle(i),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:i.clientWidth-t("padding-left")-t("padding-right"),height:i.clientHeight-t("padding-top")-t("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,a=this.renderedExtent(),i={x1:(a.x1-e.x)/t,x2:(a.x2-e.x)/t,y1:(a.y1-e.y)/t,y2:(a.y2-e.y)/t};return i.w=i.x2-i.x1,i.h=i.y2-i.y1,i},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}}};vs.centre=vs.center,vs.autolockNodes=vs.autolock,vs.autoungrabifyNodes=vs.autoungrabify;var ys={data:Ua.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0}),removeData:Ua.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0}),scratch:Ua.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0}),removeScratch:Ua.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0})};ys.attr=ys.data,ys.removeAttr=ys.removeData;var Os=function(e){var t=this,a=(e=U({},e)).container;a&&!E(a)&&E(a[0])&&(a=a[0]);var i=a?a._cyreg:null;(i=i||{})&&i.cy&&(i.cy.destroy(),i={});var n=i.readies=i.readies||[];a&&(a._cyreg=i),i.cy=t;var s=void 0!==u&&void 0!==a&&!e.headless,o=e;o.layout=U({name:s?"grid":"null"},o.layout),o.renderer=U({name:s?"canvas":"null"},o.renderer);var r=function(e,t,a){return void 0!==t?t:void 0!==a?a:e},l=this._private={container:a,ready:!1,options:o,elements:new Pn(this),listeners:[],aniEles:new Pn(this),data:{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:r(!0,o.zoomingEnabled),userZoomingEnabled:r(!0,o.userZoomingEnabled),panningEnabled:r(!0,o.panningEnabled),userPanningEnabled:r(!0,o.userPanningEnabled),boxSelectionEnabled:r(!0,o.boxSelectionEnabled),autolock:r(!1,o.autolock,o.autolockNodes),autoungrabify:r(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:r(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?s:o.styleEnabled,zoom:O(o.zoom)?o.zoom:1,pan:{x:y(o.pan)&&O(o.pan.x)?o.pan.x:0,y:y(o.pan)&&O(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom}),l.styleEnabled&&t.setStyle([]);var c=U({},o,o.renderer);t.initRenderer(c),function(e,t){if(e.some(k))return Na.all(e).then(t);t(e)}([o.style,o.elements],(function(e){var a=e[0],s=e[1];l.styleEnabled&&t.style().append(a),function(e,a,i){t.notifications(!1);var n=t.mutableElements();n.length>0&&n.remove(),null!=e&&(y(e)||v(e))&&t.add(e),t.one("layoutready",(function(e){t.notifications(!0),t.emit(e),t.one("load",a),t.emitAndNotify("load")})).one("layoutstop",(function(){t.one("done",i),t.emit("done")}));var s=U({},t._private.options.layout);s.eles=t.elements(),t.layout(s).run()}(s,(function(){t.startAnimationLoop(),l.ready=!0,x(o.ready)&&t.on("ready",o.ready);for(var e=0;e0,c=at(a.boundingBox?a.boundingBox:{x1:0,y1:0,w:i.width(),h:i.height()});if(w(a.roots))e=a.roots;else if(v(a.roots)){for(var d=[],u=0;u0;){var I=C.shift(),D=T(I,k);if(D)I.outgoers().filter((function(e){return e.isNode()&&n.has(e)})).forEach(F);else if(null===D){fe("Detected double maximal shift for node `"+I.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}_();var A=0;if(a.avoidOverlap)for(var L=0;L0&&h[0].length<=3?l/2:0),u=2*Math.PI/h[i].length*n;return 0===i&&1===h[0].length&&(d=1),{x:H+d*Math.cos(u),y:Y+d*Math.sin(u)}}return{x:H+(n+1-(s+1)/2)*o,y:(i+1)*r}})),this};var Ts={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Cs(e){this.options=U({},Ts,e)}Cs.prototype.run=function(){var e=this.options,t=e,a=e.cy,i=t.eles,n=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,s=i.nodes().not(":parent");t.sort&&(s=s.sort(t.sort));for(var o,r=at(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:a.width(),h:a.height()}),l=r.x1+r.w/2,c=r.y1+r.h/2,d=(void 0===t.sweep?2*Math.PI-2*Math.PI/s.length:t.sweep)/Math.max(1,s.length-1),u=0,p=0;p1&&t.avoidOverlap){u*=1.75;var g=Math.cos(d)-Math.cos(0),h=Math.sin(d)-Math.sin(0),j=Math.sqrt(u*u/(g*g+h*h));o=Math.max(j,o)}return s.layoutPositions(this,t,(function(e,a){var i=t.startAngle+a*d*(n?1:-1),s=o*Math.cos(i),r=o*Math.sin(i);return{x:l+s,y:c+r}})),this};var ks,Fs={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Is(e){this.options=U({},Fs,e)}Is.prototype.run=function(){for(var e=this.options,t=e,a=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,i=e.cy,n=t.eles.nodes().not(":parent"),s=at(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:i.width(),h:i.height()}),o=s.x1+s.w/2,r=s.y1+s.h/2,l=[],c=0,d=0;d0&&Math.abs(h[0].value-x.value)>=f&&(h=[],g.push(h)),h.push(x)}var v=c+t.minNodeSpacing;if(!t.avoidOverlap){var y=g.length>0&&g[0].length>1,O=(Math.min(s.w,s.h)/2-v)/(g.length+y?1:0);v=Math.min(v,O)}for(var E=0,w=0;w1&&t.avoidOverlap){var T=Math.cos(_)-Math.cos(0),C=Math.sin(_)-Math.sin(0),k=Math.sqrt(v*v/(T*T+C*C));E=Math.max(k,E)}M.r=E,E+=v}if(t.equidistant){for(var F=0,I=0,D=0;D=e.numIter||(Vs(i,e),i.temperature=i.temperature*e.coolingFactor,i.temperature=e.animationThreshold&&s(),X(t)):(Zs(i,e),r())}();else{for(;c;)c=o(l),l++;Zs(i,e),r()}return this},As.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},As.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var Ls=function(e,t,a){for(var i=a.eles.edges(),n=a.eles.nodes(),s={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:n.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:i.size(),temperature:a.initialTemp,clientWidth:e.width(),clientHeight:e.width(),boundingBox:at(a.boundingBox?a.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()})},o=a.eles.components(),r={},l=0;l0)for(s.graphSet.push(y),l=0;li.count?0:i.graph},Ns=function e(t,a,i,n){var s=n.graphSet[i];if(-10)var r=(c=i.nodeOverlap*o)*n/(f=Math.sqrt(n*n+s*s)),l=c*s/f;else{var c,d=$s(e,n,s),u=$s(t,-1*n,-1*s),p=u.x-d.x,m=u.y-d.y,b=p*p+m*m,f=Math.sqrt(b);r=(c=(e.nodeRepulsion+t.nodeRepulsion)/b)*p/f,l=c*m/f}e.isLocked||(e.offsetX-=r,e.offsetY-=l),t.isLocked||(t.offsetX+=r,t.offsetY+=l)}},qs=function(e,t,a,i){if(a>0)var n=e.maxX-t.minX;else n=t.maxX-e.minX;if(i>0)var s=e.maxY-t.minY;else s=t.maxY-e.minY;return n>=0&&s>=0?Math.sqrt(n*n+s*s):0},$s=function(e,t,a){var i=e.positionX,n=e.positionY,s=e.height||1,o=e.width||1,r=a/t,l=s/o,c={};return 0===t&&0a?(c.x=i,c.y=n+s/2,c):0t&&-1*l<=r&&r<=l?(c.x=i-o/2,c.y=n-o*a/2/t,c):0=l)?(c.x=i+s*t/2/a,c.y=n+s/2,c):0>a&&(r<=-1*l||r>=l)?(c.x=i-s*t/2/a,c.y=n-s/2,c):c},Ws=function(e,t){for(var a=0;a1){var b=t.gravity*u/m,f=t.gravity*p/m;d.offsetX+=b,d.offsetY+=f}}}}},Ys=function(e,t){var a=[],i=0,n=-1;for(a.push.apply(a,e.graphSet[0]),n+=e.graphSet[0].length;i<=n;){var s=a[i++],o=e.idToIndex[s],r=e.layoutNodes[o],l=r.children;if(0a)var n={x:a*e/i,y:a*t/i};else n={x:e,y:t};return n},Ks=function e(t,a){var i=t.parentId;if(null!=i){var n=a.layoutNodes[a.idToIndex[i]],s=!1;return(null==n.maxX||t.maxX+n.padRight>n.maxX)&&(n.maxX=t.maxX+n.padRight,s=!0),(null==n.minX||t.minX-n.padLeftn.maxY)&&(n.maxY=t.maxY+n.padBottom,s=!0),(null==n.minY||t.minY-n.padTopb&&(u+=m+t.componentSpacing,d=0,p=0,m=0)}}},eo={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function to(e){this.options=U({},eo,e)}to.prototype.run=function(){var e=this.options,t=e,a=e.cy,i=t.eles.nodes().not(":parent");t.sort&&(i=i.sort(t.sort));var n=at(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:a.width(),h:a.height()});if(0===n.h||0===n.w)i.layoutPositions(this,t,(function(e){return{x:n.x1,y:n.y1}}));else{var s=i.size(),o=Math.sqrt(s*n.h/n.w),r=Math.round(o),l=Math.round(n.w/n.h*o),c=function(e){if(null==e)return Math.min(r,l);Math.min(r,l)==r?r=e:l=e},d=function(e){if(null==e)return Math.max(r,l);Math.max(r,l)==r?r=e:l=e},u=t.rows,p=null!=t.cols?t.cols:t.columns;if(null!=u&&null!=p)r=u,l=p;else if(null!=u&&null==p)r=u,l=Math.ceil(s/r);else if(null==u&&null!=p)l=p,r=Math.ceil(s/l);else if(l*r>s){var m=c(),b=d();(m-1)*b>=s?c(m-1):(b-1)*m>=s&&d(b-1)}else for(;l*r=s?d(g+1):c(f+1)}var h=n.w/l,j=n.h/r;if(t.condense&&(h=0,j=0),t.avoidOverlap)for(var x=0;x=l&&(k=0,C++)},I={},D=0;D(i=ft(e,t,v[y],v[y+1],v[y+2],v[y+3])))return g(a,i),!0}else if("bezier"===s.edgeType||"multibezier"===s.edgeType||"self"===s.edgeType||"compound"===s.edgeType)for(v=s.allpts,y=0;y+5(i=bt(e,t,v[y],v[y+1],v[y+2],v[y+3],v[y+4],v[y+5])))return g(a,i),!0;j=j||n.source,x=x||n.target;var O=o.getArrowWidth(l,d),E=[{name:"source",x:s.arrowStartX,y:s.arrowStartY,angle:s.srcArrowAngle},{name:"target",x:s.arrowEndX,y:s.arrowEndY,angle:s.tgtArrowAngle},{name:"mid-source",x:s.midX,y:s.midY,angle:s.midsrcArrowAngle},{name:"mid-target",x:s.midX,y:s.midY,angle:s.midtgtArrowAngle}];for(y=0;y0&&(h(j),h(x))}function x(e,t,a){return Ee(e,t,a)}function v(a,i){var n,s=a._private,o=b;n=i?i+"-":"";var r=s.labelBounds[i||"main"],l=a.pstyle(n+"label").value;if("yes"===a.pstyle("text-events").strValue&&l){var c=s.rstyle,d=x(c,"labelX",i),u=x(c,"labelY",i),p=x(s.rscratch,"labelAngle",i),m=r.x1-o,f=r.x2+o,h=r.y1-o,j=r.y2+o;if(p){var v=Math.cos(p),y=Math.sin(p),O=function(e,t){return{x:(e-=d)*v-(t-=u)*y+d,y:e*y+t*v+u}},E=O(m,h),w=O(m,j),M=O(f,h),S=O(f,j),_=[E.x,E.y,M.x,M.y,S.x,S.y,w.x,w.y];if(gt(e,t,_))return g(a),!0}else if(ct(r,e,t))return g(a),!0}}a&&(l=l.interactive);for(var y=l.length-1;y>=0;y--){var O=l[y];O.isNode()?h(O)||v(O):j(O)||v(O)||v(O,"source")||v(O,"target")}return c},getAllInBox:function(e,t,a,i){for(var n,s,o=this.getCachedZSortedEles().interactive,r=[],l=Math.min(e,a),c=Math.max(e,a),d=Math.min(t,i),u=Math.max(t,i),p=at({x1:e=l,y1:t=d,x2:a=c,y2:i=u}),m=0;m0?Math.max(e-t,0):Math.min(e+t,0)},S=M(E,y),_=M(w,O),T=!1;"auto"===f?f=Math.abs(S)>Math.abs(_)?n:i:f===l||f===r?(f=i,T=!0):f!==s&&f!==o||(f=n,T=!0);var C=f===i,k=C?_:S,F=C?w:E,I=Ye(F),D=!1;T&&v||!(g===r&&F<0||g===l&&F>0||g===s&&F>0||g===o&&F<0)||(k=(I*=-1)*Math.abs(k),D=!0);var A=v?j*k:j*I,L=function(e){return Math.abs(e)=Math.abs(k)},R=L(A),N=L(k-A);if(!R&&!N||D)if(C){var P=c.y1+A+(b?u/2*I:0),z=c.x1,B=c.x2;a.segpts=[z,P,B,P]}else{var V=c.x1+A+(b?d/2*I:0),J=c.y1,U=c.y2;a.segpts=[V,J,V,U]}else if(C){var G=Math.abs(F)<=u/2,q=Math.abs(E)<=p/2;if(G){var $=(c.x1+c.x2)/2,W=c.y1,H=c.y2;a.segpts=[$,W,$,H]}else if(q){var Y=(c.y1+c.y2)/2,X=c.x1,Q=c.x2;a.segpts=[X,Y,Q,Y]}else a.segpts=[c.x1,c.y2]}else{var K=Math.abs(F)<=d/2,Z=Math.abs(w)<=m/2;if(K){var ee=(c.y1+c.y2)/2,te=c.x1,ae=c.x2;a.segpts=[te,ee,ae,ee]}else if(Z){var ie=(c.x1+c.x2)/2,ne=c.y1,se=c.y2;a.segpts=[ie,ne,ie,se]}else a.segpts=[c.x2,c.y1]}},fo.tryToCorrectInvalidPoints=function(e,t){var a=e._private.rscratch;if("bezier"===a.edgeType){var i=t.srcPos,n=t.tgtPos,s=t.srcW,o=t.srcH,r=t.tgtW,l=t.tgtH,c=t.srcShape,d=t.tgtShape,u=!O(a.startX)||!O(a.startY),p=!O(a.arrowStartX)||!O(a.arrowStartY),m=!O(a.endX)||!O(a.endY),b=!O(a.arrowEndX)||!O(a.arrowEndY),f=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth*3,g=Xe({x:a.ctrlpts[0],y:a.ctrlpts[1]},{x:a.startX,y:a.startY}),h=gp.poolIndex()){var m=u;u=p,p=m}var b=r.srcPos=u.position(),f=r.tgtPos=p.position(),g=r.srcW=u.outerWidth(),h=r.srcH=u.outerHeight(),j=r.tgtW=p.outerWidth(),x=r.tgtH=p.outerHeight(),v=r.srcShape=a.nodeShapes[t.getNodeShape(u)],y=r.tgtShape=a.nodeShapes[t.getNodeShape(p)];r.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var E=0;E=c||j){d={cp:f,segment:h};break}}if(d)break}var x=d.cp,v=d.segment,y=(c-p)/v.length,O=v.t1-v.t0,E=r?v.t0+O*y:v.t1-O*y;E=tt(0,E,1),t=et(x.p0,x.p1,x.p2,E),n=function(e,t,a,i){var n=tt(0,i-.001,1),s=tt(0,i+.001,1),o=et(e,t,a,n),r=et(e,t,a,s);return Oo(o,r)}(x.p0,x.p1,x.p2,E);break;case"straight":case"segments":case"haystack":for(var w,M,S,_,T=0,C=i.allpts.length,k=0;k+3=c));k+=2);var F=(c-M)/w;F=tt(0,F,1),t=function(e,t,a,i){var n=t.x-e.x,s=t.y-e.y,o=Xe(e,t),r=n/o,l=s/o;return a=null==a?0:a,i=null!=i?i:a*o,{x:e.x+r*i,y:e.y+l*i}}(S,_,F),n=Oo(S,_)}o("labelX",a,t.x),o("labelY",a,t.y),o("labelAutoAngle",a,n)}};c("source"),c("target"),this.applyLabelDimensions(e)}},vo.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},vo.applyPrefixedLabelDimensions=function(e,t){var a=e._private,i=this.getLabelText(e,t),n=this.calculateLabelDimensions(e,i),s=e.pstyle("line-height").pfValue,o=e.pstyle("text-wrap").strValue,r=Ee(a.rscratch,"labelWrapCachedLines",t)||[],l="wrap"!==o?1:Math.max(r.length,1),c=n.height/l,d=c*s,u=n.width,p=n.height+(l-1)*(s-1)*c;we(a.rstyle,"labelWidth",t,u),we(a.rscratch,"labelWidth",t,u),we(a.rstyle,"labelHeight",t,p),we(a.rscratch,"labelHeight",t,p),we(a.rscratch,"labelLineHeight",t,d)},vo.getLabelText=function(e,t){var a=e._private,i=t?t+"-":"",n=e.pstyle(i+"label").strValue,s=e.pstyle("text-transform").value,o=function(e,i){return i?(we(a.rscratch,e,t,i),i):Ee(a.rscratch,e,t)};if(!n)return"";"none"==s||("uppercase"==s?n=n.toUpperCase():"lowercase"==s&&(n=n.toLowerCase()));var r=e.pstyle("text-wrap").value;if("wrap"===r){var l=o("labelKey");if(null!=l&&o("labelWrapKey")===l)return o("labelWrapCachedText");for(var c=n.split("\n"),d=e.pstyle("text-max-width").pfValue,u="anywhere"===e.pstyle("text-overflow-wrap").value,p=[],m=/[\s\u200b]+/,b=u?"":" ",f=0;fd){for(var x=g.split(m),v="",y=0;yw);_++)M+=n[_],_===n.length-1&&(S=!0);return S||(M+="…"),M}return n},vo.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,a=e.pstyle("text-halign").strValue;if("auto"!==t)return t;if(!e.isNode())return"center";switch(a){case"left":return"right";case"right":return"left";default:return"center"}},vo.calculateLabelDimensions=function(e,t){var a=ae(t,e._private.labelDimsKey),i=this.labelDimCache||(this.labelDimCache=[]),n=i[a];if(null!=n)return n;var s=e.pstyle("font-style").strValue,o=1*e.pstyle("font-size").pfValue+"px",r=e.pstyle("font-family").strValue,l=e.pstyle("font-weight").strValue,c=this.labelCalcDiv;c||(c=this.labelCalcDiv=document.createElement("div"),document.body.appendChild(c));var d=c.style;return d.fontFamily=r,d.fontStyle=s,d.fontSize=o,d.fontWeight=l,d.position="absolute",d.left="-9999px",d.top="-9999px",d.zIndex="-1",d.visibility="hidden",d.pointerEvents="none",d.padding="0",d.lineHeight="1","wrap"===e.pstyle("text-wrap").value?d.whiteSpace="pre":d.whiteSpace="normal",c.textContent=t,i[a]={width:Math.ceil(c.clientWidth/1),height:Math.ceil(c.clientHeight/1)}},vo.calculateLabelAngle=function(e,t){var a=e._private.rscratch,i=e.isEdge(),n=t?t+"-":"",s=e.pstyle(n+"text-rotation"),o=s.strValue;return"none"===o?0:i&&"autorotate"===o?a.labelAutoAngle:"autorotate"===o?0:s.pfValue},vo.calculateLabelAngles=function(e){var t=this,a=e.isEdge(),i=e._private.rscratch;i.labelAngle=t.calculateLabelAngle(e),a&&(i.sourceLabelAngle=t.calculateLabelAngle(e,"source"),i.targetLabelAngle=t.calculateLabelAngle(e,"target"))};var Eo={},wo=!1;Eo.getNodeShape=function(e){var t=e.pstyle("shape").value;if("cutrectangle"===t&&(e.width()<28||e.height()<28))return wo||(fe("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),wo=!0),"rectangle";if(e.isParent())return"rectangle"===t||"roundrectangle"===t||"cutrectangle"===t||"barrel"===t?t:"rectangle";if("polygon"===t){var a=e.pstyle("shape-polygon-points").value;return this.nodeShapes.makePolygon(a).name}return t};var Mo={updateCachedGrabbedEles:function(){var e=this.cachedZSortedEles;if(e){e.drag=[],e.nondrag=[];for(var t=[],a=0;a1&&void 0!==arguments[1])||arguments[1];if(t.merge(e),a)for(var i=0;i=e.desktopTapThreshold2}var S=i(t);g&&(e.hoverData.tapholdCancelled=!0),n=!0,a(f,["mousemove","vmousemove","tapdrag"],t,{x:d[0],y:d[1]});var _=function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:d[0],y:d[1]}}),b[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()};if(3===e.hoverData.which){if(g){var T={originalEvent:t,type:"cxtdrag",position:{x:d[0],y:d[1]}};j?j.emit(T):o.emit(T),e.hoverData.cxtDragged=!0,e.hoverData.cxtOver&&f===e.hoverData.cxtOver||(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:d[0],y:d[1]}}),e.hoverData.cxtOver=f,f&&f.emit({originalEvent:t,type:"cxtdragover",position:{x:d[0],y:d[1]}}))}}else if(e.hoverData.dragging){if(n=!0,o.panningEnabled()&&o.userPanningEnabled()){var C;if(e.hoverData.justStartedPan){var k=e.hoverData.mdownPos;C={x:(d[0]-k[0])*r,y:(d[1]-k[1])*r},e.hoverData.justStartedPan=!1}else C={x:x[0]*r,y:x[1]*r};o.panBy(C),e.hoverData.dragged=!0}d=e.projectIntoViewport(t.clientX,t.clientY)}else if(1!=b[4]||null!=j&&!j.pannable()){if(j&&j.pannable()&&j.active()&&j.unactivate(),j&&j.grabbed()||f==h||(h&&a(h,["mouseout","tapdragout"],t,{x:d[0],y:d[1]}),f&&a(f,["mouseover","tapdragover"],t,{x:d[0],y:d[1]}),e.hoverData.last=f),j)if(g){if(o.boxSelectionEnabled()&&S)j&&j.grabbed()&&(u(v),j.emit("freeon"),v.emit("free"),e.dragData.didDrag&&(j.emit("dragfreeon"),v.emit("dragfree"))),_();else if(j&&j.grabbed()&&e.nodeIsDraggable(j)){var F=!e.dragData.didDrag;F&&e.redrawHint("eles",!0),e.dragData.didDrag=!0;var D=o.collection();e.hoverData.draggingEles||c(v,{inDragLayer:!0});var A={x:0,y:0};if(O(x[0])&&O(x[1])&&(A.x+=x[0],A.y+=x[1],F)){var L=e.hoverData.dragDelta;L&&O(L[0])&&O(L[1])&&(A.x+=L[0],A.y+=L[1])}for(var R=0;R0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=c=s.collection()),l!=d||e.dragData.didDrag||e.hoverData.selecting||null!=l&&l._private.selectable&&(e.hoverData.dragging||("additive"===s.selectionType()||p?l.selected()?l.unselect(["tapunselect"]):l.select(["tapselect"]):p||(s.$(t).unmerge(l).unselect(["tapunselect"]),l.select(["tapselect"]))),e.redrawHint("eles",!0)),e.hoverData.selecting){var f=s.collection(e.getAllInBox(r[0],r[1],r[2],r[3]));e.redrawHint("select",!0),f.length>0&&e.redrawHint("eles",!0),s.emit({type:"boxend",originalEvent:n,position:{x:o[0],y:o[1]}});"additive"===s.selectionType()||p||s.$(t).unmerge(f).unselect(),f.emit("box").stdFilter((function(e){return e.selectable()&&!e.selected()})).select().emit("boxselect"),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint("select",!0),e.redrawHint("eles",!0),e.redraw()),!r[4]){e.redrawHint("drag",!0),e.redrawHint("eles",!0);var g=d&&d.grabbed();u(c),g&&(d.emit("freeon"),c.emit("free"),e.dragData.didDrag&&(d.emit("dragfreeon"),c.emit("dragfree")))}}r[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null}}),!1),e.registerBinding(e.container,"wheel",(function(t){if(!e.scrollingPage){var a,i=e.cy,n=e.projectIntoViewport(t.clientX,t.clientY),s=[n[0]*i.zoom()+i.pan().x,n[1]*i.zoom()+i.pan().y];e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.cxtStarted||0!==e.selection[4]?t.preventDefault():i.panningEnabled()&&i.userPanningEnabled()&&i.zoomingEnabled()&&i.userZoomingEnabled()&&(t.preventDefault(),e.data.wheelZooming=!0,clearTimeout(e.data.wheelTimeout),e.data.wheelTimeout=setTimeout((function(){e.data.wheelZooming=!1,e.redrawHint("eles",!0),e.redraw()}),150),a=null!=t.deltaY?t.deltaY/-250:null!=t.wheelDeltaY?t.wheelDeltaY/1e3:t.wheelDelta/1e3,a*=e.wheelSensitivity,1===t.deltaMode&&(a*=33),i.zoom({level:i.zoom()*Math.pow(10,a),renderedPosition:{x:s[0],y:s[1]}}))}}),!0),e.registerBinding(window,"scroll",(function(t){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout((function(){e.scrollingPage=!1}),250)}),!0),e.registerBinding(e.container,"mouseout",(function(t){var a=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseout",position:{x:a[0],y:a[1]}})}),!1),e.registerBinding(e.container,"mouseover",(function(t){var a=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseover",position:{x:a[0],y:a[1]}})}),!1);var D,A,L,R,N=function(e,t,a,i){return Math.sqrt((a-e)*(a-e)+(i-t)*(i-t))},P=function(e,t,a,i){return(a-e)*(a-e)+(i-t)*(i-t)};if(e.registerBinding(e.container,"touchstart",D=function(t){if(I(t)){m(),e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var i=e.cy,n=e.touchData.now,s=e.touchData.earlier;if(t.touches[0]){var o=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);n[0]=o[0],n[1]=o[1]}if(t.touches[1]&&(o=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY),n[2]=o[0],n[3]=o[1]),t.touches[2]&&(o=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY),n[4]=o[0],n[5]=o[1]),t.touches[1]){e.touchData.singleTouchMoved=!0,u(e.dragData.touchDragEles);var l=e.findContainerClientCoords();_=l[0],T=l[1],C=l[2],k=l[3],j=t.touches[0].clientX-_,x=t.touches[0].clientY-T,v=t.touches[1].clientX-_,y=t.touches[1].clientY-T,F=0<=j&&j<=C&&0<=v&&v<=C&&0<=x&&x<=k&&0<=y&&y<=k;var p=i.pan(),b=i.zoom();if(E=N(j,x,v,y),w=P(j,x,v,y),S=[((M=[(j+v)/2,(x+y)/2])[0]-p.x)/b,(M[1]-p.y)/b],w<4e4&&!t.touches[2]){var f=e.findNearestElement(n[0],n[1],!0,!0),g=e.findNearestElement(n[2],n[3],!0,!0);return f&&f.isNode()?(f.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:n[0],y:n[1]}}),e.touchData.start=f):g&&g.isNode()?(g.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:n[0],y:n[1]}}),e.touchData.start=g):i.emit({originalEvent:t,type:"cxttapstart",position:{x:n[0],y:n[1]}}),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!0,e.touchData.cxtDragged=!1,e.data.bgActivePosistion=void 0,void e.redraw()}}if(t.touches[2])i.boxSelectionEnabled()&&t.preventDefault();else if(t.touches[1]);else if(t.touches[0]){var h=e.findNearestElements(n[0],n[1],!0,!0),O=h[0];if(null!=O&&(O.activate(),e.touchData.start=O,e.touchData.starts=h,e.nodeIsGrabbable(O))){var D=e.dragData.touchDragEles=i.collection(),A=null;e.redrawHint("eles",!0),e.redrawHint("drag",!0),O.selected()?(A=i.$((function(t){return t.selected()&&e.nodeIsGrabbable(t)})),c(A,{addToList:D})):d(O,{addToList:D}),r(O);var L=function(e){return{originalEvent:t,type:e,position:{x:n[0],y:n[1]}}};O.emit(L("grabon")),A?A.forEach((function(e){e.emit(L("grab"))})):O.emit(L("grab"))}a(O,["touchstart","tapstart","vmousedown"],t,{x:n[0],y:n[1]}),null==O&&(e.data.bgActivePosistion={x:o[0],y:o[1]},e.redrawHint("select",!0),e.redraw()),e.touchData.singleTouchMoved=!1,e.touchData.singleTouchStartTime=+new Date,clearTimeout(e.touchData.tapholdTimeout),e.touchData.tapholdTimeout=setTimeout((function(){!1!==e.touchData.singleTouchMoved||e.pinching||e.touchData.selecting||a(e.touchData.start,["taphold"],t,{x:n[0],y:n[1]})}),e.tapholdDuration)}if(t.touches.length>=1){for(var R=e.touchData.startPosition=[],z=0;z=e.touchTapThreshold2}if(i&&e.touchData.cxt){t.preventDefault();var k=t.touches[0].clientX-_,D=t.touches[0].clientY-T,A=t.touches[1].clientX-_,L=t.touches[1].clientY-T,R=P(k,D,A,L);if(R/w>=2.25||R>=22500){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var z={originalEvent:t,type:"cxttapend",position:{x:r[0],y:r[1]}};e.touchData.start?(e.touchData.start.unactivate().emit(z),e.touchData.start=null):o.emit(z)}}if(i&&e.touchData.cxt){z={originalEvent:t,type:"cxtdrag",position:{x:r[0],y:r[1]}},e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(z):o.emit(z),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var B=e.findNearestElement(r[0],r[1],!0,!0);e.touchData.cxtOver&&B===e.touchData.cxtOver||(e.touchData.cxtOver&&e.touchData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:r[0],y:r[1]}}),e.touchData.cxtOver=B,B&&B.emit({originalEvent:t,type:"cxtdragover",position:{x:r[0],y:r[1]}}))}else if(i&&t.touches[2]&&o.boxSelectionEnabled())t.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:r[0],y:r[1]}}),e.touchData.selecting=!0,e.touchData.didSelect=!0,n[4]=1,n&&0!==n.length&&void 0!==n[0]?(n[2]=(r[0]+r[2]+r[4])/3,n[3]=(r[1]+r[3]+r[5])/3):(n[0]=(r[0]+r[2]+r[4])/3,n[1]=(r[1]+r[3]+r[5])/3,n[2]=(r[0]+r[2]+r[4])/3+1,n[3]=(r[1]+r[3]+r[5])/3+1),e.redrawHint("select",!0),e.redraw();else if(i&&t.touches[1]&&!e.touchData.didSelect&&o.zoomingEnabled()&&o.panningEnabled()&&o.userZoomingEnabled()&&o.userPanningEnabled()){if(t.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),ee=e.dragData.touchDragEles){e.redrawHint("drag",!0);for(var V=0;V0&&!e.hoverData.draggingEles&&!e.swipePanning&&null!=e.data.bgActivePosistion&&(e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.redraw())}},!1),e.registerBinding(window,"touchcancel",L=function(t){var a=e.touchData.start;e.touchData.capture=!1,a&&a.unactivate()}),e.registerBinding(window,"touchend",R=function(i){var n=e.touchData.start;if(e.touchData.capture){0===i.touches.length&&(e.touchData.capture=!1),i.preventDefault();var s=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var o,r=e.cy,l=r.zoom(),c=e.touchData.now,d=e.touchData.earlier;if(i.touches[0]){var p=e.projectIntoViewport(i.touches[0].clientX,i.touches[0].clientY);c[0]=p[0],c[1]=p[1]}if(i.touches[1]&&(p=e.projectIntoViewport(i.touches[1].clientX,i.touches[1].clientY),c[2]=p[0],c[3]=p[1]),i.touches[2]&&(p=e.projectIntoViewport(i.touches[2].clientX,i.touches[2].clientY),c[4]=p[0],c[5]=p[1]),n&&n.unactivate(),e.touchData.cxt){if(o={originalEvent:i,type:"cxttapend",position:{x:c[0],y:c[1]}},n?n.emit(o):r.emit(o),!e.touchData.cxtDragged){var m={originalEvent:i,type:"cxttap",position:{x:c[0],y:c[1]}};n?n.emit(m):r.emit(m)}return e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,void e.redraw()}if(!i.touches[2]&&r.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var b=r.collection(e.getAllInBox(s[0],s[1],s[2],s[3]));s[0]=void 0,s[1]=void 0,s[2]=void 0,s[3]=void 0,s[4]=0,e.redrawHint("select",!0),r.emit({type:"boxend",originalEvent:i,position:{x:c[0],y:c[1]}}),b.emit("box").stdFilter((function(e){return e.selectable()&&!e.selected()})).select().emit("boxselect"),b.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(null!=n&&n.unactivate(),i.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(i.touches[1]);else if(i.touches[0]);else if(!i.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var f=e.dragData.touchDragEles;if(null!=n){var g=n._private.grabbed;u(f),e.redrawHint("drag",!0),e.redrawHint("eles",!0),g&&(n.emit("freeon"),f.emit("free"),e.dragData.didDrag&&(n.emit("dragfreeon"),f.emit("dragfree"))),a(n,["touchend","tapend","vmouseup","tapdragout"],i,{x:c[0],y:c[1]}),n.unactivate(),e.touchData.start=null}else{var h=e.findNearestElement(c[0],c[1],!0,!0);a(h,["touchend","tapend","vmouseup","tapdragout"],i,{x:c[0],y:c[1]})}var j=e.touchData.startPosition[0]-c[0],x=j*j,v=e.touchData.startPosition[1]-c[1],y=(x+v*v)*l*l;e.touchData.singleTouchMoved||(n||r.$(":selected").unselect(["tapunselect"]),a(n,["tap","vclick"],i,{x:c[0],y:c[1]})),null!=n&&!e.dragData.didDrag&&n._private.selectable&&y0)return f[0]}return null},p=Object.keys(d),m=0;m0?l:ut(n,s,e,t,a,i,o)},checkPoint:function(e,t,a,i,n,s,o){var r=Ct(i,n),l=2*r;if(ht(e,t,this.points,s,o,i,n-l,[0,-1],a))return!0;if(ht(e,t,this.points,s,o,i-l,n,[0,-1],a))return!0;var c=i/2+2*a,d=n/2+2*a;return!!gt(e,t,[s-c,o-d,s-c,o,s+c,o,s+c,o-d])||!!vt(e,t,l,l,s+i/2-r,o+n/2-r,a)||!!vt(e,t,l,l,s-i/2+r,o+n/2-r,a)}}},registerNodeShapes:function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",St(3,0)),this.generatePolygon("rectangle",St(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle(),this.generatePolygon("diamond",[0,1,1,0,0,-1,-1,0]),this.generatePolygon("pentagon",St(5,0)),this.generatePolygon("hexagon",St(6,0)),this.generatePolygon("heptagon",St(7,0)),this.generatePolygon("octagon",St(8,0));var a=new Array(20),i=Tt(5,0),n=Tt(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var o=0;o=e.deqFastCost*f)break}else if(n){if(m>=e.deqCost*l||m>=e.deqAvgCost*r)break}else if(b>=e.deqNoDrawCost*Ao)break;var g=e.deq(t,u,d);if(!(g.length>0))break;for(var h=0;h0&&(e.onDeqd(t,c),!n&&e.shouldRedraw(t,c,u,d)&&i())}),s(t))}}},Ro=function(){function e(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:de;r(this,e),this.idsByKey=new Me,this.keyForId=new Me,this.cachesByLvl=new Me,this.lvls=[],this.getKey=t,this.doesEleInvalidateKey=a}return c(e,[{key:"getIdsFor",value:function(e){null==e&&me("Can not get id list for null key");var t=this.idsByKey,a=this.idsByKey.get(e);return a||(a=new _e,t.set(e,a)),a}},{key:"addIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).add(t)}},{key:"deleteIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).delete(t)}},{key:"getNumberOfIdsForKey",value:function(e){return null==e?0:this.getIdsFor(e).size}},{key:"updateKeyMappingFor",value:function(e){var t=e.id(),a=this.keyForId.get(t),i=this.getKey(e);this.deleteIdForKey(a,t),this.addIdForKey(i,t),this.keyForId.set(t,i)}},{key:"deleteKeyMappingFor",value:function(e){var t=e.id(),a=this.keyForId.get(t);this.deleteIdForKey(a,t),this.keyForId.delete(t)}},{key:"keyHasChangedFor",value:function(e){var t=e.id();return this.keyForId.get(t)!==this.getKey(e)}},{key:"isInvalid",value:function(e){return this.keyHasChangedFor(e)||this.doesEleInvalidateKey(e)}},{key:"getCachesAt",value:function(e){var t=this.cachesByLvl,a=this.lvls,i=t.get(e);return i||(i=new Me,t.set(e,i),a.push(e)),i}},{key:"getCache",value:function(e,t){return this.getCachesAt(t).get(e)}},{key:"get",value:function(e,t){var a=this.getKey(e),i=this.getCache(a,t);return null!=i&&this.updateKeyMappingFor(e),i}},{key:"getForCachedKey",value:function(e,t){var a=this.keyForId.get(e.id());return this.getCache(a,t)}},{key:"hasCache",value:function(e,t){return this.getCachesAt(t).has(e)}},{key:"has",value:function(e,t){var a=this.getKey(e);return this.hasCache(a,t)}},{key:"setCache",value:function(e,t,a){a.key=e,this.getCachesAt(t).set(e,a)}},{key:"set",value:function(e,t,a){var i=this.getKey(e);this.setCache(i,t,a),this.updateKeyMappingFor(e)}},{key:"deleteCache",value:function(e,t){this.getCachesAt(t).delete(e)}},{key:"delete",value:function(e,t){var a=this.getKey(e);this.deleteCache(a,t)}},{key:"invalidateKey",value:function(e){var t=this;this.lvls.forEach((function(a){return t.deleteCache(e,a)}))}},{key:"invalidate",value:function(e){var t=e.id(),a=this.keyForId.get(t);this.deleteKeyMappingFor(e);var i=this.doesEleInvalidateKey(e);return i&&this.invalidateKey(a),i||0===this.getNumberOfIdsForKey(a)}}]),e}(),No={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},Po=ve({getKey:null,doesEleInvalidateKey:de,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:ce,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),zo=function(e,t){var a=this;a.renderer=e,a.onDequeues=[];var i=Po(t);U(a,i),a.lookup=new Ro(i.getKey,i.doesEleInvalidateKey),a.setupDequeueing()},Bo=zo.prototype;Bo.reasons=No,Bo.getTextureQueue=function(e){var t=this;return t.eleImgCaches=t.eleImgCaches||{},t.eleImgCaches[e]=t.eleImgCaches[e]||[]},Bo.getRetiredTextureQueue=function(e){var t=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return t[e]=t[e]||[]},Bo.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new s((function(e,t){return t.reqs-e.reqs}))},Bo.getElementKeyToQueue=function(){return this.eleKeyToCacheQueue=this.eleKeyToCacheQueue||{}},Bo.getElement=function(e,t,a,i,n){var s=this,o=this.renderer,r=o.cy.zoom(),l=this.lookup;if(0===t.w||0===t.h||isNaN(t.w)||isNaN(t.h)||!e.visible())return null;if(!s.allowEdgeTxrCaching&&e.isEdge()||!s.allowParentTxrCaching&&e.isParent())return null;if(null==i&&(i=Math.ceil(He(r*a))),i<-4)i=-4;else if(r>=7.99||i>3)return null;var c=Math.pow(2,i),d=t.h*c,u=t.w*c,p=o.eleTextBiggerThanMin(e,c);if(!this.isVisible(e,p))return null;var m,b=l.get(e,i);if(b&&b.invalidated&&(b.invalidated=!1,b.texture.invalidatedWidth-=b.width),b)return b;if(m=d<=25?25:d<=50?50:50*Math.ceil(d/50),d>1024||u>1024)return null;var f=s.getTextureQueue(m),g=f[f.length-2],h=function(){return s.recycleTexture(m,u)||s.addTexture(m,u)};g||(g=f[f.length-1]),g||(g=h()),g.width-g.usedWidthi;_--)M=s.getElement(e,t,a,_,No.downscale);S()}else{var T;if(!v&&!y&&!O)for(var C=i-1;C>=-4;C--){var k=l.get(e,C);if(k){T=k;break}}if(x(T))return s.queueElement(e,i),T;g.context.translate(g.usedWidth,0),g.context.scale(c,c),this.drawElement(g.context,e,t,p,!1),g.context.scale(1/c,1/c),g.context.translate(-g.usedWidth,0)}return b={x:g.usedWidth,texture:g,level:i,scale:c,width:u,height:d,scaledLabelShown:p},g.usedWidth+=Math.ceil(u+8),g.eleCaches.push(b),l.set(e,i,b),s.checkTextureFullness(g),b},Bo.invalidateElements=function(e){for(var t=0;t=.2*e.width&&this.retireTexture(e)},Bo.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>.8&&e.fullnessChecks>=10?ye(t,e):e.fullnessChecks++},Bo.retireTexture=function(e){var t=e.height,a=this.getTextureQueue(t),i=this.lookup;ye(a,e),e.retired=!0;for(var n=e.eleCaches,s=0;s=t)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,Oe(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),ye(i,s),a.push(s),s}},Bo.queueElement=function(e,t){var a=this.getElementQueue(),i=this.getElementKeyToQueue(),n=this.getKey(e),s=i[n];if(s)s.level=Math.max(s.level,t),s.eles.merge(e),s.reqs++,a.updateItem(s);else{var o={eles:e.spawn().merge(e),level:t,reqs:1,key:n};a.push(o),i[n]=o}},Bo.dequeue=function(e){for(var t=this,a=t.getElementQueue(),i=t.getElementKeyToQueue(),n=[],s=t.lookup,o=0;o<1&&a.size()>0;o++){var r=a.pop(),l=r.key,c=r.eles[0],d=s.hasCache(c,r.level);if(i[l]=null,!d){n.push(r);var u=t.getBoundingBox(c);t.getElement(c,u,e,r.level,No.dequeue)}}return n},Bo.removeFromQueue=function(e){var t=this.getElementQueue(),a=this.getElementKeyToQueue(),i=this.getKey(e),n=a[i];null!=n&&(1===n.eles.length?(n.reqs=le,t.updateItem(n),t.pop(),a[i]=null):n.eles.unmerge(e))},Bo.onDequeue=function(e){this.onDequeues.push(e)},Bo.offDequeue=function(e){ye(this.onDequeues,e)},Bo.setupDequeueing=Lo({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t,a){return e.dequeue(t,a)},onDeqd:function(e,t){for(var a=0;a=3.99||a>2)return null;i.validateLayersElesOrdering(a,e);var o,r,l=i.layersByLevel,c=Math.pow(2,a),d=l[a]=l[a]||[];if(i.levelIsComplete(a,e))return d;!function(){var t=function(t){if(i.validateLayersElesOrdering(t,e),i.levelIsComplete(t,e))return r=l[t],!0},n=function(e){if(!r)for(var i=a+e;-4<=i&&i<=2&&!t(i);i+=e);};n(1),n(-1);for(var s=d.length-1;s>=0;s--){var o=d[s];o.invalid&&ye(d,o)}}();var u=function(t){var n=(t=t||{}).after;if(function(){if(!o){o=at();for(var t=0;t16e6)return null;var s=i.makeLayer(o,a);if(null!=n){var r=d.indexOf(n)+1;d.splice(r,0,s)}else(void 0===t.insert||t.insert)&&d.unshift(s);return s};if(i.skipping&&!s)return null;for(var p=null,m=e.length/1,b=!s,f=0;f=m||!dt(p.bb,g.boundingBox()))&&!(p=u({insert:!0,after:p})))return null;r||b?i.queueLayer(p,g):i.drawEleInLayer(p,g,a,t),p.eles.push(g),j[a]=p}}return r||(b?null:d)},Jo.getEleLevelForLayerLevel=function(e,t){return e},Jo.drawEleInLayer=function(e,t,a,i){var n=this.renderer,s=e.context,o=t.boundingBox();0!==o.w&&0!==o.h&&t.visible()&&(a=this.getEleLevelForLayerLevel(a,i),n.setImgSmoothing(s,!1),n.drawCachedElement(s,t,null,null,a,!0),n.setImgSmoothing(s,!0))},Jo.levelIsComplete=function(e,t){var a=this.layersByLevel[e];if(!a||0===a.length)return!1;for(var i=0,n=0;n0)return!1;if(s.invalid)return!1;i+=s.eles.length}return i===t.length},Jo.validateLayersElesOrdering=function(e,t){var a=this.layersByLevel[e];if(a)for(var i=0;i0){e=!0;break}}return e},Jo.invalidateElements=function(e){var t=this;0!==e.length&&(t.lastInvalidationTime=Q(),0!==e.length&&t.haveLayers()&&t.updateElementsInLayers(e,(function(e,a,i){t.invalidateLayer(e)})))},Jo.invalidateLayer=function(e){if(this.lastInvalidationTime=Q(),!e.invalid){var t=e.level,a=e.eles,i=this.layersByLevel[t];ye(i,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var n=0;n3&&void 0!==arguments[3])||arguments[3],n=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this,r=t._private.rscratch;if((!s||t.visible())&&!r.badLine&&null!=r.allpts&&!isNaN(r.allpts[0])){var l;a&&(l=a,e.translate(-l.x1,-l.y1));var c=s?t.pstyle("opacity").value:1,d=t.pstyle("line-style").value,u=t.pstyle("width").pfValue,p=t.pstyle("line-cap").value,m=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c;e.lineWidth=u,e.lineCap=p,o.eleStrokeStyle(e,t,a),o.drawEdgePath(t,e,r.allpts,d),e.lineCap="butt"},b=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c;o.drawArrowheads(e,t,a)};if(e.lineJoin="round","yes"===t.pstyle("ghost").value){var f=t.pstyle("ghost-offset-x").pfValue,g=t.pstyle("ghost-offset-y").pfValue,h=t.pstyle("ghost-opacity").value,j=c*h;e.translate(f,g),m(j),b(j),e.translate(-f,-g)}m(),b(),n&&o.drawEdgeOverlay(e,t),o.drawElementText(e,t,null,i),a&&e.translate(l.x1,l.y1)}},drawEdgeOverlay:function(e,t){if(t.visible()){var a=t.pstyle("overlay-opacity").value;if(0!==a){var i=this,n=i.usePaths(),s=t._private.rscratch,o=2*t.pstyle("overlay-padding").pfValue,r=t.pstyle("overlay-color").value;e.lineWidth=o,"self"!==s.edgeType||n?e.lineCap="round":e.lineCap="butt",i.colorStrokeStyle(e,r[0],r[1],r[2],a),i.drawEdgePath(t,e,s.allpts,"solid")}}},drawEdgePath:function(e,t,a,i){var n,s=e._private.rscratch,o=t,r=!1,l=this.usePaths(),c=e.pstyle("line-dash-pattern").pfValue,d=e.pstyle("line-dash-offset").pfValue;if(l){var u=a.join("$");s.pathCacheKey&&s.pathCacheKey===u?(n=t=s.pathCache,r=!0):(n=t=new Path2D,s.pathCacheKey=u,s.pathCache=n)}if(o.setLineDash)switch(i){case"dotted":o.setLineDash([1,1]);break;case"dashed":o.setLineDash(c),o.lineDashOffset=d;break;case"solid":o.setLineDash([])}if(!r&&!s.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(a[0],a[1]),s.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var p=2;p+35&&void 0!==arguments[5])||arguments[5],o=this;if(null==i){if(s&&!o.eleTextBiggerThanMin(t))return}else if(!1===i)return;if(t.isNode()){var r=t.pstyle("label");if(!r||!r.value)return;var l=o.getLabelJustification(t);e.textAlign=l,e.textBaseline="bottom"}else{var c=t.pstyle("label"),d=t.pstyle("source-label"),u=t.pstyle("target-label");if(!(c&&c.value||d&&d.value||u&&u.value))return;e.textAlign="center",e.textBaseline="bottom"}var p,m=!a;a&&(p=a,e.translate(-p.x1,-p.y1)),null==n?(o.drawText(e,t,null,m,s),t.isEdge()&&(o.drawText(e,t,"source",m,s),o.drawText(e,t,"target",m,s))):o.drawText(e,t,n,m,s),a&&e.translate(p.x1,p.y1)},getFontCache:function(e){var t;this.fontCaches=this.fontCaches||[];for(var a=0;a2&&void 0!==arguments[2])||arguments[2],i=t.pstyle("font-style").strValue,n=t.pstyle("font-size").pfValue+"px",s=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,r=a?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,l=t.pstyle("text-outline-opacity").value*r,c=t.pstyle("color").value,d=t.pstyle("text-outline-color").value;e.font=i+" "+o+" "+n+" "+s,e.lineJoin="round",this.colorFillStyle(e,c[0],c[1],c[2],r),this.colorStrokeStyle(e,d[0],d[1],d[2],l)},getTextAngle:function(e,t){var a=e._private.rscratch,i=t?t+"-":"",n=e.pstyle(i+"text-rotation"),s=Ee(a,"labelAngle",t);return"autorotate"===n.strValue?e.isEdge()?s:0:"none"===n.strValue?0:n.pfValue},drawText:function(e,t,a){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],n=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],s=t._private.rscratch,o=n?t.effectiveOpacity():1;if(!n||0!==o&&0!==t.pstyle("text-opacity").value){"main"===a&&(a=null);var r,l,c=Ee(s,"labelX",a),d=Ee(s,"labelY",a),u=this.getLabelText(t,a);if(null!=u&&""!==u&&!isNaN(c)&&!isNaN(d)){this.setupTextStyle(e,t,n);var p,m=a?a+"-":"",b=Ee(s,"labelWidth",a),f=Ee(s,"labelHeight",a),g=t.pstyle(m+"text-margin-x").pfValue,h=t.pstyle(m+"text-margin-y").pfValue,j=t.isEdge(),x=t.pstyle("text-halign").value,v=t.pstyle("text-valign").value;switch(j&&(x="center",v="center"),c+=g,d+=h,0!==(p=i?this.getTextAngle(t,a):0)&&(r=c,l=d,e.translate(r,l),e.rotate(p),c=0,d=0),v){case"top":break;case"center":d+=f/2;break;case"bottom":d+=f}var y=t.pstyle("text-background-opacity").value,O=t.pstyle("text-border-opacity").value,E=t.pstyle("text-border-width").pfValue,w=t.pstyle("text-background-padding").pfValue;if(y>0||E>0&&O>0){var M=c-w;switch(x){case"left":M-=b;break;case"center":M-=b/2}var S=d-f-w,_=b+2*w,T=f+2*w;if(y>0){var C=e.fillStyle,k=t.pstyle("text-background-color").value;e.fillStyle="rgba("+k[0]+","+k[1]+","+k[2]+","+y*o+")","roundrectangle"==t.pstyle("text-background-shape").strValue?function(e,t,a,i,n){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:5;e.beginPath(),e.moveTo(t+s,a),e.lineTo(t+i-s,a),e.quadraticCurveTo(t+i,a,t+i,a+s),e.lineTo(t+i,a+n-s),e.quadraticCurveTo(t+i,a+n,t+i-s,a+n),e.lineTo(t+s,a+n),e.quadraticCurveTo(t,a+n,t,a+n-s),e.lineTo(t,a+s),e.quadraticCurveTo(t,a,t+s,a),e.closePath(),e.fill()}(e,M,S,_,T,2):e.fillRect(M,S,_,T),e.fillStyle=C}if(E>0&&O>0){var F=e.strokeStyle,I=e.lineWidth,D=t.pstyle("text-border-color").value,A=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+D[0]+","+D[1]+","+D[2]+","+O*o+")",e.lineWidth=E,e.setLineDash)switch(A){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=E/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(e.strokeRect(M,S,_,T),"double"===A){var L=E/2;e.strokeRect(M+L,S+L,_-2*L,T-2*L)}e.setLineDash&&e.setLineDash([]),e.lineWidth=I,e.strokeStyle=F}}var R=2*t.pstyle("text-outline-width").pfValue;if(R>0&&(e.lineWidth=R),"wrap"===t.pstyle("text-wrap").value){var N=Ee(s,"labelWrapCachedLines",a),P=Ee(s,"labelLineHeight",a),z=b/2,B=this.getLabelJustification(t);switch("auto"===B||("left"===x?"left"===B?c+=-b:"center"===B&&(c+=-z):"center"===x?"left"===B?c+=-z:"right"===B&&(c+=z):"right"===x&&("center"===B?c+=z:"right"===B&&(c+=b))),v){case"top":case"center":case"bottom":d-=(N.length-1)*P}for(var V=0;V0&&e.strokeText(N[V],c,d),e.fillText(N[V],c,d),d+=P}else R>0&&e.strokeText(u,c,d),e.fillText(u,c,d);0!==p&&(e.rotate(-p),e.translate(-r,-l))}}}},rr={drawNode:function(e,t,a){var i,n,s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],l=this,c=t._private,d=c.rscratch,u=t.position();if(O(u.x)&&O(u.y)&&(!r||t.visible())){var p,m,b=r?t.effectiveOpacity():1,f=l.usePaths(),g=!1,h=t.padding();i=t.width()+2*h,n=t.height()+2*h,a&&(m=a,e.translate(-m.x1,-m.y1));for(var j=t.pstyle("background-image").value,x=new Array(j.length),v=new Array(j.length),y=0,E=0;E0&&void 0!==arguments[0]?arguments[0]:T;l.eleFillStyle(e,t,a)},D=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:F;l.colorStrokeStyle(e,C[0],C[1],C[2],t)},A=t.pstyle("shape").strValue,L=t.pstyle("shape-polygon-points").pfValue;if(f){e.translate(u.x,u.y);var R=l.nodePathCache=l.nodePathCache||[],N=ie("polygon"===A?A+","+L.join(","):A,""+n,""+i),P=R[N];null!=P?(p=P,g=!0,d.pathCache=p):(p=new Path2D,R[N]=d.pathCache=p)}var z=function(){if(!g){var a=u;f&&(a={x:0,y:0}),l.nodeShapes[l.getNodeShape(t)].draw(p||e,a.x,a.y,i,n)}f?e.fill(p):e.fill()},B=function(){for(var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:b,i=c.backgrounding,n=0,s=0;s0&&void 0!==arguments[0]&&arguments[0],s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b;l.hasPie(t)&&(l.drawPie(e,t,s),a&&(f||l.nodeShapes[l.getNodeShape(t)].draw(e,u.x,u.y,i,n)))},J=function(){var t=(S>0?S:-S)*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:b),a=S>0?0:255;0!==S&&(l.colorFillStyle(e,a,a,a,t),f?e.fill(p):e.fill())},U=function(){if(_>0){if(e.lineWidth=_,e.lineCap="butt",e.setLineDash)switch(k){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}if(f?e.stroke(p):e.stroke(),"double"===k){e.lineWidth=_/3;var t=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",f?e.stroke(p):e.stroke(),e.globalCompositeOperation=t}e.setLineDash&&e.setLineDash([])}};if("yes"===t.pstyle("ghost").value){var G=t.pstyle("ghost-offset-x").pfValue,q=t.pstyle("ghost-offset-y").pfValue,$=t.pstyle("ghost-opacity").value,W=$*b;e.translate(G,q),I($*T),z(),B(W),V(0!==S||0!==_),J(W),D($*F),U(),e.translate(-G,-q)}I(),z(),B(),V(0!==S||0!==_),J(),D(),U(),f&&e.translate(-u.x,-u.y),l.drawElementText(e,t,null,s),o&&l.drawNodeOverlay(e,t,u,i,n),a&&e.translate(m.x1,m.y1)}},drawNodeOverlay:function(e,t,a,i,n){if(t.visible()){var s=t.pstyle("overlay-padding").pfValue,o=t.pstyle("overlay-opacity").value,r=t.pstyle("overlay-color").value;if(o>0){if(a=a||t.position(),null==i||null==n){var l=t.padding();i=t.width()+2*l,n=t.height()+2*l}this.colorFillStyle(e,r[0],r[1],r[2],o),this.nodeShapes.roundrectangle.draw(e,a.x,a.y,i+2*s,n+2*s),e.fill()}}},hasPie:function(e){return(e=e[0])._private.hasPie},drawPie:function(e,t,a,i){t=t[0],i=i||t.position();var n=t.cy().style(),s=t.pstyle("pie-size"),o=i.x,r=i.y,l=t.width(),c=t.height(),d=Math.min(l,c)/2,u=0;this.usePaths()&&(o=0,r=0),"%"===s.units?d*=s.pfValue:void 0!==s.pfValue&&(d=s.pfValue/2);for(var p=1;p<=n.pieBackgroundN;p++){var m=t.pstyle("pie-"+p+"-background-size").value,b=t.pstyle("pie-"+p+"-background-color").value,f=t.pstyle("pie-"+p+"-background-opacity").value*a,g=m/100;g+u>1&&(g=1-u);var h=1.5*Math.PI+2*Math.PI*u,j=h+2*Math.PI*g;0===m||u>=1||u+g>1||(e.beginPath(),e.moveTo(o,r),e.arc(o,r,d,h,j),e.closePath(),this.colorFillStyle(e,b[0],b[1],b[2],f),e.fill(),u+=g)}}},lr={getPixelRatio:function(){var e=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var t=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/t},paintCache:function(e){for(var t,a=this.paintCaches=this.paintCaches||[],i=!0,n=0;no.minMbLowQualFrames&&(o.motionBlurPxRatio=o.mbPxRBlurry)),o.clearingMotionBlur&&(o.motionBlurPxRatio=1),o.textureDrawLastFrame&&!u&&(d[o.NODE]=!0,d[o.SELECT_BOX]=!0);var j=l.style(),x=l.zoom(),v=void 0!==n?n:x,y=l.pan(),O={x:y.x,y:y.y},E={zoom:x,pan:{x:y.x,y:y.y}},w=o.prevViewport;void 0===w||E.zoom!==w.zoom||E.pan.x!==w.pan.x||E.pan.y!==w.pan.y||f&&!b||(o.motionBlurPxRatio=1),s&&(O=s),v*=r,O.x*=r,O.y*=r;var M=o.getCachedZSortedEles();function S(e,t,a,i,n){var s=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",o.colorFillStyle(e,255,255,255,o.motionBlurTransparency),e.fillRect(t,a,i,n),e.globalCompositeOperation=s}function _(e,i){var r,l,d,u;o.clearingMotionBlur||e!==c.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]&&e!==c.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]?(r=O,l=v,d=o.canvasWidth,u=o.canvasHeight):(r={x:y.x*m,y:y.y*m},l=x*m,d=o.canvasWidth*m,u=o.canvasHeight*m),e.setTransform(1,0,0,1,0,0),"motionBlur"===i?S(e,0,0,d,u):t||void 0!==i&&!i||e.clearRect(0,0,d,u),a||(e.translate(r.x,r.y),e.scale(l,l)),s&&e.translate(s.x,s.y),n&&e.scale(n,n)}if(u||(o.textureDrawLastFrame=!1),u){if(o.textureDrawLastFrame=!0,!o.textureCache){o.textureCache={},o.textureCache.bb=l.mutableElements().boundingBox(),o.textureCache.texture=o.data.bufferCanvases[o.TEXTURE_BUFFER];var T=o.data.bufferContexts[o.TEXTURE_BUFFER];T.setTransform(1,0,0,1,0,0),T.clearRect(0,0,o.canvasWidth*o.textureMult,o.canvasHeight*o.textureMult),o.render({forcedContext:T,drawOnlyNodeLayer:!0,forcedPxRatio:r*o.textureMult}),(E=o.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:o.canvasWidth,height:o.canvasHeight}).mpan={x:(0-E.pan.x)/E.zoom,y:(0-E.pan.y)/E.zoom}}d[o.DRAG]=!1,d[o.NODE]=!1;var C=c.contexts[o.NODE],k=o.textureCache.texture;E=o.textureCache.viewport,C.setTransform(1,0,0,1,0,0),p?S(C,0,0,E.width,E.height):C.clearRect(0,0,E.width,E.height);var F=j.core("outside-texture-bg-color").value,I=j.core("outside-texture-bg-opacity").value;o.colorFillStyle(C,F[0],F[1],F[2],I),C.fillRect(0,0,E.width,E.height),x=l.zoom(),_(C,!1),C.clearRect(E.mpan.x,E.mpan.y,E.width/E.zoom/r,E.height/E.zoom/r),C.drawImage(k,E.mpan.x,E.mpan.y,E.width/E.zoom/r,E.height/E.zoom/r)}else o.textureOnViewport&&!t&&(o.textureCache=null);var D=l.extent(),A=o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming||o.hoverData.draggingEles||o.cy.animated(),L=o.hideEdgesOnViewport&&A,R=[];if(R[o.NODE]=!d[o.NODE]&&p&&!o.clearedForMotionBlur[o.NODE]||o.clearingMotionBlur,R[o.NODE]&&(o.clearedForMotionBlur[o.NODE]=!0),R[o.DRAG]=!d[o.DRAG]&&p&&!o.clearedForMotionBlur[o.DRAG]||o.clearingMotionBlur,R[o.DRAG]&&(o.clearedForMotionBlur[o.DRAG]=!0),d[o.NODE]||a||i||R[o.NODE]){var N=p&&!R[o.NODE]&&1!==m;_(C=t||(N?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]:c.contexts[o.NODE]),p&&!N?"motionBlur":void 0),L?o.drawCachedNodes(C,M.nondrag,r,D):o.drawLayeredElements(C,M.nondrag,r,D),o.debug&&o.drawDebugPoints(C,M.nondrag),a||p||(d[o.NODE]=!1)}if(!i&&(d[o.DRAG]||a||R[o.DRAG])&&(N=p&&!R[o.DRAG]&&1!==m,_(C=t||(N?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]:c.contexts[o.DRAG]),p&&!N?"motionBlur":void 0),L?o.drawCachedNodes(C,M.drag,r,D):o.drawCachedElements(C,M.drag,r,D),o.debug&&o.drawDebugPoints(C,M.drag),a||p||(d[o.DRAG]=!1)),o.showFps||!i&&d[o.SELECT_BOX]&&!a){if(_(C=t||c.contexts[o.SELECT_BOX]),1==o.selection[4]&&(o.hoverData.selecting||o.touchData.selecting)){x=o.cy.zoom();var P=j.core("selection-box-border-width").value/x;C.lineWidth=P,C.fillStyle="rgba("+j.core("selection-box-color").value[0]+","+j.core("selection-box-color").value[1]+","+j.core("selection-box-color").value[2]+","+j.core("selection-box-opacity").value+")",C.fillRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]),P>0&&(C.strokeStyle="rgba("+j.core("selection-box-border-color").value[0]+","+j.core("selection-box-border-color").value[1]+","+j.core("selection-box-border-color").value[2]+","+j.core("selection-box-opacity").value+")",C.strokeRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]))}if(c.bgActivePosistion&&!o.hoverData.selecting){x=o.cy.zoom();var z=c.bgActivePosistion;C.fillStyle="rgba("+j.core("active-bg-color").value[0]+","+j.core("active-bg-color").value[1]+","+j.core("active-bg-color").value[2]+","+j.core("active-bg-opacity").value+")",C.beginPath(),C.arc(z.x,z.y,j.core("active-bg-size").pfValue/x,0,2*Math.PI),C.fill()}var B=o.lastRedrawTime;if(o.showFps&&B){B=Math.round(B);var V=Math.round(1e3/B);C.setTransform(1,0,0,1,0,0),C.fillStyle="rgba(255, 0, 0, 0.75)",C.strokeStyle="rgba(255, 0, 0, 0.75)",C.lineWidth=1,C.fillText("1 frame = "+B+" ms = "+V+" fps",0,20),C.strokeRect(0,30,250,20),C.fillRect(0,30,250*Math.min(V/60,1),20)}a||(d[o.SELECT_BOX]=!1)}if(p&&1!==m){var J=c.contexts[o.NODE],U=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE],G=c.contexts[o.DRAG],q=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG],$=function(e,t,a){e.setTransform(1,0,0,1,0,0),a||!h?e.clearRect(0,0,o.canvasWidth,o.canvasHeight):S(e,0,0,o.canvasWidth,o.canvasHeight);var i=m;e.drawImage(t,0,0,o.canvasWidth*i,o.canvasHeight*i,0,0,o.canvasWidth,o.canvasHeight)};(d[o.NODE]||R[o.NODE])&&($(J,U,R[o.NODE]),d[o.NODE]=!1),(d[o.DRAG]||R[o.DRAG])&&($(G,q,R[o.DRAG]),d[o.DRAG]=!1)}o.prevViewport=E,o.clearingMotionBlur&&(o.clearingMotionBlur=!1,o.motionBlurCleared=!0,o.motionBlur=!0),p&&(o.motionBlurTimeout=setTimeout((function(){o.motionBlurTimeout=null,o.clearedForMotionBlur[o.NODE]=!1,o.clearedForMotionBlur[o.DRAG]=!1,o.motionBlur=!1,o.clearingMotionBlur=!u,o.mbFrames=0,d[o.NODE]=!0,d[o.DRAG]=!0,o.redraw()}),100)),t||l.emit("render")}},cr={drawPolygonPath:function(e,t,a,i,n,s){var o=i/2,r=n/2;e.beginPath&&e.beginPath(),e.moveTo(t+o*s[0],a+r*s[1]);for(var l=1;l0&&s>0){p.clearRect(0,0,n,s),p.globalCompositeOperation="source-over";var m=this.getCachedZSortedEles();if(e.full)p.translate(-a.x1*l,-a.y1*l),p.scale(l,l),this.drawElements(p,m),p.scale(1/l,1/l),p.translate(a.x1*l,a.y1*l);else{var b=t.pan(),f={x:b.x*l,y:b.y*l};l*=t.zoom(),p.translate(f.x,f.y),p.scale(l,l),this.drawElements(p,m),p.scale(1/l,1/l),p.translate(-f.x,-f.y)}e.bg&&(p.globalCompositeOperation="destination-over",p.fillStyle=e.bg,p.rect(0,0,n,s),p.fill())}return u},gr.png=function(e){return jr(e,this.bufferCanvasImage(e),"image/png")},gr.jpg=function(e){return jr(e,this.bufferCanvasImage(e),"image/jpeg")};var xr=yr,vr=yr.prototype;function yr(e){var t=this;t.data={canvases:new Array(vr.CANVAS_LAYERS),contexts:new Array(vr.CANVAS_LAYERS),canvasNeedsRedraw:new Array(vr.CANVAS_LAYERS),bufferCanvases:new Array(vr.BUFFER_COUNT),bufferContexts:new Array(vr.CANVAS_LAYERS)};var a="-webkit-tap-highlight-color",i="rgba(0,0,0,0)";t.data.canvasContainer=document.createElement("div");var n=t.data.canvasContainer.style;t.data.canvasContainer.style[a]=i,n.position="relative",n.zIndex="0",n.overflow="hidden";var s=e.cy.container();s.appendChild(t.data.canvasContainer),s.style[a]=i;var o={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};F()&&(o["-ms-touch-action"]="none",o["touch-action"]="none");for(var r=0;r=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},a(447),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,a(177))},function(e,t,a){(function(e,t){!function(e,a){"use strict";if(!e.setImmediate){var i,n,s,o,r,l=1,c={},d=!1,u=e.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(e);p=p&&p.setTimeout?p:e,"[object process]"==={}.toString.call(e.process)?i=function(e){t.nextTick((function(){b(e)}))}:function(){if(e.postMessage&&!e.importScripts){var t=!0,a=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=a,t}}()?(o="setImmediate$"+Math.random()+"$",r=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(o)&&b(+t.data.slice(o.length))},e.addEventListener?e.addEventListener("message",r,!1):e.attachEvent("onmessage",r),i=function(t){e.postMessage(o+t,"*")}):e.MessageChannel?((s=new MessageChannel).port1.onmessage=function(e){b(e.data)},i=function(e){s.port2.postMessage(e)}):u&&"onreadystatechange"in u.createElement("script")?(n=u.documentElement,i=function(e){var t=u.createElement("script");t.onreadystatechange=function(){b(e),t.onreadystatechange=null,n.removeChild(t),t=null},n.appendChild(t)}):i=function(e){setTimeout(b,0,e)},p.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),a=0;a=t||a<0||u&&e-c>=s}function v(){var e=f();if(x(e))return y(e);r=setTimeout(v,function(e){var a=t-(e-l);return u?b(a,s-(e-c)):a}(e))}function y(e){return r=void 0,p&&i?j(e):(i=n=void 0,o)}function O(){var e=f(),a=x(e);if(i=arguments,n=this,l=e,a){if(void 0===r)return function(e){return c=e,r=setTimeout(v,t),d?j(e):o}(l);if(u)return r=setTimeout(v,t),j(l)}return void 0===r&&(r=setTimeout(v,t)),o}return t=h(t)||0,g(a)&&(d=!!a.leading,s=(u="maxWait"in a)?m(h(a.maxWait)||0,t):s,p="trailing"in a?!!a.trailing:p),O.cancel=function(){void 0!==r&&clearTimeout(r),c=0,i=l=n=r=void 0},O.flush=function(){return void 0===r?o:y(f())},O}}).call(this,a(177))},function(e,t,a){e.exports=a(450)},function(e,t,a){var i,n,s;(function(){var a,o,r,l,c,d,u,p,m,b,f,g,h,j,x;r=Math.floor,b=Math.min,o=function(e,t){return et?1:0},m=function(e,t,a,i,n){var s;if(null==a&&(a=0),null==n&&(n=o),a<0)throw new Error("lo must be non-negative");for(null==i&&(i=e.length);aa;0<=a?t++:t--)c.push(t);return c}.apply(this).reverse()).length;if;0<=f?++d:--d)g.push(c(e,a));return g},j=function(e,t,a,i){var n,s,r;for(null==i&&(i=o),n=e[a];a>t&&i(n,s=e[r=a-1>>1])<0;)e[a]=s,a=r;return e[a]=n},x=function(e,t,a){var i,n,s,r,l;for(null==a&&(a=o),n=e.length,l=t,s=e[t],i=2*t+1;i1?t-1:0),i=1;i=200){var f=t?null:r(e);if(f)return l(f);p=!1,d=o,b=new i}else b=t?[]:m;e:for(;++c-1}},function(e,t,a){var i=a(321),n=a(489),s=a(490);e.exports=function(e,t,a){return t==t?s(e,t,a):i(e,n,a)}},function(e,t){e.exports=function(e){return e!=e}},function(e,t){e.exports=function(e,t,a){for(var i=a-1,n=e.length;++i1||1===t.length&&e.hasEdge(t[0],t[0])}))}},function(e,t,a){var i=a(134);e.exports=function(e,t,a){return function(e,t,a){var i={},n=e.nodes();return n.forEach((function(e){i[e]={},i[e][e]={distance:0},n.forEach((function(t){e!==t&&(i[e][t]={distance:Number.POSITIVE_INFINITY})})),a(e).forEach((function(a){var n=a.v===e?a.w:a.v,s=t(a);i[e][n]={distance:s,predecessor:e}}))})),n.forEach((function(e){var t=i[e];n.forEach((function(a){var s=i[a];n.forEach((function(a){var i=s[e],n=t[a],o=s[a],r=i.distance+n.distance;r0;){if(a=l.removeMin(),i.has(r,a))o.setEdge(a,r[a]);else{if(d)throw new Error("Input graph is not connected: "+e);d=!0}e.nodeEdges(a).forEach(c)}return o}},function(e,t,a){"use strict";var i=a(115),n=a(553),s=a(556),o=a(557),r=a(127).normalizeRanks,l=a(559),c=a(127).removeEmptyRanks,d=a(560),u=a(561),p=a(562),m=a(563),b=a(572),f=a(127),g=a(137).Graph;e.exports=function(e,t){var a=t&&t.debugTiming?f.time:f.notime;a("layout",(function(){var t=a(" buildLayoutGraph",(function(){return function(e){var t=new g({multigraph:!0,compound:!0}),a=S(e.graph());return t.setGraph(i.merge({},j,M(a,h),i.pick(a,x))),i.forEach(e.nodes(),(function(a){var n=S(e.node(a));t.setNode(a,i.defaults(M(n,v),y)),t.setParent(a,e.parent(a))})),i.forEach(e.edges(),(function(a){var n=S(e.edge(a));t.setEdge(a,i.merge({},E,M(n,O),i.pick(n,w)))})),t}(e)}));a(" runLayout",(function(){!function(e,t){t(" makeSpaceForEdgeLabels",(function(){!function(e){var t=e.graph();t.ranksep/=2,i.forEach(e.edges(),(function(a){var i=e.edge(a);i.minlen*=2,"c"!==i.labelpos.toLowerCase()&&("TB"===t.rankdir||"BT"===t.rankdir?i.width+=i.labeloffset:i.height+=i.labeloffset)}))}(e)})),t(" removeSelfEdges",(function(){!function(e){i.forEach(e.edges(),(function(t){if(t.v===t.w){var a=e.node(t.v);a.selfEdges||(a.selfEdges=[]),a.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}}))}(e)})),t(" acyclic",(function(){n.run(e)})),t(" nestingGraph.run",(function(){d.run(e)})),t(" rank",(function(){o(f.asNonCompoundGraph(e))})),t(" injectEdgeLabelProxies",(function(){!function(e){i.forEach(e.edges(),(function(t){var a=e.edge(t);if(a.width&&a.height){var i=e.node(t.v),n={rank:(e.node(t.w).rank-i.rank)/2+i.rank,e:t};f.addDummyNode(e,"edge-proxy",n,"_ep")}}))}(e)})),t(" removeEmptyRanks",(function(){c(e)})),t(" nestingGraph.cleanup",(function(){d.cleanup(e)})),t(" normalizeRanks",(function(){r(e)})),t(" assignRankMinMax",(function(){!function(e){var t=0;i.forEach(e.nodes(),(function(a){var n=e.node(a);n.borderTop&&(n.minRank=e.node(n.borderTop).rank,n.maxRank=e.node(n.borderBottom).rank,t=i.max(t,n.maxRank))})),e.graph().maxRank=t}(e)})),t(" removeEdgeLabelProxies",(function(){!function(e){i.forEach(e.nodes(),(function(t){var a=e.node(t);"edge-proxy"===a.dummy&&(e.edge(a.e).labelRank=a.rank,e.removeNode(t))}))}(e)})),t(" normalize.run",(function(){s.run(e)})),t(" parentDummyChains",(function(){l(e)})),t(" addBorderSegments",(function(){u(e)})),t(" order",(function(){m(e)})),t(" insertSelfEdges",(function(){!function(e){var t=f.buildLayerMatrix(e);i.forEach(t,(function(t){var a=0;i.forEach(t,(function(t,n){var s=e.node(t);s.order=n+a,i.forEach(s.selfEdges,(function(t){f.addDummyNode(e,"selfedge",{width:t.label.width,height:t.label.height,rank:s.rank,order:n+ ++a,e:t.e,label:t.label},"_se")})),delete s.selfEdges}))}))}(e)})),t(" adjustCoordinateSystem",(function(){p.adjust(e)})),t(" position",(function(){b(e)})),t(" positionSelfEdges",(function(){!function(e){i.forEach(e.nodes(),(function(t){var a=e.node(t);if("selfedge"===a.dummy){var i=e.node(a.e.v),n=i.x+i.width/2,s=i.y,o=a.x-n,r=i.height/2;e.setEdge(a.e,a.label),e.removeNode(t),a.label.points=[{x:n+2*o/3,y:s-r},{x:n+5*o/6,y:s-r},{x:n+o,y:s},{x:n+5*o/6,y:s+r},{x:n+2*o/3,y:s+r}],a.label.x=a.x,a.label.y=a.y}}))}(e)})),t(" removeBorderNodes",(function(){!function(e){i.forEach(e.nodes(),(function(t){if(e.children(t).length){var a=e.node(t),n=e.node(a.borderTop),s=e.node(a.borderBottom),o=e.node(i.last(a.borderLeft)),r=e.node(i.last(a.borderRight));a.width=Math.abs(r.x-o.x),a.height=Math.abs(s.y-n.y),a.x=o.x+a.width/2,a.y=n.y+a.height/2}})),i.forEach(e.nodes(),(function(t){"border"===e.node(t).dummy&&e.removeNode(t)}))}(e)})),t(" normalize.undo",(function(){s.undo(e)})),t(" fixupEdgeLabelCoords",(function(){!function(e){i.forEach(e.edges(),(function(t){var a=e.edge(t);if(i.has(a,"x"))switch("l"!==a.labelpos&&"r"!==a.labelpos||(a.width-=a.labeloffset),a.labelpos){case"l":a.x-=a.width/2+a.labeloffset;break;case"r":a.x+=a.width/2+a.labeloffset}}))}(e)})),t(" undoCoordinateSystem",(function(){p.undo(e)})),t(" translateGraph",(function(){!function(e){var t=Number.POSITIVE_INFINITY,a=0,n=Number.POSITIVE_INFINITY,s=0,o=e.graph(),r=o.marginx||0,l=o.marginy||0;function c(e){var i=e.x,o=e.y,r=e.width,l=e.height;t=Math.min(t,i-r/2),a=Math.max(a,i+r/2),n=Math.min(n,o-l/2),s=Math.max(s,o+l/2)}i.forEach(e.nodes(),(function(t){c(e.node(t))})),i.forEach(e.edges(),(function(t){var a=e.edge(t);i.has(a,"x")&&c(a)})),t-=r,n-=l,i.forEach(e.nodes(),(function(a){var i=e.node(a);i.x-=t,i.y-=n})),i.forEach(e.edges(),(function(a){var s=e.edge(a);i.forEach(s.points,(function(e){e.x-=t,e.y-=n})),i.has(s,"x")&&(s.x-=t),i.has(s,"y")&&(s.y-=n)})),o.width=a-t+r,o.height=s-n+l}(e)})),t(" assignNodeIntersects",(function(){!function(e){i.forEach(e.edges(),(function(t){var a,i,n=e.edge(t),s=e.node(t.v),o=e.node(t.w);n.points?(a=n.points[0],i=n.points[n.points.length-1]):(n.points=[],a=o,i=s),n.points.unshift(f.intersectRect(s,a)),n.points.push(f.intersectRect(o,i))}))}(e)})),t(" reversePoints",(function(){!function(e){i.forEach(e.edges(),(function(t){var a=e.edge(t);a.reversed&&a.points.reverse()}))}(e)})),t(" acyclic.undo",(function(){n.undo(e)}))}(t,a)})),a(" updateInputGraph",(function(){!function(e,t){i.forEach(e.nodes(),(function(a){var i=e.node(a),n=t.node(a);i&&(i.x=n.x,i.y=n.y,t.children(a).length&&(i.width=n.width,i.height=n.height))})),i.forEach(e.edges(),(function(a){var n=e.edge(a),s=t.edge(a);n.points=s.points,i.has(s,"x")&&(n.x=s.x,n.y=s.y)})),e.graph().width=t.graph().width,e.graph().height=t.graph().height}(e,t)}))}))};var h=["nodesep","edgesep","ranksep","marginx","marginy"],j={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},x=["acyclicer","ranker","rankdir","align"],v=["width","height"],y={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],E={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},w=["labelpos"];function M(e,t){return i.mapValues(i.pick(e,t),Number)}function S(e){var t={};return i.forEach(e,(function(e,a){t[a.toLowerCase()]=e})),t}},function(e,t,a){var i=a(297);e.exports=function(e){return i(e,5)}},function(e,t,a){var i=a(208),n=a(330),s=a(243),o=a(209),r=Object.prototype,l=r.hasOwnProperty,c=i((function(e,t){e=Object(e);var a=-1,i=t.length,c=i>2?t[2]:void 0;for(c&&s(t[0],t[1],c)&&(i=1);++a-1?r[l?t[c]:c]:void 0}}},function(e,t,a){var i=a(321),n=a(148),s=a(515),o=Math.max;e.exports=function(e,t,a){var r=null==e?0:e.length;if(!r)return-1;var l=null==a?0:s(a);return l<0&&(l=o(r+l,0)),i(e,n(t,3),l)}},function(e,t,a){e.exports=a(56)(3629)},function(e,t,a){e.exports=a(56)(3669)},function(e,t,a){var i=a(235),n=a(302),s=a(209);e.exports=function(e,t){return null==e?e:i(e,n(t),s)}},function(e,t,a){e.exports=a(56)(3663)},function(e,t,a){var i=a(331),n=a(234),s=a(148);e.exports=function(e,t){var a={};return t=s(t,3),n(e,(function(e,n,s){i(a,n,t(e,n,s))})),a}},function(e,t,a){var i=a(244),n=a(521),s=a(184);e.exports=function(e){return e&&e.length?i(e,s,n):void 0}},function(e,t){e.exports=function(e,t){return e>t}},function(e,t,a){var i=a(523),n=a(532)((function(e,t,a){i(e,t,a)}));e.exports=n},function(e,t,a){var i=a(304),n=a(333),s=a(235),o=a(524),r=a(183),l=a(209),c=a(334);e.exports=function e(t,a,d,u,p){t!==a&&s(a,(function(s,l){if(p||(p=new i),r(s))o(t,a,l,d,e,u,p);else{var m=u?u(c(t,l),s,l+"",t,a,p):void 0;void 0===m&&(m=s),n(t,l,m)}}),l)}},function(e,t,a){var i=a(333),n=a(525),s=a(526),o=a(527),r=a(528),l=a(237),c=a(138),d=a(323),u=a(239),p=a(241),m=a(183),b=a(529),f=a(240),g=a(334),h=a(530);e.exports=function(e,t,a,j,x,v,y){var O=g(e,a),E=g(t,a),w=y.get(E);if(w)i(e,a,w);else{var M=v?v(O,E,a+"",e,t,y):void 0,S=void 0===M;if(S){var _=c(E),T=!_&&u(E),C=!_&&!T&&f(E);M=E,_||T||C?c(O)?M=O:d(O)?M=o(O):T?(S=!1,M=n(E,!0)):C?(S=!1,M=s(E,!0)):M=[]:b(E)||l(E)?(M=O,l(O)?M=h(O):m(O)&&!p(O)||(M=r(E))):S=!1}S&&(y.set(E,M),x(M,E,j,v,y),y.delete(E)),i(e,a,M)}}},function(e,t,a){e.exports=a(56)(3646)},function(e,t,a){e.exports=a(56)(3655)},function(e,t,a){e.exports=a(56)(3647)},function(e,t,a){e.exports=a(56)(3656)},function(e,t,a){e.exports=a(56)(3667)},function(e,t,a){var i=a(531),n=a(209);e.exports=function(e){return i(e,n(e))}},function(e,t,a){e.exports=a(56)(679)},function(e,t,a){var i=a(208),n=a(243);e.exports=function(e){return i((function(t,a){var i=-1,s=a.length,o=s>1?a[s-1]:void 0,r=s>2?a[2]:void 0;for(o=e.length>3&&"function"==typeof o?(s--,o):void 0,r&&n(a[0],a[1],r)&&(o=s<3?void 0:o,s=1),t=Object(t);++i1&&o(e,t[0],t[1])?t=[]:a>2&&o(t[0],t[1],t[2])&&(t=[t[0]]),n(e,i(t,1),[])}));e.exports=r},function(e,t,a){var i=a(242),n=a(238),s=a(148),o=a(318),r=a(545),l=a(546),c=a(547),d=a(184),u=a(138);e.exports=function(e,t,a){t=t.length?i(t,(function(e){return u(e)?function(t){return n(t,1===e.length?e[0]:e)}:e})):[d];var p=-1;t=i(t,l(s));var m=o(e,(function(e,a,n){return{criteria:i(t,(function(t){return t(e)})),index:++p,value:e}}));return r(m,(function(e,t){return c(e,t,a)}))}},function(e,t){e.exports=function(e,t){var a=e.length;for(e.sort(t);a--;)e[a]=e[a].value;return e}},function(e,t,a){e.exports=a(56)(1217)},function(e,t,a){var i=a(548);e.exports=function(e,t,a){for(var n=-1,s=e.criteria,o=t.criteria,r=s.length,l=a.length;++n=l?c:c*("desc"==a[n]?-1:1)}return e.index-t.index}},function(e,t,a){var i=a(332);e.exports=function(e,t){if(e!==t){var a=void 0!==e,n=null===e,s=e==e,o=i(e),r=void 0!==t,l=null===t,c=t==t,d=i(t);if(!l&&!d&&!o&&e>t||o&&r&&c&&!l&&!d||n&&r&&c||!a&&c||!s)return 1;if(!n&&!o&&!d&&e0;--l)if(i=t[l].dequeue()){n=n.concat(r(e,t,a,i,!0));break}}return n}(a.graph,a.buckets,a.zeroIdx);return i.flatten(i.map(c,(function(t){return e.outEdges(t.v,t.w)})),!0)};var o=i.constant(1);function r(e,t,a,n,s){var o=s?[]:void 0;return i.forEach(e.inEdges(n.v),(function(i){var n=e.edge(i),r=e.node(i.v);s&&o.push({v:i.v,w:i.w}),r.out-=n,l(t,a,r)})),i.forEach(e.outEdges(n.v),(function(i){var n=e.edge(i),s=i.w,o=e.node(s);o.in-=n,l(t,a,o)})),e.removeNode(n.v),o}function l(e,t,a){a.out?a.in?e[a.out-a.in+t].enqueue(a):e[e.length-1].enqueue(a):e[0].enqueue(a)}},function(e,t){function a(){var e={};e._next=e._prev=e,this._sentinel=e}function i(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function n(e,t){if("_next"!==e&&"_prev"!==e)return t}e.exports=a,a.prototype.dequeue=function(){var e=this._sentinel,t=e._prev;if(t!==e)return i(t),t},a.prototype.enqueue=function(e){var t=this._sentinel;e._prev&&e._next&&i(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t},a.prototype.toString=function(){for(var e=[],t=this._sentinel,a=t._prev;a!==t;)e.push(JSON.stringify(a,n)),a=a._prev;return"["+e.join(", ")+"]"}},function(e,t,a){"use strict";var i=a(115),n=a(127);e.exports={run:function(e){e.graph().dummyChains=[],i.forEach(e.edges(),(function(t){!function(e,t){var a,i,s,o=t.v,r=e.node(o).rank,l=t.w,c=e.node(l).rank,d=t.name,u=e.edge(t),p=u.labelRank;if(c!==r+1){for(e.removeEdge(t),s=0,++r;rl.lim&&(c=l,d=!0);var u=i.filter(t.edges(),(function(t){return d===j(0,e.node(t.v),c)&&d!==j(0,e.node(t.w),c)}));return i.minBy(u,(function(e){return s(t,e)}))}function h(e,t,a,n){var s=a.v,o=a.w;e.removeEdge(s,o),e.setEdge(n.v,n.w,{}),m(e),u(e,t),function(e,t){var a=i.find(e.nodes(),(function(e){return!t.node(e).parent})),n=r(e,a);n=n.slice(1),i.forEach(n,(function(a){var i=e.node(a).parent,n=t.edge(a,i),s=!1;n||(n=t.edge(i,a),s=!0),t.node(a).rank=t.node(i).rank+(s?n.minlen:-n.minlen)}))}(e,t)}function j(e,t,a){return a.low<=t.lim&&t.lim<=a.lim}e.exports=d,d.initLowLimValues=m,d.initCutValues=u,d.calcCutValue=p,d.leaveEdge=f,d.enterEdge=g,d.exchangeEdges=h},function(e,t,a){var i=a(115);e.exports=function(e){var t=function(e){var t={},a=0;return i.forEach(e.children(),(function n(s){var o=a;i.forEach(e.children(s),n),t[s]={low:o,lim:a++}})),t}(e);i.forEach(e.graph().dummyChains,(function(a){for(var i=e.node(a),n=i.edgeObj,s=function(e,t,a,i){var n,s,o=[],r=[],l=Math.min(t[a].low,t[i].low),c=Math.max(t[a].lim,t[i].lim);n=a;do{n=e.parent(n),o.push(n)}while(n&&(t[n].low>l||c>t[n].lim));for(s=n,n=i;(n=e.parent(n))!==s;)r.push(n);return{path:o.concat(r.reverse()),lca:s}}(e,t,n.v,n.w),o=s.path,r=s.lca,l=0,c=o[l],d=!0;a!==n.w;){if(i=e.node(a),d){for(;(c=o[l])!==r&&e.node(c).maxRank=2),r=d.buildLayerMatrix(e);var g=s(e,r);g0;)t%2&&(a+=l[t+1]),l[t=t-1>>1]+=e.weight;c+=e.weight*a}))),c}e.exports=function(e,t){for(var a=0,i=1;i=e.barycenter)&&(n=t,s=0,o=0,(a=e).weight&&(s+=a.barycenter*a.weight,o+=a.weight),n.weight&&(s+=n.barycenter*n.weight,o+=n.weight),a.vs=n.vs.concat(a.vs),a.barycenter=s/o,a.weight=o,a.i=Math.min(n.i,a.i),n.merged=!0)}}function n(t){return function(a){a.in.push(t),0==--a.indegree&&e.push(a)}}for(;e.length;){var s=e.pop();t.push(s),i.forEach(s.in.reverse(),a(s)),i.forEach(s.out,n(s))}return i.map(i.filter(t,(function(e){return!e.merged})),(function(e){return i.pick(e,["vs","i","barycenter","weight"])}))}(i.filter(a,(function(e){return!e.indegree})))}},function(e,t,a){var i=a(115),n=a(127);function s(e,t,a){for(var n;t.length&&(n=i.last(t)).i<=a;)t.pop(),e.push(n.vs),a++;return a}e.exports=function(e,t){var a,o=n.partition(e,(function(e){return i.has(e,"barycenter")})),r=o.lhs,l=i.sortBy(o.rhs,(function(e){return-e.i})),c=[],d=0,u=0,p=0;r.sort((a=!!t,function(e,t){return e.barycentert.barycenter?1:a?t.i-e.i:e.i-t.i})),p=s(c,l,p),i.forEach(r,(function(e){p+=e.vs.length,c.push(e.vs),d+=e.barycenter*e.weight,u+=e.weight,p=s(c,l,p)}));var m={vs:i.flatten(c,!0)};return u&&(m.barycenter=d/u,m.weight=u),m}},function(e,t,a){var i=a(115),n=a(137).Graph;e.exports=function(e,t,a){var s=function(e){for(var t;e.hasNode(t=i.uniqueId("_root")););return t}(e),o=new n({compound:!0}).setGraph({root:s}).setDefaultNodeLabel((function(t){return e.node(t)}));return i.forEach(e.nodes(),(function(n){var r=e.node(n),l=e.parent(n);(r.rank===t||r.minRank<=t&&t<=r.maxRank)&&(o.setNode(n),o.setParent(n,l||s),i.forEach(e[a](n),(function(t){var a=t.v===n?t.w:t.v,s=o.edge(a,n),r=i.isUndefined(s)?0:s.weight;o.setEdge(a,n,{weight:e.edge(t).weight+r})})),i.has(r,"minRank")&&o.setNode(n,{borderLeft:r.borderLeft[t],borderRight:r.borderRight[t]}))})),o}},function(e,t,a){var i=a(115);e.exports=function(e,t,a){var n,s={};i.forEach(a,(function(a){for(var i,o,r=e.parent(a);r;){if((i=e.parent(r))?(o=s[i],s[i]=r):(o=n,n=r),o&&o!==r)return void t.setEdge(o,r);r=i}}))}},function(e,t,a){"use strict";var i=a(115),n=a(127),s=a(573).positionX;e.exports=function(e){(function(e){var t=n.buildLayerMatrix(e),a=e.graph().ranksep,s=0;i.forEach(t,(function(t){var n=i.max(i.map(t,(function(t){return e.node(t).height})));i.forEach(t,(function(t){e.node(t).y=s+n/2})),s+=n+a}))})(e=n.asNonCompoundGraph(e)),i.forEach(s(e),(function(t,a){e.node(a).x=t}))}},function(e,t,a){"use strict";var i=a(115),n=a(137).Graph,s=a(127);function o(e,t){var a={};return i.reduce(t,(function(t,n){var s=0,o=0,r=t.length,c=i.last(n);return i.forEach(n,(function(t,d){var u=function(e,t){if(e.node(t).dummy)return i.find(e.predecessors(t),(function(t){return e.node(t).dummy}))}(e,t),p=u?e.node(u).order:r;(u||t===c)&&(i.forEach(n.slice(o,d+1),(function(t){i.forEach(e.predecessors(t),(function(i){var n=e.node(i),o=n.order;!(or)&&l(a,t,c)}))}))}return i.reduce(t,(function(t,a){var s,o=-1,r=0;return i.forEach(a,(function(i,l){if("border"===e.node(i).dummy){var c=e.predecessors(i);c.length&&(s=e.node(c[0]).order,n(a,r,l,o,s),r=l,o=s)}n(a,r,a.length,s,t.length)})),a})),a}function l(e,t,a){if(t>a){var i=t;t=a,a=i}var n=e[t];n||(e[t]=n={}),n[a]=!0}function c(e,t,a){if(t>a){var n=t;t=a,a=n}return i.has(e[t],a)}function d(e,t,a,n){var s={},o={},r={};return i.forEach(t,(function(e){i.forEach(e,(function(e,t){s[e]=e,o[e]=e,r[e]=t}))})),i.forEach(t,(function(e){var t=-1;i.forEach(e,(function(e){var l=n(e);if(l.length){l=i.sortBy(l,(function(e){return r[e]}));for(var d=(l.length-1)/2,u=Math.floor(d),p=Math.ceil(d);u<=p;++u){var m=l[u];o[e]===e&&tc)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=s)break;if(d.isMultiLine())t=d.end.row;else if(i==c)break}r=t}}return new n(s,o,r,e.getLine(r).length)},this.getCommentRegionBlock=function(e,t,a){for(var i=t.search(/\s*$/),s=e.getLength(),o=a,r=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ao)return new n(o,i,a,t.length)}}.call(o.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,i){"use strict";var n=e("../lib/oop"),s=e("./text").Mode,o=e("./json_highlight_rules").JsonHighlightRules,r=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,d=e("../worker/worker_client").WorkerClient,u=function(){this.HighlightRules=o,this.$outdent=new r,this.$behaviour=new l,this.foldingRules=new c};n.inherits(u,s),function(){this.getNextLineIndent=function(e,t,a){var i=this.$getIndent(t);return"start"==e&&t.match(/^.*[\{\(\[]\s*$/)&&(i+=a),i},this.checkOutdent=function(e,t,a){return this.$outdent.checkOutdent(t,a)},this.autoOutdent=function(e,t,a){this.$outdent.autoOutdent(t,a)},this.createWorker=function(e){var t=new d(["ace"],a(604),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(u.prototype),t.Mode=u}))},function(e,t){e.exports.id="ace/mode/json_worker",e.exports.src='"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t,a){switch(window.__kbnThemeTag__){case"v8dark":return a(606);case"v8light":return a(608)}},function(e,t,a){var i=a(103),n=a(607);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);i(n,{insert:"head",singleton:!1}),e.exports=n.locals||{}},function(e,t,a){(t=a(104)(!1)).push([e.i,".mlJobSelectorFlyoutBody>.euiFlyoutBody__overflow{padding-top:8px}.mlJobSelector__ganttBar{background-color:#79adda;border-radius:2px;height:12px}.mlJobSelector__ganttBarBackEdge{border-left:1px solid #d6d6d6;border-right:1px solid #d6d6d6;height:16px;margin-bottom:-14px;padding-top:8px}.mlJobSelector__ganttBarDashed{border-top:1px dashed #d6d6d6;height:1px}.mlJobSelector__ganttBarRunning{animation:progress-bar-stripes 2s linear infinite;background-image:linear-gradient(45deg,#ffffff26 25%,#0000 0,#0000 50%,#ffffff26 0,#ffffff26 75%,#0000 0,#0000);background-size:40px 40px}",""]),e.exports=t},function(e,t,a){var i=a(103),n=a(609);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);i(n,{insert:"head",singleton:!1}),e.exports=n.locals||{}},function(e,t,a){(t=a(104)(!1)).push([e.i,".mlJobSelectorFlyoutBody>.euiFlyoutBody__overflow{padding-top:8px}.mlJobSelector__ganttBar{background-color:#79adda;border-radius:2px;height:12px}.mlJobSelector__ganttBarBackEdge{border-left:1px solid #d6d6d6;border-right:1px solid #d6d6d6;height:16px;margin-bottom:-14px;padding-top:8px}.mlJobSelector__ganttBarDashed{border-top:1px dashed #d6d6d6;height:1px}.mlJobSelector__ganttBarRunning{animation:progress-bar-stripes 2s linear infinite;background-image:linear-gradient(45deg,#ffffff26 25%,#0000 0,#0000 50%,#ffffff26 0,#ffffff26 75%,#0000 0,#0000);background-size:40px 40px}",""]),e.exports=t},,,,,,,,,,,,,,,function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(2);t.default=function(e){var t=i.useRef();return i.useEffect((function(){t.current=e})),t.current}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(2);t.default=function(e,t){i.useEffect((function(){return e&&e(),function(){t&&t()}}),[])}}])]);