/*! 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.remoteClusters_bundle_jsonpfunction=window.remoteClusters_bundle_jsonpfunction||[]).push([[1],Array(26).concat([function(e,t,s){e.exports=s(11)(2964)},function(e,t,s){e.exports=s(11)(1466)},function(e,t,s){"use strict";t.__esModule=!0;var r={batch:!0},o=s(45);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||e in t&&t[e]===o[e]||(t[e]=o[e]))}));var a=s(60);t.batch=a.unstable_batchedUpdates,(0,s(34).setBatch)(a.unstable_batchedUpdates)},function(e,t,s){"use strict";var r=s(26).default;t.__esModule=!0,t.default=t.ReactReduxContext=void 0;var o=r(s(15)).default.createContext(null);t.ReactReduxContext=o;var a=o;t.default=a},function(e,t,s){"use strict";t.__esModule=!0,t.createSubscription=function(e,t){var s,a=o;function n(){l.onStateChange&&l.onStateChange()}function i(){var o,i,l;s||(s=t?t.addNestedSub(n):e.subscribe(n),o=(0,r.getBatch)(),i=null,l=null,a={clear:function(){i=null,l=null},notify:function(){o((function(){for(var e=i;e;)e.callback(),e=e.next}))},get:function(){for(var e=[],t=i;t;)e.push(t),t=t.next;return e},subscribe:function(e){var t=!0,s=l={callback:e,next:null,prev:l};return s.prev?s.prev.next=s:i=s,function(){t&&null!==i&&(t=!1,s.next?s.next.prev=s.prev:l=s.prev,s.prev?s.prev.next=s.next:i=s.next)}}})}var l={addNestedSub:function(e){return i(),a.subscribe(e)},notifyNestedSubs:function(){a.notify()},handleChangeWrapper:n,isSubscribed:function(){return Boolean(s)},trySubscribe:i,tryUnsubscribe:function(){s&&(s(),s=void 0,a.clear(),a=o)},getListeners:function(){return a}};return l};var r=s(34),o={notify:function(){},get:function(){return[]}}},function(e,t,s){"use strict";t.__esModule=!0,t.useIsomorphicLayoutEffect=void 0;var r=s(15),o="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?r.useLayoutEffect:r.useEffect;t.useIsomorphicLayoutEffect=o},function(e,t,s){e.exports=s(11)(1467)},function(e,t,s){e.exports=s(11)(2965)},function(e,t,s){"use strict";t.__esModule=!0,t.setBatch=t.getBatch=void 0;var r=function(e){e()};t.setBatch=function(e){return r=e},t.getBatch=function(){return r}},function(e,t,s){"use strict";var r=s(26).default,o=s(33).default;t.__esModule=!0,t.default=function(e,t){void 0===t&&(t={});var s=t,r=s.getDisplayName,o=void 0===r?function(e){return"ConnectAdvanced("+e+")"}:r,d=s.methodName,v=void 0===d?"connectAdvanced":d,y=s.renderCountProp,E=void 0===y?void 0:y,M=s.shouldHandleStateChanges,S=void 0===M||M,F=s.storeKey,k=void 0===F?"store":F,T=(s.withRef,s.forwardRef),L=void 0!==T&&T,P=s.context,w=void 0===P?m.ReactReduxContext:P,_=(0,n.default)(s,p),R=w;return function(t){var s=t.displayName||t.name||"Component",r=o(s),d=(0,a.default)({},_,{getDisplayName:o,methodName:v,renderCountProp:E,shouldHandleStateChanges:S,storeKey:k,displayName:r,wrappedComponentName:s,WrappedComponent:t}),m=_.pure,p=m?l.useMemo:function(e){return e()};function y(s){var r=(0,l.useMemo)((function(){var e=s.reactReduxForwardedRef,t=(0,n.default)(s,j);return[s.context,e,t]}),[s]),o=r[0],i=r[1],m=r[2],v=(0,l.useMemo)((function(){return o&&o.Consumer&&(0,u.isContextConsumer)(l.default.createElement(o.Consumer,null))?o:R}),[o,R]),y=(0,l.useContext)(v),E=Boolean(s.store)&&Boolean(s.store.getState)&&Boolean(s.store.dispatch);Boolean(y)&&Boolean(y.store);var M=E?s.store:y.store,F=(0,l.useMemo)((function(){return function(t){return e(t.dispatch,d)}(M)}),[M]),k=(0,l.useMemo)((function(){if(!S)return b;var e=(0,c.createSubscription)(M,E?null:y.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]}),[M,E,y]),T=k[0],L=k[1],P=(0,l.useMemo)((function(){return E?y:(0,a.default)({},y,{subscription:T})}),[E,y,T]),w=(0,l.useReducer)(x,f,O),_=w[0][0],D=w[1];if(_&&_.error)throw _.error;var N=(0,l.useRef)(),I=(0,l.useRef)(m),A=(0,l.useRef)(),B=(0,l.useRef)(!1),U=p((function(){return A.current&&m===I.current?A.current:F(M.getState(),m)}),[M,_,m]);g(C,[I,N,B,m,U,A,L]),g(h,[S,M,T,F,I,N,B,A,L,D],[M,T,F]);var z=(0,l.useMemo)((function(){return l.default.createElement(t,(0,a.default)({},U,{ref:i}))}),[i,t,U]);return(0,l.useMemo)((function(){return S?l.default.createElement(v.Provider,{value:P},z):z}),[v,z,P])}var M=m?l.default.memo(y):y;if(M.WrappedComponent=t,M.displayName=y.displayName=r,L){var F=l.default.forwardRef((function(e,t){return l.default.createElement(M,(0,a.default)({},e,{reactReduxForwardedRef:t}))}));return F.displayName=r,F.WrappedComponent=t,(0,i.default)(F,t)}return(0,i.default)(M,t)}};var a=r(s(27)),n=r(s(32)),i=r(s(48)),l=o(s(15)),u=s(49),c=s(30),d=s(31),m=s(29),p=["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"],j=["reactReduxForwardedRef"],f=[],b=[null,null];function x(e,t){var s=e[1];return[t.payload,s+1]}function g(e,t,s){(0,d.useIsomorphicLayoutEffect)((function(){return e.apply(void 0,t)}),s)}function C(e,t,s,r,o,a,n){e.current=r,t.current=o,s.current=!1,a.current&&(a.current=null,n())}function h(e,t,s,r,o,a,n,i,l,u){if(e){var c=!1,d=null,m=function(){if(!c){var e,s,m=t.getState();try{e=r(m,o.current)}catch(e){s=e,d=e}s||(d=null),e===a.current?n.current||l():(a.current=e,i.current=e,n.current=!0,u({type:"STORE_UPDATED",payload:{error:s}}))}};return s.onStateChange=m,s.trySubscribe(),m(),function(){if(c=!0,s.tryUnsubscribe(),s.onStateChange=null,d)throw d}}}var O=function(){return[null,0]}},function(e,t,s){"use strict";function r(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}t.__esModule=!0,t.default=function(e,t){if(r(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var s=Object.keys(e),o=Object.keys(t);if(s.length!==o.length)return!1;for(var a=0;a=0;r--){var o=t[r](e);if(o)return o}return function(t,r){throw new Error("Invalid value of type "+typeof e+" for "+s+" argument when connecting component "+r.wrappedComponentName+".")}}function j(e,t){return e===t}function f(e){var t=void 0===e?{}:e,s=t.connectHOC,r=void 0===s?n.default:s,f=t.mapStateToPropsFactories,b=void 0===f?u.default:f,x=t.mapDispatchToPropsFactories,g=void 0===x?l.default:x,C=t.mergePropsFactories,h=void 0===C?c.default:C,O=t.selectorFactory,v=void 0===O?d.default:O;return function(e,t,s,n){void 0===n&&(n={});var l=n,u=l.pure,c=void 0===u||u,d=l.areStatesEqual,f=void 0===d?j:d,x=l.areOwnPropsEqual,C=void 0===x?i.default:x,O=l.areStatePropsEqual,y=void 0===O?i.default:O,E=l.areMergedPropsEqual,M=void 0===E?i.default:E,S=(0,a.default)(l,m),F=p(e,b,"mapStateToProps"),k=p(t,g,"mapDispatchToProps"),T=p(s,h,"mergeProps");return r(v,(0,o.default)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:F,initMapDispatchToProps:k,initMergeProps:T,pure:c,areStatesEqual:f,areOwnPropsEqual:C,areStatePropsEqual:y,areMergedPropsEqual:M},S))}}var b=f();t.default=b},function(e,t,s){"use strict";var r=s(26).default;t.__esModule=!0,t.default=void 0,t.whenMapDispatchToPropsIsFunction=n,t.whenMapDispatchToPropsIsMissing=i,t.whenMapDispatchToPropsIsObject=l;var o=r(s(52)),a=s(37);function n(e){return"function"==typeof e?(0,a.wrapMapToPropsFunc)(e,"mapDispatchToProps"):void 0}function i(e){return e?void 0:(0,a.wrapMapToPropsConstant)((function(e){return{dispatch:e}}))}function l(e){return e&&"object"==typeof e?(0,a.wrapMapToPropsConstant)((function(t){return(0,o.default)(e,t)})):void 0}var u=[n,i,l];t.default=u},function(e,t,s){"use strict";t.__esModule=!0,t.default=function(e,t){var s={},r=function(r){var o=e[r];"function"==typeof o&&(s[r]=function(){return t(o.apply(void 0,arguments))})};for(var o in e)r(o);return s}},function(e,t,s){"use strict";t.__esModule=!0,t.default=function(e){if("object"!=typeof e||null===e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;for(var s=t;null!==Object.getPrototypeOf(s);)s=Object.getPrototypeOf(s);return t===s}},function(e,t,s){"use strict";t.__esModule=!0,t.default=void 0,t.whenMapStateToPropsIsFunction=o,t.whenMapStateToPropsIsMissing=a;var r=s(37);function o(e){return"function"==typeof e?(0,r.wrapMapToPropsFunc)(e,"mapStateToProps"):void 0}function a(e){return e?void 0:(0,r.wrapMapToPropsConstant)((function(){return{}}))}var n=[o,a];t.default=n},function(e,t,s){"use strict";var r=s(26).default;t.__esModule=!0,t.default=void 0,t.defaultMergeProps=a,t.whenMergePropsIsFunction=i,t.whenMergePropsIsOmitted=l,t.wrapMergePropsFunc=n;var o=r(s(27));function a(e,t,s){return(0,o.default)({},s,e,t)}function n(e){return function(t,s){s.displayName;var r,o=s.pure,a=s.areMergedPropsEqual,n=!1;return function(t,s,i){var l=e(t,s,i);return n?o&&a(l,r)||(r=l):(n=!0,r=l),r}}}function i(e){return"function"==typeof e?n(e):void 0}function l(e){return e?void 0:function(){return a}}r(s(38));var u=[i,l];t.default=u},function(e,t,s){"use strict";var r=s(26).default;t.__esModule=!0,t.default=function(e,t){var s=t.initMapStateToProps,r=t.initMapDispatchToProps,l=t.initMergeProps,u=(0,o.default)(t,a),c=s(e,u),d=r(e,u),m=l(e,u);return(u.pure?i:n)(c,d,m,e,u)},t.impureFinalPropsSelectorFactory=n,t.pureFinalPropsSelectorFactory=i;var o=r(s(32)),a=(r(s(57)),["initMapStateToProps","initMapDispatchToProps","initMergeProps"]);function n(e,t,s,r){return function(o,a){return s(e(o,a),t(r,a),a)}}function i(e,t,s,r,o){var a,n,i,l,u,c=o.areStatesEqual,d=o.areOwnPropsEqual,m=o.areStatePropsEqual,p=!1;return function(o,j){return p?function(o,p){var j,f,b=!d(p,n),x=!c(o,a);return a=o,n=p,b&&x?(i=e(a,n),t.dependsOnOwnProps&&(l=t(r,n)),u=s(i,l,n)):b?(e.dependsOnOwnProps&&(i=e(a,n)),t.dependsOnOwnProps&&(l=t(r,n)),u=s(i,l,n)):x?(j=e(a,n),f=!m(j,i),i=j,f&&(u=s(i,l,n)),u):u}(o,j):(i=e(a=o,n=j),l=t(r,n),u=s(i,l,n),p=!0,u)}}},function(e,t,s){"use strict";var r=s(26).default;t.__esModule=!0,t.default=function(e,t,s,r){a(e,"mapStateToProps",r),a(t,"mapDispatchToProps",r),a(s,"mergeProps",r)};var o=r(s(39));function a(e,t,s){if(!e)throw new Error("Unexpected value for "+t+" in "+s+".");"mapStateToProps"!==t&&"mapDispatchToProps"!==t||Object.prototype.hasOwnProperty.call(e,"dependsOnOwnProps")||(0,o.default)("The selector for "+t+" of "+s+" did not specify a value for dependsOnOwnProps.")}},function(e,t,s){"use strict";t.__esModule=!0,t.createDispatchHook=a,t.useDispatch=void 0;var r=s(29),o=s(40);function a(e){void 0===e&&(e=r.ReactReduxContext);var t=e===r.ReactReduxContext?o.useStore:(0,o.createStoreHook)(e);return function(){return t().dispatch}}var n=a();t.useDispatch=n},function(e,t,s){"use strict";t.__esModule=!0,t.createSelectorHook=u,t.useSelector=void 0;var r=s(15),o=s(41),a=s(30),n=s(31),i=s(29),l=function(e,t){return e===t};function u(e){void 0===e&&(e=i.ReactReduxContext);var t=e===i.ReactReduxContext?o.useReduxContext:function(){return(0,r.useContext)(e)};return function(e,s){void 0===s&&(s=l);var o=t(),i=function(e,t,s,o){var i,l=(0,r.useReducer)((function(e){return e+1}),0)[1],u=(0,r.useMemo)((function(){return(0,a.createSubscription)(s,o)}),[s,o]),c=(0,r.useRef)(),d=(0,r.useRef)(),m=(0,r.useRef)(),p=(0,r.useRef)(),j=s.getState();try{if(e!==d.current||j!==m.current||c.current){var f=e(j);i=void 0!==p.current&&t(f,p.current)?p.current:f}else i=p.current}catch(e){throw c.current&&(e.message+="\nThe error may be correlated with this previous error:\n"+c.current.stack+"\n\n"),e}return(0,n.useIsomorphicLayoutEffect)((function(){d.current=e,m.current=j,p.current=i,c.current=void 0})),(0,n.useIsomorphicLayoutEffect)((function(){function e(){try{var e=s.getState();if(e===m.current)return;var r=d.current(e);if(t(r,p.current))return;p.current=r,m.current=e}catch(e){c.current=e}l()}return u.onStateChange=e,u.trySubscribe(),e(),function(){return u.tryUnsubscribe()}}),[s,u]),i}(e,s,o.store,o.subscription);return(0,r.useDebugValue)(i),i}}var c=u();t.useSelector=c},function(e,t,s){"use strict";t.__esModule=!0,t.unstable_batchedUpdates=void 0;var r=s(22);t.unstable_batchedUpdates=r.unstable_batchedUpdates},function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(23),o=s(62),a=r.__importDefault(s(64));t.default=function(e,t){a.default(e,t,o.isDeepEqual)}},function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isDeepEqual=t.off=t.on=t.isClient=void 0;var r=s(23).__importDefault(s(63));t.isClient="object"==typeof window,t.on=function(e){for(var t=[],s=1;s{const n=Object(r.useMemo)((()=>{if(t)return e=>Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(g,null),Object(b.jsx)(t,e))}),[t]);if(n)return Object(b.jsx)(u.Route,d()({},a,{component:n}));if(s||"function"==typeof e){const t="function"==typeof e?e:s;return Object(b.jsx)(u.Route,d()({},a,{render:e=>Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(g,null),t(e))}))}return Object(b.jsx)(u.Route,a,Object(b.jsx)(g,null),e)},g=()=>{const{executionContext:e}=Object(r.useContext)(p).services,t=Object(u.useRouteMatch)();return function(e,t){f()((()=>(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 C=s(24);const h=({children:e,...t})=>Object(b.jsx)(u.Router,t,Object(b.jsx)(C.CompatRouter,null,e));var O=s(25);const v=({legacySwitch:e=!0,children:t})=>{const s=Object(u.useRouteMatch)();return e?Object(b.jsx)(u.Switch,null,t):Object(b.jsx)(C.Routes,null,r.Children.map(t,(e=>{if(o.a.isValidElement(e)&&e.type===x){var r;const a=Object(O.replace)(null==e?void 0:e.props.path,s.url+"/",""),n="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(b.jsx)(C.Route,{path:a,element:Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(g,null),(null==e||null===(r=e.props)||void 0===r?void 0:r.component)&&Object(b.jsx)(e.props.component,null)||n&&n()||t)})}return e})))};var y=s(8),E=s(6),M=s(10);async function S(e){return await Object(M.c)(void 0,e)}async function F(e){const t=Object(M.d)("",e);return await Object(E.d)(t,y.c)}async function k(e){const{name:t,...s}=e,r=Object(M.e)(t,s);return await Object(E.d)(r,y.f)}var T=s(7);var L=s(5),P=s(9);let w,_=!1;function R(e){_=e}function D(){return w}const N=e=>e.clusters.asList,I=e=>e.clusters.byName,A=e=>e.detailPanel.isOpen,B=e=>((e,t)=>I(e)[t])(e,e.detailPanel.clusterName),U=e=>e.detailPanel.clusterName,z=e=>e.clusters.isLoading,W=e=>e.clusters.clusterLoadError,q=e=>e.addCluster.isAdding,H=e=>e.addCluster.error,V=e=>I(e)[e.editCluster.clusterName],K=e=>e.editCluster.isEditing,$=e=>e.editCluster.error,G=e=>e.removeCluster.isRemoving;var Y=s(0);const Q="OPEN_DETAIL_PANEL",J="CLOSE_DETAIL_PANEL",Z="LOAD_CLUSTERS_START",X="LOAD_CLUSTERS_SUCCESS",ee="LOAD_CLUSTERS_FAILURE",te="REFRESH_CLUSTERS_SUCCESS",se="ADD_CLUSTER_START",re="ADD_CLUSTER_SUCCESS",oe="ADD_CLUSTER_FAILURE",ae="CLEAR_ADD_CLUSTER_ERRORS",ne="EDIT_CLUSTER_START",ie="EDIT_CLUSTER_STOP",le="EDIT_CLUSTER_SAVE",ue="EDIT_CLUSTER_SUCCESS",ce="EDIT_CLUSTER_FAILURE",de="CLEAR_EDIT_CLUSTER_ERRORS",me="REMOVE_CLUSTERS_START",pe="REMOVE_CLUSTERS_FINISH",je=({name:e})=>t=>{const{history:s}=D(),r=s.location.search,{cluster:o}=Object(i.extractQueryParams)(r);o!==e&&s.replace({search:`?cluster=${e}`}),t({type:Q,payload:{clusterName:e}})},fe=()=>e=>{e({type:J})};function be(e,t=null){return 1!==e?Y.i18n.translate("xpack.remoteClusters.removeAction.errorMultipleNotificationTitle",{defaultMessage:"Error removing {count} remote clusters",values:{count:e}}):t?Y.i18n.translate("xpack.remoteClusters.removeAction.errorSingleNotificationTitle",{defaultMessage:"Error removing remote cluster '{name}'",values:{name:t}}):void 0}const xe=()=>async e=>{let t;e({type:Z});try{t=await S()}catch(t){return e({type:ee,payload:{error:t}})}e({type:X,payload:{clusters:t}})};var ge=s(17),Ce=s(18),he=s(4),Oe=s(1),ve=s.n(Oe),ye=s(2);function Ee({isConnected:e,mode:t}){const s=Y.i18n.translate("xpack.remoteClusters.connectedStatus.notConnectedToolTip",{defaultMessage:"Ensure the seed nodes are configured with the remote cluster's transport port, not the http port."});return Object(b.jsx)(Ce.EuiFlexGroup,{gutterSize:"s",alignItems:"center"},Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiBadge,{color:e?"success":"danger","data-test-subj":"remoteClusterConnectionStatusMessage"},e?Y.i18n.translate("xpack.remoteClusters.connectedStatus.connectedAriaLabel",{defaultMessage:"Connected"}):Y.i18n.translate("xpack.remoteClusters.connectedStatus.notConnectedAriaLabel",{defaultMessage:"Not connected"}))),!e&&t===ye.d&&Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiIconTip,{color:"subdued",content:s})))}class remove_cluster_button_provider_RemoveClusterButtonProvider extends r.Component{constructor(...e){super(...e),ve()(this,"state",{isModalOpen:!1}),ve()(this,"onMouseOverModal",(e=>{e.stopPropagation()})),ve()(this,"showConfirmModal",(()=>{this.setState({isModalOpen:!0})})),ve()(this,"closeConfirmModal",(()=>{this.setState({isModalOpen:!1})})),ve()(this,"onConfirm",(()=>{const{removeClusters:e,clusterNames:t}=this.props;e(t),this.closeConfirmModal()}))}render(){const{clusterNames:e,children:t}=this.props,{isModalOpen:s}=this.state,a=1===e.length;let n;if(s){const t=a?Y.i18n.translate("xpack.remoteClusters.removeButton.confirmModal.deleteSingleClusterTitle",{defaultMessage:"Remove remote cluster '{name}'?",values:{name:e[0]}}):Y.i18n.translate("xpack.remoteClusters.removeButton.confirmModal.multipleDeletionTitle",{defaultMessage:"Remove {count} remote clusters?",values:{count:e.length}}),s=Object(b.jsx)(r.Fragment,null,Object(b.jsx)("p",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.removeButton.confirmModal.multipleDeletionDescription",defaultMessage:"You are about to remove these remote clusters:"})),Object(b.jsx)("ul",null,e.map((e=>Object(b.jsx)("li",{key:e},e)))));n=Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(Ce.EuiConfirmModal,{"data-test-subj":"remoteClustersDeleteConfirmModal",title:t,onCancel:this.closeConfirmModal,onConfirm:this.onConfirm,cancelButtonText:Y.i18n.translate("xpack.remoteClusters.removeButton.confirmModal.cancelButtonText",{defaultMessage:"Cancel"}),buttonColor:"danger",confirmButtonText:Y.i18n.translate("xpack.remoteClusters.removeButton.confirmModal.confirmButtonText",{defaultMessage:"Remove"}),onMouseOver:this.onMouseOverModal},!a&&s))}return Object(b.jsx)(r.Fragment,null,t(this.showConfirmModal),n)}}const Me=Object(n.connect)(void 0,(e=>({removeClusters:t=>{e((e=>async(t,s)=>{t({type:me});let r=[],o=[];var a;if(await Promise.all([(a=e.join(","),Object(M.b)(a)).then((e=>{({itemsDeleted:r,errors:o}=e)})),new Promise((e=>setTimeout(e,500)))]).catch((t=>{var s;const r=be(e.length,e[0]);T.c.addDanger({title:r,text:null===(s=t.body)||void 0===s?void 0:s.message})})),o.length>0){const{name:e,error:{payload:{message:t}}}=o[0],s=be(o.length,e);T.c.addDanger({title:s,text:t})}r.length>0&&(Object(E.c)(E.a.COUNT,e.length>1?y.e:y.d),1===r.length?T.c.addSuccess(Y.i18n.translate("xpack.remoteClusters.removeAction.successSingleNotificationTitle",{defaultMessage:"Remote cluster '{name}' was removed",values:{name:r[0]}})):T.c.addSuccess(Y.i18n.translate("xpack.remoteClusters.removeAction.successMultipleNotificationTitle",{defaultMessage:"{count} remote clusters were removed",values:{count:r.length}})));const n=U(s());n&&e.includes(n)&&t(fe()),t({type:pe,payload:r})})(t))}})))(remove_cluster_button_provider_RemoveClusterButtonProvider),Se=(e,t)=>{if(t){const s=t.toLowerCase();return e.filter((e=>{const{name:t,seeds:r,proxyAddress:o}=e;return!!t.toLowerCase().toLowerCase().includes(s)||!(!o||!o.toLowerCase().includes(s))||!!r&&r.some((e=>e.includes(s)))}))}return e};class remote_cluster_table_RemoteClusterTable extends r.Component{static getDerivedStateFromProps(e,t){const{clusters:s}=e,{prevClusters:r,queryText:o}=t;return r!==s?{prevClusters:s,filteredClusters:Se(s,o)}:null}constructor(e){super(e),ve()(this,"onSearch",(({query:e})=>{if(!e)return;const{clusters:t}=this.props,{text:s}=e;this.setState({queryText:s,filteredClusters:Se(t,s)})})),this.state={prevClusters:e.clusters,selectedItems:[],filteredClusters:e.clusters,queryText:""}}render(){const{openDetailPanel:e}=this.props,{selectedItems:t,filteredClusters:s}=this.state,{history:r}=D(),o=[{field:"name",name:Y.i18n.translate("xpack.remoteClusters.remoteClusterList.table.nameColumnTitle",{defaultMessage:"Name"}),sortable:!0,truncateText:!1,render:(t,{isConfiguredByNode:s,hasDeprecatedProxySetting:r})=>{const o=Object(b.jsx)(Ce.EuiLink,{"data-test-subj":"remoteClustersTableListClusterLink",onClick:()=>{Object(E.c)(E.a.CLICK,y.g),e(t)}},t);return s?Object(b.jsx)(Ce.EuiFlexGroup,{gutterSize:"s",alignItems:"center"},Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},o),Object(b.jsx)(Ce.EuiFlexItem,{grow:!1,"data-test-subj":"remoteClustersTableListClusterDefinedByNodeTooltip"},Object(b.jsx)(Ce.EuiIconTip,{type:"iInCircle",color:"subdued",content:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterList.table.isConfiguredByNodeMessage",defaultMessage:"Defined in elasticsearch.yml"})}))):r?Object(b.jsx)(Ce.EuiFlexGroup,{gutterSize:"s",alignItems:"center"},Object(b.jsx)(Ce.EuiFlexItem,{grow:!1,"data-test-subj":"remoteClustersTableListClusterWithDeprecatedSettingTooltip"},o),Object(b.jsx)(Ce.EuiFlexItem,{grow:!1,"data-test-subj":"remoteClustersTableListDeprecatedSetttingsTooltip"},Object(b.jsx)(Ce.EuiIconTip,{type:"warning",color:"warning",content:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterList.table.hasDeprecatedSettingMessage",defaultMessage:"Edit this cluster to update the deprecated settings."})}))):o}},{field:"isConnected",name:Y.i18n.translate("xpack.remoteClusters.remoteClusterList.table.connectedColumnTitle",{defaultMessage:"Status"}),sortable:!0,render:(e,{mode:t})=>Object(b.jsx)(Ee,{isConnected:e,mode:t}),width:"240px"},{field:"mode",name:Y.i18n.translate("xpack.remoteClusters.remoteClusterList.table.modeColumnTitle",{defaultMessage:"Mode"}),sortable:!0,render:e=>{let t;return t=e===ye.c?e:Y.i18n.translate("xpack.remoteClusters.remoteClusterList.table.sniffModeDescription",{defaultMessage:"default"}),Object(b.jsx)(Ce.EuiFlexItem,{grow:!1,className:"remoteClustersConnectionMode__message"},Object(b.jsx)(Ce.EuiText,{id:"xpack.remoteClusters.remoteClusterList.table.sniffModeDescription","data-test-subj":"remoteClusterConnectionModeMessage",size:"s"},t))}},{field:"mode",name:Y.i18n.translate("xpack.remoteClusters.remoteClusterList.table.addressesColumnTitle",{defaultMessage:"Addresses"}),"data-test-subj":"remoteClustersAddress",truncateText:!0,render:(e,{seeds:t,proxyAddress:s})=>{const r=e===ye.c?s:t.join(", ");return Object(b.jsx)(Ce.EuiFlexItem,{grow:!1,className:"remoteClustersConnectionAddress__message"},Object(b.jsx)(Ce.EuiText,{"data-test-subj":"remoteClusterConnectionAddressMessage",size:"s"},r))}},{field:"mode",name:Y.i18n.translate("xpack.remoteClusters.remoteClusterList.table.connectionsColumnTitle",{defaultMessage:"Connections"}),sortable:!0,width:"160px",align:"right",render:(e,{connectedNodesCount:t,connectedSocketsCount:s})=>{const r=e===ye.c?s:t;return Object(b.jsx)(Ce.EuiFlexItem,{grow:!1,className:"remoteClustersNodeCount__message"},Object(b.jsx)(Ce.EuiText,{"data-test-subj":"remoteClusterNodeCountMessage",size:"s"},r))}},{name:Y.i18n.translate("xpack.remoteClusters.remoteClusterList.table.actionsColumnTitle",{defaultMessage:"Actions"}),width:"100px",actions:[{render:({name:e,isConfiguredByNode:t})=>{const s=t?Y.i18n.translate("xpack.remoteClusters.remoteClusterList.table.actionBlockedEditDescription",{defaultMessage:"Remote clusters defined in elasticsearch.yml can't be edited"}):Y.i18n.translate("xpack.remoteClusters.remoteClusterList.table.actionEditDescription",{defaultMessage:"Edit remote cluster"});return Object(b.jsx)(Ce.EuiToolTip,{content:s,delay:"long"},Object(b.jsx)(Ce.EuiButtonIcon,d()({"data-test-subj":"remoteClusterTableRowEditButton","aria-label":s,iconType:"pencil",color:"primary",isDisabled:t},Object(l.reactRouterNavigate)(r,`/edit/${e}`),{disabled:t})))}},{render:({name:e,isConfiguredByNode:t})=>{const s=t?Y.i18n.translate("xpack.remoteClusters.remoteClusterList.table.actionBlockedDeleteDescription",{defaultMessage:"Remote clusters defined in elasticsearch.yml can't be deleted"}):Y.i18n.translate("xpack.remoteClusters.remoteClusterList.table.actionDeleteDescription",{defaultMessage:"Delete remote cluster"});return Object(b.jsx)(Ce.EuiToolTip,{content:s,delay:"long"},Object(b.jsx)(Me,{clusterNames:[e]},(e=>Object(b.jsx)(Ce.EuiButtonIcon,{"data-test-subj":"remoteClusterTableRowRemoveButton","aria-label":s,iconType:"trash",color:"danger",isDisabled:t,onClick:e}))))}}]}],a={toolsLeft:t.length?Object(b.jsx)(Me,{clusterNames:t.map((({name:e})=>e))},(e=>Object(b.jsx)(Ce.EuiButton,{color:"danger",onClick:e,"data-test-subj":"remoteClusterBulkDeleteButton"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterList.table.removeButtonLabel",defaultMessage:"Remove {count, plural, one {remote cluster} other {{count} remote clusters}}",values:{count:t.length}})))):void 0,toolsRight:Object(b.jsx)(Ce.EuiButton,d()({},Object(l.reactRouterNavigate)(r,"/add"),{fill:!0,iconType:"plusInCircle","data-test-subj":"remoteClusterCreateButton"}),Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterList.connectButtonLabel",defaultMessage:"Add a remote cluster"})),onChange:this.onSearch,box:{incremental:!0,"data-test-subj":"remoteClusterSearch"}},n={onSelectionChange:e=>this.setState({selectedItems:e}),selectable:({isConfiguredByNode:e})=>!e};return Object(b.jsx)(Ce.EuiInMemoryTable,{items:s,itemId:"name",columns:o,search:a,pagination:{initialPageSize:20,pageSizeOptions:[10,20,50]},sorting:{sort:{field:"name",direction:"asc"}},selection:n,isSelectable:!0,"data-test-subj":"remoteClusterListTable"})}}ve()(remote_cluster_table_RemoteClusterTable,"defaultProps",{clusters:[]});const Fe=Object(n.connect)(void 0,(e=>({openDetailPanel:t=>{e(je({name:t}))}})))(remote_cluster_table_RemoteClusterTable),ke=Object(r.createContext)({}),Te=({children:e,context:t})=>Object(b.jsx)(ke.Provider,{value:t},e),Le=()=>{const e=Object(r.useContext)(ke);if(!e)throw new Error("Cannot use outside of app context");return e},Pe=({closeModal:e,onSubmit:t})=>{const[s,o]=Object(r.useState)(!1),a=Object(Ce.useGeneratedHtmlId)({prefix:"modalForm"}),n=Object(Ce.useGeneratedHtmlId)({prefix:"checkBoxId"});return Object(b.jsx)(Ce.EuiModal,{onClose:e},Object(b.jsx)(Ce.EuiModalHeader,null,Object(b.jsx)(Ce.EuiModalHeaderTitle,null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.clusterWizard.trustStep.modal.title",defaultMessage:"Confirm your configuration"}))),Object(b.jsx)(Ce.EuiModalBody,null,Object(b.jsx)(Ce.EuiText,null,Object(b.jsx)("p",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.clusterWizard.trustStep.body",defaultMessage:"Have you set up trust to connect to your remote cluster?"}))),Object(b.jsx)(Ce.EuiSpacer,{size:"m"}),Object(b.jsx)(Ce.EuiForm,{id:a,component:"form",onSubmit:s=>{s.preventDefault(),e(),t()}},Object(b.jsx)(Ce.EuiFormRow,null,Object(b.jsx)(Ce.EuiCheckbox,{id:n,label:Y.i18n.translate("xpack.remoteClusters.clusterWizard.trustStep.modal.checkbox",{defaultMessage:"Yes, I have setup trust"}),checked:s,onChange:()=>o(!s),"data-test-subj":"remoteClusterTrustCheckbox"})))),Object(b.jsx)(Ce.EuiModalFooter,null,Object(b.jsx)(Ce.EuiButtonEmpty,{onClick:e},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.clusterWizard.trustStep.modal.cancelButton",defaultMessage:"No, go back"})),Object(b.jsx)(Ce.EuiButton,{fill:!0,type:"submit",form:a,disabled:!s,"data-test-subj":"remoteClusterTrustSubmitButton"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.clusterWizard.trustStep.modal.createCluster",defaultMessage:"Add remote cluster"}))))},we=400,_e={apiKeyTitle:Y.i18n.translate("xpack.remoteClusters.clusterWizard.trustStep.setupWithApiKeys.title",{defaultMessage:"API keys"}),apiKeyBadge:Y.i18n.translate("xpack.remoteClusters.clusterWizard.trustStep.setupWithApiKeys.badge",{defaultMessage:"BETA"}),apiKeyDescription:Y.i18n.translate("xpack.remoteClusters.clusterWizard.trustStep.setupWithApiKeys.description",{defaultMessage:"Fine-grained access to remote indices. You need an API key provided by the remote cluster administrator."}),certTitle:Y.i18n.translate("xpack.remoteClusters.clusterWizard.trustStep.setupWithCert.title",{defaultMessage:"Certificates"}),certDescription:Y.i18n.translate("xpack.remoteClusters.clusterWizard.trustStep.setupWithCert.description",{defaultMessage:"Full access to the remote cluster. You need TLS certificates from the remote cluster."})},Re={cert:he.d,apiKey:he.c,cloud:he.a},De=({onBack:e,onSubmit:t,isSaving:s})=>{const[a,n]=Object(r.useState)(!1),{canUseAPIKeyTrustModel:i,isCloudEnabled:l}=Object(r.useContext)(ke);return Object(b.jsx)("div",null,Object(b.jsx)(Ce.EuiText,{size:"m",textAlign:"center"},Object(b.jsx)("p",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.clusterWizard.trustStep.title",defaultMessage:"Set up an authentication mechanism to connect to the remote cluster. Complete{br} this step using the instructions in our docs before continuing.",values:{br:Object(b.jsx)("br",null)}}))),Object(b.jsx)(Ce.EuiSpacer,{size:"xxl"}),Object(b.jsx)(Ce.EuiFlexGroup,{wrap:!0,justifyContent:"center"},i&&Object(b.jsx)(Ce.EuiFlexItem,{style:{maxWidth:we}},Object(b.jsx)(Ce.EuiCard,{title:_e.apiKeyTitle,paddingSize:"l",betaBadgeProps:{label:_e.apiKeyBadge,color:"accent"},"data-test-subj":"setupTrustApiKeyCard"},Object(b.jsx)(Ce.EuiText,{size:"s"},Object(b.jsx)("p",null,_e.apiKeyDescription)),Object(b.jsx)(Ce.EuiSpacer,{size:"xl"}),Object(b.jsx)(Ce.EuiButton,{href:l?Re.cloud:Re.apiKey,target:"_blank","data-test-subj":"setupTrustApiKeyCardDocs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.clusterWizard.trustStep.docs",defaultMessage:"View instructions"})),Object(b.jsx)(Ce.EuiSpacer,{size:"xl"}),Object(b.jsx)(Ce.EuiText,{size:"xs",color:"subdued"},Object(b.jsx)("p",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.clusterWizard.trustStep.apiKeyNote",defaultMessage:"Both clusters must be on version {minAllowedVersion} or above.",values:{minAllowedVersion:"8.10"}}))))),Object(b.jsx)(Ce.EuiFlexItem,{style:{maxWidth:we}},Object(b.jsx)(Ce.EuiCard,{title:Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(Ce.EuiSpacer,{size:"s"}),_e.certTitle),paddingSize:"l","data-test-subj":"setupTrustCertCard"},Object(b.jsx)(Ce.EuiText,{size:"s"},Object(b.jsx)("p",null,_e.certDescription)),Object(b.jsx)(Ce.EuiSpacer,{size:"xl"}),Object(b.jsx)(Ce.EuiButton,{href:l?Re.cloud:Re.cert,target:"_blank","data-test-subj":"setupTrustCertCardDocs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.clusterWizard.trustStep.docs",defaultMessage:"View instructions"}))))),Object(b.jsx)(Ce.EuiSpacer,{size:"xxl"}),Object(b.jsx)(Ce.EuiFlexGroup,{wrap:!0,justifyContent:"center"},Object(b.jsx)(Ce.EuiFlexItem,{style:{maxWidth:we}},Object(b.jsx)(Ce.EuiFlexGroup,{justifyContent:"flexStart"},Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiButtonEmpty,{"data-test-subj":"setupTrustBackButton",iconType:"arrowLeft",onClick:e},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.clusterWizard.trustStep.backButtonLabel",defaultMessage:"Back"}))))),Object(b.jsx)(Ce.EuiFlexItem,{style:{maxWidth:we}},Object(b.jsx)(Ce.EuiFlexGroup,{justifyContent:"flexEnd"},Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiButton,{"data-test-subj":"setupTrustDoneButton",color:"primary",fill:!0,isLoading:s,onClick:()=>n(!0)},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.clusterWizard.trustStep.doneButtonLabel",defaultMessage:"Add remote cluster"}))))),a&&Object(b.jsx)(Pe,{closeModal:()=>n(!1),onSubmit:t})))};class request_flyout_RequestFlyout extends r.PureComponent{render(){const{close:e,cluster:t}=this.props,{name:s}=t,r=JSON.stringify(function(e){if(!e||"object"!=typeof e)throw new Error("Unable to serialize cluster");const{name:t,seeds:s,skipUnavailable:r,mode:o,nodeConnections:a,proxyAddress:n,proxySocketConnections:i,serverName:l,hasDeprecatedProxySetting:u}=e,c={skip_unavailable:"boolean"==typeof r?r:null,mode:o||null,proxy_address:n||null,proxy_socket_connections:i||null,server_name:l||null,seeds:s||null,node_connections:a||null};return u&&(c.proxy=null),{persistent:{cluster:{remote:{[t]:c}}}}}(t),null,2),o=`PUT _cluster/settings\n${r}`;return Object(b.jsx)(Ce.EuiFlyout,{maxWidth:480,onClose:e},Object(b.jsx)(Ce.EuiFlyoutHeader,null,Object(b.jsx)(Ce.EuiTitle,{"data-test-subj":"remoteClusterRequestFlyoutTitle"},Object(b.jsx)("h2",null,s?Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.requestFlyout.namedTitle",defaultMessage:"Request for '{name}'",values:{name:s}}):Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.requestFlyout.unnamedTitle",defaultMessage:"Request"})))),Object(b.jsx)(Ce.EuiFlyoutBody,null,Object(b.jsx)(Ce.EuiText,null,Object(b.jsx)("p",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.requestFlyout.descriptionText",defaultMessage:"This Elasticsearch request will create or update this remote cluster."}))),Object(b.jsx)(Ce.EuiSpacer,null),Object(b.jsx)(Ce.EuiCodeBlock,{language:"json",isCopyable:!0},o)),Object(b.jsx)(Ce.EuiFlyoutFooter,null,Object(b.jsx)(Ce.EuiButtonEmpty,{iconType:"cross",onClick:e,flush:"left"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.requestFlyout.closeButtonLabel",defaultMessage:"Close"}))))}}function Ne(e){if(!e||!e.trim())return Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.form.errors.nameMissing",defaultMessage:"Name is required."});if(e.includes(" "))return Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.form.errors.illegalSpace",defaultMessage:"Spaces are not allowed in the name."});const t=e.match(/[^a-zA-Z\d\-_]/g);return t?Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.form.errors.illegalCharacters",defaultMessage:"Remove the {characterListLength, plural, one {character} other {characters}} {characterList} from the name.",values:{characterList:Object(b.jsx)("strong",null,t.join(" ")),characterListLength:t.length}}):null}function Ie(e){return!!e&&!e.split(":")[0].split(".").some((e=>{var t;if(!e)return!0;const[s]=null!==(t=e.match(/[A-Za-z0-9\-]*/))&&void 0!==t?t:[];return s!==e}))}function Ae(e){var t;if(!e)return!1;const s=e.split(":");if(2!==s.length)return!1;const r=s[1];return!!r&&(null!==(t=r.match(/[0-9]*/))&&void 0!==t?t:[])[0]===r}function Be(e,t){return e.some((e=>Boolean(e.trim())))||t?null:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.form.errors.seedMissing",defaultMessage:"At least one seed node is required."})}function Ue(e){const t=[];return e?(Ie(e)||t.push(Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.localSeedError.invalidCharactersMessage",defaultMessage:"Seed node must use host:port format. Example: 127.0.0.1:9400, localhost:9400. Hosts can only consist of letters, numbers, and dashes."})),Ae(e)||t.push(Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.localSeedError.invalidPortMessage",defaultMessage:"A port is required."})),t):t}function ze(e){return e&&e.trim()?null:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.form.errors.serverNameMissing",defaultMessage:"A server name is required."})}const We={urlEmpty:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.cloudDeploymentForm.urlRequiredError",defaultMessage:"A url is required."}),urlInvalid:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.cloudDeploymentForm.urlInvalidError",defaultMessage:"Url is invalid"})},qe="9400",He={proxyAddress:"",serverName:""},Ve=new RegExp(/^https?:\/\//),Ke=e=>{if(!e)return!0;const{proxyAddress:t,serverName:s}=e;if(!t&&!s)return!0;const r=(null!=t?t:"").split(":"),o=r[0];return r[1]===qe&&o===s},$e=e=>{var t;return(e=(null!==(t=e)&&void 0!==t?t:"").trim().toLowerCase()).replace(Ve,"")},Ge=e=>e?Ie(e=$e(e))?null:We.urlInvalid:We.urlEmpty,Ye=(e,t)=>{const{name:s,seeds:r=[],mode:o,proxyAddress:a,serverName:n,cloudUrlEnabled:i,cloudUrl:l}=e;return{name:Ne(s),seeds:o===ye.d?Be(r):null,proxyAddress:i||o!==ye.c?null:(u=a,u?Ie(u)?Ae(u)?null:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.addressError.invalidPortMessage",defaultMessage:"A port is required."}):Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.proxyError.invalidCharactersMessage",defaultMessage:"Address must use host:port format. Example: 127.0.0.1:9400, localhost:9400. Hosts can only consist of letters, numbers, and dashes."}):Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.proxyError.missingProxyMessage",defaultMessage:"A proxy address is required."})),serverName:!i&&t&&o===ye.c?ze(n):null,cloudUrl:i?Ge(l):null};var u},Qe=({fields:e,fieldsErrors:t,areErrorsVisible:s,onFieldsChange:a})=>{const[n,i]=Object(r.useState)([]),{seeds:l=[],nodeConnections:u}=e,{seeds:c}=t,d=Boolean(s&&c),m=d||0!==n.length,p=d&&c?n.concat(c):n,j=l.map((e=>({label:e})));return Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(Ce.EuiFormRow,{"data-test-subj":"remoteClusterFormSeedNodesFormRow",label:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldSeedsLabel",defaultMessage:"Seed nodes"}),helpText:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldSeedsHelpText",defaultMessage:"An IP address or host name, followed by the {transportPort} of the remote cluster. Specify multiple seed nodes so discovery doesn't fail if a node is unavailable.",values:{transportPort:Object(b.jsx)(Ce.EuiLink,{href:he.i,target:"_blank"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.sectionSeedsHelpText.transportPortLinkText",defaultMessage:"transport port"}))}}),isInvalid:m,error:p,fullWidth:!0},Object(b.jsx)(Ce.EuiComboBox,{noSuggestions:!0,placeholder:Y.i18n.translate("xpack.remoteClusters.remoteClusterForm.fieldSeedsPlaceholder",{defaultMessage:"host:port"}),selectedOptions:j,onCreateOption:e=>{if(!e)return;const t=Ue(e);if(0!==t.length)return i(t),!1;const s=l.slice(0);s.push(e.toLowerCase()),a({seeds:s})},onChange:e=>a({seeds:e.map((({label:e})=>e))}),onSearchChange:e=>{if(!e)return;const t=e&&0!==Ue(e).length?n:[];l.includes(e)&&t.push(Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.localSeedError.duplicateMessage",defaultMessage:"Duplicate seed nodes aren't allowed.`"})),i(t)},isInvalid:m,fullWidth:!0,"data-test-subj":"remoteClusterFormSeedsInput"})),Object(b.jsx)(Ce.EuiFormRow,{"data-test-subj":"remoteClusterFormNodeConnectionsFormRow",label:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldNodeConnectionsLabel",defaultMessage:"Node connections"}),helpText:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldNodeConnectionsHelpText",defaultMessage:"The number of gateway nodes to connect to for this cluster."}),fullWidth:!0},Object(b.jsx)(Ce.EuiFieldNumber,{value:u||"",onChange:e=>a({nodeConnections:Number(e.target.value)}),fullWidth:!0})))},Je=()=>{const[e,t]=Object(r.useState)(!1),{cloudBaseUrl:s}=Le();return Object(b.jsx)(Ce.EuiPopover,{button:Object(b.jsx)(Ce.EuiText,{size:"xs"},Object(b.jsx)(Ce.EuiLink,{onClick:()=>{t(!e)}},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.cloudUrlHelp.buttonLabel",defaultMessage:"Need help?"}))),isOpen:e,closePopover:()=>t(!1),anchorPosition:"upCenter"},Object(b.jsx)(Ce.EuiPopoverTitle,null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.cloudUrlHelp.popoverTitle",defaultMessage:"How to find your Elasticsearch endpoint URL"})),Object(b.jsx)(Ce.EuiText,{size:"s",style:{maxWidth:500}},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.cloudUrlHelp.stepOneText",defaultMessage:"Open the {deploymentsLink}, select the remote deployment and copy the {elasticsearch} endpoint URL.",values:{deploymentsLink:Object(b.jsx)(Ce.EuiLink,{external:!0,href:`${s}/deployments`,target:"_blank"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.cloudUrlHelpModal.deploymentsLink",defaultMessage:"deployments page"})),elasticsearch:Object(b.jsx)("strong",null," Elasticsearch")}})))},Ze=e=>{const{fields:t,fieldsErrors:s,areErrorsVisible:r,onFieldsChange:a}=e,{isCloudEnabled:n}=Le(),{proxyAddress:i,serverName:l,proxySocketConnections:u,cloudUrl:c,cloudUrlEnabled:d}=t,{proxyAddress:m,serverName:p,cloudUrl:j}=s;return Object(b.jsx)(o.a.Fragment,null,d?Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(Ce.EuiFormRow,{"data-test-subj":"remoteClusterFormCloudUrlFormRow",label:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldCloudUrlLabel",defaultMessage:"Elasticsearch endpoint URL"}),labelAppend:Object(b.jsx)(Je,null),isInvalid:Boolean(r&&j),error:j,fullWidth:!0,helpText:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldCloudUrlHelpText",defaultMessage:"The protocol (https://) and port values are optional."})},Object(b.jsx)(Ce.EuiFieldText,{value:c,onChange:e=>a({cloudUrl:e.target.value}),isInvalid:Boolean(r&&j),"data-test-subj":"remoteClusterFormCloudUrlInput",fullWidth:!0}))):Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(Ce.EuiFormRow,{"data-test-subj":"remoteClusterFormProxyAddressFormRow",label:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldProxyAddressLabel",defaultMessage:"Proxy address"}),helpText:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldProxyAddressHelpText",defaultMessage:"The address to use for remote connections."}),isInvalid:Boolean(r&&m),error:m,fullWidth:!0},Object(b.jsx)(Ce.EuiFieldText,{value:i,placeholder:Y.i18n.translate("xpack.remoteClusters.remoteClusterForm.fieldProxyAddressPlaceholder",{defaultMessage:"host:port"}),onChange:e=>a({proxyAddress:e.target.value}),isInvalid:Boolean(r&&m),"data-test-subj":"remoteClusterFormProxyAddressInput",fullWidth:!0})),Object(b.jsx)(Ce.EuiFormRow,{"data-test-subj":"remoteClusterFormServerNameFormRow",isInvalid:Boolean(r&&p),error:p,label:n?Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldServerNameRequiredLabel",defaultMessage:"Server name"}):Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldServerNameOptionalLabel",defaultMessage:"Server name (optional)"}),helpText:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldServerNameHelpText",defaultMessage:"A string sent in the server_name field of the TLS Server Name Indication extension if TLS is enabled. {learnMoreLink}",values:{learnMoreLink:Object(b.jsx)(Ce.EuiLink,{href:he.f,target:"_blank"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldServerNameHelpText.learnMoreLinkLabel",defaultMessage:"Learn more."}))}}),fullWidth:!0},Object(b.jsx)(Ce.EuiFieldText,{value:l,onChange:e=>a({serverName:e.target.value}),isInvalid:Boolean(r&&p),fullWidth:!0}))),Object(b.jsx)(Ce.EuiFormRow,{"data-test-subj":"remoteClusterFormProxySocketConnectionsFormRow",label:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldProxySocketConnectionsLabel",defaultMessage:"Socket connections"}),helpText:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldSocketConnectionsHelpText",defaultMessage:"The number of connections to open per remote cluster."}),fullWidth:!0},Object(b.jsx)(Ce.EuiFieldNumber,{value:u||"",onChange:e=>a({proxySocketConnections:Number(e.target.value)}),fullWidth:!0})))},Xe=e=>{const{fields:t,onFieldsChange:s}=e,{mode:r,cloudUrlEnabled:a}=t,{isCloudEnabled:n}=Le();return Object(b.jsx)(Ce.EuiDescribedFormGroup,{title:Object(b.jsx)(Ce.EuiTitle,{size:"s"},Object(b.jsx)("h2",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.sectionModeTitle",defaultMessage:"Connection mode"}))),description:Object(b.jsx)(o.a.Fragment,null,n?Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.sectionModeCloudDescription",defaultMessage:"Automatically configure the remote cluster by using the Elasticsearch endpoint URL of the remote deployment or enter the proxy address and server name manually."}),Object(b.jsx)(Ce.EuiFormRow,{hasEmptyLabelSpace:!0,fullWidth:!0},Object(b.jsx)(Ce.EuiSwitch,{label:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.manualModeFieldLabel",defaultMessage:"Manually enter proxy address and server name"}),checked:!a,"data-test-subj":"remoteClusterFormCloudUrlToggle",onChange:e=>s({cloudUrlEnabled:!e.target.checked})})),Object(b.jsx)(Ce.EuiSpacer,{size:"s"})):Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.sectionModeDescription",defaultMessage:"Use seed nodes by default, or switch to proxy mode."}),Object(b.jsx)(Ce.EuiFormRow,{hasEmptyLabelSpace:!0,fullWidth:!0},Object(b.jsx)(Ce.EuiSwitch,{label:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldModeLabel",defaultMessage:"Use proxy mode"}),checked:r===ye.c,"data-test-subj":"remoteClusterFormConnectionModeToggle",onChange:e=>s({mode:e.target.checked?ye.c:ye.d})})))),fullWidth:!0},r===ye.d?Object(b.jsx)(Qe,e):Object(b.jsx)(Ze,e))},et={name:"",seeds:[],skipUnavailable:!1,nodeConnections:3,proxyAddress:"",proxySocketConnections:18,serverName:""},tt="removeClustersErrorTitle",st="removeClustersErrorList";class remote_cluster_form_RemoteClusterForm extends r.Component{constructor(e,t){super(e,t),ve()(this,"generateId",void 0),ve()(this,"toggleRequest",(()=>{this.setState((({isRequestVisible:e})=>({isRequestVisible:!e})))})),ve()(this,"onFieldsChange",(e=>{const{isCloudEnabled:t}=this.context,{cloudUrl:s}=e;if(s){const{proxyAddress:t,serverName:r}=((e="")=>{if(!(e=$e(e))||!Ie(e))return He;const t=e.split(":")[0];return{proxyAddress:`${t}:${qe}`,serverName:t}})(s);e={...e,proxyAddress:t,serverName:r}}this.setState((({fields:s})=>{const r={...s,...e};return{fields:r,fieldsErrors:Ye(r,t)}}))})),ve()(this,"save",(()=>{const{save:e}=this.props;this.hasErrors()?this.setState({areErrorsVisible:!0}):e(this.getCluster())})),ve()(this,"onSkipUnavailableChange",(e=>{const t=e.target.checked;this.onFieldsChange({skipUnavailable:t})})),ve()(this,"resetToDefault",(e=>{this.onFieldsChange({[e]:et[e]})})),ve()(this,"hasErrors",(()=>{const{fieldsErrors:e}=this.state;return Object.values(e).some((e=>null!=e))})),ve()(this,"renderErrors",(()=>{const{areErrorsVisible:e,fieldsErrors:{name:t,seeds:s,proxyAddress:o,serverName:a,cloudUrl:n}}=this.state,i=this.hasErrors();if(!e||!i)return null;const l=[];t&&l.push({key:"nameExplanation",field:Y.i18n.translate("xpack.remoteClusters.remoteClusterForm.inputNameErrorMessage",{defaultMessage:'The "Name" field is invalid.'}),error:t}),s&&l.push({key:"seedsExplanation",field:Y.i18n.translate("xpack.remoteClusters.remoteClusterForm.inputSeedsErrorMessage",{defaultMessage:'The "Seed nodes" field is invalid.'}),error:s}),o&&l.push({key:"proxyAddressExplanation",field:Y.i18n.translate("xpack.remoteClusters.remoteClusterForm.inputProxyErrorMessage",{defaultMessage:'The "Proxy address" field is invalid.'}),error:o}),a&&l.push({key:"serverNameExplanation",field:Y.i18n.translate("xpack.remoteClusters.remoteClusterForm.inputServerNameErrorMessage",{defaultMessage:'The "Server name" field is invalid.'}),error:a}),n&&l.push({key:"cloudUrlExplanation",field:Y.i18n.translate("xpack.remoteClusters.remoteClusterForm.inputcloudUrlErrorMessage",{defaultMessage:'The "Elasticsearch endpoint URL" field is invalid.'}),error:n});const u=l.length&&Object(b.jsx)(Ce.EuiScreenReaderOnly,null,Object(b.jsx)("dl",{id:this.generateId(st),"aria-labelledby":this.generateId(tt)},l.map((({key:e,field:t,error:s})=>Object(b.jsx)("div",{key:e},Object(b.jsx)("dt",null,t),Object(b.jsx)("dd",null,s))))));return Object(b.jsx)(r.Fragment,null,Object(b.jsx)(Ce.EuiCallOut,{title:Object(b.jsx)("span",{id:this.generateId(tt)},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.errorTitle",defaultMessage:"Some fields require your attention."})),color:"danger",iconType:"error"}),Object(b.jsx)(Ce.EuiDelayRender,null,u),Object(b.jsx)(Ce.EuiSpacer,{size:"m","data-test-subj":"remoteClusterFormGlobalError"}))}));const{cluster:s}=e,{isCloudEnabled:o}=t,a=o?ye.c:ye.d,n=Object(O.merge)({},{...et,mode:a,cloudUrl:(i=s,Ke(i)&&null!==(l=null==i?void 0:i.serverName)&&void 0!==l?l:""),cloudUrlEnabled:o&&Ke(s)},s);var i,l;this.generateId=Object(Ce.htmlIdGenerator)(),this.state={fields:n,fieldsErrors:Ye(n,o),areErrorsVisible:!1,isRequestVisible:!1}}getCluster(){const{fields:{name:e,mode:t,seeds:s,nodeConnections:r,proxyAddress:o,proxySocketConnections:a,serverName:n,skipUnavailable:i}}=this.state,{cluster:l}=this.props;let u;return u=t===ye.c?{proxyAddress:o,proxySocketConnections:a,serverName:n}:{seeds:s,nodeConnections:r},{name:e,skipUnavailable:i,mode:t,hasDeprecatedProxySetting:null==l?void 0:l.hasDeprecatedProxySetting,...u}}renderSkipUnavailable(){const{fields:{skipUnavailable:e}}=this.state;return Object(b.jsx)(Ce.EuiDescribedFormGroup,{title:Object(b.jsx)(Ce.EuiTitle,{size:"s"},Object(b.jsx)("h2",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.sectionSkipUnavailableTitle",defaultMessage:"Make remote cluster optional"}))),description:Object(b.jsx)(r.Fragment,null,Object(b.jsx)("p",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.sectionSkipUnavailableDescription",defaultMessage:"If any of the remote clusters are unavailable, the query request fails. To avoid this and continue to send requests to other clusters, enable {optionName}. {learnMoreLink}",values:{optionName:Object(b.jsx)("strong",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.sectionSkipUnavailableDescription.optionNameLabel",defaultMessage:"Skip if unavailable"})),learnMoreLink:Object(b.jsx)(Ce.EuiLink,{href:he.h,target:"_blank"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.sectionSkipUnavailableDescription.learnMoreLinkLabel",defaultMessage:"Learn more."}))}}))),fullWidth:!0},Object(b.jsx)(Ce.EuiFormRow,{"data-test-subj":"remoteClusterFormSkipUnavailableFormRow",className:"remoteClusterSkipIfUnavailableSwitch",hasEmptyLabelSpace:!0,fullWidth:!0,helpText:e!==et.skipUnavailable?Object(b.jsx)(Ce.EuiLink,{onClick:()=>{this.resetToDefault("skipUnavailable")}},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.sectionSkipUnavailableResetLabel",defaultMessage:"Reset to default"})):null},Object(b.jsx)(Ce.EuiSwitch,{label:Y.i18n.translate("xpack.remoteClusters.remoteClusterForm.sectionSkipUnavailableLabel",{defaultMessage:"Skip if unavailable"}),checked:!!e,onChange:this.onSkipUnavailableChange,"data-test-subj":"remoteClusterFormSkipUnavailableFormToggle"})))}renderActions(){const{isSaving:e,cancel:t,cluster:s}=this.props,{areErrorsVisible:r,isRequestVisible:o}=this.state,a=r&&this.hasErrors()||e;return Object(b.jsx)(Ce.EuiFlexGroup,{justifyContent:"spaceBetween",alignItems:"center"},t&&Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiButtonEmpty,{color:"primary",onClick:t},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.cancelButtonLabel",defaultMessage:"Cancel"}))),Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiFlexGroup,{alignItems:"center",gutterSize:"m"},Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiButtonEmpty,{onClick:this.toggleRequest,"data-test-subj":"remoteClustersRequestButton"},o?Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.hideRequestButtonLabel",defaultMessage:"Hide request"}):Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.showRequestButtonLabel",defaultMessage:"Show request"}))),Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiButton,{"data-test-subj":"remoteClusterFormSaveButton",color:"primary",onClick:this.save,fill:!0,isDisabled:a,isLoading:e,"aria-describedby":`${this.generateId(tt)} ${this.generateId(st)}`},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.nextButtonLabel",defaultMessage:"{isEditMode, select, true{Save} other{Next}}",values:{isEditMode:Boolean(s)}}))))))}renderSavingFeedback(){return this.props.isSaving?Object(b.jsx)(Ce.EuiOverlayMask,null,Object(b.jsx)(Ce.EuiLoadingLogo,{logo:"logoKibana",size:"xl"})):null}renderSaveErrorFeedback(){const{saveError:e}=this.props;if(e){const{message:t,cause:s}=e;let o;return s&&Array.isArray(s)&&(o=1===s.length?Object(b.jsx)("p",null,s[0]):Object(b.jsx)("ul",null,s.map((e=>Object(b.jsx)("li",{key:e},e))))),Object(b.jsx)(r.Fragment,null,Object(b.jsx)(Ce.EuiCallOut,{title:t,iconType:"cross",color:"warning"},o),Object(b.jsx)(Ce.EuiSpacer,null))}return null}render(){const{isRequestVisible:e,areErrorsVisible:t,fields:s,fieldsErrors:o}=this.state,{name:a}=o,{cluster:n}=this.props,i=!n;return Object(b.jsx)(r.Fragment,null,this.renderSaveErrorFeedback(),this.renderErrors(),Object(b.jsx)(Ce.EuiForm,{"data-test-subj":"remoteClusterForm"},Object(b.jsx)(Ce.EuiDescribedFormGroup,{title:Object(b.jsx)(Ce.EuiTitle,{size:"s"},Object(b.jsx)("h2",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.sectionNameTitle",defaultMessage:"Name"}))),description:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.sectionNameDescription",defaultMessage:"A unique name for the cluster."}),fullWidth:!0},Object(b.jsx)(Ce.EuiFormRow,{"data-test-subj":"remoteClusterFormNameFormRow",label:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldNameLabel",defaultMessage:"Name"}),helpText:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterForm.fieldNameLabelHelpText",defaultMessage:"Must contain only letters, numbers, underscores, and dashes."}),error:a,isInvalid:Boolean(t&&a),fullWidth:!0},Object(b.jsx)(Ce.EuiFieldText,{isInvalid:Boolean(t&&a),value:s.name,onChange:e=>this.onFieldsChange({name:e.target.value}),fullWidth:!0,disabled:!i,"data-test-subj":"remoteClusterFormNameInput"}))),Object(b.jsx)(Xe,{fields:s,fieldsErrors:o,onFieldsChange:this.onFieldsChange,areErrorsVisible:t}),this.renderSkipUnavailable()),Object(b.jsx)(Ce.EuiSpacer,{size:"l"}),this.renderActions(),this.renderSavingFeedback(),e?Object(b.jsx)(request_flyout_RequestFlyout,{cluster:this.getCluster(),close:()=>this.setState({isRequestVisible:!1})}):null)}}ve()(remote_cluster_form_RemoteClusterForm,"defaultProps",{fields:Object(O.merge)({},et)}),ve()(remote_cluster_form_RemoteClusterForm,"contextType",ke);const rt=({title:e,description:t})=>Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(Ce.EuiPageHeader,{bottomBorder:!0,pageTitle:Object(b.jsx)("span",{"data-test-subj":"remoteClusterPageTitle"},e),rightSideItems:[Object(b.jsx)(Ce.EuiButtonEmpty,{size:"s",flush:"right",href:he.g,target:"_blank",iconType:"help","data-test-subj":"remoteClusterDocsButton"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.readDocsButtonLabel",defaultMessage:"Remote cluster docs"}))],description:t}),Object(b.jsx)(Ce.EuiSpacer,{size:"l"}));function ot(){return Object(b.jsx)(Ce.EuiCallOut,{title:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.configuredByNodeWarningTitle",defaultMessage:"You can't edit or delete this remote cluster because it's defined in a node's elasticsearch.yml configuration file."}),color:"primary",iconType:"iInCircle","data-test-subj":"remoteClusterConfiguredByNodeWarning"})}class detail_panel_DetailPanel extends r.Component{renderSkipUnavailableValue(e){return!0===e?Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.skipUnavailableTrueValue",defaultMessage:"Yes"}):!1===e?Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.skipUnavailableFalseValue",defaultMessage:"No"}):Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.skipUnavailableNullValue",defaultMessage:"Default"})}renderClusterNotFound(){return Object(b.jsx)(Ce.EuiFlexGroup,{justifyContent:"flexStart",alignItems:"center",gutterSize:"s","data-test-subj":"remoteClusterDetailClusterNotFound"},Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiIcon,{size:"m",type:"warning",color:"danger"})),Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiText,null,Object(b.jsx)(Ce.EuiTextColor,{color:"subdued"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.notFoundLabel",defaultMessage:"Remote cluster not found"})))))}renderClusterConfiguredByNodeWarning({isConfiguredByNode:e}){return e?Object(b.jsx)(r.Fragment,null,Object(b.jsx)(ot,null),Object(b.jsx)(Ce.EuiSpacer,{size:"l"})):null}renderClusterWithDeprecatedSettingWarning({hasDeprecatedProxySetting:e,isConfiguredByNode:t},s,r){return e?Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(Ce.EuiCallOut,{title:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.deprecatedSettingsTitle",defaultMessage:"'{remoteCluster}' has deprecated settings",values:{remoteCluster:s}}),color:"warning",iconType:"help"},t?Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.deprecatedSettingsConfiguredByNodeMessage",defaultMessage:"Edit the cluster to update the settings. {helpLink}",values:{helpLink:Object(b.jsx)(Ce.EuiLink,{href:he.e,target:"_blank"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.deprecatedSettingsLearnMoreLinkLabel",defaultMessage:"Learn more."}))}}):Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.deprecatedSettingsMessage",defaultMessage:"{editLink} to update the settings.",values:{editLink:Object(b.jsx)(Ce.EuiLink,Object(l.reactRouterNavigate)(r,`/edit/${s}`),Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.deprecatedSettingsEditLinkLabel",defaultMessage:"Edit the cluster"}))}})),Object(b.jsx)(Ce.EuiSpacer,{size:"l"})):null}renderSniffModeDescriptionList({isConnected:e,connectedNodesCount:t,skipUnavailable:s,seeds:r,maxConnectionsPerCluster:o,initialConnectTimeout:a,mode:n}){return Object(b.jsx)(Ce.EuiFlexGroup,{"data-test-subj":"remoteClusterDetailPanelStatusValues"},Object(b.jsx)(Ce.EuiFlexItem,null,Object(b.jsx)(Ce.EuiDescriptionList,null,Object(b.jsx)(Ce.EuiDescriptionListTitle,null,Object(b.jsx)(Ce.EuiTitle,{size:"xs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.connectedLabel",defaultMessage:"Connection"}))),Object(b.jsx)(Ce.EuiDescriptionListDescription,{"data-test-subj":"remoteClusterDetailIsConnected"},Object(b.jsx)(Ee,{isConnected:e,mode:n})),Object(b.jsx)(Ce.EuiDescriptionListTitle,null,Object(b.jsx)(Ce.EuiTitle,{size:"xs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.connectedNodesLabel",defaultMessage:"Connected nodes"}))),Object(b.jsx)(Ce.EuiDescriptionListDescription,{"data-test-subj":"remoteClusterDetailConnectedNodesCount"},t),Object(b.jsx)(Ce.EuiDescriptionListTitle,null,Object(b.jsx)(Ce.EuiTitle,{size:"xs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.seedsLabel",defaultMessage:"Seeds"}))),Object(b.jsx)(Ce.EuiDescriptionListDescription,{"data-test-subj":"remoteClusterDetailSeeds"},r.map((e=>Object(b.jsx)(Ce.EuiText,{size:"s",key:e},e)))))),Object(b.jsx)(Ce.EuiFlexItem,null,Object(b.jsx)(Ce.EuiDescriptionList,null,Object(b.jsx)(Ce.EuiDescriptionListTitle,null,Object(b.jsx)(Ce.EuiTitle,{size:"xs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.skipUnavailableLabel",defaultMessage:"Skip unavailable"}))),Object(b.jsx)(Ce.EuiDescriptionListDescription,{"data-test-subj":"remoteClusterDetailSkipUnavailable"},this.renderSkipUnavailableValue(s)),Object(b.jsx)(Ce.EuiDescriptionListTitle,null,Object(b.jsx)(Ce.EuiTitle,{size:"xs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.maxConnectionsPerClusterLabel",defaultMessage:"Maximum connections"}))),Object(b.jsx)(Ce.EuiDescriptionListDescription,{"data-test-subj":"remoteClusterDetailMaxConnections"},o),Object(b.jsx)(Ce.EuiDescriptionListTitle,null,Object(b.jsx)(Ce.EuiTitle,{size:"xs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.initialConnectTimeoutLabel",defaultMessage:"Initial connect timeout"}))),Object(b.jsx)(Ce.EuiDescriptionListDescription,{"data-test-subj":"remoteClusterDetailInitialConnectTimeout"},a))))}renderProxyModeDescriptionList({isConnected:e,skipUnavailable:t,initialConnectTimeout:s,proxyAddress:r,proxySocketConnections:o,connectedSocketsCount:a,mode:n,serverName:i}){return Object(b.jsx)(Ce.EuiFlexGroup,null,Object(b.jsx)(Ce.EuiFlexItem,null,Object(b.jsx)(Ce.EuiDescriptionList,null,Object(b.jsx)(Ce.EuiDescriptionListTitle,null,Object(b.jsx)(Ce.EuiTitle,{size:"xs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.connectedLabel",defaultMessage:"Connection"}))),Object(b.jsx)(Ce.EuiDescriptionListDescription,{"data-test-subj":"remoteClusterDetailIsConnected"},Object(b.jsx)(Ee,{isConnected:e,mode:n})),Object(b.jsx)(Ce.EuiDescriptionListTitle,null,Object(b.jsx)(Ce.EuiTitle,{size:"xs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.connectedSocketsLabel",defaultMessage:"Connected sockets"}))),Object(b.jsx)(Ce.EuiDescriptionListDescription,{"data-test-subj":"remoteClusterDetailConnectedSocketsCount"},a||"-"),Object(b.jsx)(Ce.EuiDescriptionListTitle,null,Object(b.jsx)(Ce.EuiTitle,{size:"xs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.proxyAddressLabel",defaultMessage:"Proxy address"}))),Object(b.jsx)(Ce.EuiDescriptionListDescription,{"data-test-subj":"remoteClusterDetailProxyAddress"},r),Object(b.jsx)(Ce.EuiDescriptionListTitle,null,Object(b.jsx)(Ce.EuiTitle,{size:"xs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.serverNameLabel",defaultMessage:"Server name"}))),Object(b.jsx)(Ce.EuiDescriptionListDescription,{"data-test-subj":"remoteClusterDetailServerName"},i||"-"))),Object(b.jsx)(Ce.EuiFlexItem,null,Object(b.jsx)(Ce.EuiDescriptionList,null,Object(b.jsx)(Ce.EuiDescriptionListTitle,null,Object(b.jsx)(Ce.EuiTitle,{size:"xs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.skipUnavailableLabel",defaultMessage:"Skip unavailable"}))),Object(b.jsx)(Ce.EuiDescriptionListDescription,{"data-test-subj":"remoteClusterDetailSkipUnavailable"},this.renderSkipUnavailableValue(t)),Object(b.jsx)(Ce.EuiDescriptionListTitle,null,Object(b.jsx)(Ce.EuiTitle,{size:"xs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.maxSocketConnectionsLabel",defaultMessage:"Maximum socket connections"}))),Object(b.jsx)(Ce.EuiDescriptionListDescription,{"data-test-subj":"remoteClusterDetailMaxSocketConnections"},o||"-"),Object(b.jsx)(Ce.EuiDescriptionListTitle,null,Object(b.jsx)(Ce.EuiTitle,{size:"xs"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.initialConnectTimeoutLabel",defaultMessage:"Initial connect timeout"}))),Object(b.jsx)(Ce.EuiDescriptionListDescription,{"data-test-subj":"remoteClusterDetailInitialConnectTimeout"},s))))}renderCluster(e){return Object(b.jsx)("section",{"aria-labelledby":"clusterStatus","data-test-subj":"remoteClusterDetailPanelStatusSection"},Object(b.jsx)(Ce.EuiTitle,{size:"s",id:"clusterStatus"},Object(b.jsx)("h3",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.statusTitle",defaultMessage:"Status"}))),Object(b.jsx)(Ce.EuiSpacer,{size:"s"}),e.mode===ye.c?this.renderProxyModeDescriptionList(e):this.renderSniffModeDescriptionList(e))}renderFlyoutBody(e){const{cluster:t,clusterName:s}=this.props;return Object(b.jsx)(Ce.EuiFlyoutBody,null,!t&&this.renderClusterNotFound(),t&&Object(b.jsx)(r.Fragment,null,this.renderClusterConfiguredByNodeWarning(t),this.renderClusterWithDeprecatedSettingWarning(t,s,e),this.renderCluster(t)))}renderFlyoutFooter(e){const{cluster:t,clusterName:s,closeDetailPanel:r}=this.props;return Object(b.jsx)(Ce.EuiFlyoutFooter,null,Object(b.jsx)(Ce.EuiFlexGroup,{justifyContent:"spaceBetween",alignItems:"center"},Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiButtonEmpty,{iconType:"cross",flush:"left",onClick:r,"data-test-subj":"remoteClusterDetailsPanelCloseButton"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.closeButtonLabel",defaultMessage:"Close"}))),t&&!t.isConfiguredByNode&&Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiFlexGroup,{alignItems:"center"},Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Me,{clusterNames:[s]},(e=>Object(b.jsx)(Ce.EuiButtonEmpty,{color:"danger",onClick:e,"data-test-subj":"remoteClusterDetailPanelRemoveButton"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.removeButtonLabel",defaultMessage:"Remove"}))))),Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiButton,d()({},Object(l.reactRouterNavigate)(e,`/edit/${s}`),{fill:!0,color:"primary","data-test-subj":"remoteClusterDetailPanelEditButton"}),Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.detailPanel.editButtonLabel",defaultMessage:"Edit"})))))))}render(){const{isOpen:e,closeDetailPanel:t,clusterName:s,cluster:r}=this.props,{history:o}=D();return e?Object(b.jsx)(Ce.EuiFlyout,{"data-test-subj":"remoteClusterDetailFlyout",onClose:t,"aria-labelledby":"remoteClusterDetailsFlyoutTitle",size:"m",maxWidth:550,className:"eui-textBreakAll"},Object(b.jsx)(Ce.EuiFlyoutHeader,null,Object(b.jsx)(Ce.EuiFlexGroup,{alignItems:"center",gutterSize:"s"},Object(b.jsx)(Ce.EuiFlexItem,{grow:!1},Object(b.jsx)(Ce.EuiTitle,{size:"m",id:"remoteClusterDetailsFlyoutTitle","data-test-subj":"remoteClusterDetailsFlyoutTitle"},Object(b.jsx)("h2",null,s))),r&&r.mode===ye.c?Object(b.jsx)(Ce.EuiFlexItem,{grow:!1}," ",Object(b.jsx)(Ce.EuiBadge,{color:"hollow",title:Y.i18n.translate("xpack.remoteClusters.detailPanel.proxyBadgeLabel",{defaultMessage:'This remote cluster was configured with the "proxy" connection mode'})},r.mode)):null)),this.renderFlyoutBody(o),this.renderFlyoutFooter(o)):null}}const at=Object(n.connect)((e=>({isOpen:A(e),isLoading:z(e),cluster:B(e),clusterName:U(e)})),(e=>({closeDetailPanel:()=>{e(fe())}})))(detail_panel_DetailPanel);class remote_cluster_list_RemoteClusterList extends r.Component{componentDidUpdate(){const{openDetailPanel:e,closeDetailPanel:t,isDetailPanelOpen:s,history:{location:{search:r}}}=this.props,{cluster:o}=Object(i.extractQueryParams)(r);null!=o?e(o):s&&t()}componentDidMount(){this.props.loadClusters(),this.interval=setInterval(this.props.refreshClusters,3e4),Object(L.b)("home")}componentWillUnmount(){clearInterval(this.interval)}renderBlockingAction(){const{isCopyingCluster:e,isRemovingCluster:t}=this.props;return e||t?Object(b.jsx)(Ce.EuiOverlayMask,null,Object(b.jsx)(Ce.EuiLoadingLogo,{logo:"logoKibana",size:"xl"})):null}renderNoPermission(){return Object(b.jsx)(Ce.EuiPageTemplate,{minHeight:0,panelled:!0,paddingSize:"none",offset:0},Object(b.jsx)(Ce.EuiPageTemplate.EmptyPrompt,{iconType:"warning",color:"danger",title:Object(b.jsx)("h2",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterList.noPermissionTitle",defaultMessage:"Permission error"})),body:Object(b.jsx)("p",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterList.noPermissionText",defaultMessage:"You do not have permission to view or add remote clusters."}))}))}renderError(e){const{statusCode:t,error:s}=e.body;return Object(b.jsx)(Ce.EuiPageTemplate,{minHeight:0,panelled:!0,paddingSize:"none",offset:0},Object(b.jsx)(Ce.EuiPageTemplate.EmptyPrompt,{iconType:"warning",color:"danger",title:Object(b.jsx)("h2",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterList.loadingErrorTitle",defaultMessage:"Error loading remote clusters"})),body:Object(b.jsx)("p",null,t," ",s)}))}renderEmpty(){return Object(b.jsx)(Ce.EuiPageTemplate,{minHeight:0,panelled:!0,paddingSize:"none",offset:0},Object(b.jsx)(Ce.EuiPageTemplate.EmptyPrompt,{"data-test-subj":"remoteClusterListEmptyPrompt",iconType:"managementApp",title:Object(b.jsx)("h2",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterList.emptyPromptTitle",defaultMessage:"Add your first remote cluster"})),body:Object(b.jsx)("p",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterList.emptyPromptDescription",defaultMessage:"Remote clusters create a uni-directional connection from your local cluster to other clusters."})),actions:Object(b.jsx)(Ce.EuiButton,d()({},Object(l.reactRouterNavigate)(this.props.history,"/add"),{fill:!0,iconType:"plusInCircle","data-test-subj":"remoteClusterEmptyPromptCreateButton"}),Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterList.emptyPrompt.connectButtonLabel",defaultMessage:"Add a remote cluster"})),footer:Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(Ce.EuiTitle,{size:"xxs"},Object(b.jsx)("span",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusters.emptyState.docsDescription",defaultMessage:"Want to learn more?"})))," ",Object(b.jsx)(Ce.EuiLink,{href:he.g,target:"_blank"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusters.emptyState.docsLink",defaultMessage:"Read documentation"})))}))}renderLoading(){return Object(b.jsx)(Ce.EuiPageTemplate,{minHeight:0,panelled:!0,paddingSize:"none",offset:0,"data-test-subj":"remoteClustersTableLoading"},Object(b.jsx)(i.SectionLoading,null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterList.loadingTitle",defaultMessage:"Loading remote clusters…"})))}renderList(){const{clusters:e}=this.props;return Object(b.jsx)(Ce.EuiPageBody,{"data-test-subj":"remote-clusters-list"},Object(b.jsx)(Ce.EuiPageSection,{paddingSize:"none"},Object(b.jsx)(Ce.EuiPageHeader,{bottomBorder:!0,pageTitle:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClusterListTitle",defaultMessage:"Remote Clusters"}),rightSideItems:[Object(b.jsx)(Ce.EuiButtonEmpty,{href:he.g,target:"_blank",iconType:"help","data-test-subj":"documentationLink"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClustersDocsLinkText",defaultMessage:"Remote Clusters docs"}))]}),Object(b.jsx)(Ce.EuiSpacer,{size:"l"}),Object(b.jsx)(Fe,{clusters:e}),Object(b.jsx)(at,null)))}render(){const{isLoading:e,clusters:t,clusterLoadError:s}=this.props,r=!e&&!t.length,a=!s||403!==s.status;let n;return n=s?a?this.renderError(s):this.renderNoPermission():r?this.renderEmpty():e?this.renderLoading():this.renderList(),Object(b.jsx)(o.a.Fragment,null,n,this.renderBlockingAction())}}const nt=Object(n.connect)((e=>({clusters:N(e),isDetailPanelOpen:A(e),isLoading:z(e),isCopyingCluster:K(e),isRemovingCluster:G(e),clusterLoadError:W(e)})),(e=>({loadClusters:()=>{e(xe())},refreshClusters:()=>{e((async e=>{let t;try{t=await S({asSystemRequest:!0})}catch(e){return function(e,t){const s=function(e,t){if(e&&e.body){const{error:s,statusCode:r,message:o}=e.body;return{title:t,text:`${r}: ${s}. ${o}`}}}(e,t);return s?T.c.addWarning(s):T.a.add(e,t)}(e,Y.i18n.translate("xpack.remoteClusters.refreshAction.errorTitle",{defaultMessage:"Error refreshing remote clusters"}))}e({type:te,payload:{clusters:t}})}))},openDetailPanel:t=>{e(je({name:t}))},closeDetailPanel:()=>{e(fe())}})))(remote_cluster_list_RemoteClusterList),it=({saveRemoteClusterConfig:e,onCancel:t,isSaving:s,addClusterError:o})=>{const[a,n]=Object(r.useState)(),[i,l]=Object(r.useState)(1);Object(r.useEffect)((()=>{o&&l(1)}),[o,l]);const u=Object(r.useMemo)((()=>[{step:1,title:Y.i18n.translate("xpack.remoteClusters.clusterWizard.addConnectionInfoLabel",{defaultMessage:"Add connection information"}),status:1===i?"current":"complete",onClick:()=>l(1)},{step:2,title:Y.i18n.translate("xpack.remoteClusters.clusterWizard.setupTrustLabel",{defaultMessage:"Establish trust"}),status:2===i?"current":"incomplete",disabled:!a,onClick:()=>l(2)}]),[i,a,l]);return Object(b.jsx)(Ce.EuiPageSection,{restrictWidth:!0},Object(b.jsx)(Ce.EuiStepsHorizontal,{steps:u}),Object(b.jsx)(Ce.EuiSpacer,{size:"xl"}),Object(b.jsx)("div",{style:{display:1===i?"block":"none"}},Object(b.jsx)(remote_cluster_form_RemoteClusterForm,{save:e=>{n(e),l(2)},cancel:t,saveError:o})),2===i&&Object(b.jsx)(De,{onBack:()=>l(1),onSubmit:()=>{e(a)},isSaving:s}))};class remote_cluster_add_RemoteClusterAdd extends r.PureComponent{constructor(...e){super(...e),ve()(this,"save",(e=>{this.props.addCluster(e)})),ve()(this,"redirectToList",(()=>{const{history:e,route:{location:{search:t}}}=D(),{redirect:s}=Object(i.extractQueryParams)(t);if(s){const e=decodeURIComponent(s);Object(P.b)(e)}else e.push("/list")}))}componentDidMount(){Object(L.b)("add")}componentWillUnmount(){this.props.clearAddClusterErrors()}render(){const{isAddingCluster:e,addClusterError:t}=this.props;return Object(b.jsx)(Ce.EuiPageBody,{"data-test-subj":"remote-clusters-add"},Object(b.jsx)(Ce.EuiPageSection,{paddingSize:"none"},Object(b.jsx)(rt,{title:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.addTitle",defaultMessage:"Add remote cluster"}),description:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.remoteClustersDescription",defaultMessage:"Create a connection from this cluster to other Elasticsearch clusters."})}),Object(b.jsx)(it,{saveRemoteClusterConfig:this.save,onCancel:this.redirectToList,isSaving:e,addClusterError:t})))}}const lt=Object(n.connect)((e=>({isAddingCluster:q(e),addClusterError:H(e)})),(e=>({addCluster:t=>{e((e=>async t=>{t({type:se});try{await Promise.all([F(e),new Promise((e=>setTimeout(e,500)))])}catch(s){if(s){const{body:r}=s;if(r){const{statusCode:s,message:o}=r;return t(s&&409===s?{type:oe,payload:{error:{message:Y.i18n.translate("xpack.remoteClusters.addAction.clusterNameAlreadyExistsErrorMessage",{defaultMessage:"A cluster with the name '{clusterName}' already exists.",values:{clusterName:e.name}})}}}:{type:oe,payload:{error:{message:Y.i18n.translate("xpack.remoteClusters.addAction.failedDefaultErrorMessage",{defaultMessage:"Request failed with a {statusCode} error. {message}",values:{statusCode:s,message:o}})}}})}}return T.a.add(s,Y.i18n.translate("xpack.remoteClusters.addAction.errorTitle",{defaultMessage:"Error adding cluster"}))}t({type:re});const{history:s,route:{location:{search:r}}}=D(),{redirect:o}=Object(i.extractQueryParams)(r);if(o){T.c.addSuccess(Y.i18n.translate("xpack.remoteClusters.addAction.successTitle",{defaultMessage:"Added remote cluster '{name}'",values:{name:e.name}}));const t=decodeURIComponent(o);Object(P.b)(`${t}?cluster=${e.name}`)}else s.push({pathname:"/list",search:`?cluster=${e.name}`})})(t))},clearAddClusterErrors:()=>{e((e=>{e({type:ae})}))}})))(remote_cluster_add_RemoteClusterAdd);class remote_cluster_edit_RemoteClusterEdit extends r.Component{constructor(e){super(e),ve()(this,"save",(e=>{this.props.editCluster(e)})),ve()(this,"cancel",(()=>{const{openDetailPanel:e}=this.props,{clusterName:t}=this.state,{history:s,route:{location:{search:r}}}=D(),{redirect:o}=Object(i.extractQueryParams)(r);if(o){const e=decodeURIComponent(o);Object(P.b)(e)}else s.push("/list"),e(t)}));const{match:{params:{name:t}}}=e;Object(L.b)("edit",`?cluster=${t}`),this.state={clusterName:t}}componentDidMount(){const{startEditingCluster:e}=this.props,{clusterName:t}=this.state;e(t)}componentWillUnmount(){this.props.clearEditClusterErrors(),this.props.stopEditingCluster()}render(){const{clusterName:e}=this.state,{isLoading:t,cluster:s,isEditingCluster:r,getEditClusterError:a}=this.props;if(t)return Object(b.jsx)(Ce.EuiPageTemplate,{minHeight:0,panelled:!0,paddingSize:"none",offset:0},Object(b.jsx)(i.SectionLoading,null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.edit.loadingLabel",defaultMessage:"Loading remote cluster…"})));if(!s)return Object(b.jsx)(Ce.EuiPageTemplate,{minHeight:0,panelled:!0,paddingSize:"none",offset:0},Object(b.jsx)(Ce.EuiPageTemplate.EmptyPrompt,{iconType:"warning",color:"danger",title:Object(b.jsx)("h2",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.edit.loadingErrorTitle",defaultMessage:"Error loading remote cluster"})),body:Object(b.jsx)("p",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.edit.loadingErrorMessage",defaultMessage:"The remote cluster '{name}' does not exist.",values:{name:e}})),actions:Object(b.jsx)(Ce.EuiButton,d()({},Object(l.reactRouterNavigate)(this.props.history,"/list"),{color:"danger",iconType:"arrowLeft",flush:"left"}),Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.edit.viewRemoteClustersButtonLabel",defaultMessage:"View remote clusters"}))}));const{isConfiguredByNode:n,hasDeprecatedProxySetting:u}=s;return n?Object(b.jsx)(Ce.EuiPageTemplate,{minHeight:0,panelled:!0,paddingSize:"none",offset:0},Object(b.jsx)(Ce.EuiPageTemplate.EmptyPrompt,{iconType:"iInCircle",title:Object(b.jsx)("h2",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.edit.configuredByNodeWarningTitle",defaultMessage:"Defined in configuration"})),body:Object(b.jsx)("p",null,Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.configuredByNodeWarningBody",defaultMessage:"You can't edit or delete this remote cluster because it's defined in a node's elasticsearch.yml configuration file."})),actions:Object(b.jsx)(Ce.EuiButton,{color:"primary",iconType:"arrowLeft",flush:"left",onClick:this.cancel},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.edit.backToRemoteClustersButtonLabel",defaultMessage:"Back to remote clusters"}))})):Object(b.jsx)(Ce.EuiPageBody,{restrictWidth:!0,"data-test-subj":"remote-clusters-edit"},Object(b.jsx)(Ce.EuiPageSection,{paddingSize:"none"},Object(b.jsx)(rt,{title:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.editTitle",defaultMessage:"Edit remote cluster"})}),u?Object(b.jsx)(o.a.Fragment,null,Object(b.jsx)(Ce.EuiCallOut,{title:Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.edit.deprecatedSettingsTitle",defaultMessage:"Proceed with caution"}),color:"warning",iconType:"help"},Object(b.jsx)(ge.FormattedMessage,{id:"xpack.remoteClusters.edit.deprecatedSettingsMessage",defaultMessage:"This remote cluster has deprecated settings that we tried to resolve. Verify all changes before saving."})),Object(b.jsx)(Ce.EuiSpacer,null)):null,Object(b.jsx)(remote_cluster_form_RemoteClusterForm,{cluster:s,isSaving:r,saveError:a,save:this.save,cancel:this.cancel})))}}const ut=Object(n.connect)((e=>({isLoading:z(e),cluster:V(e),isEditingCluster:K(e),getEditClusterError:$(e)})),(e=>({startEditingCluster:t=>{e((({clusterName:e})=>t=>{t(xe()),t({type:ne,payload:{clusterName:e}})})({clusterName:t}))},stopEditingCluster:()=>{e((e=>{e(xe()),e({type:ie})}))},editCluster:t=>{e((e=>async t=>{t({type:le});try{await Promise.all([k(e),new Promise((e=>setTimeout(e,500)))])}catch(e){if(e){const{body:s}=e;if(s){const{statusCode:e,message:r}=s;return t({type:ce,payload:{error:{message:Y.i18n.translate("xpack.remoteClusters.editAction.failedDefaultErrorMessage",{defaultMessage:"Request failed with a {statusCode} error. {message}",values:{statusCode:e,message:r}})}}})}}return T.a.add(e,Y.i18n.translate("xpack.remoteClusters.editAction.errorTitle",{defaultMessage:"Error editing cluster"}))}t({type:ue});const{history:s,route:{location:{search:r}}}=D(),{redirect:o}=Object(i.extractQueryParams)(r);if(o){T.c.addSuccess(Y.i18n.translate("xpack.remoteClusters.editAction.successTitle",{defaultMessage:"Edited remote cluster '{name}'",values:{name:e.name}}));const t=decodeURIComponent(o);Object(P.b)(`${t}?cluster=${e.name}`)}else s.push({pathname:"/list",search:`?cluster=${e.name}`})})(t))},clearEditClusterErrors:()=>{e((e=>{e({type:de})}))},openDetailPanel:t=>{e(je({name:t}))}})))(remote_cluster_edit_RemoteClusterEdit);class app_AppComponent extends r.Component{constructor(...e){super(...e),R(!1),this.registerRouter()}registerRouter(){const{history:e}=this.props;var t;t={history:e,route:{location:e.location}},w=t}componentDidMount(){Object(E.c)(E.a.LOADED,y.a)}componentWillUnmount(){R(!0)}render(){return Object(b.jsx)(h,{history:this.props.history},Object(b.jsx)(v,null,Object(b.jsx)(x,{exact:!0,path:["/list","/",""],component:nt}),Object(b.jsx)(x,{path:["/add"],component:lt}),Object(b.jsx)(x,{path:"/edit/:name",component:ut}),Object(b.jsx)(u.Redirect,{from:"/:anything",to:"/list"})))}}const ct=app_AppComponent;var dt=s(42),mt=s(66),pt=s.n(mt);const jt={isLoading:!1,clusterLoadError:null,asList:[],byName:{},allNames:[]},ft=e=>e.reduce(((e,t)=>({...e,[t.name]:t})),{}),bt=e=>e.map((e=>e.name)),xt={isOpen:!1,clusterName:void 0},gt={isAdding:!1,error:void 0},Ct={isRemoving:!1},ht={clusterName:void 0,isEditing:!1,error:void 0},Ot=Object(dt.combineReducers)({clusters:function(e=jt,t){const{type:s,payload:r}=t;switch(s){case Z:return{...e,isLoading:!0};case X:return{asList:[...r.clusters],byName:ft(r.clusters),allNames:bt(r.clusters),isLoading:!1};case te:return{asList:[...r.clusters],byName:ft(r.clusters),allNames:bt(r.clusters)};case ee:return{...e,isLoading:!1,clusterLoadError:r.error};case pe:const t=r,s=Object.keys(e.byName).filter((e=>t.indexOf(e)<0)).map((t=>e.byName[t]));return{...e,asList:s,byName:ft(s),allNames:bt(s)};default:return e}},detailPanel:function(e=xt,t){const{type:s,payload:r}=t;switch(s){case Q:const{clusterName:t}=r;return{clusterName:t,isOpen:!0};case J:return{clusterName:void 0,isOpen:!1};default:return e}},addCluster:function(e=gt,t){const{type:s,payload:r}=t;switch(s){case se:return{isAdding:!0,error:void 0};case re:return{...e,isAdding:!1};case oe:return{...e,error:r.error,isAdding:!1};case ae:return{...e,error:void 0};default:return e}},removeCluster:function(e=Ct,t){const{type:s}=t;switch(s){case me:return{isRemoving:!0};case pe:return{isRemoving:!1};default:return e}},editCluster:function(e=ht,t){const{type:s,payload:r}=t;switch(s){case ne:const{clusterName:t}=r;return{clusterName:t};case ie:return{clusterName:void 0,isEditing:!1,error:void 0};case le:return{...e,isEditing:!0};case ue:return{...e,isEditing:!1};case ce:return{...e,error:r.error,isEditing:!1};case de:return{...e,error:void 0};default:return e}}}),vt=()=>e=>t=>{const{type:s}=t;if(s===J&&!_){const{history:e}=D();e.replace({search:""})}return e(t)},yt=function(e={}){const t=[Object(dt.applyMiddleware)(pt.a,vt)];return Object(dt.createStore)(Ot,e,Object(dt.compose)(...t))}();s(67);const Et=({history:e,executionContext:t})=>(Object(l.useExecutionContext)(t,{type:"application",page:"remoteClusters"}),Object(b.jsx)(ct,{history:e})),Mt=(e,t,s,r,o)=>(Object(a.render)(Object(b.jsx)(t,null,Object(b.jsx)(l.KibanaThemeProvider,{theme$:o},Object(b.jsx)(n.Provider,{store:yt},Object(b.jsx)(Te,{context:s},Object(b.jsx)(Et,{history:r,executionContext:s.executionContext}))))),e),()=>Object(a.unmountComponentAtNode)(e))}])]);