/*! 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.security_bundle_jsonpfunction=window.security_bundle_jsonpfunction||[]).push([[6],{260:function(e,i,t){switch(window.__kbnThemeTag__){case"v8dark":return t(261);case"v8light":return t(263)}},261:function(e,i,t){var s=t(58),a=t(262);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.i,a,""]]);s(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},262:function(e,i,t){(i=t(59)(!1)).push([e.i,".collapsiblePanel__logo{margin-right:8px;vertical-align:text-bottom}",""]),e.exports=i},263:function(e,i,t){var s=t(58),a=t(264);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.i,a,""]]);s(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},264:function(e,i,t){(i=t(59)(!1)).push([e.i,".collapsiblePanel__logo{margin-right:8px;vertical-align:text-bottom}",""]),e.exports=i},265:function(e,i,t){switch(window.__kbnThemeTag__){case"v8dark":return t(266);case"v8light":return t(268)}},266:function(e,i,t){var s=t(58),a=t(267);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.i,a,""]]);s(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},267:function(e,i,t){(i=t(59)(!1)).push([e.i,".euiAccordionWithDescription:focus,.euiAccordionWithDescription:hover{text-decoration:none}.noSubFeaturePrivileges,.subFeaturePanel{margin-left:28px}",""]),e.exports=i},268:function(e,i,t){var s=t(58),a=t(269);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.i,a,""]]);s(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},269:function(e,i,t){(i=t(59)(!1)).push([e.i,".euiAccordionWithDescription:focus,.euiAccordionWithDescription:hover{text-decoration:none}.noSubFeaturePrivileges,.subFeaturePanel{margin-left:28px}",""]),e.exports=i},270:function(e,i,t){switch(window.__kbnThemeTag__){case"v8dark":return t(271);case"v8light":return t(273)}},271:function(e,i,t){var s=t(58),a=t(272);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.i,a,""]]);s(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},272:function(e,i,t){(i=t(59)(!1)).push([e.i,".secPrivilegeFeatureChangeAllLink{margin-left:8px}",""]),e.exports=i},273:function(e,i,t){var s=t(58),a=t(274);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.i,a,""]]);s(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},274:function(e,i,t){(i=t(59)(!1)).push([e.i,".secPrivilegeFeatureChangeAllLink{margin-left:8px}",""]),e.exports=i},275:function(e,i,t){switch(window.__kbnThemeTag__){case"v8dark":return t(276);case"v8light":return t(278)}},276:function(e,i,t){var s=t(58),a=t(277);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.i,a,""]]);s(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},277:function(e,i,t){(i=t(59)(!1)).push([e.i,".featurePrivilegeName:focus,.featurePrivilegeName:hover{text-decoration:underline}",""]),e.exports=i},278:function(e,i,t){var s=t(58),a=t(279);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.i,a,""]]);s(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},279:function(e,i,t){(i=t(59)(!1)).push([e.i,".featurePrivilegeName:focus,.featurePrivilegeName:hover{text-decoration:underline}",""]),e.exports=i},280:function(e,i,t){switch(window.__kbnThemeTag__){case"v8dark":return t(281);case"v8light":return t(283)}},281:function(e,i,t){var s=t(58),a=t(282);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.i,a,""]]);s(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},282:function(e,i,t){(i=t(59)(!1)).push([e.i,".secPrivilegeTable__row--isGlobalSpace{background-color:#25262e}",""]),e.exports=i},283:function(e,i,t){var s=t(58),a=t(284);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.i,a,""]]);s(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},284:function(e,i,t){(i=t(59)(!1)).push([e.i,".secPrivilegeTable__row--isGlobalSpace{background-color:#f5f7fa}",""]),e.exports=i},285:function(e,i,t){switch(window.__kbnThemeTag__){case"v8dark":return t(286);case"v8light":return t(288)}},286:function(e,i,t){var s=t(58),a=t(287);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.i,a,""]]);s(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},287:function(e,i,t){(i=t(59)(!1)).push([e.i,".secSpacesPopoverList__buttonText{font-size:12px}",""]),e.exports=i},288:function(e,i,t){var s=t(58),a=t(289);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.i,a,""]]);s(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},289:function(e,i,t){(i=t(59)(!1)).push([e.i,".secSpacesPopoverList__buttonText{font-size:12px}",""]),e.exports=i},298:function(e,i,t){"use strict";t.r(i),t.d(i,"EditRolePage",(function(){return K}));var s=t(13),a=t.n(s),r=t(3),l=t(2),n=t.n(l),o=t(30),c=t.n(o),u=t(4),d=t(6),g=t(5),p=t(1),h=t.n(p),v=t(0);class delete_role_button_DeleteRoleButton extends l.Component{constructor(...e){super(...e),h()(this,"state",{showModal:!1}),h()(this,"maybeShowModal",(()=>this.state.showModal?Object(v.jsx)(r.EuiConfirmModal,{title:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.deleteRoleButton.deleteRoleTitle",defaultMessage:"Delete Role"}),onCancel:this.closeModal,onConfirm:this.onConfirmDelete,cancelButtonText:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.deleteRoleButton.cancelButtonLabel",defaultMessage:"No, don't delete"}),confirmButtonText:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.deleteRoleButton.confirmButtonLabel",defaultMessage:"Yes, delete role"}),buttonColor:"danger"},Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.deleteRoleButton.deletingRoleConfirmationText",defaultMessage:"Are you sure you want to delete this role?"})),Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.deleteRoleButton.deletingRoleWarningText",defaultMessage:"This action cannot be undone!"}))):null)),h()(this,"closeModal",(()=>{this.setState({showModal:!1})})),h()(this,"showModal",(()=>{this.setState({showModal:!0})})),h()(this,"onConfirmDelete",(()=>{this.closeModal(),this.props.onDelete()}))}render(){return this.props.canDelete?Object(v.jsx)(l.Fragment,null,Object(v.jsx)(r.EuiButtonEmpty,{color:"danger",onClick:this.showModal},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.deleteRoleButton.deleteRoleButtonLabel",defaultMessage:"Delete role"})),this.maybeShowModal()):null}}var m=t(18),b=t.n(m),x=t(22);class cluster_privileges_ClusterPrivileges extends l.Component{constructor(...e){super(...e),h()(this,"buildComboBox",(e=>{const{role:i,editable:t}=this.props,s=e.map((e=>({label:e}))),a=(i.elasticsearch.cluster||[]).map((e=>({label:e})));return Object(v.jsx)(r.EuiFlexItem,{key:"clusterPrivs"},Object(v.jsx)(r.EuiComboBox,{"aria-label":u.i18n.translate("xpack.security.management.editRole.clusterPrivilegeForm.clusterPrivilegesAriaLabel",{defaultMessage:"Cluster privileges"}),"data-test-subj":"cluster-privileges-combobox",options:s,selectedOptions:a,onChange:this.onClusterPrivilegesChange,onCreateOption:this.onCreateCustomPrivilege,isDisabled:Object(x.l)(i)||!t,placeholder:u.i18n.translate("xpack.security.management.editRole.clusterPrivileges.placeholder",{defaultMessage:"Add an action…"})}))})),h()(this,"onClusterPrivilegesChange",(e=>{this.props.onChange(e.map((e=>e.label)))})),h()(this,"onCreateCustomPrivilege",(e=>{this.props.onChange([...this.props.role.elasticsearch.cluster,e])})),h()(this,"getAvailableClusterPrivileges",(()=>{const e=[...this.props.builtinClusterPrivileges,...this.props.role.elasticsearch.cluster];return b.a.uniq(e)}))}render(){const e=this.getAvailableClusterPrivileges();return Object(v.jsx)(r.EuiFlexGroup,null,this.buildComboBox(e))}}h()(cluster_privileges_ClusterPrivileges,"defaultProps",{editable:!0});const j=e=>e.label,P=e=>({label:e});class index_privilege_form_IndexPrivilegeForm extends l.Component{constructor(e){super(e),h()(this,"isFieldListLoading",!1),h()(this,"getPrivilegeForm",(()=>Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(r.EuiFlexGroup,null,"remote_indices"===this.props.indexType?Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiFormRow,a()({label:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.indexPrivilegeForm.clustersFormRowLabel",defaultMessage:"Remote clusters"}),fullWidth:!0},this.props.validator.validateRemoteIndexPrivilegeClustersField(this.props.indexPrivilege)),Object(v.jsx)(r.EuiComboBox,{"data-test-subj":`clustersInput${this.props.formIndex}`,selectedOptions:("clusters"in this.props.indexPrivilege&&this.props.indexPrivilege.clusters?this.props.indexPrivilege.clusters:[]).map(P),onCreateOption:this.onCreateClusterOption,onChange:this.onClustersChange,isDisabled:this.props.isRoleReadOnly,placeholder:u.i18n.translate("xpack.security.management.editRole.indexPrivilegeForm.clustersPlaceholder",{defaultMessage:"Add a remote cluster…"}),fullWidth:!0}))):null,Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiFormRow,a()({label:"remote_indices"===this.props.indexType?Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.indexPrivilegeForm.remoteIndicesFormRowLabel",defaultMessage:"Remote indices"}):Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.indexPrivilegeForm.indicesFormRowLabel",defaultMessage:"Indices"}),fullWidth:!0},this.props.validator.validateIndexPrivilegeNamesField(this.props.indexPrivilege)),Object(v.jsx)(r.EuiComboBox,{"data-test-subj":`indicesInput${this.props.formIndex}`,options:this.props.indexPatterns.map(P),selectedOptions:this.props.indexPrivilege.names.map(P),onCreateOption:this.onCreateIndexPatternOption,onChange:this.onIndexPatternsChange,isDisabled:this.props.isRoleReadOnly,placeholder:u.i18n.translate("xpack.security.management.editRole.indexPrivilegeForm.indicesPlaceholder",{defaultMessage:"Add an index pattern…"}),fullWidth:!0}))),Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiFormRow,a()({label:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.indexPrivilegeForm.privilegesFormRowLabel",defaultMessage:"Privileges"}),fullWidth:!0},this.props.validator.validateIndexPrivilegePrivilegesField(this.props.indexPrivilege)),Object(v.jsx)(r.EuiComboBox,{"data-test-subj":`privilegesInput${this.props.formIndex}`,options:this.props.availableIndexPrivileges.map(P),selectedOptions:this.props.indexPrivilege.privileges.map(P),onChange:this.onPrivilegeChange,onCreateOption:this.onCreateCustomPrivilege,isDisabled:this.props.isRoleReadOnly,placeholder:u.i18n.translate("xpack.security.management.editRole.indexPrivilegeForm.privilegesPlaceholder",{defaultMessage:"Add an action…"}),fullWidth:!0})))),this.getFieldLevelControls(),this.getGrantedDocumentsControl()))),h()(this,"loadFLSOptions",((e,i=!1)=>{"remote_indices"!==this.props.indexType&&(i||!this.isFieldListLoading&&0!==e.length)&&(this.isFieldListLoading=!0,this.setState({isFieldListLoading:!0}),this.props.indicesAPIClient.getFields(e.join(",")).then((e=>{this.isFieldListLoading=!1,this.setState({flsOptions:e,isFieldListLoading:!1})})).catch((()=>{this.isFieldListLoading=!1,this.setState({flsOptions:[],isFieldListLoading:!1})})))})),h()(this,"getFieldLevelControls",(()=>{const{allowFieldLevelSecurity:e,indexPrivilege:i,isRoleReadOnly:t}=this.props,{grant:s,except:a}=this.getFieldSecurity(i);return e?t&&!this.state.fieldSecurityExpanded?null:Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(r.EuiSpacer,null),Object(v.jsx)(r.EuiFlexGroup,{direction:"column"},!t&&Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiSwitch,{"data-test-subj":`restrictFieldsQuery${this.props.formIndex}`,label:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRoles.indexPrivilegeForm.grantFieldPrivilegesLabel",defaultMessage:"Grant access to specific fields"}),compressed:!0,checked:this.state.fieldSecurityExpanded,onChange:this.toggleFieldSecurity})),this.state.fieldSecurityExpanded&&Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiFlexGroup,null,Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiFormRow,{label:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRoles.indexPrivilegeForm.grantedFieldsFormRowLabel",defaultMessage:"Granted fields"}),fullWidth:!0,className:"indexPrivilegeForm__grantedFieldsRow",helpText:t||0!==s.length?void 0:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRoles.indexPrivilegeForm.grantedFieldsFormRowHelpText",defaultMessage:"If no fields are granted, then users assigned to this role will not be able to see any data for this index."})},Object(v.jsx)(r.EuiComboBox,{"data-test-subj":`fieldInput${this.props.formIndex}`,options:this.state.flsOptions.map(P),selectedOptions:s.map(P),onCreateOption:this.onCreateGrantedField,onChange:this.onGrantedFieldsChange,isDisabled:this.props.isRoleReadOnly,async:!0,isLoading:this.state.isFieldListLoading,placeholder:u.i18n.translate("xpack.security.management.editRole.indexPrivilegeForm.fieldPlaceholder",{defaultMessage:"Add a field pattern…"}),fullWidth:!0}))),Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiFormRow,{label:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRoles.indexPrivilegeForm.deniedFieldsFormRowLabel",defaultMessage:"Denied fields"}),fullWidth:!0,className:"indexPrivilegeForm__deniedFieldsRow"},Object(v.jsx)(r.EuiComboBox,{"data-test-subj":`deniedFieldInput${this.props.formIndex}`,options:this.state.flsOptions.map(P),selectedOptions:a.map(P),onCreateOption:this.onCreateDeniedField,onChange:this.onDeniedFieldsChange,isDisabled:t,async:!0,isLoading:this.state.isFieldListLoading,placeholder:u.i18n.translate("xpack.security.management.editRole.indexPrivilegeForm.deniedFieldPlaceholder",{defaultMessage:"Add a field pattern…"}),fullWidth:!0}))))))):null})),h()(this,"getGrantedDocumentsControl",(()=>{var e;const{allowDocumentLevelSecurity:i,indexPrivilege:t,isRoleReadOnly:s}=this.props;return i?this.props.isRoleReadOnly&&!this.state.queryExpanded?null:Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(r.EuiSpacer,null),Object(v.jsx)(r.EuiFlexGroup,{direction:"column"},!this.props.isRoleReadOnly&&Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiSwitch,{"data-test-subj":`restrictDocumentsQuery${this.props.formIndex}`,label:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.indexPrivilegeForm.grantReadPrivilegesLabel",defaultMessage:"Grant read privileges to specific documents"}),compressed:!0,checked:this.state.queryExpanded,onChange:this.toggleDocumentQuery,disabled:s})),this.state.queryExpanded&&Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiFormRow,{label:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.indexPrivilegeForm.grantedDocumentsQueryFormRowLabel",defaultMessage:"Granted documents query"}),fullWidth:!0,"data-test-subj":`queryInput${this.props.formIndex}`},Object(v.jsx)(g.CodeEditorField,{languageId:"xjson",width:"100%",fullWidth:!0,height:this.state.documentQueryEditorHeight,"aria-label":u.i18n.translate("xpack.security.management.editRole.indexPrivilegeForm.grantedDocumentsQueryEditorAriaLabel",{defaultMessage:"Granted documents query editor"}),value:null!==(e=t.query)&&void 0!==e?e:"",onChange:this.onQueryChange,options:{readOnly:this.props.isRoleReadOnly,minimap:{enabled:!1},renderValidationDecorations:t.query?"editable":"off"},editorDidMount:this.editorDidMount}))))):null})),h()(this,"editorDidMount",(e=>{const i=()=>{const i=Math.min(1e3,Math.max(100,e.getContentHeight()));this.setState({documentQueryEditorHeight:`${i}px`})};e.onDidContentSizeChange(i),i()})),h()(this,"toggleDocumentQuery",(()=>{const e=this.state.queryExpanded,i=!e;this.setState({queryExpanded:!this.state.queryExpanded,documentQuery:e?this.props.indexPrivilege.query:this.state.documentQuery}),e&&this.props.onChange({...this.props.indexPrivilege,query:""}),i&&!this.props.indexPrivilege.query&&this.state.documentQuery&&this.props.onChange({...this.props.indexPrivilege,query:this.state.documentQuery})})),h()(this,"toggleFieldSecurity",(()=>{const e=this.state.fieldSecurityExpanded,i=!e,{grant:t,except:s}=this.getFieldSecurity(this.props.indexPrivilege);this.setState({fieldSecurityExpanded:!this.state.fieldSecurityExpanded,grantedFields:e?t:this.state.grantedFields,exceptedFields:e?s:this.state.exceptedFields}),e&&this.props.onChange({...this.props.indexPrivilege,field_security:{grant:["*"],except:[]}});const a=this.isFieldSecurityConfigured(this.props.indexPrivilege),r=this.state.exceptedFields.length>0||this.state.grantedFields.length>0;i&&this.loadFLSOptions(this.props.indexPrivilege.names),i&&!a&&r&&this.props.onChange({...this.props.indexPrivilege,field_security:{grant:this.state.grantedFields,except:this.state.exceptedFields}})})),h()(this,"onCreateClusterOption",(e=>{const i=("clusters"in this.props.indexPrivilege&&this.props.indexPrivilege.clusters?this.props.indexPrivilege.clusters:[]).concat([e]);this.props.onChange({...this.props.indexPrivilege,clusters:i})})),h()(this,"onClustersChange",(e=>{const i=e.map(j);this.props.onChange({...this.props.indexPrivilege,clusters:i})})),h()(this,"onCreateIndexPatternOption",(e=>{const i=this.props.indexPrivilege.names.concat([e]);this.props.onChange({...this.props.indexPrivilege,names:i}),this.state.fieldSecurityExpanded&&this.loadFLSOptions(i,!0)})),h()(this,"onIndexPatternsChange",(e=>{const i=e.map(j);this.props.onChange({...this.props.indexPrivilege,names:i}),this.state.fieldSecurityExpanded&&this.loadFLSOptions(i,!0)})),h()(this,"onPrivilegeChange",(e=>{this.props.onChange({...this.props.indexPrivilege,privileges:e.map(j)})})),h()(this,"onCreateCustomPrivilege",(e=>{this.props.onChange({...this.props.indexPrivilege,privileges:[...this.props.indexPrivilege.privileges,e]})})),h()(this,"onQueryChange",(e=>{this.props.onChange({...this.props.indexPrivilege,query:e})})),h()(this,"onCreateGrantedField",(e=>{if(!this.props.indexPrivilege.field_security||!this.props.indexPrivilege.field_security.grant)return;const i=this.props.indexPrivilege.field_security.grant.concat([e]);this.props.onChange({...this.props.indexPrivilege,field_security:{...this.props.indexPrivilege.field_security,grant:i}})})),h()(this,"onGrantedFieldsChange",(e=>{this.props.onChange({...this.props.indexPrivilege,field_security:{...this.props.indexPrivilege.field_security,grant:e.map(j)}})})),h()(this,"onCreateDeniedField",(e=>{if(!this.props.indexPrivilege.field_security||!this.props.indexPrivilege.field_security.except)return;const i=this.props.indexPrivilege.field_security.except.concat([e]);this.props.onChange({...this.props.indexPrivilege,field_security:{...this.props.indexPrivilege.field_security,except:i}})})),h()(this,"onDeniedFieldsChange",(e=>{this.props.onChange({...this.props.indexPrivilege,field_security:{...this.props.indexPrivilege.field_security,except:e.map(j)}})})),h()(this,"getFieldSecurity",(e=>{const{grant:i=[],except:t=[]}=e.field_security||{};return{grant:i,except:t}})),h()(this,"isFieldSecurityConfigured",(e=>{const{grant:i,except:t}=this.getFieldSecurity(e);return t.length>0||i.length>0&&!b.a.isEqual(i,["*"])}));const{grant:i,except:t}=this.getFieldSecurity(e.indexPrivilege);this.state={queryExpanded:!!e.indexPrivilege.query,fieldSecurityExpanded:this.isFieldSecurityConfigured(e.indexPrivilege),grantedFields:i,exceptedFields:t,documentQuery:e.indexPrivilege.query,documentQueryEditorHeight:"100px",isFieldListLoading:!1,flsOptions:[]}}componentDidMount(){this.state.fieldSecurityExpanded&&this.props.allowFieldLevelSecurity&&this.loadFLSOptions(this.props.indexPrivilege.names)}render(){return Object(v.jsx)(l.Fragment,null,Object(v.jsx)(r.EuiSpacer,{size:"m"}),Object(v.jsx)(r.EuiFlexGroup,{alignItems:"center",responsive:!1,className:"index-privilege-form"},Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiPanel,{color:"subdued"},this.getPrivilegeForm())),!this.props.isRoleReadOnly&&Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(r.EuiButtonIcon,{"aria-label":"remote_indices"===this.props.indexType?u.i18n.translate("xpack.security.management.editRole.indexPrivilegeForm.deleteRemoteIndexPrivilegeAriaLabel",{defaultMessage:"Delete remote index privilege"}):u.i18n.translate("xpack.security.management.editRole.indexPrivilegeForm.deleteIndexPrivilegeAriaLabel",{defaultMessage:"Delete index privilege"}),color:"danger",onClick:this.props.onDelete,iconType:"trash"}))))}}class index_privileges_IndexPrivileges extends l.Component{constructor(e){super(e),h()(this,"addIndexPrivilege",(()=>{var e;const{role:i,indexType:t}=this.props,s=[...null!==(e=i.elasticsearch[t])&&void 0!==e?e:[],{names:[],privileges:[],field_security:{grant:["*"]}}];this.props.onChange({...this.props.role,elasticsearch:{...this.props.role.elasticsearch,[t]:s}})})),h()(this,"onIndexPrivilegeChange",(e=>i=>{var t;const{role:s,indexType:a}=this.props,r=[...null!==(t=s.elasticsearch[a])&&void 0!==t?t:[]];r[e]=i,this.props.onChange({...this.props.role,elasticsearch:{...this.props.role.elasticsearch,[a]:r}})})),h()(this,"onIndexPrivilegeDelete",(e=>()=>{var i;const{role:t,indexType:s}=this.props,a=[...null!==(i=t.elasticsearch[s])&&void 0!==i?i:[]];a.splice(e,1),this.props.onChange({...this.props.role,elasticsearch:{...this.props.role.elasticsearch,[s]:a}})})),h()(this,"isPlaceholderPrivilege",(e=>0===e.names.length)),this.state={availableFields:{}}}render(){var e;const i=null!==(e=this.props.role.elasticsearch[this.props.indexType])&&void 0!==e?e:[],{indexPatterns:t=[],license:s,availableIndexPrivileges:o,indicesAPIClient:c}=this.props,{allowRoleDocumentLevelSecurity:u,allowRoleFieldLevelSecurity:g,allowRoleRemoteIndexPrivileges:p}=s.getFeatures(),h="remote_indices"===this.props.indexType&&!p,m={indexType:this.props.indexType,indexPatterns:t,indicesAPIClient:c,allowDocumentLevelSecurity:u||!Object(x.k)(this.props.role),allowFieldLevelSecurity:g||!Object(x.k)(this.props.role),isRoleReadOnly:!this.props.editable||Object(x.l)(this.props.role)||h};return Object(v.jsx)(l.Fragment,null,i.map(((e,i)=>Object(v.jsx)(index_privilege_form_IndexPrivilegeForm,a()({key:i},m,{formIndex:i,validator:this.props.validator,availableIndexPrivileges:o,indexPrivilege:e,onChange:this.onIndexPrivilegeChange(i),onDelete:this.onIndexPrivilegeDelete(i)})))),this.props.editable&&Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(r.EuiSpacer,{size:"m"}),Object(v.jsx)(r.EuiFlexGroup,{alignItems:"center",gutterSize:"s",responsive:!1},Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(r.EuiButton,{iconType:"plusInCircle",onClick:this.addIndexPrivilege,disabled:h},"remote_indices"===this.props.indexType?Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.elasticSearchPrivileges.addRemoteIndexPrivilegesButtonLabel",defaultMessage:"Add remote index privilege"}):Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.elasticSearchPrivileges.addIndexPrivilegesButtonLabel",defaultMessage:"Add index privilege"}))),h&&Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(r.EuiIconTip,{content:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.elasticSearchPrivileges.remoteIndexPrivilegesLicenseMissing",defaultMessage:"Your license does not allow configuring remote index privileges"}),position:"right"})))))}}h()(index_privileges_IndexPrivileges,"defaultProps",{editable:!0}),t(260);class collapsible_panel_CollapsiblePanel extends l.Component{constructor(e){super(e),h()(this,"state",{collapsed:!1}),h()(this,"getTitle",(()=>Object(v.jsx)(r.EuiFlexGroup,{alignItems:"baseline",gutterSize:"s",responsive:!1},Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(r.EuiTitle,null,Object(v.jsx)("h2",null,this.props.iconType&&Object(v.jsx)(l.Fragment,null,Object(v.jsx)(r.EuiIcon,{type:this.props.iconType,size:"xl",className:"collapsiblePanel__logo"})," "),this.props.title))),Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(r.EuiLink,{"data-test-subj":"showHidePrivilege",onClick:this.toggleCollapsed},this.state.collapsed?Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.collapsiblePanel.showLinkText",defaultMessage:"show"}):Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.collapsiblePanel.hideLinkText",defaultMessage:"hide"})))))),h()(this,"getForm",(()=>this.state.collapsed?null:Object(v.jsx)(l.Fragment,null,Object(v.jsx)(r.EuiSpacer,null),this.props.children))),h()(this,"toggleCollapsed",(()=>{this.setState({collapsed:!this.state.collapsed})})),this.state={collapsed:e.initiallyCollapsed||!1}}render(){return Object(v.jsx)(r.EuiPanel,{hasShadow:!1,hasBorder:!0},this.getTitle(),this.getForm())}}class elasticsearch_privileges_ElasticsearchPrivileges extends l.Component{constructor(...e){super(...e),h()(this,"getForm",(()=>{const{role:e,indicesAPIClient:i,docLinks:t,validator:s,onChange:a,editable:o,indexPatterns:c,license:g,builtinESPrivileges:p,canUseRemoteIndices:h}=this.props;return Object(v.jsx)(l.Fragment,null,Object(v.jsx)(r.EuiDescribedFormGroup,{title:Object(v.jsx)("h3",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.elasticSearchPrivileges.clusterPrivilegesTitle",defaultMessage:"Cluster privileges"})),description:Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.elasticSearchPrivileges.manageRoleActionsDescription",defaultMessage:"Manage the actions this role can perform against your cluster. "}),this.learnMore(t.links.security.clusterPrivileges))},Object(v.jsx)(r.EuiFormRow,{fullWidth:!0,hasEmptyLabelSpace:!0},Object(v.jsx)(cluster_privileges_ClusterPrivileges,{role:this.props.role,onChange:this.onClusterPrivilegesChange,builtinClusterPrivileges:p.cluster,editable:o}))),Object(v.jsx)(r.EuiSpacer,null),Object(v.jsx)(r.EuiDescribedFormGroup,{title:Object(v.jsx)("h3",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.elasticSearchPrivileges.runAsPrivilegesTitle",defaultMessage:"Run As privileges"})),description:Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.elasticSearchPrivileges.howToBeSubmittedOnBehalfOfOtherUsersDescription",defaultMessage:"Allow requests to be submitted on the behalf of other users. "}),this.learnMore(t.links.security.runAsPrivilege))},Object(v.jsx)(r.EuiComboBox,{"aria-label":u.i18n.translate("xpack.security.management.editRole.elasticSearchPrivileges.runAsPrivilegesAriaLabel",{defaultMessage:"Run as privileges"}),placeholder:this.props.editable?u.i18n.translate("xpack.security.management.editRole.elasticSearchPrivileges.addUserTitle",{defaultMessage:"Add a user…"}):void 0,options:this.props.runAsUsers.map((e=>({label:e,isGroupLabelOption:!1}))),selectedOptions:this.props.role.elasticsearch.run_as.map((e=>({label:e}))),onCreateOption:this.onCreateRunAsOption,onChange:this.onRunAsUserChange,isDisabled:!o})),Object(v.jsx)(r.EuiSpacer,null),Object(v.jsx)(r.EuiTitle,{size:"xs"},Object(v.jsx)("h3",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.elasticSearchPrivileges.indexPrivilegesTitle",defaultMessage:"Index privileges"}))),Object(v.jsx)(r.EuiSpacer,{size:"s"}),Object(v.jsx)(r.EuiText,{size:"s",color:"subdued"},Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.elasticSearchPrivileges.controlAccessToClusterDataDescription",defaultMessage:"Control access to the data in your cluster. "}),this.learnMore(t.links.security.indicesPrivileges))),Object(v.jsx)(index_privileges_IndexPrivileges,{indexType:"indices",indexPatterns:c,role:e,indicesAPIClient:i,validator:s,license:g,onChange:a,availableIndexPrivileges:p.index,editable:o}),h&&Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(r.EuiSpacer,null),Object(v.jsx)(r.EuiSpacer,null),Object(v.jsx)(r.EuiTitle,{size:"xs"},Object(v.jsx)("h3",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.elasticSearchPrivileges.remoteIndexPrivilegesTitle",defaultMessage:"Remote index privileges"}))),Object(v.jsx)(r.EuiSpacer,{size:"s"}),Object(v.jsx)(r.EuiText,{size:"s",color:"subdued"},Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.elasticSearchPrivileges.controlAccessToRemoteClusterDataDescription",defaultMessage:"Control access to the data in remote clusters. "}),this.learnMore(t.links.security.indicesPrivileges))),Object(v.jsx)(index_privileges_IndexPrivileges,{indexType:"remote_indices",role:e,indicesAPIClient:i,validator:s,license:g,onChange:a,availableIndexPrivileges:p.index,editable:o})))})),h()(this,"learnMore",(e=>Object(v.jsx)(r.EuiLink,{className:"editRole__learnMore",href:e,target:"_blank"},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.elasticSearchPrivileges.learnMoreLinkText",defaultMessage:"Learn more"})))),h()(this,"addIndexPrivilege",(()=>{const{role:e}=this.props,i=[...e.elasticsearch.indices,{names:[],privileges:[],field_security:{grant:["*"]}}];this.props.onChange({...this.props.role,elasticsearch:{...this.props.role.elasticsearch,indices:i}})})),h()(this,"onClusterPrivilegesChange",(e=>{const i={...this.props.role,elasticsearch:{...this.props.role.elasticsearch,cluster:e}};this.props.onChange(i)})),h()(this,"onRunAsUserChange",(e=>{const i={...this.props.role,elasticsearch:{...this.props.role.elasticsearch,run_as:e.map((e=>e.label))}};this.props.onChange(i)})),h()(this,"onCreateRunAsOption",(e=>{const i=this.props.role.elasticsearch.run_as.concat(e),t={...this.props.role,elasticsearch:{...this.props.role.elasticsearch,run_as:i}};this.props.onChange(t)}))}render(){return Object(v.jsx)(collapsible_panel_CollapsiblePanel,{iconType:"logoElasticsearch",title:"Elasticsearch"},this.getForm())}}class unsupported_space_privileges_warning_UnsupportedSpacePrivilegesWarning extends l.Component{constructor(...e){super(...e),h()(this,"getMessage",(()=>Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.unsupportedSpacePrivilegesWarning",defaultMessage:"This role contains privilege definitions for spaces, but spaces are not enabled in Kibana. Saving this role will remove these privileges."})))}render(){return Object(v.jsx)(r.EuiCallOut,{iconType:"warning",color:"warning",title:this.getMessage()})}}function f(e){return!e.spaces||0===e.spaces.length||e.spaces.includes("*")}const F="none",O="custom";t(265);var y=t(47),S=t.n(y);t(270);class change_all_privileges_ChangeAllPrivilegesControl extends l.Component{constructor(...e){super(...e),h()(this,"state",{isPopoverOpen:!1}),h()(this,"onSelectPrivilege",(e=>{this.props.onChange(e),this.setState({isPopoverOpen:!1})})),h()(this,"onButtonClick",(()=>{this.setState({isPopoverOpen:!this.state.isPopoverOpen})})),h()(this,"closePopover",(()=>{this.setState({isPopoverOpen:!1})}))}render(){const e=Object(v.jsx)(r.EuiLink,{onClick:this.onButtonClick,className:"secPrivilegeFeatureChangeAllLink","data-test-subj":"changeAllPrivilegesButton"},Object(v.jsx)(r.EuiText,{size:"xs"},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.changeAllPrivilegesLink",defaultMessage:"Bulk actions"})," ",Object(v.jsx)(r.EuiIcon,{size:"s",type:"arrowDown"}))),i=this.props.privileges.map((e=>Object(v.jsx)(r.EuiContextMenuItem,{key:e.id,"data-test-subj":`changeAllPrivileges-${e.id}`,onClick:()=>{this.onSelectPrivilege(e.id)},disabled:this.props.disabled},b.a.upperFirst(e.id))));return i.push(Object(v.jsx)(r.EuiContextMenuItem,{key:F,"data-test-subj":`changeAllPrivileges-${F}`,onClick:()=>{this.onSelectPrivilege(F)},disabled:this.props.disabled},b.a.upperFirst(F))),Object(v.jsx)(r.EuiPopover,{id:"changeAllFeaturePrivilegesPopover",button:e,isOpen:this.state.isPopoverOpen,closePopover:this.closePopover,panelPaddingSize:"none",anchorPosition:"downLeft"},Object(v.jsx)(r.EuiContextMenuPanel,{items:i}))}}const C=e=>{const i=e.subFeature.getPrivilegeGroups().filter((e=>e.privileges.length>0));return 0===i.length?null:Object(v.jsx)(r.EuiFlexGroup,{alignItems:"center"},Object(v.jsx)(r.EuiFlexItem,{grow:3},Object(v.jsx)(r.EuiFlexGroup,{gutterSize:"none",direction:"column"},Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiText,{size:"s"},e.subFeature.name," ",(()=>{if(!e.subFeature.privilegesTooltip)return null;const i=Object(v.jsx)(r.EuiText,null,Object(v.jsx)("p",null,e.subFeature.privilegesTooltip));return Object(v.jsx)(r.EuiIconTip,{iconProps:{className:"eui-alignTop"},type:"iInCircle",color:"subdued",content:i})})())),e.subFeature.description&&Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiText,{color:"subdued",size:"xs","data-test-subj":"subFeatureDescription","aria-describedby":`${e.subFeature.name} description text`},e.subFeature.description)))),Object(v.jsx)(r.EuiFlexItem,{grow:2},i.map((function(i,t){switch(i.groupType){case"independent":return function(i,t){return Object(v.jsx)("div",{key:t},i.privileges.map((i=>{const t=e.privilegeCalculator.isIndependentSubFeaturePrivilegeGranted(e.featureId,i.id,e.privilegeIndex);return Object(v.jsx)(r.EuiCheckbox,{key:i.id,id:`${e.featureId}_${i.id}`,label:i.name,"data-test-subj":"independentSubFeaturePrivilegeControl",onChange:t=>{const{checked:s}=t.target;s?e.onChange([...e.selectedFeaturePrivileges,i.id]):e.onChange(e.selectedFeaturePrivileges.filter((e=>e!==i.id)))},checked:t,disabled:e.disabled,compressed:!0})})))}(i,t);case"mutually_exclusive":return function(i,t){var s;const a=e.privilegeCalculator.getSelectedMutuallyExclusiveSubFeaturePrivilege(e.featureId,i,e.privilegeIndex),l=[...i.privileges.map(((i,t)=>({id:i.id,label:i.name,isDisabled:e.disabled})))];return l.push({id:F,label:"None",isDisabled:e.disabled}),Object(v.jsx)(r.EuiButtonGroup,{key:t,buttonSize:"compressed","data-test-subj":"mutexSubFeaturePrivilegeControl",isFullWidth:!0,options:l,idSelected:null!==(s=null==a?void 0:a.id)&&void 0!==s?s:F,isDisabled:e.disabled,onChange:t=>{const s=e.selectedFeaturePrivileges.filter((e=>!i.privileges.some((i=>i.id===e))));t===F?e.onChange(s):e.onChange([...s,t])},legend:u.i18n.translate("xpack.security.management.editRole.subFeatureForm.controlLegendText",{defaultMessage:"{subFeatureName} sub-feature privilege",values:{subFeatureName:e.subFeature.name}})})}(i,t);default:throw new Error(`Unsupported privilege group type: ${i.groupType}`)}}))))},E=({feature:e,onChange:i,privilegeIndex:t,privilegeCalculator:s,selectedFeaturePrivileges:a,allSpacesSelected:n,disabled:o,licenseAllowsSubFeatPrivCustomization:c})=>{const[g,p]=Object(l.useState)((()=>c&&e.getMinimalFeaturePrivileges().some((e=>a.includes(e.id)))));return Object(l.useEffect)((()=>{const i=e.getMinimalFeaturePrivileges().some((e=>a.includes(e.id)));c&&i||!g||p(!1)}),[e,g,a,c]),Object(v.jsx)(r.EuiFlexGroup,{direction:"column",gutterSize:"s"},Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)("div",null,Object(v.jsx)(r.EuiSwitch,{label:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.featureTable.customizeSubFeaturePrivilegesSwitchLabel",defaultMessage:"Customize sub-feature privileges"}),checked:g,onChange:a=>{i(e.id,s.updateSelectedFeaturePrivilegesForCustomization(e.id,t,a.target.checked)),p(a.target.checked)},"data-test-subj":"customizeSubFeaturePrivileges",disabled:o||!c||!s.canCustomizeSubFeaturePrivileges(e.id,t)}),c?void 0:Object(v.jsx)(r.EuiIconTip,{"data-test-subj":"subFeaturesTip",position:"right","aria-label":"sub-feature-information-tip",size:"m",type:"iInCircle",color:"subdued",iconProps:{className:"eui-alignTop"},content:u.i18n.translate("xpack.security.management.editRole.featureTable.cannotCustomizeSubFeaturesTooltip",{defaultMessage:"Customization of sub-feature privileges is a subscription feature."})}))),e.getSubFeatures().map((l=>{const c=l.requireAllSpaces&&!n;return Object(v.jsx)(r.EuiFlexItem,{key:l.name},Object(v.jsx)(C,{privilegeCalculator:s,privilegeIndex:t,featureId:e.id,subFeature:l,onChange:t=>i(e.id,t),selectedFeaturePrivileges:a,disabled:o||!g||c}))})))};t(275);const k=({feature:e,className:i})=>{let t=null;if(e.getPrivilegesTooltip()){const i=Object(v.jsx)(r.EuiText,null,Object(v.jsx)("p",null,e.getPrivilegesTooltip()));t=Object(v.jsx)(r.EuiIconTip,{iconProps:{className:"eui-alignTop"},type:"iInCircle",color:"subdued",content:i})}return Object(v.jsx)(r.EuiFlexGroup,{className:i,direction:"column",gutterSize:"none",component:"span"},Object(v.jsx)(r.EuiFlexItem,{"data-test-subj":"featureTableCell",component:"span"},Object(v.jsx)(r.EuiFlexGroup,{gutterSize:"xs"},Object(v.jsx)(r.EuiFlexItem,{className:"featurePrivilegeName",grow:!1},e.name),Object(v.jsx)(r.EuiFlexItem,{grow:!1},t))),e.description&&Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiText,{color:"subdued",size:"xs","data-test-subj":"featurePrivilegeDescriptionText","aria-describedby":`${e.name} description text`},e.description)))};class feature_table_FeatureTable extends l.Component{constructor(e){super(e),h()(this,"featureCategories",new Map),h()(this,"renderPrivilegeControlsForFeature",(e=>{var i;const t=(i,t,s)=>{var a;const l=e.getSubFeaturePrivileges().length>0;return Object(v.jsx)(r.EuiFlexGroup,{gutterSize:"s",alignItems:"center"},Object(v.jsx)(r.EuiFlexItem,{grow:!1},s),Object(v.jsx)(r.EuiFlexItem,{className:"eui-fullWidth"},Object(v.jsx)(r.EuiAccordion,{id:`featurePrivilegeControls_${e.id}`,"data-test-subj":"featurePrivilegeControls",buttonContent:i,buttonClassName:"euiAccordionWithDescription",extraAction:t,forceState:l?void 0:"closed",arrowDisplay:l?"left":"none",onToggle:i=>{i?this.state.expandedPrivilegeControls.add(e.id):this.state.expandedPrivilegeControls.delete(e.id),this.setState({expandedPrivilegeControls:new Set([...this.state.expandedPrivilegeControls])})}},Object(v.jsx)(r.EuiSpacer,{size:"s"}),Object(v.jsx)(r.EuiPanel,{color:"subdued",paddingSize:"s",className:"subFeaturePanel"},Object(v.jsx)(E,{feature:e,privilegeIndex:this.props.privilegeIndex,onChange:this.props.onChange,privilegeCalculator:this.props.privilegeCalculator,selectedFeaturePrivileges:null!==(a=this.props.role.kibana[this.props.privilegeIndex].feature[e.id])&&void 0!==a?a:[],allSpacesSelected:this.props.allSpacesSelected,disabled:this.props.disabled,licenseAllowsSubFeatPrivCustomization:this.props.canCustomizeSubFeaturePrivileges})))))},s=e.getPrimaryFeaturePrivileges();if(e.reserved&&0===s.length)return t(Object(v.jsx)(k,{className:"noSubFeaturePrivileges",feature:e}),Object(v.jsx)(r.EuiText,{style:{maxWidth:200},size:"xs","data-test-subj":"reservedFeatureDescription"},e.reserved.description),Object(v.jsx)(r.EuiIcon,{type:"empty"}));if(0===s.length)return null;const a=this.props.privilegeCalculator.getDisplayedPrimaryFeaturePrivilegeId(e.id,this.props.privilegeIndex,this.props.allSpacesSelected),l=s.filter((e=>!e.disabled)).map((i=>{const t=i.requireAllSpaces&&!this.props.allSpacesSelected;return{id:`${e.id}_${i.id}`,label:i.name,isDisabled:this.props.disabled||t}}));l.push({id:`${e.id}_${F}`,label:"None",isDisabled:null!==(i=this.props.disabled)&&void 0!==i&&i});let n=Object(v.jsx)(r.EuiIconTip,{type:"empty",content:null});!this.state.expandedPrivilegeControls.has(e.id)&&this.props.privilegeCalculator.hasCustomizedSubFeaturePrivileges(e.id,this.props.privilegeIndex,this.props.allSpacesSelected)&&(n=Object(v.jsx)(r.EuiIconTip,{type:"iInCircle",content:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.featureTable.privilegeCustomizationTooltip",defaultMessage:"Feature has customized sub-feature privileges. Expand this row for more information."})}));const o=e.getSubFeaturePrivileges().length>0;return t(Object(v.jsx)(k,{className:S()({noSubFeaturePrivileges:!o}),feature:e}),Object(v.jsx)(r.EuiButtonGroup,{name:`featurePrivilege_${e.id}`,"data-test-subj":"primaryFeaturePrivilegeControl",isFullWidth:!0,options:l,idSelected:`${e.id}_${null!=a?a:F}`,onChange:this.onChange(e.id),legend:u.i18n.translate("xpack.security.management.editRole.featureTable.actionLegendText",{defaultMessage:"{featureName} feature privilege",values:{featureName:e.name}}),style:{minWidth:200}}),n)})),h()(this,"onChange",(e=>i=>{const t=i.substr(`${e}_`.length);t===F?this.props.onChange(e,[]):this.props.onChange(e,[t])})),h()(this,"onChangeAllFeaturePrivileges",(e=>{e===F?this.props.onChangeAll([]):this.props.onChangeAll([e])})),h()(this,"getCategoryHelpText",(e=>{if("management"===e.id)return u.i18n.translate("xpack.security.management.editRole.featureTable.managementCategoryHelpText",{defaultMessage:"Access to Stack Management is determined by both Elasticsearch and Kibana privileges, and cannot be explicitly disabled."})})),e.kibanaPrivileges.getSecuredFeatures().filter((e=>null!=e.privileges||null!=e.reserved)).forEach((e=>{this.featureCategories.has(e.category.id)||this.featureCategories.set(e.category.id,[]),this.featureCategories.get(e.category.id).push(e)})),this.state={expandedPrivilegeControls:new Set}}render(){const e=this.props.kibanaPrivileges.getBasePrivileges(this.props.role.kibana[this.props.privilegeIndex]),i=[];return this.featureCategories.forEach((e=>{var t;const{category:s}=e[0],a=e.length,l=e.filter((e=>null!=this.props.privilegeCalculator.getEffectivePrimaryFeaturePrivilege(e.id,this.props.privilegeIndex,this.props.allSpacesSelected))).length,o=Object(v.jsx)(r.EuiFlexGroup,{"data-test-subj":`featureCategoryButton_${s.id}`,alignItems:"center",responsive:!1,gutterSize:"m"},s.euiIconType?Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(r.EuiIcon,{size:"m",type:s.euiIconType})):null,Object(v.jsx)(r.EuiFlexItem,{grow:1},Object(v.jsx)(r.EuiTitle,{size:"xs"},Object(v.jsx)("h4",{className:"eui-displayInlineBlock"},s.label)))),c=u.i18n.translate("xpack.security.management.editRole.featureTable.featureAccordionSwitchLabel",{defaultMessage:"{grantedCount} / {featureCount} {featureCount, plural, one {feature} other {features}} granted",values:{grantedCount:l,featureCount:a}}),d=Object(v.jsx)(r.EuiText,{size:"s","aria-hidden":"true",color:"subdued","data-test-subj":"categoryLabel"},c),g=this.getCategoryHelpText(s),p=Object(v.jsx)(r.EuiAccordion,{id:`featureCategory_${s.id}`,"data-test-subj":`featureCategory_${s.id}`,key:s.id,arrowDisplay:"left",forceState:void 0,buttonContent:o,extraAction:d},Object(v.jsx)("div",null,Object(v.jsx)(r.EuiSpacer,{size:"s"}),g&&Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(r.EuiCallOut,{iconType:"iInCircle",size:"s"},g),Object(v.jsx)(r.EuiSpacer,{size:"s"})),Object(v.jsx)(r.EuiFlexGroup,{direction:"column",gutterSize:"s"},e.map((e=>Object(v.jsx)(r.EuiFlexItem,{key:e.id},this.renderPrivilegeControlsForFeature(e)))))));i.push({order:null!==(t=s.order)&&void 0!==t?t:Number.MAX_SAFE_INTEGER,element:p})})),i.sort(((e,i)=>e.order-i.order)),Object(v.jsx)("div",null,Object(v.jsx)(r.EuiFlexGroup,{alignItems:"flexEnd"},Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiText,{size:"xs"},Object(v.jsx)("b",null,u.i18n.translate("xpack.security.management.editRole.featureTable.featureVisibilityTitle",{defaultMessage:"Customize feature privileges"})))),!this.props.disabled&&Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(change_all_privileges_ChangeAllPrivilegesControl,{privileges:e,onChange:this.onChangeAllFeaturePrivileges}))),Object(v.jsx)(r.EuiHorizontalRule,{margin:"m"}),i.flatMap(((e,i)=>[e.element,Object(v.jsx)(r.EuiHorizontalRule,{key:`accordion-hr-${i}`,margin:"m"})])))}}h()(feature_table_FeatureTable,"defaultProps",{privilegeIndex:-1,showLocks:!0});class privilege_form_calculator_PrivilegeFormCalculator{constructor(e,i){this.kibanaPrivileges=e,this.role=i}getBasePrivilege(e){const i=this.role.kibana[e];return this.kibanaPrivileges.getBasePrivileges(i).find((e=>i.base.includes(e.id)))}getDisplayedPrimaryFeaturePrivilegeId(e,i,t){var s;return null===(s=this.getDisplayedPrimaryFeaturePrivilege(e,i,t))||void 0===s?void 0:s.id}hasCustomizedSubFeaturePrivileges(e,i,t){const s=this.kibanaPrivileges.getSecuredFeature(e),a=this.getDisplayedPrimaryFeaturePrivilege(e,i,t),r=this.kibanaPrivileges.createCollectionFromRoleKibanaPrivileges([this.role.kibana[i]]);return s.getSubFeaturePrivileges().some((e=>{var i;const t=r.grantsPrivilege(e);return t!==(null!==(i=null==a?void 0:a.grantsPrivilege(e))&&void 0!==i?i:t)}))}getEffectivePrimaryFeaturePrivilege(e,i,t){const s=this.kibanaPrivileges.getSecuredFeature(e),a=this.getBasePrivilege(i),r=this.getSelectedFeaturePrivileges(e,i),l=s.getPrimaryFeaturePrivileges({includeMinimalFeaturePrivileges:!0}).find((e=>r.includes(e.id)||(null==a?void 0:a.grantsPrivilege(e))));if((null==l||!l.requireAllSpaces||t)&&(null==l||!l.disabled))return l}isIndependentSubFeaturePrivilegeGranted(e,i,t){const s=this.role.kibana[t],a=this.kibanaPrivileges.getSecuredFeature(e).getSubFeaturePrivileges().find((e=>e.id===i));return this.kibanaPrivileges.createCollectionFromRoleKibanaPrivileges([s]).grantsPrivilege(a)}getSelectedMutuallyExclusiveSubFeaturePrivilege(e,i,t){const s=this.role.kibana[t],a=this.kibanaPrivileges.createCollectionFromRoleKibanaPrivileges([s]);return i.privileges.find((e=>a.grantsPrivilege(e)))}canCustomizeSubFeaturePrivileges(e,i){const t=this.getSelectedFeaturePrivileges(e,i);return this.kibanaPrivileges.getSecuredFeature(e).getPrimaryFeaturePrivileges({includeMinimalFeaturePrivileges:!0}).some((e=>t.includes(e.id)))}updateSelectedFeaturePrivilegesForCustomization(e,i,t){const s=this.getDisplayedPrimaryFeaturePrivilege(e,i),a=this.getSelectedFeaturePrivileges(e,i);if(!s)return a;const r=[];if(t){const i=this.kibanaPrivileges.getSecuredFeature(e).getSubFeaturePrivileges().filter((e=>s.grantsPrivilege(e))).map((e=>e.id));r.push(s.getMinimalPrivilegeId(),...i)}else r.push(s.id);return r}hasSupersededInheritedPrivileges(e){const i=this.locateGlobalPrivilege(this.role),t=this.role.kibana[e];if(f(t)||!i)return!1;const s=this.kibanaPrivileges.createCollectionFromRoleKibanaPrivileges([i]),a=this.kibanaPrivileges.createCollectionFromRoleKibanaPrivileges([t]),r=this.kibanaPrivileges.getBasePrivileges(t).some((e=>t.base.includes(e.id))),l=this.kibanaPrivileges.getSecuredFeatures().filter((e=>e.getAllPrivileges().some((i=>{var s;return null===(s=t.feature[e.id])||void 0===s?void 0:s.includes(i.id)})))),n=r&&this.kibanaPrivileges.getBasePrivileges(t).some((e=>s.grantsPrivilege(e)&&!a.grantsPrivilege(e))),o=l.some((e=>e.getAllPrivileges().some((e=>s.grantsPrivilege(e)&&!a.grantsPrivilege(e)))));return n||o}getDisplayedPrimaryFeaturePrivilege(e,i,t){const s=this.kibanaPrivileges.getSecuredFeature(e),a=this.getBasePrivilege(i),r=this.getSelectedFeaturePrivileges(e,i),l=s.getPrimaryFeaturePrivileges().find((e=>{const i=e.getMinimalPrivilegeId(),t=s.getMinimalFeaturePrivileges().find((e=>e.id===i)),l=e.grantsPrivilege(t);return r.includes(e.id)||l&&r.includes(i)||(null==a?void 0:a.grantsPrivilege(e))}));if((null==l||!l.requireAllSpaces||t)&&(null==l||!l.disabled))return l}getSelectedFeaturePrivileges(e,i){var t;return null!==(t=this.role.kibana[i].feature[e])&&void 0!==t?t:[]}locateGlobalPrivilege(e){return e.kibana.find((e=>f(e)))}}class simple_privilege_section_SimplePrivilegeSection extends l.Component{constructor(e){super(e),h()(this,"getDisplayedBasePrivilege",(()=>{if(this.state.isCustomizingGlobalPrivilege)return O;const{role:e}=this.props,i=this.locateGlobalPrivilege(e);return i&&i.base.length>0?i.base[0]:F})),h()(this,"onKibanaPrivilegeChange",(e=>{const i=Object(x.d)(this.props.role),t=this.locateGlobalPrivilege(i)||this.createGlobalPrivilegeEntry(i);e===F?i.kibana=i.kibana.filter((e=>!f(e))):e===O?t.base=[]:(t.base=[e],t.feature={}),this.props.onChange(i),this.setState({isCustomizingGlobalPrivilege:e===O,globalPrivsIndex:i.kibana.indexOf(t)})})),h()(this,"onFeaturePrivilegeChange",((e,i)=>{const t=Object(x.d)(this.props.role),s=this.locateGlobalPrivilege(t)||this.createGlobalPrivilegeEntry(t);i.length>0?s.feature[e]=[...i]:delete s.feature[e],this.props.onChange(t)})),h()(this,"onChangeAllFeaturePrivileges",(e=>{const i=Object(x.d)(this.props.role),t=this.locateGlobalPrivilege(i)||this.createGlobalPrivilegeEntry(i);e.length>0?this.props.kibanaPrivileges.getSecuredFeatures().forEach((i=>{t.feature[i.id]=[...e]})):t.feature={},this.props.onChange(i)})),h()(this,"maybeRenderSpacePrivilegeWarning",(()=>this.props.role.kibana.some((e=>!f(e)))?Object(v.jsx)(r.EuiFormRow,{fullWidth:!0},Object(v.jsx)(unsupported_space_privileges_warning_UnsupportedSpacePrivilegesWarning,null)):null)),h()(this,"locateGlobalPrivilegeIndex",(e=>e.kibana.findIndex((e=>f(e))))),h()(this,"locateGlobalPrivilege",(e=>e.kibana.find((e=>f(e)))));const i=this.locateGlobalPrivilege(e.role),t=this.locateGlobalPrivilegeIndex(e.role);this.state={isCustomizingGlobalPrivilege:Boolean(i&&Object.keys(i.feature).length>0),globalPrivsIndex:t}}render(){var e,i;const t=this.getDisplayedBasePrivilege(),s=null!==(e=null===(i=this.props.role.kibana[this.state.globalPrivsIndex])||void 0===i?void 0:i._reserved)&&void 0!==e?e:[],a=Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.kibanaPrivilegesTitle",defaultMessage:"Kibana privileges"}),o=Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.specifyPrivilegeForRoleDescription",defaultMessage:"Specifies the Kibana privilege for this role."}));return Object(v.jsx)(l.Fragment,null,Object(v.jsx)(r.EuiFlexGroup,{direction:"column"},Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiText,{size:"s",color:"subdued"},o)),Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiFormRow,{label:a},s.length>0?Object(v.jsx)(r.EuiComboBox,{fullWidth:!0,selectedOptions:s.map((e=>({label:e}))),isDisabled:!0}):Object(v.jsx)(r.EuiSuperSelect,{disabled:!this.props.editable,onChange:this.onKibanaPrivilegeChange,options:[{value:F,inputDisplay:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.noPrivilegeInput",defaultMessage:"None"}),dropdownDisplay:Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)("strong",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.noPrivilegeDropdown",defaultMessage:"None"})),Object(v.jsx)(r.EuiText,{size:"s",color:"subdued"},Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.noPrivilegeDropdownDescription",defaultMessage:"No access to Kibana"}))))},{value:"read",inputDisplay:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.readPrivilegeInput",defaultMessage:"Read"}),dropdownDisplay:Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)("strong",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.readPrivilegeDropdown",defaultMessage:"Read"})),Object(v.jsx)(r.EuiText,{size:"s",color:"subdued"},Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.readPrivilegeDropdownDescription",defaultMessage:"Grants read-only access to all of Kibana"}))))},{value:"all",inputDisplay:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.allPrivilegeInput",defaultMessage:"All"}),dropdownDisplay:Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)("strong",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.allPrivilegeDropdown",defaultMessage:"All"})),Object(v.jsx)(r.EuiText,{size:"s",color:"subdued"},Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.allPrivilegeDropdownDescription",defaultMessage:"Grants full access to all of Kibana"}))))},{value:O,inputDisplay:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.customPrivilegeInput",defaultMessage:"Custom"}),dropdownDisplay:Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)("strong",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.customPrivilegeDropdown",defaultMessage:"Custom"})),Object(v.jsx)(r.EuiText,{size:"s",color:"subdued"},Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.simplePrivilegeForm.customPrivilegeDropdownDescription",defaultMessage:"Customize access to Kibana"}))))}],hasDividers:!0,valueOfSelected:t})),this.state.isCustomizingGlobalPrivilege&&Object(v.jsx)(r.EuiFormRow,{fullWidth:!0},Object(v.jsx)(feature_table_FeatureTable,{role:this.props.role,kibanaPrivileges:this.props.kibanaPrivileges,privilegeCalculator:new privilege_form_calculator_PrivilegeFormCalculator(this.props.kibanaPrivileges,this.props.role),onChange:this.onFeaturePrivilegeChange,onChangeAll:this.onChangeAllFeaturePrivileges,privilegeIndex:this.props.role.kibana.findIndex((e=>f(e))),canCustomizeSubFeaturePrivileges:this.props.canCustomizeSubFeaturePrivileges,allSpacesSelected:!0,disabled:!this.props.editable})),this.maybeRenderSpacePrivilegeWarning())))}createGlobalPrivilegeEntry(e){const i={spaces:["*"],base:[],feature:{}};return e.kibana.push(i),i}}var _=t(52);const M=(e,i)=>{if(e)return{id:`spaceOption_${e.id}`,label:e.name,color:Object(_.getSpaceColor)(e),disabled:"global"===i&&"*"!==e.id||"spaces"===i&&"*"===e.id}};class space_selector_SpaceSelector extends l.Component{constructor(...e){super(...e),h()(this,"onChange",(e=>{this.props.onChange(e.map((e=>e.id.split("spaceOption_")[1])))})),h()(this,"getOptions",(()=>this.props.spaces.map((e=>M(e,this.props.selectedSpaceIds.includes("*")?"global":this.props.selectedSpaceIds.length>0?"spaces":void 0))).filter(Boolean))),h()(this,"getSelectedOptions",(()=>{var e;return this.props.selectedSpaceIds.map((e=this.props.spaces,i=>M(e.find((e=>e.id===i))))).filter(Boolean)}))}render(){return Object(v.jsx)(r.EuiComboBox,{"data-test-subj":"spaceSelectorComboBox","aria-label":u.i18n.translate("xpack.security.management.editRole.spaceSelectorLabel",{defaultMessage:"Spaces"}),fullWidth:!0,options:this.getOptions(),renderOption:(e,i,t)=>{const{color:s,label:a}=e;return Object(v.jsx)(r.EuiHealth,{color:s},Object(v.jsx)("span",{className:t},Object(v.jsx)(r.EuiHighlight,{search:i},a)))},selectedOptions:this.getSelectedOptions(),isDisabled:this.props.disabled,onChange:this.onChange})}}var I=t(11);class privilege_space_form_PrivilegeSpaceForm extends l.Component{constructor(e){super(e),h()(this,"getForm",(()=>{const{spaces:e}=this.props,i=this.state.selectedSpaceIds.length>0;return Object(v.jsx)(r.EuiForm,null,Object(v.jsx)(r.EuiFormRow,{fullWidth:!0,label:u.i18n.translate("xpack.security.management.editRole.spacePrivilegeForm.spaceSelectorFormLabel",{defaultMessage:"Spaces"}),helpText:u.i18n.translate("xpack.security.management.editRole.spacePrivilegeForm.spaceSelectorFormHelpText",{defaultMessage:"Select one or more Kibana spaces to which you wish to assign privileges."})},Object(v.jsx)(space_selector_SpaceSelector,{selectedSpaceIds:this.state.selectedSpaceIds,onChange:this.onSelectedSpacesChange,spaces:e})),this.getPrivilegeCallout(),Object(v.jsx)(r.EuiFormRow,{fullWidth:!0,label:u.i18n.translate("xpack.security.management.editRole.spacePrivilegeForm.privilegeSelectorFormLabel",{defaultMessage:"Privileges for all features"}),helpText:u.i18n.translate("xpack.security.management.editRole.spacePrivilegeForm.privilegeSelectorFormHelpText",{defaultMessage:"Assign the privilege level you wish to grant to all present and future features across this space."})},Object(v.jsx)(r.EuiButtonGroup,{name:"basePrivilegeButtonGroup","data-test-subj":"basePrivilegeButtonGroup",isFullWidth:!0,color:"primary",options:[{id:"basePrivilege_all",label:"All","data-test-subj":"basePrivilege_all"},{id:"basePrivilege_read",label:"Read","data-test-subj":"basePrivilege_read"},{id:"basePrivilege_custom",label:"Customize","data-test-subj":"basePrivilege_custom"}],idSelected:this.getDisplayedBasePrivilege(),isDisabled:!i,onChange:this.onSpaceBasePrivilegeChange,legend:u.i18n.translate("xpack.security.management.editRole.spacePrivilegeForm.basePrivilegeControlLegend",{defaultMessage:"Privileges for all features"})})),Object(v.jsx)(r.EuiSpacer,null),Object(v.jsx)(r.EuiTitle,{size:"xxs"},Object(v.jsx)("h3",null,this.getFeatureListLabel(this.state.selectedBasePrivilege.length>0))),Object(v.jsx)(r.EuiSpacer,{size:"xs"}),Object(v.jsx)(r.EuiText,{size:"s"},Object(v.jsx)("p",null,this.getFeatureListDescription(this.state.selectedBasePrivilege.length>0))),Object(v.jsx)(r.EuiSpacer,{size:"l"}),Object(v.jsx)(feature_table_FeatureTable,{role:this.state.role,privilegeCalculator:this.state.privilegeCalculator,onChange:this.onFeaturePrivilegesChange,onChangeAll:this.onChangeAllFeaturePrivileges,kibanaPrivileges:this.props.kibanaPrivileges,privilegeIndex:this.state.privilegeIndex,canCustomizeSubFeaturePrivileges:this.props.canCustomizeSubFeaturePrivileges,disabled:this.state.selectedBasePrivilege.length>0||!i,allSpacesSelected:this.state.selectedSpaceIds.includes(I.a)}),this.requiresGlobalPrivilegeWarning()&&Object(v.jsx)(l.Fragment,null,Object(v.jsx)(r.EuiSpacer,{size:"l"}),Object(v.jsx)(r.EuiCallOut,{color:"warning",iconType:"warning","data-test-subj":"globalPrivilegeWarning",title:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spacePrivilegeForm.globalPrivilegeWarning",defaultMessage:"Creating a global privilege might impact your other space privileges."})})))})),h()(this,"getSaveButton",(()=>{const{mode:e}=this.state,i=this.isDefiningGlobalPrivilege();let t;switch(e){case"create":t=i?Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRolespacePrivilegeForm.createGlobalPrivilegeButton",defaultMessage:"Create global privilege"}):Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRolespacePrivilegeForm.createPrivilegeButton",defaultMessage:"Add Kibana privilege"});break;case"update":t=i?Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRolespacePrivilegeForm.updateGlobalPrivilegeButton",defaultMessage:"Update global privilege"}):Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRolespacePrivilegeForm.updatePrivilegeButton",defaultMessage:"Update space privilege"});break;default:throw new Error(`Unsupported mode: ${e}`)}let s="primary";return this.requiresGlobalPrivilegeWarning()&&(s="warning"),Object(v.jsx)(r.EuiButton,{onClick:this.onSaveClick,fill:!0,disabled:!this.canSave(),color:s,"data-test-subj":"createSpacePrivilegeButton"},t)})),h()(this,"getFeatureListLabel",(e=>e?u.i18n.translate("xpack.security.management.editRole.spacePrivilegeForm.summaryOfFeaturePrivileges",{defaultMessage:"Summary of feature privileges"}):u.i18n.translate("xpack.security.management.editRole.spacePrivilegeForm.customizeFeaturePrivileges",{defaultMessage:"Customize by feature"}))),h()(this,"getFeatureListDescription",(e=>e?u.i18n.translate("xpack.security.management.editRole.spacePrivilegeForm.featurePrivilegeSummaryDescription",{defaultMessage:"Some features might be hidden by the space or affected by a global space privilege."}):u.i18n.translate("xpack.security.management.editRole.spacePrivilegeForm.customizeFeaturePrivilegeDescription",{defaultMessage:"Increase privilege levels on a per feature basis. Some features might be hidden by the space or affected by a global space privilege."}))),h()(this,"getPrivilegeCallout",(()=>this.isDefiningGlobalPrivilege()?Object(v.jsx)(r.EuiFormRow,{fullWidth:!0},Object(v.jsx)(r.EuiCallOut,{color:"primary",iconType:"iInCircle",title:u.i18n.translate("xpack.security.management.editRole.spacePrivilegeForm.globalPrivilegeNotice",{defaultMessage:"These privileges will apply to all current and future spaces."})})):null)),h()(this,"closeFlyout",(()=>{this.props.onCancel()})),h()(this,"onSaveClick",(()=>{const e=Object(x.d)(this.state.role),i=e.kibana[this.state.privilegeIndex];this.isDefiningGlobalPrivilege()||(i.spaces=i.spaces.filter((e=>this.props.spaces.find((i=>i.id===e))))),this.props.onChange(e)})),h()(this,"onSelectedSpacesChange",(e=>{const i=Object(x.d)(this.state.role),t=i.kibana[this.state.privilegeIndex];t.spaces=[...e],t.feature=this.resetRoleFeature(t.feature,e),this.setState({selectedSpaceIds:e,role:i,privilegeCalculator:new privilege_form_calculator_PrivilegeFormCalculator(this.props.kibanaPrivileges,i)})})),h()(this,"onSpaceBasePrivilegeChange",(e=>{const i=Object(x.d)(this.state.role),t=i.kibana[this.state.privilegeIndex],s=e.split("basePrivilege_")[1];let a=!1;s===O?(t.base=[],a=!0):(t.base=[s],t.feature={}),this.setState({selectedBasePrivilege:s===O?[]:[s],role:i,isCustomizingFeaturePrivileges:a,privilegeCalculator:new privilege_form_calculator_PrivilegeFormCalculator(this.props.kibanaPrivileges,i)})})),h()(this,"resetRoleFeature",((e,i)=>{const t=this.props.kibanaPrivileges.getSecuredFeatures();return Object.entries(e).reduce(((e,[s,a])=>{var r;if(!Array.isArray(a))return e;const l=t.find((e=>e.id===s)),n=null!==(r=null==l?void 0:l.getPrimaryFeaturePrivileges({includeMinimalFeaturePrivileges:!0}).find((e=>a.includes(e.id))))&&void 0!==r?r:{disabled:!1,requireAllSpaces:!1},o=i.includes(I.a);l&&l.getSubFeatures().forEach((e=>{e.privileges.forEach((i=>{a.includes(i.id)&&e.requireAllSpaces&&!o&&Object(m.remove)(a,(e=>e===i.id))}))}));const c=null!=n&&n.disabled||null!=n&&n.requireAllSpaces&&!o?[]:a;return{...e,...c.length&&{[s]:c}}}),{})})),h()(this,"getDisplayedBasePrivilege",(()=>{const e=this.state.privilegeCalculator.getBasePrivilege(this.state.privilegeIndex);return e?`basePrivilege_${e.id}`:`basePrivilege_${O}`})),h()(this,"onFeaturePrivilegesChange",((e,i)=>{this.setRole(i,e)})),h()(this,"onChangeAllFeaturePrivileges",(e=>{this.setRole(e)})),h()(this,"canSave",(()=>{if(0===this.state.selectedSpaceIds.length)return!1;const e=this.state.role.kibana[this.state.privilegeIndex];return 0!==e.base.length||0!==Object.keys(e.feature).length})),h()(this,"isDefiningGlobalPrivilege",(()=>this.state.selectedSpaceIds.includes("*"))),h()(this,"requiresGlobalPrivilegeWarning",(()=>{const e=this.props.role.kibana.length>0;return"create"===this.state.mode&&this.isDefiningGlobalPrivilege()&&e}));const i=Object(x.d)(e.role);let t=e.privilegeIndex;t<0&&(t=i.kibana.push({spaces:[],base:[],feature:{}})-1),this.state={role:i,privilegeIndex:t,selectedSpaceIds:[...i.kibana[t].spaces],selectedBasePrivilege:[...i.kibana[t].base||[]],mode:e.privilegeIndex<0?"create":"update",isCustomizingFeaturePrivileges:!1,privilegeCalculator:new privilege_form_calculator_PrivilegeFormCalculator(e.kibanaPrivileges,i)}}render(){return Object(v.jsx)(r.EuiFlyout,{onClose:this.closeFlyout,size:"m",maxWidth:!0,maskProps:{headerZindexLocation:"below"}},Object(v.jsx)(r.EuiFlyoutHeader,{hasBorder:!0},Object(v.jsx)(r.EuiTitle,{size:"m"},Object(v.jsx)("h2",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spacePrivilegeForm.modalTitle",defaultMessage:"Kibana privileges"})))),Object(v.jsx)(r.EuiFlyoutBody,null,Object(v.jsx)(r.EuiErrorBoundary,null,this.getForm())),Object(v.jsx)(r.EuiFlyoutFooter,null,this.state.privilegeCalculator.hasSupersededInheritedPrivileges(this.state.privilegeIndex)&&Object(v.jsx)(l.Fragment,null,Object(v.jsx)(r.EuiCallOut,{color:"warning",iconType:"warning","data-test-subj":"spaceFormGlobalPermissionsSupersedeWarning",title:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spacePrivilegeForm.supersededWarningTitle",defaultMessage:"Superseded by global privileges"})},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spacePrivilegeForm.supersededWarning",defaultMessage:"Declared privileges are less permissive than configured global privileges. View the privilege summary to see effective privileges."})),Object(v.jsx)(r.EuiSpacer,{size:"s"})),Object(v.jsx)(r.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(r.EuiButtonEmpty,{iconType:"cross",onClick:this.closeFlyout,flush:"left","data-test-subj":"cancelSpacePrivilegeButton"},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spacePrivilegeForm.cancelButton",defaultMessage:"Cancel"}))),Object(v.jsx)(r.EuiFlexItem,{grow:!1},this.getSaveButton()))))}setRole(e,i){const t=Object(x.d)(this.state.role),s=t.kibana[this.state.privilegeIndex];if(0===e.length)i?delete s.feature[i]:s.feature={};else{let t=this.props.kibanaPrivileges.getSecuredFeatures();i&&(t=[t.find((e=>e.id===i))]),t.forEach((i=>{const t=i.getPrimaryFeaturePrivileges({includeMinimalFeaturePrivileges:!0}).find((i=>!(null!=i&&i.disabled||null!=i&&i.requireAllSpaces&&!this.state.selectedSpaceIds.includes(I.a))&&Array.isArray(e)&&e.includes(i.id)));let a=[];t&&(a=[t.id],i.getSubFeaturePrivileges().forEach((i=>{Array.isArray(e)&&e.includes(i.id)&&(!i.requireAllSpaces||i.requireAllSpaces&&this.state.selectedSpaceIds.includes(I.a))&&a.push(i.id)}))),0===a.length?delete s.feature[i.id]:s.feature[i.id]=a}))}this.setState({role:t,privilegeCalculator:new privilege_form_calculator_PrivilegeFormCalculator(this.props.kibanaPrivileges,t)})}}h()(privilege_space_form_PrivilegeSpaceForm,"defaultProps",{privilegeIndex:-1}),t(280);const R=e=>Object(v.jsx)(w,e),w=e=>{const{privilege:i,...t}=e,s=Object(v.jsx)(r.EuiText,t,function(e){const i=function(e){return void 0===e?[]:Array.isArray(e)?e:[e]}(e);let t;return t=0===i.length||1===i.length&&i.includes(F)?Object(v.jsx)(r.EuiIcon,{color:"subdued",type:"minusInCircle"}):i.map((e=>b.a.upperFirst(e))).join(", "),t}(i));return s};R.defaultProps={privilege:[]};class privilege_space_table_PrivilegeSpaceTable extends l.Component{constructor(...e){super(...e),h()(this,"state",{expandedSpacesGroups:[]}),h()(this,"renderKibanaPrivileges",(()=>{const{privilegeCalculator:e,displaySpaces:i}=this.props,t=this.getSortedPrivileges().map(((e,t)=>({spaces:e.spaces.map((e=>i.find((i=>i.id===e))||{id:e,name:e,disabledFeatures:[],deleted:!0})),privilegeIndex:t,isGlobal:f(e),privileges:{spaces:e.spaces,base:e.base||[],feature:e.feature||{},reserved:e._reserved||[]}}))),s=[{field:"spaces",name:"Spaces",width:"60%",render:(e,i)=>{const t=this.state.expandedSpacesGroups.includes(i.privilegeIndex),s=t?e:e.slice(0,4);let l=null;return e.length>s.length?l=Object(v.jsx)(r.EuiButtonEmpty,{size:"xs",onClick:()=>this.toggleExpandSpacesGroup(i.privilegeIndex)},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spacePrivilegeTable.showNMoreSpacesLink",defaultMessage:"+{count} more",values:{count:e.length-s.length}})):t&&(l=Object(v.jsx)(r.EuiButtonEmpty,{size:"xs",onClick:()=>this.toggleExpandSpacesGroup(i.privilegeIndex)},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spacePrivilegeTable.showLessSpacesLink",defaultMessage:"show less"}))),Object(v.jsx)("div",null,Object(v.jsx)("span",{"data-test-subj":"spacesColumn"},s.map((e=>Object(v.jsx)(r.EuiBadge,a()({key:e.id},(e=>e.deleted?{iconType:"trash"}:{})(e),{color:Object(_.getSpaceColor)(e)}),e.name)))),l)}},{field:"privileges",name:"Privileges",render:(i,t)=>{var s,a;if(i.reserved.length>0)return Object(v.jsx)(R,{privilege:i.reserved,"data-test-subj":"privilegeColumn"});let l=Object(v.jsx)(r.EuiIcon,{type:"empty",size:"s"});return e.hasSupersededInheritedPrivileges(t.privilegeIndex)&&(l=Object(v.jsx)("span",{"data-test-subj":"spaceTablePrivilegeSupersededWarning"},Object(v.jsx)(r.EuiIconTip,{type:"warning",size:"s",content:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spacePrivilegeTable.supersededPrivilegeWarning",defaultMessage:"Privileges are superseded by configured global privilege. View the privilege summary to see effective privileges."})}))),Object(v.jsx)(r.EuiFlexGroup,{gutterSize:"xs",alignItems:"center"},Object(v.jsx)(r.EuiFlexItem,{grow:!1},l),Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(R,{privilege:null!==(s=null===(a=e.getBasePrivilege(t.privilegeIndex))||void 0===a?void 0:a.id)&&void 0!==s?s:O,"data-test-subj":"privilegeColumn"})))}}];return this.props.disabled||s.push({name:"Actions",actions:[{render:e=>Object(v.jsx)(r.EuiButtonIcon,{"aria-label":u.i18n.translate("xpack.security.management.editRole.spacePrivilegeTable.editPrivilegesLabel",{defaultMessage:"Edit privileges for the following spaces: {spaceNames}.",values:{spaceNames:e.spaces.map((e=>e.name)).join(", ")}}),color:"primary",iconType:"pencil",onClick:()=>this.props.onEdit(e.privilegeIndex)})},{render:e=>Object(v.jsx)(r.EuiButtonIcon,{"aria-label":u.i18n.translate("xpack.security.management.editRole.spacePrivilegeTable.deletePrivilegesLabel",{defaultMessage:"Delete privileges for the following spaces: {spaceNames}.",values:{spaceNames:e.spaces.map((e=>e.name)).join(", ")}}),color:"danger",iconType:"trash",onClick:()=>this.onDeleteSpacePrivilege(e)})}]}),Object(v.jsx)(r.EuiInMemoryTable,{columns:s,items:t,hasActions:!0,rowProps:e=>({className:f(e.privileges)?"secPrivilegeTable__row--isGlobalSpace":""})})})),h()(this,"getSortedPrivileges",(()=>this.props.role.kibana.sort(((e,i)=>f(e)?-1:f(i)?1:0)))),h()(this,"toggleExpandSpacesGroup",(e=>{this.state.expandedSpacesGroups.includes(e)?this.setState({expandedSpacesGroups:this.state.expandedSpacesGroups.filter((i=>i!==e))}):this.setState({expandedSpacesGroups:[...this.state.expandedSpacesGroups,e]})})),h()(this,"onDeleteSpacePrivilege",(e=>{const i=Object(x.d)(this.props.role);i.kibana.splice(e.privilegeIndex,1),this.props.onChange(i),this.setState({expandedSpacesGroups:this.state.expandedSpacesGroups.filter((i=>i!==e.privilegeIndex))})}))}render(){return this.renderKibanaPrivileges()}}class privilege_summary_calculator_PrivilegeSummaryCalculator{constructor(e,i){this.kibanaPrivileges=e,this.role=i}getEffectiveFeaturePrivileges(e){const i=this.collectAssignedPrivileges(e);return this.kibanaPrivileges.getSecuredFeatures().reduce(((t,s)=>{const a=this.getDisplayedPrimaryFeaturePrivilege(i,s),r=s.getSubFeaturePrivileges().filter((e=>i.grantsPrivilege(e))),l=this.hasCustomizedSubFeaturePrivileges(s,a,e);return{...t,[s.id]:{primary:a,hasCustomizedSubFeaturePrivileges:l,subFeature:r.map((e=>e.id))}}}),{})}hasCustomizedSubFeaturePrivileges(e,i,t){const s=this.collectAssignedPrivileges(t);return e.getSubFeaturePrivileges().some((e=>{var t;const a=s.grantsPrivilege(e);return a!==(null!==(t=null==i?void 0:i.grantsPrivilege(e))&&void 0!==t?t:a)}))}getDisplayedPrimaryFeaturePrivilege(e,i){const t=i.getPrimaryFeaturePrivileges(),s=i.getMinimalFeaturePrivileges(),a=i.subFeatures.length>0;return t.find((i=>{const t=e.grantsPrivilege(i);if(!t&&a){const t=s.find((e=>e.id===i.getMinimalPrivilegeId()));return e.grantsPrivilege(t)}return t}))}collectAssignedPrivileges(e){if(f(e))return this.kibanaPrivileges.createCollectionFromRoleKibanaPrivileges([e]);const i=this.locateGlobalPrivilege(this.role);return this.kibanaPrivileges.createCollectionFromRoleKibanaPrivileges(i?[i,e]:[e])}locateGlobalPrivilege(e){return e.kibana.find((e=>f(e)))}}const T=e=>Object(v.jsx)(r.EuiFlexGroup,{direction:"column"},e.feature.getSubFeatures().map((i=>Object(v.jsx)(r.EuiFlexItem,{key:i.name,"data-test-subj":"subFeatureEntry"},Object(v.jsx)(r.EuiFlexGroup,null,Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiText,{size:"s","data-test-subj":"subFeatureName"},i.name)),e.effectiveFeaturePrivileges.map(((e,t)=>{return Object(v.jsx)(r.EuiFlexItem,{key:t,"data-test-subj":`entry-${t}`},i.getPrivilegeGroups().map((s=e.subFeature,(e,i)=>{switch(e.groupType){case"independent":return function(e,i,t){return Object(v.jsx)("div",{key:t},i.privileges.map((i=>{const t=e.includes(i.id);return Object(v.jsx)(r.EuiFlexGroup,{gutterSize:"s","data-test-subj":"independentPrivilege",key:i.id},Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(r.EuiIconTip,{type:t?"check":"cross",color:t?"primary":"danger",content:t?u.i18n.translate("xpack.security.management.editRole.privilegeSummary.privilegeGrantedIconTip",{defaultMessage:"Privilege is granted"}):u.i18n.translate("xpack.security.management.editRole.privilegeSummary.privilegeNotGrantedIconTip",{defaultMessage:"Privilege is not granted"})})),Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiText,{size:"s","data-test-subj":"privilegeName"},i.name)))})))}(s,e,i);case"mutually_exclusive":return function(e,i,t){var s;const a=null===(s=i.privileges.find((i=>e.includes(i.id))))||void 0===s?void 0:s.name;return Object(v.jsx)(r.EuiFlexGroup,{gutterSize:"s",key:t,"data-test-subj":"mutexPrivilege"},Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(r.EuiIconTip,{type:a?"check":"cross",color:a?"primary":"danger",content:a?"Privilege is granted":"Privilege is not granted"})),Object(v.jsx)(r.EuiFlexItem,null,Object(v.jsx)(r.EuiText,{size:"s","data-test-subj":"privilegeName"},null!=a?a:"None")))}(s,e,i);default:throw new Error(`Unsupported privilege group type: ${e.groupType}`)}})));var s})))))));t(285);var A=t(56);class spaces_popover_list_SpacesPopoverList extends l.Component{constructor(...e){super(...e),h()(this,"state",{allowSpacesListFocus:!1,isPopoverOpen:!1}),h()(this,"getMenuPanel",(()=>{const e=this.getSpaceOptions(),i=Object(v.jsx)(r.EuiText,{color:"subdued",className:"eui-textCenter"},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spacesPopoverList.noSpacesFoundTitle",defaultMessage:" no spaces found "}));return Object(v.jsx)(r.EuiSelectable,{className:"spcMenu",title:u.i18n.translate("xpack.security.management.editRole.spacesPopoverList.popoverTitle",{defaultMessage:"Spaces"}),searchable:this.props.spaces.length>=A.SPACE_SEARCH_COUNT_THRESHOLD,searchProps:this.props.spaces.length>=A.SPACE_SEARCH_COUNT_THRESHOLD?{placeholder:u.i18n.translate("xpack.security.management.editRole.spacesPopoverList.findSpacePlaceholder",{defaultMessage:"Find a space"}),compressed:!0,isClearable:!0,id:"spacesPopoverListSearch"}:void 0,noMatchesMessage:i,options:e,singleSelection:!0,style:{width:300},listProps:{rowHeight:40,showIcons:!1,onFocusBadge:!1}},((e,i)=>Object(v.jsx)(n.a.Fragment,null,Object(v.jsx)(r.EuiPopoverTitle,{paddingSize:"s"},u.i18n.translate("xpack.security.management.editRole.spacesPopoverList.selectSpacesTitle",{defaultMessage:"Spaces"})),i,e)))})),h()(this,"onButtonClick",(()=>{this.setState({isPopoverOpen:!this.state.isPopoverOpen})})),h()(this,"closePopover",(()=>{this.setState({isPopoverOpen:!1})})),h()(this,"getSpaceOptions",(()=>{const e=Object(l.memo)(this.props.spacesApiUi.components.getSpaceAvatar);return this.props.spaces.map((i=>{const t=Object(v.jsx)(l.Suspense,{fallback:Object(v.jsx)(r.EuiLoadingSpinner,{size:"m"})},Object(v.jsx)(e,{space:i,size:"s",announceSpaceName:!1}));return{"aria-label":i.name,"aria-roledescription":"space",label:i.name,key:i.id,prepend:t,checked:void 0,"data-test-subj":`${i.id}-selectableSpaceItem`,className:"selectableSpaceItem"}}))}))}render(){const e=Object(v.jsx)(r.EuiButtonEmpty,{size:"xs",onClick:this.onButtonClick},Object(v.jsx)("span",{className:"secSpacesPopoverList__buttonText"},this.props.buttonText));return Object(v.jsx)(r.EuiPopover,{id:"spacesPopoverList",button:e,isOpen:this.state.isPopoverOpen,closePopover:this.closePopover,panelPaddingSize:"none",anchorPosition:"downLeft",ownFocus:!1},Object(v.jsx)(r.EuiFocusTrap,null,this.getMenuPanel()))}}const D=e=>{const{spacesApiUi:i}=e,t=f(e.entry),s=e.entry.spaces.map((i=>{var t;return null!==(t=e.spaces.find((e=>e.id===i)))&&void 0!==t?t:{id:i,name:i,disabledFeatures:[]}})),a=Object(l.useMemo)((()=>i.components.getSpaceAvatar),[i]);return Object(v.jsx)("div",null,s.slice(0,4).map((e=>Object(v.jsx)("span",{key:e.id},Object(v.jsx)(a,{size:"s",space:e})," ",t&&Object(v.jsx)("span",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spacePrivilegeMatrix.globalSpaceName",defaultMessage:"All Spaces"}))))),s.length>4&&Object(v.jsx)(l.Fragment,null,Object(v.jsx)("br",null),Object(v.jsx)(spaces_popover_list_SpacesPopoverList,{spaces:s,buttonText:u.i18n.translate("xpack.security.management.editRole.spacePrivilegeMatrix.showNMoreSpacesLink",{defaultMessage:"+{count} more",values:{count:s.length-4}}),spacesApiUi:i})))};function z(e){return`privilege_entry_${e.spaces.join("|")}`}const L=e=>{const[i,t]=Object(l.useState)([]),s=Object(l.useMemo)((()=>{const i=new Map;return e.kibanaPrivileges.getSecuredFeatures().filter((e=>null!=e.privileges||null!=e.reserved)).forEach((e=>{i.has(e.category.id)||i.set(e.category.id,[]),i.get(e.category.id).push(e)})),i}),[e.kibanaPrivileges]),a=new privilege_summary_calculator_PrivilegeSummaryCalculator(e.kibanaPrivileges,e.role),o={name:"Feature",field:"feature",render:e=>Object(v.jsx)(k,{feature:e})},c={align:"right",width:"40px",isExpander:!0,field:"featureId",name:"",render:(e,s)=>s.feature.getSubFeaturePrivileges().length>0?Object(v.jsx)(r.EuiButtonIcon,{onClick:()=>(e=>{i.includes(e)?t(i.filter((i=>i!==e))):t([...i,e])})(e),"data-test-subj":"expandPrivilegeSummaryRow","aria-label":i.includes(e)?"Collapse":"Expand",iconType:i.includes(e)?"arrowUp":"arrowDown"}):null},u=[...e.role.kibana].sort(((e,i)=>f(e)?-1:f(i)?1:0)),g=u.map((i=>{const t=z(i);return{name:Object(v.jsx)(D,{entry:i,spaces:e.spaces,spacesApiUi:e.spacesApiUi}),field:t,render:(i,t)=>{const{primary:s,hasCustomizedSubFeaturePrivileges:a}=i[t.featureId];let l=null;return l=a?Object(v.jsx)(r.EuiIconTip,{size:"s",type:"iInCircle",content:Object(v.jsx)("span",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.privilegeSummary.additionalPrivilegesGrantedIconTip",defaultMessage:"Additional privileges granted. Expand this row for more information."}))}):Object(v.jsx)(r.EuiIcon,{size:"s",type:"empty"}),Object(v.jsx)("span",{"data-test-subj":"privilegeColumn "+(a?"additionalPrivilegesGranted":"")},(n=e.spaces.some((e=>e.id===I.a)),null==(null==(o=s)?void 0:o.name)||null!=o&&o.disabled||o.requireAllSpaces&&!n?"None":null==o?void 0:o.name)," ",l);var n,o}}})),p=[];e.canCustomizeSubFeaturePrivileges&&p.push(c),p.push(o,...g);const h=u.reduce(((e,i)=>({...e,[z(i)]:a.getEffectiveFeaturePrivileges(i)})),{}),m=[];return s.forEach((t=>{const{category:s}=t[0],a=Object(v.jsx)(r.EuiFlexGroup,{"data-test-subj":`featureCategoryButton_${s.id}`,alignItems:"center",responsive:!1,gutterSize:"m"},s.euiIconType?Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(r.EuiIcon,{size:"m",type:s.euiIconType})):null,Object(v.jsx)(r.EuiFlexItem,{grow:1},Object(v.jsx)(r.EuiTitle,{size:"xs"},Object(v.jsx)("h4",{className:"eui-displayInlineBlock"},s.label)))),l=t.map((e=>({feature:e,featureId:e.id,...h})));m.push(Object(v.jsx)(r.EuiAccordion,{id:`privilegeSummaryFeatureCategory_${s.id}`,"data-test-subj":`privilegeSummaryFeatureCategory_${s.id}`,key:s.id,buttonContent:a,initialIsOpen:!0},Object(v.jsx)(r.EuiInMemoryTable,{columns:p,items:l,itemId:"featureId",rowProps:e=>({"data-test-subj":`summaryTableRow-${e.featureId}`}),itemIdToExpandedRowMap:i.reduce(((i,t)=>({...i,[t]:Object(v.jsx)(T,{feature:e.kibanaPrivileges.getSecuredFeature(t),effectiveFeaturePrivileges:Object.values(h).map((e=>e[t]))})})),{})})))})),Object(v.jsx)(n.a.Fragment,null,m.map(((e,i)=>Object(v.jsx)(l.Fragment,{key:i},e,Object(v.jsx)(r.EuiSpacer,null)))))},B=e=>{const[i,t]=Object(l.useState)(!1),s=e.role.kibana.length>5?"l":"m";return Object(v.jsx)(l.Fragment,null,Object(v.jsx)(r.EuiButtonEmpty,{onClick:()=>t(!0),"data-test-subj":"viewPrivilegeSummaryButton"},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.privilegeSummary.viewSummaryButtonText",defaultMessage:"View privilege summary"})),i&&Object(v.jsx)(r.EuiFlyout,{onClose:()=>t(!1),size:s,maskProps:{headerZindexLocation:"below"}},Object(v.jsx)(r.EuiFlyoutHeader,null,Object(v.jsx)(r.EuiTitle,{size:"m"},Object(v.jsx)("h2",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.privilegeSummary.modalHeaderTitle",defaultMessage:"Privilege summary"})))),Object(v.jsx)(r.EuiFlyoutBody,null,Object(v.jsx)(L,{role:e.role,spaces:e.spaces,kibanaPrivileges:e.kibanaPrivileges,canCustomizeSubFeaturePrivileges:e.canCustomizeSubFeaturePrivileges,spacesApiUi:e.spacesApiUi})),Object(v.jsx)(r.EuiFlyoutFooter,null,Object(v.jsx)(r.EuiButton,{onClick:()=>t(!1)},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.privilegeSummary.closeSummaryButtonText",defaultMessage:"Close"})))))};class space_aware_privilege_section_SpaceAwarePrivilegeSection extends l.Component{constructor(e){super(e),h()(this,"globalSpaceEntry",{id:"*",name:u.i18n.translate("xpack.security.management.editRole.spaceAwarePrivilegeForm.globalSpacesName",{defaultMessage:"* All Spaces"}),color:"#D3DAE6",initials:"*",disabledFeatures:[]}),h()(this,"renderKibanaPrivileges",(()=>{const{role:e}=this.props;if(e.kibana.length>0){const e=Object(v.jsx)(privilege_space_table_PrivilegeSpaceTable,{role:this.props.role,displaySpaces:this.getDisplaySpaces(),privilegeCalculator:new privilege_form_calculator_PrivilegeFormCalculator(this.props.kibanaPrivileges,this.props.role),onChange:this.props.onChange,onEdit:this.onEditSpacesPrivileges,disabled:!this.props.editable});return Object(v.jsx)("div",null,e,Object(v.jsx)(r.EuiSpacer,null),this.getAvailablePrivilegeButtons(!0))}return Object(v.jsx)(r.EuiEmptyPrompt,{iconType:"lock",title:Object(v.jsx)("h2",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spacePrivilegeSection.noAccessToKibanaTitle",defaultMessage:"This role does not grant access to Kibana"})),titleSize:"xs",actions:this.getAvailablePrivilegeButtons(!1)})})),h()(this,"getAvailablePrivilegeButtons",(e=>{const i=this.getAvailableSpaces().length>0;if(!i&&!e)return null;const t=i&&this.props.editable?Object(v.jsx)(r.EuiButton,{color:"primary",onClick:this.addSpacePrivilege,iconType:"plusInCircle","data-test-subj":"addSpacePrivilegeButton",isDisabled:!i||!this.props.editable},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spacePrivilegeSection.addSpacePrivilegeButton",defaultMessage:"Add Kibana privilege"})):null;if(!e)return t;const s=Object(v.jsx)(B,{role:this.props.role,spaces:this.getDisplaySpaces(),kibanaPrivileges:this.props.kibanaPrivileges,canCustomizeSubFeaturePrivileges:this.props.canCustomizeSubFeaturePrivileges,spacesApiUi:this.props.spacesApiUi});return Object(v.jsx)(r.EuiFlexGroup,{justifyContent:"spaceBetween"},Object(v.jsx)(r.EuiFlexItem,{grow:!1},t),e&&!Object(x.m)(this.props.role)&&Object(v.jsx)(r.EuiFlexItem,{grow:!1},s))})),h()(this,"getDisplaySpaces",(()=>[this.globalSpaceEntry,...this.props.spaces])),h()(this,"getAvailableSpaces",((e=-1)=>{const i=b.a.uniq(b.a.flatten(this.props.role.kibana.map(((i,t)=>e===t?[]:i.spaces))));return this.getDisplaySpaces().filter((e=>!i.includes(e.id)))})),h()(this,"addSpacePrivilege",(()=>{this.setState({showSpacePrivilegeEditor:!0,privilegeIndex:-1})})),h()(this,"onSpacesPrivilegeChange",(e=>{this.setState({showSpacePrivilegeEditor:!1,privilegeIndex:-1}),this.props.onChange(e)})),h()(this,"onEditSpacesPrivileges",(e=>{this.setState({privilegeIndex:e,showSpacePrivilegeEditor:!0})})),h()(this,"onCancelEditPrivileges",(()=>{this.setState({showSpacePrivilegeEditor:!1})})),this.state={showSpacePrivilegeEditor:!1,showPrivilegeMatrix:!1,role:null,privilegeIndex:-1}}render(){var e;const{uiCapabilities:i}=this.props;return null!==(e=i.spaces)&&void 0!==e&&e.manage?Object(v.jsx)(r.EuiErrorBoundary,null,Object(v.jsx)(l.Fragment,null,this.renderKibanaPrivileges(),this.state.showSpacePrivilegeEditor&&Object(v.jsx)(privilege_space_form_PrivilegeSpaceForm,{role:this.props.role,kibanaPrivileges:this.props.kibanaPrivileges,onChange:this.onSpacesPrivilegeChange,onCancel:this.onCancelEditPrivileges,spaces:this.getAvailableSpaces(this.state.privilegeIndex),privilegeIndex:this.state.privilegeIndex,canCustomizeSubFeaturePrivileges:this.props.canCustomizeSubFeaturePrivileges}))):Object(v.jsx)(r.EuiCallOut,{title:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spaceAwarePrivilegeForm.insufficientPrivilegesDescription",defaultMessage:"Insufficient Privileges"}),iconType:"warning",color:"danger","data-test-subj":"userCannotManageSpacesCallout"},Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spaceAwarePrivilegeForm.howToViewAllAvailableSpacesDescription",defaultMessage:"You are not authorized to view all available spaces."})),Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spaceAwarePrivilegeForm.ensureAccountHasAllPrivilegesGrantedDescription",defaultMessage:"Please ensure your account has all privileges granted by the {kibanaAdmin} role, and try again.",values:{kibanaAdmin:Object(v.jsx)("strong",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.spaceAwarePrivilegeForm.kibanaAdminTitle",defaultMessage:"kibana_admin"}))}})))}}class transform_error_section_TransformErrorSection extends l.PureComponent{render(){return Object(v.jsx)(r.EuiEmptyPrompt,{color:"danger",iconType:"warning",title:Object(v.jsx)("h2",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.transformErrorSectionTitle",defaultMessage:"Malformed role"})),body:Object(v.jsx)("p",null,Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.transformErrorSectionDescription",defaultMessage:"This role definition is invalid, and cannot be edited through this screen."}))})}}class kibana_privileges_region_KibanaPrivilegesRegion extends l.Component{constructor(...e){super(...e),h()(this,"getForm",(()=>{const{kibanaPrivileges:e,role:i,spacesEnabled:t,canCustomizeSubFeaturePrivileges:s,spaces:a=[],uiCapabilities:r,onChange:l,editable:n,validator:o,spacesApiUi:c}=this.props;return i._transform_error&&i._transform_error.includes("kibana")?Object(v.jsx)(transform_error_section_TransformErrorSection,null):c&&t?Object(v.jsx)(space_aware_privilege_section_SpaceAwarePrivilegeSection,{kibanaPrivileges:e,role:i,spaces:a,uiCapabilities:r,onChange:l,editable:n,canCustomizeSubFeaturePrivileges:s,validator:o,spacesApiUi:c}):Object(v.jsx)(simple_privilege_section_SimplePrivilegeSection,{kibanaPrivileges:e,role:i,onChange:l,editable:n,canCustomizeSubFeaturePrivileges:s})}))}render(){return Object(v.jsx)(collapsible_panel_CollapsiblePanel,{iconType:"logoKibana",title:"Kibana"},this.getForm())}}const G=e=>{const{role:i}=e;return Object(x.m)(i)?Object(v.jsx)(r.EuiToolTip,{"data-test-subj":"reservedRoleBadgeTooltip",content:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.reversedRoleBadge.reservedRolesCanNotBeModifiedTooltip",defaultMessage:"Reserved roles are built-in and cannot be removed or modified."})},Object(v.jsx)(r.EuiIcon,{style:{verticalAlign:"super"},type:"lock"})):null};class validate_role_RoleValidator{constructor(e={}){h()(this,"shouldValidate",void 0),this.shouldValidate=e.shouldValidate}enableValidation(){this.shouldValidate=!0}disableValidation(){this.shouldValidate=!1}validateRoleName(e){return this.shouldValidate?e.name?e.name.length>I.f?N(u.i18n.translate("xpack.security.management.editRole.validateRole.nameLengthWarningMessage",{defaultMessage:"Name must not exceed {maxLength} characters.",values:{maxLength:I.f}})):e.name.trim()!==e.name?N(u.i18n.translate("xpack.security.management.editRole.validateRole.nameWhitespaceWarningMessage",{defaultMessage:"Name must not contain leading or trailing spaces."})):e.name.match(I.g)?{isInvalid:!1}:N(u.i18n.translate("xpack.security.management.editRole.validateRole.nameAllowedCharactersWarningMessage",{defaultMessage:"Name must contain only letters, numbers, spaces, punctuation and printable symbols."})):N(u.i18n.translate("xpack.security.management.editRole.validateRole.provideRoleNameWarningMessage",{defaultMessage:"Please provide a role name."})):{isInvalid:!1}}validateIndexPrivileges(e){if(!this.shouldValidate)return{isInvalid:!1};if(!Array.isArray(e.elasticsearch.indices))throw new TypeError(u.i18n.translate("xpack.security.management.editRole.validateRole.indicesTypeErrorMessage",{defaultMessage:"Expected {elasticIndices} to be an array",values:{elasticIndices:'"role.elasticsearch.indices"'}}));return e.elasticsearch.indices.reduce(((e,i)=>!(!this.validateIndexPrivilegeNamesField(i).isInvalid&&!this.validateIndexPrivilegePrivilegesField(i).isInvalid)||e),!1)?N():{isInvalid:!1}}validateRemoteIndexPrivileges(e){if(!this.shouldValidate)return{isInvalid:!1};if(!e.elasticsearch.remote_indices)return{isInvalid:!1};if(!Array.isArray(e.elasticsearch.remote_indices))throw new TypeError(u.i18n.translate("xpack.security.management.editRole.validateRole.indicesTypeErrorMessage",{defaultMessage:"Expected {elasticIndices} to be an array",values:{elasticIndices:'"role.elasticsearch.remote_indices"'}}));return e.elasticsearch.remote_indices.reduce(((e,i)=>!!(this.validateRemoteIndexPrivilegeClustersField(i).isInvalid||this.validateIndexPrivilegeNamesField(i).isInvalid||this.validateIndexPrivilegePrivilegesField(i).isInvalid)||e),!1)?N():{isInvalid:!1}}validateRemoteIndexPrivilegeClustersField(e){return this.shouldValidate&&(e.names.length||e.privileges.length)?e.clusters&&e.clusters.length?{isInvalid:!1}:N(u.i18n.translate("xpack.security.management.editRole.validateRole.oneRemoteClusterRequiredWarningMessage",{defaultMessage:"Enter or select at least one remote cluster"})):{isInvalid:!1}}validateIndexPrivilegeNamesField(e){return this.shouldValidate&&("clusters"in e&&e.clusters.length||e.privileges.length)?e.names.length?{isInvalid:!1}:N(u.i18n.translate("xpack.security.management.editRole.validateRole.oneIndexRequiredWarningMessage",{defaultMessage:"Enter or select at least one index pattern"})):{isInvalid:!1}}validateIndexPrivilegePrivilegesField(e){return this.shouldValidate&&("clusters"in e&&e.clusters.length||e.names.length)?e.privileges.length?{isInvalid:!1}:N(u.i18n.translate("xpack.security.management.editRole.validateRole.onePrivilegeRequiredWarningMessage",{defaultMessage:"Enter or select at least one action"})):{isInvalid:!1}}validateSelectedSpaces(e,i){return this.shouldValidate&&i?Array.isArray(e)&&e.length>0?{isInvalid:!1}:N(u.i18n.translate("xpack.security.management.editRole.validateRole.oneSpaceRequiredWarningMessage",{defaultMessage:"At least one space is required"})):{isInvalid:!1}}validateSelectedPrivilege(e,i){return this.shouldValidate&&e&&0!==e.length?i?{isInvalid:!1}:N(u.i18n.translate("xpack.security.management.editRole.validateRole.privilegeRequiredWarningMessage",{defaultMessage:"Privilege is required"})):{isInvalid:!1}}validateSpacePrivileges(e){return this.shouldValidate?(e.kibana||[]).every((e=>e.base.length>0||Object.keys(e.feature).length>0))?{isInvalid:!1}:N():{isInvalid:!1}}validateForSave(e){const{isInvalid:i}=this.validateRoleName(e),{isInvalid:t}=this.validateIndexPrivileges(e),{isInvalid:s}=this.validateRemoteIndexPrivileges(e),{isInvalid:a}=this.validateSpacePrivileges(e);return i||t||s||a?N():{isInvalid:!1}}}function N(e){return{isInvalid:!0,error:e}}var W=t(32),q=t(53);class kibana_privilege_KibanaPrivilege{constructor(e,i=[]){this.id=e,this.actions=i}get name(){return b.a.upperFirst(this.id)}grantsPrivilege(e){return this.checkActions(this.actions,e.actions).hasAllRequested}checkActions(e,i){const t=i.filter((i=>!e.includes(i)));return{missing:t,hasAllRequested:e.length>0&&i.length>0&&0===t.length}}}class primary_feature_privilege_PrimaryFeaturePrivilege extends kibana_privilege_KibanaPrivilege{constructor(e,i,t=[]){super(e,t),this.config=i,this.actions=t}isMinimalFeaturePrivilege(){return this.id.startsWith("minimal_")}getMinimalPrivilegeId(){return this.isMinimalFeaturePrivilege()?this.id:`minimal_${this.id}`}get requireAllSpaces(){var e;return null!==(e=this.config.requireAllSpaces)&&void 0!==e&&e}get disabled(){var e;return null!==(e=this.config.disabled)&&void 0!==e&&e}}class sub_feature_privilege_SubFeaturePrivilege extends kibana_privilege_KibanaPrivilege{constructor(e,i=[]){super(e.id,i),this.subPrivilegeConfig=e,this.actions=i}get name(){return this.subPrivilegeConfig.name}get requireAllSpaces(){var e;return null!==(e=this.subPrivilegeConfig.requireAllSpaces)&&void 0!==e&&e}}class sub_feature_privilege_group_SubFeaturePrivilegeGroup{constructor(e,i={}){this.config=e,this.actionMapping=i}get groupType(){return this.config.groupType}get privileges(){return this.config.privileges.map((e=>new sub_feature_privilege_SubFeaturePrivilege(e,this.actionMapping[e.id]||[])))}}class secured_sub_feature_SecuredSubFeature extends q.SubFeature{constructor(e,i={}){super(e),h()(this,"privileges",void 0),h()(this,"privilegesTooltip",void 0),this.actionMapping=i,this.privilegesTooltip=e.privilegesTooltip||"",this.privileges=[];for(const e of this.privilegeIterator())this.privileges.push(e)}getPrivilegeGroups(){return this.privilegeGroups.map((e=>new sub_feature_privilege_group_SubFeaturePrivilegeGroup(e,this.actionMapping)))}*privilegeIterator({predicate:e=(()=>!0)}={}){for(const i of this.privilegeGroups)yield*i.privileges.map((e=>new sub_feature_privilege_SubFeaturePrivilege(e,this.actionMapping[e.id]))).filter((i=>e(i,this)))}getDescription(){return this.description}}class secured_feature_SecuredFeature extends q.KibanaFeature{constructor(e,i={}){var t,s;super(e),h()(this,"primaryFeaturePrivileges",void 0),h()(this,"minimalPrimaryFeaturePrivileges",void 0),h()(this,"subFeaturePrivileges",void 0),h()(this,"securedSubFeatures",void 0),this.primaryFeaturePrivileges=Object.entries(this.config.privileges||{}).map((([e,t])=>new primary_feature_privilege_PrimaryFeaturePrivilege(e,t,i[e]))),this.minimalPrimaryFeaturePrivileges=Object.entries(this.config.privileges||{}).map((([e,t])=>new primary_feature_privilege_PrimaryFeaturePrivilege(`minimal_${e}`,t,i[`minimal_${e}`]))),this.securedSubFeatures=null!==(t=null===(s=this.config.subFeatures)||void 0===s?void 0:s.map((e=>new secured_sub_feature_SecuredSubFeature(e,i))))&&void 0!==t?t:[],this.subFeaturePrivileges=this.securedSubFeatures.reduce(((e,i)=>[...e,...i.privilegeIterator()]),[])}getPrivilegesTooltip(){return this.config.privilegesTooltip}getAllPrivileges(){return[...this.primaryFeaturePrivileges,...this.minimalPrimaryFeaturePrivileges,...this.subFeaturePrivileges]}getPrimaryFeaturePrivileges({includeMinimalFeaturePrivileges:e}={includeMinimalFeaturePrivileges:!1}){return e?[this.primaryFeaturePrivileges,this.minimalPrimaryFeaturePrivileges].flat():[...this.primaryFeaturePrivileges]}getMinimalFeaturePrivileges(){return[...this.minimalPrimaryFeaturePrivileges]}getSubFeaturePrivileges(){return[...this.subFeaturePrivileges]}getSubFeatures(){return[...this.securedSubFeatures]}}class privilege_collection_PrivilegeCollection{constructor(e){h()(this,"actions",void 0),this.actions=new Set(e.reduce(((e,i)=>[...e,...i.actions]),[]))}grantsPrivilege(e){return this.checkActions(this.actions,e.actions).hasAllRequested}checkActions(e,i){const t=i.filter((i=>!e.has(i)));return{missing:t,hasAllRequested:e.size>0&&i.length>0&&0===t.length}}}function $(e){return new Map(Object.entries(e).map((e=>function(e){const[i,t]=e;return[i,new kibana_privilege_KibanaPrivilege(i,t)]}(e))))}class kibana_privileges_KibanaPrivileges{constructor(e,i){h()(this,"global",void 0),h()(this,"spaces",void 0),h()(this,"feature",void 0),this.global=$(e.global),this.spaces=$(e.space),this.feature=new Map(i.map((i=>{const t=e.features[i.id];return[i.id,new secured_feature_SecuredFeature(i.toRaw(),t)]})))}getBasePrivileges(e){return f(e)?Array.from(this.global.values()):Array.from(this.spaces.values())}getSecuredFeature(e){return this.feature.get(e)}getSecuredFeatures(){return Array.from(this.feature.values())}createCollectionFromRoleKibanaPrivileges(e){const i=e=>i=>Array.isArray(e)&&e.includes(i.id),t=e.map((e=>[this.getBasePrivileges(e).filter(i(e.base)),Object.entries(e.feature).map((([e,t])=>this.getFeaturePrivileges(e).filter(i(t))))].flat(2))).flat();return new privilege_collection_PrivilegeCollection(t)}getFeaturePrivileges(e){var i,t;return null!==(i=null===(t=this.getSecuredFeature(e))||void 0===t?void 0:t.getAllPrivileges())&&void 0!==i?i:[]}}const K=({userAPIClient:e,dataViews:i,rolesAPIClient:t,indicesAPIClient:s,privilegesAPIClient:n,getFeatures:o,http:p,roleName:h,action:m,fatalErrors:b,license:j,docLinks:P,uiCapabilities:f,notifications:F,history:O,spacesApiUi:y})=>{if(!i)throw new Error("The dataViews plugin is required for this page, but it is not available");const S=Object(l.useCallback)((()=>O.push("/")),[O]),C=!Object(W.a)("roles").save,{current:E}=Object(l.useRef)(new validate_role_RoleValidator({shouldValidate:!1})),[k,_]=Object(l.useState)(null),[M,I]=Object(l.useState)(!1),[R,w]=Object(l.useState)(""),T=function(e,i){const[t,s]=Object(l.useState)(null);return Object(l.useEffect)((()=>{e.getUsers().then((e=>s(e.map((e=>e.username)))),(e=>i.add(e)))}),[i,e]),t}(e,b),A=function(e,i,t){const[s,a]=Object(l.useState)(null);return Object(l.useEffect)((()=>{e.getTitles().catch((e=>{var s;if(403===(null===(s=e.response)||void 0===s?void 0:s.status))return t.toasts.addDanger({title:u.i18n.translate("xpack.security.management.roles.noIndexPatternsPermission",{defaultMessage:"You need permission to access the list of available index patterns."})}),[];i.add(e)})).then((e=>a(e.filter(Boolean))))}),[i,e,t]),s}(i,b,F),D=function(e,i){const[t,s]=Object(l.useState)(null);return Object(l.useEffect)((()=>{Promise.all([e.getAll({includeActions:!0,respectLicenseLevel:!1}),e.getBuiltIn()]).then((([e,i])=>s([e,i])),(e=>i.add(e)))}),[e,i]),t}(n,b),z=function(e,i){const[t,s]=Object(l.useState)(null);return Object(l.useEffect)((()=>{e.get("/api/spaces/space").then((e=>s({enabled:!0,list:e})),(e=>{var t;404===(null===(t=e.response)||void 0===t?void 0:t.status)?s({enabled:!1,list:[]}):i.add(e)}))}),[e,i]),t}(p,b),L=function(e,i){const[t,s]=Object(l.useState)(null);return Object(l.useEffect)((()=>{e().catch((e=>{var t;if(403===(null===(t=e.response)||void 0===t?void 0:t.status))return[];i.add(e)})).then((e=>{s(e)}))}),[i,e]),t}(o,b),B=function(e){return c()((()=>e.get("/internal/security/_check_role_mapping_features")))}(p),[N,q]=function(e,i,t,s,a,r,n){const[o,c]=Object(l.useState)(null);return Object(l.useEffect)((()=>{(n?e.getRole(n):Promise.resolve({name:"",elasticsearch:{cluster:[],indices:[],run_as:[]},kibana:[],_unrecognized_applications:[]})).then((e=>{if("clone"===a&&Object(x.m)(e))r();else{if((!n||"edit"!==a)&&0===e.elasticsearch.indices.length){const i={names:[],privileges:[]},{allowRoleDocumentLevelSecurity:t,allowRoleFieldLevelSecurity:a}=s.getFeatures();a&&(i.field_security={grant:["*"],except:[]}),t&&(i.query=""),e.elasticsearch.indices.push(i)}c("clone"===a?Object(x.p)(e):Object(x.d)(e))}})).catch((e=>{var s;404===(null===(s=e.response)||void 0===s?void 0:s.status)?(t.toasts.addDanger({title:u.i18n.translate("xpack.security.management.roles.roleNotFound",{defaultMessage:'No "{roleName}" role found.',values:{roleName:n}})}),r()):i.add(e)}))}),[n,a,i,e,t,s,r]),[o,c]}(t,b,F,j,m,S,h),$=!!h&&"edit"===m;if(Object(l.useEffect)((()=>{C&&!$&&S()}),[C,$]),!(N&&T&&A&&D&&z&&L&&B.value))return null;const K=C||Object(x.l)(N),U=Object(x.m)(N),H=Object(x.j)(N),[V,Q]=D,Y=e=>q(e),J=async()=>{E.enableValidation();const e=E.validateForSave(N);if(e.isInvalid)_(e);else{_(null);try{await t.saveRole({role:N,createOnly:!$})}catch(e){var i,s,a;return $||409!==(null==e||null===(i=e.body)||void 0===i?void 0:i.statusCode)?void F.toasts.addDanger(null!==(s=null==e||null===(a=e.body)||void 0===a?void 0:a.message)&&void 0!==s?s:u.i18n.translate("xpack.security.management.editRole.errorSavingRoleError",{defaultMessage:"Error saving role"})):(I(!0),void window.scroll({top:0,behavior:"smooth"}))}F.toasts.addSuccess(u.i18n.translate("xpack.security.management.editRole.roleSuccessfullySavedNotificationMessage",{defaultMessage:"Saved role"})),S()}},Z=async()=>{try{return await t.getRole(N.name),!0}catch(e){return!1}};return Object(v.jsx)("div",{className:"editRolePage"},Object(v.jsx)(r.EuiForm,k,(()=>{let e;const i={tabIndex:0};return U||K?(e=Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.viewingRoleTitle",defaultMessage:"Viewing role"}),i["aria-describedby"]="reservedRoleDescription"):e=$?Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.editRoleTitle",defaultMessage:"Edit role"}):Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.createRoleTitle",defaultMessage:"Create role"}),Object(v.jsx)(r.EuiTitle,{size:"l"},Object(v.jsx)("h1",i,e," ",Object(v.jsx)(G,{role:N})))})(),Object(v.jsx)(r.EuiSpacer,null),Object(v.jsx)(r.EuiText,{size:"s"},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.setPrivilegesToKibanaSpacesDescription",defaultMessage:"Set privileges on your Elasticsearch data and control access to your Kibana spaces."})),U&&Object(v.jsx)(l.Fragment,null,Object(v.jsx)(r.EuiSpacer,{size:"s"}),Object(v.jsx)(r.EuiText,{size:"s",color:"subdued"},Object(v.jsx)("p",{id:"reservedRoleDescription",tabIndex:0},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.modifyingReversedRolesDescription",defaultMessage:"Reserved roles are built-in and cannot be removed or modified."})))),H&&Object(v.jsx)(l.Fragment,null,Object(v.jsx)(r.EuiSpacer,{size:"s"}),Object(v.jsx)(r.EuiCallOut,{title:Object(x.e)(N),color:"warning",iconType:"warning"})),Object(v.jsx)(r.EuiSpacer,null),Object(v.jsx)(r.EuiPanel,{hasShadow:!1,hasBorder:!0},Object(v.jsx)(r.EuiFormRow,a()({"data-test-subj":"roleNameFormRow",label:Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.roleNameFormRowTitle",defaultMessage:"Role name"}),helpText:!U&&$?Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.roleNameFormRowHelpText",defaultMessage:"A role's name cannot be changed once it has been created."}):void 0},E.validateRoleName(N),M?{error:"A role with this name already exists.",isInvalid:!0}:{}),Object(v.jsx)(r.EuiFieldText,{name:"name",value:N.name||"",onChange:e=>q({...N,name:e.target.value}),onBlur:e=>{$||R===N.name||(w(N.name),Z().then((e=>{I(e)})))},"data-test-subj":"roleFormNameInput",disabled:U||$||K,isInvalid:M}))),Object(v.jsx)("div",null,Object(v.jsx)(r.EuiSpacer,null),Object(v.jsx)(elasticsearch_privileges_ElasticsearchPrivileges,{role:N,editable:!K,indicesAPIClient:s,onChange:Y,runAsUsers:T,validator:E,indexPatterns:A,builtinESPrivileges:Q,license:j,docLinks:P,canUseRemoteIndices:null===(X=B.value)||void 0===X?void 0:X.canUseRemoteIndices})),Object(v.jsx)("div",null,Object(v.jsx)(r.EuiSpacer,null),Object(v.jsx)(kibana_privileges_region_KibanaPrivilegesRegion,{kibanaPrivileges:new kibana_privileges_KibanaPrivileges(V,L),spaces:z.list,spacesEnabled:z.enabled,uiCapabilities:f,canCustomizeSubFeaturePrivileges:j.getFeatures().allowSubFeaturePrivileges,editable:!K,role:N,onChange:Y,validator:E,spacesApiUi:y})),Object(v.jsx)(r.EuiSpacer,null),K?Object(v.jsx)(r.EuiButton,a()({},Object(g.reactRouterNavigate)(O,""),{iconType:"arrowLeft","data-test-subj":"roleFormReturnButton"}),Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.returnToRoleListButtonLabel",defaultMessage:"Back to roles"})):Object(v.jsx)(r.EuiFlexGroup,{responsive:!1},Object(v.jsx)(r.EuiFlexItem,{grow:!1},(()=>{const e=$?Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.updateRoleText",defaultMessage:"Update role"}):Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.createRoleText",defaultMessage:"Create role"});return Object(v.jsx)(r.EuiButton,{"data-test-subj":"roleFormSaveButton",fill:!0,onClick:J,disabled:U||M},e)})()),Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(r.EuiButtonEmpty,{"data-test-subj":"roleFormCancelButton",onClick:S},Object(v.jsx)(d.FormattedMessage,{id:"xpack.security.management.editRole.cancelButtonLabel",defaultMessage:"Cancel"}))),Object(v.jsx)(r.EuiFlexItem,{grow:!0}),$&&!K?Object(v.jsx)(r.EuiFlexItem,{grow:!1},Object(v.jsx)(delete_role_button_DeleteRoleButton,{canDelete:!0,onDelete:async()=>{try{await t.deleteRole(N.name)}catch(t){var e,i;return void F.toasts.addDanger(null!==(e=null==t||null===(i=t.data)||void 0===i?void 0:i.message)&&void 0!==e?e:u.i18n.translate("xpack.security.management.editRole.errorDeletingRoleError",{defaultMessage:"Error deleting role"}))}F.toasts.addSuccess(u.i18n.translate("xpack.security.management.editRole.roleSuccessfullyDeletedNotificationMessage",{defaultMessage:"Deleted role"})),S()}})):null)));var X}},58:function(e,i,t){"use strict";var s,a=function(){var e={};return function(i){if(void 0===e[i]){var t=document.querySelector(i);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}e[i]=t}return e[i]}}(),r=[];function l(e){for(var i=-1,t=0;t