/*! 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.triggersActionsUi_bundle_jsonpfunction=window.triggersActionsUi_bundle_jsonpfunction||[]).push([[58],{75:function(e,t,s){"use strict";s.r(t),s.d(t,"RuleEdit",(function(){return F})),s.d(t,"default",(function(){return F}));var i=s(1),a=s.n(i),n=s(25),c=s(11),o=s(2),r=s(9),l=s(3),u=s(17),j=s(164),d=s(157),b=s(136),g=s(5),y=s(32);const O=({actions:e,...t})=>({...t,actions:e.map((({group:e,id:t,params:s,frequency:i,uuid:a,alertsFilter:n})=>({group:e,id:t,params:s,frequency:{notify_when:i.notifyWhen,throttle:i.throttle,summary:i.summary},alerts_filter:n,...a&&{uuid:a}})))});var p=s(51),f=s(140),h=s(124),E=s(29),x=s(158),m=s(159),T=s(54),v=s(127),S=s(0);const w=e=>{const t=Object(r.cloneDeep)(Object(r.omit)(e,"notifyWhen","throttle")),s=Boolean(e.notifyWhen),i=Boolean(e.throttle);if(s||i){const i=s?{summary:!1,notifyWhen:e.notifyWhen,throttle:e.notifyWhen===c.RuleNotifyWhen.THROTTLE?e.throttle:null}:{summary:!1,notifyWhen:c.RuleNotifyWhen.THROTTLE,throttle:e.throttle};t.actions=t.actions.map((e=>({...e,frequency:i})))}return t},F=({initialRule:e,onClose:t,reloadRules:s,onSave:c,hideInterval:F,ruleTypeRegistry:I,actionTypeRegistry:C,metadata:R,...A})=>{const k=null!=c?c:s,[{rule:U},B]=Object(i.useReducer)(b.a,{rule:w(e)}),[W,M]=Object(i.useState)(!1),[N,L]=Object(i.useState)(!1),[D,_]=Object(i.useState)(!1),[z,H]=Object(i.useState)(!1),[P,q]=Object(i.useState)([]),[G,$]=Object(i.useState)(!1),[J,V]=Object(i.useState)(A.ruleType),[K,Q]=Object(i.useState)({isUsingSecurity:!1}),[X,Y]=Object(i.useState)(R),Z=Object(i.useCallback)((e=>Y(e)),[]),{http:ee,notifications:{toasts:te}}=Object(E.b)().services,se=e=>{B({command:{type:"setRule"},payload:{key:"rule",value:e}})},ie=I.get(U.ruleTypeId);Object(i.useEffect)((()=>{(async()=>{Q(await Object(v.a)({http:ee}))})()}),[ee]),Object(i.useEffect)((()=>{(async()=>{$(!0);const e=await Object(d.a)(U.actions,C);q([...e]),$(!1)})()}),[U.actions,C]),Object(i.useEffect)((()=>{A.ruleType||J||(async()=>{const e=await Object(p.a)({http:ee});for(const t of e)ie.id===t.id&&V(t)})()}),[A.ruleType,ie.id,J,ee]);const{ruleBaseErrors:ae,ruleErrors:ne,ruleParamsErrors:ce}=Object(d.b)(U,ie,K),oe=()=>{Object(m.a)(U,e,!0)?H(!0):t(u.m.CANCELED,X)};return Object(S.jsx)(o.EuiPortal,null,Object(S.jsx)(o.EuiFlyout,{onClose:oe,"aria-labelledby":"flyoutRuleEditTitle",size:"m",maxWidth:620,ownFocus:!1},Object(S.jsx)(o.EuiFlyoutHeader,{hasBorder:!0},Object(S.jsx)(o.EuiTitle,{size:"s","data-test-subj":"editRuleFlyoutTitle"},Object(S.jsx)("h3",{id:"flyoutTitle"},Object(S.jsx)(n.FormattedMessage,{defaultMessage:"Edit rule",id:"xpack.triggersActionsUI.sections.ruleEdit.flyoutTitle"})))),Object(S.jsx)(h.a,null,Object(S.jsx)(f.a,{inFlyout:!0,waitForCheck:!0},Object(S.jsx)(o.EuiFlyoutBody,null,N&&Object(S.jsx)(a.a.Fragment,null,Object(S.jsx)(o.EuiCallOut,{size:"s",color:"danger",iconType:"rule","data-test-subj":"hasActionsDisabled",title:l.i18n.translate("xpack.triggersActionsUI.sections.ruleEdit.disabledActionsWarningTitle",{defaultMessage:"This rule has actions that are disabled"})}),Object(S.jsx)(o.EuiSpacer,null)),Object(S.jsx)(j.a,{rule:U,config:K,dispatch:B,errors:ne,actionTypeRegistry:C,hideInterval:F,ruleTypeRegistry:I,canChangeTrigger:!1,setHasActionsDisabled:L,setHasActionsWithBrokenConnector:_,operation:l.i18n.translate("xpack.triggersActionsUI.sections.ruleEdit.operationName",{defaultMessage:"edit"}),metadata:X,onChangeMetaData:Z})),Object(S.jsx)(o.EuiFlyoutFooter,null,Object(S.jsx)(o.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(S.jsx)(o.EuiFlexItem,{grow:!1},Object(S.jsx)(o.EuiButtonEmpty,{"data-test-subj":"cancelSaveEditedRuleButton",onClick:()=>oe()},l.i18n.translate("xpack.triggersActionsUI.sections.ruleEdit.cancelButtonLabel",{defaultMessage:"Cancel"}))),G?Object(S.jsx)(o.EuiFlexItem,{grow:!1},Object(S.jsx)(o.EuiSpacer,{size:"s"}),Object(S.jsx)(o.EuiLoadingSpinner,{size:"l"})):Object(S.jsx)(a.a.Fragment,null),Object(S.jsx)(o.EuiFlexItem,{grow:!1},Object(S.jsx)(o.EuiFlexGroup,{alignItems:"center"},K.isUsingSecurity&&Object(S.jsx)(o.EuiFlexItem,{grow:!1},Object(S.jsx)(o.EuiIconTip,{type:"warning",position:"top","data-test-subj":"changeInPrivilegesTip",content:l.i18n.translate("xpack.triggersActionsUI.sections.ruleEdit.changeInPrivilegesLabel",{defaultMessage:"Saving this rule will change its privileges and might change its behavior."})})),Object(S.jsx)(o.EuiFlexItem,{grow:!1},Object(S.jsx)(o.EuiButton,{fill:!0,color:"success","data-test-subj":"saveEditedRuleButton",type:"submit",iconType:"check",isLoading:W,onClick:async()=>await async function(){M(!0);try{if(G||!Object(d.c)(U,ne,P)||D)se(Object(T.a)(U,ce,ae,P));else{const e=await async function({http:e,rule:t,id:s}){const i=await e.put(`${g.b}/rule/${encodeURIComponent(s)}`,{body:JSON.stringify(O(Object(r.pick)(t,["name","tags","schedule","params","actions"])))});return Object(y.b)(i)}({http:ee,rule:U,id:U.id});te.addSuccess(l.i18n.translate("xpack.triggersActionsUI.sections.ruleEdit.saveSuccessNotificationText",{defaultMessage:"Updated '{ruleName}'",values:{ruleName:e.name}})),t(u.m.SAVED,X),k&&k(X)}}catch(t){var e,s;te.addDanger(null!==(e=null===(s=t.body)||void 0===s?void 0:s.message)&&void 0!==e?e:l.i18n.translate("xpack.triggersActionsUI.sections.ruleEdit.saveErrorNotificationText",{defaultMessage:"Cannot update rule."}))}M(!1)}()},Object(S.jsx)(n.FormattedMessage,{id:"xpack.triggersActionsUI.sections.ruleEdit.saveButtonLabel",defaultMessage:"Save"}))))))))),z&&Object(S.jsx)(x.a,{onConfirm:()=>{H(!1),t(u.m.CANCELED,X)},onCancel:()=>{H(!1)}})))}}}]);