/*! 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.stackConnectors_bundle_jsonpfunction=window.stackConnectors_bundle_jsonpfunction||[]).push([[12,58],{122:function(e,n,t){"use strict";t.r(n),t.d(n,"default",(function(){return M}));var a=t(1),i=t.n(a),s=t(25),o=t(26),l=t(2),r=t(27),c=t(28),d=t(29),p=t(45),u=t(9);const{emptyField:_,urlField:E}=c.fieldValidators,m=({readOnly:e})=>{const{docLinks:n}=Object(l.useKibana)().services;return Object(u.jsx)(i.a.Fragment,null,Object(u.jsx)(o.UseField,{path:"config.apiUrl",component:r.TextField,config:{label:p.SW_API_URL_TEXT_FIELD_LABEL,validations:[{validator:E(p.SW_API_URL_INVALID)}]},componentProps:{euiFieldProps:{disabled:e,"data-test-subj":"swimlaneApiUrlInput",readOnly:e}}}),Object(u.jsx)(o.UseField,{path:"config.appId",component:r.TextField,config:{label:p.SW_APP_ID_TEXT_FIELD_LABEL,validations:[{validator:_(p.SW_REQUIRED_APP_ID_TEXT)}]},componentProps:{euiFieldProps:{disabled:e,"data-test-subj":"swimlaneAppIdInput",readOnly:e}}}),Object(u.jsx)(o.UseField,{path:"secrets.apiToken",config:{label:p.SW_API_TOKEN_TEXT_FIELD_LABEL,validations:[{validator:_(p.SW_REQUIRED_API_TOKEN)}],helpText:Object(u.jsx)(s.EuiLink,{href:`${n.ELASTIC_WEBSITE_URL}guide/en/kibana/${n.DOC_LINK_VERSION}/swimlane-action-type.html`,target:"_blank"},Object(u.jsx)(d.FormattedMessage,{id:"xpack.stackConnectors.components.swimlane.apiTokenNameHelpLabel",defaultMessage:"Provide a Swimlane API Token"}))},component:r.PasswordField,componentProps:{euiFieldProps:{"data-test-subj":"swimlaneApiTokenInput",readOnly:e}}}))},I=i.a.memo(m);var f=t(56),T=t(10);const g=["caseNameConfig","descriptionConfig","commentsConfig","caseIdConfig"],C=["severityConfig","commentsConfig","ruleNameConfig","alertIdConfig"],L=(p.SW_REQUIRED_CASE_ID,p.SW_REQUIRED_ALERT_ID,p.SW_REQUIRED_CASE_NAME,p.SW_REQUIRED_DESCRIPTION,p.SW_REQUIRED_COMMENTS,p.SW_REQUIRED_RULE_NAME,p.SW_REQUIRED_SEVERITY,(e,n)=>e===f.a.All||(e===f.a.Alerts?C.includes(n):g.includes(n))),{emptyField:b}=c.fieldValidators,A={asPlainText:!0},S=[],O=e=>({label:`${e.name} (${e.key})`,value:e.id}),R=[{id:f.a.All,label:"All"},{id:f.a.Alerts,label:"Alerts"},{id:f.a.Cases,label:"Cases"}],k={defaultValue:null,validations:[{validator:({value:e,customData:n})=>{const t=n.value;if(a=t.connectorType,i=null==e?void 0:e.id,a!==f.a.All&&(null==i||Object(T.isEmpty)(i)||(a===f.a.Alerts?C.includes(i):g.includes(i))))return{message:t.validationLabel};var a,i}}]},j=i.a.memo((({path:e,options:n,label:t,validationLabel:a,dataTestSubj:i,fieldIdMap:l,connectorType:c,readOnly:d})=>Object(u.jsx)(o.UseField,{path:e,component:r.ComboBoxField,config:k,validationData:{connectorType:c,validationLabel:a}},(e=>{var a,r;const{isInvalid:c,errorMessage:p}=Object(o.getFieldValidityAndErrorMessage)(e),_=(e=>null!=e?[O(e)]:S)(l.get(null!==(a=null===(r=e.value)||void 0===r?void 0:r.id)&&void 0!==a?a:""));return Object(u.jsx)(s.EuiFormRow,{label:t,error:p,isInvalid:c,fullWidth:!0},Object(u.jsx)(s.EuiComboBox,{singleSelection:A,selectedOptions:_,onChange:n=>{var t;const a=n[0],i=l.get(null!==(t=null==a?void 0:a.value)&&void 0!==t?t:"");i?e.setValue({id:i.id,name:i.name,key:i.key,fieldType:i.fieldType}):e.setValue(null)},onSearchChange:n=>{void 0!==n&&e.clearErrors(o.VALIDATION_TYPES.ARRAY_ITEM)},fullWidth:!0,noSuggestions:!1,"data-test-subj":i,options:n,isDisabled:d}))})))),D=({fields:e,readOnly:n})=>{var t;const[{config:s}]=Object(o.useFormData)({watch:["config.connectorType"]}),l=null!==(t=null==s?void 0:s.connectorType)&&void 0!==t?t:f.a.All,[c,d]=Object(a.useMemo)((()=>e.reduce((([e,n],t)=>{var a;return null!=t&&(e.set(t.fieldType,[...null!==(a=e.get(t.fieldType))&&void 0!==a?a:[],O(t)]),n.set(t.id,t)),[e,n]}),[new Map,new Map])),[e]),_=Object(a.useMemo)((()=>{var e;return null!==(e=c.get("text"))&&void 0!==e?e:[]}),[c]),E=Object(a.useMemo)((()=>{var e;return null!==(e=c.get("comments"))&&void 0!==e?e:[]}),[c]);return Object(u.jsx)(i.a.Fragment,null,Object(u.jsx)(o.UseField,{path:"config.connectorType",component:r.ButtonGroupField,config:{label:p.SW_CONNECTOR_TYPE_LABEL,defaultValue:f.a.All,validations:[{validator:b(p.SW_REQUIRED_CONNECTOR_TYPE)}]},componentProps:{euiFieldProps:{legend:p.SW_CONNECTOR_TYPE_LABEL,options:R,buttonSize:"m",color:"primary"}}}),L(l,"alertIdConfig")&&Object(u.jsx)(j,{path:"config.mappings.alertIdConfig",label:p.SW_ALERT_ID_FIELD_LABEL,validationLabel:p.SW_REQUIRED_ALERT_ID,options:_,fieldIdMap:d,connectorType:l,dataTestSubj:"swimlaneAlertIdInput",readOnly:n}),L(l,"ruleNameConfig")&&Object(u.jsx)(j,{path:"config.mappings.ruleNameConfig",label:p.SW_RULE_NAME_FIELD_LABEL,validationLabel:p.SW_REQUIRED_ALERT_ID,options:_,dataTestSubj:"swimlaneAlertNameInput",fieldIdMap:d,connectorType:l,readOnly:n}),L(l,"severityConfig")&&Object(u.jsx)(j,{path:"config.mappings.severityConfig",label:p.SW_SEVERITY_FIELD_LABEL,validationLabel:p.SW_REQUIRED_SEVERITY,options:_,dataTestSubj:"swimlaneSeverityInput",fieldIdMap:d,connectorType:l,readOnly:n}),L(l,"caseIdConfig")&&Object(u.jsx)(j,{path:"config.mappings.caseIdConfig",label:p.SW_CASE_ID_FIELD_LABEL,validationLabel:p.SW_REQUIRED_CASE_ID,options:_,dataTestSubj:"swimlaneCaseIdConfig",fieldIdMap:d,connectorType:l,readOnly:n}),L(l,"caseNameConfig")&&Object(u.jsx)(j,{path:"config.mappings.caseNameConfig",label:p.SW_CASE_NAME_FIELD_LABEL,validationLabel:p.SW_REQUIRED_CASE_NAME,options:_,dataTestSubj:"swimlaneCaseNameConfig",fieldIdMap:d,connectorType:l,readOnly:n}),L(l,"commentsConfig")&&Object(u.jsx)(j,{path:"config.mappings.commentsConfig",label:p.SW_COMMENTS_FIELD_LABEL,validationLabel:p.SW_REQUIRED_COMMENTS,options:E,dataTestSubj:"swimlaneCommentsConfig",fieldIdMap:d,connectorType:l,readOnly:n}),L(l,"descriptionConfig")&&Object(u.jsx)(j,{path:"config.mappings.descriptionConfig",label:p.SW_DESCRIPTION_FIELD_LABEL,validationLabel:p.SW_REQUIRED_DESCRIPTION,options:_,dataTestSubj:"swimlaneDescriptionConfig",fieldIdMap:d,connectorType:l,readOnly:n}))},v=i.a.memo(D),x=e=>e.filter((e=>"__proto__"!==e.id&&"__proto__"!==e.key&&"__proto__"!==e.name&&"__proto__"!==e.fieldType));const M=({readOnly:e})=>{var n,t,i;const{notifications:{toasts:r}}=Object(l.useKibana)().services,[c,d]=Object(a.useState)(!1),{isValid:_,validateFields:E}=Object(o.useFormContext)(),[{config:m,secrets:f}]=Object(o.useFormData)({watch:["config.apiUrl","config.appId","secrets.apiToken"]}),{getApplication:g,isLoading:C}=(({toastNotifications:e})=>{const[n,t]=Object(a.useState)(!1),i=Object(a.useRef)(!1),s=Object(a.useRef)(new AbortController);return{isLoading:n,getApplication:Object(a.useCallback)((async({appId:n,apiToken:a,apiUrl:o})=>{try{if(Object(T.isEmpty)(n)||Object(T.isEmpty)(a)||Object(T.isEmpty)(o))return;i.current=!1,s.current.abort(),s.current=new AbortController,t(!0);const l=await async function({signal:e,url:n,appId:t,apiToken:a}){const i={"Content-Type":"application/json","Private-Token":`${a}`},s=n.endsWith("/")?n.slice(0,-1):n,o=`${s.endsWith("api")?s:s+"/api"}/app/{appId}`;try{var l;const n=await fetch((r=t,o.replace("{appId}",r)),{method:"GET",headers:i,signal:e});if(!n.ok)throw new Error(`Received status: ${n.status} when attempting to get application with id: ${t}`);const a=await n.json();return{...a,fields:x(null!==(l=null==a?void 0:a.fields)&&void 0!==l?l:[])}}catch(e){throw new Error(`Unable to get application with id ${t}. Error: ${e.message}`)}var r}({signal:s.current.signal,appId:n,apiToken:a,url:o});if(!i.current)return t(!1),l.fields?l:void e.addDanger({title:p.SW_GET_APPLICATION_API_ERROR(n),text:p.SW_GET_APPLICATION_API_NO_FIELDS_ERROR})}catch(a){i.current||("AbortError"!==a.name&&e.addDanger({title:p.SW_GET_APPLICATION_API_ERROR(n),text:a.message}),t(!1))}}),[e])}})({toastNotifications:r}),L=null!==(n=null==m?void 0:m.apiUrl)&&void 0!==n?n:"",b=null!==(t=null==m?void 0:m.appId)&&void 0!==t?t:"",A=null!==(i=null==f?void 0:f.apiToken)&&void 0!==i?i:"",[S,O]=Object(a.useState)(1),[R,k]=Object(a.useState)([]),j=Object(a.useCallback)((e=>{O(e)}),[]),D=Object(a.useCallback)((async()=>{d(!1);const{areFieldsValid:e}=await E(["config.apiUrl","config.appId","secrets.apiToken"]);if(!e)return void d(!0);const n=await g({apiUrl:L,appId:b,apiToken:A});if(null!=n&&n.fields){const e=n.fields;k(e),O(2)}}),[A,L,b,g,E]),M=Object(a.useCallback)((()=>{O(1)}),[]),N=Object(a.useMemo)((()=>[{title:p.SW_CONFIGURE_CONNECTION_LABEL,isSelected:1===S,status:1===S?"selected":2===S?"complete":"incomplete",onClick:()=>j(1)},{title:p.SW_MAPPING_TITLE_TEXT_FIELD_LABEL,disabled:c||C,onClick:D,status:_?2===S?"selected":"incomplete":"danger"}]),[S,c,C,_,D,j]);return Object(u.jsx)(a.Fragment,null,Object(u.jsx)(s.EuiStepsHorizontal,{steps:N}),Object(u.jsx)(s.EuiSpacer,{size:"l"}),Object(u.jsx)(s.EuiForm,null,Object(u.jsx)("div",{style:{display:1===S?"block":"none"}},Object(u.jsx)(I,{readOnly:e}),Object(u.jsx)(s.EuiSpacer,null),Object(u.jsx)(s.EuiFormRow,{fullWidth:!0,helpText:p.SW_FIELDS_BUTTON_HELP_TEXT},Object(u.jsx)(s.EuiButton,{isLoading:C,onClick:D,"data-test-subj":"swimlaneConfigureMapping",iconType:"arrowRight",iconSide:"right"},p.SW_NEXT))),Object(u.jsx)("div",{style:{display:2===S?"block":"none"}},Object(u.jsx)(v,{fields:R,readOnly:e}),Object(u.jsx)(s.EuiButton,{onClick:M,iconType:"arrowLeft"},p.SW_BACK))))}},45:function(e,n,t){"use strict";t.r(n),t.d(n,"SW_REQUIRED_RULE_NAME",(function(){return i})),t.d(n,"SW_REQUIRED_APP_ID_TEXT",(function(){return s})),t.d(n,"SW_GET_APPLICATION_API_ERROR",(function(){return o})),t.d(n,"SW_GET_APPLICATION_API_NO_FIELDS_ERROR",(function(){return l})),t.d(n,"SW_API_URL_TEXT_FIELD_LABEL",(function(){return r})),t.d(n,"SW_API_URL_INVALID",(function(){return c})),t.d(n,"SW_APP_ID_TEXT_FIELD_LABEL",(function(){return d})),t.d(n,"SW_API_TOKEN_TEXT_FIELD_LABEL",(function(){return p})),t.d(n,"SW_MAPPING_TITLE_TEXT_FIELD_LABEL",(function(){return u})),t.d(n,"SW_SEVERITY_FIELD_LABEL",(function(){return _})),t.d(n,"SW_RULE_NAME_FIELD_LABEL",(function(){return E})),t.d(n,"SW_ALERT_ID_FIELD_LABEL",(function(){return m})),t.d(n,"SW_CASE_ID_FIELD_LABEL",(function(){return I})),t.d(n,"SW_CASE_NAME_FIELD_LABEL",(function(){return f})),t.d(n,"SW_COMMENTS_FIELD_LABEL",(function(){return T})),t.d(n,"SW_DESCRIPTION_FIELD_LABEL",(function(){return g})),t.d(n,"SW_CONFIGURE_CONNECTION_LABEL",(function(){return C})),t.d(n,"SW_CONNECTOR_TYPE_LABEL",(function(){return L})),t.d(n,"EMPTY_MAPPING_WARNING_TITLE",(function(){return b})),t.d(n,"EMPTY_MAPPING_WARNING_DESC",(function(){return A})),t.d(n,"SW_REQUIRED_SEVERITY",(function(){return S})),t.d(n,"SW_REQUIRED_CASE_NAME",(function(){return O})),t.d(n,"SW_REQUIRED_CASE_ID",(function(){return R})),t.d(n,"SW_REQUIRED_COMMENTS",(function(){return k})),t.d(n,"SW_REQUIRED_DESCRIPTION",(function(){return j})),t.d(n,"SW_REQUIRED_ALERT_ID",(function(){return D})),t.d(n,"SW_REQUIRED_API_TOKEN",(function(){return v})),t.d(n,"SW_REQUIRED_CONNECTOR_TYPE",(function(){return x})),t.d(n,"SW_BACK",(function(){return M})),t.d(n,"SW_NEXT",(function(){return N})),t.d(n,"SW_FIELDS_BUTTON_HELP_TEXT",(function(){return W}));var a=t(0);const i=a.i18n.translate("xpack.stackConnectors.components.swimlane.error.requiredRuleName",{defaultMessage:"Rule name is required."}),s=a.i18n.translate("xpack.stackConnectors.components.swimlane.error.requiredAppIdText",{defaultMessage:"An App ID is required."}),o=e=>a.i18n.translate("xpack.stackConnectors.components.swimlane.unableToGetApplicationMessage",{defaultMessage:"Unable to get application with id {id}",values:{id:e}}),l=a.i18n.translate("xpack.stackConnectors.components.swimlane.unableToGetApplicationFieldsMessage",{defaultMessage:"Unable to get application fields"}),r=a.i18n.translate("xpack.stackConnectors.components.swimlane.apiUrlTextFieldLabel",{defaultMessage:"API Url"}),c=a.i18n.translate("xpack.stackConnectors.components.swimlane.invalidApiUrlTextField",{defaultMessage:"URL is invalid."}),d=a.i18n.translate("xpack.stackConnectors.components.swimlane.appIdTextFieldLabel",{defaultMessage:"Application ID"}),p=a.i18n.translate("xpack.stackConnectors.components.swimlane.apiTokenTextFieldLabel",{defaultMessage:"API Token"}),u=a.i18n.translate("xpack.stackConnectors.components.swimlane.mappingTitleTextFieldLabel",{defaultMessage:"Configure Field Mappings"}),_=a.i18n.translate("xpack.stackConnectors.components.swimlane.severityFieldLabel",{defaultMessage:"Severity"}),E=a.i18n.translate("xpack.stackConnectors.components.swimlane.ruleNameFieldLabel",{defaultMessage:"Rule name"}),m=a.i18n.translate("xpack.stackConnectors.components.swimlane.alertIdFieldLabel",{defaultMessage:"Alert ID"}),I=a.i18n.translate("xpack.stackConnectors.components.swimlane.caseIdFieldLabel",{defaultMessage:"Case ID"}),f=a.i18n.translate("xpack.stackConnectors.components.swimlane.caseNameFieldLabel",{defaultMessage:"Case name"}),T=a.i18n.translate("xpack.stackConnectors.components.swimlane.commentsFieldLabel",{defaultMessage:"Comments"}),g=a.i18n.translate("xpack.stackConnectors.components.swimlane.descriptionFieldLabel",{defaultMessage:"Description"}),C=a.i18n.translate("xpack.stackConnectors.components.swimlane.configureConnectionLabel",{defaultMessage:"Configure API Connection"}),L=a.i18n.translate("xpack.stackConnectors.components.swimlane.connectorType",{defaultMessage:"Connector Type"}),b=a.i18n.translate("xpack.stackConnectors.components.swimlane.emptyMappingWarningTitle",{defaultMessage:"This connector has missing field mappings"}),A=a.i18n.translate("xpack.stackConnectors.components.swimlane.emptyMappingWarningDesc",{defaultMessage:"This connector cannot be selected because it is missing the required alert field mappings. You can edit this connector to add required field mappings or select a connector of type Alerts."}),S=a.i18n.translate("xpack.stackConnectors.components.swimlane.error.requiredSeverity",{defaultMessage:"Severity is required."}),O=a.i18n.translate("xpack.stackConnectors.components.swimlane.error.requiredCaseName",{defaultMessage:"Case name is required."}),R=a.i18n.translate("xpack.stackConnectors.components.swimlane.error.requiredCaseID",{defaultMessage:"Case ID is required."}),k=a.i18n.translate("xpack.stackConnectors.components.swimlane.error.requiredComments",{defaultMessage:"Comments are required."}),j=a.i18n.translate("xpack.stackConnectors.components.swimlane.error.requiredDescription",{defaultMessage:"Description is required."}),D=a.i18n.translate("xpack.stackConnectors.components.swimlane.error.requiredAlertID",{defaultMessage:"Alert ID is required."}),v=a.i18n.translate("xpack.stackConnectors.components.swimlane.error.requiredApiToken",{defaultMessage:"API Token is required."}),x=a.i18n.translate("xpack.stackConnectors.components.swimlane.error.requiredConnectorType",{defaultMessage:"Connector Type is required."}),M=a.i18n.translate("xpack.stackConnectors.components.swimlane.prevStep",{defaultMessage:"Back"}),N=a.i18n.translate("xpack.stackConnectors.components.swimlane.nextStep",{defaultMessage:"Next"}),W=a.i18n.translate("xpack.stackConnectors.components.swimlane.nextStepHelpText",{defaultMessage:"If field mappings are not configured, Swimlane connector type will be set to all."})},56:function(e,n,t){"use strict";let a;t.d(n,"a",(function(){return a})),function(e){e.All="all",e.Alerts="alerts",e.Cases="cases"}(a||(a={}))}}]);