/*! 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([[55],{74:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return F}));var s=a(1),n=a.n(s),c=a(25),i=a(2),r=a(3),l=a(9),u=a(17),o=a(164),d=a(157),j=a(136),b=a(5),f=a(32);const m=({ruleTypeId:e,actions:t,...a})=>({...a,rule_type_id:e,actions:t.map((({group:e,id:t,params:a,frequency:s,alertsFilter:n})=>({group:e,id:t,params:a,frequency:{notify_when:s.notifyWhen,throttle:s.throttle,summary:s.summary},alerts_filter:n})))});var g=a(51),p=a(140),y=a(0);const O=({onConfirm:e,onCancel:t})=>Object(y.jsx)(i.EuiConfirmModal,{title:r.i18n.translate("xpack.triggersActionsUI.sections.confirmRuleSave.confirmRuleSaveTitle",{defaultMessage:"Save rule with no actions?"}),onCancel:t,onConfirm:e,confirmButtonText:r.i18n.translate("xpack.triggersActionsUI.sections.confirmRuleSave.confirmRuleSaveConfirmButtonText",{defaultMessage:"Save rule"}),cancelButtonText:r.i18n.translate("xpack.triggersActionsUI.sections.confirmRuleSave.confirmRuleSaveCancelButtonText",{defaultMessage:"Cancel"}),defaultFocusedButton:"confirm","data-test-subj":"confirmRuleSaveModal"},Object(y.jsx)("p",null,Object(y.jsx)(c.FormattedMessage,{id:"xpack.triggersActionsUI.sections.confirmRuleSave.confirmRuleSaveWithoutActionsMessage",defaultMessage:"You can add an action at anytime."})));var v=a(158),x=a(113),S=a(124);const h=({isSaving:e,onSave:t,onCancel:a,isFormLoading:s})=>{const{loadingHealthCheck:l}=Object(S.b)();return Object(y.jsx)(i.EuiFlyoutFooter,null,Object(y.jsx)(i.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(y.jsx)(i.EuiFlexItem,{grow:!1},Object(y.jsx)(i.EuiButtonEmpty,{"data-test-subj":"cancelSaveRuleButton",onClick:a},r.i18n.translate("xpack.triggersActionsUI.sections.ruleAddFooter.cancelButtonLabel",{defaultMessage:"Cancel"}))),s?Object(y.jsx)(i.EuiFlexItem,{grow:!1},Object(y.jsx)(i.EuiSpacer,{size:"s"}),Object(y.jsx)(i.EuiLoadingSpinner,{size:"l"})):Object(y.jsx)(n.a.Fragment,null),Object(y.jsx)(i.EuiFlexItem,{grow:!1},Object(y.jsx)(i.EuiButton,{fill:!0,color:"success","data-test-subj":"saveRuleButton",type:"submit",iconType:"check",isDisabled:l,isLoading:e,onClick:t},Object(y.jsx)(c.FormattedMessage,{id:"xpack.triggersActionsUI.sections.ruleAddFooter.saveButtonLabel",defaultMessage:"Save"})))))};var E=a(29),C=a(159),T=a(54),I=a(127),A=a(178);const F=({consumer:e,ruleTypeRegistry:t,actionTypeRegistry:a,onClose:n,canChangeTrigger:F,ruleTypeId:R,initialValues:w,reloadRules:M,onSave:k,hideInterval:B,metadata:U,filteredRuleTypes:L,...N})=>{var _;const D=null!=k?k:M,[z,P]=Object(s.useState)(U),W=Object(s.useCallback)((e=>P(e)),[]),q=Object(s.useMemo)((()=>({params:{},consumer:e,ruleTypeId:R,schedule:{interval:b.e},actions:[],tags:[],...w||{}})),[R,e,w]),[{rule:H},V]=Object(s.useReducer)(j.a,{rule:q}),[G,J]=Object(s.useState)({isUsingSecurity:!1}),[Y,$]=Object(s.useState)({}),[K,Q]=Object(s.useState)(!1),[X,Z]=Object(s.useState)(!1),[ee,te]=Object(s.useState)(!1),[ae,se]=Object(s.useState)(N.ruleTypeIndex),[ne,ce]=Object(s.useState)(!1),ie=(e,t)=>{V({command:{type:"setProperty"},payload:{key:e,value:t}})},{http:re,notifications:{toasts:le},application:{capabilities:ue}}=Object(E.b)().services,oe=Object(x.f)(ue);Object(s.useEffect)((()=>{(async()=>{J(await Object(I.a)({http:re}))})()}),[re]),Object(s.useEffect)((()=>{R&&ie("ruleTypeId",R)}),[R]),Object(s.useEffect)((()=>{N.ruleTypeIndex||(async()=>{const e=await Object(g.a)({http:re}),t=new Map;for(const a of e)t.set(a.id,a);se(t)})()}),[N.ruleTypeIndex,re]),Object(s.useEffect)((()=>{Object(l.isEmpty)(H.params)&&!Object(l.isEmpty)(Y)?$({}):Object(l.isEmpty)(Y)&&$(H.params)}),[H.params,Y]);const[de,je]=Object(s.useState)([]),[be,fe]=Object(s.useState)(!1);Object(s.useEffect)((()=>{(async()=>{fe(!0);const e=await Object(d.a)(H.actions,a);fe(!1),je([...e])})()}),[H.actions,a]),Object(s.useEffect)((()=>{var e;!G.minimumScheduleInterval||null!=w&&null!==(e=w.schedule)&&void 0!==e&&e.interval||ie("schedule",{interval:Object(A.a)(G.minimumScheduleInterval.value)})}),[G.minimumScheduleInterval,w]),Object(s.useEffect)((()=>{if(H.ruleTypeId&&ae){const e=ae.get(H.ruleTypeId);null!=e&&e.defaultScheduleInterval&&!ne&&ie("schedule",{interval:e.defaultScheduleInterval})}}),[H.ruleTypeId,ae,H.schedule.interval,ne]),Object(s.useEffect)((()=>{H.schedule.interval===b.e||ne||ce(!0)}),[H.schedule.interval,ne]);const me=()=>{Object(C.a)(H,q,!1)||Object(C.b)(H.params,Y)?te(!0):n(u.m.CANCELED,z)},ge=async()=>{const e=await async function(){try{const e=await async function({http:e,rule:t}){const a=await e.post(`${b.b}/rule`,{body:JSON.stringify(m(t))});return Object(f.b)(a)}({http:re,rule:H});return le.addSuccess(r.i18n.translate("xpack.triggersActionsUI.sections.ruleAdd.saveSuccessNotificationText",{defaultMessage:'Created rule "{ruleName}"',values:{ruleName:e.name}})),e}catch(a){var e,t;le.addDanger(null!==(e=null===(t=a.body)||void 0===t?void 0:t.message)&&void 0!==e?e:r.i18n.translate("xpack.triggersActionsUI.sections.ruleAdd.saveErrorNotificationText",{defaultMessage:"Cannot create rule."}))}}();Q(!1),e&&(n(u.m.SAVED,z),D&&D(z))},pe=H.ruleTypeId?t.get(H.ruleTypeId):null,{ruleBaseErrors:ye,ruleErrors:Oe,ruleParamsErrors:ve}=Object(s.useMemo)((()=>Object(d.b)(H,pe,G)),[H,pe,G]),xe=oe&&0===(null===(_=H.actions)||void 0===_?void 0:_.length);return Object(y.jsx)(i.EuiPortal,null,Object(y.jsx)(i.EuiFlyout,{onClose:me,"aria-labelledby":"flyoutRuleAddTitle",size:"m",maxWidth:620,ownFocus:!0},Object(y.jsx)(i.EuiFlyoutHeader,{hasBorder:!0},Object(y.jsx)(i.EuiTitle,{size:"s","data-test-subj":"addRuleFlyoutTitle"},Object(y.jsx)("h3",{id:"flyoutTitle"},Object(y.jsx)(c.FormattedMessage,{defaultMessage:"Create rule",id:"xpack.triggersActionsUI.sections.ruleAdd.flyoutTitle"})))),Object(y.jsx)(S.a,null,Object(y.jsx)(p.a,{inFlyout:!0,waitForCheck:!0},Object(y.jsx)(i.EuiFlyoutBody,null,Object(y.jsx)(o.a,{rule:H,config:G,dispatch:V,errors:Oe,canChangeTrigger:F,operation:r.i18n.translate("xpack.triggersActionsUI.sections.ruleAdd.operationName",{defaultMessage:"create"}),actionTypeRegistry:a,ruleTypeRegistry:t,metadata:z,filteredRuleTypes:L,hideInterval:B,onChangeMetaData:W})),Object(y.jsx)(h,{isSaving:K,isFormLoading:be,onSave:async()=>{if(Q(!0),be||!Object(d.c)(H,Oe,de))return e=Object(T.a)(H,ve,ye,de),V({command:{type:"setRule"},payload:{key:"rule",value:e}}),void Q(!1);var e;xe?Z(!0):await ge()},onCancel:me}))),X&&Object(y.jsx)(O,{onConfirm:async()=>{Z(!1),await ge()},onCancel:()=>{Q(!1),Z(!1)}}),ee&&Object(y.jsx)(v.a,{onConfirm:()=>{te(!1),n(u.m.CANCELED,z)},onCancel:()=>{te(!1)}})))}}}]);