Website : rimsha.abasa.com
backdoor
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
mattermost
/
client
/
Filename :
5072.a639e2f468fd9697a91c.js
back
Copy
(self.webpackChunkmattermost_webapp=self.webpackChunkmattermost_webapp||[]).push([[5072,6676,729,5660],{61486:(e,t,s)=>{"use strict";s.d(t,{N5:()=>d,Qp:()=>c,Qq:()=>o,p$:()=>l,rN:()=>m}),s(43813);var a=s(1418),i=s(87988),n=s(40693),r=s(78451);function o(e){return{type:r.Q3.NEEDS_LOGGED_IN_LIMIT_REACHED_CHECK,data:e}}function l(e){return e?{type:r.Q3.SET_ADMIN_CONSOLE_USER_MANAGEMENT_TABLE_PROPERTIES,data:e}:{type:r.Q3.CLEAR_ADMIN_CONSOLE_USER_MANAGEMENT_TABLE_PROPERTIES,data:null}}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return async(t,s)=>{let r;try{r=await n.mT.getUsersForReporting(e)}catch(e){return(0,i.UP)(e,t,s),t((0,a.vV)(e)),{error:e}}return{data:r}}}function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return async(t,s)=>{let r;try{r=await n.mT.getUserCountForReporting(e)}catch(e){return(0,i.UP)(e,t,s),t((0,a.vV)(e)),{error:e}}return{data:r}}}function m(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return async(t,s)=>{try{await n.mT.startUsersBatchExport(e)}catch(e){return(0,i.UP)(e,t,s),t((0,a.vV)(e)),{error:e}}return{data:!0}}}},51810:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>hA});var a=s(37270),i=s(32446),n=s(97282),r=s(28676),o=s(23739),l=s(40057),d=s(72377),c=s(26614),m=s(77440),u=s(80635),p=s(14776),g=s(7430),h=s(88563),f=s(61486),E=s(62844),b=(s(17046),s(12401),s(1419)),v=s.n(b),y=s(16983);const M={ABOUT:{EDITION_AND_LICENSE:"about.edition_and_license"},REPORTING:{SITE_STATISTICS:"reporting.site_statistics",TEAM_STATISTICS:"reporting.team_statistics",SERVER_LOGS:"reporting.server_logs"},USER_MANAGEMENT:{USERS:"user_management.users",GROUPS:"user_management.groups",TEAMS:"user_management.teams",CHANNELS:"user_management.channels",PERMISSIONS:"user_management.permissions",SYSTEM_ROLES:"user_management.system_roles"},SYSTEM_ATTRIBUTES:{USER_ATTRIBUTES:"system_attributes.user_attributes",ATTRIBUTE_BASED_ACCESS_CONTROL:"system_attributes.attribute_based_access_control"},AUTHENTICATION:{SIGNUP:"authentication.signup",EMAIL:"authentication.email",PASSWORD:"authentication.password",MFA:"authentication.mfa",LDAP:"authentication.ldap",SAML:"authentication.saml",OPENID:"authentication.openid",GUEST_ACCESS:"authentication.guest_access"},INTEGRATIONS:{INTEGRATION_MANAGEMENT:"integrations.integration_management",BOT_ACCOUNTS:"integrations.bot_accounts",GIF:"integrations.gif",CORS:"integrations.cors"},COMPLIANCE:{DATA_RETENTION_POLICY:"compliance.data_retention_policy",COMPLIANCE_EXPORT:"compliance.compliance_export",COMPLIANCE_MONITORING:"compliance.compliance_monitoring",CUSTOM_TERMS_OF_SERVICE:"compliance.custom_terms_of_service"},PRODUCTS:{BOARDS:"boards"},SITE:{CUSTOMIZATION:"site.customization",LOCALIZATION:"site.localization",USERS_AND_TEAMS:"site.users_and_teams",NOTIFICATIONS:"site.notifications",ANNOUNCEMENT_BANNER:"site.announcement_banner",EMOJI:"site.emoji",POSTS:"site.posts",FILE_SHARING_AND_DOWNLOADS:"site.file_sharing_and_downloads",PUBLIC_LINKS:"site.public_links",NOTICES:"site.notices",IP_FILTERING:"site.ip_filters"},EXPERIMENTAL:{FEATURES:"experimental.features",FEATURE_FLAGS:"experimental.feature_flags",BLEVE:"experimental.bleve"},ENVIRONMENT:{WEB_SERVER:"environment.web_server",DATABASE:"environment.database",ELASTICSEARCH:"environment.elasticsearch",FILE_STORAGE:"environment.file_storage",IMAGE_PROXY:"environment.image_proxy",SMTP:"environment.smtp",PUSH_NOTIFICATION_SERVER:"environment.push_notification_server",HIGH_AVAILABILITY:"environment.high_availability",RATE_LIMITING:"environment.rate_limiting",LOGGING:"environment.logging",SESSION_LENGTHS:"environment.session_lengths",PERFORMANCE_MONITORING:"environment.performance_monitoring",DEVELOPER:"environment.developer",MOBILE_SECURITY:"environment.mobile_security"}},_={[M.ABOUT.EDITION_AND_LICENSE]:[y.A.SYSCONSOLE_READ_ABOUT_EDITION_AND_LICENSE,y.A.SYSCONSOLE_WRITE_ABOUT_EDITION_AND_LICENSE],billing:[y.A.SYSCONSOLE_READ_BILLING,y.A.SYSCONSOLE_WRITE_BILLING],[M.REPORTING.SITE_STATISTICS]:[y.A.SYSCONSOLE_READ_REPORTING_SITE_STATISTICS,y.A.SYSCONSOLE_WRITE_REPORTING_SITE_STATISTICS],[M.REPORTING.TEAM_STATISTICS]:[y.A.SYSCONSOLE_READ_REPORTING_TEAM_STATISTICS,y.A.SYSCONSOLE_WRITE_REPORTING_TEAM_STATISTICS],[M.REPORTING.SERVER_LOGS]:[y.A.SYSCONSOLE_READ_REPORTING_SERVER_LOGS,y.A.SYSCONSOLE_WRITE_REPORTING_SERVER_LOGS],[M.USER_MANAGEMENT.USERS]:[y.A.SYSCONSOLE_READ_USERMANAGEMENT_USERS,y.A.SYSCONSOLE_WRITE_USERMANAGEMENT_USERS],[M.USER_MANAGEMENT.GROUPS]:[y.A.SYSCONSOLE_READ_USERMANAGEMENT_GROUPS,y.A.SYSCONSOLE_WRITE_USERMANAGEMENT_GROUPS],[M.USER_MANAGEMENT.TEAMS]:[y.A.SYSCONSOLE_READ_USERMANAGEMENT_TEAMS,y.A.SYSCONSOLE_WRITE_USERMANAGEMENT_TEAMS],[M.USER_MANAGEMENT.CHANNELS]:[y.A.SYSCONSOLE_READ_USERMANAGEMENT_CHANNELS,y.A.SYSCONSOLE_WRITE_USERMANAGEMENT_CHANNELS],[M.USER_MANAGEMENT.PERMISSIONS]:[y.A.SYSCONSOLE_READ_USERMANAGEMENT_PERMISSIONS,y.A.SYSCONSOLE_WRITE_USERMANAGEMENT_PERMISSIONS],[M.USER_MANAGEMENT.SYSTEM_ROLES]:[y.A.SYSCONSOLE_READ_USERMANAGEMENT_SYSTEM_ROLES,y.A.SYSCONSOLE_WRITE_USERMANAGEMENT_SYSTEM_ROLES],[M.SYSTEM_ATTRIBUTES.USER_ATTRIBUTES]:[y.A.SYSCONSOLE_READ_USERMANAGEMENT_USERS,y.A.SYSCONSOLE_WRITE_USERMANAGEMENT_USERS],[M.SYSTEM_ATTRIBUTES.ATTRIBUTE_BASED_ACCESS_CONTROL]:[y.A.SYSCONSOLE_READ_USERMANAGEMENT_SYSTEM_ROLES,y.A.SYSCONSOLE_WRITE_USERMANAGEMENT_SYSTEM_ROLES],[M.SITE.CUSTOMIZATION]:[y.A.SYSCONSOLE_READ_SITE_CUSTOMIZATION,y.A.SYSCONSOLE_WRITE_SITE_CUSTOMIZATION],[M.SITE.LOCALIZATION]:[y.A.SYSCONSOLE_READ_SITE_LOCALIZATION,y.A.SYSCONSOLE_WRITE_SITE_LOCALIZATION],[M.SITE.USERS_AND_TEAMS]:[y.A.SYSCONSOLE_READ_SITE_USERS_AND_TEAMS,y.A.SYSCONSOLE_WRITE_SITE_USERS_AND_TEAMS],[M.SITE.NOTIFICATIONS]:[y.A.SYSCONSOLE_READ_SITE_NOTIFICATIONS,y.A.SYSCONSOLE_WRITE_SITE_NOTIFICATIONS],[M.SITE.ANNOUNCEMENT_BANNER]:[y.A.SYSCONSOLE_READ_SITE_ANNOUNCEMENT_BANNER,y.A.SYSCONSOLE_WRITE_SITE_ANNOUNCEMENT_BANNER],[M.SITE.EMOJI]:[y.A.SYSCONSOLE_READ_SITE_EMOJI,y.A.SYSCONSOLE_WRITE_SITE_EMOJI],[M.SITE.POSTS]:[y.A.SYSCONSOLE_READ_SITE_POSTS,y.A.SYSCONSOLE_WRITE_SITE_POSTS],[M.SITE.FILE_SHARING_AND_DOWNLOADS]:[y.A.SYSCONSOLE_READ_SITE_FILE_SHARING_AND_DOWNLOADS,y.A.SYSCONSOLE_WRITE_SITE_FILE_SHARING_AND_DOWNLOADS],[M.SITE.PUBLIC_LINKS]:[y.A.SYSCONSOLE_READ_SITE_PUBLIC_LINKS,y.A.SYSCONSOLE_WRITE_SITE_PUBLIC_LINKS],[M.SITE.NOTICES]:[y.A.SYSCONSOLE_READ_SITE_NOTICES,y.A.SYSCONSOLE_WRITE_SITE_NOTICES],[M.SITE.IP_FILTERING]:[y.A.SYSCONSOLE_READ_SITE_IP_FILTERS,y.A.SYSCONSOLE_WRITE_SITE_IP_FILTERS],[M.ENVIRONMENT.WEB_SERVER]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_WEB_SERVER,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_WEB_SERVER],[M.ENVIRONMENT.DATABASE]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_DATABASE,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_DATABASE],[M.ENVIRONMENT.ELASTICSEARCH]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_ELASTICSEARCH,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_ELASTICSEARCH],[M.ENVIRONMENT.FILE_STORAGE]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_FILE_STORAGE,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_FILE_STORAGE],[M.ENVIRONMENT.IMAGE_PROXY]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_IMAGE_PROXY,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_IMAGE_PROXY],[M.ENVIRONMENT.SMTP]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_SMTP,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_SMTP],[M.ENVIRONMENT.PUSH_NOTIFICATION_SERVER]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_PUSH_NOTIFICATION_SERVER,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_PUSH_NOTIFICATION_SERVER],[M.ENVIRONMENT.HIGH_AVAILABILITY]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_HIGH_AVAILABILITY,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_HIGH_AVAILABILITY],[M.ENVIRONMENT.RATE_LIMITING]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_RATE_LIMITING,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_RATE_LIMITING],[M.ENVIRONMENT.LOGGING]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_LOGGING,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_LOGGING],[M.ENVIRONMENT.SESSION_LENGTHS]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_SESSION_LENGTHS,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_SESSION_LENGTHS],[M.ENVIRONMENT.PERFORMANCE_MONITORING]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_PERFORMANCE_MONITORING,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_PERFORMANCE_MONITORING],[M.ENVIRONMENT.DEVELOPER]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_DEVELOPER,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_DEVELOPER],[M.ENVIRONMENT.MOBILE_SECURITY]:[y.A.SYSCONSOLE_READ_ENVIRONMENT_MOBILE_SECURITY,y.A.SYSCONSOLE_WRITE_ENVIRONMENT_MOBILE_SECURITY],[M.AUTHENTICATION.SIGNUP]:[y.A.SYSCONSOLE_READ_AUTHENTICATION_SIGNUP,y.A.SYSCONSOLE_WRITE_AUTHENTICATION_SIGNUP],[M.AUTHENTICATION.EMAIL]:[y.A.SYSCONSOLE_READ_AUTHENTICATION_EMAIL,y.A.SYSCONSOLE_WRITE_AUTHENTICATION_EMAIL],[M.AUTHENTICATION.PASSWORD]:[y.A.SYSCONSOLE_READ_AUTHENTICATION_PASSWORD,y.A.SYSCONSOLE_WRITE_AUTHENTICATION_PASSWORD],[M.AUTHENTICATION.MFA]:[y.A.SYSCONSOLE_READ_AUTHENTICATION_MFA,y.A.SYSCONSOLE_WRITE_AUTHENTICATION_MFA],[M.AUTHENTICATION.LDAP]:[y.A.SYSCONSOLE_READ_AUTHENTICATION_LDAP,y.A.SYSCONSOLE_WRITE_AUTHENTICATION_LDAP],[M.AUTHENTICATION.SAML]:[y.A.SYSCONSOLE_READ_AUTHENTICATION_SAML,y.A.SYSCONSOLE_WRITE_AUTHENTICATION_SAML],[M.AUTHENTICATION.OPENID]:[y.A.SYSCONSOLE_READ_AUTHENTICATION_OPENID,y.A.SYSCONSOLE_WRITE_AUTHENTICATION_OPENID],[M.AUTHENTICATION.GUEST_ACCESS]:[y.A.SYSCONSOLE_READ_AUTHENTICATION_GUEST_ACCESS,y.A.SYSCONSOLE_WRITE_AUTHENTICATION_GUEST_ACCESS],plugins:[y.A.SYSCONSOLE_READ_PLUGINS,y.A.SYSCONSOLE_WRITE_PLUGINS],[M.INTEGRATIONS.INTEGRATION_MANAGEMENT]:[y.A.SYSCONSOLE_READ_INTEGRATIONS_INTEGRATION_MANAGEMENT,y.A.SYSCONSOLE_WRITE_INTEGRATIONS_INTEGRATION_MANAGEMENT],[M.PRODUCTS.BOARDS]:[y.A.SYSCONSOLE_READ_PRODUCTS_BOARDS,y.A.SYSCONSOLE_WRITE_PRODUCTS_BOARDS],[M.INTEGRATIONS.BOT_ACCOUNTS]:[y.A.SYSCONSOLE_READ_INTEGRATIONS_BOT_ACCOUNTS,y.A.SYSCONSOLE_WRITE_INTEGRATIONS_BOT_ACCOUNTS],[M.INTEGRATIONS.GIF]:[y.A.SYSCONSOLE_READ_INTEGRATIONS_GIF,y.A.SYSCONSOLE_WRITE_INTEGRATIONS_GIF],[M.INTEGRATIONS.CORS]:[y.A.SYSCONSOLE_READ_INTEGRATIONS_CORS,y.A.SYSCONSOLE_WRITE_INTEGRATIONS_CORS],[M.COMPLIANCE.DATA_RETENTION_POLICY]:[y.A.SYSCONSOLE_READ_COMPLIANCE_DATA_RETENTION_POLICY,y.A.SYSCONSOLE_WRITE_COMPLIANCE_DATA_RETENTION_POLICY],[M.COMPLIANCE.COMPLIANCE_EXPORT]:[y.A.SYSCONSOLE_READ_COMPLIANCE_COMPLIANCE_EXPORT,y.A.SYSCONSOLE_WRITE_COMPLIANCE_COMPLIANCE_EXPORT],[M.COMPLIANCE.COMPLIANCE_MONITORING]:[y.A.SYSCONSOLE_READ_COMPLIANCE_COMPLIANCE_MONITORING,y.A.SYSCONSOLE_WRITE_COMPLIANCE_COMPLIANCE_MONITORING],[M.COMPLIANCE.CUSTOM_TERMS_OF_SERVICE]:[y.A.SYSCONSOLE_READ_COMPLIANCE_CUSTOM_TERMS_OF_SERVICE,y.A.SYSCONSOLE_WRITE_COMPLIANCE_CUSTOM_TERMS_OF_SERVICE],[M.EXPERIMENTAL.FEATURES]:[y.A.SYSCONSOLE_READ_EXPERIMENTAL_FEATURES,y.A.SYSCONSOLE_WRITE_EXPERIMENTAL_FEATURES],[M.EXPERIMENTAL.FEATURE_FLAGS]:[y.A.SYSCONSOLE_READ_EXPERIMENTAL_FEATURE_FLAGS,y.A.SYSCONSOLE_WRITE_EXPERIMENTAL_FEATURE_FLAGS],[M.EXPERIMENTAL.BLEVE]:[y.A.SYSCONSOLE_READ_EXPERIMENTAL_BLEVE,y.A.SYSCONSOLE_WRITE_EXPERIMENTAL_BLEVE]};var S=s(8361),C=s(35073),A=(s(3188),s(59297),s(4290),s(36418)),T=s.n(A),N=s(14778),w=s(81911),R=s(85406),O=(s(43813),s(40693)),I=s(62688),k=s.n(I),P=s(44785),x=s.n(P),D=s(85873);function L(){return T().createElement("div",{className:"alert alert-warning"},T().createElement(N.FormattedMessage,{id:"admin.set_by_env",defaultMessage:"This setting has been set through an environment variable. It cannot be changed through the System Console."}))}function F(e){let{children:t,helpText:s,inputId:a,label:i,setByEnv:n}=e;return T().createElement("fieldset",{"data-testid":a,id:a,className:"form-group"},T().createElement("legend",{className:"control-label form-legend col-sm-4"},i),T().createElement("div",{className:"col-sm-8"},t,s?T().createElement("div",{"data-testid":a+"help-text",className:"help-text"},s):null,n?T().createElement(L,null):null))}const U=x().label.withConfig({displayName:"Label"})(["display:inline-flex;opacity:",';margin-top:8px;margin-right:24px;width:fit-content;flex-direction:row;align-items:center;margin-bottom:0;cursor:pointer;font-size:14px;font-weight:400;gap:8px;line-height:20px;span{cursor:pointer;font-size:14px;font-weight:400;line-height:20px;}input{display:grid;width:1.6rem;height:1.6rem;border:1px solid rgba(var(--center-channel-color-rgb),0.24);border-radius:50%;margin:0;-webkit-appearance:none;appearance:none;background-color:white;color:rgba(var(--center-channel-color-rgb),0.24);cursor:pointer;font:inherit;place-content:center;&:checked{border-color:var(--button-bg);}&:checked::before{transform:scale(1);}&::before{width:8px;height:8px;border-radius:50%;background:var(--button-bg);content:"";transform:scale(0);transform-origin:center center;transition:200ms transform ease-in-out;}}'],(e=>{let{isDisabled:t}=e;return t?.5:1})),B=e=>{let{id:t,label:s,value:a,onChange:i,trueText:n=T().createElement(N.FormattedMessage,{id:"admin.true",defaultMessage:"True"}),falseText:r=T().createElement(N.FormattedMessage,{id:"admin.false",defaultMessage:"False"}),disabled:o=!1,setByEnv:l,disabledText:d,helpText:c}=e;const m=(0,A.useMemo)((()=>o&&d?T().createElement("div",null,T().createElement("span",{className:"admin-console__disabled-text"},d),c):c),[c,o,d]),u=(0,A.useCallback)((e=>{i(t,"true"===e.target.value)}),[t,i]);return T().createElement(F,{helpText:m,inputId:t,label:s,setByEnv:l},T().createElement(U,{isDisabled:o||l},T().createElement("input",{"data-testid":t+"true",type:"radio",value:"true",id:D.rH(t)+"true",name:t,checked:a,onChange:u,disabled:o||l}),n),T().createElement(U,{isDisabled:o||l},T().createElement("input",{"data-testid":t+"false",type:"radio",value:"false",id:D.rH(t)+"false",name:t,checked:!a,onChange:u,disabled:o||l}),r))};B.propTypes={id:k().string.isRequired,label:k().node.isRequired,value:k().bool.isRequired,onChange:k().func.isRequired,trueText:k().node,falseText:k().node,disabled:k().bool,setByEnv:k().bool.isRequired,disabledText:k().node,helpText:k().node.isRequired};const j=T().memo(B);var H=s(84295),G=s(26624),q=(s(29206),s(94231));function V(e){const{innerProps:t,children:s}=e;return T().createElement("div",Object.assign({className:"Remove"},t,{onClick:e.onClick}),s||T().createElement(q.A,null))}function z(e){const{data:t,innerProps:s,selectProps:a,removeProps:i}=e;return T().createElement("div",Object.assign({className:"ReasonOption"},s),t.label,T().createElement(V,Object.assign({data:t,innerProps:s,selectProps:a},i)))}const W=x().h3.withConfig({displayName:"SectionHeading"})(["&&&{margin-bottom:8px;}"]),Y=x().div.attrs({className:"header"}).withConfig({displayName:"SectionHeader"})(["&&&{padding:24px 32px;","}"],(e=>{let{$borderless:t}=e;return!t&&(0,P.css)(["border-bottom:1px solid var(--center-channel-color-12,rgba(63,67,80,0.12));"])})),Z=x().div.attrs({className:"content"}).withConfig({displayName:"SectionContent"})(["&&&{padding:",";border-bottom:1px solid var(--center-channel-color-12,rgba(63,67,80,0.12));}"],(e=>{let{$compact:t}=e;return t?"24px 32px":"48px 32px"})),J=x().section.attrs({className:"AdminPanel"}).withConfig({displayName:"AdminSection"})(["&&{overflow:visible;}"]),K=e=>T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},e.children)),Q=x().input.attrs({className:"Input form-control"}).withConfig({displayName:"BorderlessInput"})(["&&{height:40px;border-color:transparent;border-top:0;background:none;box-shadow:none;&:hover,&:focus{border-color:transparent;box-shadow:none;}&:hover{background:rgba(var(--center-channel-color-rgb),0.04)}&:focus{background:rgba(var(--button-bg-rgb),0.08);}}",";",";"],(e=>{let{$deleted:t}=e;return t&&(0,P.css)(["&&{color:#D24B4E;text-decoration:line-through;}"])}),(e=>{let{$strong:t}=e;return t&&(0,P.css)(["&&{font-size:14px;font-style:normal;font-weight:600;}"])})),X=x().span.withConfig({displayName:"DangerText"})(["color:#D24B4E;"]),$=(x().button.attrs({className:"btn btn-sm btn-transparent"}).withConfig({displayName:"FieldDeleteButton"})(["font-weight:normal;"]),x().button.attrs({className:"btn btn-link"}).withConfig({displayName:"LinkButton"})(["font-weight:normal;padding:8px 16px !important;font-size:12px;font-style:normal;font-weight:600;line-height:16px;gap:6px;"]));function ee(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function te(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?ee(Object(s),!0).forEach((function(t){se(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):ee(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function se(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}function ae(e){let{id:t,onChange:s,value:a,disabled:i=!1}=e;const[n,r]=T().useState(a),o=(0,A.useCallback)((e=>{const a=te(te({},n),{},{Reasons:e.map((e=>e.value))});r(a),s(t,a)}),[n,t,s]),l=(0,A.useCallback)((e=>{const a=te(te({},n),{},{ReporterCommentRequired:"true"===e.target.value});r(a),s(t,a)}),[n,t,s]),d=(0,A.useCallback)((e=>{const a=te(te({},n),{},{ReviewerCommentRequired:"true"===e.target.value});r(a),s(t,a)}),[n,t,s]),c=(0,A.useCallback)((e=>{const a=te(te({},n),{},{HideFlaggedContent:"true"===e.target.value});r(a),s(t,a)}),[n,t,s]),m=(0,A.useMemo)((()=>n.Reasons.map((e=>({label:e,value:e})))),[n.Reasons]);return T().createElement(J,null,T().createElement(Y,null,T().createElement("hgroup",null,T().createElement("h1",{className:"content-flagging-section-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.additionalSettings.title",defaultMessage:"Additional Settings"})),T().createElement("h5",{className:"content-flagging-section-description"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.additionalSettings.description",defaultMessage:"Configure how you want the flagging to behave"})))),T().createElement(Z,null,T().createElement("div",{className:"content-flagging-section-setting-wrapper"},T().createElement("div",{className:"content-flagging-section-setting"},T().createElement("div",{className:"setting-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.additionalSettings.reasonsForFlagging",defaultMessage:"Reasons for flagging"})),T().createElement("div",{className:"setting-content"},T().createElement(H.A,{className:"contentFlaggingReasons",classNamePrefix:"contentFlaggingReasons_",inputId:"contentFlaggingReasons",isClearable:!1,isMulti:!0,value:m,placeholder:"Type and press Tab to add a reason",onChange:o,isDisabled:i,components:{DropdownIndicator:()=>null,Menu:()=>null,MenuList:()=>null,IndicatorSeparator:()=>null,Input:G.N5,MultiValue:z}}))),T().createElement("div",{className:"content-flagging-section-setting"},T().createElement("div",{className:"setting-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.additionalSettings.requireReporterComment",defaultMessage:"Require reporters to add comment"})),T().createElement("div",{className:"setting-content"},T().createElement(U,{isDisabled:i},T().createElement("input",{"data-testid":"requireReporterComment_true",id:"requireReporterComment_true",type:"radio",value:"true",checked:n.ReporterCommentRequired,onChange:l,disabled:i}),T().createElement(N.FormattedMessage,{id:"admin.true",defaultMessage:"True"})),T().createElement(U,{isDisabled:i},T().createElement("input",{"data-testid":"requireReporterComment_false",id:"requireReporterComment_false",type:"radio",value:"false",checked:!n.ReporterCommentRequired,onChange:l,disabled:i}),T().createElement(N.FormattedMessage,{id:"admin.false",defaultMessage:"False"})))),T().createElement("div",{className:"content-flagging-section-setting"},T().createElement("div",{className:"setting-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.additionalSettings.requireReviewerComment",defaultMessage:"Require reviewers to add comment"})),T().createElement("div",{className:"setting-content"},T().createElement(U,{isDisabled:i},T().createElement("input",{"data-testid":"requireReviewerComment_true",id:"requireReviewerComment_true",type:"radio",value:"true",checked:n.ReviewerCommentRequired,onChange:d,disabled:i}),T().createElement(N.FormattedMessage,{id:"admin.true",defaultMessage:"True"})),T().createElement(U,{isDisabled:i},T().createElement("input",{"data-testid":"requireReviewerComment_false",id:"requireReviewerComment_false",type:"radio",value:"false",checked:!n.ReviewerCommentRequired,onChange:d,disabled:i}),T().createElement(N.FormattedMessage,{id:"admin.false",defaultMessage:"False"})))),T().createElement("div",{className:"content-flagging-section-setting"},T().createElement("div",{className:"setting-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.additionalSettings.hideFlaggedPosts",defaultMessage:"Hide message from channel while it is being reviewed"})),T().createElement("div",{className:"setting-content"},T().createElement(U,{isDisabled:i},T().createElement("input",{"data-testid":"hideFlaggedPosts_true",id:"hideFlaggedPosts_true",type:"radio",value:"true",checked:n.HideFlaggedContent,onChange:c,disabled:i}),T().createElement(N.FormattedMessage,{id:"admin.true",defaultMessage:"True"})),T().createElement(U,{isDisabled:i},T().createElement("input",{"data-testid":"setHideFlaggedPosts_false",id:"setHideFlaggedPosts_false",type:"radio",value:"false",checked:!n.HideFlaggedContent,onChange:c,disabled:i}),T().createElement(N.FormattedMessage,{id:"admin.false",defaultMessage:"False"})))))))}ae.propTypes={id:k().string.isRequired,onChange:k().func.isRequired,disabled:k().bool};const ie=e=>{let{disabled:t=!1,id:s,label:a,defaultChecked:i,setByEnv:n,onChange:r}=e;return T().createElement("div",null,T().createElement("label",{className:"checkbox-inline"},T().createElement("input",{"data-testid":s,type:"checkbox",id:s,name:s,defaultChecked:i,onChange:e=>{r(s,e.target.checked)},disabled:t||n}),a),n?T().createElement(L,null):null)};ie.propTypes={id:k().string.isRequired,label:k().node.isRequired,defaultChecked:k().bool,onChange:k().func.isRequired,disabled:k().bool,setByEnv:k().bool.isRequired};const ne=(0,A.memo)(ie);s(30973);var re=s(71633),oe=s.n(re),le=s(5955),de=s(57891),ce=s(53654);const me=e=>{let{col:t}=e;const s={};return t.width&&(s.flexGrow=t.width),T().createElement("div",{key:t.field,className:"DataGrid_cell",style:s},t.name)},ue=e=>{let{columns:t}=e;return T().createElement("div",{className:"DataGrid_header"},t.map((e=>T().createElement(me,{col:e,key:e.field}))))},pe=e=>{let{row:t,column:s}=e;const a={};return s.width&&(a.flexGrow=s.width),s.textAlign&&(a.textAlign=s.textAlign),s.overflow&&(a.overflow=s.overflow),T().createElement("div",{key:s.field,className:oe()("DataGrid_cell",s.className),style:a},t.cells[s.field])},ge=e=>{let{row:t,columns:s}=e;const a=s.map(((e,s)=>T().createElement(pe,{key:s,row:t,column:e})));return T().createElement("div",{className:"DataGrid_row",onClick:t.onClick},a)},he=T().memo(ge);function fe(e){let{name:t,checked:s,label:a,updateOption:i}=e;const n=(0,A.useCallback)((e=>{e.preventDefault(),e.stopPropagation(),i(!s,t)}),[t,s,i]);return T().createElement("div",{className:"FilterList_checkbox",onClick:n},T().createElement("label",null,s&&T().createElement("input",{type:"checkbox",id:t,name:t,defaultChecked:!0}),!s&&T().createElement("input",{type:"checkbox",id:t,name:t,defaultChecked:!1}),a))}fe.propTypes={name:k().string.isRequired,checked:k().bool.isRequired,label:k().oneOfType([k().string,k().element]).isRequired,updateOption:k().func.isRequired};const Ee=T().memo(fe);function be(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function ve(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?be(Object(s),!0).forEach((function(t){ye(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):be(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function ye(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Me=e=>{let{option:t,optionKey:s,updateValues:a}=e;const i=(0,A.useCallback)((async(e,i)=>{const n=ve(ve({},t.values),{},{[i]:ve(ve({},t.values[i]),{},{value:e})});await a(n,s)}),[t.values,s,a]),n=t.keys.map(((e,s)=>{const a=t.values[e],{value:n,name:r}=a,o=t.type||Ee;return T().createElement("div",{key:s,className:"FilterList_item"},T().createElement(o,{key:s,name:e,checked:n,label:r,updateOption:i}))}));return T().createElement("div",{className:"FilterList"},T().createElement("div",{className:"FilterList_name"},t.name),n)};Me.propTypes={optionKey:k().string.isRequired,updateValues:k().func.isRequired};const _e=(0,A.memo)(Me);function Se(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Ce(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Se(Object(s),!0).forEach((function(t){Ae(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Se(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Ae(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Te extends T().PureComponent{constructor(e){super(e),Ae(this,"componentDidMount",(()=>{document.addEventListener("mousedown",this.handleClickOutside)})),Ae(this,"componentWillUnmount",(()=>{document.removeEventListener("mousedown",this.handleClickOutside)})),Ae(this,"handleClickOutside",(e=>{var t,s;null!==(t=this.filterRef)&&void 0!==t&&null!==(s=t.current)&&void 0!==s&&s.contains(e.target)||this.hidePopover()})),Ae(this,"hidePopover",(()=>{var e,t;this.setState({show:!1}),null===(e=this.buttonRef)||void 0===e||null===(t=e.current)||void 0===t||t.blur()})),Ae(this,"togglePopover",(()=>{this.state.show?this.hidePopover():this.setState({show:!0})})),Ae(this,"updateValues",(async(e,t)=>{const s=Ce(Ce({},this.state.options),{},{[t]:Ce(Ce({},this.state.options[t]),{},{values:Ce({},e)})});this.setState({options:s,optionsModified:!0})})),Ae(this,"onFilter",(()=>{this.props.onFilter(this.state.options),this.setState({optionsModified:!1,show:!1,filterCount:this.calculateFilterCount()})})),Ae(this,"calculateFilterCount",(()=>{const e=this.state.options;let t=0;return this.props.keys.forEach((s=>{const{values:a,keys:i}=e[s];i.forEach((e=>{a[e].value instanceof Array?t+=a[e].value.length:a[e].value&&(t+=1)}))})),t})),Ae(this,"resetFilters",(()=>{this.setState({options:Ce({},this.props.options)},this.onFilter)})),Ae(this,"renderFilterOptions",(()=>{const{keys:e,options:t}=this.state;return e.map((e=>{const s=t[e],a=s.type||_e;return T().createElement(a,{option:s,optionKey:e,updateValues:this.updateValues,key:e})}))}));let t=Ce({},e.options),s=[...e.keys],a=!0;s.forEach((e=>{const s=t[e];s&&a?s.keys.forEach((e=>{s.values[e]||(a=!1)})):a=!1})),a||(t={},s=[]),this.state={show:!1,options:t,keys:s,optionsModified:!1,filterCount:0},this.filterRef=T().createRef(),this.buttonRef=T().createRef()}render(){const e=this.renderFilterOptions(),{filterCount:t}=this.state;return T().createElement("div",{className:"Filter",ref:this.filterRef},T().createElement("button",{type:"button",className:oe()("Filter_button",{Filter__active:this.state.show}),onClick:this.togglePopover,ref:this.buttonRef},T().createElement("i",{className:"Icon icon-filter-variant"}),T().createElement(N.FormattedMessage,{id:"admin.filter.filters",defaultMessage:"Filters"}),t>0&&" (".concat(t,")")),T().createElement("div",{className:oe()("Filter_content",{Filter__show:this.state.show})},T().createElement("div",{className:"Filter_header"},T().createElement("div",{className:"Filter_title"},T().createElement(N.FormattedMessage,{id:"admin.filter.title",defaultMessage:"Filter by"})),T().createElement("a",{className:"Filter_reset",onClick:this.resetFilters},T().createElement(N.FormattedMessage,{id:"admin.filter.reset",defaultMessage:"Reset filters"}))),T().createElement("hr",null),T().createElement("div",{className:"Filter_lists"},e),T().createElement("button",{type:"button",className:"btn btn-primary btn-sm Filter_apply",disabled:!this.state.optionsModified,onClick:this.onFilter},T().createElement(N.FormattedMessage,{id:"admin.filter.apply",defaultMessage:"Apply"}))))}}Ae(Te,"propTypes",{onFilter:k().func.isRequired,options:k().objectOf(k().shape({name:k().oneOfType([k().string,k().element]).isRequired,keys:k().arrayOf(k().string).isRequired,values:k().objectOf(k().shape({name:k().oneOfType([k().string,k().element]).isRequired,value:k().oneOfType([k().bool,k().string,k().arrayOf(k().string)]).isRequired})).isRequired,type:k().node})).isRequired,keys:k().arrayOf(k().string).isRequired});const Ne=Te;var we=s(30491),Re=s(12082);const Oe=e=>{let{term:t="",extraComponent:s,filterProps:a,onSearch:i,disabled:n}=e;const r=(0,A.useCallback)((e=>{const t=e.target.value;i(t)}),[i]),o=(0,A.useCallback)((()=>{i("")}),[i]);let l;return a&&(l=T().createElement(Ne,a)),T().createElement("div",{className:"DataGrid_search"},T().createElement("div",{className:"DataGrid_searchBar"},T().createElement("span",{className:"DataGrid_searchIcon","aria-hidden":"true"},T().createElement(Re.A,null)),T().createElement(we.A,{type:"text",placeholder:(0,N.defineMessage)({id:"search_bar.search",defaultMessage:"Search"}),onChange:r,value:t,"data-testid":"searchInput",disabled:n}),T().createElement("i",{className:"DataGrid_clearButton fa fa-times-circle "+(t.length?"":"hidden"),onClick:o,"data-testid":"clear-search"})),l,s)};Oe.propTypes={onSearch:k().func.isRequired,term:k().string,extraComponent:k().element,disabled:k().bool,filterProps:k().shape({keys:k().arrayOf(k().string).isRequired,onFilter:k().func.isRequired})};const Ie=(0,A.memo)(Oe);function ke(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Pe extends T().PureComponent{constructor(e){super(e),ke(this,"handleResize",(()=>{var e;if(null===(e=this.ref)||void 0===e||!e.current)return;const{minimumColumnWidth:t,fixedColumns:s}=this.state,a=s.length*t;let i=this.props.columns,n=this.ref.current.clientWidth-a-50;i=i.filter((e=>n>t?(n-=t,!0):Boolean(e.fixed))),this.setState({visibleColumns:i})})),ke(this,"nextPage",(()=>{this.props.loading||this.props.nextPage()})),ke(this,"previousPage",(()=>{this.props.loading||this.props.previousPage()})),ke(this,"search",(e=>{this.props.onSearch&&this.props.onSearch(e)})),ke(this,"renderFooter",(()=>{const{startCount:e,endCount:t,total:s}=this.props;let a=null;if(s){const i=e<=1,n=t>=s;let r=this.previousPage;i&&(r=()=>{});let o=this.nextPage;n&&(o=()=>{}),a=T().createElement("div",{className:"DataGrid_footer"},T().createElement("div",{className:"DataGrid_cell"},T().createElement(N.FormattedMessage,{id:"admin.data_grid.paginatorCount",defaultMessage:"{startCount, number} - {endCount, number} of {total, number}",values:{startCount:e,endCount:t,total:s}}),T().createElement("button",{"aria-label":"Previous page",type:"button",className:"btn btn-quaternary btn-icon btn-sm ml-2 prev "+(i?"disabled":""),onClick:r,disabled:i},T().createElement(de.A,null)),T().createElement("button",{"aria-label":"Next page",type:"button",className:"btn btn-quaternary btn-icon btn-sm next "+(n?"disabled":""),onClick:o,disabled:n},T().createElement(le.A,null))))}return a}));const t=e.minimumColumnWidth?e.minimumColumnWidth:100;this.state={visibleColumns:this.props.columns,hiddenColumns:[],fixedColumns:this.props.columns.filter((e=>e.fixed)),minimumColumnWidth:t},this.ref=T().createRef()}componentDidMount(){this.handleResize(),window.addEventListener("resize",this.handleResize)}componentDidUpdate(e){this.props.columns!==e.columns&&this.setState({visibleColumns:this.props.columns})}componentWillUnmount(){window.removeEventListener("resize",this.handleResize)}renderRows(){const{rows:e,rowsContainerStyles:t}=this.props,{visibleColumns:s}=this.state;let a=null;if(this.props.loading)a=this.props.loadingIndicator?T().createElement("div",{className:"DataGrid_loading"},this.props.loadingIndicator):T().createElement("div",{className:"DataGrid_loading"},T().createElement(ce.A,null),T().createElement(N.FormattedMessage,{id:"admin.data_grid.loading",defaultMessage:"Loading"}));else if(0===e.length){const e=this.props.placeholderEmpty||T().createElement(N.FormattedMessage,{id:"admin.data_grid.empty",defaultMessage:"No items found"});a=T().createElement("div",{className:"DataGrid_empty"},e)}else a=e.map(((e,t)=>T().createElement(he,{key:t,row:e,columns:s})));return T().createElement("div",{className:"DataGrid_rows",style:t||{}},a)}renderHeader(){return T().createElement(ue,{columns:this.state.visibleColumns})}renderSearch(){return this.props.onSearch?T().createElement(Ie,{onSearch:this.search,term:this.props.term,filterProps:this.props.filterProps,extraComponent:this.props.extraComponent,disabled:this.props.disabled}):null}render(){return T().createElement("div",{className:oe()("DataGrid",this.props.className),ref:this.ref},this.renderSearch(),this.renderHeader(),this.renderRows(),this.renderFooter())}}ke(Pe,"defaultProps",{term:""});const xe=Pe;var De=s(79407),Le=s(85236),Fe=s(37835);function Ue(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Be(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Ue(Object(s),!0).forEach((function(t){je(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Ue(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function je(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}function He(e){let{teamReviewersSetting:t,onChange:s,disabled:i}=e;const n=(0,N.useIntl)(),r=(0,a.useDispatch)(),[l,d]=(0,A.useState)(0),[c,m]=(0,A.useState)(0),[u,p]=(0,A.useState)(1),[g,h]=(0,A.useState)(100),[f,E]=(0,A.useState)(""),[b,v]=(0,A.useState)([]),y=(0,A.useCallback)(((e,t)=>{const s=10*e+1,a=Math.min(10*(e+1),t);p(s),h(a)}),[]);(0,A.useEffect)((()=>{(async e=>{try{const t=await r((0,o.Fo)(e||"",{page:l,per_page:10}));t&&t.data&&(m(t.data.total_count),t.data.teams.length>0&&v(t.data.teams),y(l,t.data.total_count))}catch(e){console.error(e)}})(f)}),[r,l,y,f]);const M=(0,A.useCallback)((e=>()=>{const a=Be({},t);a[e]||(a[e]={Enabled:!1,ReviewerIds:[]}),a[e]=Be(Be({},a[e]),{},{Enabled:!a[e].Enabled||!a[e].Enabled}),s(a)}),[s,t]),_=(0,A.useCallback)((e=>a=>{const i=Be({},t);i[e]||(i[e]={Enabled:!1,ReviewerIds:[]}),i[e]=Be(Be({},i[e]),{},{ReviewerIds:a}),s(i)}),[s,t]),S=(0,A.useMemo)((()=>[{name:n.formatMessage({id:"admin.contentFlagging.reviewerSettings.header.team",defaultMessage:"Team"}),field:"team",fixed:!0},{name:n.formatMessage({id:"admin.contentFlagging.reviewerSettings.header.reviewers",defaultMessage:"Reviewers"}),field:"reviewers",fixed:!0},{name:n.formatMessage({id:"admin.contentFlagging.reviewerSettings.header.enabled",defaultMessage:"Enabled"}),field:"enabled",fixed:!0}]),[n]),C=(0,A.useMemo)((()=>b.map((e=>{var s,a;return{cells:{id:e.id,team:T().createElement("div",{className:"TeamReviewers__team"},T().createElement(Le.P,{size:"xxs",url:D.lt(e),content:e.display_name,intl:n}),T().createElement("span",{"data-testid":"teamName",className:"TeamReviewers__team-name"},e.display_name)),reviewers:T().createElement(Fe.T,{isMulti:!0,id:"team_content_reviewer_".concat(e.id),multiSelectInitialValue:(null===(s=t[e.id])||void 0===s?void 0:s.ReviewerIds)||[],multiSelectOnChange:_(e.id),disabled:i}),enabled:T().createElement(De.A,{id:"team_content_reviewer_toggle_".concat(e.id),ariaLabel:n.formatMessage({id:"admin.contentFlagging.reviewerSettings.toggle",defaultMessage:"Enable or disable content reviewers for this team"}),size:"btn-md",onToggle:M(e.id),toggled:(null===(a=t[e.id])||void 0===a?void 0:a.Enabled)||!1,disabled:i})}}}))),[i,_,M,n,t,b]),w=(0,A.useCallback)((()=>{10*l+10<c&&d((e=>e+1))}),[l,c]),R=(0,A.useCallback)((()=>{l>0&&d((e=>e-1))}),[l]),O=(0,A.useCallback)((e=>{E(e),d(0)}),[]),I=(0,A.useCallback)((()=>{const e={};Object.entries(t).forEach((t=>{let[s,a]=t;e[s]=Be(Be({},a),{},{Enabled:!1})})),s(e)}),[s,t]),k=(0,A.useMemo)((()=>T().createElement("div",{className:"TeamReviewers__disable-all"},T().createElement("button",{"data-testid":"disableForAllTeamsButton",className:"btn btn-link icon-close","aria-label":n.formatMessage({id:"admin.contentFlagging.reviewerSettings.disableAll",defaultMessage:"Disable for all teams"}),disabled:i,"aria-disabled":i,onClick:I},n.formatMessage({id:"admin.contentFlagging.reviewerSettings.disableAll",defaultMessage:"Disable for all teams"})))),[i,n,I]);return T().createElement("div",{className:"TeamReviewers"},T().createElement(xe,{rows:C,columns:S,page:l,startCount:u,endCount:g,loading:!1,nextPage:w,previousPage:R,total:c,onSearch:O,extraComponent:k,term:f,disabled:i}))}function Ge(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function qe(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Ge(Object(s),!0).forEach((function(t){Ve(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Ge(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Ve(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}function ze(e){let{id:t,onChange:s,value:a,disabled:i=!1}=e;const[n,r]=(0,A.useState)(a),o=(0,A.useCallback)((e=>{const a=qe(qe({},n),{},{CommonReviewers:"true"===e.target.value});r(a),s(t,a)}),[t,s,n]),l=(0,A.useCallback)(((e,a)=>{const i=qe(qe({},n),{},{SystemAdminsAsReviewers:a});r(i),s(t,i)}),[t,s,n]),d=(0,A.useCallback)(((e,a)=>{const i=qe(qe({},n),{},{TeamAdminsAsReviewers:a});r(i),s(t,i)}),[t,s,n]),c=(0,A.useCallback)((e=>{const a=qe(qe({},n),{},{CommonReviewerIds:e});r(a),s(t,a)}),[t,s,n]),m=(0,A.useCallback)((e=>{const a=qe(qe({},n),{},{TeamReviewersSetting:e});r(a),s(t,a)}),[t,s,n]);return T().createElement(J,null,T().createElement(Y,null,T().createElement("hgroup",null,T().createElement("h1",{className:"content-flagging-section-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.reviewerSettings.title",defaultMessage:"Content Reviewers"})),T().createElement("h5",{className:"content-flagging-section-description"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.reviewerSettings.description",defaultMessage:"Define who should review content in your environment"})))),T().createElement(Z,null,T().createElement("div",{className:"content-flagging-section-setting-wrapper"},T().createElement("div",{className:"content-flagging-section-setting"},T().createElement("div",{className:"setting-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.reviewerSettings.sameReviewersForAllTeams",defaultMessage:"Same reviewers for all teams:"})),T().createElement("div",{className:"setting-content"},T().createElement(U,{isDisabled:i},T().createElement("input",{"data-testid":"sameReviewersForAllTeams_true",id:"sameReviewersForAllTeams_true",type:"radio",value:"true",checked:n.CommonReviewers,onChange:o,disabled:i}),T().createElement(N.FormattedMessage,{id:"admin.true",defaultMessage:"True"})),T().createElement(U,{isDisabled:i},T().createElement("input",{"data-testid":"sameReviewersForAllTeams_false",id:"sameReviewersForAllTeams_false",type:"radio",value:"false",checked:!n.CommonReviewers,onChange:o,disabled:i}),T().createElement(N.FormattedMessage,{id:"admin.false",defaultMessage:"False"})))),n.CommonReviewers&&T().createElement("div",{className:"content-flagging-section-setting"},T().createElement("div",{className:"setting-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.reviewerSettings.commonReviewers",defaultMessage:"Reviewers:"})),T().createElement("div",{className:"setting-content"},T().createElement(Fe.T,{isMulti:!0,id:"content_reviewers_common_reviewers",multiSelectInitialValue:n.CommonReviewerIds,multiSelectOnChange:c,disabled:i}))),!n.CommonReviewers&&T().createElement("div",{className:"content-flagging-section-setting teamSpecificReviewerSection"},T().createElement("div",{className:"setting-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.reviewerSettings.perTeamReviewers.title",defaultMessage:"Configure content flagging per team"})),T().createElement(He,{teamReviewersSetting:n.TeamReviewersSetting,onChange:m,disabled:i})),T().createElement("div",{className:"content-flagging-section-setting"},T().createElement("div",{className:"setting-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.reviewerSettings.additionalReviewers",defaultMessage:"Additional reviewers"})),T().createElement("div",{className:"setting-content-wrapper"},T().createElement("div",{className:"setting-content"},T().createElement(ne,{id:"notifyOnDismissal_reviewers",label:T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.reviewerSettings.additionalReviewers.systemAdmins",defaultMessage:"System Administrators"}),defaultChecked:n.SystemAdminsAsReviewers,onChange:l,setByEnv:!1,disabled:i}),T().createElement(ne,{id:"notifyOnDismissal_author",label:T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.reviewerSettings.additionalReviewers.teamAdmins",defaultMessage:"Team Administrators"}),defaultChecked:n.TeamAdminsAsReviewers,onChange:d,setByEnv:!1,disabled:i})),T().createElement("div",{className:"helpText"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.reviewerSettings.additionalReviewers.helpText",defaultMessage:"If enabled, system administrators will be sent flagged posts for review from every team that they are a part of. Team administrators will only be sent flagged posts for review from their respective teams."})))))))}function We(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Ye(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?We(Object(s),!0).forEach((function(t){Ze(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):We(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Ze(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}function Je(e){let{id:t,value:s,onChange:a,disabled:i}=e;const[n,r]=(0,A.useState)(s),o=(0,A.useCallback)(((e,s)=>{const[i,o]=e.split("_"),l=i,d=o;if(!l||!d)return;const c=Ye({},n);c.EventTargetMapping||(c.EventTargetMapping={flagged:[],assigned:[],removed:[],dismissed:[]}),c.EventTargetMapping[l]||(c.EventTargetMapping[l]=[]),s?c.EventTargetMapping[l].includes(d)||(c.EventTargetMapping=Ye(Ye({},c.EventTargetMapping),{},{[l]:[...c.EventTargetMapping[l],d]})):c.EventTargetMapping=Ye(Ye({},c.EventTargetMapping),{},{[l]:c.EventTargetMapping[l].filter((e=>e!==d))}),r(c),a(t,c)}),[t,n,a]),l=(0,A.useCallback)(((e,t)=>{var s;return n&&n.EventTargetMapping&&(null===(s=n.EventTargetMapping[e])||void 0===s?void 0:s.includes(t))||!1}),[n]);return T().createElement(J,null,T().createElement(Y,null,T().createElement("hgroup",null,T().createElement("h1",{className:"content-flagging-section-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.title",defaultMessage:"Notification Settings"})),T().createElement("h5",{className:"content-flagging-section-description"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.description",defaultMessage:"Choose who receives notifications from the System bot when content is flagged and reviewed"})))),T().createElement(Z,null,T().createElement("div",{className:"content-flagging-section-setting-wrapper"},T().createElement("div",{className:"content-flagging-section-setting"},T().createElement("div",{className:"setting-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.notifyOnFlag",defaultMessage:"Notify when content is flagged"})),T().createElement("div",{className:"setting-content"},T().createElement(ne,{id:"flagged_reviewers",label:T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.reviewers",defaultMessage:"Reviewer(s)"}),defaultChecked:l("flagged","reviewers"),onChange:o,setByEnv:!1,disabled:!0}),T().createElement(ne,{id:"flagged_author",label:T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.author",defaultMessage:"Author"}),defaultChecked:l("flagged","author"),onChange:o,setByEnv:!1,disabled:i}))),T().createElement("div",{className:"content-flagging-section-setting"},T().createElement("div",{className:"setting-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.notifyOnReviewerAssigned",defaultMessage:"Notify when a reviewer is assigned"})),T().createElement("div",{className:"setting-content"},T().createElement(ne,{id:"assigned_reviewers",label:T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.reviewers",defaultMessage:"Reviewer(s)"}),defaultChecked:l("assigned","reviewers"),onChange:o,setByEnv:!1,disabled:i}))),T().createElement("div",{className:"content-flagging-section-setting"},T().createElement("div",{className:"setting-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.notifyOnRemoval",defaultMessage:"Notify when content is removed"})),T().createElement("div",{className:"setting-content"},T().createElement(ne,{id:"removed_reviewers",label:T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.reviewers",defaultMessage:"Reviewer(s)"}),defaultChecked:l("removed","reviewers"),onChange:o,setByEnv:!1,disabled:i}),T().createElement(ne,{id:"removed_author",label:T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.author",defaultMessage:"Author"}),defaultChecked:l("removed","author"),onChange:o,setByEnv:!1,disabled:i}),T().createElement(ne,{id:"removed_reporter",label:T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.reporter",defaultMessage:"Reporter"}),defaultChecked:l("removed","reporter"),onChange:o,setByEnv:!1,disabled:i}))),T().createElement("div",{className:"content-flagging-section-setting"},T().createElement("div",{className:"setting-title"},T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.notifyOnDismissal",defaultMessage:"Notify when flag is dismissed"})),T().createElement("div",{className:"setting-content"},T().createElement(ne,{id:"dismissed_reviewers",label:T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.reviewers",defaultMessage:"Reviewer(s)"}),defaultChecked:l("dismissed","reviewers"),onChange:o,setByEnv:!1,disabled:i}),T().createElement(ne,{id:"dismissed_author",label:T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.author",defaultMessage:"Author"}),defaultChecked:l("dismissed","author"),onChange:o,setByEnv:!1,disabled:i}),T().createElement(ne,{id:"dismissed_reporter",label:T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.notificationSettings.reporter",defaultMessage:"Reporter"}),defaultChecked:l("dismissed","reporter"),onChange:o,setByEnv:!1,disabled:i}))))))}He.propTypes={onChange:k().func.isRequired,disabled:k().bool},ze.propTypes={id:k().string.isRequired,onChange:k().func.isRequired,disabled:k().bool},s(57406),s(55448),Je.propTypes={id:k().string.isRequired,onChange:k().func.isRequired,disabled:k().bool};var Ke=s(20463);const Qe=["blocked","actions","onClick","onCancelConfirmed"],Xe=e=>{let{blocked:t,actions:s,onClick:a,onCancelConfirmed:i}=e,n=function(e,t){if(null==e)return{};var s,a,i=function(e,t){if(null==e)return{};var s={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;s[a]=e[a]}return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)s=n[a],-1===t.indexOf(s)&&{}.propertyIsEnumerable.call(e,s)&&(i[s]=e[s])}return i}(e,Qe);const r=(0,A.useCallback)((e=>{null==a||a(e),t&&(e.preventDefault(),s.deferNavigation((()=>{i()})))}),[s,t,a,i]);return T().createElement("button",Object.assign({},n,{onClick:r}))},$e=T().memo(Xe),et=(0,a.connect)((function(e){return{blocked:(0,Ke.$S)(e)}}),(function(e){return{actions:(0,i.zH)({deferNavigation:h.Ld},e)}}))($e);var tt=s(87295),st=s(14309);const at=e=>{let{saveNeeded:t,onClick:s,saving:a,serverError:i,cancelLink:n,onCancel:r,isDisabled:o,savingMessage:l}=e;const{formatMessage:d}=(0,N.useIntl)();return T().createElement("div",{className:"admin-console-save"},T().createElement(st.A,{saving:a,disabled:o||!t,onClick:s,savingMessage:null!=l?l:d({id:"admin.team_channel_settings.saving",defaultMessage:"Saving Config..."})}),n?T().createElement(tt.A,{id:"cancelButtonSettings",className:"btn btn-quaternary",to:n},T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.cancel",defaultMessage:"Cancel"})):r&&T().createElement(et,{id:"cancelButtonSettings",className:"btn btn-quaternary",onCancelConfirmed:r},T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.cancel",defaultMessage:"Cancel"})),T().createElement("div",{className:"error-message"},i))};at.propTypes={saving:k().bool.isRequired,saveNeeded:k().bool.isRequired,onClick:k().func.isRequired,serverError:k().oneOfType([k().element,k().string]),isDisabled:k().bool,savingMessage:k().string};const it=at,nt=e=>T().createElement("div",{className:oe()("admin-console__header",{"with-back":e.withBackButton})},e.children);function rt(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function ot(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}s(6552);var lt=s(43595),dt=s(45955),ct=s(27840),mt=s(78451),ut=(s(76409),s(10844),s(74883),s(1112),s(61295));const pt=e=>{let{children:t,setByEnv:s,helpText:a,inputId:i,label:n}=e;return T().createElement("div",{"data-testid":i,className:"form-group"},T().createElement("label",{className:"control-label col-sm-4",htmlFor:i},n),T().createElement("div",{className:"col-sm-8"},t,T().createElement("div",{"data-testid":i+"help-text",className:"help-text"},a),s?T().createElement(L,null):null))};pt.propTypes={inputId:k().string,label:k().node.isRequired,children:k().node,helpText:k().node,setByEnv:k().bool};const gt=T().memo(pt),ht=e=>{const t=(0,A.useCallback)((t=>{e.onChange&&e.onChange(e.id,t)}),[e.id,e.onChange]);return T().createElement(gt,{label:e.label,helpText:e.helpText,inputId:e.id},T().createElement(ut.A,{id:e.id,value:e.value,onChange:t,isDisabled:e.disabled}))};ht.propTypes={id:k().string.isRequired,label:k().node.isRequired,helpText:k().node,value:k().string.isRequired,onChange:k().func,disabled:k().bool};const ft=T().memo(ht),Et=e=>{let{id:t,values:s,label:a,value:i,onChange:n,disabled:r=!1,setByEnv:o,helpText:l}=e;const d=(0,A.useCallback)((e=>{n(t,e.target.value)}),[n,t]),c=(0,A.useMemo)((()=>s.map((e=>{let{value:t,text:s}=e;return T().createElement("option",{value:t,key:t},s)}))),[s]);return T().createElement(gt,{label:a,inputId:t,helpText:l,setByEnv:o},T().createElement("select",{"data-testid":t+"dropdown",className:"form-control",id:t,value:i,onChange:d,disabled:r||o},c))},bt=(0,A.memo)(Et);function vt(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class yt extends T().PureComponent{constructor(e){super(e),vt(this,"fileInputRef",T().createRef()),vt(this,"isMounted",!1),vt(this,"handleChooseClick",(()=>{var e;null===(e=this.fileInputRef.current)||void 0===e||e.click()})),vt(this,"handleChange",(()=>{var e;const t=null===(e=this.fileInputRef.current)||void 0===e?void 0:e.files;t&&t.length>0&&this.setState({fileSelected:!0,fileName:t[0].name})})),vt(this,"handleSubmit",(e=>{var t,s;e.preventDefault(),this.setState({uploading:!0});const a=null===(t=this.fileInputRef.current)||void 0===t||null===(s=t.files)||void 0===s?void 0:s[0];a&&this.props.onSubmit(this.props.id,a,(e=>{this.isMounted&&(this.setState({uploading:!1}),e&&this.fileInputRef.current&&D.K2(this.fileInputRef.current))}))})),this.state={fileName:null,serverError:e.error,uploading:!1,fileSelected:!1}}componentDidMount(){this.isMounted=!0}componentWillUnmount(){this.isMounted=!1}render(){let e,t;return this.state.serverError&&(e=T().createElement("div",{className:"form-group has-error"},T().createElement("label",{className:"control-label"},this.state.serverError))),t=this.state.fileName?this.state.fileName:T().createElement(N.FormattedMessage,{id:"admin.file_upload.noFile",defaultMessage:"No file uploaded"}),T().createElement(gt,{label:this.props.label,helpText:this.props.helpText,inputId:this.props.id},T().createElement("div",null,T().createElement("div",{className:"file__upload"},T().createElement("button",{type:"button",className:"btn btn-tertiary",disabled:this.props.disabled,onClick:this.handleChooseClick},T().createElement(N.FormattedMessage,{id:"admin.file_upload.chooseFile",defaultMessage:"Choose File"})),T().createElement("input",{ref:this.fileInputRef,type:"file",disabled:this.props.disabled,accept:this.props.fileType,onChange:this.handleChange})),T().createElement("button",{type:"button",className:"btn btn-primary",disabled:!this.state.fileSelected,onClick:this.handleSubmit},this.state.uploading&&T().createElement(T().Fragment,null,T().createElement("span",{className:"glyphicon glyphicon-refresh glyphicon-refresh-animate"}),this.props.uploadingText),!this.state.uploading&&T().createElement(N.FormattedMessage,{id:"admin.file_upload.uploadFile",defaultMessage:"Upload"})),T().createElement("div",{className:"help-text m-0"},t),e))}}vt(yt,"propTypes",{id:k().string.isRequired,label:k().node.isRequired,helpText:k().node,uploadingText:k().node,onSubmit:k().func.isRequired,disabled:k().bool.isRequired,fileType:k().string.isRequired,error:k().string}),s(89744);var Mt=s(9241);function _t(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class St extends T().PureComponent{constructor(){super(...arguments),_t(this,"regenerate",(e=>{e.preventDefault();const t=Mt.randomBytes(256).toString("base64").substring(0,32);this.props.onChange(this.props.id,t.replaceAll("+","-").replaceAll("/","_"))}))}static get defaultProps(){return{disabled:!1,regenerateText:T().createElement(N.FormattedMessage,{id:"admin.regenerate",defaultMessage:"Regenerate"})}}render(){let e=null;this.props.disabled&&this.props.disabledText&&(e=T().createElement("div",{className:"admin-console__disabled-text"},this.props.disabledText));let t=null;this.props.regenerateHelpText&&(t=T().createElement("div",{className:"help-text"},this.props.regenerateHelpText));let s=this.props.value;return s||(s=T().createElement("span",{className:"placeholder-text"},this.props.placeholder)),T().createElement("div",{className:"form-group"},T().createElement("label",{className:"control-label col-sm-4",htmlFor:this.props.id},this.props.label),T().createElement("div",{className:"col-sm-8"},T().createElement("div",{className:"form-control disabled",id:this.props.id},s),e,T().createElement("div",{className:"help-text"},this.props.helpText),T().createElement("div",{className:"help-text"},T().createElement("button",{type:"button",className:"btn btn-tertiary",onClick:this.regenerate,disabled:this.props.disabled||this.props.setByEnv},this.props.regenerateText)),t,this.props.setByEnv?T().createElement(L,null):null))}}_t(St,"propTypes",{id:k().string.isRequired,label:k().node.isRequired,placeholder:k().string,value:k().string.isRequired,onChange:k().func.isRequired,disabled:k().bool.isRequired,setByEnv:k().bool.isRequired,disabledText:k().node,helpText:k().node.isRequired,regenerateText:k().node.isRequired,regenerateHelpText:k().node});var Ct=s(81149);function At(e){return e.entities.jobs.jobsByTypeList}const Tt=e=>{const{job:t,disabled:s,onClick:a}=e,i=(0,N.useIntl)();let n=null;const r=(0,A.useCallback)((e=>{e.preventDefault(),a(t.id)}),[a,t.id]);return s||t.status!==mt.Im.PENDING&&t.status!==mt.Im.IN_PROGRESS||(n=T().createElement("span",{onClick:r,className:"JobCancelButton",title:i.formatMessage({id:"admin.jobTable.cancelButton",defaultMessage:"Cancel"})},"×")),n};Tt.propTypes={disabled:k().bool.isRequired,onClick:k().func.isRequired};const Nt=T().memo(Tt);s(83931);var wt=s(17518);const Rt=T().memo((e=>{var t,s,a;let{job:i}=e;return"true"===(null===(t=i.data)||void 0===t?void 0:t.is_downloadable)&&parseInt(null===(s=i.data)||void 0===s?void 0:s.messages_exported,10)>0&&(null===(a=i.data)||void 0===a?void 0:a.export_type)!==mt.Fu.EXPORT_FORMAT_GLOBALRELAY?T().createElement(wt.A,{key:i.id,location:"job_download_link",href:"".concat(O.mT.getJobsRoute(),"/").concat(i.id,"/download"),className:"JobDownloadLink"},T().createElement(N.FormattedMessage,{id:"admin.jobTable.downloadLink",defaultMessage:"Download"})):T().createElement(T().Fragment,null,"--")})),Ot=T().memo((e=>{let{status:t,millis:s}=e;if(0===s||t===mt.Im.PENDING||t===mt.Im.IN_PROGRESS||t===mt.Im.CANCEL_REQUESTED)return T().createElement("span",{className:"JobFinishAt whitespace--nowrap"},"--");const a=new Date(s);return T().createElement("span",{className:"JobFinishAt whitespace--nowrap"},T().createElement(N.FormattedDate,{value:a,day:"2-digit",month:"short",year:"numeric"})," - ",T().createElement(N.FormattedTime,{value:a,hour:"2-digit",minute:"2-digit"}))}));Ot.propTypes={millis:k().number.isRequired};const It=Ot,kt=T().memo((e=>{let{job:t}=e;const s=(0,N.useIntl)();let a=t.last_activity_at-t.start_at;if(t.status===mt.Im.IN_PROGRESS){const e=Date.now()-t.start_at;e>a&&(a=e)}let i=s.formatMessage({id:"admin.jobTable.lastActivityAt",defaultMessage:"Last Activity: "})+"--";t.last_activity_at>0&&(i=s.formatMessage({id:"admin.jobTable.lastActivityAt",defaultMessage:"Last Activity: "})+s.formatDate(new Date(t.last_activity_at),{year:"numeric",month:"short",day:"2-digit"})+" - "+s.formatTime(new Date(t.last_activity_at),{hour:"2-digit",minute:"2-digit",second:"2-digit"}));const n=Math.round(a/1e3),r=Math.round(a/6e4);return a<=0||t.status===mt.Im.CANCELED?T().createElement("span",{className:"JobRunLength whitespace--nowrap"},"--"):n<=120?T().createElement("span",{className:"JobRunLength whitespace--nowrap",title:i},n+s.formatMessage({id:"admin.jobTable.runLengthSeconds",defaultMessage:" seconds"})):T().createElement("span",{className:"JobRunLength whitespace--nowrap",title:i},r+s.formatMessage({id:"admin.jobTable.runLengthMinutes",defaultMessage:" minutes"}))})),Pt=T().memo((e=>{let{job:t}=e;const s=(0,N.useIntl)();return t.status===mt.Im.PENDING?T().createElement("span",{className:"JobStatus status-icon-warning",title:s.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},T().createElement(N.FormattedMessage,{id:"admin.jobTable.statusPending",defaultMessage:"Pending"})):t.status===mt.Im.IN_PROGRESS?T().createElement("span",{className:"JobStatus status-icon-warning",title:s.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},T().createElement(N.FormattedMessage,{id:"admin.jobTable.statusInProgress",defaultMessage:"In Progress"})):t.status===mt.Im.SUCCESS?T().createElement("span",{className:"JobStatus status-icon-success",title:s.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},T().createElement(N.FormattedMessage,{id:"admin.jobTable.statusSuccess",defaultMessage:"Success"})):t.status===mt.Im.WARNING?T().createElement("span",{className:"JobStatus status-icon-warning",title:s.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},T().createElement(N.FormattedMessage,{id:"admin.jobTable.statusWarning",defaultMessage:"Warning"})):t.status===mt.Im.ERROR?T().createElement("span",{className:"JobStatus status-icon-error",title:s.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},T().createElement(N.FormattedMessage,{id:"admin.jobTable.statusError",defaultMessage:"Error"})):t.status===mt.Im.CANCEL_REQUESTED?T().createElement("span",{className:"JobStatus status-icon-warning",title:s.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},T().createElement(N.FormattedMessage,{id:"admin.jobTable.statusCanceling",defaultMessage:"Canceling..."})):t.status===mt.Im.CANCELED?T().createElement("span",{className:"JobStatus status-icon-error",title:s.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},T().createElement(N.FormattedMessage,{id:"admin.jobTable.statusCanceled",defaultMessage:"Canceled"})):T().createElement("span",{className:"JobStatus",title:s.formatMessage({id:"admin.jobTable.jobId",defaultMessage:"Job ID: "})+t.id},t.status)}));function xt(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Dt extends T().PureComponent{constructor(e){super(e),xt(this,"interval",null),xt(this,"getExtraInfoText",(e=>e.data&&e.data.error&&e.data.error.length>0?T().createElement("span",{title:e.data.error},e.data.error):this.props.getExtraInfoText?this.props.getExtraInfoText(e):T().createElement("span",null))),xt(this,"reload",(()=>{this.props.actions.getJobsByType(this.props.jobType)})),xt(this,"handleCancelJob",(async e=>{await this.props.actions.cancelJob(e),this.reload()})),xt(this,"handleCreateJob",(async e=>{e.preventDefault();const t={type:this.props.jobType,data:this.props.jobData};await this.props.actions.createJob(t),this.reload()})),xt(this,"handleNextPage",(()=>{if(this.props.perPage){const e=Math.ceil(this.props.jobs.length/this.props.perPage);this.state.currentPage<e&&this.setState({currentPage:this.state.currentPage+1})}})),xt(this,"handlePrevPage",(()=>{this.state.currentPage>0&&this.setState({currentPage:this.state.currentPage-1})})),this.state={currentPage:0}}componentDidMount(){this.props.actions.getJobsByType(this.props.jobType),this.interval=setInterval(this.reload,15e3)}componentWillUnmount(){this.interval&&clearInterval(this.interval)}render(){const{perPage:e}=this.props,{currentPage:t}=this.state;let s=this.props.jobs,a=0,i=this.props.jobs.length;e&&(a=t*e,i=Math.min(a+e,this.props.jobs.length),s=this.props.jobs.slice(a,i));const n=this.props.jobType===mt.jj.MESSAGE_EXPORT&&this.props.downloadExportResults,r=this.props.jobType===mt.jj.ACCESS_CONTROL_SYNC,o=s.map((e=>T().createElement("tr",{key:e.id,onClick:this.props.onRowClick?()=>this.props.onRowClick(e):void 0,className:this.props.onRowClick?"clickable":""},T().createElement("td",{className:"whitespace--nowrap"},T().createElement(Pt,{job:e})),T().createElement("td",{className:"whitespace--nowrap"},T().createElement(It,{status:e.status,millis:e.last_activity_at})),T().createElement("td",{className:"whitespace--nowrap"},T().createElement(kt,{job:e})),n&&T().createElement("td",{className:"whitespace--nowrap"},T().createElement(Rt,{job:e})),!r&&T().createElement("td",null,this.getExtraInfoText(e)),T().createElement("td",{className:"cancel-button-field whitespace--nowrap text-center"},T().createElement(Nt,{job:e,onClick:this.handleCancelJob,disabled:this.props.disabled})))));return T().createElement("div",{className:oe()("JobTable","job-table__panel",this.props.className)},T().createElement("div",{className:"job-table__create-button"},!this.props.hideJobCreateButton&&T().createElement("div",null,T().createElement("button",{type:"button",className:"btn btn-tertiary",onClick:this.handleCreateJob,disabled:this.props.disabled},this.props.createJobButtonText)),T().createElement("div",{className:"help-text"},this.props.createJobHelpText)),!this.props.hideTable&&T().createElement("div",{className:"job-table__table"},T().createElement("table",{className:"table","data-testid":"jobTable"},T().createElement("thead",null,T().createElement("tr",null,T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.jobTable.headerStatus",defaultMessage:"Status"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.jobTable.headerFinishAt",defaultMessage:"Finish Time"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.jobTable.headerRunTime",defaultMessage:"Run Time"})),n&&T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.jobTable.headerFiles",defaultMessage:"Files"})),!r&&T().createElement("th",{colSpan:3},T().createElement(N.FormattedMessage,{id:"admin.jobTable.headerExtraInfo",defaultMessage:"Details"})),T().createElement("th",{className:"cancel-button-field"}))),T().createElement("tbody",null,o)),e&&this.props.jobs.length>0&&(()=>{let t=null;if(e){const e=a<=0,s=i>=this.props.jobs.length;t=T().createElement("div",{className:"DataGrid_footer"},T().createElement("div",{className:"DataGrid_cell"},T().createElement(N.FormattedMessage,{id:"admin.data_grid.paginatorCount",defaultMessage:"{startCount, number} - {endCount, number} of {total, number}",values:{startCount:a+1,endCount:i,total:this.props.jobs.length}}),T().createElement("button",{type:"button",className:"btn btn-quaternary btn-icon btn-sm ml-2 prev "+(e?"disabled":""),onClick:this.handlePrevPage,disabled:e,"aria-label":"Previous page"},T().createElement(de.A,null)),T().createElement("button",{type:"button",className:"btn btn-quaternary btn-icon btn-sm next "+(s?"disabled":""),onClick:this.handleNextPage,disabled:s,"aria-label":"Next page"},T().createElement(le.A,null))))}return t})()))}}xt(Dt,"propTypes",{jobs:k().array.isRequired,getExtraInfoText:k().func,disabled:k().bool.isRequired,createJobHelpText:k().element.isRequired,downloadExportResults:k().bool,className:k().string,hideJobCreateButton:k().bool,createJobButtonText:k().node.isRequired,hideTable:k().bool,jobData:k().any,onRowClick:k().func,perPage:k().number,actions:k().shape({getJobsByType:k().func.isRequired,cancelJob:k().func.isRequired,createJob:k().func.isRequired}).isRequired});const Lt=Dt,Ft=(0,a.connect)((function(e,t){var s,a;return{jobs:(a=t.jobType,(0,S.Mz)("makeGetJobsByType",At,(e=>e[a]||[])))(e),downloadExportResults:null===(s=(0,d.zj)(e).MessageExportSettings)||void 0===s?void 0:s.DownloadExportResults}}),(function(e){return{actions:(0,i.zH)({getJobsByType:Ct.mF,createJob:Ct._S,cancelJob:Ct.mh},e)}}))(Lt);var Ut=s(7481),Bt=s(85990);const jt=e=>{let{text:t}=e;return t},Ht=e=>{let{id:t,values:s,label:a,selected:i,onChange:n,disabled:r=!1,setByEnv:o,helpText:l,noOptionsMessage:d}=e;const[c,m]=(0,A.useState)(!1),u=(0,A.useCallback)((e=>{const s=e?e.map((e=>e.value)):[];n(t,s),m(!1)}),[t,n]),p=(0,A.useMemo)((()=>s.reduce(((e,t)=>(e[t.value]=t,e)),{})),[s]),g=(0,A.useMemo)((()=>i.reduce(((e,t)=>{const s=p[t];return s&&e.push(s),e}),[])),[i,p]);return T().createElement(gt,{label:a,inputId:t,helpText:l,setByEnv:o},T().createElement(Ut.Ay,{id:t,isMulti:!0,getOptionLabel:jt,options:s,delimiter:",",isClearable:!1,isDisabled:r||o,noOptionsMessage:()=>d,onChange:u,value:g}),T().createElement(Bt.Ay,{error:c}))};Ht.propTypes={id:k().string.isRequired,values:k().arrayOf(k().shape({value:k().string.isRequired,text:k().string.isRequired})).isRequired,label:k().node.isRequired,selected:k().arrayOf(k().string).isRequired,onChange:k().func.isRequired,disabled:k().bool,setByEnv:k().bool.isRequired,helpText:k().node,noOptionsMessage:k().node};const Gt=T().memo(Ht),qt=e=>{let{id:t,label:s,values:a,value:i,setByEnv:n,disabled:r=!1,helpText:o,onChange:l}=e;const d=e=>{l(t,e.target.value)},c=a.map((e=>{let{value:s,text:a}=e;return T().createElement("div",{className:"radio",key:s},T().createElement("label",null,T().createElement("input",{type:"radio",value:s,name:t,checked:s===i,onChange:d,disabled:r||n}),a))}));return T().createElement(gt,{label:s,inputId:t,helpText:o,setByEnv:n},c)};qt.propTypes={id:k().string.isRequired,label:k().node.isRequired,values:k().arrayOf(k().shape({text:k().string.isRequired,value:k().string.isRequired})).isRequired,value:k().string.isRequired,setByEnv:k().bool.isRequired,disabled:k().bool,helpText:k().node};const Vt=T().memo(qt),zt=e=>{let{id:t,label:s,helpText:a,removeButtonText:i,removingText:n,fileName:r,onSubmit:o,disabled:l}=e;const[d,c]=(0,A.useState)(!1),m=(0,A.useCallback)((e=>{e.preventDefault(),c(!0),o(t,(()=>{c(!1)}))}),[t,o]);return T().createElement(gt,{label:s,helpText:a,inputId:t},T().createElement("div",null,T().createElement("div",{className:"help-text remove-filename"},r),T().createElement("button",{type:"button",className:"btn btn-danger",onClick:m,disabled:l},d&&T().createElement(T().Fragment,null,T().createElement("span",{className:"glyphicon glyphicon-refresh glyphicon-refresh-animate"}),n),!d&&i)))},Wt=(0,A.memo)(zt);function Yt(){const{formatMessage:e}=(0,N.useIntl)();return T().createElement("i",{className:"fa fa-check",title:e({id:"generic_icons.success",defaultMessage:"Success Icon"})})}var Zt=s(87064),Jt=s(55476);function Kt(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Qt extends T().PureComponent{constructor(e){super(e),Kt(this,"handleRequest",(e=>{e.preventDefault(),this.setState({busy:!0,fail:"",success:!1});const t=()=>this.props.requestAction((()=>{this.setState({busy:!1,success:!0})}),(e=>{let t=e.message;this.props.includeDetailedError&&e.detailed_error&&(t+=" - "+e.detailed_error),this.setState({busy:!1,fail:t})}));this.props.saveNeeded&&this.props.saveConfigAction?this.props.saveConfigAction(t):t()})),this.state={busy:!1,fail:"",success:!1}}render(){let e=null;if(this.state.fail){const t="string"==typeof this.props.errorMessage?this.props.errorMessage:T().createElement(N.FormattedMessage,Object.assign({},this.props.errorMessage,{values:{error:this.state.fail}}));e=T().createElement("div",null,T().createElement("div",{className:"alert alert-warning"},T().createElement(Zt.A,null),t))}else if(this.state.success&&this.props.showSuccessMessage){const t="string"==typeof this.props.successMessage?this.props.successMessage:T().createElement(N.FormattedMessage,this.props.successMessage);e=T().createElement("div",null,T().createElement("div",{className:"alert alert-success"},T().createElement(Yt,null),t))}let t="col-sm-8",s=null;return this.props.label?s=T().createElement("label",{className:"control-label col-sm-4"},this.props.label):t=this.props.flushLeft?"col-sm-12":"col-sm-offset-4 "+t,T().createElement("div",{className:"form-group",id:this.props.id},s,T().createElement("div",{className:t},T().createElement("div",null,T().createElement("button",{type:"button",className:"btn btn-".concat(this.props.buttonType||"tertiary"),onClick:this.handleRequest,disabled:this.props.disabled},T().createElement(Jt.A,{loading:this.state.busy,text:this.props.loadingText||T().createElement(N.FormattedMessage,{id:"admin.requestButton.loading",defaultMessage:"Loading..."})},this.props.buttonText)),this.props.alternativeActionElement,e),T().createElement("div",{className:"help-text"},this.props.helpText)))}}Kt(Qt,"propTypes",{id:k().string,requestAction:k().func.isRequired,helpText:k().node,loadingText:k().node,buttonText:k().node.isRequired,label:k().node,disabled:k().bool,saveNeeded:k().bool,saveConfigAction:k().func,showSuccessMessage:k().bool,includeDetailedError:k().bool,alternativeActionElement:k().node,flushLeft:k().bool,buttonType:k().oneOf(["primary","secondary","tertiary"])}),Kt(Qt,"defaultProps",{disabled:!1,saveNeeded:!1,showSuccessMessage:!0,includeDetailedError:!1,successMessage:(0,N.defineMessage)({id:"admin.requestButton.requestSuccess",defaultMessage:"Test Successful"}),errorMessage:(0,N.defineMessage)({id:"admin.requestButton.requestFailure",defaultMessage:"Test Failure: {error}"})});var Xt=s(83185),$t=s.n(Xt),es=s(71127);const ts=e=>{let{isMarkdown:t,text:s,textValues:a}=e;if("string"==typeof s){if(t){const e=$t()(s,{breaks:!0,sanitize:!0,renderer:new es.B});return T().createElement("span",{dangerouslySetInnerHTML:{__html:e}})}return T().createElement("span",null,s)}return"id"in s?t?T().createElement(es.A,Object.assign({},s,{values:a})):T().createElement(N.FormattedMessage,Object.assign({},s,{values:a})):s};ts.propTypes={isMarkdown:k().bool,textValues:k().objectOf(k().oneOfType([k().string,k().func]))};const ss=ts,as=e=>{let{show:t=!0,container:s=!0,header:a,title:i,subtitle:n,children:r}=e,o="",l="";if(!t)return null;s&&(o="admin-console__wrapper",l="admin-console__content");let d=null;!a&&i&&(d=T().createElement("div",{className:"section-title"},i));let c=null;!a&&n&&(c=T().createElement("div",{className:"section-subtitle"},n));let m=null;return(d||c)&&(m=T().createElement("div",{className:"section-header"},d,c)),T().createElement("div",{className:o},T().createElement("div",{className:l},a?T().createElement("h4",null,a):null,m,r))};as.propTypes={id:k().string,show:k().bool,header:k().node,title:k().node,subtitle:k().node,children:k().node,container:k().bool};const is=(0,A.memo)(as);var ns=s(49195);const rs=["setByEnv","disabled","footer","placeholder"],os=e=>{const{setByEnv:t,disabled:s,footer:a,placeholder:i}=e,n=function(e,t){if(null==e)return{};var s,a,i=function(e,t){if(null==e)return{};var s={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;s[a]=e[a]}return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)s=n[a],-1===t.indexOf(s)&&{}.propertyIsEnumerable.call(e,s)&&(i[s]=e[s])}return i}(e,rs),r=s||t,o=(0,N.useIntl)();let l;return i&&(l="string"==typeof i?i:o.formatMessage(i)),T().createElement(ns.A,Object.assign({},n,{labelClassName:"col-sm-4",inputClassName:"col-sm-8",disabled:r,footer:t?T().createElement(L,null):a,placeholder:l}))};os.propTypes={setByEnv:k().bool.isRequired,disabled:k().bool};const ls=os;var ds=s(65357),cs=s(86791),ms=s(32269),us=s(4565);const ps=e=>{let{id:t,label:s,placeholder:a,helpText:i,value:n,onChange:r,disabled:o,actions:l}=e;const d=(0,A.useRef)([new cs.A(l.autocompleteUsers)]),c=(0,A.useCallback)((e=>{r(t,e.target.value)}),[r,t]),m=(0,A.useCallback)((e=>{r(t,e.username)}),[t,r]);return T().createElement(gt,{label:s,helpText:i,inputId:t},T().createElement("div",{className:"admin-setting-user__dropdown"},T().createElement(ms.A,{id:"admin_user_setting_"+t,className:"form-control",placeholder:a,value:n,onChange:c,onItemSelected:m,listComponent:us.A,listPosition:"bottom",providers:d.current,disabled:o,requiredCharacters:0,openOnFocus:!0})))};ps.propTypes={id:k().string.isRequired,label:k().string.isRequired,placeholder:k().string.isRequired,helpText:k().node.isRequired,value:k().string.isRequired,onChange:k().func.isRequired,disabled:k().bool.isRequired,actions:k().shape({autocompleteUsers:k().func.isRequired}).isRequired};const gs=ps,hs=(0,a.connect)(null,(function(e){return{actions:(0,i.zH)({autocompleteUsers:ds.X4},e)}}))(gs);var fs=s(18515),Es=s(67416);const bs=e=>{let{className:t="",size:s="xs",variant:a="info"}=e;const{formatMessage:i}=(0,N.useIntl)();return T().createElement(Es.A,{uppercase:!0,size:s,variant:a,className:oe()("BetaTag",t),text:i({id:"tag.default.beta",defaultMessage:"BETA"})})};bs.propTypes={className:k().string};const vs=bs;var ys=s(87131),Ms=s(90478);const _s="true",Ss="false",Cs={enableTeamCreation:{[_s]:[{roleName:"system_user",permission:l.xB.CREATE_TEAM,shouldHave:!0}],[Ss]:[{roleName:"system_user",permission:l.xB.CREATE_TEAM,shouldHave:!1}]},editOthersPosts:{[_s]:[{roleName:"system_admin",permission:l.xB.EDIT_OTHERS_POSTS,shouldHave:!0},{roleName:"team_admin",permission:l.xB.EDIT_OTHERS_POSTS,shouldHave:!0}],[Ss]:[{roleName:"team_admin",permission:l.xB.EDIT_OTHERS_POSTS,shouldHave:!1},{roleName:"system_admin",permission:l.xB.EDIT_OTHERS_POSTS,shouldHave:!0}]},enableOnlyAdminIntegrations:{[_s]:[{roleName:"team_user",permission:l.xB.MANAGE_INCOMING_WEBHOOKS,shouldHave:!1},{roleName:"team_user",permission:l.xB.MANAGE_OUTGOING_WEBHOOKS,shouldHave:!1},{roleName:"team_user",permission:l.xB.MANAGE_SLASH_COMMANDS,shouldHave:!1},{roleName:"system_user",permission:l.xB.MANAGE_OAUTH,shouldHave:!1}],[Ss]:[{roleName:"team_user",permission:l.xB.MANAGE_INCOMING_WEBHOOKS,shouldHave:!0},{roleName:"team_user",permission:l.xB.MANAGE_OUTGOING_WEBHOOKS,shouldHave:!0},{roleName:"team_user",permission:l.xB.MANAGE_SLASH_COMMANDS,shouldHave:!0},{roleName:"system_user",permission:l.xB.MANAGE_OAUTH,shouldHave:!0}]}};function As(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Ts(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?As(Object(s),!0).forEach((function(t){Ns(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):As(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Ns(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const ws=[];function Rs(e){return e.replace(/\./g,"+")}function Os(e){return e.replace(/\+/g,".")}function Is(e,t,s){if(e)return"string"==typeof e?e:t.formatMessage(e,s)}class ks extends T().PureComponent{constructor(e){var t;super(e),t=this,Ns(this,"handleSubmit",(async e=>{if(e.preventDefault(),this.state.confirmNeededId)this.setState({showConfirmId:this.state.confirmNeededId});else{if(this.setState({saving:!0,serverError:null}),"both"===this.state.saveNeeded||"permissions"===this.state.saveNeeded){const e=function(e,t){const s=JSON.parse(JSON.stringify(t));return function(e){const t=function(){let e=[];return Object.values(Cs).forEach((t=>{Object.values(t).forEach((t=>{const s=t.map((e=>e.roleName));e=e.concat(s)}))})),[...new Set(e.map((e=>e)))]}();Object.keys(e).forEach((s=>{t.includes(s)||delete e[s]}))}(s),Object.keys(Cs).forEach((t=>{const a=e[t];a&&function(e,t,s){const a=Cs[e][t];if(void 0===a)throw new Error("Value '".concat(t,"' not present in MAPPING for key '").concat(e,"'."));a.forEach((e=>{const t=s[e.roleName];e.shouldHave?function(e,t){t.permissions.includes(e)||t.permissions.push(e)}(e.permission,t):function(e,t){const s=t.permissions.indexOf(e);-1!==s&&t.permissions.splice(s,1)}(e.permission,t)}))}(t,a,s)})),Object.entries(s).forEach((e=>{let[a,i]=e;const n=new Set(t[a].permissions),r=new Set(i.permissions),o=[...r].filter((e=>!n.has(e)));n.size===r.size&&0===o.length&&delete s[a]})),s}((this.props.schema&&"settings"in this.props.schema&&this.props.schema.settings||[]).reduce(((e,t)=>(t.type===mt.Ay.SettingsTypes.TYPE_PERMISSION&&(e[t.permissions_mapping_name]=this.state[t.key].toString()),e)),{}),this.props.roles);let t=!0;if(await Promise.all(Object.values(e).map((async e=>{try{await this.props.editRole(e)}catch(e){t=!1,this.setState({saving:!1,serverError:e.message})}}))),!t)return}"both"===this.state.saveNeeded||"config"===this.state.saveNeeded?this.doSubmit(ks.getStateFromConfig):(this.setState({saving:!1,saveNeeded:!1,serverError:null}),this.props.setNavigationBlocked(!1))}})),Ns(this,"renderTitle",(()=>{if(!this.props.schema)return"";let e=this.props.schema.id;"name"in this.props.schema&&(e=this.props.schema.name);const t=this.props.schema.isBeta&&T().createElement(vs,{variant:"default",size:"sm",className:"admin-header-beta-badge"});return"string"==typeof e?T().createElement(nt,null,e,t):T().createElement(nt,null,T().createElement(N.FormattedMessage,e),t)})),Ns(this,"renderBanner",(e=>this.props.schema&&"label"in e?"string"==typeof e.label?e.label_markdown?T().createElement(fs.A,{message:e.label}):T().createElement("span",null,e.label):T().createElement(N.FormattedMessage,Object.assign({},e.label,{values:e.label_values})):T().createElement("span",null,""))),Ns(this,"isDisabled",(e=>"function"==typeof e.isDisabled?e.isDisabled(this.props.config,this.state,this.props.license,this.props.enterpriseReady,this.props.consoleAccess,this.props.cloud,this.props.isCurrentUserSystemAdmin):Boolean(e.isDisabled))),Ns(this,"isHidden",(e=>"function"==typeof e.isHidden?e.isHidden(this.props.config,this.state,this.props.license):Boolean(e.isHidden))),Ns(this,"isSectionHidden",(e=>"function"==typeof e.isHidden?e.isHidden(this.props.config,this.state,this.props.license):Boolean(e.isHidden))),Ns(this,"buildButtonSetting",(e=>{if(!this.props.schema||"button"!==e.type)return T().createElement(T().Fragment,null);const t=xs(e,this.props.schema,this.isDisabled(e)),s=Ps(e,this.props.schema,this.props.intl);return T().createElement(Qt,{id:e.key,key:this.props.schema.id+"_text_"+e.key,requestAction:(t,s)=>{if(!e.skipSaveNeeded&&!1!==this.state.saveNeeded)return void s({message:this.props.intl.formatMessage({id:"admin_settings.save_unsaved_changes",defaultMessage:"Please save unsaved changes first"})});let a="ServiceSettings.SiteURL";e.sourceUrlKey&&(a=e.sourceUrlKey),e.action((e=>{const s=new Map(Object.entries(e));(this.props.schema&&"settings"in this.props.schema&&this.props.schema.settings||[]).forEach((e=>{if(e.key&&"setFromMetadataField"in e&&e.setFromMetadataField){const i=s.get(e.setFromMetadataField);if(e.type===mt.Ay.SettingsTypes.TYPE_TEXT)this.setState({[e.key]:i,["".concat(e.key,"Error")]:null});else if(e.type===mt.Ay.SettingsTypes.TYPE_FILE_UPLOAD){var t,a;this.buildSettingFunctions[e.type]&&null!==(t=this.buildSettingFunctions[e.type](e))&&void 0!==t&&t.props.onSetData&&(null===(a=this.buildSettingFunctions[e.type](e))||void 0===a||a.props.onSetData(e.key,i))}}})),t&&"function"==typeof t&&t()}),s,this.state[a])},helpText:t,loadingText:Is(e.loading,this.props.intl),buttonText:T().createElement("span",null,s),showSuccessMessage:Boolean(e.success_message),includeDetailedError:!0,disabled:this.isDisabled(e),errorMessage:e.error_message,successMessage:e.success_message})})),Ns(this,"buildTextSetting",(e=>{if(!this.props.schema||!e.key||"text"!==e.type&&"longtext"!==e.type&&"number"!==e.type)return T().createElement(T().Fragment,null);let t="text";e.type===mt.Ay.SettingsTypes.TYPE_NUMBER?t="number":e.type===mt.Ay.SettingsTypes.TYPE_LONG_TEXT&&(t="textarea");let s="";if(e.dynamic_value)s=e.dynamic_value(s,this.props.config,this.state);else if(e.multiple)s=this.state[e.key]?this.state[e.key].join(","):"";else{var a;s=null!==(a=this.state[e.key])&&void 0!==a?a:e.default||""}let i=null;if(e.validate){const t=e.validate(s).error(this.props.intl);i=t?T().createElement(Bt.Ay,{type:"backstrage",error:t}):i}const n=Ps(e,this.props.schema,this.props.intl),r=xs(e,this.props.schema,this.isDisabled(e));return T().createElement(ls,{key:this.props.schema.id+"_text_"+e.key,id:e.key,multiple:e.multiple,type:t,label:n,helpText:r,placeholder:Is(e.placeholder,this.props.intl,e.placeholder_values),value:s,disabled:this.isDisabled(e),setByEnv:Ds(e.key,this.props.environmentConfig),onChange:this.handleChange,maxLength:e.max_length,footer:i})})),Ns(this,"buildColorSetting",(e=>{if(!this.props.schema||!e.key||"color"!==e.type)return T().createElement(T().Fragment,null);const t=Ps(e,this.props.schema,this.props.intl),s=xs(e,this.props.schema,this.isDisabled(e));return T().createElement(ft,{key:this.props.schema.id+"_text_"+e.key,id:e.key,label:t,helpText:s,value:this.state[e.key]||"",disabled:this.isDisabled(e),onChange:this.handleChange})})),Ns(this,"buildBoolSetting",(e=>{var t;if(!this.props.schema||!e.key||"bool"!==e.type)return T().createElement(T().Fragment,null);const s=Ps(e,this.props.schema,this.props.intl),a=xs(e,this.props.schema,this.isDisabled(e));return T().createElement(j,{key:this.props.schema.id+"_bool_"+e.key,id:e.key,label:s,helpText:a,value:null!==(t=this.state[e.key])&&void 0!==t?t:e.default||!1,disabled:this.isDisabled(e),setByEnv:Ds(e.key,this.props.environmentConfig),onChange:this.handleChange})})),Ns(this,"buildPermissionSetting",(e=>{if(!this.props.schema||!e.key||"permission"!==e.type)return T().createElement(T().Fragment,null);const t=Ps(e,this.props.schema,this.props.intl),s=xs(e,this.props.schema,this.isDisabled(e));return T().createElement(j,{key:this.props.schema.id+"_bool_"+e.key,id:e.key,label:t,helpText:s,value:this.state[e.key]||!1,disabled:this.isDisabled(e),setByEnv:Ds(e.key,this.props.environmentConfig),onChange:this.handlePermissionChange})})),Ns(this,"buildDropdownSetting",(e=>{var t;if(!this.props.schema||!e.key||"dropdown"!==e.type)return T().createElement(T().Fragment,null);const s=[];e.options.forEach((e=>{e.isHidden&&("function"!=typeof e.isHidden||e.isHidden(this.props.config,this.state,this.props.license,this.props.enterpriseReady))||s.push(e)}));const a=s.map((e=>({value:e.value,text:Is(e.display_name,this.props.intl)}))),i=null!==(t=this.state[e.key])&&void 0!==t?t:a[0].value;let n=null;for(const e of s)if(e.help_text&&e.value===i){n=e;break}let r=!1;e.isHelpHidden&&(r="function"==typeof e.isHelpHidden?e.isHelpHidden(this.props.config,this.state,this.props.license,this.props.enterpriseReady):e.isHelpHidden);const o=Ps(e,this.props.schema,this.props.intl);let l="";return r||(l=n?Ls(n):xs(e,this.props.schema,this.isDisabled(e))),T().createElement(bt,{key:this.props.schema.id+"_dropdown_"+e.key,id:e.key,values:a,label:o,helpText:l,value:i,disabled:this.isDisabled(e),setByEnv:Ds(e.key,this.props.environmentConfig),onChange:this.handleChange})})),Ns(this,"buildRolesSetting",(e=>{var t;if(!this.props.schema||!e.key||"roles"!==e.type)return T().createElement(T().Fragment,null);const{roles:s}=this.props,a=Object.keys(s).map((e=>({value:s[e].name,text:s[e].name}))),i=Ps(e,this.props.schema,this.props.intl),n=xs(e,this.props.schema,this.isDisabled(e));if(e.multiple){const t="object"==typeof e.no_result?T().createElement(N.FormattedMessage,e.no_result):e.no_result;return T().createElement(Gt,{key:this.props.schema.id+"_language_"+e.key,id:e.key,values:a,label:i,helpText:n,selected:this.state[e.key]||ws,disabled:this.isDisabled(e),setByEnv:Ds(e.key,this.props.environmentConfig),onChange:this.handleChange,noOptionsMessage:t})}return T().createElement(bt,{key:this.props.schema.id+"_language_"+e.key,id:e.key,values:a,label:i,helpText:n,value:null!==(t=this.state[e.key])&&void 0!==t?t:a[0].value,disabled:this.isDisabled(e),setByEnv:Ds(e.key,this.props.environmentConfig),onChange:this.handleChange})})),Ns(this,"buildLanguageSetting",(e=>{var t;if(!this.props.schema||!e.key||"language"!==e.type)return T().createElement(T().Fragment,null);const s=Ms.No(),a=[];for(const e of Object.values(s))a.push({value:e.value,text:e.name,order:e.order});a.sort(((e,t)=>e.order-t.order));const i=Ps(e,this.props.schema,this.props.intl),n=xs(e,this.props.schema,this.isDisabled(e));return e.multiple?T().createElement(Gt,{key:this.props.schema.id+"_language_"+e.key,id:e.key,label:i,values:a,helpText:n,selected:this.state[e.key]&&this.state[e.key].split(",")||[],disabled:this.isDisabled(e),setByEnv:Ds(e.key,this.props.environmentConfig),onChange:(e,t)=>this.handleChange(e,t.join(",")),noOptionsMessage:Is(e.no_result,this.props.intl)}):T().createElement(bt,{key:this.props.schema.id+"_language_"+e.key,id:e.key,label:i,values:a,helpText:n,value:null!==(t=this.state[e.key])&&void 0!==t?t:a[0].value,disabled:this.isDisabled(e),setByEnv:Ds(e.key,this.props.environmentConfig),onChange:this.handleChange})})),Ns(this,"buildRadioSetting",(e=>{var t,s;if(!this.props.schema||!e.key||"radio"!==e.type)return T().createElement(T().Fragment,null);const a=(e.options||[]).map((e=>({value:e.value,text:Is(e.display_name,this.props.intl)}))),i=(null===(t=a.find((t=>t.value===e.default)))||void 0===t?void 0:t.value)||a[0].value,n=Ps(e,this.props.schema,this.props.intl),r=xs(e,this.props.schema,this.isDisabled(e));return T().createElement(Vt,{key:this.props.schema.id+"_radio_"+e.key,id:e.key,values:a,label:n,helpText:r,value:null!==(s=this.state[e.key])&&void 0!==s?s:i,disabled:this.isDisabled(e),setByEnv:Ds(e.key,this.props.environmentConfig),onChange:this.handleChange})})),Ns(this,"buildBannerSetting",(e=>!this.props.schema||"banner"!==e.type||this.isDisabled(e)?T().createElement(T().Fragment,null):T().createElement("div",{className:"banner "+e.banner_type,key:this.props.schema.id+"_bool_"+e.key},T().createElement("div",{className:"banner__content"},T().createElement("span",null,"warning"===e.banner_type?T().createElement(Zt.A,{additionalClassName:"banner__icon"}):null,this.renderBanner(e)))))),Ns(this,"buildGeneratedSetting",(e=>{var t;if(!this.props.schema||!e.key||"generated"!==e.type)return T().createElement(T().Fragment,null);const s=Ps(e,this.props.schema,this.props.intl),a=xs(e,this.props.schema,this.isDisabled(e));return T().createElement(St,{key:this.props.schema.id+"_generated_"+e.key,id:e.key,label:s,helpText:a,regenerateHelpText:e.regenerate_help_text,placeholder:Is(e.placeholder,this.props.intl),value:null!==(t=this.state[e.key])&&void 0!==t?t:e.default||"",disabled:this.isDisabled(e),setByEnv:Ds(e.key,this.props.environmentConfig),onChange:this.handleGeneratedChange})})),Ns(this,"handleGeneratedChange",((e,t)=>{this.handleChange(e,t.replace(/\+/g,"-").replace(/\//g,"_"))})),Ns(this,"handleChange",(function(e,s){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r="permissions"===t.state.saveNeeded?"both":"config";const o="true"===t.props.license.Cloud&&"starter"===t.props.license.SkuShortName;"openidType"===e&&"openid"===s&&o&&(r=!1);const l=!1===n?t.state.clientWarning:n;let d=a?e:t.state.confirmNeededId;e!==t.state.confirmNeededId||a||(d=""),t.setState({saveNeeded:r,confirmNeededId:d,clientWarning:l,[e]:s}),i&&t.doSubmit(ks.getStateFromConfig),t.props.setNavigationBlocked(!0)})),Ns(this,"handlePermissionChange",((e,t)=>{let s="permissions";"config"===this.state.saveNeeded&&(s="both"),this.setState({saveNeeded:s,[e]:t}),this.props.setNavigationBlocked(!0)})),Ns(this,"buildUsernameSetting",(e=>{var t;if(!this.props.schema||!e.key||e.type!==mt.Ay.SettingsTypes.TYPE_USERNAME)return T().createElement(T().Fragment,null);const s=Ps(e,this.props.schema,this.props.intl),a=xs(e,this.props.schema,this.isDisabled(e));return T().createElement(hs,{key:this.props.schema.id+"_userautocomplete_"+e.key,id:e.key,label:s,helpText:a,placeholder:e.placeholder,value:null!==(t=this.state[e.key])&&void 0!==t?t:e.default||"",disabled:this.isDisabled(e),onChange:this.handleChange})})),Ns(this,"buildJobsTableSetting",(e=>{if(!this.props.schema||"jobstable"!==e.type)return T().createElement(T().Fragment,null);const t=xs(e,this.props.schema,this.isDisabled(e));return T().createElement(Ft,{key:this.props.schema.id+"_jobstable_"+e.key,jobType:e.job_type,getExtraInfoText:e.render_job,disabled:this.isDisabled(e),createJobButtonText:Is(e.label,this.props.intl),createJobHelpText:t})})),Ns(this,"buildFileUploadSetting",(e=>{if(!this.props.schema||"fileupload"!==e.type||!e.key)return T().createElement(T().Fragment,null);if(this.state[e.key]){const t=(t,s)=>{e.remove_action((()=>{this.handleChange(e.key,""),this.setState({[e.key]:null,["".concat(e.key,"Error")]:null})}),(t=>{s(),this.setState({[e.key]:null,["".concat(e.key,"Error")]:t.message})}))},s=Ps(e,this.props.schema,this.props.intl),a=xs(e,this.props.schema,this.isDisabled(e));return T().createElement(Wt,{id:this.props.schema.id,key:this.props.schema.id+"_fileupload_"+e.key,label:s,helpText:a,removeButtonText:Is(e.remove_button_text,this.props.intl),removingText:Is(e.removing_text,this.props.intl),fileName:this.state[e.key],onSubmit:t,disabled:this.isDisabled(e),setByEnv:Ds(e.key,this.props.environmentConfig)})}const t=Ps(e,this.props.schema,this.props.intl),s=xs(e,this.props.schema,this.isDisabled(e));return T().createElement(yt,{id:e.key,key:this.props.schema.id+"_fileupload_"+e.key,label:t,helpText:s,uploadingText:Is(e.uploading_text,this.props.intl),disabled:this.isDisabled(e),fileType:e.fileType,onSubmit:(t,s,a)=>{e.upload_action(s,(s=>{this.handleChange(t,s),this.setState({[e.key]:s,["".concat(e.key,"Error")]:null}),a&&"function"==typeof a&&a()}),(e=>{a&&"function"==typeof a&&a(e.message)}))},error:this.state.idpCertificateFileError})})),Ns(this,"buildCustomSetting",(e=>{if(!this.props.schema||"custom"!==e.type)return T().createElement(T().Fragment,null);const t=Ps(e,this.props.schema,this.props.intl),s=xs(e,this.props.schema,this.isDisabled(e)),a=e.component,i=T().createElement(a,{key:this.props.schema.id+"_custom_"+e.key,id:e.key,label:t,helpText:s,value:this.state[e.key],disabled:this.isDisabled(e),config:this.props.config,license:this.props.license,setByEnv:Ds(e.key,this.props.environmentConfig),onChange:this.handleChange,registerSaveAction:this.registerSaveAction,setSaveNeeded:this.setSaveNeeded,unRegisterSaveAction:this.unRegisterSaveAction,cancelSubmit:this.cancelSubmit,showConfirm:this.state.showConfirmId===e.key});return e.showTitle?T().createElement(gt,{label:t,inputId:e.key,helpText:s},i):i})),Ns(this,"unRegisterSaveAction",(e=>{const t=this.saveActions.indexOf(e);this.saveActions.splice(t,1)})),Ns(this,"registerSaveAction",(e=>{this.saveActions.push(e)})),Ns(this,"setSaveNeeded",(()=>{this.setState({saveNeeded:"config"}),this.props.setNavigationBlocked(!0)})),Ns(this,"renderSettings",(()=>{const e=this.props.schema;if(!e)return null;if("settings"in e&&e.settings){const t=[];let s,a;return e.settings&&e.settings.forEach((e=>{this.buildSettingFunctions[e.type]&&!this.isHidden(e)&&t.push(this.buildSettingFunctions[e.type](e))})),e.header&&(s=T().createElement("div",{className:"banner"},T().createElement(ss,{text:e.header,isMarkdown:!0}))),e.footer&&(a=T().createElement("div",{className:"banner"},T().createElement(ss,{text:e.footer,isMarkdown:!0}))),T().createElement(is,{container:!1},s,t,a)}if("sections"in e&&e.sections){const t=[];return e.sections.forEach((e=>{if(this.isSectionHidden(e))return;const s=[];if(e.settings&&e.settings.forEach((e=>{this.buildSettingFunctions[e.type]&&!this.isHidden(e)&&s.push(this.buildSettingFunctions[e.type](e))})),e.component){const a=e.component;return void t.push(T().createElement(a,{settingsList:s,key:e.key}))}let a,i;e.header&&(a=T().createElement("div",{className:"banner"},T().createElement(ss,{text:e.header,isMarkdown:!0}))),e.footer&&(i=T().createElement("div",{className:"banner"},T().createElement(ss,{text:e.footer,isMarkdown:!0}))),e.key.startsWith("PluginSettings.PluginStates")&&e.key.endsWith("Enable.Section")?t.push(T().createElement(is,{container:!1,key:e.key},a,s,i)):t.push(T().createElement("div",{className:"config-section",key:e.key},T().createElement(is,{show:!0,title:e.title,subtitle:e.subtitle},T().createElement("div",{className:"section-body"},a,s,i))))})),T().createElement("div",null,t)}return null})),Ns(this,"doSubmit",(async e=>{if(!this.props.schema)return;let t=JSON.parse(JSON.stringify(this.props.config));t=Us(t,this.state,this.props.schema,this.isDisabled);const{error:s}=await this.props.patchConfig(t);s?this.setState({serverError:s.message,serverErrorId:s.id}):this.setState(e(t,this.props.schema));const a=[];for(const e of this.saveActions)a.push(e());const i=await Promise.all(a).then((e=>e.some((e=>e.error&&e.error.message))));this.state.serverError||i?this.setState({saving:!1}):(this.setState({saving:!1,saveNeeded:!1,confirmNeededId:"",showConfirmId:"",clientWarning:""}),this.props.setNavigationBlocked(!1))})),Ns(this,"cancelSubmit",(()=>{this.setState({showConfirmId:""})})),Ns(this,"isSetByEnv",(e=>Boolean(ks.getConfigValue(this.props.environmentConfig,e)))),Ns(this,"hybridSchemaAndComponent",(()=>{const e=this.props.schema;if(e&&"component"in e&&e.component){const t=e.component;return T().createElement(t,Object.assign({},this.props,{disabled:this.props.isDisabled}))}return null})),Ns(this,"canSave",(()=>{if(!this.props.schema||!("settings"in this.props.schema)||!this.props.schema.settings)return!0;for(const t of this.props.schema.settings)if("key"in t&&t.key&&!Ds(t.key,this.props.environmentConfig)&&"validate"in t&&t.validate){if("isHidden"in t){let s=!1;var e;if(s="function"==typeof t.isHidden?null===(e=t.isHidden)||void 0===e?void 0:e.call(t,this.props.config,this.state,this.props.license,this.props.enterpriseReady,this.props.consoleAccess,this.props.cloud,this.props.isCurrentUserSystemAdmin):Boolean(t.isHidden),s)continue}if(!t.validate(this.state[t.key]).isValid())return!1}return!0})),Ns(this,"render",(()=>{var e,t;const s=this.props.schema;if(s&&"component"in s&&s.component&&!("settings"in s)){const e=s.component;return T().createElement(e,Object.assign({},this.props,{disabled:this.props.isDisabled}))}return s?T().createElement("div",{className:"wrapper--fixed "+this.state.customComponentWrapperClass,"data-testid":"sysconsole_section_".concat(this.props.schema.id)},this.renderTitle(),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement("form",{className:"form-horizontal",role:"form",onSubmit:this.handleSubmit},this.renderSettings()),this.hybridSchemaAndComponent())),T().createElement("div",{className:"admin-console-save"},T().createElement(st.A,{saving:this.state.saving,disabled:!this.state.saveNeeded||this.canSave&&!this.canSave(),onClick:this.handleSubmit,savingMessage:this.props.intl.formatMessage({id:"admin.saving",defaultMessage:"Saving Config..."})}),T().createElement(ys.A,{title:null!==(e=null===(t=this.state)||void 0===t?void 0:t.serverError)&&void 0!==e?e:""},T().createElement("div",{className:"error-message","data-testid":"errorMessage"},T().createElement(Bt.Ay,{iconClassName:"fa-exclamation-triangle",textClassName:"has-warning",error:this.state.clientWarning}),T().createElement(Bt.Ay,{error:this.state.serverError}))))):T().createElement("div",{className:"wrapper--fixed"},T().createElement(nt,null,T().createElement(N.FormattedMessage,{id:"error.plugin_not_found.title",defaultMessage:"Plugin Not Found"})),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"error.plugin_not_found.desc",defaultMessage:"The plugin you are looking for does not exist."})),T().createElement(w.Link,{to:"plugin_management"},T().createElement(N.FormattedMessage,{id:"admin.plugin.backToPlugins",defaultMessage:"Go back to the Plugins"})))))})),this.isPlugin=!1,this.saveActions=[],this.buildSettingFunctions={[mt.Ay.SettingsTypes.TYPE_TEXT]:this.buildTextSetting,[mt.Ay.SettingsTypes.TYPE_LONG_TEXT]:this.buildTextSetting,[mt.Ay.SettingsTypes.TYPE_NUMBER]:this.buildTextSetting,[mt.Ay.SettingsTypes.TYPE_COLOR]:this.buildColorSetting,[mt.Ay.SettingsTypes.TYPE_BOOL]:this.buildBoolSetting,[mt.Ay.SettingsTypes.TYPE_PERMISSION]:this.buildPermissionSetting,[mt.Ay.SettingsTypes.TYPE_DROPDOWN]:this.buildDropdownSetting,[mt.Ay.SettingsTypes.TYPE_RADIO]:this.buildRadioSetting,[mt.Ay.SettingsTypes.TYPE_BANNER]:this.buildBannerSetting,[mt.Ay.SettingsTypes.TYPE_GENERATED]:this.buildGeneratedSetting,[mt.Ay.SettingsTypes.TYPE_USERNAME]:this.buildUsernameSetting,[mt.Ay.SettingsTypes.TYPE_BUTTON]:this.buildButtonSetting,[mt.Ay.SettingsTypes.TYPE_LANGUAGE]:this.buildLanguageSetting,[mt.Ay.SettingsTypes.TYPE_JOBSTABLE]:this.buildJobsTableSetting,[mt.Ay.SettingsTypes.TYPE_FILE_UPLOAD]:this.buildFileUploadSetting,[mt.Ay.SettingsTypes.TYPE_ROLES]:this.buildRolesSetting,[mt.Ay.SettingsTypes.TYPE_CUSTOM]:this.buildCustomSetting},this.state={saveNeeded:!1,saving:!1,serverError:null,customComponentWrapperClass:"",confirmNeededId:"",showConfirmId:"",clientWarning:""}}static getDerivedStateFromProps(e,t){return e.schema&&e.schema.id!==t.prevSchemaId?Ts({prevSchemaId:e.schema.id,saveNeeded:!1,saving:!1,serverError:null},ks.getStateFromConfig(e.config,e.schema,e.roles)):null}static getStateFromConfig(e,t,s){let a={};if(t){let i=[];"settings"in t&&t.settings?i=t.settings:"sections"in t&&t.sections&&t.sections.map((e=>e.settings)).forEach((e=>i.push(...e)));const n=e=>{const t=[];return e.forEach((e=>{t.push(e),e.type===mt.Ay.SettingsTypes.TYPE_EXPANDABLE_SETTING&&e.settings&&t.push(...n(e.settings))})),t};n(i).forEach((t=>{if(!t.key)return;if(t.type===mt.Ay.SettingsTypes.TYPE_PERMISSION){try{a[t.key]="true"===function(e,t){for(const s of function*(e,t){for(const s in e)if(Object.hasOwn(e,s)){const a=e[s].some((e=>{const s=t[e.roleName];return e.shouldHave&&!s.permissions.includes(e.permission)||!e.shouldHave&&s.permissions.includes(e.permission)}));yield{value:s,allConditionsAreMet:!a}}}(Cs[e],t))if(s.allConditionsAreMet)return s.value;throw new Error("No matching mapping value found for key '".concat(e,"' with the given roles."))}(t.permissions_mapping_name,s)}catch(e){a[t.key]=!1}return}let i=ks.getConfigValue(e,t.key);"onConfigLoad"in t&&t.onConfigLoad&&(i=t.onConfigLoad(i,e)),a[t.key]=null==i?void 0:i})),"onConfigLoad"in t&&t.onConfigLoad&&(a=Ts(Ts({},a),t.onConfigLoad(e)))}return a}getSetting(e){if(!this.props.schema)return null;if("settings"in this.props.schema&&this.props.schema.settings)for(const t of this.props.schema.settings)if(t.key===e)return t;return null}static getConfigValue(e,t){return t.split(".").reduce(((e,t)=>e?e[Os(t)]:null),e)}}Ns(ks,"propTypes",{setNavigationBlocked:k().func.isRequired,editRole:k().func.isRequired,patchConfig:k().func.isRequired,isDisabled:k().bool.isRequired,isCurrentUserSystemAdmin:k().bool.isRequired,enterpriseReady:k().bool.isRequired});const Ps=(e,t,s)=>t&&e.label?"string"==typeof e.label?e.label:s.formatMessage(e.label):"",xs=(e,t,s)=>{if(!t||"banner"===e.type||!e.help_text)return T().createElement("span",null,"");let a,i,n;return"disabled_help_text"in e&&e.disabled_help_text&&s?(a=e.disabled_help_text,i=e.disabled_help_text_markdown,n=e.disabled_help_text_values):(a=e.help_text,i=e.help_text_markdown,n=e.help_text_values),T().createElement(ss,{isMarkdown:i,text:a,textValues:n})},Ds=(e,t)=>Boolean(ks.getConfigValue(t,e)),Ls=e=>e.help_text?T().createElement(ss,{isMarkdown:e.help_text_markdown,text:e.help_text,textValues:e.help_text_values}):T().createElement("span",null,""),Fs=(e,t,s)=>{!function e(t,a){const i=Os(a[0]);1===a.length?t[i]=s:(null==t[i]&&(t[i]={}),e(t[i],a.slice(1)))}(e,t.split("."))},Us=(e,t,s,a)=>{if(s){let i=[];"settings"in s&&s.settings?i=s.settings:"sections"in s&&s.sections&&s.sections.map((e=>e.settings)).forEach((e=>i.push(...e)));const n=e=>{const t=[];return e.forEach((e=>{t.push(e),e.type===mt.Ay.SettingsTypes.TYPE_EXPANDABLE_SETTING&&e.settings&&t.push(...n(e.settings))})),t};if(n(i).forEach((s=>{if(!s.key)return;if(s.type===mt.Ay.SettingsTypes.TYPE_PERMISSION)return void Fs(e,s.key,null);let i=((e,t,s,a)=>(e.type!==mt.Ay.SettingsTypes.TYPE_BOOL||!a(e))&&(e.key?e.type===mt.Ay.SettingsTypes.TYPE_TEXT&&e.dynamic_value?e.dynamic_value(t[e.key],s,t):t[e.key]:void 0))(s,t,e,a);const n=ks.getConfigValue(e,s.key);"onConfigSave"in s&&s.onConfigSave&&(i=s.onConfigSave(i,n)),Fs(e,s.key,i)})),"onConfigSave"in s&&s.onConfigSave)return s.onConfigSave(e)}return e},Bs=(0,N.injectIntl)(ks),js=Bs;function Hs(e){return{type:"bool",key:"PluginSettings.PluginStates."+Rs(e.id)+".Enable",label:(0,N.defineMessage)({id:"admin.plugin.enable_plugin",defaultMessage:"Enable Plugin: "}),help_text:(0,N.defineMessage)({id:"admin.plugin.enable_plugin.help",defaultMessage:"When true, this plugin is enabled."})}}var Gs=s(3289),qs=s(52231);class Vs{constructor(e,t){this.result=e,this.text=t}isValid(){return this.result}error(e){return this.result?null:"string"==typeof this.text?this.text:e.formatMessage(this.text)}}const zs=e=>(t,s,a,i,n,r,o)=>"function"==typeof e?!e(t,s,a,i,n,r,o):!e,Ws=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return(e,s,a,i,n,r,o)=>{for(const l of t)if("function"==typeof l?!l(e,s,a,i,n,r,o):!l)return!1;return!0}},Ys=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return(e,s,a,i,n,r,o)=>{for(const l of t)if("function"==typeof l?l(e,s,a,i,n,r,o):l)return!0;return!1}},Zs=(e,t)=>(s,a)=>a[e].match(t),Js=(e,t)=>(s,a)=>a[e]===t,Ks=e=>(t,s)=>Boolean(s[e]),Qs=e=>(t,s)=>!s[e],Xs=(e,t)=>s=>{var a;return Boolean(null===(a=s[e])||void 0===a?void 0:a[t])},$s=(e,t)=>s=>{var a;return!(null!==(a=s[e])&&void 0!==a&&a[t])},ea=(e,t,s)=>a=>{var i,n;return Boolean(null===(i=a[e])||void 0===i||null===(n=i[t])||void 0===n?void 0:n.includes(s))},ta=(e,t,s)=>"true"===(null==s?void 0:s.IsLicensed),sa=(e,t,s)=>Boolean((null==s?void 0:s.IsLicensed)&&(0,qs.P3)(s)),aa=e=>(t,s,a)=>Boolean((null==a?void 0:a.IsLicensed)&&"true"===a[e]),ia=e=>(t,s,a)=>Boolean((null==a?void 0:a.IsLicensed)&&a.SkuShortName===e),na=e=>(t,s,a)=>Boolean((null==a?void 0:a.IsLicensed)&&(0,mt.GZ)(a.SkuShortName)>=(0,mt.GZ)(e)),ra=(e,t,s)=>Boolean((null==s?void 0:s.IsLicensed)&&(0,qs.P3)(s)&&s.SkuShortName===mt.gS.Starter),oa=e=>(t,s,a,i,n)=>{var r;return null==n||null===(r=n.read)||void 0===r?void 0:r[e]},la=e=>(t,s,a,i,n)=>Object.values(e).some((e=>{var t;return null==n||null===(t=n.read)||void 0===t?void 0:t[e]})),da=e=>(t,s,a,i,n)=>{var r;return null==n||null===(r=n.write)||void 0===r?void 0:r[e]},ca=(e,t,s,a,i,n,r)=>Boolean(r),ma=e=>t=>new Vs(Boolean(t),e),ua=(e,t)=>s=>new Vs(s>=e,t),pa=(e,t,s,a,i,n)=>!!(e.GitLabSettings&&e.GoogleSettings&&e.Office365Settings)&&Ys(Ws(zs(ea("GitLabSettings","Scope","openid")),Ys(Xs("GitLabSettings","Id"),Xs("GitLabSettings","Secret"))),Ws(zs(ea("GoogleSettings","Scope","openid")),Ys(Xs("GoogleSettings","Id"),Xs("GoogleSettings","Secret"))),Ws(zs(ea("Office365Settings","Scope","openid")),Ys(Xs("Office365Settings","Id"),Xs("Office365Settings","Secret"))))(e,t,s,a,i,n),ga=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:mt.gS.Professional;return{value:s=>{var a;return T().createElement(Gs.A,{useModal:!1,blocked:e||!("true"===(null==s||null===(a=s.subscription)||void 0===a?void 0:a.is_free_trial)),minimumPlanRequiredForFeature:t,tooltipMessageBlocked:(0,N.defineMessage)({id:"admin.sidebar.restricted_indicator.tooltip.message.blocked",defaultMessage:"This is {article} {minimumPlanRequiredForFeature} feature, available with an upgrade or free {trialLength}-day trial"})})},shouldDisplay:(t,s)=>e||(0,qs.P3)(t)&&(null==s?void 0:s.sku)===mt.YE.STARTER}};function ha(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function fa(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?ha(Object(s),!0).forEach((function(t){Ea(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):ha(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Ea(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const ba=(0,a.connect)((function(){const e=(0,S.Mz)("makeGetPluginSchema",((e,t)=>{var s;return null===(s=e.entities.admin.plugins)||void 0===s?void 0:s[t]}),((e,t)=>pC(e,t)),((e,t)=>gC(e,t)),(e=>(0,lt.It)(e)),dt.I0,((e,t,s,a,i)=>{if(!e)return null;const n=Rs(e.id),r="PluginSettings.PluginStates."+n+".Enable",o=s=>s.map((s=>{const a=s.key.toLowerCase();let o=null,l="",d=s.type,c=s.display_name,m=Ys(Qs(r),zs(da("plugins")));return t[a]?(o=t[a].component,d=mt.YM.SettingsTypes.TYPE_CUSTOM):s.type===mt.YM.SettingsTypes.TYPE_CUSTOM&&(d=mt.YM.SettingsTypes.TYPE_BANNER,c=(0,N.defineMessage)({id:"admin.plugin.customSetting.pluginDisabledWarning",defaultMessage:"In order to view this setting, enable the plugin and click Save."}),l="warning",m=Ys(Ks(r),zs(da("plugins")))),fa(fa({},s),{},{type:d,key:"PluginSettings.Plugins."+n+"."+a,help_text_markdown:!0,label:c,translate:Boolean(e.translate),isDisabled:m,isHidden:()=>i&&"on-prem"===s.hosting||!i&&"cloud"===s.hosting,banner_type:l,component:o,showTitle:!!t[a]&&t[a].options.showTitle})}));let l=[],d=[];if(e.settings_schema&&e.settings_schema.sections?l=(e=>e.map((e=>{const t=e.key.toLowerCase();let a,i=[];var n;return e.custom?s[t]?(a=null===(n=s[t])||void 0===n?void 0:n.component,i=o(e.settings)):i=e.fallback?o(e.settings):[{key:t+"disabledWarning",type:mt.YM.SettingsTypes.TYPE_BANNER,label:(0,N.defineMessage)({id:"admin.plugin.customSection.pluginDisabledWarning",defaultMessage:"In order to view this section, enable the plugin and click Save."}),banner_type:"warning"}]:i=o(e.settings),{key:t,title:e.title,subtitle:e.subtitle,settings:i,header:e.header,footer:e.footer,component:a}})))(e.settings_schema.sections):e.settings_schema&&e.settings_schema.settings&&(d=o(e.settings_schema.settings)),e.id!==ct.lR||a){var c,m,u,p;const t=Hs(e),a=null===(c=e.settings_schema)||void 0===c||null===(m=c.sections)||void 0===m?void 0:m.every((e=>e.custom&&!s[e.key.toLowerCase()])),i=null===(u=e.settings_schema)||void 0===u||null===(p=u.sections)||void 0===p?void 0:p.every((e=>e.custom&&e.fallback));if(e.settings_schema&&a&&!i){var g,h;const s={key:"admin.plugin.customSections.pluginDisabledWarning",type:mt.YM.SettingsTypes.TYPE_BANNER,label:(0,N.defineMessage)({id:"admin.plugin.customSections.pluginDisabledWarning",defaultMessage:"In order to view and configure plugin settings, enable the plugin and click Save."}),banner_type:"warning"};l=[{key:r+".Section",header:null===(g=e.settings_schema)||void 0===g?void 0:g.header,footer:null===(h=e.settings_schema)||void 0===h?void 0:h.footer,settings:[t,s]}]}else if(l.length>0){var f,E;l.unshift({key:r+".Section",header:null===(f=e.settings_schema)||void 0===f?void 0:f.header,footer:null===(E=e.settings_schema)||void 0===E?void 0:E.footer,settings:[t]})}else d.unshift(t)}const b=e=>{e.isDisabled?e.isDisabled=Ys(e.isDisabled,zs(da("plugins"))):e.isDisabled=zs(da("plugins"))};return l.length>0?l.forEach((e=>e.settings.forEach(b))):d.forEach(b),fa(fa({},e.settings_schema),{},{id:e.id,name:e.name,settings:l.length>0?void 0:d,sections:l.length>0?l:void 0,translate:Boolean(e.translate)})}));return(t,s)=>{const a=s.match.params.plugin_id;return{schema:e(t,a),roles:(0,u.O0)(t)}}}))(js);function va(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function ya(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?va(Object(s),!0).forEach((function(t){Ma(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):va(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Ma(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const _a=(0,A.memo)((e=>{let{attributeKey:t,attributeName:s,attributeType:a}=e;return T().createElement("div",{className:"help-text-container"},"ldap"===t&&T().createElement(N.FormattedMessage,{id:"admin.customProfileAttribDesc",defaultMessage:"(Optional) The attribute in the AD/LDAP server used to populate the {name} of users in Mattermost. When set, users cannot edit their {name}, since it is synchronized with the LDAP server. When left blank, users can set their {name} in <strong>Account Menu > Account Settings > Profile</strong>.",values:{name:s,strong:e=>T().createElement("strong",null,e)}}),"saml"===t&&T().createElement(N.FormattedMessage,{id:"admin.customProfileAttribDesc",defaultMessage:"(Optional) The attribute in the SAML Assertion that will be used to populate the {name} of users in Mattermost.",values:{name:s}}),"text"!==a&&T().createElement("div",{className:"help-text-warning"},T().createElement(N.FormattedMessage,{id:"admin.customProfileAttribWarning",defaultMessage:"(Warning) This attribute will be converted to a TEXT attribute, if the field is set to synchronize.",values:{name:s,strong:e=>T().createElement("strong",null,e)}})))}));_a.displayName="AttributeHelpText";const Sa=e=>{const t=(0,a.useSelector)((e=>(0,c.A1)(e))),[s,i]=(0,A.useState)(Object.values(t)),[n]=(0,A.useState)(s),r="SamlSettings.CustomProfileAttributes"===e.id?"saml":"ldap";return(0,A.useEffect)((()=>{const t=async()=>{try{return await Promise.all(s.map((e=>{var t,s;const a=n.find((t=>t.id===e.id));if((null==a||null===(t=a.attrs)||void 0===t?void 0:t[r])!==(null===(s=e.attrs)||void 0===s?void 0:s[r])){const t={type:"text",attrs:ya({},e.attrs)};return O.mT.patchCustomProfileAttributeField(e.id,t)}return Promise.resolve(null)}))),{error:void 0}}catch(e){return{error:e}}};return e.registerSaveAction(t),()=>e.unRegisterSaveAction(t)}),[e.registerSaveAction,e.unRegisterSaveAction,s,n,r]),0===s.length?null:T().createElement("div",{className:"custom-profile-attributes"},T().createElement(is,{id:e.id,title:T().createElement(N.FormattedMessage,{id:"admin.customProfileAttributes.title",defaultMessage:"Custom profile attributes sync"}),container:!1,subtitle:T().createElement(N.FormattedMessage,{id:"admin.customProfileAttributes.subtitle",defaultMessage:"You can add or remove custom profile attributes by going to the <link>system properties page</link>.",values:{link:e=>T().createElement(w.Link,{to:"/admin_console/system_attributes/user_attributes"},e)}})},T().createElement("div",{className:"custom-section-body"},s.map((t=>{var s;return T().createElement(ls,{key:t.id,id:"custom_profile_attribute-".concat(t.name),label:t.name,value:(null===(s=t.attrs)||void 0===s?void 0:s[r])||"",onChange:(s,a)=>{i((e=>e.map((e=>e.id===t.id?ya(ya({},e),{},{attrs:ya(ya({},e.attrs),{},{[r]:a})}):e)))),e.setSaveNeeded()},setByEnv:!1,disabled:e.isDisabled,placeholder:{id:"admin.customProfileAttr.placeholder",defaultMessage:'E.g.: "fieldName"'},helpText:T().createElement(_a,{attributeKey:r,attributeName:t.name,attributeType:t.type})})})))))};Sa.propTypes={isDisabled:k().bool,setSaveNeeded:k().func.isRequired,registerSaveAction:k().func.isRequired,unRegisterSaveAction:k().func.isRequired,id:k().string};const Ca=Sa;var Aa=s(64335),Ta=s(17461),Na=s(1396);function wa(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Ra(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?wa(Object(s),!0).forEach((function(t){Oa(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):wa(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Oa(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Ia extends T().Component{constructor(e){super(e),Oa(this,"handleChange",((e,t)=>{this.setState((s=>Ra(Ra({},s),{},{saveNeeded:!0,[e]:t}))),this.props.setNavigationBlocked&&this.props.setNavigationBlocked(!0)})),Oa(this,"handleSubmit",(e=>{e.preventDefault(),this.doSubmit()})),Oa(this,"doSubmit",(async e=>{this.setState({saving:!0,serverError:null});let t=JSON.parse(JSON.stringify(this.props.config));if(t=this.getConfigFromState(t),this.props.patchConfig){const{data:s,error:a}=await this.props.patchConfig(t);s?(this.setState(this.getStateFromConfig(s)),this.setState({saveNeeded:!1,saving:!1}),this.props.setNavigationBlocked&&this.props.setNavigationBlocked(!1),e&&e(),this.handleSaved&&this.handleSaved(t)):a&&(this.setState({saving:!1,serverError:a.message,serverErrorId:a.server_error_id}),e&&e(),this.handleSaved&&this.handleSaved(t))}})),Oa(this,"parseInt",((e,t)=>{const s=parseInt(e,10);return isNaN(s)?t||0:s})),Oa(this,"parseIntNonNegative",((e,t)=>{const s="string"==typeof e?parseInt(e,10):e;return isNaN(s)||s<0?t||0:s})),Oa(this,"parseIntZeroOrMin",(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const s="string"==typeof e?parseInt(e,10):e;return isNaN(s)||s<0?0:s>0&&s<t?t:s})),Oa(this,"parseIntNonZero",(function(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const a="string"==typeof e?parseInt(e,10):e;return isNaN(a)||a<s?t||1:a})),Oa(this,"isSetByEnv",(e=>Boolean(this.props.environmentConfig&&this.getConfigValue(this.props.environmentConfig,e))));const t={saveNeeded:!1,saving:!1,serverError:null};e.config?this.state=Object.assign(this.getStateFromConfig(e.config),t):this.state=t}getConfigValue(e,t){return t.split(".").reduce(((e,t)=>e?e[t]:null),e)}setConfigValue(e,t,s){!function e(t,a){const i=a[0];1===a.length?Object.assign(t,{[i]:s}):(null==t[i]&&Object.assign(t,{[i]:{}}),e(t[i],a.slice(1)))}(e,t.split("."))}render(){var e,t;return T().createElement("form",{className:"form-horizontal",role:"form",onSubmit:this.handleSubmit},T().createElement("div",{className:"wrapper--fixed"},T().createElement(nt,null,this.renderTitle()),this.renderSettings(),T().createElement("div",{className:"admin-console-save"},T().createElement(st.A,{saving:this.state.saving,disabled:this.props.isDisabled||!this.state.saveNeeded||this.canSave&&!this.canSave(),onClick:this.handleSubmit,savingMessage:T().createElement(N.FormattedMessage,{id:"admin.saving",defaultMessage:"Saving Config..."})}),T().createElement(ys.A,{title:null!==(e=null===(t=this.state)||void 0===t?void 0:t.serverError)&&void 0!==e?e:""},T().createElement("div",{className:"error-message"},T().createElement(Bt.Ay,{error:this.state.serverError}))))))}}function ka(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Pa=e=>{let{state:t}=e;switch(t){case Aa.A.PLUGIN_STATE_NOT_RUNNING:return T().createElement(N.FormattedMessage,{id:"admin.plugin.state.not_running",defaultMessage:"Not running"});case Aa.A.PLUGIN_STATE_STARTING:return T().createElement(N.FormattedMessage,{id:"admin.plugin.state.starting",defaultMessage:"Starting"});case Aa.A.PLUGIN_STATE_RUNNING:return T().createElement(N.FormattedMessage,{id:"admin.plugin.state.running",defaultMessage:"Running"});case Aa.A.PLUGIN_STATE_FAILED_TO_START:return T().createElement(N.FormattedMessage,{id:"admin.plugin.state.failed_to_start",defaultMessage:"Failed to start"});case Aa.A.PLUGIN_STATE_FAILED_TO_STAY_RUNNING:return T().createElement(N.FormattedMessage,{id:"admin.plugin.state.failed_to_stay_running",defaultMessage:"Crashing"});case Aa.A.PLUGIN_STATE_STOPPING:return T().createElement(N.FormattedMessage,{id:"admin.plugin.state.stopping",defaultMessage:"Stopping"});default:return T().createElement(N.FormattedMessage,{id:"admin.plugin.state.unknown",defaultMessage:"Unknown"})}},xa=e=>{let{state:t,error:s}=e;switch(t){case Aa.A.PLUGIN_STATE_NOT_RUNNING:return T().createElement("div",{className:"alert alert-info"},T().createElement("i",{className:"fa fa-ban"}),T().createElement(N.FormattedMessage,{id:"admin.plugin.state.not_running.description",defaultMessage:"This plugin is not enabled."}));case Aa.A.PLUGIN_STATE_STARTING:return T().createElement("div",{className:"alert alert-success"},T().createElement("i",{className:"fa fa-info"}),T().createElement(N.FormattedMessage,{id:"admin.plugin.state.starting.description",defaultMessage:"This plugin is starting."}));case Aa.A.PLUGIN_STATE_RUNNING:return T().createElement("div",{className:"alert alert-success"},T().createElement("i",{className:"fa fa-check"}),T().createElement(N.FormattedMessage,{id:"admin.plugin.state.running.description",defaultMessage:"This plugin is running."}));case Aa.A.PLUGIN_STATE_FAILED_TO_START:{const e=s||T().createElement(N.FormattedMessage,{id:"admin.plugin.state.failed_to_start.check_logs",defaultMessage:"Check your system logs for errors."});return T().createElement("div",{className:"alert alert-warning"},T().createElement("i",{className:"fa fa-warning"}),T().createElement(N.FormattedMessage,{id:"admin.plugin.state.failed_to_start.description",defaultMessage:"This plugin failed to start. {error}",values:{error:e}}))}case Aa.A.PLUGIN_STATE_FAILED_TO_STAY_RUNNING:return T().createElement("div",{className:"alert alert-warning"},T().createElement("i",{className:"fa fa-warning"}),T().createElement(N.FormattedMessage,{id:"admin.plugin.state.failed_to_stay_running.description",defaultMessage:"This plugin crashed multiple times and is no longer running. Check your system logs for errors."}));case Aa.A.PLUGIN_STATE_STOPPING:return T().createElement("div",{className:"alert alert-info"},T().createElement("i",{className:"fa fa-info"}),T().createElement(N.FormattedMessage,{id:"admin.plugin.state.stopping.description",defaultMessage:"This plugin is stopping."}));default:return null}},Da=(0,N.defineMessages)({title:{id:"admin.plugin.management.title",defaultMessage:"Management"},enable:{id:"admin.plugins.settings.enable",defaultMessage:"Enable Plugins: "},enableDesc:{id:"admin.plugins.settings.enableDesc",defaultMessage:"When true, enables plugins on your Mattermost server. Use plugins to integrate with third-party systems, extend functionality, or customize the user interface of your Mattermost server. See <link>documentation</link> to learn more."},uploadTitle:{id:"admin.plugin.uploadTitle",defaultMessage:"Upload Plugin: "},installedTitle:{id:"admin.plugin.installedTitle",defaultMessage:"Installed Plugins: "},installedDesc:{id:"admin.plugin.installedDesc",defaultMessage:"Installed plugins on your Mattermost server."},uploadDesc:{id:"admin.plugin.uploadDesc",defaultMessage:"Upload a plugin for your Mattermost server. See <link>documentation</link> to learn more."},uploadDisabledDesc:{id:"admin.plugin.uploadDisabledDesc",defaultMessage:"Enable plugin uploads in config.json. See <link>documentation</link> to learn more."},enableMarketplace:{id:"admin.plugins.settings.enableMarketplace",defaultMessage:"Enable Marketplace:"},enableMarketplaceDesc:{id:"admin.plugins.settings.enableMarketplaceDesc",defaultMessage:"When true, enables System Administrators to install plugins from the <link>marketplace</link>."},enableRemoteMarketplace:{id:"admin.plugins.settings.enableRemoteMarketplace",defaultMessage:"Enable Remote Marketplace:"},enableRemoteMarketplaceDesc:{id:"admin.plugins.settings.enableRemoteMarketplaceDesc",defaultMessage:"When true, marketplace fetches latest plugins from the configured Marketplace URL."},automaticPrepackagedPlugins:{id:"admin.plugins.settings.automaticPrepackagedPlugins",defaultMessage:"Enable Automatic Prepackaged Plugins:"},automaticPrepackagedPluginsDesc:{id:"admin.plugins.settings.automaticPrepackagedPluginsDesc",defaultMessage:"When true, automatically installs any prepackaged plugin found to be enabled in the server configuration."},marketplaceUrl:{id:"admin.plugins.settings.marketplaceUrl",defaultMessage:"Marketplace URL:"},marketplaceUrlDesc:{id:"admin.plugins.settings.marketplaceUrlDesc",defaultMessage:"URL of the marketplace server."}}),La=[Da.title,Da.enable,Da.enableDesc,Da.uploadTitle,Da.installedTitle,Da.installedDesc,Da.uploadDesc,Da.uploadDisabledDesc,Da.enableMarketplace,Da.enableMarketplaceDesc,Da.enableRemoteMarketplace,Da.enableRemoteMarketplaceDesc,Da.automaticPrepackagedPlugins,Da.automaticPrepackagedPluginsDesc,Da.marketplaceUrl,Da.marketplaceUrlDesc],Fa=e=>{let t,{pluginStatus:s,removing:a,handleEnable:i,handleDisable:n,handleRemove:r,showInstances:o,hasSettings:l,appsFeatureFlagEnabled:d,isDisabled:c}=e;const m=s.state===Aa.A.PLUGIN_STATE_STARTING,u=s.state===Aa.A.PLUGIN_STATE_STOPPING;t=s.active?T().createElement("a",{"data-plugin-id":s.id,className:u||c?"disabled":"",onClick:n},u?T().createElement(N.FormattedMessage,{id:"admin.plugin.disabling",defaultMessage:"Disabling..."}):T().createElement(N.FormattedMessage,{id:"admin.plugin.disable",defaultMessage:"Disable"})):T().createElement("a",{"data-plugin-id":s.id,className:m||c?"disabled":"",onClick:i},m?T().createElement(N.FormattedMessage,{id:"admin.plugin.enabling",defaultMessage:"Enabling..."}):T().createElement(N.FormattedMessage,{id:"admin.plugin.enable",defaultMessage:"Enable"}));let p,g=null;l&&(g=T().createElement("span",null," - ",T().createElement(w.Link,{to:"/admin_console/plugins/plugin_"+s.id},T().createElement(N.FormattedMessage,{id:"admin.plugin.settingsButton",defaultMessage:"Settings"})))),p=a?T().createElement(N.FormattedMessage,{id:"admin.plugin.removing",defaultMessage:"Removing..."}):T().createElement(N.FormattedMessage,{id:"admin.plugin.remove",defaultMessage:"Remove"});let h,f=T().createElement("span",null," - ",T().createElement("a",{"data-plugin-id":s.id,className:a||c?"disabled":"",onClick:r},p));s.description&&(h=T().createElement("div",{className:"pt-2"},s.description));const E=[];s.instances.some((e=>e.version!==s.version))&&E.push(T().createElement("div",{key:"multiple-versions",className:"alert alert-warning"},T().createElement("i",{className:"fa fa-warning"}),T().createElement(N.FormattedMessage,{id:"admin.plugin.multiple_versions_warning",defaultMessage:"There are multiple versions of this plugin installed across your cluster. Re-install this plugin to ensure it works consistently."}))),E.push(T().createElement(xa,{key:"state-description",state:s.state,error:s.error}));const b=s.instances.slice();let v;return b.sort(((e,t)=>e.cluster_id<t.cluster_id?-1:e.cluster_id>t.cluster_id?1:0)),o&&(v=T().createElement("div",{className:"pt-3 pb-3"},T().createElement("div",{className:"row"},T().createElement("div",{className:"col-md-6"},T().createElement("strong",null,T().createElement(N.FormattedMessage,{id:"admin.plugin.cluster_instance",defaultMessage:"Cluster Instance"}))),T().createElement("div",{className:"col-md-3"},T().createElement("strong",null,T().createElement(N.FormattedMessage,{id:"admin.plugin.version_title",defaultMessage:"Version"}))),T().createElement("div",{className:"col-md-3"},T().createElement("strong",null,T().createElement(N.FormattedMessage,{id:"admin.plugin.state",defaultMessage:"State"})))),b.map((e=>T().createElement("div",{key:e.cluster_id,className:"row"},T().createElement("div",{className:"col-md-6"},e.cluster_id),T().createElement("div",{className:"col-md-3"},e.version),T().createElement("div",{className:"col-md-3"},T().createElement(Pa,{state:e.state}))))))),s.id!==ct.lR||d||(t=T().createElement(T().Fragment,null,"Plugin disabled by feature flag"),f=null),T().createElement("div",{"data-testid":s.id},T().createElement("div",null,T().createElement("strong",null,s.name)," (",s.id," - ",s.version,")"),h,T().createElement("div",{className:"pt-2"},t,f,g),T().createElement("div",null,E),T().createElement("div",null,v),T().createElement("hr",null))};Fa.propTypes={pluginStatus:k().shape({state:k().number.isRequired,error:k().string,active:k().bool.isRequired,id:k().string.isRequired,description:k().string.isRequired,version:k().string.isRequired,name:k().string.isRequired,instances:k().arrayOf(k().any).isRequired,settings_schema:k().shape({header:k().string.isRequired,footer:k().string.isRequired,settings:k().arrayOf(k().any)})}).isRequired,removing:k().bool.isRequired,handleEnable:k().func.isRequired,handleDisable:k().func.isRequired,handleRemove:k().func.isRequired,showInstances:k().bool.isRequired,hasSettings:k().bool.isRequired,appsFeatureFlagEnabled:k().bool.isRequired,isDisabled:k().bool};const Ua=(0,N.injectIntl)(class extends Ia{constructor(e){super(e),ka(this,"getConfigFromState",(e=>(e&&e.PluginSettings&&(e.PluginSettings.Enable=this.state.enable,e.PluginSettings.EnableUploads=this.state.enableUploads,e.PluginSettings.AllowInsecureDownloadURL=this.state.allowInsecureDownloadUrl,e.PluginSettings.EnableMarketplace=this.state.enableMarketplace,e.PluginSettings.EnableRemoteMarketplace=this.state.enableRemoteMarketplace,e.PluginSettings.AutomaticPrepackagedPlugins=this.state.automaticPrepackagedPlugins,e.PluginSettings.MarketplaceURL=this.state.marketplaceUrl,e.PluginSettings.RequirePluginSignature=this.state.requirePluginSignature),e))),ka(this,"handleChooseFileClick",(()=>{var e;null===(e=this.fileInput.current)||void 0===e||e.click()})),ka(this,"handleUpload",(()=>{this.setState({lastMessage:null,serverError:null});const e=this.fileInput.current;e.files&&e.files.length>0&&this.setState({fileSelected:!0,file:e.files[0]})})),ka(this,"helpSubmitUpload",(async(e,t)=>{this.setState({uploading:!0});const{error:s}=await this.props.actions.uploadPlugin(e,t);if(s)return"app.plugin.install_id.app_error"!==s.server_error_id||t?(this.setState({file:null,fileSelected:!1,uploading:!1}),"app.plugin.activate.app_error"===s.server_error_id?this.setState({serverError:this.props.intl.formatMessage({id:"admin.plugin.error.activate",defaultMessage:"Unable to upload the plugin. It may conflict with another plugin on your server."})}):"app.plugin.extract.app_error"===s.server_error_id?this.setState({serverError:this.props.intl.formatMessage({id:"admin.plugin.error.extract",defaultMessage:"Encountered an error when extracting the plugin. Review your plugin file content and try again."})}):this.setState({serverError:s.message}),void this.setState({file:null,fileSelected:!1})):void this.setState({confirmOverwriteUploadModal:!0,overwritingUpload:!0});this.setState({loading:!0}),await this.props.actions.getPlugins();let a="Successfully uploaded plugin from ".concat(null==e?void 0:e.name);this.state.overwritingUpload&&(a="Successfully updated plugin from ".concat(null==e?void 0:e.name)),this.setState({file:null,fileSelected:!1,serverError:null,lastMessage:a,overwritingUpload:!1,uploading:!1,loading:!1})})),ka(this,"handleSubmitUpload",(e=>{var t;e.preventDefault();const s=this.fileInput.current;if(0===(null===(t=s.files)||void 0===t?void 0:t.length))return;const a=s.files&&s.files[0];a&&this.helpSubmitUpload(a,!1),D.K2(s)})),ka(this,"handleOverwriteUploadPluginCancel",(()=>{this.setState({file:null,fileSelected:!1,serverError:null,confirmOverwriteUploadModal:!1,lastMessage:null,uploading:!1})})),ka(this,"handleOverwriteUploadPlugin",(()=>{this.setState({confirmOverwriteUploadModal:!1}),this.state.file&&this.helpSubmitUpload(this.state.file,!0)})),ka(this,"onPluginDownloadUrlChange",(e=>{this.setState({pluginDownloadUrl:e.target.value})})),ka(this,"installFromUrl",(async e=>{const{pluginDownloadUrl:t}=this.state;this.setState({installing:!0,serverError:null,lastMessage:null});const{error:s}=await this.props.actions.installPluginFromUrl(t,e);if(s)return"app.plugin.install_id.app_error"!==s.server_error_id||e?(this.setState({installing:!1}),void("app.plugin.extract.app_error"===s.server_error_id?this.setState({serverError:this.props.intl.formatMessage({id:"admin.plugin.error.extract",defaultMessage:"Encountered an error when extracting the plugin. Review your plugin file content and try again."})}):this.setState({serverError:s.message}))):void this.setState({confirmOverwriteInstallModal:!0,overwritingInstall:!0});this.setState({loading:!0}),await this.props.actions.getPlugins();let a="Successfully installed plugin from ".concat(t);this.state.overwritingInstall&&(a="Successfully updated plugin from ".concat(t)),this.setState({serverError:null,lastMessage:a,overwritingInstall:!1,installing:!1,loading:!1})})),ka(this,"getMarketplaceURLHelpText",((e,t)=>T().createElement("div",null,""===e&&t&&T().createElement("div",{className:"alert-warning"},T().createElement("i",{className:"fa fa-warning"}),T().createElement(N.FormattedMessage,{id:"admin.plugins.settings.marketplaceUrlDesc.empty",defaultMessage:" Marketplace URL is a required field."})),""!==e&&t&&T().createElement(N.FormattedMessage,Da.marketplaceUrlDesc),!t&&T().createElement(N.FormattedMessage,Object.assign({},Da.uploadDisabledDesc,{values:{link:e=>T().createElement(wt.A,{href:mt.i3.PLUGINS,location:"plugin_management"},e)}}))))),ka(this,"canSave",(()=>""!==this.state.marketplaceUrl)),ka(this,"handleSubmitInstall",(e=>(e.preventDefault(),this.installFromUrl(!1)))),ka(this,"handleOverwriteInstallPluginCancel",(()=>{this.setState({confirmOverwriteInstallModal:!1,installing:!1,serverError:null,lastMessage:null})})),ka(this,"handleOverwriteInstallPlugin",(()=>(this.setState({confirmOverwriteInstallModal:!1}),this.installFromUrl(!0)))),ka(this,"showRemovePluginModal",(e=>{if(this.props.isDisabled)return;e.preventDefault();const t=e.currentTarget.getAttribute("data-plugin-id");this.setState({showRemoveModal:!0,removing:t})})),ka(this,"handleRemovePluginCancel",(()=>{this.setState({showRemoveModal:!1,removing:null})})),ka(this,"handleRemovePlugin",(()=>{this.setState({showRemoveModal:!1}),this.handleRemove()})),ka(this,"handleRemove",(async()=>{if(this.setState({lastMessage:null,serverError:null}),null!==this.state.removing){const{error:e}=await this.props.actions.removePlugin(this.state.removing);this.setState({removing:null}),e&&this.setState({serverError:e.message})}})),ka(this,"handleEnable",(async e=>{if(e.preventDefault(),this.props.isDisabled)return;this.setState({lastMessage:null,serverError:null});const t=e.currentTarget.getAttribute("data-plugin-id");if(t){const{error:e}=await this.props.actions.enablePlugin(t);e&&this.setState({serverError:e.message})}})),ka(this,"handleDisable",(async e=>{if(this.setState({lastMessage:null,serverError:null}),e.preventDefault(),this.props.isDisabled)return;this.setState({lastMessage:null,serverError:null});const t=e.currentTarget.getAttribute("data-plugin-id");if(t){const{error:e}=await this.props.actions.disablePlugin(t);e&&this.setState({serverError:e.message})}})),ka(this,"renderOverwritePluginModal",(e=>{let{show:t,onConfirm:s,onCancel:a}=e;const i=T().createElement(N.FormattedMessage,{id:"admin.plugin.upload.overwrite_modal.title",defaultMessage:"Overwrite existing plugin?"}),n=T().createElement(N.FormattedMessage,{id:"admin.plugin.upload.overwrite_modal.desc",defaultMessage:"A plugin with this ID already exists. Would you like to overwrite it?"}),r=T().createElement(N.FormattedMessage,{id:"admin.plugin.upload.overwrite_modal.overwrite",defaultMessage:"Overwrite"});return T().createElement(Ta.A,{show:t,title:i,message:n,confirmButtonClass:"btn btn-danger",confirmButtonText:r,onConfirm:s,onCancel:a})})),ka(this,"renderRemovePluginModal",((e,t,s)=>{const a=T().createElement(N.FormattedMessage,{id:"admin.plugin.remove_modal.title",defaultMessage:"Remove plugin?"}),i=T().createElement(N.FormattedMessage,{id:"admin.plugin.remove_modal.desc",defaultMessage:"Are you sure you would like to remove the plugin?"}),n=T().createElement(N.FormattedMessage,{id:"admin.plugin.remove_modal.overwrite",defaultMessage:"Remove"});return T().createElement(Ta.A,{show:e,title:a,message:i,confirmButtonClass:"btn btn-danger",confirmButtonText:n,onConfirm:t,onCancel:s})})),ka(this,"renderEnablePluginsSetting",(()=>this.props.config.ExperimentalSettings&&this.props.config.ExperimentalSettings.RestrictSystemAdmin?null:T().createElement(j,{id:"enable",label:T().createElement(N.FormattedMessage,Da.enable),helpText:T().createElement(N.FormattedMessage,Object.assign({},Da.enableDesc,{values:{link:e=>T().createElement(wt.A,{href:mt.i3.PLUGINS,location:"plugin_management"},e)}})),value:this.state.enable,onChange:this.handleChange,setByEnv:this.isSetByEnv("PluginSettings.Enable"),disabled:this.props.isDisabled}))),ka(this,"renderSettings",(()=>{var e,t,s;const{enableUploads:a}=this.state,i=null===(e=this.props.config)||void 0===e||null===(t=e.PluginSettings)||void 0===t?void 0:t.Enable;let n=T().createElement(T().Fragment,null),r=T().createElement(T().Fragment,null);const o=a&&i&&!(this.props.config.PluginSettings&&this.props.config.PluginSettings.RequirePluginSignature);this.state.serverError&&(n=T().createElement("div",{className:"col-sm-12"},T().createElement("div",{className:"form-group has-error half"},T().createElement("label",{className:"control-label"},this.state.serverError)))),this.state.lastMessage&&(r=T().createElement("div",{className:"col-sm-12"},T().createElement("div",{className:"form-group half"},this.state.lastMessage)));let l,d,c,m,u,p="btn btn-primary";this.state.fileSelected&&(p="btn btn-primary"),this.state.file&&(l=this.state.file.name),d=this.state.uploading?T().createElement(N.FormattedMessage,{id:"admin.plugin.uploading",defaultMessage:"Uploading..."}):T().createElement(N.FormattedMessage,{id:"admin.plugin.upload",defaultMessage:"Upload"});const g=Object.values(this.props.pluginStatuses);if(this.state.loading)c=T().createElement(Na.A,null);else if(0===g.length)u=T().createElement(N.FormattedMessage,{id:"admin.plugin.no_plugins",defaultMessage:"No installed plugins."});else{const e=g.some((e=>e.instances.length>1));g.sort(((e,t)=>{const s=e.name.localeCompare(t.name);return 0!==s?s:e.id.localeCompare(t.id)})),c=g.map((t=>{const s=this.props.plugins[t.id],a=Boolean(s&&s.settings_schema&&(s.settings_schema.header||s.settings_schema.footer||s.settings_schema.settings&&s.settings_schema.settings.length>0));return T().createElement(Fa,{key:t.id,pluginStatus:t,removing:this.state.removing===t.id,handleEnable:this.handleEnable,handleDisable:this.handleDisable,handleRemove:this.showRemovePluginModal,showInstances:e,hasSettings:a,appsFeatureFlagEnabled:this.props.appsFeatureFlagEnabled,isDisabled:this.props.isDisabled})})),u=T().createElement("div",{className:"alert alert-transparent"},c)}let h;i&&(m=T().createElement(F,{label:T().createElement(N.FormattedMessage,Da.installedTitle)},T().createElement("p",{className:"help-text"},T().createElement(N.FormattedMessage,Da.installedDesc)),T().createElement("br",null),u)),h=a&&i?T().createElement(N.FormattedMessage,Object.assign({},Da.uploadDesc,{values:{link:e=>T().createElement(wt.A,{href:mt.i3.PLUGINS,location:"plugin_management"},e)}})):i&&!a?T().createElement(N.FormattedMessage,Object.assign({},Da.uploadDisabledDesc,{values:{link:e=>T().createElement(wt.A,{href:mt.i3.PLUGINS,location:"plugin_management"},e)}})):T().createElement(N.FormattedMessage,{id:"admin.plugin.uploadAndPluginDisabledDesc",defaultMessage:"To enable plugins, set **Enable Plugins** to true. See <link>documentation</link> to learn more.",values:{link:e=>T().createElement(wt.A,{href:mt.i3.PLUGINS,location:"plugin_management"},e)}});const f=this.state.confirmOverwriteUploadModal&&this.renderOverwritePluginModal({show:this.state.confirmOverwriteUploadModal,onConfirm:this.handleOverwriteUploadPlugin,onCancel:this.handleOverwriteUploadPluginCancel}),E=this.state.showRemoveModal&&this.renderRemovePluginModal(this.state.showRemoveModal,this.handleRemovePlugin,this.handleRemovePluginCancel);return T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement(is,{id:"PluginSettings",container:!1},this.renderEnablePluginsSetting(),!(null!==(s=this.props.config.ExperimentalSettings)&&void 0!==s&&s.RestrictSystemAdmin)&&T().createElement(T().Fragment,null,T().createElement(j,{id:"requirePluginSignature",label:T().createElement(N.FormattedMessage,{id:"admin.plugins.settings.requirePluginSignature",defaultMessage:"Require Plugin Signature:"}),helpText:T().createElement(N.FormattedMessage,{id:"admin.plugins.settings.requirePluginSignatureDesc",defaultMessage:"When true, uploading plugins is disabled and may only be installed through the Marketplace. Plugins are always verified during Mattermost server startup and initialization. See <link>documentation</link> to learn more.",values:{link:e=>T().createElement(wt.A,{href:mt.i3.PLUGIN_SIGNING,location:"plugin_management"},e)}}),value:this.state.requirePluginSignature,disabled:this.props.isDisabled||!this.state.enable,onChange:this.handleChange,setByEnv:this.isSetByEnv("PluginSettings.RequirePluginSignature")}),T().createElement(j,{id:"automaticPrepackagedPlugins",label:T().createElement(N.FormattedMessage,Da.automaticPrepackagedPlugins),helpText:T().createElement(N.FormattedMessage,Da.automaticPrepackagedPluginsDesc),value:this.state.automaticPrepackagedPlugins,disabled:this.props.isDisabled||!this.state.enable,onChange:this.handleChange,setByEnv:this.isSetByEnv("PluginSettings.AutomaticPrepackagedPlugins")}),T().createElement(F,{helpText:h,label:T().createElement(N.FormattedMessage,Da.uploadTitle)},T().createElement("div",{className:"file__upload"},T().createElement("button",{type:"button",className:oe()(["btn",{"btn-tertiary":a}]),onClick:this.handleChooseFileClick,disabled:!o||this.props.isDisabled},T().createElement(N.FormattedMessage,{id:"admin.plugin.choose",defaultMessage:"Choose File"})),T().createElement("input",{ref:this.fileInput,type:"file",accept:".gz",onChange:this.handleUpload,disabled:!o||this.props.isDisabled})),T().createElement("button",{className:p,id:"uploadPlugin",disabled:!this.state.fileSelected,onClick:this.handleSubmitUpload},d),T().createElement("div",{className:"help-text m-0"},l),n,r),T().createElement(j,{id:"enableMarketplace",label:T().createElement(N.FormattedMessage,Da.enableMarketplace),helpText:T().createElement(N.FormattedMessage,Object.assign({},Da.enableMarketplaceDesc,{values:{link:e=>T().createElement(wt.A,{href:"https://mattermost.com/pl/default-mattermost-marketplace.html",location:"plugin_management"},e)}})),value:this.state.enableMarketplace,disabled:this.props.isDisabled||!this.state.enable,onChange:this.handleChange,setByEnv:this.isSetByEnv("PluginSettings.EnableMarketplace")}),T().createElement(j,{id:"enableRemoteMarketplace",label:T().createElement(N.FormattedMessage,Da.enableRemoteMarketplace),helpText:T().createElement(N.FormattedMessage,Da.enableRemoteMarketplaceDesc),value:this.state.enableRemoteMarketplace,disabled:this.props.isDisabled||!this.state.enable||!this.state.enableUploads||!this.state.enableMarketplace,onChange:this.handleChange,setByEnv:this.isSetByEnv("PluginSettings.EnableRemoteMarketplace")}),T().createElement(ls,{id:"marketplaceUrl",label:T().createElement(N.FormattedMessage,Da.marketplaceUrl),helpText:this.getMarketplaceURLHelpText(this.state.marketplaceUrl,this.state.enableUploads),value:this.state.marketplaceUrl,disabled:this.props.isDisabled||!this.state.enable||!this.state.enableUploads||!this.state.enableMarketplace||!this.state.enableRemoteMarketplace,onChange:this.handleChange,setByEnv:this.isSetByEnv("PluginSettings.MarketplaceURL")})),m),f,E))})),this.state=Object.assign(this.state,{loading:!0,fileSelected:!1,file:null,pluginDownloadUrl:"",serverError:null,lastMessage:null,uploading:!1,installing:!1,overwritingUpload:!1,confirmOverwriteUploadModal:!1,overwritingInstall:!1,confirmOverwriteInstallModal:!1,showRemoveModal:!1,resolveRemoveModal:null}),this.fileInput=T().createRef()}getStateFromConfig(e){var t,s,a,i,n,r,o,l;return{enable:null==e||null===(t=e.PluginSettings)||void 0===t?void 0:t.Enable,enableUploads:null==e||null===(s=e.PluginSettings)||void 0===s?void 0:s.EnableUploads,allowInsecureDownloadUrl:null==e||null===(a=e.PluginSettings)||void 0===a?void 0:a.AllowInsecureDownloadURL,enableMarketplace:null==e||null===(i=e.PluginSettings)||void 0===i?void 0:i.EnableMarketplace,enableRemoteMarketplace:null==e||null===(n=e.PluginSettings)||void 0===n?void 0:n.EnableRemoteMarketplace,automaticPrepackagedPlugins:null==e||null===(r=e.PluginSettings)||void 0===r?void 0:r.AutomaticPrepackagedPlugins,marketplaceUrl:null==e||null===(o=e.PluginSettings)||void 0===o?void 0:o.MarketplaceURL,requirePluginSignature:null==e||null===(l=e.PluginSettings)||void 0===l?void 0:l.RequirePluginSignature}}componentDidMount(){this.state.enable&&this.props.actions.getPluginStatuses().then((()=>this.setState({loading:!1})))}renderTitle(){return T().createElement(N.FormattedMessage,Da.title)}}),Ba=(0,a.connect)((function(e){return{plugins:e.entities.admin.plugins,pluginStatuses:e.entities.admin.pluginStatuses,appsFeatureFlagEnabled:(0,lt.It)(e)}}),(function(e){return{actions:(0,i.zH)({uploadPlugin:n.Hs,installPluginFromUrl:n.iG,removePlugin:n.c_,getPlugins:n.xy,getPluginStatuses:n.aN,enablePlugin:n.HF,disablePlugin:n.Af},e)}}))(Ua);s(27105);var ja=s(32683),Ha=s(31655),Ga=s(35631),qa=s(44553);const Va=e=>{let{license:t,totalUsers:s,location:i}=e;const{formatMessage:n}=(0,N.useIntl)(),r=(0,a.useDispatch)(),o=(0,a.useSelector)(g.HW),l=(()=>{if(!t||!t.Users)return 0;const e=parseInt(t.Users,10);return e&&0!==e?s/e*100:0})(),d=(e=>{if(e<90)return"";const t="license_settings"===i?"license_settings":"system_statistics";return e>=100?"100_seat_".concat(t):e>=95?"95_seat_".concat(t):"90_seat_".concat(t)})(l),c=(0,a.useSelector)((e=>(0,m.Jt)(e,mt.pm.CATEGORY_SYSTEM_NOTICE,d,"false"))),[u,p]=(0,A.useState)("false"===c);if((0,A.useEffect)((()=>{p("false"===c)}),[c]),!u||!t||!t.Users||l<90)return null;let h="info",f=null,E=null;l>=90&&l<95?(h="success",f=T().createElement(N.FormattedMessage,{id:"admin.license.userSeatAlert.successTitle",defaultMessage:"Your workspace has reached 90% of your licensed seats"}),E=T().createElement(N.FormattedMessage,{id:"admin.license.userSeatAlert.successMessage",defaultMessage:"Congratulations! Platform adoption is strong across your organization. To ensure uninterrupted growth, our team can assist in scaling your license to meet operational requirements."})):l>=95&&l<100?(h="info",f=T().createElement(N.FormattedMessage,{id:"admin.license.userSeatAlert.infoTitle",defaultMessage:"Your workspace has reached 95% of your licensed seats"}),E=T().createElement(N.FormattedMessage,{id:"admin.license.userSeatAlert.infoMessage",defaultMessage:"Your organization is approaching full license utilization. Now is a good time to assess future needs and align usage with procurement planning. Contact us to explore available options."})):l>=100&&(h="danger",f=T().createElement(N.FormattedMessage,{id:"admin.license.userSeatAlert.dangerTitle",defaultMessage:"Your workspace has reached 100% of your licensed seats"}),E=T().createElement(N.FormattedMessage,{id:"admin.license.userSeatAlert.dangerMessage",defaultMessage:"All licensed seats are now in use. Additional users may result in true-up charges at your next renewal. To maintain compliance and uninterrupted access, you may limit new sign-ups, or contact us to extend your license."}));const b=T().createElement(wt.A,{href:mt.vx.CONTACT_SALES,location:"license_settings_user_seat_alert",className:"style-button AlertBanner__buttonLeft"},T().createElement(N.FormattedMessage,{id:"admin.license.userSeatAlert.contactSales",defaultMessage:"Contact Sales"}));return T().createElement(qa.A,{mode:h,title:f,message:E,actionButtonLeft:b,onDismiss:()=>{p(!1),r((0,Ga.SF)(o.id,[{user_id:o.id,category:mt.pm.CATEGORY_SYSTEM_NOTICE,name:d,value:"true"}]))},closeBtnTooltip:n({id:"admin.license.userSeatAlert.closeBtnTooltip",defaultMessage:"Dismiss"})})};Va.propTypes={totalUsers:k().number.isRequired,location:k().oneOf(["license_settings","system_statistics"]).isRequired};const za=Va,Wa=e=>{let{title:t,icon:s,count:a,id:i,children:n,status:r,formatter:o}=e;const l=T().createElement(N.FormattedMessage,{id:"analytics.chart.loading",defaultMessage:"Loading..."}),d=o?o(null!=a?a:0):a,c=void 0===a||isNaN(a)?l:d;return T().createElement("div",{className:"grid-statistics__card"},T().createElement("div",{className:oe()({"total-count":!0,"total-count--has-message":Boolean(r)})},T().createElement("div",{"data-testid":"".concat(i,"Title"),className:oe()({title:!0,"team_statistics--warning":"warning"===r,"team_statistics--error":"error"===r})},t,T().createElement("i",{className:"fa "+s})),T().createElement("div",{"data-testid":i,className:oe()({content:!0,"team_statistics--warning":"warning"===r,"team_statistics--error":"error"===r})},c)),n)},Ya=T().memo(Wa);var Za=s(66351);const Ja=(0,N.defineMessages)({totalUsers:{id:"analytics.team.totalUsers",defaultMessage:"Total Activated Users"}}),Ka=()=>{const e=(0,N.useIntl)();return T().createElement(ys.A,{title:(0,N.defineMessage)({id:"analytics.team.totalUsers.title.tooltip.title",defaultMessage:"Activated users on this server"}),hint:(0,N.defineMessage)({id:"analytics.team.totalUsers.title.tooltip.hint",defaultMessage:"Also called Registered Users"})},T().createElement("span",null,T().createElement(wt.A,{location:"activated_users_card.title",href:"https://mattermost.com/pl/site-statistics-definitions"},e.formatMessage(Ja.totalUsers),T().createElement(R.InformationOutlineIcon,{size:"16"}))))},Qa=e=>{let{activatedUsers:t,seatsPurchased:s,isCloud:a}=e;const{isBetween5PercerntAnd10PercentPurchasedSeats:i,isOver10PercerntPurchasedSeats:n}=(0,Za.A)({seatsPurchased:s,activeUsers:t||0}),r=!a&&(i||n);let o;return!a&&i&&(o="warning"),!a&&n&&(o="error"),T().createElement(Ya,{title:T().createElement(Ka,null),icon:"fa-users",status:o,count:t,id:"totalActiveUsers"},r&&T().createElement("div",{className:oe()({team_statistics__message:!0,"team_statistics--warning":i,"team_statistics--error":n})},T().createElement(R.AlertOutlineIcon,{size:14}),T().createElement(N.FormattedMessage,{id:"analytics.team.overageUsersSeats",defaultMessage:"This exceeds total licensed seats"},(e=>T().createElement("span",null,e)))))};Qa.propTypes={seatsPurchased:k().number.isRequired,isCloud:k().bool.isRequired};const Xa=Qa;var $a=s(81266),ei=s(62757),ti=s.n(ei);const si=e=>{let{title:t,width:s,height:a,data:i}=e;const n=(0,A.useRef)(null),r=(0,A.useRef)(null);let o;return(0,A.useEffect)((()=>{if(!n.current||!i)return;const e=n.current.getContext("2d");e&&(r.current?ti()(r.current.data,i)||(r.current.data=JSON.parse(JSON.stringify(i)),r.current.update()):r.current=new $a.A(e,{type:"doughnut",data:JSON.parse(JSON.stringify(i)),options:{}}))}),[i]),(0,A.useEffect)((()=>()=>{var e;null===(e=r.current)||void 0===e||e.destroy(),r.current=null}),[]),o=void 0===i?T().createElement(N.FormattedMessage,{id:"analytics.chart.loading",defaultMessage:"Loading..."}):T().createElement("canvas",{ref:n,width:s,height:a}),T().createElement("div",{className:"col-sm-6"},T().createElement("div",{className:"total-count"},T().createElement("div",{className:"title"},t),T().createElement("div",{className:"content"},o)))};si.propTypes={title:k().node.isRequired,width:k().number.isRequired,height:k().number.isRequired};const ai=si;function ii(e,t){return oi({labels:[],datasets:[{fillColor:"rgba(151,187,205,0.2)",borderColor:"rgba(151,187,205,1)",pointBackgroundColor:"rgba(151,187,205,1)",pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgba(151,187,205,1)",data:[]}]},e,t)}function ni(){const e=new Set;for(var t=arguments.length,s=new Array(t),a=0;a<t;a++)s[a]=arguments[a];return s.forEach((t=>{null!=t&&t.length&&t.forEach((t=>e.add(t.name)))})),Array.from(e).sort()}function ri(e,t){return oi({labels:[],datasets:[{label:"",fillColor:"rgba(151,187,205,0.2)",borderColor:"rgba(151,187,205,1)",pointBackgroundColor:"rgba(151,187,205,1)",pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgba(151,187,205,1)",data:[]}]},e,t)}function oi(e,t,s){return null!=s&&s.length&&(e.labels=t,e.labels.forEach((t=>{const a=s.find((e=>e.name===t)),i=a?a.value:0;e.datasets[0].data.push(i)}))),e}function li(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function di(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?li(Object(s),!0).forEach((function(t){ci(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):li(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function ci(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class mi extends T().PureComponent{constructor(){super(...arguments),ci(this,"canvasRef",T().createRef()),ci(this,"chart",null),ci(this,"chartOptions",{plugins:{legend:{display:!1}}}),ci(this,"resizeChart",(()=>{this.chart&&this.canvasRef.current&&this.chart.options.responsive&&(this.canvasRef.current.style.width="100%")})),ci(this,"initChart",(e=>{if(!this.canvasRef.current)return;const t=this.canvasRef.current.getContext("2d"),s=JSON.parse(JSON.stringify(this.props.data));let a=this.chartOptions||{};var i;this.props.options&&(a=di(di({},a),this.props.options)),e?null===(i=this.chart)||void 0===i||i.update():this.chart=new $a.A(t,{type:"line",data:s,options:a||{}})}))}componentDidMount(){this.initChart(),window.addEventListener("resize",this.resizeChart)}componentDidUpdate(e){if(!(this.props.data&&this.props.data.labels.length>0)&&this.chart&&(this.chart.destroy(),this.chart=null),ti()(e.data,this.props.data))return;const t=this.props.data&&this.props.data.labels.length>0,s=Boolean(this.chart);t&&this.initChart(s)}componentWillUnmount(){this.chart&&this.chart.destroy(),window.removeEventListener("resize",this.resizeChart)}render(){let e;return e=null==this.props.data?T().createElement(N.FormattedMessage,{id:"analytics.chart.loading",defaultMessage:"Loading..."}):0===this.props.data.labels.length?T().createElement("h5",null,T().createElement(N.FormattedMessage,{id:"analytics.chart.meaningful",defaultMessage:"Not enough data for a meaningful representation."})):T().createElement("canvas",{"data-testid":this.props.id,ref:this.canvasRef,width:this.props.width,height:this.props.height,"data-labels":this.props.data.labels}),T().createElement("div",{className:"col-sm-12"},T().createElement("div",{className:"total-count by-day"},T().createElement("div",{className:"title"},this.props.title),T().createElement("div",{className:"content"},e)))}}function ui(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}ci(mi,"propTypes",{id:k().string.isRequired,title:k().node.isRequired,width:k().number,height:k().number,data:k().object,options:k().object});const pi=mt.Ay.StatTypes,gi=(0,N.defineMessages)({title:{id:"analytics.system.title",defaultMessage:"System Statistics"},totalPosts:{id:"analytics.system.totalPosts",defaultMessage:"Total Posts"},activeUsers:{id:"analytics.system.activeUsers",defaultMessage:"Active Users With Posts"},totalSessions:{id:"analytics.system.totalSessions",defaultMessage:"Total Sessions"},totalCommands:{id:"analytics.system.totalCommands",defaultMessage:"Total Commands"},totalIncomingWebhooks:{id:"analytics.system.totalIncomingWebhooks",defaultMessage:"Incoming Webhooks"},totalOutgoingWebhooks:{id:"analytics.system.totalOutgoingWebhooks",defaultMessage:"Outgoing Webhooks"},totalWebsockets:{id:"analytics.system.totalWebsockets",defaultMessage:"WebSocket Conns"},totalMasterDbConnections:{id:"analytics.system.totalMasterDbConnections",defaultMessage:"Master DB Conns"},totalReadDbConnections:{id:"analytics.system.totalReadDbConnections",defaultMessage:"Replica DB Conns"},postTypes:{id:"analytics.system.postTypes",defaultMessage:"Posts, Files and Hashtags"},channelTypes:{id:"analytics.system.channelTypes",defaultMessage:"Channel Types"},totalTeams:{id:"analytics.system.totalTeams",defaultMessage:"Total Teams"},totalChannels:{id:"analytics.system.totalChannels",defaultMessage:"Total Channels"},dailyActiveUsers:{id:"analytics.system.dailyActiveUsers",defaultMessage:"Daily Active Users"},monthlyActiveUsers:{id:"analytics.system.monthlyActiveUsers",defaultMessage:"Monthly Active Users"},totalFiles:{id:"analytics.system.totalFiles",defaultMessage:"Total Files"},totalFilesSize:{id:"analytics.system.totalFilesSize",defaultMessage:"Total Files Size"}}),hi=[gi.title,gi.totalPosts,gi.activeUsers,gi.totalSessions,gi.totalCommands,gi.totalIncomingWebhooks,gi.totalOutgoingWebhooks,gi.totalWebsockets,gi.totalMasterDbConnections,gi.totalReadDbConnections,gi.postTypes,gi.channelTypes,gi.totalTeams,gi.totalChannels,gi.dailyActiveUsers,gi.monthlyActiveUsers,gi.totalFiles,gi.totalFilesSize];class fi extends T().PureComponent{constructor(){super(...arguments),ui(this,"state",{pluginSiteStats:{},lineChartsDataLoaded:!1}),ui(this,"loadLineChartData",(async()=>{await Promise.allSettled([h.fs(),h._C(),h.iN()]),this.setState({lineChartsDataLoaded:!0})})),ui(this,"handleLineChartsToggle",(e=>{e.currentTarget.open&&!this.state.lineChartsDataLoaded&&this.loadLineChartData()}))}async componentDidMount(){h.ur(),this.props.isLicensed&&h.fu(),this.fetchPluginStats()}async fetchPluginStats(){const e=Object.keys(this.props.pluginStatHandlers);if(!e.length)return;const t=Object.values(this.props.pluginStatHandlers).map((e=>e())),s=await Promise.all(t),a={};s.forEach(((t,s)=>{Object.entries(t).forEach((t=>{let[i,n]=t;const r="".concat(e[s],".").concat(i);a[r]=n}))})),this.setState({pluginSiteStats:a})}getStatValue(e){return"number"==typeof e?e:e&&0!==e.length?e[0].value:void 0}render(){const e=this.props.stats,t=this.props.isLicensed,s=-1===e[pi.TOTAL_POSTS],a=ni(e[pi.POST_PER_DAY],e[pi.BOT_POST_PER_DAY],e[pi.USERS_WITH_POSTS_PER_DAY]),i=ii(a,e[pi.POST_PER_DAY]),n=ii(a,e[pi.BOT_POST_PER_DAY]),r=ri(a,e[pi.USERS_WITH_POSTS_PER_DAY]);let o,l,d,c,m,u,p,g,h,f,E,b,v;if(s?o=T().createElement("div",{className:"banner"},T().createElement("div",{className:"banner__content"},T().createElement(N.FormattedMessage,{id:"analytics.system.skippedIntensiveQueries",defaultMessage:"To maximize performance, some statistics are disabled. You can <link>re-enable them in config.json</link>.",values:{link:e=>T().createElement(wt.A,{href:"https://docs.mattermost.com/administration/statistics.html",location:"system_analytics"},e)}}))):(l=T().createElement(Ya,{id:"totalPosts",title:T().createElement(N.FormattedMessage,gi.totalPosts),icon:"fa-comment",count:this.getStatValue(e[pi.TOTAL_POSTS])}),c=T().createElement("div",{className:"row"},T().createElement(mi,{title:T().createElement(N.FormattedMessage,{id:"analytics.system.totalBotPosts",defaultMessage:"Total Posts from Bots"}),data:n,id:"totalPostsFromBotsLineChart",width:740,height:225})),d=T().createElement("div",{className:"row"},T().createElement(mi,{title:T().createElement(N.FormattedMessage,gi.totalPosts),id:"totalPostsLineChart",data:i,width:740,height:225})),m=T().createElement("div",{className:"row"},T().createElement(mi,{title:T().createElement(N.FormattedMessage,gi.activeUsers),id:"activeUsersWithPostsLineChart",data:r,width:740,height:225}))),this.props.isLicensed){g=T().createElement(Ya,{id:"totalSessions",title:T().createElement(N.FormattedMessage,gi.totalSessions),icon:"fa-signal",count:this.getStatValue(e[pi.TOTAL_SESSIONS])}),h=T().createElement(Ya,{id:"totalCommands",title:T().createElement(N.FormattedMessage,gi.totalCommands),icon:"fa-terminal",count:this.getStatValue(e[pi.TOTAL_COMMANDS])}),f=T().createElement(Ya,{id:"incomingWebhooks",title:T().createElement(N.FormattedMessage,gi.totalIncomingWebhooks),icon:"fa-arrow-down",count:this.getStatValue(e[pi.TOTAL_IHOOKS])}),E=T().createElement(Ya,{id:"outgoingWebhooks",title:T().createElement(N.FormattedMessage,gi.totalOutgoingWebhooks),icon:"fa-arrow-up",count:this.getStatValue(e[pi.TOTAL_OHOOKS])}),b=T().createElement(Ya,{id:"totalFiles",title:T().createElement(N.FormattedMessage,gi.totalFiles),icon:"fa-files-o",count:this.getStatValue(e[pi.TOTAL_FILE_COUNT])}),v=T().createElement(Ya,{id:"totalFilesSize",title:T().createElement(N.FormattedMessage,gi.totalFilesSize),icon:"fa-files-o",count:this.getStatValue(e[pi.TOTAL_FILE_SIZE]),formatter:Ha.av}),u=T().createElement(T().Fragment,null,T().createElement(Ya,{id:"websocketConns",title:T().createElement(N.FormattedMessage,gi.totalWebsockets),icon:"fa-user",count:this.getStatValue(e[pi.TOTAL_WEBSOCKET_CONNECTIONS])}),T().createElement(Ya,{id:"masterDbConns",title:T().createElement(N.FormattedMessage,gi.totalMasterDbConnections),icon:"fa-terminal",count:this.getStatValue(e[pi.TOTAL_MASTER_DB_CONNECTIONS])}),T().createElement(Ya,{id:"replicaDbConns",title:T().createElement(N.FormattedMessage,gi.totalReadDbConnections),icon:"fa-terminal",count:this.getStatValue(e[pi.TOTAL_READ_DB_CONNECTIONS])}));const t=(y=e[pi.TOTAL_PUBLIC_CHANNELS],M=e[pi.TOTAL_PRIVATE_GROUPS],{labels:[D.Vw({id:"analytics.system.publicChannels",defaultMessage:"Public Channels"}),D.Vw({id:"analytics.system.privateGroups",defaultMessage:"Private Channels"})],datasets:[{data:[y,M],backgroundColor:["#46BFBD","#FDB45C"],hoverBackgroundColor:["#5AD3D1","#FFC870"]}]});p=T().createElement("div",{className:"row"},T().createElement(ai,{title:T().createElement(N.FormattedMessage,gi.channelTypes),data:t,width:300,height:225}))}var y,M;const _="true"===this.props.license.Cloud,S=T().createElement(Xa,{activatedUsers:this.getStatValue(e[pi.TOTAL_USERS]),seatsPurchased:parseInt(this.props.license.Users,10),isCloud:_}),C=T().createElement(Ya,{id:"seatPurchased",title:T().createElement(N.FormattedMessage,{id:"analytics.system.seatsPurchased",defaultMessage:"Licensed Seats"}),icon:"fa-users",count:parseInt(this.props.license.Users,10)}),A=T().createElement(Ya,{id:"totalTeams",title:T().createElement(N.FormattedMessage,gi.totalTeams),icon:"fa-users",count:this.getStatValue(e[pi.TOTAL_TEAMS])}),w=this.getStatValue(e[pi.TOTAL_PUBLIC_CHANNELS]),R=this.getStatValue(e[pi.TOTAL_PRIVATE_GROUPS]),O=T().createElement(Ya,{id:"totalChannels",title:T().createElement(N.FormattedMessage,gi.totalChannels),icon:"fa-globe",count:w&&R?w+R:!w&&R?R:w&&!R?w:void 0}),I=T().createElement(Ya,{id:"dailyActiveUsers",title:T().createElement(N.FormattedMessage,gi.dailyActiveUsers),icon:"fa-users",count:this.getStatValue(e[pi.DAILY_ACTIVE_USERS])}),k=T().createElement(Ya,{id:"monthlyActiveUsers",title:T().createElement(N.FormattedMessage,gi.monthlyActiveUsers),icon:"fa-users",count:this.getStatValue(e[pi.MONTHLY_ACTIVE_USERS])}),P=[],x=[],L=[];for(const[e,t]of Object.entries(this.state.pluginSiteStats))switch(t.visualizationType){case ja.dQ.LineChart:x.push(T().createElement("div",{className:"row",key:"pluginstat."+e},T().createElement(mi,{id:e,title:t.name,data:t.value,width:740,height:225})));break;case ja.dQ.DoughnutChart:L.push(T().createElement("div",{className:"row",key:"pluginstat."+e},T().createElement(ai,{title:t.name,data:t.value,width:300,height:225})));break;case ja.dQ.Count:default:P.push(T().createElement(Ya,{id:e,key:"pluginstat."+e,title:t.name,icon:t.icon,count:t.value}))}let F;return t?F=T().createElement(T().Fragment,null,S,_?null:C,A,O,s?null:l,g,h,f,E,b,v):t||(F=T().createElement(T().Fragment,null,S,_||!t?null:C,A,O,s?null:l)),T().createElement("div",{className:"wrapper--fixed team_statistics"},T().createElement(nt,null,T().createElement(N.FormattedMessage,gi.title)),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement(za,{license:this.props.license,totalUsers:this.getStatValue(e[pi.TOTAL_USERS])||0,location:"system_statistics"}),o,T().createElement("div",{className:"grid-statistics"},F,I,k,u,P),p,L,x,T().createElement("details",{onToggle:this.handleLineChartsToggle,"data-testid":"details-expander"},T().createElement("summary",null,T().createElement(N.FormattedMessage,{id:"analytics.system.perDayStatistics",defaultMessage:"Load Advanced Statistics"})),T().createElement(T().Fragment,null,d,c,m)))))}}ui(fi,"propTypes",{isLicensed:k().bool.isRequired});const Ei=(0,a.connect)((function(e){return{isLicensed:"true"===(0,c.Ay)(e).IsLicensed,stats:e.entities.admin.analytics,pluginStatHandlers:e.plugins.siteStatsHandlers}}))(fi);var bi=s(17085),vi=s(61185),yi=s(69657),Mi=s(77212);const _i=e=>{let t=T().createElement(N.FormattedMessage,{id:"admin.banner.heading",defaultMessage:"Note:"});return e.title&&(t=e.title),T().createElement("div",{className:"banner"},T().createElement("div",{className:"banner__content"},T().createElement("h4",{className:"banner__heading"},t),T().createElement("p",null,e.description)))};_i.propTypes={title:k().element,description:k().element.isRequired};const Si=_i,Ci=e=>{let{title:t,data:s}=e;return T().createElement("div",{className:"col-sm-6"},T().createElement("div",{className:"total-count recent-active-users"},T().createElement("div",{className:"title"},t),T().createElement("div",{className:"content"},T().createElement("table",null,T().createElement("tbody",null,s.map((e=>T().createElement("tr",{key:"table-entry-"+e.name},T().createElement("td",null,T().createElement(ys.A,{title:e.tip},T().createElement("span",null,e.name))),T().createElement("td",null,e.value)))))))))};Ci.propTypes={title:k().node.isRequired,data:k().arrayOf(k().shape({name:k().string.isRequired,tip:k().string.isRequired,value:k().node.isRequired})).isRequired};const Ai=(0,A.memo)(Ci);var Ti=s(45036);function Ni(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const wi=(0,N.defineMessages)({title:{id:"analytics.team.title",defaultMessage:"Team Statistics for {team}"},info:{id:"analytics.system.info",defaultMessage:"Use data for only the chosen team. Exclude posts in direct message channels that are not tied to a team."},totalPosts:{id:"analytics.team.totalPosts",defaultMessage:"Total Posts"},activeUsers:{id:"analytics.team.activeUsers",defaultMessage:"Active Users With Posts"},publicChannels:{id:"analytics.team.publicChannels",defaultMessage:"Public Channels"},privateGroups:{id:"analytics.team.privateGroups",defaultMessage:"Private Channels"},recentUsers:{id:"analytics.team.recentUsers",defaultMessage:"Recent Active Users"},newlyCreated:{id:"analytics.team.newlyCreated",defaultMessage:"Newly Created Users"}}),Ri=[[wi.title,{team:""}],wi.info,wi.totalPosts,wi.activeUsers,Ja.totalUsers,wi.publicChannels,wi.privateGroups,wi.recentUsers,wi.newlyCreated];class Oi extends T().PureComponent{constructor(e){super(e),Ni(this,"getData",(async e=>{h.ur(e),h.fs(e),h._C(e),h.iN(e);const{data:t}=await this.props.actions.getProfilesInTeam(e,0,l.Bz.PROFILE_CHUNK_SIZE,"last_activity_at"),{data:s}=await this.props.actions.getProfilesInTeam(e,0,l.Bz.PROFILE_CHUNK_SIZE,"create_at");this.setState({recentlyActiveUsers:t,newUsers:s})})),Ni(this,"handleTeamChange",(e=>{const t=e.target.value;let s;this.props.teams.forEach((e=>{e.id===t&&(s=e)})),this.setState({team:s}),this.props.actions.setGlobalItem("last_analytics_team",t)})),this.state={team:e.initialTeam,recentlyActiveUsers:[],newUsers:[]}}componentDidMount(){this.state.team&&this.getData(this.state.team.id),this.props.actions.getTeams(0,1e3)}componentDidUpdate(e,t){this.state.team&&t.team!==this.state.team&&this.getData(this.state.team.id)}getStatValue(e){return"number"==typeof e?e:e&&0!==e.length?e[0].value:void 0}render(){if(0===this.props.teams.length||!this.state.team||!this.props.stats[this.state.team.id])return T().createElement(Na.A,null);if(null==this.state.team)return T().createElement(Si,{description:T().createElement(N.FormattedMessage,{id:"analytics.team.noTeams",defaultMessage:"This server has no teams for which to view statistics."})});const e=this.props.stats[this.state.team.id],t=ni(e[mt.g5.POST_PER_DAY],e[mt.g5.USERS_WITH_POSTS_PER_DAY]),s=ii(t,e[mt.g5.POST_PER_DAY]),a=ri(t,e[mt.g5.USERS_WITH_POSTS_PER_DAY]);let i,n,r,o=T().createElement("div",{className:"banner"},T().createElement("div",{className:"banner__content"},T().createElement(N.FormattedMessage,wi.info)));-1===e[mt.g5.TOTAL_POSTS]?o=T().createElement("div",{className:"banner"},T().createElement("div",{className:"banner__content"},T().createElement(N.FormattedMessage,{id:"analytics.system.infoAndSkippedIntensiveQueries1",defaultMessage:"Use data for only the chosen team. Exclude posts in direct message channels that are not tied to a team."}),T().createElement("p",null),T().createElement(N.FormattedMessage,{id:"analytics.system.infoAndSkippedIntensiveQueries2",defaultMessage:"To maximize performance, some statistics are disabled. You can <link>re-enable them in config.json</link>.",values:{link:e=>T().createElement(wt.A,{href:"https://docs.mattermost.com/administration/statistics.html",location:"team_analytics"},e)}}))):(i=T().createElement(Ya,{title:T().createElement(N.FormattedMessage,wi.totalPosts),icon:"fa-comment",count:this.getStatValue(e[mt.g5.TOTAL_POSTS])}),n=T().createElement("div",{className:"row"},T().createElement(mi,{key:this.state.team.id,title:T().createElement(N.FormattedMessage,wi.totalPosts),id:"totalPosts",data:s,width:740,height:225})),r=T().createElement("div",{className:"row"},T().createElement(mi,{key:this.state.team.id,title:T().createElement(N.FormattedMessage,wi.activeUsers),id:"activeUsersWithPosts",data:a,width:740,height:225})));const l=(m=this.state.recentlyActiveUsers,u=this.props.locale,null==m?[]:m.map((e=>({name:e.username,value:T().createElement(N.FormattedDate,{value:e.last_activity_at,day:"numeric",month:(0,Ti.FS)(u),year:"numeric",hour:"2-digit",minute:"2-digit"}),tip:e.email})))),d=function(e,t){return null==e?[]:e.map((e=>({name:e.username,value:T().createElement(N.FormattedDate,{value:e.create_at,day:"numeric",month:(0,Ti.FS)(t),year:"numeric",hour:"2-digit",minute:"2-digit"}),tip:e.email})))}(this.state.newUsers,this.props.locale),c=this.props.teams.sort(((e,t)=>{const s=e.display_name.toUpperCase(),a=t.display_name.toUpperCase();return s===a?0:s>a?1:-1})).map((e=>T().createElement("option",{key:e.id,value:e.id},e.display_name)));var m,u;return T().createElement("div",{className:"wrapper--fixed team_statistics"},T().createElement(nt,null,T().createElement("div",{className:"team-statistics__header"},T().createElement(N.FormattedMessage,Object.assign({},wi.title,{values:{team:this.state.team.display_name}}))),T().createElement("div",{className:"team-statistics__team-filter"},T().createElement("select",{"data-testid":"teamFilter",className:"form-control team-statistics__team-filter__dropdown",onChange:this.handleTeamChange,value:this.state.team.id},c))),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},o,T().createElement("div",{className:"grid-statistics"},T().createElement(Xa,{activatedUsers:this.getStatValue(e[mt.g5.TOTAL_USERS]),seatsPurchased:parseInt(this.props.license.Users,10),isCloud:"true"===this.props.license.Cloud}),T().createElement(Ya,{title:T().createElement(N.FormattedMessage,wi.publicChannels),icon:"fa-globe",count:this.getStatValue(e[mt.g5.TOTAL_PUBLIC_CHANNELS])}),T().createElement(Ya,{title:T().createElement(N.FormattedMessage,wi.privateGroups),icon:"fa-lock",count:this.getStatValue(e[mt.g5.TOTAL_PRIVATE_GROUPS])}),i),n,r,T().createElement("div",{className:"row"},T().createElement(Ai,{title:T().createElement(N.FormattedMessage,wi.recentUsers),data:l}),T().createElement(Ai,{title:T().createElement(N.FormattedMessage,wi.newlyCreated),data:d})))))}}Ni(Oi,"propTypes",{teams:k().array.isRequired,locale:k().string.isRequired,actions:k().shape({getTeams:k().func.isRequired,getProfilesInTeam:k().func.isRequired,setGlobalItem:k().func.isRequired}).isRequired});const Ii=(0,a.connect)((function(e){const t=(0,p.Lq)(e),s=(0,Mi.zR)("last_analytics_team","")(e);return{initialTeam:e.entities.teams.teams[s]||(t.length>0?t[0]:null),locale:(0,yi.k)(e),teams:t,stats:e.entities.admin.teamAnalytics}}),(function(e){return{actions:(0,i.zH)({getTeams:o.ZN,getProfilesInTeam:bi.xJ,setGlobalItem:vi.X2},e)}}))(Oi);var ki=s(82739),Pi=s(63155),xi=s(87461),Di=s(70669),Li=s(83007);function Fi(e){const[t,s]=(0,A.useState)([]),[a,i]=(0,A.useState)(0),[n,r]=(0,A.useState)(""),[o,l]=(0,A.useState)(!1),[d,c]=(0,A.useState)(""),[m,u]=(0,A.useState)(!1),[p,g]=(0,A.useState)([]),[h,f]=(0,A.useState)(0),E=(0,N.useIntl)(),b=(0,A.useMemo)((()=>(0,Li.J)()),[]);(0,A.useEffect)((()=>{v()}),[]);const v=async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];l(!0);try{const o=await e.actions.searchPolicies(t,"parent",a,11),d=o.data.policies||[],c=o.data.total||0,m=d.length>10?d.slice(0,10):d,u=m.length>0?m[m.length-1].id:"";n?(s(m),l(!1),r(u),f(c),i(0),g([])):(s(m),l(!1),r(u),f(c))}catch(e){l(!1),u(!0)}},y=e=>{var t;const s=null===(t=e.props)||void 0===t?void 0:t.child_ids;return s&&0!==s.length?T().createElement(N.FormattedMessage,{id:"admin.access_control.policies.resources.channels",defaultMessage:"{count, number} {count, plural, one {channel} other {channels}}",values:{count:s.length}}):T().createElement(N.FormattedMessage,{id:"admin.access_control.policies.resources.none",defaultMessage:"None"})},M=t.map((t=>{var s,a;const i="customDescription-".concat(t.id),n="customAppliedTo-".concat(t.id);return{cells:{name:T().createElement("div",{id:i,className:"policy-name"},t.name),resources:T().createElement("div",{id:n,className:"policy-resources"},y(t)),actions:T().createElement("div",{className:"policy-actions"},!e.simpleMode&&T().createElement(Di.mc,{menuButton:{id:"policy-menu-".concat(t.id),class:"policy-menu-button",children:T().createElement("i",{className:"icon icon-dots-vertical"})},menu:{id:"policy-menu-dropdown-".concat(t.id),"aria-label":E.formatMessage({id:"admin.access_control.policies.menu.aria_label",defaultMessage:"Policy actions menu"})}},T().createElement(Di.q7,{id:"policy-menu-edit-".concat(t.id),onClick:()=>{b.push("/admin_console/system_attributes/attribute_based_access_control/edit_policy/".concat(t.id))},leadingElement:T().createElement("i",{className:"icon icon-pencil-outline"}),labels:T().createElement(N.FormattedMessage,{id:"admin.access_control.edit",defaultMessage:"Edit"})}),T().createElement(Di.q7,{id:"policy-menu-delete-".concat(t.id),onClick:()=>(async t=>{await e.actions.deletePolicy(t),v(d)})(t.id),leadingElement:T().createElement("i",{className:"icon icon-trash-can-outline"}),labels:T().createElement(N.FormattedMessage,{id:"admin.access_control.delete",defaultMessage:"Delete"}),isDestructive:!0,disabled:Boolean(null===(s=t.props)||void 0===s||null===(a=s.child_ids)||void 0===a?void 0:a.length)})))},onClick:()=>{e.onPolicySelected?e.onPolicySelected(t):b.push("/admin_console/system_attributes/attribute_based_access_control/edit_policy/".concat(t.id))}}})),_=[{name:T().createElement(N.FormattedMessage,{id:"admin.access_control.policies.name",defaultMessage:"Name"}),field:"name",width:5},{name:T().createElement(N.FormattedMessage,{id:"admin.access_control.policies.applies_to",defaultMessage:"Applies to"}),field:"resources",textAlign:"center",width:4},{name:T().createElement("span",null),field:"actions",className:"actions-column",width:1}],{startCount:S,endCount:C}=(()=>{const e=10*a+1;return{startCount:e,endCount:e+t.length-1,total:h}})();let w=T().createElement(N.FormattedMessage,{id:"admin.user_settings.policy_list.no_policies_found",defaultMessage:"No policies found"});m&&(w=T().createElement(N.FormattedMessage,{id:"admin.user_settings.policy_list.search_policy_errored",defaultMessage:"Something went wrong. Try again"}));const R={minHeight:"".concat(40*M.length,"px")};return T().createElement("div",{className:"PolicyTable"},!e.simpleMode&&T().createElement("div",{className:"policy-header"},T().createElement("div",{className:"policy-header-text"},T().createElement("h1",null,T().createElement(N.FormattedMessage,{id:"admin.access_control.policies.title",defaultMessage:"Access Control Policies"})),T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"admin.access_control.policies.description",defaultMessage:"Create policies containing attribute based access rules and the resources they apply to."}))),T().createElement("button",{className:"btn btn-primary",onClick:()=>{b.push("/admin_console/system_attributes/attribute_based_access_control/edit_policy")}},T().createElement("i",{className:"icon icon-plus"}),T().createElement("span",null,T().createElement(N.FormattedMessage,{id:"admin.access_control.policies.add_policy",defaultMessage:"Add policy"})))),T().createElement(xe,{columns:_,rows:M,loading:o,startCount:S,endCount:C,total:h,onSearch:async e=>{if(0===e.length)return i(0),r(""),l(!1),u(!1),c(""),void v();l(!0),c(e),await v(e,"",!0)},term:d,placeholderEmpty:w,rowsContainerStyles:R,page:a,nextPage:async()=>{const e=[...p,n];l(!0),i(a+1),g(e),await v(d,n)},previousPage:async()=>{if(0===p.length)return;const e=[...p];e.pop();const t=e.length>0?e[e.length-1]:"";l(!0),i(a-1),g(e),await v(d,t)}}))}Fi.propTypes={onPolicySelected:k().func,simpleMode:k().bool,actions:k().shape({searchPolicies:k().func.isRequired,deletePolicy:k().func.isRequired}).isRequired};const Ui=(0,a.connect)(null,(e=>({actions:(0,i.zH)({searchPolicies:xi.a5,deletePolicy:xi.fQ},e)})))(Fi);var Bi=s(14696),ji=s(30413),Hi=s(65952),Gi=s(62194),qi=s(16230),Vi=s(36057),zi=s(86255),Wi=s(78064),Yi=s(19513);const Zi=e=>{const[t,s]=(0,A.useState)(0),[a,i]=(0,A.useState)(!1),[n,r]=(0,A.useState)(""),[o,l]=(0,A.useState)(e.isSearch),d=(0,A.useRef)(null);(0,A.useEffect)((()=>{l(e.isSearch),e.isSearch&&!o&&s(0)}),[e.isSearch,o]),(0,A.useEffect)((()=>(document.addEventListener("keydown",c),()=>{document.removeEventListener("keydown",c)})),[]);const c=e=>{const t=e.target,s=(0,Yi.e)(e,mt.Ay.KeyCodes.ENTER);s&&(e.shiftKey||e.ctrlKey||e.altKey)||s&&null!=t&&t.classList.contains("more-modal__row")&&t.click()},m=t=>{var s,a;const i="".concat(t.display_name,", ").concat(t.purpose).toLowerCase();let n;n=(0,Wi.Oj)(t)?T().createElement(R.ArchiveOutlineIcon,{size:18}):(0,qi.Zp)(t)?T().createElement(R.LockOutlineIcon,{size:18}):T().createElement(R.GlobeIcon,{size:18});const r=e.teams[t.team_id],o=T().createElement("div",{id:"channelMoreInfoContainer","aria-label":"".concat(r.display_name)},T().createElement("span",{className:"more-modal__description"},"".concat(r.display_name))),l=e.syncResults[t.id],d=l?T().createElement("div",{className:"changes-cell"},T().createElement("span",{className:"changes-summary"},T().createElement("span",{className:"added"},"+"+((null===(s=l.MembersAdded)||void 0===s?void 0:s.length)||0))," / ",T().createElement("span",{className:"removed"},"-"+((null===(a=l.MembersRemoved)||void 0===a?void 0:a.length)||0)))):null;return T().createElement("div",{className:"more-modal__row job-sync-row",key:t.id,id:"ChannelRow-".concat(t.name),"data-testid":"ChannelRow-".concat(t.name),"aria-label":i,onClick:()=>(t=>{e.onViewDetails&&e.syncResults[t.id]&&e.onViewDetails(t.id,t.display_name,e.syncResults[t.id])})(t),tabIndex:0},T().createElement("div",{className:"more-modal__details"},T().createElement("div",{className:"style--none more-modal__name"},n,T().createElement("span",{id:"channelName"},t.display_name)),r&&o),T().createElement("div",{className:"more-modal__actions"},d))},u=a=>{var n;a.preventDefault(),s(t+1),i(!0),e.nextPage(t+1),null===(n=d.current)||void 0===n||n.scrollTo({top:0})},p=e=>{var a;e.preventDefault(),s(t-1),null===(a=d.current)||void 0===a||a.scrollTo({top:0})},g=e.channels;let h,f,E;if(e.loading&&0===g.length)h=T().createElement(Na.A,null);else if(0===g.length)h=T().createElement("div",{className:"no-channel-message channel-switcher__suggestion-box","aria-label":n.length>0?e.intl.formatMessage(Ji.noMore,{text:n}):e.intl.formatMessage({id:"widgets.channels_input.empty",defaultMessage:"No channels found"})},T().createElement(Vi.A,null),T().createElement("h3",{className:"primary-message"},T().createElement(N.FormattedMessage,{id:"more_channels.noMore",tagName:"strong",defaultMessage:"No results for {text}",values:{text:n}})),e.noResultsText);else{const s=t*e.channelsPerPage,i=s+e.channelsPerPage,n=e.channels.slice(s,i);h=n.map(m),n.length>=e.channelsPerPage&&i<e.channels.length&&(f=T().createElement("button",{className:"btn btn-sm btn-tertiary filter-control filter-control__next",onClick:u,disabled:a,"aria-label":e.intl.formatMessage({id:"more_channels.next",defaultMessage:"Next"})},T().createElement(N.FormattedMessage,{id:"more_channels.next",defaultMessage:"Next"}))),t>0&&(E=T().createElement("button",{className:"btn btn-sm btn-tertiary filter-control filter-control__prev",onClick:p,"aria-label":e.intl.formatMessage({id:"more_channels.prev",defaultMessage:"Previous"})},T().createElement(N.FormattedMessage,{id:"more_channels.prev",defaultMessage:"Previous"})))}const b=T().createElement("div",{className:"filter-row"},T().createElement("span",{id:"searchIcon","aria-hidden":"true"},T().createElement("i",{className:"icon icon-magnify"})),T().createElement(zi.A,{id:"searchChannelsTextbox",className:"form-control filter-textbox",placeholder:e.intl.formatMessage({id:"filtered_channels_list.search",defaultMessage:"Search channels"}),onInput:t=>{null!=t&&t.currentTarget&&(r(t.currentTarget.value),e.search(t.currentTarget.value))},clearable:!0,onClear:()=>{r(""),e.search("")},value:n,"aria-label":e.intl.formatMessage({id:"filtered_channels_list.search",defaultMessage:"Search Channels"})}));let v;return v=0===g.length?e.intl.formatMessage({id:"more_channels.count_zero",defaultMessage:"0 Results"}):1===g.length?e.intl.formatMessage({id:"more_channels.count_one",defaultMessage:"1 Result"}):g.length>1?e.intl.formatMessage(Ji.channelCount,{count:g.length}):e.intl.formatMessage({id:"more_channels.count_zero",defaultMessage:"0 Results"}),T().createElement("div",{className:"filtered-user-list"},b,T().createElement("div",{className:"more-modal__dropdown"},T().createElement("span",{className:"sync-job-channel-count-label"},v)),T().createElement("div",{role:"search",className:"more-modal__list",tabIndex:-1},T().createElement("div",{id:"moreChannelsList",tabIndex:-1,ref:d},h)),T().createElement("div",{className:"filter-controls"},E,f))};Zi.propTypes={channels:k().array.isRequired,channelsPerPage:k().number.isRequired,nextPage:k().func.isRequired,isSearch:k().bool.isRequired,search:k().func.isRequired,onViewDetails:k().func,noResultsText:k().element.isRequired,loading:k().bool};const Ji=(0,N.defineMessages)({channelCount:{id:"more_channels.count",defaultMessage:"{count} Results"},noMore:{id:"more_channels.noMore",defaultMessage:"No results for {text}"}}),Ki=(0,N.injectIntl)(Zi);var Qi=s(59925),Xi=s(24876);const $i=e=>{let{userIds:t,noResultsMessageId:s,noResultsDefaultMessage:i,actions:n}=e;const r=(0,a.useDispatch)(),[o,l]=(0,A.useState)([]),[d,c]=(0,A.useState)(0),m=t.length,u=(0,A.useCallback)((async e=>{const s=10*e,a=s+10,i=t.slice(s,a);await r(n.getProfilesByIds(i)).then((e=>{null!=e&&e.data?l([...e.data]):l([])}))}),[t]);return(0,A.useEffect)((()=>{u(d)}),[d]),0===t.length?T().createElement("div",{className:"no-user-message","aria-label":"No users found"},T().createElement(Qi.w,{className:"empty-state-svg"}),T().createElement("h3",{className:"primary-message"},T().createElement(N.FormattedMessage,{id:s,tagName:"strong",defaultMessage:i}))):T().createElement(Xi.A,{users:o,usersPerPage:10,total:m,nextPage:()=>{c(d+1)},previousPage:()=>{c(d-1)},search:e=>{""===e?u(0):l(o.filter((t=>t.username.toLowerCase().includes(e.toLowerCase())||t.first_name.toLowerCase().includes(e.toLowerCase())||t.last_name.toLowerCase().includes(e.toLowerCase())||t.email.toLowerCase().includes(e.toLowerCase())||t.nickname.toLowerCase().includes(e.toLowerCase()))))},actionUserProps:{}})};$i.propTypes={userIds:k().arrayOf(k().string).isRequired,noResultsMessageId:k().string.isRequired,noResultsDefaultMessage:k().string.isRequired,actions:k().shape({getProfilesByIds:k().func.isRequired}).isRequired};const en=e=>{let{channelId:t,channelName:s,syncResults:a,onClose:i}=e;const[n,r]=(0,A.useState)("added"),o=e=>{r(e)},l=s||t;return T().createElement(Bi.zW,{className:"a11y__modal more-modal",id:"user-list-modal-dialog",onExited:i,show:!0,onHide:i,compassDesign:!0,bodyPadding:!1,modalHeaderText:T().createElement(N.FormattedMessage,{id:"admin.jobTable.syncResults.userListTitle",defaultMessage:"Channel Membership Changes"}),modalSubheaderText:"".concat(l," - (").concat(t,")")},T().createElement("div",{className:"tabs"},T().createElement("button",{className:"tab-button ".concat("added"===n?"active":""),onClick:()=>o("added")},T().createElement(N.FormattedMessage,{id:"admin.jobTable.syncResults.added",defaultMessage:"Added ({count, number})",values:{count:a.MembersAdded.length}})),T().createElement("button",{className:"tab-button ".concat("removed"===n?"active":""),onClick:()=>o("removed")},T().createElement(N.FormattedMessage,{id:"admin.jobTable.syncResults.removed",defaultMessage:"Removed ({count, number})",values:{count:a.MembersRemoved.length}}))),T().createElement("div",{className:"tab-content"},"added"===n&&T().createElement($i,{userIds:a.MembersAdded,noResultsMessageId:"admin.jobTable.syncResults.noUsersAdded",noResultsDefaultMessage:"No users were added",actions:{getProfilesByIds:bi.G1}}),"removed"===n&&T().createElement($i,{userIds:a.MembersRemoved,noResultsMessageId:"admin.jobTable.syncResults.noUsersRemoved",noResultsDefaultMessage:"No users were removed",actions:{getProfilesByIds:bi.G1}})))};en.propTypes={channelId:k().string.isRequired,channelName:k().string.isRequired,syncResults:k().shape({MembersAdded:k().arrayOf(k().string).isRequired,MembersRemoved:k().arrayOf(k().string).isRequired}).isRequired,onClose:k().func.isRequired};const tn=en,sn=e=>{let{status:t}=e,s="status-indicator";return s+="success"===t?" status-success":"error"===t||"canceled"===t?" status-error":"in_progress"===t?" status-in-progress":" status-pending",T().createElement("div",{className:"status-wrapper"},T().createElement("div",{className:s,title:t}))};function an(e){var t;let{job:s,onExited:i}=e;const n=(0,a.useDispatch)(),[r,o]=(0,A.useState)(null),[l,d]=(0,A.useState)(""),[c,m]=(0,A.useState)(null),[u,g]=(0,A.useState)({}),[h,f]=(0,A.useState)({}),[E,b]=(0,A.useState)(null),[v,y]=(0,A.useState)(""),[M,_]=(0,A.useState)([]),S=(0,a.useSelector)((e=>e));(0,A.useEffect)((()=>{var e;if(null!=s&&null!==(e=s.data)&&void 0!==e&&e.sync_results){const e=JSON.parse(s.data.sync_results);b(e);const t=[];Object.entries(e).forEach((e=>{const s=e[0];t.push(s)})),t.length>0&&t.forEach((e=>{n(ji.c(e))}))}}),[null==s||null===(t=s.data)||void 0===t?void 0:t.sync_results,n]),(0,A.useEffect)((()=>{if(E){const e={},t={},s=[];Object.keys(E).forEach((a=>{const i=(0,Hi.c)(S,a);if(i&&(e[a]=i,s.push(i),!t[i.team_id])){const e=(0,p.Uo)(S,i.team_id);e&&(t[e.id]=e)}})),f(t),g(e),_(s)}}),[E,S]);const C=(()=>{let e=M;return v&&(e=e.filter((e=>{var t;return e.display_name.toLowerCase().includes(v.toLowerCase())||e.name.toLowerCase().includes(v.toLowerCase())||u[e.id]&&(null===(t=h[u[e.id].team_id])||void 0===t?void 0:t.name.toLowerCase().includes(v.toLowerCase()))}))),e})(),w=T().createElement("span",{className:"no-results-message"},T().createElement(N.FormattedMessage,{id:"admin.jobTable.syncResults.noResultsSearchable",defaultMessage:"No channels match your search or filter."}));return T().createElement(Bi.zW,{id:"job-details-modal",onExited:i,compassDesign:!0,modalHeaderText:T().createElement("div",{className:"modal-header-with-status"},T().createElement(N.FormattedMessage,{id:"admin.jobTable.details.title",defaultMessage:"Job Details"}),T().createElement(sn,{status:s.status})),modalSubheaderText:T().createElement("div",{className:"modal-subheader-text"},"canceled"===s.status&&s.type.includes("access_control_sync")?T().createElement(N.FormattedMessage,{id:"admin.access_control.jobTable.details.subheader.canceled",defaultMessage:"Canceled at {canceledAt}",values:{canceledAt:new Date(s.last_activity_at).toLocaleString()}}):T().createElement(N.FormattedMessage,{id:"admin.access_control.jobTable.details.subheader",defaultMessage:"Finished at {finishedAt}",values:{finishedAt:new Date(s.last_activity_at).toLocaleString()}})),show:!0,bodyPadding:!1},"error"===s.status&&T().createElement("div",{className:"error-status-content"},T().createElement("div",{className:"error-status-content__title"},T().createElement(N.FormattedMessage,{id:"admin.jobTable.syncResults.error",defaultMessage:"An error occurred while syncing the channels."})),T().createElement(Gi.A,{code:JSON.stringify(s.data,null,2),language:"json"})),"canceled"===s.status&&s.type.includes("access_control_sync")&&T().createElement("div",{className:"canceled-status-content"},T().createElement(qa.A,{mode:"warning",variant:"app",title:T().createElement(N.FormattedMessage,{id:"admin.access_control.jobTable.syncResults.canceled.title",defaultMessage:"Job Canceled"}),message:T().createElement(N.FormattedMessage,{id:"admin.access_control.jobTable.syncResults.canceled.message",defaultMessage:"This sync job was canceled, likely because a newer sync job was started for the same channel. Channel members were not updated."})})),"error"!==s.status&&!("canceled"===s.status&&s.type.includes("access_control_sync"))&&s.type.includes("access_control_sync")&&E&&T().createElement(Ki,{channels:C,teams:h,channelsPerPage:10,nextPage:()=>{},isSearch:Boolean(v),search:y,onViewDetails:(e,t,s)=>{o(e),d(t),m(s)},noResultsText:w,syncResults:E}),r&&c&&T().createElement(tn,{channelId:r,channelName:l,syncResults:c,onClose:()=>{o(null),d(""),m(null)}}))}function nn(e){const[t,s]=(0,A.useState)(null),[a,i]=(0,A.useState)(!1),[n,r]=(0,A.useState)(!1);return(0,A.useEffect)((()=>{e.actions.getJobsByType(mt.jj.ACCESS_CONTROL_SYNC);const t=setInterval((()=>{e.actions.getJobsByType(mt.jj.ACCESS_CONTROL_SYNC)}),15e3);return()=>{clearInterval(t)}}),[e.actions]),T().createElement("div",{className:"AccessControlSyncJobTable"},T().createElement("div",{className:"policy-header"},T().createElement("div",{className:"policy-header-text"},T().createElement("h1",null,"Access Control Sync Jobs"),T().createElement("p",null,"Synchronize access control policies with system resources and permissions.")),T().createElement("button",{className:"btn btn-primary",onClick:async t=>{if(null==t||t.preventDefault(),n)return;r(!0);const s={type:mt.jj.ACCESS_CONTROL_SYNC};try{await e.actions.createJob(s),e.actions.getJobsByType(mt.jj.ACCESS_CONTROL_SYNC)}finally{setTimeout((()=>{r(!1)}),1e3)}},disabled:n},T().createElement("i",{className:"icon icon-plus"}),T().createElement("span",null,n?"Running Job...":"Run Sync Job"))),T().createElement(Ft,{perPage:5,jobType:mt.jj.ACCESS_CONTROL_SYNC,hideJobCreateButton:!0,className:"job-table__access-control",createJobButtonText:"Create Job",disabled:!1,createJobHelpText:T().createElement(T().Fragment,null),onRowClick:e=>{s(e),i(!0)}}),a&&t&&T().createElement(an,{job:t,onExited:()=>{i(!1),s(null)}}))}sn.propTypes={status:k().string.isRequired},an.propTypes={onExited:k().func.isRequired},nn.propTypes={actions:k().shape({createJob:k().func.isRequired,getJobsByType:k().func.isRequired}).isRequired};const rn=(0,a.connect)(null,(e=>({actions:(0,i.zH)({createJob:Ct._S,getJobsByType:Ct.mF},e)})))(nn);var on=s(54452);s(76685);const ln=e=>T().createElement("div",{className:oe()("Card__header",{expanded:e.expanded}),onClick:e.onClick},e.children,e.expanded&&T().createElement("hr",{className:"Card__hr"}));ln.propTypes={children:k().node.isRequired,expanded:k().bool,onClick:k().func};const dn=ln;function cn(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class mn extends T().PureComponent{render(){const{expanded:e,children:t}=this.props,s=A.Children.map(t,(t=>(0,A.isValidElement)(t)?(0,A.cloneElement)(t,{expanded:e}):t));return T().createElement("div",{className:oe()("Card",this.props.className,{expanded:e})},s)}}cn(mn,"propTypes",{expanded:k().bool,className:k().string,children:k().node}),cn(mn,"Header",dn),cn(mn,"Body",(function(e){const[t,s]=(0,A.useState)(0),[a,i]=(0,A.useState)(!1),[n,r]=(0,A.useState)(!1);return(0,A.useEffect)((()=>{i(!0),e.expanded&&r(!0)}),[e.expanded]),(0,A.useEffect)((()=>{e.expanded||r(!1)}),[a]),T().createElement("div",{ref:e=>{e&&e.children&&s(Array.from(e.children).map((e=>e.scrollHeight)).reduce(((e,t)=>e+t),0))},style:{height:a&&n?t:""},className:oe()("Card__body",{expanded:n,expanding:a}),onTransitionEnd:()=>i(!1)},e.children)}));const un=e=>{let t=T().createElement("button",{disabled:e.isDisabled,className:"btn btn-primary",onClick:e.onClick},e.buttonText);return e.isDisabled&&e.tooltipText&&(t=T().createElement(ys.A,{title:e.tooltipText},t)),T().createElement(T().Fragment,null,T().createElement("div",null,T().createElement("div",{className:"text-top"},e.title),e.subtitle&&T().createElement("div",{className:"text-bottom"},e.subtitle)),e.buttonText&&e.onClick&&t)};un.propTypes={title:k().node.isRequired,subtitle:k().node,buttonText:k().node,isDisabled:k().bool,onClick:k().func,tooltipText:k().string};const pn=un;var gn=s(89247),hn=s(89735),fn=s(50375);function En(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function bn(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?En(Object(s),!0).forEach((function(t){vn(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):En(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function vn(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class yn extends T().PureComponent{constructor(){super(...arguments),vn(this,"searchTimeoutId",0),vn(this,"selectedItemRef",T().createRef()),vn(this,"state",{values:[],show:!0,search:!1,loadingChannels:!0,channels:[]}),vn(this,"handleHide",(()=>{this.props.actions.setModalSearchTerm(""),this.setState({show:!1})})),vn(this,"handleExit",(()=>{this.props.onModalDismissed&&this.props.onModalDismissed()})),vn(this,"handleSubmit",(e=>{e&&e.preventDefault(),0!==this.state.values.length&&(this.props.onChannelsSelected&&this.props.onChannelsSelected(this.state.values),this.handleHide())})),vn(this,"addValue",(e=>{const t=[...this.state.values];null!=e&&e.id&&!t.some((t=>t.id===e.id))&&t.push(e),this.setState({values:t})})),vn(this,"setChannelsLoadingState",(e=>{this.setState({loadingChannels:e})})),vn(this,"handlePageChange",((e,t)=>{e>t&&(this.setChannelsLoadingState(!0),this.props.actions.loadChannels(e,51,this.props.groupID,!1,this.props.excludePolicyConstrained,this.props.excludeAccessControlPolicyEnforced).then((e=>{const t=[...this.state.channels],s=this.state.channels.map((e=>e.id));e.data.forEach((e=>{s.includes(e.id)||t.push(e)})),this.setState({channels:t.sort(Mn)}),this.setChannelsLoadingState(!1)})))})),vn(this,"handleDelete",(e=>{this.setState({values:e})})),vn(this,"search",((e,t)=>{0!==t.state.page&&t.setState({page:0}),this.props.actions.setModalSearchTerm(e)})),vn(this,"renderOption",((e,t,s,a)=>{let i="";return t&&(i="more-modal__row--selected"),T().createElement("div",{key:e.id,ref:t?this.selectedItemRef:e.id,className:"more-modal__row clickable "+i,onClick:()=>s(e),onMouseMove:()=>a(e)},T().createElement("div",{className:"more-modal__details"},T().createElement("div",{className:"channel-info-block"},e.type===mt.Ay.PRIVATE_CHANNEL&&T().createElement("i",{className:"icon icon-lock-outline"}),e.type===mt.Ay.OPEN_CHANNEL&&T().createElement("i",{className:"icon icon-globe"}),T().createElement("span",{className:"channel-name"},e.display_name),T().createElement("span",{className:"team-name"},"("+e.team_display_name+")"))),T().createElement("div",{className:"more-modal__actions"},T().createElement("button",{className:"more-modal__actions--round","aria-label":"Select channel"},T().createElement("i",{className:"icon icon-plus"}))))}))}componentDidMount(){this.props.actions.loadChannels(0,51,this.props.groupID,!1,this.props.excludePolicyConstrained,this.props.excludeAccessControlPolicyEnforced).then((e=>{this.setState({channels:e.data.sort(Mn)}),this.setChannelsLoadingState(!1)}))}componentDidUpdate(e){if(e.searchTerm!==this.props.searchTerm){clearTimeout(this.searchTimeoutId);const e=this.props.searchTerm;""===e?this.props.actions.loadChannels(0,51,this.props.groupID,!1,this.props.excludePolicyConstrained,this.props.excludeAccessControlPolicyEnforced).then((e=>{this.setState({channels:e.data.sort(Mn)}),this.setChannelsLoadingState(!1)})):this.searchTimeoutId=window.setTimeout((async()=>{this.setChannelsLoadingState(!0);const t=await this.props.actions.searchAllChannels(e,{not_associated_to_group:this.props.groupID});this.setState({channels:t.data}),this.setChannelsLoadingState(!1)}),mt.Ay.SEARCH_TIMEOUT_MILLISECONDS)}}renderValue(e){return e.data.display_name+" ("+e.data.team_display_name+")"}render(){const e=T().createElement(N.FormattedMessage,{id:"multiselect.selectChannels",defaultMessage:"Use ↑↓ to browse, ↵ to select."}),t=(0,N.defineMessage)({id:"multiselect.add",defaultMessage:"Add"});let s=this.state.channels.map((e=>bn(bn({},e),{},{label:e.display_name,value:e.id})));this.props.alreadySelected&&(s=s.filter((e=>{var t;return-1===(null===(t=this.props.alreadySelected)||void 0===t?void 0:t.indexOf(e.id))}))),this.props.excludePolicyConstrained&&(s=s.filter((e=>null===e.policy_id))),this.props.excludeTeamIds&&(s=s.filter((e=>{var t;return-1===(null===(t=this.props.excludeTeamIds)||void 0===t?void 0:t.indexOf(e.team_id))}))),this.props.excludeTypes&&(s=s.filter((e=>{var t;return-1===(null===(t=this.props.excludeTypes)||void 0===t?void 0:t.indexOf(e.type))})));const a=this.state.values.map((e=>bn(bn({},e),{},{label:e.display_name,value:e.id})));return T().createElement(hn.Modal,{dialogClassName:"a11y__modal more-modal more-direct-channels channel-selector-modal",show:this.state.show,onHide:this.handleHide,onExited:this.handleExit,role:"none","aria-labelledby":"channelSelectorModalLabel"},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,{componentClass:"h1",id:"channelSelectorModalLabel"},T().createElement(N.FormattedMessage,{id:"channelSelectorModal.title",defaultMessage:"Add Channels to <b>Channel Selection</b> List",values:{b:e=>T().createElement("b",null,e)}}))),T().createElement(hn.Modal.Body,null,T().createElement(fn.A,{key:"addChannelsToSchemeKey",options:s,optionRenderer:this.renderOption,intl:this.props.intl,selectedItemRef:this.selectedItemRef,values:a,valueRenderer:this.renderValue,perPage:50,handlePageChange:this.handlePageChange,handleInput:this.search,handleDelete:this.handleDelete,handleAdd:this.addValue,handleSubmit:this.handleSubmit,numRemainingText:e,buttonSubmitText:t,saving:!1,loading:this.state.loadingChannels,placeholderText:(0,N.defineMessage)({id:"multiselect.addChannelsPlaceholder",defaultMessage:"Search and add channels"})})))}}function Mn(e,t){const s=e.display_name.toUpperCase(),a=t.display_name.toUpperCase(),i=s.localeCompare(a);if(0!==i)return i;const n=e.name.toUpperCase(),r=t.name.toUpperCase();return n.localeCompare(r)}vn(yn,"propTypes",{searchTerm:k().string.isRequired,onModalDismissed:k().func,onChannelsSelected:k().func,groupID:k().string.isRequired,actions:k().shape({loadChannels:k().func.isRequired,setModalSearchTerm:k().func.isRequired,searchAllChannels:k().func.isRequired}).isRequired,alreadySelected:k().arrayOf(k().string),excludePolicyConstrained:k().bool,excludeAccessControlPolicyEnforced:k().bool,excludeTeamIds:k().arrayOf(k().string),excludeTypes:k().arrayOf(k().string)});const _n=(0,N.injectIntl)(yn),Sn=(0,a.connect)((function(e){return{searchTerm:e.views.search.modalSearch}}),(function(e){return{actions:(0,i.zH)({loadChannels:ji.ou,setModalSearchTerm:gn.qv,searchAllChannels:ji.Q1},e)}}))(_n);var Cn=s(24867),An=s(53779),Tn=s(10711),Nn=s(46177),wn=s.n(Nn),Rn=s(18264),On=s.n(Rn),In=s(7167);function kn(e){var t,s;const{formatMessage:a}=(0,N.useIntl)(),[i,n]=(0,A.useState)([]),[r,o]=(0,A.useState)(0);async function l(t){try{const s=await e.getTeams(t,50,!0);if(s&&s.data&&s.data.teams&&s.data.teams.length>0){const e=s.data.teams.map((e=>({value:e.id,label:e.display_name}))).sort(((e,t)=>e.label.localeCompare(t.label)));n(0===t?e:t=>[...t,...e]),o(t+1)}}catch(e){console.error(e)}}(0,A.useEffect)((()=>{l(0)}),[]);const d=null===(t=e.option.values)||void 0===t||null===(s=t.team_ids)||void 0===s?void 0:s.value,c=i.filter((e=>d.includes(e.value)));return T().createElement("div",{className:"FilterList FilterList__full"},T().createElement("div",{className:"FilterList_name"},e.option.name),T().createElement(In.A,{inputId:"adminConsoleTeamFilterDropdown",isMulti:!0,isClearable:!0,hideSelectedOptions:!0,classNamePrefix:"filterListSelect",cacheOptions:!1,placeholder:a({id:"admin.channels.filterBy.team.placeholder",defaultMessage:"Search and select teams"}),loadingMessage:()=>a({id:"admin.channels.filterBy.team.loading",defaultMessage:"Loading teams"}),noOptionsMessage:()=>a({id:"admin.channels.filterBy.team.noTeams",defaultMessage:"No teams found"}),loadOptions:async function(t){try{const s=await e.searchTeams(t,{page:0,per_page:50});if(s&&s.data&&s.data.teams&&s.data.teams.length>0){const e=s.data.teams.map((e=>({value:e.id,label:e.display_name})));return e}return[]}catch(e){return console.error(e),[]}},defaultOptions:i,value:c,onChange:function(t,s){if(!s.action)return;let a=[];Array.isArray(t)&&t.length>0&&(a=t.map((e=>e.value))),"clear"===s.action?e.updateValues({team_ids:{name:"Teams",value:[]}},"teams"):"select-option"!==s.action&&"remove-value"!==s.action||e.updateValues({team_ids:{name:"Teams",value:a}},"teams")},onMenuScrollToBottom:function(){l(r)},components:{LoadingIndicator:()=>T().createElement(ce.A,null)}}))}kn.propTypes={updateValues:k().func.isRequired};const Pn=kn,xn={searchTeams:o.Fo,getTeams:o.ZN},Dn=(0,a.connect)(null,xn)(Pn);var Ln=s(17862),Fn=s(59181),Un=s(74381);function Bn(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function jn(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Bn(Object(s),!0).forEach((function(t){Hn(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Bn(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Hn(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Gn=10;class qn extends T().PureComponent{constructor(e){var t;super(e),t=this,Hn(this,"mounted",!1),Hn(this,"componentDidMount",(()=>{this.mounted=!0,this.loadPage(0,11)})),Hn(this,"componentWillUnmount",(()=>{this.searchDebounced.cancel(),this.mounted=!1})),Hn(this,"loadPage",(async function(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:11;const{policyId:a,searchTerm:i,filters:n,actions:r}=t.props;if(!a||!t.mounted)return;t.setState({loading:!0});const o=jn(jn({},n),{},{page:e,per_page:s});try{const e=(await r.searchChannels(a,i,o)).data.channels||[],s=e.length>Gn?e.slice(0,Gn):e,n=s.length>0?s[s.length-1].id:"";t.setState({after:n,loading:!1})}catch(e){t.setState({loading:!1})}})),Hn(this,"nextPage",(async()=>{const{after:e,cursorHistory:t,page:s}=this.state,a=[...t,e];this.setState({loading:!0,page:s+1,cursorHistory:a}),await this.loadPage(s+1,Gn)})),Hn(this,"previousPage",(async()=>{const{cursorHistory:e,page:t}=this.state;if(0===e.length)return;const s=[...e];s.pop(),this.setState({loading:!0,page:t-1,cursorHistory:s}),await this.loadPage(t-1,Gn)})),Hn(this,"getVisibleTotalCount",(()=>{const{channelsToAdd:e,totalCount:t}=this.props;return t+Object.keys(e).length})),Hn(this,"getPaginationProps",(()=>{const{page:e}=this.state,t=e*Gn+1,s=this.getVisibleTotalCount();return{startCount:t,endCount:Math.min((e+1)*Gn,s),total:s}})),Hn(this,"removeChannel",(e=>{const{onRemoveCallback:t}=this.props,{page:s}=this.state;t(e);const{endCount:a}=this.getPaginationProps();a>this.getVisibleTotalCount()&&a%Gn==1&&s>0&&this.setState({page:s-1})})),Hn(this,"getColumns",(()=>[{name:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_list.nameHeader",defaultMessage:"Name"}),field:"name",fixed:!0},{name:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_list.teamHeader",defaultMessage:"Team"}),field:"team",fixed:!0},{name:"",field:"remove",textAlign:"right",fixed:!0}])),Hn(this,"getRows",(()=>{const{channels:e,channelsToRemove:t,channelsToAdd:s}=this.props,{startCount:a,endCount:i}=this.getPaginationProps(),n=[...Object.values(s),...e.filter((e=>!t[e.id]))].slice(a-1,i);return n.map((e=>{let t=T().createElement(Fn.A,{className:"channel-icon"});e.type===mt.YM.PRIVATE_CHANNEL&&(t=T().createElement(Un.A,{className:"channel-icon"})),(0,Wi.Oj)(e)&&(t=T().createElement(Ln.A,{className:"channel-icon","data-testid":"".concat(e.name,"-archive-icon")}));const s=T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.channel_selector.remove",defaultMessage:"Remove"});return{cells:{id:e.id,name:T().createElement("div",{className:"ChannelList__nameColumn",id:"channel-name-".concat(e.id)},t,T().createElement("div",{className:"ChannelList__nameText"},T().createElement("b",{id:"display-name-channel-".concat(e.id)},e.display_name))),team:e.team_display_name,remove:T().createElement("a",{id:"remove-channel-".concat(e.id),className:"group-actions TeamList_editText",onClick:t=>{t.preventDefault(),this.removeChannel(e)},href:"#"},s)}}}))})),Hn(this,"onSearch",(e=>{this.props.actions.setChannelListSearch(e)})),Hn(this,"onFilter",(e=>{const t={},{team_ids:s}=e.teams.values;s.value.length&&(t.team_ids=s.value),this.props.actions.setChannelListFilters(t)})),this.state={after:"",loading:!1,page:0,cursorHistory:[]},this.searchDebounced=wn()((async()=>{const{policyId:e,searchTerm:t,filters:s,actions:a}=this.props;e&&await a.searchChannels(e,t,s),this.setState({loading:!1})}),mt.YM.SEARCH_TIMEOUT_MILLISECONDS)}async componentDidUpdate(e){const{policyId:t,searchTerm:s,filters:a}=this.props,i=!On()(e.filters,a);if(e.searchTerm!==s||i){if(this.setState({loading:!0}),""===s)return i&&t?await e.actions.searchChannels(t,s,a):(this.setState({after:"",page:0,cursorHistory:[]}),await this.loadPage(0,11)),void this.setState({loading:!1});this.searchDebounced()}}render(){const e=this.getRows(),t=this.getColumns(),{startCount:s,endCount:a,total:i}=this.getPaginationProps(),n={options:{teams:{name:"Teams",values:{team_ids:{name:T().createElement(N.FormattedMessage,{id:"admin.team_settings.title",defaultMessage:"Teams"}),value:[]}},keys:["team_ids"],type:Dn}},keys:["teams"],onFilter:this.onFilter};return T().createElement("div",{className:"AccessControlPolicyChannelsList"},T().createElement(xe,{columns:t,rows:e,loading:this.state.loading,page:this.state.page,nextPage:this.nextPage,previousPage:this.previousPage,startCount:s,endCount:a,total:i,className:"customTable",onSearch:this.onSearch,term:this.props.searchTerm,filterProps:n}))}}Hn(qn,"propTypes",{channels:k().array.isRequired,totalCount:k().number.isRequired,searchTerm:k().string.isRequired,policyId:k().string,onRemoveCallback:k().func.isRequired,actions:k().shape({searchChannels:k().func.isRequired,setChannelListSearch:k().func.isRequired,setChannelListFilters:k().func.isRequired}).isRequired});const Vn={};function zn(e,t,s){const a=(0,qi._d)(Object.values(e),t),i=(0,Hi.GP)(a,s);return(0,qi.fv)(i)}const Wn=(0,a.connect)((function(){const e=(0,on.To)(),t=(0,Tn.A)(zn);return(s,a)=>{var i;const{channelsToAdd:n,policyId:r}=a,o=s.views.search.channelListSearch.term||"",l=(null===(i=s.views.search.channelListSearch)||void 0===i?void 0:i.filters)||Vn;let d=[],c=0;if(o||0!==Object.keys(l).length){d=r?(0,on.Rl)(s,r,o,l):[];const e=t(n,o,l);return c=d.length,{channels:d,totalCount:c,searchTerm:o,channelsToAdd:e,filters:l}}return d=r?e(s,{policyId:r}):[],c=d.length,{channels:d,totalCount:c,searchTerm:o,channelsToAdd:n,filters:l}}}),(function(e){return{actions:(0,i.zH)({searchChannels:xi.U8,setChannelListSearch:gn.SH,setChannelListFilters:gn.l4},e)}}))(qn);var Yn=s(36648),Zn=s(87988);const Jn="expressionLanguage";function Kn(e){let{schemas:t}=e;return(0,A.useEffect)((()=>{Yn.eo.getLanguages().some((e=>e.id===Jn))||(Yn.eo.register({id:Jn}),Yn.eo.setMonarchTokensProvider(Jn,{tokenizer:{root:[[/\/\/.*$/,"comment"],[/[a-zA-Z][\w$]*(?=\.)/,"variable"],[/\./,"delimiter"],[/[a-zA-Z][\w$]*/,"property"],[/&&|\|\||==|!=/,"operator"],[/[ \t\r\n]+/,"white"],[/[()]/,"@brackets"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,{token:"string.quote",bracket:"@open",next:"@string2"}],[/\d+/,"number"]],string:[[/[^\\"]+/,"string"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],string2:[[/[^'\\]+/,"string"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]]}}));const e=Yn.eo.registerCompletionItemProvider("expressionLanguage",{triggerCharacters:["."," ",'"',"'","="],provideCompletionItems:(e,s)=>{const a=s.lineNumber,i=s.column,n=e.getLineContent(a).substring(0,i-1),r=n.match(/(\w+(?:\.\w+)*)\s+(==|!=|>|<|>=|<=)\s+["']?(\w*)$/);if(r){const[,e,,s]=r,n=(e=>{const s=t[e];if(Array.isArray(s))return s;const a=e.split(".");if(a.length>=2){const e=a.pop();if(!e)return null;const s=a.join("."),i=t[s];if(!i||Array.isArray(i)||"boolean"==typeof i)return null;const n=i[e];if(Array.isArray(n))return n;if(!0===n)return null}return null})(e);if(n&&n.length>0){const e=i-s.length;return{suggestions:n.filter((e=>e.toString().toLowerCase().startsWith(s.toLowerCase()))).map((t=>({label:t.toString(),kind:Yn.eo.CompletionItemKind.Value,insertText:'"'.concat(t,'"'),range:{startLineNumber:a,startColumn:e,endLineNumber:a,endColumn:i}})))}}}if(n.match(/(\w+(?:\.\w+)*)\s+$/))return{suggestions:["&&","||","==","!=","in"].map((e=>({label:e,kind:Yn.eo.CompletionItemKind.Operator,insertText:e+" ",range:{startLineNumber:a,startColumn:i,endLineNumber:a,endColumn:i}})))};const o=n.match(/(\w+)(?:\.(\w+))*\.$/);if(o){const e=(e=>{const s=t[e];return s?Array.isArray(s)?s:"object"==typeof s?Object.keys(s):[]:[]})(o[0].slice(0,-1));if(e.length>0)return{suggestions:e.map((e=>({label:e,kind:Yn.eo.CompletionItemKind.Field,insertText:e,range:{startLineNumber:a,startColumn:i,endLineNumber:a,endColumn:i}})))}}const l=n.match(/(?:^|\s+|[&|=!<>()]|\()(\w*)$/);if(l){const e=l[1]||"",s=i-e.length;return{suggestions:Object.keys(t).filter((e=>!e.includes("."))).filter((t=>t.toLowerCase().startsWith(e.toLowerCase()))).map((e=>({label:e,kind:Yn.eo.CompletionItemKind.Class,insertText:e,range:{startLineNumber:a,startColumn:s,endLineNumber:a,endColumn:i}})))}}return{suggestions:[]}}});return()=>{e.dispose()}}),[t]),null}var Qn=s(62100),Xn=s(1643),$n=s(29064);function er(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function tr(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?er(Object(s),!0).forEach((function(t){sr(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):er(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function sr(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const ar={extraEditorClassName:"policyEditor",language:"expressionLanguage",automaticLayout:!0,minimap:{enabled:!1},lineNumbers:"off",scrollBeyondLastLine:!1,wordWrap:"on",renderLineHighlight:"none",lineNumbersMinChars:1,occurrencesHighlight:"off",stickyScroll:{enabled:!1},autoClosingBrackets:"never",autoClosingQuotes:"never",autoIndent:"keep",autoSurround:"never",codeLens:!1,folding:!1,fontFamily:"monospace",hideCursorInOverviewRuler:!0,fontSize:12,guides:{indentation:!1},links:!0,matchBrackets:"never",multiCursorLimit:1,overviewRulerBorder:!1,quickSuggestions:!1,renderControlCharacters:!1,scrollbar:{horizontal:"hidden",useShadows:!1},selectionHighlight:!1,showFoldingControls:"never",suggestOnTriggerCharacters:!0,unicodeHighlight:{ambiguousCharacters:!1,invisibleCharacters:!1},unusualLineTerminators:"auto",wordWrapColumn:400,wrappingIndent:"none",wrappingStrategy:"advanced",contextmenu:!1};function ir(e){let{value:t,onChange:s,onValidate:a,placeholder:i="user.attributes.<attribute> == <value>",className:n="",channelId:r,userAttributes:o}=e;const[l,d]=(0,A.useState)({expression:t,isValidating:!1,isValid:!0,cursorPosition:{line:1,column:1},validationErrors:[],statusBarColor:"var(--button-bg)",showTestResults:!1,testResults:null,isWaitingForValidation:!1}),c={user:["attributes"],"user.attributes":o.map((e=>e.attribute)).filter((e=>!e.includes(" ")&&""!==e.trim()))},m=(0,A.useRef)(null),u=(0,A.useRef)(null),[p,g]=(0,A.useState)(!1),h=(0,A.useRef)(),f=(0,A.useRef)();(0,A.useEffect)((()=>{d((e=>tr(tr({},e),{},{expression:t})))}),[t]),(0,A.useEffect)((()=>{u.current&&u.current.getValue()!==l.expression&&u.current.setValue(l.expression)}),[l.expression]);const E=(0,A.useCallback)((async e=>{if(!e.trim())return d((e=>tr(tr({},e),{},{isValid:!0,validationErrors:[],statusBarColor:"var(--button-bg)",isValidating:!1,isWaitingForValidation:!1}))),void(null==a||a(!0));d((e=>tr(tr({},e),{},{isValidating:!0,isWaitingForValidation:!1})));try{const t=await O.mT.checkAccessControlExpression(e,r),s=0===t.length;d((e=>tr(tr({},e),{},{isValid:s,validationErrors:t.map((e=>"".concat(e.message," @L").concat(e.line,":").concat(e.column+1))),statusBarColor:s?"var(--online-indicator)":"var(--error-text)",isValidating:!1}))),null==a||a(s)}catch(e){d((t=>tr(tr({},t),{},{isValid:!1,validationErrors:[e.detailed_error||"Unknown error"],statusBarColor:"var(--error-text)",isValidating:!1}))),null==a||a(!1)}}),[a]);(0,A.useEffect)((()=>{f.current=E}),[E]);const b=(0,A.useMemo)((()=>(0,Zn.sg)((e=>{var t;null===(t=f.current)||void 0===t||t.call(f,e)}),1e3)),[]),v=(0,A.useCallback)((e=>{d((t=>tr(tr({},t),{},{expression:e,statusBarColor:"var(--button-bg)",validationErrors:[],isWaitingForValidation:!0}))),s(e),b(e)}),[s,b]);(0,A.useEffect)((()=>{h.current=v}),[v]),(0,A.useEffect)((()=>{t.trim()&&E(t)}),[]),(0,A.useEffect)((()=>{var e;if(!m.current||u.current)return;const t=Yn.EN.create(m.current,ar);u.current=t,t.setValue(l.expression);const s=null===(e=t.getModel())||void 0===e?void 0:e.onDidChangeContent((()=>{var e;const s=t.getValue();null===(e=h.current)||void 0===e||e.call(h,s)})),a=t.onDidChangeCursorPosition((e=>{d((t=>tr(tr({},t),{},{cursorPosition:{line:e.position.lineNumber,column:e.position.column}})))}));return Yn.EN.addKeybindingRule({keybinding:Yn.QX.CtrlCmd|Yn.DD.KeyF,command:null}),()=>{null==s||s.dispose(),null==a||a.dispose(),t.dispose(),u.current=null}}),[]);const y=(0,A.useCallback)((()=>l.validationErrors.length>0?"error":l.isValid&&"var(--online-indicator)"===l.statusBarColor?"validated":l.isValidating?"validating":l.expression.trim()?l.isWaitingForValidation?"waiting":"unvalidated":"empty"),[l]),M=(0,A.useCallback)((e=>{switch(e){case"error":return T().createElement("span",{className:"cel-editor__error"},T().createElement("i",{className:"icon icon-alert-circle-outline"}),l.validationErrors[0]);case"validated":return T().createElement("span",{className:"cel-editor__valid"},T().createElement("i",{className:"icon icon-check"}),"Valid");case"validating":return T().createElement("span",{className:"cel-editor__loading"},T().createElement("i",{className:"fa fa-spinner fa-spin"}),T().createElement(N.FormattedMessage,{id:"admin.access_control.cel.validating",defaultMessage:"Validating..."}));case"empty":return T().createElement("span",{className:"cel-editor__empty"},T().createElement(N.FormattedMessage,{id:"admin.access_control.cel.type_expression",defaultMessage:"Type an expression..."}));case"waiting":return T().createElement("span",{className:"cel-editor__waiting"},T().createElement(N.FormattedMessage,{id:"admin.access_control.cel.incomplete_expression",defaultMessage:"Incomplete expression, awaiting input..."}));default:return null}}),[l.validationErrors]);return T().createElement("div",{className:"cel-editor ".concat(n)},T().createElement(Kn,{schemas:c}),T().createElement("div",{className:"cel-editor__container","data-status-color":l.statusBarColor},!l.expression&&T().createElement("div",{className:"policy-editor-placeholder","aria-label":"CEL Expression Editor"},i),T().createElement("div",{ref:m,className:"cel-editor__input"}),T().createElement("div",{className:"cel-editor__status-bar",style:{backgroundColor:l.statusBarColor},"data-validation-state":y()},T().createElement("div",{className:"cel-editor__status-message"},M(y())),T().createElement("div",{className:"cel-editor__cursor-position"},T().createElement(N.FormattedMessage,{id:"admin.access_control.cel.line_and_column_number",defaultMessage:"L{lineNumber}:{columnNumber}",values:{lineNumber:l.cursorPosition.line,columnNumber:l.cursorPosition.column}})))),T().createElement("div",{className:"cel-editor__footer"},T().createElement("div",{className:"help-text-container"},T().createElement("div",null,T().createElement($n.$9,{message:"Write rules like `user.<attribute> == <value>`. Use `&&` / `||` (and/or) for multiple conditions. Group conditions with `()`.",onLearnMoreClick:()=>g(!0)}))),T().createElement($n.vD,{onClick:()=>d((e=>tr(tr({},e),{},{showTestResults:!0}))),disabled:!l.isValid||l.isValidating})),l.showTestResults&&T().createElement(Xn.A,{onExited:()=>d((e=>tr(tr({},e),{},{showTestResults:!1}))),isStacked:!0,actions:{openModal:()=>{},searchUsers:(e,t,s)=>(0,xi.Yz)(l.expression,e,t,s,r)}}),p&&T().createElement(Qn.A,{onExited:()=>g(!1)}))}ir.propTypes={value:k().string.isRequired,onChange:k().func.isRequired,onValidate:k().func,placeholder:k().string,className:k().string,channelId:k().string,userAttributes:k().arrayOf(k().shape({attribute:k().string.isRequired,values:k().arrayOf(k().string).isRequired})).isRequired};const nr=ir;var rr=s(68611),or=s(79692);const lr=1040;const dr=e=>{let{show:t=!0,id:s="genericModal",autoCloseOnCancelButton:a=!0,autoCloseOnConfirmButton:i=!0,enforceFocus:n=!0,keyboardEscape:r=!0,bodyPadding:o=!0,showCloseButton:l=!0,showHeader:d=!0,modalLocation:c="center",className:m,onExited:u,onEntered:p,onHide:g,preventClose:h=!1,modalHeaderText:f,modalHeaderTextId:E,modalSubheaderText:b,handleCancel:v,handleConfirm:y,handleEnterKeyPress:M,handleKeydown:_,confirmButtonText:S,confirmButtonClassName:C,cancelButtonText:w,cancelButtonClassName:R,isConfirmDisabled:O,isDeleteModal:I,container:k,ariaLabel:P,ariaLabelledby:x,errorText:D,compassDesign:L,backdrop:F,backdropClassName:U,children:B,autoFocusConfirmButton:j,headerInput:H,bodyDivider:G,bodyOverflowVisible:q,footerContent:V,footerDivider:z,appendedContent:W,headerButton:Y,dataTestId:Z,delayFocusTrap:J,isStacked:K=!1}=e;const Q=(0,N.useIntl)(),X=(0,A.useRef)(null),[$,ee]=(0,A.useState)(t),te=(0,A.useCallback)((()=>{h||ee(!1),null==g||g()}),[g,h]);(0,or.r)($,X,{delayMs:J?500:void 0});const{shouldRenderBackdrop:se,modalStyle:ae}=function(e,t){const[s,a]=(0,A.useState)(!e),[i,n]=(0,A.useState)({modal:1050,backdrop:lr}),r=(0,A.useRef)(null),o=(0,A.useRef)(null),l=(0,A.useRef)(null),d=(0,A.useRef)(null);return(0,A.useLayoutEffect)((()=>{if(e)return t?((()=>{if(a(!0),n({modal:1060,backdrop:1059}),"undefined"!=typeof document){const e=document.querySelectorAll(".modal-backdrop");if(e.length>0){const t=e[e.length-1];l.current=t,o.current=t.style.zIndex||String(lr),d.current=t.style.opacity||"0.5",t.style.transition="opacity 150ms ease-in-out",t.style.opacity="0"}}})(),()=>{l.current&&(o.current&&(l.current.style.zIndex=o.current),d.current&&(l.current.style.transition="opacity 150ms ease-in-out",l.current.style.opacity=d.current),l.current=null,o.current=null,d.current=null)}):(a(!1),void n({modal:1050,backdrop:lr}))}),[t,e]),{shouldRenderBackdrop:s,modalStyle:(0,A.useMemo)((()=>e?{zIndex:i.modal}:{}),[e,i.modal]),parentModalRef:r}}(Boolean(K),$);(0,A.useEffect)((()=>{ee(t)}),[t]);const ie=(0,A.useCallback)((e=>{e.preventDefault(),a&&te(),null==v||v()}),[a,te,v]),ne=(0,A.useCallback)((e=>{e.preventDefault(),i&&te(),null==y||y()}),[i,te,y]),re=(0,A.useCallback)((e=>{if("Enter"===e.key){if(e.nativeEvent.isComposing)return;y&&i&&te(),null==M||M()}null==_||_(e)}),[y,i,te,M,_]);let le,de;if(y){const e=I?"delete":"confirm";let t=T().createElement(N.FormattedMessage,{id:"generic_modal.confirm",defaultMessage:"Confirm"});S&&(t=S),le=T().createElement("button",{autoFocus:j,type:"submit",className:oe()("GenericModal__button btn btn-primary",e,C,{disabled:O}),onClick:ne,disabled:O},t)}if(v){let e=T().createElement(N.FormattedMessage,{id:"generic_modal.cancel",defaultMessage:"Cancel"});w&&(e=w),de=T().createElement("button",{type:"button",className:oe()("GenericModal__button btn btn-tertiary",R),onClick:ie},e)}const ce=f&&T().createElement("div",{className:"GenericModal__header"},T().createElement("h1",{id:E||"genericModalLabel",className:"modal-title"},f),Y),me={top:"GenericModal__location--top",center:"GenericModal__location--center",bottom:"GenericModal__location--bottom"}[c],ue=x||"genericModalLabel";return T().createElement(hn.Modal,{id:s,role:"none","aria-label":P,"aria-labelledby":ue,"aria-modal":"true",dialogClassName:oe()(me,"a11y__modal GenericModal",{GenericModal__compassDesign:L,"modal--overflow":q},m),show:$,restoreFocus:!0,enforceFocus:n,onHide:te,onExited:u,backdrop:!!se&&F,backdropStyle:K?{zIndex:1051}:void 0,backdropClassName:U,container:k,keyboard:r,onEntered:p,"data-testid":Z,style:ae},T().createElement("div",{ref:X,onKeyDown:re,className:"GenericModal__wrapper GenericModal__wrapper-enter-key-press-catcher"},d&&T().createElement(hn.Modal.Header,{closeButton:!1},T().createElement("div",{className:"GenericModal__header__text_container"},L&&T().createElement(T().Fragment,null,ce,H),b&&T().createElement("div",{className:"modal-subheading-container"},T().createElement("div",{id:"genericModalSubheading",className:"modal-subheading"},b))),l&&T().createElement("button",{type:"button",className:"close",onClick:te,"aria-label":Q.formatMessage({id:"generic_modal.close",defaultMessage:"Close"})},T().createElement("span",{"aria-hidden":"true"},"×"),T().createElement("span",{className:"sr-only"},T().createElement(N.FormattedMessage,{id:"generic_modal.close",defaultMessage:"Close"})))),T().createElement(hn.Modal.Body,{className:oe()({divider:G,"overflow-visible":q})},L?D&&T().createElement("div",{className:"genericModalError"},T().createElement("i",{className:"icon icon-alert-outline"}),T().createElement("span",null,D)):ce,T().createElement("div",{className:oe()("GenericModal__body",{padding:o})},B)),(de||le||V)&&T().createElement(hn.Modal.Footer,{className:oe()({divider:z})},de||le?T().createElement(T().Fragment,null,de,le):V),Boolean(W)&&W))};dr.propTypes={className:k().string,onExited:k().func,onEntered:k().func,onHide:k().func,preventClose:k().bool,modalHeaderText:k().node,modalHeaderTextId:k().string,modalSubheaderText:k().node,show:k().bool,handleCancel:k().func,handleConfirm:k().func,handleEnterKeyPress:k().func,handleKeydown:k().func,confirmButtonText:k().node,confirmButtonClassName:k().string,cancelButtonText:k().node,cancelButtonClassName:k().string,isConfirmDisabled:k().bool,isDeleteModal:k().bool,id:k().string,autoCloseOnCancelButton:k().bool,autoCloseOnConfirmButton:k().bool,enforceFocus:k().bool,ariaLabel:k().string,ariaLabelledby:k().string};const cr=dr;function mr(e){let{active:t,onExited:s,onConfirm:a,channelsAffected:i}=e;const{formatMessage:n}=(0,N.useIntl)(),[r,o]=(0,A.useState)(!0);return T().createElement(cr,{className:"PolicyConfirmationModal",show:!0,onExited:s,onHide:s,compassDesign:!0,modalHeaderText:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.save_policy_confirmation_title",defaultMessage:"Save access control policy "}),modalSubheaderText:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.save_policy_confirmation_subheader",defaultMessage:"{count} channels will be affected.",values:{count:i}}),footerContent:T().createElement("div",null,T().createElement("button",{type:"button",className:"btn-cancel",onClick:s},n({id:"admin.access_control.edit_policy.cancel",defaultMessage:"Cancel"})),T().createElement("button",{type:"button",className:r?"btn-apply":"btn-save",onClick:()=>a(r)},n(r?{id:"admin.access_control.edit_policy.apply_policy",defaultMessage:"Apply policy"}:{id:"admin.access_control.edit_policy.save_policy",defaultMessage:"Save policy"})))},T().createElement("div",{className:"body"},n(t?{id:"admin.access_control.policy.save_policy_confirmation_body",defaultMessage:"Applying this policy will allow users with the appropriate attribute values to be added to the selected channels. Existing channel members will be removed from these channels if they are not assigned the values defined in this access policy."}:{id:"admin.access_control.policy.save_policy_confirmation_body.inactive",defaultMessage:"Only users who match the attribute values configured below can be added to the selected channels. Existing channel members will be removed from these channels if they are not assigned the values defined in this access policy."})),T().createElement("div",{className:"enforce-toggle"},T().createElement("label",{className:"enforce-checkbox-label"},T().createElement("input",{type:"checkbox",checked:r,onChange:e=>o(e.target.checked)}),T().createElement("span",null,n({id:"admin.access_control.policy.enforce_immediately",defaultMessage:"Enforce policy immediately"})))),T().createElement("div",{className:"confirmation"},n(r?{id:"admin.access_control.policy.channels_affected",defaultMessage:"Are you sure you want to save and apply the access control policy?"}:{id:"admin.access_control.policy.save_only",defaultMessage:"Are you sure you want to save this access control policy?"})))}function ur(e){var t,s;let{policy:a,policyId:i,actions:n,accessControlSettings:r}=e;const[o,l]=(0,A.useState)((null==a?void 0:a.name)||""),[d,c]=(0,A.useState)((null==a||null===(t=a.rules)||void 0===t||null===(s=t[0])||void 0===s?void 0:s.expression)||""),[m,u]=(0,A.useState)((null==a?void 0:a.active)||!1),[p,g]=(0,A.useState)(void 0),[h,f]=(0,A.useState)(!1),[E,b]=(0,A.useState)("table"),[y,M]=(0,A.useState)({removed:{},added:{},removedCount:0}),[_,S]=(0,A.useState)(!1),[C,w]=(0,A.useState)(0),[R,O]=(0,A.useState)([]),[I,k]=(0,A.useState)(!1),[P,x]=(0,A.useState)(!1),[D,L]=(0,A.useState)(!1),{formatMessage:F}=(0,N.useIntl)(),U=(0,An.V)();(0,A.useEffect)((()=>{H()}),[i]);const B=e=>!e||e.split("&&").every((e=>{const t=e.trim();return t.match(/^user\.attributes\.\w+\s*(==|!=)\s*['"][^'"]*['"]$/)||t.match(/^user\.attributes\.\w+\s+in\s+\[.*?\]$/)||t.match(/^((\[.*?\])||['"][^'"]*['"].*?)\s+in\s+user\.attributes\.\w+$/)||t.match(/^user\.attributes\.\w+\.startsWith\(['"][^'"]*['"].*?\)$/)||t.match(/^user\.attributes\.\w+\.endsWith\(['"][^'"]*['"].*?\)$/)||t.match(/^user\.attributes\.\w+\.contains\(['"][^'"]*['"].*?\)$/)})),H=async()=>{const e=U.getAccessControlFields("",100).then((e=>{e.data&&O(e.data),k(!0)}));if(i){const t=n.fetchPolicy(i).then((e=>{var t,s,a,i,n;l((null===(t=e.data)||void 0===t?void 0:t.name)||""),c((null===(s=e.data)||void 0===s||null===(a=s.rules)||void 0===a||null===(i=a[0])||void 0===i?void 0:i.expression)||""),u((null===(n=e.data)||void 0===n?void 0:n.active)||!1)})),s=n.searchChannels(i,"",{per_page:10}).then((e=>{var t;w((null===(t=e.data)||void 0===t?void 0:t.total_count)||0)}));await Promise.all([e,t,s])}else await e},G=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=!0,s=i;if(await n.createPolicy({id:s||"",name:o,rules:[{expression:d,actions:["*"]}],type:"parent",version:"v0.2"}).then((e=>{var a,i,n,r,o,d;if(e.error)return g(e.error.message),x(!1),void(t=!1);s=null===(a=e.data)||void 0===a?void 0:a.id,l((null===(i=e.data)||void 0===i?void 0:i.name)||""),c((null===(n=e.data)||void 0===n||null===(r=n.rules)||void 0===r||null===(o=r[0])||void 0===o?void 0:o.expression)||""),u((null===(d=e.data)||void 0===d?void 0:d.active)||!1)})),s&&t){try{await n.updateAccessControlPolicyActive(s,m)}catch(e){return g(F({id:"admin.access_control.policy.edit_policy.error.update_active_status",defaultMessage:"Error updating policy active status: {error}"},{error:e.message})),x(!1),void(t=!1)}if(t)try{y.removedCount>0&&await n.unassignChannelsFromAccessControlPolicy(s,Object.keys(y.removed)),Object.keys(y.added).length>0&&await n.assignChannelsToAccessControlPolicy(s,Object.keys(y.added)),M({removed:{},added:{},removedCount:0})}catch(e){return g(F({id:"admin.access_control.policy.edit_policy.error.assign_channels",defaultMessage:"Error assigning channels: {error}"},{error:e.message})),x(!1),void(t=!1)}if(e)try{await U.createAccessControlSyncJob({policy_id:s})}catch(e){return g(F({id:"admin.access_control.policy.edit_policy.error.create_job",defaultMessage:"Error creating job: {error}"},{error:e.message})),x(!1),void(t=!1)}S(!1),x(!1),n.setNavigationBlocked(!1),(0,Li.J)().push("/admin_console/system_attributes/attribute_based_access_control")}else x(!1)},q=()=>C>y.removedCount||Object.keys(y.added).length>0;return T().createElement("div",{className:"wrapper--fixed AccessControlPolicySettings"},T().createElement(nt,{withBackButton:!0},T().createElement("div",null,T().createElement(tt.A,{to:"/admin_console/system_attributes/attribute_based_access_control",className:"fa fa-angle-left back"}),T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.title",defaultMessage:"Edit Access Control Policy"}))),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement("div",{className:"admin-console__setting-group"},T().createElement(ns.A,{id:"admin.access_control.policy.edit_policy.policyName",label:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.policyName",defaultMessage:"Access control policy name:"}),value:o,placeholder:F({id:"admin.access_control.policy.edit_policy.policyName.placeholder",defaultMessage:"Add a unique policy name"}),onChange:(e,t)=>{l(t),S(!0),n.setNavigationBlocked(!0)},labelClassName:"col-sm-4 vertically-centered-label",inputClassName:"col-sm-8",autoFocus:void 0===i}),T().createElement(j,{id:"admin.access_control.policy.edit_policy.autoSyncMembership",label:T().createElement("div",{className:"vertically-centered-label"},T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.autoSyncMembership",defaultMessage:"Auto-add members based on access rules:"})),value:m,onChange:(e,t)=>{u(t),S(!0),n.setNavigationBlocked(!0)},setByEnv:!1,helpText:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.autoSyncMembership.description",defaultMessage:"Users who match the attribute values configured below will be automatically added as new members. Regardless of this setting, users who later no longer match the configured attribute values will be removed from the channel after the next sync."})})),I&&0===R.length&&T().createElement("div",{className:"admin-console__warning-notice"},T().createElement(Cn.A,{type:"warning",title:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.notice.title",defaultMessage:"Please add user attributes and values to use Attribute-Based Access Control"}),text:F({id:"admin.access_control.policy.edit_policy.notice.text",defaultMessage:"You havent configured any user attributes yet. Attribute-Based Access Control requires user attributes that are either synced from an external system (like LDAP or SAML) or manually configured and enabled on this server. To start using attribute based access, please configure user attributes in System Attributes."}),primaryButton:{text:F({id:"admin.access_control.policy.edit_policy.notice.button",defaultMessage:"Configure user attributes"}),onClick:()=>{(0,Li.J)().push("/admin_console/system_attributes/user_attributes")}}})),T().createElement(mn,{expanded:!0,className:"console"},T().createElement(mn.Header,null,T().createElement(pn,{title:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.access_rules.title",defaultMessage:"Attribute-based access rules"}),subtitle:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.access_rules.subtitle",defaultMessage:"Select user attributes and values as rules to restrict channel membership."}),buttonText:"table"===E?T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.switch_to_advanced",defaultMessage:"Switch to Advanced Mode"}):T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.switch_to_simple",defaultMessage:"Switch to Simple Mode"}),onClick:()=>b("table"===E?"cel":"table"),isDisabled:"cel"===E&&!B(d),tooltipText:"cel"!==E||B(d)?void 0:F({id:"admin.access_control.policy.edit_policy.complex_expression_tooltip",defaultMessage:"Complex expression detected. Simple expressions editor is not available at the moment."})})),T().createElement(mn.Body,null,"cel"===E?T().createElement(nr,{value:d,onChange:e=>{c(e),S(!0),n.setNavigationBlocked(!0)},onValidate:()=>{},userAttributes:R.filter((e=>{var t,s;return!!r.EnableUserManagedAttributes||(null===(t=e.attrs)||void 0===t?void 0:t.ldap)||(null===(s=e.attrs)||void 0===s?void 0:s.saml)})).map((e=>({attribute:e.name,values:[]})))}):T().createElement(rr.Ay,{value:d,onChange:e=>{c(e),S(!0),n.setNavigationBlocked(!0)},onValidate:()=>{},userAttributes:R,onParseError:()=>{b("cel")},enableUserManagedAttributes:r.EnableUserManagedAttributes,actions:U}))),T().createElement(mn,{expanded:!0,className:"console add-channels"},T().createElement(mn.Header,null,T().createElement(pn,{title:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.channel_selector.title",defaultMessage:"Assigned channels"}),subtitle:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.channel_selector.subtitle",defaultMessage:"Add channels that this attribute-based access policy will apply to."}),buttonText:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.channel_selector.addChannels",defaultMessage:"Add channels"}),onClick:()=>f(!0)})),T().createElement(mn.Body,{expanded:!0},T().createElement(Wn,{onRemoveCallback:e=>(e=>{M((t=>{var s,a;const i=v()(t);return(null===(s=i.added[e.id])||void 0===s?void 0:s.id)===e.id?delete i.added[e.id]:(null===(a=i.removed[e.id])||void 0===a?void 0:a.id)!==e.id&&(i.removedCount++,i.removed[e.id]=e),i})),S(!0),n.setNavigationBlocked(!0)})(e),channelsToRemove:y.removed,channelsToAdd:y.added,policyId:i}))),i&&T().createElement(mn,{expanded:!0,className:"console delete-policy"},T().createElement(mn.Header,null,T().createElement(pn,{title:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.delete_policy.title",defaultMessage:"Delete policy"}),subtitle:q()?T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.delete_policy.subtitle.has_resources",defaultMessage:"Remove all assigned resources (eg. Channels) to be able to delete this policy"}):T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.delete_policy.subtitle",defaultMessage:"This policy will be deleted and cannot be recovered."}),buttonText:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.delete_policy.delete",defaultMessage:"Delete"}),onClick:()=>{q()||L(!0)},isDisabled:q()}))))),h&&T().createElement(Sn,{onModalDismissed:()=>f(!1),onChannelsSelected:e=>(e=>{M((t=>{const s=v()(t);return e.forEach((e=>{var t;(null===(t=s.removed[e.id])||void 0===t?void 0:t.id)===e.id?(delete s.removed[e.id],s.removedCount--):s.added[e.id]=e})),s})),S(!0),n.setNavigationBlocked(!0)})(e),groupID:"",alreadySelected:Object.values(y.added).map((e=>e.id)),excludeTypes:["O","D","G"]}),P&&T().createElement(mr,{active:m,onExited:()=>x(!1),onConfirm:G,channelsAffected:C-y.removedCount+Object.keys(y.added).length}),D&&T().createElement(Bi.zW,{onExited:()=>L(!1),handleConfirm:async()=>{if(!i)return;let e=!0;if(y.removedCount>0)try{await n.unassignChannelsFromAccessControlPolicy(i,Object.keys(y.removed))}catch(t){g(F({id:"admin.access_control.policy.edit_policy.error.unassign_channels",defaultMessage:"Error unassigning channels: {error}"},{error:t.message})),e=!1}if(e)try{await n.deletePolicy(i)}catch(e){g(F({id:"admin.access_control.policy.edit_policy.error.delete_policy",defaultMessage:"Error deleting policy: {error}"},{error:e.message}))}e&&(0,Li.J)().push("/admin_console/system_attributes/attribute_based_access_control")},handleCancel:()=>L(!1),modalHeaderText:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.delete_confirmation.title",defaultMessage:"Confirm Policy Deletion"}),confirmButtonText:T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.delete_confirmation.confirm_button",defaultMessage:"Delete Policy"}),confirmButtonClassName:"btn btn-danger",isDeleteModal:!0,compassDesign:!0},T().createElement(N.FormattedMessage,{id:"admin.access_control.policy.edit_policy.delete_confirmation.message",defaultMessage:"Are you sure you want to delete this policy? This action cannot be undone."})),T().createElement("div",{className:"admin-console-save"},T().createElement(st.A,{disabled:!_,onClick:()=>{(0===o.length?(g(F({id:"admin.access_control.policy.edit_policy.error.name_required",defaultMessage:"Please add a name to the policy"})),0):0!==d.length||(g(F({id:"admin.access_control.policy.edit_policy.error.expression_required",defaultMessage:"Please add an expression to the policy"})),0))&&(q()?x(!0):G())},defaultMessage:T().createElement(N.FormattedMessage,{id:"admin.access_control.edit_policy.save",defaultMessage:"Save"})}),T().createElement(tt.A,{className:"btn btn-quaternary",to:"/admin_console/system_attributes/attribute_based_access_control"},T().createElement(N.FormattedMessage,{id:"admin.access_control.edit_policy.cancel",defaultMessage:"Cancel"})),p&&T().createElement("span",{className:"EditPolicy__error"},T().createElement("i",{className:"icon icon-alert-outline"}),T().createElement(N.FormattedMessage,{id:"admin.access_control.edit_policy.serverError",defaultMessage:"There are errors in the form above: {serverError}",values:{serverError:p}}))))}mr.propTypes={active:k().bool.isRequired,onExited:k().func.isRequired,onConfirm:k().func.isRequired,channelsAffected:k().number.isRequired},ur.propTypes={policyId:k().string,actions:k().shape({fetchPolicy:k().func.isRequired,createPolicy:k().func.isRequired,deletePolicy:k().func.isRequired,searchChannels:k().func.isRequired,setNavigationBlocked:k().func.isRequired,assignChannelsToAccessControlPolicy:k().func.isRequired,unassignChannelsFromAccessControlPolicy:k().func.isRequired,createJob:k().func.isRequired,updateAccessControlPolicyActive:k().func.isRequired}).isRequired};const pr=ur,gr=(0,a.connect)((function(e,t){const s=t.match.params.policy_id;return{policy:(0,on.Ar)(e,s),policyId:s,accessControlSettings:(0,on.Nh)(e)}}),(function(e){return{actions:(0,i.zH)({fetchPolicy:xi.Ar,createPolicy:xi.IS,deletePolicy:xi.fQ,searchChannels:xi.U8,assignChannelsToAccessControlPolicy:xi.GF,unassignChannelsFromAccessControlPolicy:xi.kj,setNavigationBlocked:h.Jb,createJob:Ct._S,updateAccessControlPolicyActive:xi.lJ},e)}}))(pr),hr=T().createElement("tr",null,T().createElement("td",null,T().createElement(N.FormattedMessage,{id:"admin.connectionSecurityNone",defaultMessage:"None"})),T().createElement("td",null,T().createElement(N.FormattedMessage,{id:"admin.connectionSecurityNoneDescription",defaultMessage:"Mattermost will connect over an insecure connection."}))),fr=T().createElement("tr",null,T().createElement("td",null,T().createElement(N.FormattedMessage,{id:"admin.connectionSecurityTls",defaultMessage:"TLS"})),T().createElement("td",null,T().createElement(N.FormattedMessage,{id:"admin.connectionSecurityTlsDescription",defaultMessage:"Encrypts the communication between Mattermost and your server."}))),Er=T().createElement("tr",null,T().createElement("td",null,T().createElement(N.FormattedMessage,{id:"admin.connectionSecurityStart",defaultMessage:"STARTTLS"})),T().createElement("td",null,T().createElement(N.FormattedMessage,{id:"admin.connectionSecurityStartDescription",defaultMessage:"Takes an existing insecure connection and attempts to upgrade it to a secure connection using TLS."}))),br=T().createElement("table",{className:"table table-bordered",cellPadding:"5"},T().createElement("tbody",null,hr,fr,Er)),vr=T().createElement("table",{className:"table table-bordered",cellPadding:"5"},T().createElement("tbody",null,hr,fr,Er)),yr=T().createElement("table",{className:"table table-bordered",cellPadding:"5"},T().createElement("tbody",null,hr,fr)),Mr=T().createElement("div",null,T().createElement("table",{className:"table table-bordered",cellPadding:"5"},T().createElement("tbody",null,T().createElement("tr",null,T().createElement("td",null,T().createElement(N.FormattedMessage,{id:"admin.webserverModeGzip",defaultMessage:"gzip"})),T().createElement("td",null,T().createElement(N.FormattedMessage,{id:"admin.webserverModeGzipDescription",defaultMessage:"The Mattermost server will serve static files compressed with gzip."}))),T().createElement("tr",null,T().createElement("td",null,T().createElement(N.FormattedMessage,{id:"admin.webserverModeUncompressed",defaultMessage:"Uncompressed"})),T().createElement("td",null,T().createElement(N.FormattedMessage,{id:"admin.webserverModeUncompressedDescription",defaultMessage:"The Mattermost server will serve static files uncompressed."}))),T().createElement("tr",null,T().createElement("td",null,T().createElement(N.FormattedMessage,{id:"admin.webserverModeDisabled",defaultMessage:"Disabled"})),T().createElement("td",null,T().createElement(N.FormattedMessage,{id:"admin.webserverModeDisabledDescription",defaultMessage:"The Mattermost server will not serve static files."}))))),T().createElement("p",{className:"help-text"},T().createElement(N.FormattedMessage,{id:"admin.webserverModeHelpText",defaultMessage:"gzip compression applies to static content files. It is recommended to enable gzip to improve performance unless your environment has specific restrictions, such as a web proxy that distributes gzip files poorly."}))),_r=[{value:"DEBUG",display_name:(0,N.defineMessage)({id:"admin.log.levelOptions.DEBUG",defaultMessage:"DEBUG"})},{value:"INFO",display_name:(0,N.defineMessage)({id:"admin.log.levelOptions.INFO",defaultMessage:"INFO"})},{value:"ERROR",display_name:(0,N.defineMessage)({id:"admin.log.levelOptions.ERROR",defaultMessage:"ERROR"})},{value:"WARN",display_name:(0,N.defineMessage)({id:"admin.log.levelOptions.WARN",defaultMessage:"WARN"})}];var Sr=s(6995);const Cr=e=>{const{id:t,onChange:s,disabled:i,setByEnv:n,label:r,helpText:o,value:l}=e,{status:d,refetchStatus:m}=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const[t,s]=(0,A.useState)(""),i=(0,a.useDispatch)(),n=(0,a.useSelector)(c.Ay),r=(0,A.useCallback)((async()=>{if("true"===n.Cloud){const e=await i((0,Sr.JN)());e.data&&s(e.data.state)}else s("stable")}),[i,n]);return(0,A.useEffect)((()=>{if(r(),e&&"true"===n.Cloud){const e=setInterval(r,5e3);return()=>clearInterval(e)}}),[r,e,n]),{status:t,refetchStatus:r}}(!0),{formatMessage:u}=(0,N.useIntl)(),[p,g]=T().useState(l||null),[f,E]=T().useState(null);if(T().useEffect((()=>{l&&g(l)}),[l]),!t)return T().createElement(T().Fragment,null);const b=(e,t)=>{s(e,t)},v=(e,t)=>i||"stable"===d?t=>T().createElement(e,t):s=>T().createElement(ys.A,{title:t},T().createElement("div",null,T().createElement(e,s))),y=u({id:"admin.audit_logging_experimental.certificate.tooltip",defaultMessage:"A previous update is still in progress. Please wait."}),M=v(Wt,y),_=v(yt,y);if(p){const e=(e,t)=>{(0,h.VX)((()=>{b(e,""),g(null),E(null),m()}),(e=>{t(),g(null),E(e.message),m()}))};return T().createElement(M,{id:t,label:r,helpText:u({id:"admin.audit_logging_experimental.certificate.remove_help_text",defaultMessage:"Remove the certificate used for audit logging encryption."}),removeButtonText:u({id:"admin.audit_logging_experimental.certificate.remove_button",defaultMessage:"Remove Certificate"}),removingText:u({id:"admin.audit_logging_experimental.certificate.removing",defaultMessage:"Removing Certificate..."}),fileName:p,onSubmit:e,disabled:i||"stable"!==d,setByEnv:n})}return T().createElement(_,{id:t,label:r,helpText:o,uploadingText:u({id:"admin.audit_logging_experimental.certificate.uploading",defaultMessage:"Uploading Certificate..."}),disabled:i||"stable"!==d,fileType:".crt,.cer,.cert,.pem",onSubmit:(e,t,s)=>{(t=>{(0,h.yr)(t,(t=>{b(e,t),g(t),E(null),m(),s&&"function"==typeof s&&s()}),(e=>{s&&"function"==typeof s&&s(e.message)}))})(t)},error:f||void 0})};Cr.propTypes={id:k().string,config:k().any.isRequired,license:k().any.isRequired,value:k().any.isRequired,onChange:k().func.isRequired,disabled:k().bool.isRequired,setByEnv:k().bool.isRequired,label:k().string.isRequired};const Ar=Cr;function Tr(){const{formatMessage:e}=(0,N.useIntl)();return T().createElement("i",{className:"fa fa-refresh",title:e({id:"generic_icons.reload",defaultMessage:"Reload Icon"})})}function Nr(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class wr extends T().PureComponent{constructor(e){super(e),Nr(this,"reload",(()=>{this.setState({loadingReports:!0}),this.props.actions.getComplianceReports().then((()=>this.setState({loadingReports:!1})))})),Nr(this,"runReport",(e=>{var t,s,a;e.preventDefault(),this.setState({runningReport:!0});const i={};i.desc=null===(t=this.descInput.current)||void 0===t?void 0:t.value,i.emails=null===(s=this.emailsInput.current)||void 0===s?void 0:s.value,i.keywords=null===(a=this.keywordsInput.current)||void 0===a?void 0:a.value,i.start_at=this.fromInput.current?Date.parse(this.fromInput.current.value):void 0,i.end_at=this.toInput.current?Date.parse(this.toInput.current.value):void 0,this.props.actions.createComplianceReport(i).then((e=>{let{data:t}=e;t&&(this.emailsInput.current&&(this.emailsInput.current.value=""),this.keywordsInput.current&&(this.keywordsInput.current.value=""),this.descInput.current&&(this.descInput.current.value=""),this.fromInput.current&&(this.fromInput.current.value=""),this.toInput.current&&(this.toInput.current.value="")),this.setState({runningReport:!1}),this.props.actions.getComplianceReports()}))})),this.state={loadingReports:!0},this.descInput=T().createRef(),this.emailsInput=T().createRef(),this.fromInput=T().createRef(),this.keywordsInput=T().createRef(),this.toInput=T().createRef()}componentDidMount(){this.props.isLicensed&&this.props.enabled&&this.props.actions.getComplianceReports().then((()=>this.setState({loadingReports:!1})))}getDateTime(e){const t=new Date(e);return T().createElement("span",{style:Rr.date},T().createElement(N.FormattedDate,{value:t,day:"2-digit",month:"short",year:"numeric"})," - ",T().createElement(N.FormattedTime,{value:t,hour:"2-digit",minute:"2-digit"}))}render(){if(!this.props.isLicensed||!this.props.enabled)return T().createElement("div",null);let e=null;if(this.state.loadingReports)e=T().createElement(Na.A,null);else{const t=[];for(let e=0;e<this.props.reports.length;e++){const s=this.props.reports[e];let a="";"adhoc"===s.type&&(a=T().createElement("span",null,T().createElement(N.FormattedMessage,{id:"admin.compliance_reports.from",defaultMessage:"From:"})," ",this.getDateTime(s.start_at),T().createElement("br",null),T().createElement(N.FormattedMessage,{id:"admin.compliance_reports.to",defaultMessage:"To:"})," ",this.getDateTime(s.end_at),T().createElement("br",null),T().createElement(N.FormattedMessage,{id:"admin.compliance_reports.emails",defaultMessage:"Emails:"})," ",s.emails,T().createElement("br",null),T().createElement(N.FormattedMessage,{id:"admin.compliance_reports.keywords",defaultMessage:"Keywords:"})," ",s.keywords));let i="",n="";"finished"===s.status?(i=T().createElement("a",{href:"".concat(O.mT.getBaseRoute(),"/compliance/reports/").concat(s.id,"/download")},T().createElement(N.FormattedMessage,{id:"admin.compliance_table.download",defaultMessage:"Download"})),n=T().createElement("span",{className:"status-icon-success"},T().createElement(N.FormattedMessage,{id:"admin.compliance_table.success",defaultMessage:"Success"}))):"running"===s.status?n=T().createElement("span",{className:"status-icon-warning"},T().createElement(N.FormattedMessage,{id:"admin.compliance_table.pending",defaultMessage:"Pending"})):"failed"===s.status&&(n=T().createElement("span",{className:"status-icon-error"},T().createElement(N.FormattedMessage,{id:"admin.compliance_table.failed",defaultMessage:"Failed"})));let r=s.user_id;const o=this.props.users[s.user_id];o&&(r=o.email),t[e]=T().createElement("tr",{key:s.id},T().createElement("td",null,n),T().createElement("td",{style:Rr.dataCell},i),T().createElement("td",null,this.getDateTime(s.create_at)),T().createElement("td",null,s.count),T().createElement("td",null,s.type),T().createElement("td",{style:Rr.dataCell},s.desc),T().createElement("td",null,r),T().createElement("td",{style:Rr.dataCell},a))}e=T().createElement("div",{style:Rr.content},T().createElement("table",{className:"table"},T().createElement("thead",null,T().createElement("tr",null,T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.compliance_table.status",defaultMessage:"Status"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.compliance_table.files",defaultMessage:"Files"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.compliance_table.timestamp",defaultMessage:"Timestamp"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.compliance_table.records",defaultMessage:"Records"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.compliance_table.type",defaultMessage:"Type"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.compliance_table.desc",defaultMessage:"Description"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.compliance_table.userId",defaultMessage:"Requested By"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.compliance_table.params",defaultMessage:"Params"})))),T().createElement("tbody",null,t)))}let t="";return this.props.serverError&&(t=T().createElement("div",{className:"form-group has-error",style:Rr.serverError},T().createElement("label",{className:"control-label"},this.props.serverError))),T().createElement("div",{className:"panel compliance-panel"},T().createElement("h4",null,T().createElement(N.FormattedMessage,{id:"admin.compliance_reports.title",defaultMessage:"Compliance Reports"})),T().createElement("div",{className:"row"},T().createElement("div",{className:"col-sm-6 col-md-4 form-group"},T().createElement("label",{htmlFor:"desc"},T().createElement(N.FormattedMessage,{id:"admin.compliance_reports.desc",defaultMessage:"Job Name:"})),T().createElement(we.A,{type:"text",className:"form-control",id:"desc",ref:this.descInput,placeholder:(0,N.defineMessage)({id:"admin.compliance_reports.desc_placeholder",defaultMessage:'E.g. "Audit 445 for HR"'}),disabled:this.props.readOnly})),T().createElement("div",{className:"col-sm-3 col-md-2 form-group"},T().createElement("label",{htmlFor:"from"},T().createElement(N.FormattedMessage,{id:"admin.compliance_reports.from",defaultMessage:"From:"})),T().createElement(we.A,{type:"text",className:"form-control",id:"from",ref:this.fromInput,placeholder:(0,N.defineMessage)({id:"admin.compliance_reports.from_placeholder",defaultMessage:'E.g. "2016-03-11"'}),disabled:this.props.readOnly})),T().createElement("div",{className:"col-sm-3 col-md-2 form-group"},T().createElement("label",{htmlFor:"to"},T().createElement(N.FormattedMessage,{id:"admin.compliance_reports.to",defaultMessage:"To:"})),T().createElement(we.A,{type:"text",className:"form-control",id:"to",ref:this.toInput,placeholder:(0,N.defineMessage)({id:"admin.compliance_reports.to_placeholder",defaultMessage:'E.g. "2016-03-15"'}),disabled:this.props.readOnly}))),T().createElement("div",{className:"row"},T().createElement("div",{className:"col-sm-6 col-md-4 form-group"},T().createElement("label",{htmlFor:"emails"},T().createElement(N.FormattedMessage,{id:"admin.compliance_reports.emails",defaultMessage:"Emails:"})),T().createElement(we.A,{type:"text",className:"form-control",id:"emails",ref:this.emailsInput,placeholder:(0,N.defineMessage)({id:"admin.compliance_reports.emails_placeholder",defaultMessage:'E.g. "bill@example.com, bob@example.com"'}),disabled:this.props.readOnly})),T().createElement("div",{className:"col-sm-6 col-md-4 form-group"},T().createElement("label",{htmlFor:"keywords"},T().createElement(N.FormattedMessage,{id:"admin.compliance_reports.keywords",defaultMessage:"Keywords:"})),T().createElement(we.A,{type:"text",className:"form-control",id:"keywords",ref:this.keywordsInput,placeholder:(0,N.defineMessage)({id:"admin.compliance_reports.keywords_placeholder",defaultMessage:'E.g. "shorting stock"'}),disabled:this.props.readOnly}))),T().createElement("div",{className:"clearfix"},T().createElement("button",{id:"run-button",type:"submit",className:"btn btn-primary",onClick:this.runReport,disabled:this.props.readOnly},T().createElement(N.FormattedMessage,{id:"admin.compliance_reports.run",defaultMessage:"Run Compliance Report"}))),t,T().createElement("div",{className:"text-right"},T().createElement("button",{type:"submit",className:"btn btn-tertiary",disabled:this.state.runningReport,onClick:this.reload},T().createElement(Tr,null),T().createElement(N.FormattedMessage,{id:"admin.compliance_reports.reload",defaultMessage:"Reload Completed Compliance Reports"}))),T().createElement("div",{className:"compliance-panel__table"},e))}}Nr(wr,"propTypes",{isLicensed:k().bool.isRequired,enabled:k().bool.isRequired,reports:k().array.isRequired,serverError:k().string,readOnly:k().bool,actions:k().shape({getComplianceReports:k().func.isRequired,createComplianceReport:k().func.isRequired}).isRequired});const Rr={content:{margin:10},greenStatus:{color:"green"},redStatus:{color:"red"},dataCell:{whiteSpace:"nowrap"},date:{whiteSpace:"nowrap"},serverError:{marginTop:"10px"}},Or=(0,S.Mz)("getUsersForReports",(e=>e.entities.users.profiles),(e=>e.entities.admin.complianceReports),((e,t)=>{const s={};return Object.values(t).forEach((t=>{const a=e[t.user_id];a&&(s[a.id]=a)})),s})),Ir=(0,a.connect)((function(e){const t="true"===(0,c.Ay)(e).IsLicensed;let s=!1;const a=(0,d.zj)(e);let i;a&&a.ComplianceSettings&&(s=a.ComplianceSettings.Enable);const n=e.requests.admin.createCompliance.error;return n&&(i=n.message),{isLicensed:t,enabled:s,reports:Object.values((0,d.$q)(e)).sort(((e,t)=>t.create_at-e.create_at)),serverError:i,users:Or(e)}}),(function(e){return{actions:(0,i.zH)({getComplianceReports:n.$q,createComplianceReport:n.O},e)}}))(wr);var kr=s(43957);function Pr(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const xr=(0,N.defineMessages)({reload:{id:"admin.audits.reload",defaultMessage:"Reload User Activity Logs"}}),Dr=[xr.reload];class Lr extends T().PureComponent{constructor(e){super(e),Pr(this,"reload",(()=>{this.setState({loadingAudits:!0}),this.props.actions.getAudits().then((()=>this.setState({loadingAudits:!1})))})),Pr(this,"activityLogHeader",(()=>T().createElement("div",{style:{clear:"both"}},T().createElement("h4",{style:{display:"inline-block",marginBottom:"6px"}},T().createElement(N.FormattedMessage,{id:"admin.complianceMonitoring.userActivityLogsTitle",defaultMessage:"User Activity Logs"})),T().createElement("button",{type:"submit",className:"btn btn-tertiary pull-right",onClick:this.reload},T().createElement(Tr,null),T().createElement(N.FormattedMessage,xr.reload))))),Pr(this,"renderComplianceReports",(()=>this.props.isLicensed?T().createElement(Ir,{readOnly:this.props.isDisabled}):T().createElement("div",null))),this.state={loadingAudits:!0}}componentDidMount(){this.props.actions.getAudits().then((()=>this.setState({loadingAudits:!1})))}render(){let e=null;return e=this.state.loadingAudits?T().createElement(Na.A,null):T().createElement("div",null,T().createElement(kr.A,{audits:this.props.audits,showUserId:!0,showIp:!0,showSession:!0})),T().createElement("div",null,this.renderComplianceReports(),T().createElement("div",{className:"panel compliance-panel"},this.activityLogHeader(),T().createElement("div",{className:"compliance-panel__table"},e)))}}const Fr=(0,a.connect)((function(e){return{isLicensed:"true"===(0,c.Ay)(e).Compliance,audits:Object.values(d.F5(e))}}),(function(e){return{actions:(0,i.zH)({getAudits:n.F5},e)}}))(Lr);var Ur=s(86724);function Br(){const e=(0,a.useDispatch)();return(0,a.useSelector)(dt.I0)?T().createElement("div",{className:"CloudFetchError "},T().createElement("div",{className:"CloudFetchError__header "},T().createElement(N.FormattedMessage,{id:"cloud.fetch_error",defaultMessage:"Error fetching billing data. Please try again later."})),T().createElement("button",{className:"btn btn-primary",onClick:()=>{e((0,Sr.Zp)())}},T().createElement(N.FormattedMessage,{id:"cloud.fetch_error.retry",defaultMessage:"Retry"}))):null}const jr=e=>T().createElement("svg",{width:e.width?e.width.toString():"519",height:e.height?e.height.toString():"396",viewBox:"0 0 152 116",fill:"none",xmlns:"http://www.w3.org/2000/svg"},T().createElement("rect",{y:"13.5",width:"126",height:"36",rx:"5.625",fill:"#1C58D9",fillOpacity:"0.12"}),T().createElement("rect",{x:"21",y:"54",width:"130.5",height:"37.5",rx:"5.625",fill:"#1C58D9",fillOpacity:"0.12"}),T().createElement("rect",{x:"42.0417",y:"14.0039",width:"72.1826",height:"88.3429",rx:"3",fill:"#28427B"}),T().createElement("rect",{x:"34.5",width:"75.7575",height:"98.0391",rx:"3",fill:"white"}),T().createElement("rect",{x:"35.25",y:"0.75",width:"74.2575",height:"96.5391",rx:"2.25",stroke:"#3F4350",strokeOpacity:"0.8",strokeWidth:"1.5"}),T().createElement("path",{d:"M43.5 10.5H56.4282",stroke:"#3F4350",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),T().createElement("path",{d:"M43.5 75H85.5168",stroke:"#3F4350",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),T().createElement("path",{d:"M43.5 51H85.5168",stroke:"#3F4350",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),T().createElement("path",{d:"M43.5 16.5H67.2018",stroke:"#3F4350",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),T().createElement("path",{d:"M43.5 87H98.445",stroke:"#3F4350",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),T().createElement("path",{d:"M43.5 63H98.445",stroke:"#3F4350",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),T().createElement("path",{d:"M43.5 39H98.445",stroke:"#3F4350",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),T().createElement("path",{d:"M43.5 22.5H53.1962",stroke:"#3F4350",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),T().createElement("path",{d:"M57 22.5H66.6962",stroke:"#3F4350",strokeOpacity:"0.48",strokeWidth:"1.5",strokeLinecap:"round"}),T().createElement("path",{opacity:"0.32",d:"M93.211 114.582C84.2055 114.401 76.737 111.318 70.8056 105.332C64.8742 99.3451 61.7723 91.8887 61.5 82.9622C61.7677 74.0311 64.8696 66.5724 70.8056 60.586C76.7416 54.5996 84.2101 51.5162 93.211 51.3359C102.129 51.5208 109.554 54.6042 115.485 60.586C121.416 66.5678 124.518 74.0265 124.79 82.9622C124.514 91.8933 121.412 99.3497 115.485 105.332C109.558 111.313 102.134 114.397 93.211 114.582Z",fill:"#3F4350",fillOpacity:"0.32"}),T().createElement("path",{d:"M94.4203 108.995C85.6017 108.816 78.3286 105.802 72.5478 99.9677C66.7635 94.1297 63.7313 86.8651 63.4598 78.1261C63.7268 69.3826 66.759 62.1159 72.5476 56.2781C78.3332 50.4434 85.6064 47.43 94.4202 47.2502C103.149 47.4345 110.379 50.4467 116.162 56.2781C121.946 62.1111 124.978 69.3777 125.25 78.1261C124.974 86.87 121.941 94.1345 116.162 99.9677C110.384 105.799 103.154 108.811 94.4203 108.995Z",fill:"white",stroke:"#3F4350",strokeWidth:"1.5"}),T().createElement("path",{d:"M94.2074 102.138C87.3234 102.001 81.6143 99.6419 77.0802 95.0625C72.5461 90.4831 70.175 84.7792 69.9668 77.9508C70.1714 71.1188 72.5426 65.4132 77.0802 60.8338C81.6178 56.2544 87.3269 53.8957 94.2074 53.7578C101.024 53.8993 106.7 56.2579 111.234 60.8338C115.768 65.4096 118.139 71.1153 118.347 77.9508C118.136 84.7828 115.765 90.4867 111.234 95.0625C106.703 99.6384 101.028 101.997 94.2074 102.138Z",fill:"white"}),T().createElement("path",{d:"M94.2072 101.388C87.5103 101.251 81.9967 98.9622 77.6132 94.5348C73.2261 90.1039 70.9245 84.5918 70.7171 77.9506C70.921 71.3061 73.2226 65.7924 77.613 61.3617C82.0002 56.9341 87.5139 54.6454 94.2072 54.508C100.835 54.6488 106.316 56.9362 110.701 61.3617C115.088 65.7887 117.39 71.3023 117.597 77.9506C117.386 84.5955 115.084 90.1076 110.701 94.5348C106.32 98.96 100.839 101.247 94.2072 101.388Z",stroke:"#3F4350",strokeOpacity:"0.32",strokeWidth:"1.5"}),T().createElement("path",{d:"M94.1567 51.9434V77.948L105.647 89.4384",stroke:"#3F4350",strokeOpacity:"0.8",strokeWidth:"1.5",strokeLinejoin:"round"}),T().createElement("circle",{cx:"94.1571",cy:"77.9464",r:"2.41903",fill:"#3F4350",fillOpacity:"0.8"}));jr.propTypes={width:k().number.isRequired,height:k().number.isRequired};const Hr=jr;var Gr=s(79751),qr=s(98496),Vr=s(25660);function zr(e){var t;const s=(0,a.useDispatch)(),i=(0,a.useSelector)((e=>(0,qr.o)(e,mt.IQ.CLOUD_INVOICE_PREVIEW))),n=()=>{s((0,Gr.O)(mt.IQ.CLOUD_INVOICE_PREVIEW)),"function"==typeof e.onHide&&e.onHide()};return T().createElement(hn.Modal,{show:i,onExited:n,onHide:n,id:"cloud-invoice-preview",className:"CloudInvoicePreview",dialogClassName:"a11y__modal"},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,null,"Invoice"),T().createElement("div",{className:"subtitle"},T().createElement(N.FormattedMessage,{id:"cloud.invoice_pdf_preview.download",values:{downloadLink:t=>T().createElement(wt.A,{href:e.url||"",location:"cloud_invoice_preview"},t)}}))),T().createElement(hn.Modal.Body,null,T().createElement("div",{className:"cloud_invoice_preview_modal"},T().createElement(Vr.default,{fileInfo:{extension:"pdf",size:0,name:""},fileUrl:null!==(t=e.url)&&void 0!==t?t:"",scale:1.4,handleBgClose:()=>{}}))))}zr.propTypes={onHide:k().func,url:k().string};const Wr=zr;s(94031);var Yr=s(76401);function Zr(e){let{invoice:t}=e;const s=t.line_items.filter((e=>e.type===Yr.nv.Full)).reduce(((e,t)=>e+t.quantity),0),a=t.line_items.filter((e=>e.type===Yr.nv.Partial)).reduce(((e,t)=>e+t.quantity),0),i=t.line_items.filter((e=>e.type===Yr.nv.Metered)).reduce(((e,t)=>e+t.quantity),0),n=t.line_items.filter((e=>e.type===Yr.nv.OnPremise)).reduce(((e,t)=>e+t.quantity),0);return n?T().createElement(N.FormattedMessage,{id:"admin.billing.history.onPremSeats",defaultMessage:"{num} seats",values:{num:Math.floor(n)}}):i?s||a?T().createElement(N.FormattedMessage,{id:"admin.billing.history.fractionalAndRatedSeats",defaultMessage:"{fractionalSeats} metered seats, {fullSeats} seats at full rate, {partialSeats} seats with partial charges",values:{fractionalSeats:(0,D.Kv)(i,2),fullSeats:s.toFixed(0),partialSeats:a.toFixed(0)}}):T().createElement(N.FormattedMessage,{id:"admin.billing.history.fractionalSeats",defaultMessage:"{fractionalSeats} seats",values:{fractionalSeats:(0,D.Kv)(i,2)}}):T().createElement(N.FormattedMessage,{id:"admin.billing.history.seatsAndRates",defaultMessage:"{fullSeats} seats at full rate, {partialSeats} seats with partial charges",values:{fullSeats:s.toFixed(0),partialSeats:a.toFixed(0)}})}function Jr(e){let{invoices:t}=e;const s=(0,a.useDispatch)(),[i,n]=(0,A.useState)(void 0),[r,o]=(0,A.useState)(1),l=Object.values(t||[]).length;(0,A.useEffect)((()=>{if(t&&l){const e=Object.values(t).sort(((e,t)=>t.period_start-e.period_start));n(e.slice(r-1,r-1+4))}}),[t,r]);const d=T().createElement("div",{className:"BillingHistory__paging"},T().createElement(N.FormattedMessage,{id:"admin.billing.history.pageInfo",defaultMessage:"{startRecord} - {endRecord} of {totalRecords}",values:{startRecord:r,endRecord:Math.min(r+3,Object.values(t||[]).length),totalRecords:Object.values(t||[]).length}}),T().createElement("button",{onClick:()=>{r>4&&o(r-4)},disabled:r<=4},T().createElement("i",{className:"icon icon-chevron-left"})),T().createElement("button",{onClick:()=>{t&&r+4<l&&o(r+4)},disabled:!t||r+4>=l},T().createElement("i",{className:"icon icon-chevron-right"})));return T().createElement(T().Fragment,null,T().createElement("table",{className:"BillingHistory__table"},T().createElement("tbody",null,T().createElement("tr",{className:"BillingHistory__table-header"},T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.billing.history.date",defaultMessage:"Date"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.billing.history.description",defaultMessage:"Description"})),T().createElement("th",{className:"BillingHistory__table-headerTotal"},T().createElement(N.FormattedMessage,{id:"admin.billing.history.total",defaultMessage:"Total"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.billing.history.status",defaultMessage:"Status"})),T().createElement("th",null,"")),null==i?void 0:i.map((e=>{const t=O.mT.getInvoicePdfUrl(e.id);return T().createElement("tr",{className:"BillingHistory__table-row",key:e.id,onClick:()=>{s((0,Gr.q)({modalId:mt.IQ.CLOUD_INVOICE_PREVIEW,dialogType:Wr,dialogProps:{url:t}}))}},T().createElement("td",{"data-testid":"billingHistoryTableRow"},T().createElement(N.FormattedDate,{value:new Date(e.period_start),month:"2-digit",day:"2-digit",year:"numeric",timeZone:"UTC"})),T().createElement("td",null,T().createElement("div",null,e.current_product_name),T().createElement("div",{className:"BillingHistory__table-bottomDesc"},T().createElement(Zr,{invoice:e}))),T().createElement("td",{"data-testid":e.number,className:"BillingHistory__table-total"},T().createElement(N.FormattedNumber,{value:e.total/100,style:"currency",currency:"USD"})),T().createElement("td",{"data-testid":e.id},(e=>{switch(e){case"failed":return T().createElement("div",{className:"BillingHistory__paymentStatus failed"},T().createElement("i",{className:"icon icon-alert-outline"}),T().createElement(N.FormattedMessage,{id:"admin.billing.history.paymentFailed",defaultMessage:"Payment failed"}));case"paid":return T().createElement("div",{className:"BillingHistory__paymentStatus paid"},T().createElement("i",{className:"icon icon-check-circle-outline"}),T().createElement(N.FormattedMessage,{id:"admin.billing.history.paid",defaultMessage:"Paid"}));default:return T().createElement("div",{className:"BillingHistory__paymentStatus pending"},T().createElement("i",{className:"icon icon-check-circle-outline"}),T().createElement(N.FormattedMessage,{id:"admin.billing.history.pending",defaultMessage:"Pending"}))}})(e.status)),T().createElement("td",{className:"BillingHistory__table-invoice"},T().createElement("a",{"data-testid":"billingHistoryLink-".concat(e.id),target:"_self",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),href:t},T().createElement("i",{className:"icon icon-file-pdf-outline"}))))})))),l>4&&d)}const Kr=(0,N.defineMessages)({title:{id:"admin.billing.history.title",defaultMessage:"Billing History"}}),Qr=[Kr.title],Xr=e=>T().createElement("div",{className:"BillingHistory__noHistory"},T().createElement(Hr,{width:152,height:116}),T().createElement("div",{className:"BillingHistory__noHistory-message"},T().createElement(N.FormattedMessage,{id:"admin.billing.history.noBillingHistory",defaultMessage:"In the future, this is where your billing history will show."})),T().createElement(wt.A,{"data-testid":"billingHistoryLink",location:"billing_history",href:e.selfHosted?mt.Zd.SELF_HOSTED_BILLING:mt.Lu.BILLING_DOCS,className:"BillingHistory__noHistory-link"},T().createElement(N.FormattedMessage,{id:"admin.billing.history.seeHowBillingWorks",defaultMessage:"See how billing works"})));Xr.propTypes={selfHosted:k().bool.isRequired};var $r=s(95685),eo=s.n($r),to=s(42689),so=s.n(to),ao=s(3569),io=s(49395);const no=e=>{const t=e.styleButton?" style-button":"",s=e.styleLink?" style-link":"",[a]=(0,io.A)(),i=T().createElement(N.FormattedMessage,{id:"upgradeLink.warn.upgrade_now",defaultMessage:"Upgrade now"});return T().createElement("button",{className:"upgradeLink".concat(t).concat(s),onClick:e=>(async e=>{e.preventDefault(),a()})(e)},e.buttonText?e.buttonText:i)};no.propTypes={buttonText:k().string,styleButton:k().bool,styleLink:k().bool};const ro=no;var oo=s(90327);const lo=e=>{let{trialEndDate:t}=e;const s=new Date(t),{formatMessage:i}=(0,N.useIntl)(),n=(0,a.useDispatch)(),r=(0,a.useSelector)(ao.HW),o=(0,a.useSelector)((e=>(0,m.Jt)(e,mt.pm.CLOUD_TRIAL_BANNER,mt.qE.UPGRADE_FROM_TRIAL)));let l=!0;if(!eo()(o)){const e=so()(),t=so()(Number(o||0)).diff(e,"days")<0;l=Boolean(o)&&t}const[d,c]=(0,A.useState)(l);return 0!==t&&d?T().createElement(qa.A,{mode:"info",onDismiss:()=>{c(!1);const e=so()(new Date).add(10,"days").format("x");n((0,Ga.SF)(r.id,[{category:mt.pm.CLOUD_TRIAL_BANNER,name:mt.qE.UPGRADE_FROM_TRIAL,user_id:r.id,value:e}]))},title:T().createElement(N.FormattedMessage,{id:"admin.subscription.cloudTrialCard.upgradeTitle",defaultMessage:"Upgrade to one of our paid plans to keep your workspace "}),message:T().createElement(N.FormattedMessage,{id:"admin.subscription.cloudTrialCard.description",defaultMessage:"Your trial ends on {date} {time}. Upgrade to one of our paid plans with no limits.",values:{date:so()(s).format("MMM D, YYYY "),time:so()(s).endOf("day").format("h:mm a ")+so()().tz((0,oo.C7)()).format("z")}}),hideIcon:!0,actionButtonLeft:T().createElement(ro,{buttonText:i({id:"admin.subscription.cloudTrialCard.upgrade",defaultMessage:"Upgrade"}),styleButton:!0}),actionButtonRight:null}):null};lo.propTypes={trialEndDate:k().number.isRequired};const co=lo;var mo=s(19408),uo=s(54302);const po=e=>T().createElement("svg",{width:e.width?e.width.toString():"372",height:e.height?e.height.toString():"250",viewBox:"0 0 372 250",fill:"none",xmlns:"http://www.w3.org/2000/svg"},T().createElement("g",{clipPath:"url(#clip0)"},T().createElement("g",{filter:"url(#filter0_d)"},T().createElement("rect",{x:"6",y:"20",width:"338",height:"197",rx:"8",fill:"white"}),T().createElement("rect",{x:"6",y:"20",width:"100.516",height:"197",fill:"#1E325C"}),T().createElement("circle",{cx:"22",cy:"39",r:"9",fill:"white",fillOpacity:"0.16"}),T().createElement("rect",{x:"38",y:"33",width:"45",height:"5",rx:"2.5",fill:"white",fillOpacity:"0.32"}),T().createElement("rect",{x:"38",y:"41",width:"30",height:"3",rx:"1.5",fill:"white",fillOpacity:"0.32"}),T().createElement("rect",{x:"15",y:"60",width:"30",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),T().createElement("rect",{x:"16",y:"190",width:"29",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),T().createElement("circle",{cx:"19",cy:"76",r:"4",fill:"white",fillOpacity:"0.16"}),T().createElement("rect",{x:"29",y:"74",width:"57",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),T().createElement("circle",{cx:"19",cy:"126",r:"4",fill:"white",fillOpacity:"0.16"}),T().createElement("rect",{x:"30",y:"124",width:"57",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),T().createElement("circle",{cx:"19",cy:"93",r:"4",fill:"white",fillOpacity:"0.16"}),T().createElement("rect",{x:"30",y:"91",width:"49",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),T().createElement("circle",{cx:"19",cy:"142",r:"4",fill:"white",fillOpacity:"0.16"}),T().createElement("rect",{x:"30",y:"141",width:"49",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),T().createElement("circle",{cx:"19",cy:"109",r:"4",fill:"white",fillOpacity:"0.16"}),T().createElement("rect",{x:"30",y:"107",width:"64",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),T().createElement("circle",{cx:"19",cy:"159",r:"4",fill:"white",fillOpacity:"0.16"}),T().createElement("rect",{x:"30",y:"157",width:"64",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),T().createElement("circle",{cx:"19",cy:"204",r:"4",fill:"white",fillOpacity:"0.16"}),T().createElement("rect",{x:"30",y:"203",width:"64",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),T().createElement("circle",{cx:"19",cy:"176",r:"4",fill:"white",fillOpacity:"0.16"}),T().createElement("rect",{x:"30",y:"174",width:"43",height:"4",rx:"2",fill:"white",fillOpacity:"0.32"}),T().createElement("circle",{cx:"124",cy:"66",r:"8",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("rect",{x:"139",y:"59",width:"39",height:"4",rx:"2",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"139",y:"68",width:"119",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("rect",{x:"139",y:"76",width:"98",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("rect",{x:"139",y:"84",width:"133",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("rect",{x:"139",y:"92",width:"70",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("circle",{cx:"124",cy:"118",r:"8",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("rect",{x:"139",y:"111",width:"39",height:"4",rx:"2",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"139",y:"120",width:"119",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("rect",{x:"139",y:"128",width:"98",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("rect",{x:"139",y:"136",width:"133",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("rect",{x:"139",y:"144",width:"70",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("circle",{cx:"124",cy:"170",r:"8",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("rect",{x:"139",y:"163",width:"39",height:"4",rx:"2",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"139",y:"172",width:"119",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("rect",{x:"139",y:"180",width:"98",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("rect",{x:"139",y:"188",width:"133",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("rect",{x:"139",y:"196",width:"70",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("circle",{cx:"166.5",cy:"32.5",r:"2.5",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("circle",{cx:"320",cy:"36",r:"4",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("circle",{cx:"248",cy:"36",r:"4",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("circle",{cx:"177.5",cy:"32.5",r:"2.5",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("circle",{cx:"332",cy:"36",r:"4",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"116",y:"31",width:"43",height:"3",rx:"1.5",fill:"#3F4350",fillOpacity:"0.24"}),T().createElement("rect",{x:"256",y:"32",width:"55",height:"8",rx:"4",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("rect",{x:"133",y:"40",width:"66",height:"1",rx:"0.5",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("circle",{cx:"118.5",cy:"40.2079",r:"2.5",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("ellipse",{cx:"126.5",cy:"40.2128",rx:"2.5",ry:"2.5049",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"5",y:"19",width:"340",height:"199",rx:"9",stroke:"#3F4350",strokeOpacity:"0.04",strokeWidth:"2"})),T().createElement("path",{d:"M217.487 89.5394C229.639 77.858 243.676 72.0115 259.598 72C275.521 71.9885 289.563 77.835 301.726 89.5394C311.984 99.6693 318.199 113.202 319.206 127.597C320.212 141.993 315.941 156.262 307.194 167.726L316.308 176.857L304.632 188.556L295.519 179.425C284.094 187.973 270.012 192.18 255.781 191.296C241.44 190.434 228.676 184.651 217.487 173.946C205.829 161.759 200 147.688 200 131.734C200 115.78 205.829 101.715 217.487 89.5394Z",fill:"#B3B3B3"}),T().createElement("path",{d:"M225.378 97.2236C234.548 87.9772 246.012 83.2277 259.768 82.975C272.623 82.9932 284.946 88.118 294.035 97.2258C303.125 106.334 308.24 118.681 308.258 131.562C308.017 145.448 303.277 156.935 294.038 166.02C284.918 175.106 272.627 180.278 259.768 180.441C245.909 179.959 234.445 175.152 225.378 166.02C216.31 156.889 211.513 145.402 210.985 131.562C211.148 118.677 216.31 106.361 225.378 97.2236Z",fill:"#F2F2F2"}),T().createElement("path",{d:"M227.029 160.783C231.525 165.299 236.866 168.882 242.747 171.327C248.628 173.772 254.932 175.031 261.298 175.031C267.665 175.031 273.969 173.772 279.85 171.327C285.73 168.882 291.072 165.299 295.568 160.783C300.774 155.646 304.763 149.405 307.244 142.519C305.237 151.646 300.681 160.012 294.107 166.64C284.955 175.768 272.569 180.892 259.656 180.892C246.744 180.892 234.358 175.768 225.206 166.64C218.626 160.016 214.069 151.648 212.069 142.519C210.114 133.638 210.747 124.38 213.892 115.849C212.195 123.646 212.449 131.743 214.631 139.418C216.894 147.475 221.16 154.826 227.029 160.783Z",fill:"#999999"}),T().createElement("path",{d:"M357.006 243.535C353.963 244.379 351.727 244.086 350.266 242.622L302.498 190.762C301.773 190.025 301.231 189.129 300.914 188.144C300.598 187.16 300.516 186.115 300.675 185.093C301.286 182.085 302.812 179.34 305.043 177.237C307.178 175.009 309.895 173.427 312.884 172.671C313.92 172.457 314.996 172.532 315.993 172.887C316.99 173.243 317.872 173.865 318.541 174.687L370.676 222.55C372.138 224.014 372.396 226.202 371.416 229.114C370.226 232.388 368.363 235.376 365.948 237.884C363.501 240.505 360.421 242.451 357.006 243.535Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M360.119 212.66L340.791 232.388L317.097 206.819L334.601 189.28L360.119 212.66Z",fill:"#954D0E"})),T().createElement("defs",null,T().createElement("filter",{id:"filter0_d",x:"-8",y:"14",width:"366",height:"225",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},T().createElement("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),T().createElement("feColorMatrix",{in:"SourceAlpha",type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",result:"hardAlpha"}),T().createElement("feOffset",{dy:"8"}),T().createElement("feGaussianBlur",{stdDeviation:"6"}),T().createElement("feColorMatrix",{type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0"}),T().createElement("feBlend",{mode:"normal",in2:"BackgroundImageFix",result:"effect1_dropShadow"}),T().createElement("feBlend",{mode:"normal",in:"SourceGraphic",in2:"effect1_dropShadow",result:"shape"})),T().createElement("clipPath",{id:"clip0"},T().createElement("rect",{width:"372",height:"250",fill:"white"}))));po.propTypes={width:k().number.isRequired,height:k().number.isRequired};const go=po,ho=e=>T().createElement("svg",{width:e.width?e.width.toString():"364",height:e.height?e.height.toString():"265",viewBox:"0 0 364 265",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},T().createElement("path",{d:"M350.196 127.516C359.39 136.493 364 147.856 364 161.66C364 175.464 359.39 186.854 350.196 195.803C341.003 204.78 329.612 209.472 316.052 209.96H62.4837C44.5576 209.472 29.6689 203.315 17.7905 191.437C5.9392 179.586 0 164.697 0 146.771C0 128.845 5.9392 113.956 17.7905 102.078C29.6418 90.2264 44.5576 84.0431 62.4837 83.555C62.9718 59.8253 71.0806 40.0822 86.8371 24.3528C102.567 8.62339 122.31 0.514616 146.039 0.0264618C165.891 -0.000657862 183.193 5.80295 197.973 17.4373C212.754 29.0716 222.544 44.0688 227.398 62.483C235.616 56.6794 245.08 53.7505 255.738 53.7505C269.786 54.2386 281.529 59.2015 290.967 68.6392C300.404 78.0768 305.367 89.8468 305.855 103.868C305.855 107.746 305.367 111.38 304.391 114.77C308.269 113.793 312.12 113.305 316.025 113.305C329.585 113.821 340.975 118.539 350.196 127.516Z",fill:"#FFBC1F"}),T().createElement("mask",{id:"mask0","mask-type":"alpha",maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"364",height:"210"},T().createElement("path",{d:"M350.196 127.516C359.39 136.493 364 147.856 364 161.66C364 175.464 359.39 186.854 350.196 195.803C341.003 204.78 329.612 209.472 316.052 209.96H62.4837C44.5576 209.472 29.6689 203.315 17.7905 191.437C5.9392 179.586 0 164.697 0 146.771C0 128.845 5.9392 113.956 17.7905 102.078C29.6418 90.2264 44.5576 84.0431 62.4837 83.555C62.9718 59.8253 71.0806 40.0822 86.8371 24.3528C102.567 8.62339 122.31 0.514616 146.039 0.0264618C165.891 -0.000657862 183.193 5.80295 197.973 17.4373C212.754 29.0716 222.544 44.0688 227.398 62.483C235.616 56.6794 245.08 53.7505 255.738 53.7505C269.786 54.2386 281.529 59.2015 290.967 68.6392C300.404 78.0768 305.367 89.8468 305.855 103.868C305.855 107.746 305.367 111.38 304.391 114.77C308.269 113.793 312.12 113.305 316.025 113.305C329.585 113.821 340.975 118.539 350.196 127.516Z",fill:"#FFC847"})),T().createElement("g",{mask:"url(#mask0)"},T().createElement("rect",{x:"3.47766",y:"137.949",width:"358.204",height:"86.9427",fill:"url(#pattern0)"})),T().createElement("path",{d:"M364 161.66C364 147.856 359.39 136.493 350.196 127.517C341.003 118.567 329.612 113.848 316.052 113.36C312.174 113.36 308.296 113.848 304.418 114.825C305.394 111.435 305.883 107.801 305.883 103.923C305.394 89.8745 300.432 78.1317 290.994 68.6941C281.556 59.2564 269.786 54.2393 255.738 53.7512C245.08 53.7512 235.643 56.653 227.398 62.4837C222.544 44.0694 212.754 29.0723 197.973 17.4379C183.193 5.80361 165.891 0 146.039 0C122.31 0.488154 102.567 8.59693 86.8371 24.3263C71.0806 40.0828 62.9718 59.826 62.4837 83.5285C44.5576 84.0167 29.6689 90.2 17.7905 102.051C5.9392 113.957 0 128.845 0 146.772C0 146.772 0.759347 100.966 66.5787 89.9017C69.0466 27.1197 123.801 9.89867 146.582 9.89867C169.362 9.89867 206.652 20.9635 225.744 70.8094C265.935 45.5881 310.873 76.3147 298.56 122.499C354.535 110.187 364 161.66 364 161.66Z",fill:"#F5AB00"}),T().createElement("path",{d:"M88.0846 173.051V253.732C88.0846 259.834 93.0204 264.797 99.0952 264.797H231.114C237.188 264.797 242.124 259.834 242.124 253.732V173.051H88.0846Z",fill:"#BABEC9"}),T().createElement("path",{d:"M242.124 162.014C242.124 155.912 237.188 150.949 231.114 150.949H99.0952C93.0204 150.949 88.0846 155.912 88.0846 162.014V173.078H242.097V162.014H242.124Z",fill:"#808F95"}),T().createElement("path",{d:"M114.716 154.474C123.096 154.474 129.903 157.349 129.903 160.901C129.903 164.454 123.096 167.329 114.716 167.329C106.336 167.329 99.5291 164.454 99.5291 160.901C99.502 157.349 106.309 154.474 114.716 154.474Z",fill:"#090A0B"}),T().createElement("path",{d:"M215.493 154.474C223.9 154.474 230.68 157.349 230.68 160.901C230.68 164.454 223.873 167.329 215.493 167.329C207.113 167.329 200.306 164.454 200.306 160.901C200.306 157.349 207.113 154.474 215.493 154.474Z",fill:"#090A0B"}),T().createElement("path",{d:"M165.104 100.506C131.964 100.506 104.98 127.599 104.98 160.901C104.98 162.908 109.048 164.535 114.689 164.535V160.901C116.614 132.724 138.5 110.459 165.077 110.459C191.682 110.459 213.54 132.751 215.466 160.901V164.535C221.134 164.535 225.174 162.908 225.174 160.901C225.229 127.599 198.245 100.506 165.104 100.506Z",fill:"#E8E9ED"}),T().createElement("path",{d:"M215.493 160.901C213.567 132.724 191.709 110.459 165.104 110.459C138.5 110.459 116.642 132.751 114.716 160.901V164.535C120.384 164.535 125.455 162.908 125.455 160.901C125.455 142.677 140.615 121.035 165.132 121.035C189.648 121.035 204.808 142.65 204.808 160.901C204.808 162.908 209.879 164.535 215.547 164.535L215.493 160.901Z",fill:"#BABEC9"}),T().createElement("path",{d:"M176.929 245.298L172.02 213.812C174.922 211.669 176.82 208.225 176.82 204.32C176.82 197.811 171.586 192.55 165.104 192.55C158.65 192.55 153.389 197.811 153.389 204.32C153.389 208.225 155.287 211.669 158.189 213.812L153.28 245.298H176.929Z",fill:"#090A0B"}),T().createElement("defs",null,T().createElement("pattern",{id:"pattern0",patternContentUnits:"objectBoundingBox",width:"1",height:"1"},T().createElement("use",{xlinkHref:"#image0",transform:"scale(0.00411523 0.0169492)"})),T().createElement("image",{id:"image0",width:"243",height:"59",xlinkHref:"data:image/png;base64,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"})));ho.propTypes={width:k().number.isRequired,height:k().number.isRequired};const fo=ho,Eo=e=>{const[t,s]=(0,io.A)(),{isFreeTrial:a,subscriptionPlan:i,onUpgradeMattermostCloud:n}=e;let r,o;const l=T().createElement(wt.A,{location:"contact_sales_card",href:mt.Lu.PRICING,rel:"noopener noreferrer"},mt.Lu.PRICING),d=i===mt.YE.LEGACY;if(a)r=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.freeTrial.title",defaultMessage:"Questions about your trial?"}),o=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.freeTrial.description",defaultMessage:"We love to work with our customers and their needs. Contact sales for subscription, billing or trial-specific questions."});else if(d)r=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudEnterprise.title",defaultMessage:"Looking to rollout Mattermost for your entire organization? "}),o=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudEnterprise.description",defaultMessage:"At Mattermost, we work with you and your organization to meet your needs throughout the product. If you're considering a wider rollout, talk to us."});else switch(i){case mt.YE.STARTER:r=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudFree.title",defaultMessage:"Upgrade to Cloud Professional"}),o=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudFree.description",defaultMessage:"Optimize your processes with Guest Accounts, Office365 suite integrations, GitLab SSO and advanced permissions."});break;case mt.YE.PROFESSIONAL:r=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudProfessional.title",defaultMessage:"Upgrade to Cloud Enterprise"}),o=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudProfessional.description",defaultMessage:"Advanced security and compliance features with premium support. See {pricingLink} for more details.",values:{pricingLink:l}});break;case mt.YE.ENTERPRISE:r=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudEnterprise.title",defaultMessage:"Looking to rollout Mattermost for your entire organization? "}),o=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudEnterprise.description",defaultMessage:"At Mattermost, we work with you and your organization to meet your needs throughout the product. If you're considering a wider rollout, talk to us."});break;default:r=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudProfessional.title",defaultMessage:"Upgrade to Cloud Enterprise"}),o=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.cloudProfessional.description",defaultMessage:"Advanced security and compliance features with premium support. See {pricingLink} for more details.",values:{pricingLink:l}})}return T().createElement("div",{className:"PrivateCloudCard"},T().createElement("div",{className:"PrivateCloudCard__text"},T().createElement("div",{className:"PrivateCloudCard__text-title"},r),T().createElement("div",{className:"PrivateCloudCard__text-description"},o),(a||i===mt.YE.ENTERPRISE||d)&&T().createElement(wt.A,{location:"contact_sales_card",href:s,className:"btn btn-tertiary PrivateCloudCard__actionButton"},T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.contactSales",defaultMessage:"Contact Sales"})),!a&&i!==mt.YE.ENTERPRISE&&i!==mt.YE.LEGACY&&T().createElement("button",{type:"button",onClick:()=>{i===mt.YE.STARTER?n():t()},className:"btn btn-tertiary PrivateCloudCard__actionButton"},i===mt.YE.STARTER?T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.upgradeNow",defaultMessage:"Upgrade Now"}):T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.contactSales",defaultMessage:"Contact Sales"}))),T().createElement("div",{className:"PrivateCloudCard__image"},a?T().createElement(go,{width:170,height:123}):T().createElement(fo,{width:170,height:123})))};Eo.propTypes={isFreeTrial:k().bool.isRequired,onUpgradeMattermostCloud:k().func.isRequired};const bo=Eo,vo=e=>T().createElement("svg",{width:e.width?e.width.toString():"476",height:e.height?e.height.toString():"313",viewBox:"0 0 476 313",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},T().createElement("path",{d:"M237 285.25C315.563 285.25 379.25 221.563 379.25 143C379.25 64.4375 315.563 0.75 237 0.75C158.437 0.75 94.75 64.4375 94.75 143C94.75 221.563 158.437 285.25 237 285.25Z",fill:"#E8E9ED",stroke:"#E8E9ED",strokeWidth:"0.5"}),T().createElement("path",{d:"M197.226 102.814C202.404 107.87 205 114.269 205 122.043C205 129.818 202.404 136.232 197.226 141.273C192.048 146.328 185.633 148.97 177.997 149.245H35.19C25.0942 148.97 16.7091 145.503 10.0194 138.814C3.34488 132.139 0 123.754 0 113.658C0 103.563 3.34488 95.1774 10.0194 88.4876C16.6939 81.8132 25.0942 78.3308 35.19 78.0559C35.4649 64.6916 40.0317 53.5726 48.9055 44.714C57.7641 35.8554 68.8832 31.2886 82.2474 31.0137C93.4276 30.9985 103.172 34.267 111.496 40.8193C119.82 47.3716 125.334 55.8178 128.068 66.1884C132.696 62.9199 138.026 61.2704 144.028 61.2704C151.94 61.5453 158.553 64.3404 163.869 69.6555C169.184 74.9707 171.979 81.5993 172.254 89.4957C172.254 91.6798 171.979 93.7264 171.429 95.6356C173.613 95.0858 175.782 94.8108 177.981 94.8108C185.618 95.101 192.033 97.7586 197.226 102.814Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M205 122.045C205 114.271 202.404 107.871 197.226 102.816C192.048 97.7754 185.633 95.1179 177.997 94.8429C175.812 94.8429 173.628 95.1179 171.444 95.6677C171.994 93.7585 172.269 91.7119 172.269 89.5278C171.994 81.6162 169.199 75.0028 163.884 69.6876C158.569 64.3724 151.94 61.5469 144.028 61.2719C138.026 61.2719 132.711 62.9062 128.068 66.19C125.334 55.8193 119.82 47.3731 111.496 40.8208C103.172 34.2685 93.4276 31 82.2474 31C68.8832 31.2749 57.7641 35.8417 48.9055 44.7003C40.0317 53.5741 35.4649 64.6932 35.19 78.0422C25.0942 78.3171 16.7091 81.7994 10.0194 88.4739C3.34488 95.179 0 103.564 0 113.66C0 113.66 0.427654 87.863 37.4963 81.6314C38.8862 46.2734 69.7232 36.5748 82.5529 36.5748C95.3826 36.5748 116.384 42.8064 127.136 70.8789C149.771 56.6746 175.079 73.9794 168.145 99.9901C199.67 93.056 205 122.045 205 122.045Z",fill:"#F5AB00"}),T().createElement("path",{d:"M455.615 131.683C458.546 134.544 460.015 138.165 460.015 142.565C460.015 146.965 458.546 150.595 455.615 153.447C452.685 156.308 449.055 157.804 444.733 157.959H363.915C358.202 157.804 353.456 155.842 349.67 152.056C345.893 148.278 344 143.533 344 137.82C344 132.106 345.893 127.361 349.67 123.575C353.448 119.798 358.202 117.827 363.915 117.671C364.071 110.108 366.655 103.816 371.677 98.8022C376.69 93.7889 382.983 91.2044 390.546 91.0489C396.873 91.0402 402.388 92.89 407.099 96.5981C411.809 100.306 414.93 105.086 416.477 110.955C419.096 109.105 422.113 108.172 425.51 108.172C429.987 108.328 433.73 109.909 436.738 112.917C439.746 115.925 441.327 119.677 441.483 124.145C441.483 125.381 441.327 126.54 441.016 127.62C442.252 127.309 443.48 127.153 444.724 127.153C449.046 127.318 452.677 128.822 455.615 131.683Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M460.015 142.565C460.015 138.166 458.546 134.544 455.615 131.683C452.685 128.831 449.055 127.327 444.733 127.171C443.497 127.171 442.261 127.327 441.025 127.638C441.336 126.557 441.492 125.399 441.492 124.163C441.336 119.686 439.754 115.943 436.746 112.935C433.738 109.927 429.987 108.328 425.51 108.172C422.113 108.172 419.105 109.097 416.477 110.955C414.93 105.086 411.809 100.307 407.099 96.5984C402.388 92.8903 396.873 91.0405 390.546 91.0405C382.983 91.1961 376.69 93.7806 371.677 98.7939C366.655 103.816 364.071 110.108 363.915 117.663C358.202 117.819 353.456 119.789 349.67 123.567C345.893 127.361 344 132.106 344 137.82C344 137.82 344.242 123.221 365.22 119.694C366.007 99.6842 383.458 94.1955 390.719 94.1955C397.98 94.1955 409.865 97.7221 415.95 113.609C428.76 105.57 443.082 115.364 439.158 130.084C456.998 126.16 460.015 142.565 460.015 142.565Z",fill:"#F5AB00"}),T().createElement("path",{d:"M401.495 130L384 152.389H391.417V190H411.071V152.417V152.389H419L401.495 130Z",fill:"#386FE5"}),T().createElement("path",{d:"M99.489 83L58 135.624H75.5887V223H122.198V135.69V135.624H141L99.489 83Z",fill:"#386FE5"}),T().createElement("mask",{id:"mask0","mask-type":"alpha",maskUnits:"userSpaceOnUse",x:"95",y:"1",width:"284",height:"284"},T().createElement("path",{d:"M237 285C315.424 285 379 221.424 379 143C379 64.5756 315.424 1 237 1C158.576 1 95 64.5756 95 143C95 221.424 158.576 285 237 285Z",fill:"#E8E9ED"})),T().createElement("g",{mask:"url(#mask0)"},T().createElement("path",{d:"M110.205 195.029C111.455 188.376 113.949 182.032 116.433 175.732C119.096 168.978 121.783 162.167 125.561 155.953C134.369 141.481 148.716 131.036 164.154 124.056C179.591 117.075 194.362 113.129 210.88 109.347C205.467 115.175 203.818 122.594 200.581 129.859C193.026 146.811 186.533 164.212 180.044 181.598C170.303 207.684 160.566 233.766 150.834 259.846C129.709 247.404 114.533 225.315 110.5 201.131L110.205 195.029Z",fill:"white"}),T().createElement("path",{d:"M272.214 109.96C281.626 113.076 296.335 118.566 296.335 118.566C296.335 118.566 330.104 215.907 337.586 262.808C337.808 264.187 338.006 265.702 337.369 266.927C336.438 268.732 334.185 269.282 332.347 270.145C328.135 272.113 325.473 276.32 321.826 279.2C318.68 281.675 314.859 283.117 311.101 284.507C277.651 296.77 241.32 307.026 206.78 298.28C204.594 297.725 202.337 297.049 200.672 295.525C199.225 294.179 198.342 292.307 197.546 290.479C187.025 266.358 166.363 216.525 166.566 181.27C166.802 140.535 188.877 115.705 189.239 115.18C190.103 113.93 222.41 105.488 242.304 105.049C242.324 105.058 264.303 107.335 272.214 109.96Z",fill:"white"}),T().createElement("mask",{id:"mask1","mask-type":"alpha",maskUnits:"userSpaceOnUse",x:"166",y:"105",width:"172",height:"197"},T().createElement("path",{d:"M272.214 109.96C281.626 113.076 296.335 118.566 296.335 118.566C296.335 118.566 330.104 215.907 337.586 262.808C337.808 264.187 338.006 265.702 337.369 266.927C336.438 268.732 334.185 269.282 332.347 270.145C328.135 272.113 325.473 276.32 321.826 279.2C318.68 281.675 314.859 283.117 311.101 284.507C277.651 296.77 241.32 307.026 206.78 298.28C204.594 297.725 202.337 297.049 200.672 295.525C199.225 294.179 198.342 292.307 197.546 290.479C187.025 266.358 166.363 216.525 166.566 181.27C166.802 140.535 188.877 115.705 189.239 115.18C190.103 113.93 222.41 105.488 242.304 105.049C242.324 105.058 264.303 107.335 272.214 109.96Z",fill:"white"})),T().createElement("g",{mask:"url(#mask1)"},T().createElement("rect",{x:"166.156",y:"105",width:"171.739",height:"170.292",fill:"url(#pattern0)"}),T().createElement("rect",{x:"166.156",y:"105",width:"150.513",height:"196.825",fill:"url(#pattern1)"})),T().createElement("path",{d:"M170.073 207.885C168.831 203.292 167.588 198.699 166.344 194.107C166.286 193.931 166.162 193.783 165.999 193.696C165.835 193.608 165.645 193.586 165.466 193.635C165.287 193.684 165.133 193.8 165.037 193.959C164.941 194.117 164.91 194.307 164.95 194.488C166.194 199.08 167.437 203.675 168.679 208.27C168.734 208.45 168.858 208.601 169.023 208.692C169.188 208.782 169.382 208.804 169.563 208.754C169.744 208.704 169.899 208.585 169.994 208.423C170.089 208.26 170.118 208.067 170.073 207.885Z",fill:"#1D1400"}),T().createElement("path",{d:"M164.371 190.257L164.023 188.656C163.965 188.479 163.842 188.332 163.678 188.245C163.515 188.157 163.324 188.135 163.145 188.184C162.966 188.233 162.813 188.349 162.717 188.507C162.621 188.666 162.59 188.856 162.629 189.037L162.976 190.643C163.029 190.826 163.152 190.982 163.318 191.077C163.483 191.171 163.679 191.197 163.864 191.15C164.043 191.09 164.192 190.964 164.281 190.799C164.371 190.633 164.394 190.439 164.347 190.257H164.371Z",fill:"#1D1400"})),T().createElement("path",{d:"M293.59 117.645C304.203 121.021 338.869 132.754 346.935 141.321C375.47 171.631 387.111 253.275 388.013 260.878C389.315 271.554 386.363 295.612 375.47 302.365C369.503 306.066 351.832 294.164 342.666 284.516C329.896 271.071 323.688 236.641 321.126 218.276C316.427 184.594 293.59 117.645 293.59 117.645Z",fill:"white"}),T().createElement("path",{d:"M246.198 105.58L305.1 102.024C305.1 102.024 307.03 93.8665 301.41 84.4016C298.163 78.931 292.355 75.9545 288.544 68.4096C284.887 61.1734 285.355 52.8035 283.889 45.3888C280.758 29.5463 269.262 16.8782 263.492 14.1767C249.661 7.69784 246.198 105.58 246.198 105.58Z",fill:"#1D1400"}),T().createElement("path",{d:"M227.277 102.106C219.771 108.406 224.195 141.249 241.084 141.249C259.585 141.249 258.321 95.4196 259.657 95.1446C265.793 93.9434 272.093 90.6533 276.006 76.0362C276.565 73.9522 276.575 72.6593 276.937 70.6863C277.125 69.678 278.563 55.9582 278.162 40.9358C277.984 34.1049 271.191 13.1247 246.651 18.4602C215.969 25.1271 221.252 54.8824 224.238 61.2647C225.989 65.0034 228.469 74.232 228.884 79.1767C229.39 85.1345 228.117 101.397 227.277 102.106Z",fill:"#CB8E00"}),T().createElement("path",{opacity:"0.3",d:"M259.604 95.1012C258.26 95.3539 256.895 95.4831 255.528 95.4871C252.075 95.4821 248.669 94.6988 245.561 93.1957H245.522C245.45 93.1626 245.376 93.1336 245.3 93.1088C243.959 92.694 243.265 94.696 244.533 95.2942C247.041 96.503 249.353 98.0802 251.393 99.9736C253.486 101.942 255.132 104.337 256.217 106.998C256.904 108.322 257.466 109.708 257.896 111.137C258.982 102.492 259.112 95.3183 259.633 95.1687L259.604 95.1012Z",fill:"black"}),T().createElement("path",{d:"M225.164 15.7105C236.82 5.29517 253.226 9.3185 260.381 12.4831C272.668 17.9248 276.397 30.564 276.397 30.564C273.551 34.0904 274.781 37.2599 271.616 41.5871C267.921 46.6476 263.381 42.4169 255.827 48.5387C252.736 51.0778 250.224 54.2492 248.46 57.8396C248.46 57.8396 245.918 52.7502 242.83 52.7936C239.294 52.8467 237.162 56.1705 238.141 59.5474C238.851 61.9836 241.639 67.6085 241.639 67.6085L230.577 95.9262C229.435 98.8492 227.282 101.265 224.509 102.735C221.736 104.204 218.528 104.63 215.468 103.934L149.831 82.8672C156.02 68.6939 166.339 66.9138 174.226 60.1408C181.945 53.4931 183.913 46.6959 190.363 41.6209C197.971 35.6293 209.848 32.1463 213.186 28.8176C222.675 19.3527 217.784 22.3051 225.164 15.7105Z",fill:"#1D1400"}),T().createElement("mask",{id:"mask2","mask-type":"alpha",maskUnits:"userSpaceOnUse",x:"149",y:"9",width:"128",height:"96"},T().createElement("path",{d:"M225.164 15.7105C236.82 5.29517 253.226 9.3185 260.381 12.4831C272.668 17.9248 276.397 30.564 276.397 30.564C273.551 34.0904 274.781 37.2599 271.616 41.5871C267.921 46.6476 263.381 42.4169 255.827 48.5387C252.736 51.0778 250.224 54.2492 248.46 57.8396C248.46 57.8396 245.918 52.7502 242.83 52.7936C239.294 52.8467 237.162 56.1705 238.141 59.5474C238.851 61.9836 241.639 67.6085 241.639 67.6085L230.577 95.9262C229.435 98.8492 227.282 101.265 224.509 102.735C221.736 104.204 218.528 104.63 215.468 103.934L149.831 82.8672C156.02 68.6939 166.339 66.9138 174.226 60.1408C181.945 53.4931 183.913 46.6959 190.363 41.6209C197.971 35.6293 209.848 32.1463 213.186 28.8176C222.675 19.3527 217.784 22.3051 225.164 15.7105Z",fill:"#1D1400"})),T().createElement("g",{mask:"url(#mask2)"},T().createElement("rect",{x:"149.754",y:"9",width:"107.578",height:"95.5179",fill:"url(#pattern2)"})),T().createElement("path",{d:"M266.396 139.411C263.767 132.146 262.055 124.741 264.322 117.345C267.313 107.499 270.917 107.046 280.087 102.39C289.258 97.7351 290.802 95.0963 296.398 85.1586C297.715 82.814 299.089 83.3109 299.364 85.0862C299.606 86.6492 299.364 89.9103 299.364 89.9103C299.364 89.9103 303.224 77.85 304.671 77.3676C307.454 76.4365 308.154 82.3268 308.53 83.639C310.19 89.4521 309.013 92.3224 305.153 102.936C302.64 109.839 297.145 118.141 290.898 122.097C288.486 123.621 285.591 125.43 285.423 129.333C285.36 130.829 286.441 132.126 287.304 133.347C292.336 140.434 332.791 188.154 338.691 193.813C357.91 212.25 374.486 226.057 382.34 251.509C385.789 262.696 382.822 291.549 379.927 297.821C373.174 312.438 348.571 292.997 338.44 279.972C315.926 251.017 275.35 164.183 266.396 139.411Z",fill:"#CB8E00"}),T().createElement("mask",{id:"mask3","mask-type":"alpha",maskUnits:"userSpaceOnUse",x:"263",y:"77",width:"121",height:"227"},T().createElement("path",{d:"M266.396 139.411C263.767 132.146 262.055 124.741 264.322 117.345C267.313 107.499 270.917 107.046 280.087 102.39C289.258 97.7351 290.802 95.0963 296.398 85.1586C297.715 82.814 299.089 83.3109 299.364 85.0862C299.606 86.6492 299.364 89.9103 299.364 89.9103C299.364 89.9103 303.224 77.85 304.671 77.3676C307.454 76.4365 308.154 82.3268 308.53 83.639C310.19 89.4521 309.013 92.3224 305.153 102.936C302.64 109.839 297.145 118.141 290.898 122.097C288.486 123.621 285.591 125.43 285.423 129.333C285.36 130.829 286.441 132.126 287.304 133.347C292.336 140.434 332.791 188.154 338.691 193.813C357.91 212.25 374.486 226.057 382.34 251.509C385.789 262.696 382.822 291.549 379.927 297.821C373.174 312.438 348.571 292.997 338.44 279.972C315.926 251.017 275.35 164.183 266.396 139.411Z",fill:"#674600"})),T().createElement("g",{mask:"url(#mask3)"},T().createElement("rect",{x:"263.121",y:"77.0203",width:"75.7389",height:"156.784",fill:"url(#pattern3)"})),T().createElement("path",{d:"M383.304 251.505C375.451 226.053 357.91 212.246 338.691 193.808C337.523 192.689 335.015 189.949 331.696 186.176C331.493 186.403 331.295 186.659 331.093 186.856C324.262 194.44 315.829 199.882 306.345 203.485C303.06 204.735 296.991 205.96 293.59 206.423C307.927 235.513 324.817 266.87 336.351 281.68C346.482 294.705 374.143 312.414 380.892 297.797C383.787 291.545 386.754 262.692 383.304 251.505Z",fill:"white"}),T().createElement("path",{d:"M191.671 277.421C196.503 279.87 201.195 282.589 205.723 285.564C212.356 290.016 231.595 288.859 231.595 288.859C231.595 288.859 241.412 309.569 242.425 302.54C242.951 298.878 241.383 296.712 240.915 293.06C242.912 295.69 244.123 297.098 245.112 300.248C246.101 303.398 245.744 306.235 245.3 309.414C244.963 311.802 246.159 312.878 247.409 312.989C249.821 313.196 250.303 310.447 251.509 310.056C261.804 306.679 259.681 302.858 260.593 293.437C260.516 304.908 259.874 303.944 255.209 310.538C254.273 311.86 256.015 313.433 260.516 310.857C264.052 308.768 266.445 306.515 268.075 301.208C269.843 295.705 269.428 289.733 266.917 284.526C261.336 273.108 256.893 269.306 244.273 267.763C231.653 266.219 217.084 265.085 208.092 268.245C204.599 269.475 191.671 277.421 191.671 277.421Z",fill:"#CB8E00"}),T().createElement("path",{d:"M367.621 221.802C356.731 209.153 345.552 196.771 334.084 184.656C333.949 184.533 333.772 184.466 333.589 184.468C333.406 184.47 333.231 184.541 333.098 184.667C332.966 184.792 332.886 184.964 332.874 185.146C332.863 185.329 332.921 185.509 333.037 185.65C344.502 197.778 355.681 210.16 366.574 222.796C367.182 223.505 368.229 222.507 367.621 221.802Z",fill:"#1D1400"}),T().createElement("path",{d:"M323.34 260.101L323.664 260.424C323.801 260.556 323.984 260.63 324.175 260.63C324.366 260.63 324.549 260.556 324.686 260.424C324.821 260.288 324.896 260.104 324.896 259.913C324.896 259.722 324.821 259.538 324.686 259.402L324.363 259.078C324.297 259.007 324.217 258.95 324.128 258.911C324.039 258.871 323.944 258.85 323.846 258.848C323.749 258.847 323.653 258.864 323.563 258.901C323.472 258.937 323.391 258.991 323.322 259.06C323.253 259.129 323.199 259.211 323.163 259.301C323.126 259.391 323.108 259.487 323.11 259.585C323.112 259.682 323.133 259.777 323.173 259.866C323.212 259.955 323.269 260.035 323.34 260.101Z",fill:"white"}),T().createElement("path",{d:"M323.48 261.162C313.067 243.709 303.312 225.885 294.217 207.692C293.802 206.862 292.553 207.59 292.968 208.425C302.056 226.602 311.811 244.426 322.231 261.896C322.328 262.061 322.487 262.182 322.673 262.23C322.859 262.278 323.056 262.251 323.222 262.154C323.388 262.056 323.508 261.897 323.557 261.711C323.605 261.526 323.578 261.328 323.48 261.162Z",fill:"#1D1400"}),T().createElement("path",{d:"M298.752 90.3784C297.865 92.7918 296.689 95.0888 295.249 97.219C294.728 97.9909 295.983 98.7194 296.499 97.9475C297.999 95.7075 299.225 93.2959 300.151 90.7644C300.469 89.8864 299.075 89.5101 298.752 90.3784Z",fill:"black"}),T().createElement("path",{d:"M294.425 100.475H294.666C294.858 100.475 295.042 100.399 295.177 100.263C295.313 100.128 295.389 99.9436 295.389 99.7517C295.389 99.5598 295.313 99.3757 295.177 99.24C295.042 99.1043 294.858 99.0281 294.666 99.0281H294.425C294.233 99.0281 294.049 99.1043 293.913 99.24C293.777 99.3757 293.701 99.5598 293.701 99.7517C293.701 99.9436 293.777 100.128 293.913 100.263C294.049 100.399 294.233 100.475 294.425 100.475Z",fill:"black"}),T().createElement("path",{d:"M305.626 86.9871C304.786 91.3079 303.171 95.4412 300.86 99.1873C300.378 99.9833 301.622 100.707 302.109 99.9157C304.488 96.0642 306.151 91.8153 307.02 87.373C307.204 86.4612 305.805 86.0705 305.626 86.9871Z",fill:"black"}),T().createElement("path",{d:"M300.455 101.923C300.646 101.923 300.831 101.847 300.966 101.711C301.102 101.575 301.178 101.391 301.178 101.199C301.178 101.007 301.102 100.823 300.966 100.688C300.831 100.552 300.646 100.476 300.455 100.476C300.263 100.476 300.079 100.552 299.943 100.688C299.807 100.823 299.731 101.007 299.731 101.199C299.731 101.391 299.807 101.575 299.943 101.711C300.079 101.847 300.263 101.923 300.455 101.923Z",fill:"black"}),T().createElement("path",{d:"M241.446 287.555L240.095 284.617C239.704 283.773 238.455 284.506 238.846 285.346C239.293 286.311 239.743 287.29 240.196 288.284C240.587 289.128 241.832 288.395 241.446 287.555Z",fill:"#1D1400"}),T().createElement("path",{d:"M257.052 280.57C258.745 284.405 259.397 288.515 259.503 292.683C259.574 294.337 259.547 295.993 259.421 297.642C259.184 300.084 257.713 301.627 256.044 303.263C255.373 303.914 256.401 304.937 257.067 304.285C258.398 302.997 259.802 301.618 260.443 299.837C261.157 297.908 260.989 295.573 260.969 293.566C260.921 288.838 260.226 284.212 258.306 279.861C257.93 279.012 256.685 279.745 257.057 280.589L257.052 280.57Z",fill:"#1D1400"}),T().createElement("path",{d:"M251.678 293.412C252.263 296.037 252.4 298.743 252.083 301.415C251.977 302.336 253.424 302.331 253.53 301.415C253.854 298.613 253.699 295.776 253.072 293.026C252.869 292.119 251.47 292.505 251.678 293.412Z",fill:"#1D1400"}),T().createElement("path",{d:"M251.292 286.721C250.904 284.968 250.725 283.175 250.756 281.38C250.756 280.449 249.309 280.449 249.309 281.38C249.278 283.306 249.476 285.228 249.898 287.107C250.1 288.014 251.494 287.628 251.292 286.721Z",fill:"#1D1400"}),T().createElement("path",{d:"M259.72 57.3333H259.585C259.067 57.3333 258.57 57.5391 258.203 57.9055C257.837 58.2719 257.631 58.7688 257.631 59.287C257.631 59.8052 257.837 60.3022 258.203 60.6686C258.57 61.035 259.067 61.2408 259.585 61.2408H259.72C260.238 61.2408 260.735 61.035 261.101 60.6686C261.468 60.3022 261.674 59.8052 261.674 59.287C261.674 58.7688 261.468 58.2719 261.101 57.9055C260.735 57.5391 260.238 57.3333 259.72 57.3333Z",fill:"black"}),T().createElement("path",{d:"M273.468 60.6763H273.329C272.811 60.6763 272.315 60.8819 271.949 61.2478C271.583 61.6138 271.377 62.1101 271.377 62.6276C271.377 63.1452 271.583 63.6415 271.949 64.0075C272.315 64.3734 272.811 64.579 273.329 64.579H273.468C273.986 64.579 274.482 64.3734 274.848 64.0075C275.214 63.6415 275.42 63.1452 275.42 62.6276C275.42 62.1101 275.214 61.6138 274.848 61.2478C274.482 60.8819 273.986 60.6763 273.468 60.6763Z",fill:"black"}),T().createElement("path",{d:"M254.963 77.0205C256.922 79.1751 259.186 81.0312 261.683 82.5297C260.424 84.2278 257.67 84.3242 256.039 82.9831C254.408 81.642 253.887 79.2493 254.418 77.1942",fill:"black"}),T().createElement("path",{d:"M265.856 75.8338C267.303 75.5105 270.579 75.4623 270.81 73.4603C270.97 72.0709 269.527 70.2233 269.083 68.9835C268.269 66.8298 267.806 64.5592 267.713 62.2586C267.713 61.1877 266.025 61.1829 266.044 62.2586C266.163 65.2543 266.847 68.2005 268.061 70.9421C268.249 71.3811 268.837 72.1771 268.861 72.6595C268.924 73.8945 268.746 73.2673 267.897 73.6532C267.168 73.9861 266.189 74.0343 265.403 74.208C264.351 74.4396 264.8 76.0557 265.846 75.8193L265.856 75.8338Z",fill:"black"}),T().createElement("path",{opacity:"0.3",d:"M287.304 133.342C280.743 128.788 279.585 121.764 287.304 117.645C295.023 113.525 303.894 105.96 303.894 105.96C303.894 105.96 299.654 117.538 290.898 122.083C282.142 126.627 287.304 133.342 287.304 133.342Z",fill:"black"}),T().createElement("defs",null,T().createElement("pattern",{id:"pattern0",patternContentUnits:"objectBoundingBox",width:"1",height:"1"},T().createElement("use",{xlinkHref:"#image0",transform:"scale(0.00280899)"})),T().createElement("pattern",{id:"pattern1",patternContentUnits:"objectBoundingBox",width:"1",height:"1"},T().createElement("use",{xlinkHref:"#image1",transform:"scale(0.00320513 0.00245098)"})),T().createElement("pattern",{id:"pattern2",patternContentUnits:"objectBoundingBox",width:"1",height:"1"},T().createElement("use",{xlinkHref:"#image2",transform:"scale(0.0044843 0.00505051)"})),T().createElement("pattern",{id:"pattern3",patternContentUnits:"objectBoundingBox",width:"1",height:"1"},T().createElement("use",{xlinkHref:"#image3",transform:"scale(0.00636943 0.00307692)"})),T().createElement("image",{id:"image0",width:"356",height:"353",xlinkHref:"data:image/png;base64,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"}),T().createElement("image",{id:"image1",width:"312",height:"408",xlinkHref:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAATgAAAGYCAYAAADWY/6EAAAgAElEQVR4Xu2debNtsVHdtyEBkjAFMpjJAWwDJqmi+P5fgH9IVRIIYIxxwJiYMYHMiQP1s89ytfU0tLT3mXTXqbp137tnD+olaakntT5z+GMEjIAR2BSBz2wql8UyAkbACBwmOA8CI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgiY4LbtWgtmBIyACc5jwAgYgW0RMMFt27UWzAgYAROcx4ARMALbImCC27ZrLZgRMAImOI8BI2AEtkXABLdt11owI2AETHAeA0bACGyLgAlu2661YEbACJjgPAaMgBHYFgET3LZda8GMgBEwwXkMGAEjsC0CJrhtu9aCGQEjYILzGDACRmBbBExw23atBTMCRsAE5zFgBIzAtgicIbh/eBzH3x3H8f+2RceCGQEj8NYIrBLcPzmO458dx/H/j+P45nEc/+etUXDjjYAR2BKBVYL7p8dx/OgNkf9yHMd/3RIdC2UEjMBbI7BKcP/gOI5/ftPg/tJm6luPATfeCGyLwCrBbQuIBTMCRmAfBExw+/SlJTECRqBAwATnIWEEjMC2CLwCwSlg8VfHcfzttkhbMCNgBB6OwCsQ3L+6Sf2/bikn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"}),T().createElement("image",{id:"image2",width:"223",height:"198",xlinkHref:"data:image/png;base64,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"}),T().createElement("image",{id:"image3",width:"157",height:"325",xlinkHref:"data:image/png;base64,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"})));vo.propTypes={width:k().number.isRequired,height:k().number.isRequired};const yo=vo,Mo=((0,N.defineMessages)({partialChargesTooltipTitle:{id:"admin.billing.subscriptions.billing_summary.lastInvoice.whatArePartialCharges",defaultMessage:"What are partial charges?"},partialChargesTooltipText:{id:"admin.billing.subscriptions.billing_summary.lastInvoice.whatArePartialCharges.message",defaultMessage:"Users who have not been enabled for the full duration of the month are charged at a prorated monthly rate."}}),T().createElement("div",{className:"BillingSummary__noBillingHistory"},T().createElement(Hr,{height:116,width:152}),T().createElement("div",{className:"BillingSummary__noBillingHistory-title"},T().createElement(N.FormattedMessage,{id:"admin.billing.subscriptions.billing_summary.noBillingHistory.title",defaultMessage:"No billing history yet"})),T().createElement("div",{className:"BillingSummary__noBillingHistory-message"},T().createElement(N.FormattedMessage,{id:"admin.billing.subscriptions.billing_summary.noBillingHistory.description",defaultMessage:"In the future, this is where your most recent bill summary will show."})),T().createElement(wt.A,{location:"billing_summary",href:mt.Lu.BILLING_DOCS,className:"btn btn-primary BillingSummary__noBillingHistory-link"},T().createElement(N.FormattedMessage,{id:"admin.billing.subscriptions.billing_summary.noBillingHistory.link",defaultMessage:"See how billing works"})))),_o=e=>{let{daysLeftOnTrial:t}=e;const[s]=(0,io.A)();return T().createElement("div",{className:"UpgradeMattermostCloud"},T().createElement("div",{className:"UpgradeMattermostCloud__image"},T().createElement(yo,{height:167,width:234})),T().createElement("div",{className:"UpgradeMattermostCloud__title"},t>mt.RC.TRIAL_1_DAY&&T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.freeTrial.title",defaultMessage:"You're currently on a free trial"}),(t===mt.RC.TRIAL_1_DAY||t===mt.RC.TRIAL_0_DAYS)&&T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.freeTrial.lastDay.title",defaultMessage:"Your free trial ends today"})),T().createElement("div",{className:"UpgradeMattermostCloud__description"},t>mt.RC.TRIAL_WARNING_THRESHOLD&&T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.freeTrial.description",defaultMessage:"Your free trial will expire in {daysLeftOnTrial} days. Contact sales to continue after the trial ends.",values:{daysLeftOnTrial:t}}),t>mt.RC.TRIAL_1_DAY&&t<=mt.RC.TRIAL_WARNING_THRESHOLD&&T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.freeTrial.lessThan3Days.description",defaultMessage:"Your free trial will end in {daysLeftOnTrial, number} {daysLeftOnTrial, plural, one {day} other {days}}. Contact sales to continue enjoying the benefits of Cloud Professional.",values:{daysLeftOnTrial:t}}),(t===mt.RC.TRIAL_1_DAY||t===mt.RC.TRIAL_0_DAYS)&&T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.freeTrial.lastDay.description",defaultMessage:"Your free trial has ended. Add payment information to continue enjoying the benefits of Cloud Professional."})),T().createElement("button",{type:"button",onClick:()=>s(),className:"UpgradeMattermostCloud__upgradeButton btn btn-primary"},T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.privateCloudCard.contactSales",defaultMessage:"Contact Sales"})))};function So(e){let{isFreeTrial:t,daysLeftOnTrial:s}=e,a=Mo;return t&&(a=_o({daysLeftOnTrial:s})),T().createElement("div",{className:"BillingSummary"},a)}_o.propTypes={daysLeftOnTrial:k().number.isRequired},k().array.isRequired,k().array.isRequired,k().number,So.propTypes={isFreeTrial:k().bool.isRequired,daysLeftOnTrial:k().number.isRequired};var Co=s(40032),Ao=s(11039),To=s(60088);const No=e=>{var t,s,a,i,n;const r=(0,N.useIntl)(),[o]=(0,Ao.A)(),l=[r.formatMessage({id:"admin.billing.subscription.planDetails.features.limitedMessageHistory",defaultMessage:"Limited to a message history of {limit} messages"},{limit:r.formatNumber(null!==(t=null===(s=o.messages)||void 0===s?void 0:s.history)&&void 0!==t?t:To.Cz.messages.history)}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.limitedFileStorage",defaultMessage:"Limited to {limit} File Storage"},{limit:(0,To.Lh)(null!==(a=null===(i=o.files)||void 0===i?void 0:i.total_storage)&&void 0!==a?a:To.Cz.files.totalStorage,r.formatNumber)}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.groupAndOneToOneMessaging",defaultMessage:"Group and one-to-one messaging, file sharing, and search"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.incidentCollaboration",defaultMessage:"Incident collaboration"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.unlimitedUsers",defaultMessage:"Unlimited users"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.mfa",defaultMessage:"Multi-Factor Authentication (MFA)"})],d=[r.formatMessage({id:"admin.billing.subscription.planDetails.features.groupAndOneToOneMessaging",defaultMessage:"Group and one-to-one messaging, file sharing, and search"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.incidentCollaboration",defaultMessage:"Incident collaboration"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.unlimittedUsersAndMessagingHistory",defaultMessage:"Unlimited users & message history"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.mfa",defaultMessage:"Multi-Factor Authentication (MFA)"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.multilanguage",defaultMessage:"Multi-language translations"})],c=[r.formatMessage({id:"admin.billing.subscription.planDetails.features.fileStorage",defaultMessage:"Unlimited file storage"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.guestAccounts",defaultMessage:"Guest Accounts"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.ldapUserSync",defaultMessage:"AD/LDAP user sync"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.ssoSaml",defaultMessage:"SSO w/ SAML (includes Okta and OneLogIn)"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.multiplatformSso",defaultMessage:"SSO with Google, O365"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.openid",defaultMessage:"OpenID"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.mfaEnforcement",defaultMessage:"MFA enforcement"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.advanceTeamPermission",defaultMessage:"Advanced team permissions"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.readOnlyChannels",defaultMessage:"Read-only announcement channels"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.sharedChannels",defaultMessage:"Shared channels (coming soon)"})],m=[r.formatMessage({id:"admin.billing.subscription.planDetails.features.enterpriseAdminAndSso",defaultMessage:"Enterprise administration & SSO"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.autoComplianceExports",defaultMessage:"Automated compliance exports"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.customRetentionPolicies",defaultMessage:"Custom data retention policies"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.ldapSync",defaultMessage:"AD/LDAP group sync to teams & channels"}),r.formatMessage({id:"admin.billing.subscription.planDetails.features.premiumSupport",defaultMessage:"Premium Support (optional upgrade)"})],u=[r.formatMessage({id:"admin.billing.subscription.planDetails.features.abac",defaultMessage:"Attribute-based access control (ABAC)"}),...m];let p=[];switch(e.subscriptionPlan){case mt.YE.PROFESSIONAL:p=c;break;case mt.YE.STARTER:p=(0,To.$k)(o)?l:d;break;case mt.YE.ENTERPRISE:p=m;break;case mt.YE.ADVANCED:p=u;break;default:p=[]}const g=null===(n=p)||void 0===n?void 0:n.map(((e,t)=>T().createElement("div",{key:"PlanDetailsFeature".concat(t.toString()),className:"PlanDetailsFeature"},T().createElement("i",{className:"icon-check"}),T().createElement("span",null,e))));return T().createElement(T().Fragment,null,g)};No.propTypes={subscriptionPlan:k().string};const wo=No,Ro=e=>{let t,{userCount:s,isFreeTrial:a,subscriptionPlan:i,daysLeftOnTrial:n,isYearly:r}=e;const{openPricingModal:o,isAirGapped:l}=(0,mo.A)(),{formatMessage:d}=(0,N.useIntl)(),c=T().createElement("div",{className:"PlanDetails__userCount"},T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.planDetails.userCount",defaultMessage:"{userCount} users",values:{userCount:s}}));switch(i){case mt.YE.PROFESSIONAL:t=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.planDetails.productName.cloudProfessional",defaultMessage:"Cloud Professional"});break;case mt.YE.ENTERPRISE:t=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.planDetails.productName.cloudEnterprise",defaultMessage:"Cloud Enterprise"});break;case mt.YE.STARTER:t=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.planDetails.productName.cloudFree",defaultMessage:"Cloud Free"});break;case mt.YE.ADVANCED:t=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.planDetails.productName.cloudAdvanced",defaultMessage:"Cloud Enterprise Advanced"});break;default:t=T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.planDetails.productName.unknown",defaultMessage:"Unknown product"})}const m=a?T().createElement(Es.A,{className:"TrialBadge",text:d({id:"admin.billing.subscription.cloudTrialBadge.daysLeftOnTrial",defaultMessage:"{daysLeftOnTrial} trial days left"},{daysLeftOnTrial:n})}):null,u=T().createElement(Es.A,{className:"RecurringIntervalBadge",text:d({id:"admin.billing.subscription.cloudMonthlyBadge",defaultMessage:"Monthly"})}),p=T().createElement(Es.A,{className:"RecurringIntervalBadge",text:d({id:"admin.billing.subscription.cloudYearlyBadge",defaultMessage:"Annual"})}),g=l?null:T().createElement("button",{onClick:o,className:"btn btn-secondary PlanDetails__viewPlansButton"},d({id:"workspace_limits.menu_limit.view_plans",defaultMessage:"View plans"}));return T().createElement(T().Fragment,null,T().createElement("div",{className:"PlanDetails__top"},T().createElement("div",{className:"PlanDetails__productName"},t,i===mt.YE.STARTER?null:a?m:r?p:u),g),c)};Ro.propTypes={userCount:k().number.isRequired,isFreeTrial:k().bool.isRequired,daysLeftOnTrial:k().number.isRequired,isYearly:k().bool.isRequired};const Oo=e=>{let{isFreeTrial:t,subscriptionPlan:s}=e;const i=(0,a.useSelector)(dt.dw),n=(0,a.useSelector)(dt.Pd),r=Math.min((0,D.RF)(null==i?void 0:i.trial_end_at),mt.RC.TRIAL_30_DAYS),o=(0,Co.A)();return n&&o?T().createElement("div",{className:"PlanDetails"},T().createElement(Ro,{userCount:o,isFreeTrial:t,subscriptionPlan:s,daysLeftOnTrial:r,isYearly:"year"===n.recurring_interval}),T().createElement("div",{className:"PlanDetails__teamAndChannelCount"},T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.planDetails.subheader",defaultMessage:"Plan details"})),T().createElement(wo,{subscriptionPlan:s}),(e=>e?null:T().createElement("div",{className:"PlanDetails__currentPlan"},T().createElement("i",{className:"icon-check-circle"}),T().createElement(N.FormattedMessage,{id:"admin.billing.subscription.planDetails.currentPlan",defaultMessage:"Current Plan"})))(t)):null};Oo.propTypes={isFreeTrial:k().bool.isRequired};const Io=Oo,ko=(0,N.defineMessages)({title:{id:"admin.billing.subscription.title",defaultMessage:"Subscription"}}),Po=[ko.title],xo=e=>T().createElement("svg",{width:e.width?e.width.toString():"527",height:e.height?e.height.toString():"296",viewBox:"0 0 170 149",fill:"none",xmlns:"http://www.w3.org/2000/svg"},T().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M133.188 130.941C149.323 117.33 159.572 96.962 159.572 74.2C159.572 33.2205 126.352 0 85.372 0C44.3925 0 11.172 33.2205 11.172 74.2C11.172 96.962 21.4213 117.33 37.5565 130.941H133.188Z",fill:"#3F4350",fillOpacity:"0.08"}),T().createElement("path",{d:"M166.523 71.0823L166.523 60.2208L28.3461 60.2208L28.3461 48.0117L8.14688 48.0117",stroke:"#3F4350",strokeOpacity:"0.24",strokeWidth:"1.24706",strokeLinecap:"round"}),T().createElement("path",{d:"M97.2708 24.9121L97.2708 44.9461L77.6077 44.9461",stroke:"#3F4350",strokeOpacity:"0.24",strokeWidth:"1.24706",strokeLinecap:"round"}),T().createElement("ellipse",{cx:"1.855",cy:"1.855",rx:"1.855",ry:"1.855",transform:"matrix(-1 -1.74846e-07 -1.74846e-07 1 168.475 69.8359)",fill:"#3F4350",fillOpacity:"0.48"}),T().createElement("ellipse",{cx:"1.855",cy:"1.855",rx:"1.855",ry:"1.855",transform:"matrix(-1 -1.74846e-07 -1.74846e-07 1 99.1262 21.1992)",fill:"#3F4350",fillOpacity:"0.48"}),T().createElement("ellipse",{cx:"1.855",cy:"1.855",rx:"1.855",ry:"1.855",transform:"matrix(-1 -1.74846e-07 -1.74846e-07 1 9.98633 46.1406)",fill:"#3F4350",fillOpacity:"0.48"}),T().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M23.7352 82.3047H44.9352V130.94H28.7234V130.941H16.2529V130.939H7.52344V94.7217H19.994V105.071H23.7352V82.3047ZM144.7 82.3047H123.5V130.94H144.7V130.94H152.182V130.939H162.159V108.174H152.182V95.7568H144.7V82.3047Z",fill:"white"}),T().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M23.7352 82.3047H44.9352V130.94H28.7234V130.941H16.2529V130.939H7.52344V94.7217H19.994V105.071H23.7352V82.3047ZM144.7 82.3047H123.5V130.94H144.7V130.94H152.182V130.939H162.159V108.174H152.182V95.7568H144.7V82.3047Z",fill:"#3F4350",fillOpacity:"0.24"}),T().createElement("rect",{x:"43.0644",y:"38.7563",width:"44.8941",height:"91.0353",fill:"white",stroke:"#3F4350",strokeWidth:"1.24706",strokeLinejoin:"round"}),T().createElement("rect",{x:"43.0644",y:"39.2817",width:"44.8941",height:"88.5412",fill:"white",stroke:"#3F4350",strokeWidth:"1.24706",strokeLinejoin:"round"}),T().createElement("rect",{x:"39.947",y:"127.199",width:"89.7882",height:"3.74118",fill:"white"}),T().createElement("rect",{x:"40.5706",y:"127.823",width:"88.5412",height:"2.49412",fill:"#3F4350",fillOpacity:"0.16",stroke:"#3F4350",strokeWidth:"1.24706"}),T().createElement("rect",{x:"40.5706",y:"35.5415",width:"49.8824",height:"3.74118",fill:"white",stroke:"#3F4350",strokeWidth:"1.24706",strokeLinejoin:"round"}),T().createElement("rect",{x:"40.5706",y:"35.5415",width:"49.8824",height:"3.74118",fill:"#3F4350",fillOpacity:"0.32",stroke:"#3F4350",strokeWidth:"1.24706",strokeLinejoin:"round"}),T().createElement("rect",{x:"49.2998",y:"31.7993",width:"31.1765",height:"3.74118",fill:"white",stroke:"#3F4350",strokeWidth:"1.24706",strokeLinejoin:"round"}),T().createElement("rect",{x:"49.2998",y:"31.7993",width:"31.1765",height:"3.74118",fill:"#3F4350",fillOpacity:"0.32",stroke:"#3F4350",strokeWidth:"1.24706",strokeLinejoin:"round"}),T().createElement("rect",{x:"49.9233",y:"46.1406",width:"31.1765",height:"8.72941",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"49.9233",y:"59.8594",width:"31.1765",height:"8.72941",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"49.9233",y:"73.5762",width:"31.1765",height:"8.72941",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"67.3823",y:"53.623",width:"6.23529",height:"73.5765",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"49.9233",y:"87.2949",width:"31.1765",height:"8.72941",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"49.9233",y:"101.012",width:"31.1765",height:"8.72941",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"59.8999",y:"117.223",width:"11.2235",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"71.7468",y:"54.2466",width:"58.6118",height:"76.0706",fill:"white",stroke:"#3F4350",strokeWidth:"1.24706",strokeLinejoin:"round"}),T().createElement("rect",{x:"71.7468",y:"54.2466",width:"58.6118",height:"76.0706",stroke:"#3F4350",strokeWidth:"1.24706",strokeLinejoin:"round"}),T().createElement("rect",{x:"77.3586",y:"59.8594",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"102.3",y:"59.8594",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"114.771",y:"59.8594",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"89.8293",y:"59.8594",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"77.3586",y:"73.5762",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"102.3",y:"73.5762",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"114.771",y:"73.5762",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"89.8293",y:"73.5762",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"77.3586",y:"87.2949",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"102.3",y:"87.2949",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"114.771",y:"87.2949",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"89.8293",y:"87.2949",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"77.3586",y:"101.012",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"102.3",y:"101.012",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"114.771",y:"101.012",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"89.8293",y:"101.012",width:"8.72941",height:"9.97647",fill:"#3F4350",fillOpacity:"0.16"}),T().createElement("rect",{x:"102.3",y:"43.6465",width:"14.9647",height:"7.48235",fill:"#3F4350",fillOpacity:"0.32"}),T().createElement("line",{x1:"7.52332",y1:"130.318",x2:"162.159",y2:"130.318",stroke:"#3F4350",strokeWidth:"1.24706"}),T().createElement("rect",{x:"68.0059",y:"50.5063",width:"66.0941",height:"3.74118",fill:"white",stroke:"#3F4350",strokeWidth:"1.24706",strokeLinejoin:"round"}),T().createElement("rect",{x:"68.0059",y:"50.5063",width:"66.0941",height:"3.74118",fill:"#3F4350",fillOpacity:"0.32",stroke:"#3F4350",strokeWidth:"1.24706",strokeLinejoin:"round"}),T().createElement("rect",{x:"96.688",y:"115.352",width:"8.72941",height:"14.9647",fill:"#3F4350",fillOpacity:"0.16",stroke:"#3F4350",strokeWidth:"1.24706"}),T().createElement("rect",{x:"69.8762",y:"127.199",width:"63.6",height:"3.74118",fill:"white"}),T().createElement("rect",{x:"70.4998",y:"127.823",width:"62.353",height:"2.49412",fill:"#3F4350",fillOpacity:"0.16",stroke:"#3F4350",strokeWidth:"1.24706"}),T().createElement("rect",{x:"88.5823",y:"124.705",width:"26.1882",height:"3.74118",fill:"white"}),T().createElement("rect",{x:"89.2058",y:"125.329",width:"24.9412",height:"2.49412",fill:"#3F4350",fillOpacity:"0.16",stroke:"#3F4350",strokeWidth:"1.24706"}));xo.propTypes={width:k().number.isRequired,height:k().number.isRequired};const Do=xo,Lo=T().createElement("div",{className:"CompanyInfoDisplay__addInfo"},T().createElement(tt.A,{to:"/admin_console/billing/company_info_edit",className:"btn btn-primary CompanyInfoDisplay__addInfoButton"},T().createElement("i",{className:"icon icon-plus"}),T().createElement(N.FormattedMessage,{id:"admin.billing.company_info.add",defaultMessage:"Add Company Information"}))),Fo=T().createElement("div",{className:"CompanyInfoDisplay__noCompanyInfo"},T().createElement(Do,{width:170,height:149}),T().createElement("div",{className:"CompanyInfoDisplay__noCompanyInfo-message"},T().createElement(N.FormattedMessage,{id:"admin.billing.company_info_display.noCompanyInfo",defaultMessage:"There is currently no company information on file."})),T().createElement(tt.A,{to:"/admin_console/billing/company_info_edit",className:"btn btn-primary CompanyInfoDisplay__noCompanyInfo-link"},T().createElement(N.FormattedMessage,{id:"admin.billing.company_info.add",defaultMessage:"Add Company Information"}))),Uo=()=>{var e;const t=(0,a.useSelector)((e=>e.entities.cloud.customer));if(!t)return null;let s=Fo;const i=null!=t&&null!==(e=t.company_address)&&void 0!==e&&e.line1?t.company_address:null==t?void 0:t.billing_address,n=void 0!==(null==i?void 0:i.line1)&&""!==(null==i?void 0:i.line1);return n&&(s=T().createElement("div",{className:"CompanyInfoDisplay__companyInfo"},T().createElement("div",{className:"CompanyInfoDisplay__companyInfo-text"},T().createElement("div",{className:"CompanyInfoDisplay__companyInfo-name"},null==t?void 0:t.name),Boolean(t.num_employees)&&T().createElement("div",{className:"CompanyInfoDisplay__companyInfo-numEmployees"},T().createElement(N.FormattedMessage,{id:"admin.billing.company_info.employees",defaultMessage:"{employees} employees",values:{employees:t.num_employees}})),T().createElement("div",{className:"CompanyInfoDisplay__companyInfo-addressTitle"},T().createElement(N.FormattedMessage,{id:"admin.billing.company_info.companyAddress",defaultMessage:"Company Address"})),T().createElement("div",{className:"CompanyInfoDisplay__companyInfo-address"},T().createElement("div",null,i.line1),i.line2&&T().createElement("div",null,i.line2),T().createElement("div",null,"".concat(i.city,", ").concat(i.state,", ").concat(i.postal_code)),T().createElement("div",null,i.country))),T().createElement("div",{className:"CompanyInfoDisplay__companyInfo-edit"},T().createElement(tt.A,{to:"/admin_console/billing/company_info_edit",className:"CompanyInfoDisplay__companyInfo-editButton"},T().createElement("i",{className:"icon icon-pencil-outline"}))))),T().createElement("div",{className:"CompanyInfoDisplay"},T().createElement("div",{className:"CompanyInfoDisplay__header"},T().createElement("div",{className:"CompanyInfoDisplay__headerText"},T().createElement("div",{className:"CompanyInfoDisplay__headerText-top"},T().createElement(N.FormattedMessage,{id:"admin.billing.company_info_display.companyDetails",defaultMessage:"Company Details"})),T().createElement("div",{className:"CompanyInfoDisplay__headerText-bottom"},n&&T().createElement(N.FormattedMessage,{id:"admin.billing.company_info_display.detailsProvided",defaultMessage:"Your company name and address"}),!n&&T().createElement(N.FormattedMessage,{id:"admin.billing.company_info_display.provideDetails",defaultMessage:"Provide your company name and address"}))),!(null!=i&&i.line1)&&Lo),T().createElement("div",{className:"CompanyInfoDisplay__body"},s))},Bo=(0,N.defineMessages)({title:{id:"admin.billing.company_info.title",defaultMessage:"Company Information"}}),jo=[Bo.title];var Ho=s(39131),Go=s(39163),qo=s(43233),Vo=s(98566);const zo=[{code:"AL",name:"Alabama"},{code:"AK",name:"Alaska"},{code:"AZ",name:"Arizona"},{code:"AR",name:"Arkansas"},{code:"CA",name:"California"},{code:"CO",name:"Colorado"},{code:"CT",name:"Connecticut"},{code:"DE",name:"Delaware"},{code:"DC",name:"District of Columbia"},{code:"FL",name:"Florida"},{code:"GA",name:"Georgia"},{code:"HI",name:"Hawaii"},{code:"ID",name:"Idaho"},{code:"IL",name:"Illinois"},{code:"IN",name:"Indiana"},{code:"IA",name:"Iowa"},{code:"KS",name:"Kansas"},{code:"KY",name:"Kentucky"},{code:"LA",name:"Louisiana"},{code:"ME",name:"Maine"},{code:"MD",name:"Maryland"},{code:"MA",name:"Massachusetts"},{code:"MI",name:"Michigan"},{code:"MN",name:"Minnesota"},{code:"MS",name:"Mississippi"},{code:"MO",name:"Missouri"},{code:"MT",name:"Montana"},{code:"NE",name:"Nebraska"},{code:"NV",name:"Nevada"},{code:"NH",name:"New Hampshire"},{code:"NJ",name:"New Jersey"},{code:"NM",name:"New Mexico"},{code:"NY",name:"New York"},{code:"NC",name:"North Carolina"},{code:"ND",name:"North Dakota"},{code:"OH",name:"Ohio"},{code:"OK",name:"Oklahoma"},{code:"OR",name:"Oregon"},{code:"PA",name:"Pennsylvania"},{code:"PR",name:"Puerto Rico"},{code:"RI",name:"Rhode Island"},{code:"SC",name:"South Carolina"},{code:"SD",name:"South Dakota"},{code:"TN",name:"Tennessee"},{code:"TX",name:"Texas"},{code:"UT",name:"Utah"},{code:"VT",name:"Vermont"},{code:"VA",name:"Virginia"},{code:"WA",name:"Washington"},{code:"WV",name:"West Virginia"},{code:"WI",name:"Wisconsin"},{code:"WY",name:"Wyoming"}],Wo=[{code:"AB",name:"Alberta"},{code:"BC",name:"British Columbia"},{code:"MB",name:"Manitoba"},{code:"NB",name:"New Brunswick"},{code:"NL",name:"Newfoundland and Labrador"},{code:"NT",name:"Northwest Territories"},{code:"NS",name:"Nova Scotia"},{code:"NU",name:"Nunavut"},{code:"ON",name:"Ontario"},{code:"PE",name:"Prince Edward Island"},{code:"QC",name:"Quebec"},{code:"SK",name:"Saskatchewan"},{code:"YT",name:"Yukon Territory"}];function Yo(e){const{formatMessage:t}=(0,N.useIntl)(),s=t=>{e.onChange(t.value)};let a=[];if("US"===e.country?a=zo:"CA"===e.country&&(a=Wo),a.length>0){const i={};return e.testId&&(i.testId=e.testId),T().createElement(qo.A,Object.assign({},i,{onChange:s,value:e.state?{value:e.state,label:e.state}:void 0,options:a.map((e=>({value:e.code,label:e.name}))),legend:t({id:"admin.billing.subscription.stateprovince",defaultMessage:"State/Province"}),placeholder:t({id:"admin.billing.subscription.stateprovince",defaultMessage:"State/Province"}),name:"country_dropdown"}))}return T().createElement(Vo.A,{name:"state",type:"text",value:e.state,onChange:t=>{e.onChange(t.target.value)},onBlur:e.onBlur,placeholder:t({id:"admin.billing.subscription.stateprovince",defaultMessage:"State/Province"}),required:!0})}Yo.propTypes={country:k().string.isRequired,state:k().string.isRequired,testId:k().string,onChange:k().func.isRequired,onBlur:k().func};function Zo(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}s(22184);class Jo extends T().PureComponent{constructor(e){super(e),Zo(this,"handleSelectClick",(()=>{var e;null===(e=this.fileInputRef.current)||void 0===e||e.click()})),Zo(this,"handleImageChange",(()=>{if(!this.fileInputRef.current)return;const e=this.fileInputRef.current;e.files&&e.files.length>0&&(this.props.setSaveNeeded(),this.setState({brandImage:e.files[0],deleteBrandImage:!1}))})),Zo(this,"handleDeleteButtonPressed",(()=>{this.setState({deleteBrandImage:!0,brandImage:void 0,brandImageExists:!1}),this.props.setSaveNeeded()})),Zo(this,"handleSave",(async()=>{let e;return this.setState({error:""}),this.state.deleteBrandImage?await(0,h.MD)((()=>{this.setState({deleteBrandImage:!1,brandImageExists:!1,brandImage:void 0})}),(t=>{e=t,this.setState({error:t.message})})):this.state.brandImage&&await(0,h.MQ)(this.state.brandImage,(()=>{this.setState({brandImageExists:!0,brandImage:void 0,brandImageTimestamp:Date.now()})}),(t=>{e=t,this.setState({error:t.message})})),{error:e}})),this.state={deleteBrandImage:!1,brandImageExists:!1,brandImageTimestamp:Date.now(),error:""},this.imageRef=T().createRef(),this.fileInputRef=T().createRef()}componentDidMount(){fetch(O.mT.getBrandImageUrl(String(this.state.brandImageTimestamp))).then((e=>{200===e.status?this.setState({brandImageExists:!0}):this.setState({brandImageExists:!1})})).catch((e=>{console.error("unable to retrieve brand image: ".concat(e)),this.setState({brandImageExists:!1})})),this.props.registerSaveAction(this.handleSave)}componentWillUnmount(){this.props.unRegisterSaveAction(this.handleSave)}componentDidUpdate(){if(this.imageRef.current){const e=new FileReader,t=this.imageRef.current;e.onload=e=>{var s,a,i;const n=(null===(s=e.target)||void 0===s?void 0:s.result)instanceof ArrayBuffer?null===(a=e.target)||void 0===a?void 0:a.result.toString():null===(i=e.target)||void 0===i?void 0:i.result;n&&t.setAttribute("src",n)},this.state.brandImage&&e.readAsDataURL(this.state.brandImage)}}render(){let e=null;if(this.state.brandImage)e=T().createElement("div",{className:"remove-image__img mb-5"},T().createElement("img",{ref:this.imageRef,alt:"brand image",src:""}));else if(this.state.brandImageExists){let t;this.props.disabled||(t=T().createElement(ys.A,{title:T().createElement(N.FormattedMessage,{id:"admin.team.removeBrandImage",defaultMessage:"Remove brand image"}),isVertical:!1},T().createElement("button",{type:"button",className:"remove-image__btn",onClick:this.handleDeleteButtonPressed},T().createElement("span",{"aria-hidden":!0},"×")))),e=T().createElement("div",{className:"remove-image__img mb-5"},T().createElement("img",{alt:"brand image",src:O.mT.getBrandImageUrl(String(this.state.brandImageTimestamp))}),t)}else e=T().createElement("p",{className:"mt-2"},T().createElement(N.FormattedMessage,{id:"admin.team.noBrandImage",defaultMessage:"No brand image uploaded"}));return T().createElement(F,{inputId:this.props.id,helpText:T().createElement(N.FormattedMessage,{id:"admin.team.uploadDesc",defaultMessage:"Customize your user experience by adding a custom image to your login screen. Recommended maximum image size is less than 2 MB."}),label:T().createElement(N.FormattedMessage,{id:"admin.team.brandImageTitle",defaultMessage:"Custom Brand Image:"}),setByEnv:!1},T().createElement("div",null,T().createElement("div",{className:"remove-image"},e)),T().createElement("div",{className:"file__upload mt-5"},T().createElement("button",{type:"button",className:"btn btn-tertiary",disabled:this.props.disabled,onClick:this.handleSelectClick},T().createElement(N.FormattedMessage,{id:"admin.team.chooseImage",defaultMessage:"Select Image"})),T().createElement("input",{ref:this.fileInputRef,type:"file",accept:mt.YM.ACCEPT_STATIC_IMAGE,disabled:this.props.disabled,onChange:this.handleImageChange})),T().createElement(Bt.Ay,{error:this.state.error}))}}function Ko(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}Zo(Jo,"propTypes",{id:k().string,disabled:k().bool.isRequired,setSaveNeeded:k().func.isRequired,registerSaveAction:k().func.isRequired,unRegisterSaveAction:k().func.isRequired});class Qo extends A.PureComponent{constructor(e){super(e),Ko(this,"stringToArray",(e=>e.split(",").map((e=>e.trim())).filter(Boolean))),Ko(this,"arrayToString",(e=>e.join(","))),Ko(this,"handleChange",(e=>{const t=this.stringToArray(e.target.value);this.props.onChange(this.props.id,t),this.setState({value:e.target.value})})),this.state={value:this.arrayToString(e.value)}}render(){return T().createElement(gt,{label:T().createElement(N.FormattedMessage,{id:"admin.customization.clientSideUserIds",defaultMessage:"Client side user ids:"}),helpText:T().createElement(N.FormattedMessage,{id:"admin.customization.clientSideUserIdsDesc",defaultMessage:"Set the user ids you want to track for client side metrics. Separate values with a comma."}),inputId:this.props.id,setByEnv:this.props.setByEnv},T().createElement(we.A,{id:this.props.id,className:"form-control",type:"text",placeholder:(0,N.defineMessage)({id:"admin.customization.clientSideUserIdsPlaceholder",defaultMessage:'E.g.: "userid1,userid2"'}),value:this.state.value,onChange:this.handleChange,disabled:this.props.disabled||this.props.setByEnv}))}}const Xo=s.p+"files/249d03d271a38c75d7ce.png",$o=s.p+"files/71850e51ea04421286aa.png";class el extends A.PureComponent{render(){let e=T().createElement("img",{alt:"version mismatch",className:"cluster-status",src:Xo}),t=T().createElement("img",{alt:"config mismatch",className:"cluster-status",src:Xo}),s=T().createElement("div",null),a="",i="",n=!1;this.props.clusterInfos.length&&(a=this.props.clusterInfos[0].version,i=this.props.clusterInfos[0].config_hash,n=1===this.props.clusterInfos.length),this.props.clusterInfos.map((n=>(n.version!==a&&(e=T().createElement("img",{alt:"version mismatch",className:"cluster-status",src:$o}),s=T().createElement("div",{style:tl.warning,className:"alert alert-warning"},T().createElement(Zt.A,null),T().createElement(N.FormattedMessage,{id:"admin.cluster.version_mismatch_warning",defaultMessage:"WARNING: Multiple Mattermost versions have been detected in your HA cluster, or the running versions cannot be properly identified. Unless upgrading, ensure all nodes are on the same version and can communicate via Gossip to prevent platform issues."}))),n.config_hash!==i&&(t=T().createElement("img",{alt:"config mismatch",className:"cluster-status",src:$o})),null)));const r=this.props.clusterInfos.map((s=>{let a=!1,i=null,r=s.hostname;""===r&&(a=!0,r=T().createElement(N.FormattedMessage,{id:"admin.cluster.unknown",defaultMessage:"unknown"}));let o=s.version;""===o&&(a=!0,o=T().createElement(N.FormattedMessage,{id:"admin.cluster.unknown",defaultMessage:"unknown"}));let l=s.config_hash;return""===l&&(a=!0,l=T().createElement(N.FormattedMessage,{id:"admin.cluster.unknown",defaultMessage:"unknown"})),i=n||a?T().createElement("img",{alt:"Cluster status",className:"cluster-status",src:$o}):T().createElement("img",{alt:"Cluster status",className:"cluster-status",src:Xo}),T().createElement("tr",{key:s.ipaddress},T().createElement("td",{style:tl.clusterCell},i),T().createElement("td",{style:tl.clusterCell},r),T().createElement("td",{style:tl.clusterCell},e," ",o),T().createElement("td",{style:tl.clusterCell},T().createElement("div",{className:"config-hash"},t," ",l)),T().createElement("td",{style:tl.clusterCell},s.ipaddress),T().createElement("td",{style:tl.clusterCell},s.schema_version))}));return T().createElement("div",{className:"cluster-panel__table",style:tl.clusterTable},T().createElement("div",{className:"text-right"},T().createElement("button",{type:"submit",className:"btn btn-tertiary",onClick:this.props.reload},T().createElement(Tr,null),T().createElement(N.FormattedMessage,{id:"admin.cluster.status_table.reload",defaultMessage:" Reload Cluster Status"}))),T().createElement("table",{className:"table"},T().createElement("thead",null,T().createElement("tr",null,T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.cluster.status_table.status",defaultMessage:"Status"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.cluster.status_table.hostname",defaultMessage:"Hostname"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.cluster.status_table.version",defaultMessage:"Version"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.cluster.status_table.config_hash",defaultMessage:"Config File Hash"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.cluster.status_table.url",defaultMessage:"Gossip Address"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.cluster.status_table.schema_version",defaultMessage:"DB Schema Version"})))),T().createElement("tbody",null,r)),s)}}const tl={clusterTable:{margin:10,marginBottom:30},clusterCell:{whiteSpace:"nowrap"},warning:{marginBottom:10}},sl=()=>{const e=(0,A.useRef)(),[t,s]=(0,A.useState)(null),a=(0,A.useCallback)((()=>{s(null),(0,h.Zq)(s,null)}),[]);(0,A.useEffect)((()=>(a(),e.current=setInterval(a,15e3),()=>{e.current&&clearInterval(e.current)})),[]);const i=(0,A.useCallback)((e=>{e&&e.preventDefault(),s(null),a()}),[a]);return null==t?T().createElement(Na.A,null):T().createElement(el,{clusterInfos:t,reload:i})},al=T().memo(sl);function il(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const nl=(0,N.defineMessages)({cluster:{id:"admin.advance.cluster",defaultMessage:"High Availability"},noteDescription:{id:"admin.cluster.noteDescription",defaultMessage:"Changing properties in this section will require a server restart before taking effect."},enableTitle:{id:"admin.cluster.enableTitle",defaultMessage:"Enable High Availability Mode:"},enableDescription:{id:"admin.cluster.enableDescription",defaultMessage:"When true, Mattermost will run in High Availability mode. Please see <link>documentation</link> to learn more about configuring High Availability for Mattermost."},clusterName:{id:"admin.cluster.ClusterName",defaultMessage:"Cluster Name:"},clusterNameDesc:{id:"admin.cluster.ClusterNameDesc",defaultMessage:"The cluster to join by name. Only nodes with the same cluster name will join together. This is to support Blue-Green deployments or staging pointing to the same database."},overrideHostname:{id:"admin.cluster.OverrideHostname",defaultMessage:"Override Hostname:"},overrideHostnameDesc:{id:"admin.cluster.OverrideHostnameDesc",defaultMessage:"The default value of '<blank>' will attempt to get the Hostname from the OS or use the IP Address. You can override the hostname of this server with this property. It is not recommended to override the Hostname unless needed. This property can also be set to a specific IP Address if needed."},useIPAddress:{id:"admin.cluster.UseIPAddress",defaultMessage:"Use IP Address:"},useIPAddressDesc:{id:"admin.cluster.UseIPAddressDesc",defaultMessage:"When true, the cluster will attempt to communicate via IP Address vs using the hostname."},enableGossipEncryption:{id:"admin.cluster.EnableGossipEncryption",defaultMessage:"Enable Gossip encryption:"},enableGossipEncryptionDesc:{id:"admin.cluster.EnableGossipEncryptionDesc",defaultMessage:"When true, all communication through the gossip protocol will be encrypted."},enableGossipCompression:{id:"admin.cluster.EnableGossipCompression",defaultMessage:"Enable Gossip compression:"},enableGossipCompressionDesc:{id:"admin.cluster.EnableGossipCompressionDesc",defaultMessage:"When true, all communication through the gossip protocol will be compressed. It is recommended to keep this flag disabled."},gossipPort:{id:"admin.cluster.GossipPort",defaultMessage:"Gossip Port:"},gossipPortDesc:{id:"admin.cluster.GossipPortDesc",defaultMessage:"The port used for the gossip protocol. Both UDP and TCP should be allowed on this port."}}),rl=[nl.cluster,nl.noteDescription,nl.enableTitle,nl.enableDescription,nl.clusterName,nl.clusterNameDesc,nl.overrideHostname,nl.overrideHostnameDesc,nl.useIPAddress,nl.useIPAddressDesc,nl.enableGossipEncryption,nl.enableGossipEncryptionDesc,nl.enableGossipCompression,nl.enableGossipCompressionDesc,nl.gossipPort,nl.gossipPortDesc],ol={configLoadedFromCluster:{marginBottom:10},warning:{marginBottom:10}},ll=e=>{let{id:t,value:s,onChange:a,cancelSubmit:i,disabled:n,setByEnv:r,showConfirm:o}=e;const l=(0,A.useCallback)((function(e,t){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const i=!1===t;let n="";i&&(n=T().createElement(N.FormattedMessage,{id:"admin.guest_access.disableConfirmWarning",defaultMessage:"All current guest account sessions will be revoked, and marked as inactive"})),a(e,t,i,s,n)}),[a]),d=(0,A.useCallback)((()=>{l(t,!1,!0)}),[l,t]),c=T().createElement(N.FormattedMessage,{id:"admin.guest_access.enableTitle",defaultMessage:"Enable Guest Access: "}),m=T().createElement(N.FormattedMessage,{id:"admin.guest_access.helpText",defaultMessage:"When true, external guest can be invited to channels within teams. Please see <a>Permissions Schemes</a> for which roles can invite guests.",values:{a:e=>T().createElement(w.Link,{to:"/admin_console/user_management/permissions/system_scheme"},e)}});return T().createElement(T().Fragment,null,T().createElement(j,{id:t,value:s,label:c,helpText:m,setByEnv:r,onChange:l,disabled:n}),T().createElement(Ta.A,{show:o&&!1===s,title:T().createElement(N.FormattedMessage,{id:"admin.guest_access.disableConfirmTitle",defaultMessage:"Save and Disable Guest Access?"}),message:T().createElement(N.FormattedMessage,{id:"admin.guest_access.disableConfirmMessage",defaultMessage:"Disabling guest access will revoke all current Guest Account sessions. Guests will no longer be able to login and new guests cannot be invited into Mattermost. Guest users will be marked as inactive in user lists. Enabling this feature will not reinstate previous guest accounts. Are you sure you wish to remove these users?"}),confirmButtonText:T().createElement(N.FormattedMessage,{id:"admin.guest_access.disableConfirmButton",defaultMessage:"Save and Disable Guest Access"}),onConfirm:d,onCancel:i}))};ll.propTypes={id:k().string.isRequired,value:k().bool.isRequired,onChange:k().func.isRequired,cancelSubmit:k().func.isRequired,disabled:k().bool,setByEnv:k().bool.isRequired,showConfirm:k().bool.isRequired};const dl=ll;function cl(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function ml(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const ul=(0,N.defineMessages)({termsOfServiceTitle:{id:"admin.support.termsOfServiceTitle",defaultMessage:"Custom Terms of Service"},enableTermsOfServiceTitle:{id:"admin.support.enableTermsOfServiceTitle",defaultMessage:"Enable Custom Terms of Service"},termsOfServiceTextTitle:{id:"admin.support.termsOfServiceTextTitle",defaultMessage:"Custom Terms of Service Text"},termsOfServiceTextHelp:{id:"admin.support.termsOfServiceTextHelp",defaultMessage:"Text that will appear in your custom Terms of Service. Supports Markdown-formatted text."},termsOfServiceReAcceptanceTitle:{id:"admin.support.termsOfServiceReAcceptanceTitle",defaultMessage:"Re-Acceptance Period:"},termsOfServiceReAcceptanceHelp:{id:"admin.support.termsOfServiceReAcceptanceHelp",defaultMessage:"The number of days before Terms of Service acceptance expires, and the terms must be re-accepted."},enableTermsOfServiceHelp:{id:"admin.support.enableTermsOfServiceHelp",defaultMessage:"When true, new users must accept the terms of service before accessing any Mattermost teams on desktop, web or mobile. Existing users must accept them after login or a page refresh. To update terms of service link displayed in account creation and login pages, go to <a>Site Configuration > Customization</a>"}}),pl=[ul.termsOfServiceTitle,ul.enableTermsOfServiceTitle,ul.enableTermsOfServiceHelp,ul.termsOfServiceTextTitle,ul.termsOfServiceTextHelp,ul.termsOfServiceReAcceptanceTitle,ul.termsOfServiceReAcceptanceHelp],gl=(0,a.connect)(null,(function(e){return{actions:(0,i.zH)({getTermsOfService:bi.AW,createTermsOfService:bi.mq},e)}}))(class extends Ia{constructor(e){var t,s;super(e),ml(this,"getConfigFromState",(e=>(e&&e.SupportSettings&&(e.SupportSettings.CustomTermsOfServiceEnabled=Boolean(this.state.termsEnabled),e.SupportSettings.CustomTermsOfServiceReAcceptancePeriod=this.parseIntNonZero(String(this.state.reAcceptancePeriod),mt.YM.DEFAULT_TERMS_OF_SERVICE_RE_ACCEPTANCE_PERIOD)),e))),ml(this,"doSubmit",(async e=>{var t,s;if(this.setState({saving:!0,serverError:null}),this.state.termsEnabled&&(this.state.receivedTermsText!==this.state.termsText||null===(t=this.props.config)||void 0===t||null===(s=t.SupportSettings)||void 0===s||!s.CustomTermsOfServiceEnabled)){const t=await this.props.actions.createTermsOfService(this.state.termsText);if(t.error)return void this.handleAPIError(t.error,e)}let a=JSON.parse(JSON.stringify(this.props.config));a=this.getConfigFromState(a);const{data:i,error:n}=await this.props.patchConfig(a);i?(this.setState(this.getStateFromConfig(i)),this.setState({saveNeeded:!1,saving:!1}),this.props.setNavigationBlocked(!1),e&&e(),this.handleSaved&&this.handleSaved(a)):n&&this.handleAPIError(function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?cl(Object(s),!0).forEach((function(t){ml(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):cl(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}({id:n.server_error_id},n),e,a)})),ml(this,"handleAPIError",((e,t,s)=>{this.setState({saving:!1,serverError:e.message,serverErrorId:e.id}),t&&t(),this.handleSaved&&s&&this.handleSaved(s)})),ml(this,"getTermsOfService",(async()=>{this.setState({loadingTermsText:!0});const{data:e}=await this.props.actions.getTermsOfService();e&&this.setState({termsText:e.text,receivedTermsText:e.text}),this.setState({loadingTermsText:!1})})),ml(this,"handleTermsTextChange",((e,t)=>{this.handleChange("termsText",t)})),ml(this,"handleTermsEnabledChange",((e,t)=>{this.handleChange("termsEnabled",t)})),ml(this,"handleReAcceptancePeriodChange",((e,t)=>{this.handleChange("reAcceptancePeriod",t)})),ml(this,"renderSettings",(()=>this.state.loadingTermsText?T().createElement(Na.A,null):T().createElement(is,null,T().createElement(j,{key:"customTermsOfServiceEnabled",id:"SupportSettings.CustomTermsOfServiceEnabled",label:T().createElement(N.FormattedMessage,ul.enableTermsOfServiceTitle),helpText:T().createElement(N.FormattedMessage,Object.assign({},ul.enableTermsOfServiceHelp,{values:{a:e=>T().createElement(w.Link,{to:"/admin_console/site_config/customization"},e)}})),value:Boolean(this.state.termsEnabled),onChange:this.handleTermsEnabledChange,setByEnv:this.isSetByEnv("SupportSettings.CustomTermsOfServiceEnabled"),disabled:this.props.isDisabled||!(this.props.license.IsLicensed&&"true"===this.props.license.CustomTermsOfService)}),T().createElement(ls,{key:"customTermsOfServiceText",id:"SupportSettings.CustomTermsOfServiceText",type:"textarea",label:T().createElement(N.FormattedMessage,ul.termsOfServiceTextTitle),helpText:T().createElement(N.FormattedMessage,ul.termsOfServiceTextHelp),onChange:this.handleTermsTextChange,setByEnv:this.isSetByEnv("SupportSettings.CustomTermsOfServiceText"),value:this.state.termsText,maxLength:mt.YM.MAX_TERMS_OF_SERVICE_TEXT_LENGTH,disabled:this.props.isDisabled||!this.state.termsEnabled}),T().createElement(ls,{key:"customTermsOfServiceReAcceptancePeriod",id:"SupportSettings.CustomTermsOfServiceReAcceptancePeriod",type:"number",label:T().createElement(N.FormattedMessage,ul.termsOfServiceReAcceptanceTitle),helpText:T().createElement(N.FormattedMessage,ul.termsOfServiceReAcceptanceHelp),value:this.state.reAcceptancePeriod||"",onChange:this.handleReAcceptancePeriodChange,setByEnv:this.isSetByEnv("SupportSettings.CustomTermsOfServiceReAcceptancePeriod"),disabled:this.props.isDisabled||!this.state.termsEnabled})))),this.state={termsEnabled:null===(t=e.config.SupportSettings)||void 0===t?void 0:t.CustomTermsOfServiceEnabled,reAcceptancePeriod:null===(s=e.config.SupportSettings)||void 0===s?void 0:s.CustomTermsOfServiceReAcceptancePeriod,loadingTermsText:!0,receivedTermsText:"",termsText:"",saveNeeded:!1,saving:!1,serverError:null,errorTooltip:!1}}getStateFromConfig(e){var t,s;return{termsEnabled:null===(t=e.SupportSettings)||void 0===t?void 0:t.CustomTermsOfServiceEnabled,reAcceptancePeriod:this.parseIntNonZero(String(null===(s=e.SupportSettings)||void 0===s?void 0:s.CustomTermsOfServiceReAcceptancePeriod),mt.YM.DEFAULT_TERMS_OF_SERVICE_RE_ACCEPTANCE_PERIOD)}}componentDidMount(){this.getTermsOfService()}renderTitle(){return T().createElement(N.FormattedMessage,ul.termsOfServiceTitle)}});function hl(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class fl extends A.PureComponent{constructor(e){super(e),hl(this,"stringToArray",(e=>e.split(",").map((e=>e.trim())).filter(Boolean))),hl(this,"arrayToString",(e=>e.join(","))),hl(this,"handleChange",(e=>{const t=this.stringToArray(e.target.value);this.props.onChange(this.props.id,t),this.setState({value:e.target.value})})),this.state={value:this.arrayToString(e.value)}}render(){return T().createElement(gt,{label:T().createElement(N.FormattedMessage,{id:"admin.customization.customUrlSchemes",defaultMessage:"Custom URL Schemes:"}),helpText:T().createElement(N.FormattedMessage,{id:"admin.customization.customUrlSchemesDesc",defaultMessage:'Allows message text to link if it begins with any of the comma-separated URL schemes listed. By default, the following schemes will create links: "http", "https", "ftp", "tel", and "mailto".'}),inputId:this.props.id,setByEnv:this.props.setByEnv},T().createElement(we.A,{id:this.props.id,className:"form-control",type:"text",placeholder:(0,N.defineMessage)({id:"admin.customization.customUrlSchemesPlaceholder",defaultMessage:'E.g.: "git,smtp"'}),value:this.state.value,onChange:this.handleChange,disabled:this.props.disabled||this.props.setByEnv}))}}var El=s(17983),bl=s(99068);function vl(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function yl(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?vl(Object(s),!0).forEach((function(t){Ml(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):vl(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Ml(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const _l=(0,N.defineMessages)({createJob_title:{id:"admin.data_retention.createJob.title",defaultMessage:"Run Deletion Job Now"},settings_title:{id:"admin.data_retention.settings.title",defaultMessage:"Data Retention Policies"},globalPolicy_title:{id:"admin.data_retention.globalPolicy.title",defaultMessage:"Global retention policy"},globalPolicy_subTitle:{id:"admin.data_retention.globalPolicy.subTitle",defaultMessage:"Keep messages and files for a set amount of time."},customPolicies_title:{id:"admin.data_retention.customPolicies.title",defaultMessage:"Custom retention policies"},customPolicies_subTitle:{id:"admin.data_retention.customPolicies.subTitle",defaultMessage:"Customize how long specific teams and channels will keep messages."},jobCreation_title:{id:"admin.data_retention.jobCreation.title",defaultMessage:"Policy log"},jobCreation_subTitle:{id:"admin.data_retention.jobCreation.subTitle",defaultMessage:"Daily log of messages and files removed based on the policies defined above."},createJob_instructions:{id:"admin.data_retention.createJob.instructions",defaultMessage:"Daily time to check policies and run delete job:"}}),Sl=[_l.createJob_title,_l.settings_title,_l.globalPolicy_title,_l.globalPolicy_subTitle,_l.customPolicies_title,_l.customPolicies_subTitle,_l.jobCreation_title,_l.jobCreation_subTitle,_l.createJob_instructions];class Cl extends T().PureComponent{constructor(e){super(e),Ml(this,"deleteCustomPolicy",(async e=>{await this.props.actions.deleteDataRetentionCustomPolicy(e),this.loadPage(0)})),Ml(this,"getGlobalPolicyColumns",(()=>{const e=[{name:T().createElement(N.FormattedMessage,{id:"admin.data_retention.globalPoliciesTable.description",defaultMessage:"Description"}),field:"description"},{name:T().createElement(N.FormattedMessage,{id:"admin.data_retention.globalPoliciesTable.channelMessages",defaultMessage:"Channel messages"}),field:"channel_messages"},{name:T().createElement(N.FormattedMessage,{id:"admin.data_retention.globalPoliciesTable.files",defaultMessage:"Files"}),field:"files"}];return e.push({name:"",field:"actions",className:"actionIcon"}),e})),Ml(this,"getCustomPolicyColumns",(()=>[{name:T().createElement(N.FormattedMessage,{id:"admin.data_retention.customPoliciesTable.description",defaultMessage:"Description"}),field:"description"},{name:T().createElement(N.FormattedMessage,{id:"admin.data_retention.customPoliciesTable.channelMessages",defaultMessage:"Channel messages"}),field:"channel_messages"},{name:T().createElement(N.FormattedMessage,{id:"admin.data_retention.customPoliciesTable.appliedTo",defaultMessage:"Applied to"}),field:"applied_to"},{name:"",field:"actions",className:"actionIcon"}])),Ml(this,"getGlobalRetentionSetting",((e,t)=>{if(!e)return T().createElement(N.FormattedMessage,{id:"admin.data_retention.form.keepForever",defaultMessage:"Keep forever"});const s=parseInt(t||"",10);if(s&&s%8760==0){const e=s/8760;return T().createElement(N.FormattedMessage,{id:"admin.data_retention.retention_years",defaultMessage:"{count} {count, plural, one {year} other {years}}",values:{count:"".concat(e)}})}if(s&&s%24==0){const e=s/24;return T().createElement(N.FormattedMessage,{id:"admin.data_retention.retention_days",defaultMessage:"{count} {count, plural, one {day} other {days}}",values:{count:"".concat(e)}})}return T().createElement(N.FormattedMessage,{id:"admin.data_retention.retention_hours",defaultMessage:"{count} {count, plural, one {hour} other {hours}}",values:{count:"".concat(t)}})})),Ml(this,"getMessageRetentionSetting",((e,t)=>{if(!e)return T().createElement(N.FormattedMessage,{id:"admin.data_retention.form.keepForever",defaultMessage:"Keep forever"});if(t&&t%365==0){const e=t/365;return T().createElement(N.FormattedMessage,{id:"admin.data_retention.retention_years",defaultMessage:"{count} {count, plural, one {year} other {years}}",values:{count:"".concat(e)}})}return T().createElement(N.FormattedMessage,{id:"admin.data_retention.retention_days",defaultMessage:"{count} {count, plural, one {day} other {days}}",values:{count:"".concat(t)}})})),Ml(this,"getGlobalPolicyRows",(()=>{const{DataRetentionSettings:e}=this.props.config;return[{cells:{description:this.props.intl.formatMessage({id:"admin.data_retention.form.text",defaultMessage:"Applies to all teams and channels, but does not apply to custom retention policies."}),channel_messages:T().createElement("div",{"data-testid":"global_message_retention_cell"},this.getGlobalRetentionSetting(null==e?void 0:e.EnableMessageDeletion,this.props.globalMessageRetentionHours)),files:T().createElement("div",{"data-testid":"global_file_retention_cell"},this.getGlobalRetentionSetting(null==e?void 0:e.EnableFileDeletion,this.props.globalFileRetentionHours)),actions:T().createElement(bl.A,{isDisabled:!1,stopPropagationOnToggle:!0},T().createElement("div",{className:"text-right"},T().createElement("a",null,T().createElement("i",{className:"icon icon-dots-vertical"}))),T().createElement(El.A,{openLeft:!1,openUp:!1,ariaLabel:this.props.intl.formatMessage({id:"admin.user_item.menuAriaLabel",defaultMessage:"User Actions Menu"})},T().createElement(El.A.ItemAction,{show:!0,onClick:()=>{(0,Li.J)().push("/admin_console/compliance/data_retention_settings/global_policy")},text:this.props.intl.formatMessage({id:"admin.data_retention.globalPoliciesTable.edit",defaultMessage:"Edit"}),disabled:!1,buttonClass:"edit_global_policy"})))},onClick:()=>{(0,Li.J)().push("/admin_console/compliance/data_retention_settings/global_policy")}}]})),Ml(this,"getChannelAndTeamCounts",(e=>0===e.channel_count&&0===e.team_count?T().createElement(N.FormattedMessage,{id:"admin.data_retention.channel_team_counts_empty",defaultMessage:"N/A"}):T().createElement(N.FormattedMessage,{id:"admin.data_retention.channel_team_counts",defaultMessage:"{team_count} {team_count, plural, one {team} other {teams}}, {channel_count} {channel_count, plural, one {channel} other {channels}}",values:{team_count:e.team_count,channel_count:e.channel_count}}))),Ml(this,"getCustomPolicyRows",((e,t)=>{let s=Object.values(this.props.customPolicies);return s=s.slice(e-1,t),s.map((e=>{const t="customDescription-".concat(e.id),s="customDuration-".concat(e.id),a="customAppliedTo-".concat(e.id),i="customWrapper-".concat(e.id);return{cells:{description:T().createElement("div",{id:t},e.display_name),channel_messages:T().createElement("div",{id:s},this.getMessageRetentionSetting(-1!==e.post_duration,e.post_duration)),applied_to:T().createElement("div",{id:a},this.getChannelAndTeamCounts(e)),actions:T().createElement(bl.A,{isDisabled:!1,stopPropagationOnToggle:!0,id:i},T().createElement("div",{className:"text-right"},T().createElement("a",null,T().createElement("i",{className:"icon icon-dots-vertical"}))),T().createElement(El.A,{openLeft:!1,openUp:!1,ariaLabel:this.props.intl.formatMessage({id:"admin.user_item.menuAriaLabel",defaultMessage:"User Actions Menu"})},T().createElement(El.A.ItemAction,{show:!0,onClick:()=>{(0,Li.J)().push("/admin_console/compliance/data_retention_settings/custom_policy/".concat(e.id))},text:this.props.intl.formatMessage({id:"admin.data_retention.globalPoliciesTable.edit",defaultMessage:"Edit"}),disabled:!1}),T().createElement(El.A.ItemAction,{show:!0,onClick:()=>{this.deleteCustomPolicy(e.id)},text:this.props.intl.formatMessage({id:"admin.data_retention.globalPoliciesTable.delete",defaultMessage:"Delete"}),disabled:!1})))},onClick:()=>{(0,Li.J)().push("/admin_console/compliance/data_retention_settings/custom_policy/".concat(e.id))}}}))})),Ml(this,"loadPage",(async e=>{this.setState({customPoliciesLoading:!0}),await this.props.actions.getDataRetentionCustomPolicies(e),this.setState({page:e,customPoliciesLoading:!1})})),Ml(this,"componentDidMount",(async()=>{await this.loadPage(this.state.page)})),Ml(this,"nextPage",(()=>{this.loadPage(this.state.page+1)})),Ml(this,"previousPage",(()=>{this.loadPage(this.state.page-1)})),Ml(this,"getPaginationProps",(()=>{const{page:e}=this.state,t=10*e+1,s=this.props.customPoliciesCount;let a=10*(e+1);return a=a>s?s:a,{startCount:t,endCount:a,total:s}})),Ml(this,"showEditJobTime",(e=>{this.setState({showEditJobTime:e})})),Ml(this,"componentDidUpdate",((e,t)=>{var s;t.showEditJobTime!==this.state.showEditJobTime&&this.state.showEditJobTime&&(null===(s=this.inputRef.current)||void 0===s||s.focus())})),Ml(this,"handleCreateJob",(async e=>{null==e||e.preventDefault();const t={type:mt.jj.DATA_RETENTION};await this.props.actions.createJob(t),await this.props.actions.getJobsByType(mt.jj.DATA_RETENTION)})),Ml(this,"changeJobTimeConfig",(async e=>{var t;const s=JSON.parse(JSON.stringify(this.props.config));s.DataRetentionSettings.DeletionJobStartTime=e,await this.props.actions.patchConfig(s),null===(t=this.inputRef.current)||void 0===t||t.blur()})),Ml(this,"getJobStartTime",(()=>{var e;const{DataRetentionSettings:t}=this.props.config,s=null==t||null===(e=t.DeletionJobStartTime)||void 0===e?void 0:e.split(":");if(!s)return null;let a=parseInt(s[0],10);return a<12?(0===a&&(a=12),T().createElement(N.FormattedMessage,{id:"admin.data_retention.jobTimeAM",defaultMessage:"{time} AM (UTC)",values:{time:"".concat(a,":").concat(s[1])}})):(12!==a&&(a-=12),T().createElement(N.FormattedMessage,{id:"admin.data_retention.jobTimePM",defaultMessage:"{time} PM (UTC)",values:{time:"".concat(a,":").concat(s[1])}}))})),Ml(this,"getJobTimeOptions",(()=>{const e=[];return()=>{if(e.length>0)return e;const t=["00","15","30","45"];for(let s=0;s<24;s++){let a=s,i="".concat(s);const n=s>=12?"pm":"am";a<10&&(i="0".concat(i)),a>12&&(a-=12),0===a&&(a=12);for(let s=0;s<t.length;s++)e.push({label:"".concat(a,":").concat(t[s]).concat(n),value:"".concat(i,":").concat(t[s])})}return e}})),Ml(this,"getJobTimes",this.getJobTimeOptions()),Ml(this,"render",(()=>{const{DataRetentionSettings:e}=this.props.config,{startCount:t,endCount:s,total:a}=this.getPaginationProps();return T().createElement("div",{className:"wrapper--fixed DataRetentionSettings"},T().createElement(nt,null,T().createElement(N.FormattedMessage,_l.settings_title)),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement(mn,{expanded:!0,className:"console"},T().createElement(mn.Header,null,T().createElement(pn,{title:T().createElement(N.FormattedMessage,_l.globalPolicy_title),subtitle:T().createElement(N.FormattedMessage,_l.globalPolicy_subTitle)})),T().createElement(mn.Body,{expanded:!0},T().createElement("div",{id:"global_policy_table"},T().createElement(xe,{columns:this.getGlobalPolicyColumns(),rows:this.getGlobalPolicyRows(),loading:!1,page:0,nextPage:()=>{},previousPage:()=>{},startCount:1,endCount:4,total:0,className:"customTable"})))),T().createElement(mn,{expanded:!0,className:"console"},T().createElement(mn.Header,null,T().createElement(pn,{title:T().createElement(N.FormattedMessage,_l.customPolicies_title),subtitle:T().createElement(N.FormattedMessage,_l.customPolicies_subTitle),buttonText:T().createElement(N.FormattedMessage,{id:"admin.data_retention.customPolicies.addPolicy",defaultMessage:"Add policy"}),onClick:()=>{(0,Li.J)().push("/admin_console/compliance/data_retention_settings/custom_policy")}})),T().createElement(mn.Body,{expanded:!0},T().createElement("div",{id:"custom_policy_table"},T().createElement(xe,{columns:this.getCustomPolicyColumns(),rows:this.getCustomPolicyRows(t,s),loading:this.state.customPoliciesLoading,page:this.state.page,nextPage:this.nextPage,previousPage:this.previousPage,startCount:t,endCount:s,total:a,className:"customTable"})))),T().createElement(mn,{expanded:!0,className:"console"},T().createElement(mn.Header,null,T().createElement(pn,{title:T().createElement(N.FormattedMessage,_l.jobCreation_title),subtitle:T().createElement(N.FormattedMessage,_l.jobCreation_subTitle),buttonText:T().createElement(N.FormattedMessage,_l.createJob_title),isDisabled:"true"!==String(null==e?void 0:e.EnableMessageDeletion)&&"true"!==String(null==e?void 0:e.EnableFileDeletion)&&0===this.props.customPoliciesCount,onClick:this.handleCreateJob})),T().createElement(mn.Body,{expanded:!0},T().createElement(Ft,{jobType:mt.jj.DATA_RETENTION,hideJobCreateButton:!0,className:"job-table__data-retention",disabled:"true"!==String(null==e?void 0:e.EnableMessageDeletion)&&"true"!==String(null==e?void 0:e.EnableFileDeletion),createJobButtonText:T().createElement(N.FormattedMessage,_l.createJob_title),createJobHelpText:T().createElement("div",null,T().createElement(N.FormattedMessage,_l.createJob_instructions),this.state.showEditJobTime?T().createElement(Ut.Ay,{id:"JobSelectTime",className:"JobSelectTime",components:{DropdownIndicator:()=>null,IndicatorSeparator:()=>null},onChange:e=>{this.changeJobTimeConfig(e.value)},styles:{control:e=>yl(yl({},e),{},{height:32,minHeight:32}),menu:e=>yl(yl({},e),{},{width:210})},onBlur:()=>{this.showEditJobTime(!1)},value:{label:this.getJobStartTime(),value:null==e?void 0:e.DeletionJobStartTime},hideSelectedOptions:!0,isSearchable:!0,options:this.getJobTimes(),ref:this.inputRef,onFocus:()=>{this.showEditJobTime(!0)},menuIsOpen:this.state.showEditJobTime}):T().createElement("span",{className:"JobSelectedtime"},T().createElement("b",null,this.getJobStartTime())),T().createElement("a",{className:"EditJobTime",onClick:()=>this.showEditJobTime(!0)},this.props.intl.formatMessage({id:"admin.data_retention.globalPoliciesTable.edit",defaultMessage:"Edit"})))}))))))})),this.inputRef=(0,A.createRef)(),this.state={customPoliciesLoading:!0,page:0,loading:!1,showEditJobTime:!1}}}const Al=(0,N.injectIntl)(Cl),Tl=(0,a.connect)((function(e){return{customPolicies:(0,d.Qm)(e),customPoliciesCount:(0,d.JI)(e),globalMessageRetentionHours:(0,c.zj)(e).DataRetentionMessageRetentionHours,globalFileRetentionHours:(0,c.zj)(e).DataRetentionFileRetentionHours}}),(function(e){return{actions:(0,i.zH)({getDataRetentionCustomPolicies:n.Qm,createJob:Ct._S,getJobsByType:Ct.mF,deleteDataRetentionCustomPolicy:n.XP,patchConfig:n.tn},e)}}))(Al);function Nl(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const wl=10;class Rl extends T().PureComponent{constructor(e){var t;super(e),t=this,Nl(this,"pageLoaded",0),Nl(this,"componentDidMount",(()=>{this.loadPage(0,20)})),Nl(this,"setStateLoading",(e=>{this.setState({loading:e})})),Nl(this,"setStatePage",(e=>{this.setState({page:e})})),Nl(this,"loadPage",(async function(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:wl;t.props.policyId&&(t.setStateLoading(!0),await t.props.actions.getDataRetentionCustomPolicyChannels(t.props.policyId,e,s),t.setStateLoading(!1))})),Nl(this,"nextPage",(()=>{const e=this.state.page+1;this.loadPage(e+1),this.setStatePage(e)})),Nl(this,"previousPage",(()=>{const e=this.state.page-1;this.loadPage(e+1),this.setStatePage(e)})),Nl(this,"getVisibleTotalCount",(()=>{const{channelsToAdd:e,channelsToRemove:t,totalCount:s}=this.props;return s+(Object.keys(e).length-Object.keys(t).length)})),Nl(this,"getPaginationProps",(()=>{const{page:e}=this.state,t=e*wl+1,s=this.getVisibleTotalCount();let a=0;return a=(e+1)*wl,a=a>s?s:a,{startCount:t,endCount:a,total:s}})),Nl(this,"removeChannel",(e=>{const{channelsToRemove:t}=this.props;if(t[e.id]===e)return;let{page:s}=this.state;const{endCount:a}=this.getPaginationProps();this.props.onRemoveCallback(e),a>this.getVisibleTotalCount()&&a%wl==1&&s>0&&s--,this.setStatePage(s)})),Nl(this,"getColumns",(()=>[{name:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_list.nameHeader",defaultMessage:"Name"}),field:"name",fixed:!0},{name:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_list.teamHeader",defaultMessage:"Team"}),field:"team",fixed:!0},{name:"",field:"remove",textAlign:"right",fixed:!0}])),Nl(this,"getRows",(()=>{const{page:e}=this.state,{channels:t,channelsToRemove:s,channelsToAdd:a,totalCount:i}=this.props,{startCount:n,endCount:r}=this.getPaginationProps();let o=t;const l=Object.values(a);if(o=o.filter((e=>!s[e.id])),o=[...l,...o],o=o.slice(n-1,r),o.length<wl&&t.length<i){const t=Object.keys(s).length,a=e+Math.floor(t/wl)+1;a>this.pageLoaded&&(this.loadPage(a+1),this.pageLoaded=a)}return o.map((e=>{let t=T().createElement(Fn.A,{className:"channel-icon"});return e.type===mt.YM.PRIVATE_CHANNEL&&(t=T().createElement(Un.A,{className:"channel-icon"})),(0,Wi.Oj)(e)&&(t=T().createElement(Ln.A,{className:"channel-icon","data-testid":"".concat(e.name,"-archive-icon")})),{cells:{id:e.id,name:T().createElement("div",{className:"ChannelList__nameColumn",id:"channel-name-".concat(e.id)},t,T().createElement("div",{className:"ChannelList__nameText"},T().createElement("b",{id:"display-name-channel-".concat(e.id)},e.display_name))),team:e.team_display_name,remove:T().createElement("a",{id:"remove-channel-".concat(e.id),className:"group-actions TeamList_editText",onClick:t=>{t.preventDefault(),this.removeChannel(e)},href:"#"},T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.teams.remove",defaultMessage:"Remove"}))}}}))})),Nl(this,"onSearch",(async e=>{this.props.actions.setChannelListSearch(e)})),Nl(this,"searchDebounced",wn()((async()=>{const{policyId:e,searchTerm:t,filters:s,actions:a}=this.props;e&&await a.searchChannels(e,t,s),this.setStateLoading(!1)}),mt.YM.SEARCH_TIMEOUT_MILLISECONDS)),Nl(this,"onFilter",(async e=>{const t={},{public:s,private:a,deleted:i}=e.channels.values,{team_ids:n}=e.teams.values;(s.value||a.value||i.value||n.value.length)&&(t.public=s.value,t.private=a.value,t.deleted=i.value,t.team_ids=n.value),this.props.actions.setChannelListFilters(t)})),this.state={loading:!1,page:0}}async componentDidUpdate(e){const{policyId:t,searchTerm:s,filters:a}=this.props,i=!On()(e.filters,this.props.filters);if(e.searchTerm!==s||i){if(this.setStateLoading(!0),""===s)return i&&t?await e.actions.searchChannels(t,s,a):(await this.loadPage(1),this.setStatePage(0)),void this.setStateLoading(!1);this.searchDebounced()}}render(){const e=this.getRows(),t=this.getColumns(),{startCount:s,endCount:a,total:i}=this.getPaginationProps(),n={options:{teams:{name:"Teams",values:{team_ids:{name:T().createElement(N.FormattedMessage,{id:"admin.team_settings.title",defaultMessage:"Teams"}),value:[]}},keys:["team_ids"],type:Dn},channels:{name:"Channels",values:{public:{name:T().createElement(N.FormattedMessage,{id:"admin.channel_list.public",defaultMessage:"Public"}),value:!1},private:{name:T().createElement(N.FormattedMessage,{id:"admin.channel_list.private",defaultMessage:"Private"}),value:!1},deleted:{name:T().createElement(N.FormattedMessage,{id:"admin.channel_list.archived",defaultMessage:"Archived"}),value:!1}},keys:["public","private","deleted"]}},keys:["teams","channels"],onFilter:this.onFilter};return T().createElement("div",{className:"PolicyChannelsList"},T().createElement(xe,{columns:t,rows:e,loading:this.state.loading,page:this.state.page,nextPage:this.nextPage,previousPage:this.previousPage,startCount:s,endCount:a,total:i,className:"customTable",onSearch:this.onSearch,term:this.props.searchTerm,filterProps:n}))}}Nl(Rl,"propTypes",{channels:k().array.isRequired,totalCount:k().number.isRequired,searchTerm:k().string.isRequired,policyId:k().string,onRemoveCallback:k().func.isRequired,onAddCallback:k().func.isRequired,actions:k().shape({searchChannels:k().func.isRequired,getDataRetentionCustomPolicyChannels:k().func.isRequired,setChannelListSearch:k().func.isRequired,setChannelListFilters:k().func.isRequired}).isRequired});const Ol=(0,a.connect)((function(){const e=(0,Hi.oI)();return(t,s)=>{var a;let{channelsToAdd:i}=s,n=[],r=0;const o=s.policyId,l=o?(0,d.eb)(t,o):{},c=t.views.search.channelListSearch.term||"",m=(null===(a=t.views.search.channelListSearch)||void 0===a?void 0:a.filters)||{};return c||m&&0!==Object.keys(m).length?(n=o?(0,Hi.Mf)(t,o,c,m):[],i=function(e,t,s){let a=(0,qi._d)(Object.keys(e).map((t=>e[t])),t);return a=(0,Hi.GP)(a,s),(0,qi.fv)(a)}(i,c,m),r=n.length):(n=o?e(t,{policyId:o}):[],null!=l&&l.channel_count&&(r=l.channel_count)),{channels:n,totalCount:r,searchTerm:c,channelsToAdd:i,filters:m}}}),(function(e){return{actions:(0,i.zH)({getDataRetentionCustomPolicyChannels:n.U6,searchChannels:n.gd,setChannelListSearch:gn.SH,setChannelListFilters:gn.l4},e)}}))(Rl),Il="FOREVER",kl="YEARS",Pl="DAYS",xl=()=>({value:Il,label:T().createElement("div",null,T().createElement("i",{className:"icon icon-infinity option-icon"}),T().createElement("span",{className:"option_forever"},D.Vw({id:"admin.data_retention.form.keepForever",defaultMessage:"Keep forever"})))}),Dl=()=>({value:kl,label:T().createElement("span",{className:"option_years"},D.Vw({id:"admin.data_retention.form.years",defaultMessage:"Years"}))}),Ll=()=>({value:Pl,label:T().createElement("span",{className:"option_days"},D.Vw({id:"admin.data_retention.form.days",defaultMessage:"Days"}))}),Fl=()=>({value:"HOURS",label:T().createElement("span",{className:"option_hours"},D.Vw({id:"admin.data_retention.form.hours",defaultMessage:"Hours"}))});var Ul=s(93036);function Bl(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const jl=10;class Hl extends T().PureComponent{constructor(e){var t;super(e),t=this,Bl(this,"pageLoaded",0),Bl(this,"componentDidMount",(()=>{this.loadPage(0,20)})),Bl(this,"setStateLoading",(e=>{this.setState({loading:e})})),Bl(this,"setStatePage",(e=>{this.setState({page:e})})),Bl(this,"loadPage",(async function(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:jl;t.props.policyId&&(t.setStateLoading(!0),await t.props.actions.getDataRetentionCustomPolicyTeams(t.props.policyId,e,s),t.setStateLoading(!1))})),Bl(this,"nextPage",(()=>{const e=this.state.page+1;this.loadPage(e+1),this.setStatePage(e)})),Bl(this,"previousPage",(()=>{const e=this.state.page-1;this.loadPage(e+1),this.setStatePage(e)})),Bl(this,"getVisibleTotalCount",(()=>{const{teamsToAdd:e,teamsToRemove:t,totalCount:s}=this.props;return s+(Object.keys(e).length-Object.keys(t).length)})),Bl(this,"getPaginationProps",(()=>{const{page:e}=this.state,t=e*jl+1,s=this.getVisibleTotalCount();let a=0;return a=(e+1)*jl,a=a>s?s:a,{startCount:t,endCount:a,total:s}})),Bl(this,"removeTeam",(e=>{const{teamsToRemove:t}=this.props;if(t[e.id]===e)return;let{page:s}=this.state;const{endCount:a}=this.getPaginationProps();this.props.onRemoveCallback(e),a>this.getVisibleTotalCount()&&a%jl==1&&s>0&&s--,this.setStatePage(s)})),Bl(this,"getColumns",(()=>[{name:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_list.nameHeader",defaultMessage:"Name"}),field:"name",fixed:!0},{name:"",field:"remove",textAlign:"right",fixed:!0,className:"TeamList__actionColumn"}])),Bl(this,"getRows",(()=>{const{page:e}=this.state,{teams:t,teamsToRemove:s,teamsToAdd:a,totalCount:i}=this.props,{startCount:n,endCount:r}=this.getPaginationProps();let o=t;const l=Object.values(a);if(o=o.filter((e=>!s[e.id])),o=[...l,...o],o=o.slice(n-1,r),o.length<jl&&t.length<i){const t=Object.keys(s).length,a=e+Math.floor(t/jl)+1;a>this.pageLoaded&&(this.loadPage(a+1),this.pageLoaded=a)}return o.map((e=>({cells:{id:e.id,name:T().createElement("div",{className:"TeamList__nameColumn",id:"team-name-".concat(e.id)},T().createElement("div",{className:"TeamList__lowerOpacity"},T().createElement(Le.A,{size:"sm",url:D.lt(e),content:e.display_name})),T().createElement("div",{className:"TeamList__nameText"},T().createElement("b",{"data-testid":"team-display-name"},e.display_name))),remove:T().createElement("a",{id:"remove-team-".concat(e.id),className:"group-actions TeamList_editText",onClick:t=>{t.preventDefault(),this.removeTeam(e)},href:"#"},T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.teams.remove",defaultMessage:"Remove"}))}})))})),Bl(this,"onSearch",(async e=>{this.props.actions.setTeamListSearch(e)})),Bl(this,"searchDebounced",wn()((async()=>{const{policyId:e,searchTerm:t,actions:s}=this.props;e&&await s.searchTeams(e,t,{}),this.setStateLoading(!1)}),mt.Ay.SEARCH_TIMEOUT_MILLISECONDS)),this.state={loading:!1,page:0}}async componentDidUpdate(e){const{searchTerm:t}=this.props;if(e.searchTerm!==this.props.searchTerm){if(this.setStateLoading(!0),""===t)return await this.loadPage(1),void this.setStateLoading(!1);this.searchDebounced()}}render(){const e=this.getRows(),t=this.getColumns(),{startCount:s,endCount:a,total:i}=this.getPaginationProps();return T().createElement("div",{className:"PolicyTeamsList"},T().createElement(xe,{columns:t,rows:e,loading:this.state.loading,page:this.state.page,nextPage:this.nextPage,previousPage:this.previousPage,startCount:s,endCount:a,total:i,className:"customTable",onSearch:this.onSearch,term:this.props.searchTerm}))}}Bl(Hl,"propTypes",{teams:k().array.isRequired,totalCount:k().number.isRequired,searchTerm:k().string.isRequired,policyId:k().string,onRemoveCallback:k().func.isRequired,onAddCallback:k().func.isRequired,actions:k().shape({searchTeams:k().func.isRequired,getDataRetentionCustomPolicyTeams:k().func.isRequired,setTeamListSearch:k().func.isRequired}).isRequired});const Gl=(0,a.connect)((function(){const e=(0,p.ax)();return(t,s)=>{let{teamsToAdd:a}=s,i=[];const n=s.policyId,r=n&&(0,d.eb)(t,n)||{};let o=0;const l=t.views.search.teamListSearch||"";return i=n?e(t,{policyId:n}):[],l?(i=(0,p.q6)(i,l)||[],a=function(e,t){const s=(0,Ul.Dr)(Object.keys(e).map((t=>e[t])),t);return(0,Ul.DT)(s)}(a,l),o=i.length):null!=r&&r.team_count&&(o=r.team_count),{teams:i,totalCount:o,searchTerm:l,teamsToAdd:a}}}),(function(e){return{actions:(0,i.zH)({getDataRetentionCustomPolicyTeams:n.AF,searchTeams:n.Uk,setTeamListSearch:gn.Sb},e)}}))(Hl);function ql(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Vl(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class zl extends T().PureComponent{constructor(e){var t;super(e),t=this,Vl(this,"handleHide",(()=>{this.props.actions.setModalSearchTerm(""),this.setState({show:!1})})),Vl(this,"handleExit",(()=>{this.props.onModalDismissed&&this.props.onModalDismissed()})),Vl(this,"handleSubmit",(e=>{var t,s;e&&e.preventDefault(),0!==this.state.values.length&&(null===(t=(s=this.props).onTeamsSelected)||void 0===t||t.call(s,this.state.values),this.handleHide())})),Vl(this,"addValue",(function(e){let s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t.props.modalID===mt.IQ.ADD_TEAMS_TO_SCHEME&&null!==e.scheme_id&&""!==e.scheme_id&&!s)return void t.setState({confirmAddModal:!0,confirmAddTeam:e});const a=Object.assign([],t.state.values),i=a.map((e=>e.id));e&&e.id&&-1===i.indexOf(e.id)&&a.push(e),t.setState({values:a,confirmAddModal:!1,confirmAddTeam:null})})),Vl(this,"setTeamsLoadingState",(e=>{this.setState({loadingTeams:e})})),Vl(this,"handlePageChange",((e,t)=>{e>t&&(this.setTeamsLoadingState(!0),this.props.actions.loadTeams(e,51,!1,this.props.excludePolicyConstrained).then((()=>{this.setTeamsLoadingState(!1)})))})),Vl(this,"handleDelete",(e=>{this.setState({values:e})})),Vl(this,"search",((e,t)=>{0!==t.state.page&&t.setState({page:0}),this.props.actions.setModalSearchTerm(e)})),Vl(this,"renderOption",((e,t,s,a)=>{let i="";return t&&(i="more-modal__row--selected"),T().createElement("div",{key:e.id,ref:t?this.selectedItemRef:e.id,className:"more-modal__row clickable "+i,onClick:()=>s(e),onMouseMove:()=>a(e)},T().createElement("div",{className:"more-modal__details"},T().createElement("div",{className:"team-info-block"},T().createElement(Le.A,{content:e.display_name,url:(0,D.lt)(e)}),T().createElement("div",{className:"team-data"},T().createElement("div",{className:"title"},e.display_name)))),T().createElement("div",{className:"more-modal__actions"},T().createElement("button",{className:"more-modal__actions--round","aria-label":this.props.intl.formatMessage({id:"add_teams_to_scheme.select_team.label",defaultMessage:"Select team {label}"},{label:e.label})},T().createElement("i",{className:"fa fa-plus"}))))})),this.searchTimeoutId=0,this.state={values:[],show:!0,search:!1,loadingTeams:!0,confirmAddModal:!1,confirmAddTeam:null},this.selectedItemRef=T().createRef()}componentDidMount(){this.props.actions.loadTeams(0,51,!1,this.props.excludePolicyConstrained).then((()=>{this.setTeamsLoadingState(!1)}))}componentDidUpdate(e){if(this.props.searchTerm!==e.searchTerm){clearTimeout(this.searchTimeoutId);const e=this.props.searchTerm;if(""===e)return;this.searchTimeoutId=window.setTimeout((async()=>{this.setTeamsLoadingState(!0),await this.props.actions.searchTeams(e),this.setTeamsLoadingState(!1)}),mt.Ay.SEARCH_TIMEOUT_MILLISECONDS)}}renderValue(e){return e.data.display_name}renderConfirmModal(e,t){const s=T().createElement(N.FormattedMessage,{id:"add_teams_to_scheme.confirmation.title",defaultMessage:"Team Override Scheme Change?"}),a=T().createElement(N.FormattedMessage,{id:"add_teams_to_scheme.confirmation.message",defaultMessage:"This team is already selected in another team scheme, are you sure you want to move it to this team scheme?"}),i=T().createElement(N.FormattedMessage,{id:"add_teams_to_scheme.confirmation.accept",defaultMessage:"Yes, Move Team"});return T().createElement(Ta.A,{show:e,title:s,message:a,confirmButtonText:i,onCancel:()=>this.setState({confirmAddModal:!1,confirmAddTeam:null}),onConfirm:()=>this.addValue(t,!0)})}render(){const e=this.renderConfirmModal(this.state.confirmAddModal,this.state.confirmAddTeam),t=T().createElement(N.FormattedMessage,{id:"multiselect.selectTeams",defaultMessage:"Use ↑↓ to browse, ↵ to select."}),s=(0,N.defineMessage)({id:"multiselect.add",defaultMessage:"Add"});let a=[];this.props.teams&&(a=this.props.teams.filter((e=>0===e.delete_at)),a=a.filter((e=>e.scheme_id!==this.currentSchemeId)),a=this.props.excludeGroupConstrained?a.filter((e=>!e.group_constrained)):a,this.props.alreadySelected&&(a=a.filter((e=>{var t;return-1===(null===(t=this.props.alreadySelected)||void 0===t?void 0:t.indexOf(e.id))}))),this.props.excludePolicyConstrained&&(a=a.filter((e=>null===e.policy_id))),a.sort(((e,t)=>{const s=e.display_name.toUpperCase(),a=t.display_name.toUpperCase();return s===a?0:s>a?1:-1})));const i=a.map((e=>function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?ql(Object(s),!0).forEach((function(t){Vl(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):ql(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}({label:e.name,value:e.id},e)));return T().createElement(hn.Modal,{dialogClassName:"a11y__modal more-modal more-direct-channels team-selector-modal",show:this.state.show,onHide:this.handleHide,onExited:this.handleExit,role:"none","aria-labelledby":"teamSelectorModalLabel"},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,{componentClass:"h1",id:"teamSelectorModalLabel"},T().createElement(N.FormattedMessage,{id:"add_teams_to_scheme.modalTitle",defaultMessage:"Add Teams to Team Selection List"}))),T().createElement(hn.Modal.Body,null,e,T().createElement(fn.A,{key:"addTeamsToSchemeKey",options:i,optionRenderer:this.renderOption,intl:this.props.intl,selectedItemRef:this.selectedItemRef,values:this.state.values,valueRenderer:this.renderValue,perPage:50,handlePageChange:this.handlePageChange,handleInput:this.search,handleDelete:this.handleDelete,handleAdd:this.addValue,handleSubmit:this.handleSubmit,numRemainingText:t,buttonSubmitText:s,saving:!1,loading:this.state.loadingTeams,placeholderText:(0,N.defineMessage)({id:"multiselect.addTeamsPlaceholder",defaultMessage:"Search and add teams"})})))}}Vl(zl,"propTypes",{currentSchemeId:k().string,alreadySelected:k().arrayOf(k().string),excludeGroupConstrained:k().bool,searchTerm:k().string.isRequired,teams:k().array.isRequired,onModalDismissed:k().func,onTeamsSelected:k().func,modalID:k().string,actions:k().shape({loadTeams:k().func.isRequired,setModalSearchTerm:k().func.isRequired,searchTeams:k().func.isRequired}).isRequired,data:k().any,excludePolicyConstrained:k().bool});const Wl=(0,N.injectIntl)(zl),Yl=(0,a.connect)((function(e){const t=e.views.search.modalSearch,s=Object.values((0,p.ZN)(e)||{}).filter((e=>e.display_name.toLowerCase().startsWith(t.toLowerCase())||e.description.toLowerCase().startsWith(t.toLowerCase())));return{searchTerm:t,teams:s}}),(function(e){return{actions:(0,i.zH)({loadTeams:o.ZN,setModalSearchTerm:gn.qv,searchTeams:o.Fo},e)}}))(Wl);var Zl=s(7453);const Jl=["value","placeholder","className","name","legend","onDropdownChange","onInputChange","error","exceptionToInput","width","inputValue","inputType","defaultValue","dropdownClassNamePrefix","inputId"];function Kl(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Ql(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Kl(Object(s),!0).forEach((function(t){Xl(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Kl(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Xl(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const $l={input:e=>Ql(Ql({},e),{},{color:"var(--center-channel-color)"}),control:e=>Ql(Ql({},e),{},{border:"none",boxShadow:"none",padding:"0 2px",cursor:"pointer",minHeight:"40px",borderRadius:"0"}),indicatorSeparator:e=>Ql(Ql({},e),{},{display:"none"}),menuPortal:e=>Ql(Ql({},e),{},{zIndex:99999999})},ed=e=>T().createElement("div",{className:"DropdownInput__indicatorsContainer"},T().createElement(Zl.c.IndicatorsContainer,e,T().createElement("i",{className:"icon icon-chevron-down"}))),td=e=>T().createElement("div",{className:"DropdownInput__controlContainer"},T().createElement(Zl.c.Control,e)),sd=e=>T().createElement("div",{className:oe()("DropdownInput__option",{selected:e.isSelected,focused:e.isFocused})},T().createElement(Zl.c.Option,e)),ad=e=>{const{value:t,placeholder:s,className:a,name:i,legend:n,onDropdownChange:r,onInputChange:o,error:l,exceptionToInput:d,width:c,inputValue:m,inputType:u,defaultValue:p,dropdownClassNamePrefix:g,inputId:h}=e,f=function(e,t){if(null==e)return{};var s,a,i=function(e,t){if(null==e)return{};var s={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;s[a]=e[a]}return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)s=n[a],-1===t.indexOf(s)&&{}.propertyIsEnumerable.call(e,s)&&(i[s]=e[s])}return i}(e,Jl),E=(0,N.useIntl)(),b=(0,A.useRef)(null),v=(0,A.useRef)(null),[y,M]=(0,A.useState)(!1),[_,S]=(0,A.useState)(!1),[C,w]=(0,A.useState)(Boolean(m));(0,A.useEffect)((()=>{var e;C&&!m&&(null===(e=v.current)||void 0===e||e.focus())}),[C]),(0,A.useEffect)((()=>{y||R(m,!1)}),[m]),(0,A.useEffect)((()=>{m||_||y||(r(p),R(""))}),[_,y]);const R=function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];var s;!e||d.includes(e)?w(!1):(w(!0),t&&(null===(s=v.current)||void 0===s||s.focus()))},O=Boolean(_||t);return T().createElement("div",{className:"DropdownInput hybrid_container",ref:b,style:{width:"100%"}},T().createElement("fieldset",{className:oe()("Input_fieldset",a,{Input_fieldset___error:l,Input_fieldset___legend:O,Input_fieldset___split:C})},T().createElement("legend",{className:oe()("Input_legend",{Input_legend___focus:O})},O?(0,Ti.H6)(E.formatMessage,n||s):null),T().createElement("div",{className:oe()("Input_wrapper input_hybrid_wrapper",{showInput:C}),onFocus:()=>M(!0),onBlur:()=>M(!1),style:{maxWidth:C?"10000px":"0"}},T().createElement("input",{name:"Input_".concat(i),type:u||"text",value:m,onChange:o,placeholder:(0,Ti.H6)(E.formatMessage,s),required:!1,className:oe()("Input form-control"),ref:v,id:h,disabled:e.isDisabled})),T().createElement("div",{className:oe()("Input_wrapper dropdown_hybrid_wrapper",{showInput:!C}),onFocus:t=>{var s;S(!0),null===(s=e.onFocus)||void 0===s||s.call(e,t)},onBlur:t=>{var s;S(!1),null===(s=e.onBlur)||void 0===s||s.call(e,t)},style:{width:C?"".concat(c,"px"):"100%"}},T().createElement(Ut.Ay,Object.assign({id:"DropdownInput_".concat(i),placeholder:_?"":(0,Ti.H6)(E.formatMessage,s),components:{IndicatorsContainer:ed,Option:sd,Control:td},className:oe()("Input",a,{Input__focus:O}),classNamePrefix:g,onChange:e=>{e&&(R(e.value),r(e))},styles:Ql(Ql({},$l),C?{menu:e=>Ql(Ql({},e),{},{width:b.current?"".concat(b.current.offsetWidth,"px"):"0px",left:v.current?"-".concat(v.current.offsetWidth,"px"):"0px"})}:{}),value:t,hideSelectedOptions:!0,isSearchable:!1,menuPortalTarget:document.body,isDisabled:e.isDisabled},f)))))};ad.propTypes={error:k().string,onDropdownChange:k().func.isRequired,onInputChange:k().func.isRequired,className:k().string,name:k().string,exceptionToInput:k().arrayOf(k().string).isRequired,width:k().number.isRequired,inputValue:k().string.isRequired,inputType:k().string,dropdownClassNamePrefix:k().string,inputId:k().string};const id=ad;function nd(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function rd(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?nd(Object(s),!0).forEach((function(t){od(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):nd(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function od(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class ld extends T().PureComponent{constructor(e){super(e),od(this,"openAddChannel",(()=>{this.setState({addChannelOpen:!0})})),od(this,"closeAddChannel",(()=>{this.setState({addChannelOpen:!1})})),od(this,"openAddTeam",(()=>{this.setState({addTeamOpen:!0})})),od(this,"closeAddTeam",(()=>{this.setState({addTeamOpen:!1})})),od(this,"getMessageRetentionDefaultInputValue",(()=>!this.props.policy||0===Object.keys(this.props.policy).length||this.props.policy&&-1===this.props.policy.post_duration?"":this.props.policy&&this.props.policy.post_duration%365==0?(this.props.policy.post_duration/365).toString():this.props.policy.post_duration.toString())),od(this,"getMessageRetentionDefaultDropdownValue",(()=>!this.props.policyId||this.props.policy&&-1===this.props.policy.post_duration?xl():this.props.policy&&this.props.policy.post_duration%365==0?Dl():Ll())),od(this,"componentDidMount",(async()=>{this.loadPage()})),od(this,"loadPage",(async()=>{var e;this.props.policyId&&(await this.props.actions.fetchPolicy(this.props.policyId),this.setState({policyName:null===(e=this.props.policy)||void 0===e?void 0:e.display_name,messageRetentionInputValue:this.getMessageRetentionDefaultInputValue(),messageRetentionDropdownValue:this.getMessageRetentionDefaultDropdownValue()}))})),od(this,"addToNewTeams",(e=>{let{removedTeamsCount:t}=this.state;const{newTeams:s,removedTeams:a}=this.state;e.forEach((e=>{var i;(null===(i=a[e.id])||void 0===i?void 0:i.id)===e.id?(delete a[e.id],t-=1):s[e.id]=e})),this.setState({newTeams:rd({},s),removedTeams:rd({},a),removedTeamsCount:t,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),od(this,"addToRemovedTeams",(e=>{var t,s;let{removedTeamsCount:a}=this.state;const{newTeams:i,removedTeams:n}=this.state;(null===(t=i[e.id])||void 0===t?void 0:t.id)===e.id?delete i[e.id]:(null===(s=n[e.id])||void 0===s?void 0:s.id)!==e.id&&(a+=1,n[e.id]=e),this.setState({removedTeams:rd({},n),newTeams:rd({},i),removedTeamsCount:a,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),od(this,"addToNewChannels",(e=>{let{removedChannelsCount:t}=this.state;const{newChannels:s,removedChannels:a}=this.state;e.forEach((e=>{var i;(null===(i=a[e.id])||void 0===i?void 0:i.id)===e.id?(delete a[e.id],t-=1):s[e.id]=e})),this.setState({newChannels:rd({},s),removedChannels:rd({},a),removedChannelsCount:t,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),od(this,"addToRemovedChannels",(e=>{var t,s;let{removedChannelsCount:a}=this.state;const{newChannels:i,removedChannels:n}=this.state;(null===(t=i[e.id])||void 0===t?void 0:t.id)===e.id?delete i[e.id]:(null===(s=n[e.id])||void 0===s?void 0:s.id)!==e.id&&(a+=1,n[e.id]=e),this.setState({removedChannels:rd({},n),newChannels:rd({},i),removedChannelsCount:a,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),od(this,"getTeamsToExclude",(()=>{const{teams:e}=this.props,{newTeams:t,removedTeams:s}=this.state;let a=null==e?void 0:e.map((e=>e.id));const i=Object.keys(t);var n;return a&&(a=null===(n=a)||void 0===n?void 0:n.filter((e=>!s[e])),a=[...i,...a]),a})),od(this,"handleSubmit",(async()=>{const{policyName:e,messageRetentionInputValue:t,messageRetentionDropdownValue:s,newTeams:a,removedTeams:i,newChannels:n,removedChannels:r}=this.state,{policyId:o,policy:l}=this.props,{updateDataRetentionCustomPolicy:d,addDataRetentionCustomPolicyTeams:c,removeDataRetentionCustomPolicyTeams:m,addDataRetentionCustomPolicyChannels:u,removeDataRetentionCustomPolicyChannels:p}=this.props.actions;this.setState({saving:!0});const g=Object.keys(a),h=Object.keys(i),f=Object.keys(n),E=Object.keys(r);let b=!1,v=parseInt(t,10);if(v<=0)this.setState({formErrorText:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.form.durationInput.error",defaultMessage:"Error parsing message retention."}),saving:!1});else if(s.value===Il?v=-1:this.state.messageRetentionDropdownValue.value===kl&&(v=365*parseInt(t,10)),null!=e&&e.trim()){if(o&&l){const t={display_name:e,post_duration:v};if((null==l?void 0:l.team_count)+g.length-h.length==0&&(null==l?void 0:l.channel_count)+f.length-E.length==0)return void this.setState({formErrorText:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.form.teamsError",defaultMessage:"You must add a team or a channel to the policy."}),saving:!1});const s=[d(o,t)];g.length>0&&s.push(c(o,g)),h.length>0&&s.push(m(o,h)),f.length>0&&s.push(u(o,f)),E.length>0&&s.push(p(o,E));const a=await Promise.all(s);for(const e of a)e.error&&(b=!0)}else{if(g.length<1&&f.length<1)return void this.setState({formErrorText:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.form.teamsError",defaultMessage:"You must add a team or a channel to the policy."}),saving:!1});const t={display_name:e,post_duration:v,team_ids:g,channel_ids:f};(await this.props.actions.createDataRetentionCustomPolicy(t)).error&&(b=!0)}b?this.setState({serverError:!0,saving:!1}):(this.props.actions.setNavigationBlocked(!1),(0,Li.J)().push("/admin_console/compliance/data_retention_settings"))}else this.setState({inputErrorText:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.form.input.error",defaultMessage:"Policy name can't be blank."}),saving:!1})})),od(this,"render",(()=>{const{serverError:e,formErrorText:t}=this.state;return T().createElement("div",{className:"wrapper--fixed DataRetentionSettings"},T().createElement(nt,{withBackButton:!0},T().createElement("div",null,T().createElement(tt.A,{to:"/admin_console/compliance/data_retention_settings",className:"fa fa-angle-left back"}),T().createElement(N.FormattedMessage,{id:"admin.data_retention.customTitle",defaultMessage:"Custom Retention Policy"}))),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement(mn,{expanded:!0,className:"console"},T().createElement(mn.Header,null,T().createElement(pn,{title:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.form.title",defaultMessage:"Name and retention"}),subtitle:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.form.subTitle",defaultMessage:"Give your policy a name and configure retention settings."})})),T().createElement(mn.Body,{expanded:!0},T().createElement("div",{className:"CustomPolicy__fields"},T().createElement(Vo.A,{name:"policyName","aria-label":"Policy name",type:"text",value:this.state.policyName,onChange:e=>{this.setState({policyName:e.target.value,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)},placeholder:dd.policyName,customMessage:{type:mt.Kw.ERROR,value:this.state.inputErrorText}}),T().createElement(id,{onDropdownChange:e=>{this.state.messageRetentionDropdownValue.value!==e.value&&(this.setState({messageRetentionDropdownValue:e,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0))},onInputChange:e=>{this.setState({messageRetentionInputValue:e.target.value,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)},value:this.state.messageRetentionDropdownValue,inputValue:this.state.messageRetentionInputValue,width:95,exceptionToInput:[Il],defaultValue:xl(),options:[Ll(),Dl(),xl()],legend:dd.channelAndDirectMessageRetention,placeholder:dd.channelAndDirectMessageRetention,inputType:"number",name:"message_retention",dropdownClassNamePrefix:"message_retention",inputId:"message_retention_input"})))),this.state.addTeamOpen&&T().createElement(Yl,{onModalDismissed:this.closeAddTeam,onTeamsSelected:e=>{this.addToNewTeams(e)},modalID:"CUSTOM_POLICY_TEAMS",alreadySelected:Object.keys(this.state.newTeams),excludePolicyConstrained:!0}),T().createElement(mn,{expanded:!0,className:"console"},T().createElement(mn.Header,null,T().createElement(pn,{title:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.team_selector.title",defaultMessage:"Assigned teams"}),subtitle:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.team_selector.subTitle",defaultMessage:"Add teams that will follow this retention policy."}),buttonText:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.team_selector.addTeams",defaultMessage:"Add teams"}),onClick:this.openAddTeam})),T().createElement(mn.Body,{expanded:!0},T().createElement(Gl,{onRemoveCallback:this.addToRemovedTeams,onAddCallback:this.addToNewTeams,teamsToRemove:this.state.removedTeams,teamsToAdd:this.state.newTeams,policyId:this.props.policyId}))),this.state.addChannelOpen&&T().createElement(Sn,{onModalDismissed:this.closeAddChannel,onChannelsSelected:e=>{this.addToNewChannels(e)},groupID:"",alreadySelected:Object.keys(this.state.newChannels),excludePolicyConstrained:!0,excludeTeamIds:this.getTeamsToExclude()}),T().createElement(mn,{expanded:!0,className:"console"},T().createElement(mn.Header,null,T().createElement(pn,{title:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.channel_selector.title",defaultMessage:"Assigned channels"}),subtitle:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.channel_selector.subTitle",defaultMessage:"Add channels that will follow this retention policy."}),buttonText:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.channel_selector.addChannels",defaultMessage:"Add channels"}),onClick:this.openAddChannel})),T().createElement(mn.Body,{expanded:!0},T().createElement(Ol,{onRemoveCallback:this.addToRemovedChannels,onAddCallback:this.addToNewChannels,channelsToRemove:this.state.removedChannels,channelsToAdd:this.state.newChannels,policyId:this.props.policyId}))))),T().createElement("div",{className:"admin-console-save"},T().createElement(st.A,{saving:this.state.saving,disabled:!this.state.saveNeeded,onClick:this.handleSubmit,defaultMessage:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.save",defaultMessage:"Save"})}),T().createElement(tt.A,{className:"btn btn-tertiary",to:"/admin_console/compliance/data_retention_settings"},T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.cancel",defaultMessage:"Cancel"})),e&&T().createElement("span",{className:"CustomPolicy__error"},T().createElement("i",{className:"icon icon-alert-outline"}),T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.serverError",defaultMessage:"There are errors in the form above"})),t&&T().createElement("span",{className:"CustomPolicy__error"},T().createElement("i",{className:"icon icon-alert-outline"}),t)))})),this.state={policyName:"",addTeamOpen:!1,addChannelOpen:!1,messageRetentionInputValue:this.getMessageRetentionDefaultInputValue(),messageRetentionDropdownValue:this.getMessageRetentionDefaultDropdownValue(),removedTeamsCount:0,removedTeams:{},newTeams:{},removedChannelsCount:0,removedChannels:{},newChannels:{},saveNeeded:!1,saving:!1,serverError:!1,inputErrorText:"",formErrorText:""}}}od(ld,"propTypes",{policyId:k().string,teams:k().array,actions:k().shape({fetchPolicy:k().func.isRequired,fetchPolicyTeams:k().func.isRequired,createDataRetentionCustomPolicy:k().func.isRequired,updateDataRetentionCustomPolicy:k().func.isRequired,addDataRetentionCustomPolicyTeams:k().func.isRequired,removeDataRetentionCustomPolicyTeams:k().func.isRequired,addDataRetentionCustomPolicyChannels:k().func.isRequired,removeDataRetentionCustomPolicyChannels:k().func.isRequired,setNavigationBlocked:k().func.isRequired}).isRequired});const dd=(0,N.defineMessages)({channelAndDirectMessageRetention:{id:"admin.data_retention.form.channelAndDirectMessageRetention",defaultMessage:"Channel & direct message retention"},policyName:{id:"admin.data_retention.custom_policy.form.input",defaultMessage:"Policy name"}}),cd=(0,a.connect)((function(){const e=(0,p.ax)();return(t,s)=>{const a=s.match.params.policy_id;return{policyId:a,policy:(0,d.eb)(t,a),teams:a?e(t,{policyId:a}):[]}}}),(function(e){return{actions:(0,i.zH)({fetchPolicy:n.eb,fetchPolicyTeams:n.AF,createDataRetentionCustomPolicy:n.gj,updateDataRetentionCustomPolicy:n.Dq,addDataRetentionCustomPolicyTeams:n.jQ,removeDataRetentionCustomPolicyTeams:n.Wr,addDataRetentionCustomPolicyChannels:n.bg,removeDataRetentionCustomPolicyChannels:n.tg,setNavigationBlocked:h.Jb},e)}}))(ld);function md(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class ud extends T().PureComponent{constructor(e){super(e),md(this,"getDefaultInputValue",((e,t)=>{if(!e||void 0===t)return"";const s=parseInt(t,10);return s%8760==0?(s/8760).toString():s%24==0?(s/24).toString():t.toString()})),md(this,"getDefaultDropdownValue",((e,t)=>{if(!e||void 0===t)return xl();const s=parseInt(t,10);return s%8760==0?Dl():s%24==0?Ll():Fl()})),md(this,"handleSubmit",(async()=>{const{messageRetentionDropdownValue:e,messageRetentionInputValue:t,fileRetentionDropdownValue:s,fileRetentionInputValue:a}=this.state,i=JSON.parse(JSON.stringify(this.props.config));if(this.setState({saving:!0}),e.value!==Il&&parseInt(t,10)<1||s.value!==Il&&parseInt(a,10)<1)return void this.setState({formErrorText:T().createElement(N.FormattedMessage,{id:"admin.data_retention.global_policy.form.numberError",defaultMessage:"You must add a number greater than or equal to 1."}),saving:!1});i.DataRetentionSettings.EnableMessageDeletion=this.setDeletionEnabled(e.value),!this.isMessageRetentionSetByEnv()&&this.setDeletionEnabled(e.value)&&(i.DataRetentionSettings.MessageRetentionDays=0,i.DataRetentionSettings.MessageRetentionHours=this.setRetentionHours(e.value,t)),i.DataRetentionSettings.EnableFileDeletion=this.setDeletionEnabled(s.value),!this.isFileRetentionSetByEnv()&&this.setDeletionEnabled(s.value)&&(i.DataRetentionSettings.FileRetentionDays=0,i.DataRetentionSettings.FileRetentionHours=this.setRetentionHours(s.value,a));const{error:n}=await this.props.actions.patchConfig(i);n?this.setState({serverError:n.message,saving:!1}):(this.props.actions.setNavigationBlocked(!1),(0,Li.J)().push("/admin_console/compliance/data_retention_settings"))})),md(this,"setDeletionEnabled",(e=>e!==Il)),md(this,"setRetentionHours",((e,t)=>e===kl?24*parseInt(t,10)*365:e===Pl?24*parseInt(t,10):parseInt(t,10))),md(this,"isMessageRetentionSetByEnv",(()=>{var e,t,s,a,i,n,r,o,l;return(null===(e=this.props.environmentConfig)||void 0===e||null===(t=e.DataRetentionSettings)||void 0===t?void 0:t.MessageRetentionDays)&&(null===(s=this.props.config.DataRetentionSettings)||void 0===s?void 0:s.MessageRetentionDays)&&this.props.config.DataRetentionSettings.MessageRetentionDays>0||(null===(a=this.props.environmentConfig)||void 0===a||null===(i=a.DataRetentionSettings)||void 0===i?void 0:i.MessageRetentionHours)&&(null===(n=this.props.config.DataRetentionSettings)||void 0===n?void 0:n.MessageRetentionHours)&&this.props.config.DataRetentionSettings.MessageRetentionHours>0||(null===(r=this.props.environmentConfig)||void 0===r||null===(o=r.DataRetentionSettings)||void 0===o?void 0:o.EnableMessageDeletion)&&!(null!==(l=this.props.config.DataRetentionSettings)&&void 0!==l&&l.EnableMessageDeletion)})),md(this,"isFileRetentionSetByEnv",(()=>{var e,t,s,a,i,n,r,o,l;return(null===(e=this.props.environmentConfig)||void 0===e||null===(t=e.DataRetentionSettings)||void 0===t?void 0:t.FileRetentionDays)&&(null===(s=this.props.config.DataRetentionSettings)||void 0===s?void 0:s.FileRetentionDays)&&this.props.config.DataRetentionSettings.FileRetentionDays>0||(null===(a=this.props.environmentConfig)||void 0===a||null===(i=a.DataRetentionSettings)||void 0===i?void 0:i.FileRetentionHours)&&(null===(n=this.props.config.DataRetentionSettings)||void 0===n?void 0:n.FileRetentionHours)&&this.props.config.DataRetentionSettings.FileRetentionHours>0||(null===(r=this.props.environmentConfig)||void 0===r||null===(o=r.DataRetentionSettings)||void 0===o?void 0:o.EnableFileDeletion)&&!(null!==(l=this.props.config.DataRetentionSettings)&&void 0!==l&&l.EnableFileDeletion)})),md(this,"render",(()=>T().createElement("div",{className:"wrapper--fixed DataRetentionSettings"},T().createElement(nt,{withBackButton:!0},T().createElement("div",null,T().createElement(tt.A,{to:"/admin_console/compliance/data_retention_settings",className:"fa fa-angle-left back"}),T().createElement(N.FormattedMessage,{id:"admin.data_retention.globalPolicyTitle",defaultMessage:"Global Retention Policy"}))),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement(mn,{expanded:!0,className:"console"},T().createElement(mn.Body,null,T().createElement("div",{className:"global_policy"},T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"admin.data_retention.form.text",defaultMessage:"Applies to all teams and channels, but does not apply to custom retention policies."})),T().createElement("div",{id:"global_direct_message_dropdown"},T().createElement(id,{onDropdownChange:e=>{this.state.messageRetentionDropdownValue.value!==e.value&&(this.setState({messageRetentionDropdownValue:e,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0))},onInputChange:e=>{this.setState({messageRetentionInputValue:e.target.value,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)},value:this.state.messageRetentionDropdownValue,inputValue:this.state.messageRetentionInputValue,width:90,exceptionToInput:[Il],isDisabled:this.isMessageRetentionSetByEnv(),defaultValue:xl(),options:[Fl(),Ll(),Dl(),xl()],legend:pd.channelAndMessageRetention,placeholder:pd.channelAndMessageRetention,name:"channel_message_retention",inputType:"number",dropdownClassNamePrefix:"channel_message_retention_dropdown",inputId:"channel_message_retention_input"}),this.isMessageRetentionSetByEnv()&&T().createElement(L,null)),T().createElement("div",{id:"global_file_dropdown"},T().createElement(id,{onDropdownChange:e=>{this.state.fileRetentionDropdownValue.value!==e.value&&(this.setState({fileRetentionDropdownValue:e,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0))},onInputChange:e=>{this.setState({fileRetentionInputValue:e.target.value,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)},value:this.state.fileRetentionDropdownValue,inputValue:this.state.fileRetentionInputValue,width:90,exceptionToInput:[Il],isDisabled:this.isFileRetentionSetByEnv(),defaultValue:xl(),options:[Fl(),Ll(),Dl(),xl()],legend:pd.fileRetention,placeholder:pd.fileRetention,name:"file_retention",inputType:"number",dropdownClassNamePrefix:"file_retention_dropdown",inputId:"file_retention_input"}),this.isFileRetentionSetByEnv()&&T().createElement(L,null))))))),T().createElement("div",{className:"admin-console-save"},T().createElement(st.A,{saving:this.state.saving,disabled:!this.state.saveNeeded,onClick:this.handleSubmit,defaultMessage:T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.save",defaultMessage:"Save"})}),T().createElement(tt.A,{className:"btn btn-tertiary",to:"/admin_console/compliance/data_retention_settings"},T().createElement(N.FormattedMessage,{id:"admin.data_retention.custom_policy.cancel",defaultMessage:"Cancel"})),this.state.serverError&&T().createElement("span",{className:"CustomPolicy__error"},T().createElement("i",{className:"icon icon-alert-outline"}),this.state.serverError),this.state.formErrorText&&T().createElement("span",{className:"CustomPolicy__error"},T().createElement("i",{className:"icon icon-alert-outline"}),this.state.formErrorText)))));const{DataRetentionSettings:t}=e.config;this.state={saveNeeded:!1,saving:!1,serverError:null,formErrorText:"",messageRetentionDropdownValue:this.getDefaultDropdownValue(null==t?void 0:t.EnableMessageDeletion,e.messageRetentionHours),messageRetentionInputValue:this.getDefaultInputValue(null==t?void 0:t.EnableMessageDeletion,e.messageRetentionHours),fileRetentionDropdownValue:this.getDefaultDropdownValue(null==t?void 0:t.EnableFileDeletion,e.fileRetentionHours),fileRetentionInputValue:this.getDefaultInputValue(null==t?void 0:t.EnableFileDeletion,e.fileRetentionHours)}}}md(ud,"propTypes",{actions:k().shape({patchConfig:k().func.isRequired,setNavigationBlocked:k().func.isRequired}).isRequired});const pd=(0,N.defineMessages)({channelAndMessageRetention:{id:"admin.data_retention.form.channelAndDirectMessageRetention",defaultMessage:"Channel & direct message retention"},fileRetention:{id:"admin.data_retention.form.fileRetention",defaultMessage:"File retention"}}),gd=(0,a.connect)((function(e){return{messageRetentionHours:(0,c.zj)(e).DataRetentionMessageRetentionHours,fileRetentionHours:(0,c.zj)(e).DataRetentionFileRetentionHours,environmentConfig:(0,d.Qq)(e)}}),(function(e){return{actions:(0,i.zH)({patchConfig:n.tn,setNavigationBlocked:h.Jb},e)}}))(ud),hd=e=>{let{createHelpText:t,className:s,actions:a}=e;const[i,n]=(0,A.useState)([]);(0,A.useEffect)((()=>{!async function(){const e=await a.getAppliedSchemaMigrations();e.data&&n(e.data)}()}),[]);const r=(0,A.useMemo)((()=>i.map((e=>T().createElement("tr",{key:e.version},T().createElement("td",{className:"whitespace--nowrap"},e.version),T().createElement("td",{className:"whitespace--nowrap"},e.name))))),[i]);return T().createElement("div",{className:oe()("MigrationsTable","migrations-table__panel",s)},T().createElement("div",{className:"help-text"},t),T().createElement("div",{className:"migrations-table__table"},T().createElement("table",{className:"table","data-testid":"migrationsTable"},T().createElement("thead",null,T().createElement("tr",null,T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.database.migrations_table.version",defaultMessage:"Version"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.database.migrations_table.name",defaultMessage:"Name"})))),T().createElement("tbody",null,r))))};hd.propTypes={createHelpText:k().element.isRequired,className:k().string,actions:k().shape({getAppliedSchemaMigrations:k().func.isRequired}).isRequired};const fd=T().memo(hd),Ed=(0,a.connect)(null,(function(e){return{actions:(0,i.zH)({getAppliedSchemaMigrations:n.s6},e)}}))(fd);function bd(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function vd(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?bd(Object(s),!0).forEach((function(t){yd(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):bd(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function yd(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Md=(0,N.defineMessages)({title:{id:"admin.database.title",defaultMessage:"Database Settings"},recycleDescription:{id:"admin.recycle.recycleDescription",defaultMessage:'Deployments using multiple databases can switch from one master database to another without restarting the Mattermost server by updating "config.json" to the new desired configuration and using the {reloadConfiguration} feature to load the new settings while the server is running. The administrator should then use {featureName} feature to recycle the database connections based on the new settings.'},featureName:{id:"admin.recycle.recycleDescription.featureName",defaultMessage:"Recycle Database Connections"},reloadConfiguration:{id:"admin.recycle.recycleDescription.reloadConfiguration",defaultMessage:"Environment > Web Server > Reload Configuration from Disk"},button:{id:"admin.recycle.button",defaultMessage:"Recycle Database Connections"},noteDescription:{id:"admin.sql.noteDescription",defaultMessage:"Changing properties in this section will require a server restart before taking effect."},disableDatabaseSearchTitle:{id:"admin.sql.disableDatabaseSearchTitle",defaultMessage:"Disable database search: "},disableDatabaseSearchDescription:{id:"admin.sql.disableDatabaseSearchDescription",defaultMessage:"Disables the use of the database to perform searches. Should only be used when other <link>search engines</link> are configured."},driverName:{id:"admin.sql.driverName",defaultMessage:"Driver Name:"},driverNameDescription:{id:"admin.sql.driverNameDescription",defaultMessage:"Set the database driver in the config.json file."},dataSource:{id:"admin.sql.dataSource",defaultMessage:"Data Source:"},dataSourceDescription:{id:"admin.sql.dataSourceDescription",defaultMessage:"Set the database source in the config.json file."},maxConnectionsTitle:{id:"admin.sql.maxConnectionsTitle",defaultMessage:"Maximum Idle Connections:"},maxConnectionsDescription:{id:"admin.sql.maxConnectionsDescription",defaultMessage:"Maximum number of idle connections held open to the database."},maxOpenTitle:{id:"admin.sql.maxOpenTitle",defaultMessage:"Maximum Open Connections:"},maxOpenDescription:{id:"admin.sql.maxOpenDescription",defaultMessage:"Maximum number of open connections held open to the database."},queryTimeoutTitle:{id:"admin.sql.queryTimeoutTitle",defaultMessage:"Query Timeout:"},queryTimeoutDescription:{id:"admin.sql.queryTimeoutDescription",defaultMessage:"The number of seconds to wait for a response from the database after opening a connection and sending the query. Errors that you see in the UI or in the logs as a result of a query timeout can vary depending on the type of query."},connMaxLifetimeTitle:{id:"admin.sql.connMaxLifetimeTitle",defaultMessage:"Maximum Connection Lifetime:"},connMaxLifetimeDescription:{id:"admin.sql.connMaxLifetimeDescription",defaultMessage:"Maximum lifetime for a connection to the database in milliseconds."},connMaxIdleTimeTitle:{id:"admin.sql.connMaxIdleTimeTitle",defaultMessage:"Maximum Connection Idle Time:"},connMaxIdleTimeDescription:{id:"admin.sql.connMaxIdleTimeDescription",defaultMessage:"Maximum idle time for a connection to the database in milliseconds."},minimumHashtagLengthTitle:{id:"admin.service.minimumHashtagLengthTitle",defaultMessage:"Minimum Hashtag Length:"},minimumHashtagLengthDescription:{id:"admin.service.minimumHashtagLengthDescription",defaultMessage:"Minimum number of characters in a hashtag. This must be greater than or equal to 2. MySQL databases must be configured to support searching strings shorter than three characters, <link>see documentation</link>."},traceTitle:{id:"admin.sql.traceTitle",defaultMessage:"SQL Statement Logging: "},traceDescription:{id:"admin.sql.traceDescription",defaultMessage:"(Development Mode) When true, executing SQL statements are written to the log."}}),_d=[Md.title,[Md.recycleDescription,{featureName:"",reloadConfiguration:""}],Md.featureName,Md.reloadConfiguration,Md.button,Md.noteDescription,Md.disableDatabaseSearchTitle,Md.disableDatabaseSearchDescription,Md.driverName,Md.driverNameDescription,Md.dataSource,Md.dataSourceDescription,Md.maxConnectionsTitle,Md.maxConnectionsDescription,Md.maxOpenTitle,Md.maxOpenDescription,Md.queryTimeoutTitle,Md.queryTimeoutDescription,Md.connMaxLifetimeTitle,Md.connMaxLifetimeDescription,Md.connMaxIdleTimeTitle,Md.connMaxIdleTimeDescription,Md.traceTitle,Md.traceDescription];function Sd(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Cd=(0,N.defineMessages)({title:{id:"admin.elasticsearch.title",defaultMessage:"Elasticsearch"},enableIndexingTitle:{id:"admin.elasticsearch.enableIndexingTitle",defaultMessage:"Enable Elasticsearch Indexing:"},enableIndexingDescription:{id:"admin.elasticsearch.enableIndexingDescription",defaultMessage:'When true, indexing of new posts occurs automatically. Search queries will use database search until "Enable Elasticsearch for search queries" is enabled. <link>Learn more about Elasticsearch in our documentation.</link>'},connectionUrlTitle:{id:"admin.elasticsearch.connectionUrlTitle",defaultMessage:"Server Connection Address:"},connectionUrlDescription:{id:"admin.elasticsearch.connectionUrlDescription",defaultMessage:"The address of the Elasticsearch server. <link>Please see documentation with server setup instructions.</link>"},skipTLSVerificationTitle:{id:"admin.elasticsearch.skipTLSVerificationTitle",defaultMessage:"Skip TLS Verification:"},skipTLSVerificationDescription:{id:"admin.elasticsearch.skipTLSVerificationDescription",defaultMessage:"When true, Mattermost will not require the Elasticsearch certificate to be signed by a trusted Certificate Authority."},usernameTitle:{id:"admin.elasticsearch.usernameTitle",defaultMessage:"Server Username:"},usernameDescription:{id:"admin.elasticsearch.usernameDescription",defaultMessage:"(Optional) The username to authenticate to the Elasticsearch server."},passwordTitle:{id:"admin.elasticsearch.passwordTitle",defaultMessage:"Server Password:"},passwordDescription:{id:"admin.elasticsearch.passwordDescription",defaultMessage:"(Optional) The password to authenticate to the Elasticsearch server."},sniffTitle:{id:"admin.elasticsearch.sniffTitle",defaultMessage:"Enable Cluster Sniffing:"},sniffDescription:{id:"admin.elasticsearch.sniffDescription",defaultMessage:"When true, sniffing finds and connects to all data nodes in your cluster automatically."},testHelpText:{id:"admin.elasticsearch.testHelpText",defaultMessage:'Tests if the Mattermost server can connect to the Elasticsearch server specified. Testing the connection only saves the configuration if the test is successful. A successful test will also re-initialize the client if you have started Elasticsearch after starting Mattermost. But this will not restart the workers. To do that, please toggle "Enable Elasticsearch Indexing".'},elasticsearch_test_button:{id:"admin.elasticsearch.elasticsearch_test_button",defaultMessage:"Test Connection"},bulkIndexingTitle:{id:"admin.elasticsearch.bulkIndexingTitle",defaultMessage:"Bulk Indexing:"},help:{id:"admin.elasticsearch.createJob.help",defaultMessage:"All users, channels and posts in the database will be indexed from oldest to newest. Elasticsearch is available during indexing but search results may be incomplete until the indexing job is complete."},rebuildChannelsIndexTitle:{id:"admin.elasticsearch.rebuildChannelsIndexTitle",defaultMessage:"Rebuild Channels Index"},rebuildChannelIndexHelpText:{id:"admin.elasticsearch.rebuildChannelsIndex.helpText",defaultMessage:"This purges the channels index and re-indexes all channels in the database, from oldest to newest. Channel autocomplete is available during indexing but search results may be incomplete until the indexing job is complete.\n<b>Note- Please ensure no other indexing job is in progress in the table above.</b>"},rebuildChannelsIndexButtonText:{id:"admin.elasticsearch.rebuildChannelsIndex.title",defaultMessage:"Rebuild Channels Index"},purgeIndexesHelpText:{id:"admin.elasticsearch.purgeIndexesHelpText",defaultMessage:"Purging will entirely remove the indexes on the Elasticsearch server. Search results may be incomplete until a bulk index of the existing database is rebuilt."},purgeIndexesButton:{id:"admin.elasticsearch.purgeIndexesButton",defaultMessage:"Purge Index"},label:{id:"admin.elasticsearch.purgeIndexesButton.label",defaultMessage:"Purge Indexes:"},enableSearchingTitle:{id:"admin.elasticsearch.enableSearchingTitle",defaultMessage:"Enable Elasticsearch for search queries:"},enableSearchingDescription:{id:"admin.elasticsearch.enableSearchingDescription",defaultMessage:"Requires a successful connection to the Elasticsearch server. When true, Elasticsearch will be used for all search queries using the latest index. Search results may be incomplete until a bulk index of the existing post database is finished. When false, database search is used."}}),Ad=[[Cd.connectionUrlDescription,{documentationLink:""}],[Cd.enableIndexingDescription,{documentationLink:""}],Cd.title,Cd.enableIndexingTitle,Cd.connectionUrlTitle,Cd.skipTLSVerificationTitle,Cd.skipTLSVerificationDescription,Cd.usernameTitle,Cd.usernameDescription,Cd.passwordTitle,Cd.passwordDescription,Cd.sniffTitle,Cd.sniffDescription,Cd.testHelpText,Cd.elasticsearch_test_button,Cd.bulkIndexingTitle,Cd.help,Cd.purgeIndexesHelpText,Cd.purgeIndexesButton,Cd.label,Cd.enableSearchingTitle,Cd.enableSearchingDescription],Td=e=>T().createElement("svg",{width:e.width?e.width.toString():"184",height:e.height?e.height.toString():"113",viewBox:"0 0 184 113",fill:"none",xmlns:"http://www.w3.org/2000/svg"},T().createElement("rect",{x:"2.745",y:"15",width:"181",height:"78",rx:"5.625",fill:"var(--center-channel-color)",fillOpacity:"0.12"}),T().createElement("path",{d:"M11.4834 28L16.9999 33.5618V59L172 59L172 68",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 7 29)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M59.1304 15H126.87L131 108H55L59.1304 15Z",fill:"var(--center-channel-color)",fillOpacity:"0.24"}),T().createElement("rect",{width:"92",height:"5",transform:"matrix(1 0 0 -1 47 113)",fill:"var(--center-channel-color)",fillOpacity:"0.4"}),T().createElement("rect",{x:"27",y:"9",width:"131",height:"86",rx:"4",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"4"}),T().createElement("circle",{cx:"87.9995",cy:"41.0007",r:"5",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M95.9995 41.0007H149.056",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M95.9995 45.0007H149.056",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M95.9995 37.0007H109.175",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"87.9995",cy:"60.0005",r:"5",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M95.9995 60.0005H149.056",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M95.9995 64.0005H149.056",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M95.9995 56.0005H109.175",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"87.9995",cy:"79.0003",r:"5",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M95.9995 79.0003H149.056",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M95.9995 83.0003H149.056",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M95.9995 75.0003H109.175",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("rect",{x:"31",y:"13",width:"46",height:"78",fill:"#1C58D9",fillOpacity:"0.16"}),T().createElement("path",{d:"M46.8109 20.0273L63.5002 20.0273",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M46.8109 22.6628L56.4732 22.6628",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"38.5092",cy:"20.5105",r:"4.34771",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("circle",{cx:"36.4795",cy:"36.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M42.4189 36.1602H67.0137",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"36.4795",cy:"43.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M42.4189 43.1602H61.7434",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"36.4795",cy:"51.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M42.4189 51.1602H69.6489",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"36.4795",cy:"58.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M42.4189 58.1602H67.0137",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"36.4795",cy:"65.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M42.4189 65.1602H61.7434",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"36.4795",cy:"72.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M42.4189 72.1602H69.6489",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M147 101.5H119.5",stroke:"var(--center-channel-color)",strokeLinecap:"round",strokeLinejoin:"round"}),T().createElement("path",{d:"M116 101.5H110",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),T().createElement("path",{d:"M107 101.5H101",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),T().createElement("path",{d:"M29 13C29 11.8954 29.8954 11 31 11H154C155.105 11 156 11.8954 156 13V30H29V13Z",fill:"#28427B"}),T().createElement("path",{d:"M50 18H74.5948",stroke:"var(--neutral-0)",strokeLinecap:"round"}),T().createElement("path",{d:"M50 22H131",stroke:"var(--neutral-0)",strokeLinecap:"round"}),T().createElement("circle",{cx:"39.5",cy:"20.5",r:"5",stroke:"var(--neutral-0)"}),T().createElement("line",{x1:"39.5",y1:"20",x2:"39.5",y2:"23",stroke:"var(--neutral-0)"}),T().createElement("line",{x1:"39.5",y1:"20",x2:"39.5",y2:"23",stroke:"var(--neutral-0)"}),T().createElement("line",{x1:"39.5",y1:"18",x2:"39.5",y2:"19",stroke:"white"}),T().createElement("circle",{cx:"172",cy:"84",r:"2",transform:"rotate(-90 172 84)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("circle",{cx:"172",cy:"78",r:"2",transform:"rotate(-90 172 78)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("circle",{cx:"172",cy:"72",r:"2",transform:"rotate(-90 172 72)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}));Td.propTypes={width:k().number,height:k().number};const Nd=Td;var wd=s(28458),Rd=s(57932),Od=s(85866);const Id=()=>T().createElement(N.FormattedMessage,{id:"admin.license.trial-request.embargoed",defaultMessage:"We were unable to process the request due to limitations for embargoed countries. <link>Learn more in our documentation</link>, or reach out to legal@mattermost.com for questions around export limitations.",values:{link:e=>T().createElement(wt.A,{location:"trial_banner",href:mt.vx.EMBARGOED_COUNTRIES},e)}});var kd=function(e){return e.NotStarted="NOT_STARTED",e.Started="STARTED",e.Success="SUCCESS",e.Failed="FAILED",e.Embargoed="EMBARGOED",e}(kd||{});const Pd=(xd=e=>{let t,s,i,n,{isDisabled:r,gettingTrialError:o,gettingTrialResponseCode:l,gettingTrial:d,enterpriseReady:c,upgradingPercentage:u,handleUpgrade:p,upgradeError:h,restartError:f,handleRestart:E,restarting:b,openEEModal:v,openTrialForm:y,upgradeDisabled:M}=e;const{formatMessage:_}=(0,N.useIntl)(),S=(0,a.useSelector)((e=>(0,m.Jz)(e,mt.pm.UNIQUE,mt.Ew.REQUEST_TRIAL_AFTER_SERVER_UPGRADE))),C=(0,a.useSelector)((e=>(0,m.Jz)(e,mt.pm.UNIQUE,mt.Ew.CLICKED_UPGRADE_AND_TRIAL_BTN))),w=(0,a.useSelector)((e=>(0,g.WR)(e))),[R,O]=(0,A.useState)(kd.NotStarted),I=(0,a.useDispatch)(),k=()=>{y&&y()};(0,A.useEffect)((()=>{100===u&&C&&(b||async function(){await P(),E()}())}),[u,C]),(0,A.useEffect)((()=>{d&&!o&&200!==l?O(kd.Started):o?O(kd.Failed):451===l&&O(kd.Embargoed)}),[d,o,l]),(0,A.useEffect)((()=>{if(S&&C&&0===u){const e=mt.pm.UNIQUE,t=mt.Ew.REQUEST_TRIAL_AFTER_SERVER_UPGRADE,s=mt.Ew.CLICKED_UPGRADE_AND_TRIAL_BTN;I((0,Ga.SF)(w,[{category:e,name:t,user_id:w,value:""},{category:e,name:s,user_id:w,value:""}])),k()}}),[S,C]);const P=()=>{const e=mt.pm.UNIQUE,t=mt.Ew.REQUEST_TRIAL_AFTER_SERVER_UPGRADE;I((0,Ga.SF)(w,[{category:e,name:t,user_id:w,value:"true"}]))},x=T().createElement("a",{role:"button",onClick:v},T().createElement(N.FormattedMessage,{id:"admin.license.enterprise.upgrade.eeLicenseLink",defaultMessage:"Enterprise Edition License"}));return c&&!S?(o&&(n=451===l?T().createElement("div",{className:"trial-error"},T().createElement(Id,null)):T().createElement("p",{className:"trial-error"},T().createElement(N.FormattedMessage,{id:"admin.trial_banner.trial-request.error",defaultMessage:"Trial license could not be retrieved. Visit <link>{trialInfoLink}</link> to request a license.",values:{link:e=>T().createElement(wt.A,{location:"trial_banner",href:mt.vx.TRIAL_INFO_LINK},e),trialInfoLink:mt.vx.TRIAL_INFO_LINK}}))),t=T().createElement("button",{type:"button",className:"btn btn-primary",onClick:k,disabled:r||null!==o||451===l},(e=>{switch(e){case kd.Started:return _({id:"start_trial.modal.gettingTrial",defaultMessage:"Getting Trial..."});case kd.Success:return _({id:"start_trial.modal.loaded",defaultMessage:"Loaded!"});case kd.Failed:return _({id:"start_trial.modal.failed",defaultMessage:"Failed"});case kd.Embargoed:return _({id:"admin.license.trial-request.embargoed",defaultMessage:"We were unable to process the request due to limitations for embargoed countries. <link>Learn more in our documentation</link>, or reach out to legal@mattermost.com for questions around export limitations."},{link:e=>T().createElement(wt.A,{location:"trial_banner",href:mt.vx.EMBARGOED_COUNTRIES},e)});default:return _({id:"admin.license.trial-request.startTrial",defaultMessage:"Start trial"})}})(R)),i=T().createElement(T().Fragment,null,T().createElement(N.FormattedMessage,{id:"admin.license.trial-request.title",defaultMessage:"Experience all that Mattermost Enterprise Advanced has to offer with a free trial for the next 30 days. No obligation to buy and no credit card required. "}),T().createElement(N.FormattedMessage,{id:"admin.license.trial-request.accept-terms",defaultMessage:"By clicking <strong>Start trial</strong>, I agree to the <linkEvaluation>Mattermost Software and Services License Agreement</linkEvaluation>, <linkPrivacy>Privacy Policy</linkPrivacy>, and receiving product emails.",values:{strong:e=>T().createElement("strong",null,e),linkEvaluation:e=>T().createElement(wt.A,{href:mt.vx.SOFTWARE_SERVICES_LICENSE_AGREEMENT,location:"trial_banner"},e),linkPrivacy:e=>T().createElement(wt.A,{href:mt.L0.PRIVACY_POLICY,location:"trial_banner"},e)}})),s=null):M?(i=T().createElement(T().Fragment,null,T().createElement(N.FormattedMessage,{id:"admin.license.upgrade-and-trial-request.title",defaultMessage:"Upgrade to the Enterprise Edition to unlock a free 30-day trial of Mattermost Enterprise Advanced—our most powerful plan. No credit card required, no obligation to buy. "})),s=T().createElement("div",{className:"upgrade-error unsupported"},T().createElement("div",{className:"form-group has-error"},T().createElement("div",{className:"as-bs-label control-label"},T().createElement(N.FormattedMessage,{id:"admin.trial_banner.upgrade_unsupported",defaultMessage:"Quick upgrade is only supported on Linux systems with x86-64 architecture. <link>Learn how to upgrade manually.</link>",values:{link:e=>T().createElement(wt.A,{location:"trial_banner",href:mt.vx.UNSUPPORTED_UPGRADE_LINK},e)}}))))):(n=null,t=T().createElement("button",{type:"button",onClick:()=>{if(!p)return;p();const e=mt.pm.UNIQUE,t=mt.Ew.CLICKED_UPGRADE_AND_TRIAL_BTN;I((0,Ga.SF)(w,[{category:e,name:t,user_id:w,value:"true"}]))},className:"btn btn-primary"},T().createElement(Jt.A,{loading:u>0,text:100===u&&b?T().createElement(N.FormattedMessage,{id:"admin.license.enterprise.restarting",defaultMessage:"Restarting"}):T().createElement(N.FormattedMessage,{id:"admin.license.enterprise.upgrading",defaultMessage:"Upgrading {percentage}%",values:{percentage:u}})},T().createElement(N.FormattedMessage,{id:"admin.license.trialUpgradeAndRequest.submit",defaultMessage:"Upgrade Server And Start trial"}))),i=T().createElement(T().Fragment,null,T().createElement(N.FormattedMessage,{id:"admin.license.upgrade-and-trial-request.title",defaultMessage:"Upgrade to the Enterprise Edition to unlock a free 30-day trial of Mattermost Enterprise Advanced—our most powerful plan. No credit card required, no obligation to buy. "})),s=T().createElement(T().Fragment,null,T().createElement("p",{className:"upgrade-legal-terms"},T().createElement(N.FormattedMessage,{id:"admin.license.upgrade-and-trial-request.accept-terms-initial-part",defaultMessage:"By selecting <strong>Upgrade Server And Start trial</strong>, I agree to the <linkEvaluation>Mattermost Software and Services License Agreement</linkEvaluation>, <linkPrivacy>Privacy Policy</linkPrivacy>, and receiving product emails. ",values:{strong:e=>T().createElement("strong",null,e),linkEvaluation:e=>T().createElement(wt.A,{href:mt.vx.SOFTWARE_SERVICES_LICENSE_AGREEMENT,location:"trial_banner"},e),linkPrivacy:e=>T().createElement(wt.A,{href:mt.L0.PRIVACY_POLICY,location:"trial_banner"},e)}}),T().createElement(N.FormattedMessage,{id:"admin.license.upgrade-and-trial-request.accept-terms-final-part",defaultMessage:"Also, I agree to the terms of the Mattermost {eeModalTerms}. Upgrading will download the binary and update your Team Edition instance.",values:{eeModalTerms:x}})),h&&T().createElement("div",{className:"upgrade-error"},T().createElement("div",{className:"form-group has-error"},T().createElement("div",{className:"as-bs-label control-label",dangerouslySetInnerHTML:{__html:(0,Od.GP)(h)}}))),f&&T().createElement("div",{className:"upgrade-error"},T().createElement("div",{className:"form-group has-error"},T().createElement("div",{className:"as-bs-label control-label"},f))))),T().createElement(qa.A,{mode:"info",title:T().createElement(N.FormattedMessage,{id:"licensingPage.infoBanner.startTrialTitle",defaultMessage:"Start a free 30-day trial of Mattermost Enterprise Advanced"}),message:T().createElement("div",{className:"banner-start-trial"},T().createElement("p",{className:"license-trial-legal-terms"},i),T().createElement("div",{className:"trial"},t),s,n)})},e=>{const t=(0,Rd.A)();return T().createElement(xd,Object.assign({openTrialForm:t},e))});var xd,Dd=s(12895),Ld=s(33113);function Fd(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Ud extends T().PureComponent{constructor(e){super(e),Fd(this,"contactSalesFunc",(()=>{const{customer:e,isCloud:t}=this.props,s=(null==e?void 0:e.email)||"",a=(null==e?void 0:e.contact_first_name)||"",i=(null==e?void 0:e.contact_last_name)||"",n=(null==e?void 0:e.name)||"",r=t?"in-product-cloud":"in-product";(0,Ld.gc)(a,i,n,s,"mattermost",r)})),Fd(this,"renderPostTrialCta",(()=>{const{learnMoreURL:e}=this.props;return T().createElement("div",{className:"purchase-card"},T().createElement("button",{className:"btn btn-primary btn-lg","data-testid":"featureDiscovery_primaryCallToAction",onClick:()=>{this.contactSalesFunc()}},T().createElement(N.FormattedMessage,{id:"admin.ldap_feature_discovery_cloud.call_to_action.primary_sales",defaultMessage:"Contact sales"})),T().createElement(wt.A,{location:"feature_discovery",className:"btn btn-tertiary btn-lg",href:e,"data-testid":"featureDiscovery_secondaryCallToAction"},T().createElement(N.FormattedMessage,{id:"admin.ldap_feature_discovery.call_to_action.secondary",defaultMessage:"Learn more"})))})),Fd(this,"renderStartTrial",((e,t)=>{const{isCloud:s}=this.props;let a=T().createElement(Dd.A,{btnClass:"btn btn-primary",renderAsButton:!0});return s&&(a=T().createElement("button",{className:"btn btn-primary","data-testid":"featureDiscovery_primaryCallToAction",onClick:()=>{this.contactSalesFunc()}},T().createElement(N.FormattedMessage,{id:"admin.ldap_feature_discovery_cloud.call_to_action.primary_sales",defaultMessage:"Contact sales"}))),T().createElement(T().Fragment,null,a,T().createElement(wt.A,{location:"feature_discovery",className:"btn btn-secondary",href:e,"data-testid":"featureDiscovery_secondaryCallToAction"},T().createElement(N.FormattedMessage,{id:"admin.ldap_feature_discovery.call_to_action.secondary",defaultMessage:"Learn more"})),t,!this.props.isCloud&&T().createElement("p",{className:"trial-legal-terms"},T().createElement(N.FormattedMessage,{id:"admin.feature_discovery.trial-request.accept-terms",defaultMessage:"By clicking <highlight>Start trial</highlight>, I agree to the <linkEvaluation>Mattermost Software and Services License Agreement</linkEvaluation>, <linkPrivacy>Privacy Policy</linkPrivacy> and receiving product emails.",values:{highlight:e=>T().createElement("strong",null,e),linkEvaluation:e=>T().createElement(wt.A,{location:"feature_discovery",href:mt.vx.SOFTWARE_SERVICES_LICENSE_AGREEMENT},e),linkPrivacy:e=>T().createElement(wt.A,{location:"feature_discovery",href:mt.L0.PRIVACY_POLICY},e)}})))})),this.state={gettingTrial:!1,gettingTrialError:null,gettingTrialResponseCode:null}}componentDidMount(){this.props.actions.getPrevTrialLicense()}render(){var e;const{title:t,copy:s,learnMoreURL:a,featureDiscoveryImage:i,isCloud:n,isCloudTrial:r,isSubscriptionLoaded:o}=this.props;if(n&&!o)return T().createElement(ce.A,null);let l="";if(this.state.gettingTrialError&&451===this.state.gettingTrialResponseCode?l=T().createElement("p",{className:"trial-error"},T().createElement(Id,null)):this.state.gettingTrialError&&(l=T().createElement("p",{className:"trial-error"},T().createElement(N.FormattedMessage,{id:"admin.feature_discovery.trial-request.error",defaultMessage:"Trial license could not be retrieved. Visit <link>{trialInfoLink}</link> to request a license.",values:{link:e=>T().createElement(wt.A,{location:"feature_discovery",href:mt.vx.TRIAL_INFO_LINK},e),trialInfoLink:mt.vx.TRIAL_INFO_LINK}}))),n&&r&&o)return T().createElement("div",{className:"FeatureDiscovery"},T().createElement(qa.A,{mode:"info",title:T().createElement(N.FormattedMessage,{id:"admin.featureDiscovery.WarningTitle",defaultMessage:"Your trial has started and updates are being made to your license."}),message:T().createElement(T().Fragment,null,T().createElement(N.FormattedMessage,{id:"admin.featureDiscovery.WarningDescription",defaultMessage:"Your License is being updated to give you full access to all the Enterprise Features. This page will automatically refresh once the license update is complete. Please wait "}),T().createElement(ce.A,null))}));const d="true"===(null===(e=this.props.prevTrialLicense)||void 0===e?void 0:e.IsLicensed)||!1===this.props.isEnterpriseReady;return T().createElement("div",{className:"FeatureDiscovery","data-testid":"featureDiscovery"},T().createElement("div",{className:"FeatureDiscovery_copyWrapper"},T().createElement("div",{className:"FeatureDiscovery_title","data-testid":"featureDiscovery_title"},T().createElement(N.FormattedMessage,t)),T().createElement("div",{className:"FeatureDiscovery_copy"},T().createElement(N.FormattedMessage,s)),d?this.renderPostTrialCta():this.renderStartTrial(a,l)),T().createElement("div",{className:"FeatureDiscovery_imageWrapper"},i))}}Fd(Ud,"propTypes",{featureName:k().string.isRequired,learnMoreURL:k().string.isRequired,featureDiscoveryImage:k().element.isRequired,actions:k().shape({getPrevTrialLicense:k().func.isRequired,getCloudSubscription:k().func.isRequired,openModal:k().func.isRequired}).isRequired,isEnterpriseReady:k().bool.isRequired,isCloud:k().bool.isRequired,isCloudTrial:k().bool.isRequired,hadPrevCloudTrial:k().bool.isRequired,isSubscriptionLoaded:k().bool.isRequired,isPaidSubscription:k().bool.isRequired});const Bd=(0,wd.A)((0,a.connect)((function(e){const t=e.entities.cloud.subscription,s=(0,c.Ay)(e),a=(0,qs.P3)(s),i=(0,dt.gh)(e),n="true"===(null==t?void 0:t.is_free_trial),r=(0,dt.wX)(e),o=(0,c.zj)(e),l="true"===(null==o?void 0:o.BuildEnterpriseReady);return{stats:e.entities.admin.analytics,prevTrialLicense:e.entities.admin.prevTrialLicense,isCloud:a,isCloudTrial:n,isSubscriptionLoaded:null!=t,isEnterpriseReady:l,hadPrevCloudTrial:i,isPaidSubscription:a&&(null==s?void 0:s.SkuShortName)!==mt.gS.Starter&&!n,customer:r}}),(function(e){return{actions:(0,i.zH)({getPrevTrialLicense:n.fr,getCloudSubscription:Ur.dw,openModal:Gr.q},e)}}))(Ud)),jd=e=>T().createElement("svg",{width:e.width?e.width.toString():"189",height:e.height?e.height.toString():"116",viewBox:"0 0 186 116",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},T().createElement("g",{clipPath:"url(#clip0_4441_159184)"},T().createElement("rect",{x:"0.745117",y:"17",width:"181",height:"78",rx:"5.625",fill:"var(--center-channel-color)",fillOpacity:"0.12"}),T().createElement("path",{d:"M9.5 30L15 35.5V74.5H172.5V103.5",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 170 107)",fill:"var(--center-channel-color)"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 6 31)",fill:"var(--center-channel-color)"}),T().createElement("rect",{x:"25",y:"11",width:"131",height:"86",rx:"4",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"4"}),T().createElement("rect",{x:"29",y:"15",width:"46",height:"78",fill:"var(--button-bg)",fillOpacity:"0.16"}),T().createElement("path",{d:"M44.8109 22.0273L61.5002 22.0273",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M44.8109 24.6628L54.4732 24.6628",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M33.392 33.4453H46.5678",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"36.5092",cy:"22.5105",r:"4.34771",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("circle",{cx:"34.4795",cy:"38.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M40.4189 38.1602H65.0137",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"34.4795",cy:"45.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M40.4189 45.1602H59.7434",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"34.4795",cy:"53.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M40.4189 53.1602H67.6489",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"34.4795",cy:"60.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M40.4189 60.1602H65.0137",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"34.4795",cy:"67.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M40.4189 67.1602H59.7434",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"34.4795",cy:"74.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M40.4189 74.1602H67.6489",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M145 103.5H117.5",stroke:"var(--center-channel-color)",strokeLinecap:"round",strokeLinejoin:"round"}),T().createElement("path",{d:"M114 103.5H108",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),T().createElement("path",{d:"M105 103.5H99",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),T().createElement("path",{d:"M158.5 61C174.24 61 187 48.2401 187 32.5C187 16.7599 174.24 4 158.5 4C142.76 4 130 16.7599 130 32.5C130 48.2401 142.76 61 158.5 61Z",fill:"var(--neutral-1200)",fillOpacity:"0.24"}),T().createElement("path",{d:"M158.5 57C174.24 57 187 44.2401 187 28.5C187 12.7599 174.24 0 158.5 0C142.76 0 130 12.7599 130 28.5C130 44.2401 142.76 57 158.5 57Z",fill:"var(--indigo-400)"}),T().createElement("path",{d:"M158.5 36V13M158.5 13L149 22.8305M158.5 13L168 22.8305",stroke:"var(--center-channel-bg)",strokeLinecap:"round"}),T().createElement("path",{d:"M146 33V42H171V33",stroke:"var(--center-channel-bg)",strokeLinecap:"round"}),T().createElement("rect",{x:"62",y:"34",width:"67",height:"82",rx:"2",fill:"var(--neutral-1200",fillOpacity:"0.24"}),T().createElement("rect",{x:"55",y:"21",width:"70.3182",height:"91",rx:"2",fill:"var(--center-channel-bg)"}),T().createElement("rect",{x:"55.5",y:"21.5",width:"69.3182",height:"90",rx:"1.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.8"}),T().createElement("path",{d:"M65 30H77",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M64 76H97",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M64 94H103",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M65 35H87",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M64 82H115",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M64 100H115",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M65 41H74",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M64 88H83",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M76 41H85",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M88 88H100",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"})),T().createElement("defs",null,T().createElement("clipPath",{id:"clip0_4441_159184"},T().createElement("rect",{width:"189",height:"116",fill:"var(--center-channel-bg)"}))));jd.propTypes={width:k().number,height:k().number};const Hd=jd,Gd=e=>T().createElement("svg",{width:e.width?e.width.toString():"193",height:e.height?e.height.toString():"111",viewBox:"0 0 193 111",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},T().createElement("rect",{x:"193",y:"27",width:"66",height:"193",rx:"2",transform:"rotate(90 193 27)",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),T().createElement("path",{d:"M10 45L10 53.7097L166.84 53.7097L166.84 63L182 63",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M19.0974 76.51L19.0974 60.445L34.8649 60.445",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("ellipse",{cx:"1.5",cy:"1.5",rx:"1.5",ry:"1.5",transform:"matrix(1 8.74228e-08 8.74228e-08 -1 8.5 45)",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("ellipse",{cx:"1.4875",cy:"1.4875",rx:"1.4875",ry:"1.4875",transform:"matrix(1 8.74228e-08 8.74228e-08 -1 17.61 79.485)",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("ellipse",{cx:"1.4875",cy:"1.4875",rx:"1.4875",ry:"1.4875",transform:"matrix(1 8.74228e-08 8.74228e-08 -1 181.09 64.61)",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("rect",{x:"35",y:"16",width:"132.5",height:"87",rx:"4",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"4"}),T().createElement("path",{d:"M37.2992 19.7992C37.2992 18.9708 37.9708 18.2992 38.7992 18.2992H163.701C164.529 18.2992 165.201 18.9708 165.201 19.7992V27.9724H37.2992V19.7992Z",fill:"var(--button-bg)",fillOpacity:"0.16"}),T().createElement("rect",{x:"80.2914",y:"82.7874",width:"41.9173",height:"8.59843",rx:"2",fill:"var(--button-bg)"}),T().createElement("path",{d:"M71.1178 37H84.5296",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M71.1178 41H95.706",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M71.1178 45H81.1766",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M70.0001 55H106.882",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M70.0001 66.1646H113.588",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M70 71.5525H127",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M70.0001 60.7764H91.2354",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M96.8237 60.7764H112.105",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M116.69 60.7764H124.331",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("circle",{cx:"41.5",cy:"22.5",r:"1.5",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("circle",{cx:"49.5",cy:"22.5",r:"1.5",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("circle",{cx:"57.5",cy:"22.5",r:"1.5",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M116 110L125 110",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),T().createElement("path",{d:"M128 110L132 110",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),T().createElement("path",{d:"M135 110L165 110",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),T().createElement("path",{d:"M113 110L101 110L101 90",stroke:"var(--center-channel-color)",strokeLinecap:"round",strokeLinejoin:"round"}),T().createElement("path",{d:"M154.5 60C170.24 60 183 47.2401 183 31.5C183 15.7599 170.24 3 154.5 3C138.76 3 126 15.7599 126 31.5C126 47.2401 138.76 60 154.5 60Z",fill:"var(--neutral-1200",fillOpacity:"0.16"}),T().createElement("path",{d:"M154.5 57C170.24 57 183 44.2401 183 28.5C183 12.7599 170.24 0 154.5 0C138.76 0 126 12.7599 126 28.5C126 44.2401 138.76 57 154.5 57Z",fill:"var(--indigo-400)"}),T().createElement("path",{d:"M142 29.3101L151.28 38L169 19",stroke:"var(--neutral-0)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}));Gd.propTypes={width:k().number,height:k().number};const qd=Gd,Vd=e=>T().createElement("svg",{width:e.width?e.width.toString():"142",height:e.height?e.height.toString():"104",viewBox:"0 0 142 104",fill:"none",xmlns:"http://www.w3.org/2000/svg"},T().createElement("path",{d:"M5.50196 18L5.50195 33L94.002 33",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M4.002 90L14.5019 79.5L14.502 40.5L35.5019 40.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M133.502 52L133.502 66L46.002 66",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 8.74228e-08 8.74228e-08 -1 3.00195 18)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(-1 -1.74846e-07 -1.74846e-07 1 136.002 48.5)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),T().createElement("circle",{cx:"2.50195",cy:"91.5",r:"2.5",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),T().createElement("rect",{x:"11",y:"14",width:"94",height:"40",rx:"3.75",fill:"#1C58D9",fillOpacity:"0.12"}),T().createElement("rect",{x:"37",y:"57",width:"105",height:"37",rx:"3.75",fill:"#1C58D9",fillOpacity:"0.12"}),T().createElement("rect",{x:"33.3885",y:"8.15259",width:"50.505",height:"65.3594",rx:"2",transform:"rotate(-8.6173 33.3885 8.15259)",fill:"var(--center-channel-bg)"}),T().createElement("rect",{x:"33.9578",y:"8.57203",width:"49.505",height:"64.3594",rx:"1.5",transform:"rotate(-8.6173 33.9578 8.57203)",stroke:"var(--center-channel-color)",strokeOpacity:"0.8"}),T().createElement("path",{d:"M40.3696 14.1746L48.8912 12.8832",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M46.8125 56.6891L74.5075 52.4921",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M44.4152 40.8698L72.1101 36.6727",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M40.969 18.1294L56.5918 15.7618",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M48.0112 64.5989L84.2277 59.1105",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M45.6138 48.7794L81.8303 43.291",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M43.2165 32.9601L79.433 27.4717",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M41.5683 22.0842L47.9595 21.1157",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M50.4667 20.7357L56.8579 19.7672",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M36.2393 36.6232C36.4201 35.6811 37.2442 35 38.2035 35H127.58C128.836 35 129.781 36.1436 129.544 37.3768L119.761 88.3768C119.58 89.3189 118.756 90 117.796 90H28.4201C27.1645 90 26.2194 88.8564 26.4559 87.6232L36.2393 36.6232Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M36.2393 36.6232C36.4201 35.6811 37.2442 35 38.2035 35H127.58C128.836 35 129.781 36.1436 129.544 37.3768L119.761 88.3768C119.58 89.3189 118.756 90 117.796 90H28.4201C27.1645 90 26.2194 88.8564 26.4559 87.6232L36.2393 36.6232Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M36.7304 36.7174C36.8659 36.0108 37.4841 35.5 38.2035 35.5H127.58C128.522 35.5 129.23 36.3577 129.053 37.2826L119.27 88.2826C119.134 88.9892 118.516 89.5 117.796 89.5H28.4201C27.4784 89.5 26.7696 88.6423 26.947 87.7174L36.7304 36.7174Z",stroke:"var(--center-channel-color)"}),T().createElement("rect",{x:"72.5056",y:"8.99988",width:"50.505",height:"65.3594",rx:"2",transform:"rotate(7.47748 72.5056 8.99988)",fill:"var(--center-channel-color)",fillOpacity:"0.24"}),T().createElement("rect",{x:"75.5056",y:"7",width:"50.505",height:"65.3594",rx:"2",transform:"rotate(7.47748 75.5056 7)",fill:"var(--center-channel-bg)"}),T().createElement("rect",{x:"75.9363",y:"7.56082",width:"49.505",height:"64.3594",rx:"1.5",transform:"rotate(7.47748 75.9363 7.56082)",stroke:"var(--center-channel-color)",strokeOpacity:"0.8"}),T().createElement("path",{d:"M80.5437 14.7212L89.0892 15.8428",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M74.9478 57.3556L102.721 61.0009",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M77.03 41.4917L104.803 45.137",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M80.0231 18.6873L95.6899 20.7436",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M73.9067 65.2876L110.225 70.0545",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M75.9889 49.4236L112.307 54.1905",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M78.0711 33.5597L114.39 38.3266",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M79.5026 22.6532L85.9117 23.4944",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M88.426 23.8245L94.8352 24.6657",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M35 23C33.8954 23 33 23.8954 33 25V28H28C26.8954 28 26 28.8954 26 30V88C26 89.1046 26.8954 90 28 90H117C118.105 90 119 89.1046 119 88V30C119 28.8954 118.105 28 117 28H65V25C65 23.8954 64.1046 23 63 23H35Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M35 23C33.8954 23 33 23.8954 33 25V28H28C26.8954 28 26 28.8954 26 30V88C26 89.1046 26.8954 90 28 90H117C118.105 90 119 89.1046 119 88V30C119 28.8954 118.105 28 117 28H65V25C65 23.8954 64.1046 23 63 23H35Z",fill:"var(--center-channel-color)",fillOpacity:"0.12"}),T().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",stroke:"var(--center-channel-color)",d:"M35 23C33.8954 23 33 23.8954 33 25V28H28C26.8954 28 26 28.8954 26 30V88C26 89.1046 26.8954 90 28 90H117C118.105 90 119 89.1046 119 88V30C119 28.8954 118.105 28 117 28H65V25C65 23.8954 64.1046 23 63 23H35Z"}),T().createElement("path",{opacity:"0.32",d:"M32.1407 103.389C26.137 103.269 21.158 101.213 17.2037 97.2224C13.2495 93.2314 11.1816 88.2605 11 82.3095C11.1785 76.3555 13.2464 71.383 17.2037 67.392C21.1611 63.4011 26.1401 61.3455 32.1407 61.2253C38.0859 61.3486 43.0357 63.4042 46.9899 67.392C50.9442 71.3799 53.0121 76.3524 53.1937 82.3095C53.009 88.2636 50.9411 93.2345 46.9899 97.2224C43.0387 101.21 38.089 103.266 32.1407 103.389Z",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M32.9469 99.6636C27.0678 99.5437 22.2191 97.5347 18.3653 93.6451C14.5091 89.7532 12.4876 84.9101 12.3066 79.084C12.4845 73.255 14.506 68.4106 18.3651 64.5187C22.2222 60.629 27.0709 58.62 32.9469 58.5001C38.7662 58.623 43.5863 60.6311 47.4412 64.5187C51.2971 68.4074 53.3187 73.2518 53.4998 79.084C53.3157 84.9133 51.2941 89.7564 47.4411 93.6451C43.5894 97.5326 38.7694 99.5407 32.9469 99.6636Z",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)"}),T().createElement("path",{d:"M32.8048 95.0918C28.2155 94.9998 24.4094 93.4274 21.3867 90.3745C18.364 87.3216 16.7832 83.5189 16.6444 78.9667C16.7808 74.412 18.3616 70.6082 21.3867 67.5553C24.4118 64.5024 28.2178 62.93 32.8048 62.838C37.3495 62.9323 41.1332 64.5047 44.1559 67.5553C47.1786 70.6059 48.7594 74.4097 48.8982 78.9667C48.757 83.5213 47.1763 87.3239 44.1559 90.3745C41.1355 93.425 37.3518 94.9975 32.8048 95.0918Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M32.8046 94.5917C28.34 94.5 24.6643 92.9742 21.742 90.0227C18.8173 87.0688 17.2829 83.394 17.1446 78.9665C17.2806 74.5369 18.815 70.8611 21.7418 67.9072C24.6667 64.9555 28.3425 63.4298 32.8046 63.3381C37.2233 63.432 40.8774 64.9569 43.8007 67.9072C46.7252 70.8586 48.2597 74.5344 48.3979 78.9666C48.2574 83.3965 46.7228 87.0712 43.8006 90.0227C40.8797 92.9728 37.2257 94.4978 32.8046 94.5917Z",stroke:"var(--center-channel-color)",strokeOpacity:"0.32"}),T().createElement("path",{d:"M32.7713 61.6285V78.9649L40.4316 86.6252",stroke:"var(--center-channel-color)",strokeOpacity:"0.8",strokeLinejoin:"round"}),T().createElement("circle",{cx:"32.7713",cy:"78.965",r:"1.61269",fill:"var(--center-channel-color)",fillOpacity:"0.8"}));Vd.propTypes={width:k().number,height:k().number};const zd=Vd,Wd=e=>T().createElement("svg",{width:e.width?e.width.toString():"184",height:e.height?e.height.toString():"113",viewBox:"0 0 184 113",fill:"none",xmlns:"http://www.w3.org/2000/svg"},T().createElement("g",{clipPath:"url(#clip0_4441_155270)"},T().createElement("rect",{x:"2.745",y:"15",width:"181",height:"78",rx:"5.625",fill:"var(--button-bg)",fillOpacity:"0.12"}),T().createElement("path",{d:"M11 4L16.5 9.5V63.5H37.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 7 5)",fill:"#8C8C8C"}),T().createElement("path",{d:"M4 28L9.5 33.5V72.5H174.5V101.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 172 105)",fill:"#8C8C8C"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 0 29)",fill:"#8C8C8C"}),T().createElement("path",{d:"M59.1304 15H126.87L131 108H55L59.1304 15Z",fill:"var(--center-channel-color)",fillOpacity:"0.24"}),T().createElement("rect",{width:"92",height:"5",transform:"matrix(1 0 0 -1 47 113)",fill:"var(--center-channel-color)",fillOpacity:"0.4"}),T().createElement("rect",{x:"27",y:"9",width:"131",height:"86",rx:"4",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"4"}),T().createElement("path",{d:"M147 101.5H119.5",stroke:"var(--center-channel-color)",strokeLinecap:"round",strokeLinejoin:"round"}),T().createElement("path",{d:"M116 101.5H110",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),T().createElement("path",{d:"M107 101.5H101",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),T().createElement("path",{d:"M138.518 43.1646C138.518 53.0156 130.498 61.0007 120.606 61.0007C114.997 61.0007 109.99 58.4339 106.706 54.4147C104.198 51.3453 102.694 47.4301 102.694 43.1646C102.694 33.3136 110.714 25.3285 120.606 25.3285C130.498 25.3285 138.518 33.3136 138.518 43.1646Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M138.518 43.1646C138.518 53.0156 130.498 61.0007 120.606 61.0007C114.997 61.0007 109.99 58.4339 106.706 54.4147C104.198 51.3453 102.694 47.4301 102.694 43.1646C102.694 33.3136 110.714 25.3285 120.606 25.3285C130.498 25.3285 138.518 33.3136 138.518 43.1646Z",fill:"var(--center-channel-color)",fillOpacity:"0.12"}),T().createElement("mask",{id:"mask0_4441_155270","mask-type":"luminance",maskUnits:"userSpaceOnUse",x:"102",y:"25",width:"37",height:"37"},T().createElement("path",{d:"M138.518 43.1646C138.518 53.0156 130.498 61.0007 120.606 61.0007C114.997 61.0007 109.99 58.4339 106.706 54.4147C104.198 51.3453 102.694 47.4301 102.694 43.1646C102.694 33.3136 110.714 25.3285 120.606 25.3285C130.498 25.3285 138.518 33.3136 138.518 43.1646Z",fill:"white"})),T().createElement("g",{mask:"url(#mask0_4441_155270)"},T().createElement("path",{d:"M129.928 54.2452L129.228 40.2453C128.93 34.2984 125.16 29.6744 120.609 29.6744C116.058 29.6744 112.289 34.2984 111.991 40.2453L111.291 54.2452H129.928Z",fill:"#1B1D22"}),T().createElement("path",{d:"M134.117 54.695C133.453 52.3994 131.597 50.6436 129.268 50.107L124.343 48.9724H116.875L111.949 50.107C109.62 50.6436 107.765 52.3994 107.101 54.695L105.221 64.6223H135.996L134.117 54.695Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{opacity:"0.24",d:"M134.117 54.695C133.453 52.3994 131.597 50.6436 129.268 50.107L124.343 48.9724H116.875L111.949 50.107C109.62 50.6436 107.765 52.3994 107.101 54.695L105.221 64.6223H135.996L134.117 54.695Z",fill:"var(--button-bg)"}),T().createElement("path",{d:"M123.844 49.1791L122.833 45.7231H118.4L117.58 49.1791C119.369 50.139 122.054 50.139 123.844 49.1791Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M123.844 49.1791L122.833 45.7231H118.4L117.58 49.1791C119.369 50.139 122.054 50.139 123.844 49.1791Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M126.947 38.5957C127.568 38.4195 127.597 39.3908 127.361 40.3985C127.146 41.3168 126.947 42.8174 126.3 42.4531C125.52 44.6153 124.099 46.2593 122.38 46.9103C121.846 47.1551 121.279 47.2891 120.691 47.2891C119.933 47.2891 119.211 47.067 118.55 46.6722C117.065 45.9043 115.85 44.3754 115.154 42.4298C114.515 42.5975 114.245 41.0113 114.101 40.3985C113.918 39.6201 113.687 38.5956 114.515 38.5956C114.533 33.8795 117.309 30.0635 120.731 30.0635C124.153 30.0635 126.93 33.8795 126.947 38.5957Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M126.947 38.5957C127.568 38.4195 127.597 39.3908 127.361 40.3985C127.146 41.3168 126.947 42.8174 126.3 42.4531C125.52 44.6153 124.099 46.2593 122.38 46.9103C121.846 47.1551 121.279 47.2891 120.691 47.2891C119.933 47.2891 119.211 47.067 118.55 46.6722C117.065 45.9043 115.85 44.3754 115.154 42.4298C114.515 42.5975 114.245 41.0113 114.101 40.3985C113.918 39.6201 113.687 38.5956 114.515 38.5956C114.533 33.8795 117.309 30.0635 120.731 30.0635C124.153 30.0635 126.93 33.8795 126.947 38.5957Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M127.453 38.6215C127.443 38.6928 127.396 38.756 127.324 38.7917C127.252 38.8273 127.164 38.8314 127.089 38.8018C125.182 38.0754 123.334 36.1163 122.749 34.2774C120.9 36.1958 117.847 38.4392 114.805 38.9322C114.789 38.9353 114.774 38.9363 114.757 38.9363L114.758 38.9373C114.704 38.9373 114.649 38.9221 114.604 38.8946C114.546 38.8579 114.509 38.8018 114.499 38.7407C114.193 36.5446 114.838 32.3895 116.797 31.1075C118.092 30.2596 119.089 29.6962 120.712 29.8026C122.36 29.9106 124.151 30.8035 125.427 31.708C127.32 33.0495 127.719 36.4791 127.453 38.6215Z",fill:"#1B1D22"})),T().createElement("path",{d:"M82.12 42.589C82.12 52.4595 74.0844 60.4603 64.173 60.4603C58.553 60.4603 53.5359 57.8885 50.2457 53.8614C47.7322 50.7859 46.2261 46.863 46.2261 42.589C46.2261 32.7186 54.2616 24.7178 64.173 24.7178C74.0844 24.7178 82.12 32.7186 82.12 42.589Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M82.12 42.589C82.12 52.4595 74.0844 60.4603 64.173 60.4603C58.553 60.4603 53.5359 57.8885 50.2457 53.8614C47.7322 50.7859 46.2261 46.863 46.2261 42.589C46.2261 32.7186 54.2616 24.7178 64.173 24.7178C74.0844 24.7178 82.12 32.7186 82.12 42.589Z",fill:"var(--center-channel-color)",fillOpacity:"0.12"}),T().createElement("mask",{id:"mask1_4441_155270","mask-type":"luminance",maskUnits:"userSpaceOnUse",x:"46",y:"24",width:"37",height:"37"},T().createElement("path",{d:"M82.12 42.589C82.12 52.4595 74.0844 60.4603 64.173 60.4603C58.553 60.4603 53.5359 57.8885 50.2457 53.8614C47.7322 50.7859 46.2261 46.863 46.2261 42.589C46.2261 32.7186 54.2616 24.7178 64.173 24.7178C74.0844 24.7178 82.12 32.7186 82.12 42.589Z",fill:"white"})),T().createElement("g",{mask:"url(#mask1_4441_155270)"},T().createElement("path",{d:"M80.0061 57.257C79.227 54.7376 77.0521 52.8107 74.3228 52.2216L68.5489 50.9771H59.795L54.0211 52.2216C51.2905 52.8107 49.1156 54.7376 48.3378 57.257L46.1344 68.1522H82.2094L80.0061 57.257Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{opacity:"0.24",d:"M80.0064 57.257C79.2273 54.7376 77.0525 52.8107 74.3231 52.2216L68.5492 50.9771H59.7953L54.0215 52.2216C51.2908 52.8107 49.116 54.7376 48.3381 57.257L46.1348 68.1522H82.2098L80.0064 57.257Z",fill:"var(--button-bg)"}),T().createElement("path",{d:"M67.6799 51.4614L66.4982 47.9237H61.3111L60.3518 51.4614C62.4455 52.4441 65.5862 52.4441 67.6799 51.4614Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M67.6799 51.4614L66.4982 47.9237H61.3111L60.3518 51.4614C62.4455 52.4441 65.5862 52.4441 67.6799 51.4614Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M70.749 40.818C71.4203 40.6368 71.4509 41.6354 71.1966 42.6715C70.9641 43.6156 70.749 45.1583 70.0505 44.7838C69.2088 47.0068 67.6738 48.697 65.8172 49.3662C65.2407 49.618 64.628 49.7557 63.9929 49.7557C63.1752 49.7557 62.3948 49.5274 61.6808 49.1214C60.0775 48.332 58.7654 46.7602 58.0138 44.7599C57.3243 44.9322 57.0319 43.3014 56.8767 42.6715C56.6796 41.8711 56.4292 40.8179 57.3243 40.8179C57.3428 35.9691 60.3409 32.046 64.0366 32.046C67.7324 32.046 70.7306 35.9692 70.749 40.818Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M70.749 40.818C71.4203 40.6368 71.4509 41.6354 71.1966 42.6715C70.9641 43.6156 70.749 45.1583 70.0505 44.7838C69.2088 47.0068 67.6738 48.697 65.8172 49.3662C65.2407 49.618 64.628 49.7557 63.9929 49.7557C63.1752 49.7557 62.3948 49.5274 61.6808 49.1214C60.0775 48.332 58.7654 46.7602 58.0138 44.7599C57.3243 44.9322 57.0319 43.3014 56.8767 42.6715C56.6796 41.8711 56.4292 40.8179 57.3243 40.8179C57.3428 35.9691 60.3409 32.046 64.0366 32.046C67.7324 32.046 70.7306 35.9692 70.749 40.818Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M56.7017 31.1748C54.9829 33.2751 54.9468 36.7042 56.6039 39.7757C57.1701 40.4565 57.735 41.136 58.3012 41.8169C58.2838 36.8541 59.0883 35.5172 59.87 35.2737C61.1591 34.8693 62.6864 37.3452 65.4826 37.2833C65.9083 37.2737 66.8627 37.2393 67.4463 36.5708C67.9496 35.9945 67.8733 35.2875 68.0245 35.2723C68.2748 35.2476 68.7259 36.5983 69.5933 41.8155C70.1515 41.1305 70.711 40.4442 71.2692 39.7592C71.5744 38.568 71.8555 37.0054 71.8742 35.165C71.8997 32.6768 70.6804 31.1017 70.2453 29.7028C68.6042 33.8448 66.9509 28.6788 61.6798 28.6872C59.9678 28.69 57.8274 29.7993 56.7017 31.1748Z",fill:"#1B1D22"})),T().createElement("circle",{cx:"91.2669",cy:"55.5572",r:"25.3433",fill:"var(--center-channel-bg)"}),T().createElement("circle",{cx:"91.1111",cy:"55.5572",r:"23.5112",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),T().createElement("mask",{id:"mask2_4441_155270","mask-type":"luminance",maskUnits:"userSpaceOnUse",x:"67",y:"32",width:"48",height:"48"},T().createElement("path",{d:"M67.6584 55.5572C67.6584 68.5427 78.216 79.0685 91.2382 79.0685C98.6222 79.0685 105.214 75.685 109.537 70.387C112.839 66.3409 114.818 61.18 114.818 55.5572C114.818 42.5718 104.26 32.046 91.2382 32.046C78.216 32.046 67.6584 42.5718 67.6584 55.5572Z",fill:"white"})),T().createElement("g",{mask:"url(#mask2_4441_155270)"},T().createElement("path",{d:"M76.4501 68.3815C78.8909 66.6494 87.4336 65.0135 91.3998 64.4121C95.061 65.1338 103.421 67.0825 107.57 69.1033C111.719 71.1241 112.35 77.403 112.146 80.2898H70.6533C70.6533 72.351 73.3992 70.5467 76.4501 68.3815Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M76.4501 68.3815C78.8909 66.6494 87.4336 65.0135 91.3998 64.4121C95.061 65.1338 103.421 67.0825 107.57 69.1033C111.719 71.1241 112.35 77.403 112.146 80.2898H70.6533C70.6533 72.351 73.3992 70.5467 76.4501 68.3815Z",fill:"var(--center-channel-color)",fillOpacity:"0.8"}),T().createElement("path",{d:"M96.9126 65.6335L95.1893 60.1373H87.6247L86.2257 65.6335C89.2791 67.1602 93.8592 67.1602 96.9126 65.6335Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M96.9126 65.6335L95.1893 60.1373H87.6247L86.2257 65.6335C89.2791 67.1602 93.8592 67.1602 96.9126 65.6335Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M101.516 49.9382C102.523 49.6696 102.569 51.1503 102.188 52.6865C101.839 54.0864 101.516 56.3738 100.469 55.8186C99.2061 59.1147 96.9036 61.6209 94.1187 62.6132C93.2539 62.9865 92.335 63.1907 91.3823 63.1907C90.1558 63.1907 88.9852 62.8522 87.9141 62.2502C85.5092 61.0797 83.541 58.749 82.4137 55.7831C81.3794 56.0386 80.9408 53.6205 80.708 52.6865C80.4124 51.4998 80.0368 49.9381 81.3794 49.9381C81.4071 42.7486 85.9043 36.9314 91.4479 36.9314C96.9916 36.9314 101.489 42.7486 101.516 49.9382Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M101.516 49.9382C102.523 49.6696 102.569 51.1503 102.188 52.6865C101.839 54.0864 101.516 56.3738 100.469 55.8186C99.2061 59.1147 96.9036 61.6209 94.1187 62.6132C93.2539 62.9865 92.335 63.1907 91.3823 63.1907C90.1558 63.1907 88.9852 62.8522 87.9141 62.2502C85.5092 61.0797 83.541 58.749 82.4137 55.7831C81.3794 56.0386 80.9408 53.6205 80.708 52.6865C80.4124 51.4998 80.0368 49.9381 81.3794 49.9381C81.4071 42.7486 85.9043 36.9314 91.4479 36.9314C96.9916 36.9314 101.489 42.7486 101.516 49.9382Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M82.8511 38.9974C84.1737 37.1736 85.1199 36.8624 85.583 36.7102C85.7392 36.6588 85.8404 36.6255 85.8826 36.5583C87.7015 33.6613 95.4923 34.1993 97.5869 35.7793C102.353 39.3742 101.179 41.8552 101.718 44.8136C101.997 46.3312 101.466 48.1935 101.343 49.7558C101.193 48.7194 100.336 45.5263 100.271 45.1756C99.5161 43.3436 96.206 45.5727 94.4699 45.481C90.5698 45.275 87.6487 44.5902 85.583 42.1222C84.9645 44.3108 83.0668 46.9683 81.8883 47.2176L81.6386 49.4339C80.9294 45.5012 80.3681 42.4216 82.8511 38.9974Z",fill:"#1B1D22"})),T().createElement("path",{d:"M120.463 23.147C124.25 23.1231 127.732 24.1039 130.904 26.0896C132.206 26.9048 133.456 27.8894 134.653 29.0434C136.133 30.5797 137.332 32.2129 138.25 33.9435M139.876 38.135C140.289 39.7447 140.495 41.4261 140.495 43.1797C140.493 45.3005 140.189 47.3175 139.584 49.2303M139.159 35.916C139.294 36.2601 139.419 36.6078 139.534 36.9591",stroke:"var(--center-channel-color)",strokeOpacity:"0.48"}),T().createElement("path",{d:"M113.428 71.4636C110.58 75.6164 106.868 78.6732 102.293 80.6289C100.416 81.4318 98.3924 82.0491 96.2244 82.4805C93.4244 82.9302 90.7316 83.0003 88.1457 82.6895M82.3367 81.2836C80.2663 80.5129 78.2741 79.4627 76.3598 78.1322C74.0467 76.5201 72.0751 74.6584 70.446 72.5468M85.3034 82.1842C84.8251 82.0707 84.3507 81.9434 83.8802 81.8021",stroke:"var(--center-channel-color)",strokeOpacity:"0.48"}),T().createElement("path",{d:"M64.4212 62.7429C59.9987 62.7094 55.9963 61.3878 52.4254 58.7668C51.6772 58.2175 50.9479 57.6113 50.2376 56.9478C48.3933 54.9693 46.9862 52.8652 46.0148 50.6342M44.3886 42.7102C44.3919 40.0664 44.8765 37.563 45.8423 35.1999C46.8182 32.8119 48.2856 30.5672 50.2444 28.4658",stroke:"var(--center-channel-color)",strokeOpacity:"0.48"})),T().createElement("defs",null,T().createElement("clipPath",{id:"clip0_4441_155270"},T().createElement("rect",{width:"184",height:"113",fill:"white"}))));Wd.propTypes={width:k().number,height:k().number};const Yd=Wd,Zd=e=>T().createElement("svg",{width:e.width?e.width.toString():"294",height:e.height?e.height.toString():"180",viewBox:"0 0 196 120",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},T().createElement("circle",{cx:"20.5",cy:"35",r:"2",transform:"rotate(-90 20.5 35)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("circle",{cx:"20.5",cy:"29",r:"2",transform:"rotate(-90 20.5 29)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("circle",{cx:"20.5005",cy:"23",r:"2",transform:"rotate(-90 20.5005 23)",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M20.5 39.5V79.5H43M45 79.5H49M51 79.5H53",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round",strokeLinejoin:"round"}),T().createElement("path",{d:"M29.5 79.5H177.5V108.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 175 112)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),T().createElement("path",{d:"M62.1304 22H129.87L134 115H58L62.1304 22Z",fill:"var(--center-channel-color)",fillOpacity:"0.24"}),T().createElement("rect",{width:"92",height:"5",transform:"matrix(1 0 0 -1 50 120)",fill:"var(--center-channel-color)",fillOpacity:"0.4"}),T().createElement("rect",{x:"30",y:"16",width:"131",height:"86",rx:"4",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"4"}),T().createElement("rect",{x:"34",y:"20",width:"46",height:"78",fill:"#1C58D9",fillOpacity:"0.16"}),T().createElement("path",{d:"M49.8109 27.0273L66.5002 27.0273",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M49.8109 29.6628L59.4732 29.6628",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M38.392 38.4453H51.5678",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"41.5092",cy:"27.5105",r:"4.34771",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("circle",{cx:"39.4795",cy:"43.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M45.4189 43.1602H70.0137",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"39.4795",cy:"50.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M45.4189 50.1602H64.7434",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"39.4795",cy:"58.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M45.4189 58.1602H72.6489",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"39.4795",cy:"65.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M45.4189 65.1602H70.0137",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"39.4795",cy:"72.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M45.4189 72.1602H64.7434",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("circle",{cx:"39.4795",cy:"79.1602",r:"2",fill:"var(--center-channel-color)",fillOpacity:"0.32"}),T().createElement("path",{d:"M45.4189 79.1602H72.6489",stroke:"var(--center-channel-color)",strokeOpacity:"0.32",strokeLinecap:"round"}),T().createElement("path",{d:"M150 108.5H122.5",stroke:"var(--center-channel-color)",strokeLinecap:"round",strokeLinejoin:"round"}),T().createElement("path",{d:"M119 108.5H113",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),T().createElement("path",{d:"M110 108.5H104",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),T().createElement("ellipse",{cx:"138.058",cy:"43.6274",rx:"14.1972",ry:"13.767",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),T().createElement("mask",{id:"mask0_4441_155706","mask-type":"luminance",maskUnits:"userSpaceOnUse",x:"124",y:"30",width:"28",height:"28"},T().createElement("path",{d:"M124.288 43.8848C124.288 51.5124 130.49 57.6952 138.139 57.6952C142.476 57.6952 146.348 55.7078 148.887 52.5958C150.827 50.2191 151.99 47.1876 151.99 43.8848C151.99 36.2573 145.788 30.0745 138.139 30.0745C130.49 30.0745 124.288 36.2573 124.288 43.8848Z",fill:"white"})),T().createElement("g",{mask:"url(#mask0_4441_155706)"},T().createElement("path",{d:"M129.452 51.4217C130.886 50.4043 135.904 49.4434 138.234 49.0901C140.384 49.514 145.295 50.6586 147.732 51.8456C150.169 53.0326 150.539 56.7208 150.42 58.4165H126.047C126.047 53.7533 127.66 52.6935 129.452 51.4217Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M129.452 51.4217C130.886 50.4043 135.904 49.4434 138.234 49.0901C140.384 49.514 145.295 50.6586 147.732 51.8456C150.169 53.0326 150.539 56.7208 150.42 58.4165H126.047C126.047 53.7533 127.66 52.6935 129.452 51.4217Z",fill:"var(--center-channel-color)",fillOpacity:"0.8"}),T().createElement("path",{d:"M141.472 49.8071L140.46 46.5787H136.016L135.195 49.8071C136.988 50.7038 139.678 50.7038 141.472 49.8071Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M141.472 49.8071L140.46 46.5787H136.016L135.195 49.8071C136.988 50.7038 139.678 50.7038 141.472 49.8071Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M144.176 40.5879C144.767 40.4301 144.794 41.2999 144.57 42.2022C144.365 43.0245 144.176 44.3681 143.56 44.042C142.819 45.9781 141.466 47.4502 139.831 48.0331C139.323 48.2524 138.783 48.3723 138.223 48.3723C137.503 48.3723 136.815 48.1735 136.186 47.8199C134.773 47.1323 133.617 45.7633 132.955 44.0211C132.348 44.1712 132.09 42.7509 131.953 42.2022C131.78 41.5052 131.559 40.5878 132.348 40.5878C132.364 36.3648 135.005 32.9478 138.262 32.9478C141.518 32.9478 144.16 36.3648 144.176 40.5879Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M144.176 40.5879C144.767 40.4301 144.794 41.2999 144.57 42.2022C144.365 43.0245 144.176 44.3681 143.56 44.042C142.819 45.9781 141.466 47.4502 139.831 48.0331C139.323 48.2524 138.783 48.3723 138.223 48.3723C137.503 48.3723 136.815 48.1735 136.186 47.8199C134.773 47.1323 133.617 45.7633 132.955 44.0211C132.348 44.1712 132.09 42.7509 131.953 42.2022C131.78 41.5052 131.559 40.5878 132.348 40.5878C132.364 36.3648 135.005 32.9478 138.262 32.9478C141.518 32.9478 144.16 36.3648 144.176 40.5879Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M133.213 34.161C133.989 33.0897 134.545 32.9069 134.817 32.8175C134.909 32.7873 134.968 32.7678 134.993 32.7283C136.062 31.0266 140.638 31.3426 141.868 32.2707C144.668 34.3823 143.978 35.8397 144.295 37.5774C144.459 38.4688 144.147 39.5627 144.075 40.4804C143.986 39.8716 143.483 37.996 143.445 37.7901C143.001 36.7139 141.057 38.0233 140.037 37.9694C137.746 37.8484 136.031 37.4462 134.817 35.9965C134.454 37.2821 133.339 38.8431 132.647 38.9895L132.5 40.2913C132.084 37.9813 131.754 36.1724 133.213 34.161Z",fill:"var(--neutral-1200)"})),T().createElement("ellipse",{cx:"101.058",cy:"80.6274",rx:"14.1972",ry:"13.767",fill:"var(--center-channel-color)",fillOpacity:"0.16"}),T().createElement("mask",{id:"mask1_4441_155706",maskUnits:"userSpaceOnUse",x:"87",y:"67",width:"28",height:"28","mask-type":"luminance"},T().createElement("path",{d:"M87.2884 80.8848C87.2884 88.5124 93.4899 94.6952 101.139 94.6952C105.476 94.6952 109.348 92.7078 111.887 89.5958C113.827 87.2191 114.99 84.1876 114.99 80.8848C114.99 73.2573 108.788 67.0745 101.139 67.0745C93.4899 67.0745 87.2884 73.2573 87.2884 80.8848Z",fill:"white"})),T().createElement("g",{mask:"url(#mask1_4441_155706)"},T().createElement("path",{d:"M92.4524 88.4217C93.8861 87.4043 98.904 86.4434 101.234 86.0901C103.384 86.514 108.295 87.6586 110.732 88.8456C113.169 90.0326 113.539 93.7208 113.42 95.4165H89.0474C89.0474 90.7533 90.6603 89.6935 92.4524 88.4217Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M92.4524 88.4217C93.8861 87.4043 98.904 86.4434 101.234 86.0901C103.384 86.514 108.295 87.6586 110.732 88.8456C113.169 90.0326 113.539 93.7208 113.42 95.4165H89.0474C89.0474 90.7533 90.6603 89.6935 92.4524 88.4217Z",fill:"var(--center-channel-color)",fillOpacity:"0.8"}),T().createElement("path",{d:"M104.472 86.8071L103.46 83.5787H99.0163L98.1945 86.8071C99.9881 87.7038 102.678 87.7038 104.472 86.8071Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M104.472 86.8071L103.46 83.5787H99.0163L98.1945 86.8071C99.9881 87.7038 102.678 87.7038 104.472 86.8071Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M107.176 77.5879C107.767 77.4301 107.794 78.2999 107.57 79.2022C107.365 80.0245 107.176 81.3681 106.56 81.042C105.819 82.9781 104.466 84.4502 102.831 85.0331C102.323 85.2524 101.783 85.3723 101.223 85.3723C100.503 85.3723 99.8151 85.1735 99.186 84.8199C97.7734 84.1323 96.6173 82.7633 95.9551 81.0211C95.3476 81.1712 95.0899 79.7509 94.9532 79.2022C94.7796 78.5052 94.5589 77.5878 95.3476 77.5878C95.3638 73.3648 98.0055 69.9478 101.262 69.9478C104.518 69.9478 107.16 73.3648 107.176 77.5879Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M107.176 77.5879C107.767 77.4301 107.794 78.2999 107.57 79.2022C107.365 80.0245 107.176 81.3681 106.56 81.042C105.819 82.9781 104.466 84.4502 102.831 85.0331C102.323 85.2524 101.783 85.3723 101.223 85.3723C100.503 85.3723 99.8151 85.1735 99.186 84.8199C97.7734 84.1323 96.6173 82.7633 95.9551 81.0211C95.3476 81.1712 95.0899 79.7509 94.9532 79.2022C94.7796 78.5052 94.5589 77.5878 95.3476 77.5878C95.3638 73.3648 98.0055 69.9478 101.262 69.9478C104.518 69.9478 107.16 73.3648 107.176 77.5879Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M96.2126 71.161C96.9894 70.0897 97.5452 69.9069 97.8172 69.8175C97.909 69.7873 97.9685 69.7678 97.9932 69.7283C99.0616 68.0266 103.638 68.3426 104.868 69.2707C107.668 71.3823 106.978 72.8397 107.295 74.5774C107.459 75.4688 107.147 76.5627 107.075 77.4804C106.986 76.8716 106.483 74.996 106.445 74.7901C106.001 73.7139 104.057 75.0233 103.037 74.9694C100.746 74.8484 99.0307 74.4462 97.8172 72.9965C97.4539 74.2821 96.3393 75.8431 95.647 75.9895L95.5003 77.2913C95.0838 74.9813 94.7541 73.1724 96.2126 71.161Z",fill:"var(--neutral-1200)"})),T().createElement("path",{d:"M115 43.942C115 51.6417 108.732 57.883 101 57.883C96.6159 57.883 92.7022 55.8768 90.1356 52.7353C88.1749 50.3362 87 47.276 87 43.942C87 36.2423 93.2684 30.001 101 30.001C108.732 30.001 115 36.2423 115 43.942Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M115 43.942C115 51.6417 108.732 57.883 101 57.883C96.6159 57.883 92.7022 55.8768 90.1356 52.7353C88.1749 50.3362 87 47.276 87 43.942C87 36.2423 93.2684 30.001 101 30.001C108.732 30.001 115 36.2423 115 43.942Z",fill:"var(--center-channel-color)",fillOpacity:"0.12"}),T().createElement("mask",{id:"mask2_4441_155706","mask-type":"luminance",maskUnits:"userSpaceOnUse",x:"87",y:"30",width:"28",height:"28"},T().createElement("path",{d:"M115 43.941C115 51.6407 108.732 57.8819 101 57.8819C96.6159 57.8819 92.7022 55.8757 90.1356 52.7343C88.1749 50.3351 87 47.275 87 43.941C87 36.2413 93.2684 30 101 30C108.732 30 115 36.2413 115 43.941Z",fill:"white"})),T().createElement("g",{mask:"url(#mask2_4441_155706)"},T().createElement("path",{d:"M108.286 52.6015L107.739 41.6589C107.506 37.0108 104.56 33.3966 101.002 33.3966C97.4454 33.3966 94.4988 37.0108 94.2664 41.6589L93.7188 52.6015H108.286Z",fill:"var(--neutral-1200)"}),T().createElement("path",{d:"M111.559 52.9532C111.041 51.159 109.59 49.7866 107.77 49.3672L103.92 48.4804H98.083L94.233 49.3672C92.4123 49.7866 90.9622 51.159 90.4435 52.9532L88.9744 60.7126H113.028L111.559 52.9532Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{opacity:"0.24",d:"M111.559 52.9532C111.041 51.159 109.59 49.7866 107.77 49.3672L103.92 48.4804H98.083L94.233 49.3672C92.4123 49.7866 90.9622 51.159 90.4435 52.9532L88.9744 60.7126H113.028L111.559 52.9532Z",fill:"#1C58D9"}),T().createElement("path",{d:"M103.531 48.6403L102.741 45.9391H99.2756L98.6347 48.6403C100.034 49.3906 102.132 49.3906 103.531 48.6403Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M103.531 48.6403L102.741 45.9391H99.2756L98.6347 48.6403C100.034 49.3906 102.132 49.3906 103.531 48.6403Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M105.956 40.3675C106.442 40.2298 106.464 40.989 106.28 41.7766C106.111 42.4944 105.956 43.6672 105.45 43.3825C104.841 45.0725 103.73 46.3575 102.386 46.8663C101.969 47.0577 101.526 47.1624 101.066 47.1624C100.474 47.1624 99.9092 46.9888 99.3924 46.6802C98.232 46.08 97.2824 44.885 96.7384 43.3643C96.2394 43.4953 96.0277 42.2555 95.9154 41.7766C95.7727 41.1682 95.5915 40.3674 96.2394 40.3674C96.2527 36.6812 98.4227 33.6986 101.098 33.6986C103.772 33.6986 105.942 36.6812 105.956 40.3675Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M105.956 40.3675C106.442 40.2298 106.464 40.989 106.28 41.7766C106.111 42.4944 105.956 43.6672 105.45 43.3825C104.841 45.0725 103.73 46.3575 102.386 46.8663C101.969 47.0577 101.526 47.1624 101.066 47.1624C100.474 47.1624 99.9092 46.9888 99.3924 46.6802C98.232 46.08 97.2824 44.885 96.7384 43.3643C96.2394 43.4953 96.0277 42.2555 95.9154 41.7766C95.7727 41.1682 95.5915 40.3674 96.2394 40.3674C96.2527 36.6812 98.4227 33.6986 101.098 33.6986C103.772 33.6986 105.942 36.6812 105.956 40.3675Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M106.351 40.3897C106.344 40.4455 106.307 40.4948 106.25 40.5227C106.194 40.5506 106.125 40.5538 106.066 40.5307C104.576 39.9629 103.131 38.4316 102.675 36.9943C101.229 38.4937 98.8432 40.2472 96.4657 40.6326C96.4527 40.635 96.4407 40.6358 96.4278 40.6358L96.4287 40.6366C96.3862 40.6366 96.3436 40.6246 96.3085 40.6031C96.2632 40.5745 96.2336 40.5307 96.2262 40.4829C95.9871 38.7663 96.4912 35.5187 98.0222 34.5167C99.0348 33.8539 99.8141 33.4136 101.082 33.4967C102.37 33.5811 103.77 34.2791 104.768 34.986C106.247 36.0345 106.559 38.7152 106.351 40.3897Z",fill:"var(--neutral-1200)"})),T().createElement("path",{d:"M152 80.9408C152 88.6405 145.731 94.8817 138 94.8817C133.616 94.8817 129.702 92.8755 127.136 89.7341C125.175 87.3349 124 84.2748 124 80.9408C124 73.2412 130.268 67 138 67C145.731 67 152 73.2412 152 80.9408Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M152 80.9408C152 88.6405 145.731 94.8817 138 94.8817C133.616 94.8817 129.702 92.8755 127.136 89.7341C125.175 87.3349 124 84.2748 124 80.9408C124 73.2412 130.268 67 138 67C145.731 67 152 73.2412 152 80.9408Z",fill:"var(--center-channel-color)",fillOpacity:"0.12"}),T().createElement("mask",{id:"mask3_4441_155706","mask-type":"luminance",maskUnits:"userSpaceOnUse",x:"124",y:"67",width:"29",height:"28"},T().createElement("path",{d:"M152 80.9408C152 88.6405 145.732 94.8817 138 94.8817C133.616 94.8817 129.703 92.8755 127.136 89.7341C125.175 87.3349 124 84.2748 124 80.9408C124 73.2412 130.269 67 138 67C145.732 67 152 73.2412 152 80.9408Z",fill:"white"})),T().createElement("g",{mask:"url(#mask3_4441_155706)"},T().createElement("path",{d:"M150.352 92.3824C149.744 90.417 148.047 88.9139 145.918 88.4545L141.414 87.4836H134.586L130.081 88.4545C127.951 88.9139 126.255 90.417 125.648 92.3824L123.929 100.881H152.07L150.352 92.3824Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{opacity:"0.24",d:"M150.352 92.3824C149.744 90.417 148.048 88.9139 145.919 88.4545L141.415 87.4836H134.586L130.082 88.4545C127.952 88.9139 126.255 90.417 125.649 92.3824L123.93 100.881H152.071L150.352 92.3824Z",fill:"#1C58D9"}),T().createElement("path",{d:"M140.736 87.8616L139.814 85.1019H135.768L135.019 87.8616C136.653 88.6282 139.103 88.6282 140.736 87.8616Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M140.736 87.8616L139.814 85.1019H135.768L135.019 87.8616C136.653 88.6282 139.103 88.6282 140.736 87.8616Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M143.13 79.5591C143.654 79.4178 143.678 80.1968 143.479 81.0049C143.298 81.7414 143.13 82.9448 142.585 82.6527C141.929 84.3868 140.731 85.7053 139.283 86.2273C138.833 86.4237 138.355 86.5312 137.86 86.5312C137.222 86.5312 136.613 86.3531 136.056 86.0364C134.806 85.4206 133.782 84.1944 133.196 82.634C132.658 82.7685 132.43 81.4963 132.309 81.0049C132.155 80.3806 131.96 79.559 132.658 79.559C132.672 75.7767 135.011 72.7163 137.894 72.7163C140.777 72.7163 143.116 75.7767 143.13 79.5591Z",fill:"var(--center-channel-bg)"}),T().createElement("path",{d:"M143.13 79.5591C143.654 79.4178 143.678 80.1968 143.479 81.0049C143.298 81.7414 143.13 82.9448 142.585 82.6527C141.929 84.3868 140.731 85.7053 139.283 86.2273C138.833 86.4237 138.355 86.5312 137.86 86.5312C137.222 86.5312 136.613 86.3531 136.056 86.0364C134.806 85.4206 133.782 84.1944 133.196 82.634C132.658 82.7685 132.43 81.4963 132.309 81.0049C132.155 80.3806 131.96 79.559 132.658 79.559C132.672 75.7767 135.011 72.7163 137.894 72.7163C140.777 72.7163 143.116 75.7767 143.13 79.5591Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{d:"M132.172 72.0366C130.832 73.675 130.803 76.3499 132.096 78.7459C132.538 79.277 132.978 79.8071 133.42 80.3382C133.406 76.4669 134.034 75.424 134.644 75.234C135.649 74.9186 136.841 76.8499 139.022 76.8017C139.354 76.7942 140.099 76.7673 140.554 76.2459C140.946 75.7963 140.887 75.2448 141.005 75.233C141.2 75.2137 141.552 76.2673 142.229 80.3371C142.664 79.8028 143.101 79.2674 143.536 78.733C143.774 77.8038 143.993 76.5849 144.008 75.1493C144.028 73.2083 143.077 71.9796 142.737 70.8884C141.457 74.1194 140.167 70.0895 136.056 70.0961C134.72 70.0983 133.05 70.9636 132.172 72.0366Z",fill:"var(--neutral-1200)"})),T().createElement("rect",{x:"108",y:"4",width:"83",height:"50",rx:"4",fill:"var(--neutral-1200)",fillOpacity:"0.32"}),T().createElement("rect",{x:"110.5",y:"0.5",width:"82",height:"49",rx:"3.5",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)"}),T().createElement("path",{d:"M152 10H166.481",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M152 16H175",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M152 22H182",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M152 28H182",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M168.891 10H178.525",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M180.932 10H183.946",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M127.509 6.91797H130.5L130.879 9.3795C131.794 9.58757 132.651 9.94891 133.422 10.4351L135.435 8.95885L137.55 11.0739L136.056 13.1106C136.521 13.8733 136.865 14.7179 137.061 15.6177L139.592 16.007V18.9982L136.996 19.3976C136.779 20.2497 136.428 21.0485 135.968 21.7704L137.55 23.9276L135.435 26.0426L133.226 24.4233C132.521 24.8414 131.747 25.1567 130.926 25.3485L130.505 28.0859H127.514L127.089 25.3257C126.282 25.127 125.522 24.8087 124.829 24.3908L122.577 26.0425L120.462 23.9274L122.097 21.6981C121.661 20.9993 121.328 20.2302 121.118 19.4116L118.422 18.9969V16.0057L121.053 15.601C121.243 14.7356 121.57 13.9214 122.01 13.1824L120.464 11.0737L122.579 8.95866L124.637 10.4677C125.391 9.98385 126.23 9.62025 127.127 9.40401L127.509 6.91797ZM133.041 17.3689C133.041 19.5704 131.256 21.355 129.054 21.355C126.853 21.355 125.068 19.5704 125.068 17.3689C125.068 15.1675 126.853 13.3828 129.054 13.3828C131.256 13.3828 133.041 15.1675 133.041 17.3689Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}),T().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M138.405 30.9492H140.038L140.244 32.2907C140.745 32.4044 141.213 32.602 141.635 32.8679L142.73 32.0643L143.885 33.2188L143.071 34.3279C143.325 34.744 143.513 35.2048 143.619 35.6957L145 35.9081V37.5407L143.584 37.7585C143.465 38.2245 143.274 38.6613 143.022 39.0558L143.885 40.2329L142.73 41.3874L141.525 40.5032C141.14 40.7307 140.719 40.9023 140.272 41.0069L140.042 42.5039H138.409L138.177 40.9948C137.737 40.8867 137.324 40.7135 136.946 40.4861L135.715 41.3888L134.561 40.2344L135.453 39.0171C135.215 38.6355 135.033 38.2155 134.918 37.7683L133.445 37.5418V35.9092L134.881 35.6882C134.985 35.2163 135.163 34.7723 135.403 34.3692L134.56 33.2202L135.715 32.0657L136.835 32.887C137.247 32.6218 137.706 32.4226 138.197 32.3043L138.405 30.9492ZM141.426 36.6523C141.426 37.8539 140.452 38.828 139.25 38.828C138.048 38.828 137.074 37.8539 137.074 36.6523C137.074 35.4507 138.048 34.4766 139.25 34.4766C140.452 34.4766 141.426 35.4507 141.426 36.6523Z",fill:"var(--center-channel-color)",fillOpacity:"0.56"}));Zd.propTypes={width:k().number,height:k().number};const Jd=Zd,Kd=e=>T().createElement("svg",{width:e.width?e.width.toString():"208",height:e.height?e.height.toString():"120",viewBox:"0 0 208 120",fill:"none",xmlns:"http://www.w3.org/2000/svg"},T().createElement("rect",{x:"10.7451",y:"22",width:"181",height:"78",rx:"5.625",fill:"#1C58D9",fillOpacity:"0.12"}),T().createElement("path",{d:"M12 28L17.5 33.5V72.5H182.5V101.5",stroke:"#3F4350",strokeOpacity:"0.24",strokeLinecap:"round"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 180 105)",fill:"#3F4350",fillOpacity:"0.48"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 8 36)",fill:"#3F4350",fillOpacity:"0.48"}),T().createElement("ellipse",{cx:"102.5",cy:"60.5",rx:"59.5",ry:"59.5",fill:"#1C58D9",fillOpacity:"0.04"}),T().createElement("path",{d:"M50 41L50 49.7097L148.46 49.7097L148.46 59L163 59",stroke:"#3F4350",strokeOpacity:"0.24",strokeLinecap:"round"}),T().createElement("path",{d:"M136 100L136 85L121 85",stroke:"#3F4350",strokeOpacity:"0.24",strokeLinecap:"round"}),T().createElement("ellipse",{cx:"1.5",cy:"1.5",rx:"1.5",ry:"1.5",transform:"matrix(1 8.74228e-08 8.74228e-08 -1 48.5 42)",fill:"#3F4350",fillOpacity:"0.48"}),T().createElement("ellipse",{cx:"136",cy:"101.5",rx:"1.5",ry:"1.5",transform:"rotate(180 136 101.5)",fill:"#3F4350",fillOpacity:"0.48"}),T().createElement("ellipse",{cx:"1.5",cy:"1.5",rx:"1.5",ry:"1.5",transform:"matrix(1 8.74228e-08 8.74228e-08 -1 162 70)",fill:"#3F4350",fillOpacity:"0.48"}),T().createElement("path",{d:"M102.238 107.436L102.482 107.572L102.725 107.437L107.738 104.652L107.738 104.652C134.208 89.9349 140.141 62.6051 142.498 32.2629L142.533 31.8248L142.102 31.7348L141.977 31.7086L141.927 31.698H141.875C129.258 31.698 116.365 27.1582 102.822 14.6329L102.444 14.2833L102.105 14.6715C96.4271 21.1871 91.4818 25.1561 85.8022 27.6605C80.114 30.1687 73.6481 31.2268 64.8879 31.85L64.8664 31.8515L64.8451 31.8549L62.9217 32.1596L62.4635 32.2323L62.5017 32.6946C64.9873 62.7953 70.8178 89.8754 97.0623 104.543L102.238 107.436Z",fill:"white",stroke:"#3F4350"}),T().createElement("path",{d:"M70.2469 81.6538C73.544 87.9479 77.7115 93.688 83.0142 98.7308M84.5619 100.154C85.6612 101.131 86.8066 102.08 88 103",stroke:"#3F4350",strokeLinecap:"round",strokeLinejoin:"round"}),T().createElement("path",{d:"M102.485 99L98.0951 96.6096C76.045 84.6062 71.1078 62.4456 69 37.5833L70.6312 37.3316C85.5165 36.3001 92.8039 33.8204 102.485 23C114.04 33.4089 125.074 37.207 135.894 37.207L136 37.2287C134.001 62.2886 128.977 84.6549 106.736 96.6989L102.485 99Z",fill:"#3F4350",fillOpacity:"0.12"}),T().createElement("path",{d:"M77.5632 51.6124H121.686",stroke:"#3F4350",strokeOpacity:"0.12",strokeLinecap:"round"}),T().createElement("path",{d:"M84.1345 57.2451H128.257",stroke:"#3F4350",strokeOpacity:"0.12",strokeLinecap:"round"}),T().createElement("path",{d:"M79.4407 63.8165H123.563",stroke:"#3F4350",strokeOpacity:"0.12",strokeLinecap:"round"}),T().createElement("path",{d:"M87.8896 75.0818H108.543",stroke:"#3F4350",strokeOpacity:"0.12",strokeLinecap:"round"}),T().createElement("path",{d:"M73.8076 46.1042H87.8893",stroke:"#3F4350",strokeOpacity:"0.12",strokeLinecap:"round"}),T().createElement("path",{d:"M90.7056 46.1042H111.359",stroke:"#3F4350",strokeOpacity:"0.12",strokeLinecap:"round"}),T().createElement("path",{d:"M114.175 46.1042H132.012",stroke:"#3F4350",strokeOpacity:"0.12",strokeLinecap:"round"}),T().createElement("path",{d:"M101.033 80.7149H118.869",stroke:"#3F4350",strokeOpacity:"0.12",strokeLinecap:"round"}),T().createElement("path",{d:"M87.8899 80.7149H98.2164",stroke:"#3F4350",strokeOpacity:"0.12",strokeLinecap:"round"}),T().createElement("path",{d:"M81.3184 69.1778H101.971",stroke:"#3F4350",strokeOpacity:"0.12",strokeLinecap:"round"}),T().createElement("path",{d:"M104.788 69.1777H122.624",stroke:"#3F4350",strokeOpacity:"0.12",strokeLinecap:"round"}),T().createElement("path",{d:"M77.563 40.8164H101.032",stroke:"#3F4350",strokeOpacity:"0.12",strokeLinecap:"round"}),T().createElement("path",{d:"M104.788 40.8164H128.257",stroke:"#3F4350",strokeOpacity:"0.12",strokeLinecap:"round"}),T().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M92.0013 57.3883H113.118C114.095 57.3883 114.885 58.1742 114.885 59.1484V66.9186C114.885 73.5528 111.909 78.9321 105.259 78.9321H99.8606C93.2109 78.9321 90.2349 73.5528 90.2349 66.9186V59.1484C90.2349 58.1775 91.0273 57.3883 92.0013 57.3883ZM102.172 61.9248H101.235V64.127V68.0017L102.478 69.2449L101.235 70.4881V72.1297H104.636V65.3642L103.686 64.4136L104.636 63.4629V61.9248H102.172Z",fill:"#1C58D9"}),T().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M108.374 54.1074V57.4273C108.374 57.4476 108.375 57.4675 108.376 57.4871H111.35C111.352 57.4675 111.352 57.4476 111.352 57.4273V54.1074C111.352 49.1351 108.096 45.0882 103.308 45.0882H101.28C96.4909 45.0882 93.2349 49.1351 93.2349 54.1074V57.4273C93.2349 57.4476 93.2356 57.4675 93.2371 57.4871H96.205C96.2066 57.4675 96.2073 57.4476 96.2073 57.4273V54.1074C96.2073 50.7242 98.3244 48.1476 100.835 48.1476H103.746C106.424 48.1476 108.374 50.7242 108.374 54.1074Z",fill:"#1C58D9"}),T().createElement("path",{d:"M109 16C109 16 118.172 25.6296 137 29",stroke:"#3F4350",strokeLinecap:"round",strokeLinejoin:"round"}),T().createElement("rect",{x:"1.5",y:"20.5",width:"43",height:"79",rx:"7.5",fill:"white",stroke:"#3F4350",strokeWidth:"3"}),T().createElement("path",{d:"M3 27.5C3 24.4624 5.46243 22 8.5 22H37.5C40.5376 22 43 24.4624 43 27.5V29H3V27.5Z",fill:"#1C58D9",fillOpacity:"0.16"}),T().createElement("circle",{cx:"12.831",cy:"64.831",r:"5.83099",fill:"#3F4350",fillOpacity:"0.32"}),T().createElement("path",{d:"M9.69995 64.7411L12.0947 67.1786L16.2 63",stroke:"white",strokeWidth:"0.5525",strokeLinecap:"round",strokeLinejoin:"round"}),T().createElement("path",{d:"M22.5488 63H32.915",stroke:"#3F4350",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M8 74H34",stroke:"#3F4350",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M8 82H28",stroke:"#3F4350",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M22.5488 67H38.746",stroke:"#3F4350",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M8 78H24",stroke:"#3F4350",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M27 78L39 78",stroke:"#3F4350",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("rect",{x:"15",y:"25",width:"16",height:"1",rx:"0.5",fill:"#3F4350"}),T().createElement("rect",{opacity:"0.16",x:"157",y:"23",width:"49",height:"64",rx:"4",fill:"#090A0B"}),T().createElement("rect",{x:"159.5",y:"19.5",width:"48",height:"65",rx:"3.5",fill:"white",stroke:"#3F4350"}),T().createElement("path",{d:"M185 38H201",stroke:"#3F4350",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M184 65H200",stroke:"#3F4350",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M184 71H200",stroke:"#3F4350",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M165 47H202",stroke:"#3F4350",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M165 53H202",stroke:"#3F4350",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M185 32H194.635",stroke:"#3F4350",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{d:"M196.932 32H199.946",stroke:"#3F4350",strokeOpacity:"0.56",strokeLinecap:"round"}),T().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M171.467 26.918H173.457L173.709 28.5555C174.318 28.6939 174.888 28.9343 175.401 29.2577L176.74 28.2756L178.147 29.6827L177.153 31.0376C177.462 31.545 177.691 32.1069 177.822 32.7055L179.505 32.9645V34.9544L177.778 35.2201C177.634 35.7869 177.401 36.3184 177.094 36.7986L178.147 38.2337L176.74 39.6407L175.271 38.5634C174.801 38.8416 174.286 39.0514 173.74 39.179L173.46 41H171.47L171.188 39.1638C170.651 39.0316 170.145 38.8198 169.684 38.5418L168.186 39.6406L166.779 38.2335L167.867 36.7505C167.577 36.2856 167.355 35.774 167.215 35.2294L165.422 34.9535V32.9636L167.172 32.6944C167.299 32.1186 167.516 31.577 167.809 31.0854L166.78 29.6826L168.187 28.2755L169.556 29.2795C170.058 28.9575 170.616 28.7157 171.213 28.5718L171.467 26.918ZM175.147 33.8704C175.147 35.335 173.96 36.5222 172.495 36.5222C171.031 36.5222 169.844 35.335 169.844 33.8704C169.844 32.4059 171.031 31.2187 172.495 31.2187C173.96 31.2187 175.147 32.4059 175.147 33.8704Z",fill:"#3F4350",fillOpacity:"0.56"}),T().createElement("path",{opacity:"0.7",fillRule:"evenodd",clipRule:"evenodd",d:"M172.405 61.9492H174.038L174.244 63.2907C174.745 63.4044 175.213 63.602 175.635 63.8679L176.73 63.0643L177.885 64.2188L177.071 65.3279C177.325 65.744 177.513 66.2048 177.619 66.6957L179 66.9081V68.5407L177.584 68.7585C177.465 69.2245 177.274 69.6613 177.022 70.0558L177.885 71.2329L176.73 72.3874L175.525 71.5032C175.14 71.7307 174.719 71.9023 174.272 72.0069L174.042 73.5039H172.409L172.177 71.9948C171.737 71.8867 171.324 71.7135 170.946 71.4861L169.715 72.3888L168.561 71.2344L169.453 70.0171C169.215 69.6355 169.033 69.2155 168.918 68.7683L167.445 68.5418V66.9092L168.881 66.6882C168.985 66.2163 169.163 65.7723 169.403 65.3692L168.56 64.2202L169.715 63.0657L170.835 63.887C171.247 63.6218 171.706 63.4226 172.197 63.3043L172.405 61.9492ZM175.426 67.6523C175.426 68.8539 174.452 69.828 173.25 69.828C172.048 69.828 171.074 68.8539 171.074 67.6523C171.074 66.4507 172.048 65.4766 173.25 65.4766C174.452 65.4766 175.426 66.4507 175.426 67.6523Z",fill:"#3F4350",fillOpacity:"0.56"}));Kd.propTypes={width:k().number,height:k().number};const Qd=Kd;var Xd=s(33870);const $d=(0,N.defineMessages)({title:{id:"admin.feature_flags.title",defaultMessage:"Features Flags"}});var ec=s(87373),tc=s(75616),sc=s(48774);function ac(e){const{formatMessage:t}=(0,N.useIntl)();return T().createElement("span",e,T().createElement("svg",{width:"12px",height:"12px",viewBox:"0 0 18 18",version:"1.1",role:"img","aria-label":t({id:"generic_icons.mention",defaultMessage:"Mention Icon"}),fill:"inherit"},T().createElement("path",{d:"M9 11.7C9.72 11.7 10.35 11.43 10.89 10.89C11.43 10.35 11.7 9.71999 11.7 8.99999C11.7 8.27999 11.43 7.64999 10.89 7.10999C10.35 6.56999 9.72 6.29999 9 6.29999C8.28 6.29999 7.65 6.56999 7.11 7.10999C6.57 7.64999 6.3 8.27999 6.3 8.99999C6.3 9.71999 6.57 10.35 7.11 10.89C7.65 11.43 8.28 11.7 9 11.7ZM9 -1.26362e-05C11.46 -1.26362e-05 13.56 0.869987 15.3 2.60999C16.176 3.48599 16.842 4.45199 17.298 5.50799C17.766 6.59999 18 7.76399 18 8.99999V10.26C18 10.692 17.916 11.118 17.748 11.538C17.592 11.922 17.376 12.276 17.1 12.6C16.788 12.912 16.446 13.14 16.074 13.284C15.714 13.428 15.306 13.5 14.85 13.5C13.746 13.5 12.876 13.05 12.24 12.15C11.34 13.05 10.26 13.5 9 13.5C7.716 13.5 6.666 13.05 5.85 12.15C4.95 11.25 4.5 10.2 4.5 8.99999C4.5 7.70399 4.95 6.65399 5.85 5.84999C6.666 4.94999 7.716 4.49999 9 4.49999C10.296 4.49999 11.346 4.94999 12.15 5.84999C13.05 6.74999 13.5 7.79999 13.5 8.99999V10.26C13.5 10.44 13.536 10.614 13.608 10.782C13.692 10.95 13.8 11.106 13.932 11.25C14.076 11.382 14.232 11.49 14.4 11.574C14.568 11.658 14.718 11.7 14.85 11.7C15.03 11.7 15.204 11.664 15.372 11.592C15.54 11.508 15.696 11.394 15.84 11.25C16.08 11.01 16.2 10.68 16.2 10.26V8.99999C16.2 7.01999 15.48 5.30999 14.04 3.86999C13.332 3.16199 12.564 2.63999 11.736 2.30399C10.908 1.96799 9.996 1.79999 9 1.79999C7.056 1.79999 5.346 2.48999 3.87 3.86999C3.174 4.52999 2.652 5.30399 2.304 6.19199C1.968 7.04399 1.8 7.97999 1.8 8.99999C1.8 9.98399 1.974 10.902 2.322 11.754C2.67 12.594 3.186 13.356 3.87 14.04C4.554 14.724 5.328 15.252 6.192 15.624C7.092 16.008 8.028 16.2 9 16.2H13.5V18H9C7.752 18 6.6 17.772 5.544 17.316C4.488 16.872 3.51 16.2 2.61 15.3C1.71 14.4 1.05 13.44 0.63 12.42C0.21 11.4 0 10.266 0 9.01799C0 7.75799 0.222 6.59399 0.666 5.52599C1.098 4.49399 1.746 3.52199 2.61 2.60999C4.266 0.869987 6.396 -1.26362e-05 9 -1.26362e-05Z"})))}const ic=e=>{let{name:t,title:s,customID:a,isDisabled:i,showAtMention:n,onChange:r}=e;return T().createElement("div",{className:"group-profile form-horizontal",id:a},T().createElement("div",{className:"group-profile-field form-group mb-0"},T().createElement("label",{className:"control-label col-sm-4",htmlFor:a+"Input"},T().createElement(N.FormattedMessage,s)),T().createElement("div",{className:"col-sm-8"},T().createElement("div",{className:"icon-over-input"},n&&T().createElement(ac,{className:"icon icon__mentions","aria-hidden":"true"})),T().createElement("input",{id:a+"Input",type:"text",className:"form-control group-at-mention-input",value:t,disabled:i,onChange:r}))))};ic.propTypes={name:k().string,customID:k().string.isRequired,isDisabled:k().bool,showAtMention:k().bool.isRequired,onChange:k().func};const nc=(0,A.memo)(ic),rc=e=>{const{title:t,subTitle:s,singleLine:a,toggled:i,onToggle:n,children:r,offText:o,onText:l,disabled:d,last:c,id:m}=e;return T().createElement("div",null,T().createElement("div",{className:"line-switch d-flex flex-sm-column flex-md-row align-items-sm-start align-items-center"},T().createElement("label",{className:"line-switch__label"},t),T().createElement("div",{"data-testid":m,className:"line-switch__toggle"},T().createElement(De.A,{id:m,disabled:d,onToggle:n,toggled:i,onText:l,offText:o}))),T().createElement("div",{className:"row"},T().createElement("div",{className:"col-sm-10"},T().createElement("div",{className:"help-text-small help-text-no-padding ".concat(a?"help-text-single-line":"")},s))),r,!c&&T().createElement("div",{className:"section-separator"},T().createElement("hr",{className:"separator__hr"})))};rc.propTypes={id:k().string.isRequired,title:k().element.isRequired,toggled:k().bool.isRequired,subTitle:k().element.isRequired,onToggle:k().func.isRequired,last:k().bool,disabled:k().bool,singleLine:k().bool,children:k().element,offText:k().element,onText:k().element};const oc=rc,lc=e=>{let{subtitle:t,title:s,button:a,children:i,className:n="",id:r,onHeaderClick:o,subtitleValues:l}=e;return T().createElement("div",{className:"AdminPanel clearfix "+n,id:r},T().createElement("div",{className:"header",onClick:o},T().createElement("div",null,T().createElement("h3",null,T().createElement(N.FormattedMessage,s)),T().createElement("div",{className:"mt-2"},T().createElement(N.FormattedMessage,Object.assign({},t,{values:l})))),a&&T().createElement("div",{className:"button"},a)),i)};lc.propTypes={id:k().string,className:k().string,onHeaderClick:k().func,subtitleValues:k().any,button:k().node,children:k().node};const dc=lc,cc=e=>{let{isDefault:t,allowReference:s,onToggle:a,isDisabled:i}=e;return T().createElement(oc,{id:"allowReferenceSwitch",disabled:i||t,toggled:s,last:!0,onToggle:()=>{t||a(!s)},singleLine:!1,title:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_details.groupDetailsToggle",defaultMessage:"Enable Group Mention"}),subTitle:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_details.groupDetailsToggleDescr",defaultMessage:"When enabled, this group can be mentioned in other channels and teams. This may result in the group member list being visible to all users."})})};cc.propTypes={isDefault:k().bool.isRequired,allowReference:k().bool.isRequired,onToggle:k().func.isRequired,isDisabled:k().bool};const mc=e=>{let{displayname:t,mentionname:s,allowReference:a,onToggle:i,onChange:n,readOnly:r}=e;return T().createElement(dc,{id:"group_profile",title:(0,N.defineMessage)({id:"admin.group_settings.group_detail.groupProfileTitle",defaultMessage:"Group Profile"}),subtitle:(0,N.defineMessage)({id:"admin.group_settings.group_detail.groupProfileDescription",defaultMessage:"The name for this group."})},T().createElement(nc,{name:t,title:(0,N.defineMessage)({id:"admin.group_settings.group_details.group_profile.name",defaultMessage:"Name:"}),customID:"groupDisplayName",isDisabled:!0,showAtMention:!1}),T().createElement("div",{className:"group-settings"},T().createElement("div",{className:"group-settings--body"},T().createElement("div",{className:"section-separator"},T().createElement("hr",{className:"separator__hr"})),T().createElement(cc,{isDefault:!1,allowReference:a,onToggle:i,isDisabled:r}))),a&&T().createElement(nc,{name:s,title:(0,N.defineMessage)({id:"admin.group_settings.group_details.group_mention.name",defaultMessage:"Group Mention:"}),customID:"groupMention",isDisabled:r,showAtMention:!0,onChange:n}))};mc.propTypes={displayname:k().string.isRequired,mentionname:k().string,allowReference:k().bool.isRequired,onChange:k().func.isRequired,onToggle:k().func.isRequired,readOnly:k().bool};var uc=s(3583),pc=s.n(uc);function gc(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class hc extends T().PureComponent{constructor(e){super(e),gc(this,"removeItem",(()=>{this.props.onRemoveItem(this.props.id,this.props.type),this.setState({showConfirmationModal:!1})})),gc(this,"changeRoles",(()=>{this.props.onChangeRoles(this.props.id,this.props.type,!this.props.schemeAdmin)})),gc(this,"toggleCollapse",(()=>{this.props.onToggleCollapse(this.props.id)})),gc(this,"displayAssignedRolesDropdown",(()=>{const{schemeAdmin:e,name:t,isDisabled:s}=this.props,a=T().createElement(N.FormattedMessage,{id:"admin.group_teams_and_channels_row.channelAdmin",defaultMessage:"Channel Admin"}),i=T().createElement(N.FormattedMessage,{id:"admin.group_teams_and_channels_row.teamAdmin",defaultMessage:"Team Admin"}),n=T().createElement(N.FormattedMessage,{id:"admin.group_teams_and_channels_row.member",defaultMessage:"Member"});let r=null;if(!pc()(e)){let o=n,l=this.props.type.includes("team")?i:a;e&&(o=this.props.type.includes("team")?i:a,l=n),r=T().createElement("div",null,T().createElement(bl.A,{isDisabled:s},T().createElement("div",{"data-testid":"".concat(t,"_current_role")},T().createElement("a",null,T().createElement("span",null,o," "),T().createElement("span",{className:"caret"}))),T().createElement(El.A,{openLeft:!0,openUp:!0,ariaLabel:(0,D.Vw)({id:"admin.team_channel_settings.group_row.memberRole",defaultMessage:"Member Role"}),id:"".concat(t,"_change_role_options")},T().createElement(El.A.ItemAction,{testid:"".concat(t,"_role_to_be"),onClick:this.changeRoles,text:l}))))}return r})),gc(this,"render",(()=>{let e="",t=null;this.props.hasChildren&&(t=T().createElement("i",{className:"fa "+(this.props.collapsed?"fa-caret-right":"fa-caret-down"),onClick:this.toggleCollapse}),e+=" has-children"),this.props.collapsed&&(e+=" collapsed");let s=null,a=null;switch(this.props.type){case"public-team":a=T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels_row.publicTeam",defaultMessage:"Team"});break;case"private-team":a=T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels_row.privateTeam",defaultMessage:"Team (Private)"})}switch(this.props.type){case"public-channel":s=T().createElement("span",{className:"channel-icon"},T().createElement(Fn.A,{className:"icon icon__globe"})),a=T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels_row.publicChannel",defaultMessage:"Channel"});break;case"private-channel":s=T().createElement("span",{className:"channel-icon"},T().createElement(Un.A,{className:"icon icon__lock"})),a=T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels_row.privateChannel",defaultMessage:"Channel (Private)"})}const i=this.props.type.split("-")[1];return T().createElement("tr",{className:"group-teams-and-channels-row"+e},T().createElement(Ta.A,{show:this.state.showConfirmationModal,title:T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels_row.remove.confirm_header",defaultMessage:"Remove Membership from the {name} {displayType}?",values:{name:this.props.name,displayType:i}}),message:T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels_row.remove.confirm_body",defaultMessage:"Removing this membership will prevent future users in this group from being added to the {name} {displayType}.",values:{name:this.props.name,displayType:i}}),confirmButtonText:T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels_row.remove.confirm_button",defaultMessage:"Yes, Remove"}),onConfirm:this.removeItem,onCancel:()=>this.setState({showConfirmationModal:!1})}),T().createElement("td",null,T().createElement("span",{className:"arrow-icon"},t),s,T().createElement("span",{className:oe()({"name-no-arrow":pc()(t)&&pc()(s)})},this.props.name)),T().createElement("td",{className:"type"},a),T().createElement("td",null,this.displayAssignedRolesDropdown()),T().createElement("td",{className:"text-right"},T().createElement("button",{type:"button",className:"btn btn-tertiary",onClick:()=>this.setState({showConfirmationModal:!0}),"data-testid":"".concat(this.props.name,"_groupsyncable_remove"),disabled:this.props.isDisabled},T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels_row.remove",defaultMessage:"Remove"}))))})),this.state={showConfirmationModal:!1}}}function fc(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Ec(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}gc(hc,"propTypes",{id:k().string.isRequired,type:k().string.isRequired,name:k().string.isRequired,hasChildren:k().bool,collapsed:k().bool,onRemoveItem:k().func.isRequired,onToggleCollapse:k().func.isRequired,onChangeRoles:k().func.isRequired,schemeAdmin:k().bool,isDisabled:k().bool});class bc extends T().PureComponent{constructor(e){super(e),Ec(this,"onToggleCollapse",(e=>{const t=function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?fc(Object(s),!0).forEach((function(t){Ec(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):fc(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}({},this.state.collapsed);t[e]=!t[e],this.setState({collapsed:t})})),Ec(this,"onRemoveItem",((e,t)=>{this.props.onRemoveItem(e,t)})),Ec(this,"onChangeRoles",(async(e,t,s)=>{this.props.onChangeRoles(e,t,s)})),Ec(this,"teamsAndChannelsToEntries",((e,t)=>{const s=[],a=new Set,i=[];null==e||e.forEach((e=>{a.add(e.team_id),i.push({type:"O"===e.team_type?"public-team":"private-team",hasChildren:null==t?void 0:t.some((t=>t.team_id===e.team_id)),name:e.team_display_name,collapsed:this.state.collapsed[e.team_id],id:e.team_id,schemeAdmin:e.scheme_admin})}));const n={};return null==t||t.forEach((e=>{n[e.team_id]=n[e.team_id]||[],n[e.team_id].push({type:"O"===e.channel_type?"public-channel":"private-channel",name:e.channel_display_name,id:e.channel_id,schemeAdmin:e.scheme_admin}),a.has(e.team_id)||(a.add(e.team_id),i.push({type:"O"===e.team_type?"public-team":"private-team",hasChildren:!0,name:e.team_display_name,collapsed:this.state.collapsed[e.team_id],id:e.team_id}))})),i.sort(((e,t)=>e.name&&t.name?e.name.localeCompare(t.name):0)),i.forEach((e=>{if(s.push(e),e.hasChildren&&!e.collapsed){const t=n[e.id];t.sort(((e,t)=>e.name.localeCompare(t.name))),s.push(...t)}})),s})),Ec(this,"render",(()=>{const e=this.teamsAndChannelsToEntries(this.props.teams,this.props.channels);return this.props.loading?T().createElement("div",{className:"group-teams-and-channels"},T().createElement("div",{className:"group-teams-and-channels-loading"},T().createElement("i",{className:"fa fa-spinner fa-pulse fa-2x"}))):0===e.length?T().createElement("div",{className:"group-teams-and-channels"},T().createElement("div",{className:"group-teams-and-channels-empty"},T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_details.group_teams_and_channels.no-teams-or-channels-speicified",defaultMessage:"No teams or channels specified yet"}))):T().createElement("div",{className:"AdminPanel__content"},T().createElement("table",{id:"team_and_channel_membership_table",className:"AdminPanel__table group-teams-and-channels"},T().createElement("thead",{className:"group-teams-and-channels--header"},T().createElement("tr",null,T().createElement("th",{style:{width:"30%"}},T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_profile.group_teams_and_channels.name",defaultMessage:"Name"})),T().createElement("th",{style:{width:"25%"}},T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_profile.group_teams_and_channels.type",defaultMessage:"Type"})),T().createElement("th",{style:{width:"25%"}},T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_profile.group_teams_and_channels.assignedRoles",defaultMessage:"Assigned Roles"})),T().createElement("th",{style:{width:"20%"}}))),T().createElement("tbody",{className:"group-teams-and-channels--body"},e.map((e=>T().createElement(hc,Object.assign({key:e.id,onRemoveItem:this.onRemoveItem,onChangeRoles:this.onChangeRoles,onToggleCollapse:this.onToggleCollapse,isDisabled:this.props.isDisabled},e)))))))})),this.state={collapsed:{}}}}Ec(bc,"propTypes",{id:k().string.isRequired,teams:k().array,channels:k().array,loading:k().bool.isRequired,onChangeRoles:k().func.isRequired,onRemoveItem:k().func.isRequired,isDisabled:k().bool});var vc=s(41468);const yc=e=>{let{username:t,displayName:s,email:a,userId:i,lastPictureUpdate:n}=e;return T().createElement("div",{className:"group-users-row"},T().createElement(vc.A,{username:t,url:O.mT.getProfilePictureUrl(i,n),size:"lg"}),T().createElement("div",{className:"user-data"},T().createElement("div",{className:"name-row"},T().createElement("span",{className:"username"},"@"+t),"-",T().createElement("span",{className:"display-name"},s)),T().createElement("div",null,T().createElement("span",{className:"email-label"},T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_details.group_users.email",defaultMessage:"Email:"})),T().createElement("span",{className:"email"},a))))};yc.propTypes={username:k().string.isRequired,displayName:k().string.isRequired,email:k().string.isRequired,userId:k().string.isRequired,lastPictureUpdate:k().number.isRequired};const Mc=T().memo(yc);function _c(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Sc=20;class Cc extends T().PureComponent{constructor(e){super(e),_c(this,"previousPage",(()=>{const e=this.state.page<1?0:this.state.page-1;this.setState({page:e})})),_c(this,"nextPage",(async()=>{const{total:e,members:t,groupID:s,getMembers:a}=this.props,i=(this.state.page+1)*Sc>=e?this.state.page:this.state.page+1;if(i===this.state.page)return;const n=(i+1)*Sc>=e?e:(i+1)*Sc;t.length>=n?this.setState({page:i}):(this.setState({page:i,loading:!0}),await a(s,i,Sc),this.setState({loading:!1}))})),_c(this,"renderRows",(()=>0===this.props.members.length?T().createElement("div",{className:"group-users-empty"},T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_details.group_users.no-users-found",defaultMessage:"No users found"})):this.props.members.slice(this.state.page*Sc,(this.state.page+1)*Sc).map((e=>T().createElement(Mc,{key:e.id,username:e.username,displayName:e.first_name+" "+e.last_name,email:e.email,userId:e.id,lastPictureUpdate:e.last_picture_update}))))),_c(this,"renderPagination",(()=>{if(0===this.props.members.length)return T().createElement("div",{className:"group-users--footer empty"});const e=this.state.page*Sc+1;let t=this.state.page*Sc+Sc;const s=this.props.total;t>s&&(t=s);const a=t===s,i=0===this.state.page;return T().createElement("div",{className:"group-users--footer"},T().createElement("div",{className:"counter"},T().createElement(N.FormattedMessage,{id:"admin.group_settings.groups_list.paginatorCount",defaultMessage:"{startCount, number} - {endCount, number} of {total, number}",values:{startCount:e,endCount:t,total:s}})),T().createElement("button",{type:"button",className:"btn btn-tertiary prev "+(i?"disabled":""),onClick:this.previousPage,disabled:i},T().createElement(de.A,null)),T().createElement("button",{type:"button",className:"btn btn-tertiary next "+(a?"disabled":""),onClick:this.nextPage,disabled:a},T().createElement(le.A,null)))})),_c(this,"renderHeader",(()=>{var e;return this.props.source===sc.hg.Ldap?T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_profile.group_users.ldapConnectorText",defaultMessage:"AD/LDAP Connector is configured to sync and manage this group and its users. <a>Click here to view</a>",values:{a:e=>T().createElement(w.Link,{to:"/admin_console/authentication/ldap"},e)}}):null!==(e=this.props.source)&&void 0!==e&&e.startsWith(sc.C0.Plugin)?T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_profile.group_users.pluginGroupText",defaultMessage:"This group is managed by a plugin."}):null})),_c(this,"render",(()=>T().createElement("div",{className:"group-users"},T().createElement("div",{className:"group-users--header"},this.renderHeader()),T().createElement("div",{className:"group-users--body"},T().createElement("div",{className:"group-users-loading "+(this.state.loading?"active":"")},T().createElement("i",{className:"fa fa-spinner fa-pulse fa-2x"})),this.renderRows()),this.renderPagination()))),this.state={loading:!0,page:0}}componentDidMount(){this.props.getMembers(this.props.groupID,0,Sc).then((()=>{this.setState({loading:!1})}))}}function Ac(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}_c(Cc,"propTypes",{groupID:k().string.isRequired,members:k().array.isRequired,total:k().number.isRequired,source:k().string,getMembers:k().func.isRequired});class Tc extends T().PureComponent{constructor(e){super(e),Ac(this,"openAddChannel",(()=>{this.setState({addChannelOpen:!0})})),Ac(this,"closeAddChannel",(()=>{this.setState({addChannelOpen:!1})})),Ac(this,"openAddTeam",(()=>{this.setState({addTeamOpen:!0})})),Ac(this,"closeAddTeam",(()=>{this.setState({addTeamOpen:!1})})),Ac(this,"addTeams",(e=>{const{groupID:t}=this.props,{groupTeams:s=[]}=this.state,a=e.map((e=>({group_id:t,scheme_admin:!1,team_display_name:e.display_name,team_id:e.id,team_type:e.type})));this.setState({saveNeeded:!0,groupTeams:s.concat(a),teamsToAdd:a}),this.props.actions.setNavigationBlocked(!0)})),Ac(this,"addChannels",(e=>{const{groupID:t}=this.props,{groupChannels:s=[]}=this.state,a=e.map((e=>({channel_display_name:e.display_name,channel_id:e.id,channel_type:e.type,group_id:t,scheme_admin:!1,team_display_name:e.team_display_name,team_id:e.team_id})));this.setState({saveNeeded:!0,groupChannels:s.concat(a),channelsToAdd:a}),this.props.actions.setNavigationBlocked(!0)})),Ac(this,"onRemoveTeamOrChannel",((e,t)=>{const{groupTeams:s,groupChannels:a,itemsToRemove:i=[],channelsToAdd:n,teamsToAdd:r}=this.state,o={saveNeeded:!0,itemsToRemove:i,serverError:void 0},l=this.syncableTypeFromEntryType(t);let d=!0;l===sc.CL.Channel?(o.channelsToAdd=null==n?void 0:n.filter((t=>t.channel_id!==e)),this.props.groupChannels.some((t=>t.channel_id===e))||(d=!1)):l===sc.CL.Team&&(o.teamsToAdd=null==r?void 0:r.filter((t=>t.team_id!==e)),this.props.groupTeams.some((t=>t.team_id===e))||(d=!1)),d&&i.push({id:e,type:t}),this.syncableTypeFromEntryType(t)===sc.CL.Team?o.groupTeams=null==s?void 0:s.filter((t=>t.team_id!==e)):o.groupChannels=null==a?void 0:a.filter((t=>t.channel_id!==e)),this.setState(o),this.props.actions.setNavigationBlocked(!0)})),Ac(this,"syncableTypeFromEntryType",(e=>{switch(e){case"public-team":case"private-team":return sc.CL.Team;case"public-channel":case"private-channel":return sc.CL.Channel;default:return null}})),Ac(this,"onChangeRoles",((e,t,s)=>{const{rolesToChange:a={},groupTeams:i=[],groupChannels:n=[]}=this.state;let r,o,l;a["".concat(e,"/").concat(t)]=s,this.syncableTypeFromEntryType(t)===sc.CL.Team?(r=i,o=e=>e.team_id,l="groupTeams"):(r=n,o=e=>e.channel_id,l="groupChannels");const d=r.map((t=>(o(t)===e&&(t.scheme_admin=s),t)));this.setState({saveNeeded:!0,rolesToChange:a,[l]:d}),this.props.actions.setNavigationBlocked(!0)})),Ac(this,"onMentionToggle",(e=>{const{group:t}=this.props,s=t.allow_reference,a=!0;let{groupMentionName:i}=this.state;s||!e||i||(i=t.display_name.toLowerCase().replace(/\s/g,"-")),this.setState({saveNeeded:a,allowReference:e,groupMentionName:i,hasAllowReferenceChanged:e!==s}),this.props.actions.setNavigationBlocked(a)})),Ac(this,"onMentionChange",(e=>{const{group:t}=this.props,s=t.name,a=e.target.value,i=!0;this.setState({saveNeeded:i,groupMentionName:a,hasGroupMentionNameChanged:a!==s}),this.props.actions.setNavigationBlocked(i)})),Ac(this,"handleSubmit",(async()=>{this.setState({saving:!0});const e=await this.handlePatchGroup(),t=await this.handleAddedTeamsAndChannels(),s=await this.handleRemovedTeamsAndChannels(),a=await this.handleRolesToUpdate();await Promise.all([this.props.actions.getGroupSyncables(this.props.groupID,sc.CL.Channel),this.props.actions.getGroupSyncables(this.props.groupID,sc.CL.Team)]);const i=e&&t&&s&&a;this.setState({saveNeeded:!i,saving:!1}),this.props.actions.setNavigationBlocked(!i)})),Ac(this,"roleChangeKey",(e=>{let t;return t=this.syncableTypeFromEntryType(e.type)===sc.CL.Team?e.team_id:e.channel_id,"".concat(t,"/").concat(e.type)})),Ac(this,"handlePatchGroup",(async()=>{const{allowReference:e,groupMentionName:t,hasAllowReferenceChanged:s,hasGroupMentionNameChanged:a}=this.state;let i;const n=T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_detail.duplicateMentionNameError",defaultMessage:"Group mention is already taken."});if(!t&&e)return i=T().createElement(N.FormattedMessage,{id:"admin.group_settings.need_groupname",defaultMessage:"You must specify a group mention."}),this.setState({allowReference:e,serverError:i}),!1;if(s||a){let o;e&&(o=null==t?void 0:t.toLowerCase());const l=await this.props.actions.patchGroup(this.props.groupID,{allow_reference:Boolean(e),name:o});if(l.error)if("store.sql_group.unique_constraint"===l.error.server_error_id)i=n;else if("model.group.name.invalid_chars.app_error"===l.error.server_error_id)i=T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_detail.invalidOrReservedMentionNameError",defaultMessage:"Only letters (a-z), numbers(0-9), periods, dashes and underscores are allowed."});else if("api.ldap_groups.existing_reserved_name_error"===l.error.server_error_id||"api.ldap_groups.existing_user_name_error"===l.error.server_error_id||"api.ldap_groups.existing_group_name_error"===l.error.server_error_id)i=n;else if("model.group.name.invalid_length.app_error"===l.error.server_error_id)i=T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_detail.invalid_length",defaultMessage:"Name must be 1 to 64 lowercase alphanumeric characters."});else{var r;i=null===(r=l.error)||void 0===r?void 0:r.message}this.setState({allowReference:e,groupMentionName:o,serverError:i,hasAllowReferenceChanged:!!l.error&&s,hasGroupMentionNameChanged:!!l.error&&a})}return!i})),Ac(this,"handleRolesToUpdate",(async()=>{const{rolesToChange:e}=this.state,t=[];e&&Object.entries(e).forEach((e=>{let[s,a]=e;const[i,n]=s.split("/"),r=this.syncableTypeFromEntryType(n);r&&t.push(this.props.actions.patchGroupSyncable(this.props.groupID,i,r,{scheme_admin:a}))}));const s=(await Promise.all(t)).map((e=>{var t;return null===(t=e.error)||void 0===t?void 0:t.message})).filter((e=>e));return s.length?(this.setState({serverError:T().createElement(T().Fragment,null,s[0])}),!1):(this.setState({rolesToChange:{}}),!0)})),Ac(this,"handleAddedTeamsAndChannels",(async()=>{const{teamsToAdd:e,channelsToAdd:t,rolesToChange:s}=this.state,a=[];null!=e&&e.length&&e.forEach((e=>{const t=this.roleChangeKey(e);e.scheme_admin=null==s?void 0:s[t],null==s||delete s[t],a.push(this.props.actions.link(this.props.groupID,e.team_id,sc.CL.Team,{auto_add:!0,scheme_admin:Boolean(e.scheme_admin)}))})),null!=t&&t.length&&t.forEach((e=>{const t=this.roleChangeKey(e);e.scheme_admin=null==s?void 0:s[t],null==s||delete s[t],a.push(this.props.actions.link(this.props.groupID,e.channel_id,sc.CL.Channel,{auto_add:!0,scheme_admin:e.scheme_admin}))}));const i=(await Promise.all(a)).map((e=>{var t;return null===(t=e.error)||void 0===t?void 0:t.message})).filter((e=>e));return i.length?(this.setState({serverError:T().createElement(T().Fragment,null,i[0])}),!1):(this.setState({teamsToAdd:[],channelsToAdd:[]}),!0)})),Ac(this,"handleRemovedTeamsAndChannels",(async()=>{const{itemsToRemove:e,rolesToChange:t}=this.state,s=[];e.length&&e.forEach((e=>{delete t[this.roleChangeKey(e)];const a=this.syncableTypeFromEntryType(e.type);a&&s.push(this.props.actions.unlink(this.props.groupID,e.id,a))}));const a=(await Promise.all(s)).map((e=>{var t;return null===(t=e.error)||void 0===t?void 0:t.message})).filter((e=>e));return a.length?(this.setState({serverError:T().createElement(T().Fragment,null,a[0])}),!1):(this.setState({itemsToRemove:[]}),!0)})),Ac(this,"render",(()=>{const{group:e,members:t,memberCount:s,isDisabled:a}=this.props,{groupTeams:i,groupChannels:n}=this.state,{allowReference:r,groupMentionName:o,saving:l,saveNeeded:d,serverError:c}=this.state;return T().createElement("div",{className:"wrapper--fixed"},T().createElement(nt,{withBackButton:!0},T().createElement("div",null,T().createElement(tt.A,{to:"/admin_console/user_management/groups",className:"fa fa-angle-left back"}),T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_detail.group_configuration",defaultMessage:"Group Configuration"}))),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement("div",{className:"banner info"},T().createElement("div",{className:"banner__content"},T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_detail.introBanner",defaultMessage:"Configure default teams and channels and view users belonging to this group."}))),T().createElement(mc,{displayname:e.display_name||"",mentionname:o,allowReference:r,onToggle:this.onMentionToggle,onChange:this.onMentionChange,readOnly:a}),T().createElement(dc,{id:"group_teams_and_channels",title:(0,N.defineMessage)({id:"admin.group_settings.group_detail.groupTeamsAndChannelsTitle",defaultMessage:"Team and Channel Membership"}),subtitle:(0,N.defineMessage)({id:"admin.group_settings.group_detail.groupTeamsAndChannelsDescription",defaultMessage:"Set default teams and channels for group members. Teams added will include default channels, town-square, and off-topic. Adding a channel without setting the team will add the implied team to the listing below."}),button:T().createElement("div",{className:"group-profile-add-menu"},T().createElement(bl.A,{isDisabled:a},T().createElement("button",{type:"button",id:"add_team_or_channel",className:"btn btn-primary"},T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_details.add_team_or_channel",defaultMessage:"Add Team or Channel"}),T().createElement("i",{className:"fa fa-caret-down"})),T().createElement(El.A,{ariaLabel:this.props.intl.formatMessage({id:"admin.group_settings.group_details.menuAriaLabel",defaultMessage:"Add Team or Channel Menu"})},T().createElement(El.A.ItemAction,{id:"add_team",onClick:this.openAddTeam,text:this.props.intl.formatMessage({id:"admin.group_settings.group_details.add_team",defaultMessage:"Add Team"})}),T().createElement(El.A.ItemAction,{id:"add_channel",onClick:this.openAddChannel,text:this.props.intl.formatMessage({id:"admin.group_settings.group_details.add_channel",defaultMessage:"Add Channel"})}))))},T().createElement(bc,{id:this.props.groupID,teams:i,channels:n,loading:this.state.loadingTeamsAndChannels,onChangeRoles:this.onChangeRoles,onRemoveItem:this.onRemoveTeamOrChannel,isDisabled:a})),this.state.addTeamOpen&&T().createElement(Yl,{onModalDismissed:this.closeAddTeam,onTeamsSelected:this.addTeams,alreadySelected:this.props.groupTeams.map((e=>e.team_id))}),this.state.addChannelOpen&&T().createElement(Sn,{onModalDismissed:this.closeAddChannel,onChannelsSelected:this.addChannels,alreadySelected:this.props.groupChannels.map((e=>e.channel_id)),groupID:this.props.groupID}),T().createElement(dc,{id:"group_users",title:(0,N.defineMessage)({id:"admin.group_settings.group_detail.groupUsersTitle",defaultMessage:"Users"}),subtitle:(0,N.defineMessage)({id:"admin.group_settings.group_detail.groupUsersDescription",defaultMessage:"Listing of users in Mattermost associated with this group."})},T().createElement(Cc,{members:t,total:s,groupID:this.props.groupID,getMembers:this.props.actions.getMembers,source:e.source})))),T().createElement(it,{saving:l,cancelLink:"/admin_console/user_management/groups",saveNeeded:d,onClick:this.handleSubmit,serverError:c&&T().createElement(Bt.Ay,{iconClassName:"fa-exclamation-triangle",textClassName:"has-error",error:c})}))})),this.state={loadingTeamsAndChannels:!0,addTeamOpen:!1,addChannelOpen:!1,allowReference:Boolean(e.group.allow_reference),groupMentionName:e.group.name,saving:!1,saveNeeded:!1,serverError:void 0,hasAllowReferenceChanged:!1,hasGroupMentionNameChanged:!1,teamsToAdd:[],channelsToAdd:[],itemsToRemove:[],rolesToChange:{},groupTeams:[],groupChannels:[]}}componentDidMount(){const{groupID:e,actions:t}=this.props;t.getGroup(e),Promise.all([t.getGroupSyncables(e,sc.CL.Team),t.getGroupSyncables(e,sc.CL.Channel),t.getGroupStats(e)]).then((()=>{this.setState({loadingTeamsAndChannels:!1,allowReference:Boolean(this.props.group.allow_reference),groupMentionName:this.props.group.name})}))}componentDidUpdate(e,t){if(t.saveNeeded===this.state.saveNeeded||this.state.saveNeeded||e.groupChannels!==this.props.groupChannels||this.setState({groupChannels:this.props.groupChannels}),e.groupChannels!==this.props.groupChannels){let e;if(this.state.saveNeeded){const{groupChannels:t=[]}=this.state,s=t.map((e=>e.channel_id));e=this.props.groupChannels.filter((e=>!s.includes(e.channel_id))).concat(t)}else e=this.props.groupChannels;this.setState({groupChannels:e})}if(t.saveNeeded===this.state.saveNeeded||this.state.saveNeeded||e.groupTeams!==this.props.groupTeams||this.setState({groupTeams:this.props.groupTeams}),e.groupTeams!==this.props.groupTeams){let e;if(this.state.saveNeeded){const{groupTeams:t=[]}=this.state,s=t.map((e=>e.team_id));e=this.props.groupTeams.filter((e=>!s.includes(e.team_id))).concat(t)}else e=this.props.groupTeams;this.setState({groupTeams:e})}}}Ac(Tc,"propTypes",{groupID:k().string,groupTeams:k().array,groupChannels:k().array,members:k().array,memberCount:k().number,isDisabled:k().bool,actions:k().shape({getGroup:k().func.isRequired,getMembers:k().func.isRequired,getGroupStats:k().func.isRequired,getGroupSyncables:k().func.isRequired,link:k().func.isRequired,unlink:k().func.isRequired,patchGroupSyncable:k().func.isRequired,patchGroup:k().func.isRequired,setNavigationBlocked:k().func.isRequired}).isRequired}),Ac(Tc,"defaultProps",{groupID:"",members:[],groupTeams:[],groupChannels:[],group:{name:"",allow_reference:!1},memberCount:0});const Nc=(0,N.injectIntl)(Tc),wc=(0,a.connect)((function(e,t){const s=t.match.params.group_id;return{groupID:s,group:(0,tc.Wx)(e,s),groupTeams:(0,tc.Cu)(e,s),groupChannels:(0,tc.er)(e,s),members:(0,g.dA)(e,s),memberCount:(0,tc.PY)(e,s)}}),(function(e){return{actions:(0,i.zH)({setNavigationBlocked:h.Jb,getGroup:ec.Wx,getMembers:bi.dA,getGroupStats:ec.f$,getGroupSyncables:ec.g8,link:ec.PY,unlink:ec.IC,patchGroupSyncable:ec.r2,patchGroup:ec.E7},e)}}))(Nc);s(97309);var Rc=s(90617);const Oc=e=>{const[t,s]=(0,A.useState)(!1),{formatMessage:a}=(0,N.useIntl)(),i=async t=>{t.stopPropagation(),t.preventDefault(),e.readOnly||(s(!0),await e.actions.link(e.primary_key),s(!1))},n=async t=>{t.stopPropagation(),t.preventDefault(),e.readOnly||(s(!0),await e.actions.unlink(e.primary_key),s(!1))};return T().createElement("div",{id:"".concat(e.name,"_group"),className:"group "+(e.checked?"checked":""),onClick:()=>{e.readOnly||e.onCheckToggle(e.primary_key)}},T().createElement("div",{className:"group-row"},T().createElement("div",{className:"group-name"},T().createElement("div",{className:"group-check "+(e.checked?"checked":"")},e.checked&&T().createElement(Rc.A,null)),T().createElement("span",null,e.name)),T().createElement("div",{className:"group-content"},T().createElement("span",{className:"group-description"},t?T().createElement("a",{href:"#"},T().createElement(ce.A,{text:e.mattermost_group_id?a({id:"admin.group_settings.group_row.unlinking",defaultMessage:"Unlinking"}):a({id:"admin.group_settings.group_row.linking",defaultMessage:"Linking"})})):e.mattermost_group_id?e.failed?T().createElement("a",{href:"#",onClick:n,className:"warning"},T().createElement("i",{className:"icon fa fa-exclamation-triangle"}),T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_row.unlink_failed",defaultMessage:"Unlink failed"})):T().createElement("a",{href:"#",onClick:n,className:e.readOnly?"disabled":""},T().createElement("i",{className:"icon fa fa-link"}),T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_row.linked",defaultMessage:"Linked"})):e.failed?T().createElement("a",{href:"#",onClick:i,className:"warning"},T().createElement("i",{className:"icon fa fa-exclamation-triangle"}),T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_row.link_failed",defaultMessage:"Link failed"})):T().createElement("a",{href:"#",onClick:i,className:e.readOnly?"disabled":""},T().createElement("i",{className:"icon fa fa-unlink"}),T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_row.not_linked",defaultMessage:"Not Linked"}))),T().createElement("span",{className:"group-actions"},e.mattermost_group_id?e.has_syncables?T().createElement(w.Link,{to:"/admin_console/user_management/groups/"+e.mattermost_group_id,id:"".concat(e.name,"_edit")},T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_row.edit",defaultMessage:"Edit"})):T().createElement(w.Link,{to:"/admin_console/user_management/groups/"+e.mattermost_group_id,id:"".concat(e.name,"_configure")},T().createElement(N.FormattedMessage,{id:"admin.group_settings.group_row.configure",defaultMessage:"Configure"})):null))))};Oc.propTypes={checked:k().bool.isRequired,name:k().string.isRequired,onCheckToggle:k().func.isRequired,primary_key:k().string.isRequired,failed:k().bool,has_syncables:k().bool,mattermost_group_id:k().string,readOnly:k().bool,actions:k().shape({link:k().func.isRequired,unlink:k().func.isRequired}).isRequired};const Ic=Oc;var kc=s(97314);function Pc(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function xc(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Pc(Object(s),!0).forEach((function(t){Dc(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Pc(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Dc(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Lc=200,Fc={filterIsConfigured:{filter:"is:configured",option:{is_configured:!0}},filterIsUnconfigured:{filter:"is:notconfigured",option:{is_configured:!1}},filterIsLinked:{filter:"is:linked",option:{is_linked:!0}},filterIsUnlinked:{filter:"is:notlinked",option:{is_linked:!1}}};class Uc extends T().PureComponent{constructor(e){super(e),Dc(this,"closeFilters",(()=>{this.setState({showFilters:!1})})),Dc(this,"renderHeader",(()=>0===this.props.groups.length?null:T().createElement("div",{className:"groups-list--header"},T().createElement("div",{className:"group-name"},T().createElement(N.FormattedMessage,{id:"admin.group_settings.groups_list.nameHeader",defaultMessage:"Name"})),T().createElement("div",{className:"group-content"},T().createElement("div",{className:"group-description"},T().createElement(N.FormattedMessage,{id:"admin.group_settings.groups_list.mappingHeader",defaultMessage:"Mattermost Linking"})),T().createElement("div",{className:"group-actions"}))))),Dc(this,"resetFiltersAndSearch",(()=>{this.setState({showFilters:!1,searchString:"",loading:!0,page:0,filterIsConfigured:!1,filterIsUnconfigured:!1,filterIsLinked:!1,filterIsUnlinked:!1}),this.props.actions.getLdapGroups(this.state.page,Lc,{q:""}).then(this.handleGetGroupsResponse)})),Dc(this,"handleGetGroupsResponse",(e=>{null!=e&&e.error?this.setState({fetchError:!0}):this.setState({fetchError:!1}),this.setState({loading:!1})})),this.state={checked:{},fetchError:!1,loading:!0,page:0,showFilters:!1,searchString:"",filterIsConfigured:!1,filterIsUnconfigured:!1,filterIsLinked:!1,filterIsUnlinked:!1}}componentDidMount(){this.props.actions.getLdapGroups(this.state.page,Lc).then(this.handleGetGroupsResponse)}async previousPage(e){e.preventDefault();const t=this.state.page<1?0:this.state.page-1;this.setState({checked:{},page:t,loading:!0},(()=>{this.searchGroups(t)}))}async nextPage(e){e.preventDefault();const t=this.state.page+1;this.setState({checked:{},page:t,loading:!0},(()=>{this.searchGroups(t)}))}onCheckToggle(e){const t=xc({},this.state.checked);t[e]=!t[e],this.setState({checked:t})}linkSelectedGroups(){for(const e of this.props.groups)this.state.checked[e.primary_key]&&!e.mattermost_group_id&&this.props.actions.link(e.primary_key)}unlinkSelectedGroups(){for(const e of this.props.groups)this.state.checked[e.primary_key]&&e.mattermost_group_id&&this.props.actions.unlink(e.primary_key)}selectionActionButtonType(){let e=!1;for(const t of this.props.groups)if(this.state.checked[t.primary_key]){if(!t.mattermost_group_id)return"link";e=!0}return e?"unlink":"disabled"}renderSelectionActionButton(){switch(this.selectionActionButtonType()){case"link":return T().createElement("button",{type:"button",className:"btn btn-primary",onClick:()=>this.linkSelectedGroups(),disabled:this.props.readOnly},T().createElement("i",{className:"icon fa fa-link"}),T().createElement(N.FormattedMessage,{id:"admin.group_settings.groups_list.link_selected",defaultMessage:"Link Selected Groups"}));case"unlink":return T().createElement("button",{type:"button",className:"btn btn-primary",onClick:()=>this.unlinkSelectedGroups(),disabled:this.props.readOnly},T().createElement("i",{className:"icon fa fa-unlink"}),T().createElement(N.FormattedMessage,{id:"admin.group_settings.groups_list.unlink_selected",defaultMessage:"Unlink Selected Groups"}));default:return T().createElement("button",{type:"button",className:"btn btn-primary",disabled:this.props.readOnly},T().createElement("i",{className:"icon icon-link-variant"}),T().createElement(N.FormattedMessage,{id:"admin.group_settings.groups_list.link_selected",defaultMessage:"Link Selected Groups"}))}}renderRows(){return this.state.loading?T().createElement("div",{className:"groups-list-loading"},T().createElement("i",{className:"fa fa-spinner fa-pulse fa-2x"})):this.state.fetchError?T().createElement("div",{className:"groups-list-empty"},T().createElement(N.FormattedMessage,{id:"admin.group_settings.groups_list.groups_list_error",defaultMessage:"Failed to retrieve LDAP groups. Please check your logs for details."})):0===this.props.groups.length?T().createElement("div",{className:"groups-list-empty"},T().createElement(N.FormattedMessage,{id:"admin.group_settings.groups_list.no_groups_found",defaultMessage:"No groups found"})):this.props.groups.map((e=>T().createElement(Ic,{key:e.primary_key,primary_key:e.primary_key,name:e.name,mattermost_group_id:e.mattermost_group_id,has_syncables:e.has_syncables,failed:e.failed,checked:Boolean(this.state.checked[e.primary_key]),onCheckToggle:e=>this.onCheckToggle(e),readOnly:this.props.readOnly,actions:{link:this.props.actions.link,unlink:this.props.actions.unlink}})))}regex(e){return new RegExp("(".concat(e,")"),"i")}searchGroups(e){let{searchString:t}=this.state;const s=xc({},this.state);let a=t,i={q:""};Object.entries(Fc).forEach((e=>{let[n,r]=e;const o=this.regex(r.filter);o.test(t)?(s[n]=!0,a=a.replace(o,""),i=Object.assign(i,r.option)):this.state[n]&&(t+=" "+r.filter)})),i.q=a.trim(),s.searchString=t,s.showFilters=!1,s.loading=!0,s.showFilters=!1,this.setState(s),this.props.actions.getLdapGroups(e,Lc,i).then(this.handleGetGroupsResponse)}handleGroupSearchKeyUp(e){const{key:t}=e,{searchString:s}=this.state;t===mt.YM.KeyCodes.ENTER[0]&&(this.setState({page:0}),this.searchGroups());const a={};Object.entries(Fc).forEach((e=>{let[t,i]=e;this.regex(i.filter).test(s)||(a[t]=!1)})),this.setState(a)}newSearchString(e,t,s){let a=e;const{filter:i}=Fc[t],n=this.regex(i),r=n.test(e);return r&&!s&&(a=e.replace(n,"").trim()),!r&&s&&(a+=" "+i),a.replace(/\s{2,}/g," ")}handleFilterCheck(e){let{searchString:t}=this.state;e.forEach((e=>{t=this.newSearchString(t,e[0],e[1]),this.setState({[e[0]]:e[1]})})),this.setState({searchString:t})}renderSearchFilters(){return T().createElement("div",{id:"group-filters",className:"group-search-filters",onClick:e=>{e.nativeEvent.stopImmediatePropagation()}},T().createElement("div",{className:"filter-row"},T().createElement("span",{className:"filter-check "+(this.state.filterIsLinked?"checked":""),onClick:()=>this.handleFilterCheck([["filterIsLinked",!this.state.filterIsLinked],["filterIsUnlinked",!1]])},this.state.filterIsLinked&&T().createElement(Rc.A,null)),T().createElement("span",null,T().createElement(N.FormattedMessage,{id:"admin.group_settings.filters.isLinked",defaultMessage:"Is Linked"}))),T().createElement("div",{className:"filter-row"},T().createElement("span",{className:"filter-check "+(this.state.filterIsUnlinked?"checked":""),onClick:()=>this.handleFilterCheck([["filterIsUnlinked",!this.state.filterIsUnlinked],["filterIsLinked",!1]])},this.state.filterIsUnlinked&&T().createElement(Rc.A,null)),T().createElement("span",null,T().createElement(N.FormattedMessage,{id:"admin.group_settings.filters.isUnlinked",defaultMessage:"Is Not Linked"}))),T().createElement("div",{className:"filter-row"},T().createElement("span",{className:"filter-check "+(this.state.filterIsConfigured?"checked":""),onClick:()=>this.handleFilterCheck([["filterIsConfigured",!this.state.filterIsConfigured],["filterIsUnconfigured",!1]])},this.state.filterIsConfigured&&T().createElement(Rc.A,null)),T().createElement("span",null,T().createElement(N.FormattedMessage,{id:"admin.group_settings.filters.isConfigured",defaultMessage:"Is Configured"}))),T().createElement("div",{className:"filter-row"},T().createElement("span",{className:"filter-check "+(this.state.filterIsUnconfigured?"checked":""),onClick:()=>this.handleFilterCheck([["filterIsUnconfigured",!this.state.filterIsUnconfigured],["filterIsConfigured",!1]])},this.state.filterIsUnconfigured&&T().createElement(Rc.A,null)),T().createElement("span",null,T().createElement(N.FormattedMessage,{id:"admin.group_settings.filters.isUnconfigured",defaultMessage:"Is Not Configured"}))),T().createElement("a",{onClick:()=>{this.setState({page:0}),this.searchGroups(0)},className:"btn btn-primary search-groups-btn"},T().createElement(N.FormattedMessage,{id:"search_bar.search",defaultMessage:"Search"})))}render(){const e=this.state.page*Lc+1;let t=this.state.page*Lc+Lc;const s=this.props.total;t>s&&(t=s);const a=t===s,i=0===this.state.page;return T().createElement("div",{className:"groups-list"},T().createElement("div",{className:"groups-list--global-actions"},T().createElement("div",{className:"group-list-search"},T().createElement(we.A,{type:"text",placeholder:(0,N.defineMessage)({id:"search_bar.search",defaultMessage:"Search"}),onKeyUp:e=>this.handleGroupSearchKeyUp(e),onChange:e=>this.setState({searchString:e.target.value}),value:this.state.searchString}),T().createElement(kc.A,{className:"search__icon","aria-hidden":"true"}),T().createElement("i",{className:"fa fa-times-circle group-filter-action "+(this.state.searchString.length?"":"hidden"),onClick:()=>this.resetFiltersAndSearch()}),T().createElement("i",{className:"fa fa-caret-down group-filter-action "+(this.state.showFilters?"hidden":""),onClick:()=>{document.addEventListener("click",this.closeFilters,{once:!0}),this.setState({showFilters:!0})}})),this.state.showFilters&&this.renderSearchFilters(),T().createElement("div",{className:"group-list-link-unlink"},this.renderSelectionActionButton())),this.renderHeader(),T().createElement("div",{id:"groups-list--body",className:"groups-list--body"},this.renderRows()),s>0&&T().createElement("div",{className:"groups-list--footer"},T().createElement("div",{className:"counter"},T().createElement(N.FormattedMessage,{id:"admin.group_settings.groups_list.paginatorCount",defaultMessage:"{startCount, number} - {endCount, number} of {total, number}",values:{startCount:e,endCount:t,total:s}})),T().createElement("button",{type:"button",className:"btn btn-tertiary prev "+(i?"disabled":""),onClick:e=>this.previousPage(e),disabled:i},T().createElement(de.A,null)),T().createElement("button",{type:"button",className:"btn btn-tertiary next "+(a?"disabled":""),onClick:e=>this.nextPage(e),disabled:a},T().createElement(le.A,null))))}}Dc(Uc,"propTypes",{groups:k().array,total:k().number.isRequired,readOnly:k().bool,actions:k().shape({getLdapGroups:k().func.isRequired,link:k().func.isRequired,unlink:k().func.isRequired}).isRequired}),Dc(Uc,"defaultProps",{groups:[]});const Bc=(0,S.Mz)("getSortedListOfLdapGroups",d.si,(e=>{const t=Object.values(e);return t.sort(((e,t)=>e.name.localeCompare(t.name))),t})),jc=(0,a.connect)((function(e){return{groups:Bc(e),total:(0,d.TR)(e)}}),(function(e){return{actions:(0,i.zH)({getLdapGroups:n.si,link:n.BD,unlink:n.Ag},e)}}))(Uc);var Hc=s(694);const Gc=e=>{let{isDisabled:t}=e;const s=(0,Pi.vV)();return T().createElement("div",{className:"wrapper--fixed"},T().createElement(nt,null,T().createElement(N.FormattedMessage,{id:"admin.group_settings.groupsPageTitle",defaultMessage:"Groups"})),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement("div",{className:"banner info"},T().createElement("div",{className:"banner__content"},T().createElement(N.FormattedMessage,{id:"admin.group_settings.introBanner",defaultMessage:"Groups are a way to organize users and apply actions to all users within that group.\nFor more information on Groups, please see <link>documentation</link>.",values:{link:e=>T().createElement(wt.A,{location:"group_settings",href:mt.Uk.DEFAULT_LDAP_GROUP_SYNC},e)}}))),T().createElement(dc,{id:"ldap_groups",title:(0,N.defineMessage)({id:"admin.group_settings.ldapGroupsTitle",defaultMessage:"AD/LDAP Groups"}),subtitle:(0,N.defineMessage)({id:"admin.group_settings.ldapGroupsDescription",defaultMessage:"Connect AD/LDAP and create groups in Mattermost. To get started, configure group attributes on the <link>AD/LDAP</link> configuration page."}),subtitleValues:{link:e=>T().createElement(wt.A,{location:"group_settings.ldap_groups",href:"".concat(s,"/admin_console/authentication/ldap")},e)}},T().createElement(jc,{readOnly:t})),T().createElement(Hc.default,{pluggableName:"SystemConsoleGroupTable"}))))};Gc.propTypes={isDisabled:k().bool};const qc=Gc;var Vc=s(92908),zc=s.n(Vc);function Wc(e){let{onExited:t,onSave:s,existingRange:a,currentIP:i}=e;const{formatMessage:n}=(0,N.useIntl)(),[r,o]=(0,A.useState)((null==a?void 0:a.description)||""),[l,d]=(0,A.useState)((null==a?void 0:a.cidr_block)||""),[c,m]=(0,A.useState)(null);return T().createElement(hn.Modal,{className:"IPFilteringAddOrEditModal",dialogClassName:"IPFilteringAddOrEditModal__dialog",show:!0,onExited:t,onHide:t},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement("div",{className:"title"},null!=a&&a.cidr_block?n({id:"admin.ip_filtering.edit_ip_filter",defaultMessage:"Edit IP Filter"}):n({id:"admin.ip_filtering.add_ip_filter",defaultMessage:"Add IP Filter"}))),T().createElement(hn.Modal.Body,null,T().createElement("div",{className:"body"},T().createElement("div",{className:"current_ip_notice"},T().createElement("div",{className:"Content"},T().createElement("span",null,T().createElement(R.InformationOutlineIcon,null),n({id:"admin.ip_filtering.your_current_ip_is",defaultMessage:"Your current IP address is {ip}"},{ip:i})))),T().createElement("div",{className:"inputs"},T().createElement("div",null,n({id:"admin.ip_filtering.name",defaultMessage:"Name"}),T().createElement(Vo.A,{type:"text",name:"name",onChange:e=>o(e.target.value),value:r,placeholder:n({id:"admin.ip_filtering.rule_name_placeholder",defaultMessage:"Enter a name for this rule"}),required:!0,useLegend:!1})),T().createElement("div",null,n({id:"admin.ip_filtering.allow_following_range",defaultMessage:"Allow the following range of IP Addresses"}),T().createElement(Vo.A,{type:"text",name:"ip_address_range",onChange:e=>{const t=e.target.value;d(t),m(null)},onBlur:()=>{(function(e){try{zc().parseCIDR(e)}catch(e){return!1}return!0})(l)||m({type:"error",value:"Invalid CIDR address range"})},value:l,placeholder:"Enter IP Range",required:!0,useLegend:!1,customMessage:c})),T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.more_info",defaultMessage:"Enter ranges in CIDR format (e.g. 192.168.0.1/8). <link>More info</link>",values:{link:e=>T().createElement(wt.A,{href:"https://mattermost.com/pl/cloud-ip-filtering",location:"ip_filtering_add_edit_rule_modal"},e)}}))))),T().createElement(hn.Modal.Footer,null,T().createElement("button",{type:"button",className:"btn btn-tertiary",onClick:t},n({id:"admin.ip_filtering.cancel",defaultMessage:"Cancel"})),T().createElement("button",{"data-testid":"save-add-edit-button",type:"button",className:"btn btn-primary",onClick:()=>{const e={cidr_block:l,description:r,enabled:!0,owner_id:""};a?s(e,a):s(e),t()},disabled:Boolean(c)||!l.length||!r.length},n(a?{id:"admin.ip_filtering.update_filter",defaultMessage:"Update filter"}:{id:"admin.ip_filtering.save",defaultMessage:"Save"}))))}function Yc(e){let{onExited:t,onConfirm:s,filterToDelete:a}=e;const{formatMessage:i}=(0,N.useIntl)();return T().createElement(hn.Modal,{className:"DeleteConfirmationModal",dialogClassName:"DeleteConfirmationModal__dialog",show:!0,onExited:t,onHide:t},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement("div",{className:"title"},i({id:"admin.ip_filtering.delete_confirmation_title",defaultMessage:"Delete IP Filter"}))),T().createElement(hn.Modal.Body,null,i({id:"admin.ip_filtering.delete_confirmation_body",defaultMessage:"Are you sure you want to delete IP filter {filter}? Users with IP addresses outside of this range won't be able to access the workspace when IP Filtering is enabled"},{filter:T().createElement("strong",null,null==a?void 0:a.description)})),T().createElement(hn.Modal.Footer,null,T().createElement("button",{type:"button",className:"btn btn-tertiary",onClick:t},i({id:"admin.ip_filtering.cancel",defaultMessage:"Cancel"})),T().createElement("button",{type:"button",className:"btn btn-primary btn-danger",onClick:()=>null==s?void 0:s(a)},i({id:"admin.ip_filtering.delete_filter",defaultMessage:"Delete filter"}))))}Wc.propTypes={onExited:k().func.isRequired,onSave:k().func.isRequired,currentIP:k().string},Yc.propTypes={onExited:k().func.isRequired,onConfirm:k().func};const Zc=e=>{let{allowedIPRange:t,index:s,handleRowMouseEnter:a,handleRowMouseLeave:i,setEditFilter:n,handleConfirmDeleteFilter:r,hoveredRow:o}=e;const{formatMessage:l}=(0,N.useIntl)();return T().createElement("div",{className:"Row",onMouseEnter:()=>a(s),onMouseLeave:i},T().createElement("div",{className:"FilterName"},t.description),T().createElement("div",{className:"IpAddressRange"},t.cidr_block),T().createElement("div",{className:"Actions"},o===s&&T().createElement(T().Fragment,null,T().createElement(ys.A,{title:l({id:"admin.ip_filtering.edit",defaultMessage:"Edit"})},T().createElement("div",{className:"edit","aria-label":"Edit",role:"button",onClick:()=>n(t)},T().createElement(R.PencilOutlineIcon,{size:20}))),T().createElement(ys.A,{title:l({id:"admin.ip_filtering.delete",defaultMessage:"Delete"})},T().createElement("div",{className:"delete","aria-label":"Delete",role:"button",onClick:()=>r(t)},T().createElement(R.TrashCanOutlineIcon,{size:20,color:"red"}))))))};Zc.propTypes={index:k().number.isRequired,handleRowMouseEnter:k().func.isRequired,handleRowMouseLeave:k().func.isRequired,setEditFilter:k().func.isRequired,handleConfirmDeleteFilter:k().func.isRequired,hoveredRow:k().oneOfType([k().number,k().oneOf([null])])};const Jc=Zc,Kc=e=>{let{currentUsersIP:t,setShowAddModal:s}=e;return T().createElement("div",{className:"NotInRangeErrorPanel"},T().createElement("div",{className:"Icon"},T().createElement(R.AlertOutlineIcon,{size:20})),T().createElement("div",{className:"Content"},T().createElement("div",{className:"Title"},T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.your_current_ip_is_not_in_allowed_rules",defaultMessage:"Your IP address {ip} is not included in your allowed IP address rules.",values:{ip:t}})),T().createElement("div",{className:"Body"},T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.include_your_ip",defaultMessage:"Include your IP address in at least one of the rules below to continue."}),T().createElement("div",{className:"btn btn-primary",onClick:()=>s(!0)},T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.add_your_ip",defaultMessage:"Add your IP address"})))))};Kc.propTypes={currentUsersIP:k().oneOfType([k().string,k().oneOf([null])]),setShowAddModal:k().func.isRequired};const Qc=Kc,Xc=e=>{let{setShowAddModal:t,currentIPIsInRange:s,currentUsersIP:a}=e;return T().createElement("div",{className:"AllowedIPAddressesSection"},T().createElement("div",{className:"SectionHeaderContent"},T().createElement("div",{className:"HeaderContent"},T().createElement("div",{className:"TitleSubtitle"},T().createElement("div",{className:"Title"},T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.allowed_ip_addresses",defaultMessage:"Allowed IP Addresses"})),T().createElement("div",{className:"Subtitle"},T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.edit_section_description_line_1",defaultMessage:"Create rules to allow access to the workspace for specified IP addresses only."})),T().createElement("div",{className:"Subtitle"},T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.edit_section_description_line_2",defaultMessage:"<strong>NOTE:</strong> If no rules are added, all IP addresses will be allowed.",values:{strong:e=>T().createElement("strong",null,e)}}))),T().createElement("div",{className:"AddIPFilterButton"},T().createElement("button",{className:"btn btn-primary",onClick:()=>{t(!0)},type:"button"},T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.add_filter",defaultMessage:"Add Filter"})))),!s&&T().createElement(Qc,{setShowAddModal:t,currentUsersIP:a})))};Xc.propTypes={setShowAddModal:k().func.isRequired,currentIPIsInRange:k().bool.isRequired,currentUsersIP:k().oneOfType([k().string,k().oneOf([null])])};const $c=Xc,em=e=>{let{width:t,height:s}=e;return T().createElement("svg",{width:t,height:s,viewBox:"0 0 140 140",fill:"none",xmlns:"http://www.w3.org/2000/svg"},T().createElement("ellipse",{cx:"69.5",cy:"120",rx:"29.5",ry:"3",fill:"black",fillOpacity:"0.06"}),T().createElement("path",{d:"M113.191 70.0004C113.19 78.1542 110.882 86.1411 106.533 93.0378C102.184 99.9345 95.9719 105.459 88.6152 108.974C81.2586 112.488 73.0577 113.848 64.9607 112.897C56.8636 111.945 49.2012 108.721 42.8592 103.598C36.5172 98.4739 31.7546 91.6597 29.1222 83.9427C26.4897 76.2257 26.0948 67.9212 27.9832 59.9892C29.8715 52.0572 33.9661 44.8217 39.7933 39.1192C45.6205 33.4168 52.9425 29.4802 60.9128 27.7647H62.1351L63.0116 27.3418C63.7189 27.2342 64.4339 27.1342 65.1489 27.0496L66.6865 27.0958L67.7397 26.8421H68.3548L70.0538 27.0804L71.1763 26.8267H71.8221L74.19 27.4264L76.9884 27.3495L77.9802 27.5187L88.2206 34.0467L99.3991 38.2987C103.764 42.3429 107.242 47.2479 109.616 52.7043C111.99 58.1607 113.208 64.0499 113.191 70.0004Z",fill:"#1C58D9"}),T().createElement("path",{d:"M72.0989 40.4363C74.9127 41.3359 74.7974 39.5598 76.5734 41.6281C77.5959 42.8199 79.441 44.9882 81.6321 45.5264C81.9396 45.6033 82.6238 44.9421 82.6238 44.4192C82.6238 43.8964 81.0863 42.7892 80.2406 42.5585C79.3949 42.3278 80.5865 40.6978 79.4256 40.198C78.2647 39.6982 76.9808 37.8451 76.5195 36.3919C76.0583 34.9387 74.0133 36.1612 73.3136 35.8691C72.614 35.5769 71.776 35.7537 71.0072 36.8609C70.2384 37.9682 71.3762 40.2057 72.0989 40.4363Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M87.3369 81.1265C87.3369 80.5191 81.7708 77.4896 81.0942 77.4512C79.9871 77.382 78.4803 76.8284 77.4654 77.4512C77.0368 77.6945 76.6729 78.0374 76.4045 78.4508C76.2123 78.8122 75.1283 78.1432 74.7132 78.3662C73.7137 78.8967 73.1755 77.1667 73.4292 76.5055C74.1288 74.8831 71.661 75.9057 71.4073 75.4597C71.7071 75.9903 71.3227 70.8463 70.4616 73.7451C69.8082 75.9442 67.2481 73.4298 67.5556 71.8305C68.0322 69.3624 71.7532 69.001 72.5682 69.4393C72.9833 69.6622 74.4979 71.8536 74.6901 71.7921C75.1052 71.6614 74.4441 69.2086 74.3595 68.8856C74.0673 67.6862 76.3584 67.2863 76.5198 66.033C76.6582 64.9719 77.3809 65.341 78.0574 64.7797C79.0953 63.957 78.2804 62.4192 79.595 61.6349C80.0486 61.3658 81.7477 61.1736 81.9707 60.6968C82.1936 60.2201 80.5407 59.0745 81.9707 58.7361C83.2315 58.4286 84.5154 58.9745 84.8613 57.1522C85.1688 55.4991 83.3237 55.1223 82.7932 53.8382C82.6241 53.4538 82.4166 51.2394 81.6324 51.6469C80.6714 52.1543 80.0948 53.3769 79.2799 51.9237C77.8576 49.3017 74.3364 48.1714 75.9893 52.2927C76.835 54.4226 73.6829 60.9044 73.1986 54.9147C73.0371 52.831 66.8098 52.2082 68.901 49.9015C70.9921 47.5948 73.9213 47.4871 74.7055 43.8964C75.7972 38.9139 72.3452 43.1275 70.5846 42.1894C67.9553 40.7516 70.1849 41.5281 68.8241 43.3889C68.309 44.0963 66.6176 42.9429 65.8642 43.0583C65.1108 43.1736 63.3809 44.7037 62.8966 43.7426C62.0202 41.9818 55.8467 40.8976 54.1784 41.5205C50.6957 42.8276 49.4887 41.0591 46.0137 40.3748C44.8067 40.1364 38.8792 39.9673 39.2636 42.0202C39.5404 42.7727 39.864 43.5071 40.2323 44.2193C40.609 45.3496 38.9099 44.4807 38.5179 44.7498C39.21 45.3637 39.9337 45.9412 40.6859 46.4799C41.2548 47.0642 38.5102 47.7716 38.2334 48.7404C37.6875 50.7088 42.0082 50.1475 41.2164 52.5157C40.9703 53.2308 38.5025 54.4072 38.2641 56.8293C38.218 57.2906 41.3393 53.8306 43.3536 54.5226C45.1295 55.1685 44.9758 50.3398 47.1976 50.3398C51.3184 50.3398 52.118 54.3534 54.286 57.0446C55.3008 58.2979 56.1158 58.8207 56.3003 60.4585C56.4848 62.0963 56.1388 63.8416 56.6924 65.2949C57.2459 66.7481 58.2915 66.7789 58.9988 67.9014C59.8445 69.2163 60.3211 70.5003 61.4666 71.646C63.1272 73.3145 65.9564 75.8673 68.5704 75.4905C69.0855 75.4136 71.0306 76.5208 71.4688 76.8514C72.0759 77.4221 72.5941 78.0804 73.0064 78.8045C73.4677 79.4196 74.9284 79.0351 75.5665 79.3273C76.2046 79.6195 74.0827 83.9407 74.8515 85.0479C75.6203 86.1551 75.6895 87.7006 76.9427 88.6848C78.1958 89.669 78.4803 89.6921 78.6417 91.3145C78.8801 93.9441 78.1112 96.6045 77.4808 99.0573C77.1502 100.311 77.8114 101.702 77.3194 102.902C76.7043 104.401 76.2892 105.693 76.8274 107.361C77.7576 110.26 82.9778 110.729 79.9026 108.2C78.5879 107.123 81.3249 104.524 80.4715 104.278C79.0031 103.663 80.7405 103.109 80.9328 102.471C81.3248 101.203 87.1447 95.951 87.5752 95.0821C87.9366 94.3516 87.7059 93.5981 88.2979 92.9676C88.8899 92.3371 89.8355 92.514 90.6043 92.0219C92.1419 90.9915 91.5884 89.2461 92.2265 87.8237C93.4873 85.0018 94.0178 86.1167 92.288 83.91C91.6345 83.1103 87.4522 83.4025 87.3369 81.1265Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M56.2 38.4295C57.261 39.5367 58.3142 37.8528 58.5064 38.4295C58.6986 39.0062 58.714 40.1134 59.9748 40.198C61.2357 40.2826 58.7986 41.1053 59.6135 41.4513C60.4284 41.7973 62.1736 42.9045 62.8117 42.4432C63.4498 41.9818 64.2109 41.6282 64.4954 41.9742C64.7798 42.3202 66.5327 41.9203 66.033 41.336C65.5333 40.7516 64.2032 39.3753 64.2571 38.5833C64.3109 37.7913 65.7947 35.7537 64.1418 35.9306C63.743 35.9807 63.3796 36.185 63.1296 36.4998C62.8796 36.8145 62.7627 37.2146 62.804 37.6145C62.804 38.1989 61.2664 36.7456 60.9435 36.7687C60.6206 36.7918 59.5443 35.0002 59.1368 35.0002C58.7294 35.0002 56.0001 34.1237 56.2307 35.0002C56.4614 35.8768 55.1391 37.3223 56.2 38.4295Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M80.6022 46.749C79.7796 46.28 78.2189 44.1347 77.527 44.8268C76.8351 45.5188 77.7038 47.1335 78.2958 47.7947C78.8878 48.456 81.3248 50.0092 80.9712 49.3325C80.6175 48.6559 82.2167 47.6794 80.6022 46.749Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M57.8068 31.9554C58.2297 31.9169 58.8909 33.3855 59.5136 33.547C60.1363 33.7085 60.4439 34.4389 60.6745 34.6081C60.9051 34.7772 63.5114 33.7777 64.1264 33.547C64.7415 33.3163 63.3576 31.8785 62.8425 30.8712C62.3274 29.864 62.7272 32.5397 61.9968 32.1015C61.2665 31.6632 61.3741 31.0634 60.4592 31.0634C59.5443 31.0634 60.1824 29.2412 59.06 29.6256C57.9375 30.0101 57.384 31.9938 57.8068 31.9554Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M67.1554 35.4462C66.3866 35.5999 66.5326 36.0997 66.1021 36.5303C65.9011 36.7358 65.7886 37.0118 65.7886 37.2992C65.7886 37.5866 65.9011 37.8626 66.1021 38.0681C66.4942 38.5679 67.1092 39.4598 67.5782 38.6063C68.0472 37.7529 67.5782 37.0685 67.5782 36.5149C67.5782 35.9613 67.5321 35.3693 67.1554 35.4462Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M68.7011 38.1604C68.8933 38.6218 69.2469 37.3454 70.0003 36.6841C70.7538 36.0229 69.6313 34.3774 68.9317 35.2155C68.4627 35.7922 68.5089 37.6914 68.7011 38.1604Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M68.5626 38.737C68.1628 39.306 67.8399 40.8284 68.5626 40.9514C68.7209 40.9697 68.8811 40.9437 69.0256 40.8763C69.17 40.8089 69.2928 40.7028 69.3805 40.5697C69.4681 40.4366 69.5172 40.2818 69.5221 40.1225C69.527 39.9632 69.4876 39.8056 69.4083 39.6674C69.07 39.0907 68.7317 38.5063 68.5626 38.737Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M71.4916 28.9256C70.7996 29.2409 72.5064 29.8176 71.3378 30.1328C70.1692 30.4481 70.1385 31.4092 69.1313 30.5941C68.1242 29.7791 67.0248 30.8709 67.7859 31.363C68.547 31.8551 69.8232 33.07 69.7848 33.7313C69.7464 34.3925 70.9918 34.7001 72.1527 34.6232C73.3136 34.5463 74.7129 34.8923 74.7513 34.3925C74.7897 33.8927 74.9281 33.6775 74.7897 33.3007C74.5898 32.7548 74.0901 32.2165 72.8908 32.6856C71.6914 33.1546 70.9072 32.9162 70.7381 32.3319C70.569 31.7475 73.0907 30.6249 74.2054 31.4015C75.3202 32.1781 76.3812 30.9786 75.5662 30.4327C74.7513 29.8868 75.2971 29.3101 75.8584 29.2332C76.2658 29.1794 76.6271 28.149 76.9347 27.3494C75.2246 27.0728 73.4993 26.9007 71.7683 26.8342C71.776 27.9338 72.1835 28.6104 71.4916 28.9256Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M61.1819 27.957C61.9507 28.2877 63.227 27.957 62.9886 27.365C62.289 27.488 61.5894 27.6187 60.8975 27.7648C60.9744 27.852 61.0723 27.9182 61.1819 27.957Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M61.6585 28.6107C60.5668 28.0494 60.6283 29.4257 61.128 29.9716C61.6277 30.5175 63.0731 29.3027 61.6585 28.6107Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M68.3013 26.8345C68.6367 26.895 68.9503 27.0427 69.2108 27.2627C69.4712 27.4826 69.6692 27.7672 69.7851 28.0878C69.9311 28.5799 71.1074 27.5111 71.1228 26.8114H70.0003C69.4314 26.8037 68.8702 26.8114 68.3013 26.8345Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M65.9942 28.4492C65.5022 29.1258 65.925 29.9408 66.5093 29.2642C67.0936 28.5876 66.6246 26.8729 67.0859 27.6111C67.5472 28.3492 68.4083 29.5179 68.9849 29.5718C69.5615 29.6256 69.0618 28.8874 68.9849 28.2723C68.908 27.6572 67.5319 27.0728 67.6856 26.8652C66.8246 26.9114 65.9712 26.9806 65.1255 27.0728C65.7328 27.4727 66.371 27.9648 65.9942 28.4492Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M68.5625 34.2775C69.2467 34.5543 68.5625 32.8858 68.5625 32.8858C67.8475 33.3087 67.8859 33.993 68.5625 34.2775Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M66.1024 33.224C66.2177 33.693 66.9558 33.8468 67.3478 33.224C67.7399 32.6012 67.3478 30.3406 66.7943 31.0557C66.2407 31.7708 65.6026 31.4401 64.4879 31.0557C63.3731 30.6712 65.9948 32.7319 66.1024 33.224Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M73.6826 72.8378C74.6359 72.7225 75.2202 73.8835 76.2966 73.8297C77.3729 73.7759 79.0027 75.4059 79.933 74.4371C80.7018 73.6682 76.6118 73.0147 75.3202 72.315C74.0286 71.6153 72.737 72.9531 73.6826 72.8378Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M78.4337 29.1181C79.7714 29.7639 79.5408 29.7409 78.7259 30.3637C77.9109 30.9865 78.2031 32.3398 80.0021 32.2475C81.8011 32.1552 82.9159 30.3637 83.7308 32.8857C84.5457 35.4077 83.9614 38.1603 85.007 38.9369C86.0526 39.7135 85.1838 40.2364 85.007 40.9591C84.8302 41.6819 85.2991 42.2047 86.1141 41.9741C86.929 41.7434 86.6984 43.2581 86.1141 43.8963C85.5298 44.5345 84.8379 45.7571 86.6369 47.9715C88.4359 50.1859 88.6742 49.8861 89.2508 50.6473C89.8274 51.4085 90.3041 50.3628 90.4732 49.4862C90.6424 48.6097 90.0657 45.5264 92.1338 45.5264C92.778 45.5195 93.4029 45.3057 93.9164 44.9167C94.4299 44.5277 94.8049 43.984 94.9861 43.3658C95.2167 42.8429 96.8466 42.8968 97.7153 42.1432C98.5841 41.3897 99.3529 40.9053 99.3759 38.2987C93.4007 32.7528 85.9725 29.0196 77.9571 27.5341C77.7649 28.1339 77.7726 28.8105 78.4337 29.1181Z",fill:"#FFBC1F"}))};em.propTypes={width:k().number.isRequired,height:k().number.isRequired};const tm=em,sm=e=>{let{setShowAddModal:t}=e;return T().createElement("div",{className:"NoFilters"},T().createElement("div",null,T().createElement(tm,{width:149,height:140})),T().createElement("div",{className:"Title"},T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.no_filters",defaultMessage:"No IP filtering rules added"})),T().createElement("div",{className:"Subtitle"},T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.any_ip_can_access_add_filter",defaultMessage:"Any IP can access your workspace. To limit access to selected IP Addresses, <add>Add a filter</add>",values:{add:e=>T().createElement("div",{onClick:()=>t(!0),className:"btn btn-primary"},e)}})))};sm.propTypes={setShowAddModal:k().func.isRequired};const am=sm,im=e=>{let{ipFilters:t,currentUsersIP:s,setShowAddModal:a,setEditFilter:i,handleConfirmDeleteFilter:n,currentIPIsInRange:r}=e;const{formatMessage:o}=(0,N.useIntl)(),[l,d]=(0,A.useState)(null);return T().createElement("div",{className:"EditSection"},T().createElement($c,{setShowAddModal:a,currentIPIsInRange:r,currentUsersIP:s}),Boolean(null==t?void 0:t.length)&&T().createElement("div",{className:"TableSectionContent"},T().createElement("div",{className:"Table"},T().createElement("div",{className:"HeaderRow"},T().createElement("div",{className:"FilterName"},o({id:"admin.ip_filtering.filter_name",defaultMessage:"Filter Name"})),T().createElement("div",{className:"IpAddressRange"},o({id:"admin.ip_filtering.ip_address_range",defaultMessage:"IP Address Range"}))),null==t?void 0:t.map(((e,t)=>T().createElement(Jc,{key:e.cidr_block,allowedIPRange:e,index:t,handleRowMouseEnter:e=>d(e),handleRowMouseLeave:()=>d(null),setEditFilter:i,handleConfirmDeleteFilter:n,hoveredRow:l}))))),0===(null==t?void 0:t.length)&&T().createElement(am,{setShowAddModal:a}))};im.propTypes={ipFilters:k().oneOfType([k().array,k().oneOf([null])]),currentUsersIP:k().oneOfType([k().string,k().oneOf([null])]),currentIPIsInRange:k().bool.isRequired,setShowAddModal:k().func.isRequired,setEditFilter:k().func.isRequired,handleConfirmDeleteFilter:k().func.isRequired};const nm=im,rm=e=>{let{filterToggle:t,setFilterToggle:s}=e;const{formatMessage:a}=(0,N.useIntl)();return T().createElement("div",{className:"EnableSectionContent"},T().createElement("div",{className:"TitleSubtitleContent"},T().createElement("div",{className:"TitleSubtitle"},T().createElement("div",{className:"Title"},a({id:"admin.ip_filtering.enable_ip_filtering",defaultMessage:"Enable IP Filtering"})),T().createElement("div",{className:"Subtitle"},T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.enable_ip_filtering_description",defaultMessage:"Limit access to your workspace by IP address. <learnmore>Learn more in the docs</learnmore>",values:{learnmore:e=>T().createElement(wt.A,{href:"https://mattermost.com/pl/cloud-ip-filtering",location:"ip_filtering_enable_section"},e)}}))),T().createElement("div",{className:"SwitchSelector"},T().createElement(De.A,{size:"btn-md",id:"filterToggle",disabled:!1,onToggle:()=>s(!t),toggled:t,toggleClassName:"btn-toggle-primary"}))))};rm.propTypes={filterToggle:k().bool.isRequired,setFilterToggle:k().func.isRequired};const om=rm;function lm(e){let{onExited:t,onConfirm:s,title:a,subtitle:i,includeDisclaimer:n,buttonText:r}=e;const{formatMessage:o}=(0,N.useIntl)();return T().createElement(hn.Modal,{className:"SaveConfirmationModal",dialogClassName:"SaveConfirmationModal__dialog",show:!0,onExited:t,onHide:t},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement("div",{className:"title"},a)),T().createElement(hn.Modal.Body,null,i,n&&T().createElement("div",{className:"disclaimer"},T().createElement("div",{className:"Icon"},T().createElement(R.InformationOutlineIcon,null)),T().createElement("div",{className:"Body"},T().createElement("div",{className:"Title"},o({id:"admin.ip_filtering.save_disclaimer_title",defaultMessage:"Using the Customer Portal to restore access"})),T().createElement("div",{className:"Subtitle"},T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.save_disclaimer_subtitle",defaultMessage:"If you happen to block yourself with these settings, your workspace owner can log in to the <customerportal>Customer Portal</customerportal> to disable IP filtering to restore access.",values:{customerportal:e=>T().createElement(wt.A,{location:"save_confirmation_modal",href:"https://customers.mattermost.com/console/ip_filtering"},e)}}))))),T().createElement(hn.Modal.Footer,null,T().createElement("button",{type:"button",className:"btn btn-tertiary",onClick:t},o({id:"admin.ip_filtering.cancel",defaultMessage:"Cancel"})),T().createElement("button",{"data-testid":"save-confirmation-button",type:"button",className:"btn btn-primary btn-danger",onClick:()=>null==s?void 0:s()},r)))}function dm(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function cm(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?dm(Object(s),!0).forEach((function(t){mm(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):dm(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function mm(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}lm.propTypes={onExited:k().func.isRequired,onConfirm:k().func,title:k().string,subtitle:k().oneOfType([k().element,k().string]).isRequired,buttonText:k().string,includeDisclaimer:k().bool};const um=e=>{let{baseText:t,baseIsMarkdown:s,baseTextValues:a,hoverText:i}=e;return T().createElement(T().Fragment,null,T().createElement(ss,{isMarkdown:s,text:t,textValues:a})," ",T().createElement(ys.A,{className:"ldap-help-text-hover-tooltip",title:T().createElement(ss,{text:i})},T().createElement("button",{type:"button",className:"ldap-help-text-more-info"},T().createElement(N.FormattedMessage,{id:"admin.ldap.more_info",defaultMessage:"More Info"}))))},pm=(e,t,s)=>{if(!t||"banner"===e.type||!e.help_text)return T().createElement("span",null,"");let a,i,n;return"disabled_help_text"in e&&e.disabled_help_text&&s?(a=e.disabled_help_text,i=e.disabled_help_text_markdown,n=e.disabled_help_text_values):(a=e.help_text,i=e.help_text_markdown,n=e.help_text_values),e.help_text_more_info?T().createElement(um,{baseText:a,baseIsMarkdown:i,baseTextValues:n,hoverText:e.help_text_more_info}):T().createElement(ss,{isMarkdown:i,text:a,textValues:n})},gm=e=>{const t=(0,N.useIntl)();if(!e.schema||!e.setting.key||"bool"!==e.setting.type)return null;const s=Ps(e.setting,e.schema,t),a=pm(e.setting,e.schema,Boolean(e.disabled));return T().createElement(j,{key:e.schema.id+"_bool_"+e.setting.key,id:e.setting.key,label:s,helpText:a,value:e.value,disabled:e.disabled,setByEnv:e.setByEnv,onChange:e.onChange})};gm.propTypes={value:k().bool.isRequired,disabled:k().bool.isRequired,setByEnv:k().bool.isRequired};const hm=gm,fm=e=>{const t=(0,N.useIntl)();if(!e.schema||"button"!==e.setting.type)return null;const s=xs(e.setting,e.schema,Boolean(e.disabled)),a=Ps(e.setting,e.schema,t);return T().createElement(Qt,{id:e.setting.key,key:e.schema.id+"_text_"+e.setting.key,requestAction:(s,a)=>{e.setting.skipSaveNeeded||!1===e.saveNeeded?e.setting.action((i=>{const n="LdapSettings.TestAttributes"===e.setting.key,r="LdapSettings.TestFilters"===e.setting.key,o="LdapSettings.TestGroupAttributes"===e.setting.key;if((r||n||o)&&e.onFilterTestResults&&i)if(e.onFilterTestResults(i),Array.isArray(i)&&i.every((e=>""===e.error)))null==s||s();else{const e=i.filter((e=>""!==e.error)).length,s=i.length;let r;r=o?Em.testGroupAttributesPartialFailure:n?Em.testAttributesPartialFailure:Em.testFiltersPartialFailure,a({message:t.formatMessage(r,{failedCount:e,totalCount:s})})}else null==s||s()}),a,e.ldapSettingsState):a({message:t.formatMessage({id:"admin_settings.save_unsaved_changes",defaultMessage:"Please save unsaved changes first"})})},helpText:s,loadingText:Is(e.setting.loading,t),buttonText:T().createElement("span",null,a),showSuccessMessage:Boolean(e.setting.success_message),disabled:e.disabled,errorMessage:e.setting.error_message,successMessage:e.setting.success_message,flushLeft:!0,buttonType:"primary"})};fm.propTypes={saveNeeded:k().bool.isRequired,disabled:k().bool.isRequired,onFilterTestResults:k().func};const Em=(0,N.defineMessages)({testFiltersPartialFailure:{id:"admin.ldap.testFiltersPartialFailure",defaultMessage:"{failedCount, number} of {totalCount, number} filter {totalCount, plural, one {test} other {tests}} failed. Check the highlighted fields for details."},testAttributesPartialFailure:{id:"admin.ldap.testAttributesPartialFailure",defaultMessage:"{failedCount, number} of {totalCount, number} attribute {totalCount, plural, one {test} other {tests}} failed. Check the highlighted fields for details."},testGroupAttributesPartialFailure:{id:"admin.ldap.testGroupAttributesPartialFailure",defaultMessage:"{failedCount, number} of {totalCount, number} group attribute {totalCount, plural, one {test} other {tests}} failed. Check the highlighted fields for details."}}),bm=fm,vm=e=>{const t=(0,N.useIntl)();if(!e.schema||"custom"!==e.setting.type)return null;const s=Ps(e.setting,e.schema,t),a=xs(e.setting,e.schema,Boolean(e.disabled)),i=e.setting.component,n=T().createElement(i,{key:e.schema.id+"_custom_"+e.setting.key,id:e.setting.key,label:s,helpText:a,value:e.value,disabled:e.disabled,config:e.config,license:e.license,setByEnv:e.setByEnv,onChange:e.onChange,registerSaveAction:e.registerSaveAction,setSaveNeeded:e.setSaveNeeded,unRegisterSaveAction:e.unRegisterSaveAction,cancelSubmit:e.cancelSubmit,showConfirm:e.showConfirmId===e.setting.key});return e.setting.showTitle?T().createElement(gt,{label:s,inputId:e.setting.key,helpText:a},n):n};vm.propTypes={value:k().any,registerSaveAction:k().func.isRequired,unRegisterSaveAction:k().func.isRequired,setSaveNeeded:k().func.isRequired,cancelSubmit:k().func.isRequired,showConfirmId:k().string.isRequired,onChange:k().func.isRequired,disabled:k().bool.isRequired,setByEnv:k().bool.isRequired};const ym=vm,Mm=e=>{var t;const s=(0,N.useIntl)();if(!e.schema||!e.setting.key||"dropdown"!==e.setting.type)return null;const a=[];e.setting.options.forEach((t=>{t.isHidden&&("function"!=typeof t.isHidden||t.isHidden(e.config,e.state,e.license,e.enterpriseReady))||a.push(t)}));const i=a.map((e=>({value:e.value,text:Is(e.display_name,s)}))),n=null!==(t=e.state[e.setting.key])&&void 0!==t?t:i[0].value;let r=null;for(const e of a)if(e.help_text&&e.value===n){r=e;break}let o=!1;e.setting.isHelpHidden&&(o="function"==typeof e.setting.isHelpHidden?e.setting.isHelpHidden(e.config,e.state,e.license,e.enterpriseReady):e.setting.isHelpHidden);const l=Ps(e.setting,e.schema,s);let d="";return o||(d=r?Ls(r):xs(e.setting,e.schema,Boolean(e.disabled))),T().createElement(bt,{key:e.schema.id+"_dropdown_"+e.setting.key,id:e.setting.key,values:i,label:l,helpText:d,value:n,disabled:e.disabled,setByEnv:e.setByEnv,onChange:e.onChange})};Mm.propTypes={state:k().objectOf(k().any).isRequired,enterpriseReady:k().bool.isRequired,disabled:k().bool.isRequired,setByEnv:k().bool.isRequired};const _m=Mm,Sm=e=>{const t=(0,N.useIntl)(),[s,a]=(0,A.useState)(!1);if(!e.schema||!e.setting.key||e.setting.type!==mt.v5.TYPE_EXPANDABLE_SETTING)return T().createElement(T().Fragment,null);const i=e.setting.settings||[],n=Ps(e.setting,e.schema,t),r="ldap-expandable-content-".concat(e.setting.key);return T().createElement("div",{className:"ldap-expandable-section"},T().createElement("div",{className:"ldap-expandable-section-header"},T().createElement("button",{"data-testid":"".concat(e.setting.key,"button"),className:"ldap-expandable-section-toggle",onClick:e=>{e.preventDefault(),e.stopPropagation(),a(!s)},"aria-expanded":s,"aria-controls":r},n),T().createElement("i",{className:"fa fa-caret-right ldap-expandable-arrow ".concat(s?"open":"")})),T().createElement("div",{id:r,className:"ldap-expandable-section-content ".concat(s?"expanded":"")},i.map(((t,s)=>T().createElement("div",{key:t.key||"setting-".concat(s)},e.buildSettingFunction(t))))))};Sm.propTypes={buildSettingFunction:k().func.isRequired};const Cm=Sm,Am=e=>{const t=(0,N.useIntl)();if(!e.schema||"fileupload"!==e.setting.type||!e.setting.key)return null;if(e.value){const s=(t,s)=>{e.setting.remove_action((()=>{e.onChange(t,""),e.fileUploadSetstate(e.setting.key,null,null)}),(t=>{s(),e.fileUploadSetstate(e.setting.key,null,t.message)}))},a=Ps(e.setting,e.schema,t),i=pm(e.setting,e.schema,Boolean(e.disabled));return T().createElement(Wt,{id:e.schema.id,key:e.schema.id+"_fileupload_"+e.setting.key,label:a,helpText:i,removeButtonText:Is(e.setting.remove_button_text,t),removingText:Is(e.setting.removing_text,t),fileName:e.value,onSubmit:s,disabled:e.disabled,setByEnv:e.setByEnv})}const s=Ps(e.setting,e.schema,t),a=pm(e.setting,e.schema,Boolean(e.disabled));return T().createElement(yt,{id:e.setting.key,key:e.schema.id+"_fileupload_"+e.setting.key,label:s,helpText:a,uploadingText:Is(e.setting.uploading_text,t),disabled:e.disabled,fileType:e.setting.fileType,onSubmit:(t,s,a)=>{e.setting.upload_action(s,(s=>{e.onChange(t,s),e.fileUploadSetstate(e.setting.key,s,null),null==a||a()}),(e=>{null==a||a(e.message)}))},error:e.error})};Am.propTypes={value:k().string,error:k().string,fileUploadSetstate:k().func.isRequired,disabled:k().bool.isRequired,setByEnv:k().bool.isRequired};const Tm=Am,Nm=e=>{const t=(0,N.useIntl)();if(!e.schema||"jobstable"!==e.setting.type)return null;const s=xs(e.setting,e.schema,Boolean(e.disabled));return T().createElement(Ft,{key:e.schema.id+"_jobstable_"+e.setting.key,jobType:e.setting.job_type,getExtraInfoText:e.setting.render_job,disabled:e.disabled,createJobButtonText:Is(e.setting.label,t),createJobHelpText:s})};Nm.propTypes={disabled:k().bool.isRequired};const wm=Nm,Rm=e=>{var t,s,a,i,n;const r=(0,N.useIntl)();if(!e.schema||!e.setting.key||"text"!==e.setting.type&&"longtext"!==e.setting.type&&"number"!==e.setting.type)return null;let o,l="text";if(e.setting.type===mt.Ay.SettingsTypes.TYPE_NUMBER?l="number":e.setting.type===mt.Ay.SettingsTypes.TYPE_LONG_TEXT&&(l="textarea"),e.setting.dynamic_value){var d;const t=null!==(d=e.state[e.setting.key])&&void 0!==d?d:e.setting.default||"",s=e.setting.dynamic_value(t,e.config,e.state);o=Om(s)}else if(e.setting.multiple){const t=e.state[e.setting.key]?e.state[e.setting.key].join(","):"";o=Om(t)}else{var c;const t=null!==(c=e.state[e.setting.key])&&void 0!==c?c:e.setting.default||"";o=Om(t)}let m=null;if(e.setting.validate){const t=e.setting.validate(o).error(r);m=t?T().createElement(Bt.Ay,{type:Bt.Nq,error:t}):m}const u=Ps(e.setting,e.schema,r),p=pm(e.setting,e.schema,Boolean(e.disabled)),g=null!=e.filterResult&&(""!==e.filterResult.test_value||""!==(null===(t=e.filterResult)||void 0===t?void 0:t.error)),h=function(e){if(!e)return!1;return new Set(["BaseDN","UserFilter","GroupFilter","GuestFilter","AdminFilter"]).has(e.test_name)}(e.filterResult),f=function(e){if(!e)return!1;return new Set(["GroupDisplayNameAttribute","GroupIdAttribute"]).has(e.test_name)}(e.filterResult),E=(h?null===(s=e.filterResult)||void 0===s?void 0:s.total_count:null===(a=e.filterResult)||void 0===a?void 0:a.entries_with_value)||0,b=""===(null===(i=e.filterResult)||void 0===i?void 0:i.error)&&E>0,v=""===(null===(n=e.filterResult)||void 0===n?void 0:n.error)&&0===E,y=b?"icon icon-check-circle":"icon icon-alert-outline",M=b?"success":v?"warning":"error";return T().createElement("div",{className:"ldap-text-setting"},T().createElement(ls,{key:e.schema.id+"_text_"+e.setting.key,id:e.setting.key,multiple:e.setting.multiple,type:l,label:u,helpText:p,placeholder:e.setting.placeholder,value:o,disabled:e.disabled,setByEnv:e.setByEnv,onChange:e.onChange,maxLength:e.setting.max_length,footer:m}),g&&T().createElement(ys.A,{title:(()=>{if(!e.filterResult)return"";const t=e.filterResult.total_count||0,s=g&&(""===o||"UserFilter"===e.filterResult.test_name||"GroupFilter"===e.filterResult.test_name),a=s?e.filterResult.test_value:"",i=s;if(b){let e;return e=h?Im.filterTestSuccess:f?Im.groupAttributeTestSuccess:Im.attributeTestSuccess,r.formatMessage(e,{countReturned:E,totalCount:t,testValue:a,showTestValue:i})}if(v){let e;return e=h?Im.filterTestWarning:f?Im.groupAttributeTestWarning:Im.attributeTestWarning,r.formatMessage(e,{totalCount:t,testValue:a,showTestValue:i})}let n;n=h?Im.filterTestFailed:f?Im.groupAttributeTestFailed:Im.attributeTestFailed;const l=e.filterResult.error||"",d=Boolean(e.filterResult.error);return r.formatMessage(n,{testValue:a,showTestValue:i,error:l,showError:d})})(),forcedPlacement:"top"},T().createElement("i",{className:"".concat(y," filter-icon ").concat(M)})))};function Om(e){return null==e||Number.isNaN(e)?"":String(e)}Rm.propTypes={state:k().objectOf(k().any).isRequired,disabled:k().bool.isRequired,setByEnv:k().bool.isRequired};const Im=(0,N.defineMessages)({filterTestSuccess:{id:"admin.ldap.filterTestSuccess",defaultMessage:"Filter test successful: {countReturned, number} {countReturned, plural, one {result} other {results}} found{showTestValue, select, true {. Value used: {testValue}} other {}}"},attributeTestSuccess:{id:"admin.ldap.attributeTestSuccess",defaultMessage:"Attribute test successful: {countReturned, number} {countReturned, plural, one {result} other {results}} found out of {totalCount} {totalCount, plural, one {user} other {users}} returned by the user filter"},filterTestWarning:{id:"admin.ldap.filterTestWarning",defaultMessage:"Filter test successful but no results found. Your filter may be too restrictive.{showTestValue, select, true { Value used: {testValue}} other {}}"},attributeTestWarning:{id:"admin.ldap.attributeTestWarning",defaultMessage:"The attribute was not found in any of the {totalCount} {totalCount, plural, one {user} other {users}} returned by the user filter"},filterTestFailed:{id:"admin.ldap.filterTestFailed",defaultMessage:"Filter test failed{showTestValue, select, true {. Value used: {testValue}} other {}}{showError, select, true {: {error}} other {}}"},attributeTestFailed:{id:"admin.ldap.attributeTestFailed",defaultMessage:"Attribute test failed{showError, select, true {: {error}} other {}}"},groupAttributeTestSuccess:{id:"admin.ldap.groupAttributeTestSuccess",defaultMessage:"Group attribute test successful: {countReturned, number} {countReturned, plural, one {result} other {results}} found out of {totalCount} {totalCount, plural, one {group} other {groups}} returned by the group filter"},groupAttributeTestWarning:{id:"admin.ldap.groupAttributeTestWarning",defaultMessage:"The group attribute was not found in any of the {totalCount} {totalCount, plural, one {group} other {groups}} returned by the group filter"},groupAttributeTestFailed:{id:"admin.ldap.groupAttributeTestFailed",defaultMessage:"Group attribute test failed{showError, select, true {: {error}} other {}}"}}),km=Rm,Pm=/^\*+$/,xm={id:"LdapSettings",name:(0,N.defineMessage)({id:"admin.authentication.ldap.wizard",defaultMessage:"AD/LDAP Wizard"}),sections:[{key:"admin.authentication.ldap.connection",title:"Connection Settings",subtitle:"Connection and security level to your AD/LDAP server.",settings:[{type:"bool",key:"LdapSettings.Enable",label:(0,N.defineMessage)({id:"admin.ldap.enableTitle",defaultMessage:"Enable sign-in with AD/LDAP:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.enableDesc",defaultMessage:"When true, Mattermost allows login using AD/LDAP"}),isDisabled:zs(da(M.AUTHENTICATION.LDAP))},{type:"bool",key:"LdapSettings.EnableSync",label:(0,N.defineMessage)({id:"admin.ldap.enableSyncTitle",defaultMessage:"Enable Synchronization with AD/LDAP:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.enableSyncDesc",defaultMessage:"When true, Mattermost periodically synchronizes users from AD/LDAP. When false, user attributes are updated from AD/LDAP during user login only."}),isDisabled:zs(da(M.AUTHENTICATION.LDAP))},{type:"text",key:"LdapSettings.LoginFieldName",label:(0,N.defineMessage)({id:"admin.ldap.loginNameTitle",defaultMessage:"Login Field Name:"}),placeholder:(0,N.defineMessage)({id:"admin.ldap.loginNameEx",defaultMessage:'E.g.: "AD/LDAP Username"'}),help_text:(0,N.defineMessage)({id:"admin.ldap.loginNameDesc",defaultMessage:'The placeholder text that appears in the login field on the login page. Defaults to "AD/LDAP Username".'}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.LdapServer",label:(0,N.defineMessage)({id:"admin.ldap.serverTitle",defaultMessage:"AD/LDAP Server:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.serverDesc",defaultMessage:"The domain or IP address of AD/LDAP server."}),placeholder:(0,N.defineMessage)({id:"admin.ldap.serverEx",defaultMessage:'E.g.: "10.0.0.23"'}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"number",key:"LdapSettings.LdapPort",label:(0,N.defineMessage)({id:"admin.ldap.portTitle",defaultMessage:"AD/LDAP Port:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.portDesc",defaultMessage:"The port Mattermost will use to connect to the AD/LDAP server. Default is 389."}),placeholder:(0,N.defineMessage)({id:"admin.ldap.portEx",defaultMessage:'E.g.: "389"'}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.BindUsername",label:(0,N.defineMessage)({id:"admin.ldap.bindUserTitle",defaultMessage:"Bind Username:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.bindUserDesc",defaultMessage:"The username used to perform the AD/LDAP search."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.bindUserDescHover",defaultMessage:"This should typically be an account created specifically for use with Mattermost. It should have access limited to read the portion of the AD/LDAP tree specified in the Base DN field."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.BindPassword",label:(0,N.defineMessage)({id:"admin.ldap.bindPwdTitle",defaultMessage:"Bind Password:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.bindPwdDesc",defaultMessage:'Password of the user given in "Bind Username".'}),onConfigSave:e=>{if("string"!=typeof e||!Pm.test(e))return e},isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"dropdown",key:"LdapSettings.ConnectionSecurity",label:(0,N.defineMessage)({id:"admin.connectionSecurityTitle",defaultMessage:"Connection Security:"}),help_text:vr,options:[{value:"",display_name:(0,N.defineMessage)({id:"admin.connectionSecurityNone",defaultMessage:"None"})},{value:"TLS",display_name:(0,N.defineMessage)({id:"admin.connectionSecurityTls",defaultMessage:"TLS (Recommended)"})},{value:"STARTTLS",display_name:(0,N.defineMessage)({id:"admin.connectionSecurityStart",defaultMessage:"STARTTLS"})}],isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"bool",key:"LdapSettings.SkipCertificateVerification",label:(0,N.defineMessage)({id:"admin.ldap.skipCertificateVerification",defaultMessage:"Skip Certificate Verification:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.skipCertificateVerificationDesc",defaultMessage:"Skips the certificate verification step for TLS or STARTTLS connections."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.skipCertificateVerificationDescHover",defaultMessage:"Skipping certificate verification is not recommended for production environments where TLS is required."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Qs("LdapSettings.ConnectionSecurity"))},{type:"fileupload",key:"LdapSettings.PrivateKeyFile",label:(0,N.defineMessage)({id:"admin.ldap.privateKeyFileTitle",defaultMessage:"Private Key:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.privateKeyFileFileDesc",defaultMessage:"The private key file for TLS Certificate."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.privateKeyFileFileDescHover",defaultMessage:"If using TLS client certificates as primary authentication mechanism. This will be provided by your LDAP Authentication Provider."}),remove_help_text:(0,N.defineMessage)({id:"admin.ldap.privateKeyFileFileRemoveDesc",defaultMessage:"Remove the private key file for TLS Certificate."}),remove_button_text:(0,N.defineMessage)({id:"admin.ldap.remove.privKey",defaultMessage:"Remove TLS Certificate Private Key"}),removing_text:(0,N.defineMessage)({id:"admin.ldap.removing.privKey",defaultMessage:"Removing Private Key..."}),uploading_text:(0,N.defineMessage)({id:"admin.ldap.uploading.privateKey",defaultMessage:"Uploading Private Key..."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync"))),fileType:".key",upload_action:h.rh,remove_action:h.U3},{type:"fileupload",key:"LdapSettings.PublicCertificateFile",label:(0,N.defineMessage)({id:"admin.ldap.publicCertificateFileTitle",defaultMessage:"Public Certificate:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.publicCertificateFileDesc",defaultMessage:"The public certificate file for TLS Certificate."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.publicCertificateFileDescHover",defaultMessage:"If using TLS client certificates as primary authentication mechanism. This will be provided by your LDAP Authentication Provider."}),remove_help_text:(0,N.defineMessage)({id:"admin.ldap.publicCertificateFileRemoveDesc",defaultMessage:"Remove the public certificate file for TLS Certificate."}),remove_button_text:(0,N.defineMessage)({id:"admin.ldap.remove.sp_certificate",defaultMessage:"Remove Service Provider Certificate"}),removing_text:(0,N.defineMessage)({id:"admin.ldap.removing.certificate",defaultMessage:"Removing Certificate..."}),uploading_text:(0,N.defineMessage)({id:"admin.ldap.uploading.certificate",defaultMessage:"Uploading Certificate..."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync"))),fileType:".crt,.cer",upload_action:h.bW,remove_action:h.o5},{type:"number",key:"LdapSettings.MaximumLoginAttempts",label:(0,N.defineMessage)({id:"admin.ldap.maximumLoginAttemptsTitle",defaultMessage:"Maximum Login Attempts:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.maximumLoginAttemptsDesc",defaultMessage:"The maximum number of login attempts before the Mattermost account is locked."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.maximumLoginAttemptsDescHover",defaultMessage:"You can unlock the account in system console on the users page. Setting this value lower than your LDAP maximum login attempts ensures that the users won't be locked out of your LDAP server because of failed login attempts in Mattermost."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"button",action:h.oJ,key:"LdapSettings.TestConnection",isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync"))),label:(0,N.defineMessage)({id:"admin.ldap.testConnectionTitle",defaultMessage:"Test Connection"}),help_text:(0,N.defineMessage)({id:"admin.ldap.testHelpText",defaultMessage:'Tests if the Mattermost server can connect to the AD/LDAP server specified. Please review "System Console > Logs" and <link>documentation</link> to troubleshoot errors.'}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.CONFIGURE_AD_LDAP_QUERY_TIMEOUT},e)},help_text_markdown:!1,error_message:(0,N.defineMessage)({id:"admin.ldap.testConnectionFailure",defaultMessage:"Test Connection Failure: {error}"}),success_message:(0,N.defineMessage)({id:"admin.ldap.testConnectionSuccess",defaultMessage:"Test Connection Successful"})}]},{key:"admin.authentication.ldap.dn_and_filters",title:"User Filters",subtitle:"Tell Mattermost how to identify your users within LDAP",settings:[{type:"text",key:"LdapSettings.BaseDN",label:(0,N.defineMessage)({id:"admin.ldap.baseTitle",defaultMessage:"Base DN:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.baseDesc",defaultMessage:"The Base DN is the Distinguished Name of the location where Mattermost should start its search for user and group objects in the AD/LDAP tree."}),placeholder:(0,N.defineMessage)({id:"admin.ldap.baseEx",defaultMessage:'E.g.: "ou=Unit Name,dc=corp,dc=example,dc=com"'}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.UserFilter",label:(0,N.defineMessage)({id:"admin.ldap.userFilterTitle",defaultMessage:"User Filter:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.userFilterDisc",defaultMessage:"(Optional) Enter an AD/LDAP filter to use when searching for user objects. When blank, defaults to the ID Attribute.\nFor Active Directory, the query to filter out disabled users is\n(&(objectCategory=Person)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.userFilterDiscHover",defaultMessage:"Only the users selected by the query will be able to access Mattermost."}),placeholder:(0,N.defineMessage)({id:"admin.ldap.userFilterEx",defaultMessage:'Ex. "(objectClass=user)"'}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"expandable_setting",key:"LdapSettings.AdditionalFilters",label:(0,N.defineMessage)({id:"admin.ldap.configure_additional_filters",defaultMessage:"Configure additional filters"}),settings:[{type:"text",key:"LdapSettings.GroupFilter",label:(0,N.defineMessage)({id:"admin.ldap.groupFilterTitle",defaultMessage:"Group Filter:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.groupFilterFilterDesc",defaultMessage:"(Optional) Enter an AD/LDAP filter to use when searching for group objects. From [User Management > Groups]({siteURL}/admin_console/user_management/groups), select which AD/LDAP groups should be linked and configured."}),help_text_markdown:!0,help_text_values:{siteURL:(0,Pi.vV)()},help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.groupFilterFilterDescHover",defaultMessage:"Only the groups selected by the query will be available to Mattermost."}),placeholder:(0,N.defineMessage)({id:"admin.ldap.groupFilterEx",defaultMessage:'E.g.: "(objectClass=group)"'}),isHidden:zs(aa("LDAPGroups")),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Qs("LdapSettings.EnableSync"))},{type:"bool",key:"LdapSettings.EnableAdminFilter",label:(0,N.defineMessage)({id:"admin.ldap.enableAdminFilterTitle",defaultMessage:"Enable Admin Filter:"}),isDisabled:Ys(zs(ca),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.AdminFilter",label:(0,N.defineMessage)({id:"admin.ldap.adminFilterTitle",defaultMessage:"Admin Filter:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.adminFilterFilterDesc",defaultMessage:"(Optional) Enter an AD/LDAP filter to use for designating System Admins."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.adminFilterFilterDescHover",defaultMessage:"The users selected by the query will have access to your Mattermost server as System Admins. By default, System Admins have complete access to the Mattermost System Console. Existing members that are identified by this attribute will be promoted from member to System Admin upon next login. The next login is based upon Session lengths set in System Console > Session Lengths. It is highly recommend to manually demote users to members in System Console > User Management to ensure access is restricted immediately.\n \nNote: If this filter is removed/changed, System Admins that were promoted via this filter will be demoted to members and will not retain access to the System Console. When this filter is not in use, System Admins can be manually promoted/demoted in System Console > User Management."}),placeholder:(0,N.defineMessage)({id:"admin.ldap.adminFilterEx",defaultMessage:'E.g.: "(objectClass=user)"'}),isDisabled:Ys(zs(ca),Qs("LdapSettings.EnableAdminFilter"),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.GuestFilter",label:(0,N.defineMessage)({id:"admin.ldap.guestFilterTitle",defaultMessage:"Guest Filter:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.guestFilterFilterDesc",defaultMessage:"(Optional) Requires Guest Access to be enabled before being applied. Enter an AD/LDAP filter to use when searching for guest objects."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.guestFilterFilterDescHover",defaultMessage:"Only the users selected by the query will be able to access Mattermost as Guests. Guests are prevented from accessing teams or channels upon logging in until they are assigned a team and at least one channel.\n \nNote: If this filter is removed/changed, active guests will not be promoted to a member and will retain their Guest role. Guests can be promoted in System Console > User Management. Existing members that are identified by this attribute as a guest will be demoted from a member to a guest when they are asked to login next. The next login is based upon Session lengths set in System Console > Session Lengths. It is highly recommend to manually demote users to guests in System Console > User Management to ensure access is restricted immediately."}),placeholder:(0,N.defineMessage)({id:"admin.ldap.guestFilterEx",defaultMessage:'E.g.: "(objectClass=user)"'}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),$s("GuestAccountsSettings","Enable"),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))}]},{type:"button",action:h.HG,key:"LdapSettings.TestFilters",isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync"))),label:(0,N.defineMessage)({id:"admin.ldap.testFiltersTitle",defaultMessage:"Test Filters"}),help_text:(0,N.defineMessage)({id:"admin.ldap.testFiltersHelpText",defaultMessage:"**Note**: This test is similar in scope to an LDAP sync and may take time depending on the size of the LDAP Server, hardware, or network conditions."}),help_text_markdown:!0,error_message:(0,N.defineMessage)({id:"admin.ldap.testFiltersFailure",defaultMessage:"We failed to apply some filters: {error}"}),success_message:(0,N.defineMessage)({id:"admin.ldap.testFiltersSuccess",defaultMessage:"Test Successful"})}]},{key:"admin.authentication.ldap.account_synchronization",title:"Synchronise user account properties",sectionTitle:"Account sync",settings:[{type:"text",key:"LdapSettings.IdAttribute",label:(0,N.defineMessage)({id:"admin.ldap.idAttrTitle",defaultMessage:"ID Attribute: "}),placeholder:(0,N.defineMessage)({id:"admin.ldap.idAttrEx",defaultMessage:'E.g.: "objectGUID" or "uid"'}),help_text:(0,N.defineMessage)({id:"admin.ldap.idAttrDesc",defaultMessage:"The attribute in the AD/LDAP server used as a unique identifier in Mattermost. If you need to change this field after users have already logged in, use the <link>mattermost ldap idmigrate</link> CLI tool."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.idAttrDescHover",defaultMessage:"It should be an AD/LDAP attribute with a value that does not change such as uid for LDAP or objectGUID for Active Directory. If a user's ID Attribute changes, it will create a new Mattermost account unassociated with their old one."}),help_text_markdown:!1,help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:"https://docs.mattermost.com/manage/command-line-tools.html#mattermost-ldap-idmigrate"},e)},isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Js("LdapSettings.Enable",!1),Js("LdapSettings.EnableSync",!1)))},{type:"text",key:"LdapSettings.LoginIdAttribute",label:(0,N.defineMessage)({id:"admin.ldap.loginAttrTitle",defaultMessage:"Login ID Attribute: "}),placeholder:(0,N.defineMessage)({id:"admin.ldap.loginIdAttrEx",defaultMessage:'E.g.: "sAMAccountName"'}),help_text:(0,N.defineMessage)({id:"admin.ldap.loginAttrDesc",defaultMessage:"The attribute in the AD/LDAP server used to log in to Mattermost."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.loginAttrDescHover",defaultMessage:'Normally this attribute is the same as the "Username Attribute" field above. If your team typically uses domain/username to log in to other services with AD/LDAP, you may enter domain/username in this field to maintain consistency between sites.'}),help_text_markdown:!1,isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.UsernameAttribute",label:(0,N.defineMessage)({id:"admin.ldap.usernameAttrTitle",defaultMessage:"Username Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.ldap.usernameAttrEx",defaultMessage:'E.g.: "sAMAccountName"'}),help_text:(0,N.defineMessage)({id:"admin.ldap.usernameAttrDesc",defaultMessage:"The attribute in the AD/LDAP server used to populate the username field in Mattermost."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.usernameAttrDescHover",defaultMessage:"This may be the same as the Login ID Attribute."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.EmailAttribute",label:(0,N.defineMessage)({id:"admin.ldap.emailAttrTitle",defaultMessage:"Email Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.ldap.emailAttrEx",defaultMessage:'E.g.: "mail" or "userPrincipalName"'}),help_text:(0,N.defineMessage)({id:"admin.ldap.emailAttrDesc",defaultMessage:"The attribute in the AD/LDAP server used to populate the email address field in Mattermost."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.FirstNameAttribute",label:(0,N.defineMessage)({id:"admin.ldap.firstnameAttrTitle",defaultMessage:"First Name Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.ldap.firstnameAttrEx",defaultMessage:'E.g.: "givenName"'}),help_text:(0,N.defineMessage)({id:"admin.ldap.firstnameAttrDesc",defaultMessage:"(Optional) The attribute in the AD/LDAP server used to populate the first name of users in Mattermost."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.firstnameAttrDescHover",defaultMessage:"When set, users cannot edit their first name, since it is synchronized with the LDAP server. When left blank, users can set their first name in Account Menu > Account Settings > Profile."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.LastNameAttribute",label:(0,N.defineMessage)({id:"admin.ldap.lastnameAttrTitle",defaultMessage:"Last Name Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.ldap.lastnameAttrEx",defaultMessage:'E.g.: "sn"'}),help_text:(0,N.defineMessage)({id:"admin.ldap.lastnameAttrDesc",defaultMessage:"(Optional) The attribute in the AD/LDAP server used to populate the last name of users in Mattermost."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.lastnameAttrDescHover",defaultMessage:"When set, users cannot edit their last name, since it is synchronized with the LDAP server. When left blank, users can set their last name in Account Menu > Account Settings > Profile."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.NicknameAttribute",label:(0,N.defineMessage)({id:"admin.ldap.nicknameAttrTitle",defaultMessage:"Nickname Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.ldap.nicknameAttrEx",defaultMessage:'E.g.: "nickname"'}),help_text:(0,N.defineMessage)({id:"admin.ldap.nicknameAttrDesc",defaultMessage:"(Optional) The attribute in the AD/LDAP server used to populate the nickname of users in Mattermost."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.nicknameAttrDescHover",defaultMessage:"When set, users cannot edit their nickname, since it is synchronized with the LDAP server. When left blank, users can set their nickname in Account Menu > Account Settings > Profile."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.PositionAttribute",label:(0,N.defineMessage)({id:"admin.ldap.positionAttrTitle",defaultMessage:"Position Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.ldap.positionAttrEx",defaultMessage:'E.g.: "title"'}),help_text:(0,N.defineMessage)({id:"admin.ldap.positionAttrDesc",defaultMessage:"(Optional) The attribute in the AD/LDAP server used to populate the position field in Mattermost."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.positionAttrDescHover",defaultMessage:"When set, users cannot edit their position, since it is synchronized with the LDAP server. When left blank, users can set their position in Account Menu > Account Settings > Profile."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"text",key:"LdapSettings.PictureAttribute",label:(0,N.defineMessage)({id:"admin.ldap.pictureAttrTitle",defaultMessage:"Profile Picture Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.ldap.pictureAttrEx",defaultMessage:'E.g.: "thumbnailPhoto" or "jpegPhoto"'}),help_text:(0,N.defineMessage)({id:"admin.ldap.pictureAttrDesc",defaultMessage:"(Optional) The attribute in the AD/LDAP server used to populate the profile picture in Mattermost."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"button",action:h.zV,key:"LdapSettings.TestAttributes",label:(0,N.defineMessage)({id:"admin.ldap.testAttributesTitle",defaultMessage:"Test Attributes"}),help_text:(0,N.defineMessage)({id:"admin.ldap.testFiltersHelpText",defaultMessage:"**Note**: This test is similar in scope to an LDAP sync and may take time depending on the size of the LDAP Server, hardware, or network conditions."}),help_text_markdown:!0,isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync"))),error_message:(0,N.defineMessage)({id:"admin.ldap.testAttributesFailure",defaultMessage:"We failed to find some attributes: {error}"}),success_message:(0,N.defineMessage)({id:"admin.ldap.testAttributesSuccess",defaultMessage:"Test Successful"})},{type:"custom",key:"LdapSettings.CustomProfileAttributes",component:Ca,isHidden:zs(Ws(na(mt.gS.Enterprise),Xs("FeatureFlags","CustomProfileAttributes")))}]},{key:"admin.authentication.ldap.group_synchronization",title:"Group Synchronization",settings:[{type:"text",key:"LdapSettings.GroupDisplayNameAttribute",label:(0,N.defineMessage)({id:"admin.ldap.groupDisplayNameAttributeTitle",defaultMessage:"Group Display Name Attribute:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.groupDisplayNameAttributeDesc",defaultMessage:"The attribute in the AD/LDAP server used to populate the group display names."}),placeholder:(0,N.defineMessage)({id:"admin.ldap.groupDisplayNameAttributeEx",defaultMessage:'E.g.: "cn"'}),isHidden:zs(aa("LDAPGroups")),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Qs("LdapSettings.EnableSync"))},{type:"text",key:"LdapSettings.GroupIdAttribute",label:(0,N.defineMessage)({id:"admin.ldap.groupIdAttributeTitle",defaultMessage:"Group ID Attribute:"}),help_text:(0,N.defineMessage)({id:"admin.ldap.groupIdAttributeDesc",defaultMessage:"The attribute in the AD/LDAP server used as a unique identifier for Groups."}),help_text_more_info:(0,N.defineMessage)({id:"admin.ldap.groupIdAttributeDescHover",defaultMessage:"This should be a AD/LDAP attribute with a value that does not change such as entryUUID for LDAP or objectGUID for Active Directory."}),help_text_markdown:!1,placeholder:(0,N.defineMessage)({id:"admin.ldap.groupIdAttributeEx",defaultMessage:'E.g.: "objectGUID" or "entryUUID"'}),isHidden:zs(aa("LDAPGroups")),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Qs("LdapSettings.EnableSync"))},{type:"button",action:h.c,key:"LdapSettings.TestGroupAttributes",label:(0,N.defineMessage)({id:"admin.ldap.testGroupAttributesTitle",defaultMessage:"Test Group Attributes"}),help_text:(0,N.defineMessage)({id:"admin.ldap.testFiltersHelpText",defaultMessage:"**Note**: This test is similar in scope to an LDAP sync and may take time depending on the size of the LDAP Server, hardware, or network conditions."}),help_text_markdown:!0,isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync"))),error_message:(0,N.defineMessage)({id:"admin.ldap.testGroupAttributesFailure",defaultMessage:"We failed to find some attributes: {error}"}),success_message:(0,N.defineMessage)({id:"admin.ldap.testGroupAttributesSuccess",defaultMessage:"Test Successful"})}]},{key:"admin.authentication.ldap.synchronization_performance",title:"Synchronization Performance",sectionTitle:"Sync Performance",settings:[{type:"number",key:"LdapSettings.SyncIntervalMinutes",label:(0,N.defineMessage)({id:"admin.ldap.syncIntervalTitle",defaultMessage:"Synchronization Interval (minutes):"}),help_text:(0,N.defineMessage)({id:"admin.ldap.syncIntervalHelpText",defaultMessage:'AD/LDAP Synchronization updates Mattermost user information to reflect updates on the AD/LDAP server. For example, when a user\'s name changes on the AD/LDAP server, the change updates in Mattermost when synchronization is performed. Accounts removed from or disabled in the AD/LDAP server have their Mattermost accounts set to "Inactive" and have their account sessions revoked. Mattermost performs synchronization on the interval entered. For example, if 60 is entered, Mattermost synchronizes every 60 minutes.'}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"number",key:"LdapSettings.MaxPageSize",label:(0,N.defineMessage)({id:"admin.ldap.maxPageSizeTitle",defaultMessage:"Maximum Page Size:"}),placeholder:(0,N.defineMessage)({id:"admin.ldap.maxPageSizeEx",defaultMessage:'E.g.: "2000"'}),help_text:(0,N.defineMessage)({id:"admin.ldap.maxPageSizeHelpText",defaultMessage:"The maximum number of users the Mattermost server will request from the AD/LDAP server at one time. 0 is unlimited."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))},{type:"number",key:"LdapSettings.QueryTimeout",label:(0,N.defineMessage)({id:"admin.ldap.queryTitle",defaultMessage:"Query Timeout (seconds):"}),placeholder:(0,N.defineMessage)({id:"admin.ldap.queryEx",defaultMessage:'E.g.: "60"'}),help_text:(0,N.defineMessage)({id:"admin.ldap.queryDesc",defaultMessage:"The timeout value for queries to the AD/LDAP server. Increase if you are getting timeout errors caused by a slow AD/LDAP server."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Ws(Qs("LdapSettings.Enable"),Qs("LdapSettings.EnableSync")))}]},{key:"admin.authentication.ldap.synchronization_history",title:"Synchronize users to the system",subtitle:"See the table below for the status of each synchronization",sectionTitle:"Sync History",settings:[{type:"jobstable",job_type:mt.Ay.JobTypes.LDAP_SYNC,label:(0,N.defineMessage)({id:"admin.ldap.sync_button",defaultMessage:"AD/LDAP Synchronize Now"}),help_text:(0,N.defineMessage)({id:"admin.ldap.syncNowHelpText",defaultMessage:'Initiates an AD/LDAP synchronization immediately. See the table below for status of each synchronization. Please review "System Console > Logs" and <link>documentation</link> to troubleshoot errors.'}),help_text_markdown:!1,help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.SETUP_LDAP},e)},isDisabled:Ys(zs(da(M.AUTHENTICATION.LDAP)),Qs("LdapSettings.EnableSync")),render_job:e=>{if("pending"===e.status)return T().createElement("span",null,"--");let t,s=0,a=0,i=0,n=0,r=0,o=0,l=0;return e&&e.data&&(e.data.ldap_users_count&&e.data.ldap_users_count.length>0&&(s=e.data.ldap_users_count),e.data.delete_count&&e.data.delete_count.length>0&&(a=e.data.delete_count),e.data.update_count&&e.data.update_count.length>0&&(i=e.data.update_count),e.data.ldap_groups_count&&(t=e.data.ldap_groups_count),e.data.total_ldap_groups_count&&(n=e.data.total_ldap_groups_count),e.data.group_delete_count&&(r=e.data.group_delete_count),e.data.group_member_delete_count&&(o=e.data.group_member_delete_count),e.data.group_member_add_count&&(l=e.data.group_member_add_count)),T().createElement("span",null,T().createElement(N.FormattedMessage,{id:t?"admin.ldap.jobExtraInfo":"admin.ldap.jobExtraInfoTotal",defaultMessage:t?"Scanned {ldapUsers, number} LDAP users and {ldapGroups, number} linked groups.":"Scanned {ldapUsers, number} LDAP users and {ldapGroups, number} groups.",values:{ldapUsers:s,ldapGroups:t||n}}),T().createElement("ul",null,i>0&&T().createElement("li",null,T().createElement(N.FormattedMessage,{id:"admin.ldap.jobExtraInfo.updatedUsers",defaultMessage:"Updated {updateCount, number} users.",values:{updateCount:i}})),a>0&&T().createElement("li",null,T().createElement(N.FormattedMessage,{id:"admin.ldap.jobExtraInfo.deactivatedUsers",defaultMessage:"Deactivated {deleteCount, number} users.",values:{deleteCount:a}})),r>0&&T().createElement("li",null,T().createElement(N.FormattedMessage,{id:"admin.ldap.jobExtraInfo.deletedGroups",defaultMessage:"Deleted {groupDeleteCount, number} groups.",values:{groupDeleteCount:r}})),o>0&&T().createElement("li",null,T().createElement(N.FormattedMessage,{id:"admin.ldap.jobExtraInfo.deletedGroupMembers",defaultMessage:"Deleted {groupMemberDeleteCount, number} group members.",values:{groupMemberDeleteCount:o}})),l>0&&T().createElement("li",null,T().createElement(N.FormattedMessage,{id:"admin.ldap.jobExtraInfo.addedGroupMembers",defaultMessage:"Added {groupMemberAddCount, number} group members.",values:{groupMemberAddCount:l}}))))}}]}]};function Dm(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Lm(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Dm(Object(s),!0).forEach((function(t){Fm(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Dm(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Fm(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Um={root:null,rootMargin:"-40% 0px -40% 0px",threshold:.01},Bm=e=>{var t;const s=xm,[a,i]=(0,A.useState)({saveNeeded:!1,saving:!1,serverError:null,confirmNeededId:"",showConfirmId:"",clientWarning:""});T().useEffect((()=>{if(e.config&&s){const t=ks.getStateFromConfig(e.config,s,e.roles);i((e=>Lm(Lm(Lm({},e),t),{},{prevSchemaId:s.id})))}}),[e.config,e.roles,s]);const[n,r]=(0,A.useState)([]),[o,l]=(0,A.useState)(null),d=(0,A.useCallback)((e=>{const t=jm[e];return t&&o&&o.find((e=>e.test_name===t))||null}),[o]),c=(0,A.useCallback)(((e,t)=>{const s=e.filter((e=>""!==e.test_value||""!==(null==e?void 0:e.error)));l((e=>{const a={filter:Vm,attribute:zm,groupAttribute:Wm}[t]||(()=>!1);return[...e?e.filter((e=>!a(e.test_name))):[],...s]}))}),[]),m=(0,A.useMemo)((()=>s&&"sections"in s&&s.sections?s.sections:[]),[s]),u=(0,A.useMemo)((()=>m.map((e=>e.key))),[m]),{activeSectionKey:p,sectionRefs:g}=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const[s,a]=(0,A.useState)(e.length>0?e[0]:null),[i,n]=(0,A.useState)(new Set),r=(0,A.useRef)({});return(0,A.useEffect)((()=>{if(0===e.length)return;const s=new IntersectionObserver((e=>{n((t=>{const s=new Set(t);return e.forEach((e=>{const t=e.target.dataset.sectionKey;t&&(e.isIntersecting?s.add(t):s.delete(t))})),s}))}),t);return e.forEach((e=>{const t=r.current[e];t&&s.observe(t)})),()=>{s.disconnect()}}),[e,t]),(0,A.useEffect)((()=>{let t=null;if(i.size>0)for(const s of e)if(i.has(s)){t=s;break}(t&&t!==s||!s&&t&&e.length>0)&&a(t)}),[i,e,s]),{activeSectionKey:s,setActiveSectionKey:a,sectionRefs:r}}(u,Um),h=t=>{const i=d(t.key||"");return T().createElement(km,{config:e.config,key:s.id+"_text_"+t.key,state:a,onChange:_,schema:s,disabled:v(t),setByEnv:Ds(t.key,e.environmentConfig),setting:t,filterResult:i})},f=(e,t,s)=>{i((a=>Lm(Lm({},a),{},{[e]:t,[e+"Error"]:s})))},E=()=>null,b={[mt.Ay.SettingsTypes.TYPE_TEXT]:h,[mt.Ay.SettingsTypes.TYPE_LONG_TEXT]:h,[mt.Ay.SettingsTypes.TYPE_NUMBER]:h,[mt.Ay.SettingsTypes.TYPE_BOOL]:t=>T().createElement(hm,{key:s.id+"_bool_"+t.key,value:a[t.key]||!1,onChange:_,schema:s,disabled:v(t),setByEnv:Ds(t.key,e.environmentConfig),setting:t}),[mt.Ay.SettingsTypes.TYPE_DROPDOWN]:t=>T().createElement(_m,{config:e.config,license:e.license,enterpriseReady:e.enterpriseReady,key:s.id+"_dropdown_"+t.key,state:a,onChange:_,schema:s,disabled:v(t),setByEnv:Ds(t.key,e.environmentConfig),setting:t}),[mt.Ay.SettingsTypes.TYPE_BUTTON]:t=>{let i=JSON.parse(JSON.stringify(e.config));var n;return i=Us(i,a,s,v),"LdapSettings.TestFilters"===t.key?n=e=>c(e,"filter"):"LdapSettings.TestAttributes"===t.key?n=e=>c(e,"attribute"):"LdapSettings.TestGroupAttributes"===t.key&&(n=e=>c(e,"groupAttribute")),T().createElement(bm,{key:s.id+"_button_"+t.key,onChange:_,saveNeeded:!1,schema:s,disabled:v(t),setting:t,ldapSettingsState:i.LdapSettings,onFilterTestResults:n})},[mt.Ay.SettingsTypes.TYPE_JOBSTABLE]:e=>T().createElement(wm,{key:s.id+"_jobstable_"+e.key,schema:s,disabled:v(e),setting:e}),[mt.Ay.SettingsTypes.TYPE_FILE_UPLOAD]:t=>T().createElement(Tm,{key:s.id+"_fileupload_"+t.key,value:a[t.key],onChange:_,fileUploadSetstate:f,schema:s,disabled:v(t),setByEnv:Ds(t.key,e.environmentConfig),setting:t}),[mt.Ay.SettingsTypes.TYPE_CUSTOM]:t=>T().createElement(ym,{config:e.config,license:e.license,key:s.id+"_custom_"+t.key,schema:s,setting:t,value:a[t.key],disabled:v(t),setByEnv:Ds(t.key,e.environmentConfig),onChange:_,registerSaveAction:w,setSaveNeeded:R,unRegisterSaveAction:C,cancelSubmit:O,showConfirmId:a.showConfirmId}),[mt.Ay.SettingsTypes.TYPE_EXPANDABLE_SETTING]:e=>T().createElement(Cm,{key:s.id+"_expandable_"+e.key,schema:s,setting:e,buildSettingFunction:e=>b[e.type]&&!y(e)?b[e.type](e):null}),[mt.Ay.SettingsTypes.TYPE_COLOR]:E,[mt.Ay.SettingsTypes.TYPE_PERMISSION]:E,[mt.Ay.SettingsTypes.TYPE_RADIO]:E,[mt.Ay.SettingsTypes.TYPE_BANNER]:E,[mt.Ay.SettingsTypes.TYPE_GENERATED]:E,[mt.Ay.SettingsTypes.TYPE_USERNAME]:E,[mt.Ay.SettingsTypes.TYPE_LANGUAGE]:E,[mt.Ay.SettingsTypes.TYPE_ROLES]:E},v=t=>"function"==typeof t.isDisabled?t.isDisabled(e.config,a,e.license,e.enterpriseReady,e.consoleAccess,e.cloud,e.isCurrentUserSystemAdmin):Boolean(t.isDisabled),y=t=>"function"==typeof t.isHidden?t.isHidden(e.config,a,e.license):Boolean(t.isHidden),M=async t=>{if(!s)return;let r=JSON.parse(JSON.stringify(e.config));r=Us(r,a,s,v);const{error:o}=await e.patchConfig(r);i(o?e=>Lm(Lm({},e),{},{serverError:o.message,serverErrorId:o.id}):e=>Lm(Lm({},e),t(r,s)));const l=[];for(const e of n)l.push(e());const d=await Promise.all(l).then((e=>e.some((e=>e.error&&e.error.message))));o||d?i((e=>Lm(Lm({},e),{},{saving:!1}))):(i((e=>Lm(Lm({},e),{},{saving:!1,saveNeeded:!1,confirmNeededId:"",showConfirmId:"",clientWarning:"",serverError:null}))),e.setNavigationBlocked(!1))},_=function(t,s){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],d="permissions"===a.saveNeeded?"both":"config";const c="true"===e.license.Cloud&&"starter"===e.license.SkuShortName;"openidType"===t&&"openid"===s&&c&&(d=!1);const m=!1===o?a.clientWarning:o;let u=n?t:a.confirmNeededId;if(t!==a.confirmNeededId||n||(u=""),i((e=>Lm(Lm({},e),{},{saveNeeded:d,confirmNeededId:u,clientWarning:m,[t]:s}))),t in jm){const e=jm[t];l((t=>t?t.filter((t=>t.test_name!==e)):null))}r&&M(ks.getStateFromConfig),e.setNavigationBlocked(!0)},S=async t=>{t.preventDefault(),a.confirmNeededId?i((e=>Lm(Lm({},e),{},{showConfirmId:e.confirmNeededId}))):(i((e=>Lm(Lm({},e),{},{saving:!0,serverError:null}))),"both"===a.saveNeeded||"config"===a.saveNeeded?M(ks.getStateFromConfig):(i((e=>Lm(Lm({},e),{},{saving:!1,saveNeeded:!1,serverError:null}))),e.setNavigationBlocked(!1)))},C=(0,A.useCallback)((e=>{r((t=>t.filter((t=>t!==e))))}),[]),w=(0,A.useCallback)((e=>{r((t=>[...t,e]))}),[]),R=()=>{i((e=>Lm(Lm({},e),{},{saveNeeded:"config"}))),e.setNavigationBlocked(!0)},O=()=>{i((e=>Lm(Lm({},e),{},{showConfirmId:""})))},I=()=>{if(!s||!("settings"in s)||!s.settings)return!0;for(const i of s.settings)if("key"in i&&i.key&&!Ds(i.key,e.environmentConfig)&&"validate"in i&&i.validate){if("isHidden"in i){let s=!1;var t;if(s="function"==typeof i.isHidden?null===(t=i.isHidden)||void 0===t?void 0:t.call(i,e.config,a,e.license,e.enterpriseReady,e.consoleAccess,e.cloud,e.isCurrentUserSystemAdmin):Boolean(i.isHidden),s)continue}if(!i.validate(a[i.key]).isValid())return!1}return!0};return T().createElement("div",{className:"wrapper--fixed ldap-wizard-wrapper","data-testid":"sysconsole_section_".concat(null==s?void 0:s.id)},(()=>{if(!s)return"";let e=s.id;return"name"in s&&(e=s.name),"string"==typeof e?T().createElement(nt,null,e):T().createElement(nt,null,T().createElement(N.FormattedMessage,e))})(),T().createElement("div",{className:"ldap-wizard-content-wrapper"},T().createElement("div",{className:"ldap-wizard-sidebar"},T().createElement("div",{className:"ldap-wizard-sidebar-header"},T().createElement("i",{className:"icon icon-text-box-outline"}),T().createElement(N.FormattedMessage,{id:"admin.ldap_wizard.sections_header",defaultMessage:"Sections"})),m.map((e=>T().createElement("button",{key:e.key+"-sidebar-item",className:"ldap-wizard-sidebar-item ".concat(e.key===p?"ldap-wizard-sidebar-item--active":""),onClick:()=>{const t=g.current[e.key];t&&t.scrollIntoView({behavior:"smooth",block:"start"})}},e.sectionTitle||e.title)))),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement("form",{className:"form-horizontal",onSubmit:S},(()=>{const e=m.map((e=>{const t=[];if(e.settings&&e.settings.forEach((e=>{b[e.type]&&!y(e)&&t.push(b[e.type](e))})),e.component){const s=e.component;return T().createElement(s,{settingsList:t,key:e.key})}let s,a;return e.header&&(s=T().createElement("div",{className:"banner"},T().createElement(ss,{text:e.header,isMarkdown:!0}))),e.footer&&(a=T().createElement("div",{className:"banner"},T().createElement(ss,{text:e.footer,isMarkdown:!0}))),T().createElement("div",{className:"config-section",key:e.key,"data-section-key":e.key,ref:t=>{g.current&&(g.current[e.key]=t)}},T().createElement(is,{show:!0,title:e.title,subtitle:e.subtitle},T().createElement("div",{className:"section-body"},s,t,a)))}));return T().createElement("div",null,e)})()),(()=>{if(s&&"component"in s&&s.component){const t=s.component;return T().createElement(t,Object.assign({},e,{disabled:e.isDisabled}))}return null})()))),T().createElement("div",{className:"admin-console-save"},T().createElement(st.A,{saving:a.saving,disabled:!a.saveNeeded||I&&!I(),onClick:S,savingMessage:e.intl.formatMessage({id:"admin.saving",defaultMessage:"Saving Config..."})}),T().createElement(ys.A,{title:null!==(t=null==a?void 0:a.serverError)&&void 0!==t?t:""},T().createElement("div",{className:"error-message","data-testid":"errorMessage"},T().createElement(Bt.Ay,{iconClassName:"fa-exclamation-triangle",textClassName:"has-warning",error:a.clientWarning}),T().createElement(Bt.Ay,{error:a.serverError})))))};Bm.propTypes={setNavigationBlocked:k().func.isRequired,editRole:k().func.isRequired,patchConfig:k().func.isRequired,isDisabled:k().bool.isRequired,isCurrentUserSystemAdmin:k().bool.isRequired,enterpriseReady:k().bool.isRequired};const jm={"LdapSettings.BaseDN":"BaseDN","LdapSettings.UserFilter":"UserFilter","LdapSettings.GroupFilter":"GroupFilter","LdapSettings.GuestFilter":"GuestFilter","LdapSettings.AdminFilter":"AdminFilter","LdapSettings.IdAttribute":"IdAttribute","LdapSettings.LoginIdAttribute":"LoginIdAttribute","LdapSettings.UsernameAttribute":"UsernameAttribute","LdapSettings.EmailAttribute":"EmailAttribute","LdapSettings.FirstNameAttribute":"FirstNameAttribute","LdapSettings.LastNameAttribute":"LastNameAttribute","LdapSettings.NicknameAttribute":"NicknameAttribute","LdapSettings.PositionAttribute":"PositionAttribute","LdapSettings.PictureAttribute":"PictureAttribute","LdapSettings.GroupDisplayNameAttribute":"GroupDisplayNameAttribute","LdapSettings.GroupIdAttribute":"GroupIdAttribute"},Hm=new Set(["BaseDN","UserFilter","GroupFilter","GuestFilter","AdminFilter"]),Gm=new Set(["IdAttribute","LoginIdAttribute","UsernameAttribute","EmailAttribute","FirstNameAttribute","LastNameAttribute","NicknameAttribute","PositionAttribute","PictureAttribute"]),qm=new Set(["GroupDisplayNameAttribute","GroupIdAttribute"]),Vm=e=>Hm.has(e),zm=e=>Gm.has(e),Wm=e=>qm.has(e),Ym=Bm;var Zm=s(84013),Jm=s(83021),Km=s(82833);const Qm=(0,N.defineMessages)({keyRemove:{id:"admin.license.keyRemove",defaultMessage:"Remove license and downgrade to Mattermost Free"},keyRemoveEntry:{id:"admin.license.keyRemoveEntry",defaultMessage:"Remove license and downgrade to Mattermost Entry"}}),Xm=e=>{let{openEELicenseModal:t,upgradedFromTE:s,license:i,isTrialLicense:n,handleRemove:r,isDisabled:o,removing:l,fileInputRef:d,handleChange:m,statsActiveUsers:u,isLicenseSetByEnvVar:p}=e;const{formatMessage:g}=(0,N.useIntl)(),[h,f]=(0,A.useState)(i),{openPricingModal:E,isAirGapped:b}=(0,mo.A)(),[v]=(0,io.A)(),y=(0,a.useSelector)((e=>(0,c.Y6)(e,"EnableMattermostEntry")));(0,A.useEffect)((()=>{!async function(){try{const e=await O.mT.getClientLicenseOld();f(e)}catch(e){}}()}),[i]);const M=(0,Km.t)(h.SkuShortName,"true"===h.IsGovSku),_=(0,D.RF)(parseInt(h.ExpiresAt,10)),S=h.SkuShortName===mt.gS.Entry,C=b?null:T().createElement("button",{id:"enterprise_edition_view_plans",onClick:E,className:"btn btn-tertiary btn-sm PlanDetails__viewPlansButton"},g({id:"workspace_limits.menu_limit.view_plans",defaultMessage:"View plans"}));return S?T().createElement("div",{className:"EnterpriseEditionLeftPanel","data-testid":"EnterpriseEditionLeftPanel"},T().createElement("div",{className:"EnterpriseEditionLeftPanel__Grid"},T().createElement("div",null,T().createElement("div",{className:"pre-title"},T().createElement(N.FormattedMessage,{id:"admin.license.enterpriseEdition",defaultMessage:"Enterprise Edition"})),T().createElement("div",{className:"title"},"Mattermost ".concat((0,Km.t)(h.SkuShortName,"true"===h.IsGovSku)))),C),T().createElement("div",{className:"subtitle"},T().createElement(N.FormattedMessage,{id:"admin.license.entryEdition.subtitle",defaultMessage:"Entry offers Enterprise Advanced capabilities {limitsLink} designed to support evaluation.",values:{limitsLink:T().createElement(wt.A,{href:mt.vx.ENTRY_LIMITS_INFO,location:"enterprise_edition_left_panel_entry"},T().createElement(N.FormattedMessage,{id:"admin.license.entryEdition.limits",defaultMessage:"with limits"}))}})),T().createElement("div",{className:"have-license-section"},T().createElement("h4",{className:"have-license-title"},T().createElement(N.FormattedMessage,{id:"admin.license.haveALicense",defaultMessage:"Have a license?"})),T().createElement("p",{className:"have-license-description"},T().createElement(N.FormattedMessage,{id:"admin.license.uploadLicenseToUnlock",defaultMessage:"Upload your license here to unlock licensed features"})),T().createElement("div",{className:"upload-license-button-container"},T().createElement(ys.A,{title:(0,N.defineMessage)({id:"admin.license.setByEnvVar",defaultMessage:"License location is set by environment variable"}),disabled:!p},T().createElement("button",{className:"btn btn-primary upload-license-btn",onClick:()=>{var e;return null===(e=d.current)||void 0===e?void 0:e.click()},disabled:p},T().createElement("i",{className:"icon icon-upload-outline"}),T().createElement(N.FormattedMessage,{id:"admin.license.uploadLicense",defaultMessage:"Upload license"}))),T().createElement("input",{ref:d,type:"file",accept:mt.a0.LICENSE_EXTENSION,onChange:m,style:{display:"none"}}))),T().createElement("div",{className:"license-notices"},T().createElement("p",null,"This software is offered under a commercial license. See ENTERPRISE-EDITION-LICENSE.txt in your root install directory for details. See NOTICE.txt for information about open source software used in this system."))):T().createElement("div",{className:"EnterpriseEditionLeftPanel","data-testid":"EnterpriseEditionLeftPanel"},T().createElement("div",{className:"EnterpriseEditionLeftPanel__Grid"},T().createElement("div",null,T().createElement("div",{className:"pre-title"},T().createElement(N.FormattedMessage,{id:"admin.license.enterpriseEdition",defaultMessage:"Enterprise Edition"})),T().createElement("div",{className:"title"},"Mattermost ".concat(M),n&&T().createElement(Es.A,{text:g({id:"admin.license.Trial",defaultMessage:"Trial"}),variant:"success",uppercase:!0,size:"sm"}))),C),T().createElement("div",{className:"subtitle"},T().createElement(N.FormattedMessage,{id:"admin.license.enterpriseEdition.subtitle",defaultMessage:"This is an Enterprise Edition for the Mattermost {skuName} plan",values:{skuName:M}})),T().createElement("div",{className:"licenseInformation"},T().createElement("div",{className:"license-details-top"},T().createElement("span",{className:"title"},"License details"),T().createElement("button",{className:"btn btn-primary btn-sm add-seats-button ",onClick:v},T().createElement(N.FormattedMessage,{id:"admin.license.enterpriseEdition.add.seats",defaultMessage:"+ Add seats"}))),$m(h,n,r,o,l,M,d,m,u,_,p,y)),T().createElement("div",{className:"license-notices"},s?T().createElement(T().Fragment,null,T().createElement("p",null,"When using Mattermost Enterprise Edition, the software is offered under a commercial license. See ",T().createElement("a",{role:"button",onClick:t,className:"openEELicenseModal"},"here"),' for "Enterprise Edition License" for details. ',"See NOTICE.txt for information about open source software used in the system.")):T().createElement("p",null,"This software is offered under a commercial license.\n\nSee ENTERPRISE-EDITION-LICENSE.txt in your root install directory for details. See NOTICE.txt for information about open source software used in this system.")))},$m=(e,t,s,a,i,n,r,o,l,d,c,m)=>{const u=e.SkuShortName?T().createElement(T().Fragment,null,"Mattermost ".concat((0,D.Sn)(n)).concat(t?" License Trial":"")):null,p=T().createElement(N.FormattedNumber,{value:parseInt(e.Users,10)}),g=T().createElement(N.FormattedNumber,{value:l}),h=[{legend:"START DATE:",value:T().createElement(N.FormattedDate,{value:new Date(parseInt(e.StartsAt,10))})},{legend:"EXPIRES:",value:T().createElement(N.FormattedDate,{value:new Date(parseInt(e.ExpiresAt,10))})},{legend:"LICENSED SEATS:",value:p},{legend:"ACTIVE USERS:",value:g},{legend:"EDITION:",value:u},{legend:"LICENSE ISSUED:",value:T().createElement(T().Fragment,null,T().createElement(N.FormattedDate,{value:new Date(parseInt(e.IssuedAt,10))})," ",T().createElement(N.FormattedTime,{value:new Date(parseInt(e.IssuedAt,10))}))},{legend:"NAME:",value:e.Name},{legend:"COMPANY / ORG:",value:e.Company}];return T().createElement("div",{className:"licenseElements"},h.map(((e,t,s)=>(a,i)=>{let{legend:n,value:r}=a;if("ACTIVE USERS:"===n){const{isBetween5PercerntAnd10PercentPurchasedSeats:s,isOver10PercerntPurchasedSeats:a}=(0,Za.A)({activeUsers:e,seatsPurchased:t});return T().createElement("div",{className:"item-element",key:r+i.toString()},T().createElement("span",{className:oe()({legend:!0,"legend--warning-over-seats-purchased":s,"legend--over-seats-purchased":a})},n),T().createElement("span",{className:oe()({value:!0,"value--warning-over-seats-purchased":s,"value--over-seats-purchased":a})},r))}return"EXPIRES:"===n?T().createElement("div",{className:"item-element",key:r+i.toString()},T().createElement("span",{className:"legend"},n),T().createElement("span",{className:"value"},r),s<=30&&T().createElement("span",{className:oe()("expiration-days",{"expiration-days-warning":s<=30,"expiration-days-danger":s<=5})},"Expires in ".concat(s," day").concat(s>1?"s":""))):T().createElement("div",{className:"item-element",key:r+i.toString()},T().createElement("span",{className:"legend"},n),T().createElement("span",{className:"value"},r))})(l,parseInt(e.Users,10),d)),T().createElement("hr",null),eu(r,o,c),tu(s,a,i,m))},eu=(e,t,s)=>T().createElement(T().Fragment,null,T().createElement(ys.A,{title:(0,N.defineMessage)({id:"admin.license.setByEnvVar",defaultMessage:"License location is set by environment variable"}),disabled:!s},T().createElement("button",{className:"btn btn-secondary",onClick:()=>{var t;return null===(t=e.current)||void 0===t?void 0:t.click()},disabled:s},T().createElement(N.FormattedMessage,{id:"admin.license.keyAddNew",defaultMessage:"Add a new license"}))),T().createElement("input",{ref:e,type:"file",accept:mt.a0.LICENSE_EXTENSION,onChange:t,style:{display:"none"}})),tu=(e,t,s,a)=>{const i="true"===a;let n;return n=s?T().createElement(N.FormattedMessage,{id:"admin.license.removing",defaultMessage:"Removing License..."}):i?T().createElement(N.FormattedMessage,Qm.keyRemoveEntry):T().createElement(N.FormattedMessage,Qm.keyRemove),T().createElement(T().Fragment,null,T().createElement("div",{className:"remove-button"},T().createElement("button",{type:"button",className:"btn btn-danger",onClick:e,disabled:t,id:"remove-button","data-testid":"remove-button"},n)))},su=T().memo(Xm),au=e=>{const[t]=(0,io.A)();return T().createElement("button",{className:"btn contact-us ".concat(e.customClass||"btn-tertiary"),onClick:e=>(async e=>{e.preventDefault(),t()})(e)},e.buttonTextElement||T().createElement(N.FormattedMessage,{id:"admin.license.trialCard.contactSales",defaultMessage:"Contact Sales"}))};au.propTypes={buttonTextElement:k().element,eventID:k().string,customClass:k().string};const iu=au,nu=e=>T().createElement("svg",{width:e.width?e.width.toString():"197",height:e.height?e.height.toString():"120",viewBox:"0 0 197 120",fill:"none",xmlns:"http://www.w3.org/2000/svg"},T().createElement("rect",{x:"6",y:"22",width:"181",height:"78",rx:"5.625",fill:"var(--button-bg)",fillOpacity:"0.12"}),T().createElement("path",{d:"M14.255 11L19.755 16.5V70.5H40.755",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 10.255 12)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),T().createElement("path",{d:"M7.255 35L12.755 40.5V79.5H177.755V108.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.24",strokeLinecap:"round"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 175.255 112)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),T().createElement("circle",{cx:"2.5",cy:"2.5",r:"2.5",transform:"matrix(1 0 0 -1 3.255 36)",fill:"var(--center-channel-color)",fillOpacity:"0.48"}),T().createElement("path",{opacity:"0.32",d:"M62.1304 22H129.87L134 115H58L62.1304 22Z",fill:"#BABEC9"}),T().createElement("rect",{opacity:"0.32",width:"92",height:"5",transform:"matrix(1 0 0 -1 50 120)",fill:"var(--center-channel-color)"}),T().createElement("rect",{x:"30",y:"16",width:"131",height:"86",rx:"4",fill:"var(--center-channel-bg)",stroke:"var(--center-channel-color)",strokeWidth:"4"}),T().createElement("path",{d:"M60.2804 44.2423C64.7656 44.2423 68.4016 40.6063 68.4016 36.1211C68.4016 31.636 64.7656 28 60.2804 28C55.7953 28 52.1593 31.636 52.1593 36.1211C52.1593 40.6063 55.7953 44.2423 60.2804 44.2423Z",fill:"var(--online-indicator)"}),T().createElement("path",{d:"M56.4581 35.723L59.2741 38.5097L64.1015 33.7325",stroke:"var(--center-channel-bg)",strokeWidth:"1.19",strokeLinecap:"round",strokeLinejoin:"round"}),T().createElement("path",{d:"M72.3077 32.4158H94.7884",stroke:"#1B1D22",strokeLinecap:"round"}),T().createElement("path",{d:"M97.1984 32.4158H106.833",stroke:"#1B1D22",strokeLinecap:"round"}),T().createElement("path",{d:"M109.239 32.4158H113.254",stroke:"#1B1D22",strokeLinecap:"round"}),T().createElement("path",{opacity:"0.5",d:"M123.242 35.226H72.3077V41.3016H123.242V35.226Z",fill:"#BABEC9"}),T().createElement("path",{d:"M60.2804 67.5113C64.7656 67.5113 68.4016 63.8753 68.4016 59.3902C68.4016 54.905 64.7656 51.269 60.2804 51.269C55.7953 51.269 52.1593 54.905 52.1593 59.3902C52.1593 63.8753 55.7953 67.5113 60.2804 67.5113Z",fill:"var(--online-indicator)"}),T().createElement("path",{d:"M56.4581 58.9921L59.2741 61.7787L64.1015 57.0016",stroke:"var(--center-channel-bg)",strokeWidth:"1.19",strokeLinecap:"round",strokeLinejoin:"round"}),T().createElement("path",{d:"M72.3077 55.6848H94.7884",stroke:"#1B1D22",strokeLinecap:"round"}),T().createElement("path",{d:"M97.1984 55.6848H106.833",stroke:"#1B1D22",strokeLinecap:"round"}),T().createElement("path",{d:"M109.239 55.6848H113.254",stroke:"#1B1D22",strokeLinecap:"round"}),T().createElement("path",{opacity:"0.5",d:"M139.242 58.495H72.3077V64.5706H139.242V58.495Z",fill:"#BABEC9"}),T().createElement("rect",{x:"110.255",width:"83",height:"50",rx:"4",fill:"var(--indigo-400)"}),T().createElement("path",{d:"M152.255 10H166.736",stroke:"var(--neutral-0)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M152.255 16H175.255",stroke:"var(--neutral-0)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M152.255 22H182.255",stroke:"var(--neutral-0)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M152.255 28H182.255",stroke:"var(--neutral-0)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M169.146 10H178.78",stroke:"var(--neutral-0)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M181.187 10H184.201",stroke:"var(--neutral-0)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M127.764 6.9187H130.755L131.134 9.38061C132.05 9.58876 132.907 9.95029 133.678 10.4368L135.69 8.96111L137.805 11.0762L136.312 13.1123C136.776 13.8746 137.12 14.7186 137.316 15.6178L139.847 16.0072V18.9983L137.251 19.3976C137.034 20.2503 136.683 21.0495 136.223 21.7718L137.805 23.9292L135.69 26.0442L133.481 24.4246C132.776 24.8427 132.002 25.158 131.181 25.3498L130.76 28.0866H127.768L127.344 25.3268C126.537 25.1281 125.778 24.81 125.085 24.3922L122.832 26.0441L120.717 23.9291L122.352 21.6996C121.916 21.0008 121.583 20.2316 121.373 19.413L118.677 18.9982V16.0071L121.308 15.6023C121.498 14.7371 121.825 13.9232 122.265 13.1843L120.719 11.0762L122.834 8.96117L124.891 10.4695C125.646 9.98536 126.485 9.62157 127.381 9.40523L127.764 6.9187ZM133.296 17.3707C133.296 19.5721 131.511 21.3568 129.31 21.3568C127.108 21.3568 125.323 19.5721 125.323 17.3707C125.323 15.1692 127.108 13.3846 129.31 13.3846C131.511 13.3846 133.296 15.1692 133.296 17.3707Z",fill:"var(--neutral-0)",fillOpacity:"0.40"}),T().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M138.66 30.9484H140.293L140.5 32.292C140.999 32.4055 141.467 32.6027 141.888 32.868L142.985 32.0631L144.14 33.2176L143.326 34.3277C143.58 34.7441 143.767 35.2053 143.874 35.6966L145.255 35.909V37.5416L143.839 37.7594C143.721 38.2253 143.529 38.662 143.277 39.0566L144.14 40.233L142.985 41.3875L141.781 40.504C141.396 40.7318 140.974 40.9037 140.526 41.0083L140.297 42.5023H138.664L138.432 40.9961C137.992 40.8878 137.577 40.7142 137.199 40.4862L135.97 41.3876L134.815 40.2331L135.707 39.0169C135.469 38.6353 135.287 38.2152 135.172 37.7681L133.7 37.5416V35.909L135.137 35.688C135.241 35.2158 135.419 34.7717 135.659 34.3684L134.815 33.2176L135.97 32.0631L137.093 32.8865C137.504 32.6223 137.962 32.4237 138.451 32.3056L138.66 30.9484ZM141.681 36.6532C141.681 37.8549 140.707 38.829 139.505 38.829C138.303 38.829 137.329 37.8549 137.329 36.6532C137.329 35.4516 138.303 34.4775 139.505 34.4775C140.707 34.4775 141.681 35.4516 141.681 36.6532Z",fill:"var(--neutral-0)",fillOpacity:"0.40"}),T().createElement("rect",{x:"54.755",y:"79.4823",width:"84",height:"11.0354",fill:"var(--center-channel-bg)",stroke:"#1B1D22"}),T().createElement("rect",{opacity:"0.3",x:"57.2648",y:"81.9911",width:"78.9823",height:"6.0177",fill:"#BABEC9"}),T().createElement("rect",{x:"57.2648",y:"81.9911",width:"52.6549",height:"6.0177",fill:"#BABEC9"}),T().createElement("path",{d:"M150.255 108.5H122.755",stroke:"var(--center-channel-color)",strokeLinecap:"round",strokeLinejoin:"round"}),T().createElement("path",{d:"M119.255 108.5H113.255",stroke:"var(--center-channel-color)",strokeLinecap:"round"}),T().createElement("path",{d:"M110.255 108.5H104.255",stroke:"var(--center-channel-color)",strokeLinecap:"round"}));nu.propTypes={width:k().number.isRequired,height:k().number.isRequired};const ru=nu,ou=e=>{let{isTrialLicense:t,license:s}=e;const a=(0,N.useIntl)(),[i]=(0,io.A)(),n=[a.formatMessage({id:"admin.license.upgradeAdvantage.adLdapSync",defaultMessage:"AD/LDAP Group sync"}),a.formatMessage({id:"admin.license.upgradeAdvantage.highAvailability",defaultMessage:"High Availability"}),a.formatMessage({id:"admin.license.upgradeAdvantage.advancedCompliance",defaultMessage:"Advanced compliance"}),a.formatMessage({id:"admin.license.upgradeAdvantage.advancedRoles",defaultMessage:"Advanced roles and permissions"}),a.formatMessage({id:"admin.license.upgradeAdvantage.andMore",defaultMessage:"And more..."})],r=[a.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.attributeBasedAccess",defaultMessage:"Attribute-based access control"}),a.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.channelWarningBanners",defaultMessage:"Channel warning banners"}),a.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.adLdapGroupSync",defaultMessage:"AD/LDAP group sync"}),a.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.advancedWorkflows",defaultMessage:"Advanced workflows with Playbooks"}),a.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.highAvailability",defaultMessage:"High availability"}),a.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.advancedCompliance",defaultMessage:"Advanced compliance"}),a.formatMessage({id:"admin.license.upgradeAdvantage.andMore",defaultMessage:"And more..."})],o=(null==s?void 0:s.SkuShortName)===mt.gS.EnterpriseAdvanced,l=(null==s?void 0:s.SkuShortName)===mt.gS.Enterprise,d=(null==s||s.SkuShortName,mt.gS.Professional,(null==s?void 0:s.SkuShortName)===mt.gS.Entry),c=T().createElement("div",{className:"purchase-card"},T().createElement(iu,{eventID:"post_trial_contact_sales"})),m=()=>t?T().createElement(N.FormattedMessage,{id:"admin.license.purchaseEnterprisePlanTitle",defaultMessage:"Purchase Enterprise Advanced"}):d?T().createElement(N.FormattedMessage,{id:"admin.license.entryPlanTitle",defaultMessage:"Get access to full message history, AI-powered coordination, and secure workflow continuity"}):o?T().createElement(N.FormattedMessage,{id:"admin.license.enterprisePlanTitle",defaultMessage:"Need to increase your headcount?"}):l?T().createElement(N.FormattedMessage,{id:"admin.license.upgradeToEnterpriseAdvanced",defaultMessage:"Upgrade to Enterprise Advanced"}):T().createElement(N.FormattedMessage,{id:"admin.license.upgradeToEnterprise",defaultMessage:"Upgrade to Enterprise"}),u=()=>o?null:T().createElement(ru,{width:197,height:120}),p=()=>{if(t)return T().createElement(N.FormattedMessage,{id:"admin.license.purchaseEnterprisePlanSubtitle",defaultMessage:"Continue your access to Enterprise Advanced features by purchasing a license."});if(d)return T().createElement(N.FormattedMessage,{id:"admin.license.entryPlanSubtitle",defaultMessage:"Purchase a plan to unlock full access, or <link>start a trial</link> to remove limits while you evaluate Enterprise Advanced.",values:{link:e=>T().createElement(wt.A,{location:"entry_trial_license",href:mt.vx.TRIAL_INFO_LINK},e)}});if(o)return T().createElement(N.FormattedMessage,{id:"admin.license.enterprisePlanSubtitle",defaultMessage:"We're here to work with you and your needs. Contact us today to get more seats on your plan."});const e=l?r:n;return T().createElement("div",{className:"advantages-list"},e.map(((e,t)=>T().createElement("div",{className:"item",key:t.toString()},T().createElement("i",{className:"fa fa-lock"}),e))))};return d?T().createElement("div",{className:"EnterpriseEditionRightPannel entry"},T().createElement("div",{className:"svg-image"},u()),T().createElement("div",{className:"upgrade-title"},m()),T().createElement("div",{className:"upgrade-subtitle"},p()),T().createElement("div",{className:"purchase_buttons"},T().createElement("button",{className:"btn btn-primary",onClick:i},T().createElement(N.FormattedMessage,{id:"admin.license.contactSales",defaultMessage:"Questions? Contact sales"})))):T().createElement("div",{className:"EnterpriseEditionRightPannel"},T().createElement("div",{className:"svg-image"},u()),T().createElement("div",{className:"upgrade-title"},m()),T().createElement("div",{className:"upgrade-subtitle"},p()),T().createElement("div",{className:"purchase_buttons"},c))};ou.propTypes={isTrialLicense:k().bool.isRequired};const lu=(0,A.memo)(ou);var du=s(85507);const cu=e=>{const t=(0,a.useDispatch)(),s=(0,a.useSelector)((e=>(0,qr.o)(e,mt.IQ.CONFIRM_LICENSE_REMOVAL)));if(!s)return null;const i=()=>{e.onExited&&e.onExited(),t((0,Gr.O)(mt.IQ.CONFIRM_LICENSE_REMOVAL))};return T().createElement(Bi.zW,{compassDesign:!0,className:"ConfirmLicenseRemovalModal",show:s,id:"ConfirmLicenseRemovalModal",onExited:i},T().createElement(T().Fragment,null,T().createElement("div",{className:"content-body"},T().createElement("div",{className:"alert-svg"},T().createElement(du.A,{width:130.5,height:103.5})),T().createElement("div",{className:"title"},T().createElement(N.FormattedMessage,{id:"admin.license.confirm-license-removal.title",defaultMessage:"Are you sure?"})),T().createElement("div",{className:"subtitle"},T().createElement(N.FormattedMessage,{id:"admin.license.confirm-license-removal.subtitle",defaultMessage:"Removing the license will downgrade your server from {currentSKU} to Free. You may lose information. ",values:{currentSKU:e.currentLicenseSKU}}))),T().createElement("div",{className:"content-footer"},T().createElement("button",{onClick:i,className:"btn btn-tertiary",id:"cancel-removal"},T().createElement(N.FormattedMessage,{id:"admin.license.confirm-license-removal.cancel",defaultMessage:"Cancel"})),T().createElement("button",{onClick:s=>{e.handleRemove&&e.handleRemove(s),t((0,Gr.O)(mt.IQ.CONFIRM_LICENSE_REMOVAL))},className:"btn btn-primary",id:"confirm-removal"},T().createElement(N.FormattedMessage,{id:"admin.license.confirm-license-removal.confirm",defaultMessage:"Confirm"})))))};cu.propTypes={currentLicenseSKU:k().string.isRequired,onExited:k().func,handleRemove:k().func};const mu=cu,uu=e=>{const t=(0,a.useDispatch)(),s=(0,a.useSelector)((e=>(0,qr.o)(e,mt.IQ.ENTERPRISE_EDITION_LICENSE)));if(!s)return null;const i=()=>{e.onClose&&e.onClose(),t((0,Gr.O)(mt.IQ.ENTERPRISE_EDITION_LICENSE))};return T().createElement(Bi.zW,{compassDesign:!0,className:"EELicenseModal",show:s,id:"EELicenseModal",onExited:i},T().createElement(T().Fragment,null,T().createElement("div",{className:"title"},"Enterprise Edition License:"),T().createElement("div",{className:"enterprise-license-text"},T().createElement("div",null,T().createElement("p",null,"The Mattermost Enterprise Edition (EE) license (the “EE License”)"),T().createElement("p",null,"Copyright (c) 2016-present Mattermost, Inc."),T().createElement("p",null,'The subscription-only features of the Mattermost Enterprise Edition software and associated documentation files (the "Software") may only be used if you (and any entity that you represent) (i) have agreed to, and are in compliance with, the Mattermost Subscription Terms of Service, available at https://mattermost.com/enterprise-edition-terms/ (the “EE Terms”), and (ii) otherwise have a valid Mattermost Enterprise Edition subscription for the correct features, number of user seats and instances of Mattermost Enterprise Edition that you are running, accessing, or using. You may, however, utilize the free version of the Software (with several features not enabled) under this license without a license key or subscription provided that you otherwise comply with the terms and conditions of this Agreement. Subject to the foregoing, except as explicitly permitted in the EE Terms, it is forbidden to copy, merge, modify, publish, distribute, sublicense, stream, perform, display, create derivative works of and/or sell the Software in either source or executable form without written agreement from Mattermost. Notwithstanding anything to the contrary, free versions of the Software are provided “AS-IS” without indemnification, support, or warranties of any kind, expressed or implied. You assume all risk associated with any use of free versions of the Software.'),T().createElement("p",null,'EXCEPT AS OTHERWISE SET FORTH IN A BINDING WRITTEN AGREEMENT BETWEEN YOU AND MATTERMOST, THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.'))),T().createElement("div",{className:"content-footer"},T().createElement("button",{onClick:i,className:"btn btn-primary"},"Close"))))};uu.propTypes={onClose:k().func};const pu=uu;s(32773);const gu=e=>T().createElement("svg",{width:e.width?e.width.toString():"110",height:e.height?e.height.toString():"100",viewBox:"0 0 20 22",fill:"none",xmlns:"http://www.w3.org/2000/svg"},T().createElement("path",{d:"M16 0.991902H7.96C7.544 0.991902 7.192 1.1359 6.904 1.4239L2.44 5.8159C2.152 6.1359 2.008 6.4959 2.008 6.8959V18.9919C2.008 19.5519 2.2 20.0239 2.584 20.4079C2.984 20.8079 3.456 21.0079 4 21.0079H16C16.544 21.0079 17.008 20.8079 17.392 20.4079C17.792 20.0239 17.992 19.5519 17.992 18.9919V3.0079C17.992 2.4479 17.792 1.9759 17.392 1.5919C17.008 1.1919 16.544 0.991902 16 0.991902ZM7 2.7439V6.4879H3.184L7 2.7439ZM17.008 18.9919C17.008 19.2639 16.904 19.4959 16.696 19.6879C16.504 19.8959 16.272 19.9999 16 19.9999H4C3.728 19.9999 3.488 19.8959 3.28 19.6879C3.088 19.4959 2.992 19.2639 2.992 18.9919V7.4959H7C7.272 7.4959 7.504 7.3999 7.696 7.2079C7.904 6.9999 8.008 6.7599 8.008 6.4879V1.9999H16C16.272 1.9999 16.504 2.1039 16.696 2.3119C16.904 2.5039 17.008 2.7359 17.008 3.0079V18.9919ZM13.504 9.9919H6.496C6.368 9.9919 6.248 10.0479 6.136 10.1599C6.04 10.2559 5.992 10.3679 5.992 10.4959C5.992 10.6239 6.04 10.7439 6.136 10.8559C6.248 10.9519 6.368 10.9999 6.496 10.9999H13.504C13.632 10.9999 13.744 10.9519 13.84 10.8559C13.952 10.7599 14.008 10.6399 14.008 10.4959C14.008 10.3519 13.952 10.2319 13.84 10.1359C13.744 10.0399 13.632 9.9919 13.504 9.9919ZM13.504 12.0079H6.496C6.368 12.0079 6.248 12.0559 6.136 12.1519C6.04 12.2479 5.992 12.3599 5.992 12.4879C5.992 12.6159 6.04 12.7359 6.136 12.8479C6.248 12.9439 6.368 12.9919 6.496 12.9919H13.504C13.632 12.9919 13.744 12.9439 13.84 12.8479C13.952 12.7519 14.008 12.6319 14.008 12.4879C14.008 12.3439 13.96 12.2319 13.864 12.1519C13.768 12.0559 13.648 12.0079 13.504 12.0079ZM13.504 13.9999H6.496C6.368 13.9999 6.248 14.0479 6.136 14.1439C6.04 14.2399 5.992 14.3599 5.992 14.5039C5.992 14.6479 6.04 14.7679 6.136 14.8639C6.248 14.9599 6.368 15.0079 6.496 15.0079H13.504C13.632 15.0079 13.744 14.9599 13.84 14.8639C13.952 14.7519 14.008 14.6319 14.008 14.5039C14.008 14.3759 13.952 14.2639 13.84 14.1679C13.744 14.0559 13.632 13.9999 13.504 13.9999ZM11.512 15.9919H6.496C6.368 15.9919 6.248 16.0479 6.136 16.1599C6.04 16.2559 5.992 16.3679 5.992 16.4959C5.992 16.6239 6.04 16.7439 6.136 16.8559C6.248 16.9519 6.368 16.9999 6.496 16.9999H11.512C11.64 16.9999 11.752 16.9519 11.848 16.8559C11.944 16.7599 11.992 16.6399 11.992 16.4959C11.992 16.3519 11.944 16.2319 11.848 16.1359C11.752 16.0399 11.64 15.9919 11.512 15.9919Z",fill:"#999999"}));gu.propTypes={width:k().number.isRequired,height:k().number.isRequired};const hu=gu;var fu=s(21608);const Eu=e=>T().createElement("svg",{width:e.width?e.width.toString():"101",height:e.height?e.height.toString():"69",viewBox:"0 0 101 69",fill:"none",xmlns:"http://www.w3.org/2000/svg"},T().createElement("rect",{x:"0.000976562",y:"9",width:"84",height:"24",rx:"3.75",fill:"var(--button-bg)",fillOpacity:"0.12"}),T().createElement("rect",{x:"14.001",y:"36",width:"87",height:"25",rx:"3.75",fill:"var(--button-bg)",fillOpacity:"0.12"}),T().createElement("rect",{x:"28.0286",y:"9.33704",width:"48.1218",height:"58.8953",rx:"2",fill:"var(--indigo-400)"}),T().createElement("rect",{x:"23.001",width:"50.505",height:"65.3594",rx:"2",fill:"var(--center-channel-bg)"}),T().createElement("rect",{x:"23.501",y:"0.5",width:"49.505",height:"64.3594",rx:"1.5",stroke:"var(--center-channel-color)",strokeOpacity:"0.8"}),T().createElement("path",{d:"M48.001 49C56.2853 49 63.001 42.2843 63.001 34C63.001 25.7157 56.2853 19 48.001 19C39.7167 19 33.001 25.7157 33.001 34C33.001 42.2843 39.7167 49 48.001 49Z",fill:"var(--button-bg)"}),T().createElement("path",{d:"M29 7H37.6188",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M29 54H57.0112",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M29 11H44.8012",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M29 58H65.63",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M38 15H44.4641",stroke:"var(--center-channel-color)",strokeOpacity:"0.48",strokeLinecap:"round"}),T().createElement("path",{d:"M49.0192 42H46.9828V29.8788L41.4313 35.4303L40.001 34L48.001 26L56.001 34L54.5707 35.4303L49.0192 29.8788V42Z",fill:"white"}));Eu.propTypes={width:k().number.isRequired,height:k().number.isRequired};const bu=Eu,vu=e=>{const t=(0,a.useDispatch)(),[s,i]=T().useState(e.fileObjFromProps),[r,o]=T().useState(!1),[l,d]=T().useState(null),[m,u]=T().useState(!1),p=(0,A.useRef)(null),g=(0,a.useSelector)(c.Ay),h=(0,a.useSelector)(yi.k),f=(0,a.useSelector)((e=>(0,qr.o)(e,mt.IQ.UPLOAD_LICENSE)));if(!f)return null;const E=()=>{r||(e.onExited&&e.onExited(),t((0,Gr.O)(mt.IQ.UPLOAD_LICENSE)))};let b=T().createElement(T().Fragment,null,T().createElement("div",{className:"content-body"},T().createElement("div",{className:"svg-image"},T().createElement(bu,{width:151,height:103})),T().createElement("div",{className:"title"},T().createElement(N.FormattedMessage,{id:"admin.license.upload-modal.title",defaultMessage:"Upload a License Key"})),T().createElement("div",{className:"subtitle"},T().createElement(N.FormattedMessage,{id:"admin.license.upload-modal.subtitle",defaultMessage:"Upload a license key for Mattermost Enterprise Edition to upgrade this server. "})),T().createElement("div",{className:"file-upload"},T().createElement("div",{className:"file-upload__titleSection"},T().createElement(N.FormattedMessage,{id:"admin.license.upload-modal.file",defaultMessage:"File"})),T().createElement("div",{className:"file-upload__inputSection"},T().createElement("div",{className:"help-text file-name-section"},null!=s&&s.name&&null!=s&&s.size?T().createElement(T().Fragment,null,T().createElement(hu,{width:20,height:20}),T().createElement("span",{className:"file-name"},(e=>{const t=mt.a0.LICENSE_EXTENSION.length;let s=e.split(mt.a0.LICENSE_EXTENSION)[0];return s=s.length<40-t?s:"".concat(s.substr(0,37-t),"..."),"".concat(s).concat(mt.a0.LICENSE_EXTENSION)})(s.name)),T().createElement("span",{className:"file-size"},(0,D.O1)(s.size))):T().createElement(N.FormattedMessage,{id:"admin.license.no-file-selected",defaultMessage:"No file selected"})),T().createElement("div",{className:"file__upload"},null!=s&&s.name?T().createElement("a",{onClick:()=>{i(null)}},T().createElement(N.FormattedMessage,{id:"admin.license.remove",defaultMessage:"Remove"})):T().createElement(T().Fragment,null,T().createElement("input",{ref:p,type:"file",accept:mt.a0.LICENSE_EXTENSION,onChange:()=>{const e=p.current;null!==e&&null!==e.files&&0!==e.files.length&&0!==e.files[0].size&&(i(e.files[0]),d(null))}}),T().createElement("a",{className:"btn-select"},T().createElement(N.FormattedMessage,{id:"admin.license.choose",defaultMessage:"Choose File"})))))),l&&T().createElement("div",{className:"serverError"},T().createElement("i",{className:"icon icon-alert-outline"}),T().createElement("span",{className:"server-error-text",dangerouslySetInnerHTML:{__html:$t()(l)}}))),T().createElement("div",{className:"content-footer"},T().createElement("div",{className:"btn-upload-wrapper"},T().createElement("button",{className:"btn ".concat((null==s?void 0:s.name)&&(null==s?void 0:s.name.length)>0&&"btn-primary"),disabled:!(null!=s&&s.name&&(null==s?void 0:s.name.length)>0),onClick:async e=>{if(e.preventDefault(),null===s)return;o(!0);const{error:a}=await t((0,n.Nf)(s));if(a)return i(null),d(a.message),void o(!1);await t((0,Zm.uU)()),i(null),d(null),o(!1),u(!0)},id:"upload-button"},T().createElement(Jt.A,{loading:Boolean(r),text:(0,N.defineMessage)({id:"admin.license.modal.uploading",defaultMessage:"Uploading"})},T().createElement(N.FormattedMessage,{id:"admin.license.modal.upload",defaultMessage:"Upload"}))))));if(m){const e=T().createElement(N.FormattedDate,{value:new Date(parseInt(g.StartsAt,10)),day:"2-digit",month:(0,Ti.FS)(h),year:"numeric"}),t=T().createElement(N.FormattedDate,{value:new Date(parseInt(g.ExpiresAt,10)),day:"2-digit",month:(0,Ti.FS)(h),year:"numeric"}),s=g.Users,a=(0,Km.t)(g.SkuShortName,"true"===g.IsGovSku);b=T().createElement(T().Fragment,null,T().createElement("div",{className:"content-body"},T().createElement("div",{className:"svg-image hands-svg"},T().createElement(fu.A,{width:162,height:103.5})),T().createElement("div",{className:"title"},T().createElement(N.FormattedMessage,{id:"admin.license.upload-modal.successfulUpgrade",defaultMessage:"Successful Upgrade!"})),T().createElement("div",{className:"subtitle"},T().createElement(N.FormattedMessage,{id:"admin.license.upload-modal.successfulUpgradeText",defaultMessage:"You have upgraded to the {skuName} plan for {licensedUsersNum, number} seats. This is effective from {startsAt} until {expiresAt}. ",values:{expiresAt:t,startsAt:e,licensedUsersNum:s,skuName:a}}))),T().createElement("div",{className:"content-footer"},T().createElement("div",{className:"btn-upload-wrapper"},T().createElement("button",{className:"btn btn-primary",onClick:E,id:"done-button"},T().createElement(N.FormattedMessage,{id:"admin.license.modal.done",defaultMessage:"Done"})))))}return T().createElement(Bi.zW,{className:"UploadLicenseModal",show:f,id:"UploadLicenseModal",compassDesign:!0,onExited:E},b)};vu.propTypes={onExited:k().func};const yu=vu,Mu=e=>{let{license:t,totalUsers:s,isLicenseExpired:a}=e,i="info";const n=so().utc(new Date(parseInt(null==t?void 0:t.ExpiresAt,10))),r=(0,D.RF)(parseInt(null==t?void 0:t.ExpiresAt,10)),o=T().createElement("div",{className:"purchase-card"},T().createElement(iu,{eventID:"post_trial_contact_sales",customClass:"btn-primary"}));let l=T().createElement(N.FormattedMessage,{id:"admin.license.renewalCard.licenseExpiring",defaultMessage:"License expires in {days} days on {date, date, long}.",values:{date:n.toDate(),days:r}});a&&(i="danger",l=T().createElement(N.FormattedMessage,{id:"admin.license.renewalCard.licenseExpired",defaultMessage:"License expired on {date, date, long}.",values:{date:n.toDate()}}));const d=T().createElement("div",{className:"RenewLicenseCard__text"},T().createElement("div",{className:"RenewLicenseCard__text-description bolder"},T().createElement(N.FormattedMessage,{id:"admin.license.renewalCard.description.contact_sales",defaultMessage:"Renew your {licenseSku} license by contacting sales to avoid any disruption.",values:{licenseSku:(0,Km.t)(t.SkuShortName,"true"===t.IsGovSku)}})),T().createElement("div",{className:"RenewLicenseCard__text-description"},T().createElement(N.FormattedMessage,{id:"admin.license.renewalCard.reviewNumbers",defaultMessage:"Review your numbers below to ensure you renew for the right number of users."})),T().createElement("div",{className:"RenewLicenseCard__licensedUsersNum"},T().createElement("strong",null,T().createElement(N.FormattedMessage,{id:"admin.license.renewalCard.usersNumbers_licensed",defaultMessage:"Licensed Users: "})),t.Users),T().createElement("div",{className:"RenewLicenseCard__activeUsersNum"},T().createElement("strong",null,T().createElement(N.FormattedMessage,{id:"admin.license.renewalCard.usersNumbers_active",defaultMessage:"Active Users: "})),s),T().createElement("div",{className:"RenewLicenseCard__buttons"},o));return T().createElement(qa.A,{mode:i,title:l,message:d})};Mu.propTypes={isLicenseExpired:k().bool.isRequired,totalUsers:k().number.isRequired};const _u=Mu,Su=(0,N.defineMessages)({key:{id:"admin.license.key",defaultMessage:"License Key: "}}),Cu=e=>{let{openEELicenseModal:t,currentPlan:s,upgradedFromTE:a,fileInputRef:i,handleChange:n}=e;const{openPricingModal:r,isAirGapped:o}=(0,mo.A)(),l=(0,N.useIntl)(),d=o?null:T().createElement("button",{id:"starter_edition_view_plans",onClick:r,className:"btn btn-tertiary btn-sm PlanDetails__viewPlansButton"},l.formatMessage({id:"workspace_limits.menu_limit.view_plans",defaultMessage:"View plans"}));return T().createElement("div",{className:"StarterLeftPanel"},d,T().createElement("div",{className:"pre-title"},T().createElement(N.FormattedMessage,{id:"admin.license.enterpriseEdition",defaultMessage:"Enterprise Edition"})),T().createElement("div",{className:"title"},T().createElement(N.FormattedMessage,{id:"admin.license.freeEdition.title",defaultMessage:"Free"})),T().createElement("div",{className:"currentPlanLegend"},s),T().createElement("div",{className:"subtitle"},T().createElement(N.FormattedMessage,{id:"admin.license.freeEdition.subtitle",defaultMessage:"Purchase Professional or Enterprise to unlock enterprise features."})),T().createElement("hr",null),T().createElement("div",{className:"content"},a?T().createElement(T().Fragment,null,T().createElement("p",null,"When using Mattermost Enterprise Edition, the software is offered under a commercial license. See ",T().createElement("a",{role:"button",onClick:t,className:"openEELicenseModal"},"here"),' for "Enterprise Edition License" for details. ',"See NOTICE.txt for information about open source software used in the system.")):T().createElement("p",null,"This software is offered under a commercial license.\n\nSee ENTERPRISE-EDITION-LICENSE.txt in your root install directory for details. See NOTICE.txt for information about open source software used in this system.")),T().createElement("div",{className:"licenseInformation"},T().createElement("div",{className:"licenseKeyTitle"},T().createElement(N.FormattedMessage,Su.key)),T().createElement("div",{className:"uploadButtons"},T().createElement("button",{className:"btn btn-primary",onClick:()=>{var e;return null===(e=i.current)||void 0===e?void 0:e.click()},id:"open-modal"},T().createElement(N.FormattedMessage,{id:"admin.license.uploadFile",defaultMessage:"Upload File"})),T().createElement("input",{ref:i,type:"file",accept:mt.a0.LICENSE_EXTENSION,onChange:n,style:{display:"none"}}))))},Au=T().memo(Cu),Tu=()=>{const e=(0,N.useIntl)(),t=[e.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.attributeBasedAccess",defaultMessage:"Attribute-based access control"}),e.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.channelWarningBanners",defaultMessage:"Channel warning banners"}),e.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.adLdapGroupSync",defaultMessage:"AD/LDAP group sync"}),e.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.advancedWorkflows",defaultMessage:"Advanced workflows with Playbooks"}),e.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.highAvailability",defaultMessage:"High availability"}),e.formatMessage({id:"admin.license.enterpriseToAdvancedAdvantage.advancedCompliance",defaultMessage:"Advanced compliance"}),e.formatMessage({id:"admin.license.upgradeAdvantage.andMore",defaultMessage:"And more..."})];return T().createElement("div",{className:"StarterEditionRightPannel"},T().createElement("div",{className:"svg-image"},T().createElement(ru,{width:197,height:120})),T().createElement("div",{className:"upgrade-title"},T().createElement(N.FormattedMessage,{id:"admin.license.upgradeTitle",defaultMessage:"Purchase one of our plans to unlock more features"})),T().createElement("div",{className:"advantages-list"},t.map(((e,t)=>T().createElement("div",{className:"item",key:t.toString()},T().createElement("i",{className:"fa fa-lock"}),e)))),T().createElement("div",{className:"purchase_buttons"},T().createElement(iu,{eventID:"post_trial_contact_sales",customClass:"btn-tertiary btn-full"})))},Nu=(0,A.memo)(Tu),wu=e=>{let{openEELicenseModal:t,currentPlan:s}=e;return T().createElement("div",{className:"TeamEditionLeftPanel"},T().createElement("div",{className:"title"},"Team Edition"),T().createElement("div",{className:"currentPlanLegend"},s),T().createElement("hr",null),T().createElement("div",null,T().createElement("p",null,"When using Mattermost Team Edition, the software is offered under a Mattermost MIT Compiled License. See MIT-COMPILED-LICENSE.md in your root install directory for details."),T().createElement("p",null,"When using Mattermost Enterprise Edition, the software is offered under a commercial license. See ",T().createElement("a",{role:"button",onClick:t,className:"openEELicenseModal"},"here")," for “Enterprise Edition License” for details."),T().createElement("p",null,"See NOTICE.txt for information about open source software used in the system.")))};wu.propTypes={openEELicenseModal:k().func.isRequired,currentPlan:k().element.isRequired};const Ru=wu,Ou=e=>{let{upgradingPercentage:t,handleUpgrade:s,upgradeError:a,restartError:i,handleRestart:n,restarting:r,openEEModal:o,setClickNormalUpgradeBtn:l,upgradeDisabled:d}=e,c=null;const m=(0,N.useIntl)();return d?c=T().createElement("div",null,T().createElement("p",null,T().createElement(wt.A,{href:mt.vx.UNSUPPORTED_UPGRADE_LINK,location:"team_edition_right_panel",className:"btn btn-tertiary",role:"button"},T().createElement(N.FormattedMessage,{id:"admin.licenseSettings.teamEdition.teamEditionRightPanel.learnMore",defaultMessage:"Learn more"})))):100!==t?c=T().createElement("div",null,T().createElement("p",null,T().createElement("button",{type:"button",onClick:e=>{s&&(l(),s(e))},className:"btn btn-primary"},T().createElement(Jt.A,{loading:t>0,text:T().createElement(N.FormattedMessage,{id:"admin.license.enterprise.upgrading",defaultMessage:"Upgrading {percentage}%",values:{percentage:t}})},T().createElement(N.FormattedMessage,{id:"admin.license.enterprise.upgrade",defaultMessage:"Upgrade to Enterprise Edition"})))),T().createElement("p",{className:"upgrade-legal-terms"},T().createElement(N.FormattedMessage,{id:"admin.licenseSettings.teamEdition.teamEditionRightPanel.acceptTermsInitial",defaultMessage:"By clicking <b>Upgrade</b>, I agree to the terms of the Mattermost ",values:{b:e=>T().createElement("b",null,e)}}),T().createElement("a",{role:"button",onClick:o},T().createElement(N.FormattedMessage,{id:"admin.licenseSettings.teamEdition.teamEditionRightPanel.eeLicenseLink",defaultMessage:"Enterprise Edition License"})),T().createElement(N.FormattedMessage,{id:"admin.licenseSettings.teamEdition.teamEditionRightPanel.acceptTermsFinal",defaultMessage:". Upgrading will download the binary and update your team edition."})),a&&T().createElement("div",{className:"upgrade-error"},T().createElement("div",{className:"form-group has-error"},T().createElement("div",{className:"as-bs-label control-label",dangerouslySetInnerHTML:{__html:(0,Od.GP)(a)}})))):100===t&&(c=T().createElement("div",null,T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"admin.licenseSettings.teamEdition.teamEditionRightPanel.upgradedRestart",defaultMessage:"You have upgraded your binary to mattermost enterprise, please restart the server to start using the new binary. You can do it right here:"})),T().createElement("p",null,T().createElement("button",{type:"button",onClick:n,className:"btn btn-primary"},T().createElement(Jt.A,{loading:r,text:m.formatMessage({id:"admin.licenseSettings.teamEdition.teamEditionRightPanel.restarting",defaultMessage:"Restarting"})},T().createElement(N.FormattedMessage,{id:"admin.licenseSettings.teamEdition.teamEditionRightPanel.restart",defaultMessage:"Restart Server"})))),i&&T().createElement("div",{className:"upgrade-error"},T().createElement("div",{className:"form-group has-error"},T().createElement("div",{className:"as-bs-label control-label"},i))))),T().createElement("div",{className:"TeamEditionRightPanel"},T().createElement("div",{className:"svg-image"},T().createElement(ru,{width:197,height:120})),T().createElement("div",{className:"upgrade-title"},T().createElement(N.FormattedMessage,{id:"admin.license.enterprise.upgrade",defaultMessage:"Upgrade to Enterprise Edition"})),T().createElement("div",{className:"upgrade-subtitle"},T().createElement(N.FormattedMessage,{id:"admin.license.enterprise.license_required_upgrade",defaultMessage:"A license is required to unlock enterprise features"})),T().createElement("div",{className:"advantages-list"},["AD/LDAP Group Sync","High Availability","Advanced compliance","And more..."].map(((e,t)=>T().createElement("div",{className:"item",key:t.toString()},T().createElement("i",{className:"fa fa-lock"}),e)))),c)};Ou.propTypes={upgradingPercentage:k().number.isRequired,handleUpgrade:k().func.isRequired,upgradeError:k().oneOfType([k().string,k().oneOf([null])]),restartError:k().oneOfType([k().string,k().oneOf([null])]),handleRestart:k().func.isRequired,setClickNormalUpgradeBtn:k().func.isRequired,openEEModal:k().func.isRequired,restarting:k().bool.isRequired,upgradeDisabled:k().bool.isRequired};const Iu=T().memo(Ou),ku=e=>{let{license:t}=e;const s=new Date,a=new Date(parseInt(null==t?void 0:t.ExpiresAt,10)),i=(0,qs.vj)(t),n=T().createElement("div",{className:"RenewLicenseCard TrialLicense"},T().createElement("div",{className:"RenewLicenseCard__text RenewLicenseCard__text-description"},s.toDateString()===a.toDateString()?T().createElement(N.FormattedMessage,{id:"admin.license.trialLicenseCard.expiringToday",defaultMessage:"Your free trial expires <b>Today at {time}</b>. Contact sales to purchase a license and continue using advanced features after the trial ends.",values:{b:e=>T().createElement("b",null,e),time:so()(a).endOf("day").format("h:mm a ")+so()().tz((0,oo.C7)()).format("z")}}):T().createElement(N.FormattedMessage,{id:"admin.license.trialLicenseCard.expiringAfterFewDays",defaultMessage:"Your free trial will expire in <b>{daysCount} {daysCount, plural, one {day} other {days}}</b>. Contact sales to purchase a license and continue using advanced features.",values:{b:e=>T().createElement("b",null,e),daysCount:i}}))),r=T().createElement(wt.A,{href:mt.vx.CONTACT_SALES,location:"license_settings_user_seat_alert",className:"style-button AlertBanner__buttonLeft"},T().createElement(N.FormattedMessage,{id:"admin.license.trialCard.contactSales",defaultMessage:"Contact Sales"})),o=T().createElement(N.FormattedMessage,{id:"admin.license.trialCard.licenseExpiring",defaultMessage:"You’re currently on a free trial of our Mattermost {licenseType}.",values:{licenseType:(0,Km.t)(t.SkuShortName,"true"===t.IsGovSku)}});return T().createElement(qa.A,{mode:"info",title:o,message:n,actionButtonLeft:r})};function Pu(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const xu=(0,N.defineMessages)({title:{id:"admin.license.title",defaultMessage:"Edition and License"}}),Du=[Su.key,Qm.keyRemove,xu.title];class Lu extends T().PureComponent{constructor(e){super(e),Pu(this,"reloadPercentage",(async()=>{const{percentage:e,error:t}=await this.props.actions.upgradeToE0Status();100===e||t?this.interval&&(clearInterval(this.interval),this.interval=null):e>0&&!this.interval&&(this.interval=setInterval(this.reloadPercentage,2e3)),this.setState({upgradingPercentage:e||0,upgradeError:t})})),Pu(this,"handleChange",(()=>{var e;const t=this.fileInputRef.current;null!=t&&null!==(e=t.files)&&void 0!==e&&e.length&&this.setState({fileSelected:!0,file:t.files[0]})})),Pu(this,"openEELicenseModal",(async()=>{this.props.actions.openModal({modalId:mt.IQ.ENTERPRISE_EDITION_LICENSE,dialogType:pu})})),Pu(this,"confirmLicenseRemoval",(async()=>{this.props.actions.openModal({modalId:mt.IQ.CONFIRM_LICENSE_REMOVAL,dialogType:mu,dialogProps:{handleRemove:this.handleRemove,currentLicenseSKU:(0,qs.Zg)(this.props.license)}})})),Pu(this,"handleRemove",(async e=>{e.preventDefault(),this.setState({removing:!0});const{error:t}=await this.props.actions.removeLicense();t?this.setState({serverError:t.message,removing:!1}):(await Promise.all([this.props.actions.getPrevTrialLicense(),this.props.actions.getLicenseConfig()]),await this.props.actions.getServerLimits(),this.setState({serverError:null,removing:!1}))})),Pu(this,"handleUpgrade",(async e=>{if(e&&e.preventDefault(),!(this.state.upgradingPercentage>0))try{await this.props.actions.upgradeToE0(),this.setState({upgradingPercentage:1}),await this.reloadPercentage()}catch(e){this.setState({upgradeError:e.message,upgradingPercentage:0})}})),Pu(this,"checkRestarted",(()=>{this.props.actions.ping().then((()=>{window.location.reload()})).catch((()=>{setTimeout(this.checkRestarted,1e3)}))})),Pu(this,"handleRestart",(async e=>{e&&e.preventDefault(),this.setState({restarting:!0});try{await this.props.actions.restartServer()}catch(e){this.setState({restarting:!1,restartError:e})}setTimeout(this.checkRestarted,1e3)})),Pu(this,"setClickNormalUpgradeBtn",(()=>{this.setState({clickNormalUpgradeBtn:!0})})),Pu(this,"currentPlan",T().createElement("div",{className:"current-plan-legend"},T().createElement("i",{className:"icon-check-circle"}),"Current Plan")),Pu(this,"createLink",((e,t)=>T().createElement(wt.A,{location:"license_settings",id:"privacyLink",href:e},t))),Pu(this,"termsAndPolicy",T().createElement("div",{className:"terms-and-policy"},"See also ",this.createLink(mt.L0.TERMS_OF_SERVICE,"Enterprise Edition Terms of Use")," and ",this.createLink(mt.L0.PRIVACY_POLICY,"Privacy Policy"))),Pu(this,"comparePlans",this.props.license.SkuShortName===mt.gS.Entry?null:T().createElement("div",{className:"compare-plans-text"},"Curious about upgrading? ",this.createLink(mt.Lu.PRICING,"Compare Plans"))),Pu(this,"renewLicenseCard",(()=>(0,qs.Ue)(this.props.license)?T().createElement(ku,{license:this.props.license}):(0,qs.bT)(this.props.license)||(0,qs.oT)(this.props.license)?T().createElement(_u,{license:this.props.license,isLicenseExpired:(0,qs.bT)(this.props.license),totalUsers:this.props.totalUsers}):null)),this.interval=null,this.state={fileSelected:!1,file:null,serverError:null,gettingTrialResponseCode:null,gettingTrialError:null,gettingTrial:!1,removing:!1,upgradingPercentage:0,upgradeError:null,restarting:!1,restartError:null,clickNormalUpgradeBtn:!1,upgradeDisabled:!1},this.fileInputRef=T().createRef()}componentDidMount(){this.props.enterpriseReady?this.props.actions.getPrevTrialLicense():this.props.actions.isAllowedToUpgradeToEnterprise().then((e=>{let{error:t}=e;this.setState({upgradeDisabled:Boolean(null==t?void 0:t.message),upgradeError:null==t?void 0:t.message}),null!=t&&t.message||this.reloadPercentage()})),this.props.actions.getLicenseConfig(),this.props.actions.getFilteredUsersStats({include_bots:!1,include_deleted:!1})}componentDidUpdate(e,t){t.fileSelected!==this.state.fileSelected&&this.state.fileSelected&&this.props.actions.openModal({modalId:mt.IQ.UPLOAD_LICENSE,dialogType:yu,dialogProps:{fileObjFromProps:this.state.file}}),this.setState({fileSelected:!1,file:null})}componentWillUnmount(){this.interval&&clearInterval(this.interval)}render(){var e;const{license:t,upgradedFromTE:s,isDisabled:a}=this.props;let i=null,n=null;if(this.props.enterpriseReady)if("true"===t.IsLicensed){var r,o;i=T().createElement(su,{openEELicenseModal:this.openEELicenseModal,upgradedFromTE:s,license:t,isTrialLicense:(0,qs.Ue)(t),handleRemove:this.confirmLicenseRemoval,isDisabled:a,removing:this.state.removing,fileInputRef:this.fileInputRef,handleChange:this.handleChange,statsActiveUsers:this.props.totalUsers||0,isLicenseSetByEnvVar:Boolean(null===(r=this.props.environmentConfig)||void 0===r||null===(o=r.ServiceSettings)||void 0===o?void 0:o.LicenseFileLocation)}),n=T().createElement(lu,{isTrialLicense:(0,qs.Ue)(t),license:t})}else i=T().createElement(Au,{openEELicenseModal:this.openEELicenseModal,currentPlan:this.currentPlan,upgradedFromTE:this.props.upgradedFromTE,fileInputRef:this.fileInputRef,handleChange:this.handleChange}),n=T().createElement(Nu,null);else i=T().createElement(Ru,{openEELicenseModal:this.openEELicenseModal,currentPlan:this.currentPlan}),n=T().createElement(Iu,{upgradingPercentage:this.state.upgradingPercentage,upgradeError:this.state.upgradeError,restartError:this.state.restartError,handleRestart:this.handleRestart,handleUpgrade:this.handleUpgrade,restarting:this.state.restarting,openEEModal:this.openEELicenseModal,setClickNormalUpgradeBtn:this.setClickNormalUpgradeBtn,upgradeDisabled:this.state.upgradeDisabled});return T().createElement("div",{className:"wrapper--fixed"},T().createElement(nt,null,T().createElement(N.FormattedMessage,xu.title)),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement("div",{className:"admin-console__banner_section"},T().createElement(za,{license:t,totalUsers:this.props.totalUsers,location:"license_settings"}),!this.state.clickNormalUpgradeBtn&&"true"!==t.IsLicensed&&"true"!==(null===(e=this.props.prevTrialLicense)||void 0===e?void 0:e.IsLicensed)&&T().createElement(Pd,{isDisabled:a,gettingTrialResponseCode:this.state.gettingTrialResponseCode,gettingTrialError:this.state.gettingTrialError,gettingTrial:this.state.gettingTrial,enterpriseReady:this.props.enterpriseReady,upgradingPercentage:this.state.upgradingPercentage,handleUpgrade:this.handleUpgrade,upgradeError:this.state.upgradeError,restartError:this.state.restartError,handleRestart:this.handleRestart,restarting:this.state.restarting,openEEModal:this.openEELicenseModal,upgradeDisabled:this.state.upgradeDisabled}),this.renewLicenseCard()),T().createElement("div",{className:"top-wrapper"},T().createElement("div",{className:"left-panel"},T().createElement("div",{className:"panel-card"},i),!(0,qs.Ue)(t)&&this.termsAndPolicy),T().createElement("div",{className:"right-panel"},T().createElement("div",{className:oe()("panel-card",{entry:t.SkuShortName===mt.gS.Entry})},n),!(0,qs.PL)(t)&&this.comparePlans)))))}}Pu(Lu,"propTypes",{enterpriseReady:k().bool.isRequired,upgradedFromTE:k().bool.isRequired,totalUsers:k().number.isRequired,isDisabled:k().bool.isRequired,actions:k().shape({getLicenseConfig:k().func.isRequired,uploadLicense:k().func.isRequired,removeLicense:k().func.isRequired,getPrevTrialLicense:k().func.isRequired,upgradeToE0:k().func.isRequired,upgradeToE0Status:k().func.isRequired,isAllowedToUpgradeToEnterprise:k().func.isRequired,restartServer:k().func.isRequired,ping:k().func.isRequired,requestTrialLicense:k().func.isRequired,openModal:k().func.isRequired,getServerLimits:k().func.isRequired,getFilteredUsersStats:k().func.isRequired}).isRequired});const Fu=(0,a.connect)((function(e){var t;const s=(0,c.zj)(e);return{totalUsers:(null===(t=(0,g.$c)(e))||void 0===t?void 0:t.total_users_count)||0,upgradedFromTE:"true"===s.UpgradedFromTE,prevTrialLicense:e.entities.admin.prevTrialLicense}}),(function(e){return{actions:(0,i.zH)({getLicenseConfig:Zm.uU,uploadLicense:n.Nf,removeLicense:n.E5,getPrevTrialLicense:n.fr,upgradeToE0:h.v0,upgradeToE0Status:h.LP,restartServer:h.z_,ping:h.hU,requestTrialLicense:h.Fk,openModal:Gr.q,getFilteredUsersStats:bi.$c,getServerLimits:Jm.M,isAllowedToUpgradeToEnterprise:h.gV},e)}}))(Lu);function Uu(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Bu=(0,N.defineMessages)({globalRelayCustomerType_title:{id:"admin.complianceExport.globalRelayCustomerType.title",defaultMessage:"Customer Type:"},globalRelayCustomerType_description:{id:"admin.complianceExport.globalRelayCustomerType.description",defaultMessage:"The type of GlobalRelay customer account that your organization has."},globalRelaySMTPUsername_title:{id:"admin.complianceExport.globalRelaySMTPUsername.title",defaultMessage:"SMTP Username:"},globalRelaySMTPUsername_description:{id:"admin.complianceExport.globalRelaySMTPUsername.description",defaultMessage:"The username that is used to authenticate against the GlobalRelay SMTP server."},globalRelaySMTPPassword_title:{id:"admin.complianceExport.globalRelaySMTPPassword.title",defaultMessage:"SMTP Password:"},globalRelaySMTPPassword_description:{id:"admin.complianceExport.globalRelaySMTPPassword.description",defaultMessage:"The password that is used to authenticate against the GlobalRelay SMTP server."},globalRelayEmailAddress_title:{id:"admin.complianceExport.globalRelayEmailAddress.title",defaultMessage:"Email Address:"},globalRelayEmailAddress_description:{id:"admin.complianceExport.globalRelayEmailAddress.description",defaultMessage:"The email address that your GlobalRelay server monitors for incoming Compliance Exports."},complianceExportTitle:{id:"admin.service.complianceExportTitle",defaultMessage:"Enable Compliance Export:"},complianceExportDesc:{id:"admin.service.complianceExportDesc",defaultMessage:"When true, Mattermost will export all messages that were posted in the last 24 hours. The export task is scheduled to run once per day. See <link>the documentation</link> to learn more."},exportJobStartTime_title:{id:"admin.complianceExport.exportJobStartTime.title",defaultMessage:"Compliance Export Time:"},exportJobStartTime_description:{id:"admin.complianceExport.exportJobStartTime.description",defaultMessage:"Set the start time of the daily scheduled compliance export job. Choose a time when fewer people are using your system. Must be a 24-hour time stamp in the form HH:MM."},exportFormat_title:{id:"admin.complianceExport.exportFormat.title",defaultMessage:"Export Format:"},exportFormat_description_intro:{id:"admin.complianceExport.exportFormatDetail.intro",defaultMessage:"Format of the compliance export. Corresponds to the system that you want to import the data into."},exportFormat_description_details:{id:"admin.complianceExport.exportFormatDetail.details",defaultMessage:"For Actiance XML, compliance export files are written to the exports subdirectory of the configured <a>Local Storage Directory</a>. For Global Relay EML, they are emailed to the configured email address."},createJob_title:{id:"admin.complianceExport.createJob.title",defaultMessage:"Run Compliance Export Job Now"},createJob_help:{id:"admin.complianceExport.createJob.help",defaultMessage:"Initiates a Compliance Export job immediately."}}),ju=[Bu.exportFormat_description_intro,Bu.exportFormat_description_details,Bu.complianceExportTitle,Bu.complianceExportDesc,Bu.exportJobStartTime_title,Bu.exportJobStartTime_description,Bu.exportFormat_title,Bu.createJob_title,Bu.createJob_help,Bu.globalRelayCustomerType_title,Bu.globalRelayCustomerType_description,Bu.globalRelaySMTPUsername_title,Bu.globalRelaySMTPUsername_description,Bu.globalRelaySMTPPassword_title,Bu.globalRelaySMTPPassword_description,Bu.globalRelayEmailAddress_title,Bu.globalRelayEmailAddress_description],Hu=(0,N.injectIntl)(class extends Ia{constructor(){super(...arguments),Uu(this,"getConfigFromState",(e=>(e.MessageExportSettings.EnableExport=this.state.enableComplianceExport,e.MessageExportSettings.ExportFormat=this.state.exportFormat,e.MessageExportSettings.DailyRunTime=this.state.exportJobStartTime,this.state.exportFormat===mt.Fu.EXPORT_FORMAT_GLOBALRELAY&&(e.MessageExportSettings.GlobalRelaySettings={CustomerType:this.state.globalRelayCustomerType,SMTPUsername:this.state.globalRelaySMTPUsername,SMTPPassword:this.state.globalRelaySMTPPassword,EmailAddress:this.state.globalRelayEmailAddress,CustomSMTPServerName:this.state.globalRelayCustomSMTPServerName,CustomSMTPPort:this.state.globalRelayCustomSMTPPort,SMTPServerTimeout:this.state.globalRelaySMTPServerTimeout}),e))),Uu(this,"getJobDetails",(e=>{if(e.data){const t=[];return e.data.messages_exported&&t.push(T().createElement(N.FormattedMessage,{id:"admin.complianceExport.messagesExportedCount",defaultMessage:"{count} messages exported.",values:{count:e.data.messages_exported}})),e.data.warning_count>0&&(e.data.export_type===mt.Fu.EXPORT_FORMAT_GLOBALRELAY?t.push(T().createElement("div",null,T().createElement(N.FormattedMessage,{id:"admin.complianceExport.warningCount.globalrelay",defaultMessage:"{count} warning(s) encountered, see log for details",values:{count:e.data.warning_count}}))):t.push(T().createElement("div",null,T().createElement(N.FormattedMessage,{id:"admin.complianceExport.warningCount",defaultMessage:"{count} warning(s) encountered, see warning.txt for details",values:{count:e.data.warning_count}})))),e.data.progress_message&&t.push(T().createElement("div",null,e.data.progress_message)),t}return null})),Uu(this,"renderSettings",(()=>{const e=[{value:mt.Fu.EXPORT_FORMAT_ACTIANCE,text:this.props.intl.formatMessage({id:"admin.complianceExport.exportFormat.actiance",defaultMessage:"Actiance XML"})},{value:mt.Fu.EXPORT_FORMAT_CSV,text:this.props.intl.formatMessage({id:"admin.complianceExport.exportFormat.csv",defaultMessage:"CSV"})},{value:mt.Fu.EXPORT_FORMAT_GLOBALRELAY,text:this.props.intl.formatMessage({id:"admin.complianceExport.exportFormat.globalrelay",defaultMessage:"GlobalRelay EML"})}];let t;if(this.state.exportFormat===mt.Fu.EXPORT_FORMAT_GLOBALRELAY){const e=T().createElement(Vt,{id:"globalRelayCustomerType",values:[{value:"A9",text:this.props.intl.formatMessage({id:"admin.complianceExport.globalRelayCustomerType.a9.description",defaultMessage:"A9/Type 9"})},{value:"A10",text:this.props.intl.formatMessage({id:"admin.complianceExport.globalRelayCustomerType.a10.description",defaultMessage:"A10/Type 10"})},{value:"CUSTOM",text:this.props.intl.formatMessage({id:"admin.complianceExport.globalRelayCustomerType.custom.description",defaultMessage:"Custom"})}],label:T().createElement(N.FormattedMessage,Bu.globalRelayCustomerType_title),helpText:T().createElement(N.FormattedMessage,Bu.globalRelayCustomerType_description),value:this.state.globalRelayCustomerType?this.state.globalRelayCustomerType:"",onChange:this.handleChange,setByEnv:this.isSetByEnv("DataRetentionSettings.GlobalRelaySettings.CustomerType"),disabled:this.props.isDisabled||!this.state.enableComplianceExport}),s=T().createElement(ls,{id:"globalRelaySMTPUsername",label:T().createElement(N.FormattedMessage,Bu.globalRelaySMTPUsername_title),placeholder:(0,N.defineMessage)({id:"admin.complianceExport.globalRelaySMTPUsername.example",defaultMessage:'E.g.: "globalRelayUser"'}),helpText:T().createElement(N.FormattedMessage,Bu.globalRelaySMTPUsername_description),value:this.state.globalRelaySMTPUsername?this.state.globalRelaySMTPUsername:"",onChange:this.handleChange,setByEnv:this.isSetByEnv("DataRetentionSettings.GlobalRelaySettings.SMTPUsername"),disabled:this.props.isDisabled||!this.state.enableComplianceExport}),a=T().createElement(ls,{id:"globalRelaySMTPPassword",label:T().createElement(N.FormattedMessage,Bu.globalRelaySMTPPassword_title),placeholder:(0,N.defineMessage)({id:"admin.complianceExport.globalRelaySMTPPassword.example",defaultMessage:'E.g.: "globalRelayPassword"'}),helpText:T().createElement(N.FormattedMessage,Bu.globalRelaySMTPPassword_description),value:this.state.globalRelaySMTPPassword?this.state.globalRelaySMTPPassword:"",onChange:this.handleChange,setByEnv:this.isSetByEnv("DataRetentionSettings.GlobalRelaySettings.SMTPPassword"),disabled:this.props.isDisabled||!this.state.enableComplianceExport}),i=T().createElement(ls,{id:"globalRelayEmailAddress",label:T().createElement(N.FormattedMessage,Bu.globalRelayEmailAddress_title),placeholder:(0,N.defineMessage)({id:"admin.complianceExport.globalRelayEmailAddress.example",defaultMessage:'E.g.: "globalrelay@mattermost.com"'}),helpText:T().createElement(N.FormattedMessage,Bu.globalRelayEmailAddress_description),value:this.state.globalRelayEmailAddress?this.state.globalRelayEmailAddress:"",onChange:this.handleChange,setByEnv:this.isSetByEnv("DataRetentionSettings.GlobalRelaySettings.EmailAddress"),disabled:this.props.isDisabled||!this.state.enableComplianceExport}),n=T().createElement(ls,{id:"globalRelayCustomSMTPServerName",label:T().createElement(N.FormattedMessage,{id:"admin.complianceExport.globalRelayCustomSMTPServerName.title",defaultMessage:"SMTP Server Name:"}),placeholder:(0,N.defineMessage)({id:"admin.complianceExport.globalRelayCustomSMTPServerName.example",defaultMessage:'E.g.: "feeds.globalrelay.com"'}),helpText:T().createElement(N.FormattedMessage,{id:"admin.complianceExport.globalRelayCustomSMTPServerName.description",defaultMessage:"The SMTP server name that will receive your Global Relay EML."}),value:this.state.globalRelayCustomSMTPServerName?this.state.globalRelayCustomSMTPServerName:"",onChange:this.handleChange,setByEnv:this.isSetByEnv("DataRetentionSettings.GlobalRelaySettings.CustomSMTPServerName"),disabled:this.props.isDisabled||!this.state.enableComplianceExport}),r=T().createElement(ls,{id:"globalRelayCustomSMTPPort",label:T().createElement(N.FormattedMessage,{id:"admin.complianceExport.globalRelayCustomSMTPPort.title",defaultMessage:"SMTP Server Port:"}),placeholder:(0,N.defineMessage)({id:"admin.complianceExport.globalRelayCustomSMTPPort.example",defaultMessage:'E.g.: "25"'}),helpText:T().createElement(N.FormattedMessage,{id:"admin.complianceExport.globalRelayCustomSMTPPort.description",defaultMessage:"The SMTP server port that will receive your Global Relay EML."}),value:this.state.globalRelayCustomSMTPPort?this.state.globalRelayCustomSMTPPort:"",onChange:this.handleChange,setByEnv:this.isSetByEnv("DataRetentionSettings.GlobalRelaySettings.CustomSMTPPort"),disabled:this.props.isDisabled||!this.state.enableComplianceExport});t=T().createElement(is,{id:"globalRelaySettings"},e,s,a,i,"CUSTOM"===this.state.globalRelayCustomerType&&n,"CUSTOM"===this.state.globalRelayCustomerType&&r)}const s=T().createElement(T().Fragment,null,T().createElement("p",null,T().createElement(N.FormattedMessage,Bu.exportFormat_description_intro)),T().createElement("p",null,T().createElement(N.FormattedMessage,Object.assign({},Bu.exportFormat_description_details,{values:{a:e=>T().createElement(w.Link,{to:"/admin_console/environment/file_storage"},e)}}))));return T().createElement(is,null,T().createElement(j,{id:"enableComplianceExport",label:T().createElement(N.FormattedMessage,Bu.complianceExportTitle),helpText:T().createElement(N.FormattedMessage,Object.assign({},Bu.complianceExportDesc,{values:{link:e=>T().createElement(wt.A,{href:mt.Uk.COMPILANCE_EXPORT,location:"message_export_settings"},e)}})),value:this.state.enableComplianceExport,onChange:this.handleChange,setByEnv:this.isSetByEnv("DataRetentionSettings.EnableExport"),disabled:this.props.isDisabled}),T().createElement(ls,{id:"exportJobStartTime",label:T().createElement(N.FormattedMessage,Bu.exportJobStartTime_title),placeholder:(0,N.defineMessage)({id:"admin.complianceExport.exportJobStartTime.example",defaultMessage:'E.g.: "02:00"'}),helpText:T().createElement(N.FormattedMessage,Bu.exportJobStartTime_description),value:this.state.exportJobStartTime,onChange:this.handleChange,setByEnv:this.isSetByEnv("DataRetentionSettings.DailyRunTime"),disabled:this.props.isDisabled||!this.state.enableComplianceExport}),T().createElement(bt,{id:"exportFormat",values:e,label:T().createElement(N.FormattedMessage,Bu.exportFormat_title),helpText:s,value:this.state.exportFormat,onChange:this.handleChange,setByEnv:this.isSetByEnv("DataRetentionSettings.ExportFormat"),disabled:this.props.isDisabled||!this.state.enableComplianceExport}),t,T().createElement(Ft,{jobType:mt.jj.MESSAGE_EXPORT,createJobButtonText:T().createElement(N.FormattedMessage,Bu.createJob_title),createJobHelpText:T().createElement(N.FormattedMessage,Bu.createJob_help),getExtraInfoText:this.getJobDetails,disabled:this.props.isDisabled||!this.state.enableComplianceExport}))}))}getStateFromConfig(e){const t={enableComplianceExport:e.MessageExportSettings.EnableExport,exportFormat:e.MessageExportSettings.ExportFormat,exportJobStartTime:e.MessageExportSettings.DailyRunTime,globalRelayCustomerType:"",globalRelaySMTPUsername:"",globalRelaySMTPPassword:"",globalRelayEmailAddress:"",globalRelaySMTPServerTimeout:0,globalRelayCustomSMTPServerName:"",globalRelayCustomSMTPPort:"",saveNeeded:!1,saving:!1,serverError:null};return e.MessageExportSettings.GlobalRelaySettings&&(t.globalRelayCustomerType=e.MessageExportSettings.GlobalRelaySettings.CustomerType,t.globalRelaySMTPUsername=e.MessageExportSettings.GlobalRelaySettings.SMTPUsername,t.globalRelaySMTPPassword=e.MessageExportSettings.GlobalRelaySettings.SMTPPassword,t.globalRelayEmailAddress=e.MessageExportSettings.GlobalRelaySettings.EmailAddress,t.globalRelayCustomSMTPServerName=e.MessageExportSettings.GlobalRelaySettings.CustomSMTPServerName,t.globalRelayCustomSMTPPort=e.MessageExportSettings.GlobalRelaySettings.CustomSMTPPort),t}renderTitle(){return T().createElement(N.FormattedMessage,{id:"admin.complianceExport.title",defaultMessage:"Compliance Export"})}}),Gu=s.p+"files/5f87fb0335aa3115cc71.svg",qu=e=>{let{disabled:t,actions:s,config:a}=e;const[i,n]=(0,A.useState)(void 0);return T().createElement("div",{className:"OpenIdConvert"},T().createElement("div",{className:"OpenIdConvert_imageWrapper"},T().createElement("img",{className:"OpenIdConvert_image",src:Gu,alt:"OpenId Convert Image"})),T().createElement("div",{className:"OpenIdConvert_copyWrapper"},T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"admin.openIdConvert.message",defaultMessage:"You can now convert your OAuth2.0 configuration to OpenID Connect."})),T().createElement("div",{className:"OpenIdConvert_actionWrapper"},T().createElement("button",{className:"btn","data-testid":"openIdConvert",disabled:t,onClick:async e=>{e.preventDefault();const t=JSON.parse(JSON.stringify(a));if(t.Office365Settings.DirectoryId&&(t.Office365Settings.DiscoveryEndpoint="https://login.microsoftonline.com/"+t.Office365Settings.DirectoryId+"/v2.0/.well-known/openid-configuration"),t.GoogleSettings.DiscoveryEndpoint="https://accounts.google.com/.well-known/openid-configuration",t.GitLabSettings.UserAPIEndpoint){const e=t.GitLabSettings.UserAPIEndpoint.replace("/api/v4/user","");t.GitLabSettings.DiscoveryEndpoint=e+"/.well-known/openid-configuration"}["Office365Settings","GoogleSettings","GitLabSettings"].forEach((e=>{t[e].Scope=mt.YM.OPENID_SCOPES,t[e].UserAPIEndpoint="",t[e].AuthEndpoint="",t[e].TokenEndpoint=""}));const{error:i}=await s.patchConfig(t);i?n(i.message):(0,Li.J)().push("/admin_console/authentication/openid")}},T().createElement(N.FormattedMessage,{id:"admin.openIdConvert.text",defaultMessage:"Convert to OpenID Connect"})),T().createElement(wt.A,{className:"btn-secondary",location:"openid_convert",href:"https://www.mattermost.com/default-openid-docs","data-testid":"openIdLearnMore"},T().createElement(N.FormattedMessage,{id:"admin.openIdConvert.help",defaultMessage:"Learn more"})),T().createElement("div",{className:"error-message","data-testid":"errorMessage"},T().createElement(Bt.Ay,{error:i})))))};qu.propTypes={disabled:k().bool,actions:k().shape({patchConfig:k().func.isRequired}).isRequired};const Vu=(0,A.memo)(qu),zu=(0,a.connect)(null,(function(e){return{actions:(0,i.zH)({patchConfig:n.tn},e)}}))(Vu);var Wu=s(79135);function Yu(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Zu=(0,N.defineMessages)({passwordMinLength:{id:"user.settings.security.passwordMinLength",defaultMessage:"Invalid minimum length, cannot show preview."},password:{id:"admin.security.password",defaultMessage:"Password"},minimumLength:{id:"admin.password.minimumLength",defaultMessage:"Minimum Password Length:"},minimumLengthDescription:{id:"admin.password.minimumLengthDescription",defaultMessage:"Minimum number of characters required for a valid password. Must be a whole number greater than or equal to {min} and less than or equal to {max}."},lowercase:{id:"admin.password.lowercase",defaultMessage:"At least one lowercase letter"},uppercase:{id:"admin.password.uppercase",defaultMessage:"At least one uppercase letter"},number:{id:"admin.password.number",defaultMessage:"At least one number"},symbol:{id:"admin.password.symbol",defaultMessage:'At least one symbol (e.g. "~!@#$%^&*()")'},preview:{id:"admin.password.preview",defaultMessage:"Error message preview:"},attemptTitle:{id:"admin.service.attemptTitle",defaultMessage:"Maximum Login Attempts:"},attemptDescription:{id:"admin.service.attemptDescription",defaultMessage:"Login attempts allowed before user is locked out and required to reset password via email."},passwordRequirements:{id:"passwordRequirements",defaultMessage:"Password Requirements:"}}),Ju=[[Zu.minimumLength,{max:"",min:""}],[Zu.minimumLengthDescription,{max:"",min:""}],Zu.passwordMinLength,Zu.password,Zu.passwordRequirements,Zu.lowercase,Zu.uppercase,Zu.number,Zu.symbol,Zu.preview,Zu.attemptTitle,Zu.attemptDescription];function Ku(e,t,s,a){let i="passwordError";return e&&(i+="Lowercase"),t&&(i+="Uppercase"),s&&(i+="Number"),a&&(i+="Symbol"),Wu.b[i]}var Qu=s(23877),Xu=s(1418);function $u(e){return(0,Zn.n4)({clientFunc:O.mT.getScheme,onSuccess:[Qu.pV.RECEIVED_SCHEME],params:[e]})}function ep(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:l.Bz.PAGE_SIZE_DEFAULT;return(0,Zn.n4)({clientFunc:O.mT.getSchemes,onSuccess:[Qu.pV.RECEIVED_SCHEMES],params:[e,t,s]})}function tp(e){return(0,Zn.n4)({clientFunc:O.mT.createScheme,onSuccess:[Qu.pV.CREATED_SCHEME],params:[e]})}function sp(e){return async(t,s)=>{let a=null;try{a=await O.mT.deleteScheme(e)}catch(e){return(0,Zn.UP)(e,t,s),t((0,Xu.vV)(e)),{error:e}}return t({type:Qu.pV.DELETED_SCHEME,data:{schemeId:e}}),{data:a}}}function ap(e,t){return(0,Zn.n4)({clientFunc:O.mT.patchScheme,onSuccess:[Qu.pV.PATCHED_SCHEME],params:[e,t]})}function ip(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:l.Bz.PAGE_SIZE_DEFAULT;return(0,Zn.n4)({clientFunc:O.mT.getSchemeTeams,onSuccess:[Qu.pV.RECEIVED_SCHEME_TEAMS],params:[e,t,s]})}function np(e){return e.entities.schemes.schemes}function rp(e,t){return np(e)[t]}function op(){return(0,S.Mz)("makeGetSchemeTeams",p.ZN,((e,t)=>rp(e,t.schemeId)),((e,t)=>{if(!t)return[];if("channel"===t.scope){const e="Error: scheme '".concat(t.id,"' is channel-scoped but 'getSchemeChannels' only accepts team-scoped schemes.");return console.log(e),[]}const s=[];return Object.entries(e).forEach((e=>{const[,a]=e;a.scheme_id===t.id&&s.push(a)})),s}))}const lp=e=>{let{className:t="",linkText:s,subtitle:a,title:i,url:n,children:r,disabled:o,id:l,subtitleValues:d}=e;const c=T().createElement(w.Link,{"data-testid":"".concat(l,"-link"),className:oe()(["btn","btn-primary",{disabled:o}]),to:n,onClick:o?e=>e.preventDefault():()=>null},T().createElement(N.FormattedMessage,s));return T().createElement(dc,{className:"AdminPanelWithLink "+t,id:l,"data-testid":l,title:i,subtitle:a,subtitleValues:d,button:c},r)};lp.propTypes={children:k().node,className:k().string,id:k().string,subtitleValues:k().any,url:k().string.isRequired,disabled:k().bool};const dp=lp;function cp(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class mp extends T().PureComponent{constructor(e){super(e),cp(this,"renderConfirmModal",(()=>{const e=T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionsSchemeSummary.deleteSchemeTitle",defaultMessage:"Delete {scheme} scheme?",values:{scheme:this.props.scheme.display_name}});let t=null;this.state.serverError&&(t=T().createElement("div",{className:"permission-scheme-summary-error-message"},T().createElement("i",{className:"fa fa-exclamation-circle"})," ",this.state.serverError));const s=T().createElement("div",null,T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionsSchemeSummary.deleteConfirmQuestion",defaultMessage:"The permissions in the teams using this scheme will reset to the defaults in the System Scheme. Are you sure you want to delete the {schemeName} scheme?",values:{schemeName:this.props.scheme.display_name}})),t),a=T().createElement(Jt.A,{loading:this.state.deleting,text:(0,N.defineMessage)({id:"admin.permissions.permissionsSchemeSummary.deleting",defaultMessage:"Deleting..."})},T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionsSchemeSummary.deleteConfirmButton",defaultMessage:"Yes, Delete"}));return T().createElement(Ta.A,{show:this.state.showConfirmModal,title:e,message:s,confirmButtonText:a,onConfirm:this.handleDeleteConfirmed,onCancel:this.handleDeleteCanceled})})),cp(this,"stopPropagation",(e=>{e.stopPropagation()})),cp(this,"handleDeleteCanceled",(()=>{this.setState({showConfirmModal:!1})})),cp(this,"handleDeleteConfirmed",(async()=>{var e;this.setState({deleting:!0,serverError:void 0});const t=await(null===(e=this.props.actions)||void 0===e?void 0:e.deleteScheme(this.props.scheme.id));null!=t&&t.error?this.setState({deleting:!1,serverError:t.error.message}):this.setState({deleting:!1,showConfirmModal:!1})})),cp(this,"delete",(e=>{e.stopPropagation(),this.props.isDisabled||this.setState({showConfirmModal:!0,serverError:void 0})})),cp(this,"goToEdit",(()=>{this.props.history.push("/admin_console/user_management/permissions/team_override_scheme/"+this.props.scheme.id)})),cp(this,"render",(()=>{const{scheme:e,isDisabled:t}=this.props;let s=this.props.teams?this.props.teams.map((e=>T().createElement("span",{className:"team",key:e.id},e.display_name))):[],a=null;var i,n,r;s.length>8&&(a=T().createElement(ys.A,{title:null!==(i=null===(n=this.props)||void 0===n||null===(r=n.teams)||void 0===r?void 0:r.slice(8).map((e=>e.display_name)).join(", "))&&void 0!==i?i:""},T().createElement("span",{className:"team",key:"extra-teams"},T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionsSchemeSummary.moreTeams",defaultMessage:"+{number} more",values:{number:s.length-8}}))),s=s.slice(0,8));const o=this.renderConfirmModal();return T().createElement("div",{className:"permissions-scheme-summary","data-testid":"permissions-scheme-summary",onClick:this.goToEdit},T().createElement("div",{onClick:this.stopPropagation},o),T().createElement("div",{className:"permissions-scheme-summary--header"},T().createElement("div",{className:"title"},e.display_name),T().createElement("div",{className:"actions"},T().createElement(w.Link,{"data-testid":"".concat(e.display_name,"-edit"),className:"edit-button",to:"/admin_console/user_management/permissions/team_override_scheme/"+e.id},T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionsSchemeSummary.edit",defaultMessage:"Edit"})),"-",T().createElement("a",{"data-testid":"".concat(e.display_name,"-delete"),className:t?"delete-button disabled":"delete-button",onClick:this.delete},T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionsSchemeSummary.delete",defaultMessage:"Delete"})))),T().createElement("div",{className:"permissions-scheme-summary--description"},e.description),T().createElement("div",{className:"permissions-scheme-summary--teams"},s,a))})),this.state={showConfirmModal:!1,deleting:!1,serverError:void 0}}}cp(mp,"propTypes",{teams:k().array,isDisabled:k().bool,actions:k().shape({deleteScheme:k().func.isRequired})});const up=(0,a.connect)((function(){const e=op();return function(t,s){return{teams:e(t,{schemeId:s.scheme.id})}}}),(function(e){return{actions:(0,i.zH)({deleteScheme:sp},e)}}))(mp);function pp(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const gp=(0,N.defineMessages)({teamOverrideSchemesNoSchemes:{id:"admin.permissions.teamOverrideSchemesNoSchemes",defaultMessage:"No team override schemes created."},loadMoreSchemes:{id:"admin.permissions.loadMoreSchemes",defaultMessage:"Load more schemes"},introBanner:{id:"admin.permissions.introBanner",defaultMessage:"Permission Schemes set the default permissions for Team Admins, Channel Admins and everyone else. Learn more about permission schemes in our <link>documentation</link>."},systemSchemeBannerTitle:{id:"admin.permissions.systemSchemeBannerTitle",defaultMessage:"System Scheme"},systemSchemeBannerText:{id:"admin.permissions.systemSchemeBannerText",defaultMessage:"Set the default permissions inherited by all teams unless a <link>Team Override Scheme</link> is applied."},systemSchemeBannerButton:{id:"admin.permissions.systemSchemeBannerButton",defaultMessage:"Edit Scheme"},teamOverrideSchemesTitle:{id:"admin.permissions.teamOverrideSchemesTitle",defaultMessage:"Team Override Schemes"},teamOverrideSchemesBannerText:{id:"admin.permissions.teamOverrideSchemesBannerText",defaultMessage:"Use when specific teams need permission exceptions to the <link>System Scheme</link>"},teamOverrideSchemesNewButton:{id:"admin.permissions.teamOverrideSchemesNewButton",defaultMessage:"New Team Override Scheme"}}),hp=[gp.teamOverrideSchemesNoSchemes,gp.loadMoreSchemes,gp.introBanner,gp.systemSchemeBannerTitle,gp.systemSchemeBannerText,gp.systemSchemeBannerButton,gp.teamOverrideSchemesTitle,gp.teamOverrideSchemesBannerText,gp.teamOverrideSchemesNewButton];class fp extends T().PureComponent{constructor(e){super(e),pp(this,"loadMoreSchemes",(()=>{this.setState({loadingMore:!0}),this.props.actions.loadSchemes("team",this.state.page+1,30).then((e=>{const t=[];for(const s of e.data)t.push(this.props.actions.loadSchemeTeams(s.id));Promise.all(t).then((()=>this.setState({loadingMore:!1,page:this.state.page+1})))}))})),pp(this,"teamOverrideSchemesMigrationView",(()=>this.state.phase2MigrationIsComplete?null:this.props.jobsAreEnabled&&!this.props.clusterIsEnabled?this.teamOverrideUnavalableView((0,N.defineMessage)({id:"admin.permissions.teamOverrideSchemesInProgress",defaultMessage:"Migration job in progress: Team Override Schemes are not available until the job server completes the permissions migration. Learn more in the <link>documentation</link>."})):this.teamOverrideUnavalableView((0,N.defineMessage)({id:"admin.permissions.teamOverrideSchemesNoJobsEnabled",defaultMessage:"Migration job on hold: Team Override Schemes are not available until the job server can execute the permissions migration. The job will be automatically started when the job server is enabled. Learn more in the <link>documentation</link>."})))),pp(this,"teamOverrideUnavalableView",(e=>T().createElement("div",{className:"team-override-unavailable"},T().createElement("div",{className:"team-override-unavailable__inner"},T().createElement(N.FormattedMessage,Object.assign({},e,{values:{link:e=>T().createElement(wt.A,{href:"https://docs.mattermost.com/administration/config-settings.html#jobs",location:"permission_scheme_settings"},e)}})))))),pp(this,"renderTeamOverrideSchemes",(()=>{const e=Object.values(this.props.schemes).map((e=>T().createElement(up,{scheme:e,history:this.props.history,key:e.id,isDisabled:this.props.isDisabled,location:this.props.location,match:this.props.match}))),t="true"===this.props.license.CustomPermissionsSchemes||this.props.license.SkuShortName===mt.gS.Professional,s=this.teamOverrideSchemesMigrationView();return!!t&&T().createElement(dp,{id:"team-override-schemes",className:"permissions-block",title:gp.teamOverrideSchemesTitle,subtitle:gp.teamOverrideSchemesBannerText,subtitleValues:{link:e=>T().createElement(wt.A,{href:mt.Uk.ONBOARD_ADVANCED_PERMISSIONS,location:"permission_scheme_settings"},e)},url:"/admin_console/user_management/permissions/team_override_scheme",disabled:null!==s||this.props.isDisabled,linkText:gp.teamOverrideSchemesNewButton},0===e.length&&null===s&&T().createElement("div",{className:"no-team-schemes"},T().createElement(N.FormattedMessage,gp.teamOverrideSchemesNoSchemes)),s,e.length>0&&e,e.length===30*(this.state.page+1)&&T().createElement("button",{type:"button",className:"more-schemes theme style--none color--link",onClick:this.loadMoreSchemes,disabled:this.props.isDisabled||this.state.loadingMore},T().createElement(Jt.A,{loading:this.state.loadingMore,text:(0,N.defineMessage)({id:"admin.permissions.loadingMoreSchemes",defaultMessage:"Loading..."})},T().createElement(N.FormattedMessage,gp.loadMoreSchemes))))})),pp(this,"render",(()=>{if(this.state.loading)return T().createElement(Na.A,null);const e=this.teamOverrideSchemesMigrationView();return T().createElement("div",{className:"wrapper--fixed"},T().createElement(nt,null,T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionSchemes",defaultMessage:"Permission Schemes"})),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement("div",{className:"banner info"},T().createElement("div",{className:"banner__content"},T().createElement("span",null,T().createElement(N.FormattedMessage,Object.assign({},gp.introBanner,{values:{link:e=>T().createElement(wt.A,{href:mt.Uk.ONBOARD_ADVANCED_PERMISSIONS,location:"permission_scheme_settings"},e)}}))))),T().createElement(dp,{id:"systemScheme",title:gp.systemSchemeBannerTitle,subtitle:gp.systemSchemeBannerText,subtitleValues:{link:e=>T().createElement(wt.A,{href:mt.Uk.ONBOARD_ADVANCED_PERMISSIONS,location:"permission_scheme_settings"},e)},url:"/admin_console/user_management/permissions/system_scheme",disabled:null!==e,linkText:gp.systemSchemeBannerButton}),this.renderTeamOverrideSchemes())))})),this.state={loading:!0,loadingMore:!1,page:0,phase2MigrationIsComplete:!1}}componentDidMount(){let e=!0;this.props.actions.loadSchemes("team",0,30).then((t=>{501===t.error.status_code&&(e=!1);const s=[];for(const e of t.data)s.push(this.props.actions.loadSchemeTeams(e.id));Promise.all(s).then((()=>this.setState({loading:!1,phase2MigrationIsComplete:e})))})).catch((()=>{this.setState({loading:!1,phase2MigrationIsComplete:e})}))}}pp(fp,"propTypes",{jobsAreEnabled:k().bool,clusterIsEnabled:k().bool,license:k().shape({CustomPermissionsSchemes:k().string.isRequired,SkuShortName:k().string.isRequired}).isRequired,actions:k().shape({loadSchemes:k().func.isRequired,loadSchemeTeams:k().func.isRequired}).isRequired,isDisabled:k().bool}),pp(fp,"defaultProps",{schemes:{}});const Ep=(0,a.connect)((function(e){const t=np(e),s=(0,c.zj)(e);return{schemes:t,jobsAreEnabled:"true"===s.RunJobs,clusterIsEnabled:"true"===s.EnableCluster}}),(function(e){return{actions:(0,i.zH)({loadSchemes:ep,loadSchemeTeams:ip},e)}}))(fp);s(36169);var bp=s(45655);function vp(e){return T().createElement("span",e,T().createElement("svg",{width:"30px",height:"30px",viewBox:"0 0 30 30"},T().createElement("g",{id:"Developer-Export",stroke:"none",strokeWidth:"1",fill:"none",fillRule:"evenodd"},T().createElement("g",{transform:"translate(-995.000000, -1372.000000)",id:"All-Team-Members"},T().createElement("g",{transform:"translate(245.000000, 698.000000)"},T().createElement("g",{id:"Team-Administrators",transform:"translate(0.000000, 651.000000)"},T().createElement("g",{id:"accordion-header"},T().createElement("g",{id:"accordion---expanded",transform:"translate(750.000000, 23.000000)"},T().createElement("path",{d:"M23.1484532,13.3124932 C23.3437659,13.1171805 23.3437659,12.7968676 23.1484532,12.6015549 L21.8515766,11.3124908 C21.6562639,11.1171781 21.3437635,11.1171781 21.1484508,11.3124908 L15.0000083,17.4609333 L8.8515659,11.3124908 C8.65625317,11.1171781 8.34375279,11.1171781 8.14844006,11.3124908 L6.85156352,12.6015549 C6.65625078,12.7968676 6.65625078,13.1171805 6.85156352,13.3124932 L14.6484454,21.1015626 C14.8437582,21.2968754 15.1562585,21.2968754 15.3515713,21.1015626 L23.1484532,13.3124932 Z",id:"",fill:"#979797"}),T().createElement("circle",{id:"Oval-2",stroke:"#989898",strokeWidth:"2",cx:"15",cy:"15",r:"14"})))))))))}const yp=e=>{let{className:t="",open:s=!0,subtitle:a,title:i,children:n,id:r,onToggle:o}=e;return T().createElement(dc,{className:"AdminPanelTogglable "+t+(s?"":" closed"),id:r,title:i,subtitle:a,onHeaderClick:o,button:T().createElement(vp,null)},T().createElement("div",{className:"AdminPanelTogglableContent"},T().createElement("div",{className:"AdminPanelTogglableContentInner"},n)))};yp.propTypes={children:k().node,className:k().string.isRequired,id:k().string,open:k().bool.isRequired,onToggle:k().func};const Mp=yp;function _p(e){return T().createElement("button",{type:"button",className:"edit-post-time-limit-button",onClick:e.onClick,disabled:e.isDisabled},T().createElement("i",{className:"fa fa-gear"}),e.timeLimit===mt.YM.UNSET_POST_EDIT_TIME_LIMIT?T().createElement(N.FormattedMessage,{id:"edit_post.time_limit_button.no_limit",defaultMessage:"Anytime"}):T().createElement(N.FormattedMessage,{id:"edit_post.time_limit_button.for_n_seconds",defaultMessage:"For {n} seconds",values:{n:e.timeLimit}}))}_p.propTypes={timeLimit:k().number.isRequired,onClick:k().func.isRequired};const Sp=(0,a.connect)((function(e){const{PostEditTimeLimit:t}=(0,c.zj)(e);return{timeLimit:t?parseInt(t,10):mt.YM.UNSET_POST_EDIT_TIME_LIMIT}}))(_p),Cp=2147483647;function Ap(e){const{ServiceSettings:t}=e.config,s=(0,N.useIntl)(),[a,i]=(0,A.useState)(!1),[n,r]=(0,A.useState)(""),[o,l]=(0,A.useState)((null==t?void 0:t.PostEditTimeLimit)||mt.YM.UNSET_POST_EDIT_TIME_LIMIT),[d,c]=(0,A.useState)(o<0),m=e=>{let{currentTarget:t}=e;c(t.value===mt.YM.ALLOW_EDIT_POST_ALWAYS)};return T().createElement(hn.Modal,{dialogClassName:"a11y__modal admin-modal edit-post-time-limit-modal",show:e.show,role:"none","aria-labelledby":"editPostTimeModalLabel",onHide:e.onClose},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,{componentClass:"h1",id:"editPostTimeModalLabel"},T().createElement(N.FormattedMessage,{id:"edit_post.time_limit_modal.title",defaultMessage:"Configure Global Edit Post Time Limit"}))),T().createElement(hn.Modal.Body,null,T().createElement(N.FormattedMessage,{id:"editPost.timeLimitModal.description",defaultMessage:'Setting a time limit <b>applies to all users</b> who have the "Edit Post" permissions in any permission scheme.',values:{b:e=>T().createElement("b",null,e)}}),T().createElement("div",{className:"pt-3"},T().createElement("div",{className:"pt-3"},T().createElement("input",{id:"anytime",type:"radio",name:"limit",value:mt.YM.ALLOW_EDIT_POST_ALWAYS,checked:d,onChange:m}),T().createElement("label",{htmlFor:"anytime"},T().createElement(N.FormattedMessage,{id:"edit_post.time_limit_modal.option_label_anytime",defaultMessage:"Anytime"}))),T().createElement("div",{className:"pt-2"},T().createElement("input",{id:"timelimit",type:"radio",name:"limit",value:mt.YM.ALLOW_EDIT_POST_TIME_LIMIT,checked:!d,onChange:m}),T().createElement("label",{htmlFor:"timelimit"},T().createElement(N.FormattedMessage,{id:"edit_post.time_limit_modal.option_label_time_limit.preinput",defaultMessage:"Can edit for"})),T().createElement("input",{type:"number",className:"form-control inline",min:"0",step:"1",max:Cp,id:"editPostTimeLimit",readOnly:d,onChange:e=>{let{currentTarget:t}=e;return l(parseInt(t.value,10))},value:d?"":o}),T().createElement("label",{htmlFor:"timelimit"},T().createElement(N.FormattedMessage,{id:"edit_post.time_limit_modal.option_label_time_limit.postinput",defaultMessage:"seconds after posting"}))),T().createElement("div",{className:"pt-3 light"},T().createElement(N.FormattedMessage,{id:"edit_post.time_limit_modal.subscript",defaultMessage:"Set the length of time users have to edit their messages after posting."})),T().createElement("div",{className:"edit-post-time-limit-modal__error"},n))),T().createElement(hn.Modal.Footer,null,T().createElement("button",{type:"button",className:"btn btn-tertiary",onClick:e.onClose},T().createElement(N.FormattedMessage,{id:"confirm_modal.cancel",defaultMessage:"Cancel"})),T().createElement("button",{id:"linkModalCloseButton",type:"button",className:"btn btn-primary",onClick:async()=>{if(i(!0),r(""),isNaN(o)||o<0||o>Cp)return r(s.formatMessage({id:"edit_post.time_limit_modal.invalid_time_limit",defaultMessage:"Invalid time limit"})),i(!1),l(0),!1;const t=JSON.parse(JSON.stringify(e.config));t.ServiceSettings.PostEditTimeLimit=d?mt.YM.UNSET_POST_EDIT_TIME_LIMIT:o;const{error:a}=await e.actions.patchConfig(t);return a?(r(a.message),i(!1)):(i(!1),e.onClose()),!0},disabled:a},a?T().createElement(N.FormattedMessage,{id:"save_button.saving",defaultMessage:"Saving"}):T().createElement(N.FormattedMessage,{id:"edit_post.time_limit_modal.save_button",defaultMessage:"Save Edit Time"}))))}Ap.propTypes={show:k().bool.isRequired,onClose:k().func.isRequired,actions:k().shape({patchConfig:k().func.isRequired}).isRequired};const Tp=(0,a.connect)((function(e){return{config:(0,d.zj)(e)}}),(function(e){return{actions:(0,i.zH)({patchConfig:n.tn},e)}}))(Ap),Np=()=>T().createElement("svg",{width:"18px",height:"18px",viewBox:"0 0 18 18"},T().createElement("g",{id:"Developer-Export",stroke:"none",strokeWidth:"1",fillRule:"evenodd"},T().createElement("g",{transform:"translate(-298.000000, -1273.000000)",id:"All-Team-Members"},T().createElement("g",{transform:"translate(245.000000, 698.000000)"},T().createElement("g",{id:"Channel-Administrators",transform:"translate(0.000000, 106.000000)"},T().createElement("g",{id:"data-table/column-1",transform:"translate(11.000000, 86.000000)"},T().createElement("g",{id:"row-checkbox---@all-@channel-Mentions",transform:"translate(0.000000, 375.000000)"},T().createElement("g",{id:"Stacked-Group"},T().createElement("g",{id:"data-table/1st/row-checkbox-label-base",transform:"translate(25.000000, 5.000000)"},T().createElement("g",{id:"check-on-copy-11",transform:"translate(14.000000, 0.000000)"},T().createElement("path",{d:"M19,3 C20.1,3 21,3.9 21,5 L21,19 C21,20.1 20.1,21 19,21 L5,21 C3.9,21 3,20.1 3,19 L3,5 C3,3.9 3.9,3 5,3 L19,3 Z M7,11 L7,13 L17,13 L17,11 L7,11 Z",id:"checkbox---partial"}))))))))))),wp=(0,A.memo)(Np),Rp=e=>{let{value:t="",id:s=""}=e,a=null,i="";return"checked"===t?(a=T().createElement(Rc.A,null),i="checked"):"intermediate"===t&&(a=T().createElement(wp,null),i="intermediate"),T().createElement("div",{className:"permission-check "+i,"data-testid":s},a)};Rp.propTypes={value:k().string,id:k().string};const Op=Rp,Ip=(0,N.defineMessages)({all_users:{id:"admin.permissions.roles.all_users.name",defaultMessage:"All Members"},channel_admin:{id:"admin.permissions.roles.channel_admin.name",defaultMessage:"Channel Admin"},channel_user:{id:"admin.permissions.roles.channel_user.name",defaultMessage:"Channel User"},system_admin:{id:"admin.permissions.roles.system_admin.name",defaultMessage:"System Admin"},system_user:{id:"admin.permissions.roles.system_user.name",defaultMessage:"System User"},team_admin:{id:"admin.permissions.roles.team_admin.name",defaultMessage:"Team Admin"},team_user:{id:"admin.permissions.roles.team_user.name",defaultMessage:"Team User"}}),kp=e=>{let{id:t,selectRow:s,description:a,additionalValues:i,inherited:n}=e;const{formatMessage:r}=(0,N.useIntl)();let o="";if(n&&n.name){const e=r(Ip[n.name]);o=T().createElement("span",{className:"inherit-link-wrapper"},T().createElement(N.FormattedMessage,{id:"admin.permissions.inherited_from",defaultMessage:"Inherited from <link>{name}</link>.",values:{name:e,link:e=>T().createElement("a",null,e)}}))}else o=a;let l=!0;return!n&&i&&(l=!1),T().createElement(ys.A,{title:o,disabled:!l},T().createElement("span",{className:"permission-description",onClick:e=>{var a;const i=e.target.parentElement,n="inherit-link-wrapper"===(null==i||null===(a=i.parentElement)||void 0===a?void 0:a.className);"permission-description"===(null==i?void 0:i.className)||n?n&&(s(t),e.stopPropagation()):e.stopPropagation()}},o))},Pp={assign_system_admin_role:(0,N.defineMessages)({name:{id:"admin.permissions.permission.assign_system_admin_role.name",defaultMessage:"Assign system admin role"},description:{id:"admin.permissions.permission.assign_system_admin_role.description",defaultMessage:"Assign system admin role"}}),convert_public_channel_to_private:(0,N.defineMessages)({name:{id:"admin.permissions.permission.convert_public_channel_to_private.name",defaultMessage:"Convert to private"},description:{id:"admin.permissions.permission.convert_public_channel_to_private.description",defaultMessage:"Convert public channels to private"}}),convert_private_channel_to_public:(0,N.defineMessages)({name:{id:"admin.permissions.permission.convert_private_channel_to_public.name",defaultMessage:"Convert to public"},description:{id:"admin.permissions.permission.convert_private_channel_to_public.description",defaultMessage:"Convert private channels to public"}}),create_direct_channel:(0,N.defineMessages)({name:{id:"admin.permissions.permission.create_direct_channel.name",defaultMessage:"Create direct channel"},description:{id:"admin.permissions.permission.create_direct_channel.description",defaultMessage:"Create direct channel"}}),create_group_channel:(0,N.defineMessages)({name:{id:"admin.permissions.permission.create_group_channel.name",defaultMessage:"Create group channel"},description:{id:"admin.permissions.permission.create_group_channel.description",defaultMessage:"Create group channel"}}),create_post:(0,N.defineMessages)({name:{id:"admin.permissions.permission.create_post.name",defaultMessage:"Create Posts"},description:{id:"admin.permissions.permission.create_post.description",defaultMessage:"Allow users to create posts."}}),create_private_channel:(0,N.defineMessages)({name:{id:"admin.permissions.permission.create_private_channel.name",defaultMessage:"Create Channels"},description:{id:"admin.permissions.permission.create_private_channel.description",defaultMessage:"Create new private channels."}}),create_public_channel:(0,N.defineMessages)({name:{id:"admin.permissions.permission.create_public_channel.name",defaultMessage:"Create Channels"},description:{id:"admin.permissions.permission.create_public_channel.description",defaultMessage:"Create new public channels."}}),create_team:(0,N.defineMessages)({name:{id:"admin.permissions.permission.create_team.name",defaultMessage:"Create Teams"},description:{id:"admin.permissions.permission.create_team.description",defaultMessage:"Create new teams."}}),create_user_access_token:(0,N.defineMessages)({name:{id:"admin.permissions.permission.create_user_access_token.name",defaultMessage:"Create user access token"},description:{id:"admin.permissions.permission.create_user_access_token.description",defaultMessage:"Create user access token"}}),delete_others_posts:(0,N.defineMessages)({name:{id:"admin.permissions.permission.delete_others_posts.name",defaultMessage:"Delete Others' Posts"},description:{id:"admin.permissions.permission.delete_others_posts.description",defaultMessage:"Posts made by other users can be deleted."}}),delete_post:(0,N.defineMessages)({name:{id:"admin.permissions.permission.delete_post.name",defaultMessage:"Delete Own Posts"},description:{id:"admin.permissions.permission.delete_post.description",defaultMessage:"Author's own posts can be deleted."}}),delete_private_channel:(0,N.defineMessages)({name:{id:"admin.permissions.permission.delete_private_channel.name",defaultMessage:"Archive Channels"},description:{id:"admin.permissions.permission.delete_private_channel.description",defaultMessage:"Archive private channels."}}),delete_public_channel:(0,N.defineMessages)({name:{id:"admin.permissions.permission.delete_public_channel.name",defaultMessage:"Archive Channels"},description:{id:"admin.permissions.permission.delete_public_channel.description",defaultMessage:"Archive public channels."}}),edit_other_users:(0,N.defineMessages)({name:{id:"admin.permissions.permission.edit_other_users.name",defaultMessage:"Edit other users"},description:{id:"admin.permissions.permission.edit_other_users.description",defaultMessage:"Edit other users"}}),edit_post:(0,N.defineMessages)({name:{id:"admin.permissions.permission.edit_post.name",defaultMessage:"Edit Own Posts"},description:{id:"admin.permissions.permission.edit_post.description",defaultMessage:"{editTimeLimitButton} after posting, allow users to edit their own posts."}}),import_team:(0,N.defineMessages)({name:{id:"admin.permissions.permission.import_team.name",defaultMessage:"Import team"},description:{id:"admin.permissions.permission.import_team.description",defaultMessage:"Import team"}}),list_team_channels:(0,N.defineMessages)({name:{id:"admin.permissions.permission.list_team_channels.name",defaultMessage:"List team channels"},description:{id:"admin.permissions.permission.list_team_channels.description",defaultMessage:"List team channels"}}),list_users_without_team:(0,N.defineMessages)({name:{id:"admin.permissions.permission.list_users_without_team.name",defaultMessage:"List users without team"},description:{id:"admin.permissions.permission.list_users_without_team.description",defaultMessage:"List users without team"}}),manage_channel_roles:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_channel_roles.name",defaultMessage:"Manage channel roles"},description:{id:"admin.permissions.permission.manage_channel_roles.description",defaultMessage:"Manage channel roles"}}),create_emojis:(0,N.defineMessages)({name:{id:"admin.permissions.permission.create_emojis.name",defaultMessage:"Create Custom Emoji"},description:{id:"admin.permissions.permission.create_emojis.description",defaultMessage:"Allow users to create custom emoji."}}),delete_emojis:(0,N.defineMessages)({name:{id:"admin.permissions.permission.delete_emojis.name",defaultMessage:"Delete Own Custom Emoji"},description:{id:"admin.permissions.permission.delete_emojis.description",defaultMessage:"Allow users to delete custom emoji that they created."}}),delete_others_emojis:(0,N.defineMessages)({name:{id:"admin.permissions.permission.delete_others_emojis.name",defaultMessage:"Delete Others' Custom Emoji"},description:{id:"admin.permissions.permission.delete_others_emojis.description",defaultMessage:"Allow users to delete custom emoji that were created by other users."}}),manage_jobs:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_jobs.name",defaultMessage:"Manage jobs"},description:{id:"admin.permissions.permission.manage_jobs.description",defaultMessage:"Manage jobs"}}),manage_oauth:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_oauth.name",defaultMessage:"Manage OAuth Applications"},description:{id:"admin.permissions.permission.manage_oauth.description",defaultMessage:"Create, edit and delete OAuth 2.0 application tokens."}}),manage_private_channel_properties:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_private_channel_properties.name",defaultMessage:"Manage Channel Settings"},description:{id:"admin.permissions.permission.manage_private_channel_properties.description",defaultMessage:"Update private channel names, headers and purposes."}}),manage_public_channel_properties:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_public_channel_properties.name",defaultMessage:"Manage Channel Settings"},description:{id:"admin.permissions.permission.manage_public_channel_properties.description",defaultMessage:"Update public channel names, headers and purposes."}}),manage_roles:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_roles.name",defaultMessage:"Manage roles"},description:{id:"admin.permissions.permission.manage_roles.description",defaultMessage:"Manage roles"}}),manage_slash_commands:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_slash_commands.name",defaultMessage:"Manage Slash Commands"},description:{id:"admin.permissions.permission.manage_slash_commands.description",defaultMessage:"Create, edit and delete custom slash commands."}}),manage_system:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_system.name",defaultMessage:"Manage system"},description:{id:"admin.permissions.permission.manage_system.description",defaultMessage:"Manage system"}}),manage_team:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_team.name",defaultMessage:"Manage team"},description:{id:"admin.permissions.permission.manage_team.description",defaultMessage:"Manage team"}}),manage_team_roles:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_team_roles.name",defaultMessage:"Manage team roles"},description:{id:"admin.permissions.permission.manage_team_roles.description",defaultMessage:"Manage team roles"}}),manage_incoming_webhooks:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_incoming_webhooks.name",defaultMessage:"Manage Incoming Webhooks"},description:{id:"admin.permissions.permission.manage_incoming_webhooks.description",defaultMessage:"Create, edit, and delete incoming webhooks."}}),manage_outgoing_webhooks:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_outgoing_webhooks.name",defaultMessage:"Manage Outgoing Webhooks"},description:{id:"admin.permissions.permission.manage_outgoing_webhooks.description",defaultMessage:"Create, edit, and delete outgoing webhooks."}}),permanent_delete_user:(0,N.defineMessages)({name:{id:"admin.permissions.permission.permanent_delete_user.name",defaultMessage:"Permanent delete user"},description:{id:"admin.permissions.permission.permanent_delete_user.description",defaultMessage:"Permanent delete user"}}),read_channel:(0,N.defineMessages)({name:{id:"admin.permissions.permission.read_channel.name",defaultMessage:"Read channel"},description:{id:"admin.permissions.permission.read_channel.description",defaultMessage:"Read channel"}}),read_user_access_token:(0,N.defineMessages)({name:{id:"admin.permissions.permission.read_user_access_token.name",defaultMessage:"Read user access token"},description:{id:"admin.permissions.permission.read_user_access_token.description",defaultMessage:"Read user access token"}}),remove_user_from_team:(0,N.defineMessages)({name:{id:"admin.permissions.permission.remove_user_from_team.name",defaultMessage:"Remove user from team"},description:{id:"admin.permissions.permission.remove_user_from_team.description",defaultMessage:"Remove user from team"}}),revoke_user_access_token:(0,N.defineMessages)({name:{id:"admin.permissions.permission.revoke_user_access_token.name",defaultMessage:"Revoke user access token"},description:{id:"admin.permissions.permission.revoke_user_access_token.description",defaultMessage:"Revoke user access token"}}),upload_file:(0,N.defineMessages)({name:{id:"admin.permissions.permission.upload_file.name",defaultMessage:"Upload file"},description:{id:"admin.permissions.permission.upload_file.description",defaultMessage:"Upload file"}}),use_channel_mentions:(0,N.defineMessages)({name:{id:"admin.permissions.permission.use_channel_mentions.name",defaultMessage:"Channel Mentions"},description:{id:"admin.permissions.permission.use_channel_mentions.description",defaultMessage:"Notify channel members with @all, @channel and @here"}}),use_group_mentions:(0,N.defineMessages)({name:{id:"admin.permissions.permission.use_group_mentions.name",defaultMessage:"Group Mentions"},description:{id:"admin.permissions.permission.use_group_mentions.description",defaultMessage:"Notify group members with a group mention"}}),view_team:(0,N.defineMessages)({name:{id:"admin.permissions.permission.view_team.name",defaultMessage:"View team"},description:{id:"admin.permissions.permission.view_team.description",defaultMessage:"View team"}}),edit_others_posts:(0,N.defineMessages)({name:{id:"admin.permissions.permission.edit_others_posts.name",defaultMessage:"Edit Others' Posts"},description:{id:"admin.permissions.permission.edit_others_posts.description",defaultMessage:"Allow users to edit others' posts."}}),invite_guest:(0,N.defineMessages)({name:{id:"admin.permissions.permission.invite_guest.name",defaultMessage:"Invite guests"},description:{id:"admin.permissions.permission.invite_guest.description",defaultMessage:"Invite guests to channels and send guest email invites."}}),manage_shared_channels:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_shared_channels.name",defaultMessage:"Manage Shared Channels"},description:{id:"admin.permissions.permission.manage_shared_channels.description",defaultMessage:"Share, unshare and invite another instance to sync with a shared channel"}}),manage_secure_connections:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_secure_connections.name",defaultMessage:"Manage Secure Connections"},description:{id:"admin.permissions.permission.manage_secure_connections.description",defaultMessage:"Create, remove and view secure connections for shared channels"}}),playbook_public_create:(0,N.defineMessages)({name:{id:"admin.permissions.permission.playbook_public_create.name",defaultMessage:"Create Public Playbook"},description:{id:"admin.permissions.permission.playbook_public_create.description",defaultMessage:"Create new public playbooks."}}),playbook_public_manage_properties:(0,N.defineMessages)({name:{id:"admin.permissions.permission.playbook_public_manage_properties.name",defaultMessage:"Manage Playbook Configurations"},description:{id:"admin.permissions.permission.playbook_public_manage_properties.description",defaultMessage:"Prescribe checklists, actions, and templates."}}),playbook_public_manage_members:(0,N.defineMessages)({name:{id:"admin.permissions.permission.playbook_public_manage_members.name",defaultMessage:"Manage Playbook Members"},description:{id:"admin.permissions.permission.playbook_public_manage_members.description",defaultMessage:"Add and remove public playbook members (including playbook admins)."}}),playbook_public_make_private:(0,N.defineMessages)({name:{id:"admin.permissions.permission.playbook_public_make_private.name",defaultMessage:"Convert Playbooks"},description:{id:"admin.permissions.permission.playbook_public_make_private.description",defaultMessage:"Convert public playbooks to private."}}),playbook_private_create:(0,N.defineMessages)({name:{id:"admin.permissions.permission.playbook_private_create.name",defaultMessage:"Create Private Playbook"},description:{id:"admin.permissions.permission.playbook_private_create.description",defaultMessage:"Create new private playbooks."}}),playbook_private_manage_properties:(0,N.defineMessages)({name:{id:"admin.permissions.permission.playbook_private_manage_properties.name",defaultMessage:"Manage Playbook Configurations"},description:{id:"admin.permissions.permission.playbook_private_manage_properties.description",defaultMessage:"Prescribe checklists, actions, and templates."}}),playbook_private_manage_members:(0,N.defineMessages)({name:{id:"admin.permissions.permission.playbook_private_manage_members.name",defaultMessage:"Manage Playbook Members"},description:{id:"admin.permissions.permission.playbook_private_manage_members.description",defaultMessage:"Add and remove private playbook members (including playbook admins)."}}),playbook_private_make_public:(0,N.defineMessages)({name:{id:"admin.permissions.permission.playbook_private_make_public.name",defaultMessage:"Convert Playbooks"},description:{id:"admin.permissions.permission.playbook_private_make_public.description",defaultMessage:"Convert private playbooks to public."}}),run_create:(0,N.defineMessages)({name:{id:"admin.permissions.permission.run_create.name",defaultMessage:"Create Runs"},description:{id:"admin.permissions.permission.run_create.description",defaultMessage:"Run playbooks."}}),create_custom_group:(0,N.defineMessages)({name:{id:"admin.permissions.permission.create_custom_group.name",defaultMessage:"Create"},description:{id:"admin.permissions.permission.create_custom_group.description",defaultMessage:"Create custom groups."}}),manage_custom_group_members:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_custom_group_members.name",defaultMessage:"Manage members"},description:{id:"admin.permissions.permission.manage_custom_group_members.description",defaultMessage:"Add and remove custom group members."}}),delete_custom_group:(0,N.defineMessages)({name:{id:"admin.permissions.permission.delete_custom_group.name",defaultMessage:"Delete"},description:{id:"admin.permissions.permission.delete_custom_group.description",defaultMessage:"Delete custom groups."}}),restore_custom_group:(0,N.defineMessages)({name:{id:"admin.permissions.permission.restore_custom_group.name",defaultMessage:"Restore"},description:{id:"admin.permissions.permission.restore_custom_group.description",defaultMessage:"Restore archived user groups."}}),edit_custom_group:(0,N.defineMessages)({name:{id:"admin.permissions.permission.edit_custom_group.name",defaultMessage:"Edit"},description:{id:"admin.permissions.permission.edit_custom_group.description",defaultMessage:"Rename custom groups."}}),manage_outgoing_oauth_connections:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_outgoing_oauth_connections.name",defaultMessage:"Manage Outgoing OAuth Credentials"},description:{id:"admin.permissions.permission.manage_outgoing_oauth_connections.description",defaultMessage:"Create, edit, and delete outgoing OAuth credentials."}}),manage_public_channel_banner:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_public_channel_banner.name",defaultMessage:"Manage Channel Banner"},description:{id:"admin.permissions.permission.manage_public_channel_banner.description",defaultMessage:"Enable, disable and edit channel banner."}}),manage_private_channel_banner:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_private_channel_banner.name",defaultMessage:"Manage Channel Banner"},description:{id:"admin.permissions.permission.manage_private_channel_banner.description",defaultMessage:"Enable, disable and edit channel banner."}}),manage_channel_access_rules:(0,N.defineMessages)({name:{id:"admin.permissions.permission.manage_channel_access_rules.name",defaultMessage:"Manage Channel Access Control Policy"},description:{id:"admin.permissions.permission.manage_channel_access_rules.description",defaultMessage:"Configure attribute-based access control policy for channels."}})},xp=e=>{let{additionalValues:t,id:s,onChange:a,selectRow:i,uniqId:n,value:r,inherited:o,readOnly:l,selected:d}=e;const c=(0,A.useCallback)((()=>{l||a(s)}),[l,a,s]),m=Pp[s]?T().createElement(N.FormattedMessage,Pp[s].name):s;let u="";return Pp[s]&&(u=T().createElement(N.FormattedMessage,{id:Pp[s].description.id,values:t})),T().createElement("div",{className:oe()("permission-row",{"read-only":l,selected:d===s}),onClick:c,id:n},T().createElement(Op,{value:r,id:"".concat(n,"-checkbox")}),T().createElement("span",{className:"permission-name"},m),T().createElement(kp,{inherited:o,id:s,selectRow:i,description:u,additionalValues:t}))};xp.propTypes={id:k().string.isRequired,uniqId:k().string.isRequired,readOnly:k().bool,selected:k().string,selectRow:k().func.isRequired,value:k().string.isRequired,onChange:k().func.isRequired,additionalValues:k().objectOf(k().any).isRequired};const Dp=xp,Lp={delete_posts:(0,N.defineMessages)({name:{id:"admin.permissions.group.delete_posts.name",defaultMessage:"Delete Posts"},description:{id:"admin.permissions.group.delete_posts.description",defaultMessage:"Delete own and others' posts."}}),integrations:(0,N.defineMessages)({name:{id:"admin.permissions.group.integrations.name",defaultMessage:"Integrations & Customizations"},description:{id:"admin.permissions.group.integrations.description",defaultMessage:"Manage OAuth 2.0, slash commands, webhooks and emoji."}}),posts:(0,N.defineMessages)({name:{id:"admin.permissions.group.posts.name",defaultMessage:"Manage Posts"},description:{id:"admin.permissions.group.posts.description",defaultMessage:"Write, edit and delete posts."}}),create_post:(0,N.defineMessages)({name:{id:"admin.permissions.permission.create_post.name",defaultMessage:"Create Posts"},description:{id:"admin.permissions.permission.create_post.description",defaultMessage:"Allow users to create posts."}}),private_channel:(0,N.defineMessages)({name:{id:"admin.permissions.group.private_channel.name",defaultMessage:"Manage Private Channels"},description:{id:"admin.permissions.group.private_channel.description",defaultMessage:"Create and archive channels, manage settings and members."}}),public_channel:(0,N.defineMessages)({name:{id:"admin.permissions.group.public_channel.name",defaultMessage:"Manage Public Channels"},description:{id:"admin.permissions.group.public_channel.description",defaultMessage:"Join, create and archive channels, manage settings and members."}}),reactions:(0,N.defineMessages)({name:{id:"admin.permissions.group.reactions.name",defaultMessage:"Post Reactions"},description:{id:"admin.permissions.group.reactions.description",defaultMessage:"Add and delete reactions on posts."}}),send_invites:(0,N.defineMessages)({name:{id:"admin.permissions.group.send_invites.name",defaultMessage:"Add Team Members"},description:{id:"admin.permissions.group.send_invites.description",defaultMessage:"Add team members, send email invites and share team invite link."}}),teams:(0,N.defineMessages)({name:{id:"admin.permissions.group.teams.name",defaultMessage:"Teams"},description:{id:"admin.permissions.group.teams.description",defaultMessage:"Create teams and manage members."}}),edit_posts:(0,N.defineMessages)({name:{id:"admin.permissions.group.edit_posts.name",defaultMessage:"Edit Posts"},description:{id:"admin.permissions.group.edit_posts.description",defaultMessage:"Edit own and others' posts."}}),teams_team_scope:(0,N.defineMessages)({name:{id:"admin.permissions.group.teams_team_scope.name",defaultMessage:"Teams"},description:{id:"admin.permissions.group.teams_team_scope.description",defaultMessage:"Manage team members."}}),guest_reactions:(0,N.defineMessages)({name:{id:"admin.permissions.group.guest_reactions.name",defaultMessage:"Post Reactions"},description:{id:"admin.permissions.group.guest_reactions.description",defaultMessage:"Add and delete reactions on posts."}}),guest_create_post:(0,N.defineMessages)({name:{id:"admin.permissions.group.guest_create_post.name",defaultMessage:"Create Posts"},description:{id:"admin.permissions.group.guest_create_post.description",defaultMessage:"Allow users to create posts."}}),guest_create_private_channel:(0,N.defineMessages)({name:{id:"admin.permissions.group.guest_create_private_channel.name",defaultMessage:"Create Channels"},description:{id:"admin.permissions.group.guest_create_private_channel.description",defaultMessage:"Create new private channels."}}),guest_delete_post:(0,N.defineMessages)({name:{id:"admin.permissions.group.guest_delete_post.name",defaultMessage:"Delete Own Posts"},description:{id:"admin.permissions.group.guest_delete_post.description",defaultMessage:"Author's own posts can be deleted."}}),guest_edit_post:(0,N.defineMessages)({name:{id:"admin.permissions.group.guest_edit_post.name",defaultMessage:"Edit Own Posts"},description:{id:"admin.permissions.group.guest_edit_post.description",defaultMessage:"{editTimeLimitButton} after posting, allow users to edit their own posts."}}),guest_use_channel_mentions:(0,N.defineMessages)({name:{id:"admin.permissions.group.guest_use_channel_mentions.name",defaultMessage:"Channel Mentions"},description:{id:"admin.permissions.group.guest_use_channel_mentions.description",defaultMessage:"Notify channel members with @all, @channel and @here"}}),guest_use_group_mentions:(0,N.defineMessages)({name:{id:"admin.permissions.group.guest_use_group_mentions.name",defaultMessage:"Group Mentions"},description:{id:"admin.permissions.group.guest_use_group_mentions.description",defaultMessage:"Notify group members with a group mention"}}),manage_private_channel_members_and_read_groups:(0,N.defineMessages)({name:{id:"admin.permissions.group.manage_private_channel_members_and_read_groups.name",defaultMessage:"Manage Channel Members"},description:{id:"admin.permissions.group.manage_private_channel_members_and_read_groups.description",defaultMessage:"Add and remove private channel members (including channel admins)."}}),manage_public_channel_members_and_read_groups:(0,N.defineMessages)({name:{id:"admin.permissions.group.manage_public_channel_members_and_read_groups.name",defaultMessage:"Manage Channel Members"},description:{id:"admin.permissions.group.manage_public_channel_members_and_read_groups.description",defaultMessage:"Add and remove public channel members (including channel admins)."}}),convert_public_channel_to_private:(0,N.defineMessages)({name:{id:"admin.permissions.group.convert_public_channel_to_private.name",defaultMessage:"Convert to private"},description:{id:"admin.permissions.group.convert_public_channel_to_private.description",defaultMessage:"Convert public channels to private"}}),convert_private_channel_to_public:(0,N.defineMessages)({name:{id:"admin.permissions.group.convert_private_channel_to_public.name",defaultMessage:"Convert to public"},description:{id:"admin.permissions.group.convert_private_channel_to_public.description",defaultMessage:"Convert private channels to public"}}),manage_shared_channels:(0,N.defineMessages)({name:{id:"admin.permissions.group.manage_shared_channels.name",defaultMessage:"Shared Channels"},description:{id:"admin.permissions.group.manage_shared_channels.description",defaultMessage:"Manage Shared Channels"}}),playbook_public:(0,N.defineMessages)({name:{id:"admin.permissions.group.playbook_public.name",defaultMessage:"Manage Public Playbooks"},description:{id:"admin.permissions.group.playbook_public.description",defaultMessage:"Manage public playbooks."}}),playbook_private:(0,N.defineMessages)({name:{id:"admin.permissions.group.playbook_private.name",defaultMessage:"Manage Private Playbooks"},description:{id:"admin.permissions.group.playbook_private.description",defaultMessage:"Manage private playbooks."}}),runs:(0,N.defineMessages)({name:{id:"admin.permissions.group.runs.name",defaultMessage:"Manage Runs"},description:{id:"admin.permissions.group.runs.description",defaultMessage:"Manage runs."}}),custom_groups:(0,N.defineMessages)({name:{id:"admin.permissions.group.custom_groups.name",defaultMessage:"Custom Groups"},description:{id:"admin.permissions.group.custom_groups.description",defaultMessage:"Create, edit, delete and manage the members of custom groups."}}),manage_public_channel_bookmarks:(0,N.defineMessages)({name:{id:"admin.permissions.group.manage_public_channel_bookmarks.name",defaultMessage:"Manage Bookmarks"},description:{id:"admin.permissions.group.manage_public_channel_bookmarks.description",defaultMessage:"Add, edit, delete and sort bookmarks"}}),manage_private_channel_bookmarks:(0,N.defineMessages)({name:{id:"admin.permissions.group.manage_private_channel_bookmarks.name",defaultMessage:"Manage Bookmarks"},description:{id:"admin.permissions.group.manage_private_channel_bookmarks.description",defaultMessage:"Add, edit, delete and sort bookmarks"}})};function Fp(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Up=e=>{let t=[];for(const s of e)"string"==typeof s?t.push(s):t=t.concat(Up(s.permissions));return t};class Bp extends T().PureComponent{constructor(e){super(e),Fp(this,"toggleExpanded",(e=>{e.stopPropagation(),this.setState({expanded:!this.state.expanded})})),Fp(this,"toggleSelectRow",(e=>{this.props.readOnly||this.props.onChange([e])})),Fp(this,"toggleSelectSubGroup",(e=>{this.props.readOnly||this.props.onChange(e)})),Fp(this,"toggleSelectGroup",(()=>{const{readOnly:e,permissions:t,role:s,onChange:a}=this.props;if(!e&&s)if("checked"===this.getStatus(t)){const e=[];for(const s of Up(t))this.fromParent(s)||e.push(s);this.setState({expanded:!0}),a(e)}else if(""===this.getStatus(t)){const e=[];let s=!0;if(0===this.state.prevPermissions.length)for(const a of Up(t))this.fromParent(a)||(e.push(a),s=!1);else for(const s of Up(t))-1===this.state.prevPermissions.indexOf(s)||this.fromParent(s)||e.push(s);a(e),this.setState({prevPermissions:[],expanded:s})}else{const e=[];for(const a of Up(t)){var i;-1!==(null===(i=s.permissions)||void 0===i?void 0:i.indexOf(a))||this.fromParent(a)||e.push(a)}this.setState({prevPermissions:s.permissions||[],expanded:!1}),a(e)}})),Fp(this,"isInScope",(e=>!("channel_scope"===this.props.scope&&"channel_scope"!==mt.PZ[e]||"team_scope"===this.props.scope&&"system_scope"===mt.PZ[e]))),Fp(this,"renderPermission",((e,t)=>{var s,a;if(!this.isInScope(e))return null;const i=this.fromParent(e),n=i||-1!==(null===(s=this.props.role)||void 0===s||null===(a=s.permissions)||void 0===a?void 0:a.indexOf(e)),r=i?this.props.parentRole:void 0;return T().createElement(Dp,{key:e,id:e,uniqId:this.props.uniqId+"-"+e,selected:this.props.selected,selectRow:this.props.selectRow,readOnly:this.props.readOnly||i,inherited:r,value:n?"checked":"",onChange:this.toggleSelectRow,additionalValues:t})})),Fp(this,"renderGroup",(e=>T().createElement(Bp,{key:e.id,id:e.id,uniqId:this.props.uniqId+"-"+e.id,selected:this.props.selected,selectRow:this.props.selectRow,readOnly:this.props.readOnly,permissions:e.permissions,additionalValues:this.props.additionalValues,role:this.props.role,parentRole:this.props.parentRole,scope:this.props.scope,onChange:this.toggleSelectSubGroup,combined:e.combined,root:!1}))),Fp(this,"fromParent",(e=>{var t;return this.props.parentRole&&-1!==(null===(t=this.props.parentRole.permissions)||void 0===t?void 0:t.indexOf(e))})),Fp(this,"getStatus",(e=>{let t=!1,s=!1;for(const o of e)if("string"==typeof o){var a,i,n,r;if(!this.isInScope(o))continue;t=t||this.fromParent(o)||-1!==(null===(a=this.props.role)||void 0===a||null===(i=a.permissions)||void 0===i?void 0:i.indexOf(o)),s=s||!this.fromParent(o)&&-1===(null===(n=this.props.role)||void 0===n||null===(r=n.permissions)||void 0===r?void 0:r.indexOf(o))}else{const e=this.getStatus(o.permissions);if("intermediate"===e)return"intermediate";"checked"===e&&(t=!0),""===e&&(s=!0)}return t&&s?"intermediate":t&&!s?"checked":""})),Fp(this,"hasPermissionsOnScope",(()=>Up(this.props.permissions).some((e=>this.isInScope(e))))),Fp(this,"allPermissionsFromParent",(e=>{for(const t of e)if("string"==typeof t){if(this.isInScope(t)&&!this.fromParent(t))return!1}else if(!this.allPermissionsFromParent(t.permissions))return!1;return!0})),Fp(this,"render",(()=>{const{id:e,uniqId:t,permissions:s,readOnly:a,combined:i,root:n,selected:r,additionalValues:o}=this.props;if(!this.hasPermissionsOnScope())return null;const l=s.map((e=>{if("string"==typeof e){const t=o&&o[e]?o[e]:{};return this.renderPermission(e,t)}return this.renderGroup(e)}));if(n)return T().createElement("div",{className:"permission-group-permissions "+(this.state.expanded?"open":"")},l);let d;this.allPermissionsFromParent(this.props.permissions)&&this.props.combined&&(d=this.props.parentRole);let c="";r===e&&(c+=" selected"),(a||this.allPermissionsFromParent(this.props.permissions))&&(c+=" read-only"),i&&(c+=" combined");const m=null!=o&&o[e]?o[e]:void 0,u=Lp[e]?T().createElement(N.FormattedMessage,Lp[e].name):e;let p="";return Lp[e]&&(p=T().createElement(N.FormattedMessage,{id:Lp[e].description.id,defaultMessage:Lp[e].description.defaultMessage,values:m})),T().createElement("div",{className:"permission-group"},!n&&T().createElement("div",{className:"permission-group-row "+c,onClick:this.toggleSelectGroup,id:t},!i&&T().createElement("div",{className:"fa fa-caret-right permission-arrow "+(this.state.expanded?"open":""),onClick:this.toggleExpanded}),T().createElement(Op,{value:this.getStatus(this.props.permissions),id:"".concat(t,"-checkbox")}),T().createElement("span",{className:"permission-name"},u),T().createElement(kp,{additionalValues:m,inherited:d,id:e,selectRow:this.props.selectRow,description:p})),!i&&T().createElement("div",{className:"permission-group-permissions "+(this.state.expanded?"open":"")},l))})),this.state={expanded:!0,prevPermissions:[],selected:e.selected}}static getDerivedStateFromProps(e,t){return e.selected!==t.selected?-1!==Up(e.permissions).indexOf(e.selected?e.selected:"")?{expanded:!0,selected:e.selected}:{selected:e.selected}:null}}const jp=e=>{let{license:t,onToggle:s,readOnly:a,scope:i,selectRow:n,parentRole:r,selected:o,role:l={permissions:[]}}=e;const[d,c]=T().useState(!1),m=(0,A.useMemo)((()=>{const e=[y.A.CREATE_PRIVATE_CHANNEL,y.A.EDIT_POST,y.A.DELETE_POST,{id:"guest_"+y.A.CREATE_POST,combined:!0,permissions:[y.A.CREATE_POST,y.A.UPLOAD_FILE]},{id:"guest_reactions",combined:!0,permissions:[y.A.ADD_REACTION,y.A.REMOVE_REACTION]},y.A.USE_CHANNEL_MENTIONS];return t&&"true"===t.IsLicensed&&"true"===t.LDAPGroups&&e.push(y.A.USE_GROUP_MENTIONS),e.map((e=>"string"==typeof e?{id:"guest_".concat(e),combined:!0,permissions:[e]}:e))}),[t]),u=(0,A.useCallback)((()=>{c(!0)}),[]),p=(0,A.useCallback)((()=>{c(!1)}),[]),g=(0,A.useCallback)((e=>{a||s(l.name,e)}),[s,a,l.name]),h=(0,A.useMemo)((()=>({guest_edit_post:{editTimeLimitButton:T().createElement(Sp,{onClick:u,isDisabled:a})}})),[u,a]);return T().createElement("div",{className:"permissions-tree guest"},T().createElement("div",{className:"permissions-tree--header"},T().createElement("div",{className:"permission-name"},T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionsTree.permission",defaultMessage:"Permission"})),T().createElement("div",{className:"permission-description"},T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionsTree.description",defaultMessage:"Description"}))),T().createElement("div",{className:"permissions-tree--body"},T().createElement(Bp,{key:"all",id:"all",uniqId:l.name,selected:o,selectRow:n,readOnly:a,permissions:m,additionalValues:h,role:l,parentRole:r,scope:i,combined:!1,onChange:g,root:!0})),T().createElement(Tp,{onClose:p,show:d}))};jp.propTypes={onToggle:k().func.isRequired,readOnly:k().bool.isRequired,scope:k().string.isRequired,selectRow:k().func.isRequired,selected:k().string};const Hp=jp,Gp=[y.A.CREATE_PRIVATE_CHANNEL,y.A.EDIT_POST,y.A.DELETE_POST,y.A.ADD_REACTION,y.A.REMOVE_REACTION,y.A.READ_CHANNEL,y.A.UPLOAD_FILE,y.A.USE_CHANNEL_MENTIONS,y.A.USE_GROUP_MENTIONS,y.A.CREATE_POST],qp=(0,a.connect)((function(e){return{license:(0,c.Ay)(e)}}))(Hp);function Vp(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class zp extends T().PureComponent{constructor(e){super(e),Vp(this,"updateGroups",(()=>{const{config:e,scope:t,license:s,role:a}=this.props,i=this.groups[0],n=this.groups[1],r=this.groups[2],o=this.groups[7],l=this.groups[8],d=this.groups[9],c=this.groups[10];"true"!==e.EnableIncomingWebhooks||l.permissions.includes(y.A.MANAGE_INCOMING_WEBHOOKS)||l.permissions.push(y.A.MANAGE_INCOMING_WEBHOOKS),"true"!==e.EnableOutgoingWebhooks||l.permissions.includes(y.A.MANAGE_OUTGOING_WEBHOOKS)||l.permissions.push(y.A.MANAGE_OUTGOING_WEBHOOKS),"true"!==e.EnableOAuthServiceProvider||l.permissions.includes(y.A.MANAGE_OAUTH)||l.permissions.push(y.A.MANAGE_OAUTH),"true"!==e.EnableOutgoingOAuthConnections||l.permissions.includes(y.A.MANAGE_OUTGOING_OAUTH_CONNECTIONS)||l.permissions.push(y.A.MANAGE_OUTGOING_OAUTH_CONNECTIONS),"true"!==e.EnableCommands||l.permissions.includes(y.A.MANAGE_SLASH_COMMANDS)||l.permissions.push(y.A.MANAGE_SLASH_COMMANDS),"true"!==e.EnableCustomEmoji||l.permissions.includes(y.A.CREATE_EMOJIS)||l.permissions.push(y.A.CREATE_EMOJIS),"true"!==e.EnableCustomEmoji||l.permissions.includes(y.A.DELETE_EMOJIS)||l.permissions.push(y.A.DELETE_EMOJIS),"true"!==e.EnableCustomEmoji||l.permissions.includes(y.A.DELETE_OTHERS_EMOJIS)||l.permissions.push(y.A.DELETE_OTHERS_EMOJIS),"true"!==e.EnableGuestAccounts||i.permissions.includes(y.A.INVITE_GUEST)||i.permissions.push(y.A.INVITE_GUEST),"team_scope"===t&&"teams_team_scope"!==this.groups[0].id&&(this.groups[0].id="teams_team_scope"),"true"!==(null==s?void 0:s.IsLicensed)||"true"!==(null==s?void 0:s.LDAPGroups)&&"true"!==e.EnableCustomGroups||o.permissions.includes(y.A.USE_GROUP_MENTIONS)||o.permissions.push(y.A.USE_GROUP_MENTIONS),o.permissions.push({id:y.A.CREATE_POST,combined:!0,permissions:[y.A.CREATE_POST,y.A.UPLOAD_FILE]}),"true"===e.ExperimentalSharedChannels&&(d.permissions.push(y.A.MANAGE_SHARED_CHANNELS),d.permissions.push(y.A.MANAGE_SECURE_CONNECTIONS)),this.props.customGroupsEnabled||null==c||c.permissions.pop(),[bp.A.TEAM_ADMIN_ROLE,bp.A.SYSTEM_ADMIN_ROLE].includes(a.name||"")&&r.permissions.push(y.A.CONVERT_PRIVATE_CHANNEL_TO_PUBLIC),"true"===(null==s?void 0:s.IsLicensed)&&(n.permissions.push({id:"manage_public_channel_bookmarks",combined:!0,permissions:[y.A.ADD_BOOKMARK_PUBLIC_CHANNEL,y.A.EDIT_BOOKMARK_PUBLIC_CHANNEL,y.A.DELETE_BOOKMARK_PUBLIC_CHANNEL,y.A.ORDER_BOOKMARK_PUBLIC_CHANNEL]}),r.permissions.push({id:"manage_private_channel_bookmarks",combined:!0,permissions:[y.A.ADD_BOOKMARK_PRIVATE_CHANNEL,y.A.EDIT_BOOKMARK_PRIVATE_CHANNEL,y.A.DELETE_BOOKMARK_PRIVATE_CHANNEL,y.A.ORDER_BOOKMARK_PRIVATE_CHANNEL]})),(0,qs.$X)(s)&&(n.permissions.push(y.A.MANAGE_PUBLIC_CHANNEL_BANNER),r.permissions.push(y.A.MANAGE_PRIVATE_CHANNEL_BANNER),r.permissions.push(y.A.MANAGE_CHANNEL_ACCESS_RULES)),this.groups=this.groups.filter((e=>!e.isVisible||e.isVisible(this.props.license)))})),Vp(this,"openPostTimeLimitModal",(()=>{this.setState({editTimeLimitModalIsVisible:!0})})),Vp(this,"closePostTimeLimitModal",(()=>{this.setState({editTimeLimitModalIsVisible:!1})})),Vp(this,"toggleGroup",(e=>{this.props.readOnly||this.props.onToggle(this.props.role.name,e)})),Vp(this,"render",(()=>T().createElement("div",{className:"permissions-tree"},T().createElement("div",{className:"permissions-tree--header"},T().createElement("div",{className:"permission-name"},T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionsTree.permission",defaultMessage:"Permission"})),T().createElement("div",{className:"permission-description"},T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionsTree.description",defaultMessage:"Description"}))),T().createElement("div",{className:"permissions-tree--body"},T().createElement(Bp,{key:"all",id:"all",uniqId:this.props.role.name,selected:this.props.selected,selectRow:this.props.selectRow,readOnly:this.props.readOnly,permissions:this.groups,additionalValues:this.ADDITIONAL_VALUES,role:this.props.role,parentRole:this.props.parentRole,scope:this.props.scope,combined:!1,onChange:this.toggleGroup,root:!0})),T().createElement(Tp,{onClose:this.closePostTimeLimitModal,show:this.state.editTimeLimitModalIsVisible})))),this.state={editTimeLimitModalIsVisible:!1},this.ADDITIONAL_VALUES={edit_post:{editTimeLimitButton:T().createElement(Sp,{onClick:this.openPostTimeLimitModal,isDisabled:this.props.readOnly})}},this.groups=[{id:"teams",permissions:[{id:"send_invites",combined:!0,permissions:[y.A.INVITE_USER,y.A.GET_PUBLIC_LINK,y.A.ADD_USER_TO_TEAM]},y.A.CREATE_TEAM]},{id:"public_channel",permissions:[y.A.CREATE_PUBLIC_CHANNEL,y.A.MANAGE_PUBLIC_CHANNEL_PROPERTIES,{id:"manage_public_channel_members_and_read_groups",combined:!0,permissions:[y.A.MANAGE_PUBLIC_CHANNEL_MEMBERS,y.A.READ_PUBLIC_CHANNEL_GROUPS]},y.A.DELETE_PUBLIC_CHANNEL,y.A.CONVERT_PUBLIC_CHANNEL_TO_PRIVATE]},{id:"private_channel",permissions:[y.A.CREATE_PRIVATE_CHANNEL,y.A.MANAGE_PRIVATE_CHANNEL_PROPERTIES,{id:"manage_private_channel_members_and_read_groups",combined:!0,permissions:[y.A.MANAGE_PRIVATE_CHANNEL_MEMBERS,y.A.READ_PRIVATE_CHANNEL_GROUPS]},y.A.DELETE_PRIVATE_CHANNEL]},{id:"playbook_public",permissions:[y.A.PLAYBOOK_PUBLIC_CREATE,y.A.PLAYBOOK_PUBLIC_MANAGE_PROPERTIES,y.A.PLAYBOOK_PUBLIC_MANAGE_MEMBERS],isVisible:qs.sk},{id:"playbook_public",permissions:[y.A.PLAYBOOK_PUBLIC_CREATE,y.A.PLAYBOOK_PUBLIC_MANAGE_PROPERTIES,y.A.PLAYBOOK_PUBLIC_MANAGE_MEMBERS,y.A.PLAYBOOK_PUBLIC_MAKE_PRIVATE],isVisible:qs.PL},{id:"playbook_private",permissions:[y.A.PLAYBOOK_PRIVATE_CREATE,y.A.PLAYBOOK_PRIVATE_MANAGE_PROPERTIES,y.A.PLAYBOOK_PRIVATE_MANAGE_MEMBERS,y.A.PLAYBOOK_PRIVATE_MAKE_PUBLIC],isVisible:qs.PL},{id:"runs",permissions:[y.A.RUN_CREATE]},{id:"posts",permissions:[{id:"edit_posts",permissions:[y.A.EDIT_POST,y.A.EDIT_OTHERS_POSTS]},{id:"delete_posts",permissions:[y.A.DELETE_POST,y.A.DELETE_OTHERS_POSTS]},{id:"reactions",combined:!0,permissions:[y.A.ADD_REACTION,y.A.REMOVE_REACTION]},y.A.USE_CHANNEL_MENTIONS]},{id:"integrations",permissions:[]},{id:"manage_shared_channels",permissions:[]},{id:"custom_groups",permissions:[y.A.CREATE_CUSTOM_GROUP,y.A.MANAGE_CUSTOM_GROUP_MEMBERS,y.A.EDIT_CUSTOM_GROUP,y.A.DELETE_CUSTOM_GROUP,y.A.RESTORE_CUSTOM_GROUP]}],this.updateGroups()}componentDidUpdate(e){this.props.config===e.config&&this.props.license===e.license||this.updateGroups()}}Vp(zp,"propTypes",{scope:k().string.isRequired,onToggle:k().func.isRequired,selected:k().string,selectRow:k().func.isRequired,readOnly:k().bool,customGroupsEnabled:k().bool.isRequired}),Vp(zp,"defaultProps",{role:{permissions:[]}});const Wp=[y.A.VIEW_MEMBERS,y.A.JOIN_PUBLIC_TEAMS,y.A.LIST_PUBLIC_TEAMS,y.A.JOIN_PRIVATE_TEAMS,y.A.LIST_PRIVATE_TEAMS,y.A.PLAYBOOK_PUBLIC_VIEW,y.A.PLAYBOOK_PRIVATE_VIEW],Yp=(0,a.connect)((function(e){return{config:(0,c.zj)(e),license:(0,c.Ay)(e),customGroupsEnabled:(0,m.h7)(e)}}))(zp),Zp=[{id:"playbook_public",permissions:[y.A.PLAYBOOK_PUBLIC_MANAGE_PROPERTIES,y.A.PLAYBOOK_PUBLIC_MANAGE_MEMBERS],isVisible:qs.sk},{id:"playbook_public",permissions:[y.A.PLAYBOOK_PUBLIC_MANAGE_PROPERTIES,y.A.PLAYBOOK_PUBLIC_MANAGE_MEMBERS,y.A.PLAYBOOK_PUBLIC_MAKE_PRIVATE],isVisible:qs.PL},{id:"playbook_private",permissions:[y.A.PLAYBOOK_PRIVATE_MANAGE_PROPERTIES,y.A.PLAYBOOK_PRIVATE_MANAGE_MEMBERS,y.A.PLAYBOOK_PRIVATE_MAKE_PUBLIC],isVisible:qs.PL},{id:"runs",permissions:[y.A.RUN_CREATE]}],Jp=e=>{var t;const s=Zp.filter((t=>!t.isVisible||t.isVisible(e.license)));return T().createElement("div",{className:"permissions-tree"},T().createElement("div",{className:"permissions-tree--header"},T().createElement("div",{className:"permission-name"},T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionsTree.permission",defaultMessage:"Permission"})),T().createElement("div",{className:"permission-description"},T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionsTree.description",defaultMessage:"Description"}))),T().createElement("div",{className:"permissions-tree--body"},T().createElement(Bp,{key:"all",id:"all",parentRole:e.parentRole,uniqId:null===(t=e.role)||void 0===t?void 0:t.name,selectRow:e.selectRow,readOnly:e.readOnly,permissions:s,role:e.role,scope:e.scope,combined:!1,onChange:t=>{var s;e.readOnly||e.onToggle((null===(s=e.role)||void 0===s?void 0:s.name)||"",t)},root:!0})))};Jp.propTypes={parentRole:k().any.isRequired,scope:k().string.isRequired,selectRow:k().any.isRequired,readOnly:k().bool.isRequired,onToggle:k().func.isRequired};const Kp=Jp;function Qp(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Xp(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Qp(Object(s),!0).forEach((function(t){$p(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Qp(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function $p(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class eg extends T().PureComponent{constructor(e){super(e),$p(this,"goToSelectedRow",(()=>{const e=document.querySelector(".permission-row.selected,.permission-group-row.selected");return!!e&&(this.state.openRoles.all_users?e.scrollIntoView({behavior:"smooth",block:"center"}):(this.toggleRole("all_users"),setTimeout((()=>{e.scrollIntoView({behavior:"smooth",block:"center"})}),300)),!0)})),$p(this,"selectRow",(e=>{this.setState({selectedPermission:e}),setTimeout(this.goToSelectedRow),setTimeout((()=>{this.setState({selectedPermission:void 0})}),3e3)})),$p(this,"deriveRolesFromAllUsers",(e=>{var t,s,a,i,n;return{system_user:Xp(Xp({},this.props.roles.system_user),{},{permissions:null===(t=e.permissions)||void 0===t?void 0:t.filter((e=>"system_scope"===mt.PZ[e]))}),team_user:Xp(Xp({},this.props.roles.team_user),{},{permissions:null===(s=e.permissions)||void 0===s?void 0:s.filter((e=>"team_scope"===mt.PZ[e]))}),channel_user:Xp(Xp({},this.props.roles.channel_user),{},{permissions:null===(a=e.permissions)||void 0===a?void 0:a.filter((e=>"channel_scope"===mt.PZ[e]))}),playbook_member:Xp(Xp({},this.props.roles.playbook_member),{},{permissions:null===(i=e.permissions)||void 0===i?void 0:i.filter((e=>"playbook_scope"===mt.PZ[e]))}),run_member:Xp(Xp({},this.props.roles.run_member),{},{permissions:null===(n=e.permissions)||void 0===n?void 0:n.filter((e=>"run_scope"===mt.PZ[e]))})}})),$p(this,"deriveRolesFromGuests",(e=>{var t,s,a;return{system_guest:Xp(Xp({},this.props.roles.system_guest),{},{permissions:null===(t=e.permissions)||void 0===t?void 0:t.filter((e=>"system_scope"===mt.PZ[e]))}),team_guest:Xp(Xp({},this.props.roles.team_guest),{},{permissions:null===(s=e.permissions)||void 0===s?void 0:s.filter((e=>"team_scope"===mt.PZ[e]))}),channel_guest:Xp(Xp({},this.props.roles.channel_guest),{},{permissions:null===(a=e.permissions)||void 0===a?void 0:a.filter((e=>"channel_scope"===mt.PZ[e]))})}})),$p(this,"restoreExcludedPermissions",(e=>{for(const s of this.props.roles.system_user.permissions){var t;Wp.includes(s)&&(null===(t=e.system_user.permissions)||void 0===t||t.push(s))}for(const t of this.props.roles.team_user.permissions){var s;Wp.includes(t)&&(null===(s=e.team_user.permissions)||void 0===s||s.push(t))}for(const t of this.props.roles.channel_user.permissions){var a;Wp.includes(t)&&(null===(a=e.channel_user.permissions)||void 0===a||a.push(t))}for(const t of this.props.roles.playbook_member.permissions){var i;Wp.includes(t)&&(null===(i=e.playbook_member.permissions)||void 0===i||i.push(t))}return e})),$p(this,"restoreGuestPermissions",(e=>{for(const s of this.props.roles.system_guest.permissions){var t;Gp.includes(s)||null===(t=e.system_guest.permissions)||void 0===t||t.push(s)}for(const t of this.props.roles.team_guest.permissions){var s;Gp.includes(t)||null===(s=e.team_guest.permissions)||void 0===s||s.push(t)}for(const t of this.props.roles.channel_guest.permissions){var a;Gp.includes(t)||null===(a=e.channel_guest.permissions)||void 0===a||a.push(t)}return e})),$p(this,"handleSubmit",(async()=>{const e=this.props.actions.editRole(this.state.roles.team_admin),t=this.props.actions.editRole(this.state.roles.channel_admin),s=this.props.actions.editRole(this.state.roles.playbook_admin),a=this.restoreExcludedPermissions(this.deriveRolesFromAllUsers(this.state.roles.all_users)),i=[e,t,this.props.actions.editRole(a.system_user),this.props.actions.editRole(a.team_user),this.props.actions.editRole(a.channel_user),s,this.props.actions.editRole(a.playbook_member),this.props.actions.editRole(a.run_member)];if(this.haveGuestAccountsPermissions()){const e=this.restoreGuestPermissions(this.deriveRolesFromGuests(this.state.roles.guests)),t=this.props.actions.editRole(e.system_guest),s=this.props.actions.editRole(e.team_guest),a=this.props.actions.editRole(e.channel_guest);i.push(t,s,a)}this.setState({saving:!0});const n=await Promise.all(i);let r=null,o=!1;for(const e of n)if(e.error){r=e.error.message,o=!0;break}this.setState({serverError:r,saving:!1,saveNeeded:o}),this.props.actions.setNavigationBlocked(o)})),$p(this,"toggleRole",(e=>{const t=Xp({},this.state.openRoles);t[e]=!t[e],this.setState({openRoles:t})})),$p(this,"togglePermission",((e,t)=>{const s=Xp({},this.state.roles),a=Xp({},s[e]),i=[...a.permissions];for(const e of t)-1===i.indexOf(e)?i.push(e):i.splice(i.indexOf(e),1);if(a.permissions=i,s[e]=a,"all_users"===e){const e=Xp({},s.channel_admin),i=[...e.permissions],n=Xp({},s.team_admin),r=[...n.permissions];for(const e of t)-1!==mt.Sw.indexOf(e)&&-1!==a.permissions.indexOf(e)&&(-1===i.indexOf(e)&&i.push(e),-1===r.indexOf(e)&&r.push(e));e.permissions=i,s.channel_admin=e,n.permissions=r,s.team_admin=n}this.setState({roles:s,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),$p(this,"resetDefaults",(()=>{const e=JSON.parse(JSON.stringify(Xp({},this.state.roles)));Object.entries(mt.YC).forEach((t=>{let[s,a]=t;e[s].permissions=a})),this.setState({roles:e,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),$p(this,"haveGuestAccountsPermissions",(()=>"true"===this.props.license.GuestAccountsPermissions)),$p(this,"render",(()=>{var e;if(!this.state.loaded)return T().createElement(Na.A,null);const t="true"===(null===(e=this.props.license)||void 0===e?void 0:e.IsLicensed);return T().createElement("div",{className:"wrapper--fixed"},T().createElement(nt,{withBackButton:!0},T().createElement("div",null,T().createElement(tt.A,{to:"/admin_console/user_management/permissions",className:"fa fa-angle-left back"}),T().createElement(N.FormattedMessage,{id:"admin.permissions.systemScheme",defaultMessage:"System Scheme"}))),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement("div",{className:"banner info"},T().createElement("div",{className:"banner__content"},T().createElement("span",null,T().createElement(N.FormattedMessage,{id:"admin.permissions.systemScheme.introBanner",defaultMessage:"Configure the default permissions for Team Admins, Channel Admins and other members. This scheme is inherited by all teams unless a <link>Team Override Scheme</link>is applied in specific teams.",values:{link:e=>T().createElement(wt.A,{href:mt.Uk.ONBOARD_ADVANCED_PERMISSIONS,location:"permission_system_scheme_settings"},e)}})))),t&&"true"===this.props.config.EnableGuestAccounts&&T().createElement(Mp,{className:"permissions-block",open:this.state.openRoles.guests,id:"all_users",onToggle:()=>this.toggleRole("guests"),title:(0,N.defineMessage)({id:"admin.permissions.systemScheme.GuestsTitle",defaultMessage:"Guests"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.systemScheme.GuestsDescription",defaultMessage:"Permissions granted to guest users."})},T().createElement(qp,{selected:this.state.selectedPermission,role:this.state.roles.guests,scope:"system_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled||!this.haveGuestAccountsPermissions()})),T().createElement(Mp,{className:"permissions-block",open:this.state.openRoles.all_users,id:"all_users",onToggle:()=>this.toggleRole("all_users"),title:(0,N.defineMessage)({id:"admin.permissions.systemScheme.allMembersTitle",defaultMessage:"All Members"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.systemScheme.allMembersDescription",defaultMessage:"Permissions granted to all members, including administrators and newly created users."})},T().createElement(Yp,{selected:this.state.selectedPermission,role:this.state.roles.all_users,scope:"system_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled})),T().createElement(Mp,{className:"permissions-block",open:this.state.openRoles.channel_admin,onToggle:()=>this.toggleRole("channel_admin"),title:(0,N.defineMessage)({id:"admin.permissions.systemScheme.channelAdminsTitle",defaultMessage:"Channel Administrators"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.systemScheme.channelAdminsDescription",defaultMessage:"Permissions granted to channel creators and any users promoted to Channel Administrator."})},T().createElement(Yp,{parentRole:this.state.roles.all_users,role:this.state.roles.channel_admin,scope:"channel_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled})),T().createElement(Mp,{className:"permissions-block",open:this.state.openRoles.playbook_admin,onToggle:()=>this.toggleRole("playbook_admin"),title:(0,N.defineMessage)({id:"admin.permissions.systemScheme.playbookAdmin",defaultMessage:"Playbook Administrator"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.systemScheme.playbookAdminSubtitle",defaultMessage:"Permissions granted to administrators of a playbook."})},T().createElement(Kp,{role:this.state.roles.playbook_admin,parentRole:this.state.roles.all_users,scope:"playbook_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled||!1,license:this.props.license})),T().createElement(Mp,{className:"permissions-block",open:this.state.openRoles.team_admin,onToggle:()=>this.toggleRole("team_admin"),title:(0,N.defineMessage)({id:"admin.permissions.systemScheme.teamAdminsTitle",defaultMessage:"Team Administrators"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.systemScheme.teamAdminsDescription",defaultMessage:"Permissions granted to team creators and any users promoted to Team Administrator."})},T().createElement(Yp,{parentRole:this.state.roles.all_users,role:this.state.roles.team_admin,scope:"team_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled})),T().createElement(Mp,{className:"permissions-block",open:this.state.openRoles.system_admin,onToggle:()=>this.toggleRole("system_admin"),title:(0,N.defineMessage)({id:"admin.permissions.systemScheme.systemAdminsTitle",defaultMessage:"System Administrators"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.systemScheme.systemAdminsDescription",defaultMessage:"Full permissions granted to System Administrators."})},T().createElement(Yp,{readOnly:!0,role:this.state.roles.system_admin,scope:"system_scope",onToggle:this.togglePermission,selectRow:this.selectRow})))),T().createElement("div",{className:"admin-console-save"},T().createElement(st.A,{saving:this.state.saving,disabled:this.props.isDisabled||!this.state.saveNeeded,onClick:this.handleSubmit,savingMessage:this.props.intl.formatMessage({id:"admin.saving",defaultMessage:"Saving Config..."})}),T().createElement(tt.A,{className:"btn btn-tertiary",to:"/admin_console/user_management/permissions","data-testid":"permission-scheme-cancel-button"},T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionSchemes.cancel",defaultMessage:"Cancel"})),T().createElement("a",{"data-testid":"resetPermissionsToDefault",onClick:()=>this.setState({showResetDefaultModal:!0}),className:"btn btn-quaternary"},T().createElement(N.FormattedMessage,{id:"admin.permissions.systemScheme.resetDefaultsButton",defaultMessage:"Reset to Defaults"})),T().createElement("div",{className:"error-message"},T().createElement(Bt.Ay,{error:this.state.serverError}))),T().createElement(Ta.A,{show:this.state.showResetDefaultModal,title:T().createElement(N.FormattedMessage,{id:"admin.permissions.systemScheme.resetDefaultsButtonModalTitle",defaultMessage:"Reset to Default?"}),message:T().createElement(N.FormattedMessage,{id:"admin.permissions.systemScheme.resetDefaultsButtonModalBody",defaultMessage:"This will reset all selections on this page to their default settings. Are you sure you want to reset?"}),confirmButtonText:T().createElement(N.FormattedMessage,{id:"admin.permissions.systemScheme.resetDefaultsConfirmationButton",defaultMessage:"Yes, Reset"}),onConfirm:()=>{this.resetDefaults(),this.setState({showResetDefaultModal:!1})},onCancel:()=>this.setState({showResetDefaultModal:!1})}))})),this.state={showResetDefaultModal:!1,loaded:!1,saving:!1,saveNeeded:!1,serverError:null,roles:{},openRoles:{guests:!0,all_users:!0,system_admin:!0,team_admin:!0,channel_admin:!0,playbook_member:!0,playbook_admin:!0,run_member:!0,run_admin:!0},urlParams:new URLSearchParams(e.location.search)},this.rolesNeeded=[bp.A.SYSTEM_ADMIN_ROLE,bp.A.SYSTEM_USER_ROLE,bp.A.TEAM_ADMIN_ROLE,bp.A.TEAM_USER_ROLE,bp.A.CHANNEL_ADMIN_ROLE,bp.A.CHANNEL_USER_ROLE,bp.A.PLAYBOOK_ADMIN_ROLE,bp.A.PLAYBOOK_MEMBER_ROLE,bp.A.RUN_ADMIN_ROLE,bp.A.RUN_MEMBER_ROLE,bp.A.SYSTEM_GUEST_ROLE,bp.A.TEAM_GUEST_ROLE,bp.A.CHANNEL_GUEST_ROLE]}componentDidMount(){this.props.actions.loadRolesIfNeeded(this.rolesNeeded),this.rolesNeeded.every((e=>this.props.roles[e]))&&this.loadRolesIntoState(this.props),this.state.urlParams.get("rowIdFromQuery")&&setTimeout((()=>{this.selectRow(this.state.urlParams.get("rowIdFromQuery"))}),1e3)}UNSAFE_componentWillReceiveProps(e){!this.state.loaded&&this.rolesNeeded.every((t=>e.roles[t]))&&this.loadRolesIntoState(e)}loadRolesIntoState(e){var t,s;this.setState({loaded:!0,roles:{system_admin:e.roles.system_admin,team_admin:e.roles.team_admin,channel_admin:e.roles.channel_admin,playbook_admin:e.roles.playbook_admin,playbook_member:e.roles.playbook_member,run_admin:e.roles.run_admin,run_member:e.roles.run_member,all_users:{name:"all_users",display_name:"All members",permissions:null===(t=e.roles.system_user.permissions)||void 0===t?void 0:t.concat(e.roles.team_user.permissions).concat(e.roles.channel_user.permissions).concat(e.roles.playbook_member.permissions).concat(e.roles.run_member.permissions)},guests:{name:"guests",display_name:"Guests",permissions:null===(s=e.roles.system_guest.permissions)||void 0===s?void 0:s.concat(e.roles.team_guest.permissions).concat(e.roles.channel_guest.permissions)}}})}}$p(eg,"propTypes",{isDisabled:k().bool,actions:k().shape({loadRolesIfNeeded:k().func.isRequired,editRole:k().func.isRequired,setNavigationBlocked:k().func.isRequired}).isRequired});const tg=(0,N.injectIntl)(eg),sg=(0,a.connect)((function(e){return{config:(0,c.zj)(e),license:(0,c.Ay)(e),roles:(0,u.O0)(e)}}),(function(e){return{actions:(0,i.zH)({loadRolesIfNeeded:r.cF,editRole:r.D3,setNavigationBlocked:h.Jb},e)}}))(tg);var ag=s(5986);const ig=e=>{let t,{className:s="",subtitle:a,title:i,buttonText:n,children:r,disabled:o,id:l,onButtonClick:d}=e;if(d&&n){const e=(n.defaultMessage||"").split(" ").join("-").toLowerCase();t=T().createElement("a",{className:oe()("btn","btn-primary",{disabled:o}),onClick:o?e=>e.preventDefault():d,"data-testid":e},T().createElement(N.FormattedMessage,n))}return T().createElement(dc,{className:"AdminPanelWithButton "+s,id:l,title:i,subtitle:a,button:t},r)};ig.propTypes={children:k().node,className:k().string,id:k().string,onButtonClick:k().func,disabled:k().bool};const ng=ig,rg=e=>{let{team:t,isDisabled:s,onRemoveTeam:a}=e;const i=(0,A.useCallback)((()=>{s||a(t.id)}),[s,t.id,a]);return T().createElement("div",{className:"team",key:t.id},T().createElement("div",{className:"team-info-block"},T().createElement(Le.A,{content:t.display_name,url:(0,D.lt)(t)}),T().createElement("div",{className:"team-data"},T().createElement("div",{className:"title"},t.display_name))),T().createElement("a",{className:oe()("remove",{disabled:s}),onClick:i},T().createElement(N.FormattedMessage,{id:"admin.permissions.teamScheme.removeTeam",defaultMessage:"Remove"})))};rg.propTypes={onRemoveTeam:k().func.isRequired,isDisabled:k().bool.isRequired};const og=(0,A.memo)(rg),lg=(0,a.connect)((function(e){return{stats:(0,p.ls)(e)}}),(function(e){return{actions:(0,i.zH)({loadTeamStats:o.ls},e)}}))(og);function dg(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function cg(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?dg(Object(s),!0).forEach((function(t){mg(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):dg(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function mg(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class ug extends T().PureComponent{constructor(e){super(e),mg(this,"isLoaded",(e=>e.schemeId?!!(null!==e.scheme&&null!==e.teams&&e.roles[e.scheme.default_team_guest_role]&&e.roles[e.scheme.default_team_user_role]&&e.roles[e.scheme.default_team_admin_role]&&e.roles[e.scheme.default_channel_guest_role]&&e.roles[e.scheme.default_channel_user_role]&&e.roles[e.scheme.default_channel_admin_role]&&e.roles[e.scheme.default_playbook_admin_role]&&e.roles[e.scheme.default_playbook_member_role]&&e.roles[e.scheme.default_run_member_role]):!!(e.roles.team_guest&&e.roles.team_user&&e.roles.team_admin&&e.roles.channel_guest&&e.roles.channel_user&&e.roles.channel_admin&&e.roles.playbook_admin&&e.roles.playbook_member&&e.roles.run_member))),mg(this,"goToSelectedRow",(()=>{const e=document.querySelector(".permission-row.selected,.permission-group-row.selected");return!!e&&(this.state.openRoles.all_users?e.scrollIntoView({behavior:"smooth",block:"center"}):(this.toggleRole("all_users"),setTimeout((()=>{e.scrollIntoView({behavior:"smooth",block:"center"})}),300)),!0)})),mg(this,"selectRow",(e=>{this.setState({selectedPermission:e}),setTimeout(this.goToSelectedRow),setTimeout((()=>{this.setState({selectedPermission:void 0})}),3e3)})),mg(this,"getStateRoles",(()=>{var e,t,s,a,i,n;if(null!==this.state.roles)return this.state.roles;let r,o,l,d,c,m,u,p,g;if(this.props.schemeId&&this.props.scheme)this.isLoaded(this.props)&&(r=this.props.roles[this.props.scheme.default_team_guest_role],o=this.props.roles[this.props.scheme.default_team_user_role],l=this.props.roles[this.props.scheme.default_team_admin_role],d=this.props.roles[this.props.scheme.default_channel_guest_role],c=this.props.roles[this.props.scheme.default_channel_user_role],m=this.props.roles[this.props.scheme.default_channel_admin_role],u=this.props.roles[this.props.scheme.default_playbook_admin_role],p=this.props.roles[this.props.scheme.default_playbook_member_role],g=this.props.roles[this.props.scheme.default_run_member_role]);else{if(!this.isLoaded(this.props))return null;r=this.props.roles.team_guest,o=this.props.roles.team_user,l=this.props.roles.team_admin,d=this.props.roles.channel_guest,c=this.props.roles.channel_user,m=this.props.roles.channel_admin,u=this.props.roles.playbook_admin,p=this.props.roles.playbook_member,g=this.props.roles.run_member}return{team_admin:l,channel_admin:m,playbook_admin:u,playbook_member:p,run_member:g,team_guest:r,team_user:o,channel_guest:d,channel_user:c,all_users:{name:"all_users",displayName:"All members",permissions:[...(null===(e=o)||void 0===e?void 0:e.permissions)||[],...(null===(t=c)||void 0===t?void 0:t.permissions)||[],...(null===(s=p)||void 0===s?void 0:s.permissions)||[],...(null===(a=g)||void 0===a?void 0:a.permissions)||[]]},guests:{name:"guests",displayName:"Guests",permissions:null===(i=r)||void 0===i?void 0:i.permissions.concat((null===(n=d)||void 0===n?void 0:n.permissions)||[])}}})),mg(this,"deriveRolesFromGuests",((e,t,s)=>({team_guest:cg(cg({},e),{},{permissions:s.permissions.filter((e=>"team_scope"===mt.PZ[e]))}),channel_guest:cg(cg({},t),{},{permissions:s.permissions.filter((e=>"channel_scope"===mt.PZ[e]))})}))),mg(this,"restoreGuestPermissions",((e,t,s)=>{for(const t of e.permissions)Gp.includes(t)||s.team_guest.permissions.push(t);for(const e of t.permissions)Gp.includes(e)||s.channel_guest.permissions.push(e);return s})),mg(this,"deriveRolesFromAllUsers",((e,t,s,a,i)=>{var n,r;return{team_user:cg(cg({},e),{},{permissions:i.permissions.filter((e=>"team_scope"===mt.PZ[e]))}),channel_user:cg(cg({},t),{},{permissions:i.permissions.filter((e=>"channel_scope"===mt.PZ[e]))}),playbook_member:cg(cg({},s),{},{permissions:null===(n=i.permissions)||void 0===n?void 0:n.filter((e=>"playbook_scope"===mt.PZ[e]))}),run_member:cg(cg({},a),{},{permissions:null===(r=i.permissions)||void 0===r?void 0:r.filter((e=>"run_scope"===mt.PZ[e]))})}})),mg(this,"restoreExcludedPermissions",((e,t,s)=>{for(const t of e.permissions)Wp.includes(t)&&s.team_user.permissions.push(t);for(const e of t.permissions)Wp.includes(e)&&s.channel_user.permissions.push(e);return s})),mg(this,"handleNameChange",(e=>{this.setState({schemeName:e.target.value,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),mg(this,"handleDescriptionChange",(e=>{this.setState({schemeDescription:e.target.value,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),mg(this,"handleSubmit",(async()=>{const e=this.getStateRoles();let t=null==e?void 0:e.team_admin,s=null==e?void 0:e.channel_admin,a=null==e?void 0:e.playbook_admin,i=null==e?void 0:e.playbook_member,n=null==e?void 0:e.run_member;const r=null==e?void 0:e.all_users,o=null==e?void 0:e.guests,l=this.state.schemeName||this.props.scheme&&this.props.scheme.display_name||"",d=this.state.schemeDescription||this.props.scheme&&this.props.scheme.description||"";let c=null,m=null,u=null,p=null,g=null;if(this.setState({saving:!0}),e&&e.team_user&&e.channel_user&&e.playbook_member&&e.run_member&&r){let t=this.deriveRolesFromAllUsers(e.team_user,e.channel_user,e.playbook_member,e.run_member,r);t=this.restoreExcludedPermissions(e.team_user,e.channel_user,t),c=t.team_user,m=t.channel_user,i=t.playbook_member,n=t.run_member}if(e&&e.team_guest&&e.channel_guest&&o){let t=this.deriveRolesFromGuests(e.team_guest,e.channel_guest,o);t=this.restoreGuestPermissions(e.team_guest,e.channel_guest,t),u=t.team_guest,p=t.channel_guest}if(this.props.schemeId)await this.props.actions.patchScheme(this.props.schemeId,{display_name:l,description:d}),g=this.props.schemeId;else{const e=await this.props.actions.createScheme({display_name:l,description:d,scope:"team"});if(e.error)return this.setState({serverError:e.error.message,saving:!1,saveNeeded:!0}),void this.props.actions.setNavigationBlocked(!0);const r=e.data;g=r.id,await this.props.actions.loadRolesIfNeeded([r.default_team_guest_role,r.default_team_user_role,r.default_team_admin_role,r.default_channel_guest_role,r.default_channel_user_role,r.default_channel_admin_role,r.default_playbook_admin_role,r.default_playbook_member_role,r.default_run_member_role]),u=cg(cg({},u),{},{id:this.props.roles[r.default_team_guest_role].id}),c=cg(cg({},c),{},{id:this.props.roles[r.default_team_user_role].id}),t=cg(cg({},t),{},{id:this.props.roles[r.default_team_admin_role].id}),p=cg(cg({},p),{},{id:this.props.roles[r.default_channel_guest_role].id}),m=cg(cg({},m),{},{id:this.props.roles[r.default_channel_user_role].id}),s=cg(cg({},s),{},{id:this.props.roles[r.default_channel_admin_role].id}),a=cg(cg({},a),{},{id:this.props.roles[r.default_playbook_admin_role].id}),i=cg(cg({},i),{},{id:this.props.roles[r.default_playbook_member_role].id}),n=cg(cg({},n),{},{id:this.props.roles[r.default_run_member_role].id})}const h=[this.props.actions.editRole(t),this.props.actions.editRole(s),this.props.actions.editRole(a),this.props.actions.editRole(i),this.props.actions.editRole(n)],f=this.props.actions.editRole(c),E=this.props.actions.editRole(m);if(h.push(f),h.push(E),this.haveGuestAccountsPermissions()){const e=this.props.actions.editRole(u),t=this.props.actions.editRole(p);h.push(e,t)}const b=new Set((this.state.teams||this.props.teams||[]).map((e=>e.id))),v=new Set((this.props.teams||[]).map((e=>e.id))),y=new Set([...b].filter((e=>!v.has(e)))),M=new Set([...v].filter((e=>!b.has(e))));for(const e of y)h.push(this.props.actions.updateTeamScheme(e,g));for(const e of M)h.push(this.props.actions.updateTeamScheme(e,""));const _=await Promise.all(h);let S=null,C=!1;for(const e of _)if(e.error){S=e.error.message,C=!0;break}this.setState({serverError:S,saving:!1,saveNeeded:C}),this.props.actions.setNavigationBlocked(C),this.props.history.push("/admin_console/user_management/permissions")})),mg(this,"toggleRole",(e=>{const t=cg({},this.state.openRoles);t[e]=!t[e],this.setState({openRoles:t})})),mg(this,"togglePermission",((e,t)=>{const s=cg({},this.getStateRoles()),a=Object.keys(s).find((t=>s[t].name===e));if(!a)return;const i=cg({},s[a]),n=[...i.permissions];for(const e of t)-1===n.indexOf(e)?n.push(e):n.splice(n.indexOf(e),1);if(i.permissions=n,s[a]=i,"all_users"===e){const e=cg({},s.channel_admin),a=[...e.permissions],n=cg({},s.team_admin),r=[...n.permissions];for(const e of t)-1!==mt.Sw.indexOf(e)&&-1!==i.permissions.indexOf(e)&&(-1===a.indexOf(e)&&a.push(e),-1===r.indexOf(e)&&r.push(e));e.permissions=a,s.channel_admin=e,n.permissions=r,s.team_admin=n}this.setState({roles:s,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),mg(this,"openAddTeam",(()=>{this.setState({addTeamOpen:!0})})),mg(this,"removeTeam",(e=>{var t,s;const a=null!==(t=null===(s=this.state.teams||this.props.teams)||void 0===s?void 0:s.filter((t=>t.id!==e)))&&void 0!==t?t:null;this.setState({teams:a,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),mg(this,"addTeams",(e=>{const t=this.state.teams||this.props.teams||[];this.setState({teams:[...t,...e],saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),mg(this,"closeAddTeam",(()=>{this.setState({addTeamOpen:!1})})),mg(this,"haveGuestAccountsPermissions",(()=>"true"===this.props.license.GuestAccountsPermissions)),mg(this,"render",(()=>{if(!this.isLoaded(this.props))return T().createElement(Na.A,null);const e=this.getStateRoles(),t=this.state.teams||this.props.teams||[],s=this.state.schemeName||this.props.scheme&&this.props.scheme.display_name||"",a=this.state.schemeDescription||this.props.scheme&&this.props.scheme.description||"";return T().createElement("div",{className:"wrapper--fixed"},this.state.addTeamOpen&&T().createElement(Yl,{modalID:mt.IQ.ADD_TEAMS_TO_SCHEME,onModalDismissed:this.closeAddTeam,onTeamsSelected:this.addTeams,currentSchemeId:this.props.schemeId,alreadySelected:t.map((e=>e.id))}),T().createElement(nt,{withBackButton:!0},T().createElement("div",null,T().createElement(tt.A,{to:"/admin_console/user_management/permissions",className:"fa fa-angle-left back"}),T().createElement(N.FormattedMessage,{id:"admin.permissions.teamScheme",defaultMessage:"Team Scheme"}))),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement("div",{className:"banner info"},T().createElement("div",{className:"banner__content"},T().createElement("span",null,T().createElement(N.FormattedMessage,{id:"admin.permissions.teamScheme.introBanner",defaultMessage:"<linkOverrideTeam>Team Override Schemes</linkOverrideTeam> set the permissions for Team Admins, Channel Admins and other members in specific teams. Use a Team Override Scheme when specific teams need permission exceptions to the <linkSystemScheme>System Scheme</linkSystemScheme>.",values:{linkOverrideTeam:e=>T().createElement(wt.A,{href:mt.Uk.ONBOARD_ADVANCED_PERMISSIONS,location:"permission_team_scheme_settings"},e),linkSystemScheme:e=>T().createElement(wt.A,{href:mt.Uk.ONBOARD_ADVANCED_PERMISSIONS,location:"permission_team_scheme_settings"},e)}})))),T().createElement(dc,{title:(0,N.defineMessage)({id:"admin.permissions.teamScheme.schemeDetailsTitle",defaultMessage:"Scheme Details"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.teamScheme.schemeDetailsDescription",defaultMessage:"Set the name and description for this scheme."})},T().createElement("div",{className:"team-scheme-details"},T().createElement("div",{className:"form-group"},T().createElement("label",{className:"control-label",htmlFor:"scheme-name"},T().createElement(N.FormattedMessage,{id:"admin.permissions.teamScheme.schemeNameLabel",defaultMessage:"Scheme Name:"})),T().createElement(we.A,{className:"form-control",disabled:this.props.isDisabled,id:"scheme-name",placeholder:(0,N.defineMessage)({id:"admin.permissions.teamScheme.schemeNamePlaceholder",defaultMessage:"Scheme Name"}),type:"text",value:s,onChange:this.handleNameChange})),T().createElement("div",{className:"form-group"},T().createElement("label",{className:"control-label",htmlFor:"scheme-description"},T().createElement(N.FormattedMessage,{id:"admin.permissions.teamScheme.schemeDescriptionLabel",defaultMessage:"Scheme Description:"})),T().createElement(ag.A,{id:"scheme-description",className:"form-control",rows:5,value:a,placeholder:(0,N.defineMessage)({id:"admin.permissions.teamScheme.schemeDescriptionPlaceholder",defaultMessage:"Scheme Description"}),onChange:this.handleDescriptionChange,disabled:this.props.isDisabled})))),T().createElement(ng,{className:"permissions-block",title:(0,N.defineMessage)({id:"admin.permissions.teamScheme.selectTeamsTitle",defaultMessage:"Select teams to override permissions"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.teamScheme.selectTeamsDescription",defaultMessage:"Select teams where permission exceptions are required."}),onButtonClick:this.openAddTeam,buttonText:(0,N.defineMessage)({id:"admin.permissions.teamScheme.addTeams",defaultMessage:"Add Teams"}),disabled:this.props.isDisabled},T().createElement("div",{className:"teams-list"},0===t.length&&T().createElement("div",{className:"no-team-schemes"},T().createElement(N.FormattedMessage,{id:"admin.permissions.teamScheme.noTeams",defaultMessage:"No team selected. Please add teams to this list."})),t.map((e=>T().createElement(lg,{key:e.id,team:e,onRemoveTeam:this.removeTeam,isDisabled:this.props.isDisabled}))))),this.props.license&&"true"===this.props.config.EnableGuestAccounts&&T().createElement(Mp,{className:"permissions-block",open:this.state.openRoles.guests,id:"guests",onToggle:()=>this.toggleRole("guests"),title:(0,N.defineMessage)({id:"admin.permissions.systemScheme.GuestsTitle",defaultMessage:"Guests"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.systemScheme.GuestsDescription",defaultMessage:"Permissions granted to guest users."})},T().createElement(qp,{selected:this.state.selectedPermission,role:null==e?void 0:e.guests,scope:"team_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled||!this.haveGuestAccountsPermissions()})),T().createElement(Mp,{className:"permissions-block all_users",open:this.state.openRoles.all_users,id:"all_users",onToggle:()=>this.toggleRole("all_users"),title:(0,N.defineMessage)({id:"admin.permissions.systemScheme.allMembersTitle",defaultMessage:"All Members"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.systemScheme.allMembersDescription",defaultMessage:"Permissions granted to all members, including administrators and newly created users."})},T().createElement(Yp,{selected:this.state.selectedPermission,role:null==e?void 0:e.all_users,scope:"team_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled})),T().createElement(Mp,{className:"permissions-block channel_admin",open:this.state.openRoles.channel_admin,onToggle:()=>this.toggleRole("channel_admin"),title:(0,N.defineMessage)({id:"admin.permissions.systemScheme.channelAdminsTitle",defaultMessage:"Channel Administrators"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.systemScheme.channelAdminsDescription",defaultMessage:"Permissions granted to channel creators and any users promoted to Channel Administrator."})},T().createElement(Yp,{parentRole:null==e?void 0:e.all_users,role:null==e?void 0:e.channel_admin,scope:"channel_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled})),T().createElement(Mp,{className:"permissions-block",open:this.state.openRoles.playbook_admin,onToggle:()=>this.toggleRole("playbook_admin"),title:(0,N.defineMessage)({id:"admin.permissions.systemScheme.playbookAdmin",defaultMessage:"Playbook Administrator"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.systemScheme.playbookAdminSubtitle",defaultMessage:"Permissions granted to administrators of a playbook."})},T().createElement(Kp,{parentRole:null==e?void 0:e.all_users,role:null==e?void 0:e.playbook_admin,scope:"playbook_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled,license:this.props.license})),T().createElement(Mp,{className:"permissions-block team_admin",open:this.state.openRoles.team_admin,onToggle:()=>this.toggleRole("team_admin"),title:(0,N.defineMessage)({id:"admin.permissions.systemScheme.teamAdminsTitle",defaultMessage:"Team Administrators"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.systemScheme.teamAdminsDescription",defaultMessage:"Permissions granted to team creators and any users promoted to Team Administrator."})},T().createElement(Yp,{parentRole:null==e?void 0:e.all_users,role:null==e?void 0:e.team_admin,scope:"team_scope",onToggle:this.togglePermission,selectRow:this.selectRow,readOnly:this.props.isDisabled})))),T().createElement("div",{className:"admin-console-save"},T().createElement(st.A,{saving:this.state.saving,disabled:this.props.isDisabled||!this.state.saveNeeded,onClick:this.handleSubmit,savingMessage:T().createElement(N.FormattedMessage,{id:"admin.saving",defaultMessage:"Saving Config..."})}),T().createElement(tt.A,{className:"btn btn-tertiary",to:"/admin_console/user_management/permissions","data-testid":"permission-scheme-cancel-button"},T().createElement(N.FormattedMessage,{id:"admin.permissions.permissionSchemes.cancel",defaultMessage:"Cancel"})),T().createElement("div",{className:"error-message"},T().createElement(Bt.Ay,{error:this.state.serverError}))))})),this.state={saving:!1,saveNeeded:!1,serverError:null,roles:null,teams:null,addTeamOpen:!1,selectedPermission:void 0,openRoles:{all_users:!0,team_admin:!0,channel_admin:!0,playbook_admin:!0,guests:!0},urlParams:new URLSearchParams(e.location.search),schemeName:void 0,schemeDescription:void 0}}componentDidMount(){const e=[bp.A.TEAM_GUEST_ROLE,bp.A.TEAM_USER_ROLE,bp.A.TEAM_ADMIN_ROLE,bp.A.CHANNEL_GUEST_ROLE,bp.A.CHANNEL_USER_ROLE,bp.A.CHANNEL_ADMIN_ROLE,bp.A.PLAYBOOK_ADMIN_ROLE,bp.A.PLAYBOOK_MEMBER_ROLE,bp.A.RUN_MEMBER_ROLE];this.props.actions.loadRolesIfNeeded(e),this.props.schemeId&&(this.props.actions.loadScheme(this.props.schemeId).then((e=>{this.props.actions.loadRolesIfNeeded([e.data.default_team_guest_role,e.data.default_team_user_role,e.data.default_team_admin_role,e.data.default_channel_guest_role,e.data.default_channel_user_role,e.data.default_channel_admin_role,e.data.default_playbook_admin_role,e.data.default_playbook_member_role,e.data.default_run_member_role])})),this.props.actions.loadSchemeTeams(this.props.schemeId));const t=this.state.urlParams.get("rowIdFromQuery");t&&setTimeout((()=>{this.selectRow(t)}),1e3)}}mg(ug,"propTypes",{schemeId:k().string.isRequired,teams:k().oneOfType([k().array,k().oneOf([null])]),isDisabled:k().bool.isRequired,actions:k().shape({loadRolesIfNeeded:k().func.isRequired,loadScheme:k().func.isRequired,loadSchemeTeams:k().func.isRequired,editRole:k().func.isRequired,patchScheme:k().func.isRequired,updateTeamScheme:k().func.isRequired,createScheme:k().func.isRequired,setNavigationBlocked:k().func.isRequired}).isRequired}),mg(ug,"defaultProps",{scheme:null});const pg=(0,a.connect)((function(){const e=op();return(t,s)=>{const a=s.match.params.scheme_id;return{config:(0,c.zj)(t),license:(0,c.Ay)(t),schemeId:a,scheme:a?rp(t,a):null,teams:a?e(t,{schemeId:a}):null,roles:(0,u.O0)(t)}}}),(function(e){return{actions:(0,i.zH)({loadRolesIfNeeded:r.cF,loadScheme:$u,loadSchemeTeams:ip,editRole:r.D3,patchScheme:ap,updateTeamScheme:o.yv,createScheme:tp,setNavigationBlocked:h.Jb},e)}}))(ug);function gg(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const hg="off",fg="mhpns",Eg="mtpns",bg="custom",vg="us",yg="de",Mg={[vg]:mt.YM.MHPNS_US,[yg]:mt.YM.MHPNS_DE},_g="pushNotificationServerType",Sg="pushNotificationServerLocation",Cg=(0,N.defineMessages)({pushNotificationServer:{id:"admin.environment.pushNotificationServer",defaultMessage:"Push Notification Server"},pushTitle:{id:"admin.email.pushTitle",defaultMessage:"Enable Push Notifications: "},pushServerTitle:{id:"admin.email.pushServerTitle",defaultMessage:"Push Notification Server:"}}),Ag=[Cg.pushNotificationServer,Cg.pushTitle,Cg.pushServerTitle],Tg=(0,N.injectIntl)(class extends Ia{constructor(){super(...arguments),gg(this,"canSave",(()=>this.state.pushNotificationServerType!==fg||this.state.agree)),gg(this,"handleAgreeChange",(e=>{this.setState({agree:e.target.checked})})),gg(this,"handleDropdownChange",((e,t)=>{e===_g&&(this.setState({agree:!1}),t===fg?this.setState({pushNotificationServer:Mg[this.state.pushNotificationServerLocation]}):t===Eg?this.setState({pushNotificationServer:mt.YM.MTPNS}):t!==bg||this.state.pushNotificationServerType!==Eg&&this.state.pushNotificationServerType!==fg||this.setState({pushNotificationServer:""})),e===Sg&&this.setState({pushNotificationServer:Mg[t],pushNotificationServerLocation:t}),this.handleChange(e,t)})),gg(this,"getConfigFromState",(e=>(e.EmailSettings.SendPushNotifications=this.state.pushNotificationServerType!==hg,e.EmailSettings.PushNotificationServer=this.state.pushNotificationServer.trim(),e.TeamSettings.MaxNotificationsPerChannel=this.state.maxNotificationsPerChannel,e))),gg(this,"isPushNotificationServerSetByEnv",(()=>this.isSetByEnv("EmailSettings.SendPushNotifications")||this.isSetByEnv("EmailSettings.PushNotificationServer"))),gg(this,"renderSettings",(()=>{const e=[];e.push({value:hg,text:this.props.intl.formatMessage({id:"admin.email.pushOff",defaultMessage:"Do not send push notifications"})}),"true"===this.props.license.IsLicensed&&"true"===this.props.license.MHPNS&&e.push({value:fg,text:this.props.intl.formatMessage({id:"admin.email.mhpns",defaultMessage:"Use HPNS connection with uptime SLA to send notifications to iOS and Android apps"})}),e.push({value:Eg,text:this.props.intl.formatMessage({id:"admin.email.mtpns",defaultMessage:"Use TPNS connection to send notifications to iOS and Android apps"})}),e.push({value:bg,text:this.props.intl.formatMessage({id:"admin.email.selfPush",defaultMessage:"Manually enter Push Notification Service location"})});let t,s,a=null,i=null;if(this.state.pushNotificationServerType===hg?a=T().createElement(N.FormattedMessage,{id:"admin.email.pushOffHelp",defaultMessage:"Please see <link>documentation on push notifications</link> to learn more about setup options.",values:{link:e=>T().createElement(wt.A,{href:mt.Uk.SETUP_PUSH_NOTIFICATIONS,location:"push_settings"},e)}}):i=this.state.pushNotificationServerType===fg?T().createElement(N.FormattedMessage,{id:"admin.email.mhpnsHelp",defaultMessage:"Download <linkIOS>Mattermost iOS app</linkIOS> from iTunes. Download <linkAndroid>Mattermost Android app</linkAndroid> from Google Play. Learn more about the <linkHPNS>Mattermost Hosted Push Notification Service</linkHPNS>.",values:{linkIOS:e=>T().createElement(wt.A,{href:"https://mattermost.com/pl/ios-app/",location:"push_settings"},e),linkAndroid:e=>T().createElement(wt.A,{href:"https://mattermost.com/pl/android-app/",location:"push_settings"},e),linkHPNS:e=>T().createElement(wt.A,{href:mt.Uk.SETUP_PUSH_NOTIFICATIONS,location:"push_settings"},e)}}):this.state.pushNotificationServerType===Eg?T().createElement(N.FormattedMessage,{id:"admin.email.mtpnsHelp",defaultMessage:"Download <linkIOS>Mattermost iOS app</linkIOS> from iTunes. Download <linkAndroid>Mattermost Android app</linkAndroid> from Google Play. Learn more about the <linkHPNS>Mattermost Hosted Push Notification Service</linkHPNS>.",values:{linkIOS:e=>T().createElement(wt.A,{href:"https://mattermost.com/pl/ios-app/",location:"push_settings"},e),linkAndroid:e=>T().createElement(wt.A,{href:"https://mattermost.com/pl/android-app/",location:"push_settings"},e),linkHPNS:e=>T().createElement(wt.A,{href:mt.Uk.SETUP_PUSH_NOTIFICATIONS,location:"push_settings"},e)}}):T().createElement(N.FormattedMessage,{id:"admin.email.easHelp",defaultMessage:"Learn more about compiling and deploying your own mobile apps from an <link>Enterprise App Store</link>.",values:{link:e=>T().createElement(wt.A,{href:"https://docs.mattermost.com/",location:"push_settings"},e)}}),this.state.pushNotificationServerType===fg&&(t=T().createElement("div",{className:"form-group"},T().createElement("div",{className:"col-sm-4"}),T().createElement("div",{className:"col-sm-8"},T().createElement("input",{type:"checkbox",checked:this.state.agree,onChange:this.handleAgreeChange,disabled:this.props.isDisabled}),T().createElement(N.FormattedMessage,{id:"admin.email.agreeHPNS",defaultMessage:" I understand and accept the Mattermost Hosted Push Notification Service <linkTerms>Terms of Service</linkTerms> and <linkPrivacy>Privacy Policy</linkPrivacy>.",values:{linkTerms:e=>T().createElement(wt.A,{href:"https://mattermost.com/hpns-terms/",location:"push_settings"},e),linkPrivacy:e=>T().createElement(wt.A,{href:"https://mattermost.com/data-processing-addendum/",location:"push_settings"},e)}})))),this.state.pushNotificationServerType===fg){const e=[{value:vg,text:this.props.intl.formatMessage({id:"admin.email.pushServerLocationUS",defaultMessage:"US"})},{value:yg,text:this.props.intl.formatMessage({id:"admin.email.pushServerLocationDE",defaultMessage:"Germany"})}];s=T().createElement(bt,{id:Sg,values:e,label:T().createElement(N.FormattedMessage,{id:"admin.email.pushServerLocationTitle",defaultMessage:"Push Notification Server location:"}),value:this.state.pushNotificationServerLocation,onChange:this.handleDropdownChange,setByEnv:this.isPushNotificationServerSetByEnv(),disabled:this.props.isDisabled})}return T().createElement(is,null,T().createElement(bt,{id:_g,values:e,label:T().createElement(N.FormattedMessage,Cg.pushTitle),value:this.state.pushNotificationServerType,onChange:this.handleDropdownChange,helpText:a,setByEnv:this.isPushNotificationServerSetByEnv(),disabled:this.props.isDisabled}),s,t,T().createElement(ls,{id:"pushNotificationServer",label:T().createElement(N.FormattedMessage,Cg.pushServerTitle),placeholder:(0,N.defineMessage)({id:"admin.email.pushServerEx",defaultMessage:'E.g.: "https://push-test.mattermost.com"'}),helpText:i,value:this.state.pushNotificationServer,onChange:this.handleChange,disabled:this.props.isDisabled||this.state.pushNotificationServerType!==bg,setByEnv:this.isSetByEnv("EmailSettings.PushNotificationServer")}),T().createElement(ls,{id:"maxNotificationsPerChannel",type:"number",label:T().createElement(N.FormattedMessage,{id:"admin.team.maxNotificationsPerChannelTitle",defaultMessage:"Max Notifications Per Channel:"}),placeholder:(0,N.defineMessage)({id:"admin.team.maxNotificationsPerChannelExample",defaultMessage:'E.g.: "1000"'}),helpText:T().createElement(N.FormattedMessage,{id:"admin.team.maxNotificationsPerChannelDescription",defaultMessage:"Maximum total number of users in a channel before users typing messages, @all, @here, and @channel no longer send notifications because of performance."}),value:this.state.maxNotificationsPerChannel,onChange:this.handleChange,setByEnv:this.isSetByEnv("TeamSettings.MaxNotificationsPerChannel"),disabled:this.props.isDisabled}))}))}getStateFromConfig(e){let t=bg,s=!1,a=vg;e.EmailSettings.SendPushNotifications?e.EmailSettings.PushNotificationServer===mt.YM.MHPNS_US&&"true"===this.props.license.IsLicensed&&"true"===this.props.license.MHPNS?(t=fg,a=vg,s=!0):e.EmailSettings.PushNotificationServer===mt.YM.MHPNS_DE&&"true"===this.props.license.IsLicensed&&"true"===this.props.license.MHPNS?(t=fg,a=yg,s=!0):e.EmailSettings.PushNotificationServer===mt.YM.MTPNS&&(t=Eg):t=hg;let i=e.EmailSettings.PushNotificationServer;return t===Eg?i=mt.YM.MTPNS:t===fg&&(i=Mg[a]),{pushNotificationServerType:t,pushNotificationServerLocation:a,pushNotificationServer:i,maxNotificationsPerChannel:e.TeamSettings.MaxNotificationsPerChannel,agree:s}}renderTitle(){return T().createElement(N.FormattedMessage,Cg.pushNotificationServer)}}),Ng=function(){return T().createElement("svg",{width:"133",height:"106",viewBox:"0 0 133 106",fill:"none",xmlns:"http://www.w3.org/2000/svg"},T().createElement("rect",{x:"32.5",y:"0.5",width:"68.5",height:"105",rx:"4",fill:"#FFBC1F"}),T().createElement("rect",{x:"0.5",y:"37",width:"132.5",height:"68.5",rx:"4",fill:"#CC8F00"}),T().createElement("path",{d:"M101 3.32155V103.178C100.83 104.887 100.246 105.827 99.2368 106H34.5181C33.3391 105.827 32.6699 104.887 32.5 103.178V3.32155C32.6699 1.61349 33.3391 0.672969 34.5181 0.5H99.2368C100.246 0.672969 100.83 1.61349 101 3.32155Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M80.0115 79.0244H53.7559V105.989H80.0115V79.0244Z",fill:"#E8E9ED"}),T().createElement("rect",{x:"30.5",y:"0.5",width:"72.5",height:"7",rx:"1.5",fill:"#1E325C"}),T().createElement("rect",{x:"51",y:"75.5",width:"31.5",height:"7",rx:"1.5",fill:"#1E325C"}),T().createElement("rect",{x:"66",y:"82",width:"2",height:"24",fill:"#1E325C"}),T().createElement("rect",{x:"6.5",y:"49",width:"8",height:"15.5",rx:"1.5",fill:"#7A5600"}),T().createElement("rect",{x:"38",y:"14",width:"9",height:"19",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"73",y:"14",width:"9",height:"19",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"38",y:"38",width:"9",height:"19",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"38",y:"62",width:"9",height:"9",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"38",y:"75.5",width:"9",height:"9",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"38",y:"89",width:"9",height:"9",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"73",y:"38",width:"9",height:"19",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"73",y:"62",width:"9",height:"9",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"51",y:"14",width:"9",height:"19",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"86",y:"14",width:"9",height:"19",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"51",y:"38",width:"9",height:"19",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"51",y:"62",width:"9",height:"9",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"86",y:"38",width:"9",height:"19",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"86",y:"62",width:"9",height:"9",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"86",y:"75.5",width:"9",height:"9",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"86",y:"89",width:"9",height:"9",rx:"1.5",fill:"#CC8F00"}),T().createElement("rect",{x:"107",y:"49",width:"8",height:"15.5",rx:"1.5",fill:"#7A5600"}),T().createElement("rect",{x:"6.5",y:"70.5",width:"8",height:"8",rx:"1.5",fill:"#7A5600"}),T().createElement("rect",{x:"107",y:"70.5",width:"8",height:"8",rx:"1.5",fill:"#7A5600"}),T().createElement("rect",{x:"6.5",y:"85",width:"8",height:"8",rx:"1.5",fill:"#7A5600"}),T().createElement("rect",{x:"107",y:"85",width:"8",height:"8",rx:"1.5",fill:"#7A5600"}),T().createElement("rect",{x:"18.5",y:"49",width:"8",height:"15.5",rx:"1.5",fill:"#7A5600"}),T().createElement("rect",{x:"119",y:"49",width:"8",height:"15.5",rx:"1.5",fill:"#7A5600"}),T().createElement("rect",{x:"18.5",y:"70.5",width:"8",height:"8",rx:"1.5",fill:"#7A5600"}),T().createElement("rect",{x:"119",y:"70.5",width:"8",height:"8",rx:"1.5",fill:"#7A5600"}),T().createElement("rect",{x:"18.5",y:"85",width:"8",height:"8",rx:"1.5",fill:"#7A5600"}),T().createElement("rect",{x:"119",y:"85",width:"8",height:"8",rx:"1.5",fill:"#7A5600"}))};var wg=s(77828),Rg=s(23860),Og=s(22204);function Ig(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function kg(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Ig(Object(s),!0).forEach((function(t){Pg(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Ig(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Pg(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const xg=(e,t,s)=>{var a;return kg(kg({},e),{},{display_name:t.display_name,team_display_name:null!==(a=null==s?void 0:s.display_name)&&void 0!==a?a:""})},Dg=()=>{const e=(0,a.useSelector)(p.vZ),t=(0,A.useMemo)((()=>e.reduce(((e,t)=>kg(kg({},e),{},{[t.id]:t})),{})),[e]);return t},Lg=e=>({pathname:"/admin_console/site_config/secure_connections/".concat(e.remote_id),state:e}),Fg=e=>Boolean(e.site_url&&!e.site_url.startsWith("pending_")),Ug=e=>!0===e,Bg=e=>e instanceof Error,jg=x().h3.withConfig({displayName:"SectionHeading"})(["&&&{margin-bottom:8px;}"]),Hg=x().label.withConfig({displayName:"FormFieldLabel"})(["width:100%;.DropdownInput.Input_container{margin-top:0;}& + &{margin-top:30px;}"]),Gg=x().div.attrs({className:"header"}).withConfig({displayName:"SectionHeader"})(["&&&{padding:24px 32px;","}"],(e=>{let{$borderless:t}=e;return!t&&(0,P.css)(["border-bottom:1px solid var(--center-channel-color-12,rgba(63,67,80,0.12));"])})),qg=x().div.attrs({className:"content"}).withConfig({displayName:"SectionContent"})(["&&&{padding:",";border-bottom:1px solid var(--center-channel-color-12,rgba(63,67,80,0.12));}"],(e=>{let{$compact:t}=e;return t?"24px 32px":"48px 32px"})),Vg=x().div.withConfig({displayName:"ModalBody"})(["padding:0 32px;display:flex;flex-direction:column;gap:20px;"]),zg=x().section.attrs({className:"AdminPanel"}).withConfig({displayName:"AdminSection"})(["&&{overflow:visible;}"]),Wg=x().h4.withConfig({displayName:"PlaceholderHeading"})(["&&{font-size:20px;font-weight:600;line-height:28px;margin-bottom:4px;}"]),Yg=x().p.withConfig({displayName:"PlaceholderParagraph"})(["&&{font-size:14px;}"]),Zg=x().p.withConfig({displayName:"ModalParagraph"})(["&&{font-size:12px;line-height:16px;font-weight:400;color:rgba(var(--center-channel-color-rgb),0.72);}"]),Jg=x().div.withConfig({displayName:"PlaceholderContainer"})(["display:flex;place-items:center;flex-direction:column;gap:5px;svg{margin:30px 30px 20px;}hgroup{text-align:center;}"]),Kg=e=>T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},e.children)),Qg=x().strong.withConfig({displayName:"InnerLabel"})(["font-size:14px;line-height:18px;display:inline-block;margin-bottom:10px;"]),Xg=x().small.withConfig({displayName:"HelpText"})(["font-size:14px;font-weight:400;line-height:20px;color:rgba(var(--center-channel-color-rgb),0.72);display:block;margin-top:10px;"]),$g=x().input.attrs({className:"form-control secure-connections-input"}).withConfig({displayName:"Input"})(["font-weight:normal;"]),eh=e=>{let{label:t,children:s,helpText:a}=e;return T().createElement(Hg,null,t&&T().createElement(Qg,null,t),s,a&&T().createElement(Xg,null,a))};eh.propTypes={label:k().string,children:k().oneOfType([k().node,k().arrayOf(k().node)]).isRequired,helpText:k().string};const th=x().div.withConfig({displayName:"ModalFieldsetWrapper"})(["width:100%;display:flex;flex-direction:column;gap:14px;.secure-connections-modal-input .form-control{border:none !important;background:none !important;height:34px !important;}.Input_container{margin-bottom:10px;}.DropdownInput.Input_container{margin-top:0;}"]),sh=x().legend.withConfig({displayName:"ModalLegend"})(["font-size:16px;font-weight:600;line-height:18px;border-bottom:none;"]),ah=e=>T().createElement(th,null,e.legend&&T().createElement(sh,null,e.legend),e.children),ih=x().div.withConfig({displayName:"ModalNoticeWrapper"})(["margin:15px 0 25px 0;"]),nh=x().button.attrs({className:"btn btn-secondary"}).withConfig({displayName:"Button"})(["margin:-1px -2px;"]),rh=x().button.attrs({className:"btn btn-link"}).withConfig({displayName:"LinkButton"})(["font-weight:normal;",";"],(e=>{let{$destructive:t}=e;return t&&(0,P.css)(["&&{color:#D24B4E;}"])})),oh=e=>{let{rc:t}=e;if(!Fg(t))return T().createElement(N.FormattedMessage,{tagName:uh,id:"admin.secure_connections.status_pending",defaultMessage:"Connection Pending"});const s=(e=>Rg.Interval.before(Rg.DateTime.now(),{minutes:5}).contains(Rg.DateTime.fromMillis(e.last_ping_at)))(t)?T().createElement(N.FormattedMessage,{tagName:mh,id:"admin.secure_connections.status_connected",defaultMessage:"Connected"}):T().createElement(N.FormattedMessage,{tagName:ph,id:"admin.secure_connections.status_offline",defaultMessage:"Offline"});return t.last_ping_at?T().createElement(ys.A,{title:T().createElement(T().Fragment,null,T().createElement(N.FormattedMessage,{id:"admin.secure_connections.status_tooltip",defaultMessage:"Last ping: {timestamp}",values:{timestamp:T().createElement(wg.Ay,{value:t.last_ping_at,ranges:dh})}}),T().createElement("br",null),T().createElement(lh,null,t.site_url))},T().createElement("div",null,s)):s},lh=x().div.withConfig({displayName:"UrlWrapper"})(["white-space:break-spaces;word-wrap:none;"]),dh=[wg.hp._W.second,wg.hp._W.minute,wg.hp._W.hour],ch=(0,P.css)(["font-size:12px;color:white;border-radius:4px;padding:2px 4px;"]),mh=x().strong.withConfig({displayName:"ConnectedLabel"})(["",";background-color:#3DB887;"],ch),uh=x().strong.withConfig({displayName:"PendingConnectionLabel"})(["",";background-color:#F5AB00;"],ch),ph=x().strong.withConfig({displayName:"OfflineConnectionLabel"})(["",";background-color:#C43133;"],ch);s(28937),s(80345),s(57278),s(47156),s(72020);const gh=e=>{const t=e.teamsById[e.value],{locale:s}=(0,N.useIntl)(),a=(0,A.useCallback)((t=>{const s=t.value;e.onChange(s)}),[]),i=Object.values(e.teamsById).map((e=>({value:e.id,label:e.display_name}))).sort(((e,t)=>e.label.localeCompare(t.label,s)));return T().createElement(qo.A,{className:"team_selector",testId:e.testId,required:!0,onChange:a,value:t?{label:t.display_name,value:t.id}:void 0,options:i,name:"team_selector",legend:e.legend})};gh.propTypes={value:k().string.isRequired,onChange:k().func.isRequired,testId:k().string.isRequired,legend:k().string};const hh=gh,fh=()=>{};function Eh(e){let{onExited:t,onCancel:s,onConfirm:a,onHide:i}=e;const{formatMessage:n}=(0,N.useIntl)(),[r,o]=(0,A.useState)(""),[l,d]=(0,A.useState)(""),[c,m]=(0,A.useState)(""),[u,p]=(0,A.useState)(""),[g,h]=(0,A.useState)(!1),f=Dg(),E={displayName:!r,defaultTeamId:!l,inviteCode:!c,password:!u},b=Object.values(E).every((e=>!e)),v=async()=>{h(!0);try{await a({display_name:r,default_team_id:l,invite:c,password:u}),h(!1),i()}catch(e){h(e)}},y=n({id:"admin.secure_connections.accept_invite.share_title",defaultMessage:"Accept a connection invite"}),M=n({id:"admin.secure_connections.accept_invite.confirm.done.button",defaultMessage:"Accept"});return T().createElement(Bi.zW,{confirmButtonText:M,isConfirmDisabled:!b||Ug(g),handleCancel:null!=s?s:fh,handleConfirm:v,handleEnterKeyPress:v,modalHeaderText:y,onExited:t,compassDesign:!0,bodyOverflowVisible:!0,autoCloseOnConfirmButton:!1,errorText:Bg(g)&&T().createElement(N.FormattedMessage,{id:"admin.secure_connections.accept_invite.saving_changes_error",defaultMessage:"There was an error while accepting the invite."})},Ug(g)?T().createElement(Na.A,null):T().createElement(T().Fragment,null,T().createElement(N.FormattedMessage,{id:"admin.secure_connections.accept_invite.prompt",defaultMessage:"Accept a secure connection from another server",tagName:Zg}),T().createElement(ah,null,T().createElement(Vo.A,{type:"text",name:"display-name",containerClassName:"secure-connections-modal-input",placeholder:n({id:"admin.secure_connections.accept_invite.organization_name",defaultMessage:"Organization name"}),value:r,onChange:e=>{o(e.target.value)},"data-testid":"display-name"}),T().createElement(N.FormattedMessage,{id:"admin.secure_connections.accept_invite.select_team",defaultMessage:"Please select the destination team where channels will be placed.",tagName:Zg}),T().createElement(hh,{testId:"destination-team-input",value:l,teamsById:f,onChange:d,legend:n({id:"admin.secure_connections.accept_invite.select_team.legend",defaultMessage:"Select a team"})}),T().createElement(N.FormattedMessage,{id:"admin.secure_connections.accept_invite.prompt_invite_password",defaultMessage:"Enter the encrypted invitation code shared to you by the admin of the server you are connecting with.",tagName:Zg}),T().createElement(Vo.A,{type:"text",name:"invite-code",containerClassName:"secure-connections-modal-input",placeholder:n({id:"admin.secure_connections.accept_invite.invite_code",defaultMessage:"Encrypted invitation code"}),value:c,onChange:e=>{m(e.target.value)},"data-testid":"invite-code"}),T().createElement(Vo.A,{type:"text",name:"password",containerClassName:"secure-connections-modal-input",placeholder:n({id:"admin.secure_connections.accept_invite.password",defaultMessage:"Password"}),value:u,onChange:e=>{p(e.target.value)},"data-testid":"password"}))))}Eh.propTypes={creating:k().bool,password:k().string,onConfirm:k().func.isRequired,onCancel:k().func,onExited:k().func.isRequired,onHide:k().func.isRequired};const bh=Eh;var vh=s(61293);const yh=()=>{};function Mh(e){let{creating:t,onExited:s,onCancel:a,onConfirm:i}=e;const{formatMessage:n}=(0,N.useIntl)(),[r,o]=(0,A.useState)(""),[l,d]=(0,A.useState)(""),[c,m]=(0,A.useState)(!1),{copiedRecently:u,onClick:p}=(0,vh.A)({text:r}),{copiedRecently:g,onClick:h}=(0,vh.A)({text:l});(0,A.useEffect)((()=>{E()}),[]);const f=Boolean(r&&l),E=async()=>{if(f)return;m(!0);const e=await i();if(m(!1),e){const{share:t}=e;o(t.invite),d(t.password)}};let b=n({id:"admin.secure_connections.create_invite.share_title",defaultMessage:"Invitation code"});t&&(b=n(f?{id:"admin.secure_connections.create_invite.create_title_done",defaultMessage:"Connection created"}:{id:"admin.secure_connections.create_invite.create_title",defaultMessage:"Create connection"}));const v=T().createElement(N.FormattedMessage,{id:"admin.secure_connections.create_invite.share.message",defaultMessage:"Please share the invitation code and password with the administrator of the server you want to connect with.",tagName:Zg}),y=n(f?{id:"admin.secure_connections.create_invite.confirm.done.button",defaultMessage:"Done"}:{id:"admin.secure_connections.create_invite.confirm.save.button",defaultMessage:"Save"}),M=f?T().createElement(ih,null,T().createElement(Cn.A,{title:n({id:"admin.secure_connections.create_invite.create_invite.notice.title",defaultMessage:"Share these two separately to avoid a security compromise"}),type:"warning"})):void 0;return T().createElement(Bi.zW,{confirmButtonText:y,isConfirmDisabled:!f,handleCancel:null!=a?a:yh,handleConfirm:E,handleEnterKeyPress:E,modalHeaderText:b,onExited:s,compassDesign:!0,autoCloseOnConfirmButton:f,backdrop:"static"},c?T().createElement(Na.A,null):T().createElement(T().Fragment,null,v,M,T().createElement(ah,{legend:f?n({id:"admin.secure_connections.create_invite.share.label",defaultMessage:"Share this code and password"}):void 0},r&&T().createElement(Vo.A,{type:"text",name:"invite-code",containerClassName:"secure-connections-modal-input",placeholder:n({id:"admin.secure_connections.create_invite.share.invite_code",defaultMessage:"Encrypted invitation code"}),value:r,"data-testid":"invite-code",readOnly:!0,addon:T().createElement(nh,{onClick:p},u?Sh:_h)}),T().createElement(Vo.A,{type:"text",name:"password",containerClassName:"secure-connections-modal-input",placeholder:n({id:"admin.secure_connections.create_invite.share.password",defaultMessage:"Password"}),value:l,onChange:e=>{d(e.target.value)},"data-testid":"password",readOnly:f,addon:f?T().createElement(nh,{onClick:h},g?Sh:_h):void 0}))))}Mh.propTypes={creating:k().bool,onConfirm:k().func.isRequired,onCancel:k().func,onExited:k().func.isRequired};const _h=T().createElement(T().Fragment,null,T().createElement(R.ContentCopyIcon,{size:18}),T().createElement(N.FormattedMessage,vh.D.copy)),Sh=T().createElement(T().Fragment,null,T().createElement(R.CheckIcon,{size:18}),T().createElement(N.FormattedMessage,vh.D.copied)),Ch=Mh,Ah=()=>{};function Th(e){let{displayName:t,onExited:s,onCancel:a,onConfirm:i}=e;const{formatMessage:n}=(0,N.useIntl)(),r=n({id:"admin.secure_connections.confirm.delete.title",defaultMessage:"Delete secure connection"}),o=n({id:"admin.secure_connections.confirm.delete.button",defaultMessage:"Yes, delete"}),l=T().createElement(N.FormattedMessage,{id:"admin.secure_connections.confirm.delete.text",defaultMessage:"Are you sure you want to delete the secure connection <strong>{displayName}</strong>?",values:{strong:e=>T().createElement("strong",null,e),displayName:t}});return T().createElement(Bi.zW,{confirmButtonText:o,handleCancel:null!=a?a:Ah,handleConfirm:i,modalHeaderText:r,onExited:s,compassDesign:!0,isDeleteModal:!0},l)}Th.propTypes={displayName:k().string.isRequired,onConfirm:k().func.isRequired,onCancel:k().func,onExited:k().func.isRequired};const Nh=Th;var wh=s(34005);const Rh=["channel","size"];function Oh(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Ih(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Oh(Object(s),!0).forEach((function(t){kh(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Oh(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function kh(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Ph=()=>{};function xh(e){let{onExited:t,onCancel:s,onConfirm:i,onHide:n,remoteId:r}=e;const{formatMessage:o}=(0,N.useIntl)(),l=(0,a.useDispatch)(),[d]=(e=>{const[t,s]=(0,A.useState)(),[a,i]=(0,A.useState)(!0),n=Ug(a),r=!n&&a,o=async()=>{i(!0);try{const t=await O.mT.getSharedChannelRemotes(e,{include_deleted:!0,include_unconfirmed:!0});s(null==t?void 0:t.reduce(((e,t)=>(e[t.channel_id]=t,e)),{})),i(!1)}catch(e){i(e)}};return(0,A.useEffect)((()=>{o()}),[e]),[t,{loading:n,error:r,fetch:o}]})(r),[c,m]=(0,A.useState)(""),[u,p]=(0,A.useState)([]),[g,h]=(0,A.useState)(),[f,E]=(0,A.useState)(!1),b=(0,A.useCallback)((e=>{h((t=>{if(t&&null!=e&&e.length)return e.reduce(((e,s)=>{let{id:a}=s;return t[a]?Ih(Ih({},e),{},{[a]:t[a]}):e}),{})})),p(null!=e?e:[]),E(!1)}),[]),v=Gh((async(e,t)=>{if(!t)return[];const{data:s}=await l((0,ji.Q1)(t,{page:0,per_page:20,exclude_remote:!0,signal:e}));return s?s.channels.filter((e=>{let{id:t}=e;const s=null==d?void 0:d[t];return!(s&&0===s.delete_at||(s&&s.delete_at,0))})):[]}),[ji.Q1,d],{delay:Hh});return T().createElement(Bi.zW,{modalHeaderText:T().createElement(N.FormattedMessage,{id:"admin.secure_connections.shared_channels.add.title",defaultMessage:"Select channels"}),confirmButtonText:f?T().createElement(N.FormattedMessage,{id:"admin.secure_connections.shared_channels.add.close.button",defaultMessage:"Close"}):T().createElement(N.FormattedMessage,{id:"admin.secure_connections.shared_channels.add.confirm.button",defaultMessage:"Share"}),handleCancel:null!=s?s:Ph,handleConfirm:async()=>{if(f)return void n();const{errors:e}=await i(u);Object.keys(e).length?(h(e),E(!0)):n()},autoCloseOnConfirmButton:!1,onExited:t,compassDesign:!0,bodyPadding:!1,bodyOverflowVisible:!0,isConfirmDisabled:!u.length},T().createElement(Vg,null,T().createElement(N.FormattedMessage,{tagName:Zg,id:"admin.secure_connections.shared_channels.add.message",defaultMessage:"Please select a team and channels to share"}),T().createElement(wh.A,{placeholder:T().createElement(N.FormattedMessage,{id:"admin.secure_connections.shared_channels.add.input_placeholder",defaultMessage:"e.g. {channel_name}",values:{channel_name:mt.Ay.DEFAULT_CHANNEL_UI_NAME}}),ariaLabel:o({id:"admin.secure_connections.shared_channels.add.input_label",defaultMessage:"Search and add channels"}),channelsLoader:v,inputValue:c,onInputChange:m,value:u,onChange:b,autoFocus:!0,formatOptionLabel:e=>T().createElement(T().Fragment,null,T().createElement(Fh,{channel:e}),T().createElement(Bh,{className:"selected-hidden"},"~",e.name),T().createElement(Bh,{className:"selected-hidden"},e.team_display_name))}),g&&Object.entries(g).map((e=>{let[t,s]=e;return T().createElement(Dh,{key:t,id:t,err:s})}))))}xh.propTypes={onConfirm:k().func.isRequired,onCancel:k().func,onExited:k().func.isRequired,remoteId:k().string.isRequired,onHide:k().func.isRequired};const Dh=e=>{const t=(0,a.useSelector)((t=>(0,Hi.c)(t,e.id))),s=t?T().createElement(Fh,{bold:!0,channel:t}):e.id;let i=T().createElement(N.FormattedMessage,{id:"admin.secure_connections.shared_channels.add.error.inviting_remote_to_channel",defaultMessage:"{channel} could not be added to this connection.",values:{channel:s}});return"api.command_share.channel_invite_not_home.error"===e.err.server_error_id&&(i=T().createElement(N.FormattedMessage,{id:"admin.secure_connections.shared_channels.add.error.channel_invite_not_home",defaultMessage:"{channel} could not be added to this connection because it originates from another connection.",values:{channel:s}})),T().createElement(Cn.A,{title:i,type:"danger"})},Lh=x().span.withConfig({displayName:"ChannelLabelWrapper"})(["text-overflow:ellipsis;white-space:nowrap;overflow:hidden;svg{vertical-align:middle;margin-left:6px;margin-right:10px;}.channels-input__multi-value__label &{font-weight:600;}"]),Fh=e=>{let{channel:t,bold:s}=e;const a=s?"strong":"span";return T().createElement(Lh,null,T().createElement(Uh,{channel:t,size:20,color:"rgba(var(--center-channel-color-rgb), 0.64)"}),T().createElement(a,null,null==t?void 0:t.display_name))},Uh=e=>{let{channel:t,size:s=16}=e,a=function(e,t){if(null==e)return{};var s,a,i=function(e,t){if(null==e)return{};var s={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;s[a]=e[a]}return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)s=n[a],-1===t.indexOf(s)&&{}.propertyIsEnumerable.call(e,s)&&(i[s]=e[s])}return i}(e,Rh),i=R.GlobeIcon;return(null==t?void 0:t.type)===mt.Ay.PRIVATE_CHANNEL&&(i=R.LockIcon),(0,Wi.Oj)(t)&&(i=R.ArchiveOutlineIcon),T().createElement(i,Object.assign({size:s},a))},Bh=x().span.withConfig({displayName:"SecondaryTextRight"})(["color:rgba(var(--center-channel-color-rgb),0.64);padding-left:5px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;&:last-child{margin-left:auto;}"]),jh=xh,Hh=250,Gh=(e,t,s)=>{const a=(0,A.useRef)(),i=(0,A.useCallback)((()=>(a.current={controller:new AbortController},a.current)),[]),n=(0,A.useCallback)((()=>{if(!a.current)return;const{controller:e,handler:t}=a.current;e.abort(new DOMException("stale request")),t&&clearTimeout(t),a.current=void 0}),[]);return(0,A.useEffect)((()=>n),[n]),(0,A.useCallback)((async function(){for(var t=arguments.length,a=new Array(t),r=0;r<t;r++)a[r]=arguments[r];n();const o=i();return new Promise(((t,i)=>{o.handler=setTimeout((async()=>{e(o.controller.signal,...a).then(t,i)}),(null==s?void 0:s.delay)||Hh)}))}),[i,n,...t])},qh=()=>{};function Vh(e){let{onExited:t,onCancel:s,onConfirm:a}=e;return T().createElement(Bi.zW,{modalHeaderText:T().createElement(N.FormattedMessage,{id:"admin.secure_connections.shared_channels.confirm.remove.title",defaultMessage:"Remove channel"}),handleCancel:null!=s?s:qh,handleConfirm:()=>{a()},confirmButtonText:T().createElement(N.FormattedMessage,{id:"admin.secure_connections.shared_channels.confirm.remove.button",defaultMessage:"Remove"}),onExited:t,compassDesign:!0,isDeleteModal:!0,bodyPadding:!1},T().createElement(Vg,null,T().createElement(N.FormattedMessage,{tagName:Zg,id:"admin.secure_connections.shared_channels.confirm.remove.message",defaultMessage:"The channel will be removed from this connection and will no longer be shared with it."})))}Vh.propTypes={onConfirm:k().func.isRequired,onCancel:k().func,onExited:k().func.isRequired};const zh=Vh;function Wh(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Yh(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Wh(Object(s),!0).forEach((function(t){Zh(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Wh(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Zh(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}function Jh(e){const{remoteCluster:t}=e,s="".concat(t.remote_id,"-title");return T().createElement(Xh,{to:Lg(t),"aria-labelledby":s},T().createElement($h,{id:s},t.display_name),T().createElement(ef,null,T().createElement(oh,{rc:t}),T().createElement(Qh,e)))}Jh.propTypes={onDeleteSuccess:k().func.isRequired,disabled:k().bool.isRequired};const Kh="secure_connection_row_menu",Qh=e=>{let{remoteCluster:t,onDeleteSuccess:s,disabled:i}=e;const{formatMessage:n}=(0,N.useIntl)(),r=(0,w.useHistory)(),{promptDelete:o}=(e=>{const t=(0,a.useDispatch)();return{promptDelete:()=>new Promise(((s,a)=>{t((0,Gr.q)({modalId:mt.IQ.SECURE_CONNECTION_DELETE,dialogType:Nh,dialogProps:{displayName:e.display_name,onConfirm:()=>O.mT.deleteRemoteCluster(e.remote_id).then(s,a)}}))}))}})(t),{promptCreateInvite:l}=(e=>{const t=(0,a.useDispatch)(),[s,i]=(0,A.useState)(!1);return{promptCreateInvite:()=>new Promise(((s,a)=>{t((0,Gr.q)({modalId:mt.IQ.SECURE_CONNECTION_CREATE_INVITE,dialogType:Ch,dialogProps:{onConfirm:async()=>{try{const t=Array.from(window.crypto.getRandomValues(new Uint32Array(16))).map((e=>"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~_!@-#$^"[e%70])).join("");i(!0);const a=await O.mT.generateInviteRemoteCluster(e.remote_id,{password:t});return i(!1),s(e),{remoteCluster:e,share:{invite:a,password:t}}}catch(e){a(e)}i(!1)}}}))})),saving:s}})(t);return T().createElement(Di.mc,{menuButton:{id:"".concat(Kh,"-button-").concat(t.remote_id),class:oe()("btn btn-tertiary btn-sm connection-row-menu-button",{disabled:i}),disabled:i,children:!i&&T().createElement(R.DotsHorizontalIcon,{size:16}),"aria-label":n({id:"admin.secure_connection_row.menu-button.aria_label",defaultMessage:"Connection options for {connection}"},{connection:t.display_name})},menu:{id:Kh,"aria-label":n({id:"admin.secure_connection_row.menu.aria_label",defaultMessage:"secure connection row menu"})}},!Fg(t)&&T().createElement(Di.q7,{id:"".concat(Kh,"-generate_invite"),leadingElement:T().createElement(R.CodeTagsIcon,{size:18}),labels:T().createElement(N.FormattedMessage,{id:"admin.secure_connection_row.menu.share",defaultMessage:"Generate invitation code"}),onClick:()=>{l()}}),T().createElement(Di.q7,{id:"".concat(Kh,"-edit"),leadingElement:T().createElement(R.PencilOutlineIcon,{size:18}),labels:T().createElement(N.FormattedMessage,{id:"admin.secure_connection_row.menu.edit",defaultMessage:"Edit"}),onClick:()=>{r.push(Lg(t))}}),T().createElement(Di.q7,{id:"".concat(Kh,"-delete"),isDestructive:!0,leadingElement:T().createElement(R.TrashCanOutlineIcon,{size:18}),labels:T().createElement(N.FormattedMessage,{id:"admin.secure_connection_row.menu.delete",defaultMessage:"Delete"}),onClick:()=>{o().then(s)}}))};Qh.propTypes={onDeleteSuccess:k().func.isRequired,disabled:k().bool.isRequired};const Xh=x()(w.Link).attrs({className:"secure-connection"}).withConfig({displayName:"RowLink"})(["display:flex;justify-content:space-between;align-items:center;padding:20px 35px;border-bottom:1px solid var(--center-channel-color-12,rgba(63,67,80,0.12));color:var(--center-channel-color);&:hover{text-decoration:none;color:var(--center-channel-color);}&:last-child{border-bottom:0;}.connection-row-menu-button{padding:0px 8px;}"]),$h=x().strong.withConfig({displayName:"Title"})(["font-size:14px;"]),ef=x().div.withConfig({displayName:"Detail"})(["display:flex;gap:20px;align-items:center;"]),tf=e=>T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},e.children)),sf=e=>{let{disabled:t,serviceNotRunning:s}=e;return T().createElement(qg,null,s&&T().createElement(Cn.A,{type:"danger",title:T().createElement(N.FormattedMessage,rf.serviceNotRunning)}),T().createElement(Jg,null,T().createElement(Ng,null),T().createElement("hgroup",null,T().createElement(N.FormattedMessage,Object.assign({tagName:Wg},rf.placeholderTitle)),T().createElement(N.FormattedMessage,Object.assign({tagName:"p"},rf.placeholderSubtitle))),T().createElement(nf,{buttonClassNames:"btn-tertiary",disabled:t})))},af="secure_connections_add_menu",nf=e=>{let{buttonClassNames:t,disabled:s}=e;const{formatMessage:i}=(0,N.useIntl)(),n=(0,w.useHistory)(),{promptAcceptInvite:r}=(()=>{const e=(0,a.useDispatch)(),[t,s]=(0,A.useState)(!1);return{promptAcceptInvite:()=>new Promise(((t,a)=>{e((0,Gr.q)({modalId:mt.IQ.SECURE_CONNECTION_ACCEPT_INVITE,dialogType:bh,dialogProps:{onConfirm:async e=>{try{s(!0);const a=await O.mT.acceptInviteRemoteCluster(Yh(Yh({},e),{},{name:(0,Pi.aM)(e.display_name)}));return s(!1),t(a),a}catch(e){throw a(e),s(e),e}}}}))})),saving:t}})();return T().createElement(Di.mc,{menuButton:{id:"".concat(af,"-button"),class:oe()("btn",null!=t?t:"btn-primary btn-sm",{disabled:s}),disabled:s,children:T().createElement(T().Fragment,null,T().createElement(N.FormattedMessage,rf.addConnection),!s&&T().createElement("i",{"aria-hidden":"true",className:"icon icon-chevron-down"}))},menu:{id:af,"aria-label":i(rf.menuAriaLabel)}},T().createElement(Di.q7,{id:"".concat(af,"-add_connection"),labels:T().createElement(N.FormattedMessage,rf.createConnection),onClick:()=>{n.push({pathname:"/admin_console/site_config/secure_connections/create"})}}),T().createElement(Di.q7,{id:"".concat(af,"-accept_invitation"),labels:T().createElement(N.FormattedMessage,rf.acceptInvitation),onClick:async()=>{const e=await r();e&&n.push(Lg(e))}}))},rf=(0,N.defineMessages)({pageTitle:{id:"admin.sidebar.secureConnections",defaultMessage:"Connected Workspaces"},title:{id:"admin.secure_connections.title",defaultMessage:"Connected Workspaces"},subtitle:{id:"admin.secure_connections.subtitle",defaultMessage:"Connected workspaces with this server"},placeholderTitle:{id:"admin.secure_connections.placeholder.title",defaultMessage:"Share channels"},placeholderSubtitle:{id:"admin.secure_connections.placeholder.subtitle",defaultMessage:"Connecting with an external workspace allows you to share channels with them"},addConnection:{id:"admin.secure_connections.menu.add_connection",defaultMessage:"Add a connection"},menuAriaLabel:{id:"admin.secure_connections.menu.dropdownAriaLabel",defaultMessage:"Connected workspaces actions menu"},createConnection:{id:"admin.secure_connections.menu.create_connection",defaultMessage:"Create a connection"},acceptInvitation:{id:"admin.secure_connections.menu.accept_invitation",defaultMessage:"Accept an invitation"},serviceNotRunning:{id:"admin.secure_connections.serviceNotRunning",defaultMessage:"Service not running, please restart server."}}),of=Object.values(rf);var lf=s(16666),df=s(67796);const cf=function(){return T().createElement("svg",{width:"106",height:"96",viewBox:"0 0 106 96",fill:"none",xmlns:"http://www.w3.org/2000/svg"},T().createElement("g",{clipPath:"url(#clip0_2795_18729)"},T().createElement("path",{d:"M53.3987 14.3074H96.044C97.3213 14.2983 98.5878 14.5437 99.7708 15.0297C100.954 15.5156 102.03 16.2324 102.938 17.139C103.846 18.0455 104.567 19.124 105.06 20.3125C105.554 21.501 105.81 22.7762 105.814 24.0648V68.6825C105.809 69.9703 105.552 71.2443 105.058 72.4317C104.564 73.6191 103.842 74.6964 102.934 75.6019C102.027 76.5074 100.951 77.2234 99.7686 77.7087C98.5862 78.194 97.3205 78.4391 96.044 78.43H85.7857V95.1851L70.3787 78.43H53.3987C52.1223 78.4391 50.8565 78.194 49.6742 77.7087C48.4918 77.2234 47.4159 76.5074 46.5083 75.6019C45.6007 74.6964 44.8792 73.6191 44.3851 72.4317C43.891 71.2443 43.634 69.9703 43.6289 68.6825V24.0648C43.6327 22.7762 43.8888 21.501 44.3823 20.3125C44.8758 19.124 45.5972 18.0455 46.5049 17.139C47.4126 16.2324 48.4889 15.5156 49.6719 15.0297C50.8549 14.5437 52.1214 14.2983 53.3987 14.3074Z",fill:"#1E325C"}),T().createElement("path",{d:"M79.4755 0.893798H9.91436C8.63706 0.884709 7.37058 1.13017 6.18755 1.61609C5.00453 2.10201 3.92826 2.81882 3.02053 3.72539C2.1128 4.63196 1.39147 5.71046 0.89793 6.89897C0.404391 8.08747 0.148358 9.36258 0.144531 10.6512V55.2295C0.149641 56.5173 0.40662 57.7913 0.900733 58.9787C1.39485 60.1661 2.11639 61.2434 3.02399 62.1489C3.93159 63.0544 5.0074 63.7704 6.18979 64.2557C7.37218 64.741 8.63788 64.9861 9.91436 64.977H20.1825V81.7321L35.5895 64.977H79.4755C80.752 64.9861 82.0177 64.741 83.2001 64.2557C84.3824 63.7704 85.4583 63.0544 86.3659 62.1489C87.2735 61.2434 87.995 60.1661 88.4891 58.9787C88.9833 57.7913 89.2402 56.5173 89.2453 55.2295V10.6512C89.2415 9.36258 88.9855 8.08747 88.4919 6.89897C87.9984 5.71046 87.2771 4.63196 86.3693 3.72539C85.4616 2.81882 84.3853 2.10201 83.2023 1.61609C82.0193 1.13017 80.7528 0.884709 79.4755 0.893798Z",fill:"#FFBC1F"}),T().createElement("path",{d:"M20.9636 26.5684C22.2031 26.5664 23.4152 26.9355 24.4465 27.629C25.4779 28.3224 26.2821 29.309 26.7573 30.4638C27.2325 31.6186 27.3573 32.8897 27.116 34.1161C26.8746 35.3425 26.278 36.4691 25.4016 37.3533C24.5252 38.2374 23.4085 38.8393 22.1928 39.0828C20.977 39.3262 19.717 39.2003 18.5723 38.7209C17.4276 38.2415 16.4497 37.4302 15.7623 36.3898C15.0749 35.3493 14.709 34.1265 14.7109 32.8762C14.7135 31.2041 15.3731 29.6011 16.5452 28.4188C17.7172 27.2364 19.3061 26.571 20.9636 26.5684Z",fill:"white"}),T().createElement("path",{d:"M44.7136 26.5684C45.9531 26.5664 47.1652 26.9355 48.1965 27.629C49.2279 28.3224 50.0321 29.309 50.5073 30.4638C50.9825 31.6186 51.1073 32.8897 50.866 34.1161C50.6247 35.3425 50.028 36.4691 49.1516 37.3533C48.2752 38.2374 47.1585 38.8393 45.9428 39.0828C44.727 39.3262 43.467 39.2003 42.3223 38.7209C41.1776 38.2415 40.1997 37.4302 39.5123 36.3898C38.8249 35.3493 38.459 34.1265 38.4609 32.8762C38.4635 31.2041 39.1231 29.6011 40.2952 28.4188C41.4672 27.2364 43.0561 26.571 44.7136 26.5684Z",fill:"white"}),T().createElement("path",{d:"M68.4636 26.5684C69.703 26.5664 70.9152 26.9355 71.9465 27.629C72.9779 28.3224 73.7821 29.309 74.2573 30.4638C74.7325 31.6186 74.8573 32.8897 74.616 34.1161C74.3747 35.3425 73.778 36.4691 72.9016 37.3533C72.0252 38.2374 70.9085 38.8393 69.6928 39.0828C68.477 39.3262 67.2171 39.2003 66.0724 38.7209C64.9276 38.2415 63.9497 37.4302 63.2623 36.3898C62.5749 35.3493 62.209 34.1265 62.2109 32.8762C62.2135 31.2041 62.8731 29.6011 64.0452 28.4188C65.2172 27.2364 66.8061 26.571 68.4636 26.5684Z",fill:"white"})),T().createElement("defs",null,T().createElement("clipPath",{id:"clip0_2795_18729"},T().createElement("rect",{width:"105.553",height:"94.2128",fill:"white",transform:"translate(0.222656 0.893555)"}))))};var mf=s(46378);const uf=["state"];function pf(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function gf(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?pf(Object(s),!0).forEach((function(t){hf(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):pf(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function hf(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}function ff(e){var t,s;const{formatMessage:i}=(0,N.useIntl)(),{connection_id:n}=(0,w.useParams)(),r="create"===n,o=(0,w.useLocation)(),{state:l}=o,d=function(e,t){if(null==e)return{};var s,a,i=function(e,t){if(null==e)return{};var s={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;s[a]=e[a]}return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)s=n[a],-1===t.indexOf(s)&&{}.propertyIsEnumerable.call(e,s)&&(i[s]=e[s])}return i}(o,uf),c=(0,w.useHistory)(),m=(0,a.useDispatch)(),[u,{applyPatch:p,save:g,currentRemoteCluster:f,hasChanges:E,loading:b,saving:v,patch:y}]=((e,t)=>{const s="create"!==e,[a,i]=(0,A.useState)(t),[n,r]=(0,A.useState)({}),[o,l]=(0,A.useState)(s&&!a),[d,c]=(0,A.useState)(!1),m=Object.keys(n).length>0;return(0,A.useEffect)((()=>{s&&(async()=>{try{const t=await O.mT.getRemoteCluster(e);i(t),l(!1),r({})}catch(e){c(e)}})()}),[e]),[kg(kg({},a),n),{applyPatch:e=>{r((t=>kg(kg({},t),e)))},save:async()=>{if(a&&(0,Og.U)(n)){c(!0);try{const t=await O.mT.patchRemoteCluster(e,n);i(t),c(!1),r({})}catch(e){c(e)}c(!1)}},hasChanges:m,loading:o,saving:d,currentRemoteCluster:a,patch:n}]})(n,l),M=(0,Og.U)(y)&&(!r||Boolean(y.display_name&&y.default_team_id)),{promptCreate:_,saving:S}=(()=>{const e=(0,a.useDispatch)(),[t,s]=(0,A.useState)(!1);return{promptCreate:t=>new Promise(((a,i)=>{e((0,Gr.q)({modalId:mt.IQ.SECURE_CONNECTION_CREATE_INVITE,dialogType:Ch,dialogProps:{creating:!0,onConfirm:async()=>{try{s(!0);const e=await O.mT.createRemoteCluster(Yh(Yh({},t),{},{name:(0,Pi.aM)(t.display_name)}));if(s(!1),e){const{invite:t,password:s,remote_cluster:i}=e;return a(i),{remoteCluster:i,share:{invite:t,password:s}}}}catch(e){i(e)}s(!1)}}}))})),saving:t}})(),C=Dg();return(0,A.useEffect)((()=>{c.replace(gf(gf({},d),{},{state:f}))}),[f]),(0,A.useEffect)((()=>{m((0,h.Jb)(E))}),[E]),T().createElement("div",{className:"wrapper--fixed","data-testid":"connectedOrganizationDetailsSection"},T().createElement(nt,{withBackButton:!0},T().createElement("div",null,T().createElement(tt.A,{to:"/admin_console/site_config/secure_connections",className:"fa fa-angle-left back"}),T().createElement(N.FormattedMessage,{id:"admin.secure_connection_detail.page_title",defaultMessage:"Connection Configuration"}))),T().createElement(Kg,null,T().createElement(zg,{"data-testid":"connection_detail_section"},T().createElement(Gg,null,T().createElement("hgroup",null,T().createElement(N.FormattedMessage,{tagName:jg,id:"admin.secure_connections.details.title",defaultMessage:"Connection Details"}),T().createElement(N.FormattedMessage,{id:"admin.secure_connections.details.subtitle",defaultMessage:"Connection name and other permissions"})),f&&T().createElement(oh,{rc:f})),T().createElement(qg,{$compact:!0},Ug(b)?T().createElement(Na.A,null):T().createElement(T().Fragment,null,T().createElement(eh,{label:i({id:"admin.secure_connections.details.org_name.label",defaultMessage:"Organization Name"}),helpText:i({id:"admin.secure_connections.details.org_name.help",defaultMessage:"Giving the connection a recognizable name will help you remember its purpose."})},T().createElement($g,{type:"text","data-testid":"organization-name-input",value:null!==(t=null==u?void 0:u.display_name)&&void 0!==t?t:"",onChange:e=>{let{currentTarget:{value:t}}=e;p({display_name:t})},autoFocus:r})),T().createElement(eh,{label:i({id:"admin.secure_connections.details.team.label",defaultMessage:"Destination Team"}),helpText:i({id:"admin.secure_connections.details.team.help",defaultMessage:"Select the default team in which any shared channels will be placed. This can be updated later for specific shared channels."})},T().createElement(hh,{testId:"destination-team-input",value:null!==(s=u.default_team_id)&&void 0!==s?s:"",teamsById:C,onChange:e=>{p({default_team_id:e})}}))))),!r&&T().createElement(zg,{"data-testid":"shared_channels_section"},T().createElement(Ef,{remoteId:n,rc:f}))),T().createElement(it,{saving:Ug(r?S:v),cancelLink:"/admin_console/site_config/secure_connections",saveNeeded:E&&M,onClick:r?async()=>{if(!M)return;const e=await _(y);e&&c.replace(Lg(e))}:g,serverError:Bg(v)||Bg(S)?T().createElement(N.FormattedMessage,{id:"admin.secure_connections.details.saving_changes_error",defaultMessage:"There was an error while saving secure connection"}):void 0,savingMessage:i({id:"admin.secure_connections.details.saving_changes",defaultMessage:"Saving secure connection…"}),isDisabled:e.disabled}))}function Ef(e){var t;const[s,i]=(0,A.useState)(),[n,{loading:r,fetch:o}]=((e,t)=>{const[s,i]=(0,A.useState)(),[n,r]=(0,A.useState)(!0),o=(0,a.useDispatch)(),l=Ug(n),d=!l&&n,c=(0,A.useCallback)((async()=>{void 0!==t.filter&&(r(!0),o((async(s,a)=>{const n={},o=[];try{const c=await O.mT.getSharedChannelRemotes(e,{include_unconfirmed:!0,exclude_remote:"home"===t.filter,exclude_home:"remote"===t.filter});let m=a(),u=async e=>{const t=await O.mT.getAllTeamsChannels();return s({type:Qu.rb.RECEIVED_ALL_CHANNELS,data:t}),m=a(),u=void 0,(0,Hi.c)(m,e.channel_id)};for(const e of c){var l,d;const t=null!==(l=(0,Hi.c)(m,e.channel_id))&&void 0!==l?l:await(null===(d=u)||void 0===d?void 0:d(e));if(!t){null==o||o.push(e);continue}const s=(0,p.Uo)(m,t.team_id);n[e.id]=xg(e,t,s)}if(o.length){await Promise.allSettled(o.map((e=>s((0,ji.c)(e.channel_id))))),m=a();for(const e of o){const t=(0,Hi.c)(m,e.channel_id);if(!t)continue;const s=(0,p.Uo)(m,t.team_id);n[e.id]=xg(e,t,s)}}const g=Object.values(n);i(g.length?g:void 0),r(!1)}catch(e){return r(e),{error:e}}return{data:n}})))}),[e,t.filter]);return(0,A.useEffect)((()=>{c()}),[e,t.filter]),[s,{loading:l,error:d,fetch:c}]})(e.remoteId,{filter:s}),{promptAdd:l}=(e=>{const t=(0,a.useDispatch)();return{promptAdd:()=>new Promise((s=>{t((0,Gr.q)({modalId:mt.IQ.SHARED_CHANNEL_REMOTE_INVITE,dialogType:jh,dialogProps:{remoteId:e,onConfirm:async t=>{const a={data:{},errors:{}},{data:i,errors:n}=a,r=t.map((t=>{let{id:s}=t;return O.mT.sharedChannelRemoteInvite(e,s)}));return(await Promise.allSettled(r)).forEach(((e,s)=>{"rejected"===e.status&&e.reason.server_error_id?n[t[s].id]=e.reason:"fulfilled"===e.status&&(i[t[s].id]=e)})),s(a),a}}}))}))}})(e.remoteId),d=e.rc?Fg(e.rc):void 0,c=!!d||!(!1===d&&"home"===s&&!n);(0,A.useEffect)((()=>{d?i("remote"):!1===d&&i("home")}),[d]);const m=(0,A.useCallback)((e=>{i(e)}),[]);let u;return u=r||!e.rc?T().createElement(Na.A,null):n?T().createElement(Af,{data:n,filter:null!=s?s:"home",fetch:o}):T().createElement(bf,{filter:null!=s?s:"home",rc:e.rc}),T().createElement(T().Fragment,null,T().createElement(Gg,{$borderless:!0},T().createElement("hgroup",null,T().createElement(N.FormattedMessage,{tagName:jg,id:"admin.secure_connections.details.shared_channels.title",defaultMessage:"Shared Channels"}),T().createElement(N.FormattedMessage,{id:"admin.secure_connections.details.shared_channels.subtitle",defaultMessage:"A list of all the channels shared with your organization and channels you're sharing externally."})),T().createElement(vf,{onClick:async()=>{await l(),setTimeout((()=>{"remote"===s?i("home"):o()}),500)}},T().createElement(R.PlusIcon,{size:18}),T().createElement(N.FormattedMessage,{id:"admin.secure_connections.details.shared_channels.add_channels.button",defaultMessage:"Add channels"}))),T().createElement(yf,null,c&&T().createElement(hn.Tabs,{id:"shared-channels",className:"tabs",defaultActiveKey:"remote",activeKey:s,onSelect:m,unmountOnExit:!0},T().createElement(hn.Tab,{eventKey:"remote",title:null===(t=e.rc)||void 0===t?void 0:t.display_name}),T().createElement(hn.Tab,{eventKey:"home",title:T().createElement(N.FormattedMessage,{id:"admin.secure_connections.details.shared_channels.tabs.home",defaultMessage:"Your channels"})})),T().createElement(qg,{$compact:Boolean(n)},u)))}ff.propTypes={disabled:k().bool.isRequired};const bf=e=>T().createElement(Jg,null,T().createElement(cf,null),T().createElement("hgroup",null,"home"===e.filter?T().createElement(T().Fragment,null,T().createElement(N.FormattedMessage,{tagName:Wg,id:"admin.secure_connection_detail.shared_channels.placeholder.title_home",defaultMessage:"You haven't shared any channels"}),T().createElement(N.FormattedMessage,{tagName:Yg,id:"admin.secure_connection_detail.shared_channels.placeholder.subtitle",defaultMessage:"Please add channels to start sharing"})):T().createElement(N.FormattedMessage,{tagName:Wg,id:"admin.secure_connection_detail.shared_channels.placeholder.title_remote",defaultMessage:"{remote} hasn't shared any channels",values:{remote:e.rc.display_name}}))),vf=x().button.attrs({className:"btn btn-primary"}).withConfig({displayName:"AddChannelsButton"})(["padding-left:15px;"]),yf=x().div.withConfig({displayName:"TabsWrapper"})([".tabs{display:flex;width:100%;flex-direction:column;.nav-tabs{border-bottom:1px solid var(--center-channel-color-12,rgba(63,67,80,0.12));}}.nav-tabs{padding:0 32px;margin:0 0 8px;li{margin-right:0;a{padding:13px 12px;border:none;background:transparent;color:rgba(var(--center-channel-color-rgb),0.75);font-size:14px;font-weight:600;line-height:20px;transition:all 0.15s ease;&:hover,&:active,&:focus,&:focus-within{border:none;border-radius:none;background:transparent;color:var(--center-channel-color);}}&.active{border-bottom:2px solid var(--button-bg);a{color:var(--button-bg);}}&:not(:first-child){margin-left:8px;}}}"]),Mf=e=>{let{channelId:t}=e;const s=(0,a.useSelector)((e=>(0,Hi.c)(e,t)));let i=T().createElement(R.GlobeIcon,{size:16});return(null==s?void 0:s.type)===mt.Ay.PRIVATE_CHANNEL&&(i=T().createElement(R.LockIcon,{size:16})),(0,Wi.Oj)(s)&&(i=T().createElement(R.ArchiveOutlineIcon,{size:16})),T().createElement(_f,null,i)},_f=x().span.withConfig({displayName:"ChannelIconWrapper"})(["vertical-align:middle;margin-right:5px;"]),Sf=x().span.withConfig({displayName:"ChannelName"})(["font-size:14px;font-weight:600;line-height:20px;"]),Cf=x().span.withConfig({displayName:"TeamName"})(["font-size:14px;font-weight:400;line-height:20px;color:rgba(var(--center-channel-color-rgb),0.72);"]);function Af(e){const t=(0,lf.FB)(),s=(0,A.useMemo)((()=>[t.accessor("display_name",{header:()=>T().createElement(N.FormattedMessage,{id:"admin.secure_connection_detail.shared_channels.table.name",defaultMessage:"Name"}),cell:e=>{let{row:t,getValue:s}=e;return T().createElement(T().Fragment,null,T().createElement(Mf,{channelId:t.original.channel_id}),T().createElement(Sf,null,s()))},enableHiding:!1,enableSorting:!0}),t.accessor("team_display_name",{header:()=>"home"===e.filter?T().createElement(N.FormattedMessage,{id:"admin.secure_connection_detail.shared_channels.table.team_home",defaultMessage:"Current Team"}):T().createElement(N.FormattedMessage,{id:"admin.secure_connection_detail.shared_channels.table.team_remote",defaultMessage:"Destination Team"}),cell:e=>{let{getValue:t}=e;return T().createElement(Cf,null,t())},enableHiding:!1,enableSorting:!0}),t.display({id:"actions",cell:t=>{let{row:s}=t;return T().createElement(Nf,{remote:s.original,fetch:e.fetch})},enableHiding:!1,enableSorting:!1})]),[e.data,e.filter,e.fetch]),a=(0,df.N4)({data:e.data,columns:s,initialState:{sorting:[{id:"display_name",desc:!1}]},getCoreRowModel:(0,lf.HT)(),getSortedRowModel:(0,lf.h5)(),enableSortingRemoval:!1,enableMultiSort:!1,renderFallbackValue:"",meta:{tableId:"sharedChannelRemotes",disablePaginationControls:!0},manualPagination:!0});return T().createElement(Tf,null,T().createElement(mf.z4,{table:a}))}const Tf=x().div.withConfig({displayName:"TableWrapper"})(["table.adminConsoleListTable.sharedChannelRemotes{td,th{&:after,&:before{display:none;}}thead{border-top:none;border-bottom:1px solid rgba(var(--center-channel-color-rgb),0.16);}tbody{tr{border-top:none;td{padding-block-end:8px;padding-block-start:8px;}}}tfoot{border-top:none;}}.adminConsoleListTableContainer{padding:2px 0px;}"]),Nf=e=>{let{remote:t,fetch:s}=e;const{promptRemove:i}=(e=>{const t=(0,a.useDispatch)();return{promptRemove:s=>new Promise(((a,i)=>{t((0,Gr.q)({modalId:mt.IQ.SHARED_CHANNEL_REMOTE_UNINVITE,dialogType:zh,dialogProps:{onConfirm:()=>O.mT.sharedChannelRemoteUninvite(e,s).then(a,i)}}))}))}})(t.remote_id);return T().createElement(wf,null,T().createElement(rh,{onClick:()=>{i(t.channel_id).then(s)},$destructive:!0},T().createElement(N.FormattedMessage,{id:"admin.secure_connection_detail.shared_channels.table.remote_actions.remove",defaultMessage:"Remove"})))},wf=x().div.withConfig({displayName:"RemoteActionsRoot"})(["text-align:right;"]);function Rf(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Of extends T().PureComponent{constructor(e){super(e),Rf(this,"renderContents",(()=>{const{log:e}=this.props;return null==e?T().createElement("div",null):T().createElement("div",null,T().createElement("pre",null,JSON.stringify(this.props.log,void 0,2)))})),Rf(this,"copyLog",(()=>{navigator.clipboard.writeText(JSON.stringify(this.props.log,void 0,2)),this.showCopySuccess()})),Rf(this,"showCopySuccess",(()=>{this.setState({copySuccess:!0}),setTimeout((()=>{this.setState({copySuccess:!1})}),3e3)})),this.state={copySuccess:!1}}render(){return T().createElement(hn.Modal,{show:this.props.show,onHide:this.props.onModalDismissed,dialogClassName:"a11y__modal full-log-event",role:"none","aria-labelledby":"fullLogEventModalLabel"},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,{componentClass:"h1",id:"fullLogEventModalLabel"},T().createElement(N.FormattedMessage,{id:"admin.server_logs.LogEvent",defaultMessage:"Log Event"})),this.state.copySuccess?T().createElement(N.FormattedMessage,{id:"admin.server_logs.DataCopied",defaultMessage:"Data copied"}):T().createElement(hn.Button,{onClick:this.copyLog},T().createElement(N.FormattedMessage,{id:"admin.server_logs.CopyLog",defaultMessage:"Copy log"}))),T().createElement(hn.Modal.Body,null,this.renderContents()),T().createElement(hn.Modal.Footer,null,T().createElement("button",{type:"button",className:"btn btn-tertiary",onClick:this.props.onModalDismissed},T().createElement(N.FormattedMessage,{id:"admin.manage_roles.cancel",defaultMessage:"Cancel"}))))}}Rf(Of,"propTypes",{onModalDismissed:k().func.isRequired,show:k().bool.isRequired});const If=Of;function kf(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Pf extends T().PureComponent{constructor(e){super(e),kf(this,"isSearching",((e,t)=>e.length>0||Object.keys(t).length>0)),kf(this,"onSearch",(e=>{this.props.onSearchChange(e)})),kf(this,"nextPage",(()=>{const e=this.state.page+1;this.setState({page:e})})),kf(this,"previousPage",(()=>{const e=this.state.page-1;this.setState({page:e})})),kf(this,"getPaginationProps",(()=>{var e,t;const{page:s}=this.state,a=50*s+1,i=null!==(e=null===(t=this.props.logs)||void 0===t?void 0:t.length)&&void 0!==e?e:0;let n=0;return n=50*(s+1),n=n>i?i:n,{startCount:a,endCount:n,total:i}})),kf(this,"handleDateSort",(()=>{this.setState({dateAsc:!this.state.dateAsc}),this.getColumns(this.state.dateAsc)})),kf(this,"getColumns",(e=>[{field:"timestamp",fixed:!0,name:T().createElement("div",{className:"timestamp",onClick:this.handleDateSort},T().createElement(N.FormattedMessage,{id:"admin.compliance_table.timestamp",defaultMessage:"Timestamp"}),e?T().createElement(R.ArrowUpIcon,{size:18}):T().createElement(R.ArrowDownIcon,{size:18})),textAlign:"left",width:1.5},{field:"level",fixed:!0,name:T().createElement(N.FormattedMessage,{id:"admin.log.Level",defaultMessage:"Level"}),textAlign:"left",width:.5},{field:"msg",fixed:!0,name:T().createElement(N.FormattedMessage,{id:"user.settings.notifications.autoResponderPlaceholder",defaultMessage:"Message"}),textAlign:"left",width:2.5},{field:"caller",fixed:!0,name:T().createElement(N.FormattedMessage,{id:"admin.logs.caller",defaultMessage:"Caller"}),textAlign:"left",width:1.5},{field:"options",fixed:!0,name:T().createElement(N.FormattedMessage,{id:"admin.logs.options",defaultMessage:"Options"}),textAlign:"left",width:1}])),kf(this,"getRows",(()=>{const{startCount:e,endCount:t}=this.getPaginationProps();return this.props.logs.sort(((e,t)=>{const s=new Date(e.timestamp).valueOf(),a=new Date(t.timestamp).valueOf();return this.state.dateAsc?s-a:a-s})).slice(e-1,t).map((e=>({cells:{timestamp:T().createElement("span",{className:"group-name overflow--ellipsis row-content","data-testid":"timestamp"},T().createElement("span",{className:"group-description row-content"},e.timestamp)),level:T().createElement("span",{className:"group-description adjusted row-content"},e.level),msg:T().createElement("span",{className:"group-description row-content",title:e.msg},e.msg),caller:T().createElement("span",{className:"group-description row-content"},e.caller),options:T().createElement("button",{type:"submit",className:"btn btn-secondary btn-sm"},T().createElement(N.FormattedMessage,{id:"admin.logs.fullEvent",defaultMessage:"Full Log event"}))},onClick:()=>this.showFullLogEvent(e)})))})),kf(this,"showFullLogEvent",(e=>{this.setState({modalLog:e,modalOpen:!0})})),kf(this,"hideModal",(()=>{this.setState({modalLog:null,modalOpen:!1})})),kf(this,"onFilter",(e=>{const t={},s=e.levels.values;s.all.value?t.logLevels=[]:t.logLevels=Object.keys(s).reduce(((e,t)=>(s[t].value&&e.push(t),e)),[]),this.props.onFiltersChange(t)})),kf(this,"showErrors",(()=>{this.props.onFiltersChange({logLevels:["error"]})})),kf(this,"getErrorCount",(()=>{let e=0;return this.props.logs.map((t=>"error"===t.level&&++e)),e})),kf(this,"render",(()=>{const{search:e}=this.props,t=this.getRows(),s=this.getColumns(this.state.dateAsc),{startCount:a,endCount:i,total:n}=this.getPaginationProps(),r=T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_list.no_logs_found",defaultMessage:"No logs found"}),o={minHeight:"".concat(40*t.length,"px")},l=T().createElement("button",{className:"btn btn-tertiary btn-sm ml-2",onClick:this.showErrors},T().createElement(N.FormattedMessage,{id:"admin.logs.showErrors",defaultMessage:"Show last {n} errors",values:{n:this.getErrorCount()}})),d={options:{levels:{name:"Levels",values:{all:{name:T().createElement(N.FormattedMessage,{id:"admin.logs.Alllevels",defaultMessage:"All levels"}),value:!0},error:{name:T().createElement(N.FormattedMessage,{id:"admin.logs.Error",defaultMessage:"Error"}),value:!1},warn:{name:T().createElement(N.FormattedMessage,{id:"admin.logs.Warn",defaultMessage:"Warn"}),value:!1},info:{name:T().createElement(N.FormattedMessage,{id:"admin.logs.Info",defaultMessage:"Info"}),value:!1},debug:{name:T().createElement(N.FormattedMessage,{id:"admin.logs.Debug",defaultMessage:"Debug"}),value:!1}},keys:["all","error","info","debug"]}},keys:["levels"],onFilter:this.onFilter};return T().createElement("div",{className:"LogTable"},T().createElement(xe,{columns:s,rows:t,loading:this.props.loading,startCount:a,endCount:i,total:n,onSearch:this.onSearch,term:e,placeholderEmpty:r,rowsContainerStyles:o,page:this.state.page,nextPage:this.nextPage,previousPage:this.previousPage,filterProps:d,extraComponent:l}),T().createElement(If,{log:this.state.modalLog,show:this.state.modalOpen,onModalDismissed:this.hideModal}))})),this.state={modalLog:null,modalOpen:!1,page:0,dateAsc:!0}}}function xf(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}kf(Pf,"propTypes",{loading:k().bool.isRequired,logs:k().array.isRequired,onFiltersChange:k().func.isRequired,onSearchChange:k().func.isRequired,search:k().string.isRequired});class Df extends T().PureComponent{constructor(e){super(e),xf(this,"nextPage",(e=>{e.preventDefault(),this.setState({nextDisabled:!0}),setTimeout((()=>this.setState({nextDisabled:!1})),500),this.props.nextPage()})),xf(this,"previousPage",(e=>{e.preventDefault(),this.props.previousPage()})),this.logPanel=T().createRef(),this.state={nextDisabled:!1}}componentDidMount(){const e=this.logPanel.current;e&&(e.scrollTop=e.scrollHeight)}componentDidUpdate(){const e=this.logPanel.current;e&&(e.scrollTop=e.scrollHeight)}render(){if(this.props.loading)return T().createElement("div",{className:"log__panel"},T().createElement(ce.A,null));let e,t,s=null;this.props.logs.length>=this.props.perPage&&(e=T().createElement("button",{type:"button",className:"btn btn-tertiary filter-control filter-control__next pull-right",onClick:this.nextPage,disabled:this.state.nextDisabled},T().createElement(N.FormattedMessage,{id:"admin.logs.next",defaultMessage:"Next"}),T().createElement(le.A,{additionalClassName:"ml-2"}))),this.props.page>0&&(t=T().createElement("button",{type:"button",className:"btn btn-tertiary filter-control filter-control__prev",onClick:this.previousPage},T().createElement("i",{className:"fa fa-angle-left",title:this.props.intl.formatMessage({id:"generic_icons.previous",defaultMessage:"Previous Icon"})}),T().createElement(N.FormattedMessage,{id:"admin.logs.prev",defaultMessage:"Previous"}))),s=[];for(let e=0;e<this.props.logs.length;e++){const t={whiteSpace:"nowrap",fontFamily:"monospace",color:""};this.props.logs[e].indexOf("[EROR]")>0&&(t.color="red"),s.push(T().createElement("br",{key:"br_"+e})),s.push(T().createElement("span",{key:"log_"+e,style:t},this.props.logs[e]))}return T().createElement("div",null,T().createElement("div",{tabIndex:-1,ref:this.logPanel,className:"log__panel"},s),T().createElement("div",{className:"pt-3 pb-3 filter-controls"},t,e))}}xf(Df,"propTypes",{loading:k().bool.isRequired,logs:k().arrayOf(k().string).isRequired,page:k().number.isRequired,perPage:k().number.isRequired,nextPage:k().func.isRequired,previousPage:k().func.isRequired});const Lf=(0,N.injectIntl)(Df);function Ff(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Uf=(0,N.defineMessages)({title:{id:"admin.logs.title",defaultMessage:"Server Logs"},bannerDesc:{id:"admin.logs.bannerDesc",defaultMessage:"To look up users by User ID or Token ID, go to User Management > Users and paste the ID into the search filter."},logFormatTitle:{id:"admin.logs.logFormatTitle",defaultMessage:"Log Format:"},logFormatJson:{id:"admin.logs.logFormatJson",defaultMessage:"JSON"},logFormatPlain:{id:"admin.logs.logFormatPlain",defaultMessage:"Plain text"}}),Bf=[Uf.title,Uf.bannerDesc];class jf extends T().PureComponent{constructor(e){super(e),Ff(this,"nextPage",(()=>{this.setState({page:this.state.page+1})})),Ff(this,"previousPage",(()=>{this.setState({page:this.state.page-1})})),Ff(this,"reload",(async()=>{this.setState({loading:!0}),this.state.isPlainLogs?await this.props.actions.getPlainLogs(this.state.page,this.state.perPage):await this.props.actions.getLogs({serverNames:this.state.serverNames,logLevels:this.state.logLevels,dateFrom:this.state.dateFrom,dateTo:this.state.dateTo}),this.setState({loading:!1})})),Ff(this,"onLogFormatToggle",(e=>{this.setState({isPlainLogs:"plain"===e.target.value})})),Ff(this,"onSearchChange",(e=>{this.setState({search:e},(()=>this.performSearch()))})),Ff(this,"performSearch",wn()((()=>{const{search:e}=this.state,t=new Set(["level","timestamp"]),s=this.props.logs.filter((s=>Object.entries(s).some((s=>{let[a,i]=s;return!t.has(a)&&String(i).toLowerCase().includes(e.toLowerCase())}))));this.setState({filteredLogs:s})}),200)),Ff(this,"onFiltersChange",(e=>{let{dateFrom:t,dateTo:s,logLevels:a,serverNames:i}=e;this.setState({dateFrom:t,dateTo:s,logLevels:a,serverNames:i},(()=>this.reload()))})),this.state={dateFrom:"",dateTo:"",filteredLogs:[],loading:!0,logLevels:[],search:"",serverNames:[],page:0,perPage:1e3,isPlainLogs:e.isPlainLogs}}componentDidMount(){this.reload()}componentDidUpdate(e,t){var s;!this.state.isPlainLogs||this.state.page===t.page&&null!==(s=this.props.plainLogs)&&void 0!==s&&s.length||this.reload()}componentWillUnmount(){this.performSearch.cancel()}render(){const e=this.state.isPlainLogs?T().createElement(Lf,{loading:this.state.loading,logs:this.props.plainLogs,nextPage:this.nextPage,previousPage:this.previousPage,page:this.state.page,perPage:this.state.perPage}):T().createElement(Pf,{loading:this.state.loading,logs:this.state.search?this.state.filteredLogs:this.props.logs,onSearchChange:this.onSearchChange,search:this.state.search,onFiltersChange:this.onFiltersChange,filters:{dateFrom:this.state.dateFrom,dateTo:this.state.dateTo,logLevels:this.state.logLevels,serverNames:this.state.serverNames}});let t;return this.props.isPlainLogs||(t=T().createElement("div",{className:"banner-buttons__log-format",id:"admin.logs.LogFormat",role:"radiogroup","aria-labelledby":"admin.logs.LogFormat.legend"},T().createElement("span",{id:"admin.logs.LogFormat.legend"},T().createElement(N.FormattedMessage,Uf.logFormatTitle)),T().createElement("label",null,T().createElement("input",{type:"radio",id:"admin.logs.LogFormat.json",name:"log-format",value:"json",checked:!this.state.isPlainLogs,onChange:this.onLogFormatToggle}),T().createElement(N.FormattedMessage,Uf.logFormatJson)),T().createElement("label",null,T().createElement("input",{type:"radio",id:"admin.logs.LogFormat.plain",name:"log-format",value:"plain",checked:this.state.isPlainLogs,onChange:this.onLogFormatToggle}),T().createElement(N.FormattedMessage,Uf.logFormatPlain)))),T().createElement("div",{className:"wrapper--admin"},T().createElement(nt,null,T().createElement(N.FormattedMessage,Uf.title)),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-logs-content admin-console__content"},T().createElement("div",{className:"logs-banner"},T().createElement("div",{className:"banner"},T().createElement("div",{className:"banner__content"},T().createElement(N.FormattedMessage,Uf.bannerDesc))),T().createElement("div",{className:"banner-buttons"},t,T().createElement("button",{type:"submit",className:"btn btn-primary",onClick:this.reload},T().createElement(N.FormattedMessage,{id:"admin.logs.ReloadLogs",defaultMessage:"Reload Logs"})),T().createElement(wt.A,{location:"download_logs",className:"btn btn-primary",href:O.mT.getUrl()+"/api/v4/logs/download"},T().createElement(N.FormattedMessage,{id:"admin.logs.DownloadLogs",defaultMessage:"Download Logs"})))),e)))}}Ff(jf,"propTypes",{logs:k().array.isRequired,plainLogs:k().arrayOf(k().string).isRequired,isPlainLogs:k().bool.isRequired,actions:k().shape({getLogs:k().func.isRequired,getPlainLogs:k().func.isRequired}).isRequired});const Hf=(0,a.connect)((function(e){var t;const s=d.zj(e);return{logs:d.jp(e),plainLogs:d.O5(e),isPlainLogs:!1===(null===(t=s.LogSettings)||void 0===t?void 0:t.FileJson)}}),(function(e){return{actions:(0,i.zH)({getLogs:n.ao,getPlainLogs:n.O5},e)}}))(jf);function Gf(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const qf=(0,N.defineMessages)({title:{id:"admin.sessionLengths.title",defaultMessage:"Session Lengths"},webSessionHoursDesc_extendLength:{id:"admin.service.webSessionHoursDesc.extendLength",defaultMessage:"Set the number of hours from the last activity in Mattermost to the expiry of the user's session when using email and AD/LDAP authentication. After changing this setting, the new session length will take effect after the next time the user enters their credentials."},mobileSessionHoursDesc_extendLength:{id:"admin.service.mobileSessionHoursDesc.extendLength",defaultMessage:"Set the number of hours from the last activity in Mattermost to the expiry of the user's session on mobile. After changing this setting, the new session length will take effect after the next time the user enters their credentials."},ssoSessionHoursDesc_extendLength:{id:"admin.service.ssoSessionHoursDesc.extendLength",defaultMessage:"Set the number of hours from the last activity in Mattermost to the expiry of the user's session for SSO authentication, such as SAML, GitLab and OAuth 2.0. If the authentication method is SAML or GitLab, the user may automatically be logged back in to Mattermost if they are already logged in to SAML or GitLab. After changing this setting, the setting will take effect after the next time the user enters their credentials."},webSessionHoursDesc:{id:"admin.service.webSessionHoursDesc",defaultMessage:"The number of hours from the last time a user entered their credentials to the expiry of the user's session. After changing this setting, the new session length will take effect after the next time the user enters their credentials."},mobileSessionHoursDesc:{id:"admin.service.mobileSessionHoursDesc",defaultMessage:"The number of hours from the last time a user entered their credentials to the expiry of the user's session. After changing this setting, the new session length will take effect after the next time the user enters their credentials."},ssoSessionHoursDesc:{id:"admin.service.ssoSessionHoursDesc",defaultMessage:"The number of hours from the last time a user entered their credentials to the expiry of the user's session. If the authentication method is SAML or GitLab, the user may automatically be logged back in to Mattermost if they are already logged in to SAML or GitLab. After changing this setting, the setting will take effect after the next time the user enters their credentials."},sessionIdleTimeout:{id:"admin.service.sessionIdleTimeout",defaultMessage:"Session Idle Timeout (minutes):"},extendSessionLengthActivity_label:{id:"admin.service.extendSessionLengthActivity.label",defaultMessage:"Extend session length with activity: "},extendSessionLengthActivity_helpText:{id:"admin.service.extendSessionLengthActivity.helpText",defaultMessage:"When true, sessions will be automatically extended when the user is active in their Mattermost client. Users sessions will only expire if they are not active in their Mattermost client for the entire duration of the session lengths defined in the fields below. When false, sessions will not extend with activity in Mattermost. User sessions will immediately expire at the end of the session length or idle timeouts defined below. "},terminateSessionsOnPasswordChange_label:{id:"admin.service.terminateSessionsOnPasswordChange.label",defaultMessage:"Terminate Sessions on Password Change: "},terminateSessionsOnPasswordChange_helpText:{id:"admin.service.terminateSessionsOnPasswordChange.helpText",defaultMessage:"When true, all sessions of a user will expire if their password is changed by themselves or an administrator."},webSessionHours:{id:"admin.service.webSessionHours",defaultMessage:"Session Length AD/LDAP and Email (hours):"},mobileSessionHours:{id:"admin.service.mobileSessionHours",defaultMessage:"Session Length Mobile (hours):"},ssoSessionHours:{id:"admin.service.ssoSessionHours",defaultMessage:"Session Length SSO (hours):"},sessionCache:{id:"admin.service.sessionCache",defaultMessage:"Session Cache (minutes):"},sessionCacheDesc:{id:"admin.service.sessionCacheDesc",defaultMessage:"The number of minutes to cache a session in memory:"},sessionHoursEx:{id:"admin.service.sessionHoursEx",defaultMessage:'E.g.: "720"'},sessionIdleTimeoutDesc:{id:"admin.service.sessionIdleTimeoutDesc",defaultMessage:"The number of minutes from the last time a user was active on the system to the expiry of the user's session. Once expired, the user will need to log in to continue. Minimum is 5 minutes, and 0 is unlimited. Applies to the desktop app and browsers. For mobile apps, use an EMM provider to lock the app when not in use. In High Availability mode, enable IP hash load balancing for reliable timeout measurement."}}),Vf=[qf.title,qf.webSessionHoursDesc_extendLength,qf.mobileSessionHoursDesc_extendLength,qf.ssoSessionHoursDesc_extendLength,qf.webSessionHoursDesc,qf.mobileSessionHoursDesc,qf.ssoSessionHoursDesc,qf.sessionIdleTimeout,qf.extendSessionLengthActivity_label,qf.extendSessionLengthActivity_helpText,qf.webSessionHours,qf.mobileSessionHours,qf.ssoSessionHours,qf.sessionCache,qf.sessionCacheDesc,qf.sessionHoursEx,qf.sessionIdleTimeoutDesc];var zf=s(9235),Wf=s(69412);const Yf=e=>{let{initialValue:t,fieldType:s,onExited:a,onSave:i,error:n,helpText:r,modalHeaderText:o}=e;const[l,d]=(0,A.useState)(t),c=()=>i(l),m="text"!==s;return T().createElement(Bi.zW,{id:"attributeModal",modalHeaderText:o,confirmButtonText:T().createElement(N.FormattedMessage,{id:"save",defaultMessage:"Save"}),compassDesign:!0,onExited:a,handleEnterKeyPress:c,handleConfirm:c,handleCancel:()=>a(),isConfirmDisabled:l.length>64},T().createElement(zi.A,{size:"lg",inputComponent:zi.P,autoFocus:!0,className:"form-control filter-textbox",placeholder:"department",type:"text",value:l,clearable:!0,onClear:()=>d(""),onChange:e=>d(e.target.value)}),T().createElement("span",{className:"help-text"},r),m&&T().createElement("div",{className:"alert alert-warning",style:{marginTop:"12px"}},T().createElement(N.FormattedMessage,{id:"admin.customProfileAttribWarning",defaultMessage:"(Warning) This attribute will be converted to a TEXT attribute, if the field is set to synchronize."})),n&&T().createElement("div",{className:"error-text"},n))};Yf.propTypes={initialValue:k().string.isRequired,fieldType:k().string.isRequired,onExited:k().func.isRequired,onSave:k().func.isRequired,error:k().oneOfType([k().string,k().oneOf([null])]),helpText:k().node.isRequired,modalHeaderText:k().element.isRequired};const Zf=Yf,Jf=()=>{};function Kf(e){let{name:t,onExited:s,onCancel:a,onConfirm:i}=e;const{formatMessage:n}=(0,N.useIntl)(),r=n({id:"admin.system_properties.confirm.delete.title",defaultMessage:"Delete {name} attribute"},{name:t}),o=n({id:"admin.system_properties.confirm.delete.button",defaultMessage:"Delete"}),l=T().createElement(N.FormattedMessage,{id:"admin.system_properties.confirm.delete.text",defaultMessage:"Deleting this attribute will remove all user-defined values associated with it."});return T().createElement(Bi.zW,{confirmButtonText:o,handleCancel:null!=a?a:Jf,handleConfirm:i,modalHeaderText:r,onExited:s,compassDesign:!0,isDeleteModal:!0},l)}Kf.propTypes={name:k().string.isRequired,onConfirm:k().func.isRequired,onCancel:k().func,onExited:k().func.isRequired};var Qf=s(38750),Xf=s.n(Qf),$f=s(24380);function eE(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function tE(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?eE(Object(s),!0).forEach((function(t){sE(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):eE(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function sE(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class aE extends Error{}const iE=e=>({loading:!0===e,error:e instanceof Error?e:void 0});function nE(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const[s,a]=(e=>{const[t,s]=(0,A.useState)(e);return[iE(t),s]})(t),i=(0,A.useCallback)((async function(){a(!0);try{const t=await e(...arguments);return a(!1),t}catch(e){return void a(e)}}),[e]);return[i,s,a]}function rE(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function oE(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?rE(Object(s),!0).forEach((function(t){lE(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):rE(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function lE(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const dE="user_properties.validation.name_required",cE="user_properties.validation.name_unique",mE="user_properties.validation.name_taken",uE="user_properties.validation.options_required",pE=(e,t)=>{const s=new Set(Object.values(t.data).map((e=>{let{name:t}=e;return t})));let a=e,i=1;for(;s.has(a);)i++,a="".concat(e," ").concat(i);return a},gE=e=>0===e.create_at&&0===e.delete_at,hE=e=>0!==e.create_at&&0!==e.delete_at,fE=e=>{const t=oE({},e.attrs);var s,a;return t.options&&(t.options=null===(s=e.attrs)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.map((e=>oE(oE({},e),{},{id:""})))),Reflect.deleteProperty(t,"ldap"),Reflect.deleteProperty(t,"saml"),oE(oE({type:"text"},e),{},{group_id:"custom_profile_attributes",id:"".concat("pending_").concat((0,D.$C)()),create_at:0,delete_at:0,update_at:0,attrs:oE({visibility:"when_set",sort_order:0,value_type:""},t)})};function EE(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function bE(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?EE(Object(s),!0).forEach((function(t){vE(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):EE(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function vE(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const yE=(e,t)=>{const s=(0,a.useDispatch)();return{promptEditLdapLink:()=>{s((0,Gr.q)({modalId:mt.IQ.ATTRIBUTE_MODAL_LDAP,dialogType:Zf,dialogProps:{initialValue:e.attrs.ldap||"",fieldType:e.type,onExited:()=>{},onSave:async s=>{t(bE(bE({},e),{},{type:"text",attrs:bE(bE({},e.attrs),{},{ldap:s})}))},error:null,helpText:T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.ad_ldap.modal.helpText",defaultMessage:"The attribute in the AD/LDAP server used to sync as a custom attribute in user's profile in Mattermost."}),modalHeaderText:T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.ad_ldap.link_property.label",defaultMessage:"Link attribute to AD/LDAP"})}}))},promptEditSamlLink:()=>{s((0,Gr.q)({modalId:mt.IQ.ATTRIBUTE_MODAL_SAML,dialogType:Zf,dialogProps:{initialValue:e.attrs.saml||"",fieldType:e.type,onExited:()=>{},onSave:async s=>{t(bE(bE({},e),{},{type:"text",attrs:bE(bE({},e.attrs),{},{saml:s})}))},error:null,helpText:T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.saml.modal.helpText",defaultMessage:"The attribute in the SAML server used to sync as a custom attribute in user's profile in Mattermost."}),modalHeaderText:T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.saml.modal.title",defaultMessage:"Link attribute to SAML"})}}))}}},ME="user-property-field_dotmenu",_E=e=>{let{field:t,canCreate:s,createField:i,updateField:n,deleteField:r}=e;const{formatMessage:o}=(0,N.useIntl)(),{promptDelete:l}=(()=>{const e=(0,a.useDispatch)();return{promptDelete:t=>new Promise((s=>{e((0,Gr.q)({modalId:mt.IQ.USER_PROPERTY_FIELD_DELETE,dialogType:Kf,dialogProps:{name:t.name,onConfirm:()=>s(!0)}}))}))}})(),{promptEditLdapLink:d,promptEditSamlLink:c}=yE(t,n),m=e=>{n(bE(bE({},t),{},{attrs:bE(bE({},t.attrs),{},{visibility:e})}))},u=()=>{const e=bE({},t.attrs);"admin"===t.attrs.managed?Reflect.deleteProperty(e,"managed"):e.managed="admin",n(bE(bE({},t),{},{attrs:e}))};let p;return"always"===t.attrs.visibility?p=T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.always.label",defaultMessage:"Always show"}):"when_set"===t.attrs.visibility?p=T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.when_set.label",defaultMessage:"Hide when empty"}):"hidden"===t.attrs.visibility&&(p=T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.hidden.label",defaultMessage:"Always hide"})),T().createElement(Di.mc,{menuButton:{id:"".concat(ME,"-").concat(t.id),class:"btn btn-transparent user-property-field-dotmenu-menu-button",children:T().createElement(T().Fragment,null,T().createElement(R.DotsHorizontalIcon,{size:18})),dataTestId:"".concat(ME,"-").concat(t.id),disabled:0!==t.delete_at},menu:{id:"".concat(ME,"-menu"),"aria-label":"Select an action",className:"user-property-field-dotmenu-menu"}},T().createElement(Di.g8,{id:"".concat(ME,"-").concat(t.id,"-visibility"),menuId:"".concat(ME,"-").concat(t.id,"-visibility-menu"),leadingElement:T().createElement(R.EyeOutlineIcon,{size:"18"}),labels:T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.label",defaultMessage:"Visibility"}),trailingElements:T().createElement(T().Fragment,null,p,T().createElement(R.ChevronRightIcon,{size:16})),forceOpenOnLeft:!1},T().createElement(Di.q7,{id:"".concat(ME,"_visibility-always"),role:"menuitemradio",forceCloseOnSelect:!0,"aria-checked":"always"===t.attrs.visibility,onClick:()=>m("always"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.always.label",defaultMessage:"Always show"}),trailingElements:"always"===t.attrs.visibility&&T().createElement(R.CheckIcon,{size:16,color:"var(--button-bg, #1c58d9)"})}),T().createElement(Di.q7,{id:"".concat(ME,"_visibility-when_set"),role:"menuitemradio",forceCloseOnSelect:!0,"aria-checked":"when_set"===t.attrs.visibility,onClick:()=>m("when_set"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.when_set.label",defaultMessage:"Hide when empty"}),trailingElements:"when_set"===t.attrs.visibility&&T().createElement(R.CheckIcon,{size:16,color:"var(--button-bg, #1c58d9)"})}),T().createElement(Di.q7,{id:"".concat(ME,"_visibility-hidden"),role:"menuitemradio",forceCloseOnSelect:!0,"aria-checked":"hidden"===t.attrs.visibility,onClick:()=>m("hidden"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.visibility.hidden.label",defaultMessage:"Always hide"}),trailingElements:"hidden"===t.attrs.visibility&&T().createElement(R.CheckIcon,{size:16,color:"var(--button-bg, #1c58d9)"})})),T().createElement(Di.q7,{id:"".concat(ME,"_editable-by-users"),role:"menuitemcheckbox","aria-checked":"admin"!==t.attrs.managed,onClick:u,leadingElement:T().createElement(R.PencilOutlineIcon,{size:18}),labels:T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.editable_by_users.label",defaultMessage:"Editable by users"}),trailingElements:T().createElement(De.A,{size:"btn-sm",disabled:!1,onToggle:u,toggled:"admin"!==t.attrs.managed,toggleClassName:"btn-toggle-primary",tabIndex:-1})}),0!==t.create_at&&[T().createElement(Di.q7,{key:"".concat(ME,"_link_ad-ldap"),id:"".concat(ME,"_link_ad-ldap"),leadingElement:T().createElement(R.SyncIcon,{size:18}),onClick:()=>d(),labels:t.attrs.ldap?T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.ad_ldap.edit_link.label",defaultMessage:"Edit LDAP link"}):T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.ad_ldap.link_property.label",defaultMessage:"Link attribute to AD/LDAP"})}),T().createElement(Di.q7,{key:"".concat(ME,"_link_saml"),id:"".concat(ME,"_link_saml"),leadingElement:T().createElement(R.SyncIcon,{size:18}),onClick:()=>c(),labels:t.attrs.saml?T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.saml.edit_link.label",defaultMessage:"Edit SAML link"}):T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.saml.link_property.label",defaultMessage:"Link attribute to SAML"})})],T().createElement(Di.wv,null),s&&T().createElement(Di.q7,{id:"".concat(ME,"_duplicate"),onClick:()=>{const e=o({id:"admin.system_properties.user_properties.dotmenu.duplicate.name_copy",defaultMessage:"{fieldName} (copy)"},{fieldName:t.name});i(bE(bE({},t),{},{attrs:bE({},t.attrs),name:e}))},leadingElement:T().createElement(R.ContentCopyIcon,{size:18}),labels:T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.duplicate.label",defaultMessage:"Duplicate attribute"})}),T().createElement(Di.q7,{id:"".concat(ME,"_delete"),onClick:()=>{gE(t)?r(t.id):l(t).then((()=>r(t.id)))},isDestructive:!0,leadingElement:T().createElement(R.TrashCanOutlineIcon,{size:18}),labels:T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.dotmenu.delete.label",defaultMessage:"Delete attribute"})}))};_E.propTypes={canCreate:k().bool.isRequired,createField:k().func.isRequired,updateField:k().func.isRequired,deleteField:k().func.isRequired};const SE=_E;function CE(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function AE(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?CE(Object(s),!0).forEach((function(t){TE(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):CE(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function TE(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const NE=e=>{const{formatMessage:t}=(0,N.useIntl)(),[s,a]=(0,A.useState)(""),i=(0,A.useMemo)((()=>Object.values(OE).filter((e=>t(e.label).toLowerCase().includes(s.toLowerCase())))),[OE,s]),n=(0,A.useMemo)((()=>RE(e.field)),[e.field]),r=n.icon;return T().createElement(Di.mc,{menuButton:{id:"type-button-".concat(e.field.id),class:oe()("btn btn-transparent field-type-selector-menu-button"),children:T().createElement(T().Fragment,null,T().createElement(r,{size:18,color:"rgba(var(--center-channel-color-rgb), 0.64)"}),T().createElement(N.FormattedMessage,n.label)),dataTestId:"fieldTypeSelectorMenuButton",disabled:0!==e.field.delete_at},menu:{id:"type-selector-menu","aria-label":"Select type",className:"select-type-mui-menu"}},[T().createElement(Di.i6,{key:"filter_types",id:"filter_types",type:"text",placeholder:t({id:"admin.system_properties.user_properties.table.filter_type",defaultMessage:"Attribute type"}),className:"search-teams-selector-search",value:s,onChange:e=>{a(e.target.value)},customStyles:IE})],i.map((t=>{const{id:s,icon:i,label:r,hidden:o,canSync:l}=t;if(o)return null;const d=e.field.attrs.ldap||e.field.attrs.saml,c=Boolean(d&&!l);return T().createElement(Di.q7,{id:s,key:s,role:"menuitemradio",forceCloseOnSelect:!0,disabled:c,"aria-checked":s===n.id,onClick:()=>(t=>{e.updateField(AE(AE({},e.field),{},{type:t.fieldType,attrs:AE(AE({},e.field.attrs),{},{value_type:t.valueType})})),a("")})(t),labels:T().createElement(N.FormattedMessage,r),leadingElement:T().createElement(i,{size:18}),trailingElements:s===n.id&&T().createElement(R.CheckIcon,{size:16,color:"var(--button-bg, #1c58d9)"})})})))};NE.propTypes={updateField:k().func.isRequired};const wE=NE,RE=e=>{for(const a of Object.values(OE)){var t,s;if(a.fieldType===e.type&&a.valueType===(null!==(t=null===(s=e.attrs)||void 0===s?void 0:s.value_type)&&void 0!==t?t:""))return a}return OE.text},OE={text:{id:"text",fieldType:"text",valueType:"",icon:R.MenuVariantIcon,label:(0,N.defineMessage)({id:"admin.system_properties.user_properties.table.select_type.text",defaultMessage:"Text"}),canSync:!0},email:{id:"email",hidden:!0,fieldType:"text",valueType:"email",icon:R.EmailOutlineIcon,label:(0,N.defineMessage)({id:"admin.system_properties.user_properties.table.select_type.email",defaultMessage:"Email"})},phone:{id:"phone",fieldType:"text",valueType:"phone",icon:R.PoundIcon,label:(0,N.defineMessage)({id:"admin.system_properties.user_properties.table.select_type.phone",defaultMessage:"Phone"})},url:{id:"url",fieldType:"text",valueType:"url",icon:R.LinkVariantIcon,label:(0,N.defineMessage)({id:"admin.system_properties.user_properties.table.select_type.url",defaultMessage:"URL"})},select:{id:"select",fieldType:"select",valueType:"",icon:R.ChevronDownCircleOutlineIcon,label:(0,N.defineMessage)({id:"admin.system_properties.user_properties.table.select_type.select",defaultMessage:"Select"})},multiselect:{id:"multiselect",fieldType:"multiselect",valueType:"",icon:R.FormatListBulletedIcon,label:(0,N.defineMessage)({id:"admin.system_properties.user_properties.table.select_type.multi_select",defaultMessage:"Multi-select"})}},IE=(0,P.css)(["padding:0 12px;"]);function kE(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function PE(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?kE(Object(s),!0).forEach((function(t){xE(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):kE(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function xE(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const DE=e=>{var t,s;let{field:a,updateField:i,autoFocus:n}=e;const{formatMessage:r}=(0,N.useIntl)(),[o,l]=T().useState(""),{promptEditLdapLink:d,promptEditSamlLink:c}=yE(a,i),m=(0,A.useMemo)((()=>!LE(a.attrs.options,o.trim())),[null==a||null===(t=a.attrs)||void 0===t?void 0:t.options,o]),u=e=>{(e=>{var t;const s={id:"",name:e.trim()};i(PE(PE({},a),{},{attrs:PE(PE({},a.attrs),{},{options:[...null!==(t=a.attrs.options)&&void 0!==t?t:[],s]})}))})(e),l("")};if(a.attrs.ldap||a.attrs.saml){const e=[a.attrs.ldap&&T().createElement("a",{className:"user-property-field-values__chip-link",key:"".concat(a.name,"-ldap"),"data-testid":"user-property-field-values__ldap-".concat(a.name),onClick:()=>d(),onKeyDown:e=>{((0,Yi.e)(e,mt.Ay.KeyCodes.ENTER)||(0,Yi.e)(e,mt.Ay.KeyCodes.SPACE))&&d()},role:"button",tabIndex:0},T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.table.values.synced_with.ldap",defaultMessage:"AD/LDAP: {propertyName}",values:{propertyName:a.attrs.ldap}})),a.attrs.saml&&T().createElement("a",{className:"user-property-field-values__chip-link",key:"".concat(a.name,"-saml"),"data-testid":"user-property-field-values__saml-".concat(a.name),onClick:()=>c(),onKeyDown:e=>{((0,Yi.e)(e,mt.Ay.KeyCodes.ENTER)||(0,Yi.e)(e,mt.Ay.KeyCodes.SPACE))&&c()},role:"button",tabIndex:0},T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.table.values.synced_with.saml",defaultMessage:"SAML: {propertyName}",values:{propertyName:a.attrs.saml}}))].filter(Boolean);return T().createElement(T().Fragment,null,T().createElement("span",{className:"user-property-field-values"},T().createElement(R.SyncIcon,{size:18}),T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.table.values.synced_with",defaultMessage:"Synced with: {syncedProperties}",values:{syncedProperties:T().createElement(N.FormattedList,{value:e})}})))}return(0,zf.L)(a)?T().createElement(T().Fragment,null,T().createElement(H.A,{components:FE,inputValue:o,isClearable:!0,isMulti:!0,menuIsOpen:!1,isDisabled:0!==a.delete_at,onChange:e=>{var t;t=e.map((e=>{let{id:t,value:s}=e;return{id:t,name:s}})),i(PE(PE({},a),{},{attrs:PE(PE({},a.attrs),{},{options:t})}))},onInputChange:e=>l(e),onKeyDown:e=>{if(o&&m)switch(e.key){case"Enter":case"Tab":u(o),e.preventDefault()}},onBlur:e=>{o&&m&&(u(o),e.preventDefault())},placeholder:r({id:"admin.system_properties.user_properties.table.values.placeholder",defaultMessage:"Add values… (required)"}),value:null===(s=a.attrs.options)||void 0===s?void 0:s.map((e=>({label:e.name,value:e.name,id:e.id}))),menuPortalTarget:document.body,styles:UE,autoFocus:n}),!m&&T().createElement(N.FormattedMessage,{tagName:X,id:"admin.system_properties.user_properties.table.validation.values_unique",defaultMessage:"Values must be unique."})):T().createElement("span",{className:"user-property-field-values"},"-")};DE.propTypes={updateField:k().func.isRequired,autoFocus:k().bool};const LE=(e,t)=>null==e?void 0:e.some((e=>e.name===t)),FE={DropdownIndicator:void 0,ClearIndicator:void 0,IndicatorsContainer:()=>null,Input:e=>T().createElement(Zl.c.Input,Object.assign({},e,{maxLength:mt.Ay.MAX_CUSTOM_ATTRIBUTE_LENGTH}))},UE={multiValue:e=>PE(PE({},e),{},{borderRadius:"12px",paddingLeft:"6px",paddingTop:"1px",paddingBottom:"1px",backgroundColor:"rgba(var(--center-channel-color-rgb), 0.08)"}),multiValueLabel:e=>PE(PE({},e),{},{color:"var(--center-channel-color)",fontFamily:"Open Sans",fontSize:"12px",fontStyle:"normal",fontWeight:600,lineHeight:"16px"}),multiValueRemove:e=>PE(PE({},e),{},{cursor:"pointer",color:"var(--center-channel-color)",borderRadius:"0 12px 12px 0","&:hover":{backgroundColor:"rgba(var(--center-channel-color-rgb), 0.08)",color:"var(--center-channel-color)"}}),control:(e,t)=>PE(PE(PE({},e),{},{minHeight:"40px",overflowY:"auto",border:"none",borderRadius:"0"},t.isFocused&&{border:"none",boxShadow:"none",background:"rgba(var(--button-bg-rgb), 0.08)"}),{},{"&:hover":{background:"rgba(var(--button-bg-rgb), 0.08)",cursor:"text"}})},BE=DE;function jE(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function HE(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?jE(Object(s),!0).forEach((function(t){GE(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):jE(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function GE(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}function qE(e){let{data:t,canCreate:s,createField:a,updateField:i,deleteField:n,reorderField:r}=e;const{formatMessage:o}=(0,N.useIntl)(),l=(0,Wf.collectionToArray)(t),d=(0,lf.FB)(),c=(0,A.useMemo)((()=>[d.accessor("name",{size:180,header:()=>T().createElement(zE,null,T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.table.property",defaultMessage:"Attribute"})),cell:e=>{var s,a;let{getValue:n,row:r}=e;const l=0!==r.original.delete_at,d=null===(s=t.warnings)||void 0===s||null===(a=s[r.original.id])||void 0===a?void 0:a.name;let c;return d===dE?c=T().createElement(N.FormattedMessage,{tagName:X,id:"admin.system_properties.user_properties.table.validation.name_required",defaultMessage:"Please enter an attribute name."}):d===cE?c=T().createElement(N.FormattedMessage,{tagName:X,id:"admin.system_properties.user_properties.table.validation.name_unique",defaultMessage:"Attribute names must be unique."}):d===mE&&(c=T().createElement(N.FormattedMessage,{tagName:X,id:"admin.system_properties.user_properties.table.validation.name_taken",defaultMessage:"Attribute name already taken."})),T().createElement(T().Fragment,null,T().createElement(ZE,{strong:!0,value:n(),label:o({id:"admin.system_properties.user_properties.table.property_name.input.name",defaultMessage:"Attribute Name"}),deleted:l,borderless:!c,testid:"property-field-input",autoFocus:gE(r.original)&&!(0,zf.L)(r.original),setValue:e=>{i(HE(HE({},r.original),{},{name:e.trim()}))},maxLength:mt.Ay.MAX_CUSTOM_ATTRIBUTE_NAME_LENGTH}),!l&&c)},enableHiding:!1,enableSorting:!1}),d.accessor("type",{size:100,header:()=>T().createElement(zE,null,T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.table.type",defaultMessage:"Type"})),cell:e=>{let{row:t}=e;return T().createElement(wE,{field:t.original,updateField:i})},enableHiding:!1,enableSorting:!1}),d.display({id:"options",size:300,header:()=>T().createElement(zE,null,T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.table.values",defaultMessage:"Values"})),cell:e=>{let{row:t}=e;return T().createElement(T().Fragment,null,T().createElement(BE,{field:t.original,updateField:i,autoFocus:gE(t.original)&&(0,zf.L)(t.original)}))},enableHiding:!1,enableSorting:!1}),d.display({id:"actions",size:40,header:()=>T().createElement(WE,null,T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.table.actions",defaultMessage:"Actions"})),cell:e=>{let{row:t}=e;return T().createElement(YE,null,T().createElement(SE,{field:t.original,canCreate:s,createField:a,updateField:i,deleteField:n}))},enableHiding:!1,enableSorting:!1})]),[a,i,n,t.warnings,s]),m=(0,df.N4)({data:l,columns:c,getCoreRowModel:(0,lf.HT)(),getSortedRowModel:(0,lf.h5)(),enableSortingRemoval:!1,enableMultiSort:!1,renderFallbackValue:"",meta:{tableId:"userProperties",disablePaginationControls:!0,onReorder:(e,s)=>{r(t.data[t.order[e]],s)}},manualPagination:!0});return T().createElement(VE,null,T().createElement(mf.z4,{table:m}))}qE.propTypes={canCreate:k().bool.isRequired,createField:k().func.isRequired,updateField:k().func.isRequired,deleteField:k().func.isRequired,reorderField:k().func.isRequired};const VE=x().div.withConfig({displayName:"TableWrapper"})(["table.adminConsoleListTable{td,th{&:after,&:before{display:none;}}thead{border-top:none;border-bottom:1px solid rgba(var(--center-channel-color-rgb),0.08);tr{th.pinned{background:rgba(var(--center-channel-color-rgb),0.04);padding-block-end:8px;padding-block-start:8px;}}}tbody{tr{border-top:none;border-bottom:1px solid rgba(var(--center-channel-color-rgb),0.08);border-bottom-color:rgba(var(--center-channel-color-rgb),0.08) !important;td{padding-block-end:0;padding-block-start:0;&:not(:first-child):not(:last-child){padding-inline-end:0;padding-inline-start:0;}&:last-child{padding-inline-end:12px;}&.pinned{background:none;}}}}tfoot{border-top:none;}}.adminConsoleListTableContainer{padding:2px 0px;}"]),zE=x().div.withConfig({displayName:"ColHeaderLeft"})(["display:inline-block;"]),WE=x().div.withConfig({displayName:"ColHeaderRight"})(["display:inline-block;width:100%;text-align:right;"]),YE=x().div.withConfig({displayName:"ActionsRoot"})(["text-align:right;"]),ZE=e=>{var t;const[s,a]=(0,A.useState)(e.value);return(0,A.useEffect)((()=>{a(e.value)}),[e.value]),T().createElement(T().Fragment,null,T().createElement(Q,{type:"text","aria-label":e.label,"data-testid":e.testid,disabled:null!==(t=e.disabled)&&void 0!==t?t:e.deleted,$deleted:e.deleted,$strong:e.strong,maxLength:e.maxLength,autoFocus:e.autoFocus,onFocus:t=>{e.autoFocus&&t.target.select()},value:s,onChange:e=>{a(e.target.value)},onBlur:()=>{s!==e.value&&e.setValue(s)}}),e.footer)};function JE(e){const{formatMessage:t}=(0,N.useIntl)(),s=(0,a.useDispatch)(),i=(()=>{const[e,t,s,i]=(()=>{const[e,t]=function(e,t){var s,i;const n=null===(s=null===(i=e.opts)||void 0===i?void 0:i.forceInitialGet)||void 0===s||s,r=(0,a.useSelector)((t=>{var s;return null===(s=e.select)||void 0===s?void 0:s.call(e,t)})),[o,l]=(0,A.useState)(t),[d,c]=nE(e.get,n||!r);return(0,A.useEffect)((()=>{!n&&r||d().then((e=>{void 0!==e&&l(e)}))}),[n,r,d,l]),[null!=r?r:o,tE(tE({},c),{},{get:d,setData:l})]}((0,A.useMemo)((()=>({get:async()=>{const e=(await O.mT.getCustomProfileAttributeFields()).sort(((e,t)=>{var s,a,i,n;return(null!==(s=null===(a=e.attrs)||void 0===a?void 0:a.sort_order)&&void 0!==s?s:0)-(null!==(i=null===(n=t.attrs)||void 0===n?void 0:n.sort_order)&&void 0!==i?i:0)}));return(0,Wf.collectionFromArray)(e)},select:e=>{},opts:{forceInitialGet:!0}})),[]),(0,Wf.collectionFromArray)([])),[s,i]=function(e,t){const[s,a]=(0,A.useState)(e),i=s!==e,[n,{loading:r,error:o},l]=nE(t.commit,!1);(0,A.useEffect)((()=>{a(e)}),[a,e]);const d=(0,A.useCallback)((s=>{a((a=>{const i="function"==typeof s?s(a):tE(tE({},a),s);return t.beforeUpdate?null==t?void 0:t.beforeUpdate(i,e):i}))}),[a,e,t.beforeUpdate]),c=(0,A.useCallback)((()=>{a(e),l(!1)}),[a,e,l]),m=(0,A.useCallback)((()=>n(s,e)),[n,s,e]);return[s,{saving:r,error:o,hasChanges:i,apply:d,commit:m,reset:c}]}(e,(0,A.useMemo)((()=>({commit:async(e,t)=>{const s=(0,Wf.collectionToArray)(e).reduce(((e,s)=>{if(s===t.data[s.id])return e;switch(!0){case gE(s):e.create.push(s);break;case hE(s):e.delete.push(s);break;case s!==t.data[s.id]:e.edit.push(s)}return e}),{delete:[],edit:[],create:[]}),a={data:oE({},e.data),order:[...e.order],errors:{}};if(await Promise.all(s.delete.map((async e=>{let{id:t}=e;return O.mT.deleteCustomProfileAttributeField(t).then((()=>{Reflect.deleteProperty(a.data,t),a.order=a.order.filter((e=>e!==t))})).catch((e=>{a.errors=oE(oE({},a.errors),{},{[t]:e})}))}))),await Promise.all(s.edit.map((async e=>{const{id:t,name:s,type:i,attrs:n}=e;let r={name:s,type:i,attrs:n};if("select"!==i&&"multiselect"!==i){const e=oE({},r.attrs);Reflect.deleteProperty(e,"options"),r=oE(oE({},r),{},{attrs:e})}return O.mT.patchCustomProfileAttributeField(t,r).then((e=>{a.data[t]=e})).catch((e=>{a.errors=oE(oE({},a.errors),{},{[t]:e})}))}))),await Promise.all(s.create.map((async e=>{const{id:t,name:s,type:i,attrs:n}=e;return O.mT.createCustomProfileAttributeField({name:s,type:i,attrs:n}).then((s=>{Reflect.deleteProperty(a.data,t),a.data[null==s?void 0:s.id]=s,a.order=a.order.map((t=>t===(null==e?void 0:e.id)?s.id:t))})).catch((e=>{a.errors=oE(oE({},a.errors),{},{[t]:e})}))}))),!eo()(a.errors))throw new aE("error processing operations",{cause:a.errors});return Reflect.deleteProperty(a,"errors"),a},beforeUpdate:(e,t)=>{const s=e=>Xf()(e,(e=>{let{name:t}=e;return t.toLowerCase()})),a=s(e.data),i=s(t.data),n=Object.values(e.data).reduce(((t,s)=>{var n,r,o,l,d;if(s.name){if((null===(n=a[s.name.toLowerCase()])||void 0===n||null===(r=n.filter((e=>0===e.delete_at)))||void 0===r?void 0:r.length)>1)t[s.id]={name:cE};else if((null==i||null===(o=i[s.name.toLowerCase()])||void 0===o?void 0:o.length)>=1&&s.id!==(null==i||null===(l=i[s.name.toLowerCase()])||void 0===l||null===(d=l[0])||void 0===d?void 0:d.id)){var c,m;0===e.data[null==i||null===(c=i[s.name.toLowerCase()])||void 0===c||null===(m=c[0])||void 0===m?void 0:m.id].delete_at&&(t[s.id]={name:mE})}}else t[s.id]={name:dE};if("select"===s.type||"multiselect"===s.type){var u;const e=null===(u=s.attrs)||void 0===u?void 0:u.options;null!=e&&e.length||(t[s.id]={attrs:uE})}return t}),{}),r=oE(oE({},e),{},{warnings:n});return eo()(n)&&Reflect.deleteProperty(r,"warnings"),r}})),[])),n=(0,A.useMemo)((()=>({update:e=>{i.apply((t=>(0,Wf.collectionReplaceItem)(t,e)))},create:e=>{i.apply((t=>{var s;const a=Object.values(t.data).filter((e=>!hE(e))).length,i=fE(oE(oE({type:"text"},e),{},{name:pE(null!==(s=null==e?void 0:e.name)&&void 0!==s?s:"Text",t),attrs:oE(oE({visibility:"when_set",value_type:""},null==e?void 0:e.attrs),{},{sort_order:a})}));return(0,Wf.collectionAddItem)(t,i)}))},reorder:(e,t)=>{let{id:s}=e;i.apply((e=>{const a=(0,$f.wq)(e.order,s,t);if(a===e.order)return e;const i=Object.values(e.data).reduce(((e,t)=>{var s;const i=null===(s=t.attrs)||void 0===s?void 0:s.sort_order,n=a.indexOf(t.id);return n!==i&&e.push(oE(oE({},t),{},{attrs:oE(oE({},t.attrs),{},{sort_order:n})})),e}),[]);return(0,Wf.collectionReplaceItem)(oE(oE({},e),{},{order:a}),...i)}))},delete:e=>{i.apply((t=>{const s=t.data[e];return gE(s)?(0,Wf.collectionRemoveItem)(t,s):(0,Wf.collectionReplaceItem)(t,oE(oE({},s),{},{delete_at:Date.now()}))}))}})),[i.apply]);return[s,t,i,n]})(),n=Object.values(e.data).filter((e=>0===e.delete_at)).length<mt.Ay.MAX_CUSTOM_ATTRIBUTES;return{content:t.loading?T().createElement(Na.A,null):T().createElement(T().Fragment,null,T().createElement(qE,{data:e,canCreate:n,createField:i.create,updateField:i.update,deleteField:i.delete,reorderField:i.reorder}),n&&T().createElement($,{onClick:()=>{i.create()}},T().createElement(R.PlusIcon,{size:16}),T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.add_property",defaultMessage:"Add attribute"}))),loading:t.loading,hasChanges:s.hasChanges,isValid:!e.warnings,save:async()=>{const e=await s.commit();e&&!e.errors&&t.setData(e)},cancel:s.reset,saving:s.saving,saveError:s.error}})(),n=i.saving,r=i.hasChanges,o=i.isValid,l=i.saveError;return(0,A.useEffect)((()=>{s((0,h.Jb)(r))}),[r]),T().createElement("div",{className:"wrapper--fixed","data-testid":"systemProperties"},T().createElement(nt,null,T().createElement(N.FormattedMessage,KE.pageTitle)),T().createElement(K,null,T().createElement(J,{"data-testid":"user_properties"},T().createElement(Y,null,T().createElement("hgroup",null,T().createElement(N.FormattedMessage,{tagName:W,id:"admin.system_properties.user_properties.title",defaultMessage:"Configure user attributes"}),T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.subtitle",defaultMessage:"Attributes will be shown in user profile and can be used in access control policies."}))),T().createElement(Z,{$compact:!0},i.content))),T().createElement(it,{saving:n,saveNeeded:r,onClick:()=>{i.save()},onCancel:()=>{i.cancel()},serverError:l?T().createElement(N.FormattedMessage,{tagName:X,id:"admin.system_properties.details.saving_changes_error",defaultMessage:"There was an error while saving the configuration"}):void 0,savingMessage:t({id:"admin.system_properties.details.saving_changes",defaultMessage:"Saving configuration…"}),isDisabled:e.disabled||n||!o}))}ZE.propTypes={value:k().string.isRequired,label:k().string,testid:k().string,setValue:k().func.isRequired,autoFocus:k().bool,disabled:k().bool,deleted:k().bool,footer:k().node,strong:k().bool,maxLength:k().number,borderless:k().bool},JE.propTypes={disabled:k().bool.isRequired};const KE=(0,N.defineMessages)({pageTitle:{id:"admin.sidebar.user_attributes",defaultMessage:"User Attributes"}}),QE=Object.values(KE),XE=JE,$E={system_admin:(0,N.defineMessages)({name:{id:"admin.permissions.roles.system_admin.name",defaultMessage:"System Admin"},description:{id:"admin.permissions.roles.system_admin.description",defaultMessage:"Access to modifying everything."},type:{id:"admin.permissions.roles.system_admin.type",defaultMessage:"System Role"}}),system_user_manager:(0,N.defineMessages)({name:{id:"admin.permissions.roles.system_user_manager.name",defaultMessage:"User Manager"},description:{id:"admin.permissions.roles.system_user_manager.description",defaultMessage:"Enough access to help with user management."},type:{id:"admin.permissions.roles.system_user_manager.type",defaultMessage:"System Role"}}),system_manager:(0,N.defineMessages)({name:{id:"admin.permissions.roles.system_manager.name",defaultMessage:"System Manager"},description:{id:"admin.permissions.roles.system_manager.description",defaultMessage:"Slightly less access than system admin."},type:{id:"admin.permissions.roles.system_manager.type",defaultMessage:"System Role"}}),system_read_only_admin:(0,N.defineMessages)({name:{id:"admin.permissions.roles.system_read_only_admin.name",defaultMessage:"Viewer"},description:{id:"admin.permissions.roles.system_read_only_admin.description",defaultMessage:"Read only access for oversight."},type:{id:"admin.permissions.roles.system_read_only_admin.type",defaultMessage:"System Role"}}),system_custom_group_admin:(0,N.defineMessages)({name:{id:"admin.permissions.roles.system_custom_group_admin.name",defaultMessage:"Custom Group Manager"},description:{id:"admin.permissions.roles.system_custom_group_admin.description",defaultMessage:"Administers all Custom Groups across the system."},type:{id:"admin.permissions.roles.system_custom_group_admin.type",defaultMessage:"System Role"}})},eb=[{name:"Role",field:"role",width:2},{name:"Description",field:"description",width:3},{name:"Type",field:"type",width:2},{name:"",field:"edit",width:1,textAlign:"right"}];class tb extends T().PureComponent{render(){const{roles:e}=this.props,t=[];return["system_admin","system_manager","system_user_manager","system_custom_group_admin","system_read_only_admin"].forEach((s=>{const a=e[s];a&&t.push({cells:{role:T().createElement(N.FormattedMessage,$E[a.name].name),description:T().createElement(N.FormattedMessage,$E[a.name].description),type:T().createElement(N.FormattedMessage,$E[a.name].type),edit:T().createElement("span",{className:"SystemRoles_editRow","data-testid":"".concat(a.name,"_edit")},T().createElement(w.Link,{to:"/admin_console/user_management/system_roles/".concat(a.id)},T().createElement(N.FormattedMessage,{id:"admin.permissions.roles.edit",defaultMessage:"Edit"})))},onClick:()=>(0,Li.J)().push("/admin_console/user_management/system_roles/".concat(a.id))})})),T().createElement("div",{className:"wrapper--fixed"},T().createElement(nt,null,T().createElement(N.FormattedMessage,{id:"admin.permissions.systemRoles",defaultMessage:"Delegated Granular Administration"})),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement(dc,{id:"SystemRoles",title:(0,N.defineMessage)({id:"admin.permissions.systemRolesBannerTitle",defaultMessage:"Admin Roles"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.systemRolesBannerText",defaultMessage:"Manage different levels of access to the system console."})},T().createElement("div",{className:"SystemRoles"},T().createElement(xe,{rows:t,columns:eb,page:1,startCount:0,endCount:t.length,loading:!1,nextPage:()=>{},previousPage:()=>{}}))))))}}const sb=(0,a.connect)((function(e){return{roles:(0,C.O0)(e)}}))(tb);var ab=s(15841),ib=s.n(ab),nb=s(13459),rb=s.n(nb),ob=s(83949),lb=s(78546);const db={about:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_about.name",defaultMessage:"About"},description:{id:"admin.permissions.sysconsole_section_about.description",defaultMessage:"The ability to install or upgrade your servers enterprise licensing."}}),about_edition_and_license:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_about_edition_and_license.name",defaultMessage:"Edition and License"}}),billing:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_billing.name",defaultMessage:"Billing"},description:{id:"admin.permissions.sysconsole_section_billing.description",defaultMessage:"Access subscription details, billing history, company information and payment information."}}),reporting:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_reporting.name",defaultMessage:"Reporting"},description:{id:"admin.permissions.sysconsole_section_reporting.description",defaultMessage:"Review site statistics, team statistics and server logs."}}),reporting_site_statistics:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_reporting_site_statistics.name",defaultMessage:"Site Statistics"}}),reporting_team_statistics:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_reporting_team_statistics.name",defaultMessage:"Team Statistics"}}),reporting_server_logs:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_reporting_server_logs.name",defaultMessage:"Server Logs"}}),user_management:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_user_management.name",defaultMessage:"User Management"},description:{id:"admin.permissions.sysconsole_section_user_management.description",defaultMessage:"Review users, groups, teams, channels, permissions and system roles."}}),user_management_users:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_user_management_users.name",defaultMessage:"Users"},description:{id:"admin.permissions.sysconsole_section_user_management_users.description",defaultMessage:"Cannot reset admin passwords"}}),user_management_groups:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_user_management_groups.name",defaultMessage:"Groups"}}),user_management_teams:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_user_management_teams.name",defaultMessage:"Teams"}}),user_management_channels:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_user_management_channels.name",defaultMessage:"Channels"}}),user_management_permissions:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_user_management_permissions.name",defaultMessage:"Permissions"}}),user_management_system_roles:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_user_management_system_roles.name",defaultMessage:"Delegated Granular Administration"},description:{id:"admin.permissions.sysconsole_section_user_management_system_roles.description",defaultMessage:"Restricts the System Console interface only. The underlying API endpoints are accessible to all users in a read-only state for basic product functionality."}}),environment:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment.name",defaultMessage:"Environment"},description:{id:"admin.permissions.sysconsole_section_environment.description",defaultMessage:"Review server environment configuration such as URLs, database and performance."}}),environment_web_server:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_web_server.name",defaultMessage:"Web Server"}}),environment_database:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_database.name",defaultMessage:"Database"}}),environment_elasticsearch:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_elasticsearch.name",defaultMessage:"Elasticsearch"}}),environment_file_storage:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_file_storage.name",defaultMessage:"File Storage"}}),environment_image_proxy:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_image_proxy.name",defaultMessage:"Image Proxy"}}),environment_smtp:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_smtp.name",defaultMessage:"SMTP"}}),environment_push_notification_server:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_push_notification_server.name",defaultMessage:"Push Notification Server"}}),environment_high_availability:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_high_availability.name",defaultMessage:"High Availability"}}),environment_rate_limiting:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_rate_limiting.name",defaultMessage:"Rate Limiting"}}),environment_logging:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_logging.name",defaultMessage:"Logging"}}),environment_session_lengths:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_session_lengths.name",defaultMessage:"Session Lengths"}}),environment_performance_monitoring:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_performance_monitoring.name",defaultMessage:"Performance Monitoring"}}),environment_developer:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_developer.name",defaultMessage:"Developer"}}),environment_mobile_security:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_environment_mobile_security.name",defaultMessage:"Mobile Security"}}),site:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site.name",defaultMessage:"Site Configuration"},description:{id:"admin.permissions.sysconsole_section_site.description",defaultMessage:"Review site specific configurations such as site name, notification defaults and file sharing."}}),site_customization:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_customization.name",defaultMessage:"Customization"}}),site_localization:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_localization.name",defaultMessage:"Localization"}}),site_users_and_teams:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_users_and_teams.name",defaultMessage:"Users and Teams"}}),site_notifications:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_notifications.name",defaultMessage:"Notifications"}}),site_announcement_banner:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_announcement_banner.name",defaultMessage:"Announcement Banner"}}),site_emoji:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_emoji.name",defaultMessage:"Emoji"}}),site_posts:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_posts.name",defaultMessage:"Posts"}}),site_file_sharing_and_downloads:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_file_sharing_and_downloads.name",defaultMessage:"File Sharing and Downloads"}}),site_public_links:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_public_links.name",defaultMessage:"Public Links"}}),site_notices:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_site_notices.name",defaultMessage:"Notices"}}),authentication:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication.name",defaultMessage:"Authentication"},description:{id:"admin.permissions.sysconsole_section_authentication.description",defaultMessage:"Review the configuration around how users can signup and access Mattermost."}}),authentication_signup:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_signup.name",defaultMessage:"Signup"}}),authentication_email:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_email.name",defaultMessage:"Email"}}),authentication_password:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_password.name",defaultMessage:"Password"}}),authentication_mfa:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_mfa.name",defaultMessage:"MFA"}}),authentication_ldap:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_ldap.name",defaultMessage:"AD/LDAP"}}),authentication_saml:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_saml.name",defaultMessage:"SAML 2.0"}}),authentication_openid:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_openid.name",defaultMessage:"OpenID Connect"}}),authentication_guest_access:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_authentication_guest_access.name",defaultMessage:"Guest Access"}}),plugins:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_plugins.name",defaultMessage:"Plugins"},description:{id:"admin.permissions.sysconsole_section_plugins.description",defaultMessage:"Review installed plugins and their configuration."}}),integrations:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_integrations.name",defaultMessage:"Integrations"},description:{id:"admin.permissions.sysconsole_section_integrations.description",defaultMessage:"Review integration configurations such as webhooks, bots and cross-origin requests."}}),integrations_integration_management:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_integrations_integration_management.name",defaultMessage:"Integration Management"}}),integrations_bot_accounts:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_integrations_bot_accounts.name",defaultMessage:"Bot Accounts"}}),integrations_gif:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_integrations_gif.name",defaultMessage:"GIF"}}),integrations_cors:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_integrations_cors.name",defaultMessage:"CORS"}}),compliance:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_compliance.name",defaultMessage:"Compliance"},description:{id:"admin.permissions.sysconsole_section_compliance.description",defaultMessage:"Review compliance settings such as retention, exports and activity logs."}}),compliance_data_retention_policy:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_compliance_data_retention_policy.name",defaultMessage:"Data Retention Policy"}}),compliance_compliance_export:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_compliance_compliance_export.name",defaultMessage:"Compliance Export"}}),compliance_compliance_monitoring:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_compliance_compliance_monitoring.name",defaultMessage:"Compliance Monitoring"}}),compliance_custom_terms_of_service:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_compliance_custom_terms_of_service.name",defaultMessage:"Custom Terms of Service"}}),experimental:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_experimental.name",defaultMessage:"Experimental"},description:{id:"admin.permissions.sysconsole_section_experimental.description",defaultMessage:"Review the settings of experimental features"}}),experimental_features:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_experimental_features.name",defaultMessage:"Features"}}),experimental_feature_flags:(0,N.defineMessages)({name:{id:"admin.permissions.sysconsole_section_experimental_feature_flags.name",defaultMessage:"Feature Flags"}})};var cb=s(24163);const mb="read",ub="write",pb=!1,gb="mixed";function hb(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class fb extends T().PureComponent{constructor(){super(...arguments),hb(this,"updatePermission",(e=>{const{section:t}=this.props,s=[];t.subsections&&t.subsections.length>0?t.subsections.forEach((t=>{let{name:a,disabled:i}=t;i||s.push({name:a,value:e})})):s.push({name:t.name,value:e}),this.props.updatePermissions(s)})),hb(this,"renderOption",((e,t)=>T().createElement("div",{className:"PermissionSectionDropdownOptions"},T().createElement("div",{className:"PermissionSectionDropdownOptions_label"},e),T().createElement("div",{className:"PermissionSectionDropdownOptions_description"},t))))}render(){const{isDisabled:e,section:t}=this.props,s=T().createElement(N.FormattedMessage,{id:"admin.permissions.system_role_permissions.write.title",defaultMessage:"Can edit"}),a=T().createElement(N.FormattedMessage,{id:"admin.permissions.system_role_permissions.write.description",defaultMessage:"Can add, edit and delete anything in this section."}),i=T().createElement(N.FormattedMessage,{id:"admin.permissions.system_role_permissions.read.title",defaultMessage:"Read only"}),n=T().createElement(N.FormattedMessage,{id:"admin.permissions.system_role_permissions.read.description",defaultMessage:"Can view this section but can't edit anything in it"}),r=T().createElement(N.FormattedMessage,{id:"admin.permissions.system_role_permissions.no_access.title",defaultMessage:"No access"}),o=T().createElement(N.FormattedMessage,{id:"admin.permissions.system_role_permissions.mixed_access.title",defaultMessage:"Mixed access"}),l=T().createElement(N.FormattedMessage,{id:"admin.permissions.system_role_permissions.no_access.description",defaultMessage:"No access to this section and it will be hidden in the navigation."});let d=r;switch(this.props.access){case mb:d=i;break;case ub:d=s;break;case gb:d=o;break;default:d=r}const c=D.Vw({id:"admin.permissions.system_role_permissions.change_access",defaultMessage:"Change role access on a system console section"});return T().createElement(bl.A,{isDisabled:e},T().createElement("button",{id:"systemRolePermissionDropdown".concat(t.name),className:"PermissionSectionDropdownButton dropdown-toggle theme",type:"button","aria-expanded":"true"},T().createElement("div",{className:"PermissionSectionDropdownButton_text"},d),T().createElement("div",{className:"PermissionSectionDropdownButton_icon"},T().createElement(cb.A,null))),T().createElement(El.A,{ariaLabel:c},T().createElement(El.A.ItemAction,{onClick:()=>this.updatePermission(ub),text:this.renderOption(s,a)}),T().createElement(El.A.ItemAction,{onClick:()=>this.updatePermission(mb),text:this.renderOption(i,n)}),T().createElement(El.A.ItemAction,{onClick:()=>this.updatePermission(pb),text:this.renderOption(r,l)})))}}function Eb(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}hb(fb,"propTypes",{updatePermissions:k().func.isRequired,isDisabled:k().bool});class bb extends T().PureComponent{constructor(){super(...arguments),Eb(this,"isSectionVisible",((e,t)=>{const{permissionsMap:s,permissionsToUpdate:a}=this.props;return Object.keys(t).includes(e.name)?t[e.name]:this.getAccessForSection(e,s,a)===gb})),Eb(this,"renderSubsectionToggle",((e,t)=>{if(!e.subsections||0===e.subsections.length)return null;const s=t?T().createElement("i",{className:"Icon icon-chevron-up"}):T().createElement("i",{className:"Icon icon-chevron-down"}),a=t?T().createElement(N.FormattedMessage,{id:"admin.permissions.system_role_permissions.hide_subsections",defaultMessage:"Hide {subsectionsCount} subsections",values:{subsectionsCount:e.subsections.length}}):T().createElement(N.FormattedMessage,{id:"admin.permissions.system_role_permissions.show_subsections",defaultMessage:"Show {subsectionsCount} subsections",values:{subsectionsCount:e.subsections.length}});return T().createElement("div",{className:"PermissionSubsectionsToggle"},T().createElement("button",{onClick:()=>this.props.setSectionVisible(e.name,!t),className:"dropdown-toggle theme color--link style--none"},a,s))})),Eb(this,"renderSubsections",((e,t,s,a)=>e.subsections&&0!==e.subsections.length?T().createElement("div",null,a&&T().createElement("div",{className:"PermissionSubsections"},e.subsections.map((e=>this.renderSectionRow(e,t,s,a))))):null)),Eb(this,"renderSectionRow",((e,t,s,a)=>{const i=db[e.name]?T().createElement(N.FormattedMessage,db[e.name].name):e.name,n=db[e.name]?T().createElement(N.FormattedMessage,db[e.name].description):"";return T().createElement("div",{key:e.name,"data-testid":"permission_section_".concat(e.name),className:"PermissionSection"},T().createElement("div",{className:"PermissionSectionText"},T().createElement("div",{className:"PermissionSectionText_title"},i),e.hasDescription&&n&&T().createElement("div",{className:"PermissionSection_description"},n),this.renderSubsectionToggle(e,a)),T().createElement("div",{className:"PermissionSectionDropdown"},T().createElement(fb,{section:e,updatePermissions:this.props.updatePermissions,access:this.getAccessForSection(e,t,s),isDisabled:this.props.readOnly||Boolean(e.disabled)})))})),Eb(this,"getAccessForSection",((e,t,s)=>{if(e.subsections&&e.subsections.length>0){let a=!1,i=!1,n=!1;if(e.subsections.forEach((e=>{switch(this.getAccessForSectionByName(e.name,t,s)){case mb:i=!0;break;case ub:n=!0;break;default:a=!0}})),[i,n,a].filter((e=>e)).length>1)return gb;if(i)return mb;if(n)return ub;if(a)return pb}return this.getAccessForSectionByName(e.name,t,s)})),Eb(this,"getAccessForSectionByName",((e,t,s)=>{if(t[y.A.MANAGE_SYSTEM])return ub;let a=!1;return e in s?a=s[e]:(!0===t["sysconsole_read_".concat(e)]&&(a=mb),!0===t["sysconsole_write_".concat(e)]&&(a=ub)),a}))}render(){const{section:e,permissionsMap:t,permissionsToUpdate:s,visibleSections:a}=this.props,i=this.isSectionVisible(e,a);return T().createElement("div",{className:"PermissionRow"},this.renderSectionRow(e,t,s,i),this.renderSubsections(e,t,s,i))}}function vb(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function yb(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?vb(Object(s),!0).forEach((function(t){Mb(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):vb(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Mb(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}Eb(bb,"propTypes",{readOnly:k().bool,setSectionVisible:k().func.isRequired,permissionsMap:k().objectOf(k().bool).isRequired,visibleSections:k().objectOf(k().bool).isRequired,updatePermissions:k().func.isRequired});const _b=[{name:"about",hasDescription:!0,subsections:[{name:"about_edition_and_license"}]},{name:"billing",hasDescription:!0,subsections:[]},{name:"reporting",hasDescription:!0,subsections:[{name:"reporting_site_statistics"},{name:"reporting_team_statistics"},{name:"reporting_server_logs"}]},{name:"user_management",hasDescription:!0,subsections:[{name:"user_management_users",hasDescription:!0},{name:"user_management_groups"},{name:"user_management_teams"},{name:"user_management_channels"},{name:"user_management_permissions"},{name:"user_management_system_roles",hasDescription:!0,disabled:!0}]},{name:"environment",hasDescription:!0,subsections:[{name:"environment_web_server"},{name:"environment_database"},{name:"environment_elasticsearch"},{name:"environment_file_storage"},{name:"environment_image_proxy"},{name:"environment_smtp"},{name:"environment_push_notification_server"},{name:"environment_high_availability"},{name:"environment_rate_limiting"},{name:"environment_logging"},{name:"environment_session_lengths"},{name:"environment_performance_monitoring"},{name:"environment_developer"},{name:"environment_mobile_security"}]},{name:"site",hasDescription:!0,subsections:[{name:"site_customization"},{name:"site_localization"},{name:"site_users_and_teams"},{name:"site_notifications"},{name:"site_announcement_banner"},{name:"site_emoji"},{name:"site_posts"},{name:"site_file_sharing_and_downloads"},{name:"site_public_links"},{name:"site_notices"}]},{name:"authentication",hasDescription:!0,subsections:[{name:"authentication_signup"},{name:"authentication_email"},{name:"authentication_password"},{name:"authentication_mfa"},{name:"authentication_ldap"},{name:"authentication_saml"},{name:"authentication_openid"},{name:"authentication_guest_access"}]},{name:"plugins",hasDescription:!0,subsections:[]},{name:"integrations",hasDescription:!0,subsections:[{name:"integrations_integration_management"},{name:"integrations_bot_accounts"},{name:"integrations_gif"},{name:"integrations_cors"}]},{name:"compliance",hasDescription:!0,subsections:[{name:"compliance_data_retention_policy"},{name:"compliance_compliance_export"},{name:"compliance_compliance_monitoring"},{name:"compliance_custom_terms_of_service"}]},{name:"experimental",hasDescription:!0,subsections:[{name:"experimental_features"},{name:"experimental_feature_flags"}]}],Sb={[mt.Ay.PERMISSIONS_SYSTEM_USER_MANAGER]:{user_management:!0,authentication:!0}},Cb=(0,lb.el)((e=>e.reduce(((e,t)=>(e[t]=!0,e)),{}))),Ab=(0,lb.el)(((e,t,s)=>e.filter((e=>!s[t]||s[t][e.name]))));class Tb extends T().PureComponent{constructor(e){super(e),Mb(this,"removeSection",(e=>{const t=_b.findIndex((t=>t.name===e));t>-1&&_b.splice(t,1)})),Mb(this,"updatePermissions",(e=>{this.props.updatePermissions(e)})),Mb(this,"setSectionVisible",((e,t)=>{const{visibleSections:s}=this.state;this.setState({visibleSections:yb(yb({},s),{},{[e]:t})})})),Mb(this,"getRows",((e,t,s)=>{const{isLicensedForCloud:a}=this.props;let i=yb({},Sb);if(this.props.role.name===mt.Ay.PERMISSIONS_SYSTEM_CUSTOM_GROUP_ADMIN)return T().createElement(T().Fragment,null,T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"admin.permissions.roles.system_custom_group_admin.introduction",defaultMessage:"The built-in Custom Group Manager role can be used to delegate the administration of <a>Custom Groups</a> to users other than the System Admin.",values:{a:e=>T().createElement(wt.A,{href:"https://docs.mattermost.com/welcome/manage-custom-groups.html",location:"adminConsoleSystemRoles"},e)}})),T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"admin.permissions.roles.system_custom_group_admin.deauthorize_reminder",defaultMessage:"Don't forget to deauthorize all other system users from administering Custom Groups by unchecking the associated permissions checkbox in System console > User Management > Permissions."})),T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"admin.permissions.roles.system_custom_group_admin.permissions_info",defaultMessage:"This role has permission to create, edit, and delete custom user groups by selecting <b>User groups</b> from the Products menu.",values:{b:e=>T().createElement("b",null,e)}})));if(this.props.role.name===mt.Ay.PERMISSIONS_SYSTEM_USER_MANAGER){let t={};Object.keys(e).forEach((e=>{if(e.startsWith("sysconsole_")){const s=e.replace(/sysconsole_(read|write)_/,"");t=yb(yb({},t),{},{[s]:!0})}})),i={[mt.Ay.PERMISSIONS_SYSTEM_USER_MANAGER]:yb(yb({},i[mt.Ay.PERMISSIONS_SYSTEM_USER_MANAGER]),t)}}return a||this.removeSection("billing"),a&&(this.removeSection("about"),this.removeSection("environment")),Ab(_b,this.props.role.name,i).map((a=>T().createElement(bb,{key:a.name,section:a,permissionsMap:e,permissionsToUpdate:t,visibleSections:s,setSectionVisible:this.setSectionVisible,updatePermissions:this.props.updatePermissions,readOnly:this.props.readOnly})))})),this.state={visibleSections:{}}}render(){const{role:e,permissionsToUpdate:t}=this.props,{visibleSections:s}=this.state,a=Cb(e.permissions);return T().createElement(dc,{id:"SystemRolePermissions",title:(0,N.defineMessage)({id:"admin.permissions.system_role_permissions.title",defaultMessage:"Privileges"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.system_role_permissions.description",defaultMessage:"Level of access to the system console."})},T().createElement("div",{className:"SystemRolePermissions"},this.getRows(a,t,s)))}}Mb(Tb,"propTypes",{updatePermissions:k().func.isRequired,readOnly:k().bool,isLicensedForCloud:k().bool.isRequired});var Nb=s(79342),wb=s(61767);const Rb=e=>{let{user:t}=e;return T().createElement("div",{className:"UserGrid_nameRow"},T().createElement(wb.A,{src:O.mT.getProfilePictureUrl(t.id,t.last_picture_update),status:t.status,size:"md"}),T().createElement("div",{className:"UserGrid_name"},T().createElement("span",null,"".concat(t.username," - ").concat(t.first_name," ").concat(t.last_name)),T().createElement("span",{className:"ug-email"},t.email)))},Ob=e=>{let{user:t,removeUser:s,isDisabled:a}=e;return T().createElement("div",{className:"UserGrid_removeRow"},T().createElement("a",{onClick:e=>{e.preventDefault(),a||s(t)},href:"#",role:"button",className:a?"disabled":""},T().createElement(N.FormattedMessage,{id:"admin.user_grid.remove",defaultMessage:"Remove"})))};Ob.propTypes={removeUser:k().func.isRequired,isDisabled:k().bool};const Ib=Ob;var kb=s(12762),Pb=s(19542),xb=s(72429);function Db(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Lb(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Fb extends T().PureComponent{constructor(e){super(e),Lb(this,"componentDidMount",(async()=>{await this.props.actions.getProfiles(0,100),this.setUsersLoadingState(!1)})),Lb(this,"setUsersLoadingState",(e=>{this.setState({loading:e})})),Lb(this,"search",(async e=>{this.setUsersLoadingState(!0);const t=[];if(""!==e){const{data:s}=await this.props.actions.searchProfiles(e,{replace:!0});s.forEach((e=>{e.is_bot||t.push(e)}))}else await this.props.actions.getProfiles(0,100);this.setState({loading:!1,searchResults:t,term:e})})),Lb(this,"handleHide",(()=>{this.setState({show:!1})})),Lb(this,"handleExit",(()=>{this.props.onExited&&this.props.onExited()})),Lb(this,"renderOption",((e,t,s,a)=>{let i="";return t&&(i="more-modal__row--selected"),T().createElement("div",{key:e.id,ref:t?"selected":e.id,className:"more-modal__row clickable "+i,onClick:()=>s(e),onMouseMove:()=>a(e)},T().createElement(wb.A,{src:O.mT.getProfilePictureUrl(e.id,e.last_picture_update),size:"md"}),T().createElement("div",{className:"more-modal__details"},T().createElement("div",{className:"more-modal__name"},(0,D.xK)(e),e.is_bot&&T().createElement(Pb.A,null),(0,Nb.P)(e.roles)&&T().createElement(xb.A,{className:"popoverlist"}))),T().createElement("div",{className:"more-modal__actions"},T().createElement("button",{className:"more-modal__actions--round","aria-label":"Add users to role"},T().createElement("i",{className:"icon icon-plus"}))))})),Lb(this,"renderValue",(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.username)||""})),Lb(this,"renderAriaLabel",(e=>(null==e?void 0:e.username)||"")),Lb(this,"handleAdd",(e=>{const t=[...this.state.values];t.includes(e)||t.push(e),this.setState({values:t})})),Lb(this,"handleDelete",(e=>{this.setState({values:e})})),Lb(this,"handlePageChange",((e,t)=>{if(e>t){const t=this.props.users.length/50<=e+1;this.setUsersLoadingState(t),this.props.actions.getProfiles(e,100).then((()=>this.setUsersLoadingState(!1)))}})),Lb(this,"handleSubmit",(()=>{this.props.onAddCallback(this.state.values),this.handleHide()})),Lb(this,"render",(()=>{const e=T().createElement("div",{id:"numPeopleRemaining"},T().createElement(N.FormattedMessage,{id:"multiselect.numPeopleRemaining",defaultMessage:"Use ↑↓ to browse, ↵ to select. You can add {num, number} more {num, plural, one {person} other {people}}. ",values:{num:20-this.state.values.length}})),t=(0,N.defineMessage)({id:"multiselect.add",defaultMessage:"Add"}),s=(0,N.defineMessage)({id:"multiselect.adding",defaultMessage:"Adding..."});let a=null;this.state.addError&&(a=T().createElement("div",{className:"has-error col-sm-12"},T().createElement("label",{className:"control-label font-weight--normal"},this.state.addError)));let i=[];if(i=this.state.term?this.state.searchResults:this.props.users,this.props.excludeUsers){const e=e=>!this.props.excludeUsers[e.id];i=i.filter(e)}if(this.props.includeUsers){let{includeUsers:e}=this.props;this.state.term&&(e=function(e,t){const s=Object.keys(e).map((t=>e[t])),a=(0,Nb.V3)(s,t);return(0,g.f9)((0,Nb.vC)(a),{})}(e,this.state.term)),i=[...i,...Object.values(e)]}const n=i.map((e=>function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Db(Object(s),!0).forEach((function(t){Lb(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Db(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}({label:e.username,value:e.id},e))),r=$E[this.props.role.name]?T().createElement(N.FormattedMessage,$E[this.props.role.name].name):this.props.role.name;return T().createElement(hn.Modal,{id:"addUsersToRoleModal",dialogClassName:"a11y__modal more-modal more-direct-channels",show:this.state.show,onHide:this.handleHide,onExited:this.handleExit},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,{componentClass:"h1"},T().createElement(N.FormattedMessage,{id:"add_users_to_role.title",defaultMessage:"Add users to {roleName}",values:{roleName:T().createElement("strong",null,r)}}))),T().createElement(hn.Modal.Body,null,a,T().createElement(fn.A,{key:"addUsersToRoleKey",options:n,optionRenderer:this.renderOption,intl:this.props.intl,ariaLabelRenderer:this.renderAriaLabel,values:this.state.values,valueRenderer:this.renderValue,perPage:50,handlePageChange:this.handlePageChange,handleInput:this.search,handleDelete:this.handleDelete,handleAdd:this.handleAdd,handleSubmit:this.handleSubmit,maxValues:20,numRemainingText:e,buttonSubmitText:t,buttonSubmitLoadingText:s,saving:this.state.saving,loading:this.state.loading,placeholderText:(0,N.defineMessage)({id:"multiselect.placeholder",defaultMessage:"Search and add members"})})))})),this.state={searchResults:[],values:[],show:!0,saving:!1,addError:null,loading:!0,term:""}}}Lb(Fb,"propTypes",{users:k().array.isRequired,onAddCallback:k().func.isRequired,onExited:k().func.isRequired,actions:k().shape({getProfiles:k().func.isRequired,searchProfiles:k().func.isRequired}).isRequired});const Ub=(0,N.injectIntl)(Fb),Bb=(0,a.connect)((function(e,t){const s={active:!0,exclude_roles:[t.role.name],exclude_bots:!0};return{users:(0,g.r7)(e,s)}}),(function(e){return{actions:(0,i.zH)({getProfiles:bi.r7,searchProfiles:bi.U},e)}}))(Ub);function jb(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Hb extends T().PureComponent{constructor(e){super(e),jb(this,"setStateLoading",(e=>{this.setState({loading:e})})),jb(this,"getVisibleTotalCount",(()=>{const{usersToRemove:e,usersToAdd:t,totalCount:s}=this.props;return s+(Object.keys(t).length-Object.keys(e).length)})),jb(this,"getPaginationProps",(()=>{const{term:e,usersToRemove:t,usersToAdd:s}=this.props,{page:a}=this.state;let i,n=0;const r=10*a+1;return""===e?i=this.getVisibleTotalCount():(i=this.props.users.length+Object.keys(s).length,this.props.users.forEach((e=>{t[e.id]&&(i-=1)}))),n=10*(a+1),n=n>i?i:n,{startCount:r,endCount:n,total:i}})),jb(this,"onSearch",(async e=>{this.props.actions.setUserGridSearch(e)})),jb(this,"nextPage",(async()=>{if(this.state.loading)return;const e=this.state.page+1;this.setState({loading:!0}),await this.props.actions.getProfiles(e,10,{role:this.props.role.name}),this.setState({loading:!1,page:e})})),jb(this,"previousPage",(async()=>{this.state.loading||0===this.state.page||this.setState({page:this.state.page-1})})),jb(this,"getRows",(()=>{const{users:e,readOnly:t,usersToAdd:s,usersToRemove:a}=this.props,{startCount:i,endCount:n}=this.getPaginationProps();let r=e;return r=r.filter((e=>!a[e.id])),r=[...Object.values(s),...r],r=r.slice(i-1,n),r.map((e=>({cells:{id:e.id,name:T().createElement(Rb,{user:e}),new:s[e.id]?T().createElement(Es.A,{variant:"info",uppercase:!0,text:T().createElement(N.FormattedMessage,{id:"admin.user_grid.new",defaultMessage:"New"})}):null,remove:T().createElement(Ib,{user:e,removeUser:this.onRemoveCallback,isDisabled:t})}})))})),jb(this,"getColumns",(()=>[{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.name",defaultMessage:"Name"}),field:"name",width:3,fixed:!0},{name:"",field:"new",width:1,fixed:!0},{name:"",field:"remove",textAlign:"right",fixed:!0}])),jb(this,"onAddCallback",(e=>{this.props.onAddCallback(e)})),jb(this,"onRemoveCallback",(e=>{this.props.onRemoveCallback(e)})),this.searchTimeoutId=0,this.state={loading:!0,page:0,includeUsers:{},excludeUsers:{}}}async componentDidMount(){const{getProfiles:e,getFilteredUsersStats:t,setUserGridSearch:s}=this.props.actions;await Promise.all([s(""),e(0,10,{role:this.props.role.name}),t({roles:[this.props.role.name]})]),this.setStateLoading(!1)}async componentDidUpdate(e){if(e.term!==this.props.term){this.setStateLoading(!0),clearTimeout(this.searchTimeoutId);const{term:t}=this.props;if(""===t)return this.searchTimeoutId=0,void this.setStateLoading(!1);const s=window.setTimeout((async()=>{await e.actions.searchProfiles(t,{role:this.props.role.name}),s===this.searchTimeoutId&&this.setStateLoading(!1)}),mt.Ay.SEARCH_TIMEOUT_MILLISECONDS);this.searchTimeoutId=s}}render(){const{page:e,loading:t}=this.state,{term:s,role:a,usersToAdd:i,usersToRemove:n,readOnly:r}=this.props,{startCount:o,endCount:l,total:d}=this.getPaginationProps();return T().createElement(dc,{id:"SystemRoleUsers",title:(0,N.defineMessage)({id:"admin.permissions.system_role_users.title",defaultMessage:"Assigned People"}),subtitle:(0,N.defineMessage)({id:"admin.permissions.system_role_users.description",defaultMessage:"List of people assigned to this system role."}),button:T().createElement(kb.A,{id:"addRoleMembers",className:"btn btn-primary",modalId:mt.IQ.ADD_USER_TO_ROLE,dialogType:Bb,disabled:r,dialogProps:{role:a,onAddCallback:this.onAddCallback,skipCommit:!0,excludeUsers:i,includeUsers:n}},T().createElement(N.FormattedMessage,{id:"admin.permissions.system_role_users.add_people",defaultMessage:"Add People"}))},T().createElement(xe,{rows:this.getRows(),columns:this.getColumns(),nextPage:this.nextPage,previousPage:this.previousPage,page:e,startCount:o,endCount:l,loading:t,onSearch:this.onSearch,term:s,total:d}))}}jb(Hb,"propTypes",{users:k().array.isRequired,totalCount:k().number.isRequired,term:k().string.isRequired,onAddCallback:k().func.isRequired,onRemoveCallback:k().func.isRequired,actions:k().shape({getFilteredUsersStats:k().func.isRequired,getProfiles:k().func.isRequired,searchProfiles:k().func.isRequired,setUserGridSearch:k().func.isRequired}).isRequired,readOnly:k().bool});const Gb=(0,a.connect)((function(e,t){var s,a;const{roleName:i}=t,n=(0,C.O0)(e)[i],r=(null===(s=(0,g.$c)(e))||void 0===s?void 0:s.total_users_count)||0,o=(null===(a=e.views.search.userGridSearch)||void 0===a?void 0:a.term)||"",l={roles:[n.name]},d=(0,g.T_)();let c=[],{usersToAdd:m}=t;return o?(c=d(e,o,!1,l),m=function(e,t){const s=(0,Nb.V3)(Object.keys(e).map((t=>e[t])),t);return(0,g.f9)((0,Nb.vC)(s),{})}(m,o)):c=(0,g.r7)(e,l),{role:n,users:c,totalCount:r,term:o,usersToAdd:m}}),(function(e){return{actions:(0,i.zH)({getProfiles:bi.r7,getFilteredUsersStats:bi.$c,searchProfiles:bi.U,setUserGridSearch:gn.u},e)}}))(Hb);function qb(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Vb(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?qb(Object(s),!0).forEach((function(t){zb(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):qb(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function zb(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Wb extends T().PureComponent{constructor(e){super(e),zb(this,"getSaveStateNeeded",(e=>{const{role:t}=this.props,{usersToAdd:s,usersToRemove:a,updatedRolePermissions:i,permissionsToUpdate:n}=Vb(Vb({},this.state),e);let r=!1;return r=Object.keys(s).length>0||Object.keys(a).length>0,Object.keys(n).length>0&&(r=r||ib()(i,t.permissions).length>0||ib()(t.permissions,i).length>0),r})),zb(this,"addUsersToRole",(e=>{const{actions:{setNavigationBlocked:t}}=this.props,s=Vb({},this.state.usersToAdd),a=Vb({},this.state.usersToRemove);e.forEach((e=>{a[e.id]?delete a[e.id]:s[e.id]=e}));const i=this.getSaveStateNeeded({usersToAdd:s,usersToRemove:a});t(i),this.setState({usersToAdd:s,usersToRemove:a,saveNeeded:i})})),zb(this,"removeUserFromRole",(e=>{const{actions:{setNavigationBlocked:t}}=this.props,s=Vb({},this.state.usersToAdd),a=Vb({},this.state.usersToRemove);s[e.id]?delete s[e.id]:a[e.id]=e;const i=this.getSaveStateNeeded({usersToAdd:s,usersToRemove:a});t(i),this.setState({usersToRemove:a,usersToAdd:s,saveNeeded:i})})),zb(this,"handleSubmit",(async()=>{this.setState({saving:!0,saveNeeded:!1});const{usersToRemove:e,usersToAdd:t,updatedRolePermissions:s,permissionsToUpdate:a}=this.state,{role:i,actions:{editRole:n,updateUserRoles:r,setNavigationBlocked:o}}=this.props;let l;if(i.name!==mt.Ay.PERMISSIONS_SYSTEM_ADMIN&&Object.keys(a).length>0){const e=await O.mT.getAncillaryPermissions(s),t=Vb(Vb({},i),{},{permissions:e}),a=await n(t);(0,ob.b)(a)&&(l=T().createElement(Bt.Ay,{error:a.error.message}))}const d=Object.keys(e);if(d.length>0){const t=[];d.forEach((s=>{const a=e[s],n=rb()(a.roles.split(" ").filter((e=>e!==i.name))).join(" ");t.push(r(s,n))}));const s=(await Promise.all(t)).find(ob.b);s&&"error"in s&&(l=T().createElement(Bt.Ay,{error:s.error.message}))}const c=Object.keys(t);if(c.length>0&&!l){const e=[];c.forEach((s=>{const a=t[s],n=rb()([...a.roles.split(" "),i.name]).join(" ");e.push(r(s,n))}));const s=(await Promise.all(e)).find(ob.b);s&&"error"in s&&(l=T().createElement(Bt.Ay,{error:s.error.message}))}let{saveKey:m}=this.state;l||(m+=1),l||(0,Li.J)().push("/admin_console/user_management/system_roles"),o(Boolean(l)),this.setState({saveNeeded:Boolean(l),saving:!1,serverError:l,usersToAdd:{},usersToRemove:{},saveKey:m})})),zb(this,"updatePermissions",(e=>{const{role:t,actions:{setNavigationBlocked:s}}=this.props,a={};e.forEach((e=>{a[e.name]=e.value}));const i=Vb(Vb({},this.state.permissionsToUpdate),a);let n=t.permissions.filter((e=>e.startsWith("sysconsole_")&&!(e.replace(/sysconsole_(read|write)_/,"")in i)));Object.keys(i).forEach((e=>{const t=i[e];if(t){const s="sysconsole_read_".concat(e),a="sysconsole_write_".concat(e);t===ub?n.push(s,a):n.push(s)}})),t.name===mt.Ay.PERMISSIONS_SYSTEM_ADMIN&&n.push(y.A.MANAGE_SYSTEM),n=rb()(n);const r={permissionsToUpdate:i,updatedRolePermissions:n};s(this.getSaveStateNeeded(r)),this.setState(Vb(Vb({},r),{},{saveNeeded:this.getSaveStateNeeded(r)}))})),this.state={usersToAdd:{},usersToRemove:{},saving:!1,saveNeeded:!1,serverError:void 0,permissionsToUpdate:{},saveKey:0,updatedRolePermissions:[]}}render(){const{usersToAdd:e,usersToRemove:t,saving:s,saveNeeded:a,serverError:i,permissionsToUpdate:n,saveKey:r}=this.state,{role:o,isDisabled:l,isLicensedForCloud:d}=this.props,c=$E[o.name]?T().createElement(N.FormattedMessage,$E[o.name].name):o.name;return T().createElement("div",{className:"wrapper--fixed"},T().createElement(nt,{withBackButton:!0},T().createElement("div",null,T().createElement(tt.A,{to:"/admin_console/user_management/system_roles",className:"fa fa-angle-left back"}),c)),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement(Tb,{role:o,isLicensedForCloud:d,permissionsToUpdate:n,updatePermissions:this.updatePermissions,readOnly:l||o.name===mt.Ay.PERMISSIONS_SYSTEM_ADMIN}),T().createElement(Gb,{key:r,roleName:o.name,usersToAdd:e,usersToRemove:t,onAddCallback:this.addUsersToRole,onRemoveCallback:this.removeUserFromRole,readOnly:l}))),T().createElement(it,{saving:s,cancelLink:"/admin_console/user_management/system_roles",saveNeeded:a,onClick:this.handleSubmit,serverError:i,isDisabled:l}))}}zb(Wb,"propTypes",{isDisabled:k().bool,isLicensedForCloud:k().bool.isRequired,actions:k().shape({setNavigationBlocked:k().func.isRequired}).isRequired});const Yb=(0,a.connect)((function(e,t){const s=(0,u.Ep)(e)[t.match.params.role_id];return{isLicensedForCloud:"true"===(0,c.Ay)(e).Cloud,role:s}}),(function(e){return{actions:(0,i.zH)({editRole:r.D3,updateUserRoles:bi.eA,setNavigationBlocked:h.Jb},e)}}))(Wb);s(91736);const Zb=["isLoading"],Jb=e=>{let{isLoading:t=!1}=e,s=function(e,t){if(null==e)return{};var s,a,i=function(e,t){if(null==e)return{};var s={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;s[a]=e[a]}return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)s=n[a],-1===t.indexOf(s)&&{}.propertyIsEnumerable.call(e,s)&&(i[s]=e[s])}return i}(e,Zb);return!s.user||t?T().createElement("div",{className:"AdminUserCard"},T().createElement("div",{className:"AdminUserCard__header"},T().createElement(wb.A,{src:"",size:"xxl",wrapperClass:"admin-user-card"})),T().createElement("div",{className:"noUserBody"},t&&T().createElement(ce.A,null),!t&&T().createElement(N.FormattedMessage,{id:"admin.userManagement.userDetail.notFound",defaultMessage:"User not found"}))):T().createElement("div",{className:"AdminUserCard"},T().createElement("div",{className:"AdminUserCard__header"},T().createElement(wb.A,{src:O.mT.getProfilePictureUrl(s.user.id,s.user.last_picture_update),size:"xxl",wrapperClass:"admin-user-card",userId:s.user.id}),T().createElement("div",{className:"AdminUserCard__user-info"},T().createElement("span",null,s.user.first_name," ",s.user.last_name),T().createElement(Kb,{user:s.user}),T().createElement("span",{className:"AdminUserCard__user-nickname"},s.user.nickname)),T().createElement("div",{className:"AdminUserCard__user-id"},T().createElement(N.FormattedMessage,{id:"admin.userManagement.userDetail.userId",defaultMessage:"User ID: {userId}",values:{userId:s.user.id}}))),T().createElement("div",{className:"AdminUserCard__body"},s.body),T().createElement("div",{className:"AdminUserCard__footer"},s.footer))};Jb.propTypes={isLoading:k().bool,body:k().node,footer:k().node};const Kb=e=>(e.user.first_name||e.user.last_name)&&e.user.nickname?T().createElement("span",null," • "):null,Qb=Jb;function Xb(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class $b extends T().PureComponent{constructor(e){super(e),Xb(this,"doSubmit",(async e=>{var t,s;if(e.preventDefault(),!this.props.user)return;let a="";if(this.currentPasswordRef.current&&(a=this.currentPasswordRef.current.value,""===a)){const e=T().createElement(N.FormattedMessage,{id:"admin.reset_password.missing_current",defaultMessage:"Please enter your current password."});return void this.setState({serverErrorCurrentPass:e})}const i=this.passwordRef.current.value,{valid:n,error:r}=(0,Wu.s)(i,this.props.passwordConfig);if(!n&&r)return void this.setState({serverErrorNewPass:r});this.setState({serverErrorNewPass:null});const o=await this.props.actions.updateUserPassword(this.props.user.id,a,i);"error"in o?this.setState({serverErrorCurrentPass:o.error.message}):(null===(t=(s=this.props).onSuccess)||void 0===t||t.call(s),this.setState({show:!1}))})),Xb(this,"doCancel",(()=>{this.setState({show:!1,serverErrorNewPass:null,serverErrorCurrentPass:null})})),this.state={show:!0,serverErrorNewPass:null,serverErrorCurrentPass:null},this.currentPasswordRef=T().createRef(),this.passwordRef=T().createRef()}componentWillUnmount(){this.setState({serverErrorNewPass:null,serverErrorCurrentPass:null})}render(){const e=this.props.user;if(null==e)return T().createElement("div",null);let t,s="input-group input-group--limit",a=null;this.state.serverErrorNewPass&&(s+=" has-error",a=T().createElement("div",{className:"has-error"},T().createElement("p",{className:"input__help error"},this.state.serverErrorNewPass))),t=e.auth_service?T().createElement(N.FormattedMessage,{id:"admin.reset_password.titleSwitch",defaultMessage:"Switch Account to Email/Password"}):T().createElement(N.FormattedMessage,{id:"admin.reset_password.titleReset",defaultMessage:"Reset Password"});let i=null,n=null,r=!0;if(this.props.currentUserId===e.id){r=!1;let e="input-group input-group--limit";this.state.serverErrorCurrentPass&&(e+=" has-error",n=T().createElement("div",{className:"has-error"},T().createElement("p",{className:"input__help error"},this.state.serverErrorCurrentPass))),i=T().createElement("div",{className:"col-sm-10 password__group-addon-space"},T().createElement("div",{className:e},T().createElement("span",{"data-toggle":"tooltip",title:"Current Password",className:"input-group-addon password__group-addon"},T().createElement(N.FormattedMessage,{id:"admin.reset_password.curentPassword",defaultMessage:"Current Password"})),T().createElement("input",{type:"password",ref:this.currentPasswordRef,className:"form-control",autoFocus:!0})))}return T().createElement(hn.Modal,{dialogClassName:"a11y__modal",show:this.state.show,onHide:this.doCancel,onExited:this.props.onExited,role:"none","aria-labelledby":"resetPasswordModalLabel"},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,{componentClass:"h1",id:"resetPasswordModalLabel"},t)),T().createElement("form",{role:"form",className:"form-horizontal"},T().createElement(hn.Modal.Body,null,T().createElement("div",{className:"form-group"},i,T().createElement("div",{className:"col-sm-10"},T().createElement("div",{className:s},T().createElement("span",{"data-toggle":"tooltip",title:"New Password",className:"input-group-addon password__group-addon"},T().createElement(N.FormattedMessage,{id:"admin.reset_password.newPassword",defaultMessage:"New Password"})),T().createElement("input",{type:"password",ref:this.passwordRef,className:"form-control",autoFocus:r})),a,n))),T().createElement(hn.Modal.Footer,null,T().createElement("button",{type:"button",className:"btn btn-tertiary",onClick:this.doCancel},T().createElement(N.FormattedMessage,{id:"admin.reset_password.cancel",defaultMessage:"Cancel"})),T().createElement("button",{onClick:this.doSubmit,type:"submit",className:"btn btn-primary"},T().createElement(N.FormattedMessage,{id:"admin.reset_password.reset",defaultMessage:"Reset"})))))}}Xb($b,"propTypes",{currentUserId:k().string.isRequired,onSuccess:k().func,onExited:k().func.isRequired,passwordConfig:k().shape({minimumLength:k().number.isRequired,requireLowercase:k().bool.isRequired,requireNumber:k().bool.isRequired,requireSymbol:k().bool.isRequired,requireUppercase:k().bool.isRequired}).isRequired,actions:k().shape({updateUserPassword:k().func.isRequired}).isRequired});const ev=(0,a.connect)((function(e){return{currentUserId:(0,g.WR)(e),passwordConfig:(0,c.OG)(e)}}),(function(e){return{actions:(0,i.zH)({updateUserPassword:bi.ej},e)}}))($b);var tv=s(8389);function sv(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const av=10;class iv extends T().PureComponent{constructor(e){super(e),sv(this,"previousPage",(async e=>{e.preventDefault();const t=this.state.page<1?0:this.state.page-1;this.setState({page:t,loading:!0}),this.performSearch()})),sv(this,"nextPage",(async e=>{e.preventDefault();const t=this.state.page+1;this.setState({page:t,loading:!0}),this.performSearch()})),sv(this,"performSearch",(()=>{const e=this.props.userId;this.setState({loading:!0}),this.props.actions.getTeamsData(e).then((()=>{this.props.onPageChangedCallback&&this.props.onPageChangedCallback(this.getPaging()),this.setState({loading:!1})}))})),sv(this,"renderHeaderLabels",(()=>this.props.data.length>0?T().createElement("div",{className:"AbstractList__header"},this.props.headerLabels.map(((e,t)=>{const s=t,a=e.label?T().createElement(N.FormattedMessage,e.label):"";return T().createElement("div",{key:s,className:"AbstractList__header-label",style:e.style},a)}))):null)),sv(this,"renderRows",(()=>{if(this.state.loading)return T().createElement("div",{className:"AbstractList__loading"},T().createElement("i",{className:"fa fa-spinner fa-pulse fa-2x"}));if(0===this.props.data.length)return T().createElement("div",{className:"AbstractList__empty"},T().createElement(N.FormattedMessage,this.props.emptyList));const e=this.state.page<1?0:this.state.page*av,t=this.state.page<1?av:(this.state.page+1)*av;return this.props.data.slice(e,t).map(this.props.renderRow)})),sv(this,"render",(()=>{const{startCount:e,endCount:t,total:s}=this.getPaging(),a=t===s,i=0===this.state.page;return T().createElement("div",{className:"AbstractList"},this.renderHeaderLabels(),T().createElement("div",{className:"AbstractList__body"},this.renderRows()),s>0&&T().createElement("div",{className:"AbstractList__footer"},T().createElement("div",{className:"counter"},T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.list.paginatorCount",defaultMessage:"{startCount, number} - {endCount, number} of {total, number}",values:{startCount:e,endCount:t,total:s}})),T().createElement("button",{type:"button",className:"btn btn-tertiary prev "+(i?"disabled":""),onClick:i?()=>null:this.previousPage,disabled:i},T().createElement(de.A,null)),T().createElement("button",{type:"button",className:"btn btn-tertiary next "+(a?"disabled":""),onClick:a?()=>null:this.nextPage,disabled:a},T().createElement(le.A,null))))})),this.state={loading:!0,page:0}}componentDidMount(){this.performSearch()}getPaging(){const e=this.state.page*av+1;let t=this.state.page*av+av;const s=this.props.total;return t>s&&(t=s),{startCount:e,endCount:t,total:s}}}function nv(e){const{formatMessage:t}=(0,N.useIntl)();return T().createElement("span",e,T().createElement("svg",{width:e.width||"24px",height:e.width||"24px",viewBox:"0 0 24 24",role:"img","aria-label":t({id:"generic_icons.elipsisHorizontalIcon",defaultMessage:"Ellipsis Horizontal Icon"})},T().createElement("path",{d:"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z"})))}sv(iv,"propTypes",{userId:k().string.isRequired,headerLabels:k().arrayOf(k().shape({})).isRequired,data:k().array,onPageChangedCallback:k().func,total:k().number.isRequired,renderRow:k().func.isRequired,actions:k().shape({getTeamsData:k().func.isRequired,removeGroup:k().func}).isRequired}),sv(iv,"defaultProps",{data:[]}),nv.propTypes={width:k().string,height:k().string};const rv=e=>{let{team:t,doRemoveUserFromTeam:s,doMakeUserTeamAdmin:a,doMakeUserTeamMember:i,isDisabled:n}=e;const r=(0,N.useIntl)(),o=t.scheme_admin,l=t.scheme_user&&!t.scheme_admin,d=t.scheme_guest,c=!o&&!d,m=!l&&!d,u=(0,A.useCallback)((()=>a(t.id)),[t.id,a]),p=(0,A.useCallback)((()=>i(t.id)),[t.id,i]),g=(0,A.useCallback)((()=>s(t.id)),[t.id,s]);return T().createElement(bl.A,{isDisabled:n},T().createElement("button",{type:"button",id:"teamListDropdown_".concat(t.id),className:"dropdown-toggle theme color--link style--none","aria-expanded":"true"},T().createElement("span",{className:"SystemUserDetail__actions-menu-icon"},T().createElement(nv,null))),T().createElement("div",null,T().createElement(El.A,{openLeft:!0,openUp:!1,ariaLabel:r.formatMessage({id:"team_members_dropdown.menuAriaLabel",defaultMessage:"Change the role of a team member"})},T().createElement(El.A.ItemAction,{id:"makeTeamAdmin",show:c,onClick:u,text:r.formatMessage({id:"team_members_dropdown.makeAdmin",defaultMessage:"Make Team Admin"})}),T().createElement(El.A.ItemAction,{show:m,onClick:p,text:r.formatMessage({id:"team_members_dropdown.makeMember",defaultMessage:"Make Team Member"})}),T().createElement(El.A.ItemAction,{id:"removeFromTeam",show:!0,onClick:g,text:r.formatMessage({id:"team_members_dropdown.leave_team",defaultMessage:"Remove from Team"}),buttonClass:"SystemUserDetail__action-remove-team"}))))};rv.propTypes={doRemoveUserFromTeam:k().func.isRequired,doMakeUserTeamAdmin:k().func.isRequired,doMakeUserTeamMember:k().func.isRequired,isDisabled:k().bool};const ov=(0,A.memo)(rv);function lv(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class dv extends T().PureComponent{constructor(){super(...arguments),lv(this,"renderTeamType",(e=>e.group_constrained?T().createElement(N.FormattedMessage,{id:"admin.systemUserDetail.teamList.teamType.groupSync",defaultMessage:"Group sync"}):e.allow_open_invite?T().createElement(N.FormattedMessage,{id:"admin.systemUserDetail.teamList.teamType.anyoneCanJoin",defaultMessage:"Anyone can join"}):T().createElement(N.FormattedMessage,{id:"admin.systemUserDetail.teamList.teamType.inviteOnly",defaultMessage:"Invite only"}))),lv(this,"renderTeamRole",(e=>e.scheme_guest?T().createElement(N.FormattedMessage,{id:"admin.systemUserDetail.teamList.teamRole.guest",defaultMessage:"Guest"}):e.scheme_admin&&!e.scheme_guest?T().createElement(N.FormattedMessage,{id:"admin.systemUserDetail.teamList.teamRole.admin",defaultMessage:"Team Admin"}):!e.scheme_user||e.scheme_guest||e.scheme_admin?null:T().createElement(N.FormattedMessage,{id:"admin.systemUserDetail.teamList.teamRole.member",defaultMessage:"Team Member"}))),lv(this,"render",(()=>{const{team:e}=this.props,t=D.lt(e);return T().createElement("div",{className:"TeamRow"},T().createElement("div",{className:"TeamRow__row"},T().createElement("div",{className:"TeamRow__team-name"},T().createElement("div",{className:"col-sm-auto"},T().createElement(Le.A,{size:"sm",url:t,content:e.display_name})),T().createElement("div",{className:"col-md-auto"},T().createElement("b",null,e.display_name),e.description&&T().createElement("div",{className:"overflow--ellipsis text-nowrap TeamRow__team-description"},e.description))),T().createElement("span",{className:"TeamRow__description"},this.renderTeamType(e)),T().createElement("span",{className:"TeamRow__description"},this.renderTeamRole(e)),T().createElement("span",{className:"TeamRow__actions"},T().createElement(ov,{team:e,doRemoveUserFromTeam:this.props.doRemoveUserFromTeam,doMakeUserTeamAdmin:this.props.doMakeUserTeamAdmin,doMakeUserTeamMember:this.props.doMakeUserTeamMember,isDisabled:this.props.readOnly}))))}))}}function cv(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function mv(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?cv(Object(s),!0).forEach((function(t){uv(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):cv(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function uv(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}lv(dv,"propTypes",{onRowClick:k().func,doRemoveUserFromTeam:k().func.isRequired,doMakeUserTeamAdmin:k().func.isRequired,doMakeUserTeamMember:k().func.isRequired,readOnly:k().bool});const pv=[{label:(0,N.defineMessage)({id:"admin.systemUserDetail.teamList.header.name",defaultMessage:"Name"}),style:{flexGrow:1,minWidth:"284px",marginLeft:"16px"}},{label:(0,N.defineMessage)({id:"admin.systemUserDetail.teamList.header.type",defaultMessage:"Type"}),style:{width:"150px"}},{label:(0,N.defineMessage)({id:"admin.systemUserDetail.teamList.header.role",defaultMessage:"Role"}),style:{width:"150px"}},{style:{width:"150px"}}];class gv extends T().PureComponent{constructor(e){var t;super(e),t=this,uv(this,"getTeamsAndMemberships",(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t.props.userId;const s=await t.props.actions.getTeamsData(e),a=await t.props.actions.getTeamMembersForUser(e);return Promise.all([s,a]).then(t.mergeTeamsWithMemberships).then((e=>{t.setState({teamsWithMemberships:e}),t.props.userDetailCallback(e)}))})),uv(this,"mergeTeamsWithMemberships",(e=>{const t=e[0].data,s=e[1].data;if(!t||!s)return[];let a=t.map((e=>{const t=s.filter((t=>t.team_id===e.id));return mv(mv({},e),t[0])}));return a=(0,tv.y)(a,this.props.locale),a})),uv(this,"doRemoveUserFromTeam",(async e=>{const{error:t}=await this.props.actions.removeUserFromTeam(e,this.props.userId);t?this.setState({serverError:t.message}):this.getTeamsAndMemberships()})),uv(this,"doMakeUserTeamAdmin",(async e=>{const{error:t}=await this.props.actions.updateTeamMemberSchemeRoles(e,this.props.userId,!0,!0);t?this.setState({serverError:t.message}):this.getTeamsAndMemberships()})),uv(this,"doMakeUserTeamMember",(async e=>{const{error:t}=await this.props.actions.updateTeamMemberSchemeRoles(e,this.props.userId,!0,!1);t?this.setState({serverError:t.message}):this.getTeamsAndMemberships()})),uv(this,"renderRow",(e=>T().createElement(dv,{key:e.id,team:e,doRemoveUserFromTeam:this.doRemoveUserFromTeam,doMakeUserTeamAdmin:this.doMakeUserTeamAdmin,doMakeUserTeamMember:this.doMakeUserTeamMember,readOnly:this.props.readOnly}))),this.state={teamsWithMemberships:[],serverError:null}}componentDidMount(){this.getTeamsAndMemberships()}componentDidUpdate(e){e.refreshTeams!==this.props.refreshTeams&&this.getTeamsAndMemberships()}render(){let e=null;return this.state.serverError&&(e=T().createElement("div",{className:"SystemUserDetail__error has-error"},T().createElement("label",{className:"has-error control-label"},this.state.serverError))),T().createElement(T().Fragment,null,T().createElement("div",null,e),T().createElement(iv,{headerLabels:pv,renderRow:this.renderRow,total:this.state.teamsWithMemberships.length,data:this.state.teamsWithMemberships,actions:this.props.actions,emptyList:this.props.emptyList,userId:this.props.userId}))}}uv(gv,"propTypes",{userId:k().string.isRequired,locale:k().string.isRequired,actions:k().shape({getTeamsData:k().func.isRequired,getTeamMembersForUser:k().func.isRequired,removeUserFromTeam:k().func.isRequired,updateTeamMemberSchemeRoles:k().func.isRequired}).isRequired,userDetailCallback:k().func.isRequired,refreshTeams:k().bool,readOnly:k().bool}),uv(gv,"defaultProps",{emptyList:(0,N.defineMessage)({id:"admin.team_settings.team_list.no_teams_found",defaultMessage:"No teams found"}),refreshTeams:!1});const hv=(0,a.connect)((function(e){return{locale:(0,yi.k)(e)}}),(function(e){return{actions:(0,i.zH)({getTeamsData:o.Bk,getTeamMembersForUser:o.NX,removeUserFromTeam:o.fy,updateTeamMemberSchemeRoles:o.bd},e)}}))(gv);var fv=s(865),Ev=s(30138);function bv(e){const t=T().createElement(N.FormattedMessage,{id:"userSettings.adminMode.modal_header",defaultMessage:"Manage {userDisplayName}'s Settings",values:{userDisplayName:(0,D.Mn)(e.user)}}),s=T().createElement(N.FormattedMessage,{id:"admin.user_item.manageSettings.confirm_dialog.body",defaultMessage:"You are about to access {userDisplayName}'s account settings. Any modifications you make will take effect immediately in their account. {userDisplayName} retains the ability to view and modify these settings at any time.<br></br><br></br> Are you sure you want to proceed with managing {userDisplayName}'s settings?",values:{userDisplayName:(0,D.Mn)(e.user),br:e=>T().createElement(T().Fragment,null,T().createElement("br",null),e)}}),a=T().createElement(N.FormattedMessage,{id:"admin.user_item.manageSettings",defaultMessage:"Manage User Settings"});return T().createElement(fv.A,{title:t,message:s,confirmButtonText:a,onConfirm:e.onConfirm,onExited:()=>{var t;null===(t=e.onExited)||void 0===t||t.call(e),(0,Ev.p)(e.focusOriginElement,!0,!0)}})}bv.propTypes={onConfirm:k().func.isRequired,onExited:k().func.isRequired,focusOriginElement:k().string.isRequired};var vv=s(59529);function yv(e){return T().createElement("span",e,T().createElement("svg",{width:"100%",height:"100%",viewBox:"0 0 24 24"},T().createElement("path",{fill:"inherit",d:"M12,15C12.81,15 13.5,14.7 14.11,14.11C14.7,13.5 15,12.81 15,12C15,11.19 14.7,10.5 14.11,9.89C13.5,9.3 12.81,9 12,9C11.19,9 10.5,9.3 9.89,9.89C9.3,10.5 9,11.19 9,12C9,12.81 9.3,13.5 9.89,14.11C10.5,14.7 11.19,15 12,15M12,2C14.75,2 17.1,3 19.05,4.95C21,6.9 22,9.25 22,12V13.45C22,14.45 21.65,15.3 21,16C20.3,16.67 19.5,17 18.5,17C17.3,17 16.31,16.5 15.56,15.5C14.56,16.5 13.38,17 12,17C10.63,17 9.45,16.5 8.46,15.54C7.5,14.55 7,13.38 7,12C7,10.63 7.5,9.45 8.46,8.46C9.45,7.5 10.63,7 12,7C13.38,7 14.55,7.5 15.54,8.46C16.5,9.45 17,10.63 17,12V13.45C17,13.86 17.16,14.22 17.46,14.53C17.76,14.84 18.11,15 18.5,15C18.92,15 19.27,14.84 19.57,14.53C19.87,14.22 20,13.86 20,13.45V12C20,9.81 19.23,7.93 17.65,6.35C16.07,4.77 14.19,4 12,4C9.81,4 7.93,4.77 6.35,6.35C4.77,7.93 4,9.81 4,12C4,14.19 4.77,16.07 6.35,17.65C7.93,19.23 9.81,20 12,20H17V22H12C9.25,22 6.9,21 4.95,19.05C3,17.1 2,14.75 2,12C2,9.25 3,6.9 4.95,4.95C6.9,3 9.25,2 12,2Z"})))}const Mv=e=>T().createElement("span",e,T().createElement("svg",{width:"100%",height:"100%",viewBox:"0 0 24 24"},T().createElement("path",{fill:"inherit",d:"M21,11C21,16.55 17.16,21.74 12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11M12,21C15.75,20 19,15.54 19,11.22V6.3L12,3.18L5,6.3V11.22C5,15.54 8.25,20 12,21Z"}))),_v=T().memo(Mv);function Sv(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Cv(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Sv(Object(s),!0).forEach((function(t){Av(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Sv(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Av(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Tv=e=>{let{options:t,selectedValues:s,onChange:a,disabled:i,placeholder:n,noOptionsMessage:r}=e;const o=t.map((e=>({value:e.id,label:e.name}))),l=s.map((e=>{const s=t.find((t=>t.id===e));return s?{value:s.id,label:s.name}:null})).filter((e=>null!==e));return T().createElement(Ut.Ay,{isMulti:!0,options:o,value:l,onChange:e=>{const t=e?e.map((e=>e.value)):[];a(t)},isDisabled:i,isClearable:!1,placeholder:n,noOptionsMessage:()=>r,styles:{container:e=>Cv(Cv({},e),{},{maxWidth:"320px"})}})};class Nv extends A.PureComponent{constructor(e){super(e),Av(this,"getUser",(async e=>{this.setState({isLoading:!0});try{const[t,s]=await Promise.all([this.props.getUser(e),this.props.getCustomProfileAttributeValues(e)]);if(!t.data)throw new Error(t.error?t.error.message:this.props.intl.formatMessage({id:"admin.user_item.unknownError",defaultMessage:"Unknown error"}));{const e=s.data||{};this.setState({user:t.data,emailField:t.data.email,customProfileAttributeValues:e,originalCpaValues:Cv({},e),isLoading:!1})}}catch(e){console.log("SystemUserDetails-getUser: ",e),this.setState({isLoading:!1,error:this.props.intl.formatMessage({id:"admin.user_item.userNotFound",defaultMessage:"Cannot load User"})})}})),Av(this,"handleTeamsLoaded",(e=>{const t=e.map((e=>e.team_id));this.setState({teams:e}),this.setState({teamIds:t}),this.setState({refreshTeams:!1})})),Av(this,"handleAddUserToTeams",(e=>{if(!this.state.user)return;const t=[];for(const s of e)t.push(this.props.addUserToTeam(s.id,this.state.user.id));Promise.all(t).finally((()=>this.setState({refreshTeams:!0})))})),Av(this,"handleActivateUser",(async()=>{var e;if(this.state.user&&(null===(e=this.state.user)||void 0===e?void 0:e.auth_service)!==mt.YM.LDAP_SERVICE)try{const{error:e}=await this.props.updateUserActive(this.state.user.id,!0);if(e)throw new Error(e.message);await this.getUser(this.state.user.id)}catch(e){console.error("SystemUserDetails-handleActivateUser",e);const t=e.message||this.props.intl.formatMessage({id:"admin.user_item.userActivateFailed",defaultMessage:"Failed to activate user"});this.setState({error:t})}})),Av(this,"handleDeactivateMember",(async()=>{if(this.state.user){try{const{error:e}=await this.props.updateUserActive(this.state.user.id,!1);if(e)throw new Error(e.message);await this.getUser(this.state.user.id)}catch(e){console.error("SystemUserDetails-handleDeactivateMember",e);const t=e.message||this.props.intl.formatMessage({id:"admin.user_item.userDeactivateFailed",defaultMessage:"Failed to deactivate user"});this.setState({error:t})}this.toggleCloseModalDeactivateMember()}})),Av(this,"handleRemoveMFA",(async()=>{if(this.state.user)try{const{error:e}=await this.props.updateUserMfa(this.state.user.id,!1);if(e)throw new Error(e.message);await this.getUser(this.state.user.id)}catch(e){console.error("SystemUserDetails-handleRemoveMFA",e),this.setState({error:this.props.intl.formatMessage({id:"admin.user_item.userMFARemoveFailed",defaultMessage:"Failed to remove user's MFA"})})}})),Av(this,"handleEmailChange",(e=>{if(!this.state.user)return;const{target:{value:t}}=e;this.setState({emailField:t,error:null},(()=>{this.checkForChanges()}))})),Av(this,"handleCpaValueChange",((e,t)=>{this.setState({customProfileAttributeValues:Cv(Cv({},this.state.customProfileAttributeValues),{},{[e]:t}),error:null},(()=>{this.checkForChanges()}))})),Av(this,"checkForChanges",(()=>{if(!this.state.user)return;const e=this.state.emailField!==this.state.user.email,t=this.hasCpaChanges(),s=e||t;this.setState({isSaveNeeded:s}),this.props.setNavigationBlocked(s)})),Av(this,"hasCpaChanges",(()=>{const{customProfileAttributeValues:e,originalCpaValues:t}=this.state,s=new Set([...Object.keys(e),...Object.keys(t)]);for(const a of s){const s=e[a],i=t[a];if(Array.isArray(s)&&Array.isArray(i)){if(s.length!==i.length||s.some(((e,t)=>e!==i[t])))return!0}else if(s!==i)return!0}return!1})),Av(this,"renderCpaField",(e=>{var t,s,a,i;const n=this.state.customProfileAttributeValues[e.id]||"",r=Boolean((null===(t=e.attrs)||void 0===t?void 0:t.ldap)||(null===(s=e.attrs)||void 0===s?void 0:s.saml)),o=this.state.isSaving||this.state.isLoading||r,l=r?T().createElement("div",{className:"user-property-field-values__sync-indicator"},T().createElement(R.SyncIcon,{size:18}),T().createElement("span",null,T().createElement(N.FormattedMessage,{id:"admin.userManagement.userDetail.syncedWith",defaultMessage:"Synced with: {source}",values:{source:null!==(a=e.attrs)&&void 0!==a&&a.ldap?this.props.intl.formatMessage({id:"admin.userManagement.userDetail.ldap",defaultMessage:"AD/LDAP: {propertyName}"},{propertyName:e.attrs.ldap}):this.props.intl.formatMessage({id:"admin.userManagement.userDetail.saml",defaultMessage:"SAML: {propertyName}"},{propertyName:null===(i=e.attrs)||void 0===i?void 0:i.saml})}}))):null,d=(()=>{switch(e.type){case"select":{var t;const s=(null===(t=e.attrs)||void 0===t?void 0:t.options)||[];return T().createElement("select",{className:"form-control",value:Array.isArray(n)?n[0]||"":n,onChange:t=>this.handleCpaValueChange(e.id,t.target.value),disabled:o},T().createElement("option",{value:""},this.props.intl.formatMessage({id:"admin.userManagement.userDetail.selectOption",defaultMessage:"Select an option"})),s.map((e=>T().createElement("option",{key:e.id,value:e.id},e.name))))}case"multiselect":{var s;const t=(null===(s=e.attrs)||void 0===s?void 0:s.options)||[],a=Array.isArray(n)?n:[];return T().createElement(Tv,{options:t,selectedValues:a,onChange:t=>this.handleCpaValueChange(e.id,t),disabled:o,placeholder:this.props.intl.formatMessage({id:"admin.user.selectOptions",defaultMessage:"Select options..."}),noOptionsMessage:this.props.intl.formatMessage({id:"admin.userManagement.userDetail.noOptions",defaultMessage:"No options available"})})}default:{var a;const t=(0,lb.Wz)(null===(a=e.attrs)||void 0===a?void 0:a.value_type);return T().createElement("input",{className:"form-control",type:t,value:Array.isArray(n)?n.join(this.props.intl.formatMessage({id:"admin.userManagement.userDetail.arrayValueSeparator",defaultMessage:", "})):n,onChange:t=>this.handleCpaValueChange(e.id,t.target.value),disabled:o})}}})();return T().createElement("label",{key:e.id,className:"cpa-field"},T().createElement(N.FormattedMessage,{id:"admin.userManagement.userDetail.cpaField",defaultMessage:"{fieldName}",values:{fieldName:e.name}}),d,l)})),Av(this,"renderTwoColumnLayout",(()=>{var e;const t=[...this.props.customProfileAttributeFields].sort(((e,t)=>{var s,a;return((null===(s=e.attrs)||void 0===s?void 0:s.sort_order)||0)-((null===(a=t.attrs)||void 0===a?void 0:a.sort_order)||0)})),s=[];s.push(T().createElement("label",{key:"username"},T().createElement(N.FormattedMessage,{id:"admin.userManagement.userDetail.username",defaultMessage:"Username"}),T().createElement(yv,null),T().createElement("span",null,null===(e=this.state.user)||void 0===e?void 0:e.username))),s.push(T().createElement("label",{key:"authMethod"},T().createElement(N.FormattedMessage,{id:"admin.userManagement.userDetail.authenticationMethod",defaultMessage:"Authentication Method"}),T().createElement(_v,null),T().createElement("span",null,function(e,t,s){if(!s)return"";let a;if(s.auth_service){let t;t=s.auth_service===mt.YM.LDAP_SERVICE||s.auth_service===mt.YM.SAML_SERVICE?s.auth_service.toUpperCase():s.auth_service===mt.YM.OFFICE365_SERVICE?e.formatMessage({id:"admin.oauth.office365",defaultMessage:"Entra ID"}):(0,D.Sn)(s.auth_service),a=t}else a=e.formatMessage({id:"admin.userManagement.userDetail.email",defaultMessage:"Email"});return t&&s.mfa_active&&(a+=e.formatMessage({id:"admin.userManagement.userDetail.separator",defaultMessage:", "}),a+=e.formatMessage({id:"admin.userManagement.userDetail.mfa",defaultMessage:"MFA"})),a}(this.props.intl,this.props.mfaEnabled,this.state.user)))),s.push(T().createElement("label",{key:"email"},T().createElement(N.FormattedMessage,{id:"admin.userManagement.userDetail.email",defaultMessage:"Email"}),T().createElement("input",{className:"form-control",type:"text",value:this.state.emailField,onChange:this.handleEmailChange,disabled:this.state.isSaving||this.state.isLoading})));for(const e of t)s.push(this.renderCpaField(e));return s.length%2&&s.push(null),T().createElement("div",{className:"two-column-layout"},s.map(((e,t)=>t%2==0?T().createElement("div",{key:"field-row-".concat(Math.trunc(t/2)),className:"field-row"},T().createElement("div",{className:"field-column left"},e),T().createElement("div",{className:"field-column right"},s[t+1])):null)).filter(Boolean))})),Av(this,"handleCancel",(()=>{var e;this.setState({emailField:(null===(e=this.state.user)||void 0===e?void 0:e.email)||"",customProfileAttributeValues:Cv({},this.state.originalCpaValues),error:null,isSaveNeeded:!1}),this.props.setNavigationBlocked(!1)})),Av(this,"handleSubmit",(async e=>{if(e.preventDefault(),this.state.isLoading||this.state.isSaving||!this.state.user)return;if(!this.state.isSaveNeeded)return;const t=this.state.user.email!==this.state.emailField;if(t&&!(0,lb.xf)(this.state.emailField))return void this.setState({error:this.props.intl.formatMessage({id:"admin.user_item.invalidEmail",defaultMessage:"Invalid email address"})});const s=this.hasCpaChanges();if(s){const{customProfileAttributeFields:e}=this.props;for(const t of e){var a;const e=null===(a=t.attrs)||void 0===a?void 0:a.value_type,s=this.state.customProfileAttributeValues[t.id],i=this.state.originalCpaValues[t.id];if(s&&e&&s!==i)if("email"===e){const e=String(s);if(!(0,lb.xf)(e))return void this.setState({error:this.props.intl.formatMessage({id:"admin.user_item.invalidEmail",defaultMessage:"Invalid email address"})})}else if("url"===e){const e=String(s);if(null===(0,Pi.hB)(e))return void this.setState({error:this.props.intl.formatMessage({id:"admin.user_item.invalidUrl",defaultMessage:"Invalid URL"})})}}}this.setState({error:null,isSaving:!0});try{const e=[];if(t){const t=Object.assign({},this.state.user,{email:this.state.emailField.trim().toLowerCase()});e.push(this.props.patchUser(t))}if(s){const{customProfileAttributeFields:t}=this.props;for(const s of t){const t=this.state.customProfileAttributeValues[s.id],a=this.state.originalCpaValues[s.id];let i=!1;i=Array.isArray(t)&&Array.isArray(a)?t.length!==a.length||t.some(((e,t)=>e!==a[t])):t!==a,i&&e.push(this.props.saveCustomProfileAttribute(this.state.user.id,s.id,t||""))}}const a=await Promise.all(e);let i=this.state.user,n=0;if(t){const e=a[n];if(e.data)i=e.data;else if(e.error)throw new Error(e.error.message);n++}if(s)for(let e=n;e<a.length;e++){const t=a[e];if(t.error)throw new Error(t.error.message)}this.setState({user:i,emailField:i.email,originalCpaValues:Cv({},this.state.customProfileAttributeValues),error:null,isSaving:!1,isSaveNeeded:!1}),s&&await this.props.getCustomProfileAttributeValues(this.state.user.id)}catch(e){return console.error("SystemUserDetails-handleSubmit",e),void this.setState({error:this.props.intl.formatMessage({id:"admin.user_item.userUpdateFailed",defaultMessage:"Failed to update user"}),isSaving:!1})}this.props.setNavigationBlocked(!1)})),Av(this,"toggleOpenModalDeactivateMember",(()=>{var e;(null===(e=this.state.user)||void 0===e?void 0:e.auth_service)!==mt.YM.LDAP_SERVICE&&this.setState({showDeactivateMemberModal:!0})})),Av(this,"toggleCloseModalDeactivateMember",(()=>{this.setState({showDeactivateMemberModal:!1})})),Av(this,"toggleOpenModalResetPassword",(()=>{this.props.openModal({modalId:mt.IQ.RESET_PASSWORD_MODAL,dialogType:ev,dialogProps:{user:this.state.user}})})),Av(this,"toggleCloseModalResetPassword",(()=>{this.setState({showResetPasswordModal:!1})})),Av(this,"toggleOpenTeamSelectorModal",(()=>{this.setState({showTeamSelectorModal:!0})})),Av(this,"toggleCloseTeamSelectorModal",(()=>{this.setState({showTeamSelectorModal:!1})})),Av(this,"openConfirmEditUserSettingsModal",(()=>{this.state.user&&this.props.openModal({modalId:mt.IQ.CONFIRM_MANAGE_USER_SETTINGS_MODAL,dialogType:bv,dialogProps:{user:this.state.user,onConfirm:this.openUserSettingsModal,focusOriginElement:"manageUserSettingsBtn"}})})),Av(this,"openUserSettingsModal",(async()=>{this.state.user&&this.props.openModal({modalId:mt.IQ.USER_SETTINGS,dialogType:vv.default,dialogProps:{adminMode:!0,isContentProductSettings:!0,userID:this.state.user.id,focusOriginElement:"manageUserSettingsBtn"}})})),Av(this,"getManagedByLdapText",(()=>{var e;return(null===(e=this.state.user)||void 0===e?void 0:e.auth_service)!==mt.YM.LDAP_SERVICE?null:T().createElement(T().Fragment,null," ",T().createElement(N.FormattedMessage,{id:"admin.user_item.managedByLdap",defaultMessage:"(Managed By LDAP)"}))})),this.state={emailField:"",customProfileAttributeFields:[],customProfileAttributeValues:{},originalCpaValues:{},isLoading:!1,error:null,isSaveNeeded:!1,isSaving:!1,teams:[],teamIds:[],refreshTeams:!0,showResetPasswordModal:!1,showDeactivateMemberModal:!1,showTeamSelectorModal:!1}}componentDidMount(){var e;const t=null!==(e=this.props.match.params.user_id)&&void 0!==e?e:"";t&&this.getUser(t),0===this.props.customProfileAttributeFields.length&&this.props.getCustomProfileAttributeFields()}render(){var e,t,s,a,i,n,r,o,l,d,c,m,u,p,g,h,f;return T().createElement("div",{className:"SystemUserDetail wrapper--fixed"},T().createElement(nt,{withBackButton:!0},T().createElement("div",null,T().createElement(tt.A,{to:"/admin_console/user_management/users",className:"fa fa-angle-left back"}),T().createElement(N.FormattedMessage,{id:"admin.systemUserDetail.title",defaultMessage:"User Configuration"}))),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement(Qb,{user:this.state.user,isLoading:this.state.isLoading,body:T().createElement(T().Fragment,null,T().createElement("span",null,null!==(e=null===(t=this.state.user)||void 0===t?void 0:t.position)&&void 0!==e?e:""),this.renderTwoColumnLayout(),Boolean((null===(s=this.state.user)||void 0===s?void 0:s.auth_data)&&(null===(a=this.state.user)||void 0===a?void 0:a.auth_service))&&T().createElement("label",{className:"auth-data-field"},T().createElement(N.FormattedMessage,{id:"admin.userManagement.userDetail.authData",defaultMessage:"Auth Data"}),T().createElement(_v,null),T().createElement("span",null,null===(i=this.state.user)||void 0===i?void 0:i.auth_data))),footer:T().createElement(T().Fragment,null,T().createElement("button",{className:"btn btn-secondary",onClick:this.toggleOpenModalResetPassword},T().createElement(N.FormattedMessage,{id:"admin.user_item.resetPwd",defaultMessage:"Reset Password"})),(null===(n=this.state.user)||void 0===n?void 0:n.mfa_active)&&T().createElement("button",{className:"btn btn-secondary",onClick:this.handleRemoveMFA},T().createElement(N.FormattedMessage,{id:"admin.user_item.resetMfa",defaultMessage:"Remove MFA"})),0!==(null===(r=this.state.user)||void 0===r?void 0:r.delete_at)&&T().createElement("button",{className:"btn btn-secondary",onClick:this.handleActivateUser,disabled:(null===(o=this.state.user)||void 0===o?void 0:o.auth_service)===mt.YM.LDAP_SERVICE},T().createElement(N.FormattedMessage,{id:"admin.user_item.makeActive",defaultMessage:"Activate"}),this.getManagedByLdapText()),0===(null===(l=this.state.user)||void 0===l?void 0:l.delete_at)&&T().createElement("button",{className:"btn btn-secondary btn-danger",onClick:this.toggleOpenModalDeactivateMember,disabled:(null===(d=this.state.user)||void 0===d?void 0:d.auth_service)===mt.YM.LDAP_SERVICE},T().createElement(N.FormattedMessage,{id:"admin.user_item.deactivate",defaultMessage:"Deactivate"}),this.getManagedByLdapText()),this.props.showManageUserSettings&&T().createElement("button",{className:"manageUserSettingsBtn btn btn-tertiary",onClick:this.openConfirmEditUserSettingsModal,id:"manageUserSettingsBtn"},T().createElement(N.FormattedMessage,{id:"admin.user_item.manageSettings",defaultMessage:"Manage User Settings"})),this.props.showLockedManageUserSettings&&T().createElement(ys.A,{title:(0,N.defineMessage)({id:"generic.enterprise_feature",defaultMessage:"Enterprise feature"}),hint:(0,N.defineMessage)({id:"admin.user_item.manageSettings.disabled_tooltip",defaultMessage:"Please upgrade to Enterprise to manage user settings"})},T().createElement("button",{className:"manageUserSettingsBtn btn disabled"},T().createElement("div",{className:"RestrictedIndicator__content"},T().createElement("i",{className:oe()("RestrictedIndicator__icon-tooltip","icon","icon-key-variant")})),T().createElement(N.FormattedMessage,{id:"admin.user_item.manageSettings",defaultMessage:"Manage User Settings"}))))}),T().createElement(dc,{title:(0,N.defineMessage)({id:"admin.userManagement.userDetail.teamsTitle",defaultMessage:"Team Membership"}),subtitle:(0,N.defineMessage)({id:"admin.userManagement.userDetail.teamsSubtitle",defaultMessage:"Teams to which this user belongs"}),button:T().createElement("div",{className:"add-team-button"},T().createElement("button",{type:"button",className:"btn btn-primary",onClick:this.toggleOpenTeamSelectorModal,disabled:this.state.isLoading||null!==this.state.error},T().createElement(N.FormattedMessage,{id:"admin.userManagement.userDetail.addTeam",defaultMessage:"Add Team"})))},this.state.isLoading&&T().createElement("div",{className:"teamlistLoading"},T().createElement(ce.A,null)),!this.state.isLoading&&(null===(c=this.state.user)||void 0===c?void 0:c.id)&&T().createElement(hv,{userId:this.state.user.id,userDetailCallback:this.handleTeamsLoaded,refreshTeams:this.state.refreshTeams})))),T().createElement("div",{className:"admin-console-save"},T().createElement("div",{className:"admin-console-save-buttons"},T().createElement(st.A,{saving:this.state.isSaving,disabled:!this.state.isSaveNeeded||this.state.isLoading||this.state.isSaving,onClick:this.handleSubmit}),this.state.isSaveNeeded&&T().createElement("button",{type:"button",className:"btn btn-tertiary",onClick:this.handleCancel,disabled:this.state.isSaving,style:{marginLeft:"12px"}},T().createElement(N.FormattedMessage,{id:"admin.user_item.cancel",defaultMessage:"Cancel"}))),T().createElement("div",{className:"error-message"},T().createElement(Bt.Ay,{error:this.state.error}))),T().createElement(Ta.A,{show:this.state.showDeactivateMemberModal,title:T().createElement(N.FormattedMessage,{id:"deactivate_member_modal.title",defaultMessage:"Deactivate {username}",values:{username:null!==(m=null===(u=this.state.user)||void 0===u?void 0:u.username)&&void 0!==m?m:""}}),message:T().createElement("div",null,T().createElement(N.FormattedMessage,{id:"deactivate_member_modal.desc",defaultMessage:"This action deactivates {username}. They will be logged out and not have access to any teams or channels on this system. Are you sure you want to deactivate {username}?",values:{username:null!==(p=null===(g=this.state.user)||void 0===g?void 0:g.username)&&void 0!==p?p:""}}),""!==(null===(h=this.state.user)||void 0===h?void 0:h.auth_service)&&(null===(f=this.state.user)||void 0===f?void 0:f.auth_service)!==mt.YM.EMAIL_SERVICE&&T().createElement("strong",null,T().createElement("br",null),T().createElement("br",null),T().createElement(N.FormattedMessage,{id:"deactivate_member_modal.sso_warning",defaultMessage:"You must also deactivate this user in the SSO provider or they will be reactivated on next login or sync."}))),confirmButtonClass:"btn btn-danger",confirmButtonText:T().createElement(N.FormattedMessage,{id:"deactivate_member_modal.deactivate",defaultMessage:"Deactivate"}),onConfirm:this.handleDeactivateMember,onCancel:this.toggleCloseModalDeactivateMember}),this.state.showTeamSelectorModal&&T().createElement(Yl,{onModalDismissed:this.toggleCloseTeamSelectorModal,onTeamsSelected:this.handleAddUserToTeams,alreadySelected:this.state.teamIds,excludeGroupConstrained:!0}))}}const wv=(0,N.injectIntl)(Nv),Rv={getUser:bi.wz,patchUser:bi.WJ,updateUserActive:bi.tS,updateUserMfa:bi.BX,addUserToTeam:o.$w,setNavigationBlocked:h.Jb,openModal:Gr.q,getUserPreferences:Ga.oE,getCustomProfileAttributeFields:Zm.MG,getCustomProfileAttributeValues:bi.R0,saveCustomProfileAttribute:bi.Ah},Ov=(0,a.connect)((function(e){const t=(0,c.zj)(e),s=Object.values((0,c.A1)(e)),a=fC(e),i=EC(e);return{mfaEnabled:"true"===(null==t?void 0:t.EnableMultifactorAuthentication)||!1,customProfileAttributeFields:s,showManageUserSettings:a,showLockedManageUserSettings:i}}),Rv)(wv);var Iv=s(33495),kv=s(57322),Pv=s(47256),xv=s(57986),Dv=s(91767),Lv=s(72208);function Fv(){const e=(0,a.useDispatch)(),[t,s]=(0,A.useState)(!1);function i(){s((e=>!e))}return T().createElement(Lv.A,{permissions:[l.xB.REVOKE_USER_ACCESS_TOKEN]},T().createElement("button",{className:"btn btn-tertiary btn-danger",onClick:i},T().createElement(N.FormattedMessage,{id:"admin.system_users.revokeAllSessions",defaultMessage:"Revoke All Sessions"})),T().createElement(Ta.A,{show:t,title:T().createElement(N.FormattedMessage,{id:"admin.system_users.revoke_all_sessions_modal_title",defaultMessage:"Revoke all sessions in the system"}),message:T().createElement(N.FormattedMessage,{id:"admin.system_users.revoke_all_sessions_modal_message",defaultMessage:"This action revokes all sessions in the system. All users will be logged out from all devices, including your session. Are you sure you want to revoke all sessions?"}),confirmButtonClass:"btn btn-danger",confirmButtonText:T().createElement(N.FormattedMessage,{id:"admin.system_users.revoke_all_sessions_button",defaultMessage:"Revoke All Sessions"}),onConfirm:async function(){const{data:t}=await e((0,bi.ID)());t?(0,Dv.BN)():s(!1)},onCancel:i}))}function Uv(e){const{formatMessage:t}=(0,N.useIntl)();function s(e){switch(e){case Pv.nl.username:return T().createElement(N.FormattedMessage,{id:"admin.system_users.list.userDetails",defaultMessage:"User details"});case Pv.nl.email:return T().createElement(N.FormattedMessage,{id:"admin.system_users.list.email",defaultMessage:"Email"});case Pv.nl.createAt:return T().createElement(N.FormattedMessage,{id:"admin.system_users.list.memberSince",defaultMessage:"Member since"});case Pv.nl.lastLoginAt:return T().createElement(N.FormattedMessage,{id:"admin.system_users.list.lastLoginAt",defaultMessage:"Last login"});case Pv.nl.lastStatusAt:return T().createElement(N.FormattedMessage,{id:"admin.system_users.list.lastActivity",defaultMessage:"Last activity"});case Pv.nl.lastPostDate:return T().createElement(N.FormattedMessage,{id:"admin.system_users.list.lastPost",defaultMessage:"Last post"});case Pv.nl.daysActive:return T().createElement(N.FormattedMessage,{id:"admin.system_users.list.daysActive",defaultMessage:"Days active"});case Pv.nl.totalPosts:return T().createElement(N.FormattedMessage,{id:"admin.system_users.list.totalPosts",defaultMessage:"Messages posted"});case Pv.nl.actions:return T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions",defaultMessage:"Actions"});default:return T().createElement("span",null)}}return T().createElement("div",{className:"systemUsersColumnToggler"},T().createElement(Di.mc,{menuButton:{id:"systemUsersColumnTogglerMenuButton",class:"inputWithMenu","aria-label":t({id:"admin.system_users.column_toggler.menuButtonAriaLabel",defaultMessage:"Open menu to select columns to display"}),as:"div",children:T().createElement(Vo.A,{label:t({id:"admin.system_users.column_toggler.placeholder",defaultMessage:"Columns"}),name:"colXC",value:t({id:"admin.system_users.column_toggler.menuButtonText",defaultMessage:"{selectedCount} selected"},{selectedCount:e.visibleColumnsLength}),readOnly:!0,inputSuffix:T().createElement("i",{className:"icon icon-chevron-down"})})},menu:{id:"systemUsersColumnTogglerMenu","aria-label":t({id:"admin.system_users.column_toggler.dropdownAriaLabel",defaultMessage:"Columns visibility menu"})}},e.allColumns.map((e=>{let t;return t=e.getIsVisible()?T().createElement("i",{className:"icon icon-checkbox-marked"}):T().createElement("i",{className:"icon icon-checkbox-blank-outline"}),T().createElement(Di.q7,{key:e.id,id:e.id,role:"menuitemcheckbox",labels:s(e.id),disabled:!e.getCanHide(),leadingElement:t,onClick:e.getToggleVisibilityHandler()})}))))}function Bv(e){const t=new Date(e);return t.setDate(t.getDate()-30),t}function jv(e){const t=new Date(e);return t.setMonth(t.getMonth()-6),t}function Hv(e){const t=new Date(e);return t.setMonth(t.getMonth()-1),t.setDate(1),t}function Gv(e){const t=new Date(e);return t.setDate(1),t.setDate(t.getDate()-1),t}function qv(e){const{formatMessage:t,formatDate:s}=(0,N.useIntl)(),i=(0,a.useDispatch)(),n=new Date;function r(e){i((0,f.p$)({dateRange:e}))}return T().createElement("div",{className:"systemUsersDateRangeSelector"},T().createElement(Di.mc,{menuButton:{id:"systemUsersDateRangeSelectorMenuButton",class:"inputWithMenu","aria-label":t({id:"admin.system_users.date_range_selector.menuButtonAriaLabel",defaultMessage:"Open menu to select columns to display"}),as:"div",children:T().createElement(Vo.A,{label:t({id:"admin.system_users.date_range_selector.label",defaultMessage:"Duration"}),name:"colXC",value:(o=e.dateRange,o===Iv.p9.Last30Days?t({id:"admin.system_users.date_range_selector.date_range.last_30_days",defaultMessage:"Last 30 days"}):o===Iv.p9.PreviousMonth?t({id:"admin.system_users.date_range_selector.date_range.previous_month",defaultMessage:"Previous month"}):o===Iv.p9.Last6Months?t({id:"admin.system_users.date_range_selector.date_range.last_6_months",defaultMessage:"Last 6 months"}):t({id:"admin.system_users.date_range_selector.date_range.all_time",defaultMessage:"All time"})),readOnly:!0,inputSuffix:T().createElement("i",{className:"icon icon-chevron-down"})})},menu:{id:"systemUsersDateRangeSelectorMenu","aria-label":t({id:"admin.system_users.date_range_selector.dropdownAriaLabel",defaultMessage:"Date range menu"}),width:"250px"}},T().createElement(Di.q7,{key:Iv.p9.AllTime,id:Iv.p9.AllTime,labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.all_time",defaultMessage:"All time"}),trailingElements:e.dateRange===Iv.p9.AllTime&&T().createElement("i",{className:"icon icon-check"}),onClick:()=>r()}),T().createElement(Di.q7,{key:Iv.p9.Last30Days,id:Iv.p9.Last30Days,labels:T().createElement(T().Fragment,null,T().createElement(N.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.last_30_days",defaultMessage:"Last 30 days"}),T().createElement(N.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.sublabel",defaultMessage:"{startDate} - {endDate}",values:{startDate:s(Bv(n)),endDate:s(n)}})),trailingElements:e.dateRange===Iv.p9.Last30Days&&T().createElement("i",{className:"icon icon-check"}),onClick:()=>r(Iv.p9.Last30Days)}),T().createElement(Di.q7,{key:Iv.p9.PreviousMonth,id:Iv.p9.PreviousMonth,labels:T().createElement(T().Fragment,null,T().createElement(N.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.previous_month",defaultMessage:"Previous month"}),T().createElement(N.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.sublabel",defaultMessage:"{startDate} - {endDate}",values:{startDate:s(Hv(n)),endDate:s(Gv(n))}})),trailingElements:e.dateRange===Iv.p9.PreviousMonth&&T().createElement("i",{className:"icon icon-check"}),onClick:()=>r(Iv.p9.PreviousMonth)}),T().createElement(Di.q7,{key:Iv.p9.Last6Months,id:Iv.p9.Last6Months,labels:T().createElement(T().Fragment,null,T().createElement(N.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.last_6_months",defaultMessage:"Last 6 months"}),T().createElement(N.FormattedMessage,{id:"admin.system_users.date_range_selector.date_range.sublabel",defaultMessage:"{startDate} - {endDate}",values:{startDate:s(jv(n),{month:"numeric",year:"numeric"}),endDate:s(n,{month:"numeric",year:"numeric"})}})),trailingElements:e.dateRange===Iv.p9.Last6Months&&T().createElement("i",{className:"icon icon-check"}),onClick:()=>r(Iv.p9.Last6Months)}),T().createElement(Di.wv,null),T().createElement(Di.q7,{key:"trailing_message",id:"trailing_message",className:"systemUsersDateRangeSelector__trailing-message",labels:T().createElement(T().Fragment,null,T().createElement("span",null),T().createElement(N.FormattedMessage,{id:"admin.system_users.date_range_selector.trailing_message",defaultMessage:"Note: This filter will only affect values in the <strong>Last Post, Days Active, and Messages Posted</strong> columns.",values:{strong:e=>T().createElement("strong",null,e)}})),disabled:!0})));var o}function Vv(e){let{error:t,onExited:s}=e;const a=400===t.status_code&&"app.report.start_users_batch_export.job_exists"===t.server_error_id;let i=T().createElement(N.FormattedMessage,{id:"export_error_modal.title",defaultMessage:"Export could not be initiated"}),n=T().createElement(T().Fragment,null,T().createElement(N.FormattedMessage,{id:"export_error_modal.desc",defaultMessage:"We’re not able to initiate an export of this data at the moment. Please wait a few minutes and try again."}),T().createElement("div",{className:"error"},t.message));return a&&(i=T().createElement(N.FormattedMessage,{id:"export_error_modal.inProgress.title",defaultMessage:"Export is in progress"}),n=T().createElement(N.FormattedMessage,{id:"export_error_modal.inProgress.desc",defaultMessage:"You've already started an export of this data. Please wait a few more minutes to access the CSV file or to generate the report again."})),T().createElement(fv.A,{title:i,message:n,confirmButtonText:T().createElement(N.FormattedMessage,{id:"generic.okay",defaultMessage:"Okay"}),onExited:s})}function zv(e){var t;let{onConfirm:s,onExited:i}=e;const n=(0,a.useSelector)(Ke.QH),r=null!==(t=n.dateRange)&&void 0!==t?t:Iv.p9.AllTime,o=T().createElement(N.FormattedMessage,{id:"export_user_data_modal.title",defaultMessage:"Export user data"});let l=T().createElement(N.FormattedMessage,{id:"export_user_data_modal.dange_range.all_time",defaultMessage:"You're about to export user data for all time. When the export is ready, a CSV file will be sent to you in a Mattermost direct message. This export will take a few minutes."});r===Iv.p9.Last30Days?l=T().createElement(N.FormattedMessage,{id:"export_user_data_modal.dange_range.last_30_days",defaultMessage:"You're about to export user data for the last 30 days. When the export is ready, a CSV file will be sent to you in a Mattermost direct message. This export will take a few minutes."}):r===Iv.p9.PreviousMonth?l=T().createElement(N.FormattedMessage,{id:"export_user_data_modal.dange_range.previous_month",defaultMessage:"You're about to export user data for the previous month. When the export is ready, a CSV file will be sent to you in a Mattermost direct message. This export will take a few minutes."}):r===Iv.p9.Last6Months&&(l=T().createElement(N.FormattedMessage,{id:"export_user_data_modal.dange_range.last_6_months",defaultMessage:"You're about to export user data for the last 6 months. When the export is ready, a CSV file will be sent to you in a Mattermost direct message. This export will take a few minutes."})),(""!==n.filterRole||n.filterStatus||""!==n.filterTeam)&&(l=T().createElement(T().Fragment,null,l,T().createElement("p",{className:"mt-3 text-muted"},T().createElement(N.FormattedMessage,{id:"export_user_data_modal.export_data.table_filters_note",defaultMessage:"Note: The exported data will use the filters you have set in the users list. To export all data first remove the filters."}))));const d=T().createElement(N.FormattedMessage,{id:"export_user_data_modal.export_data",defaultMessage:"Export data"}),c=T().createElement(N.FormattedMessage,{id:"export_user_data_modal.do_not_show",defaultMessage:"Do not show this again"});return T().createElement(fv.A,{id:"exportUserDataModal",title:o,message:l,confirmButtonText:d,showCheckbox:!0,checkboxText:c,checkboxInFooter:!0,onConfirm:s,onExited:i})}function Wv(e){let{onExited:t}=e;const{openPricingModal:s,isAirGapped:a}=(0,mo.A)(),i=T().createElement(N.FormattedMessage,{id:"upgrade_export_data_modal.title",defaultMessage:"Upgrade to export data reports"}),n=T().createElement(T().Fragment,null,T().createElement(N.FormattedMessage,{id:"upgrade_export_data_modal.desc",defaultMessage:"Export detailed data reports with ease and analyse user statistics conveniently. Upgrade to the Professional plan to gain access to data export."}),T().createElement("div",{className:"upgrade-export-data-modal__svg-image"},T().createElement(ru,{width:250,height:188}))),r=T().createElement(N.FormattedMessage,{id:"upgrade_export_data_modal.view_plans",defaultMessage:"View Plans"});return T().createElement(fv.A,{title:i,message:n,confirmButtonText:r,onConfirm:()=>{s()},onExited:t,hideConfirm:a})}Uv.propTypes={visibleColumnsLength:k().number.isRequired},Vv.propTypes={onExited:k().func.isRequired},zv.propTypes={onConfirm:k().func.isRequired,onExited:k().func.isRequired},Wv.propTypes={onExited:k().func.isRequired};var Yv=s(77476);function Zv(e){const{formatMessage:t}=(0,N.useIntl)(),s=(0,a.useDispatch)(),i="true"===(0,a.useSelector)((e=>(0,m.Jt)(e,l.pm.CATEGORY_REPORTING,l.pm.HIDE_BATCH_EXPORT_CONFIRM_MODAL,""))),n=(0,a.useSelector)(Ke.QH),r=(0,Yv.e2)(n);void 0===r.date_range&&(r.date_range=Iv.p9.AllTime);const o=(0,a.useSelector)(c.Ay),d="true"===o.IsLicensed&&(0,qs.be)(o);async function u(t){const{error:a}=await s((0,f.rN)(r));a?s((0,Gr.q)({modalId:mt.IQ.EXPORT_ERROR_MODAL,dialogType:Vv,dialogProps:{error:a}})):t&&s((0,Ga.SF)(e.currentUserId,[{category:l.pm.CATEGORY_REPORTING,name:l.pm.HIDE_BATCH_EXPORT_CONFIRM_MODAL,user_id:e.currentUserId,value:"true"}]))}const p=T().createElement("button",{onClick:function(){e.usersLenght&&(d?i?u():s((0,Gr.q)({modalId:mt.IQ.EXPORT_USER_DATA_MODAL,dialogType:zv,dialogProps:{onConfirm:u}})):s((0,Gr.q)({modalId:mt.IQ.UPGRADE_EXPORT_DATA_MODAL,dialogType:Wv,dialogProps:{}})))},className:"btn btn-md btn-tertiary",disabled:!e.usersLenght},T().createElement("span",{className:"icon icon-download-outline"}),T().createElement(N.FormattedMessage,{id:"admin.system_users.exportButton",defaultMessage:"Export"}));return d?p:T().createElement(T().Fragment,null,T().createElement(ys.A,{title:t({id:"admin.system_users.exportButton.notLicensed.title",defaultMessage:"Professional feature"}),hint:t({id:"admin.system_users.exportButton.notLicensed.hint",defaultMessage:"This feature is available on the professional plan"})},p),T().createElement("div",{className:"system-users-export__keyIndicator"},T().createElement("i",{className:"icon icon-key-variant"})))}Zv.propTypes={usersLenght:k().number.isRequired};var Jv=s(17638),Kv=s(38889),Qv=s(94621);const Xv=x().div.withConfig({displayName:"StyledPopoverContainer"})(["border-radius:4px;border:1px solid rgba(var(--center-channel-color-rgb),0.16);background-color:var(--center-channel-bg);box-shadow:var(--elevation-4);z-index:9999;"]);function $v(e){const{formatMessage:t}=(0,N.useIntl)(),s=(0,A.useMemo)((()=>[{value:Pv.Bq.Any,label:t({id:"admin.system_users.filters.status.any",defaultMessage:"Any"})},{value:Pv.Bq.Active,label:t({id:"admin.system_users.filters.status.active",defaultMessage:"Activated users"})},{value:Pv.Bq.Deactivated,label:t({id:"admin.system_users.filters.status.deactive",defaultMessage:"Deactivated users"})}]),[]),[a,i]=(0,A.useState)((()=>(0,Yv.u5)(e.initialValue,s)));return T().createElement(qo.A,{name:"filterStatus",isSearchable:!1,legend:t({id:"admin.system_users.filters.status.title",defaultMessage:"Status"}),options:s,value:a,onChange:function(t){i(t),e.onChange(t.value)}})}function ey(e){const{formatMessage:t}=(0,N.useIntl)(),s=(0,A.useMemo)((()=>[{value:Pv.Oq.Any,label:t({id:"admin.system_users.filters.role.any",defaultMessage:"Any"})},{value:Pv.Oq.Admin,label:t({id:"admin.system_users.filters.role.system_admin",defaultMessage:"System Admin"})},{value:Pv.Oq.Member,label:t({id:"admin.system_users.filters.role.system_user",defaultMessage:"Member"})},{value:Pv.Oq.Guest,label:t({id:"admin.system_users.filters.role.system_guest",defaultMessage:"Guest"})}]),[]),[a,i]=(0,A.useState)((()=>(0,Yv.u5)(e.initialValue,s)));return T().createElement(qo.A,{name:"filterRole",isSearchable:!1,legend:t({id:"admin.system_users.filters.role.title",defaultMessage:"Role"}),options:s,value:a,onChange:function(t){i(t),e.onChange(t.value)}})}$v.propTypes={onChange:k().func.isRequired},ey.propTypes={onChange:k().func.isRequired};var ty=s(66141);function sy(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function ay(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?sy(Object(s),!0).forEach((function(t){iy(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):sy(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function iy(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}function ny(e){const t=(0,a.useDispatch)(),{formatMessage:s}=(0,N.useIntl)(),[i,n]=(0,A.useState)(!1),[r,o]=(0,A.useState)({}),{context:l,refs:d,floatingStyles:c}=(0,Jv.we)({open:i,onOpenChange:n,whileElementsMounted:Kv.ll,middleware:[(0,Qv.cY)(10),(0,Qv.RK)({allowedPlacements:["bottom-start","top-start"]})]}),{isMounted:m,styles:u}=(0,Jv.DL)(l),p=(0,Jv.kp)(l),g=(0,Jv.s9)(l),h=(0,Jv.It)(l),{getReferenceProps:E,getFloatingProps:b}=(0,Jv.bv)([p,g,h]),v=(e.filterStatus.length>0?1:0)+(e.filterRole.length>0?1:0)+(e.filterTeam.length>0?1:0);return T().createElement("div",{className:"systemUsersFilterContainer"},T().createElement("button",Object.assign({},E(),{ref:d.setReference,className:"btn btn-md btn-tertiary","aria-controls":"systemUsersFilterPopover"}),T().createElement("i",{className:"icon icon-filter-variant"}),s({id:"admin.system_users.filtersMenu",defaultMessage:"Filters ({count})"},{count:v})),m&&T().createElement(Jv.s3,{context:l},T().createElement(Xv,Object.assign({},b(),{id:"systemUsersFilterPopover",ref:d.setFloating,style:Object.assign({},c,u),className:"systemUsersFilterPopoverContainer","aria-labelledby":"header"}),T().createElement("h4",{id:"header"},s({id:"admin.system_users.filtersPopover.title",defaultMessage:"Filter by"})),T().createElement("div",{className:"body"},T().createElement(ty.l,{initialValue:e.filterTeam,initialLabel:e.filterTeamLabel,onChange:function(e,t){let s,a;e===Pv.rw.AllTeams?(s="",a=""):e===Pv.rw.NoTeams?(s=Pv.rw.NoTeams,a=""):(s=e,a=t),o(ay(ay({},r),{},{filterTeam:s,filterTeamLabel:a}))}}),T().createElement(ey,{initialValue:e.filterRole,onChange:function(e){let t="";e===Pv.Oq.Admin?t=Pv.Oq.Admin:e===Pv.Oq.Member?t=Pv.Oq.Member:e===Pv.Oq.Guest&&(t=Pv.Oq.Guest),o(ay(ay({},r),{},{filterRole:t}))}}),T().createElement($v,{initialValue:e.filterStatus,onChange:function(e){let t="";e===Pv.Bq.Active?t="active":e===Pv.Bq.Deactivated&&(t="deactivated"),o(ay(ay({},r),{},{filterStatus:t}))}})),T().createElement("div",{className:"footer"},T().createElement("button",{className:"btn btn-md btn-primary",onClick:function(){t((0,f.p$)(r)),n(!1)},type:"submit"},s({id:"admin.system_users.filtersPopover.apply",defaultMessage:"Apply"}))))))}function ry(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}function oy(e){const t=e.user&&e.user.roles?e.user.roles:"";return{show:!0,user:e.user,error:null,hasPostAllRole:Nb.QF(t),hasPostAllPublicRole:Nb.HF(t),hasUserAccessTokenRole:Nb.DA(t),isSystemAdmin:Nb.FV(t)}}class ly extends T().PureComponent{constructor(e){super(e),ry(this,"handleError",(e=>{this.setState({error:e})})),ry(this,"handleSystemAdminChange",(e=>{"systemadmin"===e.target.name?this.setState({isSystemAdmin:!0}):"systemmember"===e.target.name&&this.setState({isSystemAdmin:!1})})),ry(this,"handleUserAccessTokenChange",(e=>{this.setState({hasUserAccessTokenRole:e.target.checked})})),ry(this,"handlePostAllChange",(e=>{this.setState({hasPostAllRole:e.target.checked})})),ry(this,"handlePostAllPublicChange",(e=>{this.setState({hasPostAllPublicRole:e.target.checked})})),ry(this,"onHide",(()=>{this.setState({show:!1})})),ry(this,"handleSave",(async()=>{this.setState({error:null});let e=l.Bz.SYSTEM_USER_ROLE;this.state.isSystemAdmin?e+=" "+l.Bz.SYSTEM_ADMIN_ROLE:this.state.hasUserAccessTokenRole&&(e+=" "+l.Bz.SYSTEM_USER_ACCESS_TOKEN_ROLE,this.state.hasPostAllRole?e+=" "+l.Bz.SYSTEM_POST_ALL_ROLE:this.state.hasPostAllPublicRole&&(e+=" "+l.Bz.SYSTEM_POST_ALL_PUBLIC_ROLE));const t=await this.props.actions.updateUserRoles(this.props.user.id,e);(0,ob.o)(t)?(this.props.onSuccess(e),this.onHide()):this.handleError(T().createElement(N.FormattedMessage,{id:"admin.manage_roles.saveError",defaultMessage:"Unable to save roles."}))})),ry(this,"renderContents",(()=>{const{user:e}=this.props;if(null==e)return T().createElement("div",null);let t,s,a=Nb.dS(e);a?a+=" (@".concat(e.username,")"):a="@".concat(e.username),(this.state.hasUserAccessTokenRole||this.state.isSystemAdmin||e.is_bot)&&(t=T().createElement("div",null,T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"admin.manage_roles.additionalRoles",defaultMessage:"Select additional permissions for the account. <link>Read more about roles and permissions</link>.",values:{link:e=>T().createElement(wt.A,{href:mt.i3.PERSONAL_ACCESS_TOKENS,location:"manage_roles_modal"},e)}})),T().createElement("div",{className:"checkbox"},T().createElement("label",null,T().createElement("input",{type:"checkbox",checked:this.state.hasPostAllRole||this.state.isSystemAdmin,disabled:this.state.isSystemAdmin,onChange:this.handlePostAllChange}),T().createElement("strong",null,T().createElement(N.FormattedMessage,{id:"admin.manage_roles.postAllRoleTitle",defaultMessage:"post:all"})),T().createElement(N.FormattedMessage,{id:"admin.manage_roles.postAllRole",defaultMessage:"Access to post to all Mattermost channels including direct messages."}))),T().createElement("div",{className:"checkbox"},T().createElement("label",null,T().createElement("input",{type:"checkbox",checked:this.state.hasPostAllPublicRole||this.state.hasPostAllRole||this.state.isSystemAdmin,disabled:this.state.hasPostAllRole||this.state.isSystemAdmin,onChange:this.handlePostAllPublicChange}),T().createElement("strong",null,T().createElement(N.FormattedMessage,{id:"admin.manage_roles.postAllPublicRoleTitle",defaultMessage:"post:channels"})),T().createElement(N.FormattedMessage,{id:"admin.manage_roles.postAllPublicRole",defaultMessage:"Access to post to all Mattermost public channels."}))),T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"admin.manage_roles.additionalRoles_warning",defaultMessage:"<strong>Note:</strong><span>The permissions granted above apply to the account as a whole, regardless of whether it is authenticated using a session cookie or a personal access token. For example, selecting post:all will allow the account to post to channels it is not a member of, even without using a personal access token.</span>",values:{strong:e=>T().createElement("strong",null,e),span:e=>T().createElement("span",{className:"pt-2 pb-2 light"},e)}})))),this.props.userAccessTokensEnabled&&(s=e.is_bot?T().createElement("div",null,T().createElement("div",{className:"member-row--padded member-row-lone-padding"},t)):T().createElement("div",null,T().createElement("div",{className:"checkbox"},T().createElement("label",null,T().createElement("input",{type:"checkbox",checked:this.state.hasUserAccessTokenRole||this.state.isSystemAdmin,disabled:this.state.isSystemAdmin,onChange:this.handleUserAccessTokenChange}),T().createElement(N.FormattedMessage,{id:"admin.manage_roles.allowUserAccessTokens",defaultMessage:"Allow this account to generate <link>personal access tokens</link>.",values:{link:e=>T().createElement(wt.A,{href:mt.i3.PERSONAL_ACCESS_TOKENS,location:"manage_roles_modal"},e)}}),T().createElement("span",{className:"d-block pt-2 pb-2 light"},T().createElement(N.FormattedMessage,{id:"admin.manage_roles.allowUserAccessTokensDesc",defaultMessage:"Removing this permission doesn't delete existing tokens. To delete them, go to the user's Manage Tokens menu."})))),T().createElement("div",{className:"member-row--padded"},t)));let i=e.email;return e.is_bot&&(i=""),T().createElement("div",null,T().createElement("div",{className:"manage-teams__user"},T().createElement(vc.A,{size:"lg",username:e.username,url:O.mT.getProfilePictureUrl(e.id,e.last_picture_update)}),T().createElement("div",{className:"manage-teams__info"},T().createElement("div",{className:"manage-teams__name"},a,e.is_bot&&T().createElement(Pb.A,null)),T().createElement("div",{className:"manage-teams__email"},i))),T().createElement("div",null,T().createElement("div",{className:"manage-row--inner"},T().createElement("div",{className:"radio-inline"},T().createElement("label",null,T().createElement("input",{name:"systemadmin",type:"radio",checked:this.state.isSystemAdmin,onChange:this.handleSystemAdminChange}),T().createElement(N.FormattedMessage,{id:"admin.manage_roles.systemAdmin",defaultMessage:"System Admin"}))),T().createElement("div",{className:"radio-inline"},T().createElement("label",null,T().createElement("input",{name:"systemmember",type:"radio",checked:!this.state.isSystemAdmin,onChange:this.handleSystemAdminChange}),T().createElement(N.FormattedMessage,{id:"admin.manage_roles.systemMember",defaultMessage:"Member"})))),s))})),this.state=oy(e)}static getDerivedStateFromProps(e,t){var s,a;return(null===(s=t.user)||void 0===s?void 0:s.id)!==(null===(a=e.user)||void 0===a?void 0:a.id)?oy(e):null}render(){return T().createElement(hn.Modal,{show:this.state.show,onHide:this.onHide,onExited:this.props.onExited,dialogClassName:"a11y__modal manage-teams",role:"none","aria-labelledby":"manageRolesModalLabel"},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,{componentClass:"h1",id:"manageRolesModalLabel"},T().createElement(N.FormattedMessage,{id:"admin.manage_roles.manageRolesTitle",defaultMessage:"Manage Roles"}))),T().createElement(hn.Modal.Body,null,this.renderContents(),this.state.error),T().createElement(hn.Modal.Footer,null,T().createElement("button",{type:"button",className:"btn btn-tertiary",onClick:this.onHide},T().createElement(N.FormattedMessage,{id:"admin.manage_roles.cancel",defaultMessage:"Cancel"})),T().createElement("button",{type:"button",className:"btn btn-primary",onClick:this.handleSave},T().createElement(N.FormattedMessage,{id:"admin.manage_roles.save",defaultMessage:"Save"}))))}}ry(ly,"propTypes",{userAccessTokensEnabled:k().bool.isRequired,onSuccess:k().func.isRequired,onExited:k().func.isRequired,actions:k().shape({updateUserRoles:k().func.isRequired}).isRequired});const dy=(0,a.connect)((function(e){return{userAccessTokensEnabled:e.entities.admin.config.ServiceSettings.EnableUserAccessTokens}}),(function(e){return{actions:(0,i.zH)({updateUserRoles:bi.eA},e)}}))(ly),cy=e=>{const{formatMessage:t}=(0,N.useIntl)(),s=(0,Nb.qc)(e.teamMember.roles)||e.teamMember.scheme_admin,a=(0,Nb.FV)(e.user.roles),i=(0,Nb.P)(e.user.roles),{team:n}=e;let r;return r=t(a?{id:"admin.user_item.sysAdmin",defaultMessage:"System Admin"}:s?{id:"admin.user_item.teamAdmin",defaultMessage:"Team Admin"}:i?{id:"admin.user_item.guest",defaultMessage:"Guest"}:{id:"admin.user_item.teamMember",defaultMessage:"Team Member"}),T().createElement(bl.A,null,T().createElement("a",null,T().createElement("span",null,r," "),T().createElement("span",{className:"caret"})),T().createElement(El.A,{openLeft:!0,ariaLabel:t({id:"team_members_dropdown.menuAriaLabel",defaultMessage:"Change the role of a team member"})},T().createElement(El.A.ItemAction,{show:!s&&!i,onClick:async()=>{const{error:t}=await e.updateTeamMemberSchemeRoles(e.teamMember.team_id,e.user.id,!0,!0);t?e.onError(T().createElement(N.FormattedMessage,{id:"admin.manage_teams.makeAdminError",defaultMessage:"Unable to make user a team admin."})):e.onMemberChange(e.teamMember.team_id)},text:t({id:"admin.user_item.makeTeamAdmin",defaultMessage:"Make Team Admin"})}),T().createElement(El.A.ItemAction,{show:s,onClick:async()=>{const{error:t}=await e.updateTeamMemberSchemeRoles(e.teamMember.team_id,e.user.id,!0,!1);t?e.onError(T().createElement(N.FormattedMessage,{id:"admin.manage_teams.makeMemberError",defaultMessage:"Unable to make user a member."})):e.onMemberChange(e.teamMember.team_id)},text:t({id:"admin.user_item.makeMember",defaultMessage:"Make Team Member"})}),T().createElement(El.A.ItemAction,{show:!n.group_constrained,onClick:()=>e.handleRemoveUserFromTeam(e.teamMember.team_id),text:t({id:"team_members_dropdown.leave_team",defaultMessage:"Remove from Team"})})))};cy.propTypes={onError:k().func.isRequired,onMemberChange:k().func.isRequired,updateTeamMemberSchemeRoles:k().func.isRequired,handleRemoveUserFromTeam:k().func.isRequired};const my=cy,uy=e=>{let{teamId:t,handleRemoveUserFromTeam:s}=e;return T().createElement("button",{type:"button",className:"btn btn-danger",onClick:e=>{e.preventDefault(),s(t)}},T().createElement(N.FormattedMessage,{id:"team_members_dropdown.leave_team",defaultMessage:"Remove from Team"}))};uy.propTypes={teamId:k().string.isRequired,handleRemoveUserFromTeam:k().func.isRequired};const py=uy,gy=e=>{let{locale:t,onExited:s,user:a,actions:i}=e;const[n,r]=T().useState(null),[o,l]=T().useState(null),[d,c]=T().useState(null),[m,u]=T().useState(!0);(0,A.useEffect)((()=>{a&&p(a)}),[a]),(0,A.useEffect)((()=>{null!=a&&a.id&&(l(null),c(null))}),[null==a?void 0:a.id]);const p=async e=>{await h(e.id);const{data:s}=await i.getTeamsForUser(e.id);l((0,tv.y)(s,t))},g=e=>r(e),h=async e=>{const{data:t}=await i.getTeamMembersForUser(e);t&&c(t)},f=async e=>{const{error:t}=await i.removeUserFromTeam(e,a?a.id:"");t?g(T().createElement(N.FormattedMessage,{id:"admin.manage_teams.removeError",defaultMessage:"Unable to remove user from team."})):(e=>{l(o.filter((t=>t.id!==e))),c(d.filter((t=>t.team_id!==e)))})(e)},E=()=>h(a?a.id:"");return T().createElement(hn.Modal,{show:m,onHide:()=>{u(!1)},onExited:s,dialogClassName:"a11y__modal manage-teams modal--overflow-visible",role:"none","aria-labelledby":"manageTeamsModalLabel"},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,{componentClass:"h1",id:"manageTeamsModalLabel"},T().createElement(N.FormattedMessage,{id:"admin.user_item.manageTeams",defaultMessage:"Manage Teams"}))),T().createElement(hn.Modal.Body,null,(()=>{if(!a)return T().createElement(Na.A,null);const e=(0,Nb.qc)(a.roles);let t,s=D.dS(a);s?s+=" (@".concat(a.username,")"):s="@".concat(a.username),t=o&&d?o.map((t=>{const s=d.find((e=>e.team_id===t.id));if(!s)return null;const n=e?T().createElement(py,{teamId:t.id,handleRemoveUserFromTeam:f}):T().createElement(my,{user:a,team:t,teamMember:s,onError:g,onMemberChange:E,updateTeamMemberSchemeRoles:i.updateTeamMemberSchemeRoles,handleRemoveUserFromTeam:f});return T().createElement("div",{key:t.id,className:"manage-teams__team"},T().createElement("div",{className:"manage-teams__team-name"},t.display_name),T().createElement("div",{className:"manage-teams__team-actions"},n))})):T().createElement(Na.A,null);let n=null;return e&&(n=T().createElement("div",{className:"manage-teams__system-admin"},T().createElement(N.FormattedMessage,{id:"admin.user_item.sysAdmin",defaultMessage:"System Admin"}))),T().createElement("div",null,T().createElement("div",{className:"manage-teams__user"},T().createElement(vc.A,{username:a.username,url:O.mT.getProfilePictureUrl(a.id,a.last_picture_update),size:"lg"}),T().createElement("div",{className:"manage-teams__info"},T().createElement("div",{className:"manage-teams__name"},s),T().createElement("div",{className:"manage-teams__email"},a.email)),n),T().createElement("div",{className:"manage-teams__teams"},t))})(),n))};gy.propTypes={locale:k().string.isRequired,onExited:k().func.isRequired,actions:k().shape({getTeamMembersForUser:k().func.isRequired,getTeamsForUser:k().func.isRequired,updateTeamMemberSchemeRoles:k().func.isRequired,removeUserFromTeam:k().func.isRequired}).isRequired};const hy=gy,fy=(0,a.connect)((function(e){return{locale:(0,yi.k)(e)}}),(function(e){return{actions:(0,i.zH)({getTeamMembersForUser:o.NX,getTeamsForUser:o.Bk,updateTeamMemberSchemeRoles:o.bd,removeUserFromTeam:o.fy},e)}}))(hy),Ey=e=>T().createElement("button",{type:"button",className:"btn btn-danger",onClick:async t=>{t.preventDefault();const s=await e.actions.revokeUserAccessToken(e.tokenId);"error"in s&&e.onError(s.error.message)}},T().createElement(N.FormattedMessage,{id:"admin.revoke_token_button.delete",defaultMessage:"Delete"}));Ey.propTypes={actions:k().shape({revokeUserAccessToken:k().func.isRequired}).isRequired,tokenId:k().string.isRequired,onError:k().func.isRequired};const by=T().memo(Ey),vy=(0,a.connect)(null,(function(e){return{actions:(0,i.zH)({revokeUserAccessToken:bi.XE},e)}}))(by);function yy(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class My extends T().PureComponent{constructor(e){super(e),yy(this,"handleError",(e=>{this.setState({error:e})})),yy(this,"onModalDismissed",(()=>{this.setState({show:!1})})),yy(this,"renderContents",(()=>{const{user:e,userAccessTokens:t}=this.props;let s,a=Nb.dS(e);if(a?a+=" (@".concat(e.username,")"):a="@".concat(e.username),t){const e=Object.values(t);s=0===e.length?T().createElement("div",{className:"manage-row__empty"},T().createElement(N.FormattedMessage,{id:"admin.manage_tokens.userAccessTokensNone",defaultMessage:"No personal access tokens."})):e.map((e=>T().createElement("div",{key:e.id,className:"manage-teams__team"},T().createElement("div",{className:"manage-teams__team-name"},T().createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},T().createElement(N.FormattedMessage,{id:"admin.manage_tokens.userAccessTokensNameLabel",defaultMessage:"Token Description: "}),e.description),T().createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},T().createElement(N.FormattedMessage,{id:"admin.manage_tokens.userAccessTokensIdLabel",defaultMessage:"Token ID: "}),e.id)),T().createElement("div",{className:"manage-teams__team-actions"},T().createElement(vy,{tokenId:e.id,onError:this.handleError})))))}else s=T().createElement(Na.A,null);return T().createElement("div",null,T().createElement("div",{className:"manage-teams__user"},T().createElement(vc.A,{username:e.username,url:O.mT.getProfilePictureUrl(e.id,e.last_picture_update),size:"lg"}),T().createElement("div",{className:"manage-teams__info"},T().createElement("div",{className:"manage-teams__name"},a),T().createElement("div",{className:"manage-teams__email"},e.email))),T().createElement("div",{className:"pt-3"},T().createElement(N.FormattedMessage,{id:"admin.manage_tokens.userAccessTokensDescription",defaultMessage:"Personal access tokens function similarly to session tokens and can be used by integrations to <linkAuthentication>interact with this Mattermost server</linkAuthentication>. Tokens are disabled if the user is deactivated. Learn more about <linkPersonalAccessTokens>personal access tokens</linkPersonalAccessTokens>.",values:{linkAuthentication:e=>T().createElement(wt.A,{href:"https://api.mattermost.com/#tag/authentication",location:"manage_tokens_modal"},e),linkPersonalAccessTokens:e=>T().createElement(wt.A,{href:mt.i3.PERSONAL_ACCESS_TOKENS,location:"manage_tokens_modal"},e)}})),T().createElement("div",{className:"manage-teams__teams"},s))})),yy(this,"render",(()=>T().createElement(hn.Modal,{show:this.state.show,onHide:this.onModalDismissed,onExited:this.props.onExited,dialogClassName:"a11y__modal manage-teams",role:"none","aria-labelledby":"manageTokensModalLabel"},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,{componentClass:"h1",id:"manageTokensModalLabel"},T().createElement(N.FormattedMessage,{id:"admin.manage_tokens.manageTokensTitle",defaultMessage:"Manage Personal Access Tokens"}))),T().createElement(hn.Modal.Body,null,this.renderContents(),this.state.error)))),this.state={show:!0,error:null}}componentDidMount(){const e=this.props.user?this.props.user.id:null;e&&this.props.actions.getUserAccessTokensForUser(e,0,200)}}yy(My,"propTypes",{onExited:k().func.isRequired,actions:k().shape({getUserAccessTokensForUser:k().func.isRequired}).isRequired});const _y=(0,a.connect)((function(e,t){const s=t.user?t.user.id:"",a=e.entities.admin.userAccessTokensByUser;return{userAccessTokens:void 0===a?void 0:a[s]}}),(function(e){return{actions:(0,i.zH)({getUserAccessTokensForUser:bi.GA},e)}}))(My);function Sy(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Cy(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Sy(Object(s),!0).forEach((function(t){Ay(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Sy(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Ay(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class Ty extends T().PureComponent{constructor(e){super(e),Ay(this,"isEmailValid",(()=>{if(!this.emailRef.current||!this.emailRef.current.value||!(0,lb.xf)(this.emailRef.current.value)){const e=T().createElement(N.FormattedMessage,{id:"user.settings.general.validEmail",defaultMessage:"Please enter a valid email address."});return this.setState({error:e,isEmailError:!0}),!1}return this.setState({error:null,isEmailError:!1}),!0})),Ay(this,"isCurrentPasswordValid",(()=>{if(!this.currentPasswordRef.current||!this.currentPasswordRef.current.value){const e=T().createElement(N.FormattedMessage,{id:"admin.reset_email.missing_current_password",defaultMessage:"Please enter your current password."});return this.setState({error:e,isCurrentPasswordError:!0}),!1}return this.setState({error:null,isCurrentPasswordError:!1}),!0})),Ay(this,"doSubmit",(async e=>{var t;if(e.preventDefault(),!this.props.user)return;if(!this.isEmailValid())return;const s=Cy(Cy({},this.props.user),{},{email:this.emailRef.current.value.trim().toLowerCase()});if((null===(t=this.props.user)||void 0===t?void 0:t.id)===this.props.currentUserId){if(!this.isCurrentPasswordValid())return;s.password=this.currentPasswordRef.current.value}const a=await this.props.actions.patchUser(s);"error"in a?this.setState({error:a.error.message,isEmailError:"app.user.save.email_exists.app_error"===a.error.server_error_id,isCurrentPasswordError:"api.user.check_user_password.invalid.app_error"===a.error.server_error_id}):(this.props.onSuccess(s.email),this.setState({show:!1}))})),Ay(this,"doCancel",(()=>{this.setState({show:!1,error:null})})),this.state={show:!0,error:null,isEmailError:!1,isCurrentPasswordError:!1},this.emailRef=T().createRef(),this.currentPasswordRef=T().createRef()}render(){var e;if(!this.props.user)return T().createElement("div",null);const t="input-group input-group--limit mb-5",s=T().createElement(N.FormattedMessage,{id:"admin.reset_email.titleReset",defaultMessage:"Update Email"});return T().createElement(hn.Modal,{dialogClassName:"a11y__modal",show:this.state.show,onHide:this.doCancel,onExited:this.props.onExited,role:"none","aria-labelledby":"resetEmailModalLabel","data-testid":"resetEmailModal"},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,{componentClass:"h1",id:"resetEmailModalLabel"},s)),T().createElement("form",{role:"form",className:"form-horizontal"},T().createElement(hn.Modal.Body,null,T().createElement("div",{className:"form-group"},T().createElement("div",{className:"col-sm-10"},T().createElement("div",{className:"".concat(t).concat(this.state.isEmailError?" has-error":""),"data-testid":"resetEmailForm"},T().createElement("span",{"data-toggle":"tooltip",title:"New Email",className:"input-group-addon email__group-addon"},T().createElement(N.FormattedMessage,{id:"admin.reset_email.newEmail",defaultMessage:"New Email"})),T().createElement("input",{type:"email",ref:this.emailRef,className:"form-control",maxLength:128,autoFocus:!0})),(null===(e=this.props.user)||void 0===e?void 0:e.id)===this.props.currentUserId&&T().createElement("div",{className:"".concat(t).concat(this.state.isCurrentPasswordError?" has-error":""),"data-testid":"resetEmailForm"},T().createElement("span",{"data-toggle":"tooltip",title:"Current Password",className:"input-group-addon email__group-addon"},T().createElement(N.FormattedMessage,{id:"admin.reset_email.currentPassword",defaultMessage:"Current Password"})),T().createElement("input",{type:"password",ref:this.currentPasswordRef,className:"form-control"})),this.state.error&&T().createElement("div",{className:"has-error"},T().createElement("p",{className:"input__help error"},this.state.error))))),T().createElement(hn.Modal.Footer,null,T().createElement("button",{type:"button",className:"btn btn-tertiary",onClick:this.doCancel},T().createElement(N.FormattedMessage,{id:"admin.reset_email.cancel",defaultMessage:"Cancel"})),T().createElement("button",{onClick:this.doSubmit,type:"submit",className:"btn btn-primary","data-testid":"resetEmailButton"},T().createElement(N.FormattedMessage,{id:"admin.reset_email.reset",defaultMessage:"Reset"})))))}}Ay(Ty,"propTypes",{currentUserId:k().string.isRequired,onSuccess:k().func.isRequired,onExited:k().func.isRequired,actions:k().shape({patchUser:k().func.isRequired}).isRequired});const Ny=(0,a.connect)((function(e){return{currentUserId:(0,ao.WR)(e)}}),(function(e){return{actions:(0,i.zH)({patchUser:bi.WJ},e)}}))(Ty);function wy(e){let{user:t,onSuccess:s,onError:i,onExited:n}=e;const r=(0,a.useDispatch)(),o=T().createElement(N.FormattedMessage,{id:"confirm_reset_failed_attempts_modal.title",defaultMessage:"Reset failed login attempts for {username} and unlock account",values:{username:t.username}}),l=T().createElement(N.FormattedMessage,{id:"confirm_reset_failed_attempts_modal.desc",defaultMessage:"You're about to reset the failed login attempts for {username} and unlock their account. Are you sure you want to continue?",values:{username:t.username}}),d=T().createElement(N.FormattedMessage,{id:"confirm_reset_failed_attempts_modal.create",defaultMessage:"Yes"}),c=T().createElement(N.FormattedMessage,{id:"confirm_reset_failed_attempts_modal.cancel",defaultMessage:"No"});return T().createElement(fv.A,{title:o,message:l,confirmButtonClass:"btn btn-danger",cancelButtonText:c,confirmButtonText:d,onConfirm:async function(){const{error:e}=await r((0,bi.HM)(t.id));e&&i(e),s()},onExited:n})}function Ry(e){let{user:t,onExited:s,onError:i}=e;const n=(0,a.useDispatch)(),r=T().createElement(N.FormattedMessage,{id:"create_group_memberships_modal.title",defaultMessage:"Re-add {username} to teams and channels",values:{username:t.username}}),o=T().createElement(N.FormattedMessage,{id:"create_group_memberships_modal.desc",defaultMessage:"You're about to add or re-add {username} to teams and channels based on their LDAP group membership. You can revert this change at any time.",values:{username:t.username}}),l=T().createElement(N.FormattedMessage,{id:"create_group_memberships_modal.create",defaultMessage:"Yes"}),d=T().createElement(N.FormattedMessage,{id:"create_group_memberships_modal.cancel",defaultMessage:"No"});return T().createElement(fv.A,{title:r,message:o,confirmButtonClass:"btn btn-danger",cancelButtonText:d,confirmButtonText:l,onConfirm:async function(){const{error:e}=await n((0,ec.b4)(t.id));e&&i(e)},onExited:s})}wy.propTypes={onError:k().func.isRequired,onSuccess:k().func.isRequired,onExited:k().func.isRequired},Ry.propTypes={onExited:k().func.isRequired,onError:k().func.isRequired};var Oy=s(74290);function Iy(e){var t,s;let{user:i,onExited:n,onSuccess:r,onError:o}=e;const l=(0,a.useDispatch)(),c=(0,a.useSelector)(d.zj),m=(0,a.useSelector)(Oy.jd),u=null===(t=c.ServiceSettings)||void 0===t?void 0:t.SiteURL,p=T().createElement(N.FormattedMessage,{id:"deactivate_member_modal.title",defaultMessage:"Deactivate {username}",values:{username:i.username}}),g=T().createElement(N.FormattedMessage,{id:"deactivate_member_modal.desc",defaultMessage:"This action deactivates {username}. They will be logged out and not have access to any teams or channels on this system.\\n",values:{username:i.username}});let h;""!==i.auth_service&&i.auth_service!==mt.Ay.EMAIL_SERVICE&&(h=T().createElement("strong",null,T().createElement("br",null),T().createElement("br",null),T().createElement(N.FormattedMessage,{id:"deactivate_member_modal.sso_warning",defaultMessage:"You must also deactivate this user in the SSO provider or they will be reactivated on next login or sync."})));const f=T().createElement(N.FormattedMessage,{id:"deactivate_member_modal.desc.confirm",defaultMessage:"Are you sure you want to deactivate {username}?",values:{username:i.username}});let E;if(null!==(s=c.ServiceSettings)&&void 0!==s&&s.DisableBotsWhenOwnerIsDeactivated)for(const e of Object.values(m))if(e.owner_id===i.id&&0===e.delete_at){E=T().createElement(T().Fragment,null,T().createElement("ul",null,T().createElement("li",null,T().createElement(N.FormattedMessage,{id:"deactivate_member_modal.desc.for_users_with_bot_accounts1",defaultMessage:"This action deactivates {username}",values:{username:i.username}})),T().createElement("li",null,T().createElement(N.FormattedMessage,{id:"deactivate_member_modal.desc.for_users_with_bot_accounts2",defaultMessage:"They will be logged out and not have access to any teams or channels on this system."})),T().createElement("li",null,T().createElement(N.FormattedMessage,{id:"deactivate_member_modal.desc.for_users_with_bot_accounts3",defaultMessage:"Bot accounts they manage will be disabled along with their integrations. To enable them again, go to <linkBots>Integrations > Bot Accounts</linkBots>. <linkDocumentation>Learn more about bot accounts</linkDocumentation>.",values:{siteURL:u,linkBots:e=>T().createElement("a",{href:"".concat(u,"/_redirect/integrations/bots")},e),linkDocumentation:e=>T().createElement(wt.A,{href:"https://mattermost.com/pl/default-bot-accounts",location:"system_users_dropdown"},e)}}))),T().createElement("p",null),T().createElement("p",null));break}const b=T().createElement("div",null,E||g,f,h),v=T().createElement(N.FormattedMessage,{id:"deactivate_member_modal.deactivate",defaultMessage:"Deactivate"});return T().createElement(fv.A,{title:p,message:b,confirmButtonClass:"btn btn-danger",confirmButtonText:v,onConfirm:async function(){const{error:e}=await l((0,bi.tS)(i.id,!1));e?o(e):r()},onExited:n})}function ky(e){let{user:t,onExited:s,onSuccess:i,onError:n}=e;const r=(0,a.useDispatch)(),o=T().createElement(N.FormattedMessage,{id:"demote_to_user_modal.title",defaultMessage:"Demote User {username} to Guest",values:{username:t.username}}),l=T().createElement(N.FormattedMessage,{id:"demote_to_user_modal.desc",defaultMessage:"This action demotes the user {username} to a guest. It will restrict the user's ability to join public channels and interact with users outside of the channels they are currently members of. Are you sure you want to demote user {username} to guest?",values:{username:t.username}}),d=T().createElement(N.FormattedMessage,{id:"demote_to_user_modal.demote",defaultMessage:"Demote"});return T().createElement(fv.A,{title:o,message:l,confirmButtonClass:"btn btn-danger",confirmButtonText:d,onConfirm:async function(){const{error:e}=await r((0,bi.J6)(t.id));e?n(e):i()},onExited:s})}function Py(e){let{user:t,onExited:s,onSuccess:i,onError:n}=e;const r=(0,a.useDispatch)(),o=T().createElement(N.FormattedMessage,{id:"promote_to_user_modal.title",defaultMessage:"Promote guest {username} to member",values:{username:t.username}}),l=T().createElement(N.FormattedMessage,{id:"promote_to_user_modal.desc",defaultMessage:"This action promotes the guest {username} to a member. It will allow the user to join public channels and interact with users outside of the channels they are currently members of. Are you sure you want to promote guest {username} to member?",values:{username:t.username}}),d=T().createElement(N.FormattedMessage,{id:"promote_to_user_modal.promote",defaultMessage:"Promote"});return T().createElement(fv.A,{title:o,message:l,confirmButtonClass:"btn btn-danger",confirmButtonText:d,onConfirm:async function(){const{error:e}=await r((0,bi.dd)(t.id));e?n(e):i()},onExited:s})}function xy(e){let{user:t,currentUser:s,onExited:i,onError:n}=e;const r=(0,a.useDispatch)(),o=T().createElement(N.FormattedMessage,{id:"revoke_user_sessions_modal.title",defaultMessage:"Revoke Sessions for {username}",values:{username:t.username}}),l=T().createElement(N.FormattedMessage,{id:"revoke_user_sessions_modal.desc",defaultMessage:"This action revokes all sessions for {username}. They will be logged out from all devices. Are you sure you want to revoke all sessions for {username}?",values:{username:t.username}}),d=T().createElement(N.FormattedMessage,{id:"revoke_user_sessions_modal.revoke",defaultMessage:"Revoke"});return T().createElement(fv.A,{title:o,message:l,confirmButtonClass:"btn btn-danger",confirmButtonText:d,onConfirm:async function(){const{data:e,error:a}=await r((0,bi.V_)(t.id));e&&t.id===s.id?(0,Dv.BN)():a&&n(a)},onExited:i})}function Dy(e){var t,s,i,n,r,o;let{user:m,currentUser:u,tableId:p,rowIndex:g,onError:f,updateUser:E}=e;const{formatMessage:b}=(0,N.useIntl)(),v=(0,a.useDispatch)(),y=(0,a.useSelector)(d.zj),M="true"===(null===(t=(0,a.useSelector)(c.Ay))||void 0===t?void 0:t.IsLicensed),_=(0,a.useSelector)((e=>(0,C.y4)(e,{permission:l.xB.SYSCONSOLE_WRITE_USERMANAGEMENT_USERS}))),S=(0,a.useSelector)(fC),w="actionMenuButton-".concat(p,"-").concat(g),R="actionMenu-".concat(p,"-").concat(g),O="actionMenuItem-".concat(p,"-").concat(g),I=(0,A.useMemo)((()=>(0,Nb.FV)(u.roles)),[u.roles]),k=!I&&(0,Nb.FV)(m.roles)||!_,P=(0,A.useCallback)((()=>{v((0,Gr.q)({modalId:mt.IQ.MANAGE_ROLES_MODAL,dialogType:dy,dialogProps:{user:m,onSuccess:function(e){E({roles:e})}}}))}),[m,E]),x=(0,A.useCallback)((()=>{v((0,Gr.q)({modalId:mt.IQ.MANAGE_TEAMS_MODAL,dialogType:fy,dialogProps:{user:m}}))}),[m]),D=(0,A.useCallback)((()=>{v((0,Gr.q)({modalId:mt.IQ.CONFIRM_MANAGE_USER_SETTINGS_MODAL,dialogType:bv,dialogProps:{user:m,onConfirm:function(){v((0,Gr.q)({modalId:mt.IQ.USER_SETTINGS,dialogType:vv.default,dialogProps:{adminMode:!0,isContentProductSettings:!0,userID:m.id,focusOriginElement:w}}))},focusOriginElement:w}}))}),[m]),L=(0,A.useCallback)((()=>{v((0,Gr.q)({modalId:mt.IQ.MANAGE_TOKENS_MODAL,dialogType:_y,dialogProps:{user:m}}))}),[m.id]),F=(0,A.useCallback)((()=>{v((0,Gr.q)({modalId:mt.IQ.RESET_PASSWORD_MODAL,dialogType:ev,dialogProps:{user:m}}))}),[m]),U=(0,A.useCallback)((async()=>{await(0,h.pT)(m.id,null,f).then((()=>{E({mfa_active:!1})}));try{await(0,h.pT)(m.id,null,f),E({mfa_active:!1})}catch(e){f(e)}}),[m.id,E,f]),B=(0,A.useCallback)((()=>{v((0,Gr.q)({modalId:mt.IQ.RESET_PASSWORD_MODAL,dialogType:ev,dialogProps:{user:m,onSuccess:function(){E({auth_service:void 0})}}}))}),[m,E]),j=(0,A.useCallback)((()=>{v((0,Gr.q)({modalId:mt.IQ.RESET_EMAIL_MODAL,dialogType:Ny,dialogProps:{user:m,onSuccess:function(e){E({email:e})}}}))}),[m,E]),H=(0,A.useCallback)((()=>{v((0,Gr.q)({modalId:mt.IQ.PROMOTE_TO_MEMBER_MODAL,dialogType:Py,dialogProps:{user:m,onError:f,onSuccess:function(){E({roles:m.roles.replace(bp.A.SYSTEM_GUEST_ROLE,"")})}}}))}),[m,E,f]),G=(0,A.useCallback)((()=>{v((0,Gr.q)({modalId:mt.IQ.DEMOTE_TO_GUEST_MODAL,dialogType:ky,dialogProps:{user:m,onError:f,onSuccess:function(){E({roles:"".concat(m.roles," ").concat(bp.A.SYSTEM_GUEST_ROLE)})}}}))}),[m,E,f]),q=(0,A.useCallback)((()=>{v((0,Gr.q)({modalId:mt.IQ.REVOKE_SESSIONS_MODAL,dialogType:xy,dialogProps:{user:m,currentUser:u,onError:f}}))}),[m,u.id,f]),V=(0,A.useCallback)((()=>{v((0,Gr.q)({modalId:mt.IQ.CREATE_GROUP_SYNCABLES_MEMBERSHIP_MODAL,dialogType:Ry,dialogProps:{user:m,onError:f}}))}),[m,f]),z=(0,A.useCallback)((async()=>{if(m.auth_service===mt.Ay.LDAP_SERVICE)return;const{error:e}=await v((0,bi.tS)(m.id,!0));e?f(e):E({delete_at:0})}),[m.id,m.auth_service,E,f]),W=(0,A.useCallback)((()=>{m.auth_service!==mt.Ay.LDAP_SERVICE&&v((0,Gr.q)({modalId:mt.IQ.DEACTIVATE_MEMBER_MODAL,dialogType:Iy,dialogProps:{user:m,onError:f,onSuccess:function(){E({delete_at:(new Date).getMilliseconds()})}}}))}),[m,E,f]),Y=(0,A.useCallback)((()=>{v((0,Gr.q)({modalId:mt.IQ.CONFIRM_RESET_FAILED_ATTEMPTS_MODAL,dialogType:wy,dialogProps:{user:m,onError:f,onSuccess:function(){E({failed_attempts:0})}}}))}),[m,E,f]),Z=m.auth_service===mt.Ay.LDAP_SERVICE,J=e=>e?{trailingElements:b({id:"admin.system_users.list.actions.menu.managedByLdap",defaultMessage:"Managed by LDAP"})}:{},K=(0,A.useCallback)((()=>void 0!==m.failed_attempts&&(m.auth_service===mt.Ay.LDAP_SERVICE||""===m.auth_service)),[m]);return T().createElement(Di.mc,{menuButton:{id:w,class:oe()("btn btn-quaternary btn-sm",{disabled:k}),disabled:k,children:T().createElement(T().Fragment,null,(Q=m.roles,m.delete_at>0?T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.deactivated",defaultMessage:"Deactivated"}):m.roles.length>0&&(0,Nb.FV)(Q)?T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.userAdmin",defaultMessage:"System Admin"}):(0,Nb.P)(Q)?T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.userGuest",defaultMessage:"Guest"}):T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.userMember",defaultMessage:"Member"})),!k&&T().createElement("i",{"aria-hidden":"true",className:"icon icon-chevron-down"}))},menu:{id:R,"aria-label":b({id:"admin.system_users.list.actions.menu.dropdownAriaLabel",defaultMessage:"User actions menu"})}},m.delete_at>0&&T().createElement(Di.q7,Object.assign({id:"".concat(O,"-active"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.activate",defaultMessage:"Activate"}),disabled:Z},J(Z),{onClick:z})),I&&T().createElement(Di.q7,{id:"".concat(O,"-manageRoles"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.manageRoles",defaultMessage:"Manage roles"}),onClick:P}),T().createElement(Di.q7,{id:"".concat(O,"-manageTeams"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.manageTeams",defaultMessage:"Manage teams"}),onClick:x}),S&&T().createElement(Di.q7,{id:"".concat(O,"-manageTeams"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.manageSettings",defaultMessage:"Manage user settings"}),onClick:D}),(null===(s=y.ServiceSettings)||void 0===s?void 0:s.EnableUserAccessTokens)&&T().createElement(Di.q7,{id:"".concat(O,"-manageTokens"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.manageTokens",defaultMessage:"Manage tokens"}),onClick:L}),!m.auth_service&&T().createElement(Di.q7,{id:"".concat(O,"-resetPassword"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.resetPassword",defaultMessage:"Reset password"}),onClick:F}),K()&&T().createElement(Di.q7,{id:"".concat(O,"-resetAttempts"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.resetAttempts",defaultMessage:"Reset login attempts"}),onClick:Y}),m.mfa_active&&(null===(i=y.ServiceSettings)||void 0===i?void 0:i.EnableMultifactorAuthentication)&&T().createElement(Di.q7,{id:"".concat(O,"-removeMFA"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.removeMFA",defaultMessage:"Remove MFA"}),onClick:U}),Boolean(m.auth_service)&&(null===(n=y.ServiceSettings)||void 0===n?void 0:n.ExperimentalEnableAuthenticationTransfer)&&T().createElement(Di.q7,{id:"".concat(O,"-switchToEmailPassword"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.switchToEmailPassword",defaultMessage:"Switch to Email/Password"}),onClick:B}),!m.auth_service&&T().createElement(Di.q7,{id:"".concat(O,"-updateEmail"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.updateEmail",defaultMessage:"Update email"}),onClick:j}),(0,Nb.P)(m.roles)&&T().createElement(Di.q7,{id:"".concat(O,"-promoteToMember"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.promoteToMember",defaultMessage:"Promote to member"}),onClick:H}),!(0,Nb.P)(m.roles)&&m.id!==u.id&&M&&(null===(r=y.GuestAccountsSettings)||void 0===r?void 0:r.Enable)&&T().createElement(Di.q7,{id:"".concat(O,"-demoteToGuest"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.demoteToGuest",defaultMessage:"Demote to guest"}),onClick:G}),T().createElement(Lv.A,{permissions:[l.xB.REVOKE_USER_ACCESS_TOKEN]},!m.delete_at&&T().createElement(Di.q7,{id:"".concat(O,"-removeSessions"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.removeSessions",defaultMessage:"Remove sessions"}),onClick:q})),T().createElement(Lv.A,{permissions:[l.xB.SYSCONSOLE_WRITE_USERMANAGEMENT_GROUPS]},(m.auth_service===mt.Ay.LDAP_SERVICE||m.auth_service===mt.Ay.SAML_SERVICE&&(null===(o=y.SamlSettings)||void 0===o?void 0:o.EnableSyncWithLdap))&&T().createElement(Di.q7,{id:"".concat(O,"-resyncUserViaLdapGroups"),labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.resyncUserViaLdapGroups",defaultMessage:"Re-sync user via LDAP groups"}),onClick:V})),0===m.delete_at&&T().createElement(Di.q7,Object.assign({id:"".concat(O,"-deactivate"),isDestructive:!0,labels:T().createElement(N.FormattedMessage,{id:"admin.system_users.list.actions.menu.deactivate",defaultMessage:"Deactivate"}),onClick:W,disabled:Z},J(Z))));var Q}function Ly(e){const{formatMessage:t}=(0,N.useIntl)(),s=(0,a.useDispatch)(),i=(0,A.useRef)(),[n,r]=(0,A.useState)(e.searchTerm);return T().createElement("div",{className:"system-users__filter"},T().createElement(Vo.A,{type:"text",clearable:!0,name:"searchTerm",containerClassName:"systemUsersSearch",placeholder:t({id:"admin.system_users.search.placeholder",defaultMessage:"Search users"}),inputPrefix:T().createElement("i",{className:"icon icon-magnify"}),onChange:function(e){const{target:{value:t}}=e;r(t),clearTimeout(i.current),i.current=setTimeout((()=>{s((0,f.p$)({searchTerm:t}))}),500)},onClear:function(){r(""),s((0,f.p$)({searchTerm:""}))},value:n}))}function Fy(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Uy(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Fy(Object(s),!0).forEach((function(t){By(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Fy(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function By(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}Iy.propTypes={onExited:k().func.isRequired,onSuccess:k().func.isRequired,onError:k().func.isRequired},ky.propTypes={onExited:k().func.isRequired,onSuccess:k().func.isRequired,onError:k().func.isRequired},Py.propTypes={onSuccess:k().func.isRequired,onExited:k().func.isRequired,onError:k().func.isRequired},xy.propTypes={onExited:k().func.isRequired,onError:k().func.isRequired},Dy.propTypes={tableId:k().string,rowIndex:k().number.isRequired,onError:k().func.isRequired,updateUser:k().func.isRequired};const jy=(0,N.defineMessages)({title:{id:"admin.system_users.title",defaultMessage:"{siteName} Users"}}),Hy=[[jy.title,{siteName:""}]];function Gy(e){var t,s,a,i,n,r,o,l,d,m,u,p,g,h;const f=(0,c.zj)(e),E=f.SiteName,b="true"===f.EnableMultifactorAuthentication,v="true"===f.EnableUserAccessTokens,y="true"===f.ExperimentalEnableAuthenticationTransfer,M=(0,ao.HW)(e),_=(0,Ke.QH)(e);return{siteName:E,mfaEnabled:b,enableUserAccessTokens:v,experimentalEnableAuthenticationTransfer:y,currentUser:M,tablePropertySortColumn:null!==(t=null==_?void 0:_.sortColumn)&&void 0!==t?t:kv.hR.sortColumn,tablePropertySortIsDescending:null!==(s=null==_?void 0:_.sortIsDescending)&&void 0!==s?s:kv.hR.sortIsDescending,tablePropertyPageSize:null!==(a=null==_?void 0:_.pageSize)&&void 0!==a?a:kv.hR.pageSize,tablePropertyPageIndex:null!==(i=null==_?void 0:_.pageIndex)&&void 0!==i?i:kv.hR.pageIndex,tablePropertyCursorDirection:null!==(n=null==_?void 0:_.cursorDirection)&&void 0!==n?n:kv.hR.cursorDirection,tablePropertyCursorUserId:null!==(r=null==_?void 0:_.cursorUserId)&&void 0!==r?r:kv.hR.cursorUserId,tablePropertyCursorColumnValue:null!==(o=null==_?void 0:_.cursorColumnValue)&&void 0!==o?o:kv.hR.cursorColumnValue,tablePropertyColumnVisibility:null!==(l=null==_?void 0:_.columnVisibility)&&void 0!==l?l:kv.hR.columnVisibility,tablePropertySearchTerm:null!==(d=null==_?void 0:_.searchTerm)&&void 0!==d?d:kv.hR.searchTerm,tablePropertyFilterTeam:null!==(m=null==_?void 0:_.filterTeam)&&void 0!==m?m:Pv.rw.AllTeams,tablePropertyFilterTeamLabel:null!==(u=null==_?void 0:_.filterTeamLabel)&&void 0!==u?u:"",tablePropertyFilterRole:null!==(p=null==_?void 0:_.filterRole)&&void 0!==p?p:Pv.Oq.Any,tablePropertyFilterStatus:null!==(g=null==_?void 0:_.filterStatus)&&void 0!==g?g:Pv.Bq.Any,tablePropertyDateRange:null!==(h=null==_?void 0:_.dateRange)&&void 0!==h?h:Iv.p9.AllTime}}const qy={getUserReports:f.N5,getUserCountForReporting:f.Qp,savePreferences:Ga.SF,setAdminConsoleUsersManagementTableProperties:f.p$},Vy=((0,a.connect)(Gy,qy),(0,a.connect)(Gy,qy)((function(e){var t,s,a,i;const{formatMessage:n}=(0,N.useIntl)(),r=(0,w.useHistory)(),[o,l]=(0,A.useState)([]),[d,c]=(0,A.useState)(),[m,u]=(0,A.useState)(mf.PF.Loading);function p(e,t){l(o.map((s=>s.id===e?Uy(Uy({},s),{},{error:void 0},t):s)))}(0,A.useEffect)((()=>{(async t=>{const{data:s}=await e.getUserCountForReporting((0,Yv.e2)(t));c(s)})({pageSize:e.tablePropertyPageSize,sortColumn:e.tablePropertySortColumn,sortIsDescending:e.tablePropertySortIsDescending,fromColumnValue:e.tablePropertyCursorColumnValue,fromId:e.tablePropertyCursorUserId,direction:e.tablePropertyCursorDirection,searchTerm:e.tablePropertySearchTerm,filterTeam:e.tablePropertyFilterTeam,filterRole:e.tablePropertyFilterRole,filterStatus:e.tablePropertyFilterStatus})}),[e.tablePropertyPageSize,e.tablePropertySortColumn,e.tablePropertySortIsDescending,e.tablePropertyCursorDirection,e.tablePropertyCursorColumnValue,e.tablePropertyCursorUserId,e.tablePropertySearchTerm,e.tablePropertyFilterTeam,e.tablePropertyFilterRole,e.tablePropertyFilterStatus]),(0,A.useEffect)((()=>{!async function(t){u(mf.PF.Loading);const{data:s}=await e.getUserReports((0,Yv.e2)(t));s?(s.length>0?l(s):l([]),u(mf.PF.Loaded)):u(mf.PF.Failed)}({pageSize:e.tablePropertyPageSize,sortColumn:e.tablePropertySortColumn,sortIsDescending:e.tablePropertySortIsDescending,fromColumnValue:e.tablePropertyCursorColumnValue,fromId:e.tablePropertyCursorUserId,direction:e.tablePropertyCursorDirection,searchTerm:e.tablePropertySearchTerm,filterTeam:e.tablePropertyFilterTeam,filterRole:e.tablePropertyFilterRole,filterStatus:e.tablePropertyFilterStatus,dateRange:e.tablePropertyDateRange})}),[e.tablePropertyPageSize,e.tablePropertySortColumn,e.tablePropertySortIsDescending,e.tablePropertyCursorDirection,e.tablePropertyCursorColumnValue,e.tablePropertyCursorUserId,e.tablePropertySearchTerm,e.tablePropertyFilterRole,e.tablePropertyFilterTeam,e.tablePropertyFilterStatus,e.tablePropertyDateRange]);const g=(0,A.useMemo)((()=>[{id:Pv.nl.username,accessorKey:"username",header:n({id:"admin.system_users.list.userDetails",defaultMessage:"User details"}),cell:e=>{var t,s;const a=Boolean(null===(t=e.row.original)||void 0===t||null===(s=t.remote_id)||void 0===s?void 0:s.length);return T().createElement("div",null,T().createElement("div",{className:"profilePictureContainer"},T().createElement("img",{className:"profilePicture",src:(0,D.RG)(e.row.original.id),"aria-hidden":"true"})),T().createElement("div",{className:"displayName",title:(0,D.Mn)(e.row.original)},(0,D.Mn)(e.row.original)||"",a&&T().createElement(xv.A,{title:n({id:"admin.system_users.list.userIsRemote",defaultMessage:"Remote user"}),ariaLabel:n({id:"admin.system_users.list.userIsRemoteAriaLabel",defaultMessage:"This is a remote user"}),role:"img",className:"icon-12",withTooltip:!0})),T().createElement("div",{className:"userName",title:e.row.original.username},e.row.original.username),e.row.original.error&&T().createElement("div",{className:"error",title:e.row.original.error.message},e.row.original.error.message))},enableHiding:!1,enablePinning:!0,enableSorting:!0},{id:Pv.nl.email,accessorKey:"email",header:n({id:"admin.system_users.list.email",defaultMessage:"Email"}),cell:e=>e.getValue()||"",enableHiding:!0,enablePinning:!1,enableSorting:!0},{id:Pv.nl.createAt,accessorKey:"create_at",header:n({id:"admin.system_users.list.memberSince",defaultMessage:"Member since"}),cell:e=>T().createElement(mf.HS,{date:e.getValue()}),enableHiding:!0,enablePinning:!1,enableSorting:!0},{id:Pv.nl.lastLoginAt,accessorKey:"last_login_at",header:n({id:"admin.system_users.list.lastLoginAt",defaultMessage:"Last login"}),cell:e=>T().createElement(mf.HS,{date:e.getValue()}),enableHiding:!0,enablePinning:!1,enableSorting:!1},{id:Pv.nl.lastStatusAt,accessorKey:"last_status_at",header:n({id:"admin.system_users.list.lastActivity",defaultMessage:"Last activity"}),cell:e=>T().createElement(mf.HS,{date:e.getValue()}),enableHiding:!0,enablePinning:!1,enableSorting:!1},{id:Pv.nl.lastPostDate,accessorKey:"last_post_date",header:n({id:"admin.system_users.list.lastPost",defaultMessage:"Last post"}),cell:e=>T().createElement(mf.HS,{date:e.getValue()}),enableHiding:!0,enablePinning:!1,enableSorting:!1},{id:Pv.nl.daysActive,accessorKey:"days_active",header:n({id:"admin.system_users.list.daysActive",defaultMessage:"Days active"}),cell:e=>e.getValue()||null,meta:{isNumeric:!0},enableHiding:!0,enablePinning:!1,enableSorting:!1},{id:Pv.nl.totalPosts,accessorKey:"total_posts",header:n({id:"admin.system_users.list.totalPosts",defaultMessage:"Messages posted"}),cell:e=>e.getValue()||null,meta:{isNumeric:!0},enableHiding:!0,enablePinning:!1,enableSorting:!1},{id:Pv.nl.actions,accessorKey:"actions",header:n({id:"admin.system_users.list.actions",defaultMessage:"Actions"}),cell:t=>{var s,a;return null!==(s=t.row.original)&&void 0!==s&&null!==(a=s.remote_id)&&void 0!==a&&a.length?T().createElement(T().Fragment,null):T().createElement(Dy,{rowIndex:t.cell.row.index,tableId:"systemUsersTable",user:t.row.original,currentUser:e.currentUser,updateUser:e=>p(t.row.original.id,e),onError:e=>p(t.row.original.id,{error:e})})},enableHiding:!1,enablePinning:!0,enableSorting:!1}]),[e.currentUser,o]),h=[{id:e&&e.tablePropertySortColumn&&e.tablePropertySortColumn.length>0?e.tablePropertySortColumn:Pv.nl.username,desc:null!==(t=null==e?void 0:e.tablePropertySortIsDescending)&&void 0!==t&&t}],f={pageIndex:null!==(s=null==e?void 0:e.tablePropertyPageIndex)&&void 0!==s?s:0,pageSize:(null==e?void 0:e.tablePropertyPageSize)||mf.tn[0]},E=Uy({},e.tablePropertyColumnVisibility),b=(0,df.N4)({data:o,columns:g,state:{sorting:h,pagination:f,columnVisibility:E},meta:{tableId:"systemUsersTable",tableCaption:n({id:"admin.system_users.list.caption",defaultMessage:"System Users"}),loadingState:m,disablePrevPage:!e.tablePropertyCursorUserId||e.tablePropertyPageIndex<=0||"prev"===e.tablePropertyCursorDirection&&o.length<f.pageSize,disableNextPage:"next"===e.tablePropertyCursorDirection&&o.length<f.pageSize,onRowClick:function(e){var t;0!==e.length&&((null===(t=o.find((t=>t.id===e)))||void 0===t?void 0:t.remote_id)||r.push("/admin_console/user_management/user/".concat(e)))},onPreviousPageClick:function(){o.length&&e.setAdminConsoleUsersManagementTableProperties({pageIndex:e.tablePropertyPageIndex-1,cursorDirection:Iv.gX.prev,cursorUserId:o[0].id,cursorColumnValue:(0,Yv.Tx)(o[0],e.tablePropertySortColumn)})},onNextPageClick:function(){o.length&&e.setAdminConsoleUsersManagementTableProperties({pageIndex:e.tablePropertyPageIndex+1,cursorDirection:Iv.gX.next,cursorUserId:o[o.length-1].id,cursorColumnValue:(0,Yv.Tx)(o[o.length-1],e.tablePropertySortColumn)})},paginationInfo:(0,Yv.XE)(f.pageIndex,f.pageSize,o.length,d),hasDualSidedPagination:!0},getCoreRowModel:(0,lf.HT)(),getSortedRowModel:(0,lf.h5)(),onPaginationChange:function(t){const s=t({pageIndex:0,pageSize:e.tablePropertyPageSize});e.setAdminConsoleUsersManagementTableProperties({pageIndex:0,cursorDirection:void 0,cursorUserId:void 0,cursorColumnValue:void 0,pageSize:s.pageSize})},onSortingChange:function(t){const s=[{id:e.tablePropertySortColumn,desc:e.tablePropertySortIsDescending}],[a]=t(s);e.tablePropertySortColumn!==a.id&&(a.desc=!1),e.setAdminConsoleUsersManagementTableProperties({pageIndex:0,cursorDirection:void 0,cursorUserId:void 0,cursorColumnValue:void 0,sortColumn:a.id,sortIsDescending:a.desc})},onColumnVisibilityChange:function(t){const s=t(e.tablePropertyColumnVisibility);e.setAdminConsoleUsersManagementTableProperties({columnVisibility:Object.assign({},e.tablePropertyColumnVisibility,s)})},manualSorting:!0,enableSortingRemoval:!1,enableMultiSort:!1,manualFiltering:!0,manualPagination:!0,renderFallbackValue:""});return T().createElement("div",{className:"wrapper--fixed","data-testid":"systemUsersSection"},T().createElement(nt,null,T().createElement(N.FormattedMessage,Object.assign({},jy.title,{values:{siteName:e.siteName}}),(e=>T().createElement("span",{id:"systemUsersTable-headerId"},e))),T().createElement(Fv,null)),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__container ignore-marking"},T().createElement("div",{className:"admin-console__filters-rows"},T().createElement(Ly,{searchTerm:e.tablePropertySearchTerm}),T().createElement(ny,{filterTeam:e.tablePropertyFilterTeam,filterTeamLabel:e.tablePropertyFilterTeamLabel,filterRole:e.tablePropertyFilterRole,filterStatus:e.tablePropertyFilterStatus}),T().createElement(Uv,{allColumns:b.getAllLeafColumns(),visibleColumnsLength:null!==(a=null===(i=b.getVisibleLeafColumns())||void 0===i?void 0:i.length)&&void 0!==a?a:0}),T().createElement(qv,{dateRange:e.tablePropertyDateRange}),T().createElement(Zv,{currentUserId:e.currentUser.id,usersLenght:o.length})),T().createElement(mf.z4,{table:b}))))})));function zy(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Wy=10;class Yy extends T().PureComponent{constructor(e){super(e),zy(this,"previousPage",(async e=>{e.preventDefault();const t=this.state.page<1?0:this.state.page-1;this.setState({page:t,loading:!0}),this.performSearch(t)})),zy(this,"nextPage",(async e=>{e.preventDefault();const t=this.state.page+1;this.setState({page:t,loading:!0}),this.performSearch(t)})),zy(this,"renderHeader",(()=>this.props.data.length>0?this.props.header:null)),zy(this,"renderRows",(()=>{if(this.state.loading)return T().createElement("div",{className:"groups-list-loading"},T().createElement("i",{className:"fa fa-spinner fa-pulse fa-2x"}));if(0===this.props.data.length)return T().createElement("div",{className:"groups-list-empty"},T().createElement(N.FormattedMessage,this.props.emptyListText));const e=this.state.page*Wy;return this.props.data.slice(e,e+Wy).map(this.props.renderRow)})),zy(this,"performSearch",(e=>{this.setState({loading:!0}),this.props.actions.getData(e,Wy,"",!1,!0).then((e=>{this.props.onPageChangedCallback&&this.props.onPageChangedCallback(this.getPaging(),e),this.setState({loading:!1})}))})),zy(this,"render",(()=>{const{startCount:e,endCount:t,total:s}=this.getPaging(),{noPadding:a}=this.props,i=t===s,n=0===this.state.page;return T().createElement("div",{className:oe()("groups-list","groups-list-no-padding",{"groups-list-less-padding":a})},this.renderHeader(),T().createElement("div",{id:"groups-list--body",className:"groups-list--body"},this.renderRows()),s>0&&T().createElement("div",{className:"groups-list--footer"},T().createElement("div",{className:"counter"},T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.list.paginatorCount",defaultMessage:"{startCount, number} - {endCount, number} of {total, number}",values:{startCount:e,endCount:t,total:s}})),T().createElement("button",{type:"button",className:"btn btn-tertiary prev "+(n?"disabled":""),onClick:n?void 0:this.previousPage,disabled:n},T().createElement(de.A,null)),T().createElement("button",{type:"button",className:"btn btn-tertiary next "+(i?"disabled":""),onClick:i?void 0:this.nextPage,disabled:i,"data-testid":"page-link-next"},T().createElement(le.A,null))))})),this.state={loading:!0,page:0}}componentDidMount(){this.performSearch(this.state.page)}getPaging(){const e=this.state.page*Wy+1;let t=this.state.page*Wy+Wy;const s=this.props.total;return t>s&&(t=s),{startCount:e,endCount:t,total:s}}}zy(Yy,"defaultProps",{data:[],noPadding:!1});var Zy=s(59050);function Jy(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Ky(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Jy(Object(s),!0).forEach((function(t){Qy(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Jy(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function Qy(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const Xy=(0,N.defineMessages)({group:{id:"admin.channel_settings.channel_row.managementMethod.group",defaultMessage:"Group Sync"},manual:{id:"admin.channel_settings.channel_row.managementMethod.manual",defaultMessage:"Manual Invites"},attribute_based:{id:"admin.channel_settings.channel_row.managementMethod.attribute_based",defaultMessage:"Attribute Based"}});class $y extends T().PureComponent{constructor(e){var t;super(e),t=this,Qy(this,"isSearching",((e,t)=>e.length>0||Object.keys(t).length>0)),Qy(this,"getPaginationProps",(()=>{const{page:e,term:t,filters:s}=this.state,a=this.isSearching(t,s)?this.state.total:this.props.total;let i=(e+1)*Wy;return i=i>a?a:i,{startCount:e*Wy+1,endCount:i,total:a}})),Qy(this,"loadPage",(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.setState({loading:!0,term:s,filters:a}),t.isSearching(s,a)?e>0?t.searchChannels(e,s,a):t.searchChannelsDebounced(e,s,a):(await t.props.actions.getData(e,Wy,"",!1,!0,!1,!1),t.setState({page:e,loading:!1}))})),Qy(this,"searchChannels",(async function(){var e;let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=[],r=0,o=!0;const l=await t.props.actions.searchAllChannels(a,Ky(Ky({},i),{},{page:s,per_page:Wy,include_deleted:null===(e=i.deleted)||void 0===e||e,include_search_by_id:!0}));null!=l&&l.data&&(n=s>0?t.state.channels.concat(l.data.channels):l.data.channels,r=l.data.total_count,o=!1),t.setState({page:s,loading:!1,channels:n,total:r,searchErrored:o})})),Qy(this,"searchChannelsDebounced",(0,Zn.sg)((function(e,s){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.searchChannels(e,s,a)}),300,!1,(()=>{}))),Qy(this,"nextPage",(()=>{this.loadPage(this.state.page+1,this.state.term,this.state.filters)})),Qy(this,"previousPage",(()=>{this.setState({page:this.state.page-1})})),Qy(this,"onSearch",(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";t.loadPage(0,e,t.state.filters)})),Qy(this,"getColumns",(()=>[{name:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_list.nameHeader",defaultMessage:"Name"}),field:"name",width:4,fixed:!0},{name:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_list.teamHeader",defaultMessage:"Team"}),field:"team",width:1.5,fixed:!0},{name:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_list.managementHeader",defaultMessage:"Management"}),field:"management",fixed:!0},{name:"",field:"edit",textAlign:"right",fixed:!0}])),Qy(this,"getRows",(()=>{const{data:e}=this.props,{channels:t,term:s,filters:a}=this.state,{startCount:i,endCount:n}=this.getPaginationProps();let r=this.isSearching(s,a)?t:e;return r=r.slice(i-1,n),r.map((e=>{let t=T().createElement(Fn.A,{className:"channel-icon"});e.type===mt.YM.PRIVATE_CHANNEL&&(t=T().createElement(Un.A,{className:"channel-icon"})),(0,Wi.Oj)(e)&&(t=T().createElement(Ln.A,{className:"channel-icon","data-testid":"".concat(e.name,"-archive-icon")}));const s=e.shared?T().createElement(Zy.A,{className:"channel-icon",withTooltip:!0}):null;return{cells:{id:e.id,name:T().createElement("span",{className:"group-name overflow--ellipsis row-content","data-testid":"channel-display-name"},t,T().createElement("span",{className:"TeamList_channelDisplayName"},e.display_name),s),team:T().createElement("span",{className:"group-description row-content"},e.team_display_name),management:T().createElement("span",{className:"group-description adjusted row-content"},T().createElement("span",{className:"group-indicator channel-indicator channel-indicator--larger"},e.policy_enforced?T().createElement(N.FormattedMessage,Xy.attribute_based):e.group_constrained?T().createElement(N.FormattedMessage,Xy.group):T().createElement(N.FormattedMessage,Xy.manual))),edit:T().createElement("span",{className:"group-actions TeamList_editRow","data-testid":"".concat(e.name,"edit")},T().createElement(w.Link,{to:"/admin_console/user_management/channels/".concat(e.id)},T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_row.configure",defaultMessage:"Edit"})))},onClick:()=>(0,Li.J)().push("/admin_console/user_management/channels/".concat(e.id))}}))})),Qy(this,"onFilter",(e=>{const t={},{group_constrained:s,exclude_group_constrained:a,access_control_policy_enforced:i}=e.management.values,{public:n,private:r,deleted:o}=e.channels.values,{team_ids:l}=e.teams.values;(n.value||r.value||o.value||s.value||a.value||l.value.length||i.value)&&(t.public=n.value,t.private=r.value,t.deleted=o.value,t.access_control_policy_enforced=i.value,s.value&&a.value||(t.group_constrained=s.value,t.exclude_group_constrained=a.value),t.team_ids=l.value),this.loadPage(0,this.state.term,t)})),Qy(this,"render",(()=>{const{term:e,searchErrored:t}=this.state,s=this.getRows(),a=this.getColumns(),{startCount:i,endCount:n,total:r}=this.getPaginationProps();let o=T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_list.no_channels_found",defaultMessage:"No channels found"});t&&(o=T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_list.search_channels_errored",defaultMessage:"Something went wrong. Try again"}));const l={minHeight:"".concat(40*s.length,"px")},d={options:{teams:{name:"Teams",values:{team_ids:{name:T().createElement(N.FormattedMessage,{id:"admin.team_settings.title",defaultMessage:"Teams"}),value:[]}},keys:["team_ids"],type:Dn},management:{name:"Management",values:{group_constrained:{name:T().createElement(N.FormattedMessage,{id:"admin.channel_list.group_sync",defaultMessage:"Group Sync"}),value:!1},exclude_group_constrained:{name:T().createElement(N.FormattedMessage,{id:"admin.channel_list.manual_invites",defaultMessage:"Manual Invites"}),value:!1},access_control_policy_enforced:{name:T().createElement(N.FormattedMessage,{id:"admin.channel_list.attributed_based",defaultMessage:"Attribute Based"}),value:!1}},keys:["group_constrained","exclude_group_constrained","access_control_policy_enforced"]},channels:{name:"Channels",values:{public:{name:T().createElement(N.FormattedMessage,{id:"admin.channel_list.public",defaultMessage:"Public"}),value:!1},private:{name:T().createElement(N.FormattedMessage,{id:"admin.channel_list.private",defaultMessage:"Private"}),value:!1},deleted:{name:T().createElement(N.FormattedMessage,{id:"admin.channel_list.archived",defaultMessage:"Archived"}),value:!1}},keys:["public","private","deleted"]}},keys:["teams","channels","management"],onFilter:this.onFilter};return T().createElement("div",{className:"ChannelsList"},T().createElement(xe,{columns:a,rows:s,loading:this.state.loading,page:this.state.page,nextPage:this.nextPage,previousPage:this.previousPage,startCount:i,endCount:n,total:r,onSearch:this.onSearch,term:e,placeholderEmpty:o,rowsContainerStyles:l,filterProps:d}))})),this.state={loading:!1,term:"",channels:[],page:0,total:0,searchErrored:!1,filters:{}}}componentDidMount(){this.loadPage()}}Qy($y,"propTypes",{actions:k().shape({searchAllChannels:k().func.isRequired,getData:k().func.isRequired}).isRequired,data:k().array.isRequired,total:k().number.isRequired});const eM=(e,t)=>e.display_name.localeCompare(t.display_name),tM=(0,S.Mz)("getSortedListOfChannels",Hi.ou,(e=>Object.values(e).filter((e=>e.type===mt.YM.OPEN_CHANNEL||e.type===mt.YM.PRIVATE_CHANNEL)).sort(eM))),sM=(0,a.connect)((function(e){return{data:tM(e),total:e.entities.channels.totalCount}}),(function(e){return{actions:(0,i.zH)({getData:ji.n$,searchAllChannels:ji.Q1},e)}}))($y),aM=e=>{let{siteName:t}=e;return T().createElement("div",{className:"wrapper--fixed"},T().createElement(nt,null,T().createElement(N.FormattedMessage,{id:"admin.channel_settings.groupsPageTitle",defaultMessage:"{siteName} Channels",values:{siteName:t}})),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement(dc,{id:"channels",title:(0,N.defineMessage)({id:"admin.channel_settings.title",defaultMessage:"Channels"}),subtitle:(0,N.defineMessage)({id:"admin.channel_settings.description",defaultMessage:"Manage channel settings."}),subtitleValues:{startCount:0,endCount:1,total:0}},T().createElement(sM,null)))))};aM.propTypes={siteName:k().string};const iM=(0,a.connect)((function(e){return{siteName:(0,c.zj)(e).SiteName}}))(aM);function nM(e){const{show:t,onHide:s,onPolicySelected:a,actions:i}=e;return T().createElement(Bi.zW,{id:"PolicySelectionModal",compassDesign:!0,show:t,onHide:s,backdrop:"static",modalHeaderText:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_detail.select_policy_title",defaultMessage:"Select an Access Control Policy"}),modalSubheaderText:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_detail.select_policy_description",defaultMessage:"An access control policy will restrict channel membership based on user attributes."})},T().createElement(Fi,{simpleMode:!0,onPolicySelected:a,actions:{searchPolicies:i.searchPolicies,deletePolicy:()=>Promise.resolve({data:{}})}}))}nM.propTypes={show:k().bool.isRequired,onHide:k().func.isRequired,onPolicySelected:k().func.isRequired,actions:k().shape({searchPolicies:k().func.isRequired}).isRequired};const rM=e=>{const{parentPolicies:t,actions:s}=e,[a,i]=(0,A.useState)(!1),n=(0,N.useIntl)();return 0===t.length?T().createElement(ng,{id:"channel_access_control_policy",title:(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.access_control_policy_title",defaultMessage:"Access policy"}),subtitle:(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.access_control_policy_description",defaultMessage:"Select an access policy for this channel to restrict membership."}),buttonText:(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.link_policy",defaultMessage:"Link to a policy"}),onButtonClick:()=>{i(!0)}},T().createElement(nM,{show:a,onHide:()=>{i(!1)},onPolicySelected:e=>{s.onPolicySelected&&e&&s.onPolicySelected(e),i(!1)},actions:{searchPolicies:s.searchPolicies}})):T().createElement(ng,{id:"channel_access_control_with_policy",title:(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.access_control_policy_title",defaultMessage:"Access Policy"}),subtitle:(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.policy_following",defaultMessage:"This channel is currently using the following access policy."}),buttonText:(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.remove_policy",defaultMessage:"Remove all"}),onButtonClick:()=>{s.onPolicyRemoveAll()}},T().createElement("div",{className:"group-teams-and-channels"},T().createElement("div",{className:"group-teams-and-channels--body"},T().createElement("div",{className:"access-policy-container"},!t&&T().createElement("div",{className:"access-policy-description"},T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_detail.select_policy",defaultMessage:"Apply an access policy for this channel to restrict membership"})),t&&0!==t.length?T().createElement("div",{className:"policy-table-container"},T().createElement("table",{className:"policy-table"},T().createElement("thead",null,T().createElement("tr",null,T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_detail.access_control_policy_name",defaultMessage:"Name"})),T().createElement("th",{className:"text-right"},T().createElement("span",{className:"sr-only"},T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_detail.access_control_policy_actions",defaultMessage:"Actions"}))))),T().createElement("tbody",null,t.map((e=>T().createElement("tr",{key:e.id},T().createElement("td",{className:"policy-name"},e.name),T().createElement("td",{className:"text-right"},T().createElement(w.Link,{to:"/admin_console/system_attributes/attribute_based_access_control/edit_policy/"+e.id,className:"policy-edit-icon","aria-label":n.formatMessage({id:"admin.channel_settings.channel_detail.go_to_policy.aria_label",defaultMessage:"Go to the policy"})},T().createElement("i",{className:"fa fa-external-link"})),T().createElement("button",{className:"policy-remove-icon","aria-label":n.formatMessage({id:"admin.channel_settings.channel_detail.remove_policy.aria_label",defaultMessage:"Remove policy"}),onClick:()=>{s.onPolicyRemove(e.id)}},T().createElement("i",{className:"fa fa-trash"}))))))))):null))))};rM.propTypes={parentPolicies:k().array.isRequired,actions:k().shape({searchPolicies:k().func.isRequired,onPolicySelected:k().func,onPolicyRemoveAll:k().func.isRequired,onPolicyRemove:k().func.isRequired}).isRequired};var oM=s(40142);function lM(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class dM extends T().PureComponent{constructor(e){super(e),lM(this,"loadComplete",(()=>{this.setState({loading:!1})})),lM(this,"nextPage",(async()=>{const{actions:e,groupID:t}=this.props,s=this.state.page+1;this.setState({loading:!0,page:s}),await e.getProfilesInGroup(t,s,20),this.setState({loading:!1})})),lM(this,"previousPage",(()=>{this.setState({page:this.state.page-1})})),lM(this,"getRows",(()=>{const{users:e}=this.props,{startCount:t,endCount:s}=this.getPaginationProps();let a=e;return a=a.slice(t-1,s),a.map((e=>({cells:{id:e.id,name:T().createElement(Rb,{user:e})}})))})),lM(this,"getColumns",(()=>[{name:T().createElement(N.FormattedMessage,{id:"admin.member_list_group.name",defaultMessage:"Name"}),field:"name"}])),lM(this,"getPaginationProps",(()=>{let{total:e}=this.props;const{page:t}=this.state,s=10*this.state.page+1;let a=10*(t+1);return""!==this.props.searchTerm&&(e=this.props.users.length),a>e&&(a=e),{startCount:s,endCount:a,total:e}})),lM(this,"render",(()=>{const e=this.getRows(),t=this.getColumns(),{startCount:s,endCount:a,total:i}=this.getPaginationProps(),n=T().createElement(N.FormattedMessage,{id:"admin.member_list_group.notFound",defaultMessage:"No users found"});return T().createElement("div",{className:"MemberListGroup"},T().createElement(xe,{columns:t,rows:e,loading:this.state.loading,page:this.state.page,nextPage:this.nextPage,previousPage:this.previousPage,startCount:s,endCount:a,total:i,onSearch:this.props.actions.setModalSearchTerm,term:this.props.searchTerm||"",placeholderEmpty:n}))})),this.searchTimeoutId=0,this.state={loading:!0,page:0}}async componentDidMount(){const{actions:e,groupID:t}=this.props;await Promise.all([e.getProfilesInGroup(t,0,20),e.getGroupStats(t)]),this.loadComplete()}componentWillUnmount(){this.props.actions.setModalSearchTerm("")}componentDidUpdate(e){if(e.searchTerm!==this.props.searchTerm){clearTimeout(this.searchTimeoutId);const e=this.props.searchTerm;if(""===e)return this.loadComplete(),void(this.searchTimeoutId=0);const t=window.setTimeout((async()=>{const{searchProfiles:s}=this.props.actions;this.setState({loading:!0}),await s(e,{in_group_id:this.props.groupID}),t===this.searchTimeoutId&&this.loadComplete()}),mt.Ay.SEARCH_TIMEOUT_MILLISECONDS);this.searchTimeoutId=t}}}lM(dM,"propTypes",{searchTerm:k().string.isRequired,users:k().array.isRequired,groupID:k().string.isRequired,total:k().number.isRequired,actions:k().shape({getProfilesInGroup:k().func.isRequired,getGroupStats:k().func.isRequired,searchProfiles:k().func.isRequired,setModalSearchTerm:k().func.isRequired}).isRequired});const cM=(0,a.connect)((function(e,t){const{groupID:s}=t,a=e.views.search.modalSearch;let i;return i=a?(0,g.Z9)(e,s,a):(0,g.dA)(e,s),{searchTerm:a,users:i,total:(0,tc.PY)(e,s)||0}}),(function(e){return{actions:(0,i.zH)({getProfilesInGroup:bi.dA,searchProfiles:bi.U,setModalSearchTerm:gn.qv,getGroupStats:ec.f$},e)}}))(dM),mM=e=>{let{group:t,onExited:s,onLoad:a}=e;const[i,n]=(0,A.useState)(!0);(0,A.useEffect)((()=>{null==a||a()}),[]);const r=(0,A.useCallback)((()=>{n(!1)}),[]),o=(0,A.useCallback)((()=>{s()}),[s]),l=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.groupMembers.close",defaultMessage:"Close"});return T().createElement(hn.Modal,{dialogClassName:"a11y__modal settings-modal",show:i,onHide:r,onExited:o,role:"none","aria-labelledby":"groupMemberModalLabel",id:"groupMembersModal"},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,{componentClass:"h1",id:"groupMemberModalLabel"},t.display_name)),T().createElement(hn.Modal.Body,null,T().createElement(cM,{groupID:t.id})),T().createElement(hn.Modal.Footer,null,T().createElement("button",{autoFocus:!0,type:"button",className:"btn btn-primary",onClick:r,id:"closeModalButton"},l)))};mM.propTypes={onExited:k().func.isRequired,onLoad:k().func};const uM=T().memo(mM);function pM(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class gM extends T().PureComponent{constructor(){super(...arguments),pM(this,"removeGroup",(e=>{e.preventDefault(),this.props.isDisabled||this.props.removeGroup(this.props.group.id)})),pM(this,"setNewGroupRole",(()=>{this.props.setNewGroupRole(this.props.group.id)})),pM(this,"displayCurrentRole",(()=>{const{group:e,type:t}=this.props,s=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.group_row.channelAdmin",defaultMessage:"Channel Admin"}),a=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.group_row.teamAdmin",defaultMessage:"Team Admin"}),i=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.group_row.member",defaultMessage:"Member"});return e.scheme_admin&&"channel"===t?s:e.scheme_admin&&"team"===t?a:i})),pM(this,"displayRoleToBe",(()=>{const{group:e,type:t}=this.props;return e.scheme_admin||"channel"!==t?e.scheme_admin||"team"!==t?(0,D.Vw)({id:"admin.team_channel_settings.group_row.member",defaultMessage:"Member"}):(0,D.Vw)({id:"admin.team_channel_settings.group_row.teamAdmin",defaultMessage:"Team Admin"}):(0,D.Vw)({id:"admin.team_channel_settings.group_row.channelAdmin",defaultMessage:"Channel Admin"})})),pM(this,"render",(()=>{const{group:e}=this.props;return T().createElement("div",{id:"group",className:"group"},T().createElement("div",{id:"group-row",className:"group-row"},T().createElement("span",{className:"group-name row-content"},e.display_name||e.name),T().createElement("span",{className:"group-description row-content"},T().createElement(kb.A,{id:"".concat(e.display_name,"MembersToggle"),className:"color--link",modalId:mt.IQ.GROUP_MEMBERS,dialogType:uM,dialogProps:{group:e}},T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.group_row.members",defaultMessage:"{memberCount, number} {memberCount, plural, one {member} other {members}}",values:{memberCount:e.member_count}}))),T().createElement("div",{className:"group-description row-content roles"},T().createElement(bl.A,{isDisabled:this.props.isDisabled},T().createElement("div",null,T().createElement("a",{"data-testid":"current-role"},T().createElement("span",null,this.displayCurrentRole()),T().createElement("span",{className:"caret"}))),T().createElement(El.A,{id:"role-to-be-menu",openLeft:!0,openUp:!1,ariaLabel:(0,D.Vw)({id:"admin.team_channel_settings.group_row.memberRole",defaultMessage:"Member Role"})},T().createElement(El.A.ItemAction,{id:"role-to-be",onClick:this.setNewGroupRole,text:this.displayRoleToBe()})))),T().createElement("span",{id:"group-actions",className:"group-actions"},T().createElement("a",{href:"#",onClick:this.removeGroup,className:this.props.isDisabled?"disabled":""},T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.group_row.remove",defaultMessage:"Remove"})))))}))}}pM(gM,"propTypes",{removeGroup:k().func.isRequired,setNewGroupRole:k().func.isRequired,type:k().string.isRequired,isDisabled:k().bool});const hM=["removeGroup","setNewGroupRole","type","isDisabled","isModeSync"],fM=()=>T().createElement("div",{className:"groups-list--header"},T().createElement("div",{className:"group-name group-name-adjusted"},T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.group_list.nameHeader",defaultMessage:"Group Name"})),T().createElement("div",{className:"group-content"},T().createElement("div",{className:"group-description group-description-adjusted"},T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.group_list.membersHeader",defaultMessage:"Member Count"})),T().createElement("div",{className:"group-description group-description-adjusted"},T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.group_list.rolesHeader",defaultMessage:"Roles"})),T().createElement("div",{className:"group-actions"}))),EM=e=>{let{removeGroup:t,setNewGroupRole:s,type:a,isDisabled:i,isModeSync:n}=e,r=function(e,t){if(null==e)return{};var s,a,i=function(e,t){if(null==e)return{};var s={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;s[a]=e[a]}return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)s=n[a],-1===t.indexOf(s)&&{}.propertyIsEnumerable.call(e,s)&&(i[s]=e[s])}return i}(e,hM);const o=(0,A.useCallback)((e=>T().createElement(gM,{key:e.id,group:e,removeGroup:t,setNewGroupRole:s,type:a,isDisabled:i})),[i,t,s,a]);return T().createElement(Yy,Object.assign({header:T().createElement(fM,null),renderRow:o,emptyListText:n?bM.emptyListModeSync:bM.emptyList},r))},bM=(0,N.defineMessages)({emptyListModeSync:{id:"admin.team_channel_settings.group_list.no-synced-groups",defaultMessage:"At least one group must be specified"},emptyList:{id:"admin.team_channel_settings.group_list.no-groups",defaultMessage:"No groups specified yet"}}),vM=(0,A.memo)(EM),yM=(0,a.connect)((function(e,t){return{data:t.groups,removeGroup:t.onGroupRemoved,setNewGroupRole:t.setNewGroupRole,total:t.totalGroups}}),(function(){return{actions:{getData:()=>Promise.resolve()}}}))(vM),MM=e=>{const{onGroupRemoved:t,onAddCallback:s,totalGroups:a,groups:i,removedGroups:n,channel:r,synced:o,setNewGroupRole:l,isDisabled:d}=e;return T().createElement(dc,{id:"channel_groups",title:o?(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.syncedGroupsTitle",defaultMessage:"Synced Groups"}):(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.groupsTitle",defaultMessage:"Groups"}),subtitle:o?(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.syncedGroupsDescription",defaultMessage:"Add and remove channel members based on their group membership."}):(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.groupsDescription",defaultMessage:"Select groups to be added to this channel."}),button:T().createElement(kb.A,{id:"addGroupsToChannelToggle",className:"btn btn-primary",modalId:mt.IQ.ADD_GROUPS_TO_CHANNEL,dialogType:oM.A,dialogProps:{channel:r,onAddCallback:s,skipCommit:!0,includeGroups:n,excludeGroups:i},disabled:d},T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_details.add_group",defaultMessage:"Add Group"}))},r.id&&T().createElement(yM,{channel:r,groups:i,totalGroups:a,onGroupRemoved:t,setNewGroupRole:l,isModeSync:o,type:"channel",isDisabled:d}))};function _M(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}MM.propTypes={synced:k().bool.isRequired,onAddCallback:k().func.isRequired,totalGroups:k().number.isRequired,groups:k().array.isRequired,removedGroups:k().arrayOf(k().objectOf(k().any)).isRequired,onGroupRemoved:k().func.isRequired,setNewGroupRole:k().func.isRequired,isDisabled:k().bool};class SM extends T().PureComponent{constructor(){super(...arguments),_M(this,"getDropDownOptions",(()=>"team"===this.props.scope?{makeAdmin:D.Vw({id:"team_members_dropdown.makeAdmin",defaultMessage:"Make Team Admin"}),makeMember:D.Vw({id:"team_members_dropdown.makeMember",defaultMessage:"Make Team Member"})}:{makeAdmin:D.Vw({id:"channel_members_dropdown.make_channel_admin",defaultMessage:"Make Channel Admin"}),makeMember:D.Vw({id:"channel_members_dropdown.make_channel_member",defaultMessage:"Make Channel Member"})})),_M(this,"getCurrentRole",(()=>{const{user:e,membership:t,scope:s}=this.props;if(e.roles.includes("system_admin"))return"system_admin";if(t){if("team"===s){if(e.remote_id)return"shared_member";if(t.scheme_admin)return"team_admin";if(t.scheme_user)return"team_user"}if("channel"===s){if(e.remote_id)return"shared_member";if(t.scheme_admin)return"channel_admin";if(t.scheme_user)return"channel_user"}}return"guest"})),_M(this,"getLocalizedRole",(e=>{switch(e){case"system_admin":return D.Vw({id:"admin.user_grid.system_admin",defaultMessage:"System Admin"});case"team_admin":return D.Vw({id:"admin.user_grid.team_admin",defaultMessage:"Team Admin"});case"channel_admin":return D.Vw({id:"admin.user_grid.channel_admin",defaultMessage:"Channel Admin"});case"shared_member":return D.Vw({id:"admin.user_grid.shared_member",defaultMessage:"Shared Member"});case"team_user":case"channel_user":return D.Vw({id:"admin.group_teams_and_channels_row.member",defaultMessage:"Member"});default:return D.Vw({id:"admin.user_grid.guest",defaultMessage:"Guest"})}})),_M(this,"handleMakeAdmin",(()=>{this.props.handleUpdateMembership({user_id:this.props.user.id,scheme_admin:!0,scheme_user:!0})})),_M(this,"handleMakeUser",(()=>{this.props.handleUpdateMembership({user_id:this.props.user.id,scheme_admin:!1,scheme_user:!0})})),_M(this,"getAriaLabel",(()=>{const{scope:e}=this.props;return"team"===e?D.Vw({id:"team_members_dropdown.menuAriaLabel",defaultMessage:"Change the role of a team member"}):D.Vw({id:"channel_members_dropdown.menuAriaLabel",defaultMessage:"Change the role of channel member"})})),_M(this,"render",(()=>{if(!this.props.membership)return null;const{user:e,isDisabled:t}=this.props,{makeAdmin:s,makeMember:a}=this.getDropDownOptions(),i=this.getCurrentRole(),n=this.getLocalizedRole(i),r=this.getAriaLabel();if("shared_member"===i)return T().createElement("div",{className:"more-modal__shared-actions"},T().createElement(ys.A,{title:T().createElement(N.FormattedMessage,{id:"shared_user_indicator.tooltip",defaultMessage:"From trusted organizations"})},T().createElement("span",null,n,T().createElement("i",{className:"shared-user-icon icon-circle-multiple-outline"}))));const o=!["system_admin","guest"].includes(i),l=["channel_user","team_user"].includes(i),d=["channel_admin","team_admin"].includes(i);return o?T().createElement(bl.A,{isDisabled:t},T().createElement("button",{id:"userGridRoleDropdown_".concat(e.username),className:"dropdown-toggle theme color--link style--none",type:"button","aria-expanded":"true"},T().createElement("span",null,n," "),T().createElement(cb.A,null)),T().createElement(El.A,{ariaLabel:r},T().createElement(El.A.ItemAction,{show:l,onClick:this.handleMakeAdmin,text:s}),T().createElement(El.A.ItemAction,{show:d,onClick:this.handleMakeUser,text:a}))):n}))}}function CM(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function AM(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?CM(Object(s),!0).forEach((function(t){TM(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):CM(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function TM(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}_M(SM,"propTypes",{scope:k().oneOf(["team","channel"]).isRequired,handleUpdateMembership:k().func.isRequired,isDisabled:k().bool});class NM extends T().PureComponent{constructor(e){super(e),TM(this,"pageLoaded",0),TM(this,"loadPage",(e=>{this.setState({loading:!0}),this.props.loadPage(e),this.setState({page:e,loading:!1})})),TM(this,"nextPage",(()=>{this.loadPage(this.state.page+1)})),TM(this,"previousPage",(()=>{this.loadPage(this.state.page-1)})),TM(this,"onSearch",(async e=>{this.props.onSearch(e),this.setState({page:0})})),TM(this,"onFilter",(async e=>{var t;null===(t=this.props.filterProps)||void 0===t||t.onFilter(e),this.setState({page:0})})),TM(this,"getVisibleTotalCount",(()=>{const{includeUsers:e,excludeUsers:t,totalCount:s}=this.props;return s+(Object.keys(e).length-Object.keys(t).length)})),TM(this,"getPaginationProps",(()=>{const{includeUsers:e,excludeUsers:t,term:s}=this.props,{page:a}=this.state;let i,n=0;const r=10*a+1;return""===s?i=this.getVisibleTotalCount():(i=this.props.users.length+Object.keys(e).length,this.props.users.forEach((e=>{t[e.id]&&(i-=1)}))),n=10*(a+1),n=n>i?i:n,{startCount:r,endCount:n,total:i}})),TM(this,"removeUser",(e=>{const{excludeUsers:t}=this.props;if(t[e.id]===e)return;let{page:s}=this.state;const{endCount:a}=this.getPaginationProps();this.props.removeUser(e),a>this.getVisibleTotalCount()&&a%10==1&&s>0&&s--,this.setState({page:s})})),TM(this,"updateMembership",(e=>{const{membershipsToUpdate:t}=this.state,{memberships:s}=this.props,a=e.user_id;t[a]=AM(AM({},s[a]),e),this.props.updateMembership(e),this.setState({membershipsToUpdate:t},this.forceUpdate)})),TM(this,"newMembership",(e=>({user_id:e.id,scheme_admin:!1,scheme_user:!e.roles.includes("guest")}))),TM(this,"getRows",(()=>{const{page:e,membershipsToUpdate:t}=this.state,{memberships:s,users:a,excludeUsers:i,includeUsers:n,totalCount:r,term:o,scope:l,readOnly:d}=this.props,{startCount:c,endCount:m}=this.getPaginationProps();let u=a;const p=Object.values(n);if(u=u.filter((e=>!i[e.id])),u=[...p,...u],u=u.slice(c-1,m),""===o&&u.length<10&&a.length<r){const t=Object.keys(i).length,s=e+Math.floor(t/10)+1;s>this.pageLoaded&&(this.props.loadPage(s),this.pageLoaded=s)}return u.map((e=>{const a=t[e.id]||s[e.id]||this.newMembership(e);return{cells:{id:e.id,name:T().createElement(Rb,{user:e}),new:n[e.id]?T().createElement(Es.A,{className:"NewUserBadge",text:T().createElement(N.FormattedMessage,{id:"admin.user_grid.new",defaultMessage:"New"})}):null,role:T().createElement(SM,{user:e,membership:a,handleUpdateMembership:this.updateMembership,scope:l,isDisabled:d}),remove:T().createElement(Ib,{user:e,removeUser:this.removeUser,isDisabled:d})}}}))})),TM(this,"getColumns",(()=>[{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.name",defaultMessage:"Name"}),field:"name",width:3,fixed:!0},{name:"",field:"new",fixed:!0},{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.role",defaultMessage:"Role"}),field:"role",overflow:"visible"},{name:"",field:"remove",textAlign:"right",fixed:!0}])),TM(this,"render",(()=>{const e=this.getRows(),t=this.getColumns(),{startCount:s,endCount:a,total:i}=this.getPaginationProps(),n=T().createElement(N.FormattedMessage,{id:"admin.user_grid.notFound",defaultMessage:"No users found"}),r={minHeight:"".concat(80*e.length,"px")};return T().createElement(xe,{columns:t,rows:e,loading:this.state.loading||this.props.loading,page:this.state.page,nextPage:this.nextPage,previousPage:this.previousPage,startCount:s,endCount:a,total:i,onSearch:this.onSearch,term:this.props.term||"",placeholderEmpty:n,rowsContainerStyles:r,filterProps:AM(AM({},this.props.filterProps),{},{onFilter:this.onFilter})})})),this.state={loading:!1,page:0,membershipsToUpdate:{}}}}TM(NM,"propTypes",{users:k().array.isRequired,scope:k().oneOf(["team","channel"]).isRequired,loadPage:k().func.isRequired,onSearch:k().func.isRequired,removeUser:k().func.isRequired,updateMembership:k().func.isRequired,totalCount:k().number.isRequired,loading:k().bool.isRequired,term:k().string.isRequired,readOnly:k().bool,filterProps:k().shape({keys:k().arrayOf(k().string).isRequired,onFilter:k().func.isRequired}).isRequired});var wM=s(46);function RM(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function OM(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?RM(Object(s),!0).forEach((function(t){IM(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):RM(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function IM(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class kM extends T().PureComponent{constructor(e){super(e),IM(this,"setStateLoading",(e=>{this.setState({loading:e})})),IM(this,"loadPage",(async e=>{const{loadProfilesAndReloadChannelMembers:t}=this.props.actions,{channelId:s,filters:a}=this.props;await t(e+1,10,s,"",OM({active:!0},a))})),IM(this,"removeUser",(e=>{this.props.onRemoveCallback(e)})),IM(this,"onAddCallback",(e=>{this.props.onAddCallback(e)})),IM(this,"onSearch",(async e=>{this.props.actions.setUserGridSearch(e)})),IM(this,"updateMembership",(e=>{this.props.updateRole(e.user_id,e.scheme_user,e.scheme_admin)})),IM(this,"onFilter",(async e=>{const t=e.role.values,s=[],a=[];let i={};Object.keys(t).forEach((e=>{t[e].value&&(e.includes("channel")?a.push(e):s.push(e))})),s.length>0||a.length>0?(s.length>0&&(i={roles:s}),a.length>0&&(i=OM(OM({},i),{},{channel_roles:a})),this.props.actions.setUserGridFilters(i),this.props.actions.getFilteredUsersStats(OM({in_channel:this.props.channelId,include_bots:!0},i))):this.props.actions.setUserGridFilters(i)})),IM(this,"render",(()=>{const{users:e,channel:t,channelId:s,usersToAdd:a,usersToRemove:i,channelMembers:n,totalCount:r,searchTerm:o,isDisabled:l}=this.props,d={role:{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.role",defaultMessage:"Role"}),values:{[bp.A.SYSTEM_GUEST_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.guest",defaultMessage:"Guest"}),value:!1},[bp.A.CHANNEL_USER_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_item.member",defaultMessage:"Member"}),value:!1},[bp.A.CHANNEL_ADMIN_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.channel_admin",defaultMessage:"Channel Admin"}),value:!1},[bp.A.SYSTEM_ADMIN_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.system_admin",defaultMessage:"System Admin"}),value:!1}},keys:[bp.A.SYSTEM_GUEST_ROLE,bp.A.CHANNEL_USER_ROLE,bp.A.CHANNEL_ADMIN_ROLE,bp.A.SYSTEM_ADMIN_ROLE]}};this.props.enableGuestAccounts||(delete d.role.values[bp.A.SYSTEM_GUEST_ROLE],d.role.keys=[bp.A.CHANNEL_USER_ROLE,bp.A.CHANNEL_ADMIN_ROLE,bp.A.SYSTEM_ADMIN_ROLE]);const c={options:d,keys:["role"],onFilter:this.onFilter};return T().createElement(dc,{id:"channelMembers",title:(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.membersTitle",defaultMessage:"Members"}),subtitle:(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.membersDescription",defaultMessage:"A list of users who are currently in the channel right now"}),button:T().createElement(kb.A,{id:"addChannelMembers",className:"btn btn-primary",modalId:mt.IQ.CHANNEL_INVITE,dialogType:wM.A,disabled:l,dialogProps:{channel:t,channelId:s,teamId:null==t?void 0:t.team_id,onAddCallback:this.onAddCallback,skipCommit:!0,excludeUsers:a,includeUsers:i}},T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_details.add_members",defaultMessage:"Add Members"}))},T().createElement(NM,{loading:this.state.loading||Boolean(this.props.loading),users:e,loadPage:this.loadPage,removeUser:this.removeUser,totalCount:r,memberships:n,updateMembership:this.updateMembership,onSearch:this.onSearch,includeUsers:a,excludeUsers:i,term:o,scope:"channel",readOnly:l,filterProps:c}))})),this.searchTimeoutId=0,this.state={loading:!0}}componentDidMount(){const{channelId:e}=this.props,{loadProfilesAndReloadChannelMembers:t,getChannelStats:s,setUserGridSearch:a,setUserGridFilters:i}=this.props.actions;Promise.all([a(""),i({}),s(e),t(0,20,e,"",{active:!0})]).then((()=>this.setStateLoading(!1)))}async componentDidUpdate(e){const t=JSON.stringify(e.filters)!==JSON.stringify(this.props.filters),s=e.searchTerm!==this.props.searchTerm;if(t||s){this.setStateLoading(!0),clearTimeout(this.searchTimeoutId);const{searchTerm:s,filters:a}=this.props;if(""===s)return this.searchTimeoutId=0,t&&await e.actions.loadProfilesAndReloadChannelMembers(0,20,e.channelId,"",OM({active:!0},a)),void this.setStateLoading(!1);const i=window.setTimeout((async()=>{await e.actions.searchProfilesAndChannelMembers(s,OM(OM({},a),{},{in_channel_id:this.props.channelId,allow_inactive:!1})),i===this.searchTimeoutId&&this.setStateLoading(!1)}),mt.Ay.SEARCH_TIMEOUT_MILLISECONDS);this.searchTimeoutId=i}}}function PM(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function xM(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?PM(Object(s),!0).forEach((function(t){DM(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):PM(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function DM(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}IM(kM,"propTypes",{channelId:k().string.isRequired,users:k().array.isRequired,totalCount:k().number.isRequired,searchTerm:k().string.isRequired,loading:k().bool,enableGuestAccounts:k().bool.isRequired,onAddCallback:k().func.isRequired,onRemoveCallback:k().func.isRequired,updateRole:k().func.isRequired,isDisabled:k().bool,actions:k().shape({getChannelStats:k().func.isRequired,loadProfilesAndReloadChannelMembers:k().func.isRequired,searchProfilesAndChannelMembers:k().func.isRequired,getFilteredUsersStats:k().func.isRequired,setUserGridSearch:k().func.isRequired,setUserGridFilters:k().func.isRequired}).isRequired});const LM=(0,S.Mz)("getUserGridFilters",(e=>e.views.search.userGridSearch.filters),(function(){return xM(xM({},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{active:!0})})),FM=(0,a.connect)((function(){const e=(0,g.dH)(),t=(0,g.fJ)();return function(s,a){var i;const{channelId:n,usersToRemove:r}=a;let{usersToAdd:o}=a;const l=(0,c.zj)(s),d=(0,Hi.a9)(s)[n]||{},m=(0,Hi.c)(s,n),u=(null===(i=s.views.search.userGridSearch)||void 0===i?void 0:i.term)||"",p=LM(s);let h;var f;1===Object.keys(p).length?h=((0,Hi.IZ)(s)[n]||{member_count:0,channel_id:n,pinnedpost_count:0,guest_count:0,files_count:0}).member_count:h=null!==(f=((0,g.$c)(s)||{total_users_count:0}).total_users_count)&&void 0!==f?f:0;let E=[];return u?(E=t(s,n,u,!1,p),o=function(e,t){const s=(0,Nb.V3)(Object.values(e),t);return(0,g.f9)((0,Nb.vC)(s),{})}(o,u)):E=e(s,n,p),{filters:p,channelId:n,channel:m,users:E,channelMembers:d,usersToAdd:o,usersToRemove:r,totalCount:h,searchTerm:u,enableGuestAccounts:"true"===l.EnableGuestAccounts}}}),(function(e){return{actions:(0,i.zH)({getChannelStats:ji.Fe,loadProfilesAndReloadChannelMembers:ds.fQ,searchProfilesAndChannelMembers:ds.uh,getFilteredUsersStats:bi.$c,setUserGridSearch:gn.u,setUserGridFilters:gn.dj},e)}}))(kM);function UM(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const BM=/\./g,jM="create_post",HM="reactions",GM="manage_{public_or_private}_channel_members",qM="use_channel_mentions",VM="manage_{public_or_private}_channel_bookmarks";function zM(e){const t=(0,N.defineMessages)({title:{id:"admin.channel_settings.channel_moderation.createPosts",defaultMessage:"Create Posts"},description:{id:"admin.channel_settings.channel_moderation.createPostsDesc",defaultMessage:"The ability for members and guests to create posts in the channel."},descriptionMembers:{id:"admin.channel_settings.channel_moderation.createPostsDescMembers",defaultMessage:"The ability for members to create posts in the channel."},disabledGuests:{id:"admin.channel_settings.channel_moderation.createPosts.disabledGuest",defaultMessage:"Create posts for guests are disabled in [{scheme_name}](../permissions/{scheme_link})."},disabledMembers:{id:"admin.channel_settings.channel_moderation.createPosts.disabledMember",defaultMessage:"Create posts for members are disabled in [{scheme_name}](../permissions/{scheme_link})."},disabledBoth:{id:"admin.channel_settings.channel_moderation.createPosts.disabledBoth",defaultMessage:"Create posts for members and guests are disabled in [{scheme_name}](../permissions/{scheme_link})."}}),s=(0,N.defineMessages)({title:{id:"admin.channel_settings.channel_moderation.postReactions",defaultMessage:"Post Reactions"},description:{id:"admin.channel_settings.channel_moderation.postReactionsDesc",defaultMessage:"The ability for members and guests to post reactions."},descriptionMembers:{id:"admin.channel_settings.channel_moderation.postReactionsDescMembers",defaultMessage:"The ability for members to post reactions."},disabledGuests:{id:"admin.channel_settings.channel_moderation.postReactions.disabledGuest",defaultMessage:"Post reactions for guests are disabled in [{scheme_name}](../permissions/{scheme_link})."},disabledMembers:{id:"admin.channel_settings.channel_moderation.postReactions.disabledMember",defaultMessage:"Post reactions for members are disabled in [{scheme_name}](../permissions/{scheme_link})."},disabledBoth:{id:"admin.channel_settings.channel_moderation.postReactions.disabledBoth",defaultMessage:"Post reactions for members and guests are disabled in [{scheme_name}](../permissions/{scheme_link})."}}),a=(0,N.defineMessages)({title:{id:"admin.channel_settings.channel_moderation.manageMembers",defaultMessage:"Manage Members"},description:{id:"admin.channel_settings.channel_moderation.manageMembersDesc",defaultMessage:"The ability for members to add and remove people."},disabledGuests:{id:"admin.channel_settings.channel_moderation.manageMembers.disabledGuest",defaultMessage:"Manage members for guests are disabled in [{scheme_name}](../permissions/{scheme_link})."},disabledMembers:{id:"admin.channel_settings.channel_moderation.manageMembers.disabledMember",defaultMessage:"Manage members for members are disabled in [{scheme_name}](../permissions/{scheme_link})."},disabledBoth:{id:"admin.channel_settings.channel_moderation.manageMembers.disabledBoth",defaultMessage:"Manage members for members and guests are disabled in [{scheme_name}](../permissions/{scheme_link})."}}),i=(0,N.defineMessages)({title:{id:"admin.channel_settings.channel_moderation.channelMentions",defaultMessage:"Channel Mentions"},description:{id:"admin.channel_settings.channel_moderation.channelMentionsDesc",defaultMessage:"The ability for members and guests to use @all, @here and @channel."},descriptionMembers:{id:"admin.channel_settings.channel_moderation.channelMentionsDescMembers",defaultMessage:"The ability for members to use @all, @here and @channel."},disabledGuests:{id:"admin.channel_settings.channel_moderation.channelMentions.disabledGuest",defaultMessage:"Channel mentions for guests are disabled in [{scheme_name}](../permissions/{scheme_link})."},disabledMembers:{id:"admin.channel_settings.channel_moderation.channelMentions.disabledMember",defaultMessage:"Channel mentions for members are disabled in [{scheme_name}](../permissions/{scheme_link})."},disabledBoth:{id:"admin.channel_settings.channel_moderation.channelMentions.disabledBoth",defaultMessage:"Channel mentions for members and guests are disabled in [{scheme_name}](../permissions/{scheme_link})."},disabledGuestsDueToCreatePosts:{id:"admin.channel_settings.channel_moderation.channelMentions.disabledGuestsDueToCreatePosts",defaultMessage:"Guests can not use channel mentions without the ability to create posts."},disabledMembersDueToCreatePosts:{id:"admin.channel_settings.channel_moderation.channelMentions.disabledMemberDueToCreatePosts",defaultMessage:"Members can not use channel mentions without the ability to create posts."},disabledBothDueToCreatePosts:{id:"admin.channel_settings.channel_moderation.channelMentions.disabledBothDueToCreatePosts",defaultMessage:"Guests and members can not use channel mentions without the ability to create posts."}}),n=(0,N.defineMessages)({title:{id:"admin.channel_settings.channel_moderation.manageBookmarks",defaultMessage:"Manage Bookmarks"},description:{id:"admin.channel_settings.channel_moderation.manageBookmarksDesc",defaultMessage:"The ability for members and guests to add, delete and sort bookmarks."},disabledGuests:{id:"admin.channel_settings.channel_moderation.manageBookmarks.disabledGuest",defaultMessage:"Manage bookmarks for guests are disabled in [{scheme_name}](../permissions/{scheme_link})."},disabledMembers:{id:"admin.channel_settings.channel_moderation.manageBookmarks.disabledMember",defaultMessage:"Manage bookmarks for members are disabled in [{scheme_name}](../permissions/{scheme_link})."},disabledBoth:{id:"admin.channel_settings.channel_moderation.manageBookmarks.disabledBoth",defaultMessage:"Manage bookmarks for members and guests are disabled in [{scheme_name}](../permissions/{scheme_link})."}});return e===l.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_POST?t:e===l.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_REACTIONS?s:e===l.xB.CHANNEL_MODERATED_PERMISSIONS.MANAGE_MEMBERS?a:e===l.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS?i:e===l.xB.CHANNEL_MODERATED_PERMISSIONS.MANAGE_BOOKMARKS?n:null}const WM=(0,N.defineMessages)({titleMessage:{id:"admin.channel_settings.channel_moderation.title",defaultMessage:"Advanced Access Control"},subtitleMessageForMembersAndGuests:{id:"admin.channel_settings.channel_moderation.subtitle",defaultMessage:"Manage the actions available to channel members and guests."},subtitleMessageForMembers:{id:"admin.channel_settings.channel_moderation.subtitleMembers",defaultMessage:"Manage the actions available to channel members."}}),YM=e=>{var t,s,a,i,n,r;const o=zM(e.name);let d=null==o?void 0:o.description.id,c=null==o?void 0:o.description.defaultMessage;var m,u,p,g;return!e.guestAccountsEnabled&&null!=o&&o.descriptionMembers&&(d=null!==(m=null===(u=o.descriptionMembers)||void 0===u?void 0:u.id)&&void 0!==m?m:"",c=null!==(p=null==o||null===(g=o.descriptionMembers)||void 0===g?void 0:g.defaultMessage)&&void 0!==p?p:""),T().createElement("tr",null,T().createElement("td",null,T().createElement("div",{className:"as-bs-label","data-testid":null==o||null===(t=o.title)||void 0===t||null===(s=t.id)||void 0===s?void 0:s.replace(BM,"-")},T().createElement(N.FormattedMessage,{id:null==o||null===(a=o.title)||void 0===a?void 0:a.id,defaultMessage:null==o||null===(i=o.title)||void 0===i?void 0:i.defaultMessage})),T().createElement("div",{"data-testid":null==o||null===(n=o.description)||void 0===n||null===(r=n.id)||void 0===r?void 0:r.replace(BM,"-")},T().createElement(N.FormattedMessage,{id:d,defaultMessage:c})),e.errorMessages),e.guestAccountsEnabled&&T().createElement("td",null,!pc()(e.guests)&&T().createElement("button",{type:"button","data-testid":"".concat(e.name,"-").concat(l.YK.GUESTS),className:oe()("checkbox",{checked:e.guests&&!e.guestsDisabled,disabled:e.guestsDisabled}),onClick:()=>e.onClick(e.name,l.YK.GUESTS),disabled:e.guestsDisabled||e.readOnly},e.guests&&!e.guestsDisabled&&T().createElement(Rc.A,null))),T().createElement("td",null,!pc()(e.members)&&T().createElement("button",{type:"button","data-testid":"".concat(e.name,"-").concat(l.YK.MEMBERS),className:oe()("checkbox",{checked:e.members&&!e.membersDisabled,disabled:e.membersDisabled}),onClick:()=>e.onClick(e.name,l.YK.MEMBERS),disabled:e.membersDisabled||e.readOnly},e.members&&!e.membersDisabled&&T().createElement(Rc.A,null))))};YM.propTypes={name:k().string.isRequired,guests:k().bool,members:k().bool.isRequired,guestsDisabled:k().bool,membersDisabled:k().bool.isRequired,onClick:k().func.isRequired,errorMessages:k().any,guestAccountsEnabled:k().bool.isRequired,readOnly:k().bool};class ZM extends T().PureComponent{constructor(){super(...arguments),UM(this,"errorMessagesToDisplay",(e=>{var t,s;const a=zM(e.name),i=[],n=!pc()(null===(t=e.roles.guests)||void 0===t?void 0:t.enabled)&&!(null!==(s=e.roles.guests)&&void 0!==s&&s.enabled)&&this.props.guestAccountsEnabled,r=!e.roles.members.enabled;let o,d,c,m="";if(e.name===l.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS){const e=this.props.channelPermissions&&this.props.channelPermissions.find((e=>e.name===l.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_POST));var u,p,g,h,f,E,b,v,y,M;if(!e.roles.guests.value&&this.props.guestAccountsEnabled&&!e.roles.members.value)return i.push(T().createElement("div",{"data-testid":null==a||null===(u=a.disabledBothDueToCreatePosts)||void 0===u||null===(p=u.id)||void 0===p?void 0:p.replace(BM,"-"),key:null==a||null===(g=a.disabledBothDueToCreatePosts)||void 0===g?void 0:g.id},T().createElement(N.FormattedMessage,{id:null==a||null===(h=a.disabledBothDueToCreatePosts)||void 0===h?void 0:h.id,defaultMessage:null==a||null===(f=a.disabledBothDueToCreatePosts)||void 0===f?void 0:f.defaultMessage}))),i;if(!e.roles.guests.value&&this.props.guestAccountsEnabled)m="disabledGuestsDueToCreatePosts",i.push(T().createElement("div",{"data-testid":null==a||null===(E=a.disabledGuestsDueToCreatePosts)||void 0===E||null===(b=E.id)||void 0===b?void 0:b.replace(BM,"-"),key:null==a||null===(v=a.disabledGuestsDueToCreatePosts)||void 0===v?void 0:v.id},T().createElement(N.FormattedMessage,{id:null==a||null===(y=a.disabledGuestsDueToCreatePosts)||void 0===y?void 0:y.id,defaultMessage:null==a||null===(M=a.disabledGuestsDueToCreatePosts)||void 0===M?void 0:M.defaultMessage})));else if(!e.roles.members.value){var _,S,C,A,w;m="disabledMembersDueToCreatePosts",i.push(T().createElement("div",{"data-testid":null==a||null===(_=a.disabledMembersDueToCreatePosts)||void 0===_||null===(S=_.id)||void 0===S?void 0:S.replace(BM,"-"),key:null==a||null===(C=a.disabledMembersDueToCreatePosts)||void 0===C?void 0:C.id},T().createElement(N.FormattedMessage,{id:null==a||null===(A=a.disabledMembersDueToCreatePosts)||void 0===A?void 0:A.id,defaultMessage:null==a||null===(w=a.disabledMembersDueToCreatePosts)||void 0===w?void 0:w.defaultMessage})))}}let R="System Scheme",O="system_scheme";var I;this.props.teamSchemeID&&(R=(null===(I=this.props)||void 0===I?void 0:I.teamSchemeDisplayName)+" Team Scheme",O="team_override_scheme/".concat(this.props.teamSchemeID));const k=(P=e.name)===l.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_POST?{disabledGuests:"guest_create_post",disabledMembers:jM,disabledBoth:jM}:P===l.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_REACTIONS?{disabledGuests:"guest_reactions",disabledMembers:HM,disabledBoth:HM}:P===l.xB.CHANNEL_MODERATED_PERMISSIONS.MANAGE_MEMBERS?{disabledGuests:"guest_manage_{public_or_private}_channel_members",disabledMembers:GM,disabledBoth:GM}:P===l.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS?{disabledGuests:"guest_use_channel_mentions",disabledMembers:qM,disabledBoth:qM}:P===l.xB.CHANNEL_MODERATED_PERMISSIONS.MANAGE_BOOKMARKS?{disabledGuests:"guest_manage_{public_or_private}_channel_bookmarks",disabledMembers:VM,disabledBoth:VM}:null;var P,x;if(n&&r&&i.length<=0){var D,L;if(o="disabledBoth",null!=k&&k.disabledBoth&&(O+="?rowIdFromQuery=".concat(k.disabledBoth),O.includes("{public_or_private}"))){const e=this.props.isPublic?"public":"private";O=O.replace("{public_or_private}",e)}d=null==a||null===(D=a.disabledBoth)||void 0===D?void 0:D.id,c=null==a||null===(L=a.disabledBoth)||void 0===L?void 0:L.defaultMessage}else if(n&&"disabledGuestsDueToCreatePosts"!==m){var F,U;if(o="disabledGuests",null!=k&&k.disabledGuests&&(O+="?rowIdFromQuery=".concat(k.disabledGuests),O.includes("{public_or_private}"))){const e=this.props.isPublic?"public":"private";O=O.replace("{public_or_private}",e)}d=null==a||null===(F=a.disabledGuests)||void 0===F?void 0:F.id,c=null==a||null===(U=a.disabledGuests)||void 0===U?void 0:U.defaultMessage}else if(r&&"disabledMembersDueToCreatePosts"!==m){var B,j;if(o="disabledMembers",null!=k&&k.disabledMembers&&(O+="?rowIdFromQuery=".concat(k.disabledMembers),O.includes("{public_or_private}"))){const e=this.props.isPublic?"public":"private";O=O.replace("{public_or_private}",e)}d=null==a||null===(B=a.disabledMembers)||void 0===B?void 0:B.id,c=null==a||null===(j=a.disabledMembers)||void 0===j?void 0:j.defaultMessage}if(O.includes("{public_or_private}")){const e=this.props.isPublic?"public":"private";O=O.replace("{public_or_private}",e)}return o&&i.push(T().createElement("div",{"data-testid":null===(x=d)||void 0===x?void 0:x.replace(BM,"-"),key:d},T().createElement(es.A,{id:d,defaultMessage:c,values:{scheme_name:R,scheme_link:O}}))),i})),UM(this,"render",(()=>{const{channelPermissions:e,guestAccountsEnabled:t,onChannelPermissionsChanged:s,readOnly:a}=this.props;return T().createElement(dc,{id:"channel_moderation",title:WM.titleMessage,subtitle:t?WM.subtitleMessageForMembersAndGuests:WM.subtitleMessageForMembers},T().createElement("div",{className:"channel-moderation"},T().createElement("div",{className:"channel-moderation--body"},T().createElement("table",{id:"channel_moderation_table",className:"channel-moderation--table"},T().createElement("thead",null,T().createElement("tr",null,T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_moderation.permissions",defaultMessage:"Permissions"})),t&&T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_moderation.guests",defaultMessage:"Guests"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_moderation.members",defaultMessage:"Members"})))),T().createElement("tbody",null,null==e?void 0:e.map((e=>{var i,n;return T().createElement(YM,{key:e.name,name:e.name,guests:null===(i=e.roles.guests)||void 0===i?void 0:i.value,guestsDisabled:!(null!==(n=e.roles.guests)&&void 0!==n&&n.enabled),members:e.roles.members.value,membersDisabled:!e.roles.members.enabled,onClick:s,errorMessages:this.errorMessagesToDisplay(e),guestAccountsEnabled:t,readOnly:a})})))))))}))}}UM(ZM,"propTypes",{channelPermissions:k().array,onChannelPermissionsChanged:k().func.isRequired,teamSchemeID:k().string,teamSchemeDisplayName:k().string,guestAccountsEnabled:k().bool.isRequired,isPublic:k().bool.isRequired,readOnly:k().bool});const JM=e=>{const{isPublic:t,isSynced:s,isDefault:a,onToggle:i,isDisabled:n,policyEnforced:r}=e;return T().createElement(oc,{id:"syncGroupSwitch",disabled:n||a||r,toggled:s,last:s,onToggle:()=>{a||i(!s,t,r)},title:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_details.syncGroupMembers",defaultMessage:"Sync Group Members"}),subTitle:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_details.syncGroupMembersDescr",defaultMessage:"When enabled, adding and removing users from groups will add or remove them from this channel. The only way of inviting members to this channel is by adding the groups they belong to. <link>Learn More</link>",values:{link:e=>T().createElement(wt.A,{href:"https://www.mattermost.com/pl/default-ldap-group-constrained-team-channel.html",location:"channel_modes"},e)}})})};JM.propTypes={isPublic:k().bool.isRequired,isSynced:k().bool.isRequired,isDefault:k().bool.isRequired,onToggle:k().func.isRequired,isDisabled:k().bool,groupsSupported:k().bool,abacSupported:k().bool,policyEnforced:k().bool.isRequired,policyEnforcedToggleAvailable:k().bool.isRequired};const KM=e=>{const{isPublic:t,isSynced:s,isDefault:a,onToggle:i,isDisabled:n,policyEnforced:r}=e;return s?null:T().createElement(oc,{id:"allow-all-toggle",disabled:n||a||r,toggled:t,last:!1,onToggle:()=>{a||i(s,!t,r)},title:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_details.isPublic",defaultMessage:"Public channel or private channel"}),subTitle:a?T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_details.isDefaultDescr",defaultMessage:"This default channel cannot be converted into a private channel."}):T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_details.isPublicDescr",defaultMessage:"Select Public for a channel any user can find and join. {br}Select Private to require channel invitations to join. {br}Use this switch to change this channel from public to private or from private to public.",values:{br:T().createElement("br",null)}}),onText:T().createElement(N.FormattedMessage,{id:"channel_toggle_button.public",defaultMessage:"Public"}),offText:T().createElement(N.FormattedMessage,{id:"channel_toggle_button.private",defaultMessage:"Private"})})};KM.propTypes={isPublic:k().bool.isRequired,isSynced:k().bool.isRequired,isDefault:k().bool.isRequired,onToggle:k().func.isRequired,isDisabled:k().bool,groupsSupported:k().bool,abacSupported:k().bool,policyEnforced:k().bool.isRequired,policyEnforcedToggleAvailable:k().bool.isRequired};const QM=e=>{const{isPublic:t,isSynced:s,isDefault:a,onToggle:i,isDisabled:n,policyEnforced:r,policyEnforcedToggleAvailable:o}=e;return s?null:T().createElement(oc,{id:"policy-enforce-toggle",disabled:n||s||t||!o,toggled:r,last:!0,onToggle:()=>{!a&&o&&i(s,t,!r)},title:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_details.policy_enforced_title",defaultMessage:"Enable attribute based channel access"}),subTitle:a||t?T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_details.private_channel_only",defaultMessage:"Only private channels can be attribute based."}):T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_details.attribute_based_description",defaultMessage:"Restrict which users can be invited to this channel based on their user attributes and values. Only people who match the specified conditions will be allowed to be selected and added to this channel."})})};QM.propTypes={isPublic:k().bool.isRequired,isSynced:k().bool.isRequired,isDefault:k().bool.isRequired,onToggle:k().func.isRequired,isDisabled:k().bool,groupsSupported:k().bool,abacSupported:k().bool,policyEnforced:k().bool.isRequired,policyEnforcedToggleAvailable:k().bool.isRequired};const XM=e=>{const{isPublic:t,isSynced:s,isDefault:a,onToggle:i,isDisabled:n,groupsSupported:r,policyEnforced:o,policyEnforcedToggleAvailable:l,abacSupported:d}=e;return T().createElement(dc,{id:"channel_manage",title:(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.manageTitle",defaultMessage:"Channel Management"}),subtitle:(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.manageDescription",defaultMessage:"Choose between inviting members manually or syncing members automatically from groups."})},T().createElement("div",{className:"group-teams-and-channels"},T().createElement("div",{className:"group-teams-and-channels--body"},!o&&r&&T().createElement(JM,{isPublic:t,isSynced:s,isDefault:a,onToggle:i,isDisabled:n,policyEnforced:o,policyEnforcedToggleAvailable:l}),T().createElement(KM,{isPublic:t,isSynced:s,isDefault:a,onToggle:i,isDisabled:n,policyEnforced:o,policyEnforcedToggleAvailable:l}),d&&T().createElement(QM,{isPublic:t,isSynced:s,isDefault:a,onToggle:i,isDisabled:n,policyEnforced:o,policyEnforcedToggleAvailable:l}))))};XM.propTypes={isPublic:k().bool.isRequired,isSynced:k().bool.isRequired,isDefault:k().bool.isRequired,onToggle:k().func.isRequired,isDisabled:k().bool,groupsSupported:k().bool,abacSupported:k().bool,policyEnforced:k().bool.isRequired,policyEnforcedToggleAvailable:k().bool.isRequired};const $M=e=>{const{team:t,channel:s,isArchived:a,isDisabled:i}=e,n=a?(0,N.defineMessage)({id:"admin.channel_settings.channel_details.unarchiveChannel",defaultMessage:"Unarchive Channel"}):(0,N.defineMessage)({id:"admin.channel_settings.channel_details.archiveChannel",defaultMessage:"Archive Channel"});let r;return s.shared&&s.type&&(r=T().createElement("div",{className:"channel-organizations"},T().createElement("b",null,T().createElement(N.FormattedMessage,{id:"admin.channelSettings.channelDetail.channel_organizations",defaultMessage:"Organizations"})),T().createElement("br",null),T().createElement(Zy.A,{className:"shared-channel-icon"}),T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_detail.channelOrganizationsMessage",defaultMessage:"Shared with trusted organizations"}))),T().createElement(dc,{id:"channel_profile",title:(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.profileTitle",defaultMessage:"Channel Profile"}),subtitle:(0,N.defineMessage)({id:"admin.channel_settings.channel_detail.profileDescription",defaultMessage:"Summary of the channel, including the channel name."})},T().createElement("div",{className:"group-teams-and-channels AdminChannelDetails"},T().createElement("div",{className:"group-teams-and-channels--body channel-desc-col"},T().createElement("div",{className:"channel-name"},T().createElement("b",null,T().createElement(N.FormattedMessage,{id:"admin.channelSettings.channelDetail.channelName",defaultMessage:"Name"})),T().createElement("br",null),s.display_name),T().createElement("div",{className:"channel-team"},T().createElement("b",null,T().createElement(N.FormattedMessage,{id:"admin.channelSettings.channelDetail.channelTeam",defaultMessage:"Team"})),T().createElement("br",null),null==t?void 0:t.display_name),r,T().createElement("div",{className:"AdminChannelDetails_archiveContainer"},T().createElement("button",{type:"button",className:oe()("btn","btn-secondary",{"btn-danger":!a},{disabled:i}),onClick:e.onToggleArchive},a?T().createElement("i",{className:"icon icon-archive-arrow-up-outline"}):T().createElement("i",{className:"icon icon-archive-outline"}),T().createElement(N.FormattedMessage,n))))))};$M.propTypes={onToggleArchive:k().func,isArchived:k().bool.isRequired,isDisabled:k().bool};const e_=e=>{let{show:t,onConfirm:s,onCancel:a,displayName:i,toPublic:n,removeAmount:r}=e;const o=n?t_.toPublicTitle:t_.toPrivateTitle,l=n?t_.toPublicMessage:t_.toPrivateMessage,d=n?t_.toPublicMessageSecondLine:t_.toPrivateMessageSecondLine,c=n?t_.toPublicConfirm:t_.toPrivateConfirm,m=T().createElement(N.FormattedMessage,Object.assign({},o,{values:{amount:r}})),u=T().createElement(T().Fragment,null,T().createElement("p",null,T().createElement(N.FormattedMessage,Object.assign({},l,{values:{displayName:T().createElement("strong",null,i)}}))),T().createElement("p",null,T().createElement(N.FormattedMessage,Object.assign({},d,{values:{displayName:T().createElement("strong",null,i)}}))),T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.removeConfirmModal.messageChannelFirstLine",defaultMessage:"{amount, number} {amount, plural, one {user} other {users}} will be removed. They are not in groups linked to this channel.",values:{amount:r}})),T().createElement("p",null,T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.removeConfirmModal.messageChannelSecondLine",defaultMessage:"Are you sure you wish to remove these users?"}))),p=T().createElement(N.FormattedMessage,Object.assign({},c,{values:{amount:r}})),g=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.convertAndRemoveConfirmModal.cancel",defaultMessage:"No, cancel"});return T().createElement(Ta.A,{show:t,title:m,message:u,modalClass:"discard-changes-modal",confirmButtonClass:"btn btn-primary",confirmButtonText:p,cancelButtonText:g,onConfirm:s,onCancel:a})};e_.propTypes={show:k().bool.isRequired,onConfirm:k().func.isRequired,onCancel:k().func.isRequired,displayName:k().string.isRequired,toPublic:k().bool.isRequired,removeAmount:k().number.isRequired};const t_=(0,N.defineMessages)({toPrivateConfirm:{id:"admin.team_channel_settings.convertAndRemoveConfirmModal.toPrivateConfirm",defaultMessage:"Yes, convert channel to private and remove {amount, number} {amount, plural, one {user} other {users}}"},toPrivateMessage:{id:"admin.team_channel_settings.convertConfirmModal.toPrivateMessageFirstLine",defaultMessage:"When you convert {displayName} to a private channel, history and membership are preserved. Publicly shared files remain accessible to anyone with the link. Membership in a private channel is by invitation only."},toPrivateMessageSecondLine:{id:"admin.team_channel_settings.convertConfirmModal.toPrivateMessageSecondLine",defaultMessage:"Are you sure you want to convert {displayName} to a private channel?"},toPrivateTitle:{id:"admin.team_channel_settings.convertAndRemoveConfirmModal.toPrivateTitle",defaultMessage:"Convert channel to private and remove {amount, number} {amount, plural, one {user} other {users}}?"},toPublicConfirm:{id:"admin.team_channel_settings.convertAndRemoveConfirmModal.toPublicConfirm",defaultMessage:"Yes, convert channel to public and remove {amount, number} {amount, plural, one {user} other {users}}"},toPublicMessage:{id:"admin.team_channel_settings.convertConfirmModal.toPublicMessageFirstLine",defaultMessage:"When you convert {displayName} to a public channel, history and membership are preserved. Public channels are discoverable and can be joined by users on the system without invitation."},toPublicMessageSecondLine:{id:"admin.team_channel_settings.convertConfirmModal.toPublicMessageSecondLine",defaultMessage:"Are you sure you want to convert {displayName} to a public channel?"},toPublicTitle:{id:"admin.team_channel_settings.convertAndRemoveConfirmModal.toPublicTitle",defaultMessage:"Convert channel to public and remove {amount, number} {amount, plural, one {user} other {users}}?"}}),s_=e_;var a_=s(45495);function i_(e){const{user:t}=e,s=t.groups||[];let a;const i=T().createElement(N.FormattedMessage,{id:"team_channel_settings.group.group_user_row.numberOfGroups",defaultMessage:"{amount, number} {amount, plural, one {Group} other {Groups}}",values:{amount:s.length}});if(1===s.length)a=String(s[0].display_name);else if(0===s.length)a=i;else{const e=s.map((e=>e.display_name)).join(", ");a=T().createElement(ys.A,{title:e},T().createElement("a",{href:"#"},i))}return T().createElement("div",{className:"UsersToRemoveGroups"},a)}function n_(e){var t;const s=(0,N.useIntl)(),{user:a,membership:i,scope:n}=e;let r,o="guest";switch(null!==(t=a.roles)&&void 0!==t&&t.includes("system_admin")?o="system_admin":i&&("team"===n&&(i.scheme_admin?o="team_admin":i.scheme_user&&(o="team_user")),"channel"===n&&(i.scheme_admin?o="channel_admin":i.scheme_user&&(o="channel_user"))),o){case"system_admin":r=s.formatMessage({id:"admin.user_grid.system_admin",defaultMessage:"System Admin"});break;case"team_admin":r=s.formatMessage({id:"admin.user_grid.team_admin",defaultMessage:"Team Admin"});break;case"channel_admin":r=s.formatMessage({id:"admin.user_grid.channel_admin",defaultMessage:"Channel Admin"});break;case"team_user":case"channel_user":r=s.formatMessage({id:"admin.group_teams_and_channels_row.member",defaultMessage:"Member"});break;default:r=s.formatMessage({id:"admin.user_grid.guest",defaultMessage:"Guest"})}return T().createElement("div",{className:"UsersToRemoveRole"},r)}function r_(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function o_(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?r_(Object(s),!0).forEach((function(t){l_(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):r_(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function l_(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}n_.propTypes={scope:k().oneOf(["team","channel"]).isRequired};class d_ extends T().PureComponent{constructor(e){super(e),l_(this,"setStateLoading",(e=>{this.setState({loading:e})})),l_(this,"loadMembersForProfilesList",(async e=>{const{loadChannelMembersForProfilesList:t,loadTeamMembersForProfilesList:s}=this.props.actions,{scope:a,scopeId:i}=this.props;"channel"===a?await t(e,i):"team"===a&&await s(e,i)})),l_(this,"previousPage",(async()=>{const e=this.state.page<1?0:this.state.page-1;this.setState({page:e})})),l_(this,"nextPage",(async()=>{const{total:e}=this.props,t=10*(this.state.page+1)>=e?this.state.page:this.state.page+1;this.setState({page:t})})),l_(this,"onSearch",(e=>{this.props.actions.setModalSearchTerm(e),this.setState({page:0})})),l_(this,"onFilter",(async e=>{const t=e.role.values,s=[],a=[],i=[];let n={};Object.keys(t).forEach((e=>{t[e].value&&(e.includes("team")?a.push(e):e.includes("channel")?i.push(e):s.push(e))})),(s.length>0||a.length>0||i.length>0)&&(s.length>0&&(n={roles:s}),a.length>0&&(n=o_(o_({},n),{},{team_roles:a})),i.length>0&&(n=o_(o_({},n),{},{channel_roles:i}))),this.props.actions.setModalFilters(n),this.setState({page:0})})),l_(this,"getPaginationProps",(()=>{const{page:e}=this.state,t=10*e+1;let s=10*e+10;const a=this.props.total;return s>a&&(s=a),{startCount:t,endCount:s,page:e,lastPage:s===a,firstPage:0===e,total:a}})),l_(this,"getRows",(()=>{const{members:e,memberships:t,scope:s}=this.props,{startCount:a,endCount:i}=this.getPaginationProps();let n=e;return n=n.slice(a-1,i),this.state.loading?[]:n.map((e=>({cells:{id:e.id,name:T().createElement(Rb,{key:e.id,user:e}),role:T().createElement(n_,{key:e.id,user:e,membership:t[e.id],scope:s}),groups:T().createElement(i_,{key:e.id,user:e})}})))})),l_(this,"getColumns",(()=>[{name:T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.user_list.nameHeader",defaultMessage:"Name"}),field:"name",width:5},{name:T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.user_list.roleHeader",defaultMessage:"Role"}),field:"role",width:2},{name:T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.user_list.groupsHeader",defaultMessage:"Groups"}),field:"groups",width:3}])),l_(this,"getFilterOptions",(()=>{const e={role:{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.role",defaultMessage:"Role"}),values:{[bp.A.SYSTEM_GUEST_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.guest",defaultMessage:"Guest"}),value:!1},[bp.A.SYSTEM_ADMIN_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.system_admin",defaultMessage:"System Admin"}),value:!1}},keys:[bp.A.SYSTEM_GUEST_ROLE,bp.A.SYSTEM_ADMIN_ROLE]}};return"channel"===this.props.scope?(e.role.values=o_(o_({},e.role.values),{},{[bp.A.CHANNEL_USER_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_item.member",defaultMessage:"Member"}),value:!1},[bp.A.CHANNEL_ADMIN_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.channel_admin",defaultMessage:"Channel Admin"}),value:!1}}),e.role.keys=[bp.A.SYSTEM_GUEST_ROLE,bp.A.CHANNEL_USER_ROLE,bp.A.CHANNEL_ADMIN_ROLE,bp.A.SYSTEM_ADMIN_ROLE]):"team"===this.props.scope&&(e.role.values=o_(o_({},e.role.values),{},{[bp.A.TEAM_USER_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_item.member",defaultMessage:"Member"}),value:!1},[bp.A.TEAM_ADMIN_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.team_admin",defaultMessage:"Team Admin"}),value:!1}}),e.role.keys=[bp.A.SYSTEM_GUEST_ROLE,bp.A.TEAM_USER_ROLE,bp.A.TEAM_ADMIN_ROLE,bp.A.SYSTEM_ADMIN_ROLE]),this.props.enableGuestAccounts||(delete e.role.values[bp.A.SYSTEM_GUEST_ROLE],e.role.keys.splice(0,1)),e})),l_(this,"render",(()=>{const e=this.getRows(),t=this.getColumns(),{startCount:s,endCount:a,total:i}=this.getPaginationProps(),n=this.getFilterOptions(),r=T().createElement(N.FormattedMessage,{id:"admin.member_list_group.notFound",defaultMessage:"No users found"});return T().createElement("div",{className:"UsersToRemove"},T().createElement(xe,{columns:t,rows:e,loading:this.state.loading,page:this.state.page,nextPage:this.nextPage,previousPage:this.previousPage,startCount:s,endCount:a,total:i,onSearch:this.onSearch,filterProps:{options:n,keys:["role"],onFilter:this.onFilter},term:this.props.searchTerm||"",placeholderEmpty:r}))})),this.state={page:0,loading:!0}}async componentDidMount(){const{members:e,total:t}=this.props,s=[];let a=0;for(;a<t;)s.push(this.loadMembersForProfilesList(e.slice(a,a+100))),a+=100;await Promise.all(s),this.setStateLoading(!1)}componentWillUnmount(){this.props.actions.setModalSearchTerm(""),this.props.actions.setModalFilters({})}}function c_(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function m_(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?c_(Object(s),!0).forEach((function(t){u_(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):c_(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function u_(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}l_(d_,"propTypes",{members:k().array.isRequired,total:k().number.isRequired,searchTerm:k().string.isRequired,scope:k().oneOf(["team","channel"]).isRequired,scopeId:k().string.isRequired,enableGuestAccounts:k().bool.isRequired,filters:k().shape({roles:k().arrayOf(k().string),channel_roles:k().arrayOf(k().string),team_roles:k().arrayOf(k().string)}).isRequired,actions:k().shape({loadTeamMembersForProfilesList:k().func.isRequired,loadChannelMembersForProfilesList:k().func.isRequired,setModalSearchTerm:k().func.isRequired,setModalFilters:k().func.isRequired}).isRequired});const p_=(0,a.connect)((function(){const e=(0,lb.el)(((e,t,s,a)=>{let i=e;if(""!==t&&(i=(0,Nb.V3)(e,t)),Object.keys(s).length>0){const e=(0,g.f9)((0,Nb.vC)(i),s,a);i=Object.keys(e).map((t=>e[t]))}return i}));return(t,s)=>{var a;const{scope:i,scopeId:n}=s;let{members:r,total:o}=s;const l=t.views.search.modalSearch||"",d=t.views.search.modalFilters||{};let m={};"channel"===i?m=(0,Hi.a9)(t)[n]||{}:"team"===i&&(m=(0,p.RM)(t)[n]||{}),(l||Object.keys(d).length>0)&&(r=e(r,l,d,m),o=r.length);const u="true"===(null===(a=(0,c.zj)(t))||void 0===a?void 0:a.EnableGuestAccounts);return m_(m_({},s),{},{members:r,total:o,searchTerm:l,scope:i,memberships:m,enableGuestAccounts:u,filters:d})}}),(function(e){return{actions:(0,i.zH)({loadChannelMembersForProfilesList:ds.Yn,loadTeamMembersForProfilesList:ds.iO,setModalSearchTerm:gn.qv,setModalFilters:gn.n},e)}}))(d_),g_=e=>{let{total:t,scope:s,scopeId:a,users:i,onExited:n}=e;const[r,o]=(0,A.useState)(!0),l=(0,A.useCallback)((()=>o(!1)),[]),d=T().createElement(N.FormattedMessage,{id:"admin.teamChannelSettings.usersToBeRemovedModal.title",defaultMessage:"<b>{total, number} {total, plural, one {User} other {Users}}</b> To Be Removed",values:{total:t,b:e=>T().createElement("b",null,e)}});let c=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.usersToBeRemovedModal.message",defaultMessage:"The members listed below are not in any of the groups currently linked to this team. Because this team is set to be managed by group sync they will all be removed once saved."});"channel"===s&&(c=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.usersToBeRemovedModal.channel_message",defaultMessage:"The members listed below are not in any of the groups currently linked to this channel. Because this channel is set to be managed by group sync they will all be removed once saved."}));const m=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.usersToBeRemovedModal.close",defaultMessage:"Close"});return T().createElement(hn.Modal,{dialogClassName:"a11y__modal settings-modal",show:r,onHide:l,onExited:n,id:"confirmModal",role:"none","aria-labelledby":"confirmModalLabel"},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,{componentClass:"h1",id:"confirmModalLabel"},d)),T().createElement(hn.Modal.Body,null,T().createElement("div",{className:"group-users-to-remove-modal-description"},c),T().createElement(p_,{members:i,total:t,scope:s,scopeId:a})),T().createElement(hn.Modal.Footer,null,T().createElement("button",{type:"button",autoFocus:!0,className:"btn btn-primary",onClick:l,id:"closeModalButton"},m)))};g_.propTypes={total:k().number.isRequired,scope:k().oneOf(["team","channel"]).isRequired,scopeId:k().string.isRequired,users:k().array.isRequired,onExited:k().func};const h_=g_,f_=e=>{let{warning:t,isChannel:s=!1}=e,a=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.need_groups",defaultMessage:"You must add at least one group to manage this team by sync group members."});return s&&(a=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.need_groups_channel",defaultMessage:"You must add at least one group to manage this channel by sync group members."})),T().createElement(Bt.Ay,{iconClassName:"fa-exclamation-".concat(t?"circle":"triangle"),textClassName:"has-".concat(t?"warning":"error"),error:a})};f_.propTypes={warning:k().bool,isChannel:k().bool};const E_=()=>T().createElement(Bt.Ay,{error:T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.need_domains",defaultMessage:"Please specify allowed email domains."})}),b_=e=>{let{users:t,total:s,scope:a,scopeId:i}=e,n=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.users_will_be_removed",defaultMessage:"{amount, number} {amount, plural, one {User} other {Users}} will be removed from this team. They are not in groups linked to this team.",values:{amount:s}});return"channel"===a&&(n=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.channel_users_will_be_removed",defaultMessage:"{amount, number} {amount, plural, one {User} other {Users}} will be removed from this channel. They are not in groups linked to this channel.",values:{amount:s}})),T().createElement(Bt.Ay,{iconClassName:"fa-exclamation-triangle",textClassName:"has-warning",error:T().createElement("span",null,n,T().createElement(kb.A,{className:"btn btn-tertiary",modalId:mt.IQ.USERS_TO_BE_REMOVED,dialogType:h_,dialogProps:{total:s,users:t,scope:a,scopeId:i}},T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.view_removed_users",defaultMessage:"View These Users"})))})};b_.propTypes={users:k().array.isRequired,total:k().number.isRequired,scope:k().string.isRequired,scopeId:k().string.isRequired};const v_=e=>{let{show:t,onConfirm:s,onCancel:a,inChannel:i,amount:n}=e;const r=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.removeConfirmModal.title",defaultMessage:"Save and remove {amount, number} {amount, plural, one {user} other {users}}?",values:{amount:n}});let o;o=i?T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.removeConfirmModal.messageChannel",defaultMessage:"{amount, number} {amount, plural, one {user} other {users}} will be removed. They are not in groups linked to this channel. Are you sure you wish to remove {amount, plural, one {this user} other {these users}}?",values:{amount:n}}):T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.removeConfirmModal.messageTeam",defaultMessage:"{amount, number} {amount, plural, one {user} other {users}} will be removed. They are not in groups linked to this team. Are you sure you wish to remove {amount, plural, one {this user} other {these users}}?",values:{amount:n}});const l=T().createElement(N.FormattedMessage,{id:"admin.team_channel_settings.removeConfirmModal.remove",defaultMessage:"Save and remove {amount, plural, one {user} other {users}}",values:{amount:n}});return T().createElement(Ta.A,{show:t,title:r,message:o,modalClass:"discard-changes-modal",confirmButtonClass:"btn btn-primary",confirmButtonText:l,onConfirm:s,onCancel:a})};v_.propTypes={show:k().bool.isRequired,onConfirm:k().func.isRequired,onCancel:k().func.isRequired,inChannel:k().bool.isRequired,amount:k().number.isRequired};const y_=v_;function M_(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function __(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?M_(Object(s),!0).forEach((function(t){S_(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):M_(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function S_(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class C_ extends T().PureComponent{constructor(e){var t,s,a,i;super(e),S_(this,"setToggles",((e,t,s)=>{const{channel:a}=this.props,i=(null==a?void 0:a.type)===mt.Ay.OPEN_CHANNEL;this.setState({saveNeeded:!0,isSynced:e,isPublic:t,isPrivacyChanging:t!==i,policyToggled:s},(()=>this.processGroupsChange(this.state.groups))),this.props.actions.setNavigationBlocked(!0)})),S_(this,"handleGroupRemoved",(e=>{const t=this.state.groups.filter((t=>t.id!==e));this.setState({totalGroups:this.state.totalGroups-1}),this.processGroupsChange(t)})),S_(this,"setNewGroupRole",(e=>{const t=v()(this.state.groups).map((t=>(t.id===e&&(t.scheme_admin=!t.scheme_admin),t)));this.processGroupsChange(t)})),S_(this,"channelPermissionsChanged",((e,t)=>{const s=this.state.channelPermissions.findIndex((t=>t.name===e)),a=!this.state.channelPermissions[s].roles[t].value;let i=[...this.state.channelPermissions];if(e===l.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_POST){var n;const e=null===(n=this.props.channelPermissions.find((e=>e.name===l.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS)))||void 0===n?void 0:n.roles[t];i=i.map((s=>s.name!==l.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS||a?s.name===l.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS?{name:s.name,roles:__(__({},s.roles),{},{[t]:{value:null==e?void 0:e.value,enabled:null==e?void 0:e.enabled}})}:s:{name:s.name,roles:__(__({},s.roles),{},{[t]:{value:!1,enabled:!1}})}))}i[s]=__(__({},i[s]),{},{roles:__(__({},i[s].roles),{},{[t]:__(__({},i[s].roles[t]),{},{value:a})})}),this.setState({channelPermissions:i,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),S_(this,"handleGroupChange",(e=>{const t=[...this.state.groups,...e.map((e=>this.props.allGroups[e]))];this.setState({totalGroups:this.state.totalGroups+e.length}),this.processGroupsChange(t)})),S_(this,"hideConvertConfirmModal",(()=>{this.setState({showConvertConfirmModal:!1})})),S_(this,"hideRemoveConfirmModal",(()=>{this.setState({showRemoveConfirmModal:!1})})),S_(this,"hideConvertAndRemoveConfirmModal",(()=>{this.setState({showConvertAndRemoveConfirmModal:!1})})),S_(this,"hideArchiveConfirmModal",(()=>{this.setState({showArchiveConfirmModal:!1})})),S_(this,"onSave",(()=>{const{channel:e}=this.props,{isSynced:t,usersToRemoveCount:s,serverError:a}=this.state;let{isPublic:i,isPrivacyChanging:n}=this.state;if(this.channelToBeArchived())return void this.setState({showArchiveConfirmModal:!0});const r=(null==e?void 0:e.type)===mt.Ay.OPEN_CHANNEL;t&&(i=!1,n=r,this.setState({isPublic:i,isPrivacyChanging:n})),n&&s>0?this.setState({showConvertAndRemoveConfirmModal:!0}):!n||0!==s||a?!n&&s>0?this.setState({showRemoveConfirmModal:!0}):this.handleSubmit():this.setState({showConvertConfirmModal:!0})})),S_(this,"handleSubmit",(async()=>{const{groups:e,channelID:t,actions:s,channel:a}=this.props;if(!a)return;this.setState({showConvertConfirmModal:!1,showRemoveConfirmModal:!1,showConvertAndRemoveConfirmModal:!1,showArchiveConfirmModal:!1,saving:!0});const{groups:i,isSynced:n,isPublic:r,isPrivacyChanging:o,channelPermissions:d,usersToAdd:c,usersToRemove:m,rolesToUpdate:u,policyToggled:p,accessControlPolicies:g,accessControlPoliciesToRemove:h}=this.state;let f,E,b=!1;if(this.channelToBeArchived()){const e=await s.deleteChannel(a.id);return"error"in e&&(f=T().createElement(Bt.Ay,{error:e.error.message}),b=!0),void this.setState({serverError:f,saving:!1,saveNeeded:b,isPrivacyChanging:!1,usersToRemoveCount:0,rolesToUpdate:{},usersToAdd:{},usersToRemove:{}},(()=>{s.setNavigationBlocked(b),b||(0,Li.J)().push("/admin_console/user_management/channels")}))}if(this.channelToBeRestored()&&!this.state.serverError){const e=await s.unarchiveChannel(a.id);"error"in e&&(f=T().createElement(Bt.Ay,{error:e.error.message})),this.setState({serverError:f,previousServerError:void 0})}if(0===this.state.groups.length&&n)return f=T().createElement(f_,{isChannel:!0}),b=!0,this.setState({serverError:f,saving:!1,saveNeeded:b}),void s.setNavigationBlocked(b);o&&(E=s.updateChannelPrivacy(a.id,r?mt.Ay.OPEN_CHANNEL:mt.Ay.PRIVATE_CHANNEL));const v=i.filter((t=>e.some((e=>e.id===t.id&&e.scheme_admin!==t.scheme_admin)))).map((e=>s.patchGroupSyncable(e.id,t,sc.CL.Channel,{scheme_admin:e.scheme_admin}))),y=i.filter((t=>!e.some((e=>e.id===t.id)))).map((e=>s.linkGroupSyncable(e.id,t,sc.CL.Channel,{auto_add:!0,scheme_admin:e.scheme_admin}))),M=[...v,...y];E&&M.push(E);let _=(await Promise.all(M)).find((e=>"error"in e));_&&"error"in _&&(f=T().createElement(Bt.Ay,{error:_.error.message}));const S=await s.patchChannel(a.id,__(__({},a),{},{group_constrained:n}));"error"in S&&(f=T().createElement(Bt.Ay,{error:S.error.message}));const C=e.filter((e=>!i.some((t=>t.id===e.id)))).map((e=>s.unlinkGroupSyncable(e.id,t,sc.CL.Channel)));if(C.length>0&&(_=(await Promise.all(C)).find((e=>"error"in e)),_&&"error"in _&&(f=T().createElement(Bt.Ay,{error:_.error.message}))),!(_&&"error"in _||"error"in S)){const e=[];this.props.channelModerationEnabled&&e.push(s.getGroups(t)),o&&this.props.channelModerationEnabled&&e.push(s.getChannelModerations(t).then((()=>{const e=d.findIndex((e=>e.name===l.xB.CHANNEL_MODERATED_PERMISSIONS.MANAGE_MEMBERS));if(d){const t=this.props.channelPermissions.find((e=>e.name===l.xB.CHANNEL_MODERATED_PERMISSIONS.MANAGE_MEMBERS));d[e]=t||d[e]}this.setState({channelPermissions:d})}))),e.length>0&&await Promise.all(e),await Promise.resolve()}if(this.props.channelModerationEnabled){const e=d.map((e=>({name:e.name,roles:__(__({},e.roles.members&&e.roles.members.enabled&&{members:e.roles.members.value}),e.roles.guests&&e.roles.guests.enabled&&{guests:e.roles.guests.value})}))),a=await s.patchChannelModerations(t,e);a.error&&(f=T().createElement(Bt.Ay,{error:a.error.message})),this.restrictChannelMentions()}if(p){if(r)return f=T().createElement(Bt.Ay,{error:T().createElement(N.FormattedMessage,{id:"admin.channel_details.policy_public_error",defaultMessage:"You cannot assign a policy to a public channel."})}),b=!0,this.setState({serverError:f,saving:!1,saveNeeded:b}),void s.setNavigationBlocked(b);if(n)return f=T().createElement(Bt.Ay,{error:T().createElement(N.FormattedMessage,{id:"admin.channel_details.policy_synced_error",defaultMessage:"You cannot assign a policy to a synced channel."})}),b=!0,this.setState({serverError:f,saving:!1,saveNeeded:b}),void s.setNavigationBlocked(b);if(0===g.length)return f=T().createElement(Bt.Ay,{error:T().createElement(N.FormattedMessage,{id:"admin.channel_details.policy_required_error",defaultMessage:"You must select an access policy when attribute-based channel access is enabled."})}),b=!0,this.setState({serverError:f,saving:!1,saveNeeded:b}),void s.setNavigationBlocked(b);if(g.length>0)try{await Promise.all(g.map((e=>s.assignChannelToAccessControlPolicy(e.id,t))))}catch(e){f=T().createElement(Bt.Ay,{error:e.message}),b=!0}if(h.length>0)try{await Promise.all(h.map((e=>s.unassignChannelsFromAccessControlPolicy(e,[t]))))}catch(e){f=T().createElement(Bt.Ay,{error:e.message}),b=!0}}else await s.deleteAccessControlPolicy(t).catch((e=>{e.message&&!e.message.includes("not found")&&(f=T().createElement(Bt.Ay,{error:e.message}),b=!0)}));let A=o;null==f&&(A=!1);const w=Object.values(c),R=Object.values(m),O=Object.keys(u);if((w.length>0||R.length>0||O.length>0)&&!n){const e=[],s=[],{addChannelMember:a,removeChannelMember:i,updateChannelMemberSchemeRoles:n}=this.props.actions;if(w.forEach((s=>{e.push(a(t,s.id))})),R.forEach((e=>{s.push(i(t,e.id))})),e.length>0){const t=(await Promise.all(e)).find((e=>"error"in e));t&&"error"in t&&(f=T().createElement(Bt.Ay,{error:t.error.message}))}if(s.length>0){const e=(await Promise.all(s)).find((e=>"error"in e));e&&"error"in e&&(f=T().createElement(Bt.Ay,{error:e.error.message}))}const r=[],o=[];if(O.forEach((e=>{const{schemeUser:s,schemeAdmin:a}=u[e];a?r.push(n(t,e,s,a)):o.push(n(t,e,s,a))})),r.length>0){const e=(await Promise.all(r)).find((e=>"error"in e));e&&"error"in e&&(f=T().createElement(Bt.Ay,{error:e.error.message}))}if(o.length>0){const e=(await Promise.all(o)).find((e=>"error"in e));e&&"error"in e&&(f=T().createElement(Bt.Ay,{error:e.error.message}))}}this.setState({serverError:f,saving:!1,saveNeeded:b,isPrivacyChanging:A,usersToRemoveCount:0,rolesToUpdate:{},usersToAdd:{},usersToRemove:{}},(()=>{s.setNavigationBlocked(b),b||f||(0,Li.J)().push("/admin_console/user_management/channels")}))})),S_(this,"channelToBeArchived",(()=>{var e;const{isLocalArchived:t}=this.state,s=0!==(null===(e=this.props.channel)||void 0===e?void 0:e.delete_at);return t&&!s})),S_(this,"channelToBeRestored",(()=>{var e;const{isLocalArchived:t}=this.state,s=0!==(null===(e=this.props.channel)||void 0===e?void 0:e.delete_at);return!t&&s})),S_(this,"addRolesToUpdate",((e,t,s)=>{const{rolesToUpdate:a}=this.state;a[e]={schemeUser:t,schemeAdmin:s},this.setState({rolesToUpdate:__({},a),saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),S_(this,"addUserToRemove",(e=>{var t,s;let{usersToRemoveCount:a}=this.state;const{usersToAdd:i,usersToRemove:n,rolesToUpdate:r}=this.state;(null===(t=i[e.id])||void 0===t?void 0:t.id)===e.id?delete i[e.id]:(null===(s=n[e.id])||void 0===s?void 0:s.id)!==e.id&&(a+=1,n[e.id]=e),delete r[e.id],this.setState({usersToRemove:__({},n),usersToAdd:__({},i),rolesToUpdate:__({},r),usersToRemoveCount:a,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),S_(this,"addUsersToAdd",(e=>{let{usersToRemoveCount:t}=this.state;const s=__({},this.state.usersToRemove),a=__({},this.state.usersToAdd);e.forEach((e=>{var i;(null===(i=s[e.id])||void 0===i?void 0:i.id)===e.id?(delete s[e.id],t-=1):a[e.id]=e})),this.setState({usersToAdd:__({},a),usersToRemove:__({},s),usersToRemoveCount:t,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),S_(this,"onToggleArchive",(()=>{const{isLocalArchived:e,serverError:t,previousServerError:s}=this.state,{isDisabled:a}=this.props;if(a)return;const i={saveNeeded:!0,isLocalArchived:!e};i.isLocalArchived?(i.previousServerError=t,i.serverError=void 0):(i.serverError=s,i.previousServerError=void 0),this.props.actions.setNavigationBlocked(!0),this.setState(i)})),S_(this,"onPolicySelected",(e=>{this.setState({accessControlPolicies:[e],saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),S_(this,"onPolicyRemoveAll",(()=>{const{accessControlPolicies:e,accessControlPoliciesToRemove:t}=this.state;for(const s of e)this.setState({accessControlPoliciesToRemove:[...t,s.id],saveNeeded:!0});this.setState({accessControlPolicies:[]}),this.props.actions.setNavigationBlocked(!0)})),S_(this,"onPolicyRemove",(e=>{const{accessControlPoliciesToRemove:t,accessControlPolicies:s}=this.state;this.setState({accessControlPoliciesToRemove:[...t,e],accessControlPolicies:s.filter((t=>t.id!==e)),saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),S_(this,"fetchAccessControlPolicies",(e=>{e&&this.props.actions.getAccessControlPolicy(e).then((e=>{if(e.data){const t=e.data,s=[],a=[];if(this.setState({accessControlPolicy:t}),t.imports&&t.imports.length>0){for(const e of t.imports){const t=this.props.actions.getAccessControlPolicy(e).then((e=>{e.data&&s.push(e.data)}));a.push(t)}Promise.all(a).then((()=>{this.setState({accessControlPolicies:s})}))}else this.setState({accessControlPolicies:[]})}}))})),S_(this,"render",(()=>{const{totalGroups:e,saving:t,saveNeeded:s,serverError:a,isSynced:i,isPublic:n,isDefault:r,groups:o,showConvertConfirmModal:l,showRemoveConfirmModal:d,showConvertAndRemoveConfirmModal:c,usersToRemoveCount:m,channelPermissions:u,teamScheme:p,usersToRemove:g,usersToAdd:h,isLocalArchived:f,showArchiveConfirmModal:E,policyToggled:b,accessControlPolicies:v}=this.state,{channel:y,team:M}=this.props;if(!y)return null;const _=this.props.groups.filter((e=>!o.find((t=>t.id===e.id)))),S=T().createElement(T().Fragment,null,T().createElement(a_.A,{show:l,onCancel:this.hideConvertConfirmModal,onConfirm:this.handleSubmit,displayName:y.display_name||"",toPublic:n}),this.props.channelModerationEnabled&&T().createElement(ZM,{channelPermissions:u,onChannelPermissionsChanged:this.channelPermissionsChanged,teamSchemeID:null==p?void 0:p.id,teamSchemeDisplayName:null==p?void 0:p.display_name,guestAccountsEnabled:this.props.guestAccountsEnabled,isPublic:y.type===mt.Ay.OPEN_CHANNEL,readOnly:this.props.isDisabled}),T().createElement(y_,{show:d,onCancel:this.hideRemoveConfirmModal,onConfirm:this.handleSubmit,inChannel:!0,amount:m}),T().createElement(s_,{show:c,onCancel:this.hideConvertAndRemoveConfirmModal,onConfirm:this.handleSubmit,displayName:y.display_name||"",toPublic:n,removeAmount:m}),T().createElement(XM,{isPublic:n,isSynced:i,isDefault:r,onToggle:this.setToggles,isDisabled:this.props.isDisabled,groupsSupported:this.props.channelGroupsEnabled,abacSupported:this.props.abacSupported,policyEnforced:b,policyEnforcedToggleAvailable:0===v.length}),this.props.abacSupported&&b&&T().createElement(rM,{parentPolicies:this.state.accessControlPolicies,actions:{onPolicySelected:this.onPolicySelected,onPolicyRemoveAll:this.onPolicyRemoveAll,onPolicyRemove:this.onPolicyRemove,searchPolicies:this.props.actions.searchPolicies}}),this.props.channelGroupsEnabled&&!b&&T().createElement(MM,{synced:i,channel:y,totalGroups:e,groups:o,removedGroups:_,onAddCallback:this.handleGroupChange,onGroupRemoved:this.handleGroupRemoved,setNewGroupRole:this.setNewGroupRole,isDisabled:this.props.isDisabled}),!i&&T().createElement(FM,{onRemoveCallback:this.addUserToRemove,onAddCallback:this.addUsersToAdd,usersToRemove:g,usersToAdd:h,updateRole:this.addRolesToUpdate,channelId:this.props.channelID,isDisabled:this.props.isDisabled}));return T().createElement("div",{className:"wrapper--fixed"},T().createElement(nt,{withBackButton:!0},T().createElement("div",null,T().createElement(tt.A,{to:"/admin_console/user_management/channels",className:"fa fa-angle-left back"}),T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_detail.channel_configuration",defaultMessage:"Channel Configuration"}))),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement($M,{channel:y,team:M,onToggleArchive:this.onToggleArchive,isArchived:f,isDisabled:this.props.isDisabled}),T().createElement(Ta.A,{show:E,title:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_detail.archive_confirm.title",defaultMessage:"Save and Archive Channel"}),message:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_detail.archive_confirm.message",defaultMessage:"Saving will archive the channel from the team and make it's contents inaccessible for all users. Are you sure you wish to save and archive this channel?"}),confirmButtonText:T().createElement(N.FormattedMessage,{id:"admin.channel_settings.channel_detail.archive_confirm.button",defaultMessage:"Save and Archive Channel"}),onConfirm:this.handleSubmit,onCancel:this.hideArchiveConfirmModal}),!f&&S)),T().createElement(it,{saving:t,saveNeeded:s,onClick:this.onSave,serverError:a,cancelLink:"/admin_console/user_management/channels",isDisabled:this.props.isDisabled}))})),this.state={isSynced:Boolean(null===(t=e.channel)||void 0===t?void 0:t.group_constrained),isPublic:(null===(s=e.channel)||void 0===s?void 0:s.type)===mt.Ay.OPEN_CHANNEL,isDefault:(null===(a=e.channel)||void 0===a?void 0:a.name)===mt.Ay.DEFAULT_CHANNEL,isPrivacyChanging:!1,saving:!1,totalGroups:e.totalGroups,showConvertConfirmModal:!1,showRemoveConfirmModal:!1,showConvertAndRemoveConfirmModal:!1,usersToRemoveCount:0,usersToRemove:{},usersToAdd:{},rolesToUpdate:{},groups:e.groups,saveNeeded:!1,serverError:void 0,previousServerError:void 0,channelPermissions:e.channelPermissions,teamScheme:e.teamScheme,isLocalArchived:0!==(null===(i=e.channel)||void 0===i?void 0:i.delete_at),showArchiveConfirmModal:!1,policyToggled:!1,accessControlPolicy:void 0,accessControlPolicies:[],accessControlPoliciesToRemove:[],abacSupported:e.abacSupported}}componentDidUpdate(e){var t,s,a;const{channel:i,totalGroups:n,actions:r}=this.props;(null==i?void 0:i.id)===(null===(t=e.channel)||void 0===t?void 0:t.id)&&n===e.totalGroups||this.setState({totalGroups:n,isSynced:Boolean(null==i?void 0:i.group_constrained),isPublic:(null==i?void 0:i.type)===mt.Ay.OPEN_CHANNEL,isDefault:(null==i?void 0:i.name)===mt.Ay.DEFAULT_CHANNEL,isLocalArchived:0!==(null==i?void 0:i.delete_at),policyToggled:(null==i?void 0:i.policy_enforced)||!1}),null!==(s=e.team)&&void 0!==s&&s.id||null!==(a=e.channel)&&void 0!==a&&a.team_id||null==i||!i.team_id||r.getTeam(i.team_id).then((async e=>{e.data&&e.data.scheme_id&&await r.loadScheme(e.data.scheme_id)})).then((()=>this.setState({teamScheme:this.props.teamScheme})))}componentDidMount(){const{channelID:e,channel:t,actions:s}=this.props;e&&(this.props.channelModerationEnabled&&(s.getGroups(e).then((()=>this.setState({groups:this.props.groups}))),s.getChannelModerations(e).then((()=>this.restrictChannelMentions()))),s.getChannel(e),null!=t&&t.policy_enforced&&(this.fetchAccessControlPolicies(e),this.setState({policyToggled:!0}))),null!=t&&t.team_id&&s.getTeam(t.team_id).then((async e=>{e.data&&e.data.scheme_id&&await s.loadScheme(e.data.scheme_id)})).then((()=>this.setState({teamScheme:this.props.teamScheme})))}restrictChannelMentions(){var e;let t=this.props.channelPermissions;const s=null===(e=t.find((e=>e.name===l.xB.CHANNEL_MODERATED_PERMISSIONS.CREATE_POST)))||void 0===e?void 0:e.roles;if(s)for(const e of Object.keys(s))t=t.map((t=>t.name!==l.xB.CHANNEL_MODERATED_PERMISSIONS.USE_CHANNEL_MENTIONS||s[e].value&&s[e].enabled?t:{name:t.name,roles:__(__({},t.roles),{},{[e]:{value:!1,enabled:!1}})}));this.setState({channelPermissions:t})}async processGroupsChange(e){const{actions:t,channelID:s}=this.props;let a;t.setNavigationBlocked(!0);let i=0;if(this.state.isSynced)try{if(0===e.length)a=T().createElement(f_,{warning:!0,isChannel:!0});else{if(!s)return;const n=await t.membersMinusGroupMembers(s,e.map((e=>e.id)));"data"in n&&(i=n.data.total_count,i>0&&(a=T().createElement(b_,{total:i,users:n.data.users,scope:"channel",scopeId:this.props.channelID})))}}catch(e){a=e}this.setState({groups:e,usersToRemoveCount:i,saveNeeded:!0,serverError:a})}}S_(C_,"propTypes",{channelID:k().string.isRequired,groups:k().array.isRequired,totalGroups:k().number.isRequired,channelPermissions:k().array.isRequired,guestAccountsEnabled:k().bool.isRequired,channelModerationEnabled:k().bool.isRequired,channelGroupsEnabled:k().bool.isRequired,abacSupported:k().bool.isRequired,isDisabled:k().bool,actions:k().shape({getGroups:k().func.isRequired,linkGroupSyncable:k().func.isRequired,unlinkGroupSyncable:k().func.isRequired,membersMinusGroupMembers:k().func.isRequired,setNavigationBlocked:k().func.isRequired,getChannel:k().func.isRequired,getTeam:k().func.isRequired,getChannelModerations:k().func.isRequired,patchChannel:k().func.isRequired,updateChannelPrivacy:k().func.isRequired,patchGroupSyncable:k().func.isRequired,patchChannelModerations:k().func.isRequired,loadScheme:k().func.isRequired,addChannelMember:k().func.isRequired,removeChannelMember:k().func.isRequired,updateChannelMemberSchemeRoles:k().func.isRequired,deleteChannel:k().func.isRequired,unarchiveChannel:k().func.isRequired,getAccessControlPolicy:k().func.isRequired,searchPolicies:k().func.isRequired,assignChannelToAccessControlPolicy:k().func.isRequired,unassignChannelsFromAccessControlPolicy:k().func.isRequired,deleteAccessControlPolicy:k().func.isRequired}).isRequired});const A_=(0,a.connect)((function(e,t){const s=(0,c.zj)(e),a=(0,c.Ay)(e),i="true"===(null==a?void 0:a.IsLicensed),n=i&&(0,qs.be)(a),r=i&&(0,qs.ND)(a),o=i&&(0,qs.$X)(a)&&"true"===s.FeatureFlagAttributeBasedAccessControl,l="true"===s.EnableGuestAccounts,d=t.match.params.channel_id,m=(0,Hi.c)(e,d),u=m?(0,p.Uo)(e,m.team_id):void 0,g=(0,tc.dJ)(e,d);return{channelID:d,channel:m,team:u,groups:g,totalGroups:g.length,allGroups:(0,tc.GX)(e),channelPermissions:(0,Hi.Bt)(e,d),teamScheme:u?rp(e,u.scheme_id):void 0,guestAccountsEnabled:l,channelModerationEnabled:n,channelGroupsEnabled:r,abacSupported:o}}),(function(e){return{actions:(0,i.zH)({getGroups:ec.dJ,linkGroupSyncable:ec.PY,unlinkGroupSyncable:ec.IC,membersMinusGroupMembers:ji.qN,setNavigationBlocked:h.Jb,getChannel:ji.c,getTeam:o.Uo,getChannelModerations:ji.Bt,patchChannel:ji.ER,updateChannelPrivacy:ji.nr,patchGroupSyncable:ec.r2,patchChannelModerations:ji.XB,loadScheme:$u,addChannelMember:ji.zb,removeChannelMember:ji.ur,updateChannelMemberSchemeRoles:ji.pN,deleteChannel:ji.D3,unarchiveChannel:ji.fk,getAccessControlPolicy:xi.Ar,assignChannelToAccessControlPolicy:(e,t)=>(0,xi.GF)(e,[t]),unassignChannelsFromAccessControlPolicy:xi.kj,deleteAccessControlPolicy:xi.fQ,searchPolicies:xi.a5},e)}}))(C_);function T_(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function N_(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class w_ extends T().PureComponent{constructor(e){var t;super(e),t=this,N_(this,"isSearching",((e,t)=>e.length+Object.keys(t).length>0)),N_(this,"getPaginationProps",(()=>{const{page:e,term:t,filters:s}=this.state,a=this.isSearching(t,s)?this.state.total:this.props.total;let i=(e+1)*Wy;return i=i>a?a:i,{startCount:e*Wy+1,endCount:i,total:a}})),N_(this,"loadPage",(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.setState({loading:!0,term:s,filters:a}),t.isSearching(s,a)?e>0?t.searchTeams(e,s,a):t.searchTeamsDebounced(e,s,a):(await t.props.actions.getData(e,Wy),t.setState({page:e,loading:!1}))})),N_(this,"searchTeams",(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=[],n=0,r=!0;const o=await t.props.actions.searchTeams(s,function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?T_(Object(s),!0).forEach((function(t){N_(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):T_(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}({page:e,per_page:Wy},a));null!=o&&o.data&&(i=e>0?t.state.teams.concat(o.data.teams):o.data.teams,n=o.data.total_count,r=!1),t.setState({page:e,loading:!1,teams:i,total:n,searchErrored:r})})),N_(this,"searchTeamsDebounced",(0,Zn.sg)((function(e,s){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.searchTeams(e,s,a)}),300,!1,(()=>{}))),N_(this,"nextPage",(()=>{this.loadPage(this.state.page+1,this.state.term,this.state.filters)})),N_(this,"previousPage",(()=>{this.setState({page:this.state.page-1})})),N_(this,"onSearch",(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";t.loadPage(0,e,t.state.filters)})),N_(this,"onFilter",(e=>{let{management:t}=e;const s={};let a;const{allow_open_invite:{value:i},invite_only:{value:n}}=t.values,r=[i,n];this.props.isLicensedForLDAPGroups&&(a=t.values.group_constrained.value,r.push(a)),r.includes(!1)&&r.includes(!0)&&(i&&n?s.group_constrained=!1:(a&&(s.group_constrained=!0),(i||n)&&(s.allow_open_invite=Boolean(i)))),this.loadPage(0,this.state.term,s)})),N_(this,"getColumns",(()=>[{name:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_list.nameHeader",defaultMessage:"Name"}),field:"name",width:4,fixed:!0},{name:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_list.mappingHeader",defaultMessage:"Management"}),field:"management",fixed:!0},{name:"",field:"edit",textAlign:"right",fixed:!0}])),N_(this,"renderManagementMethodText",(e=>e.group_constrained?T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_row.managementMethod.groupSync",defaultMessage:"Group Sync"}):e.allow_open_invite?T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_row.managementMethod.anyoneCanJoin",defaultMessage:"Anyone Can Join"}):T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_row.managementMethod.inviteOnly",defaultMessage:"Invite Only"}))),N_(this,"getRows",(()=>{const{data:e}=this.props,{term:t,teams:s,filters:a}=this.state,{startCount:i,endCount:n}=this.getPaginationProps();let r=this.isSearching(t,a)?s:e;return r=r.slice(i-1,n),r.map((e=>({cells:{id:e.id,name:T().createElement("div",{className:"TeamList_nameColumn"},T().createElement("div",{className:"TeamList__lowerOpacity"},T().createElement(Le.A,{size:"sm",url:D.lt(e),content:e.display_name})),T().createElement("div",{className:"TeamList_nameText"},T().createElement("b",{"data-testid":"team-display-name"},e.display_name,0!==e.delete_at&&T().createElement("span",{className:"archived-label"}," ",T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_row.archived",defaultMessage:"(Archived)"}))),e.description&&T().createElement("div",{className:"TeamList_descriptionText"},e.description))),management:T().createElement("span",{"data-testid":"".concat(e.name,"Management"),className:"TeamList_managementText"},this.renderManagementMethodText(e)),edit:T().createElement("span",{"data-testid":"".concat(e.display_name,"edit"),className:"group-actions TeamList_editText"},T().createElement(w.Link,{to:"/admin_console/user_management/teams/".concat(e.id)},T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_row.configure",defaultMessage:"Edit"})))},onClick:()=>(0,Li.J)().push("/admin_console/user_management/teams/".concat(e.id))})))})),this.state={loading:!1,term:"",teams:[],page:0,total:0,searchErrored:!1,filters:{}}}componentDidMount(){this.loadPage()}render(){const{term:e,searchErrored:t}=this.state,s=this.getRows(),a=this.getColumns(),{startCount:i,endCount:n,total:r}=this.getPaginationProps(),{isLicensedForLDAPGroups:o}=this.props;let l=T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_list.no_teams_found",defaultMessage:"No teams found"});t&&(l=T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_list.search_teams_errored",defaultMessage:"Something went wrong. Try again"}));const d={management:{name:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_list.mappingHeader",defaultMessage:"Management"}),values:{allow_open_invite:{name:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_row.managementMethod.anyoneCanJoin",defaultMessage:"Anyone Can Join"}),value:!1},invite_only:{name:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_row.managementMethod.inviteOnly",defaultMessage:"Invite Only"}),value:!1}},keys:["allow_open_invite","invite_only"]}};o&&(d.management.values.group_constrained={name:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_row.managementMethod.groupSync",defaultMessage:"Group Sync"}),value:!1},d.management.keys.push("group_constrained"));const c={options:d,keys:["management"],onFilter:this.onFilter},m={minHeight:"".concat(80*s.length,"px")};return T().createElement("div",{className:"TeamsList"},T().createElement(xe,{columns:a,rows:s,loading:this.state.loading,page:this.state.page,nextPage:this.nextPage,previousPage:this.previousPage,startCount:i,endCount:n,total:r,onSearch:this.onSearch,term:e,placeholderEmpty:l,rowsContainerStyles:m,filterProps:c}))}}N_(w_,"propTypes",{data:k().array.isRequired,total:k().number.isRequired,actions:k().shape({}).isRequired,isLicensedForLDAPGroups:k().bool});const R_=(0,S.Mz)("getSortedListOfTeams",p.ZN,(e=>Object.values(e).sort(((e,t)=>e.display_name.localeCompare(t.display_name))))),O_=(0,a.connect)((function(e){return{data:R_(e),total:e.entities.teams.totalCount||0,isLicensedForLDAPGroups:"true"===e.entities.general.license.LDAPGroups}}),(function(e){return{actions:(0,i.zH)({getData:(e,t)=>(0,o.ZN)(e,t,!0),searchTeams:o.Fo},e)}}))(w_);function I_(e){return T().createElement("div",{className:"wrapper--fixed"},T().createElement(nt,null,T().createElement(N.FormattedMessage,{id:"admin.team_settings.groupsPageTitle",defaultMessage:"{siteName} Teams",values:{siteName:e.siteName}})),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement(dc,{id:"teams",title:(0,N.defineMessage)({id:"admin.team_settings.title",defaultMessage:"Teams"}),subtitle:(0,N.defineMessage)({id:"admin.team_settings.description",defaultMessage:"Manage team settings."})},T().createElement(O_,null)))))}I_.propTypes={siteName:k().string.isRequired};const k_=(0,a.connect)((function(e){return{siteName:(0,c.zj)(e).SiteName}}))(I_);var P_=s(69669);const x_=e=>{let{onGroupRemoved:t,syncChecked:s,team:a,onAddCallback:i,totalGroups:n,groups:r,removedGroups:o,setNewGroupRole:l,isDisabled:d}=e;return T().createElement(dc,{id:"team_groups",title:s?(0,N.defineMessage)({id:"admin.team_settings.team_detail.syncedGroupsTitle",defaultMessage:"Synced Groups"}):(0,N.defineMessage)({id:"admin.team_settings.team_detail.groupsTitle",defaultMessage:"Groups"}),subtitle:s?(0,N.defineMessage)({id:"admin.team_settings.team_detail.syncedGroupsDescription",defaultMessage:"Add and remove team members based on their group membership."}):(0,N.defineMessage)({id:"admin.team_settings.team_detail.groupsDescription",defaultMessage:"Group members will be added to the team."}),button:T().createElement(kb.A,{id:"addGroupsToTeamToggle",className:"btn btn-primary",modalId:mt.IQ.ADD_GROUPS_TO_TEAM,dialogType:P_.A,dialogProps:{team:a,onAddCallback:i,skipCommit:!0,excludeGroups:r,includeGroups:o},disabled:d},T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_details.add_group",defaultMessage:"Add Group"}))},T().createElement(yM,{team:a,isModeSync:s,groups:r,totalGroups:n,onGroupRemoved:t,setNewGroupRole:l,type:"team",isDisabled:d}))};function D_(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function L_(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?D_(Object(s),!0).forEach((function(t){F_(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):D_(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function F_(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}x_.propTypes={onGroupRemoved:k().func.isRequired,syncChecked:k().bool.isRequired,onAddCallback:k().func.isRequired,totalGroups:k().number.isRequired,groups:k().array.isRequired,removedGroups:k().array.isRequired,setNewGroupRole:k().func.isRequired,isDisabled:k().bool};class U_ extends T().PureComponent{constructor(e){super(e),F_(this,"componentDidMount",(async()=>{await this.props.actions.getProfilesNotInTeam(this.props.team.id,!1,0,100),this.setUsersLoadingState(!1)})),F_(this,"setUsersLoadingState",(e=>{this.setState({loading:e})})),F_(this,"search",(async e=>{this.setUsersLoadingState(!0);let t=[];const s=""!==e;if(s){const{data:s}=await this.props.actions.searchProfiles(e,L_({not_in_team_id:this.props.team.id,replace:!0},this.state.filterOptions));t=s}else await this.props.actions.getProfilesNotInTeam(this.props.team.id,!1,0,100);this.setState({loading:!1,searchResults:t,search:s})})),F_(this,"handleHide",(()=>{this.setState({show:!1})})),F_(this,"handleExit",(()=>{this.props.onExited&&this.props.onExited()})),F_(this,"renderOption",((e,t,s,a)=>{let i="";return t&&(i="more-modal__row--selected"),T().createElement("div",{key:e.id,ref:t?this.selectedItemRef:e.id,className:"more-modal__row clickable "+i,onClick:()=>s(e),onMouseMove:()=>a(e)},T().createElement(wb.A,{src:O.mT.getProfilePictureUrl(e.id,e.last_picture_update),size:"md"}),T().createElement("div",{className:"more-modal__details"},T().createElement("div",{className:"more-modal__name"},(0,D.xK)(e),e.is_bot&&T().createElement(Pb.A,null),(0,Nb.P)(e.roles)&&T().createElement(xb.A,{className:"popoverlist"}))),T().createElement("div",{className:"more-modal__actions"},T().createElement("button",{className:"more-modal__actions--round","aria-label":"Add users to team"},T().createElement("i",{className:"icon icon-plus"}))))})),F_(this,"renderValue",(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.username)||""})),F_(this,"renderAriaLabel",(e=>(null==e?void 0:e.username)||"")),F_(this,"handleAdd",(e=>{const t=[...this.state.values];t.includes(e)||t.push(e),this.setState({values:t})})),F_(this,"handleDelete",(e=>{this.setState({values:e})})),F_(this,"handlePageChange",((e,t)=>{if(e>t){const t=this.props.users.length/50<=e+1;this.setUsersLoadingState(t),this.props.actions.getProfilesNotInTeam(this.props.team.id,!1,e,100).then((()=>this.setUsersLoadingState(!1)))}})),F_(this,"handleSubmit",(()=>{this.props.onAddCallback(this.state.values),this.handleHide()})),F_(this,"render",(()=>{const e=T().createElement("div",{id:"numPeopleRemaining"},T().createElement(N.FormattedMessage,{id:"multiselect.numPeopleRemaining",defaultMessage:"Use ↑↓ to browse, ↵ to select. You can add {num, number} more {num, plural, one {person} other {people}}. ",values:{num:20-this.state.values.length}})),t=(0,N.defineMessage)({id:"multiselect.add",defaultMessage:"Add"}),s=(0,N.defineMessage)({id:"multiselect.adding",defaultMessage:"Adding..."});let a=null;this.state.addError&&(a=T().createElement("div",{className:"has-error col-sm-12"},T().createElement("label",{className:"control-label font-weight--normal"},this.state.addError)));let i=[];if(i=this.state.search?this.state.searchResults:this.props.users,this.props.excludeUsers){const e=e=>!this.props.excludeUsers[e.id];i=i.filter(e)}if(this.props.includeUsers){const e=Object.values(this.props.includeUsers);i=[...i,...e]}const n=i.map((e=>L_({label:e.username,value:e.id},e)));return T().createElement(hn.Modal,{id:"addUsersToTeamModal",dialogClassName:"a11y__modal more-modal more-direct-channels",show:this.state.show,onHide:this.handleHide,onExited:this.handleExit},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,{componentClass:"h1"},T().createElement(N.FormattedMessage,{id:"add_users_to_team.title",defaultMessage:"Add New Members to {teamName} Team",values:{teamName:T().createElement("strong",null,this.props.team.name)}}))),T().createElement(hn.Modal.Body,null,a,T().createElement(fn.A,{key:"addUsersToTeamKey",options:n,optionRenderer:this.renderOption,intl:this.props.intl,selectedItemRef:this.selectedItemRef,ariaLabelRenderer:this.renderAriaLabel,values:this.state.values,valueRenderer:this.renderValue,perPage:50,handlePageChange:this.handlePageChange,handleInput:this.search,handleDelete:this.handleDelete,handleAdd:this.handleAdd,handleSubmit:this.handleSubmit,maxValues:20,numRemainingText:e,buttonSubmitText:t,buttonSubmitLoadingText:s,saving:this.state.saving,loading:this.state.loading,placeholderText:(0,N.defineMessage)({id:"multiselect.placeholder",defaultMessage:"Search and add members"})})))}));let t={};e.filterExcludeGuests&&(t={role:"system_user"}),this.state={searchResults:[],values:[],show:!0,search:!1,saving:!1,addError:null,loading:!0,filterOptions:t},this.selectedItemRef=T().createRef()}}F_(U_,"propTypes",{users:k().array.isRequired,filterExcludeGuests:k().bool,onAddCallback:k().func.isRequired,onExited:k().func,actions:k().shape({getProfilesNotInTeam:k().func.isRequired,searchProfiles:k().func.isRequired}).isRequired});const B_=(0,N.injectIntl)(U_);function j_(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function H_(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const G_=(0,a.connect)((function(e,t){const{id:s}=t.team;let a={active:!0};return t.filterExcludeGuests&&(a=function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?j_(Object(s),!0).forEach((function(t){H_(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):j_(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}({role:"system_user"},a)),{users:(0,g.mY)(e,s,a)}}),(function(e){return{actions:(0,i.zH)({getProfilesNotInTeam:bi.mY,searchProfiles:bi.U},e)}}))(B_);function q_(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function V_(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?q_(Object(s),!0).forEach((function(t){z_(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):q_(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function z_(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class W_ extends T().PureComponent{constructor(e){super(e),z_(this,"setStateLoading",(e=>{this.setState({loading:e})})),z_(this,"loadPage",(async e=>{const{loadProfilesAndReloadTeamMembers:t}=this.props.actions,{teamId:s,filters:a}=this.props;await t(e+1,10,s,V_({active:!0},a))})),z_(this,"removeUser",(e=>{this.props.onRemoveCallback(e)})),z_(this,"onAddCallback",(e=>{this.props.onAddCallback(e)})),z_(this,"onSearch",(async e=>{this.props.actions.setUserGridSearch(e)})),z_(this,"onFilter",(async e=>{const t=e.role.values,s=[],a=[];let i={};Object.keys(t).forEach((e=>{t[e].value&&(e.includes("team")?a.push(e):s.push(e))})),s.length>0||a.length>0?(s.length>0&&(i={roles:s}),a.length>0&&(i=V_(V_({},i),{},{team_roles:a})),this.props.actions.setUserGridFilters(i),this.props.actions.getFilteredUsersStats(V_({in_team:this.props.teamId,include_bots:!0},i))):this.props.actions.setUserGridFilters(i)})),z_(this,"updateMembership",(e=>{this.props.updateRole(e.user_id,e.scheme_user,e.scheme_admin)})),z_(this,"render",(()=>{const{users:e,team:t,usersToAdd:s,usersToRemove:a,teamMembers:i,totalCount:n,searchTerm:r,isDisabled:o}=this.props,l={role:{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.role",defaultMessage:"Role"}),values:{[bp.A.SYSTEM_GUEST_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.guest",defaultMessage:"Guest"}),value:!1},[bp.A.TEAM_USER_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_item.member",defaultMessage:"Member"}),value:!1},[bp.A.TEAM_ADMIN_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.team_admin",defaultMessage:"Team Admin"}),value:!1},[bp.A.SYSTEM_ADMIN_ROLE]:{name:T().createElement(N.FormattedMessage,{id:"admin.user_grid.system_admin",defaultMessage:"System Admin"}),value:!1}},keys:[bp.A.SYSTEM_GUEST_ROLE,bp.A.TEAM_USER_ROLE,bp.A.TEAM_ADMIN_ROLE,bp.A.SYSTEM_ADMIN_ROLE]}};this.props.enableGuestAccounts||(delete l.role.values[bp.A.SYSTEM_GUEST_ROLE],l.role.keys=[bp.A.TEAM_USER_ROLE,bp.A.TEAM_ADMIN_ROLE,bp.A.SYSTEM_ADMIN_ROLE]);const d={options:l,keys:["role"],onFilter:this.onFilter};return T().createElement(dc,{id:"teamMembers",title:(0,N.defineMessage)({id:"admin.team_settings.team_detail.membersTitle",defaultMessage:"Members"}),subtitle:(0,N.defineMessage)({id:"admin.team_settings.team_detail.membersDescription",defaultMessage:"A list of users who are currently in the team right now"}),button:T().createElement(kb.A,{id:"addTeamMembers",className:"btn btn-primary",modalId:mt.IQ.ADD_USER_TO_TEAM,dialogType:G_,disabled:o,dialogProps:{team:t,onAddCallback:this.onAddCallback,skipCommit:!0,excludeUsers:s,includeUsers:a,filterExcludeGuests:!0}},T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_details.add_members",defaultMessage:"Add Members"}))},T().createElement(NM,{loading:this.state.loading||Boolean(this.props.loading),users:e,loadPage:this.loadPage,removeUser:this.removeUser,totalCount:n,memberships:i,updateMembership:this.updateMembership,onSearch:this.onSearch,term:r,includeUsers:s,excludeUsers:a,scope:"team",readOnly:o,filterProps:d}))})),this.searchTimeoutId=0,this.state={loading:!0}}componentDidMount(){const{teamId:e}=this.props,{loadProfilesAndReloadTeamMembers:t,getTeamStats:s,setUserGridSearch:a,setUserGridFilters:i}=this.props.actions;Promise.all([a(""),i({}),s(e),t(0,20,e,{active:!0})]).then((()=>this.setStateLoading(!1)))}async componentDidUpdate(e){const t=JSON.stringify(e.filters)!==JSON.stringify(this.props.filters),s=e.searchTerm!==this.props.searchTerm;if(t||s){this.setStateLoading(!0),clearTimeout(this.searchTimeoutId);const s=this.props.searchTerm,a=this.props.filters;if(""===s)return this.searchTimeoutId=0,t&&await e.actions.loadProfilesAndReloadTeamMembers(0,20,e.teamId,V_({active:!0},a)),void this.setStateLoading(!1);const i=window.setTimeout((async()=>{await e.actions.searchProfilesAndTeamMembers(s,V_(V_({},a),{},{team_id:this.props.teamId,allow_inactive:!1})),i===this.searchTimeoutId&&this.setStateLoading(!1)}),mt.Ay.SEARCH_TIMEOUT_MILLISECONDS);this.searchTimeoutId=i}}}function Y_(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Z_(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Y_(Object(s),!0).forEach((function(t){J_(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Y_(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function J_(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}z_(W_,"propTypes",{teamId:k().string.isRequired,users:k().array.isRequired,totalCount:k().number.isRequired,searchTerm:k().string.isRequired,loading:k().bool,isDisabled:k().bool,enableGuestAccounts:k().bool.isRequired,onAddCallback:k().func.isRequired,onRemoveCallback:k().func.isRequired,updateRole:k().func.isRequired,actions:k().shape({getTeamStats:k().func.isRequired,loadProfilesAndReloadTeamMembers:k().func.isRequired,searchProfilesAndTeamMembers:k().func.isRequired,getFilteredUsersStats:k().func.isRequired,setUserGridSearch:k().func.isRequired,setUserGridFilters:k().func.isRequired}).isRequired});const K_=(0,a.connect)((function(e,t){var s,a;const{teamId:i,usersToRemove:n}=t;let{usersToAdd:r}=t;const o=(0,p.RM)(e)[i]||{},l=(0,p.Uo)(e,i),d=(0,c.zj)(e),m=(null===(s=e.views.search.userGridSearch)||void 0===s?void 0:s.term)||"",u=(null===(a=e.views.search.userGridSearch)||void 0===a?void 0:a.filters)||{};let h;var f;h=0===Object.keys(u).length?((0,p.ls)(e)[i]||{active_member_count:0}).active_member_count:null!==(f=((0,g.$c)(e)||{total_users_count:0}).total_users_count)&&void 0!==f?f:0;let E=[];return m?(E=(0,g.rB)(e,i,m,!1,Z_({active:!0},u)),r=function(e,t){const s=(0,Nb.V3)(Object.keys(e).map((t=>e[t])),t);return(0,g.f9)((0,Nb.vC)(s),{})}(r,m)):E=(0,g.xJ)(e,i,Z_({active:!0},u)),{filters:u,teamId:i,team:l,users:E,teamMembers:o,usersToAdd:r,usersToRemove:n,totalCount:h,searchTerm:m,enableGuestAccounts:"true"===d.EnableGuestAccounts}}),(function(e){return{actions:(0,i.zH)({getTeamStats:o.ls,loadProfilesAndReloadTeamMembers:ds.RL,searchProfilesAndTeamMembers:ds.oh,getFilteredUsersStats:bi.$c,setUserGridSearch:gn.u,setUserGridFilters:gn.dj},e)}}))(W_),Q_=e=>{let{syncChecked:t,allAllowedChecked:s,allowedDomainsChecked:a,allowedDomains:i,onToggle:n,isDisabled:r}=e;return T().createElement(oc,{id:"syncGroupSwitch",disabled:r,toggled:t,last:t,onToggle:()=>n(!t,s,a,i),title:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_details.syncGroupMembers",defaultMessage:"Sync Group Members"}),subTitle:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_details.syncGroupMembersDescr",defaultMessage:"When enabled, adding and removing users from groups will add or remove them from this team. The only way of inviting members to this team is by adding the groups they belong to. <link>Learn More</link>",values:{link:e=>T().createElement(wt.A,{href:"https://www.mattermost.com/pl/default-ldap-group-constrained-team-channel.html",location:"team_modes"},e)}})})};Q_.propTypes={syncChecked:k().bool.isRequired,allAllowedChecked:k().bool.isRequired,allowedDomainsChecked:k().bool.isRequired,allowedDomains:k().string.isRequired,onToggle:k().func.isRequired,isDisabled:k().bool};const X_=e=>{let{syncChecked:t,allAllowedChecked:s,allowedDomainsChecked:a,allowedDomains:i,onToggle:n,isDisabled:r}=e;return t?null:T().createElement(oc,{id:"allowAllToggleSwitch",disabled:r,toggled:s,singleLine:!0,onToggle:()=>n(t,!s,a,i),title:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_details.anyoneCanJoin",defaultMessage:"Anyone can join this team"}),subTitle:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_details.anyoneCanJoinDescr",defaultMessage:"This team can be discovered allowing anyone with an account to join this team."})})};X_.propTypes={syncChecked:k().bool.isRequired,allAllowedChecked:k().bool.isRequired,allowedDomainsChecked:k().bool.isRequired,allowedDomains:k().string.isRequired,onToggle:k().func.isRequired,isDisabled:k().bool};const $_=e=>{let{syncChecked:t,allAllowedChecked:s,allowedDomainsChecked:a,allowedDomains:i,onToggle:n,isDisabled:r}=e;return t?null:T().createElement(oc,{id:"allowedDomainsToggleSwitch",disabled:r,toggled:a,last:!0,onToggle:()=>n(t,s,!a,i),singleLine:!0,title:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_details.specificDomains",defaultMessage:"Only specific email domains can join this team"}),subTitle:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_details.specificDomainsDescr",defaultMessage:"Users can only join the team if their email matches one of the specified domains"})},T().createElement(T().Fragment,null,T().createElement("div",{className:"help-text csvDomains"},T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_details.csvDomains",defaultMessage:"Comma Separated Email Domain List"})),T().createElement("input",{type:"text",value:i,placeholder:"mattermost.com",className:"form-control",onChange:e=>n(t,s,a,e.currentTarget.value),disabled:r})))};$_.propTypes={syncChecked:k().bool.isRequired,allAllowedChecked:k().bool.isRequired,allowedDomainsChecked:k().bool.isRequired,allowedDomains:k().string.isRequired,onToggle:k().func.isRequired,isDisabled:k().bool};const eS=e=>{let{allAllowedChecked:t,syncChecked:s,allowedDomains:a,allowedDomainsChecked:i,onToggle:n,isDisabled:r,isLicensedForLDAPGroups:o}=e;return T().createElement(dc,{id:"team_manage",title:(0,N.defineMessage)({id:"admin.team_settings.team_detail.manageTitle",defaultMessage:"Team Management"}),subtitle:(0,N.defineMessage)({id:"admin.team_settings.team_detail.manageDescription",defaultMessage:"Choose between inviting members manually or syncing members automatically from groups."})},T().createElement("div",{className:"group-teams-and-channels"},T().createElement("div",{className:"group-teams-and-channels--body"},o&&T().createElement(Q_,{allAllowedChecked:t,allowedDomainsChecked:i,allowedDomains:a,syncChecked:s,onToggle:n,isDisabled:r}),T().createElement(X_,{allAllowedChecked:t,allowedDomainsChecked:i,allowedDomains:a,syncChecked:s,onToggle:n,isDisabled:r}),T().createElement($_,{allAllowedChecked:t,allowedDomainsChecked:i,allowedDomains:a,syncChecked:s,onToggle:n,isDisabled:r}))))};eS.propTypes={syncChecked:k().bool.isRequired,allAllowedChecked:k().bool.isRequired,allowedDomainsChecked:k().bool.isRequired,allowedDomains:k().string.isRequired,onToggle:k().func.isRequired,isDisabled:k().bool,isLicensedForLDAPGroups:k().bool};var tS=s(75114),sS=s.n(tS),aS=s(47551),iS=s(30135);function nS(e){let{team:t,isArchived:s,onToggleArchive:i,isDisabled:n,saveNeeded:r}=e;const o=(0,D.lt)(t),l=(0,iS.A)(),d=(0,aS.A)(),m=(0,a.useSelector)(c.Ay),u=(0,N.useIntl)(),{openPricingModal:p,isAirGapped:g}=(0,mo.A)(),[h,f]=(0,A.useState)(!1),[E,b]=(0,A.useState)(l.teams.teamsLoaded&&l.teams.active>=0&&s);if((0,A.useEffect)((()=>{b("true"===m.Cloud&&l.teams.teamsLoaded&&l.teams.active>=0&&s&&!h&&!r)}),[l,s,h,r,m]),"true"===m.Cloud&&!d.teams.teamsLoaded)return null;const v=s?(0,N.defineMessage)({id:"admin.team_settings.team_details.unarchiveTeam",defaultMessage:"Unarchive Team"}):(0,N.defineMessage)({id:"admin.team_settings.team_details.archiveTeam",defaultMessage:"Archive Team"});return T().createElement(dc,{id:"team_profile",title:(0,N.defineMessage)({id:"admin.team_settings.team_detail.profileTitle",defaultMessage:"Team Profile"}),subtitle:(0,N.defineMessage)({id:"admin.team_settings.team_detail.profileDescription",defaultMessage:"Summary of the team, including team name and description."})},T().createElement("div",{className:"group-teams-and-channels"},T().createElement("div",{className:"group-teams-and-channels--body"},T().createElement("div",{className:"d-flex"},T().createElement("div",{className:"large-team-image-col"},T().createElement(Le.A,{content:t.display_name,size:"lg",url:o})),T().createElement("div",{className:"team-desc-col"},T().createElement("div",{className:"row row-bottom-padding"},T().createElement(N.FormattedMessage,{id:"admin.teamSettings.teamDetail.teamName",defaultMessage:"<b>Team Name</b>:",values:{b:e=>T().createElement("b",null,e)}}),T().createElement("br",null),t.display_name),T().createElement("div",{className:"row"},T().createElement(N.FormattedMessage,{id:"admin.teamSettings.teamDetail.teamDescription",defaultMessage:"<b>Team Description</b>:",values:{b:e=>T().createElement("b",null,e)}}),T().createElement("br",null),t.description||T().createElement("span",{className:"greyed-out"},u.formatMessage({id:"admin.team_settings.team_detail.profileNoDescription",defaultMessage:"No team description added."}))))),T().createElement("div",{className:"AdminChannelDetails_archiveContainer"},E?T().createElement(ys.A,{title:u.formatMessage({id:"workspace_limits.teams_limit_reached.upgrade_to_unarchive",defaultMessage:"Upgrade to Unarchive"}),hint:u.formatMessage({id:"workspace_limits.teams_limit_reached.tool_tip",defaultMessage:"You've reached the team limit for your current plan. Consider upgrading to unarchive this team or archive your other teams"})},T().createElement("div",{className:"disabled-overlay-wrapper"},T().createElement("button",{type:"button",disabled:E,style:{pointerEvents:"none"},className:oe()("btn","btn-danger","ArchiveButton",{ArchiveButton___archived:s},{ArchiveButton___unarchived:!s},{disabled:n},"cloud-limits-disabled"),onClick:sS()},s?T().createElement("i",{className:"icon icon-archive-arrow-up-outline"}):T().createElement("i",{className:"icon icon-archive-outline"}),T().createElement(N.FormattedMessage,v)))):T().createElement("button",{type:"button",disabled:E,className:oe()("btn","ArchiveButton",{ArchiveButton___archived:s},{ArchiveButton___unarchived:!s},{disabled:n},"cloud-limits-disabled"),onClick:()=>{f(!0),i()}},s?T().createElement("i",{className:"icon icon-archive-arrow-up-outline"}):T().createElement("i",{className:"icon icon-archive-outline"}),T().createElement(N.FormattedMessage,v)),E&&!g&&T().createElement("button",{onClick:p,type:"button",className:oe()("btn","btn-secondary","upgrade-options-button")},T().createElement(N.FormattedMessage,{id:"workspace_limits.teams_limit_reached.view_upgrade_options",defaultMessage:"View upgrade options"}))))))}function rS(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function oS(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?rS(Object(s),!0).forEach((function(t){lS(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):rS(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function lS(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}nS.propTypes={isArchived:k().bool.isRequired,onToggleArchive:k().func.isRequired,isDisabled:k().bool,saveNeeded:k().bool};class dS extends T().PureComponent{constructor(e){super(e),lS(this,"setNewGroupRole",(e=>{const t=v()(this.state.groups).map((t=>(t.id===e&&(t.scheme_admin=!t.scheme_admin),t)));this.processGroupsChange(t)})),lS(this,"handleSubmit",(async()=>{const{team:e,groups:t,teamID:s,actions:a}=this.props;if(!e)return;this.setState({showRemoveConfirmation:!1,saving:!0});const{groups:i,allAllowedChecked:n,allowedDomainsChecked:r,allowedDomains:o,syncChecked:l,usersToAdd:d,usersToRemove:c,rolesToUpdate:m}=this.state;let u;if(this.teamToBeArchived()){let t=!1;const s=await a.deleteTeam(e.id);return"error"in s&&(u=T().createElement(Bt.Ay,{error:s.error.message}),t=!0),this.setState({serverError:u,saving:!1,saveNeeded:t,usersToRemoveCount:0,rolesToUpdate:{},usersToAdd:{},usersToRemove:{}}),a.setNavigationBlocked(t),void(t||(0,Li.J)().push("/admin_console/user_management/teams"))}if(this.teamToBeRestored()&&!this.state.serverError){const t=await a.unarchiveTeam(e.id);"error"in t&&(u=T().createElement(Bt.Ay,{error:t.error.message})),this.setState({serverError:u,previousServerError:void 0})}let p=!1;if(r&&0===o.trim().length)p=!0,u=T().createElement(E_,null);else if(0===this.state.groups.length&&l)u=T().createElement(f_,null),p=!0;else{const d=i.filter((e=>t.some((t=>t.id===e.id&&t.scheme_admin!==e.scheme_admin)))).map((e=>a.patchGroupSyncable(e.id,s,sc.CL.Team,{scheme_admin:e.scheme_admin}))),c=i.filter((e=>!t.some((t=>t.id===e.id)))).map((e=>a.linkGroupSyncable(e.id,s,sc.CL.Team,{auto_add:!0,scheme_admin:e.scheme_admin}))),m=(await Promise.all([...d,...c])).find((e=>e.error));var g;m&&(u=T().createElement(Bt.Ay,{error:null===(g=m.error)||void 0===g?void 0:g.message}));const p=await a.patchTeam(oS(oS({},e),{},{group_constrained:l,allowed_domains:r?o:"",allow_open_invite:n}));var h;p.error&&(u=T().createElement(Bt.Ay,{error:null===(h=p.error)||void 0===h?void 0:h.message}));const E=t.filter((e=>!i.some((t=>t.id===e.id)))).map((e=>a.unlinkGroupSyncable(e.id,s,sc.CL.Team)));let b;var f;if(E.length>0)b=(await Promise.all(E)).find((e=>e.error)),b&&(u=T().createElement(Bt.Ay,{error:null===(f=b.error)||void 0===f?void 0:f.message}));p.error||m||b||await a.getGroups(s)}const E=Object.values(d),b=Object.values(c),v=Object.keys(m);if((E.length>0||b.length>0||v.length>0)&&!l){const e=[],t=[],{addUserToTeam:a,removeUserFromTeam:i,updateTeamMemberSchemeRoles:n}=this.props.actions;if(E.forEach((t=>{e.push(a(s,t.id))})),b.forEach((e=>{t.push(i(s,e.id))})),e.length>0){const t=(await Promise.all(e)).find((e=>e.error));var y;t&&(u=T().createElement(Bt.Ay,{error:null===(y=t.error)||void 0===y?void 0:y.message}))}if(t.length>0){const e=(await Promise.all(t)).find((e=>e.error));var M;e&&(u=T().createElement(Bt.Ay,{error:null===(M=e.error)||void 0===M?void 0:M.message}))}const r=[],o=[];if(v.forEach((e=>{const{schemeUser:t,schemeAdmin:a}=m[e];a?r.push(n(s,e,t,a)):o.push(n(s,e,t,a))})),r.length>0){const e=(await Promise.all(r)).find((e=>e.error));var _;e&&(u=T().createElement(Bt.Ay,{error:null===(_=e.error)||void 0===_?void 0:_.message}))}if(o.length>0){const e=(await Promise.all(o)).find((e=>e.error));var S;e&&(u=T().createElement(Bt.Ay,{error:null===(S=e.error)||void 0===S?void 0:S.message}))}}this.setState({usersToRemoveCount:0,rolesToUpdate:{},usersToAdd:{},usersToRemove:{},serverError:u,saving:!1,saveNeeded:p},(()=>{a.setNavigationBlocked(p),p||u||(0,Li.J)().push("/admin_console/user_management/teams")}))})),lS(this,"setToggles",((e,t,s,a)=>{this.setState({saveNeeded:!0,syncChecked:e,allAllowedChecked:!e&&t,allowedDomainsChecked:!e&&s,allowedDomains:a},(()=>this.processGroupsChange(this.state.groups))),this.props.actions.setNavigationBlocked(!0)})),lS(this,"addUsersToAdd",(e=>{let{usersToRemoveCount:t}=this.state;const{usersToAdd:s,usersToRemove:a}=this.state,i=v()(s);e.forEach((e=>{var s;(null===(s=a[e.id])||void 0===s?void 0:s.id)===e.id?(delete a[e.id],t-=1):i[e.id]=e})),this.setState({usersToAdd:oS({},i),usersToRemove:oS({},a),usersToRemoveCount:t,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),lS(this,"addUserToRemove",(e=>{var t,s;let{usersToRemoveCount:a}=this.state;const{usersToAdd:i,usersToRemove:n,rolesToUpdate:r}=this.state;(null===(t=i[e.id])||void 0===t?void 0:t.id)===e.id?delete i[e.id]:(null===(s=n[e.id])||void 0===s?void 0:s.id)!==e.id&&(a+=1,n[e.id]=e),delete r[e.id],this.setState({usersToRemove:oS({},n),usersToAdd:oS({},i),rolesToUpdate:oS({},r),usersToRemoveCount:a,saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),lS(this,"addRolesToUpdate",((e,t,s)=>{const{rolesToUpdate:a}=this.state;a[e]={schemeUser:t,schemeAdmin:s},this.setState({rolesToUpdate:oS({},a),saveNeeded:!0}),this.props.actions.setNavigationBlocked(!0)})),lS(this,"handleGroupRemoved",(e=>{const t=this.state.groups.filter((t=>t.id!==e));this.setState({totalGroups:this.state.totalGroups-1}),this.processGroupsChange(t)})),lS(this,"handleGroupChange",(e=>{const t=[...this.state.groups,...e.map((e=>this.props.allGroups[e]))];this.setState({totalGroups:this.state.totalGroups+e.length}),this.processGroupsChange(t)})),lS(this,"hideRemoveUsersModal",(()=>this.setState({showRemoveConfirmation:!1}))),lS(this,"hideArchiveConfirmModal",(()=>this.setState({showArchiveConfirmModal:!1}))),lS(this,"onSave",(()=>{this.teamToBeArchived()?this.setState({showArchiveConfirmModal:!0}):this.state.usersToRemoveCount>0?this.setState({showRemoveConfirmation:!0}):this.handleSubmit()})),lS(this,"teamToBeArchived",(()=>{var e;const{isLocalArchived:t}=this.state,s=0!==(null===(e=this.props.team)||void 0===e?void 0:e.delete_at);return t&&!s})),lS(this,"teamToBeRestored",(()=>{var e;const{isLocalArchived:t}=this.state,s=0!==(null===(e=this.props.team)||void 0===e?void 0:e.delete_at);return!t&&s})),lS(this,"onToggleArchive",(()=>{const{isLocalArchived:e,serverError:t,previousServerError:s}=this.state,{isDisabled:a}=this.props;if(a)return;const i={saveNeeded:!0,isLocalArchived:!e,previousServerError:void 0,serverError:void 0};i.isLocalArchived?(i.previousServerError=t,i.serverError=void 0):(i.serverError=s,i.previousServerError=void 0),this.props.actions.setNavigationBlocked(!0),this.setState(i)})),lS(this,"render",(()=>{const{team:e,isLicensedForLDAPGroups:t}=this.props;if(!e)return null;const{totalGroups:s,saving:a,saveNeeded:i,serverError:n,groups:r,allAllowedChecked:o,allowedDomainsChecked:l,allowedDomains:d,syncChecked:c,showRemoveConfirmation:m,usersToRemoveCount:u,isLocalArchived:p,showArchiveConfirmModal:g}=this.state,h=this.props.groups.filter((e=>!r.find((t=>t.id===e.id)))),f=T().createElement(T().Fragment,null,T().createElement(y_,{amount:u,inChannel:!1,show:m,onCancel:this.hideRemoveUsersModal,onConfirm:this.handleSubmit}),T().createElement(eS,{allAllowedChecked:o,allowedDomainsChecked:l,allowedDomains:d,syncChecked:c,onToggle:this.setToggles,isDisabled:this.props.isDisabled,isLicensedForLDAPGroups:t}),t&&T().createElement(x_,{syncChecked:c,team:e,groups:r,removedGroups:h,totalGroups:s,onAddCallback:this.handleGroupChange,onGroupRemoved:this.handleGroupRemoved,setNewGroupRole:this.setNewGroupRole,isDisabled:this.props.isDisabled}),!c&&T().createElement(K_,{onRemoveCallback:this.addUserToRemove,onAddCallback:this.addUsersToAdd,usersToRemove:this.state.usersToRemove,usersToAdd:this.state.usersToAdd,updateRole:this.addRolesToUpdate,teamId:this.props.teamID,isDisabled:this.props.isDisabled}));return T().createElement("div",{className:"wrapper--fixed"},T().createElement(nt,{withBackButton:!0},T().createElement("div",null,T().createElement(tt.A,{to:"/admin_console/user_management/teams",className:"fa fa-angle-left back"}),T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_detail.group_configuration",defaultMessage:"Team Configuration"}))),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement(nS,{team:e,onToggleArchive:this.onToggleArchive,isArchived:p,isDisabled:this.props.isDisabled,saveNeeded:this.state.saveNeeded}),T().createElement(Ta.A,{show:g,title:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_detail.archive_confirm.title",defaultMessage:"Save and Archive Team"}),message:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_detail.archive_confirm.message",defaultMessage:"Archiving will remove the team from the user interface but it's contents remain in the database and may still be accessible with the API. Are you sure you wish to save and archive this team?"}),confirmButtonText:T().createElement(N.FormattedMessage,{id:"admin.team_settings.team_detail.archive_confirm.button",defaultMessage:"Archive"}),onConfirm:this.handleSubmit,onCancel:this.hideArchiveConfirmModal}),!p&&f)),T().createElement(it,{saving:a,cancelLink:"/admin_console/user_management/teams",saveNeeded:i,onClick:this.onSave,serverError:n,isDisabled:this.props.isDisabled}))}));const t=e.team;this.state={groups:e.groups,syncChecked:Boolean(null==t?void 0:t.group_constrained),allAllowedChecked:Boolean(null==t?void 0:t.allow_open_invite),allowedDomainsChecked:Boolean(null==t?void 0:t.allowed_domains),allowedDomains:(null==t?void 0:t.allowed_domains)||"",saving:!1,showRemoveConfirmation:!1,usersToRemoveCount:0,usersToRemove:{},usersToAdd:{},rolesToUpdate:{},totalGroups:e.totalGroups,saveNeeded:!1,serverError:void 0,previousServerError:void 0,isLocalArchived:!t||t.delete_at>0,showArchiveConfirmModal:!1}}componentDidUpdate(e){var t;const{totalGroups:s,team:a}=this.props;(null===(t=e.team)||void 0===t?void 0:t.id)===(null==a?void 0:a.id)&&s===e.totalGroups||this.setState({totalGroups:s,syncChecked:Boolean(null==a?void 0:a.group_constrained),allAllowedChecked:Boolean(null==a?void 0:a.allow_open_invite),allowedDomainsChecked:Boolean(null==a?void 0:a.allowed_domains),allowedDomains:(null==a?void 0:a.allowed_domains)||"",isLocalArchived:!a||a.delete_at>0})}componentDidMount(){const{teamID:e,actions:t}=this.props;t.getTeam(e).then((()=>t.getGroups(e))).then((()=>this.setState({groups:this.props.groups})))}async processGroupsChange(e){const{teamID:t,actions:s}=this.props;let a;s.setNavigationBlocked(!0);let i=0;if(this.state.syncChecked)try{if(0===e.length)a=T().createElement(f_,{warning:!0});else{const n=await s.membersMinusGroupMembers(t,e.map((e=>e.id)));i=n.data?n.data.total_count:0,i>0&&(a=T().createElement(b_,{total:i,users:n.data.users,scope:"team",scopeId:this.props.teamID}))}}catch(e){a=e}this.setState({groups:e,usersToRemoveCount:i,saveNeeded:!0,serverError:a})}}lS(dS,"propTypes",{teamID:k().string.isRequired,totalGroups:k().number.isRequired,groups:k().array.isRequired,isDisabled:k().bool,isLicensedForLDAPGroups:k().bool,actions:k().shape({setNavigationBlocked:k().func.isRequired,getTeam:k().func.isRequired,linkGroupSyncable:k().func.isRequired,unlinkGroupSyncable:k().func.isRequired,membersMinusGroupMembers:k().func.isRequired,getGroups:k().func.isRequired,patchTeam:k().func.isRequired,patchGroupSyncable:k().func.isRequired,addUserToTeam:k().func.isRequired,removeUserFromTeam:k().func.isRequired,updateTeamMemberSchemeRoles:k().func.isRequired,deleteTeam:k().func.isRequired,unarchiveTeam:k().func.isRequired}).isRequired}),lS(dS,"defaultProps",{team:{display_name:"",id:""}});const cS=(0,a.connect)((function(e,t){const s=t.match.params.team_id,a=(0,p.Uo)(e,s),i=(0,tc.Lp)(e,s),n=(0,tc.GX)(e);return{team:a,groups:i,totalGroups:i.length,allGroups:n,teamID:s,isLicensedForLDAPGroups:"true"===e.entities.general.license.LDAPGroups}}),(function(e){return{actions:(0,i.zH)({getTeam:o.Uo,getGroups:ec.Lp,patchTeam:o.Oy,linkGroupSyncable:ec.PY,unlinkGroupSyncable:ec.IC,membersMinusGroupMembers:o.qN,setNavigationBlocked:h.Jb,patchGroupSyncable:ec.r2,removeUserFromTeam:o.fy,addUserToTeam:o.$w,updateTeamMemberSchemeRoles:o.bd,deleteTeam:o.To,unarchiveTeam:o.X3},e)}}))(dS),mS=e=>{let{data:t,isExpanded:s,onButtonClick:a,onHeaderClick:i}=e;const n=(0,A.useRef)(null),r=(0,A.useRef)(null),[o,l]=(0,A.useState)(0),[d,c]=(0,A.useState)(s);(0,A.useEffect)((()=>{if(null!=n&&n.current&&0!==t.items.length){if(s){const e=n.current;l(e.scrollHeight)}else l(0);c(s)}}),[t.items.length,s]);const m=t.items.length>0;return T().createElement("li",{className:oe()("accordion-card",{active:d}),ref:r},T().createElement("div",{className:"accordion-card-header",onClick:m?()=>{a&&a(),i&&i(r)}:void 0,role:m?"button":void 0},t.icon&&T().createElement("div",{className:"accordion-card-header__icon"},t.icon),T().createElement("div",{className:"accordion-card-header__body"},T().createElement("div",{className:"accordion-card-header__body__title"},t.title),t.description&&T().createElement("div",{className:"accordion-card-header__body__description"},t.description)),t.extraContent&&T().createElement("div",{className:"accordion-card-header__extraContent"},t.extraContent),m&&T().createElement("div",{className:"accordion-card-header__chevron"},T().createElement("i",{className:"icon-chevron-down"}))),m&&T().createElement("div",{className:"accordion-card-container",style:{height:o}},T().createElement("div",{ref:n,className:"accordion-card-container__content"},t.items)))},uS=e=>{let{accordionItemsData:t,expandMultiple:s,openFirstElement:a,onHeaderClick:i,onItemOpened:n,className:r}=e;const[o,l]=(0,A.useState)(a?[0]:[]);return T().createElement("ul",{className:oe()("Accordion",r)},t.map(((e,t)=>T().createElement(mS,{key:t.toString(),data:e,isExpanded:Boolean(o.includes(t)),onButtonClick:()=>(e=>{if(o.includes(e)){const t=o.filter((t=>e!==t));l(t)}else n&&n(e),l(s?[...o,e]:[e])})(t),onHeaderClick:i}))))};var pS=s(82474);let gS=function(e){return e.NONE="none",e.OK="ok",e.INFO="info",e.WARNING="warning",e.ERROR="error",e}({});const hS=e=>{let{chipsData:t,hideCountZeroChips:s}=e;const a=Object.entries(t).map((e=>{let t,[a,i]=e;if(s&&0===i)return!1;switch(a){case gS.INFO:t=T().createElement(N.FormattedMessage,{id:"admin.reporting.workspace_optimization.chip_suggestions",defaultMessage:"Suggestions: {count}",values:{count:i}});break;case gS.WARNING:t=T().createElement(N.FormattedMessage,{id:"admin.reporting.workspace_optimization.chip_warnings",defaultMessage:"Warnings: {count}",values:{count:i}});break;case gS.ERROR:default:t=T().createElement(N.FormattedMessage,{id:"admin.reporting.workspace_optimization.chip_problems",defaultMessage:"Problems: {count}",values:{count:i}})}return T().createElement(pS.A,{key:a,additionalMarkup:t,className:a})}));return 0===a.length?null:T().createElement(T().Fragment,null,a)};hS.propTypes={chipsData:k().objectOf(k().number).isRequired,hideCountZeroChips:k().bool.isRequired};const fS=hS,ES=e=>{let{learnMoreLink:t,learnMoreText:s,actionLink:a,actionText:i,actionButtonCallback:n}=e;const r=(0,w.useHistory)(),o=(e,t)=>()=>{"cta"===e&&"function"==typeof n?n():null!=t&&t.startsWith("/")?r.push(t):null!=t&&t.startsWith("http")&&window.open(t,"_blank")};return T().createElement("div",{className:"ctaButtons"},(a||n)&&i&&T().createElement("button",{className:"btn btn-primary btn-sm actionButton annnouncementBar__purchaseNow",onClick:o("cta",a)},i),t&&s&&T().createElement("button",{className:"btn btn-tertiary btn-sm learnMoreButton",onClick:o("learn-more",t)},s))};ES.propTypes={learnMoreLink:k().string,learnMoreText:k().string,actionLink:k().string,actionText:k().node,actionButtonCallback:k().func};const bS=ES,vS=[async(e,t)=>{let s=gS.OK;return await(async()=>{var t,a;null!==(t=e.ServiceSettings)&&void 0!==t&&t.SiteURL||(s=gS.ERROR),await(0,h.zg)((e=>{let{status:t}=e;"OK"===t&&(s=gS.OK)}),(()=>{s=gS.ERROR}),null===(a=e.ServiceSettings)||void 0===a?void 0:a.SiteURL)})(),{id:"site-url",title:t({id:"admin.reporting.workspace_optimization.access.site_url.title",defaultMessage:"Misconfigured web server"}),description:t({id:"admin.reporting.workspace_optimization.access.site_url.description",defaultMessage:"Your web server settings aren't passing a live URL test which means your workspace may not be accessible to users. We recommend updating your web server settings."}),configUrl:mt.Uo.WEB_SERVER,configText:t({id:"admin.reporting.workspace_optimization.access.site_url.cta",defaultMessage:"Configure web server"}),infoUrl:mt.Uk.SITE_URL,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"site-url",status:s,scoreImpact:12,impactModifier:VS[s]}}],yS=async(e,t)=>await Promise.all(vS.map((s=>s(e,t)))),MS=(e,t,s)=>{const a="https:"===document.location.protocol?gS.OK:gS.ERROR;return{id:"ssl",title:t({id:"admin.reporting.workspace_optimization.configuration.ssl.title",defaultMessage:"Configure SSL to make your server more secure"}),description:t({id:"admin.reporting.workspace_optimization.configuration.ssl.description",defaultMessage:"We strongly recommend securing your Mattermost workspace by configuring SSL in production environments."}),infoUrl:mt.Uk.SSL_CERTIFICATE,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"ssl",status:a,scoreImpact:25,impactModifier:VS[a]}},_S=(e,t,s)=>{var a;const i=720===(null===(a=e.ServiceSettings)||void 0===a?void 0:a.SessionLengthMobileInHours)?gS.INFO:gS.OK;return{id:"session-length",title:t({id:"admin.reporting.workspace_optimization.configuration.session_length.title",defaultMessage:"Session lengths is set to default"}),description:t({id:"admin.reporting.workspace_optimization.configuration.session_length.description",defaultMessage:"Your session length is set to the default of 30 days. A longer session length provides convenience, and a shorter session provides tighter security. We recommend adjusting this based on your organization's security policies."}),configUrl:mt.Uo.SESSION_LENGTHS,configText:t({id:"admin.reporting.workspace_optimization.configuration.session_length.cta",defaultMessage:"Configure session length"}),infoUrl:mt.Uk.SESSION_LENGTHS,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"session-length",status:i,scoreImpact:8,impactModifier:VS[i]}},SS=async(e,t,s)=>{const a=await(async()=>(await O.mT.ping(!0)).root_status?gS.WARNING:gS.OK)();return{id:"root_status,",title:t({id:"admin.reporting.workspace_optimization.configuration.root_status.title",defaultMessage:"Mattermost is running as root"}),description:t({id:"admin.reporting.workspace_optimization.configuration.root_status.description",defaultMessage:"Running Mattermost as root is not recommended. Please use a non-root user."}),telemetryAction:"root_status",status:a,scoreImpact:25,impactModifier:VS[a]}},CS=async(e,t,s)=>{const a=await(async()=>"OK"===(await O.mT.ping(!0)).filestore_status?gS.OK:gS.ERROR)();return{id:"file_storage,",title:t({id:"admin.reporting.workspace_optimization.configuration.file_storage.title",defaultMessage:"File storage access is faulty."}),description:t({id:"admin.reporting.workspace_optimization.configuration.file_storage.description",defaultMessage:"Check your file storage settings to ensure your Mattermost workspace has access to the configured file storage."}),configUrl:mt.Uo.FILE_STORAGE,configText:t({id:"admin.reporting.workspace_optimization.configuration.file_storage.cta",defaultMessage:"Config file storage"}),infoUrl:mt.Uk.FILE_STORAGE,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"file_storage",status:a,scoreImpact:50,impactModifier:VS[a]}},AS=async(e,t,s)=>{const a=[MS,_S,CS,SS];return await Promise.all(a.map((a=>a(e,t,s))))};function TS(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function NS(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?TS(Object(s),!0).forEach((function(t){wS(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):TS(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function wS(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const RS=async(e,t,s)=>{const a=await(async(e,t)=>{var s,a;return t.isLicensed&&t.isEnterpriseLicense&&(null!==(s=e.DataRetentionSettings)&&void 0!==s&&s.EnableMessageDeletion||null!==(a=e.DataRetentionSettings)&&void 0!==a&&a.EnableFileDeletion||(await fetch("".concat(O.mT.getBaseRoute(),"/data_retention/policies_count")).then((e=>e.json()))).total_count>0)?gS.OK:gS.INFO})(e,s);return NS(NS({id:"data-retention",title:t({id:"admin.reporting.workspace_optimization.data_privacy.retention.title",defaultMessage:"Become more data aware"}),description:t({id:"admin.reporting.workspace_optimization.data_privacy.retention.description",defaultMessage:"Organizations in highly regulated industries require more control and insight with their data. We recommend enabling Data Retention and Compliance features."})},s.isLicensed&&s.isEnterpriseLicense?{configUrl:mt.Uo.DATA_RETENTION,configText:t({id:"admin.reporting.workspace_optimization.data_privacy.retention.cta",defaultMessage:"Try data retention"})}:s.trialOrEnterpriseCtaConfig),{},{infoUrl:mt.Uk.DATA_RETENTION_POLICY,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"data-retention",status:a,scoreImpact:16,impactModifier:VS[a]})},OS=async(e,t,s)=>{const a=[RS];return await Promise.all(a.map((a=>a(e,t,s))))};function IS(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function kS(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?IS(Object(s),!0).forEach((function(t){PS(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):IS(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function PS(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const xS=async(e,t,s)=>{var a;const i=(null===(a=s.analytics)||void 0===a?void 0:a.TOTAL_USERS)>100?await(async(e,t)=>{var s;let a=gS.INFO;return t.isLicensed&&null!==(s=e.LdapSettings)&&void 0!==s&&s.Enable?(await(0,h.QD)((e=>{let{status:t}=e;"OK"===t&&(a=gS.OK)})),a):a})(e,s):gS.OK;return kS(kS({id:"ad-ldap",title:t({id:"admin.reporting.workspace_optimization.ease_of_management.ldap.title",defaultMessage:"AD/LDAP integration recommended"}),description:t({id:"admin.reporting.workspace_optimization.ease_of_management.ldap.description",defaultMessage:"You've reached over 100 users! We recommend setting up AD/LDAP user authentication for easier onboarding as well as automated deactivations and role assignments."})},s.isLicensed&&!s.isStarterLicense?{configUrl:mt.Uo.AD_LDAP,configText:t({id:"admin.reporting.workspace_optimization.ease_of_management.ldap.cta",defaultMessage:"Try AD/LDAP"})}:s.trialOrEnterpriseCtaConfig),{},{infoUrl:mt.Uk.SETUP_LDAP,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"ad-ldap",status:i,scoreImpact:22,impactModifier:VS[i]})},DS=async(e,t,s)=>{const a=[xS];return await Promise.all(a.map((a=>a(e,t,s))))};function LS(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function FS(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?LS(Object(s),!0).forEach((function(t){US(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):LS(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function US(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const BS=async(e,t,s)=>{var a,i;const n=null===(a=s.analytics)||void 0===a?void 0:a.TOTAL_POSTS,r=null===(i=s.analytics)||void 0===i?void 0:i.TOTAL_USERS,o=n<2e6&&r<500?gS.OK:await(async(e,t)=>{var s,a;let i=gS.INFO;return t.isLicensed&&t.isEnterpriseLicense&&null!==(s=e.ElasticsearchSettings)&&void 0!==s&&s.EnableIndexing&&null!==(a=e.ElasticsearchSettings)&&void 0!==a&&a.EnableSearching?(await(0,h.Cg)(e,(e=>{let{status:t}=e;"OK"===t&&(i=gS.OK)})),i):i})(e,s);return FS(FS({id:"search",title:t({id:"admin.reporting.workspace_optimization.performance.search.title",defaultMessage:"Search performance"}),description:t({id:"admin.reporting.workspace_optimization.performance.search.description",defaultMessage:"Your server has reached over 500 users and 2 million posts which can result in slow search performance. We recommend enabling Elasticsearch for better performance."})},s.isLicensed&&s.isEnterpriseLicense?{configUrl:mt.Uo.ELASTICSEARCH,configText:t({id:"admin.reporting.workspace_optimization.search.cta",defaultMessage:"Try Elasticsearch"})}:s.trialOrEnterpriseCtaConfig),{},{infoUrl:mt.Uk.ELASTICSEARCH,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"search-optimization",status:o,scoreImpact:20,impactModifier:VS[o]})},jS=async(e,t,s)=>{const a=[BS];return await Promise.all(a.map((a=>a(e,t,s))))},HS=async(e,t,s)=>{const a=await GS(s.installedVersion,t);return{id:"server_version",title:t({id:"admin.reporting.workspace_optimization.updates.server_version.status.title",defaultMessage:"{type} version update available."},{type:a.type}),description:a.description,configUrl:mt.Lu.DOWNLOAD_UPDATE,configText:t({id:"admin.reporting.workspace_optimization.updates.server_version.cta",defaultMessage:"Download update"}),infoUrl:mt.Uk.UPGRADE_SERVER,infoText:t({id:"admin.reporting.workspace_optimization.cta.learnMore",defaultMessage:"Learn more"}),telemetryAction:"server-version",status:a.status,scoreImpact:15,impactModifier:VS[a.status]}},GS=async(e,t)=>{const s=await fetch("".concat(O.mT.getBaseRoute(),"/latest_version")).then((e=>e.json()));if(s.tag_name){const a=s.tag_name.startsWith("v")?s.tag_name.slice(1):s.tag_name,i=a.split("."),n=e.split(".").slice(0,3);let r="",o=gS.OK;if(a.localeCompare(e,void 0,{numeric:!0,sensitivity:"base"})>0)switch(!0){case Number(i[0])>Number(n[0]):r=t({id:"admin.reporting.workspace_optimization.updates.server_version.update_type.major",defaultMessage:"Major"}),o=gS.ERROR;break;case Number(i[1])>Number(n[1]):r=t({id:"admin.reporting.workspace_optimization.updates.server_version.update_type.minor",defaultMessage:"Minor"}),o=gS.WARNING;break;case Number(i[2])>Number(n[2]):r=t({id:"admin.reporting.workspace_optimization.updates.server_version.update_type.patch",defaultMessage:"Patch"}),o=gS.INFO}return{type:r,description:s.body,status:o}}return{type:"",description:"",status:gS.OK}},qS=async(e,t,s)=>{const a=[HS];return await Promise.all(a.map((a=>a(e,t,s))))},VS={[gS.NONE]:1,[gS.OK]:1,[gS.INFO]:.5,[gS.WARNING]:.25,[gS.ERROR]:0},zS=async(e,t,s)=>({title:t({id:"admin.reporting.workspace_optimization.updates.title",defaultMessage:"Server updates"}),description:t({id:"admin.reporting.workspace_optimization.updates.description",defaultMessage:"An update is available."}),descriptionOk:t({id:"admin.reporting.workspace_optimization.updates.descriptionOk",defaultMessage:"Your workspace is completely up to date!"}),icon:T().createElement("div",{className:"icon"},T().createElement(R.ArrowUpBoldCircleOutlineIcon,{size:20,color:"var(--sys-center-channel-color)"})),items:await qS(e,t,s)}),WS=async(e,t,s)=>({title:t({id:"admin.reporting.workspace_optimization.configuration.title",defaultMessage:"Configuration"}),description:t({id:"admin.reporting.workspace_optimization.configuration.description",defaultMessage:"You have configuration issues to resolve"}),hide:s.isCloud,descriptionOk:t({id:"admin.reporting.workspace_optimization.configuration.descriptionOk",defaultMessage:"You've successfully configured SSL and Session Lengths!"}),icon:T().createElement("div",{className:"icon"},T().createElement(R.TuneIcon,{size:20,color:"var(--sys-center-channel-color)"})),items:await AS(e,t,s)}),YS=async(e,t,s)=>({title:t({id:"admin.reporting.workspace_optimization.access.title",defaultMessage:"Workspace access"}),description:t({id:"admin.reporting.workspace_optimization.access.description",defaultMessage:"Web server configuration may be affecting access to your Mattermost workspace."}),hide:s.isCloud,descriptionOk:t({id:"admin.reporting.workspace_optimization.access.descriptionOk",defaultMessage:"Your web server configuration is passing a live URL test!"}),icon:T().createElement("div",{className:"icon"},T().createElement(R.ServerVariantIcon,{size:20,color:"var(--sys-center-channel-color)"})),items:await yS(e,t)}),ZS=async(e,t,s)=>({title:t({id:"admin.reporting.workspace_optimization.performance.title",defaultMessage:"Performance"}),description:t({id:"admin.reporting.workspace_optimization.performance.description",defaultMessage:"Your server would benefit from some performance tweaks."}),hide:s.isCloud,descriptionOk:t({id:"admin.reporting.workspace_optimization.performance.descriptionOk",defaultMessage:"Your search performance suits your workspace usage!"}),icon:T().createElement("div",{className:"icon"},T().createElement(R.ChartLineIcon,{size:20,color:"var(--sys-center-channel-color)"})),items:await jS(e,t,s)}),JS=async(e,t,s)=>({title:t({id:"admin.reporting.workspace_optimization.data_privacy.title",defaultMessage:"Data privacy"}),description:t({id:"admin.reporting.workspace_optimization.data_privacy.description",defaultMessage:"Get better insight and control over your data."}),descriptionOk:t({id:"admin.reporting.workspace_optimization.data_privacy.descriptionOk",defaultMessage:"You've enabled data retention and compliance features!"}),icon:T().createElement("div",{className:"icon"},T().createElement(R.LockOutlineIcon,{size:20,color:"var(--sys-center-channel-color)"})),items:await OS(e,t,s)}),KS=async(e,t,s)=>({title:t({id:"admin.reporting.workspace_optimization.ease_of_management.title",defaultMessage:"Ease of management"}),description:t({id:"admin.reporting.workspace_optimization.ease_of_management.description",defaultMessage:"Make it easier to manage your Mattermost workspace."}),descriptionOk:t({id:"admin.reporting.workspace_optimization.ease_of_management.descriptionOk",defaultMessage:"Your user authentication setup is appropriate based on your current usage!"}),icon:T().createElement("div",{className:"icon"},T().createElement(R.AccountMultipleOutlineIcon,{size:20,color:"var(--sys-center-channel-color)"})),items:await DS(e,t,s)}),QS=e=>{let{value:t,isPercentage:s,width:a,height:i,type:n}=e;return T().createElement("div",{className:"CircularChart"},T().createElement("svg",{viewBox:"0 0 36 36",className:"circular-chart ".concat(n),width:a>=0?a.toString():"36",height:i>=0?i.toString():"36"},T().createElement("path",{className:"circle-bg",d:"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"}),T().createElement("path",{className:"circle",strokeDasharray:"".concat(t,", 100"),d:"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"}),T().createElement("text",{x:"18",y:"20.70",className:"percentageOrNumber"},"".concat(t).concat(s?" %":""))))};QS.propTypes={value:k().number.isRequired,isPercentage:k().bool.isRequired,width:k().number.isRequired,height:k().number.isRequired,type:k().oneOf(["info","warning","error","success"]).isRequired};const XS=QS,$S=e=>{let{chips:t,title:s,description:a,chartValue:i}=e;const n=s||T().createElement(N.FormattedMessage,{id:"admin.reporting.workspace_optimization.overall_workspace_score",defaultMessage:"Overall Score"}),r=a||T().createElement(N.FormattedMessage,{id:"admin.reporting.workspace_optimization.overall_workspace_score_description",defaultMessage:"Stay on top of optimizing your Mattermost workspace by reviewing your overall score below based on our recommended indicators of health and growth. Ensure your workspace is running smoothly so your users can get the most out of Mattermost."});let o;switch(i){case 0:o=T().createElement("div",{className:"alertImageScore"},T().createElement(R.ExclamationThickIcon,{size:48,color:"var(--sys-dnd-indicator)"}));break;case 100:o=T().createElement("div",{className:"successImageScore"},T().createElement(R.CheckIcon,{size:48,color:"var(--sys-online-indicator)"}));break;default:o=T().createElement(XS,{value:i,isPercentage:!1,width:140,height:140,type:"success"})}return T().createElement("div",{className:"OverallScore"},T().createElement("div",{className:"OverallScore__scoreEllipseSvg"},o),T().createElement("div",{className:"OverallScore__content"},T().createElement("div",{className:"OverallScore__content__title"},n),T().createElement("div",{className:"OverallScore__content__description"},r),T().createElement("div",{className:"OverallScore__content__chips"},t)))};$S.propTypes={title:k().node,description:k().node,chips:k().node.isRequired,chartValue:k().number.isRequired};const eC=$S,tC=x().div.withConfig({displayName:"AccordionItem"})(["padding:12px;&:last-child{border-bottom:none;}h5{display:inline-flex;align-items:center;font-weight:bold;}"]),sC=T().createElement("div",{className:"success"},T().createElement(R.CheckIcon,{size:20,color:"var(--sys-online-indicator)"}));function aC(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function iC(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?aC(Object(s),!0).forEach((function(t){nC(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):aC(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function nC(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const rC="local",oC="amazons3",lC=Math.pow(1024,2),dC=(0,N.defineMessages)({data_retention_title:{id:"admin.data_retention.title",defaultMessage:"Data Retention Policy"},ip_filtering_title:{id:"admin.sidebar.ip_filtering",defaultMessage:"IP Filtering"},cache_settings_title:{id:"admin.cacheSettings.title",defaultMessage:"Cache Settings"},cache_type_title:{id:"admin.cacheSettings.cacheTypeTitle",defaultMessage:"Cache Type"},cache_type_desc:{id:"admin.cacheSettings.cacheTypeDesc",defaultMessage:'The type of the cache backend. E.g.: "redis" or "lru"'},redis_address_title:{id:"admin.cacheSettings.redisAddress",defaultMessage:"Redis Address"},redis_address_desc:{id:"admin.cacheSettings.redisAddressDesc",defaultMessage:'The hostname:port of the Redis server. E.g.: "localhost:6379"'},redis_address_placeholder:{id:"admin.cacheSettings.redisAddressPlaceholder",defaultMessage:"localhost:6379"},redis_password_title:{id:"admin.cacheSettings.redisPassword",defaultMessage:"Redis Password"},redis_password_desc:{id:"admin.cacheSettings.redisPasswordDesc",defaultMessage:"The password of the Redis server."},redis_db_title:{id:"admin.cacheSettings.redisDB",defaultMessage:"Redis DB"},redis_db_desc:{id:"admin.cacheSettings.redisDBDesc",defaultMessage:'The database of the Redis server. E.g.: "0"'},redis_db_placeholder:{id:"admin.cacheSettings.redisDBPlaceholder",defaultMessage:"0"},redis_clientcache_title:{id:"admin.cacheSettings.redisClientCache",defaultMessage:"Disable Client Cache"},redis_clientcache_desc:{id:"admin.cacheSettings.redisClientCacheDesc",defaultMessage:"When true, client-side caching is disabled."}}),cC={about:{icon:T().createElement(R.InformationOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,N.defineMessage)({id:"admin.sidebar.about",defaultMessage:"About"}),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(la(M.ABOUT))),subsections:{license:{url:"about/license",title:(0,N.defineMessage)({id:"admin.sidebar.license",defaultMessage:"Edition and License"}),searchableStrings:Du,isHidden:zs(oa(M.ABOUT.EDITION_AND_LICENSE)),isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE)),schema:{id:"LicenseSettings",component:Fu}}}},billing:{icon:T().createElement(R.CreditCardOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,N.defineMessage)({id:"admin.sidebar.billing",defaultMessage:"Billing & Account"}),isHidden:zs(aa("Cloud")),subsections:{subscription:{url:"billing/subscription",title:(0,N.defineMessage)({id:"admin.sidebar.subscription",defaultMessage:"Subscription"}),searchableStrings:Po,schema:{id:"BillingSubscriptions",component:()=>{const e=(0,a.useDispatch)(),t=(0,a.useSelector)(dt.dw),s=(0,a.useSelector)((e=>{const t=(0,dt.Zz)(e);return Boolean(t.limits||t.subscription||t.customer||t.products)})),i=(null==t?void 0:t.trial_end_at)||0,n=(0,uo.I)().get("action"),r=(0,a.useSelector)(dt.Pd),{openPricingModal:o,isAirGapped:l}=(0,mo.A)();let d=!1,c=0;return"true"===(null==t?void 0:t.is_free_trial)&&(d=!0,c=Math.min((0,D.RF)(t.trial_end_at),mt.RC.TRIAL_30_DAYS)),(0,A.useEffect)((()=>{e((0,Ur.dw)()),e((0,Ur.Oy)(!0)),e((0,Ur.wX)()),"show_pricing_modal"!==n||l||o()}),[]),t&&r||s?T().createElement("div",{className:"wrapper--fixed BillingSubscriptions"},T().createElement(nt,null,T().createElement(N.FormattedMessage,ko.title)),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},s&&T().createElement(Br,null),!s&&T().createElement(T().Fragment,null,d&&T().createElement(co,{trialEndDate:i}),T().createElement("div",{className:"BillingSubscriptions__topWrapper"},T().createElement(Io,{isFreeTrial:d,subscriptionPlan:null==r?void 0:r.sku}),T().createElement(So,{isFreeTrial:d,daysLeftOnTrial:c})),T().createElement(bo,{isFreeTrial:d,subscriptionPlan:null==r?void 0:r.sku,onUpgradeMattermostCloud:o}))))):null}},isHidden:zs(aa("Cloud")),isDisabled:zs(da("billing"))},billing_history:{url:"billing/billing_history",title:(0,N.defineMessage)({id:"admin.sidebar.billing_history",defaultMessage:"Billing History"}),searchableStrings:Qr,schema:{id:"BillingHistory",component:()=>{const e=(0,a.useDispatch)(),t=(0,a.useSelector)(dt.I0),s=(0,a.useSelector)(dt.MP),{invoices:i}=(0,a.useSelector)(dt.Zz);(0,A.useEffect)((()=>{e((0,Ur.NP)())}),[t]);const n=s&&T().createElement(Jr,{invoices:s}),r=0===Object.keys(s||{}).length;return T().createElement("div",{className:"wrapper--fixed BillingHistory"},T().createElement(nt,null,T().createElement(N.FormattedMessage,Kr.title)),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},i&&T().createElement(Br,null),!i&&T().createElement("div",{className:"BillingHistory__card"},T().createElement("div",{className:"BillingHistory__cardHeader"},T().createElement("div",{className:"BillingHistory__cardHeaderText"},T().createElement("div",{className:"BillingHistory__cardHeaderText-top"},T().createElement(N.FormattedMessage,{id:"admin.billing.history.transactions",defaultMessage:"Transactions"})),T().createElement("div",{"data-testid":"no-invoices",className:"BillingHistory__cardHeaderText-bottom"},T().createElement(N.FormattedMessage,{id:"admin.billing.history.allPaymentsShowHere",defaultMessage:"All of your invoices will be shown here"})))),T().createElement("div",{className:"BillingHistory__cardBody"},null!=s&&(r?T().createElement(Xr,{selfHosted:!t}):n),null==s&&T().createElement("div",{className:"BillingHistory__spinner"},T().createElement(ce.A,null)))))))}},isHidden:zs(aa("Cloud")),isDisabled:zs(da("billing"))},company_info:{url:"billing/company_info",title:(0,N.defineMessage)({id:"admin.sidebar.company_info",defaultMessage:"Company Information"}),searchableStrings:jo,schema:{id:"CompanyInfo",component:()=>{const e=(0,a.useDispatch)(),{customer:t}=(0,a.useSelector)(dt.Zz);return(0,A.useEffect)((()=>{e((0,Ur.wX)())}),[]),T().createElement("div",{className:"wrapper--fixed CompanyInfo"},T().createElement(nt,null,T().createElement(N.FormattedMessage,Bo.title)),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},t?T().createElement(Br,null):T().createElement(Uo,null))))}},isHidden:zs(aa("Cloud")),isDisabled:zs(da("billing"))},company_info_edit:{url:"billing/company_info_edit",schema:{id:"CompanyInfoEdit",component:()=>{var e,t,s,i,n,r,o,l,d,c,m,u,p,g,f,E,b;const v=(0,a.useDispatch)(),y=(0,w.useHistory)(),M=(0,a.useSelector)((e=>e.entities.cloud.customer)),[_,S]=(0,A.useState)(null==M?void 0:M.name),[C,R]=(0,A.useState)((null==M?void 0:M.num_employees)||void 0),[O,I]=(0,A.useState)(null==M||null===(e=M.company_address)||void 0===e?void 0:e.line1),[k,P]=(0,A.useState)(null==M||null===(t=M.company_address)||void 0===t?void 0:t.line2),[x,D]=(0,A.useState)(null==M||null===(s=M.company_address)||void 0===s?void 0:s.city),[L,F]=(0,A.useState)(null==M||null===(i=M.company_address)||void 0===i?void 0:i.postal_code),[U,B]=(0,A.useState)((null==M||null===(n=M.company_address)||void 0===n?void 0:n.country)||(0,Ho.mG)("US")),[j,H]=(0,A.useState)(null==M||null===(r=M.company_address)||void 0===r?void 0:r.state),[G,q]=(0,A.useState)(!1),[V,z]=(0,A.useState)(Boolean(!(null!=M&&null!==(o=M.company_address)&&void 0!==o&&o.line1)&&(null==M||null===(l=M.billing_address)||void 0===l?void 0:l.line1))),[W,Y]=(0,A.useState)(void 0),[Z,J]=(0,A.useState)(!1),K=(0,A.useCallback)((()=>{Y(V?Boolean(_):Boolean(_&&O&&x&&L&&U&&j))}),[V,_,O,x,L,U,j]),Q=e=>t=>{e(t.target.value),K(),q(!0)};if((0,A.useEffect)((()=>{v((0,Ur.wX)())}),[v]),(0,A.useEffect)((()=>{K()}),[K]),(0,A.useEffect)((()=>{G&&v((0,h.Jb)(!0))}),[G]),!M)return null;const X=T().createElement(T().Fragment,null,T().createElement("div",{className:"CompanyInfoEdit__companyInfo-addressTitle"},T().createElement(N.FormattedMessage,{id:"admin.billing.company_info.billingAddress",defaultMessage:"Billing Address"})),T().createElement("div",{className:"CompanyInfoEdit__companyInfo-address"},T().createElement("div",null,null==M||null===(d=M.billing_address)||void 0===d?void 0:d.line1),(null==M||null===(c=M.billing_address)||void 0===c?void 0:c.line2)&&T().createElement("div",null,null==M||null===(m=M.billing_address)||void 0===m?void 0:m.line2),T().createElement("div",null,"".concat(null==M||null===(u=M.billing_address)||void 0===u?void 0:u.city,", ").concat(null==M||null===(p=M.billing_address)||void 0===p?void 0:p.state,", ").concat(null==M||null===(g=M.billing_address)||void 0===g?void 0:g.postal_code)),T().createElement("div",null,null==M||null===(f=M.billing_address)||void 0===f?void 0:f.country))),$=T().createElement(T().Fragment,null,T().createElement(Go.A,{onChange:e=>{B(e.value),q(!0)},value:U||void 0}),T().createElement("div",{className:"form-row"},T().createElement(Vo.A,{name:"address",type:"text",value:O,onChange:Q(I),placeholder:(0,N.defineMessage)({id:"admin.billing.company_info.address",defaultMessage:"Address"}),required:!0})),T().createElement("div",{className:"form-row"},T().createElement(Vo.A,{name:"address2",type:"text",value:k,onChange:Q(P),placeholder:(0,N.defineMessage)({id:"admin.billing.company_info.address_2",defaultMessage:"Address 2"})})),T().createElement("div",{className:"form-row"},T().createElement(Vo.A,{name:"city",type:"text",value:x,onChange:Q(D),placeholder:(0,N.defineMessage)({id:"admin.billing.company_info.city",defaultMessage:"City"}),required:!0})),T().createElement("div",{className:"form-row"},T().createElement("div",{className:"form-row-third-1 selector"},T().createElement(Yo,{country:U,state:j,onChange:e=>{H(e),q(!0)}})),T().createElement("div",{className:"form-row-third-2"},T().createElement(Vo.A,{name:"postalCode",type:"text",value:L,onChange:Q(F),placeholder:(0,N.defineMessage)({id:"admin.billing.company_info.zipcode",defaultMessage:"Zip/Postal Code"}),required:!0}))));return T().createElement("div",{className:"wrapper--fixed CompanyInfoEdit"},T().createElement(nt,{withBackButton:!0},T().createElement("div",null,T().createElement(tt.A,{to:"/admin_console/billing/company_info",className:"fa fa-angle-left back"}),T().createElement(N.FormattedMessage,{id:"admin.billing.company_info_edit.title",defaultMessage:"Edit Company Information"}))),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement("div",{className:"CompanyInfoEdit__card"},T().createElement("div",{className:"CompanyInfoEdit__form"},T().createElement("div",{className:"section-title"},T().createElement(N.FormattedMessage,{id:"admin.billing.company_info_edit.companyDetails",defaultMessage:"Company Details"})),T().createElement("div",{className:"form-row"},T().createElement(Vo.A,{name:"companyName",type:"text",value:_,onChange:Q(S),placeholder:(0,N.defineMessage)({id:"admin.billing.company_info.companyName",defaultMessage:"Company name"}),required:!0})),T().createElement("div",{className:"form-row"},T().createElement(Vo.A,{name:"numEmployees",type:"number",value:C,onChange:e=>{e.target.value?R(parseInt(e.target.value,10)):R(void 0),q(!0)},placeholder:(0,N.defineMessage)({id:"admin.billing.company_info.numEmployees",defaultMessage:"Number of employees (optional)"})})),T().createElement("div",{className:"section-title"},T().createElement(N.FormattedMessage,{id:"admin.billing.company_info_edit.company_address",defaultMessage:"Company Address"})),(null==M||null===(E=M.billing_address)||void 0===E?void 0:E.line1)&&T().createElement("div",{className:"checkbox"},T().createElement("label",null,T().createElement("input",{type:"checkbox",checked:V,onChange:e=>{z(e.target.checked),q(!0)}}),T().createElement(N.FormattedMessage,{id:"admin.billing.company_info_edit.sameAsBillingAddress",defaultMessage:"Same as Billing Address"}))),V&&null!=M&&null!==(b=M.billing_address)&&void 0!==b&&b.line1?X:$)))),T().createElement("div",{className:"admin-console-save"},T().createElement(st.A,{saving:Z,disabled:!W,onClick:async()=>{J(!0),await v((0,Ur.jF)({name:_,num_employees:C||0})),V?await v((0,Ur.Tq)({city:"",country:"",line1:"",line2:"",postal_code:"",state:""})):await v((0,Ur.Tq)({city:x||"",country:U||"",line1:O||"",line2:k||"",postal_code:L||"",state:j||""})),J(!1),y.push("/admin_console/billing/company_info")},defaultMessage:T().createElement(N.FormattedMessage,{id:"admin.billing.company_info_edit.save",defaultMessage:"Save info"})}),T().createElement(tt.A,{className:"btn btn-tertiary",to:"/admin_console/billing/company_info"},T().createElement(N.FormattedMessage,{id:"admin.billing.company_info_edit.cancel",defaultMessage:"Cancel"}))))}},isHidden:zs(aa("Cloud")),isDisabled:zs(da("billing"))}}},reporting:{icon:T().createElement(R.ChartBarIcon,{size:16,color:"currentColor"}),sectionTitle:(0,N.defineMessage)({id:"admin.sidebar.reporting",defaultMessage:"Reporting"}),isHidden:zs(la(M.REPORTING)),subsections:{workspace_optimization:{url:"reporting/workspace_optimization",title:(0,N.defineMessage)({id:"admin.sidebar.workspaceOptimization",defaultMessage:"Workspace Optimization"}),schema:{id:"WorkspaceOptimizationDashboard",component:e=>{const{data:t,loading:s}=(e=>{const[t,s]=(0,A.useState)(!0),[i,n]=(0,A.useState)(void 0),{formatMessage:r}=(0,N.useIntl)(),o=(0,a.useSelector)((e=>e.entities.admin.prevTrialLicense)),l=(0,a.useSelector)(c.Ay),d=(0,a.useSelector)((e=>(0,c.Sw)(e))),m=(0,a.useSelector)((e=>e.entities.admin.analytics)),u="true"!==(null==l?void 0:l.IsLicensed)&&"true"!==(null==o?void 0:o.IsLicensed),p=(0,qs.vj)(l)||-1,g="true"===(null==l?void 0:l.IsLicensed)&&p>=0,h="true"===(null==l?void 0:l.Cloud),f=(0,qs.PL)(l),E=(0,qs.P9)(l),[,b]=(0,io.A)(),v=(0,A.useMemo)((()=>({configUrl:u?mt.Uo.LICENSE:b,configText:r(u?{id:"admin.reporting.workspace_optimization.cta.startTrial",defaultMessage:"Start trial"}:{id:"admin.reporting.workspace_optimization.cta.upgradeLicense",defaultMessage:"Contact sales"})})),[u,b,r]),y=(0,A.useMemo)((()=>({isLicensed:g,isEnterpriseLicense:f,trialOrEnterpriseCtaConfig:v,isStarterLicense:E,isCloud:h,analytics:m,installedVersion:d})),[g,f,v,E,h,m,d]);return(0,A.useEffect)((()=>{s(!0),(async()=>({updates:await zS(e,r,y),configuration:await WS(e,r,y),access:await YS(e,r,y),performance:await ZS(e,r,y),dataPrivacy:await JS(e,r,y),easyManagement:await KS(e,r,y)}))().then((e=>{n(e),s(!1)}))}),[e,r,y]),{data:i,loading:t}})(e.config),i={[gS.INFO]:0,[gS.WARNING]:0,[gS.ERROR]:0},n={max:0,current:0},r=t&&Object.entries(t).filter((e=>{let[t,s]=e;return!s.hide})).map((e=>{let[t,s]=e;const a={[gS.INFO]:0,[gS.WARNING]:0,[gS.ERROR]:0},r=[];s.items.forEach((e=>{void 0!==e.status&&(n.max+=e.scoreImpact,n.current+=e.scoreImpact*e.impactModifier,e.status!==gS.OK&&e.status!==gS.NONE&&(r.push(T().createElement(tC,{key:"".concat(t,"-item_").concat(e.id)},T().createElement("h5",null,T().createElement("i",{className:oe()("icon ".concat(e.status),{"icon-alert-outline":e.status===gS.WARNING,"icon-alert-circle-outline":e.status===gS.ERROR,"icon-information-outline":e.status===gS.INFO})}),e.title),T().createElement("p",null,e.description),T().createElement(bS,{learnMoreLink:e.infoUrl,learnMoreText:e.infoText,actionLink:e.configUrl,actionText:e.configText}))),a[e.status]+=1,i[e.status]+=1))}));const{title:o,description:l,descriptionOk:d,icon:c}=s;return{title:o,description:0===r.length?d:l,icon:0===r.length?sC:c,items:r,extraContent:T().createElement(fS,{chipsData:a,hideCountZeroChips:!0})}}));return s||!r?T().createElement(Na.A,null):T().createElement("div",{className:"WorkspaceOptimizationDashboard wrapper--fixed"},T().createElement(nt,null,T().createElement(N.FormattedMessage,{id:"admin.reporting.workspace_optimization.title",defaultMessage:"Workspace Optimization"})),T().createElement("div",{className:"admin-console__wrapper"},T().createElement(eC,{chips:T().createElement(fS,{chipsData:i,hideCountZeroChips:!1}),chartValue:Math.floor(n.current/n.max*100)}),T().createElement(uS,{accordionItemsData:r,expandMultiple:!0})))}},isHidden:zs(oa(M.REPORTING.SITE_STATISTICS)),isDisabled:zs(da(M.REPORTING.SITE_STATISTICS))},system_analytics:{url:"reporting/system_analytics",title:(0,N.defineMessage)({id:"admin.sidebar.siteStatistics",defaultMessage:"Site Statistics"}),searchableStrings:hi,schema:{id:"SystemAnalytics",component:Ei},isHidden:zs(oa(M.REPORTING.SITE_STATISTICS)),isDisabled:zs(da(M.REPORTING.SITE_STATISTICS))},team_statistics:{url:"reporting/team_statistics",title:(0,N.defineMessage)({id:"admin.sidebar.teamStatistics",defaultMessage:"Team Statistics"}),searchableStrings:Ri,schema:{id:"TeamAnalytics",component:Ii},isHidden:zs(oa(M.REPORTING.TEAM_STATISTICS)),isDisabled:zs(da(M.REPORTING.TEAM_STATISTICS))},server_logs:{url:"reporting/server_logs",title:(0,N.defineMessage)({id:"admin.sidebar.logs",defaultMessage:"Server Logs"}),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.REPORTING.SERVER_LOGS))),isDisabled:zs(da(M.REPORTING.SERVER_LOGS)),searchableStrings:Bf,schema:{id:"ServerLogs",component:Hf}}}},user_management:{icon:T().createElement(R.AccountMultipleOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,N.defineMessage)({id:"admin.sidebar.userManagement",defaultMessage:"User Management"}),isHidden:zs(la(M.USER_MANAGEMENT)),subsections:{system_users:{url:"user_management/users",title:(0,N.defineMessage)({id:"admin.sidebar.users",defaultMessage:"Users"}),searchableStrings:Hy,isHidden:zs(oa(M.USER_MANAGEMENT.USERS)),schema:{id:"SystemUsers",component:Vy}},system_user_detail:{url:"user_management/user/:user_id(".concat(ki.Zv,")"),isHidden:zs(oa(M.USER_MANAGEMENT.USERS)),schema:{id:"SystemUserDetail",component:Ov}},group_detail:{url:"user_management/groups/:group_id(".concat(ki.Zv,")"),isDisabled:zs(da(M.USER_MANAGEMENT.GROUPS)),isHidden:zs(oa(M.USER_MANAGEMENT.GROUPS)),schema:{id:"GroupDetail",component:wc}},groups:{url:"user_management/groups",title:(0,N.defineMessage)({id:"admin.sidebar.groups",defaultMessage:"Groups"}),isHidden:Ys(zs(aa("LDAPGroups")),zs(oa(M.USER_MANAGEMENT.GROUPS))),isDisabled:zs(da(M.USER_MANAGEMENT.GROUPS)),schema:{id:"Groups",component:qc},restrictedIndicator:ga()},groups_feature_discovery:{url:"user_management/groups",isDiscovery:!0,title:(0,N.defineMessage)({id:"admin.sidebar.groups",defaultMessage:"Groups"}),isHidden:Ys(aa("LDAPGroups")),schema:{id:"Groups",name:(0,N.defineMessage)({id:"admin.group_settings.groupsPageTitle",defaultMessage:"Groups"}),settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"groups",minimumSKURequiredForFeature:mt.gS.Enterprise,title:(0,N.defineMessage)({id:"admin.groups_feature_discovery.title",defaultMessage:"Synchronize your Active Directory/LDAP groups with Mattermost Enterprise"}),copy:(0,N.defineMessage)({id:"admin.groups_feature_discovery.copy",defaultMessage:"Use AD/LDAP groups to organize and apply actions to multiple users at once. Manage team and channel memberships, permissions, and more."}),learnMoreURL:"https://docs.mattermost.com/deployment/ldap-group-sync.html",featureDiscoveryImage:T().createElement(Yd,{width:276,height:170})}),key:"GroupsFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0,mt.gS.Enterprise)},team_detail:{url:"user_management/teams/:team_id(".concat(ki.Zv,")"),isDisabled:zs(da(M.USER_MANAGEMENT.TEAMS)),isHidden:zs(oa(M.USER_MANAGEMENT.TEAMS)),schema:{id:"TeamDetail",component:cS}},teams:{url:"user_management/teams",title:(0,N.defineMessage)({id:"admin.sidebar.teams",defaultMessage:"Teams"}),isHidden:Ys(zs(oa(M.USER_MANAGEMENT.TEAMS))),schema:{id:"Teams",component:k_}},channel_detail:{url:"user_management/channels/:channel_id(".concat(ki.Zv,")"),isDisabled:zs(da(M.USER_MANAGEMENT.CHANNELS)),isHidden:zs(oa(M.USER_MANAGEMENT.CHANNELS)),schema:{id:"ChannelDetail",component:A_}},channel:{url:"user_management/channels",title:(0,N.defineMessage)({id:"admin.sidebar.channels",defaultMessage:"Channels"}),isHidden:zs(oa(M.USER_MANAGEMENT.CHANNELS)),isDisabled:zs(da(M.USER_MANAGEMENT.CHANNELS)),schema:{id:"Channels",component:iM}},systemScheme:{url:"user_management/permissions/system_scheme",isHidden:zs(oa(M.USER_MANAGEMENT.PERMISSIONS)),isDisabled:zs(da(M.USER_MANAGEMENT.PERMISSIONS)),schema:{id:"PermissionSystemScheme",component:sg}},teamSchemeDetail:{url:"user_management/permissions/team_override_scheme/:scheme_id(".concat(ki.Zv,")"),isHidden:zs(oa(M.USER_MANAGEMENT.PERMISSIONS)),isDisabled:zs(da(M.USER_MANAGEMENT.PERMISSIONS)),schema:{id:"PermissionSystemScheme",component:pg}},teamScheme:{url:"user_management/permissions/team_override_scheme",isHidden:zs(oa(M.USER_MANAGEMENT.PERMISSIONS)),isDisabled:zs(da(M.USER_MANAGEMENT.PERMISSIONS)),schema:{id:"PermissionSystemScheme",component:pg}},permissions:{url:"user_management/permissions/",title:(0,N.defineMessage)({id:"admin.sidebar.permissions",defaultMessage:"Permissions"}),searchableStrings:hp,isHidden:Ys(zs(oa(M.USER_MANAGEMENT.PERMISSIONS))),isDisabled:zs(da(M.USER_MANAGEMENT.PERMISSIONS)),schema:{id:"PermissionSchemes",component:Ep}},system_role:{url:"user_management/system_roles/:role_id(".concat(ki.Zv,")"),isHidden:Ys(zs(aa("LDAPGroups")),ia(mt.gS.Entry),zs(oa(M.USER_MANAGEMENT.SYSTEM_ROLES))),isDisabled:zs(da(M.USER_MANAGEMENT.SYSTEM_ROLES)),schema:{id:"SystemRole",component:Yb}},system_roles:{url:"user_management/system_roles",title:(0,N.defineMessage)({id:"admin.sidebar.systemRoles",defaultMessage:"Delegated Granular Administration"}),isHidden:Ys(zs(aa("LDAPGroups")),ia(mt.gS.Entry),zs(oa(M.USER_MANAGEMENT.SYSTEM_ROLES))),isDisabled:zs(da(M.USER_MANAGEMENT.SYSTEM_ROLES)),schema:{id:"SystemRoles",component:sb},restrictedIndicator:ga()},system_roles_feature_discovery:{url:"user_management/system_roles",isDiscovery:!0,title:(0,N.defineMessage)({id:"admin.sidebar.systemRoles",defaultMessage:"Delegated Granular Administration"}),isHidden:Ys(aa("LDAPGroups")),schema:{id:"SystemRoles",name:(0,N.defineMessage)({id:"admin.permissions.systemRoles",defaultMessage:"Delegated Granular Administration"}),settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"system_roles",minimumSKURequiredForFeature:mt.gS.Enterprise,title:(0,N.defineMessage)({id:"admin.system_roles_feature_discovery.title",defaultMessage:"Provide controlled access to the System Console with Mattermost Enterprise"}),copy:(0,N.defineMessage)({id:"admin.system_roles_feature_discovery.copy",defaultMessage:"Assign customizable admin roles to give designated users read and/or write access to select sections of System Console."}),learnMoreURL:"https://docs.mattermost.com/deployment/admin-roles.html",featureDiscoveryImage:T().createElement(Xd.A,{width:294,height:180})}),key:"SystemRolesFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0,mt.gS.Enterprise)}}},system_attributes:{icon:T().createElement(R.TableLargeIcon,{size:16,color:"currentColor"}),sectionTitle:(0,N.defineMessage)({id:"admin.sidebar.systemAttributes",defaultMessage:"System Attributes"}),isHidden:zs(la(M.USER_MANAGEMENT)),subsections:{system_properties:{url:"system_attributes/user_attributes",title:(0,N.defineMessage)({id:"admin.sidebar.user_attributes",defaultMessage:"User Attributes"}),searchableStrings:QE,isHidden:zs(Ws(na(mt.gS.Enterprise),Xs("FeatureFlags","CustomProfileAttributes"))),schema:{id:"SystemProperties",component:XE}},user_attributes_feature_discovery:{url:"system_attributes/user_attributes",isDiscovery:!0,title:(0,N.defineMessage)({id:"admin.sidebar.user_attributes",defaultMessage:"User Attributes"}),isHidden:Ys(na(mt.gS.Enterprise),$s("FeatureFlags","CustomProfileAttributes")),schema:{id:"SystemProperties",name:(0,N.defineMessage)({id:"admin.sidebar.user_attributes",defaultMessage:"User Attributes"}),settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"user_attributes",minimumSKURequiredForFeature:mt.gS.Enterprise,title:(0,N.defineMessage)({id:"admin.user_attributes_feature_discovery.title",defaultMessage:"Add critical metadata to user profiles using custom user attributes with Mattermost Enterprise"}),copy:(0,N.defineMessage)({id:"admin.user_attributes_feature_discovery.desc",defaultMessage:"Define and manage organization-specific user profile attributes as that can synchronize with your AD/LDAP or SAML identity provider."}),learnMoreURL:"https://docs.mattermost.com/manage/admin/user-attributes.html",featureDiscoveryImage:T().createElement(Yd,{width:294,height:180})}),key:"UserAttributesFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0,mt.gS.EnterpriseAdvanced)},access_control_policy_details_edit:{url:"system_attributes/attribute_based_access_control/edit_policy/:policy_id(".concat(ki.Zv,")"),isHidden:Ys($s("AccessControlSettings","EnableAttributeBasedAccessControl"),zs(na(mt.gS.EnterpriseAdvanced)),zs(oa(M.USER_MANAGEMENT.SYSTEM_ROLES))),isDisabled:Ys(zs(da(M.USER_MANAGEMENT.SYSTEM_ROLES)),$s("FeatureFlags","AttributeBasedAccessControl")),schema:{id:"AccessControlPolicy",component:gr}},access_control_policy_details:{url:"system_attributes/attribute_based_access_control/edit_policy",isHidden:Ys($s("AccessControlSettings","EnableAttributeBasedAccessControl"),zs(na(mt.gS.EnterpriseAdvanced)),zs(oa(M.USER_MANAGEMENT.SYSTEM_ROLES)),$s("FeatureFlags","AttributeBasedAccessControl")),isDisabled:zs(da(M.USER_MANAGEMENT.SYSTEM_ROLES)),schema:{id:"AccessControlPolicy",component:gr}},attribute_based_access_control:{url:"system_attributes/attribute_based_access_control",title:(0,N.defineMessage)({id:"admin.sidebar.attributeBasedAccessControl",defaultMessage:"Attribute-Based Access"}),isHidden:Ys(zs(na(mt.gS.EnterpriseAdvanced)),zs(oa(M.USER_MANAGEMENT.SYSTEM_ROLES)),$s("FeatureFlags","AttributeBasedAccessControl")),isDisabled:zs(da(M.USER_MANAGEMENT.SYSTEM_ROLES)),schema:{id:"AttributeBasedAccessControl",isBeta:!0,name:(0,N.defineMessage)({id:"admin.accesscontrol.title",defaultMessage:"Attribute-Based Access"}),sections:[{key:"admin.accesscontrol.settings",settings:[{type:"bool",key:"AccessControlSettings.EnableAttributeBasedAccessControl",label:(0,N.defineMessage)({id:"admin.accesscontrol.enableTitle",defaultMessage:"Allow attribute based access controls on this server"}),help_text:(0,N.defineMessage)({id:"admin.accesscontrol.enableDesc",defaultMessage:"Allow access restrictions based on user attributes using custom access policies. To effectively use this feature, you must define user attributes in the {userAttributes} section."}),help_text_values:{userAttributes:T().createElement("a",{href:"../system_attributes/user_attributes"},T().createElement(N.FormattedMessage,{id:"admin.system_properties.user_properties.title",defaultMessage:"User Attributes"}))}}]},{key:"admin.accesscontrol.policies",isHidden:Ys($s("AccessControlSettings","EnableAttributeBasedAccessControl"),Qs("AccessControlSettings.EnableAttributeBasedAccessControl")),settings:[{type:"custom",component:Ui,key:"PolicyListPanel"}]},{key:"admin.accesscontrol.policyjobs",isHidden:Ys($s("AccessControlSettings","EnableAttributeBasedAccessControl"),Qs("AccessControlSettings.EnableAttributeBasedAccessControl")),settings:[{type:"custom",component:rn,key:"AcessControlPolicyJobs"}]}]},restrictedIndicator:ga(!1,mt.gS.EnterpriseAdvanced)},attribute_based_access_control_feature_discovery:{url:"system_attributes/attribute_based_access_control",isDiscovery:!0,title:(0,N.defineMessage)({id:"admin.sidebar.attributeBasedAccessControl",defaultMessage:"Attribute-Based Access"}),isHidden:Ys(na(mt.gS.EnterpriseAdvanced),$s("FeatureFlags","AttributeBasedAccessControl")),schema:{id:"AttributeBasedAccessControl",name:(0,N.defineMessage)({id:"admin.accesscontrol.title",defaultMessage:"Attribute-Based Access (Beta)"}),settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"attribute_based_access_control",minimumSKURequiredForFeature:mt.gS.EnterpriseAdvanced,title:(0,N.defineMessage)({id:"admin.attribute_based_access_control_feature_discovery.title",defaultMessage:"Use attribute based access policies to control channel access with Mattermost Enterprise Advanced"}),copy:(0,N.defineMessage)({id:"admin.attribute_based_access_control_feature_discovery.desc",defaultMessage:"Create policies containing access rules based on user attributes and apply them to channels and other resources within Mattermost."}),learnMoreURL:"https://docs.mattermost.com/deployment/",featureDiscoveryImage:T().createElement(Xd.A,{width:294,height:180})}),key:"AttributeBasedAccessControlFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0,mt.gS.EnterpriseAdvanced)}}},environment:{icon:T().createElement(R.ServerVariantIcon,{size:16,color:"currentColor"}),sectionTitle:(0,N.defineMessage)({id:"admin.sidebar.environment",defaultMessage:"Environment"}),isHidden:zs(la(M.ENVIRONMENT)),subsections:{web_server:{url:"environment/web_server",title:(0,N.defineMessage)({id:"admin.sidebar.webServer",defaultMessage:"Web Server"}),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.ENVIRONMENT.WEB_SERVER))),schema:{id:"ServiceSettings",name:(0,N.defineMessage)({id:"admin.environment.webServer",defaultMessage:"Web Server"}),settings:[{type:"banner",label:(0,N.defineMessage)({id:"admin.rate.noteDescription",defaultMessage:"Changing properties in this section will require a server restart before taking effect."}),banner_type:"info"},{type:"text",key:"ServiceSettings.SiteURL",label:(0,N.defineMessage)({id:"admin.service.siteURL",defaultMessage:"Site URL:"}),help_text:(0,N.defineMessage)({id:"admin.service.siteURLDescription",defaultMessage:"The URL that users will use to access Mattermost. Standard ports, such as 80 and 443, can be omitted, but non-standard ports are required. For example: http://example.com:8065. This setting is required. Mattermost may be hosted at a subpath. For example: http://example.com:8065/company/mattermost. A restart is required before the server will work correctly."}),help_text_markdown:!0,placeholder:(0,N.defineMessage)({id:"admin.service.siteURLExample",defaultMessage:'E.g.: "http://example.com:8065"'}),isDisabled:zs(da(M.ENVIRONMENT.WEB_SERVER))},{type:"button",key:"TestSiteURL",action:h.zg,label:(0,N.defineMessage)({id:"admin.service.testSiteURL",defaultMessage:"Test Live URL"}),loading:(0,N.defineMessage)({id:"admin.service.testSiteURLTesting",defaultMessage:"Testing..."}),error_message:(0,N.defineMessage)({id:"admin.service.testSiteURLFail",defaultMessage:"Test unsuccessful: {error}"}),success_message:(0,N.defineMessage)({id:"admin.service.testSiteURLSuccess",defaultMessage:"Test successful. This is a valid URL."}),isDisabled:zs(da(M.ENVIRONMENT.WEB_SERVER))},{type:"text",key:"ServiceSettings.ListenAddress",label:(0,N.defineMessage)({id:"admin.service.listenAddress",defaultMessage:"Listen Address:"}),placeholder:(0,N.defineMessage)({id:"admin.service.listenExample",defaultMessage:'E.g.: ":8065"'}),help_text:(0,N.defineMessage)({id:"admin.service.listenDescription",defaultMessage:'The address and port to which to bind and listen. Specifying ":8065" will bind to all network interfaces. Specifying "127.0.0.1:8065" will only bind to the network interface having that IP address. If you choose a port of a lower level (called "system ports" or "well-known ports", in the range of 0-1023), you must have permissions to bind to that port. On Linux you can use: "sudo setcap cap_net_bind_service=+ep ./bin/mattermost" to allow Mattermost to bind to well-known ports.'}),isDisabled:zs(da(M.ENVIRONMENT.WEB_SERVER))},{type:"bool",key:"ServiceSettings.Forward80To443",label:(0,N.defineMessage)({id:"admin.service.forward80To443",defaultMessage:"Forward port 80 to 443:"}),help_text:(0,N.defineMessage)({id:"admin.service.forward80To443Description",defaultMessage:"Forwards all insecure traffic from port 80 to secure port 443. Not recommended when using a proxy server."}),disabled_help_text:(0,N.defineMessage)({id:"admin.service.forward80To443Description.disabled",defaultMessage:"Forwards all insecure traffic from port 80 to secure port 443. Not recommended when using a proxy server. This setting cannot be enabled until your server is [listening](#ServiceSettings.ListenAddress) on port 443."}),disabled_help_text_markdown:!0,isDisabled:Ys(sa,zs(da(M.ENVIRONMENT.WEB_SERVER)),zs(Zs("ServiceSettings.ListenAddress",/:443$/)))},{type:"dropdown",key:"ServiceSettings.ConnectionSecurity",label:(0,N.defineMessage)({id:"admin.connectionSecurityTitle",defaultMessage:"Connection Security:"}),help_text:yr,options:[{value:"",display_name:(0,N.defineMessage)({id:"admin.connectionSecurityNone",defaultMessage:"None"})},{value:"TLS",display_name:(0,N.defineMessage)({id:"admin.connectionSecurityTls",defaultMessage:"TLS (Recommended)"})}],isDisabled:zs(da(M.ENVIRONMENT.WEB_SERVER))},{type:"text",key:"ServiceSettings.TLSCertFile",label:(0,N.defineMessage)({id:"admin.service.tlsCertFile",defaultMessage:"TLS Certificate File:"}),help_text:(0,N.defineMessage)({id:"admin.service.tlsCertFileDescription",defaultMessage:"The certificate file to use."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.WEB_SERVER)),Ks("ServiceSettings.UseLetsEncrypt"))},{type:"text",key:"ServiceSettings.TLSKeyFile",label:(0,N.defineMessage)({id:"admin.service.tlsKeyFile",defaultMessage:"TLS Key File:"}),help_text:(0,N.defineMessage)({id:"admin.service.tlsKeyFileDescription",defaultMessage:"The private key file to use."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.WEB_SERVER)),Ks("ServiceSettings.UseLetsEncrypt"))},{type:"bool",key:"ServiceSettings.UseLetsEncrypt",label:(0,N.defineMessage)({id:"admin.service.useLetsEncrypt",defaultMessage:"Use Let's Encrypt:"}),help_text:(0,N.defineMessage)({id:"admin.service.useLetsEncryptDescription",defaultMessage:"Enable the automatic retrieval of certificates from Let's Encrypt. The certificate will be retrieved when a client attempts to connect from a new domain. This will work with multiple domains."}),disabled_help_text:(0,N.defineMessage)({id:"admin.service.useLetsEncryptDescription.disabled",defaultMessage:"Enable the automatic retrieval of certificates from Let's Encrypt. The certificate will be retrieved when a client attempts to connect from a new domain. This will work with multiple domains. This setting cannot be enabled unless the [Forward port 80 to 443](#ServiceSettings.Forward80To443) setting is set to true."}),disabled_help_text_markdown:!0,isDisabled:Ys(zs(da(M.ENVIRONMENT.WEB_SERVER)),Qs("ServiceSettings.Forward80To443"))},{type:"text",key:"ServiceSettings.LetsEncryptCertificateCacheFile",label:(0,N.defineMessage)({id:"admin.service.letsEncryptCertificateCacheFile",defaultMessage:"Let's Encrypt Certificate Cache File:"}),help_text:(0,N.defineMessage)({id:"admin.service.letsEncryptCertificateCacheFileDescription",defaultMessage:"Certificates retrieved and other data about the Let's Encrypt service will be stored in this file."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.WEB_SERVER)),Qs("ServiceSettings.UseLetsEncrypt"))},{type:"number",key:"ServiceSettings.ReadTimeout",label:(0,N.defineMessage)({id:"admin.service.readTimeout",defaultMessage:"Read Timeout:"}),help_text:(0,N.defineMessage)({id:"admin.service.readTimeoutDescription",defaultMessage:"Maximum time allowed from when the connection is accepted to when the request body is fully read."}),isDisabled:zs(da(M.ENVIRONMENT.WEB_SERVER))},{type:"number",key:"ServiceSettings.WriteTimeout",label:(0,N.defineMessage)({id:"admin.service.writeTimeout",defaultMessage:"Write Timeout:"}),help_text:(0,N.defineMessage)({id:"admin.service.writeTimeoutDescription",defaultMessage:"If using HTTP (insecure), this is the maximum time allowed from the end of reading the request headers until the response is written. If using HTTPS, it is the total time from when the connection is accepted until the response is written."}),isDisabled:zs(da(M.ENVIRONMENT.WEB_SERVER))},{type:"number",key:"ServiceSettings.MaximumPayloadSizeBytes",label:(0,N.defineMessage)({id:"admin.service.maximumPayloadSize",defaultMessage:"Maximum Payload Size (Bytes):"}),help_text:(0,N.defineMessage)({id:"admin.service.maximumPayloadSizeDescription",defaultMessage:"The maximum number of bytes allowed in the payload of incoming HTTP calls"}),isDisabled:zs(da(M.ENVIRONMENT.WEB_SERVER))},{type:"dropdown",key:"ServiceSettings.WebserverMode",label:(0,N.defineMessage)({id:"admin.webserverModeTitle",defaultMessage:"Webserver Mode:"}),help_text:Mr,options:[{value:"gzip",display_name:(0,N.defineMessage)({id:"admin.webserverModeGzip",defaultMessage:"gzip"})},{value:"uncompressed",display_name:(0,N.defineMessage)({id:"admin.webserverModeUncompressed",defaultMessage:"Uncompressed"})},{value:"disabled",display_name:(0,N.defineMessage)({id:"admin.webserverModeDisabled",defaultMessage:"Disabled"})}],isDisabled:zs(da(M.ENVIRONMENT.WEB_SERVER))},{type:"bool",key:"ServiceSettings.EnableInsecureOutgoingConnections",label:(0,N.defineMessage)({id:"admin.service.insecureTlsTitle",defaultMessage:"Enable Insecure Outgoing Connections: "}),help_text:(0,N.defineMessage)({id:"admin.service.insecureTlsDesc",defaultMessage:"When true, any outgoing HTTPS requests will accept unverified, self-signed certificates. For example, outgoing webhooks to a server with a self-signed TLS certificate, using any domain, will be allowed. Note that this makes these connections susceptible to man-in-the-middle attacks."}),isDisabled:zs(da(M.ENVIRONMENT.WEB_SERVER))},{type:"text",key:"ServiceSettings.ManagedResourcePaths",label:(0,N.defineMessage)({id:"admin.service.managedResourcePaths",defaultMessage:"Managed Resource Paths:"}),help_text:(0,N.defineMessage)({id:"admin.service.managedResourcePathsDescription",defaultMessage:"A comma-separated list of paths on the Mattermost server that are managed by another service. See <link>here</link> for more information."}),help_text_markdown:!1,help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.DESKTOP_MANAGED_RESOURCES},e)},isDisabled:zs(da(M.ENVIRONMENT.WEB_SERVER))},{type:"button",action:h.Wf,key:"ReloadConfigButton",label:(0,N.defineMessage)({id:"admin.reload.button",defaultMessage:"Reload Configuration From Disk"}),help_text:(0,N.defineMessage)({id:"admin.reload.reloadDescription",defaultMessage:'Deployments using multiple databases can switch from one master database to another without restarting the Mattermost server by updating "config.json" to the new desired configuration and using the {featureName} feature to load the new settings while the server is running. The administrator should then use the {recycleDatabaseConnections} feature to recycle the database connections based on the new settings.'}),help_text_values:{featureName:T().createElement("b",null,T().createElement(N.FormattedMessage,{id:"admin.reload.reloadDescription.featureName",defaultMessage:"Reload Configuration from Disk"})),recycleDatabaseConnections:T().createElement("a",{href:"../environment/database"},T().createElement("b",null,T().createElement(N.FormattedMessage,{id:"admin.reload.reloadDescription.recycleDatabaseConnections",defaultMessage:"Environment > Database > Recycle Database Connections"})))},error_message:(0,N.defineMessage)({id:"admin.reload.reloadFail",defaultMessage:"Reload unsuccessful: {error}"}),isDisabled:zs(da(M.ENVIRONMENT.WEB_SERVER))},{type:"button",key:"PurgeButton",action:h.Cu,label:(0,N.defineMessage)({id:"admin.purge.button",defaultMessage:"Purge All Caches"}),help_text:(0,N.defineMessage)({id:"admin.purge.purgeDescription",defaultMessage:"This will purge all the in-memory caches for things like sessions, accounts, channels, etc. Deployments using High Availability will attempt to purge all the servers in the cluster. Purging the caches may adversely impact performance."}),error_message:(0,N.defineMessage)({id:"admin.purge.purgeFail",defaultMessage:"Purging unsuccessful: {error}"}),isDisabled:zs(da(M.ENVIRONMENT.WEB_SERVER))}]}},database:{url:"environment/database",title:(0,N.defineMessage)({id:"admin.sidebar.database",defaultMessage:"Database"}),searchableStrings:_d,isHidden:Ys(sa,Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.ENVIRONMENT.DATABASE))),isDisabled:zs(da(M.ENVIRONMENT.DATABASE)),schema:{id:"DatabaseSettings",component:class extends Ia{constructor(e){super(e),yd(this,"getConfigFromState",(e=>(e.SqlSettings.MaxIdleConns=this.parseIntNonZero(this.state.maxIdleConns),e.SqlSettings.MaxOpenConns=this.parseIntNonZero(this.state.maxOpenConns),e.SqlSettings.Trace=this.state.trace,e.SqlSettings.DisableDatabaseSearch=this.state.disableDatabaseSearch,e.SqlSettings.QueryTimeout=this.parseIntNonZero(this.state.queryTimeout),e.SqlSettings.ConnMaxLifetimeMilliseconds=this.parseIntNonNegative(this.state.connMaxLifetimeMilliseconds),e.SqlSettings.ConnMaxIdleTimeMilliseconds=this.parseIntNonNegative(this.state.connMaxIdleTimeMilliseconds),e.ServiceSettings.MinimumHashtagLength=this.parseIntNonZero(this.state.minimumHashtagLength,3,2),e))),yd(this,"renderSettings",(()=>{const e="**********"+this.state.dataSource.substring(this.state.dataSource.indexOf("@"));let t=T().createElement("div",null);return"true"===this.props.license.IsLicensed&&(t=T().createElement(Qt,{requestAction:h.X0,helpText:T().createElement(N.FormattedMessage,Object.assign({},Md.recycleDescription,{values:{featureName:T().createElement("b",null,T().createElement(N.FormattedMessage,Md.featureName)),reloadConfiguration:T().createElement("a",{href:"../environment/web_server"},T().createElement("b",null,T().createElement(N.FormattedMessage,Md.reloadConfiguration)))}})),buttonText:T().createElement(N.FormattedMessage,Md.button),showSuccessMessage:!1,errorMessage:(0,N.defineMessage)({id:"admin.recycle.reloadFail",defaultMessage:"Recycling unsuccessful: {error}"}),includeDetailedError:!0,disabled:this.props.isDisabled})),T().createElement(is,null,T().createElement("div",{className:"banner"},T().createElement(N.FormattedMessage,Md.noteDescription)),T().createElement("div",{className:"form-group"},T().createElement("label",{className:"control-label col-sm-4",htmlFor:"DriverName"},T().createElement(N.FormattedMessage,Md.driverName)),T().createElement("div",{className:"col-sm-8"},T().createElement("input",{type:"text",className:"form-control",value:this.state.driverName,disabled:!0}),T().createElement("div",{className:"help-text"},T().createElement(N.FormattedMessage,Md.driverNameDescription)))),T().createElement("div",{className:"form-group"},T().createElement("label",{className:"control-label col-sm-4",htmlFor:"DataSource"},T().createElement(N.FormattedMessage,Md.dataSource)),T().createElement("div",{className:"col-sm-8"},T().createElement("input",{type:"text",className:"form-control",value:e,disabled:!0}),T().createElement("div",{className:"help-text"},T().createElement(N.FormattedMessage,Md.dataSourceDescription)))),T().createElement(ls,{id:"maxIdleConns",label:T().createElement(N.FormattedMessage,Md.maxConnectionsTitle),placeholder:(0,N.defineMessage)({id:"admin.sql.maxConnectionsExample",defaultMessage:'E.g.: "10"'}),helpText:T().createElement(N.FormattedMessage,Md.maxConnectionsDescription),value:this.state.maxIdleConns,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.MaxIdleConns"),disabled:this.props.isDisabled,type:"text"}),T().createElement(ls,{id:"maxOpenConns",label:T().createElement(N.FormattedMessage,Md.maxOpenTitle),placeholder:(0,N.defineMessage)({id:"admin.sql.maxOpenExample",defaultMessage:'E.g.: "10"'}),helpText:T().createElement(N.FormattedMessage,Md.maxOpenDescription),value:this.state.maxOpenConns,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.MaxOpenConns"),disabled:this.props.isDisabled,type:"text"}),T().createElement(ls,{id:"queryTimeout",label:T().createElement(N.FormattedMessage,Md.queryTimeoutTitle),placeholder:(0,N.defineMessage)({id:"admin.sql.queryTimeoutExample",defaultMessage:'E.g.: "30"'}),helpText:T().createElement(N.FormattedMessage,Md.queryTimeoutDescription),value:this.state.queryTimeout,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.QueryTimeout"),disabled:this.props.isDisabled,type:"text"}),T().createElement(ls,{id:"connMaxLifetimeMilliseconds",label:T().createElement(N.FormattedMessage,Md.connMaxLifetimeTitle),placeholder:(0,N.defineMessage)({id:"admin.sql.connMaxLifetimeExample",defaultMessage:'E.g.: "3600000"'}),helpText:T().createElement(N.FormattedMessage,Md.connMaxLifetimeDescription),value:this.state.connMaxLifetimeMilliseconds,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.ConnMaxLifetimeMilliseconds"),disabled:this.props.isDisabled,type:"text"}),T().createElement(ls,{id:"connMaxIdleTimeMilliseconds",label:T().createElement(N.FormattedMessage,Md.connMaxIdleTimeTitle),placeholder:(0,N.defineMessage)({id:"admin.sql.connMaxIdleTimeExample",defaultMessage:'E.g.: "300000"'}),helpText:T().createElement(N.FormattedMessage,Md.connMaxIdleTimeDescription),value:this.state.connMaxIdleTimeMilliseconds,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.ConnMaxIdleTimeMilliseconds"),disabled:this.props.isDisabled,type:"text"}),T().createElement(ls,{id:"minimumHashtagLength",label:T().createElement(N.FormattedMessage,Md.minimumHashtagLengthTitle),placeholder:(0,N.defineMessage)({id:"admin.service.minimumHashtagLengthExample",defaultMessage:'E.g.: "3"'}),helpText:T().createElement(N.FormattedMessage,Object.assign({},Md.minimumHashtagLengthDescription,{values:{link:e=>T().createElement(wt.A,{location:"database_settings",href:"https://dev.mysql.com/doc/refman/8.0/en/fulltext-fine-tuning.html"},e)}})),value:this.state.minimumHashtagLength,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.MinimumHashtagLength"),disabled:this.props.isDisabled,type:"text"}),T().createElement(j,{id:"trace",label:T().createElement(N.FormattedMessage,Md.traceTitle),helpText:T().createElement(N.FormattedMessage,Md.traceDescription),value:this.state.trace,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.Trace"),disabled:this.props.isDisabled}),t,T().createElement(j,{id:"disableDatabaseSearch",label:T().createElement(N.FormattedMessage,Md.disableDatabaseSearchTitle),helpText:T().createElement(N.FormattedMessage,Object.assign({},Md.disableDatabaseSearchDescription,{values:{link:e=>T().createElement(wt.A,{location:"database_settings",href:mt.Uk.ELASTICSEARCH},e)}})),value:this.state.disableDatabaseSearch,onChange:this.handleChange,setByEnv:this.isSetByEnv("SqlSettings.DisableDatabaseSearch"),disabled:this.props.isDisabled}),T().createElement(F,{label:T().createElement(N.FormattedMessage,{id:"admin.database.migrations_table.title",defaultMessage:"Schema Migrations:"})},T().createElement("div",{className:"migrations-table-setting"},T().createElement(Ed,{createHelpText:T().createElement(N.FormattedMessage,{id:"admin.database.migrations_table.help_text",defaultMessage:"All applied migrations."})}))),T().createElement("div",{className:"form-group"},T().createElement("label",{className:"control-label col-sm-4",htmlFor:"activeSearchBackend"},T().createElement(N.FormattedMessage,{id:"admin.database.search_backend.title",defaultMessage:"Active Search Backend:"})),T().createElement("div",{className:"col-sm-8"},T().createElement("input",{id:"activeSearchBackend",type:"text",className:"form-control",value:this.state.searchBackend,disabled:!0}),T().createElement("div",{className:"help-text"},T().createElement(N.FormattedMessage,{id:"admin.database.search_backend.help_text",defaultMessage:"Shows the currently active backend used for search. Values can be none, database, elasticsearch."})))))})),this.state=vd(vd({},this.state),{},{searchBackend:""})}componentDidMount(){this.getSearchBackend().then((e=>{this.setState({searchBackend:e})}))}async getSearchBackend(){return(await(0,h.hU)()()).ActiveSearchBackend}getStateFromConfig(e){return{driverName:e.SqlSettings.DriverName,dataSource:e.SqlSettings.DataSource,maxIdleConns:e.SqlSettings.MaxIdleConns,maxOpenConns:e.SqlSettings.MaxOpenConns,trace:e.SqlSettings.Trace,disableDatabaseSearch:e.SqlSettings.DisableDatabaseSearch,queryTimeout:e.SqlSettings.QueryTimeout,connMaxLifetimeMilliseconds:e.SqlSettings.ConnMaxLifetimeMilliseconds,connMaxIdleTimeMilliseconds:e.SqlSettings.ConnMaxIdleTimeMilliseconds,minimumHashtagLength:e.ServiceSettings.MinimumHashtagLength}}renderTitle(){return T().createElement(N.FormattedMessage,Md.title)}}}},elasticsearch:{url:"environment/elasticsearch",title:(0,N.defineMessage)({id:"admin.sidebar.elasticsearch",defaultMessage:"Elasticsearch"}),isHidden:Ys(zs(aa("Elasticsearch")),Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.ENVIRONMENT.ELASTICSEARCH))),searchableStrings:Ad,isDisabled:zs(da(M.ENVIRONMENT.ELASTICSEARCH)),schema:{id:"ElasticSearchSettings",component:class extends Ia{constructor(){super(...arguments),Sd(this,"getConfigFromState",(e=>(e.ElasticsearchSettings.ConnectionURL=this.state.connectionUrl,e.ElasticsearchSettings.Backend=this.state.backend,e.ElasticsearchSettings.SkipTLSVerification=this.state.skipTLSVerification,e.ElasticsearchSettings.CA=this.state.ca,e.ElasticsearchSettings.ClientCert=this.state.clientCert,e.ElasticsearchSettings.ClientKey=this.state.clientKey,e.ElasticsearchSettings.Username=this.state.username,e.ElasticsearchSettings.Password=this.state.password,e.ElasticsearchSettings.Sniff=this.state.sniff,e.ElasticsearchSettings.EnableIndexing=this.state.enableIndexing,e.ElasticsearchSettings.EnableSearching=this.state.enableSearching,e.ElasticsearchSettings.EnableAutocomplete=this.state.enableAutocomplete,e.ElasticsearchSettings.IgnoredPurgeIndexes=this.state.ignoredPurgeIndexes,e))),Sd(this,"handleSettingChanged",((e,t)=>{"enableIndexing"===e&&(!1===t?this.setState({enableSearching:!1,enableAutocomplete:!1}):this.setState({canSave:!1,configTested:!1})),"connectionUrl"!==e&&"backend"!==e&&"skipTLSVerification"!==e&&"username"!==e&&"password"!==e&&"sniff"!==e&&"ca"!==e&&"clientCert"!==e&&"clientKey"!==e||this.setState({configTested:!1,canSave:!1}),"enableSearching"!==e&&"enableAutocomplete"!==e&&this.setState({canPurgeAndIndex:!1}),this.handleChange(e,t)})),Sd(this,"handleSaved",(()=>{this.setState({canPurgeAndIndex:this.state.enableIndexing})})),Sd(this,"canSave",(()=>this.state.canSave)),Sd(this,"doTestConfig",((e,t)=>{const s=JSON.parse(JSON.stringify(this.props.config));this.getConfigFromState(s),(0,h.Cg)(s,(()=>{this.setState({configTested:!0,canSave:!0}),e()}),(e=>{this.setState({configTested:!1,canSave:!1}),t(e)}))})),Sd(this,"renderSettings",(()=>T().createElement(is,null,T().createElement(j,{id:"enableIndexing",label:T().createElement(N.FormattedMessage,Cd.enableIndexingTitle),helpText:T().createElement(N.FormattedMessage,Object.assign({},Cd.enableIndexingDescription,{values:{link:e=>T().createElement(wt.A,{location:"elasticsearch_settings",href:mt.Uk.ELASTICSEARCH},e)}})),value:this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.EnableIndexing"),disabled:this.props.isDisabled}),T().createElement(ls,{id:"backend",label:T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.backendTitle",defaultMessage:"Backend type:"}),placeholder:(0,N.defineMessage)({id:"admin.elasticsearch.backendExample",defaultMessage:'E.g.: "elasticsearch"'}),helpText:T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.backendDescription",defaultMessage:"The type of the search backend."}),value:this.state.backend,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.Backend")}),T().createElement(ls,{id:"connectionUrl",label:T().createElement(N.FormattedMessage,Cd.connectionUrlTitle),placeholder:(0,N.defineMessage)({id:"admin.elasticsearch.connectionUrlExample",defaultMessage:'E.g.: "https://elasticsearch.example.org:9200"'}),helpText:T().createElement(N.FormattedMessage,Object.assign({},Cd.connectionUrlDescription,{values:{link:e=>T().createElement(wt.A,{location:"elasticsearch_settings",href:mt.Uk.ELASTICSEARCH},e)}})),value:this.state.connectionUrl,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.ConnectionURL")}),T().createElement(ls,{id:"ca",label:T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.caTitle",defaultMessage:"CA path:"}),placeholder:(0,N.defineMessage)({id:"admin.elasticsearch.caExample",defaultMessage:'E.g.: "./elasticsearch/ca.pem"'}),helpText:T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.caDescription",defaultMessage:"(Optional) Custom Certificate Authority certificates for the Elasticsearch server. Leave this empty to use the default CAs from the operating system."}),value:this.state.ca,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.CA")}),T().createElement(ls,{id:"clientCert",label:T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.clientCertTitle",defaultMessage:"Client Certificate path:"}),placeholder:(0,N.defineMessage)({id:"admin.elasticsearch.clientCertExample",defaultMessage:'E.g.: "./elasticsearch/client-cert.pem"'}),helpText:T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.clientCertDescription",defaultMessage:"(Optional) The client certificate for the connection to the Elasticsearch server in the PEM format."}),value:this.state.clientCert,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.ClientCert")}),T().createElement(ls,{id:"clientKey",label:T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.clientKeyTitle",defaultMessage:"Client Certificate Key path:"}),placeholder:(0,N.defineMessage)({id:"admin.elasticsearch.clientKeyExample",defaultMessage:'E.g.: "./elasticsearch/client-key.pem"'}),helpText:T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.clientKeyDescription",defaultMessage:"(Optional) The key for the client certificate in the PEM format."}),value:this.state.clientKey,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.ClientKey")}),T().createElement(j,{id:"skipTLSVerification",label:T().createElement(N.FormattedMessage,Cd.skipTLSVerificationTitle),helpText:T().createElement(N.FormattedMessage,Cd.skipTLSVerificationDescription),value:this.state.skipTLSVerification,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.SkipTLSVerification")}),T().createElement(ls,{id:"username",label:T().createElement(N.FormattedMessage,Cd.usernameTitle),placeholder:(0,N.defineMessage)({id:"admin.elasticsearch.usernameExample",defaultMessage:'E.g.: "elastic"'}),helpText:T().createElement(N.FormattedMessage,Cd.usernameDescription),value:this.state.username,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.Username")}),T().createElement(ls,{id:"password",label:T().createElement(N.FormattedMessage,Cd.passwordTitle),placeholder:(0,N.defineMessage)({id:"admin.elasticsearch.password",defaultMessage:'E.g.: "yourpassword"'}),helpText:T().createElement(N.FormattedMessage,Cd.passwordDescription),value:this.state.password,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.Password")}),T().createElement(j,{id:"sniff",label:T().createElement(N.FormattedMessage,Cd.sniffTitle),helpText:T().createElement(N.FormattedMessage,Cd.sniffDescription),value:this.state.sniff,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.Sniff")}),T().createElement(Qt,{id:"testConfig",requestAction:this.doTestConfig,helpText:T().createElement(N.FormattedMessage,Cd.testHelpText),buttonText:T().createElement(N.FormattedMessage,Cd.elasticsearch_test_button),successMessage:(0,N.defineMessage)({id:"admin.elasticsearch.testConfigSuccess",defaultMessage:"Test successful. Configuration saved."}),disabled:!this.state.enableIndexing}),T().createElement(F,{label:T().createElement(N.FormattedMessage,Cd.bulkIndexingTitle)},T().createElement("div",{className:"job-table-setting"},T().createElement(Ft,{jobType:mt.jj.ELASTICSEARCH_POST_INDEXING,disabled:!this.state.canPurgeAndIndex||this.props.isDisabled,createJobButtonText:T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.createJob.title",defaultMessage:"Index Now"}),createJobHelpText:T().createElement(N.FormattedMessage,Cd.help),getExtraInfoText:this.getExtraInfo}))),T().createElement(Qt,{id:"rebuildChannelsIndexButton",requestAction:h.wH,helpText:T().createElement(N.FormattedMessage,Object.assign({},Cd.rebuildChannelIndexHelpText,{values:{b:e=>T().createElement("b",null,e)}})),buttonText:T().createElement(N.FormattedMessage,Cd.rebuildChannelsIndexButtonText),successMessage:(0,N.defineMessage)({id:"admin.elasticsearch.rebuildIndexSuccessfully.success",defaultMessage:"Channels index rebuild job triggered successfully."}),errorMessage:(0,N.defineMessage)({id:"admin.elasticsearch.rebuildIndexSuccessfully.error",defaultMessage:"Failed to trigger channels index rebuild job: {error}"}),disabled:!this.state.canPurgeAndIndex||this.props.isDisabled,label:T().createElement(N.FormattedMessage,Cd.rebuildChannelsIndexButtonText)}),T().createElement(Qt,{id:"purgeIndexesSection",requestAction:h.JQ,helpText:T().createElement(N.FormattedMessage,Cd.purgeIndexesHelpText),buttonText:T().createElement(N.FormattedMessage,Cd.purgeIndexesButton),successMessage:(0,N.defineMessage)({id:"admin.elasticsearch.purgeIndexesButton.success",defaultMessage:"Indexes purged successfully."}),errorMessage:(0,N.defineMessage)({id:"admin.elasticsearch.purgeIndexesButton.error",defaultMessage:"Failed to purge indexes: {error}"}),disabled:this.props.isDisabled||!this.state.canPurgeAndIndex,label:T().createElement(N.FormattedMessage,Cd.label)}),T().createElement(ls,{id:"ignoredPurgeIndexes",label:T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.ignoredPurgeIndexes",defaultMessage:"Indexes to skip while purging:"}),placeholder:(0,N.defineMessage)({id:"admin.elasticsearch.ignoredPurgeIndexesDescription.example",defaultMessage:"E.g.: .opendistro*,.security*"}),helpText:T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.ignoredPurgeIndexesDescription",defaultMessage:"When filled in, these indexes will be ignored during the purge, separated by commas."}),value:this.state.ignoredPurgeIndexes,disabled:this.props.isDisabled||!this.state.enableIndexing,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.IgnoredPurgeIndexes")}),T().createElement(j,{id:"enableSearching",label:T().createElement(N.FormattedMessage,Cd.enableSearchingTitle),helpText:T().createElement(N.FormattedMessage,Cd.enableSearchingDescription),value:this.state.enableSearching,disabled:this.props.isDisabled||!this.state.enableIndexing||!this.state.configTested,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.EnableSearching")}),T().createElement(j,{id:"enableAutocomplete",label:T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.enableAutocompleteTitle",defaultMessage:"Enable Elasticsearch for autocomplete queries:"}),helpText:T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.enableAutocompleteDescription",defaultMessage:"Requires a successful connection to the Elasticsearch server. When true, Elasticsearch will be used for all autocompletion queries on users and channels using the latest index. Autocompletion results may be incomplete until a bulk index of the existing users and channels database is finished. When false, database autocomplete is used."}),value:this.state.enableAutocomplete,disabled:this.props.isDisabled||!this.state.enableIndexing||!this.state.configTested,onChange:this.handleSettingChanged,setByEnv:this.isSetByEnv("ElasticsearchSettings.EnableAutocomplete")}))))}getStateFromConfig(e){return{connectionUrl:e.ElasticsearchSettings.ConnectionURL,backend:e.ElasticsearchSettings.Backend,skipTLSVerification:e.ElasticsearchSettings.SkipTLSVerification,ca:e.ElasticsearchSettings.CA,clientCert:e.ElasticsearchSettings.ClientCert,clientKey:e.ElasticsearchSettings.ClientKey,username:e.ElasticsearchSettings.Username,password:e.ElasticsearchSettings.Password,sniff:e.ElasticsearchSettings.Sniff,enableIndexing:e.ElasticsearchSettings.EnableIndexing,enableSearching:e.ElasticsearchSettings.EnableSearching,enableAutocomplete:e.ElasticsearchSettings.EnableAutocomplete,configTested:!0,canSave:!0,canPurgeAndIndex:e.ElasticsearchSettings.EnableIndexing,ignoredPurgeIndexes:e.ElasticsearchSettings.IgnoredPurgeIndexes}}getExtraInfo(e){var t;let s=null;"channels_index_rebuild"===(null===(t=e.data)||void 0===t?void 0:t.sub_type)&&(s=T().createElement("span",null,". ",T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.channelIndexRebuildJobTitle",defaultMessage:"Channels index rebuild job."})));let a=null;return e.status===mt.Im.IN_PROGRESS&&(a=T().createElement(N.FormattedMessage,{id:"admin.elasticsearch.percentComplete",defaultMessage:"{percent}% Complete",values:{percent:Number(e.progress)}})),T().createElement("span",null,a,s)}renderTitle(){return T().createElement(N.FormattedMessage,Cd.title)}}}},storage:{url:"environment/file_storage",title:(0,N.defineMessage)({id:"admin.sidebar.fileStorage",defaultMessage:"File Storage"}),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.ENVIRONMENT.FILE_STORAGE))),schema:{id:"FileSettings",name:(0,N.defineMessage)({id:"admin.environment.fileStorage",defaultMessage:"File Storage"}),settings:[{type:"dropdown",key:"FileSettings.DriverName",label:(0,N.defineMessage)({id:"admin.image.storeTitle",defaultMessage:"File Storage System:"}),help_text:(0,N.defineMessage)({id:"admin.image.storeDescription",defaultMessage:'Storage system where files and image attachments are saved. Selecting "Amazon S3" enables fields to enter your Amazon credentials and bucket details. Selecting "Local File System" enables the field to specify a local file directory.'}),help_text_markdown:!0,options:[{value:rC,display_name:(0,N.defineMessage)({id:"admin.image.storeLocal",defaultMessage:"Local File System"})},{value:oC,display_name:(0,N.defineMessage)({id:"admin.image.storeAmazonS3",defaultMessage:"Amazon S3"})}],isDisabled:zs(da(M.ENVIRONMENT.FILE_STORAGE))},{type:"text",key:"FileSettings.Directory",label:(0,N.defineMessage)({id:"admin.image.localTitle",defaultMessage:"Local Storage Directory:"}),help_text:(0,N.defineMessage)({id:"admin.image.localDescription",defaultMessage:"Directory to which files and images are written. If blank, defaults to ./data/."}),placeholder:(0,N.defineMessage)({id:"admin.image.localExample",defaultMessage:'E.g.: "./data/"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),zs(Js("FileSettings.DriverName",rC)))},{type:"number",key:"FileSettings.MaxFileSize",label:(0,N.defineMessage)({id:"admin.image.maxFileSizeTitle",defaultMessage:"Maximum File Size:"}),help_text:(0,N.defineMessage)({id:"admin.image.maxFileSizeDescription",defaultMessage:"Maximum file size for message attachments in megabytes. Caution: Verify server memory can support your setting choice. Large file sizes increase the risk of server crashes and failed uploads due to network interruptions."}),placeholder:(0,N.defineMessage)({id:"admin.image.maxFileSizeExample",defaultMessage:"50"}),onConfigLoad:e=>e/lC,onConfigSave:e=>e*lC,isDisabled:zs(da(M.ENVIRONMENT.FILE_STORAGE))},{type:"bool",key:"FileSettings.ExtractContent",label:(0,N.defineMessage)({id:"admin.image.extractContentTitle",defaultMessage:"Enable document search by content:"}),help_text:(0,N.defineMessage)({id:"admin.image.extractContentDescription",defaultMessage:"When enabled, supported document types are searchable by their content. Search results for existing documents may be incomplete <link>until a data migration is executed</link>."}),help_text_markdown:!1,help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.CONFIGURE_DOCUMENT_CONTENT_SEARCH},e)},isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)))},{type:"bool",key:"FileSettings.ArchiveRecursion",label:(0,N.defineMessage)({id:"admin.image.archiveRecursionTitle",defaultMessage:"Enable searching content of documents within ZIP files:"}),help_text:(0,N.defineMessage)({id:"admin.image.archiveRecursionDescription",defaultMessage:"When enabled, content of documents within ZIP files will be returned in search results. This may have an impact on server performance for large files. "}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),$s("FileSettings","ExtractContent"))},{type:"text",key:"FileSettings.AmazonS3Bucket",label:(0,N.defineMessage)({id:"admin.image.amazonS3BucketTitle",defaultMessage:"Amazon S3 Bucket:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3BucketDescription",defaultMessage:"Name you selected for your S3 bucket in AWS."}),placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3BucketExample",defaultMessage:'E.g.: "mattermost-media"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),zs(Js("FileSettings.DriverName",oC)))},{type:"text",key:"FileSettings.AmazonS3PathPrefix",label:(0,N.defineMessage)({id:"admin.image.amazonS3PathPrefixTitle",defaultMessage:"Amazon S3 Path Prefix:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3PathPrefixDescription",defaultMessage:"Prefix you selected for your S3 bucket in AWS."}),placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3PathPrefixExample",defaultMessage:'E.g.: "subdir1/" or you can leave it .'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),zs(Js("FileSettings.DriverName",oC)))},{type:"text",key:"FileSettings.AmazonS3Region",label:(0,N.defineMessage)({id:"admin.image.amazonS3RegionTitle",defaultMessage:"Amazon S3 Region:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3RegionDescription",defaultMessage:'AWS region you selected when creating your S3 bucket. If no region is set, Mattermost attempts to get the appropriate region from AWS, or sets it to "us-east-1" if none found.'}),placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3RegionExample",defaultMessage:'E.g.: "us-east-1"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),zs(Js("FileSettings.DriverName",oC)))},{type:"text",key:"FileSettings.AmazonS3AccessKeyId",label:(0,N.defineMessage)({id:"admin.image.amazonS3IdTitle",defaultMessage:"Amazon S3 Access Key ID:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3IdDescription",defaultMessage:"(Optional) Only required if you do not want to authenticate to S3 using an <link>IAM role</link>. Enter the Access Key ID provided by your Amazon EC2 administrator."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html"},e)},help_text_markdown:!1,placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3IdExample",defaultMessage:'E.g.: "AKIADTOVBGERKLCBV"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),zs(Js("FileSettings.DriverName",oC)))},{type:"text",key:"FileSettings.AmazonS3Endpoint",label:(0,N.defineMessage)({id:"admin.image.amazonS3EndpointTitle",defaultMessage:"Amazon S3 Endpoint:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3EndpointDescription",defaultMessage:'Hostname of your S3 Compatible Storage provider. Defaults to "s3.amazonaws.com".'}),placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3EndpointExample",defaultMessage:'E.g.: "s3.amazonaws.com"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),zs(Js("FileSettings.DriverName",oC)))},{type:"text",key:"FileSettings.AmazonS3SecretAccessKey",label:(0,N.defineMessage)({id:"admin.image.amazonS3SecretTitle",defaultMessage:"Amazon S3 Secret Access Key:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3SecretDescription",defaultMessage:"(Optional) The secret access key associated with your Amazon S3 Access Key ID."}),placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3SecretExample",defaultMessage:'E.g.: "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),zs(Js("FileSettings.DriverName",oC)))},{type:"bool",key:"FileSettings.AmazonS3SSL",label:(0,N.defineMessage)({id:"admin.image.amazonS3SSLTitle",defaultMessage:"Enable Secure Amazon S3 Connections:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3SSLDescription",defaultMessage:"When false, allow insecure connections to Amazon S3. Defaults to secure connections only."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),zs(Js("FileSettings.DriverName",oC)))},{type:"bool",key:"FileSettings.AmazonS3SSE",label:(0,N.defineMessage)({id:"admin.image.amazonS3SSETitle",defaultMessage:"Enable Server-Side Encryption for Amazon S3:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3SSEDescription",defaultMessage:"When true, encrypt files in Amazon S3 using server-side encryption with Amazon S3-managed keys. See <link>documentation</link> to learn more."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.SESSION_LENGTHS},e)},help_text_markdown:!1,isHidden:zs(aa("Compliance")),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),zs(Js("FileSettings.DriverName",oC)))},{type:"bool",key:"FileSettings.AmazonS3Trace",label:(0,N.defineMessage)({id:"admin.image.amazonS3TraceTitle",defaultMessage:"Enable Amazon S3 Debugging:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3TraceDescription",defaultMessage:"(Development Mode) When true, log additional debugging information to the system logs."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),zs(Js("FileSettings.DriverName",oC)))},{type:"text",key:"FileSettings.AmazonS3StorageClass",label:(0,N.defineMessage)({id:"admin.image.amazonS3StorageClassTitle",defaultMessage:"Amazon S3 Storage Class:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3StorageClassDescription",defaultMessage:"Storage class for your S3 Compatible Storage provider. Defaults to empty."}),placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3StorageClassExample",defaultMessage:'E.g.: "STANDARD" or "STANDARD_IA"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),zs(Js("FileSettings.DriverName",oC)))},{type:"button",action:h.zG,key:"TestS3Connection",label:(0,N.defineMessage)({id:"admin.s3.connectionS3Test",defaultMessage:"Test Connection"}),loading:(0,N.defineMessage)({id:"admin.s3.testing",defaultMessage:"Testing..."}),error_message:(0,N.defineMessage)({id:"admin.s3.s3Fail",defaultMessage:"Connection unsuccessful: {error}"}),success_message:(0,N.defineMessage)({id:"admin.s3.s3Success",defaultMessage:"Connection was successful"}),isDisabled:zs(da(M.ENVIRONMENT.FILE_STORAGE))}]}},export_storage:{url:"environment/export_storage",title:(0,N.defineMessage)({id:"admin.sidebar.exportStorage",defaultMessage:"Export Storage"}),isHidden:Ys(zs(aa("Cloud")),zs(na(mt.gS.Enterprise)),$s("FeatureFlags","CloudDedicatedExportUI")),schema:{id:"ExportFileSettings",name:(0,N.defineMessage)({id:"admin.sidebar.exportStorage",defaultMessage:"Export Storage"}),settings:[{type:"bool",key:"FileSettings.DedicatedExportStore",label:(0,N.defineMessage)({id:"admin.exportStorage.dedicatedExportStore",defaultMessage:"Enable Dedicated Export Store:"}),help_text:(0,N.defineMessage)({id:"admin.exportStorage.dedicatedExportStoreDescription",defaultMessage:"When enabled, Mattermost will use a dedicated export storage bucket for all export operations. This is required for Mattermost Cloud deployments."}),isDisabled:zs(da(M.ENVIRONMENT.FILE_STORAGE))},{type:"dropdown",key:"FileSettings.ExportDriverName",label:(0,N.defineMessage)({id:"admin.exportStorage.exportDriverName",defaultMessage:"Export Storage Driver:"}),isDisabled:!0,isHidden:Js("FileSettings.DedicatedExportStore",!1),options:[{value:oC,display_name:(0,N.defineMessage)({id:"admin.image.storeAmazonS3",defaultMessage:"Amazon S3"})}]},{type:"text",key:"FileSettings.ExportDirectory",label:(0,N.defineMessage)({id:"admin.exportStorage.exportDirectory",defaultMessage:"Export Directory"}),help_text:(0,N.defineMessage)({id:"admin.image.exportDirectoryDescription",defaultMessage:"Directory to which files are written. If blank, defaults to ./data/."}),placeholder:(0,N.defineMessage)({id:"admin.image.localExample",defaultMessage:'E.g.: "./data/"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),Js("FileSettings.DedicatedExportStore",!1)),isHidden:Ys(Js("FileSettings.ExportDriverName","NONE"),Js("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3AccessKeyId",label:(0,N.defineMessage)({id:"admin.image.amazonS3IdTitle",defaultMessage:"Amazon S3 Access Key ID:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3IdDescription",defaultMessage:"(Optional) Only required if you do not want to authenticate to S3 using an <link>IAM role</link>. Enter the Access Key ID provided by your Amazon EC2 administrator."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html"},e)},help_text_markdown:!1,placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3IdExample",defaultMessage:'E.g.: "AKIADTOVBGERKLCBV"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),Js("FileSettings.DedicatedExportStore",!1)),isHidden:Ys(Js("FileSettings.ExportDriverName","NONE"),Js("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3SecretAccessKey",label:(0,N.defineMessage)({id:"admin.image.amazonS3SecretTitle",defaultMessage:"Amazon S3 Secret Access Key:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3SecretDescription",defaultMessage:"(Optional) The secret access key associated with your Amazon S3 Access Key ID."}),placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3SecretExample",defaultMessage:'E.g.: "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),Js("FileSettings.DedicatedExportStore",!1)),isHidden:Ys(Js("FileSettings.ExportDriverName","NONE"),Js("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3Bucket",label:(0,N.defineMessage)({id:"admin.image.amazonS3BucketTitle",defaultMessage:"Amazon S3 Bucket:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3BucketDescription",defaultMessage:"Name you selected for your S3 bucket in AWS."}),placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3BucketExample",defaultMessage:'E.g.: "mattermost-export"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),Js("FileSettings.DedicatedExportStore",!1)),isHidden:Ys(Js("FileSettings.ExportDriverName","NONE"),Js("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3PathPrefix",label:(0,N.defineMessage)({id:"admin.image.amazonS3PathPrefixTitle",defaultMessage:"Amazon S3 Path Prefix:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3PathPrefixDescription",defaultMessage:"Prefix you selected for your S3 bucket in AWS."}),placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3PathPrefixExample",defaultMessage:'E.g.: "subdir1/" or you can leave it .'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),Js("FileSettings.DedicatedExportStore",!1)),isHidden:Ys(Js("FileSettings.ExportDriverName","NONE"),Js("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3Region",label:(0,N.defineMessage)({id:"admin.image.amazonS3RegionTitle",defaultMessage:"Amazon S3 Region:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3RegionDescription",defaultMessage:'AWS region you selected when creating your S3 bucket. If no region is set, Mattermost attempts to get the appropriate region from AWS, or sets it to "us-east-1" if none found.'}),placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3RegionExample",defaultMessage:'E.g.: "us-east-1"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),Js("FileSettings.DedicatedExportStore",!1)),isHidden:Ys(Js("FileSettings.ExportDriverName","NONE"),Js("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3Endpoint",label:(0,N.defineMessage)({id:"admin.image.amazonS3EndpointTitle",defaultMessage:"Amazon S3 Endpoint:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3EndpointDescription",defaultMessage:'Hostname of your S3 Compatible Storage provider. Defaults to "s3.amazonaws.com".'}),placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3EndpointExample",defaultMessage:'E.g.: "s3.amazonaws.com"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),Js("FileSettings.DedicatedExportStore",!1)),isHidden:Ys(Js("FileSettings.ExportDriverName","NONE"),Js("FileSettings.DedicatedExportStore",!1))},{type:"bool",key:"FileSettings.ExportAmazonS3SSL",label:(0,N.defineMessage)({id:"admin.image.amazonS3SSLTitle",defaultMessage:"Enable Secure Amazon S3 Connections:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3SSLDescription",defaultMessage:"When false, allow insecure connections to Amazon S3. Defaults to secure connections only."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),Js("FileSettings.DedicatedExportStore",!1)),isHidden:Ys(Js("FileSettings.ExportDriverName","NONE"),Js("FileSettings.DedicatedExportStore",!1))},{type:"bool",key:"FileSettings.ExportAmazonSignV2",label:(0,N.defineMessage)({id:"admin.image.amazonS3SignV2",defaultMessage:"Enable Sign V2"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3SignV2Description",defaultMessage:"When true, use Sign V2 for Amazon S3 connections"}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),Js("FileSettings.DedicatedExportStore",!1)),isHidden:Ys(Js("FileSettings.ExportDriverName","NONE"),Js("FileSettings.DedicatedExportStore",!1))},{type:"bool",key:"FileSettings.ExportAmazonS3SSE",label:(0,N.defineMessage)({id:"admin.image.amazonS3SSETitle",defaultMessage:"Enable Server-Side Encryption for Amazon S3:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3SSEDescription",defaultMessage:"When true, encrypt files in Amazon S3 using server-side encryption with Amazon S3-managed keys. See <link>documentation</link> to learn more."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.SESSION_LENGTHS},e)},help_text_markdown:!1,isHidden:Ys(Js("FileSettings.ExportDriverName","NONE"),Js("FileSettings.DedicatedExportStore",!1)),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),Js("FileSettings.DedicatedExportStore",!1))},{type:"text",key:"FileSettings.ExportAmazonS3StorageClass",label:(0,N.defineMessage)({id:"admin.image.amazonS3StorageClassTitle",defaultMessage:"Amazon S3 Storage Class:"}),help_text:(0,N.defineMessage)({id:"admin.image.amazonS3StorageClassDescription",defaultMessage:"Storage class for your S3 Compatible Storage provider. Defaults to empty."}),placeholder:(0,N.defineMessage)({id:"admin.image.amazonS3StorageClassExample",defaultMessage:'E.g.: "STANDARD" or "STANDARD_IA"'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.FILE_STORAGE)),zs(Js("FileSettings.DriverName",oC)))},{type:"button",action:h.zG,key:"TestS3Connection",label:(0,N.defineMessage)({id:"admin.s3.connectionS3Test",defaultMessage:"Test Connection"}),loading:(0,N.defineMessage)({id:"admin.s3.testing",defaultMessage:"Testing..."}),error_message:(0,N.defineMessage)({id:"admin.s3.s3Fail",defaultMessage:"Connection unsuccessful: {error}"}),success_message:(0,N.defineMessage)({id:"admin.s3.s3Success",defaultMessage:"Connection was successful"}),isDisabled:zs(da(M.ENVIRONMENT.FILE_STORAGE)),isHidden:Ys(Js("FileSettings.ExportDriverName","NONE"),Js("FileSettings.DedicatedExportStore",!1))}]}},image_proxy:{url:"environment/image_proxy",title:(0,N.defineMessage)({id:"admin.sidebar.imageProxy",defaultMessage:"Image Proxy"}),isHidden:Ys(zs(oa(M.ENVIRONMENT.IMAGE_PROXY)),Xs("ExperimentalSettings","RestrictSystemAdmin")),schema:{id:"ImageProxy",name:(0,N.defineMessage)({id:"admin.environment.imageProxy",defaultMessage:"Image Proxy"}),settings:[{type:"bool",key:"ImageProxySettings.Enable",label:(0,N.defineMessage)({id:"admin.image.enableProxy",defaultMessage:"Enable Image Proxy:"}),help_text:(0,N.defineMessage)({id:"admin.image.enableProxyDescription",defaultMessage:"When true, enables an image proxy for loading all Markdown images."}),isDisabled:zs(da(M.ENVIRONMENT.IMAGE_PROXY))},{type:"dropdown",key:"ImageProxySettings.ImageProxyType",label:(0,N.defineMessage)({id:"admin.image.proxyType",defaultMessage:"Image Proxy Type:"}),help_text:(0,N.defineMessage)({id:"admin.image.proxyTypeDescription",defaultMessage:"Configure an image proxy to load all Markdown images through a proxy. The image proxy prevents users from making insecure image requests, provides caching for increased performance, and automates image adjustments such as resizing. See <link>documentation</link> to learn more."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.SETUP_IMAGE_PROXY},e)},help_text_markdown:!1,options:[{value:"atmos/camo",display_name:(0,N.defineMessage)({id:"atmos/camo",defaultMessage:"atmos/camo"})},{value:"local",display_name:(0,N.defineMessage)({id:"local",defaultMessage:"local"})}],isDisabled:Ys(zs(da(M.ENVIRONMENT.IMAGE_PROXY)),Qs("ImageProxySettings.Enable"))},{type:"text",key:"ImageProxySettings.RemoteImageProxyURL",label:(0,N.defineMessage)({id:"admin.image.proxyURL",defaultMessage:"Remote Image Proxy URL:"}),help_text:(0,N.defineMessage)({id:"admin.image.proxyURLDescription",defaultMessage:"URL of your remote image proxy server."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.IMAGE_PROXY)),Qs("ImageProxySettings.Enable"),Js("ImageProxySettings.ImageProxyType","local"))},{type:"text",key:"ImageProxySettings.RemoteImageProxyOptions",label:(0,N.defineMessage)({id:"admin.image.proxyOptions",defaultMessage:"Remote Image Proxy Options:"}),help_text:(0,N.defineMessage)({id:"admin.image.proxyOptionsDescription",defaultMessage:"Additional options such as the URL signing key. Refer to your image proxy documentation to learn more about what options are supported."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.IMAGE_PROXY)),Qs("ImageProxySettings.Enable"),Js("ImageProxySettings.ImageProxyType","local"))}]}},smtp:{url:"environment/smtp",title:(0,N.defineMessage)({id:"admin.sidebar.smtp",defaultMessage:"SMTP"}),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.ENVIRONMENT.SMTP))),schema:{id:"SMTP",name:(0,N.defineMessage)({id:"admin.environment.smtp",defaultMessage:"SMTP"}),settings:[{type:"text",key:"EmailSettings.SMTPServer",label:(0,N.defineMessage)({id:"admin.environment.smtp.smtpServer.title",defaultMessage:"SMTP Server:"}),placeholder:(0,N.defineMessage)({id:"admin.environment.smtp.smtpServer.placeholder",defaultMessage:'Ex: "smtp.yourcompany.com", "email-smtp.us-east-1.amazonaws.com"'}),help_text:(0,N.defineMessage)({id:"admin.environment.smtp.smtpServer.description",defaultMessage:"Location of SMTP email server."}),isDisabled:zs(da(M.ENVIRONMENT.SMTP))},{type:"text",key:"EmailSettings.SMTPPort",label:(0,N.defineMessage)({id:"admin.environment.smtp.smtpPort.title",defaultMessage:"SMTP Server Port:"}),placeholder:(0,N.defineMessage)({id:"admin.environment.smtp.smtpPort.placeholder",defaultMessage:'Ex: "25", "465", "587"'}),help_text:(0,N.defineMessage)({id:"admin.environment.smtp.smtpPort.description",defaultMessage:"Port of SMTP email server."}),isDisabled:zs(da(M.ENVIRONMENT.SMTP))},{type:"bool",key:"EmailSettings.EnableSMTPAuth",label:(0,N.defineMessage)({id:"admin.environment.smtp.smtpAuth.title",defaultMessage:"Enable SMTP Authentication:"}),help_text:(0,N.defineMessage)({id:"admin.environment.smtp.smtpAuth.description",defaultMessage:"When true, SMTP Authentication is enabled."}),isDisabled:zs(da(M.ENVIRONMENT.SMTP))},{type:"text",key:"EmailSettings.SMTPUsername",label:(0,N.defineMessage)({id:"admin.environment.smtp.smtpUsername.title",defaultMessage:"SMTP Server Username:"}),placeholder:(0,N.defineMessage)({id:"admin.environment.smtp.smtpUsername.placeholder",defaultMessage:'Ex: "admin@yourcompany.com", "AKIADTOVBGERKLCBV"'}),help_text:(0,N.defineMessage)({id:"admin.environment.smtp.smtpUsername.description",defaultMessage:"Obtain this credential from administrator setting up your email server."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.SMTP)),Qs("EmailSettings.EnableSMTPAuth"))},{type:"text",key:"EmailSettings.SMTPPassword",label:(0,N.defineMessage)({id:"admin.environment.smtp.smtpPassword.title",defaultMessage:"SMTP Server Password:"}),placeholder:(0,N.defineMessage)({id:"admin.environment.smtp.smtpPassword.placeholder",defaultMessage:'Ex: "yourpassword", "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"'}),help_text:(0,N.defineMessage)({id:"admin.environment.smtp.smtpPassword.description",defaultMessage:"Obtain this credential from administrator setting up your email server."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.SMTP)),Qs("EmailSettings.EnableSMTPAuth"))},{type:"dropdown",key:"EmailSettings.ConnectionSecurity",label:(0,N.defineMessage)({id:"admin.environment.smtp.connectionSecurity.title",defaultMessage:"Connection Security:"}),help_text:br,options:[{value:"",display_name:(0,N.defineMessage)({id:"admin.environment.smtp.connectionSecurity.option.none",defaultMessage:"None"})},{value:"TLS",display_name:(0,N.defineMessage)({id:"admin.environment.smtp.connectionSecurity.option.tls",defaultMessage:"TLS (Recommended)"})},{value:"STARTTLS",display_name:(0,N.defineMessage)({id:"admin.environment.smtp.connectionSecurity.option.starttls",defaultMessage:"STARTTLS"})}],isDisabled:zs(da(M.ENVIRONMENT.SMTP))},{type:"button",action:h.TH,key:"TestSmtpConnection",label:(0,N.defineMessage)({id:"admin.environment.smtp.connectionSmtpTest",defaultMessage:"Test Connection"}),loading:(0,N.defineMessage)({id:"admin.environment.smtp.testing",defaultMessage:"Testing..."}),error_message:(0,N.defineMessage)({id:"admin.environment.smtp.smtpFail",defaultMessage:"Connection unsuccessful: {error}"}),success_message:(0,N.defineMessage)({id:"admin.environment.smtp.smtpSuccess",defaultMessage:"No errors were reported while sending an email. Please check your inbox to make sure."}),isDisabled:zs(da(M.ENVIRONMENT.SMTP))},{type:"bool",key:"EmailSettings.SkipServerCertificateVerification",label:(0,N.defineMessage)({id:"admin.environment.smtp.skipServerCertificateVerification.title",defaultMessage:"Skip Server Certificate Verification:"}),help_text:(0,N.defineMessage)({id:"admin.environment.smtp.skipServerCertificateVerification.description",defaultMessage:"When true, Mattermost will not verify the email server certificate."}),isDisabled:zs(da(M.ENVIRONMENT.SMTP))},{type:"bool",key:"ServiceSettings.EnableSecurityFixAlert",label:(0,N.defineMessage)({id:"admin.environment.smtp.enableSecurityFixAlert.title",defaultMessage:"Enable Security Alerts:"}),help_text:(0,N.defineMessage)({id:"admin.environment.smtp.enableSecurityFixAlert.description",defaultMessage:"When true, System Administrators are notified by email if a relevant security fix alert has been announced in the last 12 hours. Requires email to be enabled."}),isDisabled:zs(da(M.ENVIRONMENT.SMTP))}]}},push_notification_server:{url:"environment/push_notification_server",title:(0,N.defineMessage)({id:"admin.sidebar.pushNotificationServer",defaultMessage:"Push Notification Server"}),searchableStrings:Ag,isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.ENVIRONMENT.PUSH_NOTIFICATION_SERVER))),isDisabled:zs(da(M.ENVIRONMENT.PUSH_NOTIFICATION_SERVER)),schema:{id:"PushNotificationsSettings",component:Tg}},high_availability:{url:"environment/high_availability",title:(0,N.defineMessage)({id:"admin.sidebar.highAvailability",defaultMessage:"High Availability"}),isHidden:Ys(zs(aa("Cluster")),Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.ENVIRONMENT.HIGH_AVAILABILITY))),searchableStrings:rl,isDisabled:zs(da(M.ENVIRONMENT.HIGH_AVAILABILITY)),schema:{id:"ClusterSettings",component:class extends Ia{constructor(){super(...arguments),il(this,"getConfigFromState",(e=>(e.ClusterSettings.Enable=this.state.Enable,e.ClusterSettings.ClusterName=this.state.ClusterName,e.ClusterSettings.OverrideHostname=this.state.OverrideHostname,e.ClusterSettings.UseIPAddress=this.state.UseIPAddress,e.ClusterSettings.EnableGossipEncryption=this.state.EnableGossipEncryption,e.ClusterSettings.EnableGossipCompression=this.state.EnableGossipCompression,e.ClusterSettings.GossipPort=this.parseIntNonZero(this.state.GossipPort,8074),e))),il(this,"overrideHandleChange",((e,t)=>{this.setState({showWarning:!0}),this.handleChange(e,t)})),il(this,"renderSettings",(()=>{if("true"!==this.props.license.IsLicensed||"true"!==this.props.license.Cluster)return T().createElement(T().Fragment,null);let e=null;O.mT.clusterId&&(e=T().createElement("div",{style:ol.configLoadedFromCluster,className:"alert alert-warning"},T().createElement(Zt.A,null),T().createElement(N.FormattedMessage,{id:"admin.cluster.loadedFrom",defaultMessage:"This configuration file was loaded from Node ID {clusterId}. Please see the Troubleshooting Guide in our <link>documentation</link> if you are accessing the System Console through a load balancer and experiencing issues.",values:{clusterId:O.mT.clusterId,link:e=>T().createElement(wt.A,{location:"cluster_settings",href:mt.Uk.HIGH_AVAILABILITY_CLUSTER},e)}})));let t=null;this.state.showWarning&&(t=T().createElement("div",{style:ol.warning,className:"alert alert-warning"},T().createElement(Zt.A,null),T().createElement(N.FormattedMessage,{id:"admin.cluster.should_not_change",defaultMessage:"WARNING: These settings may not sync with the other servers in the cluster. High Availability inter-node communication will not start until you modify the config.json to be identical on all servers and restart Mattermost. Please see the <link>documentation</link> on how to add or remove a server from the cluster. If you are accessing the System Console through a load balancer and experiencing issues, please see the Troubleshooting Guide in our <link>documentation</link>.",values:{link:e=>T().createElement(wt.A,{location:"cluster_settings",href:mt.Uk.HIGH_AVAILABILITY_CLUSTER},e)}})));let s=null;return this.state.Enable&&(s=T().createElement(al,null)),T().createElement(is,null,e,s,T().createElement("div",{className:"banner"},T().createElement(N.FormattedMessage,nl.noteDescription)),t,T().createElement(j,{id:"Enable",label:T().createElement(N.FormattedMessage,nl.enableTitle),helpText:T().createElement(N.FormattedMessage,Object.assign({},nl.enableDescription,{values:{link:e=>T().createElement(wt.A,{location:"cluster_settings",href:mt.Uk.HIGH_AVAILABILITY_CLUSTER},e)}})),value:this.state.Enable,onChange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.Enable"),disabled:this.props.isDisabled}),T().createElement(ls,{id:"ClusterName",label:T().createElement(N.FormattedMessage,nl.clusterName),placeholder:(0,N.defineMessage)({id:"admin.cluster.ClusterNameEx",defaultMessage:'E.g.: "Production" or "Staging"'}),helpText:T().createElement(N.FormattedMessage,nl.clusterNameDesc),value:this.state.ClusterName,onChange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.ClusterName"),disabled:this.props.isDisabled}),T().createElement(ls,{id:"OverrideHostname",label:T().createElement(N.FormattedMessage,nl.overrideHostname),placeholder:(0,N.defineMessage)({id:"admin.cluster.OverrideHostnameEx",defaultMessage:'E.g.: "app-server-01"'}),helpText:T().createElement(N.FormattedMessage,nl.overrideHostnameDesc),value:this.state.OverrideHostname,onChange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.OverrideHostname"),disabled:this.props.isDisabled}),T().createElement(j,{id:"UseIPAddress",label:T().createElement(N.FormattedMessage,nl.useIPAddress),helpText:T().createElement(N.FormattedMessage,nl.useIPAddressDesc),value:this.state.UseIPAddress,onChange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.UseIPAddress"),disabled:this.props.isDisabled}),T().createElement(j,{id:"EnableGossipEncryption",label:T().createElement(N.FormattedMessage,nl.enableGossipEncryption),helpText:T().createElement(N.FormattedMessage,nl.enableGossipEncryptionDesc),value:this.state.EnableGossipEncryption,onChange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.EnableGossipEncryption"),disabled:this.props.isDisabled}),T().createElement(j,{id:"EnableGossipCompression",label:T().createElement(N.FormattedMessage,nl.enableGossipCompression),helpText:T().createElement(N.FormattedMessage,nl.enableGossipCompressionDesc),value:this.state.EnableGossipCompression,onChange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.EnableGossipCompression"),disabled:this.props.isDisabled}),T().createElement(ls,{id:"GossipPort",label:T().createElement(N.FormattedMessage,nl.gossipPort),placeholder:(0,N.defineMessage)({id:"admin.cluster.GossipPortEx",defaultMessage:'E.g.: "8074"'}),helpText:T().createElement(N.FormattedMessage,nl.gossipPortDesc),value:this.state.GossipPort,onChange:this.overrideHandleChange,setByEnv:this.isSetByEnv("ClusterSettings.GossipPort"),disabled:this.props.isDisabled}))}))}getStateFromConfig(e){const t=e.ClusterSettings;return{Enable:t.Enable,ClusterName:t.ClusterName,OverrideHostname:t.OverrideHostname,UseIPAddress:t.UseIPAddress,EnableGossipEncryption:t.EnableGossipEncryption,EnableGossipCompression:t.EnableGossipCompression,GossipPort:t.GossipPort,showWarning:!1}}renderTitle(){return T().createElement(N.FormattedMessage,nl.cluster)}}}},cache_settings:{url:"environment/cache_settings",title:dC.cache_settings_title,isHidden:Ys(zs(aa("Cluster")),Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.ENVIRONMENT.HIGH_AVAILABILITY))),searchableStrings:[dC.cache_settings_title,dC.cache_type_title,dC.cache_type_desc,dC.redis_address_title,dC.redis_address_desc,dC.redis_password_title,dC.redis_password_desc,dC.redis_db_title,dC.redis_db_desc,dC.redis_clientcache_title,dC.redis_clientcache_desc],isDisabled:zs(da(M.ENVIRONMENT.HIGH_AVAILABILITY)),schema:{id:"CacheSettings",name:dC.cache_settings_title,settings:[{type:"banner",label:(0,N.defineMessage)({id:"admin.rate.noteDescription",defaultMessage:"Changing properties in this section will require a server restart before taking effect."}),banner_type:"info"},{type:"dropdown",key:"CacheSettings.CacheType",label:dC.cache_type_title,help_text:dC.cache_type_desc,help_text_markdown:!0,options:[{value:mt.uV.LRU,display_name:(0,N.defineMessage)({id:"admin.cacheSettings.cacheType.lru",defaultMessage:"LRU"})},{value:mt.uV.REDIS,display_name:(0,N.defineMessage)({id:"admin.cacheSettings.cacheType.redis",defaultMessage:"Redis"})}],isDisabled:zs(da(M.ENVIRONMENT.HIGH_AVAILABILITY))},{type:"text",key:"CacheSettings.RedisAddress",label:dC.redis_address_title,help_text:dC.redis_address_desc,placeholder:dC.redis_address_placeholder,isDisabled:Ys(zs(da(M.ENVIRONMENT.HIGH_AVAILABILITY)),zs(Js("CacheSettings.CacheType",mt.uV.REDIS)))},{type:"text",key:"CacheSettings.RedisPassword",label:dC.redis_password_title,help_text:dC.redis_password_desc,isDisabled:Ys(zs(da(M.ENVIRONMENT.HIGH_AVAILABILITY)),zs(Js("CacheSettings.CacheType",mt.uV.REDIS)))},{type:"number",key:"CacheSettings.RedisDB",label:dC.redis_db_title,help_text:dC.redis_db_desc,placeholder:dC.redis_db_placeholder,isDisabled:Ys(zs(da(M.ENVIRONMENT.HIGH_AVAILABILITY)),zs(Js("CacheSettings.CacheType",mt.uV.REDIS)))},{type:"bool",key:"CacheSettings.DisableClientCache",label:dC.redis_clientcache_title,help_text:dC.redis_clientcache_desc,help_text_markdown:!1,isDisabled:Ys(zs(da(M.ENVIRONMENT.HIGH_AVAILABILITY)),zs(Js("CacheSettings.CacheType",mt.uV.REDIS)))}]}},rate_limiting:{url:"environment/rate_limiting",title:(0,N.defineMessage)({id:"admin.sidebar.rateLimiting",defaultMessage:"Rate Limiting"}),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.ENVIRONMENT.RATE_LIMITING))),schema:{id:"ServiceSettings",name:(0,N.defineMessage)({id:"admin.rate.title",defaultMessage:"Rate Limiting"}),settings:[{type:"banner",label:(0,N.defineMessage)({id:"admin.rate.noteDescription",defaultMessage:"Changing properties other than Site URL in this section will require a server restart before taking effect."}),banner_type:"info"},{type:"bool",key:"RateLimitSettings.Enable",label:(0,N.defineMessage)({id:"admin.rate.enableLimiterTitle",defaultMessage:"Enable Rate Limiting:"}),help_text:(0,N.defineMessage)({id:"admin.rate.enableLimiterDescription",defaultMessage:"When true, APIs are throttled at rates specified below. Rate limiting prevents server overload from too many requests. This is useful to prevent third-party applications or malicous attacks from impacting your server."}),help_text_markdown:!0,isDisabled:zs(da(M.ENVIRONMENT.RATE_LIMITING))},{type:"number",key:"RateLimitSettings.PerSec",label:(0,N.defineMessage)({id:"admin.rate.queriesTitle",defaultMessage:"Maximum Queries per Second:"}),placeholder:(0,N.defineMessage)({id:"admin.rate.queriesExample",defaultMessage:'E.g.: "10"'}),help_text:(0,N.defineMessage)({id:"admin.rate.queriesDescription",defaultMessage:"Throttles API at this number of requests per second."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.RATE_LIMITING)),Js("RateLimitSettings.Enable",!1))},{type:"number",key:"RateLimitSettings.MaxBurst",label:(0,N.defineMessage)({id:"admin.rate.maxBurst",defaultMessage:"Maximum Burst Size:"}),placeholder:(0,N.defineMessage)({id:"admin.rate.maxBurstExample",defaultMessage:'E.g.: "100"'}),help_text:(0,N.defineMessage)({id:"admin.rate.maxBurstDescription",defaultMessage:"Maximum number of requests allowed beyond the per second query limit."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.RATE_LIMITING)),Js("RateLimitSettings.Enable",!1))},{type:"number",key:"RateLimitSettings.MemoryStoreSize",label:(0,N.defineMessage)({id:"admin.rate.memoryTitle",defaultMessage:"Memory Store Size:"}),placeholder:(0,N.defineMessage)({id:"admin.rate.memoryExample",defaultMessage:'E.g.: "10000"'}),help_text:(0,N.defineMessage)({id:"admin.rate.memoryDescription",defaultMessage:'Maximum number of users sessions connected to the system as determined by "Vary rate limit by remote address" and "Vary rate limit by HTTP header".'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.RATE_LIMITING)),Js("RateLimitSettings.Enable",!1))},{type:"bool",key:"RateLimitSettings.VaryByRemoteAddr",label:(0,N.defineMessage)({id:"admin.rate.remoteTitle",defaultMessage:"Vary rate limit by remote address:"}),help_text:(0,N.defineMessage)({id:"admin.rate.remoteDescription",defaultMessage:"When true, rate limit API access by IP address."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.RATE_LIMITING)),Js("RateLimitSettings.Enable",!1))},{type:"bool",key:"RateLimitSettings.VaryByUser",label:(0,N.defineMessage)({id:"admin.rate.varyByUser",defaultMessage:"Vary rate limit by user:"}),help_text:(0,N.defineMessage)({id:"admin.rate.varyByUserDescription",defaultMessage:"When true, rate limit API access by user athentication token."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.RATE_LIMITING)),Js("RateLimitSettings.Enable",!1))},{type:"text",key:"RateLimitSettings.VaryByHeader",label:(0,N.defineMessage)({id:"admin.rate.httpHeaderTitle",defaultMessage:"Vary rate limit by HTTP header:"}),placeholder:(0,N.defineMessage)({id:"admin.rate.httpHeaderExample",defaultMessage:'E.g.: "X-Real-IP", "X-Forwarded-For"'}),help_text:(0,N.defineMessage)({id:"admin.rate.httpHeaderDescription",defaultMessage:'When filled in, vary rate limiting by HTTP header field specified (e.g. when configuring NGINX set to "X-Real-IP", when configuring AmazonELB set to "X-Forwarded-For").'}),isDisabled:Ys(zs(da(M.ENVIRONMENT.RATE_LIMITING)),Js("RateLimitSettings.Enable",!1),Js("RateLimitSettings.VaryByRemoteAddr",!0))}]}},logging:{url:"environment/logging",title:(0,N.defineMessage)({id:"admin.sidebar.logging",defaultMessage:"Logging"}),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.ENVIRONMENT.LOGGING))),schema:{id:"LogSettings",name:(0,N.defineMessage)({id:"admin.general.log",defaultMessage:"Logging"}),settings:[{type:"bool",key:"LogSettings.EnableConsole",label:(0,N.defineMessage)({id:"admin.log.consoleTitle",defaultMessage:"Output logs to console: "}),help_text:(0,N.defineMessage)({id:"admin.log.consoleDescription",defaultMessage:"Typically set to false in production. Developers may set this field to true to output log messages to console based on the console level option. If true, server writes messages to the standard output stream (stdout). Changing this setting requires a server restart before taking effect."}),isDisabled:zs(da(M.ENVIRONMENT.LOGGING))},{type:"dropdown",key:"LogSettings.ConsoleLevel",label:(0,N.defineMessage)({id:"admin.log.levelTitle",defaultMessage:"Console Log Level:"}),help_text:(0,N.defineMessage)({id:"admin.log.levelDescription",defaultMessage:"This setting determines the level of detail at which log events are written to the console. ERROR: Outputs only error messages. INFO: Outputs error messages and information around startup and initialization. DEBUG: Prints high detail for developers working on debugging issues."}),options:_r,isDisabled:Ys(zs(da(M.ENVIRONMENT.LOGGING)),Qs("LogSettings.EnableConsole"))},{type:"bool",key:"LogSettings.ConsoleJson",label:(0,N.defineMessage)({id:"admin.log.consoleJsonTitle",defaultMessage:"Output console logs as JSON:"}),help_text:(0,N.defineMessage)({id:"admin.log.jsonDescription",defaultMessage:"When true, logged events are written in a machine readable JSON format. Otherwise they are printed as plain text. Changing this setting requires a server restart before taking effect."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.LOGGING)),Qs("LogSettings.EnableConsole"))},{type:"bool",key:"LogSettings.EnableFile",label:(0,N.defineMessage)({id:"admin.log.fileTitle",defaultMessage:"Output logs to file: "}),help_text:(0,N.defineMessage)({id:"admin.log.fileDescription",defaultMessage:"Typically set to true in production. When true, logged events are written to the mattermost.log file in the directory specified in the File Log Directory field. The logs are rotated at 100 MB and archived to a file in the same directory, and given a name with a datestamp and serial number. For example, mattermost.2017-03-31.001. Changing this setting requires a server restart before taking effect."}),isDisabled:zs(da(M.ENVIRONMENT.LOGGING))},{type:"dropdown",key:"LogSettings.FileLevel",label:(0,N.defineMessage)({id:"admin.log.fileLevelTitle",defaultMessage:"File Log Level:"}),help_text:(0,N.defineMessage)({id:"admin.log.fileLevelDescription",defaultMessage:"This setting determines the level of detail at which log events are written to the log file. ERROR: Outputs only error messages. INFO: Outputs error messages and information around startup and initialization. DEBUG: Prints high detail for developers working on debugging issues."}),options:_r,isDisabled:Ys(zs(da(M.ENVIRONMENT.LOGGING)),Qs("LogSettings.EnableFile"))},{type:"bool",key:"LogSettings.FileJson",label:(0,N.defineMessage)({id:"admin.log.fileJsonTitle",defaultMessage:"Output file logs as JSON:"}),help_text:(0,N.defineMessage)({id:"admin.log.jsonDescription",defaultMessage:"When true, logged events are written in a machine readable JSON format. Otherwise they are printed as plain text. Changing this setting requires a server restart before taking effect."}),isDisabled:Ys(zs(da(M.ENVIRONMENT.LOGGING)),Qs("LogSettings.EnableFile"))},{type:"text",key:"LogSettings.FileLocation",label:(0,N.defineMessage)({id:"admin.log.locationTitle",defaultMessage:"File Log Directory:"}),help_text:(0,N.defineMessage)({id:"admin.log.locationDescription",defaultMessage:"The location of the log files. If blank, they are stored in the ./logs directory. The path that you set must exist and Mattermost must have write permissions in it. Changing this setting requires a server restart before taking effect."}),placeholder:(0,N.defineMessage)({id:"admin.log.locationPlaceholder",defaultMessage:"Enter your file location"}),isDisabled:Ys(zs(da(M.ENVIRONMENT.LOGGING)),Qs("LogSettings.EnableFile"))},{type:"bool",key:"LogSettings.EnableWebhookDebugging",label:(0,N.defineMessage)({id:"admin.log.enableWebhookDebugging",defaultMessage:"Enable Webhook Debugging:"}),help_text:(0,N.defineMessage)({id:"admin.log.enableWebhookDebuggingDescription",defaultMessage:'When true, sends webhook debug messages to the server logs. To also output the request body of incoming webhooks, set {boldedLogLevel} to "DEBUG".'}),help_text_values:{boldedLogLevel:T().createElement("strong",null,T().createElement(N.FormattedMessage,{id:"admin.log.logLevel",defaultMessage:"Log Level"}))},isDisabled:zs(da(M.ENVIRONMENT.LOGGING))},{type:"bool",key:"LogSettings.EnableDiagnostics",label:(0,N.defineMessage)({id:"admin.log.enableDiagnostics",defaultMessage:"Enable Diagnostics and Error Reporting:"}),help_text:(0,N.defineMessage)({id:"admin.log.enableDiagnosticsDescription",defaultMessage:"Enable this feature to improve the quality and performance of Mattermost by sending error reporting and diagnostic information to Mattermost, Inc. Read our <link>privacy policy</link> to learn more."}),help_text_markdown:!1,help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.L0.PRIVACY_POLICY},e)},onConfigSave:e=>e,isDisabled:zs(da(M.ENVIRONMENT.LOGGING))},{type:"longtext",key:"LogSettings.AdvancedLoggingJSON",label:(0,N.defineMessage)({id:"admin.log.AdvancedLoggingJSONTitle",defaultMessage:"Advanced Logging:"}),help_text:(0,N.defineMessage)({id:"admin.log.AdvancedLoggingJSONDescription",defaultMessage:"The JSON configuration for Advanced Logging. Please see <link>documentation</link> to learn more about Advanced Logging and the JSON format it uses."}),help_text_markdown:!1,help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.ADVANCED_LOGGING},e)},placeholder:(0,N.defineMessage)({id:"admin.log.AdvancedLoggingJSONPlaceholder",defaultMessage:"Enter your JSON configuration"}),isDisabled:zs(da(M.ENVIRONMENT.LOGGING)),validate:e=>{const t=new Vs(!0,"");if(!e)return t;try{return JSON.parse(e),t}catch(e){return new Vs(!1,e.message)}},onConfigLoad:e=>JSON.stringify(e,null," "),onConfigSave:e=>e?JSON.parse(e):{undefined:void 0}}]}},session_lengths:{url:"environment/session_lengths",title:(0,N.defineMessage)({id:"admin.sidebar.sessionLengths",defaultMessage:"Session Lengths"}),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.ENVIRONMENT.SESSION_LENGTHS))),searchableStrings:Vf,isDisabled:zs(da(M.ENVIRONMENT.SESSION_LENGTHS)),schema:{id:"SessionLengths",component:class extends Ia{constructor(){super(...arguments),Gf(this,"getConfigFromState",(e=>(e.ServiceSettings.ExtendSessionLengthWithActivity=this.state.extendSessionLengthWithActivity,e.ServiceSettings.TerminateSessionsOnPasswordChange=this.state.terminateSessionsOnPasswordChange,e.ServiceSettings.SessionLengthWebInHours=this.parseIntNonZero(this.state.sessionLengthWebInHours),e.ServiceSettings.SessionLengthMobileInHours=this.parseIntNonZero(this.state.sessionLengthMobileInHours),e.ServiceSettings.SessionLengthSSOInHours=this.parseIntNonZero(this.state.sessionLengthSSOInHours),e.ServiceSettings.SessionCacheInMinutes=this.parseIntNonZero(this.state.sessionCacheInMinutes),e.ServiceSettings.SessionIdleTimeoutInMinutes=this.parseIntZeroOrMin(this.state.sessionIdleTimeoutInMinutes,5),e))),Gf(this,"renderSettings",(()=>{let e,t,s,a;return this.state.extendSessionLengthWithActivity?(e=T().createElement(N.FormattedMessage,qf.webSessionHoursDesc_extendLength),t=T().createElement(N.FormattedMessage,qf.mobileSessionHoursDesc_extendLength),s=T().createElement(N.FormattedMessage,qf.ssoSessionHoursDesc_extendLength)):(e=T().createElement(N.FormattedMessage,qf.webSessionHoursDesc),t=T().createElement(N.FormattedMessage,qf.mobileSessionHoursDesc),s=T().createElement(N.FormattedMessage,qf.ssoSessionHoursDesc)),this.props.license.Compliance&&!this.state.extendSessionLengthWithActivity&&(a=T().createElement(ls,{id:"sessionIdleTimeoutInMinutes",type:"number",label:T().createElement(N.FormattedMessage,qf.sessionIdleTimeout),placeholder:(0,N.defineMessage)({id:"admin.service.sessionIdleTimeoutEx",defaultMessage:'E.g.: "60"'}),helpText:T().createElement(N.FormattedMessage,qf.sessionIdleTimeoutDesc),value:this.state.sessionIdleTimeoutInMinutes,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.SessionIdleTimeoutInMinutes"),disabled:this.props.isDisabled})),T().createElement(is,null,T().createElement(j,{id:"extendSessionLengthWithActivity",label:T().createElement(N.FormattedMessage,qf.extendSessionLengthActivity_label),helpText:T().createElement(N.FormattedMessage,qf.extendSessionLengthActivity_helpText),value:this.state.extendSessionLengthWithActivity,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.ExtendSessionLengthWithActivity"),disabled:this.props.isDisabled}),T().createElement(j,{id:"terminateSessionsOnPasswordChange",label:T().createElement(N.FormattedMessage,qf.terminateSessionsOnPasswordChange_label),helpText:T().createElement(N.FormattedMessage,qf.terminateSessionsOnPasswordChange_helpText),value:this.state.terminateSessionsOnPasswordChange,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.TerminateSessionsOnPasswordChange"),disabled:this.props.isDisabled}),T().createElement(ls,{id:"sessionLengthWebInHours",label:T().createElement(N.FormattedMessage,qf.webSessionHours),placeholder:(0,N.defineMessage)(qf.sessionHoursEx),helpText:e,value:this.state.sessionLengthWebInHours,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.SessionLengthWebInHours"),disabled:this.props.isDisabled,type:"number"}),T().createElement(ls,{id:"sessionLengthMobileInHours",label:T().createElement(N.FormattedMessage,qf.mobileSessionHours),placeholder:(0,N.defineMessage)(qf.sessionHoursEx),helpText:t,value:this.state.sessionLengthMobileInHours,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.SessionLengthMobileInHours"),disabled:this.props.isDisabled,type:"number"}),T().createElement(ls,{id:"sessionLengthSSOInHours",label:T().createElement(N.FormattedMessage,qf.ssoSessionHours),placeholder:(0,N.defineMessage)(qf.sessionHoursEx),helpText:s,value:this.state.sessionLengthSSOInHours,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.SessionLengthSSOInHours"),disabled:this.props.isDisabled,type:"number"}),T().createElement(ls,{id:"sessionCacheInMinutes",label:T().createElement(N.FormattedMessage,qf.sessionCache),placeholder:(0,N.defineMessage)({id:"admin.service.sessionMinutesEx",defaultMessage:'E.g.: "10"'}),helpText:T().createElement(N.FormattedMessage,qf.sessionCacheDesc),value:this.state.sessionCacheInMinutes,onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.SessionCacheInMinutes"),disabled:this.props.isDisabled,type:"number"}),a)}))}getStateFromConfig(e){return{extendSessionLengthWithActivity:e.ServiceSettings.ExtendSessionLengthWithActivity,terminateSessionsOnPasswordChange:e.ServiceSettings.TerminateSessionsOnPasswordChange,sessionLengthWebInHours:e.ServiceSettings.SessionLengthWebInHours,sessionLengthMobileInHours:e.ServiceSettings.SessionLengthMobileInHours,sessionLengthSSOInHours:e.ServiceSettings.SessionLengthSSOInHours,sessionCacheInMinutes:e.ServiceSettings.SessionCacheInMinutes,sessionIdleTimeoutInMinutes:e.ServiceSettings.SessionIdleTimeoutInMinutes}}renderTitle(){return T().createElement(N.FormattedMessage,qf.title)}}}},metrics:{url:"environment/performance_monitoring",title:(0,N.defineMessage)({id:"admin.sidebar.metrics",defaultMessage:"Performance Monitoring"}),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.ENVIRONMENT.PERFORMANCE_MONITORING))),schema:{id:"MetricsSettings",name:(0,N.defineMessage)({id:"admin.advance.metrics",defaultMessage:"Performance Monitoring"}),settings:[{type:"bool",key:"MetricsSettings.Enable",label:(0,N.defineMessage)({id:"admin.metrics.enableTitle",defaultMessage:"Enable Performance Monitoring:"}),help_text:(0,N.defineMessage)({id:"admin.metrics.enableDescription",defaultMessage:"When true, Mattermost will enable performance monitoring collection and profiling. Please see <link>documentation</link> to learn more about configuring performance monitoring for Mattermost."}),help_text_markdown:!1,help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.SETUP_PERFORMANCE_MONITORING},e)},isDisabled:zs(da(M.ENVIRONMENT.PERFORMANCE_MONITORING))},{type:"bool",key:"MetricsSettings.EnableClientMetrics",label:(0,N.defineMessage)({id:"admin.metrics.enableClientMetricsTitle",defaultMessage:"Enable Client Performance Monitoring:"}),help_text:(0,N.defineMessage)({id:"admin.metrics.enableClientMetricsDescription",defaultMessage:"When true, Mattermost will enable performance monitoring collection for web and desktop app users. Please see <link>documentation</link> to learn more about configuring performance monitoring for Mattermost."}),help_text_markdown:!1,help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.SETUP_PERFORMANCE_MONITORING},e)},isDisabled:Ys(zs(da(M.ENVIRONMENT.PERFORMANCE_MONITORING)),$s("MetricsSettings","Enable"))},{type:"custom",key:"MetricsSettings.ClientSideUserIds",component:Qo,isDisabled:Ys(zs(da(M.ENVIRONMENT.PERFORMANCE_MONITORING)),$s("MetricsSettings","EnableClientMetrics"))},{type:"text",key:"MetricsSettings.ListenAddress",label:(0,N.defineMessage)({id:"admin.metrics.listenAddressTitle",defaultMessage:"Listen Address:"}),placeholder:(0,N.defineMessage)({id:"admin.metrics.listenAddressEx",defaultMessage:'E.g.: ":8067"'}),help_text:(0,N.defineMessage)({id:"admin.metrics.listenAddressDesc",defaultMessage:"The address the server will listen on to expose performance metrics."}),isDisabled:zs(da(M.ENVIRONMENT.PERFORMANCE_MONITORING))}]}},developer:{url:"environment/developer",title:(0,N.defineMessage)({id:"admin.sidebar.developer",defaultMessage:"Developer"}),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.ENVIRONMENT.DEVELOPER))),schema:{id:"ServiceSettings",name:(0,N.defineMessage)({id:"admin.developer.title",defaultMessage:"Developer Settings"}),settings:[{type:"bool",key:"ServiceSettings.EnableTesting",label:(0,N.defineMessage)({id:"admin.service.testingTitle",defaultMessage:"Enable Testing Commands:"}),help_text:(0,N.defineMessage)({id:"admin.service.testingDescription",defaultMessage:"When true, /test slash command is enabled to load test accounts, data and text formatting. Changing this requires a server restart before taking effect."}),isDisabled:zs(da(M.ENVIRONMENT.DEVELOPER))},{type:"bool",key:"ServiceSettings.EnableDeveloper",label:(0,N.defineMessage)({id:"admin.service.developerTitle",defaultMessage:"Enable Developer Mode: "}),help_text:(0,N.defineMessage)({id:"admin.service.developerDesc",defaultMessage:"When true, JavaScript errors are shown in a purple bar at the top of the user interface. Not recommended for use in production. Changing this requires a server restart before taking effect."}),isDisabled:zs(da(M.ENVIRONMENT.DEVELOPER))},{type:"bool",key:"ServiceSettings.EnableClientPerformanceDebugging",label:(0,N.defineMessage)({id:"admin.service.performanceDebuggingTitle",defaultMessage:"Enable Client Performance Debugging: "}),help_text:(0,N.defineMessage)({id:"admin.service.performanceDebuggingDescription",defaultMessage:"When true, users can access debugging settings for their account in **Settings > Advanced > Performance Debugging** to assist in diagnosing performance issues. Changing this requires a server restart before taking effect."}),help_text_markdown:!0,isDisabled:zs(da(M.ENVIRONMENT.DEVELOPER))},{type:"text",key:"ServiceSettings.AllowedUntrustedInternalConnections",label:(0,N.defineMessage)({id:"admin.service.internalConnectionsTitle",defaultMessage:"Allow untrusted internal connections to: "}),placeholder:(0,N.defineMessage)({id:"admin.service.internalConnectionsEx",defaultMessage:"webhooks.internal.example.com 127.0.0.1 10.0.16.0/28"}),help_text:(0,N.defineMessage)({id:"admin.service.internalConnectionsDesc",defaultMessage:"A whitelist of local network addresses that can be requested by the Mattermost server on behalf of a client. Care should be used when configuring this setting to prevent unintended access to your local network. See <link>documentation</link> to learn more. Changing this requires a server restart before taking effect."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:"https://mattermost.com/pl/default-allow-untrusted-internal-connections"},e)},help_text_markdown:!1,isDisabled:zs(da(M.ENVIRONMENT.DEVELOPER))}]}},mobile_security:{url:"environment/mobile_security",title:(0,N.defineMessage)({id:"admin.sidebar.mobileSecurity",defaultMessage:"Mobile Security"}),isHidden:Ys(zs(oa(M.ENVIRONMENT.MOBILE_SECURITY)),zs(na(mt.gS.Enterprise))),schema:{id:"MobileSecuritySettings",name:(0,N.defineMessage)({id:"admin.mobileSecurity.title",defaultMessage:"Mobile Security"}),settings:[{type:"bool",key:"NativeAppSettings.MobileEnableBiometrics",label:(0,N.defineMessage)({id:"admin.mobileSecurity.biometricsTitle",defaultMessage:"Enable Biometric Authentication:"}),help_text:(0,N.defineMessage)({id:"admin.mobileSecurity.biometricsDescription",defaultMessage:"Enforces biometric authentication (with PIN/passcode fallback) before accessing the app. Users will be prompted based on session activity and server switching rules."})},{type:"bool",key:"NativeAppSettings.MobilePreventScreenCapture",label:(0,N.defineMessage)({id:"admin.mobileSecurity.screenCaptureTitle",defaultMessage:"Prevent Screen Capture:"}),help_text:(0,N.defineMessage)({id:"admin.mobileSecurity.screenCaptureDescription",defaultMessage:"Blocks screenshots and screen recordings when using the mobile app. Screenshots will appear blank, and screen recordings will blur (iOS) or show a black screen (Android). Also applies when switching apps."})},{type:"bool",key:"NativeAppSettings.MobileJailbreakProtection",label:(0,N.defineMessage)({id:"admin.mobileSecurity.jailbreakTitle",defaultMessage:"Enable Jailbreak/Root Protection:"}),help_text:(0,N.defineMessage)({id:"admin.mobileSecurity.jailbreakDescription",defaultMessage:"Prevents access to the app on devices detected as jailbroken or rooted. If a device fails the security check, users will be denied access or prompted to switch to a compliant server."})},{type:"bool",key:"NativeAppSettings.MobileEnableSecureFilePreview",label:(0,N.defineMessage)({id:"admin.mobileSecurity.secureFilePreviewTitle",defaultMessage:"Enable Secure File Preview Mode:"}),help_text:(0,N.defineMessage)({id:"admin.mobileSecurity.secureFilePreviewDescription",defaultMessage:"Prevents file downloads, previews, and sharing for most file types, even if {mobileAllowDownloads} is enabled. Allows in-app previews for PDFs, videos, and images only. Files are stored temporarily in the app’s cache and cannot be exported or shared."}),help_text_values:{mobileAllowDownloads:T().createElement("a",{href:"../site_config/file_sharing_downloads"},T().createElement("b",null,T().createElement(N.FormattedMessage,{id:"admin.mobileSecurity.mobileAllowDownloads",defaultMessage:"Site Configuration > File Sharing and Downloads > Allow File Downloads on Mobile"})))},isHidden:zs(na(mt.gS.EnterpriseAdvanced))},{type:"bool",key:"NativeAppSettings.MobileAllowPdfLinkNavigation",label:(0,N.defineMessage)({id:"admin.mobileSecurity.allowPdfLinkNavigationTitle",defaultMessage:"Allow Link Navigation in Secure PDFs:"}),help_text:(0,N.defineMessage)({id:"admin.mobileSecurity.allowPdfLinkNavigationDescription",defaultMessage:"Enables tapping links inside PDFs when Secure File Preview Mode is active. Links will open in the device browser or supported app. Has no effect when Secure File Preview Mode is disabled."}),isDisabled:Qs("NativeAppSettings.MobileEnableSecureFilePreview"),isHidden:zs(na(mt.gS.EnterpriseAdvanced))}]}},mobile_security_feature_discovery:{url:"environment/mobile_security_feature_discovery",isDiscovery:!0,title:(0,N.defineMessage)({id:"admin.sidebar.mobileSecurity",defaultMessage:"Mobile Security"}),isHidden:Ys(zs(oa(M.ENVIRONMENT.MOBILE_SECURITY)),na(mt.gS.Enterprise)),schema:{id:"MobileSecurityFeatureDiscoverySettings",name:(0,N.defineMessage)({id:"admin.mobileSecurity.title",defaultMessage:"Mobile Security"}),settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"mobile_security",minimumSKURequiredForFeature:mt.gS.Enterprise,title:(0,N.defineMessage)({id:"admin.mobile_security_feature_discovery.title",defaultMessage:"Enhance mobile app security with Mattermost Enterprise"}),copy:(0,N.defineMessage)({id:"admin.mobile_security_feature_discovery.copy",defaultMessage:"Enable advanced security features like biometric authentication, screen capture prevention, and jailbreak/root detection for your mobile users."}),learnMoreURL:"https://docs.mattermost.com/configure/environment-configuration-settings.html#mobile-security",featureDiscoveryImage:T().createElement(Qd,{width:294,height:170})}),key:"MobileSecurityFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0)}}},site:{icon:T().createElement(R.CogOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,N.defineMessage)({id:"admin.sidebar.site",defaultMessage:"Site Configuration"}),isHidden:zs(la(M.SITE)),subsections:{customization:{url:"site_config/customization",title:(0,N.defineMessage)({id:"admin.sidebar.customization",defaultMessage:"Customization"}),isHidden:zs(oa(M.SITE.CUSTOMIZATION)),schema:{id:"Customization",name:(0,N.defineMessage)({id:"admin.site.customization",defaultMessage:"Customization"}),settings:[{type:"text",key:"TeamSettings.SiteName",label:(0,N.defineMessage)({id:"admin.team.siteNameTitle",defaultMessage:"Site Name:"}),help_text:(0,N.defineMessage)({id:"admin.team.siteNameDescription",defaultMessage:'Name of service shown in login screens and UI. When not specified, it defaults to "Mattermost".'}),placeholder:(0,N.defineMessage)({id:"admin.team.siteNameExample",defaultMessage:'E.g.: "Mattermost"'}),max_length:mt.YM.MAX_SITENAME_LENGTH,isDisabled:zs(da(M.SITE.CUSTOMIZATION))},{type:"text",key:"TeamSettings.CustomDescriptionText",label:(0,N.defineMessage)({id:"admin.team.brandDescriptionTitle",defaultMessage:"Site Description: "}),help_text:(0,N.defineMessage)({id:"admin.team.brandDescriptionHelp",defaultMessage:'Displays as a title above the login form. When not specified, the phrase "Log in" is displayed.'}),isDisabled:zs(da(M.SITE.CUSTOMIZATION))},{type:"bool",key:"TeamSettings.EnableCustomBrand",label:(0,N.defineMessage)({id:"admin.team.brandTitle",defaultMessage:"Enable Custom Branding: "}),help_text:(0,N.defineMessage)({id:"admin.team.brandDesc",defaultMessage:"Enable custom branding to show an image of your choice, uploaded below, and some help text, written below, on the login page."}),isDisabled:zs(da(M.SITE.CUSTOMIZATION))},{type:"custom",component:Jo,key:"CustomBrandImage",isDisabled:Ys(zs(da(M.SITE.CUSTOMIZATION)),Qs("TeamSettings.EnableCustomBrand"))},{type:"longtext",key:"TeamSettings.CustomBrandText",label:(0,N.defineMessage)({id:"admin.team.brandTextTitle",defaultMessage:"Custom Brand Text:"}),help_text:(0,N.defineMessage)({id:"admin.team.brandTextDescription",defaultMessage:"Text that will appear below your custom brand image on your login screen. Supports Markdown-formatted text. Maximum 500 characters allowed."}),max_length:mt.YM.MAX_CUSTOM_BRAND_TEXT_LENGTH,isDisabled:Ys(zs(da(M.SITE.CUSTOMIZATION)),Qs("TeamSettings.EnableCustomBrand"))},{type:"bool",key:"SupportSettings.EnableAskCommunityLink",label:(0,N.defineMessage)({id:"admin.support.enableAskCommunityTitle",defaultMessage:"Enable Ask Community Link:"}),help_text:(0,N.defineMessage)({id:"admin.support.enableAskCommunityDesc",defaultMessage:'When true, "Ask the community" link appears on the Mattermost user interface and Help Menu, which allows users to join the Mattermost Community to ask questions and help others troubleshoot issues. When false, the link is hidden from users.'}),isDisabled:zs(da(M.SITE.CUSTOMIZATION))},{type:"text",key:"SupportSettings.HelpLink",label:(0,N.defineMessage)({id:"admin.support.helpTitle",defaultMessage:"Help Link:"}),help_text:(0,N.defineMessage)({id:"admin.support.helpDesc",defaultMessage:"The URL for the Help link on the Mattermost login page, sign-up pages, and Help Menu. If this field is empty, the Help link is hidden from users."}),isDisabled:zs(da(M.SITE.CUSTOMIZATION))},{type:"text",key:"SupportSettings.TermsOfServiceLink",label:(0,N.defineMessage)({id:"admin.support.termsTitle",defaultMessage:"Terms of Use Link:"}),help_text:(0,N.defineMessage)({id:"admin.support.termsDesc",defaultMessage:'Link to the terms under which users may use your online service. By default, this includes the "Mattermost Conditions of Use (End Users)" explaining the terms under which Mattermost software is provided to end users. If you change the default link to add your own terms for using the service you provide, your new terms must include a link to the default terms so end users are aware of the Mattermost Conditions of Use (End User) for Mattermost software.'}),isDisabled:zs(da(M.SITE.CUSTOMIZATION)),isHidden:Xs("ExperimentalSettings","RestrictSystemAdmin")},{type:"text",key:"SupportSettings.PrivacyPolicyLink",label:(0,N.defineMessage)({id:"admin.support.privacyTitle",defaultMessage:"Privacy Policy Link:"}),help_text:(0,N.defineMessage)({id:"admin.support.privacyDesc",defaultMessage:"The URL for the Privacy link on the login and sign-up pages. If this field is empty, the Privacy link is hidden from users."}),isDisabled:zs(da(M.SITE.CUSTOMIZATION)),isHidden:Xs("ExperimentalSettings","RestrictSystemAdmin")},{type:"text",key:"SupportSettings.AboutLink",label:(0,N.defineMessage)({id:"admin.support.aboutTitle",defaultMessage:"About Link:"}),help_text:(0,N.defineMessage)({id:"admin.support.aboutDesc",defaultMessage:"The URL for the About link on the Mattermost login and sign-up pages. If this field is empty, the About link is hidden from users."}),isDisabled:zs(da(M.SITE.CUSTOMIZATION)),isHidden:Xs("ExperimentalSettings","RestrictSystemAdmin")},{type:"text",key:"SupportSettings.ForgotPasswordLink",label:(0,N.defineMessage)({id:"admin.support.forgotPasswordTitle",defaultMessage:"Forgot Password Custom Link:"}),help_text:(0,N.defineMessage)({id:"admin.support.forgotPasswordDesc",defaultMessage:"The URL for the Forgot Password link on the Mattermost login page. If this field is empty the Forgot Password link takes users to the Password Reset page."}),isDisabled:zs(da(M.SITE.CUSTOMIZATION)),isHidden:Xs("ExperimentalSettings","RestrictSystemAdmin")},{type:"dropdown",key:"SupportSettings.ReportAProblemType",label:(0,N.defineMessage)({id:"admin.support.reportAProblemTypeTitle",defaultMessage:"Report a Problem:"}),help_text:(0,N.defineMessage)({id:"admin.support.reportAProblemTypeDescription",defaultMessage:"Select how the ‘Report a Problem’ option behaves. Choosing ‘Custom link’ or ‘Email address’ allows you to provide a URL or address in the next field. ‘Hide link’ removes the ‘Report a Problem’ option from the app."}),options:[{display_name:(0,N.defineMessage)({id:"admin.support.problemType.defaultLink",defaultMessage:"Default link"}),value:"default"},{display_name:(0,N.defineMessage)({id:"admin.support.problemType.email",defaultMessage:"Email address"}),value:"email"},{display_name:(0,N.defineMessage)({id:"admin.support.problemType.customLink",defaultMessage:"Custom link"}),value:"link"},{display_name:(0,N.defineMessage)({id:"admin.support.problemType.hide",defaultMessage:"Hide link"}),value:"hidden"}]},{type:"text",key:"defaultLicensedReportAProblemLink",label:(0,N.defineMessage)({id:"admin.support.reportAProblemDefaultLinkTitle",defaultMessage:"Default Report a Problem Link:"}),help_text:(0,N.defineMessage)({id:"admin.support.reportAProblemDefaultLinkDescription",defaultMessage:"Users will be directed to this link when they choose ‘Report a Problem’."}),default:"https://mattermost.com/pl/report_a_problem_licensed",isDisabled:Ws(),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(Zs("SupportSettings.ReportAProblemType",/default/)),zs(ta))},{type:"text",key:"defaultUnlicensedReportAProblemLink",label:(0,N.defineMessage)({id:"admin.support.reportAProblemDefaultLinkTitle",defaultMessage:"Default Report a Problem Link:"}),help_text:(0,N.defineMessage)({id:"admin.support.reportAProblemDefaultLinkDescription",defaultMessage:"Users will be directed to this link when they choose ‘Report a Problem’."}),default:"https://mattermost.com/pl/report_a_problem_unlicensed",isDisabled:Ws(),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(Zs("SupportSettings.ReportAProblemType",/default/)),ta)},{type:"text",key:"SupportSettings.ReportAProblemLink",label:(0,N.defineMessage)({id:"admin.support.reportAProblemLinkTitle",defaultMessage:"Custom Report a Problem Link:"}),help_text:(0,N.defineMessage)({id:"admin.support.reportAProblemLinkDescription",defaultMessage:"Enter the URL that users will be directed to when they choose ‘Report a Problem’."}),isDisabled:Ys(zs(da(M.SITE.CUSTOMIZATION))),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(Zs("SupportSettings.ReportAProblemType",/link/))),validate:e=>e?new Vs(!0,""):new Vs(!1,(0,N.defineMessage)({id:"admin.support.reportAProblemLinkError",defaultMessage:"Link is required"}))},{type:"text",key:"SupportSettings.ReportAProblemMail",label:(0,N.defineMessage)({id:"admin.support.reportAProblemEmailTitle",defaultMessage:"Report a Problem Email Address:"}),help_text:(0,N.defineMessage)({id:"admin.support.reportAProblemEmailDescription",defaultMessage:"Enter the email address that users will be prompted to send a message to when they choose ‘Report a Problem’."}),isDisabled:zs(da(M.SITE.CUSTOMIZATION)),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(Zs("SupportSettings.ReportAProblemType",/email/))),validate:e=>e?new Vs(!0,""):new Vs(!1,(0,N.defineMessage)({id:"admin.support.reportAProblemEmailError",defaultMessage:"Email is required"}))},{type:"bool",key:"SupportSettings.AllowDownloadLogs",label:(0,N.defineMessage)({id:"admin.support.problemAllowDownloadTitle",defaultMessage:"Allow Mobile App Log Downloads:"}),help_text:(0,N.defineMessage)({id:"admin.support.problemAllowDownloadDescription",defaultMessage:"When enabled, users can download app logs for troubleshooting. If a ‘Report a Problem’ link is shown, logs can be downloaded as part of that flow; if the ‘Report a Problem’ link is hidden, logs remain accessible as a separate option."})},{type:"text",key:"NativeAppSettings.AppDownloadLink",label:(0,N.defineMessage)({id:"admin.customization.appDownloadLinkTitle",defaultMessage:"Mattermost Apps Download Page Link:"}),help_text:(0,N.defineMessage)({id:"admin.customization.appDownloadLinkDesc",defaultMessage:'Add a link to a download page for the Mattermost apps. When a link is present, an option to "Download Mattermost Apps" will be added in the Product Menu so users can find the download page. Leave this field blank to hide the option from the Product Menu.'}),isDisabled:zs(da(M.SITE.CUSTOMIZATION)),isHidden:Xs("ExperimentalSettings","RestrictSystemAdmin")},{type:"text",key:"NativeAppSettings.AndroidAppDownloadLink",label:(0,N.defineMessage)({id:"admin.customization.androidAppDownloadLinkTitle",defaultMessage:"Android App Download Link:"}),help_text:(0,N.defineMessage)({id:"admin.customization.androidAppDownloadLinkDesc",defaultMessage:"Add a link to download the Android app. Users who access the site on a mobile web browser will be prompted with a page giving them the option to download the app. Leave this field blank to prevent the page from appearing."}),isDisabled:zs(da(M.SITE.CUSTOMIZATION)),isHidden:Xs("ExperimentalSettings","RestrictSystemAdmin")},{type:"text",key:"NativeAppSettings.IosAppDownloadLink",label:(0,N.defineMessage)({id:"admin.customization.iosAppDownloadLinkTitle",defaultMessage:"iOS App Download Link:"}),help_text:(0,N.defineMessage)({id:"admin.customization.iosAppDownloadLinkDesc",defaultMessage:"Add a link to download the iOS app. Users who access the site on a mobile web browser will be prompted with a page giving them the option to download the app. Leave this field blank to prevent the page from appearing."}),isDisabled:zs(da(M.SITE.CUSTOMIZATION)),isHidden:Xs("ExperimentalSettings","RestrictSystemAdmin")},{type:"bool",key:"ServiceSettings.EnableDesktopLandingPage",label:(0,N.defineMessage)({id:"admin.customization.enableDesktopLandingPageTitle",defaultMessage:"Enable Desktop App Landing Page:"}),help_text:(0,N.defineMessage)({id:"admin.customization.enableDesktopLandingPageDesc",defaultMessage:"Whether or not to prompt a user to use the Desktop App when they first use Mattermost."}),isDisabled:zs(da(M.SITE.CUSTOMIZATION))}]}},localization:{url:"site_config/localization",title:(0,N.defineMessage)({id:"admin.sidebar.localization",defaultMessage:"Localization"}),isHidden:zs(oa(M.SITE.LOCALIZATION)),schema:{id:"LocalizationSettings",name:(0,N.defineMessage)({id:"admin.site.localization",defaultMessage:"Localization"}),settings:[{type:"language",key:"LocalizationSettings.DefaultServerLocale",label:(0,N.defineMessage)({id:"admin.general.localization.serverLocaleTitle",defaultMessage:"Default Server Language:"}),help_text:(0,N.defineMessage)({id:"admin.general.localization.serverLocaleDescription",defaultMessage:"Default language for system messages."}),isDisabled:zs(da(M.SITE.LOCALIZATION))},{type:"language",key:"LocalizationSettings.DefaultClientLocale",label:(0,N.defineMessage)({id:"admin.general.localization.clientLocaleTitle",defaultMessage:"Default Client Language:"}),help_text:(0,N.defineMessage)({id:"admin.general.localization.clientLocaleDescription",defaultMessage:"Default language for newly created users and pages where the user hasn't logged in."}),isDisabled:zs(da(M.SITE.LOCALIZATION))},{type:"language",key:"LocalizationSettings.AvailableLocales",label:(0,N.defineMessage)({id:"admin.general.localization.availableLocalesTitle",defaultMessage:"Available Languages:"}),help_text:(0,N.defineMessage)({id:"admin.general.localization.availableLocalesDescription",defaultMessage:"Set which languages are available for users in <strong>Settings > Display > Language</strong> (leave this field blank to have all supported languages available). If you're manually adding new languages, the <strong>Default Client Language</strong> must be added before saving this setting.\n \nWould like to help with translations? Join the <link>Mattermost Translation Server</link> to contribute."}),help_text_markdown:!1,help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:"http://translate.mattermost.com/"},e),strong:e=>T().createElement("strong",null,e)},multiple:!0,no_result:(0,N.defineMessage)({id:"admin.general.localization.availableLocalesNoResults",defaultMessage:"No results found"}),isDisabled:zs(da(M.SITE.LOCALIZATION))},{type:"bool",key:"LocalizationSettings.EnableExperimentalLocales",label:(0,N.defineMessage)({id:"admin.general.localization.enableExperimentalLocalesTitle",defaultMessage:"Enable Experimental Locales:"}),help_text:(0,N.defineMessage)({id:"admin.general.localization.enableExperimentalLocalesDescription",defaultMessage:"When true, it allows users to select experimental (e.g., in progress) languages."}),isDisabled:zs(da(M.SITE.LOCALIZATION))}]}},users_and_teams:{url:"site_config/users_and_teams",title:(0,N.defineMessage)({id:"admin.sidebar.usersAndTeams",defaultMessage:"Users and Teams"}),isHidden:zs(oa(M.SITE.USERS_AND_TEAMS)),schema:{id:"UserAndTeamsSettings",name:(0,N.defineMessage)({id:"admin.site.usersAndTeams",defaultMessage:"Users and Teams"}),settings:[{type:"number",key:"TeamSettings.MaxUsersPerTeam",label:(0,N.defineMessage)({id:"admin.team.maxUsersTitle",defaultMessage:"Max Users Per Team:"}),help_text:(0,N.defineMessage)({id:"admin.team.maxUsersDescription",defaultMessage:"Maximum total number of users per team, including both active and inactive users."}),placeholder:(0,N.defineMessage)({id:"admin.team.maxUsersExample",defaultMessage:'E.g.: "25"'}),isDisabled:zs(da(M.SITE.USERS_AND_TEAMS))},{type:"number",key:"TeamSettings.MaxChannelsPerTeam",label:(0,N.defineMessage)({id:"admin.team.maxChannelsTitle",defaultMessage:"Max Channels Per Team:"}),help_text:(0,N.defineMessage)({id:"admin.team.maxChannelsDescription",defaultMessage:"Maximum total number of channels per team, including both active and archived channels."}),placeholder:(0,N.defineMessage)({id:"admin.team.maxChannelsExample",defaultMessage:'E.g.: "100"'}),isDisabled:zs(da(M.SITE.USERS_AND_TEAMS))},{type:"bool",key:"TeamSettings.EnableJoinLeaveMessageByDefault",label:(0,N.defineMessage)({id:"admin.team.enableJoinLeaveMessageTitle",defaultMessage:"Enable join/leave messages by default:"}),help_text:(0,N.defineMessage)({id:"admin.team.enableJoinLeaveMessageDescription",defaultMessage:"Choose the default configuration of system messages displayed when users join or leave channels. Users can override this default by configuring Join/Leave messages in Account Settings > Advanced."}),isDisabled:zs(da(M.SITE.USERS_AND_TEAMS))},{type:"dropdown",key:"TeamSettings.RestrictDirectMessage",label:(0,N.defineMessage)({id:"admin.team.restrictDirectMessage",defaultMessage:"Enable users to open Direct Message channels with:"}),help_text:(0,N.defineMessage)({id:"admin.team.restrictDirectMessageDesc",defaultMessage:'"Any user on the Mattermost server" enables users to open a Direct Message channel with any user on the server, even if they are not on any teams together. "Any member of the team" limits the ability in the Direct Messages "More" menu to only open Direct Message channels with users who are in the same team.'}),options:[{value:"any",display_name:(0,N.defineMessage)({id:"admin.team.restrict_direct_message_any",defaultMessage:"Any user on the Mattermost server"})},{value:"team",display_name:(0,N.defineMessage)({id:"admin.team.restrict_direct_message_team",defaultMessage:"Any member of the team"})}],isDisabled:zs(da(M.SITE.USERS_AND_TEAMS))},{type:"dropdown",key:"TeamSettings.TeammateNameDisplay",label:(0,N.defineMessage)({id:"admin.team.teammateNameDisplay",defaultMessage:"Teammate Name Display:"}),help_text:(0,N.defineMessage)({id:"admin.team.teammateNameDisplayDesc",defaultMessage:"Set how to display users' names in posts and the Direct Messages list."}),options:[{value:mt.YM.TEAMMATE_NAME_DISPLAY.SHOW_USERNAME,display_name:(0,N.defineMessage)({id:"admin.team.showUsername",defaultMessage:"Show username (default)"})},{value:mt.YM.TEAMMATE_NAME_DISPLAY.SHOW_NICKNAME_FULLNAME,display_name:(0,N.defineMessage)({id:"admin.team.showNickname",defaultMessage:"Show nickname if one exists, otherwise show first and last name"})},{value:mt.YM.TEAMMATE_NAME_DISPLAY.SHOW_FULLNAME,display_name:(0,N.defineMessage)({id:"admin.team.showFullname",defaultMessage:"Show first and last name"})}],isDisabled:zs(da(M.SITE.USERS_AND_TEAMS))},{type:"bool",key:"TeamSettings.LockTeammateNameDisplay",label:(0,N.defineMessage)({id:"admin.lockTeammateNameDisplay",defaultMessage:"Lock Teammate Name Display for all users: "}),help_text:(0,N.defineMessage)({id:"admin.lockTeammateNameDisplayHelpText",defaultMessage:"When true, disables users' ability to change settings under <strong>Account Menu > Account Settings > Display > Teammate Name Display</strong>."}),help_text_values:{strong:e=>T().createElement("strong",null,e)},isHidden:zs(aa("LockTeammateNameDisplay")),isDisabled:zs(da(M.SITE.USERS_AND_TEAMS))},{type:"bool",key:"PrivacySettings.ShowEmailAddress",label:(0,N.defineMessage)({id:"admin.privacy.showEmailTitle",defaultMessage:"Show Email Address:"}),help_text:(0,N.defineMessage)({id:"admin.privacy.showEmailDescription",defaultMessage:"When false, hides the email address of members from everyone except System Administrators and the System Roles with read/write access to Compliance, Billing, or User Management."}),isDisabled:zs(da(M.SITE.USERS_AND_TEAMS))},{type:"bool",key:"PrivacySettings.ShowFullName",label:(0,N.defineMessage)({id:"admin.privacy.showFullNameTitle",defaultMessage:"Show Full Name:"}),help_text:(0,N.defineMessage)({id:"admin.privacy.showFullNameDescription",defaultMessage:"When false, hides the full name of members from everyone except System Administrators. Username is shown in place of full name."}),isDisabled:zs(da(M.SITE.USERS_AND_TEAMS))},{type:"bool",key:"TeamSettings.EnableCustomUserStatuses",label:(0,N.defineMessage)({id:"admin.team.customUserStatusesTitle",defaultMessage:"Enable Custom Statuses: "}),help_text:(0,N.defineMessage)({id:"admin.team.customUserStatusesDescription",defaultMessage:"When true, users can set a descriptive status message and status emoji visible to all users."}),isDisabled:zs(da(M.SITE.USERS_AND_TEAMS))},{type:"bool",key:"TeamSettings.EnableLastActiveTime",label:(0,N.defineMessage)({id:"admin.team.lastActiveTimeTitle",defaultMessage:"Enable last active time: "}),help_text:(0,N.defineMessage)({id:"admin.team.lastActiveTimeDescription",defaultMessage:"When enabled, last active time allows users to see when someone was last online."}),isDisabled:zs(da(M.SITE.USERS_AND_TEAMS))},{type:"bool",key:"ServiceSettings.EnableCustomGroups",label:(0,N.defineMessage)({id:"admin.team.customUserGroupsTitle",defaultMessage:"Enable Custom User Groups: "}),help_text:(0,N.defineMessage)({id:"admin.team.customUserGroupsDescription",defaultMessage:"When true, users with appropriate permissions can create custom user groups and enables at-mentions for those groups."}),isDisabled:zs(da(M.SITE.USERS_AND_TEAMS)),isHidden:zs(Ys(na(mt.gS.Professional)))},{type:"text",key:"ServiceSettings.RefreshPostStatsRunTime",label:(0,N.defineMessage)({id:"admin.team.refreshPostStatsRunTimeTitle",defaultMessage:"User Statistics Update Time:"}),help_text:(0,N.defineMessage)({id:"admin.team.refreshPostStatsRunTimeDescription",defaultMessage:"Set the server time for updating the user post statistics, including each user's total post count and the timestamp of their most recent post. Must be a 24-hour time stamp in the form HH:MM based on the local time of the server."}),placeholder:(0,N.defineMessage)({id:"admin.team.refreshPostStatsRunTimeExample",defaultMessage:'E.g.: "00:00"'}),isDisabled:zs(da(M.SITE.USERS_AND_TEAMS))},{type:"text",key:"ServiceSettings.DeleteAccountLink",label:(0,N.defineMessage)({id:"admin.team.deleteAccountTitle",defaultMessage:"Delete Account Link:"}),help_text:(0,N.defineMessage)({id:"admin.team.deleteAccountDesc",defaultMessage:"The URL for the Delete Account link in the Security tab of Profile Settings. If this field is empty, the Delete Account link is hidden from users."}),isDisabled:zs(da(M.SITE.CUSTOMIZATION)),isHidden:aa("Cloud")}]}},notifications:{url:"environment/notifications",title:(0,N.defineMessage)({id:"admin.sidebar.notifications",defaultMessage:"Notifications"}),isHidden:zs(oa(M.SITE.NOTIFICATIONS)),schema:{id:"notifications",name:(0,N.defineMessage)({id:"admin.environment.notifications",defaultMessage:"Notifications"}),settings:[{type:"bool",key:"TeamSettings.EnableConfirmNotificationsToChannel",label:(0,N.defineMessage)({id:"admin.environment.notifications.enableConfirmNotificationsToChannel.label",defaultMessage:"Show @channel, @all, @here and group mention confirmation dialog:"}),help_text:(0,N.defineMessage)({id:"admin.environment.notifications.enableConfirmNotificationsToChannel.help",defaultMessage:"When true, users will be prompted to confirm when posting @channel, @all, @here and group mentions in channels with over five members. When false, no confirmation is required."}),isDisabled:zs(da(M.SITE.NOTIFICATIONS))},{type:"bool",key:"EmailSettings.SendEmailNotifications",label:(0,N.defineMessage)({id:"admin.environment.notifications.enable.label",defaultMessage:"Enable Email Notifications:"}),help_text:(0,N.defineMessage)({id:"admin.environment.notifications.enable.help",defaultMessage:"Typically set to true in production. When true, Mattermost attempts to send email notifications. When false, email invitations and user account setting change emails are still sent as long as the SMTP server is configured. Developers may set this field to false to skip email setup for faster development."}),isDisabled:zs(da(M.SITE.NOTIFICATIONS)),isHidden:aa("Cloud")},{type:"bool",key:"EmailSettings.EnablePreviewModeBanner",label:(0,N.defineMessage)({id:"admin.environment.notifications.enablePreviewModeBanner.label",defaultMessage:"Enable Preview Mode Banner:"}),help_text:(0,N.defineMessage)({id:"admin.environment.notifications.enablePreviewModeBanner.help",defaultMessage:"When true, the Preview Mode banner is displayed so users are aware that email notifications are disabled. When false, the Preview Mode banner is not displayed to users."}),isDisabled:Ys(zs(da(M.SITE.NOTIFICATIONS)),Ks("EmailSettings.SendEmailNotifications")),isHidden:aa("Cloud")},{type:"bool",key:"EmailSettings.EnableEmailBatching",label:(0,N.defineMessage)({id:"admin.environment.notifications.enableEmailBatching.label",defaultMessage:"Enable Email Batching:"}),help_text:(0,N.defineMessage)({id:"admin.environment.notifications.enableEmailBatching.help",defaultMessage:"When true, users will have email notifications for multiple direct messages and mentions combined into a single email. Batching will occur at a default interval of 15 minutes, configurable in Settings > Notifications."}),isDisabled:Ys(zs(da(M.SITE.NOTIFICATIONS)),Qs("EmailSettings.SendEmailNotifications"),Xs("ClusterSettings","Enable"),$s("ServiceSettings","SiteURL")),isHidden:aa("Cloud")},{type:"dropdown",key:"EmailSettings.EmailNotificationContentsType",label:(0,N.defineMessage)({id:"admin.environment.notifications.contents.label",defaultMessage:"Email Notification Contents:"}),help_text:(0,N.defineMessage)({id:"admin.environment.notifications.contents.help",defaultMessage:"**Send full message contents** - Sender name and channel are included in email notifications. **Send generic description with only sender name** - Only the name of the person who sent the message, with no information about channel name or message contents are included in email notifications. Typically used for compliance reasons if Mattermost contains confidential information and policy dictates it cannot be stored in email."}),help_text_markdown:!0,options:[{value:"full",display_name:(0,N.defineMessage)({id:"admin.environment.notifications.contents.full",defaultMessage:"Send full message contents"})},{value:"generic",display_name:(0,N.defineMessage)({id:"admin.environment.notifications.contents.generic",defaultMessage:"Send generic description with only sender name"})}],isHidden:zs(aa("EmailNotificationContents")),isDisabled:zs(da(M.SITE.NOTIFICATIONS))},{type:"text",key:"EmailSettings.FeedbackName",label:(0,N.defineMessage)({id:"admin.environment.notifications.notificationDisplay.label",defaultMessage:"Notification Display Name:"}),placeholder:(0,N.defineMessage)({id:"admin.environment.notifications.notificationDisplay.placeholder",defaultMessage:'Ex: "Mattermost Notification", "System", "No-Reply"'}),help_text:(0,N.defineMessage)({id:"admin.environment.notifications.notificationDisplay.help",defaultMessage:"Display name on email account used when sending notification emails from Mattermost."}),isDisabled:Ys(zs(da(M.SITE.NOTIFICATIONS)),Qs("EmailSettings.SendEmailNotifications")),validate:ma((0,N.defineMessage)({id:"admin.environment.notifications.notificationDisplay.required",defaultMessage:'"Notification Display Name" is required'}))},{type:"text",key:"EmailSettings.FeedbackEmail",label:(0,N.defineMessage)({id:"admin.environment.notifications.feedbackEmail.label",defaultMessage:"Notification From Address:"}),placeholder:(0,N.defineMessage)({id:"admin.environment.notifications.feedbackEmail.placeholder",defaultMessage:'Ex: "mattermost@yourcompany.com", "admin@yourcompany.com"'}),help_text:(0,N.defineMessage)({id:"admin.environment.notifications.feedbackEmail.help",defaultMessage:"Email address displayed on email account used when sending notification emails from Mattermost."}),isHidden:Xs("ExperimentalSettings","RestrictSystemAdmin"),isDisabled:Ys(zs(da(M.SITE.NOTIFICATIONS)),Qs("EmailSettings.SendEmailNotifications")),validate:ma((0,N.defineMessage)({id:"admin.environment.notifications.feedbackEmail.required",defaultMessage:'"Notification From Address" is required'}))},{type:"text",key:"SupportSettings.SupportEmail",label:(0,N.defineMessage)({id:"admin.environment.notifications.supportEmail.label",defaultMessage:"Support Email Address:"}),placeholder:(0,N.defineMessage)({id:"admin.environment.notifications.supportAddress.placeholder",defaultMessage:'Ex: "support@yourcompany.com", "admin@yourcompany.com"'}),help_text:(0,N.defineMessage)({id:"admin.environment.notifications.supportEmail.help",defaultMessage:"Email address displayed on support emails."}),isDisabled:zs(da(M.SITE.CUSTOMIZATION)),validate:ma((0,N.defineMessage)({id:"admin.environment.notifications.supportEmail.required",defaultMessage:'"Support Email Address" is required'}))},{type:"text",key:"EmailSettings.ReplyToAddress",label:(0,N.defineMessage)({id:"admin.environment.notifications.replyToAddress.label",defaultMessage:"Notification Reply-To Address:"}),placeholder:(0,N.defineMessage)({id:"admin.environment.notifications.replyToAddress.placeholder",defaultMessage:'Ex: "mattermost@yourcompany.com", "admin@yourcompany.com"'}),help_text:(0,N.defineMessage)({id:"admin.environment.notifications.replyToAddress.help",defaultMessage:"Email address used in the Reply-To header when sending notification emails from Mattermost."}),isDisabled:Ys(zs(da(M.SITE.NOTIFICATIONS)),Qs("EmailSettings.SendEmailNotifications"))},{type:"text",key:"EmailSettings.FeedbackOrganization",label:(0,N.defineMessage)({id:"admin.environment.notifications.feedbackOrganization.label",defaultMessage:"Notification Footer Mailing Address:"}),placeholder:(0,N.defineMessage)({id:"admin.environment.notifications.feedbackOrganization.placeholder",defaultMessage:'Ex: "© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA"'}),help_text:(0,N.defineMessage)({id:"admin.environment.notifications.feedbackOrganization.help",defaultMessage:'Organization name and address displayed on email notifications from Mattermost, such as "© ABC Corporation, 565 Knight Way, Palo Alto, California, 94305, USA". If the field is left empty, the organization name and address will not be displayed.'}),isDisabled:Ys(zs(da(M.SITE.NOTIFICATIONS)),Qs("EmailSettings.SendEmailNotifications"))},{type:"dropdown",key:"EmailSettings.PushNotificationContents",label:(0,N.defineMessage)({id:"admin.environment.notifications.pushContents.label",defaultMessage:"Push Notification Contents:"}),help_text:(0,N.defineMessage)({id:"admin.environment.notifications.pushContents.help",defaultMessage:"**Generic description with only sender name** - Includes only the name of the person who sent the message in push notifications, with no information about channel name or message contents. **Generic description with sender and channel names** - Includes the name of the person who sent the message and the channel it was sent in, but not the message contents. **Full message content sent in the notification payload** - Includes the message contents in the push notification payload that is relayed through Apple's Push Notification Service (APNS) or Google's Firebase Cloud Messaging (FCM). It is **highly recommended** this option only be used with an \"https\" protocol to encrypt the connection and protect confidential information sent in messages."}),help_text_markdown:!0,options:[{value:"generic_no_channel",display_name:(0,N.defineMessage)({id:"admin.environment.notifications.pushContents.genericNoChannel",defaultMessage:"Generic description with only sender name"})},{value:"generic",display_name:(0,N.defineMessage)({id:"admin.environment.notifications.pushContents.generic",defaultMessage:"Generic description with sender and channel names"})},{value:"full",display_name:(0,N.defineMessage)({id:"admin.environment.notifications.pushContents.full",defaultMessage:"Full message content sent in the notification payload"})}],isHidden:aa("IDLoadedPushNotifications"),isDisabled:zs(da(M.SITE.NOTIFICATIONS))},{type:"dropdown",key:"EmailSettings.PushNotificationContents",label:(0,N.defineMessage)({id:"admin.environment.notifications.pushContents.label",defaultMessage:"Push Notification Contents:"}),help_text:(0,N.defineMessage)({id:"admin.environment.notifications.pushContents.withIdLoaded.help",defaultMessage:"**Generic description with only sender name** - Includes only the name of the person who sent the message in push notifications, with no information about channel name or message contents. **Generic description with sender and channel names** - Includes the name of the person who sent the message and the channel it was sent in, but not the message contents. **Full message content sent in the notification payload** - Includes the message contents in the push notification payload that is relayed through Apple's Push Notification Service (APNS) or Google's Firebase Cloud Messaging (FCM). It is **highly recommended** this option only be used with an \"https\" protocol to encrypt the connection and protect confidential information sent in messages. **Full message content fetched from the server on receipt** - The notification payload relayed through APNS or FCM contains no message content, instead it contains a unique message ID used to fetch message content from the server when a push notification is received by a device. If the server cannot be reached, a generic notification will be displayed."}),help_text_markdown:!0,options:[{value:"generic_no_channel",display_name:(0,N.defineMessage)({id:"admin.environment.notifications.pushContents.genericNoChannel",defaultMessage:"Generic description with only sender name"})},{value:"generic",display_name:(0,N.defineMessage)({id:"admin.environment.notifications.pushContents.generic",defaultMessage:"Generic description with sender and channel names"})},{value:"full",display_name:(0,N.defineMessage)({id:"admin.environment.notifications.pushContents.full",defaultMessage:"Full message content sent in the notification payload"})},{value:"id_loaded",display_name:(0,N.defineMessage)({id:"admin.environment.notifications.pushContents.idLoaded",defaultMessage:"Full message content fetched from the server on receipt"})}],isHidden:zs(aa("IDLoadedPushNotifications")),isDisabled:zs(da(M.SITE.NOTIFICATIONS))},{type:"bool",key:"MetricsSettings.EnableNotificationMetrics",label:(0,N.defineMessage)({id:"admin.metrics.enableNotificationMetricsTitle",defaultMessage:"Enable Notification Monitoring:"}),help_text:(0,N.defineMessage)({id:"admin.metrics.enableNotificationMetricsDescription",defaultMessage:"When true, Mattermost will enable notification data collection for web and Desktop App users."}),isDisabled:Ys($s("MetricsSettings","Enable")),isHidden:$s("FeatureFlags","NotificationMonitoring")}]}},announcement_banner:{url:"site_config/announcement_banner",title:(0,N.defineMessage)({id:"admin.sidebar.announcement",defaultMessage:"System-wide Notifications"}),isHidden:Ys(zs(aa("Announcement")),zs(oa(M.SITE.ANNOUNCEMENT_BANNER))),schema:{id:"AnnouncementSettings",name:(0,N.defineMessage)({id:"admin.site.announcementBanner",defaultMessage:"System-wide Notifications"}),settings:[{type:"bool",key:"AnnouncementSettings.EnableBanner",label:(0,N.defineMessage)({id:"admin.customization.announcement.enableBannerTitle",defaultMessage:"Enable System-wide Notifications:"}),help_text:(0,N.defineMessage)({id:"admin.customization.announcement.enableBannerDesc",defaultMessage:"Enable an announcement banner across all teams."}),isDisabled:zs(da(M.SITE.ANNOUNCEMENT_BANNER))},{type:"text",key:"AnnouncementSettings.BannerText",label:(0,N.defineMessage)({id:"admin.customization.announcement.bannerTextTitle",defaultMessage:"Banner Text:"}),help_text:(0,N.defineMessage)({id:"admin.customization.announcement.bannerTextDesc",defaultMessage:"Text that will appear in the announcement banner."}),isDisabled:Ys(zs(da(M.SITE.ANNOUNCEMENT_BANNER)),Qs("AnnouncementSettings.EnableBanner"))},{type:"color",key:"AnnouncementSettings.BannerColor",label:(0,N.defineMessage)({id:"admin.customization.announcement.bannerColorTitle",defaultMessage:"Banner Color:"}),isDisabled:Ys(zs(da(M.SITE.ANNOUNCEMENT_BANNER)),Qs("AnnouncementSettings.EnableBanner"))},{type:"color",key:"AnnouncementSettings.BannerTextColor",label:(0,N.defineMessage)({id:"admin.customization.announcement.bannerTextColorTitle",defaultMessage:"Banner Text Color:"}),isDisabled:Ys(zs(da(M.SITE.ANNOUNCEMENT_BANNER)),Qs("AnnouncementSettings.EnableBanner"))},{type:"bool",key:"AnnouncementSettings.AllowBannerDismissal",label:(0,N.defineMessage)({id:"admin.customization.announcement.allowBannerDismissalTitle",defaultMessage:"Allow Banner Dismissal:"}),help_text:(0,N.defineMessage)({id:"admin.customization.announcement.allowBannerDismissalDesc",defaultMessage:"When true, users can dismiss the banner until its next update. When false, the banner is permanently visible until it is turned off by the System Admin."}),isDisabled:Ys(zs(da(M.SITE.ANNOUNCEMENT_BANNER)),Qs("AnnouncementSettings.EnableBanner"))}]},restrictedIndicator:ga()},announcement_banner_feature_discovery:{url:"site_config/announcement_banner",isDiscovery:!0,title:(0,N.defineMessage)({id:"admin.sidebar.announcement",defaultMessage:"System-wide Notifications"}),isHidden:Ys(aa("Announcement")),schema:{id:"AnnouncementSettings",name:(0,N.defineMessage)({id:"admin.site.announcementBanner",defaultMessage:"System-wide Notifications"}),settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"announcement_banner",minimumSKURequiredForFeature:mt.gS.Professional,title:(0,N.defineMessage)({id:"admin.announcement_banner_feature_discovery.title",defaultMessage:"Create custom announcement banners with Mattermost Professional"}),copy:(0,N.defineMessage)({id:"admin.announcement_banner_feature_discovery.copy",defaultMessage:"Create announcement banners to notify all members of important information."}),learnMoreURL:"https://docs.mattermost.com/administration/announcement-banner.html",featureDiscoveryImage:T().createElement(Nd,{width:294,height:170})}),key:"AnnouncementBannerFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0)},emoji:{url:"site_config/emoji",title:(0,N.defineMessage)({id:"admin.sidebar.emoji",defaultMessage:"Emoji"}),isHidden:zs(oa(M.SITE.EMOJI)),schema:{id:"EmojiSettings",name:(0,N.defineMessage)({id:"admin.site.emoji",defaultMessage:"Emoji"}),settings:[{type:"bool",key:"ServiceSettings.EnableEmojiPicker",label:(0,N.defineMessage)({id:"admin.customization.enableEmojiPickerTitle",defaultMessage:"Enable Emoji Picker:"}),help_text:(0,N.defineMessage)({id:"admin.customization.enableEmojiPickerDesc",defaultMessage:"The emoji picker allows users to select emoji to add as reactions or use in messages. Enabling the emoji picker with a large number of custom emoji may slow down performance."}),isDisabled:zs(da(M.SITE.EMOJI))},{type:"bool",key:"ServiceSettings.EnableCustomEmoji",label:(0,N.defineMessage)({id:"admin.customization.enableCustomEmojiTitle",defaultMessage:"Enable Custom Emoji:"}),help_text:(0,N.defineMessage)({id:"admin.customization.enableCustomEmojiDesc",defaultMessage:"Enable users to create custom emoji for use in messages. When enabled, custom emoji settings can be accessed in Channels through the emoji picker."}),isDisabled:zs(da(M.SITE.EMOJI))}]}},posts:{url:"site_config/posts",title:(0,N.defineMessage)({id:"admin.sidebar.posts",defaultMessage:"Posts"}),isHidden:zs(oa(M.SITE.POSTS)),schema:{id:"PostSettings",name:(0,N.defineMessage)({id:"admin.site.posts",defaultMessage:"Posts"}),settings:[{type:"bool",key:"ServiceSettings.ThreadAutoFollow",label:(0,N.defineMessage)({id:"admin.experimental.threadAutoFollow.title",defaultMessage:"Automatically Follow Threads"}),help_text:(0,N.defineMessage)({id:"admin.experimental.threadAutoFollow.desc",defaultMessage:"This setting must be enabled in order to enable Threaded Discussions. When enabled, threads a user starts, participates in, or is mentioned in are automatically followed. A new `Threads` table is added in the database that tracks threads and thread participants, and a `ThreadMembership` table tracks followed threads for each user and the read or unread state of each followed thread. When false, all backend operations to support Threaded Discussions are disabled."}),help_text_markdown:!0,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES)),isHidden:aa("Cloud")},{type:"dropdown",key:"ServiceSettings.CollapsedThreads",label:(0,N.defineMessage)({id:"admin.experimental.collapsedThreads.title",defaultMessage:"Threaded Discussions"}),help_text:(0,N.defineMessage)({id:"admin.experimental.collapsedThreads.desc",defaultMessage:"When enabled (default off), users must enable Threaded Discussions in Settings. When disabled, users cannot access Threaded Discussions. Please review our <linkKnownIssues>documentation for known issues</linkKnownIssues> and help provide feedback in our <linkCommunityChannel>Community Channel</linkCommunityChannel>."}),help_text_values:{linkKnownIssues:e=>T().createElement(wt.A,{location:"admin_console",href:"https://support.mattermost.com/hc/en-us/articles/4413183568276"},e),linkCommunityChannel:e=>T().createElement(wt.A,{location:"admin_console",href:"https://community-daily.mattermost.com/core/channels/folded-reply-threads"},e)},help_text_markdown:!1,options:[{value:"disabled",display_name:(0,N.defineMessage)({id:"admin.experimental.collapsedThreads.off",defaultMessage:"Disabled"})},{value:"default_off",display_name:(0,N.defineMessage)({id:"admin.experimental.collapsedThreads.default_off",defaultMessage:"Enabled (Default Off)"})},{value:"default_on",display_name:(0,N.defineMessage)({id:"admin.experimental.collapsedThreads.default_on",defaultMessage:"Enabled (Default On)"})},{value:"always_on",display_name:(0,N.defineMessage)({id:"admin.experimental.collapsedThreads.always_on",defaultMessage:"Always On"})}],isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.PostPriority",label:(0,N.defineMessage)({id:"admin.posts.postPriority.title",defaultMessage:"Message Priority"}),help_text:(0,N.defineMessage)({id:"admin.posts.postPriority.desc",defaultMessage:"When enabled, users can configure a visual indicator to communicate messages that are important or urgent. Learn more about message priority in our <link>documentation</link>."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:"https://mattermost.com/pl/message-priority/"},e)},help_text_markdown:!1,isDisabled:zs(da(M.SITE.POSTS))},{type:"bool",key:"ServiceSettings.AllowPersistentNotifications",label:(0,N.defineMessage)({id:"admin.posts.persistentNotifications.title",defaultMessage:"Persistent Notifications"}),help_text:(0,N.defineMessage)({id:"admin.posts.persistentNotifications.desc",defaultMessage:"When enabled, users can trigger repeating notifications for the recipients of urgent messages. Learn more about message priority and persistent notifications in our <link>documentation</link>."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:"https://mattermost.com/pl/message-priority/"},e)},help_text_markdown:!1,isDisabled:zs(da(M.SITE.POSTS)),isHidden:$s("ServiceSettings","PostPriority")},{type:"bool",key:"ServiceSettings.ScheduledPosts",label:(0,N.defineMessage)({id:"admin.posts.scheduledPosts.title",defaultMessage:"Scheduled Posts"}),help_text:(0,N.defineMessage)({id:"admin.posts.scheduledPosts.description",defaultMessage:"When enabled, users can schedule and send messages in the future."}),help_text_markdown:!1,isDisabled:zs(da(M.SITE.POSTS)),isHidden:zs(ta)},{type:"number",key:"ServiceSettings.PersistentNotificationMaxRecipients",label:(0,N.defineMessage)({id:"admin.posts.persistentNotificationsMaxRecipients.title",defaultMessage:"Maximum number of recipients for persistent notifications"}),help_text:(0,N.defineMessage)({id:"admin.posts.persistentNotificationsMaxRecipients.desc",defaultMessage:"Configure the maximum number of recipients to which users may send persistent notifications. Learn more about message priority and persistent notifications in our <link>documentation</link>."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:"https://mattermost.com/pl/message-priority/"},e)},help_text_markdown:!1,isDisabled:zs(da(M.SITE.POSTS)),isHidden:Ys($s("ServiceSettings","PostPriority"),$s("ServiceSettings","AllowPersistentNotifications"))},{type:"number",key:"ServiceSettings.PersistentNotificationIntervalMinutes",label:(0,N.defineMessage)({id:"admin.posts.persistentNotificationsInterval.title",defaultMessage:"Frequency of persistent notifications"}),help_text:(0,N.defineMessage)({id:"admin.posts.persistentNotificationsInterval.desc",defaultMessage:"Configure the number of minutes between repeated notifications for urgent messages send with persistent notifications. Learn more about message priority and persistent notifications in our <link>documentation</link>."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:"https://mattermost.com/pl/message-priority/"},e)},help_text_markdown:!1,isDisabled:zs(da(M.SITE.POSTS)),isHidden:Ys($s("ServiceSettings","PostPriority"),$s("ServiceSettings","AllowPersistentNotifications")),validate:ua(2,(0,N.defineMessage)({id:"admin.posts.persistentNotificationsInterval.minValue",defaultMessage:"Frequency cannot not be set to less than 2 minutes"}))},{type:"number",key:"ServiceSettings.PersistentNotificationMaxCount",label:(0,N.defineMessage)({id:"admin.posts.persistentNotificationsMaxCount.title",defaultMessage:"Total number of persistent notification per post"}),help_text:(0,N.defineMessage)({id:"admin.posts.persistentNotificationsMaxCount.desc",defaultMessage:"Configure the maximum number of times users may receive persistent notifications. Learn more about message priority and persistent notifications in our <link>documentation</link>."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:"https://mattermost.com/pl/message-priority/"},e)},help_text_markdown:!1,isDisabled:zs(da(M.SITE.POSTS)),isHidden:Ys($s("ServiceSettings","PostPriority"),$s("ServiceSettings","AllowPersistentNotifications"))},{type:"bool",key:"ServiceSettings.AllowPersistentNotificationsForGuests",label:(0,N.defineMessage)({id:"admin.posts.persistentNotificationsGuests.title",defaultMessage:"Allow guests to send persistent notifications"}),help_text:(0,N.defineMessage)({id:"admin.posts.persistentNotificationsGuests.desc",defaultMessage:"Whether a guest is able to require persistent notifications. Learn more about message priority and persistent notifications in our <link>documentation</link>."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:"https://mattermost.com/pl/message-priority/"},e)},help_text_markdown:!1,isDisabled:zs(da(M.SITE.POSTS)),isHidden:Ys($s("GuestAccountsSettings","Enable"),$s("ServiceSettings","PostPriority"),$s("ServiceSettings","AllowPersistentNotifications"))},{type:"bool",key:"ServiceSettings.EnableLinkPreviews",label:(0,N.defineMessage)({id:"admin.customization.enableLinkPreviewsTitle",defaultMessage:"Enable website link previews:"}),help_text:(0,N.defineMessage)({id:"admin.customization.enableLinkPreviewsDesc",defaultMessage:"Display a preview of website content, image links and YouTube links below the message when available. The server must be connected to the internet and have access through the firewall (if applicable) to the websites from which previews are expected. Users can disable these previews from Settings > Display > Website Link Previews."}),isDisabled:zs(da(M.SITE.POSTS))},{type:"text",key:"ServiceSettings.RestrictLinkPreviews",label:(0,N.defineMessage)({id:"admin.customization.restrictLinkPreviewsTitle",defaultMessage:"Disable website link previews from these domains:"}),help_text:(0,N.defineMessage)({id:"admin.customization.restrictLinkPreviewsDesc",defaultMessage:"Link previews and image link previews will not be shown for the above list of comma-separated domains."}),placeholder:(0,N.defineMessage)({id:"admin.customization.restrictLinkPreviewsExample",defaultMessage:'E.g.: "internal.mycompany.com, images.example.com"'}),isDisabled:Ys(zs(da(M.SITE.POSTS)),$s("ServiceSettings","EnableLinkPreviews"))},{type:"bool",key:"ServiceSettings.EnablePermalinkPreviews",label:(0,N.defineMessage)({id:"admin.customization.enablePermalinkPreviewsTitle",defaultMessage:"Enable message link previews:"}),help_text:(0,N.defineMessage)({id:"admin.customization.enablePermalinkPreviewsDesc",defaultMessage:"When enabled, links to Mattermost messages will generate a preview for any users that have access to the original message. Please review our <link>documentation</link> for details."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.SHARE_LINKS_TO_MESSAGES},e)},help_text_markdown:!1,isDisabled:zs(da(M.SITE.POSTS))},{type:"bool",key:"ServiceSettings.EnableSVGs",label:(0,N.defineMessage)({id:"admin.customization.enableSVGsTitle",defaultMessage:"Enable SVGs:"}),help_text:(0,N.defineMessage)({id:"admin.customization.enableSVGsDesc",defaultMessage:"Enable previews for SVG file attachments and allow them to appear in messages. Enabling SVGs is not recommended in environments where not all users are trusted."}),isDisabled:zs(da(M.SITE.POSTS))},{type:"bool",key:"ServiceSettings.EnableLatex",label:(0,N.defineMessage)({id:"admin.customization.enableLatexTitle",defaultMessage:"Enable Latex Rendering:"}),help_text:(0,N.defineMessage)({id:"admin.customization.enableLatexDesc",defaultMessage:"Enable rendering of Latex in code blocks. If false, Latex code will be highlighted only. Enabling Latex is not recommended in environments where not all users are trusted."}),isDisabled:zs(da(M.SITE.POSTS))},{type:"bool",key:"ServiceSettings.EnableInlineLatex",label:(0,N.defineMessage)({id:"admin.customization.enableInlineLatexTitle",defaultMessage:"Enable Inline Latex Rendering:"}),help_text:(0,N.defineMessage)({id:"admin.customization.enableInlineLatexDesc",defaultMessage:"Enable rendering of inline Latex code. If false, Latex can only be rendered in a code block using syntax highlighting. Please review our <link>documentation</link> for details about text formatting."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.FORMAT_MESSAGES},e)},help_text_markdown:!1,isDisabled:Ys(zs(da(M.SITE.POSTS)),Qs("ServiceSettings.EnableLatex"))},{type:"custom",component:fl,key:"DisplaySettings.CustomURLSchemes",isDisabled:zs(da(M.SITE.POSTS))},{type:"number",key:"DisplaySettings.MaxMarkdownNodes",label:(0,N.defineMessage)({id:"admin.customization.maxMarkdownNodesTitle",defaultMessage:"Max Markdown Nodes:"}),help_text:(0,N.defineMessage)({id:"admin.customization.maxMarkdownNodesDesc",defaultMessage:"When rendering Markdown text in the mobile app, controls the maximum number of Markdown elements (eg. emojis, links, table cells, etc) that can be in a single piece of text. If set to 0, a default limit will be used."}),isDisabled:zs(da(M.SITE.POSTS))},{type:"text",key:"ServiceSettings.GoogleDeveloperKey",label:(0,N.defineMessage)({id:"admin.service.googleTitle",defaultMessage:"Google API Key:"}),placeholder:(0,N.defineMessage)({id:"admin.service.googleExample",defaultMessage:'E.g.: "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QV"'}),help_text:(0,N.defineMessage)({id:"admin.service.googleDescription",defaultMessage:"Set this key to enable the display of titles for embedded YouTube video previews. Without the key, YouTube previews will still be created based on hyperlinks appearing in messages or comments but they will not show the video title. View a <link>Google Developers Tutorial</link> for instructions on how to obtain a key and add YouTube Data API v3 as a service to your key."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:"https://www.youtube.com/watch?v=Im69kzhpR3I"},e)},help_text_markdown:!1,isHidden:Xs("ExperimentalSettings","RestrictSystemAdmin"),isDisabled:zs(da(M.SITE.POSTS))},{type:"bool",key:"ServiceSettings.AllowSyncedDrafts",label:(0,N.defineMessage)({id:"admin.customization.allowSyncedDrafts",defaultMessage:"Enable server syncing of message drafts:"}),help_text:(0,N.defineMessage)({id:"admin.customization.allowSyncedDraftsDesc",defaultMessage:"When enabled, users message drafts will sync with the server so they can be accessed from any device. Users may opt out of this behaviour in Account settings."}),help_text_markdown:!1},{type:"number",key:"ServiceSettings.UniqueEmojiReactionLimitPerPost",label:(0,N.defineMessage)({id:"admin.customization.uniqueEmojiReactionLimitPerPost",defaultMessage:"Unique Emoji Reaction Limit:"}),placeholder:(0,N.defineMessage)({id:"admin.customization.uniqueEmojiReactionLimitPerPostPlaceholder",defaultMessage:"E.g.: 25"}),help_text:(0,N.defineMessage)({id:"admin.customization.uniqueEmojiReactionLimitPerPostDesc",defaultMessage:"The number of unique emoji reactions that can be added to a post. Increasing this limit could lead to poor client performance. Maximum is 500."}),help_text_markdown:!1,validate:e=>{const t=(s=500,a=(0,N.defineMessage)({id:"admin.customization.uniqueEmojiReactionLimitPerPost.maxValue",defaultMessage:"Cannot increase the limit to a value above 500."}),e=>new Vs(e<=s,a))(e);var s,a;if(!t.isValid())return t;const i=ua(0,(0,N.defineMessage)({id:"admin.customization.uniqueEmojiReactionLimitPerPost.minValue",defaultMessage:"Cannot decrease the limit below 0."}))(e);return i.isValid()?new Vs(!0,""):i}}]}},content_flagging:{url:"site_config/content_flagging",title:(0,N.defineMessage)({id:"admin.sidebar.contentFlagging",defaultMessage:"Content Flagging"}),isHidden:Ys(zs(na(mt.gS.EnterpriseAdvanced)),zs(oa(M.USER_MANAGEMENT.SYSTEM_ROLES)),$s("FeatureFlags","ContentFlagging")),isDisabled:zs(da(M.USER_MANAGEMENT.SYSTEM_ROLES)),restrictedIndicator:ga(!1,mt.gS.EnterpriseAdvanced),schema:{id:"ContentFlaggingSettings",component:function(){const[e,t]=(0,A.useState)(!1),[s,a]=(0,A.useState)(!1),[i,n]=(0,A.useState)(""),[r,o]=(0,A.useState)();(0,A.useEffect)((()=>{r||(async()=>{try{const e=await O.mT.getAdminContentFlaggingConfig();e&&o(e)}catch(e){console.error(e)}})()}),[r]);const l=(0,A.useCallback)(((e,t)=>{const s=function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?rt(Object(s),!0).forEach((function(t){ot(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):rt(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}({},r);switch(e){case"EnableContentFlagging":s.EnableContentFlagging=t;break;case"ReviewerSettings":s.ReviewerSettings=t;break;case"NotificationSettings":s.NotificationSettings=t;break;case"AdditionalSettings":s.AdditionalSettings=t}o(s),a(!0)}),[r]),d=(0,A.useCallback)((async()=>{if(r){t(!0);try{await O.mT.saveContentFlaggingConfig(r),a(!1),n("")}catch(e){console.error(e),e&&n(e.message)}finally{t(!1)}}}),[r]);return r?T().createElement("div",{className:"wrapper--fixed ContentFlaggingSettings"},T().createElement(nt,null,T().createElement("div",null,T().createElement(N.FormattedMessage,{id:"admin.contentFlagging.title",defaultMessage:"Content Flagging"}))),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-console__content"},T().createElement("div",{className:"admin-console__setting-group"},T().createElement(j,{id:"EnableContentFlagging",label:T().createElement(N.FormattedMessage,{id:"admin.content_flagging.enableTitle",defaultMessage:"Enable content flagging"}),value:(null==r?void 0:r.EnableContentFlagging)||!1,setByEnv:!1,onChange:l,helpText:""})),T().createElement(ze,{id:"ReviewerSettings",onChange:l,value:r.ReviewerSettings,disabled:!r.EnableContentFlagging}),T().createElement(Je,{id:"NotificationSettings",onChange:l,value:r.NotificationSettings,disabled:!r.EnableContentFlagging}),T().createElement(ae,{id:"AdditionalSettings",onChange:l,value:r.AdditionalSettings,disabled:!r.EnableContentFlagging}))),T().createElement(it,{saveNeeded:s,saving:e,onClick:d,cancelLink:"",serverError:i})):null}}},wrangler:{url:"site_config/wrangler",title:(0,N.defineMessage)({id:"admin.sidebar.move_thread",defaultMessage:"Move Thread (Beta)"}),isHidden:Ys(zs(oa(M.SITE.POSTS)),$s("FeatureFlags","MoveThreadsEnabled"),zs(ta)),schema:{id:"WranglerSettings",name:(0,N.defineMessage)({id:"admin.site.move_thread",defaultMessage:"Move Thread (Beta)"}),settings:[{type:"roles",multiple:!0,key:"WranglerSettings.PermittedWranglerRoles",label:(0,N.defineMessage)({id:"admin.experimental.PermittedMoveThreadRoles.title",defaultMessage:"Permitted Roles"}),help_text:(0,N.defineMessage)({id:"admin.experimental.PermittedMoveThreadRoles.desc",defaultMessage:"Choose who is allowed to move threads to other channels based on roles. (Other permissions below still apply)."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"text",key:"WranglerSettings.AllowedEmailDomain",multiple:!0,label:(0,N.defineMessage)({id:"admin.experimental.allowedEmailDomain.title",defaultMessage:"Allowed Email Domain"}),help_text:(0,N.defineMessage)({id:"admin.experimental.allowedEmailDomain.desc",defaultMessage:"(Optional) When set, users must have an email ending in this domain to move threads. Multiple domains can be specified by separating them with commas."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"number",key:"WranglerSettings.MoveThreadMaxCount",label:(0,N.defineMessage)({id:"admin.experimental.moveThreadMaxCount.title",defaultMessage:"Max Thread Count Move Size"}),help_text:(0,N.defineMessage)({id:"admin.experimental.moveThreadMaxCount.desc",defaultMessage:"The maximum number of messages in a thread that the plugin is allowed to move. Leave empty for unlimited messages."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"WranglerSettings.MoveThreadToAnotherTeamEnable",label:(0,N.defineMessage)({id:"admin.experimental.moveThreadToAnotherTeamEnable.title",defaultMessage:"Enable Moving Threads To Different Teams"}),help_text:(0,N.defineMessage)({id:"admin.experimental.moveThreadToAnotherTeamEnable.desc",defaultMessage:"Control whether Wrangler is permitted to move message threads from one team to another or not."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"WranglerSettings.MoveThreadFromPrivateChannelEnable",label:(0,N.defineMessage)({id:"admin.experimental.moveThreadFromPrivateChannelEnable.title",defaultMessage:"Enable Moving Threads From Private Channels"}),help_text:(0,N.defineMessage)({id:"admin.experimental.moveThreadFromPrivateChannelEnable.desc",defaultMessage:"Control whether Wrangler is permitted to move message threads from private channels or not."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"WranglerSettings.MoveThreadFromDirectMessageChannelEnable",label:(0,N.defineMessage)({id:"admin.experimental.moveThreadFromDirectMessageChannelEnable.title",defaultMessage:"Enable Moving Threads From Direct Message Channels"}),help_text:(0,N.defineMessage)({id:"admin.experimental.moveThreadFromDirectMessageChannelEnable.desc",defaultMessage:"Control whether Wrangler is permitted to move message threads from direct message channels or not."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"WranglerSettings.MoveThreadFromGroupMessageChannelEnable",label:(0,N.defineMessage)({id:"admin.experimental.moveThreadFromGroupMessageChannelEnable.title",defaultMessage:"Enable Moving Threads From Group Message Channels"}),help_text:(0,N.defineMessage)({id:"admin.experimental.moveThreadFromGroupMessageChannelEnable.desc",defaultMessage:"Control whether Wrangler is permitted to move message threads from group message channels or not."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))}]}},file_sharing_downloads:{url:"site_config/file_sharing_downloads",title:(0,N.defineMessage)({id:"admin.sidebar.fileSharingDownloads",defaultMessage:"File Sharing and Downloads"}),isHidden:Ys(zs(oa(M.SITE.FILE_SHARING_AND_DOWNLOADS))),schema:{id:"FileSharingDownloads",name:(0,N.defineMessage)({id:"admin.site.fileSharingDownloads",defaultMessage:"File Sharing and Downloads"}),settings:[{type:"bool",key:"FileSettings.EnableFileAttachments",label:(0,N.defineMessage)({id:"admin.file.enableFileAttachments",defaultMessage:"Allow File Sharing:"}),help_text:(0,N.defineMessage)({id:"admin.file.enableFileAttachmentsDesc",defaultMessage:"When false, disables file sharing on the server. All file and image uploads on messages are forbidden across clients and devices, including mobile."}),isDisabled:zs(da(M.SITE.FILE_SHARING_AND_DOWNLOADS))},{type:"bool",key:"FileSettings.EnableMobileUpload",label:(0,N.defineMessage)({id:"admin.file.enableMobileUploadTitle",defaultMessage:"Allow File Uploads on Mobile:"}),help_text:(0,N.defineMessage)({id:"admin.file.enableMobileUploadDesc",defaultMessage:"When false, disables file uploads on mobile apps. If Allow File Sharing is set to true, users can still upload files from a mobile web browser."}),isHidden:zs(aa("Compliance")),isDisabled:zs(da(M.SITE.FILE_SHARING_AND_DOWNLOADS))},{type:"bool",key:"FileSettings.EnableMobileDownload",label:(0,N.defineMessage)({id:"admin.file.enableMobileDownloadTitle",defaultMessage:"Allow File Downloads on Mobile:"}),help_text:(0,N.defineMessage)({id:"admin.file.enableMobileDownloadDesc",defaultMessage:"When false, disables file downloads on mobile apps. Users can still download files from a mobile web browser."}),isHidden:zs(aa("Compliance")),isDisabled:zs(da(M.SITE.FILE_SHARING_AND_DOWNLOADS))}]}},public_links:{url:"site_config/public_links",title:(0,N.defineMessage)({id:"admin.sidebar.publicLinks",defaultMessage:"Public Links"}),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.SITE.PUBLIC_LINKS))),schema:{id:"PublicLinkSettings",name:(0,N.defineMessage)({id:"admin.site.public_links",defaultMessage:"Public Links"}),settings:[{type:"bool",key:"FileSettings.EnablePublicLink",label:(0,N.defineMessage)({id:"admin.image.shareTitle",defaultMessage:"Enable Public File Links: "}),help_text:(0,N.defineMessage)({id:"admin.image.shareDescription",defaultMessage:"Allow users to share public links to files and images."}),isDisabled:zs(da(M.SITE.PUBLIC_LINKS))},{type:"generated",key:"FileSettings.PublicLinkSalt",label:(0,N.defineMessage)({id:"admin.image.publicLinkTitle",defaultMessage:"Public Link Salt:"}),help_text:(0,N.defineMessage)({id:"admin.image.publicLinkDescription",defaultMessage:'32-character salt added to signing of public links. Randomly generated on install. Select "Regenerate" to create new salt.'}),isDisabled:zs(da(M.SITE.PUBLIC_LINKS))}]}},notices:{url:"site_config/notices",title:(0,N.defineMessage)({id:"admin.sidebar.notices",defaultMessage:"Notices"}),isHidden:zs(oa(M.SITE.NOTICES)),schema:{id:"NoticesSettings",name:(0,N.defineMessage)({id:"admin.site.notices",defaultMessage:"Notices"}),settings:[{type:"bool",key:"AnnouncementSettings.AdminNoticesEnabled",label:(0,N.defineMessage)({id:"admin.notices.enableAdminNoticesTitle",defaultMessage:"Enable Admin Notices: "}),help_text:(0,N.defineMessage)({id:"admin.notices.enableAdminNoticesDescription",defaultMessage:"When enabled, System Admins will receive notices about available server upgrades and relevant system administration features. <link>Learn more about notices</link> in our documentation."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.IN_PRODUCT_NOTICES},e)},help_text_markdown:!1,isDisabled:zs(da(M.SITE.NOTICES))},{type:"bool",key:"AnnouncementSettings.UserNoticesEnabled",label:(0,N.defineMessage)({id:"admin.notices.enableEndUserNoticesTitle",defaultMessage:"Enable End User Notices: "}),help_text:(0,N.defineMessage)({id:"admin.notices.enableEndUserNoticesDescription",defaultMessage:"When enabled, all users will receive notices about available client upgrades and relevant end user features to improve user experience. <link>Learn more about notices</link> in our documentation."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.IN_PRODUCT_NOTICES},e)},help_text_markdown:!1,isDisabled:zs(da(M.SITE.NOTICES))}]}},ip_filtering:{url:"site_config/ip_filtering",title:dC.ip_filtering_title,isHidden:zs(Ws(Xs("FeatureFlags","CloudIPFiltering"),na(mt.gS.Enterprise))),isDisabled:zs(da(M.SITE.IP_FILTERING)),searchableStrings:[dC.ip_filtering_title],schema:{id:"IPFiltering",component:()=>{const e=(0,a.useDispatch)(),{formatMessage:t}=(0,N.useIntl)(),[s,i]=(0,A.useState)(null),[n,r]=(0,A.useState)(null),[o,l]=(0,A.useState)(!1),[d,c]=(0,A.useState)(null),[m,u]=(0,A.useState)(!1),[p,g]=(0,A.useState)(!1),[f,E]=(0,A.useState)(""),[b,v]=(0,A.useState)(""),[y,M]=(0,A.useState)(null),_={SAVING_PREVIOUS_CHANGE:t({id:"admin.ip_filtering.saving_previous_change",defaultMessage:"Other changes being applied..."}),SAVING_CHANGES:t({id:"admin.ip_filtering.saving_changes",defaultMessage:"Applying changes..."})},S={SAVING_PREVIOUS_CHANGE:t({id:"admin.ip_filtering.saving_previous_change_description",defaultMessage:"Please wait while changes from another admin are applied."}),SAVING_CHANGES:t({id:"admin.ip_filtering.saving_changes_description",defaultMessage:"Please wait while your changes are applied."})};(0,A.useEffect)((()=>{w(),(0,h.pg)((e=>{i(e),r(e)})),(0,h.nn)((e=>{c(e.ip)}))}),[]),(0,A.useEffect)((()=>{if(null===s||null===n)return;const e=JSON.stringify(s)!==JSON.stringify(n);l(e)}),[s,n]);const C=()=>!p||null==s||!s.length||null!==s&&null!==d&&function(e,t){const s=zc().parse(e);for(const e of t){const t=e.cidr_block,[a,i]=zc().parseCIDR(t);if(s.kind()===a.kind()&&s.match([a,i]))return!0}return!1}(d,s);async function w(){const s=await e((0,Sr.JN)());if(s.data){const{data:a}=s;E(a.state),""===f&&"stable"!==a.state&&(u(!0),v(_.SAVING_PREVIOUS_CHANGE),O(S.SAVING_PREVIOUS_CHANGE)),"stable"!==a.state&&function(){let s=0;const a=setInterval((async()=>{if(s>15)return M(T().createElement(T().Fragment,null,T().createElement(R.AlertOutlineIcon,{size:16})," ",t({id:"admin.ip_filtering.failed_to_fetch_installation_state",defaultMessage:"Failed to fetch your workspace's status. Please try again later or contact support."}))),void clearInterval(a);const i=await e((0,Sr.JN)());if(s++,i.data){const{data:e}=i;"stable"===e.state&&(u(!1),M(null),clearInterval(a)),E(e.state)}}),5e3)}()}}function O(e){M(T().createElement("div",{className:"saving-message-description"},e))}function I(e,t){i((s=>{if(!s)return[e];const a=s.findIndex((e=>e.cidr_block===(null==t?void 0:t.cidr_block)));if(-1===a)return null;const i=[...s];return i[a]=e,i})),l(!0)}function k(t){e((0,Gr.O)(mt.IQ.IP_FILTERING_DELETE_CONFIRMATION_MODAL)),i((e=>{var s;return null!==(s=null==e?void 0:e.filter((e=>e.cidr_block!==t.cidr_block)))&&void 0!==s?s:null})),l(!0)}function P(t){e((0,Gr.O)(mt.IQ.IP_FILTERING_ADD_EDIT_MODAL)),i((e=>[...null!=e?e:[],t])),l(!0)}function x(){E("update-requested"),u(!0),v(_.SAVING_CHANGES),O(S.SAVING_CHANGES),e((0,Gr.O)(mt.IQ.IP_FILTERING_SAVE_CONFIRMATION_MODAL)),(0,h.R6)(null!=s?s:[],(e=>{i(e),r(e),w()}))}return(0,A.useEffect)((()=>{var e;null!=s&&s.length&&g(null!==(e=null==s?void 0:s.some((e=>!0===e.enabled)))&&void 0!==e&&e)}),[s]),(0,A.useEffect)((()=>{i(!1===p?(null==s?void 0:s.map((e=>cm(cm({},e),{},{enabled:!1}))))||[]:(null==s?void 0:s.map((e=>cm(cm({},e),{},{enabled:!0}))))||[])}),[p]),T().createElement("div",{className:"IPFiltering wrapper--fixed"},T().createElement(nt,null,t({id:"admin.ip_filtering.ip_filtering",defaultMessage:"IP Filtering"})),T().createElement("div",{className:"MainPanel admin-console__wrapper"},T().createElement(T().Fragment,null,T().createElement(om,{filterToggle:p,setFilterToggle:g}),null!==s&&null!==d&&p&&T().createElement(nm,{ipFilters:s,currentUsersIP:d,setShowAddModal:function(){e((0,Gr.q)({modalId:mt.IQ.IP_FILTERING_ADD_EDIT_MODAL,dialogType:Wc,dialogProps:{currentIP:d,onSave:P}}))},setEditFilter:function(t){e((0,Gr.q)({modalId:mt.IQ.IP_FILTERING_ADD_EDIT_MODAL,dialogType:Wc,dialogProps:{currentIP:d,onSave:I,existingRange:t}}))},handleConfirmDeleteFilter:function(t){e((0,Gr.q)({modalId:mt.IQ.IP_FILTERING_DELETE_CONFIRMATION_MODAL,dialogType:Yc,dialogProps:{onConfirm:k,filterToDelete:t}}))},currentIPIsInRange:C()}))),T().createElement(it,{saving:m,saveNeeded:o||"stable"!==f,isDisabled:!C()||"stable"!==f,onClick:function(){const a={onConfirm:x};null!=s&&s.length||!p?null!=s&&s.length&&!p||(null==s||!s.length)&&!p?(a.title=t({id:"admin.ip_filtering.disable_ip_filtering",defaultMessage:"Disable IP Filtering"}),a.subtitle=T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.turn_off_ip_filtering",defaultMessage:"Are you sure you want to turn off IP Filtering? <strong>All IP addresses will have access to the workspace.</strong>",values:{strong:e=>T().createElement("strong",null,e)}}),a.buttonText=t({id:"admin.ip_filtering.yes_disable_ip_filtering",defaultMessage:"Yes, disable IP Filtering"}),a.includeDisclaimer=!1):(a.title=t({id:"admin.ip_filtering.apply_ip_filter_changes",defaultMessage:"Apply IP Filter Changes"}),a.subtitle=T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.apply_ip_filter_changes_are_you_sure",defaultMessage:"Are you sure you want to apply these IP Filter changes? <strong>Users with IP addresses outside of the IP ranges provided will no longer have access to the workspace.</strong>",values:{strong:e=>T().createElement("strong",null,e)}}),a.buttonText=t({id:"admin.ip_filtering.apply_changes",defaultMessage:"Yes, apply changes"}),a.includeDisclaimer=!0):(a.title=t({id:"admin.ip_filtering.apply_ip_filter_changes",defaultMessage:"Apply IP Filter Changes"}),a.subtitle=T().createElement(N.FormattedMessage,{id:"admin.ip_filtering.no_filters_added",defaultMessage:"Are you sure you want to apply these IP filter changes? There are currently no filters added, so <strong>all IP addresses will have access to the workspace.</strong>",values:{strong:e=>T().createElement("strong",null,e)}}),a.buttonText=t({id:"admin.ip_filtering.apply_changes",defaultMessage:"Yes, apply changes"}),a.includeDisclaimer=!1),e((0,Gr.q)({modalId:mt.IQ.IP_FILTERING_SAVE_CONFIRMATION_MODAL,dialogType:lm,dialogProps:a}))},serverError:null!==y?y:C()?void 0:T().createElement(T().Fragment,null,T().createElement(R.AlertOutlineIcon,{size:16})," ",t({id:"admin.ip_filtering.error_on_page",defaultMessage:"Your IP address is not included in your filters"})),savingMessage:b,cancelLink:""}))}}},secure_connection_detail:{url:"site_config/secure_connections/:connection_id(create|".concat(ki.Zv,")"),isHidden:zs(Ws(Xs("ConnectedWorkspacesSettings","EnableSharedChannels"),Xs("ConnectedWorkspacesSettings","EnableRemoteClusterService"),aa("SharedChannels"))),schema:{id:"SecureConnectionDetail",component:ff}},secure_connections:{url:"site_config/secure_connections",title:(0,N.defineMessage)({id:"admin.sidebar.secureConnections",defaultMessage:"Connected Workspaces"}),searchableStrings:of,isHidden:zs(Ws(Xs("ConnectedWorkspacesSettings","EnableSharedChannels"),Xs("ConnectedWorkspacesSettings","EnableRemoteClusterService"),aa("SharedChannels"))),schema:{id:"SecureConnections",component:function(){var e;const[t,{loading:s,error:a,fetch:i}]=(()=>{const[e,t]=(0,A.useState)(),[s,a]=(0,A.useState)(!0),{loading:i,error:n}=(e=>{const t=Ug(e);return{error:Bg(e)?e:void 0,loading:t}})(s),r=async()=>{a(!0);try{const e=await O.mT.getRemoteClusters({excludePlugins:!0});t(null!=e&&e.length?e:void 0),a(!1)}catch(e){a(e)}};return(0,A.useEffect)((()=>{r()}),[]),[e,{loading:i,fetch:r,error:n}]})(),n="api.remote_cluster.service_not_enabled.app_error"===(null==a?void 0:a.server_error_id),r=s||n,o=s?T().createElement(Na.A,null):T().createElement(sf,{disabled:r,serviceNotRunning:n});return T().createElement("div",{className:"wrapper--fixed","data-testid":"secureConnectionsSection"},T().createElement(nt,null,T().createElement(N.FormattedMessage,rf.pageTitle)),T().createElement(tf,null,T().createElement(zg,null,T().createElement(Gg,null,T().createElement("hgroup",null,T().createElement(N.FormattedMessage,Object.assign({tagName:jg},rf.title)),T().createElement(N.FormattedMessage,rf.subtitle)),T().createElement(nf,{disabled:r})),null!==(e=null==t?void 0:t.map((e=>T().createElement(Jh,{key:e.remote_id,remoteCluster:e,onDeleteSuccess:i,disabled:r}))))&&void 0!==e?e:o)))}}}}},authentication:{icon:T().createElement(R.ShieldOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,N.defineMessage)({id:"admin.sidebar.authentication",defaultMessage:"Authentication"}),isHidden:zs(la(M.AUTHENTICATION)),subsections:{signup:{url:"authentication/signup",title:(0,N.defineMessage)({id:"admin.sidebar.signup",defaultMessage:"Signup"}),isHidden:zs(oa(M.AUTHENTICATION.SIGNUP)),schema:{id:"SignupSettings",name:(0,N.defineMessage)({id:"admin.authentication.signup",defaultMessage:"Signup"}),settings:[{type:"bool",key:"TeamSettings.EnableUserCreation",label:(0,N.defineMessage)({id:"admin.team.userCreationTitle",defaultMessage:"Enable Account Creation: "}),help_text:(0,N.defineMessage)({id:"admin.team.userCreationDescription",defaultMessage:"When false, the ability to create accounts is disabled, and selecting Create Account displays an error. Applies to Email, OpenID Connect, and OAuth 2.0 user account authentication."}),isDisabled:zs(da(M.AUTHENTICATION.SIGNUP))},{type:"text",key:"TeamSettings.RestrictCreationToDomains",label:(0,N.defineMessage)({id:"admin.team.restrictTitle",defaultMessage:"Restrict new system and team members to specified email domains:"}),help_text:(0,N.defineMessage)({id:"admin.team.restrictDescription",defaultMessage:'New user accounts are restricted to the above specified email domain (e.g. "mattermost.com") or list of comma-separated domains (e.g. "corp.mattermost.com, mattermost.com"). New teams can only be created by users from the above domain(s). This setting only affects email login for users.'}),placeholder:(0,N.defineMessage)({id:"admin.team.restrictExample",defaultMessage:'E.g.: "corp.mattermost.com, mattermost.com"'}),isHidden:Ws(ta,zs(ia("starter"))),isDisabled:zs(da(M.AUTHENTICATION.SIGNUP))},{type:"text",key:"TeamSettings.RestrictCreationToDomains",label:(0,N.defineMessage)({id:"admin.team.restrictTitle",defaultMessage:"Restrict new system and team members to specified email domains:"}),help_text:(0,N.defineMessage)({id:"admin.team.restrictGuestDescription",defaultMessage:'New user accounts are restricted to the above specified email domain (e.g. "mattermost.com") or list of comma-separated domains (e.g. "corp.mattermost.com, mattermost.com"). New teams can only be created by users from the above domain(s). This setting affects email login for users. For Guest users, please add domains under Signup > Guest Access.'}),placeholder:(0,N.defineMessage)({id:"admin.team.restrictExample",defaultMessage:'E.g.: "corp.mattermost.com, mattermost.com"'}),isHidden:Ys(zs(ta),ia("starter")),isDisabled:zs(da(M.AUTHENTICATION.SIGNUP))},{type:"bool",key:"TeamSettings.EnableOpenServer",label:(0,N.defineMessage)({id:"admin.team.openServerTitle",defaultMessage:"Enable Open Server: "}),help_text:(0,N.defineMessage)({id:"admin.team.openServerDescription",defaultMessage:"When true, anyone can sign up for a user account on this server without the need to be invited. Applies to Email-based signups only."}),isDisabled:zs(da(M.AUTHENTICATION.SIGNUP))},{type:"bool",key:"ServiceSettings.EnableEmailInvitations",label:(0,N.defineMessage)({id:"admin.team.emailInvitationsTitle",defaultMessage:"Enable Email Invitations: "}),help_text:(0,N.defineMessage)({id:"admin.team.emailInvitationsDescription",defaultMessage:"When true users can invite others to the system using email."}),isDisabled:zs(da(M.AUTHENTICATION.SIGNUP)),isHidden:aa("Cloud")},{type:"button",key:"InvalidateEmailInvitesButton",action:h.d2,label:(0,N.defineMessage)({id:"admin.team.invalidateEmailInvitesTitle",defaultMessage:"Invalidate pending email invites"}),help_text:(0,N.defineMessage)({id:"admin.team.invalidateEmailInvitesDescription",defaultMessage:"This will invalidate active email invitations that have not been accepted by the user. By default email invitations expire after 48 hours."}),error_message:(0,N.defineMessage)({id:"admin.team.invalidateEmailInvitesFail",defaultMessage:"Unable to invalidate pending email invites: {error}"}),success_message:(0,N.defineMessage)({id:"admin.team.invalidateEmailInvitesSuccess",defaultMessage:"Pending email invitations invalidated successfully"}),isDisabled:zs(da(M.AUTHENTICATION.SIGNUP))}]}},email:{url:"authentication/email",title:(0,N.defineMessage)({id:"admin.sidebar.email",defaultMessage:"Email"}),isHidden:zs(oa(M.AUTHENTICATION.EMAIL)),schema:{id:"EmailSettings",name:(0,N.defineMessage)({id:"admin.authentication.email",defaultMessage:"Email"}),settings:[{type:"bool",key:"EmailSettings.EnableSignUpWithEmail",label:(0,N.defineMessage)({id:"admin.email.allowSignupTitle",defaultMessage:"Enable account creation with email:"}),help_text:(0,N.defineMessage)({id:"admin.email.allowSignupDescription",defaultMessage:"When true, Mattermost allows account creation using email and password. This value should be false only when you want to limit sign up to a single sign-on service like AD/LDAP, SAML or GitLab."}),isDisabled:zs(da(M.AUTHENTICATION.EMAIL))},{type:"bool",key:"EmailSettings.RequireEmailVerification",label:(0,N.defineMessage)({id:"admin.email.requireVerificationTitle",defaultMessage:"Require Email Verification: "}),help_text:(0,N.defineMessage)({id:"admin.email.requireVerificationDescription",defaultMessage:"Typically set to true in production. When true, Mattermost requires email verification after account creation prior to allowing login. Developers may set this field to false to skip sending verification emails for faster development."}),isDisabled:zs(da(M.AUTHENTICATION.EMAIL)),isHidden:aa("Cloud")},{type:"bool",key:"EmailSettings.EnableSignInWithEmail",label:(0,N.defineMessage)({id:"admin.email.allowEmailSignInTitle",defaultMessage:"Enable sign-in with email:"}),help_text:(0,N.defineMessage)({id:"admin.email.allowEmailSignInDescription",defaultMessage:"When true, Mattermost allows users to sign in using their email and password."}),isDisabled:zs(da(M.AUTHENTICATION.EMAIL))},{type:"bool",key:"EmailSettings.EnableSignInWithUsername",label:(0,N.defineMessage)({id:"admin.email.allowUsernameSignInTitle",defaultMessage:"Enable sign-in with username:"}),help_text:(0,N.defineMessage)({id:"admin.email.allowUsernameSignInDescription",defaultMessage:"When true, users with email login can sign in using their username and password. This setting does not affect AD/LDAP login."}),isDisabled:zs(da(M.AUTHENTICATION.EMAIL))}]}},password:{url:"authentication/password",title:(0,N.defineMessage)({id:"admin.sidebar.password",defaultMessage:"Password"}),searchableStrings:Ju,isHidden:zs(oa(M.AUTHENTICATION.PASSWORD)),isDisabled:zs(da(M.AUTHENTICATION.PASSWORD)),schema:{id:"PasswordSettings",component:class extends Ia{constructor(e){super(e),Yu(this,"getConfigFromState",(e=>{var t,s;return e.PasswordSettings&&(e.PasswordSettings.MinimumLength=this.parseIntNonZero(null!==(t=this.state.passwordMinimumLength)&&void 0!==t?t:"",mt.Ay.MIN_PASSWORD_LENGTH),e.PasswordSettings.Lowercase=this.state.passwordLowercase,e.PasswordSettings.Uppercase=this.state.passwordUppercase,e.PasswordSettings.Number=this.state.passwordNumber,e.PasswordSettings.Symbol=this.state.passwordSymbol,e.PasswordSettings.EnableForgotLink=this.state.passwordEnableForgotLink),e.ServiceSettings&&(e.ServiceSettings.MaximumLoginAttempts=this.parseIntNonZero(null!==(s=this.state.maximumLoginAttempts)&&void 0!==s?s:"",mt.Ay.MAXIMUM_LOGIN_ATTEMPTS_DEFAULT)),e})),Yu(this,"getSampleErrorMsg",(()=>this.props.config.PasswordSettings.MinimumLength>mt.Ay.MAX_PASSWORD_LENGTH||this.props.config.PasswordSettings.MinimumLength<mt.Ay.MIN_PASSWORD_LENGTH?T().createElement(N.FormattedMessage,Zu.passwordMinLength):T().createElement(N.FormattedMessage,Object.assign({},Ku(this.state.passwordLowercase,this.state.passwordUppercase,this.state.passwordNumber,this.state.passwordSymbol),{values:{min:this.state.passwordMinimumLength||mt.Ay.MIN_PASSWORD_LENGTH,max:mt.Ay.MAX_PASSWORD_LENGTH}})))),Yu(this,"handleBooleanChange",(e=>(t,s)=>{this.handleChange(e,s)})),Yu(this,"renderSettings",(()=>{var e,t,s,a;return T().createElement(is,null,T().createElement("div",null,T().createElement(ls,{id:"passwordMinimumLength",label:T().createElement(N.FormattedMessage,Zu.minimumLength),placeholder:(0,N.defineMessage)({id:"admin.password.minimumLengthExample",defaultMessage:'E.g.: "5"'}),helpText:T().createElement(N.FormattedMessage,Object.assign({},Zu.minimumLengthDescription,{values:{min:mt.Ay.MIN_PASSWORD_LENGTH,max:mt.Ay.MAX_PASSWORD_LENGTH}})),value:null!==(e=this.state.passwordMinimumLength)&&void 0!==e?e:"",onChange:this.handleChange,setByEnv:this.isSetByEnv("PasswordSettings.MinimumLength"),disabled:this.props.isDisabled}),T().createElement(F,{label:T().createElement(N.FormattedMessage,Zu.passwordRequirements)},T().createElement("ul",{className:"admin-console__checkbox-list"},T().createElement("div",null,T().createElement(ne,{id:"admin.password.lowercase",label:T().createElement(N.FormattedMessage,Zu.lowercase),defaultChecked:this.state.passwordLowercase,onChange:this.handleBooleanChange("passwordLowercase"),setByEnv:this.isSetByEnv("PasswordSettings.Lowercase"),disabled:this.props.isDisabled})),T().createElement("div",null,T().createElement(ne,{id:"admin.password.uppercase",label:T().createElement(N.FormattedMessage,Zu.uppercase),defaultChecked:this.state.passwordUppercase,onChange:this.handleBooleanChange("passwordUppercase"),setByEnv:this.isSetByEnv("PasswordSettings.Uppercase"),disabled:this.props.isDisabled})),T().createElement("div",null,T().createElement(ne,{id:"admin.password.number",label:T().createElement(N.FormattedMessage,Zu.number),defaultChecked:this.state.passwordNumber,onChange:this.handleBooleanChange("passwordNumber"),setByEnv:this.isSetByEnv("PasswordSettings.Number"),disabled:this.props.isDisabled})),T().createElement("div",null,T().createElement(ne,{id:"admin.password.symbol",label:T().createElement(N.FormattedMessage,Zu.symbol),defaultChecked:this.state.passwordSymbol,onChange:this.handleBooleanChange("passwordSymbol"),setByEnv:this.isSetByEnv("PasswordSettings.Symbol"),disabled:this.props.isDisabled}))),T().createElement("div",null,T().createElement("br",null),T().createElement("div",{className:"password-settings__preview-heading"},T().createElement(N.FormattedMessage,Zu.preview)),this.getSampleErrorMsg()))),!(null!==(t=this.props.config.ExperimentalSettings)&&void 0!==t&&t.RestrictSystemAdmin)&&T().createElement(ls,{id:"maximumLoginAttempts",label:T().createElement(N.FormattedMessage,Zu.attemptTitle),placeholder:(0,N.defineMessage)({id:"admin.service.attemptExample",defaultMessage:'E.g.: "10"'}),helpText:T().createElement(N.FormattedMessage,Zu.attemptDescription),value:null!==(s=this.state.maximumLoginAttempts)&&void 0!==s?s:"",onChange:this.handleChange,setByEnv:this.isSetByEnv("ServiceSettings.MaximumLoginAttempts"),disabled:this.props.isDisabled}),T().createElement(j,{id:"passwordEnableForgotLink",label:T().createElement(N.FormattedMessage,{id:"admin.password.enableForgotLink.title",defaultMessage:"Enable Forgot Password Link:"}),helpText:T().createElement(N.FormattedMessage,{id:"admin.password.enableForgotLink.description",defaultMessage:"When true, “Forgot password” link appears on the Mattermost login page, which allows users to reset their password. When false, the link is hidden from users. This link can be customized to redirect to a URL of your choice from <a>Site Configuration > Customization.</a>",values:{a:e=>T().createElement(tt.A,{to:"/admin_console/site_config/customization"},e)}}),value:null!==(a=this.state.passwordEnableForgotLink)&&void 0!==a&&a,setByEnv:!1,onChange:this.handleChange,disabled:this.props.isDisabled}))})),this.state=Object.assign(this.state,{passwordMinimumLength:e.config.PasswordSettings.MinimumLength,passwordLowercase:e.config.PasswordSettings.Lowercase,passwordNumber:e.config.PasswordSettings.Number,passwordUppercase:e.config.PasswordSettings.Uppercase,passwordSymbol:e.config.PasswordSettings.Symbol,passwordEnableForgotLink:e.config.PasswordSettings.EnableForgotLink,maximumLoginAttempts:e.config.ServiceSettings.MaximumLoginAttempts}),this.sampleErrorMsg=T().createElement(N.FormattedMessage,Object.assign({},Ku(e.config.PasswordSettings.Lowercase,e.config.PasswordSettings.Uppercase,e.config.PasswordSettings.Number,e.config.PasswordSettings.Symbol),{values:{min:this.state.passwordMinimumLength||mt.Ay.MIN_PASSWORD_LENGTH,max:mt.Ay.MAX_PASSWORD_LENGTH}}))}getStateFromConfig(e){var t,s,a,i,n,r,o;return{passwordMinimumLength:String(null===(t=e.PasswordSettings)||void 0===t?void 0:t.MinimumLength),passwordLowercase:null===(s=e.PasswordSettings)||void 0===s?void 0:s.Lowercase,passwordNumber:null===(a=e.PasswordSettings)||void 0===a?void 0:a.Number,passwordUppercase:null===(i=e.PasswordSettings)||void 0===i?void 0:i.Uppercase,passwordSymbol:null===(n=e.PasswordSettings)||void 0===n?void 0:n.Symbol,passwordEnableForgotLink:null===(r=e.PasswordSettings)||void 0===r?void 0:r.EnableForgotLink,maximumLoginAttempts:String(null===(o=e.ServiceSettings)||void 0===o?void 0:o.MaximumLoginAttempts)}}renderTitle(){return T().createElement(N.FormattedMessage,Zu.password)}}}},mfa:{url:"authentication/mfa",title:(0,N.defineMessage)({id:"admin.sidebar.mfa",defaultMessage:"MFA"}),isHidden:zs(oa(M.AUTHENTICATION.MFA)),schema:{id:"ServiceSettings",name:(0,N.defineMessage)({id:"admin.authentication.mfa",defaultMessage:"Multi-factor Authentication"}),settings:[{type:"banner",label:(0,N.defineMessage)({id:"admin.mfa.bannerDesc",defaultMessage:"<link>Multi-factor authentication</link> is available for accounts with AD/LDAP or email login. If other login methods are used, MFA should be configured with the authentication provider."}),label_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.MULTI_FACTOR_AUTH},e)},banner_type:"info"},{type:"bool",key:"ServiceSettings.EnableMultifactorAuthentication",label:(0,N.defineMessage)({id:"admin.service.mfaTitle",defaultMessage:"Enable Multi-factor Authentication:"}),help_text:(0,N.defineMessage)({id:"admin.service.mfaDesc",defaultMessage:"When true, users with AD/LDAP or email login can add multi-factor authentication to their account using Google Authenticator."}),isDisabled:zs(da(M.AUTHENTICATION.MFA))},{type:"bool",key:"ServiceSettings.EnforceMultifactorAuthentication",label:(0,N.defineMessage)({id:"admin.service.enforceMfaTitle",defaultMessage:"Enforce Multi-factor Authentication:"}),help_text:(0,N.defineMessage)({id:"admin.service.enforceMfaDesc",defaultMessage:"When true, <link>multi-factor authentication</link> is required for login. New users will be required to configure MFA on signup. Logged in users without MFA configured are redirected to the MFA setup page until configuration is complete.\n \nIf your system has users with login methods other than AD/LDAP and email, MFA must be enforced with the authentication provider outside of Mattermost."}),help_text_markdown:!1,help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.MULTI_FACTOR_AUTH},e)},isHidden:zs(aa("MFA")),isDisabled:Ys(zs(da(M.AUTHENTICATION.MFA)),Qs("ServiceSettings.EnableMultifactorAuthentication"))}]}},ldap:{url:"authentication/ldap",title:(0,N.defineMessage)({id:"admin.sidebar.ldap",defaultMessage:"AD/LDAP"}),isHidden:Ys(zs(aa("LDAP")),zs(oa(M.AUTHENTICATION.LDAP))),schema:{id:"LdapWizard",component:Ym}},ldap_feature_discovery:{url:"authentication/ldap",isDiscovery:!0,title:(0,N.defineMessage)({id:"admin.sidebar.ldap",defaultMessage:"AD/LDAP"}),isHidden:Ys(aa("LDAP")),schema:{id:"LdapSettings",name:(0,N.defineMessage)({id:"admin.authentication.ldap",defaultMessage:"AD/LDAP"}),settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"ldap",minimumSKURequiredForFeature:mt.gS.Professional,title:(0,N.defineMessage)({id:"admin.ldap_feature_discovery.title",defaultMessage:"Integrate Active Directory/LDAP with Mattermost Professional"}),copy:(0,N.defineMessage)({id:"admin.ldap_feature_discovery.copy",defaultMessage:"When you connect Mattermost with your organization's Active Directory/LDAP, users can log in without having to create new usernames and passwords."}),learnMoreURL:"https://www.mattermost.com/docs-adldap/?utm_medium=product&utm_source=product-feature-discovery&utm_content=adldap",featureDiscoveryImage:T().createElement(Yd,{width:276,height:170})}),key:"LDAPFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0)},saml:{url:"authentication/saml",title:(0,N.defineMessage)({id:"admin.sidebar.saml",defaultMessage:"SAML 2.0"}),isHidden:Ys(zs(aa("SAML")),zs(oa(M.AUTHENTICATION.SAML))),schema:{id:"SamlSettings",name:(0,N.defineMessage)({id:"admin.authentication.saml",defaultMessage:"SAML 2.0"}),settings:[{type:"bool",key:"SamlSettings.Enable",label:(0,N.defineMessage)({id:"admin.saml.enableTitle",defaultMessage:"Enable Login With SAML 2.0:"}),help_text:(0,N.defineMessage)({id:"admin.saml.enableDescription",defaultMessage:"When true, Mattermost allows login using SAML 2.0. Please see <link>documentation</link> to learn more about configuring SAML for Mattermost."}),help_text_markdown:!1,help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:"http://docs.mattermost.com/deployment/sso-saml.html"},e)},isDisabled:zs(da(M.AUTHENTICATION.SAML))},{type:"bool",key:"SamlSettings.EnableSyncWithLdap",label:(0,N.defineMessage)({id:"admin.saml.enableSyncWithLdapTitle",defaultMessage:"Enable Synchronizing SAML Accounts With AD/LDAP:"}),help_text:(0,N.defineMessage)({id:"admin.saml.enableSyncWithLdapDescription",defaultMessage:"When true, Mattermost periodically synchronizes SAML user attributes, including user deactivation and removal, from AD/LDAP. Enable and configure synchronization settings at <strong>Authentication > AD/LDAP</strong>. When false, user attributes are updated from SAML during user login. See <link>documentation</link> to learn more."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.SETUP_LDAP},e),strong:e=>T().createElement("strong",null,e)},help_text_markdown:!1,isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"bool",key:"SamlSettings.IgnoreGuestsLdapSync",label:(0,N.defineMessage)({id:"admin.saml.ignoreGuestsLdapSyncTitle",defaultMessage:"Ignore Guest Users when Synchronizing with AD/LDAP"}),help_text:(0,N.defineMessage)({id:"admin.saml.ignoreGuestsLdapSyncDesc",defaultMessage:"When true, Mattermost will ignore Guest Users who are identified by the Guest Attribute, when synchronizing with AD/LDAP for user deactivation and removal and Guest deactivation will need to be managed manually via System Console > Users."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),$s("GuestAccountsSettings","Enable"),Qs("SamlSettings.EnableSyncWithLdap"),Qs("SamlSettings.Enable"))},{type:"bool",key:"SamlSettings.EnableSyncWithLdapIncludeAuth",label:(0,N.defineMessage)({id:"admin.saml.enableSyncWithLdapIncludeAuthTitle",defaultMessage:"Override SAML bind data with AD/LDAP information:"}),help_text:(0,N.defineMessage)({id:"admin.saml.enableSyncWithLdapIncludeAuthDescription",defaultMessage:"When true, Mattermost will override the SAML ID attribute with the AD/LDAP ID attribute if configured or override the SAML Email attribute with the AD/LDAP Email attribute if SAML ID attribute is not present. This will allow you automatically migrate users from Email binding to ID binding to prevent creation of new users when an email address changes for a user. Moving from true to false, will remove the override from happening. <strong>Note:</strong> SAML IDs must match the LDAP IDs to prevent disabling of user accounts. Please review <link>documentation</link> for more information."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.CONFIGURE_OVERRIDE_SAML_BIND_DATA_WITH_LDAP},e),strong:e=>T().createElement("strong",null,e)},help_text_markdown:!1,isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"),Qs("SamlSettings.EnableSyncWithLdap"))},{type:"text",key:"SamlSettings.IdpMetadataURL",label:(0,N.defineMessage)({id:"admin.saml.idpMetadataUrlTitle",defaultMessage:"Identity Provider Metadata URL:"}),help_text:(0,N.defineMessage)({id:"admin.saml.idpMetadataUrlDesc",defaultMessage:"The Metadata URL for the Identity Provider you use for SAML requests"}),placeholder:(0,N.defineMessage)({id:"admin.saml.idpMetadataUrlEx",defaultMessage:'E.g.: "https://idp.example.org/SAML2/saml/metadata"'}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"button",key:"getSamlMetadataFromIDPButton",action:h.mX,label:(0,N.defineMessage)({id:"admin.saml.getSamlMetadataFromIDPUrl",defaultMessage:"Get SAML Metadata from IdP"}),loading:(0,N.defineMessage)({id:"admin.saml.getSamlMetadataFromIDPFetching",defaultMessage:"Fetching..."}),error_message:(0,N.defineMessage)({id:"admin.saml.getSamlMetadataFromIDPFail",defaultMessage:"SAML Metadata URL did not connect and pull data successfully"}),success_message:(0,N.defineMessage)({id:"admin.saml.getSamlMetadataFromIDPSuccess",defaultMessage:"SAML Metadata retrieved successfully. Two fields below have been updated"}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"),Js("SamlSettings.IdpMetadataURL","")),sourceUrlKey:"SamlSettings.IdpMetadataURL",skipSaveNeeded:!0},{type:"text",key:"SamlSettings.IdpURL",label:(0,N.defineMessage)({id:"admin.saml.idpUrlTitle",defaultMessage:"SAML SSO URL:"}),help_text:(0,N.defineMessage)({id:"admin.saml.idpUrlDesc",defaultMessage:"The URL where Mattermost sends a SAML request to start login sequence."}),placeholder:(0,N.defineMessage)({id:"admin.saml.idpUrlEx",defaultMessage:'E.g.: "https://idp.example.org/SAML2/SSO/Login"'}),setFromMetadataField:"idp_url",isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.IdpDescriptorURL",label:(0,N.defineMessage)({id:"admin.saml.idpDescriptorUrlTitle",defaultMessage:"Identity Provider Issuer URL:"}),help_text:(0,N.defineMessage)({id:"admin.saml.idpDescriptorUrlDesc",defaultMessage:"The issuer URL for the Identity Provider you use for SAML requests."}),placeholder:(0,N.defineMessage)({id:"admin.saml.idpDescriptorUrlEx",defaultMessage:'E.g.: "https://idp.example.org/SAML2/issuer"'}),setFromMetadataField:"idp_descriptor_url",isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"fileupload",key:"SamlSettings.IdpCertificateFile",label:(0,N.defineMessage)({id:"admin.saml.idpCertificateFileTitle",defaultMessage:"Identity Provider Public Certificate:"}),help_text:(0,N.defineMessage)({id:"admin.saml.idpCertificateFileDesc",defaultMessage:"The public authentication certificate issued by your Identity Provider."}),remove_help_text:(0,N.defineMessage)({id:"admin.saml.idpCertificateFileRemoveDesc",defaultMessage:"Remove the public authentication certificate issued by your Identity Provider."}),remove_button_text:(0,N.defineMessage)({id:"admin.saml.remove.idp_certificate",defaultMessage:"Remove Identity Provider Certificate"}),removing_text:(0,N.defineMessage)({id:"admin.saml.removing.certificate",defaultMessage:"Removing Certificate..."}),uploading_text:(0,N.defineMessage)({id:"admin.saml.uploading.certificate",defaultMessage:"Uploading Certificate..."}),fileType:".crt,.cer,.cert,.pem",upload_action:h.HP,set_action:h.r5,remove_action:h.kF,setFromMetadataField:"idp_public_certificate",isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"bool",key:"SamlSettings.Verify",label:(0,N.defineMessage)({id:"admin.saml.verifyTitle",defaultMessage:"Verify Signature:"}),help_text:(0,N.defineMessage)({id:"admin.saml.verifyDescription",defaultMessage:"When false, Mattermost will not verify that the signature sent from a SAML Response matches the Service Provider Login URL. Disabling verification is not recommended for production environments."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.AssertionConsumerServiceURL",label:(0,N.defineMessage)({id:"admin.saml.assertionConsumerServiceURLTitle",defaultMessage:"Service Provider Login URL:"}),help_text:(0,N.defineMessage)({id:"admin.saml.assertionConsumerServiceURLPopulatedDesc",defaultMessage:"This field is also known as the Assertion Consumer Service URL."}),placeholder:(0,N.defineMessage)({id:"admin.saml.assertionConsumerServiceURLEx",defaultMessage:'E.g.: "<urlChunk>your-mattermost-url</urlChunk>"'}),placeholder_values:{urlChunk:e=>"https://'<".concat(e,">'/login/sso/saml")},onConfigLoad:(e,t)=>{var s;const a=(null===(s=t.ServiceSettings)||void 0===s?void 0:s.SiteURL)||"";if(a.length>0&&0===e.length){const e="/"===a[a.length-1]?"":"/";return"".concat(a).concat(e,"login/sso/saml")}return e},isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.ServiceProviderIdentifier",label:(0,N.defineMessage)({id:"admin.saml.serviceProviderIdentifierTitle",defaultMessage:"Service Provider Identifier:"}),help_text:(0,N.defineMessage)({id:"admin.saml.serviceProviderIdentifierDesc",defaultMessage:"The unique identifier for the Service Provider, usually the same as Service Provider Login URL. In ADFS, this MUST match the Relying Party Identifier."}),placeholder:(0,N.defineMessage)({id:"admin.saml.serviceProviderIdentifierEx",defaultMessage:'E.g.: "<urlChunk>your-mattermost-url</urlChunk>"'}),placeholder_values:{urlChunk:e=>"https://'<".concat(e,">'/login/sso/saml")},isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"bool",key:"SamlSettings.Encrypt",label:(0,N.defineMessage)({id:"admin.saml.encryptTitle",defaultMessage:"Enable Encryption:"}),help_text:(0,N.defineMessage)({id:"admin.saml.encryptDescription",defaultMessage:"When false, Mattermost will not decrypt SAML Assertions encrypted with your Service Provider Public Certificate. Disabling encryption is not recommended for production environments."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"fileupload",key:"SamlSettings.PrivateKeyFile",label:(0,N.defineMessage)({id:"admin.saml.privateKeyFileTitle",defaultMessage:"Service Provider Private Key:"}),help_text:(0,N.defineMessage)({id:"admin.saml.privateKeyFileFileDesc",defaultMessage:"The private key used to decrypt SAML Assertions from the Identity Provider."}),remove_help_text:(0,N.defineMessage)({id:"admin.saml.privateKeyFileFileRemoveDesc",defaultMessage:"Remove the private key used to decrypt SAML Assertions from the Identity Provider."}),remove_button_text:(0,N.defineMessage)({id:"admin.saml.remove.privKey",defaultMessage:"Remove Service Provider Private Key"}),removing_text:(0,N.defineMessage)({id:"admin.saml.removing.privKey",defaultMessage:"Removing Private Key..."}),uploading_text:(0,N.defineMessage)({id:"admin.saml.uploading.privateKey",defaultMessage:"Uploading Private Key..."}),fileType:".key",upload_action:h.xA,remove_action:h.C6,isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"),Qs("SamlSettings.Encrypt"))},{type:"fileupload",key:"SamlSettings.PublicCertificateFile",label:(0,N.defineMessage)({id:"admin.saml.publicCertificateFileTitle",defaultMessage:"Service Provider Public Certificate:"}),help_text:(0,N.defineMessage)({id:"admin.saml.publicCertificateFileDesc",defaultMessage:"The certificate used to generate the signature on a SAML request to the Identity Provider for a service provider initiated SAML login, when Mattermost is the Service Provider."}),remove_help_text:(0,N.defineMessage)({id:"admin.saml.publicCertificateFileRemoveDesc",defaultMessage:"Remove the certificate used to generate the signature on a SAML request to the Identity Provider for a service provider initiated SAML login, when Mattermost is the Service Provider."}),remove_button_text:(0,N.defineMessage)({id:"admin.saml.remove.sp_certificate",defaultMessage:"Remove Service Provider Certificate"}),removing_text:(0,N.defineMessage)({id:"admin.saml.removing.certificate",defaultMessage:"Removing Certificate..."}),uploading_text:(0,N.defineMessage)({id:"admin.saml.uploading.certificate",defaultMessage:"Uploading Certificate..."}),fileType:".crt,.cer",upload_action:h.bY,remove_action:h.wL,isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"),Qs("SamlSettings.Encrypt"))},{type:"bool",key:"SamlSettings.SignRequest",label:(0,N.defineMessage)({id:"admin.saml.signRequestTitle",defaultMessage:"Sign Request:"}),help_text:(0,N.defineMessage)({id:"admin.saml.signRequestDescription",defaultMessage:"When true, Mattermost will sign the SAML request using your private key. When false, Mattermost will not sign the SAML request."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Encrypt"),Qs("SamlSettings.PrivateKeyFile"),Qs("SamlSettings.PublicCertificateFile"))},{type:"dropdown",key:"SamlSettings.SignatureAlgorithm",label:(0,N.defineMessage)({id:"admin.saml.signatureAlgorithmTitle",defaultMessage:"Signature Algorithm"}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Encrypt"),Qs("SamlSettings.SignRequest")),options:[{value:"RSAwithSHA1",display_name:(0,N.defineMessage)({id:"admin.saml.signatureAlgorithmDisplay.sha1",defaultMessage:"RSAwithSHA1"}),help_text:(0,N.defineMessage)({id:"admin.saml.signatureAlgorithmDescription.sha1",defaultMessage:"Specify the Signature algorithm used to sign the request (RSAwithSHA1). Please see more information provided at http://www.w3.org/2000/09/xmldsig#rsa-sha1"})},{value:"RSAwithSHA256",display_name:(0,N.defineMessage)({id:"admin.saml.signatureAlgorithmDisplay.sha256",defaultMessage:"RSAwithSHA256"}),help_text:(0,N.defineMessage)({id:"admin.saml.signatureAlgorithmDescription.sha256",defaultMessage:"Specify the Signature algorithm used to sign the request (RSAwithSHA256). Please see more information provided at http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 [section 6.4.2 RSA (PKCS#1 v1.5)]"})},{value:"RSAwithSHA512",display_name:(0,N.defineMessage)({id:"admin.saml.signatureAlgorithmDisplay.sha512",defaultMessage:"RSAwithSHA512"}),help_text:(0,N.defineMessage)({id:"admin.saml.signatureAlgorithmDescription.sha512",defaultMessage:"Specify the Signature algorithm used to sign the request (RSAwithSHA512). Please see more information provided at http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"})}]},{type:"dropdown",key:"SamlSettings.CanonicalAlgorithm",label:(0,N.defineMessage)({id:"admin.saml.canonicalAlgorithmTitle",defaultMessage:"Canonicalization Algorithm"}),options:[{value:"Canonical1.0",display_name:(0,N.defineMessage)({id:"admin.saml.canonicalAlgorithmDisplay.n10",defaultMessage:"Exclusive XML Canonicalization 1.0 (omit comments)"}),help_text:(0,N.defineMessage)({id:"admin.saml.canonicalAlgorithmDescription.exc",defaultMessage:"Specify the Canonicalization algorithm (Exclusive XML Canonicalization 1.0). Please see more information provided at http://www.w3.org/2001/10/xml-exc-c14n#"})},{value:"Canonical1.1",display_name:(0,N.defineMessage)({id:"admin.saml.canonicalAlgorithmDisplay.n11",defaultMessage:"Canonical XML 1.1 (omit comments)"}),help_text:(0,N.defineMessage)({id:"admin.saml.canonicalAlgorithmDescription.c14",defaultMessage:"Specify the Canonicalization algorithm (Canonical XML 1.1). Please see more information provided at http://www.w3.org/2006/12/xml-c14n11"})}],isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Encrypt"),Qs("SamlSettings.SignRequest"))},{type:"text",key:"SamlSettings.EmailAttribute",label:(0,N.defineMessage)({id:"admin.saml.emailAttrTitle",defaultMessage:"Email Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.saml.emailAttrEx",defaultMessage:'E.g.: "Email" or "PrimaryEmail"'}),help_text:(0,N.defineMessage)({id:"admin.saml.emailAttrDesc",defaultMessage:"The attribute in the SAML Assertion that will be used to populate the email addresses of users in Mattermost."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.UsernameAttribute",label:(0,N.defineMessage)({id:"admin.saml.usernameAttrTitle",defaultMessage:"Username Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.saml.usernameAttrEx",defaultMessage:'E.g.: "Username"'}),help_text:(0,N.defineMessage)({id:"admin.saml.usernameAttrDesc",defaultMessage:"The attribute in the SAML Assertion that will be used to populate the username field in Mattermost."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.IdAttribute",label:(0,N.defineMessage)({id:"admin.saml.idAttrTitle",defaultMessage:"Id Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.saml.idAttrEx",defaultMessage:'E.g.: "Id"'}),help_text:(0,N.defineMessage)({id:"admin.saml.idAttrDesc",defaultMessage:"(Optional) The attribute in the SAML Assertion that will be used to bind users from SAML to users in Mattermost."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.GuestAttribute",label:(0,N.defineMessage)({id:"admin.saml.guestAttrTitle",defaultMessage:"Guest Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.saml.guestAttrEx",defaultMessage:'E.g.: "usertype=Guest" or "isGuest=true"'}),help_text:(0,N.defineMessage)({id:"admin.saml.guestAttrDesc",defaultMessage:"(Optional) Requires Guest Access to be enabled before being applied. The attribute in the SAML Assertion that will be used to apply a guest role to users in Mattermost. Guests are prevented from accessing teams or channels upon logging in until they are assigned a team and at least one channel. Note: If this attribute is removed/changed from your guest user in SAML and the user is still active, they will not be promoted to a member and will retain their Guest role. Guests can be promoted in **System Console > User Management**. Existing members that are identified by this attribute as a guest will be demoted from a member to a guest when they are asked to login next. The next login is based upon Session lengths set in **System Console > Session Lengths**. It is highly recommend to manually demote users to guests in **System Console > User Management ** to ensure access is restricted immediately."}),help_text_markdown:!0,isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),$s("GuestAccountsSettings","Enable"),Qs("SamlSettings.Enable"))},{type:"bool",key:"SamlSettings.EnableAdminAttribute",label:(0,N.defineMessage)({id:"admin.saml.enableAdminAttrTitle",defaultMessage:"Enable Admin Attribute:"}),isDisabled:Ys(zs(ca),Qs("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.AdminAttribute",label:(0,N.defineMessage)({id:"admin.saml.adminAttrTitle",defaultMessage:"Admin Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.saml.adminAttrEx",defaultMessage:'E.g.: "usertype=Admin" or "isAdmin=true"'}),help_text:(0,N.defineMessage)({id:"admin.saml.adminAttrDesc",defaultMessage:"(Optional) The attribute in the SAML Assertion for designating System Admins. The users selected by the query will have access to your Mattermost server as System Admins. By default, System Admins have complete access to the Mattermost System Console. Existing members that are identified by this attribute will be promoted from member to System Admin upon next login. The next login is based upon Session lengths set in **System Console > Session Lengths.** It is highly recommend to manually demote users to members in **System Console > User Management** to ensure access is restricted immediately. Note: If this filter is removed/changed, System Admins that were promoted via this filter will be demoted to members and will not retain access to the System Console. When this filter is not in use, System Admins can be manually promoted/demoted in **System Console > User Management**."}),help_text_markdown:!0,isDisabled:Ys(zs(ca),Qs("SamlSettings.EnableAdminAttribute"),Qs("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.FirstNameAttribute",label:(0,N.defineMessage)({id:"admin.saml.firstnameAttrTitle",defaultMessage:"First Name Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.saml.firstnameAttrEx",defaultMessage:'E.g.: "FirstName"'}),help_text:(0,N.defineMessage)({id:"admin.saml.firstnameAttrDesc",defaultMessage:"(Optional) The attribute in the SAML Assertion that will be used to populate the first name of users in Mattermost."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.LastNameAttribute",label:(0,N.defineMessage)({id:"admin.saml.lastnameAttrTitle",defaultMessage:"Last Name Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.saml.lastnameAttrEx",defaultMessage:'E.g.: "LastName"'}),help_text:(0,N.defineMessage)({id:"admin.saml.lastnameAttrDesc",defaultMessage:"(Optional) The attribute in the SAML Assertion that will be used to populate the last name of users in Mattermost."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.NicknameAttribute",label:(0,N.defineMessage)({id:"admin.saml.nicknameAttrTitle",defaultMessage:"Nickname Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.saml.nicknameAttrEx",defaultMessage:'E.g.: "Nickname"'}),help_text:(0,N.defineMessage)({id:"admin.saml.nicknameAttrDesc",defaultMessage:"(Optional) The attribute in the SAML Assertion that will be used to populate the nickname of users in Mattermost."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.PositionAttribute",label:(0,N.defineMessage)({id:"admin.saml.positionAttrTitle",defaultMessage:"Position Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.saml.positionAttrEx",defaultMessage:'E.g.: "Role"'}),help_text:(0,N.defineMessage)({id:"admin.saml.positionAttrDesc",defaultMessage:"(Optional) The attribute in the SAML Assertion that will be used to populate the position of users in Mattermost."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"custom",key:"SamlSettings.CustomProfileAttributes",component:Ca,isHidden:zs(Ws(na(mt.gS.Enterprise),Xs("FeatureFlags","CustomProfileAttributes")))},{type:"text",key:"SamlSettings.LocaleAttribute",label:(0,N.defineMessage)({id:"admin.saml.localeAttrTitle",defaultMessage:"Preferred Language Attribute:"}),placeholder:(0,N.defineMessage)({id:"admin.saml.localeAttrEx",defaultMessage:'E.g.: "Locale" or "PrimaryLanguage"'}),help_text:(0,N.defineMessage)({id:"admin.saml.localeAttrDesc",defaultMessage:"(Optional) The attribute in the SAML Assertion that will be used to populate the language of users in Mattermost."}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))},{type:"text",key:"SamlSettings.LoginButtonText",label:(0,N.defineMessage)({id:"admin.saml.loginButtonTextTitle",defaultMessage:"Login Button Text:"}),placeholder:(0,N.defineMessage)({id:"admin.saml.loginButtonTextEx",defaultMessage:'E.g.: "OKTA"'}),help_text:(0,N.defineMessage)({id:"admin.saml.loginButtonTextDesc",defaultMessage:'(Optional) The text that appears in the login button on the login page. Defaults to "SAML".'}),isDisabled:Ys(zs(da(M.AUTHENTICATION.SAML)),Qs("SamlSettings.Enable"))}]},restrictedIndicator:ga()},saml_feature_discovery:{url:"authentication/saml",isDiscovery:!0,title:(0,N.defineMessage)({id:"admin.sidebar.saml",defaultMessage:"SAML 2.0"}),isHidden:Ys(aa("SAML")),schema:{id:"SamlSettings",name:(0,N.defineMessage)({id:"admin.authentication.saml",defaultMessage:"SAML 2.0"}),settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"saml",minimumSKURequiredForFeature:mt.gS.Professional,title:(0,N.defineMessage)({id:"admin.saml_feature_discovery.title",defaultMessage:"Integrate SAML 2.0 with Mattermost Professional"}),copy:(0,N.defineMessage)({id:"admin.saml_feature_discovery.copy",defaultMessage:"When you connect Mattermost with your organization's single sign-on provider, users can access Mattermost without having to re-enter their credentials."}),learnMoreURL:"https://www.mattermost.com/docs-saml/?utm_medium=product&utm_source=product-feature-discovery&utm_content=saml",featureDiscoveryImage:T().createElement(Yd,{width:276,height:170})}),key:"SAMLFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0)},oauth:{url:"authentication/oauth",title:(0,N.defineMessage)({id:"admin.sidebar.oauth",defaultMessage:"OAuth 2.0"}),isHidden:Ys(Ys(zs(ta),ia("starter")),Ws(aa("OpenId"),zs(pa)),zs(oa(M.AUTHENTICATION.OPENID))),schema:{id:"OAuthSettings",name:(0,N.defineMessage)({id:"admin.authentication.oauth",defaultMessage:"OAuth 2.0"}),onConfigLoad:e=>{var t,s,a,i,n;const r={};return null!==(t=e.GitLabSettings)&&void 0!==t&&t.Enable&&(r.oauthType=mt.YM.GITLAB_SERVICE),null!==(s=e.Office365Settings)&&void 0!==s&&s.Enable&&(r.oauthType=mt.YM.OFFICE365_SERVICE),null!==(a=e.GoogleSettings)&&void 0!==a&&a.Enable&&(r.oauthType=mt.YM.GOOGLE_SERVICE),r["GitLabSettings.Url"]=null===(i=e.GitLabSettings)||void 0===i||null===(n=i.UserAPIEndpoint)||void 0===n?void 0:n.replace("/api/v4/user",""),r},onConfigSave:e=>{const t=iC({},e);return t.GitLabSettings=e.GitLabSettings||{},t.Office365Settings=e.Office365Settings||{},t.GoogleSettings=e.GoogleSettings||{},t.OpenIdSettings=e.OpenIdSettings||{},t.GitLabSettings.Enable=!1,t.Office365Settings.Enable=!1,t.GoogleSettings.Enable=!1,t.OpenIdSettings.Enable=!1,t.GitLabSettings.UserAPIEndpoint=e.GitLabSettings.Url.replace(/\/$/,"")+"/api/v4/user",e.oauthType===mt.YM.GITLAB_SERVICE&&(t.GitLabSettings.Enable=!0),e.oauthType===mt.YM.OFFICE365_SERVICE&&(t.Office365Settings.Enable=!0),e.oauthType===mt.YM.GOOGLE_SERVICE&&(t.GoogleSettings.Enable=!0),delete t.oauthType,t},settings:[{type:"custom",component:zu,key:"OpenIdConvert",isHidden:Ys(Ws(zs(aa("OpenId")),zs(sa)),zs(pa)),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"dropdown",key:"oauthType",label:(0,N.defineMessage)({id:"admin.openid.select",defaultMessage:"Select service provider:"}),options:[{value:"off",display_name:(0,N.defineMessage)({id:"admin.oauth.off",defaultMessage:"Do not allow sign-in via an OAuth 2.0 provider."})},{value:mt.YM.GITLAB_SERVICE,display_name:(0,N.defineMessage)({id:"admin.oauth.gitlab",defaultMessage:"GitLab"}),help_text:(0,N.defineMessage)({id:"admin.gitlab.EnableMarkdownDesc",defaultMessage:'1. Log in to your GitLab account and go to Profile Settings -> Applications.\n2. Enter Redirect URIs "<loginUrlChunk>your-mattermost-url</loginUrlChunk>" (example: http://localhost:8065/login/gitlab/complete) and "<signupUrlChunk>your-mattermost-url</signupUrlChunk>".\n3. Then use "Application Secret Key" and "Application ID" fields from GitLab to complete the options below.\n4. Complete the Endpoint URLs below.'}),help_text_values:{loginUrlChunk:e=>"<".concat(e,">/login/gitlab/complete"),signupUrlChunk:e=>"<".concat(e,">/signup/gitlab/complete")},help_text_markdown:!0},{value:mt.YM.GOOGLE_SERVICE,display_name:(0,N.defineMessage)({id:"admin.oauth.google",defaultMessage:"Google Apps"}),isHidden:Ws(zs(aa("GoogleOAuth")),zs(sa)),help_text:(0,N.defineMessage)({id:"admin.google.EnableMarkdownDesc",defaultMessage:'1. <linkLogin>Log in</linkLogin> to your Google account.\n2. Go to <linkConsole>https://console.developers.google.com</linkConsole>, click <strong>Credentials</strong> in the left hand sidebar and enter "Mattermost - your-company-name" as the <strong>Project Name</strong>, then click <strong>Create</strong>.\n3. Click the <strong>OAuth consent screen</strong> header and enter "Mattermost" as the <strong>Product name shown to users</strong>, then click <strong>Save</strong>.\n4. Under the <strong>Credentials</strong> header, click <strong>Create credentials</strong>, choose <strong>OAuth client ID</strong> and select <strong>Web Application</strong>.\n5. Under <strong>Restrictions</strong> and <strong>Authorized redirect URIs</strong> enter <strong>"your-mattermost-url/signup/google/complete"</strong> (example: http://localhost:8065/signup/google/complete). Click <strong>Create</strong>.\n6. Paste the <strong>Client ID</strong> and <strong>Client Secret</strong> to the fields below, then click <strong>Save</strong>.\n7. Go to the <linkAPI>Google People API</linkAPI> and click <strong>Enable</strong>.'}),help_text_markdown:!1,help_text_values:{linkLogin:e=>T().createElement(wt.A,{location:"admin_console",href:"https://accounts.google.com/login"},e),linkConsole:e=>T().createElement(wt.A,{location:"admin_console",href:"https://console.developers.google.com"},e),linkAPI:e=>T().createElement(wt.A,{location:"admin_console",href:"https://console.developers.google.com/apis/library/people.googleapis.com"},e),strong:e=>T().createElement("strong",null,e)}},{value:mt.YM.OFFICE365_SERVICE,display_name:(0,N.defineMessage)({id:"admin.oauth.office365",defaultMessage:"Entra ID"}),isHidden:Ws(zs(aa("Office365OAuth")),zs(sa)),help_text:(0,N.defineMessage)({id:"admin.office365.EnableMarkdownDesc",defaultMessage:'1. <linkLogin>Log in</linkLogin> to your Microsoft account. \n2. In Microsoft, go to <strong>Applications</strong> and <strong>App Registrations</strong> in the left pane.\n3. Select <strong>New registration</strong>, then enter "Mattermost - your-company-name" as the <strong>Application Name</strong>. \n4. Under <strong>Redirect URI</strong>, select <strong>Web</strong>, and enter "your-mattermost-url/signup/office365/complete" as the <strong>Redirect URI</strong>. Select <strong>Register</strong>.\n5. Copy the Microsoft <strong>Application (client) ID</strong> value, and paste it below as the <strong>Client ID</strong> value. \n6. Copy the Microsoft <strong>Directory (tenant) ID</strong> value, and paste it below as the <strong>Directory (tenant) ID</strong> value. \n7. In Microsoft, create a new client secret. Copy the resulting client secret value, and paste it below as the <strong>Client Secret</strong> value. Select <strong>Save</strong>.'}),help_text_markdown:!1,help_text_values:{linkLogin:e=>T().createElement(wt.A,{location:"admin_console",href:"https://entra.microsoft.com"},e),linkTenant:e=>T().createElement(wt.A,{location:"admin_console",href:"https://msdn.microsoft.com/en-us/library/azure/jj573650.aspx#Anchor_0"},e),linkApps:e=>T().createElement(wt.A,{location:"admin_console",href:"https://entra.microsoft.com"},e),strong:e=>T().createElement("strong",null,e)}}],isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.Id",label:(0,N.defineMessage)({id:"admin.gitlab.clientIdTitle",defaultMessage:"Application ID:"}),help_text:(0,N.defineMessage)({id:"admin.gitlab.clientIdDescription",defaultMessage:"Obtain this value via the instructions above for logging into GitLab."}),placeholder:(0,N.defineMessage)({id:"admin.gitlab.clientIdExample",defaultMessage:'E.g.: "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"'}),isHidden:zs(Js("oauthType","gitlab")),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.Secret",label:(0,N.defineMessage)({id:"admin.gitlab.clientSecretTitle",defaultMessage:"Application Secret Key:"}),help_text:(0,N.defineMessage)({id:"admin.gitlab.clientSecretDescription",defaultMessage:"Obtain this value via the instructions above for logging into GitLab."}),placeholder:(0,N.defineMessage)({id:"admin.gitlab.clientSecretExample",defaultMessage:'E.g.: "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"'}),isHidden:zs(Js("oauthType","gitlab")),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.Url",label:(0,N.defineMessage)({id:"admin.gitlab.siteUrl",defaultMessage:"GitLab Site URL:"}),help_text:(0,N.defineMessage)({id:"admin.gitlab.siteUrlDescription",defaultMessage:"Enter the URL of your GitLab instance, e.g. https://example.com:3000. If your GitLab instance is not set up with SSL, start the URL with http:// instead of https://."}),placeholder:(0,N.defineMessage)({id:"admin.gitlab.siteUrlExample",defaultMessage:"E.g.: https://"}),isHidden:zs(Js("oauthType","gitlab")),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.UserAPIEndpoint",label:(0,N.defineMessage)({id:"admin.gitlab.userTitle",defaultMessage:"User API Endpoint:"}),dynamic_value:(e,t,s)=>s["GitLabSettings.Url"]?s["GitLabSettings.Url"].replace(/\/$/,"")+"/api/v4/user":"",isDisabled:!0,isHidden:zs(Js("oauthType","gitlab"))},{type:"text",key:"GitLabSettings.AuthEndpoint",label:(0,N.defineMessage)({id:"admin.gitlab.authTitle",defaultMessage:"Auth Endpoint:"}),dynamic_value:(e,t,s)=>s["GitLabSettings.Url"]?s["GitLabSettings.Url"].replace(/\/$/,"")+"/oauth/authorize":"",isDisabled:!0,isHidden:zs(Js("oauthType","gitlab"))},{type:"text",key:"GitLabSettings.TokenEndpoint",label:(0,N.defineMessage)({id:"admin.gitlab.tokenTitle",defaultMessage:"Token Endpoint:"}),dynamic_value:(e,t,s)=>s["GitLabSettings.Url"]?s["GitLabSettings.Url"].replace(/\/$/,"")+"/oauth/token":"",isDisabled:!0,isHidden:zs(Js("oauthType","gitlab"))},{type:"text",key:"GoogleSettings.Id",label:(0,N.defineMessage)({id:"admin.google.clientIdTitle",defaultMessage:"Client ID:"}),help_text:(0,N.defineMessage)({id:"admin.google.clientIdDescription",defaultMessage:"The Client ID you received when registering your application with Google."}),placeholder:(0,N.defineMessage)({id:"admin.google.clientIdExample",defaultMessage:'E.g.: "7602141235235-url0fhs1mayfasbmop5qlfns8dh4.apps.googleusercontent.com"'}),isHidden:zs(Js("oauthType","google")),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"GoogleSettings.Secret",label:(0,N.defineMessage)({id:"admin.google.clientSecretTitle",defaultMessage:"Client Secret:"}),help_text:(0,N.defineMessage)({id:"admin.google.clientSecretDescription",defaultMessage:"The Client Secret you received when registering your application with Google."}),placeholder:(0,N.defineMessage)({id:"admin.google.clientSecretExample",defaultMessage:'E.g.: "H8sz0Az-dDs2p15-7QzD231"'}),isHidden:zs(Js("oauthType","google")),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"GoogleSettings.UserAPIEndpoint",label:(0,N.defineMessage)({id:"admin.google.userTitle",defaultMessage:"User API Endpoint:"}),dynamic_value:()=>"https://people.googleapis.com/v1/people/me?personFields=names,emailAddresses,nicknames,metadata",isDisabled:!0,isHidden:zs(Js("oauthType","google"))},{type:"text",key:"GoogleSettings.AuthEndpoint",label:(0,N.defineMessage)({id:"admin.google.authTitle",defaultMessage:"Auth Endpoint:"}),dynamic_value:()=>"https://accounts.google.com/o/oauth2/v2/auth",isDisabled:!0,isHidden:zs(Js("oauthType","google"))},{type:"text",key:"GoogleSettings.TokenEndpoint",label:(0,N.defineMessage)({id:"admin.google.tokenTitle",defaultMessage:"Token Endpoint:"}),dynamic_value:()=>"https://www.googleapis.com/oauth2/v4/token",isDisabled:!0,isHidden:zs(Js("oauthType","google"))},{type:"text",key:"Office365Settings.Id",label:(0,N.defineMessage)({id:"admin.office365.clientIdTitle",defaultMessage:"Application ID:"}),help_text:(0,N.defineMessage)({id:"admin.office365.clientIdDescription",defaultMessage:"The Application/Client ID you received when registering your application with Microsoft."}),placeholder:(0,N.defineMessage)({id:"admin.office365.clientIdExample",defaultMessage:'E.g.: "adf3sfa2-ag3f-sn4n-ids0-sh1hdax192qq"'}),isHidden:zs(Js("oauthType","office365")),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"Office365Settings.Secret",label:(0,N.defineMessage)({id:"admin.office365.clientSecretTitle",defaultMessage:"Application Secret Password:"}),help_text:(0,N.defineMessage)({id:"admin.office365.clientSecretDescription",defaultMessage:"The Application Secret Password you generated when registering your application with Microsoft."}),placeholder:(0,N.defineMessage)({id:"admin.office365.clientSecretExample",defaultMessage:'E.g.: "shAieM47sNBfgl20f8ci294"'}),isHidden:zs(Js("oauthType","office365")),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"Office365Settings.DirectoryId",label:(0,N.defineMessage)({id:"admin.office365.directoryIdTitle",defaultMessage:"Directory (tenant) ID:"}),help_text:(0,N.defineMessage)({id:"admin.office365.directoryIdDescription",defaultMessage:"The Directory (tenant) ID you received when registering your application with Microsoft."}),placeholder:(0,N.defineMessage)({id:"admin.office365.directoryIdExample",defaultMessage:'E.g.: "adf3sfa2-ag3f-sn4n-ids0-sh1hdax192qq"'}),isHidden:zs(Js("oauthType","office365")),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"Office365Settings.UserAPIEndpoint",label:(0,N.defineMessage)({id:"admin.office365.userTitle",defaultMessage:"User API Endpoint:"}),dynamic_value:()=>"https://graph.microsoft.com/v1.0/me",isDisabled:!0,isHidden:zs(Js("oauthType","office365"))},{type:"text",key:"Office365Settings.AuthEndpoint",label:(0,N.defineMessage)({id:"admin.office365.authTitle",defaultMessage:"Auth Endpoint:"}),dynamic_value:(e,t,s)=>s["Office365Settings.DirectoryId"]?"https://login.microsoftonline.com/"+s["Office365Settings.DirectoryId"]+"/oauth2/v2.0/authorize":"https://login.microsoftonline.com/{directoryId}/oauth2/v2.0/authorize",isDisabled:!0,isHidden:zs(Js("oauthType","office365"))},{type:"text",key:"Office365Settings.TokenEndpoint",label:(0,N.defineMessage)({id:"admin.office365.tokenTitle",defaultMessage:"Token Endpoint:"}),dynamic_value:(e,t,s)=>s["Office365Settings.DirectoryId"]?"https://login.microsoftonline.com/"+s["Office365Settings.DirectoryId"]+"/oauth2/v2.0/token":"https://login.microsoftonline.com/{directoryId}/oauth2/v2.0/token",isDisabled:!0,isHidden:zs(Js("oauthType","office365"))}]}},openid:{url:"authentication/openid",title:(0,N.defineMessage)({id:"admin.sidebar.openid",defaultMessage:"OpenID Connect"}),isHidden:Ys(Ws(zs(aa("OpenId")),zs(sa)),zs(oa(M.AUTHENTICATION.OPENID))),schema:{id:"OpenIdSettings",name:(0,N.defineMessage)({id:"admin.authentication.openid",defaultMessage:"OpenID Connect"}),onConfigLoad:e=>{var t,s,a,i,n,r;const o={};return null!==(t=e.Office365Settings)&&void 0!==t&&t.Enable&&(o.openidType=mt.YM.OFFICE365_SERVICE),null!==(s=e.GoogleSettings)&&void 0!==s&&s.Enable&&(o.openidType=mt.YM.GOOGLE_SERVICE),null!==(a=e.GitLabSettings)&&void 0!==a&&a.Enable&&(o.openidType=mt.YM.GITLAB_SERVICE),null!==(i=e.OpenIdSettings)&&void 0!==i&&i.Enable&&(o.openidType=mt.YM.OPENID_SERVICE),null!==(n=e.GitLabSettings)&&void 0!==n&&n.UserAPIEndpoint?o["GitLabSettings.Url"]=e.GitLabSettings.UserAPIEndpoint.replace("/api/v4/user",""):null!==(r=e.GitLabSettings)&&void 0!==r&&r.DiscoveryEndpoint&&(o["GitLabSettings.Url"]=e.GitLabSettings.DiscoveryEndpoint.replace("/.well-known/openid-configuration","")),o},onConfigSave:e=>{const t=iC({},e);t.Office365Settings=e.Office365Settings||{},t.GoogleSettings=e.GoogleSettings||{},t.GitLabSettings=e.GitLabSettings||{},t.OpenIdSettings=e.OpenIdSettings||{},t.Office365Settings.Enable=!1,t.GoogleSettings.Enable=!1,t.GitLabSettings.Enable=!1,t.OpenIdSettings.Enable=!1;let s="";return e.openidType===mt.YM.OFFICE365_SERVICE?s="Office365Settings":e.openidType===mt.YM.GOOGLE_SERVICE?s="GoogleSettings":e.openidType===mt.YM.GITLAB_SERVICE?s="GitLabSettings":e.openidType===mt.YM.OPENID_SERVICE&&(s="OpenIdSettings"),""!==s&&(t[s].Enable=!0,t[s].Scope=mt.YM.OPENID_SCOPES,t[s].UserAPIEndpoint="",t[s].AuthEndpoint="",t[s].TokenEndpoint=""),delete t.openidType,t},settings:[{type:"custom",component:zu,key:"OpenIdConvert",isHidden:Ys(zs(pa)),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"dropdown",key:"openidType",label:(0,N.defineMessage)({id:"admin.openid.select",defaultMessage:"Select service provider:"}),isHelpHidden:Ws(Js("openidType",mt.YM.OPENID_SERVICE),ra),options:[{value:"off",display_name:(0,N.defineMessage)({id:"admin.openid.off",defaultMessage:"Do not allow sign-in via an OpenID provider."})},{value:mt.YM.GITLAB_SERVICE,display_name:(0,N.defineMessage)({id:"admin.openid.gitlab",defaultMessage:"GitLab"}),help_text:(0,N.defineMessage)({id:"admin.gitlab.EnableMarkdownDesc",defaultMessage:'1. Log in to your GitLab account and go to Profile Settings -> Applications.\n2. Enter Redirect URIs "<loginUrlChunk>your-mattermost-url</loginUrlChunk>" (example: http://localhost:8065/login/gitlab/complete) and "<signupUrlChunk>your-mattermost-url</signupUrlChunk>".\n3. Then use "Application Secret Key" and "Application ID" fields from GitLab to complete the options below.\n4. Complete the Endpoint URLs below.'}),help_text_values:{loginUrlChunk:e=>"<".concat(e,">/login/gitlab/complete"),signupUrlChunk:e=>"<".concat(e,">/signup/gitlab/complete")},help_text_markdown:!1},{value:mt.YM.GOOGLE_SERVICE,display_name:(0,N.defineMessage)({id:"admin.openid.google",defaultMessage:"Google Apps"}),help_text:(0,N.defineMessage)({id:"admin.google.EnableMarkdownDesc",defaultMessage:'1. <linkLogin>Log in</linkLogin> to your Google account.\n2. Go to <linkConsole>https://console.developers.google.com]</linkConsole>, click <strong>Credentials</strong> in the left hand side.\n 3. Under the <strong>Credentials</strong> header, click <strong>Create credentials</strong>, choose <strong>OAuth client ID</strong> and select <strong>Web Application</strong>.\n 4. Enter "Mattermost - your-company-name" as the <strong>Name</strong>.\n 5. Under <strong>Authorized redirect URIs</strong> enter <strong>"your-mattermost-url/signup/google/complete"</strong> (example: http://localhost:8065/signup/google/complete). Click <strong>Create</strong>.\n 6. Paste the <strong>Client ID</strong> and <strong>Client Secret</strong> to the fields below, then click <strong>Save</strong>.\n 7. Go to the <linkAPI>Google People API</linkAPI> and click <strong>Enable</strong>.'}),help_text_markdown:!1,help_text_values:{linkLogin:e=>T().createElement(wt.A,{location:"admin_console",href:"https://accounts.google.com/login"},e),linkConsole:e=>T().createElement(wt.A,{location:"admin_console",href:"https://console.developers.google.com"},e),linkAPI:e=>T().createElement(wt.A,{location:"admin_console",href:"https://console.developers.google.com/apis/library/people.googleapis.com"},e),strong:e=>T().createElement("strong",null,e)}},{value:mt.YM.OFFICE365_SERVICE,display_name:(0,N.defineMessage)({id:"admin.openid.office365",defaultMessage:"Entra ID"}),help_text:(0,N.defineMessage)({id:"admin.office365.EnableMarkdownDesc",defaultMessage:'1. <linkLogin>Log in</linkLogin> to your Microsoft account. \n2. In Microsoft, go to <strong>Applications</strong> and <strong>App Registrations</strong> in the left pane.\n3. Select <strong>New registration</strong>, then enter "Mattermost - your-company-name" as the <strong>Application Name</strong>. \n4. Under <strong>Redirect URI</strong>, select <strong>Web</strong>, and enter "your-mattermost-url/signup/office365/complete" as the <strong>Redirect URI</strong>. Select <strong>Register</strong>.\n5. Copy the Microsoft <strong>Application (client) ID</strong> value, and paste it below as the <strong>Client ID</strong> value. \n6. Copy the Microsoft <strong>Directory (tenant) ID</strong> value, and paste it below as the <strong>Directory (tenant) ID</strong> value. \n7. In Microsoft, create a new client secret. Copy the resulting client secret value, and paste it below as the <strong>Client Secret</strong> value. Select <strong>Save</strong>.'}),help_text_markdown:!1,help_text_values:{linkLogin:e=>T().createElement(wt.A,{location:"admin_console",href:"https://entra.microsoft.com"},e),linkTenant:e=>T().createElement(wt.A,{location:"admin_console",href:"https://msdn.microsoft.com/en-us/library/azure/jj573650.aspx#Anchor_0"},e),linkApps:e=>T().createElement(wt.A,{location:"admin_console",href:"https://entra.microsoft.com"},e),strong:e=>T().createElement("strong",null,e)}},{value:mt.YM.OPENID_SERVICE,display_name:(0,N.defineMessage)({id:"admin.oauth.openid",defaultMessage:"OpenID Connect (Other)"}),help_text:(0,N.defineMessage)({id:"admin.openid.EnableMarkdownDesc",defaultMessage:'Follow provider directions for creating an OpenID Application. Most OpenID Connect providers require authorization of all redirect URIs. In the appropriate field, enter "your-mattermost-url/signup/openid/complete" (example: http://domain.com/signup/openid/complete)'}),help_text_markdown:!1}],isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.Url",label:(0,N.defineMessage)({id:"admin.gitlab.siteUrl",defaultMessage:"GitLab Site URL:"}),help_text:(0,N.defineMessage)({id:"admin.gitlab.siteUrlDescription",defaultMessage:"Enter the URL of your GitLab instance, e.g. https://example.com:3000. If your GitLab instance is not set up with SSL, start the URL with http:// instead of https://."}),placeholder:(0,N.defineMessage)({id:"admin.gitlab.siteUrlExample",defaultMessage:"E.g.: https://"}),isHidden:zs(Js("openidType",mt.YM.GITLAB_SERVICE)),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.DiscoveryEndpoint",label:(0,N.defineMessage)({id:"admin.openid.discoveryEndpointTitle",defaultMessage:"Discovery Endpoint:"}),help_text:(0,N.defineMessage)({id:"admin.gitlab.discoveryEndpointDesc",defaultMessage:"The URL of the discovery document for OpenID Connect with GitLab."}),help_text_markdown:!1,dynamic_value:(e,t,s)=>s["GitLabSettings.Url"]?s["GitLabSettings.Url"].replace(/\/$/,"")+"/.well-known/openid-configuration":"",isDisabled:!0,isHidden:zs(Js("openidType",mt.YM.GITLAB_SERVICE))},{type:"text",key:"GitLabSettings.Id",label:(0,N.defineMessage)({id:"admin.openid.clientIdTitle",defaultMessage:"Client ID:"}),help_text:(0,N.defineMessage)({id:"admin.openid.clientIdDescription",defaultMessage:"Obtaining the Client ID differs across providers. Please check you provider's documentation"}),placeholder:(0,N.defineMessage)({id:"admin.gitlab.clientIdExample",defaultMessage:'E.g.: "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"'}),isHidden:zs(Js("openidType",mt.YM.GITLAB_SERVICE)),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"GitLabSettings.Secret",label:(0,N.defineMessage)({id:"admin.openid.clientSecretTitle",defaultMessage:"Client Secret:"}),help_text:(0,N.defineMessage)({id:"admin.openid.clientSecretDescription",defaultMessage:"Obtaining the Client Secret differs across providers. Please check you provider's documentation"}),placeholder:(0,N.defineMessage)({id:"admin.gitlab.clientSecretExample",defaultMessage:'E.g.: "jcuS8PuvcpGhpgHhlcpT1Mx442pnqMxQY"'}),isHidden:zs(Js("openidType",mt.YM.GITLAB_SERVICE)),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"GoogleSettings.DiscoveryEndpoint",label:(0,N.defineMessage)({id:"admin.openid.discoveryEndpointTitle",defaultMessage:"Discovery Endpoint:"}),help_text:(0,N.defineMessage)({id:"admin.google.discoveryEndpointDesc",defaultMessage:"The URL of the discovery document for OpenID Connect with Google."}),help_text_markdown:!1,dynamic_value:()=>"https://accounts.google.com/.well-known/openid-configuration",isDisabled:!0,isHidden:zs(Js("openidType",mt.YM.GOOGLE_SERVICE))},{type:"text",key:"GoogleSettings.Id",label:(0,N.defineMessage)({id:"admin.openid.clientIdTitle",defaultMessage:"Client ID:"}),help_text:(0,N.defineMessage)({id:"admin.openid.clientIdDescription",defaultMessage:"Obtaining the Client ID differs across providers. Please check you provider's documentation"}),placeholder:(0,N.defineMessage)({id:"admin.google.clientIdExample",defaultMessage:'E.g.: "7602141235235-url0fhs1mayfasbmop5qlfns8dh4.apps.googleusercontent.com"'}),isHidden:zs(Js("openidType",mt.YM.GOOGLE_SERVICE)),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"GoogleSettings.Secret",label:(0,N.defineMessage)({id:"admin.openid.clientSecretTitle",defaultMessage:"Client Secret:"}),help_text:(0,N.defineMessage)({id:"admin.openid.clientSecretDescription",defaultMessage:"Obtaining the Client Secret differs across providers. Please check you provider's documentation"}),placeholder:(0,N.defineMessage)({id:"admin.google.clientSecretExample",defaultMessage:'E.g.: "H8sz0Az-dDs2p15-7QzD231"'}),isHidden:zs(Js("openidType",mt.YM.GOOGLE_SERVICE)),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"Office365Settings.DirectoryId",label:(0,N.defineMessage)({id:"admin.office365.directoryIdTitle",defaultMessage:"Directory (tenant) ID:"}),help_text:(0,N.defineMessage)({id:"admin.office365.directoryIdDescription",defaultMessage:"The Directory (tenant) ID you received when registering your application with Microsoft."}),placeholder:(0,N.defineMessage)({id:"admin.office365.directoryIdExample",defaultMessage:'E.g.: "adf3sfa2-ag3f-sn4n-ids0-sh1hdax192qq"'}),isHidden:zs(Js("openidType",mt.YM.OFFICE365_SERVICE)),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"Office365Settings.DiscoveryEndpoint",label:(0,N.defineMessage)({id:"admin.openid.discoveryEndpointTitle",defaultMessage:"Discovery Endpoint:"}),help_text:(0,N.defineMessage)({id:"admin.office365.discoveryEndpointDesc",defaultMessage:"The URL of the discovery document for OpenID Connect with Entra ID."}),help_text_markdown:!1,dynamic_value:(e,t,s)=>s["Office365Settings.DirectoryId"]?"https://login.microsoftonline.com/"+s["Office365Settings.DirectoryId"]+"/v2.0/.well-known/openid-configuration":"https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration",isDisabled:!0,isHidden:zs(Js("openidType",mt.YM.OFFICE365_SERVICE))},{type:"text",key:"Office365Settings.Id",label:(0,N.defineMessage)({id:"admin.openid.clientIdTitle",defaultMessage:"Client ID:"}),help_text:(0,N.defineMessage)({id:"admin.openid.clientIdDescription",defaultMessage:"Obtaining the Client ID differs across providers. Please check you provider's documentation"}),placeholder:(0,N.defineMessage)({id:"admin.office365.clientIdExample",defaultMessage:'E.g.: "adf3sfa2-ag3f-sn4n-ids0-sh1hdax192qq"'}),isHidden:zs(Js("openidType",mt.YM.OFFICE365_SERVICE)),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"Office365Settings.Secret",label:(0,N.defineMessage)({id:"admin.openid.clientSecretTitle",defaultMessage:"Client Secret:"}),help_text:(0,N.defineMessage)({id:"admin.openid.clientSecretDescription",defaultMessage:"Obtaining the Client Secret differs across providers. Please check you provider's documentation"}),placeholder:(0,N.defineMessage)({id:"admin.office365.clientSecretExample",defaultMessage:'E.g.: "shAieM47sNBfgl20f8ci294"'}),isHidden:zs(Js("openidType",mt.YM.OFFICE365_SERVICE)),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"OpenIdSettings.ButtonText",label:(0,N.defineMessage)({id:"admin.openid.buttonTextTitle",defaultMessage:"Button Name:"}),placeholder:(0,N.defineMessage)({id:"admin.openid.buttonTextEx",defaultMessage:"Custom Button Name"}),help_text:(0,N.defineMessage)({id:"admin.openid.buttonTextDesc",defaultMessage:"The text that will show on the login button."}),isHidden:Ys(zs(Js("openidType",mt.YM.OPENID_SERVICE)),ra),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"color",key:"OpenIdSettings.ButtonColor",label:(0,N.defineMessage)({id:"admin.openid.buttonColorTitle",defaultMessage:"Button Color:"}),help_text:(0,N.defineMessage)({id:"admin.openid.buttonColorDesc",defaultMessage:"Specify the color of the OpenID login button for white labeling purposes. Use a hex code with a #-sign before the code."}),help_text_markdown:!1,isHidden:Ys(zs(Js("openidType",mt.YM.OPENID_SERVICE)),ra),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"OpenIdSettings.DiscoveryEndpoint",label:(0,N.defineMessage)({id:"admin.openid.discoveryEndpointTitle",defaultMessage:"Discovery Endpoint:"}),placeholder:(0,N.defineMessage)({id:"admin.openid.discovery.placeholder",defaultMessage:"https://id.mydomain.com/.well-known/openid-configuration"}),help_text:(0,N.defineMessage)({id:"admin.openid.discoveryEndpointDesc",defaultMessage:"Enter the URL of the discovery document of the OpenID Connect provider you want to connect with."}),help_text_markdown:!1,isHidden:Ys(zs(Js("openidType",mt.YM.OPENID_SERVICE)),ra),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"OpenIdSettings.Id",label:(0,N.defineMessage)({id:"admin.openid.clientIdTitle",defaultMessage:"Client ID:"}),help_text:(0,N.defineMessage)({id:"admin.openid.clientIdDescription",defaultMessage:"Obtaining the Client ID differs across providers. Please check you provider's documentation"}),placeholder:(0,N.defineMessage)({id:"admin.openid.clientIdExample",defaultMessage:'E.g.: "adf3sfa2-ag3f-sn4n-ids0-sh1hdax192qq"'}),isHidden:Ys(zs(Js("openidType",mt.YM.OPENID_SERVICE)),ra),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"text",key:"OpenIdSettings.Secret",label:(0,N.defineMessage)({id:"admin.openid.clientSecretTitle",defaultMessage:"Client Secret:"}),help_text:(0,N.defineMessage)({id:"admin.openid.clientSecretDescription",defaultMessage:"Obtaining the Client Secret differs across providers. Please check you provider's documentation"}),placeholder:(0,N.defineMessage)({id:"admin.openid.clientSecretExample",defaultMessage:'E.g.: "H8sz0Az-dDs2p15-7QzD231"'}),isHidden:Ys(zs(Js("openidType",mt.YM.OPENID_SERVICE)),ra),isDisabled:zs(da(M.AUTHENTICATION.OPENID))},{type:"custom",key:"OpenIDCustomFeatureDiscovery",component:()=>T().createElement(Bd,{featureName:"openid",minimumSKURequiredForFeature:mt.gS.Professional,title:(0,N.defineMessage)({id:"admin.openid_custom_feature_discovery.title",defaultMessage:"Integrate OpenID Connect with Mattermost Professional"}),copy:(0,N.defineMessage)({id:"admin.openid_custom_feature_discovery.copy",defaultMessage:"Use OpenID Connect for authentication and single sign-on (SSO) with any service that supports the OIDC specification such as Apple, Okta, OneLogin, and more."}),learnMoreURL:"https://docs.mattermost.com/cloud/cloud-administration/sso-openid-connect.html",featureDiscoveryImage:T().createElement(Yd,{width:276,height:170})}),isHidden:zs(Ws(Js("openidType",mt.YM.OPENID_SERVICE),ra)),isDisabled:zs(da(M.AUTHENTICATION.OPENID))}]},restrictedIndicator:ga()},openid_feature_discovery:{url:"authentication/openid",isDiscovery:!0,title:(0,N.defineMessage)({id:"admin.sidebar.openid",defaultMessage:"OpenID Connect"}),isHidden:Ys(Ys(aa("OpenId"),sa)),schema:{id:"OpenIdSettings",name:(0,N.defineMessage)({id:"admin.authentication.openid",defaultMessage:"OpenID Connect"}),settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"openid",minimumSKURequiredForFeature:mt.gS.Professional,title:(0,N.defineMessage)({id:"admin.openid_feature_discovery.title",defaultMessage:"Integrate OpenID Connect with Mattermost Professional"}),copy:(0,N.defineMessage)({id:"admin.openid_feature_discovery.copy",defaultMessage:"Use OpenID Connect for authentication and single sign-on (SSO) with any service that supports the OIDC specification such as Google, Entra ID, Apple, Okta, OneLogin, and more."}),learnMoreURL:"https://docs.mattermost.com/cloud/cloud-administration/sso-openid-connect.html",featureDiscoveryImage:T().createElement(Yd,{width:276,height:170})}),key:"OpenIDFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0)},gitlab_feature_discovery:{url:"authentication/gitlab",isDiscovery:!0,title:(0,N.defineMessage)({id:"admin.sidebar.gitlab",defaultMessage:"GitLab"}),isHidden:Ys(aa("OpenId")),schema:{id:"GitLabSettings",name:(0,N.defineMessage)({id:"admin.authentication.gitlab",defaultMessage:"GitLab"}),settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"gitlab",minimumSKURequiredForFeature:mt.gS.Professional,title:(0,N.defineMessage)({id:"admin.gitlab_feature_discovery.title",defaultMessage:"Integrate GitLab SSO with OpenID Connect in Mattermost Professional"}),copy:(0,N.defineMessage)({id:"admin.gitlab_feature_discovery.copy",defaultMessage:"When you connect GitLab as your single sign-on provider, your team can access Mattermost without having to re-enter their GitLab credentials. Available only on Mattermost Professional and above."}),learnMoreURL:"https://docs.mattermost.com/administration-guide/onboard/sso-gitlab.html",featureDiscoveryImage:T().createElement(Yd,{width:276,height:170})}),key:"GitLabFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0)},guest_access:{url:"authentication/guest_access",title:(0,N.defineMessage)({id:"admin.sidebar.guest_access",defaultMessage:"Guest Access"}),isHidden:Ys(zs(aa("GuestAccounts")),zs(oa(M.AUTHENTICATION.GUEST_ACCESS))),schema:{id:"GuestAccountsSettings",name:(0,N.defineMessage)({id:"admin.authentication.guest_access",defaultMessage:"Guest Access"}),settings:[{type:"custom",component:dl,key:"GuestAccountsSettings.Enable",isDisabled:zs(da(M.AUTHENTICATION.GUEST_ACCESS))},{type:"bool",key:"GuestAccountsSettings.HideTags",label:(0,N.defineMessage)({id:"admin.guest_access.hideTags",defaultMessage:"Hide guest tag"}),help_text:(0,N.defineMessage)({id:"admin.guest_access.hideTagsDescription",defaultMessage:'When true, the "guest" tag will not be shown next to the name of all guest users in the Mattermost chat interface.'}),help_text_markdown:!1,isDisabled:zs(da(M.AUTHENTICATION.GUEST_ACCESS))},{type:"text",key:"GuestAccountsSettings.RestrictCreationToDomains",label:(0,N.defineMessage)({id:"admin.guest_access.whitelistedDomainsTitle",defaultMessage:"Whitelisted Guest Domains:"}),help_text:(0,N.defineMessage)({id:"admin.guest_access.whitelistedDomainsDescription",defaultMessage:"(Optional) Guest accounts can be created at the system level from this list of allowed guest domains."}),help_text_markdown:!0,placeholder:(0,N.defineMessage)({id:"admin.guest_access.whitelistedDomainsExample",defaultMessage:'E.g.: "company.com, othercorp.org"'}),isDisabled:zs(da(M.AUTHENTICATION.GUEST_ACCESS))},{type:"bool",key:"GuestAccountsSettings.EnforceMultifactorAuthentication",label:(0,N.defineMessage)({id:"admin.guest_access.mfaTitle",defaultMessage:"Enforce Multi-factor Authentication: "}),help_text:(0,N.defineMessage)({id:"admin.guest_access.mfaDescriptionMFANotEnabled",defaultMessage:"[Multi-factor authentication](./mfa) is currently not enabled."}),help_text_markdown:!0,isHidden:Xs("ServiceSettings","EnableMultifactorAuthentication"),isDisabled:()=>!0},{type:"bool",key:"GuestAccountsSettings.EnforceMultifactorAuthentication",label:(0,N.defineMessage)({id:"admin.guest_access.mfaTitle",defaultMessage:"Enforce Multi-factor Authentication: "}),help_text:(0,N.defineMessage)({id:"admin.guest_access.mfaDescriptionMFANotEnforced",defaultMessage:"[Multi-factor authentication](./mfa) is currently not enforced."}),help_text_markdown:!0,isHidden:Ys($s("ServiceSettings","EnableMultifactorAuthentication"),Xs("ServiceSettings","EnforceMultifactorAuthentication")),isDisabled:()=>!0},{type:"bool",key:"GuestAccountsSettings.EnforceMultifactorAuthentication",label:(0,N.defineMessage)({id:"admin.guest_access.mfaTitle",defaultMessage:"Enforce Multi-factor Authentication: "}),help_text:(0,N.defineMessage)({id:"admin.guest_access.mfaDescription",defaultMessage:"When true, <link>multi-factor authentication</link> for guests is required for login. New guest users will be required to configure MFA on signup. Logged in guest users without MFA configured are redirected to the MFA setup page until configuration is complete.\n \nIf your system has guest users with login methods other than AD/LDAP and email, MFA must be enforced with the authentication provider outside of Mattermost."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.MULTI_FACTOR_AUTH},e)},help_text_markdown:!1,isHidden:Ys($s("ServiceSettings","EnableMultifactorAuthentication"),$s("ServiceSettings","EnforceMultifactorAuthentication")),isDisabled:zs(da(M.AUTHENTICATION.GUEST_ACCESS))}]},restrictedIndicator:ga()},guest_access_feature_discovery:{isDiscovery:!0,url:"authentication/guest_access",title:(0,N.defineMessage)({id:"admin.sidebar.guest_access",defaultMessage:"Guest Access"}),isHidden:Ys(aa("GuestAccounts")),schema:{id:"GuestAccountsSettings",name:(0,N.defineMessage)({id:"admin.authentication.guest_access",defaultMessage:"Guest Access"}),settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"guest_access",minimumSKURequiredForFeature:mt.gS.Professional,title:(0,N.defineMessage)({id:"admin.guest_access_feature_discovery.title",defaultMessage:"Enable guest accounts with Mattermost Professional"}),copy:(0,N.defineMessage)({id:"admin.guest_access_feature_discovery.copy",defaultMessage:"Collaborate with users outside of your organization while tightly controlling their access channels and team members."}),learnMoreURL:"https://docs.mattermost.com/deployment/guest-accounts.html",featureDiscoveryImage:T().createElement(Jd,null)}),key:"GuestAccessFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0)}}},plugins:{icon:T().createElement(R.PowerPlugOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,N.defineMessage)({id:"admin.sidebar.plugins",defaultMessage:"Plugins"}),id:"plugins",isHidden:zs(oa("plugins")),subsections:{plugin_management:{url:"plugins/plugin_management",title:(0,N.defineMessage)({id:"admin.plugins.pluginManagement",defaultMessage:"Plugin Management"}),searchableStrings:La,isDisabled:zs(da("plugins")),schema:{id:"PluginManagementSettings",component:Ba}},custom:{url:"plugins/plugin_:plugin_id",isDisabled:zs(da("plugins")),schema:{id:"CustomPluginSettings",component:ba}}}},integrations:{icon:T().createElement(R.SitemapIcon,{size:16,color:"currentColor"}),sectionTitle:(0,N.defineMessage)({id:"admin.sidebar.integrations",defaultMessage:"Integrations"}),id:"integrations",isHidden:zs(la(M.INTEGRATIONS)),subsections:{integration_management:{url:"integrations/integration_management",title:(0,N.defineMessage)({id:"admin.integrations.integrationManagement",defaultMessage:"Integration Management"}),isHidden:Ws(zs(oa(M.INTEGRATIONS.INTEGRATION_MANAGEMENT))),schema:{id:"CustomIntegrationSettings",name:(0,N.defineMessage)({id:"admin.integrations.integrationManagement.title",defaultMessage:"Integration Management"}),settings:[{type:"bool",key:"ServiceSettings.EnableIncomingWebhooks",label:(0,N.defineMessage)({id:"admin.service.webhooksTitle",defaultMessage:"Enable Incoming Webhooks: "}),help_text:(0,N.defineMessage)({id:"admin.service.webhooksDescription",defaultMessage:"When true, incoming webhooks will be allowed. To help combat phishing attacks, all posts from webhooks will be labelled by a BOT tag. See <link>documentation</link> to learn more."}),help_text_values:{link:e=>T().createElement(wt.A,{href:mt.i3.INCOMING_WEBHOOKS,location:"admin_console"},e)},help_text_markdown:!1,isDisabled:zs(da(M.INTEGRATIONS.INTEGRATION_MANAGEMENT))},{type:"bool",key:"ServiceSettings.EnableOutgoingWebhooks",label:(0,N.defineMessage)({id:"admin.service.outWebhooksTitle",defaultMessage:"Enable Outgoing Webhooks: "}),help_text:(0,N.defineMessage)({id:"admin.service.outWebhooksDesc",defaultMessage:"When true, outgoing webhooks will be allowed. See <link>documentation</link> to learn more."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.i3.OUTGOING_WEBHOOKS},e)},help_text_markdown:!1,isDisabled:zs(da(M.INTEGRATIONS.INTEGRATION_MANAGEMENT))},{type:"bool",key:"ServiceSettings.EnableOutgoingOAuthConnections",label:(0,N.defineMessage)({id:"admin.service.outgoingOAuthConnectionsTitle",defaultMessage:"Enable Outgoing OAuth Connections: "}),help_text:(0,N.defineMessage)({id:"admin.service.outgoingOAuthConnectionsDesc",defaultMessage:"When true, outgoing webhooks and slash commands will use set up oauth connections to authenticate with third party services. See <link>documentation</link> to learn more."}),help_text_values:{link:e=>T().createElement("a",{href:"https://mattermost.com/pl/outgoing-oauth-connections"},e)},help_text_markdown:!1,isDisabled:zs(da(M.INTEGRATIONS.INTEGRATION_MANAGEMENT))},{type:"bool",key:"ServiceSettings.EnableCommands",label:(0,N.defineMessage)({id:"admin.service.cmdsTitle",defaultMessage:"Enable Custom Slash Commands: "}),help_text:(0,N.defineMessage)({id:"admin.service.cmdsDesc",defaultMessage:"When true, custom slash commands will be allowed. See <link>documentation</link> to learn more."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.i3.SETUP_CUSTOM_SLASH_COMMANDS},e)},help_text_markdown:!1,isDisabled:zs(da(M.INTEGRATIONS.INTEGRATION_MANAGEMENT))},{type:"bool",key:"ServiceSettings.EnableOAuthServiceProvider",label:(0,N.defineMessage)({id:"admin.oauth.providerTitle",defaultMessage:"Enable OAuth 2.0 Service Provider: "}),help_text:(0,N.defineMessage)({id:"admin.oauth.providerDescription",defaultMessage:"When true, Mattermost can act as an OAuth 2.0 service provider allowing Mattermost to authorize API requests from external applications. See <link>documentation</link> to learn more."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.i3.ENABLE_OAUTH2},e)},help_text_markdown:!1,isDisabled:zs(da(M.INTEGRATIONS.INTEGRATION_MANAGEMENT)),isHidden:aa("Cloud")},{type:"number",key:"ServiceSettings.OutgoingIntegrationRequestsTimeout",label:(0,N.defineMessage)({id:"admin.service.integrationRequestTitle",defaultMessage:"Integration request timeout: "}),help_text:(0,N.defineMessage)({id:"admin.service.integrationRequestDesc",defaultMessage:"The number of seconds to wait for Integration requests. That includes <slashCommands>Slash Commands</slashCommands>, <outgoingWebhooks>Outgoing Webhooks</outgoingWebhooks>, <interactiveMessages>Interactive Messages</interactiveMessages> and <interactiveDialogs>Interactive Dialogs</interactiveDialogs>."}),help_text_values:{slashCommands:e=>T().createElement(wt.A,{location:"admin_console",href:mt.i3.CUSTOM_SLASH_COMMANDS},e),outgoingWebhooks:e=>T().createElement(wt.A,{location:"admin_console",href:mt.i3.OUTGOING_WEBHOOKS},e),interactiveMessages:e=>T().createElement(wt.A,{location:"admin_console",href:mt.i3.INTERACTIVE_MESSAGES},e),interactiveDialogs:e=>T().createElement(wt.A,{location:"admin_console",href:mt.i3.INTERACTIVE_DIALOGS},e)},help_text_markdown:!1,isDisabled:zs(da(M.INTEGRATIONS.INTEGRATION_MANAGEMENT))},{type:"bool",key:"ServiceSettings.EnablePostUsernameOverride",label:(0,N.defineMessage)({id:"admin.service.overrideTitle",defaultMessage:"Enable integrations to override usernames:"}),help_text:(0,N.defineMessage)({id:"admin.service.overrideDescription",defaultMessage:"When true, webhooks, slash commands and other integrations will be allowed to change the username they are posting as. Note: Combined with allowing integrations to override profile picture icons, users may be able to perform phishing attacks by attempting to impersonate other users."}),isDisabled:zs(da(M.INTEGRATIONS.INTEGRATION_MANAGEMENT))},{type:"bool",key:"ServiceSettings.EnablePostIconOverride",label:(0,N.defineMessage)({id:"admin.service.iconTitle",defaultMessage:"Enable integrations to override profile picture icons:"}),help_text:(0,N.defineMessage)({id:"admin.service.iconDescription",defaultMessage:"When true, webhooks, slash commands and other integrations will be allowed to change the profile picture they post with. Note: Combined with allowing integrations to override usernames, users may be able to perform phishing attacks by attempting to impersonate other users."}),isDisabled:zs(da(M.INTEGRATIONS.INTEGRATION_MANAGEMENT))},{type:"bool",key:"ServiceSettings.EnableUserAccessTokens",label:(0,N.defineMessage)({id:"admin.service.userAccessTokensTitle",defaultMessage:"Enable User Access Tokens: "}),help_text:(0,N.defineMessage)({id:"admin.service.userAccessTokensDescription",defaultMessage:"When true, users can create <link>user access tokens</link> for integrations in <strong>Account Menu > Account Settings > Security</strong>. They can be used to authenticate against the API and give full access to the account.\n\n To manage who can create personal access tokens or to search users by token ID, go to the <strong>User Management > Users</strong> page."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.i3.PERSONAL_ACCESS_TOKENS},e),strong:e=>T().createElement("strong",null,e)},help_text_markdown:!1,isDisabled:zs(da(M.INTEGRATIONS.INTEGRATION_MANAGEMENT))}]}},bot_accounts:{url:"integrations/bot_accounts",title:(0,N.defineMessage)({id:"admin.integrations.botAccounts",defaultMessage:"Bot Accounts"}),isHidden:Ws(zs(oa(M.INTEGRATIONS.BOT_ACCOUNTS))),schema:{id:"BotAccountSettings",name:(0,N.defineMessage)({id:"admin.integrations.botAccounts.title",defaultMessage:"Bot Accounts"}),settings:[{type:"bool",key:"ServiceSettings.EnableBotAccountCreation",label:(0,N.defineMessage)({id:"admin.service.enableBotTitle",defaultMessage:"Enable Bot Account Creation: "}),help_text:(0,N.defineMessage)({id:"admin.service.enableBotAccountCreation",defaultMessage:"When true, System Admins can create bot accounts for integrations in <linkBots>Integrations > Bot Accounts</linkBots>. Bot accounts are similar to user accounts except they cannot be used to log in. See <linkDocumentation>documentation</linkDocumentation> to learn more."}),help_text_markdown:!1,help_text_values:{siteURL:(0,Pi.vV)(),linkDocumentation:e=>T().createElement(wt.A,{location:"admin_console",href:"https://mattermost.com/pl/default-bot-accounts"},e),linkBots:e=>T().createElement(wt.A,{location:"admin_console",href:"".concat((0,Pi.vV)(),"/_redirect/integrations/bots")},e)},isDisabled:zs(da(M.INTEGRATIONS.BOT_ACCOUNTS))},{type:"bool",key:"ServiceSettings.DisableBotsWhenOwnerIsDeactivated",label:(0,N.defineMessage)({id:"admin.service.disableBotOwnerDeactivatedTitle",defaultMessage:"Disable bot accounts when owner is deactivated:"}),help_text:(0,N.defineMessage)({id:"admin.service.disableBotWhenOwnerIsDeactivated",defaultMessage:"When a user is deactivated, disables all bot accounts managed by the user. To re-enable bot accounts, go to [Integrations > Bot Accounts]({siteURL}/_redirect/integrations/bots)."}),help_text_markdown:!0,help_text_values:{siteURL:(0,Pi.vV)()},isDisabled:zs(da(M.INTEGRATIONS.BOT_ACCOUNTS))}]}},gif:{url:"integrations/gif",title:(0,N.defineMessage)({id:"admin.sidebar.gif",defaultMessage:"GIF"}),isHidden:Ws(zs(oa(M.INTEGRATIONS.GIF))),schema:{id:"GifSettings",name:(0,N.defineMessage)({id:"admin.integrations.gif",defaultMessage:"GIF"}),settings:[{type:"bool",key:"ServiceSettings.EnableGifPicker",label:(0,N.defineMessage)({id:"admin.customization.enableGifPickerTitle",defaultMessage:"Enable GIF Picker:"}),help_text:(0,N.defineMessage)({id:"admin.customization.enableGifPickerDesc",defaultMessage:"Allows users to select GIFs from the emoji picker."}),isDisabled:zs(da(M.INTEGRATIONS.GIF))}]}},cors:{url:"integrations/cors",title:(0,N.defineMessage)({id:"admin.sidebar.cors",defaultMessage:"CORS"}),isHidden:Ys(Xs("ExperimentalSettings","RestrictSystemAdmin"),zs(oa(M.INTEGRATIONS.CORS))),schema:{id:"CORS",name:(0,N.defineMessage)({id:"admin.integrations.cors",defaultMessage:"CORS"}),settings:[{type:"text",key:"ServiceSettings.AllowCorsFrom",label:(0,N.defineMessage)({id:"admin.service.corsTitle",defaultMessage:"Enable cross-origin requests from:"}),placeholder:(0,N.defineMessage)({id:"admin.service.corsEx",defaultMessage:"http://example.com"}),help_text:(0,N.defineMessage)({id:"admin.service.corsDescription",defaultMessage:'Enable HTTP Cross origin request from a specific domain. Use "*" if you want to allow CORS from any domain or leave it blank to disable it. Should not be set to "*" in production.'}),isDisabled:zs(da(M.INTEGRATIONS.CORS))},{type:"text",key:"ServiceSettings.CorsExposedHeaders",label:(0,N.defineMessage)({id:"admin.service.corsExposedHeadersTitle",defaultMessage:"CORS Exposed Headers:"}),placeholder:(0,N.defineMessage)({id:"admin.service.corsHeadersEx",defaultMessage:"X-My-Header"}),help_text:(0,N.defineMessage)({id:"admin.service.corsExposedHeadersDescription",defaultMessage:"Whitelist of headers that will be accessible to the requester."}),isDisabled:zs(da(M.INTEGRATIONS.CORS))},{type:"bool",key:"ServiceSettings.CorsAllowCredentials",label:(0,N.defineMessage)({id:"admin.service.corsAllowCredentialsLabel",defaultMessage:"CORS Allow Credentials:"}),help_text:(0,N.defineMessage)({id:"admin.service.corsAllowCredentialsDescription",defaultMessage:"When true, requests that pass validation will include the Access-Control-Allow-Credentials header."}),isDisabled:zs(da(M.INTEGRATIONS.CORS))},{type:"bool",key:"ServiceSettings.CorsDebug",label:(0,N.defineMessage)({id:"admin.service.CorsDebugLabel",defaultMessage:"CORS Debug:"}),help_text:(0,N.defineMessage)({id:"admin.service.corsDebugDescription",defaultMessage:'When true, prints messages to the logs to help when developing an integration that uses CORS. These messages will include the structured key value pair "source":"cors".'}),isDisabled:zs(da(M.INTEGRATIONS.CORS))}]}},embedding:{url:"integrations/embedding",title:(0,N.defineMessage)({id:"admin.sidebar.embedding",defaultMessage:"Embedding"}),isHidden:zs(oa(M.INTEGRATIONS.CORS)),schema:{id:"EmbeddingSettings",name:(0,N.defineMessage)({id:"admin.integrations.embedding",defaultMessage:"Embedding"}),settings:[{type:"text",key:"ServiceSettings.FrameAncestors",label:(0,N.defineMessage)({id:"admin.customization.frameAncestorTitle",defaultMessage:"Frame Ancestors:"}),help_text:(0,N.defineMessage)({id:"admin.customization.frameAncestorDesc",defaultMessage:"Allows the Mattermost web client to be embedded in other websites. Enter a space-separated list of domains that are allowed to embed the Mattermost web client. Leave blank to disallow embedding."}),isDisabled:zs(da(M.INTEGRATIONS.CORS))}]}}}},compliance:{icon:T().createElement(R.FormatListBulletedIcon,{size:16,color:"currentColor"}),sectionTitle:(0,N.defineMessage)({id:"admin.sidebar.compliance",defaultMessage:"Compliance"}),isHidden:zs(la(M.COMPLIANCE)),subsections:{custom_policy_form_edit:{url:"compliance/data_retention_settings/custom_policy/:policy_id(".concat(ki.Zv,")"),isHidden:Ys(zs(aa("DataRetention")),zs(oa(M.COMPLIANCE.DATA_RETENTION_POLICY))),isDisabled:zs(da(M.COMPLIANCE.DATA_RETENTION_POLICY)),schema:{id:"CustomDataRetentionForm",component:cd}},custom_policy_form:{url:"compliance/data_retention_settings/custom_policy",isHidden:Ys(zs(aa("DataRetention")),zs(oa(M.COMPLIANCE.DATA_RETENTION_POLICY))),isDisabled:zs(da(M.COMPLIANCE.DATA_RETENTION_POLICY)),schema:{id:"CustomDataRetentionForm",component:cd}},global_policy_form:{url:"compliance/data_retention_settings/global_policy",isHidden:Ys(zs(aa("DataRetention")),zs(oa(M.COMPLIANCE.DATA_RETENTION_POLICY))),isDisabled:zs(da(M.COMPLIANCE.DATA_RETENTION_POLICY)),schema:{id:"GlobalDataRetentionForm",component:gd}},data_retention:{url:"compliance/data_retention_settings",title:(0,N.defineMessage)({id:"admin.sidebar.dataRetentionSettingsPolicies",defaultMessage:"Data Retention Policies"}),searchableStrings:[dC.data_retention_title,...Sl],isHidden:Ys(zs(aa("DataRetention")),zs(oa(M.COMPLIANCE.DATA_RETENTION_POLICY))),isDisabled:zs(da(M.COMPLIANCE.DATA_RETENTION_POLICY)),schema:{id:"DataRetentionSettings",component:Tl},restrictedIndicator:ga()},data_retention_feature_discovery:{url:"compliance/data_retention",isDiscovery:!0,title:(0,N.defineMessage)({id:"admin.sidebar.dataRetentionPolicy",defaultMessage:"Data Retention Policy"}),isHidden:Ys(aa("DataRetention")),schema:{id:"DataRetentionSettings",name:dC.data_retention_title,settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"data_retention",minimumSKURequiredForFeature:mt.gS.Enterprise,title:(0,N.defineMessage)({id:"admin.data_retention_feature_discovery.title",defaultMessage:"Create data retention schedules with Mattermost Enterprise"}),copy:(0,N.defineMessage)({id:"admin.data_retention_feature_discovery.copy",defaultMessage:"Hold on to your data only as long as you need to. Create data retention jobs for select channels and teams to automatically delete disposable data."}),learnMoreURL:"https://docs.mattermost.com/administration/data-retention.html",featureDiscoveryImage:T().createElement(zd,{width:213,height:156})}),key:"DataRetentionFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0,mt.gS.Enterprise)},message_export:{url:"compliance/export",title:(0,N.defineMessage)({id:"admin.sidebar.complianceExport",defaultMessage:"Compliance Export"}),searchableStrings:ju,isHidden:Ys(zs(aa("MessageExport")),zs(oa(M.COMPLIANCE.COMPLIANCE_EXPORT))),isDisabled:zs(da(M.COMPLIANCE.COMPLIANCE_EXPORT)),schema:{id:"MessageExportSettings",component:Hu},restrictedIndicator:ga()},compliance_export_feature_discovery:{isDiscovery:!0,url:"compliance/export",title:(0,N.defineMessage)({id:"admin.sidebar.complianceExport",defaultMessage:"Compliance Export"}),isHidden:Ys(aa("MessageExport")),schema:{id:"MessageExportSettings",name:(0,N.defineMessage)({id:"admin.complianceExport.title",defaultMessage:"Compliance Export"}),settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"compliance_export",minimumSKURequiredForFeature:mt.gS.Enterprise,title:(0,N.defineMessage)({id:"admin.compliance_export_feature_discovery.title",defaultMessage:"Run compliance exports with Mattermost Enterprise"}),copy:(0,N.defineMessage)({id:"admin.compliance_export_feature_discovery.copy",defaultMessage:"Run daily compliance reports and export them to a variety of formats consumable by third-party integration tools such as Smarsh (Actiance)."}),learnMoreURL:mt.Uk.COMPILANCE_EXPORT,featureDiscoveryImage:T().createElement(Hd,{width:283,height:174})}),key:"ComplianceExportFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0,mt.gS.Enterprise)},audits:{url:"compliance/monitoring",title:(0,N.defineMessage)({id:"admin.sidebar.complianceMonitoring",defaultMessage:"Compliance Monitoring"}),isHidden:Ys(zs(aa("Compliance")),zs(oa(M.COMPLIANCE.COMPLIANCE_MONITORING))),isDisabled:zs(da(M.COMPLIANCE.COMPLIANCE_MONITORING)),searchableStrings:Dr,schema:{id:"Audits",name:(0,N.defineMessage)({id:"admin.compliance.complianceMonitoring",defaultMessage:"Compliance Monitoring"}),component:Fr,isHidden:zs(aa("Compliance")),settings:[{type:"banner",label:(0,N.defineMessage)({id:"admin.compliance.newComplianceExportBanner",defaultMessage:"This feature is replaced by a new <link>Compliance Export</link> feature, and will be removed in a future release. We recommend migrating to the new system."}),label_values:{link:e=>T().createElement(w.Link,{to:"/admin_console/compliance/export"},e)},banner_type:"info",isHidden:zs(aa("Compliance"))},{type:"bool",key:"ComplianceSettings.Enable",label:(0,N.defineMessage)({id:"admin.compliance.enableTitle",defaultMessage:"Enable Compliance Reporting:"}),help_text:(0,N.defineMessage)({id:"admin.compliance.enableDesc",defaultMessage:"When true, Mattermost allows compliance reporting from the <strong>Compliance and Auditing</strong> tab. See <link>documentation</link> to learn more."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.COMPILANCE_MONITORING},e),strong:e=>T().createElement("strong",null,e)},help_text_markdown:!1,isHidden:zs(aa("Compliance")),isDisabled:zs(da(M.COMPLIANCE.COMPLIANCE_MONITORING))},{type:"text",key:"ComplianceSettings.Directory",label:(0,N.defineMessage)({id:"admin.compliance.directoryTitle",defaultMessage:"Compliance Report Directory:"}),help_text:(0,N.defineMessage)({id:"admin.compliance.directoryDescription",defaultMessage:"Directory to which compliance reports are written. If blank, will be set to ./data/."}),placeholder:(0,N.defineMessage)({id:"admin.compliance.directoryExample",defaultMessage:'E.g.: "./data/"'}),isHidden:zs(aa("Compliance")),isDisabled:Ys(zs(da(M.COMPLIANCE.COMPLIANCE_MONITORING)),Qs("ComplianceSettings.Enable"))},{type:"bool",key:"ComplianceSettings.EnableDaily",label:(0,N.defineMessage)({id:"admin.compliance.enableDailyTitle",defaultMessage:"Enable Daily Report:"}),help_text:(0,N.defineMessage)({id:"admin.compliance.enableDailyDesc",defaultMessage:"When true, Mattermost will generate a daily compliance report."}),isHidden:zs(aa("Compliance")),isDisabled:Ys(zs(da(M.COMPLIANCE.COMPLIANCE_MONITORING)),Qs("ComplianceSettings.Enable"))}]}},audit_logging:{url:"compliance/audit_logging",title:(0,N.defineMessage)({id:"admin.sidebar.audit_logging_experimental",defaultMessage:"Audit Logging"}),isHidden:Ys(zs(oa(M.EXPERIMENTAL.FEATURES)),$s("FeatureFlags","ExperimentalAuditSettingsSystemConsoleUI"),zs(na(mt.gS.Enterprise))),schema:{id:"ExperimentalAuditSettings",name:"Audit logging (Beta)",settings:[{type:"banner",label:(0,N.defineMessage)({id:"admin.rate.noteDescription",defaultMessage:"Changing properties in this section will require a server restart before taking effect."}),banner_type:"info"},{type:"bool",key:"ExperimentalAuditSettings.FileEnabled",label:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_enabled.title",defaultMessage:"File Enabled"}),help_text:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_enabled.help_text",defaultMessage:"Choose whether audit logs are written locally to a file or not."}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES)),isHidden:aa("Cloud")},{type:"text",key:"ExperimentalAuditSettings.FileName",label:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_name.title",defaultMessage:"File Name"}),help_text:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_name.help_text",defaultMessage:"The name of the file to write to."}),isDisabled:Ys(zs(da(M.EXPERIMENTAL.FEATURES)),Qs("ExperimentalAuditSettings.FileEnabled")),isHidden:aa("Cloud")},{type:"number",key:"ExperimentalAuditSettings.FileMaxSizeMB",label:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_max_size.title",defaultMessage:"Max File Size (MB)"}),help_text:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_max_size.help_text",defaultMessage:"Maximum size, in megabytes (MB), the log file can grow before it gets rotated."}),isDisabled:Ys(zs(da(M.EXPERIMENTAL.FEATURES)),Qs("ExperimentalAuditSettings.FileEnabled")),isHidden:aa("Cloud")},{type:"number",key:"ExperimentalAuditSettings.FileMaxAgeDays",label:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_max_age.title",defaultMessage:"Max File Age (Days)"}),help_text:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_max_age.help_text",defaultMessage:"Maximum number of days to retain old log files. 0 disables the removal of old log files."}),isDisabled:Ys(zs(da(M.EXPERIMENTAL.FEATURES)),Qs("ExperimentalAuditSettings.FileEnabled")),isHidden:aa("Cloud")},{type:"number",key:"ExperimentalAuditSettings.FileMaxBackups",label:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_max_backups.title",defaultMessage:"Maximum File Backups"}),help_text:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_max_backups.help_text",defaultMessage:"Maximum number of old log files to retain. 0 retains all old log files. Note: Configuring Max File Age can result in old log files being deleted regardless of this configuration value."}),isDisabled:Ys(zs(da(M.EXPERIMENTAL.FEATURES)),Qs("ExperimentalAuditSettings.FileEnabled")),isHidden:aa("Cloud")},{type:"bool",key:"ExperimentalAuditSettings.FileCompress",label:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_compress.title",defaultMessage:"File Compression"}),help_text:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_compress.help_text",defaultMessage:"Choose whether enable or disable file compression."}),isDisabled:Ys(zs(da(M.EXPERIMENTAL.FEATURES)),Qs("ExperimentalAuditSettings.FileEnabled")),isHidden:aa("Cloud")},{type:"number",key:"ExperimentalAuditSettings.FileMaxQueueSize",label:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_max_queue_size.title",defaultMessage:"Maximum File Queue"}),help_text:(0,N.defineMessage)({id:"admin.audit_logging_experimental.file_max_queue_size.help_text",defaultMessage:"The maximum number of files to be retained in the queue."}),isDisabled:Ys(zs(da(M.EXPERIMENTAL.FEATURES)),Qs("ExperimentalAuditSettings.FileEnabled")),isHidden:aa("Cloud")},{type:"longtext",key:"ExperimentalAuditSettings.AdvancedLoggingJSON",label:(0,N.defineMessage)({id:"admin.log.AdvancedLoggingJSONTitle",defaultMessage:"Advanced Logging:"}),help_text:(0,N.defineMessage)({id:"admin.log.AdvancedLoggingJSONDescription",defaultMessage:"The JSON configuration for Advanced Audit Logging. Please see <link>documentation</link> to learn more about Advanced Logging and the JSON format it uses."}),help_text_markdown:!1,help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console.experimental_audit_settings",href:mt.Uk.ADVANCED_LOGGING},e)},placeholder:(0,N.defineMessage)({id:"admin.log.AdvancedLoggingJSONPlaceholder",defaultMessage:"Enter your JSON configuration"}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES)),validate:e=>{const t=new Vs(!0,"");if(!e)return t;try{return JSON.parse(e),t}catch(e){return new Vs(!1,e.message)}},onConfigLoad:e=>JSON.stringify(e,null," "),onConfigSave:e=>e?JSON.parse(e):{undefined:void 0}},{type:"custom",component:Ar,label:(0,N.defineMessage)({id:"admin.audit_logging_experimental.certificate.title",defaultMessage:"Certificate"}),key:"ExperimentalAuditSettings.Certificate",help_text:(0,N.defineMessage)({id:"admin.audit_logging_experimental.certificate.help_text",defaultMessage:"The certificate file used for audit logging encryption."}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES)),isHidden:zs(aa("Cloud"))}]}},custom_terms_of_service:{url:"compliance/custom_terms_of_service",title:(0,N.defineMessage)({id:"admin.sidebar.customTermsOfService",defaultMessage:"Custom Terms of Service"}),searchableStrings:pl,isHidden:Ys(zs(aa("CustomTermsOfService")),zs(oa(M.COMPLIANCE.CUSTOM_TERMS_OF_SERVICE))),isDisabled:zs(da(M.COMPLIANCE.CUSTOM_TERMS_OF_SERVICE)),schema:{id:"TermsOfServiceSettings",component:gl},restrictedIndicator:ga()},custom_terms_of_service_feature_discovery:{url:"compliance/custom_terms_of_service",isDiscovery:!0,title:(0,N.defineMessage)({id:"admin.sidebar.customTermsOfService",defaultMessage:"Custom Terms of Service"}),isHidden:Ys(aa("CustomTermsOfService")),schema:{id:"TermsOfServiceSettings",name:ul.termsOfServiceTitle,settings:[{type:"custom",component:()=>T().createElement(Bd,{featureName:"custom_terms_of_service",minimumSKURequiredForFeature:mt.gS.Enterprise,title:(0,N.defineMessage)({id:"admin.custom_terms_of_service_feature_discovery.title",defaultMessage:"Create custom terms of service with Mattermost Enterprise"}),copy:(0,N.defineMessage)({id:"admin.custom_terms_of_service_feature_discovery.copy",defaultMessage:"Create your own terms of service that new users must accept before accessing your Mattermost instance on desktop, web, or mobile."}),learnMoreURL:"https://docs.mattermost.com/cloud/cloud-administration/custom-terms-of-service.html",featureDiscoveryImage:T().createElement(qd,{width:289,height:166})}),key:"CustomTermsOfServiceFeatureDiscovery",isDisabled:zs(da(M.ABOUT.EDITION_AND_LICENSE))}]},restrictedIndicator:ga(!0,mt.gS.Enterprise)}}},experimental:{icon:T().createElement(R.FlaskOutlineIcon,{size:16,color:"currentColor"}),sectionTitle:(0,N.defineMessage)({id:"admin.sidebar.experimental",defaultMessage:"Experimental"}),isHidden:zs(la(M.EXPERIMENTAL)),subsections:{experimental_features:{url:"experimental/features",title:(0,N.defineMessage)({id:"admin.sidebar.experimentalFeatures",defaultMessage:"Features"}),isHidden:zs(oa(M.EXPERIMENTAL.FEATURES)),schema:{id:"ExperimentalSettings",name:(0,N.defineMessage)({id:"admin.experimental.experimentalFeatures",defaultMessage:"Experimental Features"}),settings:[{type:"color",key:"LdapSettings.LoginButtonColor",label:(0,N.defineMessage)({id:"admin.experimental.ldapSettingsLoginButtonColor.title",defaultMessage:"AD/LDAP Login Button Color:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.ldapSettingsLoginButtonColor.desc",defaultMessage:"Specify the color of the AD/LDAP login button for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps."}),help_text_markdown:!1,isHidden:zs(aa("LDAP")),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"color",key:"LdapSettings.LoginButtonBorderColor",label:(0,N.defineMessage)({id:"admin.experimental.ldapSettingsLoginButtonBorderColor.title",defaultMessage:"AD/LDAP Login Button Border Color:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.ldapSettingsLoginButtonBorderColor.desc",defaultMessage:"Specify the color of the AD/LDAP login button border for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps."}),help_text_markdown:!1,isHidden:zs(aa("LDAP")),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"color",key:"LdapSettings.LoginButtonTextColor",label:(0,N.defineMessage)({id:"admin.experimental.ldapSettingsLoginButtonTextColor.title",defaultMessage:"AD/LDAP Login Button Text Color:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.ldapSettingsLoginButtonTextColor.desc",defaultMessage:"Specify the color of the AD/LDAP login button text for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps."}),help_text_markdown:!1,isHidden:zs(aa("LDAP")),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.ExperimentalEnableAuthenticationTransfer",label:(0,N.defineMessage)({id:"admin.experimental.experimentalEnableAuthenticationTransfer.title",defaultMessage:"Allow Authentication Transfer:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.experimentalEnableAuthenticationTransfer.desc",defaultMessage:"When true, users can change their sign-in method to any that is enabled on the server, any via Account Settings or the APIs. When false, Users cannot change their sign-in method, regardless of which authentication options are enabled."}),help_text_markdown:!1,isHidden:Ys(zs(ta),ia("starter")),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"number",key:"ExperimentalSettings.LinkMetadataTimeoutMilliseconds",label:(0,N.defineMessage)({id:"admin.experimental.linkMetadataTimeoutMilliseconds.title",defaultMessage:"Link Metadata Timeout:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.linkMetadataTimeoutMilliseconds.desc",defaultMessage:"The number of milliseconds to wait for metadata from a third-party link. Used with Post Metadata."}),help_text_markdown:!1,placeholder:(0,N.defineMessage)({id:"admin.experimental.linkMetadataTimeoutMilliseconds.example",defaultMessage:'E.g.: "5000"'}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"number",key:"EmailSettings.EmailBatchingBufferSize",label:(0,N.defineMessage)({id:"admin.experimental.emailBatchingBufferSize.title",defaultMessage:"Email Batching Buffer Size:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.emailBatchingBufferSize.desc",defaultMessage:"Specify the maximum number of notifications batched into a single email."}),help_text_markdown:!1,placeholder:(0,N.defineMessage)({id:"admin.experimental.emailBatchingBufferSize.example",defaultMessage:'E.g.: "256"'}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"number",key:"EmailSettings.EmailBatchingInterval",label:(0,N.defineMessage)({id:"admin.experimental.emailBatchingInterval.title",defaultMessage:"Email Batching Interval:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.emailBatchingInterval.desc",defaultMessage:"Specify the maximum frequency, in seconds, which the batching job checks for new notifications. Longer batching intervals will increase performance."}),help_text_markdown:!1,placeholder:(0,N.defineMessage)({id:"admin.experimental.emailBatchingInterval.example",defaultMessage:'E.g.: "30"'}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"color",key:"EmailSettings.LoginButtonColor",label:(0,N.defineMessage)({id:"admin.experimental.emailSettingsLoginButtonColor.title",defaultMessage:"Email Login Button Color:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.emailSettingsLoginButtonColor.desc",defaultMessage:"Specify the color of the email login button for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"color",key:"EmailSettings.LoginButtonBorderColor",label:(0,N.defineMessage)({id:"admin.experimental.emailSettingsLoginButtonBorderColor.title",defaultMessage:"Email Login Button Border Color:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.emailSettingsLoginButtonBorderColor.desc",defaultMessage:"Specify the color of the email login button border for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"color",key:"EmailSettings.LoginButtonTextColor",label:(0,N.defineMessage)({id:"admin.experimental.emailSettingsLoginButtonTextColor.title",defaultMessage:"Email Login Button Text Color:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.emailSettingsLoginButtonTextColor.desc",defaultMessage:"Specify the color of the email login button text for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"TeamSettings.EnableUserDeactivation",label:(0,N.defineMessage)({id:"admin.experimental.enableUserDeactivation.title",defaultMessage:"Enable Account Deactivation:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.enableUserDeactivation.desc",defaultMessage:"When true, users may deactivate their own account from **Settings > Advanced**. If a user deactivates their own account, they will get an email notification confirming they were deactivated. When false, users may not deactivate their own account."}),help_text_markdown:!0,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"TeamSettings.ExperimentalEnableAutomaticReplies",label:(0,N.defineMessage)({id:"admin.experimental.experimentalEnableAutomaticReplies.title",defaultMessage:"Enable Automatic Replies:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.experimentalEnableAutomaticReplies.desc",defaultMessage:"When true, users can enable Automatic Replies in **Settings > Notifications**. Users set a custom message that will be automatically sent in response to Direct Messages. When false, disables the Automatic Direct Message Replies feature and hides it from Settings."}),help_text_markdown:!0,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.EnableChannelViewedMessages",label:(0,N.defineMessage)({id:"admin.experimental.enableChannelViewedMessages.title",defaultMessage:"Enable Channel Viewed WebSocket Messages:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.enableChannelViewedMessages.desc",defaultMessage:"This setting determines whether `channel_viewed` WebSocket events are sent, which synchronize unread notifications across clients and devices. Disabling the setting in larger deployments may improve server performance."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.ExperimentalEnableDefaultChannelLeaveJoinMessages",label:(0,N.defineMessage)({id:"admin.experimental.experimentalEnableDefaultChannelLeaveJoinMessages.title",defaultMessage:"Enable Default Channel Leave/Join System Messages:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.experimentalEnableDefaultChannelLeaveJoinMessages.desc",defaultMessage:"This setting determines whether team leave/join system messages are posted in the default town-square channel."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.ExperimentalEnableHardenedMode",label:(0,N.defineMessage)({id:"admin.experimental.experimentalEnableHardenedMode.title",defaultMessage:"Enable Hardened Mode:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.experimentalEnableHardenedMode.desc",defaultMessage:"Enables a hardened mode for Mattermost that makes user experience trade-offs in the interest of security. See <link>documentation</link> to learn more."}),help_text_values:{link:e=>T().createElement(wt.A,{location:"admin_console",href:mt.Uk.ENABLE_HARDENED_MODE},e)},help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ThemeSettings.EnableThemeSelection",label:(0,N.defineMessage)({id:"admin.experimental.enableThemeSelection.title",defaultMessage:"Enable Theme Selection:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.enableThemeSelection.desc",defaultMessage:"Enables the **Display > Theme** tab in Settings so users can select their theme."}),help_text_markdown:!0,isHidden:Ys(zs(ta),ia("starter")),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ThemeSettings.AllowCustomThemes",label:(0,N.defineMessage)({id:"admin.experimental.allowCustomThemes.title",defaultMessage:"Allow Custom Themes:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.allowCustomThemes.desc",defaultMessage:"Enables the **Display > Theme > Custom Theme** section in Settings."}),help_text_markdown:!0,isHidden:Ys(zs(ta),ia("starter")),isDisabled:Ys(zs(da(M.EXPERIMENTAL.FEATURES)),Qs("ThemeSettings.EnableThemeSelection"))},{type:"dropdown",key:"ThemeSettings.DefaultTheme",label:(0,N.defineMessage)({id:"admin.experimental.defaultTheme.title",defaultMessage:"Default Theme:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.defaultTheme.desc",defaultMessage:"Set a default theme that applies to all new users on the system."}),help_text_markdown:!0,options:[{value:"denim",display_name:(0,N.defineMessage)({id:"admin.experimental.defaultTheme.options.denim",defaultMessage:"Denim"})},{value:"sapphire",display_name:(0,N.defineMessage)({id:"admin.experimental.defaultTheme.options.sapphire",defaultMessage:"Sapphire"})},{value:"quartz",display_name:(0,N.defineMessage)({id:"admin.experimental.defaultTheme.options.quartz",defaultMessage:"Quartz"})},{value:"indigo",display_name:(0,N.defineMessage)({id:"admin.experimental.defaultTheme.options.indigo",defaultMessage:"Indigo"})},{value:"onyx",display_name:(0,N.defineMessage)({id:"admin.experimental.defaultTheme.options.onyx",defaultMessage:"Onyx"})}],isHidden:Ys(zs(ta),ia("starter")),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.EnableTutorial",label:(0,N.defineMessage)({id:"admin.experimental.enableTutorial.title",defaultMessage:"Enable Tutorial:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.enableTutorial.desc",defaultMessage:"When true, users are prompted with a tutorial when they open Mattermost for the first time after account creation. When false, the tutorial is disabled, and users are placed in Town Square when they open Mattermost for the first time after account creation."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.EnableOnboardingFlow",label:(0,N.defineMessage)({id:"admin.experimental.enableOnboardingFlow.title",defaultMessage:"Enable Onboarding:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.enableOnboardingFlow.desc",defaultMessage:"When true, new users are shown steps to complete as part of an onboarding process"}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ServiceSettings.EnableUserTypingMessages",label:(0,N.defineMessage)({id:"admin.experimental.enableUserTypingMessages.title",defaultMessage:"Enable User Typing Messages:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.enableUserTypingMessages.desc",defaultMessage:'This setting determines whether "user is typing..." messages are displayed below the message box. Disabling the setting in larger deployments may improve server performance.'}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"number",key:"ServiceSettings.TimeBetweenUserTypingUpdatesMilliseconds",label:(0,N.defineMessage)({id:"admin.experimental.timeBetweenUserTypingUpdatesMilliseconds.title",defaultMessage:"User Typing Timeout:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.timeBetweenUserTypingUpdatesMilliseconds.desc",defaultMessage:"The number of milliseconds to wait between emitting user typing websocket events."}),help_text_markdown:!1,placeholder:(0,N.defineMessage)({id:"admin.experimental.timeBetweenUserTypingUpdatesMilliseconds.example",defaultMessage:'E.g.: "5000"'}),isDisabled:Ys(zs(da(M.EXPERIMENTAL.FEATURES)),Qs("ServiceSettings.EnableUserTypingMessages"))},{type:"number",key:"ExperimentalSettings.UsersStatusAndProfileFetchingPollIntervalMilliseconds",label:(0,N.defineMessage)({id:"admin.experimental.UsersStatusAndProfileFetchingPollIntervalMilliseconds.title",defaultMessage:"User's Status and Profile Fetching Poll Interval:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.UsersStatusAndProfileFetchingPollIntervalMilliseconds.desc",defaultMessage:"The number of milliseconds to wait between fetching user statuses and profiles periodically."}),help_text_markdown:!1,placeholder:(0,N.defineMessage)({id:"admin.experimental.timeBetweenUserTypingUpdatesMilliseconds.example",defaultMessage:'E.g.: "5000"'}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"text",key:"TeamSettings.ExperimentalPrimaryTeam",label:(0,N.defineMessage)({id:"admin.experimental.experimentalPrimaryTeam.title",defaultMessage:"Primary Team:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.experimentalPrimaryTeam.desc",defaultMessage:"The primary team of which users on the server are members. When a primary team is set, the options to join other teams or leave the primary team are disabled."}),help_text_markdown:!0,placeholder:(0,N.defineMessage)({id:"admin.experimental.experimentalPrimaryTeam.example",defaultMessage:'E.g.: "teamname"'}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"color",key:"SamlSettings.LoginButtonColor",label:(0,N.defineMessage)({id:"admin.experimental.samlSettingsLoginButtonColor.title",defaultMessage:"SAML Login Button Color:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.samlSettingsLoginButtonColor.desc",defaultMessage:"Specify the color of the SAML login button for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps."}),help_text_markdown:!1,isHidden:zs(aa("SAML")),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"color",key:"SamlSettings.LoginButtonBorderColor",label:(0,N.defineMessage)({id:"admin.experimental.samlSettingsLoginButtonBorderColor.title",defaultMessage:"SAML Login Button Border Color:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.samlSettingsLoginButtonBorderColor.desc",defaultMessage:"Specify the color of the SAML login button border for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps."}),help_text_markdown:!1,isHidden:zs(aa("SAML")),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"color",key:"SamlSettings.LoginButtonTextColor",label:(0,N.defineMessage)({id:"admin.experimental.samlSettingsLoginButtonTextColor.title",defaultMessage:"SAML Login Button Text Color:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.samlSettingsLoginButtonTextColor.desc",defaultMessage:"Specify the color of the SAML login button text for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile apps."}),help_text_markdown:!1,isHidden:zs(aa("SAML")),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"EmailSettings.UseChannelInEmailNotifications",label:(0,N.defineMessage)({id:"admin.experimental.useChannelInEmailNotifications.title",defaultMessage:"Use Channel Name in Email Notifications:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.useChannelInEmailNotifications.desc",defaultMessage:"When true, channel and team name appears in email notification subject lines. Useful for servers using only one team. When false, only team name appears in email notification subject line."}),help_text_markdown:!1,isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"number",key:"TeamSettings.UserStatusAwayTimeout",label:(0,N.defineMessage)({id:"admin.experimental.userStatusAwayTimeout.title",defaultMessage:"User Status Away Timeout:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.userStatusAwayTimeout.desc",defaultMessage:'This setting defines the number of seconds after which the user\'s status indicator changes to "Away", when they are away from Mattermost.'}),help_text_markdown:!1,placeholder:(0,N.defineMessage)({id:"admin.experimental.userStatusAwayTimeout.example",defaultMessage:'E.g.: "300"'}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ExperimentalSettings.DisableAppBar",label:(0,N.defineMessage)({id:"admin.experimental.disableAppBar.title",defaultMessage:"Disable Apps Bar:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.disableAppBar.desc",defaultMessage:"When false, all integrations move from the channel header to the Apps Bar. Channel header plugin icons that haven't explicitly registered an Apps Bar icon will be moved to the Apps Bar which may result in rendering issues."}),help_text_markdown:!0,isHidden:aa("Cloud"),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ExperimentalSettings.DisableRefetchingOnBrowserFocus",label:(0,N.defineMessage)({id:"admin.experimental.disableRefetchingOnBrowserFocus.title",defaultMessage:"Disable data refetching on browser refocus:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.disableRefetchingOnBrowserFocus.desc",defaultMessage:"When true, Mattermost will not refetch channels and channel members when the browser regains focus. This may result in improved performance for users with many channels and channel members."}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ExperimentalSettings.DisableWakeUpReconnectHandler",label:(0,N.defineMessage)({id:"admin.experimental.disableWakeUpReconnectHandler.title",defaultMessage:"Disable Wake Up Reconnect Handler:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.disableWakeUpReconnectHandler.desc",defaultMessage:"When true, Mattermost will not attempt to detect when the computer has woken up and refetch data. This might reduce the amount of regular network traffic the app is sending."}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ExperimentalSettings.DelayChannelAutocomplete",label:(0,N.defineMessage)({id:"admin.experimental.delayChannelAutocomplete.title",defaultMessage:"Delay Channel Autocomplete:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.delayChannelAutocomplete.desc",defaultMessage:"When true, the autocomplete for channel links (such as ~town-square) will only trigger after typing a tilde followed by a couple letters. When false, the autocomplete will appear as soon as the user types a tilde."}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ExperimentalSettings.YoutubeReferrerPolicy",label:(0,N.defineMessage)({id:"admin.experimental.youtubeReferrerPolicy.title",defaultMessage:"YouTube Referrer Policy:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.youtubeReferrerPolicy.desc",defaultMessage:'When true, the referrer policy for embedded YouTube videos will be set to "strict-origin-when-cross-origin" which resolves issues where YouTube video previews display as unavailable, while balancing the need to protect user privacy with some degree of referral data to support web functionalities, like analytics, logging, and third-party integrations. When false, the referrer policy will be set to "no-referrer" which enhances user privacy by not disclosing the source URL, but limits the ability to track user engagement and traffic sources in analytics tools.'}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))},{type:"bool",key:"ExperimentalSettings.ExperimentalChannelCategorySorting",label:(0,N.defineMessage)({id:"admin.experimental.channelCategorySorting.title",defaultMessage:"Channel Category Sorting:"}),help_text:(0,N.defineMessage)({id:"admin.experimental.channelCategorySorting.desc",defaultMessage:'When true, channels will be automatically sorted into categories based on their names using a "/" delimiter.'}),isDisabled:zs(da(M.EXPERIMENTAL.FEATURES))}]}},feature_flags:{url:"experimental/feature_flags",title:$d.title,isHidden:Ys(zs(oa(M.EXPERIMENTAL.FEATURE_FLAGS))),isDisabled:!0,searchableStrings:[$d.title],schema:{id:"Feature Flags",component:e=>{const t=e.config.FeatureFlags;let s=null;return t&&(s=Object.keys(t).map((e=>T().createElement("tr",{key:e},T().createElement("td",{width:"20px"}),T().createElement("td",{className:"whitespace--nowrap"},e),T().createElement("td",{className:"whitespace--nowrap"},String(t[e])))))),T().createElement("div",{className:"wrapper--admin"},T().createElement(nt,null,T().createElement(N.FormattedMessage,$d.title)),T().createElement("div",{className:"admin-console__wrapper"},T().createElement("div",{className:"admin-logs-content admin-console__content"},T().createElement("div",{className:"banner info"},T().createElement("div",{className:"banner__content"},T().createElement(N.FormattedMessage,{id:"admin.feature_flags.introBanner",defaultMessage:"Feature flag values displayed here show the status of features enabled on this server. The values here are used only for troubleshooting by the Mattermost support team."}))),T().createElement("div",{className:"job-table__panel"},T().createElement("div",{className:"job-table__table"},T().createElement("table",{className:"table"},T().createElement("thead",null,T().createElement("tr",null,T().createElement("th",null),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.feature_flags.flag",defaultMessage:"Flag"})),T().createElement("th",null,T().createElement(N.FormattedMessage,{id:"admin.feature_flags.flag_value",defaultMessage:"Value"})))),T().createElement("tbody",null,s)))))))}}}}}},mC=cC,uC=(0,S.Mz)("getAdminDefinition",(()=>mC),(e=>e.plugins.adminConsoleReducers),((e,t)=>{let s=v()(mC);for(const e of Object.values(t))s=e(s);return s})),pC=(e,t)=>e.plugins.adminConsoleCustomComponents[t]||{},gC=(e,t)=>e.plugins.adminConsoleCustomSections[t]||{},hC=(0,S.Mz)("getConsoleAccess",uC,C.ec,((e,t)=>{const s={read:{},write:{}},a=e=>{const a=_[e].filter((e=>t.has(e)));s.read[e]=0!==a.length,s.write[e]=a.some((e=>e.startsWith("sysconsole_write_")))};return Object.entries(e).forEach((e=>{let[t]=e;"object"==typeof M[t.toUpperCase()]?Object.values(M[t.toUpperCase()]).forEach((e=>{a(e)})):a(t)})),s})),fC=(0,S.Mz)("showManageUserSettings",c.Ay,(e=>e),((e,t)=>{const s=(0,C.y4)(t,{permission:y.A.SYSCONSOLE_WRITE_USERMANAGEMENT_USERS}),a=(0,qs.PL)(e);return s&&a})),EC=(0,S.Mz)("showLockedManageUserSettings",c.Ay,(e=>e),((e,t)=>{const s=(0,C.y4)(t,{permission:y.A.SYSCONSOLE_WRITE_USERMANAGEMENT_USERS}),a=(0,qs.PL)(e);return s&&!a}));var bC=s(30388),vC=(s(54823),s(29012),s(66173)),yC=s.n(vC);function MC(e){let{keyword:t="",pathname:s,children:a}=e;const i=(0,A.useRef)(null),n=(0,A.useRef)();function r(e,t){n.current=new(yC())(t),n.current.mark(e,{accuracy:"complementary",exclude:[".ignore-marking *"]})}const o=(0,A.useMemo)((()=>wn()(((e,t,s)=>{e&&s&&(t?t.unmark({done:()=>r(e,s)}):r(e,s))}),200)),[]);return(0,A.useEffect)((()=>(o(t,n.current,i.current),()=>{o.cancel(),n.current&&n.current.unmark()})),[t,s]),T().createElement("div",{ref:i},a)}var _C=s(66859),SC=s(81806);const CC=e=>{let{show:t,onConfirm:s,onCancel:a}=e;const i=T().createElement(N.FormattedMessage,{id:"discard_changes_modal.title",defaultMessage:"Discard Changes?"}),n=T().createElement(N.FormattedMessage,{id:"discard_changes_modal.message",defaultMessage:"You have unsaved changes, are you sure you want to discard them?"}),r=T().createElement(N.FormattedMessage,{id:"discard_changes_modal.leave",defaultMessage:"Yes, Discard"});return T().createElement(Ta.A,{show:t,title:i,message:n,modalClass:"discard-changes-modal",confirmButtonClass:"btn btn-primary",confirmButtonText:r,onConfirm:s,onCancel:a})};CC.propTypes={show:k().bool.isRequired,onConfirm:k().func.isRequired,onCancel:k().func.isRequired};const AC=T().memo(CC);var TC=s(60729),NC=s(26676),wC=s(93725),RC=s(7380),OC=s(53791);const IC=e=>{let{icon:t,title:s,action:a,children:i,definitionKey:n,name:r,parentLink:o="",sectionClass:l}=e,d=o,c=T().createElement("div",{className:"category-title category-title--active"},T().createElement("span",{className:"category-icon"},t),T().createElement("span",{className:"category-title__text"},s),a);r&&(d+="/"+r,c=T().createElement(w.NavLink,{to:d,className:"category-title",activeClassName:"category-title category-title--active"},s));let m=null;const u=oe()("sections",l);if(i){const e=()=>T().createElement("ul",{className:u},T().Children.map(i,(e=>(0,A.isValidElement)(e)?T().cloneElement(e,{parentLink:d}):null)));m=T().createElement(w.Route,{path:d,render:e})}return T().createElement("li",{className:"sidebar-category","data-testid":n},c,m)};IC.propTypes={icon:k().element.isRequired,title:k().oneOfType([k().string,k().element]).isRequired,action:k().element,children:k().arrayOf(k().element),definitionKey:k().string,name:k().string,parentLink:k().string,sectionClass:k().string};const kC=IC,PC=e=>{let{name:t,title:s,action:a,children:i=[],definitionKey:n,type:r,parentLink:o="",subsection:l=!1,tag:d,restrictedIndicator:c}=e;const m=o+"/"+t;let u=null;i&&(u=T().createElement("ul",{className:"nav nav__sub-menu subsections"},T().Children.map(i,(e=>null===e?null:T().cloneElement(e,{parentLink:m,subsection:!0})))));const p=oe()("sidebar-section",{"sidebar-subsection":l}),g=d?T().createElement("span",{className:"".concat(p,"-tag")},d):null,h=c&&T().createElement("span",{className:"".concat(p,"-indicator")},c),f=(0,D.rH)(t);let E=T().createElement(tt.A,{id:f,className:"".concat(p,"-title"),activeClassName:"".concat(p,"-title ").concat(p,"-title--active"),to:m},T().createElement("span",{className:"".concat(p,"-title__text")},s,g),h,a);return"text"===r&&(E=T().createElement("div",{className:"".concat(p,"-title")},T().createElement("span",{className:"".concat(p,"-title__text")},s),a)),T().createElement("li",{className:p,"data-testid":n},E,u)};PC.propTypes={name:k().string.isRequired,title:k().oneOfType([k().string,k().element]).isRequired,action:k().element,children:k().oneOfType([k().element,k().arrayOf(k().element)]),definitionKey:k().string,type:k().string,parentLink:k().string,subsection:k().bool,tag:k().oneOfType([k().string,k().element]),restrictedIndicator:k().oneOfType([k().string,k().element])};const xC=PC;var DC=s(38724);function LC(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function FC(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?LC(Object(s),!0).forEach((function(t){UC(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):LC(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function UC(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}s(60473);class BC extends T().PureComponent{constructor(e){super(e),UC(this,"componentDidUpdate",(e=>{this.props.showBannerWarning!==e.showBannerWarning&&this.updateBannerWarning(this.props.showBannerWarning)})),UC(this,"doHide",(()=>{this.setState({show:!1})})),UC(this,"updateBannerWarning",(e=>{this.setState({showBannerWarning:e})})),UC(this,"hideBannerWarning",(()=>{this.updateBannerWarning(!1)})),UC(this,"updateCheckStatus",(e=>{this.setState({packetContents:this.state.packetContents.map(((t,s)=>s!==e||t.mandatory?t:FC(FC({},t),{},{selected:!t.selected})))})})),UC(this,"genereateDownloadURLWithParams",(()=>{const e=new URL(O.mT.getSystemRoute()+"/support_packet");return this.state.packetContents.forEach((t=>{"basic.server.logs"===t.id?e.searchParams.set("basic_server_logs",String(t.selected)):!t.mandatory&&t.selected&&e.searchParams.append("plugin_packets",t.id)})),e.toString()})),UC(this,"extractFilename",(e=>{const t=so()(new Date).format("YYYY-MM-DDTHH-mm"),s="mm_support_packet_".concat(t,".zip");if(null===e)return s;const a=/filename\*?=["']?((?:\\.|[^"'\s])+)(?=["']?)/g.exec(e);return a?a[1]:s})),UC(this,"downloadSupportPacket",(async()=>{this.setState({loading:!0,error:void 0});const e=await fetch(this.genereateDownloadURLWithParams(),{method:"GET",headers:{"Content-Type":"application/zip"}});if(!e.ok){const t=await e.json(),s=t.message+": "+t.detailed_error;return void this.setState({loading:!1,error:s})}const t=await e.blob();this.setState({loading:!1});const s=window.URL.createObjectURL(t),a=document.createElement("a");a.href=s,a.setAttribute("download",this.extractFilename(e.headers.get("content-disposition"))),document.body.appendChild(a),a.click(),document.body.removeChild(a)})),this.state={show:!0,showBannerWarning:e.showBannerWarning,packetContents:e.packetContents,loading:!1}}render(){const{showBannerWarning:e}=this.state,{isCloud:t,currentUser:s}=this.props,a=t?"https://customers.mattermost.com/cloud/contact-us?name=".concat(s.first_name," ").concat(s.last_name,"&email=").concat(s.email,"&inquiry=technical"):"https://support.mattermost.com/hc/en-us/requests/new";return T().createElement(hn.Modal,{id:"commercialSupportModal",dialogClassName:"a11y__modal more-modal more-direct-channels",show:this.state.show,onHide:this.doHide,onExited:this.props.onExited},T().createElement(hn.Modal.Header,{closeButton:!0},T().createElement(hn.Modal.Title,null,T().createElement(N.FormattedMessage,{id:"commercial_support.title",defaultMessage:"Commercial Support"}))),T().createElement(hn.Modal.Body,null,T().createElement("div",{className:"CommercialSupportModal"},T().createElement(N.FormattedMessage,{id:"commercial_support_modal.description",defaultMessage:"If you're experiencing issues, <supportLink>submit a support ticket</supportLink>. To help with troubleshooting, it's recommended to download the Support Packet below that includes more details about your Mattermost environment.",values:{supportLink:e=>T().createElement(wt.A,{href:a,location:"commercialSupportModal"},e)}}),e&&T().createElement(qa.A,{mode:"info",message:T().createElement(N.FormattedMessage,{id:"commercial_support_modal.warning.banner",defaultMessage:"Before downloading the Support Packet, set <strong>Output Logs to File</strong> to <strong>true</strong> and set <strong>File Log Level</strong> to <strong>DEBUG</strong> <debugLink>here</debugLink>.",values:{strong:e=>T().createElement("strong",null,e),debugLink:e=>T().createElement(w.Link,{to:"/admin_console/environment/logging"},e)}}),onDismiss:this.hideBannerWarning}),T().createElement("div",{className:"CommercialSupportModal__packet_contents_download"},T().createElement("strong",null,T().createElement(N.FormattedMessage,{id:"commercial_support_modal.download_contents",defaultMessage:"Select your Support Packet contents to download"}))),this.state.packetContents.map(((e,t)=>T().createElement("div",{className:"CommercialSupportModal__option",key:e.id},T().createElement("input",{className:"CommercialSupportModal__options__checkbox",id:e.id,name:e.id,type:"checkbox",checked:e.selected,disabled:e.mandatory,onChange:()=>this.updateCheckStatus(t)}),T().createElement(N.FormattedMessage,{id:"mettormost.plugin.metrics.support.packet",defaultMessage:e.label},(t=>T().createElement("label",{className:"CommercialSupportModal__options_checkbox_label",htmlFor:e.id},t)))))),T().createElement("div",{className:"CommercialSupportModal__download"},this.state.error&&T().createElement("div",{className:"CommercialSupportModal__error"},T().createElement("span",{className:"error-text"},this.state.error)),T().createElement("a",{className:"btn btn-primary DownloadSupportPacket",onClick:this.downloadSupportPacket,rel:"noopener noreferrer"},this.state.loading?T().createElement(ce.A,null):T().createElement("i",{className:"icon icon-download-outline"}),T().createElement(N.FormattedMessage,{id:"commercial_support.download_support_packet",defaultMessage:"Download Support Packet"}))))))}}UC(BC,"propTypes",{onExited:k().func.isRequired,showBannerWarning:k().bool.isRequired,isCloud:k().bool.isRequired,packetContents:k().array.isRequired});const jC=(0,a.connect)((function(e){const t=(0,c.zj)(e),s="true"===(0,c.Ay)(e).Cloud,a=(0,g.HW)(e),i=("true"!==t.EnableFile||"DEBUG"!==t.FileLevel)&&!s,n=[{id:"basic.contents",label:"Basic contents",selected:!0,mandatory:!0},{id:"basic.server.logs",label:"Server logs",selected:!0,mandatory:!1}];for(const[t,s]of Object.entries(e.entities.admin.plugins))s.active&&void 0!==s.props&&void 0!==s.props.support_packet&&n.push({id:t,label:s.props.support_packet,selected:!1,mandatory:!1});return{isCloud:s,currentUser:a,showBannerWarning:i,packetContents:n}}))(BC);var HC=s(5565);const GC=e=>{const{to:t,text:s}=e;return T().createElement(tt.A,{to:t},s)};GC.propTypes={to:k().string.isRequired,text:k().oneOfType([k().string,k().node]).isRequired};const qC=(0,HC.A)(GC);qC.displayName="MenuItemBlockableLinkImpl";const VC=qC;function zC(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class WC extends T().PureComponent{constructor(){super(...arguments),zC(this,"handleLogout",(e=>{this.props.navigationBlocked?(e.preventDefault(),this.props.actions.deferNavigation(Dv.BN)):Dv.BN()}))}render(){const{locale:e,teams:t,siteName:s,isLicensed:a,isCloud:i}=this.props,{formatMessage:n}=this.props.intl,r=[];let o;if(t&&t.length>0){const s=(0,tv.y)(t,e);for(const e of s)r.push(T().createElement(VC,{key:"team_"+e.name,to:"/"+e.name,text:n({id:"navbar_dropdown.switchTo",defaultMessage:"Switch to "})+" "+e.display_name}))}else o=T().createElement(VC,{to:"/select_team",icon:T().createElement("i",{className:"fa fa-exchange",title:n({id:"select_team.icon",defaultMessage:"Select Team Icon"})}),text:n({id:"admin.nav.switch",defaultMessage:"Team Selection"})});let l=T().createElement(El.A.ItemExternalLink,{url:"https://mattermost.com/support/",text:n({id:"admin.nav.commercialSupport",defaultMessage:"Commercial Support"})});a&&(l=T().createElement(El.A.ItemToggleModalRedux,{modalId:mt.IQ.COMMERCIAL_SUPPORT,dialogType:jC,text:n({id:"admin.nav.commercialSupport",defaultMessage:"Commercial Support"})}));let d="https://docs.mattermost.com/guides/administration.html";return i&&(d="https://docs.mattermost.com/guides/administration.html#cloud-workspace-management"),T().createElement(El.A,{ariaLabel:n({id:"admin.nav.menuAriaLabel",defaultMessage:"Admin Console Menu"})},T().createElement(El.A.Group,null,r,o),T().createElement(El.A.Group,null,T().createElement(El.A.ItemExternalLink,{url:d,text:n({id:"admin.nav.administratorsGuide",defaultMessage:"Administrator Guide"})}),T().createElement(El.A.ItemExternalLink,{url:"https://forum.mattermost.com/t/how-to-use-the-troubleshooting-forum/150",text:n({id:"admin.nav.troubleshootingForum",defaultMessage:"Troubleshooting Forum"})}),l,T().createElement(El.A.ItemToggleModalRedux,{modalId:mt.IQ.ABOUT,dialogType:DC.A,text:n({id:"navbar_dropdown.about",defaultMessage:"About {appTitle}"},{appTitle:s||"Mattermost"})})),T().createElement(El.A.Group,null,T().createElement(El.A.ItemAction,{onClick:this.handleLogout,text:n({id:"navbar_dropdown.logout",defaultMessage:"Log Out"})})))}}zC(WC,"propTypes",{locale:k().string.isRequired,siteName:k().string,navigationBlocked:k().bool,teams:k().array.isRequired,actions:k().shape({deferNavigation:k().func.isRequired}).isRequired,isLicensed:k().bool.isRequired,isCloud:k().bool.isRequired});const YC=(0,N.injectIntl)(WC),ZC=(0,a.connect)((function(e){const t=(0,c.Ay)(e),s="true"===t.IsLicensed,a="true"===t.Cloud;return{locale:(0,yi.k)(e),teams:(0,p.vt)(e),siteName:(0,c.zj)(e).SiteName,navigationBlocked:(0,Ke.$S)(e),isLicensed:s,isCloud:a}}),(function(e){return{actions:(0,i.zH)({deferNavigation:h.Ld},e)}}))(YC);var JC=s(19477);const KC=e=>{let{currentUser:t}=e;const s=(0,N.useIntl)();let a=null;return t?(t.last_picture_update&&(a=T().createElement(vc.A,{username:t.username,url:O.mT.getProfilePictureUrl(t.id,t.last_picture_update),size:"lg"})),T().createElement(bl.A,{className:"AdminSidebarHeader"},T().createElement("div",null,a,T().createElement("div",{className:"header__info"},T().createElement("div",{className:"team__name"},T().createElement(N.FormattedMessage,{id:"admin.sidebarHeader.systemConsole",defaultMessage:"System Console"})),T().createElement("div",{className:"user__name overflow--ellipsis whitespace--nowrap"},"@"+t.username)),T().createElement("button",{type:"button",className:"style--none","aria-label":s.formatMessage({id:"generic_icons.menu",defaultMessage:"Menu Icon"})},T().createElement(JC.A,{className:"menu-icon"}))),T().createElement(ZC,null))):null},QC=(0,A.memo)(KC),XC=(0,a.connect)((function(e){return{currentUser:(0,g.HW)(e)}}))(QC);var $C=s(61452),eA=s(55161),tA=s.n(eA);function sA(e,t){const s=iA(Hs(e),t);if(e.name&&s.push(e.name),e.id&&s.push(e.id),e.settings_schema&&(e.settings_schema.footer&&s.push((0,Od.eA)(e.settings_schema.footer)),e.settings_schema.header&&s.push((0,Od.eA)(e.settings_schema.header)),e.settings_schema.settings)){const a=Object.values(e.settings_schema.settings);for(const e of a){const a=iA(e,t);s.push(...a)}}return s}function aA(e,t,s,a){let i;t&&(i="string"==typeof t?t:s.formatMessage(t)),i&&a&&(i=(0,Od.eA)(i)),i&&e.push(i)}function iA(e,t){const s=[];return aA(s,e.label,t),aA(s,e.display_name,t),aA(s,e.help_text,t,!0),aA(s,e.key,t),s}function nA(e,t,s,a){"string"==typeof t?e.push(t):"id"in t&&e.push(s.formatMessage(t,a))}function rA(e,t){const s=[];if(e.title&&nA(s,e.title,t),"name"in e.schema&&e.schema.name&&nA(s,e.schema.name,t),e.searchableStrings)for(const a of e.searchableStrings)Array.isArray(a)?s.push(t.formatMessage(a[0],a[1])):nA(s,a,t);return e.schema&&("settings"in e.schema&&e.schema.settings?s.push(...oA(e.schema.settings,t)):"sections"in e.schema&&e.schema.sections&&e.schema.sections.forEach((e=>{s.push(...oA(e.settings,t))}))),s}function oA(e,t){const s=[];for(const a of Object.values(e))a.label&&nA(s,a.label,t,a.label_values),a.help_text&&nA(s,a.help_text,t,a.help_text_values),"remove_help_text"in a&&a.remove_help_text&&nA(s,a.remove_help_text,t),"remove_button_text"in a&&a.remove_button_text&&nA(s,a.remove_button_text,t);return s}function lA(e,t,s){const a=new(tA());return dA(function(e,t){const s={},a=[e.about,e.reporting,e.user_management,e.system_attributes,e.environment,e.site,e.authentication,e.plugins,e.integrations,e.compliance,e.experimental,e.billing];for(const e of a)for(const a of Object.values(e.subsections))a.isDiscovery||(s[a.url]=rA(a,t));return s}(e,t),a),dA(function(e,t){const s={},a=e||{};for(const e of Object.keys(a))s["plugin_".concat(e)]=sA(a[e],t);return s}(s,t),a),a}function dA(e,t){for(const s of Object.keys(e)){let a="";for(const t of e[s])a+=" "+t;t.add(s,a)}}function cA(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class mA extends T().PureComponent{constructor(e){super(e),cA(this,"handleSearchChange",(e=>{const t=e.target.value;if(""===t)return this.setState({sections:null,filter:t}),void this.props.onSearchChange(t);null===this.idx&&(this.idx=lA(this.props.adminDefinition,this.props.intl,this.props.plugins));let s="";for(const e of t.split(" "))e.trim(),""!==e&&(s+=e+" ",s+=e+"* ");const a=this.idx.search(s);if(this.setState({sections:a,filter:t}),this.props.onSearchChange(t),!this.props.navigationBlocked&&-1===a.indexOf((0,Li.J)().location.pathname.replace("/admin_console/",""))){const e=this.visibleSections();for(const t of a)if(e.has(t)){(0,Li.J)().replace("/admin_console/"+t);break}}})),cA(this,"updateTitle",(()=>{let e="";this.props.siteName&&(e=" - "+this.props.siteName),document.title=this.props.intl.formatMessage({id:"sidebar_right_menu.console",defaultMessage:"System Console"})+e})),cA(this,"visibleSections",(()=>{const{config:e,license:t,buildEnterpriseReady:s,consoleAccess:a,adminDefinition:i,cloud:n}=this.props,r=i=>!(!i.schema||!i.title||i.isHidden&&i.isHidden(e,this.state,t,s,a,n)),o=new Set;for(const e of Object.values(i))for(const t of Object.values(e.subsections))r(t)&&o.add(t.url);return o})),cA(this,"renderRootMenu",(e=>{const{config:t,license:s,buildEnterpriseReady:a,consoleAccess:i,cloud:n,subscriptionProduct:r}=this.props,o=[];return Object.entries(e).forEach((e=>{let[l,d]=e,c=!1;if(d.isHidden&&(c="function"==typeof d.isHidden?d.isHidden(t,this.state,s,a,i,n):Boolean(d.isHidden)),!c){const e=[];if(Object.entries(d.subsections).forEach((o=>{var d;let[c,m]=o;if(!m.title)return;if(m.isHidden&&("function"==typeof m.isHidden?m.isHidden(t,this.state,s,a,i,n):Boolean(m.isHidden)))return;if(null!==this.state.sections){let e=!1;for(const t of this.state.sections)t===m.url&&(e=!0);if(!e)return}const u="".concat(l,".").concat(c);e.push(T().createElement(xC,{key:u,definitionKey:u,name:m.url,restrictedIndicator:null!==(d=m.restrictedIndicator)&&void 0!==d&&d.shouldDisplay(s,r)?m.restrictedIndicator.value(n):void 0,title:"string"==typeof m.title?m.title:T().createElement(N.FormattedMessage,m.title)}))})),"plugins"===d.id){const t=this.renderPluginsMenu();e.push(...t)}if(0===e.length)return null;o.push(T().createElement(kC,{key:l,definitionKey:l,parentLink:"/admin_console",icon:d.icon,sectionClass:"",title:"string"==typeof d.sectionTitle?d.sectionTitle:T().createElement(N.FormattedMessage,d.sectionTitle)},e))}return null})),o})),cA(this,"isPluginPresentInSections",(e=>this.state.sections&&this.state.sections.indexOf("plugin_".concat(e.id))>=0)),cA(this,"renderPluginsMenu",(()=>{var e;const{config:t,plugins:s}=this.props;return null!==(e=t.PluginSettings)&&void 0!==e&&e.Enable&&s?Object.values(s).sort(((e,t)=>{const s=e.name.localeCompare(t.name);return 0!==s?s:e.id.localeCompare(t.id)})).filter((e=>null===this.state.sections||this.isPluginPresentInSections(e))).map((e=>T().createElement(xC,{key:"customplugin"+e.id,name:"plugins/plugin_"+e.id,title:e.name}))):[]})),cA(this,"handleClearFilter",(()=>{this.setState({sections:null,filter:""}),this.props.onSearchChange("")})),this.state={sections:null,filter:""},this.idx=null,this.searchRef=T().createRef()}componentDidMount(){var e;null!==(e=this.props.config.PluginSettings)&&void 0!==e&&e.Enable&&this.props.actions.getPlugins(),this.searchRef.current&&!(0,Li.J)().location.hash&&this.searchRef.current.focus(),this.updateTitle()}componentDidUpdate(e){null===this.idx||On()(this.props.plugins,e.plugins)&&On()(this.props.adminDefinition,e.adminDefinition)||(this.idx=lA(this.props.adminDefinition,this.props.intl,this.props.plugins))}render(){const{showTaskList:e}=this.props;return T().createElement("div",{className:"admin-sidebar"},T().createElement(XC,null),T().createElement("div",{className:"filter-container"},T().createElement(kc.A,{className:"search__icon","aria-hidden":"true"}),T().createElement(zi.A,{className:"filter "+(this.state.filter?"active":""),type:"text",onChange:this.handleSearchChange,value:this.state.filter,placeholder:this.props.intl.formatMessage({id:"admin.sidebar.filter",defaultMessage:"Find settings"}),ref:this.searchRef,id:"adminSidebarFilter",clearable:!0,onClear:this.handleClearFilter})),T().createElement($C.A,null,T().createElement("div",{className:"nav-pills__container"},T().createElement(MC,{keyword:this.state.filter},T().createElement("ul",{className:oe()("nav nav-pills nav-stacked",{"task-list-shown":e})},this.renderRootMenu(this.props.adminDefinition))))))}}cA(mA,"propTypes",{onSearchChange:k().func.isRequired}),cA(mA,"defaultProps",{plugins:{}});const uA=(0,N.injectIntl)(mA),pA=(0,a.connect)((function(e){const t=(0,c.Ay)(e),s=(0,c.zj)(e),a="true"===s.BuildEnterpriseReady,i=s.SiteName,n=uC(e),r=hC(e),o=(0,m.Jz)(e,OC.XV,OC.f5.ONBOARDING_TASK_LIST_SHOW),l=(0,g.OK)(e),d=(0,RC.w3)(e),u=l&&o&&!d,p=(0,dt.Pd)(e);return{license:t,config:e.entities.admin.config,plugins:e.entities.admin.plugins,navigationBlocked:(0,Ke.$S)(e),buildEnterpriseReady:a,siteName:i,adminDefinition:n,consoleAccess:r,cloud:e.entities.cloud,showTaskList:u,subscriptionProduct:p}}),(function(e){return{actions:(0,i.zH)({getPlugins:n.xy},e)}}))(uA),gA=(0,a.connect)((function(e){const t="true"===(0,c.zj)(e).BuildEnterpriseReady,s=uC(e),a=bC.A.getPreviousTeamId((0,g.WR)(e)),i=(0,p.Uo)(e,a||""),n=i?"/".concat(i.name,"/channels/").concat(l.Bz.DEFAULT_CHANNEL):"/",r=hC(e);return{config:d.zj(e),environmentConfig:d.Qq(e),license:(0,c.Ay)(e),buildEnterpriseReady:t,unauthorizedRoute:n,showNavigationPrompt:(0,Ke.kB)(e),isCurrentUserSystemAdmin:(0,g.J1)(e),currentUserHasAnAdminRole:(0,g.Z5)(e),roles:(0,u.O0)(e),adminDefinition:s,consoleAccess:r,cloud:e.entities.cloud,team:i,currentTheme:(0,m.O4)(e)}}),(function(e){return{actions:(0,i.zH)({getConfig:n.zj,getEnvironmentConfig:n.Qq,patchConfig:n.tn,setNavigationBlocked:h.Jb,deferNavigation:h.Ld,cancelNavigation:h.zL,confirmNavigation:h.vn,loadRolesIfNeeded:r.cF,editRole:r.D3,selectLhsItem:E.bT,selectTeam:o.Uv,setAdminConsoleUsersManagementTableProperties:f.p$},e)}})),hA=gA((e=>{const[t,s]=(0,A.useState)(""),a=(e=>{const t=(0,A.useRef)();return(0,A.useCallback)((s=>{if(!s||!e.hash||t.current===e)return;const a=decodeURIComponent(e.hash.substring(1));if(!a)return;const i=document.getElementById(a);i&&(i.focus(),document.activeElement!==i&&i.scrollIntoView({behavior:"auto"}),t.current=e)}),[e])})(e.location);(0,A.useEffect)((()=>{var t;return e.actions.getConfig(),e.actions.getEnvironmentConfig(),e.actions.loadRolesIfNeeded(["channel_user","team_user","system_user","channel_admin","team_admin","system_admin","system_user_manager","system_custom_group_admin","system_read_only_admin","system_manager"]),e.actions.selectLhsItem(wC.L.None),e.actions.selectTeam(""),document.body.classList.add("console__body"),null===(t=document.getElementById("root"))||void 0===t||t.classList.add("console__root"),(0,D.hm)(),()=>{var t;document.body.classList.remove("console__body"),null===(t=document.getElementById("root"))||void 0===t||t.classList.remove("console__root"),(0,D.AZ)(e.currentTheme),e.actions.setAdminConsoleUsersManagementTableProperties()}}),[]);const{license:i,config:n,environmentConfig:r,showNavigationPrompt:o,roles:l}=e,{setNavigationBlocked:d,cancelNavigation:c,confirmNavigation:m,editRole:u,patchConfig:p}=e.actions;if(!e.currentUserHasAnAdminRole)return T().createElement(w.Redirect,{to:e.unauthorizedRoute});if(!(e=>e&&e.channel_admin&&e.channel_user&&e.team_admin&&e.team_user&&e.system_admin&&e.system_user&&e.system_user_manager&&e.system_read_only_admin&&e.system_custom_group_admin&&e.system_manager)(e.roles))return null;if(0===Object.keys(n).length)return T().createElement("div",null);if(n&&0===Object.keys(n).length&&n.constructor===Object)return T().createElement("div",{className:"admin-console__wrapper admin-console"});const g={enterpriseReady:e.buildEnterpriseReady,license:i,config:n,environmentConfig:r,setNavigationBlocked:d,roles:l,editRole:u,patchConfig:p,cloud:e.cloud,isCurrentUserSystemAdmin:e.isCurrentUserSystemAdmin};return T().createElement(T().Fragment,null,T().createElement(_C.default,null),T().createElement(NC.default,null),T().createElement(SC.A,{team:e.team}),T().createElement(pA,{onSearchChange:e=>{s(e)}}),T().createElement("div",{className:"admin-console__wrapper admin-console",id:"adminConsoleWrapper",ref:a},T().createElement(MC,{keyword:t,pathname:e.location.pathname},(s=>{const{adminDefinition:a,config:i,license:n,buildEnterpriseReady:r,consoleAccess:o,cloud:l,isCurrentUserSystemAdmin:d}=e,c=Object.values(a).flatMap((e=>{let s=!1;return s="function"==typeof e.isHidden?e.isHidden(i,{search:t},n,r,o,l,d):Boolean(e.isHidden),s?[]:Object.values(e.subsections)}));let m="";const u=c.map(((a,u)=>{if(void 0!==a.isHidden&&("function"==typeof a.isHidden?a.isHidden(i,{search:t},n,r,o,l,d):Boolean(a.isHidden)))return!1;let p;if(p="function"==typeof a.isDisabled?a.isDisabled(i,{search:t},n,r,o,l,d):Boolean(a.isDisabled),!p&&""===m){const{url:e}=c[u];e.includes(":")||(m=e)}return T().createElement(w.Route,{key:a.url,path:"".concat(e.match.url,"/").concat(a.url),render:t=>T().createElement(Bs,Object.assign({},s,t,{consoleAccess:e.consoleAccess,schema:a.schema,isDisabled:p}))})}));return T().createElement(w.Switch,null,u,T().createElement(w.Redirect,{to:"".concat(e.match.url,"/").concat(m)}))})(g))),T().createElement(AC,{show:o,onConfirm:m,onCancel:c}),T().createElement(TC.default,null))}))},81806:(e,t,s)=>{"use strict";s.d(t,{A:()=>m});var a=s(62688),i=s.n(a),n=s(36418),r=s.n(n),o=s(14778),l=s(87295);function d(){const{formatMessage:e}=(0,o.useIntl)();return r().createElement("i",{className:"fa fa-angle-left",title:e({id:"generic_icons.back",defaultMessage:"Back Icon"})})}const c=e=>{let{team:t,siteName:s}=e;const a=0===(null==t?void 0:t.delete_at);return r().createElement("div",{className:"backstage-navbar"},r().createElement(l.A,{className:"backstage-navbar__back",to:"/".concat(a?null==t?void 0:t.name:"")},r().createElement(d,null),r().createElement("span",null,a?r().createElement(o.FormattedMessage,{id:"backstage_navbar.backToMattermost",defaultMessage:"Back to {siteName}",values:{siteName:null!=s?s:null==t?void 0:t.name}}):r().createElement(o.FormattedMessage,{id:"backstage_navbar.back",defaultMessage:"Back"}))))};c.propTypes={siteName:i().string};const m=c},61293:(e,t,s)=>{"use strict";s.d(t,{A:()=>r,D:()=>o}),s(17046);var a=s(36418),i=s(14778);const n=4e3;function r(e){let{text:t,successCopyTimeout:s}=e;const[i,r]=(0,a.useState)(!1),[o,l]=(0,a.useState)(!1),d=(0,a.useRef)(null);let c=n;return(s||0===s)&&(c=s),{copiedRecently:i,copyError:o,onClick:(0,a.useCallback)((()=>{d.current&&(clearTimeout(d.current),d.current=null);const e=navigator.clipboard;if(e)e.writeText(t).then((()=>{r(!0),l(!1)})).catch((()=>{r(!1),l(!0)}));else{const e=document.createElement("textarea");e.innerText=t,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select();try{const e=document.execCommand("copy");r(e),l(!e)}catch(e){r(!1),l(!0)}e.remove()}d.current=setTimeout((()=>{r(!1),l(!1)}),c)}),[c,t])}}const o=(0,i.defineMessages)({copy:{id:"copy_text.copy",defaultMessage:"Copy"},copied:{id:"copy_text.copied",defaultMessage:"Copied"}})},85507:(e,t,s)=>{"use strict";s.d(t,{A:()=>l});var a=s(62688),i=s.n(a),n=(s(10844),s(36418)),r=s.n(n);const o=e=>r().createElement("svg",{width:e.width?e.width.toString():"87",height:e.height?e.height.toString():"70",viewBox:"0 0 87 70",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().createElement("rect",{x:"8.00098",y:"7",width:"72",height:"24",rx:"3.75",fill:"var(--button-bg)",fillOpacity:"0.12"}),r().createElement("rect",{x:"0.000976562",y:"34",width:"87",height:"25",rx:"3.75",fill:"var(--button-bg)",fillOpacity:"0.12"}),r().createElement("path",{d:"M38.3214 2.31098C39.4303 0.112261 42.5697 0.112256 43.6786 2.31098L71.7146 57.899C72.7209 59.8943 71.2707 62.25 69.0359 62.25H12.9641C10.7294 62.25 9.27912 59.8943 10.2854 57.899L38.3214 2.31098Z",fill:"var(--center-channel-bg)"}),r().createElement("path",{d:"M40.3214 4.31098C41.4303 2.11226 44.5697 2.11226 45.6786 4.31098L73.7146 59.899C74.7209 61.8943 73.2707 64.25 71.0359 64.25H14.9641C12.7294 64.25 11.2791 61.8943 12.2854 59.899L40.3214 4.31098Z",fill:"#FFBC1F"}),r().createElement("path",{d:"M43.2322 2.53614L71.2681 58.1242C72.1067 59.7869 70.8982 61.75 69.0359 61.75H12.9641C11.1018 61.75 9.89327 59.7869 10.7319 58.1242L38.7678 2.53614C39.6919 0.703873 42.3081 0.703871 43.2322 2.53614Z",stroke:"var(--center-channel-color)"}),r().createElement("path",{d:"M49.542 4.23999L52.8888 10.72M74.922 53.38L68.5073 40.96L66.8339 37.72L64.6027 33.4L61.5348 27.46M59.3036 23.14L55.12 15.04",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeWidth:"1.08",strokeLinecap:"round"}),r().createElement("path",{d:"M38.0164 25.2833L40.2971 39.9301C40.3191 40.2208 40.4554 40.4927 40.6786 40.6912C40.9018 40.8897 41.1954 41 41.5002 41C41.8051 41 42.0986 40.8897 42.3219 40.6912C42.5451 40.4927 42.6814 40.2208 42.7034 39.9301L44.984 25.2833C45.3987 19.5722 37.5955 19.5722 38.0164 25.2833Z",fill:"#3F4350"}),r().createElement("path",{d:"M41.0072 47C41.798 47.0014 42.5706 47.2372 43.2275 47.6776C43.8843 48.118 44.396 48.7432 44.6976 49.4742C44.9993 50.2053 45.0774 51.0093 44.9222 51.7848C44.7671 52.5602 44.3856 53.2723 43.8259 53.831C43.2662 54.3897 42.5535 54.7699 41.7777 54.9237C41.002 55.0774 40.1981 54.9978 39.4676 54.6948C38.7371 54.3919 38.1128 53.8792 37.6736 53.2215C37.2344 52.5639 37 51.7908 37 51C37 50.4741 37.1036 49.9534 37.3051 49.4676C37.5066 48.9818 37.8019 48.5406 38.1741 48.169C38.5463 47.7975 38.9881 47.503 39.4743 47.3024C39.9604 47.1018 40.4813 46.9991 41.0072 47Z",fill:"#3F4350"}),r().createElement("path",{d:"M48.4619 68.5H70.0619",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeWidth:"1.08",strokeLinecap:"round"}),r().createElement("path",{d:"M10.001 50L26.001 19",stroke:"var(--center-channel-color)",strokeOpacity:"0.56",strokeWidth:"1.08",strokeLinecap:"round"}));o.propTypes={width:i().number.isRequired,height:i().number.isRequired};const l=o},92600:(e,t,s)=>{"use strict";s.d(t,{A:()=>g});var a=s(37270),i=s(26614),n=s(68124),r=s(62688),o=s.n(r),l=s(36418),d=s.n(l),c=s(14778),m=s(85873);const u=e=>{let{fileInfo:t,fileUrl:s,canDownloadFiles:a}=e;const i=(0,c.useIntl)(),n=[];""!==t.extension&&n.push(i.formatMessage({id:"file_info_preview.type",defaultMessage:"File type "})+t.extension.toUpperCase()),t.size&&n.push(i.formatMessage({id:"file_info_preview.size",defaultMessage:"Size "})+m.O1(t.size));const r=n.join(", ");let o=null;return o=a?d().createElement("a",{className:"file-details__preview",href:s},d().createElement("span",{className:"file-details__preview-helper"}),d().createElement("img",{alt:"file preview",src:m.Xm(t)})):d().createElement("span",{className:"file-details__preview"},d().createElement("span",{className:"file-details__preview-helper"}),d().createElement("img",{alt:"file preview",src:m.Xm(t)})),d().createElement("div",{className:"file-details__container"},o,d().createElement("div",{className:"file-details"},d().createElement("div",{className:"file-details__name"},t.name),d().createElement("div",{className:"file-details__info"},r)))};u.propTypes={fileUrl:o().string.isRequired,canDownloadFiles:o().bool.isRequired};const p=d().memo(u),g=(0,a.connect)((function(e){const t=(0,i.zj)(e);return{canDownloadFiles:(0,n.En)(t)}}))(p)},30491:(e,t,s)=>{"use strict";s.d(t,{A:()=>l}),s(29206);var a=s(36418),i=s.n(a),n=s(14778);const r=["placeholder"],o=i().forwardRef(((e,t)=>{let{placeholder:s}=e,a=function(e,t){if(null==e)return{};var s,a,i=function(e,t){if(null==e)return{};var s={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;s[a]=e[a]}return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)s=n[a],-1===t.indexOf(s)&&{}.propertyIsEnumerable.call(e,s)&&(i[s]=e[s])}return i}(e,r);const o=(0,n.useIntl)();return i().createElement("input",Object.assign({ref:t,placeholder:o.formatMessage(s)},a))}));o.displayName="LocalizedPlaceholderInput";const l=o},60729:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>u});var a=s(37270),i=s(32446),n=s(79751),r=s(62688),o=s.n(r),l=(s(29206),s(36418)),d=s.n(l);const c=e=>{let{modals:t,actions:s}=e;if(!t)return null;const{modalState:a}=t,i=[];for(const e in a)if(Object.hasOwn(a,e)){const t=a[e];if(t.open){const a=d().createElement(t.dialogType,Object.assign({},t.dialogProps,{onExited:()=>{var a,i;s.closeModal(e),null===(a=t.dialogProps)||void 0===a||null===(i=a.onExited)||void 0===i||i.call(a)},onHide:s.closeModal.bind(void 0,e),key:"".concat(e,"_modal")}));i.push(a)}}return d().createElement(d().Fragment,null,i)};c.propTypes={modals:o().shape({modalState:o().objectOf(o().shape({open:o().bool.isRequired,dialogType:o().elementType.isRequired,dialogProps:o().objectOf(o().any)})).isRequired}).isRequired,actions:o().shape({closeModal:o().func.isRequired}).isRequired};const m=c,u=(0,a.connect)((function(e){return{modals:e.views.modals}}),(function(e){return{actions:(0,i.zH)({closeModal:n.O},e)}}))(m)},25660:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>h});var a=s(62688),i=s.n(a),n=(s(43813),s(29206),s(4290),s(46177)),r=s.n(n),o=s(97792),l=(s(23100),s(36418)),d=s.n(l),c=s(31655),m=s(92600),u=s(53654),p=s(63155);function g(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class h extends d().PureComponent{constructor(e){super(e),g(this,"parentNode",null),g(this,"pdfCanvasRef",{}),g(this,"downloadFile",(e=>{const t=this.props.fileInfo.link||(0,c.S1)(this.props.fileInfo.id);e.preventDefault(),window.location.href=t})),g(this,"isInViewport",(e=>{var t,s,a,i;const n=e.getBoundingClientRect(),r=null!==(t=null===(s=this.container.current)||void 0===s?void 0:s.scrollTop)&&void 0!==t?t:0,o=r+(null!==(a=null===(i=this.parentNode)||void 0===i?void 0:i.clientHeight)&&void 0!==a?a:0);return n.top>=r&&n.top<=o||n.bottom>=r&&n.bottom<=o||n.top<=r&&n.bottom>=o})),g(this,"renderPDFPage",(async e=>{const t=this.pdfCanvasRef["pdfCanvasRef-".concat(e)].current;if(!t)return;if(e>=3&&!this.isInViewport(t))return;if(this.pdfPagesRendered[e])return;const s=await this.loadPage(this.state.pdf,e),a=t.getContext("2d"),i=s.getViewport({scale:this.props.scale});t.height=i.height,t.width=i.width;const n={canvasContext:a,viewport:i};await s.render(n).promise,this.pdfPagesRendered[e]=!0})),g(this,"getPdfDocument",(async()=>{try{const e=await o.YE({url:this.props.fileUrl,cMapUrl:(0,p.vV)()+"/static/cmaps/",cMapPacked:!0}).promise;this.onDocumentLoad(e)}catch(e){this.onDocumentLoadError(e)}})),g(this,"onDocumentLoad",(e=>{this.setState({pdf:e,numPages:e.numPages});for(let t=0;t<e.numPages;t++)this.pdfCanvasRef["pdfCanvasRef-".concat(t)]=d().createRef();this.setState({loading:!1,success:!0})})),g(this,"onDocumentLoadError",(e=>{console.log("Unable to load PDF preview: "+e),this.setState({loading:!1,success:!1})})),g(this,"loadPage",(async(e,t)=>{if(this.state.pdfPagesLoaded[t])return this.state.pdfPages[t];const s=await e.getPage(t+1),a=Object.assign({},this.state.pdfPages);a[t]=s;const i=Object.assign({},this.state.pdfPagesLoaded);return i[t]=!0,this.setState({pdfPages:a,pdfPagesLoaded:i}),s})),g(this,"handleScroll",r()((()=>{if(this.state.success)for(let e=0;e<this.state.numPages;e++)this.renderPDFPage(e)}),100)),this.pdfPagesRendered={},this.container=d().createRef(),this.state={pdf:null,pdfPages:[],pdfPagesLoaded:{},numPages:0,loading:!0,success:!1,prevFileUrl:""}}componentDidMount(){var e;this.getPdfDocument(),this.container.current&&(this.parentNode=this.container.current.parentElement,null===(e=this.parentNode)||void 0===e||e.addEventListener("scroll",this.handleScroll))}componentWillUnmount(){this.parentNode&&this.parentNode.removeEventListener("scroll",this.handleScroll)}static getDerivedStateFromProps(e,t){return e.fileUrl!==t.prevFileUrl?{pdf:null,pdfPages:{},pdfPagesLoaded:{},numPages:0,loading:!0,success:!1,prevFileUrl:e.fileUrl}:null}componentDidUpdate(e,t){if(this.props.fileUrl!==e.fileUrl&&(this.getPdfDocument(),this.pdfPagesRendered={}),this.props.scale!==e.scale&&(this.pdfPagesRendered={},this.state.success))for(let e=0;e<this.state.numPages;e++)this.renderPDFPage(e);if(!t.success&&this.state.success)for(let e=0;e<this.state.numPages;e++)this.renderPDFPage(e)}render(){if(this.state.loading)return d().createElement("div",{ref:this.container,className:"view-image__loading"},d().createElement(u.A,null));if(!this.state.success)return d().createElement(m.A,{fileInfo:this.props.fileInfo,fileUrl:this.props.fileUrl});const e=[];for(let t=0;t<this.state.numPages;t++)e.push(d().createElement("canvas",{ref:this.pdfCanvasRef["pdfCanvasRef-".concat(t)],key:"previewpdfcanvas"+t})),t<this.state.numPages-1&&this.state.numPages>1&&e.push(d().createElement("div",{key:"previewpdfspacer"+t,className:"pdf-preview-spacer"}));return d().createElement("div",{ref:this.container,className:"post-code",onClick:this.props.handleBgClose},e)}}g(h,"propTypes",{fileUrl:i().string.isRequired,scale:i().number.isRequired,handleBgClose:i().func.isRequired})},26676:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>I});var a=s(37270),i=s(32446),n=s(97282),r=s(35631),o=s(40057),l=s(8361),d=s(65952),c=s(26614),m=s(77440),u=s(80635),p=s(63647),g=s(36418),h=s.n(g),f=s(14778),E=s(85406),b=s(17518),v=s(78451),y=s(75644),M=s(4715);const _=[{name:"apiv3_deprecation",adminOnly:!0,title:h().createElement(f.FormattedMessage,{id:"system_notice.title",defaultMessage:"Notice from Mattermost"}),body:h().createElement(f.FormattedMessage,{id:"system_notice.body.api3",defaultMessage:"If you’ve created or installed integrations in the last two years, find out how <link>recent changes</link> may have affected them.",values:{link:e=>h().createElement(b.A,{href:"https://api.mattermost.com/#tag/APIv3-Deprecation",location:"system_notices"},e)}}),allowForget:!0,show:(e,t)=>!(t.InstallationDate>=new Date(2018,5,16,0,0,0,0).getTime())},{name:"advanced_permissions",adminOnly:!0,title:h().createElement(f.FormattedMessage,{id:"system_notice.title",defaultMessage:"Notice from Mattermost"}),body:h().createElement(f.FormattedMessage,{id:"system_notice.body.permissions",defaultMessage:"Some policy and permission System Console settings have moved with the release of <link>advanced permissions</link> into Mattermost Free and Professional.",values:{link:e=>h().createElement(b.A,{href:v.Uk.ONBOARD_ADVANCED_PERMISSIONS,location:"system_notices"},e)}}),allowForget:!0,show:(e,t,s)=>!("false"===s.IsLicensed||t.InstallationDate>new Date(2018,5,16,0,0,0,0).getTime()||"true"===s.IsLicensed&&s.IssuedAt>new Date(2018,5,16,0,0,0,0).getTime())},{name:"ee_upgrade_advice",adminOnly:!0,title:h().createElement(f.FormattedMessage,{id:"system_notice.title",defaultMessage:"Notice from Mattermost"}),body:h().createElement(f.FormattedMessage,{id:"system_notice.body.ee_upgrade_advice",defaultMessage:"Enterprise Edition is recommended to ensure optimal operation and reliability. <link>Learn more</link>.",values:{link:e=>h().createElement(b.A,{href:"https://mattermost.com/performance",location:"system_notices"},e)}}),allowForget:!1,show:(e,t,s,a)=>!(!a||Object.hasOwn(a,"TOTAL_USERS")||a.TOTAL_USERS&&a.TOTAL_USERS<1e4||"true"===s.IsLicensed&&"true"===s.Cluster)},{name:"ie11_deprecation",title:h().createElement(f.FormattedMessage,{id:"system_notice.title",defaultMessage:"Notice from Mattermost"}),allowForget:!1,body:h().createElement(f.FormattedMessage,{id:"system_notice.body.ie11_deprecation",defaultMessage:"Your browser, IE11, will no longer be supported in an upcoming release. <link>Find out how to move to another browser in one simple step</link>.",values:{link:e=>h().createElement(b.A,{href:"https://forum.mattermost.com/t/mattermost-is-dropping-support-for-internet-explorer-ie11-in-v5-16/7575",location:"system_notices"},e)}}),show:e=>!y.l(e,"5.16.0")&&!!M.VN()},{name:"GMasDM",allowForget:!0,title:h().createElement(f.FormattedMessage,{id:"system_notice.title.gm_as_dm",defaultMessage:"Updates to Group Messages"}),icon:h().createElement(E.InformationOutlineIcon,null),body:h().createElement(f.FormattedMessage,{id:"system_noticy.body.gm_as_dm",defaultMessage:"You will now be notified for all activity in your group messages along with a notification badge for every new message.{br}{br}You can configure this in notification preferences for each group message.",values:{br:h().createElement("br",null)}}),show:(e,t,s,a,i)=>"G"===(null==i?void 0:i.type)}];var S=s(62688),C=s.n(S),A=(s(17046),s(4290),s(37266));function T(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class N extends h().PureComponent{constructor(){var e;super(...arguments),e=this,T(this,"getCurrentNotice",(()=>{for(const t of this.props.notices){var e;if(!this.props.dismissedNotices[t.name]&&!this.props.preferences[t.name]&&(!t.adminOnly||this.props.isSystemAdmin)&&null!==(e=t.show)&&void 0!==e&&e.call(t,this.props.serverVersion,this.props.config,this.props.license,this.props.analytics,this.props.currentChannel))return t}return null})),T(this,"hide",(function(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const s=e.getCurrentNotice();s&&(t||e.props.actions.savePreferences(e.props.currentUserId,[{user_id:e.props.currentUserId,category:v.pm.CATEGORY_SYSTEM_NOTICE,name:s.name,value:"dismissed"}]),e.props.actions.dismissNotice(s.name))})),T(this,"hideAndRemind",(()=>{this.hide(!0)})),T(this,"hideAndForget",(()=>{this.hide(!1)}))}componentDidMount(){this.props.isSystemAdmin&&this.props.actions.getStandardAnalytics()}componentDidUpdate(e){e.isSystemAdmin!==this.props.isSystemAdmin&&this.props.isSystemAdmin&&this.props.actions.getStandardAnalytics()}render(){const e=this.getCurrentNotice();if(null==e)return null;let t;e.adminOnly&&(t=h().createElement("div",{className:"system-notice__info"},h().createElement("i",{className:"fa fa-eye",title:this.props.intl.formatMessage({id:"system_notice.adminVisible.icon",defaultMessage:"Only visible to System Admins Icon"})}),h().createElement(f.FormattedMessage,{id:"system_notice.adminVisible",defaultMessage:"Only visible to System Admins"})));const s=e.icon||h().createElement(A.A,null);return h().createElement("div",{className:"system-notice bg--white"},h().createElement("div",{className:"system-notice__logo"},s),h().createElement("div",{className:"system-notice__body"},h().createElement("div",{className:"system-notice__title"},e.title),e.body,t,h().createElement("div",{className:"system-notice__footer"},h().createElement("button",{id:"systemnotice_remindme",className:"btn btn-sm btn-primary",onClick:this.hideAndRemind},h().createElement(f.FormattedMessage,{id:"system_notice.remind_me",defaultMessage:"Remind Me Later"})),e.allowForget&&h().createElement("button",{id:"systemnotice_dontshow",className:"btn btn-sm btn-tertiary",onClick:this.hideAndForget},h().createElement(f.FormattedMessage,{id:"system_notice.dont_show",defaultMessage:"Don't Show Again"})))))}}T(N,"propTypes",{currentUserId:C().string.isRequired,notices:C().array.isRequired,preferences:C().objectOf(C().any).isRequired,dismissedNotices:C().any.isRequired,isSystemAdmin:C().bool,serverVersion:C().string.isRequired,actions:C().shape({}).isRequired});const w=(0,f.injectIntl)(N),R=(0,m.dI)("getSystemNoticePreferences",v.pm.CATEGORY_SYSTEM_NOTICE),O=(0,l.Mz)("getPreferenceNameMap",R,(e=>{const t={};return e.forEach((e=>{t[e.name]=e})),t})),I=(0,a.connect)((function(e){const t=(0,c.Ay)(e),s=(0,c.zj)(e),a=e.entities.general.serverVersion,i=e.entities.admin.analytics;return{currentUserId:e.entities.users.currentUserId,preferences:O(e),dismissedNotices:e.views.notice.hasBeenDismissed,isSystemAdmin:(0,u.y4)(e,{permission:o.xB.MANAGE_SYSTEM}),notices:_,config:s,license:t,serverVersion:a,analytics:i,currentChannel:(0,d.Lw)(e)}}),(function(e){return{actions:(0,i.zH)({savePreferences:r.SF,dismissNotice:p.L,getStandardAnalytics:n.ur},e)}}))(w)},5955:(e,t,s)=>{"use strict";s.d(t,{A:()=>m});var a=s(62688),i=s.n(a),n=s(71633),r=s.n(n),o=s(36418),l=s.n(o),d=s(14778);const c=e=>{let{additionalClassName:t}=e;const{formatMessage:s}=(0,d.useIntl)();return l().createElement("i",{className:r()("icon icon-chevron-right",t),title:s({id:"generic_icons.next",defaultMessage:"Next Icon"})})};c.propTypes={additionalClassName:i().string};const m=l().memo(c)},57891:(e,t,s)=>{"use strict";s.d(t,{A:()=>m});var a=s(62688),i=s.n(a),n=s(71633),r=s.n(n),o=s(36418),l=s.n(o),d=s(14778);const c=e=>{let{additionalClassName:t}=e;const{formatMessage:s}=(0,d.useIntl)();return l().createElement("i",{className:r()("icon icon-chevron-left",t),title:s({id:"generic_icons.previous",defaultMessage:"Previous Icon"})})};c.propTypes={additionalClassName:i().string};const m=l().memo(c)},12082:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var a=s(36418),i=s.n(a),n=s(14778);function r(){const{formatMessage:e}=(0,n.useIntl)();return i().createElement("i",{className:"fa fa-search",title:e({id:"generic_icons.search",defaultMessage:"Search Icon"})})}},59181:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var a=s(36418),i=s.n(a),n=s(14778);function r(e){const{formatMessage:t}=(0,n.useIntl)();return i().createElement("span",e,i().createElement("svg",{width:"13px",height:"13px",viewBox:"0 0 16 16",role:"presentation","aria-label":t({id:"generic_icons.channel.public",defaultMessage:"Public Channel Icon"})},i().createElement("path",{d:"M8 -2.47955e-05C6.56 -2.47955e-05 5.216 0.367975 3.968 1.10398C2.76267 1.80798 1.808 2.76264 1.104 3.96797C0.368 5.21598 0 6.55998 0 7.99998C0 9.43998 0.368 10.784 1.104 12.032C1.808 13.2373 2.76267 14.192 3.968 14.896C5.216 15.632 6.56 16 8 16C9.44 16 10.784 15.632 12.032 14.896C13.2373 14.192 14.192 13.2373 14.896 12.032C15.632 10.784 16 9.43998 16 7.99998C16 6.55998 15.632 5.21598 14.896 3.96797C14.192 2.76264 13.2373 1.80798 12.032 1.10398C10.784 0.367975 9.44 -2.47955e-05 8 -2.47955e-05ZM14.4 8.39998C14.2507 8.59198 13.92 8.80531 13.408 9.03998C12.768 9.31731 12.032 9.53064 11.2 9.67998V6.95998C12.288 6.77864 13.168 6.53864 13.84 6.23998C13.872 6.20798 13.9253 6.18131 14 6.15998C14.0853 6.12798 14.1387 6.10131 14.16 6.07998C14.32 6.63464 14.4 7.27464 14.4 7.99998V8.39998ZM6.8 11.52C6.93867 11.52 7.14133 11.536 7.408 11.568C7.67467 11.5893 7.872 11.6 8 11.6C8.53333 11.6 8.93333 11.5733 9.2 11.52C9.008 12.2773 8.8 12.912 8.576 13.424C8.36267 13.8933 8.17067 14.192 8 14.32C7.808 14.1813 7.61067 13.8826 7.408 13.424C7.152 12.8906 6.94933 12.256 6.8 11.52ZM8 9.99998C7.63733 9.99998 7.376 9.99464 7.216 9.98398C6.93867 9.97331 6.69333 9.95198 6.48 9.91998C6.48 9.74931 6.46933 9.46664 6.448 9.07198C6.416 8.61331 6.4 8.25598 6.4 7.99998V7.11998C6.77333 7.17331 7.30667 7.19998 8 7.19998C8.69333 7.19998 9.22667 7.17331 9.6 7.11998V7.99998C9.6 8.25598 9.584 8.61331 9.552 9.07198C9.53067 9.46664 9.52 9.74931 9.52 9.91998C9.30667 9.95198 9.06133 9.97331 8.784 9.98398C8.624 9.99464 8.36267 9.99998 8 9.99998ZM9.44 5.51998C9.12 5.57331 8.64 5.59998 8 5.59998C7.36 5.59998 6.88 5.57331 6.56 5.51998C6.656 4.82664 6.8 4.18131 6.992 3.58397C7.14133 3.07198 7.31733 2.62931 7.52 2.25597C7.69067 1.93598 7.85067 1.71731 8 1.59997C8.14933 1.71731 8.30933 1.93598 8.48 2.25597C8.68267 2.62931 8.85867 3.07198 9.008 3.58397C9.2 4.18131 9.344 4.82664 9.44 5.51998ZM13.44 4.63998C12.5867 5.00264 11.7867 5.24264 11.04 5.35997C10.9653 4.71997 10.848 4.11198 10.688 3.53598C10.5387 2.95998 10.3627 2.44798 10.16 1.99998C11.5573 2.49064 12.6507 3.37064 13.44 4.63998ZM2.56 4.63998C2.976 4.02131 3.456 3.49331 4 3.05597C4.576 2.58664 5.216 2.23464 5.92 1.99998C5.52533 2.87464 5.20533 3.99464 4.96 5.35997C3.92533 5.11464 3.12533 4.87464 2.56 4.63998ZM1.92 6.07998C1.952 6.11198 2.00533 6.14398 2.08 6.17598L2.24 6.23998C2.96533 6.55998 3.84533 6.79998 4.88 6.95998C4.848 7.09864 4.82667 7.26398 4.816 7.45598C4.80533 7.56264 4.8 7.74398 4.8 7.99998C4.8 8.74664 4.82667 9.30664 4.88 9.67998C4.048 9.53064 3.31733 9.31731 2.688 9.03998C2.16533 8.80531 1.82933 8.59198 1.68 8.39998V7.99998C1.63733 7.67998 1.63733 7.34931 1.68 7.00798C1.72267 6.66664 1.80267 6.35731 1.92 6.07998ZM2.16 10.56C3.14133 10.9546 4.128 11.2213 5.12 11.36C5.248 12.2133 5.51467 13.0933 5.92 14C5.088 13.7226 4.34133 13.2853 3.68 12.688C3.02933 12.08 2.52267 11.3706 2.16 10.56ZM13.84 10.56C13.4773 11.3706 12.9653 12.08 12.304 12.688C11.6533 13.2853 10.912 13.7226 10.08 14C10.4853 13.0933 10.752 12.2133 10.88 11.36C12.1493 11.1786 13.136 10.912 13.84 10.56Z"})))}},74381:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var a=s(36418),i=s.n(a),n=s(14778);function r(e){const{formatMessage:t}=(0,n.useIntl)();return i().createElement("span",e,i().createElement("svg",{width:"12px",height:"13px",viewBox:"0 0 13 15",role:"presentation","aria-label":t({id:"generic_icons.channel.private",defaultMessage:"Private Channel Icon"})},i().createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},i().createElement("g",{transform:"translate(-116.000000, -175.000000)",fillRule:"nonzero",fill:"inherit"},i().createElement("g",{transform:"translate(95.000000, 0.000000)"},i().createElement("g",{transform:"translate(20.000000, 113.000000)"},i().createElement("g",{transform:"translate(1.000000, 62.000000)"},i().createElement("path",{d:"M12.0714286,6.5 L11.1428571,6.5 L11.1428571,4.64285714 C11.1428571,2.07814286 9.06471429,0 6.5,0 C3.93528571,0 1.85714286,2.07814286 1.85714286,4.64285714 L1.85714286,6.5 L0.928571429,6.5 C0.415071429,6.5 0,7.00792857 0,7.52142857 L0,13.9285714 C0,14.4420714 0.415071429,14.8571429 0.928571429,14.8571429 L12.0714286,14.8571429 C12.5849286,14.8571429 13,14.4420714 13,13.9285714 L13,7.52142857 C13,7.00792857 12.5849286,6.5 12.0714286,6.5 Z M6.5,1.85714286 C8.03585714,1.85714286 9.28571429,3.107 9.28571429,4.64285714 L9.28571429,6.5 L8.35714286,6.5 L4.64285714,6.5 L3.71428571,6.5 L3.71428571,4.64285714 C3.71428571,3.107 4.96414286,1.85714286 6.5,1.85714286 Z"}))))))))}},19477:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var a=s(36418),i=s.n(a),n=s(14778);function r(e){const{formatMessage:t}=(0,n.useIntl)();return i().createElement("span",e,i().createElement("svg",{width:"16px",height:"10px",viewBox:"0 0 16 10",version:"1.1",role:"img","aria-label":t({id:"generic_icons.menu",defaultMessage:"Menu Icon"})},i().createElement("g",{stroke:"none",strokeWidth:"1",fill:"inherit",fillRule:"evenodd"},i().createElement("g",{transform:"translate(-188.000000, -38.000000)",fillRule:"nonzero",fill:"inherit"},i().createElement("g",null,i().createElement("g",null,i().createElement("g",{transform:"translate(188.000000, 38.000000)"},i().createElement("path",{d:"M15.5,0 C15.776,0 16,0.224 16,0.5 L16,1.5 C16,1.776 15.776,2 15.5,2 L0.5,2 C0.224,2 0,1.776 0,1.5 L0,0.5 C0,0.224 0.224,0 0.5,0 L15.5,0 Z M15.5,4 C15.776,4 16,4.224 16,4.5 L16,5.5 C16,5.776 15.776,6 15.5,6 L0.5,6 C0.224,6 0,5.776 0,5.5 L0,4.5 C0,4.224 0.224,4 0.5,4 L15.5,4 Z M15.5,8 C15.776,8 16,8.224 16,8.5 L16,9.5 C16,9.776 15.776,10 15.5,10 L0.5,10 C0.224,10 0,9.776 0,9.5 L0,8.5 C0,8.224 0.224,8 0.5,8 L15.5,8 Z"}))))))))}},97314:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var a=s(36418),i=s.n(a),n=s(14778);function r(e){const{formatMessage:t}=(0,n.useIntl)();return i().createElement("span",e,i().createElement("svg",{width:"16px",height:"16px",viewBox:"0 0 17 17",role:"img","aria-label":t({id:"generic_icons.search",defaultMessage:"Search Icon"})},i().createElement("path",{d:"M16.398 15.138L13.014 11.754C13.458 11.178 13.8 10.548 14.04 9.86399C14.28 9.14399 14.4 8.40599 14.4 7.64999C14.4 6.42599 14.094 5.29199 13.482 4.24799C12.882 3.22799 12.072 2.41799 11.052 1.81799C10.008 1.20599 8.874 0.899988 7.65 0.899988C6.426 0.899988 5.292 1.20599 4.248 1.81799C3.228 2.41799 2.418 3.22799 1.818 4.24799C1.206 5.29199 0.9 6.42599 0.9 7.64999C0.9 8.87399 1.206 10.008 1.818 11.052C2.418 12.072 3.228 12.882 4.248 13.482C5.292 14.094 6.426 14.4 7.65 14.4C8.406 14.4 9.138 14.274 9.846 14.022C10.53 13.794 11.16 13.458 11.736 13.014L15.138 16.398C15.306 16.566 15.516 16.65 15.768 16.65C16.02 16.65 16.23 16.56 16.398 16.38C16.566 16.212 16.65 16.008 16.65 15.768C16.65 15.528 16.566 15.318 16.398 15.138ZM2.7 7.64999C2.7 6.74999 2.922 5.92199 3.366 5.16599C3.81 4.40999 4.41 3.80999 5.166 3.36599C5.922 2.92199 6.75 2.69999 7.65 2.69999C8.55 2.69999 9.378 2.92199 10.134 3.36599C10.89 3.80999 11.49 4.40999 11.934 5.16599C12.378 5.92199 12.6 6.74999 12.6 7.64999C12.6 8.54999 12.378 9.37799 11.934 10.134C11.49 10.89 10.89 11.49 10.134 11.934C9.378 12.378 8.55 12.6 7.65 12.6C6.75 12.6 5.922 12.378 5.166 11.934C4.41 11.49 3.81 10.89 3.366 10.134C2.922 9.37799 2.7 8.54999 2.7 7.64999Z"})))}},34005:(e,t,s)=>{"use strict";s.d(t,{A:()=>b}),s(17046),s(29206),s(4290);var a=s(71633),i=s.n(a),n=s(36418),r=s.n(n),o=s(14778),l=s(7453),d=s(7167),c=s(71127),m=s(94231),u=s(59181),p=s(74381),g=s(53654),h=s(78451);function f(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}const E=(0,o.defineMessages)({loading:{id:"widgets.channels_input.loading",defaultMessage:"Loading"},noOptions:{id:"widgets.channels_input.empty",defaultMessage:"No channels found"}});class b extends r().PureComponent{constructor(e){super(e),f(this,"getOptionValue",(e=>e.id)),f(this,"handleInputChange",((e,t)=>{if("input-blur"===t.action&&""!==e)for(const e of this.state.options)if(this.props.inputValue===e.name)return this.onChange([...this.props.value,e]),void this.props.onInputChange("");"input-blur"!==t.action&&"menu-close"!==t.action&&this.props.onInputChange(e)})),f(this,"optionsLoader",((e,t)=>{const s=e=>{this.setState({options:e}),t(e)},a=this.props.channelsLoader(e,s);a&&a.then&&a.then(s)})),f(this,"loadingMessage",(()=>{const e=r().createElement(o.FormattedMessage,this.props.loadingMessage);return r().createElement(g.A,{text:e})})),f(this,"NoOptionsMessage",(e=>{const t=e.selectProps.inputValue;if(!t)return null;const s=l.c.NoOptionsMessage;return r().createElement("div",{className:"channels-input__option channels-input__option--no-matches"},r().createElement(s,e,r().createElement(c.A,Object.assign({},this.props.noOptionsMessage,{values:{text:t}}))))})),f(this,"formatOptionLabel",(e=>{let t=r().createElement(u.A,{className:"public-channel-icon"});return e.type===h.YM.PRIVATE_CHANNEL&&(t=r().createElement(p.A,{className:"private-channel-icon"})),r().createElement(r().Fragment,null,t,e.display_name,r().createElement("span",{className:"channel-name"},e.name))})),f(this,"onChange",(e=>{this.props.onChange&&this.props.onChange([...e])})),f(this,"MultiValueRemove",(e=>{const{innerProps:t,children:s}=e;return r().createElement("div",t,s||r().createElement(m.A,null))})),f(this,"components",{NoOptionsMessage:this.NoOptionsMessage,MultiValueRemove:this.MultiValueRemove,IndicatorsContainer:()=>null}),f(this,"onFocus",(()=>{var e;null===(e=this.selectRef.current)||void 0===e||e.onInputChange(this.props.inputValue,{prevInputValue:this.props.inputValue,action:"set-value"})})),this.selectRef=r().createRef(),this.state={options:[]}}render(){var e;return r().createElement(d.A,{ref:this.selectRef,onChange:this.onChange,loadOptions:this.optionsLoader,isMulti:!0,isClearable:!1,className:i()("ChannelsInput",{empty:""===this.props.inputValue}),classNamePrefix:"channels-input",placeholder:this.props.placeholder,components:this.components,getOptionValue:this.getOptionValue,formatOptionLabel:null!==(e=this.props.formatOptionLabel)&&void 0!==e?e:this.formatOptionLabel,loadingMessage:this.loadingMessage,defaultOptions:!1,defaultMenuIsOpen:!1,openMenuOnClick:!1,onInputChange:this.handleInputChange,inputValue:this.props.inputValue,openMenuOnFocus:!0,onFocus:this.onFocus,tabSelectsValue:!0,value:this.props.value,"aria-label":this.props.ariaLabel,autoFocus:this.props.autoFocus})}}f(b,"defaultProps",{loadingMessage:E.loading,noOptionsMessage:E.noOptions})},74290:(e,t,s)=>{"use strict";s.d(t,{jd:()=>o,s9:()=>r}),s(57406);var a=s(8361),i=s(3569);const n=["mattermost-advisor"];function r(e){return e.entities.bots.accounts}const o=(0,a.Mz)("getExternalBotAccounts",r,i.lo,((e,t)=>{const s={};return Object.values(e).forEach((e=>{const a=t[e.user_id];a&&!n.includes(a.username)&&(s[e.user_id]=e)})),s}))},54302:(e,t,s)=>{"use strict";s.d(t,{I:()=>n}),s(3188),s(30973),s(17046),s(36169);var a=s(36418),i=s(81911);function n(){const{search:e}=(0,i.useLocation)();return(0,a.useMemo)((()=>new URLSearchParams(e)),[e])}},18945:(e,t,s)=>{var a={"./simpleWorker":84869,"./simpleWorker.js":84869};function i(e){return Promise.resolve().then((()=>{if(!s.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s(a[e])}))}i.keys=()=>Object.keys(a),i.id=18945,e.exports=i},83288:(e,t,s)=>{var a={"./editorBaseApi":[88687],"./editorBaseApi.js":[88687],"./editorSimpleWorker":[26635],"./editorSimpleWorker.js":[26635],"./editorWorker":[93412],"./editorWorker.js":[93412],"./editorWorkerHost":[81978],"./editorWorkerHost.js":[81978],"./findSectionHeaders":[82743],"./findSectionHeaders.js":[82743],"./getIconClasses":[19096],"./getIconClasses.js":[19096],"./languageFeatureDebounce":[98875],"./languageFeatureDebounce.js":[98875],"./languageFeatures":[48058],"./languageFeatures.js":[48058],"./languageFeaturesService":[43033],"./languageFeaturesService.js":[43033],"./languageService":[36214],"./languageService.js":[36214],"./languagesAssociations":[21440],"./languagesAssociations.js":[21440],"./languagesRegistry":[76252],"./languagesRegistry.js":[76252],"./markerDecorations":[96490],"./markerDecorations.js":[96490],"./markerDecorationsService":[90191],"./markerDecorationsService.js":[90191],"./model":[97556],"./model.js":[97556],"./modelService":[81151],"./modelService.js":[81151],"./resolverService":[79174],"./resolverService.js":[79174],"./semanticTokensDto":[31356],"./semanticTokensDto.js":[31356],"./semanticTokensProviderStyling":[60580],"./semanticTokensProviderStyling.js":[60580],"./semanticTokensStyling":[15967],"./semanticTokensStyling.js":[15967],"./semanticTokensStylingService":[63560],"./semanticTokensStylingService.js":[63560],"./textModelSync/textModelSync.impl":[97188],"./textModelSync/textModelSync.impl.js":[97188],"./textModelSync/textModelSync.protocol":[21056,1056],"./textModelSync/textModelSync.protocol.js":[21056,1056],"./textResourceConfiguration":[93212],"./textResourceConfiguration.js":[93212],"./treeSitterParserService":[76556],"./treeSitterParserService.js":[76556],"./treeViewsDnd":[56079],"./treeViewsDnd.js":[56079],"./treeViewsDndService":[21272],"./treeViewsDndService.js":[21272],"./unicodeTextModelHighlighter":[29641],"./unicodeTextModelHighlighter.js":[29641]};function i(e){if(!s.o(a,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=a[e],i=t[0];return Promise.all(t.slice(1).map(s.e)).then((()=>s(i)))}i.keys=()=>Object.keys(a),i.id=83288,e.exports=i},32683:(e,t)=>{"use strict";var s,a;t.dQ=void 0,function(e){e.SILLY="silly",e.DEBUG="debug",e.INFO="info",e.WARN="warn",e.ERROR="error"}(s||(s={})),function(e){e.Count="count",e.LineChart="line_chart",e.DoughnutChart="doughnut_chart"}(a||(t.dQ=a={}))},76401:(e,t)=>{"use strict";t.nv=void 0,t.nv={Full:"full",Partial:"partial",OnPremise:"onpremise",Metered:"metered"}},9235:(e,t)=>{"use strict";t.L=void 0,t.L=e=>"select"===e.type||"multiselect"===e.type},22204:(e,t)=>{"use strict";t.U=function(e){return void 0!==e.display_name&&""!==e.display_name||void 0!==e.default_team_id}}}]); //# sourceMappingURL=5072.a639e2f468fd9697a91c.js.map